Memória
Engº Jouson
Ispcaála
CENTRO DE
INFORMÁTICA - UFPE GRECO
Sistema Básico de Memória
Fluxo de Dados
CPU Memória Memória
Principal Secundária
Registradores
Barramento
Barramento de E/S
de memória
CENTRO DE
INFORMÁTICA - UFPE GRECO
Características de Memória
Localização Performance
• CPU • Tempo de acesso
• Placa mãe (primária) • Ciclo
• Externa (secundária) • Taxa de transferência
Capacidade Implementação
• Tamanho e Núm. de palavras • Semicondutor
Unidade de Transf. • Superfície magnética
• Palavra ou bloco • Superfície ótica
Método de Acesso Manutenção de dados
• Sequencial (ex. fita) • Volátil ou não
• Acesso direto (ex. disco) • Apagável ou não
• Acesso randômico
• Acesso associativo
CENTRO DE
INFORMÁTICA - UFPE GRECO
Nomenclatura Básica
RAM = Random Acces ROM = Read Only Memory
Memory PROM = Programmable ROM
SRAM = Static RAM EPROM = Erasable PROM
DRAM = Dynamic RAM EEPROM = Electrically Erasable
VRAM - Video RAM PROM (apagamento byte a byte)
WRAM - Windows RAM Flash EPROM = Fast erasable
EPROM (apagamento por bloco)
CENTRO DE
INFORMÁTICA - UFPE GRECO
Tipos Básicos de Memória Semicondutora
Tipo de Memória Categoria Apagamento Escrita Volatil
idade
Random-Access Read- Elétrico Elétrica Volátil
Mem. (RAM) Write byte a byte
Read-Only Mem. Read-
Máscara
(ROM) Only
Impossível
Programmable One-Time
ROM (PROM) Prog.
Erasable PROM Ultra-violeta não-
(EPROM) volátil
Elétrica
Electrically EPROM Read- Elétrico
(EEPROM) mostly byte a byte
Flash EPROM Elétrico
por bloco
CENTRO DE
INFORMÁTICA - UFPE GRECO
RAM Dinâmica vs. Estática
DRAM (Dynamic Random Acess Memory)
• Grande capacidade de integração (baixo custo por bit)
• Perda de informação após algum tempo: Necessidade de refreshing
SRAM (Static Random Acess Memory)
• Pequeno tempo de acesso
• Não existe necessidade de refreshing
• Alto custo por bit (baixa integração)
CENTRO DE
INFORMÁTICA - UFPE GRECO
Encapsulamento
SIMM DIMM
• Single In-line Memory Module • Dual In line Memory Module
• 30 pinos, 8 bits/módulo • 168 pinos, 64 bits/módulo
• 72 pinos, 32 bits/módulo
Compact SIMM
Montagem na MB
SIMM 30 pinos
DIMM 168 pinos
CENTRO DE
INFORMÁTICA - UFPE GRECO
DIMM
CENTRO DE
INFORMÁTICA - UFPE GRECO
Acesso a memória principal (DRAM)
Memória
______
______
______
______
n bits Endereço n/2 bits ______
Endereços
multiplexado: ______
Linhas e colunas ______
CPU Dados
Controlador ______
Dados ______
Controle (RD, WR...) de Memória ____
RAS ______
____ ______
CAS ______
___
______
W
______ ______
OE(RD) ______
CENTRO DE
INFORMÁTICA - UFPE GRECO
DRAM • O endereço das linhas e colunas são enviados
separadamente (prim. linha, depois coluna).
Organização Interna • Para acessar uma posição (leitura ou escrita),
o endereço da linha é posto junto com o sinal
e Método de Acesso RAS (Row Addres Selector).
• Depois o endereço da coluna vai junto com o
____ ___ __ __ sinal CAS (Column Address Selector)
RAS CAS W OE
• No exemplo abaixo, as 11 linhas de A0 a A10
são usadas para enviar end. de linha e coluna.
Por isso esta memória tem 4Mega posições
de endereçamento (4Mega = 222)
MUX
Row
Dec
A0
oder
A1
...
...
A10 D1
D2
D3
Column D4
Decoder
CENTRO DE
INFORMÁTICA - UFPE GRECO
No Page Mode, o controlador de memória
faz até 4 acessos em sequência à DRAM.
Modo de Acesso É comum designar o núm. de pulsos de
clock de cada acesso para cada tipo de
memória.
Ex. a FPM RAM tem acesso 5/3/3/3 (a
Ex: FPM RAM
• Ativa uma fila (RAS)
66MHz) em page mode, o que significa 5
• Acessos sequenciais
pulsos de clock para obter o primeiro
a colunas (vários dado, e 3 para o segundo, terceiro e
pulsos de CAS) quarto.
CENTRO DE
INFORMÁTICA - UFPE GRECO
FPM DRAM - Fast Page Mode DRAM
EDO DRAM - Extended Data-Output DRAM
FPM DRAM EDO DRAM
DRAM mais simples Tempo de acesso 70ns,
Tempo de acesso 70ns and 60ns and 50ns
60ns. Para barramento de 66
Acesso page mode = 5/3/3/3 MHz use 60 ns ou melhor.
a 66MHz Acesso page mode =
5/2/2/2 a 66MHz
CENTRO DE
INFORMÁTICA - UFPE GRECO
EDO DRAM
Método de Acesso
No page mode, um latch na saída de dados permite o acesso
simultâneo a novas posições de memória enquanto os dados estão
sendo lidos na saída.
Isso permite a diminuição do tempo entre pulsos de CAS
CENTRO DE
INFORMÁTICA - UFPE GRECO
BEDO - Burst EDO DRAM
Page (burst) mode = 5/1/1/1 a Possui registrador e gerador
66MHz interno de ender. sequenciais
Tempo de acesso randômico é
igual ao FPM ou EDO RAM
CENTRO DE
INFORMÁTICA - UFPE GRECO
SDRAM - Synchronous DRAM
Page (burst) mode =
5/1/1/1 a 100MHz
Tempo de acesso
randômico é igual à
FPM ou EDO RAM.
Trabalha na
velocidade do bus, por
isso o nome.
Interleaved
Uso de Serial
Presence Detect para
Plug-and-Play
CENTRO DE
INFORMÁTICA - UFPE GRECO
DDR SDRAM – Double Data Rate SDRAM
Transfere dados na subida e descida do clock (compensa o
uso de barramentos lentos)
Uso de Serial Presence Detect para Plug-and-Play
CENTRO DE
INFORMÁTICA - UFPE GRECO
Direct Rambus DRAM ou RDRAM
Padrão proprietário da Rambus Inc.
Usa o Direct Rambus Channel – 400MHz, 16 bits (o barramento
estreito permite estas taxas altas)
Transferência de dados na subida e descida do clock
➔ 1,6 GByte/s
Uso de Serial Presence Detect para Plug-and-Play
CENTRO DE
INFORMÁTICA - UFPE GRECO
Direct Rambus DRAM ou RDRAM
CENTRO DE
INFORMÁTICA - UFPE GRECO
Direct Rambus DRAM ou RDRAM
CENTRO DE
INFORMÁTICA - UFPE GRECO
Synchronous Link DRAM - SLDRAM
Desenvolvido pelo SLDRAM Consortium (20 empresas)
Uso de tecnologia mais comum: bus de 64-bit a 200 MHz
Transferência de dados na subida e descida do clock
➔ 3,2 GByte/s
CENTRO DE
INFORMÁTICA - UFPE GRECO
Memórias para Controlador de Vídeo
VRAM - Vídeo RAM MDRAM - Multibank DRAM
WRAM - Windows RAM Vários bancos de DRAMs (cada
Têm duas portas de um 32 KB) com I/O próprio
acesso: uma para o ligados num bus interno.
controlador de vídeo e Dados podem ser acessados em
outra para a CPU vários bancos simultaneamente.
WRAM é 50% mais rápida Chips de qualquer tamanho
e 20% mais barata podem ser fabricados. Ex: 2.5MB,
usados em cont. de vídeo com
resolução de 1,024x768 por 24bit
CENTRO DE
INFORMÁTICA - UFPE GRECO
Memória Cache
CENTRO DE
INFORMÁTICA - UFPE GRECO
Comparação da Performance da Mem. Principal e CPU
350
DecAlpha
300
250 CPU
200
DecAlpha
150
IBMPower2
100
DecAlpha Memória
HP900
50 MIPS MIPS IBMPower1
SUN R2000 R3000
CENTRO DE
INFORMÁTICA - UFPE GRECO
Memória Principal Vs. Cache
O fichário representa o disco
rígido.
A pasta sobre a mesa
Quadro representa a memória
Fichário principal.
Pasta No quadro de avisos se
encontram informações que
podem ser acessadas de
forma muito rápida. O quadro
representa a cache.
Mesa e usuário são a CPU
CENTRO DE
INFORMÁTICA - UFPE GRECO
Motivação para hierarquia
Principio da localidade + Relação custo/desempenho das
tecnologias
Alto desempenho da CPU
C
CPU a Memória Memória
c Principal Secundária
h
Registradores e
Barramento
Barramento de E/S
de memória
CENTRO DE
INFORMÁTICA - UFPE GRECO
Princípio da Localidade
Localidade Temporal
• Num futuro próximo, o programa irá referenciar os
programas e dados referenciados recentemente
Localidade Espacial
• Num futuro próximo, o programa irá referenciar os
programas e objetos de dados que tenham
endereços próximos das últimas referências.
CENTRO DE
INFORMÁTICA - UFPE GRECO
Hierarquia de Memória
chip
CPU
Registradores Reg. Velocidade
Cache
cache (L1)
Principal
Custo e cache (L2)
tamanho Cache de Disco
memória principal
Disco Magnético
memória secundária Fita CD-ROM
CENTRO DE
INFORMÁTICA - UFPE GRECO
Níveis de memória
Nível 1 2 3 4
Nome Registrador Cache Memória Secundária
Principal
Tamanho < 1K <4M <4G >1G
Tecnologia BICMOS SRAM DRAM Disco
Tempo de 2-5 3-10 80-400 5.000.000
acesso (ns)
Largura de 4000-32.000 800-5000 400-2000 4-32
banda(MB/s)
Gerência Compilador Hardware S.O S.O /
usuário
Copia em Cache Memória Disco Fita
Principal
CENTRO DE
INFORMÁTICA - UFPE GRECO
Características da Memória Cache
Organização Estratégia de Escrita
• Tamanho do Bloco • Write through
Tipos de mapeamento • Write back
• Direto
Núm. de Caches
• Associativo
• Associativo por conjunto • Single X Two-level
• Unified X Split
Estratégias de substituição
• Random
• First-in-first-out (FIFO)
• Least-recently used (LRU)
• Least-frequently used (LFU)
CENTRO DE
INFORMÁTICA - UFPE GRECO
Avanços em implementação de caches
Sincronizada ao clock do sistema
• Os sinais são sincronizados ao clock.
• Simplifica o projeto da memória
Burst
• Incorpora controle interno que permite acesso rápido a
posições subsequentes (ex. reg. e gerador de endereços)
Pipelining
• Usa registradores na entrada e/ou saída o que permite
fornecer dados e acessar novos endereços em paralelo.
CENTRO DE
INFORMÁTICA - UFPE GRECO
Async SRAM
A mais antiga
É mais rápida que a DRAM apenas por ser estática.
20, 15 or 12 ns.
Não é suficientemente rápida para permitir acesso síncrono.
CENTRO DE
INFORMÁTICA - UFPE GRECO
SB SRAM - Syncronous Burst SRAM
8.5ns to 12ns
Acesso em page mode
• 2/1/1/1 em 66 MHz
• 3/2/2/2 em > 66 MHz
Para velocidadades de barramento até 66 MHz, SB SRAM
apresenta a melhor performance.
CENTRO DE
INFORMÁTICA - UFPE GRECO
PB SRAM - Pipeline Burst SRAM (cache)
Usa registradores na entrada ou saída.
Gasta um clock a mais para carregar o registrador, mas depois
permite acesso simultâneo a novas posições de memória
enquanto os dados estão sendo lidos na saída.
Acesso page mode 3/1/1/1.
Mais lenta que SB SRAM em bus < 66MHz.
Melhor se > 66MHz.
4.5ns to 8ns.
CENTRO DE
INFORMÁTICA - UFPE GRECO
Velocidade de Acesso a Memórias Cache
A melhor memória para cada velocidade de barramento
Vel. Bus
33 50 60 66 75 83 100 125
(MHz)
Async 2/1/1/1 3/2/2/2 3/2/2/2 3/2/2/2 3/2/2/2 3/2/2/2 3/2/2/2 3/2/2/2
SRAM
Sync 2/1/1/1 2/1/1/1 2/1/1/1 2/1/1/1 3/2/2/2 3/2/2/2 3/2/2/2 3/2/2/2
SRAM
PB 3/1/1/1 3/1/1/1 3/1/1/1 3/1/1/1 3/1/1/1 3/1/1/1 3/1/1/1 3/1/1/1
SRAM
CENTRO DE
INFORMÁTICA - UFPE GRECO
Memória Cache:
Tipos de Mapeamento
Memória principal
Blocos
0
1 ou
2 Linhas Memória cache
3
4
5 0
6 1
7
8 2
9 3
10
4
11
12 5
13 6
14
15 7
...
30
31
Offset:
identifica palavras em uma linha
CENTRO DE
INFORMÁTICA - UFPE GRECO
Mapeamento Direto
Cada linha na mem. principal tem uma posição fixa na cache
• End. linha = ELMP mod NLC
Memória principal onde ELMP = endereço linha mem. principal
0 NLC = núm. linhas da cache
1 • Tag = ELMP / NLC (Informa qual linha da mem. principal está
2 armazenada na linha de cache correspondente)
3
4 • Offset cache = Offset Mem. Principal
5
6 Memória cache
7 dados tag linha
8
9
0 (000) Exemplo: End. linha = 12 mod 8 = 4
10 1 (001) tag = 12 / 8 = 1
11 2 (010)
12 Endereço da palavra
13 3 (011)
14 01 4 (100) Tag Linha Offset
15
5 (101)
16
...
31
6 (110)
0000...01 100 Offset
7 (111)
CENTRO DE
INFORMÁTICA - UFPE GRECO
Offset
Mapeamento direto
CENTRO DE
INFORMÁTICA - UFPE GRECO
Mapeamento Associativo
Memória principal Uma linha na memória principal pode ocupar qualquer posição na cache
0
1 • Tag armazena na cache o end. da linha na mem. principal
2
3 • Offset cache = Offset Mem. Principal
4
5
6 Memória cache
7 dados tag
8
9
10 Exemplo: tag = 12 (011002)
11 01100
12
13 Endereço da palavra
14
15 Tag Offset
16
...
31 000000...01100 Offset
Offset
CENTRO DE
INFORMÁTICA - UFPE GRECO
Mapeamento Associativo
CENTRO DE
INFORMÁTICA - UFPE GRECO
Mapeamento Associativo por Conjunto
Uma linha na memória principal pode ocupar qualquer posição dentro de um
conjunto definido de linhas da cache
Memória principal • Tag = ELMP / NCC
• Set = ELMP mod NCC
0
1 onde ELMP = endereço linha mem. principal
2 NCC = núm. conjuntos da cache
3
4
• Offset cache = Offset Mem. Principal
5
6 Memória cache Conjuntos (sets)
7 dados tag Exemplo: two-way set associative
8 {
9 tag = 12 / 4 = 3 (0112))
10 011
set = 12 mod 4 = 0
11 {
12 Endereço da palavra
13
14 { Tag set Offset
15
16
...
{ 011 00 Offset
31
CENTRO DE
INFORMÁTICA - UFPE GRECO
Mapeamento Associativo por Conjunto
CENTRO DE
INFORMÁTICA - UFPE GRECO
Comparação de Métodos de Mapeamento
Mapeamento direto Associativa
• Simples e Barata • Rápida
• Mais faltas • Menos falta
• Cara (comparação do endereço
em paralelo)
Associativa por conjunto: combinação das anteriores
• Se NCC = NLC Ass. por conjunto = Mapeamento Direto
• Se NCC = 1 Ass. por conjunto = Associativa
NLC = núm. linhas da cache
NCC = núm. conjuntos da cache
CENTRO DE
INFORMÁTICA - UFPE GRECO
Políticas de Substituição de Páginas
Randômica:
• Simples e fácil de implementar
FIFO (First-In-First-Out)
LFU (Least-Frequently Used)
LRU (least-recently used)
• Menor taxa de faltas
Associatividade
2 way 4-way 8-way
Size LRU random LRU random LRU random
16 KB 5.18 5.69 4.67 5.29 4.39 4.96
64 KB 1.88 2.01 1.54 1.66 1.39 1.53
256KB 1.15 1.17 1.13 1.13 1.12 1.12
CENTRO DE
INFORMÁTICA - UFPE GRECO
Leitura/Escrita da Cache
Leitura:
• Mais frequentes, rápidas e fáceis de implementar
Escrita:
• Mais lentas e complicadas e consistência de dados com a memória
principal deve ser mantida (se uma página da cache foi alterada
pela CPU, não pode ser descartado da cache sem garantir que foi
copiada para a página correspondente na mem. principal)
CENTRO DE
INFORMÁTICA - UFPE GRECO
Políticas de Escrita e Consistência
Write through
• Cache e memória são atualizadas simultaneamente
Write back
• Memória principal é atualizada quando bloco é substituído
• Usa dirty bit para marcar linhas alteradas na cache.
CENTRO DE
INFORMÁTICA - UFPE GRECO
Memória Cache: escrita
Write through Write back
facilidade de redução de tráfego com
implementação memória
consistência da memória
principal
Para se evitar espera durante escrita:
Write buffers
CENTRO DE
INFORMÁTICA - UFPE GRECO
Exemplo: Alpha AXP 21064
Cache separadas de dados e de instruções
• Vantagens:
– Melhor capacidade de otimizações
– Evita hazard estrutural
Características:
• Tamanho:8192 bytes
• Blocos de 32 bits
• Mapeamento direto
• Write through
• Four buffer write-buffer
CENTRO DE
INFORMÁTICA - UFPE GRECO
Alpha AXP 21064- Cache Dados
Endereço
Tag Indice Off.
Tag Dados
CPU
Val.
(1) (21) (256) Dados Dados
Entrada Saída
256
blocos
Buffer
=? Mux de
Escrita
CENTRO DE
INFORMÁTICA - UFPE GRECO
Memórias mais largas
CPU CPU
Multiplexador
Cache
Cache
Memória
Memória
CENTRO DE
INFORMÁTICA - UFPE GRECO
Memória “Interleaved”
CPU CPU
Cache Cache
Banco 0 Banco 1 Banco 2 Banco 3
Memória Memória Memória Memória Memória
CENTRO DE
INFORMÁTICA - UFPE GRECO
Memória Interleaved
Bancos de memória para escrita/leitura de múltiplas palavras
Reduz penalidade
Necessita pouco hardware adicional
CENTRO DE
INFORMÁTICA - UFPE GRECO
Código Corretor de Erro:
Código de Hamming
- Capaz de corrigir 1 erro (Single Error Correction - SEC)
- Expansível para Single Error Correction - Double Error Detection
(SEC-DED)
Bits de Dados
1 1 1 0
1 1
1 0 1 0
Bits de verificação
(redundantes) 0
1 1 0
1 0
0
Erro 1
CENTRO DE
INFORMÁTICA - UFPE GRECO
Código de Hamming
Exemplo: M bits de dados
Check K Data
bits de verificação devem ser capazes de codificar erros
bitem M+Kbitposições, quando houver erro, mais uma posição
12 1100 que indica que não houve erro.
M12
11 1011 2k M + K + 1
=>M11
10 1010 M10
9 1001 M9
8 1000 C8
7 0111
C1 M7
= M3O + M5 + OM7 + M9 O
6 0110 M6
C2 = M3 O + M6 + OM7 +
5 0101 M5
4 0100 C4 C4 = M5O + M6 + OM7
3 0011 C8 M3
=
2 0010 C2
1 0001 C1
CENTRO DE
INFORMÁTICA - UFPE GRECO