De Wikipedia, la enciclopedia libre
  (Redirigido desde la detección de errores )
Saltar a navegación Saltar a búsqueda
Para limpiar los errores de transmisión introducidos por la atmósfera de la Tierra (izquierda), los científicos de Goddard aplicaron la corrección de errores Reed-Solomon (derecha), que se usa comúnmente en CD y DVD. Los errores típicos incluyen píxeles faltantes (blanco) y señales falsas (negro). La franja blanca indica un breve período en el que se pausó la transmisión.

En la teoría de la información y la teoría de la codificación con aplicaciones en informática y telecomunicaciones , la detección y corrección de errores o el control de errores son técnicas que permiten la entrega confiable de datos digitales a través de canales de comunicación no confiables . Muchos canales de comunicación están sujetos a ruido de canal y, por lo tanto, pueden introducirse errores durante la transmisión desde la fuente a un receptor. Las técnicas de detección de errores permiten detectar dichos errores, mientras que la corrección de errores permite la reconstrucción de los datos originales en muchos casos.

Definiciones [ editar ]

La detección de errores es la detección de errores causados ​​por ruido u otros impedimentos durante la transmisión del transmisor al receptor. La corrección de errores es la detección de errores y la reconstrucción de los datos originales sin errores.

Historia [ editar ]

En la antigüedad clásica, a los copistas de la Biblia hebrea se les pagaba por su trabajo de acuerdo con el número de puntadas (líneas de verso). Como los libros en prosa de la Biblia casi nunca se escribían con puntadas, los copistas, para estimar la cantidad de trabajo, tenían que contar las letras. [1] Esto también ayudó a garantizar la precisión en la transmisión del texto con la producción de copias posteriores. [2] [3] Entre los siglos VII y X EC, un grupo de escribas judíos formalizó y expandió esto para crear la Masorah numérica.para asegurar la reproducción exacta del texto sagrado. Incluyó recuentos de la cantidad de palabras en una línea, sección, libro y grupos de libros, anotando el punto medio de un libro, estadísticas de uso de palabras y comentarios. [1] Los estándares llegaron a ser tales que una desviación incluso en una sola letra en un rollo de la Torá se consideraba inaceptable. [4] La eficacia de su método de corrección de errores fue verificada por la precisión de la copia a través de los siglos demostrada por el descubrimiento de los Rollos del Mar Muerto en 1947-1956, que datan del 150 a. C.-75 d. C. [5]

El desarrollo moderno de los códigos de corrección de errores se le atribuye a Richard Hamming en 1947. [6] Una descripción del código de Hamming aparecido en Claude Shannon 's Una teoría matemática de la comunicación [7] y se generalizó rápidamente por Marcel JE Golay . [8]

Introducción [ editar ]

Todos los esquemas de detección y corrección de errores agregan algo de redundancia (es decir, algunos datos adicionales) a un mensaje, que los receptores pueden usar para verificar la coherencia del mensaje entregado y para recuperar los datos que se ha determinado que están dañados. Los esquemas de detección y corrección de errores pueden ser sistemáticos o no sistemáticos. En un esquema sistemático, el transmisor envía los datos originales y adjunta un número fijo de bits de verificación (o datos de paridad ), que se derivan de los bits de datos mediante algún algoritmo determinista.. Si solo se requiere la detección de errores, un receptor puede simplemente aplicar el mismo algoritmo a los bits de datos recibidos y comparar su salida con los bits de verificación recibidos; si los valores no coinciden, se ha producido un error en algún momento durante la transmisión. En un sistema que utiliza un código no sistemático, el mensaje original se transforma en un mensaje codificado que lleva la misma información y que tiene al menos tantos bits como el mensaje original.

Un buen rendimiento de control de errores requiere que el esquema se seleccione en función de las características del canal de comunicación. Los modelos de canal común incluyen modelos sin memoria donde los errores ocurren al azar y con cierta probabilidad, y modelos dinámicos donde los errores ocurren principalmente en ráfagas . En consecuencia, de detección de errores y códigos de corrección puede ser generalmente distinguido entre aleatorio de detección de errores / corrección y -error de ráfaga de detección / corrección . Algunos códigos también pueden ser adecuados para una combinación de errores aleatorios y errores de ráfaga.

Si las características del canal no se pueden determinar, o son muy variables, se puede combinar un esquema de detección de errores con un sistema para retransmisiones de datos erróneos. Esto se conoce como solicitud de repetición automática (ARQ) y se usa principalmente en Internet. Un enfoque alternativo para el control de errores es la solicitud de repetición automática híbrida (HARQ), que es una combinación de ARQ y codificación de corrección de errores.

Tipos de corrección de errores [ editar ]

Hay tres tipos principales de corrección de errores. [9]

Solicitud de repetición automática (ARQ) [ editar ]

Automatic Repeat reQuest (ARQ) es un método de control de errores para la transmisión de datos que utiliza códigos de detección de errores, mensajes de reconocimiento y / o reconocimiento negativo, y tiempos de espera para lograr una transmisión de datos confiable. Un acuse de recibo es un mensaje enviado por el receptor para indicar que ha recibido correctamente una trama de datos .

Por lo general, cuando el transmisor no recibe el acuse de recibo antes de que se agote el tiempo de espera (es decir, dentro de un período de tiempo razonable después de enviar la trama de datos), retransmite la trama hasta que se recibe correctamente o el error persiste más allá de un número predeterminado de retransmisiones. .

Tres tipos de protocolos ARQ son ARQ de parada y espera , ARQ Go-Back-N y ARQ de repetición selectiva .

ARQ es apropiado si el canal de comunicación tiene una capacidad variable o desconocida , como es el caso de Internet. Sin embargo, ARQ requiere la disponibilidad de un canal de retorno , da como resultado un posible aumento de la latencia debido a las retransmisiones y requiere el mantenimiento de búferes y temporizadores para las retransmisiones, lo que en el caso de congestión de la red puede ejercer presión sobre el servidor y la capacidad general de la red. [10]

Por ejemplo, ARQ se utiliza en enlaces de datos de radio de onda corta en forma de ARQ-E , o combinado con multiplexación como ARQ-M .

Corrección de errores de reenvío [ editar ]

La corrección de errores hacia adelante (FEC) es un proceso de agregar datos redundantes como un código de corrección de errores (ECC) a un mensaje para que pueda ser recuperado por un receptor incluso cuando se produzcan varios errores (hasta la capacidad del código. utilizados) se introdujeron, ya sea durante el proceso de transmisión o durante el almacenamiento. Dado que el receptor no tiene que pedirle al remitente la retransmisión de los datos, no se requiere un canal de retorno en la corrección de errores hacia adelante y, por lo tanto, es adecuado para la comunicación simplex como la radiodifusión . Los códigos de corrección de errores se utilizan con frecuencia en la comunicación de capa inferior , así como para el almacenamiento confiable en medios como CD, DVD , discos duros y RAM .

Los códigos de corrección de errores generalmente se distinguen entre códigos convolucionales y códigos de bloque :

  • Los códigos convolucionales se procesan bit a bit. Son especialmente adecuados para su implementación en hardware, y el decodificador Viterbi permite una decodificación óptima .
  • Los códigos de bloque se procesan bloque por bloque . Los primeros ejemplos de códigos de bloque son los códigos de repetición , los códigos de Hamming y los códigos de verificación de paridad multidimensionales . Fueron seguidos por una serie de códigos eficientes, siendo los códigos Reed-Solomon los más notables debido a su uso generalizado actual. Los códigos turbo y los códigos de verificación de paridad de baja densidad (LDPC) son construcciones relativamente nuevas que pueden proporcionar una eficiencia casi óptima .

El teorema de Shannon es un teorema importante en la corrección de errores hacia adelante y describe la tasa de información máxima a la que es posible una comunicación confiable a través de un canal que tiene una cierta probabilidad de error o relación señal-ruido (SNR). Este límite superior estricto se expresa en términos de capacidad del canal . Más específicamente, el teorema dice que existen códigos tales que al aumentar la longitud de codificación, la probabilidad de error en un canal discreto sin memoria puede hacerse arbitrariamente pequeña, siempre que la tasa de código sea ​​menor que la capacidad del canal. La tasa de código se define como la fracción k / n de k símbolos fuente yn símbolos codificados.

La tasa de código máxima real permitida depende del código de corrección de errores utilizado y puede ser menor. Esto se debe a que la prueba de Shannon fue solo de naturaleza existencial y no mostró cómo construir códigos que sean óptimos y tengan algoritmos de codificación y decodificación eficientes .

Esquemas híbridos [ editar ]

El ARQ híbrido es una combinación de ARQ y corrección de errores hacia adelante. Hay dos enfoques básicos: [10]

  • Los mensajes siempre se transmiten con datos de paridad FEC (y redundancia de detección de errores). Un receptor decodifica un mensaje usando la información de paridad y solicita la retransmisión usando ARQ solo si los datos de paridad no fueron suficientes para una decodificación exitosa (identificado a través de una verificación de integridad fallida).
  • Los mensajes se transmiten sin datos de paridad (solo con información de detección de errores). Si un receptor detecta un error, solicita información FEC del transmisor usando ARQ y la usa para reconstruir el mensaje original.

El último enfoque es particularmente atractivo en un canal de borrado cuando se usa un código de borrado sin tasa .


Esquemas de detección de errores [ editar ]

La detección de errores se realiza más comúnmente usando una función hash adecuada (o específicamente, una suma de control , verificación de redundancia cíclica u otro algoritmo). Una función hash agrega una etiqueta de longitud fija a un mensaje, lo que permite a los receptores verificar el mensaje entregado volviendo a calcular la etiqueta y comparándola con la proporcionada.

Existe una gran variedad de diseños de funciones hash diferentes. Sin embargo, algunos son de uso particularmente extendido debido a su simplicidad o su idoneidad para detectar ciertos tipos de errores (por ejemplo, el rendimiento de la verificación de redundancia cíclica en la detección de errores de ráfaga ).

Codificación de distancia mínima [ editar ]

Un código de corrección de errores aleatorios basado en la codificación de distancia mínima puede proporcionar una garantía estricta sobre el número de errores detectables, pero es posible que no proteja contra un ataque de preimagen .

Códigos de repetición [ editar ]

Un código de repetición es un esquema de codificación que repite los bits a través de un canal para lograr una comunicación sin errores. Dado un flujo de datos a transmitir, los datos se dividen en bloques de bits. Cada bloque se transmite un número predeterminado de veces. Por ejemplo, para enviar el patrón de bits "1011", el bloque de cuatro bits puede repetirse tres veces, produciendo así "1011 1011 1011". Si este patrón de doce bits se recibió como "1010 1011 1011", donde el primer bloque es diferente a los otros dos, se ha producido un error.

Un código de repetición es muy ineficaz y puede ser susceptible a problemas si el error ocurre exactamente en el mismo lugar para cada grupo (por ejemplo, "1010 1010 1010" en el ejemplo anterior se detectaría como correcto). La ventaja de los códigos de repetición es que son extremadamente simples y, de hecho, se utilizan en algunas transmisiones de estaciones de números . [11] [12]

Bit de paridad [ editar ]

Un bit de paridad es un bit que se agrega a un grupo de bits de origen para garantizar que el número de bits establecidos (es decir, bits con valor 1) en el resultado sea par o impar. Es un esquema muy simple que se puede usar para detectar un número único o cualquier otro número impar (es decir, tres, cinco, etc.) de errores en la salida. Un número par de bits invertidos hará que el bit de paridad parezca correcto aunque los datos sean erróneos.

Los bits de paridad añadidos a cada "palabra" enviada se denominan comprobaciones de redundancia transversal , mientras que los añadidos al final de un flujo de "palabras" se denominan comprobaciones de redundancia longitudinal.. Por ejemplo, si cada una de una serie de "palabras" de m bits tiene un bit de paridad agregado, que muestra si había un número par o impar de unos en esa palabra, se detectará cualquier palabra con un solo error. Sin embargo, no se sabrá en qué parte de la palabra está el error. Si, además, después de cada flujo de n palabras se envía una suma de paridad, cada bit de la cual muestra si hubo un número par o impar de unos en esa posición de bit enviada en el grupo más reciente, la posición exacta del error se puede determinar y corregir el error. Sin embargo, solo se garantiza que este método sea efectivo si no hay más de 1 error en cada grupo de n palabras. Con más bits de corrección de errores, se pueden detectar más errores y, en algunos casos, corregirlos.

También existen otras técnicas de agrupación de bits.

Suma de comprobación [ editar ]

Una suma de comprobación de un mensaje es una suma aritmética modular de palabras de código de mensaje de una longitud de palabra fija (por ejemplo, valores de bytes). La suma se puede negar por medio de una operación de complemento a unos antes de la transmisión para detectar mensajes todos ceros no intencionales.

Los esquemas de suma de comprobación incluyen bits de paridad, dígitos de comprobación y comprobaciones de redundancia longitudinal . Algunos esquemas de suma de control, como el algoritmo Damm , el algoritmo Luhn y el algoritmo Verhoeff , están diseñados específicamente para detectar errores comúnmente introducidos por humanos al escribir o recordar números de identificación.

Verificación de redundancia cíclica [ editar ]

Una verificación de redundancia cíclica (CRC) es una función hash no segura diseñada para detectar cambios accidentales en datos digitales en redes informáticas. No es adecuado para detectar errores introducidos de forma malintencionada. Se caracteriza por la especificación de un polinomio generador , que se utiliza como divisor en una división larga polinomial sobre un campo finito , tomando los datos de entrada como dividendo . El resto se convierte en el resultado.

Un CRC tiene propiedades que lo hacen muy adecuado para detectar errores de ráfaga . Los CRC son particularmente fáciles de implementar en hardware y, por lo tanto, se usan comúnmente en redes de computadoras y dispositivos de almacenamiento como unidades de disco duro .

El bit de paridad puede verse como un CRC de 1 bit en un caso especial.

Función hash criptográfica [ editar ]

La salida de una función hash criptográfica , también conocida como resumen de mensajes , puede proporcionar fuertes garantías sobre la integridad de los datos , ya sea que los cambios en los datos sean accidentales (por ejemplo, debido a errores de transmisión) o introducidos maliciosamente. Es probable que cualquier modificación de los datos se detecte a través de un valor hash que no coincida. Además, dado algún valor hash, normalmente no es factible encontrar algunos datos de entrada (distintos del dado) que producirán el mismo valor hash. Si un atacante puede cambiar no solo el mensaje, sino también el valor hash, entonces un hash con clave o un código de autenticación del mensaje(MAC) se puede utilizar para mayor seguridad. Sin conocer la clave, el atacante no puede calcular fácil o convenientemente el valor hash correcto para un mensaje modificado.

Código de corrección de errores [ editar ]

Se puede utilizar cualquier código de corrección de errores para la detección de errores. Un código con una distancia de Hamming mínima , d , puede detectar hasta d - 1 errores en una palabra de código. El uso de códigos de corrección de errores basados ​​en la distancia mínima para la detección de errores puede ser adecuado si se desea un límite estricto en el número mínimo de errores a detectar.

Los códigos con una distancia de Hamming mínima d = 2 son casos degenerados de códigos de corrección de errores y se pueden utilizar para detectar errores individuales. El bit de paridad es un ejemplo de un código de detección de error único.

Aplicaciones [ editar ]

Las aplicaciones que requieren baja latencia (como conversaciones telefónicas) no pueden utilizar la solicitud de repetición automática (ARQ); deben utilizar la corrección de errores hacia adelante (FEC). Para cuando un sistema ARQ descubre un error y lo retransmite, los datos reenviados llegarán demasiado tarde para poder utilizarse.

Las aplicaciones en las que el transmisor olvida inmediatamente la información tan pronto como se envía (como la mayoría de las cámaras de televisión) no pueden utilizar ARQ; deben usar FEC porque cuando ocurre un error, los datos originales ya no están disponibles.

Las aplicaciones que utilizan ARQ deben tener un canal de retorno ; las aplicaciones que no tienen un canal de retorno no pueden usar ARQ.

Las aplicaciones que requieren tasas de error extremadamente bajas (como transferencias de dinero digital) deben usar ARQ debido a la posibilidad de errores incorregibles con FEC.

La ingeniería de confiabilidad e inspección también hace uso de la teoría de los códigos de corrección de errores. [13]

Internet [ editar ]

En una pila de TCP / IP típica , el control de errores se realiza en varios niveles:

  • Cada trama de Ethernet utiliza la detección de errores CRC-32 . Las tramas con errores detectados son descartadas por el hardware del receptor.
  • El encabezado IPv4 contiene una suma de comprobación que protege el contenido del encabezado. Los paquetes con sumas de comprobación incorrectas se eliminan dentro de la red o en el receptor.
  • La suma de verificación se omitió del encabezado de IPv6 para minimizar los costos de procesamiento en el enrutamiento de la red y porque se supone que la tecnología de la capa de enlace actual proporciona suficiente detección de errores (ver también RFC 3819).
  • UDP tiene una suma de verificación opcional que cubre la carga útil y la información de direccionamiento en los encabezados UDP e IP. Los paquetes con sumas de comprobación incorrectas son descartados por la pila de red . La suma de comprobación es opcional en IPv4 y se requiere en IPv6. Cuando se omite, se supone que la capa de enlace de datos proporciona el nivel deseado de protección contra errores.
  • TCP proporciona una suma de comprobación para proteger la carga útil y la información de direccionamiento en los encabezados TCP e IP. Los paquetes con sumas de comprobación incorrectas son descartados por la pila de la red y eventualmente se retransmiten usando ARQ, ya sea explícitamente (como a través de triple-ack ) o implícitamente debido a un tiempo de espera .

Telecomunicaciones en el espacio profundo [ editar ]

El desarrollo de códigos de corrección de errores estuvo estrechamente relacionado con la historia de las misiones en el espacio profundo debido a la dilución extrema de la potencia de la señal en distancias interplanetarias y la disponibilidad limitada de energía a bordo de las sondas espaciales. Mientras que las primeras misiones enviaron sus datos sin codificar, a partir de 1968, la corrección de errores digitales se implementó en forma de códigos convolucionales ( decodificados de manera subóptima) y códigos Reed-Muller . [14] El código Reed-Muller se adaptaba bien al ruido al que estaba sujeta la nave espacial (aproximadamente coincidiendo con una curva de campana ), y se implementó para la nave espacial Mariner y se usó en misiones entre 1969 y 1977.

Las misiones Voyager 1 y Voyager 2 , que comenzaron en 1977, fueron diseñadas para entregar imágenes en color e información científica de Júpiter y Saturno . [15] Esto resultó en un aumento de los requisitos de codificación y, por lo tanto, la nave espacial fue apoyada por códigos convolucionales (decodificados de manera óptima por Viterbi ) que podrían concatenarse con un código Golay (24,12,8) externo . La nave Voyager 2 también admitió una implementación de un código Reed-Solomon . El código concatenado Reed-Solomon-Viterbi (RSV) permitió una corrección de errores muy poderosa y permitió el viaje extendido de la nave espacial a Urano.y Neptuno . Después de las actualizaciones del sistema ECC en 1989, ambos modelos utilizaron la codificación V2 RSV.

El Comité Consultivo de Sistemas de Datos Espaciales recomienda actualmente el uso de códigos de corrección de errores con un rendimiento similar al código RSV de la Voyager 2 como mínimo. Los códigos concatenados están perdiendo cada vez más el favor de las misiones espaciales y son reemplazados por códigos más poderosos como los códigos Turbo o los códigos LDPC .

Los diferentes tipos de misiones en el espacio profundo y orbitales que se llevan a cabo sugieren que tratar de encontrar un sistema de corrección de errores único para todos será un problema continuo. Para misiones cercanas a la Tierra, la naturaleza del ruido en el canal de comunicación es diferente de la que experimenta una nave espacial en una misión interplanetaria. Además, a medida que una nave espacial aumenta su distancia de la Tierra, el problema de corregir el ruido se vuelve más difícil.

Emisión por satélite [ editar ]

La demanda de ancho de banda de transpondedor de satélite sigue creciendo, impulsada por el deseo de ofrecer televisión (incluidos nuevos canales y televisión de alta definición ) y datos IP. La disponibilidad del transpondedor y las limitaciones de ancho de banda han limitado este crecimiento. La capacidad del transpondedor está determinada por el esquema de modulación seleccionado y la proporción de capacidad consumida por FEC.

Almacenamiento de datos [ editar ]

Los códigos de detección y corrección de errores se utilizan a menudo para mejorar la fiabilidad de los medios de almacenamiento de datos. [16] Una pista de paridad capaz de detectar errores de un solo bit estuvo presente en el primer almacenamiento de datos de cinta magnética en 1951. El código rectangular óptimo usado en cintas de grabación codificadas en grupo no solo detecta sino que también corrige errores de un solo bit. Algunos formatos de archivo , en particular los formatos de archivo , incluyen una suma de comprobación (la mayoría de las veces CRC32 ) para detectar corrupción y truncamiento y pueden emplear archivos de redundancia o paridad para recuperar porciones de datos corruptos. Los códigos Reed-Solomon se utilizan en discos compactos para corregir errores causados ​​por arañazos.

Los discos duros modernos utilizan códigos Reed-Solomon para detectar errores menores correctos en las lecturas de sectores y para recuperar datos corruptos de sectores defectuosos y almacenar esos datos en los sectores de repuesto. [17] Los sistemas RAID utilizan una variedad de técnicas de corrección de errores para recuperar datos cuando un disco duro falla por completo. Los sistemas de archivos como ZFS o Btrfs , así como algunas implementaciones de RAID , admiten la depuración y recuperación de datos , lo que permite que los bloques defectuosos se detecten y (con suerte) se recuperen antes de que se utilicen. [18] Los datos recuperados se pueden reescribir exactamente en la misma ubicación física, en bloques de repuesto en otro lugar de la misma pieza de hardware, o los datos se pueden reescribir en hardware de reemplazo.

Memoria de corrección de errores [ editar ]

La memoria DRAM puede proporcionar una protección más sólida contra errores de software al depender de códigos de corrección de errores. [19] Dicha memoria de corrección de errores , conocida como memoria ECC o protegida por EDAC , es particularmente deseable para aplicaciones de misión crítica, como informática científica, financiera, médica, etc., así como aplicaciones en el espacio profundo debido al aumento de la radiación. en el espacio.

Los controladores de memoria que corrigen errores usan tradicionalmente códigos Hamming , aunque algunos usan redundancia modular triple .

El entrelazado permite distribuir el efecto de un solo rayo cósmico que potencialmente trastorna múltiples bits físicamente vecinos en múltiples palabras al asociar bits vecinos a diferentes palabras. Siempre que una alteración de un solo evento (SEU) no exceda el umbral de error (por ejemplo, un solo error) en cualquier palabra en particular entre accesos, se puede corregir (por ejemplo, mediante un código de corrección de errores de un solo bit), y el Puede mantenerse la ilusión de un sistema de memoria libre de errores. [20]

Además del hardware que proporciona las funciones necesarias para que funcione la memoria ECC, los sistemas operativos suelen contener funciones de informes relacionadas que se utilizan para proporcionar notificaciones cuando los errores de software se recuperan de forma transparente. Una tasa cada vez mayor de errores de software podría indicar que es necesario reemplazar un módulo DIMM , y dicha información de retroalimentación no estaría fácilmente disponible sin las capacidades de generación de informes relacionadas. Un ejemplo es el núcleo de Linux 's EDAC subsistema (anteriormente conocido como Bluesmoke), que recopila los datos de los componentes habilitados para la verificación de errores dentro de un sistema informático; además de recopilar e informar los eventos relacionados con la memoria ECC, también admite otros errores de suma de verificación, incluidos los detectados en el bus PCI . [21] [22] [23]

Algunos sistemas también admiten el borrado de memoria .

Ver también [ editar ]

  • Código Berger
  • Código de corrección de errores en ráfaga
  • No me importa la alarma
  • Memoria ECC , un tipo de almacenamiento de datos informáticos
  • Entrada prohibida
  • Adaptación de enlaces
  • Lista de algoritmos para la detección y corrección de errores
  • Lista de códigos de corrección de errores
  • Lista de funciones hash
  • Fiabilidad (redes informáticas)

Referencias [ editar ]

  1. ^ a b "Masorah". Enciclopedia judía .
  2. ^ Pratico, Gary D .; Pelt, Miles V. Van (2009). Conceptos básicos de la gramática hebrea bíblica: segunda edición . Zondervan. ISBN 978-0-310-55882-8.
  3. ^ Mounce, William D. (2007). Griego para el resto de nosotros: uso de herramientas griegas sin dominar los idiomas bíblicos . Zondervan. pag. 289. ISBN 978-0-310-28289-1.
  4. Mishneh Torah , Tefilin, Mezuzah y Sefer Torah, 1: 2. Ejemplo de traducción al inglés: Eliyahu Touger . La Mishné Torá del Rambam . Corporación editorial de Moznaim .
  5. ^ Brian M. Fagan (5 de diciembre de 1996). "Manuscritos del Mar Muerto". El compañero de Oxford para la arqueología . Prensa de la Universidad de Oxford . ISBN 0195076184.
  6. ^ Thompson, Thomas M. (1983), De códigos de corrección de errores a través de empaquetaduras de esferas a grupos simples , The Carus Mathematical Monographs (# 21), The Mathematical Association of America, p. vii, ISBN 0-88385-023-0
  7. ^ Shannon, CE (1948), "Una teoría matemática de la comunicación", Bell System Technical Journal , 27 (3): 379–423, doi : 10.1002 / j.1538-7305.1948.tb01338.x , hdl : 10338.dmlcz / 101429 , PMID 9230594 
  8. ^ Golay, Marcel JE (1949), "Notas sobre codificación digital", Proc.IRE (IEEE) , 37 : 657
  9. ^ Gupta, Vikas; Verma, Chanderkant (noviembre de 2012). "Detección y corrección de errores: una introducción". Revista Internacional de Investigación Avanzada en Ciencias de la Computación e Ingeniería de Software . 2 (11). S2CID 17499858 . 
  10. ^ a b A. J. McAuley, Comunicación confiable de banda ancha mediante un código de corrección de borrado en ráfaga , ACM SIGCOMM, 1990.
  11. ^ Frank van Gerwen. "Números (y otras misteriosas) estaciones" . Consultado el 12 de marzo de 2012 .
  12. ^ Gary Cutlack (25 de agosto de 2010). "Misteriosos cambios de la 'estación de números' rusa transmitida después de 20 años" . Gizmodo . Consultado el 12 de marzo de 2012 .
  13. ^ Ben-Gal I .; Herer Y .; Raz T. (2003). "Procedimiento de inspección autocorregible bajo errores de inspección" (PDF) . Transacciones IIE . Transacciones IIE sobre calidad y confiabilidad, 34 (6), págs. 529-540. Archivado desde el original (PDF) el 13 de octubre de 2013 . Consultado el 10 de enero de 2014 .
  14. ^ K. Andrews et al., El desarrollo de códigos Turbo y LDPC para aplicaciones en el espacio profundo , Actas del IEEE, vol. 95, No. 11, noviembre de 2007.
  15. ^ Huffman, William Cary; Pless, Vera S. (2003). Fundamentos de los códigos de corrección de errores . Prensa de la Universidad de Cambridge . ISBN 978-0-521-78280-7.
  16. Kurtas, Erozan M .; Vasic, Bane (3 de octubre de 2018). Técnicas avanzadas de control de errores para sistemas de almacenamiento de datos . Prensa CRC. ISBN 978-1-4200-3649-7.[ enlace muerto permanente ]
  17. ^ Scott A. Moulton. "Mi disco duro murió" . Archivado desde el original el 2 de febrero de 2008.
  18. ^ Qiao, Zhi; Fu, Song; Chen, Hsing-Bung; Settlemyer, Bradley (2019). "Construcción de sistemas de almacenamiento fiables de alto rendimiento: un estudio empírico y analítico". Conferencia internacional de IEEE de 2019 sobre computación en clústeres (CLUSTER) : 1–10. doi : 10.1109 / CLUSTER.2019.8891006 . ISBN 978-1-7281-4734-5. S2CID  207951690 .
  19. ^ " Una encuesta de técnicas para mejorar la resistencia a errores de DRAM ", Revista de arquitectura de sistemas, 2018
  20. ^ "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 .
  21. ^ Jeff Layton. "Detección y corrección de errores" . Revista Linux . Consultado el 12 de agosto de 2014 .
  22. ^ "Proyecto EDAC" . bluesmoke.sourceforge.net . Consultado el 12 de agosto de 2014 .
  23. ^ "Documentación / edac.txt" . Documentación del kernel de Linux . kernel.org . 2014-06-16. Archivado desde el original el 5 de septiembre de 2009 . Consultado el 12 de agosto de 2014 .

Lectura adicional [ editar ]

  • Shu Lin; Daniel J. Costello, Jr. (1983). Codificación de control de errores: fundamentos y aplicaciones . Prentice Hall . ISBN 0-13-283796-X.

Enlaces externos [ editar ]

  • El libro de texto en línea: Teoría de la información, inferencia y algoritmos de aprendizaje , de David JC MacKay , contiene capítulos sobre códigos elementales de corrección de errores; sobre los límites teóricos de la corrección de errores; y en los últimos códigos de corrección de errores de última generación, incluidos los códigos de verificación de paridad de baja densidad , los códigos turbo y los códigos fuente .
  • Calcular parámetros de códigos lineales : una interfaz en línea para generar y calcular parámetros (por ejemplo , distancia mínima , radio de cobertura ) de códigos de corrección de errores lineales .
  • Página ECC
  • SoftECC: un sistema para la verificación de la integridad de la memoria del software
  • Una biblioteca de corrección y detección de errores DRAM basada en software y sintonizable para HPC
  • Detección y corrección de la corrupción silenciosa de datos para computación de alto rendimiento a gran escala