stringtranslate.com

bit de paridad

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

El bit de paridad garantiza que el número total de bits 1 en la cadena sea par o impar . [1] En consecuencia, existen 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 recuento es impar, el valor del bit de paridad se establece en 1, lo que hace que el recuento total de apariciones de unos en todo el conjunto (incluido el bit de paridad) sea un número par. Si el recuento de unos en un conjunto determinado 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 recuento de bits con un valor de 1 es par, el valor del bit de paridad se establece en 1, lo que hace que el recuento total de unos en todo el conjunto (incluido el bit de paridad) sea un número impar. Si el recuento de bits con un valor de 1 es impar, el recuento ya es impar, por lo que el valor del bit de paridad es 0. La paridad par es un caso especial de una verificación de redundancia cíclica (CRC), donde el CRC de 1 bit se genera mediante el polinomio x +1.

Paridad

En matemáticas, la paridad puede referirse a la uniformidad o imparidad de un número entero, que, cuando se escribe en su forma binaria , se puede determinar simplemente examinando solo su bit menos significativo .

En tecnología de la información, la paridad se refiere a la uniformidad o imparidad, dado cualquier conjunto de dígitos binarios, del número de esos bits con valor uno. Debido a que la paridad está determinada por el estado de cada uno de los bits, esta propiedad de la paridad (depende de todos los bits y cambia su valor de paridad par a impar si alguno de los bits cambia) permite su uso en esquemas de detección y corrección de errores. .

En telecomunicaciones la paridad a la que se refieren algunos protocolos es para la detección de errores . El medio de transmisión está preestablecido, en ambos puntos finales, para acordar la paridad par o impar. Para cada cadena de bits listos 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 esté de acuerdo con el acuerdo preestablecido y luego, si hubo un error de paridad en ese paquete, solicita una retransmisión de ese paquete.

En informática, la banda de paridad o el 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 de la matriz. Cuando ocurre un error de lectura, cada bit en la región de error se vuelve a calcular a partir de su conjunto de n bits. De esta manera, el uso de un bit de paridad crea "redundancia" para una región desde el tamaño de un bit hasta el tamaño de un disco. Consulte § Matriz redundante de discos independientes a continuación.

En electrónica, la transcodificación de datos con paridad puede ser muy eficiente, ya que las puertas XOR generan lo que equivale a un bit de verificación que crea una paridad uniforme, y el diseño lógico XOR se escala fácilmente a cualquier número de entradas. Las estructuras XOR y AND comprenden la mayor parte de la mayoría de los circuitos integrados.

Detección de errores

Si se transmite incorrectamente un número impar de bits (incluido el bit de paridad) , el bit de paridad será incorrecto, lo que indicará que se produjo un error de paridad en la transmisión. El bit de paridad sólo es adecuado para detectar errores; no puede corregir ningún error, ya que no hay forma de determinar el bit concreto que está dañado. Los datos deben descartarse por completo y retransmitirse desde cero . Por lo tanto, en un medio de transmisión ruidoso, la transmisión exitosa puede tardar mucho tiempo o incluso nunca ocurrir. Sin embargo, la paridad tiene la ventaja de que utiliza sólo un bit y requiere sólo un número de puertas XOR para generarse. Consulte el código Hamming para ver un ejemplo de código de corrección de errores.

La verificació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, porque si un bit se invierte debido al ruido de la línea, habrá un número incorrecto 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:

Hay una limitación a los esquemas de paridad. Se garantiza que un bit de paridad detectará sólo un número impar de errores de bits. Si un número par de bits tiene errores, el bit de paridad registra el número correcto de unos aunque los datos estén corruptos. (Consulte también detección y corrección de errores ). Considere el mismo ejemplo anterior pero con un número par de bits corruptos:

Bob observa una paridad uniforme, como se esperaba, por lo que no logra detectar los errores de dos bits.

Uso

Debido a su simplicidad, la paridad se utiliza en muchas aplicaciones de hardware en las que se puede repetir una operación en caso de dificultad, o simplemente es útil detectar el error. 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. Debido a que los datos de la caché de instrucciones son solo una copia de la memoria principal , se pueden ignorar y recuperar si se descubre que están dañados.

En la transmisión de datos en serie , un formato común es 7 bits de datos, un bit de paridad par y uno o dos bits de parada . Ese formato admite todos los caracteres ASCII de 7 bits en un byte de 8 bits. Otros formatos son posibles; 8 bits de datos más un bit de paridad pueden transmitir todos los valores de bytes de 8 bits.

En contextos de comunicación en serie, la paridad generalmente se genera y verifica mediante hardware de interfaz (como un UART ) y, en la recepción, el resultado se pone a disposición de un procesador como la CPU (y también, por ejemplo, el sistema operativo ) a través de un bit de estado en un registro de hardware en el hardware de la interfaz . La recuperación del error generalmente se realiza retransmitiendo los datos, cuyos detalles generalmente son manejados por software (como las rutinas de E/S 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 todos ceros como de todos unos se detectan como errores. Si el número total de bits es impar, sólo uno de los patrones se detecta como error y se puede elegir en función de cuál se espera que sea el error más común.

matriz RAID

Los datos de paridad son utilizados por matrices RAID ( matriz redundante de discos independientes/económicos ) para lograr redundancia . Si falla una unidad de la matriz, los datos restantes en las otras unidades se pueden combinar con los datos de paridad (usando la función booleana XOR ) para reconstruir los datos faltantes.

Por ejemplo, supongamos que dos unidades de una matriz RAID 5 de tres unidades contienen los siguientes datos:

Para calcular los datos de paridad para las dos unidades, se realiza un XOR en sus datos:

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

Si alguna de las tres unidades falla, el contenido de la unidad fallida 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 XOR del contenido de las dos unidades restantes, la Unidad 1 y la Unidad 3:

como sigue:

El resultado de ese cálculo XOR produce el contenido de la Unidad 2. Luego, 11010100 se almacena 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 sólo 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 que se muestra arriba y generan 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 "doble", "dual" o "diagonal" .

Historia

Una pista de paridad estaba presente en el primer almacenamiento de datos en cinta magnética en 1951. La paridad en esta forma, aplicada a través de múltiples señales paralelas, se conoce como verificación de redundancia transversal . Esto se puede combinar con la paridad calculada sobre múltiples bits enviados en una sola señal, una verificación de redundancia longitudinal . En un bus paralelo existe un bit de control de redundancia longitudinal por cada señal paralela.

La paridad también se utilizó al menos en 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 (anteriormente ICT), la cinta de papel de 1 pulgada de ancho (25 mm) tenía 8 posiciones de orificios a lo largo de ella, siendo la octava la paridad. Para los datos se utilizaron 7 posiciones, p. ej. ASCII de 7 bits. La octava posición tenía un agujero perforado dependiendo de la cantidad de agujeros de datos perforados.

Ver también

Referencias

  1. ^ Ziemer, RodgerE.; Tranter, William H. (17 de marzo de 2014). Principios de comunicación: sistemas, modulación y ruido (Séptima ed.). Hoboken, Nueva Jersey. ISBN 9781118078914. OCLC  856647730.{{cite book}}: Mantenimiento CS1: falta el editor de la ubicación ( enlace )

enlaces externos