Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade Federal de Pelotas Centro de Desenvolvimento Tecnológico Programa de Pós-Graduação em Computação Arquiteturas de Computadores Tema 4: Parte 2 Memória cache: Otimizações Prof. Marcelo Schiavon porto porto@inf.ufpel.edu.br Memória Cache 2 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Desempenho das caches = Ciclos de relógio para tratar faltas na cache x Acessos à memória Programa Taxa de faltas x Penalidade por faltas Ciclos de relógio gastos à espera do acesso ao sistema de memória Tempo de processador = Ciclos de relógio gastos na execução normal do programa + Tempo do ciclo de relógio x Memória Cache 3 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Otimizações básicas em caches – Redução da taxa de faltas (miss rate) – Redução da penalidade da falta (miss penalty) – Redução do tempo do acerto (hit time) Memória Cache 4 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Otimizações básicas em caches • Otimização 1: Aumento do tamanho do bloco para reduzir a taxa de falta – Ajuda também na redução de faltas compulsórias – Explora o princípio da localidade espacial Memória Cache 5 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Otimizações básicas em caches • Otimização 1: Aumento do tamanho do bloco para reduzir a taxa de falta – Desvantagens? Memória Cache 6 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Índice val. tag informação 0 1 2 … … … … 253 254 255 desl endereço 31 32 …. 13 12 11 …. 2 1 0 8 = 22 20 acerto 32 informação Cache mapeada diretamente com blocos maiores 2 Memória Cache 7 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Cache mapeada diretamente com blocos maiores Como encontrar o bloco de um dado endereço? (Endereço do bloco) módulo (Número de blocos da cache) Memória Cache 8 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Cache mapeada diretamente com blocos maiores Exemplo: (Endereço do bloco) módulo (Número de blocos da cache) Considere uma cache de 32 blocos de 16 bytes cada. Em qual bloco desta cache o endereço 1200 será mapeado? (1200/16) = 75 -> Endereço do bloco (75) módulo (32) = 11 -> Bloco onde será armazenado na cache Memória Cache 9 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Otimizações básicas em caches Memória Cache 10 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Otimizações básicas em caches Taxa de miss em relação ao tamanho da cache e tamanho do bloco Memória Cache 11 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Otimizações básicas em caches Tempo médio de acesso em relação ao tamanho da cache e tamanho do bloco Memória Cache 12 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Em geral, uma linha maior aproveita melhor a localidade espacial MAS – Linha maior significa maior miss penalty, pois demora mais tempo para preencher a linha – Se o tamanho da linha é grande demais em relação ao tamanho da cache, miss ratio vai aumentar • Muito poucas linhas Tamanho da linha vs. taxa de miss e miss penalty Memória Cache 13 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Tamanho da linha vs. taxa de miss e miss penalty Memória Cache 14 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Otimizações básicas em caches • Otimização 2: Caches maiores para reduzir a taxa de falta – Otimização óbvia, com o aumento do tamanho da cache são reduzidas as faltas por conflito (no caso de caches associativas) e capacidade – Desvantagens? Memória Cache 15 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Otimizações básicas em caches • Otimização 3: Aumento da associatividade para reduzir a taxa de faltas – Redução das faltas por conflitos – Regra do 2:1: • Uma cache mapeada diretamente de tamanho N, tem a mesma taxa de faltas de uma cache associativa de 2 vias com tamanho N/2 Memória Cache 16 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Otimizações básicas em caches – Otimização 3: Aumento da associatividade para reduzir a taxa de faltas • Desvantagens? Memória Cache 17 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Otimizações básicas em caches Tempo médio de acesso em relação ao tamanho da cache e nível de associatividade Memória Cache 18 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Otimizações básicas em caches – Otimização 4: Redução da taxa de faltas através de prefetching de instruções e dados • Prefetching em hardware – Carregamento de dados adicionais em caso de falta – Necessita de um aumento na largura de banda do sistema • Prefetching em software – Uma forma de execução especulativa – O prefetching tem custo, deve ser avaliado o ganho na redução da taxa de faltas em relação ao custo adicional Memória Cache 19 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Otimizações básicas em caches – Otimização 5: Redução da taxa de faltas através de otimizações no compilador • Merging Arrays: melhorar a localidade espacial através de arrays de structs, ao invés de N arrays separados • Loop Interchange: mudar os loops para acessar os dados na ordem em que estão armazenados • Loop Fusion: combinar loops que possuem as mesmas características de controle Memória Cache 20 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Otimizações básicas em caches • Otimização 5: Redução da taxa de faltas através de otimizações no compilador • Merging Arrays: melhorar a localidade espacial através de arrays de structs, ao invés de N arrays separados Memória Cache 21 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Desempenho das caches = Ciclos de relógio para tratar faltas na cache x Acessos à memória Programa Taxa de faltas x Penalidade por faltas Ciclos de relógio gastos à espera do acesso ao sistema de memória Tempo de processador = Ciclos de relógio gastos na execução normal do programa + Tempo do ciclo de relógio x Memória Cache 22 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Otimizações básicas em caches – Otimização 6: Prioridade para faltas de leitura em relação a escritas para reduzir a penalidade da falta • Considerando cache write-through a melhoria mais importante é o tamanho do buffer de escrita bem dimensionado • O bufferpode causar conflito, pois pode estar com o dado atualizado no caso de uma leitura Memória Cache 23 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Otimizações básicas em caches – Otimização 6: Prioridade para faltas de leitura em relação a escritas para reduzir a penalidade da falta • Esperar o buffer escrever na memória pode demorar muito – Alternativa: Verificar o buffer em caso de uma falta de leitura, interrompendo a escrita • Em caches write-back, caso uma perda de leitura substitua um bloco sujo: – Escrever o bloco sujo no buffer, ler a memória e depois escrever o bloco do buffer na memória Memória Cache 24 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Desempenho das caches = Ciclos de relógio para tratar faltas na cache x Acessos à memória Programa Taxa de faltas x Penalidade por faltas Ciclos de relógio gastos à espera do acesso ao sistema de memória Tempo de processador = Ciclos de relógio gastos na execução normal do programa + Tempo do ciclo de relógio x Memória Cache 25 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Otimizações básicas em caches – Otimização 7: Caches multiníveis para reduzir a penalidade da falta • A cache de primeiro nível pode ser pequena, e rápida o suficiente para trabalhar no tempo de ciclo de clock do processador • A cache de segundo nível deve ser grande (muito maior que a de primeiro nível) para capturar a maior parte dos acessos a memória principal, reduzindo a penalidade da falta Memória Cache 26 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Otimizações básicas em caches – Otimização 7: Caches multiníveis para reduzir a penalidade da falta • Existe melhora na performance do sistema com a inserção de uma cache de segundo nível? Memória Cache 27 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Otimizações básicas em caches – Otimização 7: Caches multiníveis para reduzir a penalidade da falta • Exemplo 1: Dado um processador com CPI básica de 1,0, admitindo que todas as referências a cache primária resultam em acerto. O clock deste processador é de 500 MHz, e está ligado a uma memória principal cujo tempo de acesso é de 200 ns, incluindo o tratamento das faltas. A taxa de faltas da cache primária é de 5%. – Calcule a melhora obtida no desempenho desta máquina ao adicionarmos uma cache de segundo nível, com tempo de acesso de 20ns, tanto para acertos quanto para faltas, e taxa de faltas de 2%. Memória Cache 28 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Otimizações básicas em caches – Otimização 7: Caches multiníveis para reduzir a penalidade da falta • Exemplo: Solução • Penalidade por falta com um nível de cache: 200 ns = 100 ns 2 ns Ciclos de relógio gastos à espera do acesso ao sistema de memória Tempo de processador = Ciclos de relógio gastos na execução normal do programa + Tempo do ciclo de relógio x Memória Cache 29 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Exemplo: Solução • Penalidade por falta com um nível de cache: 200 ns = 100 ciclos 2 ns • Tempo de processador com um nível de cache: Tempo de Proc. = (CPI + 5% * 100) TC = 1 + 5 = 6,0 * TC Ciclos de relógio gastos à espera do acesso ao sistema de memória Tempo de processador = Ciclos de relógio gastos na execução normal do programa + Tempo do ciclo de relógio x = Ciclos de relógio para tratar faltas na cache x Acessos à memória Programa Taxa de faltas x Penalidade por faltas Memória Cache 30 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Exemplo: Solução • Penalidade por falta da cache de segundo nível: 20 ns = 10 ciclos 2 ns • Tempo de processador com dois níveis de cache: Tempo de Proc. = (CPI + Paradas devidas à cache primária + Paradas devido à cache secundária) * TC Tempo de Proc. = 1 + (5% * 10 + 2% * 100) = 3,5 * TC • Diferença de desempenho: 6,0/3,5 = 1,7 Memória Cache 31 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Otimizações básicas em caches – Otimização 7: Caches multiníveis para reduzir a penalidade da falta Tempo médio de acesso a memória = Tempo de acertoL1 + Taxa de faltaL1 * Penalidade de faltaL1 Penalidade de perdaL1 = Tempo de acertoL2 + Taxa de faltaL2 * Penalidade de faltaL2 Memória Cache 32 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Otimizações básicas em caches – Otimização 7: Caches multiníveis para reduzir a penalidade da falta • Taxa de perda local – Medida pelo número de faltas dividido pelo número total de acessos a memória para esta cache • Taxa de perda global – Medida pelo número de faltas dividido pelo número total de acessos a memória gerados pelo processador Memória Cache 33 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Otimizações básicas em caches • Exemplo 2: Suponha que, em 1000 referências à memória, existam 40 faltas no cache de primeiro nível e 20 faltas no cache de segundo nível. Quais são as diversas taxas de falta? Considere que a penalidade da falta na cache L2 para a memória seja de 200 ciclos de clock, o tempo de acerto do cache L2 seja de 10 ciclos, o tempo de acerto do L1 seja de 1 ciclo e exista 1,5 referências de memória por instrução. Qual é o tempo médio de acesso a memória e a média de ciclos parados por acesso a memória de instrução? Memória Cache 34 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Otimizações básicas em caches • Exemplo 2: Solução • Taxa de falta(local e global) L1: 40/1000 = 4% • Taxa de falta local L2: 20/40 = 50% • Taxa de falta global L2: 20/1000 = 2% Memória Cache 35 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Otimizações básicas em caches • Exemplo 2: Solução Tempo médio de acesso a memória = 1 + 4% * (10 + 50% x 200) = 1 + 4% x 110 = 5,4 ciclos de clock Tempo médio de acesso a memória = Tempo de acertoL1 + Taxa de faltaL1 * Penalidade de faltaL1 Penalidade de perdaL1 = Tempo de acertoL2 + Taxa de faltaL2 * Penalidade de faltaL2 Memória Cache 36 Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores Prof. Marcelo PortoComputação UFPel: Arquiteturas de Computadores • Bibliografia: – PATTERSON, David A.; HENESSY, John L. Organização e Projeto de Computadores: a interface hardware/software. 2a.ed. Rio de Janeiro: Campus, 2005. – HENNESSY, John L.; PATTERSON, David A. Computer Architecture: A Quantitative Approach. San Francisco, California: Morgan Kaufmann Publishers, 1996.
Compartilhar