Seq.18 – Memória Cache 1
Sequência 18
Memória Cache
Organização e Arquitetura de
Computadores
Understand the CPU-to-memory gap
Understand issues and opportunities to fill
the CPU-to-memory gap
Understand the memory to storage gap
Understand issues and opportunities to fill
the memory-to-storage gap
Increasing core performance
Increasing cores
Increasing bus speed
More memory
0 200 400 600 800 1000 1200 1 9 9 7 1 9 9 8 1 9 9 9 2 0 0 0 2 0 0 1 2 0 0 2 2 0 0 3 2 0 0 4 2 0 0 5 2 0 0 6 2 0 0 7Increasing density
Faster interfaces
Increasing latency
NAND
L1 L2 FSBus DRAM HDD 1 2 4 8 16 32 Number of Cores
Normalized Latency per Core
Source: Instat, Micron, Intel Source: Instat, Micron, Intel Source: Instat, Micron, Intel Source: Instat, Micron, Intel
1 10 100 1000 1B 100M 10M 1M C lo c k s o f L a te n c y Level 1 Cache Level 2 Cache Main Memory Disk
AMD “Barcelona”
Quad core
2M shared L3 cache
Dedicated L2 caches
Intel “Penryn”
Dual/Quad core
6MB/12MB L2 cache
Intel “Nehalem”
1 L1 Cache 200 2.5 L2 Cache 140 35 L3 Cache 120 300 DRAM 8250,000
SSD
3
25,000,000 HDD 0.7 Relative RelativeRelative Relative Latency LatencyLatencyLatency RelativeRelativeCost/bitCost/bitRelativeRelativeCost/bitCost/bit
NAND NAND NAND NAND CPU CPU CPU CPU
NAND Flash Closes the Latency Gap NAND Flash Closes the Latency GapNAND Flash Closes the Latency Gap NAND Flash Closes the Latency Gap
Power
Reliability
Space
Performance
Table 1: Observed failure rates
System Source Type Part
Years Fails Fails /Year TerraServer SAN Barclay SCSI 10krpm 858 24 2.8% controllers 72 2 2.8% san switch 9 1 11.1% TerraServer
Brick Barclay SATA 7krpm 138 10 7.2%
Web Property 1 anon SCSI 10krpm 15,805 972 6.0% Controllers 900 139 15.4% Web Property 2 anon PATA 7krpm 22,400 740 3.3% motherboard 3,769 66 1.7%
Source: Microsoft Research
Flash Translation Layer
Interfaces to traditional HDD File System Enables sector I/O to Flash
Wear leveling Bad block management
Automatic reclamation of erased blocks Power loss protection
Manages multiple NAND devices
Operating System Application File System SSD NAND Controller ECC Flash Translation Layer (FTL) HDD Controller
Manages Physical Protocol NAND Command encoding High Speed data transport (DMA/FIFO)
Error Control
Algorithm to control sector-level bit reliability Implemented in hardware with software control Algorithm depends upon Flash technology
Controller ECC
Seq.18 – Memória Cache 11
Hierarquia de Memória
Seq.18 – Memória Cache 12
Seq.18 – Memória Cache 13
Memória Cache I
• Se a memória virtual cria a ilusão de uma memória
principal, física, ilimitada e mais rápida que a secundária, o objetivo da memória cache é criar outra grande ilusão: que as referências à memória serão atendidas na velocidade do processador.
Seq.18 – Memória Cache 14
Memória Cache II
Princípio da localidade I
• Localidade espacial
• Os endereços gerados por um programa
normalmente estão restritos a uma pequena
região do espaço de endereçamento virtual
(instruções de um programa e estruturas de dados).
Princípio da localidade II
• Localidade temporal
• O conjunto de endereços varia lentamente no
tempo.
• Se um item é referenciado, itens cujos endereços
são próximos tendem a ser referenciados
Seq.18 – Memória Cache 17
Medida de Desempenho I
• O desempenho de uma memória cache depende de
um conjunto de parâmetros tais como tamanho de blocos, tamanho da cache e do tipo de mapeamento utilizado.
Cache hit Quanto uma posição de memória
acessada esta na cache.
Taxa de acerto: HR (hit rate)
Seq.18 – Memória Cache 18
Taxa de falha: MR ( miss rate)
MR = 1 - HR
Medida de Desempenho II
Cache Miss Quanto uma posição de memória
acessada não está na cache.
Seq.18 – Memória Cache 19
Desempenho – Tempo de execução
Modelo simplificado• Tempo_de_execução = (ciclos_de_execução +
ciclos_de_pausa) x tempo_de_ciclo
• ciclos_de_pausa = # de_instruções x taxa_de_falha x
penalidade_de_falha
• Dois modos de melhorar o desempenho: • diminuir a taxa de falha.
• diminuir a penalidade de falha.
• O que acontece se aumentarmos o tamanho do bloco?
Seq.18 – Memória Cache 20
Desempenho – Tamanho do bloco I
Bancos de Memória Interleaved memory - Intercalada Aumentar o tamanho dos blocos tende a diminuir a
Seq.18 – Memória Cache 21
Desempenho – Tamanho do bloco II
Seq.18 – Memória Cache 22
Alocação e Organização
Como sabemos se um dado se encontra na cache? Caso afirmativo como localizá-lo?
• Mapeamento direto
• Mapeamento totalmente associativo • Mapeamento associativo por grupos
Mapeamento direto
• Para cada item da
memória principal existe exatamente uma localização na cache onde o item pode estar.
• Vários itens da memória principal compartilham localizações na cache. • Endereço é: Módulo(número de
Seq.18 – Memória Cache 25
• Vantagens:
• Não há necessidade de algoritmo de substituição. • Hardware simples e de baixo custo.
• Alta velocidade de operação. • Desvantagens:
• Desempenho cai se acessos consecutivos são
feitos a palavras de mesmo índice.
• Hit ratio inferior ao de caches com mapeamento
associativo
Mapeamento direto: Vantagens x Desvantagens
Seq.18 – Memória Cache 26
Mapeamento Set Associativo
• Set associativo: Do Inglês: "Set Associative".
• O mapeamento parcial é um projeto intermediário
entre o mapeamento direto e o total, Neste caso, existem um número fixo de posições onde a palavra pode ser armazenada (pelo menos duas) que é chamado um conjunto.
• Uma cache com um conjunto de duas posições é
chamada: 2-way set-associativa.
• Uma cache com um conjunto de quatro posições é
chamada: 4-way set-associativa.
Seq.18 – Memória Cache 27
Mapeamento Set Associativo – 4 Way
Processador FastMATH, cache 16 KB com 256 blocos
De 16 Words por bloco
Seq.18 – Memória Cache 29
Mapeamento Completamente Associativo
Do Inglês: "Fully-Associative".
• A palavra pode ser colocada em qualquer lugar da
cache. Neste caso deve ser armazenado na cache não somente o dado mas também o endereço.
• Para descobrir se a posição procurada está armazenada na cache, é feita a comparação simultânea de todos os endereços, caso seja localizado (cache hit) o dado é devolvido ao processador. Caso o endereço pesquisado não se encontre na cache (cache miss) a memória principal é acessada.
Seq.18 – Memória Cache 30
•Vantagens:
• Máxima flexibilidade no posicionamento de qualquer palavra (ou linha) da memória principal em qualquer palavra (ou linha) da cache.
•Desvantagens:
• Custo em hardware da comparação simultânea de
todos os endereços armazenados na cache.
• Algoritmo de substituição (em hardware) para
selecionar uma linha da cache como conseqüência de um miss.
Mapeamento CA : Vantagens x Desvantagens
Mapeamento associativo
Estratégias de substituição I
Quando ocorre cache miss, uma nova linha deve ser trazida da memória principal para a cache. Em que local da cache será colocada esta linha?
A estratégia de substituição define qual linha será tirada da cache para dar lugar a nova.
• No caso do mapeamento direto, cada palavra tem
um lugar pré-definido, então não existe escolha.
• No caso do mapeamento completamente
associativo, pode-se se escolher qualquer
posição da cache.
• No caso do set associativo, qualquer posição
Seq.18 – Memória Cache 33
Estratégias de substituição II
• Substituição aleatória: Neste caso é escolhida uma
posição qualquer da cache aleatoriamente para ser substituída. É mais simples de implementar mas não leva em conta o principio da localidade temporal.
• First-in First-out: Remove a linha que está a mais
tempo na cache. Exige a implementação de uma fila em hardware.
• LRU - Least Recently Used: Menos recentemente
utilizado. Remove a linha que a mais tempo não é referenciada. Exige implementação de um contador para cada linha. Quando um Hit ocorre na linha seu contador é zerado, enquanto todos os demais são incrementados. Quando for necessário substituir uma linha, será retirada aquela cujo contador tiver o valor mais alto.
Seq.18 – Memória Cache 34
Políticas de escritas
• Como qualquer requisição de acesso à memória é
feito através da cache, se a CPU fizer a escrita de uma posição que estiver armazendada na cache, e se esta alteração não for repassada para a memória principal, pode-se perder a atualização quando a linha da cache for substituída. Para evitar esse problema pode-se adotar duas estratégias:
• Write-Through • Write-Back
Seq.18 – Memória Cache 35
Políticas de escritas – Write Through
• A política Write-Through passa cada operação não
somente para a memória cache, mas também para a memória principal, garantindo desta forma que o tem na cache tem na memória principal. Toda vez
que escrever na cache, também escreve na
principal.
• Esta política é muito simples e lenta.
Seq.18 – Memória Cache 36
• A política Write-Back só escreve no cache. Quando
o barramento estiver livre é que vai procurar na memória principal. Sua desvantagem é que quando a memória cache estiver cheia tem que garantir que o que está na cache, também está na memória principal.
• A política Write-back é mais complicada para ser
implementada, mas fornece mais alta performance que a política write-through
Seq.18 – Memória Cache 37
AMAT – Tempo Médio de Acesso à Memória
AMAT Average Memory Access Time
• Métrica que exprime qual é o tempo médio gasto no
acesso a dados no sistema de memória. AMAT = Hit Time + MR * Miss Penalty
Hit Time = Tempo gasto para acessar a memória cache.
MR = Miss Rate = Taxa de falhas = (1 – Hit Rate).
Miss Penalty = Penalidade (em tempo) devido ao dado não estar na cache.
Seq.18 – Memória Cache 38
Exercício típico sobre AMAT
1) Encontre o tempo médio de acesso (AMAT) à memória para uma máquina cujo tempo de ciclo é de 2 ns, cuja penalidade por falta é de 20 ciclos, com uma taxa de falhas de 5% por instrução, e com uma cache cujo tempo de acesso (incluindo a deteção do acerto) é de 1 ciclo de clock. Suponha que as penalidades para leituras e escritas são as mesmas e ignoram qualquer outra parada devida a operações de escrita.
Resposta:
Exercício típico sobre AMAT
2) Considerando o exercício anterior, suponha que possamos melhorar a taxa de faltas (miss rate) para 3% falta por referência, dobrando o tamanho da cache. Isto faz com que o tempo de acesso cresça para 1,2 ciclo de clock. Usando o AMAT como métrica, determine se as modificações são ou não convenientes.