Sei sulla pagina 1di 82

Capítulo 11

Memórias
Leitura e escrita
Podemos dividir as memórias em duas grandes categorias: ROM e RAM.
Em todos os computadores encontramos ambos os tipos. Cada um desses
dois tipos é por sua vez, dividido em várias outras categorias.

ROM
ROM significa read only memory, ou seja, memória para apenas leitura. É
um tipo de memória que, em uso normal, aceita apenas operações de leitura,
não permitindo a realização de escritas. Outra característica da ROM é que
seus dados não são perdidos quando ela é desligada. Ao ligarmos
novamente, os dados estarão lá, exatamente como foram deixados. Dizemos
então que a ROM é uma memória não volátil. Alguns tipos de ROM
aceitam operações de escrita, porém isto é feito através de programas
apropriados, usando comandos de hardware especiais. Uma típica aplicação
da ROM é o armazenamento do BIOS do PC, aquele programa que entra
em ação assim que o ligamos. Este programa testa a memória, inicializa o
hardware e inicia a carga do sistema operacional.

RAM
Significa random access memory, ou seja, memória de acesso aleatório. Este
nome não dá uma boa idéia da finalidade deste tipo de memória, talvez
fosse mais correto chamá-la de RWM (read and write memory, ou memória
para leitura e escrita). Entretanto o nome RAM continua sendo utilizado por
questão de tradição. Em operação normal, o computador precisa fazer não
apenas o acesso a dados e instruções, através de leituras na memória, mas
também guardar resultados, através de operações de escrita na memória.
Além de permitir leituras e escritas, a RAM tem outra característica típica:
11-2 Hardware Total
trata-se de uma memória volátil, ou seja, seus dados são apagados quando é
desligada. Por isso quando desligamos o computador e o ligamos novamente,
é preciso carregar o sistema operacional. Resumindo, as principais
características da ROM e da RAM são:

ROM RAM
Significado Read only memory Random access memory
Faz leituras SIM SIM
Faz escritas NÃO SIM
Perde dados ao ser desligada NÃO SIM

Em linhas gerais, essas são as características das memórias tipos ROM e


RAM. Existem entretanto ROMs que permitem gravações, e RAM que não
perdem dados, como veremos adiante.

Encapsulamentos de ROMs
Quase sempre você irá encontrar ROMs fabricadas com encapsulamento
DIP cerâmico ou plástico, como vemos na figura 1.

Figura 11.1
ROM com encapsulamento DIP.

O encapsulamento DIP (dual in-line package) cerâmico é mais utilizado pelas


ROMs do tipo EPROM (ou UV-EPROM). Essas ROMs possuem uma janela
de vidro, através da qual os dados podem ser apagados através de raios
ultra-violeta. Depois de apagadas, podem ser novamente gravadas. Em uso
normal esta janela deve permanecer tampada por uma etiqueta. Portanto
nunca retire a etiqueta da ROM expondo sua janela de vidro, pois ela pode
ser apagada por exposição prolongada à luz natural.

Podemos ainda encontrar ROMs com outros encapsulamentos diferentes do


DIP. Um encapsulamento relativamente fácil de encontrar é o PLCC (plastic
leadless chip carrier), mostrado na figura 2.
Capítulo 11 - Memórias 11-3

Figura 11.2
ROM com encapsulamento PLCC.

Encapsulamento das RAMs


Os chips de memória RAM também podem ser encontrados em diversos
formatos, sendo que o mais comum é o encapsulamento SOJ (small outline
package J-lead), mostrado na figura 3. Você encontrará com freqüência este
encapsulamento nos chips que formam os módulos de memória e nos que
forma a memória de vídeo, encontrados em placas de vídeo.

Figura 11.3
Chips de RAM com encapsulamento SOJ.

Também é comum encontrar chips de RAM com encapsulamento QFP


(quad flatpack). São usados por chips que formam a cache L2 em placas de
CPU com cache externa, e nos chips que formam a memória de vídeo.
11-4 Hardware Total
Figura 11.4
Chips de RAM com encapsulamento QFP.

Não confunda chip de memória com módulo de memória. Os chips de


RAM com encapsulamento SOJ que mostramos na figura 3 são montados
em pequenas placas chamadas módulos de memória, que serão apresentados
mais adiante.

Encapsulamento de módulos de memória


Até o início dos anos 90, as memórias dos PCs usavam encapsulamento DIP
e eram instaladas, chip por chip. Trabalho fácil para um técnico, mas uma
tarefa bastante complexa para um usuário que nunca fez este tipo de
trabalho. Os módulos de memória foram criados para facilitar a sua
instalação, não só por parte do usuário, mas também pela indústria
eletrônica. É muito mais rápido conectar um módulo de memória que
instalar um grande número de chips avulsos.

Figura 11.5
Chip de memória com encapsulamento DIP e
módulos de memória SIPP e SIMM.

Os primeiros módulos de memória eram chamados SIPP (single inline pin


package), e foram lançados em meados dos anos 80. Este módulo era uma
Capítulo 11 - Memórias 11-5
pequena placa com chips de memória e terminais (“perninhas”) para encaixe
no soquete apropriado. O processo de fabricação foi simplificado com a
adoção dos módulos SIMM (single inline memory module). Ao invés de
utilizar terminais de contato como o SIPP, esses módulos têm um conector
na sua borda. O soquete para este tipo de módulo é um pouco mais
complicado, porém o processo de fabricação dos módulos tornou-se mais
simples, e sua instalação mais rápida. Módulos SIPP caíram em desuso no
início dos anos 90, sendo substituídos pelo formato SIMM. Esses módulos
forneciam 8 bits simultâneos e precisavam ser usados em grupos para formar
o número total de bits exigidos pelo processador. Processadores 386 e 486
utilizam memórias de 32 bits, portanto os módulos SIMM eram usados em
grupos de 4. Por exemplo, 4 módulos iguais, com 4 MB cada um, formavam
um banco de 16 MB, com 32 bits.

Os módulos SIMM usados até então tinham 30 contatos, portanto eram


chamados de SIMM/30, ou módulos SIMM de 30 vias (ou 30 pinos). Ainda
eram bastante comuns em meados dos anos 90, mas já existiam na época,
módulos SIMM de 72 vias (SIMM/72), que forneciam 32 bits simultâneos.
Em placas de CPU 486, um único módulo SIMM/72 formava um banco de
memória com 32 bits. Esses módulos, apesar de serem mais práticos que os
SIMM/30, eram pouco utilizados, até o lançamento do processador Pentium.
O Pentium trabalha com memórias de 64 bits, portanto seriam necessários 8
módulos SIMM/30 para formar um banco de memória. Isto tornaria a
produção complexa, além de ocupar uma grande área na placa de CPU
apenas para os módulos de memória. Os fabricantes passaram então a adotar
os módulos SIMM/72. Dois desses módulos eram suficientes para formar um
banco de 64 bits. Já em 1996 era praticamente impossível encontrar à venda
módulos SIMM/30, exceto no mercado de peças usadas.

Figura 11.6
Módulos SIMM/30 e SIMM/72.
11-6 Hardware Total
Visando uma integração de componentes ainda maior, foram criados
módulos que fornecem 64 bits simultâneos. Esses módulos são chamados
DIMM/168 (dual inline memory module), e possuem 168 vias. Um único
módulo DIMM/168 forma um banco de memória com 64 bits. É exatamente
o número de bits utilizados pelos processadores modernos (Pentium 4,
Pentium III, Athlon, Duron, Celeron) e os não tão modernos, como K6, K6-
2, K6-III, Pentium Pro, Pentium II, Pentium MMX, etc.

Figura 11.7
Módulo DIMM/168.

Se você precisar dar manutenção em uma placa de CPU Pentium produzida


entre 1995 e 1997, tem grandes chances de encontrar um módulo COAST
(Cache on a Stick). Este tipo de módulo era usado para formar a memória
cache de algumas placas de CPU Pentium, e também de algumas placas de
CPU 486 e 586 produzidas naquela época. Note que os módulos COAST
para placas de CPU Pentium são um pouco diferentes dos utilizados para
placas de CPU 486/586. Os módulos para Pentium usam memórias SRAM
do tipo Pipelined Burst, que normalmente têm o encapsulamento TQFP.
Módulos para 486/586 usam em geral memórias SRAM assíncronas, com o
encapsulamento PSOP. Os dois tipos são mostrados na figura 8.

Figura 11.8
Módulos COAST.

A figura 9 mostra os principais módulos de memória descritos aqui.


Capítulo 11 - Memórias 11-7
Figura 11.9
Módulos de memória.

Dois novos tipos de memória prometem ser comuns nos computadores


avançados, a partir de 2001. São as memórias RAMBUS (RDRAM) e as
memórias DDR SDRAM. Memórias RAMBUS usam o o encapsulamento
RIMM de 184 vias (figura 10). Este tipo de módulo é muito parecido com os
demais apresentados até aqui, exceto pelo fato de poder ter uma chapa
metálica cobrindo seus chips. Note que o módulo da figura 10 não possui
esta chapa, que atua como um dissipador de calor. Esses módulos têm
tamanho similar ao dos módulos DIMM/168, cerca de 13 centímetros.
Entretanto não existe risco de conexão em um soquete errado, já que as
duas fendas existentes do conector só se ajustam aos soquetes apropriados.

Figura 11.10
Módulo RIMM/184.

Também bastante parecidos são os módulos DIMM/184, utilizado pelas


memórias DDR SDRAM. A medida é similar à dos módulos DIMM/168 e
RIMM/184, mas esses módulos também possuem um chanfro característico
que impede o seu encaixe em um soquete errado.

Figura 11.11
Módulo DIMM/184.
11-8 Hardware Total

Módulos DIMM/168, DIMM/184 e RIMM/184 têm larguras semelhantes


(13,3 cm), mas diferenças bastante sutis. A forma mais fácil de reconhecer a
diferença é através dos chanfros existentes no seu conector. O DIMM/184 é
o único que possui um só chanfro, enquanto o DIMM/168 e o RIMM/184
possuem dois chanfros. Os dois chanfros do DIMM/168 dividem os contatos
do conector em três grupos, enquanto os dois chanfros do RIMM/184 ficam
mais próximos do centro, mas não existem contatos entre os dois chanfros
do RIMM/184. Uma outra diferença: os módulos DIMM/168 possuem um
chanfro em forma de semi-circunferência em cada lateral. Os módulos
DIMM/184 possuem dois chanfros em cada lateral.

RAM estática
Até agora abordamos os encapsulamentos usados pelos módulos de
memória. Vamos agora apresentar, do ponto de vista eletrônico, os principais
tipos de memória RAM. Não confunda tipo com formato. Memórias com
formatos (encapsulamentos) iguais podem ser de tipos eletronicamente
diferentes, portanto devemos tomar cuidado para não utilizar memórias
inválidas, iludidos por formatos aparentemente corretos.

RAMs estáticas e dinâmicas


RAMs podem ser divididas em duas grandes categorias: RAMs estáticas
(SRAM) e RAMs dinâmicas (DRAM). A DRAM é a memória usada em
larga escala nos PCs. Quando dizemos que um PC possui, por exemplo, 128
MB, tratam-se de 128 MB de DRAM. São memórias baratas e compactas, o
que é um grande atrativo. Por outro lado, são relativamente lentas, o que é
uma grande desvantagem. Por esta razão, os PCs utilizam em conjunto com a
DRAM, uma memória especial, mais veloz, chamada cache, que serve para
acelerar o desempenho da DRAM. Há poucos anos, a chamada cache L2
era formada por chips de SRAM, localizados na placa de CPU. Atualmente
a cache L2 faz parte do núcleo dos processadores modernos.

A DRAM por sua vez pode ser subdividida em outras categorias, sendo as
principais:

 DRAM
 FPM DRAM
 EDO DRAM
 SDRAM
 DDR SDRAM
Capítulo 11 - Memórias 11-9

 RDRAM

Em termos cronológicos, a DRAM foi usada do final dos anos 70 até o final
dos anos 80. Em meados dos anos 80 surgiu a FPM DRAM (Fast Page Mode
DRAM), bastante utilizada até meados dos anos 90. Passaram então a ser
comuns as memórias EDO DRAM (Extended Data Out DRAM), que por
sua vez foram substituídas pela SDRAM a partir de 1997. A partir de 2000, a
SDRAM começou a dar lugar à DDR SDRAM e à RDRAM.

Memórias SRAM existem desde os anos 60, e memórias DRAM desde os


anos 70. Ao contrário do que o nome sugere, a DRAM não é caracterizada
pela rapidez, e sim pelo baixo custo, aliado à alta capacidade, em
comparação com a SRAM. A alta capacidade é devida ao fato das suas
células de memória serem mais simples. Com células mais simples, é possível
criar chips com maior número de células de memória. Em compensação, o
mecanismo de acesso às suas células de memória é mais complicado. Na
RAM estática, basta fornecer o endereço e o comando (leitura, por
exemplo), e depois de um certo tempo (tempo de acesso), os dados estarão
presentes nas suas saídas. Da mesma forma, nas operações de escrita, basta
fornecer ao chip o valor a ser armazenado e o endereço onde deve ser feito
este armazenamento, acompanhado do comando de gravação. Passado o
tempo apropriado (tempo de acesso), os dados estarão gravados.

Funcionamento da SRAM
A figura 12 mostra o diagrama simplificado de uma SRAM. Ela recebe
endereços (provenientes do processador), e pode enviar os dados que estão
armazenados no endereço especificado, ou armazenar os dados neste
endereço, de acordo com os sinais de controle (leitura/escrita).

*** 35% ***


Figura 11.12
Diagrama simplificado de uma SRAM.

A figura 13 mostra o diagrama de blocos de uma SRAM, de forma mais


detalhada. O chip usado neste exemplo tem a organização de 8kx8, ou seja,
11-10 Hardware Total
8k células de 1 byte (8 bits). Podemos encontrar chips SRAM com diversas
outras organizações, com várias capacidades diferentes. O tamanho das
células mais comuns são 8, 16 e 32 bits, mas encontramos também modelos
com células de 9, 18 e 36 bits para uso em aplicações que exigem detecção e
correção automática de erros, como veremos mais adiante neste capítulo.

*** 75%
***
Figura
11.13
Diagrama de blocos
de um chip de
memória SRAM.

Para endereçar os 8 kB no chip da figura 13, são necessários 13 bits de


endereço (213 = 8192 = 8k). Portanto o chip tem 13 entradas para endereços:

A0, A1, A2, A3, A4, ... , A10, A11, A12

Neste chip de memória, as células são organizadas em uma matriz com 256
linhas de 32 colunas. As 256 linhas usam 8 bits para serem endereçadas (A1-
A8), e as 32 colunas usam 5 bits de endereços (A0, A9, A10, A11, A12). Os
pinos I/O0, I/O1, ... , I/O7 são ligados ao barramento de dados. Nas leituras,
os dados lidos da matriz de células passam pelos sense amplifiers
(amplificadores que detectam os bits armazenados na célula selecionada) e
os enviam para os pinos de saída. Nas operações de escrita, os dados
presentes no barramento são enviados ao buffer de entrada e então
armazenados na matriz de células, na posição selecionada pelo endereço. O
chip possui dois sinais de chip enable (CE1 e CE2) que servem para ativar o
seu funcionamento. Esta ativação é feita quando CE1=0 e CE2=1. Para fazer
uma gravação usamos WE (Write Enable) = 0, e para leitura, usamos OE
(Output Enable) = 0.
Capítulo 11 - Memórias 11-11
Figura 11.14
Leitura de uma SRAM.

A figura 14 mostra o diagrama de tempo de uma operação de leitura em


uma memória estática. Inicialmente o barramento de dados da memória
encontra-se em alta impedância (tristate). Estando o endereço desejado
previamente selecionado, fazemos CE1= 0 e CE2 = 1. A seguir ativamos o
sinal Output Enable, fazendo OE = 0. O barramento de dados, que
anteriormente estava em Tristate, passa a apresentar os dados da célula
selecionada. Note que depois de um tempo T1 a partir do instante em que o
chip é habilitado (CE1=0 e CE2=1), os dados já estão prontos para serem
enviados para o barramento de dados, mas só o são efetivamente depois que
transcorre um tempo T2 com o sinal OE ativado. Passado um tempo T3
depois que OE é desativado (OE=1), o barramento de dados voltará a ficar
em alta impedância.

Figura 11.15
Escrita em uma SRAM.

A figura 15 mostra o diagrama de tempo de uma operação de escrita em


uma RAM estática. É preciso que o endereço seja selecionado, que os dois
sinais de chip enable sejam ativados (CE1=0 e CE2=1) e que o sinal de
output enable seja desativado (OE=1). Os dados a serem gravados são
fornecidos ao barramento de dados (Data IN Valid), e o sinal Write Enable é
ativado. Os dados na entrada devem permanecer estáveis durante um tempo
mínimo T1, com o sinal WE ativado em zero. Passado este período mínomo,
o sinal WE pode ser desativado.

Células de memória estática


11-12 Hardware Total
Uma célula de memória básica tem o circuito equivalente ao da figura 16.
Este circuito tem a capacidade de armazenar um bit. O bit armazenado pode
ser lido na saída Y. Para armazenar bits, as entradas R e S são ativadas de
acordo com o valor desejado.

*** 35% ***


Figura 11.16
Célula de memória.

Veremos a seguir como construir este circuito utilizando transitores MOS. O


princípio básico da célula de memória é a ligação de dois inversores, como
mostra a figura 17. Este circuito tem a capacidade de armazener um bit. Se a
entrada do primeiro inversor tem um bit 0, sua saída tem o valor 1. Este 1,
sendo enviado ao segundo inversor, produzirá um resultado 0 na saída. Este
0 por sua vez é enviado à entrada do primeiro inversor, mantendo o circuito
estabilizado, com o valor 0 na saída (segundo inversor).

*** 35% ***


Figura 11.17
Par de inversores ligados desta forma podem armazenar bits.

Na mesma figura, na parte inferior, vemos que nesta situação temos um bit 1
na entrada do primeiro inversor, e na sua entrada teremo um bit 0. Este 0
será recebido pelo segundo inversor, produzindo um bit 1 na sua saída.
Sabemos portanto que o circuito armazena bits, mas é preciso algo que possa
indicar o valor do bit a ser armazenado. O uso de portas NAND como na
figura 16, permite usar as entradas R e S para indicar o bit a ser gravado. Na
figura 18 vemos como o circuito completo é implementado na prática,
utilizando 6 transistores MOS.
Capítulo 11 - Memórias 11-13
Figura 11.18
Célula de SRAM com tecnologia MOS.

A célula básica da figura 18 é formada pelos dois inversores CMOS,


destacados em cinza (transistores T1/T2 e T3/T4). Alguns fabricantes utilizam
resistores no lugar de T1 e T3, resultando em células de 4 transitores e 2
resistores. Os dois transistores adicionais (T5 e T6) são usados para ler e para
gravar bits. A operação de gravação consiste no seguinte:

a) Os sinais D e D’ são ativados de acordo com o bit que deve ser


armazenado. Para armazenar um bit 1, fazemos D=1 e D’=0. Para armazenar
um bit 0, fazemos D=0 e D’=1.

b) Estando definidos os valores de D e D’, o sinal SELECT é ativado. Isso


ativará os dois transistores ligados em D e D’, transferindo seus valores para a
célula. Quando o sinal SELECT é desativado, o bit permanecerá
armazenado na célula. Note que o SELECT é definido a partir do endereço
da posição de memória a ser acessada.

A operação de leitura consiste em ligar o sinal SELECT, fazendo com que os


valores de D e D’ passem a indicar o bit armazenado na célula. Esses sinais
passam pelos amplificadores de saída, e de acordo com seus valores,
fornecerão uma cópia do bit que estava armazenado na célula.

SRAM assíncrona x SRAM síncrona


Assim como ocorre com a DRAM, a SRAM pode ser dividida em inúmeras
categorias: Assyncrhonous SRAM, Syncrhonous SRAM, Dual Port SRAM,
SyncBurst SRAM, ZBL SRAM, NoBL SRAM, Pipelined Burst SRAM e
vários outros nomes. É verdade que existem excesso de nomes, pois um
mesmo tipo de SRAM pode receber nomes diferentes de fabricantes
11-14 Hardware Total
diferentes. Todas essas tecnologias são baseadas na célula de memória
apresentada na figura 18, e nas suas variações (6 transitores ou 4 transistores
+ 2 resistores). A diferença está nos circuitos que são ligados ao redor da
matriz de células.

Vamos apresentar então essas diversas tecnologias, começando pelas


memórias SRAM Assíncronas e Síncronas (Assynchronous SRAM e
Syncrhonous SRAM). A SRAM Assíncrona é o tipo mais simples,
apresentado na seção anterior “Funcionamento da SRAM”. Conforme
mostramos na figura 13, ao redor da matriz de células temos apenas os
seletores de endereços, registradores e buffers de entrada e amplificadores e
buffers de saída. Ao contrário do que ocorre com a SRAM síncrona, que é
sempre comandada a partir de um clock, a SRAM assíncrona não utiliza
clock. Seus controles são assíncronos, e consistem em sinais como Chip
Enable (CE), Output Enable (OE) e Write Enable (WE).

Essas memórias apresentavam tempos de acesso como 35, 25, 20 e 15 ns, e


eram muito utilizadas para formar a cache de processadores 386, 486 e 586,
bem como em aplicações que não exigiam clocks muito elevados. A maioria
desses processadores operavam com clocks externos de até 33 MHz, e alguns
deles chegando a 40 MHz (Ex: Am486DX2-80). Quanto mais elevado é o
clock, menor deveria ser o tempo de acesso das SRAM assíncronas. Um
486DX2-80 opera com clock externo de 40 MHz, o que corresponde a um
ciclo de 25 ns. O tempo de acesso da SRAM deveria então ser bem
reduzido, entre 10 e 15 ns. Quando a SRAM não era suficientemente veloz,
era preciso utilizar wait states, programados pelo CMOS Setup. Isto tornava
o acesso à SRAM mais lento.

Com a introdução do Pentium e do barramento externo de 66 MHz, um


novo tipo de memória ainda mais veloz tornou-se necessário, pois o cliclo já
chegava a 15 ns. Note que já existiam memórias SRAM mais velozes, porém
de baixa capacidade e extremamente caras. Apenas para ilustrar, saiba que
desde o início dos anos 90 existiam memórias SRAM com tempos de acesso
inferiores a 0,1 ns. Essas memórias eram caríssimas e destinam-se ao uso em
supercomputadores e aplicações de alta velocidade. A indústria de memórias
não é movida apenas pelo mercado de PCs, mas o peso deste mercado é
bastante significativo. As memórias SRAM para PCs, apesar de não terem
dificuldades tecnológicas na sua produção, precisam ter alta capacidade e
baixo custo. O que tem ocorrido em termos de tecnologia de memórias para
PCs é o desenvolvimento de novos tipos de memória com baixo custo, alta
capacidade e alta velocidade, na medida certa para o uso em PCs.
Capítulo 11 - Memórias 11-15
Para permitir o funcionamento em freqüências a partir de 50 MHz, tornou-se
vantajoso o uso de memórias sínronas. Essas memórias têm como principal
característica o fato de serem comandadas a partir de um clock. Atualmente
tanto a SRAM como a DRAM usadas nos PCs são síncronas.

*** 75%
***
Figura
11.19
Transferência de
dados em uma SRAM
síncrona.

A figura 19 mostra o funcionamento de uma SRAM síncrona. Além do sinal


CE (sinal que habilita o chip) e ADSC (sinal que dá início ao ciclo), temos
um sinal de clock (CLK) que sincroniza todos os eventos. No instante T1, o
endereço desejado (A1) deve ser entregue aos pinos do chip, e os sinais CE e
ADSC devem ser ativados. O barramento de dados, indicado como Q,
encontra-se neste instante em repouso, ou seja, em tristate. No instante T2 é
completado mais um ciclo, mas os dados ainda não estão disponíveis.
Apenas no instante T3, no final do segundo ciclo, o dado armazenado no
endereço A1 estará presente no barramento de dados. A partir daí a
memória entregará automaticamente, nos instantes T4, T5 e T6, os dados
armazenados nas posições de memória seguintes (A1+1, A1+2 e A1+3). Por
exemplo, ao fornecer o endereço 1000, a memória entregará os dados
armazenados nos endereços 1000, 1001, 1002 e 1003. Como a entrega do
primeiro dado demorou 2 ciclos e os dados seguintes foram entregues em
intervalos de 1 ciclo, dizemos que esta memória está operando no modo 2-1-
1-1. Dizemos ainda que a memória tem latência de 2 ciclos. Memórias mais
lentas podem necessitar operar com latência de 3 ciclos (3-1-1-1, por
exemplo). A latência é necessária para que os circuitos internos da memória
tenham tempo de encontrar a célula desejada. Uma vez encontrada, as
células seguintes são localizadas de forma mais rápida, já que ocupam
posições consecutivas.

Enquanto a SRAM assíncrona tem sua velocidade especificada pelo seu


tempo de acesso, ou seja, o tempo que demora para encontrar o dado
endereçado (medido em nano-segundos), a SRAM síncrona tem sua
velocidade indicada pelo seu clock, ou seja, o máximo clock com o qual
pode operar (medido em MHz). Eventualmente a SRAM síncrona pode ter
11-16 Hardware Total
também sua velocidade indicada pelo tempo de ciclo, que é igual ao inverso
do clock. Veja por exemplo os tempos de ciclo e clocks das versões do chip
MT58L64L18PT, fabricado pela Micron Technology. Este chip tem 64k
células de 18 bits, e é oferecido para clocks de 100, 133 e 166 MHz.

Modelo Ciclo Clock


MT58L64L18PT-10 10 ns 100 MHz
MT58L64L18PT-75 7,5 ns 133 MHz
MT58L64L18PT-6 6 ns 166 MHz

As SRAM síncronas dividem-se por sua vez em diversas outras categorias,


dependendo do seu modo de operação.

Modo Pipelined
As memórias SRAM síncronas já apresentavam um melhoramento de
desempenho em comparação com as assíncronas, para freqüências de 50, 60
e 66 MHz. Entretanto logo surgiu a necessidade de operar com freqüências
ainda mais elevadas, não permitidas pela tecnologia tradicional com a qual
eram construídas as primeiras SRAM síncronas. Para premitir freqüências de
operação mais elevadas, os fabricantes de memória introdiziram o modo
pipelined.

A idéia é bastante simples e resulta em clocks maiores, mesmo utilizando


células de memória idênticas. Estamos falando da época em que foi
ultrapassada a barreira dos 66 MHz, mas levando em conta memórias mais
atuais, a mesma tecnologia que permite construir memórias atuais “não
pipelined” de 133 MHz permite também produzir memórias pipelined de
166 MHz.

Figura 11.20
Diferença entre a SRAM Pipelined e a
non-Pipelined.
Capítulo 11 - Memórias 11-17

A diferença entre os dois tipos está mostrado na figura 20. Um chip de


memória SRAM síncrona comum (chamado de non-pipelined ou flow-
throug) tem em seus buffers de saída o valor idêntico ao apresentado pelos
sense amplifiers, que por sua vez reproduzem o valor lido da matriz de
células de memória. Os valores presentes no barramento de dados do chip
precisam permanecer estáveis durante um tempo mínimo, para que o
processador e o chipset possam fazer a sua leitura. A necessidade deste
tempo mínimo impede que a matriz de células dê início ao próximo ciclo de
leitura, ou seja, ela precisa “esperar um pouco”. Nas memórias pipelined, os
dados recebidos da matriz de células passam pelos amplificadores e são
armazenados em registradores de saída (output registers). Ao contrário do
buffer, que se limita a passar adiante os valores lidos nas suas entradas, o
registrador é capaz de memorizar suas entradas e manter esses valores
memorizados nas suas saídas, mesmo que as entradas posteriormente
mudem de valor. Graças aos registradores, a saída do barramento de dados
da memória fica estabilizada, e a matriz de células pode ser novamente
usada para o próximo acesso. Como graças ao registrador a matriz de células
não precisa mais “esperar” a leitura do dado pelo processador, temos um
maior aproveitamento, resultando em maior velocidade.

Apesar de possibilitar operar com clocks mais elevados, uma SRAM


pipelined tem a desvantagem de exigir um ciclo a mais para o carregamento
do registrador. Enquanto os modelos não pipelined operam no modo 2-1-1-1
(5 períodos), os modelos pipelined operam com 3-1-1-1 (6 períodos), porém
com freqüêncais mais elevadas. Por exemplo, em 66 MHz (ciclo de 15 ns),
uma transferência de uma SRAM não pipelined demoraria 75 ns (5 x 16 ns),
mas a 100 MHz (ciclos de 10 ns) uma transferência de uma pipelined SRAM
demoraria 60 ns (6 x 10 ns). A mesma SRAM não conseguiria operar no
modo 2-1-1-1 a 100 MHz, e exigiria usar o modo 3-2-2-2, bem mais lento.
Portanto para clocks acima de 66 MHz, a SRAM do tipo pipelined começa a
levar vantagem sobre memórias SRAM não pipelined de tecnologia
semelhante (com células obtidas pelo mesmo processo de fabricação, e em
conseqüência, de mesmo preço).

Ao adotarem a operação em modo pipeline, as memórias SRAM síncronas


passaram a ser chamadas de Pipelined Burst SRAM. As memórias SRAM
síncronas porém sem o recurso pipeline passram a ser chamadas apenas de
Burst SRAM, Syncrhonous Burst SRAM, SyncBurst SRAM ou Flow-Through
SyncBurst SRAM. Note que apesar desses nomes, as memórias SRAM
Pipelined também são síncronas e também operam em modo burst, portanto
podem ser ainda chamadas de Pipelined Syncrhonous Burst SRAM.
11-18 Hardware Total

Os dois tipos de Syncronous Burst SRAM foram criados especificamente


para operar como caches secundárias em placas de CPU equipadas com
processadores Pentium e superiores. Até hoje encontramos essas memórias
formando a cache L2 nas placas com Socket 7 (Ex: K6-2). Também foram
utilizadas na formação da cache L2 discreta dos processadores com
encapsulamento em cartucho, como Pentium II, Pentium III Katmai e nas
primeiras versões do AMD Athlon.

DDR e QDR
Memórias DDR SDRAM foram criadas visando a operação em clocks ainda
mais delevados. Elas utilizam a técnica DDR (Double Data Rate), na qual
duas matrizes de células independentes são acessadas por dois clocks (na
figura 21 os clocks são K e K#). O sinal K# tem o valor oposto de K, ou
sejam tratam-se de clocks complementares, requisito comum em todos os
dispositivos que operam com DDR.

Na figura 21, o endereço é fornecido à memória e é ativado o sinal LD#. O


sinal R/W# deve permanecer com o valor 1, indicando operação de leitura.
Na segunda descida do clock K, o primeiro dado estrá disponível. Os três
dados seguintes serão fornecidos a cada meio período de K, portanto são
duas transferências por cada ciclo, característica do modo double data rate.

Figura 11.21
Ciclo de leitura em uma DDR SRAM.

A tabela a seguir mostra como exemplo, as versões do chip DDR SRAM


MT57V256H36PF, produzido pela Micron Technology. São oferecidas
versões de 166, 200, 250 e 300 MHz. Note que esses clocks, ao utilizarem
double data rate, resultarão em equivalentes a 333, 400, 500 e 600 MHz.

Modelo Ciclo Clock


Capítulo 11 - Memórias 11-19
MT57V256H36PF-3.3 3.3 ns 300 MHz
MT57V256H36PF-4 4 ns 250 MHz
MT57V256H36PF-5 5 ns 200 MHz
MT57V256H36PF-6 6 ns 166 MHz

Memórias QDR (Quad Data Rate), ao contrário do que possa parecer, não
são como DDRs que fazem 4 transferências por ciclo. São na verdade
memórias com dois barramentos de dados independentes, um de entrada e
um de saída. Cada um deles opera com double data rate. Quando ambos
estão operando ao mesmo tempo, temos como resultado uma taxa de dados
quadruplicada em relação ao clock.

Memórias DDR SRAM e QDR SRAM são indicadas para aplicações de alta
velocidade, como cache, memória de vídeo em placas de alto desempenho,
redes e interfaces de alta velocidade.

ZBT ou NoBL SRAM


Essas são memórias SRAM síncronas, capazes de operar no modo burst,
oferecidas em versões pipelined e flow-throug, mas com uma sutil diferença:
Podem fazer a transição imediata entre um ciclo de leitura e um ciclo de
escrita, sem a necessidade de pausas (latency ou turnaround). Todos os
demais tipos de SRAM síncrona têm a limitação de não poderem passar
imediatamente de uma leitura para escrita, ou vice-versa. A razão disso é que
o sistema de endereçamento interno da memória tem diferenças, nas leituras
e nas escritas. É preciso então tempo para a memória desativar internamente
o endereçamento da leitura e ativar o endereçamento da escrita, e vice-versa.
Memórais ZBT (Zero Bus Turnaround) ou NoBL (No Bus Latency) ou
Network SRAM – o nome varia conforme o fabricante – têm seus circuitos
internos de endereçamento organizado de forma que o mesmo
endereçamento usado para a leitura é usado também para a escrita, portanto
não tem necessidade esperar pela desabilitação de um circuito e a
habilitação de outro quando são feitas inversões entre operações de leitura e
gravação.

Dual Port SRAM


Este é um tipo especial de memória que pode ser acessada simultaneamente
por dois barramentos independentes. A figura 22 mostra o diagrama de uma
memória Dual Port.
11-20 Hardware Total
*** 75%
***
Figura
11.22
Diagrama de uma
Dual Port SRAM.

Como vemos, existem dois conjuntos de sinais independentes, com


barramento de dados, endereços e controle. Até os circuitos internos são
simétricos e independentes. Ambos acessam uma única matriz de células de
memória.

Note que existem muitos casos em que são usadas memórias comuns e existe
mais de um circuito que faz acessos. A memória DRAM de uma placa de
CPU, por exemplo, é acessada pelo processador, pelo chipset, pela placa de
vídeo AGP, pelas interfaces de disco rígido e por outras interfaces que
operam com DMA (acesso direto à memória). A diferença é que nesses
casos, apenas um dispositivo pode acessar a memória a cada instante, e
todos os demais têm que aguardar. Já no caso das memórais Dual Port, os
dois dispositivos podem realizar acesso simultâneos. A matriz de células é
dividida em bancos independentes, de modo que é mínima a possibilidade
de colisão, ou seja, quando ambos os circuitos querem acessar o mesmo
banco. Apenas quando ocorre colisão, um circuito terá que esperar pelo
acesso.

Existem inúmeras aplicações para memórias Dual Port. Um exemplo é a


cache externa em placas com múltiplos processadores (não estamos falando
de PCs, mas de máquinas mais sofisticadas). Placas de vídeo de alto
desempenho também podem fazer uso deste tipo de memória. Ao mesmo
tempo em que a memória de vídeo está sendo lida e transferida para o
monitor, o chip gráfico pode fazer seus acessos a esta mesma memória.
Placas digitalizadoras de vídeo de alto desempenho também podem usar o
mesmo recurso.
Capítulo 11 - Memórias 11-21

1T-SRAM
Como vimos, as células de memória SRAM são formadas por 6 transistores,
ou então por 4 transitores e 2 resistores. Estamos nos referindo às memórias
que usam a tecnologia MOS, já que existem vários outros tipos. Um exemplo
são as memórais bipolares, que são ainda mais velozes, porém menos densas,
mais caras e com maior dissipação de calor. Existe ainda um tipo especial de
memória SRAM chamada de 1T-SRAM. Cada célula utiliza apenas um
transitor e um capacitor. Este capacitor é o responsável pelo armazenamento
de uma carga que representa um bit, e é na verdade construído com o
mesmo material usado na formação dos transitores. Esta tecnologia foi criada
pela MoSys, que por sua vez a licenciou para vários outros fabricantes, como
UMC, NEC e Sony. Note que este tipo de célula de memória não é na
verdade estático. Trata-se de uma memória dinâmica, porém é acrescida de
circuitos internos (refresh transparente, por exemplo), que a tornam do ponto
de vista externo, similar a uma SRAM.

Memórias DRAM que fazem refresh interno existem há vários anos, e são
chamadas de RAM pseudo-estáticas.

Tempo de acesso
O tempo de acesso é um parâmetro muito importante, relacionado com a
velocidade das memórias. Aplica-se especificamente às memórias SRAM
assíncronas, e indica o tempo necessário para que os dados estejam
disponíveis, medido a partir do instante que o chip de memória está
habilitado, através da entrada CE (chip enable). Na figura 23, o tempo de
acesso é T1. Note que os dados estarão disponíveis desde que o sinal OE
(output enable) seja selecionado previamente. Se não for selecionado, os
dados não estarão disponíveis.

Figura 11.23
Tempo de acesso de uma SRAM
assíncrona.

No chip de memória da figura 24 encontramos a inscrição IS61C256AH-20N.


O sufixo –20 indica que seu tempo de acesso é de 20 ns. Este chip faz parte
da cache externa de uma placa de CPU 486.
11-22 Hardware Total
*** 35% ***
Figura 11.24
Chip de SRAM com tempo de acesso de 20 ns.

Não faz sentido falar em “tempo de acesso” no caso das memórias síncronas.
Ao invés disso especificamos o seu clock (ou o período de duração do ciclo)
e a latência. Nos chips encontramos sufixos que indicam o clock ou o
período, dependendo do fabricante. O período é igual a 1 segundo dividido
pelo clock. Por exemplo, um clock de 100 MHz corresponde a um período
de 10 ns.

Ciclo Clock Ciclo Clock


20 ns 50 MHz 7 ns 143 MHz
15 ns 66 MHz 6 ns 166 MHz
13,3 ns 75 MHz 5 ns 200 MHz
12 ns 83 MHz 4 ns 250 MHz
10 ns 100 MHz 3,3 ns 300 MHz
8 ns 125 MHz 3 ns 333 MHz
7,5 ns 133 MHz 2,5 ns 400 MHz

Quando dizemos que um chip de memória tem ciclo de 10 ns, não quer
dizer que demorará 10 ns até entregar um dado. Dependendo do tipo de
memoria, irá demorar 2 ou 3 ciclos par entregar o primeiro dado (isto é o
que chamamos de latência), o que neste caso corresponde a 20 ou 30 ns. A
partir do fornecimento do primeiro dado, os três dados seguintes são
entregues a cada 10 ns, desde que a memória esteja operando em modo
burst.

Wait states
O wait state é um recurso que permite o uso de memórias lentas com
processdores rápidos. Para isso basta “avisar” o processador para que espere
um pouco mais antes de ler os valores do seu barramento de dados (nas
operações de leitura), ou que espere um pouco mais antes de finalizar uma
escrita, para dar tempo às memórias para receberem o dado. O
funcionamento é exemplificado na figura 25.
Capítulo 11 - Memórias 11-23
*** 75%
***
Figura
11.25
Acessos à memória.

a) sem wait state


b) com 1 wait state

Ao fazerem acessos aleatórios na memória externa, o processador espera


normalmente 2 ciclos. O ciclo tem duração de acordo com o clock externo
do processador. Por exemplo, com clock externo de 100 MHz, o ciclo tem
duração de 10 ns. Uma operação normal de leitura, com duração de 2 ciclos,
é mostrada na parte A da figura 25. Durante o primeiro ciclo (T1) o
processador deve entregar o endereço ao barramento, juntamente com
outros sinais de controle. No final do ciclo seguinte, o processador testa o
sinal da sua entrada de controle RDY (Ready). Se estiver em nível 0, significa
que o ciclo pode ser finalizado, e que o dado estará disponível no seu
barramento de dados.

Quando as memórias não são suficientemente velozes, o seu circuito de


controle (faz parte do chipset) pode retardar o envio do sinal RDY. Se no
final do ciclo T2 o sinal RDY não estiver ativado (ou seja, com valor 0), o
processador automaticamente esperará mais um ciclo. Esta “prorrogação”,
representada pelo segundo T2 na parte B da figura 25, é o que chamamos de
1 wait state. O processador pode aguardar mais 2, 3 ou quantos wait states
adicionais forem necessários, até que o circuito controlador da memória ative
o sinal RDY com valor 0, o que finaliza o ciclo. No nosso exemplo, usar um
wait state aumentou o tempo total da leitura para 30 ns. Com 2 wait states
teríamos 40 ns, com 3 wait states teríamos 50 ns, e assim por diante. Cabe ao
BIOS da placa de CPU programar o chipset com o número recomendado de
wait states suficiente para as memórias em uso.

Note que os processadores possuem dois pinos de Ready. O primeiro é o


RDY que acabamos de apresentar, e se aplica a leituras e escritas aleatórias,
ou seja, que não usam o modo burst. O segundo controle é o BRDY, que é
usado quando o processador faz leituras e escritas no modo burst. Nesta
modalidade são feitas transferências em grupos de 4. Uma transferência
normal em modo burst obedece à temporização 2-1-1-1, mas através do sinal
BRDY, o processador pode operar em outros modos, como 3-1-1-1, 3-2-2-2, 4-
2-2-2, e assim por diante. Portanto os wait states podem ser usados tanto em
operações assíncronas quanto síncronas.
11-24 Hardware Total

RAM dinâmica, modos FPM e EDO


Memórias estáticas têm células relativamente grandes, em geral com 6
transistores. Como resultado, essas memórias são pouco densas, ou seja, não
permitem a obtenção das elevadas capacidades de memória exigidas pelos
PCs modernos, a menos que utilizemos um número muito grande de chips.
Além de exigir muito espaço, o uso de memórias estáticas resulta em custo
bem elevado.

As células de DRAM
As memórias dinâmicas (DRAM) foram criadas visando obter redução de
espaço, aumento de capacidade e redução de custo. Uma célula de DRAM é
formada por um transistor e um capacitor, como vemos na figura 26. O
tamanho do capacitor é pequeno em comparação com o do transitor,
portanto o espaço ocupado é o de praticamente um transistor por célula.

*** 35% ***


Figura 11.26
Uma célula de DRAM.

O funcionamento desta célula é extremamente simples. Para gravar um bit,


basta colocá-lo em D e ativar a linha SELECT. Isto fará com que a tensão em
D seja transferida para o capacitor. A seguir a linha SELECT é desligada, e o
capacitor irá menter através de sua carga, o valor do bit armazenado.

A operação de leitura é um pouco mais complexa. Inicialmente a linha D é


carregada com a tensão de alimentação, através da sua capacitância. Quando
a linha SELECT é ligada, a carga armazenada no capacitor da célula e a
carga armazenada na linha D são distribuídas, resultando em tensões iguais.
Se o capacitor estava originalmente descarregado (bit 0), ocorrerá uma
pequena redução na tensão existente em D. Se o capacitor já estava
carregado (bit 1), não ocorrerá esta redução. O novo valor de D será
portanto igual ao original (o que indica bit 1) ou sensivelmente menor que o
original (o que indica bit 0). Os chamados sense amplifiers percebem esta
Capítulo 11 - Memórias 11-25
diferença e identificam se o bit armazenado era 1 ou 0. Note que esta leitura
é destrutiva, pois altera o valor armazenado no capacitor. Terminada a
leitura, o bit identificado é novamente gravado na célula, o que restaura seu
valor original.

Além do funcionamento desta célula ser relativamente complicado, existe


mais um agravante: o capacitor se descarrega depois de alguns milésimos de
segundo. Para que os bits não sejam perdidos é preciso que toda a memória
seja periodicamente lida, restaurando as cargas dos capacitores. É o que
chamamos de refresh.

A matriz de células de memória DRAM é um grande grupo de linhas


SELECT que se cruzam com linhas D. Para endereçar uma célula de
memória é preciso selecionar a linha SELECT e a linha D, em função do
endereço desejado.

A figura 27 mostra de forma simplificada, a construção de uma célula de


DRAM. A célula real é mais complexa, tridimensional. As várias linhas D e
SELECT são dispostas de forma perperndicular, formando uma matriz.

Figura 11.27
Construção de uma célula de DRAM.

É comum chamar a matriz de células de DRAM de “matriz capacitiva”. Não


deixa de estar correto, pois os capacitores são os responsáveis pelo
armazenamento dos bits. Note entretanto que o transitor ocupa um espaço
bem maior, como vemos na figura 27. O capacitor é mantido com o menor
tamanho possível para que o processo de fabricação resulte em chips com
mais células. Capacitores maiores só teriam como vantagem, a permanência
da carga por um período maior, mas ainda assim na faixa de milésimos de
segundo, não resolvendo o problema da necessidade de refresh.
11-26 Hardware Total
Estrutura interna de uma DRAM
A figura 13 mostra de forma simplificada, a estrutura interna de uma DRAM.
A matriz de células é dividida em linhas e colunas. Para acessar a matriz é
preciso que o chip de memória receba primeiro o número (ou endereço) da
linha desejada, e depois o endereço da coluna. Os dados lidos são enviados
para o barramento de dados. O mesmo ocorre na operação de escrita, sendo
que os dados são recebidos do barramento de dados e colocados na célula
selecionada. Dois sinais RAS e CAS servem para indicar quando estão
presentes os endereços da linha e coluna. Alguns chips necessitam receber
um sinal externo MA, para comandar o demultiplexador de endereços,
enviando os números da linha e coluna para os circuitos apropriados. A
maioria dos chips de DRAM mais modernos não utiliza este controle,
fazendo sua geração internamente em função dos sinais RAS e CAS.

*** 75% ***


Figura
11.28
Diagrama simplificado
de uma DRAM.

A figura 29 mostra o diagrama completo de um chip de memória DRAM,


com capacidade de 16M x 4. Possui portanto 16 M células de memória, e
cada uma delas possui 4 bits. Esses bits são representados no diagrama como
DQ0, DQ1, DQ2 e DQ3. Para endereçar essas 16M células, o chip tem 12
bits de endereço. Como o endereço é fornecido em duas etapas (linha e
coluna), são ao todo 24 bits, exatamente o necessário para endereçar 224 =
16M células.
Capítulo 11 - Memórias 11-27
*** 75%
***
Figura
11.29
Diagrama completo
de um chip DRAM.

Observe ainda na figura 29 que como o chip do exemplo tem “células de 4


bits”, existem ao todo 4 bancos de células independentes. Cada um deles
recebe 4096 linhas (sinais SELECT das figuras 26 e 27) e 4096 colunas, que
são os sinais de dados (são os sinais D nas figuras 26 e 27). Vemos ainda o
chip do exemplo tem um módulo chamado REFRESH CONTROLLER.
Este módulo é capaz de realizar internamente as operações de refresh (é o
que chamamos de self refresh), aliviando o trabalho dos circuitos externos.
Tradicionalmente, o refresh tem sido feito pelo controlador de memória
DRAM (que faz parte do chipset). Em aplicações nas quais o sistema tem
que ficar em estado de espera, o chipset pode ser desligado e o próprio chip
de memória se encarrega de realizar internamente o refresh. Quando o chip
de SRAM não faz self refresh, cabe ao controlador de memória realizar esta
operação, que consiste em fazer leituras periódicas nas linhas da matriz.

Acessando uma DRAM


Como vimos, o mecanismo de acesso às células da DRAM é bem mais
complexo que o da SRAM. Suas células de memória são organizadas em
uma matriz, formada por linhas e colunas. Por exemplo, uma DRAM com 1
Mbit é formada por uma matriz quadrada, com 1024 linhas e 1024 colunas
(podem existir formatos diferentes, como 2048x512). Para acessar uma dessas
células de memória, é preciso primeiro fornecer à DRAM o endereço da
linha, seguindo de um sinal chamado RAS (Row Address Strobe). Serve
para indicar que o endereço da linha está pronto. A seguir deve ser
fornecido à memória o endereço da coluna, seguido do sinal CAS (Column
Address Strobe). Passado mais um pequeno tempo, o dado daquela célula
de memória cujos números da linha e coluna foram fornecidos, estará
presente e pronto para ser lido pelo processador ou pelo chipset.
11-28 Hardware Total
Note que os processadores não “enxergam” a memória desta forma, não
estão preparados para gerar sinais RAS e CAS, nem para dividir o endereço
em linha e coluna. O processador simplesmente indica o endereço de
memória que deseja acessar, e a seguir envia um comando de leitura ou
escrita. Cabe ao chipset converter os sinais de acesso à memória vindos do
processador, em sinais compatíveis para a DRAM. Esta é a função de uma
parte do chipset chamada Controlador de DRAM.

Figura 11.30
O Chipset é encarregado de controlar o
acesso à DRAM.

O trabalho completo do chipset (controlador de DRAM) para obter um


dado proveniente da DRAM é resumido na seguinte seqüência:

1) Chipset recebe do processador, o endereço da célula a ser acessada


2) Chipset desmembra o endereço em duas partes: linha e coluna
3) Chipset envia à DRAM, o endereço da linha
4) Chipset envia à DRAM o sinal RAS
5) Chipset envia à DRAM o endereço da coluna
6) Chipset envia à DRAM o sinal CAS
7) A DRAM acessa o dado armazenado nesta célula e o entrega ao chipset
8) Chipset obtém o dado e o encaminha para o processador

Cada uma dessas micro-etapas leva um pequeno tempo para ser executada.
O tempo total necessário para que o processador receba o dado solicitado da
memória é igual à soma desses tempos. É preciso que você entenda bem este
mecanismo para que possa compreender as memórias mais novas.
Capítulo 11 - Memórias 11-29
Figura 11.31
Ciclo de leitura em uma DRAM.

A figura 31 mostra o ciclo de leitura em uma DRAM. Começa com a


ativação do sinal RAS, que é colocado em nível 0. Neste momento o
barramento de endereços da memória (ADDR) deve estar preparado com o
número da linha (ROW) a ser acessada. Após um tempo especificado, o
barramento de endereços deve receber o número da coluna, e a seguir deve
ser ativado o sinal CAS. Logo a seguir, o barramento de dados (DQ), que
antes estava em tristate, entregará o dado lido da célula selecionada. Note
que para isso é preciso que o sinal OE (Output Enable) seja ativado em zero.
Chamamos tempo de acesso da memória DRAM, o tempo transcorrido
entre a ativação do RAS e a chegada do dado lido. Uma memória com
especificação –50, por exemplo, demorará 50 ns para entregar o dado lido a
partir do instante da ativação do RAS.

Utilizando a estutura básica da matriz de células de DRAM, vários outros


tipos de memória têm sido desenvolvidos nos últimos anos. As principais
forma a FPM DRAM, EDO DRAM, SDRAM, DDR SDRAM, RDRAM.
Todas elas são mais avançadas que a DRAM original, resultando em maior
velocidade, mas ainda assim todas utilizam matrizes de células idênticas. A
diferença está nos circuitos internos que dão acesso a essas células. Por
exemplo, usando 4 matrizes de células operando de forma simultânea, temos
a SDRAM. Este tipo de memória opera de forma síncrona, e demora um
tempo inicial para acessar o primeiro dado, e a seguir transfer os 3 dados
seguintes (lidos das outras três matrizes de células) em rápida velocidade.
Chips construídos como duas SDRAM operando em parlelo deram origem à
DDR SDRAM, que são duas vezes mais rápidas. Usando 16 ou 32 matrizes
funcionando em conjutno, temos a RDRAM (Rambus RAM).

FPM DRAM
Essas memórias foram usadas nos PCs antigos, em praticamente todos os PCs
386, 486 e 586 e nos primeiros PCs Pentium. No passado eram encontradas
no encapsulamento DIP, depois foram produzidas em módulos SIPP e
SIMM/30. É correto dizer que todos os módulos SIPP e SIMM eram
formados por chips de FPM DRAM. Chips de FPM DRAM também foram
11-30 Hardware Total
utilizados em módulos SIMM/72, mas não é correto dizer que todo módulo
SIMM/72 é do tipo FPM DRAM. Era comum encontrar módulos SIMM/72
tanto com FPM DRAM como com EDO DRAM.

Memórias FPM DRAM são capazes de operar no chamado Fast Page Mode.
A idéia é muito simples. A maioria dos acessos à memória são feitos em
células consecutivas. Considere por exemplo um grupo de 4 acessos às
posições consectivas mostradas na figura 32.

Figura 11.32
Quatro células de memória consecutivas.

Os endereços dessas 4 células consecutivas são:

Linha 277, coluna 320


Linha 277, coluna 321
Linha 277, coluna 322
Linha 277, coluna 323

Lembre-se que cada linha é acompanhada de um sinal RAS, e cada coluna é


acompanhada de um sinal CAS. Ora, quando tomamos posições
consecutivas de memória, as linhas são as mesmas e o que varia é apenas a
coluna. Seria então uma perda de tempo repetir no segundo, terceiro e
quarto acessos, o número da linha. Basta indicar o número da coluna. O
chamado Fast Page Mode tem como principal característica, o acesso a várias
colunas de uma mesma linha, bastando que sejam fornecidos os endereços
das colunas, seguidos do sinal CAS, sem a necessidade de repetir o número
da linha.

O acesso à primeira posição de memória de um grupo é feito pelo mesmo


mecanismo já explicado para as DRAMs convencionais:

1) Chipset recebe do processador, o endereço da célula a ser acessada


Capítulo 11 - Memórias 11-31
2) Chipset desmembra o endereço em duas partes: linha e coluna
3) Chipset envia à DRAM, o endereço da linha
4) Chipset envia à DRAM o sinal RAS
5) Chipset envia à DRAM o endereço da coluna
6) Chipset envia à DRAM o sinal CAS
7) A DRAM acessa o dado armazenado nesta célula e o entrega ao chipset
8) Chipset obtém o dado e o encaminha para o processador

Os acessos seguintes são mais rápidos porque exigem menos etapas: não é
preciso fornecer o sinal RAS nem o endereço da linha:

5) Chipset envia à DRAM o endereço da próxima coluna


6) Chipset envia à DRAM o sinal CAS
7) A DRAM acessa o dado armazenado nesta célula e o entrega ao chipset
8) Chipset obtém o dado e o encaminha para o processador

Digamos que o tempo total para realizar as 8 etapas (1 a 8) do acesso à


primeira célula seja 100 ns, e que para cada um dos três acessos seguintes, o
tempo das etapas (5 a 8) seja de 40 ns. Se a DRAM não fosse do tipo FPM,
todos os acessos seriam iguais ao primeiro, e o tempo total seria de 100 + 100
+ 100 + 100, ou seja, 400 ns. Com a FPM DRAM, o tempo total seria 100 +
40 + 40 + 40, ou seja, 220 ns, bem mais rápido.

Poderíamos a princípio pensar que o chipset “cronometra” 100 ns para o


primeiro acesso, e depois 40 ns para cada um dos acessos seguintes. É mais
ou menos isso o que ocorre, entretanto o chipset não conta o tempo em ns.
Sua base de tempo é o ciclo de clock, a sua menor unidade de tempo. A
duração de um ciclo de clock depende do clock utilizado pelo chipset, que
em geral é o mesmo clock externo do processador:

Clock Período Clock Período


33 MHz 30 ns 95 MHz 10,5 ns
40 MHz 25 ns 100 MHz 10 ns
50 MHz 20 ns 133 MHz 7,5 ns
60 MHz 16,6 ns 166 MHz 6 ns
66 MHz 15 ns 200 MHz 5 ns
75 MHz 13,3 ns 266 MHz 3,75 ns
83 MHz 12 ns 400 MHz 2,5 ns

De um modo geral, para obter o valor do período, dado em ns, basta dividir
1000 pelo número de MHz. Considere por exemplo um Pentium-200,
operando com clock externo de 66 MHz, ou seja, ciclos de 15 ns. Todas as
suas operações são feitas em múltiplos de 15 ns, ou seja, 15 ns é a sua
11-32 Hardware Total
unidade básica de tempo. Aquela FPM DRAM que precisa operar com a
temporização 100/40/40/40, será controlada pelo chipset com a temporização
7-3-3-3. São 7x15 = 105 ns para o primeiro acesso e 3x15 = 45 ns para cada
um dos acessos seguintes.

Os processadores modernos, bem como seus chipsets, são orientados para


fazer transferências em blocos de 4 acessos consecutivos. Entretanto as
memórias FPM podem realizar várias transferências consecutivas em Fast
Page Mode, desde que todas elas dentro da mesma linha. Em um caso
extremo, considerando uma matriz de 1024x1024, podemos dar início à
leitura da primeira coluna de uma linha, e ler todas as 1023 células
consecutivas desta mesma linha. Processadores e chipsets fazem por padrão
leituras de 4 células consecutivas, mas outros dispositivos podem tirar melhor
proveito lendo um número maior de células. Por exemplo, uma placa de
vídeo ao usar memórias FPM, pode fazer corresponder cada linha do vídeo a
uma linha da DRAM, e usar transferências em Fast Page Mode para enviar
os pixels consecutivos para o monitor.

Figura 11.33
Lentura em Fast Page Mode.

A figura 33 mostra o diagrama de tempo de um ciclo em Fast Page Mode,


com 3 leituras consecutivas. Como dissemos, o número de transferências
consecutivas pode variar, desde que dentro da mesma linha. O tempo de
acesso da memória, acrescido de um intervalo inicial para a prepareção do
endereço da linha, é o tempo total que é preciso esperar até que o primeiro
dado seja acessado. A partir daí, mantendo a linha RAS ativada, alteramos o
endereço da coluna e aplicamos pulsos em CAS. O intervalo entre a
chegada de dois dados consecutivos será TPC, que é um tempo bem menor
que o tempo de acesso da memória. Quando o RAS é desativado, termina a
transferência em Fast Page Mode.

Figura 11.34
Informações do manual de um chip de
FPM DRAM.
Capítulo 11 - Memórias 11-33

Nos manuais dos chips de memória existem todas as informações sobre a sua
temporização. A figura 34 mostra a tabela extraída do manual de um certo
chip de FPM DRAM. Este chip é oferecido em duas versões: -5 e –6, o que
corresponde a tempos de acesso (tRAC) de 50 e 60 ns, respectivamente.
Encontramos outras informações, como o tRC, que é o tempo total dos ciclos
de leitura. Note que o tempo total do ciclo é bem maior que o tempo de
acesso, pois leva em conta todas as operações envolvidas, não só o acesso.
Outra informação importante é o tPC, o tempo de ciclo em Fast Page Mode.
Note que esses dois chips têm esses tempo iguais a 30 e 35 ns,
respectivamente, que são valores consideravelmente menores que o tempo
de acesso. Podemos ainda encontrar outras informações, como o tCAC, que
é o tempo de acesso medido a partir da ativação do CAS.

Em uma placa de CPU cabe ao chipset receber os dados da DRAM para


enviá-los ao processador ou à cache. O chipset deve ser ajustado de acordo
com a velocidade da DRAM em uso. Este ajuste é feito através do CMOS
Setup, e normalmente aparece com nomes como “DRAM Read Cycle” e
“DRAM Write Cycle”. Digamos que a placa de CPU em uso opere com
clock externo de 66 MHz, o que corresponde a ciclos de 15 ns. Digamos que
estejamos usando memórias FPM DRAM com as seguintes características:

tRAC = 70 ns
tPC = 40 ns

Como o período de clock é de 15 ns, são necessários 5 ciclos (75 ns) para
englobar o tempo de acesso, e 3 ciclos (45 ns) para englobar tPC. Ciclos
adicionais são necessários no início do primeiro acesso, pois como vimos, o
tempo de acesso é contado a partir da ativação do RAS, mas o ciclo de
leitura começa antes disso. Se reservarmos 2 ciclos iniciais para o início da
transferência, o primeiro acesso seria feito após 7 ciclos. A memória estaria
operando portanto com a temporização 7-3-3-3. Com memórias um pouco
mais rápidas, de 60 ou 50 ns, pode ser possível utilizar menos ciclos, e operar
com temporizações como 6-3-3-3, 7-2-2-2 ou 6-2-2-2. Tudo depende de serem
reduzidos os valores do tempo de acesso (tRAC) e do ciclo de FPM (tPC).
Nas placas de CPU que usavam este tipo de memória, o CMOS Setup usa
uma configuração padrão com valores grandes, para que a placa funcione
com memórias de várias velocidades. Ao utilizar memorias mais rápidas,
tempos menores podem ser usados, mas o ajuste é feito manualmente e
experimentalmente no CMOS Setup, em um processo de “envenenamento”.
11-34 Hardware Total
Quanto ao encapsulamento, a maioria das memórias FPM DRAM, assim
como a EDO DRAM e outras mais modernas, apresentam em geral os
formatos SOJ e TSOP, mostrados na figura 35 e já apresentados no início
deste capítulo. O número de pinos dependerá da capacidade, do número de
bits de dados e dos bits de endereços. Observe na figura 35 que os pinos
representam o barramento de dados (DQ), de endereços (A0, A1, etc.) e os
sinais de controle, como RAS, CAS, OE, WE, etc. Existem ainda os pinos de
alimentação (VCC) e terra (VSS ou GND).

Figura 11.35
Chips de memória com encapsulamentos
SOJ e TSOP.

EDO DRAM
Bastante comum a partir de 1995, a EDO (Extended Data Out) DRAM é
obtida a partir de um melhoramento de engenharia nas memórias FPM
DRAM. A idéia é bastante simples. Após completar um ciclo de leitura e
fornecer os dados lidos, pode dar início a um novo ciclo de leitura, mas
mantendo em suas saídas, os dados da leitura anterior. O resultado é uma
economia de tempo, o que equivale a um aumento de velocidade. É
suportada por todas as placas de CPU Pentium, a partir das que apresentam
o chipset i430FX. As primeiras placas de CPU Pentium II também as
suportavam, porém essas memórias caíram em desuso, sendo logo
substituídas pela SDRAM tão logo o Pentium II se tornou comum (1998).

Módulos de memória EDO DRAM utilizaram muito o encapsulamento


SIMM/72 (assim como a FPM DRAM). Também é possível encontrar
módulos de memória EDO DRAM usando o encapsulamento DIMM/168,
porém são mais raras nesta versão.

Memórias EDO também são capazes de operar em Page Mode, ou seja,


fazer transferências de vários dados consecutivos, com a ativação apenas do
sinal CAS. Também são chamadas de Hyper Page Mode, enquanto as
Capítulo 11 - Memórias 11-35
memórias FPM comuns passaram a ser chamadas também de SPM
(Standard Page Mode).

Figura 11.36
Funcionamento da EDO DRAM.

O primeiro acesso a uma memória EDO é feito no mesmo tempo que em


uma memória FPM, mas a sua vantagem aparece nos acessos seguintes,
como ocorre nas transferências em Page Mode. A figura 36 mostra a
diferença entre uma memória FPM e uma EDO, ambas operando em Page
Mode. Nas memórais FPM, a descida do CAS ativa o dado, enquanto a sua
subida o desativa. Portanto, antes de fornecer a próxima coluna, é preciso
dar tempo para que o processador ou o chipset recebam os dados, para só
então levantar o CAS, para finalmente ativá-lo em seguida para a próxima
leitura. Nas memórias EDO, a subida do CAS não desativa o dado. Desta
forma pode ser dado início ao fornecimento da próxima coluna, ao mesmo
tempo em que o dado está presente no seu barramento. Somente quando o
CAS é novamente ativado é que o dado é desativado. De certa forma, a
EDO DRAM faz dois trabalhos em paralelo. Mantém os dados nas suas
saídas enquanto recebe o número da próxima coluna para acesso. Pelo fato
de estender o tempo durante o qual os dados ficam ativos, essas memórias
recebem o nome de Extended Data Out (EDO).

O ganho de velocidade não é excepcional, mas muito bem vindo. Se uma


FPM DRAM opera com a temporização 7-3-3-3, a EDO DRAM com células
idênticas opera com 7-2-2-2. Melhor ainda, como o último dado lido em um
ciclo fica disponível por mais tempo, o próximo ciclo também pode começar
mais cedo, portanto o período de 7 ciclos para o primeiro acesso pode ser
reduzido para 6 ciclos, resultando na temporização 6-2-2-2. Neste caso é um
ganho de desempenho de 33% em relação à FPM DRAM. Nas placas de
CPU este ajuste de temporização é feito através do CMOS Setup.
11-36 Hardware Total

Memórias EDO DRAM foram muito utilizadas entre 1995 e 1997, em placas
de CPU Pentium com barramento externo de 50, 60 e 66 MHz. Alguns
modelos mais velozes podiam operar com barramentos de 75 e 83 MHz em
placas para processadores Cyrix 6x86, mas muitas vezes o funcionamento era
instável. Somente com a chegada da nova geração de memórias (SDRAM)
tornou-se confiável o funcionamento com clock superiores a 66 MHz.

Módulos de memória EDO DRAM em geral apresentavam o


encapsulamento SIMM de 72 vias. Entretanto, SIMM/72 não é sinônimo de
EDO DRAM, já que podemos encontrar também módulos SIMM/72 com
memórais FPM, e alguns módulos DIMM/168 com memórais EDO DRAM,
apesar de raros.

As placas de CPU que suportavam memórias EDO DRAM em geral


suportavam também memórias FPM, o que possibilitou uma transição
tranqüila entre as duas tecnologias. Também era possível usar nessas placas,
ambos os tipos de memória ao mesmo tempo, desde que em bancos
diferentes.

Refresh
Como vimos, as células de DRAM, sejam elas do tipo normal, FPM, EDO,
SDRAM, DDR, RDRAM ou que usem qualquer outra tecnologia,
necessitam de refresh, ou seja, precisam ser lidas periodicamente, em
intervalos de alguns milisegundos, para que não percam seus dados. Ler
todas as células de um chip de DRAM seria uma operação bastante
demorada, mas felizmente essas leituras não precisam ser feitas célula por
célula, e sim, linha por linha. É fácil entender porque quando analisamos o
mecanismo de acesso às células da matriz.

Figura 11.37
Acesso a uma célula de memória.
Capítulo 11 - Memórias 11-37

Na figura 37 vemos o acesso à célula localizada na linha 4, coluna 6. Uma


leitura nesta célula servirá para fazer o seu refresh, mas para tornar a
operação de refresh mais eficiente, os circuitos que controlam a matriz fazem
a leitura simultânea de todas as células da linha selecionada. Todas são lidas
ao mesmo tempo, ou seja, todas as células da linha passam por um refresh,
mas os circuitos que controlam as colunas enviarão para o barramento de
dados, apenas o valor da célula desejada.

Fazer o refresh em toda a matriz de células consiste em acessar


seqüencialmente cada uma das suas linhas. Por isso nos ciclos de refresh não
é necessário especificar a coluna, apenas a linha. O ciclo de refresh também
é chamado de RAS Only.

Figura 11.38
Ciclo de refresh pelo método RAS Only.

Chips de memória DRAM mais modernos oferecem outros métodos de


refresh, mas o tradicional RAS Only sempre é suportado. Outro método
oferecido nas memórias modernas é o CBR (CAS-Before-RAS). Consiste em
aplicar simplesmente um sinal de CAS, seguido por um sinal RAS, ou seja,
no ordem inversa da utilizada nas operações normais. Esta condição fará
com que a memória utilize o endereço de linha presente em um contator
interno (Refresh Counter). O cliclo de refresh pelo método CBR, além de ser
mais curto, não necesita que seja fornecido um endereço para a memória, já
que ela irá gerar este endereço de linha internamente. Note que nem todos
os chips de DRAM oferecem este recurso.

Outro recurso ainda melhor oferecido em modelos mais novos de FPM


DRAM e EDO DRAM, e presente em todas as memórias mais novas
(SDRAM, DDR e RDRAM) é o Self Refresh. Essas memórias possuem um
contador interno para endereçar seqüencialmente todas as suas linhas, bem
como circuitos que realizam o refresh dessas linhas. Desta forma o
controlador de memória DRAM (faz parte do chipset) não precisa enviar à
memória, sinais de refresh.
11-38 Hardware Total

Nos manuais dos chips de DRAM encontramos sempre a indicação do


período de refresh (tREF, refresh period). Seu valor é dado em milésimos de
segundo. É o tempo máximo que as células podem suportar de forma
segura, sem perder os dados. A cada período de refresh, todas as linhas da
memória precisam ser lidas para que dados não sejam perdidos.

Memórias DRAM antigas apresentavam períodos de refresh de 2 ou 4 ms.


As primeiras versões do IBM PC, produzidas no início dos anos 80, usavam
memórias DRAM modelo 4116. Essas memórias tinham a organização de
16k x 1, portanto 8 delas formavam um banco de 16 kB, e 4 bancos
formavam 64 kB. Elas tinham um período de refresh de 2 ms, ou seja, a cada
2 milésimos de segundo, todas as suas linhas tinham que ser lidas. A matriz
de 16k células tem 128 linhas e 128 colunas (128 x 128 = 16.384). Portanto a
cada 2 milésimos de segundo tinham que ser feitas 128 operações de refresh.
O intervalo entre duas operações de refresh consecutivas deveria ser
portanto de:

2 ms  128 = 15,625 s

Como o IBM PC não tinha um controlador de refresh específico, era


utilizado o canal 0 do controlador de DMA (8237A DMA Controller) para
realizar leituras repetitivas, fazendo assim o refresh. Pulsos de clock a cada
15,625 s eram gerados pelo chip 8253 (programmable interval timer), que
também era responsável pela geração dos sons que iam para o PC Speaker.

O IBM PC XT já utilizava chips de DRAM mais modernos, como o 4164


(64kx1). Esses chips tinham matrizes de 256x256, duas vezes maiores, mas
seu período de refresh também era maior, com 4 ms. Desta forma os pulsos
de refresh a cada 15,625 s eram suficientes para o correto funcionamento
das memórias.

Nas placas de CPU atuais, o refresh não é mais feito por DMA, apesar dos
seus chipsets conterem circuitos compatíveis com o controlador 8237A,
porém é utilizado para outras funções. Sendo assim, o canal 0 de DMA está
livre para outras aplicações nos PCs modernos.

Memórias FPM antigas necessitavam de refresh externo. Modelos mais novos


de FPM DRAM e EDO DRAM eram oferecidos em versões com e sem self
refresh. As memórias mais novas operam exclusivamente com self refresh.
Capítulo 11 - Memórias 11-39
Um outro tipo de memória que também faz refresh interno é a chamada
pseudo static RAM. Essas memórias, além de fazerem o refresh, possuem
também circuitos internos que desmembram o endereço em linha e coluna,
e geram os sinais RAS e CAS. Externamente esses chips possuem sinais de
dados, endereços, chip enable (CE), write enable (WE) e output enable
(OE). Para todos os efeitos, comportam-se como RAMs estáticas. Note que as
atuais memórias DRAM fazem refresh interno mas seus sinais de controle
são típicos de memórias dinâmicas, dados, endereços divididos em linha e
coluna, RAS, CAS, write enable e output enable.

Porque a DRAM é mais lenta que a SRAM


É um erro clássico afirmar que o refresh é o culpado pela lentidão da
DRAM. É uma grande injustiça, pois o tempo perdido com o refresh não
chega a comprometer o desempenho do computador. No IBM PC e no PC
XT, as leituras da memória duravam cerca de 0,8 s, e ocorriam a cada
15,625 s. Essas leituras ocupavam portanto apenas 5% do tempo total da
memória, uma degradação bem pequena. Em um Pentium-200, com
barramento externo de 66 MHz, uma leitura de refresh demora cerca de 0,1
s, o que ocupa menos de 1% do tempo total, uma queda de desempenho
imperceptível. Também menor que 1% é a porção total do tempo que uma
DRAM moderna ocupa com o refresh. É portanto um erro técnico, e
também uma injustiça, afirmar que a DRAM é lenta porque necessita de
refresh.

A lentidão da DRAM é resultado de sua natureza capacitiva. Nas operações


de escrita, os capacitores precisam ser carregados ou descarregados para
armazenar os bits. As leituras, como já apresentamos, provocam alteração na
carga do capacitor selecionado, que precisa ser posteriormente carregado. As
cargas e descargas não são instantâneas, mas têm uma duração que depende
do valor do capacitor e da resistência elétrica percorrida pela corrente. As
RAMs estáticas podem operar de forma muito mais rápida porque não
precisam carregar e descarregar capacitores. Basta ligar os transistores e os
dados são recebidos ou armazenados de forma muito mais rápida que nas
DRAMs.

Comparando SRAM e DRAM


Já citamos algumas diferenças fundamentais entre a SRAM e a DRAM.
Vamos resumir essas características na tabela abaixo. Como mostra a tabela,
a DRAM leva vantagem em todos os pontos, exceto na velocidade. Esta
desvantagem é compensada com o uso de memória cache.
11-40 Hardware Total
SRAM DRAM
* Rápida Lenta
Baixa densidade * Alta densidade
Alto custo * Baixo custo
Alto consumo * Baixo consumo

A lentidão da DRAM, como já explicamos, é resultado da sua natureza


capacitiva. A alta densidade da DRAM é devida ao fato das suas células
serem mais simples. Note que apesar dos diagramas mostrarem a matriz de
células em pequeno tamanho em comparação com outros módulos, esta
matriz ocupa a maior parte da área do chip. Uma célula de DRAM tem
apenas um transistor e um pequeno capacitor. Uma célula de SRAM tem 6
transitores, ou então 4 transistores e 2 resistores. Portanto as células de
DRAM são de 3 a 4 vezes menores que as células de SRAM, ou seja, a
DRAM é mais densa, permite a construção de maior número de células por
unidade de área. A mesma tecnologia que permite produzir chips de SRAM
com 1 MB pode permitir produzir chips de DRAM com 4 MB.

Também como conseqüência das células da DRAM serem mais simples, seu
custo é menor. Lembre-se que os chips são produzidos em pastilhas
circulares de silício chamadas waffers). Quanto mais chips puderem ser
produzidos em cada waffer, menor será o custo de cada chip. Além disso o
processo de produção da DRAM é mais simples, pois utiliza menos camadas
que a SRAM.

Finalmente, o consumo de cada célula de DRAM é bem menor que das


células de SRAM. A maior parte da energia elétrica de um chip é consumida
quando seus transitores mudam de estado, entre condução e não condução.
Nas células de DRAM temos apenas um transitor trabalhando, contra 6 na
célula de SRAM. Além disso, mesmo quando uma célula está em repouso
(sem ser acessada), dois dos 6 transistores da SRAM estão operando mesmo
que consumindo baixa corrente. Na DRAM, as células em repouso ficam
com seus transitores cortados, sem consumir energia. Apanas para
exemplificar a diferença de consumo entre a SRAM e a DRAM, considere
os chips MT58L64L32P (SRAM, 256 kB) e MT48LC16M8 (DRAM, 4 MB),
ambos produzidos pela Micron Tecnhology utilizando tecnologias de
fabricação semelhantes, ambos operando a 100 MHz. Compare o consumo
dos dois chips:

Chip Capacidade Tensão Corrente Consumo Consumo por MB


SRAM 256 kB 3,3 V 225 mA 0,75 W 3 W/MB
MT58L64L32P
Capítulo 11 - Memórias 11-41
DRAM MT48L- 4 MB 3,3 V 140 mA 0,5 W 0,125 W/MB
C16M8

A mesma tecnologia que resultou em uma SRAM que consome 3 watts por
cada MB de memória, permite produzir memórias DRAM com consumo de
0,125 watts por MB, ou seja, um consumo 24 vezes menor!

Reconhecendo a diferença entre FPM DRAM e EDO DRAM


Nem sempre é fácil reconhecer à primeira vista, a difernça entre memórias
FPM e EDO. Se o módulo for do tipo SIMM/30 ou SIPP/30, é obviamente
do tipo FPM, pois quando as memórias EDO chegaram ao mercado, os
módulos de 30 vias já haviam caído em desuso. A confusão ocorre
basicamente com módulos SIMM/72 produzidos entre 1994 e 1997, comuns
em placas de CPU 386, 486 e nas primeiras placas de CPU Pentium. Placas
de CPU 386 não funcionavam com memórias EDO, e placas de CPU 486
também normalmente não, mas existem alguns modelos que suportam tanto
FPM quanto EDO. Já as primeiras placas de CPU Pentium com soquetes
SIMM/72 suportavam tanto memórias FPM quanto EDO. O BIOS dessas
placas era capaz de detectar o tipo de memória instalado em cada banco e
configura o chipset para acessos de acordo com o tipo detectado.

Figura 11.39
Alguns módulos apresentavam uma
etiqueta “EDO”.

Alguns módulos de EDO DRAM apresentam uma etiqueta indicadora


“EDO”, como na figura 39. Este é um indício para diferenciar memórias
EDO das memórias FPM, mas não nos deixa livres de falsificações, já que
qualquer revendedor inescrupuloso pode produzir etiquetas falsas.
Felizmente esta falsificação não é comum, já que as memórias EDO e FPM
têm preços similares.
11-42 Hardware Total
Em alguns casos é possível diferenciar entre FPM e EDO de acordo com a
numeração dos chips. Muitos fabricantes usarm para os chips FPM DRAM,
números terminandos com 0, enquanto os chips EDO têm seus números
terminados com 5. A tabela abaixo mostra os principais fabricantes e os
sufixos utilizados para cada tipo de DRAM:

Fabricante Inscrições nos Sigla Exemplos Diferença entre FPM e


Chips EDO
OKI MSM MSM51V17400B FPM termina com 0
MD MSM51V17405D EDO termina com 5 ou 8

Samsung KM KM48V8100C FPM termina com 0 ou 3


KM48V8104B EDO termina com 4 ou 5

Texas TMS TMS417400A FPM termina com 0


Instruments TMS416409A EDO termina com 9

Fujitsu MB MB8118160A FPM termina com 0


MB8118165A EDO termina com 5
Mitsubishi M5M M5M417800D FPM termina com 0
M5M4V17405C EDO termina com 5
LG GM GM71V65160C FPM termina com 0
Electronics GM71V65163C EDO termina com 3

Hyundai HY HY51V17800B FPM termina com 0


HY51V17804B EDO termina com 4

Siemens HYB HYB3166160AJ FPM termina com 0


HYB3164165AJ EDO termina com 5
IBM IBM IBM01164DOT3E FPM termina com 0
IBM0116165BJ3E EDO termina com 5

Micron MT MT4C1M16C3DJ Normalmente o 4º dígito


MT4LC1M16E5DJ antes do “-“ é “E” nas
memórias EDO.
Motorola MCM MCM218160B FPM termina com 0
MCM218165B EDO termina com 5

NEC NEC 4265160G5 FPM termina com 0


4264165G5 EDO termina com 5

NPNX NN NN51V17800BJ FPM termina com 0


NN51V17805BJ EDO termina com 5
Panasonic MN MN41V18160ASJ FPM termina com 0
MN41V18165ASJ EDO termina com 5
Toshiba TC TC5118180BJ FPM termina com 0
TC5165165AJ EDO termina com 5
Capítulo 11 - Memórias 11-43
Hitachi HM HM5165160A FPM termina com 0
HM5164165A EDO termina com 5

Note que os números citados, como 0 e 5 na maioria dos casos, são em geral
seguidos de letras. Essas letras são códigos dos fabricantes, e podem indicar
o encapsulamento, voltagem, faixa de temperatura e outras características.

Velocidade de memórias FPM e EDO


As memórias FPM e EDO, muito usadas nos PCs produzidos entre 1994 e
1997, apresentam em geral o encapsulamento SIMM/72, e são utilizadas aos
pares. O tempo de acesso dessas memórias é medido em ns (nano-
segundos). Em geral os tempos de acesso são de 50, 60, 70 e 80 ns, sendo
que as de 60 e 70 ns são as mais comuns. Os fabricantes utilizam ao lado do
número de cada chip, um indicador de tempo de acesso. Por exemplo, 60 ns
pode ser indicado como –60, 06, -06 ou similar. A figura 39 mostra chips de
um módulo SIMM/72, com tempo de acesso de 60 ns.

As marcações usadas pelos vários fabricantes, para memórias FPM e EDO,


são indicadas na tabela abaixo.

Tempo de acesso Marcações


80 ns -80, -8, -08, -X8
70 ns -70, -7, -07, -X7
60 ns -60, -6, -06, -X6
50 ns -50, -5, -05, -X5

Por exemplo, os chips MT4C4007JDJ-6, mostrados na figura 39, são de 60 ns.


Note que as marcações que indicamos dizem respeito a memórias FPM e
EDO, encontradas em módulos SIMM/72 (e também em SIMM/30).
Memórias SDRAM possuem marcações parecidas, mas os significados são
outros. Por exemplo, uma SDRAM com marcação –8 não é de 80 ns, e sim,
de 8 ns.

Se um módulo de memória é SIMM/30, então certamente é FPM. Se é um


módulo SIMM/72, então certamente é FPM ou EDO. Se o módulo é do tipo
DIMM/168, então provavelmente trata-se de uma SDRAM, mas existem
alguns raros casos de memórias FPM e EDO que usam o encapsulamento
DIMM/168.

EDO com encapsulamento DIMM/168


São bastante raras, mas existem algumas memórias EDO DRAM com
encapsulamento DIMM/168, apesar deste encapsulamento ser mais usado
11-44 Hardware Total
pela SDRAM. É fácil esclarecer a dúvida, basta procurar pelo chip de
EEPROM SPD (apresentado mais adiante neste capítulo). Módulos de
SDRAM possuem este chip, enquanto os raros módulos EDO DRAM com
encapsulamento DIMM/168 não o possuem.

DRAMs síncronas
Com placas de CPU operando com barramentos mais velozes que 66 MHz,
tornou-se necessário adotar novas tecnologias para acelerar a velocidade das
DRAMs, mesmo com as lentas células disponíveis. O chamado Page Mode,
usado por memórias FPM e EDO DRAM já aproveitavam o fato de posições
consecutivas de memória poderem ser acessadas de forma mais rápida, já
que todas compartilham a mesma linha na matriz de células. Sem a
necessidade de selecionar novamente a linha, bastava selecionar as colunas,
o que cortava o tempo de acesso praticamente pela metade para células
consecutivas. Memórias de 60 ns podiam então enviar dados em intervalos
de cerca de 30 ns em page mode. Ainda assim este tempo é muito longo.
Barramentos de 100 MHz exigem novos dados a cada 10 ns, e barramentos
de 133 MHz a cada 7,5 ns. O uso do page mode não é suficiente para
entregar dados nesta velocidade. Foi então que surgiram as DRAMs
síncronas (Synchronous DRAM, ou SDRAM), ideais para barramentos de 66
a 133 MHz, e alguns modelos chegando a 166 MHz. Para barramentos mais
velozes, como 200, 266 e até 400 MHz, foram criadas novas versões ainda
mais velozes, como a DDR SDRAM (Double Data Rate SDRAM) e a
RDRAM (Rambus DRAM).

SDRAM
Esta é a DRAM síncrona (Synchronous DRAM), muito utilizada nas placas
de CPU produzidas entre 1997 e 2001. A principal diferença em relação às
DRAMs dos tipos EDO e FPM é que seu funcionamento é sincronizado com
o do chipset (e normalmente também com o processador), através de um
clock. Por exemplo, em um processador com clock externo de 133 MHz, o
chipset também opera a 133 MHz, assim como a SDRAM. Existem
exceções, como processadores Athlon com clock externo de 200 MHz mas
com memórias operando com apenas 100 ou 133 MHz. De qualquer forma,
sempre existirá uma sincronização entre o chipset e a SDRAM.

A SDRAM é mais veloz que a EDO DRAM, é suportada por todas as placas
de CPU produzidas a partir de meados de 1997, e seus módulos usam o
encapsulamento DIMM/168, já mostrado no início deste capítulo.
Capítulo 11 - Memórias 11-45
Internamente não existe diferença entre as células de memória DRAM
comum, da FPM DRAM, da EDO DRAM e da SDRAM. A diferença está
na forma como os dados dessas células são acessados. Uma SDRAM realiza
suas transferências usando temporizações como x-1-1-1. O primeiro acesso é
o mais demorado, mas os acessos seguintes ocorrem em apenas um ciclo.
Essas memórias usam um velho truque para permitir acessos em um único
ciclo. Este truque é utilizado pelas placas de vídeo gráfico, desde os anos 80.
Dentro de um chip de memória SDRAM, existem 4 bancos de memória
independentes. Quando são acessadas, as células de mesmos endereços em
cada um dos 4 bancos internos do chip são acessadas. Terminado o primeiro
acesso (digamos que este primeiro acesso demore 5 ciclos, portanto a
memória estaria operando com a temporização 5-1-1-1), o dado do primeiro
banco poderá ser transmitido ao chipset e ao processador, e os três dados
dos outros três bancos poderão ser transmitidos imediatamente depois, sem
ter que esperar pelo seu tempo de acesso tradicional. A demora está em
chegar aos dados desejados. Uma vez acessados, podem ser rapidamente
transmitidos. Portanto, 4 circuitos lentos operando em conjunto, apresentam
o mesmo resultado de um circuito rápido.

*** 100%
***
Figura
11.40
Diagrama de um
chip SDRAM.

A figura 40 mostra o diagrama interno de uma SDRAM. Como vemos,


existem 4 matrizes de células, e cada uma delas com seus próprios circuitos
para selecionamento de linha e coluna e sense amplifiers. As 4 matrizes são
acessadas ao mesmo tempo, portanto uma vez que tenha sido feito o
primeiro (e mais demorado) acesso, os dados seguintes são transferidos mais
rapidamente, pois já foram acessados da segunda, terceira e quarta matriz.
Bastará apenas transferir os dados seqüencialmente, operação que pode ser
feita em alta velocidade.
11-46 Hardware Total
Se a idéia parece complicada, façamos uma comparação bem simples. Vá a
uma loja de suprimentos de informática e peça um cartucho de tinta preta
para a sua impressora. Quando o vendedor trouxer o cartucho, peça um
com tinta amarela. Quando trouxer o segundo cartucho, peça um de tinta
cyan, por último um de tinta magenta. Digamos que o vendedor tenha
demorado 20 segundos para buscar cada cartucho. Como os cartuchos de
todas as cores estão todos na mesma prateleira, seria mais rápido pedir os
quatro ao mesmo tempo. O vendedor demoraria os mesmos 20 segundos
para chegar ao primeiro cartucho, mas imediatamente poderia pegar os
outros três (já “acessados”), economizando bastante tempo.

Observe no diagrama da figura 40 que existe um bloco chamado Refresh


Counter. Este módulo está presente em todas as SDRAMs, e com ele o chip
é capaz de fazer self refresh, ou seja, o controlador de memória não precisa
mais enviar comandos de refresh para os chips.

Como vemos, a SDRAM não é um tipo de memória que usa uma nova
tecnologia de fabricação extremamente mais veloz. Apenas usa uma nova
forma de organizar as células de memória fazendo acessos simultâneos, para
que a transferência dos dados seja mais rápida. Truques semelhantes são
utilizados por memórias mais avançadas, como a DDR SDRAM e a
RDRAM, como veremos mais adiante.

Assim como as DRAMs convencionais, FPM e EDO, a SDRAM também


utiliza sinais de controle RAS, CAS, WE (Write Enable) e CS (Chip Select),
porém seu uso é diferente. As DRAMs anteriores à SDRAM são classificadas
como assíncronas. Seus sinais de controle são ativados da forma assíncrona,
ou seja, cada um tem um instante certo para ser ativado, mas esses instantes
têm liberdade para variar de acordo com o projeto. Já na SDRAM, esses
sinais de controle são sincronizados a partir de um clock. No início de cada
ciclo de acesso os sinais de controle já devem estar definidos de acordo com
o ciclo que vai ser realizado. Por exemplo, em comandos de leitura,
devemos ter no início do ciclo, CS=0, WE=1, RAS=0 e CAS=0. Nos
comandos de escrita devemos ter CS=0, WE=0, RAS=0 e CAS=0. De acordo
com a combinação formada pelos sinais CS, RAS, CAS, WE e DQM, temos
diversos comandos possíveis. A tabela da figura 41 mostra os comandos de
um típico chip SDRAM. Na tabela, “H” singlifica nível alto (bit 1), “L”
significa nível baixo (bit 0) e “X” significa “don’t care”, ou seja, tanto faz 0 ou
1. Note que as transferências da SDRAM são feitas por padrão no modo
burst. Para finalizar a transferência é preciso enviar ao chip um comando
burst terminate (CS=1, RAS=1, CAS=1 e WE=0).
Capítulo 11 - Memórias 11-47
Figura 11.41
Comandos de uma SDRAM.

Os comandos da SDRAM são ativados no início de cada ciclo, sempre no


instante da subida do sinal de clock (CLK). A figura 42 mostra a
temporização do comando de leitura, que de acordo com a tabela da figura
41, é obtido com CS=0, RAS=1, CAS=0 e WE=1.

*** 35% ***


Figura 11.42
Comando de leitura da SDRAM.

A SRAM usa uma forma diferente para endereçar linhas e colunas da sua
matriz que resulta em mais um significativo aumento de desempenho,
utilizando a natureza seqüencial dos acesso à memória. Um chip de memória
RAM é projetado para permitir acessos seguidos em posições aleatórias, mas
na prática, a maioria dos acessos são seqüenciais. Isto significa que quando é
acessada uma posição de memória, é muito grande a probabilidade de que
logo a seguir seja acessada a posição seguinte, ou uma outra posição
próxima. Possições próximas correspondem a células localizadas na mesma
linha. Se pudéssemos anotar os valores de linha e coluna acessados em uma
memória típica, veríamos que o número da coluna varia continuamente, mas
o número da linha é muito repetido. É portanto uma perda de tempo enviar
várias vezes o endereço da linha (acompanhado do sinal RAS).

A SDRAM aproveita esta natureza seqüencial da seguinte forma: utiliza um


comando chamado ACTIVE (CS=0, RAS=0, CAS=1 e WE=1) apenas para
especificar o número da linha desejada na matriz de células. A seguir podem
ser usados comandos de leitura e escrita na linha já selecionada, bastando
especificar apenas o número da coluna. Portanto, enquanto nas DRAMs
convencionais, FPM e EDO precisamos especificar linha-coluna-linha-coluna-
11-48 Hardware Total
linha-coluna-linha-coluna, na SRAM especificamos linha-coluna-coluna-
coluna. Apenas quando é necessário acessar uma outra linha é usado um
novo comando ACTIVE. Isto não é uma novidade tecnológica, e sim um
aperfeiçoamento de engenharia. Lembre-se que as memórias FPM e EDO
também tinham um recurso semelhante, que é o page mode, no qual é
indicada uma linha e os ciclos seguintes necessitam apenas da coluna.

Figura 11.43
Comando ACTIVE.

A figura 43 mostra o comando ACTIVE, usado para o selecionamento de


linha. No instante em que sobre o clock, o barramento de endereços da
memória deve ter recebido o endereço da linha desejada. Depois de um
tempo tRCD especificado pelo fabricante (varia de acordo com o chip de
memória), pode ser utilizado um comando de leitura e escrita. O tempo
tRCD é dado em nanossegundos, mas o tempo de espera deve ser definido
em número de clocks. Por exemplo, se em uma SDRAM operando a 133
MHz (período de 7,5 ns) tivermos tRCD=20 ns, serão necessários 3 períodos
de clock (3 x 7,5 ns = 22,5 ns) para que tRCD seja transcorrido. Nos ciclos
de espera o comando fornecido ao chip deve ser o NOP (No OPeration),
com CS=0, RAS=1, CAS=1 e WE=1.

Em uma placa de CPU, cabe ao processador indicar os endereços de


memória que deseja acessar. Cabe ao chipset (no qual está o controlador de
memória) decidir o instante correto de enviar um comando ACTIVE
quando é acessada uma linha diferente da atual.

Como vimos na figura 43, terminado o número de ciclos suficiente para


transcorrer tRCD, podemos utilizar comandos de leitura e escrita. A figura 44
mostra a temporização de um comando de leitura.
Capítulo 11 - Memórias 11-49
Figura 11.44
Comando de leitura com latência do CAS
igual a 2.

No instante em que sobe o clock (T0) deve ser indicado o endereço da


coluna e usado o comando de leitura (CS=0, RAS=1, CAS=0 e WE=1). A
partir daí transcorrerá um certo número de ciclos até que os dados sejam
fornecidos no barramento de dados (DQ). O número de ciclos transcorrido é
um parâmetro muito importante, chamado latência do CAS (CL). Em geral
as memórias trabalham com CL=2 ou CL=3. Na figura 44 temos CL=2. Os
fabricantes de memórias especificam os valores de CL que podem ser usados
com seus chips, em função da freqüência utilizada. A tabela abaixo mostra
os valores de CL que podem ser usados com cada clock, no chip
MT48L32M4A2, produzido nas versões de 7, 7.5 e 8 ns. É interessante
operar com CL=2, já que resulta em desempenho melhor que o obtido com
CL=3. Mas para operar com CL=2 a memória tem que ser suficiente rápida
(por exemplo, a versão –7 operando com 133 MHz, ou as duas outras
versões operando a 100 MHz).

Velocidade CL=2 CL=3


-7 Até 133 MHz Até 143 MHz
-75 Até 100 MHz Até 133 MHz
-8 Até 100 MHz Até 125 MHz

O valor de CL pode ser ajustado pelo CMOS Setup, de forma manual ou


então de forma automática. Para usar o ajuste automático basta programar o
item SDRAM timing com a opção by SPD. O SPD (Serial Presence Detect) é
uma pequena ROM de configuração existente nos módulos de SDRAM,
através da qual o BIOS pode identificar automaticamente as características
da memória.
11-50 Hardware Total
Figura 11.45
Leitura da SDRAM em modo burst.

Na maior parte do tempo, a SDRAM opera em modo burst, como mostra a


figura 45. Estando o endereço da linha previamente selecionado através do
comando ACTIVE e transcorrido tRCD, pode ser usado o comando de
leitura, com o fornecimento do endereço da coluna desejada. Transcorrido o
período de latência do CAS (no exemplo da figura 45, CL=2), começam a
ser enviados seqüencialmente os dados a partir da coluna especificada. A
menos que seja usado um comando BURST TERMINATE, os dados das
células seguintes serão automaticamente fornecidos. Ao contrário da EDO
DRAM e da FPM DRAM quando operam em page mode, não é necessário
fornecer os endereços das colunas. O barramento de endereços é ignorado,
e comandos NOP devem ser fornecidos à memória a cada ciclo. Note que
durante uma transferência em modo burst, é permitido especificar o
endereço de uma nova coluna, bastando usar um novo comando READ,
como também mostra a figura 41. Graças a este recurso, a SDRAM podem
operar em modo burst com células aleatórias dentro de uma mesma linha, e
não necessariamente consecutivas. Para isso basta usar vários comandos
READ consecutivos, cada um com o seu próprio endereço.

Como a SDRAM é tão rápida?


Quando as SDRAMs surgiram, foi um espanto geral. Que avanço
tecnológico permitiu de uma hora para outra, passar de memórias EDO com
60 ns de tempo de acesso, para memórais SDRAM com 10 ns de período de
clock? Não existe avanço tecnológico algum, e sim uma reengenharia na
forma como as memórais são construídas, utilizando o mesmo tipo de matriz
de células. Para acessar uma SDRAM é preciso usar antes o comando
ACTIVE, que em geral tem duração de 2 ou 3 ciclos. Só a partir daí podem
ser usadas leituras e escritas. A leitura, a operação predominante, só fornece
os dados após transcorrida a latência do CAS, que também dura mais 2 ou 3
ciclos. Portanto até a chegada do primeiro dado transcorrem entre 4 e 6
ciclos. Memórias de clock elevado (-10 ns, por exemplo) ao operarem com
clocks baixos podem usar latências menores. Em 66 MHz, 4 ciclos
correspondem a 60 ns. Em 100 MHz, 6 ciclos também são 60 ns. Portanto até
Capítulo 11 - Memórias 11-51
obter o dado desejado, transcorrem os mesmos 60 ns (em média) verificados
nas velhas memórias EDO e FPM. A vantagem da SDRAM aparece nas
transferências seguintes, quando o chip entra no modo burst. Sem dúvida a
SDRAM é uma excelente idéia, uma forma de conseguir velocidades bem
mais altas usando matrizes de células relativamente lentas. Artifícios
semelhantes permitiram a criação da DDR SDRAM e da RDRAM, com
velocidades ainda maiores.

PC66, PC100, PC133


Inicialmente surgiram chips de SDRAM com clocks de 66, 100 e 125 MHz.
Teoricamente eram destinados a operar com barramentos externos de 66,
100 e 125 MHz, respectivamente. Como existiam várias diferenças entre as
temporizações das várias versões de SDRAM de vários fabricantes, algumas
incompatibilidades passaram a ocorrer. Visando resolver esses problemas, a
Intel criou os padrões PC66 e PC100. São normas que definem todos os
parâmetros de tempo que as memórias deveriam obedecer para operar
seguramente a 66 e a 100 MHz, o que acabou com os problemas de
compatibilidade. Os módulos de 100 MHz já existentes no mercado não
atendiam plenamente às especificações do padrão PC100, por isso esses
módulos passaram a ser designados como PC66. Já os módulos de 125 MHz
existentes tinham temporizações compatíveis com o PC100, e passaram a ser
assim designados. Portanto um módulo com marcação de 10 ns ou 100 MHz
é PC66. Pode ser usado com barramentos externos de 66 MHz, e
provavelmente também a 75 ou 83 MHz, mas não a 100 MHz. Os módulos
com marcação de 8 ns ou 125 MHz são classificados como PC100.

Os primeiros módulos para 133 MHz já foram criados obedecendo ao


padrão PC133, portanto podem ser seguramente usados em barramentos de
133 MHz. Esses módulos têm tempos de acesso de 7,5 ns ou menores.

O clock da SDRAM e a latência do CAS


Como vimos, as memórias SDRAM podem ser classificadas de acordo com
o seu clock, ou de acordo com o tempo de acesso. Ambas as classificações
são equivalentes. Por exemplo, um clock de 125 MHz resulta em um período
de 8 ns, portanto o fabricante pode utilizar qualquer um dos indicadores
para a velocidade: -125 ou –8, o que significa 125 MHz e 8 ns,
respectivamente. A tabela abaixo mostra a correspondência entre os clocks e
os tempos de acesso.

Clock Ciclo
66 MHz 15 ns
83 MHz 12 ns
11-52 Hardware Total
100 MHz 10 ns
125 MHz 8 ns
133 MHz 7,5 ns
143 MHz 7 ns
166 MHz 6 ns

Ocorre que, na prática, nem sempre os clocks máximos indicados pelos


fabricantes das memórias podem ser utilizados. O problema não está
relacionado a enviar um dado a cada período de clock, e sim, ao longo
tempo necessário para enviar o primeiro dado. As primeiras memórias
SDRAM (não existiam na época os padrões PC66 e PC100) operavam com
temporizações como 7-1-1-1, 6-1-1-1 e 5-1-1-1, ou seja, precisavam de um
tempo mais longo para encontrar o primeiro dado de um grupo, depois
enviavam os dados seguintes na sua velocidade máxima, com um dado a
cada ciclo de clock. As memórias atuais são ainda mais rápidas, e podem
operar nos modos 3-1-1-1 e 2-1-1-1. Esses modos são diferenciados por um
parâmetro chamado CAS Latency, e está relacionado ao tempo transcorrido
entre o início do ciclo e o sinal de CAS. São indicados como “CL=3” e
“CL=2”. A maioria das memórias consegue operar com facilidade usando
CL=3, mas nem todas podem operar com CL=2. Um módulo de memória
com marcação –75 (133 MHz) pode conseguir operar a 133 MHz usando
CL=3, mas pode não conseguir operar com CL=2, sendo necessário utilizá-lo
com clocks mais baixos. Tome por exemplo as informações apresentadas
pela Mícron sobre seus chips com ciclos de 7 e 7,5 ns:

Marcação Ao usar o clock Precisa de Latência do Classificação


CAS de...
-75 66 MHz 2 PC66
-75 100 MHz 2 PC100
-75 133 MHz 3 PC133
-7 133 MHz 2 PC133
-7 143 MHz 3

O chip de marcação –75 opera com ciclos de 7,5 ns, ou 133 MHz. Esta
memória pode ser instalada em placas que exijam o funcionamento externo
a 66, 100 e 133 MHz, entretanto, para 66 e 100 MHz pode utilizar CL=2
(resultando em temporizações 2-1-1-1). Estaria assim atendendo aos requisitos
dos padrões PC66 e PC100. Para operar em placas com clock externo de 133
MHz, precisaria utilizar CL=3, operando então com a temporização 3-1-1-1,
ainda assim atendendo à especificação PC133. O ideal entretanto é utilizar a
temporização 2-1-1-1, obtida com CL=2. Segundo este fabricante, isto é
possível com os seus chips de marcação –7. Esses chips podem operar ainda
com o clock máximo de 143 MHz, porém usando CL=3. Note que essas
Capítulo 11 - Memórias 11-53
regras não são gerais, sempre é preciso confirmar no manual do fabricante,
qual é o CL que pode ser usado (2 ou 3) para cada clock. De um modo
geral, para fazer um chip de SDRAM operar com a sua máxima freqüência é
preciso usar CL=3.

Muitas placas de CPU possuem no CMOS Setup, especificamente na seção


Advanced Chipset Setup, um item para indicar a latência do CAS,
oferecendo as opções CL=2 e CL=3. Isto permite ao usuário fazer um
pequeno “envenenamento”, utilizando memórias mais rápidas que o
necessário e programando CL=2. A configuração mais segura entretanto é
utilizar o SPD (Serial Presence Detect). Esta identificação das memórias
SDRAM informa ao BIOS os seus parâmetros temporais, e assim pode ser
feita automaticamente a programação do CL e outros parâmetros de modo a
obter o melhor desempenho e com segurança.

De um modo geral, memórias SDRAM de 10 ns (100 MHz) podem operar a


66 MHz com CL=2. Essas memórias recebem a classificação PC66.
Memórias de 8 ns (125 MHz) normalmente podem operar 100 MHz (padrão
PC100) e CL=2, mas alguns chips requerem CL=3. Memórias de 7.5 ns (133
MHz) em geral funcionam a 133 MHz (PC133) com CL=3. Para utilizar 133
MHz com CL=2, em geral é preciso que as memórias sejam mais rápidas,
como –7 ou –6 (143 MHz e 166 MHz, respectivamente). Use a tabela abaixo
como referência:

Memórias de.... Podem operar com... Usando CL


166 MHz (6 ns) 133 MHz CL=2
100 MHz CL=2
66 MHz CL=2
143 MHz (7 ns) 133 MHz CL=2
100 MHz CL=2
66 MHz CL=2
133 MHz (7,5 ns) 133 MHz CL=3
100 MHz CL=2
66 MHz CL=2
125 MHz (8 ns) 100 MHz CL=2
66 MHz CL=2
100 MHz (10 ns) 100 MHz CL=3
66 MHz CL=2

Note que esta tabela tem a intenção de ajudar, mas dependendo do chip de
memória utilizado, pode ser necessário usar CL=3 em situações nas quais a
tabela recomenda CL=2. A palavra final é a do fabricante das memórias. Em
11-54 Hardware Total
caso de dúvida, usar CL=3 sempre funciona quando o clock da memória é
igual ou superior ao clock da placa de CPU.

*** 75%
***
Figura
11.46
Acessos de leitura
com CL=1, CL=2 e
CL=3. para
memórias Micro
MT48LC1M16A1

A figura 46 mostra as operações de leitura em uma SDRAM modelo


MT48LC1M16A1, produzida pela Micron, usando CL=1, CL=2 e CL=3. Os
dados não devem ser generalizados para qualquer chip de SDRAM, são
específicos para o chip citado. Na prática, CL=1 não é utilizado, pois as
memórias SDRAM não podem operar com freqüências elevadas neste
modo. Com CL=1, o dado (DQ) é acessado depois de apenas 1 ciclo de
clock. Note na figura que com CL=1, o comando de leitura (READ) foi dado
a subida do pulso de clock T0, e o dado (DQ) ficou pronto um ciclo depois,
ou seja, na subida de T1. Com CL=2, o dado está pronto depois de dois
ciclos de clock, e com CL=3, pronto com 3 ciclos de clock. Memórias
operando com CL=2 e CL=3 operam com temporizações 2-1-1-1 e 3-1-1-1,
respectivamente. A figura mostra ainda uma pequena tabela indicando a
freqüência máxima que pode ser usada com CL=1, CL=2 e CL=3. A tabela
mostra que usando CL=1, memórias –6 (166 MHz) podem operar no
máximo a 50 MHz, memórias –7 (143 MHz) podem operar no máximo a 40
MHz, e memórias –8 (125 MHz) podem operar no máximo a 40 MHz,
valores muito baixos. Já com CL=2 essas memórias operam de forma mais
confortável: 125 MHz, 100 MHz e 77 MHz, respectivamente. Apenas com
CL=3 essas memórias conseguem operar com suas freqüências máximas.

DDR SDRAM
Apesar de envolver um grande esforço de engenharia na sua implementação,
a idéia da DDR (Double Data Rate) SDRAM é bastante simples. Ao invés
de uma única SDRAM, coloque duas iguais, lado a lado. Quando uma for
acessada, a outra também será. Cada SDRAM poderá entregar um dado a
Capítulo 11 - Memórias 11-55
cada pulso de clock. Como temos duas memórias “em paralelo”, o conjunto
poderá entregar dois dados a cada pulso de clock. O resultado é uma taxa
de transferência duas vezes maior. Agora, ao invés de utilizar dois chips
SDRAM iguais, lado a lado, constrói-se um único chip com os circuitos
equivalentes aos das duas SDRAMs, e adiciona-se a ele, os circuitos
necessários para fazer a transmissão dupla a cada pulso de clock. O chip
resultante é uma DDR SDRAM.

*** 47% ***


Figura 11.47
Operação da SDRAM e da DDR SDRAM.

A figura 46 mostra a diferença, do ponto de vista externo, entre a SDRAM e


a DDR SDRAM. Os períodos de clock são representados por T0, T1, T2 e
T3. A SDRAM fornece um dado a cada período de clock, e o instante da
subida deste clock (transição de “0” para “1”) indica que o dado está pronto
para ser lido. Na DDR SDRAM, utilizando períodos iguais, cada transição
de subida ou de descida indica a presença de um dado pronto. Portanto são
dois dados a cada clock.

As memórias DDR SDRAM recebem nomes de acordo com o clock que


trabalham, e também com a taxa de transferência. Por exemplo, uma DDR
SDRAM que opera com 100 MHz realiza 200 milhões de transferências por
segundo, portanto é chamada de DDR200. Como se tratam de transferências
de 64 bits (8 bytes), os 200 milhões de transferências resultam em 1,6 bilhões
de bytes por segundo. Aqui comete-se mais uma vez, uma imprecisão típica
de fabricantes de memórias e de discos rígidos: confundir bilhão com giga.
Como sabemos, 1 giga vale 1024 x 1024 x 1024, ou seja, 1.073,741.824.
Entretanto, para não criar confusão, consideraremos nesta discussão sobre
taxas de transferência de memórias, um “mega” como sendo igual a um
milhão, e 1 “giga” como sendo 1 bilhão. Portanto diríamos que a taxa de
transferência de uma DDR200 é 1,6 GB/s. Devido a esta taxa, essas
memórias também são chamadas de PC1600.

A tabela que se segue mostra os diversos tipos de DDR, com seus clocks e
suas taxas de transferência.
11-56 Hardware Total

Tipo Clock Taxa de transferência


DDR200 ou PC1600 100 MHz 1,6 GB/s
DDR266 ou PC2100 133 MHz 2,1 GB/s
DDR300 ou PC2400 150 MHz 2,4 GB/s
DDR333 ou PC2700 167 MHz 2,7 GB/s
DDR400 ou PC3200 200 MHz 3,2 GB/s
DDR800 ou PC6400 400 MHz 6,4 GB/s

OBS: Não confunda os termos PC66, PC100 e PC133, usados pela SDRAM, com os termos
PC1600 e superiores, usados pela DDR SDRAM. Na DDR SDRAM, o número representa a
taxa de transferência máxima, medida em MB/s, enquanto na SDRAM, o número indica a
freqüência de operação. Uma SDRAM PC100, por exemplo, fornece 800 MB/s (já que
trabalha com 64 bits = 8 bytes em cada acesso), portanto tem a metade do desempenho de
uma DDR SDRAM padrão PC1600.

A figura 48 mostra mais uma vez a diferença entre um módulo DIMM/168,


usado pelas memórias SDRAM, e um módulo DIMM/184, usado pelas
memórias DDR SDRAM.

Figura 11.48
Módulos DIMM/168 (SDRAM) e
DIMM/184 (DDR SDRAM).

A figura 49 mostra o diagrama interno de um chip de DDR SDRAM. É


bastante parecido com o de uma SDRAM, e a proncipal diferença fica por
conta dos acessos às matrizes de células, que são feitas com um número de
bits simultâneos duas vezes maior que na SDRAM.
Capítulo 11 - Memórias 11-57
***
100%
***
Figura
11.49
Diagrama de
um chip DDR
SDRAM.

A outra grande diferença está nos estágios de entrada e saída. Observe no


exemplo da figura 50 que sempre chegam 8 bits da matriz de células.
Circuitos multiplexadores selecionam ora o primeiro grupo de 4 bits, ora o
segundo grupo de 4 bits. Data forma é feita a interface com um barramento
de dados de 4 bits. Em todos os chips de DDR SDRAM, o número de bits
que chegam das matrizes de células é duas vezes maior que o número de bits
do seu barramento de dados.

Figura 11.50
Para o chip DDR SDRAM fornecer 4 bits, a
matriz de células tem que fornecer 8 bits.

Chips de DDR SDRAM operam com dois sinais de clock (na figura 49 são
CK e CK#). São clocks complementares, ou seja, quando um deles está em
nível 1, o outro está em nível 0, e vice-versa. Os comandos da DDR SDRAM
são semelhantes aos da SDRAM, e são sempre fornecidos na subida do
clock CK. Note que apenas a taxa de dados é dobrada. Os comandos são
enviados aos chips com taxa normal, ou seja, a taxa dos comandos não é
dobrada. Isto pode ser visto claramente na figura 51, que mostra um
comando de leitura em modo burst.
11-58 Hardware Total
*** 75%
***
Figura
11.51
Leitura de uma DDR
SDRAM em modo
burst.

Memórias DDR SDRAM podem utilizar latências de CAS (CL) iguais a 2 ou


2,5. Significa que os dados estarão disponíveis 2 ciclos, ou então dois ciclos e
meio após o envio do comando de leitura. Note que figura 51 que os
comandos são dados sempre na subida do clock CK. Terminado o período
de latência do CAS, os dados começam a ser enviados, tanto na subida de
CK quanto na subida de CK#, o que resulta em taxa de dados dupla.
Durante uma transferência em burst, a memória pode receber um novo
comando de leitura, com a especificação de uma nova coluna. Um sinal
DQS (data strobe) é usado para sincronizar os dados. Nas operações de
leitura, o sinal DQS irá variar, e suas subidas e descidas indicarão os
instantes em que os bits lidos estão disponiveis. Este sinal é usado pelo
chipset para que possa receber os dados no momento correto.

RDRAM
A RDRAM utiliza um processo similar ao da SDRAM para aumentar a taxa
de transferência. Como vimos, cada chip SDRAM possui no seu interior,
quatro bancos que são acessados simultaneamente, e depois transferidos
rapidamente para o chipset e para o processador. Nas memórias RDRAM, é
usado um número ainda maior de bancos para obter uma taxa de
transferência ainda mais elevada. São 16 ou 32 bancos, dependendo dos
chips. As células de memória usadas nesses bancos, assim como ocorre nos
demais tipos de DRAM apresentados aqui, não são muito diferentes das
células usadas nas DRAMs convencionais, exceto pela sua voltagem e por
uma pequena redução no tempo de acesso. Cada uma dessas células são tão
lentas quanto as encontradas nas memórias FPM DRAM de 60 ns, por
exemplo, usadas em meados dos anos 90. A grande diferença é que essas
memórias modernas utilizam muitas células trabalhando em paralelo,
visando obter mais bits de uma só vez, e assim transferi-los mais rapidamente
para o processador.

Um típico chip de memória RDRAM opera com dados de 16 bits. Também


são comuns os chips de 18 bits. Os dois bits adicionais são usados como
Capítulo 11 - Memórias 11-59
paridade, e servem para implementar mecanismos de detecção e correção de
erros, como mostraremos mais adiante neste capítulo. Para simplificar a
discussão, consideremos apenas os chips de 16 bits.

A maioria das DRAMs atuais operam com 300 ou 400 MHz. Alguns
fabricantes oferecem freqüências intermediárias, como 333 ou 350 MHz.
Também para simplificar nossa explicação, consideremos os chips de 400
MHz. Assim como a DDR SDRAM, a RDRAM também realiza duas
transferências por cada ciclo de clock, portanto tudo se passa como se a
operação fosse em 800 MHz. Esses 800 milhões de transferências por
segundo, sendo cada uma de 16 bits (2 bytes), resultam na taxa de
transferência de 1,6 GB/s – aqui estamos fazendo como os fabricantes,
considerando por simplicidade, 1 GB como sendo igual a 1 bilhão de bytes.
Note que esta taxa é bem maior que a exigida pela maioria dos
processadores:

Processador bits clock Banda


Pentium III 64 100 MHz 800 MB/s
Pentium III B 64 133 MHz 1,07 GB/s
Athlon 64 200 MHz 1,6 GB/s
Athlon 64 266 MHz 2,13 GB/s
Pentium 4 64 400 MHz 3,2 GB/s

Um único canal de memória RDRAM oferece uma taxa de transferência


suficiente para atender à maioria dos processadores, exceto os mais
avançados. O Pentium 4, por exemplo, com seu barramento de 400 MHz e
64 bits, exige 3,2 GB/s, o dobro da taxa de transferência da RDRAM.
Portanto nas placas de CPU para Pentium 4, são utilizados dois canais de
RDRAM com 1,6 GB/s cada um, totalizando os 3,2 GB/s necessários. Um
Athlon com barramento externo de 200 MHz poderia ser plenamente
atendido por um canal RDRAM de 1,6 GB/s, mas o mesmo não ocorre com
as novas versões, que usam o clock externo de 266 MHz. Seriam necessários
dois canais de RDRAM, ou então o uso de uma RDRAM mais veloz, ou
então utilizar RDRAMs de 532 MHz, ao invés dos modelos de 400 MHz. Na
verdade não é o que ocorre. A AMD é uma das responsáveis pelo
desenvolvimento da DDR SDRAM, e essas são as memórias usadas nas
placas de CPU para os modelos mais avançados do Athlon.
11-60 Hardware Total
Figura 11.52
O Pentium 4 operando com RDRAM
necessita de dois canais.

Os processadores modernos operam com 64 bits simultâneos, enquanto a


RDRAM fornece apenas 16. Cabe ao chipset, que faz a ligação entre o
processador e a memória, obter 4 grupos consecutivos de 16 bits vindos da
RDRAM, formando os 64 bits exigidos pelo processador. Nas placas de CPU
para Pentium 4, são dois canais de 16 bits, ambos a 800 MHz (lembre-se que
são na verdade 400 MHz, mas com duas transferências por cada clock).
Juntos formam 32 bits por 800 MHz. O chipset faz a composição para 64 bits
e 400 MHz, exatamente como exige o Pentium 4.

A incrível velocidade de 800 MHz não existe entre as células de memória da


RDRAM. Esta velocidade existe apenas nos circuitos de entrada e saída.
Para fornecer nas suas saídas, 16 bits a 800 MHz, os circuitos internos da
RDRAM buscam 128 bits simultâneos (8 vezes mais), na taxa de 100 MHz.
Esses 128 bits que chegam aos circuitos de saída a cada 10 ns (100 MHz) são
transferidos em grupos de 16, tomando 1.25 ns para cada grupo (800 MHz).
Portanto a RDRAM é rápida apenas do ponto de vista externo.
Internamente é uma memória mais lenta, de apenas 100 MHz, mas que
fornece um número de bits simultâneos muito grande. A própria operação
interna em 100 MHz (ciclos de 10 ns) também é uma dificuldade para as
células de memória, que necessitam de no mínimo 60 ns para encontrar os
dados. Este aumento é por sua vez feito pelo acesso simultâneo a um grande
número de bits. Os bancos de células existentes no interior da DRAM
operam na verdade com clock de 12,5 MHz (ciclo de 80 ns), mas fornecem
1024 bits (128 bytes) simultâneos. Note que 128 bytes x 12,5 MHz são
exatamente 1,6 GB/s. Essas células de memória operam portanto em uma
freqüência baixa, mas com um elevado número de bits simultâneos, que
uma vez acessados, são transmitidos em altíssima velocidade, em grupos de
16.

É muito difícil tecnologicamente, fazer as células de DRAM serem mais


rápidas. Veja a evolução nos seus tempos de acesso ao longo das últimas
décadas:
Capítulo 11 - Memórias 11-61
Ano Tempo de acesso Bits do barramento Processador
1980 250 ns 8 bits 5 MHz
1985 150 ns 16 bits 12 MHz
1990 100 ns 32 bits 25 MHz
1995 60 ns 64 bits 100 MHz
2000 50 ns 64 bits 1000 MHz

Neste período de 20 anos, as memórias tornaram-se 5 vezes mais rápidas,


enquanto o clock dos processadores aumentou 200 vezes. Para compensar
esta desigualdade, os processadores passaram a utilizar barramentos com
mais bits. Um barramento de 64 bits com memórias de 50 ns é
aproximadamente 40 vezes mais rápido que um barramento de 8 bits e 250
ns. Ainda assim este aumento de 40 vezes não aumentou tanto quanto o
clock dos processadores. A situação é ainda pior quando consideramos que
o aumento do desempenho dos processadores foi muito maior que o simples
aumento de clock. Uma forma de solucionar o problema seria aumentar
mais ainda a largura dos barramentos, passando a 128 ou 256 bits, mas isto
tornaria os projetos de placas extremamente complexo devido ao grande
número de trilhas de circuito. A solução mais simples e que foi realmente
adotada, foi aumentar o número de bits do barramento interno das
memórias. A RDRAM, por exemplo, busca 1024 bits simultâneos. Uma vez
acessados, esses bits são transmitidos em alta velocidade, por um barramento
externo que continua com 64 bits, porém com clock elevadíssimo.

Figura 11.53
Estrutura interna de uma RDRAM.

A figura 53 mostra a estrutura interna de um chip de RDRAM. A parte mais


importante, e que ocupa a maior parte dos circuitos, são os bancos de
DRAM em seu interior. Dependendo do chip, podem ser 16 ou 32 bancos.
11-62 Hardware Total
Esses bancos fazem acessos simultâneos a grupos de 1024 bits a cada período
de 80 ns, enviando-os às saídas em grupos de 128 bits a cada 10 ns, que por
sua vez são enviados para o barramento externo, em grupos de 16 bits a
cada 1,25 ns.

SPD – Serial Presence Detect


Este é um recurso que possibilita ao BIOS identificar corretamente as
características dos módulos de memória, e desta forma configurar o chipset
para realizar o acesso da forma mais eficiente. Foi introduzido nos módulos
de memória SDRAM e mantido nos módulos de DDR SDRAM e RDRAM.
É implementado através de um minúsculo chip de memória EEPROM
existente nos módulos, onde estão armazenadas todas as suas características.
Normalmente este chip tem 8 terminais e fica localizado na parte direita do
módulo, como mostra a figura 54.

Figura 11.54
O chip SPD de um módulo de SDRAM.

Antes de existir o SPD, o BIOS precisava determinar através de contagem, a


quantidade de memória instalada. Vários parâmetros relacionados com a
temporização de acesso às memórias deviam ser obrigatoriamente
programados no BIOS. Como existem módulos com características bem
diferentes, os BIOS precisavam utilizar temporizações longas, compatíveis
com maior variedade de módulos, e desta forma o desempenho não era
otimizado. O usuário mais experiente tinha que ajustar manualmente as
temporizações, visando obter maior desempenho.

Com as memórias atuais, suas características são corretamente detectadas


através do SPD, e o BIOS pode programar o chipset para obter o máximo
desempenho possível para as memórias instaladas. A seguir apresentamos
alguns dos diversos parâmetros armazenados na EEPROM SPD:
Capítulo 11 - Memórias 11-63
Alguns parâmetros armazenados
Capacidade do módulo
Número de bits
Tempo de acesso
Tipo da memória: SDRAM, DDR SDRAM, RDRAM
Número de bancos
Voltagem

O conteúdo completo de uma EEPROM SPD pode ser lido com o programa
HWINFO, obtido em www.hwinfo.com.

Figura 11.55
Obtendo o conteúdo da SPD EEPROM
com o programa HWINFO.

Escolhendo a DDR SDRAM correta


A DDR SDRAM é um produto bastante recente, começou a ser produzida
em alta escala no ano 2000. Sendo um produto novo, maiores são as chances
de ocorrerem incompatibilidades, já que nem sempre todos os fabricantes
seguem os mesmos padrões. Vamos então esclarecer os principais pontos.

Módulos DDR Registered e Unbuffered


Um fato importante deve ser conhecido sobre as memórias DDR. Existem
duas categorias:

1) Registered
2) Unregistered ou Unbuffered.

Os fabricantes de memórias normalmente produzem ambos os tipos. O


segundo é mais barato e mais indicado para PCs comuns. O tipo registered é
mais caro, mas tem a vantagem de poder ser instalado em maiores
quantidades, sendo ideal para servidores. Cada módulo registered consome
menos corrente nas suas entradas, portanto um mesmo chipset pode ser
ligado a um número maior de módulos, o que resulta em maior quantidade
de memória. O próprio chipset AMD 760, primeiro a operar com DDR,
11-64 Hardware Total
pode controlar o máximo de 2 GB de DDR tipo unbuffered, ou até 4 GB do
tipo registered. Placas de CPU que suportam memórias DDR possuem em
geral um jumper para a indicação do tipo de DDR. É o caso da placa de
CPU 7DXC, produzida pela Gigabyte (figura 56).

Figura 11.56
Jumper para indicar o tipo de DDR SDRAM
(Registered / Unbuffered).

É fácil identificar a diferença entre memórias DDR nas versões Registered e


Unbuffered. A diferença está mostrada na figura 57. Ambos utilizam os chips
de memória similares, mas o módulo Registered possui chips adicionais
localizados entre o conector e os chips de memória. Esses chips são os
chamados Registers (registradores).

Figura 11.57
Módulos de DDR SDRAM DIMM/184 nas
versões Unbuffered e Registered.

OBS: A mesma regra é válida também para memórias SRAM. Os módulos SRAM registered
possuem chips adicionais (registradores), como mostra a figura 57.

Voltagem da DDR SDRAM


Assim como as memórias SDRAM usadas na maioria dos PCs operam com
3,3 volts, as memórias DDR SDRAM mais usadas operam com 2,5 volts, mas
Capítulo 11 - Memórias 11-65
existem ainda as versões de 1,8 volts, ainda pouco utilizadas. Existem
diferenças no soquete e nos módulos, que impedem o uso de módulos de 1,8
volts em soquetes de 2,5 volts, e vice-versa. A diferença fica por conta do
posicionamento do chanfro do soquete. A figura 58 mostra os chanfros para
os atuais módulos de 2,5 volts (chanfro à esquerda) e para as futuras
memórias de 1.8 volts (chanfro no centro). Existe ainda uma posição
reservada para uso futuro (chanfro à direita), que poderá ser usada com um
eventual novo padrão de voltagem.

Figura 11.58
O chanfro indica a voltagem do módulo
de memória DDR.

Velocidade da DDR SDRAM


O selecionamento da DDR SDRAM começa pelo seu clock, de acordo com
o apresentado na tabela abaixo. Note que as denominações DDRxxx são
adotadas principalmente pelos chips de memória, enquanto nomenclaturas
como PCXXXX (PC1600, PC2100, etc.) são usadas para designar módulo. O
correto portanto seria dizer, por exemplo, que “um módulo de DDR PC1600
utiliza chips DDR200”.

Tipo Clock Taxa de transferência


DDR200 / PC1600 100 MHz 1,6 GB/s
DDR266 / PC2100 133 MHz 2,1 GB/s
DDR300 / PC2400 150 MHz 2,4 GB/s
DDR333 / PC2700 167 MHz 2,7 GB/s
DDR400 / PC3200 200 MHz 3,2 GB/s
DDR800 / PC6400 400 MHz 6,4 GB/s

Como já explicamos para a SDRAM, diferentes módulos podem operar com


latência do CAS com valores 2 ou 3 (CL=2 / CL=3). Duas memórias
SDRAM PC133 podem operar com 133 MHz, porém uma com CL=2 e
outra com CL=3. As memórias com menor ciclo têm maiores chances de
operar com CL=2, o que resulta em melhor desempenho. Por exemplo, um
certo módulo SDRAM com ciclo de 7 ns pode ser capaz de operar com 133
MHz e CL=2, enquanto outro de 7,5 ns pode operar com os mesmos 133
MHz, mas com CL=3.

Memórias DDR SDRAM também podem utilizar diferentes latências do


CAS. As versões disponíveis no mercado devem operar com CL=2 ou
11-66 Hardware Total
CL=2,5. Daí surgem as versões DDR266A e DDR266B. Os chips
classificados como DDR266A podem operar com CL=2, enquanto os do tipo
DDR266B operam com CL=2,5. As placas de CPU que usam este tipo de
memória podem ser configuradas de forma automática, na qual o CL é
programado de acordo com as informações na EEPROM SPD (Serial
Presence Detect), ou então manualmente. A figura 59 mostra esta opção no
CMOS Setup de uma placa de CPU Gigabyte 7DX, equipada com DDR
SDRAM.

Figura 11.59
Indicando manualmente a latência do CAS
de uma DDR SDRAM no CMOS Setup.

No comércio encontramos módulos DDR SDRAM apenas com as


indicações PC1600 (DDR200) ou PC2100 (DDR266). Apenas com essas
informações não podemos saber se o chip é capaz de operar com CL=2
(melhor) ou CL=2,5 (pior). Isto não chega a dificultar a instalação, pois
usando no CMOS Setup a configuração automática via SPD, os parâmetros
corretos são automaticamente programados. Para checar o valor de CL
permitido antes de comprar um módulo DDR, teríamos que anotar o nome
e o fabricante dos seus chips, obter pela Internet o manual desses chips de
memória e finalmente ter acesso a informações como a da figura 60. Neste
exemplo, vemos que os chips MT46V16M8TG, produzidos pela Mícron, são
produzidos nas versões –75 e –10 (7,5 ns e 10 ns). Esses chips podem operar
com CL=2 em 133 MHz (DDR266A) e 100 MHz. Podem ainda operar com
CL=2,5 em 150 MHz (DDR300) e 133 MHz (DDR266B).

Figura 11.60
Os fabricantes de DDR SDRAM indicam os
valores de CL que podem ser utilizados
com seus chips.

Escolhendo a RDRAM correta


Os módulos de RDRAM são classificados de acordo com a velocidade,
número de bits e tempo de acesso:
Capítulo 11 - Memórias 11-67
Velocidade PC800, PC700, PC600
Numero de bits 16 ou 18
Tempo de acesso 40 a 55 ns

Os módulos de 18 bits são usados em sistemas que operam com código de


correção e detecção de erros (ECC). Os módulos de 16 bits são um pouco
mais baratos e não utilizam este recurso. As velocidades estão relacionadas
com a taxa de transferência:

PC600 1,2 GB/s


PC700 1,4 GB/s
PC800 1,6 GB/s

O tempo de acesso é outro fator importante. Assim como ocorre com as


memórias SDRAM e DDR SDRAM, as memórias RDRAM necessitam de
um pequeno tempo (similar à latência do CAS) antes que comecem a
tranferir dados no modo síncrono. Conforme abordamos, as memórias
RDRAM utilizam no seu interior, células de DRAM comuns, lentas como
todas as memórias deste tipo. O único diferencial é que fazem acesso
simultâneo a um elevado número de bits, que uma vez acessados, podem ser
transferidos em alta velocidade. As memórias RDRAM são portanto
classificadas de acordo com o seu tempo de acesso, que é o tempo
necessário para que este grande número de bits sejam endereçados,
acessados e estejam prontos para a transferência. Os fabricantes indicam em
geral nos módulos de RDRAM, a taxa de transferência e o tempo de acesso.
A figura 61 mostra um módulo padrão PC800, com tempo de acesso de 40
ns. Observe a indicação “800-40” na parte direita da etiqueta.

Figura 11.61
Módulo RIMM de 800 MHz e 40 ns.

Nos manuais dos módulos de memória RDRAM, os fabricantes indicam as


opções de clock e tempo de acesso (ou latência). A figura 62 mostra uma
tabela extraída de um manual, indicando as versões produzidas. Observe
que existem versões de 16 e de 18 bits, com clocks de 600, 711 e 800 MHz, e
diversos tempos de acesso. Para as versões PC800, por exemplo, são
oferecidos tempos de acesso de 40, 45 e 50 ns. Obviamente as versões com
menor tempo de acesso são mais caras.
11-68 Hardware Total

Figura 11.62
Opções de velocidade apresentadas por um
fabricante de RDRAM: Clock e tempo de acesso.

Nas placas de CPU equipadas com RDRAM, o BIOS pode obter os


parâmetros de velocidade e tempo de acesso a partir dos dados armazenados
na EEPROM SPD (Serial Presence Detect) da RDRAM, e programar o
chipset para operar no modo correto. Em geral também é possível
programar manualmente esses parâmetros através do CMOS Setup.

Módulo RIMM de continuidade


O barramento das memórias RDRAM não pode ter soquetes vazios. É
necessário um casamento de impedância devido à sua elevada freqüência de
operação. Devemos completar os soquetes vazios com módulos de
continuidade, como mostra a figura 63.
Capítulo 11 - Memórias 11-69
Figura 11.63
Usando módulos de continuidade RIMM.

Detecção e correção de erros na memória


Todos os chips de memória estão sujeitos a erros. A probabilidade da
ocorrência de erros é muito pequena, mas dependendo da aplicação, o erro
pode ser tolerado ou não. Se um computador usado exclusivamente para
jogos apresentar um erro por ano, isto não causará problema algum. Se um
computador usado no monitoramento de um reator nuclear, a taxa de um
erro a cada 10 anos seria catastrófica. Existem mecanismos para detectar
erros, e outros que permitem ainda corrigir o erro encontrado.

Paridade
A paridade é um recurso que serve para aumentar a confiabilidade das
memórias DRAM (isto se aplica a qualquer tipo de DRAM: RDRAM, DDR,
SDRAM, EDO e FPM). Nos anos 80, as DRAMs eram muito suscetíveis a
erros, e a técnica da paridade foi amplamente utilizada com o objetivo de
detectar eventuais erros na memória. Com o passar dos anos, as memórias
DRAM foram aperfeiçoadas e tornaram-se mais confiáveis, fazendo com que
o uso da paridade pudesse ser dispensado, pelo menos nas aplicações menos
críticas. Ainda assim, computadores que necessitam de alta confiabilidade
continuam utilizando módulos de memória com paridade para aplicar um
outro método mais eficiente para correção de erros, conhecido como ECC –
Error Correction Code.

A paridade nos PCs consiste em adicionar a cada grupo de 8 bits, um nono


bit, chamado de bit de paridade. Este bit funciona como um dígito
verificador, e permite detectar a maior parte dos erros na memória. Módulos
11-70 Hardware Total
SIMM/72 com paridade operam com 36 bits ao invés de 32, e módulos
DIMM/168 (SDRAM) e DIMM/184 (DDR) com paridade operam com 72
bits ao invés de 64. Módulos RDRAM com paridade utilizam 18 bits, ao
invés de 16. A paridade que já foi tão importante há alguns anos atrás, caiu
de importância pelo fato das memórias terem se tornado mais confiáveis.
Inclusive muitos chipsets para PCs de baixo custo não fazem checagem de
paridade, nem usam ECC.

Os bits de paridade não são acessíveis ao processador. São usados por dois
circuitos existentes no chipset: circuito gerador de paridade e circuito
checador de paridade. O circuito gerador de paridade escreve o bit de
paridade de cada grupo de 8 bits nas operações de escrita na memória. O
circuito testador de paridade verifica a paridade em cada grupo de 8 bits lido
da memória. Vejamos como funciona o bit de paridade e como é feita a
detecção de erros na memória. Para simplificar a explicação, tomaremos
apenas um grupo de 8 bits, mais um bit de paridade. Nas placas de CPU
modernas, este mesmo circuito aparece repetido 8 vezes, completando assim
64 bits, ou 72 contando com os bits de paridade.

Figura 11.64
Geração do bit de paridade.

A figura 64 mostra como ocorre uma operação de escrita na memória, com o


uso do bit de paridade. O circuito gerador de paridade recebe o valor que o
processador coloca na memória e "conta" quantos bits "1" estão sendo
escritos. A partir dessa "conta", escreve um bit de paridade de tal forma que,
ao considerar o conjunto de 9 bits, o número total de bits "1" será sempre
ímpar. Portanto, o circuito gerador de paridade garante que em cada grupo
de 9 bits da memória existirá sempre um número ímpar de bits "1".
Capítulo 11 - Memórias 11-71
Figura 11.65
Checagem da paridade.

Vejamos agora como funciona a operação de leitura da memória. Nesse


caso, entra em jogo o circuito testador de paridade. Em cada operação de
leitura, este circuito recebe os 8 bits que o processador está lendo e mais o
bit de paridade, formando um total de 9 bits, e "conta" o número de bits "1"
que existem neste conjunto. Se tudo correr bem, deverá existir
obrigatoriamente um número ímpar de bits "1". Caso não exista um número
ímpar de bits "1", significa que ocorreu um erro na memória. Este circuito
gerará o que chamamos de interrupção do processador, que imediatamente
suspenderá o processamento e apresentará uma mensagem de erro. Sob o
Windows, este será um daqueles erros do tipo “tela azul”. Será preciso
resetar o computador. Desta forma, o erro não será propagado, evitando que
sejam causados danos aos dados.

Vejamos como é feita a detecção de erros. Suponha que o processador


escreve na memória, um byte com valor binário 01000001. O circuito
gerador de paridade, ao encontrar neste valor dois bits "1" gerará um bit de
paridade igual a 1. Suponha que depois deste dado estar armazenado na
memória, o segundo bit da direita para a esquerda transforma-se em "1",
devido a um erro na memória. Ficará então armazenado o valor 01000011 e
o bit de paridade será 1. Quando o processador ler este valor, o circuito
testador de paridade encontrará um total de 4 bits "1" no grupo de 9 bits, o
que caracteriza um erro na memória.

O circuito de paridade não é capaz de detectar um erro em que existem dois


bits simultaneamente errados no mesmo grupo de 8 bits. Entretanto, o erro
em um único bit é o mais comum. A probabilidade de existirem dois bits
errados é milhares de vezes menor que a de existir apenas um errado. A
paridade é a técnica mais simples para detectar erros na memória, mas é
muito eficaz. Caso seja detectado um erro na memória, o usuário deve provi-
denciar sua manutenção. Será necessário substituir o módulo de memória
defeituoso.
11-72 Hardware Total

ECC
Uma outra técnica mais eficiente tem sido utilizada para detectar e corrigir
erros na memória. Trata-se do ECC, e tem sido utilizada em placas de CPU
de alta confiabilidade, como as usadas em servidores. Para cada grupo de 64
bits, 8 bits adicionais são usados para detecção e correção de erros. Por isso,
dizemos que os módulos DIMM/168 de 72 bits não são ditos “com
paridade”, e sim, “com ECC”.

Qualquer bit armazenado na memória apresenta uma pequena


probabilidade de erro. Dentro de uma célula de memória, a probabilidade
de ocorrer erro em apenas um de seus bits é muito maior que a
probabilidade de ocorrerem erros simultâneos, ou seja, em dois ou mais bits.
Cálculos de probabilidade podem ser feitos para mostrar que, sendo muito
pequena a probabilidade de um bit apresentar falha, temos:

Tipo de falha Probabilidade


Falha em um bit isolado p
Falha em 1 bits dentro de um grupo de 8 bits 8p
Falha em 2 bits simultâneos em um grupo de 8 bits 28p2
Falha em 3 bits simultâneos em um grupo de 8 bits 56p3

Para simplificar os cálculos, suponha um chip de memória de baixíssima


confiabilidade, com probabilidade de 1 em 1000 (p=0,001) de falha. As
probabilidades de falhas em grupos de 1, 2 e 3 bits seriam:

Tipo de falha Probabilidade


Falha em um bit isolado 0,001
Falha em 1 bits dentro de um grupo de 8 bits 0,008
Falha em 2 bits simultâneos em um grupo de 8 bits 0,000028
Falha em 3 bits simultâneos em um grupo de 8 bits 0,000000056

Comparando esses números, vemos que a probabilidade de dois bits


falharem simultaneamente (0,008) é 285 vezes maior que a probabilidade de
falharem dois bits simultaneamente. A chance de falharem 3 bits ao mesmo
tempo é 142857 vezes menor que a de falhar apenas um bit. Na prática esta
diferença é ainda maior, portanto todos os mecanismos de detecção e
correção de erros são voltados a resolver problemas causados por erros do
tipo single bit.

As falhas nas células de memória são causadas por bombardeamento de


partículas alfa e raios cósmicos. Não só as memórias, chips em geral e os
Capítulo 11 - Memórias 11-73
seres vivos são continuamente bombardeados por essas radiações, porém em
intensidades baixíssimas e inofensivas. Periodicamente ocorrem tempestades
eletromagnéticas, que são explosões solares que emitem grande quantidade
de partículas alfa. Circuitos digitais podem ser afetados nessas ocasiões,
através de raríssimos mas reais, erros nos bits armazenados nas suas células
de memória.

No início dos anos 80, as células de DRAM eram muito sensíveis, e podiam
apresentar em média, um erro a cada 30 horas. Note que este tempo médio
entre falhas (MTBF) é menor, quanto maior é o número de células de
memória. Nos PCs atuais, o MTBF de um bit é bem maior (ou seja, podem
passar muitos anos sem ocorrerem falhas), mas quando levamos em conta
memórias de 256 MB e superiores, comuns em servidores, chegamos a
MTBFs que variam entre 1 mês e 1 ano. Portanto é real a probabilidade de
ocorrência de um erro em um dos seus bits, em períodos razoavelmente
pequenos, principalmente quando levamos em conta que um servidor fica
ligado 24 horas por dia. Não quer dizer que é preciso ficar ligado um mês
para o erro ocorrer. Em um grupo de 256 MB, o erro pode acontecer depois
de um ano, em outro pode ser depois alguns meses ou semanas, em outro
pode ocorrer até no primeiro dia de uso. É tudo estatístico, um MTBF de um
mês significa que se tomarmos vários computadores e marcarmos o tempo
transcorrido até aparecer o primeiro erro, a média será de um mês.

Esses erros não são permanentes, são apenas uma troca de bit (0 se
transforma em 1 ou 1 se transforma em 0). Se o bit errado for detectado e
corrigido, esta célula de memória continuará funcionando normalmente.

Códigos de detecção e correção de erros são bastante utilizados em todos os


meios de armazenamento de dados, como:

 Memória RAM
 Disco rígido
 Disquetes
 CD-ROM
 Fitas magnéticas

Sempre que as informações são guardadas em discos rígidos, disquetes e


outros meios de armazenamento, são adicionados códigos para futura
checagem de erros, o que aumenta a sua confiabilidade. Memórias RAM são
bastante confiáveis, mas nas aplicações em que é necessária uma
11-74 Hardware Total
confiabilidade ainda maior, também utilizam códigos de correção de erros
(ECC).

Como corrigir um erro na memória


Partimos do princípio de que, quando um erro ocorre em uma célula, este
erro está em apenas um bit. A chance de ocorrerem dois erros simultâneos
na mesma célula de memória é praticamente nula. Entretanto são usados
códigos sofisticados que permitem detectar (mas não corrigir) erros em dois
bits simultâneos. O funcionamento desses códigos é muito complexo, por
isso mostraremos aqui como resolver o problema mais comum: detectar e
corrigir erros do tipo single bit, ou seja, quando ocorrem em um único bit
dentro de uma célula de memória. O método mais empregado é o chamado
código de Hamming. Vamos apresentar um método mais simples, bastante
parecido com o código de Hamming. Podemos chama-lo de método de
Laercius – que obviamente não é usado na prática, e tem apenas fins
explicativos. Ele não detecta erros em dois bits simultâneos, mas é de simples
entendimento. Este método consiste em adicionar para cada dado, um grupo
de bits de checagem. Quanto mais bits de dados, mais bits de checagem
devem ser usados. A tabela abaixo mostra para dados de 8, 16, 32 e 64 bits,
quantos bits devem ser usados para checagem:

Tamanho dos dados Bits adicionais usando o Bits adicionais usando o


código de Hamming “código de Laercius”
8 bits 5 5
16 bits 6 6
32 bits 8 7
64 bits 8 8

Mostraremos o funcionamento da correção de erros pelo código de Laercius


usando dados de 8 bits, por ser mais fácil de entender. O funcionamento
para 64 bits é semelhante, mas didaticamente é mais fácil explicar como
funciona para 8 bits. Para o grupo de 8 bits são adicionados 5 bits de
checagem. Note que na prática não é feita esta checagem para apenas 8 bits,
pois adicionando 5 bits, estamos quase dobrando o custo da memória. Para
grupos de 64 bits, usados nos PCs modernos, bastam 8 bits para fazer a
detecção e correção de erros, totalizando 72 bits, um aumento bastante
viável que não afeta muito o custo das memórias.
Capítulo 11 - Memórias 11-75
Figura 11.66
Um código simples para correção de
erros.

A figura 66 mostra um dado de 8 bits, representado por b7b6b5b4b3b2b1b0. Os


5 bits de controle são p1, p2, p4, pd e pp. Esses 5 bits são calculados da
seguinte forma:

p1: Paridade calculada entre b5, b7, b3 e b1


p2: Paridade calculada entre b4, b6, b2 e b0
p4: Paridade calculada entre b5, b7, b4 e b6

pd: Paridade calculada entre b7, b6, b5, b4, b3, b2, b1, b0
pp: Paridade calculada entre p1, p2, p4 e pd.

Quando é feita uma gravação na memória, são gerados e armazenados os 5


bits de checagem. Quando é feita uma leitura, são lidos os dados e os bits de
checagem. Em função dos dados lidos, os bits de checagem são novamente
calculados. São comparados os bits de checagem armazenados com os
calculados. Se forem iguais, está tudo correto. Se existirem diferenças, temos
um erro na memória.

É recalculada a paridade dos dados pd. Também é recalculada a paridade


dos bits de controle, pp. Se pd estiver correta, não existe erro nos 8 bits de
dados da memória. Se pd indicar erro, então existe um bit errado, ou entre
os 8 bits de dados, ou então o erro pode ser o próprio bit pd. Entrará então
em jogo o bit de paridade pp. Se estiver errado, significa que existe um bit
errado, que será necessariamente pd. Isto significa que os 8 bits de dados
estão corretos. Se pp estiver correto, significa que os bits p1, p2, p4 e pd estão
corretos, então o erro está em um dos 8 bits de dados. A explicação pode ser
melhor visualizada através da figura 67.
11-76 Hardware Total
Figura 11.67
Correção de erros pelo método de
Laercius.

O mais interessante de tudo é a forma pela qual o bit errado é identificado.


Ele é indicado pelos valores de p1, p2 e p4 armazenados e calculados.
Quando esses bits armazenados são iguais aos calculados, recebem peso
zero, quando são diferentes, recebem peso 1, 2 ou 4 respectivamente. Por
exemplo, quando p1 calculado é igual ao p1 armazenado, p2 calculado é
diferente do p2 armazenado, e p4 calculado é igual ao p4 armazenado, temos
0+2+4=6. Isto significa que o bit b6 está errado. Basta invertê-lo (trocar de 0
para 1, ou de 1 para 0) e o erro estará corrigido.

Com dados de 64 bits, são usados os bits de checagem p1, p2, p4, p8, p16 e p32,
além de pd para indicar a paridade dos dados e pp para indicar a paridade
dos bits de checagem. São portanto 8 bits de checagem ao todo. O mesmo
esquema da figura 67 é utilizado, e os bits p1, p2, p4, p8, p16 e p32 são usados
para indicar a posição do erro.

OBS: Essa história de código de Laercius é brincadeira. Não sou o criador deste método, estou
apenas repetindo o que aprendi em alguma aula de circuitos digitais, lá pelo início dos anos
80...

Você não precisa conhecer os métodos utilizados pelos chipsets para detectar
e corrigir erros na memória, mas precisa saber o seguinte:

a) para cada grupo de 64 bits, são necessários 8 bits adicionais para


implementar o ECC, totalizando 72 bits.

b) Não adianta simplesmente usar memórias de 72 bits. É preciso que o


chipset da sua placa de CPU utilize a geração e a checagem de erros. Muitos
chipsets para PCs de baixo custo não operam com ECC.

Memórias ROM
A ROM (Read Only Memory, ou memória de apenas leitura) tem duas
características principais. A primeira, trata-se de uma memória não volátil, ou
Capítulo 11 - Memórias 11-77
seja, que não perde seus dados quando é desligada. Por isso é a memória
ideal para armazenar o BIOS, que precisa entrar em execução assim que o
computador é ligado. A segunda característica, seu próprio nome já diz. É
usada apenas para operações de leitura, não permitindo gravações. A
maioria das ROMs usadas em PCs utiliza o encapsulamento DIP (Dual In-
line Package). O usuário nem mesmo precisa se preocupar com a instalação
das ROMs. Já vêm instaladas e prontas para funcionar. As ROMs mais
comuns são as que armazenam o BIOS da placa de CPU e o BIOS da placa
VGA.

Figura 11.68
Diagrama de uma ROM.

A figura 68 mostra o diagrama de blocos de uma ROM. O chip recebe o


endereço a ser acessado, que é por sua vez usado para acessar a matriz de
células. O valor lido da célula endereçada é colocado no buffer de saída,
que é ligado ao barramento de dados. Existem ainda os sinais de controle
OE (Output Enable) e CE (Chip Enable). São comuns ROMs que operam
com células de 8 bits, e muitas operam com 16 bits. A ROM do nosso
exemplo pode operar nos modos de 8 e de 16 bits, bastando que seja
especificado o bit de controle Word/Byte. Note que esta é uma característica
particular do chip que usamos no exemplo, e não necessariamente está
disponível na maioria das ROMs.
11-78 Hardware Total
Figura 11.69
Operação de leitura em uma ROM.

A figura 69 mostra o diagrama de tempo de uma operação de leitura.


Inicialmente é especificado o endereço, e a seguir são ativados os sinais CE e
OE. Transscorrido o tempo de acesso, os dados estarão presentes no
barramento de dados. Terminada a leitura devemo ser desativados os sinais
CE e OE, fazendo com que o barramento de dados volte a ficar em alta
impedância.

ROM, PROM, EPROM


As ROMs são encontradas em diversas modalidades. As principais
diferenças dizem respeito a como os dados originais são armazenados. Em
uso normal, a ROM aceita apenas operações de leitura, e não de escrita, mas
antes disso, é preciso que alguém (normalmente o fabricante) armazene os
seus dados.

A ROM é o tipo mais simples. Seus dados são gravados durante o processo
de fabricação do chip. Um fabricante de placas de CPU, por exemplo,
entrega ao fabricante de memórias, o conteúdo a ser gravado nas ROMs. A
partir deste conteúdo, o fabricante de memórias produz uma matriz, com a
qual serão construídos milhares de chips. Normalmente só vale a pena
utilizar ROMs quando se tem certeza de que seus dados não precisarão ser
alterados, e também quando são produzidas no mínimo 10.000 peças iguais.
Nessas condições, o custo de fabricação de cada chip é bastante baixo.

A PROM (Programable ROM) é um tipo de memória ROM, com uma


diferença: pode ser programada em laboratório, através de um gravador
especial. Este tipo de gravação é feito através da “queima” de microscópicos
elementos, que são como pequenos fusíveis, feitos de material semicondutor.
Uma PROM nova vem em estado “virgem”, ou seja, com todos os seus
fusíveis intactos. O processo de gravação faz a queima seletiva desses fusíveis,
a fim de representar os bits desejados. Este processo é irreversível. Uma vez
Capítulo 11 - Memórias 11-79
“queimada”, ou seja, programada, uma PROM não pode mais ser
modificada. No passado, as PROMs eram usadas em laboratório, durante o
desenvolvimento de produtos que seriam posteriormente produzidos em
larga escala, utilizando ROMs. Hoje existem métodos mais eficientes, mas as
PROMs ainda são bastante utilizadas quando é necessário criar circuitos de
alta velocidade.

A EPROM ou UV-EPROM (Eraseable PROM, ou Ultra Violet Eraseable


PROM) é uma ROM programável, que pode ser apagada e regravada. Seus
dados podem ser apagados através de um feixe de luz ultra violeta de alta
intensidade. As EPROMs possuem uma janela de vidro, através da qual
podem incidir os raios ultra violeta usados no processo de apagamento. Esses
raios são obtidos em um aparelho especial chamado “apagador de
EPROMs”, que consiste em uma caixa plástica com uma lâmpada ultra
violeta.

Devido ao seu baixo custo em comparação com as PROMs, as EPROMs


foram muito utilizadas pela indústria de informática, para gravação de BIOS,
geradores de caracteres e outros dados fixos. Um pequeno fabricante que
produz apenas algumas centenas de unidades de um produto não tem escala
de produção suficiente para utilizar ROMs, que precisam ser produzidas aos
milhares. Ao invés disso utilizam EPROMs, que mesmo sendo mais caras,
podem ser utilizadas em pequenas quantidades.

Figura 11.70
Um programador de ROMs, usado em
laboratórios de desenvolvimento e
manutenção.

Laboratórios de desenvolvimento ou manutenção podem utilizar gravadores


de ROMs (PROM, EPROM, EEPROM, UV-EPROM, FLASH ROM) que
são ligados diretamente ao PC, através da porta serial ou paralela. Mediante
o controle feito por um software que o acompanha, esses aparelhos são
capazes de ler e gravar o conteúdo de um grande número de chips de
ROMs programáveis.

Flash ROM
Desde os anos 80 existe no mercado um tipo especial de ROM, que pode
ser programada e apagada eletricamente: a EEPROM ou E2PROM
11-80 Hardware Total
(Eletrically Eraseable Programable ROM). Essas memórias são antecessoras
das atuais Flash ROMs, que têm a mesma característica. São ROMs que
podem ser regravadas através da aplicação de voltagens de programação
especiais. Em uso normal, esta voltagem de programação não chega ao chip,
e seus dados permanecem inalteráveis. Este tipo especial de ROM tem sido
utilizado nas placas de CPU a partir de meados dos anos 90 para armazenar
o seu BIOS. Pelo fato de serem alteráveis, permitem realizar atualizações do
BIOS, através de programas especiais que ativam os seus circuitos de
gravação. Este programa é fornecido pelo fabricante da placa de CPU.

Figura 11.71
O BIOS da placa de CPU é armazenado
em uma Flash ROM.

As Flash ROMs também foram muito utilizadas para armazenar o “BIOS do


modem”. Este termo é errado, o correto é dizer “o firmware do modem”.
Trata-de de um software que é executado pelo processador (DSP, ou
processador de sinais digitais) existentes no modem. Este software possui,
entre outros módulos, os protocolos de comunicação. Logo que surgiram os
primeiros modems de 56k bps, dois protocolos de fabricantes diferentes
competiam para ser o padrão do mercado: o X2 e o K56Flex. Nenhum
fabricante de modem tinha certeza sobre qual o protocolo seria adotado
como padrão mundial, por isso passaram a escolher um deles e armazená-lo
em uma Flash ROM no modem. Uma vez que fosse adotado o padrão
definitivo, o novo protocolo poderia ser gravado nesta Flash ROM. No início
de 1998 foi finalmente estabelecido o padrão V.90, e os fabricantes de
modems passaram a oferecer através dos seus sites, um programa de
atualização para o novo protocolo, a ser gravado na Flash ROM.
Capítulo 11 - Memórias 11-81
Figura 11.72
Flash ROM de um modem.

Shadow RAM
As ROMs são extremamente lentas para os padrões atuais de velocidade das
memórias. Enquanto as DRAMs modernas apresentam tempos de acesso
inferiores a 15 ns (PC66), as ROMs têm tempos de acesso de 100 ns ou mais.
Uma outra limitação dos chips de ROM é que normalmente fornecem
apenas 8 bits de cada vez. Os processadores modernos precisam ler 64 bits
de cada vez, portanto os dados das ROMs precisam ser agrupados de 8 em
8, até formar 64 bits, para só então serem liberados para o processador.
Como resultado do elevado tempo de acesso e dos seus singelos 8 bits, as
ROMs usadas nos PCs são cerca de 100 vezes mais lentas que as RAMs.
Existem ROMs rápidas, porém são muito caras. Seria também possível
agrupar 8 ROMs para formar um grupo de 64 bits, mas esta é também uma
solução bastante cara para o problema da sua lentidão.

Felizmente existe uma técnica bastante simples e econômica para a solução


deste problema, técnica esta utilizada desde o tempo dos PCs 286: a Shadow
RAM. A técnica consiste em, logo no início do processo de boot, copiar o
conteúdo da ROM (que armazena o BIOS da placa de CPU) para uma área
da RAM. Feita esta cópia, a área de RAM que recebeu a cópia dos dados da
ROM tem suas operações de escrita desabilitadas. Isto faz com que o
comportamento seja similar ao de uma ROM (Read Only). Finalmente, esta
área de RAM é mapeada sobre o mesmo endereço antes ocupado pela
ROM, ao mesmo tempo em que a ROM é desabilitada. A partir daí passa a
vigorar a cópia da ROM, feita sobre a RAM.

A técnica da shadow RAM é utilizada para acelerar o BIOS da placa de


CPU, o BIOS da placa de vídeo e outros BIOS eventualmente existentes em
placas de expansão. A habilitação da shadow RAM é feita através do CMOS
Setup.
11-82 Hardware Total
///////// FIM //////////

Potrebbero piacerti anche