DE4117726A1 - Fehlerkorrekturverfahren und einrichtung zu dessen durchfuehrung - Google Patents

Fehlerkorrekturverfahren und einrichtung zu dessen durchfuehrung

Info

Publication number
DE4117726A1
DE4117726A1 DE4117726A DE4117726A DE4117726A1 DE 4117726 A1 DE4117726 A1 DE 4117726A1 DE 4117726 A DE4117726 A DE 4117726A DE 4117726 A DE4117726 A DE 4117726A DE 4117726 A1 DE4117726 A1 DE 4117726A1
Authority
DE
Germany
Prior art keywords
error
value
following
calculator
syndromes
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.)
Granted
Application number
DE4117726A
Other languages
English (en)
Other versions
DE4117726C2 (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

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (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 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.
  • (I) Im Falle von Fehlerfreiheit: A=B=C=0, S₀ = 0, S₃ = 0
  • (2) Im Falle eines Einwortfehlers: Wenn A=B=B=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 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 Fehlerkorrekturverfahren vorzuschlagen, mit dem Fehlerwerte bei kürzerer Rechenzeit bestimmbar sind und dessen Fehlerkorrektureinrichtung eine vereinfachte Schaltung besitzt.
Zur Lösung dieser Aufgabe wird ein Fehlerkorrekturverfahren mit folgenden Schritten vorgeschlagen:
  • a) Erhalt von vier Syndromen S₀, S₁, S₂ und S₃, indem die nachfolgenden Rechenoperationen von sich aus n Worten zusammensetzenden Blockdaten VT von einer Gleichheitsmatrix H durchgeführt wird:
  • b) Feststellung der Fehlerfreiheit, wenn die besagten Syndrome S₀, S₁, S₂ und S₃ die Bedingung S₀ = S₁ = S₂ = 0 erfüllen;
  • c) Berechnung von D = S₀ · S₂ + S² aus den Syndromen S₀, S₁, S₂ und S₃ und Feststellung, ob D gleich 0 ist;
  • d) Berechnung der nachfolgenden Koeffizienten σ₁ und σ₂, falls D nicht gleich 0 ist:
  • e) Erhalt des nachfolgenden Koeffizienten K und des Wertes Tr (K), wenn die Koeffizienten σ₁ und σ₂ nicht gleich 0 sind:
  • f) Erhalt der nachfolgenden Fehlerorte X₁ und X₂ von dem Koeffizienten K: X₁ = x₁ σ₁X₂ = (1 + x₁) σ₁wo, aus Tr (α₅) = 1, folgendes abgeleitet wird:
  • g) Erhalt der nachfolgenden Fehlerwerte Y₁ und Y₂ aus den besagten Fehlerorten X₁ und X₂: wobei Zweiwertfehler korrigiert werden, wo K ∈ GF (2⁸).
Zur Durchführung des Verfahrens wird eine Fehlerkorrektureinrichtung vorgeschlagen, mit:
  • a) einem Syndromrechner zum Berechnen von Syndromen S₀, S₁, S₂ und S₃ aus n erhaltenen Worten;
  • b) einen ersten Koeffizientenrechner zur Berechnung der folgenden Koeffizienten σ₁ und σ₂ aus den Syndromen
  • c) einen zweiten Koeffizientenrechner zur Berechnung des nachfolgenden Koeffizienten K aus den Koeffizienten σ₁ und σ₂
  • d) einen x₁-Wertrechner zur Berechnung des Wertes x₁ aus dem Koeffizienten K;
  • e) einen Fehlerortwertrechner zur Berechnung der nachfolgenden Fehlerorte X₁ und X₂ aus besagtem Wert x₁ X₁ = x₁σ₁X₂ = (1+x₁) σ₁
  • f) einen Fehlerwertrechner zum Erhalt der Fehlerortwerte X₁ und X₂ und nachfolgend Berechnung der folgenden Fehlerwerte Y₁ und Y₂
  • g) einen Fehlerdiskriminator zur Bestimmung wieviele Fehler stattfinden;
  • h) wobei der X₁-Wertrechner Logikglieder verwendet, die die nachfolgenden Gleichungen erfüllen: χ₀ = k₃ + k₅ + k₆χ₁ = k₀ + k₂ + k₄χ₂ = k₀ + k₃ + k₄ + k₆χ₃ = k₁ + k₂ + k₃ + k₄χ₄ = k₀ + k₇χ₅ = k₁ + k₂ + k₃ + k₄ + k₆χ₆ = k₀ + k₁ + k₂ + k₄ + k₇χ₇ = k₀ + k₁ + k₂ + k₄
Bei einer vorteilhaften Ausgestaltungen 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ührungsbeispiel.
Es zeigt
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
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⁶⁴) γ¹²⁸ (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 0 = 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₇)
Durch Umschreiben von Gleichung (6) erhält man 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 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 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 Pufferrecoders (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 Pufferrecoder (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 leitet anschließend die Fehlerkorrekturoperationen ein (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 Pufferrecoder (101) zur Korrektur des Einwortfehlers an (in Schritt 204).
Falls aber das Ergebnissignal zeigt, daß D ungleich "0" ist, weist D 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 mit folgenden Schritten:
  • 2a) Erhalt von vier Syndromen S₀, S₁, S₂ und S₃, indem die nachfolgende Rechenoperation von sich aus n Worten zusammensetzenden Blockdaten VT und einer Gleichheitsprüfmatrix H durchgeführt wird:
  • b) Feststellung der Fehlerfreiheit, wenn die besagten Syndrome S₀, S₁, S₂, und S₃ die Bedingung S₀ = S₁ = S₂ = S₃ = 0 erfüllen;
  • c) Berechnung von D = S₀ S₂ + S₁² aus besagten Syndromen S₀, S₁, S₂ und S₃ und Feststellung, ob D gleich 0 ist;
  • d) Berechnung der nachfolgenden Koeffizienten σ₁ und σ₂, falls D nicht gleich "0" ist:
  • e) Erhalt des nachfolgenden Koeffizienten K und des Wertes Tr (K), wenn die Koeffizienten σ₁ und σ₂ nicht gleich "0" sind:
  • f) Erhalt der nachfolgenden Fehlerorte X₁ und X₂ von besagtem Koeffizient K: X₁ = x₁ σ₁X₂ = (1 + x₁) σ₁worin aus Tr (α⁵) = 1, folgendes hergeleitet wird:
  • g) Erhalt der nachfolgenden Fehlerwerte Y₁ und Y₂ aus den besagten Fehlerorten X₁ und X₂: wobei Zweiwertfehler korrigiert werden, wo K ∈ GF (2⁸).
2. Fehlerkorrektureinrichtung zur Durchführung des Verfahrens nach Anspruch 1, mit:
  • a) einem Syndromrechner (120) zum Berechnen von Syndromen S₀, S₁, S₂ und S₃ aus n erhaltenen Worten;
  • b) einen ersten Koeffizientenrechner (130) zur Berechnung der nachfolgenden Koeffizienten σ₁ und σ₂ aus besagten Syndromen
  • c) einen zweiten Koeffizientenrechner (140) zur Berechnung des nachfolgenden Koeffizienten K aus besagten Koeffizienten
  • d) einen x₁-Wertrechner (150) zur Berechnung eines Wertes x₁ aus dem Koeffizient K;
  • e) einen Fehlerortwertrechner zur Berechnung der nachfolgenden Fehlerorte X₁ und X₂ aus dem x₁-Wert X₁ = x₁ σ₁X₂ = (1+x₁) σ₁
  • f) einen Fehlerwertrechner (180) zum Erhalt der besagten Fehlerortwerte X₁ und X₂ und nachfolgend Berechnung der folgenden Fehlerwerte Y₁ und Y₂
  • g) einen Fehlerdiskriminator (160) zur Bestimmung, wieviele Fehler stattfinden;
  • h) wobei der x₁-Wertrechner (150) Logikglieder verwendet, die die nachfolgenden Gleichungen erfüllen: χ₀ = k₃ + k₅ + k₆χ₁ = k₀ + k₂ + k₄χ₂ = k₀ + k₃ + k₄ + k₆χ₃ = k₁ + k₂ + k₃ + k₄χ₄ = k₀ + k₇χ₅ = k₁ + k₂ + k₃ + k₄ + k₆χ₆ = k₀ + k₁ + k₂ + k₄ + k₇χ₇ = k₀ + k₁ + k₂ + k₄
3. Fehlerkorrektureinrichtung nach Anspruch 2, dadurch gekennzeichnet, daß die Logikglieder als XOR-Glieder ausgebildet sind.
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 true DE4117726A1 (de) 1992-08-06
DE4117726C2 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 주식회사 케이티 복수의 오류 복제본으로부터 오류를 복구하는 방법 및 상기 방법을 이용하는 스토리지 시스템
KR101544480B1 (ko) 2010-12-24 2015-08-13 주식회사 케이티 복수 개의 프락시 서버를 포함하는 분산 저장 시스템 및 그 오브젝트 관리 방법 및 컴퓨터에 의하여 독출가능한 저장 매체
KR101585146B1 (ko) 2010-12-24 2016-01-14 주식회사 케이티 오브젝트를 복수 개의 데이터 노드들의 위치에 기반하여 분산 저장하는 분산 저장 시스템 및 그 위치 기반 분산 저장 방법 및 컴퓨터에 의하여 독출 가능한 저장 매체
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 삼성전자주식회사 메모리 컨트롤러, 메모리 시스템 및 메모리 모듈

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5725047A (en) * 1980-07-23 1982-02-09 Sony Corp Error correcting method
DE3128599A1 (de) * 1980-07-18 1982-06-09 Sony Corp., Tokyo Verfahren zur fehlerkorrektur

Family Cites Families (7)

* 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
JPS5961332A (ja) * 1982-09-30 1984-04-07 Nec Corp 誤り訂正回路
USRE33332E (en) * 1983-03-12 1990-09-11 Sony Corporation Apparatus for correcting errors
EP0136587B1 (de) * 1983-09-06 1991-04-17 Kabushiki Kaisha Toshiba 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 三洋電機株式会社 デ―タ誤り検出回路

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3128599A1 (de) * 1980-07-18 1982-06-09 Sony Corp., Tokyo Verfahren zur fehlerkorrektur
JPS5725047A (en) * 1980-07-23 1982-02-09 Sony Corp Error correcting method

Also Published As

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

Similar Documents

Publication Publication Date Title
DE3486471T2 (de) Verfahren und Vorrichtung zur Dekodierung eines Fehler-Korrektur-Code
DE69032891T2 (de) Verfahren und Gerät zur Ausführung mathematischer Funktionen mit Hilfe polynomialer Annäherung und eines Multiplizierers rechteckigen Seitenverhältnisses
DE2162833C3 (de) Einrichtung zum Codieren und Decodieren eines aus k Bytes mit je b Bits bestehenden Datenblocks und Korrektur zweier fehlerhafter Bits
DE2246968A1 (de) Einrichtung zur kombination, insbesondere multiplikation, zweier gleitkommazahlen
DE19758079A1 (de) Verfahren und Vorrichtung zur Galoisfeld-Multiplikation
DE69130640T2 (de) Arithmetische Operationseinheit mit Bit-Invertierungsfunktion
DE4220196C2 (de) Halbleiterspeichervorrichtung und Verfahren zum Korrigieren eines Datenfehlers in einer Halbleiterspeichervorrichtung entsprechend einer vorbestimmten Hamming-Matrix
DE102006005817B4 (de) Fehlererkennungsvorrichtung für einen Adressdecoder und Vorrichtung zur Fehlererkennung für einen Adressdecoder
DE2361512C2 (de) Schaltungsanordnung zur Prüfung eines Additionsresultates
DE2941868A1 (de) Anordnung zur vornahme einer fehlerkorrektur und fehlerermittelung bei binaerwoertern
DE2221693C3 (de) Schaltungsanordnung zur Ausführung einer Multiplikation zwischen zwei Binärzahlen
DE4117726C2 (de) Fehlerkorrekturverfahren und Einrichtung zu dessen Durchführung
DE3852576T2 (de) Einrichtung und Verfahren für eine erweiterte Arithmetik-Logik-Einheit zur Beschleunigung der ausgewählten Operationen.
DE3303269C2 (de)
DE1474037B2 (de) Paritaetspruefverfahren und -pruefeinrichtung fuer datenverarbeitende maschinen
DE3434777C2 (de)
DE3340362C2 (de)
DE3329023C2 (de)
DE3750756T2 (de) Ausführung von Fehlererkennung unter Verwendung eines ungebrauchten Modulo-m-Kodes.
EP0159403A2 (de) Anordnung zur Korrektur von Bündelfehlern in verkürzten zyklischen Blockcodes
DE3424078A1 (de) Dezimalmultiplikations-einrichtung
DE69230241T2 (de) Verfahren und Anordnung zur Negierung eines Multiplikationsoperanden
DE2712582C2 (de) DDA-Rechner (Digital-Differential-Analysator)
DE3702697A1 (de) Paritaetserzeugungsschaltung
DE102018126685B3 (de) Verarbeitung von Daten

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