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

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

Capítulo 7.

Apresentações semelhantes


Apresentação em tema: "Capítulo 7."— Transcrição da apresentação:

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 = 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

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 Duas questões: Como sabemos que um dado item está no 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 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 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 Processor disk Memory size: speed: $/Mbyte:
Opções: caches de dados e instruções separados, ou um cache unificado Unified L2 Cache L1 d-cache Regs Memory 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 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 CPU TLB Lookup Cache Main Memory VA PA miss hit data Trans- lation

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

27 (Physical Page Offset)
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 13 12 11 10 9 8 7 6 5 4 3 2 1 VPN VPO (Virtual Page Number) (Virtual Page Offset) 11 10 9 8 7 6 5 4 3 2 1 PPN PPO (Physical Page Number) (Physical Page Offset)

28 Somente mostra as primeiras 16 entradas
Tabela de página Somente mostra as primeiras 16 entradas VPN PPN Valid 00 28 1 08 13 01 09 17 02 33 0A 03 0B 04 0C 05 16 0D 2D 06 0E 11 07 0F

29 TLB (Translation Look-Aside Buffer)
16 entradas Associativo de 4-linhas por conjunto (4-way) 13 12 11 10 9 8 7 6 5 4 3 2 1 VPO VPN TLBI TLBT Set Tag PPN Valid 03 09 0D 1 00 07 02 2D 04 0A 2 08 06 3 34

30 Cache 16 linhas Linha de 4-bytes Mapeamento direto PPO PPN Idx Tag B0
11 10 9 8 7 6 5 4 3 2 1 PPO PPN CO CI CT Idx Tag Valid B0 B1 B2 B3 19 1 99 11 23 8 24 3A 00 51 89 15 9 2D 2 1B 02 04 08 A 93 DA 3B 3 36 B 0B 4 32 43 6D 8F 09 C 12 5 0D 72 F0 1D D 16 96 34 6 31 E 13 83 77 D3 7 C2 DF 03 F 14

31 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: ____ 13 12 11 10 9 8 7 6 5 4 3 2 1 VPO VPN TLBI TLBT 11 10 9 8 7 6 5 4 3 2 1 PPO PPN CO CI CT

32 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: ____ 13 12 11 10 9 8 7 6 5 4 3 2 1 VPO VPN TLBI TLBT 11 10 9 8 7 6 5 4 3 2 1 PPO PPN CO CI CT

33 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: ____ 13 12 11 10 9 8 7 6 5 4 3 2 1 VPO VPN TLBI TLBT 11 10 9 8 7 6 5 4 3 2 1 PPO PPN CO CI CT


Carregar ppt "Capítulo 7."

Apresentações semelhantes


Anúncios Google