DE4117726C2 - Fehlerkorrekturverfahren und Einrichtung zu dessen Durchführung - Google Patents
Fehlerkorrekturverfahren und Einrichtung zu dessen DurchführungInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- 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
-
- 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
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)
+ 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)
+ (γ⁴+γ⁸+γ¹⁶+γ³²+γ⁶⁴+γ¹²⁸) 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)
- 1) R = 1;
- 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₇)
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:
σ (χ) = χ²+σ₁ χ+σ₂ 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 χ₆.
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)
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)
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 | 三洋電機株式会社 | デ―タ誤り検出回路 |
-
1991
- 1991-01-31 KR KR1019910001859A patent/KR930007928B1/ko not_active IP Right Cessation
- 1991-05-15 GB GB9110490A patent/GB2252431B/en not_active Expired - Lifetime
- 1991-05-28 JP JP3123532A patent/JP2644639B2/ja not_active Expired - Fee Related
- 1991-05-28 FR FR9106389A patent/FR2672403B1/fr not_active Expired - Lifetime
- 1991-05-29 IT ITMI911471A patent/IT1250495B/it active IP Right Grant
- 1991-05-30 US US07/707,811 patent/US5315601A/en not_active Expired - Lifetime
- 1991-05-30 DE DE4117726A patent/DE4117726C2/de not_active Expired - Lifetime
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 |