Paritätsbit

Die Parität wird wegen ihrer Einfachheit in vielen Hardwareanwendungen verwendet, bei denen eine Operation im Falle von Schwierigkeiten wiederholt werden kann oder bei denen die einfache Erkennung eines Fehlers hilfreich ist. Die SCSI- und PCI-Busse beispielsweise verwenden Parität zur Erkennung von Übertragungsfehlern, und viele Befehlscaches von Mikroprozessoren enthalten einen Paritätsschutz. Da es sich bei den Daten im I-Cache nur um eine Kopie des Hauptspeichers handelt, können sie ignoriert und neu geholt werden, wenn sie sich als beschädigt erweisen.

Bei der seriellen Datenübertragung ist ein gängiges Format 7 Datenbits, ein gerades Paritätsbit und ein oder zwei Stoppbits. In diesem Format können alle 7-Bit-ASCII-Zeichen in einem 8-Bit-Byte untergebracht werden. Andere Formate sind möglich; 8 Datenbits plus ein Paritätsbit können alle 8-Bit-Byte-Werte übertragen.

In seriellen Kommunikationskontexten wird die Parität in der Regel von der Schnittstellen-Hardware (z. B. einem UART) erzeugt und geprüft und das Ergebnis beim Empfang einem Prozessor wie der CPU (und damit z. B. auch dem Betriebssystem) über ein Statusbit in einem Hardwareregister der Schnittstellen-Hardware zur Verfügung gestellt. Die Behebung des Fehlers erfolgt in der Regel durch eine erneute Übertragung der Daten, deren Einzelheiten in der Regel von der Software (z. B. den E/A-Routinen des Betriebssystems) gehandhabt werden.

Wenn die Gesamtzahl der übertragenen Bits einschließlich des Paritätsbits gerade ist, hat die ungerade Parität den Vorteil, dass sowohl das All-Zero- als auch das All-Ones-Muster als Fehler erkannt werden. Wenn die Gesamtzahl der Bits ungerade ist, wird nur eines der Muster als Fehler erkannt, und die Wahl kann danach getroffen werden, welches der häufigere Fehler sein dürfte.

Redundantes Array unabhängiger FestplattenBearbeiten

Paritätsdaten werden von einigen RAID-Levels (Redundant Array of Independent Disks) verwendet, um Redundanz zu erreichen. Wenn ein Laufwerk im Array ausfällt, können die verbleibenden Daten auf den anderen Laufwerken mit den Paritätsdaten kombiniert werden (unter Verwendung der booleschen XOR-Funktion), um die fehlenden Daten zu rekonstruieren.

Angenommen, zwei Laufwerke in einem RAID-5-Array mit drei Laufwerken enthielten die folgenden Daten:

Laufwerk 1: 01101101
Laufwerk 2: 11010100

Um die Paritätsdaten für die beiden Laufwerke zu berechnen, wird ein XOR mit ihren Daten durchgeführt:

01101101
XOR 11010100
_____________
10111001

Die resultierenden Paritätsdaten, 10111001, werden dann auf Laufwerk 3 gespeichert.

Fällt eines der drei Laufwerke aus, kann der Inhalt des ausgefallenen Laufwerks auf einem Ersatzlaufwerk rekonstruiert werden, indem die Daten der übrigen Laufwerke der gleichen XOR-Operation unterzogen werden. Bei einem Ausfall von Laufwerk 2 könnten seine Daten anhand der XOR-Ergebnisse der Inhalte der beiden verbleibenden Laufwerke, Laufwerk 1 und Laufwerk 3, wiederhergestellt werden:

Laufwerk 1: 01101101
Laufwerk 3: 10111001

wie folgt:

10111001
XOR 01101101
_____________
11010100

Das Ergebnis dieser XOR-Berechnung ergibt den Inhalt von Laufwerk 2. 11010100 wird dann auf Laufwerk 2 gespeichert, wodurch das Array vollständig repariert wird. Das gleiche XOR-Konzept gilt auch für größere Arrays mit einer beliebigen Anzahl von Festplatten. Im Falle eines RAID-3-Arrays mit 12 Laufwerken nehmen 11 Laufwerke an der oben gezeigten XOR-Berechnung teil und liefern einen Wert, der dann auf dem speziellen Paritätslaufwerk gespeichert wird.

Erweiterungen und Variationen des Paritätsbit-Mechanismus „doppelte“, „duale“ oder „diagonale“ Parität werden in RAID-DP verwendet.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.