DE4117726C2 - Fehlerkorrekturverfahren und Einrichtung zu dessen Durchführung - Google Patents

Fehlerkorrekturverfahren und Einrichtung zu dessen Durchführung

Info

Publication number
DE4117726C2
DE4117726C2 DE4117726A DE4117726A DE4117726C2 DE 4117726 C2 DE4117726 C2 DE 4117726C2 DE 4117726 A DE4117726 A DE 4117726A DE 4117726 A DE4117726 A DE 4117726A DE 4117726 C2 DE4117726 C2 DE 4117726C2
Authority
DE
Germany
Prior art keywords
exclusive
error
gate
value
linkage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE4117726A
Other languages
English (en)
Other versions
DE4117726A1 (de
Inventor
Man-Young Lee
Hak-Song Park
Young-Cheol Kim
Tae-Yong Kim
Yong-Jin Choi
Jae-Moon Kim
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE4117726A1 publication Critical patent/DE4117726A1/de
Application granted granted Critical
Publication of DE4117726C2 publication Critical patent/DE4117726C2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic 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

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Description

Die vorliegende Erfindung bezieht sich auf ein Fehlerkorrekturverfahren und eine Einrichtung zu dessen Durchführung.
Im allgemeinen kommt eine Fehlerkorrektureinrichtung in einem digitalen Kommunikationssystem oder digitalen Speichersystem zum Einsatz und kann Fehler korrigieren, die in den empfangenen oder in den weiterzugebenden Daten enthalten sind.
Ein Beispiel für ein herkömmliches Fehlerkorrekturverfahren geht aus der japanischen Offenlegungsschrift No. 57-25047, veröffentlicht am 09. 02. 1982, hervor. Hier wird ein Verfahren offenbart, mit dem Zweiwortfehler in einem Datenblock mit n Worten korrigiert werden können, wobei sich jedes von diesen aus m Bits zusammensetzt.
Nachstehend folgt die detaillierte Beschreibung des bekannten Verfahrens. Die K Syndrome S₀ bis SK-1 werden aus einem Daten­ block VT, der aus n Worten besteht, und einer Gleichheitsprüfmatrix H durch folgende Rechenoperation erhalten:
Hierin hat die Gleichheitsprüfmatrix H n Spalten und K Zeilen und jedes der Elemente in einer vorbestimmten Zeile wird aus α⁰ (=1) bis α2m-2 ausgewählt, wobei das Element α ein Wurzelwert ist, der die Gleichung F (x) = 0 erfüllt. Somit werden zwei identische Werte innerhalb der vorbestimmten Reihe nicht gefunden und die Elemente in den anderen Zeilen werden durch Entwicklung aus den korrespondierenden Elementen der vorbestimmten Reihe ausgewählt. Die Gleichheitsprüfmatrix H wird folgendermaßen dargestellt:
Im Falle eines Zweiwortfehlers ei und ej lauten die Gleichungen für die Syndrome S₀, S₁, S₂, S₃ folgendermaßen:
S₀ = ei + ej
S₁ = αi ei + αj ej
S₂ = α2i ei + α2j ej
S₃ = α3i ei + α3j ej
Die obigen Gleichungen können wie folgt modifiziert werden:
i S₀ + S₁) (αi S₂ + S₃) = (αi S₁ + S₂)²
Falls die Gleichung wiederum umgewandelt wird, wird das folgende Fehlerortpolynom erhalten:
(S₀ S₂ + S₁²) α2i + (S₁ S₂ + S₀ S₃) αi + (S₁ S₃ + S₂²) = 0
S₀ S₂ + S₁² = A
S₁ S₂ + S₀ S₃ = B
S₁ S₃ + S₂² = C
Die Fehlerorte für Zweiwortfehler können durch Verwendung der Koeffizienten A, B und C der Polynomgleichung errechnet werden.
  • (1) Im Falle von Fehlerfreiheit: A=B=C=0, S₀ = 0, S₃ = 0
  • (2) Im Falle eines Einwortfehlers: Wenn A=B=C=0, S₀ ≠ 0 und S₃ ≠ 0 wird ein Einwortfehler bestimmt. Ein Fehlerort i kann leicht aus der Gleichung αi = S₁/S₀ erhalten werden und eine Fehlerkorrektur kann durch Verwendung von ei = S₀ durchgeführt werden.
  • (3) Im Falle eines Zweiwortfehlers: Im Falle eines Zweiwortfehlers oder mehr werden die Bedingungen A ≠ 0, B ≠ 0 und C ≠ 0 erfüllt. Gleichzeitig wird folgende Bedingung erfüllt:Aα2i + Bαi + C = 0in der i zwischen 0 und n-1 liegt.
Wenn angenommen wird, daß die Bedingungen B/A=D und C/A=E erfüllt werden, erhält man die folgenden Gleichungen:
D = αi + αj
E = αi · αj
Demgemäß ist die folgende Gleichung aus den obigen Gleichungen herleitbar:
α2i + Dαi + E = 0
Hieraus werden, wenn die Differenz von Zweiwortfehlern t ist, was bei Erfüllen der Bedingung j = i + t gegeben ist, die folgenden Gleichungen erhalten:
D = αi (1 + αt)
E = α2i+t
Wobei die folgende Gleichung weiter hergeleitet werden kann:
Die Werte von α-t + αt für t=1 bis (n-1) werden zuvor in einem ROM abgespeichert und t wird erhalten, indem eine Übereinstimmung zwischen einem Ausgangswert des ROM und einem Wert von D²/E festgestellt wird, der von dem erhaltenen Wort errechnet wird. Falls keine Übereinstimmung vorliegt, wird der Fehler als drei Worte oder mehr bestimmt.
Somit werden die folgenden Bezeichnungen angenommen:
Durch Ableitung erhält man die folgenden Gleichungen:
Aus den obigen Gleichungen werden die Fehlerorte i und j erhalten. Somit stellen sich die Fehlermuster ei und ej wie folgt dar:
Die Fehlerorte und die Fehlermuster werden durch den oben erwähnten Vorgang derart erhalten, daß der Fehler von dem erhaltenen Wort an den entsprechenden Fehlerorten gemäß den Fehlermustern korrigiert werden kann.
Jedoch muß in dem bekannten Verfahren gemäß der JP-OS 57-25 047, um die Fehlerorte zu erhalten, das Fehlerpolynom α2i + D · αi + E = 0 gelöst werden, um die Wurzeln αi, αj zu erhalten, aus denen sich die Fehlerorte i und j ergeben. Hierdurch wird die für die Durchführung der Rechenoperationen erforderliche Schaltung übermäßig kompliziert und die Rechenzeit übermäßig lang.
Der Erfindung liegt die Aufgabe zugrunde, ein Fehlerkorrektur­ verfahren und eine dieses durchführende Einrichtung vorzuschla­ gen, mit dem Fehlerwerte bei kürzerer Rechenzeit bestimmbar sind und dessen Fehlerkorrektureinrichtung einen vereinfachten Schaltungsaufbau besitzt.
Diese Aufgabe wird durch ein Fehlerkorrekturverfahren mit den Merkmalen des Patentanspruchs 1 sowie eine Einrichtung mit den Merkmalen des Patentanspruchs 2 gelöst.
Bei einer vorteilhaften Ausgestaltung der Erfindung werden XOR-Glieder eingesetzt, die gegenüber dem herkömmlichen ROM- Aufbau zu einer kleineren Chipgröße führen.
Weitere Merkmale der Erfindung ergeben sich aus einem in der Zeichnung dargestellten nachfolgend beschriebenen Ausführungs­ beispiel. Es zeigen:
Fig. 1 ein Logikschaltdiagramm, das bei einer bevorzugten Ausführungsform der Fehlerkorrektureinrichtung gemäß der Erfindung eingesetzt werden soll,
Fig. 2 ein Blockdiagramm der Fehlerkorrektureinrichtung gemäß Fig. 1,
Fig. 3 einen Programmablaufplan, der die Vorgehensweise der Einrichtung gemäß Fig. 2 verdeutlich.
Zunächst soll ein Fehlerkorrekturcode erklärt werden, der in der vorliegenden Erfindung verwendet wird.
Wenn ein Element λ [λ ∈ GF (qm)], wobei R = λ-λq existiert, und folgende Voraussetzungen erfüllt sind:
wird die folgende Gleichung erhalten:
Tr (R) = 0
Wenn ϕ ∈ GF (qm) und R ∈ GF (qm) erfüllt sind, werden die folgenden Gleichungen erhalten:
Wenn somit ein Element über GF (qm), das TR (λ) = 1 erfüllt, gewählt wird und Tr (R) gleich "0" ist, erfüllt das Element gemäß der Definition in Gleichung (1) R = λ-λq aus Gleichung (2). Wenn wir somit χ²+χ = k aus dem Fehlerortpolynom folgern und annehmen, daß χ und K insbesondere zu λ und R der Voraussetzungen korrespondieren, dann werden, wo Tr (R) = 0, die Wurzeln des Fehlerortpolynoms σ(χ) erhalten und der Wert χ ist wie in Gleichung (1) darstellbar. Folglich kann K erhalten werden als:
K = k₀ + k₁α + k₂α² + k₃α³ + k₄α⁴ + k₅α⁵ + k₆α⁶ + k₇α⁷
und indem die Spuren für beide Seiten von K ∈ GF (2m) genommen werden, erhält man:
Tr (K) = k₀ Tr (1) + k₁ Tr (α) + k₂ Tr (α²)
+ k₃ Tr (α³) + k₄ Tr (α⁴) + k₅ Tr (α⁵)
+ k₆ Tr (α⁶) + k₇ Tr (α⁷) (3)
Mit Tr (β) =
und β∈ GF (qm) aus den oben angeführten Voraussetzungen von die Spurenwerte beider Seiten der Gleichung (3) zu berechnen, erhält man:
Tr (1) = Tr (α) = Tr (α²) = Tr (α³) = Tr (α⁴) = Tr (α⁶) = Tr (α⁷) = 0,
und dann wird Tr (α⁵) zu "1".
Hieraus folgt, daß der Wert Tr (K) nur dann zu "0" wird, wenn k₅ "0" wird, so daß von dem Fehlerortpolynom σ (χ) Wurzeln existieren. Wenn die Voraussetzungen Tr (K) mit "0" festlegen, gibt es einen Wert χ über GF (qm), der χ²+χ = k erfüllt. Falls K ∈ GF (2⁸) und Tr (K) = k₅ = 0 erfüllt ist, wird hier eine Wurzel erhalten, indem folgendes Verfahren verwendet wird:
  • i) Ein Element K, das Tr (K) = 1 erfüllt, ist α⁵, was folgendermaßen geprüft wird:
  • ii) Für Tr (K) = 0 wird χ wie in Gleichung (1) erhalten, woraus sich ergibt: χ = Rγ² + (R+R²) γ⁴
    + (R+R²+R⁴) γ⁸ + (R+R²+R⁴+R⁸) γ¹⁶
    + (R+R²+R⁴+R⁸+R¹⁶) γ³²
    + (R+R²+R⁴+R⁸+R¹⁶+R³²) γ⁶⁴
    + (R+R²+R⁴+R⁸+R¹⁶+R³²+R⁶⁴) γ¹²⁸ (4)
Indem Gleichung (4) hinsichtlich R umgeschrieben wird, erhält man für χ:
χ = (γ²+γ⁴+γ⁸+γ¹⁶+γ³²+γ⁶⁴+γ¹²⁸) R
+ (γ⁴+γ⁸+γ¹⁶+γ³²+γ⁶⁴+γ¹²⁸) R²
+ (γ⁸+γ¹⁶+γ³²+γ⁶⁴+γ¹²⁸) R⁴
+ (γ¹⁶+γ³²+γ⁶⁴+γ¹²⁸) R⁸
+ (γ³²+γ⁶⁴+γ¹²⁸) R¹⁶
+ (γ⁶⁴+γ¹²⁸) R³²
+ γ¹²⁸R⁶⁴ (5)
  • iii) Durch Einsetzen von γ = α⁵ in Gleichung (5) können die jeweiligen Koeffizienten erhalten werden χ = (1+α⁵) R+(1+α²+α⁴+α⁶) R²
    + (1+α⁵+α⁶+α⁷) R³ + (1+α+α³+α⁷) R⁴
    + (α+α²+α⁴+α⁵+α⁶) R⁵+(α⁴+α⁷) R³²
    + (α+α²+α³+α⁵) R⁶⁴ (6)
  • iv) Jeder Wert χ für R = 1 bis α⁷ wird erhalten:
    • 1) R = 1;
      χ = α+α²+α⁴+α⁶+α⁷
      = (01101011)
    • 2) R = α;
      χ = α³+α⁵+α⁶+α⁷
      = (00010111)
    • 3) R = α²;
      χ = α+α³+α⁵+α⁶+α⁷
      = (01010111)
    • 4) R = α³;
      χ = 1+α²+α³+α⁵
      = (10110100)
    • 5) R = α⁴;
      χ = α+α²+α³+α⁵+α⁶+α⁷
      = (01110111)
    • 6) R = α⁵;
      χ = 1
      = (10000000)
    • 7) R = α⁶;
      χ = 1+α²+α⁵
      = (10100100)
    • 8) R = α⁷;
      χ = α⁴+α⁶
      = (00001010)
  • v) Unter Berücksichtigung, daß die aus Schritt iv erhaltene Matrixgleichung: K = σ₂/σ₁² = (k₀, k₁, k₂, k₃, k₄, k₅, k₆, k₇) (7)ist, gilt Nachfolgendes:
Aus X₁ = K × M, und
χ₁ = (χ₀, χ₁, χ₂, χ₃, χ₄, χ₅, χ₆, χ₇)
K = (k₀, k₁, k₂, k₃, k₄, k₅, k₆, k₇)
erhält man durch Umschreiben von Gleichung (6) für M
Somit kann eine Wurzel x₁ von χ²+χ = K erhalten werden. Gleichzeitig wird jeder Wert der Komponentenelemente χ₀ bis χ₇ von x₁ aus Gleichung (8) erhalten:
Hierin sollte k₅ "0" sein, um die oben angeführte Bedingung Tr (K) = k₅ = 0 zu erfüllen.
Wird auf diese Weise das Verfahren zum Erhalt der Wurzel x₁ ergänzt, kann die andere Wurzel x₂ aus der Beziehung x₂ = x₁+1 erhalten werden.
Die aktuellen Fehlerorte können durch Multiplikation von jedem x₁ und x₂ mit σ₁ erhalten werden. Man erhält sie als
worin,
Ebenfalls werden die Fehlerwerte Y₁ und Y₂ bestimmt als:
Fig. 1 zeigt ein Logikschaltdiagramm, bei dem XOR-Glieder zur Erstellung von Gleichung (9) verwendet werden. Das Einsetzen von χ = σ₁ χ′ in dem Doppelfehlerortpolynom
σ (χ) = χ²+σ₁ χ+σ₂ ergibt:
σ (χ′) = χ′²+χ′+K
Dann wird K = σ₂/σ₁² von Gleichung (7) erhalten.
Fig. 2 zeigt ein Blockdiagramm einer bevorzugten Ausführungsform der erfindungsgemäßen Fehlerkorrektureinrichtung. Gemäß Fig. 2 bestimmt ein Eingabeanschluß (105) die Eingabe von empfangenen Daten, der ebenfalls mit den Eingängen einer Pufferspeichereinheit (100) und eines Syndromrechners (120) verbunden ist. Der Ausgang der Pufferspeichereinheit (100) ist mit einem ersten Eingang eines ersten Addierers (110) verbunden, der über einen Ausgabeanschluß (115) Signale abgibt. Der Ausgang des Syndromrechners (120) ist mit einem dritten Eingabeanschluß eines Fehlerwertrechners (180), einem ersten Eingang eines ersten Koeffizientenzählers (130) und eines ersten Eingangs eines ersten Fehlerdiskriminators (160) verbunden. Ein erster Ausgabeanschluß des ersten Koeffizientenrechners (130) ist mit einem Eingang eines zweiten Koeffizientenzählers (140), dem ersten Eingabeanschluß des ersten Addierers (110), und einem ersten Eingabeanschluß eines zweiten Multiplizierers (171) verbunden. Ein zweiter Ausgang des ersten Koeffizientenrechners (130) ist mit einem zweiten Ausgang des Fehlerdiskriminators (160) verbunden. Ein zweiter Ausgang des zweiten Koeffizientenrechners (140) steht in Verbindung mit einem dritten Eingang des Fehlerdiskriminators (160). Der Ausgang des Fehlerdiskriminators (160) ist mit einem ersten Eingang einer Steuereinheit (190) verbunden. Der Ausgang eines Fehlerortsrechners (150) steht in Verbindung mit einem ersten Eingang eines zweiten Addierers (111) und einem zweiten Eingang eines ersten Multiplizierers (170). Der Ausgang des zweiten Addierers (111) ist mit dem zweiten Eingang eines zweiten Multiplizierers (171) verbunden. Der Ausgang des ersten Multiplizierers (170) steht in Verbindung mit einem zweiten Eingang des Fehlerwertrechners (180) und einem zweiten Eingang des Reglers (190). Der Ausgang des zweiten Multiplizierers (171) ist mit einem dritten Eingang des Fehlerwertrechners (180) und einem dritten Eingang der Steuereinheit (190) verbunden. Der Ausgang des Fehlerwertrechners (180) steht mit dem ersten Eingang eines Pufferrecorders (101) in Verbindung. Der Ausgang des Pufferrecorders (101) ist mit einem zweiten Eingang des ersten Addierers (110) verbunden. Ein Ausgang des ersten Addierers (110) steht mit dem Ausgang (115) in Verbindung. Erste bis achte Ausgangsanschlüsse der Steuereinheit (190) sind mit Steuereingängen der Pufferspeichereinheit (100), des Syndromrechners (120), des ersten Koeffizientenrechners (130), des zweiten Koeffizientenrechners (140), des Fehlerortrechners (150), des Fehlerdiskriminators (160), des Fehlerwertrechners (180) und des Pufferrecorders (101) jeweils verbunden.
Anhand Fig. 1 soll die Funktionsweise der in Fig. 2 dargestellten Fehlerkorrektureinrichtung beschrieben werden.
Die über den Eingangsanschluß (105) zugeführten empfangenen Daten werden gleichzeitig der Pufferspeichereinheit (100) und dem Syndromrechner (120) zugeführt. Die Pufferspeichereinheit (100) verzögert die über den Eingangsanschluß (105) empfangenen Daten innerhalb der erforderlichen Rechenzeit des Syndromrechners (120), des ersten und zweiten Koeffizientenrechners (130) und (140), des Fehlerortrechners (150), des zweiten Addierers (111), des ersten und zweiten Multiplizierers (170) und (171), des Fehlerwertrechners (180) und des Pufferrecorders (101) und liefert anschließend die verzögerten erhaltenen Daten an den ersten Eingang des ersten Addierers (110). Der Syndromrechner (120) speichert die seriell vom Eingangsanschluß (105) empfangenen Daten in seinem Speicher ab und berechnet dann, nachdem die Eingabe der erhaltenen Daten, die einem Block entsprechen, beendet worden ist, die Syndrome S₀, S₁, S₂ und S₃ unter Verwendung der nachfolgenden Gleichung:
Der erste Koeffizientenzähler (130) erzeugt Koeffizienten σ₁, σ₂ und D unter Verwendung der nachfolgenden Rechenoperation für die Syndrome S₀ bis S₃, die von dem Syndromrechner (120) erhalten werden:
Anschließend liefert der erste Koeffizientenzähler (130) über seinen ersten Ausgangsanschluß die zwei Koeffizienten an den zweiten Koeffizientenrechner (140) und den ersten und zweiten Multiplizierer (170) und (171). Ebenfalls liefert der erste Koeffizientenzähler (130) über seinen zweiten Ausgangsanschluß den Koeffizienten D an den Fehlerdiskriminator (160). Hierbei sind die beiden Koeffizienten σ₁ und σ₂ Koeffizienten des quadratischen Fehlerortpolynoms σ (y) = y²+σ₁ y+σ₂ = 0.
Der zweite Koeffizientenrechner (140) berechnet den dritten Koeffizienten K unter Verwendung der nachfolgenden Rechenoperation für die beiden Koeffizienten σ₁ und σ₂, die von dem ersten Koeffizientenrechner (130) erhalten werden:
Anschließend gibt der erste Koeffizientenzähler (140) über seinen ersten Ausgang den berechneten Koeffizienten K an den Fehlerortrechner (150) ab. Der Fehlerortrechner (150) liefert den ersten Fehlerortwert χ₁ mittels der in Fig. 1 gezeigten Schaltung an den zweiten Addierer (111) und den zweiten Multiplizierer (171). Der zweite Addierer (111) zählt den Wert "1" zu dem ersten Fehlerortwert χ₁ um den zweiten Fehlerortwert χ₂ zu dem ersten Multiplizierer (170) zu liefern. Der erste Multiplizierer (170) multipliziert den zweiten Fehlerortwert χ₂ mittels des ersten Koeffizienten σ₁, um diesen Wert an den Fehlerwertrechner (180) zu liefern. Der zweite Multiplizierer (171) multipliziert den ersten Fehlerortwert χ₁ mittels des zweiten Koeffizienten σ₂, um diesen Wert an den Fehlerwertrechner (180) zu liefern. Der Fehlerwertrechner (180) berechnet den Fehlerwert Y₁ und Y₂ unter Verwendung des ersten Fehlerortwertes X₁ und des zweiten Fehlerortwertes X₂ wie nachfolgend gezeigt wird:
Anschließend werden die Fehlerwerte Y₁ und Y₂ an den Pufferrecorder (101) geliefert.
Der Pufferrecorder (101) speichert die zwei Fehlerwerte Y₁ und Y₂, die von dem Fehlerwertrechner (180) erhalten werden. Wenn das empfangene mit einem Fehler versehene Wort an den ersten Eingang des ersten Addierers (110) geliefert wird, liefert anschließend der Speicherrecorder (101) die Fehlerwerte Y₁ und Y₂ an den zweiten Eingang des ersten Addierers (110). Der erste Addierer (110) zählt die Fehlerwerte Y₁ und Y₂, die dem zweiten Eingangsanschluß von dem Pufferrecorder (101) zugeführt werden, zu den erhaltenen Daten zu, die über den ersten Eingangsanschluß von der Pufferspeichereinheit (100) zugeführt werden, und korrigiert anschließend in den erhaltenen Daten enthaltene Fehler.
Der Fehlerdiskriminator (160) prüft die von dem Syndromrechner (120) erhaltenen Syndrome S₀ bis S₃, den von dem ersten Koeffizientenrechner (130) erhaltenen Koeffizienten D und den von dem zweiten Koeffizientenrechner (140) erhaltenen Wert. Anschließend wird das Vorliegen oder Nichtvorliegen eines Fehlers, die Generierung eines Einwortfehlers, eines Zweiwortfehlers oder eines Dreiwortfehlers oder größer bestimmt.
Die Steuereinheit (190) liefert Steuersignale für die Zeitnormierung jeweils an die Pufferspeichereinheit (100), den Syndromrechner (120), den ersten und zweiten Koeffizientenrechner (130 und 140), den x₁-Wertrechner (150), den Fehlerdiskriminator (160), den Fehlerwertrechner (180) und den Pufferrecorder (101).
Anhand des in Fig. 3 gezeigten Programmablaufplanes soll die Funktionsweise der in Fig. 2 dargestellten Fehlerkorrektureinrichtung beschrieben werden.
Die Steuereinheit (190) liefert an den Syndromrechner (120) ein Steuersignal zur Syndromberechnung und weist ihn an (in Schritt 200), die Syndrome zu berechnen. Nach Schritt (200) fragt die Steuereinheit (190) den Fehlerdiskriminator (160) mittels eines Steuersignales zur Fehlerfeststellung ab, um festzustellen, ob alle Syndrome "0" sind. In dem Fall, wenn das von dem Fehlerdiskriminator (160) zurückerhaltene Ergebnissignal zeigt, daß S₀ = S₁ = S₂ = S₃ = 0 ist, erkennt die Steuereinheit (190), daß die Nullfehler-Bedingung erfüllt ist und schließt anschließend die Fehlerkorrekturoperation ab (in Schritt 201).
Wenn das dem Fehlerdiskriminator (160) zugeführte Ergebnissignal zeigt, daß im Schritt (201) ein oder mehrere Syndrome ungleich "0" sind, liefert die Steuereinheit (190) ein Steuersignal zur Koeffizientenberechnung an den ersten Koeffizientenrechner (130), weist den ersten Koeffizientenrechner zur Berechnung von D an (in Schritt 202), und liefert ebenfalls ein Steuersignal zur Fehlerfeststellung an den Fehlerdiskriminator (160) und weist diesen an festzustellen, ob D = "0" ist (in Schritt 203).
Wenn das von dem Fehlerdiskriminator (160) erhaltene Ergebnissignal zeigt, daß D = 0 ist, weist die Steuereinheit (190) den Fehlerwertrechner (180) und den Pufferrecorder (101) zur Korrektur des Einwortfehlers an (in Schritt 204).
Falls aber das Ergebnissignal zeigt, daß D ungleich "0" ist, weist die Steuereinheit (190) den ersten Koeffizientenrechner (130) an, die beiden Koeffizienten σ₁ und σ₂ des quadratischen Fehlerortpolynomes σ (y) = y²+σ₁ y+σ₂ = 0 zu berechnen (in Schritt 205). Im Schritt (206) wird bestimmt, ob das Ergebnissignal von dem Fehlerdiskriminator (160) zeigt, daß σ₁ = 0 und σ₂ = 0. Wenn das von dem Fehlerdiskriminator (160) erhaltene Ergebnissignal zeigt, daß σ₁ = 0 oder σ₂ = 0, wird festgestellt, daß drei oder mehr Fehler vorliegen (in Schritt 209). Falls das Ergebnissignal zeigt, daß σ₁ ≠ 0 und σ₂ ≠ 0 ist, liefert die Steuereinheit (190) ein Steuersignal, das den zweiten Koeffizientenrechner (140) anweist, K und Tr (K) zu berechnen (in Schritt 207).
Nach Schritt 207 wird bestimmt, ob das von dem Fehlerdiskriminator (160) erhaltene Fehlersignal die Bedingung Tr (K) = 0 erfüllt (in Schritt 208). Wenn das von dem Fehlerdiskriminator (160) erhaltene Ergebnissignal zeigt, daß Tr (K) ≠ 0 ist, erkennt die Steuereinheit (190) die Generierung von drei oder mehr Fehlern (in Schritt 209). Falls weiterhin das von dem Fehlerdiskriminator (160) erhaltene Ergebnissignal zeigt, daß Tr (K) = 0 ist, weist die Steuereinheit (119) den X₁-Wert- Rechner (150) an, den Wert von x₁ zu berechnen. Im gleichen Schritt (Schritt 210) multipliziert weiterhin der erste Multiplizierer (170) den Wert x₁ mit dem Wert σ₁ zur Berechnung des Wertes X₁ und weiterhin multipliziert der zweite Multiplizierer (171) den Wert x₂ mit dem Wert σ₂ zur Berechnung des Wertes X₂ (in Schritt 210).
Nach dem Schritt 210 liefert die Steuereinheit (190) ein Steuersignal an den Fehlerwertrechner (180), um diesen anzuweisen, die Fehlerwerte Y₁ und Y₂ zu berechnen (in Schritt 211). Nach Schritt 211 steuert die Steuereinheit (190) den Pufferrecorder (101) entsprechend den Fehlerortwerten X₁ und X₂ an, die von dem ersten und zweiten Multiplizierern (170) und (171) in Schritt 210 erhalten werden. Dadurch wird der Pufferrecorder (101) veranlaßt, die von dem Fehlerwertrechner (180) erhaltenen Werte Y₁ und Y₂ an den ersten Addierer (110) zu liefern. Gleichzeitig zählt der erste Addierer (110) die von dem Pufferrecorder (101) erhaltenen Fehlerwerte zu den empfangenen Worten, die einen Fehler haben und die von der Puffereinheit (100) erhalten wurden, wodurch in dem erhaltenen Wort Zweiwertfehler korrigiert werden (in Schritt 212).
Erfindungsgemäß wird bei dem Verfahren und der hierfür vorgesehenen Einrichtung, die zur Korrektur von Zweiwortfehlern über GF (2⁸) verwendet werden, der Wert von dem zweiten Koeffizientenwertrechner (140) erhalten und die Daten ausgegeben, indem XOR-Glieder, wie sie in Fig. 1 gezeigt sind, verwendet werden. Hierdurch wird einerseits eine schnellere und einfachere Rechenoperation erzielt und andererseits wird erreicht, daß gegenüber dem herkömmlichen ROM-Aufbau eine kleinere Chipgröße erzielt wird.

Claims (3)

1. Fehlerkorrekturverfahren für eine digitale Daten emp­ fangende und/oder weitergebende Anlage zur Korrektur von wenig­ stens zwei Wortfehlern in einem Datenblock VT mit n Datenworten zu je m Bits, welches einen Fehlerkorrekturcode auf der Basis des erweiterten Galois-Feldes GF (2⁸) verwendet, mit den Schrit­ ten:
  • a) Einspeisen der N Datenworte in einen Syndromrechner (120) und Berechnen von vier Syndromen S₀, S₁, S₂ und S₃ gemäß wobei die Prüfmatrix H die Form mit einem primitiven Element α des Feldes GF (2⁸) hat,
  • b) Zuführen der Syndromwerte S₀, S₁, S₂, S₃ zu einem Fehler­ diskriminator (160) und Prüfen, ob S₀ = S₁ = S₂ = S₃ = 0 ist, was Fehlerfreiheit anzeigt und die Korrekturprozedur beendet,
  • c) Wenn Si ungleich 0 für wenigstens ein Si (i=1 bis 4) ist, Berechnen des Koeffizienten D = S₀S₂ + S₁²in einem Koeffizientenrechner (130), dem die Werte S₀, S₁ und S₂ zugeführt werden, Zuführen des Wertes D zu dem Feh­ lerdiskriminator und Prüfen, ob D=0 ist, was das Vorlie­ gen eines einzelnen Wortfehlers anzeigt und eine Ein-Wort­ fehler-Korrektur anschließt,
  • d) Wenn D ungleich 0 ist, Berechnen der Koeffizienten σ₁ = - (S₀ S₃ + S₁S₂)/Dσ₂ = - (S₁S₃ + S₂²)/Din dem Koeffizientenrechner (130), dem die Werte D, S₀, S₁, S₂ und S₃ zugeführt werden, Zuführen der Werte σ₁ und σ₂ zu dem Fehlerdiskriminator und Prüfen, ob σ₁=0 oder σ₂=0 ist, was das Vorliegen dreier oder mehr Wortfehler anzeigt,
  • e) Wenn σ₁ und σ₂ ungleich Null sind, Zuführen dieser Werte σ₁, σ₂ zu einem weiteren Koeffizientenrechner, Berechnen des Ko­ effizienten K=-σ₂/σ₁² und Bestimmen seiner Komponenten k₀ bis k₇ gemäß K = k₀ + k₁α + k₂α² + k₃α³ + k₄α⁴ + k₅α⁵ + k₆α⁶ + k₇α⁷sowie das Prüfen mittels des Fehlerdiskriminators, ob Tr(K) ≠0 ist, was das Vorliegen dreier oder mehr Wortfehler anzeigt,
  • f) Wenn Tr (K)=0 ist, was das Vorliegen zweier Wortfehler an­ zeigt, Berechnen eines ersten Fehlerortes X₁=x₁ σ₁ mit in einem x₁-Wertrechner (150) und Berechnen des zweiten Fehlerortes X₂=(1+x₁) σ₁,
  • g) Bestimmen der zugehörigen Fehlerwerte Y₁, Y₂ gemäß Y₁ = [S₀ X₂ + S₁)/(X₁ + X₂)Y₂ = (S₀ X₁ + S₁)/(X₁ + X₂)und Korrigieren der beiden Wortfehler durch Aufaddieren der Fehlerwerte.
2. Fehlerkorrektureinrichtung zur Durchführung des Verfahrens nach Anspruch 1, mit:
  • a) einem Syndromrechner (120) zum Berechnen der vier Syndrome S₀, S₁, S₂ und S₃ aus dem n-Wort-Datenblock VT mittels der Prüfmatrix H,
  • b) einem ersten Koeffizientenrechner (130) zur Berechnung der Koeffizienten σ₁ und σ₂ aus besagten Syndromen,
  • c) einem zweiten Koeffizientenrechner (140) zur Berechnung des Koeffizienten K=-σ₂/σ₁²,
  • d) einem aus Logikgliedern aufgebauten x₁-Wertrechner (150) zur Berechnung des die Fehlerorte festlegenden Wertes x₁
  • e) einem Fehlerortwertrechner zur Berechnung der Fehlerorte X₁ und X₂ aus dem x₁-Wert,
  • f) einem Fehlerwertrechner (180), dem die Fehlerortwerte X₁ und X₂ zugeführt werden und der nachfolgend die Fehlerwerte Y₁ und Y₂ berechnet,
  • g) einem Fehlerdiskriminator (160) zur Bestimmung anhand der Werte der Syndrome S₀, S₁, S₂ und S₃, der Koeffizienten D, σ₁ und σ₂ sowie Tr (K) wieviele Fehler aufgetreten sind.
3. Fehlerkorrektureinrichtung nach Anspruch 2, dadurch gekennzeichnet, daß der x₁-Wertrechner besteht aus:
  • - einem ersten EXCLUSIV-ODER-Gatter zur Exklusiv-Oder-Ver­ knüpfung der Komponenten k₀ und k₁,
  • - einem zweiten EXCLUSIV-ODER-Gatter zur Exklusiv-Oder-Ver­ knüpfung der Komponenten k₂ und k₄,
  • - einem dritten EXCLUSIV-ODER-Gatter zur Exklusiv-Oder-Ver­ knüpfung der Komponenten k₃ und k₆,
  • - einem vierten EXCLUSIV-ODER-Gatter zur Exklusiv-Oder-Ver­ knüpfung der Komponenten k₀ und k₇ zur Abgabe des Wertes χ₄,
  • - einem fünften EXCLUSIV-ODER-Gatter zur Exklusiv-Oder-Ver­ knüpfung der Komponenten k₀ und des Ausgangssignal des zweiten EXCLUSIV-ODER-Gatters zur Abgabe des Wertes χ₁,
  • - einem sechsten EXCLUSIV-ODER-Gatter zur Exklusiv-Oder-Ver­ knüpfung der Komponenten k₀ und k₄,
  • - einem siebten EXCLUSIV-ODER-Gatter zur Exklusiv-Oder-Ver­ knüpfung der Komponente k₅ und des Ausgangssignals des dritten EXCLUSIV-ODER-Gatters zur Abgabe des Wertes χ₀,
  • - einem achten EXCLUSIV-ODER-Gatter zur Exklusiv-Oder-Ver­ knüpfung der Ausgangssignale des dritten und des sechsten EXCLUSIV-ODER-Gatters zur Abgabe des Wertes χ₂,
  • - einem neunten EXCLUSIV-ODER-Gatter zur Exklusiv-Oder-Ver­ knüpfung der Komponenten k₁ und k₃,
  • - einem zehnten EXCLUSIV-ODER-Gatter zur Exklusiv-Oder-Ver­ knüpfung der Ausgangssignale des ersten und des zweiten EXCLUSIV-ODER-Gatters zur Abgabe des Wertes χ₇,
  • - einem elften EXCLUSIV-ODER-Gatter zur Exklusiv-Oder-Ver­ knüpfung der Ausgangssignale des zweiten und des neunten EXCLUSIV-ODER-Gatters zur Abgabe des Wertes χ₃,
  • - einem zwölften EXCLUSIV-ODER-Gatter zur Exklusiv-Oder-Ver­ knüpfung der Komponente k₆ und des Ausgangssignals des elften EXCLUSIC-ODER-Gatters zur Abgabe des Wertes χ₅,
  • - einem dreizehnten EXCLUSIV-ODER-Gatter zur Exklusiv-Oder-Ver­ knüpfung der Komponente k₇ und des Ausgangssignals des zehnten EXCLUSIV-ODER-Gatters zur Abgabe des Wertes χ₆.
DE4117726A 1991-01-31 1991-05-30 Fehlerkorrekturverfahren und Einrichtung zu dessen Durchführung Expired - Lifetime DE4117726C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019910001859A KR930007928B1 (ko) 1991-01-31 1991-01-31 오류정정방법 및 장치

Publications (2)

Publication Number Publication Date
DE4117726A1 DE4117726A1 (de) 1992-08-06
DE4117726C2 true DE4117726C2 (de) 1994-11-10

Family

ID=19310703

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4117726A Expired - Lifetime DE4117726C2 (de) 1991-01-31 1991-05-30 Fehlerkorrekturverfahren und Einrichtung zu dessen Durchführung

Country Status (7)

Country Link
US (1) US5315601A (de)
JP (1) JP2644639B2 (de)
KR (1) KR930007928B1 (de)
DE (1) DE4117726C2 (de)
FR (1) FR2672403B1 (de)
GB (1) GB2252431B (de)
IT (1) IT1250495B (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6772390B2 (en) 2000-11-30 2004-08-03 Quantum Corporation Erasure correction for ECC entities
JP4836608B2 (ja) * 2006-02-27 2011-12-14 株式会社東芝 半導体記憶装置
KR101502895B1 (ko) 2010-12-22 2015-03-17 주식회사 케이티 복수의 오류 복제본으로부터 오류를 복구하는 방법 및 상기 방법을 이용하는 스토리지 시스템
KR101585146B1 (ko) 2010-12-24 2016-01-14 주식회사 케이티 오브젝트를 복수 개의 데이터 노드들의 위치에 기반하여 분산 저장하는 분산 저장 시스템 및 그 위치 기반 분산 저장 방법 및 컴퓨터에 의하여 독출 가능한 저장 매체
KR101544480B1 (ko) 2010-12-24 2015-08-13 주식회사 케이티 복수 개의 프락시 서버를 포함하는 분산 저장 시스템 및 그 오브젝트 관리 방법 및 컴퓨터에 의하여 독출가능한 저장 매체
KR101483127B1 (ko) 2011-03-31 2015-01-22 주식회사 케이티 클라우드 스토리지 시스템에서 리소스를 고려한 자료분배방법 및 장치
KR101544483B1 (ko) 2011-04-13 2015-08-17 주식회사 케이티 분산 저장 시스템의 복제 서버 장치 및 복제본 생성 방법
KR101544485B1 (ko) 2011-04-25 2015-08-17 주식회사 케이티 클라우드 스토리지 시스템에서 복수개의 복제본을 분산 저장하는 방법 및 장치
KR20210138241A (ko) 2020-05-12 2021-11-19 삼성전자주식회사 메모리 컨트롤러, 메모리 시스템 및 메모리 모듈

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4099160A (en) * 1976-07-15 1978-07-04 International Business Machines Corporation Error location apparatus and methods
CA1161565A (en) * 1980-06-20 1984-01-31 Yoichiro Sako Method of error correction
JPS5725047A (en) * 1980-07-23 1982-02-09 Sony Corp Error correcting method
CA1170776A (en) * 1980-07-18 1984-07-10 Yoichiro Sako Method of error correction of blocks of data
JPS5961332A (ja) * 1982-09-30 1984-04-07 Nec Corp 誤り訂正回路
USRE33332E (en) * 1983-03-12 1990-09-11 Sony Corporation Apparatus for correcting errors
DE3484455D1 (de) * 1983-09-06 1991-05-23 Toshiba Kawasaki Kk Fehlerkorrekturschaltung.
JPS641333A (en) * 1987-06-24 1989-01-05 Matsushita Electric Ind Co Ltd Quadratic equation factorization device
JP2532917B2 (ja) * 1988-04-20 1996-09-11 三洋電機株式会社 デ―タ誤り検出回路

Also Published As

Publication number Publication date
ITMI911471A1 (it) 1992-08-01
DE4117726A1 (de) 1992-08-06
IT1250495B (it) 1995-04-08
FR2672403A1 (fr) 1992-08-07
JPH04248630A (ja) 1992-09-04
GB2252431A (en) 1992-08-05
US5315601A (en) 1994-05-24
JP2644639B2 (ja) 1997-08-25
GB9110490D0 (en) 1991-07-03
FR2672403B1 (fr) 1995-03-17
ITMI911471A0 (it) 1991-05-29
KR920015197A (ko) 1992-08-26
GB2252431B (en) 1994-11-16
KR930007928B1 (ko) 1993-08-21

Similar Documents

Publication Publication Date Title
DE3486471T2 (de) Verfahren und Vorrichtung zur Dekodierung eines Fehler-Korrektur-Code
DE69834542T2 (de) Hardwareoptimierter reed-solomon-decoder zur decodierung grosser datenblöcke
DE2162833C3 (de) Einrichtung zum Codieren und Decodieren eines aus k Bytes mit je b Bits bestehenden Datenblocks und Korrektur zweier fehlerhafter Bits
DE2106314B2 (de) Anordnung zur Fehlererkennung und -korrektur in einem aus b Bits bestehenden Byte eines K Datenbytes enthaltenden Datenblocks
DE102006005817B4 (de) Fehlererkennungsvorrichtung für einen Adressdecoder und Vorrichtung zur Fehlererkennung für einen Adressdecoder
DE2262070A1 (de) Mit schieberegistern arbeitendes fehlerkorrektursystem
DE102017125617B4 (de) Bestimmung und Verwendung von Bytefehlerpostionssignalen
DE4117726C2 (de) Fehlerkorrekturverfahren und Einrichtung zu dessen Durchführung
DE3727586C2 (de) Datenverarbeitungsanordnung bestehend aus vier im wesentlichen gleich aufgebauten Moduln
DE2361512C2 (de) Schaltungsanordnung zur Prüfung eines Additionsresultates
DE3447634C2 (de)
DE3702697C2 (de)
DE102013219088B9 (de) Schaltungsanordnung und Verfahren zur Realisierung von Prüfbitkompaktierung für Cross-Parity-Codes
DE102019113970B4 (de) Erkennung von adressfehlern
DE102018126685B3 (de) Verarbeitung von Daten
DE102021123727B4 (de) Bytefehlerkorrektur
EP0046963B1 (de) Schaltungsanordnung zur Erkennung und Korrektur von Fehlerbündeln
DE19644688A1 (de) Schaltungsanordnung einer digitalen Multiplizierer-Baugruppe, zur Verarbeitung von Binärzahlen sowie Elementen aus GF(2 APPROX )
DE1937259A1 (de) Selbstpruefende Fehlererkennungsschaltung
DE102013112020B4 (de) Verfahren und Vorrichtung zum Erkennen von Bitfehlern
DE3586442T2 (de) Kodier- und dekodierschaltung fuer parameterblockkodierung.
DE2300505A1 (de) Vorrichtung zur schwellwertdecodierung
DE102015118668B4 (de) Fehlerkorrektur
DE102022111624A1 (de) Fehlerkorrektur mit schneller Syndromberechnung
DE2507112A1 (de) Anordnung zur bildung von fehlersyndrom- und fehlerkorrekturcodegruppen in einem datenverarbeitungssystem

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Free format text: PATENTANWAELTE RUFF, WILHELM, BEIER, DAUSTER & PARTNER, 70173 STUTTGART

R071 Expiry of right