stringtranslate.com

Memoria ECC

Los DIMM ECC suelen tener nueve chips de memoria en cada lado, uno más de los que se encuentran habitualmente en los DIMM no ECC (algunos módulos pueden tener 5 o 18). [1]

La memoria de código de corrección de errores ( memoria ECC ) es un tipo de almacenamiento de datos informáticos que utiliza un código de corrección de errores [a] (ECC) para detectar y corregir la corrupción de datos de n bits que se produce en la memoria.

Por lo general, la memoria ECC mantiene un sistema de memoria inmune a los errores de un solo bit: los datos que se leen de cada palabra son siempre los mismos que los datos que se escribieron en ella, incluso si uno de los bits realmente almacenados se ha invertido al estado incorrecto. La mayoría de las memorias no ECC no pueden detectar errores, aunque algunas memorias no ECC con soporte de paridad permiten la detección pero no la corrección.

La memoria ECC se utiliza en la mayoría de las computadoras donde no se puede tolerar la corrupción de datos, como aplicaciones de control industrial, bases de datos críticas y cachés de memoria de infraestructura.

Concepto

Los códigos de corrección de errores protegen contra la corrupción de datos no detectada y se utilizan en computadoras donde dicha corrupción es inaceptable, por ejemplo, en aplicaciones informáticas científicas y financieras, o en servidores de archivos y bases de datos . Los códigos de corrección de errores también pueden reducir la cantidad de fallas en aplicaciones de servidores multiusuario y sistemas de máxima disponibilidad.

Las interferencias eléctricas o magnéticas dentro de un sistema informático pueden hacer que un solo bit de la memoria dinámica de acceso aleatorio (DRAM) cambie espontáneamente al estado opuesto. Inicialmente se pensó que esto se debía principalmente a las partículas alfa emitidas por contaminantes en el material de empaquetado del chip, pero las investigaciones han demostrado que la mayoría de los errores suaves puntuales en los chips DRAM ocurren como resultado de la radiación de fondo , principalmente neutrones de rayos cósmicos secundarios, que pueden cambiar el contenido de una o más celdas de memoria o interferir con los circuitos utilizados para leer o escribir en ellas. [2] Por lo tanto, las tasas de error aumentan rápidamente con el aumento de la altitud; por ejemplo, en comparación con el nivel del mar, la tasa de flujo de neutrones es 3,5 veces mayor a 1,5 km y 300 veces mayor a 10-12 km (la altitud de crucero de los aviones comerciales). [3] Como resultado, los sistemas que operan a grandes altitudes requieren disposiciones especiales para la confiabilidad.

Como ejemplo, la nave espacial Cassini-Huygens , lanzada en 1997, contenía dos registradores de vuelo idénticos, cada uno con 2,5 gigabits de memoria en forma de matrices de chips DRAM comerciales. Debido a la funcionalidad EDAC incorporada , la telemetría de ingeniería de la nave espacial informó el número de errores (corregibles) de un solo bit por palabra y errores (incorregibles) de dos bits por palabra. Durante los primeros 2,5 años de vuelo, la nave espacial informó una tasa de error de un solo bit casi constante de aproximadamente 280 errores por día. Sin embargo, el 6 de noviembre de 1997, durante el primer mes en el espacio, el número de errores aumentó en más de un factor de cuatro en ese único día. Esto se atribuyó a un evento de partículas solares que había sido detectado por el satélite GOES 9. [ 4]

Existía cierta preocupación de que, a medida que aumenta la densidad de DRAM y, por lo tanto, los componentes de los chips se vuelven más pequeños, mientras que los voltajes operativos continúan cayendo, los chips DRAM se verán afectados por dicha radiación con mayor frecuencia, ya que las partículas de menor energía podrán cambiar el estado de una celda de memoria. [3] Por otro lado, las celdas más pequeñas son objetivos más pequeños, y los cambios en tecnologías como SOI pueden hacer que las celdas individuales sean menos susceptibles y, por lo tanto, contrarrestar, o incluso revertir, esta tendencia. Estudios recientes [5] muestran que las alteraciones de un solo evento debido a la radiación cósmica han estado disminuyendo drásticamente con la geometría del proceso y las preocupaciones anteriores sobre el aumento de las tasas de error de celda de bit son infundadas.

Investigación

Los trabajos publicados entre 2007 y 2009 mostraron tasas de error muy variables con más de 7 órdenes de magnitud de diferencia, que van desde 10 −10 error/bit·h (aproximadamente un error de bit por hora por gigabyte de memoria) a 10 −17 error/bit·h (aproximadamente un error de bit por milenio por gigabyte de memoria). [5] [6] [7] En la conferencia SIGMETRICS/Performance '09 se presentó un estudio a gran escala basado en la gran cantidad de servidores de Google . [6] La tasa de error real encontrada fue varios órdenes de magnitud mayor que la de los estudios previos a pequeña escala o de laboratorio, con entre 25.000 (2,5 × 10 −11 error/bit·h) y 70.000 (7,0 × 10 −11 error/bit·h, o 1 error de bit por gigabyte de RAM por 1,8 horas) errores por cada mil millones de horas de dispositivo por megabit. Más del 8% de los módulos de memoria DIMM se vieron afectados por errores por año.

Las consecuencias de un error de memoria dependen del sistema. En sistemas sin ECC, un error puede provocar un fallo o la corrupción de los datos; en los sitios de producción a gran escala, los errores de memoria son una de las causas de hardware más comunes de fallos de las máquinas. [6] Los errores de memoria pueden causar vulnerabilidades de seguridad. [6] Un error de memoria puede no tener consecuencias si cambia un bit que no causa un mal funcionamiento observable ni afecta a los datos utilizados en los cálculos o guardados. Un estudio de simulación de 2010 mostró que, para un navegador web, solo una pequeña fracción de los errores de memoria causaban corrupción de datos, aunque, como muchos errores de memoria son intermitentes y correlacionados, los efectos de los errores de memoria fueron mayores de lo que se esperaría de errores de software independientes. [8]

Algunas pruebas concluyen que el aislamiento de las celdas de memoria DRAM puede ser sorteado por efectos secundarios no deseados de accesos especialmente diseñados a celdas adyacentes. Así, el acceso a los datos almacenados en DRAM hace que las celdas de memoria pierdan sus cargas e interactúen eléctricamente, como resultado de la alta densidad de celdas en la memoria moderna, alterando el contenido de las filas de memoria cercanas que en realidad no fueron abordadas en el acceso a la memoria original. Este efecto se conoce como row hammer , y también se ha utilizado en algunos exploits de seguridad informática de escalada de privilegios . [9] [10]

Un ejemplo de un error de un solo bit que sería ignorado por un sistema sin comprobación de errores, que detendría una máquina con comprobación de paridad o que sería corregido invisiblemente por ECC: un solo bit se queda atascado en 1 debido a un chip defectuoso o cambia a 1 debido a la radiación de fondo o cósmica; se carga una hoja de cálculo que almacena números en formato ASCII y el carácter "8" (valor decimal 56 en la codificación ASCII) se almacena en el byte que contiene el bit atascado en su posición de bit más baja; luego, se realiza un cambio en la hoja de cálculo y se guarda. Como resultado, el "8" (0011 100 0 binario) se ha convertido silenciosamente en un "9" (0011 100 1 ).

Soluciones

Se han desarrollado varios enfoques para lidiar con cambios de bits no deseados, incluida la programación consciente de la inmunidad, la memoria de paridad RAM y la memoria ECC .

Este problema se puede mitigar utilizando módulos DRAM que incluyan bits de memoria adicionales y controladores de memoria que aprovechen estos bits. Estos bits adicionales se utilizan para registrar la paridad o para utilizar un código de corrección de errores (ECC). La paridad permite la detección de todos los errores de un solo bit (en realidad, cualquier número impar de bits erróneos). El código de corrección de errores más común, un código de Hamming de corrección de un solo error y detección de doble error (SECDED) , permite corregir un error de un solo bit y (en la configuración habitual, con un bit de paridad adicional) detectar errores de doble bit. Chipkill ECC es una versión más eficaz que también corrige errores de múltiples bits, incluida la pérdida de un chip de memoria completo.

Implementaciones

En 1982, esta placa de memoria de 512 KB de Cromemco utilizaba 22 bits de almacenamiento por palabra de 16 bits para permitir la corrección de errores de un solo bit.

Seymour Cray dijo la famosa frase " la paridad es para los agricultores " cuando se le preguntó por qué lo había dejado fuera del CDC 6600. [ 11] Más tarde, incluyó la paridad en el CDC 7600 , lo que provocó que los expertos comentaran que "aparentemente muchos agricultores compran computadoras". La IBM PC original y todas las PC hasta principios de la década de 1990 usaban la verificación de paridad. [12] Las posteriores, en su mayoría, no lo hacían.

Un controlador de memoria con capacidad ECC puede generalmente [a] detectar y corregir errores de un solo bit por palabra [b] (la unidad de transferencia de bus ), y detectar (pero no corregir) errores de dos bits por palabra. El BIOS de algunas computadoras, cuando se combina con sistemas operativos como algunas versiones de Linux , BSD y Windows ( Windows 2000 y posteriores [13] ), permite contar los errores de memoria detectados y corregidos, en parte para ayudar a identificar módulos de memoria defectuosos antes de que el problema se vuelva catastrófico.

Algunos chips DRAM incluyen circuitos de corrección de errores "internos" en el chip, que permiten que los sistemas con controladores de memoria no ECC aún obtengan la mayoría de los beneficios de la memoria ECC. [14] [15] En algunos sistemas, se puede lograr un efecto similar utilizando módulos de memoria EOS .

La detección y corrección de errores depende de una expectativa de los tipos de errores que ocurren. Implícitamente, se supone que el fallo de cada bit en una palabra de memoria es independiente, lo que resulta en la improbabilidad de dos errores simultáneos. Esto solía ser el caso cuando los chips de memoria tenían un ancho de un bit, lo que era típico en la primera mitad de la década de 1980; desarrollos posteriores trasladaron muchos bits al mismo chip. Esta debilidad se soluciona con varias tecnologías, entre ellas Chipkill de IBM , Extended ECC de Sun Microsystems , Chipspare de Hewlett-Packard y Single Device Data Correction (SDDC) de Intel .

La memoria DRAM puede proporcionar una mayor protección contra errores leves al confiar en códigos de corrección de errores. Dicha memoria de corrección de errores , conocida como memoria protegida por ECC o EDAC , es particularmente deseable para aplicaciones con alta tolerancia a fallas, como servidores, así como para aplicaciones de espacio profundo debido al aumento de la radiación . Algunos sistemas también " limpian " la memoria, leyendo periódicamente todas las direcciones y escribiendo versiones corregidas si es necesario para eliminar errores leves.

El entrelazado permite distribuir el efecto de un único rayo cósmico, lo que puede alterar varios bits físicamente vecinos en varias palabras al asociar bits vecinos a diferentes palabras. Siempre que una alteración de un único evento (SEU) no supere el umbral de error (por ejemplo, un único error) en cualquier palabra en particular entre accesos, se puede corregir (por ejemplo, mediante un código de corrección de errores de un único bit) y se puede mantener un sistema de memoria efectivamente libre de errores. [16]

Los controladores de memoria con corrección de errores tradicionalmente utilizan códigos Hamming , aunque algunos utilizan redundancia modular triple (TMR). Se prefiere este último porque su hardware es más rápido que el del esquema de corrección de errores de Hamming. [16] Los sistemas de satélites espaciales a menudo utilizan TMR, [17] [18] [19] aunque la RAM de los satélites generalmente utiliza corrección de errores de Hamming. [20]

Muchas de las primeras implementaciones de memoria ECC enmascaran los errores corregibles, actuando "como si" el error nunca hubiera ocurrido y solo informan los errores no corregibles. Las implementaciones modernas registran tanto los errores corregibles (CE) como los errores no corregibles (UE). Algunas personas reemplazan de manera proactiva los módulos de memoria que presentan altas tasas de error, con el fin de reducir la probabilidad de eventos de error no corregibles. [21]

Muchos sistemas de memoria ECC utilizan un circuito EDAC "externo" entre la CPU y la memoria. Algunos sistemas con memoria ECC utilizan sistemas EDAC internos y externos; el sistema EDAC externo debe estar diseñado para corregir ciertos errores que el sistema EDAC interno no puede corregir. [14] Las CPU de escritorio y servidor modernas integran el circuito EDAC en la CPU, [22] incluso antes del cambio hacia los controladores de memoria integrados en la CPU, que están relacionados con la arquitectura NUMA . La integración de la CPU permite un sistema EDAC sin penalización durante el funcionamiento sin errores.

A partir de 2009, los códigos de corrección de errores más comunes utilizan códigos Hamming o Hsiao que proporcionan corrección de errores de un solo bit y detección de errores de doble bit (SEC-DED). Se han propuesto otros códigos de corrección de errores para proteger la memoria: códigos de corrección de errores de doble bit y detección de errores de triple bit (DEC-TED), códigos de corrección de errores de un solo nibble y detección de errores de doble nibble (SNC-DND), códigos de corrección de errores Reed-Solomon , etc. Sin embargo, en la práctica, la corrección de múltiples bits generalmente se implementa intercalando múltiples códigos SEC-DED. [23] [24]

Las primeras investigaciones intentaron minimizar el área y los costos de retardo de los circuitos ECC. Hamming fue el primero en demostrar que los códigos SEC-DED eran posibles con una matriz de verificación particular. Hsiao demostró que una matriz alternativa con columnas de peso impar proporciona capacidad SEC-DED con menos área de hardware y un retraso más corto que los códigos SEC-DED de Hamming tradicionales. Investigaciones más recientes también intentan minimizar la potencia además de minimizar el área y el retraso. [25] [26] [27]

Cache

Muchas CPU utilizan códigos de corrección de errores en la memoria caché del chip , incluidos los procesadores Intel Itanium , Xeon , Core y Pentium (desde la microarquitectura P6 ) [28] [29] , los AMD Athlon , Opteron , todos los procesadores basados ​​en Zen [ 30] y Zen+ [31] ( EPYC , EPYC Embedded, Ryzen y Ryzen Threadripper ) y el DEC Alpha 21264. [23] [32]

A partir de 2006 , EDC/ECC y ECC/ECC son las dos técnicas de protección de errores de caché más comunes utilizadas en microprocesadores comerciales. La técnica EDC/ECC utiliza un código de detección de errores (EDC) en la caché de nivel 1. Si se detecta un error, los datos se recuperan de la caché de nivel 2 protegida por ECC. La técnica ECC/ECC utiliza una caché de nivel 1 protegida por ECC y una caché de nivel 2 protegida por ECC. [33] Las CPU que utilizan la técnica EDC/ECC siempre escriben todos los STORES en la caché de nivel 2, de modo que cuando se detecta un error durante una lectura de la caché de datos de nivel 1, se puede recuperar una copia de esos datos de la caché de nivel 2.

Memoria registrada

Una memoria RDIMM DDR5 -4800 ECC de 64 GiB y 1,1 V

La memoria registrada o con buffer no es lo mismo que la memoria ECC; las tecnologías realizan funciones diferentes. Es habitual que la memoria utilizada en servidores sea tanto registrada, para permitir que se utilicen muchos módulos de memoria sin problemas eléctricos, como ECC, para la integridad de los datos. La memoria utilizada en ordenadores de sobremesa no suele ser ni una ni otra, por motivos económicos. Sin embargo, hay memoria ECC sin buffer (no registrada) disponible [34], y algunas placas base que no son para servidores admiten la funcionalidad ECC de dichos módulos cuando se utilizan con una CPU que admite ECC. [35] La memoria registrada no funciona de forma fiable en placas base sin circuitos de buffer, y viceversa.

Ventajas y desventajas

En última instancia, existe un equilibrio entre la protección contra pérdidas inusuales de datos y un coste más elevado.

La memoria ECC suele tener un precio más elevado en comparación con la memoria que no es ECC, debido al hardware adicional necesario para producir módulos de memoria ECC y a los menores volúmenes de producción de memoria ECC y hardware de sistema asociado. Las placas base, los chipsets y los procesadores que admiten ECC también pueden ser más caros.

La compatibilidad con ECC varía entre los fabricantes de placas base, por lo que es posible que una placa base incompatible con ECC no reconozca la memoria ECC. La mayoría de las placas base y procesadores para aplicaciones menos críticas no están diseñados para admitir ECC. Algunas placas y procesadores habilitados para ECC pueden admitir ECC sin búfer (no registrado), pero también funcionarán con memoria no ECC; el firmware del sistema habilita la funcionalidad ECC si se instala memoria ECC.

El ECC puede reducir el rendimiento de la memoria en alrededor de un 2-3 por ciento en algunos sistemas, dependiendo de la aplicación y la implementación, debido al tiempo adicional necesario para que los controladores de memoria ECC realicen la comprobación de errores. [36] Sin embargo, los sistemas modernos integran las pruebas ECC en la CPU, sin generar retrasos adicionales en los accesos a la memoria siempre que no se detecten errores. [22] [37] [38] Este no es el caso del ECC en banda que almacena las tablas utilizadas para la protección en una región reservada de la memoria principal del sistema, [39] [40] compatible con Intel para Chromebooks , que mostró poco impacto en la navegación web y las tareas de productividad, pero provocó una reducción de hasta un 25% en los puntos de referencia de juegos y edición de vídeo . [41]

La memoria compatible con ECC puede contribuir a un consumo de energía adicional debido a los circuitos de corrección de errores.

Notas

  1. ^ ab La mayoría de las memorias ECC utilizan un código SECDED .
  2. ^ Si bien las palabras de 72 bits con 64 bits de datos y 8 bits de verificación son comunes, ECC también se utiliza con tamaños más pequeños y más grandes.

Referencias

  1. ^ Werner Fischer. "RAM Revealed". admin-magazine.com . Consultado el 20 de octubre de 2014 .
  2. ^ Vuelta a nivel del suelo por un solo evento, Eugene Normand, miembro, IEEE, Boeing Defense & Space Group, Seattle, WA 98124-2499
  3. ^ ab "Un estudio de técnicas para modelar y mejorar la confiabilidad de los sistemas informáticos", IEEE TPDS, 2015
  4. ^ Gary M. Swift y Steven M. Guertin. "Observaciones en vuelo de alteraciones de varios bits en memorias DRAM". Laboratorio de Propulsión a Chorro
  5. ^ ab Borucki, "Comparación de las tasas de error de software aceleradas de DRAM medidas a nivel de componente y sistema", 46.º Simposio anual internacional sobre física de confiabilidad, Phoenix, 2008, págs. 482-487
  6. ^ abcd Schroeder, Bianca ; Pinheiro, Eduardo; Weber, Wolf-Dietrich (2009). Errores de DRAM en la naturaleza: un estudio de campo a gran escala (PDF) . ACM. ISBN 978-1-60558-511-6. {{cite book}}: |journal=ignorado ( ayuda )
    • Robin Harris (4 de octubre de 2009). "Tasas de error de DRAM: una pesadilla en la calle DIMM". ZDNet .
  7. ^ "Una medición de errores de memoria en sistemas de producción". Archivado desde el original el 14 de febrero de 2017. Consultado el 27 de junio de 2011 .
  8. ^ Li, Huang; Shen, Chu (2010). ""Una evaluación realista de los errores de hardware de memoria y la susceptibilidad del sistema de software". Usenix Annual Tech Conference 2010" (PDF) .
  9. ^ Yoongu Kim; Ross Daly; Jeremie Kim; Chris Fallin; Ji Hye Lee; Donghyuk Lee; Chris Wilkerson; Konrad Lai; Onur Mutlu (24 de junio de 2014). "Cambio de bits en la memoria sin acceder a ellos: un estudio experimental de errores de perturbación de DRAM" (PDF) . ece.cmu.edu . IEEE . Consultado el 10 de marzo de 2015 .
  10. ^ Dan Goodin (10 de marzo de 2015). "Un ataque de última generación otorga estatus de superusuario al explotar una debilidad de la memoria DRAM". Ars Technica . Consultado el 10 de marzo de 2015 .
  11. ^ "CDC 6600". Microsoft Research . Consultado el 23 de noviembre de 2011 .
  12. ^ "Comprobación de paridad". Pcguide.com. 17 de abril de 2001. Consultado el 23 de noviembre de 2011 .
  13. ^ DOMARS. "!mca". docs.microsoft.com . Consultado el 27 de marzo de 2021 .
  14. ^ de AH Johnston. "Efectos de la radiación espacial en memorias flash avanzadas" Archivado el 4 de marzo de 2016 en Wayback Machine . Programa de empaquetado y componentes electrónicos (NEPP) de la NASA. 2001.
  15. ^ "ECC DRAM". intelligentmemory.com . Archivado desde el original el 2019-02-12 . Consultado el 2021-06-12 .
  16. ^ ab "Uso del StrongArm SA-1110 en el ordenador de a bordo de un nanosatélite". Centro Espacial Tsinghua, Universidad Tsinghua, Pekín. Archivado desde el original el 2011-10-02 . Consultado el 2009-02-16 .
  17. ^ "Los ingenieros de Actel utilizan redundancia de triple módulo en un nuevo FPGA de alta resistencia a la radiación". Military & Aerospace Electronics. Archivado desde el original el 14 de julio de 2012. Consultado el 16 de febrero de 2009 .
  18. ^ "Endurecimiento de matrices de puertas programables en campo (FPGAs) para aplicaciones espaciales y caracterización de dispositivos en SEU". Klabs.org. 2010-02-03. Archivado desde el original el 2011-11-25 . Consultado el 2011-11-23 .
  19. ^ "FPGAs en el espacio". Techfocusmedia.net . Consultado el 23 de noviembre de 2011 .[ enlace muerto permanente ]
  20. ^ "Tecnologías de microelectrónica comercial para aplicaciones en el entorno de radiación satelital". Radhome.gsfc.nasa.gov. Archivado desde el original el 4 de marzo de 2001. Consultado el 23 de noviembre de 2011 .
  21. ^ Doug Thompson, Mauro Carvalho Chehab. "EDAC - Error Detection And Correction" Archivado el 5 de septiembre de 2009 en Wayback Machine . 2005 - 2009. "El objetivo del módulo del núcleo 'edac' es detectar y reportar errores que ocurren dentro del sistema informático que se ejecuta bajo Linux".
  22. ^ ab "Guía de diseño de BIOS/software del controlador del sistema AMD-762™, pág. 179" (PDF) .
  23. ^ ab Doe Hyun Yoon; Mattan Erez. "ECC mapeado en memoria: protección de errores de bajo costo para cachés de último nivel". 2009. p. 3
  24. ^ Daniele Rossi; Nicola Timoncini; Michael Spica; Cecilia Metra . "Análisis de código de corrección de errores para memoria caché de alta confiabilidad y rendimiento" Archivado el 3 de febrero de 2015 en Wayback Machine .
  25. ^ Shalini Ghosh; Sugato Basu; y Nur A. Touba. "Selección de códigos de corrección de errores para minimizar el consumo de energía en circuitos de verificación de memoria" Archivado el 3 de febrero de 2015 en Wayback Machine . pág. 2 y pág. 4.
  26. ^ Chris Wilkerson; Alaa R. Alameldeen; Zeshan Chishti; Wei Wu; Dinesh Somasekhar; Shih-lien Lu. "Reducir la potencia de la caché con códigos de corrección de errores de varios bits y de bajo costo". doi :10.1145/1816038.1815973.
  27. ^ MY Hsiao. "Una clase de códigos SEC-DED de columna de peso impar mínimo óptimo". 1970.
  28. ^ Intel Corporation. "Familia de procesadores Intel Xeon E7: confiabilidad, disponibilidad y facilidad de mantenimiento". 2011. pág. 12.
  29. ^ "Bios y caché". www.custom-build-computers.com . Consultado el 27 de marzo de 2021 .
  30. ^ "Microarquitectura AMD Zen: jerarquía de memoria". WikiChip . Consultado el 15 de octubre de 2018 .
  31. ^ "Microarquitectura AMD Zen+: jerarquía de memoria". WikiChip . Consultado el 15 de octubre de 2018 .
  32. ^ Jangwoo Kim; Nikos Hardavellas; Ken Mai; Babak Falsafi; James C. Hoe. "Cachés tolerantes a errores de múltiples bits que utilizan codificación de errores bidimensional". 2007. pág. 2.
  33. ^ Nathan N. Sadler y Daniel J. Sorin. "Elección de un esquema de protección contra errores para la caché de datos L1 de un microprocesador". 2006. pág. 1.
  34. ^ "Módulo RAM ECC sin búfer típico: Crucial CT25672BA1067".
  35. ^ Especificación de placa base de escritorio que admite RAM sin búfer ECC y no ECC con CPU compatibles
  36. ^ "Discusión sobre ECC en pcguide". Pcguide.com. 17 de abril de 2001. Consultado el 23 de noviembre de 2011 .
  37. ^ Benchmark de la plataforma AMD-762/Athlon con y sin ECC Archivado el 15 de junio de 2013 en Wayback Machine
  38. ^ "ECCploit: después de todo, la memoria ECC es vulnerable a los ataques Rowhammer". Grupo de seguridad de sistemas y redes de la VU Amsterdam. 12 de noviembre de 2018. Consultado el 22 de noviembre de 2018 .
  39. ^ Estados Unidos abandonó 20190332469A1, Amir A. RADJAI, Nagi Aboulenein, Steve L. GEIGER, Satyajit A. JADHAV, Bezan J. KAPADIA, Vivek Kozhikkottu, Rashmi LAKKUR SUBRAMANYAM, Srithar Rames, James M. Shehadi, Jason D. VAN DYKEN, " Módulo de protección de código de corrección de errores de memoria en banda basado en rango de direcciones con búfer de síndrome", publicado el 31 de octubre de 2019, asignado a Intel 
  40. ^ Patente estadounidense 11768731B2, Hartlieb, Heimo & Heiling, Christian, "Sistema y método para la detección y corrección transparente de errores de datos de registro a través de un bus de comunicación", publicada el 5 de noviembre de 2020, asignada a Infineon Technologies 
  41. ^ Ganesh TS (29 de enero de 2023). "Revisión de ASRock Industrial NUCS BOX-1360P/D4: Raptor Lake-P impresiona, además de un ECC sorprendente". pp. 2–6 . Consultado el 29 de enero de 2024 .

Enlaces externos