O5 MEMÓRIA RAM

Parte 5: Memória RAM

A memória RAM é mais um dos componentes essenciais dos micros PCs. O processador utiliza a memória RAM para armazenar programas e dados que estão em uso, ficando impossibilitado de trabalhar sem pelo menos uma quantidade mínima dela.
Atualmente, o recomendável em termos de custo benefício são 128 MB de memória RAM, principalmente se você estiver usando (ou pretender usar) o Windows 2000. Quando a quantidade de memória instalada é insuficiente, o Windows usa o disco rígido para simular a existência de mais memória, permitindo que os programas rodem, mesmo estando toda a memória física ocupada. Este recurso é chamado memória virtual, e consiste em criar um arquivo temporário no disco, chamado de swap file, ou arquivo de troca e gravar nele os dados que não cabem na memória. O problema é que apesar dos programas rodarem, tudo fica extremamente lento, pois o disco rígido é milhares de vezes mais lento que a memória RAM. Quanto mais dados precisarem ser copiados para o arquivo de troca, menor será o desempenho. De nada adianta termos um processador muito rápido, se devido à pouca quantidade de memória disponível, seu desempenho é sub-utilizado devido ao uso de memória virtual, ficando limitado à performance do disco rígido.

Formato

Os chips de memória são frágeis placas de silício, que precisam ser encapsulados em alguma estrutura mais resistente antes de serem transportados e encaixados na placa mãe. Assim como temos vários tipos de encapsulamento diferentes para processadores, (SEC e PPGA por exemplo) temos vários formatos de módulos de memória. Inicialmente os chips são encapsulados em módulos DIP, que os protegem e facilitam a dissipação do calor gerado pelos chips. Estes por sua vez são soldados em placas de circuito, formando os módulos de memória. Existem basicamente 3 tipos de módulos de memória: os módulos SIMM de 30 vias, os módulos SIMM de 72 vias e, finalmente, os módulos DIMM de 168 vias. Atualmente também temos no mercado os módulos de memórias DDR e Rambus, que veremos a seguir


Módulo SIMM de 30 vias

Os primeiros módulos de memória criados são chamados de módulos SIMM, sigla que significa “Single In Line Memory Module”, justamente por que existe uma única via de contatos. Apesar de existirem contatos também na parte de trás do pente, eles servem apenas como uma extensão dos contatos frontais, existindo apenas para aumentar a área de contato com o encaixe na placa mãe.
Examinando o pente você verá um pequeno orifício em cada contato, que serve justamente para unificar os dois lados.
Os primeiros módulos SIMM possuíam 30 vias, e eram capazes de trabalhar com transferências de até 8 bits por vez. Estes módulos foram utilizados em micros 386 e 486 e foram fabricados em varias capacidades, sendo os mais comuns os de 1MB e 4 MB, existindo também módulos de 512 KB, 8 MB e 16 MB.


Módulo SIMM de 30 vias

Como tanto o 386 quanto o 486 são processadores que acessam a memória usando palavras de 32 bits, é preciso combinar 4 pentes para formar cada banco de memória, ou seja, como o processador precisa de 32 bits, e cada pente fornece apenas 8, é preciso combinar 4 pentes, que serão acessados pelo processador como se fossem um só. Temos então que usar estes módulos em quartetos, 4 módulos ou 8 módulos, mas nunca um número quebrado.
Nos micros equipados com processadores 386SX são necessários apenas 2 pentes, já que o 386SX acessa a memória usando palavras de apenas 16 bits.


É importante lembrar que todos os 4 pentes que formam um banco precisam ser idênticos, caso contrário podem ocorrer travamentos ou instabilidade no micro. Você pode usar 4 módulos de um tipo para formar o primeiro banco e 4 módulos diferentes para formar um segundo banco, mas nunca misturar dentro de um mesmo banco.

Módulo SIMM de 72 vias

Apesar de serem muito mais práticos do que os chips DIP, os módulos SIMM de 30 vias ainda eram bastante inconvenientes, já que era preciso usar 4 pentes idênticos para formar cada banco de memória. Para solucionar este problema, os fabricantes criaram um novo tipo de pente de memória SIMM, de 32 bits, que possui 72 vias. Esse tipo de memória foi usado em micros 486 mais modernos e tornou-se padrão em micros Pentium.

Módulo SIMM de 72 vias

Ao invés de quatro, é preciso apenas um módulo SIMM de 72 vias para formar cada banco de memória nos micros 486, ou seja, é permitido usar qualquer combinação, já que cada pente sozinho forma um banco. Como o Pentium acessa a memória usando palavras de 64 bits, são necessários 2 pentes para formar cada banco, por isso é que usamos os pentes de 72 vias aos pares no Pentium. Se você pretende instalar 16 MB de memória, precisará de 2 pentes de 8 MB ou então 4 pentes de 4 MB, nunca poderá instalar um único pente de 16 MB como poderia ser feito em um 486.


Módulo DIMM de 168 vias

Ao contrario dos módulos SIMM de 30 e 72 vias, os módulos DIMM possuem contatos em ambos os lados do pente, o que justifica seu nome, “Double In Line Memory Module” ou “módulo de memória com duas linhas de contato”. Como Os módulos DIMM trabalham com palavras binárias de 64 bits, um único módulo é suficiente para preencher um banco de memória em um micro Pentium ou superior, dispensando seu uso em pares. Caso você deseje instalar 64 MB de memória em um Pentium II por exemplo, será preciso comprar apenas um único módulo DIMM de 64 MB.
Os módulos DIMM de 168 vias são os únicos fabricados atualmente. Você dificilmente encontrará módulos de 72 vias, ou placas mãe novas que os suportem à venda, apenas componentes usados.

Módulo DIMM de 168 vias


Tecnologias utilizadas

Além de se dividirem quanto ao formato, os módulos de memória também se diferenciam pela tecnologia utilizada. Existem memórias FPM, EDO e SDRAM (que se dividem em memórias SDRAM PC-133, PC-100 e PC-66)


Memórias FPM (Fast Page Mode)

As memórias FPM são o tipo mais antiquado de memória que ainda pode ser encontrado atualmente. Apesar de ser compatível com os micros modernos, este tipo de memória não é mais usado por ser muito lento se comparado com as memórias EDO e SDRAM.

Este tipo de memória pode ser encontrado em módulos de 30 ou 72 vias, quase sempre com tempos de acesso de 80 ou 70 nanossegundos.


Memórias EDO (Extended Data Output)

Apesar de também já estar ultrapassado, este tipo de memória ainda é muito usado atualmente, sendo fabricado em velocidades de 70, 60 e 50 nanos, com predominância dos módulos de 60. A diferença entre a memória FPM e a EDO, é que a EDO possui várias melhoras na arquitetura, que a tornam cerca de 20% mais rápida que as antigas FPM.
Você encontrará memórias EDO na forma de módulos de 72 vias. Apesar de também terem sido fabricados módulos de 168 vias com memórias EDO, estes são muito raros.
Todos os módulos de 30 vias são de memórias FPM, enquanto (com exceção de alguns módulos antigos) todos os de 168 vias são de memórias SDRAM. A confusão existe apenas nos módulos de 72 vias, que podem ser tanto de memórias EDO quanto de memórias FPM. Para saber quem é quem, basta verificar o tempo de acesso. Todo módulo de memória traz seus dados estampados nos chips, na forma de alguns códigos, o tempo de acesso é indicado no final da primeira linha (ou na segunda linha em alguns módulos). Se ela terminar com –7, -70, ou apenas 7, ou 70, o módulo possui tempo de acesso de 70 nanos. Se por outro lado a linha terminar com –6, -60, 6 ou 60 o módulo é de 60 nanos.
Como quase todos os módulos de 70 nanos são de memórias FPM, e quase todos os módulos de memórias EDO são de 60 nanos, você pode usar este método para determinar com 98% de certeza o tipo de memória usada.


Memórias SDRAM (Synchronous Dynamic RAM)

Tanto as memórias FPM quanto as memórias EDO são assíncronas, isto significa que elas trabalham em seu próprio ritmo, independentemente dos ciclos da placa mãe. Isto explica por que memórias FPM que foram projetadas para funcionar em placas para processadores 386 ou 486 (que trabalham a 25 ou 33 MHz), podem ser usadas sem problemas em placas para processadores Pentium, que funcionam a 66 MHz.
Na verdade, as memórias continuam funcionando na mesma velocidade, o que muda são os tempos de espera que passam a ser mais altos. Assim, ao invés de responder a cada 3 ciclos da placa mãe, por exemplo, elas podem passar a responder a cada 6 ciclos, funcionando normalmente. As memórias SDRAM por sua vez, são capazes de trabalhar sincronizadas com os ciclos da placa mãe, sem tempos de espera. Isto significa, que a temporização de uma

memória SDRAM é sempre de uma leitura por ciclo. Independentemente da velocidade da placa mãe.
Como é preciso que a memória SDRAM a ser usada seja rápida o suficiente para acompanhar a placa mãe, encontramos no mercado versões com tempos de acesso entre 15 e 6 nanossegundos. Para saber o tempo de acesso de cada módulo, basta olhar o final da primeira linha do código, que terminará com –15, -12, -10, -9, -8, -7 ou -6, indicando que o módulo possui (respectivamente) tempos de acesso de 15, 12, 10, 9, 8, 7 ou 6 nanos.
Para determinar a velocidade máxima de operação de uma memória SDRAM, basta dividir 1000 pelo seu tempo de acesso: uma memória SDRAM com tempo de acesso de 15 nanos poderia funcionar a apenas 66 MHz, já que 1000/15 = 66. Outra com tempo de acesso de 12 nanos já poderia funcionar a 75 ou até 83 MHz, já que 1000/12 = 83. Para confirmar a validade deste cálculo, basta dividir 1 segundo por 83.000.000 de ciclos da placa mãe e teremos justamente 12 nanos.
Vale lembrar que estes valores são apenas teóricos; uma memória SDRAM PC-66, com tempo de acesso de 10 nanos por exemplo, não tem garantido o seu funcionamento em uma placa mãe que opere a 100 MHz, como as usadas em processadores Pentium II (acima de 350 MHz), K6-2, Pentium III etc. pois foi projetada para ter seu funcionamento garantido a apenas 66 MHz.


PC-66 x PC-100 x PC-133

Conforme os processadores foram evoluindo, foi preciso aumentar também a velocidade de acesso à memória. Inicialmente saltamos de 66 para 100 MHz e agora estamos nos 133 MHz. Assim como a placa mãe precisa ser capaz de suportar as freqüências mais altas, as memórias também devem ser capazes de acompanhar, já que como vimos as memórias SDRAM funcionam sincronizadas com os ciclos da placa mãe.
Você encontrará no mercado memórias PC-66, PC-100 e PC-133. As memórias PC-66 suportam apenas bus de 66 MHz, sendo utilizáveis em conjunto com o Celeron ou com o Pentium II de até 333 MHz; as memórias PC-100 podem ser utilizadas com a maioria dos processadores atuais, enquanto as memórias PC-133 são requisito nas versões do Pentium III que utilizam bus de 133 MHz, como o Pentium III de 933 MHz.
Vale lembrar que memórias PC-133 funcionam normalmente em placas mãe com bus de 66 ou 100 MHz, assim como as memórias PC-100 trabalham normalmente a 66 MHz. Existe uma freqüência máxima, mas freqüências menores também são suportadas. Você pode inclusive misturar módulos DIMM de tempos diferentes na mesma placa mãe, desde que nivele por baixo, ou seja, utilize uma freqüência de barramento compatível com o módulo mais lento.

Existem alguns casos de incompatibilidades entre algumas marcas ou modelos de módulos de memória e alguns modelos específicos de placas mãe, assim com em algumas combinações de módulos de marcas diferentes. Por isso, em algumas combinações pode ser que o micro não funcione, mas bastará trocar os módulos de memória por outros de marca diferente. Existem também alguns casos de placas mãe

antigas que são incompatíveis com módulos de memória DIMM PC-100 ou PC-133 ou módulos de mais de 32 MB.
Geralmente os módulos de memória PC-100 ou PC-133 são vendidos com uma etiqueta escrito “PC-100” ou “PC-133”. Obviamente, esta não é nenhuma garantia, pois a etiqueta poderia ter sido colada pelo vendedor. Mas, infelizmente, não existe meios de ter certeza apenas examinando visualmente o módulo, apenas testando, o que nem sempre é possível.
Em geral os vendedores costumam ser honestos quanto à freqüência de operação máxima dos módulos, pois a diferença de preço entre eles não é tão grande assim.


Memórias DDR

A DDR-SDRAM é um tipo de memória SDRAM que suporta transferências de dados duas vezes por ciclo de clock, um esquema semelhante ao do AGP 2x. Enquanto num módulo de memória SDRAM comum de 100 MHz, temos transferidos 64 bits por ciclo de clock, resultando em uma taxa de transferência de 800 MB/s, num módulo de DDR-SDRAM também de 100 MHz teríamos duas transferências de 64 bits em cada ciclo, alcançando 1.6 GB/s de transferência, simplesmente o dobro. Este tipo de memória está sendo bastante utilizado atualmente em placas de vídeo 3D. Uma das primeiras foi a Nvidia GeForce-DDR
O principal trunfo das memórias DDR é o preço, pois produzidas em grande quantidade custam pouco mais do que memórias SDRAM comuns. Já existem módulos de memórias DDR, prontos para serem utilizados em micros PC e já estão no mercado as primeiras placas mãe para o Athlon (com chipset AMD 760) que suportam este formato de memória.
Os módulos de memória DDR-SDRAM são parecidos com os módulos DIMM de memórias SDRAM tradicionais, apenas a posição da fenda é diferente, para evitar que um módulo DDR possa sem encaixado num slot DIMM comum.
A Via já anunciou planos para adicionar suporte a memórias DDR em seus chipsets para Pentium III e Athlon, as novas placas mãe devem estar no mercado apartir do início de 2001.


Memórias DDR no Athlon

A Intel optou por usar as memórias Rambus como alternativa às memórias SDRAM atuais. As memórias Rambus são mais rápidas, porém são extremamente caras, custam de 2 a 3 vezes mais que memórias SDRAM PC-133 normais

A AMD por sua vez, optou por usar memórias DDR SDRAM, que são 2 vezes mais rápidas que as memórias SDRAM comuns, mas que trazem a vantagem de custarem quase o mesmo preço.

O primeiro chipset AMD a suportar memórias DDR, o AMD 760 foi lançado no final de outubro e as primeiras placas mãe baseadas nele já estão no mercado desde dezembro de 2000.

Usando memórias DDR SDRAM ao invés de memórias PC-133, o desempenho do Athlon sobe em média 10% (varia de acordo com o aplicativo), os principais beneficiados são os jogos e programas gráficos, onde o desempenho chega a subir até 20%.
As placas mãe que utilizam memórias DDR não são compatíveis com as memórias SDRAM atuais e vice-versa, pois o formato dos módulos é diferente:

Módulo DDR – apenas um chanfro


Módulo SDRAM PC100 – dois chanfros

Existem dois padrões de memórias DDR, os módulos PC-1600 e PC-2100. Os PC-1600 trabalham a 100 MHz, com duas transferências por ciclo, totalizando a transmissão de 1.6 GB de dados por segundo, enquanto os PC-2100 trabalham a 133 MHz, com duas transferências por ciclo, totalizando 2.1 GB de dados por segundo. Os módulos PC-1600 custam quase o mesmo preço que os módulos de memórias PC-133 normais, enquanto os módulos PC-2100 são cerca de 20% mais caros.
A fim de suportar os módulos PC-2100, as placas mãe com o chipset AMD 760 (assim como com chipsets similares que venham a ser lançados) passam a suportar bus de 133 com duas transferências por ciclo (266 MHz na prática), ao contrário das placas para Athlon atuais, que trabalham a apenas 100 MHz, com duas transferências por ciclo (200 MHz na prática).
A freqüência da placa mãe pode ser configurada através do Setup, de acordo com o tipo de memória que pretender usar. Outra novidade é o anúncio de três novas versões do Athlon, de 1 GHz, 1.13 GHz e 1.2 GHz, que ao contrário das versões de 1 e 1.2 GHz antigas, utilizam bus de 133 MHz.


Memórias Rambus (RDRAM)

As memórias Direct Rambus permitem um barramento de dados de apenas 16 bits de largura, em oposição aos 64 bits utilizados pelos módulos de memória SDRAM, suportando em compensação, velocidades de barramento de até 400 MHz com duas transferências por ciclo (como o AGP 2x), o que na prática eqüivale a uma freqüência de 800 MHz.

Diferentemente das memórias DDR que é apenas uma evolução das memórias SDRAM, as memórias Direct Rambus trazem uma arquitetura completamente nova, que exige modificações muito maiores nos chipsets destinados a suportá-la, significando maiores custos de desenvolvimento e produção. Mesmo atualmente, os módulos de memória Rambus ainda custam pelo menos o dobro das memórias SDRAM comuns.
Os módulos de memórias Rambus são chamados de “Rambus Inline Memory Modules” ou RIMMs. Os módulos RIMM são bem semelhantes aos módulos DIMM, mas em geral eles vem com uma proteção de metal sobre os chips de memória, que também serve para facilitar a dissipação de calor, já que os módulos RIMM aquecem bastante devido à alta frequência de operação.
Nas ilustrações a seguir, temos um módulo de memória Direct Rambus (à esquerda) e módulos de memória Rambus encaixados em slots RIMM (ilustrações gentilmente cedidas pela Rambus Inc.)


ECC e Paridade

Por melhor que seja a qualidade, todos os tipos de memória são passíveis de erros, que podem ser causados por inúmeros fatores, que vão desde interferências momentâneas à defeitos físicos nos módulos de memória. Apesar dos erros nos módulos de memória atuais serem bastante raros, um dado adulterado pode causar os mais diversos efeitos colaterais. Para aumentar o grau de confiabilidade dos sistemas, foram criados métodos de diagnóstico e correção de erros,a Paridade e o ECC (“Error-Correcting Code” ou “código de correção de erros”), que se baseiam em técnicas totalmente diferentes:
A Paridade é um método mais antigo, que somente é capaz de identificar alterações nos dados depositados nas memórias, sem condições de fazer qualquer tipo de correção. A paridade consiste na adição de mais um bit para cada byte de memória, que passa a ter 9 bits, tendo o último a função de diagnosticar alterações nos dados.
A operação de checagem dos dados na paridade é bem simples: são contados o número de bits “1” de cada byte. Se o número for par, o bit de paridade assume um valor “1” e caso seja impar, o 9º bit assume um valor “0”. Quando requisitados pelo processador, os dados são checados pelo circuito de paridade que verifica se o número de bits “1” corresponde ao valor depositado no 9º bit. Caso seja constatada alteração nos dados, ele envia ao processador uma mensagem de erro.


Exemplo de Byte de dados

Número de Bits “1” no Byte

Bit de paridade

00000000

0

1

10110011

5

0

11111111

8

1


O uso da paridade não torna o computador mais lento, pois os circuitos responsáveis pela checagem dos dados são independentes do restante do sistema. Seu único efeito colateral, é o encarecimento das memórias, que ao invés de 8 bits por byte, passam a ter 9, tornando-se cerca de 12% mais caras. Antigamente quase não se fabricavam memórias sem paridade, porém As memórias EDO e SDRAM atuais porém, apresentam um bom nível de confiabilidade, o que torna o uso da paridade dispensável. De fato, poucos fabricantes ainda produzem memórias com o 9º bit.
Para sistemas destinados a operações críticas, foi desenvolvido o ECC, um método de diagnóstico bem mais eficiente, por ser capaz de além de identificar erros nos dados, corrigi-los através de algoritmos especiais. Numa memória com ECC encontramos mais 2 ou até 3 bits para cada byte de memória.
Quanto maior a quantidade de bits destinados ao ECC, mais complexos serão os códigos armazenados, e maior será a possibilidade de um eventual erro ser corrigido.
Apesar de ainda não ser muito usado em memórias RAM, justamente devido à boa confiabilidade das memórias atuais, o ECC é item obrigatório em discos rígidos e CD-ROMs, pois neles o corrompimento de dados é muito comum.

Nenhum comentário: