Você está na página 1de 41

Hierarquia de Memria Parte I - Cache

Sumrio
Memria grande e rpida Princpio da localidade Hierarquia de memria Cache Mtricas de desempenho Classificao Escrita

Memria Grande ou Rpida?


No projeto de um sistema digital, deve-se ter em mente que hardware menor geralmente mais rpido do que hardware maior. A propagao do sinal uma das principais causas de atrasos. No caso da memria, quanto maior mais atraso de sinal e mais nveis para decodificar endereos. Na maioria das tecnologias, pode-se obter memrias menores que so mais rpidas do que memrias maiores.

As memrias mais rpidas esto geralmente disponveis em nmeros menores de bits por integrado e custam substancialmente mais por byte.

Princpio da localidade
O aumento da largura de banda da memria e a diminuio do tempo de acesso memria so tambm importantes para o desempenho do sistema. O princpio da localidade se baseia no fato de que, num intervalo virtual de tempo, os endereos virtuais gerados por um programa tendem a ficar restritos a pequenos conjuntos do seu espao. Isto se deve a iteraes, seqenciamento das instrues e estruturas em bloco. Assim sendo, deveramos manter os itens mais recentemente utilizados na memria mais rpida e o mais prximo possvel da CPU.

Tipos de localidade
H trs componentes do princpio da localidade, que coexistem num processo ativo: Localidade temporal: h uma tendncia a que um processo faa referncias futuras a posies feitas recentemente;

Localidade espacial: h uma tendncia a que um processo faa referncias a posies na vizinhaa da ltima referncia;
Localidade seqencial: h uma tendncia a que um processo faa referncia posio seguinte atual.

Princpio da Localidade
Localidade Temporal (localidade no tempo)
Se um item referenciado , ele tende a ser referenciado novamente dentro de um espao de tempo curto.

Localidade Espacial (localidade no espao)


Se um item referenciado, itens cujos endereos sejam prximos dele tendem a ser logo referenciados.

Como explorar o princpio de localidade numa hierarquia de memria?

Localidade Temporal
Mantenha itens de dados mais recentemente acessados nos nveis da hierarquia mais prximos do processador Localidade Espacial Mova blocos de palavras contguas para os nveis da hierarquia mais prximos do processador

Consequncias do uso do princpio de localidade numa hierarquia de memria?

O objetivo de um sistema de memria hierrquico satisfeito uma vez que apresenta ao usurio uma capacidade de memria prxima disponibilida pela tecnologia mais barata, e um tempo de acesso prximo ao disponibilizado pela tecnologia mais cara. Implicando numa melhora significativa da memria

Memria Cache
Cache foi o nome escolhido para designar o nvel da hierarquia de memria situada entre o processador e a memria principal, na primeira mquina comercial que implementou este nvel extra de memria As caches apareceram primeiro nas mquinas desenvolvidas para pesquisa, no incio da dcada de 1960, sendo implementadas em mquinas comerciais um pouco mais tarde.
9

Hierarquia de memria

10

Hierarquia de Memria
Os nveis da hierarquia so subconjuntos uns dos outros. Todos os dados encontrados em um nvel tambm so encontrados no nvel abaixo dele e assim sucessivamente.
barramento de memria cache
memria barramento de e/s

CPU registradores

dispositivos de entrada e sada

< 1 KB < 16 MB 0,25-0,5 ns 0,5-25 ns 20000-100000 MB/s 5000-10000 MB/s CMOS CMOS SRAM compilador hardware

< 16 GB 80-250 ns 1000-5000 MB/s CMOS DRAM sistema operacional

> 100 GB 5 ms 20-150 MB/s disco magntico sistema operacional e usurio

Hierarquia de memria

12

Hierarquia de memria

13

Hierarquia de memria

14

Hierarquia de Memria
Hierarquia de memria consiste em diferentes nveis de memria, associados a diferentes velocidades de acesso e tamanhos.

nvel 1 nvel 2 ... aumento no tempo de acesso

nvel n tamanho da memria

Hierarquia

Caches separados

Hierarquia de memria

18

Hierarquia de Memria
Taxa de acerto (hit ratio, h) consiste na proporo dos acessos memria encontrados em um nvel da hierarquia.
Taxa de falha (miss ratio, m) consiste na proporo dos acessos memria no encontrados em um nvel da hierarquia.

m 1 h
Ciclos de parada por memria (ncp) consiste do nmero de ciclos que a CPU espera por um acesso memria, quando ocorre uma falha de acesso.

Hierarquia de Memria
O tempo de execuo da CPU deve, ento, levar em conta o nmero de ciclos de parada por memria:

tc ncc ncp cc
O nmero de ciclos de parada depende do nmero de erros (ne) e do custo por erro ou penalidade de erro (pe):

ncp ne pe
erros ncp ic pe instruo

acessos _ _ memria ncp ic m pe instruo

Cache
Um bloco consiste da unidade mnima de informao que pode estar presente ou ausente entre dois nveis da hierarquia. A memria principal, de 2m bytes, dividida em blocos consecutivos de b bytes, totalizando (2m)/b blocos.

Cada bloco tem um endereo, que um mltiplo de b, e o tamanho do bloco , normalmente, uma potncia de 2.
O cache associativo apresenta um nmero de posies, cada uma contendo um bloco e seu nmero de bloco, junto com um bit, que diz se aquela posio est em uso ou no. A ordem das entradas aleatria.

Memria Cache - Endereamento

-Mapeamento Direto -Mapeamento Associativo -Mapeamento Associativo por Conjunto

22

Hierarquia de Memria
endereo 0 137 4 52 8 memria principal 12 1410 2 1K posies 1 0 n do bloco v 1 n do bloco 0 valor 137

1
1 0

600
2

2131
1410

160248

290380

635

~ ~
(224) -1

~ ~
1 22 bits 32 bits cache associativo

Cache associativo
Se o cache estiver cheio, uma entrada ter que ser descartada para deixar lugar para uma nova. Quando aparece um endereo de memria, o microprograma deve calcular o nmero do bloco e, ento, procurar aquele nmero no cache. Para evitar a pesquisa linear, o cache associativo pode fazer uso de uma memria associativa, que compara simultaneamente todas as entradas com o nmero do bloco dado. Isto torna o cache associativo caro.

No cache com mapeamento direto, cada bloco colocado numa posio, cujo nmero pode corresponder, por exemplo, ao resto da diviso do nmero do bloco pelo nmero de posies.

Hierarquia de Memria
posio v 0 1 1 1 2 1 tag 0 600 2 valor 137 2131 1410 endereos 0, 4096, 8192, 12288, ... 4, 4100, 8196, 12292, ... 8, 4104, 8200, 12296, ...

3 0
cache com mapeamento direto

1023 0

4092, 8188, 12284, 16380, ...

Hierarquia de Memria
O campo tag guarda a parte do endereo que no participa do endereamento da posio. Ex: Seja a palavra no endereo 8192. endereo da palavra

tag

posio

00

12 bits

10 bits

Os dois bits menos significativos so 0, pois os blocos so inteiros e mltiplos do tamanho do bloco (4 bytes). O fato de que blocos mltiplos mapeiam na mesma posio pode degradar o desempenho do cache, se muitas palavras que estiverem sendo usadas mapeiem na mesma posio.

Memria Cache - Mapeamento direto

27

Direct Mapped

Fully Associative

Memria Associativa para Tags de 4 bits

Hierarquia de Memria
Tanto o cache associativo quanto o de mapeamento direto so casos especiais do cache associativo por conjunto. O cache de mapeamento direto mais simples, mais barato e tem tempo de acesso mais rpido. O cache associativo tem uma taxa de acerto maior para qualquer dado nmero de posies, pois a probabilidade de conflitos mnima.

Cache Associativo por Conjunto


No cache associativo por conjunto utiliza-se um cache de mapeamento direto com mltiplas entradas por posio. posio v 0 tag valor v tag valor v tag valor

1
2 3

...

1023 entrada 0 entrada 1 entrada n-1

Cache associativo em conjuntos (2 vias)

Diagrama de blocos parcial Cache associativo em conjuntos

Set-Associative Linhas de 4 palavras

Diagrama de blocos Cache 256K

Operaes de escrita e leitura

Consistncia: Memria principal x Memria cache


Problema na escrita Problema mais srio com muitos processadores Write-through Write-back (Copy-back)
38

Tcnicas de Escrita
Uma tcnica para manipular escritas denominada write through, quando uma palavra escrita de volta na memria imediatamente aps ter sido escrita no cache (consistncia de dados). Outra tcnica denominada copy back, em que a memria s atualizada quando a entrada expurgada do cache para permitir que outra entrada tome conta da posio (consistncia de dados).

Mecanismos de Escrita
A tcnica write through causa mais trfego de barramento.

A tcnica copy back pode gerar inconsistncia se o processador efetuar uma transferncia entre memria e disco, enquanto a memria no tiver sido atualizada.
Se a razo de leituras para escritas for muito alta, pode ser mais simples usar write through. Se houver muitas escritas, pode ser melhor usar copy back e fazer com que o microprograma expurgue todo o cache antes de uma operao de entrada/sada.

Caches Multinvel
Os microprocessadores atuais de alta performace suportam um nvel adicional de memria cache, sendo que esta cache adicional implicar em uma penalidade por falta menor, uma vez que tempo de acesso memria principal bem maior que a anterior.

41

Você também pode gostar