DE19719654A1 - Fehlerdekodierverfahren und -vorrichtung für Reed-Solomon-Codes - Google Patents
Fehlerdekodierverfahren und -vorrichtung für Reed-Solomon-CodesInfo
- Publication number
- DE19719654A1 DE19719654A1 DE19719654A DE19719654A DE19719654A1 DE 19719654 A1 DE19719654 A1 DE 19719654A1 DE 19719654 A DE19719654 A DE 19719654A DE 19719654 A DE19719654 A DE 19719654A DE 19719654 A1 DE19719654 A1 DE 19719654A1
- Authority
- DE
- Germany
- Prior art keywords
- error
- signal
- words
- syndrome
- calculation
- 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
- 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
Description
Die Erfindung betrifft allgemein ein Verfahren und eine
Vorrichtung zur Durchführung einer Fehlerdekodierung von
digitalen Daten, welche Reed-Solomon-Codes verwenden.
Insbesondere betrifft die Erfindung ein Verfahren und eine
Vorrichtung zur Dekodierung des Werts und des Orts von
Fehlerwörtern in digitalen Daten, welche Reed-Solomon-Codes
verwenden, durch eine Serie von Produktsummen-Re
chenoperationen, ohne eine Potenzberechnung.
Reed-Solomon-Codes (im folgenden als RS-Codes bezeichnet) sind
in der Kommunikation sehr wichtig für die Bewahrung von Daten,
wobei sie arbeiten, um Fehler in Bytes von digitalen Daten
kontinuierlich zu korrigieren.
Bei dem Entwurf von RS-Code-Decodern gibt es im allgemeinen
zwei unterschiedliche Schaltungstypen. Einer ist der Pipeline-Typ
("Rohrleitungs"-Typ) und der andere ist der
Programmsteuertyp auf Prozessorbasis (processor-based program
control type). RS-Code-Decoder des Pipeline-Typs werden
typischerweise in Systemen verwendet, welche bei hoher
Geschwindigkeit und in Echtzeit arbeiten müssen.
Dementsprechend sind die Schaltungen für einen RS-Code-Decoder
des Pipeline-Typs kompliziert und teuer, was in Systemen,
welche nur eine moderate Geschwindigkeit erfordern, eine
Verschwendung von Ressourcen und Geld darstellt. Der RS-Code-De
coder des Programmsteuerungs-Typs auf Prozessorbasis führt
unter der Programmsteuerung wiederholte Berechnungen unter
Verwendung einer Arithmetiklogikeinheit (ALU = arithmetic logic
unit) durch, was die Komplexität und Kosten der Schaltung des
RS-Code-Decoders vermindert. Es gibt offensichtliche
Unterschiede zwischen den RS-Code-Decodern des Pipeline-Typs
und des Programmsteuertyps auf Prozessorbasis.
Wenn es für RS-Codes mehr als zwei Fehler unter den
übertragenen Worten gibt, sind die Berechnungen für die
Dekodierung zu komplex, um geeignet einen RS-Code-Decoder des
Programmsteuertyps auf Prozessorbasis zu verwenden. Im
folgenden wird jedoch das konventionelle System dieses Typs zum
Dekodieren von zwei Fehlerwörtern verwendet und
veranschaulicht:
Ein RS-Code kann als RSm(n, k) definiert werden. Der Eingangsanschluß des RS-Code-Decoders empfängt n Symbole, wobei jedes Symbol aus m Bits besteht. Nach der Fehlerkorrektur werden k Datensymbole aus dem Decoder übertragen.
Ein RS-Code kann als RSm(n, k) definiert werden. Der Eingangsanschluß des RS-Code-Decoders empfängt n Symbole, wobei jedes Symbol aus m Bits besteht. Nach der Fehlerkorrektur werden k Datensymbole aus dem Decoder übertragen.
RSm(n, k) kann definiert werden als:
m die Zahl von Bits jedes importierten Symbols;
n(2m-1) die Codelänge der RS-Codes;
k die Zahl an Informationswörtern in RS-Codes;
d = n+k+1 der Hamming-Abstand (Hamming distance) in RS-Codes; und
m die Zahl von Bits jedes importierten Symbols;
n(2m-1) die Codelänge der RS-Codes;
k die Zahl an Informationswörtern in RS-Codes;
d = n+k+1 der Hamming-Abstand (Hamming distance) in RS-Codes; und
die Maximalzahl von Fehlerworten, die
von dem Decoder dekodiert werden.
Daher gilt in einem RS-Code-Decoder, welcher zwei Fehlerworte
erfassen kann, daß t = 2, d = 2t+1 = 5, k = n+1-5 = n-4, und RSm(n, k)
kann zu RSm(n, n-4) modifiziert werden. Für RSm(n, n-4)-Codes
kann das Erzeugungspolynom (generating polynomial) dargestellt
werden als:
g(x) = (x-1) (x-α) (x-α²) (x-α³)
Es kann angenommen werden, daß sich in den n Symbolen v
Fehlerworte befinden, welche sich bei l₁, l₂, l₃, l₄, . . ., lv
befinden, und deren Werte jeweils Y₁, Y₂, Y₃, Y₄, . . ., Yv sind. Um
im folgenden das Prinzip des Dekodierens der RS-Codes zu
erklären, wenn der Ort li bekannt ist, bevor die n Symbole
dekodiert sind, wird das Fehlerwort als eine "Löschung"
("erasure") definiert, und wenn der Ort li unbekannt ist, bevor
die n Symbole dekodiert sind, wird das Fehlerwort als ein
"Fehler" ("error") definiert.
Bei RS-Codes, welche einen Hamming-Abstand (d = 5) haben, können
p Fehlerworte und q Löschungsworte erfaßt werden, wenn p und q
die folgende Beziehung erfüllen:
2p+q d-1 = 5-1 = 4 (1)
Und wenn Xi = αli 1 i v,
dann sind die Syndrome (syndromes):
dann sind die Syndrome (syndromes):
d. h. die Syndrome S₀, S₁, S₂, S₃ können durch die jeweiligen
Kombinationen Xj und Yj erhalten werden, wobei:
v: die Zahl an Löschungsworten und Fehlerworten, v = p+q,
p: die Zahl an Fehlerworten,
q: die Zahl an Löschungsworten,
Xj: Xj = αlj und lj ist der Ort des j-ten Fehlers,
Sk: Syndrom,
Yj: j-ter Fehlerwert, und
d: Hamming-Abstand des Codes.
v: die Zahl an Löschungsworten und Fehlerworten, v = p+q,
p: die Zahl an Fehlerworten,
q: die Zahl an Löschungsworten,
Xj: Xj = αlj und lj ist der Ort des j-ten Fehlers,
Sk: Syndrom,
Yj: j-ter Fehlerwert, und
d: Hamming-Abstand des Codes.
Gemäß mehrerer US-Patente, beispielsweise nach Ozaki
(US-4,852,099) und Okamoto et al. (US-4,677,622) ist folgendes
bekannt:
Wenn p = 0 und q = 4, dann:
Wenn p = 0 und q = 4, dann:
Wenn q = 3 und p = 0, dann:
Wenn q = 2 und p = 0, dann:
Wenn q = 1 und p = 0, dann:
Y₁ = S₀ (6)
Wenn die Zahl an Löschungsworten q eine Zahl von eins bis drei
ist, wird die Zahl an Fehlerworten p, welche untergebracht
werden kann, null oder eins, in Übereinstimmung mit Gleichung
(1). Um zu bestimmen, ob der tatsächliche Wert von p null oder
eins ist, oder größer als eins (in der Situation, in welcher p
größer als eins ist, kann der Decoder kein Fehlerwort aus n
Symbolen erfassen), muß auf einen Satz von Forney-Syndromen
Bezug genommen werden.
Wenn q gleich eins ist, dann sind die Forney-Syndrome definiert
als:
T₁ = S₁+S₀X₁
T₂ = S₂+S₁X₂
T₃ = S₃+S₂X₃ (7)
T₂ = S₂+S₁X₂
T₃ = S₃+S₂X₃ (7)
Wenn q gleich zwei ist, dann sind die Forney-Syndrome definiert
als
T₁ = S₂+(X₁+X₂)S₁+X₁X₂S₀
T₂ = S₃+(X₁+X₂)S₂+X₁X₂S₁ (8)
T₂ = S₃+(X₁+X₂)S₂+X₁X₂S₁ (8)
Wenn q gleich drei ist, dann sind die Forney-Syndrome definiert
als:
T₁ = S₃+(X₁+X₂+X₃)S₂+(X₁X₂+X₂X₃+X₃X₁)S₁+X₁X₂X₃S₀ (9)
Unter der Bedingung, daß q gleich eins oder zwei ist, kann der
Wert von p gemäß den folgenden Regeln bestimmt werden:
- (1) Wenn die Forney-Syndrome alle gleich null sind, dann ist der Wert von p null.
- (2) Wenn die Forney-Syndrome alle ungleich null sind, dann ist der Wert von p eins.
- (3) Wenn mindestens eines der Forney-Syndrome gleich null und mindestens eines der Forney-Syndrome ungleich null ist, kann der Decoder kein Fehlerwort aus n Symbolen korrigieren.
Ferner, wenn q gleich drei ist und das Forney-Syndrom gleich
null ist, dann kann der Decoder Fehlerworte aus n Symbolen
korrigieren. Wenn q gleich drei ist und das Forney-Syndrom
ungleich null ist, kann der Decoder keine Fehler aus n Symbolen
korrigieren.
Wenn p gleich eins ist, können die Orte von unbekannten
Fehlerworten mit den folgenden Gleichungen bestimmt werden:
wenn q = 1 und p = 1, dann
wenn q = 1 und p = 1, dann
wenn q = 2 und p = 1, dann
Aus den obigen Gleichungen (3) bis (11) kann der Wert von p nur
bestimmt werden, wenn der Wert q ungleich null ist. In der
Situation, daß q gleich null ist, wird der Wert von p durch
Auswertung der folgenden Größen bestimmt:
SA = S₁S₁+S₀S₂
SB = S₂S₂+S₁S₃
SC = S₀S₃+S₁S₂ (12)
SB = S₂S₂+S₁S₃
SC = S₀S₃+S₁S₂ (12)
- (1) Wenn die drei Größen alle gleich null sind, dann ist p gleich eins.
- (2) Wenn die drei Größen alle ungleich null sind, dann ist p gleich 2.
- (3) Wenn eine oder mehrere der Größen gleich null sind, und eine oder mehrere der Größen ungleich null sind, dann kann der Decoder die Fehler in n Symbolen nicht korrigieren.
In der Situation (1), d. h. q = 0 und p = 1:
In der Situation (2), d. h. q = 0 und p = 2:
Aus Gleichung (3) bis (13) können Xi und Yi durch drei Arten
von Berechnung bestimmt werden, wie Addition, Multiplikation
und Inversion, außer im Fall von (p, q) = (2,0). (Wenn q ungleich
null ist, unter der Bedingung, daß i q, kann Xi erhalten
werden, während die n Symbole importiert werden, und die Werte
von Yi und li können mit der zusätzlichen Berechnung eines
Logarithmus erhalten werden).
Unter der Bedingung, daß p = 2 und q = 0, gibt es mehrere Wege, um
mit Gleichung (14) und (15) für die Werte von X₁ und X₂ zu
lösen. Beispielsweise besteht das konventionelle Verfahren
darin, eine "Chien-Suche" ("Chien′s Search") durchzuführen. Bei
dem Verfahren unter Verwendung einer "Chien-Suche" wird X₁
zunächst auf einen vorbestimmten Wert eingestellt, und der Wert
von X₁+X₂ wird als SUM eingestellt. Somit wird X₂ = SUM-X₁ aus
Gleichung (14) erhalten. Danach werden X₁ und X₂ in Gleichung
(15) eingesetzt. Wenn der Wert auf der linken Seite der Gleichung
nicht gleich dem Wert auf der rechten Seite ist, wird X₁ auf einen
weiteren vorbestimmten Wert eingestellt, unter Bezugnahme auf
den vorherigen Wert. Durch wiederholtes Einstellen des Wertes
X₁, kann der Wert von X₂ erhalten werden. Die Geschwindigkeit
der Dekodierung ist aber sehr langsam für mehrere
Wiederholungen der Berechnung, in welcher unterschiedliche
Werte von X₁ und X₂ in dem Programms teuer-Decoder auf
Prozessorbasis eingesetzt werden. Das Verfahren beeinflußt
daher das gesamte System negativ und ist für die Berechnung der
tatsächlichen Werte von X₁ und X₂ nicht praktikabel.
Es ist daher eine Aufgabe der Erfindung, ein Verfahren zur
Durchführung einer Fehlerdekodierung von digitalen Daten,
welche einen Reed-Solomon-Code verwenden, zu schaffen, welches
nützlich ist um korrekt und schnell die Werte und Orte von zwei
Fehlern in digitalen Daten, welche als RSm(n, n-4) des
Reed-Solomon-Codes definiert sind, zu dekodieren, durch eine Serie
von Produktsummen-Arithmetikoperationen, unter Verwendung von
Addition, Multiplikation, Division, Verschiebelogarithmus
(shift-logarithm), und Ortung (location).
Eine weitere Aufgabe der Erfindung besteht darin, eine
Vorrichtung zur Durchführung eines solchen Dekodierverfahrens
zu schaffen.
Dies wird in Übereinstimmung mit der Erfindung dadurch gelöst,
daß ein Fehlerdekodierverfahren zur Dekodierung von
Syndromsignalen, welche Reed-Solomon-Codes verwenden,
geschaffen wird, wobei die Reed-Solomon-Codes als RSm(n, k)
definiert werden, m eine Zahl von Bits jedes Syndroms ist, n
eine Länge von Reed-Solomon-Codes ist, und k eine Länge von
Informationsworten in den Reed-Solomon-Codes ist, wobei die
Reed-Solomon-Codes p Fehlerworte (error words) und q
Löschungsworte (erasure words) umfassen, n(2m-1) und 2p+qd-1,
und wobei d der Hamming-Abstand ist. Das
Fehlerdekodierverfahren beinhaltet die Dekodierung der
Fehlerworte und Löschungsworte, die in jedem Syndromsignal
existieren, und die Bestimmung der Zahlen
p und q.
Zwei Gleichungen X₁² = α2l und X₂² = α2l werden für eine Berechnung
des Orts bzw. der Ortung ausgewertet, wenn es zwei Fehlerworte
und keine Löschungsworte in jedem Syndromsignal gibt, wobei die
Syndromsignale, welche zwei Fehler haben, definiert sind als:
wobei X₁ = αl, X₂ = αl, l₁ und l₂ die Orte von zwei
Fehlerworten definieren, und Y₁ und Y₂ Werte der zwei
Fehlerworte sind:
l₁ und l₂ werden durch eine Berechnung des Logarithmus von α2l und α2l und einer Verschiebungsberechnung (calculation of shifting) ausgewertet;
Y₁ und Y₂ werden durch eine Serie von Produkt/Summen-Arith metikberechnungen gemäß X₁² = α2l, X₂ = α2l erhalten.
l₁ und l₂ werden durch eine Berechnung des Logarithmus von α2l und α2l und einer Verschiebungsberechnung (calculation of shifting) ausgewertet;
Y₁ und Y₂ werden durch eine Serie von Produkt/Summen-Arith metikberechnungen gemäß X₁² = α2l, X₂ = α2l erhalten.
Wenn es bei dem oben erwähnten Fehlerdekodierverfahren keine
Löschungsworte in den Syndromsignalen gibt, kann die Zahl p von
Fehlerworten durch die drei Größen S₁S₁+S₀S₂, S₂S₂+S₁S₃ und
S₀S₃+S₁S₂ bestimmt werden. Wenn keine dieser drei Größen gleich
null ist, dann ist p gleich eins. Wenn alle drei Größen gleich
null sind, dann ist p gleich eins. Wenn mindestens eine der
drei Größen gleich null und mindestens eine der drei Größen
ungleich null ist, dann ist p nicht bestimmbar.
Ferner wird die Berechnung des Ortes (der Ortung) in dem oben
erwähnten Fehlerdekodierverfahren durch Auswerten der folgenden
Gleichung durchgeführt:
αi +α-i → αi 1 i 2m-1
Wenn es zwei Fehlerworte und keine Löschungsworte in jedem
Syndromsignal gibt, dann:
Daher können Orte l₁ und l₂ der Fehlerworte durch Berechnung
des Ortes gemäß der folgenden Gleichungen bestimmt werden:
X₁² = α2l
X₁² = α2l
X₁² = α2l
und l₁ und l₂ werden wir folgt bestimmt:
i wenn keine Verschiebung (kein shift)
i wenn keine Verschiebung (kein shift)
wenn Verschiebung (shift) und i
geradzahlig
wenn Verschiebung (shift)
und i ungeradzahlig.
Ferner kann das Fehlerdekodierverfahren gemäß der Erfindung
durchgeführt werden, indem eine Vorrichtung zum Dekodieren von
Fehlerworten und Löschungsworten, welche in übertragenen
Wortsignalen existieren, geschaffen wird, unter Verwendung von
Reed-Solomon-Codes, welche von einem externen System
bereitgestellt werden. Eine solche Vorrichtung würde einen
Syndrom-Generator enthalten, welcher mit dem externen System zu
koppeln wäre, zum Empfangen der von dort übertragenen
Wortsignale, und zum Erzeugen von Syndromsignalen.
Ein Löschungszähler (erasure counter) sollte mit dem externen
System gekoppelt sein, zum Empfangen der Löschungsworte. Ein in
dem Löschungszähler gespeicherter Löschungszählwert wird
jedesmal, daß ein Löschungswort erfaßt wird, um eins
inkrementiert.
Register sind mit dem Syndrom-Generator gekoppelt und sollten
mit dem externen System gekoppelt sein, um die Syndromsignale
und Löschungsworte zu empfangen, und um die Syndromsignale und
Löschungsworte an vorbestimmten Orten zu speichern. Eine
Arithmetiklogikschaltung (ALU) ist mit den Registern gekoppelt,
um die Syndromsignale und die Löschungsworte, die in den
Registern gespeichert sind, zu lesen, und um eine vorbestimmte
Operation durchzuführen, um den Registern ein Rückkoppelsignal
bereitzustellen, und um ein Deduktivsignal (deductive signal)
zu erzeugen.
Ein Komparator ist mit der Arithmetiklogikschaltung gekoppelt,
um das Deduktivsignal zu empfangen, eine Vergleichsoperation
durchzuführen, und dann ein Vergleichssignal auszugeben. Ein
Programm-Controller (Programmsteuervorrichtung) ist mit dem
Komparator und dem Löschungszähler gekoppelt, um das
Vergleichssignal aus dem Komparator zu empfangen, den in dem
Löschungszähler gespeicherten Löschungszählwert zu lesen und
ein Programmsteuersignal auszugeben. Ein Programmzähler
(program counter) ist mit dem Programm-Controller gekoppelt, um
das Programmsteuersignal zu empfangen, wobei er darauf
ansprechend ein Programmzählsignal erzeugt und auch ein
Rückkoppelsignal an den Programm-Controller ausgibt.
Ansprechend auf den Empfang des Rückkoppelsignals verändert der
Programm-Controller das Programmsteuersignal.
Ein Interpretierer (interpreter) ist mit dem Programmzähler
gekoppelt, um das Programmzählsignal zu empfangen, und gibt
darauf ansprechend ein Registeradreß-Signal und ein ALU-Frei
gabesignal (ALU enable signal) aus. Die
Arithmetiklogikschaltung (ALU) liest die Syndromsignale und
liest auch die in den Registern gespeicherten Löschungsworte,
gemäß des Registeradreß-Signals, um die Fehlerworte in den
übertragenen Wortsignalen zu dekodieren.
Darüber hinaus enthält die Arithmetiklogikschaltung einen
Inverter, eine Multiplizier-Addier-Schaltung, eine Schiebe-
Logarithmus-Schaltung (shift-logarithm circuit) zur
Durchführung von Schiebe- (shift) und Logarithmus-Berechnungen,
und einen Orter (locator) zur Durchführung der
Ortungsberechnung. Der Inverter führt eine Invertier-Berechnung
mit den Syndromsignalen durch, und die Multiplizier-Addier-Schal
tung führt eine Additions-Berechnung und eine
Multiplikations-Berechnung mit den Syndromsignalen durch. Die
Schiebe-Logarithmus-Schaltung führt eine logarithmische
Berechnung der Syndromsignale durch, und eine
Verschiebungsberechnung (shift calculation) mit dem Ergebnis
der logarithmischen Berechnung durch, gemäß dem
ALU-Freigabesignal. Der Orter führt eine Ortungsberechnung
durch.
Das Verfahren wird in der Arithmetiklogikschaltung selektiv
durchgeführt, indem der Inverter, die Multiplizier-Addier-Schal
tung, die Schiebe-Logarithmus-Schaltung und der Orter
betätigt werden, um das Rückkoppelsignal und das Deduktivsignal
zu erzeugen.
Weitere Aufgaben, Merkmale und Vorteile der Erfindung gehen aus
der folgenden, ausführlichen Beschreibung der bevorzugten aber
nicht beschränkenden Ausführung hervor, unter Bezugnahme auf
die begleitenden Zeichnungen, in welchen:
Fig. 1 ein Schaltungs-Blockdiagramm der bevorzugten
Ausführung der Decodervorrichtung gemäß der Erfindung ist;
Fig. 2 ein Schaltungs-Blockdiagramm der Schiebe-
Logarithmus-Schaltung in der bevorzugten Ausführung ist;
Fig. 3 ein Flußdiagramm der bevorzugten Ausführung des
Dekodierverfahrens gemäß der Erfindung ist.
In Fig. 1 umfaßt eine Dekodiervorrichtung 200 gemäß der
bevorzugten Ausführung der Erfindung einen Syndrom-Generator
210, Register 220, eine Arithmetiklogikschaltung 230, einen
Interpretierer 240, einen Komparator 250, einen Programmzähler
260, einen Programm-Controller 270 und einen Löschungszähler
(erasure counter) 280. Die Arithmetiklogikschaltung 230 enthält
einen Inverter 232, eine Multiplizier-Addier-Schaltung 234,
eine Schiebe-Logarithmus-Schaltung 236 und eine
Ortungsschaltung 238.
Wenn ein externes System 100 damit beginnt, Signale zu
übertragen, werden übertragene Wortsignale an den Syndrom-Ge
nerator 210 über eine Leitung 10 übertragen, und
Löschungswortsignale werden über eine Leitung 32 an die
Register 220 und den Löschungszähler 280 übertragen. Der
Syndrom-Generator 210 erzeugt Syndromsignale aus den
übertragenen Wortsignalen gemäß dem Format von RS-Codes.
Syndromsignale werden über eine Leitung 12 an die Register 220
ausgegeben. Die Register 220 speichern vorübergehend jedes
Syndromsignal und Löschungswortsignal in entsprechenden
Adressen in vorbestimmten Registern. Jedesmal, daß der
Löschungszähler 280 ein Löschungswortsignal über die Leitung 32
empfängt, wird ein Löschungszählwert, welcher in dem
Löschungszähler 280 gespeichert ist, um eins inkrementiert, um
die Summe aller Löschungswortsignale zu zählen. Der
Löschungszählwert wird über ein Leitung 34 an den
Programm-Controller 270 übertragen.
Wenn die Vorrichtung 200 freigegeben ist, empfängt die
Arithmetiklogikschaltung 230 Syndromsignale und
Löschungswortsignale, welche in den Registern 220 gespeichert
sind, über die jeweilige Leitung 13, 14 und 15. Nach einer
Serie von selektiven Berechnungen in der
Arithmetiklogikschaltung 230, wird auf Leitung 16 ein
Rückkoppelsignal an die Register 220 ausgegeben, wo es an einem
vorbestimmten Ort gespeichert wird. Gleichzeitig wird ein
Deduktivsignal an den Komparator 250 für eine
Vergleichsberechnung ausgegeben. Danach wird ein
Vergleichssignal auf Leitung 22 an einen Programm-Controller
270 ausgegeben.
Auf der Grundlage der Ausgabe des Komparators 250, des
Löschungszählwerts aus dem Löschungszähler 280, und des in dem
Programmzähler 260 gespeicherten Programmzählwerts, bestimmt
der Programm-Controller 270 ob die Programmadresse springen
(jump) sollte oder nicht, und wenn sie sollte, zu welcher
Adresse sie springen sollte. Auf der Grundlage der Bestimmung
wird ein Programmsteuersignal aus dem Programm-Controller 270
über eine Leitung 28 an den Programmzähler 260 ausgegeben. Wenn
der Programmzähler 260 das Programmsteuersignal empfängt, wird
ein Programmzählsignal über eine Leitung 24 an den
Interpretierer 240 ausgegeben. Gleichzeitig verändert der
Programmzähler 260 den Programmzählwert, und gibt dann auf
Leitung 26 den modifizierten Wert als Rückkopplung an den
Programm-Controller 270 aus, um als Referenz für die
Verschiebung (shifting) des Programm-Controller 270 zu dienen.
Der Interpretierer 240 gibt auf Leitung 20 Registeradreß-Signale
aus, und auf Leitung 30 ein Freigabesignal, jeweils an
die Register 220 und die Arithmetiklogikschaltung 230, während
des Empfangs des Programmzählsignals aus dem Programmzähler
260. Die Arithmetiklogikschaltung 230 liest die entsprechend
den Registeradreß-Signalen gespeicherten Werte während des
Empfangs des Freigabesignals. Durch die von der
Arithmetiklogikschaltung 230 ausgeführte Deduktivfunktion,
können der Wert und der Ort von Fehlerworten, die in den
übertragenen Wortsignalen auftreten, bestimmt werden.
Zum Zwecke der Durchführung der Deduktivfunktion umfaßt die
Arithmetiklogikschaltung 230 den Inverter 232, die
Multiplizier-Addier-Schaltung 234, die Schiebe-Logarithmus-Schal
tung 236 und den Orter 238. Der Inverter 232 führt eine
Invertierungsberechnung mit dem ALU-Eingabewert durch. Die
Multiplizier-Addier-Schaltung 234 führt eine Additions- und
Multiplikations-Berechnung mit den ALU-Eingabewerten durch. Die
Schiebe-Logarithmus-Schaltung 236 führt eine logarithmische
Berechnung mit den ALU-Eingabewerten durch, und führt eine
Verschiebungsberechnung (Shift-Berechnung) mit den ALU-Ein
gabewerten auf der Grundlage des Ergebnisses der
Logarithmus-Berechnung durch, gemäß dem Freigabesignal. Der
Orter 238 führt eine Berechnung des Orters durch.
In Fig. 2 enthält die Schiebe-Logarithmus-Schaltung 236 einen
Logarithmusberechner 410 und einen Multiplexer 420. Bei der
Berechnung von Daten wird beispielsweise ein ALU-Eingabewert
über eine Leitung 402; an den Logarithmusberechner 410
übertragen, und daraus werden verschobene (geshiftete)
Syndromsignale und unverschobene (ungeshiftete) Syndromsignale
an den Multiplexer 420 jeweils über Leitungen 412 und 414
ausgegeben, beispielsweise als b₀, b₂m -1, b₂m -2, . . ., b₁ und b₂m -1,
b₂m -2, . . ., b₀. Wenn der Multiplexer 420 diese Signale empfängt
und durch das Freigabesignal (Verschiebung = shift) über Leitung
422 freigegeben ist (enabled), gibt der Multiplexer 420 das
Berechnungsergebnis über Leitung 424 aus.
Der von der Schiebe-Logarithmus-Schaltung 236 ausgeführte
Verschiebelogarithmus (shift-logarithm) ist im folgenden
spezifiziert:
i wenn keine Verschiebung (shift)
i wenn keine Verschiebung (shift)
wenn Verschiebung (shift) und i
geradzahlig
wenn Verschiebung und i
ungeradzahlig
Das Berechnungsverfahren der Ortung ist:
αi + α-i → αi 1 i 2m-1 (17)
Wenn Wortsignale übertragen werden, führt die Vorrichtung 200
zum Dekodieren von Fehlerworten und Löschungsworten einige
anfängliche Tätigkeiten durch. Dies bedeutet, daß zunächst die
in zwei der Register 220 gespeicherten Werte jeweils als αn und
α-1 eingestellt werden, und diese zwei Register als r₁ und r₂
definiert werden. Der Wert des Registers r₁ ist daher αn, und
der Wert des Register r₂ ist α-1. Wenn das erste übertragene
Wortsignal an die Vorrichtung 200 übertragen wird, wird der
Wert des Registers r₁ durch α-1 multipliziert, und dann wird
der Wert des Register r₁ durch r₁×α-1 ersetzt. Das bedeutet,
daß wenn das Syndromsignal das L-te Signal in übertragenen
Daten ist, der Wert des Registers r₁ auf αn×α-L eingestellt
wird. Immer wenn das Löschungswortsignal keine logische "0"
ist, wird der Wert von r₁ in irgendeinem geeigneten Register
der Register 220 gespeichert. Dann kann die Definition Xi = αli
durchgeführt werden, ohne die Berechnung von Mehrfachpotenzen,
d. h. Potenzen höher als 2. Diese Prozedur vermag die
Komplexität der Schaltung zu vermindern.
Bislang war ein RS-Decoder in der Lage zwei Fehler mit einer
Programmsteuerstruktur auf Prozessorbasis zu korrigieren, wie
oben erwähnt. Eine Programmsteuerstruktur auf Prozessorbasis
ist jedoch nicht praktisch, da die Berechnungsformeln sehr
komplex werden, wenn ein RS-Decoder mehr als zwei Fehler lösen
muß. Daher steht ein Decoder, welcher zwei in RS-Codes
auftretende Fehler korrigieren kann, im Einklang mit einem
echten Bedürfnis.
Fehler (errors) und Löschungen (erasures) können durch die
obigen Gleichungen (3) bis (10) korrigiert werden, wenn
(p, q) = (0,1), (0,2), (0,3), (0,4), (1,1) oder (1,2), aber nicht für
die Situation p = 2 und q = 0. Wenn (p, q) = (1,0), können die Fehler
auch durch Gleichung (13) bestimmt werden. Der Wert von (Xi, Yi)
kann durch oben erwähnte Berechnungen der Addition, Subtraktion
und Inversion bestimmt werden, und der Wert des Ortes li von Yi
kann ebenfalls bestimmt werden.
Die Gleichungen (14) und (15) können auch gelöst werden, wenn
p = 2 und q = 0:
Gemäß der konventionellen Berechnungsverfahren wird
beispielsweise eine Chien-Suche durchgeführt, bei welcher die
Berechnungsformeln sehr komplex und zeitraubend sind. Die
Erfindung kann die Fehler mit den neuen Berechnungsverfahren
des Ortes (der Ortung) und des Verschiebungslogarithmus
(shift-logarithm) decodieren. Das Teilen der Gleichung (14) durch die
Gleichung (15) schafft die folgende Gleichung (17):
Das Berechnungsverfahren des Ortes ist:
αi+α-i → αi 1 i 2m-1 (19)
Die folgende Gleichung wird durch das Verfahren der Ortung
erhalten:
Das Multiplizieren der Gleichung (15) durch die Gleichung
(19) schafft die folgende Gleichung:
Der Wert von l₂ wird auf die gleiche Weise erhalten, wie durch
die Schiebe-Logarithmus-Berechnung der Gleichung (16).
Durch dieses Verfahren werden die Werte von X₁² und X₂²
erhalten. Um nach dem Wert Y₂ durch Gleichung (5) zu lösen, ist
es notwendig folgendermaßen zu berechnen:
i → αi
um die Werte von X₁ und X₂ zu ermitteln.
Die Gleichung (5) wird neu definiert, um die Berechnung von αi
aus i zu umgehen, und nach dem Wert Y₂ zu lösen:
In dem Flußdiagramm der Fig. 3, wenn alle übertragenen Worte
in den Decoder eingegeben worden sind, wenn alle Syndromsignale
null sind, wie in Schritt 310 bestimmt, bedeutet dies
natürlich, daß die übertragenen Worte keine Fehlerworte haben,
und in dem folgenden Schritt, Schritt 340, wird der
Dekodiervorgang beendet. Wenn alle Syndromsignale nicht null
sind, dann wird in einem Schritt 312 der in dem Löschungszähler
280 gespeicherte Löschungszählwert getestet. Wenn der
Löschungszählwert 1, 2 oder 3 ist, verzweigt sich der Fluß nach
links, wo eine Bestimmung darüber durchgeführt wird, ob es ein
Fehlerwort gibt oder nicht, unter getrennter Verwendung der
Forney-Syndromformeln gemäß Schritt 314, Schritt 316, bzw. 318.
Beispielsweise, wenn der Löschungszählwert in Schritt 318
gleich 1 ist, werden die Forney-Syndromformeln der Gleichung
(7) ausgewertet. In Schritt 316, wenn der Löschungszählwert
gleich 2 ist, werden die Forney-Syndromformeln der Gleichung
(8) ausgewertet. In Schritt 314, wenn der Löschungszählwert
gleich 3 ist, wird die Forney-Syndromformel der Gleichung (9)
ausgewertet. Nach einem der oben erwähnten Schritte werden die
Werte von Xi erhaltene wie X₃ in Schritt 320 und X₂ in Schritt
322.
Wenn der Löschungszählwert gleich 4 ist, dann wird in Schritt
324 der Wert von Y₄ gemäß Gleichung (3) erhalten, und die Werte
von S₂, S1 und S₂ werden gemäß dem Wert von Y aktualisiert. In
Schritt 326 wird der Wert Y₃ direkt gemäß Gleichung (4)
erhalten, und auf der Grundlage dieses Wertes von Y₃ werden die
Werte von S₂ und S₀ aktualisiert. Und dann, in Schritt 328,
wird der Y₂ durch Gleichung (20) erhalten, und auf der
Grundlage dieses Wertes von Y₂ wird der Wert von S₀
aktualisiert. Dann, in Schritt 333, wird der Wert von Y₁ mit
der Gleichung (6) erhalten.
Das Verfahren zur Berechnung des Wertes von Yi wird durch die
Ersetzung (Einsetzung) des Maximalwertes "i" eingeleitet. Der
berechnete Wert Yi(max) kann als ein bekanntes Fehlerwort
genommen werden, und das Fehlerwort kann als aus dem
übertragenen Worten herausgenommen angesehen werden. Neue Werte
von Si werden durch ein um Gleichung (2) ergänztes Verfahren
erhalten.
Wenn beispielsweise der Wert von Y₄ bekannt ist, dann sind die
neuen Werte Si:
S₀ ← S₀+Y₄
S₁ ← S₀+Y₄X₄
S₂ ← S₂+Y₄X₄²
S₀ ← S₀+Y₄
S₁ ← S₀+Y₄X₄
S₂ ← S₂+Y₄X₄²
Jeder Wert von Yi kann entsprechend jedem Xi erhalten werden.
Auf die gleich Weise, wenn der Löschungszählwert gleich 3 ist,
dann, wenn in Schritt 314 das Forney-Syndrom T₁ gemäß Gleichung
(9) berechnet und überprüft wird und das Ergebnis nicht 0 ist,
was bedeutet, daß die Fehler nicht dekodiert werden können,
führt dies zur Beendigung der Dekodierung in Schritt 342. Wenn
das Syndrom T₁ null ist, dann verzweigt sich der Fluß von
Entscheidungsschritt 314, und die Werte von Y₁, Y₂ und Y₃
werden getrennt in Schritt 326, Schritt 328 und Schritt 330
berechnet, wir bereits beschrieben.
Wenn der Löschungszählwert gleich 2 ist, dann werden in
Entscheidungsschritt 316 die Werte der Forney-Syndrome T₁ und
T₂ gemäß Gleichung (8) berechnet und überprüft. Wenn T₁ oder T₂,
aber nicht beide gleich null sind, dann wird der Fluß in
Schritt 342 beendet. Wenn T₁ und T₂ beide gleich 0 sind, dann
verzweigt sich der Prozeßfluß, und die Werte von Y₁ und Y₂
werden getrennt in Schritt 328 und Schritt 330 erhalten, wie
bereits beschrieben.
Wenn der Löschungszählwert gleich 1 ist, wird der
Entscheidungsschritt 318 durchgeführt, um die Forney-Syndrom
gleichungen (7) für T₁, T₂ und T₃ zu berechnen und zu
überprüfen. Wenn mindestens eine, aber nicht alle der T₁, T₂
und T₃ gleich null sind, kann keine Dekodierung durchgeführt
werden, was die Beendigung des Dekodierens durch Schritt 342
bewirkt. Wenn T₁, T₂ und T₃ alle gleich null sind, dann wird der
Wert von Y₁ in Schritt 313 erhalten, wie bereits beschrieben.
Wenn die Werte Yi gemäß der Serie der oben beschriebenen
Schritte bestimmt werden, werden die entsprechenden Orte li,
welche Yi (die Werte von li werden durch die Schiebe-Lo
garithmus-Operation mit Xi erhalten, wie oben beschrieben)
In dem folgenden Schritt 332 wird beurteilt ob li sich im
korrekten Bereich befindet oder nicht. Da die Summe der
eingegebenen Syndromsignale n ist, muß der Wert von li im
Bereich von 0 bis n-1 liegen. Wenn li sich außerhalb des
korrekten Bereichs befindet, ist die Dekodierung nicht möglich
und wird bei Block 342 angehalten.
Wenn der Löschungszählwert gleich 0 ist, kann die Dekodierung
auf eine ähnlich Weise wie in den bereits beschriebenen
Schritten vollendet werden. Der Fluß verzweigt sich von
Entscheidungsblock 312 zu Schritt 334, bei welchem die Zahl von
Fehlerworten gemäß Gleichung (12) berechnet wird. Wenn einige,
d. h. eine oder mehrere, aber nicht alle in Gleichung (12)
berechneten Größen gleich null sind, ist die Dekodierung nicht
lösbar, und die Dekodierung wird bei Block 340 beendet. Wenn
keine der mit Gleichung (12) berechneten Größen gleich 0 ist,
d. h. p = 2, werden die Werte von X₁² und X₂² gemäß der Gleichungen
(14) bis (19) berechnet, und dann Y₂ berechnet und S₀
aktualisiert, jeweils in den Schritten 336 und 328. Wenn die
mit Gleichung (12) berechneten Größen alle gleich null sind,
d. h. p = 1, wird der Wert von X₁ in Schritt 338 berechnet, und
der Wert von Y₁ in Schritt 330 berechnet. Der Test in Schritt
332 wird dann durchgeführt, um den korrekten Bereich zu
überprüfen, wie bereits beschrieben.
Zusammenfassend schafft die Erfindung ein neues Verfahren zur
Dekodierung von RS-Codes, deren Hamming-Abstand gleich 5 ist,
durch Verwenden des Programms zum Steuern des Teilens (sharing)
von Information in der auf Verarbeitung basierenden Struktur,
und durch Verwenden der Berechnung des Orts (der Ortung), um
die redundante Berechnung einer Chien-Suche zu vermeiden. Es
ist wichtig, daß die Arithmetiklogikeinheit somit sehr einfach
wird, ohne die Notwendigkeit zur Berechnung von Potenzen. Nur
die folgenden vier Berechnungsarten sind erforderlich:
Inversionsberechnung:
Multiplikations-Additions-Berechnung: a, b, c → a·b+c
Schiebe-Logarithmus-Berechnung: siehe Gleichung (16)
Ortsberechnung: siehe Gleichung (17)
Schiebe-Logarithmus-Berechnung: siehe Gleichung (16)
Ortsberechnung: siehe Gleichung (17)
Bezüglich eines verkürzten RS-Codes n ≠ 2m, kann die Hardware
der Schiebe-Logarithmus-Schaltung und des Orters in der
Arithmetiklogikschaltung 230 weiter vereinfacht werden.
Zunächst kann die Schiebe-Logarithmus-Schaltung den Wert von li
unter Verwendung von Xi und Xi² berechnen. Dies hat nur dann
eine Bedeutung, wenn li sich im Bereich von 0 bis n-1 befindet,
und die Dekodierung kann nicht abgeschlossen werden, wenn li
sich außerhalb des Bereiches befindet. Daher entspricht die
Logarithmustabelle (nicht abgebildet) in der Schiebe-Lo
garithmus-Schaltung 236 der Fig. 1 nur 0 bis 2n-1. Wenn der
eingegebene Wert sich außerhalb des gültigen Bereichs befindet,
gibt die Schiebe-Logarithmus-Schaltung einen Fehlerflag (error
flag) aus.
Bezüglich des Orters 238, da (l₁-l₂) sich im Bereich von 1 bis
n-1 (wenn l₁<l₂) befindet, gemäß Gleichung (17), muß sich der
Ausgabewert des Orters 238 in dem Bereich von 1 bis 2m-1
befinden. Daher kann die Berechnung des Orts in dem Bereich von
1 bis Max(2m-1, n-1) durchgeführt werden. Befindet sich der Wert
außerhalb dieses Bereichs, wird ein Fehlerflag ausgegeben, um
anzuzeigen, daß der Decoder keine Fehlerworte korrigieren kann,
d. h. der Code nicht lösbar ist.
Daher ist in der bevorzugten Ausführung mit dem Decoder,
welcher RS-Codes erfaßt, deren Hamming-Abstand 5 ist, die
Berechnung von Potenzen nicht erforderlich. Dies erlaubt eine
Vereinfachung der Arithmetiklogikschaltung. Sie muß nicht
wiederholt komplexe Berechnungen durchführen wenn es zwei
Fehlerworte und kein Löschungswort gibt. Daher wird die
Dekodiergeschwindigkeit erhöht. Darüber hinaus schafft die
Erfindung eine bedeutende Verbesserung in Gebieten, welche die
Dekodierung von RS-Codes betreffen.
Während die Erfindung anhand eines Beispieles und mittels einer
bevorzugten Ausführung beschrieben wurde, sollte verstanden
werden, daß die Erfindung nicht auf die offenbarte Ausführung
beschränkt ist. Im Gegenteil, es wird beabsichtigt,
verschiedene Modifikationen und ähnliche Anordnungen
abzudecken. Daher sollten dem Umfang der angehängten Ansprüche
die breitest mögliche Interpretation zugestanden werden, um so
alle solche Modifikationen und ähnliche Anordnungen
einzuschließen.
Claims (10)
1. Fehlerdekodierverfahren zum Dekodieren von Syndromsignalen,
welche Reed-Solomon-Codes verwenden, wobei die Reed-Solomon-Codes
als RSm(n, k) definiert sind, m eine Zahl von Bits jedes
Syndromsignals ist, n eine Länge der Reed-Solomon-Codes ist,
k eine Länge von Informationsworten in den Reed-Solomon-Codes
ist, und die Reed-Solomon-Codes p Fehlerworte und q
Löschungsworte umfassen, und wobei n(2m-1) und 2p+qd-1, und
d ein Hamming-Abstand der Reed-Solomon-Codes ist, wobei
dieses Fehlerdekodierverfahren die Schritte umfaßt:
- (a) Dekodieren der Syndrome, Erhalten der Fehlerworte und Löschungsworte daraus, welche in jedem der Syndromsignale existieren, und Bestimmen der Zahl von p und q für jedes der Syndrome;
- (b) Erhalten erster und zweiter Fehlerorte aus den Gleichungen X₁² = α2l und X₂² = α2l durch eine Berechnung des Orts wenn es zwei Fehlerworte und keine Löschungsworte in jedem der Syndrome gibt, wobei die Syndrome, welche zwei Fehler haben, definiert sind als: wobei X₁ = αl, X₂ = αl, l₁ und l₂ die Orte der zwei Fehlerworte definieren, und Y₁ und Y₂ Werte der zwei Fehlerworte sind;
- (c) Erhalten von l₁ und l₂ gemäß α2l und α2l durch Ausführen von Logarithmus- und Verschiebungsoperationen; und
- (d) Erhalten von Y₁ und Y₂ durch Ausführen einer Serie von Produktsummen-Arithmetikoperationen gemäß X²₁ = α2l, X²₂ = α2l.
2. Fehlerdekodierverfahren nach Anspruch 1, gekennzeichnet
durch:
Bestimmen von Werten SA, SB und SC durch Auswerten der folgenden drei Gleichungen, wenn es keine Löschungsworte in den Syndromen gibt:
SA = S₁S₁+S₀S₂
SB = S₂S₂+S₁S₃
SC = S₃S₃+S₁S₂
und dann:
bestimmen, daß p gleich 1 ist, wenn SA, SB und SC alle gleich 0 sind,
bestimmen, daß p gleich 2 ist, wenn keine der SA, SB und SC gleich 0 sind, und
bestimmen, daß p nicht bestimmbar ist, wenn nur eines oder zwei der SA, SB und SC gleich 0 sind.
Bestimmen von Werten SA, SB und SC durch Auswerten der folgenden drei Gleichungen, wenn es keine Löschungsworte in den Syndromen gibt:
SA = S₁S₁+S₀S₂
SB = S₂S₂+S₁S₃
SC = S₃S₃+S₁S₂
und dann:
bestimmen, daß p gleich 1 ist, wenn SA, SB und SC alle gleich 0 sind,
bestimmen, daß p gleich 2 ist, wenn keine der SA, SB und SC gleich 0 sind, und
bestimmen, daß p nicht bestimmbar ist, wenn nur eines oder zwei der SA, SB und SC gleich 0 sind.
3. Fehlerdekodierverfahren nach Anspruch 1, dadurch
gekennzeichnet, daß der Schritt (b) die folgende Berechnung
des Orts beinhaltet:
αi+α-i → i 1 i 2m-1
4. Fehlerdekodierverfahren nach Anspruch 3, dadurch
gekennzeichnet, daß wenn p = 2 und q = 0, der Schritt (b) die
Auswertung enthält:
5. Fehlerdekodierverfahren nach Anspruch 4, dadurch
gekennzeichnet, daß der Schritt (c) das Erhalten von l₁ und l₂
enthält, um die Orte der Fehlerworte zu bestimmen, durch
folgende Auswertung:
X₁² = α2l
X₂² = α2l
X₂² = α2l
6. Fehlerdekodierverfahren nach Anspruch 5, dadurch
gekennzeichnet, daß Schritt (c) ferner die folgende
Auswertung enthält:
i wenn keine Verschiebung wenn Verschiebung und i geradzahlig wenn Verschiebung und i ungeradzahlig.
i wenn keine Verschiebung wenn Verschiebung und i geradzahlig wenn Verschiebung und i ungeradzahlig.
7. Fehlerdekodierverfahren nach Anspruch 6, dadurch
gekennzeichnet, daß der Schritt (d) das Erhalten der Werte der
zwei Fehlerworte Y₁ und Y₂ enthält, durch folgende Auswertung:
S₀←S₀+Y₁
Y₁ = S₀
Y₁ = S₀
8. Vorrichtung zum Dekodieren von Fehlerworten und
Löschungsworten, welche in übertragenen Wortsignalen
existieren, die Reed-Solomon-Codes aus einem externen System
verwenden, umfassend:
- (a) einen Syndrom-Generator zum Empfangen der übertragenen Wortsignale aus dem externen System und zum Erzeugen von Syndromsignalen;
- (b) einen Löschungszähler, um die Löschungsworte aus dem externen System zu empfangen und den Löschungszählwert, welcher in dem Löschungszähler gespeichert ist, um eins zu inkrementieren, jedesmal, daß ein Löschungswort empfangen wird;
- (c) eine Registervorrichtung, welche mit dem Syndrom-Generator gekoppelt ist, um Syndromsignale aus dem Syndrom-Generator zu empfangen, und welche einen Eingang hat, um die Löschungsbits aus dem externen System zu empfangen, zur Speicherung der Syndromsignale und der Löschungsbits an vorbestimmten Orten;
- (d) eine Arithmetiklogikvorrichtung, welche mit der Registervorrichtung gekoppelt ist, zum Lesen der in der Registervorrichtung gespeicherten Werte, zur Durchführung einer vorbestimmten Operation zur Erzeugung eines ersten Rückkoppelsignals und eines Deduktivsignals, und zur Bereitstellung des ersten Rückkoppelsignals an die Registervorrichtung;
- (e) einen Komparator, welcher mit der Arithmetiklogikvorrichtung gekoppelt ist, zum Empfangen des Deduktivsignals und zur Durchführung einer Vergleichsoperation, um ein Vergleichssignal zu erzeugen;
- (f) eine Programmsteuervorrichtung, welche mit dem Komparator und dem Löschungszähler gekoppelt ist, um das Vergleichssignal aus dem Komparator zu empfangen und den in dem Löschungszähler gespeicherten Löschungszählwert zu lesen, und zum Ausgeben eines Programmsteuersignals;
- (g) einen Programmzähler, welcher mit der Programmsteuervorrichtung gekoppelt ist, und auf das Programmsteuersignal anspricht, zur Erzeugung eines Programmzählsignals und eines zweiten Rückkoppelsignals, und zur Ausgabe des zweiten Rückkoppelsignals an die Programmsteuervorrichtung, wobei die Programmsteuervorrichtung auf das zweite Rückkoppelsignal anspricht, um selektiv das Programmsteuersignal zu verändern; und
- (h) einen Interpretierer, welcher mit dem Programmzähler gekoppelt ist und auf das Programmzählsignal anspricht, zur Erzeugung eines Registeradreß-Signals und eines Freigabesignals, wobei der Interpretierer mit der Registervorrichtung gekoppelt ist, um dieser das Registeradreß-Signal bereitzustellen, und mit der Arithmetiklogikvorrichtung gekoppelt ist, um dieser das Freigabesignal bereit zustellen, wobei die Arithmetiklogikvorrichtung auf das Freigabesignal anspricht, um die Syndromsignale und die Löschungsworte, welche in der Registervorrichtung gespeichert sind, gemäß des Registeradreß-Signals zu lesen, um die Fehlerworte in den übertragenen Wortsignalen zu dekodieren.
9. Vorrichtung nach Anspruch 8, dadurch gekennzeichnet, daß die
Arithmetiklogikvorrichtung enthält:
einen Inverter zur Durchführung einer Inversionsberechnung mit den Syndromsignalen;
eine Multiplizier-Addier-Vorrichtung zur Durchführung einer Additions-Berechnung und Multiplikations-Berechnung mit den Syndromsignalen;
eine Schiebe-Logarithmus-Vorrichtung zur Durchführung einer logarithmischen Berechnung mit dem Syndromsignal, und zur Durchführung einer Verschiebungsberechnung mit einem Resultat der logarithmischen Berechnung, gemäß dem Freigabesignal; und
eine Ortervorrichtung zur Durchführung einer Berechnung des Orts.
einen Inverter zur Durchführung einer Inversionsberechnung mit den Syndromsignalen;
eine Multiplizier-Addier-Vorrichtung zur Durchführung einer Additions-Berechnung und Multiplikations-Berechnung mit den Syndromsignalen;
eine Schiebe-Logarithmus-Vorrichtung zur Durchführung einer logarithmischen Berechnung mit dem Syndromsignal, und zur Durchführung einer Verschiebungsberechnung mit einem Resultat der logarithmischen Berechnung, gemäß dem Freigabesignal; und
eine Ortervorrichtung zur Durchführung einer Berechnung des Orts.
10. Vorrichtung nach Anspruch 8, dadurch gekennzeichnet, daß die
vorbestimmte Operation selektiv ausgeführt wird, indem der
Inverter, die Multiplizier-Addier-Vorrichtung, die Schiebe-
Logarithmus-Vorrichtung, und die Ortervorrichtung in der
Arithmetiklogikvorrichtung betätigt werden, um das erste
Rückkoppel-Algorithmussignal und das Deduktivsignal zu
erzeugen.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW85111911 | 1996-09-30 | ||
TW085111911A TW311189B (en) | 1996-09-30 | 1996-09-30 | The error-corrected decoding method and its apparatus for Reed-Soloman code |
Publications (2)
Publication Number | Publication Date |
---|---|
DE19719654A1 true DE19719654A1 (de) | 1998-04-09 |
DE19719654B4 DE19719654B4 (de) | 2008-05-08 |
Family
ID=21625465
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19719654A Expired - Fee Related DE19719654B4 (de) | 1996-09-30 | 1997-05-09 | Fehlerdekodierverfahren und -vorrichtung für Reed-Solomon-Codes |
Country Status (5)
Country | Link |
---|---|
US (1) | US5944848A (de) |
JP (1) | JPH10112660A (de) |
DE (1) | DE19719654B4 (de) |
FR (1) | FR2754121B1 (de) |
TW (1) | TW311189B (de) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3233860B2 (ja) * | 1996-10-25 | 2001-12-04 | 松下電器産業株式会社 | リードソロモン復号器 |
US6412090B1 (en) * | 1998-06-18 | 2002-06-25 | Globespanvirata, Inc. | Galois field computation system and method |
US20080282128A1 (en) * | 1999-08-04 | 2008-11-13 | Super Talent Electronics, Inc. | Method of Error Correction Code on Solid State Disk to Gain Data Security and Higher Performance |
US6631172B1 (en) | 2000-05-01 | 2003-10-07 | Lucent Technologies Inc. | Efficient list decoding of Reed-Solomon codes for message recovery in the presence of high noise levels |
TW468158B (en) * | 2000-06-16 | 2001-12-11 | Ali Corp | Disc decoding method and system |
US20040093790A1 (en) * | 2002-02-28 | 2004-05-20 | Baker Mark R. | Combustion improvers for normally liquid fuels |
KR20050114162A (ko) * | 2004-05-31 | 2005-12-05 | 삼성전자주식회사 | 리드-솔로몬 부호를 사용하는 이동통신 시스템에서 내부및 외부 부호 복호 방법 및 그 장치 |
CN101253692B (zh) * | 2005-09-01 | 2010-08-25 | 松下电器产业株式会社 | 错误纠正方法 |
KR100734294B1 (ko) * | 2005-12-15 | 2007-07-02 | 삼성전자주식회사 | 결함 영역 검출/복구 방법 및 장치와 이를 이용한 디스크드라이브 |
US9762262B2 (en) * | 2014-06-18 | 2017-09-12 | Alcatel Lucent | Hardware-efficient syndrome extraction for entangled quantum states |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3483375D1 (de) * | 1983-06-22 | 1990-11-15 | Hitachi Ltd | Verfahren und system zur fehlerkorrektur. |
US4646303A (en) * | 1983-10-05 | 1987-02-24 | Nippon Gakki Seizo Kabushiki Kaisha | Data error detection and correction circuit |
JPH0812612B2 (ja) * | 1983-10-31 | 1996-02-07 | 株式会社日立製作所 | 誤り訂正方法及び装置 |
EP0426657B1 (de) * | 1983-12-20 | 1999-03-10 | Sony Corporation | Verfahren und Vorrichtung zur Dekodierung eines Fehler-Korrektur-Code |
NL8400630A (nl) * | 1984-02-29 | 1985-09-16 | Philips Nv | Decodeerinrichting voor een stroom van codesymbolen die woordsgewijze beschermd zijn door een dubbele reed-solomon-code met een minimum hamming-afstand van 5 over de codesymbolen en een verbladeringsmechanisme tussen de beide codes, alsmede speler voorzien van zo een decodeerinrichting. |
FR2582888B1 (fr) * | 1985-05-30 | 1987-08-21 | Dornstetter Jean Louis | Procede de transmission, avec possibilite de correction de paquets d'erreurs, de messages d'information et dispositifs de codage et de decodage pour la mise en oeuvre de ce procede. |
JPS63193723A (ja) * | 1987-02-06 | 1988-08-11 | Sony Corp | リ−ドソロモン符号の復号方法 |
DE3719404A1 (de) * | 1987-06-11 | 1988-12-22 | Bosch Gmbh Robert | Verfahren und anordnung zur korrektur von fehlern in digitalen signalen |
JP2775432B2 (ja) * | 1987-11-23 | 1998-07-16 | 博一 岡野 | 誤り訂正/誤り検出/消失誤り訂正を同時に行うリード・ソロモン符号の復号装置 |
DE4140018A1 (de) * | 1991-12-04 | 1993-06-09 | Bts Broadcast Television Systems Gmbh, 6100 Darmstadt, De | Verfahren und schaltungsanordnung zum decodieren von rs-codierten datensignalen |
US5379305A (en) * | 1992-07-20 | 1995-01-03 | Digital Equipment Corporation | Error correction system with selectable error correction capabilities |
KR950002304B1 (ko) * | 1992-10-07 | 1995-03-16 | 삼성전자주식회사 | 다중 오류정정 방법 |
-
1996
- 1996-09-30 TW TW085111911A patent/TW311189B/zh not_active IP Right Cessation
-
1997
- 1997-04-11 US US08/840,127 patent/US5944848A/en not_active Expired - Fee Related
- 1997-04-30 JP JP9112716A patent/JPH10112660A/ja active Pending
- 1997-05-09 DE DE19719654A patent/DE19719654B4/de not_active Expired - Fee Related
- 1997-05-12 FR FR9705773A patent/FR2754121B1/fr not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
DE19719654B4 (de) | 2008-05-08 |
TW311189B (en) | 1997-07-21 |
JPH10112660A (ja) | 1998-04-28 |
US5944848A (en) | 1999-08-31 |
FR2754121B1 (fr) | 2000-06-16 |
FR2754121A1 (fr) | 1998-04-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2508706C2 (de) | Schaltungsanordnung zur Codierung von Datenbitfolgen | |
DE10133595B4 (de) | Pufferschaltung, Speicherzugriffsverfahren und Reed-Solomon-Decoder | |
DE69919199T2 (de) | Vorwärtsfehlerkorrektur | |
DE69834542T2 (de) | Hardwareoptimierter reed-solomon-decoder zur decodierung grosser datenblöcke | |
DE2060643B2 (de) | Schaltungsanordnung zur Korrektur von Einzelfehlern | |
DE2834963A1 (de) | Verfahren und einrichtung zur fehlerkorrektur von uebertragenen daten | |
JPH02503852A (ja) | 多重パス誤り訂正プロセスと積符号のための装置 | |
DE19719654A1 (de) | Fehlerdekodierverfahren und -vorrichtung für Reed-Solomon-Codes | |
DE2914515A1 (de) | Verfahren und vorrichtung fuer ein wirksames fehlerentdeckungs- und korrektursystem | |
EP0545498B1 (de) | Verfahren und Schaltungsanordnung zum Decodieren von RS-codierten Datensignalen | |
DE19922253A1 (de) | Kodiervorrichtung für RAID-6-Systeme und Bandlaufwerke | |
DE102018131613A1 (de) | Fehlererkennung mittels Gruppenfehler | |
DE2503152A1 (de) | Schaltungsanordnung zur erkennung von durch bauteilausfall verursachten fehlern in der multipliziereinheit eines datenverarbeitungssystems | |
DE1959231A1 (de) | Verfahren und Vorrichtung zur Korrektur von bis zu drei Fehlern eines aus 23 Bits bestehenden Codewortes | |
DE112018001951T5 (de) | Fehlerkorrekturdecodieren mit verringerter latenz | |
EP0159403A2 (de) | Anordnung zur Korrektur von Bündelfehlern in verkürzten zyklischen Blockcodes | |
DE102014105218A1 (de) | Suchvorrichtung mit Verwendung von endlichen Automaten für Teilworte | |
DE69332937T2 (de) | Korrekturverfahren für verlorengegangene Daten und Schaltung dafür | |
DE2222350B2 (de) | Fehlerdiagnoseeinrichtung fuer eine zeichenerkennungsmaschine und verfahren zu deren betrieb | |
DE102021109391B3 (de) | Multibytefehler-Erkennung | |
DE102010003144B4 (de) | Decodiervorrichtung und Decodierverfahren | |
DE102015111729B4 (de) | Verfahren und decoder zum bestimmen eines fehlervektors für ein datenwort gemäss einem reed-muller-code | |
DE69637427T2 (de) | Verfahren und Gerät zur Erkennung doppelter Eintragungen in einer Nachschlagtabelle | |
DE60016648T2 (de) | Fehlerkodierungsmethode | |
DE2300505A1 (de) | Vorrichtung zur schwellwertdecodierung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8364 | No opposition during term of opposition | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |
Effective date: 20141202 |