Arquitectura de
Computadores II
5. Hierarquia de Memória
2004/2005
5.1. Cache
Paulo Marques
Departamento de Eng. Informática
Universidade de Coimbra
[email protected]
“O Fosso de Performance”
2
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”
Velocidade
Preço
Registos
~128x32bits, 0.25ns
Cache
Memória Central (RAM)
Memória de Massa (Disco)
~1MByte, 10ns
$5000/GB
~512Mbyte, 100ns
$100/GB
~200Gbyte, 5ms
$1/GB
Tamanho
3
Conceitos Básicos (Cache Directamente Mapeada)
LD
R1, 1012
Cache Directamente Mapeada
1012 MOD 8 = 4
0 1 2 3 4 5 6 7
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
Cache
...
Memória
...
Cache Hit  O bloco está na cache
Cache Miss  O bloco não está na cache
4
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
Conceitos Básicos (Cache Directamente Mapeada)
LB
...
R1, 1012
Cache Line
Memória
...
5
Cache Directamente Mapeada
6
Associatividade
7
Porquê diferentes tipos de associatividade?

Directamente Mapeada



Completamente Associativa




 Rápida a aceder aos dados (só podem estar num local)
 Sempre que existe um miss, limpa a entrada correspondente
(hit rate baixo)
 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]
8
Uma cache associativa em blocos de 4
9
Efeito da associatividade no miss rate
15%
1 KB
12%
2 KB
9%
4 KB
6%
8 KB
16 KB
32 KB
3%
64 KB
128 KB
0
One-way
Two-way
Four-way
Eight-way
Associativity
10
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)
11
O que acontece num cache read miss?
1.
2.
3.
Envia o endereço em falta para a memória
Ordena à memória que efectue a leitura e espera que a
mesma complete
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:



4.
Random
Least-Recently Used (LRU)
First-in, First-out (FIFO)
Efectivamente lê o valor, partindo da cache
12
O que acontece numa escrita?

A memória central e a cache devem de estar consistentes


Write-through: Sempre que se escreve na cache, os dados são
também enviados para a memória central





Manter ambas consistentes pode sair bastante caro...
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 multiprocessadores)
 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.
13
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
14
Evolução da tecnologia DRAM
Year
1985
1989
1992
1996
1998
2000
2002
2004
Chip Size
1 Mbit
4 Mbit
16 Mbit
64 Mbit
128 Mbit
256 Mbit
512 Mbit
1024 Mbit
$/MB
$200
$50
$15
$10
$4
$1
$0.25
$0.10
Total Access Time
(RAS + CAS)
135 ns
110 ns
90 ns
60 ns
60 ns
55 ns
50 ns
45 ns
Column Access time
for an Existing Row
(CAS)
40 ns
40 ns
30 ns
12 ns
10 ns
7 ns
5 ns
3 ns
15
Como aumentar a largura de banda com a memória?
CPU
CPU
CPU
Multiplexor
Cache
Cache
Cache
Bus
Bus
Memory
b. Wide memory organization
Memory

(a)
(b)
a. One-word-wide
memory organization
(c)
Bus
Memory
Memory
Memory
Memory
bank 0
bank 1
bank 2
bank 3
c. Interleaved memory organization
Vencer a latência de acesso é complicado; mas
é possível melhorar a largura de banda!
Abordagem assumida até agora
Bus largo, acede a todas as palavras de um
bloco simultaneamente
Interleaved memory, evita o custo da latência
de acesso (embora ainda pague o custo da
transferência dos dados)
16
Algumas técnicas para melhorar a performance
1.
Hierarquias de Caches
2.
“Requested Word First” & “Early Restart”
3.
Merge Write Buffer
4.
Victim Caches
17
Exemplos de Caches
18
Arquitectura de
Computadores II
5. Hierarquia de Memória
2004/2005
5.2. Memória Virtual
Paulo Marques
Departamento de Eng. Informática
Universidade de Coimbra
[email protected]
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
20
Mapeamento de endereços
Atenção: Nada obriga a que os endereços físicos tenham
o mesmo tamanho que os endereços virtuais
21
Aspecto de um sistema com memória virtual
4Gb
4Gb
Disco
5000
1000
1000
0
0
Espaço de
endereçamento
do processo A
256Mb
Espaço de
endereçamento
do processo B
Tabela(s) de
Tradução de
Endereços
0
Memória física
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
22
Considerações Importantes

O tamanho das páginas deve ser grande para amortizar o
enorme tempo de acesso ao disco


É importantíssimo baixar o miss rate


Abordagens completamente associativas
Quando existe uma page fault, a mesma é resolvida em
software e não em hardware


Hoje são tipos valores de 4KB e 16KB. Começam a surgir sistemas
de 32KB e 64KB.
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
23
Tabela de Páginas (1)
24
Tabela de Páginas (1)
O que é que falta neste diagrama???
25
Translation-Lookaside Buffer (TLB)
26
Exemplo de TLB+Cache (Intrinsity FastMATH)
Nota: Falta mostrar a tabela de páginas
(no caso de TLB miss)
27
Intrinsity FastMATH, c/ TLB hit
28
Vários acontecimentos possíveis
29
Alguns Exemplos de Processadores
30
AMD Athlon64 3500+ (2.2GHz)
31
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 1-55860-604-1
August 2004
32
» 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
33
Questão Interessante

Multiplicação de Matrizes, 1024x1024 INT

@XTITAN(Dual Xeon – 2 GHz)
[pmarques@ingrid ~/tmp] ./Mult 1024
Size = 1024x1024
Total time = 57 sec

@T01
(Pentium Celeron – 1 GHz)
[pmarques@t10 ~/tmp] ./Mult 1024
Size = 1024x1024
Total time = 16 sec
O que é que se passa aqui?!?!?!?!
34
Organização da Memória
[pmarques@ingrid ~/tmp] cat /proc/cpuinfo
(...)
model name
: Intel(R) XEON(TM) CPU 2.00GHz
cpu MHz
: 1993.562
cache size
: 512 KB
bogomips
: 3971.48
(...)
[pmarques@ingrid ~/tmp]
[pmarques@t01 ~/tmp] cat /proc/cpuinfo
(...)
model name
: Celeron (Coppermine)
cpu MHz
: 1002.301
cache size
: 128 KB
bogomips
: 1998.84
(...)
[pmarques@t01 ~/tmp]
35
Latência de Acesso a Memória
Celeron @ 1GHz
Xeon @ 2GHz
36
Largura de Banda de Acesso a Memória (MB/s)
Celeron @ 1GHz
Xeon @ 2GHz
37
Download

Memória e Cache - Universidade de Coimbra