Você está na página 1de 26

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Memrias cache
Joo Canas Ferreira Abril de 2004

c JCF, 2004 ASPD (FEUP/LEEC)

Memrias cache

1/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Conceitos bsicos
Porque so efectivas as memrias cache? Hierarquias de memria Caracterizao do desempenho

Princpios de funcionamento
Colocao e identicao Actualizao: substituio e escrita

Tcnicas de aumento de desempenho


Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso

c JCF, 2004 ASPD (FEUP/LEEC)

Memrias cache

2/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Porque so efectivas as memrias cache? Hierarquias de memria Caracterizao do desempenho

Princpio da proximidade
Cache: Uma memria rpida que guarda as instrues/dados usados mais recentemente. Princpio da proximidade: Programas tendem a re-utilizar os dados e as instrues usados recentemente ou mais prximos (90% do tempo em 10% das instrues?). Existem 2 tipos de proximidade: 1. proximidade temporalelementos acedidos recentemente tm maior probabilidade de ser acedidos a seguir; 2. proximidade espacialelementos colocados em posies de memria prximas tendem a ser acedidos em instantes consecutivos. Objectivo: Obter a rapidez de acesso da memria rpida e a capacidade da memria mais lenta.
c JCF, 2004 ASPD (FEUP/LEEC) Memrias cache 3/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Porque so efectivas as memrias cache? Hierarquias de memria Caracterizao do desempenho

Hierarquia de memria
Como a memria mais rpida mais cara, a memria geralmente organizada numa hierarquia de vrios nveis: cada nvel tem menor capacidade, mais rpido e mais caro (/bit) que o seguinte. Frequentemente cada nvel est contido no seguinte (mas nem sempre). A hierarquia de memria tambm responsvel pela vericao de endereos (j que tem de mapear endereos nos nveis correctos). A importncia da hierarquia de memria tem aumentado com os avanos de CPU. (Porqu?)

c JCF, 2004 ASPD (FEUP/LEEC)

Memrias cache

4/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Porque so efectivas as memrias cache? Hierarquias de memria Caracterizao do desempenho

Hierarquia de memria: situao tpica

(No ano 2000.)

c JCF, 2004 ASPD (FEUP/LEEC)

Memrias cache

5/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Porque so efectivas as memrias cache? Hierarquias de memria Caracterizao do desempenho

Desempenho de CPU vs. memria

c JCF, 2004 ASPD (FEUP/LEEC)

Memrias cache

6/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Porque so efectivas as memrias cache? Hierarquias de memria Caracterizao do desempenho

Caractersticas da hierarquia de memria


Nvel Nome Tamanho tpico Tecnologia 1 registos < 1 KB memria multiporto, CMOS 0.250.5 2 103 105 compilador cache 2 cache < 16 MB CMOS SRAM 3 memria principal < 16 GB CMOS DRAM 4 memria de massa > 100 GB disco magntico 5 106 20150

Acesso (ns) Largura de banda (MB/s) Gerido por Backup

0.52.5 500010000

80250 10005000

hardware memria principal

OS memria de massa

OS/admin CD/banda

c JCF, 2004 ASPD (FEUP/LEEC)

Memrias cache

7/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Porque so efectivas as memrias cache? Hierarquias de memria Caracterizao do desempenho

Termos bsicos
cache hitCPU encontra item na cache (acerto). cache missCPU no encontra item na cache (falha). blococonjunto de dados (de tamanho xo) que obtido de memria e colocado em cache (contm o item pedido). A proximidade temporal implica que o item ser utilizado de novo dentro de pouco tempo; a proximidade espacial implica que haja uma probabilidade elevada de que os outros dados do bloco sejam usados dentro de pouco tempo. O tempo necessrio para processar uma falha depende da latncia e da largura de banda da memria. A latncia determina o tempo necessrio para obter o primeiro elemento do bloco. A largura de banda determina o tempo necessrio para obter (transferir) o resto do bloco.
c JCF, 2004 ASPD (FEUP/LEEC) Memrias cache 8/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Porque so efectivas as memrias cache? Hierarquias de memria Caracterizao do desempenho

Aspectos elementares de desempenho


Tempo de execuo (CPU): t Ciclos de relgio (CPU): nc Perodo de relgio: T = 1/f Ciclos de protelamento no acesso a memria: nm Nmero de acessos a memria: na Nmero de falhas: nf Taxa de falhas: tf = nf /ni Nmero de instrues: ni Penalidade de falha (em ciclos): pf

Assumindo que: (a) nc inclui o tempo de tratamento de cache hit; (b) CPU protela durante cache miss. t = ( nc + nm ) T nm = nf pf = ni na nf pf = ni tf p f ni ni
Memrias cache 9/51

c JCF, 2004 ASPD (FEUP/LEEC)

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Porque so efectivas as memrias cache? Hierarquias de memria Caracterizao do desempenho

Aspectos elementares de desempenho (cont.)


Os elementos da ltima equao podem ser medidos com relativa facilidade. Taxas de falhas podem ser avaliadas por simulao usando um address trace (listagem dos endereos ordenados por ordem temporal de acessos). [No constante. . . ] Uma alternativa: contadores embutidos no CPU. Assume-se que taxas de falhas e penalidade de acesso so iguais para leituras e escritas; uma equao mais detalhada deve distinguir as duas situaes. Formulao alternativa de taxa de falhas (tf ): nf /ni = fi e ento fi = tf n a na = tf ni ni

fi frequentemente dada em falhas/1000 instrues.


c JCF, 2004 ASPD (FEUP/LEEC) Memrias cache 10/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Colocao e identicao Actualizao: substituio e escrita

Quatro questes sobre hierarquias de memria

As questes mais importantes sobre um nvel da hierarquia de memria so: 1. Onde colocado um bloco? [colocao] 2. Como determinar se um bloco est presente? [identicao] 3. Que bloco deve ser substitudo quando ocorre uma falha? [substituio] 4. O que acontece durante a escrita? [estratgia de escrita]

c JCF, 2004 ASPD (FEUP/LEEC)

Memrias cache

11/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Colocao e identicao Actualizao: substituio e escrita

Localizao dos dados


A localizao dos dados em cache permite distinguir 3 categorias de organizao: 1. Um bloco tem apenas um lugar possvel: mapeamento directo [direct mapped cache]. 2. Um bloco pode ser colocado em qualquer posio: memria totalmente associativa. 3. Um bloco pode ser colocado em qualquer posio de num conjunto restrito: memria associativa por conjuntos. A associatividade caracterizada por N, o nmero de elementos de um conjunto [n-way set associative cache]. As implementaes mais frequentes tm associatividade 1 (mapeamento directo), 2 ou 4.
c JCF, 2004 ASPD (FEUP/LEEC) Memrias cache 12/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Colocao e identicao Actualizao: substituio e escrita

Associatividade

c JCF, 2004 ASPD (FEUP/LEEC)

Memrias cache

13/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Colocao e identicao Actualizao: substituio e escrita

Identicao de um bloco em cache


A cada bloco est associada uma etiqueta (parte do endereo). As etiquetas de todas as posies possveis so vericadas em paralelo. Posies vlidas so assinaladas por um bit de validade. Estrutura de um endereo de memria:

c JCF, 2004 ASPD (FEUP/LEEC)

Memrias cache

14/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Colocao e identicao Actualizao: substituio e escrita

Estratgia de substituio
Mapeamento directoNo h escolha, j que um bloco apenas pode residir numa posio. Para memrias associativas, a escolha do elemento do conjunto a ser substitudo por ser feita:
aleatoriamentea escolha feita (pseudo-)aleatoriamente. least-recentely used (LRU)Usa o passado para predizer o futuro: o bloco no usado (acedido) h mais tempo substitudo (corolrio do princpio da proximidade). rst-in, rst-out (FIFO)Aproximao a LRU: substituir o bloco mais velho.

A implementao de LRU a mais complicada, pelo que se usa frequentemente um mtodo aproximado (principalmente FIFO).
c JCF, 2004 ASPD (FEUP/LEEC) Memrias cache 15/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Colocao e identicao Actualizao: substituio e escrita

Inuncia da estratgia de substituio no desempenho


Exemplo para cache de dados com blocos de 64 bytes (Alpha 21264).
Associatividade 2-way Tam. 16 KB 64 KB 256 KB LRU 114.1 103.4 92.2 Aleat. 117.3 104.3 92.1 FIFO 115.5 103.9 92.5 LRU 111.7 102.4 92.1 4-way Aleat. 115.1 102.3 92.1 FIFO 113.3 103.1 92.5 LRU 109.0 99.7 92.1 8-way Aleat. 111.8 100.5 92.1 FIFO 110.1 100.3 92.5

Em falhas por milhar de instrues.

c JCF, 2004 ASPD (FEUP/LEEC)

Memrias cache

16/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Colocao e identicao Actualizao: substituio e escrita

Estratgia de escrita (1/2)


Leituras so muito mais numerosas que escritas ( 21% das instrues que acedem cache de dados). O nfase colocado na leitura, que a operao mais fcil. Existem duas grandes estratgias de escrita: 1. write throughA informao escrita simultaneamente em cache e na memria do nvel seguinte. 2. write backA informao escrita apenas em cache: o bloco modicado escrito em memria quando substitudo. usado um bit para indicar se o bloco em cache foi modicado: dirty bit. Um bloco no modicado limpo no precisa de ser escrito em memria aquando da substituio.
c JCF, 2004 ASPD (FEUP/LEEC) Memrias cache 17/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Colocao e identicao Actualizao: substituio e escrita

Estratgia de escrita (2/2)


Vantagens de write back: 1. escritas velocidade da cache; 2. mltiplas escrita no mesmo bloco requerem apenas um acesso memria (reduz consumo de largura de banda e de potncia). Vantagens de write through: 1. memria cache sempre limpa (uma falha de leitura no resulta em escritas na memria de nvel seguinte); 2. o nvel seguinte mantm a verso mais recente dos dados. Com write through, o CPU pode protelar espera que uma escrita termine (write stall)usar um write buer. Comportamento numa falha de escrita: 1. write allocateum bloco alocado para guardar o novo valor; 2. no-write allocateApenas a memria de nvel seguinte actualizada; a cache no afectada. write back + write allocate, write through + no-write allocate
c JCF, 2004 ASPD (FEUP/LEEC) Memrias cache 18/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Colocao e identicao Actualizao: substituio e escrita

Examplo: Cache de dados do Alpha 21264

c JCF, 2004 ASPD (FEUP/LEEC)

Memrias cache

19/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Colocao e identicao Actualizao: substituio e escrita

Exemplo: Cache unicada vs. caches separadas


Tamanho (KB) 8 16 32 64 128 256 Instrues 8.16 3.82 1.36 0.61 0.30 0.02 Dados 44.0 40.9 38.4 36.9 35.3 32.6 Unicada 63.0 51.0 43.3 39.4 36.2 32.9

Falhas por 1000 instrues; referncias a instrues: 74%; 2-way; blocos de 64 bytes.

c JCF, 2004 ASPD (FEUP/LEEC)

Memrias cache

20/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Colocao e identicao Actualizao: substituio e escrita

Mais aspectos de desempenho de memria cache


A taxa de falhas no constitui um bom ndice de desempenho (o nmero de instrues executadas tambm no). O tempo mdio de acesso a memria tm melhor: tm = th + tf p f em que th o tempo gasta em acesso cache (h=hit). Para CPU com execuo em ordem, tm um bom ndice de previso do desempenho. (Conveno: o tempo th includo no tempo de execuo de instrues.) Falhas de acesso tm um efeito duplo sobre o desempenho: 1. Quanto menor for o CPI (de execuo), tanto maior o impacto relativo de um nmero xo de ciclos de penalizao por falha. 2. Para duas hierarquias de memria idntica, o CPU mais rpido tem uma penalidade maior (em ciclos).
c JCF, 2004 ASPD (FEUP/LEEC) Memrias cache 21/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso

Aumentar o nmero de nveis


As equaes de desempenho indicam que melhorias da penalidade de falha so to bencas como melhorias da taxa de falhas. A crescente diferena de desempenho entre memrias e CPU leva a um aumento do custo relativo das penalidades. Tcnica 1: Acrescentar nveis intermdios de memria cache. O tempo mdio de acesso : tm = th1 + tf 1 (th2 + tf 2 pf 2 ) taxa de falhas localNo de falhas a dividir pelo no de acessos. taxa de falhas globalNo de falhas a dividir pelo no de acessos gerados pelo CPU. Nmero mdio de falhas por instruo f i = f i 1 th 2 + f i 2 p f 2
c JCF, 2004 ASPD (FEUP/LEEC) Memrias cache 22/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso

Medidas empricas para caches multinvel (1/2)

c JCF, 2004 ASPD (FEUP/LEEC)

Memrias cache

23/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso

Medidas empricas para caches multinvel (2/2)

c JCF, 2004 ASPD (FEUP/LEEC)

Memrias cache

24/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso

Leitura inteligente de blocos


Tcnica 2: No esperar pela leitura do bloco completo antes de satisfazer o pedido do CPU. Palavra crtica primeiroObter a palavra desejada de memria e envi-la para o CPU; posteriormente ler as restantes palavras da linha. Early restartObter as palavras por ordem normal; assim que a palavra pretendida estiver disponvel, envi-la para o CPU. Estas tcnicas s trazem benefcios para memrias caches com blocos compridos. Caso prxima leitura seja do mesmo bloco, pode ocorrer nova falha.
c JCF, 2004 ASPD (FEUP/LEEC) Memrias cache 25/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso

Conceder prioridade s operaes de leitura


Tcnica 3: Dar prioridade s operaes de leitura sobre as operaes de escrita. Para caches write-through, importante a existncia de um write buer; mas mesmo memrias write-back beneciam da sua existncia. Contudo: write buer pode conter valor de uma posio necessria para satisfazer uma falha de leitura. Altenativas: 1. Falha de leitura s satisfeita depois de o write buer ser esvaziado ( protelamento). 2. O contedo do write buer vericado (em paralelo) para se detectarem e resolverem eventuais colises; abordagem usada em quase todos os CPUs no embutidos.
c JCF, 2004 ASPD (FEUP/LEEC) Memrias cache 26/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso

Combinao de operaes de escrita


Tcnica 4: Combinar operaes de escrita para posies prximas. Quando o write buer est cheio e necessrio proceder a uma escrita, a memria cache (e o CPU) devem esperar que surja uma vaga. Se o write buer contiver blocos, verica-se se o novo bloco contguo a algum dos existentes, procedendo-se sua combinao (merging write buer). Esta tcnica aproveita o facto de ser frequentemente mais rpido escrever dados de rajada.

c JCF, 2004 ASPD (FEUP/LEEC)

Memrias cache

27/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso

Combinao de escritas: exemplo

c JCF, 2004 ASPD (FEUP/LEEC)

Memrias cache

28/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso

Usar uma cache de vtimas


Tcnica 5: Manter os blocos descartados. Como os blocos descartados j foram lidos, podem ser reutilizados a baixo custo. Requer uma pequena memria cache adicional, completamente associativa. A cache de vtimas guarda apenas blocos descartados por causa de falhas (as vtimas). Esta cache vericada antes de se proceder ao acesso ao prximo nvel de memria. Exemplo: uma cache de vtimas com 4 posies pode evitar 25% das falhas de uma memria cache de dados de 4 KB, direct-mapped.
c JCF, 2004 ASPD (FEUP/LEEC) Memrias cache 29/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso

Caches de vtimas: exemplo

c JCF, 2004 ASPD (FEUP/LEEC)

Memrias cache

30/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso

Classicao de falhas
Falhas podem ser classicadas segundo os trs Cs: compulsriasO primeiro acesso a um bloco no pode ter sucesso (falhas de arranque a frio). capacidadeFalhas causadas pela ausncia de blocos que j estiveram em cache mas foram retirados por falta de espao. conitoSo falhas causadas pela impossibilidade de ocupao simultnea de uma posio ou conjunto (falhas de coliso ou interferncia). Falhas compulsrias ocorrem mesmo em caches innitas. Falhas compulsrias e de capacidade ocorrem em caches completamente associativas. Memrias associativas por conjuntos tambm tm falhas de conito.
c JCF, 2004 ASPD (FEUP/LEEC) Memrias cache 31/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso

Repartio de taxas de falhas por categoria (1/2)


Cache de 4 kB:
Assoc. 1 2 4 8 Total 0.098 0.098 0.098 0.098 Compulsrias (%) 0.0001 0.0001 0.0001 0.0001 0 .1 0 .1 0 .1 0 .1 Capacidade (%) 0.070 72 0.070 93 0.070 99 0.070 100 Conito (%) 0.027 28 0.005 7 0.0001 1 0.000 0

Cache de 512 kB:


Assoc. 1 2 4 8 Total 0.008 0.007 0.006 0.006 Compulsrias (%) 0.0001 0.0001 0.0001 0.0001 0 .8 0 .9 1 .1 1 .1 Capacidade (%) 0.005 0.005 0.005 0.005 66 71 91 95 Conito (%) 0.003 0.002 0.000 0.000 33 28 8 4
32/51

c JCF, 2004 ASPD (FEUP/LEEC)

Memrias cache

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso

Repartio de taxas de falhas por categoria (2/2)


Associatividade 1 :
Tam. (kB) 4 8 16 32 Total 0.098 0.068 0.049 0.042 Compulsrias (%) 0.0001 0.0001 0.0001 0.0001 0.1 0.1 0.1 0.2 Capacidade (%) 0.070 0.044 0.040 0.037 72 65 82 89 Conito (%) 0.027 0.024 0.0009 0.005 28 35 17 11

Associatividade 8:
Tam. (kB) 4 8 16 32 Total 0.071 0.044 0.041 0.037 Compulsrias (%) 0.0001 0.0001 0.0001 0.0001 0.1 0.1 0.2 0.2 Capacidade (%) 0.070 0.044 0.040 0.037 100 100 100 100 Conito (%) 0.000 0.000 0.000 0.000 0 0 0 0
33/51

c JCF, 2004 ASPD (FEUP/LEEC)

Memrias cache

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso

Aumentar a dimenso dos blocos


A maneira mais simples de reduzir a taxa de falhas aumentar a dimenso dos blocos (aproveitamento da proximidade espacial). Desvantagens:
aumenta a penalidade de falhas; pode aumentar o nmero de falhas por conito; pode aumentar as falhas de capacidade (em caches pequenas).

A escolha da dimenso dos blocos tambm depende das caractersticas do nvel seguinte de memria: baixa latncia blocos pequenos (p. ex.).

c JCF, 2004 ASPD (FEUP/LEEC)

Memrias cache

34/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso

Dimenso dos blocos: medidas empricas

c JCF, 2004 ASPD (FEUP/LEEC)

Memrias cache

35/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso

Dimenso dos blocos vs. tempo de acesso


Tamanho da cache Bloco (B) 16 32 64 128 256 Penal. 82 84 88 96 112 4 kB 8.027 7.082 7.160 8.469 11.651 16 kB 4.231 3.411 3.323 3.659 4.685 64 kB 2.673 2.134 1.933 1.979 2.288 256 kB 1.894 1.588 1.449 1.470 1.549

Tcnica 2: Aumentar o tamanho da memria cache. Aumento de custo e de tempo de acesso.


c JCF, 2004 ASPD (FEUP/LEEC) Memrias cache

36/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso

Aumentar a associatividade
Aumentar a associatividade melhora a taxa de falhas mas aumenta o tempo mdio de acesso. Regras empricas: 1. Para efeitos prticos, associatividade 8 = innito. 2. Uma memria direct mapped de tamanho N tem a mesma taxa de falhas que uma memria de associatividade 2 e de tamanho N/2.
Tamanho (kB) 4 8 16 32 64 1 3.44 2.69 2.23 2.06 1.92 Associatividade 2 4 3.24 3.22 2.58 2.55 2.40 2.46 2.30 2.37 2.14 2.18
Memrias cache

8 3.28 2.62 2.53 2.45 2.25


37/51

c JCF, 2004 ASPD (FEUP/LEEC)

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso

Predio de elemento do conjunto


Objectivo: Reduzir no de falhas de conito mas manter o tempo de acesso de memrias direct mapped. Manter informao para predizer que elemento de um bloco vai ser usado no prximo acesso. Quando a predio falha, necessrio vericar os outros blocos do conjunto. Alpha 21264 [assoc 2 I-cache]: Cada bloco tem um bit a indicar qual dos dois blocos (do conjunto que vier a ser seleccionado) a usar no acesso seguinte. Predio correcta: 1 ciclo; incorrecta: 3 ciclos. Taxa de acertos: 85%.
c JCF, 2004 ASPD (FEUP/LEEC) Memrias cache 38/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso

Optimizaes de software
Tcnica 5: Compilador modica cdigo para aproveitar melhor as memrias cache. Exemplo: reordenao de subrotinas para reduzir falhas de conito [reduo de 75% para cache de 8 kB]. Troca de ciclos /* Pior */ for (j=0; j<100; j++) for (i=0; i<5000; i++) x[i][j]=2*x[i][j]; Porqu?
c JCF, 2004 ASPD (FEUP/LEEC) Memrias cache 39/51

/* Melhor */ for (i=0; i<5000; i++) for (j=0; j<100;j++) x[i][j]=2*x[i][j];

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso

Exemplo: Multiplicao de matrizes (1/2)


for (i = 0; i < N; i++) for (j = 0; j < N; j++) { r = 0; for (k=0; k < N; k++) r = r + y[i][k] * z[k][j]; x[i][j] = r; }

c JCF, 2004 ASPD (FEUP/LEEC)

Memrias cache

40/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso

Exemplo: Multiplicao de matrizes (2/2)


for (jj = 0; jj < N; jj=jj+B) /* x[][] a zero, bloco BxB */ for (kk = 0; kk < N; kk = kk+B) for (i = 0; i < N; i++) for (j = jj; j < min(jj+B, N); j++) { r = 0; for (k = kk; k < min(kk+B,N); k++) r = r + y[i][k] * z[k][j]; x[i][j] = r; }

c JCF, 2004 ASPD (FEUP/LEEC)

Memrias cache

41/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso

Acessos a memria sem protelamento


Outra abordagem para aumentar o desempenho de sistemas com caches consiste em sobrepor temporalmente a actividade da hierarquia de memria e do CPU. Tcnica 1: Usar uma memria que no protela nas falhas de leitura (s interessa com execuo fora de ordem). A memria continua a responder a pedidos que resultem em acertos enquanto processa uma falha (hit under miss). Extenso: Suportar mltiplas falhas simultneas; o interesse desta abordagem depende da capacidade do nvel seguinte da hierarquia. Desvantagens: 1. Elevada complexidade de implementao. 2. Diculdade de avaliao de desempenho.
c JCF, 2004 ASPD (FEUP/LEEC) Memrias cache 42/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso

Non-blocking caches: medidas empricas

c JCF, 2004 ASPD (FEUP/LEEC)

Memrias cache

43/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso

Obteno prvia de instrues e dados


Tcnica 2: A estratgia de obter um bloco antes de ele ser necessrio pode ser aplicada a instrues e dados. Os blocos colocados em cache ou num buer externo. Blocos de instrues so geralmente tratados pelo processador que obtm dois blocos quando existe uma falha. O bloco pedido enviado para a cache; o outro guardado no instruction stream buer. Um ISB apanha cerca de 15%-25% das falhas de uma cache DM, 4 kB, 16 B/bloco. Se o ISB tiver capacidade para 16 blocos, a taxa sobe para 72%. Para acessos a dados, um valor de 25% tpico (4 kB, DM). possvel ter mltiplos DSB a fazerem obteno prvia de dados de endereos diferentes: 42%.
c JCF, 2004 ASPD (FEUP/LEEC) Memrias cache 44/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso

Obteno prvia controlada por software


Tcnica 3: O compilador inclui instrues de prefetch para pedir dados antes de estes serem necessrios. Register prefetch: carregar valor para um registo; cache prefetch: carregar valor apenas para cache. Estas instrues so geralmente usadas com memrias cache que no protelem nas falhas de leitura. Este tcnica particularmente efectiva no processamento de ciclos. Desvantagem: Overhead de instrues; contudo, os benefcios so geralmente superiores.

c JCF, 2004 ASPD (FEUP/LEEC)

Memrias cache

45/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso

Reduo do tamanho da cache


O tempo de acesso cache limita o ciclo de relgio da maioria dos processadores. Tcnica 1: Usar caches simples e pequenas. Preferir caches do tipo direct access. Preferir caches sucientemente pequenas para carem on-chip. Manter etiquetas de L2 on-chip. A dimenso das caches L1 tem vindo a manter-se constante nas geraes mais recentes de processadores. Pentium III (I-cache): 16 k B; Pentium 4: 8 kB.

c JCF, 2004 ASPD (FEUP/LEEC)

Memrias cache

46/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso

Tempo de acesso em caches CMOS: estimativas

c JCF, 2004 ASPD (FEUP/LEEC)

Memrias cache

47/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso

Evitar converso de endereos na indexao


Caches devem lidar com a converso entre endereos virtuais e fsicos. Caches de endereos virtuais (caches virtuais) tornam mais simples as leituras. Desvantagens de caches virtuais:
1. permissesconverso virtualreal implica vericar permisses; sol.: copiar informao de TLB. 2. gesto de processoscada troca de contexto obriga a limpar a cache; sol: incluir etiquetas de processo. 3. aliasess.o. e programas podem referenciar a mesma posio fsica por diferentes endereos virtuais (simultaneamente); sol: vericar se no existem endereos fsicos repetidos. 4. E/Sinteraco com perifricos requer uso de endereos fsicos.
c JCF, 2004 ASPD (FEUP/LEEC) Memrias cache 48/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso

Taxa de falhas para endereos virtuais: medidas

c JCF, 2004 ASPD (FEUP/LEEC)

Memrias cache

49/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso

Caches com ndices virtuais e endereos fsicos


Tcnica 3: (soluo de compromisso) Usar a parte comum a endereos reais e virtuais (o deslocamento) para indexar a cache; a comparao de endereos usa endereos reais (entretando convertidos) para comparao de etiquetas. Limitao: Uma cache DM no pode ser maior que o tamanho da pgina. (Porqu?) Soluo: Aumentar a associatividade. Pentium III: pginas de 8 kB, com cache 2-way de 16 kB. IBM 3033 (cache): pg. de 4 kB, 64 kB de cache, 16-way.

Pipeline
Tcnica 3: Implementar acesso pipelined cache; obter um item demora vrios ciclos (no reduz latncia).
c JCF, 2004 ASPD (FEUP/LEEC) Memrias cache 50/51

ndice Conceitos bsicos Princpios de funcionamento Tcnicas de aumento de desempenho

Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso

Caches de rastos
Tcnica 4: A cache regista sequncias dinmicas de instrues executadas, incluindo saltos tomados. (trace cache). Predio de saltos tem de ser includa na cache. Desvantagens: 1. Complexidade: os endereos no esto alinhados em potncias de 2. 2. A mesma instruo pode estar em vrias posies da cache. Vantagem: Melhor utilizao da cache: blocos longos no desperdiam partes devido a saltos. Exemplo: AMD Athlon pode ter 1624 instrues num bloco de 64 B; saltos com frequncia de 1 em cada 5-10 instrues.
c JCF, 2004 ASPD (FEUP/LEEC) Memrias cache 51/51