stringtranslate.com

memoria ECC

Los DIMM ECC suelen tener nueve chips de memoria en cada lado, uno más de los que normalmente se encuentran en los DIMM que no son 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. 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.

Normalmente, la memoria ECC mantiene un sistema de memoria inmune a 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 en el estado equivocado. 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.

Descripción

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 . ECC también puede reducir la cantidad de fallas en aplicaciones de servidor multiusuario y sistemas de máxima disponibilidad.

La interferencia eléctrica o magnética dentro de un sistema informático puede provocar 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 los contaminantes en el material de embalaje de los chips, pero las investigaciones han demostrado que la mayoría de los errores leves puntuales en los chips DRAM se producen como resultado de la radiación de fondo , principalmente neutrones de los rayos secundarios de los rayos cósmicos. , que puede cambiar el contenido de una o más celdas de memoria o interferir con los circuitos utilizados para leerlas o escribirlas. [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 su confiabilidad.

Por 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 conjuntos de chips DRAM comerciales. Debido a la funcionalidad EDAC incorporada , la telemetría de ingeniería de la nave espacial informó la cantidad de errores (corregibles) de un solo bit por palabra y errores (incorregibles) de doble bit por palabra. Durante los primeros dos años y medio 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ó más de cuatro veces en ese único día. Esto se atribuyó a un evento de partículas solares detectado por el satélite GOES 9 . [4]

Existía cierta preocupación de que a medida que la densidad de la DRAM aumenta aún más y, por lo tanto, los componentes de los chips se hacen más pequeños, mientras que los voltajes de funcionamiento 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 una memoria. estado de la célula. [3] Por otro lado, las células más pequeñas constituyen objetivos más pequeños, y el paso a tecnologías como SOI puede hacer que las células individuales sean menos susceptibles y así contrarrestar, o incluso revertir, esta tendencia. Estudios recientes [5] muestran que las alteraciones de un solo evento debidas a la radiación cósmica han disminuido drásticamente con la geometría del proceso y las preocupaciones anteriores sobre el aumento de las tasas de error de las celdas de bits son infundadas.

Investigación

El trabajo publicado entre 2007 y 2009 mostró 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) hasta 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 el gran número de servidores de Google . [6] La tasa de error real encontrada fue varios órdenes de magnitud superior a la de los estudios anteriores 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). ·h, o error de 1 bit por gigabyte de RAM cada 1,8 horas) errores por mil millones de horas de dispositivo por megabit. Más del 8% de los módulos de memoria DIMM se vieron afectados por errores cada año.

Las consecuencias de un error de memoria dependen del sistema. En sistemas sin ECC, un error puede provocar un fallo o corrupción de datos; En sitios de producción a gran escala, los errores de memoria son una de las causas más comunes de fallas de hardware en las máquinas. [6] Los errores de memoria pueden causar vulnerabilidades de seguridad. [6] Un error de memoria no puede tener consecuencias si cambia un bit que no causa un mal funcionamiento observable ni afecta 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 están correlacionados, los efectos de los errores de memoria fueron mayores de lo que se esperaría para errores leves independientes. [8]

Algunas pruebas concluyen que el aislamiento de las celdas de memoria DRAM puede evitarse mediante efectos secundarios no deseados de accesos especialmente diseñados a celdas adyacentes. Por lo tanto, acceder a los datos almacenados en DRAM hace que las células de memoria pierdan sus cargas e interactúen eléctricamente, como resultado de la alta densidad de células 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 martillo de fila y también se ha utilizado en algunos ataques 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 verificación de errores, detendría una máquina con verificación de paridad o sería corregido de manera invisible por ECC: un solo bit está atascado en 1 debido a un chip defectuoso, o cambia a 1 debido a 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 abordar los cambios de bits no deseados, incluida la programación con reconocimiento de inmunidad, la memoria de paridad RAM y la memoria ECC .

Este problema se puede mitigar mediante el uso de módulos DRAM que incluyen bits de memoria adicionales y controladores de memoria que explotan 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 incorrectos). El código de corrección de errores más común, un código Hamming de corrección de error único y detección de error doble (SECDED) , permite corregir un error de un solo bit y (en la configuración habitual, con un bit de paridad adicional) errores de doble bit. para ser detectado. Chipkill ECC es una versión más efectiva 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é había dejado esto 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 PC IBM original y todas las PC hasta principios de la década de 1990 utilizaban verificación de paridad. [12] Los posteriores en su mayoría no lo hicieron.

Un controlador de memoria con capacidad ECC generalmente puede [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 en 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 los módulos de memoria defectuosos antes. el problema se vuelve 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 que no son ECC 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 la expectativa de los tipos de errores que ocurren. Implícitamente, se supone que la falla de cada bit en una palabra de memoria es independiente, lo que resulta en la improbabilidad de que se produzcan dos errores simultáneos. Este era el caso cuando los chips de memoria tenían un ancho de un bit, lo que era típico en la primera mitad de los años 1980; Los desarrollos posteriores trasladaron muchos bits al mismo chip. Esta debilidad es abordada por varias tecnologías, incluyendo Chipkill de IBM , ECC extendido de Sun Microsystems , Chipspare de Hewlett-Packard y Corrección de datos de dispositivo único (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. Esta memoria de corrección de errores , conocida como memoria protegida ECC o EDAC , es particularmente deseable para aplicaciones con alta tolerancia a fallas, como servidores, así como 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 la distribución del efecto de un solo rayo cósmico, lo que potencialmente altera múltiples bits físicamente vecinos en varias palabras al asociar bits vecinos a diferentes palabras. Siempre que un evento único alterado (SEU) no exceda el umbral de error (p. ej., un solo error) en cualquier palabra en particular entre accesos, se puede corregir (p. ej., mediante un código de corrección de errores de un solo bit) y una solución eficaz. Se puede mantener un sistema de memoria libre de errores. [dieciséis]

Los controladores de memoria con corrección de errores utilizan tradicionalmente códigos Hamming , aunque algunos utilizan triple redundancia modular (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 suelen utilizar TMR, [17] [18] [19] aunque la RAM de satélite suele utilizar la corrección de errores de Hamming. [20]

Muchas de las primeras implementaciones de memoria ECC enmascaran errores corregibles, actuando "como si" el error nunca hubiera ocurrido y solo informan errores incorregibles. Las implementaciones modernas registran tanto errores corregibles (CE) como errores incorregibles (UE). Algunas personas reemplazan de forma proactiva los módulos de memoria que presentan altas tasas de error, para reducir la probabilidad de que se produzcan errores 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 diseñarse para corregir ciertos errores que el sistema EDAC interno no puede corregir. [14] Las CPU de escritorio y servidores modernas integran el circuito EDAC en la CPU, [22] incluso antes del cambio hacia 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 un 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 códigos de detección de errores de triple bit (DEC-TED), códigos de corrección de errores de un solo bit y códigos de detección de errores de doble bit (SNC-DND), Reed- Códigos de corrección de errores de Solomon , etc. Sin embargo, en la práctica, la corrección de múltiples bits generalmente se implementa entrelazando múltiples códigos SEC-DED. [23] [24]

Las primeras investigaciones intentaron minimizar el área y retrasar los gastos generales de los circuitos ECC. Hamming demostró por primera vez 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 tradicionales Hamming SEC-DED. 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 caché del chip , incluidos los procesadores Intel Itanium , Xeon , Core y Pentium (desde la microarquitectura P6 ) [28] [29] , AMD Athlon , Opteron , todos Zen - [30] y Procesadores [31] basados ​​en Zen+ ( EPYC , EPYC Embedded, Ryzen y Ryzen Threadripper ) y DEC Alpha 21264. [23] [32]

A partir de 2006 , EDC/ECC y ECC/ECC son las dos técnicas de protección contra 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 con ECC y una caché de nivel 2 protegida con ECC. [33] Las CPU que utilizan la técnica EDC/ECC siempre escriben todos los STORE 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. caché de nivel 2.

Memoria registrada

Dos RDIMM DDR4 -2133 ECC de 1,2 V de 8 GB

La memoria registrada o almacenada en búfer no es lo mismo que ECC; las tecnologías realizan diferentes funciones. Es habitual que la memoria utilizada en los servidores sea tanto registrada, para permitir utilizar muchos módulos de memoria sin problemas eléctricos, como ECC, para la integridad de los datos. La memoria utilizada en las computadoras de escritorio generalmente no es ninguna de las dos, por razones de economía. Sin embargo, hay disponible memoria ECC sin búfer (no registrada) [34] y algunas placas base que no son de servidor admiten la funcionalidad ECC de dichos módulos cuando se usan con una CPU que admite ECC. [35] La memoria registrada no funciona de manera confiable en placas base sin circuitos de almacenamiento en búfer, y viceversa.

Ventajas y desventajas

En última instancia, existe un equilibrio entre la protección contra pérdidas inusuales de datos y un costo mayor.

La memoria ECC generalmente implica un precio más alto en comparación con la memoria que no es ECC, debido al hardware adicional requerido para producir módulos de memoria ECC y debido a los menores volúmenes de producción de memoria ECC y hardware del sistema asociado. Las placas base, los conjuntos de chips 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 simplemente 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 que no sea ECC; El firmware del sistema habilita la funcionalidad ECC si la memoria ECC está instalada.

ECC puede reducir el rendimiento de la memoria entre un 2 y un 3 por ciento en algunos sistemas, según la aplicación y la implementación, debido al tiempo adicional necesario para que los controladores de memoria ECC realicen la verificación de errores. [36] Sin embargo, los sistemas modernos integran pruebas ECC en la CPU, lo que no genera retrasos adicionales en los accesos a la memoria siempre que no se detecten errores. [22] [37] [38] Este no es el caso de ECC en banda , que almacena tablas utilizadas para 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 navegación web y tareas de productividad, pero causó una reducción de hasta un 25% en los puntos de referencia de juegos y edición de video . [41]

La memoria de soporte ECC puede contribuir al 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 son comunes las palabras de 72 bits con 64 bits de datos y 8 bits de verificación, ECC también se usa con tamaños cada vez más pequeños.

Referencias

  1. ^ Werner Fischer. "RAM revelada". admin-revista.com . Consultado el 20 de octubre de 2014 .
  2. ^ Evento único trastornado a nivel del suelo, Eugene Normand, miembro, IEEE, Boeing Defence & 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 perturbaciones de varios bits en DRAM". Laboratorio de propulsión a chorro
  5. ^ ab Borucki, "Comparación de tasas de error suave de DRAM aceleradas medidas a nivel de componente y sistema", 46º Simposio internacional anual de física de confiabilidad, Phoenix, 2008, págs.
  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: Pesadilla en la calle DIMM". ZDNet .
  7. ^ "Una medición de errores de memoria blanda 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 la memoria y la susceptibilidad del sistema de software". Conferencia tecnológica anual de Usenix 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). "Invertir 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). "El truco de vanguardia otorga el estatus de superusuario al explotar la debilidad de la DRAM". Ars Técnica . Consultado el 10 de marzo de 2015 .
  11. ^ "CDC 6600". Investigación de Microsoft . Consultado el 23 de noviembre de 2011 .
  12. ^ "Comprobación de paridad". Pcguide.com. 2001-04-17 . Consultado el 23 de noviembre de 2011 .
  13. ^ DOMARES. "mca - controladores de Windows". docs.microsoft.com . Consultado el 27 de marzo de 2021 .
  14. ^ ab AH Johnston. "Efectos de la radiación espacial en memorias flash avanzadas" Archivado el 4 de marzo de 2016 en Wayback Machine . Programa de embalaje y piezas electrónicas de la NASA (NEPP). 2001.
  15. ^ "ECC DRAM - Memoria inteligente". intelligentmemory.com . Archivado desde el original el 12 de febrero de 2019 . Consultado el 12 de junio de 2021 .
  16. ^ ab "Uso de StrongArm SA-1110 en la computadora de a bordo del nanosatélite". Centro Espacial Tsinghua, Universidad Tsinghua, Beijing. Archivado desde el original el 2 de octubre de 2011 . Consultado el 16 de febrero de 2009 .
  17. ^ "Los ingenieros de Actel utilizan redundancia de módulo triple en una nueva FPGA radical". Electrónica militar y aeroespacial. Archivado desde el original el 14 de julio de 2012 . Consultado el 16 de febrero de 2009 .
  18. ^ "Endurecimiento SEU de matrices de puertas programables de campo (FPGA) para aplicaciones espaciales y caracterización de dispositivos". Klabs.org. 2010-02-03. Archivado desde el original el 25 de noviembre de 2011 . Consultado el 23 de noviembre de 2011 .
  19. ^ "FPGA en el espacio". Techfocusmedia.net . Consultado el 23 de noviembre de 2011 .[ enlace muerto permanente ]
  20. ^ "Tecnologías microelectrónicas comerciales 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 - Detección y corrección de errores" Archivado el 5 de septiembre de 2009 en Wayback Machine . 2005 - 2009. "El objetivo del módulo del kernel 'edac' es detectar e informar 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. 179" (PDF) .
  23. ^ ab Doe Hyun Yoon; Mattan Erez. "ECC asignada en memoria: protección contra errores de bajo costo para cachés de último nivel". 2009. pág. 3
  24. ^ Daniele Rossi; Nicola Timoncini; Michael Spica; Cecilia Metra . "Análisis de código de corrección de errores para alta confiabilidad y rendimiento de la memoria caché" 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 la energía en los circuitos del verificador de memoria" Archivado el 3 de febrero de 2015 en Wayback Machine . pag. 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. ^ MI Hsiao. "Una clase de códigos SEC-DED de columna de peso impar mínimo óptimo". 1970.
  28. ^ Corporación Intel. "Familia de procesadores Intel Xeon E7: confiabilidad, disponibilidad y capacidad de servicio". 2011. pág. 12.
  29. ^ "Bios y caché: computadoras personalizadas". 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. Azada. "Cachés tolerantes a errores de varios 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 típico sin búfer: 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. 2001-04-17 . 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 de Rowhammer". Grupo de Seguridad de Sistemas y Redes en VU Amsterdam . 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 de errores de datos de registro transparente a través de un bus de comunicación", publicado el 5 de noviembre de 2020, asignado 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 ECC sorpresa". págs. 2–6 . Consultado el 29 de enero de 2024 .

enlaces externos