Paritetsbit

På grund av sin enkelhet används paritet i många hårdvarutillämpningar där en operation kan upprepas vid svårigheter, eller där det är bra att upptäcka felet. Till exempel använder SCSI- och PCI-bussarna paritet för att upptäcka överföringsfel, och många mikroprocessorers instruktionscacher innehåller paritetsskydd. Eftersom I-cache-data bara är en kopia av huvudminnet kan man bortse från dem och hämta dem på nytt om de visar sig vara skadade.

I seriell dataöverföring är ett vanligt format 7 databitar, en jämn paritetsbit och en eller två stoppbitar. Detta format rymmer alla 7-bitars ASCII-tecken i en 8-bitars byte. Andra format är möjliga; 8 databitar plus en paritetsbit kan förmedla alla 8-bitars bytevärden.

I seriella kommunikationssammanhang genereras och kontrolleras pariteten vanligen av gränssnittshårdvara (t.ex. en UART) och vid mottagning görs resultatet tillgängligt för en processor, t.ex. en CPU (och därmed också t.ex. för operativsystemet) via en statusbit i ett hårdvaruregister i gränssnittshårdvaran. Återhämtning av felet sker vanligen genom att data sänds på nytt, och detaljerna kring detta hanteras vanligen av programvara (t.ex. operativsystemets I/O-rutiner).

När det totala antalet överförda bitar, inklusive paritetsbiten, är jämnt, har oddsparitet den fördelen att både all-zeros- och all-ones-mönstren upptäcks som fel. Om det totala antalet bitar är udda upptäcks endast ett av mönstren som ett fel, och valet kan göras baserat på vilket som förväntas vara det vanligaste felet.

Redundant array of independent disksEdit

Paritetsdata används av vissa RAID-nivåer (Redundant array of independent disks) för att uppnå redundans. Om en enhet i matrisen går sönder kan återstående data på de andra enheterna kombineras med paritetsdata (med hjälp av den booleska XOR-funktionen) för att rekonstruera de saknade uppgifterna.

Till exempel, anta att två enheter i en RAID 5-array med tre enheter innehåller följande data:

Enhet 1: 01101101
Enhet 2: 11010100

För att beräkna paritetsdata för de två enheterna utförs en XOR-kombination på deras data:

01101101
XOR 1101010100
_____________
10111001

Den resulterande paritetsdatan, 10111001, lagras sedan på enhet 3.

Om någon av de tre enheterna skulle gå sönder kan innehållet på den misslyckade enheten rekonstrueras på en ersättningsenhet genom att data från de återstående enheterna utsätts för samma XOR-operation. Om enhet 2 skulle gå sönder kan dess data återskapas med hjälp av XOR-resultaten av innehållet i de två återstående enheterna, enhet 1 och enhet 3:

Enhet 1: 01101101
Enhet 3: 10111001

på följande sätt:

10111001
XOR 01101101101
_____________
11010100

Resultatet av denna XOR-beräkning ger enhet 2:s innehåll. 11010100 lagras sedan på enhet 2 och reparerar arrayen helt och hållet. Samma XOR-koncept gäller på samma sätt för större matriser med valfritt antal diskar. I fallet med en RAID 3-array med 12 enheter deltar 11 enheter i XOR-beräkningen som visas ovan och ger ett värde som sedan lagras på den dedikerade paritetsenheten.

Utvidgningar och variationer av paritetsbitsmekanismen ”dubbel”, ”dual” eller ”diagonal” paritet, används i RAID-DP.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *