Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
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.
Figura 11.2
ROM com encapsulamento PLCC.
Figura 11.3
Chips de RAM com encapsulamento SOJ.
Figura 11.5
Chip de memória com encapsulamento DIP e
módulos de memória SIPP e SIMM.
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.
Figura 11.8
Módulos COAST.
Figura 11.10
Módulo RIMM/184.
Figura 11.11
Módulo DIMM/184.
11-8 Hardware Total
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.
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.
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).
*** 75%
***
Figura
11.13
Diagrama de blocos
de um chip de
memória SRAM.
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.
Figura 11.15
Escrita em uma SRAM.
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.
*** 75%
***
Figura
11.19
Transferência de
dados em uma SRAM
síncrona.
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.
Figura 11.20
Diferença entre a SRAM Pipelined e a
non-Pipelined.
Capítulo 11 - Memórias 11-17
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.
Figura 11.21
Ciclo de leitura em uma DDR SRAM.
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.
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.
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.
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.
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.
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.
Figura 11.27
Construção de uma célula de DRAM.
Figura 11.30
O Chipset é encarregado de controlar o
acesso à DRAM.
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.
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 acessos seguintes são mais rápidos porque exigem menos etapas: não é
preciso fornecer o sinal RAS nem o endereço da linha:
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.
Figura 11.33
Lentura 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.
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).
Figura 11.36
Funcionamento da EDO DRAM.
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.
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
Figura 11.38
Ciclo de refresh pelo método RAS Only.
2 ms 128 = 15,625 s
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.
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.
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!
Figura 11.39
Alguns módulos apresentavam uma
etiqueta “EDO”.
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.
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.
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.
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).
Figura 11.43
Comando ACTIVE.
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
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.
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
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.
A tabela que se segue mostra os diversos tipos de DDR, com seus clocks e
suas taxas de transferência.
11-56 Hardware Total
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.
Figura 11.48
Módulos DIMM/168 (SDRAM) e
DIMM/184 (DDR SDRAM).
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.
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.
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:
Figura 11.53
Estrutura interna de uma RDRAM.
Figura 11.54
O chip SPD de um módulo de SDRAM.
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.
1) Registered
2) Unregistered ou Unbuffered.
Figura 11.56
Jumper para indicar o tipo de DDR SDRAM
(Registered / Unbuffered).
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.
Figura 11.58
O chanfro indica a voltagem do módulo
de memória DDR.
Figura 11.59
Indicando manualmente a latência do CAS
de uma DDR SDRAM no CMOS Setup.
Figura 11.60
Os fabricantes de DDR SDRAM indicam os
valores de CL que podem ser utilizados
com seus chips.
Figura 11.61
Módulo RIMM de 800 MHz e 40 ns.
Figura 11.62
Opções de velocidade apresentadas por um
fabricante de RDRAM: Clock e tempo de acesso.
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.
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.
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”.
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.
Memória RAM
Disco rígido
Disquetes
CD-ROM
Fitas magnéticas
pd: Paridade calculada entre b7, b6, b5, b4, b3, b2, b1, b0
pp: Paridade calculada entre p1, p2, p4 e pd.
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:
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 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.
Figura 11.70
Um programador de ROMs, usado em
laboratórios de desenvolvimento e
manutenção.
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.
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.