Théorie
Code de correction d'erreur (ECC)
L'utilisation du code de correction d'erreur (ECC) orthogonal à deux niveaux à contrôle de
redondance cyclique (CRC) fournit une très faible probabilité de rencontre d'une erreur matérielle.
Pendant le processus de lecture, la correction ECC est effectuée à la volée sans affecter le flux de la
bande.
Il y a deux niveaux de code de correction d'erreur (ECC). Ces deux niveaux sont orthogonaux ;
c'est-à-dire qu'un mot de code ECC à un niveau intersecte d'autres mots de code ECC sur l'autre
niveau une seule fois, ce qui signifie qu'ils n'auront qu'un symbole en commun. Les deux niveaux
sont C1 et C2.
ECC C1
Tandis que les données sont écrites en mémoire à partir de l'unité de traitement des données,
l'interface DMA / ECC génère des octets ECC C1 et les écrit en mémoire.
À mesure que les données sont écrites sur la bande, l'ECC C1 est vérifié et une interruption est
générée en cas d'erreur. L'ECC C1 lu en mémoire est l'ECC écrit sur la bande.
Lorsque des données sont lues sur la bande et stockées en mémoire, l'ECC C1 est vérifié.
•
Si l'ECC C1 est correct, le bit « Valide » de cette paire de mots de code est défini.
•
Sinon, un pointeur sur la paire de mots de code non valide est passé au moteur de correction
ECC C1.
•
Si le moteur de correction ECC C1 peut corriger l'erreur, les octets corrigés sont écrits
en mémoire, et le bit Valide est défini.
•
Sinon, le bit Valide reste vide.
À mesure que les données sont lues en mémoire sur le processeur de données pour la
décompression, l'ECC C1 est à nouveau vérifié et une interruption est générée s'il n'est pas correct.
ECC C2
L'ECC C2 implique trois opérations distinctes :
1.
Encodage : génération d'octets ECC C2 à partir d'octets de données (effectué par le
matériel coprocesseur ECC)
2.
Décodage : génération de syndromes ECC à partir d'octets de données et ECC, recherchant
les zéros (effectué par le matériel coprocesseur ECC)
3.
Correction : génération de données corrigées à partir de syndromes.
La correction dépend du nombre et des types d'erreurs concernés :
•
Pour une paire de mots de code C1 connue dans une erreur d'un jeu de sous-données (mot de
code C2), cette opération est effectuée par le matériel coprocesseur ECC.
•
Pour deux paires de mots de code C1 connues dans une erreur, la matrice est préétablie par
le micrologiciel, et la correction est effectuée par le matériel.
•
Pour une ou plusieurs paires de mots de code C1 inconnues, les syndromes sont générés par
le matériel, l'emplacement des erreurs est préétabli par le micrologiciel, la matrice est
préétablie par le micrologiciel et la correction est effectuée par le matériel.
Intégrité des données
33