Articulo de referencia

Bit de paridad

Un bit de paridad , o bit de verificación , es un bit que se añade a una cadena de código binario . Los bits de paridad son una forma sencilla de código de detección de errores ...

Un bit de paridad , o bit de verificación , es un bit que se añade a una cadena de código binario . Los bits de paridad son una forma sencilla de código de detección de errores . Generalmente, se aplican a las unidades más pequeñas de un protocolo de comunicación, normalmente octetos de 8 bits (bytes), aunque también pueden aplicarse por separado a toda una cadena de bits de un mensaje.

El bit de paridad asegura que el número total de bits 1 en la cadena sea par o impar . [ 1 ] En consecuencia, hay dos variantes de bits de paridad: bit de paridad par y bit de paridad impar . En el caso de paridad par, para un conjunto dado de bits, se cuentan los bits cuyo valor es 1. Si ese conteo es impar, el valor del bit de paridad se establece en 1, haciendo que el conteo total de ocurrencias de 1 en todo el conjunto (incluido el bit de paridad) sea un número par. Si el conteo de 1 en un conjunto dado de bits ya es par, el valor del bit de paridad es 0. En el caso de paridad impar, la codificación se invierte. Para un conjunto dado de bits, si el conteo de bits con un valor de 1 es par, el valor del bit de paridad se establece en 1, haciendo que el conteo total de 1 en todo el conjunto (incluido el bit de paridad) sea un número impar. Si el número de bits con valor 1 es impar, el número ya es impar, por lo que el valor del bit de paridad es 0. La paridad es un caso especial de una comprobación de redundancia cíclica (CRC), donde la CRC de 1 bit se genera mediante el polinomio x + 1.

Paridad

En matemáticas, la paridad puede referirse a si un número entero es par o impar, lo cual, cuando se escribe en su forma binaria , se puede determinar simplemente examinando su bit menos significativo .

En informática, la paridad se refiere a la paridad (paridad o imparidad) de los bits con valor uno en cualquier conjunto de dígitos binarios. Dado que la paridad está determinada por el estado de cada bit, esta propiedad —que depende de todos los bits y cambia su valor de paridad par a impar si alguno de ellos cambia— permite su uso en sistemas de detección y corrección de errores.

En telecomunicaciones, la paridad a la que se refieren algunos protocolos sirve para la detección de errores . El medio de transmisión se preconfigura, en ambos extremos, para que la paridad sea par o impar. Para cada secuencia de bits lista para transmitir (paquete de datos), el emisor calcula su bit de paridad (cero o uno) para que se ajuste a la paridad acordada (par o impar). El receptor de ese paquete primero verifica que la paridad del paquete en su conjunto coincida con el acuerdo preestablecido; luego, si hubo un error de paridad en ese paquete, solicita su retransmisión.

En informática, la banda de paridad o disco de paridad en un RAID proporciona corrección de errores . Los bits de paridad se escriben a razón de un bit de paridad por cada n bits, donde n es el número de discos en la matriz. Cuando se produce un error de lectura, cada bit en la región de error se recalcula a partir de su conjunto de n bits. De esta forma, el uso de un bit de paridad crea redundancia para una región, desde el tamaño de un bit hasta el de un disco. Véase la sección sobre  la matriz RAID más adelante.

En electrónica, la transcodificación de datos con paridad puede ser muy eficiente, ya que las compuertas XOR generan un bit de control equivalente que crea una paridad par, y el diseño lógico XOR se adapta fácilmente a cualquier número de entradas. Las estructuras XOR y AND constituyen la mayor parte de la mayoría de los circuitos integrados.

Detección de errores

Traza esquemática del osciloscopio de los niveles de voltaje para una transmisión RS232 de un carácter ASCII "K" de 7 bits (4Bh  = 1001011b) enmarcado como 1 bit de inicio, 7 bits de datos (el bit menos significativo primero), paridad par y 1 bit de parada: 7E1.

Si se transmite un número impar de bits (incluido el bit de paridad) de forma incorrecta, este bit también será incorrecto, lo que indica que se produjo un error de paridad en la transmisión. El bit de paridad solo sirve para detectar errores; no puede corregirlos , ya que no hay forma de determinar el bit específico que está dañado. Los datos deben descartarse por completo y retransmitirse desde cero . En un medio de transmisión ruidoso, la transmisión exitosa puede tardar mucho tiempo o incluso no producirse nunca. Sin embargo, la paridad tiene la ventaja de que utiliza un solo bit y requiere solo unas pocas puertas XOR para su generación. Consulte el código de Hamming para ver un ejemplo de código corrector de errores.

La comprobación del bit de paridad se utiliza ocasionalmente para transmitir caracteres ASCII , que tienen 7 bits, dejando el octavo bit como bit de paridad.

Por ejemplo, el bit de paridad se puede calcular de la siguiente manera. Supongamos que Alice y Bob se están comunicando y Alice quiere enviarle a Bob el mensaje simple de 4 bits 1001.

Este mecanismo permite la detección de errores de un solo bit, ya que si un bit se invierte debido al ruido de la línea, habrá una cantidad incorrecta de unos en los datos recibidos. En los dos ejemplos anteriores, el valor de paridad calculado por Bob coincide con el bit de paridad en su valor recibido, lo que indica que no hay errores de un solo bit. Considere el siguiente ejemplo con un error de transmisión en el segundo bit usando XOR:

Los esquemas de paridad tienen una limitación. Un bit de paridad solo detecta un número impar de errores de bits. Si un número par de bits presenta errores, el bit de paridad registra la cantidad correcta de unos, aunque los datos estén corruptos. (Véase también detección y corrección de errores ). Consideremos el mismo ejemplo anterior, pero con un número par de bits corruptos:

Bob observa una paridad uniforme, como era de esperar, por lo que no detecta los dos errores de bits.

Uso

Debido a su simplicidad, la paridad se utiliza en numerosas aplicaciones de hardware donde una operación puede repetirse en caso de dificultad, o simplemente para detectar errores. Por ejemplo, los buses SCSI y PCI utilizan la paridad para detectar errores de transmisión, y muchas cachés de instrucciones de microprocesadores incluyen protección de paridad. Dado que los datos de la caché de instrucciones son simplemente una copia de la memoria principal , pueden descartarse y volver a cargarse si se detecta que están dañados.

En la transmisión de datos en serie , un formato común consiste en 7 bits de datos, un bit de paridad par y uno o dos bits de parada . Este formato permite representar todos los caracteres ASCII de 7 bits en un byte de 8 bits. Existen otros formatos posibles; 8 bits de datos más un bit de paridad pueden transmitir todos los valores de un byte de 8 bits.

En los contextos de comunicación serie, la paridad suele generarse y comprobarse mediante hardware de interfaz (como una UART ). Al recibir los datos, el resultado se pone a disposición de un procesador , como la CPU (y, por lo tanto, también del sistema operativo ), mediante un bit de estado en un registro de hardware de la interfaz . La recuperación del error se suele realizar retransmitiendo los datos, cuyos detalles suelen ser gestionados por software (como las rutinas de entrada/salida del sistema operativo).

Cuando el número total de bits transmitidos, incluido el bit de paridad, es par, la paridad impar tiene la ventaja de que tanto los patrones de ceros como los de unos se detectan como errores. Si el número total de bits es impar, solo se detecta uno de los patrones como error, y la elección se basa en cuál se espera que sea el error más común.

matriz RAID

Los arreglos RAID ( arreglos redundantes de discos independientes y económicos ) utilizan datos de paridad para lograr redundancia . Si una unidad del arreglo falla, los datos restantes en las demás unidades se pueden combinar con los datos de paridad (mediante la función XOR booleana ) para reconstruir los datos faltantes.

Por ejemplo, supongamos que dos unidades en una matriz RAID 4 de tres unidades contenían los siguientes datos:

Para calcular los datos de paridad de las dos unidades, se realiza una operación XOR sobre sus datos:

Los datos de paridad resultantes, 10111001 , se almacenan en la unidad 3.

En caso de que falle alguna de las tres unidades, el contenido de la unidad averiada se puede reconstruir en una unidad de reemplazo sometiendo los datos de las unidades restantes a la misma operación XOR. Si la unidad 2 fallara, sus datos podrían reconstruirse utilizando los resultados de la operación XOR del contenido de las dos unidades restantes, la unidad 1 y la unidad 3:

como sigue:

El resultado de ese cálculo XOR proporciona el contenido de la unidad 2. A continuación, se almacena el valor 11010100 en la unidad 2, reparando completamente la matriz.

La lógica XOR también es equivalente a la paridad par (porque a XOR b XOR c XOR ... puede tratarse como XOR( a , b , c ,...), que es un operador n-ario que es verdadero si y solo si un número impar de argumentos es verdadero). Por lo tanto, el mismo concepto XOR anterior se aplica de manera similar a matrices RAID más grandes con paridad, utilizando cualquier número de discos. En el caso de una matriz RAID 3 de 12 unidades, 11 unidades participan en el cálculo XOR mostrado anteriormente y producen un valor que luego se almacena en la unidad de paridad dedicada.

En RAID-DP se utilizan extensiones y variaciones del mecanismo de bits de paridad: paridad "doble", "dual" o "diagonal" .

Historia

En 1951, los primeros sistemas de almacenamiento de datos en cinta magnética incluían una pista de paridad. Esta paridad, aplicada a través de múltiples señales paralelas, se conoce como verificación de redundancia transversal . Puede combinarse con la paridad calculada sobre múltiples bits enviados en una sola señal, lo que se denomina verificación de redundancia longitudinal . En un bus paralelo, existe un bit de verificación de redundancia longitudinal por cada señal paralela.

La paridad también se utilizaba en al menos algunos sistemas de entrada de datos con cinta de papel ( cinta perforada ) (que precedieron a los sistemas de cinta magnética). En los sistemas vendidos por la empresa británica ICL (antes ICT), la cinta de papel de 25 mm de ancho tenía 8 posiciones perforadas a lo largo de ella, siendo la octava para la paridad. Siete posiciones se utilizaban para los datos, por ejemplo, ASCII de 7 bits. La octava posición tenía una perforación que dependía del número de perforaciones de datos. 

Véase también

Referencias

  1. Ziemer, Rodger E.; Tranter, William H. (17 de marzo de 2014). Principios de comunicación  : sistemas, modulación y ruido (Séptima  ed.). Hoboken, Nueva Jersey. ISBN 9781118078914OCLC 856647730 {{cite book}}: CS1 mantenimiento: falta el editor de ubicación ( enlace )
  • Diferentes métodos para generar el bit de paridad, entre otras operaciones con bits.