Outras tecnologias

Concluindo, temos aqui mais algumas tecnologias de memória que merecem ser citadas:


Memórias BEDO
: As memórias BEDO (Burst EDO) foram desenvolvidas no final da era Pentium 1 para concorrer com as memórias EDO. Elas utilizam uma espécie de pipeline para permitir acessos mais rápidos que as EDO. Em um Bus de 66 MHz, as memórias BEDO são capazes de funcionar com temporização de 5-1-1-1, quase 30% mais rápido que as memórias EDO convencionais.

No papel as memórias BEDO eram interessantes, mas elas nunca foram usadas em grande escala. A tecnologia era propriedade da Micron, que ansiava por cobrar royalties dos demais fabricantes, caso a tecnologia fosse adotada em grande escala. Os fabricantes de memória trabalham com margens de lucro incrivelmente apertadas, de forma que a palavra “royalties” gera calafrios. Ao invés de caírem na armadilha da Micron, eles se apressaram em adotar as memórias SDRAM, que além de serem um padrão aberto, eram tecnicamente superiores.


Memórias Rambus (RDRAM)
: Assim como as memórias BEDO, as RDRAM são um tipo proprietário de memória, que acabou não ganhando popularidade.

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 vêm 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 freqüência de operação.

Uma particularidade era a necessidade de instalar módulos terminadores em todos os slots não populados da placa-mãe, para reduzir o nível de ruído eletromagnético. Na foto a seguir, por exemplo, temos uma placa com um único módulo RIMM instalado. Os outros dois são terminadores:

Em 1996 a Intel fechou um acordo com a Rambus Inc., uma então pequena empresa que desenvolvia um tipo de memória otimizada para sistemas que precisam de um largo barramento de dados com a memória. As memórias Rambus foram utilizadas no Nintendo 64 e no Playstation 2, e o plano era que elas fossem adotadas em larga escala nos PCs, com a ajuda da Intel. A Rambus Inc. receberia royalties dos fabricantes e a Intel ficaria com parte do bolo, na forma de incentivos e descontos.

A Intel introduziu o suporte às memórias Rambus a partir do chipset i820, ainda na época do Pentium III, e continuou tentando empurrar a tecnologia com o chipset i850, usado na primeira geração de placas para Pentium 4.

O problema era que o chipset i850 suportava somente memórias Rambus, sem opção de usar memórias SDRAM ou DDR (que eram novidade na época). Na época do lançamento do Pentium 4, um módulo RIMM de 64 MB custava US$ 99, enquanto um módulo de memória PC-133 da mesma capacidade custava apenas US$ 45. Isto significava gastar US$ 216 (ao comprar 256 MB) a mais, só de memória, sem contar a diferença de preço do processador Pentium 4 e da placa-mãe, que na época ainda eram consideravelmente mais caros.

As memórias Rambus utilizam 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 freqüências de barramento de até 400 MHz com duas transferências por ciclo (como o AGP 2x), o que na prática equivale a uma freqüência de 800 MHz. Essa organização lembra um pouco o barramento PCI Express, onde o uso de menos trilhas de dados permitem a operação a freqüências mais altas.

Trabalhando a 400 MHz com duas transferências por ciclo, sua velocidade máxima, as memórias Rambus permitem uma banda total de 1.6 gigabytes por segundo. O i850 era capaz de acessar dois módulos simultaneamente, proporcionando um barramento total de 3.2 GB/s. Essa é uma marca respeitável, comparável à de um módulo DDR-400, porém atingida em 2001.

O grande problema era que apesar da boa taxa de transferência, os módulos trabalhavam com tempos de latência muito altos. Isso prejudicava muito o desempenho, fazendo com que um Pentium III espetado numa placa-mãe i820 com um módulo RIMM acabasse sendo mais lento na maioria das aplicações que um PC simular equipado com memórias SDRAM PC-133. Mesmo em conjunto com o Pentium 4, que incluía uma série de otimizações (incluindo o uso de módulos RIMM em pares), as memórias Rambus falhavam em oferecer algum ganho tangível de performance em relação às memórias DDR.

Pouca gente comprou as versões iniciais do Pentium 4 e, quem se arriscou, acabou com um abacaxi nas mãos. Isto obrigou a Intel a modificar a plataforma, passando a utilizar memórias DDR padrão. A demora gerou um vácuo, que permitiu que a AMD aumentasse consideravelmente sua participação no mercado, já que contava com o Athlon Thunderbird, um processador mais barato e mais eficiente.

No final, as memórias DDR (seguidas pelas DDR2) ganharam a briga, tornando-se o padrão de memória dominante. Mais uma vez a indústria rejeitou um padrão proprietário de memória, em favor de um padrão aberto.


Registered DIMM
: Os módulos de memória que usamos nos micros domésticos são chamados de unbuffered. Eles usam um layout simples e eficiente, onde o controlador de memória tem acesso direto aos chips de memória, garantindo tempos de latência mais baixos.

Essa simplicidade tem um custo, que é uma limitação no número de chips por módulo e também no número de módulos que podem ser instalados na mesma placa-mãe. Salvo raras exceções, os módulos unbuffered possuem no máximo 16 chips de memória e é possível projetar placas-mãe com suporte para até 4 módulos.

Isso não é um problema nos desktops, onde normalmente não precisamos de mais do que 2 ou 4 GB de RAM, mas é uma grave limitação nos servidores, onde é comum o uso de mais memória.

Os módulos registered incluem chips adicionais (registradores) que funcionam como uma interface adicional entre o controlador e os chips. Eles permitem que o controlador suporte um número maior de módulos de memória e também que sejam usados módulos com mais chips, permitindo a instalação de quantidades muito maiores de memória. Muitas placas para servidores incluem 8 slots de memória, e existem módulos registered com 32 ou até mesmo 48 chips (sem contar os chips adicionais no caso dos módulos com ECC). É fácil reconhecer os módulos registered, devido à presença dos chips adicionais:

A desvantagem é que o uso dos registradores retarda a transmissão dos sinais, aumentando a latência e conseqüentemente reduzindo o desempenho dos módulos. A maioria das placas com suporte a módulos registered não suporta módulos unbuffered, de forma que seu uso não é uma opção. Também não é possível usar módulos registered, muito menos misturá-los com módulos unbuffered nas placas para desktop que não os suportam.

Os suporte a módulos registered está disponível apenas em placas-mãe destinadas a servidores e workstations, onde a possibilidade de usar mais memória supera as desvantagens. É possível encontrar tanto módulos de memória SDRAM quanto módulos DDR e DDR2 em versão registered. Por utilizarem componentes adicionais e serem produzidos em pequena quantidade, eles normalmente custam o dobro do preço dos módulos unbuffered, de forma que você só deve considerar seu uso quando realmente necessário.


MRAM
: As memórias MRAM (Magnetoresistive RAM) utilizam células magnéticas para armazenar dados, ao invés de células que armazenam eletricidade, como nas memórias DRAM, SRAM ou Flash. O layout básico lembra um pouco um módulo de memória DRAM, onde temos um transístor para cada bit de dados. A grande diferença é que, no lugar de um capacitor, é usada uma célula magnética, que pode ser gravada e lida usando eletricidade e conserva seus dados por longos períodos (assim como nos HDs) sem precisar de refresh ou alimentação elétrica.

As memórias MRAM são quase tão rápidas quanto as memórias SRAM, consomem menos energia e suportam um número quase ilimitado de ciclos de leitura e gravação, ao contrário das memórias Flash. Elas são uma espécie de “Santo Graal” da informática, uma tecnologia que, se fosse suficientemente barata, poderia vir a substituir, com vantagens, a maioria dos demais tipos de memórias.

O problema é que as memórias MRAM são difíceis de fabricar e até o momento nenhum fabricante foi capaz de produzir chips com densidades similares à memória RAM ou Flash.

Embora se fale nas memórias MRAM desde a década de 90, os primeiros chips disponíveis comercialmente foram produzidos apenas em 2006 (pela Freescale).

O ponto positivo é que os chips trabalhavam com tempo de acesso de apenas 35 ms, tanto para leitura quanto para gravação, o que bate de longe os chips de memória Flash e rivaliza com os chips de memória SRAM usados em palmtops e no cache de HDs, oferecendo a vantagem de não perderem os dados armazenados e não precisarem de alimentação elétrica. O problema é que armazenavam apenas 4 megabits (512 KB) e custavam US$ 25 cada.


Chip de memória MRAM

Estes chips foram produzidos em pequena escala, usando técnicas obsoletas de produção, por isso o preço e a densidade atingida tendem a melhorar conforme a tecnologia avance e os chips passem a ser produzidos em maior escala. Diversas empresas, entre elas a IBM e a Samsung, têm investido no desenvolvimento de memórias MRAM, por isso devemos ter progressos nos próximos anos.

De início, o concorrente das memórias MRAM são justamente os chips de memória SRAM, que são o tipo mais rápido e caro de memória em uso atualmente. As aplicações são óbvias: HDs com caches que não perdem os dados quando o micro é desligado no botão, além de palmtops e celulares menores e com uma maior autonomia de energia.

A longo prazo, pode ser que as memórias MRAM passem a ser usadas em PCs, substituindo a memória RAM. Um PC que utilizasse memórias MRAM como memória principal poderia manter o estado anterior depois de desligado, sem precisar de um novo processo de boot. Não haveria mais problema de perda de dados por causa de desligamentos incorretos, pois ao ligar o PC novamente, tudo estaria como antes.

A partir daí, quem sabe, novas técnicas de produção permitam que passem a concorrer com as memórias Flash, mas por enquanto, isso ainda é exercício de futurologia. A menos que alguma grande revolução aconteça, as memórias MRAM devem demorar pelo menos mais 4 ou 5 anos para se tornarem competitivas com as memórias SRAM e pelo menos uma década para começarem a substituir as memórias DRAM em alguns nichos.


Paridade e ECC
: 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, desde variações na tensão da tomada que não são completamente absorvidos pela fonte de alimentação, estática, diversos tipos de interferências eletromagnéticas e, por incrível que possa parecer, até mesmo raios cósmicos, que num PC doméstico causam um soft-error em média a cada poucos meses:
http://www-1.ibm.com/servers/eserver/pseries/campaigns/chipkill.pdf

Ao contrário dos “hard-errors”, que são danos físicos nos módulos de memória, causados por eletricidade estática ou outros tipos de descargas, os soft-erros são erros momentâneos, onde um ou alguns poucos bits são alterados, sem que os chips de memória sejam danificados.

Eles podem causar os mais diversos efeitos colaterais, como travamentos de programas, pequenos danos em arquivos salvos e assim por diante. Num desktop eles não costumam ser catastróficos, mas podem causar efeitos sérios em sistemas que manipulam informações sensíveis, como no caso dos bancos, por exemplo, onde um soft-error poderia mudar o saldo da sua conta bancária. 😉

Para aumentar o grau de confiabilidade dos sistemas, foram criados métodos de diagnóstico e correção de erros. Tudo começou com os sistemas de paridade, usados em muitos módulos de 30 e 72 vias.

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 o valor “1” e caso seja ímpar, o 9º bit assume o 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 depositado no 9º bit.

Caso seja constatada alteração nos dados, ele envia ao processador uma mensagem de erro. Claro que esse método não é 100% eficaz, pois não é capaz de detectar a alteração de um número de bits que mantenha a paridade. Caso, por exemplo, dois bits zero retornassem alterados para bits um, o circuito de paridade não notaria a alteração nos dados. Felizmente, a possibilidade da alteração de dois ou mais bits ao mesmo tempo é remota.

Exemplo de Byte de dados

Número de Bits “1” no Byte

Bit de paridade

00000000

0

1

10110011

5

0

00100100

2

1

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 dos módulos de memória, que em vez de 8 ou 16 chips, passam a ter 9 ou 18, tornando-se pelo menos 12% mais caros.

Além do aumento no custo, o grande problema da paridade é que ela apenas permite identificar erros, mas sem corrigi-los. Isso acaba fazendo com que ela tenha pouca utilidade, pois ao receber um erro suas únicas opções são ignorá-lo, ou parar tudo e reiniciar o micro. Conforme os módulos de memória foram tornando-se mais confiáveis, os módulos com paridade entraram em desuso.

Em seguida temos o ECC, o sistema atual, que permite não apenas identificar, mas também corrigir erros simples. O ECC acaba sendo a solução perfeita, pois permite que um servidor continue funcionando, sem interrupções e de forma confiável, mesmo com um grande número de soft-errors, causados por fatores diversos.

O número de bits necessários para implementar o ECC decresce conforme aumenta a largura do barramento usado pelo módulo. Em um módulo de 32 bits (como os antigos módulos de 72 vias), são necessários 7 bits adicionais para cada 32 bits de memória, mas nos módulos DIMM de 64 bits atuais, são necessários apenas 8 bits para cada 64 bits de memória, ou seja, o mesmo que seria necessário para usar paridade.

Os módulos DIMM com ECC são fáceis de identificar, pois eles possuem 5, 9 ou 18 chips, em vez de 4, 8 ou 16. O uso de ECC é mais comum em módulos registered, que são específicos para servidores, mas também é possível encontrar alguns módulos unbuffered com ECC:


Módulo com ECC (note que o módulo possui 9 chips)

Identificando módulos de memória: Como vimos, todos os chips de memória trazem estampado um número de identificação. Este número pode ser utilizado para descobrir detalhes sobre o módulo, quem o produziu, qual é seu tempo de acesso, qual é freqüência máxima suportada, etc.

Os fabricantes disponibilizam tabelas com as especificações de seus produtos, mas existe um site que concentra a maioria das informações disponíveis, funcionando como um mecanismo de busca. Esse site, o IC Master, disponível no endereço http://www.icmaster.com, é extremamente útil, pois permite identificar não apenas módulos de memória, mas também outros tipos de circuitos integrados apenas com base no número de identificação. O serviço é gratuito, você precisará apenas se cadastrar.

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X