Hoy en día, la gran mayoría de la memoria utilizada por los ordenadores de sobremesa, portátiles y dispositivos móviles es DRAM sin búfer y sin ECC (Comprobación y Corrección de Errores). De hecho, a menos que se utilice una CPU de Intel o AMD que admita memoria ECC, la DRAM ECC sin búfer es la única opción para la mayoría de los usuarios. Los Xeon de Intel, por ejemplo, soportan memoria ECC, mientras que incluso los nuevos Core i7 no lo hacen. AMD tiene un soporte de ECC mucho más amplio a nivel de CPU, pero muchas placas base de AMD no soportan las características de la memoria ECC, por lo que no es universal.
Memoria ECC Qué hace
La memoria de comprobación y corrección de errores (ECC) se considera mayormente esencial en los entornos empresariales en estos días. La comprobación y corrección de errores de un solo bit dentro de un byte de 8 bits permite detectar y corregir errores de un solo bit cuando se producen. Curiosamente, la forma en que funciona esta ECC de un solo bit no es tan diferente a la de RAID 4 y RAID 5, donde se utiliza un algoritmo XOR para generar bits de paridad. En lugar de perder capacidad de memoria utilizable, los fabricantes de memoria tienden a añadir un chip adicional a la memoria ECC por cada ocho chips de almacenamiento. Cuando se detecta un error de un solo bit, la información de paridad se utiliza para reconstruir los datos con error. De nuevo, esto es conceptualmente similar a cómo RAID 4 y RAID 5 pueden fregar y arreglar los errores de datos en las matrices de almacenamiento. Los errores más grandes que los de varios bits pueden ser detectados pero no corregidos por el esquema de paridad de tipo ECC de un solo bit.
Para los ordenadores de sobremesa, esto es menos importante ya que muchas cifras sitúan los errores de un solo bit en el rango de 1 por cada 1GB o 1 por cada 2GB de memoria cada mes. Para un usuario de escritorio, esto puede provocar el bloqueo de un programa o, en el peor de los casos, requerir un reinicio. En los servidores, ECC es esencial para mantener la integridad de los datos y el tiempo de actividad. Con la actual diferencia de coste menor de los módulos DIMM sin búfer ECC frente a los que no lo son, hay pocas razones para adquirir memoria sin ECC para un servidor.
Memoria ECC sin búfer frente a memoria ECC registrada
Además del concepto de ECC, hay dos conceptos en juego, los módulos de memoria ECC sin búfer y los registrados. La diferencia básica es que los comandos de memoria en las configuraciones de memoria sin búfer van directamente del controlador al módulo de memoria, mientras que en las configuraciones de memoria registrada los comandos se envían primero a los registros de los bancos de memoria antes de ser enviados a los módulos. Este concepto puede sonar difícil, pero aquí está la visión muy simple / conceptual con respecto a lo que está pasando.
En el ejemplo anterior el controlador de memoria accede a los bancos de memoria directamente. Lo anterior asume que el controlador de memoria reside dentro del paquete de la CPU como lo hace en las arquitecturas modernas de la CPU. Mirando los sistemas más antiguos, el controlador de memoria residía dentro del puente norte de la CPU. Compare esto con el ejemplo de memoria registrada de abajo.
Aquí la CPU se comunica con los registros de los bancos de memoria de cada módulo. Desde allí, estos registros se comunican con la DRAM. Las implicaciones de esto son dobles. Primero, en el lado negativo, las instrucciones tardan aproximadamente un ciclo más de la CPU debido a la intermediación del registro del banco. En el lado positivo, este búfer reduce la tensión en el controlador de memoria de la CPU porque apunta al registro intermediario dedicado en lugar de acceder a la DRAM directamente. Es más fácil para el controlador de memoria tratar con un menor número de objetivos.
Esta característica es muy importante en los escenarios de servidor porque, por ejemplo, una plataforma de la serie Intel 3400, como la Supermicro X8SI6-F o la Intel S3420GPLC admite 16 GB de memoria ECC sin búfer y 32 GB de memoria ECC registrada. Asimismo, en los sistemas de doble procesador, como el Supermicro X8DTH-6F basado en la serie E5600 y analizado recientemente en ServeTheHome, la diferencia es mucho mayor con hasta 48 GB de memoria ECC no registrada o 192 GB de memoria ECC registrada. Para los entornos de virtualización en los que la memoria, y el ancho de banda de la memoria, es clave para lograr una alta consolidación y métricas de densidad, la memoria ECC registrada es generalmente el camino a seguir. Si uno adquiere un servidor con módulos DIMM ECC no registrados y luego necesita capacidad adicional, la operación de actualización requerirá tirar y reemplazar todos los módulos UDIMM, lo que lo convierte en una propuesta costosa.
Conclusión
En este artículo se espera que uno pueda obtener una visión conceptual de la diferencia entre la memoria ECC sin búfer y la memoria ECC registrada para ayudar a informar las decisiones de selección. Este no ha sido un artículo demasiado técnico porque los módulos de memoria tienden a ser elementos que la gente pide o añade a sus sistemas y en los que trabaja poco hasta que necesita más memoria.