FR 2762920 A1 19981106 FR 9705504 A 19970505 PROCEDE DE TRANSFERT DE DONNEES ENTRE UNE MEMOIRE DE MASSE A DISQUE OPTIQUE ET UN ORDINATEUR La présente invention concerne le transfert de données de dis- positifs de mémoire de masse vers des systèmes informatiques hôtes. L'invention concerne plus particulièrement un traitement d'erreur amélioré que l'on peut utiliser pour augmenter des vitesses de transfert de don- nées à partir d'un dispositif de mémoire de masse tel qu'une mémoire morte à disque optique, vers un bus de données d'un ordinateur person- net hôte. Des dispositifs de mémoire de masse optiques, tels que des dispositifs de mémoire morte à disque compact (ou CD-ROM) sont utilisés pour le stockage et la distribution de programmes et de structures de données, en particulier lorsque les programmes et les structures de don- nées sont trop grands pour être commodément distribués à des utilisa- teurs d'ordinateurs personnels ou d'autres petits systèmes informatiques. Des dispositifs CD-ROM et des dispositifs de mémoire de masse similai- res ont actuellement des vitesses d'accès aux données considérablement inférieures à celles de mémoires à circuits intégrés comme d'unités de stockage magnétiques à disque dur. Par conséquent, des formes de réa- lisation classiques de petits systèmes informatiques limitent le nombre d'accès à des dispositifs de mémoire de masse optiques qui sont effec- tués. Par exemple, des données de programme sont transférées d'un dis- que de stockage du type CD-ROM vers le disque dur magnétique du petit système informatique pour installer et configurer le programme. Une fois que les données de programme ont été chargées sur le disque dur ma- gnétique du petit ordinateur, il est fréquent que l'on n'accède plus à l'unité de disque optique au cours d'utilisations futures du programme. Certains programmes contiennent des structures de données audio vidéo ou autres qui ne sont pas transférées sur le disque dur ma- gnétique pour un stockage permanent; à la place, on accède à ces don- nées sur le CD-ROM pendant le fonctionnement du programme. En parti- culier pour de tels programmes, mais également pour d'autres applica- tions qui utilisent une mémoire de masse à CD-ROM, on désire conti- nuellement augmenter la vitesse à laquelle il est possible d'accéder à des données sur le CD-ROM et de les fournir aux bus de données du système informatique. D'un point de vue historique, le goulot d'étranglement prin- cipal pour le transfert de données à partir de la mémoire à CD-ROM a été la vitesse à laquelle des données sont lues sur le disque CD-ROM lui- même, plutôt que le contrôleur qui assemble les données sous un certain format et qui effectue la détection et la correction d'erreurs et les autres opérations de transfert de données. Pour s'attaquer à ce goulot d'étran- glement, on a augmenté la vitesse de rotation des CD-ROM jusqu'à une valeur un grand nombre de fois supérieure à la vitesse de rotation nomi- nale qui est fixée par les standards des CD-ROM. Par conséquent, des données sont lues sur le disque CD-ROM à des vitesses accrues, jus- qu'au point auquel des opérations du contrôleur de transfert de données limitent maintenant, ou peuvent limiter à brève échéance, les cadences de transfert de données. On introduit à l'heure actuelle des technologies qui font appel à des disques d'enregistrement de données à plus haute densité, et des perfectionnements supplémentaires qui sont en cours de développement procureront des densités d'enregistrement de données encore plus élevées. Les données sont lues dans ces systèmes de mé- moire de masse de densité supérieure à des cadences encore plus éle- vées, ce qui imposera des exigences encore plus importantes au contrô- leur de transfert de données. Il est nécessaire d'effectuer une variété d'opérations sur les données qui sont lues sur le disque CD-ROM avant que les données ne puissent être fournies aux bus de données du système informatique hôte. Ces opérations sont de façon générale familières à l'homme de l'art et elles comprennent le désembrouillage, la réorganisation, I'enregistrement en tampon, la correction d'erreurs et la détection d'erreurs. On peut trou- ver des informations supplémentaires concernant les opérations classi- ques qui sont effectuées dans le transfert de données à partir d'une mé- moire à disque CD-ROM vers un bus de données d'un système informati- que hôte dans le brevet des E.U.A. n 4 680 764 délivré à Suzuki et al., dans le brevet des E.U.A. n 4 802 152 délivré à Markvoort et al., et dans le brevet des E.U.A. n 5 581 715 délivré à Verinsky et al. La figure 1 il- lustre des aspects du contrôleur de CD-ROM décrit dans le brevet de Verinsky, que l'on pourrait utiliser pour commander le transfert de don- nées à partir d'un disque de mémoire CD-ROM vers le bus IDE d'un ordi- nateur hôte. Des données sont lues sur le disque CD-ROM en réfléchis- sant de la lumière laser sur la surface d'un disque tournant et en détec- tant les modulations qui sont introduites dans la lumière laser réfléchie par des variations optiques sur la surface du disque. Un convertisseur analogique-numérique convertit les modulations détectées en signaux numériques qui sont fournis sous la forme d'un train de bits série 10, pour être appliqués au contrôleur de CD-ROM. Les disques CD- ROM stockent des données qui sont de façon caractéristique moins aléatoires que ce qui serait optimal, ce qui fait que les données peuvent acciden- tellement présenter des signaux de synchronisation ou d'autres signaux de commande. Par conséquent, les données enregistrées sur le disque CD-ROM sont embrouillées. Les données qui sont extraites de la lumière réfléchie sont donc appliquées à un circuit de désembrouillage 12 et sont désembrouillées avant un traitement ultérieur. Un dispositif d'organisa- tion de données 14 réorganise en octets le train de bits de données série désembrouillées et il enregistre les données dans une mémoire tampon 16. Les données sont enregistrées sur un disque CD-ROM en secteurs d'environ 2 Ko et les données sont transférées du disque vers l'ordina- teur hôte secteur par secteur. Un secteur de données entier est donc en- registré dans la mémoire tampon avant que la correction d'erreurs et la détection d'erreurs ne commencent. Une fois qu'un secteur de données de 2 Ko provenant du dis- que CD-ROM est enregistré dans la mémoire tampon 16, la correction d'erreurs et la détection d'erreurs sont effectuées sur les données enre- gistrées. Les opérations de correction d'erreurs et de détection d'erreurs pour des systèmes de mémoire de masse à CD-ROM sont imposées dans une large mesure par la norme ISO/IEC-10149 pour l'enregistrement de données sur des disques CD-ROM. Des opérations classiques de codage de protection contre les erreurs, de correction d'erreurs, et de détection d'erreurs pour des systèmes de mémoire de masse à CD-ROM sont dé- crites dans le brevet des E.U.A. n 4 413 340 délivré à Odaka et al., et dans le brevet des E.U.A. n 4 680 764 délivré à Suzuki et ai. L'intégrité des données est maintenue au cours du transfert des données du CD- ROM vers l'ordinateur hôte par trois ensembles de données de correction d'erreurs, qui sont annexés aux données d'utilisateur dans le secteur: cent-soixante-douze octets de correction d'erreurs de parité P, cent qua- tre octets de correction d'erreurs de parité Q et quatre octets de code de détection d'erreurs (ou EDC). L'incorporation des données de parité P et de parité Q incorpore dans les données de CD-ROM un double code de Reed-Solomon entrelacé. Les données à l'intérieur du secteur peuvent être groupées en deux plans de données, à savoir un plan de bits de moindre poids, ou LSB, et un plan de bits de plus fort poids, ou MSB, chaque plan de données ayant une matrice de correction d'erreurs en- trelacée, comme celle qui est représentée sur la figure 2. La matrice re- présentée sur la figure 2 comporte quarante-trois vecteurs P consistant en vingt-quatre octets de données d'utilisateur, en combinaison avec deux octets de parité P, pour former des mots de code de Reed-Solomon (26, 24) sur GF(28). Vingt-six vecteurs Q s'étendent le long des diagona- les de la matrice et consistent en quarante-trois octets de données d'uti- lisateur et deux octets de parité Q formés par des mots de code de Reed- Solomon (45, 43) sur GF(28). Des données sont lues dans la mémoire tampon 16 (figure 1) sous la forme de vecteurs P et de vecteurs Q, des calculs de correction d'erreurs sont effectués par une logique de correc- tion d'erreurs 18 pour identifier des erreurs dans les données, et lorsque des erreurs sont trouvées, les équations d'erreur sont résolues pour cor- riger les erreurs. Lorsque des erreurs sont trouvées dans les vecteurs P et les vecteurs Q, les données dans la mémoire tampon 16 sont corrigées en remplaçant les octets de données erronés dans la mémoire tampon par des octets de données corrigés. Après que toutes les opérations de correction de données ont été effectuées, il est habituel de détecter si des erreurs restent dans les données corrigées, ou si des erreurs ont été introduites par les opéra- tions de correction. La détection d'erreurs est effectuée en utilisant un circuit de contrôle par redondance cyclique (ou CRC), dans lequel le bloc de données entier (-2000 octets x 8 bits) est traité comme un nombre binaire long qui est divisé par un polynôme de contrôle. Conformément à la norme ISO/IEC-10149, le polynôme de contrôle d'erreurs est P(x) = (x16 + x15 + x2 + 1).(x16 + x2 + x + 1). Les données enregistrées sur le CD-ROM comportent quatre octets de code de détection d'erreurs (EDC) ajoutés de façon que le nombre binaire long comprenant les données en- registrées sur le CD-ROM soit divisible de façon entière par le polynôme de contrôle d'erreur. Si le nombre binaire long des données qui sont transférées à partir du CD-ROM est divisible de façon entière par le poly- nôme de contrôle d'erreurs, on suppose qu'il ne reste pas d'erreurs sup- plémentaires dans les données corrigées. Si un reste différent de zéro résulte de la division de contrôle d'erreurs, alors il reste des erreurs dans les données corrigées, et une correction d'erreurs supplémentaire est né- cessaire. Selon une variante, les données peuvent simplement être re- lues sur le CD-ROM et le processus de correction et de détection d'er- reurs peut être répété. Des formes de réalisation par matériel de la divi- sion de contrôle d'erreurs, de type caractéristique, sont simples, et con- sistent en registres à décalage avec des connexions de réaction et en un réseau de portes OU-EXCLUSIF (E). La détection d'erreurs exige que le bloc de données entier soit lu dans la mémoire tampon par la logique de détection d'erreurs 20 et soit décalé en série à travers le circuit de con- trôle par redondance cyclique 22. Aussi longtemps que les opérations de correction d'erreurs et de détection d'erreurs produisent un reste égal à zéro, les données peuvent être transférées de la mémoire tampon 16 vers le bus de données du système informatique, sous la forme d'un secteur sortant 24 ayant fait l'objet d'un contrôle d'erreurs. La correction et la détection d'erreurs sont des aspects prenant beaucoup de temps dans le transfert de données de dispositifs de mé- moire CD-ROM vers des bus de données d'ordinateur. Cependant, une correction d'erreurs d'une certaine sorte est nécessaire dans la lecture de données sur un disque de mémoire optique, du fait de la nature de l'opération de lecture de données et du traitement nécessaire pour placer les données sous un format approprié pour un ordinateur. De plus, cer- tains aspects de la correction d'erreurs sont imposés par les normes in- dustrielles pour les CD-ROM et d'autres systèmes de mémoire de masse optiques. Un but de la présente invention est donc de procurer une ar- chitecture pour la correction d'erreurs de données qui sont lues dans un dispositif de mémoire de masse, qui permette des débits plus élevés de transfert de données. Un aspect de la présente invention procure un procédé pour transférer des données entre un système de mémoire de masse à disque optique et un ordinateur hôte. Une chaîne de données est lue sur le dis- que de mémoire optique et elle est convertie sous une forme compatible avec l'enregistrement dans une mémoire numérique. La chaîne de don- nées qui est lue est enregistrée dans une mémoire tampon pendant qu'elle est fournie à un circuit de détection d'erreurs. Une détection d'er- reurs est effectuée sur la chaîne de données lues, pour déterminer si des erreurs sont présentes dans la chaîne de données lue, et au moins une partie de l'opération de détection d'erreurs est effectuée pendant que la chaîne de données lue est enregistrée dans la mémoire tampon. La chaîne de données lue est transférée vers le système informatique hôte si l'opération de détection d'erreurs détermine qu'aucune erreur n'est présente dans la chaîne de données lue. Au contraire, si l'opération de détection d'erreurs détermine que des erreurs sont présentes dans la chaîne de données lue, une opération de correction d'erreurs est effec- tuée sur la chaîne de données lue, avant que la chaîne de données lue ne soit transférée vers l'ordinateur hôte. Un autre aspect de la présente invention procure un procédé pour transférer des données entre un système de mémoire de masse à disque optique et un ordinateur hôte, en lisant une chaîne de données sur le disque de mémoire optique et en enregistrant dans une mémoire tampon la chaîne de données qui est lue. La chaîne de données lue est appliquée à un premier circuit de détection d'erreurs, et le premier circuit de détection d'erreurs effectue une première opération de détection d'er- reurs sur la chaîne de données lue, pour déterminer si des erreurs exis- tent dans la chaîne de données lue, et pour déterminer une première va- leur de détection d'erreurs qui est caractéristique des erreurs présentes dans la chaîne de données lue. Une opération de correction d'erreurs est effectuée sur la chaîne de données lue, pour identifier une première er- reur dans la chaîne de données lue et pour déterminer une configuration d'erreur pour la première erreur. La première erreur est ensuite corrigée dans la chaîne de données lue, et une seconde opération de détection d'erreurs est effectuée pour déterminer si des erreurs restent dans la chaîne de données corrigée. Dans un mode de réalisation préféré de ce second aspect de la présente invention, I'étape qui consiste à effectuer une seconde opéra- tion de détection d'erreurs comprend le calcul d'une correction à apporter à la première valeur de détection d'erreurs, sur la base de la configura- tion d'erreur qui est déterminée pour la première erreur. D'autres caractéristiques et avantages de l'invention seront mieux compris à la lecture de la description qui va suivre de modes de réalisation, donnés à titre d'exemples non limitatifs. La suite de la des- cription se réfère aux dessins annexés, dans lesquels: La figure 1 montre une forme de réalisation classique d'un con- trôleur de transfert de données de CD-ROM. La figure 2 montre la matrice de correction d'erreurs de type standard pour des données enregistrées dans des disques de mémoire de masse CD-ROM. La figure 3 montre un système de mémoire de masse à disque optique conforme à un mode de réalisation préféré de la présente inven- tion. La figure 4 montre la structure de données enregistrées dans un secteur d'un disque CD-ROM de mode 1. La figure 5 montre un circuit de contrôle par redondance cycli- que que l'on peut utiliser avec la structure de la figure 5. La figure 6 montre un contrôleur de CD-ROM conforme à un mode de réalisation préféré de la présente invention. La figure 7 montre un processeur de détection d'erreurs con- forme à la présente invention. La figure 8 montre un compteur que l'on peut utiliser en asso- ciation avec des modes de réalisation préférés de la présente invention. La figure 9 montre un autre mode de réalisation d'un proces- seur de détection d'erreurs conforme à la présente invention. Des modes de réalisation préférés de la présente invention permettent d'effectuer des opérations de correction d'erreurs et de dé- tection d'erreurs plus rapides, sans compromettre les niveaux de con- fiance dans les données qui sont lues sur le CD-ROM et sont fournies à l'ordinateur hôte. Ces modes de réalisation de l'invention peuvent être mis en oeuvre tout en maintenant la compatibilité avec les normes indus- trielles pour des dispositifs de mémoire à CD-ROM. Conformément à un aspect de la présente invention, des données sont lues sur une unité de mémoire de masse et le train de données série est appliqué en parallèle à la fois à une mémoire tampon et à un circuit de détection d'erreurs. Le circuit de détection d'erreurs, qui pourrait être un circuit de contrôle par redondance cyclique classique, effectue une opération de détection d'er- reurs sur les données qui sont lues sur l'unité de mémoire de masse, de préférence en même temps que le train de données est enregistré dans la mémoire tampon. L'opération de détection d'erreurs pourrait par exem- ple consister à diviser par le polynôme de contrôle d'erreur le train de données série qui constitue un bloc de données, et à déterminer le reste de l'opération de division. Si l'opération de détection d'erreurs produit un résultat en accord avec l'absence d'erreurs dans le bloc de données, le bloc de données qui est enregistré dans la mémoire tampon peut être di- rectement transféré vers le bus de données du système informatique hôte, en n'effectuant aucune opération de correction de données sur les données qui sont lues. Cet aspect de la présente invention procure plusieurs avanta- ges par rapport aux opérations de correction d'erreurs et de détection d'erreurs classiques qui sont effectuées dans des opérations de transfert de données classiques entre des dispositifs de mémoire à CD- ROM et les bus de données de systèmes informatiques hôtes. On peut donner au système une configuration telle que des opérations de correction de don- nées soient effectuées seulement lorsqu'il y a une raison de penser qu'il est nécessaire d'effectuer une correction de données. L'élimination d'opérations de correction de données inutiles augmente la vitesse à laquelle des données peuvent être transférées. Il y a évidemment une faible probabilité qu'un bloc de données erroné puisse être divisible de façon entière par le polynôme de contrôle, et il est concevable qu'il puisse être souhaitable de ne pas se fier exclusivement au reste nul qui est produit par l'opération de détection d'erreurs. Dans un tel cas, le système de transfert de données pourrait effectuer des opérations de correction de données de la manière caractéristique après qu'un reste nul a été obtenu, mais il pourrait conserver la trace du fait que des données quelconques ont été corrigées ou non dans les opérations de correction d'erreurs. Si aucune correction d'erreurs n'est effectuée après l'indication initiale d'absence d'erreur de l'opération de détection d'erreurs, alors I'opération de détection d'erreurs ne serait pas effectuée à la suite de l'opération de correction de données. Bien que des opérations de correc- tion d'erreurs soient effectuées dans cette variante, I'opération de détec- tion d'erreurs est toujours effectuée seulement pendant la lecture initiale de données dans le système de mémoire de masse. Du fait qu'il n'est pas nécessaire de lire les données dans la mémoire tampon et de les fournir en série aux circuits de détection d'erreurs, à la suite de l'opération de correction d'erreurs, cette variante est encore considérablement plus ra- pide que la forme de réalisation classique pour la correction et la détec- tion d'erreurs. Dans de tels modes de réalisation, il n'est pas nécessaire d'attendre l'achèvement de l'opération de détection d'erreurs avant de commencer les opérations de correction d'erreurs. Par conséquent, les opérations de correction d'erreurs peuvent être commencées immédiate- ment après que les données ont été enregistrées dans la mémoire tam- pon. Ces aspects de l'invention sont très avantageux pour des sys- tèmes dans lesquels il y a peu d'erreurs dans la lecture de données sur un disque de mémoire CD-ROM, ou dans l'assemblage des données lues, pour les placer sous un format approprié pour l'utilisation par un système informatique, ou dans l'application des données au bus de données du système informatique hôte. Des systèmes pratiques peuvent présenter des taux d'erreurs considérablement plus élevés, en particulier lorsque de nouvelles technologies sont introduites dans des systèmes de stock- age optiques. Des systèmes de stockage sur disque optique qui utilisent des disques de densité plus élevée ayant de plus petites tailles d'élé- ments de données, comme le système de disque vidéo numérique (DVD), peuvent avoir des taux d'erreurs accrus. De plus, des disques de mé- moire optiques du type à une seule écriture et de nombreuses lectures (ou "WORM" pour "write once/read many") et des disques optiques avec possibilité de réécriture ont de façon caractéristique des techniques de modulation d'information qui sont moins robustes que celles des disques CD-ROM, ce qui fait que des systèmes utilisant de tels disques d'une nouvelle technologie peuvent également être affectés de taux d'erreurs plus élevés que ceux que l'on observe pour des disques de mémoire CD- ROM. D'autres aspects de la présente invention trouvent une applica- tion particulière dans des systèmes plus réalistes dans lesquels des er- reurs se manifestent au cours de la lecture de données dans des systè- mes de mémoire de masse. Certains modes de réalisation de l'invention lisent des données sur une unité de mémoire de masse et ils fournissent en parallèle à une mémoire tampon et à un circuit de détection d'erreurs le train de bits série qui est lu. Les données lues sont organisées en oc- tets et elles sont enregistrées dans la mémoire tampon. En même temps, le circuit de détection d'erreurs effectue une opération de détection d'er- reurs sur le train de données série qui est lu dans l'unité de mémoire de masse. Ici encore, I'opération de détection d'erreurs pourrait consister à diviser par le polynôme de contrôle d'erreurs un segment du train de données série correspondant à un bloc de données, et à déterminer le reste de l'opération de division. Le reste de cette opération de division d'erreur initiale est enregistré, contrairement à des systèmes EDC classi- ques qui rejettent les données. Une correction d'erreurs est ensuite ef- fectuée sur les données qui sont enregistrées dans la mémoire tampon, en utilisant par exemple un code du genre produit de Reed-Solomon, de la manière classique. Ici encore, les opérations de correction d'erreurs peuvent être commencées dès que les données sont assemblées dans la mémoire tampon, sans attendre l'achèvement de l'opération de détection d'erreurs. Lorsque des octets erronés sont identifiés par le circuit de cor- rection d'erreurs, les équations d'erreurs sont résolues pour déterminer la configuration d'erreur correspondante, et les octets erronés sont rempla- cés dans la mémoire tampon. Les emplacements des octets erronés dans le train de données série, ainsi que les configurations d'erreur des oc- tets, sont ensuite utilisés pour calculer des corrections à apporter au reste du code de détection d'erreurs (EDC), qui résulte de la division d'erreur initiale par le polynôme de contrôle d'erreurs à la lecture dans le train de données. Le reste correspondant au code de détection d'erreurs (EDC) est corrigé conformément à l'emplacement particulier et à la confi- guration d'erreur particulière de chacun des octets corrigés. Le reste cor- respondant au code de détection d'erreurs est testé après la correction de chaque octet erroné, pour déterminer si le reste correspondant au code de détection d'erreurs est différent de zéro, et si le reste corres- pondant au code de détection d'erreurs est différent de zéro, il est enre- gistré et des opérations de correction d'erreurs sont poursuivies. Cette opération est tout à fait distincte de la technique de correction d'erreurs classique, qui rejette la configuration d'erreur et l'emplacement d'erreur après que des octets erronés ont été corrigés dans la mémoire tampon. La correction d'erreurs se poursuit jusqu'à ce que le reste correspondant au code de détection d'erreurs soit réduit à une valeur égale à zéro. A ce point, on suppose que toutes les erreurs ont été corrigées et que les données enregistrées dans la mémoire tampon sont fournies au bus de données de l'ordinateur hôte. Si le reste correspondant au code de dé- tection d'erreurs n'atteint pas zéro, le processus de correction d'erreurs entier peut être répété sur les données déjà corrigées une fois, qui se trouvent dans la mémoire tampon. Plus préférablement, le secteur de données est lu à nouveau sur le CD-ROM et l'ensemble des processus de code de détection d'erreurs et de code de correction d'erreurs de la pré- sente invention est répété. Comme avec les modes de réalisation décrits précédemment, cet aspect de l'invention procure également des cadences de transmis- sion de données plus élevées, du fait que des données ne sont jamais lues dans la mémoire tampon pour être fournies bit par bit à un circuit de détection d'erreurs. De plus, en interrompant des opérations de correc- tion d'erreurs et en transférant le bloc de données après que le reste de la division d'erreur a été réduit à zéro, au moins certaines opérations de correction d'erreurs inutiles sont évitées, ce qui améliore encore davan- tage la cadence de transfert de données. On va maintenant présenter une description plus détaillée de la présente invention, en commençant par une description de l'environnement général dans lequel au moins certains modes de réalisation préférés de la présente invention sont utili- sés. La figure 3 montre un système de mémoire de masse à disque optiquequi peut être un dispositif de mémoire de masse à CD-ROM. Le système de transfert de données qui est représenté fonctionne sous la commande d'un microcontrôleur 40, qui peut être du type 8051, fonction- nant conformément à un programme de commande qui est enregistré dans une mémoire non volatile 42. De l'information est enregistrée de façon optique sur le disque de mémoire 50 sous la forme de régions sur- élevées ou abaissées sur la surface d'un disque réfléchissant, ou sous la forme de variations locales des propriétés optiques du disque. L'informa- tion est lue sur le disque en dirigeant sur la surface du disque 50 un fais- ceau laser provenant d'une tête de lecture optique 52, et en collectant la lumière qui est réfléchie par le disque. Un détecteur qui est incorporé dans la tête de lecture optique 52 reçoit la lumière réfléchie et il génère un signal électrique analogique représentant l'information enregistrée, et il fournit ce signal au processeur de signal analogique 54. Le processeur de signal analogique 54 reçoit le signal d'information qui provient de la tête de lecture optique 52 et il reçoit l'information d'asservissement pro- venant du plateau ou du moteur qui fait tourner le disque de mémoire 50. Le processeur de signal analogique traite le signal d'information et il fournit le signal d'information sous un format approprié au processeur de signal numérique 56. Le processeur de signal numérique 56 fournit sur sa sortie un signal d'information numérisé qui est dirigé vers le contrôleur de CD-ROM 58 ou vers un convertisseur numérique-analogique 60. Le con- vertisseur numérique-analogique est capable de convertir en un signal analogique le signal d'information numérisé provenant du processeur de signal numérique 56. Ce signal analogique est fourni à la prise de sortie * audio 62, constituant une sortie audio du lecteur de CD-ROM. Le sous- système comprenant le convertisseur analogique-numérique 60 et la sor- tie audio 62 est incorporé de façon caractéristique dans un petit système informatique, pour permettre de reproduire des disques compacts audio, sans passer par le circuit de transfert de données numériques du con- trôleur de CD-ROM. Des données à transférer vers le bus de données 64, - ---------- --- qui est illustré sous la forme d'un bus de données IDE, sont transmises par le contrôleur de CD-ROM 58 qui fonctionne en communication avec une mémoire tampon 66 pour définir le format des données et pour ef- fectuer une correction d'erreurs et une détection d'erreurs sur les don- nées, avant de fournir les données au bus IDE 64. La figure 3 montre un système de mémoire de masse pour lire des données qui sont enregistrées sur des disques CD-ROM. L'organisa- tion des données dans des secteurs de CD-ROM est définie par la norme ISO/IEC-10149: Information Technology-Data Interchange on Read-Only 120mm Optical Data Disks (CD-ROM) (Technologie de l'Information - Echange de données sur des Disques Optiques de données de 120 mm Fonctionnant Seulement en Lecture). Cette norme impose la majeure partie de la structure des données qui sont enregistrées sur le disque CD-ROM, mais différentes variantes sont possibles dans le cadre de cette structure globale. Il y a trois modes de secteurs différents dans la norme, ce qui fait que les données enregistrées sur le disque CD-ROM 50 de la figure 3 pourraient être présentées selon l'un quelconque des trois modes: mode 0, mode 1 et mode 2. Ainsi, le circuit de la figure 3 doit être capable d'accepter les différentes structures de données qui sont associées aux différents modes, en réponse à l'octet de données de mode qui est inclus dans les données de CD-ROM elles-mêmes. Cet as- pect du transfert de données à partir de dispositifs du type CD-ROM est bien connu. L'explication restante est présentée essentiellement en con- sidérant le transfert de données de mode 1 à partir d'un disque CD-ROM. La figure 4 montre la structure des données qui sont enregis- trées dans un secteur de mode 1, tel qu'il est défini par la norme. Le secteur est subdivisé en un certain nombre de champs comprenant une configuration de synchronisation à douze octets qui identifie le début d'un secteur pour la lecture des données par la tête de lecture optique et le circuit de traitement de données initial de la figure 3. Un en- tête à quatre octets contient l'adresse absolue du secteur, en minutes, secon- des et trames (1 seconde = 75 trames), et un octet de mode qui indique dans lequel des trois modes possibles les données dans le secteur sont enregistrées. Des secteurs du mode 1 contiennent 2048 octets de don- nées d'utilisateur, qui constituent des octets 16 à 2068 du secteur de mode 1, qui sont suivis par quatre octets de données de code de détec- tion d'erreurs (EDC), huit octets intermédiaires, cent-soixante-douze oc- tets de parité P et cent-quatre octets de parité Q. Comme envisagé ci- dessus, les octets de parité P et les octets de parité Q constituent le code de correction d'erreurs (ECC). Le code de détection d'erreurs (EDC) et le code de correction d'erreurs (ECC) constituent les deux mécanismes complémentaires de protection contre les erreurs pour chaque secteur de CD-ROM. Le champ EDC, qui fait partie d'un code de contrôle par redon- dance cyclique (CRC) à trente-deux bits qui contient ses champs de don- nées protégées, est utilisé pour détecter s'il y a des erreurs dans un secteur. Le champ ECC, qui comprend le champ de parité P à 172 octets et le champ de parité Q à 104 octets, est un Code de type Produit de ReedSolomon (ou RSPC pour "Reed-Solomon Product-like Code") qui est utilisé pour détecter et corriger des erreurs dans un secteur. Par con- séquent, le code EDC procure un contrôle pour déterminer si des erreurs sont présentes dans un secteur qui est lu, et le code ECC permet la cor- rection d'erreurs dans les données transférées. De façon classique, comme représenté sur la figure 1, il y a eu une présomption implicite de la présence d'erreurs dans les données qui sont lues sur le disque CD- ROM, ce qui fait que toutes les opérations ECC possibles sont effectuées avant qu'une opération EDC quelconque ne soit effectuée. Cette straté- gie est capable de corriger des erreurs dans des secteurs de données transférés, sans faire appel à des circuits de commande pour évaluer s'il est nécessaire ou non d'effectuer une opération d'erreurs particulière. D'autre part, les opérations de transfert de données seront ralenties par l'accomplissement d'opérations de correction d'erreurs sur des données qui soit ne contenaient initialement pas d'erreurs, soit ont été corrigées de manière qu'aucune erreur supplémentaire ne reste dans les données. Il est important de noter qu'alors que les normes industrielles pour l'en- registrement et la lecture de données enregistrées sur des disques CD- ROM exigent à la fois une correction d'erreurs et une détection d'erreurs, la structure particulière qui est illustrée sur la figure 1 n'est pas imposée par les normes. Pour des secteurs de mode 1 de CD-ROM, le mot de code EDC consiste en octets 0 à 2067 d'un secteur, tandis que pour des secteurs de mode 2, forme I de CD-ROM XA, le mot de code EDC consiste en oc- tets 16 à 2075 du secteur. Dans les calculs EDC, le bit de moindre poids (ou LSB) d'un octet de données est utilisé en premier, ce qui fait que les octets d'un secteur peuvent être désignés par Bi, i = 0 à 2351, et un bit de l'octet de données estr Bij, j = 7 (MSB) à 0 (LSB), le symbole LSB désignant le bit de moindre poids. Le mot de code EDC pour un secteur de mode I de CD-ROM est le nombre à 16544 bits: B0o0o B0o1 Bo, 2 B0o3 Bo,4 Bo,5 Bo,6 BO,7 B1,0 B1,1... B2066,6 B2066,7 B2067,1 B2067,2 B2067,3 B2067,4 B2067,5 B2067,6 B2067 7, ou en notation polynomiale: 16543 16542 16541 16540 0,1".6543 Bx 16 + Bo,1x16542 + Bo,2x16541 + Bo,3x16540 + B2067,4X3+ B2067,5x2 + B2067,6x+ B2067,7 Pour un secteur de mode 2, forme 1 de CD-ROM XA, le mot de code EDC est le nombre à 16480 bits: B16,0 B16,1 B16,2 B16,3 B16,4B16,5 B16,6 B16,7 B17,0... B2074,7 B2075,0 B2075,1 B2075,2 B2075,3 B2075,4 B2075,5 B2075,6 B2075,7 ou, en notation polynomiale: 6B16 479 + B16,1x16478 + B16,2x16477 + B163x16476+ B16,0x + B16'1 1,X +B63 B2075,4x3 + B2075,5x2 + B2075,6x + B2075,7 Pour des données de mode 1, le code EDC protège les champs de syn- chronisation, d'en-tête, de données d'utilisateur et EDC. Le champ EDC à quatre octets, en combinaison avec ses champs de données protégés comprenant les champs de synchronisation, d'en-tête, de données d'utili- sateur et EDC, pour des données de mode 1, forment le mot de code EDC. Conformément à la norme ISO/IEC-10149, le mot de code EDC qui est enregistré sur le disque CD-ROM est rendu divisible de façon en- tière par le polynôme de contrôle: P(X) = (X16 + x15 + X2 + 1) (x16 + x2 + x + 1) (1) OU P(X) = X32 + X31 + x16 + x15 + X4 + x3 + X +1 en choisissant la valeur appropriée pour les quatre octets EDC qui sont annexés aux champs de synchronisation, d'en-tête et de données d'utili- sateur. En divisant par le polynôme de contrôle le mot de code EDC qui est lu sur le CD-ROM, et en déterminant si le reste de la division est dif- férent de zéro, on peut utiliser la règle du code EDC pour vérifier si des erreurs sont présentes ou non dans les données qui sont lues. On peut mettre en oeuvre la règle EDC au moyen d'un décodeur de code cyclique tel que celui représenté sur la figure 5. Le circuit pourrait par exemple être réalisé sous la forme d'une série de bascules DQ synchrones, avec une réaction établie par l'intermédiaire de portes OU-EXCLUSIF connec- tées entre des sorties Q et des entrées D successives. De tels circuits sont bien connus. On doit faire passer le mot de code EDC entier à tra- vers le décodeur de code cyclique, sous la forme d'un train de bits série. Après que le dernier bit est entré dans le décodeur de code cyclique, les bits du registre CRC sont contrôlés, par exemple en faisant la somme des trente-deux bits du registre CRC. Si tous les bits dans le registre CRC sont égaux à zéro, le mot de code EDC est présumé correct, du fait que la règle EDC n'a pas identifié d'erreurs dans les champs de données protégés. Si la division retourne une valeur différente de zéro, il doit alors y avoir des erreurs dans les champs de données protégés. Cepen- dant, la règle EDC ne peut pas dire quels sont les bits erronés dans le mot de code EDC. La correction de données est accomplie dans le transfert de données à partir d'un disque de mémoire CD-ROM par le code de correc- tion d'erreurs (ECC), qui est de préférence un Code de type Produit de Reed-Solomon (RSPC), appliqué d'une manière similaire à celle décrite dans les brevets des E.U.A. n 4 413 340, délivré à Odaka et al., et n 4 680 764, délivré à Suzuki et al., mentionnés précédemment. Les octets 12 à 2075 de chaque secteur de données dans le disque CD-ROM de mode 1 sont protégés par le code RPSC entrelacé double. Les octets de données protégés du secteur de données qui est lu sont arrangés en une paire de matrices du type représenté sur la figure 2. Les colonnes de la matrice sont appelées des vecteurs P, et ce sont des mots de code de Reed- Solomon (26, 24) sur GF(28). Les diagonales de la matrice sont des vecteurs Q, qui sont des mots de code de Reed-Solomon (45, 43) sur GF(28). Le secteur comprend 86 vecteurs P et 52 vecteurs Q divisés en- tre deux plans de données, I'un pour les octets de moindre poids, et l'au- tre pour les octets de plus fort poids. Les vecteurs P et les vecteurs Q sont les unités de base pour l'application du mécanisme de correction d'erreurs. Chaque vecteur P consiste en 26 octets, comprenant 2 octets de parité. On peut élaborer un jeu d'équations d'erreurs pour chacun des vecteurs P. S'il y a une erreur dans un vecteur P, on peut obtenir l'em- placement d'erreur (c'est-à-dire l'octet particulier du vecteur qui est erro- né) et la configuration d'erreur (c'est-à-dire la configuration de bits erro- nés dans l'octet erroné) en résolvant le jeu d'équations d'erreurs qui est imposé par l'application des règles de code de type produit de Reed- Solomon. S'il n'y a pas d'erreurs dans le vecteur, les équations d'erreurs ont la solution triviale d'une configuration d'erreur de zéro. Dans le cas contraire, les équations d'erreurs fourniront un emplacement d'erreur et une configuration d'erreur qui sont ensuite utilisés pour générer un octet de données corrigé qui remplace ensuite les données erronées dans les données d'utilisateur. Les vecteurs Q ont une longueur de quarante-cinq octets, comprenant les deux octets de parité Q. Le décodage d'erreur de Reed-Solomon pour les vecteurs Q est similaire à celui qui est effectué sur les vecteurs P. Par conséquent, des équations d'erreurs pour chaque vecteur Q sont établies et résolues de façon à identifier des octets erro- nés dans les vecteurs Q, et à déterminer l'emplacement et la configura- tion d'erreur pour les octets erronés. Les octets erronés sont ensuite remplacés par la configuration de données correcte qui est obtenue par les équations d'erreurs. La correction d'erreurs en elle-même peut être insuffisamment robuste pour préserver l'intégrité des données qui sont transférées à partir du dispositif de mémoire de masse. Un traitement de détection d'er- reurs supplémentaires est nécessaire après le processus de correction d'erreurs, du fait que la logique ECC n'a qu'une capacité limitée de cor- rection d'erreurs. Pour chaque vecteur de Reed-Solomon P ou Q, une seule erreur peut être détectée et corrigée. Par conséquent, s'il existe plus d'une erreur dans un mot de code, la logique ECC est incapable d'effectuer la résolution correcte pour trouver l'emplacement d'erreur et la configuration d'erreur. Le résultat consistera en ce que la logique ECC ne pourra pas trouver un emplacement d'erreur véritable ou "corrigera" de manière incorrecte un octet qui ne contient en réalité aucune erreur. Par conséquent, les données traitées par la logique ECC peuvent ne pas être dépourvues d'erreurs, et elles peuvent en fait contenir de nouvelles erreurs introduites par la logique de correction d'erreurs. Certaines for- mes de réalisation de logique ECC peuvent corriger deux erreurs par mot de code, avec l'information d'emplacement d'erreur fournie par le proces- seur de signal numérique, mais ces règles ne peuvent pas procurer un avantage supplémentaire suffisant pour justifier la charge supplémentaire que représente la possibilité de correction d'erreurs plus complexe. Il est souhaitable d'incorporer à la fois la logique ECC et la logique EDC pour procurer des possibilités de contrôle d'erreurs redondantes, du fait que la logique de détection d'erreurs utilise une approche différente de la logi- que de correction d'erreurs pour détecter des erreurs dans un secteur. L'application de la logique EDC après le processus de correction d'er- reurs dans le système de mémoire CD-ROM classique est un processus complémentaire qui garantit de façon plus sûre que le secteur qui a fait l'objet de la correction d'erreurs est dépourvu d'erreurs. Bien entendu, cette technique de protection des données a encore des limitations, dans la mesure ou seuls les champs protégés par les codes ECC et par le code de code EDC sont protégés. On va maintenant décrire les sous-ensembles fonctionnels d'un contrôleur de CD-ROM conforme à la présente invention, en se référant à la figure 6 qui présente une illustration différente et plus détaillée du contrôleur de CD-ROM 58 et de la mémoire tampon 68 qui sont repré- sentés sur la figure 3. En se référant maintenant à la figure 6, on note que le contrôleur de CD-ROM reçoit des données d'entrée sous la forme d'un train de bits de données série 70 provenant du processeur de signal numérique 56 (figure 3). Le désembrouilleur 72 reçoit les données de secteur converties en série provenant du processeur de signal numérique et il commence a désembrouiller le train de bits série, après le passage de la configuration de synchronisation. Le désembrouilleur 72 récupère les champs de secteurs de CD-ROM (en-tête, données d'utilisateur, EDC, ECC, etc.) qui suivent le champ de synchronisation. Les données désem- brouillées sont fournies au circuit d'organisation de données 74 et au gé- nérateur de code à redondance cyclique (CRC) 78. Le circuit d'organisa- tion de données 74 convertit les données série désembrouillées en multi- plets, de façon caractéristique en octets, et il enregistre les octets de données dans des positions appropriées dans une mémoire tampon 76, pour des opérations ultérieures de correction d'erreurs et un transfert fi- nal vers l'ordinateur hôte. La mémoire tampon 76 est choisie de façon caractéristique avec une capacité suffisamment grande pour enregistrer aisément un ou plusieurs secteurs de données pendant des opérations de transfert. La mémoire tampon 76 peut être une mémoire vive dynamique (ou DRAM), ou, si des vitesses supérieures sont souhaitables, une mé- moire vive statique (ou SRAM). Un avantage de la présente invention consiste en ce que son fonctionnement plus rapide permet d'utiliser une mémoire plus lente, et donc moins chère, à titre de mémoire tampon pour le système de transfert de données. Le train de bits de données qui est émis par le désembrouilleur 72 est fourni non seulement au circuit d'organisation de données, pour l'enregistrement des données dans la mémoire tampon, mais également au générateur de CRC 78. Le générateur de CRC 78 est de préférence un circuit de contrôle par redondance cyclique à trente-deux bits qui met en oeuvre le polynôme de contrôle d'erreurs indiqué dans la relation (1), tel que le circuit de CRC qui est illustré sur la figure 5. Le générateur de CRC reçoit le train de bits de données entrant, lorsque les données sont désembrouillées initialement par le désembrouilleur 72 du contrôleur de CD-ROM. Le générateur de CRC 79 effectue une opération de détection d'erreurs initiale sur les données du train de bits entrant, pendant que les données sont encore en cours de désembrouillage et d'enregistrement dans la mémoire, en divisant le train de bits de données entrant par le polynôme de contrôle d'erreurs. L'information de sortie du générateur de CRC est une configuration de reste initiale désignée par CRC0o, qui est le mot de reste à trente-deux bits qui résulte de l'application de la logique EDC du type illustré sur la figure 5 à un train de bits de mot de code EDC entrant, non corrigé. Cette valeur CRC0 est fournie à un registre de reste dans un processeur de détection d'erreurs 82, après que le train de bits correspondant au mot de code EDC entier du secteur de données a entiè- rement traversé le générateur de CRC. Si le processeur de détection d'erreurs détecte que le reste de contrôle d'erreurs initial CRC0 a une valeur égale à zéro, par exemple en effectuant une opération NON-OU sur les bits du mot CRCo, la logique EDC conclut que des erreurs ne sont pas présentes dans le mot de données entrant. Dans un tel cas, le pro- cesseur de détection d'erreurs 82 peut émettre immédiatement vers le bus de données de l'ordinateur hôte les données qui sont enregistrées dans la mémoire tampon 76. Dans des modes de réalisation préférés de l'invention, les données du secteur entrant n'effectuent pas un nouveau cycle a travers le générateur de CRC 78 et n'effectuent pas un cycle à travers un autre générateur de CRC et ne sont soumises par ailleurs à un traitement de logique EDC classique. Du fait que la logique EDC classi- que fait passer en série la majeure partie des données d'un secteur à travers un registre série à trente-deux bits, la logique EDC classique peut être lente. Le contrôleur de CD-ROM qui est illustré sur la figure 6 permet aux données de secteur entrantes de passer une seule fois à travers la logique EDC, et cette opération EDC est effectuée en même temps que le train de bits de données entrant est désembrouillé, organisé en octets et enregistré dans la mémoire tampon. Par conséquent, le temps qui est consommé par des opérations EDC est notablement réduit dans le mode de réalisation de la figure 6. Dans des modes de réalisation caractéristiques du contrôleur de CD-ROM de la figure 6, une correction d'erreurs conformément aux Codes de type Produit de Reed-Solomon (RSPC) est effectuée sur les données qui sont enregistrées dans la mémoire tampon, par la logique de correction d'erreurs 80, de la manière classique, à l'exception du fait que les données d'emplacement d'erreur et de configuration d'erreur sont conservées après que les octets erronés ont été remplacés dans la mé- moire tampon 76. Une fois que les données du secteur transféré sont en- registrées dans la mémoire tampon 76, la correction d'erreurs commence. La logique de correction d'erreurs 80 prélève les mots de code RSPC dans la mémoire tampon, elle détermine si des erreurs sont présentes dans les divers mots de code P et Q et, selon ce qui est approprié, elle résout les équations d'erreurs pour déterminer un emplacement d'erreur et une configuration d'erreur pour les octets de données erronés. L'em- placement d'erreur est un nombre binaire à douze bits qui est généré par la logique de correction d'erreurs pour désigner l'octet d'un secteur qui est erroné, et la configuration d'erreur est un nombre binaire à 8 bits qui est généré par la logique de correction d'erreurs pour indiquer quels sont les bits d'un octet qui doivent être corrigés. Dans des formes de réalisa- tion préférées du contrôleur de la figure 6, I'emplacement d'erreur est simplement l'adresse d'un octet erroné. Des configurations d'erreur sont utilisées en association avec leurs emplacements d'erreurs associés pen- dant le processus de correction d'erreurs. Par exemple, si la configura- tion d'erreur est 010010102 et si l'emplacement d'erreur est 12341o, alors l'octet 123410 des données de secteur est erroné. En outre, si la valeur d'origine de l'octet 12341o est 110101012, alors la valeur de l'octet 123410 est corrigée pour devenir 110101012 @ 010010102 = 100111112, c'est-à-dire: valeur correcte = configuration de données d'origine Ed con- figuration d'erreur, le symbole $ désignant l'opérateur OU-EXCLUSIF. La logique ECC 80 effectue une correction d'erreurs sur les mots de code P et Q respectifs, en calculant l'octet de données corrigé (données correc- tes = données erronées (E configuration d'erreur), et elle remplace en- suite l'octet de données erroné par l'octet de données corrigé dans la mémoire tampon 76. Dans des modes de réalisation préférés de la présente inven- tion, l'emplacement d'erreur et la configuration d'erreur ne sont pas re- jetés après que l'octet erroné a été corrigé. A la place, I'emplacement d'erreur et la configuration d'erreur sont sauvegardés dans un registre dans la logique de correction d'erreurs 80 ou, de façon plus caractéristi- que, dans le processeur de détection d'erreurs 82. Ces données sont uti- lisées pour calculer une correction à apporter au reste de contrôle d'er- reur initial CRC0, ou pour calculer une correction supplémentaire à ap- porter à un reste de contrôle d'erreur corrigé précédemment, Ri. Après chaque correction qui est apportée aux données enregistrées dans la mémoire tampon, la valeur du reste de contrôle d'erreur Ri est contrôlée pour déterminer si elle est égale à zéro. Si une valeur zéro est présente à la dernière itération du reste Ri, le processeur de détection d'erreurs 82 peut conclure que toutes les erreurs dans le secteur ont été corrigées et que les données sont prêtes à être transférées de la mémoire tampon 76 vers le bus IDE ou un autre bus de l'ordinateur hôte. Lorsqu'on fait fonc- tionner de cette manière le contrôleur de CD-ROM de la figure 6, le fonc- tionnement de la logique de correction d'erreurs 80 est interrompu après qu'une valeur égale à zéro a été retournée pour le reste de contrôle d'er- reurs Ri. Le processeur de détection d'erreurs 82 applique indirectement la règle de code de détection d'erreurs de la présente invention aux don- nées qui sont enregistrées dans la mémoire tampon, en appliquant la rè- gle EDC de l'invention sur la base de l'information d'emplacement d'er- reur et de configuration d'erreur qui est générée par l'opération de la lo- gique de correction d'erreurs sur la valeur de reste de CRC initiale ou une valeur suivante (CRC0o ou Ri), pour produire une valeur de reste de CRC actualisée (Ri+1). Pour chaque octet erroné qui est corrigé par la logique de correction d'erreurs 80, la logique de correction d'erreurs 80 transmet l'information d'emplacement d'erreur et de configuration d'erreur à la logique de détection d'erreurs 82. La logique de détection d'erreurs 82 recalcule le reste de CRC, R, qui provient de la division polynomiale de contrôle, en calculant une correction à apporter au reste, et en ajou- tant cette correction au reste enregistré précédemment (Ri). En calculant une correction à apporter au reste de CRC, la logique de détection d'er- reurs n'a pas besoin de diviser par le polynôme de contrôle le nombre binaire long constitué par tous les bits des données de secteur qui sont protégées par le code EDC, pour calculer le reste de CRC. Après que le processeur de détection d'erreurs 82 a corrigé le reste Ri conformément à l'emplacement d'erreur et à la configuration d'erreur de l'octet le plus récemment corrigé par la logique de correction d'erreurs 80, la nouvelle valeur du registre de détection d'erreurs R est contrôlée. Si R est diffé- rent de zéro, des erreurs restent à corriger dans les données de ce secteur, et le processus de correction d'erreurs se poursuit. Si R est égal à zéro, le processeur de détection d'erreurs considère de préfé- rence que toutes les erreurs dans le secteur ont été corrigées, et le pro- cessus de correction d'erreurs est de préférence arrêté et les données sont transférées. Un nouveau secteur est lu sur le disque de mémoire CDROM, et les processus décrits ci-dessus sont répétés pour le secteur suivant. Si après que tous les vecteurs P et les vecteurs Q d'un secteur ont été traités, R reste différent de zéro, le processus de correction d'er- reurs peut être répété à nouveau ou, plus préférablement, les données du secteur sont lues à nouveau sur le disque. On peut comprendre le fonctionnement du processeur de dé- tection d'erreurs de la présente invention en se référant à un exemple simplifié basé sur un mot de code à 15 bits: C(x) = X14 + x11 + x8 + x6 + x5 + X4 + X3 + X, OU c(x) = (100100101111010), qui a le polynôme decontrôle: p(x) = x4 + X + 1 La division de c(x) par p(x) donne le quotient q(x) = (10001011001), avec un reste r(x) = (0001), de la façon suivante 10001011001 q(x) p(x) 10011) 100100101111010 c(x) ooo0001 reste Ceci représente une application classique de logique de correction d'er- reurs pour vérifier l'intégrité du mot de code c(x) en utilisant le polynôme de contrôle d'erreurs p(x), qui pourrait être accomplie initialement par le générateur de CRC 78 de la figure 6. Bien entendu, le mot de code EDC qui est utilisé dans le générateur de CRC 78 a plus de seize milles bits de longueur, et le polynôme de contrôleur d'erreurs est celui qui est indi- qué dans l'expression (1) ci-dessus. Cet exemple illustre également la simplicité de l'opération de division d'une opération de CRC classique, du fait qu'elle est accomplie en arithmétique modulo 2 et qu'elle peut être réalisée dans des registres à décalage série en combinaison avec des portes OU-EXCLUSIF. Du fait que le reste r(x) est différent de zéro dans l'exemple ci-dessus, I'opération EDC indique qu'il y a une erreur dans le mot de code c(x). On peut ensuite effectuer une certaine forme d'opéra- tion de correction d'erreurs qui détermine que les bits erronés du mot de code c(x) sont x10 et x5, ce qui fait que la configuration d'erreur pour c(x) est e(x) = (000010000100000). Le mot de code corrigé c'(x) est alors donné par c'(x) = c(x) @ e(x) = (1001101010011010). On peut démontrer le fait que c'(x) est correct par l'application de la logique EDC classique après l'opération de correction d'erreurs, de la manière qui est mise en oeuvre par le circuit classique de correction d'erreurs et de détection d'erreurs de la figure 1, comme indiqué ci- dessous: 10000010110 q(x) p(x) ioi)oioooii C(X p(x) 10011)100110101011010 c'(x) 0000 reste Comme on l'a envisagé précédemment, bien que cette procédure EDC classique (CRC après l'achèvement de l'opération ECC) ait l'avantage de la simplicité du matériel, elle peut être un processus lent lorsqu'elle est appliquée au mot de code EDC a seize mille bits qui est habituellement utilisé dans le stockage de données sur des disques CD-ROM. Des modes de réalisation préférés de l'invention corrigent le reste de contrôle d'erreurs sur la base de la configuration d'erreur, et ils testent le reste corrigé pour déterminer le moment auquel il atteint zéro. Comme illustré dans le calcul suivant, le procédé donne des résultats si- milaires au processus classique: 1001111 q(x) p(x) 10011)10000100001 e(x) + r(x) 0000 reste Le processeur de détection d'erreurs présent suit de façon incrémentielle les corrections apportées au reste de contrôle d'erreurs, il décrémente la valeur de reste conformément aux corrections et il détermine le moment auquel le reste de contrôle d'erreurs est réduit à zéro. Par conséquent, le reste est entièrement corrigé en soustrayant du reste de contrôle d'er- reurs d'origine un ou plusieurs nombres dont la somme est égale au reste de contrôle d'erreurs d'origine. De façon équivalente, la somme de la configuration du reste d'origine et des configurations d'erreur de chacune des corrections qui sont apportées aux données de secteur est divisible de façon entière par le polynôme de contrôle d'erreurs, de la manière il- lustrée dans l'exemple précédent. Ainsi, le procédé de correction d'er- reurs de la présente invention procure un contrôle de l'intégrité des don- nées qui est similaire à celui de la logique EDC classique basée sur le contrôle CRC, mais la mise en oeuvre de ce processus de détection d'er- reurs est très différente de celle de la logique de détection d'erreurs classique, basée sur le contrôle CRC. Dans l'exemple ci-dessus, les configurations d'erreur consis- taient en bits uniques devant être placés à des emplacements spécifi- ques dans le mot de code. Au contraire, lorsque le processeur de détec- tion d'erreurs de la présente invention est mis en oeuvre dans un con- trôleur de CD-ROM, la configuration d'erreur est un octet et l'emplace- ment d'erreur est un nombre à douze bits qui identifie l'emplacement de l'octet erroné parmi les plus de deux mille octets du secteur. Pour calcu- ler la correction à apporter au reste de contrôle d'erreur, il est nécessaire d'apporter une compensation pour la position d'erreur à la fois sur la base de la configuration d'erreur et de l'emplacement d'erreur. Mathéma- tiquement, le processeur de détection d'erreurs 82 du mode de réalisa- tion de la figure 6 effectue le calcul suivant pour corriger le reste de contrôle d'erreurs le plus récent: Ri+1 = Ri E {(e.x8X)modulo P(x)} (2) Dans cette expression, R est le résultat de détection d'erreurs, e est la configuration d'erreur, X est un nombre qui est obtenu à partir de l'em- placement d'erreur e et P(x) est le polynôme de contrôle qui est indiqué dans l'expression (1). En pratique, le nombre Ri Ed (e.x8x) peut être long, ce qui fait que l'opération modulo P(x) peut prendre du temps. Le calcul est cependant plus rapide que le calcul de CRC classique effectué sur un mot EDC entier. De plus, ce traitement de détection d'erreurs est effectué en parallèle avec le traitement de correction d'erreurs, ce qui fait que le processus complet de correction d'erreurs et de détection d'erreurs est effectué globalement plus rapidement que dans le circuit classique repré- sente sur la figure 1. La figure 7 illustre schématiquement un processeur de détec- tion d'erreurs 82 possible qui accomplit le calcul de la relation (2) dans le contrôleur de CD-ROM de la figure 6. Le processeur de détection d'er- reurs 82 comprend une unité de commande de processeur de détection d'erreurs 100 qui est un automate destiné à commander la séquence des étapes qui sont incluses dans le calcul d'une correction à apporter au reste de contrôle d'erreurs. Un convertisseur d'emplacement d'erreur 102, ou ELC, sur la figure 7, convertit l'emplacement d'erreur e pour donner le nombre à 12 bits. qui est ensuite utilisé dans le calcul de corrections à apporter à la valeur R. Un circuit de calcul de correction 104 calcule la valeur e. mod P(x) et il fournit en sortie la correction de reste. Le registre de reste R 106 enregistre le reste de contrôle d'erreurs, qui est initiale- ment CRC0, et qui au cours d'itérations suivantes est la valeur de reste corrigée Ri. La configuration d'erreur e (huit bits) et l'emplacement d'er- reur e sont générés par la logique de correction d'erreurs 80 lorsqu'elle résout avec succès un jeu d'équations d'erreurs. La logique de correction d'erreurs 80 fournit en sortie la configuration d'erreur e et l'emplacement d'erreur e au processeur de détection d'erreurs 82, sur des lignes res- pectives 108 et 110. En même temps, la logique de correction d'erreurs fournit en sortie une impulsion de démarrage sur une ligne 112 qui dé- clenche le fonctionnement du processeur de détection d'erreurs, c'est-à- dire que l'automate qui est commandé par l'unité de commande de pro- cesseur de détection d'erreurs 100 commence à passer pas à pas par les étapes de traitement de détection d'erreurs. L'autre information d'entrée du processeur de détection d'er- reurs 82 est la valeur CRC0 initiale qui est calculée par le circuit géné- rateur de CRC 78 du circuit de contrôleur de la figure 6. Cette valeur CRCo initiale est fournie de façon caractéristique au processeur de dé- tection d'erreurs par le générateur de CRC avant le déclenchement du traitement de correction d'erreurs, ou simultanément à celui-ci, et elle est enregistrée dans le registre R 106. La valeur du reste de contrôle d'er- reurs initial CRCo est contrôlée pour déterminer si elle est égale à zéro. Si la valeur initiale est égale à zéro, des modes de réalisation préférés de la présente invention n'effectuent aucune opération de correction d'er- reurs ultérieure. Dans le cas o l'opération EDC initiale par le générateur de CRC indique qu'il y a une ou plusieurs erreurs dans les données qui sont lues, la valeur CRCo reste dans le reste R 106 jusqu'à ce que la va- leur de correction d'erreurs déclenche le fonctionnement du processeur de détection d'erreurs 82. Sous l'effet du déclenchement par l'impulsion de démarrage, le convertisseur d'emplacement d'erreur 102 convertit l'emplacement d'erreur e pour donner le nombre à douze bits A, qui est ensuite fourni au circuit de calcul de correction 104. Le circuit de calcul de correction reçoit également la configuration d'erreur e, et à partir de ces données le circuit de calcul de correction 104 calcule une correction à apporter à la valeur de reste initiale. Des portes OUEXCLUSIF 114 font la somme du mot de reste de contrôle d'erreurs à trente-deux bits avec la valeur de correction, et la somme est ensuite enregistrée dans le registre R. Sous l'effet de la génération d'un reste corrigé, la valeur du reste est testée, par exemple par une opération NON-OU appliquée à tous les bits du mot de reste. Si le reste est égal à zéro, alors on pré- sume que toutes les erreurs sont corrigées et les données qui sont enre- gistrées dans la mémoire tampon peuvent être transférées immédiate- ment, ou bien elles peuvent être transférées ultérieurement à la demande de l'ordinateur hôte. Après que des opérations de correction d'erreurs ont corrigé avec succès des données d'un secteur, un nouveau secteur est lu dans l'unité de mémoire de masse, et le traitement de correction d'er- reurs et de détection d'erreurs commence à nouveau. Si au contraire le reste corrigé demeure différent de zéro, le traitement de correction d'er- * reurs se poursuit. Si tous les vecteurs de correction d'erreurs ont été traités une fois, il est possible de continuer le traitement de correction d'erreurs en répétant le décodage des vecteurs P et Q décodés précé- demment. Il est cependant plus préférable de lire à nouveau sur le dis- que les données du secteur et de recommencer l'ensemble du processus de correction et de détection d'erreurs. Le générateur de CRC élabore la valeur CRC initiale, c'est-à- dire CRC0, en divisant le mot de code EDC d'un secteur par P(x) avant que les opérations de corrections d'erreurs ne commencent. Pour un secteur de CD-ROM de mode 1 dont les octets de données sont Bi, i = 0 à 2351, on a: (B0,ox16543 + B0,1x16542 +... B2067,6x + B2067,7) - P(x) = Q0(x) + CRCo(x) en désignant par P(x) le polynôme de contrôle et par Q0(x) le quotient. La logique de correction d'erreurs effectue une résolution pour déterminer une configuration d'erreur e et un emplacement d'erreur e de l'octet erro- né, et elle corrige ensuite le mot de code. Le mot de code EDC corrigé devient: Boox16543... + (Bg,0x7 + Bg1x6 + Be2x5 + Bg3x4 + B,4x3 + Be,5x + Bg6x + Bg,7)X8(2067-) +... + B2067,7 + (e0x7 e1x6 + e2x5 + e3x + e4x3 + e5x2 + e6x + e7)x8(2067'g) en désignant par ej, avec i = 7 (MSB) à 0 (LSB) les bits de la configura- tion d'erreur e. En divisant par P(x) le mot de code EDC ci-dessus, on obtient le reste R(x) = CRC0(x) + r(x), avec: r(x) = (eox7 + e1x6 + e2x5 + e3x4 + e4x3 + e5x2+ e6x + e7) x(2067-')modulo P(x) Le circuit de calcul de correction 104 qui est représenté sur la figure 7 effectue le calcul de r(x) ci-dessus. Du fait qu'il est possible de corriger plus d'une erreur pendant le processus de correction d'erreurs, ce calcul peut être effectué autant de fois que des erreurs sont corrigées par la logique de correction d'erreurs 80. A l'exception de la toute première cor- rection apportée au reste, qui travaille sur la valeur CRC0 initiale, toutes les itérations du processeur de détection d'erreurs travaillent sur un R(x) qui est déterminé par: R(x)(nouvelle valeur) = R(X)(ancienne valeur) + r(x) On notera que les relations indiquées ci- dessus peuvent être appliquées à des secteurs de mode 2, forme 1 de CD-ROM XA, avec des modifica- tions mineures. Ainsi, le processeur de détection d'erreurs 82 détecte des erreurs en calculant de nouvelles valeurs R conformément à la formule R(X)nouveau = R(X)ancien + {(e.x8(L-e))modulo P(x)}, avec les notations suivantes: e est la configuration d'erreur, e est l'em- placement d'erreur et L = 2067 pour des secteurs de mode 1 de CD-ROM, ou 2075 pour des secteurs de mode 2, forme I de CD-ROM XA. Du fait que e est un nombre à 12 bits, un calcul direct de e. x8(L'É)modulo P(x) sera fréquemment indésirable, du fait qu'il exige de lui consacrer un matériel trop important, et donc une aire trop élevée à la surface d'une puce. Il est donc préférable de décomposer le calcul en un certain nombre d'opérations de multiplications plus petites. On peut ainsi écrire le calcul du reste sous la forme: R(X)nouveau = R(X)ancien + {(e. x8X)modulo P(x)}, avec A = (L-e). Le nombre à 12 bits A peut alors être décomposé en trois parties à 4 bits, c'est-à-dire A = X8.28 +. 4.24 + -0, comme représenté sur la figure 8. Avec cette transformation, le calcul de configuration d'er- reur devient le suivant: e. x8x = e. X8(256X' + 16;.4 +.o) = e. X2048ka + 128k.4 + 8ko - e. (X2048Xa x x128x4 x X8o) Donc, e.x8kmodulo P(x) = e. (x2048xs x X12814 x x8Xo).modulo P(x) On peut développer cette équation en utilisant la règle: (A x B) modulo N = {A modulo N) x B} modulo N pour une représentation sous forme de produit complet du calcul de cor- rection de reste. Le calcul de correction de reste e.x8Xmodulo P(x) peut être effectué en appliquant.8 fois l'opérateur.x2048 modulo P(x) (multiplication par x2048, puis division par P(x) pour obtenir le reste), .4 fois l'opérateur.x128 modulo P(x), et.0 fois l'opérateur.x8 modulo P(x). Dans un mode de réalisation particulièrement préféré d'un processeur de détection d'erreurs conforme à la présente invention, qui est représenté sur la figure 9, les calculs de correction de reste sont réalisés avec un multiplieur polynomial à 3 étages, 104, ayant des étages 150, 152 et 154 et un compteur de À, 136. Le circuit de détection d'erreurs est à de nombreux égards si- milaire au mode de réalisation qui est illustré sur la figure 7. On a donc limité un examen supplémentaire d'éléments déjà décrits. Comme avec le mode de réalisation de la figure 7, le processeur de détection d'erreurs de la figure 9 enregistre le reste de contrôle d'erreurs initial CRC0, à trente-deux bits, provenant directement du générateur de CRC 78 (figure 6), sous la forme d'une valeur initiale dans le registre R 106. Dans cet état initial, le multiplexeur 120 est maintenu dans un état qui sélectionne la sortie du générateur de CRC. Chaque fois que la logique de correction d'erreurs 80 trouve une erreur et résout avec succès les équations d'er- reurs appropriées, pour générer une configuration d'erreur à huit bits, e, et un emplacement d'erreur à douze bits, U, la logique de correction d'er- reurs applique une impulsion de démarrage à l'unité de commande de processeur de détection d'erreurs 100. A ce moment, la logique de cor- rection d'erreurs fournit également la configuration d'erreur e et l'empla- cernent d'erreur e au processeur de détection d'erreurs. A la réception de l'impulsion de démarrage, la valeur d'entrée de configuration d'erreur est transmise par le multiplexeur 140 et elle est mémorisée dans le registre temporaire 142, pour des calculs ultérieurs. Egalement à la réception de l'impulsion de démarrage, les par- ties du processeur de détection d'erreurs de la figure 9 qui correspondent au circuit ELC 102 du mode de réalisation de la figure 7 convertissent l'adresse d'erreur d'entrée à douze bits, 130, en une valeur B, et elles enregistrent la valeur dans le registre X 136. X est déterminé sur la base à la fois du mode du secteur de CD-ROM dans lequel les données sont enregistrées, qui détermine la longueur du mot de code EDC, et de l'em- placement de l'octet erroné à l'intérieur du mot de code EDC. Le mode qui est lu sur le disque CD-ROM commande au multiplexeur 132 de four- nir en sortie l'une ou l'autre des longueurs de mot de code EDC (2067, 2075) qui est appropriée aux différents modes, sous la forme d'un mot binaire à douze bits. Si l'octet de mode qui est lu est égal à 1, le secteur est enregistré sous la forme de données de mode I de CD-ROM, ce qui fait que le multiplexeur 132 sélectionne une quantité à soustraire égale à 2067. Dans le cas contraire, une quantité à soustraire égale à 2075 est sélectionnée en correspondance avec des secteurs de mode 2, forme 1 de CD-ROM XA. Un soustracteur à douze bits 134 soustrait l'adresse d'erreur à douze bits de la longueur de mot de code EDC a douze bits et il fournit le résultat au registre A 136. Le registre A 136 est constitué par trois compteurs à 4 bits X8, 14 et -o, représentés de façon plus détaillée sur la figure 8, qui génèrent trois signaux y, 13 et a: a = (X0 7 0), p = (X4 * 0), et y = (-8; 0) a, p et y commandent respectivement les étages ".x8 modulo P(x)", ".x128 modulo P(x)" et".x2 48 modulo P(x)". Le multiplieur à trois étages 104 calcule la correction de reste e.x8X modulo P(x) par l'algorithme suivant qui est accompli sur la confi- guration d'erreur enregistrée précédemment dans le registre temporaire lorsque (I ? 0) temp = {{{temp.x8a modulo P(x)}.x2048 modulo P(x)}. x128p modulo P(x)}; si (i8 > 0) alors -8 = X8 - 1; si (.4 > 0) alors 4 = X4 - 1; si (i0 > 0) alors -o = Xo - 1; } Le nombre total de cycles exigés est le maximum de (A8, 14, -0), et le résultat de la multiplication est fourni par l'intermédiaire du multiplexeur 140 au registre temporaire 142. On notera ici que l'ordre des trois opéra- tions de multiplication/modulo qui sont effectuées par les trois étages , 152 et 154 n'a aucun effet sur le résultat final qui est produit par le circuit de calcul de correction et qui est enregistré dans le registre tem- poraire 142, mais la configuration qui est illustrée optimise les caracté- ristiques de matériel, ceci comprenant la réduction de l'aire de puce qui est consommée par les circuits de multiplieur/modulo et représente donc un aspect préféré de la présente invention. Après que le multiplieur 104 a accompli le nombre de cycles exigé, le registre temporaire 142 contient la valeur de la correction de reste e. x8k modulo P(x). La valeur de reste est ensuite additionnée, en utilisant les portes OU-EXCLUSIF 114, à la va- leur (CRC0 ou Ri) qui est enregistrée dans le registre R 106. Le multi- plexeur 120 sélectionne la sortie des portes OU-EXCLUSIF 114 pour toutes les opérations de correction d'erreurs après que le processeur de détection d'erreurs a été initialisé. On peut obtenir l'état du reste corrigé R à partir de la sortie R = 0. En fonction de la valeur du reste corrigé, comme envisagé ci-dessus en relation avec le mode de réalisation de la figure 7, des données se- ront transférées, ou bien des opérations de correction d'erreurs supplé- mentaires seront accomplies. Il va de soi que de nombreuses modifications peuvent être ap- portées au procédé décrit et représenté, sans sortir du cadre de l'inven- tion. REVENDICATIONS 1. Procédé pour transférer des données entre un système de mémoire de masse à disque optique (50) et un ordinateur hôte, caractéri- sé en ce qu'il comprend les étapes suivantes: on lit une chaîne de don- nées (70) sur le disque de mémoire optique (50) et on convertit la chaîne de données lue sous une forme compatible avec l'enregistrement dans une mémoire numérique; on enregistre dans une mémoire tampon (76) la chaîne de données lue (70), tout en fournissant la chaîne de données lue à un premier circuit de détection d'erreurs (78); on effectue une première opération de détection d'erreurs sur la chaîne de données lue, pour dé- terminer s'il existe des erreurs dans la chaîne de données lue, au moins une partie de l'opération de détection d'erreurs étant effectuée pendant que la chaîne de données lue est en cours d'enregistrement dans la mé- moire tampon (76); on transfère la chaîne de données lue vers le sys- tème d'ordinateur hôte si la première opération de détection d'erreurs détermine qu'aucune erreur n'est présente dans la chaîne de données lue; et on effectue une opération de correction d'erreurs sur la chaîne de données lue (70) si la première opération de détection d'erreurs déter- mine que des erreurs sont présentes dans la chaîne de données lue, avant de transférer la chaîne de données lue à l'ordinateur hôte. 2. Le procédé selon la revendication 1, caractérisé en ce qu'il comprend en outre les étapes suivantes, lorsque l'opération de correction d'erreurs est effectuée: on corrige une erreur dans la chaîne de données lue (70); on effectue une seconde opération de détection d'erreurs pour déterminer si des erreurs supplémentaires restent dans la chaîne de don- nées lue, la seconde opération de détection d'erreurs générant un signal d'absence d'erreur si la seconde opération de détection d'erreurs indique qu'aucune erreur non corrigée ne reste dans la chaîne de données lue (70); et on fournit la chaîne de données corrigée à l'ordinateur hôte, en réponse au signal d'absence d'erreur qui est généré par la seconde opé- ration de détection d'erreurs. 3. Procédé selon le revendication 2, caractérisé en ce que l'étape qui consiste à effectuer la première opération de détection d'er- reurs produit une première valeur de détection d'erreurs qui est caracté- ristique des erreurs présentes dans la chaîne de données lue (70), la première valeur de détection d'erreurs étant enregistrée. 4. Procédé selon la revendication 3, caractérisé en ce que l'étape qui consiste à effectuer la seconde opération de détection d'er- reurs comprend les étapes qui consistent à calculer une correction pour la première valeur de détection d'erreurs, à corriger la première valeur de détection d'erreurs et à déterminer si la valeur de détection d'erreurs cor- rigée est différente de zéro. 5. Procédé selon la revendication 4, caractérisé en ce que la première opération de détection d'erreurs comprend la division de la chaîne de données reçue (70) par un polynôme de contrôle d'erreur, et en ce que la première valeur de détection d'erreurs est un reste qui est calculé en divisant la chaîne de données lue par le polynôme de contrôle d'erreurs. 6. Procédé selon la revendication 5, caractérisé en ce que la seconde opération de détection d'erreurs est accomplie sous la dépen- dance d'une configuration d'erreur et d'un emplacement d'erreur qui sont déterminés par l'opération de correction d'erreurs. 7. Procédé selon la revendication 1, caractérisé en ce que l'étape de conversion de la chaîne de données lue (70) comprend des opérations qui sont effectuées par un processeur de signal numérique (56) et des opérations qui sont effectuées par un désembrouilleur (72). 8. Procédé selon la revendication 7, caractérisé en ce que le désembrouilleur (72) fournit des données au premier circuit de détection d'erreurs (78) et à un circuit d'organisation de données (74) qui enregis- tre dans la mémoire tampon (76) la chaîne de données reçue. 9. Procédé selon la revendication 8, caractérisé en ce que la chaîne de données reçue (70) est codée avec un code de Reed-Solomon entrelacé double. 10. Procédé pour transférer des données entre un système de mémoire de masse à disque optique (50) et un ordinateur hôte, caractéri- sé en ce qu'il comprend les étapes suivantes: on lit une chaîne de don- nées (70) sur le disque de mémoire optique (50) et on enregistre dans une mémoire tampon (76) la chaîne de données lue; on fournit la chaîne de données lue (70) à un premier circuit de détection d'erreurs (78); on effectue une première opération de détection d'erreurs sur la chaîne de données lue (70), pour déterminer s'il existe des erreurs dans la chaîne de données lue, et on détermine une première valeur de détection d'er- reurs caractéristique des erreurs qui sont présentes dans la chaîne de données lue; on effectue une opération de correction d'erreurs sur la chaîne de données lue (70), on identifie une première erreur dans la chaîne de données lue et on détermine une configuration d'erreur pour la première erreur; on corrige la première erreur dans la chaîne de données lue (70); et on effectue une seconde opération de détection d'erreurs pour déterminer s'il reste des erreurs dans la chaîne de données corri- gée. 11. Procédé selon la revendication 10, caractérisé en ce que l'étape qui consiste à effectuer une seconde opération de détection d'er- reurs comprend le calcul d'une correction à apporter à la première valeur de détection d'erreurs, sur la base de la configuration d'erreur qui est déterminée pour la première erreur. 12. Procédé selon la revendication 11, caractérisé en ce qu'il comprend en outre les étapes qui consistent à corriger la première valeur de détection d'erreurs et à enregistrer la première valeur de détection d'erreurs corrigée, sous la forme d'une seconde valeur de détection d'er- reurs, et à déterminer ensuite si la seconde valeur de détection d'erreurs est différente de zéro. 13. Procédé selon la revendication 12, caractérisé en ce que la seconde valeur de détection d'erreurs est déterminée par un second cir- cuit de détection d'erreurs, distinct du premier circuit de détection d'er- reurs. 14. Procédé selon la revendication 12, caractérisé en ce qu'il comprend en outre l'étape qui consiste à fournir la chaîne de données corrigée à l'ordinateur hôte, après que l'opération de correction d'erreurs a été effectuée. 15. Procédé selon la revendication 10, caractérisé en ce que la chaîne de données lue (70) est appliquée au premier circuit de détection d'erreurs (78) pendant que la chaîne de données lue est en cours d'enre- gistrement dans la mémoire tampon (76). 16. Procédé selon la revendication 10, caractérisé en ce qu'il comprend en outre l'étape qui consiste à transférer vers le système d'or- dinateur hôte la chaîne de données lue, si la première opération de dé- tection d'erreurs détermine qu'aucune erreur n'est présente dans la chaîne de données lue (70). 17. Procédé selon la revendication 10, caractérisé en ce qu'au- cune opération de correction d'erreurs n'est effectuée jusqu'à ce que la première valeur de détection d'erreurs soit enregistrée. 18. Procédé selon la revendication 10, caractérisé en ce que la première opération de détection d'erreurs comprend la division de la chaîne de données reçue (70) par un polynôme de contrôle d'erreur, et en ce que la première valeur de détection d'erreurs est un reste qui est calculé en divisant la chaîne de données lue par le polynôme de contrôle d'erreurs. 19. Procédé selon la revendication 18, caractérisé en ce que la seconde opération de détection d'erreurs est effectuée sous la dépen- dance d'une configuration d'erreur et d'un emplacement d'erreur qui sont déterminés par l'opération de correction d'erreurs. 20. Procédé selon la revendication 10, caractérisé en ce que la chaîne de données lue est codée avec un code de Reed-Solomon entre- lacé double.