Subsistemas de memória Livro Introdução à Organização de Computadores Capítulos: 4 – Memória Principal 5 – Memória Cache 9 – Memoria Secundária
Subsistemas de memória Memória Cache – Comparação DRAM SRAM Fonte: Fonte: http://users.ece.gatech.edu/~sudha/academic/ http://www.1-core.com/library/digital/fpga-architecture/ class/ece2030/Lectures/memory/index.html
Subsistemas de memória Diferenças de velocidade No caso de armazenamento secundário, esse tempo aumenta para a casa de ms. Como resolver esse problema? Processador ~.5ns a 2ns Transferência: ~100ns Memória principal
Subsistemas de memória Memória Cache – Princípio de localidade Em um programa as instruções são ordenadas sequencialmente; Em execução, a CPU busca as instruções sequencialmente.
Subsistemas de memória . Processador ~.5ns a 2ns Transferência: ~1ns Memória cache Memória principal Transferência: ~100ns
Subsistemas de memória Processo: CPU envia pedido de dados pelo barramento de endereços; Controle de cache intercepta o pedido e interpreta a informação; Se a informação estiver disponível, já a devolve (acerto ou hit); Do contrário envia o pedido à memória principal (falha ou miss); No caso de falha, para aproveitar o princípio de localidade, o controle de cache já solicita mais dados da memória;
Subsistemas de memória .
Subsistemas de memória Elementos de projeto de cache Mapeamento Algoritmos de substituição Política de escrita Níveis de cache Tamanho do cache Largura de linha do cache
Subsistemas de memória Mapeamento direto
Subsistemas de memória Mapeamento direto - endereços Cache Memória principal Byte 1 Byte 2 Tag Byte 00000 Byte 00001 Byte 00010 Byte 00011 Byte 11100 Byte 11101 Byte 11110 Byte 11111 ....... Bloco 0000 Bloco 0001 Bloco 1110 Bloco 1111 Tag Byte Linha 5 bits
Subsistemas de memória Mapeamento direto – endereços Exemplo (32 bytes MP, 8 bytes cache, linhas de 2 bytes): Tag 2 bits, linha 2 bits, byte 1 bit; Arquitetura x86 (4GB MP, 64KB cache, linhas de 64 bytes): Tag 16 bits, linha 10 bits, byte 6 bits.
Subsistemas de memória Mapeamento associativo - endereços Cache Memória principal Byte 1 Byte 2 Tag Byte 00000 Byte 00001 Byte 00010 Byte 00011 Byte 11100 Byte 11101 Byte 11110 Byte 11111 ....... Bloco 0000 Bloco 0001 Bloco 1110 Bloco 1111 Tag Byte 5 bits
Subsistemas de memória Mapeamento Associativo por conjuntos
Subsistemas de memória Algoritmos de substituição LRU (Least recently used) FIFO (First in-first out) LFU (Least frequently used) Aleatório
Subsistemas de memória Política de escrita no cache Escrita em ambas (write through); Escrita somente no retorno (write back); Escrita uma vez (write once).
Subsistemas de memória Níveis de cache Variável atualmente de 1 a 3. 3 níveis é comum hoje em dia com múltiplos processadores; Pode ser dividido para dados e instruções, ou então unificado;
Subsistemas de memória Tamanho de memória cache Tamanho depende de equilíbrio entre tamanho da MP, relação acerto/faltas, tempo de acesso da MP e das memórias cache, custo por bit das memórias e natureza dos programas executados