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

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

Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra 2004/2005 5. Hierarquia de Memória.

Apresentações semelhantes


Apresentação em tema: "Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra 2004/2005 5. Hierarquia de Memória."— Transcrição da apresentação:

1 Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra 2004/ Hierarquia de Memória 5.1. Cache

2 2 O Fosso de Performance

3 3 Hierarquia de Memória Princípio da localidade espacial Se eu acedi a estes dados, é provável que aceda aos dados que estão próximos Princípio da localidade temporal Se eu acedi à pouco tempo a estes dados, é provável que lhes vá aceder dentro de pouco tempo Registos Cache Memória Central (RAM) Memória de Massa (Disco) ~128x32bits, 0.25ns ~1MByte, 10ns $5000/GB ~512Mbyte, 100ns $100/GB ~200Gbyte, 5ms $1/GB Velocidade Preço Tamanho

4 4 Conceitos Básicos (Cache Directamente Mapeada) Cache Memória LDR1, 1012 Cache Directamente Mapeada 1012 MOD 8 = 4 Cache Hit O bloco está na cache Cache Miss O bloco não está na cache

5 5 Conceitos Básicos (Cache Directamente Mapeada) Memória LBR1, 1012 Cache Line

6 6 Cache Directamente Mapeada

7 7 Associatividade

8 8 Porquê diferentes tipos de associatividade? Directamente Mapeada Rápida a aceder aos dados (só podem estar num local) Sempre que existe um miss, limpa a entrada correspondente (hit rate baixo) Completamente Associativa Lenta a aceder aos dados (têm de se comparar todas as tags) Quando existe um miss, podemos escolher qual a entrada a eliminar (hit rate elevado) [E.g. Caches a nível do sistema operativo] Associativa Por blocos O melhor (e/ou pior) de ambos os mundos [E.g. Caches no processador]

9 9 Uma cache associativa em blocos de 4

10 10 Efeito da associatividade no miss rate

11 11 Efeito do tamanho do bloco no miss rate À medida que o tamanho do bloco aumenta... Localidade Espacial (reaproveitamento de dados) Poucos Blocos (competição pelos mesmos blocos) Penalidade nos misses aumenta (...o tempo de ir buscar os blocos)

12 12 O que acontece num cache read miss? 1. Envia o endereço em falta para a memória 2. Ordena à memória que efectue a leitura e espera que a mesma complete 3. Escreve o valor lido na cache, actualizando os dados, tag e ligando o bit valid No caso das caches associativas utiliza-se uma das seguintes técnicas para seleccionar o bloco: Random Least-Recently Used (LRU) First-in, First-out (FIFO) 4. Efectivamente lê o valor, partindo da cache

13 13 O que acontece numa escrita? A memória central e a cache devem de estar consistentes Manter ambas consistentes pode sair bastante caro... Write-through: Sempre que se escreve na cache, os dados são também enviados para a memória central Utilização de um write-buffer de actualização da memória central Simples de implementar Coerência de dados (importante em multi-processadores) Pode ser lenta, se os programas têm uma taxa de escritas superior ao o write-buffer aguenta Write-back: Apenas se escreve na cache; a memória central só é actualizada quando o bloco tem de ser eliminado da cache É necessária a presença de um dirty-bit a marcar cada entrada em cache Utiliza menos largura de banda com a memória (importante em multi- processadores) Várias escritas num bloco apenas implicam uma escrita em memória Read misses podem implicar escritas em memória (e.g. se é necessário substituir um bloco dirty) Escritas complicadas (e potencialmente lentas). É necessário verificar se se trata de um hit ou miss antes de actualizar a memória; não se pode simplesmente escrever. Utilização de um store-buffer.

14 14 Considerações sobre Memória DRAM = Dynamic Random Access Memory Ênfase na densidade (bits/cm^2) Latência de acesso / Velocidade de transferência Tem de ser refrescada periodicamente (basta ler os bits de uma linha) RAS = Row Access Strobe CAS = Column Access Strobe

15 15 Evolução da tecnologia DRAM

16 16 Como aumentar a largura de banda com a memória? Vencer a latência de acesso é complicado; mas é possível melhorar a largura de banda! (a) Abordagem assumida até agora (b) Bus largo, acede a todas as palavras de um bloco simultaneamente (c) Interleaved memory, evita o custo da latência de acesso (embora ainda pague o custo da transferência dos dados)

17 17 Algumas técnicas para melhorar a performance 1. Hierarquias de Caches 2.Requested Word First & Early Restart 3. Merge Write Buffer 4. Victim Caches

18 18 Exemplos de Caches

19 Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra 2004/ Hierarquia de Memória 5.2. Memória Virtual

20 20 Conceito A memória física de um computador pode ser considerada apenas como uma cache para os dados em disco Os dados em disco correspondem à memória virtual swap file

21 21 Mapeamento de endereços Atenção: Nada obriga a que os endereços físicos tenham o mesmo tamanho que os endereços virtuais

22 22 Aspecto de um sistema com memória virtual 00 4Gb Espaço de endereçamento do processo A Espaço de endereçamento do processo B 1000 Memória física 0 256Mb 5000 Tabela(s) de Tradução de Endereços Disco Nota: não existe apenas uma tabela de tradução de endereços, mas várias. A tabela do processo corrente é carregada utilizando um registo especial do processador

23 23 Considerações Importantes O tamanho das páginas deve ser grande para amortizar o enorme tempo de acesso ao disco Hoje são tipos valores de 4KB e 16KB. Começam a surgir sistemas de 32KB e 64KB. É importantíssimo baixar o miss rate Abordagens completamente associativas Quando existe uma page fault, a mesma é resolvida em software e não em hardware O preço de resolver o problema em software é baixo comparado com o preço de ir a disco e/ou de incorporar tal solução em hardware. Para além disso, podem-se utilizar algoritmos mais sofisticados em software. Write-thought não é uma opção

24 24 Tabela de Páginas (1)

25 25 Tabela de Páginas (1) O que é que falta neste diagrama???

26 26 Translation-Lookaside Buffer (TLB)

27 27 Exemplo de TLB+Cache (Intrinsity FastMATH) Nota: Falta mostrar a tabela de páginas (no caso de TLB miss)

28 28 Intrinsity FastMATH, c/ TLB hit

29 29 Vários acontecimentos possíveis

30 30 Alguns Exemplos de Processadores

31 31 AMD Athlon (2.2GHz)

32 32 Material para ler Computer Architecture: A Quantitative Approach, 3rd Ed. Secções 5.1, 5.2, 5.3 (Brevemente) 5.4 e 5.5 Secção 5.8 e a parte de 5.9 que diz respeito à tecnologia DRAM Secção 5.10 Alternativamente (ou complementarmente), a matéria encontra-se bastante bem explicada no Capítulo 7 do Computer Organization and Design, 3rd Ed. D. Patterson & J. Hennessy Morgan Kaufmann, ISBN August 2004

33 33 » People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise, the programs they write will be pretty weird « Donald Knuth

34 34 Questão Interessante Multiplicação de Matrizes, 1024x1024 Xeon – 2 GHz) ~/tmp]./Mult 1024 Size = 1024x1024 Total time = 57 Celeron – 1 GHz) ~/tmp]./Mult 1024 Size = 1024x1024 Total time = 16 sec O que é que se passa aqui?!?!?!?!

35 35 Organização da Memória ~/tmp] cat /proc/cpuinfo (...) model name : Celeron (Coppermine) cpu MHz : cache size : 128 KB bogomips : (...) ~/tmp] ~/tmp] cat /proc/cpuinfo (...) model name : Intel(R) XEON(TM) CPU 2.00GHz cpu MHz : cache size : 512 KB bogomips : (...) ~/tmp]

36 36 Latência de Acesso a Memória 2GHz

37 37 Largura de Banda de Acesso a Memória (MB/s) 2GHz 1GHz


Carregar ppt "Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra 2004/2005 5. Hierarquia de Memória."

Apresentações semelhantes


Anúncios Google