O documento discute os tipos de memória, incluindo RAM, ROM, memória de semicondutores e memória cache. Explica que a memória cache tem como objetivo fornecer um acesso de memória rápido como as memórias mais rápidas a um custo menor. Detalha elementos do projeto de uma memória cache, como tamanho, função de mapeamento e algoritmos de substituição.
1. Centro de Ensino Superior de Maceió - CESMAC
Faculdade de Ciências Exatas e Tecnológicas – FACET
Curso de Análise de Sistemas
Memória
Wendhel Washington Santos Moura
5. Memória
Cache
O objetivo da memória cache é obter uma velocidade de
acesso à memória próxima da velocidade das memórias
mais rápidas e, ao mesmo tempo, disponibilizar no sistema
uma memória de grande capacidade, a um custo
equivalente ao das memórias de semicondutor mais
baratas.
10. Memória
Elementos do projeto de uma cache
Tamanho
Ao se determinar o tamanho da memória cache devemos levar
em consideração o custo por bit e o tempo de acesso. Assim,
uma cache deve ser suficientemente grande para que o tempo
médio de acesso à memória seja próximo ao tempo de acesso
à cache e pequeno o suficiente para que o custo por bit não
seja alto e se equipare ao da memória principal. Quanto maior
o tamanho da cache mais lento é o seu acesso, pois uma
quantidade de portas maior será utilizada no seu
endereçamento.
11. Elementos do projeto de uma cache
Memória
Função de Mapeamento
O número de linhas da memória cache é bem menor que o
número de blocos da memória principal. Assim, devemos
encontrar uma forma de mapear os blocos da memória
principal para a cache. Existem 3 técnicas diferentes que
podem ser utilizadas: mapeamento direto, mapeamento
associativo e mapeamento associativo por conjunto.
12. Elementos do projeto de uma cache
Memória
Função de Mapeamento
Mapeamento Direto
Este método é o mais simples, sendo cada bloco da memória
principal mapeado em uma única linha da cache.
13. Elementos do projeto de uma cache
Função de Mapeamento
Mapeamento Associativo
Neste modo é permitido que um bloco da memória principal
seja mapeado para qualquer linha da memória cache. Todo
endereço da memória principal é interpretado como sendo
constituído de um rótulo, que identifica de modo unívoco um
bloco da MP, e um campo de palavra.
Memória
14. Elementos do projeto de uma cache
Função de Mapeamento
Mapeamento Associativo por Conjunto
Este método mescla as duas forma de
mapeamento visto anteriormente.
Memória
15. Algoritmo de Substituição
Memória
Quando a memória cache está cheia e um novo bloco é trazido para ela,
algum bloco existente deve ser substituído para dar lugar ao novo. Para
o caso do mapeamento direto isso é tranqüilo, uma vez que cada bloco
da MP tem pré-determinado a sua posição na cache, não havendo
qualquer outra alternativa. Por outro lado, os mapeamentos associativos
e por conjunto necessitam de alguma política ou algoritmo para
determinar qual o bloco que deixará a cache para que o novo bloco
possa ser armazenado. Para que todo este processo seja feito
rapidamente ele deve ser implementado em hardware.
16. Algoritmo de Substituição
Memória
Substituiremos o bloco que está no conjunto que não é usado
há mais tempo. Cada linha inclui um bit a mais, chamado de bit
de USO. Assim quando um novo bloco deve ser armazenado
no conjunto ele ocupa a linha que não é usada há mais tempo.
Este algoritmo é um dos mais eficientes para aumentar a
cache hit.
LRU (Least Recently Used)
17. Algoritmo de Substituição
Memória
É bem simples, o primeiro bloco a ser armazenado será o
primeiro a ser substituído
FIFO (First In Firt Out)
18. Algoritmo de Substituição
Memória
O algoritmo substituirá o bloco que foi utilizado menos vezes.
Podemos colocar um contador a cada uma das linhas da
memória cache para obter esta informação.
LFU (Least Frequently Used) – Menos utilizado
19. Bibliografia
STALLING, W. Arquitetura e Organizações de
Computadores, 5ª Edição, Prentice Hall, São Paulo,
2002.