Objetivo: Aumentar a velocidade de acesso aos dados.
Exemplo de Requisição de dados a CPU:
O dado está na memória cache ?
Sim:
Envie para a CPU
Não:
Solicite a Memória Principal
O dado está na Memória Principal ?
Sim:
Envia para a Memória Cache
Não:
Requisite o dado ao Disco
Por a memória cache está mais próxima da cpu e sua velocidade de processamento ser maior que a da memória principal, a velocidade de transmissão desse dado entre cache e cpu é maior do que a velocidade de transmissão da memória principal para a cpu.
Exemplo: Com uma única Cache. Fonte: http://www.diegomacedo.com.br/wp-content/uploads/2011/09/computer-memory-pyramid.gif
Quando falamos em memória cache, temos o princípio da Localidade e Referência.
Príncipio da Localidade e Referência
- Se um dado passou pela memória cache, é provável que este dado seja requisitado novamente pela cpu.
É possível ter mais de uma memória cache. Esses vários tipos são denomidados, níveis de cache. Veja a tabela de hierarquia de memória abaixo:
Fonte: http://www.diegomacedo.com.br/wp-content/uploads/2011/09/computer-memory-pyramid.gif
Quanto maior o nível de cache, maior será a quantidade de memória, mas consequentemente será mais lento do que o nível de cache anterior.
Exemplo:
Cache de nível 1 possui tamanho inferior ao da cache L2, mas a velocidade de acesso de L1 é superior ao da L2.
Estrutura do sistema de Memória Cache e Memória Principal
Fonte: https://sites.google.com/site/cachememory2011/_/rsrc/1311629432077/memory-hierarchy/cache-main-memory-structure/cache%252041.jpg
Na memória cache temos:
- Número de Linhas --> 0 até C-1
- Tag
- Bloco -> Tamanho do bloco
Na memória principal temos:
- Endereço de Memória --> 0 até 2n-1
- Blocos -> Cada bloco pode ter K palavras
Obs.: "A memória principal consiste de 2n endereços para palavras, com cada palavra tendo um único número de bits por endereço." - Stallings
Operações de Leitura em Cache
Fonte: http://docplayer.com.br/docs-images/24/2523101/images/22-0.png
Este diagrama explica de maneira mais clara o texto apresentado acima. Considere que o endereço RA seja um dado que a cpu requisitou. O mesma imagem encontra-se na página 97.
Organização típica da Memória Cache
Fonte: http://docplayer.com.br/docs-images/24/2523101/images/26-0.png
Lembra-se do assunto de barramentos?
Na imagem acima temos as principais linhas de barramento que gerênciam a troca de dados entre o processador e a memória cache. Imagine como seria a troca de informação quando a CPU requisita um dado a Memória Cache. Pense em quais linhas do barramento seriam utilizadas e o porque disso.
Linhas (Interconexão):
- Controle
- Endereço
- Dados
Lembrando que MP -> Significa Memória Principal
Pergunta:
O que será que acontece quando a CPU requisita um dado a Memória Cache e esse dado está lá ? E o que acontece quando esse dado não está ?
- Dica: Cache Miss, Cache Hit
Próximo Tópico: Elementos do Projeto de Memória Cache