1 / 33

Capítulo 7

Capítulo 7. Memórias: Revisão. SRAM: O valor é armazenado num par de portas inversoras Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) DRAM: O valor é armazenado como uma carga num capacitor (deve ser reavivado, “refreshed” )

arnold
Télécharger la présentation

Capítulo 7

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Capítulo 7

  2. Memórias: Revisão • SRAM: • O valor é armazenado num par de portas inversoras • Muito rápido mas toma mais espaço que DRAM (4 a 6 transistores) • DRAM: • O valor é armazenado como uma carga num capacitor (deve ser reavivado, “refreshed” ) • Muito pequeno mas mais lento que SRAM ( 5 a 10 vezes)

  3. Explorando Hierarquia de Memória • Os usuários desejam memórias de grande capacidade e rápidas! Tempo de acesso de SRAM = 2 - 25ns; custo $100 a $250 por Mbyte.Tempo de acesso de DRAM = 60-120ns;custo $5 a $10 por Mbyte.Tempo de acesso de Disco = 10 a 20 milhões ns; custo $.10 a $.20 por Mbyte. • Construir uma hierarquia de memória

  4. Princípio de Localidade • Este principio garante a eficiência da hierarquia de memória • localidade temporal: referência repetida à mesma localidade localidade espacial: referência a endereços próximos. Porque existem as localidades acima? • Nosso foco inicial: dois níveis (superior,inferior) • bloco: unidade mínima de dados • hit: o dado requisitado está no nível superior • miss: o dado requisitado não está no nível superior

  5. Cache • Cache (nível superior): é uma memória rápida, normalmente implementada em SRAM, que contém cópias dos dados da memória principal (nível inferior) • Nosso primeiro exemplo: “mapeamento direto" • O tamanho de bloco é uma palavra de dado Para cada dado num nível inferior (memória principal), existe exatamente um endereço (slot) no cache, de onde ele deve estar. p.ex., muitos blocos no nível inferior compartilham posições (slots) no nível superior • Duas questões: • Como sabemos que um dado item está no cache? • Se estiver, como encontrá-lo?

  6. Cache em mapeamento direto • Mapeamento: a posição no cache é o endereço de memória em modulo do número de slots no cache: • Ex: 1 1 mod 8 = 1 9 mod 8 = 1 17 mod 8 = 1 25 mod 8 = 1 1 9 17 25

  7. Cache em mapeamento direto • Para MIPS: Que tipo de localidade está sendo usada?

  8. Cache em mapeamento direto • Levando vantagem sobre a localidade espacial:

  9. Hits vs. Misses • Read hits • É o que se deseja! • Read misses • Pára a CPU, busca um bloco da memória, entrega ao cache, e reinicia a CPU • Write hits: • Pode substituir dados no cache e memória (write-through) • Escreve dados somente no cache (faz write-back mais tarde ) • Write misses: • Le o bloco inteiro no cache, e depois faz a escrita na palavra referenciada

  10. Questões de Hardware • Fazer a leitura de múltiplas palavras usando bancos de memória

  11. Desempenho Aumentando o tamanho do bloco tende a decrescer o miss rate. Usar caches repartidos (split) porque existem mais localidade espacial no código.

  12. Desempenho tempo de execução = (ciclos de execução + ciclos de parada) ´ tempo de ciclociclos de parada = # de instruções ´ miss ratio ´ miss penalty Duas formas de melhorar o desempenho: • Decrementando o miss ratio • Decrementando o miss penalty

  13. Diminuindo miss rate com associatividade

  14. Uma implementação

  15. Desempenho

  16. Diminuindo o miss penalty com caches multiníveis • Adicionar um segundo nível de cache: • geralmente o cache nível 1 fica no mesmo chip do processador • usar SRAMs para adicionar um outro cache acima da memória primária (DRAM) • O miss penalty diminui se os dados estão nesse cache nível 2 • Exemplo: • CPI de 1.0 numa máquina a 500Mhz com 5% miss rate, acesso a DRAM de 200ns • Adicionando cache nível 2 de tempo de acesso = 20ns diminui o miss rate para 2%

  17. Caches Multi-Nível • Opções: caches de dados e instruções separados, ou um cache unificado Unified L2 Cache L1 d-cache Memory Regs Processor disk L1 i-cache size: speed: $/Mbyte: line size: 200 B 3 ns 8 B 8-64 KB 3 ns 32 B 1-4MB SRAM 6 ns $100/MB 32 B 128 MB DRAM 60 ns $1.50/MB 8 KB 30 GB 8 ms $0.05/MB larger, slower, cheaper

  18. Hierarquia de cache no Pentium Intel Processor Chip L1 Data 1 cycle latency 16 KB 4-way assoc Write-through 32B lines L2 Unified 128KB--2 MB 4-way assoc Write-back Write allocate 32B lines Main Memory Up to 4GB Regs. L1 Instruction 16 KB, 4-way 32B lines

  19. Memória Virtual • A memória principal pode agir como um cache para o armazenamento secundário (disco) • Vantagens: • Ilusão de ter mais memória física • Relocação de programa • proteção

  20. Páginas: “blocos” na memória virtual • Falta de página: os dados não estão na memória, deve ser recuperado do disco • miss penalty grande, portanto, as páginas devem ser bem grandes (p.ex., 4KB) • É importante reduzir as faltas de página • Pode manipular as faltas em software ao invés de hardware • usar write-through é muito dispendioso, então usa-se writeback

  21. Tabela de páginas

  22. Tabela de páginas

  23. Fazendo a tradução de endereço rápida • Um cache para tradução de endereço: translation lookaside buffer

  24. TLBs e caches

  25. hit miss VA PA TLB Lookup Cache Main Memory CPU miss hit Trans- lation data Acelerando a tradução de endereço com TLB • “Translation Lookaside Buffer” (TLB) • Pequeno cache em MMU • Mapeia número de página virtual para número de página física • Contem entradas de tabela de página completas para um pequeno número de páginas

  26. Tradução de endereço com TLB n–1 p p–1 0 virtual address virtual page number page offset valid tag physical page number TLB . . . = TLB hit physical address tag byte offset index valid tag data Cache = data cache hit

  27. 9 2 13 12 11 10 9 8 7 5 4 3 0 6 11 0 1 2 3 4 1 6 7 8 10 5 PPO VPN VPO PPN Exemplo de sistema de memória simples • endereçamento • Endereço virtual de 14-bits • Endereço físico de 12-bits • Tamanho de página = 64 bytes (Virtual Page Offset) (Virtual Page Number) (Physical Page Number) (Physical Page Offset)

  28. Tabela de página • Somente mostra as primeiras 16 entradas

  29. TLBI TLBT 5 7 13 12 11 10 9 6 4 3 2 1 0 8 VPN VPO TLB (Translation Look-Aside Buffer) • TLB • 16 entradas • Associativo de 4-linhas por conjunto (4-way)

  30. CO CI CT 3 6 11 10 9 8 4 5 2 1 0 7 PPO PPN Cache • 16 linhas • Linha de 4-bytes • Mapeamento direto

  31. TLBT TLBI 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CO CI CT VPN VPO 4 10 0 1 2 3 5 6 7 8 9 11 PPO PPN Exemplo de tradução de endereço #1 • Endereço Virtual 03D4h VPN ___ TLBI ___ TLBT ____ TLB Hit? __ Page Fault? __ PPN: ____ • Endereço físico Offset ___ CI___ CT ____ Hit? __ Byte: ____

  32. TLBT TLBI 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CO CI CT VPN VPO 4 10 0 1 2 3 5 6 7 8 9 11 PPO PPN Exemplo de tradução de endereço #2 • Endereço Virtual 0B8Fh VPN ___ TLBI ___ TLBT ____ TLB Hit? __ Page Fault? __ PPN: ____ • Endereço físico Offset ___ CI___ CT ____ Hit? __ Byte: ____

  33. TLBT TLBI 13 12 11 10 9 8 7 6 5 4 3 2 1 0 CO CI CT VPN VPO 4 10 0 1 2 3 5 6 7 8 9 11 PPO PPN Exemplo de tradução de endereço #3 • Endereço Virtual 0040h VPN ___ TLBI ___ TLBT ____ TLB Hit? __ Page Fault? __ PPN: ____ • Endereço físico Offset ___ CI___ CT ____ Hit? __ Byte: ____

More Related