O que é Memória ECC e como funciona?

Tudo o que você precisa saber sobre as memórias ECC. O que são, quais suas vantagens, e quando devem ser utilizadas. E mais alguns detalhes importantes para montar um ambiente seguro e eficiente.

Por | @oficinadanet Hardware

ERROS EM MEMÓRIAS

Inicialmente, deve-se saber mais sobre erros em memória.

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. Esses erros podem ser de hardware, chamados de hard-error, ou de software, chamados de soft-error. Um erro de hardware é devido a defeitos físicos. Todos os tipos de memória presentes em um computador - RAM, HD, CD/DVD - são suscetíveis a erros causados por danos interferências eletromagnéticas ou variações de tensão, por exemplo. Esses danos físicos não possibilitam consertos, só resta a substituição da peça nesse caso. Já os erros de software são erros momentâneos, onde um ou alguns poucos bits são alterados, sem que os chips de memória sejam danificados. Podem ser causados por distúrbios elétricos, pela longa duração de operações ou pela relação quantidade de memória RAM e a parcela em uso dessa memória. Esses "soft-errors" podem causar os mais diversos efeitos colaterais, como travamentos de programas, pequenos danos em arquivos salvos. 

O que é Memória ECC e como funciona?
Encontrar Erros

MÉTODOS DE DIAGNÓSTICOS E CORREÇÃO DE ERROS

Leia também:

Foram criados métodos de diagnóstico e correção de erros a fim de aumentar a confiabilidade de sistemas. Inicialmente, 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.

ECC

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.

FUNCIONAMENTO DE ECC

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 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.

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. É justamente o uso do ECC que permite que estas mídias sejam confiáveis. Nos CD-ROMs, por exemplo, são usados nada menos do que 276 bytes de códigos de correção de erros para cada setor de 2048 bytes. Em um HD, cada setor armazena, além dos 512 bytes de dados, mais algumas dezenas de bytes contendo os códigos ECC. A criação dos bytes de ECC, assim como sua utilização posterior é feita pela placa lógica, um processo automático que é feito de forma completamente transparente ao sistema operacional. 

Quando um setor é lido pela cabeça de leitura, juntamente com os dados são lidos alguns dos códigos ECC, que visam apenas verificar se os dados que estão sendo lidos são os mesmos que foram gravados, uma técnica que lembra o sistema de paridade antigamente usado na memória RAM. Caso seja verificado um erro, são usados os demais códigos para tentar corrigir o problema. Na grande maioria dos casos, esta primeira tentativa é suficiente. Estes erros transitórios, que são corrigidos com a ajuda dos códigos ECC são chamados de "soft errors" e não causam nenhum efeito colateral além de um delay de alguns milissegundos na leitura. Caso não seja possível corrigir o erro usando o ECC, a controladora faz uma nova tentativa de leitura do setor, pois é grande a possibilidade do erro ter sido causado por alguma interferência ou instabilidade momentânea. Caso o erro persista, ela fará várias tentativas sucessivas, reduzindo a velocidade de rotação dos discos e comparando o resultado de várias leituras, de forma a tentar recuperar os dados gravados no setor. Esse processo gera aquele ruído característico de HD sendo "mastigado" e quase sempre indica o aparecimento de um badblock.

DETALHES TÉCNICOS

E é interessante esclarecer alguns termos técnicos, que são confudidos por muitos na hora de analisar expecificações.

Não vamos confundir memória buffered (registrada) com memória ECC. Existem módulos de memória com ambos ECC e buffered. E existe também módulos de memória com "buffered non-ECC" e outros com "unbuffered ECC". Lembrando que ECC é Error Correction Code e significa "Código de Correção de Erro", então "non-ECC" é not support ECC e significa "não suporta ECC". ECC não é o mesmo que memória registrada. Existem 3 tipos de memórias DIMM SDRAM (não confundir com memória PC133 como muitos fazem, pois memória DDR também é DIMM SDRAM): buffered, unbuffered e registered (em português, com buffer, sem buffer e registrada).
As mais comuns são as memórias unbuffered e também podem ter ECC. As memórias registradas se diferem das unbuffered por ter 3 chips na placa de memória além dos 8 ou 9 chips de memória (ou o dobro, caso seja memória double side), que são dois registradores e um PLL. Tudo isso para manter a integridade do sinal quando se tem vários bancos de memória populados. Memórias registradas podem ter ECC ou não. Porém, como são voltadas para o mercado de estações de trabalho de alto desempenho e servidores, em geral só se encontra com ECC, mas que pode ser desativado pela placa-mãe.


Mais sobre: oquee, comofunciona, memoria RAM
Share Tweet
Mais compartilhados
Comentários