Memórias DRAM
Tipos e Tecnologia

Marcos Portnoi
Engenharia Elétrica - UNIFACS
02.05.1999

 

Introdução

Quatro anos atrás não havia muito o que se dizer sobre memória RAM. Todos os PC's vinham com RAM tipo FPM (Fast Page Mode), que funcionava a uma velocidade de cerca de 100ns a 80ns. O desenvolvimento das placas-mãe e CPU sobrepujaram a capacidade de fornecimento de dados da RAM FPM em tempo hábil. Atualmente, observa-se uma série de designs diferentes de RAM.

Devido a limitações de custo, todos os computadores, exceto aqueles topo de linha, têm utilizado memória DRAM (Dynamic RAM) como principal. Originalmente, estas eram assíncronas e single-bank ou banco único, uma vez que os processadores eram relativamente lentos. Mais recentemente interfaces síncronas foram produzidas, com uma série de vantagens.

Aqui objetiva-se mostrar os diversos tipos de memória DRAM e suas principais características, além de uma breve descrição do funcionamento de uma DRAM.

 

Como opera a DRAM

Uma memória DRAM pode ser pensada como um arranjo de células, como uma tabela ou planilha. Estas células são feitas de capacitores e contém um ou mais bits de dados, a depender da configuração do chip. Esta tabela é endereçada através de decodificadores de linha e coluna, que por sua vez recebem seus sinais de geradores de clock, denominados geradores CAS (Column Address Strobe) e RAS (Row Address Strobe). De modo a minimizar o tamanho do pacote de dados, os endereços de linha e coluna são multiplexados em buffers. Por exemplo, se há 11 endereços, então haverá 11 linhas e 11 colunas de buffers. Transistores de acesso chamados "sense amps" ou amplificadores de sinal (numa tradução livre) são conectados a cada coluna de modo a possibilitar as operações de leitura e recuperação do chip. Uma vez que as células são capacitores que se descarregam para cada operação de leitura, o sense amp precisa recuperar ou restaurar o dado ali armazenado antes do fim do ciclo de acesso. Abaixo um gráfico ilustra uma célula de memória sendo acessada pela linha e coluna.

Os capacitores usados nas células de dados tendem a "perder" sua carga com o tempo, desta maneira requerem uma renovação constante e periódica dos dados, sob pena de estes se perderem. Este ciclo de renovação chama-se refresh cycle. Um controlador determina o tempo entre os ciclos de refresh, e um contador assegura que toda a matriz (todas as linhas) sofrem refresh. Logicamente isso significa que alguns ciclos da máquina são usados para a operação de refresh, e isto impacta na performance.

Um acesso típico de memória ocorreria da seguinte maneira. Primeiro, os bits da linha de endereço são colocados nos pinos de endereçamento. Após um período de tempo o sinal RAS cai (a voltagem diminui), o que ativa os sense amps e provoca o travamento da linha de endereço no buffer. Quando o sinal RAS se estabiliza, a linha selecionada é transferida para os sense amps ou transistores. Logo após, os bits da coluna de endereço são preparados, e então travados no buffer quando o sinal CAS cai, ao mesmo tempo em que o buffer de saída (output buffer) é ativado. Quando o sinal CAS se estabiliza, os transistores selecionados alimentam seus dados para o buffer de saída.

Encapsulamento 

Memória DRAM é feita de circuitos integrados, ou chips. Atualmente a memória vem no formato de "módulos" ou popularmente "pentes", que são pequenas placas de circuito impresso onde estão soldados os chips de memória. Esta placa de circuito impresso, por sua vez, é conectada na placa-mãe através de slots específicos.

SIMM

SIMM é a sigla em Inglês para Single In-Line Memory Module, ou módulo de memória de linha simples. Este módulo pode conter vários chips de DRAM. Os pinos opostos de contato na parte de baixo do módulo são conectados entre si, de modo a formar apenas um contato elétrico. Módulos SIMM existem em 30 e 72 pinos, que suportam respectivamente 8 e 32 bits de dados.

Dependendo do número de bits que a CPU transfere por ciclo de clock, ou o tamanho do barramento de dados, um ou outro tipo de SIMM precisa ser usado, em uma quantidade determinada. Por exemplo, tome-se uma CPU com barramento de dados de 32 bits. Se a placa-mãe suporta SIMM's de 30 pinos, ou seja, cada SIMM suporta 8 bits, então são necessários quatro módulos SIMM's de modo a perfazer 32 bits. Este tipo de configuração é tipicamente de computadores antigos, onde havia dois bancos distintos de DRAM, cada um com quatro slots para conexão de SIMM's. A CPU acessa cada banco um de cada vez.

Veja abaixo um diagrama exemplo de uma SIMM.

 

 

 

 

 

 

 

 

 

 

 

 

DIMM

Dual In-Line Memory Module, ou módulo de memória em dupla linha. Estes módulos são muito parecidos com os módulos SIMM, a diferença reside no fato de que os pinos opostos de cada lado da placa de circuito impresso são isolados, formando conexões elétricas independentes. Módulos DIMM são usados em computadores com barramentos de memória de 64 bits ou mais, como os Pentium ou PowerPC. Têm 168 pinos e suportam 64 bits de barramento. Onde duas SIMM's de 72 pinos precisam ser usadas a fim de perfazer o barramento de 64 bits, apenas um módulo DIMM é suficiente.

 

 

 

 

 

 

 

 

 

Operação Assíncrona

Uma interface assíncrona é aquela onde um período mínimo de tempo é requerido e determinado de modo que uma operação se complete. A cada uma das operações internas de um chip DRAM assíncrono é determinado um tempo mínimo, de modo que se um ciclo de clock ocorre antes deste tempo mínimo, outro ciclo de clock precisa ocorrer antes que a próxima operação seja permitida começar.

É então óbvio que todas essas operações consomem um tempo significativo e provocam preocupação quanto a performance. O foco principal dos fabricantes de DRAM tem sido aumentar o número de bits por acesso, concentrar várias operações de modo a minimizar o tempo requerido ou ainda eliminar algumas operações para certos tipos de acesso.

Portas de Entrada/Saída mais largas seria o mais simples e barato método de melhorar a performance. Entretanto, uma porta mais larga significaria a necessidade de mais pinos no chip, o que resultaria em maior tamanho do encapsulamento. Ainda, a maior segmentação necessária da matriz (mais linhas de E/S = mais segmentos) resultaria numa pastilha maior de silício. Tudo isso significaria maior custo, o que questiona o objetivo da utilização de RAM dinâmica. Outro problema é que múltiplos outputs ou saídas requerem corrente elétrica adicional, causando ruído. Isso resulta num chip mais lento, pois os dados não podem ser lidos até que o sinal se estabilize. Esses problemas limitaram a largura da porta de E/S em 4 bits por bastante tempo, obrigando os desenhistas de DRAM a buscar outras soluções a fim de otimizar a performance.

 

Page Mode Access

Implementando modos especiais de acesso, desenhistas puderam eliminar operações internas para alguns tipos de acesso. A primeira implementação significativa foi chamada de Page Mode Access, ou acesso em modo página.

Por este método, o sinal RAS é mantido ativo, de modo que toda uma "página" de dados é também mantida nos transistores ou sense amps. Novas colunas de endereços podem ser então repetidamente sinalizadas somente pelo sinal CAS. Isto resulta em leituras muito mais rápidas, pois o tempo de preparação e manutenção das linhas de endereçamento é eliminado.

Enquanto algumas aplicações beneficiam-se enormemente deste tipo de acesso, outras não vêm qualquer vantagem. O Page Mode original foi melhorado e substituído muito rapidamente, de modo que memórias DRAM deste tipo são praticamente inexistentes atualmente.

Abaixo um diagrama ilustra um acesso pelo modo página.

Aqui toda a linha 3 é selecionada, formando a "página" 3, e nela as colunas 2 e 4 podem ser individualmente selecionadas, logicamente uma após a outra. Como geralmente blocos de memória são acessados em seqüência, a seleção de toda uma página acelera o processo.

 

Fast Page Mode (FPM)

Fast Page Mode ou Modo de Acesso de Página Rápido foi uma melhora em relação ao modo de página anterior, onde o tempo de preparação da coluna de endereço foi eliminado durante o ciclo de página. Isto foi obtido através da ativação dos buffers de coluna logo na queda de sinal RAS (ao invés de CAS). Já que o sinal RAS permanece baixo durante todo o ciclo de página, isto age como uma "trava" transparente quando CAS está alto, e permite que a preparação do endereço aconteça tão logo a coluna de endereço seja válida, ao invés de esperar que o sinal CAS caia.

O FPM rapidamente tornou-se o método mais usado de acesso para DRAM's, e ainda é usado em vários sistemas. O benefício do FPM é consumo reduzido de força, principalmente porque as correntes de sinal e recuperação não são necessárias durante os acessos de página. Apesar de que o FPM foi uma importante inovação, ainda há algumas desvantagens. A mais significativa é que os buffers de saída são desligados quando o sinal CAS sobe. O tempo mínimo de ciclo antes que os buffers de saída sejam desligados é de 5ns, o que essencialmente adiciona pelo menos 5ns ao tempo do ciclo.

Memórias FPM são usadas hoje somente em sistemas antigos, como os 486.

 

 

 

 

 

 

 

HyperPage Mode ou EDO

O último grande avanço para as memórias DRAM assíncronas veio na forma do Hyperpage Mode ou EDO (Extended Data Out, ou saída de dados extendida). Esta inovação foi simplesmente o não mais desligamento dos buffers de saída à subida do sinal CAS. Em essência, isso eliminou o tempo de pre-carga das colunas enquanto os dados são travados e retirados para o buffer de saída, assim permitindo que o tempo mínimo para que CAS esteja baixo fosse reduzido. A subida do sinal pode vir então mais cedo.

Em adição à melhora de cerca de 40% em tempo de acesso, EDO usa a mesma quantidade de silício e o mesmo tamanho de encapsulamento. De fato, os pentes de memória EDO são visualmente idênticos aos FPM. As memórias EDO trabalham bem com velocidades de bus de 83MHz sem perda de performance, e se os chips forem rápidos o suficiente (55ns ou mais rápidos), EDO pode ser usada até em placas-mãe com bus de 100MHz. Para clocks de até 83MHz, a diferença de velocidade entre EDO's e SDRAM's é pequena, mas é em 100MHz que a EDO é completamente derrotada em performance pelas SDRAM's, devido à necessidade de mais ciclos de máquina.

 

 

 

 

 

 

 

A memória EDO é hoje considerada também ultrapassada, e produzida limitadamente. Em pouco tempo deve ser definitivamente suplantada pelas memórias SDRAM.

 

Burst EDO (BEDO)

BEDO, apesar de ser um bom projeto, já nasceu morto. A adição de um modo burst ou "rajada", junto a uma arquitetura de banco duplo (dual bank) teriam proporcionado os tempos de acesso a 66MHz esperados para uma SDRAM. Modo burst é um avanço sobre o modo página, onde depois da entrada do primeiro endereço, os próximos três endereços são gerados internamente, consequentemente eliminando o tempo necessário para a entrada de uma nova coluna de endereço. A Intel, entretanto, decidiu que EDO não era mais viável, e que as memórias SDRAM eram sua arquitetura preferida. Assim, não implementaram o suporte a BEDO em seus chipsets. Com efeito, vários fabricantes de memória investiram somas consideráveis de tempo e capital no desenvolvimento das SDRAM nesta década, e eles não ficaram muito satisfeitos com a arquitetura BEDO, que prometia tempos de acesso muito baixos que rivalizariam com a SDRAM, possivelmente até mais baixos para clocks abaixo de 100MHz.

Essencialmente a BEDO perdeu suporte por motivos técnicos (uma vez que era uma outra arquitetura, incompatível com SDRAM) e político/econômicos.

 

 

 

 

 

 

 

Operação Síncrona

Assim que se tornou claro que os barramentos teriam de rodar acima de 66MHz, desenhistas de DRAM precisaram encontrar uma maneira de sobrepujar os problemas de latência que ainda existiam. Em implementando uma interface síncrona, eles foram capazes de fazê-lo e ainda ganhar mais algumas vantagens.

Com uma interface assíncrona, a CPU precisa esperar até que a DRAM complete suas operações internas, o que leva tipicamente 60ns. Através do controle síncrono, a DRAM trabalha regida pelo clock do sistema. A DRAM obtém endereço, dados e sinais de controle, e a CPU é liberada para lidar com outras funções. Após um número específico de ciclos, os dados são disponibilizados e a CPU pode lê-los das linhas de saída. O ciclo se repete sempre sob comando do clock do sistema.

Outra vantagem da interface síncrona é que o clock do sistema é a única informação de tempo que precisa ser fornecida à DRAM. Isto elimina a necessidade de múltiplos clocks ou pulsos a serem propagados. As entradas de dados são também simplificadas, pois os sinais de controle, endereços e dados podem todos ser obtidos sem necessidade de monitoramento pela CPU de tempos de preparação e manutenção. Os mesmos benefícios são aplicados à saída de dados.

 

JEDEC SDRAM

Todas as DRAM's que têm uma interface síncrona são conhecidas genericamente por SDRAM's (ou Synchronous Dynamic Read-Only Memory), a exemplo de CDRAM (Cache DRAM), RDRAM (Rambus DRAM), ESDRAM (Enhanced SDRAM) e outras. O tipo de SDRAM mais comumente assim chamado é a JEDEC SDRAM. (Joint Electronics Device Engineering Council).

As JEDEC SDRAM's não apenas têm interface síncrona controlada pelo clock do sistema, como também incluem arquitetura de duplo-banco e modo burst (1-bit, 2-bit, 4-bit, 8-bit e página inteira). Um 'registrador de modo' que pode ser setado na inicialização e carregado durante a operação controla o modo burst, o tipo de burst (seqüencial ou intercalado), o tamanho e a latência CAS (1, 2 ou 3).

A latência CAS é um dos diversos tempos relacionados a performance para SDRAM. Esta medida é o tempo necessário para dar entrada na linha de endereço e ativar o banco. Quando um ciclo burst de leitura é iniciado, os endereços são preparados e o RAS e CS (chip select) são mantidos baixos no próximo ciclo de clock (subida de CLK ou clock do sistema), deste modo ativando os sense amps do banco. Um período de tempo igual a tRCD (RAS to CAS delay, ou demora entre RAS e CAS) precisa ainda passar depois que CAS e CS são mantidos baixos (no próximo ciclo de máquina). Depois do período de tempo para tCAC (column access time, ou tempo de acesso a coluna) ter passado o primeiro bit de dados está na linha de saída e pode ser recuperado (no próximo ciclo de máquina). A regra básica é que a latência CAS vezes a velocidade do clock (tCLK) precisa ser igual ou maior que tCAC (ou CL x tCLK >= tCAC). Isso significa que o tempo de acesso a coluna é o fator limitante para a latência CAS.

SDRAM's foram introduzidas como a resposta a todos os problemas de performance, entretanto tornou-se rapidamente aparente que havia um benefício reduzido de performance e muitos problemas de compatibilidade. Os primeiros módulos SDRAM continham somente duas linhas de clock, mas isso foi imediatamente reconhecido como insuficiente. Resultou-se em dois designs diferentes (2-clock e 4-clock), e cada placa-mãe admitia um padrão somente. Apesar de que os tempos de acesso deveriam ser teoricamente de 5-1-1-1 sob 66MHz, muitas das SDRAM's originais operavam somente a 6-2-2-2 quando em pares, principalmente porque os chipsets da época tinham dificuldades com a velocidade e a coordenação de acessos entre os módulos. Chipsets posteriores avançaram nesse sentido, e o chip SPD (serial presence detect) foi incluído no padrão SDRAM de modo que os chipsets pudessem ler os tempos de acesso diretamente dos módulos de memória.

SDRAM's são oficialmente caracterizadas em MHz, ao invés de nanossegundos, de modo que há um denominador comum entre a velocidade do bus e a do chip. Esta velocidade é determinada dividindo-se 1 segundo (1 bilhão de nanossegundos) pela velocidade de saída do chip. Por exemplo, uma SDRAM de 67MHz tem velocidade de 15ns. Esta velocidade não é medida exatamente como uma DRAM assíncrona, o que daria uma falsa impressão de grande diferença de velocidade.

Os primeiros módulos SDRAM usaram chips de 83MHz (12ns) ou 100MHz (10ns), entretanto essas velocidades correspondiam somente ao bus de 66MHz. Estas SDRAM's são chamadas de PC66, para diferenciá-las da especificação PC100 da Intel.

 

SDRAM PC100

Quando a Intel decidiu oficialmente implementar um bus de sistema de 100MHz, eles compreenderam que a maioria dos módulos de memória disponíveis naquela época não operariam apropriadamente acima de 83MHz. Criou-se assim a especificação PC100, de modo que os fabricantes pudessem produzir módulos que funcionassem devidamente no chipset a ser lançado, o i440BX. A especificação PC100 definida pela Intel abrange largura de traçado dos circuitos impressos e dos chips, tamanho do traçado e espaçamento, número de camadas de circuito impresso, especificações para a programação de EEPROM, etc. O tempo de acesso típico de uma SDRAM PC100 é de 4-1-1-1.

SDRAM's PC100 em barramentos de 100MHz ou mais provêm uma melhora de desempenho na ordem de 10% a 15% em sistemas Socket 7 (o padrão dos Pentium e Pentium MMX). Os Pentium II não vêm uma melhora tão significativa, pois o cache L2 opera a 1/2 da velocidade da CPU.

 

SDRAM DDR ou SDRAM II

Uma limitação das SDRAM's JEDEC é que o limite teórico para o design é de 125MHz, apesar de que avanços tecnológicos podem permitir até 133MHz. É óbvio que a velocidade do bus de memória precisa crescer além disso, de modo que a largura de banda de memória fique em sintonia com futuras CPU's. Há vários "padrões" competindo no horizonte e são promissores, entretanto a maioria deles requer pinagens específicas, menores tamanhos de bus, ou outros requerimentos. A curto prazo, a SDRAM DDR (Double Data Rate ou Razão Dupla de Dados) parece bastante razoável. Essencialmente, este design permite a ocorrência de ativação de operações de saída no chip de memória tanto na subida quanto na descida de sinal de clock. Atualmente, só na subida do sinal de clock é que um evento pode ocorrer, por conseguinte a SDRAM DDR pode efetivamente dobrar a velocidade de operação para até pelo menos 200MHz.

 

ESDRAM ou Enhanced SDRAM

De modo a superar alguns problemas com a latência inerente a módulos DRAM, vários fabricantes incluíram uma pequena quantidade de memória SRAM (Static RAM) diretamente no chip, efetivamente criando uma cache interna ao chip DRAM. Um destes designs que estão ganhando atenção no mercado é a ESDRAM da Ramtron International Corporation.

A ESDRAM é essencialmente uma SDRAM com uma pequena cache embutida, permitindo menores tempos de latência e operações burst de até 200MHz. Assim como a cache externa do sistema, esta cache embutida no módulo tem como objetivo armazenar os dados mais freqüentemente usados, de modo a minimizar o acesso à DRAM, que é mais lenta. Uma das vantagens deste chip interno de SRAM é que um barramento mais largo pode ser usado entre a SRAM e a DRAM, efetivamente aumentando a largura de banda e melhorando a velocidade, mesmo que haja uma "perda" (dado não encontrado) na cache.

 

Protocol-based DRAM

Todas as SDRAM já discutidas têm linhas separadas de controle, endereço e dados que limitam a velocidade pela qual podem operar com a tecnologia corrente. A fim de superar essa limitação, muitos designs implementam todos esses sinais no mesmo barramento. Isso é feito através de protocolos de comunicação, donde vem o nome Protocol Based DRAM's. Os dois protocolos mais importantes são SyncLink DRAM (ou SLDRAM) e Direct Rambus DRAM (DRDRAM), da Rambus, Inc.

DRDRAM ou Rambus

Desenvolvido pela Rambus, Inc., a DRDRAM ou RDRAM é extremamente rápida e usa um "canal" de transmissão de dados, que é pelo menos 10 vezes mais rápido que o DRAM padrão. Este canal é menor em largura, entretanto (16 bits versus 64 bits), o que torna a RDRAM cerca de duas vezes mais rápida que a SDRAM comum. A RDRAM opera tipicamente a 800MHz.

A alta velocidade também causa problemas, como a necessidade de fiação mais curta dentro do chip e maior blindagem de modo a prevenir interferência eletromagnética. Em adição, a RDRAM é tecnologia proprietária da Rambus e Intel (que comprou os direitos da tecnologia), portanto fabricantes devem pagar royalties a essas duas empresas, e ainda assim não terão controle sobre a tecnologia.

SLDRAM ou SyncLink DRAM

A tecnologia competidora da RDRAM, é suportada por um consórcio de fabricantes, e é um padrão aberto, o que significa que seu uso não obriga o pagamento de royalties. A SLDRAM também é baseada em protocolo, que usa pacotes para transmitir endereços, dados e sinais de controle. A SLDRAM pode operar em barramento mais veloz que o padrão SDRAM, até cerca de 200MHz. E a saída de dados pode operar no dobro da velocidade do clock do sistema, chegando a 400MHz ou até 800MHz num futuro próximo.

O método de trabalho da SLDRAM não requer o redesenho dos chips de memória, e devido a sua operação em freqüências mais baixas que a RDRAM, há menos problemas de ruído e interferências nos sinais. A SLDRAM também prevê a utilização de 16 bancos de memória.

Apesar de que a Intel pretende suportar apenas o padrão RDRAM em chipsets futuros, fabricantes rivais de chipsets e de memória, além do poder de pressão do usuário final, podem forçar a Intel a incluir suporte a SLDRAM também.

 

Linha de Tempo e as Memórias

O quadro abaixo ilustra as diversas tecnologias de memória e a linha de tempo, para demonstrar quando emergiram e seu tempo de uso no mercado.

 

 

 

 

 

 

Bibliografia

"The Ultimate Memory Guide", http://www.kingston.com/king/mg0.htm#top
Copyright 1999 Kingston Technology Company

"RAM Guide", http://www.tomshardware.com/guides/ram/index.html
Copyright 1996-1999 Thomas Pabst <tom@tomshardware.com>

"Whatis.com", http://www.whatis.com
Copyright 1996-1999 whatis.com, Inc.