Articulo de referencia

Limpieza de memoria

La limpieza de memoria consiste en leer de cada ubicación de memoria de la computadora , corregir los errores de bits (si los hay) con un código de corrección de errores ( ECC )...

La limpieza de memoria consiste en leer de cada ubicación de memoria de la computadora , corregir los errores de bits (si los hay) con un código de corrección de errores ( ECC ) y escribir los datos corregidos de nuevo en la misma ubicación. [ 1 ]

Debido a la alta densidad de integración de los chips de memoria de las computadoras modernas , las estructuras de las celdas de memoria individuales se volvieron lo suficientemente pequeñas como para ser vulnerables a los rayos cósmicos y/o a la emisión de partículas alfa . Los errores causados ​​por estos fenómenos se denominan errores transitorios . Más del 8 % de los módulos de memoria en línea dual ( DIMM ) experimentan al menos un error corregible por año. [ 2 ] Esto puede ser un problema para las memorias basadas en DRAM y SRAM . La probabilidad de un error transitorio en cualquier bit de memoria individual es muy pequeña. Sin embargo, junto con la gran cantidad de memoria con la que están equipadas las computadoras modernas —especialmente losservidores— y junto con períodos prolongados de tiempo de actividad , la probabilidad de errores transitorios en la memoria total instalada es significativa.

La información en una memoria ECC se almacena con redundancia suficiente para corregir errores de un solo bit por palabra de memoria. Por lo tanto, una memoria ECC admite la limpieza del contenido de la memoria. Es decir, si el controlador de memoria escanea sistemáticamente la memoria, se pueden detectar los errores de un solo bit, se puede determinar el bit erróneo mediante la suma de verificación ECC y se pueden escribir los datos corregidos de nuevo en la memoria.

Descripción general

Es importante revisar cada ubicación de memoria periódicamente, con la frecuencia suficiente, antes de que sea demasiado probable que se produzcan errores de múltiples bits dentro de la misma palabra, porque los errores de un solo bit se pueden corregir, pero los errores de múltiples bits no son corregibles, en el caso de los módulos de memoria ECC habituales (a partir de 2008).

Para no interferir con las solicitudes de memoria habituales de la CPU y, por lo tanto, evitar una disminución del rendimiento , la limpieza de la memoria se realiza generalmente solo durante los periodos de inactividad. Dado que la limpieza consiste en operaciones normales de lectura y escritura, puede aumentar el consumo de energía de la memoria en comparación con el funcionamiento normal. Por consiguiente, la limpieza no se realiza de forma continua, sino periódica. En muchos servidores, el periodo de limpieza se puede configurar en el programa de configuración de la BIOS .

Las lecturas de memoria normales realizadas por la CPU o los dispositivos DMA se comprueban en busca de errores ECC, pero debido a la localidad de los datos, estas comprobaciones pueden limitarse a un rango reducido de direcciones, dejando otras ubicaciones de memoria sin modificar durante mucho tiempo. Estas ubicaciones pueden volverse vulnerables a más de un error transitorio, mientras que la verificación de memoria garantiza que se compruebe toda la memoria en un tiempo determinado.

En algunos sistemas, no solo se puede limpiar la memoria principal (basada en DRAM), sino también las cachés de la CPU (basadas en SRAM). En la mayoría de los sistemas, la frecuencia de limpieza de ambas se puede configurar de forma independiente. Dado que la caché es mucho más pequeña que la memoria principal, no es necesario limpiarla con tanta frecuencia.

La limpieza de memoria aumenta la fiabilidad, por lo que puede clasificarse como una característica de fiabilidad, disponibilidad y facilidad de mantenimiento (RAS, por sus siglas en inglés).

Variantes

Generalmente existen dos variantes, conocidas como limpieza por patrulla y limpieza bajo demanda . Si bien ambas realizan esencialmente una limpieza de memoria y la corrección de errores asociada (si es posible), la principal diferencia radica en cómo se inician y ejecutan. La limpieza por patrulla se ejecuta de forma automatizada cuando el sistema está inactivo, mientras que la limpieza bajo demanda realiza la corrección de errores cuando se solicitan datos de la memoria principal. [ 3 ]

Véase también

Referencias

  1. Ronald K. Burek. "Los registradores de datos de estado sólido NEAR" . Johns Hopkins APL Technical Digest. 1998.
  2. Errores de DRAM en entornos reales: un estudio de campo a gran escala
  3. "Manual de la placa base Supermicro X9SRA" (PDF) . Supermicro . 5 de marzo de 2014. págs. 4–10 . Consultado el 22 de febrero de 2015 .