Академический Документы
Профессиональный Документы
Культура Документы
por
1
Organização da Memória
Registradores
CD-R
CD-RW
DVD-R
DVD-RW
Fita Magnética
2
Características fundamentais
Localização Unidade de
− Processador Transferência
− Interna (principal) − Palavra
− Externa (secundária) − Bloco
Capacidade Método de Acesso
− Tamanho da palavra − Sequencial
− Número de palavras − Direto
− Aleatório
− Associativo
3
Método de Acesso Sequencial
Os dados são organizados em registros
sequenciais
Exemplo: fitas magnéticas
Trilha 01 Registro
Trilha 02 físico
Trilha 03
Trilha 04
Trilha 05
Trilha 06
Trilha 07
Trilha 08
Trilha 09 (bit de paridade)
Espaço entre registros
Dado buscado
(trilha 02, setor 25)
5
Método de Acesso Aleatório
Cada posição de memória possui um endereço
único
O tempo de acesso a uma posição é constante,
sendo independente dos acessos anteriores
Exemplos: Memória principal e alguns sistemas
de memória cache
000 P1
001 P2
acesso 010 P3
endereços P4
011
... ...
P8 6
111
Método de Acesso Associativo
Tipo de acesso aleatório que compara
simultaneamente certo número de bits de uma
palavra com todas as palavras da memória,
determinando quais delas contêm o mesmo
padrão de bits
Uma palavra é buscada com base em parte de
seu conteúdo, e não de acordo com o seu
endereço
Exemplo: Memórias cache
7
Características fundamentais
Desempenho Características físicas
− Tempo de Acesso − Volátil/não-volátil
− Tempo de ciclo − Apagável/não-
− Taxa de transferência apagável
Tecnologia Organização
− Arranjo físico de
− Semicondutores células
− Magnética − Formas de
− Óptica Encapsulamento
− Detecção e correção
de erros
8
Tempo de Acesso (TA)
Em memórias de acesso aleatório:
− Tempo decorrido desde o instante em que um
endereço é apresentado à memória até o momento
em que os dados são armazenados ou se tornam
disponíveis para utilização
Em memórias de acesso não-aleatório:
− Tempo gasto para posicionar o mecanismo de
leitura-escrita na posição desejada
9
Tempo de Ciclo (TC)
Aplicável principalmente às memórias de
acesso aleatório
Compreende o tempo de acesso e o tempo
adicional requerido antes que um segundo
acesso possa ser iniciado
O tempo adicional é necessário para o
desaparecimento de transientes nas linhas de
sinal
10
Taxa de Transferência (R)
Taxa na qual os dados podem ser transferidos
de ou para a unidade de memória
− Para memórias de acesso aleatório:
R = 1/TC
− Para memórias de acesso não-aleatório:
R = N/(TN – TA), em que:
− TN é o tempo médio para ler ou escrever N bits
− TA é o tempo de acesso médio
11
Tecnologia de Semicondutores
Tipo de memória Categoria Mecanismo de Mecanismo de Volatilidade
apagamento escrita
Memória PROM
O processo de gravação (programação) é
efetuado eletricamente, e pode ser feito pelo
fornecedor ou pelo cliente após a fabricação da
pastilha
14
Memória EPROM
Pode ser apagada por um processo óptico
(exposição à radiação UV)
O processo de apagamento pode levar 20 min,
e deve ser feito integralmente em todas as
células de memória antes da gravação de
novos dados
A gravação e leitura de dados é feita
eletricamente
15
Memória EEPROM
Tanto a escrita como o apagamento são feitos
eletricamente
Não há necessidade de apagamento integral;
apenas o Byte ou os Bytes endereçados são
atualizados
A operação de escrita leva um tempo
consideravelmente maior que a de leitura; da
ordem de centenas de microsegundos por Byte
É mais cara e menos densa que a EPROM
Combina não-volatilidade e flexibilidade
16
Memória Flash
Apresenta características intermediárias entre a
EPROM e a EEPROM
− Como a EEPROM, o apagamento é elétrico
− Como a EEPROM, é possível apagar apenas
alguns blocos de memória
− Como a EPROM, ela não permite apagar o
conteúdo de apenas um Byte
17
Organização da Memória de semicondutor
Controle Controle
Dados
de
Seleção Entrada Seleção Estado
Célula Célula
P0
P1
P2
1M Palavras P3
P4
...
P220 - 1 19
Exemplos de Arranjos Físicos das Células
...
de linha
2048
... ... linhas
...
...
...
11
...
11
MUX 4
Decodificador de coluna
11 21
Exemplos de Arranjos Físicos das Células
Pino de
Alimentação Vcc 1 24 Vss Pino de Terra
Pinos de D0 2 23 D3 Pinos de
Dados D1 3 22 D2 Dados
Write Enable WE 4 21 CAS Column Address
Row Address RAS 5 Strobe
20 OE
Strobe NC 6 Output
19 A9
7 18 A8 Enable
Number of Chip A10
A0 8 17 A7 Pinos de
Pinos de A1 9 16 A6 endereço
endereço A2 10 15 A5
Pino de A3 11 14 A4
Alimentação Vcc 12 13 Vss Pino de Terra
22
Exemplos de Arranjos Físicos das Células
23
Organização em Módulos
Pastilha #01
512 colunas
256 K x 1 bit
...
...
DRAM de
... 512
linhas 256 KB
...
...
...
...
MAR ...
MBR
Decodificador
de Coluna 1
9 ... 2
...
...
512 colunas
...
9 ... ... 7
... 512
linhas 8
...
...
...
... ...
Decodificador
de Coluna
Pastilha #08 24
Organização em Módulos
A1 B1 C1 D1
1/512
1/512
1/512
1/512
MAR
CE 1/512 1/512 1/512 1/512
CE CE CE MBR
9 1
A2 B2 C2 D2 2
1/512
1/512
1/512
1/512
CE 1/512 1/512 1/512 1/512
CE CE CE
...
9
8
2 A8 B8 C8 D8
1/512
1/512
1/512
1/512
CE 1/512 CE 1/512 CE 1/512 CE 1/512
Grupo A
Habilitação Grupo B DRAM de 1 MB
de Grupo Grupo C
Grupo D 25
Formas de Encapsulamento
Módulos DIP (Dual Inline Package)
Usados em PCs
antigos (XTs, 286s e os
primeiros 386)
Soldados diretamente
na placa mãe ou
encaixados
individualmente em
soquetes disponíveis
na placa
Upgrade de memória
ou substituição de
módulos era difícil
26
Formas de Encapsulamento
Módulos SIMM (Single Inline Memory Module)
− 30 vias
8 MB
− 72 vias
8 MB
27
Formas de Encapsulamento
Módulos SIMM de 30 vias:
Observações:
− Os µPs 486 e 386DX acessavam a memória usando
palavras de 32 bits
− O µP 386SX acessava a memória usando palavras de 16
bits
28
Formas de Encapsulamento
Módulos SIMM de 72 vias:
Observações:
− Tanto o µP 486 quanto o Pentium trabalham internamente
com palavras de 32 bits
− No entanto, o µP Pentium acessa a memória usando
palavras de 64 bits
29
Formas de Encapsulamento
Módulos DIMM (Dual Inline Memory Module)
30
Formas de Encapsulamento
Comparação entre os tamanhos:
Módulo
DIMM
Módulo SIMM
de 72 vias
Módulo SIMM
de 30 vias
31
Detecção e Correção de Erros
Todo sistema de memória baseado em
semicondutor está sujeito a erros
Tipos:
− Falhas graves: células são inutilizadas
− Erros moderados: células não são inutilizadas
A maioria dos sistemas de memória principal
modernos inclui uma lógica de detecção e
correção de erros
32
Detecção e Correção de Erros
Um código de correção é caracterizado pelo
número de bits incorretos que ele é capaz de
detectar e corrigir em uma única palavra
O código de correção de erros mais simples é o
Código de Hamming
Esse código foi projetado por Richard Hamming
na Bell Labs
33
Detecção e Correção de Erros
Visualização do Código
de Hamming
Palavras de 4 bits
Diagramas de
Venn
34
Detecção e Correção de Erros
Sinal de erro
Saída de dados M
Correção
Resultados possíveis:
Nenhum erro é detectado (linha azul)
Um erro é detectado e é possível corrigi-lo (linha amarela)
M K'
f
Memória K Comparação
K + K' = Palavra
Síndrome
8 4 50,00
16 5 31,25
32 6 18,75
64 7 10,94
128 8 6,25
256 9 3,52 37
Projeto de um Código de Correção de
Erro Único (SEC)
Posição Posição Bits de Bits de
do bit10 do bit2 Teste Dados
12 1100 M8
11 1011 M7 Cálculo dos Bits de Teste:
10 1010 M6 C1 = M1 + M2 + M4 + M5 + M7
9 1001 M5 C2 = M1 + M3 + M4 + M6 + M7
8 1000 C8
C4 = M2 + M3 + M4 + M8
7 0111 M4
6 0110 M3 C8 = M5 + M6 + M7 + M8
5 0101 M2
4 0100 C4
3 0011 M1
2 0010 C2
1 0001 C1 38
Projeto de um Código de Correção de
Erro Único (SEC)
Exemplo:
M8 M7 M6 M5 M4 M3 M2 M1
0 0 1 1 1 0 0 1
C2 = M1 + M3 + M4 + M6 + M7 = 1 + 0 + 1 + 1 + 0 = 1
C4 = M2 + M3 + M4 + M8 = 0 + 0 + 1 + 0 = 1
C8 = M5 + M6 + M7 + M8 = 1 + 1 + 0 + 0 = 0
39
Projeto de um Código de Correção de
Erro Único (SEC)
Supondo-se um erro em M3,
M8 M7 M6 M5 M4 M3 M2 M1
0 0 1 1 1 1 0 1
C2 = M1 + M3 + M4 + M6 + M7 = 1 + 1 + 1 + 1 + 0 = 0
C4 = M2 + M3 + M4 + M8 = 0 + 1 + 1 + 0 = 0
C8 = M5 + M6 + M7 + M8 = 1 + 1 + 0 + 0 = 0
40
Projeto de um Código de Correção de
Erro Único (SEC)
Cálculo da Palavra Síndrome:
C8 C4 C2 C1
0 1 1 1
+
0 0 0 1
0 1 1 0 610
12 11 10 9 8 7 6 5 4 3 2 1
M8 M7 M6 M5 C8 M4 M3 M2 C4 M1 C2 C1
0 0 1 1 0 1 1 0 1 1 1 1
41
Memória Cache
Todos os sistemas de memória atuais
contemplam uma memória cache
Transferência Transferência
de Palavras de Blocos
...
C-1
Tamanho do Bloco
(K palavras)
n
M = 2 / K Blocos Bloco
C linhas 43
2n - 1
C <<< M
Memória Cache
Área de armazenamento
temporário de endereço
Endereço
Barramento do sistema
Controle Controle
Processador Memória
Cache
Dados
Área de armazenamento
temporário de dados 44
INÍCIO
Obtém o conteúdo
da palavra no endereço
RA e entrega para a CPU
FIM
45
Elementos de Projeto de Memórias
Cache
Tamanho Política de escrita
Função de − Write-through
mapeamento − Write-back
− Direto − Write-once
− Associativo Tamanho da linha
− Associativo por Número de Caches
conjuntos
− Um ou dois níveis
Algoritmo de
substitução − Unificada ou separada
− LRU
− FIFO
− LFU 46
− Aleatório
Tamanho da Cache
Impossível determinar tamanho ideal
− Deve ser grande para que o tempo médio de
acesso à memória total seja próximo ao tempo de
acesso da memória cache
− Deve ser pequena para que o custo total por bit
seja próximo do custo por bit da memória principal
Outros motivos para minimização da cache:
− Quanto maior a cache, maior o número de pinos –
e mais lento o endereçamento
− O espaço limitado na placa de circuitos
47
Função de Mapeamento
Necessidade
− O número de linhas da cache é menor do que o
número de blocos da memória principal
Técnicas utilizadas
− Mapeamento Direto
− Mapeamento Associativo
− Mapeamento Associativo por Conjuntos
48
Suposições
Memória principal com 16 MB (224 B)
Cada Byte é endereçável diretamente 1 Byte
Memória principal pode ser vista como
...
...
...
...
FFFFFC P(224 - 4)
FFFFFD P(224 - 3)
Bloco 222 - 1
FFFFFE P(224 - 2)
49
Memória cache Memória principal
Mapeamento Direto
Cada bloco da memória principal é mapeado
em uma única linha da cache
O mapeamento é expresso pela equação:
i = j módulo m,
Em que:
i : número da linha da memória cache
j : número do bloco da memória principal
m : número de linhas da memória cache
50
Mapeamento Direto
Segundo i = j módulo m, cada bloco da
memória principal é assim mapeado em uma
linha da memória cache:
0 0, m, 2m, ..., 2S - m
1 1, m + 1, 2m + 1, ..., 2S - m + 1
m-1 m – 1, 2m – 1, 3m – 1, ..., 2S -1
51
Mapeamento Direto
Cálculo dos blocos:
− Bloco 0 = 000000
− Bloco 1 = 000004 (000000 + 4 X 000001)
− Bloco 2 = 000008 (000000 + 4 x 000002)
− Bloco 3 = 00000C (000000 + 4 x 000003)
− ...
− Bloco N = 000000 + 4 x N
Bloco m = Bloco 214 = Bloco 004000 = 000000 + 4 x
004000 = 010000
Bloco 2S-m = Bloco (222-214) = Bloco (400000 - 004000)=
Bloco 3FC000 = 000000 + 4 x 3FC000 = FF0000
52
Mapeamento Direto
Bloco m+1 = Bloco (214+1) = Bloco (004000+1) = Bloco
004001 = 000000 + 4 x 004001 = 010004
Bloco 2S-m+1 = Bloco (222-214+1) = Bloco (400000-
004000+1) = Bloco 3FC001 = 000000 + 4 x 3FC001 =
FF0004
Bloco m-1 = Bloco (214-1) = Bloco (004000-1) = Bloco
003FFF = 000000 + 4 x 003FFF = 00FFFC
Bloco (2m-1) = Bloco (2 x 004000 – 1) = Bloco (008000-1)
= Bloco 007FFF = 000000 + 4 x 007FFF = 01FFFC
Bloco (2S-1) = Bloco (222-1) = Bloco (400000-1) = Bloco
3FFFFF = 000000 + 4 x 3FFFFF = FFFFFC
53
Mapeamento Direto
Substituindo os valores, teremos:
54
Mapeamento Direto
Interpretação do endereço da memória
principal:
Identificação de um dentre 2S blocos
s w
s-r r
No nosso caso:
22 2
8 14 55
Linha Exemplo de
+
palavra Dados Mapeamento Direto
0000 13579246
Rótulo 0004
00
FFF8
FFFC
Número
...
Rótulo Dados de linha
0000 77777777 00 13579246 0000
0004 11235813 16 11235813 0001
16 339C FEDCBA98 16 FEDCBA98 0CE7
FF 11223344 3FFE
FFFC 12345678 16 12345678 3FFF
...
8 32 bits
0000 bits
0004
FF
FFF8 11223344
FFFC 24682468
32 bits 56
Exemplo de Leitura no Mapeamento Direto
3'
1 3
...
2
4
3
Comparação
P4j
Acerto na cache P(4j+1)
P(4j+2)
Bj
3' P(4j+3)
4'
Falha na cache
57
Mapeamento Associativo
Vantagem:
− Oferece maior flexibilidade para escolha do bloco a
ser substituído quando um novo bloco é trazido
para a memória cache
Desvantagem:
− Complexidade do conjunto de circuitos necessários
para a comparação simultânea dos rótulos de todas
as linhas da memória cache
58
Mapeamento Direto
Vantagens:
− Simplicidade
− Custo baixo de implementação
Desvantagem:
− Se um programa fizer repetidas referências a
palavras em dois blocos distintos, mapeados em
uma mesma linha, esses blocos serão trocados
continuamente na cache – e a taxa de acertos será
baixa
59
Mapeamento Associativo
Permite que cada bloco da memória principal
seja carregado em qualquer linha da memória
cache
Interpretação do endereço da memória
principal: S
Identificação de um dentre 2 blocos
s w
Rótulo Palavra
No nosso caso:
22 2
Rótulo Palavra
60
Mapeamento Associativo
O rótulo corresponde aos 22 bits mais
significativos do endereço
Exemplos de cálculo de rótulos
− 000000 -> 000000
− 16339C -> 058CE7
− FFFFF4 -> 3FFFFD
− FFFFF8 -> 3FFFFE
− FFFFFC -> 3FFFFF
61
Exemplo de
Endereço Dados Mapeamento Associativo
000000 13579246
000004
FFF8
FFFC
...
Rótulo Dados Número
de linha
3FFFFE 13579246 0000
058CE7 FEDCBA98 0001
163398
16339C FEDCBA98 3FFFFD 33333333
1633A0 3FFD
000000 11223344 3FFE
3FFFFF 12345678 3FFF
...
22 bits 32 bits
FFFFF4 33333333
FFFFF8 11223344
FFFFFC 24682468
32 bits 62
Exemplo de Leitura no Mapeamento Associativo
2'
Rótulo Palavra P0
P1
B0
s w P2
P3
2
1
...
3
2
Comparação
P4j
Acerto na cache P(4j+1)
P(4j+2) Bj
3' P(4j+3)
2'
Falha na cache
63
Mapeamento Associativo por
Conjuntos (de k linhas)
Combina as vantagens do mapeamento direto
e do mapeamento associativo e diminui suas
desvantagens
A memória cache é dividida em v conjuntos,
cada qual com k linhas
m=vxk
i = j módulo v
Em que:
i : número do conjunto da memória cache
j : número do bloco da memória principal
64
m : número de linhas da memória cache
Mapeamento Associativo por
Conjuntos (de k linhas)
Interpretação do endereço da memória
principal: Identificação de um dentre 2S blocos
s w
s-d d
9 13
65
Mapeamento Associativo por
Conjuntos (de k linhas)
Segundo i = j módulo v, cada bloco da memória
principal é assim mapeado em um conjunto da
memória cache:
0 0, v, 2v, ..., 2S - v
1 1, v + 1, 2v + 1, ..., 2S - v + 1
v-1 v – 1, 2v – 1, 3v – 1, ..., 2S -1
66
Mapeamento Associativo por
Conjuntos (de k linhas)
Cálculo dos blocos:
− Bloco 0 = 000000
− Bloco 1 = 000004 (000000 + 4 X 000001)
− Bloco 2 = 000008 (000000 + 4 x 000002)
− Bloco 3 = 00000C (000000 + 4 x 000003)
− ...
− Bloco N = 000000 + 4 x N
Bloco v = Bloco 213 = Bloco 002000 = 000000 + 4 x 002000
= 008000
Bloco 2S-v = Bloco (222-213) = Bloco (400000 - 002000)=
Bloco 3FE000 = 000000 + 4 x 3FE000 = FF8000
67
Mapeamento Associativo por
Conjuntos (de k linhas)
Bloco v+1 = Bloco (213+1) = Bloco (002000+1) = Bloco
002001 = 000000 + 4 x 002001 = 008004
Bloco 2S-v+1 = Bloco (222-213+1) = Bloco (400000-
002000+1) = Bloco 3FE001 = 000000 + 4 x 3FE001 =
FF8004
Bloco v-1 = Bloco (213-1) = Bloco (002000-1) = Bloco
001FFF = 000000 + 4 x 001FFF = 007FFC
Bloco (2v-1) = Bloco (2 x 002000 – 1) = Bloco (004000-1)
= Bloco 003FFF = 000000 + 4 x 003FFF = 00FFFC
Bloco (2S-1) = Bloco (222-1) = Bloco (400000-1) = Bloco
3FFFFF = 000000 + 4 x 3FFFFF = FFFFFC
68
Mapeamento Associativo por
Conjuntos (de k linhas)
Substituindo os valores, teremos:
69
Conjunto
+
Exemplo de Mapeamento
palavra Dados Associativo por Conjuntos
0000 13579246
Rótulo 0004
000
7FF8
7FFC
Número Rótulo Dados
...
Rótulo Dados de conj.
0000 77777777 000 13579246 0000 001 77777777
0004 11235813 001 11235813 0001
02C 339C FEDCBA98 02C FEDCBA98 0CE7
1FF 11223344 1FFE
7FFC 12345678 001 12345678 1FFF 1FF 24682468
...
9 32 bits 9 32 bits
0000 bits bits
0004
1FF
FFF8 11223344
FFFC 24682468
32 bits 70
Exemplo de Leitura no Mapeamento
Associativo por Conjuntos (de k linhas)
3'
2
2 C0
...
C1
C2
4
3
Comparação
C(v-1) P4j
Acerto na cache P(4j+1)
P(4j+2) Bj
P(4j+3)
4'
3'
Falha na cache
71
Mapeamento Associativo por
Conjuntos (de k linhas)
Casos extremos:
− v = m e k = 1 : mapeamento direto
− v = 1 e k = m : mapeamento associativo
Configurações comuns:
− v = m/2 e k = 2 : taxa de acertos significantemente
maior do que no mapeamento direto
− v = m/4 e k = 4 : pequena melhoria a um custo
adicional relativamente pequeno
− K > 4 : sem melhoras significativas de desempenho
72
Algoritmos de Substituição
Quando um novo bloco é trazido para a cache,
um dos blocos existentes deve ser substituído
No mapeamento direto, não há alternativa –
cada bloco é mapeado em uma única linha
Para os mapeamentos associativo e
associativo por conjuntos, é necessário um
algoritmo de substituição
Recomenda-se a implementação em HW, por
motivo de desempenho
73
Algoritmos de Substituição
Algoritmos disponíveis:
− LRU (Menos Recentemente Usado)
Implementação com bits de uso
− FIFO (First In First Out)
Implementação com áreas de armazenamento circular
− LFU (Menos Frequentemente Usado)
Implementação com contadores
− Aleatório
Apresenta um desempenho apenas levemente inferior
aos demais
74
Políticas de Substituição
Antes que um bloco residente na memória
possa ser substituído, é necessário verificar se
ele foi alterado na memória cache
Se isso não ocorreu, então o novo bloco pode
ser escrito sobre o bloco antigo
Caso contrário, então a memória principal deve
ser atualizada
Problema encontrado:
− A memória principal pode ser utilizada tanto por
outros processadores quanto por dispositivos de
E/S
75
Políticas de Substituição
Escrita Direta (write through)
− Todas as operações de escrita são feitas tanto na
memória quanto na cache
− Vantagem:
A memória principal está sempre atualizada
− Desvantagem:
Geração de tráfego de memória considerável
76
Políticas de Substituição
Escrita de Volta (write back)
− Escritas são feitas apenas na cache
− Quando uma linha da cache é atualizada, um bit de
atualização associado a ela é setado em 1
− Quando um bloco vai ser substituído, ele apenas é
escrito de volta na memória principal se o seu bit de
atualização estiver setado em 1
− Vantagem:
Minimiza o número de operações de escrita na memória
− Desvantagem:
Partes da memória principal podem ficar inválidas
− Acesso à memória por módulos de E/S deve ser feita a partir da
cache
77
Políticas de Substituição
Escrita Uma Vez (write once)
− Ideal para sistemas multiprocessados com
memória principal compartilhada
− É uma mistura de write through e write back
− Cada µP escreve a memória principal sempre que
o bloco correspondente na cache foi atualizado
pela primeira vez (write through)
− Os demais µP são alertados da alteração
− Outras alterações naquele bloco são realizadas
apenas na cache local e o bloco da memória só
será atualizado quando o bloco for substituído na
cache (write back)
78
Tamanho da Linha
Tamanho da linha = tamanho do bloco
À medida em que esse número aumenta,
aumenta inicialmente a taxa de acertos
Entretanto, se esse número aumentar muito, a
taxa de acertos diminuirá
Porque não usar blocos muito grandes:
− Para uma dada capacidade, isso diminuirá o
número de linhas na cache
− Cada palava adicional estará mais distante da
usada – e a chance de uso será menor
Um tamanho de duas a oito palavras está
próximo do ótimo 79
Número de Memórias Cache
Anteriormente, a cache era externa ao µP
Com o avanço da eletrônica, tem-se:
− Cache L1: interna ao µP
− Cache L2: externa ao µP (SRAM)
Unificadas ou Separadas?
− Unificadas (instruções + dados)
− Separadas (uma para instruções e outra para os
dados)
− Projetos atuais baseiam-se em caches separadas,
por motivos de desempenho junto ao pipeline
80
Evolução das Memórias Baseadas
em Semicondutores
Memórias Regulares
Memórias FPM
Memórias EDO
Memórias SDRAM
Memórias DDR
Memórias DDR2
81
Memórias Regulares
Foram o primeiro tipo de memória usado em micros
PC
Acesso era feito enviando primeiro o endereço RAS e
em seguida o endereço CAS, da forma mais simples
possível
Eram fabricadas inicialmente com tempos de acesso
de 150 ns; depois foram fabricadas com tempos de
acesso de 120, 100 e 80 ns, para operação com o 286
Utilizadas em computadores XT, 286 e em alguns dos
primeiros 386
Eram encontradas apenas sob a forma de módulos
DIP
82
Memórias Regulares
83
Memórias FPM (Fast Page Mode)
Transferem dados em rajadas de 4 palavras em uma
mesma linha, ou página
Baseadas na idéia de que os dados são gravados
seqüencialmente na memória
Encontradas na forma de pentes SIMM de 30/72 vias
e com tempos de acesso de 80, 70 e 60 ns
Foram usadas em computadores 386, 486 e nos
primeiros Pentium
Tempos de acesso podem também ser dados em
termos de ciclos de clock da placa mãe
− por exemplo, 5-3-3-3 em um barramento operando
a 66 MHz
84
Memórias FPM (Fast Page Mode)
85
Memórias FPM (Fast Page Mode)
86
Memórias EDO
(Extended Data Output)
Criadas em 1994
Caracterizadas pela existência de um pipeline
interno à memória
− Uma nova leitura pode ser iniciada sem que a
leitura atual tenha terminado
São mais rápidas que as memórias FPM
− por exemplo, 5-2-2-2 em um barramento operando
a 66 MHz (ganho de 25 %)
Fabricadas com tempos de acesso de 70, 60 e
50 ns, encapsuladas em pentes SIMM de 72
vias
87
Memórias EDO
(Extended Data Output)
88
Memórias SDRAM
(Synchronous DRAM)
As memórias anteriores trabalham em seus
próprios ritmos, independentemente do clock
da placa mãe
− Uma FPM projetada para funcionar em placas para
µP 386 e 486 (25/33 MHz) funciona perfeitamente
em placas para µP Pentium (66 MHz)
Por isso, elas são tidas como memórias
assíncronas
Todas as ações em uma memória SDRAM
estão sincronizadas com a borda de subida do
sinal de clock da placa mãe
89
Memórias SDRAM
(Synchronous DRAM)
Estrutura:
SDRAM de 4M x 4 bits = 2 MB
CKE Buffer
Decodificador
CLK de
Decodificador
de Linha
Lógica Entrada
CS# Buffer
de Linha
de 2048x1024x4 DQ0
WE# Controle de Linha ...
2048x1024x4 DQ3
CAS# Registrador
RAS# de Modo Buffer
de
Saída
Lógica de
Controle Decodificador
de Banco Decodificador
de Coluna
de Coluna
Buffer
de
Coluna
90
Memórias SDRAM
(Synchronous DRAM)
Configuração através do Registrador de Modo
Pode-se definir:
− Tamanho das rajadas
− Tipo das rajadas
Seqüenciais
Intercaladas
− Latência do CAS
− Modo de operação
Normal
− Modo de escrita em rajadas
Habilitado
Desabilitado 91
Memórias SDRAM
(Synchronous DRAM)
BA A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
M11 M10 M9 M8 M7 M6 M5 M4 M3 M2 M1 M0
Reservado WB Código Latência BT Tamanho
de Op. do CAS da rajada
Tamanho da rajada
M2 M1 M0
M3 = 0 M3 = 1
0 Seqüencial 001 2 2
1 Intercalada 010 4 4
011 8 8
100 Reservado Reservado
101 Reservado Reservado
110 Reservado Reservado
92
111 Pág.completa Reservado
Memórias SDRAM
(Synchronous DRAM)
BA A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
M11 M10 M9 M8 M7 M6 M5 M4 M3 M2 M1 M0
Reservado WB Código Latência BT Tamanho
de Op. do CAS da rajada
CKE
• Comando ACTIVE
CS#
RAS#
CAS#
Endereço
A0-A10 da Linha
Endereço 95
BA do Banco
Memórias SDRAM
(Synchronous DRAM)
Outros comandos (cont.):
− PRECHARGE
Desativa uma linha aberta em um banco
− BURST TERMINATE
Trunca uma rajada em uma operação de leitura ou
escrita
− AUTO REFRESH
Regenera os dados
− SELF REFRESH
Regenera os dados na ausência do clock
− SDRAM provê seu próprio sinal de clock interno
− READ/WRITE
96
Leitura/escrita de dados
Memórias
CLK
SDRAM
(Synchronous CKE
DRAM)
CS#
• Comando READ
RAS#
CAS#
WE#
Endereço
A0-A9 da Coluna
Don’t care
Habilitar/des
A10 abilitar auto
precharge
Endereço
BA do Banco
97
Memórias SDRAM
(Synchronous DRAM)
CLK
DQ DADOS DADOS
DQ DADOS DADOS
DQ DADOS DADOS
CLK
READ/
COMANDOS ACTIVE NOP NOP WRITE NOP
tRCD
Don’t care
103
Parâmetros de Especificação
CLK
tRP
PRE
COMANDOS READ NOP CHARGE NOP READ
ENDEREÇOS BANCO a,
COL n
BANCO a,
COL m
DQ DADOS DADOS
106
Memórias DDR
(Double Data Rate)
Também chamadas de DDR SDRAM
− Transferência de dados se dá na borda de subida e na
borda de descida do clock
Os módulos DIMM DDR e SDRAM são muito
semelhantes, diferenciando-se em:
SDRAM
Módulo tem 168 terminais
Chanfro duplo
DDR
Módulo tem 184 terminais
Chanfro único
107
Memórias DDR
CLK
Don’t care
110
Memórias DDR2
Diferenças entre DDR2 e DDR (cont.):
− Arranjos dos chips nos módulos:
DDR: Arranjos TSOP (Thin Small-Output Package)
DDR2: Arranjos BGA (Ball Grid Array)
111
Memórias DDR2
Diferenças entre DDR2 e DDR (cont.):
− Latência do CAS:
Valores usuais:
− DDR: 2, 2.5 e 3
− DDR2: 3, 4 e 5
− Memórias DDR2 apresentam uma latência
adicional, denominada AL (Additional Latency)
− A latência total é obtida somando-se o AL ao valor
de CL
− Valor de AL é encontrado na documentação técnica
da memória
112
Parâmetros de Especificação
DDR(2)xxx/PC(2)yyyy
− xxx é o dobro da freqüência nominal de clock
suportada pelo chip de memória, em MHz
− yyyy é a taxa de transferência máxima alcançada
pelo módulo de memória, em MB/s
Exemplos:
− DDR400 → 200 MHz; PC3200 → 3200 MB/s
− DDR2-667 → 333 MHz; PC2-5400 → 5336 MB/s
Parâmetros gravados no módulo
113