Fatec - Sorocaba MEMÓRIA CACHE E TÉCNICAS DE MAPEAMENTO Capítulo 5 Profª Maria Angélica Calixto de Andrade Cardieri 1 A Memória Cache A cache é uma memória de acesso randômico (random access memory – RAM) que o microprocessador pode acessar mais rapidamente que uma memória RAM convencional. Sua finalidade é aumentar o desempenho do processador realizando uma busca antecipada na memória RAM. Profª Maria Angélica Calixto de Andrade Cardieri 2 Memória Cache Para processar dados, o microprocessador verifica primeiramente na memória cache se esses dados estão armazenados lá, se os encontra (proveniente de uma leituras anteriores desses mesmos dados) não necessita obtê-los de outra memória mais lenta. A RAM principal geralmente é um chip DRAM ( dynamic RAM). A SRAM, utilizada como memória cache, não é atualizada eletronicamente como a DRAM, e por isso é mais cara que a ela. Uma SRAM (ou memória cache) comum no mercado tem tamanho de 1048 kilobytes (1 megabyte). Uma DRAM típica varia a capacidade de 4 megabytes a 32 megabytes. ***** Profª Maria Angélica Calixto de Andrade Cardieri 3 MEMÓRIAS CACHE PRIMÁRIA E SECUNDÁRIA Estrutura conhecida como memória cache em dois níveis; Memória Cache Primária – L1 (interna) - Integrada ao processador, permitindo acesso em único ciclo de clock; Cache Secundária – L2 (externa) - Localizada na placa-mãe do sistema, consome em média 2 ou 3 ciclos de Profª Maria Angélica Calixto de Andrade clock; Cardieri 4 MEMÓRIAS CACHE PRIMÁRIA E SECUNDÁRIA NESSE SISTEMA: L1: Memória Cache Primária: captura a maioria dos acessos realizados pelo processador; L2: Memória Cache Secundária: captura os acessos que resultam em falhas; Profª Maria Angélica Calixto de Andrade Cardieri 5 A Memória Cache Profª Maria Angélica Calixto de Andrade Cardieri 6 Arquitetura Atual Cache Nível L1: sempre localizada dentro do processador Cache Nível L2: localizados dentro do processador no interior da pastilha ma separada deste.(acesso com o clock interno); Cache Nível L3: Qdo o processador possue L1 e L2 interna a L3 é a cache localizada na placa mãe. Para aumentar a memória cache é necessário trocar o processador; Profª Maria Angélica Calixto de Andrade Cardieri 7 Exemplos: 386 DX: cache externo ao processador e opcional (64KB ou 128KB) - “write-through”; 486 DX: 8 KB interno (L1) e 128 KB ou 256 KB externo (L2) - “write-back”; Pentium: 2 circuitos separados (16 KB + 16 KB) – uma cache para instruções e outra para dados; AMD K5, K6 e K6-2: mesma arquitetura de cache, K6-III possuía L3; Profª Maria Angélica Calixto de Andrade Cardieri 8 Diferença de Velocidade Processador/MP A memória principal transfere bits para o processador em velocidades sempre inferiores às que o processador pode receber e operar os dados. Isso faz com que o processador fique em estado de espera (wait state). Memória Principal Processador Operação Soma: 2 ns Transferência 100 ns Profª Maria Angélica Calixto de Andrade Cardieri 9 Princípio de Localidade É a tendência do processador ao longo de uma execução referenciar instruções e dados da memória principal localizados em endereços próximos; Constatação feita por pesquisadores há muito tempo…..(agrupar pequenos itens de acesso frequente próximo ao usuário) Localidade Temporal e Espacial Profª Maria Angélica Calixto de Andrade Cardieri 10 Princípios de Localidade Localidade Temporal: Se o programa acessa uma palavra de memória há uma boa probabilidade de que ele em breve acesse a mesma palavra novamente. Isto é, os programas tendem a usar frequentemente o mesmo endereço em curtos espaços de tempo, por exemplo um loop. Localidade Espacial: Se o programa acessa uma palavra de memória, há uma boa probabilidade de que o acesso seguinte seja uma palavra subsequente ou de endereço adjacente àquela palavra que acabou de acessar. Profª Maria Angélica Calixto de Andrade Cardieri 11 Operação A Cache é feita de uma fila de elementos: Cópia exata do dado presente em outro local; Cada elemento tem um rótulo especificando a identidade e o local de armazenamento original. CACHE HIT – acerto O dado é encontrado na cache - hit rate ou hit ratio > 90% é o ideal. CACHE MISS – falha O dado não é encontrado na cache. Profª Maria Angélica Calixto de Andrade Cardieri 12 Organização e funcionamento da memória cache Profª Maria Angélica Calixto de Andrade Cardieri 13 Políticas de Escrita na Cache Problema: Como manter a Cache e a MP atualizadas ??? Políticas: Write-Back Write-through WRITE-BACK (Somente no retorno): - A atualização da MP é feita somente quando o bloco for substituido. - A CPU escreve diretamente na cache, cabe ao sistema a posterior escrita na MP; - CPU fica livre rapidamente para executar outras operações; - “Dirty bit” : bit adicional para indicar se o bloco armazenado na cache sofreu alterações ou não Profª Maria Angélica Calixto de Andrade Cardieri 14 POLÍTICAS DE ESCRITA WRITE-BACK VANTAGENS: - A escrita ocorre à velocidade da cache; - Escritas múltiplas de endereço requerem apenas uma escrita na memória; - Consome menos largura de banda. DESVANTAGENS: - Mais difícil implementação; - Nem sempre há consistência entre dados da cache e memória principal que pode ficar desatualizada para utilização por outros dispositivos ligados à ela; - Precisa do “dirty bit”. Profª Maria Angélica Calixto de Andrade Cardieri 15 POLÍTICAS DE ESCRITA WRITE-THROUGH (escrita em ambas): Cada vez que um elemento é escrito na cache ele também é escrito na memória principal; Pior desempenho que o Write-Back; Implementação mais simples; Consistência interna (cache sempre síncrona com a memória). Profª Maria Angélica Calixto de Andrade Cardieri 16 POLÍTICAS DE ESCRITA WRITE-THROUGH VANTAGENS: - Fácil de implementar; - Um cache miss nunca resulta em escritas na memória pois a memória principal tem sempre a informação mais recente e portanto não precisa ser atualizada. DESVANTAGENS: - A escrita é lenta; - Pode haver uma grande quantidade de escritas desnecessárias na MP Profª Maria Angélica Calixto de Andrade Cardieri 17 ELEMENTOS DO PROJETO DE UMA CACHE TAMANHO O tamanho da memória cache deve levar em consideração o custo por bit e o tempo de acesso. Profª Maria Angélica Calixto de Andrade Cardieri 18 ELEMENTOS DO PROJETO DE UMA CACHE FUNÇÃO DE MAPEAMENTO Como o nº de linhas da memória cache é bem menor que o nº de blocos da MP, são necessárias formas de mapear os blocos da memória principal para a cache: - Mapeamento Direto; Mapeamento Associativo; Mapeamento Associativo por Conjunto; - Profª Maria Angélica Calixto de Andrade Cardieri 19 ELEMENTOS DO PROJETO DE UMA CACHE MAPEAMENTO DIRETO Neste tipo de cache temos acesso simultâneo ao tag (nome dado a um dos campos do diretório) e aos dados. Não é necessária memória associativa, e o algoritmo de substituição é trivial. A taxa de acerto é baixa. Profª Maria Angélica Calixto de Andrade Cardieri 20 ELEMENTOS DO PROJETO DE UMA CACHE MAPEAMENTO ASSOCIATIVO Na cache com mapeamento totalmente associativo, uma determinada palavra pode ocupar qualquer posição na cache. Os bits de tag são usados para comparação. Neste caso, para saber se um bloco está na cache, é necessário pesquisar todos os blocos. Profª Maria Angélica Calixto de Andrade Cardieri 21 ELEMENTOS DO PROJETO DE UMA CACHE MAPEAMENTO ASSOCIATIVO POR CONJUNTO Caches com mapeamento associativo por conjunto tem compromisso entre mapeamento direto e totalmente associativo. Ele reduz o tamanho e o custo da comparação associativa, e é usado pela maioria das CPUs atuais. Profª Maria Angélica Calixto de Andrade Cardieri 22 ELEMENTOS DO PROJETO DE UMA CACHE ALGORITMOS DE SUBSTITUIÇÃO 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 que o processo seja feito rapidamente ele deve ser implementado em hardware: - LRU (Least Recently Used); menos recentemente utilizado FIFO (First In First Out); Primeiro a entrar é o primeiro a sair (fila) LFU (Least Frequently Used); menos frequentemente utilizado - - Profª Maria Angélica Calixto de Andrade Cardieri 23 Tipos de Algoritmos LRU – Least Recently Used (O que não é usado há mais tempo) O Sistema escolhe um bloco que o processador não acessa há mais tempo Bit adicional em cada linha Profª Maria Angélica Calixto de Andrade Cardieri 24 Tipos de Algoritmos FIFO – First-In, First-Out (Fila) → Esquema de fila (Chegou primeiro, first in, é o que primeiro que sai, first out) → O sistema escolhe o bloco que está há mais tempo na cache independente da frequência de uso do bloco pelo processador LFU – Least Frequently Used (o que tem menos acesso) → Bloco que teve menos acessos pelo processador é escolhido (menos referências) Escolha aleatória → Bloco é escolhido aleatoriamente, independente do seu uso pelo processador Profª Maria Angélica Calixto de Andrade Cardieri 25 Referências Trabalho dos alunos da Fatec-Sorocaba, Curso de PD disciplina de SC - 2º semestre de 2008. Anderson Blezins de Araujo; Erick Braz Machado ; Lucas Gomes Finoti; Rafael de França Neves ; Victor Valerio Moraes Livro do Mário Monteiro – Introdução a organização de Computadores 5ª edição - Editora LTC Profª Maria Angélica Calixto de Andrade Cardieri 26