DE102005022107B9 - Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge - Google Patents

Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge Download PDF

Info

Publication number
DE102005022107B9
DE102005022107B9 DE102005022107.6A DE102005022107A DE102005022107B9 DE 102005022107 B9 DE102005022107 B9 DE 102005022107B9 DE 102005022107 A DE102005022107 A DE 102005022107A DE 102005022107 B9 DE102005022107 B9 DE 102005022107B9
Authority
DE
Germany
Prior art keywords
sub
bit
matrix
syndrome
array
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE102005022107.6A
Other languages
English (en)
Other versions
DE102005022107B4 (de
DE102005022107A1 (de
Inventor
Rainer Göttfert
Berndt Gammel
Oliver Kniffler
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 DE102005022107.6A priority Critical patent/DE102005022107B9/de
Priority to FR0604028A priority patent/FR2885708B1/fr
Priority to US11/383,143 priority patent/US7721177B2/en
Publication of DE102005022107A1 publication Critical patent/DE102005022107A1/de
Application granted granted Critical
Publication of DE102005022107B4 publication Critical patent/DE102005022107B4/de
Publication of DE102005022107B9 publication Critical patent/DE102005022107B9/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

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

Abstract

In einer Vorrichtung zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge wird eine Kontrollmatrix (H) verwendet, die eine vordefinierte Zeilenanzahl und eine vordefinierte Spaltenanzahl aufweist. Die Kontrollmatrix (H) umfasst eine Mehrzahl von quadratischen Teilmatrizen (A0, ..., A3), die eine Teilmatrixzeilenanzahl und eine Teilmatrixspaltenanzahl haben, die der vordefinierten Zeilenanzahl oder der vordefinierten Spaltenanzahl der Kontrollmatrix (A) entspricht. Die Vorrichtung zum Bestimmen umfasst dann eine Einrichtung (102) zum Empfangen einer Bitfolge sowie eine Einrichtung (104) zum Ermitteln eines Syndroms unter Verwendung der Kontrollmatrix (H) und der empfangenen Bitfolge (y). Ferner umfasst die Vorrichtung eine Einrichtung (106) zum Feststellen einer Position (r) eines Bitfehlers in der empfangenen Bitfolge (y), wobei die Einrichtung zum Feststellen (106) ausgebildet ist, um in dem Syndrom ein Syndrombit und eine Syndrombitgruppe zu identifizieren und wobei die Einrichtung (106) zum Feststellen ferner ausgebildet ist, um unter Verwendung einer Information über eine Position des Syndrombits oder der Syndrombitgruppe in dem Syndrom, eine Information über eine Beziehung zwischen dem Syndrombit und der Syndrombitgruppe und einer Teilmatrixzeilenanzahl oder einer Teilmatrixspaltenanzahl einer Teilmatrix die Position des Bitfehlers in der empfangenen Bitfolge zu bestimmen.

Description

  • Die vorliegende Erfindung bezieht sich auf das technische Gebiet der Elektrotechnik und insbesondere bezieht sich die vorliegende Erfindung auf eine Vorrichtung und ein Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge.
  • Fehler, die bei der Übertragung von Daten oder beim Speichern von Daten auftreten, sollten möglicht korrigiert werden. Häufig kann davon ausgegangen werden, dass Fehler relativ selten auftreten. In diesem Fall ist es zweckmäßig, einen Codierungsalgorithmus zu implementieren, der möglichst viele Ein-Bit-Fehler in einer bestimmten Dateneinheit korrigieren kann.
  • Das Problem der Ein-Bit-Fehler-Korrigierbarkeit wird üblicherweise durch die Implementierung eines geeigneten Codierungsalgorithmus gelöst. Größtenteils werden dabei lineare Codes eingesetzt. Sie lassen sich besonders bequem in Hardware implementieren.
  • In einem systematischen Code werden k Informationsbits a1a2...ak um n – k Kontroll- oder Checkbits ak+1ak+2...an ergänzt, um ein Codewort c = a1a2...an der Länge n zu erzeugen. Hierdurch resultiert
    Figure DE102005022107B9_0002
  • Der Satz C aller Codeworte ist ein Unterraum von F n / 2, wobei F2 = {0, 1} das binäre Feld definiert. Falls C ⊆ F n / 2 ein linearer Unterraum von F n / 2 mit der Dimension k ist, dann spricht man von einem (binären systematischen) linearen (n, k)-Code. An dieser Stelle soll lediglich auf die binären Codes eingegangen werden. Insbesondere wird besonderes Augenmerk auf solche Codes gerichtet, bei denen n und k willkürlich sind. Aus Darstellungsgründen wird ein exemplarischer linearer (n, k)-Code mit n = 7 und k = 4 verwendet.
  • Ein linearer (n, k)-Code kann eindeutig beschrieben werden durch seine Parity-Check-Matrix H. Die Parity-Check-Matrix H ist eine binäre (n – k)×n Matrix mit Rang n – k. Sie hat die Form H = (A, In-k), wobei In-k die (n – k)×(n – k) Einheitsmatrix bezeichnet. Die Einheitsmatrix hat Einsen in der Hauptdiagonale und sonst Nullen. Der Zeilenvektor c ∊ F n / 2 ist ein Codewort dann und nur dann wenn Gleichung (1) HcT = 0 (1) gilt. Hierin bezeichnet cT die Transponierte von c. Falls c ein Zeilenvektor ist, dann ist cT ein Spaltenvektor.
  • Im Folgenden wird die übliche Nomenklatur übernommen. Falls v = (v0, v1, ..., vn-1) ein Zeilenvektor ist, dann bezeichnet die Transponierte vT von v den entsprechenden Spaltenvektor
    Figure DE102005022107B9_0003
  • In diesem Zusammenhang gelten v ∊ F n / 2 und vT ∊ F n / 2. Weiterhin gilt, wenn A eine m×n-Matrix ist, dass dann die Transponierte von A, bezeichnet durch AT, die n×m-Matrix ist, deren j-te Spalte die Transponierte der j-Zeile von A für 1 ≤ j ≤ m ist. Z. B., falls
    Figure DE102005022107B9_0004
  • Weiterhin wird in dieser Beschreibung das Zeichen „+” als Kennzeichnung einer XOR-Operation verwendet. Dies bedeutet, dass 0 + 0 = 0, 0 + 1 = 1, 1 + 0 = 1 und 1 + 1 = 0 gilt.
  • Als Beispiel wird ein linearer (7, 4)-Code verwendet, der durch seine Parity-Check-Matrix in Gleichung (2)
    Figure DE102005022107B9_0005
    gekennzeichnet ist. Hierbei ist anzumerken, dass die ersten vier Spalten von H durch die Matrix A gebildet werden, wogegen die letzten drei Spalten durch die Einheitsmatrix I3 gebildet werden. Es lässt sich zeigen, dass c = (1, 1, 0, 0, 1, 0, 0) ein Codewort ist, da HcT = (0, 0, 0)T den Nullvektor ergibt.
  • Die Codierung eines linearen Codes kann dabei wie folgt durchgeführt werden. Falls H = (A, In-k) die Parity-Check-Matrix eines binären linearen (n, k)-Codes ist, dann wird die k×n-Matrix G = (Ik, AT) als kanonische Generatormatrix des Codes bezeichnet. Die Codierung einer Nachricht a = a1a2...ak in das entsprechende Codewort c = a1a2...akak+1...an wird über eine Matrixmultiplikation aG = c realisiert. Äquivalent dazu ist auch:
    Figure DE102005022107B9_0006
  • Anhand des fortgesetzten Beispiels wird dies näher verdeutlicht. Für die Parity-Check-Matrix H aus Gleichung (2) lässt sich die entsprechende 4×7 Matrix
    Figure DE102005022107B9_0007
    als entsprechende Generatormatrix ermitteln.
  • Die Nachricht (a1, a2, a3, a4) ∊ F 4 / 2 wird durch c = (a1, a2, a3, a4)G = (a1, a2, a3, a4, a1 + a3 + a4, a1 + a2 + a3, a1 + a2 + a3) in das Codewort c codiert.
  • Äquivalent hierzu können bei gegebenen Informationsbits a1a2a3a4 die entsprechenden Kontrollbits gemäß
    Figure DE102005022107B9_0008
    berechnet werden.
  • Hierbei ist anzumerken, dass die Parity-Check-Matrix H aus Gleichung (2) gleich viele Einsen in jeder ihrer drei Zeilen hat. Dieses Merkmal ist für eine effiziente Hardware-Implementation des Codierungsschemas gewünscht. Dies resultiert daraus, dass die Berechnung von jedem von den n – k Kontrollbits gleich viele XOR-Operationen erfordert (d. h. die gleiche logische Tiefe hat). Eine andere gewünschte Eigenschaft ist die, dass H „dünn besetzt” ist. Eine binäre Matrix wird als „dünn besetzt” bezeichnet, wenn sie relativ wenige Einsen enthält.
  • Weiterhin kann das Decodieren wie folgt beschrieben werden, wobei x und y zwei binäre Vektoren darstellen. Die Hamming-Distanz d(x, y) zwischen x und y ist die Anzahl von Koordinaten, in denen sich x und x unterscheiden. Das Hamming-Gewicht w(x) von x ist die Anzahl von Koordinaten von x, die nicht Null sind.
  • Offensichtlich gilt daher w(x) = d(x, 0) und d(x, y) = w(x – y). Zum Beispiel wenn x = (0, 1, 0, 0, 0, 1) gilt, dann ist w(x) = 2.
  • Definition. Sei C ein Code. Die Anzahl
    Figure DE102005022107B9_0009
    wird Minimaldistanz von C bezeichnet.
  • Lemma 1. Die Minimaldistanz eines linearen Codes C ist das kleinste Hamminggewicht aus allen Nicht-Nullcodeworten. Daraus folgt
    Figure DE102005022107B9_0010
  • Theorem 1. Falls H die Parity-Check-Matrix eines linearen Codes ist, dann hat der Code die Minimaldistanz d dann und nur dann, wenn jede d – 1 Spalten von H linear unabhängig und einige d Spalten linear abhängig sind. Mit anderen Worten, die Minimaldistanz d ist gleich der kleinsten Anzahl von Spalten von H die sich zu 0 summieren.
  • Das vorstehende Beispiel wird an dieser Stelle weitergeführt: betrachtet wird die Parity-Check-Matrix H aus Gleichung (2). Jegliche drei Spalten von H sind linear unabhängig, wohingegen vier Spalten linear abhängig sein müssen. Auf diese Weise hat der zugehörige lineare Code eine Minimaldistanz von d = 4.
  • Theorem 2. Ein linearer Code mit gerader Minimaldistanz d kann gleichzeitig (d – 2)/2 Fehler korrigieren und d/2 Fehler erkennen.
  • Angenommen, eine Nachricht a ∊ F k / 2 wird in ein Codewort c ∊ F n / 2 codiert, welches dann über einen gestörten Kanal übertragen (oder in einem Speicher gespeichert) wird. Der Vektor y ∊ F n / 2 wird empfangen. Falls während der Übertragung (oder der Speicherung) weniger als ⌊(d – 1)/2⌋ Fehler auftreten, dann kann das korrekte Codewort c aus y rekonstruiert werden. An dieser Stelle wird das sogenannte Syndrom von y hilfreich.
  • Definition. Sei H die Parity-Check-Matrix eines linearen (n, k)-Codes C. Dann wird der Spaltenvektor S(y) = HyT der Länge n – k Syndrom von y ∊ F n / 2 genannt.
  • Durch die Definition der Parity-Check-Matrix H (vergleiche Gleichung (1)) ist y ∊ F n / 2 ein Codewort dann und nur dann wenn S(y) der Nullvektor ist.
  • Theorem 3. Für einen binären Code ist das Syndrom gleich der Summe der Spalten von H, bei denen die Fehler aufgetreten sind.
  • Hierdurch wird S(y) Syndrom genannt, da es die Symptome von Fehlern gibt.
  • Speziell soll dabei auf die Einfehlerkorrektur eingegangen werden. In diesem Fall nimmt das obige Theorem eine einfache Form an:
    Theorem 4. Ein Einbitfehler tritt auf dann und nur dann, wenn das Syndrom gleich einer Spalte von H ist. Die Position dieser Spalte entspricht der Fehlerposition.
  • Am fortgesetzten Beispiel wird dies wieder demonstriert: berücksichtigt wird wieder der lineare (7, 4)-Code, der durch die Parity-Check-Matrix
    Figure DE102005022107B9_0011
    definiert wird. Angenommen wird, dass der Vektor y = (1, 0, 1, 0, 0, 0, 1) empfangen wird. Das Syndrom berechnet sich wie folgt:
    Figure DE102005022107B9_0012
  • Das Syndrom S(y) stimmt mit dem zweiten Spaltenvektor von H überein und zeigt damit an, dass die zweite Koordinate von y fehlerhaft ist. Hierdurch lässt sich das korrekte Codewort c = (1, 1, 1, 0, 0, 0, 1) und die Informationsbits zu 1110 ermitteln.
  • Die unmittelbarste und auch Hardware-sparsamste Implementierung eines linearen Codes geschieht auf dem Wege der sogenannten Kontrollmatrix (Parity-Check-Matrix) des Codes. Die Matrixeinträge sind Bits. Für eine Einbitfehlerkorrektur ist es möglich, die Matrix so aufzubauen, dass jede Spalte der Matrix beispielsweise genau drei Einsen enthält, sonst Nullen. Eine Ausnahme bilden lediglich die letzten Spalten der Kontrollmatrix, die vorzugsweise eine Einheitsmatrix bilden und jeweils nur eine Eins enthalten brauchen).
  • Die herkömmlichen Ansätze der Einbitfehlerkorrektur weisen jedoch den Nachteil auf, dass unter Zuhilfenahme des Syndroms und der Kontrollmatrix ein Vergleich erfolgen muss, welche Spalte der Kontrollmatrix mit dem Syndrom übereinstimmt, um hieraus die Position des aufgetretenen Bitfehlers bestimmen zu können.
  • Die US 5,099,483 zeigt ein Bauelement zum Korrigieren von Fehlern durch einen Lang-Distanzcode, wenn zur Codierung eines Lang-Distanzcodes ein Code verwendet wird, der fähig ist, Fehler bis zu einem Maximum von t-Worten zu korrigieren, wobei ein Wort aus w-Bits zusammengesetzt ist. Hierbei wird ein Koeffizient für jeden Term für einen Fehlerpositionspolynom durch das Ersetzen von Datenworten A(i+j=2) für jedes Element qij von einer Matrix erhalten, wobei die Matrix t Zeilen und (t + 1) Spalten hat. A0 bis A(2t-1) repräsentiert Syndrome oder Fehlerpositionen, wobei eine linksherum Elementartransformation über die Matrix ausgeführt wird, um jeden Koeffizienten von jedem Term des Fehlerpositionspolynoms oder Fehlermusters von Syndromen zu erhalten, wobei das Bauelement eine Fehlerpositionsschaltung zum Erhalten der Fehlerpositionen hat, wobei ein Koeffizientenberechnungsschaltkreis und ein Fehlermusterberechnungsschaltkreis verwendet wird.
  • In Hamming, R. W.: Error Detecting and Error Correcting Codes. The Bell System Technical Journal, Vol. XXIX, 1950, wird ein Einfehlerkorrekturcode vorgestellt, nach welchem das Syndrom in binärer Schreibweise die Bitfehlerposition angibt.
  • Es ist daher die Aufgabe der vorliegenden Erfindung ein Schema zu schaffen, das es ermöglicht, die Position eines Bitfehlers in einer empfangenen Bitfolge gegenüber dem Stand der Technik einfacher, d. h. Hardware-effizienter und/oder numerisch einfacher, zu bestimmen.
  • Diese Aufgabe wird durch eine Vorrichtung gemäß Anspruch 1, ein Verfahren gemäß Anspruch 8, eine Vorrichtung gemäß Anspruch 9, ein Verfahren gemäß Anspruch 10 und eine Kontrollmatrix gemäß Anspruch 11 gelöst.
  • Die vorliegende Erfindung schafft eine Vorrichtung zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge unter Verwendung einer Kontrollmatrix, wobei die Kontrollmatrix eine vordefinierte Zeilenanzahl und eine vordefinierte Spaltenanzahl aufweist, wobei die Kontrollmatrix eine Mehrzahl von quadratischen Teilmatrizen umfasst, die eine Teilmatrizenzeilenanzahl und eine Teilmatrizenspaltenanzahl haben, wobei die Teilmatrixzeilenanzahl der vordefinierten Zeilenanzahl oder die Teilmatrixspaltenanzahl der vordefinierten Spaltenanzahl der Kontrollmatrix entspricht, wobei jede Teilmatrix Teilmatrixeinträge umfasst, die bezüglich einer ersten Teilmatrixzeile oder einer ersten Teilmatrixspalte zirkulant angeordnet sind, wobei in jeder Teilmatrixzeile oder in jeder Teilmatrixspalte ein Bit und eine Bitgruppe angeordnet sind und wobei in einer ersten Teilmatrix das Bit und die Bitgruppe in einer ersten vorbestimmten Beziehung zueinander angeordnet sind, und in einer zweiten Teilmatrix das Bit und die Bitgruppe in einer zweiten vorbestimmten Beziehung zueinander angeordnet sind, wobei sich die erste vorbestimmte Beziehung von der zweiten vorbestimmten Beziehung unterscheidet, und wobei die Vorrichtung zum Bestimmen folgende Merkmale umfasst:
    eine Einrichtung zum Empfangen einer Bitfolge;
    eine Einrichtung zum Ermitteln eines Syndroms unter Verwendung der Kontrollmatrix und der empfangenen Bitfolge; und
    einer Einrichtung zum Feststellen einer Position eines Bitfehlers in der empfangenen Bitfolge, wobei die Einrichtung zum Feststellen ausgebildet ist, um in dem Syndrom ein Syndrombit und eine Syndrombitgruppe zu identifizieren, und wobei die Einrichtung zum Feststellen ferner ausgebildet ist, um unter Verwendung einer Information über eine Position des Syndrombits oder der Syndrombitgruppe in dem Syndrom, einer Information über eine Beziehung zwischen dem Syndrombit und der Syndrombitgruppe und der Teilmatrixzeilenanzahl oder der Teilmatrixspaltenanzahl die Position des Bitfehlers der empfangenen Bitfolge zu bestimmen.
  • Ferner schafft die vorliegende Erfindung ein Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge unter Verwendung einer Kontrollmatrix, wobei die Kontrollmatrix eine vordefinierte Zeilenanzahl und eine vordefinierte Spaltenanzahl aufweist, wobei die Kontrollmatrix eine Mehrzahl von quadratischen Teilmatrizen umfasst, die eine Teilmatrizenzeilenanzahl und eine Teilmatrizenspaltenanzahl haben, wobei die Teilmatrixzeilenanzahl der vordefinierten Zeilenanzahl oder die Teilmatrixspaltenanzahl der vordefinierten Spaltenanzahl der Kontrollmatrix entspricht, wobei jede Teilmatrix Teilmatrixeinträge umfasst, die bezüglich einer ersten Teilmatrixzeile oder einer ersten Teilmatrixspalte zirkulant angeordnet sind, wobei in jeder Teilmatrixzeile oder in jeder Teilmatrixspalte ein Bit und eine Bitgruppe angeordnet sind und wobei in einer ersten Teilmatrix das Bit und die Bitgruppe in einer ersten vorbestimmten Beziehung zueinander angeordnet sind, und in einer zweiten Teilmatrix das Bit und die Bitgruppe in einer zweiten vorbestimmten Beziehung zueinander angeordnet sind, wobei sich die erste vorbestimmte Beziehung von der zweiten vorbestimmten Beziehung unterscheidet, und wobei das Verfahren zum Bestimmen folgende Schritte umfasst:
    Empfangen einer Bitfolge;
    Ermitteln eines Syndroms unter Verwendung der Kontrollmatrix und der empfangenen Bitfolge; und
    Feststellen einer Position eines Bitfehlers in der empfangenen Bitfolge, derart, dass in dem Syndrom ein Syndrombit und eine Syndrombitgruppe zu identifiziert wird, um unter Verwendung einer Information über eine Position des Syndrombits oder der Syndrombitgruppe in dem Syndrom, einer Information über eine Beziehung zwischen dem Syndrombit und der Syndrombitgruppe und der Teilmatrixzeilenanzahl oder der Teilmatrixspaltenanzahl die Position des Bitfehlers der empfangenen Bitfolge zu bestimmen.
  • Weiterhin schafft die vorliegende Erfindung eine Vorrichtung zum Bereitstellen einer Kontrollmatrix zur Ermittlung einer Position eines Bitfehlers in einer Bitfolge mit folgenden Merkmalen:
    einer Einrichtung zum Bestimmen einer ersten quadratischen Teilmatrix, wobei die erste Teilmatrix entweder in jeder Teilmatrixzeile oder in jeder Teilmatrixspalte ein Bit und eine Bitgruppe aufweist, wobei die Teilmatrix Teilmatrixeinträge umfasst, die bezüglich einer ersten Teilmatrixzeile oder einer ersten Teilmatrixspalte zirkulant angeordnet sind und wobei das Bit und die Bitgruppe in einer ersten vorbestimmten Beziehung zueinander angeordnet sind;
    einer Einrichtung zum Ermitteln einer quadratischen zweiten Teilmatrix, wobei die zweite Teilmatrix entweder in jeder Teilmatrixzeile oder in jeder Teilmatrixspalte ein Bit und eine Bitgruppe aufweist, wobei die zweite Teilmatrix Teilmatrixeinträge umfasst, die bezüglich einer ersten Teilmatrixzeile oder einer ersten Teilmatrixspalte zirkulant angeordnet sind und wobei das Bit und die Bitgruppe in einer zweiten vorbestimmten Beziehung zueinander angeordnet sind, wobei sich die erste vorbestimmte Beziehung von der zweiten vorbestimmten Beziehung unterscheidet; und
    einer Einrichtung zum Zusammenfügen der ersten und zweiten Teilmatrix zu einer Kontrollmatrix, wobei die Kontrollmatrix eine Zeilenanzahl umfasst, die einer Teilmatrixzeilenanzahl der ersten oder zweiten Teilmatrix entspricht oder wobei die Kontrollmatrix eine Spaltenanzahl umfasst, die einer Teilmatrixspaltenanzahl der ersten oder zweiten Teilmatrix entspricht.
  • Außerdem schafft die vorliegende Erfindung ein Verfahren zum Bereitstellen einer Kontrollmatrix zur Ermittlung einer Position eines Bitfehlers in einer Bitfolge mit folgenden Schritten:
    Bestimmen einer ersten quadratischen Teilmatrix, derart, dass die erste Teilmatrix entweder in jeder Teilmatrixzeile oder in jeder Teilmatrixspalte ein Bit und eine Bitgruppe aufweist, wobei die Teilmatrix Teilmatrixeinträge umfasst, die bezüglich einer ersten Teilmatrixzeile oder einer ersten Teilmatrixspalte zirkulant angeordnet werden und wobei das Bit und die Bitgruppe in einer ersten vorbestimmten Beziehung zueinander angeordnet werden;
    Ermitteln einer quadratischen zweiten Teilmatrix, derart, dass die zweite Teilmatrix entweder in jeder Teilmatrixzeile oder in jeder Teilmatrixspalte ein Bit und eine Bitgruppe aufweist, wobei die zweite Teilmatrix Teilmatrixeinträge umfasst, die bezüglich einer ersten Teilmatrixzeile oder einer ersten Teilmatrixspalte zirkulant angeordnet werden und wobei das Bit und die Bitgruppe in einer zweiten vorbestimmten Beziehung zueinander angeordnet werden, wobei sich die erste vorbestimmte Beziehung von der zweiten vorbestimmten Beziehung unterscheidet; und
    Zusammenfügen der ersten und zweiten Teilmatrix zu einer Kontrollmatrix, wobei die Kontrollmatrix eine Zeilenanzahl umfasst, die einer Teilmatrixzeilenanzahl der ersten oder zweiten Teilmatrix entspricht oder wobei die Kontrollmatrix eine Spaltenanzahl umfasst, die einer Teilmatrixspaltenanzahl der ersten oder zweiten Teilmatrix entspricht.
  • Schließlich schafft die vorliegende Erfindung eine Kontrollmatrix zum Bestimmung einer Position eines Bitfehlers in einer Bitfolge, die folgenden Merkmalen aufweist:
    eine erste quadratische Teilmatrix, wobei die erste Teilmatrix entweder in jeder Teilmatrixzeile oder in jeder Teilmatrixspalte ein Bit und eine Bitgruppe aufweist, wobei die Teilmatrix Teilmatrixeinträge umfasst, die bezüglich einer ersten Teilmatrixzeile oder einer ersten Teilmatrixspalte zirkulant angeordnet sind und wobei das Bit und die Bitgruppe in einer ersten vorbestimmten Beziehung zueinander angeordnet sind;
    eine zweite quadratische Teilmatrix, wobei die zweite Teilmatrix entweder in jeder Teilmatrixzeile oder in jeder Teilmatrixspalte ein Bit und eine Bitgruppe aufweist, wobei die zweite Teilmatrix Teilmatrixeinträge umfasst, die bezüglich einer ersten Teilmatrixzeile oder einer ersten Teilmatrixspalte zirkulant angeordnet sind und wobei das Bit und die Bitgruppe in einer zweiten vorbestimmten Beziehung zueinander angeordnet sind, wobei sich die erste vorbestimmte Beziehung von der zweiten vorbestimmten Beziehung unterscheidet; und
    wobei die erste Teilmatrix und zweite Teilmatrix derart in der Kontrollmatrix angeordnet sind, dass die Kontrollmatrix eine Zeilenanzahl aufweist, die einer Teilmatrixzeilenanzahl der ersten oder zweiten Teilmatrix entspricht oder dass die Kontrollmatrix eine Spaltenanzahl aufweist, die einer Teilmatrixspaltenanzahl der ersten oder zweiten Teilmatrix entspricht.
  • Der vorliegenden Erfindung liegt die Erkenntnis zugrunde, dass durch eine spezielle Ausgestaltung der Kontrollmatrix bereits aus einer Anordnung von Bits bzw. Bitgruppen in dem Syndrom die Position eines in einer Bitfolge aufgetretenen Bitfehlers berechnet werden kann, ohne durch einen numerisch bzw. Hardware-technisch aufwendigen Vergleich des Syndroms mit der Kontrollmatrix diejenige Spalte oder Zeile der Kontrollmatrix herauszufinden, die mit dem Syndrom übereinstimmt. Wird dann die Kontrollmatrix derart ausgelegt, dass die Bestimmung des Bitfehlers bzw. der Bitfehlerposition in der Bitfolge bereits aus dem Syndrom erkennbar ist, kann beispielsweise durch die Anwendung einer einfachen Formel, die eine Multiplikation und eine Addition umfasst, diese Bitfehlerposition bestimmt werden. Hierzu ist dann vorzugsweise die Position eines Syndrombits bzw. eines ersten Bits einer Syndrombitgruppe, eine Information über eine Beziehung zwischen dem Syndrombit und der Syndrombitgruppe sowie eine Information über eine Teilmatrixspaltenanzahl oder eine Teilmatrixzeilenanzahl zu verwenden.
  • Die vorliegende Erfindung bietet den Vorteil, dass nun nicht mehr ein numerisch hoher Aufwand oder ein Hardware-technisch hoher Aufwand notwendig ist, um festzustellen, welche Spalte der Kontrollmatrix mit dem Syndrom übereinstimmt, um hieraus die Position des Bitfehlers in einer empfangenen Bitfolge zu ermitteln. Vielmehr kann alleine aus der Kenntnis des Syndroms, d. h. aus der Kenntnis einer Lage des Syndrombits in dem Syndrom bzw. eines ersten Bits der Syndrombitgruppe, einer Beziehung vorzugsweise einem Abstand, zwischen dem Syndrombit und der Syndrombitgruppe und einer Information über eine Zeilen- bzw. Spaltenanzahl einer Teilmatrix der Kontrollmatrix verwendet werden, um beispielsweise durch eine Anwendung einer einfachen Gleichung mit einer Addition und einer Multiplikation direkt als Rechenergebnis diejenige Position zu erhalten, an der der Bitfehler aufgetreten ist. Dies resultiert insbesondere daraus, dass die Kontrollmatrix günstig ausgestaltet wird.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend anhand der beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1 ein Blockschaltbild eines Ausführungsbeispiels der erfindungsgemäßen Vorrichtung zum Bestimmen einer Position eines Bitfehlers;
  • 2 ein erstes Ausführungsbeispiel einer erfindungsgemäßen Kontrollmatrix; und
  • 3 ein zweites Ausführungsbeispiel einer erfindungsgemäßen Kontrollmatrix.
  • In den nachfolgenden Ausführungen werden gleiche oder ähnliche Elemente mit gleichen oder ähnlichen Bezugszeichen versehen, wobei auf eine wiederholte Beschreibung dieser Elemente verzichtet wird.
  • Die 1 zeigt ein Blockschaltbild eines Ausführungsbeispiels der erfindungsgemäßen Vorrichtung zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge. Hierbei umfasst die Vorrichtung eine Einrichtung 102 zum Empfangen einer Bitfolge, eine Einrichtung 104 zum Ermitteln eines Syndroms S(y) sowie eine Einrichtung 106 zum Feststellen einer Position eines Bitfehlers in einer empfangenen Bitfolge. Die Einrichtung 102 zum Empfangen einer Bitfolge kann hierbei entweder aus einem Nachrichtenkanal oder aus einem Speicher eine Bitfolge y empfangen und diese Bitfolge y der Einrichtung 104 zum Ermitteln eines Syndroms S(y) zuführen. Die Einrichtung 104 zum Ermitteln kann dabei unter Verwendung der von der Einrichtung 102 zum Empfangen empfangenen Bitfolge y und der Kontrollmatrix H das Syndrom S(y) ermitteln. Aus diesem Syndrom S(y) kann nachfolgend die Einrichtung 106 zum Feststellen die Position des Bitfehlers ermitteln, indem lediglich das Syndrom S(y) entsprechend ausgewertet wird, wie es nachfolgend noch detaillierter beschrieben wird. Als Ergebnis kann dann die Einrichtung 106 zum Feststellen eine Position r ausgeben, die diejenige Position in der Bitfolge y kennzeichnet, die fehlerbehaftet ist.
  • Zum Aufbau der Kontrollmatrizen ist anzumerken, dass es für eine Einbitfehlerkorrekturfähigkeit notwendig ist, dass Spalten (oder Zeilen) in der Kontrollmatrix paarweise verschieden sind. Zur Fehlerkorrektur wird aus dem empfangenen oder zu überprüfenden Bitvektor mit Hilfe er Kontrollmatrix der sogenannte Syndromvektor (oder kurz das Syndrom) berechnet. Wenn das Syndrom lauter Nullen enthält, dann ist kein Fehler passiert. Wenn das Syndrom identisch mit einer Spalte der Kontrollmatrix ist, dann ist genau ein Fehler passiert. Die Position der mit dem Syndromvektor identischen Spalte der Kontrollmatrix ist auch die Position des aufgetretenen Einbitfehlers. Für die Fehlerkorrektur sollte dann als erstes festgestellt werden, ob das erhaltene Syndrom identisch mit einer Spalte der Kontrollmatrix ist und wenn ja, zweitens die Position dieser Spalte ausfindig zu machen. Dieser, an sich bekannte Ansatz, kann dann erfindungsgemäß dahingehend erweitert werden, dass in der vorgeschlagenen Familie von Einbitfehler korrigierenden linearen Codes die Spalten der Kontrollmatrix oder der Parity-Check-Matrix in einer speziellen Weise platziert werden. Hierbei wird die Parity-Check-Matrix in quadratische Teilmatrizen (oder Submatrizen) unterteilt, indem eine entsprechende Zahl von Spalten von H zusammengefasst wird. Die entstehenden quadratischen Teilmatrizen sind zirkulant (bzw. zyklisch).
  • Eine zirkulante Matrix der Ordnung n ist eine quadratische n×n-Matrix, die komplett durch ihre erste Zeile (oder ihre erste Spalte) bestimmt ist. In jeder nachfolgenden Zeile werden die Elemente eine Position nach rechts verschoben, wobei bei einem Erreichen eines Endes der Matrix ein Umbruch derart erfolgt, dass die ersten Elemente in dieser Zeile durch die verschobenen Werte gefüllt werden. Ein Beispiel einer zirkulanten Matrix ist nachfolgend wiedergegeben:
    Figure DE102005022107B9_0013
    wobei diese Matrix eine zirkulante Matrix der Ordnung 5 ist.
  • Jeder Code der vorgeschlagenen Familie von Codes ist definiert durch eine (n – k)×n-Parity-Check-Matrix H, dessen Spalten alle exakt drei Einsen enthalten, ausgenommen die letzten n – k Spalten, die lediglich eine Eins enthalten. Es wird nochmal in Erinnerung gerufen, dass die Parity-Check-Matrix H die Form H = (A, In-k) hat, wobei A eine (n – k)×k-Matrix und In-k die (n – k)×(n – k)-Einheitsmatrix ist.
  • Mit anderen Worten ausgedrückt haben die ersten k Spalten von H ein Hamming-Gewicht von 3, die verbleibenden n – k Spalten ein Hamming-Gewicht von 1. Die Spalten sollten eindeutig sein, d. h. die selbe Spalte sollte nicht zweimal in H auftreten.
  • Codes dieser Art sind in der Literatur als Hsiao Codes bekannt [M. Y. Hsiao: A Class of Optimal Minimum Odd-weight-column SEC-DED Codes, IBM J. Res. Dev. 14, 395–401 (1970); C. L. Chen, M. Y., Hsiao: Error-Correcting Codes for Semiconductor memory Applications: A State-of-the Art Review, IBM J. Res. Dev. 28, 124–134 (1984).
  • Die Tatsache, dass die Spalten der Parity-Check-Matrix eindeutig sind und ein Hamming-Gewicht von 1 oder 3 haben, garantiert bereits, dass die geringste Zahl von Spalten, die sich zu 0 addiert 4 ist, also der Code eine Minimaldistanz von 4 hat. Folglich kann der Code jeden Einbitfehler korrigieren.
  • In einem Ausführungsbeispiel der vorliegenden Erfindung wird als Spalten in der Parity-Check-Matrix nicht nur eindeutige Spalten mit der Hamming-Distanz 3 verwendet, sondern auch
    • (i) solche Spalten, deren Bits ein einfaches Muster erfüllen, und wobei
    • (ii) die Platzierung von Spalten in einer kanonischen Ordnung durchgeführt wird.
  • Diese Maßnahmen erleichtern den Prozess des
    • (i) Erkennens, ob ein Einbitfehler aufgetreten ist oder nicht, und des
    • (ii) Bestimmens derjenigen Position, an der der Fehler aufgetreten ist.
  • Betrachtet wird exemplarisch die Parity-Check-Matrix, die in 2 dargestellt ist und die eine 8×40-Matrix ist. Die Matrix H1 definiert einen linearen (40, 32, 4) Code. Die Länge jedes Codewortes ist 40, der Nachrichtenblock hat Länge 32 und der Code hat eine Minimaldistanz von 4.
  • Die ersten acht Spalten von H1 bilden ein zirkulante 8×8-Matrix A0. Alle Spalten von A0 haben gemeinsam, dass sie drei aufeinanderfolgende Einsen haben. Hierbei wird jede Spalte in einer zirkularen Weise betrachtet, d. h. beispielsweise Spalte 7 hat ebenfalls drei aufeinanderfolgende Einsen. Der Nachfolger der zwei Einsen am Ende ist die Eins, die in der ersten Zeile erscheint.
  • Die Spalten Nummer 9 bis 16 bilden eine andere 8×8-Matrix, d. h. A1. Alle Spalten von A1 haben gemeinsam, dass sie eine isolierte Eins enthalten, auf die eine Null folgt, auf welche wiederum zwei aufeinanderfolgende Einsen folgen.
  • Die Spalten Nummer 17 bis 24 bilden eine weitere zirkulante Matrix A2. Die Spalten von A2 haben gemeinsam, dass eine isolierte Eins durch zwei Nullen gefolgt wird, auf welche wiederum zwei aufeinanderfolgende Einsen folgen.
  • Die Spalten Nummer 25 bis 32 bilden eine zirkulante Matrix A3, deren Spalten gemeinsam haben, dass eine isolierte Eins durch drei Nullen gefolgt wird, auf welche wiederum zwei Einsen folgen.
  • Spalten 33 bis 40 bilden die Einheitsmatrix. Jede Spalte enthält eine einzelne Eins und sieben Nullen.
  • Ferner wird angenommen, dass ein 40-Bit-Tuple v gegeben ist. Das Syndrom S(v) = H1vT wird nachfolgend berechnet. Wenn gilt S(v) = 0, dann kann geschlossen werden, dass kein Fehler aufgetreten ist. Angenommen, es resultiert ein Syndrom der Form
    Figure DE102005022107B9_0014
  • In diesem Fall lässt sich unmittelbar erkennen, dass der Syndromvektor die Regel erfüllt, die verwendet wurde, um die Spalten der Parity-Check-Matrix zu bilden. Die isolierte Eins wird durch eine Null gefolgt, woraus gefolgert werden kann, dass der Spaltenvektor S(v) in der Submatrix A1 erscheint. Die isolierte Eins erscheint in Zeile Nummer 3, woraus geschlossen werden kann, dass S(v) die dritte Spalte von A1 ist. Es folgt, dass der Spaltenvektor S(v) identisch mit der Spalten Nummer 1·8 + 3 = 11 von der Parity-Check-Matrix H1 ist. Dies bedeutet, dass das elfte Bit von v fehlerhaft ist und korrigiert werden sollte.
  • Im Allgemeinen liest sich die Fehlererkennungsregel wie folgt: wenn das Syndrom eine Form hat, in der eine isolierte Eins in Zeile j (mit (1 ≤ j ≤ 8) steht und durch k Nullen (mit 0 < k < 3) gefolgt wird, die wiederum durch zwei aufeinanderfolgende Einsen gefolgt werden und alle anderen Positionen Nullen haben, dann kann die Fehlerposition r durch r = k·8 + j berechnet werden. Wenn das Syndrom ein Vektor ist, der lediglich eine einzelne Eins in Zeile j hat, dann ist die Fehlerposition r durch r = 32 + j gegeben. Die Grundidee der vorliegenden Erfindung besteht somit darin, dass eine vorzugsweise verwendete Fehlerpositionsformel durch eine entsprechend einfache Logik in Hardware einfach umgesetzt werden kann. Dies sollte eine einfache Hardware-Implementation ermöglichen, um das Syndrom und (im Fall eines Einbitfehlers) die Korrektur dieser Fehler innerhalb eines CPU-Zyklus zu berechnen.
  • Es können weitere Beispiele bezüglich der Parity-Check-Matrix H1 in 2 gegeben werden.
  • Beispielsweise kann das 40-Bit-Tuple x = 00011000 10000001 01100100 01010000 10111010 betrachtet werden.
  • Das entsprechende Syndrom berechnet sich dann zu
  • Figure DE102005022107B9_0015
  • Als Schlussfolgerung ergibt sich, dass kein Fehler aufgetreten ist.
  • Weiterhin kann beispielsweise das 40-Bit-Tuple y = 00011000 10000001 01000100 01010000 10111010 betrachtet werden. Das entsprechende Syndrom berechnet sich zu
    Figure DE102005022107B9_0016
  • Das Syndrom hat die ”richtige” Form: die Fehlerposition ist r = 2·8 + 3 = 19. Die Bit Nummer 19 im y ist fehlerhaft. Das korrigierte 40-Bit-Tuple lautet deshalb c = 00011000 10000001 01100100 01010000 10111010.
  • Weiterhin kann beispielsweise das 40-Bit-Tuple z = 00011000 10100001 01100100 00010000 10111010 betrachtet werden. Das entsprechende Syndrom berechnet sich zu
    Figure DE102005022107B9_0017
  • Das Syndrom hat ein Hamming-Gewicht von 4, was bedeutet, dass mehr als nur ein Bit fehlerhaft ist.
  • Ferner kann beispielsweise das 40-Bit-Tuple w = 00000000 01000000 01000000 01000000 11000000 betrachtet werden. Das entsprechende Syndrom berechnet sich zu
    Figure DE102005022107B9_0018
  • Obwohl das Syndrom ein Hamming-Gewicht von 3 hat, hat es nicht die erforderliche Form einer isolierten Eins, die durch 0, 1, 2 oder drei Nullen gefolgt wird, auf welche wiederum zwei aufeinanderfolgende Einsen folgen und sonst lediglich Nullen in dem Syndrom auftreten. Dies bedeutet, dass ein Multi-Bit-Fehler aufgetreten ist.
  • Als zweites Anwendungsbeispiel kann die Kontrollmatrix (oder die Parity-Check-Matrix) H2 in 3 betrachtet werden. Die dort abgebildete Kontrollmatrix (Parity-Check-Matrix) definiert einen linearen (40, 30, 4)-Code. Die Codelänge beträgt 40, die Nachrichtenlänge 30 und die Minimumdistanz 4. Die Matrix H2 hat 10 Zeilen und 40 Spalten.
  • Die letzten 10 Spalten definieren die Einheitsmatrix. Die ersten 30 Spalten enthalten jeweils drei Einsen. Alle 30 Spalten haben folgendes gemeinsam: es kommen in ihnen die Teilfolge 101 vor (die Spalten sind dabei immer von oben nach unten zu lesen und zyklisch, d. h. der Nachfolger des zehnten Spalteneintrags ist der erste Spalteneintrag). Nach der Teilfolge 101 folgen entweder eine oder zwei oder drei Nullen, dann kommt die dritte Eins. Bei den Spalten im ersten Block, d. h. den Spalten 1 bis 10, folgt eine Null auf 101. Bei den Spalten des zweiten Blocks, den Spalten 11 bis 20, folgen zwei Nullen auf die Folge 101. Bei den Spalten des dritten Blocks, d. h. den Spalten 21 bis 30 folgen drei Nullen auf 101. Wenn j die Position der ersten Eins von der Folge 101 ist (1 ≤ j ≤ 10) und k die Anzahl der Nullen zwischen 101 und der dritten Eins (wobei k = 1, 2, 3 ist), dann ergibt sich die Position r der Spalte durch die Formel r = (k – 1)·10 + j
  • Wenn eine Spalte nur eine Eins enthält und diese in der j-ten Zeile ist, dann ist die Position dieser Spalte in H2 gegeben durch r = 30 + j.
  • Beispielsweise kann angenommen werden, dass für einen zu überprüfenden Vektor v das Syndrom
    Figure DE102005022107B9_0019
    resultiert. In diesem Fall ist j = 3 und k = 2. Es folgt, dass r = 10 + 3 = 13 gilt. Das Syndrom ist identisch mit der 13-ten Spalte der Matrix H2. In anderen Worten ausgedrückt bedeutet dies, dass das 13-te Bit von v fehlerhaft ist.
  • Weiterhin kann angenommen werden, dass das Syndrom gleich
    Figure DE102005022107B9_0020
    ist. Hier ist j = 8 und k = 3, woraus als Position für das fehlerhafte Bit eine Position von r = 20 + 8 = 28 resultiert.
  • Weiterhin kann angenommen werden, dass das Syndrom einen Wert von
    Figure DE102005022107B9_0021
    ergibt. Hierin ist j = 7 und die Fehlerposition r = 30 + j = 37. Das Syndrom ist identisch mit der 37-ten Spalte der Matrix H2.
  • Alternativ können auch Zeilen und Spalten der Kontrollmatrix vertauscht und das Syndrom als Zeilenvektor betrachtet werden, wodurch dann eine analoge Anpassung der jeweiligen Rechenvorschriften (Vertauschung von Zeilen und Spalten und entsprechend angepasste Matrixmultiplikationsoperationen) erforderlich ist, um die entsprechende Einbitfehlerkorrektur bewerkstelligen zu können.
  • Abhängig von den Gegebenheiten können die erfindungsgemäßen Verfahren in Hardware oder in Software implementiert werden. Die Implementierung kann auf einem digitalen Speichermedium, insbesondere einer Diskette oder CD mit elektronisch auslesbaren Steuersignalen erfolgen, die so mit einem programmierbaren Computersystem zusammenwirken können, dass das entsprechende Verfahren ausgeführt wird. Allgemein besteht die Erfindung somit auch in einem Computerprogrammprodukt mit einem auf einem maschinenlesbaren Träger gespeicherten Programmcode zur Durchführung des erfindungsgemäßen Verfahrens, wenn das Computerprogrammprodukt auf einem Rechner abläuft. Mit anderen Worten ausgedrückt, kann die Erfindung somit als ein Computerprogramm mit einem Programmcode zur Durchführung des Verfahrens realisiert werden, wenn das Computerprogramm auf einem Computer abläuft.
  • Bezugszeichenliste
  • 102
    Einrichtung zum Empfangen
    104
    Einrichtung zum Ermitteln
    106
    Einrichtung zum Feststellen
    y
    Empfangene Bitfolge
    H1, H2
    Kontrollmatrizen
    S(y)
    Syndrom
    r
    Position des fehlerhaften Bits in der Bitfolge
    A0...A3
    Teilmatrizen

Claims (10)

  1. Vorrichtung zum Bestimmen einer Position (r) eines Bitfehlers in einer Bitfolge (y) unter Verwendung einer Kontrollmatrix (H), wobei die Kontrollmatrix (H) eine vordefinierte Zeilenanzahl und eine vordefinierte Spaltenanzahl aufweist, wobei die Kontrollmatrix (H) eine Mehrzahl von quadratischen Teilmatrizen (A0, A1, A2, A3) aufweist, die eine Teilmatrizenzeilenanzahl und eine Teilmatrizenspaltenanzahl haben, wobei die Teilmatrixzeilenanzahl der vordefinierten Zeilenanzahl oder die Teilmatrixspaltenanzahl der vordefinierten Spaltenanzahl der Kontrollmatrix (H) entspricht, wobei jede Teilmatrix (A0, A1, A2, A3) Teilmatrixeinträge aufweist, die bezüglich einer ersten Teilmatrixzeile oder einer ersten Teilmatrixspalte zyklisch verschoben angeordnet sind, wobei in jeder Teilmatrixzeile oder in jeder Teilmatrixspalte ein Bit und eine Bitgruppe angeordnet sind und wobei in einer ersten Teilmatrix (A0) das Bit und die Bitgruppe in einer ersten vorbestimmten Beziehung zueinander angeordnet sind, und in einer zweiten Teilmatrix (A1) das Bit und die Bitgruppe in einer zweiten vorbestimmten Beziehung zueinander angeordnet sind, wobei sich die erste vorbestimmte Beziehung von der zweiten vorbestimmten Beziehung unterscheidet, und wobei die Vorrichtung zum Bestimmen folgende Merkmale umfasst: eine Einrichtung (102) zum Empfangen einer Bitfolge (y); eine Einrichtung (104) zum Ermitteln eines Syndroms (S(y)) unter Verwendung der Kontrollmatrix (H) und der empfangenen Bitfolge (y); und einer Einrichtung (106) zum Feststellen einer Position (r) eines Bitfehlers in der empfangenen Bitfolge (y), wobei die Einrichtung (106) zum Feststellen ausgebildet ist, um in dem Syndrom (S(y)) ein Syndrombit und eine Syndrombitgruppe zu identifizieren, und wobei die Einrichtung zum Feststellen ferner ausgebildet ist, um unter Verwendung einer Information über eine Position des Syndrombits oder der Syndrombitgruppe in dem Syndrom (S(y)), einer Information über eine Beziehung zwischen dem Syndrombit und der Syndrombitgruppe und der Teilmatrixzeilenanzahl oder der Teilmatrixspaltenanzahl die Position (r) des Bitfehlers der empfangenen Bitfolge (y) zu bestimmen; wobei die Einrichtung (106) zum Feststellen ausgebildet ist, um die Syndrombitgruppe derart zu identifizieren, dass die Syndrombitgruppe der Bitgruppe in einer Teilmatrixzeile oder einer Bitgruppe in einer Teilmatrixspalte entspricht; wobei die erste und zweite vorbestimmte Beziehung des Bits zu der Bitgruppe in einem Abstand zwischen dem Bit und der Bitgruppe besteht, wobei die Einrichtung (106) zum Feststellen ausgebildet ist, um zum Erhalten der Information über die Beziehung zwischen dem Syndrombit und der Syndrombitgruppe einen Abstand zwischen dem Syndrombit und der Syndrombitgruppe in dem Syndrom (S(y)) zu bestimmen.
  2. Vorrichtung zum Bestimmen gemäß Anspruch 1, die ferner folgendes Merkmal umfasst: eine Einrichtung zum Korrigieren eines Bitfehlers an der bestimmen Position (r) in der empfangenen Bitfolge (y).
  3. Vorrichtung gemäß Anspruch 1 oder 2, bei der die Einrichtung (106) zum Feststellen ferner ausgebildet ist, um unter Verwendung des Syndroms (S(y)) festzustellen, ob eine Mehrzahl von Bitfehlern in der Bitfolge (y) aufgetreten ist.
  4. Vorrichtung gemäß einem der Ansprüche 1–3, bei der das Bit in jeder der Teilmatrizen (A0, ..., A3) in der Hauptdiagonale angeordnet ist, wobei die Einrichtung (106) zum Feststellen ausgebildet ist, um diejenige Position als Position r eines aufgetretenen Bitfehlers zu bestimmen, die aus der Anwendung der Formel r = k·l + j ergibt, wobei k eine Variable ist, die sich auf den Abstand zwischen dem Syndrombit und der Syndrombitgruppe beziehet, wobei l eine Variable ist, die sich auf die Teilmatrixzeilenanzahl oder die Teilmatrixspaltenanzahl einer Teilmatrix bezieht und wobei j eine Variable ist, die sich auf einen Abstand des Syndrombits von einem ersten Bit des Syndroms bezieht.
  5. Vorrichtung gemäß einem der Ansprüche 1–3, bei der ein Bit der Bitgruppe in jeder der Teilmatrizen in der Hauptdiagonale angeordnet ist, wobei die Einrichtung (106) zum Feststellen ausgebildet ist, um diejenige Position r als Position eines aufgetretenen Bitfehlers zu bestimmen, die sich aus der Anwendung der Formel r = (k – 1)·l + j ergibt, wobei k eine Variable ist, die sich auf einen Abstand zwischen dem Syndrombit und der Syndrombitgruppe beziehet, wobei l eine Variable ist, die sich auf die Teilmatrixzeilenanzahl oder die Teilmatrixspaltenanzahl einer Teilmatrix (A0, ..., A3) bezieht und wobei j eine Variable ist, die sich auf einen Abstand zwischen einem ersten Bit der Syndrombitgruppe und dem Syndromanfang beziehet.
  6. Verfahren zum Bestimmen einer Position (r) eines Bitfehlers in einer Bitfolge (y) unter Verwendung einer Kontrollmatrix (H), wobei die Kontrollmatrix (H) eine vordefinierte Zeilenanzahl und eine vordefinierte Spaltenanzahl aufweist, wobei die Kontrollmatrix (H) eine Mehrzahl von quadratischen Teilmatrizen (A0, A1, A2, A3) aufweist, die eine Teilmatrizenzeilenanzahl und eine Teilmatrizenspaltenanzahl haben, wobei die Teilmatrixzeilenanzahl der vordefinierten Zeilenanzahl oder die Teilmatrixspaltenanzahl der vordefinierten Spaltenanzahl der Kontrollmatrix (H) entspricht, wobei jede Teilmatrix (A0, A1, A2, A3) Teilmatrixeinträge aufweist, die bezüglich einer ersten Teilmatrixzeile oder einer ersten Teilmatrixspalte zyklisch verschoben angeordnet sind, wobei in jeder Teilmatrixzeile oder in jeder Teilmatrixspalte ein Bit und eine Bitgruppe angeordnet sind und wobei in einer ersten Teilmatrix (A0) das Bit und die Bitgruppe in einer ersten vorbestimmten Beziehung zueinander angeordnet sind, und in einer zweiten Teilmatrix (A1) das Bit und die Bitgruppe in einer zweiten vorbestimmten Beziehung zueinander angeordnet sind, wobei sich die erste vorbestimmte Beziehung von der zweiten vorbestimmten Beziehung unterscheidet, und wobei das Verfahren zum Bestimmen folgende Schritte umfasst: Empfangen einer Bitfolge (y); Ermitteln eines Syndroms (S(y)) unter Verwendung der Kontrollmatrix (H) und der empfangenen Bitfolge (y); und Feststellen einer Position (r) eines Bitfehlers in der empfangenen Bitfolge (y), derart, dass in dem Syndrom (S(y)) ein Syndrombit und eine Syndrombitgruppe zu identifiziert wird, um unter Verwendung einer Information über eine Position des Syndrombits oder der Syndrombitgruppe in dem Syndrom (S(y)), einer Information über eine Beziehung zwischen dem Syndrombit und der Syndrombitgruppe und der Teilmatrixzeilenanzahl oder der Teilmatrixspaltenanzahl die Position (r) des Bitfehlers der empfangenen Bitfolge (y) zu bestimmen; wobei die Syndrombitgruppe derart identifiziert wird, dass die Syndrombitgruppe der Bitgruppe in einer Teilmatrixzeile oder einer Bitgruppe in einer Teilmatrixspalte entspricht; und wobei die erste und zweite vorbestimmte Beziehung des Bits zu der Bitgruppe in einem Abstand zwischen dem Bit und der Bitgruppe besteht, wobei zum Erhalten der Information über die Beziehung zwischen dem Syndrombit und der Syndrombitgruppe ein Abstand zwischen dem Syndrombit und der Syndrombitgruppe in dem Syndrom (S(y)) bestimmt wird.
  7. Vorrichtung zum Bereitstellen einer Kontrollmatrix zur Ermittlung einer Position (r) eines Bitfehlers in einer Bitfolge (y) mit folgenden Merkmalen: eine Einrichtung zum Bestimmen einer ersten quadratischen Teilmatrix (A0), wobei die erste Teilmatrix entweder in jeder Teilmatrixzeile oder in jeder Teilmatrixspalte ein Bit und eine Bitgruppe aufweist, wobei die Teilmatrix Teilmatrixeinträge aufweist, die bezüglich einer ersten Teilmatrixzeile oder einer ersten Teilmatrixspalte zyklisch verschoben angeordnet sind und wobei das Bit und die Bitgruppe in einer ersten vorbestimmten Beziehung zueinander angeordnet sind; eine Einrichtung zum Ermitteln einer quadratischen zweiten Teilmatrix (A1), wobei die zweite Teilmatrix in jeder Teilmatrixzeile oder in jeder Teilmatrixspalte ein Bit und eine Bitgruppe aufweist, wobei die zweite Teilmatrix Teilmatrixeinträge aufweist, die bezüglich einer ersten Teilmatrixzeile oder einer ersten Teilmatrixspalte zyklisch verschoben angeordnet sind und wobei das Bit und die Bitgruppe in einer zweiten vorbestimmten Beziehung zueinander angeordnet sind, wobei sich die erste vorbestimmte Beziehung von der zweiten vorbestimmten Beziehung unterscheidet; und eine Einrichtung zum Zusammenfügen der ersten und zweiten Teilmatrix zu einer Kontrollmatrix (H), wobei die Kontrollmatrix (H) eine Zeilenanzahl aufweist, die einer Teilmatrixzeilenanzahl der ersten oder zweiten Teilmatrix entspricht oder wobei die Kontrollmatrix (H) eine Spaltenanzahl aufweist, die einer Teilmatrixspaltenanzahl der ersten oder zweiten Teilmatrix entspricht; wobei die erste und zweite vorbestimmte Beziehung des Bits zu der Bitgruppe in einem Abstand zwischen dem Bit und der Bitgruppe besteht.
  8. Verfahren zum Bereitstellen einer Kontrollmatrix zur Ermittlung einer Position (r) eines Bitfehlers in einer Bitfolge (y) mit folgenden Schritten: Bestimmen einer ersten quadratischen Teilmatrix (A0), derart, dass die erste Teilmatrix entweder in jeder Teilmatrixzeile oder in jeder Teilmatrixspalte ein Bit und eine Bitgruppe aufweist, wobei die Teilmatrix Teilmatrixeinträge aufweist, die bezüglich einer ersten Teilmatrixzeile oder einer ersten Teilmatrixspalte zyklisch verschoben angeordnet werden und wobei das Bit und die Bitgruppe in einer ersten vorbestimmten Beziehung zueinander angeordnet werden; Ermitteln einer quadratischen zweiten Teilmatrix (A1), derart, dass die zweite Teilmatrix entweder in jeder Teilmatrixzeile oder in jeder Teilmatrixspalte ein Bit und eine Bitgruppe aufweist, wobei die zweite Teilmatrix Teilmatrixeinträge aufweist, die bezüglich einer ersten Teilmatrixzeile oder einer ersten Teilmatrixspalte zyklisch verschoben angeordnet werden und wobei das Bit und die Bitgruppe in einer zweiten vorbestimmten Beziehung zueinander angeordnet werden, wobei sich die erste vorbestimmte Beziehung von der zweiten vorbestimmten Beziehung unterscheidet; und Zusammenfügen der ersten und zweiten Teilmatrix zu einer Kontrollmatrix (H), wobei die Kontrollmatrix (H) eine Zeilenanzahl aufweist, die einer Teilmatrixzeilenanzahl der ersten oder zweiten Teilmatrix entspricht oder wobei die Kontrollmatrix (H) eine Spaltenanzahl aufweist, die einer Teilmatrixspaltenanzahl der ersten oder zweiten Teilmatrix entspricht; wobei die erste quadratische Teilmatrix (A0) und die zweite quadratische Teilmatrix (A1) so bestimmt werden, dass die erste und zweite vorbestimmte Beziehung des Bits zu der Bitgruppe in einem Abstand zwischen dem Bit und der Bitgruppe besteht.
  9. Kontrollmatrix zur Bestimmung einer Position (r) eines Bitfehlers in einer Bitfolge (y), die folgenden Merkmale aufweist: eine erste quadratische Teilmatrix (A0), wobei die erste Teilmatrix (A0) entweder in jeder Teilmatrixzeile oder in jeder Teilmatrixspalte ein Bit und eine Bitgruppe aufweist, wobei die Teilmatrix Teilmatrixeinträge aufweist, die bezüglich einer ersten Teilmatrixzeile oder einer ersten Teilmatrixspalte zyklisch verschoben angeordnet sind und wobei das Bit und die Bitgruppe in einer ersten vorbestimmten Beziehung zueinander angeordnet sind; eine zweite quadratische Teilmatrix (A1), wobei die zweite Teilmatrix entweder in jeder Teilmatrixzeile oder in jeder Teilmatrixspalte ein Bit und eine Bitgruppe aufweist, wobei die zweite Teilmatrix Teilmatrixeinträge aufweist, die bezüglich einer ersten Teilmatrixzeile oder einer ersten Teilmatrixspalte zyklisch verschoben angeordnet sind und wobei das Bit und die Bitgruppe in einer zweiten vorbestimmten Beziehung zueinander angeordnet sind, wobei sich die erste vorbestimmte Beziehung von der zweiten vorbestimmten Beziehung unterscheidet; und wobei die erste Teilmatrix (A0) und zweite Teilmatrix (A1) derart in der Kontrollmatrix (H) angeordnet sind, dass die Kontrollmatrix (H) eine Zeilenanzahl aufweist, die einer Teilmatrixzeilenanzahl der ersten oder zweiten Teilmatrix entspricht oder dass die Kontrollmatrix (H) eine Spaltenanzahl aufweist, die einer Teilmatrixspaltenanzahl der ersten oder zweiten Teilmatrix entspricht; wobei die erste und zweite vorbestimmte Beziehung des Bits zu der Bitgruppe in einem Abstand zwischen dem Bit und der Bitgruppe besteht.
  10. Computerprogramm mit Programmcode zur Durchführung eines der Verfahren gemäß Anspruch 6 oder 8, wenn das Computerprogramm auf einem Computer abläuft.
DE102005022107.6A 2005-05-12 2005-05-12 Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge Expired - Fee Related DE102005022107B9 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102005022107.6A DE102005022107B9 (de) 2005-05-12 2005-05-12 Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge
FR0604028A FR2885708B1 (fr) 2005-05-12 2006-05-05 Dispositif et procede pour determiner une position d'une erreur de bit dans une sequence de bits
US11/383,143 US7721177B2 (en) 2005-05-12 2006-05-12 Device and method for determining a position of a bit error in a bit sequence

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102005022107.6A DE102005022107B9 (de) 2005-05-12 2005-05-12 Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge

Publications (3)

Publication Number Publication Date
DE102005022107A1 DE102005022107A1 (de) 2006-11-16
DE102005022107B4 DE102005022107B4 (de) 2015-10-01
DE102005022107B9 true DE102005022107B9 (de) 2016-04-07

Family

ID=37295364

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102005022107.6A Expired - Fee Related DE102005022107B9 (de) 2005-05-12 2005-05-12 Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge

Country Status (3)

Country Link
US (1) US7721177B2 (de)
DE (1) DE102005022107B9 (de)
FR (1) FR2885708B1 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090113829A1 (en) * 2007-05-14 2009-05-07 Meier Franz X Three dimensional building element
US7962837B2 (en) * 2007-09-13 2011-06-14 United Memories, Inc. Technique for reducing parity bit-widths for check bit and syndrome generation for data blocks through the use of additional check bits to increase the number of minimum weighted codes in the hamming code H-matrix
US8327223B2 (en) 2009-02-05 2012-12-04 Infineon Technologies Ag System and method for constructing multi-write error correcting code
US8301177B2 (en) * 2009-03-03 2012-10-30 Intel Corporation Efficient paging operation for femtocell deployment
DE102010035210B4 (de) * 2010-08-24 2012-08-30 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zur Rückgewinnung verlorener Daten und zur Korrektur korrumpierter Daten
US9450613B2 (en) 2010-11-10 2016-09-20 Infineon Technologies Ag Apparatus and method for error correction and error detection
US8539321B2 (en) * 2010-11-10 2013-09-17 Infineon Technologies Ag Apparatus and method for correcting at least one bit error within a coded bit sequence
US10944429B1 (en) * 2020-01-02 2021-03-09 Silicon Motion, Inc. Data accessing method using data protection with aid of parity check matrix having partial sequential information, and associated apparatus

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5099483A (en) * 1988-12-19 1992-03-24 Ricoh Company, Ltd. Device for correcting errors by a long-distance code

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4464753A (en) * 1981-12-30 1984-08-07 International Business Machines Corporation Two bit symbol SEC/DED code
EP0386506A3 (de) * 1989-03-06 1991-09-25 International Business Machines Corporation Symbolfehlerkorrektur-Kodierung und -Dekodierung mit niedrigem Kostenaufwand
EP0629051B1 (de) * 1993-06-10 1998-04-01 BULL HN INFORMATION SYSTEMS ITALIA S.p.A. Fehlerkorrekturgerät für digitale Daten zur Korrektur von Einfachfehlern (sec), von Doppelfehlern (ded) und Vielfacheinzelbytefehlern (sbd) und zur Korrektur von Einzelbytefehlern ungerader Anzahl (odd sbc)
US5841795A (en) * 1996-02-12 1998-11-24 Compaq Computer Corporation Error correction codes
US7051264B2 (en) * 2001-11-14 2006-05-23 Monolithic System Technology, Inc. Error correcting memory and method of operating same

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5099483A (en) * 1988-12-19 1992-03-24 Ricoh Company, Ltd. Device for correcting errors by a long-distance code

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Hamming, R. W.: Error Detecting and Error Correcting Codes. The Bell System Technical Journal, Vol. XXIX. 1950 *

Also Published As

Publication number Publication date
US20060282756A1 (en) 2006-12-14
FR2885708A1 (fr) 2006-11-17
FR2885708B1 (fr) 2012-12-14
DE102005022107B4 (de) 2015-10-01
DE102005022107A1 (de) 2006-11-16
US7721177B2 (en) 2010-05-18

Similar Documents

Publication Publication Date Title
DE102005022107B9 (de) Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge
DE102015201384B4 (de) Vorrichtung und Verfahren zum Verbessern der Datenspeicherung durch Dateninvertierung
DE2060643C3 (de) Schaltungsanordnung zur Korrektur von Einzelfehlern
DE102011085602B4 (de) Vorrichtung und Verfahren zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz
DE3231956A1 (de) Anordnung zum uebertragen von binaerdaten ueber eine vielzahl von kanaelen mit hilfe eines faltungscodes
DE2657826A1 (de) Einrichtung zur fehlererkennung und fehlerkorrektur im speichersystem einer dv-anlage
DE2260850A1 (de) Fehlerkorrektursystem
DE60220341T2 (de) Verfahren zum Erzeugen eines Burstfehlermusters sowie Burst- und Bytefehlerermittlungs- und-korrekturvorrichtung
DE2425823A1 (de) Einrichtung zur fehlererkennung und fehlerkorrektur
DE102017110389B4 (de) Verfahren und Decoder zur Softinput Decodierung von verallgemeinerten verketteten Codes
DE102017103347B4 (de) Verarbeitung von daten in speicherzellen eines speichers
DE2262070A1 (de) Mit schieberegistern arbeitendes fehlerkorrektursystem
DE2106314B2 (de) Anordnung zur Fehlererkennung und -korrektur in einem aus b Bits bestehenden Byte eines K Datenbytes enthaltenden Datenblocks
DE2217935C3 (de) Anordnung und Verfahren zur Korrektur von Doppelfehlern in einer Nachricht
DE102014215252B9 (de) Wirksame fehlerkorrektur von mehrbitfehlern
DE102011087634B9 (de) Vorrichtung und verfahren zum erfassen eines fehlers in einem codierten binärwort
DE102018131613A1 (de) Fehlererkennung mittels Gruppenfehler
DE2053836C3 (de) Anordnung zur Korrektur von Fehlerbündeln in binär codierten Datengruppen
DE102013222136B4 (de) Schaltung und Verfahren für die Mehr-Bit-Korrektur
DE3702574A1 (de) Speicheranordnung mit drei moduln, mit symbolbreiten speicherchips und mit einem fehlerschutz, wobei jedes symbol aus 2(pfeil hoch)i(pfeil hoch)+1 bits besteht
DE102020110787B3 (de) Schaltung und verfahren zum kodieren oder dekodieren eines datenworts
DE102011087457A1 (de) Vorrichtung und verfahren zum erfassen eines fehlers in einer mehrzahl von codierten binärwörtern, die durch einen fehlerkorrekturcode codiert sind
DE102013219088B9 (de) Schaltungsanordnung und Verfahren zur Realisierung von Prüfbitkompaktierung für Cross-Parity-Codes
DE102016104012A1 (de) Verarbeitung eines Datenworts
DE102021109391B3 (de) Multibytefehler-Erkennung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R082 Change of representative
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee