DE19719691B4 - A method of transferring data between an optical disk mass storage system and a host computer - Google Patents

A method of transferring data between an optical disk mass storage system and a host computer Download PDF

Info

Publication number
DE19719691B4
DE19719691B4 DE19719691A DE19719691A DE19719691B4 DE 19719691 B4 DE19719691 B4 DE 19719691B4 DE 19719691 A DE19719691 A DE 19719691A DE 19719691 A DE19719691 A DE 19719691A DE 19719691 B4 DE19719691 B4 DE 19719691B4
Authority
DE
Germany
Prior art keywords
error
data
error detection
retrieved data
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.)
Expired - Fee Related
Application number
DE19719691A
Other languages
German (de)
Other versions
DE19719691A1 (en
Inventor
Cheng-Te Chuang
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
United Microelectronics Corp
Original Assignee
United Microelectronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to GB9707732A priority Critical patent/GB2324445B/en
Priority to JP10494297A priority patent/JP3279501B2/en
Priority to FR9705504A priority patent/FR2762920B1/en
Application filed by United Microelectronics Corp filed Critical United Microelectronics Corp
Priority to DE19719691A priority patent/DE19719691B4/en
Priority to NL1006112A priority patent/NL1006112C2/en
Publication of DE19719691A1 publication Critical patent/DE19719691A1/en
Application granted granted Critical
Publication of DE19719691B4 publication Critical patent/DE19719691B4/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

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

Landscapes

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

Abstract

Verfahren zum Übertragen von Daten zwischen einem Massenspeichersystem mit optischen Disketten und einem Host-Computer mit folgenden Schritten:
Zurückholen einer Datenkette von dem Massenspeichersystem und Speichern der zurückgeholten Datenkette in einem Pufferspeicher;
Übermittlung der zurückgeholten Datenkette an eine erste Fehlererfassungsschaltung;
Durchführung eines ersten Fehlererfassungsvorgangs bei der zurückgeholten Datenkette, um zu bestimmen, ob Fehler in der zurückgeholten Datenkette vorhanden sind, und um eine Fehlererfassungswerteigenschaft aus der Datenkette in Bezug auf die Fehler zu bestimmen, die in der zurückgeholten Datenkette vorhanden sind; und
falls der erste Fehlererfassungsvorgang auf der Grundlage der Fehlererfassungswerteigenschaft feststellt, dass Fehler in der zurückgeholten Datenkette vorhanden sind, Durchführung der folgenden Schritte (a) bis (d);
(a) Durchführung eines Fehlerkorrekturvorgangs bei der zurückgeholten Datenkette, Identifizieren eines ersten Fehlers in der zurückgeholten Datenkette, und Bestimmen eines Fehlermusters für den ersten Fehler;
(b) Korrigieren des ersten Fehlers in der zurückgeholten Datenkette; und
(c) Durchführung eines zweiten...
A method of transferring data between an optical disk mass storage system and a host computer, comprising the steps of:
Retrieving a data string from the mass storage system and storing the retrieved data string in a buffer memory;
Transmitting the retrieved data string to a first error detection circuit;
Performing a first error detection operation on the retrieved data string to determine if there are errors in the retrieved data string and to determine an error detection value property from the data string relating to the errors present in the retrieved data string; and
if the first error detection operation based on the error detection value property determines that there are errors in the retrieved data string, performing the following steps (a) to (d);
(a) performing an error correction operation on the retrieved data string, identifying a first error in the retrieved data string, and determining an error pattern for the first error;
(b) correcting the first error in the retrieved data string; and
(c) Carrying out a second ...

Figure 00000001
Figure 00000001

Description

Die vorliegende Erfindung betrifft die Übertragung von Daten von Massenspeichergeräten auf Host-Computersysteme. Insbesondere betrifft die vorliegende Erfindung eine verbesserte Fehlerverarbeitung, die dazu verwendet werden kann, Datenübertragungsgeschwindigkeiten von einem Massenspeichergerät, beispielsweise einem Nur-Lese-Speicher mit einer optischen Diskette, zu einem Datenbus eines Host-PC zu erhöhen.The The present invention relates to the transmission of data from mass storage devices to host computer systems. In particular, the present invention relates to an improved Error processing that can be used to data transfer speeds from a mass storage device, for example a read only memory with an optical disk, to a data bus to increase a host PC.

In der US 5,136,592 A wird ein Fehlererfassungs- und Korrektursystem vorgeschlagen, bei welchem eine zweifache Codierung von Daten erfolgt, nämlich zunächst zum Zwecke der Fehlererfassung mit einem CRC-Code, und dann zum Zwecke der Fehlerkorrektur unter Verwendung eines Reed-Solomon-Fehlerkorrekturcodes. Hierbei wird ein spezielles Verfahren zur Behandlung spezieller Fehler eingesetzt, sogenannter "long burst errors", bei denen hintereinander zahlreiche fehlerhafte Symbole auftreten. Hierzu werden spezielle Codewörter auf ein Band geschrieben, und werden dann, wenn Daten von dem Band angefordert werden, diese speziellen Codewörter zurückgeholt, und wird bei diesen Codewörtern eine Fehlererfassung mit Hilfe eines CRC-Codes durchgeführt. Wenn hierbei keine Fehler festgestellt werden, werden dann die angeforderten Daten übertragen.In the US 5,136,592 A For example, an error detection and correction system is proposed in which data is coded twice, first for the purpose of error detection with a CRC code, and then for the purpose of error correction using a Reed-Solomon error correction code. In this case, a special method for the treatment of special errors is used, so-called "long burst errors", in which consecutively numerous faulty symbols occur. To do this, special codewords are written to a tape and, when data is requested from the tape, these special codewords are retrieved and, with these codewords, error detection is performed using a CRC code. If no errors are detected, then the requested data is transmitted.

Aus der DE-38 41 370 A1 ist ein als Datenpuffer dienender Datenspeicher bekannt. Daten von einer Kanalschnittstelle werden einerseits an den Datenspeicher und andererseits an eine CRC-Berechnungsschaltung übertragen. In dieser Schaltung erfolgt eine blockweise CRC-Berechnung, und dann wird das Ergebnis als CRC-Code an das Ende jedes Datenblock angehängt und zusammen mit dem Datenblock im Datenspeicher gespeichert. Daraufhin wird der Datenblock (einschließlich des CRC-Codes) an eine Lese-/Schreibschaltung übertragen, und wird mit dem CRC-Code in einer CRC-Prüfschaltung eine Überprüfung durchgeführt, um einen Gültigkeitstest für den Datenblock durchzuführen.Out DE-38 41 370 A1 is a data buffer serving as a data buffer known. On the other hand, data from one channel interface will be on the data memory and on the other hand to a CRC calculation circuit. In this circuit, a block-wise CRC calculation, and then the result is sent as a CRC code to the end of each data block attached and saved together with the data block in the data memory. thereupon the data block (including of the CRC code) to a read / write circuit, and is used with the CRC code in a CRC check circuit done a check to one validity test for the Perform data block.

Aus dem IBM Journal of Research and Development, Vol. 30, Nr. 3; Mai 1986, Seiten 259–269 ist ein Fehlerbehandlungs- und Korrekturverfahren bei der Übertragung von Daten von einem Massenspeicher zu einem Host-Computer bekannt, bei welchem Datensequenzen gleichzeitig einem Pufferspeicher und einer erste Fehlererfassungsschaltung zugeführt werden, die eine Fehlererfassungsoperation durchführt, während die Datensequenz im Pufferspeicher gespeichert wird. Wird kein Fehler festgestellt, werden die im Pufferspeicher gespeicherten Daten unmodifiziert, anderenfalls modifiziert durch eine Fehlerkorrekturoperation an den Host-Computer übertragen.Out IBM Journal of Research and Development, Vol. 30, No. 3; May 1986, pages 259-269 is an error handling and correction method during transmission data from a mass storage to a host computer known in which data sequences simultaneously a buffer memory and a first error detection circuit are fed, the error detection operation performs, while the data sequence is stored in the buffer memory. Will not be an error detected, the data stored in the buffer memory are unmodified, otherwise modified by an error correction operation transfer the host computer.

Optische Massenspeichergeräte, beispielsweise CD-ROM-Geräte (Nur-Lese-Speicher mit Kompaktdiskette) werden zum Speichern und Verteilen von Programmen und Datenanordnungen verwendet, insbesondere wenn die Programme und Datenanordnungen zu groß sind, um bequem an Benutzer von PCs oder andere Kleincomputersysteme verteilt zu werden. CD-ROM-Geräte und ähnliche Massenspeichergeräte weisen momentan erheblich niedrigere Datenzugriffsgeschwindigkeiten auf als sowohl Speicher aus integrierten Schaltungen und Magnetspeicher-Festplattengeräte. Konventionelle Aufbauten von Kleincomputersystemen begrenzen daher die Anzahl an Zugriffen, die auf optische Massenspeichergeräte erfolgen können. Beispielsweise Programmdaten werden von einer CD-ROM-Speicherdiskette auf die magnetische Festplatte des Kleincomputersystems übertragen, um das Programm einzurichten und zu konfigurieren. Sobald die Programmdaten auf die magnetische Festplatte des Kleincomputers geladen wurden, wird das Laufwerk für optische Disketten häufig beim zukünftigen Gebrauch des Programms nicht benutzt.optical Mass storage devices, for example, CD-ROM devices (Compact disk read-only memory) are used to save and Distributing programs and data arrangements used, in particular if the programs and data arrangements are too big to be convenient to users from PCs or other small computer systems. CD-ROM devices and similar Mass storage devices currently have significantly lower data access speeds on as both memory of integrated circuits and magnetic storage disk devices. conventional Therefore, superstructures of small computer systems limit the number Accesses that can be made to optical mass storage devices. For example Program data is transferred from a CD-ROM storage disk to the magnetic disk Hard disk of the small computer system transferred to the program set up and configure. Once the program data is up the magnetic hard disk of the small computer is loaded the drive for optical discs frequently at the future Use of the program not used.

Es gibt einige Programme, welche Audio-, Video- oder andere Datenanordnungen aufweisen, die nicht auf die magnetische Festplatte zum dauernden Speichern übertragen werden; stattdesssen wird auf diese Daten von der CD-ROM während des Betriebs des Programms zugegriffen. Insbesondere für derartige Programme, aber auch für andere Programme, welche CD-ROM-Massenspeicherung nutzen, besteht ein wachsender Bedarf nach einer Erhöhung der Geschwindigkeit, mit welcher auf Daten von der CD-ROM zugegriffen werden kann, und mit welcher Daten den Datenbusleitungen des Computersystems zugeführt werden können. In der Vergangenheit war der hauptsächliche Engpaß für die Datenübertragung von dem CD-ROM-Speicher die Geschwindigkeit, mit welcher die Daten von der CD-ROM-Diskette selbst ausgelesen werden, also nicht die Geschwindigkeit innerhalb der Steuerung, welche die Daten formatiert, eine Fehlerkorrektur und Fehlererfassung durchführt, und andere Datenübertragungsoperationen durchführt. Um diesen Engpaß zu überwinden, wurde die Geschwindigkeit, mit welcher sich die CD-ROMs drehen, auf ein Mehrfaches der nominellen Umdrehungsgeschwindigkeit erhöht, die durch die CD-ROM-Standards vorgegeben ist. Daten werden daher von der CD-ROM mit erhöhter Rate ausgelesen, in einem solchen Ausmaß, daß die Betriebsabläufe der Datenübertragungssteuerung nunmehr oder zumindest bald die Datenübertragungsraten begrenzen. Es werden Techniken eingeführt, welche Datenspeicherdisketten höherer Dichte aufweisen, und es werden zusätzliche Verbesserungen entwickelt, die noch höhere Datenspeicherdichten zur Verfügung stellen. Daten werden von diesen Massenspeichersystemen mit höherer Dichte mit noch höheren Raten ausgelesen, was die Anforderungen an die Datenübertragungssteuerung weiter erhöht.There are some programs that have audio, video or other data arrangements that are not transferred to the magnetic hard disk for permanent storage; Instead, this data is accessed from the CD-ROM during operation of the program. In particular, for such programs, but also for other programs using CD-ROM mass storage, there is a growing need to increase the speed with which data can be accessed from the CD-ROM and what data is present on the data bus lines of the computer system can be supplied. In the past, the main bottleneck for data transfer from the CD-ROM memory has been the speed at which the data is read from the CD-ROM itself, not the speed within the controller which formats the data, error correction and error detection, and performs other data transfer operations. To overcome this bottleneck, the speed at which the CD-ROMs rotate has increased to a multiple of the nominal rotational speed dictated by CD-ROM standards. Data is therefore provided by the CD-ROM is read at an increased rate, to such an extent that the operations of the data transfer control now or at least soon limit the data transfer rates. Techniques incorporating higher density data storage disks are being introduced, and additional improvements are being developed to provide even higher data storage densities. Data is read from these higher density mass storage systems at even higher rates, which further increases data transfer control requirements.

Verschiedene Operationen müssen mit den Daten durchgeführt werden, die von der CD-ROM ausgelesen werden, bevor die Daten den Datenbusleitungen des Host-Computersystems zur Verfügung gestellt werden können. Diese Operationen sind Fachleuten auf diesem Gebiet normalerweise wohlbekannt, und umfassen Entschlüsseln, Umorganisieren, Pufferspeicherung, Fehlerkorrektur und Fehlererfassung. Weitere Information in bezug auf die konventionellen Operationen, die bei der Datenübertragung von der CD-ROM auf einen Datenbus eines Host-Computersystems durchgeführt werden, finden sich in dem US-Patent Nr. 4,680,764 für Suzuki et al., im US-Patent Nr. 4,802,152 von Markvoort et al., und im US-Patent Nr. 5,581,715 von Verinsky et al., welche in die vorliegende Beschreibung durch Bezugnahme eingeschlossen werden. 1 erläutert Einzelheiten der CD-ROM-Steuerung, die in dem Patent von Verinsky beschrieben ist, und zum Steuern der Übertragung von Daten von einer CD-ROM-Speicherdiskette auf den IDE-Bus eines Host-Computers verwendet werden kann. Daten werden dadurch von der CD-ROM ausgelesen, daß Laserlicht von der Oberfläche einer sich drehenden Diskette reflektiert wird, und die Modulationen, die bei dem reflektierten Laserlicht auftreten, infolge von Variationen auf der Oberfläche der Diskette, festgestellt werden. Ein Analog-Digitalwandler wandelt die festgestellten Modulationen in Digitalsignale um, die als serieller Bitstrom 10 zur Eingabe in die CD-ROM-Steuerung geliefert werden. CD-ROMs speichern Daten, die typischerweise weniger statistisch verteilt sind, als dies optimal wäre, so daß die Daten unbeabsichtigt Synchronisiersignale oder andere Steuersignale aufweisen können. Daher sind auf der CD-ROM gespeicherte Daten verschlüsselt. Aus dem reflektierten Licht ermittelte Daten werden daher einer Entschlüsselungsschaltung 12 zugeführt, und werden vor der weiteren Verarbeitung entschlüsselt. Eine Datenorganisationsvorrichtung 14 führt eine Umorganisierung des entschlüsselten seriellen Bitstroms in Bytes durch, und speichert die Daten in einem Pufferspeicher 16. Daten werden auf eine CD-ROM in Sektoren von annähernd 2 KB gespeichert, und die Daten werden von der Diskette an den Host-Computer sektorweise übertragen. Daher wird ein gesamter Datensektor in dem Pufferspeicher gespeichert, bevor die Fehlerkorrektur und die Fehlererfassung beginnt.Various operations must be performed on the data read from the CD-ROM before the data can be made available to the data bus lines of the host computer system. These operations are normally well known to those skilled in the art, and include decryption, reorganization, caching, error correction, and error detection. Further information regarding conventional operations performed in transferring data from the CD-ROM to a data bus of a host computer system can be found in U.S. Patent No. 4,680,764 to Suzuki et al., In U.S. Patent No. 4,680,764. 4,802,152 to Markvoort et al., And U.S. Patent No. 5,581,715 to Verinsky et al., Which are incorporated herein by reference. 1 describes details of CD-ROM control described in the Verinsky patent, and may be used to control the transfer of data from a CD-ROM storage disk to the IDE bus of a host computer. Data is read from the CD-ROM by reflecting laser light from the surface of a rotating disk and detecting the modulations that occur in the reflected laser light due to variations on the surface of the disk. An analog-to-digital converter converts the detected modulations into digital signals called serial bitstream 10 for input to the CD-ROM controller. CD-ROMs store data that is typically less statistically distributed than would be optimal so that the data may inadvertently have sync signals or other control signals. Therefore, data stored on the CD-ROM is encrypted. Data obtained from the reflected light therefore becomes a deciphering circuit 12 supplied, and are decrypted before further processing. A data organizer 14 performs a reorganization of the decrypted serial bit stream in bytes, and stores the data in a buffer memory 16 , Data is stored on a CD-ROM in sectors of approximately 2 KB, and the data is transferred from the floppy disk to the host computer on a sector-by-sector basis. Therefore, an entire data sector is stored in the buffer before error correction and error detection begins.

Sobald ein Sektor von 2 KB Daten von der CD-ROM in dem Pufferspeicher 16 gespeichert wurde, werden bei den gespeicherten Daten eine Fehlerkorrektur und eine Fehlerfeststellung vorgenommen. Die Fehlerkorrektur- und Fehlererfassungsoperationen für CD-ROM-Massenspeichersysteme werden hauptsächlich durch den ISO/IEC-10149-Standard für die Speicherung von Daten auf CD-ROMs vorgegeben. Eine konventionelle Fehlercodierung, Fehlerkorrektur- und Fehlererfassungsoperationen für CD-ROM-Massenspeichersysteme sind in dem US-Patent Nr. 4,413,440 von Odaka et al., und im US-Patent Nr. 4,680,764 von Suzuki et al. beschrieben, die in die vorliegende Anmeldung durch Bezugnahme eingeschlossen werden. Die Integrität der Daten wird während der Übertragung der Daten von der CD-ROM an den Host-Computer durch drei Gruppen von Fehlerkorrekturdaten sichergestellt, die an die Benutzerdaten innerhalb des Sektors angehängt werden: einhundertzweiundsiebzig P-Parität-Fehlerkorrektur-Bytes, einhundertvier Q-Parität-Fehlerkorrekturbytes, und vier Fehlererfassungscode-Bytes, EDC-Bytes. Dadurch, daß die P-Parität- und Q-Parität-Daten vorgesehen sind, wird ein doppelt vernetzter Reed-Solomon-Code innerhalb der CD-ROM-Daten zur Verfügung gestellt. Die Daten innerhalb des Sektors können in zwei Datenebenen gruppiert werden, eine LSB-Ebene und eine MSB-Ebene, wobei jede Datenebene eine verschachtelte Fehlerkorrekturmatrix aufweist, etwa gleich jener, die in 2 gezeigt ist. Die in 2 dargestellte Matrix weist 43 P-Vektoren auf, die aus vierundzwanzig Bytes von Benutzerdaten in Kombination mit zwei P-Parität-Bytes bestehen, um (26, 24)-Reed-Solomon-Codewörter über GV(28) auszubilden. Sechsundzwanzig Q-Vektoren verlaufen entlang der Diagonalen der Matrix, und bestehen aus dreiundvierzig Bytes Benutzerdaten und zwei Q-Parität-Bytes, die aus (45, 43)-Reed-Solomon-Codewörtern über GF(28) bestehen. Daten werden aus dem Pufferspeicher 16 (1) in Form von P-Vektoren und Q-Vektoren ausgelesen, Fehlerkorrekturberechnungen werden durch eine Fehlerkorrekturlogik 18 durchgeführt, um in den Daten enthaltene Fehler zu identifizieren, und wenn Fehler ermittelt werden, werden die Fehlergleichungen gelöst, um festzustellen, wie der Fehler korrigiert werden soll. Treten Fehler in den P-Vektoren und den Q-Vektoren auf, so werden die Daten in dem Pufferspeicher 16 dadurch korrigiert, daß die fehlerhften Datenbytes in dem Pufferspeicher mit korrigierten Datenbytes überschrieben werden.Once a sector of 2 KB of data from the CD-ROM in the buffer 16 has been stored, error correction and error detection are performed on the stored data. The error correction and error detection operations for CD-ROM mass storage systems are primarily dictated by the ISO / IEC 10149 standard for storing data on CD-ROMs. Conventional error coding, error correction and error detection operations for CD-ROM mass storage systems are disclosed in U.S. Patent No. 4,413,440 to Odaka et al., And U.S. Patent No. 4,680,764 to Suzuki et al. which are incorporated by reference into the present application. The integrity of the data is ensured during the transfer of the data from the CD-ROM to the host computer by three sets of error correction data appended to the user data within the sector: one hundred seventy-two P parity error correction bytes, one hundred four Q parity Error correction bytes, and four error detection code bytes, EDC bytes. By providing the P-parity and Q-parity data, a double-networked Reed-Solomon code is provided within the CD-ROM data. The data within the sector may be grouped into two levels of data, one LSB level and one MSB level, where each level of data has a nested error correction matrix approximately equal to that in 2 is shown. In the 2 The matrix shown in FIG. 4 comprises 43 P-vectors consisting of twenty-four bytes of user data combined with two P-parity bytes to form (26, 24) Reed-Solomon codewords over GV (2 8 ). Twenty-six Q-vectors run along the diagonal of the matrix, consisting of forty-three bytes of user data and two Q parity bytes consisting of (45, 43) Reed-Solomon codewords over GF (2 8 ). Data is taken from the buffer memory 16 ( 1 ) in the form of P vectors and Q vectors, error correction calculations are performed by error correction logic 18 are performed to identify errors contained in the data, and when errors are detected, the error equations are resolved to determine how to correct the error. If errors occur in the P vectors and the Q vectors, the data will be in the buffer memory 16 corrected by overwriting the most erroneous bytes of data in the buffer with corrected bytes of data.

Nachdem sämtliche Datenkorrekturoperationen durchgeführt wurden, wird normalerweise dann festgestellt, ob Fehler in den korrigierten Daten übrig bleiben, oder ob durch die Korrekturoperationen Fehler in die Daten eingeführt wurden. Die Fehlererfassung wird unter Verwendung einer Prüfvorrichtung für zyklische Redundanz (CRC) durchgeführt, bei welcher der gesamte Datenblock (annähernd 200 Bytes × 8 Bit) als lange Binärzahl behandelt wird, die durch ein Prüfpolynom geteilt wird. Entsprechend dem ISO/IEC-10149-Standard ist das Fehlerprüfpolynom gleich P(x) = (x16 + x15 + x2 + 1) ·(x16 + x2 + x + 1). Bei den auf der CD-ROM gespeicheren Daten sind vier Fehlererfassungscode-Bytes (EDC-Bytes) angehängt, so daß die lange Binärzahl, die aus den Daten besteht, die auf der CD-ROM gespeichert sind, durch das Fehlerprüfpolynom gleichmäßig geteilt werden kann. Wenn die lange Binärzahl aus den Daten, die von der CD-ROM übertragen wurden, durch das Fehlerprüfpolynom gleichmäßig geteilt werden kann, so wird angenommen, daß keine weiteren Fehler in dem Fehlerprüfpolynom vorhanden sind. Bleibt bei der Fehlerprüfdivision ein Rest ungleich Null übrig, dann sind in den korrigierten Daten Fehler vorhanden, und ist eine zusätzliche Fehlerkorrektur erforderlich. Alternativ hierzu können die Daten einfach erneut von der CD-ROM gelesen werden, und können der Fehlerkorrektur- und Feststellungsvorgang wiederholt werden. Typische Hardware-Ausbildungen der Fehlerprüfdivision sind einfach, und bestehen aus Schieberegistern mit Rückkopplungsverbindungen und aus einem Feld aus Exklusiv-OR-Gates. Die Fehlererfassung erfordert es, daß der gesamte Datenblock von dem Pufferspeicher durch die Fehlererfassungslogik 20 ausgelesen wird, und seriell durch die CRC 22 verschoben wird. Solange ein Rest von Null durch die Fehlerkorrektur- und Fehlererfassungsoperationen erzeugt wird, können die Daten von dem Pufferspeicher 16 an den Datenbus des Computersystems als abgehender, in bezug auf Fehler überprüfter Sektor 24 übertragen werden.After all data correction operations have been performed, it is then normally determined whether errors remain in the corrected data or whether errors have been introduced into the data by the correction operations. The fault detection is performed using a cyclic recheck tester dundancy (CRC), in which the entire data block (approximately 200 bytes x 8 bits) is treated as a long binary number, which is divided by a check polynomial. According to the ISO / IEC 10149 standard, the error check polynomial is P (x) = (x 16 + x 15 + x 2 + 1) x (x 16 + x 2 + x + 1). The data stored on the CD-ROM is appended with four error detection code bytes (EDC bytes), so that the long binary number consisting of the data stored on the CD-ROM can be divided equally by the error check polynomial. If the long binary number from the data transferred from the CD-ROM can be divided equally by the error check polynomial, it is assumed that there are no more errors in the error check polynomial. If a residue other than zero remains in the error checking division, then there are errors in the corrected data and additional error correction is required. Alternatively, the data may simply be read again from the CD-ROM, and the error correction and detection process may be repeated. Typical hardware designs of error checking division are simple, consisting of shift registers with feedback connections and a field of exclusive-OR gates. The error detection requires that the entire data block be cleared of the buffer memory by the error detection logic 20 read out, and serially through the CRC 22 is moved. As long as a remainder of zero is generated by the error correction and error detection operations, the data may be from the buffer memory 16 to the data bus of the computer system as outgoing sector checked for errors 24 be transmitted.

Die Korrektur und Erfassung von Fehlern stellen zeitaufwendige Aspekte der Datenübertragen von CD-ROM-Speichergeräten und Computerdatenbusleitungen dar. Allerdings ist eine bestimmte Fehlerkorrektur erforderlich, wenn Daten von einer optischen Speicherdiskette gelesen werden, infolge der Natur der Datenleseoperation und der Verarbeitung, die zur geeigneten Formatierung der Daten für einen Digitalcomputer erforderlich ist. Darüber hinaus werden gewisse Aspekte der Fehlerkorrektur durch die Industriestandards für die CD-ROM und andere optische Massenspeichersysteme vorgegeben.The Correcting and collecting errors are time-consuming aspects the data transfer from CD-ROM storage devices and Computer data bus lines. However, some error correction is required when reading data from an optical storage disk, due to the nature of the data read operation and processing, the to properly format the data for a digital computer is. About that In addition, certain aspects of error correction by industry standards for the CD-ROM and other optical mass storage systems.

Ein Ziel der vorliegenden Erfindung besteht daher in der Bereitstellung einer Architektur für die Fehlerkorrektur von Daten, die von einem Massenspeichergerät ausgelesen werden, welche höhere Datendurchlaßraten ermöglicht.One The aim of the present invention is therefore to provide an architecture for the error correction of data read from a mass storage device which are higher Datendurchlaßraten allows.

Gemäß einer Zielrichtung der vorliegenden Erfindung wird ein Verfahren zur Übertragung von Daten zwischen einem Massenspeichersystem mit einer optischen Diskette und einem Host-Computer zur Verfügung gestellt, wie es im Patentanspruch 1 angegeben ist. Vorteilhafte Ausgestaltungen der Erfindung sind in den abhängigen Patentansprüchen angegeben.According to one The object of the present invention is a method for transmission data between a mass storage system with an optical Floppy disk and a host computer provided as in the claim 1 is indicated. Advantageous embodiments of the invention are in the dependent claims specified.

Die Erfindung wird nachstehend anhand zeichnerisch dargestellter Ausführungsbeispiele näher erläutert.The The invention will be described below with reference to drawings explained in more detail.

Es zeigt:It shows:

1 eine konventionelle Ausbildung einer CD-ROM-Datenübertragungssteuerung; 1 a conventional embodiment of a CD-ROM communication control;

2 die Standard-Fehlerkorrekturmatrix für Daten, die in CD-ROM-Massenspeicherdisketten gespeichert sind; 2 the standard error correction matrix for data stored in CD-ROM mass storage disks;

3 ein Massenspeichersystem mit einer optischen Diskette gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung; 3 a mass storage system having an optical disk according to a preferred embodiment of the present invention;

4 den Aufbau von Daten, die in einem Sektor einer CD-ROM einer ersten Betriebsart gespeichert sind; 4 the construction of data stored in a sector of a CD-ROM of a first mode;

5 eine zyklische Redundanzüberprüfungsschaltung, die bei dem Aufbau von 6 verwendet werden kann; 5 a cyclic redundancy check circuit used in the construction of 6 can be used;

6 eine CD-ROM-Steuerung gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung; 6 a CD-ROM controller according to a preferred embodiment of the present invention;

7 einen Fehlererfassungsprozessor gemäß der vorliegenden Erfindung; 7 an error detection processor according to the present invention;

8 einen Zähler, der bei bevorzugten Ausführungsformen der vorliegenden Erfindung eingesetzt werden kann; und 8th a counter that may be used in preferred embodiments of the present invention; and

9 eine weitere Ausführungsform eines Fehlererfassungsprozessors gemäß der vorliegenden Erfindung. 9 another embodiment of an error detection processor according to the present invention.

Bevorzugte Ausführungsformen der vorliegenden Erfindung stellen Fehlerkorrektur- und Fehlererfassungsoperationen mit höherer Geschwindigkeit zur Verfügung, ohne das Niveau der Verläßlichkeit der Daten zu beeinträchtigen, die von der CD-ROM ausgelesen und dem Host-Computer zugeführt werden. Diese Ausführungsformen der vorliegenden Erfindung können verwirklicht werden, während die Kompabilität mit den Industriestandards für CD-ROM-Speichergeräten gewahrt bleibt. Gemäß einer Zielrichtung der vorliegenden Erfindung werden von einer Massenspeichereinheit Daten ausgelesen, und wird der serielle Datenstrom parallel sowohl einem Pufferspeicher als auch einer Fehlererfassungsschaltung zugeführt. Die Fehlererfassungsschaltung, die eine konventionelle CRC (zyklische Redundanzprüfvorrichtung) sein kann, führt eine Fehlererfassungsoperation bei den von der Massenspeichereinheit ausgelesenen Daten durch, vorzugsweise dann, wenn der Datenstrom in dem Pufferspeicher gespeichert wird. Die Fehlererfassungsoperation kann beispielsweise daraus bestehen, den seriellen Datenstrom, der einen Datenblock bildet, durch das Fehlerprüfpolynom zu teilen, und den Rest der Divisionsoperation zu bestimmen. Wenn die Fehlererfassungsoperation ein Ergebnis ergibt, welches angibt, daß in dem Datenblock keine Fehler vorhanden sind, kann der in dem Pufferspeicher gespeicherte Datenblock direkt an den Datenbus des Host-Computersystems übertragen werden, ohne irgendwelche Datenkorrekturoperationen bei den ausgelesenen Daten durchzuführen.preferred embodiments The present invention provides error correction and error detection operations with higher Speed available, without the level of reliability to affect the data, the one from the CD-ROM read out and fed to the host computer. These embodiments of the present invention be realized while the compatibility with the industry standards for CD-ROM storage devices is maintained. According to one The object of the present invention is a mass storage unit Data is read out, and becomes the serial data stream in parallel both a buffer memory and a fault detection circuit supplied. The Error detection circuit using a conventional CRC (cyclic Redundanzprüfvorrichtung) can be leads an error detection operation on the mass storage unit read data, preferably when the data stream is stored in the buffer memory. The error detection operation can for example consist of the serial data stream, the forms a data block to be divided by the error check polynomial, and the Rest of divisional operation to determine. When the error detection operation gives a result indicating that there is no error in the data block are present, the data block stored in the buffer memory be transferred directly to the data bus of the host computer system, without any Perform data correction operations on the read out data.

Dieser Aspekt der vorliegenden Erfindung stellt mehrere Vorteile im Vergleich zu den konventionellen Fehlerkorrektur- und Fehlererfassungsoperationen zur Verfügung, die bei konventionellen Datenübertragungsoperationen zwischen CD-ROM- Speichergeräten und den Datenbusleitungen in Host-Computersystemen durchgeführt werden. Das System kann so aufgebaut sein, daß Datenkorrekturoperationen nur dann durchgeführt werden, wenn Grund zur Annahme besteht, daß eine Datenkorrektur erforderlich ist. Die Ausschaltung unnötiger Datenkorrekturoperationen erhöht die Geschwindigkeit, mit welcher Daten übertragen werden können. Allerdings gibt es eine geringe Wahrscheinlichkeit dafür, daß ein fehlerhafter Datenblock gleichmäßig durch das Prüfpolynom geteilt werden könnte, und es läßt sich denken, daß es wünschenswert sein könnte, sich nicht nur auf den Rest von Null zu verlassen, der bei der Fehlererfassungsoperation erzeugt wird. In einem derartigen Fall könnte das Datenübertragungssystem Datenkorrekturoperationen auf die typische Art und Weise durchführen, nachdem ein Rest von Null erzeugt wurde, könnte jedoch verfolgen, ob irgendwelche Daten bei den Fehlerkorrekturoperationen korrigiert werden können. Wenn keine Fehlerkorrekturen durchgeführt werden, nachdem die anfängliche Anzeige einer Fehlerfreiheit der Fehlererfassungsoperation erfolgte, dann würde nach der Fehlerkorrekturoperation keine Fehlererfassungsoperation durchgeführt werden. Obwohl Fehlerkorrekturoperationen bei dieser Variante durchgeführt werden, wird die Fehlererfassungsoperation immer noch nur während des anfänglichen Einlesens von Daten von dem Massenspeichersystem durchgeführt. Da die Daten nicht aus dem Pufferspeicher ausgelesen und in serieller Form der Fehlererfassungsschaltung nach der Fehlerkorrekturoperation zur Verfügung gestellt werden müssen, ist diese Variante immer noch erheblich schneller als die konventionelle Ausführung der Fehlerkorrektur und der Fehlererfassung. Bei derartigen Ausführungsformen ist es nicht erforderlich, auf die Beendigung der Fehlererfassungsoperation zu warten, bevor mit den Fehlerkorrekturoperationen begonnen wird. Daher können die Fehlerkorrekturoperationen unmittelbar dann begonnen werden, nachdem Daten in dem Pufferspeicher gespeichert wurden.This Aspect of the present invention provides several advantages in comparison to the conventional error correction and error detection operations for available in conventional data transfer operations between CD-ROM storage devices and the data bus lines are performed in host computer systems. The system may be structured to perform data correction operations only then done if there is reason to believe that data correction is required is. The elimination of unnecessary Data correction operations increased the speed with which data can be transferred. Indeed There is a low probability that a bad data block evenly through the test polynomial could be shared and it can be done think that it desirable could be, yourself not just relying on the remainder of zero in the error detection operation is produced. In such a case, the data transmission system could Perform data correction operations in the typical way after a remainder of zero was generated, however, could track if any Data in the error correction operations can be corrected. If no bug fixes are done after the initial Indication of freedom from error detection operation was made, then would no error detection operation after the error correction operation carried out become. Although error correction operations are performed on this variant, the error detection operation is still only during the initial Reading data from the mass storage system. Because the Data not read from the buffer memory and in serial form the error detection circuit after the error correction operation to disposal need to be asked this variant is still considerably faster than the conventional one execution error correction and error detection. In such embodiments it is not necessary to stop the error detection operation to wait before starting the error correction operations. Therefore, you can the error correction operations are started immediately then after data has been stored in the cache.

Diese Aspekte der Erfindung sind äußerst vorteilhaft für Systeme, bei denen selten Fehler beim Lesen von Daten von einer CD-ROM-Speicherdiskette auftreten, oder beim Formatieren der ausgelesenen Daten zur Verwendung bei einem Digitalcomputersystem, oder bei der Bereitstellung der Daten für den Datenbus des Host-Computersystems. In der Praxis können Systeme erheblich höhere Fehlerraten zeigen, insbesondere bei der Einführung neuer Techniken bei optischen Speichersystemen. Optische Diskettenspeichersysteme, welche Disketten mit höherer Dichte verwenden, bei denen kleinere Datenmerkmalabmessungen vorgesehen sind, beispielsweise das System mit digitalen vielseitigen Disketten (DVD), können erhöhte Fehlerraten aufweisen. Weiterhin haben optische Speicherdisketten, die einmal beschrieben, jedoch mehrmals gelesen werden können ("WORM"), sowie erneut beschreibbare optische Speicherdisketten, Informationsmodulationsschemata, die weniger robust sind als CD-ROMs, so daß Systeme, welche derartige Disketten nach der neuen Technik verwenden, auch höhere Fehlerraten aufweisen können, als dies bei CD-ROMs beobachtet wird.These Aspects of the invention are extremely advantageous for systems, which rarely errors when reading data from a CD-ROM storage disk occur or when formatting the read-out data for use in a digital computer system, or in providing the Data for the data bus of the host computer system. In practice, systems can considerably higher Error rates show, especially in the introduction of new techniques in optical Storage systems. Optical disk storage systems, which disks with higher Use density where smaller data feature dimensions are provided, for example the system with digital versatile disks (DVD), can increased Have error rates. Furthermore, optical storage disks, once described, but can be read several times ("WORM"), as well as rewritable optical storage disks, information modulation schemes, the are less robust than CD-ROMs, so that systems such Using floppy disks according to the new technology, even higher error rates can have as observed on CD-ROMs.

Andere Zielrichtungen der vorliegenden Erfindung werden besonders in realistischeren Systemen eingesetzt, bei denen im Verlauf des Einlesens von Daten von Massenspeichersystemen Fehler auftreten. Bestimmte Ausführungsformen der Erfindung lesen Daten von einer Massenspeichereinheit aus, und stellen den ausgelesenen, seriellen Bitstrom parallel sowohl einem Pufferspeicher als auch einer Fehlererfassungsschaltung zur Verfügung. Die ausgelesenen Daten werden als Bytes organisiert, und in dem Pufferspeicher gespeichert. Gleichzeitig führt die Fehlererfassungsschaltung eine Fehlererfassungsoperation bei dem seriellen Datenstrom durch, der von der Massenspeichereinheit ausgelesen wird. Auch hier kann wiederum die Fehlererfassungsoperation darin bestehen, ein Segment des seriellen Datenstroms entsprechend einem Datenblock durch das Fehlerprüfpolynom zu teilen, und den Rest der Divisionsoperation zu bestimmen. Der Rest dieser anfänglichen Fehlerdivisionsoperation wird gespeichert, im Gegensatz zu konventionellen EDC-Systemen, welche diese Daten wegfallen lassen. Eine Fehlerkorrektur wird dann bei den in dem Pufferspeicher gespeicherten Daten durchgeführt, beispielsweise unter Verwendung eines Reed-Solomon-Produktcodes, auf konventionelle Weise. Auch hier kann wiederum der Beginn der Fehlerkorrekturoperationen erfolgen, nachdem die Daten in dem Pufferspeicher angeordnet sind, ohne auf die Beendigung der Fehlererfassungsoperation zu warten. Wenn durch die Fehlerkorrekturschaltung fehlerhafte Bytes festgestellt werden, werden die Fehlergleichungen gelöst, um das entsprechende Fehlermuster zu bestimmen, und dann werden die fehlerhaften Bytes in dem Pufferspeicher überschrieben. Die Orte der fehlerhaften Bytes innerhalb des seriellen Datenstroms werden, zusammen mit den Fehlermustern der Bytes, zur Berechnung von Korrekturen für den EDC-Rest von der ursprünglichen Fehlerdivision durch das Fehlerprüfpolynom bei dem eingelesenen Datenstrom verwendet. Der EDC-Rest wird entsprechend dem betreffenden Ort und Fehlermuster jedes der korrigierten Bytes korrigiert. Der EDC-Rest wird nach der Korrektur jedes fehlerhaften Bytes getestet, um festzustellen, ob der EDC-Rest ungleich Null ist, und wenn der EDC-Rest nicht gleich Null ist, wird der EDC-Rest gespeichert, und werden die Fehlerkorrekturoperationen fortgesetzt. Diese Operation ist deutlich von dem konventionellen Fehlerkorrekturschema verschieden, bei welchem das Fehlermuster und der Fehlerort unberücksichtigt bleiben, nachdem fehlerhafte Bytes in dem Pufferspeicher korrigiert wurden. Die Fehlerkorrektur wird fortgesetzt, bis der EDC-Rest auf einen Wert von Null verringert ist. Zu diesem Zeitpunkt wird angenommen, daß sämtliche Fehler korrigiert wurden, und werden die in dem Pufferspeicher gespeicherten Daten dem Datenbus des Host-Computers zugeführt. Wenn der EDC-Rest nicht den Wert Null erreicht, so kann der gesamte Fehlerkorrekturvorgang bei den einmal korrigierten Daten in dem Pufferspeicher wiederholt werden. Vorzugsweise wird der Datensektor erneut von der CD-ROM ausgelesen, und werden der gesamte EDC- und ECC-Vorgang gemäß der vorliegenden Erfindung wiederholt.Other objects of the present invention are particularly useful in more realistic systems are set in which errors occur during the reading of data from mass storage systems. Certain embodiments of the invention read data from a mass storage device and provide the read serial bit stream in parallel to both a buffer memory and an error detection circuit. The data read out are organized as bytes and stored in the buffer memory. At the same time, the error detection circuit performs an error detection operation on the serial data stream read out from the mass storage unit. Again, again, the error detection operation may be to divide a segment of the serial data stream corresponding to a data block by the error check polynomial and determine the remainder of the division operation. The remainder of this initial error division operation is stored unlike conventional EDC systems, which omit this data. Error correction is then performed on the data stored in the buffer memory, for example using a Reed-Solomon product code, in a conventional manner. Again, in turn, the beginning of the error correction operations may occur after the data is placed in the buffer without waiting for the error detection operation to complete. If erroneous bytes are detected by the error correction circuit, the error equations are resolved to determine the corresponding error pattern, and then the erroneous bytes in the buffer memory are overwritten. The locations of the erroneous bytes within the serial data stream, along with the error patterns of the bytes, are used to calculate corrections for the EDC remainder from the original error division by the error check polynomial on the read data stream. The EDC remainder is corrected according to the location and error pattern of each of the corrected bytes. The EDC remainder is tested after correction of each erroneous byte to determine if the EDC remainder is nonzero, and if the EDC remainder is not equal to zero, the EDC remainder is stored and the error correction operations continue. This operation is significantly different from the conventional error correction scheme in which the error pattern and the error location are disregarded after correcting erroneous bytes in the buffer memory. The error correction continues until the EDC remainder is reduced to a value of zero. At this time, it is assumed that all errors have been corrected, and the data stored in the buffer memory is supplied to the data bus of the host computer. If the EDC remainder does not reach zero, the entire error correction process may be repeated on the once corrected data in the buffer memory. Preferably, the data sector is read from the CD-ROM again and the entire EDC and ECC operation is repeated in accordance with the present invention.

Wie bei den vorher beschriebenen Ausführungsformen stellt auch diese Zielrichtung der Erfindung höhere Datenübertragungsraten zur Verfügung, da Daten niemals so aus dem Pufferspeicher ausgelesen werden, daß sie bitweise einer Fehlererfassungsschaltung zugeführt werden. Durch Anhalten der Fehlerkorrekturoperationen und Übertragung des Datenblocks, nachdem der Rest der Fehlerdivision auf Null verringert wurde, werden zumindest einige unnötige Fehlerkorrekturoperationen vermieden, was die Datenrate weiter verbessert. Nachstehend erfolgt nun eine mehr ins Einzelne gehende Beschreibung der vorliegenden Erfindung, beginnend mit einer Beschreibung der allgemeinen Umgebung, in welcher zumindest einige bevorzugte Ausführungsformen der vorliegenden Erfindung eingesetzt werden.As in the previously described embodiments, this also provides Objective of the invention higher Data transfer rates to disposal, since data is never read from the buffer memory in such a way that it is bitwise fed to a fault detection circuit. By stopping the error correction operations and transmission of the data block, after the remainder of the error division has been reduced to zero at least some unnecessary ones Error correction operations avoided, which further improves the data rate. Below is now a more detailed description of the present invention beginning with a description of general environment in which at least some preferred embodiments of the present invention.

3 zeigt ein Massenspeichersystem mit optischen Disketten, welches ein CD-ROM-Massenspeichergerät sein kann. 3 shows a mass storage system with optical disks, which may be a CD-ROM mass storage device.

Das dargestellte Datenübertragungssystem arbeitet unter Steuerung durch eine Mikrosteuerung 40, die vom Typ 8051 sein kann, und auf der Grundlage eines Steuerprogramms arbeitet, welches in einem nicht-flüchtigen Speicher 42 gespeichert ist. Information ist optisch auf einer Speicherdiskette 50 in Form erhöhter oder abgesenkter Bereiche auf der Oberfläche einer reflektierenden Diskette gespeichert, oder als lokale Änderungen der optischen Eigenschaften der Diskette. Information wird dadurch von der Diskette ausgelesen, daß ein Laserstrahl von einem optischen Aufnehmer 52 auf die Oberfläche der Diskette 50 gerichtet wird, und das von der Diskette reflektierte Licht gesammelt wird. Ein Detektor in dem optischen Aufnehmer 52 empfängt das reflektierte Licht, erzeugt ein analoges elektrisches Signal, welches die gespeicherte Information repräsentiert, und führt dieses Signal dem analogen Signalprozessor 54 zu. Der analoge Signalprozessor 54 empfängt das Informationssignal von dem optischen Aufnehmer 52, und empfängt Servoinformation von der Spindel oder dem Motor, der die Speicherdiskette 50 dreht. Der analoge Signalprozessor verarbeitet das Informationssignal, und führt das Informationssignal in geeignetem Format dem digitalen Signalprozessor 56 zu. Der digitale Signalprozessor 56 stellt ein digitalisiertes Informationssignal an seinem Ausgang entweder der CD-ROM-Steuerung 58 oder einem Digital-Analogwandler 60 zur Verfügung. Der Digital-Analogwandler kann das digitalisierte Informationssignal von dem digitalen Signalprozessor 56 in ein Analogsignal umwandeln. Dieses Analogsignal wird der Audioausgabeklemme 62 zugeführt, die ein Audioausgangssignal von dem CD-ROM-Laufwerk zur Verfügung stellt. Das Untersystem aus dem Digital-Analogwandler 60 und dem Audioausgang 62 ist typischerweise in einem kleinen Computersystem vorgesehen, um das Abspielen von Audio-Kompaktdisketten zu gestatten, wobei die Digitaldaten Übertragungsschaltung der CD-ROM-Steuerung umgangen wird. Daten, die an den Datenbus 64 übertragen werden sollen, der als ein IDE-Datenbus dargestellt ist, werden durch die CD-ROM-Steuerung 58 hindurchgeleitet, welche mit einem Pufferspeicher 66 zusammenarbeitet, um die Daten zu formatieren und bei den Daten eine Fehlerkorrektur und Fehlererfassung durchzuführen, bevor die Daten dem IDE-Bus 64 zugeführt werden.The illustrated data transfer system operates under the control of a microcontroller 40 , which may be of the type 8051, and operates on the basis of a control program stored in a non-volatile memory 42 is stored. Information is visually on a storage disk 50 stored in the form of raised or lowered areas on the surface of a reflective disk, or as local changes in the optical properties of the disk. Information is thereby read from the disk that a laser beam from an optical pickup 52 on the surface of the disk 50 is directed, and the reflected light from the floppy disk is collected. A detector in the optical pickup 52 receives the reflected light, generates an analog electrical signal representing the stored information, and passes this signal to the analog signal processor 54 to. The analog signal processor 54 receives the information signal from the optical pickup 52 , and receives servo information from the spindle or motor that holds the storage disk 50 rotates. The analog signal processor processes the information signal, and supplies the information signal in an appropriate format to the digital signal processor 56 to. The digital signal processor 56 provides a digitized information signal at its output either to the CD-ROM controller 58 or a digital-to-analog converter 60 to disposal. The digital-to-analog converter may receive the digitized information signal from the digital signal processor 56 convert to an analog signal. This analog signal becomes the audio output terminal 62 supplied, which provides an audio output signal from the CD-ROM drive. The subsystem of the digital-to-analog converter 60 and the audio output 62 is typically provided in a small computer system to allow the playback of audio compact discs, bypassing the digital data transfer circuitry of the CD-ROM controller. Data attached to the data bus 64 to be transmitted, which is represented as an IDE data bus, are controlled by the CD-ROM controller 58 passed, which with a buffer memory 66 works together to format the data and perform error correction and error detection on the data before sending the data to the IDE bus 64 be supplied.

3 zeigt ein Massenspeichersystem zur Wiedergewinnung von Daten, die auf CD-ROMs gespeichert sind. Die Organisation der Daten innerhalb von CD-ROM-Sektoren ist durch den Standard ISO/IEC-10149 definiert, nämlich "Informationstechnik Datenaustausch auf nur lesbaren optischen Datendisketten mit 120 mm (CD-ROM)". Dieser Standard legt im wesentlichen die Struktur der Daten fest, die auf der CD-ROM-Diskette gespeichert sind, jedoch gibt es verschiedene zulässige Variationen innerhalb dieser Gesamtstruktur. Es gibt drei unterschiedliche Arten von Sektoren innerhalb des Standards, so daß die Daten, die auf der CD-ROM 50 von 3 gespeichert sind, in einer von den drei Betriebsarten vorhanden sein können: Betriebsart 0, Betriebsart 1 und Betriebsart 2. Die Schaltung von 3 muß daher die unterschiedlichen Datenstrukturen aufnehmn können, die den unterschiedlichen Betriebsarten zugeordnet sind, in Reaktion auf das Betriebsart-Datenbyte, welches innerhalb der CD-ROM-Daten selbst enthalten ist. Dieser Aspekt der Datenübertragung von CD-ROM-Geräten ist wohlbekannt. Die nachstehende Diskussion erfolgt hauptsächlich auf der Grundlage der Übertragung von Daten gemäß Betriebsart 1 von einer CD-ROM. 3 shows a mass storage system for retrieving data stored on CD-ROMs. The organization of the data within CD-ROM sectors is defined by the standard ISO / IEC-10149, namely "Information technology Data exchange on read only optical data disks with 120 mm (CD-ROM)". This standard essentially specifies the structure of the data stored on the CD-ROM disk, but there are various permissible variations within this forest. There are three different types of sectors within the standard, so the data on the CD-ROM 50 from 3 stored in one of the three operating modes: operating mode 0, operating mode 1 and operating mode 2. The circuit of 3 Therefore, it must be able to accommodate the different data structures associated with the different modes of operation in response to the mode data byte contained within the CD-ROM data itself. This aspect of data transfer from CD-ROM devices is well known. The discussion below will be mainly based on the transmission of Mode 1 data from a CD-ROM.

4 zeigt die Struktur der Daten, die in einem Sektor der Betriebsart 1 gespeichert sind, nach Definition entsprechend dem Standard. Der Sektor ist in einer Anzahl von Feldern unterteilt, die ein Synchronisationsmuster von zwölf Byte enthalten, welches den Beginn eines Sektors zum Auslesen der Daten durch den optischen Aufnehmer und die anfängliche Datenverarbeitungsschaltung von 3 festlegt. Ein Vorspann von vier Byte enthält die absolute Adresse des Sektors, in Minuten, Sekunden, und Blöcken (1 Sekunde = 75 Blöcke), sowie ein Betriebsartbyte, welches angibt, in welcher der drei möglichen Betriebsarten die Daten in dem Sektor gespeichert sind. Der Sektor für Betriebsart 1 enthält 2048 Byte Benutzerdaten, welche die Bytes 16 bis 2068 des Sektors der Betriebsart 1 bilden, gefolgt von vier Byte Fehlererfassungcodedaten (EDC-Daten), acht Zwischenbytes, einhundertzweiundsiebzig Bytes von P-Paritätsdaten und einhundertundvier Bytes Q-Paritätsdaten. Wie voranstehend erläutert, bilden die P-Paritätsbytes und die Q-Paritätsbytes den Fehlerkorrekturcode (ECC). Der Fehlererfassungcode (EDC) und der Fehlerkorrekturcode (ECC) bilden die beiden komplementären Fehlerschutzmechanismen für jeden CD-ROM-Sektor. Das EDC-Feld, welches Teil eines zyklisch redundanten Codes (CRC) von zweiunddreißig Bit bildet, welches seine geschützten Datenfelder enthält, wird dazu verwendet, festzustellen, ob irgendwelche Fehler in einem Sektor vorhanden sind. Das ECC-Feld, welches das P-Paritätsfeld von 172 Byte und das Q-Paritätsfeld von 104 Byte umfaßt, ist ein Reed-Solomon-Produktcode (RSPC), der zur Erfassung und Korrektur von Fehlern innerhalb des Sektors verwendet wird. Der EDC stellt daher eine Überprüfung zur Verfügung, ob irgendwelche Fehler innerhalb eines ausgelesenen Sektors vorhanden sind, und der ECC gestattet die Korrektur von Fehlern innerhalb der übertragenen Daten. 4 shows the structure of the data stored in a sector of the mode 1, as defined by the standard. The sector is divided into a number of fields containing a synchronization pattern of twelve bytes indicating the beginning of a sector for reading the data by the optical pickup and the initial data processing circuit of 3 sets. A header of four bytes contains the absolute address of the sector, in minutes, seconds, and blocks (1 second = 75 blocks), as well as a mode byte indicating in which of the three possible modes the data is stored in the sector. The sector for mode 1 contains 2048 bytes of user data constituting the bytes 16 to 2068 of the mode 1 sector, followed by four byte error detection code data (EDC data), eight intermediate bytes, one hundred and seventy two bytes of P parity data and one hundred and four bytes of Q parity data. As explained above, the P parity bytes and the Q parity bytes form the error correction code (ECC). The error detection code (EDC) and error correction code (ECC) form the two complementary error protection mechanisms for each CD-ROM sector. The EDC field, which forms part of a thirty-two bit cyclic redundancy code (CRC) containing its protected data fields, is used to determine if there are any errors in a sector. The ECC field, which includes the P parity field of 172 bytes and the Q parity field of 104 bytes, is a Reed-Solomon product code (RSPC) used to detect and correct errors within the sector. The EDC therefore provides a check of whether there are any errors within a read sector, and the ECC allows the correction of errors within the transmitted data.

Konventionellerweise gab es, wie in 1 gezeigt, die implizite Annahme, daß Fehler in den von der CD-ROM ausgelesenen Daten vorhanden sind, so daß alle möglichen ECC-Operationen durchgeführt werden, bevor irgendeine EDC-Operation durchgeführt wird. Diese Vorgehensweise kann Fehler innerhalb übertragender Datensektoren korrigieren, ohne daß man sich auf Steuerschaltungen zur Ermittlung verlassen muß, ob irgendeine bestimmte Fehlerkorrekturoperation durchgeführt werden muß. Andererseits werden die Datenübertragunsoperationen dadurch verlangsamt, daß Fehlerkorrekturoperationen bei Daten durchgeführt werden, die entweder am Anfang keine Fehler enthielten, oder so korrigiert wurden, daß in den Daten keine weiteren Fehler mehr vorhanden sind. Es ist wesentlich festzustellen, daß zwar die Industriestandards zum Speichern und Zurückholen von Daten, die auf CD-ROMs gespeichert sind, sowohl eine Fehlerkorrektur als auch eine Fehlererfassung erfordern, daß jedoch die in 1 dargestellte, besondere Anordnung durch diese Standards nicht eingeschränkt wird.Conventionally, there were, as in 1 the implicit assumption that there are errors in the data read from the CD-ROM so that all possible ECC operations are performed before any EDC operation is performed. This approach can correct errors within transmitting data sectors without having to rely on control circuits to determine if any particular error correction operation needs to be performed. On the other hand, the data transfer operations are slowed down by performing error correction operations on data that either did not contain errors at the beginning or was corrected so that there are no more errors in the data. It is important to note that, although the industry standards for storing and retrieving data stored on CD-ROMs require both error correction and error detection, but that in 1 illustrated, special arrangement is not limited by these standards.

Für CD-ROM-Sektoren der Betriebsart 1 besteht das EDC-Codewort aus den Bytes 0 bis 2067 eines Sektors, wogegen für CD-ROM-XA-Sektoren der Betriebsart 2 und der Form 1 das EDC-Codewort aus den Bytes 16 bis 2075 des Sektors besteht. Bei EDC-Berechnungen wird das am wenigsten signifikante Bit (LSB) des Datenbytes zuerst verwendet, so daß die Bytes eines Sektors folgendermaßen numeriert werden können: Bi, i = 0 bis 2351, wobei ein Bit des Datenbytes gegeben ist durch: Bij, j = 7(MSB) bis 0(LSB). Das EDC-Codewort für einen CD-ROM-Sektor der Betriebsart 1 ist folgende Zahl mit 16544 Bits:

Figure 00190001
oder in Polynomdarstellung,
Figure 00190002
For mode 1 CD-ROM sectors, the EDC codeword consists of bytes 0 to 2067 of a sector, whereas for CD-ROM XA sectors of mode 2 and form 1 the EDC codeword consists of bytes 16 to 2075 of the sector Sector exists. In EDC calculations, the least significant bit (LSB) of the data byte is used first so that the bytes of a sector can be numbered as follows: B i , i = 0 to 2351, where one bit of the data byte is given by: B ij , j = 7 (MSB) to 0 (LSB). The EDC codeword for a Mode 1 CD-ROM sector is the following number with 16544 bits:
Figure 00190001
or in polynomial representation,
Figure 00190002

Für einen CD-ROM-XA-Sektor der Betriebsart 2 und der Form 1 ist das EDC-Codewort folgende Zahl mit 16480 Bits:

Figure 00190003
oder in Polynomdarstellung,
Figure 00190004
For a Mode 2 CD-ROM XA sector and Form 1, the EDC codeword is the following number with 16480 bits:
Figure 00190003
or in polynomial representation,
Figure 00190004

Für Daten der Betriebsart 1 schützt der EDC die Synchronisierungs-, Vorspann-, Benutzerdaten- und EDC-Felder.For data Mode 1 protects the EDC the sync, header, user data and EDC fields.

Das EDC-Feld von vier Byte in Kombination mit seinen geschützten Datenfeldern der Synchronisierung, Vorspann, Benutzerdaten, und EDC-Felder für Daten der Betriebsart 1 bildet das EDC-Codewort.The EDC field of four bytes in combination with its protected data fields synchronization, prefix, user data, and EDC fields for data Mode 1 forms the EDC codeword.

Gemäß ISO/IEC-10149 wird das auf der CD-ROM gespeicherte EDC-Codewort durch folgendes Prüfpolynom gleichmäßig geteilt: P(x) = (x16 + x15 + x2 + 1)·(x16 + x2 + x + 1) (1)oder P(x) = x32 + x31 + x16 + x15 + x4 + x3 + x + 1und zwar durch Auswahl des geeigneten Wertes für die vier EDC-Bytes, die an die Synchronisierungs-, Vorspann- und Benutzerdatenfelder angehängt werden. Durch Teilen des von der CD-ROM ausgelesenen EDC-Codewortes durch das Prüfpolynom und durch Bestimmung, ob der bei der Division auftretende Rest ungleich Null ist, kann die EDC-Regel dazu verwendet werden, zu übeprüfen, ob Fehler in den ausgelesenen Daten vorhanden sind. Die EDC-Regel kann durch einen zyklischen Codedekodierer verwirklicht werden, wie er in 5 gezeigt ist. Diese Schaltung kann beispielsweise als Reihe getakteter DQ-Flip-Flops mit Rückkopplung verwirklicht werden, die durch Exklusiv-OR-Gates zur Verfügung gestellt wird, die zwischen aufeinanderfolgende Q-Ausgänge und D-Eingänge geschaltet sind. Derartige Schaltungen sind wohlbekannt. Das gesamte EDC-Codewort muß als serieller Bitstrom durch den zyklischen Codedecodierer hindurchgeleitet werden. Nachdem das letzte Bit in den zyklischen Codedekodierer hineingelangt ist, werden die CRC-Registerbits überprüft, beispielsweise durch Summieren der zweiunddreißig Bits des CRC-Registers. Sind sämtliche Bits in dem CRC-Register gleich Null, so nimmt man an, daß das EDC-Codewort korrekt ist, da durch die EDC-Regel keine Fehler in den geschützten Datenfeldern festgestellt wurden. Ergibt sich bei der Division ein Wert ungleich Null, dann müssen Fehler in den vorhandenen Datenfeldern vorhanden sein. Allerdings kann die EDC-Regel nicht mitteilen, welche Bits in dem EDC-Codewort falsch sind.According to ISO / IEC-10149, the EDC codeword stored on the CD-ROM is divided equally by the following test polynomial: P (x) = (x 16 + x 15 + x 2 + 1) · (x 16 + x 2 + x + 1) (1) or P (x) = x 32 + x 31 + x 16 + x 15 + x 4 + x 3 + x + 1 by selecting the appropriate value for the four EDC bytes appended to the synchronization, preamble, and user data fields. By dividing the EDC codeword read from the CD-ROM by the check polynomial and determining whether the remainder occurring in the division is not equal to zero, the EDC rule can be used to check if there are errors in the read-out data , The EDC rule can be implemented by a cyclic code decoder as described in US Pat 5 is shown. This circuit can be implemented, for example, as a series of clocked DQ flip-flops with feedback provided by exclusive-OR gates connected between successive Q outputs and D inputs. Such circuits are well known. The entire EDC codeword must be passed through the cyclic codec as a serial bitstream. After the last bit has entered the cyclic codec, the CRC register bits are checked, for example, by summing the thirty-two bits of the CRC register. If all bits in the CRC register are equal to zero, then it is assumed that the EDC codeword is correct, as no errors in the protected data fields were detected by the EDC rule. If the division results in a value other than zero, then errors must exist in the existing data fields. However, the EDC rule can not tell which bits in the EDC codeword are wrong.

Die Datenkorrektur wird bei der Datenübertragung von einer CD-ROM-Speicherdiskette durch den Fehlerkorrekturcode (ECC) erzielt, der vorzugsweise ein Reed-Solomon-Produktcode (RSPC) ist, der auf ähnliche Weise, wie das bei den voranstehend in den vorliegenden Text durch Bezugnahme eingeschlossenen US-Patenten Nr. 4,413,340 von Odaka et al. und Nr. 4,680,764 von Suzuki et al. beschrieben wurde. Die Bytes 12 bis 2075 jedes Sektors von Daten auf der CD-ROM der Betriebsart 1 werden durch den doppelt verschachtelten RSPC-Code geschützt. Die geschützten Datenbytes des ausgelesenen Datensektors werden als ein Paar von Matrizen der in 2 dargestellten Art angeordnet. Die Spalten der Matrix werden als P-Vektoren bezeichnet, welche (26,24)-Reed-Solomon-Codewörter über GF(28) darstellen. Die Diagonalen der Matrix sind Q-Vektoren, welche (45,43)-Reed-Solomon-Codewörter über GF(28) darstellen. Die Sektoren umfassen 86-Vektoren und 52 Q-Vektoren, die zwischen zwei Ebenen von Daten aufgeteilt sind, einer für die weniger signifikanten Bytes und einer für die mehr signifikanten Bytes. Die B-Vektoren und die Q-Vektoren sind die grundlegenden Einheiten zur Anwendung des Fehlerkorrekturmechanismus. Jeder P-Vektor besteht aus 26 Bytes, einschließlich 2 Paritätsbytes. Ein Satz von Fehlergleichungen kann für jeden der P-Vektoren abgeleitet werden. Wenn ein Fehler in einem P-Vektor auftritt, dann kann der Fehlerort (also das bestimmte Byte dieses Vektors, welches falsch ist) und das Fehlermuster (also das Muster von Fehlerbits innerhalb des fehlerhaften Bytes) dadurch erhalten werden, daß die Gruppe von Fehlergleichungen gelöst wird, die durch Einsatz der Reed-Solomon-Produktcoderegeln festgelegt sind. Wenn in dem Vektor keine Fehler vorhanden sind, haben die Fehlergleichungen die triviale Lösung eines Nullfehlermusters. Anderenfalls ergeben die Fehlergleichungen einen Fehlerort und ein Fehlermuster, die dann dazu verwendete werden, ein korrigiertes Datenbyte zu erzeugen, welches dann die fehlerhaften Daten in den Benutzerdaten ersetzt. Q-Vektoren weisen eine Länge von 45 Bytes auf, einschließlich der beiden Q-Paritätsbytes. Die Reed-Solomon-Fehlerdekodierung für die Q-Vektoren entspricht jener, die bei den P-Vektoren durchgeführt wird. Daher werden Fehlergleichungen für jeden Q-Vektor abgeleitet, und gelöst, um fehlerhafte Bytes in den Q-Vektoren zu identifizieren, und den Ort und das Fehlermuster für die fehlerhaften Bytes festzustellen. Die fehlerhaften Bytes werden dann durch das korrekte Datenmuster ersetzt, welches sich aus den Fehlergleichungen ergibt.The data correction is achieved in data transmission from a CD-ROM storage disk through the error correction code (ECC), which is preferably a Reed-Solomon product code (RSPC), similar to that described in the above text by reference U.S. Patent Nos. 4,413,340 to Odaka et al. and No. 4,680,764 to Suzuki et al. has been described. The bytes 12 to 2075 of each sector of data on the mode 1 CD-ROM are protected by the double-interleaved RSPC code. The protected data bytes of the read data sector are considered as a pair of matrices of the in 2 arranged type arranged. The columns of the matrix are referred to as P-vectors representing (26,24) Reed-Solomon codewords over GF (2 8 ). The diagonals of the matrix are Q vectors representing (45, 43) Reed-Solomon codewords over GF (2 8 ). The sectors include 86 vectors and 52 Q vectors divided between two levels of data, one for the less significant bytes and one for the more significant bytes. The B vectors and the Q vectors are the basic units for applying the error correction mechanism. Each P-vector consists of 26 bytes, including 2 parity bytes. A set of error equations can be derived for each of the P vectors. If an error occurs in a P-vector, then the error location (ie, the particular byte of this vector which is false) and the error pattern (that is, the pattern of error bits within the erroneous byte) can be obtained by solving the set of error equations which are determined by use of the Reed-Solomon product code rules. If there are no errors in the vector, the error equations have the trivial solution of a null error pattern. Otherwise, the error equations provide a fault location and an error pattern, which are then used to generate a corrected data byte, which then replaces the erroneous data in the user data. Q vectors are 45 bytes in length, including the two Q parity bytes. The Reed-Solomon error decoding for the Q vectors corresponds to that performed on the P vectors. Therefore, error equations are derived for each Q vector and solved to identify erroneous bytes in the Q vectors, and to determine the location and error pattern for the erroneous bytes. The erroneous bytes are then replaced by the correct data pattern resulting from the error equations.

Jede Korrektur selbst kann nicht ausreichend robust sein, um die Integrität von Daten aufrecht zu erhalten, die von dem Massenspeichergerät übertragen werden. Eine weitere Fehlererfassungsverarbeitung ist nach dem Fehlerkorrekturvorgang erforderlich, da ECC-Logik nur eine begrenzte Fehlerkorrekturfähigkeit hat. Für jeden P- oder Q-Reed-Sohomon-Vektor kann nur ein Fehler festgestellt und korrigiert werden. Wenn daher mehr als ein Fehler in einem Codewort vorhanden ist, ist die ECC-Logik unfähig, eine korrekte Lösung für den Fehlerort und das Fehlermuster zu ergeben. Dann ergibt sich, daß entweder die ECC-Logik keinen richtigen Fehlerort finden kann, oder daß sie fehlerhaft ein Byte "korrigiert", welches tatsächlich keinen Fehler aufweist. Es kann daher geschehen, daß durch ECC-Logik bearbeitete Daten nicht fehlerfrei sind und daß bei ihnen tatsächlich durch die Fehlerkorrekturlogik neue Fehler eingefügt werden. Einige Ausführungen der ECC-Logik können zwei Fehler pro Codewort durch die Fehlerortinformation korrigieren, welche von dem digitalen Signalprozessor geliefert wird, aber es kann sein, daß diese Regeln keine ausreichenden Vorteile bieten, um den zusätzlichen Overhead für die genauere Fehlerkorrekturfähigkeit zu rechtfertigen. Es ist wünschenswert, sowohl ECC-Logik als auch EDC-Logik einzusetzen, um redundante Fehlerprüffähigkeiten zur Verfügung zu stellen, da Fehlererfassungslogik eine andere Vorgehensweise als die Fehlerkorrekturlogik einsetzt, um Fehler in einem Sektor zu ermitteln. Der Einsatz der EDC-Logik nach dem Fehlerkorrekturvorgang bei dem konventionellen CD-ROM-Speichersystem ist ein komplementärer Vorgang, der eher sicherstellt, daß der fehlerkorrigierte Sektor frei von Fehlern ist. Selbstverständlich weist dieses Datenschutzverfahren immer noch Einschränkungen auf, nämlich daß nur jene Felder geschützt sind, die durch die ECC-Codes und das ECC-Codewort geschützt sind.each Correction itself can not be sufficiently robust to the integrity of data to sustain that transmitted from the mass storage device become. Another error detection processing is after the error correction process required because ECC logic only a limited error correction capability Has. For every P- or Q-Reed-Sohomon vector Only one error can be detected and corrected. So if more is present as an error in a codeword is the ECC logic unable, a correct solution for the fault location and to give the error pattern. Then it turns out that either the ECC logic can not find a correct error location or that it is faulty a byte "corrected", which actually no Has errors. It can therefore happen that edited by ECC logic Data are not error free and that they are actually through The error correction logic will insert new errors. Some versions ECC logic Correct two errors per code word through the error location information which is supplied by the digital signal processor, but it may be that this Rules do not provide sufficient benefits to the extra Overhead for the more accurate error correction capability to justify. It is desirable use both ECC logic and EDC logic to provide redundant error checking capabilities to disposal because error detection logic is another approach as the error correction logic sets to errors in a sector to investigate. The use of EDC logic after the error correction process in the conventional CD-ROM storage system is a complementary process, who rather ensures that the error-corrected sector is free of errors. Of course, points This privacy policy still has limitations, namely that only those Fields protected are protected by the ECC codes and the ECC codeword.

Als nächstes werden unter Bezugnahme auf 6 die Funktionsblöcke einer CD-ROM-Steuerung gemäß der vorliegenden Erfindung beschrieben, wobei sich weitere Einzelheiten und Unterschiede in bezug auf die in 3 gezeigte CD-ROM-Steuerung 58 und den Pufferspeicher 66 ergeben. In 6 empfängt die CD-ROM-Steuerung Eingangsdaten als Bitstrom aus seriellen Daten 70 von dem digitalen Signalprozessor 56 (3). Die Entschlüsselungsvorrichtung 72 empfängt die seriellen Sektordaten von dem digitalen Signalprozessor und beginnt mit der Entschlüsselung des seriellen Bitstroms, nachdem das Synchronisationsmuster durchgelaufen ist. Die Entschlüsselungsvorrichtung 72 arbeitet so, daß sie die CD-ROM-Sektorfelder (Vorspann, Benutzerdaten, EDC, ECC, usw.) zurückgewinnt, welche auf das Synchronisierungsfeld folgen. Die entschlüsselten Daten werden der Datenorganisationsvorrichtung 74 und dem CRC-Generator 78 zugeführt. Die Datenorganisationsvorrichtung 74 wandelt die entschlüsselten seriellen Daten in Bytes um, typischerweise Bytes von 8 Bit, und speichert die Datenbytes an den richtigen Orten in einem Pufferspeicher 76 für nachfolgende Fehlerkorrekturoperationen und möglicherweise Übertragung an den Host-Computer. Der Pufferspeicher 76 wird normalerweise so ausgewählt, daß er ausreichend groß ist um einfach einen Sektor oder mehrere Sektoren der Daten während Übertragungsvorgängen zu speichern. Der Pufferspeicher 76 kann ein DRAM sein, oder dann, wenn höhere Geschwindigkeiten gewünscht sind, ein SRAM. Ein Vorteil der vorliegenden Erfindung besteht darin, daß die durch sie erzielbare höhere Geschwindigkeit die Verwendung langsamerer und daher billigerer Speicher als Puffer für das Datenübertragungssystem gestattet.Next, referring to 6 the functional blocks of a CD-ROM controller according to the present invention are described, with further details and differences with respect to the in 3 shown CD-ROM control 58 and the cache 66 result. In 6 The CD-ROM controller receives input data as a bitstream of serial data 70 from the digital signal processor 56 ( 3 ). The decryption device 72 receives the serial sector data from the digital signal processor and begins decrypting the serial bit stream after the synchronization pattern has passed. The decryption device 72 works by recovering the CD-ROM sector fields (header, user data, EDC, ECC, etc.) following the sync field. The decrypted data becomes the data organizer 74 and the CRC generator 78 fed. The data organizer 74 converts the decrypted serial data into bytes, typically 8-bit bytes, and stores the data bytes in the proper locations in a buffer 76 for subsequent error correction operations and possibly transmission to the host computer. The cache 76 is normally selected to be sufficiently large to simply store one or more sectors of the data during transfer operations. The cache 76 may be a DRAM or, if higher speeds are desired, an SRAM. An advantage of the present invention is that the higher speed achievable by it permits the use of slower, and therefore cheaper, storage as a buffer for the data transfer system.

Der Datenbitstrom, der von den Entschlüsselungsvorrichtung 72 ausgegeben wird, wird nicht nur der Datenorganisationsvorrichtung zum Speichern der Daten innerhalb des Pufferspeichers zugeführt, sondern auch dem CRC-Generator 78. Der CRC-Generator 78 ist vorzugsweise eine zyklische Redundanzüberprüfungsvorrichtung mit zweiunddreißig Bit, welche das Fehlerprüfpolynom ausbildet, welches in Gleichung (1) aufgeführt ist, wie die in 5 gezeigte CRC.The data bit stream used by the decryption device 72 is output not only to the data organizing apparatus for storing the data within the buffer memory but also to the CRC generator 78 , The CRC generator 78 is preferably a thirty-two-bit cyclic redundancy checker which forms the error check polynomial set forth in Equation (1), such as those in 5 shown CRC.

Der CRC-Generator empfängt den ankommenden Datenbitstrom, wenn die Daten am Anfang durch die Entschlüsselungsvorrichtung 72 durch die CD-ROM-Steuerung entschlüsselt werden. Der CRC-Generator 78 führt eine anfängliche Fehlererfassungsoperation bei den ankommenden Bitstromdaten durch, während die Daten immer noch entschlüsselt und im Speicher gespeichert werden, durch Teilen des ankommenden Datenbitstroms durch das Fehlerprüfpolynom. Das Ausgangssignal des CRC-Generators ist ein Anfangsrestmuster, welches als CRC0 bezeichnet wird, und das Restwort mit zweiunddreißig Bit darstellt, welches durch Einsatz der EDC-Logik der in 5 dargestellten Art bei einem unkorrigierten, ankommenden EDC-Codewortbitstrom erhalten wird. Dieser CRC0-Wert wird einem Restregister innerhalb des Fehlererfassungsprozessors 82 zugeführt, nachdem der Bitstrom entsprechend dem gesamten EDC-Codewort des Datensektors vollständig durch den CRC-Generator gelangt ist. Wenn der Fehlererfassungsprozessor feststellt, daß der ursprüngliche Fehlerprüfungsrest CRC0 einen Wert von Null aufweist, beispielsweise mittels Durchführung einer NOR-Operation bei den Bits des CRC0-Wortes, so schließt die EDC-Logik hieraus, daß in dem ankommenden Datenwort keine Fehler vorhanden sind. In einem derartigen Fall kann der Fehlererfassungsprozessor 82 die in dem Pufferspeicher 76 gespeicherten Daten dazu veranlassen, unmittelbar an den Datenbus des Host-Computers ausgegeben zu werden. Bei bevorzugten Ausführungsformen der vorliegenden Erfindung werden die Daten des ankommenden Sektors nicht erneut durch den CRC-Generator 78 geleitet, und werden nicht durch einen anderen CRC-Generator geleitet, oder auf andere Art und Weise einer konventionellen EDC-Logikverarbeitung unterzogen. Da konventionelle EDC-Logik die meisten Daten eines Sektors seriell durch ein serielles Register mit 32 Bit schickt, kann konventionelle EDC-Logik langsam sein. Die in 6 gezeigte CD-ROM-Steuerung gestatet es, daß die ankommenden Sektordaten durch die EDC-Logik nur einmal hindurchlaufen, und daß eine EDC-Operation gleichzeitig zu dem Zeitpunkt durchgeführt wird, an welchem der ankommende Datenbitstrom entschlüsselt wird, in Bytes organisiert und in Pufferspeicher gespeichert wird. Bei der Ausführungsform gemäß 6 ist daher die Zeit wesentlich verringert, die für EDC-Operationen benötigt wird.The CRC generator receives the incoming data bit stream when the data is initially passed through the decryption device 72 be decrypted by the CD-ROM controller. The CRC generator 78 performs an initial error detection operation on the incoming bit stream data while the data is still decrypted and stored in memory by dividing the incoming data bit stream by the error check polynomial. The output of the CRC generator is an initial residual pattern, referred to as CRC 0 , which represents the remaining thirty-two bit bit which, by employing the EDC logic of FIG 5 shown in an uncorrected, incoming EDC codeword bit stream. This CRC 0 value becomes a remainder register within the error detection processor 82 supplied after the bit stream corresponding to the entire EDC codeword of the data sector has completely passed through the CRC generator. If the error detection processor determines that the original error checking residue CRC 0 has a value of zero, for example by performing a NOR operation on the bits of the CRC 0 word, then the EDC logic concludes that there are no errors in the incoming data word , In such a case, the error detection processor 82 those in the cache 76 stored data to be output directly to the data bus of the host computer. In preferred embodiments of the present invention, the data of the incoming sector is not redone by the CRC generator 78 and are not routed through another CRC generator or otherwise subjected to conventional EDC logic processing. Because conventional EDC logic serially sends most of a sector's data through a 32-bit serial register, conventional EDC logic can be slow. In the 6 The CD-ROM controller shown permits the incoming sector data to pass through the EDC logic only once, and that an EDC operation is performed concurrently with the time at which the incoming data bit stream is decrypted, organized into bytes, and stored in buffer memory becomes. In the embodiment according to 6 Therefore, the time required for EDC operations is significantly reduced.

Bei typischen Ausführungsformen der CD-ROM-Steuerung von 6 wird eine Fehlerkorrektur entsprechend den Reed-Solomon-Produktcodes (RSPC) bei den Daten durchgeführt, die in dem Pufferspeicher gespeichert sind, und zwar durch die Fehlerkorrekturlogik 80 auf konventionelle Art und Weise, jedoch mit der Ausnahme, daß Fehlerort und Fehlermusterdaten beibehalten werden, nachdem die fehlerhaften Bytes in dem Pufferspeicher 76 überschrieben wurden. Sobald die Daten des übertragenen Sektors in dem Pufferspeicher 76 gespeichert wurden, beginnt die Fehlerkorrektur. Die Fehlerkorrekturlogik 80 holt sich die RSPC-Codewörter aus dem Pufferspeicher, stellt fest, ob Fehler in den verschiedenen P- und Q-Codewörtern enthalten sind, und löst je nach Erfordernis die Fehlergleichungen, um einen Fehlerort und ein Fehlermuster für die fehlerhaften Datenbytes zu bestimmen. Der Fehlerort ist eine Binärzahl von 12 Bit, die von der Fehlerkorrekturlogik erzeugt wird, um anzuzeigen, welches Byte eines Sektors fehlerhaft ist, und das Fehlermuster ist eine Binärzahl von 8, die von der Fehlerkorrekturlogik erzeugt wird, um anzuzeigen, welche Bits eines Bytes korrigiert werden sollten. Bei bevorzugten Ausführungsformen der Steuerung gemäß 6 ist der Fehlerort einfach die Adresse eines fehlerhaften Bytes. Fehlermuster werden zusammen mit ihren zugeordneten Fehlerorten während des Fehlerkorrekturvorgangs beendet. Ist beispielsweise das Fehlermuster gleich 010010102, und ist der Fehlerort 123410 dann ist das Byte 123410 der Sektordaten fehlerhaft. Wenn der Ursprungswert des Bytes 123410 gleich 110101012 ist, dann wird das Byte 123410 auf 110101012 ⨁ 010010102 = 100111112 korrigiert, so daß sich der korrekte Wert ergibt als Originaldatenmuster ⨁ Fehlermuster, wobei ⨁ den Exklusiv-OR-Operator bezeichnet. Die ECC-Logik 80 führt eine Fehlerkorrektur bei den jeweiligen P- und Q-Codewörtern durch, durch Berechnung des korrigierten Datenbytes (korrekte Daten = Fehlerdaten ⨁ Fehlermuster), und nachfolgendes Überschreiben des fehlerhaften Datenbytes durch das korrigierte Datenbyte in dem Pufferspeicher 76.In typical embodiments of CD-ROM control of 6 For example, an error correction according to the Reed-Solomon Product Codes (RSPC) is performed on the data stored in the buffer memory by the error correction logic 80 in a conventional manner, with the exception that error location and error pattern data are retained after the erroneous bytes in the buffer memory 76 were overwritten. Once the data of the transmitted sector in the cache 76 have been saved, the error correction begins. The error correction logic 80 retrieves the RSPC codewords from the buffer, determines if there are errors in the various P and Q codewords, and solves the error equations as necessary to determine a fault location and an error pattern for the erroneous bytes of data. The error location is a 12-bit binary number generated by the error correction logic to indicate which byte of a sector is faulty, and the error pattern is a binary number of 8 generated by the error correction logic to indicate which bits of a byte are being corrected should be. In preferred embodiments of the controller according to 6 the error location is simply the address of a faulty byte. Error patterns are terminated along with their associated error locations during the error correction process. For example, if the error pattern is 01001010 2 and the error location is 1234 10 then the byte 1234 10 of the sector data is erroneous. If the original value of byte 1234 10 is 11010101 2 , then byte 1234 10 is corrected to 11010101 2 ⨁ 01001010 2 = 10011111 2 to give the correct value as original data pattern ⨁ error pattern, where ⨁ denotes the exclusive OR operator , The ECC logic 80 performs error correction on the respective P and Q codewords by calculating the corrected data byte (correct data = error data ⨁ error pattern), and then overwriting the erroneous data byte by the corrected data byte in the buffer memory 76 ,

Bei bevorzugten Ausführungsformen der vorliegenden Erfindung werden der Fehlerort und das Fehlermuster nicht entfernt, nachdem das Fehlerbyte korrigiert wurden. Stattdessen werden der Fehlerort und das Fehlermuster in einem Register innerhalb der Fehlerkorrekturlogik 80 gerettet, oder noch typischer innerhalb des Fehlererfassungsprozessors 82. Diese Daten werden zur Berechnung einer Korrektur des ursprünglichen Fehlerüberprüfungsrestes CRC0 verwendet, oder zur Berechnung einer weiteren Korrektur bei einem vorher korrigierten Fehlerprüfrest Ri. Nach jeder Korrektur der in dem Pufferspeicher gespeicherten Daten wird der Wert des Fehlerprüfrestes Ri überprüft, um festzustellen, ob er Null ist. Ist ein Wert von Null bei der letzten Iteration des Restes Ri vorhanden, so kann der Fehlererfassungsprozessor 82 hieraus schließen, daß sämtliche Fehler innerhalb des Sektors korrigiert wurden, und daß die Daten dazu bereit sind, von dem Pufferspeicher 76 an den IDE-Bus oder einen anderen Bus des Host-Computers übertragen zu werden. Wenn die CD-ROM-Steuerung gemäß 6 auf diese Art und Weise betrieben wird, wird der Betrieb der Fehlerkorrekturlogik 80 angehalten, nachdem ein Wert von Null als Fehlerprüfrest Ri zurückgegeben wurde.In preferred embodiments of the present invention, the error location and the error pattern are not removed after the error byte has been corrected. Instead, the error location and error pattern will be in a register within the error correction logic 80 saved, or more typically within the error detection processor 82 , These data are used to calculate a correction of the original error check remainder CRC 0 or to calculate a further correction in a previously corrected error check remainder R i . After each correction of the data stored in the buffer memory, the value of the error checking residual R i is checked to see if it is zero. If a value of zero is present at the last iteration of the remainder R i , then the error detection processor 82 from this conclude that all errors within the sector have been corrected and that the data is ready to be retrieved from the buffer memory 76 to be transferred to the IDE bus or another bus of the host computer. If the CD-ROM control according to 6 is operated in this manner, the operation of the error correction logic 80 stopped after a value of zero is returned as error check residual R i .

Der Fehlererfassungsprozessor 82 wendet die Fehlererfassungscoderegel gemäß der vorliegenden Erfindung indirekt bei den in dem Pufferspeicher gespeicherten Daten an, wobei die EDC-Regel gemäß der vorliegenden Erfindung auf der Grundlage des Fehlerortes und der Fehlermusterinformation, die durch die Operation der Fehlerkorrekturlogik erzeugt werden, bei dem ursprünglichen oder einem nachfolgenden CRC-Restwert (CRC0 oder Ri) eingesetzt wird, um einen aktualisierten CRC-Restwert (Ri+l) zu erzeugen. Für jedes Fehlerbyte, welches von der Fehlerkorrekturlogik 80 korrigiert wird, übergibt die Fehlerkorrekturlogik 80 den Fehlerort und die Fehlermusterinformation an die Fehlererfassungslogik 82. Die Fehlererfassungslogik 82 führt eine erneute Berechnung des CRC-Restes R aus der Prüfpolynomdivision durch, durch Berechnung einer Korrektur für den Rest, und Addition dieser Korrektur zu dem vorher gespeicherten Rest (Ri). Durch Berechnung einer Korrektur für den CRC-Rest muß die Fehlererfassungslogik nicht die lange Binärzahl, die aus den Bits sämtlicher Sektordaten besteht, die durch den EDC geschützt sind, durch das Prüfpolynom dividieren, um den CRC-Rest zu berechnen. Nachdem der Fehlererfassungsprozessor 82 den Rest Ri entsprechend dem Fehlerort und dem Fehlermuster jenes Bytes korrigiert hat, welches zuletzt von der Fehlerkorrekturlogik 80 korrigiert wurde, wird der neue Wert des Fehlererfassungsregisters R überprüft. Ist R ungleich Null, so bleiben innerhalb der Sektordaten noch Fehler übrig, die korrigiert werden müssen, und geht der Fehlerkorrekturvorgang weiter. Ist R gleich Null, so nimmt der Fehlererfassungsprozessor vorzugsweise an, daß sämtliche Fehler in dem Sektor korrigiert wurden, und wird der Fehlerkorrekturvorgang vorzugsweise gestoppt, und werden die Daten übertragen. Ein neuer Sektor wird von der CD-ROM-Speicherdiskette gelesen, und die voranstehend geschilderten Vorgänge werden für den nächsten Sektor wiederholt. Wenn R ungleich Null bleibt, nachdem sämtliche P-Vektoren und Q-Vektoren eines Sektors verarbeitet wurden, so kann der Fehlerkorrekturvorgang erneut wiederholt werden, oder werden vorzugsweise die Daten des Sektors erneut von der Diskette ausgelesen.The error detection processor 82 indirectly applies the error detection code rules according to the present invention to the data stored in the buffer memory, the EDC rule according to the present invention being based on the error location and the error pattern information generated by the operation of the error correction logic at the original or a subsequent one CRC residual (CRC 0 or R i ) is used to generate an updated CRC residual (R i + 1 ). For each error byte, which of the error correction logic 80 is corrected passes the error correction logic 80 the error location and the error pattern information to the error detection logic 82 , The error detection logic 82 performs recalculation of the CRC remainder R from the check polynomial division, by calculating a correction for the remainder, and adding this correction to the previously stored remainder (R i ). By calculating a correction for the CRC remainder, the error detection logic need not divide the long binary number consisting of the bits of all sector data protected by the EDC by the check polynomial to calculate the CRC remainder. After the error detection processor 82 has corrected the remainder R i according to the error location and the error pattern of that byte which last from the error correction logic 80 has been corrected, the new value of the error detection register R is checked. If R is non-zero, there are still some errors left within the sector data that need to be corrected, and the error correction process continues. If R equals zero, the error detection processor preferably assumes that all errors in the sector have been corrected, and preferably the error correction process is stopped and the data is transmitted. A new sector is read from the CD-ROM storage disk, and the above operations are repeated for the next sector. If R remains nonzero after all the P vectors and Q vectors of a sector have been processed, then the error correction process may be repeated again, or preferably the data of the sector is again read from the disk.

Der Betrieb des Fehlererfassungsprozessors gemäß der vorliegenden Erfindung läßt sich unter Bezugnahme auf ein vereinfachtes Beispiel verstehen, welches auf einem Codewort von 15 Bit beruht. c(x) = x14 + x11 + x8 + x6 + x5 + x4 + x3 + x, oder c(x) = (100100101111010),welches folgendes Prüfpolynom aufweist p(x) = x4 + x + 1. The operation of the error detection processor according to the present invention can be understood with reference to a simplified example based on a 15-bit codeword. c (x) = x 14 + x 11 + x 8th + x 6 + x 5 + x 4 + x 3 + x, or c (x) = (100100101111010), which has the following check polynomial p (x) = x 4 + x + 1.

Teilt man c(x) durch p(x), so ergibt sich der Quotient q(x) = (10001011001), mit folgendem Rest
r(x) = (0001), wie nachstehend angegeben:

Figure 00300001
Dividing c (x) by p (x) yields the quotient q (x) = (10001011001), with the following rest
r (x) = (0001), as indicated below:
Figure 00300001

Dies stellt eine konventionelle Anwendung der Fehlerkorrekturlogik dar, um die Integrität des Codewortes c(x) unter Verwendung des Fehlerprüfpolynoms p(x) zu überprüfen, wie dies am Anfang von dem CRC-Generator 78 von 6 durchgeführt werden kann. Natürlich ist das tatsächlich in dem CRC-Generator 78 verwendete EDC-Codewort mehr als sechzehntausend Bits lang, und ist das Fehlerprüfpolynom jenes, welches in der voranstehenden Gleichung (1) aufgeführt wurde. Dieses Beispiel erläutert darüber hinaus die Einfachheit der Divisionsoperation bei einer konventionellen CRC-Operation, da dies mit Arithmetik Modulo 2 durchgeführt wird, und als serielle Schieberegister in Kombination mit XOR-Gates ausgeführt werden kann. Da bei dem voranstehenden Beispiel der Rest r(x) ungleich Null ist, ergibt sich aus der EDC-Operation, daß ein Fehler in dem Codewort c(x) vorhanden ist. Dann kann irgendeine Form einer Fehlerkorrekturoperation durchgeführt werden, welche bestimmt, daß die fehlerhaften Bits des Codewortes c(x) x10 und x15 sind, so daß sich folgendes Fehlermuster für c(x) ergibt, nämlich e(x) = (000010000100000). Das korrigierte Codewort c'(x) ergibt sich dann aus c'(x) = c(x) ⨁ e(x) = (1001101010011010).This represents a conventional application of the error correction logic to verify the integrity of the codeword c (x) using the error check polynomial p (x), as in the beginning of the CRC generator 78 from 6 can be carried out. Of course, that's actually in the CRC generator 78 For example, the EDC codeword used is more than sixteen thousand bits long, and the error check polynomial is that listed in equation (1) above. This example further illustrates the simplicity of the division operation in a conventional CRC operation, since this is done with arithmetic modulo 2 and can be performed as a serial shift register in combination with XOR gates. In the above example, since the remainder r (x) is non-zero, it results from the EDC operation that there is an error in the codeword c (x). Then, some form of error correction operation may be performed which determines that the erroneous bits of the codeword are c (x) x 10 and x 15 , giving the following error pattern for c (x), e (x) = (000010000100000) , The corrected codeword c '(x) then results from c' (x) = c (x) ⨁ e (x) = (1001101010011010).

Die Tatsache, daß c'(x) korrekt ist, kann durch den Einsatz konventioneller EDC-Logik nach der Fehlerkorrekturoperation auf die Art und Weise bestätigt werden, die von der konventionellen Fehlerkorrektur- und Fehlererfassungsschaltung von 1 durchgeführt wird, nämlich folgendermaßen:

Figure 00310001
The fact that c '(x) is correct can be confirmed by the use of conventional EDC logic after the error correction operation in the manner that is used by the conventional error correction and error detection circuit of FIG 1 carried out, namely as follows:
Figure 00310001

Wie voranstehend erläutert, hat zwar diese konventionelle EDC-Prozedur (CRC nach Beendigung von ECC) den Vorteil einer einfachen Hardware, jedoch kann dies ein langwieriger Vorgang sein, wenn dies bei dem EDC-Codewort mit sechzehntausend Bits eingesetzt wird, welches konventionellerweise bei der Speicherung von Daten auf CD-ROMs verwendet wird.As explained above, Although this conventional EDC procedure (CRC after completion from ECC) has the advantage of simple hardware, but this can a lengthy process, if this with the EDC codeword with sixteen thousand bits is used, which conventionally when storing data on CD-ROMs.

Bevorzugte Ausführungsformen der Erfindung korrigieren den Fehlerprüfrest aus dem Fehlermuster, und dann wird der korrigierte Rest daraufhin untersucht, um festzustellen, wann er den Wert Null erreicht. Wie aus der nachstehend angegebenen Berechnung deutlich wird, ergibt das Verfahren gleiche Ergegnisse wie die konventionelle Vorgehensweise:

Figure 00320001
Preferred embodiments of the invention correct the error proof residue from the error pattern, and then the corrected residue is then examined to determine when it reaches zero. As can be seen from the calculation below, the procedure gives the same results as the conventional approach:
Figure 00320001

Der vorliegende Fehlererfassungsprozessor führt eine schrittweise Verfolgung der Korrekturen durch, die bei dem Fehlerprüfrest durchgeführt wurden, dekrementiert den Restwert durch die Korrekturen, und stellt fest, wann der Fehlerprüfrest auf Null verringert wird. Der Rest wird daher vollständig durch die Subtraktion einer oder mehrerer Zahlen von dem ursprünglichen Fehlerprüfrest korrigiert, wobei die Summe der Zahlen gleich dem ursprünglichen Fehlerprüfrest ist. Daher ist die Summe des ursprünglichen Restmusters und des Fehlermusters jeder der Korrekturen, die bei den Sektordaten durchgeführt wurden, gleichmäßig durch das Fehlerprüfpolynom teilbar, auf die Art und Weise, welche bei dem voranstehenden Beispiel erläutert wurde. Das Fehlerkorrekturverfahren gemäß der vorliegenden Erfindung stellt daher eine ähnliche Überprüfung der Integrität der Daten wie bei der konventionellen EDC-Logik auf CRC-Grundlage zur Verfügung, jedoch ist die Ausführung dieses Fehlererfassungsvorgangs von der Ausführung der konventionellen, auf CRC beruhenden Fehlererfassungslogik deutlich verschieden.Of the present error detection processor performs a stepwise tracking the corrections made in the error proofing test, decrements the residual value through the corrections, and notes when the Fehlerprüfrest is reduced to zero. The rest is therefore completely through the subtraction of one or more numbers from the original one Fehlerprüfrest corrected, where the sum of the numbers is equal to the original one Fehlerprüfrest is. Therefore, the sum of the original residual pattern and the error pattern any of the corrections made to the sector data evenly through the error checking polynomial divisible, in the way that in the previous example explained has been. The error correction method according to the present invention therefore presents a similar verification of the integrity of the data however, as with conventional EDC logic based on CRC is the execution this error detection process from the execution of the conventional, CRC based error detection logic significantly different.

Bei dem voranstehend geschilderten Beispiel bestanden die Fehlermuster aus einzelnen Bits, die an bestimmten Orten innerhalb des Codewortes angeordnet werden sollten. Wenn im Gegensatz hierzu der Fehlererfassungsprozessor gemäß der vorliegenden Erfindung in einer CD-ROM-Steuerung verwirklicht wird, stellt das Fehlermuster ein Byte von acht Bits dar, und ist der Fehlerort eine Zahl von zwölf Bits, welche den Ort des fehlerhaften Bytes innerhalb der mehr als zweitausend Bytes des Sektors angibt. Um die Korrektur des Fehlerprüfrestes zu berechnen, ist es erforderlich, eine Kompensation für die Fehlerposition auf der Grundlage sowohl des Fehlermusters als auch des Fehlerortes durchzuführen. Mathematisch führt der Fehlererfassungsprozessor 83 der Ausführungsform von 6 die folgende Berechnung durch, um den jeweils letzten Fehlerprüfrest zu korrigieren. Ri+1 = Ri ⨁ {(e·x)moduloP(x)}, (2) wobei R das Fehlererfassungsergebnis ist, e das Fehlermuster, λ eine Nummer, die aus dem Fehlerort l ermittelt wird, und P(x) das Prüfpolynom gemäß Gleichung (1) ist. In der Praxis kann die Zahl Ri ⨁ (e·x) lang sein, so daß die Operation modulo P(x) viel Zeit erfordert. Allerdings ist die Berechnung schneller als die konventionelle CRC-Berechnung, die bei einem gesamten EDC-Wort durchgeführt wird. Darüber hinaus wird diese Fehlererfassungsbearbeitung parallel zur Fehlerkorrekturverarbeitung durchgeführt, so daß der gesamte Fehlerkorrektur- und Fehlererfassungsvorgang insgesamt schneller durchgeführt wird als bei der konventionellen Schaltung, die in 1 gezeigt ist.In the above example, the error patterns consisted of individual bits which should be located at certain locations within the code word. In contrast, when the error detection processor according to the present invention is implemented in a CD-ROM controller, the error pattern represents a byte of eight bits, and the error location is a number of twelve bits indicating the location of the erroneous byte within the more than specifies two thousand bytes of the sector. In order to calculate the correction of the error checking residual, it is necessary to compensate for the error position based on both the error pattern and the error location. Mathematically, the error detection processor performs 83 the embodiment of 6 perform the following calculation to correct the latest error checking residual. R i + 1 = R i ⨁ {(e · x ) moduloP (x)}, (2) where R is the error detection result, e is the error pattern, λ is a number obtained from the fault location I, and P (x) is the check polynomial according to equation (1). In practice, the number R i ⨁ (e x ) may be long, so that the operation modulo P (x) requires a lot of time. However, the calculation is faster than the conventional CRC calculation performed on an entire EDC word. Moreover, this error detection processing is performed in parallel with the error correction processing, so that the overall error correction and error detection process is performed faster overall than in the conventional circuit disclosed in US Pat 1 is shown.

7 zeigt schematisch einen möglichen Fehlererfassungsprozessor 82, der die Berechnung gemäß Gleichung (2) innerhalb der CD-ROM-Steuerung von 6 durchführt. Der Fehlererfassungsprozessor 82 weist eine Fehlererfassungsprozessorsteuerung 100 auf, welche eine Zustandsmaschine zum Steuern der Schrittfolge darstellt, die bei der Berechnung einer Korrektur des Fehlerprüfrestes beteiligt ist. Ein Fehlerortwandler 102, oder ELC in 7, wandelt den Fehlerort l in die Zahl λ von 1 Bit um, die dann bei der Berechnung der Korrekturen zum Wert R verwendet wird. 7 schematically shows a possible error detection processor 82 which calculates according to equation (2) within the CD-ROM control of 6 performs. The error detection processor 82 has an error detection processor control 100 which is a state machine for controlling the sequence of steps involved in calculating a correction of the error checking residual. A fault location converter 102 , or ELC in 7 , converts the error location l into the number λ of 1 bit, which is then used in the calculation of the corrections to the value R.

Die Korrekturschaltung 104 berechnet den Wert e·x·mod P(x), und gibt die Restkorrektur aus. Das Register 106 für den Rest R speichert den Fehlerprüfrest, der anfangs gleich CRC0 ist, und bei darauffolgenden Iterationsschritten der korrigierte Restwert Ri ist. Das Fehlermuster e (acht Bits) und der Fehlerort l werden durch die Fehlerkorrekturlogik 80 erzeugt, wenn sie erfolgreich einen Satz von Fehlergleichungen löst. Die Fehlerkorrekturlogik 80 gibt das Fehlermuster e und den Fehlerort l an den Fehlererfassungsprozessor 82 auf der Leitung 108 bzw. 110 aus. Gleichzeitig gibt die Fehlerkorrekturlogik einen Startimpuls auf der Leitung 112 aus, welcher den Betrieb des Fehlererfassungsprozessors einleitet, so daß die Zustandsmaschine, die von der Fehlererfassungsprozessorsteuerung 100 gesteuert wird, mit dem Durchlauf durch die Fehlererfassungsverarbeitungsschritte beginnt.The correction circuit 104 calculates the value e · x · mod P (x), and outputs the residual correction. The register 106 for the remainder R stores the error check remainder, which is initially equal to CRC 0 , and in subsequent iterations the corrected residual value R i . The error pattern e (eight bits) and the error location l are given by the error correction logic 80 generated when it successfully solves a set of error equations. The error correction logic 80 gives the error pattern e and the error location l to the error detection processor 82 on the line 108 respectively. 110 out. At the same time, the error correction logic gives a start pulse on the line 112 which initiates the operation of the error detection processor so that the state machine used by the error detection processor controller 100 is started, starts to run through the error detection processing steps.

Die andere Eingangsgröße für den Fehlererfassungsprozessor 82 ist der ursprüngliche CRC0-Wert, welcher von der CRC-Generatorschaltung 78 der Steuerschaltung von 6 berechnet wird. Dieser ursprüngliche CRC0-Wert wird typischerweise dem Fehlererfassungsprozessor von dem CRC-Generator zugeführt, bevor mit der Fehlerkorrekturverarbeitung begonnen wird, oder aber gleichzeitig, und wird in dem R-Register 106 gespeichert. Der Wert des ursprünglichen Fehlerprüfrestes CRC0 wird überprüft, um festzustellen, ob er Null ist. Ist der Anfangswert gleich Null, so führen bevorzugte Ausführungsformen der vorliegenden Erfindung keine weiteren Fehlerkorrekturoperationen durch. Falls die ursprüngliche EDC-Operation des CRC-Generators anzeigt, daß ein Fehler oder mehrere Fehler in den eingelesenen Daten vorhanden sind, bleibt der CRC0-Wert in dem R-Register 10, bis die Fehlerkorrekturlogik die Operation des Fehlererfassungsprozessors 82 einleitet. Nach Einleitung durch den Startimpuls wandelt der Fehlerortwandler 102 den Fehlerort l in die Zahl λ von zwölf Bits um, die dann der Korrekturberechnungsschaltung 104 zugeführt wird. Der Korrekturberechnungsschaltung wird auch das Fehlermuster e zugeführt, und aus diesen Daten berechnet die Korrekturberechnungsschaltung 104 eine Korrektur für den ursprünglichen Restwert. XOR-Gates 114 summieren den Fehlerprüfrest von zweiunddreißig Bits mit dem Korrekturwert, der dann in dem R-Register gespeichert wird. Nach Erzeugung eines korrigierten Restes wird der Wert des Restes beispielsweise durch eine NOR-Operation geprüft, die bei sämtlichen Bits des Restwortes durchgeführt wird. Ist der Rest gleich Null, dann wird angenommen, daß alle Fehler korrigiert wurden, und dann können die in dem Pufferspeicher gespeicherten Daten sofort übertragen werden, oder nach Anforderung durch den Host-Computer später übertragen werden. Nachdem die Fehlerkorrekturoperationen erfolgreich die Daten eines Sektors korrigiert haben, wird ein neuer Sektor von der Massenspeichereinheit eingelesen, und beginnt erneut die Fehlerkorrektur- und Fehlererfassungsverarbeitung. Wenn andererseits der korrigierte Rest ungleich Null bleibt, geht die Fehlerkorrekturverarbeitung weiter. Wurden sämtlichen Fehlerkorrekturvektoren einmal bearbeitet, so ist es möglich, die Fehlerkorrekturverarbeitung dadurch fortzusetzen, daß die Dekodierung der vorher dekodierten P- und Q-Vektoren wiederholt wird. Bevorzugt werden allerdings die Daten des Sektors erneut von der Diskette eingelesen, und beginnt erneut der gesamte Fehlerkorrektur- und -erfassungsvorgang.The other input to the error detection processor 82 is the original CRC 0 value generated by the CRC generator circuit 78 the control circuit of 6 is calculated. This original CRC 0 value is typically supplied to the error detection processor by the CRC generator before error correction processing is started, or simultaneously, and is entered in the R register 106 saved. The value of the original error check remainder CRC 0 is checked to see if it is zero. If the initial value equals zero, preferred embodiments of the present invention do not perform any further error correction operations. If the original EDC operation of the CRC generator indicates that one or more errors are present in the read data, the CRC 0 value remains in the R register 10 until the error correction logic the operation of the error detection processor 82 initiates. After initiation by the start pulse, the fault location converter converts 102 the error location l in the number λ of twelve bits, which then the correction calculation circuit 104 is supplied. The correction calculation circuit is also supplied with the error pattern e, and from this data, the correction calculation circuit calculates 104 a correction for the original residual value. XOR gates 114 sum the error check remainder of thirty-two bits with the correction value, which is then stored in the R register. After generating a corrected remainder, the value of the remainder is checked, for example, by a NOR operation performed on all bits of the remainder word. If the remainder is equal to zero, then it is assumed that all errors have been corrected, and then the data stored in the buffer memory can be transferred immediately, or transmitted later as requested by the host computer. After the error correction operations have successfully corrected the data of one sector, a new sector is read from the mass storage unit, and the error correction and error detection processing starts again. On the other hand, if the corrected remainder remains nonzero, the error correction processing continues. Once all the error correction vectors have been processed, it is possible to continue the error correction processing by repeating the decoding of the previously decoded P and Q vectors. Preferably, however, the data of the sector is read from the disk again, and the entire error correction and detection process starts again.

Der CRC-Generator stellt den Anfangs-CRC-Wert CRC0 dadurch fest, daß er das EDC-Codewort eines Sektors durch P(x) teilt, bevor die Fehlerkorrekturoperationen beginnen. Hat man einen CD-ROM-Sektor der Betriebsart 1, dessen Daten Bi sind, wobei B = 0 bis 2351 ist, so erhält man (B0,0x16543 + B0,1x16542 + ... + B2067,6x + B2067,7) ÷ P(x) = Q0(x) + CRC0(x),wobei P(x) das Prüfpolynom ist, und Q0(x) der Quotient. Die Fehlerkorrekturlogik löst nach einem Fehlermuster e und einem Ort l des fehlerhaften Bytes auf, und korrigiert dann das Codewort. Es ergibt sich folgendes korrigiertes EDC-Codewort B0,0x16543 .... + (Bl,0x7 + Bl,1x6 + Bl,2x5 + Bl,3x4 + Bl,4x3 + Bl,5x2 + Bl,6x + Bl,7) x8(2067·l) + ... + B2067,7 + (e0x7 + e1x6 + e2x5 + e3x4 + e4x3 + e5x2 + e6x + e7) x8(2067–l).wobei ei mit i = 7(MSB) bis 0(LSB) die Bits des Fehlermusters e sind. Teilt man das voranstehend angegebene EDC-Codewort durch P(x), so erhält man folgenden Rest R(x) = CRC0(x) + r(x)wobei r(x) = (e0x7 + e1x6 + e2x5 + e3x4 + e4x3 + e5x2 + e6x + e7) x8(2067–l)modulo P(x).The CRC generator determines the initial CRC value CRC 0 by dividing the EDC codeword of a sector by P (x) before the error correction operations begin. If one has a mode 1 CD-ROM sector whose data is B i , where B = 0 to 2351, one obtains (B 0.0 x 16543 + B 0.1 x 16542 + ... + B 2,067.6 x + B 2,067.7 ) ÷ P (x) = Q 0 (x) + CRC 0 (X) where P (x) is the check polynomial, and Q 0 (x) is the quotient. The error correction logic resolves after an error pattern e and a location l of the erroneous byte, and then corrects the code word. The result is the following corrected EDC codeword B 0.0 x 16543 .... + (B l, 0 x 7 + B l, 1 x 6 + B l, 2 x 5 + B l, 3 x 4 + B l, 4 x 3 + B l, 5 x 2 + B l, 6 x + B l, 7 x 8 (2067 · l) + ... + B 2,067.7 + (e 0 x 7 + e 1 x 6 + e 2 x 5 + e 3 x 4 + e 4 x 3 + e 5 x 2 + e 6 x + e 7 x 8 (2067-L) , where e i with i = 7 (MSB) to 0 (LSB) are the bits of the error pattern e. Dividing the above-mentioned EDC codeword by P (x) gives the following remainder R (x) = CRC 0 (x) + r (x) in which r (x) = (e 0 x 7 + e 1 x 6 + e 2 x 5 + e 3 x 4 + e 4 x 3 + e 5 x 2 + e 6 x + e 7 x 8 (2067-L) modulo P (x) ,

Die in 7 gezeigte Korrekturberechnungsschaltung 104 führt die voranstehend angegebene Berechnung von r(x) durch. Da mehr als ein Fehler während des Fehlerkorrekturvorgangs korrigiert werden kann, kann diese Berechnung so häufig durchgeführt werden, wie Fehler von der Fehlerkorrekturlogik 80 korrigiert werden. Abgesehen von der allerersten Korrektur des Restes, die auf den ursprünglichen CRC0-Wert wirkt, wirken alle Fehlererfassungsprozessoriterationen auf ein R(x), welches bestimmt ist durch R(x)(neuer Wert) = R(x)(alter Wert) + r(x). In the 7 shown correction calculation circuit 104 performs the above-mentioned Be calculation of r (x) by. Since more than one error can be corrected during the error correction process, this calculation can be performed as often as errors from the error correction logic 80 Getting corrected. Apart from the very first correction of the remainder acting on the original CRC 0 value, all error detection processor iterations act on an R (x) which is determined by R (x) (new value) = R (x) (old value ) + r (x).

Es wird darauf hingewiesen, daß die voranstehend angegebenen Gleichungen bei Sektoren einer CD-ROM mit einer XA-Betriebsart 2 und der Form 1 mit geringfügigen Modifikationen eingesetzt werden können. Der Fehlererfassungsprozessor 82 stellt daher dadurch Fehler fest, daß er neue R-Werte entsprechend der Formel berechnet. R(x)neu = R(x)alt + {(e·x8(L–l)moduloP(x)},wobei e das Fehlermuster ist, l der Fehlerort, und L = 2067 für CD-ROM-Sektoren der Betriebsart 1, oder gleich 2075 für Sektoren einer CD-ROM mit einer XA-Betriebsart 2 der Form 1.It should be noted that the above equations can be applied to sectors of a CD-ROM having an XA mode 2 and the form 1 having minor modifications. The error detection processor 82 therefore detects errors by calculating new R values according to the formula. R (x) New = R (x) old + {(e · x 8 (L-l) modulo p (x)}, where e is the error pattern, 1 is the error location, and L = 2067 for CD-ROM sectors of mode 1, or 2075 for sectors of a CD-ROM with an XA mode 2 of form 1.

Da l eine Zahl mit 12 Bits ist, ist eine direkte Berechnung von e·x8(L–l)moduloP(x) häufig unerwünscht, da zu große Hardware-Anforderungen erforderlich sind, und daher eine zu große Chipfläche. Es ist daher vorzuziehen, die Berechnung in eine Anzahl kleinerer Multiplikationsoperationen aufzuteilen. Die Berechnung des Restes kann daher folgendermaßen umgeschrieben werden: R(x)neu = R(x)alt + {(e·xmoduloP(x)}, wobei λ = (L–l) ist. Die Zahl λ von 12 Bits kann dann in drei Teile von vier Bits zerlegt werden, also λ = λ8·28 + λ4·24 + λ0, wie in 8 gezeigt. Diese Transformation wandelt die Fehlermusterberechnung folgendermaßen um:

Figure 00390001
Since l is a 12-bit number, direct calculation of e x x 8 (L-l) modulo P (x) is often undesirable because too large hardware requirements are required, and therefore too large a chip area. It is therefore preferable to divide the calculation into a number of smaller multiplication operations. The calculation of the remainder can therefore be rewritten as follows: R (x) New = R (x) old + {(e · x modulo p (x)}, where λ = (L-1). The number λ of 12 bits can then be decomposed into three parts of four bits, ie λ = λ 8 · 2 8 + λ 4 · 2 4 + λ 0 , as in FIG 8th shown. This transformation converts the error pattern calculation as follows:
Figure 00390001

Daher ergibt sichTherefore surrendered

Figure 00390002
Figure 00390002

Diese Gleichung kann unter Verwendung folgender Regel erweitert werden (A × B)modulo N = {(A modulo N) × B}modulo Nfür eine vollständige Produktdarstellung der Restkorrekturberechnung. Die Restkorrekturberechnung e·x modulo P(x) kann dadurch berechnet werden, daß der Operator x2048modulo P(x) (Multiplikation mit x2048, dann durch P(x) teilen, um den Rest zu erhalten) λ8 mal eingesetzt wird, der Operator (x128moduloP(x)) λ4-mal, und der Operator (x8modulo P(x)) λ0-mal. Bei einer besonders bevorzugten Ausführungsform eines Fehlererfassungsprozessors gemäß der vorliegenden Erfindung, die in 9 gezeigt ist, werden die Restkorrekturberechnungen durch einen dreistufigen Polynommultilizierer 104 durchgeführt, der Stufen 150, 152 und 154 aufweist, und einen λ-Zähler 136.This equation can be extended using the following rule (A × B) modulo N = {(A modulo N) × B} modulo N for a complete product presentation of the residual correction calculation. The residual correction computation e x modulo P (x) can be calculated by using the operator x 2048 modulo P (x) (multiply by x 2048 , then divide by P (x) to obtain the remainder) λ 8 times , the operator (x 128 moduloP (x)) λ 4 times, and the operator (x 8 modulo P (x)) λ 0 times. In a particularly preferred embodiment of an error detection processor according to the present invention, which is disclosed in 9 3, the remainder correction calculations are performed by a three-stage polynomial multiplier 104 carried out the stages 150 . 152 and 154 and a λ counter 136 ,

Die Fehlererfassungsschaltung ähnelt in vielerlei Hinsicht der in 7 gezeigten Ausführungsform. Daher werden nicht alle voranstehend bereits geschilderten Elemente erneut beschrieben. Wie bei der Ausführungsform gemäß 7 speichert der Fehlererfassungsprozessor von 9 den aus zweiunddreißig Bit bestehenden CRC0-Anfangsfehlerprüfrest direkt aus dem CRC-Generator 78 (6) als Anfangswert in dem R-Register 106. In diesem Anfangszustand wird der Multiplexer 120 in einem Zustand gehalten, in welchem der Ausgang des CRC-Generators ausgewählt wird. Jedesmal wenn die Fehlerkorrekturlogik 80 einen Fehler ermittelt, und erfolgreich die entsprechenden Fehlergleichungen löst, um ein Fehlermuster e mit acht Bits und einen Fehlerort l mit zwölf Bits zu erzeugen, erzeugt die Fehlerkorrekturlogik einen Startimpuls für die Fehlererfassungsprozessorsteuerung 100. Zu diesem Zeitpunkt stellt die Fehlerkorrekturlogik auch das Fehlermuster e und den Fehlerort l dem Fehlererfassungsprozessor zur Verfügung. Beim Empfang des Startimpulses wird der Fehlermustereingangswert durch den Multiplexer 140 hindurchgeleitet, und in dem Kurzzeitregister 142 für spätere Berechnungen zwischengespeichert.The error detection circuit is similar in many ways to that in FIG 7 shown embodiment. Therefore, not all elements already described above are described again. As in the embodiment according to 7 the error detection processor saves from 9 the thirty-two bit CRC 0 initial error check remainder directly from the CRC generator 78 ( 6 ) as the initial value in the R register 106 , In this initial state becomes the multiplexer 120 held in a state in which the output of the CRC generator is selected. Every time the error correction logic 80 determines an error, and successfully solves the corresponding error equations to produce an eight-bit error pattern e and a twelve-bit error location, the error correction logic generates a start pulse for the error detection processor control 100 , At this time, the error correction logic also provides the error pattern e and the error location l to the error detection processor. Upon receipt of the start pulse, the error input input value is passed through the multiplexer 140 passed through, and in the short-term register 142 cached for later calculations.

Ebenfalls beim Empfang des Startimpulses wandeln die Abschnitte des Fehlererfassungsprozessors von 9, welche der ELC-Schaltung 102 der Ausführungsform von 7 entsprechen, die Eingangsfehleradresse 130 mit zwölf Bits in einen Wert λ um, und speichern diesen Wert in dem λ-Register 136. λ wird auf der Grundlage sowohl der Betriebsart des CD-ROM-Sektors, in welchem die Daten gespeichert sind, welche die Länge des EDC-Codeworts festlegt, und des Ortes des fehlerhaften Bytes innerhalb des EDC-Codewortes bestimmt. Die Betriebsart, die von der CD-ROM ausgelesen wird, veranlaßt den Multiplexer 132 zur Ausgabe der einen oder anderen EDC-Codewortlängen (2067, 2075), welche für die unterschiedlichen Betriebsarten geeignet ist, als Binärwort von zwölf Bits. Wenn das Betriebsartbyte als gleich 1 gelesen wird, wird der Sektor als Daten für die CD-ROM-Betriebsart 1 gespeichert, so daß der Multiplexer 132 einen Subtrahenden von 2067 auswählt. Anderenfalls wird ein Subtrahend von 2075 ausgewählt, entsprechend Sektoren der CD-ROM-XA-Betriebsart 2, Form 1. Der Subtrahierer 134 für zwölf Bits subtrahiert die Fehleradresse von zwölf Bits von der EDC-Codeworlänge von zwölf Bits und liefert das Ergebnis an das λ-Register 136. Das λ-Register 136 besteht aus drei Zählern λ8, λ4 und λ0 von vier Bits, die genauer in 8 gezeigt sind, welche drei Signale γ, β und α erzeugen:
α = (λ0 ≠ 0), β = (λ4 ≠ 0), und γ = (λ8 ≠ 0).
a, β und γ steuern folgende Stufen: "·x8modulo P(x)", "(·x128modulo P(x)", bzw. "·x2048modulo P(x)".
Likewise, upon receipt of the start pulse, the portions of the error detection processor of FIG 9 that of the ELC circuit 102 the embodiment of 7 correspond to the input error address 130 with twelve bits in a value λ um, and store this value in the λ register 136 , λ is determined based on both the mode of the CD-ROM sector in which the data defining the length of the EDC codeword and the location of the erroneous byte within the EDC codeword are stored. The mode read from the CD-ROM causes the multiplexer 132 to output one or the other EDC codeword lengths ( 2067 . 2075 ), which is suitable for the different operating modes, as a binary word of twelve bits. When the mode byte is read as equal to 1, the sector is stored as data for the CD-ROM mode 1, so that the multiplexer 132 a subtrahender of 2067 selects. Otherwise, a subtrahend of 2075 selected, corresponding to sectors of the CD-ROM XA mode 2, Form 1. The subtractor 134 for twelve bits, the error address of twelve bits subtracts from the EDC code length of twelve bits and supplies the result to the λ register 136 , The λ register 136 consists of three counters λ 8 , λ 4 and λ 0 of four bits, more precisely in 8th are shown which generate three signals γ, β and α:
α = (λ 0 ≠ 0), β = (λ4 ≠ 0), and γ = (λ 8 ≠ 0).
a, β and γ control the following stages: "x 8 modulo P (x)", "(x 128 modulo P (x)", and "x x 2048 modulo P (x)", respectively.

Der dreistufige Multiplizierer 104 berechnet die Restkorrektur e·xλmodulo P(x) mit dem folgenden Algorithmus, der bei dem Fehlermuster durchgeführt wird, welches vorher in dem Kurzzeitregister gespeichert wurde:

Figure 00420001
The three-stage multiplier 104 calculates the residual correction e · x λ modulo P (x) with the following algorithm, which is performed on the error pattern previously stored in the short-term register:
Figure 00420001

Die Gesamtanzahl an Zyklen, die erforderlich ist, ist das Maximum von (λ8, λ4, λ0), und das Ergebnis der Multiplikation wird über den Multiplexer 140 dem Kurzzeitregister 142 zugeführt. Es wird darauf hingewiesen, daß die Reihenfolge der drei Multiplikations/Modulo-Operationen, die von den drei Stufen 150, 152 und 154 durchgeführt werden, keine Auswirkung auf das endgültige Ergebnis hat, welches von der Korrekturberechnungsschaltung erzeugt und in de Kurzzeitregister 142 gespeichert wird, daß jedoch die dargestellte Anordnung eine optimale Nutzung der Hardware-Eigenschaften gestattet, einschließlich einer Verringerung des Ausmaßes der Chipfläche, die von den Multiplizierer/Modulo-Schaltungen eingenommen wird, und daher eine bevorzugte Zielrichtung der vorliegenden Erfindung wiedergibt. Nach der erforderlichen Anzahl an Zyklen, die von dem Multiplizierer 104 durchgeführt werden, enthält das Kurzzeitregister 142 den Wert der Restkorrektur e·xmodulo P(x). Der Restwert wird dann unter Verwendung der Exklusiv-OR-Gates 114 zu dem Wert (CRC0 oder Ri) addiert, der in dem R-Register 106 gespeichert ist. Der Multiplexer 120 wählt den Ausgang der XOR-Gates 114 für alle Fehlerkorrekturoperationen aus, nachdem der Fehlererfassungsprozessor in Gang gesetzt wurde. Der Zustand des korrigierten Restes R kann aus dem Ausgangssignal R = 0 erhalten werden. Abhängig von dem Wert des korrigierten Restes werden, wie voranstehend unter Bezugnahme auf die Ausführungsform von 7 erläutert, entweder Daten übertragen, oder werden weitere Fehlerkorrekturoperationen durchgeführt.The total number of cycles required is the maximum of (λ 8 , λ 4 , λ 0 ) and the result of the multiplication is via the multiplexer 140 the short-term register 142 fed. It should be noted that the order of the three multiplication / modulo operations by the three stages 150 . 152 and 154 has no effect on the final result generated by the correction calculation circuit and in the short-term register 142 however, that the illustrated arrangement permits optimum utilization of the hardware characteristics, including a reduction in the amount of chip area occupied by the multiplier / modulo circuits, and therefore reflects a preferred aspect of the present invention. After the required number of cycles from the multiplier 104 to be performed contains the short-term register 142 the value of the residual correction e · x modulo P (x). The remainder is then using the Exclusive OR gates 114 to the value (CRC 0 or R i ) stored in the R register 106 is stored. The multiplexer 120 selects the output of the XOR gates 114 for all error correction operations after the error detection processor is started. The state of the corrected remainder R can be obtained from the output signal R = 0. Depending on the value of the corrected remainder, as described above with reference to the embodiment of FIG 7 explains, either transmit data or other error correction operations are performed.

Zwar wurde die vorliegende Erfindung auf der Grundlage bestimmter bevorzugter Ausführungsformen beschrieben, jedoch sollen diese bevorzugten Ausführungsformen nur als Beispiele dienen. Fachleuten auf diesem Gebiet wird deutlich werden, daß verschiedene Abänderungen und Modifikationen der hier beschriebenen Ausführungsform durchgeführt werden können, ohne von der grundlegenden Lehre der vorliegenden Erfindung abzuweichen. Die vorliegende Erfindung soll daher nicht auf die speziellen Ausführungsformen beschränkt sein, die hier beschrieben wurden. Der Umfang der vorliegenden Erfindung ergibt sich aus der Gesamtheit der vorliegenden Anmeldeunterlagen und soll von den beigefügten Patentansprüchen erfaßt sein.Though For example, the present invention has been more particularly preferred Embodiments described however, these preferred embodiments are intended to be exemplary only serve. It will be apparent to those skilled in the art that various amendments and modifications of the embodiment described herein are made can, without departing from the basic teachings of the present invention. The present invention is therefore not intended to the specific embodiments limited be described here. The scope of the present invention results from the entirety of the present application documents and should be attached by the claims detected be.

Claims (9)

Verfahren zum Übertragen von Daten zwischen einem Massenspeichersystem mit optischen Disketten und einem Host-Computer mit folgenden Schritten: Zurückholen einer Datenkette von dem Massenspeichersystem und Speichern der zurückgeholten Datenkette in einem Pufferspeicher; Übermittlung der zurückgeholten Datenkette an eine erste Fehlererfassungsschaltung; Durchführung eines ersten Fehlererfassungsvorgangs bei der zurückgeholten Datenkette, um zu bestimmen, ob Fehler in der zurückgeholten Datenkette vorhanden sind, und um eine Fehlererfassungswerteigenschaft aus der Datenkette in Bezug auf die Fehler zu bestimmen, die in der zurückgeholten Datenkette vorhanden sind; und falls der erste Fehlererfassungsvorgang auf der Grundlage der Fehlererfassungswerteigenschaft feststellt, dass Fehler in der zurückgeholten Datenkette vorhanden sind, Durchführung der folgenden Schritte (a) bis (d); (a) Durchführung eines Fehlerkorrekturvorgangs bei der zurückgeholten Datenkette, Identifizieren eines ersten Fehlers in der zurückgeholten Datenkette, und Bestimmen eines Fehlermusters für den ersten Fehler; (b) Korrigieren des ersten Fehlers in der zurückgeholten Datenkette; und (c) Durchführung eines zweiten Fehlerkorrekturvorgangs, der die Berechnung einer Korrektur der Fehlererfassungswerteigenschaft auf Grundlage des für den ersten Fehler festgestellten Fehlermusters umfasst, (d) um auf der Grundlage der korrigierten Fehlererfassungswerteigenschaft festzustellen, ob Fehler in der korrigierten Datenkette verbleiben, und Wiederholen der Schritte (a) bis (d) wenn Fehler in der korrigierten Datenkette verbleiben, oder Übertragen der zurückgeholten Daten an den Host-Computer, wenn der Fehlererfassungsvorgang auf der Grundlage der Fehlererfassungswerteigenschaft feststellt, dass keine Fehler in der zurückgeholten Datenkette vorhanden sind.Method for transferring data between a mass storage system with optical disks and a host computer with the following steps: Retrieving a data string from the mass storage system and storing the retrieved data string in one Buffer memory; transmission the retrieved Data string to a first error detection circuit; Carrying out a first error detection operation on the retrieved data string to determine if errors in the retrieved Data chain exists and an error detection value property off the data chain in terms of the errors to be determined in the retrieved Data chain are present; and if the first error detection process based on the error detection value property determines that Error in the retrieved Data chain are present, performing the following steps (a) to (d); (a) implementation an error correction process in the retrieved data string, identifying a first error in the retrieved Data string, and determining an error pattern for the first error; (B) Correcting the first error in the retrieved data string; and (C) execution a second error correction process involving the calculation of a Correction of the error detection value property based on the for the first error detected error pattern comprises (d) um based on the corrected error detection value property determine if any errors remain in the corrected data chain, and repeating steps (a) through (d) if errors in the corrected one Data chain remain, or Transfer the retrieved Data to the host computer, when the error detection process based on the error detection value property determines that there are no errors in the retrieved data chain are. Verfahren nach Anspruch 1, gekennzeichnet durch die Schritte, die Fehlererfassungswerteigenschaft zu korrigieren, und die korrigierte Fehlererfassungswerteigenschaft als eine zweite Fehlererfassungswerteigenschaft zu speichern, und dann zu bestimmen, ob die zweite Fehlererfassungswerteigenschaft ungleich Null ist.Method according to claim 1, characterized by Steps to correct the error detection value property, and the corrected error detection value property as a second one Store error detection value property, and then determine whether the second error detection value property is nonzero. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass die zweite Fehlererfassungswerteigenschaft von einer zweiten Fehlererfassungsschaltung bestimmt wird, die von der ersten Fehlererfassungsschaltung verschieden ist.Method according to claim 2, characterized in that that the second error detection value property of a second Error detection circuit is determined, which is different from the first error detection circuit is. Verfahren nach Anspruch 1, 2 oder 3, dadurch gekennzeichnet, dass nach Durchführung des Fehlerkorrekturvorgangs die korrigierte Datenkette an den Host-Computer übertragen wird.Method according to claim 1, 2 or 3, characterized that after execution the error correction process, transmit the corrected data string to the host computer becomes. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass die zurückgeholte Datenkette an die erste Fehlererfassungsschaltung übertragen wird, während die zurückgeholte Datenkette in dem Pufferspeicher gespeichert wird.Method according to one of claims 1 to 4, characterized that the retrieved Transmit data string to the first fault detection circuit will, while the retrieved Data chain is stored in the buffer memory. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass kein Fehlerkorrekturvorgang durchgeführt wird, bis das Speichern der Fehlererfassungswerteigenschaft beendet ist.Method according to one of claims 1 to 5, characterized that no error correction process is performed until saving the error detection value property is finished. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass der erste Fehlererfassungsvorgang das Teilen der zurückgeholten Datenkette durch ein Fehlerprüfpolynom umfasst, und die Fehlererfassungswerteigenschaft ein Rest ist, der durch Teilen der zurückgeholten Datenkette durch das Fehlerprüfpolynom berechnet wird.Method according to one of claims 1 to 6, characterized in that the first Fehlererfas The operation includes dividing the retrieved data string by an error checking polynomial, and the error detection value property is a remainder calculated by dividing the retrieved data string by the error checking polynomial. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass der zweite Fehlerfassungsvorgang auf ein Fehlermuster und einen Fehlerort reagiert, die bei dem Fehlerkorrekturvorgang erhalten werden.Method according to one of claims 1 to 7, characterized that the second error detection process is based on an error pattern and a Error location that is received during the error correction process become. Verfahren nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, dass die zurückgeholte Datenkette durch einen doppelt verschachtelten Reed-Solomon-Code codiert wird.Method according to one of claims 1 to 8, characterized that the retrieved Data string through a double nested Reed-Solomon code is coded.
DE19719691A 1997-04-17 1997-05-09 A method of transferring data between an optical disk mass storage system and a host computer Expired - Fee Related DE19719691B4 (en)

Priority Applications (5)

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

Applications Claiming Priority (5)

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

Publications (2)

Publication Number Publication Date
DE19719691A1 DE19719691A1 (en) 1998-11-12
DE19719691B4 true DE19719691B4 (en) 2005-04-14

Family

ID=27512571

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19719691A Expired - Fee Related DE19719691B4 (en) 1997-04-17 1997-05-09 A method of transferring data between an optical disk mass storage system and a host computer

Country Status (5)

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

Families Citing this family (2)

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

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3841370A1 (en) * 1987-12-08 1989-06-22 Hitachi Ltd Method and device for CRC calculation
US5136592A (en) * 1989-06-28 1992-08-04 Digital Equipment Corporation Error detection and correction system for long burst errors

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3575646D1 (en) * 1984-03-24 1990-03-01 Philips Nv METHOD FOR TRANSMITTING INFORMATION WITH ERROR CORRECTION FOR DATA WORDS, AN ERROR CORRECTION DECODING METHOD FOR SUCH DATA WORDS, AN ARRANGEMENT FOR INFORMATION TRANSFER FOR USE WITH THE METHOD, AND A METHOD FOR USING AN APPARATUS.
NL8601437A (en) * 1986-06-04 1988-01-04 Philips Nv SEQUENTIAL BUFFER DEVICE.
US4782490A (en) * 1987-03-16 1988-11-01 Cythera Corporation Method and a system for multiple error detection and correction
US5241546A (en) * 1991-02-01 1993-08-31 Quantum Corporation On-the-fly error correction with embedded digital controller
JPH05218883A (en) * 1992-02-06 1993-08-27 Kyocera Corp Decoder circuit
US5602857A (en) * 1993-09-21 1997-02-11 Cirrus Logic, Inc. Error correction method and apparatus
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3841370A1 (en) * 1987-12-08 1989-06-22 Hitachi Ltd Method and device for CRC calculation
US5136592A (en) * 1989-06-28 1992-08-04 Digital Equipment Corporation Error detection and correction system for long burst errors

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IBM Journal of Research and Development, Vol. 30, No. 3, Mai 1986, S. 259-269 *

Also Published As

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

Similar Documents

Publication Publication Date Title
DE69626130T2 (en) DATA INTEGRITY CODE AND CROSS-CHECKING CODE WITH LOGICAL BLOCK ADDRESS
DE69630060T2 (en) Process for the transmission of digital data and recording medium
DE69023372T2 (en) Improved reliability of non-volatile data tracks of a storage device.
DE69229753T2 (en) Immediate error correction with embedded digital control device
DE3780517T2 (en) METHODS AND DEVICE FOR SEARCHING A DESTINATION ADDRESS ON A RECORDING MEDIUM.
DE69516882T2 (en) VERSATILE ERROR CORRECTION SYSTEM
DE69319181T2 (en) Deinterleaving circuit for regenerating digital data
US5917914A (en) DVD data descrambler for host interface and MPEG interface
DE3850192T2 (en) Method and device for correcting errors in stored data.
DE3852474T2 (en) Error correction using lookup tables.
DE69903188T2 (en) MULTI-STAGE ERROR DETECTION AND CORRECTION TECHNOLOGY FOR DATA STORAGE RECORDING DEVICE
DE69223694T2 (en) Coding and decoding system for error correction
DE3789418T2 (en) Failure detection of error checking and correction circuit.
DE3855684T2 (en) DEVICE FOR CALCULATING MULTIPLICATIVE INVERSIONS IN DATA ENCODING AND DECODING DEVICES
DE102010049322A1 (en) Instruction set architecture for programmable CRC (cyclic redundancy check) calculations
US20030135798A1 (en) Optical disk device and data randomizing method for optical disk device
JP2003521085A (en) Apparatus and method for reconstructing lost data due to horizontal parity stripes on storage media
DE112011100199B4 (en) Integrated data and header protection for tape drives
DE3787034T2 (en) Digital signal error correction.
DE19733738B4 (en) Error correction device and method of a digital processing system
DE69732076T2 (en) Reed-Solomon decoder with universal processor unit and special circuits
EP0194888B1 (en) Error detection
DE3854526T2 (en) Method and device for coding the sector addresses of a magnetic disk.
US4464757A (en) Method and device for writing and reading sector-organized information into and from a record carrier body
DE69524430T2 (en) CRC / EPC TEST SYSTEM

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20141202