DE102015121646B4 - Fehlerkorrektur - Google Patents

Fehlerkorrektur Download PDF

Info

Publication number
DE102015121646B4
DE102015121646B4 DE102015121646.9A DE102015121646A DE102015121646B4 DE 102015121646 B4 DE102015121646 B4 DE 102015121646B4 DE 102015121646 A DE102015121646 A DE 102015121646A DE 102015121646 B4 DE102015121646 B4 DE 102015121646B4
Authority
DE
Germany
Prior art keywords
error
bit
syndrome
binary
vector
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.)
Active
Application number
DE102015121646.9A
Other languages
English (en)
Other versions
DE102015121646A1 (de
Inventor
Thomas Kern
Michael Goessel
Christian Badack
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE102015121646.9A priority Critical patent/DE102015121646B4/de
Publication of DE102015121646A1 publication Critical patent/DE102015121646A1/de
Application granted granted Critical
Publication of DE102015121646B4 publication Critical patent/DE102015121646B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1545Determination of error locations, e.g. Chien search or other methods or arrangements for the determination of the roots of the error locator polynomial
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1575Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Abstract

Verfahren zur Korrektur eines Fehlers in einem Fehlermuster,- bei dem die Korrektur des Fehlers unter Verwendung eines modifizierten Fehlersyndroms durchgeführt wird,- wobei das modifizierte Fehlersyndrom unter Verwendung des Fehlermusters bestimmt ist,- wobei die Korrektur mittels eines Fehlercodes mit einem Codeabstand 2(t + 1) für K Fehlermuster aus jeweils M Bits durchgeführt wird und bei dem K · M = t + 1, t ≥ 2, K ≥ 1 und M ≥ 2 gelten.

Description

  • Es ist bekannt, dass in elektronischen Schaltungen und in Speichern permanente bzw. transiente Fehler auftreten können. Derartige Fehler können zu Bitfehlern in binären Wörtern führen. Ein binäres Wort umfasst hierbei mehrere Bits, z.B. 8 Bits, 16 Bits, oder allgemein eine Vielzahl von Bits.
  • Aus [C. Badack, T. Kern, M. Gössel: Modified DEC BCH codes for parallel correction of 3-bit errors comprising a pair of adjacent errors, IEEE 20th International On-Line Testing Symposium (IOLTS), 2014, Seiten 116 bis 121] ist ein Verfahren zur Korrektur eines Fehlermusters bekannt.
  • Die Aufgabe der Erfindung besteht darin, eine Möglichkeit für eine effiziente Fehlererkennung und/oder Fehlerkorrektur bereitzustellen.
  • Diese Aufgabe wird gemäß den Merkmalen der unabhängigen Ansprüche gelöst. Bevorzugte Ausführungsformen sind insbesondere den abhängigen Ansprüchen entnehmbar.
  • Zur Lösung der Aufgabe wird ein Verfahren vorgeschlagen zur Korrektur eines Fehlers in einem Fehlermuster,
    • - bei dem die Korrektur des Fehlers unter Verwendung eines modifizierten Fehlersyndroms durchgeführt wird,
    • - wobei das modifizierte Fehlersyndrom unter Verwendung des Fehlermusters bestimmt ist,
    • - wobei die Korrektur mittels eines Fehlercodes mit einem Codeabstand 2(t + 1) für K Fehlermuster aus jeweils M Bits durchgeführt wird, wobei K · M = t + 1, t ≥ 2, K ≥ 1 und M ≥ 2 gelten.
  • Die Korrektur des Fehlers kann dabei eine Korrektur mindestens eines fehlerhaften Bits, mindestens einer fehlerhaften Position oder mindestens eines fehlerhaften Werts in dem Fehlermuster umfassen.
  • Das modifizierte Fehlersyndrom kann unter Verwendung eines unmodifizierten Fehlersyndroms (eines Fehlercodes) bestimmt sein.
  • Insbesondere kann das modifizierte Fehlersyndrom als ein Fehlersyndrom eines K-Bitfehler korrigierenden Codes zur Fehlerkorrektur jeweils eines Bits der K Fehlermuster bestimmt sein.
  • Weiterhin kann das modifizierte Fehlersyndrom so gebildet sein, dass es ein Fehlersyndrom eines K-Bitfehler korrigierenden Codes zur Fehlerkorrektur jeweils eines ersten Bits der K Fehlermuster ist.
  • Es ist eine Weiterbildung, dass das modifizierte Fehlersyndrom und ein unmodifiziertes Fehlersyndrom Teilsyndrome aufweisen und ein Teilsyndrom des modifizierten Fehlersyndroms aus einem entsprechenden Teilsyndrom des unmodifizierten Fehlersyndroms unter Verwendung des Fehlermusters bestimmt ist.
  • Es ist eine Weiterbildung, dass ein Teilsyndrom des modifizierten Fehlersyndroms aus einem entsprechenden Teilsyndrom des unmodifizierten Fehlersyndroms durch Multiplikation mit einer Konstanten bestimmt ist.
  • Insbesondere kann die Multiplikation mit der Konstanten in einem entsprechenden Galoisfeld durchgeführt werden.
  • Es ist eine Weiterbildung, dass das Fehlermuster benachbarte Bits aufweist.
  • Es ist eine Weiterbildung, dass das Fehlermuster mindestens zwei Bits oder mindestens zwei Bitpositionen aufweist.
  • Es ist eine Weiterbildung, dass das Fehlermuster eine Anzahl von M Bits aufweist, wobei jedes weitere Bit des Fehlermusters durch einen Abstand von einem ersten Bit des Fehlermusters bestimmt ist.
  • Es ist eine Weiterbildung, dass dann, wenn mindestens ein Bit des Fehlermusters fehlerhaft ist, ein erstes Bit des Fehlermusters aus dem modifizierten Fehlersyndrom bestimmt ist.
  • Es ist eine Weiterbildung, dass die Korrektur basierend auf einer Anzahl der Fehlermuster durchgeführt wird.
  • Es ist eine Weiterbildung, dass eine Anzahl von K zu korrigierende erste Bits der K gleichen Fehlermuster unter Verwendung des modifizierten Fehlersyndroms bestimmt sind.
  • Es ist eine Weiterbildung, dass die K Fehlermuster jeweils M Bits umfassen, die den Wert 1 aufweisen.
  • Es ist eine Weiterbildung, dass
    • - der Fehlercode mit dem Codeabstand 2(t + 1) ein t-Bitfehler korrigierender BCH-Code über einem Galoisfeld GF(2m) mit einbezogener Gesamtparität und einer H-Matrix H = (    H 1    H 3     H 2 t 1    P )
      Figure DE102015121646B4_0001
      ist,
    • - Teilsyndrome s 1 m o d , s 3 m o d , , s 2 K 1 m o d
      Figure DE102015121646B4_0002
      des modifizierten Fehlersyndroms aus den unmodifizierten Teilsyndromen s1, s3,..., s2K-1 des Fehlersyndroms des BCH-Codes gemäß s 1 m o d = s 1 β 1 1 s 3 m o d = s 3 β 3 1 s 2 K 1 m o d = s 2 K 1 β 2 K 1 1 ,
      Figure DE102015121646B4_0003
      bestimmt sind, wobei
      • - si ein Teilsyndrom des Fehlersyndroms,
      • - s i m o d
        Figure DE102015121646B4_0004
        ein Teilsyndrom des modifizierten Fehlersyndroms,
      • - βi eine Konstante und
      • - i = 1,..., (2K - 1) eine Laufvariable
      bezeichnen.
  • Hierbei sei angemerkt, dass vorzugsweise 1 ≤ K < t gilt, wobei die Konstanten β1, β3,..., β2K-1 durch jeweils m Komponenten einer komponentenweisen XOR-Summe von M-Spalten der H-Matrix bestimmt sind, die einem Fehlermuster entsprechen. Weiterhin gelten insbesondere: t ≥ 2, m ≥ 3 und K · M = t + 1. Vorzugsweise ist für i = 1, 3, 5, ... , 2K - 1 die Konstante βi gleich der komponentenweise XOR-Summe der M-Spalten der Matrix Hi, die den Komponenten der normierten Fehlervektoren des Fehlermusters entsprechen, die gleich 1 sind.
  • Es ist eine Weiterbildung, dass zusätzlich eine Korrektur von beliebigen τ-Bitfehlern mit 1 ≤ τ ≤ t erfolgt, wobei im Falle eines τ-Bitfehlers mit 1 ≤ τ ≤ t die zu korrigierenden τ Bitpositionen durch die Teilsyndrome s1, s3, ... , s2t-1 bestimmt sind.
  • Es ist eine Weiterbildung, dass gilt: H 1 = ( α i 1 , α i 1 + d , , α i 1 + ( n 1 ) d ) H 3 = ( α 3 i 1 , α 3 ( i 1 + d ) , , α 3 ( i 1 + ( n 1 ) d ) ) H 2 i 1 = ( α ( 2 t 1 ) i 1 , α ( 2 t 1 ) ( i 1 + d ) , , α ( 2 t 1 ) ( i 1 + ( n 1 ) d ) ) P = ( 1,1, ,1 ) n
    Figure DE102015121646B4_0005
    • - wobei die Operationen in den Exponenten der Elemente der H-Matrix modulo 2m - 1 auszuführen sind,
    • - wobei a ein erzeugendes Element des Galoisfelds GF(2m) ist und
    • - wobei die Elemente αj der H-Matrix Elemente des Galoisfelds GF(2m) in ihrer Vektordarstellung als m-dimensionale binäre Spaltenvektoren sind.
  • Es ist eine Weiterbildung, dass gilt: i 1 = 0 d = 0 H 1 = ( α 0 , α 1 , , α n 1 ) H 3 = ( α 0 , α 3 , , α ( n 1 ) 3 ) H 2 t 1 = ( α 0 , α 2 t r , , α ( n 1 ) ( 2 t 1 ) ) .
    Figure DE102015121646B4_0006
  • Es ist eine Weiterbildung, dass die Konstanten β1, β3, ..., β2t-1 so bestimmt sind, dass für einen Fehler, der K gleiche Fehlermuster Fm mit dem normierten Fehlervektor e F m n o r m
    Figure DE102015121646B4_0007
    aufweist, gilt:               β 1 α i 1 = H 1 [ e F m n o r m ] T             β 3 α 3 i 1 = H 3 [ e F m n o r m ] T                        β 2 t 1 α ( 2 t 1 ) i 1 = H 2 t 1 [ e F m n o r m ] T .
    Figure DE102015121646B4_0008
  • Hierbei sei angemerkt, dass [ e F m n o r m ] T
    Figure DE102015121646B4_0009
    ein transponierter n-dimensionaler Spaltenvektor des n-dimensionalen Zeilenvektors e F m n o r m
    Figure DE102015121646B4_0010
    ist. Insbesondere gilt für die obige Beziehung auch K ≥ 1.
  • Es ist eine Weiterbildung, dass die Konstanten β1, β3, ..., β2t-1 so bestimmt sind, dass für einen Fehler, der K gleiche Fehlermuster Fm mit dem normierten Fehlervektor e F m n o r m
    Figure DE102015121646B4_0011
    aufweist, gilt:        β 1 = H 1 [ e F m n o r m ] T        β 3 = H 3 [ e F m n o r m ] T           β 2 t 1 = H 2 t 1 [ e F m n o r m ] T .
    Figure DE102015121646B4_0012
  • Es ist eine Weiterbildung, dass für das Fehlermuster Fm = [M, D1,... ,DM-1] gilt:        H 1 e F m n o r m = α i 1 ( 1 + α ( D 1 + D 2 ) d + + α ( D 1 + D 2 + + D M 1 ) d )        H 3 e F m n o r m = α 3 i 1 ( 1 + α 3 ( D 1 + D 2 ) d + + α 3 ( D 1 + D 2 + + D M 1 ) d )                         H 2 t 1 e F m n o r m = α ( 2 t 1 ) i 1 ( 1 + α ( 2 t 1 ) D 1 d ( D 1 + D 2 ) d + + + α ( 2 t 1 ) ( D 1 + D 2 + + D M 1 ) d ) .
    Figure DE102015121646B4_0013
  • Es ist eine Weiterbildung, dass für das Fehlermuster Fm = [M, D1,... ,DM-1] gilt:        H 1 e F m n o r m = 1 + α D 1 + α ( D 1 + D 2 ) + + α ( D 1 + D 2 + + D M 1 )        H 3 e F m n o r m = 1 + α 3 D 1 + α 3 ( D 1 + D 2 ) + + α 3 ( D 1 + D 2 + + D M 1 )                        H 2 t 1 e F m n o r m = 1 + α ( 2 t 1 ) D 1 + α ( 2 t 1 ) ( D 1 + D 2 ) + + α ( 2 t 1 ) ( D 1 + D 2 + + D M 1 ) .
    Figure DE102015121646B4_0014
  • Es ist eine Weiterbildung, dass die Korrektur eines Fehlers eine Korrektur eines Fehlervektors umfasst, wobei der Fehlervektor mindestens ein Fehlermuster umfasst.
  • Es ist eine Weiterbildung, dass das erste Bit des Fehlermusters nur vorgegebene Bitpositionen des Fehlervektors annehmen kann.
  • Es ist eine Weiterbildung, dass das Fehlermuster aus zwei Bits besteht und der Fehlervektor eines 4-Bitfehlers aus zwei 2-Bitfehlern besteht.
  • Das Fehlermuster kann insbesondere zwei benachbarte Bits umfassen; beispielsweise kann das Fehlermuster aus zwei Bits mit einem festen Abstand bestehen. Auch eine Permutation der Bits oder Positionen (der Bits) ist möglich.
  • Es ist eine Weiterbildung, dass das Fehlermuster aus zwei Bits besteht und der Fehlervektor eines 6-Bitfehlers aus drei 2-Bitfehlern besteht.
  • Es ist eine Weiterbildung, dass das Fehlermuster aus drei Bits besteht und der Fehlervektor eines 6-Bitfehlers aus zwei 3-Bitfehlern besteht.
  • Es ist eine Weiterbildung, dass das Verfahren wenigstens teilweise durch eine Schaltungsanordnung in Hardware und/oder wenigstens teilweise mittels Software implementiert ist.
  • Es ist eine Weiterbildung, dass ein einer Anzahl der Fehler entsprechendes Lokatorpolynom iterativ nach dem Berlekamp-Massey-Algorithmus bestimmt wird.
  • Insbesondere ist es eine Option, dass unter Verwendung von zusätzlichen Prüfbits (t + 1)-Bitfehler mit einem Fehlervektor, der K gleiche Fehlermuster aus M Bits aufweist, von (t + 1)-Bitfehlern mit einem Fehlervektor, der nicht K gleiche Fehlermuster aus M-Bits, die gleich 1 sind, aufweist, unterschieden werden.
  • Auch wird zur Lösung der oben genannten Aufgabe eine Vorrichtung zur Korrektur eines Fehlers vorgeschlagen, wobei die Vorrichtung eine Verarbeitungseinheit aufweist, die derart eingerichtet ist, dass
    • - die Korrektur des Fehlers mittels modifizierter Fehlersyndrome durchführbar ist,
    • - wobei der Fehler auf mindestens einem Fehlermuster basiert,
    • - wobei die Korrektur mittels eines Fehlercodes mit einem Codeabstand 2(t + 1) für K Fehlermuster aus jeweils M Bits durchgeführt wird, wobei K · M = t + 1, t ≥ 2, K ≥ 1 und M ≥ 2 gelten.
  • Die hier genannte Verarbeitungseinheit kann insbesondere als eine Prozessoreinheit und/oder eine zumindest teilweise festverdrahtete oder logische Schaltungsanordnung ausgeführt sein, die beispielsweise derart eingerichtet ist, dass das Verfahren wie hierin beschrieben durchführbar ist. Besagte Verarbeitungseinheit kann jede Art von Prozessor oder Rechner oder Computer mit entsprechend notwendiger Peripherie (Speicher, Ein-/Ausgabe-Schnittstellen, Ein-Ausgabe-Geräte, etc.) sein oder umfassen.
  • Die vorstehenden Erläuterungen betreffend das Verfahren gelten für die Vorrichtung entsprechend. Die Vorrichtung kann in einer Komponente oder verteilt in mehreren Komponenten ausgeführt sein.
  • Auch wird die oben genannte Aufgabe gelöst mittels eines Systems umfassend mindestens eine der hier beschriebenen Vorrichtungen.
  • Weiterhin wird zur Lösung der Aufgabe ein Computerprogrammprodukt angegeben, das direkt in einen Speicher eines digitalen Computers ladbar ist, umfassend Programmcodeteile, die dazu geeignet sind, Schritte des hier beschriebenen Verfahrens durchzuführen.
  • Auch wird zur Lösung der Aufgabe ein computerlesbares Speichermedium angegeben, umfassend von einem Computer ausführbare Anweisungen, die dazu geeignet sind, dass der Computer Schritte des hier beschriebenen Verfahrens durchführt.
  • Die oben beschriebenen Eigenschaften, Merkmale und Vorteile dieser Erfindung sowie die Art und Weise, wie diese erreicht werden, werden nachfolgend beschrieben im Zusammenhang mit einer schematischen Beschreibung von Ausführungsbeispielen, die im Zusammenhang mit den Zeichnungen näher erläutert werden. Dabei können zur Übersichtlichkeit gleiche oder gleichwirkende Elemente mit gleichen Bezugszeichen versehen sein.
  • Es zeigen:
    • 1 eine Tabelle, die unterschiedliche Darstellungsformen von Elementen eines Galoisfelds GF(2m) mit m = 5 veranschaulicht;
    • 2 eine beispielhafte Schaltungsanordnung, die unter Verwendung eines BCH-Codes zur Korrektur beliebiger 3-Bitfehler zusätzlich eine Korrektur spezieller 4-Bitfehler erlaubt, die sich aus zwei benachbarten 2-Bitfehlern zusammensetzen;
    • 3 eine beispielhafte Schaltungsanordnung, die unter Verwendung eines BCH-Codes zur Korrektur beliebiger 3-Bitfehler zusätzlich eine Korrektur spezieller 4-Bitfehler erlaubt, die sich aus zwei benachbarten 2-Bitfehlern in ungeraden Bitpositionen zusammensetzen;
    • 4 eine beispielhafte Schaltungsanordnung, die unter Verwendung eines BCH-Codes zur Korrektur beliebiger 5-Bitfehler zusätzlich eine Korrektur spezieller 6-Bitfehler erlaubt, die sich aus drei benachbarten 2-Bitfehlern zusammensetzen;
    • 5 eine beispielhafte Schaltungsanordnung, die unter Verwendung eines BCH-Codes zur Korrektur beliebiger 5-Bitfehler zusätzlich eine Korrektur spezieller 6-Bitfehler erlaubt, die sich aus zwei benachbarten 3-Bitfehlern zusammensetzen;
    • 6 eine beispielhafte Schaltungsanordnung, die unter Verwendung eines BCH-Codes zur Korrektur beliebiger 2-Bitfehler und beliebiger 1-Bitfehler zusätzlich eine Korrektur benachbarter 3-Bitfehler erlaubt;
    • 7 eine beispielhafte Schaltungsanordnung, die unter Verwendung eines BCH-Codes zur Korrektur beliebiger 3-Bitfehler und 2-Bitfehler zusätzlich eine Korrektur spezieller 4-Bitfehler erlaubt, die sich aus zwei benachbarten 2-Bitfehlern zusammensetzen;
    • 8 eine mögliche Implementierung einer Teilschaltung zur Erkennung von 1-Bit-, 2-Bit-, 3-Bit- und 4-Bitfehlern.
  • Es ist möglich, Bitfehler in Binärwörtern durch fehlererkennende und/oder fehlerkorrigierenden Codes zu erkennen und/oder zu korrigieren. Derartige Codes werden nachfolgend auch als Fehlercodes bezeichnet. Ein Fehlercode kann eine bestimmte Anzahl von Fehlern erkennen und/oder eine bestimmte (ggf. andere) Anzahl von Fehlern korrigieren. Häufig erfolgt die Fehlererkennung und/oder Fehlerkorrektur mittels bekannter Blockcodes, bei denen jeweils Blöcke von n Bits betrachtet werden. Die Zahl n wird auch als die Anzahl der Bits eines Blocks oder als Länge des Codes bezeichnet.
  • Beispielsweise können lineare Blockcodes verwendet werden, die durch eine Generatormatrix G und durch eine H-Matrix H beschrieben werden.
  • Ist die Länge des Codes gleich n und werden k Datenbits (auch bezeichnet als Informationsbits) u = u 0 , , u k 1
    Figure DE102015121646B4_0015
    als ein Codewort v = v 0 , , v n 1
    Figure DE102015121646B4_0016
    codiert, dann gilt für den linearen Code v = v 0 , , v n 1 = ( u 0 , , u k 1 ) G = u G
    Figure DE102015121646B4_0017
  • Es ist möglich, dass Datenbits eines Codeworts Bits der Leseadresse oder Bits der Schreibadresse oder aus Bits der Leseadresse oder aus Bits der Schreibadresse abgeleitete Bits sind oder enthalten. Dies gilt insbesondere in dem Fall, dass ein Teil der Datenbits in einem adressierbaren Speicher gespeichert ist. Eine andere Option besteht darin, dass Datenbits auch mindestens ein Invertierungsbit umfassen können, das angibt, ob ein Bit oder eine Gruppe von Bits invertiert gespeichert werden/wurden.
  • Die Generatormatrix G ist eine (k, n) -Matrix und die entsprechende H-Matrix H ist eine (m, n)-Matrix mit m = n - k. Die Bitkombination v = v0, ..., vn-1 ist genau dann ein Codewort des Codes C, wenn H v T = H ( v 0 , , v n 1 ) T = 0
    Figure DE102015121646B4_0018
    gilt, wobei vT den transponierten Spaltenvektor des Zeilenvektors v bezeichnet. Ist v ' = v 0 ' , , v n 1 ' = v + e = v 0 + e 0 , , v n 1 + e n 1
    Figure DE102015121646B4_0019
    ein durch Bitfehler aus v entstandenes Wort, dann gilt für das Fehlersyndrom sT s T = H ( v ' ) T = H ( v + e ) T = H e T .
    Figure DE102015121646B4_0020
  • Dabei heißt e = e 0 , , e n 1
    Figure DE102015121646B4_0021
  • Fehlervektor, und das i-te Bit v i '
    Figure DE102015121646B4_0022
    von v' ist
    • - fehlerhaft, wenn ei = 1 ist und
    • - korrekt, wenn ei = 0 ist.
  • Das Fehlersyndrom sT ist ein (n - k)-dimensionaler transponierter Spaltenvektor des Zeilenvektors s, wobei hier beispielhaft sT bzw. s das unmodifizierte Fehlersyndrom bezeichnen.
  • Ein Hamming-Abstand d(v1,v2) zwischen zwei Wörtern v 1 = v 0 1 , , v n 1 1
    Figure DE102015121646B4_0023
    und v 2 = v 0 2 , , v n 1 2
    Figure DE102015121646B4_0024
    ist durch die Anzahl ihrer Komponenten bestimmt, in denen sie sich unterscheiden. Somit gilt: d ( v 1 , v 2 ) = i = 0 n 1 v i 1 v i 2 ,
    Figure DE102015121646B4_0025
    wobei ⊕ die Addition modulo 2 (auch: Exklusiv-Oder-Verknüpfung, XOR-Verknüpfung) bezeichnet.
  • Der Codeabstand dC eines Codes C ist der minimale Abstand zwischen zwei Codewörtern des Codes C, so dass d C = m i n [ d ( v i , v j )  und v i , v j C , v i v j ]
    Figure DE102015121646B4_0026
    gilt.
  • Bei der Fehlerkorrektur eines fehlerhaften Wortes v' kann das Wort v' in das Codewort vi korrigiert werden, das von dem Wort v' den kleinsten Hamming-Abstand aufweist.
  • Beispielsweise ist für einen bekannten 3-Bitfehler korrigierenden und 4-Bitfehler erkennenden BCH-Code mit einbezogener Parität der Codeabstand dC = 8. Zwei beliebige Codewörter dieses Codes unterscheiden sich dann mindestens in den Werten von 8 Komponenten. Sind v1 und v2 Codewörter dieses Codes, für die d(v1, v2) = 8 gilt, und wird das Codewort v1 in einem Bit in das fehlerhafte Wort v1' gestört, dann gilt d (v1, v1') = 1 und d(v2, v1') ≥ 7.
  • In diesem Fall wird das fehlerhafte Wort v1' in das Codewort v1 korrigiert, d.h. in das Codewort, das von dem fehlerhaften Wort v1' den kleinsten Abstand hat.
  • Wird das Codewort v1 in zwei Bits gestört, so dass sich das fehlerhafte Wort v1' ergibt, gilt d(v1, v1') = 2 und d (v2, v1') ≥ 6. In diesem Fall wird das fehlerhafte Wort v1' in das Codewort v1 korrigiert.
  • Werden drei Bits des Codeworts v1 gestört, so dass sich das fehlerhafte Wort v1' ergibt, gilt d(v1, v1') = 3 und d (v2, v1') ≥ 5. In diesem Fall wird das fehlerhafte Wort v1' in das Codewort v1 korrigiert.
  • Werden vier Bits des Codeworts v1 gestört, so dass sich das fehlerhafte Wort v1' ergibt, d(v1, v1') = 4 und d(v2, v1') ≥ 4. In diesem Fall ist es möglich, dass sich das fehlerhafte Codewort v1' sowohl von dem Codewort v1 als auch von dem Codewort v2 jeweils in 4 Bits unterscheidet. Somit kann das in 4 Bits fehlerhafte Wort v1' nicht mehr eindeutig in v1 oder v2 korrigiert werden.
  • Nach diesem Beispiel kann somit ein 4-Bitfehler erkannt und es kann ein 1-Bitfehler, ein 2-Bitfehler oder ein 3-Bitfehler korrigiert werden.
  • Allgemein gilt somit: Im Falle eines t-Bitfehler korrigierenden und (t+1)-Bitfehler erkennenden Codes wird ein Wort v', das durch τ Bitfehler mit 1 ≤ τ ≤ t aus einem Codewort v entstanden ist, in das Codewort v korrigiert, wobei dC(v,v') = τ ≤ t ist. Ist ein Wort durch einen (t + 1)-Bitfehler aus einem Codewort entstanden, dann wird der (t + 1)-Bitfehler bislang nicht korrigiert und als (t + 1)-Bitfehler erkannt.
  • Fehlermuster
  • Der hier vorgeschlagene Ansatz ermöglicht es, ein fehlerhaftes Wort v', das durch einen (t + 1)-Bitfehler aus dem Codewort v entstanden ist, unter Verwendung eines t-Bitfehler korrigierenden und (t + 1)-Bit erkennenden Codes mit einem Codeabstand dC = 2(t + 1) eindeutig in das Codewort v zu korrigieren, wenn der (t + 1)-Bitfehler ein bestimmtes Fehlermuster aufweist. Ein solches Fehlermuster kann beispielsweise in Speichern auftreten, deren Speicherzellen mehr als zwei Werte speichern können.
  • Nachfolgend werden beispielhaft Fehlermuster beschrieben, die in Kombination mit der hier erläuterten Lösung verwendet werden können.
  • Ein Fehlermuster Fm wird beispielhaft beschrieben durch
    • - eine Anzahl M fehlerhafter Bits und
    • - Abstände D1, ... , DM-1 aufeinanderfolgender M - 1 fehlerhafter Bitpositionen.
  • Sind M fehlerhafte Bits in dem Fehlermuster vorhanden, wird das Fehlermuster durch ein Tupel [ M ; D 1 , , D M 1 ]
    Figure DE102015121646B4_0027
    beschrieben.
  • Besteht ein Fehlermuster F m 1
    Figure DE102015121646B4_0028
    aus M = 2 aufeinanderfolgenden Bits, wird es durch F m 1 = [ 2,1 ]
    Figure DE102015121646B4_0029
    beschrieben. Das zweite der fehlerhaften Bits hat dann den Abstand 1 von dem ersten fehlerhaften Bit.
  • Besteht ein Fehlermuster F m 2
    Figure DE102015121646B4_0030
    aus M = 3 aufeinanderfolgenden Bits, wird es durch F m 2 = [ 3 ; 1,1 ]
    Figure DE102015121646B4_0031
    beschrieben. Das zweite der fehlerhaften Bits hat dann den Abstand 1 von dem ersten fehlerhaften Bit und das dritte der fehlerhaften Bits hat den Abstand 1 von dem zweiten fehlerhaften Bit.
  • Das Fehlermuster F m 3 = [ 4 ; 2,1,2 ]
    Figure DE102015121646B4_0032
    beschreibt ein Fehlermuster mit M = 4 fehlerhaften Bits. Der Abstand des zweiten fehlerhaften Bits von dem ersten fehlerhaften Bit ist 2, der Abstand des dritten fehlerhaften Bits von dem zweiten fehlerhaften Bit ist 1 und der Abstand des vierten fehlerhaften Bits von dem dritten fehlerhaften Bit ist 2.
  • Den Fehlermustern F m i
    Figure DE102015121646B4_0033
    (mit i = 1,2,3) kann jeweils die folgende Binärfolge fehlerhafter Bits zugeordnet werden:
    • - F m 1 = [ 2 ; 1 ] :
      Figure DE102015121646B4_0034
      Binärfolge 1,1,
    • - F m 2 = [ 3 ; 1,1 ] :
      Figure DE102015121646B4_0035
      Binärfolge 1,1,1 und
    • - F m 3 = [ 4 ; 2,1,2 ] :
      Figure DE102015121646B4_0036
      Binärfolge 1,0,1,1,0,1.
  • Es ist möglich, die Bitpositionen eines Fehlermusters in unterschiedlicher Reihenfolge zu betrachten. Die Abstände aufeinander folgender fehlerhafter Bits D1,..., DM-1 können beispielsweise auch negativ sein. So beschreiben beispielsweise [2,1] und [2, -1] die gleichen Tupel. In der ersten Beschreibung [2,1] folgt dem ersten fehlerhaften Bit nach rechts im Abstand 1 das zweite fehlerhafte Bit. Das erste fehlerhafte Bit des Paars fehlerhafter Bits ist das linke Bit. In der zweiten Beschreibung [2, -1] ist das erste fehlerhafte Bit das rechte Bit und das zweite fehlerhafte Bit folgt dem ersten fehlerhaften Bit nach links im Abstand -1.
  • Im Folgenden werden die verwendeten Fehlermuster beispielhaft mit positiven Abständen D1,..., DM-1 verwendet.
  • Das erste Bit eines Fehlermusters kann in einem Fehlervektor an unterschiedlichen Bitpositionen positioniert sein.
  • Ein Fehlervektor e 1 = e 0 1 , , e 9 1 = ( 0,0,1,1,0,0,0,0,0,0 )
    Figure DE102015121646B4_0037
    der Länge n = 10 enthält das Fehlermuster F m 1 = [ 2 ; 1 ] .
    Figure DE102015121646B4_0038
    Das erste Bit des Fehlermusters ist das Bit e 2 1
    Figure DE102015121646B4_0039
    des Fehlervektors, da e 2 1 = e 3 1 = 1  und  e 0 1 = e 1 1 = e 4 1 = = e 9 1 = 0
    Figure DE102015121646B4_0040
    gilt.
  • Entsprechend enthalten die Fehlervektoren e 2 = e 0 2 , , e 9 2 = ( 0,0,0,0,1,1,0,0,0,0 )
    Figure DE102015121646B4_0041
    und e 3 = e 0 3 , , e 9 3 = ( 0,0,0,0,0,0,0,0,1,1 )
    Figure DE102015121646B4_0042
    jeweils das Fehlermuster [2; 1]. e 4 2
    Figure DE102015121646B4_0043
    ist das erste Bit des Fehlermusters [2; 1] in dem Fehlervektor e2; entsprechend ist e 8 3
    Figure DE102015121646B4_0044
    das erste Bit des Fehlermusters [2; 1] in dem Fehlervektor e3.
  • Handelt es sich bei dem betrachteten Code um einen zyklischen Code der Länge n, können für ein Fehlermuster [ M ; D 1 , , D M 1 ]
    Figure DE102015121646B4_0045
    die Abstände D1,... , DM-1 zyklisch modulo n interpretiert werden.
  • Beispiel: Der zyklische Code hat eine Länge n = 7 und den Fehlervektor e 4 = ( e 0 4 , , e 6 4 ) .
    Figure DE102015121646B4_0046
  • Ist das erste Bit des Fehlermusters F m 2 = [ 3 ; 1,1 ]
    Figure DE102015121646B4_0047
    das Bit e 6 4 ,
    Figure DE102015121646B4_0048
    ergibt sich aufgrund der modulo 7-Interpretation der Fehlervektor zu e 4 = ( 1,1,0,0,0,0,1 ) .
    Figure DE102015121646B4_0049
  • Mit dem Abstand D1 = 1 ist dem zweiten Bit des Fehlermusters das Bit e 7 4
    Figure DE102015121646B4_0050
    zugeordnet. Entsprechend ist mit dem Abstand D2 = 1 dem dritten Bit des Fehlermusters das Bit e 8 4
    Figure DE102015121646B4_0051
    zugeordnet. Da die Indizes modulo 7 zu interpretieren sind, gelten: e 0 4 = e ( 7   m o d u l o   7 ) 4
    Figure DE102015121646B4_0052
    und e 1 4 = e ( 8   m o d u l o   7 ) 4
    Figure DE102015121646B4_0053
  • Ist das erste Bit eines Fehlermusters Fm in der ersten Bitposition eines Fehlervektors positioniert, wird der Fehlervektor e F m n o r m
    Figure DE102015121646B4_0054
    als normierter Fehlervektor des Fehlermusters Fm bezeichnet.
  • Beispielsweise sind für eine Länge von n = 12 die normierten Fehlervektoren der Fehlermuster F m 1 = [ 2 ; 1 ] ,   F m 2 = [ 3 ; 1,1 ]  und  F m 3 = [ 4 ; 2,1,2 ] :
    Figure DE102015121646B4_0055
    e [ 2 ; 1 ] n o r m = ( 1,1,0,0,0,0,0,0,0,0,0,0 ) ,
    Figure DE102015121646B4_0056
    e [ 3 ; 1,1 ] n o r m = ( 1,1,1,0,0,0,0,0,0,0,0,0 ) ,
    Figure DE102015121646B4_0057
    e [ 4 ; 2,1,2 ] n o r m = ( 1,0,1,1,0,1,0,0,0,0,0,0 ) .
    Figure DE102015121646B4_0058
  • Es ist möglich, dass ein Fehlermuster Fm in einem Fehlervektor mehrmals enthalten ist:
    • - Der Fehlervektor e 5 = e 0 5 , , e 9 5 = ( 0,1,1,0,0,0,1,1,0,0 )
      Figure DE102015121646B4_0059
      enthält das Fehlermuster F m 1 = [ 2 ; 1 ]
      Figure DE102015121646B4_0060
      zweimal, ein erstes Mal beginnend in der Bitposition e 1 5 = 1
      Figure DE102015121646B4_0061
      und ein zweites Mal beginnend in der Bitposition e 6 5 = 1.
      Figure DE102015121646B4_0062
    • - Der Fehlervektor e 6 = e 0 6 , , e 9 6 = ( 0,1,1,1,1,0,1,1,0,0 )
      Figure DE102015121646B4_0063
      enthält das Fehlermuster F m 1 = [ 2 ; 1 ]
      Figure DE102015121646B4_0064
      dreimal, ein erstes Mal beginnend in der Bitposition e 1 6 = 1,
      Figure DE102015121646B4_0065
      ein zweites Mal beginnend in der Bitposition e 3 6 = 1
      Figure DE102015121646B4_0066
      und ein drittes Mal beginnend in der Bitposition e 6 6 = 1.
      Figure DE102015121646B4_0067
    • - Der Fehlervektor e 7 = e 0 7 , , e 9 7 = ( 1,0,1,1,1,1,1,1,0,1 )
      Figure DE102015121646B4_0068
      enthält das Fehlermuster F m 3 = [ 4 ; 2,1,2 ]
      Figure DE102015121646B4_0069
      zweimal, ein erstes Mal beginnend in der Bitposition e 0 7 = 1,
      Figure DE102015121646B4_0070
      ein zweites Mal beginnend in der Bitposition e 4 7 = 1.
      Figure DE102015121646B4_0071
  • Enthält ein Fehlervektor ein Fehlermuster mehrfach, nimmt für eine Bitposition des Fehlervektors, für die eines der Fehlermuster den Wert 1 annimmt, kein weiteres Fehlermuster den Wert 1 an.
  • Damit gilt, dass die Anzahl der 1-Komponenten eines Fehlervektors e, der K-Mal ein Fehlermuster [M;D1,... ,DM-1] annimmt, gleich K · M ist. Durch den Fehlervektor e wird dann ein (K-M)-Bitfehler beschrieben.
  • So ist beispielsweise das Fehlermuster F m 1 = [ 2 ; 1 ]
    Figure DE102015121646B4_0072
    in dem Fehlervektor e5 zweimal (K = 2) enthalten, der Fehlervektor e5 weist K · M = 2 · 2 = 4 Einsen auf und beschreibt einen 4-Bitfehler .
  • Das Fehlermuster F m 1 = [ 2 ; 1 ]
    Figure DE102015121646B4_0073
    ist in dem Fehlervektor e6 dreimal (K = 3) enthalten, der Fehlervektor e6 weist K · M = 3 · 2 = 6 Einsen auf und beschreibt einen 6-Bitfehler.
  • Das Fehlermuster F m 3 = [ 4 ; 2,1,2 ]
    Figure DE102015121646B4_0074
    ist in dem Fehlervektor e7 zweimal (K = 2) enthalten, der Fehlervektor e7 weist K · M = 2 · 4 = 8 Einsen auf und beschreibt einen 8-Bitfehler.
  • BCH-Codes
  • Zur Fehlerkorrektur zufällig verteilter Mehrbitfehler können BCH-Codes verwendet werden. Dies ist beispielsweise in [Lin, S., Costello, D.: „Error Control Coding", Prentice Hall, 1983, vgl. z.B. Seiten 143 bis 160] beschrieben.
  • Ein BCH-Code ist ein linearer Code, der durch eine Paritätsprüfmatrix H und eine Generatormatrix G, die beispielsweise aus der Paritätsprüfmatrix ableitbar ist, beschrieben werden kann. Hat der Code die Länge N und weist er k Informationsbits auf, dann ist die Paritätsprüfmatrix H eine (L,N)-Matrix mit L Zeilen und N Spalten, wobei L = N - k ist. Die Generatormatrix G ist dann eine (k, N)-Matrix mit k Zeilen und N Spalten und der Code hat L Prüfbits.
  • Ein t-Bitfehler korrigierender unverkürzter BCH-Code kann durch die H-Matrix H = ( H 1 H 3 H 2 t 1 ) = ( h 0 , , h N 1 )
    Figure DE102015121646B4_0075
    beschrieben werden, wobei die H-Matrix in separierter Form dargestellt ist. Beispielsweise werden H1, H3, ..., H2t-1 als H 1 = ( α 0 , α 1 , , α i , , α N 1 ) = ( h 0 1 , , h i 1 , , h N 1 1 ) , H 3 = ( α 0 , α 3 , , α 3 i , , α 3 ( N 1 ) ) = ( h 0 3 , , h i 3 , , h N 1 3 ) , H 12 t = ( α 0 , α 2 t 1 , , α ( 2 t t ) i , , α ( 2 t 1 ) ( N 1 ) ) = ( h 0 2 t 1 , , h i 2 t 1 , , h N 1 2 t 1 )
    Figure DE102015121646B4_0076
    gewählt, wenn der Code nicht verkürzt ist. Dabei kann α ein primitives Element eines endlichen Körpers GF(2m) (auch bezeichnet mit GF(2q)) sein, der auch Galoisfeld genannt wird. In diesem Fall gilt: N = 2m - 1. Die Exponenten von α j , α 3 j , , α ( 2 t 1 ) j
    Figure DE102015121646B4_0077
    sind modulo 2m - 1 bestimmt. Ist α ein primitives Element des verwendeten Galoisfelds, kann der entsprechende BCH-Code auch als primitiver BCH-Code bezeichnet werden. H 1 , H 3 , , H 2 t 1
    Figure DE102015121646B4_0078
    sind allgemein jeweils (m,N)-Matrizen mit m Zeilen und N = 2m - 1 Spalten. Es ist möglich, dass einige der m Zeilen einer der Matrizen Hi linear abhängig sind. In einem solchen Fall können Zeilen der Matrix Hi weggelassen werden, bis alle Zeilen linear unabhängig sind. Die Anzahl der Zeilen beispielsweise der Matrix Hi kann somit auch kleiner als m sein.
  • Die Elemente ai des Galoisfelds GF(2m) sind hier in ihrer Vektordarstellung m-stellige binäre Spaltenvektoren.
  • Werden Q Spalten der H-Matrix des unverkürzten BCH-Codes gestrichen, so ergibt sich eine H-Matrix eines verkürzten BCH-Codes der Länge n = N - Q. Für den verkürzten Code gilt: n = N - Q < 2m - 1.
  • Optional kann die H-Matrix H um eine Zeile aus lauter Einsen ergänzt werden. Einer zusätzlichen Zeile aus Einsen in der H-Matrix entspricht die zusätzliche Berücksichtigung einer Gesamtparität. Bei Berücksichtigung der Gesamtparität kann die H-Matrix die Form H = ( H 1 H 3 H 2 t 1 P )
    Figure DE102015121646B4_0079
    haben, wobei P die Zeile aus Einsen darstellt.
  • Nachfolgend wird ein verkürzter BCH-Code der Länge n betrachtet, wobei n = N Q < 2 m 1
    Figure DE102015121646B4_0080
    gilt. Ein Codewort dieses BCH-Codes v = v0,..., vn-1 (auch bezeichnet als Codevektor) besteht aus n Komponenten v0, v1,... , vn-1. Dabei kann ein Codevektor als ein Zeilenvektor oder als ein Spaltenvektor beschrieben sein. Wird eine Matrix von rechts mit einem Vektor multipliziert, dann ist der Vektor als Spaltenvektor zu interpretieren und das Ergebnis ist ein Spaltenvektor. Wird eine Matrix von links mit einem Vektor multipliziert, dann ist der Vektor ein Zeilenvektor und das Resultat der Multiplikation ist ebenfalls ein Zeilenvektor. Es ist dann nicht erforderlich, die entsprechenden Vektoren explizit als Spaltenvektoren oder Zeilenvektoren hervorzuheben, da aus dem Kontext klar ist, ob es sich um einen Spaltenvektor oder einen Zeilenvektor handelt. Weiterhin sei angemerkt, dass ein Vektor w, der als Spaltenvektor dargestellt ist, in der Form wT notiert sein kann.
  • Wird ein Codewort v = v0, ..., vn-1 in ein Wort v ' = v 0 ' , , v n 1 '
    Figure DE102015121646B4_0081
    gestört, dann kann der Unterschied zwischen dem Codewort v und dem gestörten Wort v' durch einen Fehlervektor e mit e = e 0 , , e n 1 = v 0 v 0 ' , , v n 1 v n 1 ' = v + v '
    Figure DE102015121646B4_0082
    beschrieben werden.
  • Eine Komponente ei des Fehlervektors e ist gleich 1, wenn sich das Codewort vi und das gestörte Codewort v i '
    Figure DE102015121646B4_0083
    unterscheiden und wenn v i = v i ' 1 = v i ' ¯
    Figure DE102015121646B4_0084
    gilt. Eine Komponente ej des Fehlervektors e ist gleich 0, wenn das Codewort vj und das gestörte Codewort v j '
    Figure DE102015121646B4_0085
    gleich sind und wenn v j = v j '
    Figure DE102015121646B4_0086
    gilt.
  • Das Symbol „⊕“ bezeichnet die Exklusiv-Oder-Verknüpfung (auch bezeichnet als XOR-Verknüpfung).
  • Kann ein Fehler durch eine Fehlerkorrekturschaltung korrigiert werden, dann können die Korrekturwerte, die die Fehlerkorrekturschaltung ausgibt, gleich den Komponenten des Fehlervektors sein, und die Korrekturschaltung gibt in diesem Fall an einem i-ten Ausgang ihrer n Ausgänge den Korrekturwert ei aus. Der Korrekturwert ei kann dann mit der zu korrigierenden Komponente v j '
    Figure DE102015121646B4_0087
    zu v i c o r r = v i ' e i .
    Figure DE102015121646B4_0088
    XOR-verknüpft werden. Die Korrekturwerte ei können auch zu einem Korrekturvektor zusammengefasst werden.
  • Der Korrekturvektor ist gleich dem Fehlervektor, wenn der Fehler durch den Code korrigiert werden kann und die Komponenten des Korrekturvektors und des zu korrigierenden Vektors komponentenweise XOR-verknüpft werden.
  • Kann ein Fehler durch eine Fehlerkorrekturschaltung korrigiert werden, dann können die Korrekturwerte, die die Fehlerkorrekturschaltung ausgibt, auch gleich den invertierten Komponenten des Fehlervektors sein, und die Korrekturschaltung gibt in diesem Fall an dem i-ten Ausgang ihrer N Ausgänge den invertierten Korrekturwert e i aus. Der invertierte Korrekturwert e i kann dann mit der zu korrigierenden Komponente v i '
    Figure DE102015121646B4_0089
    zu v c o r r = v i ' e i ¯ ¯
    Figure DE102015121646B4_0090
  • XNOR-verknüpft werden. Es ist auch möglich, eine Teilmenge der Korrekturwerte zu invertieren.
  • Hierbei sei angemerkt, dass das XNOR-Gatter die Funktion (Exklusiv-Nicht-ODER) wahrnimmt; an dessen Ausgang liegt genau dann eine logische 1 an, wenn an beiden Eingängen 1 oder an beiden Eingängen 0 anliegt. Die XNOR-Verknüpfung wird auch als Äquivalenz bezeichnet.
  • Nachfolgend werden beispielhaft nicht-invertierte Korrekturwerte verwendet. Eine Anwendung der hier beschriebenen Lösungen auf invertierte Korrekturwerte ist entsprechend möglich.
  • Grundsätzlich ist es nicht notwendig, dass alle n Bits eines eventuell fehlerhaften n-stelligen Binärwortes v ' = v 0 ' , , v n 1 '
    Figure DE102015121646B4_0091
    korrigiert werden. Es ist zum Beispiel möglich, T Bits dieser n Bits zu korrigieren, wobei T ≤ n gilt. Erfolgt die Korrektur unter Verwendung eines t-Bitfehler korrigierenden Codes, gilt allgemein T > t. So ist es möglich, nur Datenbits des Binärwortes v unter Verwendung des t-Bitfehler korrigierenden Codes zu korrigieren. Es ist aber auch möglich, dass T = n gilt und alle Bits korrigiert werden. Beispielhaft wird der Fall betrachtet, dass t < T ≤ n gilt.
  • Ist der Vektor v ein Codevektor eines separierbaren Codes, bei dem Datenbits und Prüfbits in dem Codevektor v getrennt vorhanden sind, ist es möglich, nur die Datenbits oder nur einen Teil der Datenbits des Vektors v' zu korrigieren.
  • Ein Fehlersyndrom s = (s1, s3,... ,s2t-1, sp) eines gestörten Wortes v' ist für einen t-Bitfehler korrigierenden BCH-Code mit einbezogener Gesamtparität durch s = H v '
    Figure DE102015121646B4_0092
    bestimmt, wobei s 1 = H 1 v ' ,                                                              ( 2 )   s 3 = H 3 v ' ,                                                             ( 3 )                                                                              ( 4 ) s 2 t 1 = H 2 t 1 v ' ,                                                     ( 5 ) und                                                                        ( 6 ) s p = P v ' = ( 1, ,1 ) v ' = v 0 ' v 1 ' v n 1 '             ( 7 )
    Figure DE102015121646B4_0093
    gelten.
  • Das Fehlersyndrom eines Codewortes v ist gleich 0, so dass für ein Codewort v gilt: s = H v = 0.
    Figure DE102015121646B4_0094
  • Entsprechend gilt für ein Nicht-Codewort v' = v ⊕ e: s = H v ' = H = ( v e ) = ( H v ) ( H e ) = H e 0.
    Figure DE102015121646B4_0095
  • Das Fehlersyndrom s ist durch den Fehlervektor e bestimmt. Das Fehlersyndrom s wird hier als unmodifiziertes Fehlersyndrom bezeichnet. Entsprechend sind s1, s3, ..., s2t-1 Teilsyndrome des unmodifizierten Fehlersyndroms s. Die Teilsyndrome s1, s3, ..., s2t-1 sind ihrerseits Elemente des Galoisfelds GF(2m) und können in den verschiedenen Darstellungen von Galoisfeld-Elementen wiedergegeben sein. Beispielsweise können diese Elemente in ihrer Vektordarstellung in dem Galoisfeld GF(2m) jeweils m binäre Komponenten (d.h. Werte in dem Galoisfeld GF(2m)) aufweisen. Die Teilsyndrome s1, s3, ..., s2t-1 werden auch als Komponenten des Fehlersyndroms s = (s1, s3, ..., s2t-1) bezeichnet, wobei die Komponenten s1, s3, ..., s2t-1 dann Werte des Galoisfelds GF(2m) annehmen.
  • Um aus dem fehlerhaften, gestörten Nicht-Codewort v' das zugehörige korrekte Codewort zu ermitteln, sind diejenigen Komponenten v j '
    Figure DE102015121646B4_0096
    zu invertieren, für die ej = 1 gilt, so dass die eine Komponente ej des Fehlervektors der entsprechende Korrekturwert ist, den die Fehlerkorrekturschaltung bestimmt.
  • Für den betrachteten verkürzten BCH-Code kann der Fehlervektor e aus dem unmodifizierten Fehlersyndrom s = ( s 1 , s 3 , s 2 t 1 ,s p )
    Figure DE102015121646B4_0097
    mit der H-Matrix H = ( H 1 H 3 H 2 t 1 P )
    Figure DE102015121646B4_0098
    bestimmt werden.
  • Die Matrizen H1, H3, ..., H2t-1 der H-Matrix können durch ihre jeweiligen Spalten wie folgt angegeben werden:                       H 1 = ( h 0 1 ,h 1 1 , ,h n 1 1 ) = ( α i 0 , α i 1 , , α i n 1 ) ,                                                  (10)         H 3 = ( h 0 3 , h 1 3 , ,h n 1 3 ) = ( α ( 2 t 1 ) ( i 0 ) , α ( 2 t 1 ) ( i 1 ) , , α ( 2 t 1 ) ( i n 1 ) ) ,                              (11)                                                   H 2 t 1 = ( h 0 2 t 1 ,h 1 2 t 1 , ,h n 1 2 t 1 ) = ( α ( 2 t 1 ) ( i 0 ) , α ( 2 t 1 ) ( i 1 ) , , α ( 2 t 1 ) ( i n 1 ) ) ,                          ( 12 )                                       P = ( 1,1, ,1 ) n .                                                                                ( 13 )
    Figure DE102015121646B4_0099
  • Die Exponenten von α sind modulo 2m - 1 bestimmt, und die Exponenten i0, i1, ..., in-i sind paarweise verschieden. Es ist dabei nicht erforderlich, dass ij = j für j = 0, ..., n - 1 gilt.
  • Beispielhaft kann die H-Matrix in der Form        H 1 = ( α i 0 , α i 0 + d , , α i 0 + ( n 1 ) d )        H 3 = ( α 3 i 0 , α 3 ( i 0 + d ) , , α 3 ( i 0 + ( n 1 ) ) d )            H 2 t 1 = ( α ( 2 t 1 ) i 0 , α ( 2 t 1 ) ( i 0 + d ) , , α ( 2 t 1 ) ( i 0 + ( n 1 ) d ) )           P = ( 1,1 ,1 ) n
    Figure DE102015121646B4_0100
    verwendet werden.
  • Für ein Fehlermuster Fm = [M, D1,... ,DM-1] gilt für diese H-Matrix        H 1 e F m n o r m = α i 0 ( 1 + α D 1 d + α ( D 1 + D 2 ) d + + α ( D 1 + D 2 + + D M 1 ) d )        H 3 e F m n o r m = α 3 i 0 ( 1 + α 3 D 1 d + α 3 ( D 1 + D 2 ) d + + α 3 ( D 1 + D 2 + + D M 1 ) d )                       H 2 t 1 e F m n o r m = α ( 2 t 1 ) i 0 ( 1 + α ( 2 t 1 ) D 1 d + α ( 2 t 1 ) ( D 1 + D 2 ) d + +                      +   α ( 2 t 1 ) ( D 1 + D 2 + + D M 1 ) d ) ,
    Figure DE102015121646B4_0101
    und Konstanten β1, ... , β2t-1 sind durch        β 1 = H 1 [ e F m n o r m ] T α i 0        β 3 = H 3 [ e F m n o r m ] T α 3 i 0           β 2 t 1 = H 2 t 1 [ e F m n o r m ] T α ( 2 t 1 ) i 0
    Figure DE102015121646B4_0102
    bestimmt, wobei [ e F m n o r m ] T
    Figure DE102015121646B4_0103
    der transponierte n-dimensionale Spaltenvektor des n-dimensionalen Zeilenvektors e F m n o r m
    Figure DE102015121646B4_0104
    ist. Ferner gilt K ≥ 1.
  • Zur Bestimmung von β1 wird die Teilmatrix H1 mit dem normierten Fehlervektor e F m n o r m
    Figure DE102015121646B4_0105
    des Fehlermusters Fm multipliziert. Dabei werden die Spalten der Teilmatrix H1 komponentenweise XOR-verknüpft, die den Positionen des normierten Fehlervektors e F m n o r m
    Figure DE102015121646B4_0106
    entsprechen, die gleich 1 sind. Das Resultat wird als Element des Galoisfelds durch α i 0
    Figure DE102015121646B4_0107
    dividiert oder gleichwertig mit α i 0
    Figure DE102015121646B4_0108
    multipliziert. Ist i0 = 0 und damit α i 0 = α 0 = 1,
    Figure DE102015121646B4_0109
    dann ist keine weitere Operation erforderlich.
  • Zur Bestimmung von β3 wird die Teilmatrix H3 mit dem normierten Fehlervektor e F M n o r m
    Figure DE102015121646B4_0110
    des Fehlermusters Fm multipliziert. Dabei werden die Spalten der Teilmatrix H3 komponentenweise XOR-verknüpft, die den Positionen des normierten Fehlervektors e F m n o r m
    Figure DE102015121646B4_0111
    entsprechen, die gleich 1 sind. Das Resultat wird als Element des Galoisfelds durch α 3 ( i 0 )
    Figure DE102015121646B4_0112
    dividiert oder gleichwertig mit α 3 ( i 0 )
    Figure DE102015121646B4_0113
    multipliziert. Ist i0 = 0 und damit α 3 ( i 0 ) = α 0 = 1,
    Figure DE102015121646B4_0114
    dann ist keine weitere Operation erforderlich.
  • Entsprechend werden β5,..., β2t-1 bestimmt. e F m n o r m
    Figure DE102015121646B4_0115
    ist hier ein n-komponentiger Spaltenvektor, da die Matrizen H1, H3, ... von rechts mit e F m n o r m
    Figure DE102015121646B4_0116
    multipliziert werden.
  • Für den speziellen Fall i0 = 0 und d = 1 gilt für die H-Matrix:        H 1 = ( α 0 , α 1 , , α n 1 ) )        H 3 = ( α 0 , α 3 , , α ( n 1 ) 3 ) )           H 2 t 1 = ( α 0 , α ( 2 t 1 ) , , α ( n 1 ) ( 2 t 1 ) ) .
    Figure DE102015121646B4_0117
  • Für ein Fehlermuster Fm = [M, D1,... ,DM-1] gilt       H 1 e F m n o r m = ( 1 + α D 1 + α ( D 1 + D 2 ) + + α ( D 1 + D 2 + + D M 1 ) )       H 3 e F m n o r m = ( 1 + α 3 D 1 + α 3 ( D 1 + D 2 ) + + α 3 ( D 1 + D 2 + + D M 1 ) )                      H 2 t 1 e F m n o r m = ( 1 + α ( 2 t 1 ) D 1 + α ( 2 t 1 ) ( D 1 + D 2 ) d + + + α ( 2 t 1 ) ( D 1 + D 2 + + D M 1 ) )
    Figure DE102015121646B4_0118
    und weiter mit α i 0 = α 0 = 1
    Figure DE102015121646B4_0119
          β 1 = H 1 [ e F m n o r m ] T       β 3 = H 3 [ e F m n o r m ] T           β 2 t 1 = H 2 t 1 [ e F m n o r m ] T .
    Figure DE102015121646B4_0120
  • Speziell für ein Fehlermuster Fm = [M;D1,... ,DM-1] folgt somit       β 1 = ( 1 + α D 1 + α ( D 1 + D 2 ) + + α ( D 1 + D 2 + + D M 1 ) )       β 3 = ( 1 + α 3 D 1 + α 3 ( D 1 + D 2 ) + + α 3 ( D 1 + D 2 + + D M 1 ) )          β 2 t 1 = ( 1 + α ( 2 t 1 ) D 1 + α ( 2 t 1 ) ( D 1 + D 2 ) d + + + α ( 2 t 1 ) ( D 1 + D 2 + + D M 1 ) )
    Figure DE102015121646B4_0121
  • Es wird die Korrektur eines Fehlers betrachtet, der K Mal ein Fehlermuster [ M ; D 1 , ,D M 1 ]
    Figure DE102015121646B4_0122
    aufweist, wobei K M = t + 1
    Figure DE102015121646B4_0123
    gilt. Für k = 1, ... , K ist beispielhaft das erste Bit des k-ten Fehlermusters das jk-te Bit des Fehlervektors. Für die Teilsyndrome des Fehlersyndroms s ergibt sich      s 1 = α j 1 β 1 + α j 2 β 1 + + α j K β 1      s 3 = α 3 j 1 β 3 + α 3 j 2 β 3 + + α 3 j K β 3        s 2 t 1 = α ( 2 t 1 ) j 1 β 2 t 1 + α ( 2 t 1 ) j 2 β 2 t 1 + + α ( 2 t 1 ) j K β 2 t 1
    Figure DE102015121646B4_0124
    mit      β 1 = 1 + α D 1 d + + α ( D 1 + + D M 1 ) d ,      β 3 = 1 + α 3 D 1 d + + α 3 ( D 1 + + D M 1 ) d ,         β 2 t 1 = 1 + α ( 2 t 1 ) D 1 d + + α ( 2 t 1 ) ( D 1 + + D M 1 ) d .
    Figure DE102015121646B4_0125
  • Aus der Gleichung (14) folgt: s 1 m o d = s 1 β 1 1 = α j 1 + α j 2 + α j K s 1 m o d = s 3 β 3 1 = α j 1 + α j 2 + α j K         s 2 t 1 m o d = s 2 t 1 β 2 t 1 1 = α ( 2 t 1 ) j 1 + α ( 2 t 1 ) j 2 + + α ( 2 t 1 ) j K
    Figure DE102015121646B4_0126
  • Für die jeweils ersten Bitpositionen j1, j2, ... , jK der K Fehlermuster gelten die Gleichungen für einen K-Bitfehler eines K-Bitfehler korrigierenden BCH-Codes, wenn man das unmodifizierte Fehlersyndrom durch das modifizierte Fehlersyndrom ersetzt. Das unmodifizierte Fehlersyndrom umfasst die Teilsyndrome s1, ... , s2t-1 und das modifizierte Fehlersyndrom umfasst die Teilsyndrome s 1 m o d , , s 2 K 1 m o d .
    Figure DE102015121646B4_0127
  • Mit anderen Worten: Das modifizierte Fehlersyndrom s m o d = s 1 m o d , ,s 2 K 1 m o d
    Figure DE102015121646B4_0128
    wird so gebildet, dass es als Fehlersyndrom eines K-Bitfehler korrigierenden Codes für jeweils ein erstes Bit der K Fehlermuster dient.
  • Das modifizierte Fehlersyndrom s m o d = s 1 m o d , , s 2 K 1 m o d
    Figure DE102015121646B4_0129
    wird unter Verwendung des unmodifizierten Fehlersyndroms s = s 1 , ,s 2 t 1
    Figure DE102015121646B4_0130
    und des Fehlermusters Fm bestimmt, wobei das Fehlermuster Fm beispielsweise durch seinen normierten Fehlervektor e F m 0 n o r m
    Figure DE102015121646B4_0131
    beschrieben ist.
  • Beispielsweise sind die Konstanten β1, ... , β2K-1 zu       β 1 = H 1 e F m n o r m α i 0         β 2 t 1 = H 2 t 1 e F m n o r m α ( 2 t 1 ) i 0
    Figure DE102015121646B4_0132
    bestimmt und die Teilsyndrome s 1 m o d , ,s K 1 m o d
    Figure DE102015121646B4_0133
    des modifizierten Fehlersyndroms ergeben sich durch Multiplikation der entsprechenden Teilsyndrome s1,..., s2k-1 des unmodifizierten Fehlersyndroms mit jeweils einer Konstanten β 1 1 , , β 2 K 1 1 .
    Figure DE102015121646B4_0134
  • Die Korrektur dieses K-Bitfehlers kann unter Verwendung der modifizierten Teilsyndrome s 1 m o d ,s 3 m o d , ,s 2 K 1 m o d
    Figure DE102015121646B4_0135
    erfolgen, wenn bereits bestimmt wurde, dass ein t + 1-Bitfehler vorliegt. Für den t + 1-Bitfehler wird dann angenommen, dass es sich um einen Fehler handelt, dessen Fehlervektor K mindestens ein Fehlermuster [M;D1,...,DM-1] aufweist.
  • Entsprechend ist es möglich, die Korrektur unter Verwendung aller modifizierten Teilsyndrome s 1 m o d ,s 3 m o d , ,s 2 t 1 m o d
    Figure DE102015121646B4_0136
    vorzunehmen.
  • In manchen Anwendungsbeispielen ist es möglich, dass die ersten Bitpositionen der K Fehlermuster nur bestimmte Werte annehmen. Liegt beispielsweise ein Speicher vor, dessen Speicherzellen vier verschiedene Zustände und damit vier verschiedene binär codierte Werte 00, 01, 10, 11 annehmen können, kann eine Anzahl von K benachbarten 2-Bitfehlern auftreten, deren erste Bits die Bits 1, 3, 5, ... sind, sofern der i-ten Speicherzelle die Bits 2i - 1, 2i zugeordnet sind. Wenn die ersten Bitpositionen der Fehlermuster nur bestimmte Werte annehmen können, kann dadurch eine vereinfachte Decodierung und Fehlerkorrektur genutzt werden.
  • Für d = 1 und k1 = 0 gilt       β 1 = 1 + α D 1 + + α ( D 1 + + D M 1 ) = H 1 e F m n o r m       β 3 = 1 + α 3 D 1 + + α 3 ( D 1 + + D M 1 ) = H 3 e F m n o r m ,         β 2 t 1 = 1 + α ( 2 t 1 ) D 1 + + α ( 2 t 1 ) ( D 1 + + D M 1 ) = H 2 t 1 e F m n o r m .
    Figure DE102015121646B4_0137
    mit Fm = [M;D1,...,DM-1].
  • Nachfolgend wird ein Ausführungsbeispiel für einen 3-Bitfehler korrigierenden und 4-Bitfehler erkennenden BCH-Code mit einem Codeabstand 8 betrachtet. Beliebige 3-Bitfehler und 4-Bitfehler aus zwei benachbarten 2-Bitfehlern können korrigiert werden. Das Fehlermuster ist in diesem Beispiel [2;1].
  • Es wird die H-Matrix H = ( α 0 α 1 α 2 α 0 α 3 α 6 α 0 α 5 α 10 1 1 1 )
    Figure DE102015121646B4_0138
    verwendet.
  • Liegt ein 1-Bitfehler im j-ten Bit vor, dann gilt s 1 = α j ,
    Figure DE102015121646B4_0139
    s 3 = α 3 j ,
    Figure DE102015121646B4_0140
    s 5 = α 5 j ,
    Figure DE102015121646B4_0141
    s p = 1
    Figure DE102015121646B4_0142
    und es ist s 1 3 = s 3 , s 1 5 = s 5 .
    Figure DE102015121646B4_0143
  • Liegt ein 2-Bitfehler in den Bitpositionen j und l vor, gilt s 1 = α j α l ,
    Figure DE102015121646B4_0144
    s 3 = α 3 j α 3 l ,
    Figure DE102015121646B4_0145
    s 5 = α 5 j α 5 l ,
    Figure DE102015121646B4_0146
    s p = 0
    Figure DE102015121646B4_0147
    und es ist s 1 3 s 3 .
    Figure DE102015121646B4_0148
  • Liegt ein 3-Bitfehler in den Bitpositionen i, j und l vor, gilt s 1 = α i α j α l ,
    Figure DE102015121646B4_0149
    s 3 = α 3 i α 3 j α 3 l ,
    Figure DE102015121646B4_0150
    s 5 = α 5 i α 5 j α 5 l ,
    Figure DE102015121646B4_0151
    s p = 1
    Figure DE102015121646B4_0152
    und es ist s 1 3 s 3 .
    Figure DE102015121646B4_0153
  • Ein 1-Bitfehler, ein 2-Bitfehler oder ein 3-Bitfehler wird unter Verwendung der Teilsyndrome s1, s3 und s5 korrigiert, wie dies bei der Verwendung eines BCH-Codes üblich ist.
  • Liegt ein 4-Bitfehler in den Bitpositionen j, j + 1, l und l + 1 vor, ist das Fehlermuster [2, 1] zweimal in dem Fehlervektor e enthalten. Das erste Fehlermuster eines benachbarten 2-Bitfehlers beginnt in der Bitposition j und das zweite Fehlermuster aus zwei benachbarten 2-Bitfehlern beginnt in der Bitposition l. Diese Bitpositionen sollen bestimmt werden.
  • Es gelten: s 1 = α j + α j + 1 + α l + α l + 1 = α j ( 1 + α ) + α l ( 1 + α ) ,
    Figure DE102015121646B4_0154
    s 3 = α 3 j + α 3 ( j + 1 ) + α 3 l + α 3 ( l + 1 ) = α 3 j ( 1 + α 3 ) + α 3 l ( 1 + α 3 ) ,
    Figure DE102015121646B4_0155
    s 5 = α 5 j + α 5 ( j + 1 ) + α 5 l + α 5 ( l + 1 ) = α 5 j ( 1 + α 5 ) + α 5 l ( 1 + α 5 ) ,
    Figure DE102015121646B4_0156
    s p = 0.
    Figure DE102015121646B4_0157
    Mit β 1 = H 1 e [ 2,1 ] n o r m = H 1 [ 1,1,0, ,0 ] T = 1 + α ,
    Figure DE102015121646B4_0158
    β 3 = H 3 e [ 2,1 ] n o r m = H 3 [ 1,1,0, ,0 ] T = 1 + α 3 ,
    Figure DE102015121646B4_0159
    β 5 = H 2 e [ 2,1 ] n o r m = H 5 [ 1,1,0, ,0 ] T = 1 + α 5 ,
    Figure DE102015121646B4_0160
    ergibt sich s 1 m o d = s 1 β 1 1 = α j + α l ,
    Figure DE102015121646B4_0161
    s 3 m o d = s 3 β 3 1 = α 3 j + α 3 l ,
    Figure DE102015121646B4_0162
    s 5 m o d = s 5 β 5 1 = α 5 j + α 5 l .
    Figure DE102015121646B4_0163
    und die Bitpositionen j und l sind, wenn schon bekannt ist, dass ein 4-Bitfehler (mit t + 1 = 4) aus 2 benachbarten 2-Bitfehlern vorliegt, wie ein 2-Bitfehler aus den modifizierten Teilyndromen s 1 m o d  und  s 3 m o d
    Figure DE102015121646B4_0164
    des BCH-Codes bestimmbar.
  • Es ist auch möglich, die Teilsyndrome s 1 m o d ,   s 3 m o d  und  s 5 m o d
    Figure DE102015121646B4_0165
    zur Bestimmung der Bitpositionen j und l zu verwenden.
  • Weiterhin ist es eine Option, anstelle des 4-Bitfehlers aus zwei benachbarten 2-Bitfehlern einen 4-Bitfehler aus vier benachbarten Bitfehlern zu betrachten: Der so modifizierte BCH-Code korrigiert dann beliebige 3-Bitfehler und einen 4-Bit-Burst-Fehler, wobei ein 4-Bit-Burst-Fehler ein beliebiger Fehler innerhalb von 4 aufeinanderfolgenden Bits ist. Das Fehlermuster ist in diesem Fall Fm = [4; 1,1,1] und der Fehlervektor ergibt sich zu e F m n o r m = [ 1,1,1,1,0, ,0 ] .
    Figure DE102015121646B4_0166
  • Für einen 4-Bitfehler mit 4 benachbarten Bitfehlern mit der ersten Bitposition j gilt somit s 1 = α j + α j + 1 + α j + 2 + α j + 3 = α j ( 1 + α + α 2 + α 3 ) ,
    Figure DE102015121646B4_0167
    s 3 = α 3 j + α 3 ( j + 1 ) + α 3 ( j + 2 ) + α 3 ( j + 3 ) = α 3 j ( 1 + α 3 + α 6 + α 9 )
    Figure DE102015121646B4_0168
    s 5 = α 5 j + α 5 ( j + 1 ) + α 5 ( j + 2 ) + α 5 ( j + 3 ) = α 5 j ( 1 + α 5 ) + α 10 + α 15 )
    Figure DE102015121646B4_0169
    s p = 0,
    Figure DE102015121646B4_0170
    wobei die Position j aus der Gleichung s 1 m o d = s 1 β 1 1 = α j
    Figure DE102015121646B4_0171
    mit β 1 = H 1 [ 1,1,1,1,0, ,0 ] T = 1 + α + α 2 + α 3
    Figure DE102015121646B4_0172
    bestimmt werden kann.
  • Es ist möglich, den Ort eines Fehlers als Nullstelle eines Lokatorpolynoms zu bestimmen. Liegt ein µ-Bitfehler vor, dann ist es möglich, die Fehlerorte durch die µ Nullstellen eines Lokatorpolynoms µ-ten Grades Lµ (x) mit L μ ( x ) = x μ + σ 1 μ x μ 1 + σ 2 μ x μ 2 + + σ μ 1 μ x 1 + σ μ μ
    Figure DE102015121646B4_0173
    zu ermitteln. Weiterhin ist es möglich, (µ - 1) Fehlerorte eines (µ - 1)-Bitfehlers durch die Nullstellen des Lokatorpolynoms µ-ten Grades zu bestimmen. Im Falle eines (µ - 1)-Bitfehlers ist eine erste Nullstelle des Lokatorpolynoms µ-ten Grades gleich 0, während die weiteren (µ - 1) Nullstellen den (µ - 1) Fehlerorten entsprechen.
  • Es ist bekannt, das der Anzahl der Fehler entsprechende Lokatorpolynom iterativ nach dem Berlekamp-Massey-Algorithmus zu bestimmen (siehe z.B. [Lin, S., Costello, D.: „Error Control Coding", Prentice Hall, 1983, vgl. z.B. Seiten 155 bis 160]).
  • Weiterhin können die Koeffizienten der entsprechenden Lokatorpolynome durch Lösen einer linearen Gleichung aus den Teilsyndromen bestimmt werden. Dies wird nachfolgend erläutert.
  • Zunächst werden beispielhaft Lokatorpolynome für µ = 1,2,3,4,5 angegeben.
  • Für µ = 1 hat das Lokatorpolynom die Form L 1 ( x ) = x + σ 1 1 ,
    Figure DE102015121646B4_0174
    für µ = 2 hat das Lokatorpolynom die Form L 2 ( x ) = x 2 + σ 1 2 x + σ 2 2 ,
    Figure DE102015121646B4_0175
    für µ = 3 hat das Lokatorpolynom die Form L 3 ( x ) = x 3 + σ 1 3 x 2 + σ 2 3 x 1 + σ 3 3 ,
    Figure DE102015121646B4_0176
    für µ = 4 hat das Lokatorpolynom die Form L 4 ( x ) = x 4 + σ 1 4 x 3 + σ 2 4 x 2 + σ 3 4 x 1 + σ 4 4 ,
    Figure DE102015121646B4_0177
    und für µ = 5 hat das Lokatorpolynom die Form L 5 ( x ) = x 5 + σ 1 5 x 4 + σ 2 5 x 3 + σ 3 5 x 2 + σ 4 5 x 1 + σ 5 5 .
    Figure DE102015121646B4_0178
  • Liegt ein µ-Bitfehler vor, dann sind die µ Fehlerorte i1, i2, i3, ... , iµ die Exponenten der Nullstellen α i 1 , α i 2 , , α i μ
    Figure DE102015121646B4_0179
    des Lokatorpolynoms Lµ(x).
  • Wird in dem Lokatorpolynom Lµ(x) die Variable x durch y 1 = 1 y
    Figure DE102015121646B4_0180
    ersetzt und wird weiter L μ * ( y ) = y μ L μ ( y 1 ) ,
    Figure DE102015121646B4_0181
    gesetzt, so gilt L μ * ( y ) = 1 + σ 1 μ x 1 + σ 2 μ x 2 + + σ μ 1 μ x μ 1 + σ μ μ x μ .
    Figure DE102015121646B4_0182
  • Das Polynom L μ * ( y )
    Figure DE102015121646B4_0183
    kann ebenfalls als Lokatorpolynom verwendet werden. Die µ Fehlerorte j1, j2, j3, ... , jµ sind dann die negativen Exponenten der Nullstellen α j 1 , α j 2 , , α j μ
    Figure DE102015121646B4_0184
    des Lokatorpolynoms L μ * ( y ) ,
    Figure DE102015121646B4_0185
    wobei die Exponenten jeweils modulo 2m - 1 zu betrachten sind, wenn das verwendete Galoisfeld GF(2m) ist.
  • Nachfolgend wird beispielhaft das Lokatorpolynom Lµ (x) verwendet.
  • Die Koeffizienten der Lokatorpolynome können als Lösungen der folgenden linearen Gleichungssysteme bestimmt werden.
  • Für µ = 2 gilt M ( 2 ) ( σ 1 2 σ 2 2 ) = ( 1 0 s 2 s 1 ) ( σ 1 2 σ 2 2 ) = s 1 s 3
    Figure DE102015121646B4_0186
    mit der Lösung σ 1 2 = s 1  und  σ 2 2 = s 3 + s 1 3 s 1 .
    Figure DE102015121646B4_0187
  • Hierbei ist berücksichtigt, dass im Galoisfeld GF(2m) gilt: s 2 = s 1 2 .
    Figure DE102015121646B4_0188
  • Für µ = 3 gilt M ( 3 ) ( σ 1 3 σ 2 3 σ 3 3 ) = ( 1 0 0 s 2 s 1 0 s 4 s 3 s 2 ) ( σ 1 3 σ 2 3 σ 3 3 ) = s 1 s 3 s 5 ,
    Figure DE102015121646B4_0189
    wobei σ 1 3 , σ 2 3 , σ 3 3
    Figure DE102015121646B4_0190
    durch Lösen der linearen Gleichung zu σ 1 3 = s 1 ,
    Figure DE102015121646B4_0191
    σ 2 3 = s 1 2 s 3 + s 5 s 1 3 + s 3
    Figure DE102015121646B4_0192
    σ 3 3 = s 1 3 + s 3 + s 1 s 1 2 s 3 + s 5 s 1 3 + s 3
    Figure DE102015121646B4_0193
    bestimmt sind, wobei in dieser Lösung berücksichtigt ist, dass im Galoisfeld GF(2m) gilt: s 2 = s 1 2 ; s 4 = s 2 2 = s 1 4 .
    Figure DE102015121646B4_0194
  • Für µ = 4 gilt M ( 4 ) ( σ 1 4 σ 2 4 σ 3 4 σ 4 4 ) = ( 1 0 0 0 s 2 s 1 1 0 s 4 s 3 s 2 s 1 s 6 s 5 s 4 s 3 ) ( σ 1 4 σ 2 4 σ 3 4 σ 4 4 ) = s 1 s 3 s 5 s 7 ,
    Figure DE102015121646B4_0195
    wobei σ 1 4 , σ 2 4 , σ 3 4 , σ 4 4
    Figure DE102015121646B4_0196
    durch Lösen der linearen Gleichung zu σ 1 4 = s 1 ,
    Figure DE102015121646B4_0197
    σ 2 4 = s 1 s 7 + s 3 s 5 + s 1 5 ( s 3 + s 1 3 ) s 1 s 5 + s 3 2 + s 1 3 s 3 + s 1 6
    Figure DE102015121646B4_0198
    σ 3 4 = s 1 2 s 7 + s 1 4 s 5 + s 3 ( s 3 + s 1 3 ) 2 s 1 s 5 + s 3 2 + s 1 3 s 3 + s 1 6
    Figure DE102015121646B4_0199
    σ 4 4 = ( s 7 + s 1 2 s 5 + s 1 s 3 2 + s 1 4 s 3 ) ( s 3 + s 1 3 ) + ( s 5 + s 1 5 ) 2 s 1 s 5 + s 3 2 + s 1 3 s 3 + s 1 6
    Figure DE102015121646B4_0200
    bestimmt sind, wobei in dieser Lösung berücksichtigt ist, dass im Galoisfeld GF(2m) gilt: s 2 = s 1 2 ; s 4 = s 2 2 = s 1 4 ; s 6 = s 3 2 .
    Figure DE102015121646B4_0201
  • Für µ = 5 gilt M ( 5 ) ( σ 1 5 σ 2 5 σ 3 5 σ 4 5 ) = ( 1 0 0 0 0 s 2 s 1 1 0 0 s 4 s 3 s 2 s 1 1 s 6 s 5 s 4 s 3 s 2 s 8 s 7 s 6 s 5 s 4 ) ( σ 1 5 σ 2 5 σ 3 5 σ 4 5 ) = s 1 s 3 s 5 s 7 s 9 ,
    Figure DE102015121646B4_0202
    wobei die konkreten Werte für σ 1 5 , , σ 5 5
    Figure DE102015121646B4_0203
    wieder durch Lösen einer linearen Gleichung (24) bestimmt sind und beispielsweise [Wicker, S.: „Error Control Systems for digital Communication and Storage“, Prentice Hall, 1995, Seite 208] angegeben sind.
  • Allgemein ist eine Matrix M(t) zu M ( t ) = ( 1 0 0 0 0 0 s 2 s 1 1 0 0 0 s 4 s 3 s 2 s 1 1 0 s 2 t 2 s 2 t 3 s 2 t 4 s 2 t 5 s 2 t 6 s t 1 )
    Figure DE102015121646B4_0204
    bestimmt und für mehr als fünf Bitfehler (t > 5) gilt:                                               M ( t ) ( σ 1 t σ 1 t σ 3 5 σ t t ) = ( 1 0 0 0 0 0 s 2 s 1 1 0 0 0 s 4 s 3 s 2 s 1 1 0 s 2 t 2 s 2 t 3 s 2 t 4 s 2 t 5 s 2 t 6 s t 1 ) ( σ 1 t σ 2 t σ 3 5 σ t t ) = s 1 s 3 s 5 s 2 t 1 .
    Figure DE102015121646B4_0205
  • Die Werte für σ 1 t , , σ t t
    Figure DE102015121646B4_0206
    sind wieder durch Lösen einer linearen Gleichung, hier durch Lösen der linearen Gleichung (25) bestimmt.
  • Eine Aufgabe einer Fehlerkorrekturschaltung besteht darin, die Fehlerpositionen eines beliebigen 1-Bitfehlers, eines beliebigen 2-Bitfehlers oder eines beliebigen 3-Bitfehlers, ..., oder eines beliebigen τ-Bitfehlers mit 1 ≤ τ ≤ t aus dem Fehlersyndrom, d.h. aus den Teilsyndromen s1, s3, ..., s2t-1 des BCH-Codes effizient zu bestimmen und in den bestimmten Bitpositionen des Datenwortes durch einen Korrekturwert eine Korrektur des mindestens einen als fehlerhaft erkannten Bits vorzunehmen.
  • Der hier vorgeschlagene Ansatz ermöglicht es darüber hinaus, dass ein (t + 1)-Bitfehler korrigiert werden kann, wenn der (t + 1)-Bitfehler ein bestimmtes Fehlermuster einmal oder mehrmals enthält.
  • Bei der Fehlerkorrektur kann zunächst die Anzahl der Fehler bestimmt werden.
  • Liegt ein τ-Bitfehler mit 1 ≤ τ ≤ t vor, wird der τ-Bitfehler unter Verwendung der Teilsyndrome s1,..., s2t-1 des Fehlersyndroms des BCH-Codes korrigiert, wie das bei BCH-Codes üblich ist.
  • Liegt ein (t + 1)-Bitfehler vor, der ein bestimmtes Fehlermuster aus M Bits K Mal aufweist, wobei K · M = t + 1 gilt, kann der Fehlervektor unter Verwendung von modifizierten Teilsyndromen     s 1 m o d = s 1 β 1 1 ,     s 3 m o d = s 3 β 3 1 ,            s 2 K 1 m o d = s 2 K 1 β 2 K 1 1
    Figure DE102015121646B4_0207
    bestimmt werden, wobei β1, ... , β2k-1 konstante Werte des Galoisfelds sind, die durch das Fehlermuster aus M Bits und die Spalten der H-Matrix des betrachteten BCH-Codes bestimmt sind.
  • Unter Verwendung der modifizierten Teilsyndrome s 1 m o d , , s 2 K 1 m o d
    Figure DE102015121646B4_0208
    des Fehlersyndroms werden jeweils K erste Bits der K Fehlermuster aus M Bits korrigiert. Der Korrekturwert der weiteren M - 1 Bits der K Fehlermuster ist dann gleich dem Korrekturwert des jeweils ersten korrigierten Bits.
  • Besteht beispielsweise ein Fehlermuster aus zwei aufeinanderfolgenden Bits, dann kann das erste Bit des Fehlermusters unter Verwendung der Teilsyndrome des modifizierten Fehlersyndroms korrigiert werden. Weiterhin wird das zweite Bit des Fehlermusters ebenfalls korrigiert, wenn das erste Bit des Fehlermusters korrigiert wird.
  • Weist beispielsweise ein Fehlervektor zwei Fehlermuster aus drei aufeinanderfolgenden Bits auf, dann wird beispielsweise das erste Bit der beiden Fehlermuster unter Verwendung der Teilsyndrome des modifizierten Fehlersyndroms korrigiert und die jeweils zweiten Bits der beiden Fehlermuster und die jeweils dritten Bits der beiden Fehlermuster werden ebenfalls korrigiert, wenn das erste Bit der Fehlermuster korrigiert wird.
  • Ist bereits bestimmt worden, dass ein (t + 1)-Bitfehler vorliegt, dann ist es möglich, zur Korrektur eines ersten Bits der K Fehlermuster lediglich die modifizierten Teilsyndrome s 1 m o d , , s 2 K 1 m o d
    Figure DE102015121646B4_0209
    des Fehlersyndroms zu verwenden, wobei die Korrektur mittels modifiziertem Fehlersyndrom wie für einen K-Bitfehler korrigierenden BCH-Code erfolgt.
  • Bei einem derartigen Vorgehen ist unter Verwendung der nicht modifizierten Teilsyndrome s1, ... , s2t-1 zu bestimmen, ob ein (t + 1)-Bitfehler vorliegt oder nicht.
  • Wird erkannt, dass ein τ-Bitfehler mit 1 ≤ τ ≤ t vorliegt, dann kann die Fehlerkorrektur mit dem t-Bitfehler korrigierenden BCH-Code unter Verwendung der Syndrome s1,... , s2t-1 durchgeführt werden.
  • Tritt ein (t +1)-Bitfehler auf, ist es auch möglich zur Dekodierung die modifizierten Teilsyndrome s 1 m o d , , s 2 K 1 m o d , , s 2 t 1 m o d
    Figure DE102015121646B4_0210
    zur Fehlerkorrektur zu verwenden.
  • Eine Möglichkeit zur Bestimmung der Anzahl der aufgetretenen Fehler ist beispielsweise in [Wicker, S.: „Error Control Systems for digital Communication and Storage“, Prentice Hall, 1995, Seite 206] beschrieben.
  • Aus D e t ( M ( τ ) ) 0
    Figure DE102015121646B4_0211
    kann gefolgert werden, dass τ-Bitfehler oder (τ- 1)-Bitfehler vorhanden sind. Entsprechend gilt D e t ( M ( τ ) ) = 0,
    Figure DE102015121646B4_0212
    wenn weniger als (τ - 1)-Bitfehler vorhanden sind.
  • Sind τ-Bitfehler vorhanden, sind die τ Fehlerorte durch die τ Nullstellen des Lokatorpolynoms Lτ(x) bestimmt.
  • Sind (τ- 1)-Bitfehler vorhanden, sind die (τ - 1) Fehlerorte durch die (τ - 1) Nullstellen ≠ 0 des Lokatorpolynoms Lτ(x) bestimmt, wobei in diesem Fall eine weitere Nullstelle gleich 0 vorhanden ist. Das Vorhandensein eines Fehlers wird durch s ≠ 0 angezeigt.
  • Wird vorausgesetzt, dass maximal ein t-Bitfehler vorliegt, kann aus D e t ( M ( t ) ) 0
    Figure DE102015121646B4_0213
    gefolgert werden, dass entweder ein t-Bitfehler oder ein (t - 1)-Bitfehler vorliegt. Liegt ein t-Bitfehler vor, sind die Fehlerorte durch die t Nullstellen des Lokatorpolynoms Lt(x) t-ten Grades bestimmt. Liegt ein t - 1-Bitfehler vor, sind die t - 1 Fehlerorte durch die t - 1 Nullstellen ≠ 0 des Lokatorpolynoms Lt(x) t-ten Grades bestimmt. Eine weitere Nullstelle des Lokatorpolynoms t-ten Grades ist dann 0.
  • Gilt D e t ( M ( t ) ) = 0,
    Figure DE102015121646B4_0214
    liegt weder ein t-Bitfehler noch ein (t - 1)-Bitfehler vor. In diesem Fall kann höchstens ein (t - 2)-Bitfehler vorliegen.
  • Ist D e t ( M ( t 2 ) ) 0,
    Figure DE102015121646B4_0215
    kann gefolgert werden, dass entweder ein (t - 2)-Bitfehler oder ein (t - 3)-Bitfehler vorliegt:
    • - Liegt ein (t - 2)-Bitfehler vor, sind die Fehlerorte durch die t - 2 Nullstellen des Lokatorpolynoms Lt-2(x) bestimmt, das den Grad t - 2 hat.
    • - Liegt ein (t - 3)-Bitfehler vor, sind die t - 3 Fehlerorte durch die t - 3 Nullstellen ≠ 0 des Lokatorpolynoms Lt-2(x) bestimmt, das den Grad t - 2 aufweist. Eine weitere Nullstelle des Lokatorpolynoms (t - 2)-ten Grades ist in diesem Fall 0.
  • Ist D e t ( M ( t 2 ) ) = 0,
    Figure DE102015121646B4_0216
    kann gefolgert werden, dass maximal ein (t - 4)-Bitfehler vorliegt.
  • Um die Anzahl der Fehler zu bestimmen, können die Determinanten D e t ( M ( t ) ) , D e t ( M ( t 2 ) ) , D e t ( M ( t 4 ) ) ,
    Figure DE102015121646B4_0217
    betrachtet werden, bis eine Determinante ≠ 0 gefunden wird.
  • Für einen 4-Bitfehler korrigierenden BCH-Code mit zusätzlicher Gesamtparität soll nachfolgend das Vorgehen erläutert werden:
  • Beispielsweise wird s = (s1, s3, s5, s7, P) ≠ 0 angenommen. Die Determinanten werden jeweils nach den Elementen der ersten Zeile entwickelt und die Determinante der verbliebenen 3×3-Matrizen wird direkt berechnet. Es folgt: D e t ( M ( 5 ) ) = D e t ( 1 0 0 0 0 s 2 s 1 1 0 0 s 4 s 3 s 2 s 1 1 s 6 s 5 s 4 s 3 s 2 s 8 s 7 s 6 s 5 s 4 ) = D e t ( s 1 1 0 0 s 3 s 2 s 1 1 s 5 s 4 s 3 s 2 s 7 s 6 s 5 s 4 ) = = s 3 2 s 4 + s 1 s 2 s 7 + s 5 2 + s 1 s 4 s 5 + s 2 s 3 s 5 + s 3 s 7 .
    Figure DE102015121646B4_0218
  • Der so erhaltene algebraische Ausdruck lässt sich aus den Werten der Teilsyndrome unter Verwendung von bekannten Galoisfeldmultiplizierern von einem Fachmann implementieren und mit Hilfe eines Synthesetools optimieren.
  • Gilt Det (M(5)) ≠ 0, dann liegt ein 5-Bitfehler oder ein 4-Bitfehler vor. Ist die Parität P = 1, handelt es sich um einen 5-Bitfehler, ist die Parität P = 0, handelt es sich um einen 4-Bitfehler.
  • Gilt Det (M(5)) = 0, dann liegt ein 3-Bitfehler, ein 2- Bitfehler oder ein 1-Bitfehler vor, wenn s = (s1, s3, s5, s7) ≠ 0 ist. Ist P = 0, dann liegt ein 2-Bitfehler vor. Ist P = 1, dann liegt entweder ein 1-Bit oder ein 3-Bitfehler vor. Weiterhin kann die Determinante Det (M(3)) bestimmt werden. Ist Det (M(3)) = 1, liegt ein 3-Bitfehler vor, ist Det (M(3)) = 0, liegt ein 1-Bitfehler vor.
  • Zur Unterscheidung zwischen einem 1-Bitfehler und einem 3-Bitfehler, kann auch geprüft werden, ob s 1 3 = s 3
    Figure DE102015121646B4_0219
    s3 oder ob s 1 3 s 3
    Figure DE102015121646B4_0220
    s3 gilt. Ist s 1 3 = s 3 ,
    Figure DE102015121646B4_0221
    liegt ein 1-Bitfehler vor, ist s 1 3 s 3 ,
    Figure DE102015121646B4_0222
    s3, liegt ein 3-Bitfehler vor.
  • Ein bestimmtes Fehlermuster kann beispielsweise in einem Speicher dadurch verursacht werden, dass eine Speicherzelle, die mehr als ein Bit speichern kann, fehlerhaft ist. Es ist möglich, dass eine Speicherzelle vier unterschiedliche Werte speichern kann, indem sie vier verschiedene Zustände annimmt. Beispielsweise werden die Zustände mit 0, 1, 2, 3 bezeichnet, die binär als 00, 01, 10, 11 bereitgestellt werden können. Wird der interne Zustand 2 (binär 10) der Speicherzelle in den Zustand 1 (binär 01) verfälscht, tritt ein benachbarter 2-Bitfehler auf, da die korrekte binäre Ausgabe 10 in die fehlerhafte Ausgabe 01 verfälscht wird. Wird der interne Zustand 3 in den internen Zustand 0 gestört, tritt ebenfalls ein benachbarter 2-Bitfehler auf, weil anstelle von des binären Werts 11 der binäre Wert 00 ausgegeben wird. Die fehlerhaften Bits sind benachbart. Es ist auch möglich beispielsweise durch eine Vertauschung der Ausgangsleitungen zu erreichen, dass anstelle eines Fehlermusters [2,1] ein Fehlermuster [2,3] oder ein anderes Fehlermuster entsteht.
  • Sind zwei Speicherzellen gleichzeitig fehlerhaft, sind die folgenden Bitfehler möglich:
    • - Beide Speicherzellen verursachen einen 1-Bitfehler. Es ist dann ein 2-Bitfehler mit beliebigen Bitpositionen zu korrigieren.
    • - Eine erste Speicherzelle verursacht einen benachbarten 2-Bitfehler und damit ein Fehlermuster [2; 1]. Die zweite Speicherzelle verursacht einen 1-Bitfehler. Es tritt ein 3-Bitfehler in zwei benachbarten Bits und einer beliebigen Bitposition auf.
    • - Beide Speicherzellen verursachen einen benachbarten 2-Bitfehler, jeweils mit dem Fehlermuster [2; 1] und das Fehlermuster [2; 1] ist in dem Fehlervektor zweimal vorhanden.
  • Ein Code, der beliebige τ-Bitfehler mit 1 ≤ τ ≤ 3 korrigiert und einen 4-Bitfehler aus K = 2 Fehlermustern aus M = 2 Bits korrigiert, korrigiert alle beschriebenen Fehler.
  • Dabei wird beispielhaft angenommen, dass 4-Bitfehler mit jeweils zwei benachbarten 2-Bitfehlern, die durch zwei fehlerhafte Speicherzellen hervorgerufen werden, häufiger auftreten als beliebige 4-Bitfehler, bei denen mindesten 3 Speicherzellen gleichzeitig fehlerhaft sind.
  • Beispiel im Galoisfeld GF(2m) mit m = 5
  • Für die Ausführungsbeispiele wird beispielhaft m = 5 gewählt, so dass das zugrundeliegende Galoisfeld GF(2m) = GF(25) = GF(32) insgesamt 32 Elemente umfasst.
  • Elemente des Galoisfelds GF(32) sind in ihren verschiedenen Darstellungsformen in 1 dargestellt. Das Modularpolynom des Galoisfelds GF(32) ist das Polynom p ( x ) = 1 + x 2 + x 5 .
    Figure DE102015121646B4_0223
  • Die erste Spalte der in 1 gezeigten Tabelle umfasst die Elemente αi ≠ 0 des GF(25) für i = 0,1,...,30 in Exponentendarstellung (auch bezeichnet als Exponentialdarstellung). Das Nullelement des Körpers besitzt keine Exponentendarstellung. In der zweiten Spalte der Tabelle sind alle Elemente in ihrer Polynomdarstellung für das zugehörige Modularpolynom p(x) aufgelistet. Die dritte Spalte der Tabelle zeigt die Tupel- oder Vektordarstellung der Elemente des GF(25). Die Vektordarstellung eines Elementes kann direkt aus der Polynomdarstellung abgelesen werden. Die fünf Komponenten der Vektordarstellung entsprechen dabei von links nach rechts den Koeffizienten der zugehörigen Potenzen x 0 , x 1 , x 2 , x 3 , x 4
    Figure DE102015121646B4_0224
    in der Polynomdarstellung.
  • Die entsprechende Polynomdarstellung ergibt sich aus der Potenzdarstellung αi, indem [xi modulo (1 +x2 +x5)] bestimmt wird. Beispielsweise ist die Polynomdarstellung von α5 gleich 1 + x2, da x 5   m o d u l o ( 1 + x 2 + x 5 ) = 1 + x 2
    Figure DE102015121646B4_0225
    gilt.
  • Die Multiplikation zweier Elemente des Galoisfelds kann in der Exponentendarstellung oder in der Polynomdarstellung vorgenommen werden. Sind zwei Elemente des Galoisfelds GF(2m) = GF(25) in der Exponentendarstellung αi und αj gegeben, ergibt sich deren Produkt zu: α i α j = α k mit k= ( i + j ) m o d u l o ( 2 m 1 ) = ( i + j ) m o d u l o   31.
    Figure DE102015121646B4_0226
  • Liegen die zu multiplizierenden Elemente des Galoisfelds in ihrer Vektordarstellung oder in ihrer Polynomdarstellung vor, kann ihre Multiplikation mit einem Galoisfeld-Multiplizierer vorgenommen werden. Nachfolgend wird beispielhaft die Multiplikation zweier Elemente in ihrer Polynomdarstellung beschrieben. Um zwei Elemente, die als Elemente des Galoisfelds GF(2m) = GF(25) in ihrer Polynomdarstellung gegeben sind, miteinander zu multiplizieren, dann sind die Polynome direkt in der üblichen Weise miteinander zu multiplizieren, und das Ergebnis ist modulo des Modularpolynoms zu bestimmen.
  • Sind beispielsweise die Polynome 1 + x2 + x3 und x + x3 gegeben, so ergibt ihre direkte Multiplikation ( 1 + x 2 + x 3 ) ( x + x 3 ) = x + x 4 + x 5 + x 6 .
    Figure DE102015121646B4_0227
  • Wegen x 5 = 1 + x 2 m o d u l o ( 1 + x 2 + x 5 )
    Figure DE102015121646B4_0228
    und x 6 = x + x 3 m o d u l o ( 1 + x 2 + x 5 )
    Figure DE102015121646B4_0229
    folgt x + x 4 + x 5 + x 6 = x + x 4 + 1 + x 2 + x + x 3 = 1 + x 2 + x 3 + x 4
    Figure DE102015121646B4_0230
  • Somit gilt im Ergebnis: ( 1 + x 2 + x 3 ) ( x + x 3 ) = 1 + x 2 + x 3 + x 4 .
    Figure DE102015121646B4_0231
  • Nachfolgend wird der Fall beschrieben, wonach ein erstes Element a(x) mit a ( x ) = a 4 x 4 + a 3 x 3 + a 2 x 2 + a 1 x + a 0
    Figure DE102015121646B4_0232
    und und ein zweites Element b(x) mit b ( x ) = b 4 x 4 + b 3 x 3 + b 2 x 2 + b 1 x + b 0
    Figure DE102015121646B4_0233
    in dem Galoisfeld GF(25) mit dem Modularpolynom m ( x ) = x 5 + x 2 + 1
    Figure DE102015121646B4_0234
    multipliziert werden. Durch direktes Ausmultiplizieren der Polynome a(x) und b(x) ergibt sich zunächst ein Polynom 8-ten Grades. Mit x 5 m o d u l o ( 1 + x 2 + x 5 ) = 1 + x 2 ,
    Figure DE102015121646B4_0235
    x 6 m o d u l o ( 1 + x 2 + x 5 ) = x + x 3 ,
    Figure DE102015121646B4_0236
    x 7 m o d u l o ( 1 + x 2 + x 5 ) = x 2 + x 4 ,
    Figure DE102015121646B4_0237
    x 8 m o d u l o ( 1 + x 2 + x 5 ) = 1 + x 2 + x 3
    Figure DE102015121646B4_0238
    ergibt sich ein Polynom vierten Grades wie folgt: c 4 x 4 + c 3 x 3 + c 2 x 2 + x 1 x 1 + c 0 = a ( x ) b ( x )  mod  m ( x ) = = ( a 0 b 4 + a 1 b 3 + a 2 b 2 + a 3 b 1 + a 3 b 4 + a 4 b 0 + a 4 b 3 ) x 4 + + ( a 0 b 3 + a 1 b 2 + a 2 b 1 + a 2 b 4 + a 3 b 0 + a 3 b 3 + a 4 b 2 + a 4 b 4 ) x 3 + + ( a 0 b 2 + a 1 b 1 + a 1 b 4 + a 2 b 0 + a 2 b 3 + a 3 b 2 + a 3 b 4 + a 4 b 1 + a 4 b 3 + a 4 b 4 ) x 2 + + ( a 0 b 1 + a 1 b 0 + a 2 b 4 + a 3 b 3 + a 4 b 2 ) x 1 + + ( a 0 b 0 + a 1 b 4 + a 2 b 3 + a 3 b 2 + a 4 b 1 + a 4 b 4 )
    Figure DE102015121646B4_0239
  • Diese Beziehung wird durch einen Galoisfeld-Multiplizierer mit fünf ersten binären Eingängen, fünf zweiten binären Eingängen und fünf binären Ausgängen realisiert. Dies wird nachfolgend näher erläutert.
  • An den ersten fünf Eingängen des Galoisfeld-Multiplizierers liegen die binären Werte a0, a1, a2, a3, a4 und an den zweiten fünf Eingängen liegen die binären Werte b0, b1, b2, b3, b4 an, während an den fünf binären Ausgängen die Werte c0, c1, c2, c3, c4 mit ( a 0 b 0 + a 1 b 4 + a 2 b 3 + a 3 b 2 + a 4 b 1 + a 4 b 4 ) = c 0 ,
    Figure DE102015121646B4_0240
    ( a 0 b 1 + a 1 b 0 + a 2 b 4 + a 3 b 3 + a 4 b 2 ) = c 1
    Figure DE102015121646B4_0241
    ( a 0 b 2 + a 1 b 1 + a 1 b 4 + a 2 b 0 + a 2 b 3 + a 3 b 2 + a 3 b 4 + a 4 b 1 + a 4 b 3 + a 4 b 4 ) = c 2
    Figure DE102015121646B4_0242
    ( a 0 b 3 + a 1 b 2 + a 2 b 1 + a 2 b 4 + a 3 b 0 + a 3 b 3 + a 4 b 2 + a 4 b 4 ) = c 3
    Figure DE102015121646B4_0243
    ( a 0 b 4 + a 1 b 3 + a 2 b 2 + a 3 b 1 + a 3 b 4 + a 4 b 0 + a 4 b 3 ) = c 4
    Figure DE102015121646B4_0244
    ausgegeben werden. Hierbei bezeichnet das Symbol „+“ die Addition modulo 2 (XOR-Operation).
  • Die Implementierung der Gleichungen (27) bis (31) kann mittels eines Galoisfeld-Multiplizierers erfolgen, beispielsweise unter Verwendung von UND-Gattern und XOR-Gatter (Exklusiv-Oder-Gattern). Beispielsweise kann im Rahmen der Implementierung auch ein Synthesetool eingesetzt werden.
  • Wird ein Element des Galoisfelds quadriert, ist es mit sich selbst zu multiplizieren. Ist in der Polynomdarstellung ein Element als Polynom a ( x ) = a 0 + a 1 x 1 + a 2 x 2 + a 3 x 3 + a 4 x 4
    Figure DE102015121646B4_0245
    gegeben, gilt ( a ( x ) ) 2 mod  m ( x ) = = [ a 0 + a 1 x 2 + a 2 x 4 + a 3 x 6 a 4 x 8 ]  mod  ( 1 + x 2 + x 5 ) = = ( a 2 ) x 4 + ( a 3 + a 4 ) x 3 + ( a 1 + a 4 ) x 2 + a 3 x 1 + ( a 0 + a 4 ) .
    Figure DE102015121646B4_0246
  • Das Quadrieren eines Elementes im Galoisfeld GF(25) kann entsprechend mit einem Quadrierer mit fünf binären Eingängen und fünf binären Ausgängen realisiert werden. An seinen fünf binären Eingängen werden die binären Werte a0, a1, a2, a3, a4 zugeführt und an den fünf binären Ausgängen werden die binären Werte d0, d1, d2, d3, d4 bereitgestellt. Es gelten a 0 + a 4 = d 0 ,
    Figure DE102015121646B4_0247
    a 3 = d 1 ,
    Figure DE102015121646B4_0248
    a 1 + a 4 = d 2 ,
    Figure DE102015121646B4_0249
    a 3 + a 4 = d 3 ,
    Figure DE102015121646B4_0250
    a 2 = d 4 ,
    Figure DE102015121646B4_0251
    wobei das Symbol „+“ wieder die Addition modulo 2 (XOR-Verknüpfung) bezeichnet.
  • Zur Realisierung eines Quadrierers in dem Galoisfelds GF(25) mit dem Modularpolynom m(x) = 1 + x2+ x5 können die Gleichungen (32) bis (36) beispielsweise mittels XOR-Gattern implementiert werden.
  • Am Beispiel des Galoisfelds GF(25) wird beschrieben, wie die dritte Potenz eines Elements bestimmt werden kann, das in seiner Polynomdarstellung angegeben ist.
  • Wird die dritte Potenz (a(x))3 eines Polynomes a ( x ) = a 0 + a 1 x 1 + a 2 x 2 + a 3 x 3 + a 4 x 4
    Figure DE102015121646B4_0252
  • Modulo des Modularpolynoms m(x) = 1 + x2+ x5 bestimmt, gilt:   ( a ( x ) ) 3 mod  m ( x ) = = ( a 0 a 2 + a 0 a 4 + a 1 a 2 + a 1 a 3 + a 1 a 4 + a 2 a 3 + a 2 a 4 + a 3 + a 3 a 4 ) x 4 + + ( a 0 a 4 + a 1 + a 2 + a 2 a 3 + a 2 a 4 + a 3 + a 4 ) x 3 + + ( a 0 a 1 + a 0 a 2 + a 0 a 4 + a 1 a 2 + a 2 a 4 + a 3 a 4 + a 4 ) x 2 + + ( a 0 a 1 + a 0 a 3 + a 2 + a 3 + a 3 a 4 + a 4 ) x 1 + + ( a 0 + a 0 a 4 + a 1 a 2 + a 1 a 3 + a 2 a 3 )        
    Figure DE102015121646B4_0253
  • Das Bilden der dritten Potenz eines Elements im Galoisfeld GF(25) kann entsprechend mit einem Dritte-Potenz-Bildner mit fünf binären Eingängen und fünf binären Ausgängen realisiert werden. Den fünf binären Eingängen werden die binären Werte a0, a1, a2, a3, a4 zugeführt und an den fünf binären Ausgängen werden die binären Werte f0, f1, f2, f3, f4 bereitgestellt. Es gilt: f 0 = a 0 + a 0 a 4 + a 1 a 2 + a 1 a 3 + a 2 a 3
    Figure DE102015121646B4_0254
    f 1 = a 0 a 1 + a 0 a 3 + a 2 + a 3 + a 3 a 4 + a 4
    Figure DE102015121646B4_0255
    f 2 = a 0 a 1 + a 0 a 2 + a 0 a 4 + a 1 a 2 + a 2 a 4 + a 3 a 4 + a 4
    Figure DE102015121646B4_0256
    f 3 = a 0 a 4 + a 1 + a 2 + a 2 a 3 + a 2 a 4 + a 3 + a 4
    Figure DE102015121646B4_0257
    f 4 = a 0 a 2 + a 0 a 4 + a 1 a 2 + a 1 a 3 + a 1 a 4 + a 2 a 3 + a 2 a 4 + a 3 + a 3 a 4
    Figure DE102015121646B4_0258
  • Beispielsweise kann ein Dritte-Potenz-Bildner realisiert werden, im vorliegenden Beispiel in dem Galoisfelds GF(25) mit dem Modularpolynom m(x) = 1 + x2+ x5, indem lediglich die Gleichungen (37) bis (41) implementiert werden.
  • Alternativ kann ein Dritte-Potenz-Bildner aus einem Quadrierer und einen nachgeschalteten Galoisfeld-Multiplizierer realisiert werden. Auch können höhere Potenzen des Elements a(x) in entsprechender Weise unter Verwendung geeigneter Bausteine realisiert werden.
  • Eine Implementierung eines Konstanten-Multiplizierers in dem Galoisfeld GF(2m) wird nachfolgend beispielhaft für m = 5 dargestellt. Das Modularpolynom ist m ( x ) = 1 + x 2 + x 5 .
    Figure DE102015121646B4_0259
  • Es sei a ∈ GF(25) ein beliebiges Element des Galoisfelds mit der folgenden Polynomdarstellung a ( x ) = a 0 + a 1 x + a 2 x 2 + a 3 x 3 + a 4 x 4 .
    Figure DE102015121646B4_0260
  • Als zu multiplizierende Konstante wird beispielhaft α9 gewählt, deren Polynomdarstellung gemäß der in 1 gezeigten Tabelle mit α 9 ( x ) = x + x 3 + x 4
    Figure DE102015121646B4_0261
    gegeben ist. Als Multiplikation ergibt sich a ( x ) α 9 ( x )   m o d u l o   ( 1 + x 2 + x 5 ) = b 0 + b 1 x + b 2 x 2 + b 3 x 3 + b 4 x 4
    Figure DE102015121646B4_0262
    mit b 0 = a 1 + a 2 .
    Figure DE102015121646B4_0263
    b 1 = a 0 + a 2 + a 3 ,
    Figure DE102015121646B4_0264
    b 2 = a 2 + a 3 + a 4 ,
    Figure DE102015121646B4_0265
    b 3 = a 0 + a 3 + a 4 ,
    Figure DE102015121646B4_0266
    b 4 = a 0 + a 1 + a 4 .
    Figure DE102015121646B4_0267
  • Die Ausgabewerte b0, ... , b4 werden aus den Eingabewerten a0, ..., a4 entsprechend der in den Gleichungen (45) bis (49) dargestellten Beziehungen abgeleitet, so dass die Ausgabewerte durch XOR-Verknüpfungen aus den Eingabewerten bestimmt sind. Hierbei bezeichnet das Symbol „+“ die Addition modulo 2 (XOR-Operation). Entsprechend kann der Multiplizierer mittels XOR-Gatter realisiert werden.
  • Beispiel: Korrektur spezieller 4-Bitfehler, die sich aus zwei benachbarten 2-Bitfehlern zusammensetzen
  • Nachfolgend wird gezeigt, wie unter Verwendung eines BCH-Codes zur Korrektur beliebiger 1-Bit-, 2-Bit- und 3-Bitfehler, eine Korrektur spezieller 4-Bitfehler erfolgen kann, die sich aus zwei benachbarten 2-Bitfehlern zusammensetzen. Eine nachfolgende Gleichung (50) stellt beispielhaft eine Prüfmatrix eines 3-Bitfehler korrigierenden BCH-Codes mit einbezogener Gesamtparität für m = 5 und n = 31 dar, wobei der BCH-Code eine minimale Hamming-Distanz dmin = 8 aufweist: H = [ H 1 H 3 H 5 P ] = [ α 0 α 0 α 0 α 0 α 0 α 3 0 α 3 1 α 3 2 α 3 ( 29 ) α 3 ( 30 ) α 5 0 α 5 1 α 5 2 α 5 ( 29 ) α 5 ( 30 ) 1 1 1 1 1 ]
    Figure DE102015121646B4_0268
  • Die Potenzen von αi sind dabei modulo (25 - 1) = 31 zu interpretieren. Die letzte Zeile der H-Matrix (50) besteht aus lauter Einsen. Durch diese Zeile ist die Gesamtparität P bestimmt. In der nachfolgend dargestellten Gleichung (51) sind zur verbesserten Übersichtlichkeit die einzelnen Elemente der Teilmatrizen H1, H3 und H5 nur anhand ihre Potenz dargestellt: H 1 = [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ]
    Figure DE102015121646B4_0269
    H 3 = [ 0 3 6 9 12 15 18 21 24 27 30 2 5 8 11 14 17 20 23 26 29 1 4 7 10 13 16 19 22 25 28 ]
    Figure DE102015121646B4_0270
    H 5 = [ 0 5 10 15 20 25 30 4 9 14 19 24 29 3 8 13 18 23 28 2 7 12 17 22 27 1 6 11 16 21 26 ]
    Figure DE102015121646B4_0271
  • Unter Berücksichtigung der in 1 gezeigten Tabelle kann eine binäre Prüfmatrix H aufgestellt werden, indem die in der Gleichung (51) für H1, H3 und H5 gezeigten Potenzen der Elemente durch ihre zugehörige Vektordarstellung als Spaltenvektoren ersetzt werden. Damit ergibt sich eine binäre Prüfmatrix H zu
    Figure DE102015121646B4_0272
  • 2 zeigt eine Schaltungsanordnung bestehend aus einem Syndromgenerator SG 11 mit n = 31 binären Eingängen und 3 · 5 + 1 = 16 binären Ausgängen, einer Fehler- erkennungseinheit FE 12 mit (3·5 + 1) = 16 binären Eingängen und 4 binären Ausgängen, Konstantenmultiplizierern 131, 132, 133 mit jeweils 5 binären Eingängen und 5 binären Ausgängen, Multiplexern 141, 142, 143 mit jeweils (2·5 + 1) = 11 binären Eingängen und 5 binären Ausgängen, einem BCH-Decoder DEC BCH 15 mit (3·5) = 15 binären Eingängen und n = 31 binären Ausgängen, UND-Gattern 161, 162, ..., 1630 mit jeweils 2 binären Eingängen und einem binären Ausgang, ODER-Gattern 171, 172, ..., 1730 mit jeweils 2 binären Eingängen und einem binären Ausgang und XOR-Gattern 181, 182, ..., 1831 mit jeweils 2 binären Eingängen und einem binären Ausgang.
  • Der Syndromgenerator SG 11 weist n = 31 binäre Eingänge auf, an denen das möglicherweise fehlerhafte Binärwort v ' = ( v 0 ' , v 1 ' , , v 30 ' )
    Figure DE102015121646B4_0273
    anliegt. An seinem (3 · 5+ 1)-Bit breiten Ausgang gibt der Syndromgenerator SG 11 ein Fehlersyndrom s = (s1, s3, s5, sp) der Wortbreite (3·5 + 1) aus. Dabei ist der Syndromgenerator SG 11 so konfiguriert, dass er die Teilsyndrome des Fehlersyndroms s auf Basis der Prüfmatrix H gemäß Gleichung (52) so bestimmt, dass gilt: s 1 T = H 1 ( v ' ) T , s 3 T = H 3 ( v ' ) T , s 5 T = H 5 ( v ' ) T , s p = P ( v ' ) T = v 0 ' + v 1 ' + + v 30 ' .
    Figure DE102015121646B4_0274
  • Für i = 1, 2, 3 sind die i-ten 5 binären Ausgänge des Syndromgenerators SG 11, die das Teilsyndrom s2i-1 tragen, in die i-ten 5 binären Eingänge der Fehlererkennungseinheit FE 12, in den 5-Bit breiten 0-Eingang des Multiplexers MUX 14i und in den 5-Bit breiten Eingang des Konstantenmultiplizierers 13i geführt.
  • Der Konstantenmultiplizierer 13i ist so konfiguriert, dass er ein modifiziertes Teilsyndrom s 2 i 1 m o d = s 2 i 1 ( 1 + α 2 i 1 ) 1
    Figure DE102015121646B4_0275
    an seinen 5 binären Ausgängen erzeugt, die in den 5-Bit breiten 1-Eingang des Multiplexers MUX 14i geführt sind. Der 5-Bit breite Ausgang des Multiplexers MUX 14i ist mit den i-ten 5 binären Eingängen des BCH-Decoders DEC BCH 15 verbunden.
  • Der BCH-Decoder DEC BCH 15 erzeugt auf Basis der Syndromkomponenten s1, s3 und s5 einen Korrekturvektor e = (e0, e1,...., e30) an seinen 31 binären Ausgängen. Dabei ist der BCH-Decoder DEC BCH 15 so konfiguriert, dass, wenn die an den Eingängen bereitgestellten Teilsyndrome s1, s3 und s5 dem Fehlersyndrom eines i-Bitfehlers in den Bitpositionen b1, b2,..., bi mit 0 ≤ b1 < b2 < ... < bi30 entsprechen, ein Korrekturvektor e = (e0, e1,..., e30) erzeugt wird, der in den Komponenten eb 1 , eb 2 ,...,eb i , eine binäre 1 in allen anderen Komponenten eine binäre 0 aufweist. Zeigen die Teilsyndrome keinen Fehler an und gilt s1 = s3 = s5 = 0, so wird ein Korrekturvektor e = (e0, e1,..., e30) = (0, 0,..., 0) an den Ausgängen des BCH-Decoders DEC BCH 15 erzeugt.
  • Der binäre Ausgang des Syndromgenerators SG 11, der das 1-Bit breite Teilsyndrom sp trägt, ist mit einem binären Eingang der Fehlererkennungseinheit FE 12 verbunden.
  • Die Fehlererkennungseinheit FE 12 ist so konfiguriert, dass in Abhängigkeit von den an ihren Eingängen anliegenden Teilsyndromen s1, s3, s5, sp vier 1-Bit breite Fehlererkennungssignale deti für i = 1,2,3,4 an ihren Ausgängen ausgegeben werden, wobei deti genau dann 1 ist, wenn das binäre Wort v' durch einen i-Bitfehler gestört ist. Die Fehlererkennung kann in diesem Beispiel durch Berechnung der Determinante D e t ( M ( 4 ) ) = D e t   ( 1 0 0 0 s 2 s 1 1 0 s 4 s 3 s 2 s 1 s 6 s 5 s 4 s 3 ) = D e t   ( s 1 1 0 s 3 s 2 s 1 s 5 s 4 s 3 )
    Figure DE102015121646B4_0276
    erfolgen, wobei s = (s1, s3, s5, sp) ≠ 0 angenommen wird. Es folgt: D e t ( M ( 4 ) ) = s 1 s 2 s 3 + s 1 s 5 + s 1 2 s 4 + s 3 2 = s 1 3 s 3 + s 1 s 5 + s 1 6 + s 3 2 .
    Figure DE102015121646B4_0277
  • Gilt Det ( M ( 4 ) ) 0
    Figure DE102015121646B4_0278
    so ist das gestörte (bzw. fehlerhafte) Binärwort v' durch einen 3-Bitfehler oder einen 4-Bitfehler gestört. Ist sp = 1, handelt es sich um einen 3-Bitfehler; ist sp = 0, handelt es sich um einen 4-Bitfehler.
  • Gilt Det ( M ( 4 ) ) = 0,
    Figure DE102015121646B4_0279
    so liegt ein 1-Bitfehler oder ein 2-Bitfehler vor. Ist sp = 1, handelt es sich um einen 1-Bitfehler; ist sp = 0, handelt es sich um einen 2-Bitfehler.
  • Für die vier Fehlererkennungssignale deti gilt somit:
    • - det1 = 1 genau dann, wenn s 1 3 s 3 + s 1 s 5 + s 1 6 + s 3 2 = 0,   s p = 1
      Figure DE102015121646B4_0280
    • - det2 = 1 genau dann, wenn s 1 3 s 3 + s 1 s 5 + s 1 6 + s 3 2 = 0,   s p = 0  und  s 0
      Figure DE102015121646B4_0281
    • - det3 = 1 genau dann, wenn s 1 3 s 3 + s 1 s 5 + s 1 6 + s 3 2 0,   s p = 1
      Figure DE102015121646B4_0282
    • - det4 = 1 genau dann, wenn s 1 3 s 3 + s 1 s 5 + s 1 6 + s 3 2 0,   s p = 0
      Figure DE102015121646B4_0283
  • Der algebraische Ausdruck s 1 3 s 3 + s 1 s 5 + s 1 6 + s 3 2
    Figure DE102015121646B4_0284
    kann mittels Galoisfeldmultiplizierern, komponentenweiser XOR-Verknüpfungen und/oder Potenzbildnern im Galoisfeld implementiert werden.
  • Ein binärer Ausgang der Fehlererkennungseinheit trägt das Signal det4 zur 4-Bitfehler-Erkennung und wird sowohl mit einem jeweils zweiten 1-Bit breiten Eingang der UND-Gatter 161, 162, ..., 1630 verbunden, als auch in den jeweils 1-Bit breiten Kontrolleingang der Multiplexer MUX 141, 142 und 143 geführt.
  • Der erste Ausgang des BCH-Decoders DEC BCH 15 trägt die binäre Komponente e0 des Korrekturvektors und ist in einen zweiten binären Eingang des XOR-Gatters 181 und in den ersten Eingang des UND-Gatters 161 geführt, wobei der Ausgang des UND-Gatters 161 mit einem ersten Eingang des ODER-Gatters 171 verbunden ist. Die erste binäre Komponente v 0 '
    Figure DE102015121646B4_0285
    des möglicherweise fehlerhaften Wortes v' liegt am ersten Eingang des XOR-Gatters 181 an, an dessen Ausgang die erste Komponente v 0 c o r
    Figure DE102015121646B4_0286
    des korrigierten Wortes vcor erzeugt wird.
  • Für i = 2,3,..., 30 trägt der i-te Ausgang des BCH-Decoders DEC BCH 15 die binäre Komponente ei-1 des Korrekturvektors und ist in einen zweiten Eingang des ODER-Gatters 17(i-1) und in den ersten Eingang des UND-Gatters 16i geführt, wobei der Ausgang des UND-Gatters 16i mit einem ersten Eingang des ODER-Gatters 17i verbunden ist. Der Ausgang des ODER-Gatters 17(i - 1) ist mit dem zweiten Eingang des XOR-Gatters 18i verbunden, wobei an dessen ersten Eingang die i-te Komponente v i 1 '
    Figure DE102015121646B4_0287
    des Wortes v' anliegt. Die i-te Komponente v i 1 c o r
    Figure DE102015121646B4_0288
    des korrigierten Wortes wird am binären Ausgang des XOR-Gatters 18i ausgegeben.
  • Der letzte Ausgang des BCH-Decoders DEC BCH 15 trägt die binäre Komponente e30 und ist mit dem zweiten Eingang des ODER-Gatters 1730 verbunden. Der Ausgang des ODER-Gatters 1730 ist in einen zweiten Eingang des XOR-Gatters 1831 geführt, an dessen erstem Eingang die binäre Komponente v 30 '
    Figure DE102015121646B4_0289
    des Wortes v' anliegt. Der Ausgang des XOR-Gatters 1831 trägt das Signal v 30 c o r .
    Figure DE102015121646B4_0290
  • Hierbei sei angemerkt, dass die Notation 16i mit i = 1,... ,30 meint, dass 30 UND-Gatter vorgesehen sind, die die Bezugszeichen 161,162,163, ,169,1610,1611, ,1629,1630
    Figure DE102015121646B4_0291
    tragen. Insoweit stellt die Ziffernfolge 16 einen ersten Teil des Bezugszeichen, der mit einem zweiten Teil i des Bezugszeichens verkettet (konkateniert) wird. Dies gilt entsprechend für die ODER-Gatter 17i sowie die XOR-Gatter 18i.
  • Liegt ein 1-Bitfehler, 2-Bitfehler oder 3-Bitfehler vor, ist det4 = 0 und die 0-Eingänge der Multiplexer MUX 141, 142 und 143, die die unveränderten Teilsyndrome s1, s3, s5 tragen, werden an die zugehörigen Eingänge des BCH-Decoders DEC BCH 15 weitergeleitet.
  • Liegt ein 4-Bitfehler vor, ist det4 = 1 und die 1-Eingänge der Multiplexer MUX 141, 142 und 143, die die modifizierten Teilsyndrome s 1 m o d , s 3 m o d , s 5 m o d
    Figure DE102015121646B4_0292
    tragen, werden an die zugehörigen Eingänge des BCH-Decoders DEC BCH 15 weitergeleitet.
  • Im Falle eines 4-Bitfehlers, der sich aus zwei benachbarten 2-Bitfehlern zusammensetzt, ist das binäre Wort v' in vier Bitpositionen i, (i + 1) und j, (j + 1) für i, j ∈ {0,1,..., 29} gestört. Der Syndromgenerator SG 11 erzeugt dann an seinen Ausgängen das Fehlersyndrom s = ( s 1 s 3 s 5 s p ) = ( α i + α ( i + 1 ) + α j + α ( j + 1 ) α 3 i + α 3 ( i + 1 ) + α 3 j + α 3 ( j + 1 ) α 5 i + α 5 ( i + 1 ) + α 5 j + α 5 ( j + 1 ) 0 )               = ( α i ( 1 + α ) + α j ( 1 + α ) α 3 i ( 1 + α 3 ) + α 3 j ( 1 + α 3 ) α 5 i ( 1 + α 5 ) + α 5 j ( 1 + α 5 ) 0 ) ,
    Figure DE102015121646B4_0293
    dessen Teilsyndrome s1, s3 und s5 durch die Konstantenmultiplizierer 131, 132 und 133 modifiziert werden. Die Konstantenmultiplizierer 131, 132 und 133 sind so konfiguriert, dass die unveränderten Teilsyndrome s1, s3 und s5, die dem Fehlersyndrom eines 4-Bitfehlers in den Bitpositionen [i, (i + 1), j, (j + 1)] entsprechen, auf die modifizierten Teilsyndrome s 1 m o d , s 3 m o d  und  s 5 m o d
    Figure DE102015121646B4_0294
    abgebildet werden, die dem Fehlersyndrom eines 2-Bitfehlers in den Bitpositionen [i, j] entsprechen, wie das in den nachfolgenden Gleichungen gezeigt ist: s 1 m o d = s 1 ( 1 + α ) 1 = α i ( 1 + α ) + α j ( 1 + α ) 1 + α = α i + α j s 3 m o d = s 3 ( 1 + α 3 ) 1 = α 3 i ( 1 + α 3 ) + α 3 j ( 1 + α 3 ) 1 + α 3 = α 3 i + α 3 j s 5 m o d = s 5 ( 1 + α 5 ) 1 = α 5 i ( 1 + α 5 ) + α 5 j ( 1 + α 5 ) 1 + α 5 = α 5 i + α 5 j
    Figure DE102015121646B4_0295
  • Beispiel: Korrektur spezieller 4-Bitfehler, die sich aus zwei benachbarten 2-Bitfehlern in ungeraden Bitpositionen zusammensetzen
  • In einem weiteren Beispiel wird gezeigt, wie unter Verwendung eines BCH-Codes zur Korrektur beliebiger 1-Bitfehler, 2-Bitfehler und 3-Bitfehler eine Korrektur spezieller 4-Bitfehler erfolgen kann, die sich aus zwei benachbarten 2-Bitfehlern in ungeraden Bitpositionen zusammensetzen.
  • 3 zeigt eine schematische Schaltungsanordnung, die weitgehend der in 2 gezeigten Schaltungsanordnung entspricht. Im Unterschied zu 2 entfallen in 3 für j = 2,4,6,...,30 die UND-Gatter 16j und die ODER-Gatter 17j. Der 1-Bit breite Ausgang det4 der Fehlererkennungseinheit FE 12 ist somit nur mit dem ersten Eingang der UND-Gatter 16(j - 1) verbunden.
  • Für i = 1,3,5,...,29 trägt der i-te Ausgang des BCH-Decoders DEC BCH 15 die binäre Komponente ei-1 des Korrekturvektors und ist in einen zweiten Eingang des XOR-Gatters 18i und in den ersten Eingang des UND-Gatters 16i geführt, wobei der Ausgang des UND-Gatters 16i mit dem ersten Eingang des ODER-Gatters 17i verbunden ist. Während am ersten Eingang des XOR-Gatters 18i die i-te Komponente v i 1 '
    Figure DE102015121646B4_0296
    des gestörten binären Wortes v' anliegt, wird an dessen Ausgang die i-te Komponente v i 1 c o r
    Figure DE102015121646B4_0297
    des korrigierten Wortes erzeugt.
  • Der (i + 1)-te Ausgang des BCH-Decoders DEC BCH 15 trägt die binäre Komponente ei des Korrekturvektors und ist in den zweiten Eingang des ODER-Gatters 17i geführt.
  • Der Ausgang des ODER-Gatters 17i ist mit dem zweiten Eingang des XOR-Gatters 18(i + 1) verbunden, wobei an dessen ersten Eingang die (i +1)-te Komponente v i '
    Figure DE102015121646B4_0298
    des Wortes v' anliegt. Die (i + 1)-te Komponente v i c o r
    Figure DE102015121646B4_0299
    des korrigierten Wortes wird am binären Ausgang des XOR-Gatters 18(i + 1) ausgegeben.
  • Der letzte Ausgang des BCH-Decoders DEC BCH 15 trägt die binäre Komponente e30 und ist mit dem zweiten Eingang des XOR-Gatters 1831 verbunden, an dessen erstem Eingang die binäre Komponente v 30 '
    Figure DE102015121646B4_0300
    des Wortes v' anliegt. Der Ausgang des XOR-Gatters 1831 trägt das Signal v 30 c o r .
    Figure DE102015121646B4_0301
  • Durch die vorgenommenen Änderungen an der Schaltungsanordnung von 3 können derartige 4-Bitfehler korrigiert werden, die sich aus zwei benachbarten 2-Bitfehlern zusammensetzen, und das binäre Wort v' in den vier Bitpositionen i, (i + 1), j, (j + 1) für i, j ∈ {0,2,...,28} stören.
  • Die Schaltungsanordnung gemäß 3 erfordert einen geringeren Schaltungsaufwand als die in 2 gezeigte Schaltungsanordnung. Die Schaltungsanordnung gemäß 3 setzt voraus, dass benachbarte 2-Bitfehler nur an bestimmten Bitpositionen auftreten. Dies ist beispielsweise dann der Fall, wenn Speicherzellen verwendet werden, bei denen vier verschiedene interne Zustände unterschieden werden können. Ein Fehler des internen Zustandes kann zu einem benachbarten 2-Bitfehler in den beiden Bitpositionen führen, die der fehlerhaften Speicherzelle entsprechen.
  • Beispiel: Korrektur spezieller 6-Bitfehler, die aus drei benachbarten 2-Bitfehlern bestehen
  • Nachfolgend wird veranschaulicht, wie unter Verwendung eines 5-Bitfehler korrigieren BCH-Codes eine Korrektur spezieller 6-Bitfehler erfolgen kann, die sich aus drei benachbarten 2-Bitfehlern zusammensetzen. In Gleichung (58) ist die Prüfmatrix eines 5-Bitfehler korrigierenden BCH-Codes mit einbezogener Gesamtparität in separierter Form für m = 5 und n = 31 dargestellt, wobei der verwendete BCH-Code eine minimale Hamming-Distanz dmin = 12 aufweist. H = [ H 1 H 3 H 5 H 7 H 9 P ] = [ α 0 α 1 α 2 α 29 α 30 α 3 0 α 3 1 α 3 2 α 3 ( 29 ) α 3 ( 30 ) α 5 0 α 5 1 α 5 2 α 5 ( 29 ) α 5 ( 30 ) α 7 0 α 7 1 α 7 2 α 7 ( 29 ) α 7 ( 30 ) α 9 0 α 9 1 α 9 2 α 9 ( 29 ) α 9 ( 30 ) 1 1 1 1 1 ]
    Figure DE102015121646B4_0302
  • Die Potenzen von αi sind dabei modulo (25 - 1) = 31 zu interpretieren. Die letzte Zeile der H-Matrix (58) besteht aus lauter Einsen. Durch diese Zeile ist die Gesamtparität P bestimmt.
  • Zur besseren Übersichtlichkeit sind die einzelnen Elemente der Teilmatrizen H1, H3, H5, H7 und H9 in der nachfolgenden Gleichung (59) durch ihre Potenz dargestellt. H 1 = [ 0  1  2   3   4   5   6   7   8   9   10   11    12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30 ] H 3 = [ 0   3   6   9   12   15   18   21   24   27   30   2   5   8   11   14   17   20   23   26   29   1   4   7   10   13   16   19   22   25   28 ] H 5 = [ 0   5   10   15   20   25   30   4   9   14   19   24   29  3  8   13   18   23   28   2   7   12   17   22   27   1   6   11   16   21   26 ] H 7 = [ 0   7   14   21   28   4   11   18   25   1   8   15   22   29   5   12   19   26   2   9   16   23   30   6   13   20   27   3  10  17   24 ] H 9 = [ 0   9   18   27   5   14   23   1   10   19   28   6   15   24   2   11   20   29   7   16   25   3   12   21   30   8   17   26   4   13   22 ]
    Figure DE102015121646B4_0303
  • Unter Verwendung der in 1 gezeigten Tabelle kann die binäre Prüfmatrix H aufgestellt werden, indem die in Gleichung (59) für die Teilmatrizen H1, H3, H5, H7 und H9 vorhandenen Potenzen der Elemente durch ihre zugehörige Vektordarstellung als Spaltenvektoren ersetzt werden. Die binäre Prüfmatrix H ergibt sich dann zu
    Figure DE102015121646B4_0304
  • 4 zeigt eine Schaltungsanordnung umfassend einen Syndromgenerator SG 41 mit n = 31 binären Eingängen und (5·5 + 1 = 26) binären Ausgängen, eine Fehlererkennungseinheit FE 42 mit (5·5 + 1 = 26) binären Eingängen und einem binären Ausgang, Konstantenmultiplizierer 431 bis 435 mit jeweils 5 binären Eingängen und 5 binären Ausgängen, Multiplexer MUX 441 bis 445 mit jeweils (2·5 + 1) = 11 binären Eingängen und 5 binären Ausgängen, einen BCH-Decoder DEC BCH 45 mit (5 · 5) = 25 binären Eingängen und n = 31 binären Ausgängen, 30 UND-Gatter 461 bis 4630 mit jeweils 2 binären Eingängen und einem binären Ausgang, 30 ODER-Gatter 471 bis 4730 mit jeweils 2 binären Eingängen und einem binären Ausgang und 31 XOR-Gatter 481 bis 4831 mit jeweils 2 binären Eingängen und einem binären Ausgang.
  • Der Syndromgenerator SG 41 weist n = 31 binäre Eingänge auf, in die das möglicherweise fehlerhafte Binärwort v ' = ( v 0 ' , v 1 ' , , v 30 ' )
    Figure DE102015121646B4_0305
    geführt ist. An seinem 26-Bit breiten Ausgang gibt der Syndromgenerator SG 41 ein Fehlersyndrom s = ( s 1 , s 3 , s 5 , s 9 , s p )
    Figure DE102015121646B4_0306
    der Wortbreite (5·5 + 1) aus. Dabei ist der Syndromgenerator SG 41 so konfiguriert, dass er die Komponenten des Fehlersyndroms s auf Basis der Prüfmatrix H gemäß der Gleichung (60) so bestimmt, dass gilt: s 1 T = H 1 ( v ' ) T s 3 T = H 3 ( v ' ) T      s 9 T = H 9 ( v ' ) T s p = P ( v ' ) T = v 0 ' + v 1 ' + + v 30 '
    Figure DE102015121646B4_0307
  • Für i = 1, 2,..., 5 sind die i-ten 5 binären Ausgänge des Syndromgenerators SG 41, die das Teilsyndrom s2i-1 tragen, in die i-ten 5 binären Eingänge der Fehlererkennungseinheit FE 42, in den 5-Bit breiten 0-Eingang des Multiplexers MUX 44i und in den 5-Bit breiten Eingang des Konstantenmultiplizierers 43i geführt.
  • Der Konstantenmultiplizierer 43i ist so konfiguriert, dass er ein modifiziertes Teilsyndrom s 2 i 1 m o d = s 2 i 1 ( 1 + α 2 i 1 ) 1
    Figure DE102015121646B4_0308
    an seinen 5 binären Ausgängen erzeugt, die in den 5-Bit breiten 1-Eingang des Multiplexers MUX 44i geführt sind. Der 5-Bit breite Ausgang des Multiplexers MUX 44i ist mit den i-ten 5 binären Eingängen des BCH-Decoders DEC BCH 45 verbunden.
  • Der BCH-Decoder DEC BCH 45 erzeugt auf Basis der Syndromkomponenten s1, s3, ..., s9 einen Korrekturvektor e = (e0, e1,...,e30) an seinen 31 binären Ausgängen. Dabei ist der BCH-Decoder DEC BCH 45 so konfiguriert, dass, wenn die an den Eingängen bereitgestellten Teilsyndrome dem Fehlersyndrom eines i-Bitfehlers in den Bitpositionen b1, b2,..., bi mit 0 ≤ b1 < b2 < ··· < bi30 entsprechen, ein Korrekturvektor e = (e0, e1,...,e30) erzeugt wird, der in den Komponenten eb 1 , eb 2 ,... ,eb i . eine binäre 1 und in allen anderen Komponenten eine binäre 0 aufweist. Zeigen die Teilsyndrome keinen Fehler an und gilt s1 = s3 = ··· = s9 = 0, so wird ein Korrekturvektor e = (e0,e2, ..., e30) = (0, 0,..., 0) an den Ausgängen des BCH-Decoders DEC BCH 45 erzeugt.
  • Der binäre Ausgang des Syndromgenerators SG 41, der das 1-Bit breite Teilsyndrom sp trägt, ist mit einem binären Eingang der Fehlererkennungseinheit FE 42 verbunden.
  • Die Fehlererkennungseinheit FE 42 ist so konfiguriert, dass in Abhängigkeit von den Teilsyndromen s1, s3, ..., s9, sp ein 1-Bit breites Fehlererkennungssignal det6 an ihrem Ausgang erzeugt wird, wobei det6 genau dann 1 ist, wenn das binäre Wort v' durch einen 6-Bitfehler gestört ist. Die Fehlererkennung kann in diesem Beispiel durch Berechnung der Determinante D e t ( M ( 6 ) ) = D e t ( 1 0 0 0 0 0 s 2 s 1 1 0 0 0 s 4 s 3 s 2 s 1 1 0 s 6 s 5 s 4 s 3 s 2 s 1 s 8 s 7 s 6 s 5 s 4 s 3 s 10 s 9 s 8 s 7 s 6 s 5 ) = D e t ( s 1 1 0 0 0 s 3 s 2 s 1 1 0 s 5 s 4 s 3 s 2 s 1 s 7 s 6 s 5 s 4 s 3 s 9 s 8 s 7 s 6 s 5 )
    Figure DE102015121646B4_0309
    erfolgen. Gilt Det ( M ( 6 ) ) 0,
    Figure DE102015121646B4_0310
    so ist das gestörte Binärwort v' durch einen 5-Bitfehler oder durch einen 6-Bitfehler gestört. Ist sp = 1, handelt es sich um einen 5-Bitfehler; ist sp = 0, handelt es sich um einen 6-Bitfehler.
  • Für das Fehlererkennungssignal det6 gilt entsprechend:
    • - det6 = 1 genau dann, wenn Det ( M ( 6 ) ) 0  und  s p = 0.
      Figure DE102015121646B4_0311
  • Der algebraische Ausdruck, der sich durch die Entwicklung der Determinante Det ( M ( 6 ) )
    Figure DE102015121646B4_0312
    ergibt, kann mit Hilfe von Galoisfeldmultiplizierern, komponentenweiser XOR-Verknüpfungen und/oder Potenzbildnern im Galoisfeld implementiert und mit Hilfe von Synthesetools optimiert werden.
  • Der Ausgang der Fehlererkennungseinheit FE 42 trägt das Signal det6 zur 6-Bitfehler-Erkennung und wird sowohl mit einem jeweils zweiten 1-Bit breiten Eingang der UND-Gatter 461, 462, ..., 4630 verbunden, als auch in den jeweils 1-Bit breiten Kontrolleingang der Multiplexer MUX 441, 442, ..., 445 geführt.
  • Der erste Ausgang des BCH-Decoders DEC BCH 45 trägt die binäre Komponente e0 des Korrekturvektors und ist in einen zweiten binären Eingang des XOR-Gatters 481 und in einen ersten Eingang des UND-Gatters 461 geführt, wobei der Ausgang des UND-Gatters 461 mit einem ersten Eingang des ODER-Gatters 471 verbunden ist. Die erste binäre Komponente v 0 '
    Figure DE102015121646B4_0313
    des möglicherweise fehlerhaften Wortes v' liegt an einem ersten Eingang des XOR-Gatters 481 an, an dessen Ausgang die erste Komponente v 0 c o r
    Figure DE102015121646B4_0314
    des korrigierten Wortes vcor erzeugt wird.
  • Für i = 2,3,..., 30 trägt der i-te Ausgang des BCH-Decoders DEC BCH 45 die binäre Komponente ei-1 des Korrekturvektors und ist in einen zweiten Eingang des ODER-Gatters 47(i - 1) und in den ersten Eingang des UND-Gatters 46i geführt, wobei der Ausgang des UND-Gatters 46i mit einem ersten Eingang des ODER-Gatters 47i verbunden ist. Der Ausgang des ODER-Gatters 47(i - 1) ist mit einem zweiten Eingang des XOR-Gatters 48i verbunden, wobei an dessen ersten Eingang die i-te Komponente v i 1 '
    Figure DE102015121646B4_0315
    des Wortes v' anliegt. Die i-te Komponente v i 1 c o r
    Figure DE102015121646B4_0316
    des korrigierten Wortes wird am binären Ausgang des XOR-Gatters 48i ausgegeben.
  • Der letzte Ausgang des BCH-Decoders DEC BCH 45 trägt die binäre Komponente e30 und ist mit dem zweiten Eingang des ODER-Gatters 4730 verbunden. Der Ausgang des ODER-Gatters 4730 ist in einen zweiten Eingang des XOR-Gatters 4831 geführt, an dessen erstem Eingang die binäre Komponente v 30 '
    Figure DE102015121646B4_0317
    des Wortes v' anliegt. Der Ausgang des XOR-Gatters 4831 trägt das Signal v 30 c o r .
    Figure DE102015121646B4_0318
  • Liegt ein 1-Bitfehler, 2-Bitfehler, 3-Bitfehler, 4-Bitfehler oder 5-Bitfehler vor, ist det6 = 0 und die 0-Eingänge der Multiplexer MUX 441, 442, ..., 445, die die unveränderten Teilsyndrome s1, s3, ..., s9 tragen, werden an die zugehörigen Eingänge des BCH-Decoders DEC BCH 45 weitergeleitet.
  • Liegt ein 6-Bitfehler vor, ist det6 = 1 und die 1-Eingänge der Multiplexer MUX 441, 442, ..., 445, die die modifizierten Teilsyndrome s 1 m o d , s 3 m o d , , s 9 m o d
    Figure DE102015121646B4_0319
    tragen, werden an die zugehörigen Eingänge des BCH-Decoders DEC BCH 45 weitergeleitet.
  • Im Falle eines 6-Bitfehlers, der sich aus drei benachbarten 2-Bitfehlern zusammensetzt, ist das binäre Wort v' in sechs Bitpositionen i , ( i + 1 ) , j , ( j + 1 ) , k , ( k + 1 )
    Figure DE102015121646B4_0320
    für i, j, k ∈ {0,1, ... , 29} gestört. Der Syndromgenerator SG 41 erzeugt dann an seinen Ausgängen das Fehlersyndrom s = ( s 1 s 3 s 5 s 7 s 9 s p ) = ( α i + α ( i + 1 ) + α j + α ( j + 1 ) + α k + α ( k + 1 ) α 3 i + α 3 ( i + 1 ) + α 3 j + α 3 ( j + 1 ) + α 3 k + α 3 ( k + 1 ) α 5 i + α 5 ( i + 1 ) + α 5 j + α 5 ( j + 1 ) + α 5 k + α 5 ( k + 1 ) α 7 i + α 7 ( i + 1 ) + α 7 j + α 7 ( j + 1 ) + α 7 k + α 7 ( k + 1 ) α 9 i + α 9 ( i + 1 ) + α 9 j + α 9 ( j + 1 ) + α 9 k + α 9 ( k + 1 ) 0 )               = ( α i ( 1 + α ) + α j ( 1 + α ) + α k ( 1 + α ) α 3 i ( 1 + α 3 ) + α 3 j ( 1 + α 3 ) + α 3 k ( 1 + α 3 ) α 5 i ( 1 + α 5 ) + α 5 j ( 1 + α 5 ) + α 5 k ( 1 + α 5 ) α 7 i ( 1 + α 7 ) + α 7 j ( 1 + α 7 ) + α 7 k ( 1 + α 7 ) α 9 i ( 1 + α 9 ) + α 9 j ( 1 + α 9 ) + α 9 k ( 1 + α 9 ) 0 ) ,
    Figure DE102015121646B4_0321
    dessen Teilsyndrome s1, s3, ..., s9 durch die Konstantenmultiplizierer 431 bis 435 modifiziert werden.
  • Die Konstantenmultiplizierer 431, 432, ..., 435 sind so konfiguriert, dass die unveränderten Teilsyndrome s1, s3, ..., s9, die dem Fehlersyndrom eines 6-Bitfehlers in den Bitpositionen [i, (i + 1), j, (j + 1), k, (k + 1)] entsprechen, auf die modifizierten Teilsyndrome s 1 m o d , s 3 m o d , , s 9 m o d
    Figure DE102015121646B4_0322
    abgebildet werden, die dem Fehlersyndrom eines 3-Bitfehlers in den Bitpositionen [i, j, k] entsprechen, wie das in den nachfolgenden Gleichungen gezeigt ist: s 1 m o d = s 1 ( 1 + α ) 1 = ( α i ( 1 + α ) + α j ( 1 + α ) + α k ( 1 + α ) ) ( 1 + α ) 1 = α i + α j + α k s 3 m o d = s 3 ( 1 + α 3 ) 1 = ( α 3 i ( 1 + α 3 ) + α 3 j ( 1 + α 3 ) + α 3 k ( 1 + α 3 ) ) ( 1 + α 3 ) 1 = α 3 i + α 3 j + α 3 k s 5 m o d = s 5 ( 1 + α 5 ) 1 = ( α 5 i ( 1 + α 5 ) + α 5 j ( 1 + α 5 ) + α 5 k ( 1 + α 5 ) ) ( 1 + α 5 ) 1 = α 5 i + α 5 j + α 5 k s 7 m o d = s 7 ( 1 + α 7 ) 1 = ( α 7 i ( 1 + α 7 ) + α 7 j ( 1 + α 7 ) + α 7 k ( 1 + α 7 ) ) ( 1 + α 7 ) 1 = α 7 i + α 7 j + α 7 k s 9 m o d = s 9 ( 1 + α 9 ) 1 = ( α 9 i ( 1 + α 9 ) + α 9 j ( 1 + α 9 ) + α 9 k ( 1 + α 9 ) ) ( 1 + α 9 ) 1 = α 9 i + α 9 j + α 9 k
    Figure DE102015121646B4_0323
  • Beispiel: Korrektur spezieller 6-Bitfehler, die aus zwei benachbarten 3-Bitfehlern bestehen
  • In einem weiteren Beispiel wird gezeigt, wie unter Verwendung eines BCH-Codes zur Korrektur beliebiger 1-Bit-, 2-Bit-, ..., 5-Bitfehler, eine Korrektur spezieller 6-Bitfehler erfolgen kann, die sich aus zwei benachbarten 3-Bitfehlern zusammensetzen.
  • 5 zeigt eine beispielhafte Schaltungsanordnung, die auf der in 4 dargestellten Schaltungsanordnung basiert. 5 unterscheidet sich von 4 insoweit, dass für i = 1,2,...,5 der Konstantenmultiplizierer 43i durch den Konstantenmultiplizierer 53i ersetzt wurde, wobei die Konstantenmultiplizierer 53i so konfiguriert sind, dass ein modifiziertes Teilsyndrom s 2 i 1 m o d = s 2 i 1 ( 1 + α 2 i 1 + α ( 2 i 1 ) 2 ) 1
    Figure DE102015121646B4_0324
    an dessen jeweiligen 5 binären Ausgängen erzeugt wird.
  • Weiterhin wurden für j = 2,3,..., 30 die ODER-Gatter 47j durch ODER-Gatter 57j mit drei binären Eingängen und einem binären Ausgang ersetzt. Das ODER-Gatter 471 hat unverändert zwei binäre Eingänge.
  • Weiterhin weist 5 im Unterschied zu 4 die folgenden Veränderungen auf:
    • Der erste Ausgang des BCH-Decoders DEC BCH 45 trägt die binäre Komponente e0 des Korrekturvektors e und ist in einen zweiten binären Eingang des XOR-Gatters 481 und in den ersten Eingang des UND-Gatters 461 geführt, wobei der Ausgang des UND-Gatters 461 mit einem jeweils ersten Eingang der ODER-Gatter 471 und 572 verbunden ist. Die erste binäre Komponente v 0 '
      Figure DE102015121646B4_0325
      des möglicherweise fehlerhaften Wortes v' liegt an einem ersten Eingang des XOR-Gatters 481 an, an dessen Ausgang die erste Komponente v 0 c o r
      Figure DE102015121646B4_0326
      des korrigierten Wortes vcor erzeugt wird.
  • Der zweite Ausgang des BCH-Decoders DEC BCH 45 trägt die binäre Komponente e1 des Korrekturvektors e und ist mit einem zweiten binären Eingang des ODER-Gatters 471 und mit einem ersten Eingang des UND-Gatters 462 verbunden, wobei der Ausgang des UND-Gatters 462 mit einem zweiten Eingang des ODER-Gatters 572 und mit einem ersten Eingang des ODER-Gatters 573 verbunden ist.
  • Der Ausgang des ODER-Gatters 471 ist mit einem zweiten Eingang des XOR-Gatters 482 verbunden. Die zweite binäre Komponente v 1 '
    Figure DE102015121646B4_0327
    des möglicherweise fehlerhaften Wortes v' liegt an einem ersten Eingang des XOR-Gatters 482 an, an dessen Ausgang die zweite Komponente v 1 c o r
    Figure DE102015121646B4_0328
    des korrigierten Wortes vcor erzeugt wird.
  • Für i = 3,...,29 trägt der i-te Ausgang des BCH-Decoders DEC BCH 45 die binäre Komponente ei-1 des Korrekturvektors e und ist in einen dritten Eingang des ODER-Gatters 57(i - 1) und in einen ersten Eingang des UND-Gatters 46i geführt, wobei der Ausgang des UND-Gatters 46i mit einem zweiten Eingang des ODER-Gatters 57i und mit einem ersten Eingang des ODER-Gatters 57(i + 1) verbunden ist.
  • Der Ausgang des ODER-Gatters 57(i - 1) ist mit einem zweiten Eingang des XOR-Gatters 48i verbunden, wobei an dessen ersten Eingang die i-te Komponente v i 1 '
    Figure DE102015121646B4_0329
    des Wortes v' anliegt. Die i-te Komponente v i 1 c o r
    Figure DE102015121646B4_0330
    des korrigierten Wortes wird am binären Ausgang des XOR-Gatters 48i ausgegeben.
  • Der vorletzte Ausgang des BCH-Decoders DEC BCH 45 trägt die binäre Komponente e29 des Korrekturvektors e und ist in einen dritten Eingang des ODER-Gatters 5729 und in einen ersten Eingang des UND-Gatters 4630 geführt, wobei der Ausgang des UND-Gatters 4630 mit einem zweiten Eingang des ODER-Gatters 5730 verbunden ist.
  • Der Ausgang des ODER-Gatters 5729 ist mit einem zweiten Eingang des XOR-Gatters 4830 verbunden, wobei an dessen ersten Eingang die 30-te Komponente v 29 '
    Figure DE102015121646B4_0331
    des Wortes v' anliegt. Die 30-te Komponente v 29 c o r
    Figure DE102015121646B4_0332
    des korrigierten Wortes wird am binären Ausgang des XOR-Gatters 4830 ausgegeben.
  • Der letzte Ausgang des BCH-Decoders DEC BCH 45 trägt die binäre Komponente e30 und ist mit einem dritten Eingang des ODER-Gatters 5730 verbunden. Der Ausgang des ODER-Gatters 5730 ist in einen zweiten Eingang des XOR-Gatters 4831 geführt, an dessen erstem Eingang die binäre Komponente v 30 '
    Figure DE102015121646B4_0333
    des Wortes v' anliegt. Der Ausgang des XOR-Gatters 4831 trägt das Signal v 30 c o r .
    Figure DE102015121646B4_0334
  • Durch die in 5 gegenüber 4 gezeigten Änderungen können statt drei benachbarten 2-Bitfehlern nun zwei benachbarte 3-Bitfehler korrigiert werden. Im Falle eines 6-Bitfehlers, der sich aus zwei benachbarten 3-Bitfehlern zusammensetzt, ist das gestörte binäre Wort v' an sechs Bitpositionen i ,   ( i + 1 ) ,   ( i + 2 ) ,   j ,   ( j + 1 ) ,   ( j + 2 )
    Figure DE102015121646B4_0335
    für i, j ∈ {0,1,...,28} gestört. Der Syndromgenerator SG 41 erzeugt dann an seinen Ausgängen das Fehlersyndrom s = ( s 1 s 3 s 5 s 7 s 9 s p ) = ( α i + α ( i + 1 ) + α ( i + 2 ) + α j + α ( j + 1 ) + α ( j + 2 ) α 3 i + α 3 ( i + 1 ) + α 3 ( i + 2 ) + α 3 j + α 3 ( j + 1 ) + α 3 ( j + 2 ) α 5 i + α 5 ( i + 1 ) + α 5 ( i + 2 ) + α 5 j + α 5 ( j + 1 ) + α 5 ( j + 2 ) α 7 i + α 7 ( i + 1 ) + α 7 ( i + 2 ) + α 7 j + α 7 ( j + 1 ) + α 7 ( j + 2 ) α 9 i + α 9 ( i + 1 ) + α 9 ( i + 2 ) + α 9 j + α 9 ( j + 1 ) + α 9 ( j + 2 ) 0 ) = ( α i ( 1 + α + α 2 ) + α j ( 1 + α + α 2 ) α 3 i ( 1 + α 3 + α 3 2 ) + α 3 j ( 1 + α 3 + α 3 2 ) α 5 i ( 1 + α 5 + α 5 2 ) + α 5 j ( 1 + α 5 + α 5 2 ) α 7 i ( 1 + α 7 + α 7 2 ) + α 7 j ( 1 + α 7 + α 7 2 ) α 9 i ( 1 + α 9 + α 9 2 ) + α 9 j ( 1 + α 9 + α 9 2 ) 0 ) ,
    Figure DE102015121646B4_0336
    dessen Teilsyndrome s1, s3, ..., s9 durch die Konstantenmultiplizierer 531 bis 535 modifiziert werden.
  • Die Konstantenmultiplizierer 531 bis 535 sind so konfiguriert, dass die unveränderten Teilsyndrome s1, s3, ..., s9, die dem Fehlersyndrom eines 6-Bitfehlers an den Bitpositionen [i, (i + 1), (i + 2), j, (j + 1), (j + 2)] entsprechen, auf die modifizierten Teilsyndrome s 1 m o d , s 3 m o d , , s 9 m o d
    Figure DE102015121646B4_0337
    abgebildet werden, die dem Fehlersyndrom eines 2-Bitfehlers in den Bitpositionen [i, j] entsprechen, wie das in den nachfolgenden Gleichungen gezeigt ist: s 1 m o d = s 1 ( 1 + α + α 2 ) 1 = ( α i ( 1 + α + α 2 ) + α j ( 1 + α + α 2 ) ) ( 1 + α + α 2 ) 1 = α i + α j s 3 m o d = s 3 ( 1 + α 3 + α 3 2 ) 1 = ( α 3 i ( 1 + α 3 + α 3 2 ) + α 3 j ( 1 + α 3 + α 3 2 ) ) ( 1 + α 3 + α 3 2 ) 1 = α 3 i + α 3 j s 5 m o d = s 5 ( 1 + α 5 + α 5 2 ) 1 = ( α 5 i ( 1 + α 5 + α 5 2 ) + α 5 j ( 1 + α 5 + α 5 2 ) ) ( 1 + α 5 + α 5 2 ) 1 = α 5 i + α 5 j s 7 m o d = s 7 ( 1 + α 7 + α 7 2 ) 1 = ( α 7 i ( 1 + α 7 + α 7 2 ) + α 7 j ( 1 + α 7 + α 7 2 ) ) ( 1 + α 7 + α 7 2 ) 1 = α 7 i + α 7 j s 9 m o d = s 9 ( 1 + α 9 + α 9 2 ) 1 = ( α 9 i ( 1 + α 9 + α 9 2 ) + α 9 j ( 1 + α 9 + α 9 2 ) ) ( 1 + α 9 + α 9 2 ) 1 = α 9 i + α 9 j
    Figure DE102015121646B4_0338
  • Beispiel: Korrektur benachbarter 3-Bitfehler mittels Teilschaltung DEC (H1)
  • Nachfolgend wird gezeigt, wie unter Verwendung eines BCH-Codes zur Korrektur von 1-Bitfehlern und 2-Bitfehlern und durch Nutzung einer Teilschaltung DEC (H1) eine Korrektur benachbarter 3-Bitfehler erfolgen kann.
  • Gemäß der nachfolgend dargestellten Gleichung (67) ist die Prüfmatrix eines 2-Bitfehler korrigierenden BCH-Codes mit einbezogener Gesamtparität in separierter Form für m = 5 und n = 31 dargestellt. Der hier verwendete BCH-Code weist eine minimale Hamming-Distanz dmin = 6 auf. H = [ H 1 H 3 P ] = [ α 0 α 1 α 2 α 29 α 30 α 3 0 α 3 1 α 3 2 α 3 ( 29 ) α 3 ( 30 ) 1 1 1 1 1 ]
    Figure DE102015121646B4_0339
  • Die Potenzen von αi sind dabei modulo (25 - 1) = 31 zu interpretieren. Die letzte Zeile der H-Matrix gemäß Gleichung (67) besteht aus lauter Einsen. Durch diese Zeile ist die Gesamtparität P bestimmt.
  • Zur besseren Übersichtlichkeit sind die einzelnen Elemente der Teilmatrizen H1 und H3 in der nachfolgenden Gleichung (68) durch ihre Potenz dargestellt. H 1 = [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ] H 3 = [ 0 3 6 9 12 15 18 21 24 27 30 2 5 8 11 14 17 20 23 26 29 1 4 7 10 13 16 19 22 25 28 ]
    Figure DE102015121646B4_0340
  • Unter Verwendung der in 1 gezeigten Tabelle kann die binäre Prüfmatrix H aufgestellt werden, indem die in Gleichung (68) für die Teilmatrizen H1 und H3 aufgelisteten Potenzen der Elemente durch ihre zugehörige Vektordarstellung als Spaltenvektoren ersetzt werden. Die binäre Prüfmatrix H ergibt sich dann zu
    Figure DE102015121646B4_0341
  • 6 zeigt eine Schaltungsanordnung umfassend einen Syndromgenerator SG 61 mit n = 31 binären Eingängen und 2 · 5 + 1 = 11 binären Ausgängen, eine Fehlererkennungseinheit FE 62 mit (2 · 5 + 1) = 11 binären Eingängen und einem binären Ausgang, einen Konstantenmultiplizierer 63 mit 5 binären Eingängen und 5 binären Ausgängen, einen BCH-Decoder DEC BCH 64 mit (2·5) = 10 binären Eingängen und n = 31 binären Ausgängen, eine Teilschaltung DEC (H1) 65 mit 5 binären Eingängen und n = 31 binären Ausgängen, einen Multiplexer 66 mit (2·31+1) = 63 binären Eingängen und 31 binären Ausgängen, 30 UND-Gatter 671 bis 6730 mit jeweils 2 binären Eingängen und einem binären Ausgang, ein ODER-Gatter 681 mit 2 binären Eingängen und einem binären Ausgang, 29 ODER-Gatter 682 bis 6830 mit jeweils 3 binären Eingängen und einem binären Ausgang und 31 XOR-Gatter 691 bis 6931 mit jeweils 2 binären Eingängen und einem binären Ausgang.
  • Der Syndromgenerator SG 61 weist n = 31 binäre Eingänge auf, in die das möglicherweise fehlerhafte Binärwort v ' = ( v 0 ' , v 1 ' , , v 30 ' )
    Figure DE102015121646B4_0342
    geführt ist. An seinem 11-Bit breiten Ausgang gibt der Syndromgenerator SG 61 ein Fehlersyndrom s = ( s 1 , s 3 , s p )
    Figure DE102015121646B4_0343
    der Wortbreite (2·5 + 1) aus. Dabei ist der Syndromgenerator SG 61 so konfiguriert, dass er die Komponenten des Fehlersyndroms s auf Basis der Prüfmatrix H (69) so bestimmt, dass gilt: s 1 T = H 1 ( v ' ) T s 3 T = H 3 ( v ' ) T s p = P ( v ' ) T = v 0 ' + v 1 ' + + v 30 '
    Figure DE102015121646B4_0344
  • Für i = 1, 2 sind die i-ten 5 binären Ausgänge des Syndromgenerators SG 61, die das Teilsyndrom s2i-1 tragen, in die i-ten 5 binären Eingänge der Fehlererkennungseinheit FE 62, und in die i-ten 5 binären Eingänge des BCH-Decoder DEC BCH 64 geführt.
  • Der BCH-Decoder DEC BCH 64 erzeugt auf Basis der Syndromkomponenten s1 und s3 einen Korrekturvektor e ' = ( e 0 ' , e 1 ' , , e 30 ' )
    Figure DE102015121646B4_0345
    an seinen 31 binären Ausgängen. Dabei ist der BCH-Decoder DEC BCH 64 so konfiguriert, dass wenn die an den Eingängen bereitgestellten Teilsyndrome s1, und s3 dem Fehlersyndrom eines i-Bitfehlers in den Bitpositionen b1, b2, ..., bi mit 0 ≤ b1 < b2 < ··· < bi30 entsprechen, ein Korrekturvektor e' erzeugt wird, der in den Komponenten e b 1 ' , e b 2 ' , , e b i '
    Figure DE102015121646B4_0346
    eine binäre 1 und in allen anderen Komponenten eine binäre 0 aufweist. Zeigen die Teilsyndrome keinen Fehler an und gilt s1 = s3 = 0, so wird ein Korrekturvektor e ' = ( e 0 ' , e 1 ' , , e 30 ' ) = ( 0,0, ,0 )
    Figure DE102015121646B4_0347
    an den Ausgängen des BCH-Decoders DEC BCH 64 erzeugt.
  • Die ersten 5 binären Ausgänge des Syndromgenerators SG 61, die das Teilsyndrom s1 tragen, sind zusätzlich mit dem 5-Bit breiten Eingang des Konstantenmultiplizierers 63 verbunden. Der Konstantenmultiplizierer 63 ist so konfiguriert, dass er ein modifiziertes Teilsyndrom s 1 m o d = s 1 ( 1 + α + α 2 ) 1
    Figure DE102015121646B4_0348
    an seinen 5 binären Ausgängen erzeugt, die in den 5-Bit breiten Eingang der Teilschaltung DEC (H1) 65 geführt sind.
  • Die Teilschaltung DEC (H1) 65 basiert auf der Teilmatrix H1 von Gleichung (69) und erzeugt auf Basis der Syndromkomponente s1, einen Korrekturvektor e " = ( e 0 " , e 1 " , , e 30 " )
    Figure DE102015121646B4_0349
    an ihren 31 binären Ausgängen.
  • Die Teilschaltung DEC (H1) 65 ist so konfiguriert, dass, wenn das Teilsyndrom s1, dem Fehlersyndrom eines 1-Bitfehlers in der Bitposition b mit 0 ≤ b ≤ 30 entspricht, ein Korrekturvektor e'' erzeugt wird, der in der Komponente e b "
    Figure DE102015121646B4_0350
    eine binäre 1 und in allen anderen Komponenten eine binäre 0 aufweist. Zeigt das Teilsyndrom s1 keinen Fehler an und gilt s1 = 0, so wird ein Korrekturvektor e " = ( e 0 " , e 1 " , , e 30 " ) = ( 0,0, ,0 )
    Figure DE102015121646B4_0351
    an den Ausgängen der Teilschaltung DEC (H1) 65 erzeugt.
  • Der binäre Ausgang des Syndromgenerators SG 61, der das 1-Bit breite Teilsyndrom sp trägt, ist mit einem binären Eingang der Fehlererkennungseinheit FE 62 verbunden.
  • Die Fehlererkennungseinheit FE 62 ist so konfiguriert, dass in Abhängigkeit von den Teilsyndromen s1, s3, sp ein 1-Bit breites Fehlererkennungssignal det3 an ihrem Ausgang erzeugt wird, das genau dann gleich 1 ist, wenn das binäre Wort v' durch einen 3-Bitfehler gestört ist. Die Fehlererkennung kann in diesem Beispiel durch Prüfung der Bedingungen s 1 3 s 3 und s p = 1
    Figure DE102015121646B4_0352
    erfolgen.
  • Im Falle eines 1-Bitfehler ist s p = 1 und s 1 3 = s 3 ,
    Figure DE102015121646B4_0353

    bei einem 2-Bitfehler gilt s p = 0,   s 1 3 s 3
    Figure DE102015121646B4_0354
    und bei einem 3-Bitfehler ergibt sich s p = 1 und s 1 3 s 3 .
    Figure DE102015121646B4_0355
  • Für das Fehlererkennungssignal gilt also:
    • - det3 = 1 genau dann, wenn s 1 3 s 3
      Figure DE102015121646B4_0356
      und sp = 1
  • Der algebraische Ausdruck s 1 3
    Figure DE102015121646B4_0357
    kann mit Hilfe von Galoisfeldmultiplizierern oder Potenzbildnern im Galoisfeld implementiert werden.
  • Der 31-Bit breite Ausgang des BCH-Decoders DEC BCH 64, der den Korrekturvektor e' trägt, ist in den 31-Bit breiten 0-Eingang des Multiplexers MUX 66 geführt, während der 31-Bit breite Ausgang der Teilschaltung DEC (H1) 65, der den Korrekturvektor e'' trägt, mit dem 31-Bit breiten 1-Eingang des Multiplexers MUX 66 verbunden ist.
  • Der binäre Ausgang der Fehlererkennungseinheit FE 62 trägt das Signal det3 zur 3-Bitfehler-Erkennung und wird sowohl mit einem jeweils zweiten 1-Bit breiten Eingang der UND-Gatter 671 bis 6730 verbunden, als auch in den 1-Bit breiten Kontrolleingang des Multiplexers MUX 66 geführt.
  • Der erste Ausgang des Multiplexers MUX 66 trägt die binäre Komponente e0 des Korrekturvektors e und ist in einen zweiten binären Eingang des XOR-Gatters 691 und in einen ersten Eingang des UND-Gatters 671 geführt, wobei der Ausgang des UND-Gatters 671 mit einem jeweils ersten Eingang der ODER-Gatter 681 und 682 verbunden ist. Die erste binäre Komponente v 0 '
    Figure DE102015121646B4_0358
    des möglicherweise fehlerhaften Wortes v' liegt an einem ersten Eingang des XOR-Gatters 691 an, an dessen Ausgang die erste Komponente v 0 c o r
    Figure DE102015121646B4_0359
    des korrigierten Wortes vcor erzeugt wird.
  • Der zweite Ausgang des Multiplexers MUX 66 trägt die binäre Komponente e1 des Korrekturvektors e und ist mit einem zweiten binären Eingang des ODER-Gatters 681 und mit einem ersten Eingang des UND-Gatters 672 verbunden, wobei der Ausgang des UND-Gatters 672 mit einem zweiten Eingang des ODER-Gatters 682 und mit einem ersten Eingang des ODER-Gatters 683 verbunden ist.
  • Der Ausgang des ODER-Gatters 681 ist mit einem zweiten Eingang des XOR-Gatters 692 verbunden. Die zweite binäre Komponente v 1 '
    Figure DE102015121646B4_0360
    des möglicherweise fehlerhaften Wortes v' liegt an einem ersten Eingang des XOR-Gatters 692 an, an dessen Ausgang die zweite Komponente v 1 c o r
    Figure DE102015121646B4_0361
    des korrigierten Wortes vcor erzeugt wird.
  • Für i = 3,...,29 trägt der i-te Ausgang des Multiplexers MUX 66 die binäre Komponente ei-1 des Korrekturvektors e und ist in einen dritten Eingang des ODER-Gatters 68(i-1) und in einen ersten Eingang des UND-Gatters 67i geführt, wobei der Ausgang des UND-Gatters 67i mit einem zweiten Eingang des ODER-Gatters 68i und mit einem ersten Eingang des ODER-Gatters 68(i+1) verbunden ist.
  • Der Ausgang des ODER-Gatters 68(i -1) ist mit einem zweiten Eingang des XOR-Gatters 69i verbunden, wobei an dessen ersten Eingang die i-te Komponente v i 1 '
    Figure DE102015121646B4_0362
    des Wortes v' anliegt. Die i-te Komponente v i 1 c o r
    Figure DE102015121646B4_0363
    des korrigierten Wortes wird an dem binären Ausgang des XOR-Gatters 69i ausgegeben.
  • Der vorletzte Ausgang des Multiplexers MUX 66 trägt die binäre Komponente e29 des Korrekturvektors e und ist in einen dritten Eingang des ODER-Gatters 6829 und in einen ersten Eingang des UND-Gatters 6730 geführt, wobei der Ausgang des UND-Gatters 6730 mit einem zweiten Eingang des ODER-Gatters 6830 verbunden ist.
  • Der Ausgang des ODER-Gatters 6829 ist mit einem zweiten Eingang des XOR-Gatters 6930 verbunden, wobei an dessen ersten Eingang die 30-te Komponente v 29 '
    Figure DE102015121646B4_0364
    des Wortes v' anliegt. Die 30-te Komponente v 29 c o r
    Figure DE102015121646B4_0365
    des korrigierten Wortes wird am binären Ausgang des XOR-Gatters 6930 ausgegeben.
  • Der letzte Ausgang des Multiplexers MUX 66 trägt die binäre Komponente e30 und ist mit einem dritten Eingang des ODER-Gatters 6830 verbunden. Der Ausgang des ODER-Gatters 6830 ist in einen zweiten Eingang des XOR-Gatters 6931 geführt, an dessen erstem Eingang die binäre Komponente v 30 '
    Figure DE102015121646B4_0366
    des Wortes v' anliegt. Der Ausgang des XOR-Gatters 6931 trägt das Signal v 30 c o r .
    Figure DE102015121646B4_0367
  • Liegt ein 1-Bitfehler oder ein 2-Bitfehler vor, ist det3 = 0 und der 0-Eingang des Multiplexers MUX 66, an dem der Korrekturvektor e' anliegt, ist mit dessen Ausgang verbunden; es gilt: e = e'.
  • Liegt ein 3-Bitfehler vor, ist det3 = 1 und der 1-Eingang des Multiplexers MUX 66, an dem der Korrekturvektor e'' anliegt, ist mit dessen Ausgang verbunden; es gilt: e = e''.
  • Im Falle eines benachbarten 3-Bitfehlers ist das gestörte binäre Wort v' in drei Bitpositionen i, (i + 1) und (i + 2) für i ∈ {0,1,..., 28} gestört. Der Syndromgenerator SG 61 erzeugt dann an seinen Ausgängen das Fehlersyndrom s = ( s 1 s 3 p ) = ( α i + α ( i + 1 ) + α ( i + 2 ) α 3 i + α 3 ( i + 1 ) + α 3 ( i + 2 ) 1 )               = ( α i ( 1 + α + α 2 ) α 3 i ( 1 + α 3 + α 3 2 ) 1 ) ,
    Figure DE102015121646B4_0368
    dessen Teilsyndrom s1 durch den Konstantenmultiplizierer 63 modifiziert wird. Der Konstantenmultiplizierer 63 ist so konfiguriert, dass das Teilsyndrom s1 des Syndroms s, das dem Fehlersyndrom eines 3-Bitfehlers an den Bitpositionen [i, (i + 1), (i + 2)] entspricht, auf das modifizierte Teilsyndrom s 1 m o d
    Figure DE102015121646B4_0369
    abgebildet wird, das dem Fehlersyndrom eines 1-Bitfehlers an der Bitposition [i] entspricht, wie das in der nachfolgenden Gleichung gezeigt ist: s 1 m o d = s 1 ( 1 + α + α 2 ) 1 = α i ( 1 + α + α 2 ) 1 + α + α 2 = α i
    Figure DE102015121646B4_0370
  • Beispiel: Korrektur von 4-Bitfehlern, die auf benachbarten 2-Bitfehlern basieren mittels Teilschaltung DEC (H1,H3)
  • Im folgenden Beispiel wird erläutert, wie unter Verwendung eines BCH-Codes zur Korrektur von 1-Bitfehlern, 2-Bitfehlern und 3-Bitfehlern und durch Nutzung einer Teilschaltung DEC (H1,H3) eine Korrektur von 4-Bitfehlern, die sich aus zwei benachbarten 2-Bitfehlern zusammensetzen, erfolgen kann.
  • Der verwendete BCH-Code basiert dabei auf der binären Prüfmatrix H gemäß der oben eingeführten Gleichung (52).
  • 7 zeigt eine Schaltungsanordnung umfassend einen Syndromgenerator SG 71 mit n = 31 binären Eingängen und (3 · 5 + 1) = 16 binären Ausgängen, eine Fehlererkennungseinheit FE 72 mit (3 · 5 + 1) = 16 binären Eingängen und einem binären Ausgang, Konstantenmultiplizierer 731 und 732 mit jeweils 5 binären Eingängen und 5 binären Ausgängen, einen BCH-Decoder DEC BCH 74 mit (3 · 5) = 15 binären Eingängen und n = 31 binären Ausgängen, eine Teilschaltung DEC (H1, H3) 75 mit (2·5) = 10 binären Eingängen und n = 31 binären Ausgängen, einen Multiplexer 76 mit (2·31 + 1) = 63 binären Eingängen und 31 binären Ausgängen, 30 UND-Gatter 771 bis 7730 mit jeweils 2 binären Eingängen und einem binären Ausgang, 30 ODER-Gatter 781 bis 7830 mit jeweils 2 binären Eingängen und einem binären Ausgang und 31 XOR-Gatter 791 bis 7931 mit jeweils 2 binären Eingängen und einem binären Ausgang.
  • Der Syndromgenerator SG 71 weist n = 31 binäre Eingänge auf, in die das möglicherweise fehlerhafte Binärwort v ' = ( v 0 ' , v 1 ' , , v 30 ' )
    Figure DE102015121646B4_0371
    geführt ist. An seinem 16-Bit breiten Ausgang gibt der Syndromgenerator SG 71 ein Fehlersyndrom s = (s1, s3, sp) der Wortbreite (3·5 + 1) aus. Dabei ist der Syndromgenerator SG 71 so konfiguriert, dass er die Komponenten des Fehlersyndroms s auf Basis der Prüfmatrix H (52) so bestimmt, dass gilt: s 1 T = H 1 ( v ' ) T s 3 T = H 3 ( v ' ) T s 5 T = H 5 ( v ' ) T s p = P ( v ' ) T = v 0 ' + v 1 ' + + v 30 '
    Figure DE102015121646B4_0372
  • Für i = 1,2,3 sind die i-ten 5 binären Ausgänge des Syndromgenerators SG 71, die das Teilsyndrom s2i-1 tragen, in die i-ten 5 binären Eingänge der Fehlererkennungseinheit FE 72 und in die i-ten 5 binären Eingänge des BCH-Decoder DEC BCH 74 geführt.
  • Der BCH-Decoder DEC BCH 74 erzeugt auf Basis der Syndromkomponenten s1, s3 und s5 einen Korrekturvektor e ' = ( e 0 ' , e 1 ' , , e 30 ' )
    Figure DE102015121646B4_0373
    an seinen 31 binären Ausgängen. Dabei ist der BCH-Decoder DEC BCH 74 so konfiguriert, dass, wenn die Teilsyndrome dem Fehlersyndrom eines i-Bitfehlers in den Bitpositionen b1, b2,..., bi mit 0 ≤ b1 < b2 < ··· < bi30 entsprechen, ein Korrekturvektor e' erzeugt wird, der in den Komponenten e b 1 ' , e b 2 ' , , e b i '
    Figure DE102015121646B4_0374
    eine binäre 1 und in allen anderen Komponenten eine binäre 0 aufweist. Zeigen die Teilsyndrome keinen Fehler an und gilt s1 = s3 = s5 = 0, so wird ein Korrekturvektor e ' = ( e 0 ' , e 1 ' , , e 30 ' ) = ( 0,0, ,0 )
    Figure DE102015121646B4_0375
    an den Ausgängen des BCH-Decoders DEC BCH 74 erzeugt.
  • Die ersten 5 binären Ausgänge des Syndromgenerators SG 71, die das Teilsyndrom s1 tragen, sind zusätzlich mit dem 5-Bit breiten Eingang des Konstantenmultiplizierers 731 verbunden. Die zweiten 5 binären Ausgänge des Syndromgenerators SG 71, die das Teilsyndrom s3 tragen, sind zusätzlich mit dem 5-Bit breiten Eingang des Konstantenmultiplizierers 732 verbunden.
  • Für i = 1, 2 ist der Konstantenmultiplizierer 73i so konfiguriert, dass er ein modifiziertes Teilsyndrom s 2 i 1 m o d = s 2 i 1 ( 1 + α 2 i 1 ) 1
    Figure DE102015121646B4_0376
    an seinen 5 binären Ausgängen erzeugt, die mit den i-ten 5 binären Eingängen der Teilschaltung DEC (H1, H3) 75 verbunden sind.
  • Die Teilschaltung DEC (H1,H3) 75 basiert auf den Teilmatrizen H1 und H3 von Gleichung (52) und erzeugt auf Basis der Syndromkomponenten s 1 m o d  und  s 3 m o d
    Figure DE102015121646B4_0377
    einen Korrekturvektor e " = ( e 0 " , e 1 " , , e 30 " )
    Figure DE102015121646B4_0378
    an seinen 31 binären Ausgängen. Die Teilschaltung DEC (H1,H3) 75 ist so konfiguriert, dass, wenn die Teilsyndrome s 1 m o d ,   s 3 m o d
    Figure DE102015121646B4_0379
    dem Fehlersyndrom eines 2-Bitfehlers in den Bitpositionen b1 und b2 mit 0 ≤ b1 < b230 entsprechen, ein Korrekturvektor e'' erzeugt wird, der in den Komponenten e b 1 "  und  e b 2 "
    Figure DE102015121646B4_0380
    eine binäre 1 und in allen anderen Komponenten eine binäre 0 aufweist.
  • Der binäre Ausgang des Syndromgenerators SG 71, der das 1-Bit breite Teilsyndrom sp trägt, ist mit einem binären Eingang der Fehlererkennungseinheit FE 72 verbunden.
  • Die Fehlererkennungseinheit FE 72 ist so konfiguriert, dass in Abhängigkeit von den Teilsyndromen s1, s3, s5, sp ein 1-Bit breites Fehlererkennungssignal det4 an ihrem Ausgang erzeugt wird, das genau dann gleich 1 ist, wenn das binäre Wort v' durch einen 4-Bitfehler gestört ist. Die Fehlererkennung kann in diesem Beispiel durch Prüfung der Bedingungen s 1 3 s 3 + s 1 s 5 + s 1 6 + s 3 2 0  und  s p = 0
    Figure DE102015121646B4_0381
    erfolgen. Der algebraische Ausdruck s 1 3 s 3 + s 1 s 5 + s 1 6 + s 3 2
    Figure DE102015121646B4_0382
    kann mit Hilfe von Galoisfeldmultiplizierern, Addierern und Potenzbildnern im Galoisfeld implementiert werden.
  • Die 31-Bit breite Ausgang des BCH-Decoders DEC BCH 74, der den Korrekturvektor e' trägt, ist in den 31-Bit breiten 0-Eingang des Multiplexers MUX 76 geführt, während der 31-Bit breite Ausgang der Teilschaltung DEC (H1,H3) 75, der den Korrekturvektor e'' trägt, mit dem 31-Bit breiten 1-Eingang des Multiplexers MUX 76 verbunden ist.
  • Der binäre Ausgang der Fehlererkennungseinheit FE 72 trägt das Signal det4 zur 4-Bitfehler-Erkennung und wird sowohl mit einem jeweils zweiten 1-Bit breiten Eingang der UND-Gatter 771 bis 7730 verbunden als auch in einen 1-Bit breiten Kontrolleingang des Multiplexers MUX 76 geführt.
  • Der erste Ausgang des Multiplexers MUX 76 trägt die binäre Komponente e0 des Korrekturvektors und ist in einen zweiten binären Eingang des XOR-Gatters 791 und in einen ersten Eingang des UND-Gatters 771 geführt, wobei der Ausgang des UND-Gatters 771 mit einem ersten Eingang des ODER-Gatters 781 verbunden ist. Die erste binäre Komponente v 0 '
    Figure DE102015121646B4_0383
    des möglicherweise fehlerhaften Wortes v' liegt an einem ersten Eingang des XOR-Gatters 791 an, an dessen Ausgang die erste Komponente v 0 c o r
    Figure DE102015121646B4_0384
    des korrigierten Wortes vcor erzeugt wird.
  • Für i = 2,3,..., 30 trägt der i-te Ausgang des Multiplexers MUX 76 die binäre Komponente ei-1 des Korrekturvektors und ist in einen zweiten Eingang des ODER-Gatters 78(i - 1) und in einen ersten Eingang des UND-Gatters 77i geführt, wobei der Ausgang des UND-Gatters 77i mit einem ersten Eingang des ODER-Gatters 78i verbunden ist. Der Ausgang des ODER-Gatters 78(i - 1) ist mit einem zweiten Eingang des XOR-Gatters 79i verbunden, wobei an dessen ersten Eingang die i-te Komponente v i 1 '
    Figure DE102015121646B4_0385
    des Wortes v' anliegt. Die i-te Komponente v i 1 c o r
    Figure DE102015121646B4_0386
    korrigierten Wortes wird am binären Ausgang des XOR-Gatters 79i ausgegeben.
  • Der letzte Ausgang des Multiplexers MUX 76 trägt die binäre Komponente e30 und ist mit einem zweiten Eingang des ODER-Gatters 7830 verbunden. Der Ausgang des ODER-Gatters 7830 ist in einen zweiten Eingang des XOR-Gatters 7931 geführt, an dessen erstem Eingang die binäre Komponente v 30 '
    Figure DE102015121646B4_0387
    des Wortes v' anliegt.
  • Der Ausgang des XOR-Gatters 7931 trägt das Signal v 30 c o r .
    Figure DE102015121646B4_0388
  • Liegt ein 1-Bitfehler, 2-Bitfehler oder 3-Bitfehler vor, ist det4 = 0 und der 0-Eingang des Multiplexers MUX 76, an dem der Korrekturvektor e' anliegt, ist mit dessen Ausgang verbunden; es gilt: e = e'.
  • Liegt ein 4-Bitfehler vor, ist det4 = 1 und der 1-Eingang des Multiplexers MUX 76, an dem der Korrekturvektor e'' anliegt, ist mit dessen Ausgang verbunden; es gilt: e = e''.
  • Im Falle eines 4-Bitfehlers, der sich aus zwei benachbarten 2-Bitfehlern zusammensetzt, ist das gestörte binäre Wort v' in vier Bitpositionen i, (i + 1) und j, (j + 1) für i, j ∈ {0,1,..., 29} gestört. Der Syndromgenerator SG 71 erzeugt dann an seinen Ausgängen das Fehlersyndrom s = ( s 1 s 3 s 5 s P ) = ( α i + α ( i + 1 ) + α j + α ( j + 1 ) α 3 i + α 3 ( i + 1 ) + α 3 j + α 3 ( j + 1 ) α 5 i + α 5 ( i + 1 ) + α 5 j + α 5 ( j + 1 ) 0 )               = ( α i ( 1 + α ) + α j ( 1 + α ) α 3 i ( 1 + α 3 ) + α 3 j ( 1 + α 3 ) α 5 i ( 1 + α 5 ) + α 5 j ( 1 + α 5 ) 0 ) ,
    Figure DE102015121646B4_0389
    dessen Teilsyndrome s1 und s3 durch die Konstantenmultiplizierer 731 und 732 modifiziert werden. Die Konstantenmultiplizierer 731 und 732 sind so konfiguriert, dass die unveränderten Teilsyndrome, die dem Fehlersyndrom eines 4-Bitfehlers in den Bitpositionen [i, (i + 1), j, (j + 1)] entsprechen, auf die modifizierten Teilsyndrome s 1 m o d  und  s 3 m o d
    Figure DE102015121646B4_0390
    abgebildet werden, die dem Fehlersyndrom eines 2-Bitfehlers in den Bitpositionen [i, j] entsprechen, wie das in den nachfolgenden Gleichungen gezeigt ist: s 1 m o d = s 1 ( 1 + α ) 1 = α i ( 1 + α ) + α j ( 1 + α ) 1 + α = α i + α j s 3 m o d = s 3 ( 1 + α 3 ) 1 = α 3 i ( 1 + α 3 ) + α 3 j ( 1 + α 3 ) 1 + α 3 = α 3 i + α 3 j
    Figure DE102015121646B4_0391
  • Beispielhafte Implementierung einer Fehlererkennungsschaltung
  • 8 zeigt eine mögliche Implementierung der Fehlererkennungsschaltung FE 12 aus 2 oder 3. 8 umfasst einen Dritte-Potenzbildner 81 mit 5 binären Eingängen und 5 binären Ausgängen, Galoisfeld-Quadrierer 821 und 822 mit jeweils 5 binären Eingängen und 5 binären Ausgängen, Galoisfeld-Multiplizierer 831 und 832 mit jeweils zwei 5-Bit breiten Eingängen und 5 binären Ausgängen, ODER-Gattern 841, 842, 843 und 844 mit jeweils 5 binären Eingängen und einem binären Ausgang, ein ODER-Gatter 845 mit 3 binären Eingängen und einem binären Ausgang, Galoisfeld-Addierern 851, 852 und 853 mit jeweils zwei 5-Bit breiten Eingängen und 5 binären Ausgängen zur komponentenweisen XOR-Verknüpfung ihrer Eingänge, UND-Gatter 861, 862 und 863 mit jeweils 2 binären Eingängen und einem binären Ausgang und ein UND-Gatter 864 mit 3 binären Eingängen und einem binären Ausgang.
  • Die ersten 5 binären Eingänge der Teilschaltung, die das Teilsyndrom s1 tragen, sind mit den 5 binären Eingängen des Dritte-Potenzbildners 81, mit einem ersten 5-Bit breiten Eingang des Multiplizierers 831 und den 5 binären Eingängen des ODER-Gatters 841 verbunden.
  • Die zweiten 5 binären Eingänge der Teilschaltung, die das Teilsyndrom s3 tragen, sind mit den 5 binären Eingängen des Quadrierers 821, mit einem zweiten 5-Bit breiten Eingang des Multiplizierers 832 und den 5 binären Eingängen des ODER-Gatters 842 verbunden.
  • Die dritten 5 binären Eingänge der Teilschaltung, die das Teilsyndrom s5 tragen, sind mit dem zweiten 5-Bit breiten Eingang des Multiplizierers 831 und den 5 binären Eingängen des ODER-Gatters 843 verbunden.
  • Der Ausgang des Dritte-Potenzbildners 81, der das Signal s 1 3
    Figure DE102015121646B4_0392
    trägt, ist in den ersten 5-Bit breiten Eingang des Multiplizierers 832 und die in die 5 binären Eingänge des Quadrierers 822 geführt, dessen Ausgang das Signal s 1 6
    Figure DE102015121646B4_0393
    trägt und mit einem ersten 5-Bit breiten Eingang des Addierers 853 verbunden ist.
  • Der Ausgang des Quadrierers 821 trägt das Signal s 3 2
    Figure DE102015121646B4_0394
    und ist in einen ersten 5-Bit breiten Eingang des Addierers 851 geführt, dessen zweiter 5-Bit breiter Eingang mit dem Ausgang des Galoisfeldmultiplizierers 831 verbunden ist.
  • Der Ausgang des Addierers 851 ist in einen zweiten 5-Bit breiten Eingang des Addierers 852 geführt. Der erste 5-Bit breite Eingang des Addierers 852 ist mit dem Ausgang des Galoisfeldmultiplizierers 832 verbunden. Der Ausgang des Addierers 852 ist in den zweiten 5-Bit breiten Eingang des Addierers 853 geführt, dessen Ausgang das Signal s 1 3 s 3 + s 1 s 5 + s 1 6 + s 3 2
    Figure DE102015121646B4_0395
    trägt und mit den 5 binären Eingängen des ODER-Gatters 844 verbunden ist.
  • Für i = 1, 2, 3 ist der Ausgang der 1-Bit breite Ausgang des ODER-Gatters 84i in den i-ten Eingang des ODER-Gatters 845 geführt, dessen Ausgang mit einem dritten binären Eingang des UND-Gatters 864 verbunden ist.
  • Der Ausgang des ODER-Gatters 844 ist sowohl in einen jeweils negierten zweiten Eingang der UND-Gatter 861 und 864 geführt, als auch mit einem jeweils zweiten Eingang der UND-Gatter 862 und 863 verbunden.
  • Die letzte binäre Eingang der Teilschaltung, der das Teilsyndrom sp trägt, ist in den jeweils ersten Eingang der UND-Gatter 861 und 862 geführt, als auch mit einem jeweils negierten ersten Eingang der UND-Gatter 863 und 864 verbunden.
  • Das Signal det1 zur 1-Bitfehler-Erkennung wird am Ausgang des UND-Gatters 861 erzeugt, das Signal det2 zur 2-Bitfehler-Erkennung wird am Ausgang des UND-Gatters 864 erzeugt, das Signal det3 zur 3-Bitfehler-Erkennung wird am Ausgang des UND-Gatters 862 erzeugt und das Signal det4 zur 4-Bitfehler-Erkennung wird am Ausgang des UND-Gatters 863 erzeugt.
  • Obwohl die Erfindung im Detail durch das mindestens eine gezeigte Ausführungsbeispiel näher illustriert und beschrieben wurde, so ist die Erfindung nicht darauf eingeschränkt und andere Variationen können vom Fachmann hieraus abgeleitet werden, ohne den Schutzumfang der Erfindung zu verlassen.

Claims (28)

  1. Verfahren zur Korrektur eines Fehlers in einem Fehlermuster, - bei dem die Korrektur des Fehlers unter Verwendung eines modifizierten Fehlersyndroms durchgeführt wird, - wobei das modifizierte Fehlersyndrom unter Verwendung des Fehlermusters bestimmt ist, - wobei die Korrektur mittels eines Fehlercodes mit einem Codeabstand 2(t + 1) für K Fehlermuster aus jeweils M Bits durchgeführt wird und bei dem K · M = t + 1, t ≥ 2, K ≥ 1 und M ≥ 2 gelten.
  2. Verfahren nach Anspruch 1, bei dem das modifizierte Fehlersyndrom und ein unmodifiziertes Fehlersyndrom Teilsyndrome aufweisen und ein Teilsyndrom des modifizierten Fehlersyndroms aus einem entsprechenden Teilsyndrom des unmodifizierten Fehlersyndroms unter Verwendung des Fehlermusters bestimmt ist.
  3. Verfahren nach Anspruch 2, bei dem ein Teilsyndrom des modifizierten Fehlersyndroms aus einem entsprechenden Teilsyndrom des unmodifizierten Fehlersyndroms durch Multiplikation mit einer Konstanten bestimmt ist.
  4. Verfahren nach einem der vorhergehenden Ansprüche, bei dem das Fehlermuster benachbarte Bits aufweist.
  5. Verfahren nach einem der vorhergehenden Ansprüche, bei dem das Fehlermuster mindestens zwei Bits oder mindestens zwei Bitpositionen aufweist.
  6. Verfahren nach einem der vorhergehenden Ansprüche, bei dem das Fehlermuster eine Anzahl von M Bits aufweist, wobei jedes weitere Bit des Fehlermusters durch einen Abstand von einem ersten Bit des Fehlermusters bestimmt ist.
  7. Verfahren nach einem der vorhergehenden Ansprüche, bei dem dann, wenn mindestens ein Bit des Fehlermusters fehlerhaft ist, ein erstes Bit des Fehlermusters aus dem modifizierten Fehlersyndrom bestimmt ist.
  8. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die Korrektur basierend auf einer Anzahl der Fehlermuster durchgeführt wird.
  9. Verfahren nach einem der vorhergehenden Ansprüche, bei dem eine Anzahl von K zu korrigierende erste Bits der K gleichen Fehlermuster unter Verwendung des modifizierten Fehlersyndroms bestimmt sind.
  10. Verfahren nach Anspruch 9, bei dem die K Fehlermuster jeweils M Bits umfassen, die den Wert 1 aufweisen.
  11. Verfahren nach einem der vorhergehenden Ansprüche, - bei dem der Fehlercode mit dem Codeabstand 2(t + 1) ein t-Bitfehler korrigierender BCH-Code über einem Galoisfeld GF(2m) mit einbezogener Gesamtparität und einer H-Matrix H = ( H 1 H 3 H 2 t 1 P )
    Figure DE102015121646B4_0396
    ist, - bei dem Teilsyndrome s 1 m o d , s 3 m o d , , s 2 K 1 m o d
    Figure DE102015121646B4_0397
    des modifizierten Fehlersyndroms aus den unmodifizierten Teilsyndromen s1, s3,..., s2K-1 des Fehlersyndroms des BCH-Codes gemäß       s 1 m o d = s 1 β 1 1 ,       s 3 m o d = s 3 β 3 1 ,               s 2 K 1 m o d = s 2 K 1 β 2 K 1 1 ,
    Figure DE102015121646B4_0398
    bestimmt sind, wobei si ein Teilsyndrom des Fehlersyndroms, s i m o d
    Figure DE102015121646B4_0399
    ein Teilsyndrom des modifizierten Fehlersyndroms, βi eine Konstante und i = 1,..., (2K-1) eine Laufvariable bezeichnen.
  12. Verfahren nach Anspruch 11, bei dem zusätzlich eine Korrektur von beliebigen τ-Bitfehlern mit 1 ≤ τ ≤ t erfolgt, wobei im Falle eines τ-Bitfehlers mit 1 ≤ τ ≤ t die zu korrigierenden τ Bitpositionen durch die Teilsyndrome s1, s3, ... , s2t-1 bestimmt sind.
  13. Verfahren nach einem der Ansprüche 11 oder 12, - mit H 1 = ( α i 1 , α i 1 + d , , α i 1 + ( n 1 ) d ) H 3 = ( α 3 i 1 , α 3 ( i 1 + d ) , , α 3 ( i 1 + ( n 1 ) d ) ) H 2 t 1 = ( α ( 2 t 1 ) i 1 , α ( 2 t 1 ) ( i 1 + d ) , , α ( 2 t 1 ) ( i 1 + ( n 1 ) d ) ) P = ( 1,1, ,1 ) n ,
    Figure DE102015121646B4_0400
    - wobei die Operationen in den Exponenten der Elemente der H-Matrix modulo 2m - 1 auszuführen sind, - wobei α ein erzeugendes Element des Galoisfelds GF(2m) ist und - wobei die Elemente αj der H-Matrix Elemente des Galoisfelds GF(2m) in ihrer Vektordarstellung als m-dimensionale binäre Spaltenvektoren sind.
  14. Verfahren nach Anspruch 13, bei dem gelten: i 1 = 0 d = 1 H 1 = ( α 0 , α 1 , , α n 1 ) H 3 = ( α 0 , α 3 , , α ( n 1 ) 3 ) H 2 t 1 = ( α 0 , α ( 2 t 1 ) , , α ( n 1 ) ( 2 t 1 ) ) .
    Figure DE102015121646B4_0401
  15. Verfahren nach einem der Ansprüche 13 oder 14, bei dem die Konstanten β1, β3, ..., β2t-1 so bestimmt sind, dass für einen Fehler, der K gleiche Fehlermuster Fm mit dem normierten Fehlervektor e F m n o r m
    Figure DE102015121646B4_0402
    aufweist, gilt       β 1 α i 1 = H 1 [ e F m n o r m ] T       β 3 α 3 i 1 = H 3 [ e F m n o r m ] T                   β 2 t 1 α ( 2 t 1 ) i 1 = H 2 t 1 [ e F m n o r m ] T .
    Figure DE102015121646B4_0403
  16. Verfahren nach einem der Ansprüche 13 oder 14, bei dem die Konstanten β1, β3, ..., β2t-1 so bestimmt sind, dass für einen Fehler, der K gleiche Fehlermuster Fm mit dem normierten Fehlervektor e F m n o r m
    Figure DE102015121646B4_0404
    aufweist, gilt       β 1 = H 1 [ e F m n o r m ] T       β 3 = H 3 [ e F m n o r m ] T          β 2 t 1 = H 2 t 1 [ e F m n o r m ] T .
    Figure DE102015121646B4_0405
  17. Verfahren nach einem der Ansprüche 13 bis 16, bei dem für das Fehlermuster F m = [ M , D 1 , , D M 1 ]
    Figure DE102015121646B4_0406
    gilt      H 1 e F m n o r m = α i 1 ( 1 + α D 1 d + α ( D 1 + D 2 ) d + + α ( D 1 + D 2 + + D M 1 ) d )        H 3 e F m n o r m = α 3 i 1 ( 1 + α 3 D 1 d + α 3 ( D 1 + D 2 ) d + + α 3 ( D 1 + D 2 + + D M 1 ) d )                      H 2 t 1 e F m n o r m = α ( 2 t 1 ) i 1 ( 1 + α ( 2 t 1 ) D 1 d + α ( 2 t 1 ) ( D 1 + D 2 ) d + +                      + α ( 2 t 1 ) ( D 1 + D 2 + + D M 1 ) d ) .
    Figure DE102015121646B4_0407
  18. Verfahren nach einem der Ansprüche 13 bis 16, bei dem für das Fehlermuster F m = [ M , D 1 , , D M 1 ]
    Figure DE102015121646B4_0408
    gilt       H 1 e F m n o r m = 1 + α D 1 + α ( D 1 + D 2 ) + + α ( D 1 + D 2 + + D M 1 )       H 3 e F m n o r m = 1 + α 3 D 1 + α 3 ( D 1 + D 2 ) + + α 3 ( D 1 + D 2 + + D M 1 )                      H 2 t 1 e F m n o r m = 1 + α ( 2 t 1 ) D 1 + α ( 2 t 1 ) ( D 1 + D 2 ) + + α ( 2 t 1 ) ( D 1 + D 2 + + D M 1 ) .
    Figure DE102015121646B4_0409
  19. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die Korrektur eines Fehlers eine Korrektur eines Fehlervektors umfasst, wobei der Fehlervektor mindestens ein Fehlermuster umfasst.
  20. Verfahren nach Anspruch 19, bei dem das erste Bit des Fehlermusters nur vorgegebene Bitpositionen des Fehlervektors annehmen kann.
  21. Verfahren nach einem der Ansprüche 19 oder 20, bei dem das Fehlermuster aus zwei Bits besteht und der Fehlervektor eines 4-Bitfehlers aus zwei 2-Bitfehlern besteht.
  22. Verfahren nach einem der Ansprüche 19 oder 20, bei dem das Fehlermuster aus zwei Bits besteht und der Fehlervektor eines 6-Bitfehlers aus drei 2-Bitfehlern besteht.
  23. Verfahren nach einem der Ansprüche 19 oder 20, bei dem das Fehlermuster aus drei Bits besteht und der Fehlervektor eines 6-Bitfehlers aus zwei 3-Bitfehlern besteht.
  24. Verfahren nach einem der vorhergehenden Ansprüche, bei dem das Verfahren wenigstens teilweise durch eine Schaltungsanordnung in Hardware und/oder wenigstens teilweise mittels Software implementiert ist.
  25. Verfahren nach einem der vorhergehenden Ansprüche, bei dem ein einer Anzahl der Fehler entsprechendes Lokatorpolynom iterativ nach dem Berlekamp-Massey-Algorithmus bestimmt wird.
  26. Vorrichtung zur Korrektur eines Fehlers, wobei die Vorrichtung eine Verarbeitungseinheit aufweist, die derart eingerichtet ist, dass - die Korrektur des Fehlers mittels modifizierter Fehlersyndrome durchführbar ist, - wobei der Fehler auf mindestens einem Fehlermuster basiert, - wobei die Korrektur mittels eines Fehlercodes mit einem Codeabstand 2(t + 1) für K Fehlermuster aus jeweils M Bits durchgeführt wird und bei dem K · M = t + 1, t ≥ 2, K ≥ 1 und M ≥ 2 gelten.
  27. Computerprogrammprodukt, das direkt in einen Speicher eines digitalen Computers ladbar ist, umfassend Programmcodeteile, die dazu geeignet sind, Schritte des Verfahrens nach einem der Ansprüche 1 bis 25 durchzuführen.
  28. Computerlesbares Speichermedium umfassend von einem Computer ausführbare Anweisungen, die dazu geeignet sind, dass der Computer Schritte des Verfahrens nach einem der Ansprüche 1 bis 25 durchführt.
DE102015121646.9A 2015-12-11 2015-12-11 Fehlerkorrektur Active DE102015121646B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102015121646.9A DE102015121646B4 (de) 2015-12-11 2015-12-11 Fehlerkorrektur

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102015121646.9A DE102015121646B4 (de) 2015-12-11 2015-12-11 Fehlerkorrektur

Publications (2)

Publication Number Publication Date
DE102015121646A1 DE102015121646A1 (de) 2017-06-14
DE102015121646B4 true DE102015121646B4 (de) 2020-10-08

Family

ID=58773489

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015121646.9A Active DE102015121646B4 (de) 2015-12-11 2015-12-11 Fehlerkorrektur

Country Status (1)

Country Link
DE (1) DE102015121646B4 (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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BADACK, C.; KERN, T.; GÖSSEL, M.: Modified DEC BCH codes for parallel correction of 3-bit errors comprising a pair of adjacent errors. 20th International On-Line Testing Symposium, 2014, S. 116-121. IEEE Xplore [online]. DOI: 10.1109/IOLTS.2014.6873682, In: IEEE *

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
DE102015121646A1 (de) 2017-06-14

Similar Documents

Publication Publication Date Title
DE102011085602B4 (de) Vorrichtung und Verfahren zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz
DE102013215055B4 (de) Schaltungsanordnung, Vorrichtung, Verfahren und Computerprogramm mit modifiziertem Fehlersyndrom zur Fehlererkennung von permanenten Fehlern in Speichern
DE102017125617B4 (de) Bestimmung und Verwendung von Bytefehlerpostionssignalen
DE2060643B2 (de) Schaltungsanordnung zur Korrektur von Einzelfehlern
DE102007038114A1 (de) Fehlerkorrekturschaltung, Halbleiterspeicherelement und Fehlerkorrekturverfahren
DE102014215252B9 (de) Wirksame fehlerkorrektur von mehrbitfehlern
DE102006005817B4 (de) Fehlererkennungsvorrichtung für einen Adressdecoder und Vorrichtung zur Fehlererkennung für einen Adressdecoder
DE102011087634B9 (de) Vorrichtung und verfahren zum erfassen eines fehlers in einem codierten binärwort
DE102005022107B9 (de) Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge
DE2217935A1 (de) Anordnung und Verfahren zur Korrektur von Doppelfehlern
DE102018131613A1 (de) Fehlererkennung mittels Gruppenfehler
DE102020110787B3 (de) Schaltung und verfahren zum kodieren oder dekodieren eines datenworts
DE102015121646B4 (de) Fehlerkorrektur
DE102011087457A1 (de) Vorrichtung und verfahren zum erfassen eines fehlers in einer mehrzahl von codierten binärwörtern, die durch einen fehlerkorrekturcode codiert sind
DE102021109391B3 (de) Multibytefehler-Erkennung
DE102010041680B4 (de) Vorrichtung und Verfahren zum Bestimmen einer Position eines 1-Bit-Fehlers in einer codierten Bitsequenz, Vorrichtung und Verfahren zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz und Decodierer und Verfahren zum Decodieren einer fehlerhaften, codierten Bitsequenz
DE102016104012A1 (de) Verarbeitung eines Datenworts
DE102013219088B9 (de) Schaltungsanordnung und Verfahren zur Realisierung von Prüfbitkompaktierung für Cross-Parity-Codes
DE102019113970B4 (de) Erkennung von adressfehlern
DE102015118668B4 (de) Fehlerkorrektur
DE102018126685B3 (de) Verarbeitung von Daten
DE102015111729B4 (de) Verfahren und decoder zum bestimmen eines fehlervektors für ein datenwort gemäss einem reed-muller-code
DE102022101798B3 (de) Fehlerverarbeitung
DE102011080659B4 (de) Vorrichtung und verfahren zum testen einer zu testenden schaltung
DE102022111624B4 (de) Fehlerkorrektur mit schneller Syndromberechnung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final