¿Qué es la memoria ECC?

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 causar corrupción o alteración de los datos, lo que puede provocar fallas en el dispositivo e incluso vulnerabilidades de seguridad. La RAM ECC no suele ser compatible con el hardware de PC de consumo.

¿Qué son los errores de memoria?

Los errores de memoria son un problema en el que 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 un 1 se cambia a un 0 o viceversa, en un proceso llamado "bit-flipping", los datos que se almacenan en la 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 cálculo podría cambiarse a un número completamente diferente que afectaría el resultado de cualquier cálculo, por ejemplo, alterando los pronósticos económicos de un negocio. En otros casos, el bit modificado podría deshabilitar una función de seguridad o crear un error tipográfico que altere la forma en que se ejecuta un programa. Estos dos ejemplos son extremadamente difíciles de detectar y resolver sin el uso de memoria ECC. En un escenario extremo, la inversión de un solo bit podría provocar un error catastrófico que provoque un bloqueo 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, causada principalmente por neutrones creados por eventos de rayos cósmicos. Un rayo cósmico es una partícula de alta energía, típicamente 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 luego pasan a tener interacciones secundarias.

Se cree que estas interacciones secundarias de neutrones son la fuente principal de errores de cambio de bits. Los rayos cósmicos son más comunes en altitudes más altas con un aumento de 3,5 veces a 1,5 km sobre el nivel del mar y un aumento de 300 veces a la altitud de crucero de los 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 pensar que se trata principalmente de un riesgo teórico. La investigación de los centros de datos de hiperescala se ha utilizado para analizar la tasa de incidentes de cambio de bits. La investigación realizada por Google en sus centros de datos ha mostrado 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 que se lanzó en 1997 para viajar 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 constantes de un solo bit por día. Durante un día, cuando Cassini-Huygens estaba en el camino de una llamarada solar, un aumento de cuatro Se observaron errores, lo que proporciona más evidencia de que el Sol es la causa de la mayoría de los cambios de bits cuestiones.

Existía la preocupación de que el aumento continuo en la densidad de los módulos de RAM conduciría a que las versiones posteriores de RAM 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 mediante el uso de una matriz de bits de paridad. Juntos, estos bits de paridad se pueden usar para detectar si los bits de datos han cambiado. Si se identifica que un bit se ha invertido, se vuelve a cambiar automáticamente.

Sugerencia: Un error de un solo bit es un incidente de cambio de bit cuando solo se invierte un bit. En errores de doble bit, se invierten dos bits. No es necesario invertir los dos bits en el mismo incidente, el segundo cambio de bits solo debe ocurrir antes de que se corrija el primer bit invertido.

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 doble bit, sin embargo, estos errores no se pueden corregir.

El proceso de realizar la detección y corrección de errores se realiza en el controlador de memoria integrado en la memoria RAM.

Disponibilidad y asistencia al consumidor

La mayor parte del hardware de PC de consumo no es compatible con la memoria ECC. Esto es parcialmente como un método para distinguir artificialmente el hardware del servidor del hardware del consumidor. ECC RAM, sin embargo, cuesta más y funciona un poco más lento. Además, la estabilidad adicional que proporcionarí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.

Ninguna de las CPU de Intel para consumidores y entusiastas es compatible con la memoria ECC, solo sus CPU de nivel de servidor, como las CPU de la gama Xeon. Las CPU de nivel de consumidor de AMD no son compatibles con ECC; sin embargo, su estación de trabajo y CPU de nivel de servidor, Threadripper y EPYC respectivamente, sí admiten la memoria ECC.