Pariteitsbit

Omwille van zijn eenvoud wordt pariteit gebruikt in veel hardwaretoepassingen waarbij een bewerking in geval van problemen kan worden herhaald, of waarbij het eenvoudig opsporen van een fout nuttig is. Bijvoorbeeld, de SCSI en PCI bussen gebruiken pariteit om transmissiefouten te detecteren, en veel microprocessor instructiecaches bevatten pariteitsbeveiliging. Omdat de I-cache gegevens slechts een kopie van het hoofdgeheugen zijn, kunnen ze worden genegeerd en opnieuw worden ge-fetched als blijkt dat ze corrupt zijn.

In seriële datatransmissie is een gangbaar formaat 7 databits, een even pariteitsbit, en een of twee stopbits. Dit formaat biedt plaats aan alle 7-bits ASCII-tekens in een 8-bits byte. Andere formaten zijn mogelijk; 8 databits plus een pariteitsbit kunnen alle 8-bit byte-waarden overbrengen.

In seriële communicatiecontexten wordt de pariteit gewoonlijk gegenereerd en gecontroleerd door interface-hardware (b.v. een UART) en bij ontvangst wordt het resultaat beschikbaar gesteld aan een processor zoals de CPU (en dus ook b.v. het besturingssysteem) via een statusbit in een hardwareregister in de interface-hardware. Herstel van de fout geschiedt gewoonlijk door het opnieuw verzenden van de gegevens, waarvan de details gewoonlijk door software worden afgehandeld (b.v. de I/O-routines van het besturingssysteem).

Wanneer het totale aantal verzonden bits, inclusief het pariteitsbit, even is, heeft oneven pariteit het voordeel dat de all-zeros en all-ones patronen beide als fouten worden gedetecteerd. Als het totale aantal bits oneven is, wordt slechts een van de patronen als een fout gedetecteerd, en kan de keuze worden gebaseerd op welke naar verwachting de meest voorkomende fout zal zijn.

Redundant array of independent disksEdit

Pariteitsgegevens worden door sommige redundant array of independent disks (RAID) niveaus gebruikt om redundantie te bereiken. Als een schijf in de array uitvalt, kunnen de resterende gegevens op de andere schijven worden gecombineerd met de pariteitsgegevens (met behulp van de Boolean XOR-functie) om de ontbrekende gegevens te reconstrueren.

Voorbeeld: twee schijven in een RAID 5-array met drie schijven bevatten de volgende gegevens:

Schijf 1: 01101101
Schijf 2: 11010100

Om de pariteitsgegevens voor de twee schijven te berekenen, wordt een XOR op hun gegevens uitgevoerd:

01101101
XOR 11010100
_____________
10111001

De resulterende pariteitsgegevens, 10111001, worden dan opgeslagen op schijf 3.

Als een van de drie schijven defect raakt, kan de inhoud van het defecte station op een vervangend station worden gereconstrueerd door de gegevens van de resterende schijven aan dezelfde XOR-bewerking te onderwerpen. Als schijf 2 uitvalt, kunnen de gegevens ervan worden gereconstrueerd met behulp van de XOR-resultaten van de inhoud van de twee resterende schijven, schijf 1 en schijf 3:

Drive 1: 01101101
Drive 3: 10111001

als volgt:

10111001
XOR 01101101
_____________
11010100

Het resultaat van die XOR-berekening levert de inhoud van schijf 2 op. 11010100 wordt dan opgeslagen op station 2, waardoor de array volledig wordt hersteld. Ditzelfde XOR-concept geldt ook voor grotere arrays, met een willekeurig aantal schijven. In het geval van een RAID 3 array van 12 schijven, nemen 11 schijven deel aan de hierboven getoonde XOR berekening en leveren een waarde op die vervolgens wordt opgeslagen op de speciale pariteitsschijf.

Extensies en variaties op het pariteitsbit mechanisme “dubbele”, “dubbele”, of “diagonale” pariteit, worden gebruikt in RAID-DP.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *