
Theorie Datenintegrität
32
Fehlerkorrektur-Code (ECC)
Mit der Verwendung der periodischen Redundanzüberprüfung (CRC) und zweistufiger orthogonalen
Fehlerkorrektur-Kodierung (ECC) ist die Wahrscheinlichkeit des Auftretens eines Hardwarefehlers
sehr gering. Während des Lesevorgangs wird die ECC-Korrektur automatisch ausgeführt, ohne dass
das Band-Streaming beeinträchtigt wird.
Es gibt zwei Stufen der Fehlerkorrektur-Kodierung (ECC). Diese zwei Stufen sind orthogonal - d. h.
ein ECC-Code-Wort auf einer Stufe überschneidet ECC-Code-Wörter auf der anderen Stufe nur
einmal, wodurch nur ein gemeinsames Symbol zwischen ihnen existiert. Die zwei Stufen werden C1
und C2 genannt.
C1-ECC
Während Daten vom Datenverarbeitungsgerät zum Speicher geschrieben werden, generiert das
DMA / ECC-Interface C1-ECC-Bytes und schreibt sie zum Speicher.
Während Daten aufs Band geschrieben werden, wird der C1-ECC überprüft, und wenn ein Fehler
aufgetreten ist, wird ein Interrupt generiert. Der vom Speicher gelesene C1-ECC ist der ECC, der auf
das Band geschrieben wird.
Wenn Daten vom Band gelesen und im Speicher gelagert werden, wird der C1-ECC überprüft.
• Wenn der C1-ECC gültig ist, wird das "Gültig"-Bit des Code-Wortpaars gesetzt.
• Andernfalls wird ein Zeiger zum ungültigen Code-Wortpaar zur C1-ECC-Korrektur-Engine
weitergeleitet.
• Wenn die C1-ECC-Korrektur-Engine den Fehler beheben kann, werden die berichtigten
Bytes zum Speicher geschrieben und das Gültig-Bit wird gesetzt.
• Andernfalls bleibt das Gültig-Bit gelöscht.
Während Daten zur Dekomprimierung vom Speicher zum Datenprozessor gelesen werden, wird der
C1-ECC nochmals überprüft, und wenn er nicht korrekt ist, wird ein Interrupt generiert.
C2-ECC
C2-ECC umfasst drei eindeutige Vorgänge:
1. Kodierung: C2-ECC-Bytes werden von Datenbytes generiert (von ECC-Koprozessorhard-
ware durchgeführt)
2. Dekodierung: ECC-Syndrome werden von Daten- und ECC-Bytes generiert, wobei für
Ganz-Nullen getestet wird (von ECC-Koprozessorhardware durchgeführt)
3. Korrektur: Berichtigte Daten werden von Syndromen generiert.
Die Korrektur hängt von der Anzahl und vom Typ der entsprechenden Fehler ab:
• Für ein bekanntes fehlerhaftes C1-Code-Wortpaar in einem Unterdatensatz (C2-Code-Wort),
wird der Vorgang von der ECC-Koprozessorhardware durchgeführt.
• Für zwei oder mehrere bekannte fehlerhafte C1-Code-Wortpaare wird die Matrix von der
Firmware ausgerechnet und die Korrektur von der Hardware durchgeführt.
• Für ein oder mehrere unbekannte C1-Code-Wortpaar(e) werden Syndrome von der Hardware
generiert, die Fehlerposition wird von der Firmware ausgerechnet, die Matrix wird von der
Firmware ausgerechnet, und die Korrektur wird von der Hardware durchgeführt.
Komentáře k této Příručce