Buscar

William_c5_1 en pt

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

CAPÍTULO
Eu NTERNO M EMORY
5,1 Semiconductor Main Memory
Organização
DRAM e SRAM
Tipos de ROM
Chip Logic
Embalagem de Chip
Organização do Módulo
Memória intercalada
Correção de erros
Organização DRAM avançada
DRAM síncrona
Rambus DRAM
DDR SDRAM
Cache DRAM
Leitura recomendada
Termos-chave, perguntas de revisão e problemas
5,2
5,3
5,4
5,5
159
160 CAPÍTULO 5 / MEMÓRIA INTERNA
eu GANHO O BJETIVOS
Depois de estudar este capítulo, você será capaz de:
Apresentar uma visão geral dos principais tipos de memória principal de semicondutor.
Compreenda a operação de um código básico que pode detectar e corrigir erros de bit único em palavras de 
8 bits.
Resuma as propriedades das organizações de DRAM avançadas contemporâneas.
Começamos este capítulo com uma pesquisa dos principais subsistemas de memória de semicondutores, incluindo 
memórias ROM, DRAM e SRAM. Em seguida, examinamos as técnicas de controle de erros usadas para aumentar a 
confiabilidade da memória. Em seguida, veremos arquiteturas DRAM mais avançadas.
5.1 MEMÓRIA PRINCIPAL DO SEMICONDUTOR
Em computadores anteriores, a forma mais comum de armazenamento de acesso aleatório para a memória principal 
do computador empregava uma série de loops ferromagnéticos em forma de donut denominados núcleos. Portanto, a 
memória principal era muitas vezes referida como testemunho, um termo que persiste até hoje. O advento e as 
vantagens da microeletrônica há muito eliminaram a memória do núcleo magnético. Hoje, o uso de chips 
semicondutores para a memória principal é quase universal. Os principais aspectos dessa tecnologia são explorados 
nesta seção.
Organização
O elemento básico de um memória semicondutora é a célula de memória. Embora uma variedade de tecnologias eletrônicas 
sejam usadas, todas as células de memória semicondutoras compartilham certas propriedades:
• Eles exibem dois estados estáveis (ou semestáveis), que podem ser usados para representar 1 e 0 binários.
• Eles podem ser gravados (pelo menos uma vez), para definir o estado.
• Eles são capazes de ser lidos para sentir o estado.
A Figura 5.1 mostra o funcionamento de uma célula de memória. Mais comumente, a célula tem três 
terminais funcionais capazes de transportar um sinal elétrico. O terminal de seleção, como o nome sugere, 
seleciona uma célula de memória para uma operação de leitura ou gravação. O terminal de controle indica 
leitura ou gravação. Para escrever, o outro terminal fornece um sinal elétrico que define o estado da célula 
para 1 ou 0. Para leitura, esse terminal é usado para a saída do estado da célula. Os detalhes da organização 
interna, funcionamento e tempo da célula de memória dependem da tecnologia de circuito integrado usada e 
estão além do escopo deste livro, exceto por um breve resumo. Para nossos propósitos, consideraremos que 
células individuais podem ser selecionadas para operações de leitura e escrita.
5.1 / MEMÓRIA PRINCIPAL DO SEMICONDUTOR 161
Ao controle Ao controle
Selecione Dados em Selecione Sentido
Célula Célula
(a) Escreva (b) Leia
Figura 5.1 Operação de célula de memória
DRAM e SRAM
Todos os tipos de memória que exploraremos neste capítulo são acesso aleatório. Ou seja, palavras individuais da memória 
são acessadas diretamente por meio da lógica de endereçamento com fio.
A Tabela 5.1 lista os principais tipos de memória de semicondutor. O mais comum é conhecido 
como memória de acesso aleatório ( RAM). Isso é, na verdade, um uso indevido do termo, porque todos 
os tipos listados na tabela são de acesso aleatório. Uma característica distintiva da memória 
designada como RAM é que é possível tanto ler dados da memória quanto gravar novos dados na 
memória de maneira fácil e rápida. Tanto a leitura quanto a escrita são realizadas por meio de sinais 
elétricos.
A outra característica distintiva da RAM é que ela é volátil. A RAM deve ser fornecida com uma fonte de 
alimentação constante. Se a energia for interrompida, os dados serão perdidos. Portanto, a RAM pode ser usada 
apenas como armazenamento temporário. As duas formas tradicionais de RAM usadas em computadores são 
DRAM e SRAM.
DINÂMICO RAM A tecnologia RAM é dividida em duas tecnologias: dinâmica e estática. UMA RAM dinâmica 
(DRAM) é feito com células que armazenam dados como carga em capacitores. A presença ou ausência de 
carga em um capacitor é interpretada como um binário 1 ou 0. Como os capacitores têm uma tendência natural 
para descarregar, dinâmica
Tabela 5.1 Tipos de memória de semicondutor
Escreva
MecanismoTipo de Memória
Memória de acesso aleatório
(RAM)
Memória somente leitura (ROM)
ROM programável (PROM)
Categoria
Ler escrever
memória
Somente leitura
memória
Borracha
Eletricamente,
nível de byte
Volatilidade
Eletricamente Volátil
Máscaras
Não é possivel
Luz UV,
nível de chip
Eletricamente,
nível de byte
Eletricamente,
nível de bloco
PROM apagável (EPROM)
PROM apagável eletricamente
(EEPROM)
Leitura principalmente
memória
Não volátil
Eletricamente
Memória flash
162 CAPÍTULO 5 / MEMÓRIA INTERNA
RAMs requerem atualização de carga periódica para manter o armazenamento de dados. O termo
dinâmico refere-se a esta tendência da carga armazenada vazar, mesmo com energia continuamente aplicada.
A Figura 5.2a é uma estrutura DRAM típica para uma célula individual que armazena 1 bit. A linha de endereço é 
ativada quando o valor do bit desta célula deve ser lido ou escrito. O transistor atua como uma chave que está fechada 
(permitindo que a corrente flua) se uma tensão for aplicada à linha de endereço e aberta (nenhuma corrente flui) se 
nenhuma tensão estiver presente na linha de endereço.
Para a operação de gravação, um sinal de tensão é aplicado à linha de bits; uma alta tensão representa 1 
e uma baixa tensão representa 0. Um sinal é então aplicado à linha de endereço, permitindo que uma carga seja 
transferida para o capacitor.
Para a operação de leitura, quando a linha de endereço é selecionada, o transistor liga e a carga 
armazenada no capacitor é enviada para uma linha de bits e para um amplificador de detecção. O amplificador de 
detecção compara a tensão do capacitor com um valor de referência e determina se a célula contém uma lógica 1 
ou uma lógica 0. A leitura da célula descarrega o capacitor, que deve ser restaurado para completar a operação.
Embora a célula DRAM seja usada para armazenar um único bit (0 ou 1), é essencialmente um dispositivo 
analógico. O capacitor pode armazenar qualquer valor de carga dentro de uma faixa; um valor limite determina se a 
cobrança é interpretada como 1 ou 0.
ESTÁTICO RAM Em contraste, um RAM estática (SRAM) é um dispositivo digital que usa os mesmos elementos lógicos usados 
 no processador. Em uma SRAM, os valores binários são armazenados usando as configurações tradicionais de porta lógica 
flip-flop (consulte o Capítulo 11 para uma descrição dos flip-flops). Uma RAM estática manterá seus dados enquanto a energia 
for fornecida a ela.
Voltagem de corrente contínua
Linha de endereço
T 3 T 4
C 1
T 5
C 2
T 6
Transistor
Armazenamento
capacitor
T 1 T 2
Linha de bits
B
Terra
Terra
Linha de bits
B
Linha de bits
B
Endereço
linha
(b) Célula de RAM estática (SRAM)(a) Célula de RAM dinâmica (DRAM)
Figura 5.2 Estruturas de células de memória típicas
5.1 / MEMÓRIA PRINCIPAL DO SEMICONDUTOR 163
A Figura 5.2b é uma estrutura SRAM típica para uma célula individual. Quatro transistores
(T 1, T 2, T 3, T 4) são interconectados em um arranjo que produz um estado lógico estável. No estado lógico 1, ponto C 1 
é alto e ponto C 2 é baixo; neste estado, T 1 e T 4 estão desligados e T 2 e T 3 estão no. 1 No estado lógico 0, ponto C 1 é 
baixo e ponto C 2 é alto; neste estado,
T 1 e T 4 estão ligados e T 2 e T 3 estão desligados. Ambos os estados são estáveis enquanto a tensão de corrente contínua (CC) for 
aplicada. Ao contrário da DRAM, nenhuma atualização é necessária para reter os dados.
Comona DRAM, a linha de endereço SRAM é usada para abrir ou fechar um switch.
A linha de endereço controla dois transistores (T 5 e T 6). Quando um sinal é aplicado a esta linha, os dois 
transistores são ligados, permitindo uma operação de leitura ou escrita. Para
uma operação de gravação, o valor do bit desejado é aplicado à linha B, enquanto seu complemento
é aplicado à linha B. Isso força os quatro transistores (T 1, T 2, T 3, T 4) no estado adequado. Para uma operação 
de leitura, o valor do bit é lido da linha B.
SRAM VERSUS DRAM Ambos os RAMs estáticos e dinâmicos são voláteis; ou seja, a alimentação deve ser 
continuamente fornecida à memória para preservar os valores dos bits. Uma célula de memória dinâmica é mais 
simples e menor do que uma célula de memória estática. Assim, uma DRAM é mais densa (células menores = mais 
células por unidade de área) e menos cara do que uma SRAM correspondente. Por outro lado, uma DRAM requer o 
circuito de atualização de suporte. Para memórias maiores, o custo fixo do circuito de atualização é mais do que 
compensado pelo menor custo variável das células DRAM. Assim, as DRAMs tendem a ser favorecidas para grandes 
requisitos de memória. Um último ponto é que as SRAMs são um pouco mais rápidas do que as DRAMs. Devido a 
essas características relativas, SRAM é usado para memória cache (dentro e fora do chip), e DRAM é usado para 
memória principal.
Tipos de ROM
Como o nome sugere, um memória somente leitura ( ROM) contém um padrão permanente de dados que não 
pode ser alterado. Uma ROM não é volátil; ou seja, nenhuma fonte de alimentação é necessária para manter os 
valores dos bits na memória. Embora seja possível ler uma ROM, não é possível gravar novos dados nela. Uma 
aplicação importante dos ROMs é a microprogramação, discutida na Parte Quatro. Outras aplicações potenciais 
incluem
• Sub-rotinas de biblioteca para funções frequentemente desejadas
• Programas de sistema
• Tabelas de funções
Para um requisito de tamanho modesto, a vantagem da ROM é que os dados ou programa estão permanentemente na memória 
principal e nunca precisam ser carregados de um dispositivo de armazenamento secundário.
O AROM é criado como qualquer outro chip de circuito integrado, com os dados realmente conectados ao chip 
como parte do processo de fabricação. Isso apresenta dois problemas:
• A etapa de inserção de dados inclui um custo fixo relativamente grande, sejam fabricadas uma ou 
milhares de cópias de uma ROM específica.
• Não há espaço para erros. Se um bit estiver errado, todo o lote de ROMs deve ser descartado.
1 Os círculos associados a T 3 e T 4 na Figura 5.2b indicam negação de sinal.
164 CAPÍTULO 5 / MEMÓRIA INTERNA
Quando apenas um pequeno número de ROMs com um determinado conteúdo de memória é necessário, 
uma alternativa menos cara é o ROM programável (PROM). Como a ROM, a PROM é não volátil e pode ser 
escrito apenas uma vez. Para o PROM, o processo de escrita é realizado eletricamente e pode ser realizado por 
um fornecedor ou cliente em um momento posterior à fabricação do chip original. Equipamento especial é 
necessário para o processo de escrita ou “programação”. PROMs fornecem flexibilidade e conveniência. O ROM 
permanece atraente para execuções de produção de alto volume.
Outra variação da memória somente leitura é o memória principalmente de leitura, que é útil para aplicativos em 
que as operações de leitura são muito mais frequentes do que as operações de gravação, mas para as quais o 
armazenamento não volátil é necessário. Existem três formas comuns de memória principalmente para leitura: EPROM, 
EEPROM e memória flash.
O opticamente memória somente leitura programável apagável (EPROM) é lido e escrito eletricamente, 
como no PROM. No entanto, antes de uma operação de gravação, todas as células de armazenamento devem ser 
apagadas para o mesmo estado inicial pela exposição do chip embalado à radiação ultravioleta. O apagamento é 
realizado lançando uma luz ultravioleta intensa através de uma janela projetada no chip de memória. Este processo 
de apagamento pode ser executado repetidamente; cada apagamento pode levar até 20 minutos para ser 
executado. Assim, a EPROM pode ser alterada várias vezes e, como a ROM e a PROM, mantém seus dados 
virtualmente indefinidamente. Para quantidades comparáveis de armazenamento, a EPROM é mais cara que a 
PROM, mas tem a vantagem da capacidade de atualização múltipla.
Uma forma mais atraente de memória principalmente para leitura é memória somente leitura programável 
apagável eletricamente (EEPROM). Esta é uma memória principalmente para leitura que pode ser gravada a 
qualquer momento sem apagar o conteúdo anterior; apenas o byte ou bytes endereçados são atualizados. A 
operação de gravação leva muito mais tempo do que a operação de leitura, na ordem de várias centenas de 
microssegundos por byte. A EEPROM combina a vantagem da não-volatilidade com a flexibilidade de ser atualizável 
no local, usando controle de barramento comum, endereço e linhas de dados. A EEPROM é mais cara que a EPROM 
e também é menos densa, suportando menos bits por chip.
Outra forma de memória semicondutora é memória flash ( assim denominado devido à velocidade com que 
pode ser reprogramado). Introduzida pela primeira vez em meados da década de 1980, a memória flash é intermediária 
entre a EPROM e a EEPROM, tanto em custo quanto em funcionalidade. Como a EEPROM, a memória flash usa uma 
tecnologia de apagamento elétrico. Uma memória flash inteira pode ser apagada em um ou alguns segundos, o que é 
muito mais rápido do que a EPROM. Além disso, é possível apagar apenas blocos de memória em vez de um chip 
inteiro. A memória flash tem esse nome porque o microchip é organizado de forma que uma seção das células da 
memória seja apagada em uma única ação ou “flash”. No entanto, a memória flash não permite o apagamento em nível 
de byte. Como a EPROM, a memória flash usa apenas um transistor por bit e, portanto, atinge a alta densidade (em 
comparação com a EEPROM) da EPROM.
Chip Logic
Como ocorre com outros produtos de circuito integrado, a memória semicondutora vem em chips embalados (Figura 
2.7). Cada chip contém uma série de células de memória.
Na hierarquia da memória como um todo, vimos que existem compensações entre velocidade, capacidade e 
custo. Esses trade-offs também existem quando consideramos a organização
5.1 / MEMÓRIA PRINCIPAL DO SEMICONDUTOR 165
de células de memória e lógica funcional em um chip. Para memórias semicondutoras, um dos principais problemas de 
design é o número de bits de dados que podem ser lidos / gravados por vez. Em um extremo, está uma organização na 
qual o arranjo físico das células na matriz é o mesmo que o arranjo lógico (conforme percebido pelo processador) das 
palavras na memória. A matriz é organizada em W palavras de B bits cada. Por exemplo, um chip de 16 Mbit pode ser 
organizado como palavras de 16 bits de 1 M. No outro extremo está a chamada organização de 1 bit por chip, na qual os 
dados são lidos / gravados 1 bit de cada vez. Ilustraremos a organização do chip de memória com uma DRAM; A 
organização ROM é semelhante, embora mais simples.
A Figura 5.3 mostra uma organização típica de uma DRAM de 16 Mbits. Nesse caso, 4 bits são lidos ou 
gravados por vez. Logicamente, a matriz de memória é organizada como quatro matrizes quadradas de 2.048 por 
2.048 elementos. Vários arranjos físicos são possíveis. Em qualquer caso, os elementos da matriz são conectados 
por linhas horizontais (linha) e verticais (coluna). Cada linha horizontal se conecta ao terminal Select de cada célula 
em sua linha; cada linha vertical se conecta ao terminal Data-In / Sense de cada célula em sua coluna.
As linhas de endereço fornecem o endereço da palavra a ser selecionada. Um total de log 2 W
linhas são necessárias. Em nosso exemplo, 11 linhas de endereço são necessárias para selecionar uma das 2048
filas. Essas 11 linhassão alimentadas em um decodificador de linha, que tem 11 linhas de entrada e 2048 linhas 
de saída. A lógica do decodificador ativa uma única das 2048 saídas
dependendo do padrão de bits nas 11 linhas de entrada (2 11 = 2048).
Outras 11 linhas de endereço selecionam uma das 2.048 colunas de 4 bits por coluna. Quatro linhas de 
dados são usadas para a entrada e saída de 4 bits de e para um buffer de dados. Na entrada (escrita), o driver de bit 
de cada linha de bit é ativado em 1 ou 0 de acordo com o valor da linha de dados correspondente. Na saída (leitura), 
o valor de cada linha de bits é passado por um amplificador de detecção e apresentado às linhas de dados. A linha 
da linha seleciona qual linha de células é usada para leitura ou escrita.
Como apenas 4 bits são lidos / gravados nesta DRAM, deve haver várias DRAMs conectadas ao 
controlador de memória para ler / gravar uma palavra de dados no barramento.
Observe que há apenas 11 linhas de endereço (A0-A10), metade do número que você esperaria para uma matriz 
2048 * 2048. Isso é feito para economizar no número de pinos. As 22 linhas de endereço necessárias são passadas pela 
lógica de seleção externa ao chip e multiplexadas nas 11 linhas de endereço. Primeiro, 11 sinais de endereço são 
passados para o chip para definir o endereço de linha da matriz e, em seguida, os outros 11 sinais de endereço são 
apresentados para o endereço da coluna. Esses sinais são acompanhados por sinais de seleção de endereço de linha 
(RAS) e seleção de endereço de coluna (CAS) para fornecer temporização ao chip.
Os pinos de habilitação de gravação (WE) e habilitação de saída (OE) determinam se uma operação de gravação 
ou leitura é executada. Dois outros pinos, não mostrados na Figura 5.3, são aterrados (Vss) e uma fonte de tensão (Vcc).
Como um aparte, o endereçamento multiplexado mais o uso de matrizes quadradas resultam em uma 
quadruplicação do tamanho da memória a cada nova geração de chips de memória. Mais um pino dedicado ao 
endereçamento dobra o número de linhas e colunas e, portanto, o tamanho da memória do chip aumenta 4 vezes.
A Figura 5.3 também indica a inclusão de circuitos de atualização. Todos os DRAMs requerem uma operação 
de atualização. Uma técnica simples de atualização é, com efeito, desativar o chip DRAM enquanto todas as células 
de dados são atualizadas. O contador de atualização percorre todos os valores de linha. Para cada linha, as linhas 
de saída do contador de atualização são fornecidas ao decodificador de linha e a linha RAS é ativada. Os dados são 
lidos e gravados de volta no mesmo local. Isso faz com que cada célula da linha seja atualizada.
166
•
•
•
F
ig
você
ré
5
. 3
UMA
1
0
AA
1 0
• • •
T
y
p
ica
eu
1
6
M
e
g
uma
b
isto
D
R
UMA
M
(4
M
b
você
ffer
de Anúncios
d
ressente
C
o
Lu
m
n
BA
ud
fd R
para
novo
r ss
co
você
n
ter
R
efresh
M
você
X
*
4
)
R
UMA
S
C
UMA
S
W
E
co d R
deo
ai credo
r
T
Eu estou
dentro
g
a
d
co
n
tro
eu
• • •
(2
0
4
8
2
0
4
8
4
)
M
em
o
ry
matriz
C
o
Lu
m
n
d
eco
d
er
R
O
E
efresh
circu
eu tento
D
b em
ua
ff o
eu
r tp
você
t
D
b ta
você
fa
fe em
rp
você
t
DDDD
4 3 2 1
5.1 / MEMÓRIA PRINCIPAL DO SEMICONDUTOR 167
Embalagem de Chip
Como foi mencionado no Capítulo 2, um circuito integrado é montado em um pacote que contém pinos para 
conexão com o mundo externo.
A Figura 5.4a mostra um exemplo de pacote EPROM, que é um chip de 8 Mbit organizado como 1M * 
8. Nesse caso, a organização é tratada como um pacote de uma palavra por chip. O pacote inclui 32 pinos, 
que é um dos tamanhos de pacote de chip padrão. Os pinos suportam as seguintes linhas de sinal:
• O endereço da palavra que está sendo acessada. Para 1Mwords, um total de 20 (2 20
pinos são necessários (A0 – A19).
• Os dados a serem lidos consistem em 8 linhas (D0 – D7).
• A fonte de alimentação para o chip (V cc).
• Um pino de aterramento (V ss).
• Um pino de habilitação de chip (CE). Como pode haver mais de um chip de memória, cada um deles 
conectado ao mesmo barramento de endereço, o pino CE é usado para indicar se o endereço é válido ou 
não para este chip. O pino CE é ativado pela lógica conectada aos bits de ordem superior do barramento de 
endereço (ou seja, bits de endereço acima de A19). O uso deste sinal é ilustrado atualmente.
• Tensão do programa (V pp) que é fornecido durante a programação (operações de gravação).
Uma configuração típica de pinos DRAM é mostrada na Figura 5.4b, para um chip de 16 Mbit organizado 
como 4M * 4. Existem várias diferenças em um chip ROM. Como a RAM pode ser atualizada, os pinos de dados são 
de entrada / saída. Os pinos de ativação de gravação (WE) e de ativação de saída (OE) indicam se esta é uma 
operação de gravação ou leitura.
= 1M)
A19
A16
A15
A12
A7
A6
A5
A4
A3
A2
A1
A0
D0
D1
D2
Vss
1
2
3
4
5
6
7
8
9 Mergulho de 32 pinos 24
10 23
11 22
12 21
13 20
14 19
15 18
32
31
30
29
28
27
26
25
Vcc
A18
A17
A14
A13
A8
A9
A11
Vpp
A10
CE
D7
D6
D5
D4
D3
Vcc
D0
D1
NÓS
RAS
NC
A10
A0
A1
A2
A3
Vcc
1
2
3
4
5
6 Imersão de 24 pinos 19
7 0,6 " 18
8 17
9 16
10 15
11 14
24
23
22
21
20
Vss
D3
D2
CAS
OE
A9
A8
A7
A6
A5
A4
Vss
0,6 "
12 Vista do topo 13
16 Vista do topo 17
(a) EPROM de 8 Mbit (b) DRAM de 16 Mbits
Figura 5.4 Pinos e sinais típicos do pacote de memória
168 CAPÍTULO 5 / MEMÓRIA INTERNA
Como a DRAM é acessada por linha e coluna, e o endereço é multiplexado, apenas 11 pinos de endereço são 
necessários para especificar as combinações de linha / coluna de 4 milhões
(2 11 = 4M). As funções de seleção de endereço de linha (RAS) e coluna
pinos de seleção de endereço (CAS) foram discutidos anteriormente. Finalmente, o pino sem conexão (NC) é 
fornecido para que haja um número par de pinos.
* 2 11 = 2 22
Organização do Módulo
Se um chip de RAM contém apenas 1 bit por palavra, é claro que precisaremos de pelo menos um número de chips 
igual ao número de bits por palavra. Como exemplo, a Figura 5.5 mostra como um módulo de memória consistindo de 
256K palavras de 8 bits pode ser organizado. Para palavras de 256K, um endereço de 18 bits é necessário e fornecido 
ao módulo de alguma fonte externa (por exemplo, as linhas de endereço de um barramento ao qual o módulo está 
conectado). O endereço é apresentado a 8256K * chips de 1 bit, cada um dos quais fornece a entrada / saída de 1 bit.
512 palavras por
512 bits
Chip # 1
Endereço de memória
registrar (MBR)
•
•
•
9
Decodificar 1 de
512 bit-sense
•
•
•
Buffer de memória
registrar (MBR)
1
2
3
4
5
6
7
8
9
•
•
•
512 palavras por
512 bits
Chip # 8
Decodificar 1 de
512 bit-sense
Figura 5.5 Organização de memória de 256 KByte
D
e
c
o
d
if
ic
a
r 
1
 d
e
5
1
2
D
e
c
o
d
if
ic
a
r 
1
 d
e
5
1
2
5.1 / MEMÓRIA PRINCIPAL DO SEMICONDUTOR 169
Memória
endereço
registro
(MAR)
A1 B1 C1 D1
Memória
amortecedor
registro
(MBR)
1
2
9
1/512 1/512
E E E E
Bit 1
9
A2
B2
Todos os chips 512 palavras por 512 
bits. Células 2 terminais
2
A7
1/512
7
8
B7 C7 D7
Grupo
UMA
B
C
D
E
Lasca
grupo
habilitar
Selecione 1
de 4
grupos
A8 B8 C8 D8
1/512 1/512
E E E E
Bit 8
Figura 5.6 Organização de Memória de 1 Mbyte
Essa organização funciona desde que o tamanho da memória seja igual ao número de bits por chip. No caso em 
que uma memória maior é necessária, uma série de chips é necessária. A Figura 5.6 mostra a possível organização de 
uma memória consistindo de 1M word por 8 bits por word. Nesse caso, temos quatro colunas de chips, cada coluna 
contendo 256K palavras organizadas como na Figura 5.5. Para palavras de 1 milhão, são necessárias 20 linhas de 
endereço. Os 18 bits menos significativos são roteados para todos os 32 módulos. Os 2 bits de alta ordem são inseridos 
em um módulo de lógica de seleção de grupo que envia um sinal de habilitaçãode chip para uma das quatro colunas de 
módulos.
Simulador de memória intercalada
Memória intercalada
A memória principal é composta por uma coleção de chips de memória DRAM. Vários chips podem ser agrupados para 
formar um banco de memória. É possível organizar os bancos de memória de uma forma conhecida como memória 
intercalada. Cada banco é capaz de atender independentemente uma solicitação de leitura ou gravação de memória, de 
modo que um sistema com
K bancos podem atender K solicitações simultaneamente, aumentando as taxas de leitura ou gravação de memória por 
um fator de K. Se palavras consecutivas de memória forem armazenadas em bancos diferentes, a transferência de um 
bloco de memória será acelerada. O Apêndice E explora o tópico da memória intercalada.
1
/
5
1
2
1
/
5
1
2
1
/
5
1
2
170 CAPÍTULO 5 / MEMÓRIA INTERNA
5.2 CORREÇÃO DE ERRO
Um sistema de memória semicondutor está sujeito a erros. Eles podem ser categorizados como falhas graves e erros 
leves. UMA falha difícil é um defeito físico permanente, de modo que a célula ou células de memória afetadas não 
podem armazenar dados de forma confiável, mas ficam presas em 0 ou 1 ou alternam erraticamente entre 0 e 1. Erros 
graves podem ser causados por agressões ambientais, defeitos de fabricação e desgaste. UMA erro suave é um 
evento aleatório e não destrutivo que altera o conteúdo de uma ou mais células de memória sem danificar a memória. 
Erros de software podem ser causados por problemas de alimentação ou partículas alfa. Essas partículas resultam do 
decaimento radioativo e são terrivelmente comuns porque os núcleos radioativos são encontrados em pequenas 
quantidades em quase todos os materiais. Ambos os erros de hardware e software são claramente indesejáveis e a 
maioria dos sistemas de memória principal modernos incluem lógica para detectar e corrigir erros.
A Figura 5.7 ilustra em termos gerais como o processo é realizado. Quando os dados devem ser gravados na 
memória, um cálculo, descrito como uma função f, é executado nos dados para produzir um código. Tanto o código 
quanto os dados são armazenados. Assim, se um M- palavra de bits de dados deve ser armazenada e o código tem 
comprimento K bits, então o tamanho real da palavra armazenada é M + K bits.
Quando a palavra armazenada anteriormente é lida, o código é usado para detectar e possivelmente corrigir erros. 
Um novo conjunto de K bits de código são gerados a partir do M bits de dados e comparados com os bits de código buscados. 
A comparação produz um de três resultados:
• Nenhum erro é detectado. Os bits de dados buscados são enviados.
• Um erro é detectado e é possível corrigir o erro. Os bits de dados mais
correção de erros bits são alimentados em um corretor, que produz um conjunto corrigido de
M bits a serem enviados.
• Foi detectado um erro, mas não é possível corrigi-lo. Esta condição é relatada.
Os códigos que operam desta forma são referidos como códigos de correção de erros. Um código é caracterizado 
pelo número de erros de bits em uma palavra que ele pode corrigir e detectar.
Sinal de erro
Dados para fora M
Corretor
Dados em M M K
f
K Memória K Comparar
f
Figura 5.7 Função de código de correção de erros
5.2 / CORREÇÃO DE ERRO 171
(uma) UMA B (b)
1
1
1
0
1 1
1 0 1 0
0
C
(c) (d)
1
1
0 1
1
0
1 1
0 0 0 0
0 0
Figura 5.8 Código de correção de erros de Hamming
O mais simples dos códigos de correção de erros é o Código de Hamming desenvolvido por Richard 
Hamming no Bell Laboratories. A Figura 5.8 usa diagramas de Venn para ilustrar o uso deste código em palavras de 
4 bits ( M = 4). Com três círculos que se cruzam, existem sete compartimentos. Atribuímos os 4 bits de dados aos 
compartimentos internos (Figura 5.8a). Os compartimentos restantes são preenchidos com os chamados bits de 
paridade. Cada bit de paridade é escolhido de forma que o número total de 1s em seu círculo seja par (Figura 5.8b). 
Assim, como o círculo A inclui três dados 1s, o bit de paridade nesse círculo é definido como 1. Agora, se um erro 
alterar um dos bits de dados (Figura 5.8c), ele será facilmente encontrado. Ao verificar os bits de paridade, as 
discrepâncias são encontradas no círculo A e no círculo C, mas não no círculo B. Apenas um dos sete 
compartimentos está em A e C, mas não em B. O erro pode, portanto, ser corrigido mudando esse bit.
Para esclarecer os conceitos envolvidos, desenvolveremos um código que pode detectar e corrigir erros de bit único 
em palavras de 8 bits.
Para começar, vamos determinar quanto tempo o código deve ter. Referindo-se à Figura 5.7, a lógica de 
comparação recebe como entrada dois K- valores de bits. Uma comparação bit a bit é feita tomando o OR exclusivo 
das duas entradas. O resultado é chamado de palavra síndrome. Assim, cada bit do síndrome é 0 ou 1 de acordo 
com se há ou não correspondência nessa posição de bit para as duas entradas.
A palavra síndrome é, portanto, K bits de largura e tem um intervalo entre 0 e
- 1. O valor 0 indica que nenhum erro foi detectado, restando 2 K - 1 valor para2 K
indique, se houver um erro, qual bit estava com erro. Agora, porque um erro pode ocorrer em qualquer um dos M bits 
de dados ou K verifique os bits, devemos ter
2 K - 1 VOCÊ M + K
172 CAPÍTULO 5 / MEMÓRIA INTERNA
Tabela 5.2 Aumento no comprimento da palavra com correção de erro
Correção de erro único /
Detecção de duplo erroCorreção de Erro Único
Bits de dados
8
16
32
64
128
256
Verificar bits
4
5
6
7
8
9
% Aumentar
50
31,25
18,75
10,94
6,25
3,52
Verificar bits
5
6
7
8
9
10
% Aumentar
62,5
37,5
21.875
12,5
7,03
3,91
Esta desigualdade dá o número de bits necessários para corrigir um único erro de bit em uma palavra contendo M bits de dados. 
Por exemplo, para uma palavra de 8 bits de dados ( M = 8), nós temos
• K = 3: 2 3
• K = 4: 2 4
Assim, oito bits de dados requerem quatro bits de verificação. As primeiras três colunas da Tabela 5.2 relacionam o número de bits de 
verificação necessários para vários comprimentos de palavra de dados.
Por conveniência, gostaríamos de gerar uma síndrome de 4 bits para uma palavra de dados de 8 bits com as 
seguintes características:
• Se a síndrome contém todos os 0s, nenhum erro foi detectado.
• Se a síndrome contém um e apenas um bit definido como 1, então ocorreu um erro em um dos 4 bits de 
verificação. Nenhuma correção é necessária.
• Se a síndrome contiver mais de um bit definido como 1, o valor numérico da síndrome indica a 
posição do bit de dados com erro. Este bit de dados é invertido para correção.
Para atingir essas características, os dados e bits de verificação são organizados em uma palavra de 12 bits, 
conforme ilustrado na Figura 5.9. As posições de bit são numeradas de 1 a 12. As posições de bit cujos números de 
posição são potências de 2 são designadas como bits de verificação. Os bits de verificação são calculados da seguinte 
forma, onde o símbolo {designa a operação OU exclusiva:
C1 = D1 {D2 {
C2 = D1 {
C4 =
C8 =
- 1 6 8 + 3
- 1 7 8 + 4
D4 {D5 {
D3 {D4 {
D2 {D3 {D4 {
D7
D6 {D7
D8
D5 {D6 {D7 {D8
Mordeu
posição
Posição
número
Bit de dados
Verificar bit
12 11 10 9 8 7 6 5 4 3 2 1
1100
D8
1011
D7
1010
D6
1001
D5
1000 0111
D4
0110
D3
0101
D2
0100 0011
D1
0010 0001
C8 C4 C2 C1
Figura 5.9 Layout de bits de dados e bits de verificação
5.2 / CORREÇÃO DE ERRO 173
Cada bit de verificação opera em cada bit de dados cujo número de posição contém 1 na mesma posição do bit 
que o número de posição desse bit de verificação. Assim, as posições de bit de dados 3, 5, 7, 9 e 11 (D1, D2, D4, D5, 
D7) contêm um 1 no bit menos significativo de seu número de posição, assim como C1; as posições de bit 3, 6, 7, 10 e 
11 contêm um 1 na segunda posição de bit, assim como C2; e assim por diante. Visto de outra forma, posição da broca n
é verificado por aqueles bits C Eu de tal modo que g i = n. Por exemplo, a posição 7 é verificadapor bits nas posições 
4, 2 e 1; e 7 = 4 + 2 + 1.
Vamos verificar se esse esquema funciona com um exemplo. Suponha que a palavra de entrada de 8 bits seja 
00111001, com o bit de dados D1 na posição mais à direita. Os cálculos são os seguintes:
C1 = 1 {0 {1 {1 {0 = 1 C2 = 1 {0 {1 
{1 {0 = 1 C4 = 0 {0 {1 {0 = 1 C8 = 1 
{1 {0 {0 = 0
Suponha agora que o bit de dados 3 sustenta um erro e é alterado de 0 para 1. Quando os bits de verificação são 
recalculados, temos
C1 = 1 {0 {1 {1 {0 = 1 C2 = 1 {1 {1 
{1 {0 = 0 C4 = 0 {1 {1 {0 = 0 C8 = 1 
{1 {0 {0 = 0
Quando os novos bits de verificação são comparados com os bits de verificação antigos, a palavra da síndrome é formada:
C8 C4 C2 C1
0 1 1 1
0 0 1
1 1 0
{ 0
0
O resultado é 0110, indicando que a posição do bit 6, que contém o bit de dados 3, está com erro.
A Figura 5.10 ilustra o cálculo anterior. Os bits de dados e verificação são posicionados corretamente 
na palavra de 12 bits. Quatro dos bits de dados têm um valor 1 (sombreado na tabela), e seus valores de 
posição de bit são XORed para produzir o código de Hamming 0111, que forma os quatro dígitos de 
verificação. Todo o bloco armazenado é
Mordeu
posição
Posição
número
Bit de dados
Verificar bit
Palavra
armazenado como
Palavra
buscado como
Posição
número
Verificar bit
12 11 10 9 8 7 6 5 4 3 2 1
1100
D8
1011
D7
1010
D6
1001
D5
1000 0111
D4
0110
D3
0101
D2
0100 0011
D1
0010 0001
C8
0
C4
1
C2
1
C1
10 0 1 1 1 0 0 1
0
1100
0
1011
1
1010
1
1001
0
1000
0
1
0111
1
0110
0
0101
1
0100
0
1
0011
1
0010
0
1
0001
1
Figura 5.10 Verificar cálculo de bits
174 CAPÍTULO 5 / MEMÓRIA INTERNA
(uma) (b) (c)
0
1
0
1
0
0
0 1 1 1
1
0
1 0 1 0
0 0
1 1
(d) (e) (f)
0 0 0
1 1 1 1 1 1
0 0 0
1 0 1 1 1 1
0 0 0
1 1 1
Figura 5.11 Código de Hamming SEC-DEC
001101001111. Suponha agora que o bit de dados 3, na posição de bit 6, sustenta um erro e é alterado de 0 para 1. 
O bloco resultante é 001101101111, com um código de Hamming de
0111. Um XOR do código de Hamming e todos os valores de posição de bit para bits de dados diferentes de zero resulta 
em 0110. O resultado diferente de zero detecta um erro e indica que o erro está na posição de bit 6.
O código que acabamos de descrever é conhecido como um código de correção de erro único (SEC).
Mais comumente, a memória semicondutora é equipada com um código de correção de erro único e detecção de erro 
duplo (SEC-DED). Como mostra a Tabela 5.2, esses códigos requerem um bit adicional em comparação com os códigos 
SEC.
A Figura 5.11 ilustra como esse código funciona, novamente com uma palavra de dados de 4 bits. A 
sequência mostra que, se dois erros ocorrerem (Figura 5.11c), o procedimento de verificação se extraviará (d) e 
piorará o problema, criando um terceiro erro (e). Para superar o problema, um oitavo bit é adicionado, definido de 
forma que o número total de 1s no diagrama seja par. O bit de paridade extra captura o erro (f).
Um código de correção de erros aumenta a confiabilidade da memória ao custo de complexidade adicional. Com uma 
organização de 1 bit por chip, um código SEC-DED é geralmente considerado adequado. Por exemplo, as implementações 
IBM 30xx usaram um código SECDED de 8 bits para cada 64 bits de dados na memória principal. Assim, o tamanho da 
memória principal é na verdade cerca de 12% maior do que o aparente para o usuário. Os computadores VAX usaram um 
SEC-DED de 7 bits para cada 32 bits de memória, para um overhead de 22%. Uma série de DRAMs contemporâneos usam 9 
bits de verificação para cada 128 bits de dados, para uma sobrecarga de 7% [SHAR97].
5.3 ORGANIZAÇÃO DE DRAM AVANÇADA
Conforme discutido no Capítulo 2, um dos gargalos mais críticos do sistema ao usar processadores de alto 
desempenho é a interface para a memória interna principal. Essa interface é o caminho mais importante em todo 
o sistema de computador. O bloco de construção básico da memória principal continua sendo o chip DRAM, 
como tem feito há décadas; até
5.3 / ORGANIZAÇÃO DE DRAM AVANÇADA 175
Tabela 5.3 Comparação de desempenho de algumas alternativas DRAMA
Freqüência do Relógio
(MHz)
166
200
600
Taxa de transferência
(GB / s)
1,3
3,2
4,8
Tempo de acesso (ns)
18
12,5
12
Contagem de alfinetes
168
184
162
SDRAM
DDR
RDRAM
recentemente, não houve mudanças significativas na arquitetura DRAM desde o início dos anos 1970. O chip 
DRAM tradicional é limitado tanto por sua arquitetura interna quanto por sua interface com o barramento de 
memória do processador.
Vimos que um ataque ao problema de desempenho da memória principal DRAM foi inserir um 
ou mais níveis de cache SRAM de alta velocidade entre a memória principal DRAM e o processador. 
Mas SRAM é muito mais caro do que DRAM, e expandir o tamanho do cache além de um certo ponto 
produz retornos decrescentes.
Nos últimos anos, várias melhorias na arquitetura DRAM básica foram exploradas e algumas 
delas já estão no mercado. Os esquemas que atualmente dominam o mercado são SDRAM, 
DDR-DRAM e RDRAM. A Tabela 5.3 fornece uma comparação de desempenho. CDRAM também 
recebeu atenção considerável. Examinamos cada uma dessas abordagens nesta seção.
DRAM síncrona
Uma das formas mais utilizadas de DRAM é a DRAM síncrona (SDRAM) [ VOGL94]. Ao contrário da 
DRAM tradicional, que é assíncrona, a SDRAM troca dados com o processador sincronizado com um 
sinal de relógio externo e funcionando na velocidade total do barramento processador / memória sem 
impor estados de espera.
Em uma DRAM típica, o processador apresenta endereços e níveis de controle para a memória, 
indicando que um conjunto de dados em um local específico na memória deve ser lido ou gravado na 
DRAM. Após um atraso, o tempo de acesso, a DRAM grava ou lê os dados. Durante o atraso de tempo 
de acesso, a DRAM executa várias funções internas, como ativar a alta capacitância das linhas de linha 
e coluna, detectar os dados e encaminhar os dados para fora dos buffers de saída. O processador 
deve simplesmente aguardar esse atraso, reduzindo o desempenho do sistema.
Com o acesso síncrono, o DRAM move os dados para dentro e para fora sob o controle do relógio do sistema. O 
processador ou outro mestre emite a instrução e as informações de endereço, que são travadas pela DRAM. A DRAM 
então responde após um determinado número de ciclos de clock. Enquanto isso, o mestre pode realizar outras tarefas 
com segurança enquanto a SDRAM está processando a solicitação.
A Figura 5.12 mostra a lógica interna do SDRAM de 64 Mb da IBM [IBM01], que é típico da organização 
SDRAM, e a Tabela 5.4 define as várias atribuições de pinos. O SDRAM emprega um modo burst para eliminar 
o tempo de configuração de endereço e o tempo de pré-carga de linha e coluna após o primeiro acesso. No 
modo burst, uma série de
176
F
ig
você
ré
5
. 1
2
C
eu
K
C
K
E
AAAA
1 1 1 1 AAAAAAAAAA 0 3 2 1 9 8 7 6 5 4 3 2 1 0
C
eu
K
b
você
ffer
C
K
E
b
você
ffer
S
y
n
CH
ro
n
o
você
s
D
y
n
uma
m
ic
R
UMA
M
(S
D
R
UMA
M
)
WCRAAC
ESSS
S
en
se
uma
m
p
S
en
se
uma
m
p
C
o
Lu
m
n
d
eco
d
er
m
(e2 m C
DM
R 
oe
rlbylUMA uma
M brar
8 na
) ky
2
C
o
Lu
m
n
d
eco
d
er
m
(e2 m C
D Mo e
R
A b yr ll uma
M brar
8 na
) ky
0
lifiers lifiers
S
en
se
uma
m
p
C
o
Lu
m
n
d
eco
d
er
S
en
se
uma
m
p
m
(e2 m C
DM
R 
oe
rlbylUMA uma
M brar
8 na
) ky
3
m
(e2 m C
D Mo e
R
A b yr ll uma
M brar
8 na
) ky
1
C
o
Lu
m
n
d
eco
d
er
lifiers lifiers
D
Q
M
RM
CR
C
UMA
C
R M c
oo
du
en
t
ré
er
g
ister
C
o
Lu
m
n
de Anúncios
d
ressente
efresh
co
você
n
ter
DDDDDDDD
QQQQQQQQ
7 6 5 4 3 2 1 0
R o W d ec
o
d er
R o W d ec
o
d er
C
e
o
c
m
e
a
rnd o d
m
d
C UM
A
C
R C
M R
D um
a
ta I 
/ 
O
b vo
c
ê
D um
a
ta c
o n tro eu
c
ir
c
u
e
u
 t
e
n
to
g en
 s
e
io
rg
n
fo
rm
ig
a
a
lc
a
tr
ã
o
o
lo
r 
e
uC
ff
e
rs
U
M
A
d d re
s
s
e
n
te
b vo
c
ê
ff
e
rs(1 4 )
R o W d ec
o
d er
R o W d ec
o
d er
5.3 / ORGANIZAÇÃO DE DRAM AVANÇADA 177
Tabela 5.4 Atribuições de PIN SDRAM
A0 a A13
CLK
CKE
CS
RAS
CAS
NÓS
DQ0 a DQ7
DQM
Entradas de endereço
Entrada de relógio
Habilitar relógio
Chip select
Estroboscópio de endereço de linha
Strobe de endereço de coluna
Habilitar gravação
Entrada / saída de dados
Máscara de dados
bits de dados podem ser sincronizados rapidamente após o primeiro bit ter sido acessado. Este modo é útil 
quando todos os bits a serem acessados estão em sequência e na mesma linha do array que o acesso inicial. 
Além disso, a SDRAM tem uma arquitetura interna de vários bancos que melhora as oportunidades de 
paralelismo no chip.
O registro de modo e a lógica de controle associada é outro recurso importante que diferencia SDRAMs de 
DRAMs convencionais. Ele fornece um mecanismo para personalizar o SDRAM para atender às necessidades 
específicas do sistema. O registrador de modo especifica o comprimento do burst, que é o número de unidades 
separadas de dados alimentados de forma síncrona no barramento. O registro também permite que o programador ajuste 
a latência entre o recebimento de uma solicitação de leitura e o início da transferência de dados.
O SDRAM tem melhor desempenho quando está transferindo grandes blocos de dados em série, como 
para aplicativos como processamento de texto, planilhas e multimídia.
A Figura 5.13 mostra um exemplo de operação SDRAM. Nesse caso, o comprimento da rajada é 4 e a 
latência é 2. O comando de leitura da rajada é iniciado tendo CS e CAS baixo enquanto mantém RAS e WE 
alto na borda ascendente do clock. As entradas de endereço determinam o endereço da coluna inicial para o 
burst, e o registrador de modo define o tipo de burst (sequencial ou intercalado) e o comprimento do burst (1, 
2,
4, 8, página inteira). O atraso do início do comando até o momento em que os dados da primeira célula 
aparecem nas saídas é igual ao valor da latência CAS que é configurada no registrador de modo.
T0 T1 T2 T3 T4 T5 T6 T7 T8
CLK
COMMAND READA NOP NOP NOP NOP NOP NOP NOP NOP
DQs DOUTA 0 DOUTA 1 DOUTA 2 DOUTA 3
Figura 5.13 SDRAMRead Timing (comprimento de burst = 4, latência CAS = 2)
178 CAPÍTULO 5 / MEMÓRIA INTERNA
Agora existe uma versão aprimorada de SDRAM, conhecida como SDRAM de taxa de dados dupla 
(DDR-SDRAM), que supera a limitação de uma vez por ciclo. DDRSDRAM pode enviar dados ao processador 
duas vezes por ciclo de clock.
Rambus DRAM
O RDRAM, desenvolvido pela Rambus [FARM92, CRIS97], foi adotado pela Intel para seus processadores 
Pentium e Itanium. Tornou-se o principal concorrente da SDRAM. Os chips RDRAM são pacotes verticais, 
com todos os pinos de um lado. O chip troca dados com o processador em 28 fios com não mais de 12 
centímetros de comprimento. O barramento pode endereçar até 320 chips RDRAM e é avaliado em 1,6 GBps.
O barramento RDRAM especial fornece informações de endereço e controle usando um protocolo 
orientado a bloco assíncrono. Após um tempo de acesso inicial de 480 ns, isso produz a taxa de dados de 1,6 
GBps. O que torna essa velocidade possível é o próprio barramento, que define impedâncias, temporização e 
sinais com muita precisão. Em vez de ser controlado pelos sinais explícitos RAS, CAS, R / W e CE usados em 
DRAMs convencionais, um RDRAM obtém uma solicitação de memória pelo barramento de alta velocidade. 
Essa solicitação contém o endereço desejado, o tipo de operação e o número de bytes na operação.
A Figura 5.14 ilustra o layout RDRAM. A configuração consiste em um controlador e vários módulos 
RDRAM conectados por meio de um barramento comum. O controlador está em uma extremidade da configuração 
e a extremidade oposta do barramento é uma terminação paralela das linhas de barramento. O barramento inclui 
18 linhas de dados (16 dados reais, duas paridades) girando em duas vezes a taxa de clock; ou seja, 1 bit é 
enviado na borda anterior e posterior de cada sinal de clock. Isso resulta em uma taxa de sinal em cada linha de 
dados de 800 Mbps. Há um conjunto separado de 8 linhas (RC) usado para sinais de endereço e controle. Há 
também um sinal de clock que começa na extremidade do controlador, se propaga para a extremidade do 
controlador e, em seguida, retorna ao loop. Um módulo RDRAM envia dados para o controlador de forma síncrona 
com o relógio para o mestre, e o controlador envia dados para um RDRAM em sincronia com o sinal do relógio na 
direção oposta. As linhas de barramento restantes incluem uma tensão de referência, aterramento e fonte de 
alimentação.
Controlador
RDRAM 1 RDRAM 2 • • • RDRAM n
Vterm
INITo
• • •
INICIAR
Dados de ônibus [18: 0]
RC [7: 0]
RClk [2]
TClk [2]
Vref
Gnd (32/18)
Vd (4)
Figura 5.14 Estrutura RDRAM
5.3 / ORGANIZAÇÃO DE DRAM AVANÇADA 179
DDR SDRAM
A SDRAM é limitada pelo fato de que só pode enviar dados ao processador uma vez por ciclo de clock do barramento. Uma 
nova versão de SDRAM, conhecida como SDRAM de taxa de dados dupla, pode enviar dados duas vezes por ciclo de 
clock, uma na borda ascendente do pulso de clock e outra na borda descendente.
O DDR DRAM foi desenvolvido pela JEDEC Solid State Technology Association, o órgão de 
padronização de engenharia de semicondutores da Electronic Industries Alliance. Inúmeras empresas 
fabricam chips DDR, amplamente usados em computadores desktop e servidores.
A Figura 5.15 mostra o tempo básico para uma leitura DDR. A transferência de dados é sincronizada com a 
borda ascendente e descendente do relógio. Ele também é sincronizado com um sinal de strobe bidirecional de 
dados (DQS) que é fornecido pelo controlador de memória durante uma leitura e pela DRAM durante uma gravação. 
Em implementações típicas, o
Relógio
RAS
CAS
Linha
endereço
Coluna
endereço
Endereço
DQ Valid Valid Valid Valid data 
data data data
DQS
RAS = Seleção de endereço de linha CAS = 
Seleção de endereço de coluna DQ = Dados 
(entrada ou saída)
DQS = DQ select
Figura 5.15 DDR SDRAMRoad Timing
180 CAPÍTULO 5 / MEMÓRIA INTERNA
DQS é ignorado durante a leitura. Uma explicação do uso de DQS em gravações está além do nosso escopo; veja 
[JACO08] para detalhes.
Houve duas gerações de melhorias na tecnologia DDR. O DDR2 aumenta a taxa de transferência 
de dados aumentando a frequência operacional do chip RAM e aumentando o buffer de pré-busca de 2 
bits para 4 bits por chip. O buffer de pré-busca é um cache de memória localizado no chip de RAM. O 
buffer permite que o chip RAM preposicione bits a serem colocados no barramento de dados o mais 
rápido possível. O DDR3, lançado em 2007, aumenta o tamanho do buffer de pré-busca para 8 bits.
Teoricamente, um módulo DDR pode transferir dados a uma taxa de clock na faixa de 200 a 600 MHz; um 
módulo DDR2 é transferido a uma taxa de clock de 400 a 1066 MHz; e um módulo DDR3 transfere a uma taxa de 
clock de 800 a 1600 MHz. Na prática, taxas um pouco menores são alcançadas.
O Apêndice K fornece mais detalhes sobre a tecnologia DDR.
Cache DRAM
Cache DRAM (CDRAM), desenvolvido pela Mitsubishi [HIDA90, ZHAN01], integra um pequeno cache 
SRAM (16 Kb) em um chip DRAM genérico.
A SRAM no CDRAM pode ser usada de duas maneiras. Primeiro, ele pode ser usado como um cache 
verdadeiro, consistindo em várias linhas de 64 bits. O modo cache do CDRAM é eficaz para acesso aleatório 
comum à memória.
A SRAM no CDRAM também pode ser usada como um buffer para suportar o acesso serial de um 
bloco de dados. Por exemplo, para atualizar uma tela de bitmap, o CDRAM pode pré-buscar os dados da 
DRAM no buffer SRAM. Os acessos subsequentes ao chip resultam em acessos apenas à SRAM.
5.4 LEITURA RECOMENDADA
[PRIN97] fornece um tratamento abrangente de tecnologias de memória de semicondutor, incluindo SRAM, DRAM e 
memórias flash. [SHAR97] cobre o mesmo material, com mais ênfase em questões de teste e confiabilidade. [SHAR03] e 
[PRIN02] se concentram em arquiteturas DRAM e SRAMavançadas. Para uma análise aprofundada da DRAM, consulte 
[JACO08] e [KEET01]. [CUPP01] fornece uma comparação de desempenho interessante de vários esquemas de DRAM. 
[BEZ03] é uma introdução abrangente à tecnologia de memória flash.
Uma boa explicação dos códigos de correção de erros está contida em [MCEL85]. Para um estudo mais aprofundado, 
tratamentos de duração de livro que valem a pena são [ADAM91] e [BLAH83]. Um tratamento teórico e matemático legível de códigos 
de correção de erros é [ASH90]. [SHAR97] contém um bom levantamento dos códigos usados nas principais memórias 
contemporâneas.
ADAM91 Adamek, J. Fundamentos da codificação. Nova York: Wiley, 1991.
ASH90 Ash, R. Teoria da Informação. Nova York: Dover, 1990.
BEZ03 Bez, R .; et al. Introdução à memória Flash. Processos do IEEE,
Abril de 2003.
BLAH83 Blahut, R. Teoria e prática dos códigos de controle de erros. Lendo, MA:
Addison-Wesley, 1983.

Continue navegando