Bit parzystości

Z powodu swojej prostoty, parzystość jest używana w wielu zastosowaniach sprzętowych, gdzie operacja może być powtórzona w przypadku trudności, lub gdzie po prostu wykrycie błędu jest pomocne. Na przykład, magistrale SCSI i PCI używają parzystości do wykrywania błędów transmisji, a wiele pamięci podręcznych instrukcji mikroprocesora zawiera ochronę parzystości. Ponieważ dane I-cache są tylko kopią pamięci głównej, mogą być zignorowane i ponownie załadowane, jeśli okaże się, że są uszkodzone.

W szeregowej transmisji danych, powszechnym formatem jest 7 bitów danych, parzysty bit parzystości i jeden lub dwa bity stopu. W tym formacie wszystkie 7-bitowe znaki ASCII mieszczą się w 8-bitowym bajcie. Możliwe są inne formaty; 8 bitów danych plus bit parzystości może przenosić wszystkie 8-bitowe wartości bajtów.

W kontekstach komunikacji szeregowej, parzystość jest zwykle generowana i sprawdzana przez sprzęt interfejsu (np. UART) i przy odbiorze, wynik udostępniany procesorowi, takiemu jak CPU (i tak również, na przykład, systemowi operacyjnemu) poprzez bit stanu w rejestrze sprzętowym w sprzęcie interfejsu. Odzyskiwanie z błędu odbywa się zwykle przez retransmisję danych, której szczegóły są zwykle obsługiwane przez oprogramowanie (np. procedury I/O systemu operacyjnego).

Gdy całkowita liczba transmitowanych bitów, w tym bit parzystości, jest parzysta, nieparzysta parzystość ma tę zaletę, że wzorce all-zeros i all-ones są wykrywane jako błędy. Jeśli całkowita liczba bitów jest nieparzysta, tylko jeden z wzorców jest wykrywany jako błąd, a wybór może być dokonany na podstawie tego, który z nich jest spodziewany jako bardziej powszechny błąd.

Redundant array of independent disksEdit

Dane parzystości są używane przez niektóre poziomy redundantnej macierzy niezależnych dysków (RAID) w celu osiągnięcia redundancji. W przypadku awarii jednego z dysków w macierzy pozostałe dane na innych dyskach można połączyć z danymi parzystości (za pomocą funkcji Boolean XOR), aby zrekonstruować brakujące dane.

Na przykład załóżmy, że dwa dyski w trzydyskowej macierzy RAID 5 zawierały następujące dane:

Dysk 1: 01101101
Dysk 2: 11010100

Aby obliczyć dane parzystości dla tych dwóch dysków, na ich danych wykonywana jest operacja XOR:

01101101
XOR 11010100
_____________
10111001

Wynikowe dane parzystości, 10111001, są zapisywane na dysku 3.

W przypadku awarii jednego z trzech dysków zawartość uszkodzonego dysku można odtworzyć na dysku zastępczym, poddając dane z pozostałych dysków tej samej operacji XOR. W przypadku awarii dysku 2 jego dane można odtworzyć, wykorzystując wyniki operacji XOR zawartości dwóch pozostałych dysków, dysku 1 i dysku 3:

Dysk 1: 01101101
Dysk 3: 10111001

w następujący sposób:

10111001
XOR 01101101
_____________
11010100

W wyniku tego obliczenia XOR otrzymano zawartość dysku 2. 11010100 jest następnie zapisywany na dysku 2, w pełni naprawiając tablicę. Ta sama koncepcja XOR ma zastosowanie do większych macierzy, wykorzystujących dowolną liczbę dysków. W przypadku macierzy RAID 3 składającej się z 12 dysków, 11 dysków bierze udział w przedstawionym powyżej obliczeniu XOR i uzyskuje wartość, która jest następnie zapisywana na dedykowanym dysku parzystości.

Rozszerzenia i wariacje na temat mechanizmu bitów parzystości „podwójnej”, „podwójnej” lub „ukośnej” parzystości są stosowane w RAID-DP.

W przypadku macierzy RAID-DP.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *