Memoria ECC vs Memoria convencional

Memorias ECC

Actualmente la mayoría de equipos que utilizan memoria RAM como portátiles, tablet, sobremesa, etc, utilizan memoria RAM no-ECC. ECC es el acrónimo de Error Checking and Correction (detección y corrección de errores). Generalmente este tipo de memoria RAM se utiliza en servidores (con procesadores Xeon) y si se instalan en equipos sobremesa nos podemos encontrar que el equipo no funciona (porque tanto la placa base como el procesador tienen que soportar memoria ECC).

La memoria ECC utiliza un sistema de paridad para detectar errores y corregirlos en el caso que solamente haya cambiado un bit. Si hay un error multibit, este sistema no puede resolverlo.
Vamos a ver de una forma muy simplificada como funciona un sistema de detección de errores de este tipo:
Imaginemos que tenemos un dato representado con 1 byte, osea 8 bits de la siguiente manera (11100000). A este dato se le asignaría una paridad utilizando una función xor de lógica matemática de tal manera que se asigna un 1 si hay un número par de unos y un 0 en caso contrario. Como en este caso tenemos tres unos, la paridad sería 1.
Imaginemos que almacenamos este dato en memoria junto a su paridad (11100000-1)- nótese que el último bit es la paridad- y por la razón que sea un bit de dicho dato (por ejemplo el octavo bit) cambia produciéndose así un error (11100001-1). Al recalcular la paridad y ver que hay un número para de unos esta sería 0 (11100001-0) y está registrada una paridad de 1, luego se puede decir que dicho dato está corrupto, ha habido un error. De esta manera tan sencilla se puede detectar que se ha producido un error. Las memorias ECC funcionan de forma parecida.
Este tipo de errores no es muy frecuente en las memorias (uno por cada giga o dos gigas al mes) y además como la tecnología esta avanzando, estas tasas de error cada vez son más inapreciables.
El caso es que como un error de este tipo puede hacer que un programa falle, los servidores, para curarse en salud utilizan memoria ECC que es más segura que la memoria común no-ECC.

Hay que tener en cuenta que las memorias ECC tienen algunos inconvenientes:

  • Son más lentas que las memorias normales puesto que tienen que hacer las comprobaciones que hemos visto anteriormente.
  • Al tener que almacenar la paridad hay espacio que no se aprovecha para almacenar datos.
  • Es más cara puesto que tiene que implementar las características anteriores.
  • Es por este tipo de inconvenientes por los que no se utiliza memoria ECC en equipos convencionales.

    Memoria ECC vs Memoria no-ECC

    Memoria ECC vs Memoria no-ECC

    Como se puede ver en la imagen de la izquierda, el módulo de memoria superior que es memoria ECC tiene 9 chips de memoria en vez de 8 como el módulo inferior el cual no es ECC. Esta memoria adicional se utiliza para almacenar la paridad.

    Algunos de estos módulos de memoria ECC también son buffered, esto quiere decir que tienen una memoria intermedia en sus buses de dirección y control que hace que la memoria sea más fiable en su funcionamiento aunque la ralentiza algo. Como se comentaba, este tipo de memoria se utiliza solamente en servidores. No todas las placas soportan este tipo de memoria.

    Deja un comentario

    Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

    Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>