DE3855101T2 - Anordnung zur sofortigen Fehlerkorrektur - Google Patents
Anordnung zur sofortigen FehlerkorrekturInfo
- Publication number
- DE3855101T2 DE3855101T2 DE3855101T DE3855101T DE3855101T2 DE 3855101 T2 DE3855101 T2 DE 3855101T2 DE 3855101 T DE3855101 T DE 3855101T DE 3855101 T DE3855101 T DE 3855101T DE 3855101 T2 DE3855101 T2 DE 3855101T2
- Authority
- DE
- Germany
- Prior art keywords
- error correction
- error
- output
- input
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000012937 correction Methods 0.000 title claims description 66
- 208000011580 syndromic disease Diseases 0.000 claims description 25
- 238000000034 method Methods 0.000 claims description 8
- 239000000872 buffer Substances 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 230000004044 response Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 150000001875 compounds Chemical class 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 238000012546 transfer Methods 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
Landscapes
- Physics & Mathematics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (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
- Diese Erfindung bezieht sich auf Vorrichtungen zur sofortigen oder fliegenden Fehlerkorrektur, beispielsweise für magnetische Aufzeichnungsgeräte unter Einschluß von Plattenlaufwerken.
- Eine Vorrichtung zur 'fliegenden' oder sofortigen Fehlerkorrektur wurde aus mindestens zwei Gründen bei magnetischen Hochgeschwindigkeits-Aufzeichnungsgeräten nicht in weitem Umfang verwendet, nämlich: die durch Fehler hervorgerufene Unzuverlässigkeit übersteigt die Code-Korrektur- und/oder Detektionskapazität, und die hohe Latenzzeit, die durch die Kompliziertheit der bei der Fehlerkorrektur erforderlichen mathematischen Verfahren hervorgerufen wird, und/oder die extreme Kompliziertheit der mathematischen Verfahren zur Durchführung der fliegenden Fehlerkorrektur. Diese Probleme vergrößern sich gegenseitig. Eine Vergrößerung der Kapazität des Codes zur Handhabung von Fehlern vergrößert gleichzeitig die Latenzzeit und die Kompliziertheit.
- Jedes Codewort, das üblicherweise einen vollständigen Sektor umfaßt, muß vor dem Lesen und Dekodieren des nächsten Codewortes dekodiert und korrigiert werden. Wenn die Korrektur Zeit erfordert, kann das nächste zu lesende und zu dekodierende Codewort an einem Lese-/Schreibkopf eines Plattenlaufwerkes vorbeilaufen. Dies macht es erforderlich, daß eine Plattenumdrehung gewartet werden muß, damit sich dieses Codewort wieder unter dem Lese-/Schreibkopf befindet.
- Die US-A-4494234 und die US-A-4504948 beschreiben eine fliegende Mehr-Byte-Fehlerkorrektur. Die zur Durchführung dieses Verfahrens verwendete Hardware ist extrem kompliziert und verwendet hunderte, wenn nicht tausende von EXKLUSIV-ODER- ('XOR'-) Verknüpfungsglieder. Die vorliegende Erfindung ist auf die Schaffung einer fliegenden oder sofortigen Fehlerkorrekturvorrichtung geschaffen, deren Konstruktion relativ einfach ist.
- Gemäß der vorliegenden Erfindung wird eine Vorrichtung zur sofortigen oder fliegenden Fehlerkorrektur zur Korrektur von Codeworten geschaffen, die in Mehr-Bit-Symbolen gruppiert sind, wobei jedes Codewort kodierte Daten und Prüfwort-Symbole umfaßt, wobei die Vorrichtung:
- - Einrichtungen zum Empfangen der Codeworte,
- - Einrichtungen zum Anwenden eines Generator-Polynoms auf jedes der Codeworte zur Berechnung von Syndromen und/oder Restwerten und zur Ableitung eines Korrekturwertes und einer Korrekturstelle hieraus, und
- - Einrichtungen zum Auslesen des jeweiligen Codewortes aus den Einrichtungen zum Empfangen, und, wenn ein Fehler vorliegt, zum Korrigieren des Fehlers unter Verwendung des Korrekturwertes und der Korrekturstelle, umfaßt,
- dadurch gekennzeichnet, daß
- - ein Einzelsymbol-Fehlerkorrekturcode zur Erzeugung der Codeworte verwendet wird,
- - erste und zweite aufeinanderfolgende Codeworte Symbol für Symbol miteinander verschachtelt sind,
- - die Einrichtungen zum Anwenden die ersten und zweiten Codeworte gleichzeitig in zwei parallelen Kanälen verarbeiten, wobei jeder Kanal einen Polynom-Dividierer und Einrichtungen zum Ableiten des Korrekturwertes und der Korrekturstelle umfaßt.
- Die Erfindung wird lediglich in Form eines Beispiels in den beigefügten Zeichnungen erläutert, in denen:
- Fig. 1 ein zu Erläuterungszwecken dienendes Block- Schaltbild einer Vorrichtung zur sofortigen oder fliegenden Fehlerkorrektur ist,
- Fig. 2 ein Zeitdiagramm einer verschachtelten Anordnung ist, das die Korrektur eines 6-Bit-Fehlers in der Vorrichtung zur fliegenden oder sofortigen Fehlerkorrektur gemäß der Erfindung zeigt,
- Fig. 3 ein Blockschaltbild eines verschachtelten Decodierers einer fliegenden Fehlerkorrektur-Vorrichtung gemäß der vorliegenden Erfindung ist,
- Fig. 4 ein Blockschaltbild eines programmierten Logikbausteins des verschachtelten Decodierers nach Fig. 3 ist,
- Fig. 5 eine alternative Decodierer-Anordnung der fliegenden Fehlerkorrektur-Vorrichtung gemäß der vorliegenden Erfindung ist, bei der ein Syndrom S&sub0; den Fehlerwert ergibt,
- Fig. 6 eine alternative Decodierer-Anordnung der fliegenden Fehlerkorrektur-Vorrichtung gemäß der vorliegenden Erfindung ist, bei dem ein Syndrom S&sub0; einen Fehlerwert und ein Syndrom S&sub1; in Verwendung mit einer Fehlerstellen-Lagebestimmungseinrichtung die Stelle des Fehlers liefert,
- Fig. 7 eine alternative Decodierer-Anordnung der Vorrichtung zur fliegenden Fehlerkorrektur gemäß der vorliegenden Erfindung ist, bei der ein Syndrom S&sub0; den Fehlerwert liefert und beide Syndrome eine Fehlerstelle in einem Speicher indexieren,
- Fig. 8 eine alternative Decodierer-Anordnung einer Vorrichtung zur fliegenden Fehlerkorrektur gemäß der vorliegenden Erfindung ist, bei der beide Syndrome sowohl Fehlerwerte als auch -stellen in einem Speicher indexieren,
- Fig. 9 eine alternative Ausführungsform eines verschachtelten Decodierers einer Vorrichtung zur fliegenden Fehlerkorrektur gemäß der vorliegenden Erfindung ist,
- Fig. 10 ein Schaltbild einer abgeänderten Ausführungsform eines verschachtelten Codierers-/Decodierers einer Vorrichtung zur fliegenden Fehlerkorrektur gemäß der vorliegenden Erfindung ist, und
- Fig. 11 ein Schaltbild einer abgeänderten verschachtelten Codier-/Decodier- und Korrekturschaltung einer Vorrichtung zur fliegenden Fehlerkorrektur gemäß der vorliegenden Erfindung ist.
- Fig. 1 ist ein Blockschaltbild einer Vorrichtung zur fliegenden oder sofortigen Fehlerkorrektur für ein Plattenlaufwerk. Daten werden seriell über eine I/O-Schnittstelle 12 in die Fehlerkorrekturvorrichtung eingegeben oder aus dieser ausgegeben. Lese- und Schreibtakte für eine Zeitsteuerungs-Datenübertragung sind vorgesehen, und es ist weiterhin ein Servotakt zur Spursteuerung über diese Schnittstelle vorgesehen. Weiterhin sind normale Lese-/Schreib-Elektronikeinrichtungen 24 zur Übertragung der tatsächlichen Information zu und von einer Platte 20 des Plattenlaufwerkes über einen Wandlerkopf 22 gezeigt. Diese Schaltungen erzeugen einen Lesetakt in Abhängigkeit von Lesedaten. Ein phasenstarrer Servooszillator (PLO) 46 empfängt ein Servoeingangssignal entweder von dem Wandler 22 oder von einem (nicht gezeigten) getrennten Wandlerkopf und gibt einen Servotakt an die I/O-Schnittstelle 12 über eine Taktsteuerung 42 und an den Takteingang eines Parallel-/Seriell-(PISO-)Wandlers 28 zur Zeitsteuerung des Schreibdateneinganges an die Lese-/Schreib-Elektronik 24 ab. Insoweit ist die Fehlerkorrekturvorrichtung konventionell.
- Serielle Schreibdaten werden in eine Parallel-/Seriell-Seriell-/Parallelwandlerschaltung (SERDES) 14 über einen Multiplexer unter der Steuerung des Schreibtaktes über einen Multiplexer 44 eingegeben. Die SERDES-Schaltung gibt die Schreibdaten parallel, Symbol für Symbol, an einen Signalspeicher 16 ab, dessen Ausgang mit einem FIFO-Puffer (Puffer, bei dem die zuerst eingegebenen Daten auch zuerst ausgegeben werden) 18 und mit einem Reed- Solomon-ECC-Codierer-/Decodierer 30 verbunden ist, der die Eingangssignale durch ein Generator-Polynom dividiert. Wenn der Servo-PLO 46 anzeigt, daß der Wandlerkopf 22 in geeigneter Weise angeordnet ist, um Daten zu schreiben, so werden Datensymbole in der Reihenfolge ihres Empfangs taktgesteuert aus dem FIFO- Puffer 18 an den PISO-Wandler 28 weitergeleitet, der die Daten seriell an die Lese-Schreibelektronik 24 liefert. Am Ende jedes Datensegmentes, das eine vorgegebene Anzahl von Symbolen umfaßt, wird der Restwert aus der Division der Datensymbole des Datensegmentes durch ein Generator-Polynom taktgesteuert aus den Codierer/Decodierer 30 an den PISO-Wandler 28 weitergeleitet und an das auf der Platte aufgezeichnete Datensegment angehängt. Dieser Restwert bildet bei der vorliegenden Ausführungsform einen einzigen Fehlerkorrekturcode, der zwei Prüfwort-Symbole verwendet.
- Beim Lesen wird im wesentlichen das umgekehrte Verfahren verwendet. Um Daten von der Platte zu lesen, erfaßt die Lese-/Schreibelektronik 24 zunächst eine Synchronisationsmarke, die den Beginn eines Datensektors bezeichnet. Hierdurch wird die Lese-/Schreib-Steuerung und der Lesetakt initialisiert. Nachfolgende serielle Lesedaten werden über einen Multiplexer 26 dem SERDES-Wandler 14 unter der Steuerung des Lesetaktes an die Taktsteuerung 42 zugeführt. Der SERDES-Wandler wandelt den seriellen Eingang in ein Parallelformat um und gibt die gelesenen Datensymbole über den Signalspeicher 16 an den FIFO-Puffer 18 und den Codierer-/Decodierer 30 ab. Die letztere Schaltung dividiert die empfangenen Codewort-Symbole unter Einschluß der Prüfworte durch das Generator-Polynom. Der Restwert (und die Syndrome) nach dieser Division identifizieren in eindeutiger Weise sowohl die Stelle als auch den Wert eines Fehlers. Der Restwert wird (obwohl er technisch kein Syndrom ist) in Syndrom-Signalspeicher 32 zwischengespeichert, deren Ausgang einen ROM-Speicher 34 indexiert, der vorgegebene Fehlerwerte und Fehlerstellen aufweist, die eindeutig bestimmten Restwerten zugeordnet sind. Alternativ können die Syndrome zum Nachschlagen der Fehlerwerte und -plätze oder -stellen verwendet werden. Dies wird anhand der Fig. 7 und 8 erläutert. Der indexierte Fehlerwert wird an einen Eingangssatz einer EXKLUSIV-ODER (XOR-) Anordnung 38 abgegeben. Die indexierte Fehlerstelle wird einem Stellen-Vergleicher 36 zugeführt. Danach werden die in dem FIFO-Puffer 18 enthaltenen Datensymbole eines nach dem anderen der XOR-Anordnung 38 taktgesteuert zugeführt, während gleichzeitig der Stellen-Vergleicher getaktet wird (der vorzugsweise ein Zähler ist, der von der geladenen Zählung bis zu seiner maximalen Zählung zählt). Wenn der Stellen-Vergleicher 36 anzeigt, daß ein fehlerhaftes Symbol nunmehr taktgesteuert hindurchgeleitet wird, so gibt er den Ausgang der XOR-Anordnung 38 frei, der das korrigierte Lesedaten- Symbol darstellt, um dieses anstelle des fehlerhaften gelesenen Symbols einzusetzen. Die gelesenen Datensymbole und die eingesetzten korrigierten Lesedatensymbole sind mit einem Parallel-/Seriell- (PISO-) Wandler 40 verbunden, der diese Symbole in ein serielles Format umwandelt und sie an den Lesedaten-Ausgang der I/O-Schnittstelle 12 abgibt.
- Es sei darauf hingewiesen, daß lediglich die Informationsteile eines Codewortes in dem FIFO-Puffer 18 gehalten werden, während das vollständige Codewort unter Einschluß der Prüfworte in den Codierer-/Decodierer 30 eingegeben wird.
- Bei einer Ausführungsform umfaßt jedes Symbol 5 Bits. Daher ist der Ausgang des SERDES 14 5 Bits, der Signalspeicher 16 weist 5 Bits auf, und alle PISO-Wandler wandeln 5 Bits in serielles Format um. Das Restwert-Prüfwort umfaßt sowohl nach der Codierung als auch der Decodierung zwei 5-Bit-Symbole.
- Jeder von Null abweichende Decodier-Restwert identifiziert in eindeutiger Weise einen einzigen Fehlerwert und eine einzige Fehlerstelle. Es gibt 2¹&sup0; unterschiedliche derartige Möglichkeiten. Der ROM-Speicher 34 enthält daher 1024 10-Bit-Konstanten, wobei jeweilige 10 Bits einen 5-Bit-Fehlerwert und eine 5-Bit-Stellennummer umfassen. Diese Konstanten können berechnet werden, doch werden sie vorzugsweise dadurch bestimmt, daß unter Verwendung des Codierers oder eines simulierten Codierers ein Codewort geschaffen wird, wobei alle bekannten möglichen Fehler in dem Codewort hervorgerufen werden, worauf jedes der fehlerhaften Codeworte durch das Generator-Polynom dividiert wird und der Restwert dem bekannten Fehlerwert und der bekannten Fehlerstelle zugeordnet wird.
- Bei einer Vorrichtung zur fliegenden Fehlerkorrektur gemäß der vorliegenden Erfindung sind zwei Codeworte ineinander verschachtelt. Dies ermöglicht die Erkennung von ersten Fehlern in zwei benachbarten Symbolen, ohne daß ein 2-Fehler-Korrekturcode verwendet wird. Bei dieser alternativen Anordnung umfaßt der Informationsabschnitt jedes Codewortes 16 Symbole, so daß sich insgesamt 32 Datensymbole in den beiden ineinander verschachtelten Codeworten ergeben. Die Verschachtelungsanordnung ist in Fig. 2 gezeigt. Jeder Sektor beginnt mit einer Synchronisationsmarke, die durch ein vorgegebenes Bitmuster gegeben ist. Die Synchronisationsmarke eines Sektors selbst bildet das erste geradzahlige Datensymbol. Auf dieses folgen die Datensymbole 1 - 31 und die Prüfwort-Symbole 0 - 3. Jedes ungeradzahlige Symbol ist einem Codewort zugeordnet, während jedes geradzahlige Symbol dem anderen zugeordnet ist. Die beiden Codeworte bilden eine Codewort- Gruppe und werden gleichzeitig decodiert.
- Jeder Datensektor enthält vorzugsweise eine Vielzahl von ineinander verschachtelten Codewort-Gruppen, deren Anzahl eine Konstruktionsauswahl darstellt. Es gibt keine Begrenzung zwischen Codewort-Gruppen, weil die vorliegende Erfindung ein Lesen, Decodieren und Korrigieren in fliegender oder sofortiger Weise ermöglicht.
- Die Latenzzeitperiode ist durch die Zeit zur Decodierung einer Codewort-Gruppe, in diesem Fall 36 Symbole, plus den Verknüpfungsglied-Verzögerungszeiten der Elemente 32, 34, 38 und 40 nach Fig. 1 bestimmt. In Fig. 2 ist die Latenzzeit durch die Lücke zwischen der LESE-DATEN-Zeile und der INTERNE-LESEDATEN- Zeile angezeigt. Weiterhin ist in der Figur ein hypothetischer 6-Bit-Fehler in zwei aufeinanderfolgenden Symbolen S1 und S2 und seine Korrektur in Abhängigkeit von getrennten geradzahligen und ungeradzahligen Korrektur-Zeitsteuerimpulsen von getrennten Stellen-Decodier-Elektronikschaltungen gezeigt.
- Fig. 3 ist ein Blockschaltbild eines verschachtelten Decodierers einer Vorrichtung zur fliegenden Fehlerkorrektur gemäß der vorliegenden Erfindung. Daten von der SERDES-Einheit 14 (Fig. 1) werden in den Signalspeicher 16 unter der Steuerung eines Taktes von der Taktsteuerung 42 eingegeben, die auf den LESETAKT von der Lese-/Schreib-Elektronik 24 anspricht. Der Eingang an den Signalspeicher 16 umfaßt die beiden verschachtelten Codeworte. Diese werden unmodifiziert in einen programmierten Logikbaustein (PAL) 56 eingegeben, der sie durch ein Generator-Polynom dividiert. Weiterhin werden die Datenabschnitte der beiden Codeworte dadurch voneinander getrennt, daß sie zwei getrennten FIFO- Puffern 52, 54 unter der Steuerung von Geradzahlig- und Ungeradzahlig-Takten von der Taktsteuerung 42 zugeführt werden.
- Der PAL-Baustein 56 enthält zwei Generator-Polynom-Dividierer 80, 82 (Fig. 4), die die Eingangs-Codewortgruppe dadurch in ihre Komponenten unterteilen, daß Eingabe-Signalspeicher 88, 92 erneut alternativ durch Geradzahlig- und Ungeradzahlig-Signale von der Taktsteuerung 42 freigegeben werden. Jeder der Generator-Polynom-Dividierer weist die gleiche allgemeine Konstruktion auf, nämlich ein Eingangs-XOR-Verknüpfungsglied 84, dessen anderer Eingang mit dem Ausgang eines XOR-Verknüpfungsgliedes 86 verbunden ist, und dessen Ausgang mit einem Register R0 und einem Ausgangs-Signalspeicher 90, 94 verbunden ist. Das Register R0 ist ihrerseits mit einem Galois-Multiplizierer g1 verbunden, dessen Ausgang als ein Eingang dem XOR-Verknüpfungsglied 86 und einem Register R1 zugeführt wird. Der Ausgang des Registers R1 wird in einem Galois-Multiplizierer g0 multipliziert und als zweiter Eingang dem XOR-Verknüpfungsglied 86 zugeführt. Wie dies zu erkennen ist, ergibt diese Anordnung der Elemente eine Galois-Division durch ein Generator-Polynom mit der Form:
- X² + g&sub1;X + g&sub0;
- Bei der bevorzugten Ausführungsform ist das Generator-Polynom g(X) gleich:
- X² + α²X + α&sup0;
- von den Wurzeln α¹&sup5; und α¹&sup6;, worin αi ein n-Tupel- Feldelement von GF(2&sup5;) Modulo P(X) = X&sup5; + X² + 1 ist. Damit ist g1 = α² = 00100 und g0 = α&sup0; = 00001, worin 00100 beispielsweise die Koeffizienten des n-Tupels
- α¹ = A&sub4;α&sup4;+A&sub3;α³+A&sub2;α²+A&sub1;α¹+A&sub0;α&sup0;
- sind und α eine Wurzel von P(X) ist, d.h.
- P(α) = α&sup5; + α² + 1 = 0.
- Nachdem jedes Symbol der jeweiligen Codeworte taktgesteuert in das Register R0 eingeleitet wurde, steht der Restwert an den jeweiligen Signalspeichern 90, 94 als Antwort auf zwei weitere Takte zur Verfügung. Während dieser Takte taktet ein Zeitsteuersignal CW-AUS die Signalspeicher. Der Ausgang von dem PAL-Baustein 56 wird an einem PRÜFWORT-AUS-Ausgang von beiden Signalspeichern 90, 94 abgegeben. Weil sie sich den gleichen Ausgang teilen, werden die Signalspeicher abwechselnd durch die oben erwähnten Geradzahlig- und Ungeradzahlig-Signale freigegeben. Dieser PRÜFWORT-AUS-Ausgang wird während der Kodierung an den PISO-Wandler 28 gemäß Fig. 1 und an vier 'Syndrom'-Signalspeicher 58 bis 64 gemäß Fig. 3 geliefert. Die beiden Symbole der geradzahligen Prüfworte werden in Signalspeichern 58, 60 in Abhängigkeit von zwei aufeinanderfolgenden Signalen CW1 und CW2 zwischengespeichert. Die beiden Symbole der ungeradzahligen Prüfworte werden in Signalspeichern 62, 64 in Abhängigkeit von aufeinanderfolgenden Signalen CW1 und CW2 zwischengespeichert. Nachdem die Signalspeicher mit den Prüfwort-Symbolen geladen wurden, werden sie jeweils zwei zu einer Zeit den ROM's 66, 68 an den 10-Bit-Adresseneingangsleitungen der ROM's zur Verfügung gestellt. Zunächst werden die beiden geradzahligen Signalspeicher 58, 60 unter Koordination durch das Geradzahlig-Signal verfügbar gemacht. Danach werden die beiden ungeradzahligen Signalspeicher 62, 64 unter Koordination durch das Ungeradzahlig-Signal verfügbar gemacht.
- Jeder ROM-Baustein 66, 68 ist ein Direktzugriffsspeicher mit 1024 x 5 Bits. Der Inhalt des ROM 66 umfaßt die 1024 5-Bit- Fehlerwerte gemäß der Indexierung durch den Prüfwort-Eingang an seinen 10-Bit-Adressenleitungen. Der Inhalt des ROM 68 umfaßt die 1024 5-Bit-Fehlerstellen gemäß der Indexierung durch den Prüfwort-Eingang an seinen 10-Bit-Adressenleitungen. Wenn weniger als die maximale Anzahl von möglichen Codewort-Symbolen verwendet wird, wie bei der bevorzugten Ausführungsform, bei der lediglich 16 Datensymbole verwendet werden und die maximale Codewortlänge 31 Symbole umfaßt, kann der Inhalt jedes ROM- Bausteins entsprechend verringert werden, und zwar aufgrund der reduzierten Anzahl von möglichen Fehlerwerten und -stellen.
- Der geradzahlige Fehlerwert wird vorübergehend in einem Signalspeicher 70 zwischengespeichert, und sowohl die geradzahligen als auch die ungeradzahligen Fehlerwerte werden dem PAL-Baustein 56 für eine nachfolgende Galois-Addition zu dem fehlerhaft gelesenen Datensymbol für die geradzahligen und die ungeradzahligen Codeworte einer Gruppe zugeführt. Die geradzahligen und ungeradzahligen Fehlerstellen werden jeweiligen Aufwärts-Zählern 74, 76 zugeführt.
- Als nächstes werden die Inhalte der FIFO-Puffer 52, 54 abwechselnd unter der Steuerung von Geradzahlig- und Ungeradzahlig- Signalen taktgesteuert sowohl an den PAL-Baustein 56 als auch an einen Signalspeicher 78 weitergeleitet, der einen mit dem PAL- Baustein verbundenen Sperreingang aufweist. Normalerweise wird jedes taktgesteuert in diesen eingeleitete LESEDATEN-Symbol taktgesteuert an die PISO-Wandler 40 weitergeleitet. Wenn jedoch einer der Zähler 74 oder 76 eine Fehlerstelle anzeigt, sperrt der PAL-Baustein den Ausgang des Signalspeichers 78 und gibt den KORRIGIERTE LESEDATEN-Ausgang an den PISO-Wandler 40 frei.
- Fig. 4 zeigt die in dem PAL-Baustein 56 enthaltenen Abschnitte dieses Vorganges. Die Geradzahlig- und Ungeradzahlig-Fehlerwerte 96 werden als ein Eingang einem XOR-Baustein 102 zugeführt. Der andere Eingang an diesem XOR-Baustein ist der Ausgang der FIFO- Puffer 52, 54. Wenn eine Fehlerstelle bestimmt wurde, so ist das fehlerhafte Symbol an diesem Eingang an den XOR-Baustein vorhanden. Der Ausgang des XOR-Bausteins wird unter der Steuerung eines ODER-Verknüpfungsgliedes 100 freigegeben, dessen Eingang die Geradzahlig- oder Ungeradzahlig-Korrekturfreigabe-Signale von den Zählern 74, 76 sind. Der Ausgang des ODER-Verknüpfungsgliedes 100 sperrt weiterhin die LESEDATEN des Signalspeichers 78. Der Ausgang von dem XOR-Baustein wird an dem KORRIGIERTE DATEN-Ausgang an den PISO-Wandler 40 geliefert, wodurch das fehlerhafte Symbol ersetzt wird.
- Wenn bei einem Codewort kein Symbol fehlerhaft ist, so ist der Restwert von der Division durch das Generator-Polynom gleich Null. Der Wert Null könnte einen Fehlerstellen-Wert indexieren, der keine Auszählung in den Zählern 74 oder 76 hervorrufen würde, oder alternativ können (nicht gezeigte) Einrichtungen vorgesehen sein, um alle Restwerte von Null festzustellen und den Betrieb der Zähler zu sperren.
- Fig. 5 ist eine alternative Anordnung, bei der die Wurzeln des Generator-Polynoms so gewählt sind, daß ein Syndrom S&sub0; direkt den Fehlerwert ergibt. Das geradzahlige Codewort ist gezeigt. Eine identische Anordnung ist für das ungeradzahlige Codewort vorgesehen. Bei dieser Anordnung sind die Wurzeln α&sup0; und α¹, und sie ergeben ein Generator-Polynom
- G(X) = X² + α¹&sup8;X + α¹, und
- g1 = α¹&sup8; = 00011 und g0 = α¹ = 00010
- Hierbei werden alle Symbole des Codewortes taktgesteuert durch einen Generator-Polynom-Dividierer hindurchgeleitet, wobei die letzten beiden Eingänge auf Null gesetzt sind. Die Summe der Inhalte der Register R0, R1 stellt den Restwert dividiert durch X - α&sup0; dar, was das Syndrom S&sub0; ist. Die Summe wird durch Zuführung der Ausgänge dieser Register an einen XOR-Baustein 106 gebildet, dessen Ausgang S&sub0; der Fehlerwert ist.
- Der Restwert identifiziert wie vorher ebenfalls in eindeutiger Weise eine Fehlerstelle. Hier wird der Rest über die Ausgänge der Register R0, R1 den Adresseneingängen des ROM 68 wie vorher zugeführt, um die Fehlerstelle zu indexieren.
- Bei einer weiteren alternativen Anordnung kann das Syndrom S&sub1; mit dem gleichen Generator-Polynom verwendet werden, um einen Wert zu gewinnen, der eine Fehlerstelle ergibt, und zwar mit der Schaltung nach Fig. 6. Hierbei wird zusätzlich die Notwendigkeit eines ROM 68 beseitigt.
- Wie vorher ergibt S&sub0;, der Ausgang des XOR-Bausteins 106, den Fehlerwert. Die Division des Restwertes durch X - α¹ ergibt das Syndrom S&sub1;. Der Koeffizient des Multiplizierers G0 ist α¹. Somit ist der Restwert dividiert durch X - α¹ der Ausgang des Galois-Multiplizierers g0, summiert mit dem Ausgang des Registers R0. Diese Summe wird von einem XOR-Baustein 108 geliefert, dessen Eingänge die oben erwähnten Ausgänge sind.
- Die Fehlerstelle kann unter Verwendung des Syndroms S&sub1; dadurch gefunden werden, daß das Produkt von S&sub1; und αi, wobei i = 1, 2, ... 31 ist, mit dem Fehlerwert an der Stelle i verglichen wird. Das Produkt kann dadurch bestimmt werden, daß S&sub1; mit αi multipliziert wird.
- Ein Codewort in GF (2&sup5;) weist viele Symbole als Feldelemente auf, d.h. 31. Bei dieser Ausführungsform sind jedoch weniger als alle möglichen Codewort-Symbole von Null abweichend. Speziell sind dies nur 18, wobei lediglich die 16 höchstbewerteten von diesen Daten umfassen. Damit sind 31 - 18 = 13 höchstbewertete Symbole eines Codewortes für die Korrektur von fehlerhaften Daten ohne Bedeutung. Daher ist die erste mögliche Datenfehlerstelle gleich 14, und die ersten 13 Stellen können ignoriert werden. Dies wird dadurch erzielt, daß S&sub1; mit α¹³ multipliziert wird, wobei vorzugsweise oder alternativ S&sub1; 13 mal mit α¹ multipliziert wird. Ein Vormultiplizierer 110 multipliziert S&sub1; mit α¹³.
- Ein skaliertes Syndrom S&sub1;¹³ wird einer Fehlerstellen-Bestimmungseinheit 128 über einen Schalter 112 und in ein Register R3 zugeführt. Danach schließt der Schalter 112 eine Multipliziererschleife, die das Register R3 und einen α¹-Multiplizierer 116 einschließt. Der Ausgang des Registers R3 wird mit α¹ multipliziert und als Eingang einem XOR-Baustein 118 und dem Register R3 zugeführt. Der andere Eingang des XOR-Bausteins 118 ist der Fehlerwert von dem XOR-Baustein 106. Wenn die skalierte Fehlerstelle und der Fehlerwert identisch sind, so ist das entsprechende Datensymbol das fehlerhafte Datensymbol. Weiterhin besteht, wenn die beiden Eingänge gleich sind, der Ausgang des XOR-Bausteins 118 vollständig aus 0-Werten. Dies wird von einem NOR-Verknüpfungsglied 120 überprüft, das nur dann einen hohen Ausgangspegel annimmt, wenn alle Eingänge gleich Null sind.
- Wenn jedes Datensymbol (geradzahlig oder ungeradzahlig) zur Weiterleitung an den PISO-Wandler 40 bereit ist, wird ihr erster Eingang dem Signalspeicher 70 und dem XOR-Baustein 38 (Fig. 1) zugeführt, wobei das geradzahlige 104 in Fig. 6 gezeigt ist. Der andere Eingang an den XOR-Baustein ist der entsprechende geradzahlige oder ungeradzahlige Fehlerwert. In Fig. 6 wird der Fehlerwert von dem XOR-Baustein 106 in einen XOR-Baustein 126 eingegeben, dessen Ausgang durch einen Torsteuerbaustein 124 torgesteuert weitergeleitet wird. Der Ausgang des Torsteuerbausteins 124 wird freigegeben, wenn das NOR-Verknüpfungsglied 120 die Feststellung einer Fehlerstelle für ein geradzahliges Codewort anzeigt. Dieser Ausgang ist mit dem KORRIGIERTE LESEDATEN- Ausgang nach Fig. 3 verbunden. Gleichzeitig ist der Ausgang des NOR-Verknüpfungsgliedes auch mit dem Signalspeicher 78 verbunden und sperrt den Ausgang dieses Signalspeichers, wenn eine geradzahlige Fehlerstelle gefunden wird. Dies führt dazu, daß die KORRIGIERTEN LESEDATEN die LESEDATEN am Eingang des PISO-Wandlers 40 ersetzen.
- Jedesmal, wenn der PISO-Wandler 40 und der Signalspeicher 78 für ein geradzahliges Symbol getaktet werden, wird das Register R3 getaktet, um eine neue Potenz von S¹ zu laden und um an den Eingang des XOR-Bausteins 118 die nächste Potenz von S¹ anzulegen. Der Vorgang wird fortgesetzt, bis das gesamte geradzahlige Codewort verarbeitet ist.
- Die in Fig. 6 gezeigte Vorrichtung dient lediglich für das geradzahlige Codewort. Sie ist für das ungeradzahlige Codewort wiederholt. Die Vorrichtung weist weiterhin Einrichtungen zur Freigabe des Ausganges des NOR-Verknüpfungsgliedes 120 nur dann auf, wenn ein entsprechendes geradzahliges oder ungeradzahliges Symbol an den Signalspeicher 78 vorliegt.
- Fig. 7 zeigt eine Abänderung des geradzahligen Decodier-Segmentes nach Fig. 5. Weil die Syndrome sowie die Restwerte in Kombination eindeutig einer einzigen Fehlerstelle zugeordnet sind, werden sie von den XOR-Bausteinen 106 (S&sub0;), 108 (S&sub1;) an den ROM 68 geliefert, um vorher zugeordnete Fehlerstellen nachzuschlagen.
- Fig. 8 zeigt eine Abänderung der Fig. 5, 7 und 3, bei der die Syndrome dazu verwendet werden, sowohl die vorher zugeordneten Fehlerwerte als auch Stellen von den ROM-Bausteinen 66 bzw. 68 nachzuschlagen.
- Wie dies in diesen Figuren gezeigt ist, werden die Syndrome durch Dividieren des Restwertes durch die Wurzeln des Generator- Polynoms gebildet. Es gibt andere Möglichkeiten zur Bestimmung von Syndromen aus einem Codewort. Ein in der US-A-4584686 gezeigtes Beispiels dividiert das Codewort selbst durch die Wurzeln des Generator-Polynoms.
- Fig. 9 ist eine schematische Ansicht eines alternativen verschachtelten Decodierers, der gegenüber Fig. 3 abgeändert ist und bei dem der Signalspeicher 78 beseitigt ist. Hierbei werden sowohl die geradzahligen als auch die ungeradzahligen Symbole in der vorstehend beschriebenen Weise dem PAL-Baustein 56 zugeführt, und der Ausgang bleibt unmodifiziert, wenn das Symbol nicht fehlerhaft ist, während der Ausgang korrigiert wird, wenn ein Fehler auftritt. Alle Daten der FIFO-Puffer werden durch das XOR-Verknüpfungsglied des PAL-Bausteins 56 hindurchgeleitet.
- Fig. 10 zeigt diese Abänderung zusammen mit einem alternativen verschachtelten Codierer-/Decodierer 80. Hierbei werden sowohl die geradzahligen als auch die ungeradzahligen Symbole von den FIFO-Puffern in den XOR-Baustein 102 eingegeben. Der andere Eingang wird von dem Fehlerwert 96 geliefert, dessen Ausgang normalerweise vollständig aus Null-Werten besteht, sofern er nicht durch das ODER-Verknüpfungsglied 100 freigegeben ist, wenn entweder eine geradzahlige oder ungeradzahlige Fehlerstelle von den Zählern 74, 76 (Fig. 3 oder 9) bestimmt wurde. Bei Freigabe durch das ODER-Verknüpfungsglied 100 gelangt der dann vorhandene geradzahlige oder ungeradzahlige Fehlerwert an den XOR-Baustein 102, in dem er das fehlerhafte Datensymbol von dem FIFO-Puffer korrigiert. In beiden Fällen werden, wenn die Ergebnisse des XOR-Bausteins richtig sind, diese an den PISO-Wandler 40 geliefert.
- Der Codierer-/Decodierer 80 ersetzt die beiden Codierer-/Decodierer 80, 82 nach Fig. 2.
- In dieser Figur sind die Register R0, R1 und R2, R3 Schieberegister, die zwei Gruppenzellen aufweisen. Im wesentlichen kopiert das Register R0 bei jedem Takt die 5 Bits an seinem Eingang, und das Register R1 kopiert die 5 Bits in dem Register R0 und legt diese Bits an seinen Ausgang an. Die Register R2, R3 arbeiten in der gleichen Weise. Auf diese Weise werden beide ineinander verschachtelten Datensegmente oder Codeworte bei jedem Takt durch den Signalspeicher 88 eingegeben, jedoch effektiv durch die Schieberegister R1, R0 und R2, R3 in zwei getrennte Codeworte unterteilt. Der Ausgang ist der gleiche. Die Anordnung beseitigt die Notwendigkeit von duplizierten Galois-Multiplizierern g0, g1, usw..
- Fig. 11 stellt eine bevorzugte Abänderung der Fehlerstellen- Bestimmungsanordnung nach Fig. 6 dar, bei der die Schieberegisteranordnung nach Fig. 10 verwendet wird. Hier ist das Register R3 einer Fehlerstellen-Bestimmungseinheit 128 durch Schieberegister R4, R5 ersetzt, deren Funktion identisch zu der der Schieberegister R0, R1 und R2, R3 ist. Bei abwechselnden Takten steht eine geradzahlige oder ungeradzahlige Fehlerstelle am Ausgang des NOR-Verknüpfungsgliedes 120 zur Verfügung, während der Fehlerwert am Ausgang des XOR-Bausteins 106 verfügbar ist. Wenn das NOR-Verknüpfungsglied 120 anzeigt, daß eine Fehlerstelle vorhanden ist, so gibt es das Verknüpfungsglied 124 frei, um den Fehlerwert durch den XOR-Baustein 126 weiterzuleiten, der das fehlerhafte Datensymbol korrigiert. Wenn jedoch eine Fehlerstelle nicht vorliegt, so wird das Verknüpfungsglied 124 nicht freigegeben und gibt vollständig Null-Werte ab, so daß die Daten von dem FIFO-Puffer ohne Korrektur durch den XOR-Baustein 126 hindurchlaufen.
Claims (12)
1. Vorrichtung zur fliegenden Korrektur von Fehlern in
Codeworten, die in Mehr-Bit-Symbolen gruppiert sind, wobei jedes
Codewort kodierte Daten und Prüfwort-Symbole umfaßt, und wobei
die Vorrichtung folgende Teile umfaßt:
- Einrichtungen (24) zum Empfangen der Codeworte,
- Einrichtungen (30) zum Anwenden eines
Generator-Polynoms auf jedes der Codeworte zur Berechnung von Syndromen
und/oder Restwerten und zur Ableitung eines Korrekturwertes und
einer Korrekturstelle hieraus, und
- Einrichtungen (13,38,34,36) zum Auslesen des
jeweiligen Codewortes von den Einrichtungen zum Empfangen, und wenn ein
Fehler vorliegt, zum Korrigieren des Fehlers unter Verwendung
des Korrekturwertes und der Korrekturstelle,
dadurch gekennzeichnet, daß
- ein Einzelsymbol-Fehlerkorrekturcode zur Erzeugung der
Codeworte verwendet wird,
- erste und zweite aufeinanderfolgende Codeworte Symbol
für Symbol miteinander verschachtelt sind,
- die Einrichtungen zum Anwenden die ersten und zweiten
Codeworte gleichzeitig in zwei parallelen Kanälen verarbeiten,
wobei jeder Kanal einen Polynom-Dividierer (80,82) und
Einrichtungen zum Ableiten des Korrekturwertes und der Korrekturstelle
umfaßt.
2. Fehlerkorrekturvorrichtung nach Anspruch 1,
die weiterhin einen Speicher (34,66,68) zum Speichern der
Korrekturwerte und Korrekturstellen umfaßt.
3. Fehlerkorrekturvorrichtung nach Anspruch 1 oder 2,
bei der die Einrichtungen zum Anwenden ein erstes
XOR-Verknüpfungsglied (84) mit einem ersten Eingang zum Empfang des
Codewortes, mit einem zweiten Eingang zum Empfang des Ausganges
eines zweiten XOR-Verknüpfungsgliedes (86) und mit einem mit
einem ersten Register (R0) gekoppelten Ausgang umfassen, wobei
der Ausgang des ersten Registers (R0) mit dem Eingang eines
ersten Multiplizierers (g1) und eines zweiten Registers (R1)
gekoppelt ist, wobei der Ausgang des ersten Multiplizierers den
ersten Eingang des zweiten XOR-Verknüpfungsgliedes (86) bildet,
während der Ausgang des zweiten Registers (R1) mit dem Eingang
eines zweiten Multiplizierers (g0) gekoppelt ist, dessen Ausgang
den zweiten Eingang für das zweite XOR-Verknüpfungsglied (86)
liefert.
4. Fehlerkorrekturvorrichtung nach Anspruch 3 unter
Rückbeziehung auf Anspruch 2,
bei der die Summe der Ausgänge der ersten und zweiten Register
(R0,R1) zur Adressierung des Speichers zur Gewinnung des
Korrekturwertes und der Korrekturstelle verwendet wird.
5. Fehlerkorrekturvorrichtung nach Anspruch 3,
bei der der Ausgang des ersten XOR-Verknüpfungsgliedes (84) den
Restwert liefert.
6. Fehlerkorrekturvorrichtung nach Anspruch 3,
bei dem die Summe der Ausgänge der ersten und zweiten Register
(R0,R1) das dem Korrekturwert entsprechende Syndrom liefert,
während die Ausgänge der ersten und zweiten Register (R0,R1) den
Restwert liefern.
7. Fehlerkorrekturvorrichtung nach Anspruch 3 unter
Rückbeziehung auf Anspruch 2,
bei der die Summe der Ausgänge der ersten und zweiten Register
(R0,R1)
das dem Korrekturwert entsprechende Syndrom liefert und
die Summe der ersten und zweiten Register (R0,R1) zur
Adressierung des Speichers zur Gewinnung der Stelle verwendet wird.
8. Fehlerkorrekturvorrichtung nach einem der vorhergehenden
Ansprüche,
bei der jeder Kanal einen jeweiligen Polynom-Dividierer
aufweist.
9. Fehlerkorrekturvorrichtung nach Anspruch 8 unter
Rückbeziehung auf einen der Ansprüche 3 bis 7,
bei der die Einrichtung zum Anwenden zwei erste und zweite XOR-
Verknüpfungsglieder (84,86), erste und zweite Register (R0,R1)
und erste und zweite Multiplizierer (g0,g1) umfaßt, die jeweils
einem jeweiligen Kanal zugeordnet sind.
10. Fehlerkorrekturvorrichtung nach einem der Ansprüche
1 bis 7,
bei der die beiden parallelen Kanäle sich einen einzigen
Polynom-Dividierer teilen.
11. Fehlerkorrekturvorrichtung nach Anspruch 10 unter
Rückbeziehung auf einen der Ansprüche 3 bis 7,
bei der das erste Register ein erstes Schieberegister (R0,R1)
und das zweite Register ein zweites Schieberegister (R2,R3) ist.
12. Fehlerkorrekturvorrichtung nach Anspruch 11,
bei der die ersten und zweiten Schieberegister (R0,R1,R2,R3)
zwei Zellen aufweisende Schieberegister sind.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/166,085 US4890287A (en) | 1988-03-09 | 1988-03-09 | On-the-fly error correction |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE3855101D1 DE3855101D1 (de) | 1996-04-18 |
| DE3855101T2 true DE3855101T2 (de) | 1996-08-01 |
Family
ID=22601763
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE3855101T Expired - Fee Related DE3855101T2 (de) | 1988-03-09 | 1988-09-12 | Anordnung zur sofortigen Fehlerkorrektur |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US4890287A (de) |
| EP (1) | EP0331836B1 (de) |
| JP (1) | JP2732531B2 (de) |
| AU (1) | AU2242388A (de) |
| CA (1) | CA1301353C (de) |
| DE (1) | DE3855101T2 (de) |
| SG (1) | SG49737A1 (de) |
Families Citing this family (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5241546A (en) * | 1991-02-01 | 1993-08-31 | Quantum Corporation | On-the-fly error correction with embedded digital controller |
| US5280488A (en) * | 1990-11-08 | 1994-01-18 | Neal Glover | Reed-Solomon code system employing k-bit serial techniques for encoding and burst error trapping |
| US5243604A (en) * | 1990-12-18 | 1993-09-07 | Seagate Technology, Inc. | On-the-fly error correction |
| US5263030A (en) * | 1991-02-13 | 1993-11-16 | Digital Equipment Corporation | Method and apparatus for encoding data for storage on magnetic tape |
| US5638386A (en) * | 1991-09-20 | 1997-06-10 | Hitachi, Ltd. | Recording apparatus |
| US5412194A (en) * | 1992-03-25 | 1995-05-02 | Storage Technology Corporation | Robust coding system |
| US5329535A (en) * | 1992-04-30 | 1994-07-12 | International Business Machines Corporation | Variable block lengths on-the-fly error correcting decoder |
| DE69327683T2 (de) * | 1992-05-19 | 2000-07-27 | Koninklijke Philips Electronics N.V., Eindhoven | Erweitertes fehlergeschütztes Kommunikationssystem |
| US5602857A (en) * | 1993-09-21 | 1997-02-11 | Cirrus Logic, Inc. | Error correction method and apparatus |
| US5610929A (en) * | 1994-03-11 | 1997-03-11 | Fujitsu Limited | Multibyte error correcting system |
| US5434719A (en) * | 1994-03-18 | 1995-07-18 | Seagate Technology, Inc. | Correction of header information in a magnetic disc drive |
| US5642366A (en) * | 1994-07-05 | 1997-06-24 | Adaptec, Inc. | Global parity symbol for interleaved reed-solomon coded data |
| US5761220A (en) * | 1994-09-19 | 1998-06-02 | Cirrus Logic, Inc. | Minimum latency asynchronous data path controller in a digital recording system |
| US6125469A (en) * | 1994-10-18 | 2000-09-26 | Cirrus Logic, Inc. | Error correction method and apparatus |
| US5771184A (en) * | 1995-10-12 | 1998-06-23 | Adaptec, Inc. | System and method for solving quadratic equation in galois fields |
| US5812438A (en) * | 1995-10-12 | 1998-09-22 | Adaptec, Inc. | Arithmetic logic unit and method for numerical computations in galois fields |
| US5787099A (en) * | 1995-10-12 | 1998-07-28 | Adaptec, Inc. | System and method for encoding and decoding data using numerical computations in galois fields |
| US5889792A (en) * | 1996-10-01 | 1999-03-30 | Intel Corporation | Method and apparatus for generating syndromes associated with a block of data that employs re-encoding the block of data |
| US5774648A (en) * | 1996-10-02 | 1998-06-30 | Mitsubishi Semiconductor Of America, Inc. | Address generator for error control system |
| US6360348B1 (en) * | 1999-08-27 | 2002-03-19 | Motorola, Inc. | Method and apparatus for coding and decoding data |
| US7458007B2 (en) * | 2000-02-18 | 2008-11-25 | Texas Instruments Incorporated | Error correction structures and methods |
| US6735737B2 (en) * | 2000-02-18 | 2004-05-11 | Texas Instruments Incorporated | Error correction structures and methods |
| KR100688549B1 (ko) * | 2005-05-24 | 2007-03-02 | 삼성전자주식회사 | 비휘발성 메모리를 지원하는 온더플라이 bcc 코덱시스템 및 방법 |
| JP6131207B2 (ja) * | 2014-03-14 | 2017-05-17 | ウィンボンド エレクトロニクス コーポレーション | 半導体記憶装置 |
Family Cites Families (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4030067A (en) * | 1975-12-29 | 1977-06-14 | Honeywell Information Systems, Inc. | Table lookup direct decoder for double-error correcting (DEC) BCH codes using a pair of syndromes |
| US4151510A (en) * | 1978-04-27 | 1979-04-24 | Honeywell Information Systems | Method and apparatus for an efficient error detection and correction system |
| US4360916A (en) * | 1979-12-31 | 1982-11-23 | Ncr Canada Ltd.-Ncr Canada Ltee. | Method and apparatus for providing for two bits-error detection and correction |
| US4397022A (en) | 1981-01-30 | 1983-08-02 | Weng Ming I | Weighted erasure codec for the (24, 12) extended Golay code |
| US4473902A (en) * | 1982-04-22 | 1984-09-25 | Sperrt Corporation | Error correcting code processing system |
| GB2124806B (en) * | 1982-08-06 | 1986-05-14 | Sony Corp | Method of correcting errors in binary data |
| US4525838A (en) * | 1983-02-28 | 1985-06-25 | International Business Machines Corporation | Multibyte error correcting system involving a two-level code structure |
| US4599722A (en) * | 1984-04-03 | 1986-07-08 | Canadian Patents And Development Limited-Societe Canadienne Des Brevets Et D'exploitation Limitee | Apparatus for encoding and decoding digital data to permit error correction |
| US4623999A (en) * | 1984-06-04 | 1986-11-18 | E-Systems, Inc. | Look-up table encoder for linear block codes |
| JPH0728227B2 (ja) * | 1985-06-07 | 1995-03-29 | ソニー株式会社 | Bch符号の復号装置 |
| US4706250A (en) * | 1985-09-27 | 1987-11-10 | International Business Machines Corporation | Method and apparatus for correcting multibyte errors having improved two-level code structure |
| JPS62233932A (ja) * | 1986-04-03 | 1987-10-14 | Kenwood Corp | Bch符号の復号回路 |
| US4849975A (en) * | 1987-11-10 | 1989-07-18 | International Business Machines Corporation | Error correction method and apparatus |
-
1988
- 1988-03-09 US US07/166,085 patent/US4890287A/en not_active Ceased
- 1988-09-02 JP JP63218675A patent/JP2732531B2/ja not_active Expired - Lifetime
- 1988-09-12 DE DE3855101T patent/DE3855101T2/de not_active Expired - Fee Related
- 1988-09-12 SG SG1996004527A patent/SG49737A1/en unknown
- 1988-09-12 EP EP88308404A patent/EP0331836B1/de not_active Expired - Lifetime
- 1988-09-20 AU AU22423/88A patent/AU2242388A/en not_active Abandoned
- 1988-11-25 CA CA000584156A patent/CA1301353C/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| US4890287A (en) | 1989-12-26 |
| JP2732531B2 (ja) | 1998-03-30 |
| JPH01235423A (ja) | 1989-09-20 |
| EP0331836A3 (en) | 1990-11-28 |
| AU2242388A (en) | 1989-09-14 |
| EP0331836A2 (de) | 1989-09-13 |
| SG49737A1 (en) | 1998-06-15 |
| EP0331836B1 (de) | 1996-03-13 |
| CA1301353C (en) | 1992-05-19 |
| DE3855101D1 (de) | 1996-04-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE3486200T2 (de) | Verfahren und vorrichtung zur dekodierung eines fehlerverbesserungskodes. | |
| DE68924944T2 (de) | Fehlerkorrekturschaltung. | |
| DE69414631T2 (de) | Schaltung zur Durchführung des Euclidschen Algorithmus bei der Dekodierung Arithmetischer Kodes | |
| DE2942825C2 (de) | ||
| DE3128599C2 (de) | Verfahren und Vorrichtung zur Fehlererfassung und Fehlerkorrektur | |
| DE69609509T2 (de) | Trelliskodierung mit verminderter fehlerverbreitung | |
| DE69019777T2 (de) | Datenstrom-Rahmensynchronisation. | |
| DE69023372T2 (de) | Zuverlässigkeitsverbesserung von nichtflüchtigen Datenspuren einer Speichervorrichtung. | |
| DE3040004C2 (de) | ||
| DE69424877T2 (de) | Reed-solomon-dekoder | |
| DE3124425C2 (de) | Verfahren und Vorrichtung zu Fehlererkennung und Fehlerkorrektur | |
| DE3123978C2 (de) | Verfahren zum Decodieren und zur Korrektur von blockweisen digitalen Informationsworten und Anwendung des Verfahrens | |
| DE69323689T2 (de) | Schaltung mit Reed-Solomon Fehlerkorrektur und CRC Fehlererkennung | |
| DE3787900T2 (de) | Verfahren und Gerät zur Erzeugung von Prüfungs-Byten zur Fehlerdetektion für einen Datenblock. | |
| DE3852423T2 (de) | Kodierverfahren und Kodierer mit Reed-Solomon Fehlerkorrekturcode. | |
| DE3852999T2 (de) | Galois-feld-recheneinheit. | |
| EP0331836B1 (de) | Anordnung zur sofortigen Fehlerkorrektur | |
| DE3231956A1 (de) | Anordnung zum uebertragen von binaerdaten ueber eine vielzahl von kanaelen mit hilfe eines faltungscodes | |
| EP0545498B1 (de) | Verfahren und Schaltungsanordnung zum Decodieren von RS-codierten Datensignalen | |
| DE4105860C2 (de) | Schaltungsanordnung zum Erkennen und Korrigieren von Fehlern in Datenworten | |
| DE2364788A1 (de) | Verfahren und vorrichtung zur fehlerkorrigierenden datenuebertragung oder -speicherung | |
| DE3404417A1 (de) | Codierer-pruefschaltungsanordnung | |
| DE69524430T2 (de) | Crc/epc prüfsystem | |
| DE69517042T2 (de) | Mehrzweckberechnungsschaltung zur fehlerkorrektur | |
| DE68925378T2 (de) | Verfahren und Schaltung zur Daten-Fehler-Erkennung |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8364 | No opposition during term of opposition | ||
| 8339 | Ceased/non-payment of the annual fee |