Alguna RAM, o memoria de acceso aleatorio, se anuncia como memoria ECC. ECC significa Código de corrección de errores y es un proceso de identificación y corrección de errores en la memoria. Los errores en la RAM pueden provocar daños o corrupción de datos, lo que puede provocar fallas en el dispositivo e incluso vulnerabilidades de seguridad. La RAM ECC generalmente no es compatible con el hardware de las computadoras de consumo.
¿Qué son los errores de memoria?
Los errores de memoria son un problema donde se cambia el valor almacenado en la memoria. Los datos en RAM se almacenan en binario, con valores de 1 o 0. Si el valor de 1 cambia a 0 o viceversa, en un proceso llamado «bit-flipping», los datos almacenados en RAM cambian.
Por ejemplo, el bit modificado podría usarse para almacenar un valor en una hoja de cálculo. En este caso, el valor en la hoja de trabajo podría reemplazarse con un número completamente diferente, lo que afectaría el resultado de cualquier cálculo, por ejemplo, cambiar el pronóstico económico de una empresa. En otros casos, el bit modificado puede desactivar una función de seguridad o crear un error tipográfico que cambie la forma en que se ejecuta un programa. Ambos ejemplos son extremadamente difíciles de detectar y resolver sin el uso de la memoria ECC. En un escenario extremo, un solo bit devuelto puede causar un error catastrófico que resulte en una falla del sistema.
El cambio de bits tiene muchas causas potenciales, la causa más común es el resultado de la radiación de fondo, principalmente causada por neutrones creados por eventos de rayos cósmicos. Un rayo cósmico es una partícula de alta energía, generalmente un protón, que viaja casi a la velocidad de la luz. Son emitidos por cuerpos estelares, incluido el Sol y otros objetos astronómicos de alta energía. Cuando un rayo cósmico golpea un átomo, se crea una lluvia de neutrones y otras partículas subatómicas, estos neutrones tienen interacciones secundarias.
Se cree que estas interacciones de neutrones secundarios son la principal fuente de errores de cambio de bits. Los rayos cósmicos son más comunes en altitudes más altas con un aumento de 3.5x a 1.5 km sobre el nivel del mar y un aumento de 300x en la altitud de crucero para aviones. Este mayor riesgo en la altitud requiere medidas de fiabilidad adicionales.
¿Qué tan comunes son los errores de memoria?
La mayoría de las personas no ven que sus computadoras se bloqueen todos los días, por lo que sería fácil asumir que esto es principalmente un riesgo teórico. La investigación realizada en centros de datos de hiperescala se utilizó para analizar la tasa de incidentes de cambio de bits. La investigación de Google de sus centros de datos mostró una tasa de error de aproximadamente 1 error de un solo bit por gigabyte de RAM cada 1.8 horas.
La misión Cassini-Huygens de la NASA, lanzada en 1997 para llegar a Saturno, se configuró con dos computadoras de vuelo idénticas, cada una con 2,5 GB de RAM. Durante los primeros dos años y medio de su viaje, la nave espacial observó 280 errores de un solo bit por día. Durante un día, mientras Cassini-Huygens se encontraba en el camino de una llamarada solar, se observó un aumento de cuatro veces en los errores de bits, lo que proporcionó más evidencia de que el Sol era la causa de la mayoría de los problemas de volteo de bits.
Se temía que el continuo aumento de la densidad de los módulos de RAM daría lugar a versiones posteriores de RAM que fueran cada vez más vulnerables a los cambios de bits. Estudios más recientes han demostrado que, de hecho, ocurre lo contrario, ya que los errores han disminuido a medida que la geometría del proceso ha disminuido.
¿Cómo protege la memoria ECC contra errores?
La memoria ECC utiliza códigos de corrección de errores, como los códigos Hamming, para corregir errores de un solo bit en la RAM. Los errores de bit doble se pueden detectar pero no corregir. Los códigos de corrección de errores de Hamming funcionan utilizando una tabla de bits de paridad. Juntos, estos bits de paridad se pueden usar para detectar si algún bit de datos ha cambiado. Si se identifica un bit como devuelto, se cambia automáticamente.
Consejo: Un error de un solo bit es un incidente de cambio de bit cuando se devuelve un solo bit. En errores de dos bits, se invierten dos bits. No es necesario que los dos bits se devuelvan en el mismo incidente, el segundo cambio de bit solo debe ocurrir antes de que se corrija el primer bit devuelto.
En los códigos de corrección de errores de Hamming se incluye un bit de paridad más del necesario. Este bit de paridad adicional le da al código la capacidad de detectar la ocurrencia de errores de dos bits, sin embargo, estos errores no se pueden corregir.
El proceso de detección y corrección de errores se lleva a cabo en el controlador de memoria a bordo de la llave RAM.
Disponibilidad y asistencia al consumidor
La mayoría de los equipos informáticos de consumo no admiten la memoria ECC. En parte, este es un método para distinguir artificialmente el hardware del servidor del hardware del consumidor. Sin embargo, ECC RAM cuesta más y se ejecuta un poco más lento. Además, la estabilidad adicional que brindaría a los consumidores domésticos es mínima, ya que los errores de cambio de bits no son la causa principal de las fallas del sistema.
Ninguno de los procesadores Intel convencionales y de grado entusiasta es compatible con la memoria ECC, solo sus procesadores de grado servidor, como los procesadores de la serie Xeon. Los procesadores de consumo de AMD no admiten ECC; sin embargo, sus procesadores de nivel de servidor y estación de trabajo, Threadripper y EPYC, respectivamente, sí admiten la memoria ECC.