ECC y DDR5: cómo funciona la corrección de errores en la memoria RAM

Fuentes: ECC and DDR5

La memoria con ECC (código de corrección de errores) detecta y corrige fallos de bits antes de que lleguen a la CPU. El sistema más extendido es el código de Hamming, que con suficientes bits redundantes corrige errores de un solo bit y detecta los de dos bits en bloques de datos. En DDR4 el bus transmite 72 bits de los que 64 son datos útiles, lo que permite proteger 65 bits de información. Una distinción habitual es entre RDIMM (memoria registrada, con búfer, pensada para servidores y módulos de mayor capacidad) y UDIMM (la convencional de PCs y portátiles). Existen RDIMM sin ECC, pero en la práctica casi todos los sistemas usan RDIMM con ECC y UDIMM sin ECC.

El término ChipKill, registrado por IBM, designa a los sistemas que toleran el fallo completo de un chip DRAM; Dell y HP lo comercializan como "Advanced ECC" y requiere un número par de módulos. DDR5 introduce ECC dentro del propio chip de memoria para mitigar el aumento de fallos asociado a transistores más pequeños y rápidos, aunque no sustituye al ECC externo. En DDR5 conviven los formatos EC4 (36 bits por subcanal) y EC8 (40 bits), siendo este último el único que permite códigos de Hamming completos por subcanal de 32 bits. El autor advierte de que mezclar EC4 y EC8 en un mismo servidor, como ocurre en el Dell R760, puede dar lugar a especificaciones inadecuadas y recomienda usar siempre ECC: incluso en un equipo doméstico se documentan fallos de memoria causantes de corrupción de文件系统 y de datos, y Mozilla atribuye al hardware de RAM hasta el 15 % de los cuelgues de Firefox.