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: oder in
Polynomdarstellung, 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: or in polynomial representation,
Für einen
CD-ROM-XA-Sektor der Betriebsart 2 und der Form 1 ist das EDC-Codewort
folgende Zahl mit 16480 Bits: oder in
Polynomdarstellung, For a Mode 2 CD-ROM XA sector and Form 1, the EDC codeword is the following number with 16480 bits: or in polynomial representation,
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: Dividing c (x) by p (x) yields the quotient q (x) = (10001011001), with the following rest
r (x) = (0001), as indicated below:
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: 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:
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: 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:
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·x8λ)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·x8λ)
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 8λ ) 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 8λ ) 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·x8λ·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 8λ · 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·x8λmoduloP(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: 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 8λ 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:
Daher
ergibt sichTherefore
surrendered
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·x8λ 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 8λ 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: 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:
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·x8λmodulo
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 8λ 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.