Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Memrias cache
Joo Canas Ferreira Abril de 2004
Memrias cache
1/51
Conceitos bsicos
Porque so efectivas as memrias cache? Hierarquias de memria Caracterizao do desempenho
Princpios de funcionamento
Colocao e identicao Actualizao: substituio e escrita
Memrias cache
2/51
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
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?)
Memrias cache
4/51
Memrias cache
5/51
Memrias cache
6/51
0.52.5 500010000
80250 10005000
OS memria de massa
OS/admin CD/banda
Memrias cache
7/51
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
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
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]
Memrias cache
11/51
Associatividade
Memrias cache
13/51
Memrias cache
14/51
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
Memrias cache
16/51
Memrias cache
19/51
Falhas por 1000 instrues; referncias a instrues: 74%; 2-way; blocos de 64 bytes.
Memrias cache
20/51
Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso
Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso
Memrias cache
23/51
Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso
Memrias cache
24/51
Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso
Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso
Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso
Memrias cache
27/51
Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso
Memrias cache
28/51
Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso
Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso
Memrias cache
30/51
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
Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso
Memrias cache
Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso
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
Memrias cache
Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso
A escolha da dimenso dos blocos tambm depende das caractersticas do nvel seguinte de memria: baixa latncia blocos pequenos (p. ex.).
Memrias cache
34/51
Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso
Memrias cache
35/51
Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso
36/51
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
Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso
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
Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso
Memrias cache
40/51
Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso
Memrias cache
41/51
Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso
Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso
Memrias cache
43/51
Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso
Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso
Memrias cache
45/51
Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso
Memrias cache
46/51
Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso
Memrias cache
47/51
Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso
Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso
Memrias cache
49/51
Reduo das penalidades de falha Reduo da taxa de falhas Aumento da concorrncia Reduo do tempo de acesso
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
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