Post on 17-Apr-2015
Desde 1980, CPUs têm avançado mais rapidamente que DRAMs ...
CPU60% por ano2X em 1.5 anos
DRAM9% por anos2X em 10 anos
10
DRAM
CPU
Desempenho(1/latência)
100
1000
1980
2000
1990
Year
Gap crece 50% por ano
P. Como arquitetos tem tratado este GAP? R. Colocando memórias “cache”
entre a CPU e a DRAM. Ou seja, criando um hierarquia de
memória.
1977: DRAMs mais rápidas que microprocessadores
Apple ][ (1977)
Steve WozniakSteve
Jobs
CPU: 1000 ns DRAM: 400 ns
Níveis de hierarquia de memória
CPU Registers100s Bytes<10s nsIndeterminado
CacheK Bytes1-100 ns1-0.1 cents/bit
Main MemoryM Bytes50ns- 500ns$.0001-.00001 cents /bit
DiskG Bytes, 10 ms (10,000,000 ns)
10 - 10 cents/bit-5 -6
- Nome- Capacidade- Tempo de acesso- Custo
Tapeinfinitesec-min10 -8
Registers
Cache
Memory
Disk
Tape
Instr. Operands
Blocks
Pages
Files
- Quem cuida- Unidade transferida
prog./compiler1-8 bytes
cache control8-128 bytes
OS512-4K bytes
user/operatorMbytes
Upper Level
Lower Level
faster
Larger
Hierarquia de Memória: Apple iMac G5
iMac G51.6 GHz
07 Reg L1 Inst L1 Data L2 DRAM Disk
Size 1K 64K 32K 512K 256M 80G
Latency
(Cycles), Time (ns)
1,
0.6 ns
3,
1.9 ns
3,
1.9 ns
11,
6.9 ns
88,
55 ns
107,
12 ms
Permite que os programas enderecem espaço de memória que escala até o tamanho do disco, mas a velocidades
usualmente tão altas quanto a dos registradores
Gerenciado pelo
compilador
Geranciado p/ hardware
Gerenciado p/ OS,hardware,aplicação
Objetivo: Ilusão de que a memória é grande, rápida de barata.
iMac’s PowerPC 970: Todos os caches on-chip
(1K)
Registers
512KL2
L1 (64K Instruction)
L1 (32K Data)
Localidade ...
Donald J. Hatfield, Jeanette Gerald: Program Restructuring for Virtual Memory. IBM Systems Journal 10(3): 168-192 (1971)
tempo
En
der
eço
de
mem
óri
a (u
m p
on
to p
or
aces
so
Localidade
espacial
Localidade
temporal
Localidade ruim
As Três Vantagens de Memória Virtual
• Tradução: – Os programas tem uma visão consistente da memória, ainda que as
páginas estejam misturadas na memória física– Viabiliza a execução de múltiplos processos ou threads– Apenas a parte relevante do programa a cada momento precisa ficar na
memória (Working Set)– Estruturas contiguas como o stack ou o heap podem iniciar pequenas e
crescer conforme necessário
• Proteção:– Processos diferentes ficam protegidos uns dos outros– Páginas diferentes podem ter características diferentes
» Read only, S.O., etc.– Dados do S.O. protegidos dos usuários– Importante proteção contra “malware”
• Compartilhamento:– Uma página física podem ser compartilhada entre vários precessos
(DLLs, “Shared memory”)