Tipos de memória viva
De um modo geral, existem duas grandes categorias de memória viva ou memória de acesso aleatório:
As
memórias dinâmicas (DRAM – Módulo de Acesso Aleatório Dinâmico), pouco dispendiosas. São principalmente utilizadas para a memória principal do computador;
As
memórias estáticas (SRAM – Módulo de Acesso Aleatório Estático), são rápidas e relativamente caras. As SRAM são utilizadas principalmente na memória cache do processador.
Como funciona a memória viva
A memória viva é constituída por centenas de milhares de pequenos condensadores que armazenam cargas. Ao carregar-se, o estado lógico do condensador é igual a 1; no caso contrário é igual a 0, o que significa que cada condensador representa um bit de memória.
Visto que os condensadores se descarregam, é preciso recarregá-los constantemente (o termo exato é atualizar) a intervalos de tempo regulares chamados ciclo de
atualização. As memórias DRAM, por exemplo, requerem ciclos de atualização de uns 15 nanossegundos (ns).
Cada condensador está acoplado a um transistor (MOS) que permite
recuperar ou alterar o estado do condensador. Estes transistores estão dispostos em uma tabela (matriz), de modo que se acesse a caixa de memória (também chamada ponto de memória) por uma linha e uma coluna:
Assim, cada ponto de memória se caracteriza por um endereço que, por sua vez, corresponde a um número de
linha e um número de
coluna. Este acesso não é instantâneo e efetua-se durante um prazo chamado tempo de latência. Consequentemente, o tempo necessário para acessar a informação na memória é igual ao tempo de ciclo e o tempo de latência.
Deste modo, no caso da memória DRAM, por exemplo, o tempo de acesso é de 60 nanossegundos (35 ns do tempo de ciclo e 25 NS do tempo de latência). No computador, o tempo de ciclo corresponde ao oposto da frequência do relógio. Por exemplo, em um computador cadenciado a 200 MHz, o tempo de ciclo é de 5 NS (1 (200*106).
Consequentemente, em um computador com alta frequência usando memórias cujo tempo de acesso é muito mais longo que o tempo de ciclo do processador, deve efetuar ciclos de espera (wait state) para que se acesse a memória. No caso de um computador cadenciado a 200 MHz que utiliza memórias DRAM (cujo tempo de acesso é de 60ns), há 11 ciclos de espera para um ciclo de transferência. O desempenho do computador diminui a medida que aumenta o número de ciclos de espera, por conseguinte, é aconselhável implementar o uso de memórias mais rápidas.
Formatos de barras de memória viva
Existem vários tipos de memória viva. Elas se apresentam sob a forma de módulos de memória que podem ser conectadas à placa-mãe.
As primeiras memórias apresentavam-se sob a forma de micro-plaquetas chamadas DIP (Double Inline Package). Hoje em dia, as memórias encontram-se geralmente sob forma de barras, ou seja, cartas encaixadas em conectores previstos para esse efeito. Habitualmente, existem três tipos de barras RAM:
As barras em formato
SIMM (Individual Inline Memory Module): são placas de circuito impressas em que um dos lados possui micro-plaqueta de memória. Existem dois tipos de módulos SIMM, de acordo com o número de conectores: as barras SIMM com 30 conectores (de 89x13mm) são memórias 8 bits que equipavam as primeiras gerações de PCs (286, 386):
As barras SIMM com 72 conectores (de 108x25mm) são memórias capazes de armazenar, simultaneamente, 32 bits de informação. Estas memórias se encontram nos PCs, que veem desde o 386DX aos primeiros Pentium. No caso dos Pentiums, o processador funciona com um barramento de informação de 64 bits, razão pela qual estes computadores precisam estar equipados com módulos SIMM. Os módulos de 30 pinos não podem se instalar em posições de 72 conectores, já que o encaixe (entalhadura no centro dos conectores) impede a conexão:
As barras no formato
DIMM (Double Inline Memory Module) são memórias de 64 bits, por isso não é necessário emparelhá-las. As barras DIMM possuem micro-plaquetas de memória em ambos os lados da placa de circuito impresso e têm igualmente 84 conectores de cada lado, somando um total de 168 pinos. Além de serem maiores do que as barras SIMM (130x25mm), elas possuem um segundo encaixe para evitar confusões:
Cabe observar que os conectores DIMM foram melhorados para facilitar a sua inserção, graças a alavancas situadas de ambos os lados de cada conector.
Também existem módulos menores, chamados SO DIMM (Small Outline DIMM) desenvolvidos para computadores portáteis. As barras SO DIMM comportam apenas 144 pinos para as memórias 64 bits e 77 para as memórias 32 bits.
As barras no formato
RIMM (Rambus Inline Memory Module ou RD-RAM ou DRD-RAM) são memórias de 64 bits desenvolvidas pela empresa Rambus. Elas possuem 184 pinos. Estas barras possuem dois entalhes de posição, evitando qualquer risco de confusão com os módulos precedentes. Tendo em conta a sua velocidade de transferência elevada, as barras RIMM possuem um filme térmico encarregado de melhorar a transferência de calor.
Como no caso dos DIMM, existem módulos menores chamados SO RIMM (Small Outline RIMM) para os computadores portáteis. As barras SO RIMM comportam apenas 160 pinos.
DRAM PM
A
DRAM (RAM dinâmico) é o tipo de memória mais divulgado. É uma memória cujos transístores estão dispostos numa matriz em linhas e colunas. Um transístor, acoplado a um condensador fornece informação em forma de bit. Já que 1 byte compreende 8 bits, uma barra de memória DRAM de 256 MB conterá, então, 256*2^10*2^10 = 256*1024*1024 = 268.435.456 bytes = 268.435.456*8 = 2.147.483 e 648 bits = 2.147.483.648 transístores. Assim, uma barra de 256 MB possui, na realidade, uma capacidade de 268.435.456 bytes, ou seja 268 MB. O tempo de acesso destas memórias é de 60 ns.
Por outro lado, o acesso à memória, em geral, está relacionado aos dados armazenados consecutivamente na memória. Assim, o modo
burst (acesso em rajada) permite o acesso às três partes de informação que seguem a primeira parte, sem tempo de latência adicional. Deste modo, o tempo necessário para acessar a primeira parte da informação é igual ao tempo do ciclo mais o tempo de latência, enquanto que o tempo necessário para acessar as outras três partes da informação só é igual ao tempo de ciclo. Assim sendo, os quatro tempos de acesso se expressam sob a forma
X-Y-Y-Y. Por exemplo, 5-3-3-3 indica que a memória necessita 5 ciclos do relógio para acessar a primeira parte da informação dado, e 3, para acessar as seguintes.
DRAM FPM
Para acelerar os acessos ao DRAM, existe uma técnica chamada
paginação, que consiste em acessar a informação situada numa mesma coluna, alterando apenas o endereço da linha, para evitar a repetição do número de coluna entre a leitura de cada uma das linhas. Este processo se chama
DRAM FPM (Fast Page Mode). O FPM permite obter tempos de acesso de aproximadamente 70 a 80 nanossegundos para uma frequência de funcionamento que pode ir de 25 a 33 MHz.
DRAM EDO
A
DRAM EDO (Extended Data Out, também chamado de ‘hiperpágina’) surgiu em 1995. A técnica utilizada neste tipo de memória consiste em direcionar a coluna seguinte durante a leitura dos dados de uma coluna anterior. Isto cria uma sobreposição dos acessos que permite ganhar tempo em cada ciclo. O tempo de acesso à memória EDO é de 50 a 60 nanossegundos para uma frequência de funcionamento que vai de 33 a 66 MHz.
Assim, a
RAM EDO, quando utilizada em modo
burst, permite obter ciclos sob a forma 5-2-2-2, que representa um ganho de 4 ciclos sobre o acesso a 4 dados. Já que a memória EDO não aceitava frequências superiores a 66 MHz, ela desapareceu em detrimento do SDRAM.
SDRAM
A
SDRAM (Synchronous DRAM ou DRAM sincrônico), introduzida em 1997, permite a leitura da informação sincronizada com o barramento da placa-mãe, contrariamente ao que ocorre com as memórias EDO e FPM (qualificadas de assíncronas) que possuem o seu próprio relógio. Desta maneira, a SDRAM elimina os tempos de espera devidos à sincronização com a placa-mãe. Graças a isso, é possível obter um ciclo em modo
burst de 5-1-1-1, ou seja, um ganho de 3 ciclos em relação à RAM EDO. Assim sendo, a SDRAM pode funcionar com uma frequência superior a 150 MHz, obtendo tempos de acesso de cerca de 10 ns.
DR-SDRAM (Rambus DRAM)
A
DR.-SDRAM (Direct Rambus DRAM ou RDRAM) é um tipo de memória que permite transferir os dados em um barramento de 16 bits de amplitude num ritmo de 800 MHz, o que proporciona uma largura de banda de 1,6 GB/s. Assim como a SDRAM, este tipo de memória está sincronizada com o relógio do barramento para melhorar as trocas de dados. Por outro lado, a memória RAMBUS é um produto de tecnologia patenteada, o que significa que qualquer empresa que deseje produzir módulos RAM que utilizem esta tecnologia deverá pagar os direitos (royalties) às empresas RAMBUS e Intel.
DDR-SDRAM
A
DDR-SDRAM (Double Data Rate SDRAM) é uma memória baseada na tecnologia SDRAM, permitindo duplicar a taxa de transferência alcançada por ela, a frequência igual.
A informação é lida ou escrita na memória como um relógio. As memórias DRAM padrão utilizam um método chamado SDR (Taxa Simples de Transferência de Dados), que consiste em ler ou escrever um dado em cada fronteira de entrada:
A
DDR permite duplicar a frequência de leitura/escrita, com um relógio cadenciado à mesma frequência, enviando os dados a cada borda de entrada e a cada borda posterior:
As memórias DDR possuem geralmente possuem uma marca, como PCXXXX, em que XXXX representa a velocidade em MB/s.
DDR2-SDRAM
As memórias
DDR2 (ou DDR-II) atingem velocidades duas vezes maiores do as memórias DDR com a mesma frequência externa.
A
QDR (Taxa Quadrupla de Transferência de Dados ou Quad-pump) designa o método de leitura e escrita utilizado. Na realidade, a memória DDR2 utiliza dois canais separados para os processos de leitura e escrita, com o qual é possível enviar ou receber o dobro de informações em relação à DDR:
A DDR2 também possui mais conectores do que a DDR tradicional (240 para a DDR2 contra 184 para a DDR).
Quadro sumário
O quadro abaixo mostra a equivalência entre a frequência da placa-mãe (FSB), a da memória (RAM) e a sua velocidade:
| Memória | Denominação
| Frequência (RAM) | Frequência (FSB)</th> | Velocidade |
|---|
| DDR200
| PC1600 | 200 MHz | 100 MHz | 1,6 GB/s |
| DDR266
| PC2100 | 266 MHz | 133 MHz | 2,1 GB/s |
| DDR333
| PC2700 | 333 MHz | 166 MHz | 2,7 GB/s |
| DDR400
| PC3200 | 400 MHz | 200 MHz | 3,2 GB/s |
| DDR433
| PC3500 | 433 MHz | 217 MHz | 3,5 GB/s |
| DDR466
| PC3700 | 466 MHz | 233 MHz | 3,7 GB/s |
| DDR500
| PC4000 | 500 MHz | 250 MHz | 4 GB/s |
| DDR533
| PC4200 | 533 MHz | 266 MHz | 4,2 GB/s |
| DDR538
| PC4300 | 538 MHz | 269 MHz | 4,3 GB/s |
| DDR550
| PC4400 | 550 MHz | 275 MHz | 4,4 GB/s |
| DDR2-400
| PC2-3200 | 400 MHz | 100 MHz | 3,2 GB/s |
| DDR2-533
| PC2-4300 | 533 MHz | 133 MHz | 4,3 GB/s |
| DDR2-667
| PC2-5300 | 667 MHz | 167 MHz | 5,3 GB/s |
| DDR2-675
| PC2-5400 | 675 MHz | 172,5 MHz | 5,4 GB/s |
| DDR2-800
| PC2-6400 | 800 MHz | 200 MHz | 6,4 GB/s |
Sincronização (timings)
Não é raro ver valores do tipo 3-2-2-2 ou 2-3-3-2 para descrever as configurações da memória viva. Esta sequência de quatro números descreve a sincronização da memória (timing), ou seja, a sequência de ciclos de relógio necessária para acessar a informação armazenada na memória viva. Estes quatro números correspondem, na ordem, aos seguintes valores:
Demora de CAS ou latência de CAS (CAS - Column Address Strobe ou Sinalizador de Direcionamento em Coluna): é o número de ciclos de relógio que transcorre entre o envio do comando de leitura e a chegada efetiva da informação. Em outras palavras, é o tempo necessário para acessar uma coluna.
Tempo de pré-carga RAS (RAS - Row Address Strobe): é o número de ciclos de relógio entre duas instruções RAS, ou seja, entre dois acessos a uma linha.
Demora de RAS para CAS (também chamado de tRCD): trata-se do número de ciclos de relógio que correspondem ao tempo de acesso de uma linha para uma coluna.
Tempo ativo de RAS(ou tRCD): é o número de ciclos de relógio que correspondem ao tempo de acesso a uma coluna.
Os cartões de memória são equipadas com um dispositivo chamado
SPD (Serial Presence Detect), que permite que o BIOS conheça os valores nominais de ajustamento definidos pelo fabricante. Esta é uma
EEPROM cujos dados podem ser carregados no BIOS se o usuário escolher o ajuste
Automático.
A correção de erros
Algumas memórias possuem mecanismos de correção de erros, a fim de garantir a integridade das informações que elas contêm. Este tipo de memória é utilizado geralmente em sistemas que trabalham com dados críticos, motivo pelo qual este tipo de memória se encontra nos servidores.
Bit de paridade
Os módulos com bits de paridade garantem que os dados contidos na memória sejam efetivamente necessários. Para obter isso, um dos bits de cada byte armazenado na memória serve para armazenar a soma das bits de dados. O bit de paridade vale
1 quando a soma dos bits de dados gera um número ímpar e
0 no caso contrário.
Deste modo, os módulos com bit de paridade permitem verificar a integridade dos dados mas não preveem a correção dos erros. Além disso, para 9 MB de memória, apenas 8 servirão para armazenar dados, já que o último megabyte é usado para armazenar os bits de paridade.
Módulos ECC
Os módulos de memória ECC (Error Correction Coding – Códigos de correção de Erros) são memórias que possuem vários bits dedicados à correção de erros (chamados bits de controle). Estas barras (ou módulos), utilizadas principalmente em servidores, permitem detectar e corrigir os erros.
Canal Duplo
Alguns controladores de memória dispõem de um canal duplo (Dual Chanel) para a memória. Os módulos de memória são usados por pares a fim de alcançar uma maior largura de banda e, consequentemente, explorar ao máximo as capacidades do sistema. Ao utilizar o canal duplo, torna-se indispensável utilizar um par de barras idênticas (mesma frequência, mesma capacidade e, de preferência, da mesma marca).