Foco: Caches de Alto Desempenho - HPC (High Performance Computer)
Há vários tipos de implementação de memória cache, mas há alguns elementos que classificam e diferenciam essas diversas arquiteturas.
Fonte: http://images.slideplayer.com/24/6931611/slides/slide_31.jpg
Endereço de Cache (Cache Address)
Quando há pouca memória principal geralmente utilizamos a memória virtual.
Esse tipo de utilização representa o Endereçamento Lógico (Logical).
Logo, temos que gerenciar os dados que estão no endereço lógico (os dados estão aqui temporariamente) para os Endereços Físico (Physical) da memória principal.
Esse processo pode ser feito através dos algoritmos de substituição. Alguns deles estão citados na imagem acima, que são:
- Least recently used (LRU) / Último recentemente usado
- First in First Out (FIFO) / Primeiro a chegar é o primeiro a sair
- Lease Frequently Used (LFU) / Último frequentemente usado
Quando é necessário ler ou escrever na memória principal, a unidade de gerenciamento (MMU - Memory Management Unit) converte um endereço virtual para um endereço físico.
Obs.: Nos projetos de memória cache é possível determinar a sua localização. Essa localização pode ser antes ou depois da MMU. Esse cenário ocorre por necessidade de utilização da memória virtual.
Disposição da Cache:
Fonte: http://images.slideplayer.com/13/4039044/slides/slide_8.jpg
A cache lógica é mais rápida do que a cache física, pois a chache pode responder antes do que a MMU. A desvantagem aparece no momento de mapear memória virtual.
Tamanho do Cache
Desejos do projetista de memória cache:
- Espera-se que a memória cache seja pequena a ponto de que o seu custo por bit seja aproximado ao custo da memória principal
- Seu tamanho seja suficiente para desempenhar suas tarefas rápidamente
A tabela abaixo apresenta a evolução da memória cache com relação ao seu tamanho ao longo dos anos.
Fonte: http://docplayer.com.br/docs-images/24/2523101/images/27-0.png
Próximo tópico: Função de Mapeamento