Mechanizm korekcji b edˇw

background image

Referat. Architektura Systemów Komputerowych

Opracował: Dariusz Zagórski

Warszawa, Uczelnia Vistula 2012

background image

W systemach pamięci mogą występować dwa rodzaje błędów: błędy stałe i
przypadkowe.

Błąd stały (czyli uszkodzenie sprzętowe) jest trwałym defektem fizycznym

nośnika powodującym, że uszkodzona komórka pamięci nie jest w stanie
przechowywać danych – pozostają one trwale w stanie 0 lub 1, ewentualnie
zmieniają swój stan przeskakując chaotycznie pomiędzy 0 i 1.

Błąd przypadkowy jest zjawiskiem losowym i nieniszczącym, które zmienia

zawartość komórek pamięciowych bez ich fizycznego uszkodzenia. Błąd taki
może być spowodowany przez problemy z zasilaniem lub naturalnie i
powszechnie występujące zjawiska emisji cząsteczki alfa w procesie
promieniotwórczości

.

background image

Bitem parzystości nazywamy bit kontrolny, który przyjmuje wartość 1, gdy
liczba jedynek w przesyłanej wiadomości jest nieparzysta lub 0, gdy
odwrotnie. Innymi słowy – bit parzystości sprawia, że wiadomość ma
zawsze parzystą liczbę jedynek. W tym wariancie bit parzystości możemy
obliczyć wykonując

sumę modulo dwa

na wszystkich bitach wiadomości:

gdzie n to liczba bitów wiadomości.

Przykłady

Wiadomość 10111101

2

ma parzystą liczbę jedynek, więc bit parzystości

wynosi 0. Wiadomość z dołączonym bitem parzystości to 101111010

2

.

Wiadomość 01110011

2

ma nieparzystą liczbę jedynek, więc bit parzystości

wynosi 1. Wiadomość z dołączonym bitem parzystości to 011100111

2

.

background image

W wielu systemach kodowania (kody kreskowe, numery ISBN, numery
rachunków bankowych, numery NIP) stosuje się sumy kontrolne. Są to
specjalne kody, które pozwalają szybko ustalić, czy któryś z
poprzedzających je znaków nie został przypadkiem błędnie odczytana.

CRC (cykliczna kontrola nadmiarowa) to technika opierająca się na sumach
kontrolnych, którą stosuje się głównie przy przesyłaniu danych w celu
sprawdzenia , czy w jakimś bloku lub strumieniu bajtów nie wkradł się błąd.
Istnieje tutaj prosta zależność, że im większy blok danych jest do
sprawdzenia, tym większa musi być suma kontrolna. Sumy kontrolne i
techniki CRC zaliczamy do grupy regularnych systemów detekcji błędów.
Bity kontrolne są doklejane do bajtów danych nie powodując ich zmiany.
Grupę takich bitów nazywamy syndromem. Techniki CRC są oparte na
arytmetyce modulo 2.

background image
background image

W momencie, gdy dane mają być wczytane do pamięci przeprowadza się na

tych danych obliczenia, określane jako funkcja f, w celu utworzenia kodu, przy

czym dane i kod zostają przechowywane i w efekcie powstaje M+K bitowe

słowo (M-bitów danych i K-bitów kodu).

W trakcie odczytu uprzednio zmagazynowanego słowa kod korekcyjny jest

wykorzystywany do wykrycia i ewentualnej korekty błędów. Najpierw

generowany jest nowy zestaw K-bitów kodowych z M-bitów danych, po czym

następuje porównanie go z pobranymi bitami kodowymi. W wyniku porównania

następuje jeden z 3 stanów:

- nie wykryto żadnych błędów więc przesyłamy pobrane bity

- wykryto błąd i jest możliwa jego korekta – bity danych i bity korekty błędu sa

przesyłane do układu korektora, gdzie jest tworzony poprawiony zestaw M-

bitów przeznaczonych do wysłania

- wykryto błąd niemożliwy do poprawienia – zgłaszamy alarm

Wszystkie kody działające na tej zasadzie nazywamy kodami korekcyjnymi.

Kod korekcyjny jest opisywany przez liczbę błędnych bitów w danym słowie.

background image

Jednym z najstarszych, a zarazem jednym z najwydajniejszych kodów

zapewniających możliwość korygowania błędów jest kod Hamminga. Został on

opracowany przez Richarda Hamminga z Bell Laboratories. Kody Hamminga

stosuje się wszędzie tam, gdzie zachodzi duże prawdopodobieństwo pojawienia

się losowych błędów, tj. takich, dla których prawdopodobieństwo wystąpienia

błędu na pozycji danego bitu jest takie samo, jak na wszystkich pozostałych

pozycjach, niezależnie od liczby błędów, które już wystąpiły w danym bajcie.

Tego typu błędy pojawiają się w pamięciach komputerów.

Kod Hamminga wykorzystuje kontrolę parzystości, w której zdolność do

wykrywania i korygowania błędów rośnie proporcjonalnie do bitów parzystości

dodawanych do każdego słowa właściwej informacji. Samo słowo maszynowe

składa się z m bitów, ale dodaje się do niego r bitów kontrolnych(bitów

parzystości), które pozwalają na stosowanie mechanizmów kontroli i korekcji

błędów. Otrzymujemy w ten sposób tzw. słowo kodowe.

Działanie Kodu Hamminga najlepiej zrozumieć na podstawie Diagramu Venna.,

czyli schematu ilustrującego zależność pomiędzy zbiorami, co znacznie ułatwia

dostrzeżenie relacji pomiędzy zbiorami.

background image
background image

Odległością Hamminga będziemy nazywać liczbę bitów, którymi różnią się
dwa słowa. Np.

10001001
10110001
- - ***- - -

różnią się trzema bitami, więc ich odległość Hamminga jest równa 3.

Odległość Hamminga między dwoma słowami kodowymi ma istotne znaczenie
dla wykrywania błędów. Jeżeli dla dwóch różnych słów kodowych wynosi ona d,
to wystarczy d jednobitowych błędów, aby z jednego z nich zrobiło się drugie i
aby błąd pozostał niezauważony. W związku z tym, jeżeli chcemy tworzyć kod,
który zagwarantuje nam wykrycie wszystkich jednobitowych błędów, dla
wszystkich par słów kodowych odległość musi wynosić przynajmniej 2. Jeżeli
dane n-bitowe słowo nie zostanie rozpoznane jako dozwolone słowo kodowe,
będzie ono uznane za błędne.

background image

W celu wyjaśnienia wykorzystanej koncepcji opracujemy kod, który może

posłużyć do wykrycia i skorygowania 1-bitowego błędu w słowach 8-

bitowych. Zaczniemy od określenia wymaganej długości kodu. Zgodnie z

ogólnym schematem działania kodów korekcyjnych (rys. 5.7) układy

porównujące otrzymują na wejściu dwie wartości k-bitowe. Porównanie jest

dokonywane przez bramki XOR. Otrzymany wynik nosi nazwę syndromu, a

każdy jego bit przyjmuje wartość 0 lub 1 w zależności od wyniku

porównania zgodności bitów na 2 wejściach.

Słowo syndrom ma więc k bitów i zakres wartości pomiędzy 0 a 2

k

-1.

Wartość 0 wskazuje, że nie został wykryty żaden błąd, natomiast wartości

2

k

-1 wskazują na zaistnienie błędu i jego lokalizację bitową. Ponieważ błąd

może wystąpić w dowolnym z m bitów danych lub k bitów kontrolnych musi

być spełniona nierówność 2

k

-1 >=m+k, określająca ilośc bitów

wymaganych do skorygowania błędu 1-bitowego w słowie zawierającym m

bitów danych.

W naszym przypadku k=4: bo

2

4

>8+4

- 8 bitów danych wymaga 4 bitów kontrolnych.

background image

Chcemy aby utworzony prze nas 4-bitowy syndrom miał następujące
właściwości:

Jeżeli syndrom zawiera same 0 to znaczy że nie został wykryty żaden

błąd

Jeżeli syndrom zawiera jedną i tylko jedną 1, błąd wystąpił w jednym z

bitów kontrolnych – korekta nie jest potrzebna

Jeżeli syndrom zawiera więcej niż jedną 1, to wartość numeryczna

syndromu wskazuje pozycję błędnego bitu danych. Korekta polega na
zamianie wskazanego bitu

Aby uzyskać zamierzony efekt bity danych i bity kontrolne są aranżowane
jako słowa 12-bitowe. Pozycje bitowe są ponumerowane od 1 do 12. Bity
na pozycjach będących potęgą 2 są bitami kontrolnymi.

Pozycja

bitowa

12

11

10

9

8

7

6

5

4

3

2

1

Numer

pozycji

1100

1011

1010

1001

1000

0111

0110

0101

0100

0011

0010

0001

Bit

danych

D8

D7

D6

D5

 

D4

D3

D2

 

D1

 

 

Bit

kontrolny

 

 

 

 

C8

 

 

 

C4

 

C2

C1

background image

Pozycj

a

bitowa

12

11

10

9

8

7

6

5

4

3

2

1

Numer

pozycji

1100 1011 1010 1001 1000 0111 0110 0101 0100 0011 0010 0001

Bit

danych

D8

D7

D6

D5

 

D4

D3

D2

 

D1

 

 

Bit

kontrol

ny

 

 

 

 

C8

 

 

 

 

C4

 

 

C2

C1

Słowo

zapisa

ne

0

0

1

1

0

1

0

0

1

1

1

1

Słowo

pobran

e

0

0

1

1

0

1

1

0

1

1

1

1

Bit

kontrol

ny

 

 

 

 

0

 

 

 

0

 

0

1

background image

Tabela. Wzrost długości słowa po uwzględnieniu korekty błędów.

Liczba

bitów

danych

Poprawianie

pojedynczego błędu

Poprawianie

pojedynczego błędu

Wykrywanie błedu

podwójnego

Bity

kontrolne

% wzrostu

Bity

kontrolne

% wzrostu

8

4

50

5

62,5

16

5

31,25

6

37,5

32

6

18,75

7

21,875

64

7

10,94

8

12,5

128

8

6,25

9

7,03

256

9

3,52

10

3,91

background image
background image

Kody Hamminga sprawdzają się w sytuacjach w których błędy występują stosunkowo

rzadko. We współczesnych dyskach twardych błąd pojawia się średnio raz na 100

milionów bitów a 3-bitowy kod Hemminga pozwoliłby na jego bezproblemowe usunięcie.

Jednakże kody te są bezużyteczne w sytuacji gdy istnieje prawdopodobieństwo, że

uszkodzonych będzie kilka kolejnych bitów (powstanie tzw. błąd sekwencyjny. Błędy te są

charakterystyczne dla przenośnych nośników pamięci, o których użytkonik nie dba tak

jak powinien. Gdy przewidujemy, że błędy będą występowały całymi blokami, należałoby

zastosować kod korekcji błędów, który operuje na poziomie bloków, nie zaś pojedynczych

bitów. Przykładem takiego kodu jest kod Reeda-Solomana (RS), który można traktować

tak, jak gdyby był on właśnie kodem CEC odnoszącym się do większej grupy znaków.

Kody RS, podobnie jak CRC, są symetryczne. Bity parzystości są doklejane do bloków

zawierających bity danych.

Kody RS (n,k) definiowane są za pomocą następujących parametrów:

S = liczba bitów w znaku (zwanym też symbolem)

K = liczba k-bitowych znaków składających się na blok danych

n = liczba bitów w słowie kodowym

RS (n,k) jest w stanie skorygować (n-k)/2 błędów w k bajtach informacji.

Najbardziej popularny kod RS (255,223) wykorzystuje więc 223 8-bitowe bajty informacji i

32 bajty kontrolne, które składają się na 255-bajtowe słowa kodowe. Jest on w stanie

skorygować do 16 błędnych bajtów występujących w danym bloku informacji.

background image

BIBLIOGRAFIA

William Stallings, Orgaizacja i Architektura Systemu Komputerowego

Wikipedia

Inne źródła


Document Outline


Wyszukiwarka

Podobne podstrony:
Mechanizm Korekcji B ŕdˇw
Griffiths D Errata Introduction to quantum mechanics, 1st ed (2000) (3s)
Mechanika p ynˇw ? oŠ
Metrologia 5 protokół ED.5, PROTOK?? ?W. NR.5
DO$W~1, Laboratorium Mechaniki Do˙wiadczalnej
Laboratorium Hydromechaniki - †w.4, mechanika plynów
Drgania mechaniczne, Badanie drgań wymuszonych o jednym stopniu swobody na przykładzie wymuszonych b
pytania egzamin TS, Materiały POLSL, Geodezja, Hydrologia, Mechanika płynów, Budownictwo, Gospodarka
Drgania mechaniczne, Badanie drgań wymuszonych o jednym stopniu swobody na przykładzie wymuszonych b
Mechanika p ynˇw ? oŠ
mechanika płyn Žw, sprawozdanie Profil prędkości w rurze prostoosiowej
Generalnie szkło ED umożliwia produkcję soczewek zapewniających ostrość i korekcję kolorów
Mechanika techniczna(12)
Mechanika Semest I pytania egz
wykl 8 Mechanizmy
mechanizm mycia i prania

więcej podobnych podstron