miércoles, 4 de junio de 2008

Errores de memoria


Considerando que el trabajo que se realiza en la memoria es sumamente delicado, se han creado procedimientos de control de errores a fin de poder confiar en los resultados que muestran las máquinas. Los dos más utilizados son el control de paridad y el método ECC (Error Correction Code). Para entender el porqué hay que tener implementados sistemas de verificación, hay que recordar dos factores que intervienen en el trabajo de la RAM:
1.- La circuitería electrónica de la memoria utiliza pequeños capacitadores (almacenes de electricidad) que se ven afectados por interferencias que reciben al estar permanentemente refrescándose.
2.- El software puede tener error de código.
Afortunadamente ambos escollos continúan siendo superados tecnológicamente por lo que cada vez menos integradores de PCs utilizan RAM sin función de integridad de datos.
El sistema de control de paridad consiste en agregar un BIT adicional a cada Byte (8 bits + 1 bit adicional) transmitido. Contando el número de 1 existentes en el byte, se establece dos normas: adicionar un bit de señal 1 cuando el número de 1 es par (sistema de control de paridad impar), o adicionar un bit de señal 0 cuando la suma de 1 es impar (sistema de control de paridad par).
Un chip de control (Parity generator/checker) compara los datos y pasa a la CPU un mensaje de error cuando no hay correspondencia. El procedimiento detecta el error de transmisión pero no lo corrige. Por supuesto, que esta operación sólo es posible con el apoyo del circuito lógico (Parity generator/checker) y una BIOS que dé apoyo a la función de control de paridad.
Aunque parezca un sistema ingenioso, la practica ha demostrado que este procedimiento no puede detectar todos los errores posibles que podrían presentarse en el byte (varios bits con señal cambiada). Afortunadamente, los fabricantes de RAM siguen mejorando sus tecnologías por lo que cada vez menos integradores de PC utilizan RAM con control de paridad (son más costosos debido a la adición de una pequeña memoria cache en la RAM).
El sistema de control de errores ECC es un sistema basado en complejos algoritmos haciendo que detecte y corrija errores en la RAM. Se utiliza principalmente para respaldar el trabajo en equipos de función crítica (como los grandes servidores o mainframes). Está creada principalmente para detectar y corregir los casos en que hay un bit errado, ante cuya situación ejecuta su operación y el trabajo del sistema continua normal (el operador no se entera). En niveles más avanzados de ECC, cuando detecta varios bits erróneos, puede suceder que lance un aviso en pantalla o que proceda a corregir los errores automáticamente.

No hay comentarios: