DE4117726A1 - Fehlerkorrekturverfahren und einrichtung zu dessen durchfuehrung - Google Patents
Fehlerkorrekturverfahren und einrichtung zu dessen durchfuehrungInfo
- 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
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
- 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)
+ 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)
+ (γ⁴+γ⁸+γ¹⁶+γ³²+γ⁶⁴+γ¹²⁸) 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)
- 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₇)
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:
σ (χ) = χ²+σ₁ χ+σ₂ 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.
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)
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)
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)
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 | 三洋電機株式会社 | デ―タ誤り検出回路 |
-
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 FR FR9106389A patent/FR2672403B1/fr not_active Expired - Lifetime
- 1991-05-28 JP JP3123532A patent/JP2644639B2/ja not_active Expired - Fee Related
- 1991-05-29 IT ITMI911471A patent/IT1250495B/it active IP Right Grant
- 1991-05-30 DE DE4117726A patent/DE4117726C2/de not_active Expired - Lifetime
- 1991-05-30 US US07/707,811 patent/US5315601A/en not_active Expired - Lifetime
Patent Citations (2)
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 |