Tecnologias em Memória RAM

Tecnologias de memórias RAM

Mesmo não podendo baixar o tempo de acesso da memória dinâmica (sobretudo por causa da necessidade de ciclos de refresh), os fabricantes conseguiram desenvolver diversas novas tecnologias de construção de circuitos de memória RAM. Embora tenha o mesmo tempo de acesso, circuitos com tecnologias de construção diferentes podem apresentar velocidades diferentes. Uma memória EDO, por exemplo, é mais rápida que uma memória FPM, mesmo quando as duas apresentam o mesmo tempo de acesso.

Quando dizemos “tecnologia de construção de memória”, estamos nos referindo ao tipo de circuito integrado de memória utilizado (FPM, EDO, BEDO, SDRAM, DDR-SDRAM, VCM, RDRAM, etc.). Esses circuitos poderão ser montados em qualquer tipo de módulo de memória, em especial SIMM-72, DIMM e RIMM — ou seja, você pode encontrar módulos SIMM-72 ou DIMM construídos utilizando circuitos FPM, EDO, BEDO ou SDRAM. Muitos leigos confundem os dois grupos, não entendendo a diferença entre um módulo SIMM e um “módulo EDO” (não existe este tipo de módulo, embora a memória EDO possa ser utilizada em módulo SIMM).

Memória Fast Page Mode (FPM)

Memória Fast Page Mode (FPM)

A memória FPM retém o valor da última linha acessada. Com isso, para os próximos acessos que forem feitos à mesma linha, o controlador de memória não precisará enviar à memória o valor da linha. O resultado disso é que o acesso será mais rápido. Enquanto o acesso ao primeiro dado de uma linha demorará o tempo normal, o acesso aos demais dados da mesma linha será mais rápido. Observe, na Figura abaixo, que, para o acesso de quatro dados consecutivos armazenados em uma mesma linha, foi necessário enviar o valor da linha apenas uma vez. Cada linha de dados da matriz de capacitores da memória é chamada página e daí o nome Fast Page Mode.

Funcionamento da memória FPM

Para entender melhor como funciona a temporização de uma memória FPM, observe a Figura abaixo. Além do tempo de acesso (tRAC, valor estampado no circuito), devemos saber o tempo de ciclo da página (tPC), que é o quanto a memória demora para retornar novos acessos dentro de uma mesma linha, ou seja, o “tempo de acesso” para a leitura de novos dados da mesma linha. Como você pode observar, o tempo de ciclo da página (tPC) é menor que o tempo de acesso (tRAC). Com isso, dados que estejam presentes dentro de uma mesma linha são lidos mais rapidamente.

Temporização em memórias FPM

O valor do tempo de ciclo da página (tPC) é formado pela soma de dois outros valores, tempo de pré-carga do CAS (tCP, CAS precharge time) e comprimento do pulso de CAS (tCAS, CAS pulse width), conforme observado na Figura acima. Todos esses valores são discriminados nas especificações técnicas do circuito de memória e variam de acordo com o modelo da memória.

Uma determinada memória FPM tem 60 ns de tempo de acesso (tRAC) e 35 ns de tempo de ciclo da página (tPC). Supondo um micro com barramento de 66 MHz, vimos que cada acesso à memória necessitará de quatro pulsos de clock (dois normalmente necessários, mais dois wait states), para poder atingir os 60 ns do tempo de acesso exigido pela memória (15 ns x 4 = 60 ns). Entretanto, para os acessos seguintes, menos pulsos serão necessários: o “tempo de acesso” para os demais dados que se encontram na mesma linha da memória será de apenas 35 ns. Serão necessários, portanto, três pulsos de clock para fazer esses acessos consecutivos (35 ns ¸ 15 ns = 2,3; como não existe pulsos de clock “quebrados”, devemos utilizar o número inteiro mais próximo).

Nesse caso, dizemos que o acesso à memória RAM será feito em um ciclo 4-3-3-3, isto é, serão usados quatro pulsos de clock para o primeiro acesso e três pulsos para os demais acessos na mesma linha.

Se, em vez de uma memória de 60 ns tivéssemos uma de 70 ns com um tempo de ciclo da página (tPC) de 40 ns, o acesso seria feito a 5-3-3-3. A conta é simples: vimos anteriormente que uma memória de 70 ns de tempo de acesso instalada em um barramento de 66 MHz necessita de três wait states e, com isso, cada acesso à memória necessita de cinco pulsos de clock. Como o tempo de ciclo da página é de 40 ns, também serão necessários três pulsos de clock para cada acesso feito a dados presentes na mesma linha (40 ns ¸ 15 ns = 2,6).

Dessa forma, tão importante quanto saber o tempo de acesso de uma memória FPM, é saber o seu tempo de ciclo da página (tPC).

IMPORTANTE: Na prática são necessários mais pulsos de clock do que os que estamos calculando. Na verdade, o ciclo típico para memórias FPM é 6-3-3-3 e não 4-3-3-3 como calculamos. Essa diferença de dois pulsos de clock no primeiro acesso (que eqüivale a 30 ns) é resultado, entre outras coisas, do atraso criado pelo controlador de memória RAM. Esse tempo de atraso é listado nas especificações técnicas do chipset (Ponte Norte). Por exemplo, no manual técnico do chipset Intel 430TX, é especificado que o seu ciclo mínimo para memórias FPM é 6-3-3-3. O valor adotado na prática depende da quantidade de wait states que está sendo utilizada (por exemplo, memórias FPM de 70 ns utilizarão ciclo 7-3-3-3 quando usadas em conjunto com esse chipset).

Por esse motivo, dizemos que o ciclo de acesso da memória FPM é x-3-3-3, onde x varia conforme o chipset utilizado e a quantidade de wait states utilizada.

Memória Extended Data Out (EDO)

Memória RAM EDO

Memória RAM EDO

EDO ou Extended Data Out, é mais rápida que a FPM pois teve uma evolução em como trabalha seu modo de acesso. A memória EDO teve seus circuitos de timing modificados para que um acesso a memória pudesse começar antes que o outro acesso tivesse terminado dando uma diferença de desempenho de 3 a 5% em relação a FPM. Este tipo de memória tinha que trabalhar aos pares pois trabalhavam com 32 bits por vez enquanto os PCs trabalhavam com 64 bits naquela época.

A memória EDO (também chamada Hyper Page Mode) é uma pequena modificação na estrutura da memória FPM. Se você reparar na linha de tempo da memória FPM (Figura abaixo), verá que esta se torna inativa quando o sinal RAS é desabilitado, o que não acontece na memória EDO. Os dados permanecem na saída da memória por mais tempo, mesmo quando o sinal RAS é desabilitado.

Funcionamento da memória FPM

A conseqüência disso é que o próximo endereço poderá começar a ser enviado à memória enquanto os dados ainda estão em sua saída, pois o sinal RAS poderá ser acionado novamente sem alterar o valor dos dados que ainda estão na saída da memória ou seja, ganharemos tempo.

Observe que na Figura abaixo, enquanto o último dado lido ainda está no barramento de dados, a memória já está decodificando o próximo endereço, aumentando a velocidade da memória.

Funcionamento da memória EDO

Na realidade, a grande diferença da memória EDO para a FPM é o tempo de ciclo da página (tPC), que é, em média, 10 ns menor para uma memória que tenha o mesmo tempo de acesso.

Por exemplo, uma determinada memória EDO de 60 ns tem um tempo de ciclo da página (tPC) de 25 ns. Apesar do primeiro acesso à memória ser feito com a mesma temporização da memória FPM (já que o tempo de acesso é o mesmo e, com isso, utilizarão a mesma quantidade de wait states), os acessos consecutivos de dados armazenados em uma mesma linha cairão de três pulsos de clock para dois (25 ns ¸ 15 ns = 1,6).

Na prática, entretanto, a memória EDO utiliza tipicamente o ciclo 6-2-2-2. Através de softwares especificos, pode-se identificar o ciclo que está sendo atualmente utilizado por sua memória, como na Figura abaixo (linha DRAM Read-Burst).

Memória EDO, ciclo 6-2-2-2

Dessa forma, costumamos dizer que o ciclo típico da memória EDO é x-2-2-2, onde x varia de acordo com o chipset e a quantidade de wait states.

O ganho de desempenho nominal da memória EDO sobre a FPM é de 20%. A conta é simples: tipicamente uma memória FPM de 60 ns de tempo de acesso utiliza 15 pulsos de clock para o acesso a quatro dados consecutivos (6-3-3-3) e, com memória EDO de 60 ns, o número de pulsos de clock necessários cai para 12 (6-2-2-2).

Entretanto, o ganho de desempenho real é questionável, por dois motivos básicos. Primeiro, a memória EDO só é mais rápida que a memória FPM quando são feitos acessos consecutivos dentro de uma mesma linha. Em segundo lugar, o impacto desse ganho de desempenho é mascarado pelo uso da memória cache, pois em pelo menos 80% das vezes que o processador acessa a memória, na verdade está acessando o cache de memória e não a memória RAM.

Na prática, o ganho de desempenho de um micro com memória EDO em relação a um micro com memória FPM é de cerca de 8% (FONTE: TORRES, Gabriel. Memória EDO é mais rápida. O Dia Informática, Rio de janeiro, 26 de setembro de 1997, pp. 1, 4-5). Importante notar que mesmo esse aumento de desempenho de 8% só é válido para operações de leitura em memória. Em operações de escrita, o desempenho da memória EDO mantém-se o mesmo da memória FPM.

As memórias EDO foram introduzidas na época do processador Pentium. Sua utilização, porém, depende do chipset da placa-mãe. A grande maioria dos chipsets para Pentium e superiores aceita a memória EDO sem problemas.

Entretanto, não são todos os chipsets para placas-mãe soquete 3 (486 e 5×86) que aceitam a memória EDO. Nesse caso, pode acontecer que você tente instalar uma memória EDO em um 486 ou 5×86 e não funcione.

FPM e EDO dizem respeito à tecnologia utilizada pelos circuitos integrados de memória. Tanto a memória FPM quanto a EDO estão disponíveis em módulos SIMM-72 ou DIMM. Dessa forma, podemos ter módulos SIMM-72 tanto FPM quanto EDO.

Não se tem como diferenciar a “olho nu” uma memória FPM de uma EDO. A melhor maneira para saber qual o tipo de memória que está instalada em seu micro é utilizar programas de identificação de hardware.

Memória Burst Extended Data Out (BEDO)

Módulo de Memória BEDO

Esse tipo de memória era, e ainda op é, muito rara de ser encontrada. Além disso, não eram todos os chipsets que aceitam trabalhar com esse tipo de memória. Somente alguns chipsets da VIA Technologies permitem utilizar esse tipo de memória.

A memória BEDO é igual à EDO, com a única diferença de ter integrado um contador de endereços. Quando o processador (ou o controlador de cache) necessita ler um dado, o controlador de memória só precisa enviar o valor da linha e da coluna iniciais. A própria memória trata de colocar os próximos três dados automaticamente no barramento de dados.

Essa modificação faz aumentar muito o desempenho para a leitura de dados consecutivos. Na leitura de dados não-seqüenciais, a memória BEDO tem o mesmo desempenho da memória EDO.

Comparativamente aos exemplos dados anteriormente, uma memória BEDO de 60 ns tem um ciclo 6-1-1-1 (ou seja, nove pulsos de clock). Isso nos dá um ganho de desempenho máximo teórico de 40% sobre a memória FPM e de 25% sobre a memória EDO.

Não podemos nos esquecer de que esses valores são teóricos: para os atingirmos, deveremos utilizar acessos sempre seqüenciais; além do que, não foi levado em consideração o uso do cache de memória.

Resumidamente, era o tipo de circuito de memória RAM raro, praticamente não foi usado no PC e era uma memória EDO melhorada, mais rápida, que foi ofuscada pelo lançamento das memórias SDRAM.

Memória Synchronous Dynamic RAM (SDRAM)

Memória Synchronous Dynamic RAM (SDRAM)

Ao contrário de todas as outras tecnologias apresentadas anteriormente, a memória SDRAM é uma memória síncrona, isto é, utiliza-se do clock do barramento local para comandar os seus circuitos internos.

As demais tecnologias são chamadas assíncronas e não permitem funcionamento acima de 66 MHz (muito embora memórias FPM e EDO funcionem em micros com barramento de 75 MHz ou 83 MHz, as memórias estarão trabalhando em overclock e necessitarão de mais wait states).

Relatamos que o tempo de acesso nas memórias SDRAM é uma característica chamada latência do CAS (CL) e que pode ser de dois ou três pulsos de clock. Os acessos consecutivos a dados presentes em uma mesma linha são feitos usando apenas um pulso de clock, por causa da existência de um contador interno dentro da memória, similarmente ao que acontece nas memórias BEDO. Por esse motivo, o ciclo típico da memória SDRAM é x-1-1-1, onde x varia conforme a latência do CAS. Uma memória SDRAM com latência do CAS de três pulsos de clock terá um ciclo 3-1-1-1, enquanto que uma memória SDRAM com latência do CAS de dois pulsos de clock terá um ciclo 2-1-1-1.

As primeiras memórias SDRAM apresentavam problemas de compatibilidade: diversos chipsets não conseguiam detectar corretamente os parâmetros de temporização da memória e acabavam fazendo com que esta memória trabalhasse com o mesmo ciclo da memória EDO, não trazendo benefício nenhum. Por exemplo, uma memória SDRAM instalada em uma placa-mãe com chipset Intel 430VX, trabalha com ciclo 6-2-2-2. Para resolver esse problema, os módulos contendo memória SDRAM passaram a conter um circuito chamado SPD (Serial Presence Detect) — uma EEPROM que armazena informações sobre a correta temporização que deve ser usada para acessar a memória. A Figura abaixo mostra o detalhe desse circuito.

Detalhe do circuito SPD (Serial Presence Detect)

Pode-se ler os parâmetros armazenados na memória SPD do módulo DIMM através de programas de identificação de hardware. A leitura desses parâmetros permite que você descubra, entre outras coisas, qual é a latência do CAS (tempo de acesso) das memórias SDRAM instaladas em no micro.

Internamente, a memória SDRAM apresenta diversas modificações. Além de ser sincronizada pelo clock do barramento, a SDRAM tem um contador interno que faz com que o controlador de memória não precise requisitar novos dados, caso estes sejam consecutivos, da mesma forma que ocorre na memória BEDO. E, principalmente, a SDRAM tem internamente duas matrizes de capacitores, o que permite dois acessos a endereços diferentes serem iniciados em paralelo. Outra característica da memória SDRAM é que o acesso a ela é feito através de comandos, sendo uma memória mais “inteligente” do que as demais. Na Figura abaixo, você observa o funcionamento interno da memória SDRAM.

Diagrama simplificado do funcionamento interno da memória SDRAM

Na Figura abaixo, você observa o diagrama de tempo da memória SDRAM. Repare que o controlador de memória só precisa fornecer o primeiro endereço de uma linha. A própria memória, através de seu contador, entrega automaticamente os demais dados presentes na mesma linha (esse método de acesso é chamado SDRAM burst). Outra observação que você pode fazer é em relação aos comandos. Para fazer uma leitura em memória, o controlador simplesmente envia o comando “read” para a memória. A memória da Figura abaixo tem uma latência do CAS de três pulsos de clock.

Diagrama de tempo para uma memória SDRAM

Conforme mencionado anteriormente, a freqüência de operação máxima que uma memória SDRAM pode trabalhar vem estampada em seu invólucro , na forma de período (ou seja, a duração de cada pulso de clock, em nanossegundos). Você pode facilmente calcular a freqüência de operação máxima da memória através da fórmula:

Frequência de operação máxima = 1000/valor estampado

A característica mais importante de uma memória SDRAM é a sua capacidade de trabalhar em freqüências de operação mais elevadas mantendo o mesmo desempenho. O grande problema de memórias assíncronas como a EDO e a FPM, é que quando aumentamos a freqüência do barramento, obrigatoriamente deveremos aumentar a quantidade de wait states, o que diminui o desempenho do micro. É uma situação estranha: o aumento da freqüência do barramento é feito para aumentar a velocidade de acesso à memória, mas essa acaba sendo diminuída pelo uso de wait states.

Supondo um acesso com ciclo 6-1-1-1, a memória SDRAM tem um ganho de desempenho de 25% sobre a memória EDO (usando ciclo 6-2-2-2) e 40% sobre a memória FPM (usando ciclo 6-3-3-3).

Na prática, contudo, esses valores não são obtidos. Devemos lembrar que o impacto da memória SDRAM é minimizado pelo uso do cache de memória e, além disso, esses cálculos consideram somente que os acessos serão feitos seqüencialmente, o que na prática pode não ocorrer.

O valor estampado no circuito não é o tempo de acesso da memória SDRAM, mas sim a sua freqüência de operação máxima. O tempo de acesso da memória SDRAM é uma característica chamada latência do CAS (CL, CAS latency), que indica quantos pulsos de clock a memória SDRAM demora para começar a entregar os dados solicitados.

A latência pode ser diminuída se você operar a memória SDRAM a uma freqüência mais baixa da especificada. O caso mais comum é em relação aos circuitos -10 com latência de três pulsos de clock. Se forem instalados em um micro com barramento de 66 MHz, você poderá diminuir a latência para dois, de modo a ganhar desempenho. Esse ajuste é feito no Setup do micro, muito embora a maioria dos micros hoje consiga configurar isso automaticamente, por causa da existência do circuito SPD que indica ao controlador de memória o tipo de memória que está instalada na placa-mãe.

É muito importante saber a latência da memória SDRAM. Foram colocados no mercado memórias com diferentes latências (era mais comum encontrar são memórias com dois ou três pulsos de clock). Quanto menor a latência, melhor. Como dissemos, você pode descobrir a latência do CAS lendo os parâmetros da memória SPD do módulo de memória, através de programas de identificação de hardware.

As freqüência de operação mais comuns para memórias SDRAM são apresentados na tabela a seguir.

Valor estampado Freqüência de operação máxima
-15 66 MHz
-12 83 MHz
-10 100 MHz
-8 125 MHz
-75 133 MHz
-7 143 MHz

Entretanto, as memórias de 100 MHz foram criadas antes de processadores com barramento externo de 100 MHz existirem (como o K6-2 a partir de 300 MHz, o Pentium II a partir de 350 MHz e o Pentium III). Quando esses processadores vieram ao mercado, a Intel descobriu que as memórias de 100 MHz não funcionavam corretamente com processadores operando externamente a 100 MHz. Com isso, a Intel criou um padrão de memórias SDRAM chamado PC-100, que são memórias SDRAM que operam corretamente a 100 MHz.

Resumindo:

Tanto as memórias FPM quanto as memórias EDO são assíncronas, o que significa que elas trabalham em seu próprio ritmo, independentemente dos ciclos da placa-mãe. Isso explica porque memórias FPM que foram projetadas para funcionar em placas para processadores 386 ou 486 funcionam sem problemas em placas soquete 7, que trabalham a 66 MHz. Na verdade, a memória continua trabalhando na mesma velocidade, o que muda são os tempos de espera que passam a ser mais altos. Assim, em vez de responder a cada 2 ciclos da placa-mãe, elas podem passar a responder a cada 3 ou 4 ciclos, por exemplo.

As memórias SDRAM (Synchronous Dynamic RAM) por sua vez, são capazes de trabalhar sincronizadas com os ciclos da placa-mãe, sem tempos de espera. Isso significa que a temporização das memórias SDRAM é sempre de uma leitura por ciclo. Independentemente da frequência de barramento utilizada, os tempos de acesso serão sempre de 6-1-1-1, ou mesmo 5-1-1-1.

Veja que o primeiro acesso continua tomando vários ciclos, pois nele é necessário realizar o acesso padrão, ativando a linha (RAS) e depois a coluna (CAS). Apenas a partir do segundo acesso é que as otimizações entram em ação e a memória consegue realizar uma leitura por ciclo, até o final da leitura.

O burst de leitura pode ser de 2, 4 ou 8 endereços e existe também o modo “full page” (uma novidade introduzida nos módulos SDRAM), onde o controlador pode especificar um número qualquer de endereços a serem lidos sequencialmente, até um máximo de 512. Ou seja, em situações ideais, pode ser possível realizar a leitura de 256 setores em 260 ciclos! Só para efeito de comparação, se fossem usadas memórias regulares, com tempos de acesso similares, a mesma tarefa tomaria pelo menos 1280 ciclos.

As memórias SDRAM a serem mais rápidas que as EDO e FPM é a divisão dos módulos de memória em vários bancos. Um módulo DIMM pode ser formado por 2, 4, ou mesmo 8 bancos de memória, cada um englobando parte dos endereços disponíveis. Apenas um dos bancos pode ser acessado de cada vez, mas o controlador de memória pode aproveitar o tempo de ociosidade para fazer algumas operações nos demais, como executar os ciclos de refresh e também a pré-carga dos bancos que serão acessados em seguida. Nos módulos EDO e FPM, todas essas operações precisam ser feitas entre os ciclos de leitura, o que toma tempo e reduz a frequência das operações de leitura.

A partir das memórias SDRAM, tornou-se desnecessário falar em tempos de acesso, já que a memória trabalha de forma sincronizada em relação aos ciclos da placa-mãe. As memórias passaram então a ser rotuladas de acordo com a frequência em que são capazes de operar. No caso das memórias SDR-SDRAM temos as memórias PC-66, PC-100 e PC-133, no caso das DDR-SDRAM temos as DDR-200, DDR-266, DDR-333, DDR-400 (e assim por diante), enquanto nas DDR2 temos as DDR2-533, DDR2-666, DDR2-800, DDR2-1066, que foram sucedidas pelos padrões de memórias DDR3. Um módulo de memória PC-133 deve ser capaz de operar a 133 MHz, fornecendo 133 milhões de leituras (teóricas) por segundo. Entretanto, essa velocidade é atingida apenas quando o módulo realiza um burst de várias leituras. O primeiro acesso continua levando 5, 6 ou mesmo 7 ciclos da placa-mãe, como nas memórias antigas.

O fato de ser um módulo PC-100 não indica que ele possua um tempo de acesso de 10 ns ou menos (nem mesmo os módulos DDR3 atuais atingem essa marca). Pelo contrário, a maioria dos módulos PC-100 trabalhavam com tempos de acesso de 40 ns. Entretanto, graças a todas as otimizações que vimos, as leituras podiam ser paralelizadas, de forma que, no final, o módulo suporta bursts de leitura onde, depois de um lento ciclo inicial, ele consegue realmente entregar 64 bits de dados a cada 10 ns.

Veja que das memórias regulares, até as SDRAM, foi possível multiplicar a velocidade de transferência sem fazer alterações fundamentais nas células, que continuam seguindo o mesmo projeto básico, com um transístor e um capacitor para cada bit armazenado. Desde a década de 80, as reduções nos tempos de acesso foram apenas incrementais, acompanhando as melhorias nas técnicas de fabricação. O que realmente evoluiu com o passar do tempo foram os circuitos em torno dos módulos, que otimizaram o processo de leitura, extraindo mais e mais performance.

Chegamos então às memórias DDR, DDR2 e DDR3 usadas atualmente, que levam este processo crescente de otimização a um novo nível, permitindo que o módulo de memória realize várias transferências por ciclo, multiplicando a frequência efetiva.

PC-66

Todas as memórias SDRAM abaixo de -10 são classificadas como PC-66. As primeiras memórias -10 lançadas no mercado, apesar de estarem rotuladas para operarem a 100 MHz, não funcionam corretamente a 100 MHz, sendo classificadas, portanto, como PC-66.

Se você tiver um micro com processador operando externamente a 100 MHz, deverá obrigatoriamente utilizar memória do tipo PC-100. Caso você utilize uma memória PC-66, o micro não ligará ou então apresentará erros aleatórios, como congelamentos e resets.

PC-100

As memórias SDRAM classificadas como PC-100 têm diferenças importantes em relação às memórias PC-66, permitindo a correta operação a 100 MHz. Entre essas diferenças estão:  Velocidade: Os circuitos PC-100 utilizam tempos menores em suas características operacionais;  Programação da memória SPD: O conteúdo dessa EEPROM é completamente diferente, refletindo as corretas temporizações exigidas; para o funcionamento a 100 MHz;  Número de camadas: Os módulos de memória PC-66 utilizam placas de circuito impresso de quatro camadas, enquanto os módulos PC-100 utilizam placas com seis camadas;  Contatos: Os contatos de borda de módulos PC-100 são mais finos e as trilhas da placa, mais curtas.

As memórias SDRAM -8 são classificadas como PC-100. O problema é em relação às memórias -10. As primeiras memórias SDRAM -10 lançadas no mercado eram PC-66 e não PC-100. Você pode identificar se uma memória SDRAM -10 é PC-66 ou PC-100 utilizando programas de identificação de hardware.

PC-133

Memórias -75 e -7 são classificadas como PC-133, e são destinadas a micros com processadores operando externamente a 133 MHz.

Identificando Memórias SDRAM

Pode-se identificar se a memória SDRAM que você possui é PC-66, PC-100 ou PC-133 através de programas de identificação de hardware.

A identificação da memória usando esse tipo de programa é muito mais segura do que confiar em etiquetas decalcadas que alguns fabricantes colam sobre o módulo de memória, já que o programa lê o conteúdo da memória SPD para informar o tipo do módulo. Uma etiqueta colada sobre o módulo de memória não garante que este seja realmente do tipo que a etiqueta diz (não é incomum haverem pessoas inescrupulosas no mercado que colam etiquetas escrito “PC-100” sobre memórias PC-66).

Memória Double Data Rate SDRAM (DDR-SDRAM ou SDRAM-II)

Essa memória é um avanço sobre a SDRAM. Ela transfere dois dados por pulso de clock. Atualmente existem memórias DDR-SDRAM operando a 100 MHz, 133 MHz, 400 MHz e etc. Os circuitos de memória DDRSDRAM são classificados de acordo com o desempenho, em megahertz. Assim, existem circuitos DDR200 e DDR266. Os módulos de memória que usam memórias DDR-SDRAM — chamados DDR-DIMM são classificados de acordo com a taxa de transferência obtida. Módulos PC1600 são módulos DDRDIMM que usam circuitos DDR200, atingindo uma taxa de transferência máxima teórica de 1.600 MB/s, e módulos PC2100 são módulos DDR-DIMM que usam circuitos DDR266, atingindo uma taxa de transferência máxima teórica de 2.100 MB/s.

Memória Enhanced SDRAM (ESDRAM)

De modo a tentar resolver o problema da latência das memórias SDRAM, alguns fabricantes de memória desenvolveram essa tecnologia, que consiste em adicionar uma pequena quantidade de memória estática dentro do circuito de memória, criando um pequeno cache. Esse procedimento diminui a latência da memória e permite que a memória trabalhe em freqüências de até 200 MHz.

Memória Virtual Channel Memory (VCM)

As memórias RAM não permitem que mais de um dispositivo as acesse por vez. A NEC desenvolveu um tipo de memória baseada na SDRAM chamada VCM (Virtual Channel Memory), que quebra essa limitação. Nesse tipo de memória, a memória RAM é dividida em áreas chamadas canais, e cada dispositivo pode acessar um desses canais diretamente. Por exemplo, o processador aloca um canal para uso do próprio processador, a placa de vídeo AGP aloca um outro canal para uso próprio, o disco rígido aloca um outro canal para uso próprio e assim sucessivamente para cada dispositivo que possa acessar a memória RAM diretamente. O acesso a esses canais pode ser feito de forma simultânea por todos os dispositivos.

A memória VCM têm 16 canais; permite, portanto, que até 16 dispositivos acessem a memória simultaneamente.

A memória VCM tem a arquitetura apresentada na Figura abaixo. Os 16 canais são, na verdade, 16 buffers existentes entre as matrizes capacitivas da memória e o barramento de dados da memória. Como você pode facilmente concluir, é fisicamente impossível que mais de um dispositivo acesse a uma matriz capacitiva por vez. O macete usado por essa memória é fazer com que o dispositivo que está armazenando um dado na memória “pense” que o dado foi armazenado. Na verdade, o dado que o dispositivo pediu para ser armazenado foi temporariamente armazenado no buffer, isto é, no canal que o dispositivo alocou. Assim, o dispositivo é liberado (não precisa ficar esperando o dado ser efetivamente armazenado na matriz capacitiva) e a memória se organiza internamente de forma a ir transferindo os dados presentes nos canais (Isto é, nos buffers de armazenamento) para as matrizes capacitivas à medida em que o tempo for permitindo.

Funcionamento interno da memória VCM

Por causa da existência desses 16 buffers, essa memória não tem nenhuma latência para a escrita de dados nela. Assim, quando um dado é enviado para a memória, é imediatamente armazenado (ou pelo menos o dispositivo pensa que sim), liberando o dispositivo. Na leitura de dados, a memória VCM demora dois pulsos de clock para começar a entregar os dados solicitados, funcionando, portanto, como uma SDRAM de latência de CAS de dois pulsos de clock.

Portanto, essa memória é mais rápida do que a SDRAM para operações de escrita em memória.

Os circuitos de memória VCM eram, ou ainda são, vendidos em módulos DIMM. Esses módulos são classificados como VC-100 (marcação -10) e VC-133 (marcação -75), de acordo com a freqüência de operação máxima suportada pelo módulo. Alguns chipsets, especialmente os da VIA Technologies, aceitam esse tipo de memória.

Memória Rambus (RDRAM)

Com a memória SDRAM chegando ao limite de velocidade máxima em que pode ser construída, novas alternativas para a construção de memórias RAM são necessárias. Uma das alternativas vem sendo sugerida há algum tempo pela empresa Rambus com a sua tecnologia Rambus DRAM (RDRAM). Essa é uma tecnologia proprietária e seu uso depende do pagamento de royalties à empresa Rambus, pois não se trata somente da construção de novos circuitos integrados, mas de todo um novo conceito envolvendo o acesso à memória RAM.

Os processadores Intel de 7ª geração, como o Pentium 4, foram os maiores prejudicados com o atraso na adoção do padrão Rambus de memória e de seu elevado preço na época. Como o barramento externo desses processadores transfere quatro dados por pulso de clock, atingindo um desempenho de 3.200 MB/s a 100 MHz, a memória Rambus era a única solução existente na época para que esses processadores trabalhem no topo do seu desempenho.

Uma solução para a época foi o uso dos processadores Pentium 4 com memórias PC-100 ou DDR200, que fez com que esses processadores não atinjam o topo do seu desempenho, como ocorreu com o Athlon e Duron quando não estão usando memórias do tipo DDR-SDRAM.

Ao contrário das demais tecnologias de memória RAM, a RDRAM é baseada em protocolo, isto é, usa um padrão de barramento proprietário. Existem duas peças fundamentais utilizadas pela memória RDRAM para atingir exorbitantes taxas de transferência: um barramento curto entre a Ponte Norte do chipset e as memórias, porém trabalhando a uma freqüência de operação muito alta; e a arquitetura interna dos circuitos de memória.

Na Figura abaixo vemos a arquitetura do barramento Rambus. Esse é um barramento que trabalha somente a 16 bits, porém a 400 MHz, atingindo uma taxa básica de 800 MB/s. Como o Rambus opera transferindo dois dados por pulso de clock, a sua taxa de transferência é dobrada, atingindo 1.600 MB/s, o mesmo desempenho das memórias DDR200.

O barramento Rambus

O controlador de memória Rambus é, acima de tudo, um conversor de protocolos, pois converte o padrão de troca de dados utilizado pelo barramento local para o que é utilizado dentro do barramento Rambus. Assim, o que mais importa no caso do barramento Rambus não é a sua quantidade de bits, mas sim a taxa de transferência máxima.

Note que a taxa de transferência máxima da memória Rambus é hoje de 1.600 MB/s, a mesma das memórias DDR-SDRAM DDR200.

No caso dos processadores Intel de 7ª geração (Pentium 4), é necessário o uso de dois canais Rambus para que a taxa de transferência seja dobrada (1,6 GB/s por canal), atingindo a taxa de transferência de 3.200 MB/s que esses processadores são capazes de atingir.

A arquitetura interna dos circuitos de memória Rambus é muito diferente do que existe. Em vez de utilizar uma única matriz de capacitores (como ocorre nas memórias FPM, EDO e BEDO), ou até mesmo duas (como ocorre nas memórias SDRAM, DDR-SDRAM e VCM), a memória RDRAM utiliza tipicamente 16 matrizes de capacitores, permitindo ler ou escrever até 16 dados simultaneamente por circuito.

Funcionamento interno da memória RDRAM

Memória SyncLink (SLDRAM)

Esse tipo de memória RAM, assim como a Rambus, foi baseada em protocolo. Sua vantagem sobre a memória Rambus foi a de pertencer a uma “arquitetura aberta”, ou seja, os fabricantes de processadores, memórias e chipsets não precisavam pagar direitos autorais à empresa que inventou essa tecnologia.

Essa memória pode operar a 200 MHz, entregando uma taxa de transferência de 1,6 GB/s. Como é capaz de transmitir dois dados por pulso de clock (como a DDR-SDRAM), sua taxa de transferência pode ser dobrada para 3,2 GB/s.

Além de ser mais barata que a RDRAM, sua grande vantagem em desempenho é ter uma latência menor.

Memórias DDR

Módulo de memória DDR

Apesar das otimizações, os módulos de memória SDR-SDRAM continuam realizando apenas uma transferência por ciclo, da forma mais simples possível. Depois de decorrido o longo ciclo inicial, as células de memória entregam uma leitura de dados por ciclo, que passa pelos buffers de saída e é despachada através do barramento de dados. Todos os componentes trabalham na mesma frequência.

As memórias DDR implementam algo novo que foi as torna capazes de realizarem duas transferências por ciclo e serem quase duas vezes mais rápidas que as memórias SDRAM regulares, mesmo mantendo a mesma frequência de operação e a mesma tecnologia básica. Vem daí o termo “DDR”, que significa “Double Data Rate”, ou frequência dupla de transferência de dados.

Com o lançamento das memórias DDR, as SDRAM passaram a ser chamadas de “SDR” (Single Data Rate) ou SDR-SDRAM, reforçando a diferença entre as duas tecnologias. Embora tanto as memórias DDR quanto as DDR2 e DDR3 continuem sendo memórias SDRAM, o termo saiu de uso, já que é muito mais fácil dizer “DDR” do que “DDR-SDRAM”.

os chips de memória DDR incluem circuitos adicionais, que permitem gerar comandos de acesso e receber os dados referentes às leituras duas vezes por ciclo de clock, executando uma operação no início do ciclo e outra no final. Como são utilizadas as mesmas trilhas para realizar ambas as transferências, não foi necessário fazer grandes modificações nem nos módulos de memória, nem nas placas-mãe.

Apesar disso, as células de memória propriamente ditas continuam operando na mesma frequência. Em um módulo DDR-266, por exemplo, elas operam a apenas 133 MHz, da mesma forma que num módulo SDR PC-133. O que se deu foi fazer com que cada um dos dois comandos de leitura (ou gravação) sejam enviados para um endereço diferente, na mesma linha. As duas leituras são enviadas através do barramento de dados na forma de duas transferências separadas, uma realizada no início e a outra no final do ciclo de clock:

duas transferências separadas, uma realizada no início e a outra no final do ciclo de clock

O maior problema é que o ciclo inicial continua demorando o mesmo tempo que nas memórias SDRAM, de forma que o ganho aparece apenas em leituras de vários setores consecutivos e a taxa de transferência nunca chega realmente a dobrar, variando bastante de acordo com o tipo de aplicativo usado.

A temporização para um burst de 8 leituras, usando memórias DDR, seria 5-½-½-½-½-½-½-½ (8.5 ciclos) ao invés de 5-1-1-1-1-1-1-1 (12 ciclos) como num módulo SDR. A diferença é menor em bursts menores, de apenas duas ou quatro leituras.

Apesar disso, as memórias DDR acabaram sendo um excelente negócio, pois tornaram possível obter ganhos perceptíveis de performance sem um aumento considerável no custo. Justamente por isso elas se popularizaram rapidamente, substituindo as memórias SDR em um espaço de menos de um ano.

Os módulos DDR podem ser vendidos tanto segundo sua frequência de operação quanto segundo sua taxa de transferência.

DDR-200 (100 MHz) = PC1600
DDR-266 (133 MHz) = PC2100
DDR-333 (166 MHz) = PC2700
DDR-400 (200 MHz) = PC3200
DDR-466 (233 MHz) = PC3700
DDR-500 (250 MHz) = PC4000

Assim como no caso dos módulos SDR, existem módulos de memória DDR CL2 e CL3, sendo que nos CL2 o tempo do acesso inicial é reduzido em um ciclo, resultando em um pequeno ganho de desempenho. Como as DDR realizam duas operações por ciclo, surgiram também os módulos CL2.5, que ficam no meio do caminho.

As especificações dos módulos indicam a frequência máxima para a qual seu funcionamento foi comprovado. Nada impede que você use o módulo a uma frequência mais baixa que o especificado; você pode usar um módulo DDR-400 em uma placa-mãe configurada para trabalhar a 133 MHz, por exemplo, mas nesse caso não existe ganho de desempenho com relação a um módulo DDR-266, com exceção de pequenas diferenças relacionadas ao valor CAS ou à temporização dos dois módulos.

Quase sempre, é possível também usar o módulo a frequências um pouco mais altas que o especificado, fazendo overclock. O módulo DDR-400 poderia funcionar então a 215 MHz, por exemplo. Fazer overclock sem aumentar a tensão da memória não traz perigo para os módulos (mesmo a longo prazo), porém você também não tem garantia de estabilidade. Normalmente os módulos CL2 ou CL2.5 suportam melhor os overclocks, já que o controlador tem mais margem para aumentar a temporização dos módulos para compensar o aumento na frequência.

Ao misturar dois módulos de especificações diferentes, é necessário nivelar por baixo, usando a frequência suportada pelo módulo mais lento. Justamente por isso, nem sempre é conveniente aproveitar os módulos antigos ao fazer upgrade de memória, pois você acaba sub-utilizando os novos módulos, obrigando-os a acompanharem as temporizações dos módulos antigos.

quase todos os módulos de memória SDRAM ou DDR possuem um chip de identificação chamado de “SPD” (Serial Presence Detect), que armazena os códigos de identificação do módulo, detalhes sobre a frequência, tempos de acesso, CAS latency e outras especificações. Estas informações são exibidas por programas de identificação, como o CPU-Z e o Sandra. No Linux, você pode ler as informações gravadas no chip usando o script “decode-dimms.pl” (você pode encontrá-lo usando o comando “locate”), que faz parte do pacote “lm-sensors”. Ele retorna uma longa lista de informações sobre cada um dos módulos instalados na máquina.

SPD de uma memória DDR

O SPD é um pequeno chip de memória EEPROM, com apenas 128 ou 256 bytes, que pode ser localizado facilmente no módulo.

Graças a ele, a placa-mãe pode utilizar automaticamente as configurações recomendadas para o módulo, facilitando a configuração. De qualquer maneira, você pode também desativar a configuração automática (By SPD) e especificar sua própria configuração através do Setup.

A maioria das placas atuais permite que a memória opere de forma assíncrona com o clock da placa-mãe, permitindo que a placa-mãe opere a 166 MHz, enquanto a memória opera a 200 ou 233 MHz, por exemplo. Ao usar um módulo antigo, também é possível fazer o contrário, mantendo a placa-mãe a 200 MHz, mas configurando a memória para operar a 133 MHz, por exemplo. Basta localizar a opção “DRAM Frequency”, “Memclock Value” ou similar, conforme exemplificado na figura abaixo:

alteração no DRAM Frequency no SETUP

Na maioria das placas é possível ajustar manualmente o valor CAS. Isso pode ser útil ao fazer overclock, pois um módulo DDR-400, pode não conseguir trabalhar estavelmente a 233 MHz (por exemplo), mantendo o CAS em 2 tempos, mas pode funcionar perfeitamente se o tempo for aumentado para 3 tempos. O inverso também é possível. Um módulo DDR-400 CAS 3 poderia vir a trabalhar estavelmente com CAS 2 se a frequência fosse reduzida para 166 MHz, por exemplo, oferecendo uma boa flexibilidade para quando você tem tempo disponível e quer chegar ao melhor desempenho possível.

OBS: Brincar com a frequência e tempos de acesso da memória não oferece riscos para o equipamento. No máximo você pode precisar limpar o setup, para que o micro volte a inicializar depois de tentar usar uma configuração não suportada pelos módulos.

O  risco está em aumentar a tensão usada pelos módulos (Memory Voltage). Pequenos aumentos na tensão aumentam, consequentemente, a possibilidade dos módulos trabalharem estavelmente a frequências mais altas, sobretudo nos módulos DDR2, que dissipam mais calor. O problema é que isso também pode abreviar a vida útil dos módulos, por isso nem sempre é uma boa ideia.

Aumentos de até 5 a 8% estão dentro do limite de tolerância dos circuitos e não oferecem grandes riscos. Você pode usar 2.65V em um módulo DDR ou 1.9V em um módulo DDR2, por exemplo, mas aumentos mais agressivos resultam quase sempre em uma redução significativa da vida útil dos módulos ou queima instantânea. Muitas placas oferecem a opção de aumentar as tensões dos módulos em 30% ou mais, NUNCA FAÇA ISSO pois você poderá queimar o módulo de memória no ato e, o que é pior, esquecer que o motivo foi o aumento da tensão e queimar um módulo novinho que, porventura, acabara de adquirir em substituição ao danificado numa “Santa Efigênia” da vida.

Esclareço que Overcloking é extremamente perigoso, assim como o é, como exemplo, se meter à besta de atualizar a BIOS da Placa mãe, se tem qualquer dúvida, nem que seja mínima, acerca do que está fazendo, pesquise muito, prepare o bolso e boa sorte.

16/10/2010