La limpieza de la memoria consiste en leer desde cada ubicación de la 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 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 células de memoria individuales se volvieron lo suficientemente pequeñas como para ser vulnerables a los rayos cósmicos y / o la emisión de partículas alfa . Los errores causados por estos fenómenos se denominan errores leves . Más del 8% de los módulos 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 leve en cualquier bit de memoria individual es muy pequeña. Sin embargo, junto con la gran cantidad de memoria, las computadoras modernas, especialmente los servidores , están equipadas con y junto con períodos prolongados de tiempo de actividad, la probabilidad de errores de software en la memoria total instalada es significativa. [ cita requerida ]
La información en una memoria ECC se almacena de manera suficientemente redundante para corregir el error de un solo bit por palabra de memoria. Por lo tanto, una memoria ECC puede admitir la limpieza del contenido de la memoria. Es decir, si el controlador de memoria escanea sistemáticamente a través de la memoria, se pueden detectar los errores de un solo bit, se puede determinar el bit erróneo utilizando la suma de comprobación ECC y los datos corregidos se pueden volver a escribir en la memoria.
Descripción general
Es importante verificar cada ubicación de la memoria periódicamente, con la suficiente frecuencia, antes de que sea demasiado probable que ocurran errores de bits múltiples dentro de la misma palabra, porque los errores de un bit se pueden corregir, pero los errores de bits múltiples no se pueden corregir, en el caso de los errores habituales. (a partir de 2008) Módulos de memoria ECC.
Para no perturbar las solicitudes de memoria regulares de la CPU y así evitar la disminución del rendimiento , la limpieza generalmente solo se realiza durante los períodos de inactividad. Como la limpieza consiste en operaciones normales de lectura y escritura, puede aumentar el consumo de energía de la memoria en comparación con la operación sin limpieza. Por lo tanto, el fregado no se realiza de forma continua, sino periódica. Para muchos servidores, el período de limpieza se puede configurar en el programa de configuración del BIOS .
Las lecturas de memoria normales emitidas por la CPU o los dispositivos DMA se verifican en busca de errores ECC, pero debido a razones de ubicación de datos , pueden limitarse a un pequeño rango de direcciones y mantener intactas otras ubicaciones de memoria durante mucho tiempo. Estas ubicaciones pueden volverse vulnerables a más de un error leve, mientras que la limpieza garantiza la verificación de toda la memoria dentro de un tiempo garantizado.
En algunos sistemas, no solo la memoria principal (basada en DRAM) es capaz de depurar, sino también los cachés de la CPU (basados en SRAM). En la mayoría de los sistemas, las tasas de fregado para ambos se pueden configurar de forma independiente. Debido a que la caché es mucho más pequeña que la memoria principal, no es necesario que la limpieza de cachés se realice con tanta frecuencia.
La limpieza de memoria aumenta la confiabilidad, por lo tanto, se puede clasificar como una función RAS .
Variantes
Por lo general, hay dos variantes, conocidas como lavado de patrulla y lavado a pedido . Si bien ambos realizan esencialmente la limpieza de la memoria y la corrección de errores asociados (si es posible), la principal diferencia es cómo se inician y ejecutan estas dos variantes. El lavado de patrulla se ejecuta de manera automatizada cuando el sistema está inactivo, mientras que el lavado de demanda realiza la corrección de errores cuando los datos se solicitan realmente desde la memoria principal. [3]
Ver también
- Depuración de datos , una categoría general que contiene depuración de memoria
- Error leve , una razón importante para hacer borrado de memoria
- Detección y corrección de errores , una teoría general utilizada para borrar la memoria
- Actualización de la memoria , que conserva la información almacenada en la memoria.
Referencias
- ^ Ronald K. Burek. "Los registradores de datos de estado sólido CERCANOS" . Recopilación técnica de Johns Hopkins APL. 1998.
- ^ Errores de DRAM en la naturaleza: un estudio de campo a gran escala
- ^ "Manual de la placa base Supermicro X9SRA" (PDF) . Supermicro . 5 de marzo de 2014. p. 4–10 . Consultado el 22 de febrero de 2015 .