Anda di halaman 1dari 38

Arquitetura e Organizao de Computadores

Captulo 4 Memria cache

slide 1

2010 Pearson Prentice Hall. Todos os direitos reservados.

Caractersticas dos Sistemas de memria do Computador


Localizao. Capacidade. Unidade de transferncia. Mtodo de acesso. Desempenho. Tipo fsico. Caractersticas fsicas. Organizao.

Localizao Interna:
na CPU: registradores memria principal: cache e outras.

Externa: p.e. disco e fita

Capacidade
Tamanho de palavra (memria interna): A unidade de organizao natural. Expresso em bits Nmero de palavras (memria externa): Expresso em Bytes.

Unidade de transferncia
Interna: Normalmente controlada pela largura do barramento. Externa: Normalmente um bloco que muito maior que uma palavra. Unidade enderevel: Menor local que pode ser endereado exclusivamente, tambm chamada de clula. N unidades endereveis = 2A , onde A o tamanho de bits de um endereo.

Mtodos de acesso
Sequencial: Comea no incio e l em ordem. Tempo T d de acesso depende d d da d localizao l li dos d dados e local anterior. Por exemplo, fita. Direto: Blocos individuais possuem endereo exclusivo. Acesso saltando para vizinhana, mais uma busca sequencial. i l Tempo de acesso depende da localizao e local anterior. Por exemplo, disco.

Mtodos de acesso
Aleatrio: Endereos individuais identificam localizaes com exatido. exatido Tempo de acesso independente da localizao ou acesso anterior e constante. P.e., memria principal DRAM e algumas caches. Associativo: Dados so localizados por uma comparao com contedo de uma parte do armazenamento e no por um endereo. Tempo de acesso independente do local ou acesso anterior e constante. P.e., cache.

Desempenho
Tempo de acesso (latncia): Tempo e po entre e e a apresentao ap ese ao do endereo e de eo e obteno dos dados vlidos. Tempo de ciclo de memria:
Tempo que pode ser exigido para a memria se recuperar antes do prximo acesso.

Tempo de ciclo = t. de acesso + recuperao. Taxa de transferncia: Taxa em que os dados podem ser movidos. Para a DRAM 1/(tempo de ciclo)

Tipos fsicos
Semicondutor: RAM e Flash Magntico: Disco e fita. ptico: CD e DVD. Outros: Holograma. Novos discos HVD.

Caractersticas fsicas
Deteriorao. Volatilidade. Apagvel. Consumo de energia.

Organizao
Arranjo fsico dos bits em palavras. Arranjo bvio nem sempre usado. P.e., intercalada. P.e., 1MBytes organizados em 2x 512KBytes

A concluso
Quanto? Capacidade. Que velocidade? Tempo dinheiro. Com que custo?

Algumas relaes
Tempo de acesso mais rpido, maior custo p/ bit Maior capacidade, menor custo p/ bit Maior capacidade, tempo de acesso mais lento

Hierarquia de memria Diagrama

Lista de hierarquia
Registradores (na CPU). Cache L1. Cache L2. Cache L3 Memria principal. Cache de disco. Disco Disco. ptica. Fita.

Descendo na hierarquia ocorre:


a) b) c) d) Diminuio do custo p/ bit. Aumento da capacidade. Aumento do tempo de acesso. Diminuio da frequencia de acesso memria pelo computador

Obs.: a chave o item d) diminuio da frequncia de acesso. Explicao em Memria cache neste captulo e em memria virtual no captulo 8.

Ento queremos velocidade?


possvel montar um computador que usa apenas RAM esttica (veja adiante). Este seria muito rpido. Este no precisaria de cache. Isso sairia muito caro.

Localidade de referncia (Denning, 1968)


Durante o curso da execuo de um programa, as referncias memria pelo processador, para instrues e dados, tendem a se agrupar. P.e., loops interativos.

Princpios da memria cache


Pequena quantidade de memria rpida. Fica entre a memria principal grande e lenta e a CPU. A cache contm uma cpia de partes da memria principal Pode estar localizada no chip da CPU ou mdulo.

Cache e memria principal

10

Estrutura de cache/memria principal

Operao da cache viso geral


CPU requisita contedo do local de memria. Verifica se os dados esto em cache. Se estiverem, apanha da cache (rpido). Se no, l bloco solicitado da memria principal para a cache. Depois, Depois busca da cache cache. Cache inclui Tags para identificar qual bloco da memria principal est em cada slot da cache.

11

Operao de leitura de cache fluxograma


RA = read address

Organizao tpica da memria cache

12

Projeto de memria cache


Endereamento. Endereamento Tamanho. Funo de mapeamento. Algoritmo de substituio. Poltica de escrita. Tamanho de bloco. bloco Nmero de caches.

Endereamento de cache
Onde fica a cache? Entre processador e MMU (unidade de gerenciamento de memria virtual). Explicada no captulo 8. Entre MMU e memria principal. l Cache lgica (cache virtual) armazena dados usando endereo virtual. Processador acessa a cache diretamente, sem passar pela MMU. Vantagem: Acesso cache lgica mais rpido, pois a cache responde antes da traduo de endereo da MMU. Endereos E d virtuais i t i usam o mesmo espao de d endereos d para diferentes aplicaes. Deve esvaziar cache a cada troca de contexto. Cache fsica armazena dados usando endereos fsicos da memria principal.

13

Caches lgicas e fsicas

Tamanho ideal da cache impossvel

Importa: Custo Mais cache caro. Velocidade: Mais Mais cache mais rpido (at certo ponto). Verificar dados na cache leva tempo.

14

Comparao de tamanhos de memria cache

Funo de mapeamento - Exemplo

Cache de 64 KB. Bloco de cache de 4 bytes. Ou seja, cache de 16k (214) linhas de 4 bytes. 16 MB de memria principal. Endereo direto de 24 bits. (2 (224=16MBytes) 6 ) Memria principal tem 4M blocos de 4 bytes

15

Mapeamento direto

Cada bloco de memria principal mapeado apenas para uma linha de cache possvel. Ou seja, se um bloco est na cache, ele deve estar em um local especfico. w bits menos significativos identificam word exclusiva. s bits mais significativos especificam um bloco de memria. Lgica L i d de cache h interpreta i t t os s bits bit em 2 partes: t um campo de linha de cache r e um campo de tag de s-r (parte mais significativa).

Mapeamento direto (exemplo) Estrutura de endereos


Tag s-r 8 Linha r 14 Bloco s
Endereo da memria principal de 24 bits (224 =16 MB). Identificador de palavra de 2 bits (blocos de 4 bytes). Identificador de bloco de 22 bits (4M blocos). Linha de cache de 14 bits ( (16K linhas). ) Tag de 8 bits (=22-14). Dois blocos na mesma linha no tm o mesmo campo de tag. Verifica-se o contedo da cache localizando linha e verificando tag.

Palavra w 2

16

Mapeamento direto da cache para memria principal Cada bloco de memria principal mapeado apenas para uma linha de cache p possvel.

Mapeamento direto Tabela de linhas de cache

Linha Li h de d cache h (m linhas) 0 1 m-1

Bl Blocos d de memria i principal i i l mapeados 0, m, 2m, 3m2s-m 1,m+1, 2m+12s-m+1

m-1, 2m-1,3m-12s-1

17

Organizao da cache com mapeamento direto

Lgica de cache

Exemplo de mapeamento direto


4 bytes !

18

Resumo de mapeamento direto

Tamanho de endereo= endereo (s + w) bits. Nmero de unidades endereveis= 2s+w palavras ou bytes. Tamanho de bloco= tamanho de linha= 2w words ou bytes. Nmero de blocos na memria principal= 2s. Nmero de linhas na cache = m = 2r. Tamanho da tag= (s r) bits.

Prs e contras do mapeamento direto


Simples. Barato. Local fixo para determinado bloco, isto , cada bloco sempre ser carregado na mesma linha de cache. Mas, se um programa referenciar palavras repetidamente p de dois blocos diferentes, , ento os blocos sero continuamente trocados e razo de acerto ser baixa (trashing).

19

Cache vtima (uma tcnica)


Guarda o que foi descartado. descartado J buscado. Usa novamente com pouca penalidade. Menor penalidade de falha. Totalmente associativa. Normalmente de 4 a 16 linhas de cache. Entre cache L1 (mapeada diretamente) e nvel de memria seguinte.

Mapeamento associativo
U Um bloco bl de d memria i principal i i l pode d ser carregado d em qualquer linha de cache. Endereo de memria interpretado como tag e palavra. Tag identifica exclusivamente o bloco de memria. Tag de cada linha examinada em busca de combinao. combinao Pesquisa da cache dispendiosa.

20

Mapeamento associativo da cache para a memria principal

Organizao de cache totalmente associativa

Lgica de cache

21

Exemplo de mapeamento associativo

000000000000000000000000 000000000000000000000100

111111111111111111110100 111111111111111111111000

Mapeamento associativo Estrutura de endereo


Tag 22 Palavra w 2

Tag de 22 bits armazenado a cada bloco de 32 bits de dados. Compara campo de tag do endereo com entrada de tag na cache para procurar acerto. 2 bits menos significativos do endereo identificam qual word de 16 bits exigida do bloco de dados de 32 bits. P.e. (no slide anterior): Endereo Tag Dados Linha de cache FFFFFC 3FFFFF 24682468 3FFF

22

Resumo do mapeamento associativo


Tamanho do endereo= (s + w) bits. Nmero e o de unidades u dades e endereveis= de e e s 2s+w words o ds ou bytes. Tamanho do bloco= tamanho de linha= 2w palavras ou bytes. Nmero de blocos na memria principal= 2s+w/2w = 2s. Nmero de linhas na cache= cache indeterminado. Tamanho da tag= s bits. Maximiza a razo de acerto, mas circuito de comparao de Tags complexo

Mapeamento associativo em conjunto


Cache uma srie de conjuntos. Cada conjunto contm uma srie de linhas. Determinado bloco mapeado a qualquer linha em determinado conjunto. P.e., bloco B pode estar em qualquer linha do conjunto i. P.e., 2 linhas por conjunto: Mapeamento associativo com 2 linhas. l h Determinado bloco pode estar em uma de 2 linhas em apenas um conjunto.

23

Mapeamento associativo em conjunto Exemplo

Nmero de conjunto com 13 bits Nmero de bloco na memria principal mdulo 213 000000, 008000, , FF8000 mapeados no mesmo conjunto

Mapeamento da memria principal para cache: associativo com v caches

24

Mapeamento da memria principal para cache: associativo c/ k caches mapeadas diretamente

Organizao da cache associativa em conjunto com k linhas por conjunto

25

Mapeamento associativo em conjunto Estrutura de endereos Tag 9 Conjunto 13 Palavra w 2

Usa campo de conjunto para determinar conjunto de cache a examinar. Compara campo de tag para ver se h um acerto. P.e. ( (ver p prximo slide), ), Endereo Tag Dados Conjunto FFFFF8 1FF 11223344 1FFE 167FFC 02C 12345678 1FFF

Exemplo de mapeamento associativo em conjunto com duas linhas

000101100111111111111100 000101100111111111111100

26

Resumo de mapeamento associativo em conjunto


Tamanho do endereo= (s + w) bits. Nmero de unidades endereveis= 2s+w palavras ou bytes. Tamanho do bloco= tamanho da linha= 2w palavras ou bytes. Nmero de blocos na memria principal= 2d. Nmero de linhas no conjunto= k. Nmero de conjuntos= v= 2d. Nmero de linhas na cache= kv= k * 2d. Tamanho da tag= (s d) bits. Tag muito menor que no associativo simples e s comparada com as k tags de um nico conjunto

Associatividade varivel pelo tamanho da cache

27

Cache direta e associativa em conjunto Diferenas de desempenho


Significativo at pelo menos 64KB para 2 linhas. Diferena entre 2 e 4 linhas em 4 KB muito menor do que ao passar de 4 KB para 8 KB. Complexidade da cache aumenta com a associatividade. Complexidade no justificada contra o aumento da cache para 8kB ou 16kB. Acima de 32 KB no gera melhoria. (resultados de simulao)

O que fazer em caso de cache cheia ? Algoritmos de substituio (de blocos ) Mapeamento direto

Sem escolha. Cada bloco mapeado apenas a uma linha. Essa linha ser substituda.

28

Algoritmos de substituio Associativa e associativa em conjunto


Al Algoritmo it implementado i l t d no hardware h d (velocidade). ( l id d ) Least Recently Used (LRU). Substitui o bloco usado recentemente P.e., na associativa em conjunto com 2 linhas. Qual dos 2 blocos LRU? First In First Out (FIFO). Substitui bloco que est na cache h mais tempo. Least Frequently Used (LFU). Substitui bloco que teve menos acertos. Aleatrio.

Poltica de escrita
No se deve sobrescrever bloco de cache a menos que a memria principal esteja atualizada. Mltiplas CPUs podem ter caches individuais. E/S pode enderear memria principal diretamente.

29

Write-through
Todas as escritas vo para a memria principal e tambm para a cache. Mltiplas CPUs podem monitorar o trfego da memria principal para manter a cache local ( CPU) atualizada. Isso gera muito trfego e atrasa as escritas. Pode haver caches write-through falsos!

Write-back
Atualizaes feitas inicialmente apenas na cache. Bit de atualizao para slot de cache definido quando ocorre a atualizao. Se o bloco deve ser substitudo, escreve na memria principal apenas se o bit atualizado estiver marcado. Outras caches saem de sincronismo. E/S deve acessar a memria principal atravs da cache. 15% das referncias de memria so escritas. Para sistemas de alto desempenho (HPC) pode chegar a at 50%.

30

Tamanho de linha
Recuperar no apenas a palavra desejada, mas tambm uma srie de palavras adjacentes. adjacentes Tamanho de bloco aumentado aumentar razo de acerto a princpio. O princpio da localidade. Razo de acerto diminuir medida que o bloco se tornar ainda maior. Probabilidade de uso de informaes recmbuscadas torna-se menor que probabilidade de reutilizar informaes substitudas.

Blocos maiores: Reduzem nmero de blocos que cabem na cache. cache Dados sobrescritos pouco depois de serem buscados. Cada palavra adicional menos local, de modo que menos provvel de ser necessria. Nenhum valor ideal definitivo foi descoberto. 8 a 64 bytes parece ser razovel. Para sistemas HPC, 64 e 128 bytes mais comum.

31

Caches multinvel
Alta densidade lgica permite caches no chip. Mais rpido que acesso ao barramento. Libera barramento para outras transferncias. Comum usar cache dentro e fora do chip. L1 no chip, L2 fora do chip na RAM esttica. Acesso L2 muito mais rpido que DRAM ou ROM. L2 normalmente usa caminho de dados separado. L2 p pode agora g estar no chip. p Resultando em cache L3. Acesso ao barramento agora no chip.

Razo de acerto total (L1 & L2) Para L1 de 8 KB e 16 KB

32

Caches unificadas versus separadas


Uma cache para dados e instrues ou duas, uma para dados e uma para instrues. instrues Vantagens da cache unificada: Maior taxa de acerto. Equilibra carga entre buscas de instruo e dados. Apenas uma cache para projetar e implementar. Vantagens da cache separada: Elimina Elimina disputa pela cache entre a unidade de busca/decodificao de instruo e a unidade de execuo. Importante quando existe pipeline de instrues.

Pentium 4 cache
80386 nenhuma cache no chip. 80486 8 KB usando linhas de 16 bytes organizao associativa em conjunto com 4 linhas. Pentium (todas as verses) duas caches L1 no chip. Dados e instrues: Pentium III cache L3 adicionada fora do chip. Pentium 4: Caches Caches L1. 8 KB. Linhas 64 bytes. Associativa em conjunto com 4 linhas.

33

Cache L2: Alimentando ambas as caches L1. L1 256k. Linhas de 128 bytes. Associativa em conjunto com 8 linhas. Cache L3 cache no chip.

Evoluo de cache da Intel

34

Diagrama em blocos do Pentium 4

Processador Pentium 4 Core


Unidade de busca/decodificao: Busca instrues da cache L2. Decodifica para micro-operaes. Armazena micro-operaes na cache L1. Lgica de execuo fora de ordem: Escalona micro-operaes. Baseada em dependncia de dados e recursos. Pode executar especulativamente. Unidades de execuo: Executa micro micro-operaes operaes. Dados da cache L1. Resultados em registradores. Subsistema de memria. Cache L2 e barramento do sistema.

35

Raciocnio de projeto do Pentium 4

Decodifica instrues para RISC como microoperaes antes da L1. Micro-operaes de tamanho fixo. Pipelining e escalonamento superescalar. Instrues Pentium longas e complexas. Desempenho p melhorado separando p decodificao do escalonamento e pipelining. (Mais adiante Captulo 14)

Cache de dados write-back. Pode ser configurada para write-through. Cache L1 controlada por 2 bits no registrador. CD= Cache Disable. NW= Not write-through. 2 instrues para invalidar (esvaziar) cache e write-back depois invalidao. j com 8 linhas. L2 e L3 associativas em conjunto Tamanho de linha 128 bytes.

36

Organizao da cache e do buffer de escrita do ARM

Organizao de cache da ARM


Pequeno buffer de escrita FIFO. Melhora o desempenho de escrita da memria. Entre Entre cache e memria principal. principal Pequena cache, conforme figura Dados colocados no buffer de escrita na velocidade de clock do processador. Processador continua a execuo. Escrita externa em paralelo at que esteja vazio. Se buffer encher encher, processamento adiado (stall). ) Dados no buffer de escrita no disponveis at serem escritos na memria principal. Da, buffer de escrita ser pequeno.

37

Caractersticas da memria cache do ARM

Fontes na Internet
Sites de fabricantes: Intel. ARM. Procure sobre cache.

38

Anda mungkin juga menyukai