Paritní bit

Pro svou jednoduchost se parita používá v mnoha hardwarových aplikacích, kde lze operaci v případě potíží opakovat nebo kde je užitečné pouhé zjištění chyby. Například sběrnice SCSI a PCI používají paritu k detekci chyb při přenosu a mnoho mezipamětí instrukcí mikroprocesorů obsahuje paritní ochranu. Protože data I-cache jsou pouze kopií hlavní paměti, lze je v případě zjištění poškození ignorovat a znovu načíst.

Při sériovém přenosu dat je běžný formát 7 datových bitů, sudý paritní bit a jeden nebo dva stop bity. Tento formát pojme všechny 7bitové znaky ASCII v 8bitovém bajtu. Možné jsou i jiné formáty; 8 bitů dat plus paritní bit může přenášet všechny hodnoty 8bitového bajtu.

V kontextu sériové komunikace je parita obvykle generována a kontrolována hardwarem rozhraní (např. UART) a při příjmu je výsledek zpřístupněn procesoru, jako je CPU (a tedy například i operačnímu systému), prostřednictvím stavového bitu v hardwarovém registru hardwaru rozhraní. Zotavení z chyby se obvykle provádí opětovným přenosem dat, jehož podrobnosti obvykle řeší software (např. vstupně-výstupní rutiny operačního systému).

Pokud je celkový počet přenášených bitů včetně paritního bitu sudý, má lichá parita tu výhodu, že vzory all-zeros a all-ones jsou oba detekovány jako chyby. Pokud je celkový počet bitů lichý, je jako chyba detekován pouze jeden ze vzorů a volba může být provedena na základě toho, u kterého se předpokládá, že bude častější chybou.

Redundantní pole nezávislých diskůRedukovat

Paritní data používají některé úrovně redundantního pole nezávislých disků (RAID) k dosažení redundance. Pokud dojde k selhání disku v poli, lze zbývající data na ostatních discích zkombinovat s paritními daty (pomocí logické funkce XOR) a rekonstruovat chybějící data.

Předpokládejme například, že dvě jednotky v poli RAID 5 se třemi disky obsahují následující data:

Disk 1: 01101101
Disk 2: 11010100

Pro výpočet paritních dat pro tyto dva disky se provede XOR na jejich datech:

01101101
XOR 11010100
_____________
10111001

Výsledná paritní data, 10111001, se pak uloží na disk č. 3.

Pokud některá ze tří jednotek selže, lze obsah selhané jednotky rekonstruovat na náhradní jednotce tak, že data ze zbývajících jednotek podrobíte stejné operaci XOR. Pokud by došlo k selhání jednotky 2, lze její data obnovit pomocí výsledků XOR obsahu dvou zbývajících jednotek, jednotky 1 a jednotky 3:

Drive 1: 01101101
Drive 3: 10111001

takto:

10111001
XOR 01101101
_____________
11010100

Výsledkem tohoto výpočtu XOR je obsah jednotky 2. V případě, že by došlo k selhání jednotky 2, lze její data obnovit pomocí výsledků XOR obsahu zbývajících dvou jednotek, jednotky 1 a jednotky 3. Číslo 11010100 se pak uloží na jednotku 2, čímž se pole zcela opraví. Stejný koncept XOR platí podobně i pro větší pole s libovolným počtem disků. V případě pole RAID 3 s 12 disky se výše uvedeného výpočtu XOR účastní 11 disků a výsledkem je hodnota, která je poté uložena na vyhrazený paritní disk.

V poli RAID-DP se používají rozšíření a varianty mechanismu paritních bitů „dvojitá“, „duální“ nebo „diagonální“ parita.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *