DE102011085602A1 - Vorrichtung und Verfahren zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz - Google Patents

Vorrichtung und Verfahren zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz Download PDF

Info

Publication number
DE102011085602A1
DE102011085602A1 DE102011085602A DE102011085602A DE102011085602A1 DE 102011085602 A1 DE102011085602 A1 DE 102011085602A1 DE 102011085602 A DE102011085602 A DE 102011085602A DE 102011085602 A DE102011085602 A DE 102011085602A DE 102011085602 A1 DE102011085602 A1 DE 102011085602A1
Authority
DE
Germany
Prior art keywords
matrix
sub
bits
bit
predefined
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE102011085602A
Other languages
English (en)
Other versions
DE102011085602B4 (de
Inventor
Ulrich Backhausen
Michael Goessel
Thomas Kern
Stephane Lacouture
Thomas Rabenalt
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
Publication of DE102011085602A1 publication Critical patent/DE102011085602A1/de
Application granted granted Critical
Publication of DE102011085602B4 publication Critical patent/DE102011085602B4/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
    • 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
    • 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/155Shortening or extension of 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/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
    • 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/159Remainder calculation, e.g. for encoding and syndrome calculation
    • 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
    • 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/65Purpose and implementation aspects
    • H03M13/6575Implementations based on combinatorial logic, e.g. Boolean circuits

Landscapes

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

Abstract

Eine Vorrichtung zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz weist einen Fehlersyndromgenerator und einen Bitfehlerkorrektor auf. Der Fehlersyndromgenerator bestimmt das Fehlersyndrom einer codierten Bitsequenz, das ableitbar ist durch eine Multiplikation einer Prüfmatrix mit einer codierten Bitsequenz. Die Prüfmatrix weist eine erste Untermatrix, eine zweite Untermatrix und eine dritte Untermatrix auf, wobei jede Untermatrix eine Mehrzahl von Reihen aufweist, wobei jede Reihe eine Mehrzahl von binären Komponenten aufweist. Zumindest eine erste vordefinierte Komponente oder eine zweite vordefinierte Komponente jeder Reihe der ersten Untermatrix weist einen ersten Bitwert auf. Ferner weist die zweite Untermatrix Reihen auf, die linear unabhängig voneinander sind, und die erste vordefinierte Komponente und die zweite vordefinierte Komponente jeder Reihe der zweiten Untermatrix weisen einen gleichen zweiten Bitwert auf. Die dritte Untermatrix weist Reihen auf, die linear unabhängig voneinander sind, und die erste vordefinierte Komponente oder die zweite vordefinierte Komponente jeder Reihe der dritten Untermatrix weist den ersten Bitwert auf. Ferner ist entweder eine XOR-Summe der ersten vordefinierten Komponenten aller Reihen der ersten Untermatrix und der dritten Untermatrix gleich dem zweiten Bitwert und eine XOR-Summe der zweiten vordefinierten Komponenten aller Reihen der ersten Untermatrix und der dritten Untermatrix ist gleich dem zweiten Bitwert, falls der erste Bitwert gleich 1 ist, oder eine XNOR-Summe der ersten vordefinierten Komponenten aller Reihen der ersten Untermatrix und der dritten Untermatrix ist gleich dem zweiten Bitwert und eine XNOR-Summe der zweiten vordefinierten Komponenten aller Reihen der ersten Untermatrix und der dritten Untermatrix ist gleich dem zweiten Bitwert, falls der erste Bitwert gleich 0 ist. Außerdem ist ein Ergebnis einer Multiplikation einer Prüfmatrix und eines Testvektors gleich einem Ergebnis einer Multiplikation der zweiten Untermatrix und eines resultierenden Vektors, wobei zumindest eine Komponente des resultierenden Vektors den zweiten Bitwert aufweist. Der Bitfehlerkorrektor korrigiert einen Bitfehler in der codierten Bitsequenz basierend auf dem bestimmten Fehlersyndrom der codierten Bitsequenz.

Description

  • Ausführungsbeispiele gemäß der Erfindung beziehen sich auf Fehlerkorrektur und Fehlererfassung von digitalen Signalen und insbesondere auf eine Vorrichtung und ein Verfahren zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz.
  • Aufgrund der hohen Integrationsdichte von elektronischen Schaltungen und Speicherungen erhöht sich die Frequenz von Fehlern.
  • Abgesehen von 1-Bit-Fehlern sind zunehmend auch 2-Bit-Fehler und allgemein Mehr-Bit-Fehler zu berücksichtigen, d. h. zu korrigieren und zu erfassen. Bei der Fehlerkorrektur ist es insbesondere von Bedeutung, die aufgetretenen Fehler schnell zu korrigieren, falls möglich innerhalb des aktuellen Taktzyklus, um eine verzögerte Verarbeitung der korrigierten Daten im Vergleich zu den unkorrigierten Daten zu verhindern.
  • Sehr häufig werden Daten unter einer Adresse in einen Speicher geschrieben und nach einer gewissen Zeit ausgelesen. Hier ist es möglich, dass die Daten, wenn sie aus dem Speicher gelesen werden, fehlerhaft oder verfälscht sind und nach dem Auslesen korrigiert werden müssen.
  • Hier treten sowohl Ein-Bit-Fehler, Zwei-Bit-Fehler und allgemein Mehr-Bit-Fehler auf, die mit abnehmender Wahrscheinlichkeit zufällig verursacht werden, und es treten auch Fehler auf, in denen alle Speicherzellen fälschlicherweise den Wert 0 annehmen, was als „All-0” bezeichnet wird, und auch Fehler, wo alle Speicherzellen den Wert 1 annehmen, was hier als „All-1” bezeichnet wird.
  • Es ist auch von besonderem Interesse, mögliche Adressfehler mit einer hohen Wahrscheinlichkeit zu erfassen, da eine fehlerhafte Adresse, beispielsweise beim Auslesen aus einem Speicher, zu vollständig unterschiedlichen Daten führen kann. Es ist möglich, 1-Bit-Fehler durch Hamming-Code oder Hsiao-Codes und 2-Bit-Fehler relativ schnell durch BCH-Codes zu korrigieren, die parallel implementiert sind.
  • Nachteilhaft bei herkömmlichen Lösungen für 1-Bit- und 2-Bit-Fehlerkorrektur ist beispielsweise, dass die Fehler „All-0” und „All-1” nicht Teil der Fehlererfassung sind. Allgemein ist es von großem Interesse, die Zuverlässigkeit von Fehlerkorrektur- und Fehlererfassungskonzepten zu verbessern.
  • Es ist die Aufgabe der vorliegenden Erfindung, eine Vorrichtung zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz, einen Decodierer zum Decodieren einer fehlerhaften codierten Bitsequenz, eine weitere Vorrichtung, eine Schaltungsanordnung zum Erzeugen eines m-stelligen Syndroms, ein Verfahren zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz sowie ein Computerprogramm mit verbesserten Charakteristika zu schaffen.
  • Die Aufgabe wird gelöst durch die Merkmale der unabhängigen Ansprüche. Weiterbildungen finden sich in den abhängigen Ansprüchen.
  • Ein Ausführungsbeispiel der Erfindung schafft eine Vorrichtung zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz. Die Vorrichtung weist einen Fehlersyndromgenerator und einen Bitfehlerkorrektor auf. Der Fehlersyndromgenerator ist konfiguriert, um ein Fehlersyndrom einer codierten Bitsequenz zu bestimmen, das ableitbar ist durch eine Multiplikation einer Prüfmatrix mit der codierten Bitsequenz. Die Prüfmatrix weist eine erste Untermatrix, eine zweite Untermatrix und eine dritte Untermatrix auf. Jede Untermatrix weist eine Mehrzahl von Reihen auf, wobei jede Reihe eine Mehrzahl von binären Komponenten aufweist. Ferner weist zumindest eine erste vordefinierte Komponente oder eine zweite vordefinierte Komponente jeder Reihe der ersten Untermatrix einen ersten Bitwert auf. Die zweite Untermatrix weist Reihen auf, die linear unabhängig voneinander sind, und die erste vordefinierte Komponente und die zweite vordefinierte Komponente jeder Reihe der zweiten Untermatrix weisen einen gleichen zweiten Bitwert auf. Die dritte Untermatrix weist Reihen auf, die linear unabhängig voneinander sind, und die erste vordefinierte Komponente oder die zweite vordefinierte Komponente jeder Reihe der ersten Untermatrix weist den ersten Bitwert auf. Ferner ist entweder eine XOR-Summe der ersten vordefinierten Komponenten aller Reihen der ersten Untermatrix und der dritten Untermatrix gleich dem zweiten Bitwert und eine XOR-Summe der zweiten vordefinierten Komponenten aller Reihen der ersten Untermatrix und der dritten Untermatrix ist gleich dem zweiten Bitwert, falls der erste Bitwert gleich 1 ist, oder eine XNOR-Summe der ersten vordefinierten Komponenten aller Reihen der ersten Untermatrix und der dritten Untermatrix ist gleich dem zweiten Bitwert und eine XNOR-Summe der zweiten vordefinierten Komponenten aller Reihen der ersten Untermatrix und der dritten Untermatrix ist gleich dem zweiten Bitwert, falls der erste Bitwert gleich 0 ist. Außerdem ist ein Ergebnis einer Multiplikation der Prüfmatrix und eines Testvektors gleich einem Ergebnis einer Multiplikation der zweiten Untermatrix und eines resultierenden Vektors, wobei zumindest eine Komponente des resultierenden Vektors den zweiten Bitwert aufweist. Ferner ist der Bitfehlerkorrektor konfiguriert, um einen Bitfehler in der codierten Bitsequenz zu korrigieren basierend auf dem bestimmten Fehlersyndrom der codierten Bitsequenz.
  • Durch Verwenden eines Fehlersyndroms, das gemäß einer Prüfmatrix mit oben beschriebenen Eigenschaften bestimmt wird, können die Fehlerkorrektur- und Fehlererfassungsfähigkeiten des vorgeschlagenen Konzepts wesentlich besser sein als mit bekannten Konzepten. Beispielsweise ermöglicht das vorgeschlagene Konzept, jeden 1-Bit-Fehler von All-1-Fehlern oder All-0-Fehlern zu unterscheiden. Somit kann es nicht der Fall sein, dass ein Wort, das aus einem Speicher gelesen wird, im Fall eines korrigierbaren 1-Bit-Fehlers mit einem All-0-Fehler oder einem All-1-Fehler verwechselt wird.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1 ein Blockdiagramm einer Vorrichtung zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz;
  • 2 eine schematische Darstellung einer Codierung unter Berücksichtigung von Adressbits;
  • 3 eine schematische Darstellung einer Codierung für eine getrennte H-Matrix unter Berücksichtigung von Adressbits;
  • 4 eine schematische Darstellung einer Integration eines Syndromgenerators;
  • 5 eine schematische Darstellung einer Integration eines Syndromgenerators, der eine All-0- und All-1-Erfassung umfasst;
  • 6 eine schematische Darstellung einer Ableitung eines Korrekturvektors für Datenbits;
  • 7 eine schematische Darstellung einer Ableitung eines Korrekturvektors für Daten- und Prüfbits;
  • 8 eine schematische Darstellung einer Ableitung eines Korrekturvektors für Daten-, Prüf- und Adressbits;
  • 9 eine schematische Darstellung einer Erzeugung eines Adressfehlersignals;
  • 10, 11, 12, 13 schematische Darstellungen einer Ableitung eines Korrektursignals;
  • 14a14i schematische Darstellungen einer Bestimmung von Korrekturwerten; und
  • 15 ein Blockdiagramm eines Decodierers zum Decodieren einer fehlerhaften codierten Bitsequenz; und
  • 16 ein Flussdiagramm eines Verfahrens zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz.
  • Nachfolgend werden teilweise die gleichen Bezugszeichen für Objekte und Funktionseinheiten verwendet, die die gleichen oder ähnlichen Funktionseigenschaften haben, und die Beschreibung derselben bezüglich einer Figur soll auch für andere Figuren gelten, um Redundanz bei der Beschreibung der Ausführungsbeispiele zu reduzieren.
  • Bevor das vorgeschlagene Konzept näher beschrieben wird, werden kurz einige theoretischen Grundlagen und grundlegende Begriffe von linearen Blockcodes, insbesondere Hamming-Codes, Hsiao-Codes und BCH-Codes präsentiert. Diese sind beispielsweise auch beschrieben in „Fujiwara, E., Code Design for Dependable Systems, Wiley, 2006, S. 49–53, S. 98–101, und in Tzschach, H. und Haflinger, G., Codes für den störungsgesicherten Datentransfer, Oldenburg Verlag, 1993, S. 111–121”.
  • Ein Hamming-Code ist ein linearer Blockcode mit einem Codeabstand 3. Falls m die Anzahl von Prüfbits ist, ist seine Länge n = 2m – 1. Die Anzahl von Datenbits ist k = 2m – 1 – m. Wie jeder lineare Code kann der Hamming-Code wie üblich beschrieben werden durch eine Generatormatrix G, kurz G-Matrix, und eine Prüfmatrix H (auch als Paritätsprüfmatrix bezeichnet), kurz H-Matrix. Die Prüfmatrix eines unverkürzten Hamming-Codes ist eine (m, n)-Matrix, deren Spalten alle möglichen unterschiedlichen 2m – 1 binären Vektoren ungleich 0 sind. Diese Spalten werden auch beschrieben als m-stellige Binärzahlen und das Folgende gilt:
    Figure 00050001
    wobei ibin die Darstellung von i als ein m-stelliges Binärbauglied bezeichnet.
  • Ein Hamming-Code kann verkürzt werden, wie jeder andere lineare Blockcode, durch Eliminieren einer bestimmten Anzahl von Spalten in der Prüfmatrix des unverkürzten Codes. Abgesehen davon können Spalten auch ausgetauscht werden, sodass die Prüfmatrix transformiert werden kann.
  • Von der Prüfmatrix eines linearen Codes kann eine Generatormatrix bestimmt werden, kurz G-Matrix. Die Generatormatrix ist eine (k, n)-Matrix. Falls k Informationsbits u1, ..., uk vorliegen, werden dieselben durch die Generatormatrix in ein Codewort v codiert: v = (v1, ..., vn) = u·G = (u1, ..., uk)·G
  • Falls ein Wort v' = v1, ..., vn daraufhin geprüft wird, ob es ein Codewort ist, wird ein Syndrom S gebildet mit S = H·v'T mit S = S1, ..., Sm. Falls S = 0, dann wird kein Fehler erfasst. Falls S = hi, liegt ein 1-Bit-Fehler in dem i-ten Bit von v' vor.
  • Die Fehlerkorrektur der Bits v'1, ..., v'n kann durchgeführt werden durch Korrekturschaltungen K1, ..., Kn, die einen Korrekturwert Δv1 von dem Fehlersyndrom S bestimmen, das XOR-verknüpft wird (verbunden durch eine logische XOR-Funktion) mit v'i. Für i = 1, ..., n im Fall eines 1-Bit-Fehlers gibt die Korrekturschaltung einen Wert 1 aus, falls S = hi. Falls das Fehlersyndrom gleich 0 ist, gibt die Korrekturschaltung den Wert 0 aus.
  • Ein Hsiao-Code ist ein linearer Code mit einem Codeabstand von 4. Falls der Hsiao-Code m Prüfbits hat, besteht seine Prüfmatrix H aus nur m-stellige Binärvektoren, die eine ungerade Anzahl von Einsen aufweisen. Die Länge eines (unverkürzten) Hsiao-Codes mit m-Prüfbits ist n = 2m-1, da es 2m-1 unterschiedliche m-stellige Binärvektoren mit einer ungeraden Anzahl von Einsen gibt. Durch Löschen von Spalten und durch Neuordnen von Spalten des unverkürzten Hsiao-Codes wird eine Prüfmatrix eines verkürzten Hsiao-Codes erhalten. Testen eines Worts v' = v1, ..., vn wird erneut durchgeführt durch Prüfen des Fehlersyndroms S = H·v'T.
  • Falls S = hj, d. h. gleich der j-ten Spalte der Prüfmatrix, wird ein 1-Bit-Fehler in dem j-ten Bit korrigiert durch XOR-Verknüpfen (Anlegen einer logischen XOR-Funktion) eines Korrekturwerts Δvj = 1 mit v'j. Dieser Korrekturwert Δvj kann bestimmt werden von dem Fehlersyndrom S durch eine Korrekturschaltung Kj. Die Korrekturschaltung Kj gibt dann einen Wert 1, aus, falls S = hj. Falls S ein Binärvektor mit einer geraden Anzahl von Einsen ist, wird ein unkorrigierbarer Fehler angezeigt.
  • Da die Anwendung des vorgeschlagenen Konzepts auf BCH-Codes (Bose-Chaudhuri-Hocquenghem-Codes) auch von besonderem Interesse ist, werden einige Charakteristika von BCH-Codes beschrieben. Dieselben sind beispielsweise ebenfalls beschrieben in „Tzschach, H. und Haßlinger, G.: Codes für den störungssicheren Datentransfer, Oldenburg Verlag 1993, S. 111–121” und „Lin, S., Costello, D.: Error Control Coding, Prentice Hall, 1983, Kapitel 6”.
  • Ein BCH-Code ist ein spezieller zyklischer Code und somit ein linearer Code. Ein BCH-Code kann beschrieben werden als ein zyklischer Code durch ein spezielles Generatorpolynom G(z) und als ein linearer Code durch eine Generatormatrix G und durch eine Prüfmatrix H.
  • Im Fall eines 2-Bit-Fehlerkorrektur-BCH-Codes kann das Generatorpolynom in seiner einfachsten Form dargestellt werden als G(z) = mα(z)·mα³(z) (1)
  • Hier ist mα(z) ein primitives Polynom, das auch als modulares Polynom des betrachteten Galois-Feldes dient. α ist ein primitives Element des Galois-Feldes und Wurzel des Polynoms. Das Polynom mα³(z) ist das minimale Polynom der Wurzel α3. Das zugeordnete Galois-Feld ist bezeichnet durch GF(2M). Die Länge des unverkürzten BCH-Codes ist dann 2M – 1. Falls die Gesamtparität betrachtet wird, kann G(z) in der folgenden Form dargestellt werden. G(z) = mα(z)·mα³(z)·(z + 1) (2)
  • Ohne die Gesamtparität zu integrieren, kann die Prüfmatrix in ihrer getrennten Form dargestellt werden als
    Figure 00070001
    wobei α ein primitives Element des Galois-Feldes GF(2M) ist, und die Exponenten von α jeweils zu interpretieren sind modulo 2M – 1. Die Parität kann in der Fehlererfassung enthalten sein durch Auswählen der Prüfmatrix als
    Figure 00070002
    wobei es in der letzten Zeile nur Einsen gibt.
  • Ein 1-Bit-Fehler in der i-ten Bitposition ist beschrieben als [i], ein L-Bit-Fehler in den Positionen i1, i2, ..., il als [i1, i2, ..., iL]. Jedem Fehler [i1, ..., iL] ist ein n-Komponenten-Fehlervektor e(i1, ..., iL) = (e0, ..., en-1) zugeordnet, wobei
    Figure 00070003
  • Die Komponente ej des Fehlervektors e[i1, ..., iL] ist gleich 1, genau wenn das entsprechende j-te Bit fehlerhaft ist.
  • Einem Fehler [i1, ..., iL] mit dem Fehlervektor e = e[i1, ..., iL] ist ein Fehlersyndrom
    Figure 00070004
    mit s1 = H1·e und s3 = H3·e zugeordnet.
  • Durch Löschen von Spalten und durch Neuordnen von Spalten der Prüfmatrix H sep / BCH wird ein verkürzter BCH-Code erhalten, der an eine erforderliche Wortbreite angepasst ist.
  • Falls die Parität nicht berücksichtigt wird, ist der Codeabstand 5, und falls die Parität berücksichtigt wird, ist der Codeabstand 6. Dann können 1-Bit-Fehler und 2-Bit-Fehler unter Verwendung des Syndroms korrigiert werden. Die Syndrome aller 3-Bit-Fehler, Parität eingeschlossen, unterscheiden sich von den Syndromen von All-1-Bit und 2-Bit-Fehlern, aber können untereinander dieselben sein.
  • Das Codieren eines BCH-Codes und eines verkürzten BCH-Codes als einen speziellen linearen Code kann mit der Hilfe einer Generatormatrix durchgeführt werden, und das Decodieren mit der Hilfe einer Prüfmatrix. Die Verbindung zwischen dem Generatorpolynom und Generatormatrix und Textmatrix ist beispielsweise beschrieben in „Lin, S. und Costello, D.: Error Control Coding, Prentice-Hall, 1983, S. 92–95”.
  • Nachfolgend wird das erfindungsgemäße Konzept durch einige allgemeine und einige detaillierte Ausführungsbeispiele beschrieben.
  • 1 zeigt ein Blockdiagramm einer Vorrichtung 100 zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz 102 gemäß einem Ausführungsbeispiel der Erfindung. Die Vorrichtung 100 weist einen Fehlersyndromgenerator 110 auf, der mit einem Bitfehlerkorrektor 120 verbunden ist. Der Fehlersyndromgenerator 110 bestimmt ein Fehlersyndrom 112 einer codierten Bitsequenz 102, ableitbar durch eine Multiplikation einer Prüfmatrix H mit der Bitsequenz 102. Die Prüfmatrix H weist eine erste Untermatrix Hu, eine zweite Untermatrix Ha und eine dritte Untermatrix Hc auf. Jede Untermatrix weist eine Mehrzahl von Reihen auf und jede Reihe weist eine Mehrzahl von binären Komponenten auf. Zumindest eine erste vordefinierte Komponente oder eine zweite vordefinierte Komponente jeder Reihe der ersten Untermatrix Hu weist einen ersten Bitwert (1 oder 0) auf. Ferner weist die zweite Untermatrix Ha Reihen auf, die linear unabhängig voneinander sind (d. h. jede Reihe der zweiten Untermatrix ist linear unabhängig von jeder anderen Reihe der zweiten Untermatrix), und die erste vordefinierte Komponente und die zweite vordefinierte Komponente jeder Reihe der zweiten Untermatrix Ha weist einen gleichen zweiten Bitwert (0 oder 1) auf. Die dritte Untermatrix Hc weist Reihen auf, die linear unabhängig voneinander sind, und die erste vordefinierte Komponente oder die zweite vordefinierte Komponente jeder Reihe der dritten Untermatrix Hc weist den ersten Bitwert (1 oder 0) auf. Falls der erste Bitwert gleich 1 ist, ist eine XOR-Summe der ersten vordefinierten Komponenten aller Reihen der ersten Untermatrix Hu und der dritten Untermatrix Hc gleich dem zweiten Bitwert 0, und die XOR-Summe der zweiten vordefinierten Komponenten aller Reihen der ersten Untermatrix Hu und der dritten Untermatrix Hc ist gleich dem zweiten Bitwert 0. Falls der erste Bitwert gleich 0 ist, ist eine XNOR-Summe der ersten vordefinierten Komponenten aller Reihen der ersten Untermatrix Hu und der dritten Untermatrix Hc gleich dem zweiten Bitwert 1, und eine XNOR-Summe der zweiten vordefinierten Komponenten aller Reihen der ersten Untermatrix Hu und der dritten Untermatrix Hc ist gleich dem zweiten Bitwert 1. Zusätzliche Ergebnisse einer Multiplikation der Prüfmatrix H und eines Testvektors sind gleich einem Ergebnis einer Multiplikation der zweiten Untermatrix Ha und eines resultierenden Vektors, wobei zumindest eine Komponente des resultierenden Vektors den zweiten Bitwert (0 oder 1) aufweist. Ferner korrigiert der Bitfehlerkorrektor 120 einen Bitfehler in der codierten Bitsequenz 102 basierend auf dem bestimmten Fehlersyndrom 112 der codierten Bitsequenz 102, um eine korrigierte Bitsequenz 122 zu erhalten.
  • Durch Verwenden eines Fehlersyndroms 112, ableitbar durch eine oben beschriebene Prüfmatrix, kann eine Fehlerkorrekturschaltung für 1-Bit- und 2-Bit-Fehler realisiert werden, die in der Lage ist, beispielsweise auch die Fehler All-0 und All-1 zu erfassen. Anders ausgedrückt, die Vorrichtung 100 ermöglicht es, jeden 1-Bit-Fehler von Fehlern All-1 und All-0 zu unterscheiden. Somit kann es beispielsweise nicht mehr der Fall sein, dass ein Wort, das aus einem Speicher gelesen wird, im Fall eines korrigierbaren 1-Bit-Fehlers mit einem All-0- oder All-1-Fehler verwechselt wird. Die Erfassung und/oder Korrektur von All-0- und All-1-Fehlern ist von großem Interesse, da diese Ausfälle sehr häufig sind.
  • Der erste Bitwert und der zweite Bitwert können eine logische 0 oder eine logische 1 sein oder ein hoher Pegel oder ein niedriger Pegel eines Signals in der Schaltungsanordnung. Daher gibt es zwei mögliche Fälle. Entweder ist der erste Bitwert gleich 1 (logische 1) und der zweite Bitwert ist gleich 0 (logische 0) oder der erste Bitwert ist gleich 0 und der zweite Bitwert ist gleich 1. Beide Fälle stellen äquivalente Implementierungen des beschriebenen Konzepts dar.
  • Dies zeigt, dass das beschriebene Konzept realisiert werden kann unter Verwendung von positiver oder negativer Logik. Der einzige Unterschied ist, dass die XOR-Summe verwendet wird, falls der erste Bitwert gleich 1 ist, und die XNOR-Summe verwendet wird, falls der erste Bitwert gleich 0 ist. In diesem Zusammenhang bedeutet eine XOR-Summe der ersten vordefinierten Komponenten aller Reihen das Anlegen der logischen XOR-Funktion (Exklusive-OR-Funktion) an die ersten vordefinierten Komponenten aller Reihen, was zu einem Bitwert (entweder 0 oder 1) führt. Folglich bedeutet die XNOR-Summe der ersten vordefinierten Komponenten aller Reihen das Anlegen der logischen XNOR-Funktion (Exklusive-Nicht-OR-Funktion) an die ersten Komponenten aller Reihen, was zu einem Bitwert (entweder 0 oder 1) führt. Dasselbe gilt für die zweite vordefinierte Komponente. Dies kann beispielsweise realisiert werden durch ein XOR-Gatter oder ein XNOR-Gatter mit einer Anzahl von Eingängen, die der Anzahl von Reihen der Matrizen entspricht.
  • Ferner kann eine Reihe einer Matrix eine Zeile oder eine Spalte einer Matrix sein. Da eine Matrix leicht zu transponieren ist, kann das erfindungsgemäße Konzept unabhängig davon realisiert werden, ob eine Reihe einer Matrix eine Zeile oder eine Spalte ist. Daher gibt es erneut zwei mögliche Fälle. Entweder jede erwähnte Reihe einer Matrix ist eine Spalte der jeweiligen Matrix und die gleichen Komponenten (z. B. erste vordefinierten Komponenten oder zweite vordefinierten Komponenten) jeder Reihe einer Matrix stellen eine Zeile dieser Matrix dar. Andernfalls ist jede Reihe einer Matrix eine Zeile der jeweiligen Matrix und die gleichen Komponenten der Reihe einer Matrix stellen eine Spalte dieser Matrix dar.
  • Folglich ist in Verbindung mit dem beschriebenen Konzept jede Reihe der ersten Untermatrix, der zweiten Untermatrix und der dritten Untermatrix eine Spalte der jeweiligen Untermatrix. Die ersten vordefinierten Komponenten der Reihen der ersten Untermatrix Hu, der zweiten Untermatrix Ha und der dritten Untermatrix Hc stellen eine Zeile der Prüfmatrix H dar, und die zweiten vordefinierten Komponenten der Reihen der ersten Untermatrix Hu, der zweiten Untermatrix Ha und der dritten Untermatrix Hc stellen eine weitere Zeile der Prüfmatrix H dar. Alternativ ist jede Reihe der ersten Untermatrix Hu, der zweiten Untermatrix Ha und der dritten Untermatrix Hc eine Zeile der jeweiligen Untermatrix. Die ersten vordefinierten Komponenten der Reihen der ersten Untermatrix Hu, der zweiten Untermatrix Ha und der dritten Untermatrix Hc stellen eine Spalte der Prüfmatrix H dar, und die zweiten vordefinierten Komponenten der Reihen der ersten Untermatrix Hu, der zweiten Untermatrix Ha und der dritten Untermatrix Hc stellen eine andere Spalte der Prüfmatrix H dar.
  • Jede Reihe einer Matrix weist eine Mehrzahl von binären Komponenten auf. Anders ausgedrückt, jede Komponente ist entweder gleich 1 oder gleich 0. In diesem Zusammenhang können eine erste vordefinierte Komponente und eine zweite vordefinierte Komponente tatsächlich die erste und die zweite Komponente einer Reihe sein, aber dieselben können auch beliebige andere Komponenten sein (z. B. die letzte und die zweitletzte Komponente oder die dritte Komponente und die fünfte Komponente oder eine andere vordefinierte Komponentenkombination). Die erste vordefinierte Komponente der ersten Untermatrix, der zweiten Untermatrix und der dritten Untermatrix sind jedoch die gleichen Komponenten innerhalb der Reihen der jeweiligen Matrix, was entsprechend gilt für die zweiten vordefinierten Komponenten der Reihen der ersten Untermatrix, der zweiten Untermatrix und der dritten Untermatrix. Falls die erste vordefinierte Komponente beispielsweise die n-te Komponente einer Reihe der ersten Untermatrix ist, dann bedeutet die erste vordefinierte Komponente einer Reihe der zweiten Untermatrix auch die n-te Komponente der Reihe. Das gleiche gilt für die dritte Untermatrix sowie für die gesamte Prüfmatrix.
  • Die Prüfmatrix kann auch als Paritätsprüfmatrix bezeichnet werden.
  • Die Prüfmatrix kann beispielsweise in getrennter Form dargestellt werden. Ferner kann die Prüfmatrix beispielweise eine Prüfmatrix eines verkürzten Hamming-Codes, eines verkürzten Hsiao-Codes oder eines verkürzten BCH-Codes sein.
  • Der Fehlersyndromgenerator 110 kann das Fehlersyndrom 112 bestimmen durch Multiplizieren der Prüfmatrix mit der codierten Bitsequenz 102. Alternativ kann der Fehlersyndromgenerator 110 einen Speicher aufweisen, der eine Nachschlagtabelle enthält. Diese Nachschlagtabelle kann Informationen über Fehlersyndrome enthalten, die unterschiedlichen codierten Bitsequenzen 102 entsprechen. Anders ausgedrückt, die Nachschlagtabelle kann für jede mögliche codierte Bitsequenz das entsprechende Fehlersyndrom enthalten, ableitbar durch eine Multiplikation der Prüfmatrix mit der codierten Bitsequenz 102. Bei diesem Beispiel kann der Fehlersyndromgenerator 110 ohne weiteres das Fehlersyndrom 112 bestimmen durch Nehmen des gespeicherten Fehlersyndroms, das der codierten Bitsequenz 102 zugeordnet ist.
  • Der Fehlersyndromgenerator 110, der Bitfehlerkorrektor 120 und/oder andere optionale Elemente, die später beschrieben werden, können unabhängige Hardwareeinheiten oder Teil eines Computers oder Mikrocontrollers sein, sowie ein Computerprogramm oder ein Softwareprodukt zum Laufen auf einem Computer oder Mikrocontroller.
  • Der Fehlersyndromgenerator 110, der Bitfehlerkorrektor 120 und/oder andere optionale Komponenten, die später beschrieben werden, können unabhängig voneinander oder zumindest teilweise zusammen implementiert sein. Dafür können beispielsweise die Funktionalität des Fehlersyndromgenerators 110, des Bitfehlerkorrektors 120 und/oder anderer optionaler nachfolgend beschriebene Komponenten zumindest teilweise vereint sein zu einer kombinierten Hardwareeinheit oder Softwareeinheit durch ein Synthesewerkzeug.
  • Während einer Multiplikation der Prüfmatrix H mit der codierten Bitsequenz 102 wird eine erste Gruppe von Bits der codierten Bitsequenz 102 mit der ersten Untermatrix multipliziert, eine zweite Gruppe von Bits der codierten Bitsequenz wird mit der zweiten Untermatrix multipliziert, und eine dritte Gruppe von Bits der codierten Bitsequenz wird mit der dritten Untermatrix multipliziert. Anders ausgedrückt, das Fehlersyndrom der codierten Bitsequenz ist ableitbar basierend auf einer Multiplikation der ersten Untermatrix mit einer ersten Gruppe von Bits der codierten Bitsequenz, einer Multiplikation der zweiten Untermatrix mit der zweiten Gruppe von Bits der codierten Bitsequenz, und einer Multiplikation der dritten Untermatrix mit einer dritten Gruppe von Bits der codierten Bitsequenz.
  • Bei einigen Ausführungsbeispielen der Erfindung kann die erste Gruppe von Bits Informationsbits darstellen, die zweite Gruppe von Bits kann Adressbits darstellen und die dritte Gruppe von Bits kann Prüfbits darstellen. Daher kann die erste Gruppe von Bits auch als Informationsbits (oder nützliche) Datenbits bezeichnet werden, die zweite Gruppe von Bits kann als Adressbits bezeichnet werden und die dritte Gruppe von Bits kann als Prüfbits bezeichnet werden.
  • Beispielsweise kann die codierte Bitsequenz oder Teil der codierten Bitsequenz durch einen adressierbaren Speicher gespeichert werden, auch bezeichnet als Speichereinheit, Speicherung oder Speicherungseinheit (z. B. Nur-Lese-Speicher, Direktzugriffsspeicher oder nichtflüchtiger Speicher).
  • Die erste Gruppe von Bits (Datenbits) kann unabhängig von der zweiten Gruppe von Bits (Adressbits) sein. Daher kann es sein, dass nur die erste Gruppe von Bits und die dritte Gruppe von Bits der codierten Bitsequenz an einer Adresse des adressierbaren Speichers gespeichert ist, angezeigt durch die zweite Gruppe von Bits. Alternativ kann die codierte Bitsequenz auch durch einen inneren Code codiert werden, sodass zumindest ein Bit der ersten Gruppe von Bits von zumindest einem Bit der zweiten Gruppe von Bits abhängt.
  • Nachfolgend wird ein Ausführungsbeispiel der Erfindung näher beschrieben. Bei diesem Beispiel sind die Reihen der Matrizen Spalten, die ersten vordefinierten Komponenten der Reihen der Matrizen stellen die erste Zeile der Matrizen dar, die zweiten vordefinierten Komponenten der Reihen der Matrizen stellen die zweiten Zeilen der Matrizen dar, der erste Bitwert ist gleich 1 und der zweite Bitwert ist gleich 0. Die Beschreibung des detaillierten Ausführungsbeispiels umfasst mehrere zusätzliche und/oder optionale Merkmale, die alle zusammen implementiert sein können, oder eines oder einige derselben können unabhängig von den anderen beschriebenen Merkmalen implementiert sein.
  • In 2 ist dargestellt, wie die Adressen a = a1, ..., al (z. B. bereitgestellt durch einen Adressgenerator 13) zu berücksichtigen sind bei der codierten Speicherung der Nutzdatenbits u = u1, ..., uk. Bei dem Codierer werden 11 kBits breite Nutzdaten u = u1, ..., uk und die l Bit breite Adresse a = a1, ..., al, an der in den Speicher 12 zu schreiben ist, angelegt, so dass die Adresse a auch an den Adresseingang des Speichers 12 angelegt wird. Der Codierer 11 bildet das k + l + m Bit breite Codewort v (codierte Bitsequenz) von den Nutzdaten u (Informationsbits) und der Adresse a (Adressbits), v = (u, a)·G
  • In dem Speicher 12 ist unter der Adresse a das Codewort v gespeichert, dessen Bits sowohl von den Nutzdaten (Informationsbits) und auch von der Adresse (Adressbits) abhängen. Falls die Generatormatrix in ihrer systematischen Form G = (Ik+l, Pk+l,m) verwendet wird.
  • Das Codewort v hat die Form v = u, a, c und die Prüfbits c, die zu den Nutzdatenbits und den Adressbits hinzugefügt werden, sind bezeichnet durch c = (u, a)·P währen die Nutzdatenbits u und die Adressbits a bei diesem Beispiel nicht modifiziert sind. Ik+l ist die (k + l) Dimensionseinheitsmatrix und P ist die (k + l, m) Matrix, die die Testgleichungen des Codes bestimmt.
  • Das Codieren einschließlich der Adressbits für eine Generatormatrix in der systematischen Form ist in 3 dargestellt. In dem Speicher 22 (adressierbare Speicher) sind nur die Datenbits u und die Prüfbits c gespeichert, während die Adressbits a nicht gespeichert werden müssen. Die Prüfbits c hängen hier sowohl von den Datenbits u als auch von den Adressbits a ab. Die Adressbits, die durch den Adressgenerator 23 erzeugt werden, werden an den Adresseingang des Speichers 22 angelegt und an die entsprechenden ersten Eingänge des Codierers in einer systematischen Form 21, während an dem zweiten k Bit breiten Eingang des Codierers das Nutzdatenbit u angelegt wird, die gleichzeitig auch an den ersten k Bit breiten Dateneingang des Speichers 22 angelegt werden. Der Codierer erzeugt an seinem m Bit breiten Ausgang die Prüfbits c, die an den zweiten m Bit breiten Dateneingang des Speichers 22 angelegt werden.
  • 4 zeigt eine Schaltungsanordnung zum Erzeugen eines Syndroms S = (s1, s3) für einen 2-Bit-fehlerkorrekturverkürzten BCH-Code gemäß einem Ausführungsbeispiel. Die Bits u' und c', die in dem Speicher 32 (adressierbarer Speicher) gespeichert sind, werden von dem Speicher 32 unter der Adresse a' ausgegeben, die durch den Adressgenerator 33 bereitgestellt wird. Die Adresse, die durch den Adressgenerator hier erzeugt wird, hat die Wortbreite l – 1. Die Daten-, die Adress- und die Prüfbits werden in 3 bezeichnet durch u', a', c', um anzuzeigen, dass die entsprechenden Bits fehlerhaft geändert werden können. Die Datenbits u' werden in einen ersten Eingang 311 der Wortbreite k geliefert, die Prüfbits c' werden in einen zweiten Eingang 312 geliefert und die Adressbits a' werden in einen dritten Eingang 313 der Wortbreite l – 1 des Syndromgenerators 31 geliefert. An einem vierten l Bit breiten Eingang 314 wird der konstante Wert 1 angelegt. Der Syndromgenerator 31 kann eine Kombinationsschaltung sein, die durch die Prüfmatrix bestimmt wird. Dieselbe dient zum Bilden des Syndroms S = (s1, s3) des berücksichtigten BCH-Codes, bestimmt als ein Spaltenvektor ST bezüglich ST = (s1, s3)T = (S1, S2, ..., Sm)T = H·(u'1, ..., u'k, a'1, ..., a'l, c'1, ..., c'm)T
  • Die Adressbits a'1, ..., a'l-1, die durch den Adressgenerator bereitgestellt werden, und der konstante Wert 1 bilden, wie es nachfolgend näher beschrieben wird, die Adressbits a'1, ..., a'l. Die Prüfmatrix H des verkürzten BCH-Codes besteht aus einer ersten (m, k) Untermatrix Hu, einer zweiten (m, l) Untermatrix Ha und einer dritten (m, m) Untermatrix Hc, wobei die ersten k Spalten der Prüfmatrix H die Untermatrix Hu bilden, die nachfolgenden l Spalten die Untermatrix Ha bilden und die letzten m Spalten die Untermatrix Hc. Eine Untermatrix kann auch als Teilmatrix bezeichnet werden. Hier gilt das Folgende:
    Figure 00150001
  • Für die Komponenten S1, S2, ..., Sm des Syndroms S = (S1, ..., Sm) = (s1, s3) gilt (s1, s3)T = (S1, ..., Sm)T = (Hu, Ha, Hc)·(u1, ..., uk, a1, ..., al, c1, ..., cm)T, und der Syndromgenerator 31 realisiert an seinen m Ausgängen für i = 1, ..., m die Booleschen Funktionen Si = h u / i,1u'1 ⊕ ... ⊕ h u / i,ku'k ⊕ h a / i,1a'1 ⊕ ... ⊕ h a / i,la'l ⊕ h c / i,1c'1 ⊕ ... ⊕ h c / i,mc'm die eindeutig bestimmt werden durch die Elemente h u / i,j , h a / i,j , h c / i,j der Untermatrizen Hu, Ha, Hc. Eine konkrete Implementierung, z. B. durch XOR-Gatter, ist leicht realisierbar, so dass der vorgeschlagene Syndromgenerator ohne weiteres beschrieben werden kann durch die konkrete Form der Matrizen Hu, Ha, Hc.
  • Die Matrizen Hu, Ha, Hc werden bestimmt durch Löschen bestimmter Spalten und durch Neuordnen von Spalten von den Spalten der (m, 2M – 1) Prüfmatrix H BCH / unverk eines unverkürzten 2-Bit-Fehlerkorrektur-BCH-Codes der Länge 2M – 1, sodass m + l + k < 2M – 1. Hier wird die Prüfmatrix des unverkürzten Codes beispielsweise in ihrer getrennten Form ausgewählt. Die Matrix H BCH / unverk hat dann die folgende Form:
    Figure 00150002
  • Da die i-te Spalte der Matrix H1 bestimmt wird durch αi, i = 0, ..., 2M – 2 und α ein primitives Element des Galois-Feldes GF(2M) ist, treten alle 2M – 1 M-stellige Binärvektoren, außer 0, als Spalten von H1 auf. Nun werden eine j-te Komponente und eine k-te Komponente der ersten M Komponenten der Prüfmatrix ausgewählt, wobei j ≠ k. Die j-te Komponente wird bezeichnet als die erste (ausgewählte) Komponente (erste vordefinierte Komponente) und die k-te Komponente als die zweite (ausgewählte) Komponente (zweite vordefinierte Komponente). Da α ein primitives Element des Galois-Feldes GF(2M) ist, und alle 2M – 1 möglichen m-stelligen Binärvektoren als Spalten der Prüfmatrix H1 auftreten, gibt es für jeden der Werte 01, 10 und 11 2M-2 Spalten der Prüfmatrix H1, die den Wert 01, 10 und 11 annehmen in den beiden ausgewählten Komponenten (vordefinierte Komponenten). Abgesehen davon gibt es 2M-2 – 1 Spalten der Matrix H1, die den Wert 00 in den beiden ausgewählten Komponenten annehmen. Alle Spalten der Prüfmatrix H BCH / unverk sind klassifiziert in vier getrennte Sätze Sp00, Sp10, Sp01 und Sp11, wobei Sp00 alle 2M-2 – 1 Spalten mit den ersten zwei Komponenten 00 enthält, Sp10 alle 2M-2 mit den ersten zwei Komponenten 10, Sp01 alle 2M-2 Spalten mit den ersten zwei Komponenten 01 und Sp11 alle 2M-2 Spalten mit den ersten zwei Komponenten 11.
  • Gemäß dem beschriebenen Konzept bilden l linear unabhängige Spalten h a / 1, ..., h a / l die Matrix Ha Ha = (h a / 1, ..., h a / l), wobei h a / j ∈ Sp00 gilt.
  • Da die ersten zwei Komponenten von Sp00 gleich 00 sind (erste vordefinierte Komponente und zweite vordefinierte Komponente jeder Reihe der ersten Untermatrix weisen den gleichen zweiten Bitwert auf), gibt es m – 2 linear unabhängige Spalten und l ≤ m – 2 gilt. Für l = m – 2 kann die (l, l) Matrix H ~a, die sich aus Ha ergibt, umkehrbar sein durch Löschen der ersten zwei Reihen (die 0, ..., 0 lauten).
  • Anders ausgedrückt, eine Anzahl von Bits der zweiten Gruppe von Bits der codierten Bitsequenz kann kleiner sein als oder gleich einer Anzahl von Bits der dritten Gruppe von Bits der codierten Bitsequenz minus 2.
  • Die Spalten der Matrix Hc, Hc = (h c / 1, ..., h c / m), sind gewählt, sodass dieselben linear unabhängig sind und dass ihre ersten zwei Komponenten (erste vordefinierte Komponente und zweite vordefinierte Komponente) ungleich 00 sind (erste vordefinierte Komponente oder zweite vordefinierte Komponente jeder Reihe der dritten Untermatrix weist den ersten Bitwert auf), sodass für i = 1, ..., m das Folgende gilt: h c / i ∈ {Sp10 ∪ Sp01 ∪ Sp11}
  • Die Spalten der Matrix Hc bilden den Satz
    Figure 00170001
  • Die Spalten der Matrix Hu, Hu = (h u / 1, ..., h u / k), sind gewählt, sodass die ersten zwei Komponenten ungleich 00 sind (erste vordefinierte Komponente oder zweite vordefinierte Komponente jeder Reihe der zweiten Untermatrix weist den ersten Bitwert auf), sodass für i = 1, ..., k das Folgende gilt:
    Figure 00170002
  • Anders ausgedrückt, die Reihen (bei diesem Beispiel die Spalten) der ersten Untermatrix unterscheiden sich alle von den Reihen der dritten Untermatrix.
  • Zusätzlich werden die Spalten der Matrizen Hu, Ha, Hc bestimmt, sodass das Folgende gilt:
    • 1. Die XOR-Summe über die ersten Komponenten aller Spalten ist gleich 0 (zweiter Bitwert).
    • 2. Die XOR-Summe über die zweiten Komponenten aller Spalten ist gleich 0 (zweiter Bitwert).
    • 3. Der eindimensionale Binärvektor a1', ..., al' (resultierender Vektor), bestimmt durch
      Figure 00170003
      hat zumindest eine Komponente ai' = 0, i ∈ {1, ..., 1} (zumindest eine Komponente des resultierenden Vektors weist den zweiten Bitwert auf). Der Vektor (1, ..., 1)T, der mit der ersten Untermatrix und der zweiten Untermatrix zu multiplizieren ist, kann auch als Testvektor bezeichnet werden. Alternativ wird der Testvektor mit der gesamten Prüfmatrix multipliziert. Dafür weist der Testvektor Nullen auf für Bits, die mit Komponenten von Reihen der zweiten Untermatrix multipliziert werden.
  • Anders ausgedrückt, jede Komponente des Testvektors, die mit der Komponente einer Reihe der ersten Untermatrix und der dritten Untermatrix multipliziert wird, weist den ersten Bitwert auf, und jede Komponente des Testvektors, die mit einer Komponente einer Reihe der zweiten Untermatrix multipliziert wird, weist den zweiten Bitwert auf.
  • Nachfolgend wird beschrieben, wie die Matrizen Hu, Ha, Hc des erfindungsgemäßen Syndromgenerators praktisch bestimmt werden können.
  • Von den Sätzen Sp10, Sp01 und Sp11 werden die Sätze Spe10, Spe01, Spe11 gebildet durch Löschen von jeweils zwei beliebigen Spalten und Summieren der gelöschten Spalte in die Sätze Sp210, Sp201 und Sp211. Somit enthält der Satz Sp201 die zwei Spalten, die von dem Satz Sp01 gelöscht wurden, um den Satz Spe01 zu bestimmen.
  • Von dem Satz {Spe10 ∪ Spe01 ∪ Spe11} werden m linear unabhängige Spalten bestimmt, bezeichnet durch h c / 1, ..., h c / m, und die die Matrix (dritte Untermatrix) Hc = (h c / 1, ..., h c / m) bilden.
  • Als ein Satz werden diese Spalten kombiniert in den Satz
    Figure 00180001
  • Von dem Satz Spe00 werden l Spalten bestimmt, die linear unabhängig sind. Diese Spalten werden bezeichnet durch h a / 1, ..., h a / l und bilden die Matrix (zweite Untermatrix) Ha = (h a / 1, ..., h a / l).
  • Die Matrix Hu (erste Untermatrix) besteht aus k Spalten h u / 1, ..., h u / k, wobei
    Figure 00190001
    gilt, und wobei zumindest eine Spalte von Spe10, zumindest eine Spalte von Spe01 und zumindest eine Spalte von Spe11 enthalten ist in {h u / 1, ..., h u / k}.
  • Somit enthält Hu zumindest eine Spalte, deren erste zwei Komponenten gleich 10 sind, zumindest eine Spalte, deren erste zwei Komponenten gleich 01 sind, und zumindest eine Spalte, deren erste zwei Komponenten gleich 11 sind.
  • Allgemeiner weist die erste Untermatrix zumindest eine Reihe auf mit der ersten vordefinierten Komponente gleich dem ersten Bitwert, und der zweiten vordefinierten Komponente gleich dem zweiten Bitwert, wobei zumindest eine Reihe mit der ersten vordefinierten Komponente gleich dem zweiten Bitwert ist und die zweite vordefinierte Komponente gleich dem ersten Bitwert ist, und zumindest eine Reihe mit der ersten vordefinierten Komponente und der zweiten vordefinierten Komponente gleich dem ersten Bitwert ist.
  • Nun wird die XOR-Summe der ersten und der zweiten Komponente der Spalten von Hu und Hc bestimmt. Abhängig von dem Wert dieser XOR-Summe werden die folgenden vier Fälle betrachtet:
    • 1. Falls die XOR-Summe (1, 1) ist, wird eine Spalte von Hu, deren erste zwei Komponenten gleich (0, 1) sind, ersetzt durch eine Spalte von Sp210. Dann ist die XOR-Summe der ersten zwei Komponenten der Spalten von Hu, Hc nach diesem Austausch gleich (0, 0).
    • 2. Falls die XOR-Summe gleich (0, 1) ist, wird eine Spalte von Hu, deren erste zwei Komponenten gleich (1, 0) sind, durch eine Spalte von Sp211 ersetzt. Dann ist die XOR-Summe der ersten zwei Komponenten der Spalten von Hu, Hc nach diesem Austausch gleich (0, 0).
    • 3. Falls die XOR-Summe gleich (1, 0) ist, wird eine Spalte von Hu, deren erste zwei Komponenten gleich (0, 1) sind, durch eine Spalte von Sp211 ersetzt. Dann ist die XOR-Summe der ersten zwei Komponenten der Spalten von Hu, Hc nach diesem Austausch gleich (0, 0).
    • 4. Falls die XOR-Summe gleich (0, 0) ist, dann wird in diesem Schritt keine Modifikation ausgeführt.
  • Von den Matrizen Hu und Hc, die bisher erhalten wurden, wird nun der Vektor α'1, ..., α'l bestimmt durch Lösen des linearen Gleichungssystems
    Figure 00200001
  • Falls i, 1 ≤ i ≤ 1, sodass a'i = 0, dann wird durch die Prüfmatrix H = (Hu Ha Hc), die bisher bestimmt wurde, der Syndromgenerator bestimmt. An dem Eingang 314 von 4 wird dann der Wert 1 für die i-ten Adressbits a'i = 1 als konstant angegeben. Falls es kein i, 1 ≤ i ≤ 1 gibt, sodass a'i = 0, gilt das Folgende:
    Figure 00200002
  • Dann wird in Hu eine Spalte h u / j mit dem Wert der ersten zwei Komponenten (0, 1) beispielsweise ersetzt durch eine Spalte h ∈ Sp201, die vorher nicht Teil von Hu war. Die Matrix Hu, die auf diese Weise modifiziert wird, wird bezeichnet mit Hu'. Die Lösung des linearen Gleichungssystems
    Figure 00200003
    führt dann unvermeidbar zu einer Lösung mit
    Figure 00200004
    da
    Figure 00200005
    und h u / j + h ≠ 0.
  • Falls a1', ..., al' die Lösung von Gleichung (9) ist, dann ist nach dieser Modifikation von Hu in Hu' a'i = 0. Wie es in 4 dargestellt ist, wird dann für das i-te Bit der Adresse der konstante Wert 1 eingegeben als Eingang 314. Anders ausgedrückt, ein Bit der zweiten Gruppe von Bits, das der zumindest einen Komponente des resultierenden Vektors zugeordnet ist, der den zweiten Bitwert aufweist, weist den ersten Bitwert auf.
  • Die eben bestimmte H-Matrix kann dann beispielsweise die XOR-Bäume bestimmen, die den Syndromgenerator implementieren. Bei diesem Beispiel hat der Syndromgenerator beispielsweise die folgenden vorteilhaften Charakteristika:
    • 1. Für jede Adresse a1, ..., ai-1ai = 1, ai+1, ..., a1 und für u = 0, ..., 0 und c = 0, ..., 0 oder u = 1, ..., 1 und c = 1, ..., 1 gibt es keinen Codevektor des verkürzten BCH-Codes. Die Fehler „All-0” und „All-1” können somit niemals Codevektoren des verkürzten BCH-Codes sein, wodurch dieselben relativ leicht erfasst werden. Diese Charakteristik wird beispielsweise insbesondere dadurch erreicht, dass der Wert eines bestimmten Adressbits konstant gleich 1 ist, dass die Spalten der Matrix Ha linear unabhängig sind, dass die XOR-Summe der ersten und der zweiten Komponente der Spalten der Matrizen Hu und Hc gleich 0 ist, und dass die erste und die zweite Komponente aller Spalten der Matrix Ha gleich 0 sind.
    • 2. Ein Wort, das genau eine 1 in den Datenbits u oder den Prüfbits c aufweist, kann niemals ein Codewort sein. Da die ersten zwei Komponenten der Spalten von Hu und der Spalten von Hc ≠ 00 sind und die ersten zwei Komponenten von Ha (0, 0) sind, sind die ersten zwei Komponenten S1, S2 des Syndroms S für einen 1-Bit-Fehler in den Datenbits oder Prüfbits immer ungleich 00 und kein Codewort kann vorliegen. Somit ist es nicht möglich, dass ein Codewort durch einen 1-Bit-Fehler in „All-0” verfälscht wird.
    • 3. Ein Wort, das genau 0 in den Datenbits u oder den Prüfbits c aufweist, kann niemals ein Codewort sein. Da die ersten zwei Komponenten der Spalten von Hu und der Spalten von Hc ≠ (0, 0) sind, und die XOR-Summe dieser Komponenten aller Spalten der Matrizen Hu und Hc gleich (0, 0) sind, und die ersten zwei Komponenten von Ha gleich (0, 0) sind, sind die ersten zwei Komponenten S1, S2 des Syndroms S immer ungleich 00 und kein Codewort kann existieren. Somit ist es auch nicht möglich, dass ein Codewort durch einen 1-Bit-Fehler in „All-1” verfälscht wird.
  • Das Konzept, das zum Bestimmen eines Syndromgenerators durch Bestimmen seiner Prüfmatrix beschrieben wurde, kann relativ leicht verallgemeinert werden, falls weitere Bedingungen bezüglich Spalten der Prüfmatrix zu erfüllen sind. Als ein Beispiel einer solchen Bedingung wird der Fall betrachtet, dass in jeder Spalte der Prüfmatrix die Anzahl von Einsen in einem Teilsatz von Komponenten (vordefinierte Mehrzahl von Komponenten) der Spalte ungerade ist. Anders ausgedrückt, eine XOR-Summe einer vordefinierten Mehrzahl von Komponenten jeder Reihe der Prüfmatrix H ist gleich einem gleichen Bitwert. Als ein Beispiel für solch einen Teilsatz werden hier die unteren N Komponenten jeder Spalte so gesehen, dass sie zu der Matrix H3 gehören. Die Anzahl von Einsen in den unteren N Komponenten muss somit ungerade sein. Falls diese Bedingung erfüllt ist, kann die Parität P bestimmt werden als eine XOR-Summe über die Komponenten des Teilsyndroms s3, was durch einen XOR-Baum mit nur N Eingängen durchgeführt werden kann. Für die Bestimmung der Gesamtparität von den Datenbits, den Adressbits und den Prüfbits ist jedoch ein XOR-Baum mit n Eingängen erforderlich, wobei n die Länge des Codes ist.
  • Für ein Paritätsbit kann beispielsweise eine Zeile zu der Prüfmatrix hinzugefügt werden, die nur Einsen aufweist. Anders ausgedrückt, eine vordefinierte gleiche Komponente aller Reihen der Prüfmatrix kann einen gleichen Bitwert aufweisen.
  • Von den Spalten der Prüfmatrix H BCH / unverk mit 2M – 1 Spalten werden die Spalten dieser Matrix bestimmt, die die erforderliche Bedingung erfüllen. Es sind hier die Spalten, die eine ungerade Anzahl von Einsen in den N unteren Komponenten aufweisen. Abhängig davon, ob die ersten zwei Komponenten dieser Spalten 00, 10, 01 oder 11 sind, werden diese Spalten dem Satz Sp*00, Sp*10, Sp*01 und Sp*11 zugeordnet.
  • Basierend auf diesen Sätzen Sp*00, Sp*10, Sp*01 und Sp*11, wie es eben beschrieben wurde für den Satz Sp00, Sp10, Sp01 und Sp11, kann eine Prüfmatrix H* = (H*u, H*a, H*c) und somit ein Syndromgenerator bestimmt werden, sodass die Spalten seiner Prüfmatrix H* eine zusätzliche Charakteristik aufweisen. Hier ist es die Charakteristik, dass die unteren N Komponenten eine ungerade Anzahl von Einsen aufweisen.
  • Ein konkretes Beispiel ist beschrieben für N = 7 und das Galois-Feld GF(27). Als ein modulares Polynom wird das primitive Polynom mα = z7 + z3 + 1 verwendet, wie es beispielsweise angezeigt ist in „Peterson, W., und Weldon, E.: Error Correcting Codes, 2. Auflage, MIT Press, 1972, Annex C, S. 476”. Die Länge des unverkürzten Codes ist n = 27 – 1 = 127. Die H-Matrix des unverkürzten BCH-Codes für die 2-Bit-Fehlerkorrektur ist dann
    Figure 00220001
    wobei die Exponenten j von αj so anzusehen sind als modulo 127, sodass beispielsweise der Exponent 3·126 (3·126) modulo 127 = 124 bedeutet. Die Werte α1 und α3i in der Spalte αi, α3i sind anfangs dargestellt in der Vektordarstellung als 2 7-stellige Binärvektoren, kombiniert in einen 14-stelligen Binärvektor und angesehen als eine 14-stellige Binärzahl. Diese 14-stellige Binärzahl kann als eine Dezimalzahl dargestellt werden.
  • Das Folgende gilt 0, α0) = (00000010000001)bin = 129 1, α3) = (00000100001000)bin = 264 0, α0) = (00001001000000)bin = 576
  • Wobei die 129 der Dezimalwert für die erste Spalte ist, 264 der Dezimalwert für die zweite Spalte ist und 576 der Dezimalwert für die dritte Spalte ist.
  • Hier ist das am weitesten links liegende Bit das erste Bit und das am weitesten rechts liegende Bit das vierzehnte Bit. Das erste Bit und das zweite Bit sind unterstrichen. Dies sind die Bits, deren XOR-Summe über alle Spalten der Prüfmatrix des verkürzten BCH-Codes 0, 0 sind. Die Spalten der unverkürzten H-Matrix sind dann durch die folgenden Dezimalzahlen gegeben.
    129, 264, 576, 1060, 2098, 4107, 8280, 1261, 2398, 4701, 9285, 3212, 6496, 12854, 8363, 1482, 2932, 5663, 11377, 7351, 14627, 13962, 10704, 6061, 12154, 6895, 13646, 11988, 6541, 13160, 8950, 399, 888, 1663, 3143, 6172, 12393, 9470, 3535, 7004, 13901, 10444, 5572, 11012, 4768, 9490, 3737, 7489, 14892, 12530, 9647, 4074, 8038, 15878, 14512, 13723, 12241, 7077, 14138, 10955, 4604, 9055, 725, 1285, 2600, 5202, 10301, 5363, 10535, 5802, 11586, 7860, 15675, 16067, 14780, 14331, 11239, 5006, 10096, 2751, 5475, 10798, 4322, 8486, 1698, 3330, 6672, 13321, 11464, 7652, 15126, 12985, 8659, 1973, 3891, 7683, 15384, 15561, 15852, 16342, 15261, 13281, 9150, 1003, 1902, 3654, 7188, 14377, 13530, 11773, 8151, 16149, 15009, 12698, 10201, 3045, 5918, 11897, 6391, 12551, 9912, 2523, 4981, 9751, 2225, 4371, 8721
  • Basierend auf diesen 127 Spalten werden nun die Sätze Sp00, Sp10, Sp01 und Sp11 gebildet, deren erste zwei Komponenten in binärer Darstellung 00, 10, 01 und 11 sind. Somit sind beispielsweise die Spalten 129, 264 und 567 Teil des Satzes Sp00, da die ersten zwei Komponenten dieser Zahlen in einer Binärdarstellung gleich 00 sind.
  • Basierend auf den Sätzen Sp00, Sp10, Sp01 and Sp11 werden die Sätze Sp*00, Sp*10, Sp*01 and Sp*11 bestimmt durch die zusätzliche Bedingung, dass die Spalten der Prüfmatrix in ihrer Binärdarstellung in den Bits 8–14 eine ungerade Anzahl von Einsen aufweisen. Somit gehören die Spalten 1, 2 und 3 (129, 264, 567) zu Sp*00, da diese Spalten zu Sp*00 gehören und zusätzlich dazu in den Bits 8–14 jeweils eine 1 aufweisen, d. h. eine ungerade Anzahl von Einsen.
  • Das Folgende gilt: Sp*00 = {129, 264, 576, 2098, 1261, 2398, 1482, 1663, 3535, 3737, 3330, 1003, 1902, 3654, 2523, 2225} Sp*10 = {8280, 9285, 12154, 11988, 8950, 10444, 11012, 9647, 12241, 10301, 11239, 10096, 8486, 9150, 11897, 9912} Sp*01 = {4107, 4701, 5663, 7351, 6541, 6172, 4768, 7077, 4604, 5202, 5363, 5802, 7860, 5006, 4322, 6672, 7652, 8151, 4981, 4371} Sp*11 = {14627, 13160, 14892, 15675, 16067, 15126, 15561, 13281, 14377, 16149, 12698, 12551}.
  • Von dem Satz Sp*10 wird der Satz Spe10 gebildet durch Entfernen der zwei Spalten 9647, 12241 und Kombinieren dieser zwei Spalten in den Satz Sp210 = {9647, 12241}. Das Folgende gilt: Spe10 = {8280, 9285, 12154, 11988, 8950, 10444, 11012, 10301, 11239, 10096, 8486, 9150, 11897, 9912}.
  • Von dem Satz Sp*01 wird der Satz Spe01 gebildet durch Entfernen der zwei Spalten 7077, 4604 und Kombinieren dieser zwei Spalten in den Satz Sp201 = {7077, 4604}. Das Folgende gilt: Spe01 = {4107, 4701, 5663, 7351, 6541, 6172, 4768, 5202, 5363, 5802, 7860, 5006, 4322, 6672, 7652, 8151, 4981, 4371}.
  • Von dem Satz Sp*11 wird der Satz Spe11 gebildet durch Entfernen der zwei Spalten 16149, 13281 und Kombinieren dieser zwei Spalten in den Satz Sp211 = {16149, 13281}. Das Folgende gilt: Spe10 = {14627, 13160, 14892, 15675, 16067, 15126, 15561, 14377, 12698, 12551}.
  • Von dem Satz Sp*00, m – 2 = 14 – 2 = 12 werden linear unabhängige Vektoren ausgewählt, die die Matrix Ha bilden. Das Folgende gilt: Ha = (129, 264, 576, 2098, 1261, 2398, 1482, 3737, 3330, 1003, 3654, 2225).
  • Von dem Satz Spe10 ∪ Spe01 ∪ Spe11 werden 14 linear unabhängige Spalten bestimmt, die die Matrix Hc bilden. Das Folgende gilt: Hc = (8280, 4107, 6672, 9285, 4768, 11012, 6172, 5202, 8486, 4371, 4322, 10444, 12551, 14377).
  • Diese Spalten bilden den Satz
    Figure 00250001
    wobei
    Figure 00250002
  • Von dem Satz
    Figure 00250003
    werden 16 Vektoren ausgewählt, die die Spalten von Hu bilden. Diese Spalten werden bestimmt, sodass dieselben zumindest einen Vektor von Spe10, einen Vektor von Spe01 und einen Vektor von Spe11 enthalten. Vorübergehend ergibt sich die Matrix Hu mit Hu = (4701, 14627, 6541, 13160, 14892, 10301, 5802, 5006, 10096, 12698, 9912, 5663, 11988, 8950, 15675, 7351).
  • Für die XOR-Summe der ersten zwei Komponenten der Spalten von Hu und Hc ergibt sich der Wert 10. Um einen Wert 00 für diese Summe zu erhalten, wird eine Spalte mit den ersten zwei Komponenten 10 ersetzt durch eine Spalte mit den ersten zwei Komponenten 11 von Spe11, sodass die XOR-Summe nun 00 beträgt. Konkret wird die Spalte 7351 ersetzt durch die Spalte 16149 von Spe11. Die Matrix Hu ist nun: Hu = (4701, 14627, 6541, 13160, 14892, 10301, 5802, 5006, 10096, 12698, 9912, 5663, 11988, 8950, 15675, 16149)
  • Von den so bestimmten Matrizen Hu, Ha, Hc wird nun der Vektor a1, ..., al bestimmt, für den
    Figure 00250004
    gilt.
  • Aufgrund von SAll1 = 00010000110110 wird a'1, ..., a'12 bestimmt als die Lösung des linearen Gleichungssystems SAll1 = Ha·(a'1, ..., a'12) für a'1, ..., a'12 = 101000000011. Da z. B. a'2 = 0, wird der Syndromgenerator bestimmt durch die eben bestimmte Prüfmatrix einfach durch eine Implementierung der entsprechenden linearen Gleichungen, z. B. mit einem Synthesewerkzeug.
  • Das Paritätssignal führt bei dem dargestellten Ausführungsbeispiel zu einer XOR-Operation der Komponenten des Teilsyndroms s3, d. h. durch eine XOR-Operation der Komponenten 8 bis 14 des Syndroms S. Falls die Nebenbedingung dass 8 bis 14 Spalten der Textmatrix eine ungerade Anzahl von Einsen enthalten, nicht erforderlich ist, kann die Prüfmatrix auch durch eine Reihe ersetzt werden, die aus nur Einsen besteht. In einem 2-Bit-Fehlerkorrektur-BCH-Code wird dann eine ungerade Anzahl von Prüfbits erhalten.
  • In 5 ist dargestellt, wie das Konzept der Speicherzellen (des Speichers) bezüglich der Fehler „All-1” und „All-0” überwacht werden kann. Die Teilschaltungen und Verbindungen, die in 5 und 4 durch die gleichen Bezugszeichen bezeichnet sind, haben die gleiche Bedeutung wie in 4. Zusätzlich zu 4 werden der k Bit breite Ausgang, der das Signal u trägt (erste Gruppe von Bits, Informationsbits), und der m Bit breite Ausgang, der das Signal c trägt (dritte Gruppe von Bits, Prüfbits) des Speichers 32 sowohl in den k + m Bit breiten Eingang eines NOR-Gatters 34 als auch in den k + m Bit breiten Eingang des AND-Gatters 35 zugeführt. Das NOR-Gatter 34 gibt den Wert All-0 = 1 aus, falls der Speicher den Wert „All-0” unter jeder Adresse ausgibt, während das AND-Gatter den Wert All-1 = 1 ausgibt, falls der Speicher den Wert All-1 unter jeder Adresse ausgibt. Da weder All-1 noch All-0 ein Codewort für eine Adresse ist, wird ein All-0-Fehler an den Ausgängen des NOR-Gatters 34 zu 100% erfasst, während ein All-1-Fehler an dem Ausgang des AND-Gatters 35 zu 100% erfasst wird.
  • Allgemeiner gesagt können das NOR-Gatter 34 und das AND-Gatter 35 auch als Gleicher-Bitwert-Detektor bezeichnet werden. Ein Gleicher-Bitwert-Detektor kann ein Signal liefern, das anzeigt, ob alle Bits der ersten Gruppe von Bits und alle Bits der dritten Gruppe von Bits der codierten Bitsequenz einen gleichen Bitwert aufweisen (All-0 oder All-1) oder nicht.
  • 6 zeigt einen erfindungsgemäßen Syndromgenerator 40, der an seinem m Bit breiten Ausgang den Wert des Fehlersyndroms S ausgibt, wobei der Ausgang mit den jeweiligen Eingängen der Schaltungen K u / 1 , K u / 2 , ..., K u / k 41, 42, 4k (die Teil des Bitfehlerkorrektors sein können) verbunden ist zum Bestimmen von l Bit breiten Korrekturwerten Δu1, Δu2, Δuk, die durch diese Schaltungen an ihren jeweiligen Ausgängen ausgegeben werden und XOR-verknüpft werden mit den Datenbits u1', u2', ... uk', die zu korrigieren sind. Funktional ist für i = 1, ..., k für die Korrekturwerte Δu1:
    Figure 00270001
  • Hier ist h u / i die i-te Spalte der Matrix Hu und h eine Spalte der Matrix Hu oder eine Spalte der Matrix Hc, wobei h ≠ h u / i.
  • Korrekturschaltungen sind beispielsweise ebenfalls beschrieben in „Okamo, H. and Imai, H.: A Construction Method for Decodierers of BCH-Codes for Bose Chaudhuri-Hocquenghem and Reed Salomon Codes, IEEE Trans. Corp. C 36, Nr. 10, S. 1165–1171, 1985”.
  • 7 zeigt einen erfindungsgemäßen Syndromgenerator 40, der zusätzlich zu 6 ferner die Schaltungen K c / 1 411, K c / 2 412, ..., K c / m 41m aufweist (die auch Teil des Bitfehlerkorrektors sein können) zum Bestimmen von Korrekturwerten Δc1, Δc2, ..., Δcm, die durch diese Schaltungen an ihren Ausgängen ausgegeben werden, und die mit den Prüfbits Komponente um Komponente XOR-verknüpft werden zum Korrigieren der Prüfbits. Die Schaltungsteile, die sich nicht von 6 unterscheiden, sind wie in 6 nummeriert. Funktional realisiert die Schaltung K c / j 41 mit (j = 1, ..., m) im Fall eines 1-Bit- oder 2-Bit-Fehlers die Funktion
    Figure 00280001
  • Dabei ist h c / j die j-te Spalte der Matrix Hc und h ist eine Spalte der Matrix Hu oder der Matrix Hc mit h ≠ h c / j.
  • 8 zeigt einen erfindungsgemäßen Syndromgenerator 40, der zusätzlich zu 7 eine weitere Schaltung aufweist zum Bestimmen von Adressfehlern 421 (die auch Teil des Bitfehlerkorrektors sein kann). Diese Schaltung gibt den Wert Ea = 1 an ihrem Ausgang aus, wenn ein 1-Bit- oder 2-Bit-Adressfehler aufgetreten ist. Funktional gilt für die Schaltung 421 zum Bestimmen von Adressfehlern das Folgende
    Figure 00280002
    wobei ha eine Spalte der Matrix Ha ist, h eine Spalte der Matrizen Hu, Ha, Hc mit h ≠ ha und h* und h' Spalten der Matrizen Hu and Hc sind.
  • 9 zeigt ein spezifisches Ausführungsbeispiel einer Schaltung 421 von 8 zum Erfassen von Adressfehlern. Die Schaltung von 9 besteht aus l Schaltungen K a / 1 51, ..., K a / l 5l zum Bestimmen von l Korrekturwerten Δa1, ..., Δal der wahrscheinlich fehlerhaften Adressbits a'1, ..., a'l. Die Ausgänge der Schaltungen 51, ..., 5l, die die Korrekturwerte Δa1, ..., Δal tragen, werden in den Eingang eines OR-Gatters 53 geleitet, das das Adressfehlersignal Ea an seinem Ausgang ausgibt.
  • Für i = 1, ..., l, für den Korrekturwert Δai, gilt das Folgende
    Figure 00280003
  • Dabei ist h a / i die i-te Spalte der Matrix Ha und h ist eine Spalte der Matrizen Hu, Ha, Hc mit h ≠ h a / i.
  • In 10 ist dargestellt, wie für i = 1, ..., k die Ausgänge der Schaltungen K u / i , die ein Korrektursignal Δui ausgeben zum Korrigieren des Bits u'i, durch ein OR-Gatter mit k Eingängen 61 mit einem Korrektursignal u OR / korr verbunden sind. Basierend auf dem Signal u OR / korr kann leicht bestimmt werden, ob überhaupt eine Korrektur stattgefunden hat in den Bits u'1, ..., u'k. Die Ausgänge der Schaltungen K u / i , i = 1, ..., k sind mit dem jeweiligen i-ten Eingang des OR-Gatters 61 verbunden, das das Signal u OR / korr = Δu1v Δu2v ... vΔuk an seinem Ausgang ausgibt.
  • In 11 ist dargestellt, wie für i = 1, ..., k die Ausgänge der Schaltungen K u / i , die ein Korrektursignal Δui ausgeben zum Korrigieren des Bits u'1 an seinem Ausgang, mit einem Korrektursignal u XOR / korr verbunden sind durch ein XOR-Gatter mit k Eingängen 62. Basierend auf dem Signal u XOR / korr kann leicht bestimmt werden, ob eine ungerade Anzahl von Korrekturen von Bits u'1, ..., u'k stattgefunden hat. Die Ausgänge der Schaltungen K u / i , i = 1, ..., k sind mit dem jeweiligen i-ten Eingang des XOR-Gatters 62 verbunden, der das Signal u XOR / korr = Δu1 ⊕ Δu2 ⊕ ... ⊕ Δuk an seinem Ausgang ausgibt.
  • In 12 ist dargestellt, wie für i = 1, ..., m die Ausgänge der Schaltungen K c / i , die ein Korrektursignal Δci ausgeben zum Korrigieren der Bits c'i an ihrem Ausgang, mit einem Korrektursignal c OR / korr verbunden sind durch ein OR-Gatter mit m Eingängen 71. Basierend auf dem Signal c OR / korr kann leicht bestimmt werden, ob Korrektur überhaupt stattgefunden hat in den Bits c'1, ..., c'm. Die Ausgänge der Schaltungen K c / i , i = 1, ..., m sind mit dem jeweiligen i-ten Eingang des OR-Gatters 71 verbunden, das das Signal c OR / korr = Δc1v Δc2v ... vΔcm an seinem Ausgang ausgibt.
  • In 13 ist dargestellt, wie für i = 1, ..., m die Ausgänge der Schaltungen K c / i , die ein Korrektursignal Δci ausgeben zum Korrigieren des Bits c'i an ihrem Ausgang mit einem Korrektursignal c XOR / korr verbunden sind durch ein XOR-Gatter mit m Eingängen 72. Basierend auf dem Signal c OR / korr kann leicht bestimmt werden, ob eine ungerade Anzahl von Korrekturen der Bits c'1, ..., c'm stattgefunden hat. Die Ausgänge der Schaltungen K c / i , i = 1, ..., m sind mit dem jeweiligen i-ten Eingang des XOR-Gatters 72 verbunden, der das Signal c XOR / korr = Δc1 ⊕ Δc2 ⊕ ... ⊕ Δcm an seinem Ausgang ausgibt.
  • Da der verwendete BCH-Code verkürzt ist, kann es sein, dass ein Mehr-Bit-Fehler auf das Syndrom S(1) eines 1-Bit-Fehlers abgebildet wird, wobei S(1) gleich einer Spalte der Prüfmatrix des unverkürzten BCH-Codes ist, die gelöscht wurde, als die Matrix reduziert wurde. Diese Situation kann leicht erfasst werden, wenn die Signale u OR / korrek und c OR / korr beide gleich 0 sind, aber das Fehlersyndrom S(1) eines 1-Bit-Fehlers existiert.
  • Das vorgeschlagene Konzept wird nun bei einem besonders einfachen Beispiel eines unverkürzten Hamming-Codes mit vier Informationsbits u1, u2, u3, u4, vier Prüfbits c1, ..., c4 und zwei Adressbits a1, a2 beschrieben. Die Wortbreite k = 4, m = 4 und l = 2 ist ausgewählt, um anfangs gering zu sein, um in der Lage zu sein, das Konzept so deutlich wie möglich darzustellen.
  • Die Prüfmatrix des unverkürzten Hamming-Codes ist
  • Figure 00300001
  • Der Satz Sp00 der Spalten der Prüfmatrix, dessen erste zwei Komponenten gleich 0, 0 sind, ist Sp00 = {(0010)T, (0001)T, (0011)T}.
  • Der Satz Sp01 der Spalten der Prüfmatrix, dessen erste zwei Komponenten gleich 0, 1 sind, ist Sp01 = {(0110)T, (0101)T, (0111)T, (0100)T}.
  • Der Satz Sp10 der Spalten der Prüfmatrix, dessen erste zwei Komponenten gleich 1, 0 sind, ist Sp10 = {(1010)T, (1001)T, (1011)T, (1000)T}.
  • Der Satz Sp11 der Spalten der Prüfmatrix, dessen erste zwei Komponenten gleich 1, 1 sind, ist Sp11 = {(1110)T, (1101)T, (1111)T, (1100)T}.
  • Als Spalten der (zweiten) Untermatrix Ha werden zwei linear unabhängige Spalten ausgewählt von SP00, z. B. Spalten (0010)7, (0001)T.
  • Als Spalten der (dritten) Untermatrix Hc werden vier Spalten ausgewählt von Sp10 und Sp01, nämlich Spalten (0100)T, (0111)T, (1000)T, (1001)T, die linear unabhängig sind. Als Spalten der (ersten) Untermatrix Hu werden vier Spalten ausgewählt von Sp11, nämlich Spalten (1100)T, (1101)T, (1110)T, (1111)T. In den ersten zwei Komponenten tritt jeder der Werte 10, 01, 11 eine gerade Anzahl von Malen auf, sodass die XOR-Summe der ersten und zweiten Komponenten der Matrix
    Figure 00310001
    gleich 00 ist. Für das Syndrom S = S1, S2, S3, S4 ergibt sich Folgendes S = H∙(u, a, c)T S1 = u1 + u2 + u3 + u4 + c1 + c4 S2 = u1 + u2 + u3 + u4 + c2 + c3 S3 = u2 + u4 + a1 + c3 S4 = u3 + u4 + a2 + c3 + c4
  • Für den zweidimensionalen Binärvektor a'1, a'2, der gemäß der Gleichung (7) bestimmt wurde, ergibt sich das Folgende
    Figure 00320001
    und somit
    Figure 00320002
    mit der Lösung a'1 = 1 und a'2 = 0.
  • Da a'2 = 0, ist konstant a2 = 1 gesetzt, was zu den Gleichungen S1 = u1 + u2 + u3 + u4 + c1 + c4 S2 = u1 + u2 + u3 + u4 + c2 + c3 S3 = u2 + u4 + a1 + c3 S4 = u3 + u4 + 1 + c3 + c4 führt, was logisch einen Syndromgenerator gemäß dem beschriebenen Konzept beschreibt, dessen Implementierung beispielsweise mit einem handelsüblichen Synthesewerkzeug realisiert werden kann.
  • Die verfügbaren Adressen sind hier nur die Adressen a1, a2 = 0,1 und a1, a2 = 1,1. Das Syndrom des Vektors (0000a1a20000) ist S = (00a11) und somit ungleich 0. Das Syndrom des Vektors (1111a1, a21111) ist gleich S = (00a 11) und somit ungleich 0. Somit sind die Vektoren (0000a1, a20000) und (1111a1, a21111) niemals Codevektoren.
  • Vektor 0000a1, a2 0100 wird als ein Beispiel eines Vektors betrachtet, der eine Eins aufweist in den Bits, die in dem Speicher gespeichert sind. Das zugeordnete Syndrom ist S(10a11). Dasselbe hat zumindest 2 Einsen. Durch Prüfen aller möglichen 1-Bit-Fehler ist es leichter zu bestätigen, dass kein 1-Bit-Fehler den Vektor 0000a1, a2 0100 in ein Codewort mit dem Fehlersyndrom S = 0 modifizieren kann.
  • Eine entsprechende Aussage gilt für alle Vektoren mit genau einer Eins in den Bits u1, u2, u3, u4 c1, c2, c3, c4. Ein Beispiel für die Schaltung zum Bestimmen der Korrekturwerte K u / 1 , K u / 2 , K u / 3 , K u / 4 , K a / 1 , K c / 1 , K c / 2 , K c / 3 , K c / 4 ist in 14a14i gezeigt. Der Wert S = (S1, S2, S3, S4) wird in die Korrekturschaltungen K u / 1 81, K u / 2 82, K u / 3 83, K u / 4 84, K a / 1 85, K c / 1 86, K c / 2 87, K c / 3 88, K c / 4 89 eingefügt.
  • Die Korrekturschaltung K u / 1 81 gibt die Korrekturwerte Δu1 = 1 genau aus, wenn S = 1100.
  • Die Korrekturschaltung K u / 2 82 gibt die Korrekturwerte Δu2 = 1 genau aus, wenn S = 1110.
  • Die Korrekturschaltung K u / 3 83 gibt die Korrekturwerte Δu3 = 1 genau aus, wenn S = 1101.
  • Die Korrekturschaltung K u / 4 84 gibt die Korrekturwerte Δu4 = 1 genau aus, wenn S = 1111.
  • Die Korrekturschaltung K a / 1 85 gibt die Korrekturwerte Δa1 = 1 genau aus, wenn S = 0010.
  • Die Korrekturschaltung K c / 1 86 gibt die Korrekturwerte Δc1 = 1 genau aus, wenn S = 1000.
  • Die Korrekturschaltung K c / 2 87 gibt die Korrekturwerte Δc2 = 1 genau aus, wenn S = 0100.
  • Die Korrekturschaltung K c / 3 88 gibt die Korrekturwerte Δc3 = 1 genau aus, wenn S = 0111.
  • Die Korrekturschaltung K c / 4 89 gibt die Korrekturwerte Δc4 = 1 genau aus, wenn S = 1001.
  • Das dargestellte Konzept ist auch anwendbar wenn die Bits u = u1, ..., uk aus K Nutzdaten bestehen und q Bits, die davon abgeleitet sind. Dann, mit k = K + q, gilt das Folgende u1, ..., uk, = u1, ..., uK, w1, ..., wq.
  • Die Bits w1, ..., wq können auch als innere Prüfbits bezeichnet werden und diese Bits als Prüfbits eines inneren Codes, die bestimmt werden von Bits u1, ..., uK durch
    Figure 00340001
  • Dadurch sind f1, ..., fq K-stellige Boolesche Funktionen und k = K + q gilt. Falls die Booleschen Funktionen f1, ..., fq linear sind, dann ist der innere Code linear. Falls zumindest eine dieser Funktionen nicht linear ist, dann ist der Code nicht linear.
  • Bits u1, ..., uk, = u1, ..., uK, w1, ..., wq werden beispielsweise korrigiert durch einen verkürzten BCH-Code, der einen 2-Bit-Fehler korrigiert durch Verwenden seiner Prüfbits c1, ..., cm. Zum Erhalten einer besonders hohen Wahrscheinlichkeit für eine Fehlererfassung von Fehlern in den Bits u1, ..., uk kann nach der möglichen Fehlerkorrektur durch den BCH-Code Fehlererfassung in Bits u1, ..., uk durchgeführt werden durch Verwenden der Prüfbits des inneren Codes, ohne die Anzahl von Prüfbits des externen Codes erhöhen zu müssen.
  • Als ein Beispiel kann ein nichtlinearer Code verwendet werden, beschrieben im Dokument DE 10 2006 005 836 oder „Gössel, M., Otcheretny, V., Sogomonyan, E. und Marienfeld, D.: New Methods of Concurrent Checking, Springer Verlag 2008, S. 49–53”, wo hier zwei interne Prüfbits bestimmt werden durch w1 = u1u2 ⊕ u3u4 ⊕ ... ⊕ uK-1uK und w2 = u2 ∨ u3 ⊕ u4 ∨ u5 ⊕ ... ⊕ uK ∨ u1
  • Jeder beliebige Fehler, der nicht gleichzeitig alle Bits u1, ..., uk verfälscht, kann dann vorteilhafterweise zumindest mit der Wahrscheinlichkeit ½ erfasst werden, wie es beispielsweise beschrieben ist in „Gössel, M., Otcheretny, V., Sogomonyan, E. und Marienfeld, D.: New Methods of Concurrent Checking, Springer Verlag 2008, S. 49–53”. Es ist auch möglich, die Adressbits in die Bestimmung der Prüfbits des inneren Codes aufzunehmen. Beispielsweise können w1 und w2 bestimmt werden als
    Figure 00350001
  • Es ist auch möglich, dass Bits w1, ..., wq nur von Adressbits a1, ..., al abhängen und nicht von Bits u1, ..., uk. Beispielsweise können die Bits w1, w2 bestimmt werden durch w1w2 = (a1 + 2a2 + ... + 2l-1al)mod3
  • Durch Verwenden des vorgeschlagenen Konzepts kann eine Fehlerkorrekturschaltung für 1-Bit- und 2-Bit-Fehler, bei der die Adressbits in die Fehlererfassung integriert sind, ermöglicht werden, wobei auch die Fehler All-0 und All-1 als Fehler in allen Adresswerten erfasst werden können.
  • Ferner kann es das beschriebene Konzept auch ermöglichen, unter jeder Adresse alle Daten, insbesondere auch den Wert (0, ..., 0), (1, ..., 1) in alle Datenbits zu schreiben, ohne dass alle Speicherzellen besetzt werden durch 0 (1), sodass All-1 (All-0) unter keiner Adresse ein gültiges Codewort in allen Speicherzellen ist.
  • Gleichartig dazu kann es die Schaltungsanordnung ermöglichen, jeden 1-Bit-Fehler von den Fehlern „All-1” und „All-0” zu unterscheiden, was vorteilhaft ist. Somit kann es nicht der Fall sein, dass ein Wort, das aus dem Speicher gelesen wird, im Fall eines korrigierbaren 1-Bit-Fehlers mit einem Fehler „All-0” oder „All-1” verwechselt wird.
  • Nachfolgend wird das oben sehr detailliert beschriebene Beispiel allgemeiner erklärt, wobei auch einige optionale oder zusätzliche Merkmale angezeigt werden.
  • Es gibt eine Schaltungsanordnung zum Erzeugen eines m-stelligen Syndroms S = (S1, ..., Sm) eines Codes C, das zumindest einen 1-Bit-Fehler eines Codeworts der Länge n korrigiert mit einer Prüfmatrix H zum Korrigieren von Fehlern von Bits, die in einem adressierbaren Speicher gespeichert sind. Eine erste Gruppe u = u1, ..., uk von k Bits, eine zweite Gruppe a = a1, ..., al von l Bits und eine dritte Gruppe c = c1, ..., cm von m Bits existiert, und die erste Gruppe von k Bits und die dritte Gruppe von m Bits sind in dem adressierbarem Speicher unter der Adresse a gespeichert. In dem fehlerfreien Fall werden Bits c = c1, ..., cm logisch abgeleitet von den Bits u = u1, ..., uk und a = a1, ..., al durch XOR-Verbindungen, n = k + l + m, wobei die Schaltungsanordnung n Eingänge aufweist, wobei die Bits u1, ..., uk, a1, ..., al, c1, ..., cm angelegt werden, wobei die Bits u1, ..., uk, c1, ..., cm von dem Speicher ausgegeben werden, wenn die Adresse a1, ..., al angelegt wird, und die Werte des Fehlersyndroms S = S1, ..., Sm bestimmt werden durch S = H·(u, a, c)T und (u, a, c)T ist der transponierte Spaltenvektor des Zeilenvektors (u, a, c) und der Prüfmatrix H.
  • Die Prüfmatrix H besteht aus drei Untermatrizen Hu, Ha, Hc, wobei die Untermatrix Hu aus k ersten Spalten von H besteht, die Untermatrix Ha aus l zweiten Spalten von H besteht und die Untermatrix Hc aus den restlichen m Spalten von H besteht, sodass H = (Hu, Ha, Hc) gilt.
  • Ferner gibt es eine erste vordefinierte Komponente und eine zweite vordefinierte Komponente der Spalten von Hu und Hc jeweils ungleich [0, 0], und sodass die XOR-Summe dieser ersten vordefinierten Komponenten der Spalten von Hu und der Spalten von Hc Komponente um Komponente und die XOR-Summe der zweiten vordefinierten Komponenten der Spalten von Hu und Hc Komponente um Komponente jeweils gleich 0 sind.
  • Die Werte der ersten vordefinierten Komponente und die Werte der zweiten vordefinierten Komponente der Spalten von Ha sind jeweils gleich [0, 0].
  • Die l Spalten der Matrix Ha sind linear unabhängig.
  • Die m Spalten der Matrix Hc sind linear unabhängig.
  • Ferner gibt es eine Bitposition r, 1 ≤ r ≤ 1, sodass
    Figure 00360001
    gilt, wobei a'1, ..., a'r-1, a'r+1, ..., a'l ∈ {0, 1} Mit m + l + k ≤ 2m – 1 und l ≤ m – 2.
  • Gemäß einem Aspekt werden k Korrekturschaltungen K u / 1, ..., K u / k mit jeweils m Eingängen und einem Ausgang zum Erzeugen von Korrekturwerten Δu1, ..., Δuk für XOR-Verbindung mit Bits u1, ..., uk, ausgelesen von dem Speicher, gleichzeitig verbunden mit m Ausgängen der oben erwähnten Schaltung, die die m Komponenten des Fehlersyndroms S = S1, ..., Sm ausgibt.
  • Ferner realisieren die Korrekturschaltungen K u / 1, ..., K u / k, wenn C ein 1-Bit-Fehlerkorrekturcode ist, in dem Fall eines 1-Bit-Fehlers oder keines Fehlers, für j = 1, ..., k eine m-stellige Boolesche Funktion K u / j(S) mit
    Figure 00370001
    wobei h u / j die j-te Spalte der Untermatrix Hu ist.
  • Alternativ oder zusätzlich realisieren die Korrekturschaltungen K u / 1, ..., K u / k, wenn C ein 1-Bit-Fehler- und ein 2-Bit-Fehlerkorrekturcode ist, in dem Fall eines 1-Bit-Fehlers oder eines 2-Bitfehlers oder keines Fehlers, für j = 1, ..., k eine m-stellige Boolesche Funktion K u / j(S) mit
    Figure 00370002
    wobei h u / j die j-te Spalte von Hu ist und h eine beliebige Spalte von Hu oder Hc.
  • Gemäß einem weiteren Aspekt ist die Schaltungsanordnung konfiguriert, sodass das logische r-te Adressbit ar auf 1 gesetzt ist, wenn a1, a2, ..., ar-1, ..., a1 = 0, ..., 0 und wenn a1, a2, ..., ar-1, ar+1 ..., al = a'1, a'2, ..., a'r-1, a'r+1 ..., a'l wobei a'1, a'2, ..., a'r-1, a'r+1 ..., a'l bestimmt ist, sodass
    Figure 00380001
    gilt.
  • Ferner kann dieselbe konfiguriert sein, sodass ar konstant auf 1 gesetzt ist.
  • Gemäß einem weiteren Aspekt existiert eine weitere Teilschaltung F0 mit k + m Eingängen und einem Ausgang zum Erfassen der Zuordnung All-0 von einer Speicherzelle, die eine (k + m)-stellige Boolesche Funktion F0(u, c) realisiert, für die das Folgende gilt:
    Figure 00380002
  • Gemäß einem Aspekt existiert eine weitere Teilschaltung F1 mit k + m Eingängen und einem Ausgang zum Erfassen der Zuordnung All-1 einer Speicherzelle, die eine (k + m)-stellige Boolesche Funktion F1(u, c) realisiert, für die das Folgende gilt: F1(u, c) = u1 ∧ u2 ∧ ... ∧ uk ∧ c1 ∧ ... ∧ cm.
  • Ferner kann die Prüfmatrix H ergänzt werden durch eine Zeile
    Figure 00380003
  • Gemäß einem weiteren Aspekt gibt es q Komponenten i1, i2, ..., iq der Spalten der Prüfmatrix H, sodass für jede Spalte h der Prüfmatrix H die XOR-Summe der Werte dieser Komponenten gleich 1 ist.
  • Zusätzlich kann eine Schaltungskomponente mit q Eingängen und einem Ausgang zum Bilden der XOR-Summe der q Komponenten si1, ..., siq des Fehlersyndroms zum Bilden der Parität P P = si1 ⊕ ... ⊕ siq existieren.
  • Gemäß einem Aspekt kann eine weitere Teilschaltung für Adressfehlererfassung (Gleicher-Bitwert-Erfassung) existieren, die im Falle eines Adressfehlers einen Frequenzwert an ihrem Eingang ausgibt.
  • Ferner kann die Teilschaltung für Adressfehlererfassung in dem Fall, dass der Code C ein 1-Bit-Fehler-Erfassungscode ist, in dem Fall eines 1-Bit-Fehlers oder keines Fehlers den Wert Ea(S) ausgeben, mit
    Figure 00390001
    wobei ha eine beliebige Spalte der Untermatrix Ha ist.
  • Zusätzlich kann die Teilschaltung für Adressfehlererfassung in dem Fall, dass der Code C ein 1-Bit-Fehler- und 2-Bit-Fehlerkorrekturcode ist, in dem Fall eines 1-Bit-Fehlers, eines 2-Bit-Fehlers oder keines Fehlers den Wert Ea(S) ausgeben mit
    Figure 00390002
    wobei ha eine beliebige Spalte der Matrix Ha ist, h eine beliebige Spalte der Matrizen Hu, Ha, Hc mit h ≠ ha ist.
  • Gemäß einem weiteren Aspekt existieren l zusätzliche Korrekturschaltungen K a / 1, ..., K a / l mit m Eingängen und einem Ausgang, sodass für j = 1, ..., l die Korrekturschaltung K a / j für den Fall, dass C ein 1-Bit-Fehlerkorrekturcode ist, eine l-stellige Boolesche Funktion K a / j(s) realisiert, für die
    Figure 00400001
    gilt, wobei h j / a die j-te Spalte der Prüfmatrix Ha ist und H eine beliebige Spalte der Matrizen Hu und Hc mit h' ≠ h a / j.
  • Gemäß einem weiteren Aspekt existieren l zusätzliche Korrekturschaltungen K a / 1, ..., K a / l mit m Eingängen und einem Ausgang, sodass für j = 1, ..., l die Korrekturschaltung K a / j für den Fall, dass C ein 1-Bit-Fehler- und 2-Bit-Fehlerkorrekturcode ist, eine l-stellige Boolesche Funktion K a / j(s) realisiert, für die
    Figure 00400002
    gilt, wobei h j / a die j-te Spalte der Prüfmatrix von Ha ist und H eine beliebige Spalte von Matrizen Hu und Hc mit h' ≠ h a / j.
  • Zusätzlich können die l Ausgänge der Korrekturschaltungen K a / 1, ..., K a / l in Eingänge einer Schaltung mit l Eingängen und einem Ausgang geführt werden, wodurch die logische OR-Verbindung ihrer Eingänge realisiert wird.
  • Gemäß einem Aspekt existieren m zusätzliche Korrekturschaltungen K c / 1, ..., K c / m mit m Eingängen und einem Ausgang, wobei in dem Fall dass C ein 1-Bit-Fehlerkorrekturcode für j = 1, ..., m ist, die Korrekturschaltung K c / j eine m-stellige Boolesche Funktion K c / j(S) realisiert, für die in dem Fall für einen 1-Bit-Fehler oder keinen Fehler das Folgende gilt
    Figure 00400003
    und hc die j-te Spalte der Untermatrix Kc ist.
  • Gemäß einem weiteren Aspekt existieren m zusätzliche Korrekturschaltungen K c / 1, ..., K c / m mit m Eingängen und einem Ausgang, wobei in dem Fall, dass C ein 1-Bit- und ein 2-Bit-Fehlerkorrekturcode ist, für j = 1, ..., m die Korrekturschaltung K c / j eine m-stellige Boolesche Funktion K c / j(S) realisiert, für die in dem Fall eines 1-Bit-Fehlers, eines 2-Bitfehlers oder keines Fehler das Folgende gilt
    Figure 00410001
    wobei h c / j die j-te Spalte der Untermatrix Hc ist und H eine beliebige Spalte der Matrizen Hu oder Hc mit h' ≠ h c / j.
  • Gemäß einem weiteren Aspekt werden die k Ausgänge der Korrekturschaltungen K u / 1, ..., K u / k in die Eingänge einer Schaltung mit k Eingängen und einem Ausgang geführt, wodurch eine Logik-ODER-Verbindung ihrer Eingänge realisiert wird.
  • Gemäß einem alternativen Aspekt werden die m Ausgänge der Korrekturschaltungen K u / 1, ..., K u / k in die Eingänge einer Schaltung mit k Eingängen und einem Ausgang geführt, wodurch eine Logik-XOR-Verbindung ihrer Eingänge realisiert wird.
  • Ferner können die m Ausgänge der Korrekturschaltungen K c / 1, ..., K c / m in die Eingänge einer Schaltung mit m Eingängen und einem Ausgang geführt werden, wodurch eine Logik-ODER-Verbindung ihrer Eingänge realisiert wird.
  • Zusätzlich können die m Ausgänge der Korrekturschaltungen K c / 1, ..., K c / m in die Eingänge einer Schaltung mit m Eingängen und einem Ausgang geführt werden, wodurch eine Logik-XOR-Verbindung ihrer Eingänge realisiert wird.
  • Gemäß einem Aspekt werden die Bits uk, ..., uk-v in dem Speicher gespeichert und bestimmt von den Bits u1, ..., uk-v-1, die in dem Speicher gespeichert sind, und den Adressbits a1, ..., al durch v + 1 Schaltungen fk, fk-1, ..., fk-v, die jeweils k – v + 1 Eingänge und einen Ausgang aufweisen, wodurch die (k – v + 1)-stelligen Booleschen Funktionen realisiert werden
    Figure 00410002
    Zusätzlich kann es sein, dass die Booleschen Funktionen fk, ..., fk-v nicht von Adressbits a1, ..., al abhängen.
  • Ferner kann es sein, dass die Booleschen Funktionen fk, ..., fk-v nicht von Bits u1, ..., uk-v-1 abhängen.
  • Außerdem kann es sein, dass zumindest eine der Booleschen Funktionen fk, ..., fk-v nicht linear ist.
  • Ferner kann v gleich 1 sein.
  • Außerdem kann fk definiert werden durch:
    Figure 00420001
    und optional kann fk-1 definiert werden durch:
    Figure 00420002
  • Gemäß einem Aspekt hat die Prüfmatrix Hunverk des unverkürzten BCH-Codes die Form
    Figure 00420003
    und der jeweilige Exponent j ist zu interpretieren von αj modulo 2M – 1.
  • Gemäß einem weiteren Aspekt sind die Korrekturschaltungen K u / i zumindest teilweise zusammen implementiert, die Korrekturschaltungen K c / j und K u / i sind zumindest teilweise zusammen implementiert und/oder die Korrekturschaltungen K c / j , K u / i und K a / j sind zumindest teilweise zusammen implementiert.
  • Einige Ausführungsbeispiele gemäß der Erfindung beziehen sich auf eine Vorrichtung zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz, die eine Einrichtung zum Bestimmen einer Fehlersyndroms und eine Einrichtung zum Korrigieren von Bitfehlern aufweist. Die Einrichtung zum Bestimmen eines Fehlersyndroms kann ein Fehlersyndrom einer codierten Bitsequenz bestimmen, das ableitbar ist durch eine Multiplikation einer Prüfmatrix mit der codierten Bitsequenz. Die Prüfmatrix weist eine erste Untermatrix, eine zweite Untermatrix und eine dritte Untermatrix auf, wobei jede Untermatrix eine Mehrzahl von Reihen aufweist, wobei jede Reihe eine Mehrzahl von binären Komponenten aufweist. Zumindest eine erste vordefinierte Komponente oder eine zweite vordefinierte Komponente jeder Reihe der ersten Untermatrix weist einen ersten Bitwert auf. Ferner weist die zweite Untermatrix Reihen auf, die linear unabhängig voneinander sind. Die erste vordefinierte Komponente und die zweite vordefinierte Komponente jeder Reihe der zweiten Untermatrix weisen einen gleichen zweiten Bitwert auf. Die dritte Untermatrix weist Reihen auf, die linear unabhängig voneinander sind, und die erste vordefinierte Komponente oder die zweite vordefinierte Komponente jeder Reihe der dritten Untermatrix weist den ersten Bitwert auf. Ferner ist entweder eine XOR-Summe der ersten vordefinierten Komponenten aller Reihen der Untermatrix und der dritten Untermatrix gleich dem zweiten Bitwert und eine XOR-Summe der zweiten vordefinierten Komponenten aller Reihen der ersten Untermatrix und der dritten Untermatrix ist gleich dem zweiten Bitwert, falls der erste Bitwert gleich 1 ist, oder eine XNOR-Summe der ersten vordefinierten Komponenten aller Reihen der ersten Untermatrix und der dritten Untermatrix ist gleich dem zweiten Bitwert und eine XNOR-Summe der zweiten vordefinierten Komponenten aller Reihen der ersten Untermatrix und der dritten Untermatrix ist gleich dem zweiten Bitwert, falls der erste Bitwert gleich 0 ist. Außerdem ist ein Ergebnis einer Multiplikation der Prüfmatrix und des Testvektors gleich einem Ergebnis einer Multiplikation der zweiten Untermatrix und eines resultierenden Vektors, wobei zumindest eine Komponente des resultierenden Vektors den zweiten Bitwert aufweist. Die Einrichtung zum Korrigieren von Bitfehlern kann einen Bitfehler in der codierten Bitsequenz korrigieren basierend auf dem bestimmten Fehlersyndrom der codierten Bitsequenz.
  • Einige weitere Ausführungsbeispiele gemäß der Erfindung können sich auf einen Decodierer 1500 zum Decodieren der fehlerhaften codierten Bitsequenz beziehen, wie es in 15 gezeigt ist. Der Decodierer 1500 kann eine Vorrichtung aufweisen zum Korrigieren eines Bitfehlers in einer codierten Bitsequenz gemäß dem oben beschriebenen Konzept und einer Decodiereinheit 1510. Die Decodiereinheit 1510 kann die korrigierte Bitsequenz 122, die durch die Vorrichtung zum Korrigieren eines Bitfehlers bereitgestellt wird in einer codierten Bitsequenz decodieren, um eine decodierte Bitsequenz 1512 zu erhalten.
  • 16 zeigt ein Flussdiagramm eines Verfahrens 1600 zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz gemäß einem Ausführungsbeispiel der Erfindung. Das Verfahren 1600 weist das Bestimmen 1610 eines Fehlersyndroms einer codierten Bitsequenz auf, das ableitbar ist durch eine Multiplikation einer Prüfmatrix mit der codierten Bitsequenz. Die Prüfmatrix weist eine erste Untermatrix, eine zweite Untermatrix und eine dritte Untermatrix auf, wobei jede Untermatrix eine Mehrzahl von Reihen aufweist, wobei jede Reihe eine Mehrzahl von binären Komponenten aufweist. Ferner weist zumindest eine erste vordefinierte Komponente oder eine zweite vordefinierte Komponente jeder Reihe der ersten Untermatrix einen ersten Bitwert auf. Die zweite Untermatrix weist Reihen auf, die linear unabhängig voneinander sind, und die erste vordefinierte Komponente und die zweite vordefinierte Komponente jeder Reihe der zweiten Untermatrix weisen einen zweiten Bitwert auf. Die dritte Untermatrix weist Reihen auf, die linear unabhängig voneinander sind, und die erste vordefinierte Komponente oder die zweite vordefinierte Komponente jeder Reihe der dritten Untermatrix weist den ersten Bitwert auf. Ferner ist entweder eine XOR-Summe der ersten vordefinierten Komponenten aller Reihen der ersten Untermatrix und der dritten Untermatrix gleich dem zweiten Bitwert und eine XOR-Summe der zweiten vordefinierten Komponenten aller Reihen der ersten Untermatrix und der dritten Untermatrix ist gleich dem zweiten Bitwert, falls der erste Bitwert gleich 1 ist, oder eine XNOR-Summe der ersten vordefinierten Komponenten aller Reihen der ersten Untermatrix und der dritten Untermatrix ist gleich dem zweiten Bitwert und eine XNOR-Summe der zweiten vordefinierten Komponenten aller Reihen der ersten Untermatrix und der dritten Untermatrix ist gleich dem zweiten Bitwert, falls der erste Bitwert gleich 0 ist. Außerdem ist das Ergebnis einer Multiplikation der Prüfmatrix und eines Testvektors gleich einem Ergebnis einer Multiplikation der zweiten Untermatrix und eines resultierenden Vektors, wobei zumindest eine Komponente des resultierenden Vektors den zweiten Bitwert aufweist. Ferner weist das Verfahren 1600 das Korrigieren 1620 eines Bitfehlers in der codierten Bitsequenz basierend auf dem bestimmten Fehlersyndrom der codierten Bitsequenz auf.
  • Zusätzlich kann das Verfahren 1600 ferner Schritte aufweisen, die einen oder mehrere der optionalen Aspekte des oben beschriebenen vorgeschlagenen Konzepts darstellen.
  • Obwohl einige Aspekte des beschriebenen Konzepts im Zusammenhang einer Vorrichtung beschrieben wurden, ist klar, dass diese Aspekte auch eine Beschreibung des entsprechenden Verfahrens darstellen, wo ein Block oder eine Vorrichtung einem Verfahrensschritt oder einem Merkmal eines Verfahrensschritts entspricht. Analog stellen Aspekte, die im Zusammenhang eines Verfahrens beschrieben werden, auch eine Beschreibung eines entsprechenden Blocks oder Elements oder Merkmals einer entsprechenden Vorrichtung dar.
  • Abhängig von bestimmten Implementierungsanforderungen können Ausführungsbeispiele der Erfindung in Hardware oder in Software implementiert sein. Die Implementierung kann durchgeführt werden unter Verwendung eines digitalen Speichermediums, beispielsweise einer Diskette, einer DVD, einer Blu-Ray, einer CD, eines ROM, eines PROM, eines EPROM, eines EEPROM oder eines Flash-Speichers mit darauf gespeicherten elektronisch lesbaren Steuersignalen, die zusammenarbeiten (oder in der Lage sind, zusammenzuarbeiten) mit einem programmierbaren Computersystem, sodass das jeweilige Verfahren durchgeführt wird. Daher kann das digitale Speichermedium computerlesbar sein.
  • Einige Ausführungsbeispiele gemäß der Erfindung weisen einen Datenträger auf mit elektronisch lesbaren Steuersignalen, die in der Lage sind, mit einem programmierbaren Computersystem zu kooperieren, sodass eines der hierin beschriebenen Verfahren durchgeführt wird.
  • Allgemein können Ausführungsbeispiele der vorliegenden Erfindung als ein Computerprogrammprodukt mit einem Programmcode implementiert werden, wobei der Programmcode wirksam ist zum Durchführen eines der Verfahren, wenn das Computerprogrammprodukt auf einem Computer läuft. Der Programmcode kann beispielsweise auf einem maschinenlesbaren Träger gespeichert sein.
  • Andere Ausführungsbeispiele weisen das Computerprogramm auf zum Durchführen eines der hierin beschriebenen Verfahren, das auf einem maschinenlesbaren Träger gespeichert ist.
  • Anders ausgedrückt, ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens ist daher ein Computerprogramm mit einem Programmcode zum Durchführen eines der hierin beschriebenen Verfahren, wenn das Computerprogramm auf einem Computer läuft.
  • Ein weiteres Ausführungsbeispiel des erfindungsgemäßen Verfahrens ist daher ein Datenträger (oder ein digitales Speichermedium oder ein computerlesbares Medium), das darauf aufgezeichnet das Computerprogramm aufweist zum Durchführen von einem der hierin beschriebenen Verfahren.
  • Ein weiteres Ausführungsbeispiel des erfindungsgemäßen Verfahrens ist daher ein Datenstrom oder eine Sequenz von Signalen, der/die das Computerprogramm darstellt zum Durchführen eines der hierin beschriebenen Verfahren. Der Datenstrom oder die Sequenz von Signalen kann beispielsweise konfiguriert sein, um über eine Datenkommunikationsverbindung, beispielsweise über das Internet, übertragen zu werden.
  • Ein weiteres Ausführungsbeispiel weist eine Verarbeitungseinrichtung auf, beispielsweise einen Computer oder ein programmierbares Logikbauelement, das konfiguriert oder angepasst ist zum Durchführen eines der hierin beschriebenen Verfahren.
  • Ein weiteres Ausführungsbeispiel weist einen Computer auf mit darauf installiertem Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren.
  • Bei einigen Ausführungsbeispielen kann ein programmierbares Logikbauelement (beispielsweise ein feldprogrammierbares Gatterarray) verwendet werden, um einige oder alle der hierin beschriebenen Funktionalitäten durchzuführen. Bei einigen Ausführungsbeispielen kann ein feldprogrammierbares Gatterarray mit einem Mikroprozessor zusammenwirken, um eines der hierin beschriebenen Verfahren durchzuführen. Allgemein werden die Verfahren vorzugsweise durch jede Hardwarevorrichtung durchgeführt.
  • Die oben beschriebenen Ausführungsbeispiele sind lediglich darstellend für die Prinzipien der vorliegenden Erfindung. Es ist klar, dass Modifikationen und Variationen der Anordnungen und der hierin beschriebenen Einzelheiten für andere Fachleute auf diesem Gebiet offensichtlich sind. Dieselbe ist nur durch den Schutzbereich der angehängten Patentansprüche begrenzt und nicht durch die spezifischen Einzelheiten, die durch Beschreibung und Erklärung der Ausführungsbeispiele hierin präsentiert wurden.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • DE 102006005836 [0160]
  • Zitierte Nicht-Patentliteratur
    • Fujiwara, E., Code Design for Dependable Systems, Wiley, 2006, S. 49–53, S. 98–101 [0027]
    • Tzschach, H. und Haflinger, G., Codes für den störungsgesicherten Datentransfer, Oldenburg Verlag, 1993, S. 111–121 [0027]
    • Tzschach, H. und Haßlinger, G.: Codes für den störungssicheren Datentransfer, Oldenburg Verlag 1993, S. 111–121 [0035]
    • Lin, S., Costello, D.: Error Control Coding, Prentice Hall, 1983, Kapitel 6 [0035]
    • Lin, S. und Costello, D.: Error Control Coding, Prentice-Hall, 1983, S. 92–95 [0045]
    • Peterson, W., und Weldon, E.: Error Correcting Codes, 2. Auflage, MIT Press, 1972, Annex C, S. 476 [0100]
    • Okamo, H. and Imai, H.: A Construction Method for Decodierers of BCH-Codes for Bose Chaudhuri-Hocquenghem and Reed Salomon Codes, IEEE Trans. Corp. C 36, Nr. 10, S. 1165–1171, 1985 [0122]
    • Gössel, M., Otcheretny, V., Sogomonyan, E. und Marienfeld, D.: New Methods of Concurrent Checking, Springer Verlag 2008, S. 49–53 [0160]
    • Gössel, M., Otcheretny, V., Sogomonyan, E. und Marienfeld, D.: New Methods of Concurrent Checking, Springer Verlag 2008, S. 49–53 [0161]

Claims (22)

  1. Vorrichtung zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz (102), wobei die Vorrichtung folgende Merkmale aufweist: einen Fehlersyndromgenerator (110), der konfiguriert, um ein Fehlersyndrom einer codierten Bitsequenz (102) zu bestimmen, das ableitbar ist durch eine Multiplikation einer Prüfmatrix (H) mit der codierten Bitsequenz (102), wobei die Prüfmatrix (H) eine erste Untermatrix (Hu), eine zweite Untermatrix (Ha) und eine dritte Untermatrix (Hc) aufweist, wobei jede Untermatrix eine Mehrzahl von Reihen aufweist, wobei jede Reihe eine Mehrzahl von binären Komponenten aufweist, wobei zumindest eine erste vordefinierte Komponente oder eine zweite vordefinierte Komponente jeder Reihe der ersten Untermatrix (Hu) einen ersten Bitwert aufweist, wobei die zweite Untermatrix (Ha) Reihen aufweist, die linear unabhängig voneinander sind, wobei die erste vordefinierte Komponente und die zweite vordefinierte Komponente jeder Reihe der zweiten Untermatrix (Ha) einen gleichen zweiten Bitwert aufweisen, wobei die dritte Untermatrix (Hc) Reihen aufweist, die linear unabhängig voneinander sind, wobei die erste vordefinierte Komponente oder die zweite vordefinierte Komponente jeder Reihe der dritten Untermatrix (Hc) den ersten Bitwert aufweist, wobei entweder eine XOR-Summe der ersten vordefinierten Komponenten aller Reihen der ersten Untermatrix (Hu) und der dritten Untermatrix (Hc) gleich dem zweiten Bitwert ist und eine XOR-Summe der zweiten vordefinierten Komponenten aller Reihen der ersten Untermatrix (Hu) und der dritten Untermatrix (Hc) gleich dem zweiten Bitwert ist, falls der erste Bitwert gleich 1 ist, oder eine XNOR-Summe der ersten vordefinierten Komponenten aller Reihen der ersten Untermatrix (Hu) und der dritten Untermatrix (Hc) gleich dem zweiten Bitwert ist und eine XNOR-Summe der zweiten vordefinierten Komponenten aller Reihen der ersten Untermatrix (Hu) und der dritten Untermatrix (Hc) gleich dem zweiten Bitwert ist, falls der erste Bitwert gleich 0 ist, wobei ein Ergebnis einer Multiplikation der Prüfmatrix (H) und eines Testvektors gleich einem Ergebnis einer Multiplikation der zweiten Untermatrix und eines resultierenden Vektors ist, wobei zumindest eine Komponente des resultierenden Vektors den zweiten Bitwert aufweist; und einen Bitfehlerkorrektor (120), der konfiguriert ist, um einen Bitfehler in der codierten Bitsequenz (102) zu korrigieren basierend auf dem bestimmten Fehlersyndrom der codierten Bitsequenz (102).
  2. Vorrichtung gemäß Anspruch 1, bei der jede Komponente des Testvektors, die mit einer Komponente der ersten Untermatrix (Hu) und der dritten Untermatrix (Hc) multipliziert wird, den ersten Bitwert aufweist, wobei jede Komponente des Testvektors, die mit einer Komponente einer Reihe der zweiten Untermatrix (Ha) multipliziert wird, den zweiten Bitwert aufweist.
  3. Vorrichtung gemäß Anspruch 1 oder 2, bei der die Reihen der ersten Untermatrix (Hu) alle unterschiedlich sind zu den Reihen der dritten Untermatrix (Hc).
  4. Vorrichtung gemäß einem der Ansprüche 1 bis 3, bei der das Fehlersyndrom der codierten Bitsequenz (102) ableitbar ist basierend auf einer Multiplikation der ersten Untermatrix (Hu) mit einer ersten Gruppe von Bits der codierten Bitsequenz (102), einer Multiplikation der zweiten Untermatrix (Ha) mit einer zweiten Gruppe von Bits der codierten Bitsequenz (102) und einer Multiplikation der dritten Untermatrix (Hc) mit einer dritten Gruppe von Bits der codierten Bitsequenz (102).
  5. Vorrichtung gemäß Anspruch 4, bei der die erste Gruppe von Bits Informationsbits darstellt, die zweite Gruppe von Bits Adressbits darstellt und die dritte Gruppe von Bits Prüfbits darstellt.
  6. Vorrichtung gemäß Anspruch 4 oder 5, bei der zumindest ein Bit der ersten Gruppe von Bits von zumindest einem Bit der zweiten Gruppe von Bits abhängt.
  7. Vorrichtung gemäß Anspruch 5 oder 6, die einen adressierbaren Speicher aufweist, wobei zumindest die erste Gruppe von Bits und die dritte Gruppe von Bits der codierten Bitsequenz (102) an einer Adresse der Speichereinheit gespeichert sind, die durch die zweite Gruppe von Bits angezeigt ist.
  8. Vorrichtung gemäß einem der Ansprüche 4 bis 7, bei der ein Bit der zweiten Gruppe von Bits, das der zumindest einen Komponente des resultierenden Vektors zugeordnet ist, die den zweiten Bitwert aufweist, den ersten Bitwert aufweist.
  9. Vorrichtung gemäß einem der Ansprüche 4 bis 8, die einen Gleicher-Bitwert-Detektor aufweist, der konfiguriert ist, um ein Signal zu liefern, das anzeigt, ob alle Bits der ersten Gruppe von Bits und alle Bits der dritten Gruppe von Bits der codierten Bitsequenz (102) einen gleichen Bitwert aufweisen oder nicht.
  10. Vorrichtung gemäß einem der Ansprüche 4 bis 9, bei der eine Anzahl von Bits der zweiten Gruppe von Bits der codierten Bitsequenz (102) kleiner ist als oder gleich einer Anzahl von Bits der dritten Gruppe von Bits der codierten Bitsequenz (102) minus 2.
  11. Vorrichtung gemäß einem der Ansprüche 1 bis 10, bei der eine XOR-Summe einer vordefinierten Mehrzahl von Komponenten jeder Reihe der Prüfmatrix (H) gleich einem gleichen Bitwert ist.
  12. Vorrichtung gemäß einem der Ansprüche 1 bis 11, bei der jede Reihe der ersten Untermatrix (Hu), der zweiten Untermatrix (Ha) und der dritten Untermatrix (Hc) eine Spalte der jeweiligen Untermatrix ist, die ersten vordefinierten Komponenten der Reihen der ersten Untermatrix (Hu), der zweiten Untermatrix (Ha) und der dritten Untermatrix (Hc) eine Zeile der Prüfmatrix (H) darstellen, und die zweiten vordefinierten Komponenten der Reihen der ersten Untermatrix (Hu), der zweiten Untermatrix (Ha) und der dritten Untermatrix (Hc) eine weitere Zeile der Prüfmatrix (H) darstellen, oder wobei jede Reihe der ersten Untermatrix (Hu), der zweiten Untermatrix (Ha) und der dritten Untermatrix (Hc) eine Zeile der jeweiligen Untermatrix ist, die ersten vordefinierten Komponenten der Reihen der ersten Untermatrix (Hu), der zweiten Untermatrix (Ha) und der dritten Untermatrix (Hc) eine Spalte der Prüfmatrix (H) darstellen und die zweiten vordefinierten Komponenten der Reihen der ersten Untermatrix (Hu), der zweiten Untermatrix (Ha) und der dritten Untermatrix (Hc) eine weitere Spalte der Prüfmatrix (H) darstellen.
  13. Vorrichtung gemäß einem der Ansprüche 1 bis 12, bei der der Fehlersyndromgenerator (110) konfiguriert ist, um das Fehlersyndrom zu bestimmen durch Multiplizieren der Prüfmatrix (H) mit der codierten Bitsequenz (102).
  14. Vorrichtung gemäß einem der Ansprüche 1 bis 13, bei der der Fehlersyndromgenerator (110) und der Bitfehlerkorrektor (120) zumindest teilweise zusammen implementiert sind.
  15. Vorrichtung gemäß einem der Ansprüche 1 bis 14, bei der eine vordefinierte gleiche Komponente aller Reihen der Prüfmatrix (H) einen gleichen Bitwert aufweist.
  16. Vorrichtung gemäß einem der Ansprüche 1 bis 15, bei der die Prüfmatrix (H) in einer getrennten Form dargestellt ist.
  17. Vorrichtung gemäß einem der Ansprüche 1 bis 16, bei der die Prüfmatrix (H) eine Prüfmatrix (H) eines verkürzten Hamming-Codes, eines verkürzten Hsiao-Codes oder eines verkürzten BCH-Codes ist.
  18. Decodierer zum Decodieren einer fehlerhaften codierten Bitsequenz (102), der folgende Merkmale aufweist: eine Vorrichtung zum Korrigieren eines Bitfehlers in einer codierten Bitsequenz (102) gemäß Anspruch 1; und eine Decodiereinheit, die konfiguriert ist, um die korrigierte Bitsequenz (102) zu decodieren.
  19. Vorrichtung zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz (102), wobei die Vorrichtung folgende Merkmale aufweist: eine Einrichtung zum Bestimmen einer Fehlersyndroms, die konfiguriert ist, um ein Fehlersyndrom einer codierten Bitsequenz (102) zu bestimmen, das ableitbar ist durch eine Multiplikation einer Prüfmatrix (H) mit der codierten Bitsequenz (102), wobei die Prüfmatrix (H) eine erste Untermatrix (Hu), eine zweite Untermatrix (Ha) und eine dritte Untermatrix (Hc) aufweist, wobei jede Untermatrix eine Mehrzahl von Reihen aufweist, wobei jede Reihe eine Mehrzahl von binären Komponenten aufweist, wobei zumindest eine erste vordefinierte Komponente oder eine zweite vordefinierte Komponente jeder Reihe der ersten Untermatrix (Hu) einen ersten Bitwert aufweist, wobei die zweite Untermatrix Reihen aufweist, die linear unabhängig voneinander sind, wobei die erste vordefinierte Komponente und die zweite vordefinierte Komponente jeder Reihe der zweiten Untermatrix einen gleichen zweiten Bitwert aufweist, wobei die dritte Untermatrix (Hc) Reihen aufweist, die linear unabhängig voneinander sind, wobei die erste vordefinierte Komponente oder die zweite vordefinierte Komponente jeder Reihe der dritten Untermatrix (Hc) den ersten Bitwert aufweist, wobei entweder eine XOR-Summe der ersten vordefinierten Komponenten aller Reihen der ersten Untermatrix (Hu) und der dritten Untermatrix (Hc) gleich dem zweiten Bitwert ist und eine XOR-Summe der zweiten vordefinierten Komponenten aller Reihen der ersten Untermatrix (Hu) und der dritten Untermatrix (Hc) gleich dem zweiten Bitwert ist, falls der erste Bitwert gleich 1 ist, oder eine XNOR-Summe der ersten vordefinierten Komponenten aller Reihen der ersten Untermatrix (Hu) und der dritten Untermatrix (Hc) gleich dem zweiten Bitwert ist und eine XNOR-Summe der zweiten vordefinierten Komponenten aller Reihen der ersten Untermatrix (Hu) und der dritten Untermatrix (Hc) gleich dem zweiten Bitwert ist, falls der erste Bitwert gleich 0 ist, wobei ein Ergebnis einer Multiplikation der Prüfmatrix (H) und eines Testvektors gleich einem Ergebnis einer Multiplikation der zweiten Untermatrix und eines resultierenden Vektors ist, wobei zumindest eine Komponente des resultierenden Vektors den zweiten Bitwert aufweist; und eine Einrichtung zum Korrigieren von Bitfehlern, die konfiguriert ist, um einen Bitfehler in der codierten Bitsequenz (102) zu korrigieren basierend auf dem bestimmten Fehlersyndrom der codierten Bitsequenz (102).
  20. Schaltungsanordnung zum Erzeugen eines m-stelligen Syndroms S = (S1, ..., Sm) eines Codes C, das zumindest einen 1-Bit-Fehler eines Codeworts der Länge n korrigiert mit einer Prüfmatrix H zum Korrigieren von Fehlern von Bits, die in einem adressierbaren Speicher gespeichert sind, wobei eine erste Gruppe u = u1, ..., uk von k Bits, eine zweite Gruppe a = a1, ..., al von l Bits und eine dritte Gruppe c = c1, ..., cm von m Bits existiert, und die erste Gruppe von k Bits und die dritte Gruppe von m Bits in adressierbarem Speicher unter der Adresse a gespeichert sind, wobei in dem fehlerfreien Fall Bits c = c1, ..., cm logisch abgeleitet werden von Bits u = u1, ..., uk und a = a1, ..., al durch XOR-Verbindungen, n = k + l + m, wobei die Schaltungsanordnung n Eingänge aufweist, wo die Bits u1, ..., uk, a1, ..., al, c1, ..., cm angelegt werden, wobei Bits u1, ..., uk, c1, ..., cm von dem Speicher ausgegeben werden, wenn die Adresse a1, ..., al angelegt wird, und die Werte des Fehlersyndroms S = S1, ..., Sm bestimmt werden durch S = H·(u, a, c)T und (u, a, c)T der transponierte Spaltenvektor des Zeilenvektors (u, a, c) und der Prüfmatrix H ist, wobei die Prüfmatrix H aus drei Untermatrizen Hu, Ha, Hc besteht, wobei die Untermatrix Hu aus k ersten Spalten von H besteht, die Untermatrix Ha aus l zweiten Spalten von H besteht und die Untermatrix Hc aus den restlichen m Spalten von H besteht, sodass H = (Hu Ha, Hc) gilt, wobei es eine erste vordefinierte Komponente und eine zweite vordefinierte Komponente der Spalten von Hu und Hc jeweils ungleich [0, 0] gibt, und sodass die XOR-Summe dieser ersten vordefinierten Komponenten der Spalten von Hu und der Spalten von Hc Komponente um Komponente und die XOR-Summe der zweiten vordefinierten Komponenten der Spalten von Hu und Hc Komponente um Komponente jeweils gleich 0 sind, wobei die Werte der ersten vordefinierten Komponente und die Werte der zweiten vordefinierten Komponente der Spalten von Ha jeweils gleich [0, 0] sind, wobei die l Spalten der Matrix Ha linear unabhängig sind, wobei die m Spalten der Matrix Hc linear unabhängig sind, wobei es eine Bitposition r, 1 ≤ r ≤ 1 gibt, sodass
    Figure 00520001
    gilt, wobei a'1, ..., a'r-1, a'r+1, ..., a'l ∈ {0, 1} mit m + l + k ≤ 2m – 1 und l ≤ m – 2.
  21. Verfahren zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz (102), wobei das Verfahren folgende Schritte aufweist: Bestimmen eines Fehlersyndroms einer codierten Bitsequenz (102), das ableitbar ist durch eine Multiplikation einer Prüfmatrix (H) mit der codierten Bitsequenz (102), wobei die Prüfmatrix (H) eine erste Untermatrix (Hu), eine zweite Untermatrix (Ha) und eine dritte Untermatrix (Hc) aufweist, wobei jede Untermatrix eine Mehrzahl von Reihen aufweist, wobei jede Reihe eine Mehrzahl von binären Komponenten aufweist, wobei zumindest eine erste vordefinierte Komponente oder eine zweite vordefinierte Komponente jeder Reihe der ersten Untermatrix (Hu) einen ersten Bitwert aufweist, wobei die zweite Untermatrix Reihen aufweist, die linear unabhängig voneinander sind, wobei die erste vordefinierte Komponente und die zweite vordefinierte Komponente jeder Reihe der zweiten Untermatrix (Ha) einen gleichen zweiten Bitwert aufweisen, wobei die dritte Untermatrix (Hc) Reihen aufweist, die linear unabhängig voneinander sind, wobei die erste vordefinierte Komponente oder die zweite vordefinierte Komponente jeder Reihe der dritten Untermatrix (Hc) den ersten Bitwert aufweist, wobei entweder eine XOR-Summe der ersten vordefinierten Komponenten aller Reihen der ersten Untermatrix (Hu) und der dritten Untermatrix (Hc) gleich dem zweiten Bitwert ist und eine XOR-Summe der zweiten vordefinierten Komponenten aller Reihen der ersten Untermatrix (Hu) und der dritten Untermatrix (Hc) gleich dem zweiten Bitwert ist, falls der erste Bitwert gleich 1 ist, oder eine XNOR-Summe der ersten vordefinierten Komponenten aller Reihen der ersten Untermatrix (Hu) und der dritten Untermatrix (Hc) gleich dem zweiten Bitwert ist und eine XNOR-Summe der zweiten vordefinierten Komponenten aller Reihen der ersten Untermatrix (Hu) und der dritten Untermatrix (Hc) gleich dem zweiten Bitwert ist, falls der erste Bitwert gleich 0 ist, wobei ein Ergebnis einer Multiplikation der Prüfmatrix (H) und eines Testvektors gleich einem Ergebnis einer Multiplikation der zweiten Untermatrix und eines resultierenden Vektors ist, wobei zumindest eine Komponente des resultierenden Vektors den zweiten Bitwert aufweist; und Korrigieren eines Bitfehlers in der codierten Bitsequenz (102) basierend auf dem bestimmten Fehlersyndrom der codierten Bitsequenz (102).
  22. Computerprogramm mit einem Programmcode zum Durchführen des Verfahrens gemäß Anspruch 22, wenn das Computerprogramm auf einem Computer oder einem Mikrocontroller läuft.
DE102011085602.1A 2010-11-10 2011-11-02 Vorrichtung und Verfahren zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz Active DE102011085602B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/943,520 2010-11-10
US12/943,520 US8539321B2 (en) 2010-11-10 2010-11-10 Apparatus and method for correcting at least one bit error within a coded bit sequence

Publications (2)

Publication Number Publication Date
DE102011085602A1 true DE102011085602A1 (de) 2012-07-12
DE102011085602B4 DE102011085602B4 (de) 2020-10-22

Family

ID=46020810

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102011085602.1A Active DE102011085602B4 (de) 2010-11-10 2011-11-02 Vorrichtung und Verfahren zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz

Country Status (3)

Country Link
US (2) US8539321B2 (de)
CN (2) CN102468855A (de)
DE (1) DE102011085602B4 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014215252B4 (de) 2013-08-02 2022-10-20 Infineon Technologies Ag Wirksame fehlerkorrektur von mehrbitfehlern

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8694872B2 (en) * 2011-11-28 2014-04-08 Texas Instruments Incorporated Extended bidirectional hamming code for double-error correction and triple-error detection
US9203437B2 (en) * 2012-12-19 2015-12-01 Infineon Technologies Ag Circuitry and method for correcting 3-bit errors containing adjacent 2-bit error
CN103165193B (zh) * 2013-03-01 2016-03-02 中国空间技术研究院 探测修正存储器两位错误的低冗余加固方法及电路装置
US20150055405A1 (en) * 2013-08-23 2015-02-26 Kabushiki Kaisha Toshiba Memory device and memory system with sensor
DE102013219088B9 (de) 2013-09-23 2018-07-19 Infineon Technologies Ag Schaltungsanordnung und Verfahren zur Realisierung von Prüfbitkompaktierung für Cross-Parity-Codes
US9787329B2 (en) * 2015-10-15 2017-10-10 Apple Inc. Efficient coding with single-error correction and double-error detection capabilities
CN107612561B (zh) * 2017-09-30 2021-02-02 武汉虹信科技发展有限责任公司 一种编码、译码方法及装置
JP2019109806A (ja) * 2017-12-20 2019-07-04 ルネサスエレクトロニクス株式会社 データ処理装置及びデータ処理方法
US10956259B2 (en) * 2019-01-18 2021-03-23 Winbond Electronics Corp. Error correction code memory device and codeword accessing method thereof
WO2020237377A1 (en) * 2019-05-27 2020-12-03 École De Technologie Supérieure Methods and systems for bit error determination and correction
DE102021133678A1 (de) * 2021-01-20 2022-07-21 Infineon Technologies Ag Korrektur von bitfehlern

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006005836A1 (de) 2006-02-08 2007-08-09 Universität Potsdam Schaltungsanordnung und Verfahren zur Fehlererkennung und Anordnung zur Überwachung einer digitalen Schaltung

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3623155A (en) * 1969-12-24 1971-11-23 Ibm Optimum apparatus and method for check bit generation and error detection, location and correction
US3714629A (en) 1971-06-01 1973-01-30 Ibm Double error correcting method and system
US4713816A (en) * 1986-02-25 1987-12-15 U.S. Philips Corporation Three module memory system constructed with symbol-wide memory chips and having an error protection feature, each symbol consisting of 2I+1 bits
US5657331A (en) * 1995-03-13 1997-08-12 Samsung Electronics Co., Ltd. Method and apparatus for the generation of simple burst error correcting cyclic codes for use in burst error trapping decoders
US5938773A (en) * 1996-03-14 1999-08-17 Intel Corporation Sideband signaling with parity bit schemes
US5978953A (en) * 1996-12-19 1999-11-02 Compaq Computer Corporation error detection and correction
US6003144A (en) * 1997-06-30 1999-12-14 Compaq Computer Corporation Error detection and correction
US6604222B1 (en) * 1999-04-30 2003-08-05 Rockwell Collins, Inc. Block code to efficiently correct adjacent data and/or check bit errors
US6751769B2 (en) * 2000-06-06 2004-06-15 International Business Machines Corporation (146,130) error correction code utilizing address information
JP2002056671A (ja) 2000-08-14 2002-02-22 Hitachi Ltd ダイナミック型ramのデータ保持方法と半導体集積回路装置
US6732325B1 (en) * 2000-11-08 2004-05-04 Digeo, Inc. Error-correction with limited working storage
US7093183B2 (en) * 2001-02-28 2006-08-15 International Business Machines Corporation Symbol level error correction codes which protect against memory chip and bus line failures
JP3565798B2 (ja) * 2001-06-14 2004-09-15 英二 藤原 バースト誤りパターン生成方法及びバーストおよびバイト誤り検出・訂正装置
WO2003023973A1 (fr) * 2001-08-28 2003-03-20 Linkair Communications, Inc. Procede de decodage repete pour le traitement en cascade de code de bloc sur la base du decodage du syndrome de sous-code
JP4205396B2 (ja) 2002-10-30 2009-01-07 エルピーダメモリ株式会社 半導体集積回路装置
US7191380B2 (en) * 2003-09-10 2007-03-13 Hewlett-Packard Development Company, L.P. Defect-tolerant and fault-tolerant circuit interconnections
JP4036338B2 (ja) * 2005-03-04 2008-01-23 国立大学法人東京工業大学 誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置
DE102005022107B9 (de) * 2005-05-12 2016-04-07 Infineon Technologies Ag Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge
JP4547313B2 (ja) 2005-08-01 2010-09-22 株式会社日立製作所 半導体記憶装置
JP2007087530A (ja) * 2005-09-22 2007-04-05 Rohm Co Ltd 信号復号方法、信号復号装置および信号記憶システム
US7844877B2 (en) 2005-11-15 2010-11-30 Ramot At Tel Aviv University Ltd. Method and device for multi phase error-correction
KR20070063851A (ko) * 2005-12-15 2007-06-20 삼성전자주식회사 패리티 검사 행렬, 패리티 검사 행렬 생성 방법, 인코딩방법 및 에러 정정 장치
US7996747B2 (en) * 2006-11-03 2011-08-09 International Business Machines Corporation Forward error correction encoding for multiple link transmission compatible with 64B/66B scrambling
CN100571045C (zh) * 2008-03-03 2009-12-16 炬才微电子(深圳)有限公司 一种解码伴随式的计算方法、电路及解码器
KR101449750B1 (ko) * 2008-03-05 2014-10-15 삼성전자주식회사 저밀도 패리티 검사 부호 생성 장치 및 방법
CN101277119B (zh) * 2008-05-14 2010-06-02 清华大学 里德所罗门码解码器硬件复用方法及其低硬件复杂度解码装置
KR101506655B1 (ko) * 2008-05-15 2015-03-30 삼성전자주식회사 메모리 장치 및 메모리 데이터 오류 관리 방법
CN101621299B (zh) * 2008-07-04 2013-01-30 华为技术有限公司 一种突发纠错的方法、设备和装置
CN101814922B (zh) * 2009-02-23 2013-06-19 国际商业机器公司 基于bch码的多位错纠错方法和装置以及存储系统
WO2010119381A1 (en) * 2009-04-14 2010-10-21 Ben Gurion University Of The Negev Efficient detection of errors in associative memory
US8381083B2 (en) * 2009-10-22 2013-02-19 Arm Limited Error control coding for single error correction and double error detection
JP5353655B2 (ja) * 2009-11-18 2013-11-27 富士通株式会社 エラー検出・訂正符号生成回路及びその制御方法
US8443249B2 (en) * 2010-04-26 2013-05-14 Lsi Corporation Systems and methods for low density parity check data encoding
CN101873143B (zh) * 2010-06-01 2013-03-27 福建新大陆电脑股份有限公司 一种rs纠错码解码器中的伴随式计算电路及其计算方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102006005836A1 (de) 2006-02-08 2007-08-09 Universität Potsdam Schaltungsanordnung und Verfahren zur Fehlererkennung und Anordnung zur Überwachung einer digitalen Schaltung

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
Fujiwara, E., Code Design for Dependable Systems, Wiley, 2006, S. 49-53, S. 98-101
Gössel, M., Otcheretny, V., Sogomonyan, E. und Marienfeld, D.: New Methods of Concurrent Checking, Springer Verlag 2008, S. 49-53
Lin, S. und Costello, D.: Error Control Coding, Prentice-Hall, 1983, S. 92-95
Lin, S., Costello, D.: Error Control Coding, Prentice Hall, 1983, Kapitel 6
Okamo, H. and Imai, H.: A Construction Method for Decodierers of BCH-Codes for Bose Chaudhuri-Hocquenghem and Reed Salomon Codes, IEEE Trans. Corp. C 36, Nr. 10, S. 1165-1171, 1985
Peterson, W., und Weldon, E.: Error Correcting Codes, 2. Auflage, MIT Press, 1972, Annex C, S. 476
Tzschach, H. und Haflinger, G., Codes für den störungsgesicherten Datentransfer, Oldenburg Verlag, 1993, S. 111-121

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014215252B4 (de) 2013-08-02 2022-10-20 Infineon Technologies Ag Wirksame fehlerkorrektur von mehrbitfehlern
DE102014215252B9 (de) 2013-08-02 2023-03-09 Infineon Technologies Ag Wirksame fehlerkorrektur von mehrbitfehlern

Also Published As

Publication number Publication date
CN104393878A (zh) 2015-03-04
US20120117448A1 (en) 2012-05-10
US10200065B2 (en) 2019-02-05
DE102011085602B4 (de) 2020-10-22
US20130346834A1 (en) 2013-12-26
CN102468855A (zh) 2012-05-23
US8539321B2 (en) 2013-09-17

Similar Documents

Publication Publication Date Title
DE102011085602B4 (de) Vorrichtung und Verfahren zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz
DE102015201384A1 (de) Vorrichtung und Verfahren zum Verbessern der Datenspeicherung durch Dateninvertierung
DE102017110389B4 (de) Verfahren und Decoder zur Softinput Decodierung von verallgemeinerten verketteten Codes
DE102005028221B4 (de) Vorrichtung und Verfahren zum Schutz der Integrität von Daten
DE102017103347B4 (de) Verarbeitung von daten in speicherzellen eines speichers
DE102005022107B9 (de) Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge
DE102015113414A1 (de) Fehlerkorrektur unter Verwendung von WOM-Codes
DE102016102590B4 (de) Datenverarbeitungseinrichtungen und verfahren zum rekonstruieren eines puf-werts
DE102014215252B9 (de) Wirksame fehlerkorrektur von mehrbitfehlern
DE102011087634B4 (de) Vorrichtung und verfahren zum erfassen eines fehlers in einem codierten binärwort
DE2217935B2 (de) Anordnung und Verfahren zur Korrektur von Doppelfehlern in einer Nachricht
DE102013222136B4 (de) Schaltung und Verfahren für die Mehr-Bit-Korrektur
DE102018131613A1 (de) Fehlererkennung mittels Gruppenfehler
DE102011087457A1 (de) Vorrichtung und verfahren zum erfassen eines fehlers in einer mehrzahl von codierten binärwörtern, die durch einen fehlerkorrekturcode codiert sind
DE102016104012A1 (de) Verarbeitung eines Datenworts
DE102013219088B9 (de) Schaltungsanordnung und Verfahren zur Realisierung von Prüfbitkompaktierung für Cross-Parity-Codes
DE102021109391B3 (de) Multibytefehler-Erkennung
DE102014118531B4 (de) Verfahren und Datenverarbeitungseinrichtung zum Ermitteln eines Fehlervektors in einem Datenwort
DE102019113970B4 (de) Erkennung von adressfehlern
DE102018126685B3 (de) Verarbeitung von Daten
DE102011080659B4 (de) Vorrichtung und verfahren zum testen einer zu testenden schaltung
DE102017107431B4 (de) Verfahren und Vorrichtungen zur Fehlerkorrekturcodierung beruhend auf hochratigen verallgemeinerten verketteten Codes
DE102015121646B4 (de) Fehlerkorrektur
DE102022111624B4 (de) Fehlerkorrektur mit schneller Syndromberechnung
DE102011102503B3 (de) Verfahren zum Berichtigen beschädigter Daten

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
R082 Change of representative