DE102021109391B3 - Multibytefehler-Erkennung - Google Patents

Multibytefehler-Erkennung Download PDF

Info

Publication number
DE102021109391B3
DE102021109391B3 DE102021109391.0A DE102021109391A DE102021109391B3 DE 102021109391 B3 DE102021109391 B3 DE 102021109391B3 DE 102021109391 A DE102021109391 A DE 102021109391A DE 102021109391 B3 DE102021109391 B3 DE 102021109391B3
Authority
DE
Germany
Prior art keywords
error
code
byte
shortened
bit
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
DE102021109391.0A
Other languages
English (en)
Inventor
Thomas Kern
Alexander Klockmann
Thomas Rabenalt
Michael Gössel
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 DE102021109391.0A priority Critical patent/DE102021109391B3/de
Priority to TW111105685A priority patent/TW202308331A/zh
Priority to US17/719,648 priority patent/US20220345157A1/en
Application granted granted Critical
Publication of DE102021109391B3 publication Critical patent/DE102021109391B3/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1545Determination of error locations, e.g. Chien search or other methods or arrangements for the determination of the roots of the error locator polynomial
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1575Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

Es wird eine Lösung zur Erkennung eines Multibytefehlers in einem Codewort eines verkürzten Fehlercodes vorgeschlagen, wobei der verkürzte Fehlercode ein τ Byte-korrigierender Fehlercode ist, Bytes des Codeworts des verkürzten Fehlercodes einen ersten Bereich bestimmen und der nicht korrigierbare Multibytefehler erkannt wird, sofern mindestens eine der folgenden Bedingungen erfüllt ist: (a) mindestens ein Fehlerpositionssignal liegt nicht in dem ersten Bereich; (b) mindestens ein Fehlerpositionssignal zeigt mindestens einen Fehler aber weniger als τ Fehler in dem ersten Bereich an und es liegt kein 1-Bytefehler bis (τ- 1)-Bytefehler vor.

Description

  • Ein Fehlercode ist dabei entweder ein Fehler-korrigierender Code, ein Fehler-erkennender Code oder eine Kombination aus einem Fehler-erkennenden sowie Fehler-korrigierenden Code.
  • Ein Beispiel für einen Fehlercode ist der Bose-Chaudhuri-Hocquenghem-Code (BCH-Code, siehe z.B. https://de.wikipedia.org/wiki/BCH-Code).
  • Aus EP 1 037 400 A2 und aus JP H 10 229342 A ist jeweils ein Verfahren bekannt zur Erkennung eines Multibytefehlers in einem Codewort eines verkürzten Fehlercodes, bei dem der verkürzte Fehlercode ein τ-Bytefehler-korrigierender Fehlercode ist.
  • Aus EP 0 413 856 A1 ist ein Verfahren bekannt zur Erkennung eines Multibytefehlers in einem Codewort eines verkürzten Fehlercodes, bei dem ein nicht-korrigierenbarer Multibytefehler erkannt wird, sofern mindestens ein Fehlerpositionssignal auf ein nicht-existierendes Byte zeigt.
  • Bei einem BCH-Code ist beispielsweise bekannt, zu korrigierende Bitfehlerpositionen als Nullstellen eines Lokatorpolynoms des BCH-Codes zu bestimmen. So ist beispielsweise in [4] eine spezielle Vorgehensweise für eine 2-Bitfehlerkorrektur in einem Galoisfeld GF(2m) unter Verwendung eines BCH-Codes beschrieben. Ausgehend von einem entsprechenden Lokatorpolynom zweiten Grades wird dieses Polynom so transformiert, dass die Nullstellen des transformierten Polynoms durch einen Parameter der Wortbreite m bestimmbar sind. Dieser Parameter wird aus den Syndromkomponenten bestimmt. Die Nullstellen des transformierten Polynoms sind nach ihrer Bestimmung in die Nullstellen des ursprünglichen Lokatorpolynoms zu transformieren. Unter Verwendung eines Decoders können aus den Nullstellen des ursprünglichen Lokatorpolynoms die zu korrigierenden Bitpositionen berechnet werden.
  • Auch ist in [4] die Fehlerkorrektur von 3-Bitfehlern und 4-Bitfehlern unter Verwendung von BCH-Codes und die Korrektur von Bytefehlern unter Verwendung eines entsprechenden Reed-Solomon-Codes beschrieben.
  • Eine Aufgabe besteht darin, die bekannten Lösungen zu verbessern und insbesondere einen Ansatz zu schaffen, um effizient nicht korrigierbarer Multibytefehler zu erkennen.
  • Diese Aufgabe wird gemäß den Merkmalen der unabhängigen Ansprüche gelöst. Bevorzugte Ausführungsformen sind insbesondere den abhängigen Ansprüchen entnehmbar.
  • Zur Lösung der Aufgabe wird ein Verfahren vorgeschlagen zur Erkennung eines Multibytefehlers in einem Codewort eines verkürzten Fehlercodes,
    • - bei dem der verkürzte Fehlercode ein τ Byte-korrigierender Fehlercode ist,
    • - bei dem Bytes des Codeworts des verkürzten Fehlercodes einen ersten Bereich bestimmen,
    • - bei dem der nicht korrigierbare Multibytefehler erkannt wird, sofern mindestens eine der folgenden Bedingungen erfüllt ist:
      1. (a) mindestens ein Fehlerpositionssignal liegt nicht in dem ersten Bereich,
      2. (b) mindestens ein Fehlerpositionssignal zeigt mindestens einen Fehler aber weniger als τ Fehler in dem ersten Bereich an und es liegt kein 1-Bytefehler bis (τ - 1)-Bytefehler vor.
  • Hierbei sei angemerkt, dass jedes Byte eine Anzahl von b Bit(s) umfassen kann mit b ≥ 1. Der Wert für τ kann eine ganze Zahl größer als 1 sein.
  • Werden τ Bytefehler erkannt und liegen τ Fehlerpositionssignale in dem ersten Bereich, so kann ein τ-Bytefehler korrigiert werden.
  • Wird kein Fehlerpositionssignal bestimmt, liegt kein erkennbarer Fehler vor.
  • In dem Fall (b) kann das mindestens eine Fehlerpositionssignal teilweise oder vollständig in dem ersten Bereich oder nicht in dem ersten Bereich liegen.
  • Das Fehlerpositionssignal kann, sofern es nicht in dem ersten Bereich liegt, in einem definierten oder einem nicht definierten Bereich liegen. Ein nicht definierter Bereich kann dadurch bestimmt sein, dass die Bestimmung des Fehlerpositionssignal keine oder keine gültige Lösung liefert.
  • Es ist eine Weiterbildung, dass die Bedingung (a) ferner umfasst: das mindestens eine Fehlerpositionssignal, das nicht in dem ersten Bereich liegt, liegt in einem zweiten Bereich, der bestimmt ist durch Bytes eines nicht verkürzten Fehlercodes, die nicht auch Bytes des verkürzten Fehlercodes sind.
  • Es ist eine Weiterbildung, dass eine Anzahl des mindestens einen Fehlerpositionssignals mittels Zählens bestimmt wird.
  • Es ist eine Weiterbildung, dass mittels des Fehlerpositionssignals ein Byte eines Codeworts referenziert wird.
  • Es ist eine Weiterbildung, dass das mindestens eine Fehlerpositionssignal mittels mindestens eines Lokatorpolynoms des Fehlercodes bestimmt wird.
  • Es ist eine Weiterbildung, dass der verkürzte Fehlercode ein BCH-Code der Länge n über einem Galoisfeld GF(2m) mit n < 2m - 1 ist und m ≥ 3 gilt.
  • Der verkürzte Fehlercode ist durch Kürzen aus einem BCH-Code über GF(2m) der Länge 2m - 1 bestimmbar. Der verkürzte Fehlercode ist beispielsweise ein τ Bytefehler-korrigierender BCH-Code mit τ ≥ 2. Vorzugsweise ist der verkürzte Fehlercode in der Lage, mehr als τ Bytefehler zu erkennen.
  • Es ist eine Weiterbildung, dass der verkürzte Fehlercode ein Reed-Solomon-Code über einem Galoisfeld GF(2m) ist.
  • Auch wird eine Vorrichtung vorgeschlagen zur Erkennung eines Multibytefehlers in einem Codewort eines verkürzten Fehlercodes,
    • - wobei der verkürzte Fehlercode ein τ Byte-korrigierender Fehlercode ist,
    • - wobei Bytes des Codeworts des verkürzten Fehlercodes einen ersten Bereich bestimmen,
    • - wobei die Vorrichtung eingerichtet ist zur Erkennung des nicht korrigierbaren Multibytefehlers, sofern mindestens eine der folgenden Bedingungen erfüllt ist:
      1. (a) mindestens ein Fehlerpositionssignal liegt nicht in dem ersten Bereich,
      2. (b) mindestens ein Fehlerpositionssignal zeigt mindestens einen Fehler aber weniger als τ Fehler in dem ersten Bereich an und es liegt kein 1-Bytefehler bis (τ - 1)-Bytefehler vor.
  • Es ist eine Weiterbildung, dass die Vorrichtung Teil eines Speichers oder eines Speichersystems ist oder separat zu dem Speicher oder dem Speichersystem ausgeführt ist.
  • Die Vorrichtung kann Teil des Speichers oder separat zu diesem ausgeführt sein. Insbesondere kann die Vorrichtung eine Verarbeitungseinheit umfassen, die die hier genannten Schritte durchführt. Die Verarbeitungseinheit kann mindestens eine der folgenden Komponenten umfassen: einen Prozessor, einen Mikrocontroller, einen Schaltkreis, einen ASIC, ein FPGA, eine Logikeinheit. Die Verarbeitungseinheit kann in Form mindestens einer physikalischen Einheit realisiert sein. Insbesondere kann die Verarbeitungseinheit auf mehrere physikalische Einheiten verteilt sein.
  • Die vorstehenden Erläuterungen betreffend die Verfahren gelten für die Vorrichtung entsprechend. Die hier beschriebenen Schritte des Verfahrens können mittels der Vorrichtung ausgeführt werden.
  • Die oben beschriebenen Eigenschaften, Merkmale und Vorteile dieser Erfindung sowie die Art und Weise, wie diese erreicht werden, werden nachfolgend beschrieben im Zusammenhang mit einer schematischen Beschreibung von Ausführungsbeispielen, die im Zusammenhang mit den Zeichnungen näher erläutert werden. Dabei können zur Übersichtlichkeit gleiche oder gleichwirkende Elemente mit gleichen Bezugszeichen versehen sein.
    • 1 zeigt ein Blockdiagramm zur Veranschaulichung von Schritten zum Bestimmen von Fehlerpositionssignalen;
    • 2 zeigt eine spezielle Ausgestaltung von 1 zur Erkennung eines nicht korrigierbaren Multibytefehlers;
    • 3 zeigt eine alternative Ausgestaltung für die Einheit zur Bestimmung der Fehlerpositionssignale beispielhaft für einen binären BCH-Code mit b = 1 oder einen Reed-Solomon-Code mit b > 1;
    • 4 zeigt eine H2-Matrix des nicht verkürzten Fehlercodes C2;
    • 5 zeigt die H1-Matrix des verkürzten Fehlercodes C1;
    • 6 zeigt eine Tabelle mit durch das Modularpolynom p(x) = 1+x2 +x5 erzeugten Elemente des Galoisfeldes GF(25) in Potenzdarstellung, Polynomdarstellung und Tupeldarstellung;
    • 7 zeigt ein beispielhaftes Ablaufdiagramm zur Bestimmung, ob ein nicht korrigierbarer Multibytefehler vorliegt.
  • Fehler in einzelnen oder in mehreren Bits können durch Fehlercodes erkannt und/oder korrigiert werden. Dabei können Bits in sogenannte Bytes zusammengefasst bzw. gruppiert werden. Ein Byte umfasst somit eine Anzahl von b Bits, wobei b ≥ 1 gilt.
  • Ein Fehlercode ist ein Code, der mindestens einen Fehler erkennen und/oder korrigieren kann. Somit ist ein Fehlercode ein Fehler-erkennender und/oder Fehler-korrigierender Code. Beispielsweise kann der Fehlercode
    • - ein τ Bytefehler-korrigierender Code,
    • - ein τ Bytefehler-korrigierender und (τ + 1) Bytefehler-erkennender Code oder
    • - ein τ Bytefehler-korrigierender und ein mehr als τ Bytefehler-erkennender Code
    sein. Vorteilhaft ist hierbei τ ≥ 1. Wie einleitend ausgeführt, umfasst das Byte mindestens ein Bit. Umfasst das Byte genau ein Bit (b = 1), wird der Fehlercode auch als τ Bitfehler-korrigierender und (τ+ 1) Bitfehler-erkennender Code bezeichnet.
  • Bei der Übertragung von Daten oder bei der Speicherung von Daten können Bitfehler auftreten, die erkannt und/oder korrigiert werden sollen. Beispielsweise können Nutzdaten um Prüfdaten (auch bezeichnet als Prüfbits bzw. Prüfbytes) ergänzt werden. Vorteilhaft ergibt die Kombination aus Nutzdaten und Prüfdaten im fehlerfreien Fall ein Codewort des Fehlercodes. Der Fehlercode umfasst in der Regel eine Vielzahl von Codewörtern, also von gültigen Belegungen, die aus Sicht des Fehlercodes keinen Fehler anzeigen. Der Vollständigkeit halber sei erwähnt, dass auch mehrfache Fehler ein Codewort in ein anderes Codewort überführen können. In so einem Fall liegt kein erkennbarer Fehler vor, obwohl tatsächlich ein mehrfacher Fehler auftrat. Mit anderen Worten, das Codewort ist immer eine gültige Belegung von Bits, so dass der Fehlercode keinen Fehler erkennt oder kein Fehler vorlag.
  • Sofern nachfolgende Erläuterungen auf Bytes abstellen, gilt, dass jedes der Bytes eine Anzahl von b ≥ 1 Bits aufweist. Entsprechend gilt für den Fall b = 1, dass jedes der Bytes nur genau ein Bit umfasst. Insofern könnten dann z.B. die Begriffe „Bytes“ oder „Bytefolge“ durch „Bits“ oder „Bitfolge“ ersetzt werden.
  • Im Rahmen der Fehlerkorrektur ist es eine generelle Motivation, eine vorgegebene Anzahl von Fehlern in den Bytes einer Bytefolge zu erkennen und/oder zu korrigieren. Die zu korrigierenden Bytes können dabei alle Bytes oder eine Teilmenge der Bytes sein. Es ist eine Option, dass Prüfbytes, sofern diese vorhanden sind, nicht korrigiert werden. Weiterhin ist es eine Option, Teilmengen der Bytefolge unterschiedlich zu behandeln: So könnten Fehler in einer ersten Teilmenge der Bytefolge korrigiert und in einer zweiten Teilmenge der Bytefolge nur erkannt werden.
  • Um ein fehlerhaftes Byte zu korrigieren, ist es erforderlich, die Position des fehlerhaften Bytes zu erkennen und einen Korrekturwert für dieses fehlerhafte Byte zu bestimmen.
  • Wird ein τ Bytefehler-korrigierender Fehlercode betrachtet, gilt für eine Anzahl von 1 bis τ fehlerhafte Bytes:
  • Die Position eines fehlerhaften Bytes wird durch ein Fehlerpositionssignal bestimmt, das einen ersten Wert annimmt, wenn das entsprechende Byte fehlerhaft ist und einen zweiten Wert annimmt, wenn das entsprechende Byte nicht fehlerhaft ist. Der erste Wert soll beispielhaft 1 und der zweite Wert soll beispielhaft 0 sein. Der Wert, um den ein fehlerhaftes Byte korrigiert werden soll, kann durch einen b-stelligen Korrekturwert bestimmt sein. Wird der Korrekturwert mit dem fehlerhaften Byte komponentenweise modulo 2 addiert, folgt daraus der korrigierte Wert.
  • Für b = 1 weist ein b-Bit-Byte (also ein Byte mit einer Anzahl von b Bits) nur ein einzelnes Bit auf und ein Fehler verfälscht eine Bitfolge y = y 0 , , y n 1
    Figure DE102021109391B3_0001
    in eine fehlerhafte Bitfolge y ' = y 0 ' , , y n 1 '
    Figure DE102021109391B3_0002
  • Dieser Fehler kann durch einen binären Fehlervektor e = e 0 , , e n 1
    Figure DE102021109391B3_0003
    bestimmt sein. Somit gilt: y ' = y 0 ' , , y n 1 ' = y 0 + e 0 , , y n 1 + e n 1 = y + e .
    Figure DE102021109391B3_0004
  • Hierbei bezeichnet „+“ die Addition modulo 2.
  • Ist ei = 1 für i ∈ {0,...,n - 1}, dann ist y i ' = y i + e i = y i + 1 = y ¯ i
    Figure DE102021109391B3_0005
    und es liegt ein Fehler an der Bitposition i vor, d.h. ein Fehlerpositionssignal an der Position i hat den Wert 1: bfpi = 1.
  • Ist ei = 0 für i ∈ {0,...,n - 1}, dann ist y i ' = y i + e i = y i + 0 = y i
    Figure DE102021109391B3_0006
    und es liegt kein Fehler an der Bitposition i vor, d.h. das Fehlerpositionssignal an der Position i hat den Wert 0: bfpi = 0.
  • In dem Fall b = 1 sind die Komponenten des Fehlervektors e gleich den Fehlerpositionssignalen b f p 0 , , b f p n 1
    Figure DE102021109391B3_0007
  • Anstelle der Gleichung (1) gilt somit für den fehlerhaften Wert y' auch: y ' = y 0 ' , , y n 1 ' = y 0 + b f p 0 , , y n 1 + b f p n 1 y + b f p ,
    Figure DE102021109391B3_0008
    wobei b f p = b f p 0 , , b f p n 1
    Figure DE102021109391B3_0009
    einen Fehlerpositionssignalvektor bezeichnet.
  • Umfasst das Byte mehr als ein Bit (d.h. b > 1), dann wird ein i-tes Byte mit Yi (oder Xi) und eine Folge von Bytes mit Y bezeichnet.
  • Ein Fehler in dem i-ten Byte Yi' der Bytefolge Y ' = Y 1 ' , , Y n '
    Figure DE102021109391B3_0010
    kann durch ein binäres Fehlerpositionssignal bfpi = 1 und einen Fehlerwert Ei beschrieben werden. Dabei ist der Fehlerwert Ei ein b-Bit-Byte.
  • Das Fehlerpositionssignal bfpi ist gleich 1, wenn gilt: E i 0, ,0 b = 0 _
    Figure DE102021109391B3_0011
  • Entsprechend ist das Fehlerpositionssignal bfpi gleich 0, wenn gilt: E i = 0 _ .
    Figure DE102021109391B3_0012
  • Für einen korrigierbaren Fehler ist die Anzahl der Einsen in dem Fehlerpositionssignalvektor bfp ist gleich der Anzahl der fehlerhaften Bytes in der Bytefolge Y ' = Y 0 ' , , Y n 1 ' ,
    Figure DE102021109391B3_0013
    Die Bytefolge kann beispielsweise mittels des Fehlercodes korrigiert werden.
  • Für b > 1 besteht ein Fehlervektor E = E0,...,En-1 aus einer Anzahl n von b-Bit-Bytes, so dass gilt: Y ' = Y 0 ' , , Y n 1 ' = Y 0 + E 0 , , Y n 1 + E n 1 = Y + E
    Figure DE102021109391B3_0014
  • In Gleichung (3) entspricht die Operation „+“ der komponentenweisen Addition modulo 2.
  • Es gilt somit:
    • - Ist Ei ≠ 0 für i ∈ {0,..., n - 1}, dann ist bfpi = 1 und es liegt ein Fehler an der i-ten Byteposition vor.
    • - Ist Ei = 0, dann ist bfpi = 0 und es liegt kein Fehler an der i-ten Byteposition vor.
  • Der hierin beschriebene Ansatz ermöglicht die Bestimmung eines nicht korrigierbaren Fehlers mit mehr als τ fehlerhaften Bytes anhand der Anzahl der Fehlerpositionssignale unter Verwendung eines lediglich τ Bytefehler-korrigierenden Fehlercodes.
  • Die Anzahl der Fehler, die binären Werte der Fehlerpositionssignale und, falls b > 1 ist, die b-Bit breiten Fehlerwerte werden für lineare Fehlercodes beispielsweise durch ein Fehlersyndrom des linearen Fehlercodes bestimmt.
  • In den hier beschriebenen Lösungen werden beispielhaft verkürzte Fehlercodes betrachtet. Ein verkürzter Fehlercode kann aus einem nicht verkürzten Fehlercode bestimmt werden, der eine größere Länge oder Codewörter mit einer größeren Länge als der verkürzte Fehlercode aufweist.
  • Beispielhaft können der verkürzte und der nicht verkürzte Fehlercode die gleiche Anzahl von Prüfbits aufweisen. Beispielsweise kann sowohl der verkürzte Fehlercode als auch der nicht verkürzte Fehlercode ein τ Bytefehler-korrigierender Fehlercode sein.
  • Der verkürzte Fehlercode kann aus dem nicht verkürzten Fehlercode hervorgehen, indem der nicht verkürzte Fehlercode um mindestens ein b-Bit-Byte verkürzt wird.
  • Gilt b = 1, dann entspricht jedes b-Bit-Byte genau einem Bit. Die Fehlerpositionssignale identifizieren in diesem Fall einzelne Bits, d.h. einzelne Positionen eines Codeworts des Fehlercodes, die möglicherweise fehlerhaft sind.
  • Wird ein τ Bytefehler-korrigierender Fehlercode verwendet, sind in dem Fall, dass τ Fehler in den zu korrigierenden b-Bit-Bytes vorhanden sind, τ Fehlerpositionssignale für die zu korrigierenden Bytes des Fehlercodes durch das resultierende Fehlersyndrom zu 1 bestimmt. Die übrigen Fehlerpositionssignale sind gleich 0.
  • Ein nicht korrigierbarer Multibytefehler mit mehr als τ fehlerhaften Bytes kann daran erkannt werden, dass weniger als τ Fehlerpositionssignale für die zu korrigierenden Bytes den Wert 1 annehmen und falls
    • - kein 1-Bytefehler, ⋮
    • - kein (τ - 1)-Bytefehler.
    auftritt.
  • Wird eines der τ Fehlerpositionssignale, die den Wert 1 für eine Byteposition annehmen, bei der Fehlerkorrektur bestimmt, um die der nicht verkürzte Fehlercode bei der Bestimmung des verkürzten Fehlercodes gekürzt wurde, kann daran erkannt werden, dass weniger als τ Fehlerpositionssignale für die Bytes des verkürzten Fehlercodes zu 1 bestimmt sind.
  • Die zu korrigierenden Bytepositionen des verkürzten Fehlercodes werden als Wertebereich der Fehlerpositionssignale bezeichnet. Dann sind im Falle eines 1-Bytefehlers, 2-Bytefehlers bis τ-Bytefehlers in den Bytes des verkürzten Fehlercodes die Fehlerpositionssignale, die den Wert 1 annehmen, alle Elemente dieses Wertebereichs der Fehlerpositionssignale.
  • Wird hingegen ein Fehlerpositionssignal zu 1 bestimmt, das nicht ein Element des Wertebereichs der Fehlerpositionssignale ist, liegt ein nicht korrigierbarer Fehler vor.
  • Ist zusätzlich bestimmt, dass kein 1-Bytefehler, etc. bis (i-1)-Bytefehler der zu korrigierenden Bytes vorliegt, oder wird ein Fehlerpositionssignal mit dem Wert 1 bestimmt, das außerhalb des Wertebereichs der Fehlerpositionssignale liegt, können höchstens (τ - 1) Fehlerpositionssignale, die den Wert 1 annehmen, Elemente des Wertebereichs der Fehlerpositionssignale sein. Das Vorhandensein des Fehlersignals, das den Wert 1 annimmt und nicht Element des Wertebereichs der Fehlerpositionssignale ist, zeigt bereits an, dass ein nicht korrigierbarer Fehler vorliegt. In diesem Fall ist es nicht notwendig, die Anzahl der Fehlerpositionssignale mit dem Wert 1, die in dem Wertebereich der Fehlerpositionssignale, die den Wert 1 annehmen, zu bestimmen.
  • Beispiel
  • Beispielhaft diene als Fehlercode ein τ Byte-korrigierender Fehlercode. Dieser Fehlercode kann also maximal τ fehlerhafte Bytes korrigieren und damit können maximal τ Fehlerpositionssignale gleich 1 sein.
  • Dieser τ Byte-korrigierende Fehlercode ist beispielhaft ein verkürzter Fehlercode. Er ist durch Verkürzen von K Bytes B y t e 0,   B y t e 1 , , B y t e K 1
    Figure DE102021109391B3_0015
    aus einem ebenfalls τ Byte-korrigierenden nicht verkürzten Fehlercode hervorgegangen.
  • Im Fall eines Fehlers in mehr als τ Bytes des verkürzten Fehlercodes kann ein Fehlersyndrom beispielsweise so bestimmt sein, dass es gleich einem Fehlersyndrom eines Bytefehlers des nicht verkürzten Fehlercodes ist, wobei der Fehler in einem gekürzten Byte auftritt. Es ergibt sich also ein Fehlerpositionssignal auf eine Position, die in dem verkürzten Fehlercode nicht existiert: Das Fehlerpositionssignal zeigt auf ein gekürztes Byte, das nicht Teil eines Codeworts des verkürzten Fehlercodes ist. Damit können höchstens (τ - 1) Fehlerpositionssignale (mit einem Wert 1) Bytes des verkürzten Fehlercodes referenzieren. Es sind somit weniger als τ Fehlerpositionssignale für die Bytes des verkürzten Fehlercodes übrig, die noch den Wert 1 annehmen können.
  • Ist bekannt, dass bei der Fehlerkorrektur τ Fehlerpositionssignale beispielsweise auf der Grundlage des Fehlersyndroms bestimmt sind, die den Wert 1 annehmen, wobei ein Fehlerpositionssignal mit dem Wert 1 für ein Byte bestimmt wird, dass ein Byte des unverkürzten Fehlercodes ist und kein Byte des verkürzten Fehlercodes ist, dann liegt ein nicht korrigierbarer Fehler vor. Dies kann beispielsweise daran erkannt werden, dass die Anzahl der Fehlerpositionssignale, die den Wert 1 annehmen, für die Bytes des verkürzten Fehlercodes kleiner als τ ist. Ebenso kann das daran erkannt werden, dass ein Fehlerpositionssignal für ein Byte des unverkürzten Fehlercodes bestimmt ist, das kein Byte der verkürzten Fehlercodes ist.
  • Ist bestimmt, dass kein 1-Byte-Fehler bis kein (τ-­ 1)-Bytefehler vorliegen und ist der Fehlercode ein τ Bytefehler-korrigierender Fehlercode, kann ein nicht korrigierbarer Fehler daran erkannt werden, dass weniger als τ Fehlerpositionssignale mit dem Wert 1 für die zu korrigierenden Bytes des Fehlercodes bestimmt sind.
  • Unter Verwendung der Anzahl der Fehlerpositionssignale für Bytes des verkürzten Fehlercodes, die bei einer Fehlerkorrektur den Wert 1 annehmen, kann somit ein nicht korrigierbarer Fehler erkannt werden.
  • So ist es möglich, unter Verwendung der Anzahl der Fehlerpositionssignale, die den Wert 1 aufweisen und damit einen Fehler des ihnen entsprechenden Bytes für die Bytes eines Codewortes des verkürzten Fehlercodes anzeigen, einen nicht korrigierbaren Fehler zu erkennen, ohne dass weitere Prüfbytes erforderlich sind.
  • Es ist nicht notwendig, die genaue Anzahl der Fehlerpositionssignale, die den Wert 1 annehmen, für die zu korrigierenden Bytes zu bestimmen. Es kann ausreichend sein, zu bestimmen, dass ihre Anzahl kleiner als τ oder ungleich τ ist, wenn der verkürzte Fehlercode beispielsweise ein τ Bytefehler-korrigierender Fehlercode ist und die Decodierung so erfolgt, dass maximal τ Fehlerpositionssignale bestimmbar sind.
  • Optional können die Bytes auch Adressbits oder Adressbytes einer Leseadresse und/oder einer Schreibadresse umfassen oder aus einer solchen abgeleitet sein.
  • Weiterhin ist es eine Option, dass zur Bestimmung, ob ein 1-Bitfehler, etc. vorliegt, eine Parität der Bytes berücksichtigt werden kann. Beispielsweise kann ein Paritätsbit vorgesehen sein, anhand dessen eine Filterung hinsichtlich bestimmter Multibytefehler erfolgt.
  • Fehlercodes
  • Nachfolgend werden beispielhaft lineare Codes betrachtet.
  • Zur Veranschaulichung wird zunächst der Fall b = 1 betrachtet, d.h. ein b-Bit-Byte entspricht einem einzelnen Bit.
  • Eine Bitfolge von k Bits x = x 0 , , x k 1
    Figure DE102021109391B3_0016
    wird in ein Codewort y = y 0 , , y n 1
    Figure DE102021109391B3_0017
    codiert mit n > k > 1. Weiterhin gilt y = x G
    Figure DE102021109391B3_0018
    wobei G eine (k,n)-Matrix ist, die als Generatormatrix des betrachteten Fehlercodes bezeichnet wird. Für b = 1 sind die Elemente der Generatormatrix binär. Diese Elemente der Generatormatrix können auch als Elemente des Galoisfeldes GF(2) bezeichnet werden.
  • Die Generatormatrix wird in ihrer systematischen Form mit G s y s = ( P k , n k , I k )
    Figure DE102021109391B3_0019
    bezeichnet, wobei
    • - Ik die k-dimensionale Einheitsmatrix und
    • - Pk,n-k eine (k,n- k)-Matrix (Paritätsmatrix)
    bezeichnen. Aus der Generatormatrix in systematischer Form gemäß Gleichung (5) ist die H-Matrix in systematischer Form H s y s = ( I n k , P n k , k T ) ,
    Figure DE102021109391B3_0020
    bestimmt. Dabei ist P n k , k T
    Figure DE102021109391B3_0021
    die transponierte Matrix von P k , n k ,
    Figure DE102021109391B3_0022
  • Aus einer gegebenen G-Matrix können weitere G-Matrizen durch Linearkombination ihrer Zeilen abgeleitet werden. Ebenso können aus einer gegebenen H-Matrix durch Linearkombination ihrer Zeilen weitere H-Matrizen abgeleitet werden.
  • Die H-Matrix gemäß Gleichung (6) ist dabei, wie jede H-Matrix eines Codes, so bestimmt, dass für ein Codewort des zugehörigen Fehlercodes gilt H s y s   y = 0 | .
    Figure DE102021109391B3_0023
  • Hierbei bezeichnet 0| einen Spaltenvektor mit lauter Nullelementen.
  • Für ein fehlerhaftes Wort y ' = y + e = y + b f p
    Figure DE102021109391B3_0024
    gilt entsprechend H s y s y ' = H s y s ( y + e ) = H s y s e = H s y s b f p = s s y s 0 | .
    Figure DE102021109391B3_0025
    wobei s s y s = H s y s e = H s y s b f p
    Figure DE102021109391B3_0026
    als Fehlersyndrom für die Hsys-Matrix bezeichnet werden kann.
  • Wird eine andere H-Matrix zum Beispiel aus Hsys durch Linearkombination ihrer Zeilen bestimmt, wird das entsprechende Fehlersyndrom mit s = H e
    Figure DE102021109391B3_0027
    bezeichnet. Die minimale Anzahl der Prüfbits eines linearen Fehlercodes kann durch den Rang der H-Matrix des Fehlercodes bestimmt werden.
  • Wird die H-Matrix des Fehlercodes um linear abhängige Zeilen ergänzt, kann die Anzahl der Prüfbytes des Fehlercodes größer als der Rang der H-Matrix sein.
  • Das aus dem fehlerhaften Wort y' bestimmte Fehlersyndrom kann zur Fehlerkorrektur verwendet werden, wenn für die betrachtete Menge von Fehlervektoren jeder dieser Fehlervektoren zu einem unterschiedlichen Fehlersyndrom führt. Bei der Fehlerkorrektur werden die unterschiedlichen Bitpositionen bestimmt, die den Fehlersyndromen entsprechen. Jeder Fehlerposition entspricht ein Fehlerpositionssignal. Ist das Fehlerpositionssignal gleich 1, ist die referenzierte Fehlerposition fehlerhaft.
  • Ist b = 1, so wird über das Fehlerpositionssignal ein einzelnes Bit referenziert. Es ist also pro Fehlerpositionssignal ein Bit zu korrigieren, der Korrekturwert kann für das zu korrigierende Bit gleich 1 sein. In diesem Fall ist der Fehlerwert gleich dem Wert des Fehlerpositionssignals; es muss kein gesonderter Fehlerwert angegeben werden. Für b = 1 erfolgen Addition und Multiplikation binärer Werte jeweils modulo 2, d.h. in dem Körper Galoisfeld GF(2).
  • Für b ≥ 2 wird eine Bytefolge aus k b-Bit-Bytes X = X 0 , X 2 , , X k 1
    Figure DE102021109391B3_0028
    in ein Codewort Y = Y 0 , , Y n 1
    Figure DE102021109391B3_0029
    codiert.
  • Das Fehlerpositionssignal ist in diesem Fall ein Bytefehlerpositionssignal. Beispielsweise deutet ein Bytefehlerpositionssignal mit dem Wert 1 an, dass das referenzierte Byte (umfassend b Bits) fehlerhaft ist in mindestens einem seiner b Bits. Hat das Bytefehlerpositionssignal den Wert 0, ist das referenzierte Byte nicht fehlerhaft (oder es war kein Fehler erkennbar).
  • Für einen τ Bytefehler-korrigierenden Code gilt, sofern höchstens τ Bytefehler vorhanden sind: Ein Bytefehler des i-ten Bytes kann durch ein binäres Fehlerpositionssignal bfpi und einen Bytefehlerwert Ei beschrieben sein. Der Bytefehlerwert Ei umfasst dabei b Bits.
  • Gilt für einen Bytefehlerwert Ei ≠ 0, kann dem i-ten Byte das Fehlerpositionssignal bfpi = 1 zugeordnet werden. Ist Ei = 0, kann dem i-ten Byte das binäre Fehlerpositionssignal bfpi = 0 zugeordnet werden.
  • Das Fehlerpositionssignal beschreibt, ob
    • - eine bestimmte Byteposition fehlerhaft ist und korrigiert wird (werden kann) oder
    • - eine bestimmte Byteposition nicht fehlerhaft ist.
  • Dabei gibt das Fehlerpositionssignal keinen Korrekturwert für die ggf. fehlerhafte Byteposition an.
  • Wie ausgeführt können die Fehlerpositionssignale in dem Fehlerpositionssignalvektor bfp = bfp0, ... ,bfpn-1 zusammengefasst werden.
  • Die Anzahl der Fehlerpositionssignale, die gleich 1 sind, beschreibt, wie viele der von den Fehlerpositionssignalen referenzierten Bytes fehlerhaft sind.
  • 7 zeigt ein beispielhaftes Ablaufdiagramm zur Bestimmung, ob ein nicht korrigierbarer Multibytefehler vorliegt. Die Reihenfolge und die gezeigten Schritte sind lediglich beispielhafte Ausführungsformen. In 7 sind die folgenden Schritte bzw. Abfragen gezeigt:
    • Schritt 701: Es werden Fehlerpositionssignale für Bytes eines Codeworts bestimmt. Ein Byte umfasst dabei b-Bit(s) mit b ≥ 1. Es wird zu Schritt 702 verzweigt. Alternativ könnte direkt von Schritt 701 zu Schritt 705 verzweigt werden.
    • Schritt 702: Hier wird bestimmt, ob die Anzahl der Fehlerpositionssignale gleich 0 ist. Ist dies der Fall, so wird kein Fehler erkannt. Liegt mindestens ein Fehlerpositionssignal vor, wird zu Schritt 703 verzweigt. In einer alternativen Ausführungsform wird zu Schritt 705 verzweigt.
    • Schritt 703: Es wird geprüft, ob die Anzahl der Fehlerpositionssignale für Bytes des verkürzten Fehlercodes kleiner als τ ist und ob kein 1-Bytefehler, ... bis kein (τ-­ 1)-Bytefehler des verkürzten Fehlercodes vorliegt. Ist dies nicht zutreffend, so liegt ein korrigierbarer Fehler vor, es wird zu Schritt 706 verzweigt. Anderenfalls, also wenn keiner dieser Fehler erkannt wurde, wird mit Schritt 704 fortgefahren. Der verkürzte Fehlercode ist ein τ Bytefehler-korrigierender Fehlercode. Der verkürzte Fehlercode ist aus einem nicht verkürzten Fehlercode bestimmbar.
    • Schritt 704: Es wird ein nicht korrigierbarer Multibytefehler erkannt, da kein korrigierbarer Fehler erkannt werden konnte.
    • Schritt 705: Es wird geprüft, ob mindestens ein Fehlerpositionssignal in einem Bereich außerhalb eines Bereichs liegt, der durch die Bytes des Codeworts des verkürzten Codes bestimmt ist. Ist dies der Fall, wird zu Schritt 704 verzweigt. Anderenfalls wird zu Schritt 703 verzweigt.
    • Schritt 706: Die Fehlerkorrektur der maximal τ fehlerhaften Bytes wird durchgeführt.
  • Die Formulierung „ein 1-Bytefehler, ... bis (τ-­ 1)-Bytefehler“ gibt die Fehlertypen für beliebige Werte von τ an. Für τ = 3 sind damit 1-Bytefehler und 2-Bytefehler umfasst. Für τ = 5 sind damit 1-Bytefehler, 2-Bytefehler, 3-Bytefehler und 4-Bytefehler umfasst.
  • Beispielhafte Bestimmung von Multibytefehlern
  • 1 zeigt ein Blockdiagramm zur Veranschaulichung von Schritten zum Bestimmen von Fehlerpositionssignalen. Beispielsweise erfolgt die Decodierung, Fehlerkorrektur und Fehlererkennung unter Verwendung eines Fehlersyndroms. Ein Syndromgenerator stellt ein Fehlersyndrom bereit, das am Eingang einer Einheit 101 zur Bestimmung von Fehlerpositionssignalen anliegt. Die Einheit 101 liefert Fehlerpositionssignale bfp0, ... ,bfpn-1 für die zu korrigierenden Bytepositionen. Die Fehlerpositionssignale dienen als Eingangswerte eines Zählers 102. Der Syndromgenerator ist in 1 nicht gezeigt.
  • Der Zähler 102 ermittelt, ob weniger als τ oder ob genau τ Fehlerpositionssignale den ersten Wert annehmen.
  • Der Syndromgenerator, die Einheit 101 sowie der Zähler 102 können als Hardware und/oder Software realisiert sein.
  • 2 zeigt eine spezielle Ausgestaltung von 1 und erlaubt die Erkennung eines nicht korrigierbaren Multibytefehlers.
  • In 2 ist die Einheit 101 zur Bestimmung der Fehlerpositionssignale in n Einheiten 201 bis 203 aufgeteilt, die basierend auf dem Fehlersyndrom jeweils ein einzelnes der Fehlerpositionssignale bfp0 bis bfpn-1 bestimmen. Das Fehlerpositionssignal gilt dann als bestimmt, wenn am Ausgang der jeweiligen Einheit 201 bis 203 der erste Wert anliegt.
  • Die Ausgänge der Einheiten 201 bis 203 sind mit einem Zähler 204 verbunden. Der Zähler 204 bestimmt, wie viele von den Einheiten 201 bis 203 den ersten Wert bereitstellen, d.h. der Zähler 204 zählt die von den Einheiten 201 bis 203 (in Bezug auf eine vorgegebene Zeiteinheit) bereitgestellten ersten Werte.
  • Ein dem Zähler 204 nachgeschalteter Vergleicher 205 bestimmt, ob die von dem Zähler bestimmte Anzahl von Fehlerpositionssignalen A n z ( b f p )
    Figure DE102021109391B3_0030

    kleiner oder gleich τ ist, wobei τ die maximale Anzahl der von dem Fehlercode korrigierbarer Fehler angibt.
  • Beispielsweise liefert der Vergleicher 205 an seinem Ausgang
    • - den Wert 1, wenn Anz(bfp) < τ ist und
    • - den Wert 0, wenn Anz(bfp) = τ ist.
  • Anhand des Fehlercodes, beispielsweise unter Verwendung der Fehlersyndrome, können Fehlersignale bestimmt werden. Die Fehlersignale
    • - 1-Bytefehler,
    • - 2-Bytefehler, ⋮
    • - (τ - 1) -Bytefehler
    liegen an den Eingängen eines NICHT-ODER-Gatters 206 (auch bezeichnet als NOR-Gatter) an, wobei pro Eingang ein Fehlersignal anliegt. Am Ausgang des NICHT-ODER-Gatters 206 liegt nur dann der Wert 1 an, wenn alle Eingänge den Wert 0 haben. Entsprechend zeigt der Wert 1 am Ausgang des NICHT-ODER-Gatters 206 an, dass anhand der Fehlersignale kein Fehler bestimmt wurde.
  • Weiterhin liegt an dem Eingang des NICHT-ODER-Gatters 206 ein Signal 0-Bytefehler an, das mit seinem Wert 1 anzeigt, dass kein Fehler aufgetreten ist und mit seinem Wert 0 anzeigt, dass ein Fehler aufgetreten ist. Hat das Signal 0-Bytefehler den Wert 1, ist auch kein Multibytefehler erkennbar.
  • Der Ausgang des Vergleichers ist mit einem ersten Eingang eines UND-Gatters 207 verbunden und der Ausgang des NICHT-ODER-Gatters 206 ist mit einem zweiten Eingang des UND-Gatters 207 verbunden.
  • Der Ausgang des UND-Gatters 207 hat nur dann den Wert 1, wenn der Vergleicher 205 bestimmt hat, dass weniger als τ Fehlerpositionssignale von dem Zähler 204 gezählt wurden und dass von dem NICHT-ODER-Gatter 206 bestimmt wurde, dass keiner der Fehler 0-Bytefehler bis (τ - 1)-Bytefehler vorlag.
  • Ist kein 0-Bytefehler, etc. bis kein (τ - 1)-Bytefehler aufgetreten und zeigt außerdem der Vergleicher 205 durch den ausgegebenen Wert 1 an, dass Anz(bfp) < τ gilt, dann gibt das UND-Gatter 207 den Wert 1 aus. Hierdurch wird ein nicht korrigierbarer Multibytefehler angezeigt.
  • 3 zeigt eine alternative Ausgestaltung für die Einheit zur Bestimmung der Fehlerpositionssignale beispielhaft für einen binären BCH-Code mit b = 1 oder einen Reed-Solomon-Code mit b > 1.
  • Das Fehlersyndrom wird einer Einheit 301 zur Bestimmung von Lokatorpolynomen zugeführt. Die Einheit 301 stellt Lokatorpolynome bereit, die anschließend von einer Einheit 302 zur Lokatorpolynomauswertung verarbeitet werden. Die Einheit 302 erhält zusätzlich zu den Lokatorpolynomen auch Bytepositionen α0 bis αn-1 und liefert im Ergebnis Fehlerpositionssignale bfpi mit i = 1, ... , n- 1. Die Fehlerpositionssignale werden von einem nachgeschalteten Zähler 303 gezählt. Der Zähler 303 stellt an seinem Ausgang eine Anzahl Anz(bfp) von Fehlerpositionssignalen bereit.
  • Um basierend auf dem Fehlersyndrom Lokatorpolynome zu bestimmen, kann beispielsweise der Berlecam-Massey Algorithmus genutzt werden (vergleiche [1]).
  • Die Einheit zur Lokatorpolynomauswertung 302 bestimmt für die zu korrigierenden Bytepositionen α0 bis αn-1, ob das Lokatorpolynom für ein αi gleich 0| oder ungleich 0| ist. Ist das Lokatorpolynom für αi gleich 0|, dann ist der Wert des entsprechenden Fehlerpositionssignal gleich 1, ist das Lokatorpolynom für αi ungleich 0|, dann ist der Wert des entsprechenden Fehlerpositionssignales gleich 0. Zur Bestimmung der Werte des Lokatorpolynoms kann beispielsweise der Suchalgorithmus von Chien verwendet werden, der die Nullstellen des Lokatorpolynoms bestimmt (vgl. [2]).
  • Der Wert des Fehlerpositionssignals bfpi
    • - ist 1, wenn das Lokatorpolynom für αi den Wert 0| annimmt und
    • - ist 0, wenn das Lokatorpolynom für αi einen Wert ungleich 0| annimmt.
  • Dabei sind α0 bis αn-1 Elemente eines Galoisfeldes GF(2m) mit m > 3 und α ist ein erzeugendes Element des Galoisfeldes Eigenschaften von Galoisfeldern sind beispielsweise in [3] beschrieben.
  • Nachfolgend wird ein Beispiel mit b = 1 betrachtet. Es sollen 8 Datenbits durch einen verkürzten Fehlercode C1 verarbeitet werden. Der verkürzte Fehlercode C1 ist ein verkürzter 3-Bitfehler-korrigierender und 4-Bitfehler-erkennender BCH-Code mit einbezogener Gesamtparität. Das verwendete Galoisfeld ist GF(25). Die 8 Datenbits werden mit 16 Prüfbits geschützt. Ein Codewort des Fehlercodes C1 weist somit 8 + 15 + 1 = 24 Bits auf.
  • Ein nicht verkürzter Fehlercode C2 ist beispielsweise ein 3-Bitfehler-korrigierender und 4-Bitfehler-erkennender BCH-Code mit einbezogener Gesamtparität. Der Fehlercode C2 hat die Länge von 25 - 1 = 31 Bits.
  • Der verkürzte Fehlercode C1 ergibt sich durch Kürzen von 7 Bits aus dem nicht verkürzten Fehlercode C2.
  • Ein Codewort des nicht verkürzten Fehlercodes y 2 = y 0 2 , y 1 2 , , y 30 2
    Figure DE102021109391B3_0031
    weist 31 Bits und ein Codewort des verkürzten Fehlercodes y 1 = y 0 1 , y 1 1 , , y 23 1
    Figure DE102021109391B3_0032
    weist 24 Bits auf.
  • Das Verkürzen eines linearen Codes kann durch Streichen von Spalten der H-Matrix erreicht werden.
  • 4 zeigt eine H2-Matrix des nicht verkürzten Fehlercodes C2 und 5 zeigt die H1-Matrix des verkürzten Fehlercodes C1.
  • Die H1-Matrix des verkürzten Fehlercodes geht durch Streichen der Spalten 30, 29, 28, 27, 26, 25, 24 aus der H2-Matrix des nicht verkürzten Fehlercodes hervor. Dadurch wird der nicht verkürzte Fehlercode um die Bits y30, y29, y28, y27, y26, y25, y24 verkürzt.
  • Die H1-Matrix des verkürzten Codes weist 24 Spalten auf, ein Codewort des verkürzten Codes hat 24 Bits. Die Länge des verkürzten Codes ist in diesem Ausführungsbeispiel gleich 24.
  • Dabei sind α0 bis αi Elemente des Galoisfeldes GF(25). Diese können unterschiedlich dargestellt werden (vgl. die in 6 gezeigte Tabelle). Exponenten sind für ein Galoisfeld GF(2m) modulo 2m -1 zu interpretieren: Für das verwendete Galoisfeld GF(25) entspricht dies einer Interpretation modulo 31.
  • 6 zeigt eine Tabelle mit durch das Modularpolynom p(x) = 1 +x2+x5 erzeugten Elementen des Galoisfeldes GF(25) in Potenzdarstellung, Polynomdarstellung und Tupeldarstellung (auch bezeichnet als Vektordarstellung).
  • Für die Fehlererkennung gilt
    • - für einen 0-Bitfehler (wenn also kein Fehler vorliegt) s 1 3 = s 3 = s 5 = 0 | und   s P = 0,
      Figure DE102021109391B3_0033
    • - für einen 1-Bitfehler s 1 3 = s 3 0 | und   s P = 1,
      Figure DE102021109391B3_0034
    • - für einen 2-Bitfehler s 1 3 s 3  und  s P = 0
      Figure DE102021109391B3_0035
    • - und für einen 3-Bitfehler s 1 3 s 3  und  s P = 1,
      Figure DE102021109391B3_0036
  • Die Fehlerkorrektur von BCH-Codes kann mittels Lokatorpolynomen erfolgen. Lokatorpolynome für BCH-Codes sind beispielsweise in [2], [4] oder [5] beschrieben.
  • Nachfolgend wird beispielhaft die 3-Bitfehler-Korrektur beschrieben. Ein 3-Bitfehler kann unter Verwendung eines Lokatorpolynoms dritten Grades   L ( z / 3 ) = = z 3 ( s 1 3 + s 3 ) + z 2 ( s 1 4 + s 1 s 3 ) + z ( s 1 3 s 3 + s 5 ) + s 3 ( s 1 3 + s 3 ) + s 1 ( s 1 5 + s 5 )
    Figure DE102021109391B3_0037
    anhand seiner Nullstellen bestimmt werden: Die drei Nullstellen des Lokatorpolynoms gemäß Gleichung (13) zeigen die Fehlerpositionen in den Daten und stellen somit die Fehlerpositionssignale dar.
  • Die Korrektur eines 3-Bitfehlers kann erfolgen, indem für i mit 0 ≤ i ≤ 23 geprüft wird, ob für z = αi L ( α ' / 3 ) = 0 |
    Figure DE102021109391B3_0038
    gilt, so dass für jede zu korrigierende Bitposition α 3 i ( s 1 3 + s 3 ) + α 2 i ( s 1 4 + s 1 s 3 ) + α i ( s 1 2 s 3 + s 5 ) + s 3 ( s 1 3 + s 3 ) + s 1 ( s 1 5 + s 5 ) = 0 |
    Figure DE102021109391B3_0039
    geprüft wird. Anhand der Nullstellen des Lokatorpolynoms sind die zu korrigierenden Bitpositionen und damit die Werte der Fehlerpositionssignale für diese Bits zu 1 bestimmt. Für alle anderen Bitpositionen sind die Werte der Fehlerpositionssignale gleich 0.
  • Das Lokatorpolynom L(z/3) ist hier ein Polynom dritten Grades, das höchstens drei verschiedene Nullstellen aufweist. Im Falle eines 3-Bitfehlers innerhalb den Bitpositionen 0 bis 23 gilt:
    • - Ist der Wert des Lokatorpolynoms L(z/3) für z = αi gleich 0|, liegt ein Fehler an der i-ten Bitposition vor und der Wert des Fehlerpositionssignals bfpi ist 1.
    • - Ist der Wert des Lokatorpolynoms L(z/3) für z = α1 ungleich 0|, liegt kein Fehler an der i-ten Bitposition vor und der Wert des Fehlerpositionssignals bfpi ist 0.
  • Diese Bestimmungen können zeitgleich oder zumindest teilweise zeitgleich durchgeführt werden. In diesem Sinne kann eine parallele oder eine teilweise parallele Bearbeitung erfolgen, was vorteilhaft die benötigte Verarbeitungsdauer verkürzen kann.
  • Es ist eine Option, die Werte α0 bis α23 für z aufeinanderfolgend oder sequentiell in das Lokatorpolynom L(z/3) einzusetzen und bestimmen, ob und für welche Werte αi das Lokatorpolynom L(z/3) den Wert 0| annimmt. Für diese Nullstellen ist der Wert des entsprechenden Fehlerpositionssignals bfpi gleich 1. Ist der Wert des Lokatorpolynoms ungleich 0|, ist der Wert des entsprechenden Fehlerpositionssignals gleich 0.
  • Es wird nun geprüft, ob die beiden folgenden Bedingungen erfüllt sind:
    1. 1. Ist für i mit 0 ≤ i ≤ 23 die Anzahl der Fehlerpositionssignale, die den Wert 1 annehmen, kleiner als 3?
    2. 2. Liegt weder ein 0-Bitfehler, noch ein 1-Bitfehler, noch ein 2-Bitfehler vor? (Dies kann anhand der Gleichungen (9), (10) und (11) überprüft werden.)
  • Sind diese beiden Bedingungen erfüllt, liegt ein nicht korrigierbarer Fehler in den Bits 0 bis 23 vor.
  • Es ist eine Option zu prüfen, ob für das Lokatorpolynom L ( α i ) = 0 |
    Figure DE102021109391B3_0040
    für ein i ≥ 24 gilt. Da das Lokatorpolynom höchstens drei verschiedene Nullstellen aufweist, kann dann das Lokatorpolynom höchstens noch zwei Nullstellen für αi mit 0 ≤ i ≤ 23 aufweisen.
  • Wird also erkannt, dass L(αj) = 0| für ein j ≥ 24 gilt, dann kann daran erkannt werden, dass ein nicht korrigierbarer Fehler aufgetreten ist.
  • Die Länge des verkürzten Fehlercodes ist in diesem Ausführungsbeispiel gleich 24. Die Bits des Fehlercodes werden als 0-tes Bit bis 23-tes Bit bezeichnet.
  • Anhand der Nullstellen des Lokatorpolynoms L(z/3) gemäß Gleichung (13), das ein Polynom dritten Grades ist, kann festgestellt werden, ob ein korrigierbarer 3-Bitfehler oder ein nicht korrigierbarer Multibitfehler vorliegt. Die Koeffizienten des Lokatorpolynoms sind dabei anhand der Komponenten s1, s3, s5 des Fehlersyndroms des aufgetretenen Fehlers bestimmt.
  • Als Polynom dritten Grades weist das Lokatorpolynom L(z/3) die drei Nullstellen αi1 , αi2 und αi3 auf. Entsprechen diese drei Nullstellen Bitpositionen des verkürzten Fehlercodes, dann liegt ein korrigierbarer Dreibitfehler vor. In diesem Fall gilt 0 i 1 ,   i 2 ,   i 3 23.
    Figure DE102021109391B3_0041
  • Für i1, i2 und i3 sind die entsprechenden Fehlerpositionssignale bfpi1 , bfpi2 , bfpi3 jeweils gleich 1 und in den Bitpositionen i1, i2 und i3 wird das fehlerhafte Wort des verkürzten Fehlercodes korrigiert.
  • Wie vorstehend eingeführt, werden die zu korrigierenden Bytepositionen bzw. die zu korrigierenden Bitpositionen des verkürzten Fehlercodes als Wertebereich (der Fehlerpositionssignale) bezeichnet. In diesem Beispiel sind dann die drei Fehlerpositionssignale Elemente dieses Wertebereichs.
  • Gibt es hingegen eine Nullstelle αj mit j ≥ 24, die also nicht in dem Wertebereich liegt, kann es nur noch höchstens zwei Fehlerpositionssignale geben, die den Wert 1 annehmen und in dem Wertebereich liegen, da ein Polynom dritten Grades nur drei Nullstellen aufweist.
  • Es kann somit keinen korrigierbaren 3-Bitfehler in den Bits des verkürzten Fehlercodes geben, wenn eine der Nullstellen des Lokatorpolynoms für eine Bitposition bestimmt ist, die außerhalb der Bitpositionen des verkürzten Codes liegt. Hieraus kann gefolgert werden, dass ein nicht korrigierbarer Multibitfehler in den Bits des verkürzten Fehlercodes aufgetreten ist.
  • Mit anderen Worten: Ein nicht korrigierbarer Multibitfehler kann bereits daran erkannt werden, dass für das Lokatorpolynom dritten Grades eine Nullstelle αj mit j ≥ 24 bestimmbar ist, so dass das entsprechende Fehlerpositionssignal außerhalb des Wertebereiches für den verkürzten Fehlercode liegt.
  • Alternativ kann ein aufgetretener nicht korrigierbarer Multibitfehler auch daran erkannt werden, dass dann, wenn die Fehlerpositionen als Nullstellen eines Lokatorpolynom m-ten Grades bestimmt sind, weniger als m Fehlerpositionssignale für die Bits des verkürzten Fehlercodes bestimmt sind, für die die Fehlerpositionssignale den Wert 1 annehmen.
  • Die beschriebene Vorgehensweise soll nun anhand eines Beispiels veranschaulicht werden.
  • Beispielhaft wird angenommen, dass ein 5-Bitfehler in den Bitpositionen y14, y18, y19, y20, y21 aufgetreten ist, für den die Syndromkomponenten s1, s3, s5 und sP des verkürzten Fehlercodes durch die komponentenweisen XOR-Summen (Exklusiv-Oder-Summen) der entsprechenden Spalten der H1-Matrix gemäß 5 zu s 1 = α 14 + α 18 + α 19 + α 20 + α 21 = α 20
    Figure DE102021109391B3_0042
    s 3 = α 11 + α 23 + α 26 + α 29 + α 1 = α 7
    Figure DE102021109391B3_0043
    s 5 = α 8 + α 28 + α 2 + α 7 + α 12 = α 5
    Figure DE102021109391B3_0044
    s P = 1 + 1 + 1 + 1 + 1 = 1
    Figure DE102021109391B3_0045
    bestimmt sind. Dies kann unter Verwendung der in 6 gezeigten Elemente des Galoisfeldes GF(25) verifiziert werden.
  • Die Bedingungen für einen 3-Bitfehler zeigt Gleichung (12). Im vorliegenden Fall gelten: s 1 3 = α 3 20 = α 29 ,
    Figure DE102021109391B3_0046
    s 3 = α 6 ,
    Figure DE102021109391B3_0047
    s 1 3 s 3 ,
    Figure DE102021109391B3_0048
    s P = 1.
    Figure DE102021109391B3_0049
  • Damit wären eigentlich die Bedingungen für einen vorliegenden 3-Bitfehler erfüllt. Dies trifft jedoch vorliegend nicht zu, da - wie erwähnt - in diesem Beispiel tatsächlich ein 5-Bitfehler vorliegt.
  • Der hier beispielhaft verwendete BCH-Fehlercode ist jedoch nur in der Lage, 3-Bitfehler zu korrigieren und 4-Bitfehler zu erkennen. Nachfolgend wird erläutert, wie trotzdem möglich ist, einen (nicht korrigierbaren) 5-Bitfehler zu erkennen.
  • Zunächst scheint also ein 3-Bitfehler vorzuliegen. Allerdings zeigt keines der Fehlerpositionssignale ein fehlerhaftes Bit für die korrigierenden Bits 0 bis 23 an (die Werte der Fehlerpositionssignale sind alle gleich 0).
  • Für i mit 0 ≤ i ≤ 23 gilt für das Lokatorpolynom gemäß Gleichung (13)   L ( α i / 3 ) 0 | .
    Figure DE102021109391B3_0050
  • Dies kann durch Einsetzen der Werte α0 bis α23 verifiziert werden. Damit gilt für alle Fehlerpositionssignale b f p 0 = b f p 1 = = b f p 23 = 0.
    Figure DE102021109391B3_0051
  • Da weniger als drei Fehlerpositionssignale den Wert 1 annehmen, kann somit bestimmt werden, dass ein nicht korrigierbarer Multibitfehler in den Bits y0 bis y23 des verkürzten Fehlercodes aufgetreten ist.
  • Mit anderen Worten: Einerseits ergibt sich aus der Gleichung (13), dass ein 3-Bitfehler vorliegt, andererseits gibt es kein Fehlerpositionssignal, das diese Aussage bestätigt. Es liegt also ein Widerspruch zwischen diesen beiden Bedingungen vor. Daraus kann gefolgert werden, dass ein Multibitfehler vorliegt. Dieser ist nicht korrigierbar. Insbesondere ist aufgrund der vorhandenen Informationen nicht ersichtlich, welche Bits fehlerhaft sind. Auch ist nicht bekannt, um welche Art des Multibitfehlers (hier den beispielhaften 5-Bitfehler) es sich handelt und wie der Multibitfehler zu korrigieren wäre. Es ist jedoch von erheblichem Vorteil, zu erkennen, dass ein Multibitfehler vorliegt. Diese Tatsache kann zu weiteren Aktionen genutzt werden, z.B. kann eine weitere Fehlerkorrektur erforderlich, ein Speicherbereich als fehlerhaft gekennzeichnet, eine Übertragung wiederholt, ein Baustein ersetzt und/oder eine Alarmmeldung ausgegeben werden.
  • Für die Bits y26, y29 und y30, die Bits des nicht gekürzten Fehlercodes, aber keine Bits des gekürzten Fehlercodes sind, ergeben sich L ( α 26 / 2 ) = L ( α 29 / 2 ) = L ( α 30 / 2 ) = 0 | .
    Figure DE102021109391B3_0052
  • Das Lokatorpolynom nach Gleichung (17) hat in diesem Beispiel drei Nullstellen α26, α29 und α30. Diese entsprechen Bitpositionen des nicht verkürzten Fehlercodes, die jedoch keine Bitpositionen des verkürzten Fehlercodes sind.
  • Ist der Wert eines Fehlerpositionssignals für eine Bitposition des nicht verkürzten Fehlercodes zu 1 bestimmt und ist die Bitposition keine Bitposition des verkürzten Fehlercodes, dann folgt bereits hieraus, dass für die Bitpositionen des verkürzten Fehlercodes weniger als τ Fehlerpositionssignale den Wert 1 annehmen können (sofern der verkürzte Fehlercode ein τ Bitfehler-korrigierender Fehlercode ist).
  • Es ist eine Option, die Werte der Fehlerpositionssignale, die den Wert 1 annehmen, zu zählen. Dies kann beispielsweise mit einem Binärzähler (sequentiell oder parallel) erfolgen. Wird durch den Zähler bestimmt, dass der Zählerstand kleiner als τ ist, wenn ein τ Bitfehler-korrigierender verkürzter Fehlercode verwendet wird, kann ein nicht korrigierbarer Fehler erkannt werden, wenn bestimmt ist, dass kein 1-Bitfehler etc. bis kein τ-Bitfehler aufgetreten ist. Ist ein Lokatorpolynom τ-ten Grades bestimmt, kann bereits bestimmt werden, dass ein nicht korrigierbarer Multibitfehler aufgetreten ist, wenn weniger als τ Fehlerpositionssignale für die Bitpositionen des verkürzten Codes den Wert 1 annehmen.
  • Wird festgestellt, dass ein Fehlerpositionssignal gleich 1 für eine Fehlerposition bestimmt ist, die keiner Bitposition des verkürzten Fehlercodes, sondern einer Bitposition des nicht verkürzten Fehlercodes entspricht, wird ein nicht korrigierbarer Fehler erkannt.
  • Das Zählen der Fehlerpositionen kann dabei sowohl unter Verwendung eines sequentiellen Zählers als auch eines parallelen Zählers erfolgen, wobei ein sequentieller Zähler nach jedem Zählen auf seinen Ausgangszustand zurückzusetzen ist.
  • Die Werte der Fehlerpositionssignale bfp0 bis bfp23 können dabei oder zumindest teilweise parallel bestimmt werden. In [4] ist beschrieben, wie für ein Lokatorpolynom zweiten, dritten und vierten Grades die zu korrigierenden Bitpositionen bestimmt werden können. Aus den zu korrigierenden Bitpositionen sind die Fehlerpositionssignale zu 1 bestimmt.
  • Die Werte der Fehlerpositionssignale können auch unter Verwendung von Software durch ein Suchverfahren bestimmt werden, wobei alle den Bitpositionen des verkürzten Fehlercodes entsprechenden Elemente des Galoisfeldes in das Lokatorpolynom eingesetzt werden und ein Fehlerpositionssignal für das entsprechende Bit zu 1 bestimmt ist, wenn das Lokatorpolynom für den eingesetzten Wert den Wert 0| annimmt. Dabei ist ein Suchverfahren für das Bestimmen der Nullstellen des Lokatorpolynoms beispielsweise in [2] beschrieben.
  • Analog kann verfahren werden, wenn der verkürzte Fehlercode ein b-Bit Bytefehler-korrigierender Code mit b > 1 ist und der verkürzte Fehlercode aus einem nicht verkürzten Fehlercode bestimmbar ist. Beim Verkürzen eines τ Bytefehler-korrigierenden Codes mit b > 1 ist der verkürzte Fehlercode durch Verkürzen von Bytes des nicht verkürzten Fehlercodes bestimmbar.
  • Bei der Fehlerkorrektur kann ein Fehlerpositionssignal bestimmt sein, das den Wert 1 annimmt, wenn in dem entsprechenden Byte ein Fehler auftritt. Das Fehlerpositionssignal kann zu 1 bestimmt sein, wenn das Lokatorpolynom den Wert 0| annimmt und zu 0 bestimmt sein, wenn das Lokatorpolynom einen Wert ungleich 0| annimmt. Die Bestimmung von Fehlerpositionssignalen für einen Reed-Solomon-Code ist beispielsweise in [5] beschrieben, wobei dort die Fehlerpositionssignale als Bytefehlerpositionssignale bezeichnet sind.
  • Der Wert des Fehlers oder der Fehlerwert um ein fehlerhaftes Byte zu korrigieren, kann durch ein Fehlerpolynom bestimmt sein, wie das beispielsweise in [1] oder in [4] beschrieben ist.
  • Obwohl die Erfindung im Detail durch das mindestens eine gezeigte Ausführungsbeispiel näher illustriert und beschrieben wurde, so ist die Erfindung nicht darauf eingeschränkt und andere Variationen können vom Fachmann hieraus abgeleitet werden, ohne den Schutzumfang der Erfindung zu verlassen.
  • Literaturverzeichnis:
    1. [1] Wicker, S.: Error Control Systems for Digital Communication and Storage, Prentice Hall, 1995, Seiten 214-224
    2. [2] Wicker, S.: Error Control Systems for Digital Communication and Storage, Prentice Hall, 1995, Seiten 205-210
    3. [3] Lin, S; Costello, D.: Error Control Coding, Prentice Hall, 1983, Seiten 29-40
    4. [4] Okano, H.; Imai, H.: A construction method for high speed decoders using ROMs for Bose-Chadhuri-Hocquenhem and Reed Solomon Code, IEEE Trans. Comp. C36 (10), Seiten 1165-1171
    5. [5] DE 10 2017 125 617 B4

Claims (9)

  1. Verfahren zur Erkennung eines Multibytefehlers in einem Codewort eines verkürzten Fehlercodes, - bei dem der verkürzte Fehlercode ein τ Byte-korrigierender Fehlercode ist, - bei dem Bytes des Codeworts des verkürzten Fehlercodes einen ersten Bereich bestimmen, - bei dem der nicht korrigierbare Multibytefehler erkannt wird, sofern mindestens eine der folgenden Bedingungen erfüllt ist: (a) mindestens ein Fehlerpositionssignal liegt nicht in dem ersten Bereich, (b) mindestens ein Fehlerpositionssignal zeigt mindestens einen Fehler aber weniger als τ Fehler in dem ersten Bereich an und es liegt kein 1-Bytefehler bis (τ - 1)-Bytefehler vor.
  2. Verfahren nach Anspruch 1, bei dem die Bedingung (a) weiterhin umfasst: das mindestens eine Fehlerpositionssignal, das nicht in dem ersten Bereich liegt, liegt in einem zweiten Bereich, der bestimmt ist durch Bytes eines nicht verkürzten Fehlercodes, die nicht auch Bytes des verkürzten Fehlercodes sind.
  3. Verfahren nach einem der vorhergehenden Ansprüche, bei dem eine Anzahl des mindestens einen Fehlerpositionssignals mittels Zählens bestimmt wird.
  4. Verfahren nach einem der vorhergehenden Ansprüche, bei dem mittels des Fehlerpositionssignals ein Byte eines Codeworts referenziert wird.
  5. Verfahren nach einem der vorhergehenden Ansprüche, bei dem das mindestens eine Fehlerpositionssignal mittels mindestens eines Lokatorpolynoms des Fehlercodes bestimmt wird.
  6. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der verkürzte Fehlercode ein BCH-Code der Länge n über einem Galoisfeld GF(2m) mit n < 2m - 1 ist und m ≥ 3 gilt.
  7. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der verkürzte Fehlercode ein Reed-Solomon-Code über einem Galoisfeld GF(2m) ist.
  8. Vorrichtung zur Erkennung eines Multibytefehlers in einem Codewort eines verkürzten Fehlercodes, - wobei der verkürzte Fehlercode ein τ Byte-korrigierender Fehlercode ist, - wobei Bytes des Codeworts des verkürzten Fehlercodes einen ersten Bereich bestimmen, - wobei die Vorrichtung eingerichtet ist zur Erkennung des nicht korrigierbaren Multibytefehlers, sofern mindestens eine der folgenden Bedingungen erfüllt ist: (a) mindestens ein Fehlerpositionssignal liegt nicht in dem ersten Bereich, (b) mindestens ein Fehlerpositionssignal zeigt mindestens einen Fehler aber weniger als τ Fehler in dem ersten Bereich an und es liegt kein 1-Bytefehler bis (τ - 1)-Bytefehler vor.
  9. Vorrichtung nach Anspruch 8, wobei die Vorrichtung Teil eines Speichers oder eines Speichersystems ist oder separat zu dem Speicher oder dem Speichersystem ausgeführt ist.
DE102021109391.0A 2021-04-14 2021-04-14 Multibytefehler-Erkennung Active DE102021109391B3 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102021109391.0A DE102021109391B3 (de) 2021-04-14 2021-04-14 Multibytefehler-Erkennung
TW111105685A TW202308331A (zh) 2021-04-14 2022-02-16 多位元組錯誤的辨識
US17/719,648 US20220345157A1 (en) 2021-04-14 2022-04-13 Multibyte error detection

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102021109391.0A DE102021109391B3 (de) 2021-04-14 2021-04-14 Multibytefehler-Erkennung

Publications (1)

Publication Number Publication Date
DE102021109391B3 true DE102021109391B3 (de) 2022-08-25

Family

ID=82702510

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021109391.0A Active DE102021109391B3 (de) 2021-04-14 2021-04-14 Multibytefehler-Erkennung

Country Status (3)

Country Link
US (1) US20220345157A1 (de)
DE (1) DE102021109391B3 (de)
TW (1) TW202308331A (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022101798B3 (de) 2022-01-26 2023-07-20 Infineon Technologies Ag Fehlerverarbeitung

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0413856A1 (de) 1989-08-24 1991-02-27 Koninklijke Philips Electronics N.V. Verfahren und Einrichtung zur Decodierung von wortgeschützten Codewörtern durch einen nichtbinären BCH-Code gegen mindestens einen Symbolfehler
JPH10229342A (ja) 1997-02-14 1998-08-25 Matsushita Electric Ind Co Ltd 短縮化誤り訂正復号装置
EP1037400A2 (de) 1999-03-16 2000-09-20 TRW Inc. Verminderung durch Kodenverschiebung des falschen Empfangs eines Nebenkanals auf einer Aufwärtsverbindung in einer Kommunikationsanordnung mit datenverarbeitenden Satelliten
DE102017125617B4 (de) 2017-11-02 2020-06-18 Infineon Technologies Ag Bestimmung und Verwendung von Bytefehlerpostionssignalen

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4494234A (en) * 1982-12-29 1985-01-15 International Business Machines Corporation On-the-fly multibyte error correcting system
US5099482A (en) * 1989-08-30 1992-03-24 Idaho Research Foundation, Inc. Apparatus for detecting uncorrectable error patterns when using Euclid's algorithm to decode Reed-Solomon (BCH) codes
DE4105860C2 (de) * 1991-02-25 1995-04-20 Broadcast Television Syst Schaltungsanordnung zum Erkennen und Korrigieren von Fehlern in Datenworten
US6192497B1 (en) * 1998-08-27 2001-02-20 Adaptec, Inc. Parallel Chien search circuit
GB2399896A (en) * 2002-07-31 2004-09-29 Hewlett Packard Co Identifying uncorrectable codewords in a reed-solomon decoder handling errors and erasures
CN101814922B (zh) * 2009-02-23 2013-06-19 国际商业机器公司 基于bch码的多位错纠错方法和装置以及存储系统
US9582354B2 (en) * 2014-01-28 2017-02-28 Infineon Technologies Ag Apparatus and method for improving data storage by data inversion
US10804935B2 (en) * 2018-01-02 2020-10-13 Intel Corporation Techniques for reducing latency in the detection of uncorrectable codewords

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0413856A1 (de) 1989-08-24 1991-02-27 Koninklijke Philips Electronics N.V. Verfahren und Einrichtung zur Decodierung von wortgeschützten Codewörtern durch einen nichtbinären BCH-Code gegen mindestens einen Symbolfehler
JPH10229342A (ja) 1997-02-14 1998-08-25 Matsushita Electric Ind Co Ltd 短縮化誤り訂正復号装置
EP1037400A2 (de) 1999-03-16 2000-09-20 TRW Inc. Verminderung durch Kodenverschiebung des falschen Empfangs eines Nebenkanals auf einer Aufwärtsverbindung in einer Kommunikationsanordnung mit datenverarbeitenden Satelliten
DE102017125617B4 (de) 2017-11-02 2020-06-18 Infineon Technologies Ag Bestimmung und Verwendung von Bytefehlerpostionssignalen

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022101798B3 (de) 2022-01-26 2023-07-20 Infineon Technologies Ag Fehlerverarbeitung

Also Published As

Publication number Publication date
US20220345157A1 (en) 2022-10-27
TW202308331A (zh) 2023-02-16

Similar Documents

Publication Publication Date Title
DE102011085602B4 (de) Vorrichtung und Verfahren zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz
DE2060643C3 (de) Schaltungsanordnung zur Korrektur von Einzelfehlern
DE102013215055B4 (de) Schaltungsanordnung, Vorrichtung, Verfahren und Computerprogramm mit modifiziertem Fehlersyndrom zur Fehlererkennung von permanenten Fehlern in Speichern
DE2657826A1 (de) Einrichtung zur fehlererkennung und fehlerkorrektur im speichersystem einer dv-anlage
DE3787900T2 (de) Verfahren und Gerät zur Erzeugung von Prüfungs-Byten zur Fehlerdetektion für einen Datenblock.
DE102017125617B4 (de) Bestimmung und Verwendung von Bytefehlerpostionssignalen
DE102014215252B9 (de) Wirksame fehlerkorrektur von mehrbitfehlern
DE102006005817B4 (de) Fehlererkennungsvorrichtung für einen Adressdecoder und Vorrichtung zur Fehlererkennung für einen Adressdecoder
DE2217935C3 (de) Anordnung und Verfahren zur Korrektur von Doppelfehlern in einer Nachricht
DE102005022107B9 (de) Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge
DE102011087634B9 (de) Vorrichtung und verfahren zum erfassen eines fehlers in einem codierten binärwort
DE102021109391B3 (de) Multibytefehler-Erkennung
DE102016104012A1 (de) Verarbeitung eines Datenworts
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
DE102019113970B4 (de) Erkennung von adressfehlern
DE102018126685B3 (de) Verarbeitung von Daten
DE102022101798B3 (de) Fehlerverarbeitung
DE102015121646B4 (de) Fehlerkorrektur
DE102015118668B4 (de) Fehlerkorrektur
DE102013201422B3 (de) Verfahren zum Wiederherstellen verlorengegangener und/ oder beschädigter Daten
DE102021123727B4 (de) Bytefehlerkorrektur
DE102022118280A1 (de) Fehlerverarbeitung und Korrektur benachbarter 2-Bitfehler
DE102022111624B4 (de) Fehlerkorrektur mit schneller Syndromberechnung

Legal Events

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