ECC e Paridade
Caso seja constatada alteração nos dados, ele envia ao processador uma mensagem de erro. Claro que este 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 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. 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 1, 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.
|