FR2762920A1 - Data transferral method for optical disk mass storage system - Google Patents
Data transferral method for optical disk mass storage system Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error 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
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)
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)
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)
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)
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 |
-
1997
- 1997-04-17 GB GB9707732A patent/GB2324445B/en not_active Expired - Fee Related
- 1997-04-22 JP JP10494297A patent/JP3279501B2/en not_active Expired - Fee Related
- 1997-05-05 FR FR9705504A patent/FR2762920B1/en not_active Expired - Fee Related
- 1997-05-09 DE DE19719691A patent/DE19719691B4/en not_active Expired - Fee Related
- 1997-05-22 NL NL1006112A patent/NL1006112C2/en not_active IP Right Cessation
Patent Citations (6)
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)
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 |