Arquitectura de Computadores II Paulo Marques Departamento de Eng. Informática Universidade de Coimbra [email protected] 2004/200 5 5. Hierarquia de Memória 5.1. Cache
Apr 17, 2015
Arquitectura de Computadores II
Paulo MarquesDepartamento de Eng. InformáticaUniversidade de [email protected]
2004
/200
5
5. Hierarquia de Memória5.1. Cache
2
“O Fosso de Performance”
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
VelocidadePreço
Tamanho
4
Conceitos Básicos (Cache Directamente Mapeada)
Cache
Memória
0 1 2 3 4 5 6 7
......
10
00
10
01
10
02
10
03
10
04
10
05
10
06
10
07
10
08
10
09
10
10
10
11
10
12
10
13
10
14
10
15
10
16
10
17
10
18
10
19
10
20
10
21
10
22
10
23
10
24
10
25
10
26
10
27
10
28
10
29
10
30
10
31
10
32
10
33
10
34
10
35
10
36
10
37
10
38
10
39
10
40
LD R1, 1012Cache Directamente Mapeada
1012 MOD 8 = 4
Cache Hit O bloco está na cacheCache Miss O bloco não está na cache
5
Conceitos Básicos (Cache Directamente Mapeada)
Memória
0000
0001
0010
0011
0100
0101
0110
0111
......
10
00
10
01
10
02
10
03
10
04
10
05
10
06
10
07
10
08
10
09
10
10
10
11
10
12
10
13
10
14
10
15
10
16
10
17
10
18
10
19
10
20
10
21
10
22
10
23
10
24
10
25
10
26
10
27
10
28
10
29
10
30
10
31
10
32
10
33
10
34
10
35
10
36
10
37
10
38
10
39
10
40
1000
1001
1010
1011
1100
1101
1110
1111
LB R1, 1012
Cache Line
6
Cache Directamente Mapeada
7
Associatividade
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
Uma cache associativa em blocos de 4
10
Efeito da associatividade no miss rate
Associativity
0One-way Two-way
3%
6%
9%
12%
15%
Four-way Eight-way
1 KB
2 KB
4 KB
8 KB
16 KB
32 KB64 KB 128 KB
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
O que acontece num cache read miss?
1. Envia o endereço em falta para a memória2. Ordena à memória que efectue a leitura e espera
que a mesma complete3. Escreve o valor lido na cache, actualizando os
dados, tag e ligando o bit validNo 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
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
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 StrobeCAS = Column Access Strobe
15
Evolução da tecnologia DRAM
Year Chip Size $/MBTotal Access Time
(RAS + CAS)
Column Access time for an Existing Row
(CAS)1985 1 Mbit $200 135 ns 40 ns1989 4 Mbit $50 110 ns 40 ns1992 16 Mbit $15 90 ns 30 ns1996 64 Mbit $10 60 ns 12 ns1998 128 Mbit $4 60 ns 10 ns2000 256 Mbit $1 55 ns 7 ns2002 512 Mbit $0.25 50 ns 5 ns2004 1024 Mbit $0.10 45 ns 3 ns
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)
CPU
Cache
Memory
Bus
One-word-widememory organization
a.
b. Wide memory organization
CPU
Cache
Memory
Bus
Multiplexor
CPU
Cache
Bus
Memory
bank 0
Memory
bank 1
Memory
bank 2
Memory
bank 3
c. Interleaved memory organization
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
Exemplos de Caches
Arquitectura de Computadores II
Paulo MarquesDepartamento de Eng. InformáticaUniversidade de [email protected]
2004
/200
5
5. Hierarquia de Memória5.2. Memória Virtual
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
Mapeamento de endereços
Atenção: Nada obriga a que os endereços físicos tenhamo mesmo tamanho que os endereços virtuais
22
Aspecto de um sistema com memória virtual
0 0
4Gb 4Gb
Espaço de endereçamento do processo A
Espaço de endereçamento do processo B
1000 1000
Memória física0
256Mb5000
Tabela(s) de Tradução deEndereç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 especialdo processador
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
Tabela de Páginas (1)
25
Tabela de Páginas (1)
O que é que falta neste diagrama???
26
Translation-Lookaside Buffer (TLB)
27
Exemplo de TLB+Cache (Intrinsity FastMATH)
Nota: Falta mostrar a tabela de páginas(no caso de TLB miss)
28
Intrinsity FastMATH, c/ TLB hit
29
Vários acontecimentos possíveis
30
Alguns Exemplos de Processadores
31
AMD Athlon64 3500+ (2.2GHz)
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. HennessyMorgan Kaufmann, ISBN 1-55860-604-1 August 2004
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
Questão Interessante
Multiplicação de Matrizes, 1024x1024 INT @XTITAN (Dual Xeon – 2 GHz)
[pmarques@ingrid ~/tmp] ./Mult 1024Size = 1024x1024Total time = 57 sec
@T01 (Pentium Celeron – 1 GHz)[pmarques@t10 ~/tmp] ./Mult 1024Size = 1024x1024Total time = 16 sec
O que é que se passa aqui?!?!?!?!
35
Organização da Memória
[pmarques@t01 ~/tmp] cat /proc/cpuinfo (...)model name : Celeron (Coppermine)cpu MHz : 1002.301cache size : 128 KBbogomips : 1998.84(...)[pmarques@t01 ~/tmp]
[pmarques@ingrid ~/tmp] cat /proc/cpuinfo (...)model name : Intel(R) XEON(TM) CPU 2.00GHzcpu MHz : 1993.562cache size : 512 KBbogomips : 3971.48(...)[pmarques@ingrid ~/tmp]
36
Latência de Acesso a Memória
Celeron @ 1GHz Xeon @ 2GHz
37
Largura de Banda de Acesso a Memória (MB/s)
Xeon @ 2GHzCeleron @ 1GHz