DE60220341T2 - Verfahren zum Erzeugen eines Burstfehlermusters sowie Burst- und Bytefehlerermittlungs- und-korrekturvorrichtung - Google Patents

Verfahren zum Erzeugen eines Burstfehlermusters sowie Burst- und Bytefehlerermittlungs- und-korrekturvorrichtung Download PDF

Info

Publication number
DE60220341T2
DE60220341T2 DE60220341T DE60220341T DE60220341T2 DE 60220341 T2 DE60220341 T2 DE 60220341T2 DE 60220341 T DE60220341 T DE 60220341T DE 60220341 T DE60220341 T DE 60220341T DE 60220341 T2 DE60220341 T2 DE 60220341T2
Authority
DE
Germany
Prior art keywords
error
bits
matrix
burst
columns
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60220341T
Other languages
English (en)
Other versions
DE60220341D1 (de
Inventor
Eiji Shinjuku-ku Tokyo Fujiwara
Jiro Minamitsuru-gun Yamanashi Kinoshita
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fanuc Corp
Fujiwara Eiji
Original Assignee
Fanuc Corp
Fujiwara Eiji
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fanuc Corp, Fujiwara Eiji filed Critical Fanuc Corp
Application granted granted Critical
Publication of DE60220341D1 publication Critical patent/DE60220341D1/de
Publication of DE60220341T2 publication Critical patent/DE60220341T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/17Burst error correction, e.g. error trapping, Fire codes

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. Gebiet der Erfindung
  • Die Erfindung betrifft ein Verfahren zur Erzeugung von Mustern von Burstfehlern, die in einer empfangenen Information zugegen sind, eine Ermittlungs- und Korrekturvorrichtung für Burstfehler und eine Ermittlungs- und Korrekturvorrichtung für Bytefehler, eine spezielle Form der Burstfehler.
  • 2. Beschreibung des Standes der Technik
  • In der empfangenen Information, die in einem kontinuierlichen Aufzeichnungsmedium, wie magnetischer Aufzeichnung oder optischer Aufzeichnung, gespeichert ist, treten nicht nur zufällige Fehler, sondern auch Burstfehler häufig auf. Auch in Informationskommunikationssystemen, die unter möglichem Einfluss von elektromagnetischem Rauschen oder kosmischen Partikeln verwendet werden, treten Burstfehler als häufigster Fehlertyp auf. Die Wahrscheinlichkeit, dass Burstfehler auftreten, wird außerdem viel größer bei der Signalkommunikation im tiefen Weltraum und bei der Kommunikation zu/von einem Satellit.
  • Informationsübertragung und -empfang werden in herkömmlichen magnetischen Disketten, optischen Disketten und Kommunikationssystemen bit für bit verarbeitet. D.h. die Information wird in diesen Systemen nacheinander übertragen und empfangen. Daher sollte die Fehlerkorrektur und -ermittlung ebenfalls nacheinander erfolgen. In dieser Hinsicht kann die aufeinander folgende Verarbeitung von Fehlerkorrektur und -ermittlung unter Verwendung von Schieberegistern mit linearer Rückkopplung (linear feedback shift registers, LFSR) durchgeführt werden, die durch ein Code-Generator-Polynom definiert sind.
  • Bekanntlich kann Fire-Code die Burstfehlerkorrektur und -ermittlung kontrollieren. Dieser Code ist durch das folgende Generator-Polynom definiert: g(X) =(Xc + 1)p(X)wobei p(X) ein nichtreduzierbares Polynom des m-ten Grades an einem Galois-Feld GF(2) ist. Es wird angenommen, dass die Periode von p(X) f ist. Unter der Bedingung, dass f nicht durch c teilbar ist, wobei c ≥ 2b – 1 und m ≥ b, können Burstfehler bis zu einer Länge von b korrigiert werden. Dabei wird die Codelänge n als n = LCM(f, c) dargestellt, und die Kontrolllänge r wird zu r = c + m, wobei LCM(f, c) für das kleinste gemeinsame Vielfache von f und c steht. Dieser Code und seine Decodierschaltung sind beispielsweise auf S. 212 bis 219 von "Coding Theory" von Hideki Imai, veröffentlicht von Corona Publishing Co. Ltd. im März 1990, beschrieben. Dies besagt jedoch, dass die Decodierschaltung Fehler nacheinander korrigiert, d.h. die Decodierung synchron mit Taktgebern unter Verwendung von LFRS durchführt, die von p(X) und Xc + 1 vorgegeben sind.
  • Andererseits hat man bereits Techniken zum parallelen Ermitteln und Korrigieren von zufälligen 1-bit- oder 2-bit-Fehlern vorgeschlagen und praktisch angewendet. Anders gesagt, werden in Hochgeschwindigkeits-Halbleiterspeichersystemen zufällige 1-bit-, 2-bit-Fehler oder einzelne Cluster von Mehr-bit-Fehlern, d.h. Ein-Byte-Fehler, für eine parallel aus dem Speicher ausgelesene Informationsbitlänge von 16 bits bis 128 bits parallel ermittelt oder korrigiert. In diesem Fall sollte die Decodierschaltung über Kombinationsschaltungen implementiert werden, nicht über LFRS. Diese sind in den Kapiteln 4 und 5 von T. R. N. Rao und E. Fujiwara, "Error Control Coding for Computer Systems", Prentice Hall, 1989, beschrieben.
  • Man kennt eine Technik zur Kontrolle der Burstfehler, ohne dass direkt der Code verwendet wird, der Burstfehler ermitteln und korrigieren kann. Anders gesagt, kann bei der Korrektur von Burstfehlern mit der Länge b bits, die in der Information mit der Länge n bits enthalten sind, das Verschränken (Interleaving) mit dem Grad b verwendet werden. D.h. sie erfolgt durch Herstellung von b Sätzen von Funktionen zur Korrektur eines 1-bit-Fehlers für eine Information mit der Länge n/b. Die Interleaving-Technik ist erläutert auf S. 220 von "Coding Theory" von Hideki Imai, veröffentlicht von Corona Publisching Co. Ltd. Können dabei b Sätze von 1-bit-Fehler-Korrekturschaltungen mit paralleler Decodierungsfähigkeit parallel erzeugt werden, kann die b-bit-Burstfehlerkorrekturschaltung parallel erfolgen. Beträgt die zu korrigierende Burstfehlerlänge jedoch beispielsweise mehrere zehn bit, werden die Anzahl der erforderlich Kontrollbits sowie die Schaltungsmenge extrem hoch. Unter praktischem Gesichtspunkt kann diese Technik daher nicht angewendet werden.
  • Als Medium, auf dem ein dreidimensionales Bild gespeichert ist, kennt man einen holographischen Speicher mit superhoher Kapazität. In einem solchen Speicher kann zum Beispiel nicht nur ein zweidimensionales Bild, sondern auch ein dreidimensionales Bild durch Aufbringen von Laserlicht auf eine holographische Oberfläche wiederhergestellt werden. Information über Lichtintensität und -phase ist in dem holographischen Speicher gespeichert. Die Information wird gelesen, indem Laserlicht auf den holographi schen Speicher aufgebracht wird. Die so gelesene Information wird beispielsweise temporär in einem ebenenförmigen CCD-Speicher gespeichert. Dabei wird die Information jeweils als eindimensionale Richtungsdaten ausgelesen, d.h. Längsrichtungsdaten und Seitenrichtungsdaten. In diesem Fall erfolgt das Lesen gleichzeitig mit mehreren hundert bits bis mehreren zehntausend bits parallel, und dieser Schritt wird wiederholt. Durch diese wiederholten Schritte wird die auf der CCD gespeicherte Information gelesen und das ursprüngliche Bild wiederhergestellt. Weil die Aufzeichnungsoberfläche zweidimensional ist, werden in einem derartigen Speicher Herstellungsfehler, Verdrillung und Risse in einer holographischen Oberfläche sowie Interferenz zwischen den aus dem holographischen Speicher ausgelesenen Informationsstücken zu zweidimensional ausgebreiteten, ebenenförmigen Defekten. Diese zweidimensional ausgebreiteten Defekte werden ebenfalls als zweidimensionale Fehler auf der CCD wiederhergestellt. Wird die Information dann aus der CCD jeweils als eindimensionale Richtungsdaten ausgelesen, wird die Information inklusive Burstfehlern erhalten. Das parallele Lesen wird aufeinander folgende wiederholt. Somit wird deutlich, dass die Burstfehler, die in der Information enthalten sind, die durch gleichzeitiges Lesen von mehreren hundert bits bis mehreren zehntausend bits erhalten wird, mit hoher Geschwindigkeit ermittelt und korrigiert werden müssen. Anders gesagt, ist paralleles Decodieren wesentlich.
  • Insbesondere für Burstfehler war die parallele Decodierungstechnik nicht so notwendig. Daher gibt es bisher keine Technik zur parallelen Decodierung einer parallel empfangenen Information mit einer großen Zahl an bits unter Verwendung eines Burstfehlerermittlungs- und -korrekturcodes, wie Fire-Code. Es tritt das Problem auf, dass keine parallele Decodierung durchgeführt werden kann.
  • US 3478313 offenbart ein System zur automatischen Korrektur von Burstfehlern, wobei für empfangene Information ein Syndrom erzeugt wird. Das Syndrom zeigt an, ob die empfangene Information Fehler enthält. Eine Fehlerkorrekturschaltung korrigiert dann diese Fehler. Die empfangene Information und die Paritätskontrollmatrix werden in Segmente bzw. quadratische Paritätskontrollteilmatrizen unterteilt. Die parallele Decodierung erfolgt durch parallele Verarbeitung der Segmente und der entsprechenden Paritätskontrollteilmatrizen.
  • AUFGABEN UND ZUSAMMENFASSUNG DER ERFINDUNG
  • Eine Aufgabe der Erfindung ist die Bereitstellung eines Verfahrens zur Erzeugung von Mustern für Burstfehler sowie eine parallele Ermittlungs- und Korrekturvorrichtung für Burstfehler oder für Bytefehler, eine spezielle Form der Burstfehler.
  • Erfindungsgemäß können Burstfehler von bis zu b bit für eine empfangene n-bit-Information D parallel ermittelt und korrigiert werden anhand der folgenden Schritte:
    • (1) Erzeugen eines Syndroms S durch Anwenden einer Matrix mit r Reihen und n Spalten, die von einem Code vorgeschrieben wird, auf die empfangene Information D in einer Syndromerzeugungsschaltung;
    • (2) Eingeben des erzeugten Syndroms S gemeinsam in p Sätze von Burstfehlermustererzeugungsschaltungen, die jeweils einen Informationsrahmen einer festgelegten Länge w haben;
    • (3) Bewirken, dass diese p Sätze von Burstfehlermustererzeugungsschaltungen ermitteln, ob in dem zugehörigen empfangenen Informationsrahmen mit der Länge w bit (w ist eine ganze Zahl innerhalb von b bis 2b) ein Burstfehler vorliegt oder nicht;
    • (4) ist ein Burstfehler vollständig in einem der p Sätze von Burstfehlermustererzeugungsschaltungen enthalten, Ausgeben eines Burstfehlermusters aus der zugehörigen Burstfehlermustererzeugungsschaltung, wobei wenn ein Burstfehler in zwei benachbarten, sich überlappenden Burstfehlermustererzeugungsschaltungen enthalten ist, aus den zugehörigen Bursffehlermusterberechnungsschaltungen ein Burstfehlermuster ausgegeben wird, das insgesamt nicht widersprüchlich ist;
    • (5) Ausführen von Ausschließlich-ODER zwischen jeweiligen bits des Fehlermusters, das von einer Burstfehlermusterberechnungsschaltung erzeugt wurde, und entsprechenden bits der eingegebenen empfangenen Information D und Ausgeben der korrigierten Information DS mit n bit Länge; und
    • (6) Ausdrücken der empfangenen Information durch n bits Binärinformation, in der durch Codes bestimmte r bits Kontrollinformation enthalten sind, wobei wenn ein Code zur Korrektur von Burstfehlern durch eine H-Paritätskontrollmatrix mit r Reihen mal n Spalten ausgedrückt werden kann, H·DT = 0r für die empfangene Information D (n-ter Reihenvektor) festgelegt wird, worin kein Fehler enthalten ist. In der obigen Gleichung ist DT ein Spaltenvektor, der durch Transponieren des Reihenvektors D erhalten wird
  • Wenn dagegen ein Burstfehler in der empfangenen Information D aufgetreten ist, wird H·DT = 0r nicht festgestellt. Dieses Ergebnis bezeichnet man als Syndrom S.
  • Anders gesagt, ist S = 0r, dann wird festgestellt, dass keine Fehler vorhanden sind. Ist S·0r, dann wird festgestellt, dass Fehler vorhanden sind. Anschließend wird die Analyse durchgeführt auf Basis des Musters des Syndroms S, wodurch ein Burstfehlermuster und seine Anfangsposition gefunden werden, und die empfangene Information D wird korrigiert.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die weiteren Aufgaben und Merkmale der Erfindung werden aus der folgenden Beschreibung der bevorzugten Ausführungsformen der Erfindung anhand der beigefügten Zeichnungen deutlich. Es zeigt:
  • 1 ein Blockdiagramm einer Burstfehler-Paralleldecodierschaltung, die in einer Burst- und Bytefehlerermittlung- und -korrekturvorrichtung nach einer Ausführungsform der Erfindung enthalten ist;
  • 2 ein Diagramm ein Codematrix mit r Reihen mal n Spalten, die einen Code darstellt, sowie einer Teilmatrix Hi mit r Reihen mal 2b Spalten, die mit dem i-ten bit der Codematrix beginnt;
  • 3 ein Diagramm, das zeigt, wie jeweils Informationsrahmen mit einer Länge von 2b bits in einer empfangenen Information von n bits eingesetzt und Teilmatrizen der Matrix H in Verbindung mit diesen Rahmen erhalten werden;
  • 4 ein Blockdiagramm von einer Burstfehlermustererzeugungsschaltung für einen bestimmten Rahmen, der in der Burstfehlermustererzeugungsschaltung 2 der 1 bei einer Ausführungsform der Erfindung enthalten ist;
  • 5 ein Diagramm einer Matrix H mit einem 3-bit-Burstfehlerkorrktur-Fire-Code für eine empfangene Information mit der Länge 35 bits, die aus einem Informationsabschnitt mit einer Länge von 27 bits und einem Kontrollabschnitt mit einer Länge von 8 bits besteht, als eine Ausführungsform der Erfindung, wobei eine Matrix Bi, die erhalten wird, wenn eine Teilmatrix mit einer Länge von 6 bits, die mit einem vierten bit beginnt, als Hi gesetzt wird, und eine nichtsinguläre Matrix Ai, die durch Addieren von Bi zu Hi erhalten wird, gezeigt sind;
  • 6 ein Diagramm einer inversen Matrix Ai –1 für die nichtsinguläre Matrix Ai und ihre Teilmatrices Hi* und Bi*;
  • 7 ein Diagramm von einer Burstfehlermustererzeugungsschaltung eines Rahmens, der der Teilmatrix Hi (d.h. einem Informationsrahmen, der mit einem vierten bit beginnt) entspricht;
  • 8 ein detailliertes Schaltungsdiagramm einer in 7 dargestellten Schaltung M;
  • 9 ein Diagramm von einer Fehlermusterberechnungsschaltung bei der Ausführungsform; und
  • 10(a) ein Diagramm von dem Fall, wenn bei der Ausführungsform ein Fehler in einer Region auftritt, die mit dem benachbarten Rahmen überlappt; 10(b) ein Diagramm von dem Fall, wenn ein Fehler aus der Region herausfällt, aber vollständig in einem Rahmen enthalten ist.
  • EINGEHENDE BESCHREIBUNG DER ERFINDUNG
  • Ist ein Burstfehler mit einer Länge von b bits oder weniger in der empfangenen Information mit einer Länge von n bits zugegen, müssen zur Korrektur dieses Fehlers das Fehlermuster von b bits oder weniger sowie die Information hinsichtlich der bit-Position, an der der Burstfehler in der empfangenen Information anfängt, gefunden werden. Damit parallel decodiert werden kann, müssen das Fehlermuster und die bit-Position, an der der Fehler aufgetreten ist, durch Bilden einer Kombinationsschaltung aus der empfangenen n-bit-Information (einschließlich Kontroll-bits, die zur Burstfehlerkorrektur benötigt werden) und mittels Durchführen einer parallelen Verarbeitung gefunden werden. Man benötigt daher eine Technik zur Durchführung der Decodierung auf Basis einer Idee, die sich völlig von der herkömmlichen Idee unterscheidet.
  • Zurzeit gibt es Fire-Code als Code, der Burstfehler mit beliebiger Länge ermitteln und korrigieren kann. Bei der Erfindung kann jedoch jeder lineare Code verwendet werden, solange er Burstfehler mit einer Länge von b bits oder weniger ermitteln und korrigieren kann. Anders gesagt, kann eine erfindungsgemäße Technik auf jeden Burstfehlerermittlungs- und -korrekturcode angewendet werden, solange der Code ein linearer Code ist, der durch eine Paritätskontrollmatrix dargestellt werden kann.
  • 1 ist ein Blockdiagramm einer Decodierschaltung zum parallelen Ermitteln und Korrigieren von Burstfehlern bis zu b bits nach einer Ausführungsform der Erfindung. In 1 ist eine Schaltung 1 eine Syndromerzeugungsschaltung. Ein Syndrom S wird erzeugt, indem eine von einem Code vorgeschriebene Matrix auf empfangene Information D angewendet wird. Das Syndrom S wird in eine Burstfehlermustererzeugungsschaltung 2 eingegeben.
  • Das Syndrom S wird gemeinsam in p Sätze von Burstfehlermustererzeugungsschaltungen 2-1 bis 2-p eingegeben, die den Informationsrahmen der festgelegten Länge w aufweisen. Jede Burstfehlermustererzeugungsschaltung 2-1 bis 2-p ermittelt, ob Burstfehler in dem zugehörigen empfangenen Informationsrahmen mit der Länge w bits enthalten sind oder nicht. Obwohl w eine beliebige ganze Zahl im Bereich b ≤ w ≤ 2b ist, wird in der folgenden Beschreibung angenommen, dass w = 2b. Sind Burstfehler in einem der Informationsrahmen vollständig enthalten, gibt die zugehörige Burstfehlermustererzeugungsschaltung 2-1 bis 2-p ein korrektes Burstfehlermuster aus.
  • Eine Schaltung 3 ist eine Fehlermusterberechnungsschaltung zum Berechnen eines Fehlermusters, das in sich nicht widersprüchlich ist, wenn Burstfehler in den benachbarten empfangenen Informationsrahmen überlappen. Eine Schaltung 4 ist eine Inversionsschaltung zum Ausführung von Ausschließlich-ODER zwischen jeweiligen bits des durch die Fehlermusterberechnungsschaltung 3 erzeugten Fehlermusters ("1" wird für einen Fehler-bit ausgegeben) und entsprechenden bits der eingegebenen empfangenen Information. Lautet ein fehleranzeigendes bit im Fehlermuster "1", wird das eingegebene bit invertiert und dadurch korrigiert. Daher wird die Inversionsschaltung 4 aus n Sätzen von parallel angeordneten Zwei-Eingabe-Ausschließlich-ODER-Schaltungen gebildet. Aus der Inversionsschaltung 4 wird die korrigierte n-bit-Information DS ausgegeben. Wird die Kontrollinformation in der anschließenden Verarbeitung nicht verwendet, kann die Inversionsschaltung 4 nur aus Ausschließlich-ODER-Schaltungen bestehen, die k (= n – r) bits entsprechen, die einen Informationsabschnitt bilden.
  • Wird die empfangene Information üblicherweise durch n-bit-Binärinformation dargestellt und ein n-ter Reihenvektor D = (d0, d1, ..., dn-1) gebildet, enthält sie Kontrollinformation von r bits, die durch den Code bestimmt wird. Im Allgemeinen wird der Code durch eine Paritätskontrollmatrix H (im Folgenden als H-Matrix bezeichnet) mit r Reihen und n Spalten von Elementen ausgedrückt, die jeweils durch eine binäre Zahl aus 0 und 1 dargestellt werden. Im Folgenden wird angenommen, dass ein Code zum Korrigieren von Burstfehlern durch die H-Matrix mit r Reihen mal n Spalten ausgedrückt werden kann. Dabei ist die folgende Beziehung für empfangene Information D erfüllt, die keine Fehler enthält. Anders gesagt, wird die Kontrollinformation zuvor ermittelt, so dass die empfangene Information D die folgende Beziehung erfüllt: H·DT = 0r (1)wobei DT ein Spaltenvektor ist, der durch Transponieren des Reihenvektors erhalten wird. T steht für die Transposition zwischen einer Reihe und einer Spalte. Sind zu diesem Zeitpunkt in der empfangenen Information D Burstfehler aufgetreten, wird die rechte Seite der Gleichung (1) nicht zu 0r (0 Vektor aus r bits). Dieses Ergebnis bezeichnet man als Syndrom S, und es wird durch einen aus r bits gebildeten Spaltenvektor dargestellt. Anders gesagt, ist S = 0r, wird geschlossen, dass keine Fehler zugegen sind. Ist S ≠ 0r, wird die Analyse auf Basis des Musters des Syndroms S durchgeführt, wodurch das Burstfehlermuster und seine Anfangsposition gefunden werden, und infolgedessen die Korrektur durchgeführt. Die Syndromerzeugungsschaltung 1 in 1 ist eine Schaltung zur Berechnung der linken Seite der Gleichung (1), und sie wird aus r Paritätskontrollschaltungen gebildet. Ihre Ausgabe wird zu einem r-bit-Syndrom S.
  • In der H-Matrix mit r Reihen mal n Spalten zum Korrigieren eines Burstfehlers von b bits oder weniger wird eine Teilmatrix mit r Reihen und 2b Spalten mit einer Länge von 2b bits, die mit einer beliebigen Position beginnt (zum Beispiel mit einem i-ten bit), als Hi bezeichnet, wobei 2b ≤ r. Diese Teilmatrix hat einen Rang r, und 2b Spaltenvektoren sind linear unabhängig. Anders gesagt, ist eine lineare Summe von 2b Spaltenvektoren immer Nicht-Null. Eine Teilmatrix mit r Reihen mal (r – 2b) Spalten wird als Bi bezeichnet. Bi wird anschließend an Hi angeordnet, wodurch eine quadratische Matrix mit r Reihen mal r Spalten Ai = [Hi|Bi] neu gebildet wird. Dabei wird Bi so geformt, dass Ai eine nichtsinguläre Matrix wird. "Nicht-singuläre Matrix" ist als eine Matrix definiert, die in einem Determinantenwert nicht Null ist. Daher hat eine nicht-singuläre Matrix mit Sicherheit eine inverse Matrix, die einzigartig festgelegt ist. Anders gesagt, wird die folgende Gleichung erfüllt: Ai –1·Ai = Iwobei I die binäre Identitätsmatrix mit r Reihen mal r Spalten ist. Daher wird Ai –1 durch die folgende Gleichung dargestellt:
    Figure 00080001
    wobei Hi* eine Matrix mit 2b Reihen mal r Spalten ist und Bi* eine Matrix mit (r – 2b) Reihen mal r Spalten. Damit werden die folgenden Gleichungen erfüllt: Hi*·Hi = I2b Bi*·Hi = 0r-2b Hi*·Bi = 02b Bi*·Bi = Ir-2b (2) wobei I2b und Ir-2b binäre Identitätsmatrizen mit 2b Reihen mal 2b Spalten bzw. (r – 2b) Reihen mal (r – 2b) Spalten sind und 02b und 0r-2b binäre Nur-Null-Matrizen mit 2b Reihen mal 2b Spalten bzw. (r – 2b) Reihen mal (r – 2b) Spalten sind. Dagegen wird Bi für Hi nicht einzigartig festgelegt. Es ist jedoch wünschenswert, wenn unter Berücksichtigung der Schaltungsmenge der Decodierschaltung Bi so gewählt wird, dass die Gesamtzahl an "1" in Bi* und Hi* einen kleinsten Wert annimmt.
  • Wird ein b-bit-Burstfehler, der in einem Rahmen enthalten ist mit einer Länge von 2b bits, der mit einem i-ten bit beginnt, der fehlerlosen n-bit-Information D0 überlagert, dann kann die empfangene Information D als D = D0 + E dargestellt werden, wobei E ein n-bit-Fehlermusterreihenvektor ist. Zu diesem Zeitpunkt kann ein Syndrom S, das ein Spaltenvektor von r bit ist, durch die folgende Gleichung dargestellt werden: S = H·DT = H·D0 T + H·ET = H·ET (3)
  • Anders gesagt, folgt für die fehlerlose Information D0, dass H·D0 T = 0r. Daher wird das Syndrom S gleich H·ET. Damit enthält das Fehlermuster E einen Burstfehler e, der mit einem i-ten bit davon beginnt, und das Fehlermuster E kann wie folgt dargestellt werden:
    Figure 00090001
    wobei e ein Zwei-Element-Reihenvektor mit dem Grad 2b ist. Daher kann Gleichung (3) modifiziert werden, wie in der folgenden Gleichung dargestellt. Aus der Gleichung kann e unter Verwendung von Gleichung (2) abgeleitet werden: S = H·ET = Hi·eT Hi*·S = Hi*·(Hi·eT) = eT (4) Bi*·S = Bi*·(Hi·eT) = 0r-2b (5)
  • In Gleichung (5) ist 0r-2b ein Null-Spaltenvektor der (r – 2b). Ordnung. Anders gesagt, wenn Bi*·S ein Null-Vektor aus Gleichung (5) ist, wird e aus Hi*·S in Gleichung (4) erhalten. Ist Bi*·S nicht Null für ein Nicht-Null-Syndrom S, ist ein Fehler aufgetreten, der die Korrekturfähigkeit übersteigt, und e kann aus Gleichung (4) nicht korrekt erhalten werden.
  • Wie vorstehend beschrieben, kann unter Verwendung der Gleichungen (4) und (5) ein Burstfehlermuster von bis zu b bits in 2b bits abgeleitet werden.
  • Im Folgenden wird ein Verfahren zum Finden der Anfangsposition von Burstfehlern beschrieben. In der vorstehenden Beschreibung wurde angenommen, dass der Fehler mit dem i-ten bit beginnt. Es ist jedoch notwendig, das Verfahren zum Erhalten der Position darzulegen. Zunächst wird in der empfangenen Information ein bestimmter Informationsrahmen mit einer Länge von 2b angenommen, wie in 3 gezeigt. Auf dessen linker und rechter Seite werden aufeinander folgende Rahmen mit der gleichen Länge gebildet, so dass eine Überlappung mit der Länge (b – 1) erzeugt wird. Mit Ausnahme des ersten und des letzten Rahmens überlappen zwei der Längen (b – 1), die in jedem Rahmen enthalten sind, jeweils mit dem benachbarten (linken und rechten) Rahmen. (Die Länge des letzten Rahmens kann kürzer als 2b sein). In jedem Rahmen überlappen sich nur zwei mittlere bits nicht. Dadurch sind die b-bit-Burstfehler, die an einer beliebigen Position aufgetreten sind, zumindest ein einem Rahmen vollständig enthalten. Sind die Burstfehler kürzer als b bits, sind sie vollständig in einem Rahmen enthalten, und in einigen Fällen sind sie zudem vollständig im nächsten Nachbarrahmen enthalten. Die b-bit-Burstfehler sind jedoch nur in einem Rahmen vollständig enthalten, sind aber nicht auch gleichzeitig vollständig in dem Nachbarrahmen enthalten. Dabei gibt es einen Rahmen, der einen Teil des Burstfehlers enthält. Bei Burstfehlern von (b + 1) bits oder mehr gibt es keinen Rahmen, der den Burstfehler vollständig enthält, und ein Teil des Burstfehlers in jeweils in den beiden benachbarten Rahmen enthalten.
  • Anschließend wird die Rahmenbreite 2b mit der Spaltenbreite 2b der Teilmatrix der vorstehend beschriebenen H-Matrix assoziiert. Anders gesagt, wird Hi mit einem bestimmten Informationsrahmen assoziiert, der die Länge 2b hat und mit einem i-ten bit beginnt. Die beiden benachbarten Rahmen von Hi werden mit dem Teilmatrizen Hi-b-1 und Hi-b+1 assoziiert, die jeweils 2b Spalten und eine Überlappung mit der Länge (b – 1) besitzen. Auf diese Weise werden hinsichtlich eines bestimmten Informationsrahmens mit der Länge 2b in der empfangenen Information zwei benachbarte Informationsrahmen angenommen. Diese zwei Informationsrahmen überlappen mit dem bestimmten Informationsrahmen jeweils auf der linken und der rechten Seite um eine Länge von (b – 1) und haben auf diese Weise jeweils die Länge 2b. Mit Ausnahme des ersten und des letzten Rahmens werden Rahmen mit einer derartigen Überlappung nacheinander auf die gleiche Weise angenommen. (Der erste und der letzte Rahmen überlappen jeweils nur mit einem Rahmen). Ein empfangener Informationsrahmen mit der Länge 2b wird mit einer Teilmatrix, die r Reihen mal 2b Spalten hat, in einer Eins-zu-Eins-Entsprechung assoziiert, und die Decodierung wird durchgeführt. Anders gesagt, wird, wie in 1 gezeigt, zunächst H DT aus der empfangenen Information D mit der Länge n berechnet und das Syndrom S erhalten. Anschließend werden die Gleichungen (4) und (5) für jeden Informationsrahmen berechnet. Es werden genauso viele Schaltungen zum Berechnen der zwei Gleichungen wie die Anzahl der Rahmen bereitgestellt. Nur für den Empfangsrahmen, der b-bit-Burstfehler vollständig enthält, wird ein Fehlermuster e korrekt ausgegeben. Aus dem Rahmen, der einen Teil des Fehlers enthält, wird ein Null-Vektor als Fehlermuster ausgegeben. Die Anzahl p der Rahmen zur Berechnung der Gleichungen (4) und (5) wird durch die folgende Gleichung erhalten: P = ⌈(n – 2b)/(b + 1)⌉ + 1wobei ⌈(n – 2b)/(b + 1)⌉ für eine minimale ganze Zahl steht, die (n – 2b)/(b + 1) übersteigt. Anders gesagt, werden die in 1 gezeigten p Sätze von Kombinationsschaltungen 2-1 bis 2-p zur Berechnung der Gleichungen (4) und (5) parallel bereitgestellt. Ein korrektes Fehlermuster wird nur von der Schaltung ausgegeben, die einem Rahmen entspricht, der Burstfehler vollständig enthält. Burstfehler, die kürzer sind als b bits, sind in einigen Fällen vollständig in zwei benachbarten Rahmen enthalten. Fehlermuster, die beiden Rahmen entsprechen, werden von den Burstfehlermustererzeugungsschaltungen beider Rahmen ausgegeben und in der Fehlermusterberechnungsschaltung 3 angepasst. Ein korrektes Fehlermuster wird ausgegeben.
  • 4 zeigt eine Intra-Rahmen-Burstfehlererzeugungsschaltung, die ein Fehlermuster ausgibt, wenn Burstfehler von b bits oder kürzer in einem Bereich zwischen einem i-ten bit und einem (i + 2b – 1)-ten bit auftreten, was einem Informationsrahmen entspricht, der die Längen 2b bits hat und mit dem i-ten bit beginnt.
  • Die Schaltung in 4 enthält Folgendes:
    eine Kombinationsschaltung 2-(4) zum Berechnen der Gleichung (4), eine Kombinationsschaltung 2-(5) zum Berechnen der Gleichung (5), eine Schaltung M zum Ausgeben von "1" unter Verwendung einer Ausgabe von der Schaltung 2-(4), wenn die Fehler Burstfehler sind, die vollständig in dem Rahmen enthalten sind und b bits oder weniger betragen, und zum Ausgeben von "0" in anderen Fällen, ein NOCH-Gate N zum Ausgeben von "1", wenn alle Ausgaben von (r – 2b) bits der Schaltung 2-(5) "0" sind, ein Zwei-Eingabe-UND-Gate A1 und eine Gruppe A2 aus 2b Zwei-Eingabe-UND-Gates.
  • Dabei ist das UND-Gate A1 eine Schaltung zum Ausgeben von "1", wenn die Gleichung (5) erfüllt ist und die Burstfehler von b bits oder weniger vollständig in dem Rahmen enthalten sind.
  • Wenn die Ausgabe von dem Gate A1 "1" ist, wird schließlich das gemäß Gleichung (4) erzeugte Fehlermuster e, d.h. die Ausgabe der Schaltung 2-(4), zu einem korrekten Burstfehlermuster, dem Ausgaben der 2b Sätze der UND-Gates A2 entsprechen. Diese Ausgabe wird in die Inversionsschaltung 4 über die Fehlermusterberechnungsschaltung 3 von n bits eingegeben, die in 1 gezeigt ist. Die korrigierte Information wird erhalten. Andererseits kann die in 4 gezeigte Schaltung M durch den folgenden logischen Ausdruck für das Fehlermuster von 2b bits, das mit ei beginnt, gebildet werden:
    Figure 00120001
    wobei ⋃ für eine logische Summe steht, ⋂ für ein logisches Produkt und eine über den Ausdruck gezogene Linie ein logisches NICHT bedeutet. Anders gesagt, ist X ein logisches NICHT von X. Zudem steht
    Figure 00120002
  • Beträgt die Bursffehlerlänge (b – 1) bits oder weniger, dann können die Bursffehler vollständig in beiden von zwei benachbarten Informationsrahmen mit einer Überlappung von (b – 1) bits enthalten sein. Daher führt die Fehlermusterberechnungsschaltung 3 ODER (logische Summenfunktionen) zwischen (b – 1) Ausgaben an jedem von beiden Enden jeder Fehlermustererzeugungsschaltung 2-1 bis 2-p bzw. (b – 1) entsprechende Ausgaben an einem Ende einer benachbarten Fehlermustererzeugungsschaltung durch. Anders gesagt, führt die Fehlermusterberechnungsschaltung 3 ODER zwischen überlappenden Anteilen aus.
  • Die Inversionsschaltung 4 führt Ausschließlich-ODER zwischen n bits der empfangenen Information D bzw. n bits, die von der Fehlermusterberechnungsschaltung 3 geliefert werden, durch. Die Inversionsschaltung 4 enthält n unabhängig angeordnete Ausschließlich-ODER-Gates. Entsprechende bits der empfangenen Information D und der Fehlermusterberechnungsschaltung 3 werden in jedes der Ausschließlich-ODER-Gates eingegeben. Es wird angenommen, dass "1" von der Fehlermusterberechnungsschaltung 3 ausgegeben wird. Ist das entsprechende bit der empfangenen Information D "1 ", dann wird "0" ausgegeben. Ist das entsprechende bit der empfangenen Information D "0", dann wird "1" ausgegeben. Auf diese Weise wird das bit der empfangenen Information D invertiert, korrigiert und ausgegeben. Wie für ein fehlerloses bit, wird "0" von der Fehlermusterberechnungsschaltung 3 ausgegeben. Wie für ein fehlerloses bit, wird daher die empfangene Information D ausgegeben, wie sie ist. Dies wird als korrigierte Information D2 ausgegeben.
  • Wie bei dem Code, der die Burstfehler bis zu b bits korrigieren und die Burstfehler bis zu d (> b) bits ermitteln kann, sollte in der Regel die Rahmenlänge w ein beliebiger ganzzahliger Wert sein, der die Beziehung b ≤ w ≤ b + d erfüllt. Die Schaltung ist im Grunde die gleiche wie die in 1 gezeigte Schaltung. Es ist jedoch notwendig, dass eine Schaltung zur Ermittlung von Burstfehlern bis zu d bits hinzugefügt wird. Dieser Fehler kann ermittelt werden, wenn das Syndrom S nicht Null ist und das Fehlermuster E = 0n. Es sollte eine Schaltung hergestellt werden, die dieser Logik genügt. E = 0n bedeutet, dass alle n-bit-Fehlermuster "0" sind.
  • In den vorhergehenden und den folgenden Ausführungsformen ist nur die Decodierungsverarbeitung beschrieben. Ist die Logik jedoch klar ausgedrückt, ist selbstverständlich, dass konform damit eine Codierungsverarbeitung durchgeführt werden kann.
  • Anhand eines Beispiels wird im Folgenden konkret gezeigt, dass der Burstfehler parallel korrigiert werden kann. 5 zeigt ein Beispiel für eine H-Matrix eines (35,27)-3-bit-Burstfehlerkorrektur-Fire-Codes. Daraus folgt, dass b = 3, n = 35 und r = 8. Es wird angenommen, dass eine Teilmatrix einer H-Matrix, die einem Rahmen mit der Länge 2b (= 6) bits entspricht, der mit einem i = 4-ten bit beginnt, Hi (wobei bei diesem Beispiel i = 4) ist, wie in 5 gezeigt. Diese Hi ist eine Matrix mit 8 Reihen mal 6 Spalten. Durch Addieren einer Matrix Bi mit 8 Reihen mal 2 Spalten dazu wird eine nicht-singuläre Matrix Ai mit 8 Reihen mal 8 Spalten erzeugt. 5 zeigt auch diese Matrizen. 6 zeigt eine inverse Matrix Ai –1 sowie auch eine Matrix Hi* mit 6 Reihen mal 8 Spalten und eine Matrix Bi* mit 2 Reihen mal 8 Spalten.
  • 7 zeigt eine konkrete Konfiguration der 4 für dieses Beispiel. Eine parallele Burstfehlerdecodierschaltung für einen Informationsrahmen, der mit dem 4-ten bit beginnt, ist gezeigt. Zunächst wird angenommen, dass der folgende Fehler als Burstfehlermuster bis zu 3 bits aufgetreten ist.
  • Figure 00140001
  • Ein Rahmen für dieses Beispiel ist ein empfangener Informationsrahmen mit einer Länge von 2b = 6 bits, der mit einem 4-ten bit beginnt. Ein Syndrom S für den 3-bit-Burstfehler wird erhalten durch: S = H·ET = (01001110)
  • Weil S = (S0, S1, S2, S3, S4, S5, S6, S7), kann eine Schaltung 2-(4) zur Berechnung von Hi*·S aus der folgenden Logik gebildet werden: (S0 ⊕ S3 ⊕ S6, S0, S1, S2, S3, S0 ⊕ S3 ⊕ S4 ⊕ S6)T wobei ⊕ für Ausschließlich-ODER steht.
  • Für den angenommenen Fehler wird durch Einsetzen von S0 = 0, S1 = 1, S2 = 0, S3 = 0, S4 = 1, S5 = 1, S6 = 1 und S7 = 0 in den Ausdruck Hi*·S = (101000)T erhalten.
  • Andererseits kann eine Schaltung 2-(5) zur Berechnung von Bi*·S aus der folgenden Logik gebildet werden: (S0 ⊕ S1 ⊕ S2 ⊕ S6, S0 ⊕ S1 ⊕ S4 ⊕ S7)T
  • Durch Einsetzen von S0 = 0, S1 = 1, S2 = 0, S4 = 1, S6 = 1 und S7 = 0 in den Ausdruck wird Bi*·S = (00)T erhalten.
  • 8 zeigt eine Schaltung M, die für dieses Beispiel konkret gebildet wurde. Anders gesagt, ist diese Schaltung eine Schaltung, die anzeigt, dass ein Fehler vollständig in einem Rahmen mit einer Länge von 6 bits, der mit einem 4. bit beginnt, enthalten ist und dass keine Burstfehler mit einer Länge von mindestens 4 bits existieren. Wenn ein solcher Fehler nicht existiert, gibt die Schaltung M "1" aus. Hinsichtlich der Logik wird durch Darstellen eines Fehlermusters e, das dem Rahmen entspricht, durch e = (e4, e5, e6, e7, e8, e9)und dessen Einsetzen in den Ausdruck (6)
    Figure 00150001
    erhalten.
  • Diese Schaltung M wird zu der in 8 gezeigten logischen Schaltung. In 8 bezeichnen O1 und O2 ODER-Gates, A3, A4 und A5 UND-Gates, und N1 bezeichnet ein NOCH-Gate. Kurz gesagt, sind zum Beispiel die Burstfehler mit einer Länge von mindestens 4 bits, die mit e4 beginnen, der Fall, in dem e4 "1" ist und e7, e8 oder e9 "1" ist. Tritt dieser Fall nicht auf, existieren die Burstfehler mit einer Länge von mindestens 4 bits, die mit e4 beginnen, nicht. Auch für die Burstfehler, die mit e5 beginnen, und für die Burstfehler, die mit e6 beginnen, können Logiken auf die gleiche Weise erhalten werden.
  • Weil die zuvor angenommenen 3-bit-Burstfehler vollständig in dem Informationsrahmen enthalten sind, der mit einem 4-ten bit beginnt, gibt das Gate N in 7 "1" aus. Weil die Burstfehler mit einer Länge, die 4 bits übersteigt, nicht existieren, gibt die Schaltung M ebenfalls "1" aus. Weil beide Bedingungen erfüllt sind, gibt das Zwei-Eingabe-UND-Gate A1 "1" aus. Zusätzlich ist eine Fehlermusterausgabe von der Schaltung 2-(4) ein korrektes Fehlermuster, und die Zwei-Eingabe-UND-Gate-Gruppe A2 gibt ein 6-bit-Fehlermustersignal von e4, e5, e6, e7, e8 und e9 aus.
  • Im Folgenden wird die Fehlermusterberechnungsschaltung (Schaltung 3 in 1) für dieses Beispiel beschrieben.
  • 2-bit-Fehlermuster, die jeweils von p Burstfehlermusterzeugungsschaltungen ausgegeben werden, müssen derart umgeordnet werden, dass sie einer Überlappung von Informationsrahmen entsprechen, und es muss schließlich ein n-bit-Fehlermuster gebildet werden, das n bits der empfangenen Information in einer Eins-zu-Eins-Entsprechung entspricht. Insbesondere wenn die Burstfehler eine Länge von (b – 1) bits oder weniger haben, sind sie vollständig in beiden von zwei benachbarten Informationsrahmen mit einer Überlappung von (b – 1) bits enthalten. Siehe 9: Daher muss ODER (logische Summe) zwischen (b – 1) Ausgaben jeweils an beiden Enden jeder Fehlermustererzeugungsschaltung, die einem Rahmen entspricht, bzw. den überlappenden (b – 1) Ausgaben am Ende ihrer benachbarten Fehlermustererzeugungsschaltung durchgeführt werden. Weil bei diesem Beispiel b = 3, werden zwei Ausgaben, die sich an beiden Enden befinden, an Zwei-Eingabe-ODER-Gates (O3, O4, O5 und O6) eingegeben.
  • Hat der Fehler dagegen mindestens b bits, enthält mindestens einer von zwei überlappenden Informationsrahmen den Fehler nicht vollständig, sondern nur einen Teil des Fehlers. Daher gibt eine Erzeugungsschaltung, die dem Rahmen entspricht, ein Nur-Null-Muster als Fehlermuster aus. Indem ODER zwischen (b – 1) bits an den entsprechenden Enden durchgeführt wird, wird das korrekte Fehlermuster erhalten. Auf diese Weise gibt die Fehlermusterberechnungsschaltung 3 ein n-bit- (in diesem Beispiel 35-bit-) Fehlermuster aus.
  • 10 ist ein Diagramm, das den Betrieb der Fehlermusterberechnungsschaltung 3 zeigt. 10(a) zeigt den Fall, wenn der Fehler in beiden von zwei Rahmen vollständig enthalten ist. 10(b) zeigt den Fall, wenn der Fehler vollständig in einem Rahmen (i), aber nicht vollständig in dem benachbarten Rahmen enthalten ist. Wie dargestellt, wird das korrekte Fehlermuster ausgegeben, indem ODER zwischen überlappenden bits durchgeführt wird.
  • Wie anhand von 1 beschrieben, ist die Inversionsschaltung eine Schaltung zum Durchführen von Ausschließlich-ODER zwischen der empfangenen Information D und bits des entsprechenden Fehlermusters. Die Inversionsschaltung kann durch unabhängiges Anordnen von n (n = 35 bei diesem Beispiel) Ausschließlich-ODER Gates gebildet werden. Anders gesagt, gibt für das bit, in dem der Fehler ermittelt wird, die Fehlermusterberechnungsschaltung 3 "1" aus. Ist das entsprechende bit der empfangenen Information D "1 ", wird "0" ausgegeben. Ist das entsprechende bit der empfangenen Information D "0", wird "1" ausgegeben. Auf diese Weise werden die entsprechenden bits der empfangenen Information D für die Korrektur invertiert und ausgegeben. Für das bit, das als korrektes ermittelt wird, gibt die Fehlermusterberechnungsschaltung 3 "0" aus. Daher werden für dieses fehlerlose bit die entsprechenden bits der empfangenen Information D ausgegeben, wie sie sind. Dies wird als korrigierte Information Ds ausgegeben.
  • Bis hierhin wurden Burstfehler als Gegenstand der Erfindung beschrieben. Es ist jedoch ersichtlich, dass die Erfindung auf die Ermittlung und Korrektur von Bytefehlern, einer speziellen Form der Burstfehler, angewendet werden kann. Wenn b bits ein Byte bilden, kann ein Ein-Byte-Fehler unter Verwendung der Erfindung korrigiert werden. Jedoch ist es gewöhnlich insbesondere dann schwierig, die Logik zur Durchführung der parallelen Decodierung zu bilden, wenn die Elemente eines Galois-Fehes GF (2b) nicht als die Elemente verwendet werden, die die H-Matrix bilden.
  • Bei einem Code mit der Funktion einer Ein-Byte-Fehlerkorrektur und einer (Ein-Byte+ein-bit)-Fehlerermittlung, der auf S. 105 bis 109 von IEEE Transaction on Computers, Bd. 46, Nr. 1, 1997 beschrieben ist, wird zum Beispiel der Code nicht unter Verwendung der Elemente auf GF (2b) gebildet. Daher ist es schwierig, einen Ein-Byte-Fehler mit kleiner Schaltungsmenge parallel zu korrigieren. Durch Anwenden der Erfindung kann hier jedoch die parallele Decodierung leicht vorgenommen werden. Besteht ein Byte aus b bits, muss in dem Code zum Korrigieren eines Ein-Byte-Fehlers die Größe des oben beschriebenen Rahmen nicht 2b sein, sondern kann b sein. Der Grund dafür ist, dass eine Startposition des Byte-Fehlers grundsätzlich b als Einheit verwendet, und Rahmen, die einen Fehler enthalten, einander nicht überlappen. Daher wird die oben beschriebene Rahmenüberlappung mit einer Größe von (b – 1) ebenfalls unnötig. Durch geeignete Auswahl der addierten Matrix Bi* kann die Schaltungsmenge für die Decodierung klein gehalten werden.
  • Bisher gibt es noch keine Verfahren zum parallelen Durchführung von Codierung und Decodierung unter Verwendung eines Burstfehlerermittlungs- und -korrek-turcodes. Die Erfindung führt Codierung und Decodierung parallel unter Verwendung einer Kombinationsschaltung durch, ohne dass ein LFSR verwendet wird, den man als Burstfehlerkontrollcode eingesetzt hat. Bei einer Anwendung, die eine Hochgeschwindigkeitscodierungsverarbeitung erfordert, kann die Erfindung daher eine sehr bemerkenswerte Wirkung erzielen. Zusätzlich hat die Erfindung die Wirkung, dass sie auf jeden Burstfehlerermittlungs- und -korrekturcode angewendet werden kann, solange es sich um einen linearen Code handelt.
  • Bei der hier beschriebenen parallelen Decodierungstechnik wird die Größe jedes Informationsrahmens auf 2b fesgelegt. Die Größe 2b wird ermittelt, weil mindestens beliebige 2b Spalten der H-Matrix linear unabhängig sein müssen, damit sie einen b-bit-Burstfehler korrigieren können. Daher ist die Rahmengröße maximal 2b und minimal b. Die Größe kann auf einen Wert zwischen 2b und b festgelegt werden. Ungeachtet der Rahmengröße bleibt jedoch, dass die Überlappung mit jedem der auf beiden Seiten befindlichen Rahmen die Größe (b – 1) hat. Mit der Verkleinerung der Rahmengröße steigt damit die Gesamtanzahl der erforderlichen Rahmen, so dass die Decodierschaltung im Verhältnis dazu groß wird. Folglich wird die Schaltungsmenge kleiner, wenn die Rahmengröße gleich 2b gesetzt wird.
  • Die Erfindung kann auch auf die Ermittlung und Korrektur von Byte-Fehlern angewendet werden. So kann eine parallele Decodierung leicht durchgeführt und die Schaltungsmenge klein gehalten werden.

Claims (8)

  1. Verfahren zum Erzeugen eines Burstfehlermusters, wodurch ein Burstfehlermuster mit einer Länge von bis zu b bits erzeugt wird, umfassend die Schritte: Ermitteln eines Syndroms S als r-bit-Spaltenvektor aus der empfangenen Information D unter Verwendung der Beziehung H·DT = Swobei DT ein n-bit-Spaltenvektor ist, der erhalten wird durch Transponieren eines n-bit-Reihenvektors, der die empfangene Information D darstellt, und H eine Paritätskontrollmatrix mit r Reihen mal n Spalten ist; Ausschneiden einer Teilmatrix Hi mit r Reihen mal w Spalten aus der Matrix H, wobei die Teilmatrix Hi mit einer i-ten Spalte der Matrix H beginnt, wobei gilt: b ≤ w ≤ b + d < r und d > b; Bilden einer Teilmatrix Bi mit r Reihen mal (r – w) Spalten und Anhängen der Teilmatrix Bi an die Teilmatrix Hi zum Erzeugen einer Matrix Ai = [Hi|Bi] mit r Reihen mal r Spalten, wobei die Teilmatrix Bi so geformt wird, dass die Matrix Ai nichtsingulär wird; Bestimmen der inversen Matrix Ai –1 der Matrix Ai, wobei die inverse Matrix Ai –1 auftrennbar ist in eine Matrix Hi* mit w Reihen mal r Spalten und eine Matrix Bi* mit (r – w) Reihen mal r Spalten, indem die inverse Matrix Ai –1 ausgedrückt wird als
    Figure 00180001
    Erhalten eines Fehlervektors e aus der Beziehung eT = Hi*·Sunter der Voraussetzung, dass Bi* und S die Bedingung erfüllen Bi*·S = Or-w, wobei Or-w ein Null-Spalten-Vektor mit (r – w) bits ist.
  2. Burstfehlerermittlungs- und -korrekturvorrichtung zum Ermitteln und Korrigieren eines Burstfehlers mit einer Länge von bis zu b bits, wobei die Vorrichtung umfasst: eine Syndromerzeugungsschaltung (1) zum Erzeugen eines Syndroms S aus empfangener Information D unter Verwendung einer Beziehung S = H·DT für die empfangene Information D mit einer Länge von n bits und eine Paritätskontrollmatrix H mit r Reihen mal n Spalten; eine Mehrzahl parallel angeordneter Fehlermustererzeugungsschaltungen (2; 2-1, 2-2, ... 2-p), jeweils zum Empfangen des Syndroms S und jeweils entsprechend einem Informationsrahmen von w bits der empfangenen Information D, wobei gilt: b ≤ w ≤ b + d < r und d > b und die Anzahl der Fehlermustererzeugungsschaltungen gleich der Anzahl an Rahmen ist, wobei jeder Rahmen um b – 1 bits mit dem oder den benachbarten Rahmen überlappt und jede Fehlermustererzeugungsschaltung (2-1 ... 2-p) ein erstes Schaltnetz (2-(4)) und ein zweites Schaltnetz (2-(5)) enthält zum Berechnen eines Fehlervektors e aus einer Beziehung Hi*·S = eT bzw. zum Berechnen eines Ergebnisses Bi*·S, wobei jede Fehlermustererzeugungsschaltung (2-1 ... 2-p) den Fehlervektor e ausgibt, wenn das Ergebnis lautet Bi*·S = Or-w, wobei Or-w ein Null-Spalten-Vektor mit (r – w) bits ist; eine Fehlermusterberechnungsschaltung (3) zum Durchführen einer ODER-Operation zwischen entsprechenden bits der Fehlervektoren e von den überlappenden bits von Fehlervektoren e benachbarter Rahmen und zum Ausgeben eines berechneten n-bit-Fehlermusters; und eine Inversionsschaltung (4) zum Durchführen einer ausschließlich-ODER-Operation zwischen dem berechneten Fehlermuster und den entsprechenden bits der empfangenen Information D, wodurch die bits von D invertiert werden, für die ein Fehler ermittelt wird; wobei für jede Fehlermustererzeugungsschaltung (2-1 ... 2-p) Hi* und Bi* von einer inversen Matrix Ai –1 einer nicht-singulären Matrix Ai abtrennbar sind mit
    Figure 00190001
    und wobei Ai eine Matrix mit r Reihen mal r Spalten ist, die eine Teilmatrix Bi umfasst mit r Reihen mal (r – w) Spalten, angehängt an eine Teilmatrix Hi mit r Reihen mal w Spalten, wobei die Teilmatrix Hi aus der Matrix H ausgeschnitten ist und mit einer i-ten Spalte der Matrix H beginnt, so dass gilt: Ai = [Hi|Bi] und wobei Hi mit dem Rahmen der Fehlermustererzeugungsschaltung (2-1 ... 2-p) in einer Eins-zu-Eins-Entsprechung assoziiert ist.
  3. Burstfehlerermittlungs- und -korrekturvorrichtung nach Anspruch 2, wobei für einen Code, der einen Burstfehler von bis zu b bits korrigieren und einen Burstfehler ermitteln kann, der bis zu d bits größer ist als b bits, zudem bereitgestellt wird eine Schaltung zum Ausgeben von "1", ist das Syndrom nicht Null und sind alle bits des von der Fehlermusterberechnungsschaltung (3) ausgegebenen Fehlermusters Null, so dass ein Burstfehler von bis zu d bits ermittelt wird, wodurch Burstfehler von bis zu b bits korrigiert und Burstfehler von bis zu d bits ermittelt werden können.
  4. Burstfehlerermittlungs- und -korrekturvorrichtung nach Anspruch 2 oder 3, wobei Bi derart bestimmt wird, dass in Hi* und Bi*, die durch Zwei-Werte-Elemente "0" und "1" wiedergegeben werden, die Anzahl der "1" verringert, wodurch die Schaltungsmenge der Fehlermustererzeugungsschaltungen (2-1 ... 2-p) verringert werden kann.
  5. Burstfehlerermittlungs- und -korrekturvorrichtung nach Anspruch 2 oder 3, wobei für einen Code mit der Funktion zur Korrektur eines Burstfehlers von bis zu b bits die Länge w von jedem Rahmen in der empfangenen Information auf 2b eingestellt wird, wodurch die Schaltungsmenge zum Decodieren und Codieren verringert werden kann.
  6. Burstfehlerermittlungs- und -korrekturvorrichtung nach Anspruch 3, wobei für einen Code mit der Funktion zur Korrektur eines Burstfehlers von bis zu b bits und zum Ermitteln eines Burstfehlers von bis zu d bits die Länge w von jedem Rahmen in der empfangenen Information und die Paritätskontrollmatrix H auf b + d eingestellt werden, wodurch die Schaltungsmenge zum Decodieren und Codieren verringert werden kann.
  7. Bytefehlerermittlungs- und -korrekturvorrichtung zum Ermitteln und Korrigieren eines Ein-Byte-Fehlers, wobei 1 Byte aus b bits besteht und die Vorrichtung umfasst: eine Syndromerzeugungsschaltung (1) zum Erzeugen eines Syndroms S aus empfangener Information D unter Verwendung einer Beziehung S = H·DT für die empfangene Information D mit einer Länge von n bits und eine Paritätskontrollmatrix H mit r Reihen mal n Spalten; eine Mehrzahl parallel angeordneter Fehlermustererzeugungsschaltungen (2; 2-1, 2-2, ... 2-p), jeweils zum Empfangen des Syndroms S und jeweils entsprechend einem Informationsrahmen von w bits der empfangenen Information D, wobei gilt: w = b < r und die Anzahl der Fehlermustererzeugungsschaltungen gleich der Anzahl an Rahmen ist, wobei die Überlappung zwischen den Rahmen auf Null eingestellt ist und jede Fehlermustererzeugungsschaltung (2-1 ... 2-p) ein erstes Schaltnetz (2-(4)) und ein zweites Schaltnetz (2-(5)) enthält zum Berechnen eines Fehlervektors e aus einer Beziehung Hi*·S = eT bzw. zum Berechnen eines Ergebnisses Bi*·S, wobei jede Fehlermustererzeugungsschaltung (2-1 ... 2-p) den Fehlervektor e ausgibt, wenn das Ergebnis lautet Bi*·S = Or-w, wobei Or-w ein Null-Spalten-Vektor mit (r – w) bits ist; und eine Inversionsschaltung (4) zum Durchführen einer ausschließlich-ODER-Operation zwischen den berechneten Fehlervektoren e und den entsprechenden bits der empfangenen Information D, wodurch die bits von D invertiert werden, für die ein Fehler ermittelt wird; wobei für jede Fehlermustererzeugungsschaltung (2-1 ... 2-p) Hi* und Bi* von einer inversen Matrix Ai –1 einer nicht-singulären Matrix Ai abtrennbar sind mit
    Figure 00210001
    und wobei Ai eine Matrix mit r Reihen mal r Spalten ist, die eine Teilmatrix Bi umfasst mit r Reihen mal (r – w) Spalten, angehängt an eine Teilmatrix Hi mit r Reihen mal w Spalten, wobei die Teilmatrix Hi aus der Matrix H ausgeschnitten ist und mit einer i-ten Spalte der Matrix H beginnt, so dass gilt: Ai =[Hi|Bi] und wobei Hi mit dem Rahmen der Fehlermustererzeugungsschaltung (2-1 ... 2-p) in einer Eins-zu-Eins-Entsprechung assoziiert ist.
  8. Bytefehlerermittlungs- und -korrekturvorrichtung nach Anspruch 7, wobei für einen linearen Code, der einen Ein-Byte-Fehler, wobei 1 Byte aus b bits besteht, korrigieren und einen Fehler, der größer ist als b bits, ermitteln kann, zudem bereitgestellt wird eine Schaltung zum Ausgeben von "1 ", ist das Syndrom nicht Null und sind alle bits der Fehlervektoren e Null, so dass ein Fehler von mehr als b bits ermittelt wird, wodurch ein Ein-Byte-Fehler korrigiert und ein Fehler mit mehr als b bits ermittelt werden kann.
DE60220341T 2001-06-14 2002-06-12 Verfahren zum Erzeugen eines Burstfehlermusters sowie Burst- und Bytefehlerermittlungs- und-korrekturvorrichtung Expired - Lifetime DE60220341T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2001180455A JP3565798B2 (ja) 2001-06-14 2001-06-14 バースト誤りパターン生成方法及びバーストおよびバイト誤り検出・訂正装置
JP2001180455 2001-06-14

Publications (2)

Publication Number Publication Date
DE60220341D1 DE60220341D1 (de) 2007-07-12
DE60220341T2 true DE60220341T2 (de) 2007-09-13

Family

ID=19020871

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60220341T Expired - Lifetime DE60220341T2 (de) 2001-06-14 2002-06-12 Verfahren zum Erzeugen eines Burstfehlermusters sowie Burst- und Bytefehlerermittlungs- und-korrekturvorrichtung

Country Status (4)

Country Link
US (1) US6990625B2 (de)
EP (1) EP1267494B1 (de)
JP (1) JP3565798B2 (de)
DE (1) DE60220341T2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022118280A1 (de) 2022-07-21 2024-02-01 Infineon Technologies Ag Fehlerverarbeitung und Korrektur benachbarter 2-Bitfehler

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004234770A (ja) * 2003-01-31 2004-08-19 Renesas Technology Corp 半導体記憶装置とテスト方法
JP4217887B2 (ja) * 2003-07-22 2009-02-04 日本電気株式会社 受信装置
JP2006114170A (ja) * 2004-10-18 2006-04-27 Funai Electric Co Ltd 再生装置
JP4036338B2 (ja) 2005-03-04 2008-01-23 国立大学法人東京工業大学 誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置
US7421640B2 (en) * 2005-08-17 2008-09-02 International Business Machines Corporation Method and apparatus for providing error correction capability to longitudinal position data
US7506226B2 (en) * 2006-05-23 2009-03-17 Micron Technology, Inc. System and method for more efficiently using error correction codes to facilitate memory device testing
DE112006003922T5 (de) * 2006-06-28 2009-04-30 Intel Corporation, Santa Clara Modifikation bei einem Meggit-Decodierer für Fehlerkorrekturverfahren bei Bursts
US8108759B2 (en) * 2006-12-14 2012-01-31 Regents Of The University Of Minnesota Error detection and correction using error pattern correcting codes
US8065598B1 (en) * 2007-02-08 2011-11-22 Marvell International Ltd. Low latency programmable encoder with outer systematic code and low-density parity-check code
KR100849991B1 (ko) 2007-02-23 2008-08-01 주식회사 젤라인 Ldpc 부호생성기법을 이용한 부호화 시스템 및 방법과이로부터의 복호화 시스템 및 방법
US8418023B2 (en) 2007-05-01 2013-04-09 The Texas A&M University System Low density parity check decoder for irregular LDPC codes
US8041990B2 (en) * 2007-06-28 2011-10-18 International Business Machines Corporation System and method for error correction and detection in a memory system
US8041989B2 (en) * 2007-06-28 2011-10-18 International Business Machines Corporation System and method for providing a high fault tolerant memory system
US9141466B2 (en) * 2009-12-31 2015-09-22 Intel Corporation Correcting double-bit burst errors using a low density parity check technique
US8631271B2 (en) 2010-06-24 2014-01-14 International Business Machines Corporation Heterogeneous recovery in a redundant memory system
US8484529B2 (en) 2010-06-24 2013-07-09 International Business Machines Corporation Error correction and detection in a redundant memory system
US8898511B2 (en) 2010-06-24 2014-11-25 International Business Machines Corporation Homogeneous recovery in a redundant memory system
US8549378B2 (en) 2010-06-24 2013-10-01 International Business Machines Corporation RAIM system using decoding of virtual ECC
US8539321B2 (en) * 2010-11-10 2013-09-17 Infineon Technologies Ag Apparatus and method for correcting at least one bit error within a coded bit sequence
US9450613B2 (en) 2010-11-10 2016-09-20 Infineon Technologies Ag Apparatus and method for error correction and error detection
US8438443B2 (en) * 2011-01-12 2013-05-07 Himax Media Solutions, Inc. Pattern-dependent error correction method and system
US8522122B2 (en) 2011-01-29 2013-08-27 International Business Machines Corporation Correcting memory device and memory channel failures in the presence of known memory device failures
CN103733521A (zh) * 2011-08-24 2014-04-16 三菱电机株式会社 纠错解码装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3478313A (en) 1966-01-20 1969-11-11 Rca Corp System for automatic correction of burst-errors
US3868632A (en) * 1972-11-15 1975-02-25 Ibm Plural channel error correcting apparatus and methods
US3882457A (en) * 1974-01-30 1975-05-06 Motorola Inc Burst error correction code
DE3270802D1 (en) * 1982-11-26 1986-05-28 Ibm Synchronization in a communication network of interconnected rings
JP3435742B2 (ja) 1993-08-30 2003-08-11 日立金属株式会社 圧造工具およびその製造方法
JP2715900B2 (ja) * 1994-03-30 1998-02-18 日本電気株式会社 並列データ伝送装置
US5631909A (en) * 1995-05-31 1997-05-20 Quantum Corporation Method and apparatus for determining burst errors in an error pattern
DE19918507A1 (de) 1999-04-23 2000-10-26 Bosch Gmbh Robert Datenübertragungsvorrichtung und -verfahren

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022118280A1 (de) 2022-07-21 2024-02-01 Infineon Technologies Ag Fehlerverarbeitung und Korrektur benachbarter 2-Bitfehler

Also Published As

Publication number Publication date
EP1267494B1 (de) 2007-05-30
US20030023930A1 (en) 2003-01-30
EP1267494A2 (de) 2002-12-18
US6990625B2 (en) 2006-01-24
JP3565798B2 (ja) 2004-09-15
JP2002374175A (ja) 2002-12-26
DE60220341D1 (de) 2007-07-12
EP1267494A3 (de) 2003-12-17

Similar Documents

Publication Publication Date Title
DE60220341T2 (de) Verfahren zum Erzeugen eines Burstfehlermusters sowie Burst- und Bytefehlerermittlungs- und-korrekturvorrichtung
DE10133595B4 (de) Pufferschaltung, Speicherzugriffsverfahren und Reed-Solomon-Decoder
DE69223694T2 (de) Kodierungs- und Dekodierungssystem zur Fehlerkorrektur
DE2916710C2 (de)
DE2106314C3 (de) Anordnung zur Fehlererkennung und -korrektur in einem aus b Bits bestehenden Byte eines K Datenbytes enthaltenden Datenblocks
DE3231956A1 (de) Anordnung zum uebertragen von binaerdaten ueber eine vielzahl von kanaelen mit hilfe eines faltungscodes
DE2625973A1 (de) Verfahren und anordnung zur redundanzvermindernden transformation von bildern
DE2060643B2 (de) Schaltungsanordnung zur Korrektur von Einzelfehlern
DE2262070A1 (de) Mit schieberegistern arbeitendes fehlerkorrektursystem
DE102014215252B9 (de) Wirksame fehlerkorrektur von mehrbitfehlern
DE3006958A1 (de) Digitalsignal-uebertragungssystem
DE102005022107B9 (de) Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge
DE69424923T2 (de) Verfahren und Anordnung zur Bearbeitung eines dekodierten Bildsignals mit Verzerrung
DE102016102590B4 (de) Datenverarbeitungseinrichtungen und verfahren zum rekonstruieren eines puf-werts
DE2217935A1 (de) Anordnung und Verfahren zur Korrektur von Doppelfehlern
DE102020110787B3 (de) Schaltung und verfahren zum kodieren oder dekodieren eines datenworts
DE2053836B2 (de) Anordnung zur Korrektur von Fehlerbündeln in binär codierten Datengruppen
DE102013219088B4 (de) Schaltungsanordnung und Verfahren zur Realisierung von Prüfbitkompaktierung für Cross-Parity-Codes
DE3545106C2 (de)
DE102013020713A1 (de) Techniken zum Codieren und Decodieren unter Verwendung eines kombinatorischen Zahlensystems
DE102015111729B4 (de) Verfahren und decoder zum bestimmen eines fehlervektors für ein datenwort gemäss einem reed-muller-code
EP1430614B1 (de) Verfahren und vorrichtung zur bestimmung von initialisierungszuständen bei pseudo-noise-folgen
DE3104762C2 (de)
DE3702697A1 (de) Paritaetserzeugungsschaltung
DE102022111624B4 (de) Fehlerkorrektur mit schneller Syndromberechnung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition