Buscar

2009 AC-Aula05

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 24 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

*
PUCC
Agenda
 Memória CACHE
*
PUCC
Memória Cache
Motivo
Melhorar a relação entre o tempo de acesso a dados e instruções e a velocidade dos processadores.
Problema
Custo elevado
Utilização
Praticamente todos os computadores
*
PUCC
Localidade
Constatação: programas são escritos e executados pela CPU em pequenos grupos de instruções
Então não é necessário ter uma memória rápida e cara muito grande 
Podemos estabelecer um compromisso entre custo e desempenho
*
PUCC
Localidade
Temporal: quando a CPU acessa uma palavra de memória existe uma boa probabilidade que em breve acesse a mesma palavra.
Espacial: quando a CPU acessa uma palavra de memória existe uma boa probabilidade que o programa acesse uma palavra subsequente.
*
PUCC
Programa
Plan1
		
		
								PARTE 1
		
		
								Chamada de Função						Loop 1
		
								PARTE 2
														Loop 2
		
								PARTE 3
		
		
								Função
Plan2
		
Plan3
		
*
PUCC
Organização
CPU
Memória
Principal
*
PUCC
Funcionamento
A CPU sempre acessa a memória Cache (dados ou instruções)
Acerto: a CPU encontra a informação na memória Cache
Falta: a informação não está na Cache, a execução é suspensa e a informação é transferida da MP para a memória Cache.
*
PUCC
Tempo de Acesso
% acerto (p)
T1
T2
T1+T2
100
0
TA= p . T1 + (1-p) . (T2 +T1)
*
PUCC
Memória Cache
Tamanho
Mapeamento
Substituição de dados na Cache
Política de escrita pela Cache
*
PUCC
Tamanho
Quanto maior melhor
Problema custo elevado
Relação acertos / faltas
Relação Tempo Acesso Cache pelo Tempo de Acesso da MP
Natureza dos Programas
*
PUCC
Mapeamento
Plan1
		
		
								PARTE 1
		
		
								Chamada de Função						Loop 1
		
								PARTE 2
														Loop 2
		
								PARTE 3
		
		
								Função
Plan3
		
						0
						1
						2								0
						3								1
						4								2
						5
						6
						7
						8
						9
		
														Q-1
		
		
		
		
		
		
		
		
						N-1
*
PUCC
Mapeamento Direto
MP= 4G palavras E= 32 bits
Cache= 64 KB Q= 1K
1 Quadro possui 64 Bytes ou palavras
B= 4G / 64 Bytes = 
Então:
cada quadro do cache deverá acomodar 64K Blocos. 
64 M Blocos
*
PUCC
Exemplo
Endereço da palavra
Número do quadro
Número do bloco no Quadro - TAG
Plan1
		
		
								PARTE 1
		
		
								Chamada de Função						Loop 1
		
								PARTE 2
														Loop 2
		
								PARTE 3
		
		
								Função
Plan3
		
						0
						1												TAG								BLOCOS
						2								quadro		0				0		1		2								63
						3								quadro		1
						4								quadro		2
						5
						6
						7
						8
						9
		
														quadro		1023		16 bits								64 Bytes
		
		
																		Endereço da MP possui 32 bits
		
																		16 bits		10 bits				6 bits
		
		
		
						N-1
Plan1
		
		
								PARTE 1
		
		
								Chamada de Função						Loop 1
		
								PARTE 2
														Loop 2
		
								PARTE 3
		
		
								Função
Plan3
		
						0
						1												TAG								BLOCOS
						2								quadro		0				63		62		61								0
						3								quadro		1
						4								quadro		2
						5
						6
						7
						8
						9
		
														quadro		1023		16 bits								64 Bytes
		
		
																		Endereço da MP possui 32 bits
		
																		16 bits		10 bits				6 bits
		
		
		
						N-1
*
PUCC
Mapeamento Direto
Para definir quais blocos da MP serão alocados a um quadro específico: q= N mod Q.
	q= número do quadro da Cache
	N= endereço da MP
	Q= número de quadros da Cache
q= 0: blocos 0, 1024,2048,...
q=1023: blocos 1023,2047,.., 64M-1 
*
PUCC
Mapeamento Associativo
Os blocos não têm um quadro associado. Se o bloco desejado não está em nenhum quadro da Cache, ele deverá ser transferido para a Cache, substituindo um bloco armazenado nela.
*
PUCC
Mapeamento Associativo
 Cada vez que a CPU realizar um acesso, o controlador de cache deve examinar e comparar os 26 bits do endereço do bloco 
Plan1
		
		
																																																																						26 bits								6 bits
																																																																						Endereço do Bloco								Endereço
																																																																														da palavra
Plan2
		
Plan3
		
*
PUCC
Associativo por Conjuntos
Tenta resolver o problema do conflito de blocos em um mesmo quadro (mapeamento direto) e o problema da busca exaustiva e comparação das tags de toda a cache (mapeamento associativo)
*
PUCC
Associativo por Conjuntos
 Organiza os quadros da Cache em grupos - conjuntos. Dentro dos conjuntos, os quadros são associativos.
 A cache é dividida em C conjuntos de D quadros, assim, Q = C x D. 
Plan1
		
		
																																																																						17 bits				9 bits				6 bits
																																																																						TAG				Número do Conjunto				Endereço
																																																																														da palavra
Plan2
		
Plan3
		
*
PUCC
Substituição de dados
Mapeamento Direto: não há o que se fazer - é pré-definida.
Mapeamento Associativo ou Associativo por Conjuntos
O que não é usado há mais tempo
Fila ( first in first out)
O que tem menos referência
Escolha aleatória
*
PUCC
Escrita na Cache
Em sistemas com memória Cache, toda vez que a CPU realiza uma operação de escrita, esta ocorre na cache. Portanto, é necessário que em alguns momentos, a MP seja atualizada.
Antes que um bloco seja substituído na cache, é necessário saber se ele foi alterado ou não.
*
PUCC
Escrita na Cache
Este problema é complicado
a MP pode ser acessada pela cache e por dispositivos de E/S (DMA), neste caso a palavra da MP pode ter sido alterada e da cache não.
Computadores que possuam várias CPU´s cada uma com sua cache.
*
PUCC
Escrita na Cache
Write Through
cada escrita na cache acarreta escrita igual na MP.
Caso existam outras CPU´s com cache o procedimento se repete
Pode causar uma grande quantidade de escritas desnecessárias na MP, reduzindo o desempenho do sistema
*
PUCC
Escrita na Cache
Write Back
atualiza a MP quando o bloco foi substituído e houver ocorrido alguma alteração. Existe um bit de flag para identificar se houve alteração de conteúdo.
A MP fica potencialmente desatualizada para utilização de outros dispositivos.
*
PUCC
Escrita na Cache
Write Once
apropriada para arquiteturas multi-CPUs. Por ela, o controlador da cache atualiza a MP sempre que o bloco correspondente na cache foi atualizada pela primeira vez. Essa escrita serve de alerta para os demais componentes. Esse alerta impede o uso da palavra

Outros materiais