A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1 Capítulo 7. 2 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.

Apresentações semelhantes


Apresentação em tema: "1 Capítulo 7. 2 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."— Transcrição da apresentação:

1 1 Capítulo 7

2 2 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) Memórias: Revisão

3 3 Os usuários desejam memórias de grande capacidade e rápidas! Tempo de acesso de SRAM = ns; custo $100 a $250 por Mbyte. Tempo de acesso de DRAM = ns;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 Explorando Hierarquia de Memória

4 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 5 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 Cache Duas questões: Como sabemos que um dado item está no cache? Se estiver, como encontrá-lo?

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

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

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

9 9 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 Hits vs. Misses

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

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

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

13 13 Diminuindo miss rate com associatividade

14 14 Uma implementação

15 15 Desempenho

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

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

19 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 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 21 Tabela de páginas

22 22 Tabela de páginas

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

24 24 TLBs e caches

25 25 CPU TLB Lookup Cache Main Memory VAPA miss hit data Trans- lation hit miss 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 Acelerando a tradução de endereço com TLB

26 26 virtual address virtual page number page offset physical address n–10p–1p validphysical page numbertag validtagdata = cache hit tagbyte offset index = TLB hit TLB Cache... Tradução de endereço com TLB

27 27 endereçamento –Endereço virtual de 14-bits –Endereço físico de 12-bits –Tamanho de página = 64 bytes VPO PPOPPN VPN (Virtual Page Number) (Virtual Page Offset) (Physical Page Number) (Physical Page Offset) Exemplo de sistema de memória simples

28 28 –Somente mostra as primeiras 16 entradas VPNPPN Valid VPNPPN Valid – A B–0 04–00C– D2D1 06–00E111 07–00F0D1 Tabela de página

29 29 TLB –16 entradas –Associativo de 4-linhas por conjunto (4-way) VPO VPN TLBI TLBT SetTagPPN Valid TagPPN Valid TagPPN Valid TagPPN Valid 003–0090D100– D102–004–00A–0 202–008–006–003–0 307–0030D10A34102–0 TLB (Translation Look-Aside Buffer)

30 30 –16 linhas –Linha de 4-bytes –Mapeamento direto PPOPPN CO CI CT IdxTag Valid B0B1B2B3IdxTag Valid B0B1B2B A ––––92D0–––– 21B A2D19315DA3B 3360––––B0B0–––– D8F09C120–––– 50D13672F01DD ––––E BD C2DF03F140–––– Cache

31 31 Endereço Virtual 03D4h VPN ___TLBI ___TLBT ____TLB Hit? __Page Fault? __PPN: ____ Endereço físico Offset ___CI___CT ____Hit? __Byte: ____ VPO VPN TLBI TLBT PPOPPN CO CI CT Exemplo de tradução de endereço #1

32 32 Endereço Virtual 0B8Fh VPN ___TLBI ___TLBT ____TLB Hit? __Page Fault? __PPN: ____ Endereço físico Offset ___CI___CT ____Hit? __Byte: ____ VPO VPN TLBI TLBT PPOPPN CO CI CT Exemplo de tradução de endereço #2

33 33 Endereço Virtual 0040h VPN ___TLBI ___TLBT ____TLB Hit? __Page Fault? __PPN: ____ Endereço físico Offset ___CI___CT ____Hit? __Byte: ____ VPO VPN TLBI TLBT PPOPPN CO CI CT Exemplo de tradução de endereço #3


Carregar ppt "1 Capítulo 7. 2 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."

Apresentações semelhantes


Anúncios Google