DE69325900T2 - Verfahren und schaltung zur fehlerkorrektur - Google Patents
Verfahren und schaltung zur fehlerkorrekturInfo
- Publication number
- DE69325900T2 DE69325900T2 DE69325900T DE69325900T DE69325900T2 DE 69325900 T2 DE69325900 T2 DE 69325900T2 DE 69325900 T DE69325900 T DE 69325900T DE 69325900 T DE69325900 T DE 69325900T DE 69325900 T2 DE69325900 T2 DE 69325900T2
- Authority
- DE
- Germany
- Prior art keywords
- syndrome
- error
- registers
- data
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 15
- 208000011580 syndromic disease Diseases 0.000 claims description 109
- 238000004364 calculation method Methods 0.000 claims description 18
- 238000010586 diagram Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 2
- 101100311330 Schizosaccharomyces pombe (strain 972 / ATCC 24843) uap56 gene Proteins 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 101150018444 sub2 gene Proteins 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B5/00—Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
- G11B5/02—Recording, reproducing, or erasing methods; Read, write or erase circuits therefor
- G11B5/09—Digital recording
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Description
- Die Erfindung betrifft ein Verfahren und eine Schaltung zur Fehlerkorrektur, insbesondere ein Verfahren und eine Schaltung für die Fehlerkorrektur in digitalen Datenverarbeitungsvorrichtungen, wie z. B. in Wiedergabegeräten für Compact Discs (CD) und in Wiedergabegeräten für digitale Tonbänder (DAT) oder ähnlichen Geräten.
- Der Fehlerkorrekturcode für die CD wird durch das Verschachteln von zweistufigen Reed- Solomon-Codes erzeugt und als CIRC (Cross Interleaved Reed-Solomon-Code) bezeichnet. Die in dem CIRC benutzten zweistufigen Reed-Solomon-Codes werden als C1 bzw. C2 bezeichnet.
- Wenn ein Fehler z. B. durch den C1-Code korrigiert wird, wird die Fehlerkorrektur an von 32- Byte-Daten-Einheiten durchgeführt, die 28 Byte Daten umfassen, denen 4-Byte-Paritätsdaten hinzugefügt sind. Die Daten diesen 32-Byte-Dateneinheiten werden mit x&sub0; bis x&sub3;&sub1; bezeichnet.
- Die 4-Byte-Paritätsdaten sind so gewählt, daß alle vier Gleichungen in Gleichung (1) jeweils "0" ergeben:
- (1) x&sub0; + x&sub1; + ... + xi + ... x&sub3;&sub1; = 0
- (1) x&sub0; + x&sub1;α + ... + xiαi + ... x&sub3;&sub1;α³¹ = 0
- (1) x&sub0; + x&sub1;α² + ... + xiα2i + ... x³¹α&sup6;² = 0
- (1) x&sub0; + x&sub1;α³ + ... + xiα3i + ... x&sub3;&sub1;α&sup9;³ = 0
- Die so erzeugten Daten werden auf der Platte aufgezeichnet. Wenn die aufgezeichneten Daten reproduziert werden, enthalten sie aus verschiedenen Gründen Fehler.
- Die Daten (Daten, die Fehler enthalten) werden von einer Fehlerkorrekturschaltung aufgenommen, nachdem sie von der Platte ausgelesen wurden. Sie werden dann mit x&sub0;' bis x&sub3;&sub1;' bezeichnet, um sie von den auf der Platte aufgezeichneten Daten unterscheiden zu können.
- Wenn in der Praxis eine Fehlerkorrektur durchgeführt wird, werden die Daten empfangen. Dann werden auf der Basis der folgenden Gleichung (2) Syndrome S0 bis S3 berechnet:
- (2) S0 = x&sub0;' + x&sub1;' + ··· + xi' + ··· x&sub3;&sub1;'
- (2) S1 = x&sub0;' + x&sub1;'α + ... + xi'αi + ... x&sub3;&sub1;'α³¹
- (2) S2 = x&sub0;' + x&sub1;'α² + ... + xi'α2i + ... x&sub3;&sub1;'α&sup6;²
- (2) S3 = x&sub0;' + x&sub1;'α³ + ... + xi'α3i + ... x&sub3;&sub1;'α&sup9;³
- Das Galois-Feld-Theorem hat bewiesen, daß ein endliches Feld mit 2&sup8; Elementen existiert. Dieses endliche Feld wird als GF(2&sup8;) bezeichnet.
- Die bei der CD benutzten Codes sind durch das in der folgenden Gleichung (3) angegebene Generatorpolynom definiert:
- (3) P(x) = x&sup8; + x&sup4; + x³ + x² + 1
- Der Wert α ist eine Wurzel der Gleichung, wenn P(x) = 0 gesetzt wird.
- Die Untersuchung von Gleichung (2) zeigt, daß S0 = S1 = S2 = S3 = 0 ist (die Paritätsdaten werden zu diesem Zweck addiert), wenn die empfangenen Daten keinen Fehler aufweisen. Wenn umgekehrt eines der Syndrome nicht gleich "0" ist, sollte es möglich sein, den Datenfehler zu detektieren.
- Auf der Basis von Gleichung (2) könnte das Syndrom zwar vor der Fehlerkorrektur berechnet werden. Wenn die Syndrome jedoch berechnet würden, wie dies oben beschrieben ist, würde die Zahl der Berechnungen ansteigen.
- Deshalb wird die Gleichung (2) in die folgende Gleichung (4) umgewandelt:
- (4) S0 = x&sub0;' + x&sub1;' + ··· +
- (4) S1 = x&sub0;' + α(x&sub1;' + α(x&sub2;'. + ... + α(x&sub3;&sub0;' + α(x&sub3;&sub1;')) ...))
- (4) S2 = x&sub0;' + α²(x&sub1;' + α²(x&sub2;'. + ... + α²(x&sub3;&sub0;' + α(x&sub3;&sub1;')) ...))
- (4) S3 = x&sub0;' + α³(x&sub1;' + α³(x&sub2;'. + ... + α³(x&sub3;&sub0;'. + ... + α³(x&sub3;&sub0;' + α(x&sub3;&sub1;')) ...))
- Das Syndrom S1 kann z. B. nach dem in Fig. 3 dargestellten Algorithmus berechnet werden. Die anderen Syndrome S0, S2, S3 können in ähnlicher Weise berechnet werden, indem eine vorbestimmte Potenz von α variiert wird.
- Diese Berechnung kann von einer Schaltung ausgeführt werden, die aus einem Addierer 41 besteht, dessen einem Eingang die empfangenen Daten zugeführt werden, ferner einem Register 42 zum Speichern der addierten Daten aus dem Addierer 41 und einer Potenz-α- Multiplizierschaltung 43, die die in dem Register 42 gespeicherten Daten mit der Potenz von α multipliziert und die multiplizierten Daten dem anderen Eingang des Addierers 41 zuführt, wie dies in Fig. 4 dargestellt ist.
- In Fig. 4 werden die empfangenen Daten unter der Bedingung, daß das Register 42 zurückgesetzt ist, der Schaltung, beginnend mit den Daten x&sub3;&sub1;', in sequentieller Reihenfolge zugeführt. Der Wert, den das Register 42 erzeugt, wenn die Daten x&sub0;' eingegeben werden, wird dann der Wert des Syndroms S1.
- Da in der Praxis die Syndrome S0, S2, S3 benötigt werden, werden die Syndrome von vier Registern 42&sub0; bis 42&sub3; berechnet, wie dies in Fig. 5 dargestellt ist.
- Die Potenz-α-Multiplizierschaltung 43 und der Addierer 41 können durch die Kombination von Exklusiv-ODER-Gliedern (EX-OR-Gliedern) auf der Basis der Eigenschaften des Galois- Felds leicht realisiert werden, wie dies in Fig. 6 und 7 dargestellt ist.
- Es ist wichtig, vor der Fehlerkorrektur einen Fehlerbetrag zu detektieren. In dem bei der CD benutzten Code können Fehler bis zu einem 2-Byte-Fehler korrigiert werden.
- Bisher wurde die Berechnung zur Bestimmung der Fehlergröße (0-Byte, 1-Byte und 2-Byte oder größer) durchgeführt, nachdem die Berechnung der Syndrome beendet war.
- Wenn die empfangenen Daten xi' fehlerhaft sind und der Fehlerbetrag die Größe ei' hat, müssen die durch die Gleichung (5) ausgedrückten Syndrome berechnet werden, was aus der Struktur der Paritätsdaten leicht verständlich ist.
- (5) S0 = ei
- (5) S1 = eiαi
- (5) S2 = eiα2i
- (5) S3 = eiα3i
- Aus den so berechneten Syndromen werden der Fehlerbetrag ei und der Ort i der empfangenen fehlerhaften Daten berechnet.
- Da die vier Gleichungen von Gleichung (5) zwei Unbekannte enthalten, können sie z. B. auf der Basis der folgenden Gleichung (6) leicht gelöst werden.
- (6) αi = S1/S0
- (6) ei = S0
- Wenn die empfangenen Daten jedoch einen 2-Byte-Fehler oder einen größeren Fehler enthalten, werden sie falsch korrigiert. Deshalb sollten eiα2i und eiα3i berechnet werden, indem man die aus Gleichung (5) gewonnenen Werte für αi und ei benutzt. Es muß dann festgestellt werden, ob die berechneten Resultate mit den Syndromen S2, S3 von Gleichung (5) vereinbar sind.
- Wie oben beschrieben wurde, sollte die herkömmliche Fehlerkorrekturschaltung, die auf dem oben erwähnten Algorithmus basiert, wenigstens eine Division und zwei Multiplikationen ausführen, wenn ein 1-Byte-Fehler korrigiert wird.
- Diese Berechnungen sind diejenigen, die an dem Galois-Feld ausgeführt werden. Da es üblich ist, daß die zu berechnende Zahl in Form der Potenz von α modifiziert wird, wenn die Multiplikation oder die Division an dem Galois-Feld ausgeführt wird, muß man ein ROM benutzen, in dem eine Tabelle von Potenzen und eine Tabelle von Logarithmen für diese Modifizierung gespeichert sind. Darüber hinaus wird die periphere Schaltung in ihrer Anordnung komplex, und der Schaltung wird unvermeidlich umfangreicher.
- Im Hinblick auf dieses Problem ist es ein Ziel der vorliegenden Erfindung, ein Verfahren und eine Schaltung zur Fehlerkorrektur anzugeben, die es ermöglichen, die Fehlerdetektierung und die Fehlerkorrektur mit einer Schaltung von extrem kleinem Schaltungsumfang auszuführen.
- Die japanische Patentanmeldung JP-A-4029414, von der eine englischsprachige Zusammenfassung in DATABASE WPI Week 92/11, Derwent Publications Ltd. London, GB; AN 92- 0856655, JP-A-4029414, NAT. SCI. COUNCIL 'Decoding Cyclic Codes' erschienen ist, beschreibt ein Fehlerkorrekturverfahren nach dem Oberbegriff von Anspruch 1 und eine Fehlerkorrekturschaltung nach dem Oberbegriff von Anspruch 2.
- Nach einem ersten Aspekt der Erfindung ist ein Fehlerkorrekturverfahren vorgesehen mit den Verfahrensschritten
- Berechnen von n Syndromen aus empfangenen Daten, wobei n eine positive ganze Zahl ist, die durch die Zahl der in den empfangenen Daten enthaltenen
- Paritätswörter bestimmt wird, und
- Speichern eines einzelnen Syndroms in einem Einzelsyndromregister, wobei dieses einzelne Syndrom einen Fehlerbetrag repräsentiert, falls der Fehler ein Einzelfehler ist, und Speichern der anderen Syndrome in (n-1) Syndromregistern,
- gekennzeichnet durch die folgenden Verfahrensschritte:
- nach Beendigung der Berechnung der Syndrome Laden der in den genannten (n-1) Syndromregistern gespeicherten Werte in (n-1) Datenregister und Laden des in dem Einzelsyndromregister gespeicherten Werts in alle der genannten (n-1) Syndromregister, Multiplizieren der Inhalte jedes der (n-1) Syndromregister mit einer Potenz von α, so daß der Inhalt des i-ten Syndromregisters mit αi multipliziert wird, wobei i eine ganze Zahl von 1 bis (n-1) und α eine Wurzel eines Generatorpolynoms in einem Galoisfeld ist,
- Wiederholen des Multiplikationsschritts, bis festgestellt wird, daß der in jedem der (n-1) Syndromregister gespeicherte Wert gleich dem in den entsprechenden (n-1) Datenregistern gespeicherten Wert ist,
- Inkrementieren eines Zählstands jedesmal, wenn der Multiplikationsschritt durchgeführt wird, wobei der Fehler unkorrigierbar ist, falls der Wert des Zählstands größer ist als die Länge der empfangenen Daten, andernfalls, sobald keine Multiplikationsschritte mehr durchgeführt werden, der Wert des Zählstands gleich dem Ort eines einzelnen Fehlers in den empfangenen Daten und der Wert in dem Einzelsyndromregister gleich dem Fehlerbetrag ist und
- Durchführen einer Fehlerkorrektur auf der Basis des genannten Fehlerorts und des genannten Fehlerbetrags.
- Nach einem zweiten Aspekt der Erfindung ist eine Fehlerkorrekturschaltung vorgesehen mit
- einer Einrichtung zum Berechnen von n Syndromen aus empfangenen Daten, wobei n eine positive ganze Zahl ist, die durch die Zahl der in den empfangenen Daten enthaltenen Paritätswörter bestimmt wird, und zum Speichern eines einzelnen Syndroms in einem Einzelsyndromregister, wobei dieses einzelne Syndrom einen Fehlerbetrag repräsentiert, falls der Fehler ein Einzelfehler ist, und Speichern der anderen Syndrome (n-1) Syndromregistern,
- gekennzeichnet durch Einrichtungen zur Implementierung der folgenden Verfahrensschritte:
- nach Beendigung der Berechnung der Syndrome Laden der in den genannten (n-1) Syndromregistern gespeicherten Werte in (n-1) Datenregister und Laden des in dem Einzelsyndromregister gespeicherten Werts in alle der genannten (n-1) Syndromregister,
- Multiplizieren der Inhalte jedes der (n-1) Syndromregister mit einer Potenz von α, so daß der Inhalt des i-ten Syndromregisters mit αi multipliziert wird, wobei i eine ganze Zahl von 1 bis (n-1) und α eine Wurzel eines Generatorpolynoms in einem Galoisfeld ist,
- Wiederholen des Multiplikationsschritts, bis festgestellt wird, daß der in jedem der (n-1) Syndromregister gespeicherte Wert gleich dem in den entsprechenden (n-1) Datenregistern gespeicherten Wert ist,
- Inkrementieren eines Zählstands jedesmal, wenn der Multiplikationsschritt durchgeführt wird, wobei der Fehler unkorrigierbar ist, falls der Wert des Zählstands größer ist als die Länge der empfangenen Daten, andernfalls, sobald keine Multiplikationsschritte mehr durchgeführt werden, der Wert des Zählstands gleich dem Ort eines einzelnen Fehlers in den empfangenen Daten und der Wert in dem Einzelsyndromregister gleich dem Fehlerbetrag ist und
- Durchführen einer Fehlerkorrektur auf der Basis des genannten Fehlerorts und des genannten Fehlerbetrags.
- Im folgenden wird die Erfindung an einem Ausführungsbeispiel näher erläutert, wobei auf die anliegenden Zeichnungen Bezug genommen wird.
- Fig. 1 zeigt ein Blockschaltbild einer Fehlerkorrekturschaltung nach einem Ausführungsbeispiel der Erfindung,
- Fig. 2 zeigt ein Flußdiagramm eines Fehlerkorrekturalgorithmus, der in der Schaltung nach dem Ausführungsbeispiel der Erfindung benutzt wird,
- Fig. 3 zeigt ein Flußdiagramm eines Algorithmus zur Berechnung des Syndroms S1,
- Fig. 4 zeigt das Blockschaltbild eines Beispiels für die Rechenschaltung zur Berechnung des Syndroms S1,
- Fig. 5 zeigt ein Blockschaltbild eines Beispiels der Rechenschaltung zur Berechnung der Syndrome S0 bis S4,
- Fig. 6 zeigt ein Blockschaltbild eines Beispiels der Potenz-α-Multiplizierschaltung,
- Fig. 7 zeigt ein Blockschaltbild eines Beispiels für einen Addierer, der Additionen an dem Galois-Feld ausführt.
- Anhand der Zeichnungen wird ein Ausführungsbeispiel der Erfindung beschrieben.
- Fig. 1 zeigt das Blockschaltbild einer Fehlerkorrekturschaltung nach einem Ausführungsbeispiel der Erfindung.
- In Fig. 1 werden die empfangenen Daten RD jeweils einem Eingang von vier Addierern 11 bis 14 zugeführt. Die addierten Daten aus diesen Addierern 11 bis 14 werden in vier Syndromregistern [S0 bis S3] 15 bis 18 gespeichert, die zur Berechnung der Syndrome S1 bis S3 dienen. Die Syndromregister 15 bis 18 arbeiten synchron mit einem Takt CK, der ihnen zugeführt wird.
- Die in den Syndromregistern [S1 bis S3] 16 bis 18 der vier Syndromregister 15 bis 18 gespeicherten Daten werden über eine Potenz-α-Modusumschalter 19, eine Potenz-α²-Multiplizierschaltung 20 bzw. eine Potenz-α³-Multiplizierschaltung 21 weiteren Eingängen der Addierer 12, 13, 14 zugeführt und außerdem in drei Datenregistern [R1 bis R3] 22 bis 24 gespeichert.
- Die in den Datenregistern [R1 bis R3] 22 bis 24 gespeicherten Daten werden jeweils einem der Eingänge von drei Logikgattern 25 bis 27 zugeführt.
- Den anderen Eingängen dieser Logikgatter 25 bis 27 werden die in den Syndromregistern [S1 bis S3] 16 bis 18 gespeicherten Daten zugeführt. Sie gehen auf den logischen Pegel "1", wenn die logischen Werte der entsprechenden Bits der betreffenden Sätze von jeweils zwei Registern alle miteinander übereinstimmen. Die Ausgangssignale der Logikgatter 25 bis 27 werden den Eingängen eines UND-Glieds 28 mit drei Eingängen zugeführt.
- Das UND-Glied 28 geht auf den logischen Pegel "1", wenn alle Eingangspegel den logischen Wert "1" haben, d. h. wenn die Ausgangssignale der Logikgatter 25 bis 27 alle übereinstimmen.
- Ein Zähler 29 zählt den gleichen Takt CK, der auch den vier Syndromregistern 15 bis 18 zugeführt wird. Der Zähler 29 wird unter dem Steuereinfluß einer CPU 30 zurückgesetzt und deaktiviert.
- Wenn aus den so gewonnenen Syndromen S0 bis S3 die Nummer (der Ort) i der in den empfangenen Daten enthaltenen fehlerhaften Daten und der Fehlerbetrag ei der empfangenen Daten berechnet werden, wird der Zähler 29 auf "0" zurückgesetzt und deaktiviert, wenn das UND-Glied 28 detektiert, daß die Pegel der Logikgatter alle übereinstimmen.
- Bei Beendigung der Fehlerberechnung entspricht der Wert, der in dem tatsächlichen Endzeitpunkt in dem S0-Register 15 gespeichert ist, der Fehlerbetrag ej, und der Zählwert j des Zählers 29 entspricht der Nummer (der Ort) i der fehlerhaften Daten. Die empfangenen Daten des Fehlerorts i, die in einem nicht dargestellten Pufferspeicher gespeichert sind, werden dann der in Fig. 1 dargestellten Empfangsdaten-Eingangseinheit zugestellt und dadurch zu den in dem S0-Register 15 gespeicherten Daten addiert.
- Wenn bei Beendigung der Berechnung ein solcher Prozeß durchgeführt wird, bleiben in dem S0-Register 15 fehlerkorrigierte Daten zurück. Es werden dann fehlerkorrigierte Daten DT ausgegeben, und die Fehlerkorrektur ist beendet.
- Anhand des Flußdiagramms von Fig. 2 wird der Algorithmus beschrieben, der in der die Erfindung verkörpernden Schaltung benutzt wird.
- Zunächst berechnen die Addierer 11 bis 14, die Syndromregister [S0 bis S3] 15 bis 18, die Potenz-α-Multiplizierschaltung 19, die Potenz-α²-Multiplizierschaltung 20 und die Potenz-α³- Multiplizierschaltung 21 (in dem Schritt S1) Syndrome.
- Es sei angenommen, daß z. B. die i-ten empfangenen Daten fehlerhaft sind und daß der Fehlerbetrag gleich ei ist. Die Gleichung (5) liefert dann S0 = ei, S1 = eiai, S2 = eiα2i und S3 = eiα3i.
- Die in den Syndromregistern [S1 bis S3] 16 bis 18 gespeicherten Daten werden dann in den Datenregistern [R1 bis R3] 22 bis 24 gespeichert, und die in dem Syndromregister [S0] 15 gespeicherten Daten werden in den Syndromregistern [S1 bis S3] gespeichert (Schritt S2).
- Deshalb sind die Werte in den Syndromregistern [S0 bis S3] 15 bis 18: S0 = S1 = S2 = S3 = ei, R1 = eiαi, R2 = eiα²¹, R3 = eiα3i.
- Anschließend wird der Zähler 29 (in dem Schritt S3) auf "0" zurückgesetzt, und es wird (in dem Schritt S4) festgestellt, ob in den Syndromregistern 16 bis 18 und den Datenregistern 22 bis 24 S1 = R1, S2 = R2, S3 = R3 erfüllt ist.
- Wenn die 0-ten empfangenen Daten (x&sub0;') fehlerhaft sind, sind alle oben genannten Bedingungen in den S-Registern und den R-Registern erfüllt.
- Wenn die empfangenen Daten nicht fehlerhaft sind, sind die oben erwähnten Bedingungen ebenfalls erfüllt. Da in diesem Fall S0 = 0 ist, kann entschieden werden, ob die empfangenen Daten fehlerhaft sind. Dies wird weiter unten beschrieben.
- Wenn in dem Schritt S4 festgestellt wird, daß die oben genannten Bedingungen nicht erfüllt sind, wird (in dem Schritt S6) α·S1 → S1, α²·S2 → S2, α³·S3 → S3 berechnet, solange (in dem Schritt S5) die Bedingung j ≤ 31 erfüllt ist. Dann wird der Zählwert j des Zählers 29 (in dem Schritt S7) um 1 inkrementiert, und der Prozeß kehrt zu dem Schritt S4 zurück.
- Die Berechnungen in dem Schritt S6 können dadurch einfach realisiert werden, indem als empfangene Daten der Wert "0" zugefürht wird.
- Als Ergebnis dieser Berechnung erhält man für die Werte der Syndromregister 16 bis 18: S1 = αei, S2 = α²ei, S3 = α³ei.
- Es wird dann. (in dem Schritt S4) ein weiteres Mal festgestellt, ob die Bedingungen S1 = R1, S2 = R2, S3 = R3 erfüllt sind.
- Falls die ersten Daten (x&sub1;') der empfangenen Daten fehlerhaft sind, sollten diese Bedingungen erfüllt sein. Wenn die Bedingungen nicht erfüllt sind, werden die Schritte S6 und S7 wiederholt.
- Wenn die Berechnung j mal durchgeführt wurde, liefern die Syndromregister 16 bis 18: S1 = αjei, S2 = α2jei, S3 = α3jei. Wenn j mit i (der Zahl der empfangenen fehlerhaften Daten) übereinstimmt, ist S1 = R1, S2 = R2, S3 = R3.
- Diese Berechnung wird einige Male wiederholt. Wenn in dem Schritt S4 festgestellt wird, daß S1 = R1, S2 = R2, S3 = R3 ist, solange die Bedingung S ≠ 0 erfüllt ist (Schritt S8), wird der Zählwert j des Zählers 29 auf die Nummer der fehlerhaften Daten gesetzt, und der Fehlerbetrag wird (in dem Schritt S9) auf den Wert des Syndromregisters [S0] 15 gesetzt.
- Wenn (in dem Schritt S8) S0 = 0 ist, wird (in dem Schritt S10) festgestellt, daß die empfangenen Daten keinen Fehler enthalten.
- Wenn (in dem Schritt S5) festgestellt wird, daß das S-Register und das R-Register nicht miteinander übereinstimmen, obwohl der Zählwert j des Zählers 29 den Wert 31 überschreitet, wird daraus gefolgert, daß die empfangenen Daten einen 2-Byte-Fehler oder einen größeren Fehler enthalten. Die empfangenen Daten werden dann (in dem Schritt S11) als Daten behandelt, die nicht korrigiert werden können.
- Wie im Einzelnen ausgeführt wurde, werden bei dem Ausführungsbeispiel der Erfindung die Syndrome mit Hilfe der Syndromregister S0, S1 bis S(n-1) berechnet. Wenn nach Beendigung der Berechnung der Syndrome in den Syndromregistern der Fehler ein Einzelfehler ist, wird der Wert des Syndromregisters S0 in die Syndromregister S1 bis S(n-1) geladen, und die Werte der Syndromregister S1 bis S(n-1) werden in die Datenregister R1 bis R(n-1) geladen. Die Multiplikationen der Potenzen α, ..., α(n-1) werden unter Benutzung der Syndromregister S1 bis S(n-1) solange wiederholt, bis die Werte der Syndromregister S1 bis S(n-1) und die Werte der Datenregister R1 bis R(n-1) jeweils übereinstimmen. Synchron mit der Multiplikation der Potenzen wird ein Zählvorgang durchgeführt. Der Zählwert, der erreicht ist, wenn festgestellt wird, daß die Werte der Syndromregister und die Werte der Datenregister übereinstimmen, wird auf den Ort der Daten gesetzt, die Fehler enthalten, und der Wert des Syndromregisters S0 wird auf den Fehlerbetrag gesetzt. Dann wird auf der Basis des Orts und des Fehlerbetrags die Fehlerkorrektur durchgeführt. Auf diese Weise ist eine Detektierung und Korrektur des Einzelfehlers mit der Schaltung möglich, die einen extrem kleinen Schaltungsumfang hat und aus den für die Berechnung der Syndrome unerläßlichen n Syndromregistern, (n-1) Datenregistern, einem Zähler und Koinzidenzdetektorschaltungen besteht, die jeweils den Syndromregistern hinzugefügt sind.
- In dem vorangehend beschriebenen Beispiel wird die Erfindung auf ein CD-Wiedergabegerät angewendet, wobei das Signalformat der CD vier Syndrome (S0 bis S3) aufweist. Die vorliegende Erfindung ist jedoch nicht hierauf beschränkt, sondern auf dem gesamten Gebiet der digitalen Datenverarbeitungsgeräte anwendbar. Wenn die Erfindung beispielsweise bei einem DAT-Wiedergabegerät angewendet wird, dessen Signalformat sechs Syndrome aufweist, kann ein Fehler auf ähnliche Weise detektiert und korrigiert werden, wie dies oben beschrieben wurde, indem die Zahl der Syndromregister und der Datenregister entsprechend der Zahl der Syndrome vergrößert wird.
Claims (2)
1. Fehlerkorrekturverfahren mit den Verfahrensschritten:
Berechnen (S1) von n Syndromen aus empfangenen Daten, wobei n eine positive
ganze Zahl ist, die durch die Zahl der in den empfangenen Daten enthaltenen
Paritätswörter bestimmt wird, und
Speichern eines einzelnen Syndroms in einem Einzelsyndromregister, wobei dieses
einzelne Syndrom einen Fehlerbetrag repräsentiert, falls der Fehler ein Einzelfehler ist, und
Speichern der anderen Syndrome in (n-1) Syndromregistern,
gekennzeichnet durch die folgenden Verfahrensschritte:
nach Beendigung der Berechnung der Syndrome Laden (S2) der in den genannten (n-1)
Syndromregistern gespeicherten Werte in (n-1) Datenregister und Laden des in dem
Einzelsyndromregister gespeicherten Werts in alle der genannten (n-1) Syndromregister,
Multiplizieren (S6) der Inhalte jedes der (n-1) Syndromregister mit einer Potenz von α, so
daß der Inhalt des i-ten Syndromregisters mit αi multipliziert wird, wobei i eine ganze Zahl
von 1 bis (n-1) und α eine Wurzel eines Generatorpolynoms in einem Galoisfeld ist,
Wiederholen des Multiplikationsschritts, bis festgestellt wird, daß der in jedem der (n-1)
Syndromregister gespeicherte Wert gleich dem in den entsprechenden (n-1) Datenregistern
gespeicherten Wert ist (S4),
Inkrementieren (S7) eines Zählstands jedesmal, wenn der Multiplikationsschritt
durchgeführt wird, wobei der Fehler unkorrigierbar ist, falls der Wert des Zählstands größer ist als die
Länge der empfangenen Daten (S11), andernfalls, sobald keine Multiplikationsschritte mehr
durchgeführt werden, der Wert des Zählstands gleich dem Ort eines einzelnen Fehlers in den
empfangenen Daten und der Wert in dem Einzelsyndromregister gleich dem Fehlerbetrag ist
(S9) und
Durchführen einer Fehlerkorrektur auf der Basis des genannten Fehlerorts und des
genannten Fehlerbetrags.
2. Fehlerkorrekturschaltung mit
einer Einrichtung (11-21) zum Berechnen von n Syndromen aus empfangenen Daten,
wobei n eine positive ganze Zahl ist, die durch die Zahl der in den empfangenen Daten
enthaltenen Paritätswörter bestimmt wird, und zum Speichern eines einzelnen Syndroms
in einem Einzelsyndromregister (15), wobei dieses einzelne Syndrom einen Fehlerbetrag
repräsentiert, falls der Fehler ein Einzelfehler ist, und Speichern der anderen Syndrome in
(n-1) Syndromregistern (16-18),
gekennzeichnet durch Einrichtungen zur Implementierung der folgenden
Verfahrensschritte:
nach Beendigung der Berechnung der Syndrome Laden der in den genannten (n-1)
Syndromregistern (16-18) gespeicherten Werte in (n-1) Datenregister (22-24) und Laden des in
dem Einzelsyndromregister gespeicherten Werts in alle der genannten (n-1) Syndromregister
(16-18),
Multiplizieren (19-21) der Inhalte jedes der (n-1) Syndromregister (16-18) mit einer
Potenz von α, so daß der Inhalt des i-ten Syndromregisters mit αi multipliziert wird, wobei i eine
ganze Zahl von 1 bis (n-1) und α eine Wurzel eines Generatorpolynoms in einem Galoisfeld
ist,
Wiederholen des Multiplikationsschritts, bis festgestellt wird (25-28), daß der in jedem
der (n-1) Syndromregister (16-18) gespeicherte Wert gleich dem in den entsprechenden (n-1)
Datenregistern (22-24) gespeicherten Wert ist,
Inkrementieren eines Zählstands (29) jedesmal, wenn der Multiplikationsschritt
durchgeführt wird, wobei der Fehler unkorrigierbar ist, falls der Wert des Zählstands größer ist als die
Länge der empfangenen Daten, andernfalls, sobald keine Multiplikationsschritte mehr
durchgeführt werden, der Wert des Zählstands gleich dem Ort eines einzelnen Fehlers in den
empfangenen Daten und der Wert in dem Einzelsyndromregister (15) gleich dem
Fehlerbetrag ist und
Durchführen einer Fehlerkorrektur auf der Basis des genannten Fehlerorts und des
genannten Fehlerbetrags.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35825692A JP3170920B2 (ja) | 1992-12-25 | 1992-12-25 | エラー訂正方法及び訂正回路 |
PCT/JP1993/001854 WO1994015406A1 (en) | 1992-12-25 | 1993-12-22 | Method of and circuit for correcting errors |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69325900D1 DE69325900D1 (de) | 1999-09-09 |
DE69325900T2 true DE69325900T2 (de) | 2000-02-17 |
Family
ID=18458349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69325900T Expired - Lifetime DE69325900T2 (de) | 1992-12-25 | 1993-12-22 | Verfahren und schaltung zur fehlerkorrektur |
Country Status (6)
Country | Link |
---|---|
US (1) | US5541940A (de) |
EP (1) | EP0629052B1 (de) |
JP (1) | JP3170920B2 (de) |
KR (1) | KR100253043B1 (de) |
DE (1) | DE69325900T2 (de) |
WO (1) | WO1994015406A1 (de) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100234400B1 (ko) * | 1997-01-17 | 1999-12-15 | 윤종용 | 디지탈 비디오 디스크 시스템의 에러 정정 장치 및 방법 |
US7395468B2 (en) * | 2004-03-23 | 2008-07-01 | Broadcom Corporation | Methods for debugging scan testing failures of integrated circuits |
US7581150B2 (en) | 2004-09-28 | 2009-08-25 | Broadcom Corporation | Methods and computer program products for debugging clock-related scan testing failures of integrated circuits |
US7500165B2 (en) | 2004-10-06 | 2009-03-03 | Broadcom Corporation | Systems and methods for controlling clock signals during scan testing integrated circuits |
US20060080583A1 (en) * | 2004-10-07 | 2006-04-13 | International Business Machines Corporation | Store scan data in trace arrays for on-board software access |
US7627798B2 (en) * | 2004-10-08 | 2009-12-01 | Kabushiki Kaisha Toshiba | Systems and methods for circuit testing using LBIST |
US7804599B2 (en) * | 2008-07-24 | 2010-09-28 | MGM Instruments, Inc. | Fluid volume verification system |
US10601448B2 (en) * | 2017-06-16 | 2020-03-24 | International Business Machines Corporation | Reduced latency error correction decoding |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4312069A (en) * | 1980-02-07 | 1982-01-19 | Bell Telephone Laboratories, Incorporated | Serial encoding-decoding for cyclic block codes |
CA1196106A (en) * | 1982-04-28 | 1985-10-29 | Tsuneo Furuya | Method and apparatus for error correction |
US4488302A (en) * | 1983-02-11 | 1984-12-11 | At&T Bell Laboratories | Burst error correction using cyclic block codes |
US4555784A (en) * | 1984-03-05 | 1985-11-26 | Ampex Corporation | Parity and syndrome generation for error detection and correction in digital communication systems |
JPS62137924A (ja) * | 1985-12-12 | 1987-06-20 | Nec Home Electronics Ltd | リ−ドソロモン符号・復号方式の誤り位置決定回路 |
KR910005644B1 (ko) * | 1986-09-19 | 1991-08-01 | 가부시키가이샤 도시바 | 디스크재생장치 |
FR2628862B1 (fr) * | 1988-03-17 | 1993-03-12 | Thomson Csf | Multiplieur-additionneur parametrable dans les corps de galois, et son utilisation dans un processeur de traitement de signal numerique |
EP0341862B1 (de) * | 1988-05-12 | 1996-01-10 | Quantum Corporation | Fehlerortungssystem |
US5099484A (en) * | 1989-06-09 | 1992-03-24 | Digital Equipment Corporation | Multiple bit error detection and correction system employing a modified Reed-Solomon code incorporating address parity and catastrophic failure detection |
JP2665268B2 (ja) * | 1990-05-25 | 1997-10-22 | ナショナル サイエンス カウンシル | サイクリックコードのステップ・バイ・ステップ型復号方法及び復号器 |
-
1992
- 1992-12-25 JP JP35825692A patent/JP3170920B2/ja not_active Expired - Lifetime
-
1993
- 1993-12-22 US US08/290,886 patent/US5541940A/en not_active Expired - Lifetime
- 1993-12-22 DE DE69325900T patent/DE69325900T2/de not_active Expired - Lifetime
- 1993-12-22 WO PCT/JP1993/001854 patent/WO1994015406A1/ja active IP Right Grant
- 1993-12-22 KR KR1019930028972A patent/KR100253043B1/ko not_active IP Right Cessation
- 1993-12-22 EP EP94903038A patent/EP0629052B1/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP3170920B2 (ja) | 2001-05-28 |
EP0629052A4 (de) | 1995-11-29 |
EP0629052A1 (de) | 1994-12-14 |
DE69325900D1 (de) | 1999-09-09 |
US5541940A (en) | 1996-07-30 |
WO1994015406A1 (en) | 1994-07-07 |
EP0629052B1 (de) | 1999-08-04 |
KR100253043B1 (ko) | 2000-05-01 |
JPH06197025A (ja) | 1994-07-15 |
KR940015980A (ko) | 1994-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69414631T2 (de) | Schaltung zur Durchführung des Euclidschen Algorithmus bei der Dekodierung Arithmetischer Kodes | |
DE3486408T2 (de) | Verfahren und Vorrichtung zur Dekodierung eines fehlerkorrigierenden Kodes. | |
DE3854939T2 (de) | Bch-fehlerkorrekturkode-dekodierungsverfahren in echtzeitbetrieb | |
DE69834542T2 (de) | Hardwareoptimierter reed-solomon-decoder zur decodierung grosser datenblöcke | |
DE69516882T2 (de) | Vielseitiges fehlerkorrektursystem | |
DE68924944T2 (de) | Fehlerkorrekturschaltung. | |
DE69424877T2 (de) | Reed-solomon-dekoder | |
DE3852474T2 (de) | Nachschlagetabellen verwendende Fehlerkorrektur. | |
DE3787900T2 (de) | Verfahren und Gerät zur Erzeugung von Prüfungs-Byten zur Fehlerdetektion für einen Datenblock. | |
DE3382661T2 (de) | Korrektur von fehlerbuendeln in datengruppen. | |
DE3855101T2 (de) | Anordnung zur sofortigen Fehlerkorrektur | |
DE3750526T2 (de) | Dekodierer. | |
DE3882223T2 (de) | Ausgebreitete Fehlerkorrekturvorrichtung mit Einzel-Paket-Fehlerkorrektur und Doppel-Paket-Fehlerdetektionscoden. | |
DE4241903C2 (de) | Euklidische wechselseitige Divisionsschaltung | |
DE68921855T2 (de) | Korrektur von Burst- und Zufallsfehlern. | |
DE4140018A1 (de) | Verfahren und schaltungsanordnung zum decodieren von rs-codierten datensignalen | |
DE4105860C2 (de) | Schaltungsanordnung zum Erkennen und Korrigieren von Fehlern in Datenworten | |
DE69121733T2 (de) | Technik zum eingebauten Selbsttest für Nur-Lese-Speicher | |
DE69325900T2 (de) | Verfahren und schaltung zur fehlerkorrektur | |
DE69732076T2 (de) | Reed-Solomon Dekodierer mit universeller Prozessoreinheit und speziellen Schaltungen | |
DE3404417A1 (de) | Codierer-pruefschaltungsanordnung | |
DE69524430T2 (de) | Crc/epc prüfsystem | |
DE69032382T2 (de) | Digitale Signalverarbeitungsschaltung | |
DE68925378T2 (de) | Verfahren und Schaltung zur Daten-Fehler-Erkennung | |
DE69517042T2 (de) | Mehrzweckberechnungsschaltung zur fehlerkorrektur |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8320 | Willingness to grant licences declared (paragraph 23) |