Title: Mem
1 Memória
2Sistema Básico de Memória
Fluxo de Dados
3Características de Memória
- Localização
- CPU
- Placa mãe (primária)
- Externa (secundária)
- Capacidade
- Tamanho e Núm. de palavras
- Unidade de Transf.
- Palavra ou bloco
- Método de Acesso
- Sequencial (ex. fita)
- Acesso direto (ex. disco)
- Acesso randômico
- Acesso associativo
- Performance
- Tempo de acesso
- Ciclo
- Taxa de transferência
- Implementação
- Semicondutor
- Superfície magnética
- Superfície ótica
- Manutenção de dados
- Volátil ou não
- Apagável ou não
4Nomenclatura Básica
- RAM Random Acces Memory
- SRAM Static RAM
- DRAM Dynamic RAM
- VRAM - Video RAM
- WRAM - Windows RAM
- ROM Read Only Memory
- PROM Programmable ROM
- EPROM Erasable PROM
- EEPROM Electrically Erasable PROM (apagamento
byte a byte) - Flash EPROM Fast erasable EPROM (apagamento por
bloco)
5Tipos Básicos de Memória Semicondutora
6RAM 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)
7Encapsulamento
- SIMM
- Single In-line Memory Module
- 30 pinos, 8 bits/módulo
- 72 pinos, 32 bits/módulo
- DIMM
- Dual In line Memory Module
- 168 pinos, 64 bits/módulo
Montagem na MB
8DIMM
9Acesso a memória principal (DRAM)
Memória
______ ______ ______ ______ ______ ______ ______ _
_____ ______ ______ ______ ______ ______ ______ __
____
CPU
n bits
Endereço multiplexado Linhas e colunas
n/2 bits
Endereços
Controlador de Memória
Dados
Dados
Controle (RD, WR...)
____ RAS ____ CAS ___ W ______ OE(RD)
10DRAMOrganização Internae Método de Acesso
- O endereço das linhas e colunas são enviados
separadamente (prim. linha, depois coluna). - Para acessar uma posição (leitura ou escrita), o
endereço da linha é posto junto com o sinal RAS
(Row Addres Selector). - Depois o endereço da coluna vai junto com o sinal
CAS (Column Address Selector) - 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)
11Modo de Acesso
- No Page Mode, o controlador de memória faz até 4
acessos em sequência à DRAM. É 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 66MHz) em
page mode, o que significa 5 pulsos de clock para
obter o primeiro dado, e 3 para o segundo,
terceiro e quarto.
- Ex FPM RAM
- Ativa uma fila (RAS)
- Acessos sequenciais a colunas (vários pulsos de
CAS)
12FPM DRAM - Fast Page Mode DRAM EDO DRAM -
Extended Data-Output DRAM
- EDO DRAM
- Tempo de acesso 70ns, 60ns and 50nsPara
barramento de 66 MHz use 60 ns ou melhor. - Acesso page mode 5/2/2/2 a 66MHz
- FPM DRAM
- DRAM mais simples
- Tempo de acesso 70ns and 60ns.
- Acesso page mode 5/3/3/3 a 66MHz
13EDO DRAMMé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
14BEDO - Burst EDO DRAM
- Page (burst) mode 5/1/1/1 a 66MHz
- Tempo de acesso randômico é igual ao FPM ou EDO
RAM
- Possui registrador e gerador interno de ender.
sequenciais
15SDRAM - 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
16DDR 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
17Direct 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
18Direct Rambus DRAM ou RDRAM
19Direct Rambus DRAM ou RDRAM
20Synchronous 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
21Memórias para Controlador de Vídeo
- VRAM - Vídeo RAMWRAM - Windows RAM
- Têm duas portas de acesso uma para o controlador
de vídeo e outra para a CPU - WRAM é 50 mais rápida e 20 mais barata
- MDRAM - Multibank DRAM
- Vários bancos de DRAMs (cada um 32 KB) com I/O
próprio ligados num bus interno. - Dados podem ser acessados em vários bancos
simultaneamente. - Chips de qualquer tamanho podem ser fabricados.
Ex 2.5MB, usados em cont. de vídeo com resolução
de 1,024x768 por 24bit
22Memória Cache
23Comparação da Performance da Mem. Principal e CPU
CPU
Memória
24Memória Principal Vs. Cache
- O fichário representa o disco rígido.
- A pasta sobre a mesa representa a memória
principal. - 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
25Motivação para hierarquia
- Principio da localidade Relação
custo/desempenho das tecnologias - Alto desempenho da CPU
C a c h e
Memória Principal
Memória Secundária
CPU
Registradores
Barramento de E/S
Barramento de memória
26Princí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.
27 Hierarquia de Memória
chip
CPU Registradores
Reg.
Velocidade
Cache
cache (L1)
Principal
cache (L2)
Custo e tamanho
Cache de Disco
memória principal
Disco Magnético
memória secundária
Fita
CD-ROM
28Níveis de memória
29Características da Memória Cache
- Organização
- Tamanho do Bloco
- Tipos de mapeamento
- Direto
- Associativo
- Associativo por conjunto
- Estratégias de substituição
- Random
- First-in-first-out (FIFO)
- Least-recently used (LRU)
- Least-frequently used (LFU)
- Estratégia de Escrita
- Write through
- Write back
- Núm. de Caches
- Single X Two-level
- Unified X Split
30Avanç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.
31Async 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.
32SB SRAM - Syncronous Burst SRAM
- 8.5ns to 12ns
- Acesso em page mode
- 2/1/1/1 em 66 MHz
- 3/2/2/2 em gt 66 MHz
- Para velocidadades de barramento até 66 MHz, SB
SRAM apresenta a melhor performance.
33PB 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 lt 66MHz.Melhor se
gt 66MHz. - 4.5ns to 8ns.
34Velocidade de Acesso a Memórias Cache
A melhor memória para cada velocidade de
barramento
35Memória CacheTipos de Mapeamento
Memória principal
Blocos ou Linhas
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ... 30 31
Memória cache
0 1 2 3 4 5 6 7
Offset identifica palavras em uma linha
36Mapeamento Direto
- Cada linha na mem. principal tem uma posição fixa
na cache - End. linha ELMP mod NLC
- onde ELMP endereço linha mem. principal
- NLC núm. linhas da cache
- Tag ëELMP / NLCû (Informa qual linha da mem.
principal está armazenada na linha
de cache correspondente) - Offset cache Offset Mem. Principal
Memória principal
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 31
Memória cache
dados tag linha
Exemplo End. linha 12 mod 8 4 tag ë12
/ 8 û 1
0 (000) 1 (001) 2 (010) 3 (011) 4 (100) 5
(101) 6 (110) 7 (111)
Endereço da palavra
Tag
Linha
Offset
01
Offset
37Mapeamento direto
38 Mapeamento Associativo
Memória principal
- Uma linha na memória principal pode ocupar
qualquer posição na cache - Tag Þ armazena na cache o end. da linha na mem.
principal - Offset cache Offset Mem. Principal
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 31
Memória cache
dados tag
Exemplo tag 12 (011002)
01100
Endereço da palavra
Tag
Offset
000000...01100
Offset
Offset
39Mapeamento Associativo
40Mapeamento Associativo por Conjunto
- Uma linha na memória principal pode ocupar
qualquer posição dentro de um conjunto definido
de linhas da cache -
- Tag ë ELMP / NCC û
- Set ELMP mod NCC
- onde ELMP endereço linha mem. principal
- NCC núm. conjuntos da cache
- Offset cache Offset Mem. Principal
Memória principal
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 31
Memória cache
Conjuntos (sets)
dados tag
Exemplo two-way set associative
tag 12 / 4 3 (0112)) set
12 mod 4 0
011
Endereço da palavra
Tag
set
Offset
011 00
Offset
41Mapeamento Associativo por Conjunto
42Comparação de Métodos de Mapeamento
- Associativa
- Rápida
- Menos falta
- Cara (comparação do endereço em paralelo)
- Mapeamento direto
- Simples e Barata
- Mais faltas
- 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
43Polí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
44Leitura/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)
45Polí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.
46Memória Cache escrita
- Para se evitar espera durante escrita
- Write buffers
47Exemplo Alpha AXP 21064
- Cache separadas de dados e de instruções
- Vantagens
- Melhor capacidade de otimizações
- Evita hazard estrutural
- Características
- Tamanho8192 bytes
- Blocos de 32 bits
- Mapeamento direto
- Write through
- Four buffer write-buffer
48Alpha AXP 21064- Cache Dados
49Memórias mais largas
50Memória Interleaved
CPU
Memória
51Memória Interleaved
- Bancos de memória para escrita/leitura de
múltiplas palavras - Reduz penalidade
- Necessita pouco hardware adicional
52Código Corretor de ErroCó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
0
1
0
1
Bits de verificação (redundantes)
0
1
1
0
1
0
0
1
Erro
53Código de Hamming
Exemplo Check Data bit
bit 12 1100 M12 11 1011 M11 10
1010 M10 9 1001 M9 8 1000 C8
7 0111 M7 6 0110 M6 5 0101
M5 4 0100 C4 3 0011 M3 2
0010 C2 1 0001 C1
M bits de dados K bits de verificação devem ser
capazes de codificar erros em MK posições,
quando houver erro, mais uma posição que
indica que não houve erro. gt 2k ³ M K 1