• Nenhum resultado encontrado

Sequência 18 Memória Cache

N/A
N/A
Protected

Academic year: 2021

Share "Sequência 18 Memória Cache"

Copied!
10
0
0

Texto

(1)

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 7

Increasing density

Faster interfaces

Increasing latency

NAND

(2)

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 8

250,000

SSD

3

25,000,000 HDD 0.7 Relative RelativeRelative Relative Latency LatencyLatency

Latency 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

(3)

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

(4)

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

(5)

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

(6)

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

(7)

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

(8)

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

(9)

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

(10)

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.

Referências

Documentos relacionados

(2014) apresenta três aplicações reais de domínios diferentes que utilizam o Chiron e exploram os dados coletados pela proveniência para avaliar a configuração de

Decreasing levels of circulating Treg cells, just as seen with the CD3 – CD19 + B subset, were correlated with higher scores of disease activity.. Diminished levels of Treg

Diferente de um simples buffer (como os usados em gravadores de CD para evitar que você perca a mídia por interrupções na gravação), onde os dados entram e saem na mesma ordem, o

A comissão do leiloeiro correspondente a 5% (cinco por cento), sobre o valor do arremate, a qual não está incluída no valor do lance, deverá ser paga em até 24 (vinte e

Estivo relacionado dende moi novo co movemento nacionalista; e a comezos dos anos 30 afiliouse ás Xuventudes Galeguistas para iniciar unha actividade política

Ocupação Romana dos Estuários do Tejo e do Sado – Actas das primeiras Jornadas sobre Romanização dos Estuários do Tejo e do Sado.. Lisboa: Câmara Municipal do

MULTI-PROCESSORS Multiprocessadores Máquina UMA Espaço de Endereçamento Proc Cache Interconexão Memória Principal Proc Cache I/O Proc Cache Proc Cache Proc Cache Proc

MESA REDONDA: A Prática Clínica Homeopática na Saúde