Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Funcionamento da Cache 
Leitura de um dado 
• A CPU coloca no AD (Address Bar) o endereço do dado solicitado a MM; 
• O chipset (a controladora da memória) intercepta o endereço solicitado 
e verifica se o dado está ou não presente na cache; 
– Se estiver, acerto (hit) => uma cópia do dado é transferida da cache para a 
CPU via DB (Data Bar); 
– Senão estiver, falta (miss) => o chipset solicita o dado a MM, que é 
transferido para a cache, e somente em seguida a cópia do dado é 
transferida para a CPU; 
• Tempo de acesso é bem maior. 
 
9 
Memória Cache 
ch
ip
se
t 
ch
ip
se
t 
Funcionamento da Cache 
10 
Memória Cache 
Fluxograma: Acesso a Memória envolvendo Cache 
Funcionamento da Cache 
11 
Memória Cache 
Organização típica da Mem. Cache 
Organização da Cache Memory 
• A MM (Primary Memory) é formada por: 
– N células de um byte cada (em geral); 
– Que são agrupadas em palavras; 
– Que por sua vez são agrupadas em blocos de K palavras. 
• A CM (Cache Memory) é formada por: 
– m blocos, chamados de linhas; 
– 1 linha CM = 
 1 bloco da MM + tag + dados de controle. 
– Tamanho Cache << Tamanho MM 
 
 
12 Memória de 64 MB 
1 Palavra 
de 4 bytes 
1 Célula de 
Memória 0 
N-1 
1 Bloco de 
2 palavras 
Endr 0007H 
Endr 0006H 
Endr 0000H 
Endr 0001H 
Endr 0002H 
Endr 0003H 
Endr 0004H 
Endr 0005H 
... 
Endr FFFFH 
Funções de Mapeamento 
• Como existem menos linhas na Cache do que na MM, é necessário haver um 
algoritmo para mapear as linhas da Cache com os blocos da MM. 
• Esse algoritmo diz para cada bloco da MM qual a linha da Cache ele irá ocupar. 
• Logo, a escolha do algoritmo de mapeamento diz como a CM 
(Cache Memory) será organizada. 
• Existem, basicamente, 3 técnicas de mapeamento: 
– Mapeamento Direto 
– Mapeamento Associativo 
– Mapeamento Associativo 
em Conjunto 
13 
Formato da Linha de Cache 
• Para saber qual bloco da MM a linha da Cache está guardando, uma tag (ou 
núm. do bloco da MM) contendo o núm do bloco da MM tb é guardado na 
Linha da Cache. 
• Para saber se a Linha de Cache está ocupada ou contém lixo, é usado um 
bit de validade (1 válido, 0 lixo). 
• Como os dados alterados na cache NÃO precisam ser imediatamente escritos 
na MM, a Linha de Cache tb mantém um bit sujo, para indicar que os dados ali 
contido precisam ser atualizados na MM antes do Bloco ser substituído. 
• Linha de Cache = [bit de validade] [bit sujo] [tag] [dado] 
14 
Questões de Projeto da Cache Memory 
• Qual será 
– A função de mapeamento de dados PM/Cache ? 
– O algoritmo de substituição de dados na cache ? 
– A politica de escrita de dados na cache ? 
– O tamanho da cache ? 
– O tamanho da largura de linhas da cache ? 
• Isto é, quantas palavras cabem em 1 linha da cache. 
• Quantos níveis de cache serão usados ? 
15 
Mapeamento Direto 
• Forma mais simples de mapeamento; 
• A posição do bloco da MM na CM depende do endereço da palavra; 
• Cada palavra está associada a uma única posição na Cache; 
• Este mapeamento é dado através da função 
NumLinhaCache := NumBlocoMM módulo TotalLinhasCache 
• P.ex. NumTotalLinhas = 4 
Bloco 0 => Linha 0 
Bloco 1 => Linha 1 
... 
Bloco 8 => Linha 0 
Bloco 9 => Linha 1 
Bloco 10 => Linha 2 
Bloco 11 => Linha 3 
... 
• Formato Endr: [tag] [linha] [palavra] 
16 
Funções de Mapeamento

Mais conteúdos dessa disciplina