Chapter 5

Transkrypt

Chapter 5
Kody Hamminga

Odległość Hamminga


Odl. Hamm. = 2 pozwala wykrywać
pojedyncze błędy


Liczba różnych bitach w dwóch prawidłowych
kodach
Np. kodowanie z dodanym bitem parzystości
Odl. Hamm. = 3 pozwala poprawiać
pojedyncze błędy lub wykrywać podwójne
Chapter 5 — Large and Fast: Exploiting Memory Hierarchy — 1
Kod Hamminga SEC

Kod Hamm. Single Error Correcting:



Numerujemy bity lewej strony
Bity na pozycjach numerowanych potęgami
dwójki to bity parzystości
Każdy z nich ,,pilnuje'' pewnych pozycji:
Chapter 5 — Large and Fast: Exploiting Memory Hierarchy — 2
Dekodowanie SEC

Warotści bitów parzystości mówią, na
której pozycji wystąpił błąd


Błąd na pozycji o numerze będącym sumą
numerów błądnych bitów parzystości
Np.


Bity parzystości = 0000: nie ma błądu
Bity parzystości = 1010: bit 10 przekłamany
Chapter 5 — Large and Fast: Exploiting Memory Hierarchy — 3
Optymalność kodu






Oryginalny kod n-bitowy: 2^n znaków
Dodajemy r bitów korekcyjnych: 2^(n+r) znaków
W kodzie korygującym pojedyncze przekłamania
każdy znak musi mieć jedną reprezentację
prawidłową oraz (n+r) reprezentacji ,,z
pojedynczym przekładamaniem''
Stąd: (1+n+r) 2^n <= 2^(n+r)
Czyli: 1+n+r <= 2^r
Dla n=8 potrzebne r=4, dla n=64 – r=7
Chapter 5 — Large and Fast: Exploiting Memory Hierarchy — 4
Kod SEC/DEC




Single Error Correcting/Double Error Detecting
Dodajemy dodatkowy bit parzystości dla całego
słowa (pn)
Dostajemy odległość Hamminga = 4 (dlaczego?)
Uwaga: standardowa ECC DRAM używa kodu
SEC/DEC z 8 bitami ,,pilnującymi'' każdych 64
bitów
Chapter 5 — Large and Fast: Exploiting Memory Hierarchy — 5

Podobne dokumenty