DE102010041680B4 - Vorrichtung und Verfahren zum Bestimmen einer Position eines 1-Bit-Fehlers in einer codierten Bitsequenz, Vorrichtung und Verfahren zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz und Decodierer und Verfahren zum Decodieren einer fehlerhaften, codierten Bitsequenz - Google Patents

Vorrichtung und Verfahren zum Bestimmen einer Position eines 1-Bit-Fehlers in einer codierten Bitsequenz, Vorrichtung und Verfahren zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz und Decodierer und Verfahren zum Decodieren einer fehlerhaften, codierten Bitsequenz Download PDF

Info

Publication number
DE102010041680B4
DE102010041680B4 DE102010041680.0A DE102010041680A DE102010041680B4 DE 102010041680 B4 DE102010041680 B4 DE 102010041680B4 DE 102010041680 A DE102010041680 A DE 102010041680A DE 102010041680 B4 DE102010041680 B4 DE 102010041680B4
Authority
DE
Germany
Prior art keywords
bit
error
error position
linear
determiner
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102010041680.0A
Other languages
English (en)
Other versions
DE102010041680A1 (de
DE102010041680B9 (de
Inventor
Michael Goessel
Michael Richter
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE102010041680.0A priority Critical patent/DE102010041680B9/de
Priority to CN201110292466.XA priority patent/CN102436851B/zh
Priority to US13/248,502 priority patent/US8631308B2/en
Publication of DE102010041680A1 publication Critical patent/DE102010041680A1/de
Publication of DE102010041680B4 publication Critical patent/DE102010041680B4/de
Application granted granted Critical
Publication of DE102010041680B9 publication Critical patent/DE102010041680B9/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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block 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/21Non-linear codes, e.g. m-bit data word to n-bit code word [mBnB] conversion with error detection or error correction
    • 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/6502Reduction of hardware complexity or efficient processing
    • 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
    • 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/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Nonlinear Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

Eine Vorrichtung zum Bestimmen einer Position eines 1-Bit-Fehlers umfasst einen Fehlerpositionsbestimmer des inneren Codes, einen Fehlersyndrom-Bestimmer des äußeren Codes, einen Ableitungsbestimmer und einen Gesamtfehlerpositionsbestimmer. Der Fehlerpositionsbestimmer des inneren Codes bestimmt basierend auf dem inneren Code zumindest eine mögliche Fehlerposition eines Bit-Fehlers in der codierten Bitsequenz. Der Fehlersyndrom-Bestimmer des äußeren Codes bestimmt einen Wert eines nichtlinearen Syndrombits des äußeren Codes basierend auf einer nichtlinearen Funktion von Bits der codierten Bitsequenz. Des Weiteren bestimmt der Ableitungsbestimmer für zumindest eine bestimmte, mögliche Fehlerposition des Bit-Fehlers einen Wert eines Ableitungsbits basierend auf einer Ableitung der nichtlinearen Funktion nach dem Bit der bestimmten, möglichen Fehlerposition in der codierten Bitsequenz. Ferner bestimmt der Gesamtfehlerpositionsbestimmer eine Fehlerposition des Bit-Fehlers basierend auf dem nichtlinearen Syndrombit und zumindest einem Ableitungsbits, wenn der Fehlerpositionsbestimmer des inneren Codes mehr als eine mögliche Fehlerposition des Bit-Fehlers bestimmt. Alternativ erkennt der Gesamtfehlerpositionsbestimmer den Bit-Fehler basierend auf dem nichtlinearen Syndrombit und einem Ableitungsbit einer bestimmten, möglichen Fehlerposition als 1-Bit-Fehler und erkennt dadurch die bestimmte, mögliche Fehlerposition als Fehlerposition des 1-Bit-Fehlers, wenn der Fehlerpositionsbestimmer des inneren Codes nur eine mögliche Fehlerposition des Bit-Fehlers in der codierten Bitsequenz bestimmt.

Description

  • Ausführungsbeispiele gemäß der Erfindung beziehen sich auf das Gebiet der Fehlerkorrektur und Fehlererkennung digitaler binärer Signale und insbesondere auf eine Vorrichtung und ein Verfahren zum Bestimmen einer Position eines 1-Bit-Fehlers in einer codierten Bitsequenz, einer Vorrichtung und einem Verfahren zum Korrigieren eines 1-Bit-Fehlers in einer codierten Bitsequenz und einem Decodierer und ein Verfahren zum Decodieren einer fehlerhaften, codierten Bitsequenz.
  • Aufgrund des hohen Integrationsgrades elektronischer Schaltungen und von Speichern nimmt die Häufigkeit von Fehlern zu. Dadurch ist es zunehmend erforderlich, fehlerhafte digitale Signale z. B. unter Verwendung von fehlerkorrigierenden Codes zu korrigieren und als fehlerhaft zu erkennen.
  • Das betrifft insbesondere auch Signale, die in Speicher eingeschrieben und wieder ausgelesen werden.
  • Insbesondere sind Codes vorteilhaft, die günstige Eigenschaften zur Fehlerkorrektur von 1-Bit Fehlern, zum Erkennen von 2-Bit und von 3-Bit Fehlern aufweisen. Durch sie werden die relativ häufigen 1-Bit-Fehler korrigiert, und die weniger häufig auftretenden 2-Bit- und 3-Bit- Fehler werden erkannt.
  • Ein bekannter 1-Bit-Fehler korrigierender Code, bei dem 2-Bit-Fehler und 3-Bit Fehler in den meisten Fällen sicher oder mit Wahrscheinlichkeit erkannt werden, ist der Vasil'ev-Code, der ein nichtlinearer Code mit einer nichtlinearen Prüfgleichung ist.
  • Er ist so strukturiert, dass er aus einem inneren Code besteht, dem mindestens ein zusätzliches Prüfbit zur Bildung des äußeren Codes hinzugefügt wird, wobei das zusätzliche Bit durch eine nichtlineare Funktion der Bits des inneren Codes bestimmt ist.
  • Der innere Code hat dabei beispielsweise die Eigenschaft, dass es Paare von 1-Bit Fehlern gibt, die durch den inneren Code nicht unterschieden werden können. Es kann dann bei der Decodierung des inneren Codes nicht erkannt werden, welcher der beiden möglichen 1-Bit-Fehler eines solchen Paares vorliegt. Zwischen zwei möglichen 1-Bit Fehlern eines derartigen Paares kann dann unter Verwendung des zusätzlichen Bits, das durch eine nichtlineare Funktion aus den Bits des inneren Codes bestimmt ist, unterschieden werden.
  • Es kann auch ein weiteres Prüfbit, die Parität über die n-Bits des inneren Codes und das zusätzliche nichtlineare Syndrombit, hinzugefügt werden.
  • Dieses Paritätsbit dient einer verbesserten Fehlererkennung und der Unterscheidung von verschiedenen Fehlertypen, wie das beispielsweise für einen Hamming-Code bekannt ist.
  • Die Fehlerkorrektur von 1-Bit Fehlern ist jedoch aufwendig.
  • So wird beispielsweise ein mehrstufiges Verfahren der Fehlerkorrektur verwendet, das zunächst eine probeweise Fehlerkorrektur einer Bitposition eines möglichen Fehlerpaares durchführt. Anschließend wird überprüft, ob die richtige Bitposition des Paares korrigiert wurde. Im Falle einer fehlerhaften Korrektur wird die erfolgte Korrektur rückgängig gemacht. Danach wird die alternative Bitposition korrigiert. Dieses Verfahren ist aufwendig.
  • In „Wang Z. u. a.; „Replacing Linear Hamming Codes by Robust Nonlinear Codes Results in a Reliability Improvement of Memories” ist die Ersetzung eines linearen Hamming-Codes durch robuste nichtlineare Codes beschrieben, wodurch eine Verbesserung der Zuverlässigkeit von Speichern erreicht werden kann. Lineare einzelfehlerkorrigierende, doppelfehlererkennende (SEC-DED)-Codes, die im Design von zuverlässigen Speichern verwendet werden, können keine Fehler mit langen Hamming-Gewichten detektieren und korrigieren. Deshalb wird die Verwendung von erweiterten Vasil'ev-Codes vorgeschlagen.
  • Ferner wird in „Wang Z. u. a.: Reliable MLC NAND flash memories based an nonlinear t-error-correcting codes” ein zuverlässiger Flash-Speicher basierend auf nichtlinearen t-fehlerkorrigierenden Codes beschrieben. Diese Codes sollen lineare BCH-Codes für die Fehlerdetektion und Korrektur ersetzen. Im Vergleich zu linearen BCH-Codes mit derselben Bitfehlerkorrekturfähigkeit t haben die vorgeschlagenen Codes weniger fehlerhaft korrigierte Fehler bei allen Codewörtern und nahezu keine nichtdetektierbaren Fehler.
  • Es ist die Aufgabe der vorliegenden Erfindung, ein verbessertes Konzept zum Bestimmen einer Position eines 1-Bit-Fehlers in einer codierten Bitsequenz, zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz und/oder zum Decodieren einer fehlerhaften, codierten Bitsequenz zu schaffen, das es ermöglicht, die Verarbeitungszeit und/oder den Hardwareaufwand zu reduzieren.
  • Diese Aufgabe wird durch eine Vorrichtung gemäß Anspruch 1, 24, 26, 27 oder 28, ein Verfahren gemäß Anspruch 33 oder ein Computerprogram gemäß Anspruch 34 gelöst.
  • Ein Ausführungsbeispiel gemäß der Erfindung schafft eine Vorrichtung zum Bestimmen einer Position eines 1-Bit-Fehlers in einer durch einen inneren Code und einem äußeren nichtlinearen Code codierten Bitsequenz, die einen Fehlerpositionsbestimmer des inneren Codes, einen Fehlersyndrom-Bestimmer des äußeren Codes, einen Ableitungsbestimmer und einen Gesamtfehlerpositionsbestimmer umfasst. Der Fehlerpositionsbestimmer des inneren Codes ist ausgelegt, um basierend auf dem inneren Code zumindest eine mögliche Fehlerposition eines Bit-Fehlers in der codierten Bitsequenz zu bestimmen. Der Fehlersyndrom-Bestimmer des äußeren Codes ist ausgelegt, um einen Wert eines nichtlinearen Syndrombits des äußeren Codes basierend auf einer nichtlinearen Funktion von Bits der codierten Bitsequenz zu bestimmen. Des Weiteren ist der Ableitungsbestimmer ausgelegt, um für zumindest eine bestimmte, mögliche Fehlerposition des Bit-Fehlers einen Wert eines Ableitungsbits basierend auf einer Ableitung der nichtlinearen Funktion nach dem Bit der bestimmten, möglichen Fehlerposition in der codierten Bitsequenz zu bestimmen. Ferner ist der Gesamtfehlerpositionsbestimmer ausgelegt, um eine Fehlerposition des Bit-Fehlers basierend auf dem nichtlinearen Syndrombit und zumindest einem Ableitungsbit zu bestimmen, wenn der Fehlerpositionsbestimmer des inneren Codes mehr als eine mögliche Fehlerposition des Bit-Fehlers bestimmt, oder der Gesamtfehlerpositionsbestimmer ist ausgelegt, um den Bit-Fehler basierend auf dem nichtlinearen Syndrombit und einem Ableitungsbit einer bestimmten, möglichen Fehlerposition als 1-Bit-Fehler zu erkennen und von einem Mehr-Bit-Fehler zu unterscheiden und dadurch die bestimmte, mögliche Fehlerposition als Fehlerposition des 1-Bit-Fehlers zu erkennen, wenn der Fehlerpositionsbestimmer des inneren Codes nur eine mögliche Fehlerposition des Bit-Fehlers in der codierten Bitsequenz bestimmt.
  • Ausführungsbeispiele gemäß der Erfindung basieren auf dem Kerngedanken, die genaue Fehlerposition eines 1-Bit-Fehlers und/oder die Unterscheidung von 1-Bit-Fehlern von Mehr-Bit-Fehlern basierend auf einer Ableitung der nichtlinearen Funktion nach dem jeweiligen Bit der codierten Bitsequenz zu bestimmen. Dafür kann die nichtlineare Funktion beispielsweise gewählt werden, sodass die Ableitung der nichtlinearen Funktion unterschiedliche Werte bei der Ableitung nach Bits von unterschiedlichen bestimmten, möglichen Fehlerpositionen desselben Bit-Fehlers ergibt. Dadurch ist z. B. kein iteratives Verfahren notwendig, um die genaue Fehlerposition eines 1-Bit-Fehlers zu bestimmen, wenn aufgrund der Auswertung der linearen Prüfbits mehrere Fehlerpositionen in der codierten Bitsequenz möglich sind. Dadurch kann die Verarbeitungszeit und/oder der Hardwareaufwand zur Bestimmung der Position eines 1-Bit-Fehlers deutlich reduziert werden.
  • Bei einigen Ausführungsbeispielen gemäß der Erfindung bestimmt der Fehlerpositionsbestimmer des inneren Codes genau eine mögliche Fehlerposition. In diesem Fall kann der Gesamtfehlerpositionsbestimmer basierend auf dem nichtlinearen Syndrombit und einem Ableitungsbit der bestimmten, möglichen Fehlerposition zwischen einem 1-Bit-Fehler und einem Mehr-Bit-Fehler unterscheiden. Handelt es sich um einen 1-Bit-Fehler, kann der Gesamtfehlerpositionsbestimmer die bestimmte, mögliche Fehlerposition als Fehlerposition des 1-Bit-Fehlers erkennen.
  • In einigen Ausführungsbeispielen gemäß der Erfindung bestimmt der Fehlerpositionsbestimmer des inneren Codes zwei mögliche Fehlerpositionen. In diesem Fall kann der Gesamtfehlerpositionsbestimmer das nichtlineare Syndrombit und zumindest ein Ableitungsbit nutzen, um die Fehlerposition eines erkannten 1-Bit-Fehlers zu bestimmen.
  • Bei einigen Ausführungsbeispielen gemäß der Erfindung ist die codierte Bitsequenz basierend auf einem Vasil'ev-Code codiert.
  • Einige Ausführungsbeispiele beziehen sich auf eine Vorrichtung zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz mit einer Vorrichtung zum Bestimmen einer Position eines 1-Bit-Fehlers und einer 1-Bit-Fehler-Korrektureinheit, die einen Wert des Bits auf der bestimmten oder erkannten Fehlerposition der codierten Bitsequenz ändert, um den 1-Bit-Fehler zu korrigieren.
  • Einige weitere Ausführungsbeispiele gemäß der Erfindung beziehen sich auf einen Decodierer zum Decodieren einer fehlerhaften, codierten Bitsequenz mit einer Vorrichtung zur Korrektur eines 1-Bit-Fehlers und einer Decodiereinheit, die die korrigierte, codierte Bitsequenz decodiert, um eine decodierte Bitsequenz zu erhalten.
  • Ausführungsbeispiele gemäß der Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Figuren näher erläutert.
  • Es zeigen:
  • 1a, 1b ein Blockdiagramm einer Vorrichtung zum Bestimmen einer Position eines 1-Bit-Fehlers in einer codierten Bitsequenz;
  • 2 ein Blockdiagramm einer Vorrichtung zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz;
  • 3 ein Schaltungsdiagramm eines Fehlerpositionsbestimmers des inneren Codes;
  • 4 ein Schaltungsdiagramm eines Ableitungsbestimmers;
  • 5 ein Schaltungsdiagramm eines Gesamtfehlerpositionsbestimmers;
  • 6 ein Blockdiagramm einer Vorrichtung zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz;
  • 7 ein Blockdiagramm eines Decodierers zum Decodieren einer fehlerhaften, codierten Bitsequenz;
  • 8 ein Diagramm eines Vergleichs der Anteile an erkennbaren Fehlern von verschiedenen Codierverfahren;
  • 9 ein Diagramm eines Vergleichs der Anteile erkennbarer 3-Bit-Fehler von verschiedenen Codierverfahren;
  • 10 ein Schaltungsdiagramm einer Syndromdecodierung für die Korrektur des i-ten und (1 + n)-ten Bits unter Verwendung eines bekannten Konzepts für lineare Codes; und
  • 11 ein Flussdiagramm eines Verfahrens zum Bestimmen einer Position eines 1-Bit-Fehlers in einer codierten Bitsequenz.
  • Im Folgenden werden teilweise für Objekte und Funktionseinheiten, die gleiche oder ähnliche funktionelle Eigenschaften aufweisen, gleiche Bezugszeichen verwendet. Des Weiteren können optionale Merkmale der verschiedenen Ausführungsbeispiele miteinander kombinierbar oder zueinander austauschbar sein.
  • Wird im Folgenden z. B. von einem Bit (z. B. Syndrombit, Ableitungsbit, ...), der Verwendung eines Bits zur Berechnung oder von einem Bit als Ergebnis einer Berechnung gesprochen, so kann neben dem Bit selbst auch der Wert des Bits (logisch 0 oder logisch 1) oder ein binäres Signal, das den Wert des Bits repräsentiert, gemeint sein.
  • 1a zeigt ein Blockdiagramm einer Vorrichtung 100 zum Bestimmen einer Position eines 1-Bit-Fehlers in einer durch einen inneren Code und einem äußeren nichtlinearen Code codierten Bitsequenz entsprechend eines Ausführungsbeispiels gemäß der Erfindung. Die Vorrichtung 100 umfasst einen Fehlerpositionsbestimmer des inneren Codes 110, einen Fehlersyndrom-Bestimmer des äußeren Codes 120, einen Ableitungsbestimmer 130 und einen Gesamtfehlerpositionsbestimmer 140. Der Fehlerpositionsbestimmer des inneren Codes 110, der Fehlersyndrom-Bestimmer des äußeren Codes 120 und der Ableitungsbestimmer 130 sind mit dem Gesamtfehlerpositionsbestimmer 140 verbunden. Der Fehlerpositionsbestimmer des inneren Codes 110 bestimmt basierend auf dem inneren Code zumindest eine mögliche Fehlerposition 112 eines Bit-Fehlers in der codierten Bitsequenz 102. Der Fehlersyndrom-Bestimmer des äußeren Codes 120 bestimmt einen Wert eines nichtlinearen Syndrombits 122 des äußeren Codes basierend auf einer nichtlinearen Funktion von Bits der codierten Bitsequenz 102. Des Weiteren bestimmt der Ableitungsbestimmer 130 für zumindest eine bestimmte, mögliche Fehlerposition 112 des Bit-Fehlers einen Wert eines Ableitungsbits 132 basierend auf einer Ableitung der nichtlinearen Funktion nach dem Bit der bestimmten, möglichen Fehlerposition 112 in der codierten Bitsequenz 102. Ferner bestimmt der Gesamtfehlerpositionsbestimmer 140 eine Fehlerposition 142 des Bit-Fehlers basierend auf dem nichtlinearen Syndrombit 122 und zumindest einem Ableitungsbit 132, wenn der Fehlerpositionsbestimmer des inneren Codes 110 mehr als eine mögliche Fehlerposition 112 des Bit-Fehlers in der Bitsequenz 112 bestimmt. Alternativ erkennt der Gesamtfehlerpositionsbestimmer 140 den Bit-Fehler basierend auf dem nichtlinearen Syndrombit 122 und einem Ableitungsbit 132 einer bestimmten, möglichen Fehlerposition 112 als 1-Bit-Fehler und erkennt dadurch die bestimmte, mögliche Fehlerposition 112 als Fehlerposition 142 des 1-Bit-Fehlers, wenn der Fehlerpositionsbestimmer des inneren Codes 110 nur eine mögliche Fehlerposition 112 des Bit-Fehlers in der codierten Bitsequenz 102 bestimmt.
  • Die genaue Fehlerposition 142 eines 1-Bit-Fehlers und/oder die Unterscheidung von 1-Bit-Fehlern von Mehr-Bit-Fehlern kann unter Verwendung der Ableitung der nichtlinearen Funktion nach dem jeweiligen Bit der codierten Bitsequenz bestimmt werden. Dadurch kann beispielsweise ein iterativer Ansatz vermieden werden und somit die Verarbeitungszeit und/oder der Hardwareaufwand zur Bestimmung der Position eines 1-Bit-Fehlers deutlich reduziert werden. In diesem Zusammenhang bedeutet die Unterscheidung von 1-Bit-Fehlern von Mehr-Bit-Fehlern, dass zumindest manche Mehr-Bit-Fehler (z. B. gerade Mehr-Bit-Fehler) von einem 1-Bit-Fehler unterschieden werden kann. Es müssen jedoch nicht alle Mehr-Bit-Fehler von einem 1-Bit-Fehler unterschieden werden können. Ebenso müssen nicht alle erkennbaren Mehr-Bit-Fehler für jede Bitsequenz von einem 1-Bit-Fehler unterscheidbar sein.
  • Die codierte Bitsequenz 102 kann beispielsweise von einer Speichereinheit oder einem Sender zur Verfügung gestellt werden. Die codierte Bitsequenz kann beispielsweise durch den inneren Code eines Vasil'ev Codes codiert sein. Der innere Code kann z. B. ein linearer Hamming-Code ein Hsiao-Code, ein Gerade-Ungerade-Code (Even-Odd-Code) oder wiederum ein nichtlinearer Vasil'ev-Code sein. Zusätzlich kann die codierte Bitsequenz ein nichtlineares Vergleichsprüfbit enthalten oder ein nichtlineares Vergleichsprüfbit kann zusätzlich zur codierten Bitsequenz 102 der Vorrichtung 100 bereitgestellt werden. Das nichtlineare Vergleichsprüfbit ist dabei beispielsweise vor der Speicherung oder Übertragung der codierten Bitsequenz berechnet worden. Die Bitsequenz kann auch als Binärwort bezeichnet werden. Verschiedene codierte Bitsequenzen (die z. B. nacheinander aus einer Speichereinheit ausgelesen werden) können beispielsweise immer die gleiche Anzahl von Bits aufweisen. In anderen Worten, die Wortlänge der von der Vorrichtung 100 verarbeiteten Binärwörter kann immer gleich sein.
  • Die nichtlineare Funktion ist beispielsweise eine Boolsche Funktion. Boolesche Funktionen können in lineare und nichtlineare Funktionen eingeteilt werden, wie es z. B. in „S. W. Jablonski, G. P. Gawrilow, W. B. Kudrjawzew, „Boolesche Funktionen und Postsche Klassen”, Akademie-Verlag, Berlin, 1969, S. 18” beschrieben ist. Eine Boolesche Funktion ist linear, wenn sie sich als f(x1, x2, ..., xn) = c0 ⊗ c1x1 ⊗ c2x2 ⊗ ... ⊗ cnxn darstellen lässt, wobei ⊗ die Antivalenz bezeichnet und c1 ∊ {0, 1} sind. Alle anderen Funktionen sind nichtlinear.
  • Allgemeine Beispiele für nichtlineare Funktionen sind: f(x1, x2, ..., x5) = x1x2 ⊗ x3x4 ⊗ x5 f(x1, x2, ..., x5) = x1x3 ⊗ x4x5 ⊗ x1x2x4
  • Die nichtlineare Funktion kann in weiten Bereichen variieren. Beispielsweise kann eine nichtlineare Funktion gewählt werden, in der jedes Bit der codierten Bitsequenz 102, das der Fehlerpositionsbestimmer des inneren Codes 110 als mögliche Fehlerposition 112 zusammen mit zumindest einer weiteren möglichen Fehlerposition 112 eines Bit-Fehlers bestimmt, zumindest einmal in einem nichtlinearen Term der nichtlinearen Funktion enthalten ist. In anderen Worten, mindestens ein Paar von Bits, die bei einem Bit-Fehler basierend auf den Prüfbits des inneren Codes nicht voneinander unterschieden werden können, sind in einem nichtlinearen Term der nichtlinearen Funktion enthalten.
  • Zusätzlich oder alternativ kann die nichtlineare Funktion beispielsweise so gewählt werden, dass eine Ableitung der nichtlinearen Funktion nach dem jeweiligen Bit von zwei bestimmten, möglichen Fehlerpositionen 112 für die beiden bestimmten, möglichen Fehlerpositionen 112 eine unterschiedliche abgeleitete Funktion ergibt. In diesem Zusammenhang kann der Ableitungsbestimmer 130 den Wert eines Ableitungsbits basierend auf der zugehörigen abgeleiteten Funktion berechnen. Dann kann basierend auf den unterschiedlichen Werten der Ableitungsbits 132 vom Gesamtfehlerpositionsbestimmer 140 entschieden werden, welche bestimmte, mögliche Fehlerposition 112 die tatsächliche Fehlerposition 142 eines 1-Bit-Fehlers ist.
  • Durch die Wahl der nichtlinearen Funktion kann die Wahrscheinlichkeit 1-Bit-Fehler von Mehr-Bit-Fehlern zu unterscheiden erhöht werden. Speziell bei Vorliegen eines permanenten Fehlers eines Bits (z. B. stuck at 0 oder stuck at 1, Festhängen auf 0 oder Festhängen auf 1) kann die Wahrscheinlichkeit den Fehler über mehrere Taktzyklen der Vorrichtung (nach mehreren bearbeiteten codierten Bitsequenzen) deutlich erhöht werden.
  • Wie bereits erwähnt kann der innere Code unterschiedlich gewählt werden. Beispielsweise kann ein linearer innerer Code verwendet werden. Auch wenn sich im folgenden einige Ausführungsbeispiele auf die Verwendung eines linearen inneren Codes beziehen, sind die beschriebenen Aspekte auch allgemein für eine Vielzahl von unterschiedlichen inneren Codes anwendbar. 1b zeigt ein Blockdiagramm einer Vorrichtung 150 zum Bestimmen einer Position eines 1-Bit-Fehlers in einer codierten Bitsequenz 102 entsprechend eines Ausführungsbeispiels gemäß der Erfindung. Der Aufbau Vorrichtung 150 ist ähnlich dem Aufbau der in 1a gezeigten Vorrichtung, jedoch umfasst der Fehlerpositionsbestimmer des inneren Codes 110 einen Lineare-Syndrombits-Bestimmer 114 und einen Bit-Fehler-Erkenner 118. Der Lineare-Syndrombits-Bestimmer 114 ist mit dem Bit-Fehler-Erkenner 118 verbunden und der Bit-Fehler-Erkenner 118 ist mit dem Gesamtfehlerpositionsbestimmer 140 verbunden.
  • In diesem Beispiel bestimmt der Lineare-Syndrombits-Bestimmer 114 Werte einer Mehrzahl von linearen Syndrombits 116 basierend auf einer Mehrzahl von linearen Funktionen von Bits der codierten Bitsequenz 102. Des Weiteren bestimmt der Bit-Fehler-Erkenner 118 basierend auf der Mehrzahl von linearen Syndrombits 116 zumindest eine mögliche Fehlerposition 112 eines Bit-Fehlers in der codierten Bitsequenz 102.
  • Durch die Berücksichtigung der Ableitung der nichtlinearen Funktion kann eine Unterscheidung zwischen einem 1-Bit-Fehler und einem Mehr-Fehler und/oder einer Identifikation der Fehlerposition eines 1-Bit-Fehlers erfolgen, wenn aufgrund der linearen Prüfbits mehrere mögliche Fehlerpositionen erkannt werden oder unklar ist, ob es sich bei dem Bit-Fehler um einen 1-Bit-Fehler handelt. In anderen Worten, wenn beispielsweise mit Hilfe der linearen Prüfbits und des nichtlinearen Syndrombits mehr als eine mögliche Fehlerposition erkannt wird, kann dieses mehrdeutige Ergebnis mit Hilfe der Ableitung der nichtlinearen Funktion nach dem jeweiligen Bit der bestimmten, möglichen Fehlerposition aufgelöst werden. Durch die Verwendung der Ableitung der nichtlinearen Funktion kann beispielsweise ein iteratives Verfahren zur Identifikation der Fehlerposition des Bit-Fehlers vermieden werden, wodurch die Rechenzeit und/oder der Rechenaufwand deutlich reduziert werden kann.
  • Die Mehrzahl von linearen Funktionen und die nichtlineare Funktion können für die Codierung der codierten Bitsequenz 102 vorgegeben werden (z. B. die Mehrzahl von linearen Funktionen durch den inneren Code eines Vasil'ev Codes und die nichtlineare Funktion zur Berechnung des nichtlinearen Syndrombits des Vasil'ev Codes), so dass der Fehlerpositionsbestimmer des inneren Codes 110 basierend auf der Mehrzahl von linearen Prüfbits 102 zumindest eine mögliche Fehlerposition eines Bit-Fehlers in der codierten Bitsequenz 102 bestimmen kann und der Gesamtfehlerpositionsbestimmer 140 eine Fehlerposition des 1-Bit-Fehlers basierend auf Ableitungsbits bestimmen kann oder den Bit-Fehler basierend auf einem Ableitungsbit als 1-Bit-Fehler erkennen kann. Die lineare Funktion und die nichtlineare Funktion können jeweils von unterschiedlichen Bits der codierten Bitsequenz 102 abhängen. Eine lineare Funktion und/oder die nichtlineare Funktion kann von mehreren der Bits der codierten Funktion oder auch von allen Bits der nichtlinearen Funktion abhängen.
  • Der Fehlerpositionsbestimmer des inneren Codes 110 bestimmt beispielsweise mögliche Fehlerpositionen 112 eines Bit-Fehlers basierend auf der Mehrzahl von linearen Syndrombits 116. Dabei kann beispielsweise durch eine gezielte Auswahl der linearen Funktionen (z. B. basierend auf einen linearen Hamming-Code) ermöglicht werden, dass der Fehlerpositionsbestimmer des inneren Codes alle möglichen Fehlerpositionen eines Bit-Fehlers erkennen kann. In anderen Worten, wenn der Fehlerpositionsbestimmer des inneren Codes 110 erkennt, dass ein Bit-Fehler vorliegt, kann der Fehlerpositionsbestimmer des inneren Codes 110 basierend auf der Mehrzahl von linearen Syndrombits 116 alle möglichen Fehlerpositionen 112 eines Bit-Fehlers bestimmen. Die Anzahl von möglichen Fehlerpositionen 112 eines Bit-Fehlers kann dabei u. a. abhängig von der Anzahl der linearen Prüfbits, den zugrunde liegenden linearen Funktionen und der Art der Codierung der codierten Bitsequenz 102 sein.
  • Handelt es sich bei dem Bit-Fehler um einen Mehr-Bit-Fehler kann es vorkommen, dass eine mögliche Fehlerposition fälschlicherweise als die Fehlerposition 142 des Bit-Fehlers erkannt wird. Daher ist neben der Erkennung der Position des Bit-Fehlers auch eine Unterscheidung zwischen 1-Bit-Fehlern und Mehr-Bit-Fehlern wichtig. Bestimmt der Fehlerpositionsbestimmer des inneren Codes 110 beispielsweise nur genau eine mögliche Fehlerposition 112, dann kann der Gesamtfehlerpositionsbestimmer 140 untersuchen, ob es sich bei dem Bit-Fehler um einen 1-Bit-Fehler oder um einen Mehr-Bit-Fehler handelt. Erkennt der Gesamtfehlerpositionsbestimmer 140 den Bit-Fehler (basierend auf dem nichtlinearen Syndrombit 122 und einem Ableitungsbit 132 der bestimmten, möglichen Fehlerposition) als 1-Bit-Fehler, so kann automatisch auch die bestimmte, mögliche Fehlerposition 112 als Fehlerposition 142 des 1-Bit-Fehlers erkannt werden, da keine weiteren möglichen Fehlerpositionen 112 zur Auswahl stehen.
  • Alternativ erkennt der Fehlerpositionsbestimmer des inneren Codes 110 zwei mögliche Fehlerpositionen 112 eines Bit-Fehlers. In diesem Fall kann der Gesamtfehlerpositionsbestimmer 140 den Bit-Fehler basierend auf dem nichtlinearen Syndrombit 122 als 1-Bit-Fehler erkennen und die Fehlerposition des 1-Bit-Fehlers basierend auf dem nichtlinearen Syndrombit und den zwei Ableitungsbits der bestimmten, möglichen Fehlerpositionen 112 bestimmen.
  • Um mehr als zwei mögliche Fehlerpositionen unterscheiden zu können, kann mehr als ein nichtlineares Syndrombit basierend auf unterschiedlichen nichtlinearen Funktionen genutzt werden. Allgemein kann der Fehlersyndrom-Bestimmer des äußeren Codes 120 beispielsweise eine vordefinierte Anzahl p von nichtlinearen Syndrombits basierend auf einer entsprechenden Anzahl von nichtlinearen Funktionen einen Wert bestimmen. In diesem Beispiel kann der Fehlerpositionsbestimmer des inneren Codes 110 bis zu 2 hoch der vordefinierten Anzahl p von nichtlinearen Syndrombits (2p) verschiedene mögliche Fehlerpositionen bestimmen, von denen der Gesamtfehlerpositionsbestimmer 140 die Fehlerposition des 1-Bit-Fehlers basierend auf der vordefinierten Anzahl von nichtlinearen Syndrombits und den 2 hoch der vordefinierten Anzahl p von nichtlinearen Syndrombits 122 Ableitungsbits 132 bestimmen kann.
  • Wie bereits erwähnt, kann die codierte Bitsequenz 102 beispielsweise basierend auf einem Vasil'ev-Code codiert sein. Z. b. kann ein linearer Code (z. B. linearer Hamming-Code) verdoppelt werden und ein nichtlineares Prüfbit hinzugefügt werden.
  • In manchen Ausführungsbeispielen kann die codierte Bitsequenz 102 beispielsweise eine Anzahl von Bits, die zumindest gleich 2 hoch einer Anzahl von linearen Syndrombits 116 der Mehrzahl von linearen Prüfbits ist, umfassen. In diesem Beispiel ist ein nichtlineares Vergleichsprüfbit nicht von der codierten Bitsequenz 102 umfasst. Alternativ kann die codierte Bitsequenz 102 beispielsweise eine Anzahl von Bits, die zumindest gleich 2 hoch einer Anzahl von linearen Syndrombits 116 der Mehrzahl von linearen Prüfbits plus 1 ist, umfassen, wenn die codierte Bitsequenz 102 ein nichtlineares Vergleichsprüfbit umfasst.
  • Es kann ausreichend sein, dass der Ableitungsbestimmer 130 nur Ableitungsbits 132 für Bits der codierten Bitsequenz 102 bestimmt, für die der Fehlerpositionsbestimmer des inneren Codes 110 basierend auf den linearen Syndrombits 116 für einen 1-Bit-Fehler mehr als eine mögliche Fehlerposition bestimmt. In anderen Worten, es kann ausreichend sein, dass der Ableitungsbestimmer 130 Ableitungsbits 132 für Bits bestimmt, die der Fehlerpositionsbestimmer des inneren Codes 110 basierend auf der Mehrzahl von linearen Prüfbits nicht eindeutig als Fehlerposition eines 1-Bit-Fehlers erkennen kann. Alternativ kann der Ableitungsbestimmer 130 für jedes Bit der codierten Bitsequenz 102 einen Wert eines Ableitungsbits 132 basierend auf einer Ableitung der nichtlinearen Funktion nach dem jeweiligen Bit der codierten Bitsequenz 102 berechnen. Dadurch kann eine Bestimmung der Fehlerposition 142 eines 1-Bit-Fehlers ermöglicht werden, die unabhängig davon ist, für welche Bits der Fehlerpositionsbestimmer des inneren Codes 110 eine eindeutige Fehlerposition eines 1-Bit-Fehlers erkennen kann und für welche Bits der codierten Bitsequenz 102 einen 1-Bit-Fehler nicht eindeutig zuordnen kann, also mehr als eine mögliche Fehlerposition 112 bestimmt.
  • Wie bereits erwähnt, handelt es sich bei der nichtlinearen Funktion beispielsweise um eine Boolesche nichtlineare Funktion. Dementsprechend kann der Ableitungsbestimmer 130 einen Wert eines Ableitungsbits 132 beispielsweise basierend auf einer Booleschen Ableitung der nichtlinearen Funktion berechnen.
  • Das nichtlineare Syndrombit 122 kann einem nichtlinearen Bit entsprechen, dass basierend auf der nichtlinearen Funktion und der codierten Bitsequenz bestimmt werden kann. Alternativ oder zusätzlich kann die codierte Bitsequenz 102 ein nichtlineares Vergleichsprüfbit enthalten oder ein nichtlineares Vergleichsprüfbit mit der codierten Bitsequenz 102 bereitgestellt werden. In diesem Fall, kann der Fehlersyndrom-Bestimmer des äußeren Codes 120 das bereitgestellte, nichtlineare Vergleichsprüfbit zur Fehlerpositionsbestimmung verwenden. Dazu kann der Fehlersyndrom-Bestimmer des äußeren Codes 120 beispielsweise einen Wert eines nichtlinearen Prüfbits basierend auf der nichtlinearen Funktion und der codierten Bitsequenz bestimmen und den bestimmten Wert des nichtlinearen Prüfbits mit einem Wert eines bereitgestellten, nichtlinearen Vergleichsprüfbits der codierten Bitsequenz 102 vergleichen (z. B. durch eine XOR-Verknüpfung), um den Wert des nichtlinearen Syndrombits 122 des äußeren Codes bestimmen.
  • Die Mehrzahl von linearen Funktionen kann beispielsweise durch eine Prüfmatrix oder H-Matrix dargestellt oder bereitgestellt werden. Jede Zeile (oder in transponierter Darstellung jede Spalte) der Prüfmatrix repräsentiert dann eine lineare Funktion der Mehrzahl von linearen Funktionen. Der Fehlerpositionsbestimmer des inneren Codes 110 kann in diesem Beispiel die Werte der Mehrzahl von linearen Syndrombits 116 basierend auf der Prüfmatrix berechnen. Ist beispielsweise die codierte Bitsequenz basierend auf einem Vasil'ev-Code codiert, kann z. B. der innere Code des Vasil'ev-Codes (z. B. ein linearer Hamming-Code) durch die Prüfmatrix repräsentiert werden.
  • Der Fehlerpositionsbestimmer des inneren Codes 110, der Fehlersyndrom-Bestimmer des äußeren Codes 120, der Ableitungsbestimmer 130 und/oder der Gesamtfehlerpositionsbestimmer 140 können beispielsweise unabhängige Hardwareeinheiten oder Teil eines Computer oder Mikrocontrollers sowie Computerprogramme oder Softwareprodukte zur Ausführung auf einem Computer oder Mikrocontroller sein.
  • Der Fehlerpositionsbestimmer des inneren Codes 110, der Fehlersyndrom-Bestimmer des äußeren Codes 120, der Ableitungsbestimmer 130 und der Gesamtfehlerpositionsbestimmer 140 können wenigstens teilweise gemeinsam realisiert sind. Dazu kann beispielsweise die beschriebene Funktionalität des Fehlerpositionsbestimmer des inneren Codes 110, des Fehlersyndrom-Bestimmer des äußeren Codes 120, des Ableitungsbestimmer (130) und/oder des Gesamtfehlerpositionsbestimmer (140) zumindest teilweise durch ein Synthesewerkzeug zu einer kombinierten Hardware- oder Softwareeinheit zusammengefasst werden.
  • Einige Ausführungsbeispiele gemäß der Erfindung beziehen sich auf eine Hardwareimplementierung des beschriebenen Konzepts. Beispielsweise kann der Fehlerpositionsbestimmer des inneren Codes 110 eine Mehrzahl von UND-Logikgattern aufweisen. Dabei kann der Fehlerpositionsbestimmer des inneren Codes die zumindest eine mögliche Fehlerposition 112 basierend auf der Mehrzahl von UND-Logikgattern berechnen, wobei jedes UND-Logikgatter der Mehrzahl von UND-Logikgattern je einen Eingang für jedes lineares Prüfbit 112 der Mehrzahl von linearen Prüfbits aufweist.
  • Unabhängig davon oder zusätzlich kann der Ableitungsbestimmer 130 die Werte von Ableitungsbits 132 von zwei Bits der codierten Bitsequenz 102, die von dem Fehlerpositionsbestimmer des inneren Codes 110 als mögliche Fehlerpositionen 112 desselben Bit-Fehlers bestimmt wurden, basierend auf einer logischen XOR-Verknüpfung der beiden Bits der codierten Bitsequenz 102 berechnen. Der Wert des Ableitungsbits eines der beiden Bits entspricht dabei einem Ergebnis der logischen XOR-Verknüpfung und der Wert des Ableitungsbits des anderen der beiden Bits einem negierten Ergebnis der logischen XOR-Verknüpfung.
  • Des Weiteren kann unabhängig davon oder in Kombination der Fehlerpositionsbestimmer des inneren Codes 110 einen Wert eines Paritätsbits basierend auf den Bits der codierten Bitsequenz 102 berechnen und basierend auf dem Paritätsbit einen 1-Bit-Fehler von einemgeraden Mehr-Bit-Fehler unterscheiden. In anderen Worten, das Paritätsbit kann zusätzlich zum nichtlinearen Syndrombit und/oder einem Ableitungsbit herangezogen werden, um ein 1-Bit-Fehler von Mehr-Bit-Fehlern mit höherer Wahrscheinlichkeit unterscheiden zu können.
  • Wiederum unabhängig davon oder zusätzlich dazu kann der Gesamtfehlerpositionsbestimmer 140 für jedes Bit der codierten Bitsequenz 102 ein Fehlersignal ausgeben. Das Fehlersignal eines Bits der codierten Bitsequenz 102 gibt dabei an, ob bei dem Bit der codierten Bitsequenz 102 ein 1-Bit-Fehler vorliegt. Das Fehlersignal kann danach beispielsweise dazu verwendet werden, um zu entscheiden, ob ein Bit der codierten Bitsequenz 102 korrigiert werden soll.
  • Zusätzlich kann der Fehlerpositionsbestimmer des inneren Codes 110 die zumindest eine mögliche Fehlerposition 112 in Form einer Mehrzahl von Werten von codierten Ausgangsbits bereitstellen. Der Gesamtfehlerpositionsbestimmer 140 kann dann ein Fehlersignal eines Bits der codierten Bitsequenz 102 basierend auf einer logischen XOR-Verknüpfung des Ableitungsbits 132 des Bits der codierten Bitsequenz 102 mit einer Differenz des nichtlinearen Syndrombits 122 und eines bereitgestellten nichtlinearen Vergleichsprüfbits der codierten Bitsequenz 102 und einer logischen UND-Verknüpfung des Ergebnisses der logischen XOR-Verknüpfung und zumindest eines der codierten Ausgangsbits des Fehlerpositionsbestimmer des inneren Codes 110 berechnen.
  • Allgemein kann eine logische UND-Verknüpfung durch ein UND-Logikgatter und eine logische XOR-Verknüpfung durch ein XOR-Logikgatter realisiert werden. Ein negiertes Bit kann durch einen Negator oder Inverter erhalten werden.
  • Einige Ausführungsbeispiele beziehen sich auf eine Vorrichtung zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz. 6 zeigt ein Blockdiagramm einer solchen Vorrichtung 600 zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz 102 entsprechend eines Ausführungsbeispiels gemäß der Erfindung. Die Vorrichtung 600 ist ähnlich der in 1a gezeigten Vorrichtung, umfasst jedoch zusätzlich eine 1-Bit-Fehler-Korrektureinheit 610. Dabei ist der Gesamtfehlerpositionsbestimmer 140 mit der 1-Bit-Fehler-Korrektureinheit 610 verbunden. Die 1-Bit-Fehler-Korrektureinheit 610 ändert einen Wert des Bits auf der bestimmten oder erkannten Fehlerposition 142 der codierten Bitsequenz 102, um den 1-Bit-Fehler zu korrigieren und eine korrigierte, codierte Bitsequenz 612 erhalten. Der Fehlerpositionsbestimmer des inneren Codes 110, der Fehlersyndrom-Bestimmer des äußeren Codes 120, der Fehlerpositionsbestimmer des inneren Codes 110, der Ableitungsbestimmer 130 und der Gesamtfehlerpositionsbestimmer 140 können entsprechend dem zuvor beschriebenen Konzept, auch inklusive einer oder mehrerer beschriebener optionaler Ausführungsformen oder Aspekte implementiert werden.
  • In einer möglichen Implementierung kann die 1-Bit-Fehler-Korrektureinheit 610 den 1-Bit-Fehler basierend auf einer logischen XOR-Verknüpfung des Fehlersignals (vom Gesamtfehlerpositionsbestimmer 140 bereitgestellt, wie zuvor beschrieben) jedes Bit der codierten Bitsequenz 102 mit dem jeweiligen Bit der codierten Bitsequenz 102 korrigieren.
  • Im Folgenden ist ein konkretes Beispiel für eine Realisierung einer Vorrichtung zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz mit einer möglichen Hardwareimplementierung beschrieben. Die beschriebenen Details sind jedoch auch unabhängig voneinander sowohl für eine Vorrichtung zum Bestimmen einer Position eines 1-Bit-Fehlers in einer codierten Bitsequenz als auch für eine Vorrichtung zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz, wie sie zuvor allgemein, vor allem im Zusammenhang mit 1a, 1b und 6 beschrieben wurden, anwendbar.
  • Ein Aspekt des vorgeschlagenen Konzepts ist es, den Aufwand für die 1-Bit Fehlerkorrektur für nichtlineare Codes mit mindestens einer nichtlinearen Prüfgleichung zu vermindern.
  • Durch das beschriebene Konzept ist es beispielsweise möglich, ein mehrstufiges Verfahren der Fehlerkorrektur zu vermeiden und auch die 1-Bit-Fehler, die durch den inneren Code nicht unterschieden werden können, in einem Schritt zu korrigieren.
  • Als konkretes Beispiel wird ein inneren Code C der Länge n = 11 (Anzahl der Bits der codierten Bitsequenz) betrachtet, der ein linearer Code ist. Die 11 Bits des Codes (der codierten Bitsequenz) sind mit u1, ..., u4, ..., w1, ..., w7 bezeichnet.
  • Dieser innere Code wird in diesem Beispiel durch die H-Matrix H = (h1, ..., h11) mit
    Figure DE102010041680B4_0002
    charakterisiert. In der vierten Zeile dieser Matrix sind die Spaltennummern 1, ..., 11 hinzugefügt und in der fünften Zeile die entsprechenden Bezeichnungen der zugehörigen Variablen. Die vierte und fünfte Zeile dienen in diesem Beispiel nur der besseren Veranschaulichung, sind jedoch eigentlich nicht Teil der H-Matrix, da sie keine lineare Funktion zur Bestimmung eines linearen Prüfbits repräsentieren.
  • Da der innere Code ein linearer Code ist, ist ein Codewort v = v1, ..., v11 = u1, u2, u3, u4, w1, w2, w3, w4, w5, w6, w7 genau dann Codewort des inneren Codes, wenn s = H·νT = 0 (2) oder wenn s1 = u1 + u2 + w1 + w2 + w4 + w5 = 0 (3) S2 = u1 + u3 + w1 + w3 + w4 + w6 = 0 (4) s3 = u2 + u4 + w2 + w3 + w4 + w7 = 0 (5) ist. Dabei ist vT der transponierte Spaltenvektor des Zeilenvektors v, und s = s1, s2, s3 das Fehlersyndrom des betrachteten linearen inneren Codes C. Dabei sind s1, s2, s3 lineare Prüfbits und die Gleichung 3–4 stellen eine Mehrzahl von linearen Funktionen von Bits der codierten Bitsequenz zur Berechnung der linearen Prüfbits dar.
  • Liegt nun ein 1-Bit-Fehler im i-ten Bit vor, der durch die Position [i] oder einem Fehlervektor e[i] mit
    Figure DE102010041680B4_0003
    beschrieben werden kann, dann ist diesem 1-Bit-Fehler das Fehlersyndrom s[i] = H·e[i]T = hi (6) zugeordnet, das gleich der i-ten Spalte h1 der Matrix H ist.
  • Da die erste und die fünfte Spalte, die zweite und die sechste Spalte, die dritte und die zehnte Spalte und die vierte und die elfte Spalte der H-Matrix H von Gleichung (1) jeweils gleich sind, kann man anhand des inneren Codes nicht unterscheiden, ob ein 1-Bit-Fehler im ersten oder fünften Bit, im zweiten oder sechsten Bit, im dritten oder zehnten Bit, im vierten oder elften Bit aufgetreten ist, während der innere Code es erlaubt, einen 1-Bit-Fehler im siebten, achten oder neunten Bit eindeutig zu identifizieren und zu korrigieren.
  • Die Möglichkeiten, die sich bei 1-Bit-Fehlern für die Korrektur durch den inneren Code ergeben, können z. B. durch eine Decodierfunktion D beschrieben werden, deren Ausgabewert durch die Bits des inneren Codes bestimmt ist.
  • Liegt kein Fehler vor, dann ist der Ausgabewert der Decodierfunktion D gleich einer Codierung Cod(0) des Wertes 0. Liegt ein 1-Bit-Fehler[i] vor, der aufgrund des inneren Codes nicht von einem anderen 1-Bit-Fehler[ji] unterschieden werden kann, dann ist der Ausgabewert der Decodierfunktion gleich einer Codierung des Paares der möglichen 1-Bit-Fehler Cod(i, ji). Liegt ein 1-Bit-Fehler [r] vor, der von allen anderen 1-Bit-Fehlern aufgrund des inneren Codes unterschieden werden kann, dann ist der Ausgabewert der Decodierfunktion gleich. Cod(r).
  • Die Decodierfunktion für den inneren Code, der durch die H-Matrix nach Gleichung (1) beschrieben ist, ist z. B. D(u1, ..., u4, w1, ..., w7) = D*(u1 + u2 + w1 + w2 + w4 + w5, u1 + u3 + w1 + w3 + w4 + w6, u2 + u4 + w2 + w3 + w4 + w7) mit D*(0,0,0) = Cod(0), D*(1,0,0) = Cod(9), D*(0,1,0) = Cod(3, 10), D*(0,0,1) = Cod(4, 11), D*(1,1,0) = Cod(1, 5), D*(1,0,1) = Cod(2, 6), D*(0,1,1) = Cod(7), D*(1,1,1) = Cod(8).
  • Für alle Fehler in den Bits u1, u2, u3, u4, d. h. konkret in den Fehlerpositionen 1, 2, 3, 4 gibt es genau einen Fehler in den Bits w1, w2, w6, w7, d. h. in den Fehlerpositionen 4 + 1 = 5, 4 + 2 = 6, 4 + 6 = 10, 4 + 7 = 11, die durch Auswerten des inneren Codes nicht unterschieden werden können. Die Ausgabewerte der Decodierfunktion sind entsprechend Cod(1, 5), Cod(2, 6), Cod(3, 10), Cod(4, 11). Ohne Beschränkung der Allgemeinheit werden die Bits u1, ..., uk mit k = 4 linksbündig angeordnet. Die Bits u1, u2, ..., u4 mit k = 4 fassen wir zur Menge U = {u1, u2, u3, u4} zusammen. Allgemein ist die Menge U ∪ TMW die Menge der Bits, für die ein 1-Bit-Fehler in diesen Bits von einem anderen 1-Bit-Fehler durch den inneren Code nicht unterschieden werden kann. Die Bits w1, w2, w6, w7, deren 1-Bit-Fehler nicht von den 1-Bit-Fehlern in den Bits u1 ∈ U unterschieden werden können, bilden eine Teilmenge TMw aus k = 4 Elementen der Menge W = {w1, ..., wt}. In dem betrachteten Beispiel sind TMw = {w1, w2, w6, w7} und W = {w1, w2, w3, w4, w5, w6, w7}.
  • Für ui ∈ U mit i= 1, 2, 3, 4 gibt es dann ein wji ∈ TMw, nämlich die Bits w1, w2, w6, w7, so dass gilt D(u -1, u2, u3, u4, w1, w2, w3, w4, w5, w6, w7) = D(u1, u2, u3, u4, w -1, w2, w3, w4, w5, w6, w7), D(u1, u -2, u3, u4, w1, w2, w3, w4, w5, w6, w7) = D(u1, u2, u3, u4, w1, w -2, w3, w4, w5, w6, w7), D(u1, u2, u3, u4, w1, w2, w3, w4, w5, w6, w7) = D(u1, u2, u3, u4, w1, w2, w3, w4, w5, w -6, w7), D(u1, u2, u3, u -4, w1, w2, w3, w4, w5, w6, w7) = D(u1, u2, u3, u4, w1, w2, w3, w4, w5, w6, w -7).
  • Anhand der von der Decodierfunktion D(u1, ..., u4, w1, ..., w7) bestimmten Werte kann in dem Ausführungsbeispiel nicht zwischen einem Fehler in ui und einem Fehler in wji, unterschieden werden, wobei bei einem Fehler ui in u -i bzw. wji in w -ji verfälscht wird.
  • Im Unterschied dazu wird ein Fehler in den Bits w3, w4 und w5 eindeutig an den Ausgabewerten Cod(7), Cod(8), Cod(9) der Decodierfunktion erkannt.
  • Es wird nun ein weiteres Bit ε = φ(u1, ..., u4, w1, ..., w7) verwendet, wobei als Funktion φ hier die Funktion φ(u1, ..., u4, w1, ..., w7) = u1 + u2 + u3 + u4 + λ(u1 + w1, u2 + w2, u3 + w6, u4 + w7, u3, w4, w5) gewählt ist. Dabei ist λ eine beliebige nichtlineare Funktion.
  • Unter Verwendung des Begriffs der Ableitung δf(x) / δx = f(x -) + f(x) einer Booleschen Funktion f(x) gilt dann
    Figure DE102010041680B4_0004
    und
    Figure DE102010041680B4_0005
    und damit
  • Figure DE102010041680B4_0006
  • Völlig analog überzeugt man sich, dass gilt
    Figure DE102010041680B4_0007
  • Dabei sind
    Figure DE102010041680B4_0008
    für i = 1, 2, 3, 4 und für j = 1, 2, 6, 7 die partiellen Ableitungen der Booleschen Funktion Φ, wie sie z. B. in „Zander, H., J., Logischer Entwurf binärer Systeme, Verlag Technik, Berlin 1989, 3. Auflage S. 40–41” beschrieben sind. Die Operation „+” steht hier für die Addition modulo 2. Aufgrund der Ausgabe der Decodierfunktion D und aufgrund der Änderung des zusätzlichen Bits ε (bereitgestelltes nichtlineares Vergleichsprüfbit) und der entsprechenden Ableitungen der nichtlinearen Funktion φ kann nun entschieden werden, welches Bit der Bits u1, ..., uk, w1, ..., wt mit hier k = 4 und t = 7 im Falle eines 1-Bit Fehlers fehlerhaft ist und korrigiert werden muss. Ein 1-Bit-Fehler im Bit ε kann eindeutig erkannt und korrigiert werden, da dann Δε = 1 ist und der Zuordner (der Bit-Fehler-Erkenner) den Wert Cod(0) ausgibt.
  • Ein Beispiel für eine erfindungsgemäße Schaltungsanordnung 200 zur Fehlerkorrektur von 1-Bit Fehlern zeigt 2. Die Schaltungsanordnung besteht aus den kombinatorischen Teilschaltungen S1 211 (Lineare-Syndrombits-Bestimmer und Fehlerpositionsbestimmer des inneren Codes), S2 212 (Nichtlineares-Prüfbit-Bestimmer des äußeren Codes), S3 213 (Differenzbilder), S4 214 (Ableitungsbestimmer) und S5 215 (Gesamtfehlerpositionsbestimmer). Der Nichtlineares-Prüfbit-Bestimmer des äußeren Codes und der Differenzbilder sind ein Beispiel für eine Implementierung des Fehlersyndrom-Bestimmers des äußeren Codes. Der Differenzbildner S3 213 kann auch, wie zuvor allgemein beschrieben, Teil des Gesamtfehlerpositionsbestimmers sein.
  • In 2 bilden die Werte u, w und ε die codierte Bitsequenz. Dabei bilden u und w die Werte des inneren Codes und ε ein nichtlineares Bit des äußeren Codes.
  • Die Werte u, w und ε können beispielsweise aus einem Speicher ausgelesen worden sein.
  • Die Werte u und w liegen gleichzeitig an den k + t binären Eingängen einer kombinatorischen ersten Teilschaltung S1 211 (Fehlerpositionsbestimmer des inneren Codes) zu Bestimmung möglicher Fehlerpositionen an. Die zweite kombinatorische Teilschaltung S2 212 und die dritte kombinatorische Teilschaltung S3 213 bilden den Fehlersyndrombestimmer des äußeren Codes. Die Teilschaltung S2 212 dient der Realisierung der nichtlinearen Funktion φ(u, w), wobei φ(u, w) das aus u und w abgeleitete nichtlineare Prüfbit des äußeren Codes repräsentiert. Die Teilschaltung S3 213 ist durch ein XOR-Gatter realisiert. Sie bildet die Differenz Δε des nichtlinearen, beispielsweise aus einem Speicher ausgelesenen Prüfbits ε und des aus den Bits u und w des inneren Codes abgeleiteten nichtlinearen Prüfbits φ(u, w). Diese Differenz bildet das nichtlineare Fehlersyndrom des äußeren Codes.
  • Die Werte u und w liegen außerdem an den Eingängen einer dritten kombinatorischen Teilschaltung zur Ableitungsbildung S4 214 (Ableitungsbestimmer) an. Die Teilschaltung S1 211 realisiert z. B. die Decodierfunktion D(u, w), so dass an ihrem Ausgang beim Vorliegen eines 1-Bit Fehlers in einem Bit ui ∈ U = {u1, ..., uk} oder in einem Bit wji ∊ TMw der Wert Cod(i, ji), d. h. eine Codierung der beiden möglichen Fehlerpositionen i und k + ji ausgegeben wird. Liegt ein 1-Bit-Fehler in wr ∊ {w1, ..., wt}\TMw vor, dann wird von der Schaltung S1 211 der Wert Cod(r), d. h. eine Codierung der Bitposition k + r ausgegeben. Falls kein Fehler erkannt wurde, wird von S1 der Wert Cod(0) ausgegeben. Die Teilschaltung S2 212 realisiert die Boolesche Funktion φ(u, w) aus den Werten u und w. Der 1-Bit breite Ausgang der Schaltung S2 212 ist in einen ersten Eingang der kombinatorischen Teilschaltung S3 213 geführt, an deren zweiten Eingang der aktuelle Wert des zusätzlichen nichtlinearen Bits ∊ (bereitgestelltes nichtlineares Vergleichsprüfbit) anliegt und die eine XOR-Verknüpfung ihrer beiden Eingänge an ihrem Ausgang realisiert. Die Schaltung S3 213 gibt an ihrem Ausgang den Wert Δε = ε + φ(u, w)
  • Aus, d. h. den Wert des Fehlersyndroms aus.
  • Die kombinatorische Teilschaltung zur Ableitungsbildung S4 14 realisiert an ihren k + T Ausgängen die Booleschen Ableitungen
    Figure DE102010041680B4_0009
  • Die Schaltung S5 (Gesamtfehlerpositionsbestimmer) zur Bildung der Korrekturwerte weist einen ersten, einen zweiten und einen dritten Eingang auf.
  • Die k + T binären Ausgänge der Schaltung S4 214 sind mit dem dritten k + T Bit breiten Eingang der Schaltung S5 215 zur Bildung der Korrekturwerte (Fehlersignal) Δu1, ..., Δuk, Δwi1, ..., ΔwiT der Bits u1, ..., uk, wi1, ..., wiT verbunden, die an den Ausgängen der Schaltung S5 215 ausgegeben werden.
  • Enthält die Menge des Bits {wi1, ..., wiT} die Bits wj1, ..., wjk, so kann zwischen allen 1-Bit-Fehlern in den Bits ui und wji für i = 1, ..., k unterschieden werden. Ist T = t, dann werden für alle Bits u1, ..., uk, w1, ..., wt des inneren Codes C Ableitungen (Ableitungsbits) bereitgestellt. Soll eine Teilmenge von Bits nicht korrigiert werden, so ist es nicht erforderlich, dass diese Teilmenge in {wi1, ..., wiT} enthalten ist.
  • Der zweite Eingang der Schaltung S5 215 ist mit dem Ausgang der Schaltung S3 213 verbunden, während in den ersten Eingang der Schaltung S5 215 der Ausgang der Schaltung S1 211 geführt ist.
  • Der den Wert Δui führende Ausgang des Schaltung S5 215 ist für i = 1, ..., k mit dem ersten Eingang eines XOR-Gatters 216/i verbunden, in dessen zweiten Eingang das Signal ul (Bit der codierten Bitsequenz) geführt ist und an dessen Ausgang das korrigierte Signal ul(korr) (korrigiertes Bit der codierten Bitsequenz) ausgegeben wird. Beispielsweise kann durch XOR-Logikgatter 216/1216/k, 217/1217/T eine 1-Bit-Fehler-Korrektureinheit realisiert werden.
  • Der den Wert Δwj führende Ausgang des Schaltung S5 215 ist für j = 1, ..., T mit dem ersten Eingang eines XOR-Gatters 217/j verbunden, in dessen zweiten Eingang das Signal wj (Bit der codierten Bitsequenz) geführt ist und an dessen Ausgang das korrigierte Signal wj(korr) (korrigiertes Bit der codierten Bitsequenz) ausgegeben wird.
  • Eine konkrete Ausgestaltung der Schaltung S1 211 für k = 4 und t = 7 zur Realisierung der Decodierfunktion D zeigt 3. Sie besteht aus einem Syndrombildner 327 (Lineare-Syndrombits-Bestimmer), der eine kombinatorische Schaltung mit 11 binären Eingängen und 3 binären Ausgängen (Anzahl der linearen Prüfbits) ist, und einem nachgeschalteten Zuordner 328 (Bit-Fehler-Erkenner) zur Codierung der Syndromwerte als mögliche Fehlerpositionen, der in 3 aus sieben 3-Input UND-Gattern 21, ..., 27 aufgebaut ist, und der die Funktion D' realisiert. An dem k + t = 11 Eingängen des Syndrombildners 327 liegen stellenrichtig die binären Werte u1, ..., u4 und w1, ..., w7 an. Der Syndrombildner ist einfach eine Implementierung der Komponenten s1, s2, s3 (lineare Syndrombits) des Syndroms s des durch die H-Matrix H von Gleichung (1) definierten inneren Codes mit s1 = u1 + u2 + w1 + w2 + w4 + w7 s2 = u1 + u3 + w1 + w3 + w4 + w6 s3 = u2 + u4 + w2 + w3 + w4 + w7
  • Eine Implementierung des Syndrombildners 327 kann beispielsweise mit XOR-Gattern erfolgen.
  • Der Zuordner 328 zur Codierung der Syndromwerte als mögliche Fehlerpositionen gibt bei Eingabe von s1, s2, s2 eine binäre Codierung z1, ..., z7 (codierte Ausgangssignale des Fehlerpositionsbestimmer des inneren Codes) aus. Dabei werden die möglichen Fehlerpositionen Cod(9), Cod(3, 10), Cod(4, 11), Cod(1, 5), Cod(2, 6), Cod(7), Cod(8) als 1-aus-7 Code und Cod(0) z. B. als 0,0,0,0,0,0,0 gemäß der folgenden Tabelle codiert.
    Figure DE102010041680B4_0010
  • So entspricht beispielsweise dem Syndrom s = s1s2s3 = 000 in der ersten Zeile der Tabelle die Codierung 0000000 bzw. Cod(0), die ein fehlerfreies Wort anzeigt; dem Syndrom 010 in der dritten Zeile der Tabelle die Codierung 0010000 bzw. Cod(3, 10), was bedeutet, dass aufgrund der Ausgabe der Schaltung S1 211 nicht unterschieden werden kann, ob ein 1-Bit-Fehler im dritten Bit u3 oder im 10-ten Bit w6 vorliegt.
  • Der Zuordner 328 zur Codierung der Syndromwerte entsprechend der Tabelle soll nun beispielhaft im Detail beschrieben werden. Die drei Ausgänge des Syndrombildners, die die Werte des Syndroms s1, s2 und s3 tragen, sind stellenrichtig mit den drei Eingängen des Zuordners 328 verbunden. Der erste Eingang des Zuordners 328, der den Wert s1 (lineares Prüfbit) des Syndroms trägt, ist gleichzeitig direkt in den ersten Eingang der UND-Gatter 21, 22, 26 und 27 geführt und invertiert in den ersten Eingang der UND-Gatter 23, 24 und 25 geführt. Der zweite Eingang des Zuordners 328, der den Wert des Syndroms trägt, ist gleichzeitig direkt in den zweiten Eingang der UND-Gatter 21, 23, 25 und 27 geführt und invertiert in den zweiten Eingang der UND-Gatter 22, 24 und 26 geführt.
  • Der dritte Eingang des Zuordners 328, der den Wert s3 des Syndroms trägt, ist gleichzeitig direkt in den ersten Eingang der UND-Gatter 22, 24, 25 und 27 geführt und invertiert in den ersten Eingang der UND-Gatter 21, 23 und 26 geführt. Für i = 1, ..., 7 ist der Ausgang des UND-Gatters 2i, der das Ausgabesignal zi trägt, der i-te Ausgang der Schaltung S1 11.
  • Als Beispiel einer nichtlinearen Funktion wird in dem betrachteten Ausführungsbeispiel die nichtlineare Funktion φ(u, w) = u1 +u2 + u3 + u4 + (u1 + w1)(u2 + w2) + (u3 + w6)(u4 + w7) + w3·w4 gewählt, die von der Schaltung S2 212 in 2 implementiert wird.
  • Der Ausgang der Schaltung S2 212, der den Wert φ(u, w) (nichtlineares Prüfbit) trägt, wird in der Schaltung S3 213 mit dem Wert des Bits ε (bereitgestelltes nichtlineares Vergleichsprüfbit) XOR-verknüpft. Schaltung S3 213 gibt damit an ihrem Ausgang den Wert (des nichtlinearen Syndrombits) Δε = ε + φ(u, v) aus.
  • Für die Booleschen Ableitungen gilt:
    Figure DE102010041680B4_0011
    Figure DE102010041680B4_0012
  • Diese Ableitungen werden durch die Schaltung S4 14 gebildet. Eine mögliche Implementierung der Schaltung S4 14 zeigt 4.
  • Man erkennt, dass für i = 1, ..., k, mit k = 4,
    Figure DE102010041680B4_0013
    gilt, und somit
    Figure DE102010041680B4_0014
    einfach durch Negation bestimmt sind, so dass sich die Implementierung der Schaltung S4 214 in 4 besonders einfach gestaltet.
  • In 4 sind die die Werte
    Figure DE102010041680B4_0015
    führenden Ausgänge (Ableitungsbits) durch die Megatoren 35, 36, 37, 38 (Inverter) aus den die Werte
    Figure DE102010041680B4_0016
    führenden Ausgängen abgeleitet. Ebenso ist es möglich, die die Werte
    Figure DE102010041680B4_0017
    führenden Ausgänge durch einfache Negation aus den die Werte
    Figure DE102010041680B4_0018
    führenden Ausgängen abzuleiten, was sinnvoll ist, wenn man an Stelle der XOR-Gatter 31, 32, 33, 34 z. B. entsprechende XNOR-Gatter verwendet.
  • Die Schaltung S4 214 zur Bestimmung der Ableitungen (der Werte der Ableitungsbits) soll nun beispielhaft im Detail beschrieben werden. Die Schaltung S4 214 in 3 hat 11 Eingänge, an denen stellenrichtig die Werte u1, ..., u4, w1, ..., w7 anliegen und 11 Ausgänge, die die Werte
    Figure DE102010041680B4_0019
    führen.
  • Im XOR-Gatter 31 wird die das Inputsignal u1 führende Eingangsleitung mit der das Inputsignal w1 führenden Eingangsleitung XOR-verknüpft. Der Ausgang des XOR-Gatters 31 ist direkt mit der das Signal
    Figure DE102010041680B4_0020
    (Ableitungsbit des Bits w2 der codierten Bitsequenz) führenden Ausgangsleitung und über einen Inverter 36 mit der das Signal
    Figure DE102010041680B4_0021
    (Ableitungsbit des Bits u2 der codierten Bitsequenz) führenden Ausgangsleitung verbunden.
  • Im XOR-Gatter 32 wird die das Inputsignal u2 führende Eingangsleitung mit der das Inputsignal w2 führenden Eingangsleitung XOR-verknüpft. Der Ausgang des XOR-Gatters 32 ist direkt mit der das Signal
    Figure DE102010041680B4_0022
    - führenden Ausgangsleitung und über einen Inverter 35 mit der das Signal
    Figure DE102010041680B4_0023
    führenden Ausgangsleitung verbunden.
  • Im XOR-Gatter 33 wird die das Inputsignal u3 führende Eingangsleitung mit der das Inputsignal w6 führenden Eingangsleitung XOR-verknüpft. Der Ausgang des XOR-Gatters 33 ist direkt mit der das Signal
    Figure DE102010041680B4_0024
    führenden Ausgangsleitung und über einen Inverter 38 mit der das Signal
    Figure DE102010041680B4_0025
    führenden Ausgangsleitung verbunden.
  • Im XOR-Gatter 34 wird die das Inputsignal u4 führende Eingangsleitung mit der das Inputsignal w7 führenden Einansleitung XOR-verknüft. Der Ausgang des XOR-Gatters 34 ist direkt mit der das Signal
    Figure DE102010041680B4_0026
    führenden Ausgangsleitung und über einen Inverter 37 mit der das Signal
    Figure DE102010041680B4_0027
    führenden Ausgangsleitung verbunden.
  • Der das Signal w3 tragende Eingang ist direkt mit dem das Signal
    Figure DE102010041680B4_0028
    tragenden Ausgang verbunden.
  • Der das Signal w4 tragende Eingang ist direkt mit dem das Signal
    Figure DE102010041680B4_0029
    tragenden Ausgang verbunden.
  • Der das Signal
    Figure DE102010041680B4_0030
    führende Ausgang ist konstant gleich 0, da die nichtlineare Funktion φ nicht von w5 abhängt.
  • 5 zeigt eine spezielle Implementierung der Schaltung S5 215 von 2.
  • Die Schaltung von 5 hat 7 binäre Eingänge, in die die Bits z1, z2, z3, z4, z5, z6, z7 (codierte Ausgangssignale des Fehlerpositionsbestimmer des inneren Codes) eingeben werden und die den ersten Eingang der Schaltung bilden und einen zweiten Eingang, in den der Wert Δε eingegeben wird.
  • Weiterhin hat die in 5 abgebildete Schaltung 11 binäre Eingänge, die die Werte
    Figure DE102010041680B4_0031
    (Ableitungsbits), führen und die den dritten Eingang der Schaltung bilden. Sie hat 11 Ausgänge, an denen die Werte Δu1, ..., Δu4, Δw1, ... Δw7 (Fehlersignale) zur Korrektur der Bits u1, ..., u4, ... w1, ..., w7 ausgegeben werden.
  • In speziellen Situationen kann es, wie schon ausgeführt, nicht erforderlich sein, alle Bits u1, ..., u4, w1, ... w7 zu korrigieren. Sind z. B. die Bits w3, w4, w5 nicht zu korrigieren, so können die Ausgänge der Schaltung von 4, die die Werte Δw3, ..., Δw4, Δw5 tragen, weggelassen werden. In anderen Worten, bestimmt der Fehlerpositionsbestimmer des inneren Codes nur eine mögliche Fehlerposition für einen Bit-Fehler, so ist nur noch eine Identifikation des Bit-Fehlers als 1-Bit-Fehler notwendig.
  • In diesem Fall kann der Schaltungsteil 58 der Schaltung S5 in 5 weggelassen werden. Die Schaltung von 5 soll nun beispielhaft im Detail beschrieben werden.
  • Der Eingang, der das Signal z1 führt, ist mit den internen Leitungen y1 und y5 verbunden.
  • Der Eingang, der das Signal z2 führt, ist mit den internen Leitungen y2 und y6 verbunden.
  • Der Eingang, der das Signal z3 führt, ist mit den internen Leitungen y3 und y10 verbunden.
  • Der Eingang, der das Signal z4 führt, ist mit den internen Leitungen y4 und y1 verbunden.
  • Der Eingang, der das Signal z5 führt, ist mit der internen Leitung y7 verbunden.
  • Der Eingang, der das Signal z6 führt, ist mit der internen Leitung y9 verbunden.
  • Der Eingang, der das Signal z7 führt, ist mit der internen Leitung y8 verbunden.
  • Für i = 1, ..., 4 ist der das Signal
    Figure DE102010041680B4_0032
    tragende Eingang mit dem ersten Eingang eines XOR-Gatters 4i verbunden, an dessen zweitem Eingang der Wert Δε anliegt und dessen Ausgang negiert in den ersten Eingang eines UND-Gatters 6i geführt ist, dessen zweiter Eingang mit der Leitung yi + 4 verbunden ist und dessen Ausgang das Korrektursignal Δui führt.
  • Für j = 1, ..., 7 ist der das Signal
    Figure DE102010041680B4_0033
    tragende Eingang mit dem ersten Eingang eines XOR-Gatters 5j verbunden, an dessen zweitem Eingang der Wert Δε anliegt und dessen Ausgang negiert in den ersten Eingang eines UND-Gatters 7j geführt ist, dessen zweiter Eingang mit der Leitung yj verbunden ist und dessen Ausgang das Korrektursignal Δwi führt.
  • Im Folgenden soll nun erläutert werden, wie zwischen einer Korrektur von u1 und w1 aufgrund von Δε und der Werte
    Figure DE102010041680B4_0034
    und
    Figure DE102010041680B4_0035
    unterschieden wird.
  • Ist beispielsweise u1 fehlerhaft in u -l verändert, dann ist
    Figure DE102010041680B4_0036
  • Oder ist beispielsweise w1 in w -l fehlerhaft verändert, dann ist
    Figure DE102010041680B4_0037
  • Ist z1 = 1 und damit y1 = y5 = z1 = 1, dann ist
    Figure DE102010041680B4_0038
    ist und
    Figure DE102010041680B4_0039
    ist. Es gilt dabei, dass
    Figure DE102010041680B4_0040
    ist.
  • Gilt aufgrund eines Fehlers für l = 3, 4, 5
    Figure DE102010041680B4_0041
    und z5, z7 oder z6 gleich Eins, dann ist das entsprechende Δw1 gleich Eins. Ist
    Figure DE102010041680B4_0042
    und ist der entsprechende z5, z7 oder z6 gleich Eins, dann liegt ein unkorrigierbarer Fehler (Mehr-Bit-Fehler) vor.
  • Ist beispielsweise z = 0000010 und damit z6 = 1 (was Cod(9) entspricht und damit y9 = 1, dann ist Δw5 = 1, wenn
    Figure DE102010041680B4_0043
    ist. Ist
    Figure DE102010041680B4_0044
    dann erfolgt kein Korrektur von w5. Es liegt dann ein nicht korrigierbarer Mehrbitfehler vor.
  • Die Signale Δu1, ..., Δu4, Δw1, ..., Δw7 werden zur Korrektur mit den Signalen u1, ..., u4, w1, ... w7 XOR-verknüpft.
  • Zur besseren Fehlererkennung kann man ein weiteres Prüfbit n hinzufügen, dass die Parität über alle Bits u1, ..., uk, w1,..., wt und das Bit ε bildet, π = u1 + u2 + ... + uk + w1 + ... + wt + ε.
  • Wenn schon der innere Code die Position eines 1-Bit-Fehlers eindeutig bestimmt, wie es im Beispiel für 1-Bit Fehler in den Positionen 7, 8 und 9 zutrifft, dann ist durch das nichtlineare Syndrombit des äußeren Codes eine zusätzliche Prüfgleichung gegeben. Diese Prüfgleichung ist nach der korrekten Korrektur eines 1-Bit-Fehlers stets erfüllt. Bei fehlerhafter Korrektur eines Mehrbitfehlers kann mit Wahrscheinlichkeit erkannt werden, dass kein 1-Bit-Fehler, sondern ein Mehrbitfehler vorliegt. Anhand der Abweichung Δε (nichtlineares Syndrombit) des berechneten Wertes der Prüffunktion von dem ausgelesenen Bitwerts ε (bereitgestelltes nichtlineares Vergleichsprüfbit) sowie der Ableitungen der nichtlinearen Prüffunktion (Ableitungsbit) kann daher mit Wahrscheinlichkeit entschieden werden, ob ein Einbitfehler vorliegt. Kann der innere Code alle die Position aller 1-Bit-Fehler sicher bestimmen, dann erhöht die Verwendung der nichtlinearen Prüffunktion und der vorgeschlagenen Decodierung unter Verwendung der Ableitung der nichtlinearen Funktion die Wahrscheinlichkeit, Mehrbitfehler zu erkennen.
  • Einige Ausführungsbeispiele gemäß der Erfindung beziehen sich auf eine Schaltungsanordnung zur Korrektur von 1-Bit-Fehlern in n-stelligen Binärwörtern v = (u, w, ∊) mit u = u1, ..., uk, w = w1, ..., wt und k ≤ t, mit u1, u2, ..., uk, w1, ...,wt ε ∈ {0, 1}, wobei (u, w) Elemente eines inneren Codes C sind, wobei das Bit ∊ durch ∊ = φ(u1, ..., uk, w1, ..., wt) bestimmt ist und φ eine nichtlineare Boolesche Funktion ist, wobei es eine Decodierfunktion D(u1, ..., uk, w1, ..., wt) und eine nichtleere Teilmenge TMw ⊆ {w1, ..., wt} aus k Elementen gibt, so dass für jedes ui ∊ {u1, ..., uk} = U genau ein wji ∊ TMw existiert, so dass für alle Codewörter des inneren Codes (u, w) ∊ C gilt: es ist D(u1, ..., ui – 1, u -r, ui + 1, uk, wl, ..., wt) = D(u1, ..., uk, w1, ..., wji – 1, w -ji, wji + 1, ..., wt) = Cod(i, ji) für alle ui ∈ U, wobei Cod i, ji eine Codierung der Bitpositionen des Bits ui und des Bits wji ist, wobei D(u1, ..., uk, w1, ..., wr – 1, w -r, wr + 1, ..., wt) = Cod(r) für wr ∈ w1, ..., wt}\TMw gilt und Cod(r) eine Codierung der Bitposition des Bits wr ist, wobei D u, v =Cod 0 für alle Codewörter (u, v) des inneren Codes C gilt und Cod(0) eine Codierung dafür ist, dass kein Fehler korrigiert wird, wobei
    Figure DE102010041680B4_0045
    für ui ∈ U gilt, und wobei k + t + 1 = n ist.
  • Dabei ist eine erste Teilschaltung S1 211 zur Realisierung der Decodierfunktion D vorhanden, wobei die Teilschaltung S1 211 k + t binären Eingänge aufweist, an denen die Werte u, w = u1, ... uk, w1, ..., wt anliegen und die an ihrem Ausgang in dem Fall, dass kein Fehler vorliegt, den Wert Cod(0) ausgibt, für den Fall, dass ein 1-Bit-Fehler im Bit ui ∈ U oder im Bit wji ∈ TMw vorliegt, den Wert Cod(i, ji) ausgibt und für den Fall, dass ein 1-Bit-Fehler im Bit wr ∈ {w1, ..., wt}\TM vorliegt, den Wert Cod(r) ausgibt.
  • Des Weiteren ist eine zweite Teilschaltung S2 212 mit k + 1 binären Eingängen und einem binären Ausgang zur Realisierung der Booleschen Funktion φ vorhanden, an deren k + t binären Eingängen die binären Werte u1, ..., uk, w1, ... wt anliegen und an deren Ausgang der Wert φ[u1, ..., uk, w1, ... wt) ausgegeben wird.
  • Eine dritte Teilschaltung S3 213 mit zwei binären Eingängen und einem binären Ausgang zur Bildung der Differenz Δε = ε + φ(u1, ..., uk, w1, ..., wt) ist vorhanden, an deren ersten Eingang der ε anliegt und deren zweiter Eingang mit dem Ausgang der zweiten Teilschaltung verbunden ist und wobei die Schaltung S3 an ihrem Ausgang die XOR-verknüpften Werte, die an ihren beiden Eingängen anliegen, ausgibt.
  • Ferner ist eine vierte Teilschaltung S4 214 mit k + t binären Eingängen und k + T binären Ausgängen zur Bestimmung der Booleschen Ableitungen
    Figure DE102010041680B4_0046
    vorhanden, wobei an den k + t Eingängen der Teilschaltung S4 14 die Werte u1, ..., uk, w1, ..., wt anliegen und T ≤ t ist.
  • Des Weiteren ist eine fünfte Teilschaltung S5 15 zur Bildung der Korrekturwerte mit einem ersten, einem zweiten und einem dritten Eingang und einem k + T Bit breiten Ausgang vorhanden, wobei der erste Eingang mit dem Ausgang der ersten Teilschaltung S1 211 verbunden ist, der zweite Eingang mit dem Ausgang der dritten Teilschaltung S3 213 und der dritte, k + T Bit breite Eingang mit dem ebenfalls k + T Bit breiten Ausgang der vierten Teilschaltung S4 214 verbunden ist, so dass der k + T Bit breite Ausgang der Schaltung S5 215 die k + T Korrekturwerte Δu1, ..., Δuk, Δwi1, ..., ΔwiT führt, die mit den Bits u1, ..., uk, wi1, ..., wiT XOR-verknüpft werden.
  • Gemäß einem Aspekt ist dabei t = T.
  • Des Weiteren ist beispielsweise die Teilschaltung S1 211 eine Reihenschaltung eines Syndrombildners 29 des inneren Codes und eines Zuordners 28 ist, wobei die nichtlineare Funktion φ(u1, ... uk, w1, ..., wt) die Form φ(u1, ..., uk, w1, ..., wt) = ul + ..., uk + λ(ul + wjl, ..., uk + wjk, wil,..., wi(t – k)) hat und λ eine nichtlineare Funktion ist.
  • Zusätzlich kann ein Paritätsbit vorhanden sein.
  • Optional kann die Schaltung S4 14 zur Ableitungsbildung so realisiert sein, dass an mindestens einem Ausgang dieser Schaltung, an dem die Ableitung
    Figure DE102010041680B4_0047
    ausgegeben wird, ein Negator 35, 36, 37, 38 angeschlossen ist, an dessen Ausgang die Ableitung
    Figure DE102010041680B4_0048
    ausgegeben wird.
  • Alternativ oder zusätzlich kann die Schaltung S4 214 zur Ableitungsbildung so realisiert sein, dass an mindestens einem Ausgang dieser Schaltung, an dem die Ableitung
    Figure DE102010041680B4_0049
    ausgegeben wird, ein Negator angeschlossen ist, an dessen Ausgang die Ableitung
    Figure DE102010041680B4_0050
    ausgegeben wird.
  • Einige Ausführungsbeispiele gemäß der Erfindung beziehen sich auf einen Decodierer zum Decodieren einer fehlerhaften, codierten Bitsequenz. 7 zeigt ein Blockdiagramm eines solchen Decodierers 700 zum Decodieren einer fehlerhaften, codierten Bitsequenz 102 entsprechend eines Ausführungsbeispiels gemäß der Erfindung. Der Aufbau des Decodierers 700 ist ähnlich der in 6 gezeigten Vorrichtung zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz, umfasst jedoch zusätzlich eine Decodiereinheit 710. Dabei ist die 1-Bit-Fehler-Korrektureinheit 610 mit der Decodiereinheit 710 verbunden. Die Decodiereinheit 710 decodiert die korrigierte, codierte Bitsequenz 612, um eine decodierte Bitsequenz 712 zu erhalten. Der Fehlerpositionsbestimmer des inneren Codes 110, der Fehlersyndrom-Bestimmer des äußeren Codes 120, der Ableitungsbestimmer 130, der Gesamtfehlerpositionsbestimmer 140 und die 1-Bit-Fehler-Korrektureinheit 610 können auf unterschiedliche Weise implementiert werden, wie zuvor anhand der 1a, 1b und 6 sowie des in den 2 bis 5 gezeigten konkreten Ausführungsbeispiels beschrieben.
  • Die 1-Bit-Fehler-Korrektureinheit 610 und/oder die Decodiereinheit 710 können ebenso wie der Fehlerpositionsbestimmer des inneren Codes 110, der Fehlersyndrom-Bestimmer des äußeren Codes 120, der Ableitungsbestimmer 130 und/oder der Gesamtfehlerpositionsbestimmer 140 beispielsweise unabhängige Hardwareeinheiten oder Teil eines Computer oder Mikrocontrollers sowie ein Computerprogramm oder ein Softwareprodukt zum Ausführen auf einem Computer oder Mikrocontroller sein.
  • Einige Ausführungsbeispiele gemäß der Erfindung beziehen sich auf eine Speichereinheit (z. B. ein RAM, ein Flash-Speicher oder eine Festplatte) mit einer Vorrichtung zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz nach dem beschriebenen Konzept.
  • Einige weitere Ausführungsbeispiele gemäß der Erfindung beziehen sich auf eine Vorrichtung zum Bestimmen einer Position eines 1-Bit-Fehlers in einer durch einen inneren Code und einem äußeren nichtlinearen Code codierten Bitsequenz, die eine Vorrichtung zum Bestimmen einer Fehlerposition des inneren Codes, eine Vorrichtung zum Bestimmen eines Fehlersyndroms des äußeren Codes, eine Vorrichtung zum Bestimmen eines Ableitungsbits und eine Vorrichtung zum Bestimmen einer Gesamtfehlerposition umfasst. Die Vorrichtung zum Bestimmen einer Fehlerposition des inneren Codes bestimmt basierend auf dem inneren Code zumindest eine mögliche Fehlerposition eines Bit-Fehlers in der codierten Bitsequenz. Die Vorrichtung zum Bestimmen eines Fehlersyndroms des äußeren Codes bestimmt einen Wert eines nichtlinearen Syndrombits des äußeren Codes basierend auf einer nichtlinearen Funktion von Bits der codierten Bitsequenz. Des Weiteren bestimmt die Vorrichtung zum Bestimmen eines Ableitungsbits für zumindest eine bestimmte, mögliche Fehlerposition des Bit-Fehlers einen Wert eines Ableitungsbits basierend auf einer Ableitung der nichtlinearen Funktion nach dem Bit der bestimmten, möglichen Fehlerposition in der codierten Bitsequenz. Ferner bestimmt die Vorrichtung zum Bestimmen einer Gesamtfehlerposition eine Fehlerposition des Bit-Fehlers basierend auf dem nichtlinearen Syndrombit und zumindest einem Ableitungsbits, wenn die Vorrichtung zum Bestimmen einer Fehlerposition des inneren Codes mehr als eine mögliche Fehlerposition des Bit-Fehlers bestimmt. Alternativ erkennt die Vorrichtung zum Bestimmen einer Gesamtfehlerposition den Bit-Fehler basierend auf dem nichtlinearen Syndrombit und einem Ableitungsbit einer bestimmten, möglichen Fehlerposition als 1-Bit-Fehler und erkennt dadurch die bestimmte, mögliche Fehlerposition als Fehlerposition des 1-Bit-Fehlers, wenn die Vorrichtung zum Bestimmen einer Fehlerposition des inneren Codes nur eine mögliche Fehlerposition des Bit-Fehlers in der codierten Bitsequenz bestimmt.
  • 11 zeigt ein Flussdiagramm eines Verfahrens 1100 zum Bestimmen einer Position eines 1-Bit-Fehlers in einer durch einen inneren Code und einem äußeren nichtlinearen Code codierten Bitsequenz entsprechend eines Ausführungsbeispiel gemäß der Erfindung. Das Verfahren 1100 umfasst ein Bestimmen 1110 zumindest einer möglichen Fehlerposition eines Bit-Fehlers in der codierten Bitsequenz basierend auf dem inneren Code und ein Bestimmen 1120 eines Werts eines nichtlinearen Syndrombits des äußeren Codes basierend auf einer nichtlinearen Funktion von Bits der codierten Bitsequenz. Des Weiteren umfasst das Verfahren 1100 ein Bestimmen 1130 eines Werts eines Ableitungsbits für zumindest eine bestimmte, mögliche Fehlerposition des Bit-Fehlers basierend auf einer Ableitung der nichtlinearen Funktion nach dem jeweiligen Bit der bestimmten, möglichen Fehlerposition in der codierten Bitsequenz. Ferner umfasst das Verfahren 1100 ein Bestimmen 1150 einer Fehlerposition des Bit-Fehlers basierend auf dem nichtlinearen Syndrombit und zumindest einem Ableitungsbits, wenn mehr als eine mögliche Fehlerposition des Bit-Fehlers bestimmt 1110 wurde, oder ein Erkennen 1160 des Bit-Fehler basierend auf dem nichtlinearen Syndrombit und einem Ableitungsbit einer bestimmten, möglichen Fehlerposition als 1-Bit-Fehler und unterscheiden des 1-Bit-Fehlers von einem Mehr-Bit-Fehler und dadurch erkennen der bestimmten, möglichen Fehlerposition als Fehlerposition des 1-Bit-Fehlers, wenn nur eine mögliche Fehlerposition des Bit-Fehlers in der codierten Bitsequenz bestimmt 1110 wurde.
  • Das Verfahren 1100 kann weitere Verfahrensschritte umfassen, die den zuvor beschriebenen Aspekten des erfindungsgemäßen Konzepts entsprechen.
  • Einige Ausführungsbeispiele gemäß der Erfindung beziehen sich auf ein Verfahren zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz, die ein Verfahren zum Bestimmen einer Position eines 1-Bit-Fehlers in einer codierten Bitsequenz, wie es zuvor beschrieben wurde, und ein Andern eines Werts des Bits auf der bestimmten oder erkannten Fehlerposition der codierten Bitsequenz umfasst, um den 1-Bit-Fehler zu korrigieren.
  • Einige weitere Ausführungsbeispiele gemäß der Erfindung beziehen sich auf ein Verfahren zum Decodieren einer fehlerhaften, codierten Bitsequenz, die ein Verfahren zur Korrektur eines 1-Bit-Fehlers, wie zuvor beschrieben, und ein Decodieren der korrigierten, codierten Bitsequenz umfasst, um eine decodierte Bitsequenz zu erhalten.
  • Einige Ausführungsbeispiele gemäß der Erfindung beziehen sich auf eine Decodierungsschaltung für nichtlineare Vasil'ev-Codes. Das beschriebene Konzept kann z. B. die Decodierungslogik nichtlinearer 1-Bit-Fehler korrigierender und 2-Bit-Fehler erkennender Codes (SEC-DED-Codes, SEC-DED ist ein englisches Akronym für singe-error correction, double-error detecting, Einzelfehlerkorrektur, Doppelfehlererkennung) vereinfachen. Durch das vorgeschlagene Konzept kann die Geschwindigkeit der Decodierschaltung erhöht und die vorteilhafte Verwendung von Codes mit mehreren nichtlinearen Syndrombits (im Folgenden Vasil'ev-2 genannt) technisch ermöglicht werden. Das beschriebene Konzept kann für erweiterte Vasil'ev- und verwandte Codes angewendet werden, die bisher wegen der aufwendigen und langsamen Decodierung nicht praktisch einsetzbar sind.
  • Als 1-Bit-Fehler korrigierende, 2-Bit-Fehler erkennende Codes für Speicher der typischen Wort-breiten 16, 32, 64 Bit etc. werden zur Zeit praktisch überall (verkürzte) Hsiao-Codes eingesetzt. Erweiterte Vasil'ev-Codes mit der gleichen Wortbreite ermöglichen eine deutlich bessere Erkennung von permanenten Fehlern mit drei oder mehr fehlerhaften Bitstellen.
  • Die Wahrscheinlichkeit, mit der beliebige Fehler erkannt werden, ist unabhängig vom verwendeten Code nur von der Zahl der Prüfbit abhängig. Lineare Codes erkennen jedoch für jedes gespeicherte Codewort dieselben Fehler – daher wird eine Teilmenge der Fehler stets und eine zweite Teilmenge der Fehler nie erkannt. Bei nichtlinearen Codes hingegen werden in Abhängigkeit vom gespeicherten Codewort unterschiedliche Fehler erkannt. Damit teilen sich die Fehler für Vasil'ev-Codes auf drei Teilmengen auf. Eine erste Teilmenge der Fehler wird stets als fehlerhaft erkannt, die zweite Teilmenge wird mit Wahrscheinlichkeit 1/2 erkannt (gilt für Vasil'ev-1-Codes, bei Vasil'ev-2-Codes ist die bedingte Erkennungswahrscheinlichkeit ≥ ¼ je Taktzyklus.) Die Teilmenge der Fehler, die nie erkannt werden, ist klein und ihr relativer Anteil nimmt mit steigender Wortbreite stark ab. Bei nichtlinearen Codes nimmt daher die Wahrscheinlichkeit der Nichterkennung für fast alle permanenten Fehler exponentiell mit der Zahl der gespeicherten Worte bzw. Schreib-Lese-Zyklen ab.
  • In 8 ist der Anteil der mit linearen und nichtlinearen Codes erkennbaren Fehler dargestellt. Dabei bezeichnet Vasil'ev-1 einen erweiterten Vasil'ev-Code mit einem nichtlinearen Syndrombit und Vasil'ev-2 einen erweiterten Vasil'ev-Code mit zwei nichtlinearen Syndrombits. Der Einsatz von Vasil'ev-2-Codes kann durch das vorgeschlagene Konzept praktisch überhaupt erst ermöglicht werden. Der Anteil erkennbarer 3-Bit-Fehler ist in 9 für Hsiao-, Vasil'ev-1- und Vasil'ev-2-Codes sowie lineare Even-Odd-Codes (es existiert kein Even-Odd-Code für 16 Informationsbits) dargestellt. Die Even-Odd-Codes sind die bzgl. 3-Bit-Fehlererkennung besten linearen Codes. Man erhält sie durch computergestütztes Kürzen von Hamming-Codes mit dem Ziel max.
  • 3-Bit-Fehlererkennung. In den folgenden Tabellen ist die Erkennungsleistung für beliebige Fehler bzw. für 3-Bit-Fehler noch einmal detailliert aufgelistet. Tabelle 1 Erkennbarkeit beliebiger Fehler
    (n, m) Hsiao-Code Vasil'ev-1 Vasil'ev-2
    (22.16) 65,63% 81,24% 98,82%
    (39.32) 69,53% 89,06% 99,99%
    (72, 64) 71,88% 93,75% >> 99,99%
    (137, 128) 73,24% 96,48% << 99,99%
    Tabelle 2 Erkennbarkeit von 3-Bit-Fhlern
    Figure DE102010041680B4_0051
  • In der Tabelle „Erkennbarkeit beliebiger Fehler” sind in der ersten Spalte mit n und m die Länge eines Codes und die Anzahl der Datenbits bezeichnet. So ist beispielsweise in der ersten Zeile dargestellt, dass ein Code der Länge 22 mit 15 Datenbits betrachtet wird. Man entnimmt der ersten Zeile dieser Tabelle, dass für einen Hsiao-Code 65,63% aller möglichen Fehler, für einen Vasilev1-Code 81,24% aller möglichen Fehler und für einen Vasilev2-Code 98,82% aller möglichen Fehler erkannt werden. Vasilev1-Codes und Vasilev2-Codes sind nichtlineare Codes, für die ein Teil der Fehler stets, eine Teil der Fehler mit Wahrscheinlichkeit und ein Teil der Fehler nie erkannt werden können, wobei der Anteil der nie erkennbaren Fehler mit wachsender Codelänge gegen 0 geht.
  • So beträgt der Anteil der erkannten Fehler für einen Vasilev2-Code der Länge 127 mit 128 Datenbits mehr als 99,99%. Für 3-Bit Fehler is ihre Erkennbarkeit in der Tabelle „Erkennbarkeit von 3-Bit Fehlern” dargestellt.
  • In den Spalten „sicher”, „mit Wahrscheinlichkeit erkannte 3-Bit Fehler” und „nie” werden die entsprechenden Prozentzahlen für die betrachteten Codes für 16, 32, 64 und 128 Datenbits dargestellt. Wird ein Fehler mit Wahrscheinlichkeit erkannt, so wird er mit einer Wahrscheinlichkeit ½ für einen Vasilev1-Code und mit Wahrscheinlichkeit ≤ ¼ für einen Vasilev2-Code erkannt.
  • Die nie erkannten 3-Bit Fehler nehmen prozentual mit wachsender Codelänge stark ab.
  • Vasil'ev-Codes können durch Verdopplung eines inneren Codes und das Anhängen eines nicht-linearen Prüfbits erzeugt. Wie Hamming-Codes sind Vasil'ev-Codes 1-Bit-Fehler korrigierende Codes, die durch das Hinzufügen der Parität über alle Codewortbits zu 1-Bit-Fehler korrigierenden, 2-Bit-Fehler erkennenden Codes erweitert werden können. Im Folgenden wird ein erweiterter Vasil'ev-Code mit einem linearen inneren Code (Vasil'ev-1) beschrieben, die Ausführungen lassen sich jedoch leicht auf erweiterte Vasil'ev-Codes, deren innerer Code wiederum ein Vasil'ev-Code ist, übertragen (Vasil'ev-2).
  • Der innere Code wird durch ein nichtlineares Prüfbit ergänzt, das mit Hilfe einer nicht-linearen Funktion über den Bits des inneren Codes (u, w) berechnet wird.
  • Bisher werden für die Fehlererkennung zunächst die Werte der Prüffunktionen des inneren Codes sowie der Wert der nichtlineare Prüffunktion neu berechnet und mit den gespeicherten Prüfbitwerten verglichen. Dabei wird die Abweichung des Werts der nichtlinearen Prüffunktion vom gespeicherten Prüfbitwert als nichtlineares Syndrom bezeichnet.
  • Weisen die Prüfbits des inneren Codes auf einen Einbitfehler hin, wird bisher ein 2-stufiges Decodierungsverfahren angewendet. Mit Hilfe des inneren Codes kann festgestellt werden, dass der Fehler entweder an der i-ten oder an der (i + n)-ten Stelle des Codeworts v liegt (Syndrom ist hi). Zunächst wird probeweise die i-te Speicherstelle korrigiert und anschließend der Wert der nichtlinearen Prüffunktion erneut bestimmt. Erkennt man anhand des neu berechneten Syndromwerts des probeweise korrigierten Wortes, dass kein Fehler mehr vorliegt, dann war die Korrektur von ui erfolgreich. Liegt andererseits nach der probeweisen Korrektur ein 2-Bit-Fehler vor, dann ist die Korrektur von ui rückgängig zu machen und ui + n zu korrigieren.
  • Dies verlangsamt die Decodierung im Vergleich zu linearen Codes deutlich. Die Verwendung von nichtlinearen inneren Codes (Vasil'ev-2) erscheint nach der bisher bekannten Methode nicht sinnvoll technisch umsetzbar, da dann bereits vier mögliche Korrekturen betrachtet werden müssten.
  • Das erfindungsgemäße Konzept kann die Decodierung dadurch beschleunigen, dass die zu korrigierende Position mit Hilfe der booleschen Ableitung der nichtlinearen Prüffunktion direkt bestimmt wird. Das Verfahren ist prinzipiell für alle nichtlinearen Funktionen anwendbar. Obwohl manche Aspekte im Zusammenhang mit einer Vorrichtung beschrieben wurden, versteht es sich, dass diese Aspekte auch eine Beschreibung des entsprechenden Verfahrens darstellen, sodass ein Block oder ein Bauelement einer Vorrichtung auch als ein entsprechender Verfahrensschritt oder als ein Merkmal eines Verfahrensschrittes zu verstehen ist. Analog dazu stellen Aspekte, die im Zusammenhang mit einem oder als ein Verfahrensschritt beschrieben wurden, auch eine Beschreibung eines entsprechenden Blocks oder Details oder Merkmals einer entsprechenden Vorrichtung dar.
  • Je nach bestimmten Implementierungsanforderungen können Ausführungsbeispiele der Erfindung in Hardware oder in Software implementiert sein. Die Implementierung kann unter Verwendung eines digitalen Speichermediums, beispielsweise einer Floppy-Disk, einer DVD, einer Blu-ray Disc, einer CD, eines ROM, eines PROM, eines EPROM, eines EEPROM oder eines FLASH-Speichers, einer Festplatte oder eines anderen magnetischen oder optischen Speichers durchgeführt werden, auf dem elektronisch lesbare Steuersignale gespeichert sind, die mit einem programmierbaren Computersystem derart zusammenwirken können oder zusammenwirken, dass das jeweilige Verfahren durchgeführt wird. Des-halb kann das digitale Speichermedium computerlesbar sein. Manche Ausführungsbeispiele gemäß der Erfindung umfassen also einen Datenträger, der elektronisch lesbare Steuersignale aufweist, die in der Lage sind, mit einem programmierbaren Computersystem derart zusammenzuwirken, dass eines der hierin beschriebenen Verfahren durchgeführt wird.
  • Allgemein können Ausführungsbeispiele der vorliegenden Erfindung als Computerprogrammprodukt mit einem Programmcode implementiert sein, wobei der Programmcode dahin gehend wirksam ist, eines der Verfahren durchzuführen, wenn das Computerprogrammprodukt auf einem Computer abläuft. Der Programmcode kann beispielsweise auch auf einem maschinenlesbaren Träger gespeichert sein.
  • Andere Ausführungsbeispiele umfassen das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren, wobei das Computerprogramm auf einem maschinenlesbaren Träger gespeichert ist.
  • Mit anderen Worten ist ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens somit ein Computerprogramm, das einen Programmcode zum Durchführen eines der hierin beschriebenen Verfahren aufweist, wenn das Computerprogramm auf einem Computer ab-läuft. Ein weiteres Ausführungsbeispiel der erfindungsgemäßen Verfahren ist somit ein Datenträger (oder ein digitales Speichermedium oder ein computerlesbares Medium), auf dem das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren aufgezeichnet ist.
  • Ein weiteres Ausführungsbeispiel des erfindungsgemäßen Verfahrens ist somit ein Datenstrom oder eine Sequenz von Signalen, der bzw. die das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren darstellt bzw. darstellen. Der Datenstrom oder die Sequenz von Signalen kann bzw. können beispielsweise dahin gehend konfiguriert sein, über eine Datenkommunikationsverbindung, beispielsweise über das Internet, transferiert zu werden.
  • Ein weiteres Ausführungsbeispiel umfasst eine Verarbeitungseinrichtung, beispielsweise einen Computer oder ein programmierbares Logikbauelement, die dahin gehend konfiguriert oder angepasst ist, eines der hierin beschriebenen Verfahren durchzuführen.
  • Ein weiteres Ausführungsbeispiel umfasst einen Computer, auf dem das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren installiert ist.
  • Bei manchen Ausführungsbeispielen kann ein programmierbares Logikbauelement (beispielsweise ein feldprogrammierbares Gatterarray, ein FPGA) dazu verwendet werden, manche oder alle Funktionalitäten der hierin beschriebenen Verfahren durchzuführen. Bei manchen Ausführungsbeispielen kann ein feldprogrammierbares Gatterarray mit einem Mikroprozessor zusammenwirken, um eines der hierin beschriebenen Verfahren durchzuführen. Allgemein werden die Verfahren bei einigen Ausführungsbeispielen seitens einer beliebigen Hardwarevorrichtung durchgeführt. Diese kann eine universell einsetzbare Hardware wie ein Computerprozessor (CPU) sein oder für das Verfahren spezifische Hardware, wie beispielsweise ein ASIC.
  • Die oben beschriebenen Ausführungsbeispiele stellen lediglich eine Veranschaulichung der Prinzipien der vorliegenden Erfindung dar. Es versteht sich, dass Modifikationen und Variationen der hierin beschriebenen Anordnungen und Einzelheiten anderen Fachleuten ein-leuchten werden. Deshalb ist beabsichtigt, dass die Erfindung lediglich durch den Schutzumfang der nachstehenden Patentansprüche und nicht durch die spezifischen Einzelheiten, die anhand der Beschreibung und der Erläuterung der Ausführungsbeispiele hierin präsentiert wurden, beschränkt sei.

Claims (34)

  1. Vorrichtung (100) zum Bestimmen einer Position eines 1-Bit-Fehlers in einer durch einen inneren Code und einem äußeren nichtlinearen Code codierten Bitsequenz (102), mit folgenden Merkmalen: einem Fehlerpositionsbestimmer des inneren Codes (110), der ausgelegt ist, um basierend auf dem inneren Code zumindest eine mögliche Fehlerposition (112) eines Bit-Fehlers in der codierten Bitsequenz (102) zu bestimmen; einem Fehlersyndrom-Bestimmer des äußeren Codes (120), der ausgelegt ist, um einen Wert eines nichtlinearen Syndrombits (122) des äußeren Codes basierend auf einer nichtlinearen Funktion von Bits der codierten Bitsequenz (102) zu bestimmen; einem Ableitungsbestimmer (130), der ausgelegt ist, um für zumindest eine bestimmte, mögliche Fehlerposition (112) des Bit-Fehlers einen Wert eines Ableitungsbits (132) basierend auf einer Ableitung der nichtlinearen Funktion nach dem Bit der bestimmten, möglichen Fehlerposition (112) in der codierten Bitsequenz (102) zu bestimmen; und einem Gesamtfehlerpositionsbestimmer (140), der ausgelegt ist, um eine Fehlerposition (142) des Bit-Fehlers basierend auf dem nichtlinearen Syndrombit (122) und zumindest einem Ableitungsbits (132) zu bestimmen, wenn der Fehlerpositionsbestimmer des inneren Codes (110) mehr als eine mögliche Fehlerposition (112) des Bit-Fehlers bestimmt, oder wobei der Gesamtfehlerpositionsbestimmer (140) ausgelegt ist, um den Bit-Fehler basierend auf dem nichtlinearen Syndrombit (122) und einem Ableitungsbit (132) einer bestimmten, möglichen Fehlerposition (112) als 1-Bit-Fehler zu erkennen und von einem Mehr-Bit-Fehler zu unterscheiden und dadurch die bestimmte, mögliche Fehlerposition (112) als Fehlerposition (142) des 1-Bit-Fehlers zu erkennen, wenn der Fehlerpositionsbestimmer des inneren Codes (110) nur eine mögliche Fehlerposition (112) des Bit-Fehlers in der codierten Bitsequenz (102) bestimmt.
  2. Vorrichtung gemäß Anspruch 1, wobei der Fehlerpositionsbestimmer des inneren Codes (110) ausgelegt ist, um basierend auf dem inneren Code alle möglichen Fehlerpositionen (112) eines Bit-Fehlers in der codierten Bitsequenz (102) zu bestimmen.
  3. Vorrichtung gemäß Anspruch 1 oder 2, wobei der Fehlerpositionsbestimmer des inneren Codes (110) genau eine mögliche Fehlerposition (112) für einen Bit-Fehler bestimmt, und wobei der Gesamtfehlerpositionsbestimmer (140) ausgelegt ist, um den Bit-Fehler basierend auf dem nichtlinearen Syndrombit (122) und einem Ableitungsbit (132) der bestimmten, möglichen Fehlerposition als 1-Bit-Fehler zu erkennen und von einem Mehr-Bit-Fehler zu unterscheiden und dadurch die bestimmte, mögliche Fehlerposition (112) als Fehlerposition (142) des 1-Bit-Fehlers zu erkennen.
  4. Vorrichtung gemäß Anspruch 1 oder 2, wobei der Fehlersyndrom-Bestimmer des äußeren Codes (120) ausgelegt ist, um für eine vordefinierte Anzahl von nichtlinearen Syndrombits (122) basierend auf einer entsprechenden Anzahl von nichtlinearen Funktionen einen Wert zu bestimmen, wobei der Fehlerpositionsbestimmer des inneren Codes (110) maximal 2 hoch der vordefinierten Anzahl von nichtlinearen Syndrombits (122) verschiedene mögliche Fehlerpositionen (112) eines Bit-Fehlers bestimmt, und der Gesamtfehlerpositionsbestimmer (140) ausgelegt ist, um den Bit-Fehler basierend auf den nichtlinearen Syndrombits als 1-Bit-Fehler zu erkennen und eine Fehlerposition des 1-Bit-Fehlers basierend auf den nichtlinearen Syndrombits (122) und zumindest 2 hoch der Anzahl von nichtlinearen Syndrombits Ableitungsbits (132) zu bestimmen.
  5. Vorrichtung gemäß Anspruch 1 oder 2, wobei der Fehlerpositionsbestimmer des inneren Codes (110) zwei mögliche Fehlerpositionen (112) eines Bit-Fehlers bestimmt, und wobei der Gesamtfehlerpositionsbestimmer (140) ausgelegt ist, um eine Fehlerposition (142) des 1-Bit-Fehlers basierend auf dem nichtlinearen Syndrombit (122) und zwei Ableitungsbits (132) zu bestimmen.
  6. Vorrichtung gemäß einem der Ansprüche 1 bis 5, wobei eine Ableitung der nichtlinearen Funktion nach dem jeweiligen Bit von zwei bestimmten, möglichen Fehlerpositionen (112) für die beiden bestimmten, möglichen Fehlerpositionen (112) eine unterschiedliche abgeleitete Funktion ergibt, wobei der Ableitungsbestimmer (130) ausgelegt ist, um den Wert eines Ableitungsbits (132) basierend auf der zugehörigen abgeleiteten Funktion zu berechnen.
  7. Vorrichtung gemäß einem der Ansprüche 1 bis 6, wobei die codierte Bitsequenz (102) basierend auf einem Vasil'ev-Code codiert ist.
  8. Vorrichtung gemäß einem der Ansprüche 1 bis 7, wobei eine Anzahl von Bits in der codierten Bitsequenz (102) zumindest gleich 2 hoch einer Anzahl von linearen Prüfbits des inneren Codes ist.
  9. Vorrichtung gemäß einem der Ansprüche 1 bis 8, wobei der Ableitungsbestimmer (130) ausgelegt ist, um für jedes Bit der codierten Bitsequenz (102) einen Wert eines Ableitungsbits (132) basierend auf einer Ableitung der nichtlinearen Funktion nach dem jeweiligen Bit der codierten Bitsequenz (102) zu berechnen.
  10. Vorrichtung gemäß einem der Ansprüche 1 bis 9, wobei der Ableitungsbestimmer (130) ausgelegt ist, um einen Wert eines Ableitungsbits (132) basierend auf einer Booleschen Ableitung zu bestimmen.
  11. Vorrichtung gemäß einem der Ansprüche 1 bis 10, wobei der Fehlersyndrom-Bestimmer des äußeren Codes (120) ausgelegt ist, um den bestimmten Wert des nichtlinearen Syndrombits (122) basierend auf einer Berechnung eines nichtlinearen Prüfbits und einem Vergleich des nichtlinearen Prüfbits mit einem Wert eines bereitgestellten, nichtlinearen Vergleichsprüfbits der codierten Bitsequenz (102) zu berechnen, wobei das nichtlineare Prüfbit und das bereitgestellte, nichtlineare Vergleichsprüfbit basierend auf der nichtlinearen Funktion berechenbar sind, und wobei das bereitgestellte, nichtlineare Vergleichsprüfbit der codierten Bitsequenz (102) zugeordnet ist oder in der codierten Bitsequenz (102) enthalten ist.
  12. Vorrichtung gemäß einem der Ansprüche 1 bis 11, wobei der innere Code ein linearer Code ist.
  13. Vorrichtung gemäß einem der Ansprüche 1 bis 12, wobei der Fehlerpositionsbestimmer des inneren Codes (110) ausgelegt ist, um Werte einer Mehrzahl von Syndrombits des inneren Codes basierend auf einer Mehrzahl von Funktionen von Bits der codierten Bitsequenz (102) zu berechnen, und wobei der Fehlerpositionsbestimmer des inneren Codes (110) ausgelegt ist, um basierend auf der Mehrzahl von Syndrombits des inneren Codes zumindest eine mögliche Fehlerposition (112) eines Bit-Fehlers in der codierten Bitsequenz (102) zu bestimmen.
  14. Vorrichtung gemäß Anspruch 13, wobei der Fehlerpositionsbestimmer des inneren Codes (110) ausgelegt ist, um die Werte der Mehrzahl von Syndrombits des inneren Codes basierend auf einer Prüfmatrix (H) zu berechnen.
  15. Vorrichtung gemäß einem der Ansprüche 1 bis 14, wobei in der nichtlinearen Funktion jedes Bit der codierten Bitsequenz (102), das der Fehlerpositionsbestimmer des inneren Codes (110) als mögliche Fehlerposition (112) zusammen mit zumindest einer weiteren möglichen Fehlerposition (112) eines Bit-Fehlers bestimmt, zumindest einmal in einem nichtlinearen Term enthalten ist.
  16. Vorrichtung gemäß einem der Ansprüche 1 bis 15, wobei der Fehlerpositionsbestimmer des inneren Codes (110) eine Mehrzahl von UND-Logikgattern aufweist und ausgelegt ist, um die zumindest eine mögliche Fehlerposition (112) basierend auf der Mehrzahl von UND-Logikgattern (2127) zu berechnen, wobei jedes UND-Logikgatter der Mehrzahl von Logikgattern (2127) je einen Eingang für ein Syndrombit des inneren Codes aufweist.
  17. Vorrichtung gemäß einem der Ansprüche 1 bis 16, wobei der Ableitungsbestimmer (130) ausgelegt ist, um die Werte von Ableitungsbits (132) von zwei Bits der codierten Bitsequenz (102), die von dem Fehlerpositionsbestimmer des inneren Codes (110) als mögliche Fehlerpositionen (112) desselben Bit-Fehlers bestimmt wurden, basierend auf einer logischen XOR-Verknüpfung (3134) der beiden Bits der codierten Bitsequenz (102) zu berechnen, wobei der Wert des Ableitungsbits (132) eines der beiden Bits einem Ergebnis der logischen XOR-Verknüpfung (3134) entspricht und der Wert des Ableitungsbits (132) des anderen der beiden Bits einem negierten Ergebnis der logischen XOR-Verknüpfung (3134) entspricht.
  18. Vorrichtung gemäß einem der Ansprüche 1 bis 17, wobei der Fehlerpositionsbestimmer des inneren Codes (110) ausgelegt ist, um einen Wert eines Paritätsbits basierend auf den Bits der codierten Bitsequenz (102) zu berechnen, wobei der Gesamtfehlerpositionsbestimmer (140) ausgelegt ist, um basierend auf dem Paritätsbit einen 1-Bit-Fehler von einem geraden Mehr-Bit-Fehler zu unterscheiden.
  19. Vorrichtung gemäß einem der Ansprüche 1 bis 18, wobei der Gesamtfehlerpositionsbestimmer (140) ausgelegt ist, um für jedes Bit der codierten Bitsequenz (102) ein Fehlersignal auszugeben, wobei das Fehlersignal eines Bits der codierten Bitsequenz (102) angibt, ob bei dem Bit der codierten Bitsequenz (102) ein 1-Bit-Fehler erkannt wurde.
  20. Vorrichtung gemäß Anspruch 19, wobei der Fehlerpositionsbestimmer des inneren Codes (110) ausgelegt ist, um die zumindest eine mögliche Fehlerposition (112) in Form einer Mehrzahl von Werten von codierten Ausgangsbits bereitzustellen, wobei der Gesamtfehlerpositionsbestimmer (140) ausgelegt ist, um ein Fehlersignal eines Bits der codierten Bitsequenz (102) basierend auf einer logischen XOR-Verknüpfung (4144, 5157) des Ableitungsbits (132) des Bits der codierten Bitsequenz (102) mit dem nichtlinearen Syndrombit (122) und basierend auf einer logischen UND-Verknüpfung (6164, 7177) des Ergebnisses der logischen XOR-Verknüpfung (4144, 5157) und zumindest eines der codierten Ausgangsbits des Fehlerpositionsbestimmer des inneren Codess (110) zu bestimmen.
  21. Vorrichtung gemäß einem der Ansprüche 1 bis 20, wobei der Fehlerpositionsbestimmer des inneren Codes (110) für mindestens einen 1-Bit-Fehler der codierten Bitsequenz mindestens zwei mögliche fehlerhafte Bitpositionen bestimmt.
  22. Vorrichtung gemäß einem der Ansprüche 1 bis 20, wobei der Fehlerpositionsbestimmer des inneren Codes (110) für alle betrachteten 1-Bit-Fehler des codierten Binärwortes jeweils eine einzige mögliche Fehlerposition bestimmt.
  23. Vorrichtung gemäß einem der Ansprüche 1 bis 22, wobei der Fehlerpositionsbestimmer des inneren Codes (110), der Fehlersyndrom-Bestimmer des äußeren Codes (120), Ableitungsbestimmer (130) und der Gesamtfehlerpositionsbestimmer (140) wenigstens teilweise gemeinsam realisiert sind.
  24. Vorrichtung (200, 600) zur Korrektur eines 1-Bit-Fehlers in einer durch einen inneren Code und einem äußeren Code codierten Bitsequenz (102), mit folgenden Merkmalen: einer Vorrichtung zum Bestimmen einer Position eines 1-Bit-Fehlers in einer codierten Bitsequenz (102) gemäß einem der Ansprüche 1 bis 23; und einer 1-Bit-Fehler-Korrektureinheit (610), der ausgelegt ist, um einen Wert des Bits auf der bestimmten oder erkannten Fehlerposition (142) der codierten Bitsequenz (102) zu ändern, um den 1-Bit-Fehler zu korrigieren.
  25. Vorrichtung gemäß Anspruch 24, wobei der Gesamtfehlerpositionsbestimmer (140) ausgelegt ist, um für jedes Bit der codierten Bitsequenz (102) ein Fehlersignal auszugeben, wobei das Fehlersignal eines Bits der codierten Bitsequenz (102) angibt, ob bei dem Bit der codierten Bitsequenz (102) ein 1-Bit-Fehler vorliegt, wobei der 1-Bit-Fehler-Korrektureinheit (610) ausgelegt ist, um den 1-Bit-Fehler basierend auf einer logischen XOR-Verknüpfung (216/1216/k, 217/1217/T) des Fehlersignals jedes Bits der codierten Bitsequenz (102) mit dem jeweiligen Bit der codierten Bitsequenz (102) zu korrigieren.
  26. Decodierer (700) zum Decodieren einer fehlerhaften, codierten Bitsequenz (102), mit folgenden Merkmalen: einer Vorrichtung zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz gemäß Anspruch 24 oder 25; und einer Decodiereinheit (710), die ausgelegt ist, um die korrigierte, codierte Bitsequenz (612) zu decodieren, um eine decodierte Bitsequenz (712) zu erhalten.
  27. Vorrichtung zum Bestimmen einer Position eines 1-Bit-Fehlers in einer durch einen inneren Code und einem äußeren nichtlinearen Code codierten Bitsequenz, mit folgenden Merkmalen: einer Vorrichtung zum Bestimmen einer Fehlerposition des inneren Codes, die ausgelegt ist, um basierend auf dem inneren Code zumindest eine mögliche Fehlerposition eines Bit-Fehlers in der codierten Bitsequenz zu bestimmen; einer Vorrichtung zum Bestimmen eines Fehlersyndroms des äußeren Codes, die ausgelegt ist, um einen Wert eines nichtlinearen Syndrombits des äußeren Codes basierend auf einer nichtlinearen Funktion von Bits der codierten Bitsequenz zu bestimmen; einer Vorrichtung zum Berechnen eines Ableitungsbits, die ausgelegt ist, um für zumindest eine bestimmte, mögliche Fehlerposition des Bit-Fehlers einen Wert eines Ableitungsbits basierend auf einer Ableitung der nichtlinearen Funktion nach dem Bit der bestimmten, möglichen Fehlerposition in der codierten Bitsequenz zu bestimmen; und einer Vorrichtung zum Bestimmen einer Gesamtfehlerposition, die ausgelegt ist, um eine Fehlerposition des Bit-Fehlers basierend auf dem nichtlinearen Syndrombit und zumindest einem Ableitungsbits zu bestimmen, wenn die Vorrichtung zum Bestimmen einer Fehlerposition des inneren Codes mehr als eine mögliche Fehlerposition des Bit-Fehlers bestimmt, oder wobei die Vorrichtung zum Bestimmen einer Gesamtfehlerposition ausgelegt ist, um den Bit-Fehler basierend auf dem nichtlinearen Syndrombit und einem Ableitungsbit einer bestimmten, möglichen Fehlerposition als 1-Bit-Fehler zu erkennen und von einem Mehr-Bit-Fehler zu unterscheiden und dadurch die bestimmte, mögliche Fehlerposition als Fehlerposition des 1-Bit-Fehlers zu erkennen, wenn die Vorrichtung zum Bestimmen einer Fehlerposition des inneren Codes nur eine mögliche Fehlerposition des Bit-Fehlers in der codierten Bitsequenz bestimmt.
  28. Vorrichtung zur Korrektur eines 1-Bit-Fehlers in einer Bitsequenz aus n Bits v = (u, w, ∊) mit u = u1, ..., uk, w = w1, ..., wt und k ≤ t, mit u1, u2, ..., uk, w1, ..., wt, ε ∈ {0, 1}, wobei n ≥ 3 ist, wobei (u, w) Elemente eines inneren Codes C sind, wobei das Bit ∊ durch ∊ = φ(ul, ..., uk, wl, ..., wt) bestimmt ist und φ eine nichtlineare Boolesche Funktion ist, wobei es eine Decodierfunktion D(u1, ..., uk, w1, ..., wt) und eine nichtleere Teilmenge TMw ⊆ {w1, ..., wt} aus k Elementen gibt, so dass für jedes ui ∊ {u1, ..., uk} = U genau ein wji ∊ TMw existiert, so dass für alle Codewörter des inneren Codes (u, w) ∊ C gilt, dass D(u1, ..., ui – 1, u -r, ui + 1, uk, wl, ..., wt) = D(u1, ..., uk, w1, ..., wji – 1, w -ji, wji + 1, ..., wt) = Cod(i, ji) für alle ui ∈ U, wobei Cod(i, ji) eine Codierung der Bitpositionen des Bits ui und des Bits wij ist, wobei D(ul, ..., uk, wl, ..., wr – 1, w -r, wr + 1, ..., wt) = Cod(r) für wr ∈ {wl, ..., wt}\TMw gilt und Cod(r) eine Codierung der Bitposition des Bits wr ist, wobei D(u, v) = Cod(0) für alle Codewörter (u, v) des inneren Codes C gilt und Cod(0) eine Codierung dafür ist, dass kein Fehler korrigiert wird, wobei
    Figure DE102010041680B4_0052
    für ui ∈ U gilt, und wobei k + t + 1 = n ist, wobei eine erste Teilschaltung S1 (211) zur Realisierung der Decodierfunktion D vorhanden ist, wobei die Teilschaltung S1 (211) k + t binären Eingänge aufweist, an denen die Werte u, w = u1, ... uk, w1, ..., wt anliegen und die an ihrem Ausgang in dem Fall, dass kein Fehler vorliegt, den Wert Cod(0) ausgibt, für den Fall, dass ein 1-Bit-Fehler im Bit ui ∈ U oder im Bit wji ∈ TMw vorliegt, den Wert Cod(i, ji) ausgibt und für den Fall, dass ein 1-Bit-Fehler im Bit wr ∈ {w1, ..., wt)\TMw vorliegt, den Wert Cod(r) ausgibt, wobei eine zweite Teilschaltung S2 (212) mit k + 1 binären Eingängen und einem binären Ausgang zur Realisierung der Booleschen Funktion φ vorhanden ist, an deren k + t binären Eingängen die binären Werte u1, ..., uk, w1, ... wt anliegen und an deren Ausgang der Wert φ(u1, ..., uk, w1, ... wt) ausgegeben wird, wobei eine dritte Teilschaltung S3 (213) mit zwei binären Eingängen und einem binären Ausgang zur Bildung des nichtlinearen Syndroms des äußeren Codes Δε = ε + φ(u1, ..., uk, w1, ..., wt) vorhanden ist, an deren ersten Eingang der Wert ε anliegt und deren zweiter Eingang mit dem Ausgang der zweiten Teilschaltung verbunden ist und wobei die Schaltung S3 (213) an ihrem Ausgang die XOR-verknüpften Werte, die an ihren beiden Eingängen anliegen, ausgibt, wobei eine vierte Teilschaltung S4 (214) mit k + t binären Eingängen und k + T binären Ausgängen zur Bestimmung der Booleschen Ableitungen
    Figure DE102010041680B4_0053
    Vorhanden ist, wobei an den k + t Eingängen der Teilschaltung S4 (214) die Werte u1, ..., uk, wi, ..., wt anliegen und T ≤ t ist, wobei eine fünfte Teilschaltung S5 (214) zur Bildung der Korrekturwerte mit einem ersten, einem zweiten und einem dritten Eingang und einem k + T Bit breiten Ausgang vorhanden ist, wobei der erste Eingang mit dem Ausgang der ersten Teilschaltung S1 (211) verbunden ist, der zweite Eingang mit dem Ausgang der dritten Teilschaltung S3 (213) und der dritte, k + T Bit breite Eingang mit dem ebenfalls k + T Bit breiten Ausgang der vierten Teilschaltung S4 (214) verbunden ist, so dass der k + T Bit breite Ausgang der Schaltung S5 (214) die k + T Korrekturwerte Δu1, ..., Δuk, Δwi1, ..., ΔwiT führt, die mit den Bits u1, ..., uk, wi1, ..., wiT XOR-verknüpft werden.
  29. Vorrichtung gemäß Anspruch 28, wobei die Teilschaltungen S1 (211), S2 (212), S3 (213), S4 (214) und S5 (215) wenigstens teilweise gemeinsam realisiert sind.
  30. Vorrichtung gemäß Anspruch 28 oder 29, wobei die Teilschaltung S1 (211) eine Reihenschaltung eines Syndrombildners (327) des inneren Codes und eines Zuordners (328) ist.
  31. Vorrichtung gemäß einem der Ansprüche 1 bis 30, wobei die nichtlineare Funktion φ(u1, ... uk, w1, ..., wt) die Form φ(u1,..., uk, wl, ..., wt) = ul + ..., uk + λ(ul + wjl, ..., uk + wjk, wil,..., wi(t – k)) hat und λ eine nichtlineare Funktion ist.
  32. Vorrichtung gemäß einem der Ansprüche 1 bis 31, wobei ein zusätzliches Paritätsbit vorhanden ist.
  33. Verfahren (1100) zum Bestimmen einer Position eines 1-Bit-Fehlers in einer durch einen inneren Code und einem äußeren nichtlinearen Code codierten Bitsequenz, mit folgenden Schritten: Bestimmen (1110) zumindest einer möglichen Fehlerposition eines Bit-Fehlers in der codierten Bitsequenz basierend auf dem inneren Code; Bestimmen (1120) eines Werts eines nichtlinearen Syndrombits des äußeren Codes basierend auf einer nichtlinearen Funktion von Bits der codierten Bitsequenz; Bestimmen (1130) eines Werts eines Ableitungsbits für zumindest eine bestimmte, mögliche Fehlerposition des Bit-Fehlers basierend auf einer Ableitung der nichtlinearen Funktion nach dem jeweiligen Bit der bestimmten, möglichen Fehlerposition in der codierten Bitsequenz; und Bestimmen (1150) einer Fehlerposition des Bit-Fehlers basierend auf dem nichtlinearen Syndrombit und zumindest einem Ableitungsbits, wenn mehr als eine mögliche Fehlerposition des Bit-Fehlers bestimmt (1110) wurde, oder Erkennen (1160) des Bit-Fehler basierend auf dem nichtlinearen Syndrombit und einem Ableitungsbit einer bestimmten, möglichen Fehlerposition als 1-Bit-Fehler und von unterscheiden des 1-BitFehlers von einem Mehr-Bit-Fehler und dadurch Erkennen der bestimmten, möglichen Fehlerposition als Fehlerposition des 1-Bit-Fehlers, wenn nur eine mögliche Fehlerposition des Bit-Fehlers in der codierten Bitsequenz bestimmt (1110) wurde.
  34. Computerprogramm mit einem Programmcode zur Durchführung des Verfahrens gemäß Anspruch 31, wenn das Computerprogramm auf einem Computer oder Mikrocontroller abläuft.
DE102010041680.0A 2010-09-29 2010-09-29 Vorrichtung und Verfahren zum Bestimmen einer Position eines 1-Bit-Fehlers in einer codierten Bitsequenz, Vorrichtung und Verfahren zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz und Decodierer und Verfahren zum Decodieren einer fehlerhaften, codierten Bitsequenz Active DE102010041680B9 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102010041680.0A DE102010041680B9 (de) 2010-09-29 2010-09-29 Vorrichtung und Verfahren zum Bestimmen einer Position eines 1-Bit-Fehlers in einer codierten Bitsequenz, Vorrichtung und Verfahren zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz und Decodierer und Verfahren zum Decodieren einer fehlerhaften, codierten Bitsequenz
CN201110292466.XA CN102436851B (zh) 2010-09-29 2011-09-29 确定1位错误的位置、校正1位错误及解码的设备和方法
US13/248,502 US8631308B2 (en) 2010-09-29 2011-09-29 Apparatus and method for determination of a position of a 1 bit error in a coded bit sequence, apparatus and method for correction of a 1-bit error in a coded bit sequence and decoder and method for decoding an incorrect, coded bit sequence

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102010041680.0A DE102010041680B9 (de) 2010-09-29 2010-09-29 Vorrichtung und Verfahren zum Bestimmen einer Position eines 1-Bit-Fehlers in einer codierten Bitsequenz, Vorrichtung und Verfahren zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz und Decodierer und Verfahren zum Decodieren einer fehlerhaften, codierten Bitsequenz

Publications (3)

Publication Number Publication Date
DE102010041680A1 DE102010041680A1 (de) 2012-03-29
DE102010041680B4 true DE102010041680B4 (de) 2014-03-27
DE102010041680B9 DE102010041680B9 (de) 2014-09-18

Family

ID=45804553

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102010041680.0A Active DE102010041680B9 (de) 2010-09-29 2010-09-29 Vorrichtung und Verfahren zum Bestimmen einer Position eines 1-Bit-Fehlers in einer codierten Bitsequenz, Vorrichtung und Verfahren zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz und Decodierer und Verfahren zum Decodieren einer fehlerhaften, codierten Bitsequenz

Country Status (3)

Country Link
US (1) US8631308B2 (de)
CN (1) CN102436851B (de)
DE (1) DE102010041680B9 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8935590B2 (en) * 2012-10-31 2015-01-13 Infineon Technologies Ag Circuitry and method for multi-bit correction
US11126500B2 (en) * 2019-05-24 2021-09-21 Microsoft Technology Licensing, Llc Error detection and correction with integrity checking
CN110733443B (zh) * 2019-10-14 2021-08-27 广州维思车用部件有限公司 基于车辆的仪表数据处理方法及装置
DE102021133678A1 (de) * 2021-01-20 2022-07-21 Infineon Technologies Ag Korrektur von bitfehlern

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5504758A (en) * 1992-04-28 1996-04-02 Mitsubishi Denki Kabushiki Kaisha Error-correcting apparatus
JP2009100369A (ja) * 2007-10-18 2009-05-07 Toshiba Corp 誤り検出訂正回路、半導体メモリコントローラ、および誤り検出訂正方法
CN101499325B (zh) * 2008-02-03 2012-10-03 深圳艾科创新微电子有限公司 一种具有可变纠错能力的非易失性存储***及方法
CN101277119B (zh) * 2008-05-14 2010-06-02 清华大学 里德所罗门码解码器硬件复用方法及其低硬件复杂度解码装置

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
WANG Z. u.a.: Reliable MLC NAND flash memories based on nonlinear t-error-correcting codes. IEEE/IFIP International Conference on Dependable Systems Networks, 2010. S. 41 - 50 *
WANG Z. u.a.: Reliable MLC NAND flash memories based on nonlinear t-error-correcting codes. IEEE/IFIP International Conference on Dependable Systems Networks, 2010. S. 41 – 50
WANG Z. u.a.: Replacing Linear Hamming Codes by Robust Nonlinear Codes Results in a Reliability Improvement of Memories. IEEE/IFIP International Conference on Dependable Systems Networks, 2009. S. 514 - 523 *
WANG Z. u.a.: Replacing Linear Hamming Codes by Robust Nonlinear Codes Results in a Reliability Improvement of Memories. IEEE/IFIP International Conference on Dependable Systems Networks, 2009. S. 514 – 523

Also Published As

Publication number Publication date
DE102010041680A1 (de) 2012-03-29
US20120079343A1 (en) 2012-03-29
US8631308B2 (en) 2014-01-14
CN102436851A (zh) 2012-05-02
CN102436851B (zh) 2014-08-20
DE102010041680B9 (de) 2014-09-18

Similar Documents

Publication Publication Date Title
DE102011085602B4 (de) Vorrichtung und Verfahren zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz
DE112011100371B4 (de) Verfahren, Vorrichtung und Computerprogrammprodukt zum Decodieren eines Codeworts
DE102015201384A1 (de) Vorrichtung und Verfahren zum Verbessern der Datenspeicherung durch Dateninvertierung
DE102017103347B4 (de) Verarbeitung von daten in speicherzellen eines speichers
DE2260850A1 (de) Fehlerkorrektursystem
DE102010041680B4 (de) Vorrichtung und Verfahren zum Bestimmen einer Position eines 1-Bit-Fehlers in einer codierten Bitsequenz, Vorrichtung und Verfahren zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz und Decodierer und Verfahren zum Decodieren einer fehlerhaften, codierten Bitsequenz
DE102011087634B9 (de) Vorrichtung und verfahren zum erfassen eines fehlers in einem codierten binärwort
DE112011101852B4 (de) Decodieren von LDPC-Code
DE102005022107B9 (de) Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge
DE102014215252A1 (de) Wirksame fehlerkorrektur von mehrbitfehlern
DE102011087457A1 (de) Vorrichtung und verfahren zum erfassen eines fehlers in einer mehrzahl von codierten binärwörtern, die durch einen fehlerkorrekturcode codiert sind
DE102020110787B3 (de) Schaltung und verfahren zum kodieren oder dekodieren eines datenworts
DE3786853T2 (de) Gerät zur Erkennung und Klassifizierung von Steuerwortfehlern.
DE102013222136A1 (de) Schaltung und Verfahren für die Mehr-Bit-Korrektur
DE102013219088B9 (de) Schaltungsanordnung und Verfahren zur Realisierung von Prüfbitkompaktierung für Cross-Parity-Codes
DE102011080659B4 (de) Vorrichtung und verfahren zum testen einer zu testenden schaltung
DE102016104012A1 (de) Verarbeitung eines Datenworts
DE102019113970B4 (de) Erkennung von adressfehlern
EP1832981B1 (de) Fehlerkorrektur- und Fehlererfassungsverfahren zum Auslesen von gespeicherten Informationsdaten und Speichersteuereinrichtung dafür
DE102014114157B4 (de) Verfahren zur Datenverarbeitung zum Ermitteln, ob bei einer Ausführung eines Programms ein Fehler aufgetreten ist und Datenverarbeitungsanordnungen zum Erzeugen von Programm-Code
DE102018126685B3 (de) Verarbeitung von Daten
DE102015121646B4 (de) Fehlerkorrektur
DE102013112020B4 (de) Verfahren und Vorrichtung zum Erkennen von Bitfehlern
EP1579230B1 (de) Vorrichtung und verfahren zur bildung einer signatur
DE102015118668B4 (de) Fehlerkorrektur

Legal Events

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

Effective date: 20141230

R082 Change of representative