FR2762920A1 - Data transferral method for optical disk mass storage system - Google Patents

Data transferral method for optical disk mass storage system Download PDF

Info

Publication number
FR2762920A1
FR2762920A1 FR9705504A FR9705504A FR2762920A1 FR 2762920 A1 FR2762920 A1 FR 2762920A1 FR 9705504 A FR9705504 A FR 9705504A FR 9705504 A FR9705504 A FR 9705504A FR 2762920 A1 FR2762920 A1 FR 2762920A1
Authority
FR
France
Prior art keywords
error
data
read
error detection
data string
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR9705504A
Other languages
French (fr)
Other versions
FR2762920B1 (en
Inventor
Cheng Te Chuang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
United Microelectronics Corp
Original Assignee
United Microelectronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to GB9707732A priority Critical patent/GB2324445B/en
Priority to JP10494297A priority patent/JP3279501B2/en
Application filed by United Microelectronics Corp filed Critical United Microelectronics Corp
Priority to FR9705504A priority patent/FR2762920B1/en
Priority to DE19719691A priority patent/DE19719691B4/en
Priority to NL1006112A priority patent/NL1006112C2/en
Publication of FR2762920A1 publication Critical patent/FR2762920A1/en
Application granted granted Critical
Publication of FR2762920B1 publication Critical patent/FR2762920B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

The method involves retrieving a data string from an optical storage disk and converting it to a form compatible with storage in digital memory. The data string is stored within buffer memory while providing it to an error detection circuit. An error detection operation is performed on the data string to determine errors, with a portion being performed while the string is being stored in the buffer. The retrieved data string is transferred to a host computer system if no errors are present. If errors are detected, an error correction operation is performed prior to transferring the data to the host computer.

Description

PROCEDE DE TRANSFERT DE DONNEESDATA TRANSFER PROCESS

ENTRE UNE MEMOIRE DE MASSE A DISQUE OPTIQUE  BETWEEN AN OPTICAL DISC MASS MEMORY

ET UN ORDINATEURAND A COMPUTER

La présente invention concerne le transfert de données de dis-  The present invention relates to the transfer of data from

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é  mass storage positive to host computer systems. The invention relates more particularly to improved error processing

que l'on peut utiliser pour augmenter des vitesses de transfert de don-  which can be used to increase data transfer rates

nées à partir d'un dispositif de mémoire de masse tel qu'une mémoire  born from a mass memory device such as a memory

morte à disque optique, vers un bus de données d'un ordinateur person-  dead to optical disc, to a data bus of a personal computer

net hôte.net host.

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  Optical mass storage devices, such as compact disc (or CD-ROM) read only memory devices are used for the storage and distribution of programs and memory structures.

données, en particulier lorsque les programmes et les structures de don-  data, especially when programs and data structures

nées sont trop grands pour être commodément distribués à des utilisa-  are too large to be conveniently distributed to users.

teurs d'ordinateurs personnels ou d'autres petits systèmes informatiques.  computers or other small computer systems.

Des dispositifs CD-ROM et des dispositifs de mémoire de masse similai-  CD-ROM devices and similar mass storage devices

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  res currently have data access speeds considerably lower than those of integrated circuit memories as

stockage magnétiques à disque dur. Par conséquent, des formes de réa-  magnetic hard drive storage. Therefore, forms of reaction

lisation classiques de petits systèmes informatiques limitent le nombre  conventional small computer systems limit the number

d'accès à des dispositifs de mémoire de masse optiques qui sont effec-  access to optical mass storage devices that are performed

tués. Par exemple, des données de programme sont transférées d'un dis-  you are. For example, program data is transferred from a device

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  than CD-ROM type storage to the magnetic hard drive of the small computer system to install and configure the program. Once

que les données de programme ont été chargées sur le disque dur ma-  that the program data has been loaded onto the hard disk

gnétique du petit ordinateur, il est fréquent que l'on n'accède plus à  genetic of the small computer, it is common that we no longer access

l'unité de disque optique au cours d'utilisations futures du programme.  the optical drive during future uses of the program.

Certains programmes contiennent des structures de données  Some programs contain data structures

audio vidéo ou autres qui ne sont pas transférées sur le disque dur ma-  audio video or other that is not transferred to the hard drive ma-

gnétique pour un stockage permanent; à la place, on accède à ces don-  genetic for permanent storage; instead, we access these data

nées sur le CD-ROM pendant le fonctionnement du programme. En parti-  born on the CD-ROM while the program is running. In part-

culier pour de tels programmes, mais également pour d'autres applica-  especially for such programs, but also for other applications.

tions qui utilisent une mémoire de masse à CD-ROM, on désire conti-  tions that use CD-ROM mass memory, we want to 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  increase the speed at which data can be accessed from the CD-ROM and supplied to the data buses of the system

informatique. D'un point de vue historique, le goulot d'étranglement prin-  computer science. Historically, the main bottleneck

cipal pour le transfert de données à partir de la mémoire à CD-ROM a été  cipal for transferring data from memory to CD-ROM has been

la vitesse à laquelle des données sont lues sur le disque CD-ROM lui-  the speed at which data is read from the CD-ROM disc itself

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  same, rather than the controller who assembles the data in a certain format and which performs the detection and correction of errors and the like

opérations de transfert de données. Pour s'attaquer à ce goulot d'étran-  data transfer operations. To tackle this foreign bottleneck

glement, on a augmenté la vitesse de rotation des CD-ROM jusqu'à une  We have also increased the speed of rotation of CD-ROMs to a

valeur un grand nombre de fois supérieure à la vitesse de rotation nomi-  value a large number of times greater than the nominal speed of rotation

nale qui est fixée par les standards des CD-ROM. Par conséquent, des  which is fixed by CD-ROM standards. Therefore,

données sont lues sur le disque CD-ROM à des vitesses accrues, jus-  data is read from the CD-ROM disc at increased speeds, up to

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  that to the point at which operations of the data transfer controller now limit, or may limit in the short term, the data transfer rates. Technologies are now being introduced using higher density data recording discs, and further refinements which are under development will provide data recording densities

encore plus élevées. Les données sont lues dans ces systèmes de mé-  even higher. The data is read in these meta systems.

moire de masse de densité supérieure à des cadences encore plus éle-  mass of higher density at even higher rates

vées, ce qui imposera des exigences encore plus importantes au contrô-  which will place even greater demands on control.

leur de transfert de données.their data transfer.

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  It is necessary to perform a variety of operations on the data that is read from the CD-ROM disc before the data

puissent être fournies aux bus de données du système informatique hôte.  can be supplied to the data buses of the host computer system.

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  These operations are generally familiar to those skilled in the art and include descrambling, reorganization, registration

en tampon, la correction d'erreurs et la détection d'erreurs. On peut trou-  in buffer, error correction and error detection. We can find

ver des informations supplémentaires concernant les opérations classi-  see additional information regarding the classic operations

ques qui sont effectuées dans le transfert de données à partir d'une mé-  which are performed in the transfer of data from a meta

moire à disque CD-ROM vers un bus de données d'un système informati-  CD-ROM disk drive to a data bus of a computer system

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  as a host in the U.S. patent No. 4,680,764 issued to Suzuki et al., in the U.S. Patent. No. 4,802,152 issued to Markvoort et al., and in the U.S. Patent. No. 5,581,715 issued to Verinsky et al. FIG. 1 illustrates aspects of the CD-ROM controller described in the patent of

Verinsky, que l'on pourrait utiliser pour commander le transfert de don-  Verinsky, which could be used to order data transfer

nées à partir d'un disque de mémoire CD-ROM vers le bus IDE d'un ordi-  from a CD-ROM memory disc to the IDE bus of a computer

nateur hôte. Des données sont lues sur le disque CD-ROM en réfléchis-  host host. Data is read from the CD-ROM disc when reflected.

sant de la lumière laser sur la surface d'un disque tournant et en détec-  sant laser light on the surface of a rotating disc and detecting

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  both the modulations that are introduced into the laser light reflected by optical variations on the surface of the disc. An analog-to-digital converter converts the detected modulations into digital signals which are supplied in the form of a serial bit stream 10, to be applied to the CD-ROM controller. CD-ROM discs store data that is typically less random

que ce qui serait optimal, ce qui fait que les données peuvent acciden-  than would be optimal, which means that data can accidentally

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  so much present timing signals or other control signals. Therefore, the data recorded on the CD-ROM disc is scrambled. The data which is extracted from the reflected light is therefore applied to a descrambling circuit 12 and is

désembrouillées avant un traitement ultérieur. Un dispositif d'organisa-  descrambled before further processing. An organizational system

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  Data 14 reorganizes the descrambled serial data bit stream into bytes and stores the data in a buffer memory 16. The data is saved on a CD-ROM in sectors

d'environ 2 Ko et les données sont transférées du disque vers l'ordina-  approximately 2 KB and data is transferred from disk to computer

teur hôte secteur par secteur. Un secteur de données entier est donc en-  host by sector. An entire data sector is therefore

registré dans la mémoire tampon avant que la correction d'erreurs et la  stored in the buffer before error correction and the

détection d'erreurs ne commencent.error detection does not begin.

Une fois qu'un secteur de données de 2 Ko provenant du dis-  Once a 2K data sector from the dis-

que CD-ROM est enregistré dans la mémoire tampon 16, la correction  that CD-ROM is saved in buffer 16, the correction

d'erreurs et la détection d'erreurs sont effectuées sur les données enre-  errors and error detection are performed on the recorded data

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  registered. Error correction and error detection for CD-ROM mass storage systems are largely required by ISO / IEC-10149 for recording data on CD-ROM discs . Conventional error protection, error correction, and detection coding operations

d'erreurs pour des systèmes de mémoire de masse à CD-ROM sont dé-  errors for CD-ROM mass storage systems are resolved

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é  written in the U.S. patent No. 4,413,340 issued to Odaka et al., and in the U.S. Patent. n 4,680,764 issued to Suzuki et al. Integrity

des données est maintenue au cours du transfert des données du CD-  data is maintained during data transfer from 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:  ROM to the host computer by three sets of error correction data, which are appended to the user data in the sector:

cent-soixante-douze octets de correction d'erreurs de parité P, cent qua-  one hundred and seventy-two bytes of P parity error correction, one hundred and forty

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,  three Q parity error correction bytes and four error detection code (or EDC) bytes. The incorporation of the P parity and Q parity data incorporates into the CD-ROM data a double interlaced Reed-Solomon code. The data within the sector can be grouped into two data planes, namely a least significant bit plan, or LSB, and a most significant bit plan, or MSB,

chaque plan de données ayant une matrice de correction d'erreurs en-  each data plane having an error correction matrix

trelacée, comme celle qui est représentée sur la figure 2. La matrice re-  trelacé, like that which is represented on figure 2. The matrix represents

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  shown in Figure 2 has forty-three P vectors consisting of twenty-four bytes of user data, in combination with two P parity bytes, to form Reed-Solomon code words

(26, 24) sur GF(28). Vingt-six vecteurs Q s'étendent le long des diagona-  (26, 24) on GF (28). Twenty-six Q vectors extend along the diagona-

les de la matrice et consistent en quarante-trois octets de données d'uti-  those in the matrix and consist of forty-three bytes of user data

lisateur et deux octets de parité Q formés par des mots de code de Reed-  reader and two Q parity bytes formed by Reed- code words

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  Solomon (45, 43) on GF (28). Data is read from the buffer memory 16 (FIG. 1) in the form of P vectors and Q vectors,

calculs de correction d'erreurs sont effectués par une logique de correc-  error correction calculations are performed by a correction logic

tion d'erreurs 18 pour identifier des erreurs dans les données, et lorsque  error 18 to identify errors in the data, and when

des erreurs sont trouvées, les équations d'erreur sont résolues pour cor-  errors are found, the error equations are solved to 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  correct errors. When errors are found in the P vectors and the Q vectors, the data in the buffer 16 is corrected by replacing the erroneous bytes of data in the buffer

par des octets de données corrigés.  by corrected data bytes.

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  After all the data correction operations have been carried out, it is usual to detect if errors remain in the

données corrigées, ou si des erreurs ont été introduites par les opéra-  corrected data, or if errors have been introduced by the operators

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)  corrections. Error detection is performed using a cyclic redundancy check (or CRC) circuit, in which the entire data block (-2000 bytes x 8 bits) is treated as a long binary number which is divided by a polynomial of control. In accordance with ISO / IEC-10149, the error control polynomial is P (x) = (x16 + x15 + x2 + 1). (X16 + x2 + x + 1). The data recorded on the CD-ROM contains four bytes of error detection code (EDC)

ajoutés de façon que le nombre binaire long comprenant les données en-  added so that the long binary number including the data in-

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  recorded on the CD-ROM is fully divisible by the error control polynomial. If the long binary number of the data that is

transférées à partir du CD-ROM est divisible de façon entière par le poly-  transferred from CD-ROM is fully divisible by poly-

nôme de contrôle d'erreurs, on suppose qu'il ne reste pas d'erreurs sup-  error checking, it is assumed that there are no more errors

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  in the corrected data. If a non-zero remainder results from the error checking division, then there are still errors in

les données corrigées, et une correction d'erreurs supplémentaire est né-  corrected data, and an additional error correction was born

cessaire. Selon une variante, les données peuvent simplement être re-  stop. Alternatively, the data can simply be retrieved

lues sur le CD-ROM et le processus de correction et de détection d'er-  read on the CD-ROM and the process of correction and detection of er-

reurs peut être répété. Des formes de réalisation par matériel de la divi-  reurs can be repeated. Material embodiments of the divi-

sion de contrôle d'erreurs, de type caractéristique, sont simples, et con-  Error checking, of the characteristic type, are simple, and 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  exist in shift registers with feedback connections and an OR-EXCLUSIVE gate network (E). Error detection requires that the entire data block be read into the buffer by the logic of

détection d'erreurs 20 et soit décalé en série à travers le circuit de con-  error detection 20 and be shifted in series through the circuit

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  check by cyclic redundancy 22. As long as the error correction and error detection operations produce a remainder equal to zero, the data can be transferred from the buffer memory 16 to the data bus of the computer system, under the shape of a

secteur sortant 24 ayant fait l'objet d'un contrôle d'erreurs.  outgoing sector 24 having been the subject of an error check.

La correction et la détection d'erreurs sont des aspects prenant  Correction and error detection are aspects that take

beaucoup de temps dans le transfert de données de dispositifs de mé-  a lot of time in transferring data from mete devices

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  CD-ROM to computer data buses. However, some sort of error correction is necessary in reading data from an optical memory disc, due to the nature of the data reading operation and the processing required to place

les données sous un format approprié pour un ordinateur. De plus, cer-  data in a format suitable for a computer. In addition, some

tains aspects de la correction d'erreurs sont imposés par les normes in-  some aspects of error correction are imposed by the standards

dustrielles pour les CD-ROM et d'autres systèmes de mémoire de masse optiques.  for CD-ROMs and other optical mass storage systems.

Un but de la présente invention est donc de procurer une ar-  An object of the present invention is therefore to provide an 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  architecture for the correction of data errors which are read in a mass storage device, which allows higher data rates of

transfert de données.data transfer.

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  One aspect of the present invention provides a method for transferring data between a mass storage system to disk.

optique et un ordinateur hôte. Une chaîne de données est lue sur le dis-  optical and a host computer. A data string is read from the device.

que de mémoire optique et elle est convertie sous une forme compatible  that of optical memory and it is converted into a compatible form

avec l'enregistrement dans une mémoire numérique. La chaîne de don-  with recording in digital memory. The donation chain

nées qui est lue est enregistrée dans une mémoire tampon pendant  which is read is stored in a buffer for

qu'elle est fournie à un circuit de détection d'erreurs. Une détection d'er-  that it is supplied to an error detection circuit. An 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  rors is performed on the read data string, to determine if errors are present in the read data string, and at least part of the error detection operation is performed while the read data string is stored in the buffer. The data string read is transferred to the host computer system if the error detection operation determines that no error is present in the data string read. On the contrary, if the error detection operation determines that errors are present in the

chaîne de données lue, une opération de correction d'erreurs est effec-  data string read, an error correction operation is performed

tuée sur la chaîne de données lue, avant que la chaîne de données lue  killed on the read data string, before the read data string

ne soit transférée vers l'ordinateur hôte.  is transferred to the host computer.

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  Another aspect of the present invention provides a method for transferring data between an optical disk mass storage system and a host computer, by reading a data string from the optical memory disk and by buffering the string of data that is read. The data string read is applied to a first error detection circuit, and the first circuit

de détection d'erreurs effectue une première opération de détection d'er-  error detection performs a first error detection operation

reurs sur la chaîne de données lue, pour déterminer si des erreurs exis-  errors on the data string read, to determine if errors exist

tent dans la chaîne de données lue, et pour déterminer une première va-  attempt in the data string read, and to determine a first value

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  error detection which is characteristic of errors present in the data string read. An error correction operation is

effectuée sur la chaîne de données lue, pour identifier une première er-  performed on the data string read, to identify a first 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  error in the data string read and to determine an error configuration for the first error. The first error is then corrected in the read data string, and a second error detection operation is performed to determine if errors remain in the

chaîne de données corrigée.corrected data string.

Dans un mode de réalisation préféré de ce second aspect de la  In a preferred embodiment of this second aspect of the

présente invention, I'étape qui consiste à effectuer une seconde opéra-  present invention, the step of performing a second operation

tion de détection d'erreurs comprend le calcul d'une correction à apporter  error detection tion includes the calculation of a correction to be made

à la première valeur de détection d'erreurs, sur la base de la configura-  at the first error detection value, based on the configuration

tion d'erreur qui est déterminée pour la première erreur.  error that is determined for the first error.

D'autres caractéristiques et avantages de l'invention seront  Other characteristics and advantages of the invention will be

mieux compris à la lecture de la description qui va suivre de modes de  better understood on reading the following description of modes of

réalisation, donnés à titre d'exemples non limitatifs. La suite de la des-  embodiment, given by way of nonlimiting examples. The rest of the

cription se réfère aux dessins annexés, dans lesquels:  description refers to the accompanying drawings, in which:

La figure 1 montre une forme de réalisation classique d'un con-  Figure 1 shows a typical embodiment of a con-

trôleur de transfert de données de CD-ROM.  CD-ROM data transfer monitor.

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  Figure 2 shows the standard error correction matrix for data stored in memory disks

de masse CD-ROM.mass CD-ROM.

La figure 3 montre un système de mémoire de masse à disque  Figure 3 shows a disk mass storage system

optique conforme à un mode de réalisation préféré de la présente inven-  optics according to a preferred embodiment of the present invention

tion. La figure 4 montre la structure de données enregistrées dans  tion. Figure 4 shows the structure of data recorded in

un secteur d'un disque CD-ROM de mode 1.  a sector of a mode 1 CD-ROM disc.

La figure 5 montre un circuit de contrôle par redondance cycli-  Figure 5 shows a cyclic redundancy control circuit

que que l'on peut utiliser avec la structure de la figure 5.  that can be used with the structure of Figure 5.

La figure 6 montre un contrôleur de CD-ROM conforme à un  Figure 6 shows a CD-ROM controller conforming to a

mode de réalisation préféré de la présente invention.  preferred embodiment of the present invention.

La figure 7 montre un processeur de détection d'erreurs con-  Figure 7 shows an error detection processor

forme à la présente invention.form to the present invention.

La figure 8 montre un compteur que l'on peut utiliser en asso-  Figure 8 shows a counter that can be used in combination

ciation avec des modes de réalisation préférés de la présente invention.  ciation with preferred embodiments of the present invention.

La figure 9 montre un autre mode de réalisation d'un proces-  FIG. 9 shows another embodiment of a process

seur de détection d'erreurs conforme à la présente invention.  error detection device according to the present invention.

Des modes de réalisation préférés de la présente invention  Preferred embodiments of the present invention

permettent d'effectuer des opérations de correction d'erreurs et de dé-  allow error correction and error correction operations

tection d'erreurs plus rapides, sans compromettre les niveaux de con-  faster error detection, without compromising compliance levels

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  trust in the data that is read from the CD-ROM and supplied to the host computer. These embodiments of the invention can be

mis en oeuvre tout en maintenant la compatibilité avec les normes indus-  implemented while maintaining compatibility with industrial standards

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  trielles for CD-ROM memory devices. In accordance with one aspect of the present invention, data is read from a mass storage unit and the serial data stream is applied in parallel to both a buffer memory and an error detection circuit. The error detection circuit, which could be a control circuit by

redondance cyclique classique, effectue une opération de détection d'er-  classic cyclic redundancy, performs an 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  rors on the data which are read from the mass storage unit, preferably at the same time as the data stream is recorded in

la mémoire tampon. L'opération de détection d'erreurs pourrait par exem-  the buffer. For example, the error detection operation could

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  ple consist in dividing by the error control polynomial the serial data stream which constitutes a data block, and in determining the remainder of the division operation. If the error detection operation produces a result in accordance with the absence of errors in the data block, the

bloc de données qui est enregistré dans la mémoire tampon peut être di-  block of data that is stored in the buffer can be 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  correctly transferred to the data bus of the host computer system, by not performing any data correction operation on the

données qui sont lues.data that is read.

Cet aspect de la présente invention procure plusieurs avanta-  This aspect of the present invention provides several advantages.

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  with respect to conventional error correction and error detection operations which are performed in conventional data transfer operations between CD-ROM memory devices and the data buses of host computer systems. We can give

système une configuration telle que des opérations de correction de don-  system a configuration such as data correction operations

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  data are only performed when there is reason to believe that data correction is necessary. Eliminating unnecessary data correction operations increases the speed at which data can be transferred. There is obviously a small probability that an erroneous block of data can be entirely divisible by the control polynomial, and it is conceivable that it may be desirable not to rely exclusively on the zero remainder which is produced by l error detection operation. In such a case, the data transfer system could perform data correction operations in a characteristic manner after a zero remainder has been obtained, but it could keep track of whether any data has been corrected or not. in error correction operations. If no error correction is made after the initial indication of no error in the error detection operation, then the error detection operation would not be performed following

l'opération de correction de données. Bien que des opérations de correc-  the data correction operation. Although corrective operations

tion d'erreurs soient effectuées dans cette variante, I'opération de détec-  tion of errors are performed in this variant, the detection operation

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  Error handling is always performed only during the initial reading of data from the mass storage system. Since it is not necessary to read the data in the buffer memory and supply it in series to the error detection circuits, following the operation of

correction d'erreurs, cette variante est encore considérablement plus ra-  error correction, this variant is even considerably more

pide que la forme de réalisation classique pour la correction et la détec-  pide than the conventional embodiment for correction and detection

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  tion of errors. In such embodiments, it is not necessary to wait for the completion of the error detection operation before starting the error correction operations. Therefore, the

opérations de correction d'erreurs peuvent être commencées immédiate-  error correction operations can be started immediately-

ment après que les données ont été enregistrées dans la mémoire tam-  after the data has been stored in the

pon.pon.

Ces aspects de l'invention sont très avantageux pour des sys-  These aspects of the invention are very advantageous for systems

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  subjects in which there are few errors in reading data from a CD-ROM memory disc, or in assembling the data read, to place them in a format suitable for use by a computer system, or in the application of data to the data bus of the host computer system. Convenient systems can have considerably higher error rates, especially when

de nouvelles technologies sont introduites dans des systèmes de stock-  new technologies are introduced into stock systems-

age optiques. Des systèmes de stockage sur disque optique qui utilisent  optical age. Optical disk storage systems that use

des disques de densité plus élevée ayant de plus petites tailles d'élé-  higher density discs with smaller element sizes

ments de données, comme le système de disque vidéo numérique (DVD),  data, such as the digital video disc (DVD) system,

peuvent avoir des taux d'erreurs accrus. De plus, des disques de mé-  may have increased error rates. In addition, metal disks

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  single write and multiple read optical moire (or "write once / read many") and optical discs with rewrite capability typically have information modulation techniques that are less robust than those of CD-ROM discs, which means that systems using such discs of new technology can also be affected by error rates

plus élevés que ceux que l'on observe pour des disques de mémoire CD-  higher than those observed for CD-

ROM.ROM.

D'autres aspects de la présente invention trouvent une applica-  Other aspects of the present invention find application.

tion particulière dans des systèmes plus réalistes dans lesquels des er-  tion in more realistic systems in which er-

reurs se manifestent au cours de la lecture de données dans des systè-  rors appear during the reading of data in systems

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  mass memory. Certain embodiments of the invention read data from a mass memory unit and they provide in parallel to a buffer memory and to an error detection circuit.

le train de bits série qui est lu. Les données lues sont organisées en oc-  the serial bit stream that is read. The data read is organized in oc-

tets et elles sont enregistrées dans la mémoire tampon. En même temps,  tets and they are saved in the buffer. At the same time,

le circuit de détection d'erreurs effectue une opération de détection d'er-  the error detection circuit performs an error detection operation

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  errors on the serial data stream which is read in the mass memory unit. Here again, the error detection operation could consist in dividing by the error control polynomial a segment of the serial data stream corresponding to a data block, and in determining the remainder of the division operation. The rest of this division operation

d'erreur initiale est enregistré, contrairement à des systèmes EDC classi-  error error is recorded, unlike conventional EDC systems

ques qui rejettent les données. Une correction d'erreurs est ensuite ef-  who reject the data. An error correction is then made

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  carried out on the data which are recorded in the buffer memory, by using for example a code of the kind produced by Reed-Solomon, in the conventional manner. Here again, the error correction operations can be started as soon as the data is assembled in the buffer memory, without waiting for the completion of the detection operation.

d'erreurs. Lorsque des octets erronés sont identifiés par le circuit de cor-  errors. When erroneous bytes are identified by the cor-

rection d'erreurs, les équations d'erreurs sont résolues pour déterminer la  error correction, the error equations are solved to determine the

configuration d'erreur correspondante, et les octets erronés sont rempla-  corresponding error configuration, and erroneous bytes are replaced

cés dans la mémoire tampon. Les emplacements des octets erronés dans  these are in the buffer. The locations of the wrong bytes in

le train de données série, ainsi que les configurations d'erreur des oc-  the serial data stream, as well as the error configurations of the 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-  tets, are then used to calculate corrections to the rest of the error detection code (EDC), which results from the initial error division by the read error control polynomial in the data stream. The rest corresponding to the error detection code (EDC) is corrected in accordance with the particular location and the confi-

guration d'erreur particulière de chacun des octets corrigés. Le reste cor-  guration of particular error of each of the corrected bytes. The rest 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  corresponding to the error detection code is tested after the correction of each erroneous byte, to determine whether the remainder corresponding to the

code de détection d'erreurs est différent de zéro, et si le reste corres-  error detection code is different from zero, and if the rest correspond to

pondant au code de détection d'erreurs est différent de zéro, il est enre-  responding to the error detection code is different from zero, it is recorded

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  registered and error correction operations are continued. This is quite separate from the classic error correction technique, which rejects the error configuration and the error location

après que des octets erronés ont été corrigés dans la mémoire tampon.  after bad bytes have been corrected in the buffer.

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  Error correction continues until the remainder corresponding to the error detection code is reduced to a value of zero. At this point, it is assumed that all errors have been corrected and that the data stored in the buffer memory is supplied to the bus.

données de l'ordinateur hôte. Si le reste correspondant au code de dé-  host computer data. If the rest corresponding to the code of de-

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  error correction does not reach zero, the entire error correction process can be repeated on the data already corrected once, which are in the buffer. More preferably, the data sector is read again on the CD-ROM and all the processes of

code de détection d'erreurs et de code de correction d'erreurs de la pré-  error detection code and error correction code of the pre-

sente invention est répété.sente invention is repeated.

Comme avec les modes de réalisation décrits précédemment,  As with the embodiments described above,

cet aspect de l'invention procure également des cadences de transmis-  this aspect of the invention also provides transmission rates.

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  higher data due to the fact that data is never read from the buffer to be supplied bit by bit to a circuit

détection d'erreurs. De plus, en interrompant des opérations de correc-  error detection. In addition, by interrupting correction operations

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  tion of errors and transferring the data block after the rest of the error division has been reduced to zero, at least some operations of

correction d'erreurs inutiles sont évitées, ce qui améliore encore davan-  correction of unnecessary errors are avoided, which further improves

tage la cadence de transfert de données. On va maintenant présenter  the rate of data transfer. We will now present

une description plus détaillée de la présente invention, en commençant  a more detailed description of the present invention, starting

par une description de l'environnement général dans lequel au moins  by a description of the general environment in which at least

certains modes de réalisation préférés de la présente invention sont utili-  certain preferred embodiments of the present invention are used.

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  his. Figure 3 shows an optical disc mass storage system which can be a CD-ROM mass storage device. The data transfer system which is shown operates under the

commande d'un microcontrôleur 40, qui peut être du type 8051, fonction-  control of a microcontroller 40, which may be of the 8051 type, function-

nant conformément à un programme de commande qui est enregistré dans une mémoire non volatile 42. De l'information est enregistrée de  according to a control program which is stored in a non-volatile memory 42. Information is recorded from

façon optique sur le disque de mémoire 50 sous la forme de régions sur-  optically on the memory disk 50 in the form of regions sur-

élevées ou abaissées sur la surface d'un disque réfléchissant, ou sous la  raised or lowered on the surface of a reflective disc, or below the

forme de variations locales des propriétés optiques du disque. L'informa-  form of local variations in the optical properties of the disc. The informa-

tion est lue sur le disque en dirigeant sur la surface du disque 50 un fais-  tion is read on the disc by directing on the surface of the disc 50 a

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  laser beam coming from an optical reading head 52, and collecting the light which is reflected by the disc. A detector which is incorporated in the optical read head 52 receives the reflected light and generates an analog electrical signal representing the recorded information, and provides this signal to the analog signal processor 54. The analog signal processor 54 receives the signal of information that comes from the

tête de lecture optique 52 et il reçoit l'information d'asservissement pro-  optical read head 52 and it receives the servo information

venant du plateau ou du moteur qui fait tourner le disque de mémoire 50.  coming from the plate or from the motor which rotates the memory disk 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  The analog signal processor processes the information signal and provides the information signal in a format suitable for the digital signal processor 56. The digital signal processor 56 provides at its output a digitized information signal which is directed to the controller

CD-ROM 58 ou vers un convertisseur numérique-analogique 60. Le con-  CD-ROM 58 or to a digital-analog converter 60. The 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  digital-to-analog converter is capable of converting the digital information signal from the digital signal processor 56 to an analog signal. This analog signal is supplied to the output terminal

* audio 62, constituant une sortie audio du lecteur de CD-ROM. Le sous-* audio 62, constituting an audio output from the CD-ROM drive. The sub-

système comprenant le convertisseur analogique-numérique 60 et la sor-  system comprising the analog-digital converter 60 and the output

tie audio 62 est incorporé de façon caractéristique dans un petit système informatique, pour permettre de reproduire des disques compacts audio,  tie audio 62 is typically incorporated into a small computer system to allow audio compact discs to be reproduced,

sans passer par le circuit de transfert de données numériques du con-  without going through the digital data transfer circuit of the

trôleur de CD-ROM. Des données à transférer vers le bus de données 64,  CD-ROM thrower. Data to be transferred to the data bus 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  which is illustrated as an IDE data bus, are transmitted by the CD-ROM controller 58 which operates in communication with

une mémoire tampon 66 pour définir le format des données et pour ef-  a buffer memory 66 for defining the format of the data and for ef-

fectuer une correction d'erreurs et une détection d'erreurs sur les don-  perform error correction and error detection on data

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  before supplying the data to the IDE 64 bus. Figure 3 shows a mass memory system for reading

des données qui sont enregistrées sur des disques CD-ROM. L'organisa-  data that is recorded on CD-ROM discs. The organiza-

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  tion of data in CD-ROM sectors is defined by ISO / IEC-10149: Information Technology-Data Interchange on Read-Only

120mm Optical Data Disks (CD-ROM) (Technologie de l'Information -  120mm Optical Data Disks (CD-ROM) (Information Technology -

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  Data exchange on 120 mm Optical Data Discs (Read Only). This standard imposes the major part of the structure of the data which is recorded on the CD-ROM disc, but different variants are possible within the framework of this overall structure. There are three different sector modes in the standard, so that the data recorded on the CD-ROM 50 of Figure 3 could be presented in any of the three modes: mode 0, mode 1 and mode 2 Thus, the circuit of Figure 3 must be able to accept the different data structures that are associated with the different modes, in response to the data byte of

mode qui est inclus dans les données de CD-ROM elles-mêmes. Cet as-  mode which is included in the CD-ROM data itself. This as-

pect du transfert de données à partir de dispositifs du type CD-ROM est  pect of data transfer from CD-ROM type devices is

bien connu. L'explication restante est présentée essentiellement en con-  well known. The remaining explanation is presented mainly in con-

sidérant le transfert de données de mode 1 à partir d'un disque CD-ROM.  staggering mode 1 data transfer from a CD-ROM disc.

La figure 4 montre la structure des données qui sont enregis-  Figure 4 shows the structure of the data that is recorded

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 à  very in a mode 1 sector, as defined by the standard. The sector is subdivided into a certain number of fields comprising a twelve-byte synchronization configuration which identifies the start of a sector for the reading of the data by the optical read head and the initial data processing circuit of FIG. 3. A header to

quatre octets contient l'adresse absolue du secteur, en minutes, secon-  four bytes contains the absolute address of the sector, in minutes, second-

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  and and frames (1 second = 75 frames), and a mode byte which indicates in which of the three possible modes the data in the sector is

enregistrées. Des secteurs du mode 1 contiennent 2048 octets de don-  saved. Mode 1 sectors contain 2048 bytes of data.

nées d'utilisateur, qui constituent des octets 16 à 2068 du secteur de  user data, which constitute bytes 16 to 2068 of the

mode 1, qui sont suivis par quatre octets de données de code de détec-  mode 1, which are followed by four bytes of detection code data

tion d'erreurs (EDC), huit octets intermédiaires, cent-soixante-douze oc-  error message (EDC), eight intermediate bytes, one hundred and seventy-two oc-

tets de parité P et cent-quatre octets de parité Q. Comme envisagé ci-  parity heads P and one hundred and four bytes of parity Q. As envisaged above

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  above, the parity bytes P and the parity bytes Q constitute the error correction code (ECC). The error detection code (EDC) and the error correction code (ECC) constitute the two complementary error protection mechanisms for each sector of

CD-ROM. Le champ EDC, qui fait partie d'un code de contrôle par redon-  CD-ROM. The EDC field, which is part of a redundancy control code

dance cyclique (CRC) à trente-deux bits qui contient ses champs de don-  thirty-two bit cyclic dance (CRC) which contains its data fields

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  protected, is used to detect if there are errors in a sector. The ECC field, which includes the P parity field at 172 bytes and the Q parity field at 104 bytes, is a ReedSolomon Product Type Code (or RSPC for "Reed-Solomon Product-like Code") which

est utilisé pour détecter et corriger des erreurs dans un secteur. Par con-  is used to detect and correct errors in a sector. By con-

séquent, le code EDC procure un contrôle pour déterminer si des erreurs  sequential, the EDC code provides a check to determine if errors

sont présentes dans un secteur qui est lu, et le code ECC permet la cor-  are present in a sector which is read, and the ECC code allows the 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  correction of errors in the data transferred. Conventionally, as shown in Figure 1, there has been an implicit presumption of

la présence d'erreurs dans les données qui sont lues sur le disque CD-  the presence of errors in the data which is read on the CD-disc

ROM, ce qui fait que toutes les opérations ECC possibles sont effectuées  ROM, which means that all possible ECC operations are performed

avant qu'une opération EDC quelconque ne soit effectuée. Cette straté-  before any EDC operation is performed. This strategy

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  gie is capable of correcting errors in transferred data sectors, without using control circuits to assess whether

est nécessaire ou non d'effectuer une opération d'erreurs particulière.  whether or not it is necessary to perform a particular error operation.

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  On the other hand, data transfer operations will be slowed down by the completion of error correction operations on data which either did not initially contain errors, or have been corrected.

de manière qu'aucune erreur supplémentaire ne reste dans les données.  so that no additional errors remain in the data.

Il est important de noter qu'alors que les normes industrielles pour l'en-  It is important to note that while industry standards for

registrement et la lecture de données enregistrées sur des disques CD-  recording and playback of data recorded on 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  ROMs require both error correction and error detection, the particular structure which is illustrated in Figure 1 is not imposed

par les normes.by standards.

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  For CD-mode mode 1 sectors, the code word EDC consists of bytes 0 to 2067 of a sector, while for sectors

de mode 2, forme I de CD-ROM XA, le mot de code EDC consiste en oc-  mode 2, form I of CD-ROM XA, the code word EDC consists of 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  tets 16 to 2075 in the sector. In EDC calculations, the least significant bit (or LSB) of a data byte is used first, so that the bytes of a sector can be designated by Bi, i = 0 to 2351, and one bit of the data byte is Bij, j = 7 (MSB) to 0 (LSB), the LSB symbol designating the least significant bit. The EDC codeword for a mode I sector of CD-ROM is the 16,544-bit number: 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,  B2067.1 B2067.2 B2067.3 B2067.4 B2067.5 B2067.6 B2067 7,

ou en notation polynomiale:or in polynomial notation:

16543 16542 16541 1654016543 16542 16541 16540

0,1".65430.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:  Bx 16 + Bo, 1x16542 + Bo, 2x16541 + Bo, 3x16540 + B2067,4X3 + B2067,5x2 + B2067,6x + B2067,7 For a mode 2 sector, form 1 of CD-ROM XA, the code word EDC is the 16480 bit number:

B16,0 B16,1 B16,2 B16,3 B16,4B16,5 B16,6 B16,7 B17,0...  B16.0 B16.1 B16.2 B16.3 B16.4 B16.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  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  or, in polynomial notation: 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-  For mode 1 data, the EDC code protects the 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  chronization, header, user data and EDC. The four-byte EDC field, in combination with its protected data fields

comprenant les champs de synchronisation, d'en-tête, de données d'utili-  including synchronization, header, user data fields

sateur et EDC, pour des données de mode 1, forment le mot de code  sator and EDC, for mode 1 data, form the codeword

EDC.EDC.

Conformément à la norme ISO/IEC-10149, le mot de code EDC  In accordance with ISO / IEC-10149, the code word EDC

qui est enregistré sur le disque CD-ROM est rendu divisible de façon en-  which is recorded on the CD-ROM disc is made divisible in-

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  third by the control polynomial: P (X) = (X16 + x15 + X2 + 1) (x16 + x2 + x + 1) (1) OR P (X) = X32 + X31 + x16 + x15 + X4 + x3 + X +1 by choosing the appropriate value for the four EDC bytes which are

annexés aux champs de synchronisation, d'en-tête et de données d'utili-  appended to the synchronization, header and user data fields

sateur. En divisant par le polynôme de contrôle le mot de code EDC qui  sator. By dividing by the control polynomial the code word EDC which

est lu sur le CD-ROM, et en déterminant si le reste de la division est dif-  is read on the CD-ROM, and determining if the rest of the division is different

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  being zero, you can use the EDC code rule to check whether or not errors are present in the data that is read. The EDC rule can be implemented by means of a cyclic code decoder such as that shown in FIG. 5. The circuit could for example be produced in the form of a series of synchronous DQ flip-flops, with

une réaction établie par l'intermédiaire de portes OU-EXCLUSIF connec-  a reaction established via connected EXCLUSIVE gates

tées entre des sorties Q et des entrées D successives. De tels circuits  tees between successive Q outputs and D inputs. Such circuits

sont bien connus. On doit faire passer le mot de code EDC entier à tra-  are well known. Pass the entire EDC codeword through

vers le décodeur de code cyclique, sous la forme d'un train de bits série.  to the cyclic code decoder, in the form of a serial bit stream.

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  After the last bit is entered in the cyclic code decoder, the bits of the CRC register are checked, for example by summing the thirty-two bits of the CRC register. If all the bits in the CRC register are equal to zero, the code word EDC is assumed to be correct, since the EDC rule has not identified any errors in the protected data fields. If the division returns a non-zero value, it must

alors y avoir des erreurs dans les champs de données protégés. Cepen-  then there will be errors in the protected data fields. However

dant, la règle EDC ne peut pas dire quels sont les bits erronés dans le  However, the EDC rule cannot tell which bits are wrong in the

mot de code EDC.EDC code word.

La correction de données est accomplie dans le transfert de  Data correction is accomplished in the transfer of

données à partir d'un disque de mémoire CD-ROM par le code de correc-  data from a CD-ROM memory disc by the correction code

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  tion of errors (ECC), which is preferably a Reed-Solomon Product Type Code (RSPC), applied in a manner similar to that described in US patents. No. 4,413,340, issued to Odaka et al., and No. 4,680,764, issued to Suzuki et al., mentioned above. Bytes 12 to 2075 of each data sector in the Mode 1 CD-ROM are protected by the double interleaved RPSC code. The protected data bytes of the data sector being read are arranged in a pair of matrices of the type shown in Figure 2. The columns of the matrix are called vectors P, and these are Reed-Solomon code words ( 26, 24) on GF (28). The diagonals of the matrix are vectors Q, which are Reed-Solomon code words (45, 43) on

GF(28). Le secteur comprend 86 vecteurs P et 52 vecteurs Q divisés en-  GF (28). The sector includes 86 P vectors and 52 Q vectors divided into-

tre deux plans de données, I'un pour les octets de moindre poids, et l'au-  three data planes, one for the least significant bytes, and the other

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  be for the most significant bytes. The P vectors and the Q vectors are the basic units for the application of the error correction mechanism. Each vector P consists of 26 bytes, comprising 2 bytes of parity. We can develop a set of error equations for each of the

vecteurs P. S'il y a une erreur dans un vecteur P, on peut obtenir l'em-  vectors P. If there is an error in a vector P, we can obtain the em-

placement d'erreur (c'est-à-dire l'octet particulier du vecteur qui est erro-  error placement (i.e. the particular byte of the vector which is erro-

né) et la configuration d'erreur (c'est-à-dire la configuration de bits erro-  born) and the error configuration (i.e. the configuration of bit erro-

nés dans l'octet erroné) en résolvant le jeu d'équations d'erreurs qui est  born in the wrong byte) by solving the set of error equations which is

imposé par l'application des règles de code de type produit de Reed-  imposed by the application of Reed- type product code rules

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  Solomon. If there are no errors in the vector, the error equations have the trivial solution of an error configuration of zero. Otherwise, the error equations will provide an error location and an error configuration which are then used to generate a corrected byte of data which then replaces the erroneous data in the user data. The vectors Q have a length of forty-five bytes, including the two bytes of parity Q. The Reed-Solomon error decoding for the vectors Q is similar to that which is carried out on the vectors P. Consequently, equations errors for each

vecteur Q sont établies et résolues de façon à identifier des octets erro-  vector Q are established and resolved so as to identify erro- bytes

nés dans les vecteurs Q, et à déterminer l'emplacement et la configura-  born in Q vectors, and to determine the location and configuration

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  error for erroneous bytes. The erroneous bytes are then replaced by the correct data configuration which is obtained by

les équations d'erreurs.error equations.

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 à  Error correction itself may not be robust enough to preserve the integrity of the data that is transferred to

partir du dispositif de mémoire de masse. Un traitement de détection d'er-  from the mass storage device. ER detection processing

reurs supplémentaires est nécessaire après le processus de correction  additional reurs is necessary after the correction process

d'erreurs, du fait que la logique ECC n'a qu'une capacité limitée de cor-  errors, because the ECC logic has only a limited 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"  error correction. For each Reed-Solomon P or Q vector, only one error can be detected and corrected. Therefore, if there is more than one error in a codeword, the ECC logic is unable to perform the correct resolution to find the error location and the error configuration. The result will be that ECC logic will not be able to find a true error location or "correct"

de manière incorrecte un octet qui ne contient en réalité aucune erreur.  incorrectly a byte that actually contains no errors.

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  Therefore, the data processed by ECC logic may not be free from errors, and may in fact contain new ones.

erreurs introduites par la logique de correction d'erreurs. Certaines for-  errors introduced by the error correction logic. Some for-

mes de réalisation de logique ECC peuvent corriger deux erreurs par mot  my ECC logic realization can correct two errors per word

de code, avec l'information d'emplacement d'erreur fournie par le proces-  code, with the error location information provided by the process

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  digital signal generator, but these rules cannot provide an additional benefit sufficient to justify the additional burden of the possibility of more complex error correction. It is desirable to incorporate both ECC logic and EDC logic to provide possibilities for redundant error checking, since the

logique de détection d'erreurs utilise une approche différente de la logi-  error detection logic uses a different approach to logic

que de correction d'erreurs pour détecter des erreurs dans un secteur.  than error correction to detect errors in a sector.

L'application de la logique EDC après le processus de correction d'er-  The application of EDC logic after the 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  Error in the conventional CD-ROM memory system is a complementary process which more surely guarantees that the sector which has been the subject of error correction is free from errors. Of course, this data protection technique still has limitations, insofar as only the fields protected by the ECC codes and by the

code de code EDC sont protégés.EDC code code are protected.

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  We will now describe the functional subsets of a CD-ROM controller in accordance with the present invention, with reference to FIG. 6 which presents a different and more detailed illustration of the

contrôleur de CD-ROM 58 et de la mémoire tampon 68 qui sont repré-  CD-ROM controller 58 and buffer 68 which are shown

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-  felt in Figure 3. Referring now to Figure 6, it is noted that the CD-ROM controller receives input data in the form of a serial data bit stream 70 from the digital signal processor 56 (figure 3). The descrambler 72 receives the sector data converted to serial from the digital signal processor and begins descrambling the serial bit stream after the synchronization configuration has passed. The descrambler 72 recovers the CD-ROM sector fields (header, user data, EDC, ECC, etc.) which follow the synchronization field. The data

brouillées sont fournies au circuit d'organisation de données 74 et au gé-  scrambled are supplied to the data organization circuit 74 and to the

nérateur de code à redondance cyclique (CRC) 78. Le circuit d'organisa-  cyclic redundant code generator (CRC) 78. The organization circuit

tion de données 74 convertit les données série désembrouillées en multi-  Data 74 converts descrambled serial data to 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,  plets, typically in bytes, and it stores the data bytes in appropriate positions in a buffer 76,

pour des opérations ultérieures de correction d'erreurs et un transfert fi-  for subsequent error correction operations and a secure transfer

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  nal to the host computer. Buffer 76 is typically selected with a capacity large enough to easily store one or more sectors of data during transfer operations. The buffer memory 76 can be a dynamic random access memory

(ou DRAM), ou, si des vitesses supérieures sont souhaitables, une mé-  (or DRAM), or, if higher speeds are desirable, a me-

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  static RAM (or SRAM). An advantage of the present invention is that its faster operation makes it possible to use a slower memory, and therefore less expensive, as a buffer memory for

le système de transfert de données.  the data transfer system.

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  The data bit stream which is transmitted by the descrambler 72 is supplied not only to the data organization circuit, for recording the data in the buffer memory, but also to the CRC generator 78. The CRC generator 78 is preferably a thirty-two bit cyclic redundancy control circuit which implements the error control polynomial indicated in relation (1), such as the CRC circuit which is illustrated in FIG. 5. The generator CRC receives the incoming data stream, when the data is initially descrambled by descrambler 72 of the CD-ROM controller. The CRC generator 79 performs an initial error detection operation on the data of the incoming bit stream, while the data is still being descrambled and stored in memory, by dividing the incoming bit stream by the error control polynomial. The output information of the CRC generator is an initial remainder configuration designated by CRC0o, which is the thirty-two bit remainder word which results from the application of EDC logic of the type illustrated in FIG. 5 to a train. of uncorrected EDC code word bits. This value CRC0 is supplied to a remainder register in an error detection processor 82, after the bit stream corresponding to the entire EDC code word of the data sector has passed through the CRC generator entirely. If the error detection processor detects that the initial error control remainder CRC0 has a value equal to zero, for example by performing a NOR operation on the bits of the word CRCo, the EDC logic concludes that errors do not are

pas présentes dans le mot de données entrant. Dans un tel cas, le pro-  not present in the incoming data word. In such a case, the 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  error detection stopper 82 can immediately transmit to the data bus of the host computer the data which is stored in the buffer memory 76. In preferred embodiments of the invention, the data of the incoming sector does not effect not a new cycle through the CRC generator 78 and do not cycle through another CRC generator and are not otherwise subjected to a

traitement de logique EDC classique. Du fait que la logique EDC classi-  classical EDC logic processing. Because EDC logic 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  that most of the data in a sector passes in series through a thirty-two bit serial register, conventional EDC logic can be slow. The CD-ROM controller which is illustrated in FIG. 6 allows the incoming sector data to pass once through the EDC logic, and this EDC operation is performed at the same time as the incoming data bit stream is descrambled, organized in bytes and stored in the buffer. Therefore, the time that is consumed by EDC operations is significantly reduced in the mode.

de réalisation de la figure 6.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  In typical embodiments of the CD-ROM controller of Figure 6, error correction in accordance with Reed-Solomon Product Type Codes (RSPC) is performed on the data that is stored in the buffer, by the error correction logic 80, in the conventional manner, except that the error location and error configuration data is

conservées après que les octets erronés ont été remplacés dans la mé-  retained after the wrong bytes have been replaced in the me-

moire tampon 76. Une fois que les données du secteur transféré sont en-  buffer memory 76. Once the data of the transferred sector has been

registrées dans la mémoire tampon 76, la correction d'erreurs commence.  stored in buffer 76, error correction begins.

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  The error correction logic 80 takes the RSPC code words from the buffer, determines if there are errors in the various P and Q code words, and, as appropriate, solves the error equations to determine an error location and an error configuration for the wrong data bytes. The error location is a twelve-bit binary number that is generated by error correction logic to designate the byte of a sector that is wrong, and the error configuration is a binary number to 8 bit which is generated by error correction logic to indicate which are

les bits d'un octet qui doivent être corrigés. Dans des formes de réalisa-  the bits of a byte that need to be corrected. In embodiments

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  tion preferred by the controller of Figure 6, the error location is simply the address of a wrong byte. Error configurations are

utilisées en association avec leurs emplacements d'erreurs associés pen-  used in association with their associated error locations during

dant le processus de correction d'erreurs. Par exemple, si la configura-  during the error correction process. For example, if the configuration

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,  error is 010010102 and if the error location is 12341o, then byte 123410 of the sector data is wrong. In addition, if the original value of byte 12341o is 110101012, then the value of byte 123410 is corrected to become 110101012 @ 010010102 = 100111112,

c'est-à-dire: valeur correcte = configuration de données d'origine Ed con-  ie: correct value = original data configuration 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  error representation, the $ symbol designating the OR-EXCLUSIVE operator. ECC 80 logic performs error correction on P code words

et Q respectifs, en calculant l'octet de données corrigé (données correc-  and Q respectively, by calculating the corrected data byte (corrected data

tes = données erronées (E configuration d'erreur), et elle remplace en-  tes = erroneous data (E error configuration), and it also replaces

suite l'octet de données erroné par l'octet de données corrigé dans la  following the wrong data byte by the corrected data byte in the

mémoire tampon 76.buffer 76.

Dans des modes de réalisation préférés de la présente inven-  In preferred embodiments of the present invention

tion, l'emplacement d'erreur et la configuration d'erreur ne sont pas re-  error location and error configuration are not 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  discarded after the wrong byte has been corrected. Instead, the error location and error configuration are saved in a register

dans la logique de correction d'erreurs 80 ou, de façon plus caractéristi-  in error correction logic 80 or, more characteristically

que, dans le processeur de détection d'erreurs 82. Ces données sont uti-  that in the error detection processor 82. This data is used

lisées pour calculer une correction à apporter au reste de contrôle d'er-  taken to calculate a correction to be made to the rest of the ER control

reur initial CRC0, ou pour calculer une correction supplémentaire à ap-  initial value CRC0, or to calculate an additional correction to 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  bring to a previously corrected error control remainder, Ri. After each correction which is made to the data recorded in the buffer memory, the value of the error control remainder Ri is checked to determine whether it is equal to zero. If a value of zero is present at the last iteration of the remainder Ri, the error detection processor 82 can conclude that all the errors in the sector have been corrected and that the data are ready to be transferred from the buffer memory 76

vers le bus IDE ou un autre bus de l'ordinateur hôte. Lorsqu'on fait fonc-  to the IDE bus or another bus on the host computer. When we do

tionner de cette manière le contrôleur de CD-ROM de la figure 6, le fonc-  In this way operate the CD-ROM controller in Figure 6, the function

tionnement de la logique de correction d'erreurs 80 est interrompu après  error correction logic 80 is interrupted after

qu'une valeur égale à zéro a été retournée pour le reste de contrôle d'er-  that a value equal to zero has been returned for the remainder of ER control

reurs Ri.laughs Ri.

Le processeur de détection d'erreurs 82 applique indirectement  The error detection processor 82 indirectly applies

la règle de code de détection d'erreurs de la présente invention aux don-  the error detection code rule of the present invention to data

nées qui sont enregistrées dans la mémoire tampon, en appliquant la rè-  which are stored in the buffer, applying the

gle EDC de l'invention sur la base de l'information d'emplacement d'er-  EDC code of the invention based on the er location information

reur et de configuration d'erreur qui est générée par l'opération de la lo-  error and configuration error that is generated by the operation of the 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  error correction on the initial CRC remainder value or a subsequent value (CRC0o or Ri), to produce an updated CRC remainder value (Ri + 1). For each erroneous byte that is corrected by the error correction logic 80, the error correction logic 80 transmits the error location and error configuration information to the error detection logic 82 The error detection logic 82 recalculates the rest of CRC, R, which comes from the polynomial division.

de contrôle, en calculant une correction à apporter au reste, et en ajou-  control, calculating a correction to be made to the rest, and adding

tant cette correction au reste enregistré précédemment (Ri). En calculant  both this correction to the rest recorded previously (Ri). Calculating

une correction à apporter au reste de CRC, la logique de détection d'er-  a correction to be made to the rest of CRC, the 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  reurs does not need to divide by the control polynomial the long binary number constituted by all the bits of the sector data which are protected by the EDC code, to calculate the remainder of CRC. After the error detection processor 82 has corrected the remainder Ri in accordance with the error location and error configuration of the most recently corrected byte by the error correction logic 80, the new

valeur du registre de détection d'erreurs R est contrôlée. Si R est diffé-  value of the error detection register R is checked. If R is different

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  rent from zero, errors remain to be corrected in the data for this sector, and the error correction process continues. If R is

égal à zéro, le processeur de détection d'erreurs considère de préfé-  equal to zero, the error detection processor considers preferably

rence que toutes les erreurs dans le secteur ont été corrigées, et le pro-  rence that all errors in the sector have been corrected, and the 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  error correction is preferably stopped and the data is transferred. A new sector is read from the CDROM memory disc, and the processes described above are repeated for the next sector. If after all the vectors P and the vectors Q of a sector

ont été traités, R reste différent de zéro, le processus de correction d'er-  have been processed, R remains different from zero, the er-

reurs peut être répété à nouveau ou, plus préférablement, les données  may be repeated again or, more preferably, the data

du secteur sont lues à nouveau sur le disque.  from the sector are read from the disc again.

On peut comprendre le fonctionnement du processeur de dé-  We can understand how the processor

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  error detection of the present invention with reference to a simplified example based on a 15-bit code word: C (x) = X14 + x11 + x8 + x6 + x5 + X4 + X3 + X, OR c (x ) = (100100101111010), which has the control polynomial: p (x) = x4 + X + 1 The division of c (x) by p (x) gives the quotient q (x) = (10001011001), with a remainder r (x) = (0001), as follows 10001011001 q (x) p (x) 10011) 100100101111010 c (x) ooo0001 remains

Ceci représente une application classique de logique de correction d'er-  This represents a classic application of 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  to verify the integrity of the codeword c (x) using the error control polynomial p (x), which could be accomplished initially by the CRC generator 78 in Figure 6. Of course, the word of EDC code which is used in the CRC generator 78 has more than sixteen thousand bits

de longueur, et le polynôme de contrôleur d'erreurs est celui qui est indi-  in length, and the error controller polynomial is the one that is 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  as in expression (1) above. This example also illustrates the simplicity of the division operation of a conventional CRC operation, since it is accomplished in modulo 2 arithmetic and can be performed in serial shift registers in combination with OR gates -EXCLUSIVE. Because the remainder r (x) is different from zero in the above example, the EDC operation indicates that there is an error in the

mot de code c(x). On peut ensuite effectuer une certaine forme d'opéra-  code word c (x). You can then perform some form of operation.

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  error correction tion which determines that the erroneous bits of the code word c (x) are x10 and x5, so that the error configuration for c (x) is e (x) = (000010000100000). The corrected code word c '(x) is then

donné par c'(x) = c(x) @ e(x) = (1001101010011010).  given by 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  It can be demonstrated that c '(x) is correct by the application of classical EDC logic after the error correction operation, in the manner which is implemented by the classical correction circuit

d'erreurs et de détection d'erreurs de la figure 1, comme indiqué ci-  Figure 1 error and error detection as shown

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  below: 10000010110 q (x) p (x) ioi) oioooii C (X p (x) 10011) 100110101011010 c '(x) 0000 remains As previously considered, although this classic EDC procedure (CRC after the completion of the ECC operation) has the advantage of the simplicity of the hardware, it can be a slow process when applied to the EDC codeword at sixteen thousand bits which is usually

utilisé dans le stockage de données sur des disques CD-ROM.  used in storing data on CD-ROM discs.

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  Preferred embodiments of the invention correct the remainder of error checking based on the error configuration, and they

testent le reste corrigé pour déterminer le moment auquel il atteint zéro.  test the rest corrected to determine when it reaches zero.

Comme illustré dans le calcul suivant, le procédé donne des résultats si-  As illustrated in the following calculation, the method gives results if-

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  milaries to the classic process: 1001111 q (x) p (x) 10011) 10000100001 e (x) + r (x) 0000 remain The error detection processor present incrementally tracks the corrections made to the rest of the error control , it decrements the remainder value according to the corrections and determines when the rest of the error check is reduced to zero. Consequently, the remainder is fully corrected by subtracting from the remainder of the original error check one or more numbers whose sum is equal to the remainder of the original error check. Equivalently, the sum of the original remainder configuration and the error configurations of each of the corrections that are made to the sector data is divisible

de façon entière par le polynôme de contrôle d'erreurs, de la manière il-  entirely by the error control polynomial, in the il-

lustrée dans l'exemple précédent. Ainsi, le procédé de correction d'er-  glossy in the previous example. So the er-

reurs de la présente invention procure un contrôle de l'intégrité des don-  The present invention provides control of the integrity of the data.

nées qui est similaire à celui de la logique EDC classique basée sur le  born which is similar to that of classic EDC logic based on the

contrôle CRC, mais la mise en oeuvre de ce processus de détection d'er-  CRC control, but the implementation of this er-

reurs est très différente de celle de la logique de détection d'erreurs  is very different from the logic of error detection

classique, basée sur le contrôle CRC.  classic, based on CRC control.

Dans l'exemple ci-dessus, les configurations d'erreur consis-  In the example above, the error configurations consisted

taient en bits uniques devant être placés à des emplacements spécifi-  were in single bits to be placed in specific locations

ques dans le mot de code. Au contraire, lorsque le processeur de détec-  ques in the code word. On the contrary, when the detection processor

tion d'erreurs de la présente invention est mis en oeuvre dans un con-  tion of errors of the present invention is implemented in a con-

trôleur de CD-ROM, la configuration d'erreur est un octet et l'emplace-  CD-ROM thrower, the error configuration is a byte and the location-

ment d'erreur est un nombre à douze bits qui identifie l'emplacement de  error is a twelve bit number that identifies the location of

l'octet erroné parmi les plus de deux mille octets du secteur. Pour calcu-  the wrong byte among the more than two thousand bytes in the sector. For 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-  In order to correct the error check rest, it is necessary to compensate for the error position both on the basis of the error configuration and the error location. Mathema-

tiquement, le processeur de détection d'erreurs 82 du mode de réalisa-  Tically, the error detection processor 82 of the embodiment

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  tion of Figure 6 performs the following calculation to correct the most recent error control remainder: Ri + 1 = Ri E {(e.x8X) modulo P (x)} (2) In this expression, R is the error detection result, e is the

configuration d'erreur, X est un nombre qui est obtenu à partir de l'em-  error configuration, X is a number that is obtained from the 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  error placement e and P (x) is the control polynomial which is indicated in expression (1). In practice, the number Ri Ed (e.x8x) can be long, which means that the modulo P (x) operation can take time. The calculation is however faster than the conventional CRC calculation performed on an entire EDC word. In addition, this error detection processing is performed in parallel with the error correction processing, so that the entire process of error correction and error detection is

effectué globalement plus rapidement que dans le circuit classique repré-  carried out overall more quickly than in the classic circuit represented

sente sur la figure 1.feel in figure 1.

La figure 7 illustre schématiquement un processeur de détec-  FIG. 7 schematically illustrates a detection processor

tion d'erreurs 82 possible qui accomplit le calcul de la relation (2) dans le  possible error 82 which performs the calculation of relation (2) in the

contrôleur de CD-ROM de la figure 6. Le processeur de détection d'er-  Figure 6 CD-ROM controller.

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  reurs 82 comprises an error detection processor control unit 100 which is an automaton intended to control the sequence of steps which are included in the calculation of a correction to be made to the remainder of error control. An error location converter 102, or ELC, in Figure 7, converts the error location e to give the 12-bit number. which is then used in the calculation of corrections to be made to the value R. A correction calculation circuit 104 calculates the value e. mod P (x) and it outputs the correction of the remainder. The register

de reste R 106 enregistre le reste de contrôle d'erreurs, qui est initiale-  R 106 records the rest of the error checking, which is initial-

ment CRC0, et qui au cours d'itérations suivantes est la valeur de reste  ment CRC0, and which during the following iterations is the remainder value

corrigée Ri. La configuration d'erreur e (huit bits) et l'emplacement d'er-  corrected Ri. The error configuration e (eight bits) and the location of 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  errors are generated by error correction logic 80 when it successfully solves a set of error equations. The error correction logic 80 outputs the error configuration e and the error location e to the error detection processor 82, on respective lines 108 and 110. At the same time, the logic error correction

fournit en sortie une impulsion de démarrage sur une ligne 112 qui dé-  outputs a start pulse on a line 112 which

clenche le fonctionnement du processeur de détection d'erreurs, c'est-à-  triggers the operation of the error detection processor, i.e.

dire que l'automate qui est commandé par l'unité de commande de pro-  say that the controller which is controlled by the pro-

cesseur de détection d'erreurs 100 commence à passer pas à pas par les  error detection stop 100 starts going step by step through

étapes de traitement de détection d'erreurs.  error detection processing steps.

L'autre information d'entrée du processeur de détection d'er-  The other input information from the ER detection processor

reurs 82 est la valeur CRC0 initiale qui est calculée par le circuit géné-  reurs 82 is the initial CRC0 value which is calculated by the general circuit

rateur de CRC 78 du circuit de contrôleur de la figure 6. Cette valeur  CRC 78 rator of the controller circuit of Figure 6. This value

CRCo initiale est fournie de façon caractéristique au processeur de dé-  Initial CRCo is typically provided to the processor

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  error detection by the CRC generator before triggering the error correction processing, or simultaneously with it, and it is

enregistrée dans le registre R 106. La valeur du reste de contrôle d'er-  recorded in the register R 106. The value of the remainder of control of er-

reurs initial CRCo est contrôlée pour déterminer si elle est égale à zéro.  rC initial CRCo is checked to determine if it is zero.

Si la valeur initiale est égale à zéro, des modes de réalisation préférés  If the initial value is zero, preferred embodiments

de la présente invention n'effectuent aucune opération de correction d'er-  of the present invention do not perform any 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  subsequent laughter. In the event that the initial EDC operation by the CRC generator indicates that there are one or more errors in the data which

sont lues, la valeur CRCo reste dans le reste R 106 jusqu'à ce que la va-  are read, the value CRCo remains in the remainder R 106 until the value

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 à  error correction them triggers the operation of the error detection processor 82. Under the effect of the triggering by the starting pulse, the error location converter 102 converts the error location e to give the twelve-bit number A, which is then supplied to the correction calculation circuit 104. The correction calculation circuit also receives the error configuration e, and from this data the correction calculation circuit 104 calculates a correction to bring to the initial remainder value. OUEXCLUSIF gates 114 sum the thirty-two bit error control remainder word with the correction value, and the sum is then recorded in register R. As a result of the generation of a corrected remainder , the value of the remainder is tested, for example by a NOR operation applied to

tous les bits du mot de reste. Si le reste est égal à zéro, alors on pré-  all bits of the remainder word. If the remainder is zero, then we pre-

sume que toutes les erreurs sont corrigées et les données qui sont enre-  assumes that all errors are corrected and the data that is recorded

gistrées dans la mémoire tampon peuvent être transférées immédiate-  stored in the buffer can be transferred immediately-

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  or they can be transferred later at the request of the host computer. After error correction operations have successfully corrected data from a sector, a new sector is read

dans l'unité de mémoire de masse, et le traitement de correction d'er-  in the mass memory unit, and the error correction processing

reurs et de détection d'erreurs commence à nouveau. Si au contraire le  error and error detection starts again. If, on the contrary,

reste corrigé demeure différent de zéro, le traitement de correction d'er-  remains corrected remains different from zero, the error correction processing

* 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* reurs continues. If all the error correction vectors have been processed once, it is possible to continue the correction processing

d'erreurs en répétant le décodage des vecteurs P et Q décodés précé-  of errors by repeating the decoding of the P and Q vectors decoded previously

demment. Il est cependant plus préférable de lire à nouveau sur le dis-  demment. It is however more preferable to read again on the dis-

que les données du secteur et de recommencer l'ensemble du processus  that sector data and start the whole process over again

de correction et de détection d'erreurs.  correction and error detection.

Le générateur de CRC élabore la valeur CRC initiale, c'est-à-  The CRC generator generates the initial CRC value, i.e.

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  say CRC0, by dividing the EDC codeword of a sector by P (x) before error correction operations begin. For a mode 1 CD-ROM sector whose data bytes are Bi, i = 0 to 2351, we have: (B0, ox16543 + B0,1x16542 + ... B2067,6x + B2067,7) - P ( x) = Q0 (x) + CRCo (x) by designating by P (x) the control polynomial and by Q0 (x) the quotient. Error correction logic performs resolution to determine

une configuration d'erreur e et un emplacement d'erreur e de l'octet erro-  an error configuration e and an error location e of the byte 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)  born, and then she fixes the code word. The corrected EDC code word becomes: 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-  by designating by ej, with i = 7 (MSB) at 0 (LSB), the bits of the configuration

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  error tion e. By dividing by P (x) the code word EDC above, we obtain the remainder R (x) = CRC0 (x) + r (x), with: r (x) = (eox7 + e1x6 + e2x5 + e3x4 + e4x3 + e5x2 + e6x + e7) x (2067 - ') modulo P (x) The correction calculation circuit 104 which is represented in FIG. 7 performs the calculation of r (x) above. Since it is possible to correct more than one error during the error correction process, this calculation can be performed as many times as errors are corrected by the

logique de correction d'erreurs 80. A l'exception de la toute première cor-  error correction logic 80. With the exception of the very first 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  rection made to the rest, which works on the initial value CRC0, all the iterations of the error detection processor work on an R (x) which is determined by: R (x) (new value) = R (X) (old value) + r (x) Note that the relations indicated above can be applied

à des secteurs de mode 2, forme 1 de CD-ROM XA, avec des modifica-  to mode 2 sectors, form 1 of CD-ROM XA, with modifications

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)},  minor tions. Thus, the error detection processor 82 detects errors by calculating new R values in accordance with the formula R (X) new = R (X) old + {(e.x8 (Le)) modulo P (x)} ,

avec les notations suivantes: e est la configuration d'erreur, e est l'em-  with the following notations: e is the error configuration, e is the em-

placement d'erreur et L = 2067 pour des secteurs de mode 1 de CD-ROM,  error placement and L = 2067 for CD-ROM mode 1 sectors,

ou 2075 pour des secteurs de mode 2, forme I de CD-ROM XA.  or 2075 for mode 2 sectors, form I of 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é  Since e is a 12-bit number, a direct calculation of e. x8 (L'É) modulo P (x) will be frequently undesirable, since it requires too much material to be devoted to it, and therefore too high an area on the surface of a chip. It is therefore preferable to decompose the calculation into a number of smaller multiplication operations. We can thus write the calculation of the remainder in the form: R (X) new = R (X) old + {(e. X8X) modulo P (x)}, with A = (L-e). The 12-bit number A can then be broken down into three 4-bit parts, i.e. A = X8.28 +. 4.24 + -0, as shown

sur la figure 8. Avec cette transformation, le calcul de configuration d'er-  on figure 8. With this transformation, the calculation of configuration of 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  reur becomes the following: e. x8x = e. X8 (256X '+ 16; .4 + .o) = e. X2048ka + 128k.4 + 8kb - e. (X2048Xa x x128x4 x X8o) So, e.x8kmodulo P (x) = e. (x2048xs x X12814 x x8Xo) .modulo P (x) We can develop this equation using the rule: (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-  for a representation in the form of a complete product of the 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  rection of remainder. The remainder correction calculation e.x8Xmodulo P (x) can be performed by applying. 8 times the operator. X2048 modulo P (x) (multiplication by x2048, then division by P (x) to obtain the rest),. 4

fois l'opérateur.x128 modulo P(x), et.0 fois l'opérateur.x8 modulo P(x).  times the operator.x128 modulo P (x), and .0 times the operator.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  In a particularly preferred embodiment of an error detection processor according to the present invention, which is shown in FIG. 9, the remainder correction calculations are carried out with a 3-stage polynomial multiplier, 104, having floors 150, 152 and 154

et un compteur de À, 136.and a counter of À, 136.

Le circuit de détection d'erreurs est à de nombreux égards si-  The error detection circuit is in many respects if-

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  milaire to the embodiment which is illustrated in FIG. 7. We have therefore limited an additional examination of elements already described. As with the embodiment of FIG. 7, the error detection processor of FIG. 9 stores the remainder of initial error control CRC0, at thirty-two bits, coming directly from the CRC generator 78 (FIG. 6) , in the form of an initial value in the register R 106. In this initial state, the multiplexer 120 is maintained in a state which selects the output of the CRC generator. Whenever the correction logic

d'erreurs 80 trouve une erreur et résout avec succès les équations d'er-  80 finds an error and successfully solves the equations of er-

reurs appropriées, pour générer une configuration d'erreur à huit bits, e,  appropriate rors, to generate an eight-bit error configuration, e,

et un emplacement d'erreur à douze bits, U, la logique de correction d'er-  and a twelve bit error location, U, the error correction logic

reurs applique une impulsion de démarrage à l'unité de commande de  reurs applies a start pulse to the control unit

processeur de détection d'erreurs 100. A ce moment, la logique de cor-  error detection processor 100. At this time, the cor- rection logic

rection d'erreurs fournit également la configuration d'erreur e et l'empla-  error correction also provides the error configuration e and the location

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  identify error e in the error detection processor. On receipt of the start pulse, the error configuration input value is transmitted by the multiplexer 140 and it is stored in the register.

temporaire 142, pour des calculs ultérieurs.  temporary 142, for later calculations.

Egalement à la réception de l'impulsion de démarrage, les par-  Also upon receipt of the start pulse, the

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  of the error detection processor of FIG. 9 which correspond to the ELC circuit 102 of the embodiment of FIG. 7 convert the twelve bit input error address, 130, to a value B, and they record the value in the X register 136. X is determined based on both the mode of the CD-ROM sector in which the data is

enregistrées, qui détermine la longueur du mot de code EDC, et de l'em-  saved, which determines the length of the EDC codeword, and the em-

placement de l'octet erroné à l'intérieur du mot de code EDC. Le mode  placing the wrong byte inside the EDC codeword. The mode

qui est lu sur le disque CD-ROM commande au multiplexeur 132 de four-  which is read on the CD-ROM disc commands to the multiplexer 132 from 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)",  set as output one or other of the EDC code word lengths (2067, 2075) which is appropriate for the different modes, in the form of a twelve bit binary word. If the mode byte which is read is equal to 1, the sector is recorded in the form of mode I data of CD-ROM, so that the multiplexer 132 selects a quantity to be subtracted equal to 2067. In the case on the contrary, a quantity to be subtracted equal to 2075 is selected in correspondence with mode 2, form 1 sectors of CD-ROM XA. A twelve-bit subtractor 134 subtracts the twelve-bit error address from the twelve-bit EDC code word length and provides the result to register A 136. The register A 136 consists of three 4-bit counters X8 , 14 and -o, shown in more detail in Figure 8, which generate three signals y, 13 and a: a = (X0 7 0), p = (X4 * 0), and y = (-8; 0 ) a, p and y respectively control the stages ".x8 modulo P (x)",

".x128 modulo P(x)" et".x2 48 modulo P(x)".  ".x128 modulo P (x)" and ".x2 48 modulo P (x)".

Le multiplieur à trois étages 104 calcule la correction de reste  The three-stage multiplier 104 calculates the remainder correction

e.x8X modulo P(x) par l'algorithme suivant qui est accompli sur la confi-  e.x8X modulo P (x) by the following algorithm which is accomplished on the 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  error correction previously recorded in the temporary register when (I? 0) temp = {{{temp.x8a modulo P (x)}. x2048 modulo P (x)}. x128p modulo P (x)}; if (i8> 0) then -8 = X8 - 1; if (.4> 0) then 4 = X4 - 1; if (i0> 0) then -o = Xo - 1; } The total number of cycles required is the maximum of (A8, 14, -0), and the result of the multiplication is supplied via the multiplexer

140 au registre temporaire 142. On notera ici que l'ordre des trois opéra-  140 in the temporary register 142. It will be noted here that the order of the three operations

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  multiplication / modulo which are carried out by the three stages, 152 and 154 has no effect on the final result which is produced by the

circuit de calcul de correction et qui est enregistré dans le registre tem-  correction calculation circuit and which is recorded in the time register

poraire 142, mais la configuration qui est illustrée optimise les caracté-  poraire 142, but the configuration which is illustrated optimizes the characteristics

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  hardware, this includes reducing the chip area that is consumed by multiplier / modulo circuits and therefore represents a preferred aspect of the present invention. After the multiplier 104 has completed the required number of cycles, the temporary register 142 contains the value of the remainder correction e. x8k modulo P (x). The remainder value is

ensuite additionnée, en utilisant les portes OU-EXCLUSIF 114, à la va-  then added, using doors EXCLUSIVE 114, to the value

leur (CRC0 ou Ri) qui est enregistrée dans le registre R 106. Le multi-  their (CRC0 or Ri) which is recorded in the register R 106. The 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  plexer 120 selects the output of the EXCLUSIVE gates 114 for all error correction operations after the processor

détection d'erreurs a été initialisé.  error detection has been initialized.

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  The state of the corrected remainder R can be obtained from the output R = 0. Depending on the value of the corrected remainder, as envisaged above

en relation avec le mode de réalisation de la figure 7, des données se-  in relation to the embodiment of FIG. 7, data se-

ront transférées, ou bien des opérations de correction d'erreurs supplé-  will be transferred, or additional error correction operations

mentaires seront accomplies.will be accomplished.

Il va de soi que de nombreuses modifications peuvent être ap-  It goes without saying that many modifications can be made.

portées au procédé décrit et représenté, sans sortir du cadre de l'inven-  brought to the process described and shown, without departing from the scope of the invention

tion.tion.

Claims (20)

REVENDICATIONS 1. Procédé pour transférer des données entre un système de  1. Method for transferring data between a mémoire de masse à disque optique (50) et un ordinateur hôte, caractéri-  optical disc mass memory (50) and a host computer, sé en ce qu'il comprend les étapes suivantes: on lit une chaîne de don-  se in that it comprises the following stages: one reads a data chain 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  born (70) on the optical memory disk (50) and the data string read is converted into a form compatible with recording in a digital memory; the read data string (70) is stored in a buffer memory (76) while supplying the read data string to a first error detection circuit (78); we perform a first opération de détection d'erreurs sur la chaîne de données lue, pour dé-  error detection operation on the data string read, to de- 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  terminate if there are errors in the read data string, at least part of the error detection operation being performed during que la chaîne de données lue est en cours d'enregistrement dans la mé-  that the data string read is being saved in the memory moire tampon (76); on transfère la chaîne de données lue vers le sys-  buffer memory (76); we transfer the data string read to the system 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  host computer if the first error detection operation determines that no error is present in the data string read; and we perform an error correction operation on the chain données lue (70) si la première opération de détection d'erreurs déter-  data read (70) if the first error detection operation deter- mine que des erreurs sont présentes dans la chaîne de données lue,  mine that there are errors in the data string read, avant de transférer la chaîne de données lue à l'ordinateur hôte.  before transferring the read data string to the host computer. 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  2. The method according to claim 1, characterized in that it further comprises the following steps, when the error correction operation is carried out: an error is corrected in the data chain read (70); a second error detection operation is carried out for déterminer si des erreurs supplémentaires restent dans la chaîne de don-  determine if additional errors remain in the data chain 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  born read, the second error detection operation generates an error-free signal if the second error detection operation indicates that no uncorrected error remains in the read data string (70); and providing the corrected data string to the host computer, réponse au signal d'absence d'erreur qui est généré par la seconde opé-  response to the no error signal which is generated by the second operation ration de détection d'erreurs.error detection ration. 3. Procédé selon le revendication 2, caractérisé en ce que  3. Method according to claim 2, characterized in that l'étape qui consiste à effectuer la première opération de détection d'er-  the step which consists in carrying out the first er detection operation reurs produit une première valeur de détection d'erreurs qui est caracté-  reurs produces a first error detection value which is characteristic ristique des erreurs présentes dans la chaîne de données lue (70), la  ristics of the errors present in the data string read (70), the première valeur de détection d'erreurs étant enregistrée.  first error detection value being recorded. 4. Procédé selon la revendication 3, caractérisé en ce que  4. Method according to claim 3, characterized in that l'étape qui consiste à effectuer la seconde opération de détection d'er-  the step which consists in carrying out the second er detection operation 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  reurs includes the steps of calculating a correction for the first error detection value, correcting the first value of détection d'erreurs et à déterminer si la valeur de détection d'erreurs cor-  error detection and to determine if the error detection value cor- rigée est différente de zéro.rigée is different from zero. 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.  5. Method according to claim 4, characterized in that the first error detection operation comprises dividing the received data chain (70) by an error control polynomial, and in that the first detection value error is a remainder which is calculated by dividing the data string read by the error control polynomial. 6. Procédé selon la revendication 5, caractérisé en ce que la6. Method according to claim 5, characterized in that the seconde opération de détection d'erreurs est accomplie sous la dépen-  second error detection operation is performed under the dance d'une configuration d'erreur et d'un emplacement d'erreur qui sont  dance of an error configuration and an error location which are déterminés par l'opération de correction d'erreurs.  determined by the error correction operation. 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  7. Method according to claim 1, characterized in that the step of converting the read data string (70) comprises operations which are carried out by a digital signal processor (56) et des opérations qui sont effectuées par un désembrouilleur (72).  (56) and operations which are carried out by a descrambler (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  8. Method according to claim 7, characterized in that the descrambler (72) supplies data to the first detection circuit d'erreurs (78) et à un circuit d'organisation de données (74) qui enregis-  errors (78) and a data organization circuit (74) which records tre dans la mémoire tampon (76) la chaîne de données reçue.  be in the buffer memory (76) the received data string. 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  9. Method according to claim 8, characterized in that the received data chain (70) is coded with a Reed-Solomon code entrelacé double.double interlaced. 10. Procédé pour transférer des données entre un système de  10. Method for transferring data between a mémoire de masse à disque optique (50) et un ordinateur hôte, caractéri-  optical disc mass memory (50) and a host computer, sé en ce qu'il comprend les étapes suivantes: on lit une chaîne de don-  se in that it comprises the following stages: one reads a data chain 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  born (70) on the optical memory disk (50) and the data string read is recorded in a buffer memory (76); providing the read data string (70) to a first error detection circuit (78); an initial error detection operation is carried out on the data chain read (70), to determine whether there are errors in the chain de données lue, et on détermine une première valeur de détection d'er-  of data read, and a first error detection value is determined 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  rors characteristic of the errors which are present in the data string read; performing an error correction operation on the read data string (70), identifying a first error in the read data string, and determining an error configuration for the first error; correcting the first error in the read data string (70); and we perform a second error detection operation pour déterminer s'il reste des erreurs dans la chaîne de données corri-  to determine if there are any errors in the correct data string gée.aged. 11. Procédé selon la revendication 10, caractérisé en ce que  11. Method according to claim 10, characterized in that l'étape qui consiste à effectuer une seconde opération de détection d'er-  the step which consists in carrying out a second error detection operation 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  reurs includes the calculation of a correction to be made to the first error detection value, based on the error configuration which is déterminée pour la première erreur.  determined for the first error. 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  12. Method according to claim 11, characterized in that it further comprises the steps which consist in correcting the first error detection value and in recording the first detection value d'erreurs corrigée, sous la forme d'une seconde valeur de détection d'er-  corrected error, in the form of a second error detection value reurs, et à déterminer ensuite si la seconde valeur de détection d'erreurs  errors, and then determining if the second error detection value est différente de zéro.is different from zero. 13. Procédé selon la revendication 12, caractérisé en ce que la  13. Method according to claim 12, characterized in that the seconde valeur de détection d'erreurs est déterminée par un second cir-  second error detection value is determined by a second cir- cuit de détection d'erreurs, distinct du premier circuit de détection d'er-  error detection circuit, separate from the first error detection circuit reurs.laughter. 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  14. The method of claim 12, characterized in that it further comprises the step of providing the corrected data string to the host computer, after the error correction operation a été effectuée.Has been done. 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  15. Method according to claim 10, characterized in that the read data chain (70) is applied to the first detection circuit d'erreurs (78) pendant que la chaîne de données lue est en cours d'enre-  errors (78) while the data string being read is being saved gistrement dans la mémoire tampon (76).  storage in the buffer memory (76). 16. Procédé selon la revendication 10, caractérisé en ce qu'il  16. Method according to claim 10, characterized in that it comprend en outre l'étape qui consiste à transférer vers le système d'or-  further includes the step of transferring to the gold system dinateur hôte la chaîne de données lue, si la première opération de dé-  host host the data string read, if the first operation of tection d'erreurs détermine qu'aucune erreur n'est présente dans la  error detection determines that no errors are present in the chaîne de données lue (70).read data string (70). 17. Procédé selon la revendication 10, caractérisé en ce qu'au-  17. The method of claim 10, characterized in that- cune opération de correction d'erreurs n'est effectuée jusqu'à ce que la  an error correction operation is not performed until the première valeur de détection d'erreurs soit enregistrée.  first error detection value is recorded. 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.  18. The method of claim 10, characterized in that the first error detection operation comprises dividing the received data chain (70) by an error control polynomial, and in that the first detection value error is a remainder which is calculated by dividing the data string read by the error control polynomial. 19. Procédé selon la revendication 18, caractérisé en ce que la19. The method of claim 18, characterized in that the seconde opération de détection d'erreurs est effectuée sous la dépen-  second error detection operation is performed under the dance d'une configuration d'erreur et d'un emplacement d'erreur qui sont  dance of an error configuration and an error location which are déterminés par l'opération de correction d'erreurs.  determined by the error correction operation. 20. Procédé selon la revendication 10, caractérisé en ce que la  20. Method according to claim 10, characterized in that the chaîne de données lue est codée avec un code de Reed-Solomon entre-  read data string is coded with a Reed-Solomon code between- lacé double.double laced.
FR9705504A 1997-04-17 1997-05-05 METHOD FOR TRANSFERRING DATA BETWEEN AN OPTICAL DISC MASS MEMORY AND A COMPUTER Expired - Fee Related FR2762920B1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
GB9707732A GB2324445B (en) 1997-04-17 1997-04-17 Error correction and detection system for mass storage controller
JP10494297A JP3279501B2 (en) 1997-04-17 1997-04-22 Error correction and error detection method for mass storage controller
FR9705504A FR2762920B1 (en) 1997-04-17 1997-05-05 METHOD FOR TRANSFERRING DATA BETWEEN AN OPTICAL DISC MASS MEMORY AND A COMPUTER
DE19719691A DE19719691B4 (en) 1997-04-17 1997-05-09 A method of transferring data between an optical disk mass storage system and a host computer
NL1006112A NL1006112C2 (en) 1997-04-17 1997-05-22 A method of transferring data between an optical disk mass storage system and a host computer.

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GB9707732A GB2324445B (en) 1997-04-17 1997-04-17 Error correction and detection system for mass storage controller
JP10494297A JP3279501B2 (en) 1997-04-17 1997-04-22 Error correction and error detection method for mass storage controller
FR9705504A FR2762920B1 (en) 1997-04-17 1997-05-05 METHOD FOR TRANSFERRING DATA BETWEEN AN OPTICAL DISC MASS MEMORY AND A COMPUTER
DE19719691A DE19719691B4 (en) 1997-04-17 1997-05-09 A method of transferring data between an optical disk mass storage system and a host computer
NL1006112A NL1006112C2 (en) 1997-04-17 1997-05-22 A method of transferring data between an optical disk mass storage system and a host computer.

Publications (2)

Publication Number Publication Date
FR2762920A1 true FR2762920A1 (en) 1998-11-06
FR2762920B1 FR2762920B1 (en) 1999-07-09

Family

ID=27512571

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9705504A Expired - Fee Related FR2762920B1 (en) 1997-04-17 1997-05-05 METHOD FOR TRANSFERRING DATA BETWEEN AN OPTICAL DISC MASS MEMORY AND A COMPUTER

Country Status (5)

Country Link
JP (1) JP3279501B2 (en)
DE (1) DE19719691B4 (en)
FR (1) FR2762920B1 (en)
GB (1) GB2324445B (en)
NL (1) NL1006112C2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005516326A (en) * 2002-01-22 2005-06-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Record carrier
JP6455586B2 (en) 2015-02-20 2019-01-23 日本電気株式会社 Virtual network system, virtual network control method, control device, control method and control program therefor

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4680764A (en) * 1984-03-24 1987-07-14 Sony Corporation Method and apparatus for transmitting digital data
EP0248478A1 (en) * 1986-06-04 1987-12-09 Koninklijke Philips Electronics N.V. Sequential buffer device
EP0407101A2 (en) * 1989-06-28 1991-01-09 Digital Equipment Corporation Error detection and correction system for long burst errors
EP0497593A2 (en) * 1991-02-01 1992-08-05 Quantum Corporation On-the-fly error correction with embedded digital controller
JPH05218883A (en) * 1992-02-06 1993-08-27 Kyocera Corp Decoder circuit
US5581715A (en) * 1994-06-22 1996-12-03 Oak Technologies, Inc. IDE/ATA CD drive controller having a digital signal processor interface, dynamic random access memory, data error detection and correction, and a host interface

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4782490A (en) * 1987-03-16 1988-11-01 Cythera Corporation Method and a system for multiple error detection and correction
JPH01150940A (en) * 1987-12-08 1989-06-13 Hitachi Ltd Crc arithmetic system
US5602857A (en) * 1993-09-21 1997-02-11 Cirrus Logic, Inc. Error correction method and apparatus

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4680764A (en) * 1984-03-24 1987-07-14 Sony Corporation Method and apparatus for transmitting digital data
EP0248478A1 (en) * 1986-06-04 1987-12-09 Koninklijke Philips Electronics N.V. Sequential buffer device
EP0407101A2 (en) * 1989-06-28 1991-01-09 Digital Equipment Corporation Error detection and correction system for long burst errors
EP0497593A2 (en) * 1991-02-01 1992-08-05 Quantum Corporation On-the-fly error correction with embedded digital controller
JPH05218883A (en) * 1992-02-06 1993-08-27 Kyocera Corp Decoder circuit
US5581715A (en) * 1994-06-22 1996-12-03 Oak Technologies, Inc. IDE/ATA CD drive controller having a digital signal processor interface, dynamic random access memory, data error detection and correction, and a host interface

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"INTERNAL DATA CHECK CORRECTION", IBM TECHNICAL DISCLOSURE BULLETIN, vol. 32, no. 1, June 1989 (1989-06-01), pages 289/290, XP000033198 *
ISO Y ET AL: "QUAD-SPEED CD-ROM LSI PRODUCTS FEATURING HIGH DATA RELIABILITY", HITACHI REVIEW, vol. 44, no. 6, 1 December 1995 (1995-12-01), pages 329 - 334, XP000595523 *
PATENT ABSTRACTS OF JAPAN vol. 017, no. 661 (E - 1471) 7 December 1993 (1993-12-07) *

Also Published As

Publication number Publication date
DE19719691B4 (en) 2005-04-14
JP3279501B2 (en) 2002-04-30
GB2324445A (en) 1998-10-21
GB2324445B (en) 2002-08-21
GB9707732D0 (en) 1997-06-04
DE19719691A1 (en) 1998-11-12
FR2762920B1 (en) 1999-07-09
JPH10301722A (en) 1998-11-13
NL1006112C2 (en) 1998-11-25

Similar Documents

Publication Publication Date Title
US5732093A (en) Error correction method and apparatus on optical disc system
EP0108655B1 (en) System for the detection and correction of transmission errors in a binary message using an error detecting and correcting interleaved reed-solomon cyclic code
US6003151A (en) Error correction and detection system for mass storage controller
FR2681177A1 (en) System for storing digital data
FR2561839A1 (en) METHOD FOR TRANSMITTING INFORMATION WITH ERROR CORRECTION FOR USER WORDS, DECODING METHOD WITH ERROR CORRECTION FOR THESE USER WORDS, APPARATUS FOR TRANSMITTING INFORMATION TO BE USED WITH THE METHOD, DEVICE FOR DECODING INFORMATION FOR USE WITH THE METHOD AND APPARATUS FOR USE WITH SUCH A DEVICE
US20080250306A1 (en) Coding circuit for recording data on dvd disk
JP3366318B2 (en) Error Correction Method for High Density Disk
JPH1055630A (en) Decoding device and decoding method
FR2616247A1 (en) DATA PROCESSING APPARATUS AND METHOD FOR CORRECTING DATA ERRORS
EP0204635B1 (en) Method for transmitting digital information in word blocks
FR2831971A1 (en) METHOD FOR MEMORIZING DATA WITH ERROR CORRECTION
US8301959B2 (en) Apparatus and method for processing beam information using low density parity check code
EP1076933B1 (en) Error correcting device and optical disk reader comprising same
JPH0223575A (en) Sector pull out detecting method
FR2762920A1 (en) Data transferral method for optical disk mass storage system
FR2776115A1 (en) ERROR CORRECTION DEVICE AND OPTICAL DISK DRIVE HAVING SUCH A DEVICE
US7487429B2 (en) Simple decoding method and apparatus
US7376066B2 (en) Information recording method and an information recording apparatus
FR2521371A1 (en) METHOD AND DEVICE FOR DIGITAL MAGNETIC DATA RECORDING
EP0769854B1 (en) System enabling correct decoding, in binary message form, of a magnetic code recorded on a magnetic track
TWI384463B (en) Method for optical storage medium writing and apparatus thereof
JP3637296B2 (en) Scramble method and storage medium for data frame
FR2533782A1 (en) Equipment for recording and reading digital data on analog video disc, and provided with means of protection against errors.
FR2765360A1 (en) CONTROL DEVICE FOR CD-ROM DRIVES
US6829671B1 (en) Method and system for improved audio data retrieval from an optical media

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20150130