FR 2906926 A1 20080411 FR 0707040 A 20071008 1 La présente invention concerne un procédé et un dispositif pour la reprise d'une erreur de relance améliorée pour des disques de stockage à bande magnétique. Le procédé et le dispositif sont basés sur un motif de symboles à n dimensions (en règle générale des octets) qui sont codés par un code de correction des erreurs (ECC) avec un code de correction des symboles (en règle générale un code Reed-Solomon (RS)) dans chaque dimension (schéma de code de produit). Description de l'art antérieur Lorsqu'un système de stockage tel qu'un système de stockage à bande magnétique, lit des données à partir d'un support de stockage, tel qu'une mémoire à bande magnétique, des données erronées sont reçues occasionnellement en raison de défauts dans le support, de débris de bande magnétique, etc. Lorsque des données erronées sont détectées par un système de détection des erreurs, une tentative est faite en vue de corriger les données, ou de tester les données afin de déterminer si les données peuvent être corrigées. Lorsque le processus de correction n'est pas réussi, la bande magnétique doit être ré-enroulée, et des données doivent être lues à nouveau. Ceci est désigné par "relecture". Après que la relecture est exécutée, le processus de détection des erreurs et de correction des erreurs est répété. Le processus de relecture et le processus de code de correction des erreurs (ECC) sont exécutés un nombre de fois prédéterminé. Si l'erreur ne peut pas être corrigée après le nombre de tentatives prédéterminé, les données ne peuvent pas être reprises et l'erreur est désignée par "erreur fatale". Les processus de relecture et de code de correction des erreurs (ECC) ont été exécutés conventionnellement en tant que deux processus séparés pour des systèmes de stockage à bande magnétique. B0922FR 2906926 2 Le brevet US n 6 920 005, cependant, décrit la combinaison du processus de relecture, pour un dispositif de stockage, avec le processus de correction des erreurs. Dans la procédure décrite dans le brevet 5 US n 6 920 005, les performances d'une opération de reprise sur erreur en cours sont comparées aux performances d'une opération de reprise sur erreur précédente. Ceci est accompli en appliquant des paramètres au processus de reprise, et en comparant les 10 performances telles que par exemple, des statistiques de canal, de l'opération de reprise avec celles d'une opération de reprise précédente, et ensuite en ajoutant des paramètres. RÉSUMÉ DE L'INVENTION 15 Un objet de la présente invention est d'améliorer des processus combinés de relecture et de code de correction des erreurs (ECC) en introduisant plus d'une dimension pour un ensemble de données dans le processus de code de correction des erreurs (ECC). L'utilisation 20 de plus d'une dimension pour un ensemble de données dans le processus de code de correction des erreurs (ECC) offre la possibilité de procédures de décodage d'erreurs plus sophistiquées, comme, par exemple, le décodage par code de correction des erreurs (ECC) 25 itératif, dans lequel le décodage est exécuté dans chaque dimension itérativement jusqu'à ce qu'aucune nouvelle erreur ne puisse être reprise, ou jusqu'à ce qu'un autre critère d'arrêt soit satisfait ou atteint. L'introduction d'un agencement de code à n dimensions, 30 n étant un nombre entier supérieur à un, fournit également la possibilité de fusionner le processus de relecture et le processus de code de correction des erreurs (ECC) en un processus unique d'une façon plus B0922FR 2906926 3 sophistiquée avec une meilleure probabilité de reprise de données. Au lieu de comparer les performances d'une opération de reprise sur erreur en cours avec une 5 opération de reprise sur erreur précédente, le système et le procédé selon l'invention comparent le résultat du processus de correction, à savoir une carte des erreurs. Une carte des erreurs est une carte comportant des symboles erronés dans l'ensemble de données. Le 10 résultat pour le processus de correction en cours, à savoir la carte des erreurs, peut être différent du résultat d'un processus de correction précédent en raison d'erreurs distribuées de façon aléatoire ou de variations en termes de débris pour chaque relecture. 15 Les performances du processus lui-même ne sont pas mesurées, et les paramètres dans le processus ne sont ni modifiés ni ajoutés. Conformément au procédé et au dispositif de l'invention, des positions d'erreurs de symboles qu'il 20 est possible de corriger sont contrôlées lors de chaque passage de relecture. Dans chaque passage de relecture, le nombre d'erreurs de symboles et de positions d'erreurs de symboles peut changer selon le niveau du rapport signal / bruit (SNR) dans le canal, et la 25 quantité de débris sur la bande magnétique. Les paramètres dans les canaux, tels que les valeurs hors- piste, les valeurs de polarisation de résistance magnétique (MR), les paramètres de contrôle automatique de gain (AGC), etc., ne sont pas ajustés à chaque 30 passage de relecture. A l'inverse, le procédé et le dispositif de l'invention sont basés sur des variations naturelles dans les positions d'erreurs pour les B0922FR 2906926 4 symboles protégés par le code de correction des erreurs (ECC). La carte des erreurs susmentionnée avec des positions d'erreurs variables est construite, et le processus de correction itératif est exécuté. Dans le 5 procédé et le dispositif de l'invention, des paramètres ne sont ni appliqués ni ajoutés dans le processus de reprise. Au contraire, après chaque comparaison, la carte des erreurs est mise à jour en déduisant des erreurs de symboles de la carte des erreurs, et en 10 remplaçant les symboles de données erronés correspondants par des symboles de données corrects. DESCRIPTION DES DESSINS Les figures 1A, 1B, 1C, 1D, 2A et 2B illustrent des exemples de cartes des erreurs en vue d'expliquer le procédé selon la présente invention. 15 La figure 3 illustre un sous-ensemble de données C2 avec des mots codes C2 et Cl. Les figures 4A et 4B illustrent un sous-ensemble de données C3 avec le mot code C3. La figure 5 est un organigramme pour un mode de 20 réalisation du processus principal dans l'algorithme itératif selon la présente invention. La figure 6 est un organigramme d'un mode de réalisation du sous-processus de décodage d'erreurs dans l'algorithme itératif de l'invention. 25 La figure 7 est un organigramme d'un mode de réalisation du sous-processus de décodage à effacement dans l'algorithme itératif de l'invention. La figure 8 est un schéma de principe d'un dispositif selon l'invention, fonctionnant selon 30 l'algorithme itératif de l'invention. B0922FR 2906926 5 DESCRIPTION DES MODES DE RÉALISATION PRÉFÉRÉS Les erreurs reçues lors de la lecture de données à partir d'un support de stockage comprennent en règle générale deux types d'erreurs distincts, à savoir, des erreurs aléatoires associées au rapport signal / bruit 5 (SNR) dans le canal et aux débris de bande magnétique, et les erreurs de défaut sur le support. Le défaut sur le support est constant pour un ensemble de données déterminé, mais les erreurs aléatoires changent à chaque fois que l'ensemble de données est lu. 10 Étant donné que la largeur de piste et la longueur de bit diminuent, et qu'un nombre supérieur de canaux est introduit dans les produits de stockage à bande magnétique, la quantité d'erreurs liées au rapport SNR augmentera, par comparaison avec le nombre d'erreurs 15 occasionné par des défauts sur le support. Les erreurs liées au rapport SNR sont distribuées aléatoirement. Ceci signifie que le même ensemble de données est lu deux fois, la quantité d'erreurs occasionnées par le rapport SNR sera approximativement la même, mais on 20 peut s'attendre à ce qu'il y ait une variation des positions d'erreur. Les erreurs occasionnées par des défauts sur le support auront les mêmes positions d'erreurs d'une lecture à l'autre. La probabilité de relecture réussie d'un ensemble de données impossible à 25 corriger et d'obtention d'un meilleur échantillon de l'ensemble de données qui peut être corrigé, sera plus faible à mesure que le pourcentage des erreurs connexes au rapport SNR distribuées aléatoirement augmente dans le système. 30 Pour compenser ce problème et améliorer le succès de la reprise de données, les relectures peuvent être combinées avec le processus de code de correction des erreurs (ECC) en un processus de reprise sur erreur unique. En outre, en utilisant un code de produit itératif, tel qu'un code Reed-Solomon à n dimensions, B0922FR 2906926 6 pour la correction des erreurs en combinaison avec le processus de relecture, des capacités de correction améliorées peuvent être obtenues, par comparaison avec les procédés conventionnels utilisant un processus de 5 relecture et un processus de correction des erreurs séparés. Bien que des codes de Reed-Solomon (RS) soient utilisés comme exemple, l'amélioration réalisée par le procédé décrit ci-dessus peut être obtenue en utilisant d'autres codes produit de correction des symboles en 10 dehors des codes RS à n dimensions, comme, par exemple, des codes LPDC. Conformément à l'invention, un code à n dimensions, tel qu'un code de Reed-Solomon, est combiné à un algorithme de décodage itératif approprié à une 15 "recherche croisée" et à la correction des symboles erronés dans les n dimensions. Le procédé et le dis-positif selon l'invention sont basés sur le concept de réduction de symboles dans une carte d'effacement, ce qui signifie qu'une carte d'effacement conventionnelle 20 est générée initialement, et des symboles (OK) non erronés sont déduits de la carte lorsque les symboles sont corrigés par le système de code de correction des erreurs (ECC). Le procédé selon l'invention pour la correction 25 d'erreurs dans un ensemble de données lu à partir d'un support de stockage, comporte les étapes consistant à : (a) lire un ensemble de données qui contient des erreurs à partir d'un support de stockage ; (b) stocker l'ensemble de données dans une mémoire en 30 tant que première structure de mémoire multidimensionnelle ; (c) appliquer un algorithme de correction d'erreurs et de décodage itératif à ladite première structure de mémoire dans toutes les dimensions jusqu'à ce 35 qu'au moins un premier critère d'arrêt prédéterminé soit satisfait ; B0922FR 2906926 7 (d) construire une première carte des erreurs de toutes les erreurs restantes dans ladite première structure de mémoire ; (e) exécuter une relecture dudit ensemble de données à 5 partir dudit support et construire une seconde carte des erreurs représentant lesdites erreurs dans ledit ensemble de données, et stocker l'ensemble de données relu en tant que seconde structure de mémoire multidimensionnelle, avec 10 ladite seconde carte des erreurs ; (f) appliquer ledit algorithme de correction et de décodage itératif au niveau de ladite seconde structure de mémoire dans toutes les dimensions jusqu'à ce qu'au moins un second critère 15 prédéterminé soit satisfait ; (g) construire une nouvelle seconde carte des erreurs représentant les erreurs restantes dans ladite seconde structure de mémoire ; (h) comparer ladite nouvelle seconde carte des erreurs 20 et ladite première carte des erreurs en vue d'identifier les données transmissibles qui sont correctes dans ladite nouvelle seconde carte des erreurs, mais qui sont erronées dans ladite première carte des erreurs ; 25 (i) transférer, dans ladite première carte des erreurs, lesdites données transmissibles et mettre à jour la première carte des erreurs en vue d'obtenir une première carte des erreurs mise à jour, et mettre à jour ladite première structure 30 de données en en supprimant des erreurs indiquées par ladite première carte des erreurs mise à jour, en vue d'obtenir une première structure de données mise à jour ; (j) appliquer ledit algorithme de correction et de 35 décodage itératif dans toutes les dimensions au B0922FR 2906926 8 niveau de ladite première structure de données mise à jour ; et (k) répéter les étapes (e) à (j) jusqu'à ce qu'un troisième critère d'arrêt prédéterminé soit 5 satisfait. Le procédé peut être mis en œuvre avec un système de stockage de données avec correction des erreurs, qui interagit avec un support de stockage de données, comportant : une tête de lecture adaptée pour interagir 10 avec ledit support de stockage de données ; une unité de commande connectée à ladite tête de lecture qui actionne ladite tête de lecture en vue de lire des données à partir dudit support de stockage de données ; et une unité de correction des erreurs connectée à 15 ladite unité de commande qui est utilisée sur lesdites données lues par ladite tête de lecture en vue de corriger des erreurs de celle-ci. Une vue d'ensemble du procédé de l'invention est donnée ci-après. 20 Un ensemble de données impossibles à corriger est lu à partir d'un support de stockage. Facultativement, une carte des erreurs initiale est construite à partir d'un contrôle par redondance cyclique (CRC) ou d'un contrôle de syndrome rapide. L'ensemble de données et 25 la carte des erreurs initiale correspondante sont stockés dans une structure de mémoire S1. Un exemple d'une telle carte des erreurs initiale dans cette structure de mémoire S1 est montré sur la figure 1 A. L'algorithme de décodage et de correction itératif 30 est exécuté sur S1 dans toutes les dimensions, indiquées ci-dessous en tant que dimensions Cl, C2 et C3, jusqu'à ce qu'un critère d'arrêt prédéterminé soit satisfait. Une carte des erreurs des erreurs restantes dans la structure de mémoire S1 est construite. Un 35 exemple d'une telle carte des erreurs est montré sur la figure 1B. L'ensemble de données est relu à partir du B0922FR 2906926 9 support et stocké en tant que seconde structure de mémoire S2. Une carte des erreurs initiale dans la structure de mémoire S2 après la relecture est montrée sur la figure 1C. L'algorithme de décodage itératif est 5 exécuté sur la structure de mémoire S2, et une carte des erreurs des erreurs restantes dans la structure de mémoire S2 est construite. Une telle carte des erreurs dans la structure de mémoire S2 est montrée sur la figure 1D. Les cartes des erreurs dans les structures 10 de mémoire S1 et S2 sont comparées. Des données OK de S2 qui sont indiquées comme erronées dans la structure de mémoire S1, sont transférées de S2 à Si, et la carte des erreurs S1 est mise à jour en déduisant les erreurs corrigées de cette manière. Une telle carte des erreurs 15 mise à jour est montrée sur la figure 2A. L'algorithme de décodage itératif est de nouveau exécuté sur S1. S'il existe de nouvelles corrections réussies, la carte des erreurs S1 est de nouveau mise à jour. Une telle carte des erreurs mise à jour est 20 montrée sur la figure 2B. Le procédé retourne ensuite à une autre relecture et le processus est à nouveau répété un nombre de fois prédéterminé, ou bien le processus est arrêté si aucune erreur n'est rencontrée dans la structure de mémoire 25 S1. Le procédé de l'invention est expliqué en tant qu'un algorithme itératif à trois dimensions Cl, C2 et C3. L'algorithme peut cependant être étendu à plus de trois dimensions. L'ensemble de données tridimensionnel 30 utilisé dans l'exemple est formé pour des mots codes de code de correction des erreurs (ECC) dans chaque dimension, et forme ainsi un cube tridimensionnel avec des données codées. Ce cube est désigné ci-après sous le nom d'ensemble de données. 35 Un mot code est défini comme la plus petite quantité de données qui peut être codée ou décodée par B0922FR 2906926 10 le code de correction des erreurs (ECC) qui est destiné à être utilisé. Un mot code est composé de symboles de parité et de données. Un mot code Cl est formé par des symboles dans la 5 dimension des abscisses (x) dans le cube. Un mot code C2 est formé par des symboles dans la dimension des ordonnées (y) dans le cube, et un mot code C3 est formé par des symboles dans la dimension de cote (z) dans le cube. 10 Une tranche à travers le cube est montrée sur la figure 3, représentant un sous-ensemble de données C2. Le sous-ensemble de données C2 est défini comme un ensemble de données formé par des mots codes C2 et Cl et représente une zone carrée dans le plan x - y. Le 15 nombre d'ensembles de données C2 est égal au nombre de symboles dans un mot code C3. Un sous-ensemble de données C3 est défini en tant qu'un ensemble de données formé par des mots codes C3 et C2, et équivaut à une carré dans le plan y - z. Le 20 nombre de sous-ensembles de données C3 est égal au nombre de symboles dans un mot code Cl, tel qu'illustré sur les figures 4A et 4B. Un contrôle de syndrome (ou contrôle CRC supplé- mentaire) dans la dimension Cl pour les mots codes Cl 25 est utilisé en tant qu'information d'effacement pour la dimension C2. L'information est utilisée pour cons-truire la carte d'effacement initiale. Tel qu'utilisé ci-dessus, le terme effacement indique des erreurs de symboles dans un mot code, les 30 positions des symboles défectueux étant connues. Les positions défectueuses sont utilisées en tant que positions d'erreurs à partir de mots codes dans une autre dimension dans le cube. Le terme erreur de symboles tel qu'utilisé ci-dessus indique une erreur 35 dans un mot code qui exige de l'algorithme de décodage qu'il décode les positions défectueuses dans le mot B0922FR 2906926 11 code en utilisant l'information de symboles dans le mot code lui-même. L'algorithme commence par une carte d'effacement initiale. Les mots codes dans les différentes dimen- 5 sions sont alors décodés avec une détection et une correction d'erreur, et une carte des erreurs est produite en supprimant des positions d'erreurs de symboles de la carte d'effacement. La nouvelle carte des erreurs est utilisée en tant qu'entrée dans un 10 algorithme de décodage à effacement, et un processus de correction, dans les différentes dimensions. L'algorithme utilise une carte pour l'information d'effacement et d'erreur. C'est l'utilisation de la carte dans le procédé de décodage et le décodage 15 d'erreurs ou à effacement qui permet d'effectuer une détermination si l'information omise dans la carte est une information d'effacement ou une information d'erreur. La figure 5 montre des détails supplémentaires de 20 l'algorithme itératif principal. Après avoir lancé l'algorithme, une carte d'effacement est construite dans toutes les dimensions sur la base d'un contrôle par redondance cyclique (CRC) ou d'un contrôle de syndrome à partir des canaux lus. Dans l'étape suivante, 25 un décodage d'erreurs est exécuté et le processus de correction est mis en oeuvre pour tous les sous-ensembles de données C2. La carte d'effacement est mise à jour en déduisant des erreurs de la carte. Des détails du procédé de déduction sont montrés sur la figure 6. 30 Ensuite, le décodage et la correction d'erreurs sont exécutés pour tous les sous-ensembles de données C3, et la carte d'effacement est mise à jour en déduisant des erreurs de la carte. La correction et le décodage à effacement sont 35 exécutés pour tous les mots codes dans toutes les B0922FR 2906926 12 directions restantes, et la carte d'effacement est mise à jour. S'il existe des erreurs de symboles corrigées par le processus de décodage à effacement et d'erreur 5 susmentionné, un contrôle est exécuté en vue de rechercher si d'éventuelles erreurs de symboles sont encore présentes dans la carte d'effacement. Si la réponse à cette enquête est oui , alors l'algorithme retourne à la correction et au décodage d'erreurs pour 10 tous les sous-ensembles de données C2, et l'algorithme est réitéré. Facultativement, avant d'initier le processus de correction et de décodage d'erreurs pour tous les sous-ensembles de données C2 dans cette itération suivante, 15 la correction et le décodage d'erreurs peuvent être exécutés pour tous les mots codes Cl, et la carte d'effacement peut être mise à jour en déduisant des erreurs de cela. S'il n'y a aucune erreur de symboles présente dans 20 la carte d'effacement, l'algorithme itératif est arrêté, et le processus de reprise principal est poursuivi. Ce résultat est également le même lorsque la réponse à l'enquête précédente concernant des erreurs de symboles corrigées par les processus de décodage 25 d'erreurs ou à effacement est non . Un organigramme relatif au processus de décodage d'erreurs est montré sur la figure 6, qui s'applique à toutes les dimensions et est par conséquent décrit de manière générique pour des sous-ensembles de données 30 Cx. Un sous-ensemble de données Cx à traiter est sélectionné, et le mot code suivant dans le sous- ensemble de données choisi est sélectionné, et le nombre d'erreurs dans ce mot code est calculé. Une 35 enquête est exécutée en vue de savoir s'il y a des erreurs quelconques dans ce mot code. Si la réponse est B0922FR 2906926 13 oui , une autre enquête est exécutée en vue de savoir si le mot code peut être corrigé, si la réponse est non , alors une enquête est exécutée en vue de savoir s'il y a davantage de mots codes dans le sous- 5 ensemble de données à traiter. Si la réponse à l'enquête consistant à savoir s'il y a des erreurs dans le mot code est non , alors les erreurs de symboles sont déduites de la carte d'effacement lesquelles sont indiquées à ce moment en 10 tant que symboles erronés, et l'algorithme passe également à l'enquête susmentionnée consistant à savoir s'il reste des mots codes à traiter dans le sous-ensemble de données. Si la réponse à cette enquête est oui , l'algorithme retourne par une boucle au mot 15 code sélectionné suivant, et le procédé susmentionné est répété. Si la réponse à cette enquête est non , alors une enquête est exécutée en vue de savoir s'il reste des ensembles de données Cx à traiter. Si la réponse est oui l'algorithme retourne par une 20 boucle en vue d'exécuter une sélection du sous-ensemble de données suivant Cx à traiter. Si la réponse à cette enquête est non , alors le décodage d'erreurs est terminé pour tous les sous-ensembles de données Cx, et le processus principal est poursuivi. 25 Comme noté ci-dessus, dans l'itération susmentionnée, il y a une enquête consistant à savoir si le mot code peut être corrigé. Si la réponse à cette enquête est "oui", alors l'algorithme passe au calcul des positions d'erreurs de symboles et à la vérification con- 30 sistant à déterminer si les positions d'erreurs calculées sont des positions valides dans la carte d'effacement. Si les positions d'erreurs ne sont pas valides, une erreur de décodage a été occasionnée, et cette étape de décodage est ignorée, aucune correction n'est 35 exécutée et aucune déduction d'erreur de la carte d'effacement ne se produit. L'algorithme passe alors à B0922FR 2906926 14 l'enquête susmentionnée consistant à déterminer s'il reste des mots codes dans le sous-ensemble de données à traiter. Si la position d'erreur est valide, les erreurs 5 dans le mot code sont corrigées, et la carte d'effacement est mise à jour en déduisant les erreurs corrigées de la carte. L'algorithme passe ensuite une nouvelle fois à l'enquête consistant à déterminer s'il reste des mots codes dans le sous-ensemble de données à 10 traiter. L'algorithme de décodage à effacement est illustré dans un organigramme sur la figure 7. L'algorithme de décodage à effacement est initié par les mots codes dans la dimension Cl, et un mot code dans cette dimen- 15 sion est sélectionné pour le traitement. L'information d'erreur pour le mot code choisi est trouvée à partir de la carte d'effacement déduite, et cette information est utilisée en tant qu'information d'effacement étant donné que les positions erronées dans le mot code sont 20 connues. Une enquête est alors exécutée en vue de déterminer si le mot code peut être corrigé. Si le mot code peut être corrigé, les effacements dans le mot code sont corrigés, et la carte d'effacement est mise à 25 jour en déduisant les effacements corrigés de la carte d'effacement. L'algorithme enquête alors en vue de déterminer s'il reste des mots codes dans la dimension à traiter. Si le mot code ne peut pas être corrigé, 30 l'algorithme passe une nouvelle fois à cette même enquête consistant à savoir s'il reste des mots codes à traiter. Si la réponse est "oui", l'algorithme retourne par une boucle au mot code sélectionné suivant dans la dimension choisie et le processus susmentionné est 35 réitéré à nouveau. B0922FR 2906926 15 S'il n'y a plus de mots codes dans la dimension à traiter, une enquête est exécutée en vue de savoir s'il reste des dimensions à traiter. Le cas échéant, la dimension suivante à traiter est sélectionnée, et 5 l'algorithme revient pour sélectionner le premier mot code dans la dimension sélectionnée à traiter, et l'itération susmentionnée est de nouveau exécutée. S'il n'y a plus de dimensions à traiter, une enquête est exécutée en vue de déterminer si une 10 quelconque correction d'effacement subséquente a été occasionnée dans l'itération qui vient d'être exécutée. Si la réponse est non , le processus de décodage à effacement est arrêté, et le processus principal continue. 15 Si une correction d'effacement réussie dans l'itération se produit, alors une nouvelle itération est commencée. Si la carte d'effacement est vide, cette itération sera la dernière itération. L'algorithme de décodage de code de correction des erreurs (ECC) 20 fonctionne en mode de contrôle, plutôt qu'en mode de correction à effacement. La nouvelle itération commence avec les mots codes dans la dimension Cl au début de l'algorithme montré sur la figure 7. Un schéma de principe de base d'un dispositif pour 25 la mise en oeuvre de la procédure susmentionnée est montré sur la figure 8. Le dispositif comprend une tête de lecture - écriture 1 qui interagit avec un support de stockage de données 2 d'une façon connue pour écrire des données numériques sur, et pour lire des données 30 numériques à partir du, support de stockage de données 2. À cette fin, la tête de lecture - écriture 1 est en communication avec une unité de commande 3 par l'intermédiaire d'un amplificateur de lecture qui est opérationnel en mode écriture, et d'un amplificateur de 35 lecture 5 qui est opérationnel en mode lecture. L'unité de commande 3 est en communication avec une unité de B0922FR 2906926 16 code de correction des erreurs (ECC) 6, dans laquelle le procédé décrit ci-dessus est exécuté. Bien que des modifications et des changements puissent être suggérés par l'homme du métier, l'inten- 5 tion de l'inventeur est d'intégrer dans le brevet accordé pour la présente invention tous les changements et toutes les modifications qui sont, de façon claire et raisonnée, dans la portée de sa contribution à la technique. B0922FR REVENDICATIONS 1. Procédé pour la correction d'erreurs dans un ensemble de données lu à partir d'un support de stockage, comportant les étapes consistant à : (a) lire un ensemble de données qui contient des erreurs à partir d'un support de stockage ; (b) stocker l'ensemble de données dans une mémoire en tant que première structure de mémoire multidimensionnelle ; (c) appliquer un algorithme de correction d'erreurs et de décodage itératif à ladite première structure de mémoire dans toutes les dimensions jusqu'à ce qu'au moins un premier critère d'arrêt prédéterminé soit satisfait ; (d) construire une première carte des erreurs de toutes les erreurs restantes dans ladite première structure de mémoire ; (e) exécuter une relecture dudit ensemble de données à partir dudit support et construire une seconde carte des erreurs représentant lesdites erreurs dans ledit ensemble de données, et stocker l'ensemble de données relu en tant que seconde structure de mémoire multidimensionnelle, avec ladite seconde carte des erreurs ; (f) appliquer ledit algorithme de correction et de décodage itératif au niveau de ladite seconde structure de mémoire dans toutes les dimensions jusqu'à ce qu'au moins un second critère prédéterminé soit satisfait ; (g) construire une nouvelle seconde carte des erreurs représentant les erreurs restantes dans ladite seconde structure de mémoire ; (h) comparer ladite nouvelle seconde carte des erreurs et ladite première carte des erreurs en vue d'identifier les données transmissibles qui sont correctes dans ladite nouvelle seconde carte des B0922FR 2906926 18 erreurs, mais qui sont erronées dans ladite première carte des erreurs ; (i) transférer, dans ladite première carte des erreurs, lesdites données transmissibles et mettre 5 à jour la première carte des erreurs en vue d'obtenir une première carte des erreurs mise à jour, et mettre à jour ladite première structure de données en en supprimant des erreurs indiquées par ladite première carte des erreurs mise à jour, 10 en vue d'obtenir une première structure de données mise à jour ; (j) appliquer ledit algorithme de correction et de décodage itératif dans toutes les dimensions au niveau de ladite première structure de données 15 mise à jour ; et (k) répéter les étapes (e) à (j) jusqu'à ce qu'un troisième critère d'arrêt prédéterminé soit satisfait. 2. Procédé selon la revendication 1 comprenant 20 le stockage dudit ensemble de données à l'étape (b) en tant que première structure de mémoire tridimensionnelle, et le stockage de l'ensemble de données relu à l'étape (e) en tant que seconde structure de mémoire tridimensionnelle. 25 3. Procédé selon la revendication 1 comportant l'utilisation dudit au moins un critère d'arrêt, comme premier critère d'arrêt à l'étape (c) et comme second critère d'arrêt à l'étape (f). 4. Procédé selon la revendication 1 comprenant 30 l'utilisation d'un nombre prédéterminé de répétitions en tant que troisième critère d'arrêt à l'étape (k). 5. Procédé selon la revendication 1 comprenant l'utilisation d'un critère d'arrêt "aucune erreur restante laissée dans ladite première structure de 35 mémoire mise à jour" en tant que troisième critère d'arrêt à l'étape (k). B0922FR 2906926 19 6. Procédé selon la revendication 1 comprenant, après l'étape (a), l'étape consistant à générer une carte des erreurs initiale représentant lesdites erreurs dans la lecture de l'ensemble de données à 5 l'étape (a) et l'étape consistant à stocker ladite carte des erreurs initiale à l'étape (b), avec ladite première structure de mémoire, et générer ladite première carte des erreurs à l'étape (d) en éliminant les erreurs dans ladite carte des erreurs initiale qui 10 sont identifiées à l'étape (c). 7. Procédé selon la revendication 6 dans lequel chacune des première et seconde structures de mémoire comprend trois dimensions Cl, C2 et C3 comprenant chacune une pluralité de sous-ensembles de données, et 15 comportant l'application d'un algorithme de décodage et de correction itératif à chacune des étapes (c), (f) et (j) comprenant les étapes consistant à : (1) générer une carte d'effacement dans trois dimensions correspondant à Cl, C2, et C3 ; 20 initier ladite carte des erreurs en utilisant ladite carte d'effacement comme point de départ ; (2) pour tous les sous-ensembles de données C2, traiter chaque sous-ensemble de données d'un premier à un dernier nombre de mots codes qui s'y 25 trouvent et, pour chaque mot code, déterminer si ce mot code peut être corrigé et, le cas échéant, calculer des positions d'erreurs et contrôler lesdites positions d'erreurs en vue de déterminer la correspondance à ladite carte d'effacement et, 30 en cas de défaut de correspondance, indiquer l'occurrence d'une erreur de décodage et, en cas de correspondance avérée, supprimer les symboles non erronés de ladite carte d'effacement et, si ce mot code ne peut pas être corrigé, continuer 35 avec un mot code suivant dans les sous-ensembles de données C2 ; B0922FR 2906926 20 (3) pour tous les sous-ensembles de données C3, traiter chaque sous-ensemble de données d'un premier à un dernier nombre de mots codes qui s'y trou-vent et, pour chaque mot code, déterminer si ce 5 mot code peut être corrigé et, si oui, calculer des positions d'erreur qui s'y trouvent et contrôler lesdites positions d'erreurs en vue de déterminer la correspondance à ladite carte d'effacement et, en cas de défaut de corres- 10 pondance, indiquer l'occurrence d'une erreur de décodage et, en cas de correspondance, supprimer les symboles non erronés de ladite carte d'effacement et, si ce mot code ne peut pas être corrigé, continuer avec un mot code suivant dans 15 les sous-ensembles de données C3 ; (4) pour chaque mot code dans chacune desdites dimensions Cl, C2 et C3, récupérer des positions d'erreurs respectives pour ce mot code à partir de l'étape (2) et déterminer si ce mot code peut 20 être corrigé avec l'information d'effacement dans ladite carte d'effacement et, si oui, corriger ce mot code et, si non, continuer à un mot code suivant ; et répéter les étapes (1) à (4) tant que des mots 25 codes continuent à être corrigés. 8. Système de stockage de données avec correction des erreurs, qui interagit avec un support de stockage de données, comportant une tête de lecture adaptée pour interagir avec ledit support de 30 stockage de données ; une unité de commande connectée à ladite tête de lecture qui actionne ladite tête de lecture en vue de lire des données à partir dudit support de stockage de données ; et une unité de correction des erreurs connectée à ladite unité de 35 commande qui est utilisée sur lesdites données lues par B0922FR 2906926 21 ladite tête de lecture en vue de corriger des erreurs de celle-ci ; et comportant les étapes consistant à : (a) lire un ensemble de données qui contient des erreurs à partir d'un support de stockage ; 5 (b) stocker l'ensemble de données dans une mémoire en tant que première structure de mémoire multidimensionnelle ; (c) appliquer un algorithme de correction d'erreurs et de décodage itératif à ladite première structure 10 de mémoire dans toutes les dimensions jusqu'à ce qu'au moins un premier critère d'arrêt prédéterminé soit satisfait ; (d) construire une première carte des erreurs de toutes les erreurs restantes dans ladite première 15 structure de mémoire ; (e) exécuter une relecture dudit ensemble de données à partir dudit support et construire une seconde carte des erreurs représentant lesdites erreurs dans ledit ensemble de données, et stocker 20 l'ensemble de données relu en tant que seconde structure de mémoire multidimensionnelle, avec ladite seconde carte des erreurs ; (f) appliquer ledit algorithme de correction et de décodage itératif au niveau de ladite seconde 25 structure de mémoire dans toutes les dimensions jusqu'à ce qu'au moins un second critère prédéterminé soit satisfait ; (g) construire une nouvelle seconde carte des erreurs représentant les erreurs restantes dans ladite 30 seconde structure de mémoire ; (h) comparer ladite nouvelle seconde carte des erreurs et ladite première carte des erreurs en vue d'identifier les données transmissibles qui sont correctes dans ladite nouvelle seconde carte des 35 erreurs, mais qui sont erronées dans ladite première carte des erreurs ; B0922FR 2906926 22 (i) transférer, dans ladite première carte des erreurs, lesdites données transmissibles et mettre à jour la première carte des erreurs en vue d'obtenir une première carte des erreurs mise à 5 jour, et mettre à jour ladite première structure de données en en supprimant des erreurs indiquées par ladite première carte des erreurs mise à jour, en vue d'obtenir une première structure de données mise à jour ; 10 (j) appliquer ledit algorithme de correction et de décodage itératif dans toutes les dimensions au niveau de ladite première structure de données mise à jour ; et (k) répéter les étapes (e) à (j) jusqu'à ce qu'un 15 troisième critère d'arrêt prédéterminé soit satisfait. 9. Système de stockage de données selon la revendication 8, dans lequel ladite unité de correction des erreurs stocke ledit ensemble de données à l'étape 20 (b) en tant que première structure de mémoire tridimensionnelle, et stocke l'ensemble de données relu à l'étape (e) en tant que seconde structure de mémoire tridimensionnelle. 10. Système de stockage de données selon la 25 revendication 8, dans lequel ladite unité de correction des erreurs utilise ledit au moins un critère d'arrêt en tant que premier critère d'arrêt à l'étape (c) et en tant que deuxième critère d'arrêt à l'étape (f). 11. Système de stockage de données selon la 30 revendication 8, dans lequel ladite unité de correction des erreurs stocke un nombre prédéterminé de répétitions en tant que troisième critère d'arrêt à l'étape (k). 12. Système de stockage de données selon la 35 revendication 8, dans lequel ladite unité de correction des erreurs utilise un critère d'arrêt "aucune erreur B0922FR 2906926 23 restante laissée dans ladite première structure de mémoire mise à jour" en tant que troisième critère d'arrêt à l'étape (k). 13. Système de stockage de données selon la 5 revendication 8, dans lequel ladite unité de correction des erreurs, après l'étape (a), génère une carte des erreurs initiale représentant lesdites erreurs dans l'ensemble de données lu à l'étape (a) et stocke ladite carte des erreurs initiale à l'étape (b), avec ladite 10 première structure de mémoire, et génère ladite première carte des erreurs à l'étape (d) en supprimant des erreurs dans ladite carte des erreurs initiale qui sont identifiées à l'étape (c). 14. Système de stockage de données selon la 15 revendication 13, dans lequel chacune desdites première et seconde structure de mémoire comporte trois dimensions Cl, C2 et C3 comportant chacune une pluralité de sous-ensembles de données, dans lequel ladite unité de correction des erreurs applique un 20 algorithme de décodage et de correction itératif à chacune des étapes (c), (f) et (j) en effectuant les étapes consistant à (1) générer une carte d'effacement dans trois dimensions correspondant à Cl, C2, et C3 ; (2) initier ladite carte des erreurs en utilisant 25 ladite carte d'effacement comme point de départ ; (3) pour tous les sous-ensembles de données C2, traiter chaque sous-ensemble de données d'un premier à un dernier nombre de mots codes qui s'y trouvent et, pour chaque mot code, en déterminant si ce mot code peut 30 être corrigé et, le cas échéant, calculer des positions d'erreurs et contrôler lesdites positions d'erreurs en vue de déterminer la correspondance à ladite carte d'effacement et, en cas de défaut de correspondance, indiquer l'occurrence d'une erreur de décodage et, en 35 cas de correspondance avérée, supprimer les symboles non erronés de ladite carte d'effacement et, si ce mot B0922FR 2906926 24 code ne peut pas être corrigé, continuer avec un mot code suivant dans les sous-ensembles de données C2 ; pour tous les sous-ensembles de données C3, traiter chaque sous-ensemble de données d'un premier à un 5 dernier nombre de mots codes qui s'y trouvent et, pour chaque mot code, déterminer si ce mot code peut être corrigé et, si oui, calculer des positions d'erreur qui s'y trouvent et contrôler lesdites positions d'erreurs en vue de déterminer la correspondance à ladite carte 10 d'effacement et, en cas de défaut de correspondance, indiquer l'occurrence d'une erreur de décodage et, en cas de correspondance, supprimer les symboles non erronés de ladite carte d'effacement et, si ce mot code ne peut pas être corrigé, continuer avec un mot code 15 suivant dans les sous-ensembles de données C3 ; (4) pour chaque mot code dans chacune desdites dimensions Cl, C2 et C3, récupérer des positions d'erreurs respectives pour ce mot code à partir de l'étape (2) et déterminer si ce mot code peut être 20 corrigé avec l'information d'effacement dans ladite carte d'effacement et, si oui, corriger ce mot code et, si non, continuer à un mot code suivant ; et répéter les étapes (1) à (4) tant que des mots codes continuent à être corrigés. B0922FR