DE2657826A1 - Einrichtung zur fehlererkennung und fehlerkorrektur im speichersystem einer dv-anlage - Google Patents
Einrichtung zur fehlererkennung und fehlerkorrektur im speichersystem einer dv-anlageInfo
- Publication number
- DE2657826A1 DE2657826A1 DE19762657826 DE2657826A DE2657826A1 DE 2657826 A1 DE2657826 A1 DE 2657826A1 DE 19762657826 DE19762657826 DE 19762657826 DE 2657826 A DE2657826 A DE 2657826A DE 2657826 A1 DE2657826 A1 DE 2657826A1
- Authority
- DE
- Germany
- Prior art keywords
- error
- syndrome
- signal
- bit
- signals
- 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.)
- Withdrawn
Links
- 238000001514 detection method Methods 0.000 title claims description 20
- 238000012937 correction Methods 0.000 title description 31
- 208000011580 syndromic disease Diseases 0.000 claims abstract description 59
- 230000004807 localization Effects 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims 2
- 230000000903 blocking effect Effects 0.000 claims 1
- 238000013507 mapping Methods 0.000 abstract 1
- 239000011159 matrix material Substances 0.000 description 44
- 238000000034 method Methods 0.000 description 9
- 125000004122 cyclic group Chemical group 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
-
- 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
-
- 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
- H03M13/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- 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
- H03M13/1575—Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
5202613 Ge 22. Dezember 1976
HONEYWELL INFORMATION SYSTEMS INC.
200 Smith Street Waltham, Mass., USA
Einrichtung zur Fehlererkennung und Fehlerkorrektur im Speichersystem einer DV-Anlage.
Die Erfindung betrifft eine Einrichtung nach dem Gattungsbegriff
des Anspruchs 1. DV-Systeme wurden in den zurückliegenden Jahren
in Richtung auf einen höheren Wirkungsgrad und größere Systeme entwickelt, wobei sich ihr Speichersystem als kritische Größe
erwiesen hat. Die Weiterentwicklung von DV-Systemen hat zur Entwicklung sehr großer Speichersystem=geführt. Unter den Anforderungen
an ein Speichersystem steht das Erfordernis äußerst hoher Genauigkeit mit an der Spitze. Da diese Anforderung im allgemeinen
kostend rks ame Lösungen für den Einsatz fehlerfreien Komponenten und Organisationsformen überschreitet, wurden Speichersysteme
zumeist mit Fehlererkennungs- und -korrektureinrichtungen EDAC (error detection and correction) versehen. Hierbei stellt
die Fehlererkennungseigenschaft das Vorhandensein eines Fehlers im zugeordneten Speichersystem fest, während die Korrektureigenschaft
für die Fehlerkorrektur sorgt. Bekannte EDAC-Einrichtungen ermöglichen die Erkennung von Ein- und Zwei-Bit-Fehlern,
jedoch die Korrektur nur für Ein-Bit-Fehler. Dies bedeutet, daß Doppel-Bit-Fehler zwar festgestellt, jedoch nicht
korrigiert und Mehr-Bit-Fehler, d.h. Fehler, die in mehr als zwei Bits pro Wort auftreten, überhaupt nicht festgestellt
werden können. Die Wirksamkeit bekannter EDAC-Einrichtungen
709828/0615
ist umgekehrt proportional zur Anzahl der in einem Wort auftretenden
Fehler. Weist das Wort keinen Fehler auf, so ergibt sich kein Problem, weil Fehler weder festgestellt noch korrigiert
werden müssen. Somit wird ein fehlerfreies Wort vom Speichersystem geliefert. Ist ein Fehler pro Wort vorhanden, so kann
dieser sowohl festgestellt als auch korrigiert werden t und das Speichersystem liefert ebenfalls ein fehlerfreies Wort. Zwei
Fehler in einem Wort werden zwar festgestellt, jedoch nicht
korrigiert. Dies führt zur Erzeugung eines Fehlersignals,
welches andere Arten der Korrektur erfordert, beispielsweise
einen Software-Eingriff oder ein Anhalten des Systems. Die
letztgenannte Art der Fehlerkorrektur ist äußerst kostspielig, und man ist deshalb bestrebt, ihr Auftreten so weit wie möglich zu verringern.
werden müssen. Somit wird ein fehlerfreies Wort vom Speichersystem geliefert. Ist ein Fehler pro Wort vorhanden, so kann
dieser sowohl festgestellt als auch korrigiert werden t und das Speichersystem liefert ebenfalls ein fehlerfreies Wort. Zwei
Fehler in einem Wort werden zwar festgestellt, jedoch nicht
korrigiert. Dies führt zur Erzeugung eines Fehlersignals,
welches andere Arten der Korrektur erfordert, beispielsweise
einen Software-Eingriff oder ein Anhalten des Systems. Die
letztgenannte Art der Fehlerkorrektur ist äußerst kostspielig, und man ist deshalb bestrebt, ihr Auftreten so weit wie möglich zu verringern.
Die Schwierigkeit bei der Ausdehnung von EDAC-Fähigkeiten auf Doppelfehlerkorrektur und Dreifachfehlererkennung bei Zufallsfehlern und darüberhinaus liegt in der Bereitstellung wirksamer
Decodiervorrichtungen für diese Funktion. Einfache und schnelle Codierschemata sind bekannt, welche eine erweiterte EDAC-Funktion
ermöglichen. Solche Codierschemata werden in Verbindung mit Goppa-Codes sowie Bose-Chaudhuri-Hocquenghem (BCH-Codes)
benutzt und sind ähnlich den Codierschemata, die mit den Hamming-Codes oder modifizierten Hamming-Codes arbeiten. Solche Codes werden im einzelnen beispielsweise beschrieben von E.R. Berlekamp in "Algebraic Coding Theory", McGraw-Hill, New York 1968 sowie von W.W. Peterson and E.J. Weldon in"Error Correction Codes", 2. Ausgabe MIT Press, Cambridge, Massachusetts 1972. Codierer zur Anwendung dieser Codierschemata können im allgemeinen zur Verfügung gestellt werden. Jedoch sind die Decodiereinrichtungen komplex, langsam und von geringem Wirkungsgrad. Sie wurden im allgemeinen mit einem Decodier-Algorithmus betrieben, welcher ein sequentielles Absuchen vorsieht. Eine, direkte Decodierung ist nicht angewandt worden.
benutzt und sind ähnlich den Codierschemata, die mit den Hamming-Codes oder modifizierten Hamming-Codes arbeiten. Solche Codes werden im einzelnen beispielsweise beschrieben von E.R. Berlekamp in "Algebraic Coding Theory", McGraw-Hill, New York 1968 sowie von W.W. Peterson and E.J. Weldon in"Error Correction Codes", 2. Ausgabe MIT Press, Cambridge, Massachusetts 1972. Codierer zur Anwendung dieser Codierschemata können im allgemeinen zur Verfügung gestellt werden. Jedoch sind die Decodiereinrichtungen komplex, langsam und von geringem Wirkungsgrad. Sie wurden im allgemeinen mit einem Decodier-Algorithmus betrieben, welcher ein sequentielles Absuchen vorsieht. Eine, direkte Decodierung ist nicht angewandt worden.
709828/0615
Aufgabe der Erfindung ist es. folglich, eine Einrichtung für die Doppelfehler-Korrektur DEC sowie die Dreifachfehler-Erkennung TED
im Speichersystem einer DV-Anlage zu schaffen. Insbesondere soll eine wirkungsvolle Decodiereinrichtung für die Doppelfehler-Korektur
angegeben werden. Diese Aufgabe wird gelöst durch die im Anspruch 1 gekennzeichnete Erfindung. Vorteilhafte Ausgestaltungen
ergeben sich aus den Unteransprüchen.
Die Erfindung wird nachfolgend anhand einiger Tabellen und der Zeichnungen im einzelnen beschrieben. Dabei zeigt
4 Tabelle I eine Darstellung eines Galois-Feldes GF(2 ) für ein
4 Maximalexponenten-Generatorpolynom g(x)=x +x+1, wobei in diesem
Zusammenhang auf die Parallelanmeldung P 26 "Schaltungsanordnung zur Multiplikation beliebiger Feldelemente
in einem Galois-Feld GF(2m) verwiesen (5202613 Ge) wird;
Tabelle II eine Η-Matrix für einen zyklischen Einzelfehler-Korrektur-Code
(SEC) mit dem Polynom g(x) gemäß Tabelle I; Tabelle III eine Ή-Matrix zum Codieren eines Doppelfehler-
Korrektur-BCH-Code (DEC-BCH) mit (g (x) =m1 (x)iru(x) , wobei im
4 4 "} ?
m1(x)=x +x+1 und m3(x)=x +x +x +x+1;
Tabelle IV eine Η-Matrix zum Decodieren eines DEC-BCH-Codes mit dem Polynom g(x) gemäß Tabelle III.
Tabelle V zeigt wie die Η-Matrizen der Tabellen III und IV zur Einfügung eines Paritäts-Prüfbits erwertert werden, um eine
Dreifachfehler-Erkennung TED zu ermöglichen.
In den Zeichnungen zeigt
Fig. 1a eine Η-Matrix zum Codieren eines DEC-TED-BCG-Codes (double error correction/triple error detection/
Bose-Chaudhuri-Hoqquenghem-Code); Fig. Ib ein Blockschaltbild eines Codierers, der nach der
Η-Matrix gemäß Fig. 1a arbeitet;
Fig 2.a eine Η-Matrix zum Decodieren eines DEC-TED-BCH-
Codes;
Fig. 2b ein Blockdiagramm eines Syndrom-Rechners, welcher die Η-Matrix gemäß Fig.. 2a anwendet und in der Schaltung gemäß Fig. 3 eingesetzt wird;
Fig. 2b ein Blockdiagramm eines Syndrom-Rechners, welcher die Η-Matrix gemäß Fig.. 2a anwendet und in der Schaltung gemäß Fig. 3 eingesetzt wird;
709828/0615
Fig. 3 ein Blockschaltbild eines Direktdecoders;
Fig. 4 eine Werttabelle, die in den Umsetzern gemäß Fig.3
zur Umsetzung von S1 in S1 Anwendung findet;
Fig. 5 eine Werttabelle, welche im Umsetzer gemäß Fig. 3
Fig. 5 eine Werttabelle, welche im Umsetzer gemäß Fig. 3
zum Auffinden von B/S1 dient; und
Fig. 6 ein Blockschaltbild der in Fig. 3 eingesetzten
Fig. 6 ein Blockschaltbild der in Fig. 3 eingesetzten
Multiplizierer.
Theoretische Erläuterung der Betriebsweise
Zum besseren Verständnis der Betriebsweise sollen zunächst die Grundzüge der zyklischen SEC- und BEC-Codes erläutert werden.
Ergänzend sei auf die oben erwähnten Veröffentlichungen verwiesen.
In den meisten DV-Systemen ist die Information in Worten organisiert. Die Fehlererkennung und Korrektur wird angewandt
auf jedes Wort, welches zu einem Speicher gesandt wird oder von einem Speicher kommt. Jedes Wort enthält k Informations-Bits.
Codiervorrichtungen fügen m Prüfbits zu den k Informationsbits hinzu, sobald sie zum Speicher übertragen werden, woraus sich
eine Gesamtlänge (natürliche Länge) jedes Code-Worts von n=k+m Bits ergibt. Dies gilt für jedes Codewort, wenn es in einem
Speicher gespeichert wird oder aus dem Speicherbereich einer
Speichereinrichtung kommt. Ein Codewort C von der Länge η kann als ein Polynom C (x) vom Grad n-1 angesehen werden, bei dem
das erste Bit in der Folge das höchstwertige Bit MSB (most
significant bit) ist. Die k Informationsbits eines Codeswortes können irgendeine Kombination von Werten oder Größen darstellen. Die m Prüfbits werden den k Informationsbits derart zugefügt, daß C(x) ein Vielfaches von g(x) ist, d.h. C(x)=Q(x)g(x).
Hierin bedeutet Q(x) ein Polynom mit keinen Bestandteil vom
Grad geringer als χ , wahrend g(x) den Grad m hat, d.h. sein Grad entspricht der Anzahl der Prüfbits. All diese Polynome C(x) bilden einen zyklischen Code, der als (n,k)-Code bezeichnet wird. Das Polynom g(x) wird als Generator-Polynom bezeichnet, wobei jedes Codewort C(x) ein Vielfaches des Generatorpolynoms ist.
Speicher gespeichert wird oder aus dem Speicherbereich einer
Speichereinrichtung kommt. Ein Codewort C von der Länge η kann als ein Polynom C (x) vom Grad n-1 angesehen werden, bei dem
das erste Bit in der Folge das höchstwertige Bit MSB (most
significant bit) ist. Die k Informationsbits eines Codeswortes können irgendeine Kombination von Werten oder Größen darstellen. Die m Prüfbits werden den k Informationsbits derart zugefügt, daß C(x) ein Vielfaches von g(x) ist, d.h. C(x)=Q(x)g(x).
Hierin bedeutet Q(x) ein Polynom mit keinen Bestandteil vom
Grad geringer als χ , wahrend g(x) den Grad m hat, d.h. sein Grad entspricht der Anzahl der Prüfbits. All diese Polynome C(x) bilden einen zyklischen Code, der als (n,k)-Code bezeichnet wird. Das Polynom g(x) wird als Generator-Polynom bezeichnet, wobei jedes Codewort C(x) ein Vielfaches des Generatorpolynoms ist.
709828/0615
Die Gruppe aller Polynome C(χ) in einem gegebenen zyklischen
Code können als Zeilenraum einer Matrix G(x) definiert werden, d.h. jede lineare Kombination der Zeilen von G(x) bilden ein
Polynom C(.x). Es läßt sich somit eine Generatormatrix G ableiten, welche jedes mögliche Codewort C definiert oder erzeugt.
Eine m χ η Matrix H ist derart definiert, daß GH = (pi , d.h.
der Zeilenraum der Matrix H ist der Null-Raum von G und umgekehrt.
Da jede Zeile von G orthogonal zu jeder Reihe von H
T
liegt, gilt G.H =0, wobei G. die i-te Reihe von G ist. Verallgerneinert man diese Beziehung, so ist jede lineare Kombination
liegt, gilt G.H =0, wobei G. die i-te Reihe von G ist. Verallgerneinert man diese Beziehung, so ist jede lineare Kombination
der Zeilen von G orthogonal zu H, d.h. CH =0 für alle Codewörter C. Die Codier- und Decodiereinrichtungen basieren sämtlich
auf H und g(x), ohne direkten Bezug zu G. Folglich kann eine Methode zur Ableitung von H unmittelbar aus g(x) angewandt
werden. Jedoch ist eine zusätzliche algebraische Notation erforderlich.
Das Generatorpolynom g(x) definiert ein Galois-Feld GF(2m),
welches durch ein Feld von Polynomen über GF(2) Modulo g(x) darstellbar ist. Jedes Feldelement ist eine Restklasse von
Polynomen derart, daß je zwei Polynome in der gleichen Restklasse Modulo g(x) äquivalent sind. Die Restklasse, welche χ
enthält, wird mit ζ bezeichnet. Folglich ist das Feldelement ζ eine Wurzel von g(x), d.h. g(z)=O. Wurde g(x) so ausgewählt,
daß es ein Maximalexponentenpolynom ist, dann ist ζ ein Basiselement, d.h. ζ hat den Rang 2 -1. Folglich stellen die
Potenzen von z, d.h. ζ bis zn mit n=2 η unterschiedliche
von Null verschiedene Feldelemente in GF(2m) dar. Die Tabelle I
4
zeigt GF(2 ) für ein Maximalexponenten-Generatorpolynom g(x)=x +x+1.
zeigt GF(2 ) für ein Maximalexponenten-Generatorpolynom g(x)=x +x+1.
709828/0615
Z = | 3 ζ |
1 | Z | ζ2 | ζ+1 | +1 | = 000 Γ | = Z |
ζ1 = | ζ2+ζ | +1 | 0010 | |||||
2 Z **■ |
= 0010 | |||||||
3 ζ = |
ζ3+ζ2 | +ζ+1 | 1 | = 1000 | ||||
4 | Z | ζ2 +1 | = 0011 | |||||
ζ5 | +ζ | = oho | ||||||
6 ζ = |
ζ3 | ζ2+ζ+1 ζ |
= 1100 | |||||
ζ7 = | ζ3+ζ2+ | ζ+1 | = ion | |||||
ζ8 = | ζ3+ζ2+ | = 0101 | ||||||
ζ9 = | ζ3+ζ2 | = 1010 | ||||||
ζ10« Ζ12** |
ζ3 | = 0111 = 1110 |
||||||
= 1111 | ||||||||
Z13I | = 1101 | |||||||
ζ14= | = ίσοι | |||||||
15 | 0 | |||||||
ζ = | ||||||||
Die Matrix H kann nunmehr als Funktion g (χ) entwickelt werden.
Für den Fall der Einzelfehlerkorrektur (SEC) besteht die Matrix H aus allen Potenzen νοηζ in der Reihenfolge seiner n=2 -1 Spalten,
wobei das höchstwertige Bit MSB am unteren Rand erscheint. Die nachfolgende Talle II zeigt die Matrix H für einen zyklischen
Code zur Einzelfehlerkorrektur SEC, wobei g(x) zur Ableitung der Tabelle I benutzt wurde. Da m=4 gilt n=2m-1=15 und k=11.
Tabelle II ί H = \ζ° ζ1 ζ2 ζ3 ζ4
z5 z6 z7 z8 z9 z10 z11 z12 z13 Z14J
Ί 0 0 0 1 0 0 1 10 1
0 10 0 110 10 11
0 0 10 0 1 10 10 1
0 0 0 10 0 1 10 10
0 | 1 | 1 | 1 |
1 | 1 | 0 | 0 |
1 | 1 | 1 | 0 |
1 | 1 | 1 | 1 |
709828/0615
Somit erzeugt ein Generator-Polynom g(x) 4. Ordnung einen
(.15/11) -Code, d.h. einen Code mit maximal 11 Informationsbits.
Die ersten m Spalten der Matrix H, nämlich, ζ bis ζ / entsprechen
den m Prüfbits. Jede Spalte enthält nur einen Wert "1"
und m-1 "0". Die übrigen k Spalten der Matrix H entsprechen den k Informationsbits. Diese Eigenschaft ergibt sich aus Tabelle II
und gilt allgemein für alle Generatorpolynome g(x). Jede Zeile der Matrix H stellt eine Paritätsgleichung dar, die eine geradzahlige
Parität zwischen einem der m Prüfbits und dem ausgewählten Informationsbit definiert, wie dies durch die "1" an der
entsprechenden Stelle der Zeile angedeutet ist. Folglich wird H als Paritätsprüfmatrix bezeichnet. Diese Beziehungen werden als
Grundlage für das Codieren und Decodieren verwendet.
Das Codieren erfolgt durch Hinzufügen von m Prüfbits zu den k Informationsbits, um dadurch das komplette Codewort C mit den
oben erwähnten Eigenschaften zu erhalten, insbesondere CH =0.
Ein Kombinationslogik-Codierer besteht aus m Paritäts-Baumstrukturen,
von denen jede eine der· m Paritätsgleichungen zur Erzeugung eines der entsprechenden m Prüfbits aufweist. Die
Anwendung läßt sich leicht aus einer Betrachtung der Matrix H bestimmen. Jede Zeile von H identifiziert durch die Werte "1"
die Informationsbits, welche in eine Paritäts-Baumstruktur einzugeben
sind, d.h. einen Summierer, um das zu dieser Reihe gehörige Prüfbit zu erzeugen. Die m Prüfbits werden dann den k
Informationsbits hinzugefügt, um hieraus ein Codewort C von der Länge η zu erhalten, welches im Speicher abgelegt wird.
Beim Zugriff zum Speicher ist es notwendig, die im Speicher vorhandenen
Worte zu decodieren. Hierdurch wird aus dem empfangenen Wort R das korrigierte Codewort C abgeleitet. Der Decodiervorgang
besteht aus zwei Abschnitten, nämlich der Berechnung eines Syndroms, aus welchem die Fehler erkannt werden können,
und aus der Decodierung des Syndroms zwecks Fehlerkorrektur.
Ein Syndrom S ist eine Größe, welche im Fall der Einzelfehlerkorrektur
SEC durch Verwendung von Paritäts-Baumstrukturen
709828/0S15
ähnlich den bei der Codierung benützten Strukturen berechnet
werden kann. In der Praxis kann die zum Codieren verwendete Hardware auch für die Berechnung des Syndroms S eingesetzt
werden, wobei zusätzliche Hardware zum Einfügen der Prüfbits in die Berechnung erforderlich ist. Nach Erstellung des Syndroms
wird es in folgender Weise zur Erkennung der Fehlerposition eingesetzt werden. Das empfangene Wort R läßt sich als Summe des
Original-Codeworts C und eines Fehlerworts E auffassen, d.h. R=C+E. Allgemein gesprochen ist das Syndrom S die Summe derjenigen
Spalten der Matrix H, welche den fehlerhaften Bits im empfangenen Wort R entsprechen. Ist E=O so sind keine Fehler
aufgetreten und R=C, d.h. S ist Null. Für einen Einzelfehler in der Position i gilt S=Z1. Wenn also ein einzelner Fehler aufgetreten
ist, so zeigt das Syndrom S auf das fehlerhafte Bit, indem es auf diejenige Spalte der Matrix H hinweist, welche der
fehlerhaften Bit-Position zugeordnet ist. Dieses Bit kann dadurch korrigiert werden, daß man das Syndrom S von einer m-Bit-Größe
zu einer 1-von-n-Bitgröße, genannt das Fehlerwort E, decodiert, welches eine "1" an der Position des Fehlers aufweist.
Das Fehlerwort E besteht überall aus "0", mit Ausnahme dieser "1" an der Fehlerposition. Damit ist das ursprüngliche Codewort
C erstellt.
Geht man nunmehr zur Doppelfehlerkorrektur DEC über, so ist zu bemerken, daß die BCH-Codes eine Klasse zyklischer Codes mit der
Möglichkeit von Mehrfachfehler-Korrektur sind. Die Erfindung benutzt einen BCH-Code, wobei die Dreifachfehlererkennung TED
durch eine Erweiterung des DEC-BCH-Codes mit übergreifender Parität abgeleitet wird.
Ein DEC-BCH-Code hat ein Generatorpolynom g(x) in der Form
g(x)=m..(x) m_ (x) , wobei m.. (x) und iru (x) von der Ordnung m sind
und Hi1 (x) ein Mäximalexponenten-Polynom ist. ζ ist ein Basiselement im Galois-Feld GF (2 ), welches die Restklasse von iru (x)
bezeichnet, die χ enthält, ζ ist somit eine Wurzel von m.. (x) .
Weiterhin ist m.(x) das Minimalpolynom von z. Sobald m.(x)
709828/0816
-jr-
ausgewählt ist, wird m_ (χ) so ausgewählt, daß es das Minimal-
3
polynom von ζ ist. Da g(x) von der Ordnung 2m ist, enthalten die Codewörte 2m Prüfbits; die natürliche Länge der Codewörter ist n=2 -1. Die Anzahl der Informationsbits k ist n-2m. Ähnlich der Definition von ζ in Bezug auf m.. (x) wird ein Element γ definiert in Bezug g(x). y bezeichnet die Restklasse von g(x), welche χ enthält und ist somit eine Wurzel von g(x).
polynom von ζ ist. Da g(x) von der Ordnung 2m ist, enthalten die Codewörte 2m Prüfbits; die natürliche Länge der Codewörter ist n=2 -1. Die Anzahl der Informationsbits k ist n-2m. Ähnlich der Definition von ζ in Bezug auf m.. (x) wird ein Element γ definiert in Bezug g(x). y bezeichnet die Restklasse von g(x), welche χ enthält und ist somit eine Wurzel von g(x).
Die Paritätsprüfmatrix H kann in zwei gleichwertigen Formen dargestellt
werden. Die Codieranwendung basiert auf der einen Form,
während die Decodieranwendung auf der anderen Form basiert. Eine sowohl für Codierung als auch für Decodierung von Einzelfehlern
dienende Form der Matrix H zeigt Tabelle II. Eine Codierform der Matrix H für einen Code natürlicher Länge besteht aus η
Spalten, welche die ersten η Potenzen von y sind. Diese Form der
4
Matrix H ist für rru (x)=x +x+1 und m_(x)=: nachfolgenden Tabelle III wiedergegeben.
Matrix H ist für rru (x)=x +x+1 und m_(x)=: nachfolgenden Tabelle III wiedergegeben.
4 4 3 2
Matrix H ist für rru (x)=x +x+1 und m_(x)=x +x +x +x+1 in der
y°. γ1 γ2 γ3 y4 y5 y6 y7 y8 γ9 γ" y ' y~ y~ y
10 „11 12 13 „14
100000001 10 01 00000001 1 0010000000 1
0001 0000000 000010001 10 0000010001 1 0 0 0 0 0 0 10 1 1 1
00000001 101
1 | 0 | 0 | 0 |
0 | 1 | 0 | 0 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 |
1 | 1 | 1 | 0 |
0 | 1 | 1 | 1 |
0 | 0 | 1 | 1 |
0 | 0 | 0 | 1 |
709828/0B1B
Die Decodierform der Matrix H besteht aus einer oberen Hälfte H1 und einer unteren Hälfte H3. Die η Spalten von H1 sind die
aufeinanderfolgenden Potenzen von z, d.h. ζ bis ζ . Die Spalten, von H3 sind- die aufeinanderfolgenden Potenzen von ζ ,
d, n.'z , ζ , ζ ,... Jede Spalte von H3 ist die dritte Potenz
der darüberliegenden Spalte in H1. Diese Form der Matrix H ist
4 4 3 2
für m=4 mit m.. (x)=x +x+1 und m.,(x)=x +x +x +x+1 in der folgenden
Tabelle IV dargestellt.
H3
z° z1 z2 z3 z4 z5 z6 z7 z8 z9 z10 z11 z12 z13 z14
z°"z3 z6"z9 z12z° z3"z6 Z9V2^0 s3""*6 z9 2^
1 | O | O | 0 | 1 | O | O | 1 | 1 | O | 1 | O | 1 | 1 | 1 |
0 | 1 | 0 | 0 | 1 | 1 | O | 1 | O | 1 | 1 | Ö | 1 | O | 0 |
O | O | 1 | 0 | O | 1 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 |
0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | O | 1 | 0 | 1 | 1 | 1 | 1 |
1 | 0 | 0 | 0 | 1 | 1 | 0 | O | 0 | 1 | O | O | O | O | 1 |
O | O | 0 |
•
/ |
•
I |
0 | 0 | 0 | 1 | 1 | O | O | O | 1 | 1 |
O | O | 1 | 0 | 1 | 0 | 0 | 1 | O | 1 | O | 0 | 1 | O | 1 |
O | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Die beiden Syndrome S1 und S3 müssen während des Decodiervorgangs berechnet werden und werden wie folgt ausgedrückt
S2=
S3=
S3=
3i
709828/0615
wobei 0 ^ i £ n-1 und i die fehlerhaften Bit-Positionen bezeichnet.
Im Fall eines Doppelbitfehlers führt die obengenannte Gleichung zu
wobei i und j die beiden Fehlerhaften Bit-Positionen bezeichnen und i kleiner ist j. Diese Gleichungen liefern zwei linear unabhängige
Gleichungen für zwei Unbekannte. Folglich können i und j in Abhängigkeit von S1 und S3 angegeben werden, jedoch nicht
explizit.
Die Decodierung der Syndrome zwecks Auffindung der fehlerhaften Bit-Positionen ist Hauptaufgabe bei einer Doppelfehlerkorrektureinrichtung
im BCH-Code. Ein neuer Decodieralgorithmus wird hierfür eingeführt. Bekannte Einrichtungen arbeiten mit einem
sequentiellen Absuchen nach den Unbekannten. Obwohl auf diese Weise ein Ergebnis erzielt werden kann, ist ein solches schrittweises
Absuchen langsam und mühsam und für Hauptspeicheranwendungen ungeeignet. Die vorliegende Erfindung sieht deshalb eine
direkte Decodierung vor, d.h. einen Decodierer, welcher eine Kombinationslogik verwendet. Dies stellt einen bedeutenden Fortschritt
gegenüber dem Stand der Technik dar.
Die Fähigkeit der Dreifachfehlererkennung wird durch Erweiterung des DEC-BCH-Codes durch eine einfache geradzahlige Parität über
das gesamte BCH-Codewort erreicht. Ein Paritätsbit wird dem Codewort hinzugefügt und erhöht die Gesamtanzahl der Prüfbits
auf 2m+1.. Das BCH-Codewort von der Länge m ist von der Parität unabhängig und ist eingebaut in das Paritäts-Codewort von der
Länge n+1. Folglich bleibt beim BCH-Codieren und Decodieren das
Paritätsbit unberücksichtigt. Für die Berücksichtigung der Parität wird zusätzliche Hardware benutzt. Die Parität führt zu
einer Änderung der Matrix H gemäß folgender Tabelle V.
709828/0615
ο ο
O O O O O
O 1111111111111111
Rest entspricht der zuvor gezeigten Matrix H
(Codierung und Decodierung)
Die am linken Rand der Matrix H hinzugefügte Spalte mit 2m-Werten
"O" hat keinen Einfluß auf die 2m-Paritätsgleichungen, welche
durch die Zeilen der obenerwähnten Matrixformen H dargestellt werden. Diese Eigenschaft zeigt, daß der BCH-Prozeß durch die
Parität nicht geändert wird. Die Zeile von m+1 Werten "1", die am unteren Rand der Matrix H hinzugefügt wurde, stellt die
Paritätsgleichung über alle n+1 Bits des Paritäts-Codeworts dar.
Arbeitsweise des Ausführungsbeispiels
Die nachfolgend erläuterte Doppelfehlerkorrektur bei EDAC wird
vorzugsweise in Verbindung mit einem Hauptspeichersystem angewandt. Ein Hauptspeicher zeichnet sich durch eine schnelle parallele
Datenübertragung aus, wobei jede übertragung ein EDAC-Wort umfaßt. Die Hauptspeicher-Fehlererkennung und -korrektur bringt
vorzugsweise Codierer und Decodierer zur Anwendung, die nur Kombinationslogiken verwenden. Der Codier- und der Decodiervorgarcj
709828/0615
werden in einem einzigen Taktzyklus, also direkt in dem Zyklus durchgeführt, der für die Datenübertragung erforderlich ist.
Die nachfolgend erläuterte Fehlererkennung und Korrektur bezieht sich auf einen (16,7)-Code,, welcher 7 Informationsbits,
8 BCH-Prüfbits und ein Paritätsprüfbit in jedem Wort enthält.
Das Verfahren gemäß der Erfindung ist jedoch allgemein anwendbar, also auch für(n,k)-Codes oder verkürzte (n,k)-Codes, wo
n'< η ist. Im allgemeinen ist n=1+2m+k, wobei k der Anzahl der Informationsbits und m dem kleinsten ganzzahligen Wert entspricht,
so daß n* < 2m-1 gilt. Zum Beispiel würde die Fehlererkennung
und-korrektur bei einem Hauptspeicher im Honeywell-Rechnersystem
der Serie 6000 einen ( 87,72)-Code verwenden. Jedes Codewort besteht dort aus zwei 36-Bit-Maschinenworten mit 72
Informationsbits, 14 Prüfbits und 1 Paritätsbit.
Ein Generatorpolynom g(x) für den (16,7)-Code lautet
g (X)=In1 (x)m3(^=x4+x3+x+1)=x8+x7+x6+x4+1 .
Die Codierform der Paritätsmatrix für diese Generatorpolynom g(x) ist in Figur 1a dargestellt. Im allgemeinen ist die Codierform
der Paritätsprüfmatrix eine (2m+1) χ (η)-Matrix. Einen ParitätsBaumstruktur-Codierer, aufgebaut auf dieser Matrix, zeigt
Figur 1b. Es handelt sich um einen direkten Codierer,der das Codieren in einem Taktzyklus durchführt. Andere Bauformen für
den Codierer lassen sich hieraus ableiten.
Der Direktcodierer gemäß Figur 1b besteht aus 9 Paritäts-Baumstrukturblocks
10 bis 18.-Allgemein hat ein solcher Codierer
2m+1 Paritäts-Baumstrukturblocks. Der Codierer empfängt 7 Informationsbits
ig bis i14 und erzeugt ein 16-Bit-Codewort, bestehend
aus einem Paritätsbit p, 8 BCH-Prüfbits cQ bis C7 sowie 7 Informationsbits
ig bis I14. Jeder der Blöcke 10 bis 18 führt eine
Exklusiv-ODER-Verknüpfung seiner Eingangssignale durch, um hieraus ein Ausgangssignal abzuleiten. Die Blocks 10 bis 17 erzeugen
jeweils eines der Prüfbits cQ bis C7, indem sie die
Untergruppe der Informationsbit ig bis I14 verarbeiten. Diese
709828/0 615
'At-
speziellen Informationsbits werden durch die in Figur 1a dargestellte
Η-Matrix bestimmt. Beispielsweise stellt c die Exklusiv-ODER-Verknüpfung der Bits iR/ iq , i* η dar entsprechend
der Summe über GF(2). Dies sind die Bit-Positionen mit einem Wert "1" in der ersten Zeile der Η-Matrix in Figur 1a. Die
anderen Prüfbits haben ähnliche Beziehung, welche durch die
entsprechenden Zeilen der Codiermatrix H bestimmt sind. Das Paritätsbit wird vom Block 18 erzeugt, welche eine Exklusiv-ODER-Verknüpfung
der Prüfbits c bis C7 und der Informations
bit iö bis i. . herbeiführt.
Der Direktdecoder besteht aus zwei Baugrauppen: Dem Syndrornrechner
und dem Syndromdecoder, welche beide mit einer Kombinationslogik ausgestattet sind. Der Syndromrechner hat eine
Paritats-Baumstruktur, während der Syndromdecoder, wie oben erwähnt,
eine Direktdecodiergleichung zur Fehledbkalisierung löst.
Die allgemeine Form der Syndrome S1 und S3 für Doppelfehlerkorrektur
ist gegeben durch die Gleichungen
wobei z1 und 7? die fehlerhaften Bitpositionen bezeichnen. Die
Gleichungen können miteinander kmbiniert werden und ergeben somit die Fehlerlokalisiergleichung (FLG)
S3/S13+1=B/Si+(B/S1)2
welche zwei durch B dargestellte Wurzeln hat: z1 und z-'. Die
linke Seite der Gleichung kann aus den Werten für S1 und S3
berechnet werden. Es lassen sich zwei Werte für B/S1 finden, welche die obengenannte Gleichung erfüllen. Dies kann beispielsweise
durch Absuchen einer Tabelle geschehen.
709828/0 6 15
Ein Direktdecoder ist in Figur 3 wiedergegeben. Eine solche Ausführungsform
ist vollständig kombinatorisch und erzeugt ein korrigiertes Codewort innerhalb eines Taktzyklus. Soweit nicht
anderweit beschriftet, haben die Datenwege in den Zeichnungen eine Breite von m Bits. Im Fall des (16,7)-Codes ist m=4|und
die Datenwege sind 4 Bits breit. Das vom Speicher empfangene Wort R enthält η Bits, welche parallel dem Syndromreeimer 30
zugeführt werden.
Die Decodierform der Matrix H für den (16,7)-Code ist in Figur
2a dargestellt. Figur 2b zeigt einen Svndromrechner 3O7 welcher
diese Matrix verwendet. Er besteht aus 2m+1 Blöcken 20 bis 28. Das empfangene Wort R wird durch 16 Bits dargestellt, welche
als übertragenes Codewort C die gleiche Notation verwenden, mit Ausnahme des Primärsymbols in der Darstellung für R. Die Primärsymbole
zeigen, daß bei potentiellen Fehlern ein Bit des empfangenen Wortes R nicht dem entsprechenden Bit des übertragenen
Wortes C gleichen kann. Jeder der Blöcke 21 bis 28 bewirkt eine Exklusiv-ODER-Verknüpfung seiner Eingangssignale, um
das Ausgangssignal zu liefern. Die Blöcke 20 bis 23 erzeugen je
eines der Signale S1 _ bis S1 3, wobei S1= s- Λ 21 - S1 o s.. ,
I/O I/ \ g\J
I / ' ' t ^
If-J
Die Blöcke 24 bis 25 erzeugen Signale S3 Q bis s, ^
S3=[-So Q S3 1 S3 2 S3 3] " Der ^00^ 28 erzeugt das Paritäts-Prüfsignal
s , indem er alle Bits des empfangenen Wortes R einer Exklusiv-ODER-Verknüpfung unterwirft.
Wie Figur 3 zeigt, erzeugt der Syndromrechner 30 ein Syndrom S1
und ein Syndrom S3, welche den Blöcken 32 bzw. 34 zugeführt werden,
welche als Nicht-Null-Detektoren arbeiten. Ein Syndrom gleich
Hull bedeutet, daß kein Fehler vorhanden ist. Ein Wert abweichend von Null zeigt an, daß ein Fehler festgestellt worden ist. Folglich
erzeugt das ODER-Gatter 36 ein Fehlererkennungssignal.
709 828/0615
Bestimmte Spezialfehler müssen an dieser Stelle erkannt werden,
weil der übrige Decoder sie nicht ordnungsgemäß verarbeiten kann. Zu diesen Fehlern gehören drei oder Mehr-Bitfehler, welche
dazu führen, daß eines der Syndrome gleich Null ist und das andere
ungleich Null. Das Exklusiv-ODER-Gatter 38 dient diesem Zweck und erzeugt ein Decodierfehlersignal. Andere Arten von
Fehlern liegen außerhalb der Korrekturfähigkeit dieses Decoders.
Ein 3 Bit-Fehler, welcher dazu führt, daß S1 und S3 von Null verschieden sind, wird von einem 1-Bitfehler unterschieden und
durch ein entsprechendes 'Signal in einem anderen Teil des Decoders gekennzeichnet, der später noch in Verbindung mit dem
Paritätsprüfsignal s beschrieben wird. Ein 4-Bitfehler, der
zur Folge hat, daß S1 und S3 von Null verschieden sind, sieht
wie ein 2-Bitfehler aus und wird als solcher unrichtig korrigiert.
Ein 5-Bitfehler wird entweder falsch korrigiert als ob er ein 1-Bitfehler sei oder er bleibt unerkannt oder er führt
zu einem Decodierfehler.
Das Syndrom S1 wird auch dem Umsetzer 40 zugeleitet, der dieses
in das Syndrom S1 umwandelt. Im Ausführungsbeispiel mit m=4 enthält der Umsetzer 40 eine Tabellen-Absuch-Einrichtung, die
im einzelnen anhand von Figur 4 beschrieben wird. Sie zeigt, wie die fünfzehn möglichen S1-Werte als Adresse für einen Festwertspeicher
ROM verwendet werden können. Die Adresse 0000 wird nicht benutzt, da sie dem Zustand,daß kein Fehler vorhanden
ist, entspricht. Der Inhalt des Festwertspeichers ROM besteht
_3
aus Worten, welche dem Syndrom S1 entsprechen. Alle Operationen
werden Modulo m1(x) durchgeführt und führen zu Ergebnissen,
welche Elemente des Galois-Feld GF (2 ) sind. Das Syndrom' S1 ist nicht für diesen Fall gekennzeichnet.
In Figur 3 entspricht der Block 60 einem Multiplizierer, der
_3 das Syndrom S3 von Syndromrechner 30 und das Syndrom S1 vom Umsetzer 40 erhält. Diese beiden Größen werden im Galois-Feld
GF(2m) multipliziert und erzeugen ein Wort entsprechend S3/S1
709828/0615
Figur 6 zeigt einen Multiplizierer für zwei Elemente im Galois-
4
Feld GF (.2 ) . Dies stellt einen Spezialfall eines Multiplizierers dar, der zwei beliebige Elemente im Galois-Feld GF (2 ) multipliziert. Hinsichtlich der Arbeitsweise eines solchen Multiplizierers sei auf die eingangs erwähnte Parallelanmeldung verwiesen (vgl. dort insbesondere Fig. 1), deren Inhalt erforderlichenfalls zur Erläuterung heranzuziehen ist.
Feld GF (.2 ) . Dies stellt einen Spezialfall eines Multiplizierers dar, der zwei beliebige Elemente im Galois-Feld GF (2 ) multipliziert. Hinsichtlich der Arbeitsweise eines solchen Multiplizierers sei auf die eingangs erwähnte Parallelanmeldung verwiesen (vgl. dort insbesondere Fig. 1), deren Inhalt erforderlichenfalls zur Erläuterung heranzuziehen ist.
Der Multiplizierer gemäß Figur 6 erhält als Eingangssignale zwei Elemente von GF (2 ), welche durch 4-.-Bit-Eingangssignale F und G
dargestellt sind. Der Multiplikand F besteht aus fQ/f1,f2,f3 mit
fQ als niedrigstwertigem Bit. Der Multiplikator G weist Bits
90/9-]/92'^3 au'ff wobei gQ das geringstwertige Bit ist. F und G
können als Polynome f(x) und g(x) angesehen werden. Die Blöcke 65 bis 6 7 haben den gleichen Aufbau. Sie multiplizieren ihre Eingangssignale
mit χ und erzeugen ein Ergebnis Modulo m,. (χ) , welches
folglich ebenfalls ein 4-Bit-Signal ist. Wie in der Parallelanmeldung
für den allgemeinen Fall beschrieben wurde, können die Blocks 65 bis 67 leicht durch ein System von Torschaltungen realisiert
werden. Beispielsweise läßt sich das Produkt χ f(x) darstellen
als Bits ho,h.,h2,h3 mit hQ als geringstwertigem Bit. Der
Block 65 schaltet die Signale wie folgt um: f.. nach h~ ,
f2 nach h3 und f ~ nach hQ sowie fQ und f3 durch das Exklusiv-ODER-Gatter
68 zur Erzeugung von h.. Die vier Bits von f(x) werden
dem Block 161 zugeleitet, welcher jedes dieser Signale mit gQ
verknüpft. Nur eines dieser Gatter ist in Fig. 6 wiedergegeben und mit 165 bezeichnet.Ih gleicherweise werden die vier Ausgangssignale
der Blöcke 65,66 und 67 den Blöcken 162, 163 bzw. 164 zugeführt und mit den Signalen g^,g2,g3 verknüpft. Die Ausgangssignale
der Blöcke 161 bis 164 sind der Einfachheit halber mit 1,2,3,4 bezeichnet. Alle vier Signale mit der Bezeichnung 1, d.h.
die geringstwertigen Bits werden dem Block 61 eingegeben. In gleicher Weise gelangen die Signale 2,3 und 4 zu den Blöcken 62,
63 bzw. 64. Die Blöcke 61 bis 64 bewirken eine Exklusiv-ODER-Verknüpfung
ihrer Eingangssignale und liefern Ausgangssignale k_
709828/0615
bis k3, wobei k das' geringstwertige Bit darstellt. Auf diese
Weise ergibt sich, FxG = K.
Kehrt man nunmehr zu Figur 3 zurück, so muß jetzt eine "1" der Größe S3/S1 hinzugefügt werden, um die linke Seite der Fehlerlokalisiergleichung
zu erhalten. Die Hinzufügung einer "1" entspricht dem Invertieren des geringstwertigen Bits einer Größe über
G(2) - was durch den Inverter 45 ausgeführt wird. Diese neue Größe wird nunmehr zur Erzeugung der Größe B/S1 der
Fehlerlokalisiergleichung benutzt; und zwar durch den Umsetzer 50. Wiederum wird als bevorzugte Ausführungsform des Umsetzers
eine Tabellenabsucheinrichtung, beispielsweise über einen Festwertspeicher
benutzt. Der Festwertspeicher für m=4 wird in Verbindung mit Figur 5 beschrieben. Das 4-Bit-Eingangssignal S3/S1 +1
kann als Adresse für den Festwertspeicher ROM 50 dienen. Die entsprechende Speicherstelle des Festwertspeichers ROM enthält
einen Wert B/S1, so daß B/S1+B/S1) gleich der durch die Fehlerlokalisiergleichung
angegebene Adresse ist. Bei geeigneter Wahl des Generatorpolynoms n., (x) ist das höchstwertige Bit der als
Speicher 51 dargestellten Adressgröße immer gleich Null. Auf diese Weise kann das höchstwertige Bit von der Adresse eliminiert
werden und man benötigt nur ein 3-Bit-Eingangssignal. Ein kleinerer
Festwertspeicher reicht aus. Die Eliminierung des höchstwertigen Bits aus der Festwertspeicheradresse hat weitere Vorteile.
Insbesondere kann derjenige Teil des Multiplizierers 60, welcher das höchstwertige Bit MSB der Größe S3/S1 berechnet,
d.h. der Block 64 mit der Leitung 4 und den entsprechenden Gattern, wegfallen. Wenn im allgemeinen Fall für m^4 der Wert
m. (x) .derart gewählt würde, daß die geringstwertigen Bits immer
gleich sind, so könnte derjenige Teil des Multiplizierers 60, der die geringstwertigen Bits LSB berechnet, also der Block 61,
mit der Leitung 1 und den zugehörigen Gattern ebenso wegfallen wie der Inverter 45, welcher den Wert "1" zur LSB-Position
addiert.
709828/061B
'te.
Die beiden Werte von B/S1 der Fehlerlokalisiergleichung unterscheiden
sich nur um 1. Folglich sind die geringstwertigen Bits
LSB des zugehörigen Speicherinhalts entweder "0" oder "1", je
nachdem ob za/Si oder z-'/Sl dort gespeichert ist. Folglich kann
diese als Spalte 56 gezeigte Position wegfallen und statt dessen wird eine "1" als LSB-Signal fest verdrahtet und die gesamte
Größe beliebig mit ζ /S1 bezeichnet.
Der Speicherplatz für die Null-Adresse im Festwertspeicher und die ganz linke Ausgangsspalte 52 werden für den Sonderfall
des Einzelbitfehlers verwendet. Die Adresse zum Festwertspeicher ROM ist Null,· wenn und nur wenn ein Einzelbitfehler im empfangenen
Wort R vorhanden ist. Durch Laden des Nulladressen-Speicherplatzes des Festwertspeichers mit Werten überall "0" ergibt sich ein
B/S1-Ausgangssignal 0001, da die Spalten 53, 54 und 55 den
Wert "0" haben und der Wert "1" durch die Hardware zur Verfügung gestellt wird. Dies erzeugt die Größen z1 und τ? , welche übereinstimmen
mit dem Fall des Einzelbitfehlers: Z1S=SI und z^=0. Die
linke Spalte des Festwertspeichers wird zur Identifizierung eines Einzelbitfehlers benutzt. Durch Laden einer "0" in den Nulladressen-Speicherplatz
und einer "1" in die am weitestens links liegenden Positionen aller übrigen Speicherplätze zeigt jene
mit Bitposition im Ausgang des Festwertspeichers einem von einem
Einzelbitfehler abweichenden Fehlerzustand an. Dieses Signal wird über das UND-Gatter 58 in Figur 3 geleitet. Das Paritäts-Prüfsignal
s aus dem Syndromrechner 30 zeigt eine ungerade Anzahl von Fehlern an. Die Kombination dieser beiden Signale
identifizieren einen Dreibitfehler. Das Signal vom Gatter zeigt deshalb Fehler an, welche nicht korrigierbar sind. Eine "1"
auf dieser Leitung läßt erkennen, daß das empfangene Wort R nicht korrigiert werden kann. Deshalb wird es zur Abschaltung
der Decodiernetzwerke 75 und 85 benutzt, damit keine falsche Korrektur stattfinden kann. Das Dreifachfehler-Erkennungssignal
steht anderen Teilen des Systems zur Verfügung.
In Figur 3 erhält der Multiplizierer 70 das Signal S1 vom Syndromrechner 30 sowie das Ausgangssignal vom Festwert speicher
50. Die im Festwertspeicher ROM gespeicherten Bits
709828/061 5
werden über die m-3 Leitungen 53,54..55 übertragen, hiervon
das höchstwertige Bit über die Leitung 53. Eine von der Hardware zur Verfugung gestellte "1" kommt über die Leitung 57 an.
Der Multiplizierer 70 multipliziert diese beiden Größsen miteinander und liefert als Ausgangssignal z' ,welches die erste
der beiden Fehlerpositionen identifiziert. Der Multiplizierer 70 hat den gleichen Aufbau wie der oben erläuterte Multiplizierer
60. Da das Eingangssignal ζ /S1 des Multiplizierers 70
ein Bit "1" in der geringstwertigen Position hat, kann derjenige Teil des Multiplizierers, welcher das geringswertige
Bit LSB von ζ verarbeitet, vereinfacht werden. Der Summierer ist ein Exklusiv-ODER-Netzwerk, welches die entsprechenden Bits
von S1 und ζ addiert, um hieraus -z? abzuleiten, welches die
zweite Fehlerposition kennzeichnet. Im Fall eines Einzelfehlers mit ΖΧ/31=Ο...01 gilt ZX=S1. Bei einem Einzelbitfehler wird S1
hinzuaddiert, wodurch sich z-=0 ergibt.
Die Werte ζ und ζ ■ werden in eines der Decodiernetzwerke 75
und 85 eingegeben, welche nach dem Prinzip "1 -Aus-(n-1 )H arbeiten.
Das Paritätsbit wird nicht korrigiert. Die Decodierschaltung basiert auf der Decodiermatrix H gemäß Figur 2a. ζ und
stehen in der oberen Hälfte der Spalten der H-Matrix, welche den
fehlerhaften Bitpositionen entsprechen. Für den (16,7)-Code mit
n=16 wird ein i-.aus- ^Decoder mit 15 Ausgangsleitungen benutzt,
nämlich je einer für jedes Bit der Fehlerworte E1 und E2. Die Fehlerworte E1 und Ξ2 haben an allen Stellen "0", mit Ausnahme
einer einzigen "1" in einer Fehlerposition. Für einen Einzelbitfehler ist Z^=O, woraus sich E2 zu Null ergibt. Die Fehlerworte
E1 und E2 werden in den Summierer 90 gegeben und dem empfangenen Wort R hinzugefügt, dessen Paritätsbit p' nicht
eingeschlossen ist-Man erzeugt hierdurch ein korrigiertes Wort
C, welches kein Paritätsbit enthält und folglich n-1 Bits
breit ist. Die Gesamtwirkung besteht in der Umschaltung der beiden fehlerhaften Bits im empfangenen Wort R entsprechend der
Anweisung aus den Fehlerworten E1 und E2. Das korrigierte Codewort C steht am Ausgang des Summierers 90 zur Verfügung.
709828/0615
Der Direktdecoder gemäß der Erfindung kann in einer Hauptspeicheranordnung
mit geeigneter Zykluszeit eingesetzt werden. Eine variable Zykluszeit, in welcher ordnungsgemäß empfangene
Worte eine kürzere Fehlererkennungs- und -korrekturzeit benötigen als fehlerbehaftete Worte ist ebenfalls möglich. Die
Erfindung offenbart somit eine Einrichtung zur direkten Decodierung und Korrektur von Zweifach-Bit-Zufallsfehlern pro
Wort und zur Erkennung von Dreifachfehlern pro Wort. Sie umfaßt
einen Syndromrechner, der aufgrund von Codeworten arbeitet,
welche aus dem Speicher empfangen werden. Die erzeugten Syndrome werden mit Hilfe eines Umsetzers zur Bereitstellung einer
Adresse eines Tabelleneingangs-Speicherplatzes verwendet. Die
Tabelle enthält eine Ablesungseinrichtung zur Erzeugung von Hinweisadressen, welche die Position der fehlerhaften Bits
kennzeichnen. Diese Hinweisadressen v/erden decodiert und erzeugen zwei Fehlerworte, welche an allen Stellen den Wert "0"
aufweisen, mit Ausnahme derjenigen Bitpositionen, die fehlerbehaftet sind. Die Fehlerworte mit dem vom Speicher empfangenen
Wort summiert, woraus sich das korrigierte Wort ergibt. Der gesamte Vorgang benötigt nur einen Taktzyklus. Der Syndromrechner
liefert ferner ein Paritätsprüfsignal, welches in Verbindung
mit einem Signal aus der Tabelle der Erzeugung eines Signales zur Anzeige eines Dreibitfehlers dient, welcher nicht
korrigierbar ist. Ist ein Dreibitfehler vorhanden, so wird der Decoder abgeschaltet.
709828/0615
Claims (1)
- Patentansprüche/"1 J Einrichtung zum Erkennen und Korrigieren von Zwei-Bit-Fehlern in Codewörtern inbesondere in n-Bit-Codewörtern mit k Informationsbits, 2m Prüfbits und einem Paritätsbit,d.h. n=k+2m+1,gekennzeichnet durcha) einen das Codewort (R) empfangenden Syndromrechner (30) zur Berechnung einer ersten (S1) und eines zweiten Syndroms (S3) welche entsprechend einer Fehlerlokalisiergleichung (FLG) das Vorhandensein und die Position von Fehlern im Codewort feststellen;b) einer mit den beiden Syndromsignalen (S1,S3) beaufschlagten Umsetzeinrichtüng (40,60,50), welche Wurzelsignale (Z3YSI) entsprechend einer der Wurzeln der genannten Fehlerlokalisiergleichung (FLG) erzeugt;c) einen an die Umsetzereinrichtung (40,60,50) und den Syndromrechner (30) angeschlossenen, die genannten Wurzelsignale und das erste Syndromsignal (S1) empfangenden ersten Multiplizierer (70), welcher erste Signale (z1) zur Kennzeichnung einer ersten Fehlerstelle liefert;d) einen an den ersten Multiplizierer (70) und den Snydromrechner (30) angeschlossenen, die ersten Signale (z1) sowie das erste Syndromsignal (S1) empfangenden ersten Summierer (80), welcher zweite Signale (z ) entsprechend einer zweiten Fehlerstelle erzeugt;e) einen an den ersten Multiplizierer (70) angeschlossenen ersten Decoder (75) , welcher die ersten Signale (z1) decodiert und ein erstes Fehlerwort (E1) erzeugt, das nur an der der ersten Fehlerstelle entsprechenden Position den Wert "1" hat;709828/0815f) einen an den ersten Summierer (80) angeschlossenen zweiten Decoder (85), welcher die zweiten Signale (z ) decodiert und ein zweites Fehlerwort (EZ) erzeugt, das nur an der der zweiten Fehlerstelle entsprechenden Position den Wert "1" hat;g) einen an den ersten und den zweiten Decoder (75,85) angeschlossenen zweiten Summierer (90), welcher das erste und das zweite Fehlerwort (E1,E2) dem Codewort (R) hinzufügt und ein korrigiertes Codewort (C) erzeugt (Fig. 3).2. Einrichtung nach Anspruch 1, gekennzeichnet durchh) eine mit dem ersten Syndromsignal (si) beaufschlagte erste Detektorlogik (32), welche ein Ausgangssignal liefert, wenn das erste Syndrom' gleich Null ist;i) eine mit dem zweiten Syndromsignal (S3) beaufschlagte zweite Detektorlogik (34), welche ein Ausgangssignal erzeugt, wenn das zweite Syndrom gleich Null ist.j) ein an die beiden Dektorlogikschaltungen (32,34) angeschlossenes erstes Gatter (36) , welches ein Fehlererkennungssignal liefert, wenn wenigstens eines der beiden Syndrome von Null verschieden ist;k) ein ebenfalls an die beiden Detektorlogikschaltungen (32,34) angeschlossenes zweites Gatter (38), welches ein Decodierfehlersignal liefert, wenn nur eines der beiden Syndrome gleich Null ist.709828/0615* 3.Einrichtung nach Anspruch 1, gekennzeichnet durch1) eine mit den beiden Syndromen beaufschlagte erste Vorrichtung (40,60) zur Erzeugung eines dritten Signals (S3/S1 ) entsprechend dem Quotienten aus dem zweiten Syndrom (S3) und der dritten Potenz des ersten Syndroms (SD sowiem) eine hieran angeschlossene zweite Vorrichtung (50) zur Umsetzung des dritten Signals in das Wurzelsignal4. Einrichtung nach Anspruch 3, dadurch gekennzeichnet, daß die zweite Vorrichtung (50) Mittel (52) zur Erzeugung eines Mehrfachfehler-Signals enthält, welches das Auftreten von mehr als einem Fehler anzeigt.5. Einrichtung nach Anspruch 4, dadurch gekennzeichnet, daß der Syndromrechner (30) ferner ein Paritätsprüfsignal (Sp) erzeugt, welches einen Paritätsfehler im Codewort (R) anzeigt, und daß ein drittes Gatter (58) vorhanden ist, dem das Mehrfachfehler-Signal (52) und das Paritätsprüfsignal (Sp) zugeleitet werden und das ein Dreifachfehler-Signal erzeugt, welches als Sperrsignal dem dem ersten und dem zweiten Decoder (75,85) zugeleitet wird.6. Einrichtung nach einem der Ansprüche 3 bis 5, dadurch gekennzeichnet, daß die zweite Vorrichtung (50) eine Suchtabellenanordnung aufweist und die dritten Signale (S3/S1- ) als Adressen hierfür dienen, während die Wurzelsignale (Z1ZsD dem Inhalt der adressierten Speicherplätze entsprechen.709828/0 615- τ·Einrichtung nach einem der Ansrpüche 3 bis 6, dadurch gekennzeichnet, daß die erste Vorrichtung (40, 60) einen auf das erste Syndrom ansprechenden Umsetzer (40) zur Erzeugung eines der invertierenden dritten Potenz (S1 ) des ersten Syndroms (S1) sowie einen an den Umsetzer (40) und den Syndromrechner (30) angeschlossenen zweiten Multiplizierer (60) aufweist, welcher das zweite Syndrom (S3) und das vierte Signal (S1 ) als Elemente eines Galois-Feldes über ein Generatorpolynom (g(x)) multipliziert.8. Einrichtung nach Anspruch 7,dadurch gekennzeichnet, daß der Umsetzer (40) eine Suchtabellenanordnung aufweist.9. Einrichtung nach Anspruch 6 oder 8, dadurch gekennzeichnet, daß die Suchtabellenanordnung als Festwertspeicher (ROM) ausgebildet ist.709828/0615
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/645,056 US4030067A (en) | 1975-12-29 | 1975-12-29 | Table lookup direct decoder for double-error correcting (DEC) BCH codes using a pair of syndromes |
Publications (1)
Publication Number | Publication Date |
---|---|
DE2657826A1 true DE2657826A1 (de) | 1977-07-14 |
Family
ID=24587474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19762657826 Withdrawn DE2657826A1 (de) | 1975-12-29 | 1976-12-21 | Einrichtung zur fehlererkennung und fehlerkorrektur im speichersystem einer dv-anlage |
Country Status (4)
Country | Link |
---|---|
US (1) | US4030067A (de) |
JP (1) | JPS5282154A (de) |
BE (1) | BE849911A (de) |
DE (1) | DE2657826A1 (de) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3043100A1 (de) * | 1979-11-15 | 1981-05-27 | Nippon Electric Co., Ltd., Tokyo | Datenprozessor mit datenkorrekturfunktion |
EP0073979A1 (de) * | 1981-09-03 | 1983-03-16 | TELEFUNKEN Fernseh und Rundfunk GmbH | System zur Übertragung digitaler Informationssignale |
Families Citing this family (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5825294B2 (ja) * | 1975-12-18 | 1983-05-26 | 富士通株式会社 | 3ジヨウカイロオシヨウシタエラ−テイセイカイロ |
US4107652A (en) * | 1975-12-27 | 1978-08-15 | Fujitsu Limited | Error correcting and controlling system |
JPS52155658U (de) * | 1976-05-21 | 1977-11-26 | ||
JPS5381036A (en) * | 1976-12-27 | 1978-07-18 | Hitachi Ltd | Error correction-detection system |
US4117458A (en) * | 1977-03-04 | 1978-09-26 | Grumman Aerospace Corporation | High speed double error correction plus triple error detection system |
US4100403A (en) * | 1977-04-25 | 1978-07-11 | International Business Machines Corporation | Method and means for discriminating between systematic and noise-induced error in data extracted from word organized memory arrays |
US4139148A (en) * | 1977-08-25 | 1979-02-13 | Sperry Rand Corporation | Double bit error correction using single bit error correction, double bit error detection logic and syndrome bit memory |
US4163147A (en) * | 1978-01-20 | 1979-07-31 | Sperry Rand Corporation | Double bit error correction using double bit complementing |
US4151510A (en) * | 1978-04-27 | 1979-04-24 | Honeywell Information Systems | Method and apparatus for an efficient error detection and correction system |
JPS5573909A (en) * | 1978-11-28 | 1980-06-04 | Matsushita Electric Ind Co Ltd | Signal processor |
US4236247A (en) * | 1979-01-15 | 1980-11-25 | Organisation Europeene De Recherches Spatiales | Apparatus for correcting multiple errors in data words read from a memory |
DE2925966C2 (de) * | 1979-06-27 | 1982-10-28 | Siemens AG, 1000 Berlin und 8000 München | Verfahren und Anordnung zur automatischen Erzeugung eines Gültigkeitssignals für aus einem Speicher mit wahlfreiem Zugriff gelesene Datenworte |
US4355391A (en) * | 1980-03-31 | 1982-10-19 | Texas Instruments Incorporated | Apparatus and method of error detection and/or correction in a data set |
GB2093238B (en) * | 1981-02-18 | 1985-04-17 | Kokusai Denshin Denwa Co Ltd | Error correcting system for simultaneous errors in a code |
JPS57155667A (en) * | 1981-03-23 | 1982-09-25 | Sony Corp | Arithmetic circuit of galois matter |
US4413339A (en) * | 1981-06-24 | 1983-11-01 | Digital Equipment Corporation | Multiple error detecting and correcting system employing Reed-Solomon codes |
EP0080528A1 (de) * | 1981-11-30 | 1983-06-08 | Omnet Associates | Berechnungsverfahren und Gerät für Arithmetik endlicher Felder |
US4509172A (en) * | 1982-09-28 | 1985-04-02 | International Business Machines Corporation | Double error correction - triple error detection code |
US4538270A (en) * | 1983-04-04 | 1985-08-27 | Motorola, Inc. | Method and apparatus for translating a predetermined Hamming code to an expanded class of Hamming codes |
ATE128585T1 (de) * | 1983-12-20 | 1995-10-15 | Sony Corp | Verfahren und vorrichtung zur dekodierung eines fehlerkorrigierenden kodes. |
US4589112A (en) * | 1984-01-26 | 1986-05-13 | International Business Machines Corporation | System for multiple error detection with single and double bit error correction |
US4617664A (en) * | 1984-06-29 | 1986-10-14 | International Business Machines Corporation | Error correction for multiple bit output chips |
US4604751A (en) * | 1984-06-29 | 1986-08-05 | International Business Machines Corporation | Error logging memory system for avoiding miscorrection of triple errors |
NL8403147A (nl) * | 1984-10-16 | 1986-05-16 | Philips Nv | Dataverwerkingssysteem dat is opgebouwd uit drie dataverwerkingsmodules. |
US4797848A (en) * | 1986-04-18 | 1989-01-10 | Hughes Aircraft Company | Pipelined bit-serial Galois Field multiplier |
US4979173A (en) * | 1987-09-21 | 1990-12-18 | Cirrus Logic, Inc. | Burst mode error detection and definition |
US5140595A (en) * | 1987-09-21 | 1992-08-18 | Cirrus Logic, Inc. | Burst mode error detection and definition |
US4890287A (en) * | 1988-03-09 | 1989-12-26 | Magnetic Peripherals Inc. | On-the-fly error correction |
USRE34088E (en) * | 1988-03-09 | 1992-10-06 | Seagate Technology, Inc. | On-the-fly error correction |
US5228046A (en) * | 1989-03-10 | 1993-07-13 | International Business Machines | Fault tolerant computer memory systems and components employing dual level error correction and detection with disablement feature |
CA2002361C (en) * | 1989-03-10 | 1993-12-21 | Robert M. Blake | Fault tolerant computer memory systems and components employing dual level error correction and detection with disablement feature |
US5040179A (en) * | 1989-08-18 | 1991-08-13 | Loral Aerospace Corp. | High data rate BCH encoder |
EP0470451A3 (en) * | 1990-08-07 | 1993-01-20 | National Semiconductor Corporation | Implementation of the high-level data link control cyclic redundancy check (hdlc crc) calculation |
US5291498A (en) * | 1991-01-29 | 1994-03-01 | Convex Computer Corporation | Error detecting method and apparatus for computer memory having multi-bit output memory circuits |
US5491702A (en) * | 1992-07-22 | 1996-02-13 | Silicon Graphics, Inc. | Apparatus for detecting any single bit error, detecting any two bit error, and detecting any three or four bit error in a group of four bits for a 25- or 64-bit data word |
US5434719A (en) * | 1994-03-18 | 1995-07-18 | Seagate Technology, Inc. | Correction of header information in a magnetic disc drive |
FR2814612B1 (fr) * | 2000-09-26 | 2003-02-07 | St Microelectronics Sa | Code de detection et/ou de correction d'erreurs a haute efficacite |
US6732325B1 (en) * | 2000-11-08 | 2004-05-04 | Digeo, Inc. | Error-correction with limited working storage |
US7634709B2 (en) * | 2001-10-05 | 2009-12-15 | Unisys Corporation | Familial correction with non-familial double bit error detection |
DE10243862A1 (de) * | 2002-09-20 | 2004-04-01 | Siemens Ag | Verfahren und Anordnung zur Decodierung eines Codewortes, eines drei Bitfehler korrigierenden, binären Bose-Chauduri-Hocquenghem Codes |
US7275201B1 (en) * | 2005-04-13 | 2007-09-25 | Emc Corporation | Memory system |
US20080052598A1 (en) * | 2006-08-09 | 2008-02-28 | Aksamit Slavek P | Memory multi-bit error correction and hot replace without mirroring |
US7694207B1 (en) * | 2006-09-25 | 2010-04-06 | The United States Of America As Represented By The Director, National Security Agency | Method of decoding signals having binary BCH codes |
US7734991B1 (en) * | 2007-01-04 | 2010-06-08 | The United States Of America As Represented By The Director, National Security Agency | Method of encoding signals with binary codes |
DE102010006876B4 (de) | 2010-02-04 | 2012-10-31 | Infineon Technologies Ag | Verfahren und Vorrichtung zur Kodierung von Daten |
JP2011165026A (ja) * | 2010-02-12 | 2011-08-25 | Toshiba Corp | エラー検出訂正システム |
JP2013523043A (ja) | 2010-03-22 | 2013-06-13 | エルアールディシー システムズ、エルエルシー | ソースデータセットの完全性を識別及び保護する方法 |
DE102011078645A1 (de) * | 2011-07-05 | 2013-01-10 | Robert Bosch Gmbh | Verfahren zum sicheren Prüfen eines Codes |
US9444580B2 (en) | 2013-08-06 | 2016-09-13 | OptCTS, Inc. | Optimized data transfer utilizing optimized code table signaling |
US10523490B2 (en) | 2013-08-06 | 2019-12-31 | Agilepq, Inc. | Authentication of a subscribed code table user utilizing optimized code table signaling |
US9455799B2 (en) | 2013-08-06 | 2016-09-27 | OptCTS, Inc. | Dynamic control of quality of service (QOS) using derived QOS measures |
US10056919B2 (en) | 2014-07-02 | 2018-08-21 | Agilepq, Inc. | Data recovery utilizing optimized code table signaling |
US9800271B2 (en) | 2015-09-14 | 2017-10-24 | Qualcomm Incorporated | Error correction and decoding |
US10193574B1 (en) | 2016-05-19 | 2019-01-29 | Apple Inc. | Efficient syndrome calculation in processing a GLDPC code |
JP2019518397A (ja) | 2016-06-06 | 2019-06-27 | アジャイルピーキュー, インコーポレイテッド | データ変換システムおよび方法 |
JP2018074545A (ja) * | 2016-11-04 | 2018-05-10 | 富士通株式会社 | データ処理システム及びデータ処理装置 |
RU2704499C1 (ru) * | 2018-11-22 | 2019-10-29 | Федеральное государственное автономное образовательное учреждение высшего образования "Санкт-Петербургский государственный университет аэрокосмического приборостроения" | Декодер кода Боуза-Чоудхури-Хоквингема с каноническим декодером Хэмминга |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3685014A (en) * | 1970-10-09 | 1972-08-15 | Ibm | Automatic double error detection and correction device |
US3697948A (en) * | 1970-12-18 | 1972-10-10 | Ibm | Apparatus for correcting two groups of multiple errors |
US3714629A (en) * | 1971-06-01 | 1973-01-30 | Ibm | Double error correcting method and system |
US3755779A (en) * | 1971-12-14 | 1973-08-28 | Ibm | Error correction system for single-error correction, related-double-error correction and unrelated-double-error detection |
US3958220A (en) * | 1975-05-30 | 1976-05-18 | International Business Machines Corporation | Enhanced error correction |
-
1975
- 1975-12-29 US US05/645,056 patent/US4030067A/en not_active Expired - Lifetime
-
1976
- 1976-12-21 DE DE19762657826 patent/DE2657826A1/de not_active Withdrawn
- 1976-12-24 JP JP15613876A patent/JPS5282154A/ja active Pending
- 1976-12-28 BE BE173683A patent/BE849911A/xx not_active IP Right Cessation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3043100A1 (de) * | 1979-11-15 | 1981-05-27 | Nippon Electric Co., Ltd., Tokyo | Datenprozessor mit datenkorrekturfunktion |
EP0073979A1 (de) * | 1981-09-03 | 1983-03-16 | TELEFUNKEN Fernseh und Rundfunk GmbH | System zur Übertragung digitaler Informationssignale |
Also Published As
Publication number | Publication date |
---|---|
BE849911A (fr) | 1977-04-15 |
JPS5282154A (en) | 1977-07-09 |
US4030067A (en) | 1977-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2657826A1 (de) | Einrichtung zur fehlererkennung und fehlerkorrektur im speichersystem einer dv-anlage | |
DE2060643C3 (de) | Schaltungsanordnung zur Korrektur von Einzelfehlern | |
DE3879493T2 (de) | Verfahren und geraet zur fehlerkorrektur. | |
DE60001370T2 (de) | Verfahren und vorrichtung zur erkennung von doppelbitfehlern und korrektur von fehlern durch bauelementfehler verursacht | |
DE102011085602B4 (de) | Vorrichtung und Verfahren zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz | |
DE3787900T2 (de) | Verfahren und Gerät zur Erzeugung von Prüfungs-Byten zur Fehlerdetektion für einen Datenblock. | |
DE2425823A1 (de) | Einrichtung zur fehlererkennung und fehlerkorrektur | |
DE3231956A1 (de) | Anordnung zum uebertragen von binaerdaten ueber eine vielzahl von kanaelen mit hilfe eines faltungscodes | |
DE3882223T2 (de) | Ausgebreitete Fehlerkorrekturvorrichtung mit Einzel-Paket-Fehlerkorrektur und Doppel-Paket-Fehlerdetektionscoden. | |
EP0545498B1 (de) | Verfahren und Schaltungsanordnung zum Decodieren von RS-codierten Datensignalen | |
DE2914515A1 (de) | Verfahren und vorrichtung fuer ein wirksames fehlerentdeckungs- und korrektursystem | |
DE2217935C3 (de) | Anordnung und Verfahren zur Korrektur von Doppelfehlern in einer Nachricht | |
DE69327683T2 (de) | Erweitertes fehlergeschütztes Kommunikationssystem | |
DE2262070A1 (de) | Mit schieberegistern arbeitendes fehlerkorrektursystem | |
DE19922253A1 (de) | Kodiervorrichtung für RAID-6-Systeme und Bandlaufwerke | |
DE102005022107B9 (de) | Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge | |
DE102006005817B4 (de) | Fehlererkennungsvorrichtung für einen Adressdecoder und Vorrichtung zur Fehlererkennung für einen Adressdecoder | |
DE4105860C2 (de) | Schaltungsanordnung zum Erkennen und Korrigieren von Fehlern in Datenworten | |
DE3404417A1 (de) | Codierer-pruefschaltungsanordnung | |
DE69524430T2 (de) | Crc/epc prüfsystem | |
DE3882175T2 (de) | Fehlerkorrektur-Kode für einen B-bit-pro-Chip-Speicher mit verminderten Redundanz. | |
DE102021109391B3 (de) | Multibytefehler-Erkennung | |
DE102013219088B9 (de) | Schaltungsanordnung und Verfahren zur Realisierung von Prüfbitkompaktierung für Cross-Parity-Codes | |
DE1774225A1 (de) | Fehlerkorrekturschaltung | |
EP0073979B1 (de) | System zur Übertragung digitaler Informationssignale |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8130 | Withdrawal |