Índice Conceitos básicos Princípios de funcionamento Técnicas de aumento de desempenho Memórias cache João Canas Ferreira Abril de 2004 c JCF, 2004 — ASPD (FEUP/LEEC) Memórias cache 1/51 Índice Conceitos básicos Princípios de funcionamento Técnicas de aumento de desempenho Conceitos básicos Porque são efectivas as memórias cache? Hierarquias de memória Caracterização do desempenho Princípios de funcionamento Colocação e identificação Actualização: substituição e escrita Técnicas de aumento de desempenho Redução das penalidades de falha Redução da taxa de falhas Aumento da concorrência Redução do tempo de acesso c JCF, 2004 — ASPD (FEUP/LEEC) Memórias cache 2/51
26
Embed
Memórias cachejca/feup/aspd/slides/aspd-slides-memorg.pdf · ˝ndice Conceitos bÆsicos Princípios de funcionamento TØcnicas de aumento de desempenho Porque sªo efectivas as memórias
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
ÍndiceConceitos básicos
Princípios de funcionamentoTécnicas de aumento de desempenho
Princípios de funcionamentoTécnicas de aumento de desempenho
Porque são efectivas as memórias cache?Hierarquias de memóriaCaracterização do desempenho
Princípio da proximidade
I Cache: Uma memória rápida que guarda as instruções/dadosusados mais recentemente.
I Princípio da proximidade: Programas tendem a re-utilizaros dados e as instruções usados recentemente ou maispróximos (90% do tempo em 10% das instruções?).Existem 2 tipos de proximidade:
1. proximidade temporal—elementos acedidos recentementetêm maior probabilidade de ser acedidos a seguir;
2. proximidade espacial—elementos colocados em posiçõesde memória próximas tendem a ser acedidos em instantesconsecutivos.
I Objectivo: Obter a rapidez de acesso da memória rápida e acapacidade da memória mais lenta.
Princípios de funcionamentoTécnicas de aumento de desempenho
Porque são efectivas as memórias cache?Hierarquias de memóriaCaracterização do desempenho
Hierarquia de memória
I Como a memória mais rápida é mais cara, a memória égeralmente organizada numa hierarquia de vários níveis: cadanível tem menor capacidade, é mais rápido e mais caro(¤/bit) que o seguinte.
I Frequentemente cada nível está contido no seguinte (mas nemsempre).
I A hierarquia de memória também é responsável pelaverificação de endereços (já que tem de mapear endereços nosníveis correctos).
I A importância da hierarquia de memória tem aumentado comos avanços de CPU. (Porquê?)
Princípios de funcionamentoTécnicas de aumento de desempenho
Porque são efectivas as memórias cache?Hierarquias de memóriaCaracterização do desempenho
Termos básicos
I cache hit—CPU encontra item na cache (acerto).I cache miss—CPU não encontra item na cache (falha).I bloco—conjunto de dados (de tamanho fixo) que é obtido de
memória e colocado em cache (contém o item pedido).I A proximidade temporal implica que o item será utilizado de novo
dentro de pouco tempo;a proximidade espacial implica que haja uma probabilidade elevadade que os outros dados do bloco sejam usados dentro de poucotempo.
I O tempo necessário para processar uma falha depende da latência eda largura de banda da memória.
I A latência determina o tempo necessário para obter o primeiroelemento do bloco.
I A largura de banda determina o tempo necessário para obter(transferir) o resto do bloco.
Princípios de funcionamentoTécnicas de aumento de desempenho
Porque são efectivas as memórias cache?Hierarquias de memóriaCaracterização do desempenho
Aspectos elementares de desempenho (cont.)
Os elementos da última equação podem ser medidos com relativafacilidade.Taxas de falhas podem ser avaliadas por simulação usando umaddress trace (listagem dos endereços ordenados por ordemtemporal de acessos). [Não é constante. . . ] Uma alternativa:contadores embutidos no CPU.Assume-se que taxas de falhas e penalidade de acesso são iguaispara leituras e escritas; uma equação mais detalhada devedistinguir as duas situações.Formulação alternativa de taxa de falhas (tf ): nf /ni = fi e então
fi =tf × na
ni
= tf ×
na
ni
fi é frequentemente dada em falhas/1000 instruções.
Princípios de funcionamentoTécnicas de aumento de desempenho
Colocação e identificaçãoActualização: substituição e escrita
Localização dos dados
A localização dos dados em cache permite distinguir 3 categoriasde organização:
1. Um bloco tem apenas um lugar possível: mapeamento directo[direct mapped cache].
2. Um bloco pode ser colocado em qualquer posição: memóriatotalmente associativa.
3. Um bloco pode ser colocado em qualquer posição de numconjunto restrito: memória associativa por conjuntos. Aassociatividade é caracterizada por N, o número de elementosde um conjunto [n-way set associative cache].
As implementações mais frequentes têm associatividade 1(mapeamento directo), 2 ou 4.
Princípios de funcionamentoTécnicas de aumento de desempenho
Colocação e identificaçãoActualização: substituição e escrita
Estratégia de escrita (1/2)
I Leituras são muito mais numerosas que escritas (≈ 21% dasinstruções que acedem à cache de dados).
I O ênfase é colocado na leitura, que é a operação mais fácil.
I Existem duas grandes estratégias de escrita:1. write through—A informação é escrita simultaneamente
em cache e na memória do nível seguinte.2. write back—A informação é escrita apenas em cache: o
bloco modificado é escrito em memória quando ésubstituído.
I É usado um bit para indicar se o bloco em cache foimodificado: dirty bit. Um bloco não modificado limpo nãoprecisa de ser escrito em memória aquando da substituição.
Princípios de funcionamentoTécnicas de aumento de desempenho
Redução das penalidades de falhaRedução da taxa de falhasAumento da concorrênciaRedução do tempo de acesso
Combinação de operações de escrita
I Técnica 4: Combinar operações de escrita para posiçõespróximas.
I Quando o write buffer está cheio e é necessário proceder auma escrita, a memória cache (e o CPU) devem esperar quesurja uma vaga.
I Se o write buffer contiver blocos, verifica-se se o novo bloco écontíguo a algum dos existentes, procedendo-se à suacombinação (merging write buffer).
I Esta técnica aproveita o facto de ser frequentemente maisrápido escrever dados “de rajada.”
Princípios de funcionamentoTécnicas de aumento de desempenho
Redução das penalidades de falhaRedução da taxa de falhasAumento da concorrênciaRedução do tempo de acesso
Aumentar a dimensão dos blocos
I A maneira mais simples de reduzir a taxa de falhas éaumentar a dimensão dos blocos (aproveitamento daproximidade espacial).
I Desvantagens:I aumenta a penalidade de falhas;I pode aumentar o número de falhas por conflito;I pode aumentar as falhas de capacidade (em caches pequenas).
I A escolha da dimensão dos blocos também depende dascaracterísticas do nível seguinte de memória: baixa latência →
Princípios de funcionamentoTécnicas de aumento de desempenho
Redução das penalidades de falhaRedução da taxa de falhasAumento da concorrênciaRedução do tempo de acesso
Predição de elemento do conjunto
I Objectivo: Reduzir no de falhas de conflito mas manter otempo de acesso de memórias direct mapped.
I Manter informação para predizer que elemento de um blocovai ser usado no próximo acesso.
I Quando a predição falha, é necessário verificar os outrosblocos do conjunto.
I Alpha 21264 [assoc 2 I-cache]: Cada bloco tem um bit aindicar qual dos dois blocos (do conjunto que vier a serseleccionado) a usar no acesso seguinte. Predição correcta: 1ciclo; incorrecta: 3 ciclos.
Princípios de funcionamentoTécnicas de aumento de desempenho
Redução das penalidades de falhaRedução da taxa de falhasAumento da concorrênciaRedução do tempo de acesso
Optimizações de software
I Técnica 5: Compilador modifica código para aproveitar melhoras memórias cache. Exemplo: reordenação de subrotinas parareduzir falhas de conflito [redução de 75% para cache de8 kB].
Princípios de funcionamentoTécnicas de aumento de desempenho
Redução das penalidades de falhaRedução da taxa de falhasAumento da concorrênciaRedução do tempo de acesso
Caches com índices virtuais e endereços físicos
I Técnica 3: (solução de compromisso) Usar a parte comum aendereços reais e virtuais (o deslocamento) para indexar acache; a comparação de endereços usa endereços reais(entretando convertidos) para comparação de etiquetas.
I Limitação: Uma cache DM não pode ser maior que otamanho da página. (Porquê?)
I Solução: Aumentar a associatividade.I Pentium III: páginas de 8 kB, com cache 2-way de 16 kB.I IBM 3033 (cache): pág. de 4 kB, 64 kB de cache, 16-way.
Pipeline
I Técnica 3: Implementar acesso pipelined à cache; obter umitem demora vários ciclos (não reduz latência).
Princípios de funcionamentoTécnicas de aumento de desempenho
Redução das penalidades de falhaRedução da taxa de falhasAumento da concorrênciaRedução do tempo de acesso
Caches de rastos
I Técnica 4: A cache regista sequências dinâmicas de instruçõesexecutadas, incluindo saltos tomados. (trace cache).
I Predição de saltos tem de ser incluída na cache.
I Desvantagens:1. Complexidade: os endereços não estão alinhados em
potências de 2.2. A mesma instrução pode estar em várias posições da
cache.
I Vantagem:Melhor utilização da cache: blocos longos não desperdiçampartes devido a saltos.Exemplo: AMD Athlon pode ter 16–24 instruções num blocode 64 B; saltos com frequência de 1 em cada 5-10 instruções.