Paritätsbit
7 Datenbits | (Graf von 1 Bit) | 8 Bit einschließlich Parität | |
---|---|---|---|
eben | seltsam | ||
0000000 | 0 | 00000000 | 00000001 |
1010001 | 3 | 10100011 | 10100010 |
1101001 | 4 | 11010010 | 11010011 |
1111111 | 7 | 11111111 | 11111110 |
A Paritätsbit, oder Bit überprüfen, ist ein bisschen zu einer Reihe von hinzugefügt Binärcode. Paritätsbits sind eine einfache Form von Fehler erfassen Code. Paritätsbits werden im Allgemeinen auf die kleinsten Einheiten eines Kommunikationsprotokolls angewendet, typischerweise 8-Bit Oktetten (Bytes), obwohl sie auch separat auf eine gesamte Meldungszeichenfolge von Bits angewendet werden können.
Das Paritätsbit sorgt dafür Gesamtzahl von 1 Bit in der Zeichenfolge ist gerade oder ungerade.[1] Dementsprechend gibt es zwei Varianten von Paritätsbits: Sogar Parity Bit und Seltsames Parität. Bei gleichmäßiger Parität werden bei einem bestimmten Satz von Bits die Ereignisse von Bits, deren Wert 1 ist, gezählt. Wenn diese Anzahl ungerade ist, wird der Paritätsbitwert auf 1 gesetzt, wodurch die Gesamtzahl der Vorkommen von 1s im gesamten Satz (einschließlich des Paritätsbits) eine gleichmäßige Zahl ist. Wenn die Anzahl von 1s in einem bestimmten Satz von Bits bereits gleichmäßig ist, ist der Wert des Paritätsbits 0. Bei ungeraden Parität wird die Codierung umgekehrt. Bei einem bestimmten Satz von Bits wird der Paritätsbitwert auf 1 festgelegt, wenn die Anzahl der Bits mit einem Wert von 1 gleichmäßig ist, und die Gesamtzahl von 1s im gesamten Satz (einschließlich des Paritätsbits) eine ungerade Zahl. Wenn die Anzahl von Bits mit einem Wert von 1 ungerade ist, ist die Anzahl bereits ungerade, so dass der Wert des Paritätsbits 0 ist. Auch die Parität ist ein Sonderfall von a zyklische Redundanzprüfung (CRC), wobei der 1-Bit-CRC von der erzeugt wird Polynom x+1.
Parität
In Mathematik Parität kann sich auf die Gleichheit oder Seltsamkeit einer Ganzzahl beziehen, die, wenn sie in seinem geschrieben wurde Binärform, kann nur durch die Untersuchung nur deren bestimmt werden niedrigstwertige Bit.
In der Informationstechnologie bezieht sich Parität auf die Gleichheit oder Seltsamkeit, angesichts einer Reihe von binären Ziffern, auf die Anzahl dieser Bits mit Wert 1. Da die Parität durch den Zustand jedes der Bits bestimmt wird .
In der Telekommunikation ist die von einigen Protokollen bezogene Parität für Fehler-Erkennung. Das Übertragungsmedium ist an beiden Endpunkten voreingestellt, um sich entweder auf eine ungerade Parität oder sogar auf Parität zu einigen. Für jede Sendung von Bits, die bereit sind, zu übertragen (Datenpaket), berechnet der Absender das Paritätsbit, Null oder eins, damit es der vereinbarten Parität, sogar oder ungerade, entspricht. Der Empfänger dieses Pakets prüft zunächst, dass die Parität des Pakets als Ganzes dem Voreinstellung übereinstimmt. Wenn in diesem Paket ein Paritätsfehler vorliegt, fordert dies eine erneute Übertragung dieses Pakets an.
In der Informatik der Paritätsstreifen oder Paritätsdisk in a RAID -Array bietet Error-Korrektur. Paritätsbits sind mit einer Rate von einem Paritätsbit pro geschrieben n Bits, wo n ist die Anzahl der Scheiben im Array. Wenn ein Lesefehler auftritt, wird jedes Bit im Fehlerbereich aus seinem Satz von neu berechnet n Bits. Auf diese Weise erzeugt die Verwendung eines Paritätsbits "Redundanz" für eine Region von der Größe eines Bits bis zur Größe einer Festplatte. Sehen § Redundante Auswahl unabhängiger Scheiben unter.
In der Elektronik kann Transcodierungsdaten mit Parität sehr effizient sein wie Xor Die Gates geben aus, was einem Scheckbit entspricht, das eine gleichmäßige Parität erzeugt, und das XOR -Logikdesign skaliert leicht zu einer beliebigen Anzahl von Eingängen. XOR und und Strukturen umfassen den größten Teil der meisten integrierten Schaltkreise.
Fehlererkennung
Wenn eine ungerade Anzahl von Bits (einschließlich des Paritätsbits) sind übertragen Falsch ist das Paritätsbit falsch und weist darauf hin, dass a Paritätsfehler trat in der Übertragung auf. Das Paritätsbit ist nur zum Erkennen von Fehlern geeignet. es kann nicht Korrekt Fehler, da es keine Möglichkeit gibt, zu bestimmen, welches bestimmte Bit beschädigt ist. Die Daten müssen vollständig verworfen werden und neu übertragen von Grund auf neu. Bei einem lauten Übertragungsmedium kann eine erfolgreiche Übertragung daher lange dauern oder niemals auftreten. Parität hat jedoch den Vorteil, dass es nur ein einziges Bit nutzt und nur eine Reihe von erfordert Xor Gates generieren. Sehen Hamming -Code für ein Beispiel eines fehlerkorrigierenden Codes.
Paritätsbitprüfung wird gelegentlich zum Senden verwendet ASCII Charaktere, die 7 Bit haben und das 8. Bit als Paritätsbit verlassen.
Zum Beispiel kann das Paritätsbit wie folgt berechnet werden. Davon ausgehen Alice und Bob Kommunizieren und Alice möchte Bob die einfache 4-Bit-Nachricht 1001 senden.
Art der Bitparität | Erfolgreiches Übertragungsszenario |
---|---|
Sogar Parität | Alice will übertragen: 1001 Alice berechnet Paritätsbitwert: 1+0+0+1 (Mod 2) = 0 Alice fügt Paritätsbit hinzu und sendet: 10010 Bob erhält: 10010 Bob berechnet Parität: 1+0+0+1+0 (Mod 2) = 0 Bob meldet die korrekte Übertragung nach der Beobachtung des erwarteten sogar Ergebnisses. |
Seltsame Parität | Alice will übertragen: 1001 Alice berechnet Paritätsbitwert: 1+0+0+1 (Mod 2) = 0 Alice fügt Paritätsbit hinzu und sendet: 10011 Bob erhält: 10011 Bob berechnet die Gesamtparität der Gesamtparität: 1+0+0+1+1 (Mod 2) = 1 Bob meldet korrekte Übertragung nach Beobachtung des erwarteten ungeraden Ergebnisses. |
Dieser Mechanismus ermöglicht die Erkennung von einzelnen Bitfehlern, denn wenn ein Bit aufgrund des Leitungsrauschens umgedreht wird, gibt es in den empfangenen Daten eine falsche Anzahl von Einsen. In den beiden obigen Beispielen entspricht der berechnete Paritätswert von Bob dem Paritätsbit in seinem empfangenen Wert, was darauf hinweist, dass es keine einzelnen Bitfehler gibt. Betrachten Sie das folgende Beispiel mit einem Übertragungsfehler im zweiten Bit mit XOR:
Art des Bitparitätsfehlers | Fehlgeschlagenes Übertragungsszenario |
---|---|
Sogar Parität Fehler im zweiten Bit | Alice will übertragen: 1001 Alice berechnet Paritätsbitwert: 1^0^0^1 = 0 Alice fügt Paritätsbit hinzu und sendet: 10010 ... Übertragungsfehler ... Bob erhält: 11010 Bob berechnet die Gesamtparität: 1^1^0^1^0 = 1 Bob meldet eine falsche Übertragung, nachdem das unerwartete ungerade Ergebnis beobachtet wurde. |
Sogar Parität Fehler im Paritätsbit | Alice will übertragen: 1001 Alice berechnet sogar Paritätswert: 1^0^0^1 = 0 Alice sendet: 10010 ... Übertragungsfehler ... Bob erhält: 10011 Bob berechnet die Gesamtparität: 1^0^0^1^1 = 1 Bob meldet eine falsche Übertragung, nachdem das unerwartete ungerade Ergebnis beobachtet wurde. |
Es gibt eine Einschränkung für Paritätsschemata. Ein Paritätsbit erfasst nur garantiert eine ungerade Anzahl von Bitfehlern. Wenn eine gleichmäßige Anzahl von Bits Fehler aufweist, zeichnet das Paritätsbit die richtige Anzahl von Einsen auf, obwohl die Daten beschädigt sind. (Siehe auch Fehlererkennung und Korrektur.) Betrachten Sie das gleiche Beispiel wie zuvor mit einer gleichmäßigen Anzahl von beschädigten Bits:
Art des Bitparitätsfehlers | Fehlgeschlagenes Übertragungsszenario |
---|---|
Sogar Parität Zwei korrupte Bits | Alice will übertragen: 1001 Alice berechnet sogar Paritätswert: 1^0^0^1 = 0 Alice sendet: 10010 ... Übertragungsfehler ... Bob erhält: 11011 Bob berechnet die Gesamtparität: 1^1^0^1^1 = 0 Bob meldet eine korrekte Übertragung, obwohl tatsächlich falsch. |
Bob beobachtet wie erwartet sogar Parität und fängt damit nicht die beiden Bitfehler auf.
Verwendungszweck
Aufgrund seiner Einfachheit wird Parität in vielen verwendet Hardware- Anwendungen, bei denen ein Betrieb im Falle von Schwierigkeitsgrad wiederholt werden kann oder bei denen der Fehler einfach hilfreich ist. Zum Beispiel die Scsi und PCI -Busse Verwenden Sie Parität, um Übertragungsfehler und viele zu erkennen Mikroprozessor Anweisung Caches Paritätsschutz einbeziehen. Weil die I-cache Daten sind nur eine Kopie von HaupterinnerungEs kann ignoriert und neu abgerufen werden, wenn festgestellt wird, dass es korrupt ist.
Im Serie Datenübertragung, ein gemeinsames Format sind 7 Datenbits, ein gleichmäßiges Paritätsbit und ein oder zwei Stopp-Bits. Dieses Format bietet allen 7-Bit ASCII Charaktere in einem 8-Bit-Byte. Andere Formate sind möglich; 8 Datenbits plus ein Paritätsbit können alle 8-Bit-Byte-Werte vermitteln.
In seriellen Kommunikationskontexten wird die Parität normalerweise von Schnittstellenhardware generiert und überprüft (z. B. a Uart) und am Empfang das Ergebnis für a zur Verfügung gestellt Prozessor wie die CPU (und so auch, zum Beispiel die Betriebssystem) über ein Statusbit in a Hardwareregister in dem Schnittstelle Hardware. Die Wiederherstellung des Fehlers erfolgt normalerweise durch Nachvermittlung der Daten.
Wenn die Gesamtzahl der übertragenen Bits, einschließlich des Paritätsbits, gleichmäßig ist, hat eine ungerade Parität den Vorteil, dass die All-Zeros und All-Ones-Muster beide als Fehler erkannt werden. Wenn die Gesamtzahl der Bits ungerade ist, wird nur eines der Muster als Fehler erkannt, und die Auswahl kann getroffen werden, auf der erwartet wird, dass es um den häufigeren Fehler geht.
RAID -Array
Paritätsdaten werden von RAID -Arrays verwendet (redundante Reihe von unabhängigen/kostengünstigen Scheiben) erreichen Redundanz. Wenn ein Laufwerk im Array fehlschlägt, können verbleibende Daten zu den anderen Laufwerken mit den Paritätsdaten kombiniert werden (unter Verwendung des Booleschen Xor Funktion) Um die fehlenden Daten zu rekonstruieren.
Nehmen Sie zum Beispiel zwei Laufwerke in einem Dreier an Überfall 5 Array enthielt die folgenden Daten:
Laufwerk 1: | 01101101 |
Laufwerk 2: | 11010100 |
Um Paritätsdaten für die beiden Laufwerke zu berechnen, wird ein XOR für ihre Daten durchgeführt:
01101101 | |
Xor | 11010100 |
10111001 |
Die resultierenden Paritätsdaten, 10111001, wird dann auf dem Laufwerk 3 aufbewahrt.
Sollte einer der drei Laufwerke ausfallen, kann der Inhalt des fehlgeschlagenen Laufwerks auf einem Ersatzlaufwerk rekonstruiert werden, indem die Daten aus den verbleibenden Laufwerken demselben XOR -Betrieb unterzogen werden. Wenn Drive 2 scheitern würde, könnten seine Daten mit den XOR -Ergebnissen des Inhalts der beiden verbleibenden Laufwerke, Laufwerk 1 und Laufwerk 3, umgebaut werden:
Laufwerk 1: | 01101101 |
Fahrt 3: | 10111001 |
folgendermaßen:
10111001 | |
Xor | 01101101 |
11010100 |
Das Ergebnis dieser XOR -Berechnung ergibt den Inhalt von 2 von 2. 11010100 wird dann auf dem Laufwerk 2 aufbewahrt, wobei das Array vollständig repariert wird.
XOR -Logik entspricht auch gleichbedeutend mit Parität (weil a Xor b Xor c Xor ... kann als XOR behandelt werden (a,b,c, ...) Was ist ein N-Ary-Operator, der nur dann wahr ist, wenn eine ungerade Anzahl von Argumenten wahr ist). Das gleiche XOR -Konzept oben gilt also ähnlich wie größere RAID -Arrays mit Parität unter Verwendung einer beliebigen Anzahl von Festplatten. Bei einem RAID -3 -Array von 12 Laufwerken beteiligen sich 11 Laufwerke an der oben gezeigten XOR -Berechnung und ergeben einen Wert, der dann auf dem speziellen Parity -Laufwerk gespeichert wird.
Erweiterungen und Variationen des Paritätsbitmechanismus "doppelt", "Dual" oder "diagonal" -Parität werden in verwendet Raid-DP.
Geschichte
A Paritätsspur war am ersten anwesend Datenspeicherung von Magnetbanddaten 1951. Parität in dieser Form, die auf mehrere parallele Signale angewendet wird, ist als a bekannt Quer -Redundanz -Überprüfung. Dies kann mit Parität kombiniert werden, die über mehrere Bits berechnet werden, die auf ein einzelnes Signal gesendet werden, a Longitudinal -Redundanzprüfung. In einem parallelen Bus gibt es ein Längsreduktbit pro paralleles Signal.
Parität wurde auch zumindest bei etwas Papierbindung verwendet (Stempelband) Dateneingabesysteme (die Magnetbandsystemen vorausgingen). Auf den Systemen, die von der britischen Firma ICL (ehemals IKT) verkauft wurden, hatte das 1-Zoll-Breite (25 mm) Papierband 8 Lochpositionen, wobei der 8. für Parität war. 7 Positionen wurden für die Daten verwendet, z. B. 7-Bit-ASCII. Die 8. Position hatte ein Loch, das je nach Anzahl der geschlagenen Datenlöcher geschlagen wurde.