Fano Bedingung
Aufgabe:
Codierung eines Codes für die Buchstaben
a, b , c der die Fano-Bedingung erfüllt.
a=0
b = 10
c = 11
Test: 1110111010001011
entspricht: c b c b b aa b c
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 51
Fano Bedingung
Aufgabe:
Codierung eines Codes für die Buchstaben
a, b , c , d, e, der die Fano-Bedingung erfüllt.
a = 000
b = 111
c = 110
d = 100
e = 011
Test : 000011100111001
a e d b?
001: z.B. Fehler in der Übertragung
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 52
Lauflängencodierung
Zum Beispiel
AAAABBBBCCDDDDDDACCCCCDDBBBBBBBBB
wird wie folgt übertragen:
4A4B2C6D1A5C2D9B
Sehr effektiv z.B. bei einem Einscannen für eine Schwarz-Weiß-
Faxübertragung
weiß = A Lauflängencodierung
Schwarz = B
Teile die Seite ein in Quadrate, die ca. der Größe eines Punkts
entsprechen.
Ergebnis entspricht einer Komprimierung einer Graphik.
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 53
Codierungsmethoden
- Fehlertolerante Codierung
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 54
Codierungstheorie
Themen des Abschnitts:
o Fehlertolerante Codierung
o Was ist Parität?
o Erkennung von Fehlern in abgespeicherten Daten
o Korrektur von Fehlern
o Technischer Festplattenaufbau
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 55
Wie entstehen Fehler?
Bei der Datenübertragung zwischen verschiedenen
Systemen können Fehler entstehen.
Sender Codierung Übertragungs- Decodierung Empfänger
kanal
Störungsquelle
• Äußere Einflüsse
• Übertragungsprobleme (Kabel, Steckverbindungen)
• Zu hohe Auslastung des Sende- oder Empfangssystems
• Hardwareprobleme ( Festplatte)
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 56
Codierung
Idee:
Die Codierungslänge sollte größer als notwendig gewählt werden.
Die zusätzlichen nicht benötigten Zeichen könnten für einen Test der
Integrität der Daten verwendet werden.
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 57
Paritätscodierung
Binärcodierung der Länge n c: A Bn = {0,1} n
Ergänze jedes Codewort um eine Bit, so dass die Summen der
einzelnen (n + 1) Bitwerte gerade ist.
c‘ : A Bn+1 = {0,1} n+1 Codewort b1, …, b4 Paritätsbit b5
Die Codierung hat
0000 0
„gerade Parität“. 0010 1
1100 0
Durch die Parität kann man 1110 1
erkennen, ob in dem 1111 0
Codewort ein oder mehrere
Bits fehlerhaft sein könnte.
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 58
Ungerade Paritätscodierung
Technisch machbar (eventuell auch sinnvoll) ist ebenfalls eine
Codierung mit „Ungerader Parität“.
Codewort b1, …, b4 Paritätsbit b5
0000 (neg. Parität)
0010
1100 1
1110 0
1111 1
0
1
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 59
Definition Paritätskodierung
Paritätskodierung
Für Wörter b1 … bn ε Bn heißt die Codierung
cp : Bn Bn+1 mit
b1 … bn b1 … bn bn+1 wobei bn+1 = ( ∑ bi ) mod b
Paritätskodierung.
---------------
a mod b = Der Rest der Integer-Division a / b
______________________________________
In dualen System: Einfacher zu merken:
Addiere die Anzahl von Einsen in dem Codewort,
wenn diese gerade ist, füge eine „0“ hinzu,
wenn diese ungerade ist, füge eine „1“ hinzu
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 60
Paritätskontrolle
Zur Datenübertragung wird die Paritätskodierung wahlweise
mit gerader oder ungerader Parität verwendet.
Die Parität wird errechnet und mit den Daten gesendet.
Von Empfänger wird sie aus den Daten ebenfalls berechnet
und mit der mitgesendeten verglichen.
Die Paritätskontrolle erkennt einen
Einzelfehler je Codewort.
( oder jede andere ungerade Zahl von Fehlern)
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 61
Hamming-Abstand
Seien x = x1 … xn und y = y1 …. yn zwei Wörter der Länge n
über dem Alphabet A, also x;y ε An
Der Hamming-Abstand (Hamming distance) dH(x,y)
der Worter x und y ist die Anzahl ihrer unterschiedlichen
Komponenten,
dH(x,y) = ∑ (1,{ i ε {1, … ,n} : xi ≠ yi } )
Beispiele: dH(0111,0101) = 1
• B4: dH(0111,1000) = 4
dH(HAMMING,HAMBURG) = 3
• {A, . . . , Z}7:
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 62
Minimalabstand des Hamming-Abstands
Seien A = {a1 … an } ein endlichen Alphabet
c : A Bn eine Codierung der Länge n mit den Codeworten
Ci = c(ai) , i {1,2 … , n}
Der Minimalabstand dmin (c ) der Codierung c ist das Minimum
der Hamming-Abstände unterschiedlicher Codewörter.
Folgerung: dmin (c ) = min {dH(ci,ck)}
Für jede Codierung c gilt: dmin (c ) 1
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 63
Minimalabstand der Paritätskodierung
Folgerung:
Paritätscodierung cp , Gerade Parität
Ändert sich ein Bit, so ändert sich auch das Paritätsbit.
Codewort b1, …, b4 Paritätsbit b5
1100 0
1110 1
Der Minimalabstand dmin (c ) der Paritätscodierung cp :
dmin (cp ) = 2
Wichtig für die Fehlererkennung!
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 64
Definition: Fehlererkennende Codierung
Eine Codierung c fester Länge heißt k-fehler erkennend,
wenn es dem Empfänger möglich ist,
bis zu k Einzelfehler je Codewort zu erkennen.
Folgerung:
Eine Codierung c fester Länge ist genau dann k-fehlererkennend,
Wenn folgende Beziehung zum Mindestabstand dmin:
dmin (c ) k+1
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 65
Fehlererkennende Codierung Codewort Paritäts
bit
Somit: 110 0001 1
• Paritätscodierung ist 1-fehlererkennend, 110 0010 1
110 0011 0
da dmin (cp ) = 2 110 0100 1
110 0101 0
• Wenn sich 1 Bit ändern, ist dies erkennbar! 110 0110 0
• Wenn sich 2 Bits ändern, ist dies nicht mehr 110 0111 1
110 1000 1
erkennbar!
• Korrektur ist jedoch schon bei der Änderung
von einem Bit nicht möglich.
Dazu fehlt die Information über die genaue
Position des defekten Bits in dem Codewort!
Erweiterung der bisher besprochenen Parität ist also
notwendig.
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 66
1D-Paritätscodierung 1- Bit-Fehler
Codewort Paritätsb …
it
110 0001
110 0010 1
110 0011 1
110 0100 0
110 0101 1
110 0110 0
110 0111 0
110 1000 1
1
Fehler in der Tabelle erkennbar
Aber nicht lokalisierbar
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 67
Grundsätzliche Frage
Wie groß soll eigentlich der Block sein, für den
die Parität erstellt wird?
Vorteil: Große Blockgröße
Geringer Overhead durch das Paritätsbit
Berechnung der Parität erfolgt nicht so oft.
Vorteil: Kleine Blockgröße
Fehler in den Blöcken sind leichter zu erkennen.
Fehler heben sich nämlich seltener auf!
Berechnung der Parität ist schneller, da weniger Elemente .
Allgemein wird eine Blockgröße von 4KByte bis 128 kByte
verwendet.
Achtung immer 2-er Potenz als Blockgröße verwenden!
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 68
2D Paritätskodierung
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 69
2D- Paritätscodierung Codewort Paritäts
bit
Verfeinerung der Fehlerüber- 110 0001
prüfung 110 0010 1
110 0011 1
Sender bildet Blöcke aus m 110 0100 0
Codewörtern der Länge n und 110 0101 1
ergänzt pro Zeile und Spalte 110 0110 0
je ein Paritätsbit. 110 0111 0
110 1000 1
Paritäts 000 1000 1
bit 1
Wie viele Einzelfehler werden jetzt erkennt?
Sind diese korrigierbar?
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 70
Allgemein: 2D-Paritätscodierung
Für Blöcke b11 … bmn Bmn aus m Wörtern der Länge n heißt
die Codierung
cp2 : Bmn Bmn+m+n+1 mit
b1 ... bmn b1 ...bmnbmn+1 ...bmn+m+n+1
mit den m+n+1 angehängten Paritätsbits
n
bmn+k = b(k 1)(ni) mod 2 für k { 1, ... ,m}
i 1
m 1 mod 2 für l { 1, ... ,n+1}
bmn+m+l = bi(n1)l
i0
zweidimensionale Paritätscodierung oder kurz
2D-Paritätscodierung
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 71
2D-Paritätscodierung 1- Bit-Fehler
Fehler in einem Bit
Fehler in der Tabelle genau lokalisierbar
Korrigierbar
Also:
1-Bit Fehler erkannt,
korrigierbar
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 72
2D-Paritätscodierung 2-Bit-Fehler
Fehler in einem Bit
Fehler in der Tabelle erkennbar,
Aber nicht lokalisierbar
(hier: zwei Möglichkeiten)
>NICHT korrigierbar
Also:
2-Bit Fehler erkennbar
nicht korrigierbar
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 73
2D-Paritätscodierung: 2- und 3-Bit-Fehler
Links: Rechts:
2 - Bit Fehler erkannt 2 - Bit Fehler erkannt
nicht korrigierbar nicht korrigierbar
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 74
2D-Paritätscodierung: 3- und 4-Bit-Fehler
Links: Rechts:
3 - Bit Fehler 4 - Bit Fehler
1-Bit „Fehler“ erkannt Nicht erkannt
nicht korrigierbar nicht korrigierbar
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 75
2D-Paritätscodierung
Folgerung:
Die 2D-Paritätscodierung
erkennt drei Einzelfehler je Block und
kann einen Einzelfehler je Block korrigieren.
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 76
Definition: Fehlerkorrigierende Codierungen
Eine Codierung c fester Länge heißt
k-fehlerkorrigierend,
wenn es möglich ist, bis zu k unabhängige
Einzelfehler je Codewort zu korrigieren.
Folgerung
Eine Codierung c fester Länge ist genau dann k-
fehlerkorrigierend, wenn für ihren Minimalabstand d‘ gilt:
Wie gesehen: d‘min (c ) 2k+1
2D-Paritätscodierung cp2 :
d‘min(cp2) 3 k 1 K = 1 cp2 ist 1-fehlerkorrigierend
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 77
Anwendung
Raid Systeme
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 78
Raid Allgemeines
Zusammenfassung
Raid – Systeme
Redundant array of independent disks
Früher (Redundant array of inexpensive disks)
Idee: Wie erhalten ich eine Festplatte mit mehr
Speicherkapazität,
wenn ich mehrere kleine Platten zur Verfügung habe?
Folgerung: Erzeugung verschiedener Systeme entsprechend
der Anforderungen aus mehreren unabhängigen Festplatten
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 79
Raid 0
Mehrere Platten (üblicherweise zwei) werden so
parallel geschaltet, dass sie sich beim kontinuierlichen
Lesen und Schreiben von Datenmengen abwechseln.
Diese "Striping" genannte Technik kann zum Beispiel
dazu genutzt werden, dass während des Lesens einer
Datenspur der Kopf der zweiten Platte schon auf der
neuen Spur positioniert wird.
Nachteil:
Die Ausfallwahrscheinlichkeit wird ungefähr verdoppelt.
Bei Ausfall einer Festplatte sind zudem alle Daten des RAID-
Systems verloren.
RAID Level 0 wird nur dort eingesetzt, wo für lokale
Aufgaben extreme
Datenmengen in kürzester Zeit verarbeitet werden
müssen.
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 80
Raid 1
Mehrere Platten (üblicherweise zwei)
erhalten exakt dieselben Informationen („Mirroring").
Fällt eine Platte aus, kann sie (im laufenden Rechner)
ausgetauscht werden, während die verbliebenen
Platten weiterarbeiten.
Nach dem Anmelden der neuen Platte wird diese vom
RAID-Controller sofort mit den aktuellen Daten versorgt.
Erhält jede Festplatte einen eigenen Controller, so spricht
man von „Duplexing“
Die Wahrscheinlichkeit eines gleichzeitigen Ausfalls aller
Platten ist sehr klein .
RAID Level 1 ist ein Pflichtbestandteil wichtiger Server.
Nachteil:
Die Festplattenkosten pro Datenmenge vervielfachen sich.
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 81
Raid 5
Die Paritätsinformation wird auf alle
Festplatten verteilt
Minimalanzahl der Festplatten: 3
Maximalanzahl: 32
Bei n gleichgroßen Einzelplatten ergibt sich eine
Gesamtkapazität vom n -1-fachen der Festplatte mit der
geringsten Speicherkapazität.
Bei Ausfall einer Festplatte muss für den Datenzugriff 1/(n-1)
der Daten nicht berechnet.
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 82
Raid 6
Weiterentwicklung von Raid 5.
Hier wird die 2-dimensionale Parität Codewort Paritäts
gerechnet und analog Raid 5 auf den bit
Festplatten abgespeichert.
110 0001 1
Minimalanzahl der Festplatten: 4 110 0010 1
110 0011 0
Bei n gleichgroßen Einzelplatten ergibt 110 0100 1
sich eine Gesamtkapazität vom 110 0101 0
n -2-fachen der Festplatte mit der 110 0110 0
geringsten Speicherkapazität. 110 0111 1
110 1000 1
Paritäts 000 1000 1
bit
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 83
Hot Spare / Hot Plugable
Hot Spare Festplatten:
in größeren Festplattensystemen
sind einzelne Festplatten speziell
gekennzeichnet.
Diese werden im Fehlerfall vom
Controller direkt anstelle der defekten Festplatte benutzt.
Hot Plugable:
Die Festplatte kann im Betrieb getauscht werden.
LVM Logical Volume Manager:
Unter Linux ist es möglich ein Raid 0-System in laufenden
Betrieb aufzusetzen und auch zu erweitern.
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 84
Vorteile/Nachteile Raid-5
Aufbau großer Festplatten möglich
(Bsp.: 12 * 1 TB / 30 * 500 GB und größer)
Verlust von 1/n des Speicherbereichs
3 Platten = 1/3 = 33%
10 Platten = 1/10 = 10 %
30 Platten = 1/30 = 3,33 %
Alle Festplatten sollten gleich groß sein.
Die Größe des Raids richtet sich nach der kleinsten
Festplatte.
Festplatten: 500 GB, 1TB, 1TB, 1TB, 2TB ergeben ein Raid-
5 mit:
4 * 500 GB Datenkapazität
(Raid 6: analoge Aussagen)
Hochschule Hannover Fak.IV /Abt. Informatik Bernd Laumann Grundlagen der Informatik Teil 3 WS2014/15 Seite 85