DE102022101798B3 - Fehlerverarbeitung - Google Patents

Fehlerverarbeitung Download PDF

Info

Publication number
DE102022101798B3
DE102022101798B3 DE102022101798.2A DE102022101798A DE102022101798B3 DE 102022101798 B3 DE102022101798 B3 DE 102022101798B3 DE 102022101798 A DE102022101798 A DE 102022101798A DE 102022101798 B3 DE102022101798 B3 DE 102022101798B3
Authority
DE
Germany
Prior art keywords
error
byte
code
byte error
determined
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
DE102022101798.2A
Other languages
English (en)
Inventor
Thomas Kern
Thomas Rabenalt
Alexander Klockmann
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 DE102022101798.2A priority Critical patent/DE102022101798B3/de
Priority to US18/159,365 priority patent/US20230267039A1/en
Application granted granted Critical
Publication of DE102022101798B3 publication Critical patent/DE102022101798B3/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • 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/0041Arrangements at the transmitter 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/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/0064Concatenated codes
    • H04L1/0065Serial concatenated codes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/74Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
    • 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/47Error detection, forward error correction or error protection, not provided for in groups H03M13/01 - H03M13/37
    • H03M13/51Constant weight codes; n-out-of-m codes; Berger codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Error Detection And Correction (AREA)

Abstract

Es wird eine Lösung vorgeschlagen zur Fehlerverarbeitung, wobei n Bytefehlerpositionen von n Bytefehlern vorgegeben sind (n als positive ganze Zahl), wobei bestimmt wird, ob es eine weitere Bytefehlerposition gibt anhand der n Bytefehlerpositionen und anhand von n + 1 Fehlersyndromkomponenten eines ersten Fehlercodes.

Description

  • Der hier beschriebene Ansatz betrifft Lösungen zur Fehlerverarbeitung, umfassend z.B. die Erkennung oder Korrektur von Fehlern, insbesondere Bytefehlern. Die Erkennung kann auch betreffen eine Erkennung, ob (oder ob nicht) ein Fehler bestimmbar ist bzw. eine Fehlerposition bestimmbar ist. Insbesondere betrifft der hier beschriebene Vorschlag eine effiziente Korrektur eines weiteren Bytefehlers.
  • Es ist bekannt, Fehler in Daten, die in Form von Bytes vorliegen, byteweise zu erkennen und byteweise zu korrigieren. Ein Byte kann dabei mindestens zwei Bit umfassen. Mindestens ein Fehler in mindestens einem Bit eines Bytes wird als ein Bytefehler bezeichnet. Ist mindestens ein Bit eines Bytes fehlerhaft, liegt ein Bytefehler vor. Ist nur mindestens ein Bit eines einzelnen Bytes fehlerhaft, entspricht dies einem 1-Bytefehler.
  • Aus DE 102021109391 B3 ist bekannt, einen Multibytefehler zu erkennen in einem Codewort eines verkürzten Fehlercodes.
  • Aus DE 10 2017 125 617 A1 ist bekannt, parallel Bytefehlerpositionssignale zur Indentifikation von Bytefehlern zu bestimmen.
  • Die Korrektur von 1-Bytefehlern ist beispielsweise in [Bossen, D.: b-Adjacent Error Correction, IBM J. Res. Dev, July 1970, Seiten 402 bis 408] beschrieben.
  • Sind Bit von zwei unterschiedlichen Bytes fehlerhaft, entspricht dies einem 2-Bytefehler. Demnach gilt, dass ein k-Bytefehler vorliegt, wenn Bit in k Bytes fehlerhaft sind (d.h. mindestens ein Bit in jedem der k Bytes einen Fehler aufweist).
  • Es ist eine generelle Motivation, die Fehlerkorrektur eventuell fehlerhafter Bytes schnell durchzuführen. Dies gilt beispielsweise wenn in Bytes vorliegende Daten parallel aus einem Speicher ausgelesen und parallel bereitgestellt werden sollen. In so einem Szenario kann es vorteilhaft sein, auch die Fehlerkorrektur parallel durchzuführen.
  • Parallel bedeutet hierbei insbesondere, dass zumindest teilweise zeitgleich (beispielsweise auch zumindest teilweise zeitlich überlappend) eine Fehlerkorrektur oder ein Teil der Fehlerkorrektur für mindestens zwei Bytes durchgeführt wird.
  • Die Bytefehler-Korrektur kann beispielsweise mittels eines Reed-Solomon-Codes erfolgen.
  • In OKANO [Okano, H., Imai, H.: A Construction Method of High-Speed Decoders Using ROM's for Bose-Chaudhuri-Hocquengiem and Reed-Solomon Codes, IEEE TRANSACTIONS ON COMPUTERS, VOL. C-36, NO. 10, OCTOBER 1987, Seiten 1165 bis 1171] ist eine Schaltungsanordnung zur Korrektur von 2-Bytefehlern unter Verwendung eines Reed-Solomon-Codes beschrieben. Hierbei ist es von Nachteil, dass die in OKANO beschriebene Korrektur von 2-Bytefehlern verhältnismäßig langsam ist.
  • Die Aufgabe der Erfindung besteht darin, Nachteile bekannter Lösungen zur Korrektur von Bytefehlern zu vermeiden und insbesondere eine effiziente Korrektur von Bytefehlern zu ermöglichen.
  • Diese Aufgabe wird gemäß den Merkmalen der unabhängigen Ansprüche gelöst. Bevorzugte Ausführungsformen sind insbesondere den abhängigen Ansprüchen entnehmbar.
  • Diese hierin vorgeschlagenen Beispiele können auf zumindest einer der nachfolgenden Lösungen basieren. Insbesondere können Kombinationen der nachfolgenden Merkmale eingesetzt werden, um ein gewünschtes Ergebnis zu erreichen. Die Merkmale des Verfahrens können mit (einem) beliebigen Merkmal(en) der Vorrichtung oder der Schaltung oder umgekehrt kombiniert werden.
  • Zur Lösung der Aufgabe wird ein Verfahren zur Fehlerverarbeitung vorgeschlagen,
    • - wobei n Bytefehlerpositionen von n Bytefehlern vorgegeben sind, wobei n eine positive ganze Zahl ist,
    • - bei dem bestimmt wird, ob es eine weitere Bytefehlerposition gibt anhand der n Bytefehlerpositionen und anhand von n + 1 Fehlersyndromkomponenten eines ersten Fehlercodes.
  • Es ist eine Weiterbildung, dass die weitere Bytefehlerposition durch die n Bytefehlerpositionen und die n + 1 Fehlersyndromkomponenten des ersten Fehlercodes bestimmt wird.
  • Es ist eine Weiterbildung, dass der erste Fehlercode ein Bytefehlercode, insbesondere ein Reed-Solomon-Code, ist.
  • Es ist eine Weiterbildung, dass erkannt wird, dass kein weiterer Bytefehler vorhanden ist, falls keine weitere Bytefehlerposition bestimmbar ist.
  • Es ist eine Weiterbildung, dass die weitere Bytefehlerposition in Abhängigkeit mindestens einer symmetrischen Funktion der n Bytefehlerpositionen bestimmt wird.
  • Es ist eine Weiterbildung, dass
    • - im fehlerfreien Fall ein Byte des ersten Fehlercodes in ein Codewort eines zweiten Fehlercodes transformiert wird,
    • - eine Bytefehlerposition bestimmt wird, falls ein Nicht-Codewort des zweiten Fehlercodes erkannt wird.
  • Es ist eine Weiterbildung, dass der zweite Fehlercode ein n1-aus-n-Code ist, wobei 1 ≤ n1 < n ≤ 2 gilt.
  • Es ist eine Weiterbildung, dass Codewörter des zweiten Fehlercodes in einem Speicher gespeichert werden.
  • Es ist eine Weiterbildung, dass im fehlerfreien Fall Codewörter des zweiten Fehlercodes aus dem Speicher ausgelesen und in Bytes des ersten Fehlercodes zurücktransformiert werden.
  • Es ist eine Weiterbildung, dass das Auslesen aus dem Speicher unter Berücksichtigung einer zeitlichen Reihenfolge erfolgt.
  • Es ist eine Weiterbildung, dass dann, wenn beim Auslesen aus dem Speicher ein Nicht-Codewort des zweiten Fehlercodes erkannt wird, eine Bytefehlerposition für dieses Byte des ersten Fehlercodes bestimmt wird.
  • Es ist eine Weiterbildung, dass die weitere Bytefehlerposition α2 bestimmbar ist, so dass gilt: α 2 = s 3 + s 2 α 1 s 1 α 1 + s 2 ,
    Figure DE102022101798B3_0001
    wobei α1 die vorgegebene Bytefehlerposition und s1, s2, s3 Syndromkomponenten bezeichnen.
  • Auch wird eine Vorrichtung zur Fehlerverarbeitung vorgeschlagen, die eingerichtet ist zu bestimmen, ob es eine weitere Bytefehlerposition gibt anhand von n Bytefehlerpositionen und anhand von n + 1 Fehlersyndromkomponenten eines ersten Fehlercodes, wobei die n Bytefehlerpositionen von n Bytefehlern vorgegeben sind und wobei n eine positive ganze Zahl ist.
  • Es ist eine Weiterbildung, dass die Vorrichtung ferner eingerichtet ist, die weitere Bytefehlerposition durch die n Bytefehlerpositionen und die n + 1 Fehlersyndromkomponenten des ersten Fehlercodes zu bestimmen.
  • Ferner wird eine Schaltungsanordnung angegeben, umfassend mindestens eine der hierin beschriebenen Vorrichtungen.
  • Die Vorrichtung und/oder Schaltungsanordnung können Teile eines integrierten Schaltkreises oder Speicherbausteins oder separat zu diesem ausgeführt sein.
  • Die oben beschriebenen Eigenschaften, Merkmale und Vorteile dieser Erfindung sowie die Art und Weise, wie diese erreicht werden, werden nachfolgend beschrieben im Zusammenhang mit einer schematischen Beschreibung von Ausführungsbeispielen, die im Zusammenhang mit den Zeichnungen näher erläutert werden. Dabei können zur Übersichtlichkeit gleiche oder gleichwirkende Elemente mit gleichen Bezugszeichen versehen sein.
  • Es zeigen:
    • 1 ein Beispiel der Verwendung eines ersten und eines zweiten Fehlercodes, wobei der zweite Fehlercode genutzt wird, um mindestens eine Bytefehlerposition bereitzustellen, die der erste Fehlercode zur Korrektur mindestens eines weiteren Bytefehlers nutzen kann;
    • 2 ein symbolisches Schaltbild zur Bestimmung von α1 + α2 und α1 · α2;
    • 3 ein symbolisches Schaltbild zur Bestimmung einer weiteren Bytefehlerposition α3.
  • Zur Fehlerkorrektur und Fehlererkennung von beispielsweise in Speicherzellen gespeicherten Daten können Bytefehler-erkennende und Bytefehler-korrigierende Codes (auch bezeichnet als Fehlercodes) verwendet werden. Ein Beispiel für einen Fehlercode ist der Reed-Solomon-Code (siehe dazu auch nachfolgende Ausführungen).
  • Bei einem Bytefehler ist die Position der fehlerhaften Bytes zu bestimmen und, sofern der Bytefehler korrigiert werden soll, ist auch der korrekte Wert des Bytes zu ermitteln.
  • Die Position des fehlerhaften Bytes wird anhand der Bytefehlerposition (auch bezeichnet als Bytefehlerpositionswert, der angibt welches Byte bzw. welche Bytes (möglicherweise) fehlerhaft sind) bestimmt. Beispielsweise kann ein Wert 1 für die Bytefehlerposition anzeigen, dass das Byte fehlerhaft ist und ein Wert 0 kann anzeigen, dass das Byte nicht fehlerhaft ist.
  • Ein Bytefehlerwert gibt an, um welchen Wert sich ein fehlerhaftes Byte von seinem korrekten Wert unterscheidet. Umfasst jedes Byte m Bits, so umfasst auch der Bytefehlerwert m Bits. Beispielweise kann eine Korrektur durchgeführt werden, indem die Bits des fehlerhaften Bytes komponentenweise mit den zugehörigen Bits des Bytefehlerwerts Exklusiv-Oder-verknüpft (XOR-verknüpft) werden.
  • Ein t-Bytefehler besagt, dass eine Anzahl von t Bytes fehlerhaft ist. Um einen t-Bytefehler zu korrigieren, sind t Bytefehlerpositionen und t Bytefehlerwerte erforderlich.
  • Für ein Byte mit m Bits kann das Byte als ein Element des Galoisfeldes GF(2m) beschrieben werden. Allgemein gilt: Bilden m p-wertige Werte mit p > 2 ein Byte und ist p eine Primzahl, kann ein Byte als ein Element des Galoisfeldes GF(pm) beschrieben werden. Hierbei ist m beispielsweise eine positive ganze Zahl größer als 2.
  • Im vorliegenden Beispiel werden Bytes mit m Bits verwendet. Entsprechend gibt es 2m verschiedene m-Bit Bytes.
  • Beispielsweise soll eine erste Anzahl von N Bytefehlern korrigiert werden. Entsprechend wird ein N-Bytefehler (N ≥ 1) korrigiert.
  • Für eine zweite Anzahl N1 von Bytefehlern kann die entsprechende Bytefehlerposition schon bestimmt sein, in denen ein Bytefehler aufgetreten ist. Bei einer Korrektur ist dann nur noch der Bytefehlerwert für diese N1 Bytefehler an den bekannten Bytefehlerpositionen zu bestimmen.
  • Für eine dritte Anzahl N2 von Bytefehlern kann sowohl der Bytefehlerwert als auch die Bytefehlerposition zu bestimmen sein. Dabei kann N1 + N2 = N gelten. Dabei ist N2 ≥ 1 und es kann N2 = 1 gelten.
  • Beispiel: Zwei Fehlercodes
  • Beispielsweise bildet das m-Bit Byte im fehlerfreien Fall ein Codewort des Reed-Solomon-Codes. Der Reed-Solomon-Code dient hier als ein erster Fehlercode.
  • Zusätzlich kann das m-Bit-Byte in ein Codewort eines zweiten Fehlercodes transformiert werden, bevor es in einem Speicher abgespeichert wird. Der zweite Fehlercode kann ein n1-aus-n-Code sein.
  • Ist beispielsweise m = 6, bilden eine Merhzahl von 6-Bit Bytes im fehlerfreien Fall das Codewort eines Reed-Solomon-Codes. Beispielsweise kann mindestens ein Byte des Codeworts ein Prüfbyte des Reed-Solomon-Codes sein. Pro Byte gibt es in diesem Beispiel 2m = 26 = 64 verschiedene Werte.
  • In diesem Beispiel ist der zweite Fehlercode ein 4-aus-8-Code mit ( 8 4 ) = 70
    Figure DE102022101798B3_0002
    Codewörtern. Ein 6-Bit Byte des Reed-Solomon-Codes kann beispielsweise in ein Codewort des zweiten Fehlercodes transformiert und in acht Speicherzellen eines Speichers abgespeichert werden (vergleiche hierzu z.B. US 10,903,859 B2 ). Jedes 6-Bit-Byte des ersten Fehlercodes wird dabei umkehrbar eindeutig in eines der 70 Codewörter des 4-aus-8-Codes des zweiten Fehlercodes transformiert.
  • Beim Auslesen aus dem Speicher werden im fehlerfreien Fall Codewörter des 4-aus-8-Codes ausgelesen und in 6-Bit Bytes zurück transformiert. Im fehlerfreien Fall ergeben die nach der Rücktransformation vorliegenden 6-Bit Bytes wieder ein Codewort des ersten Fehlercodes.
  • Bereits beim Auslesen aus dem Speicher kann überprüft werden, ob ein Codewort des 4-aus-8-Codes vorliegt: Sind nicht 4 Einsen und 4 Nullen gelesen worden, handelt es sich nicht um ein Codewort des 4-aus-8-Codes. In diesem Fall ist das ausgelesene Byte fehlerhaft, für dieses Byte wurde also eine Bytefehlerposition mittels des 4-aus-8-Codes bestimmt.
  • Das ausgelesene Nicht-Codewort des 4-aus-8-Codes wird in ein (fehlerhaftes) m-Bit Byte zurücktransformiert. Hierzu kann ein vorgegebener Wert aus den 64 möglichen Werten (z.B. der Wert 0) genutzt werden. Es ist jedoch von Vorteil, dass mit Erkennen eines Nicht-Codeworts des 4-aus-8-Codes eine Information bereitgestellt wird, dass dieses Byte fehlerhaft ist. Auf den zurücktransformierten 6-Bit Wert kommt es dann nicht mehr an, weil davon ausgegangen werden muss, dass dieses Byte mittels des zweiten Fehlercodes korrigiert werden muss. Gemäß den obigen Ausführungen muss für dieses fehlerhafte Byte nur noch der Bytefehlerwert bestimmt werden.
  • Somit kann durch die Überprüfung der aus den Speicherzellen ausgelesenen Werte des zweiten Fehlercodes mindestens eine Bytefehlerposition für die Bytes des ersten Fehlercodes bestimmt werden. Hierbei ist es von Vorteil, dass durch die Transformation und die Rücktransformation die Unterscheidbarkeit der Bytes erhalten bleibt: Jedem 6-Bit Byte ist ein 8-Bit Byte zugeordnet und umgekehrt. Damit identifiziert die Bytefehlerposition eindeutig das Byte, egal ob es 6 Bits oder 8 Bits aufweist.
  • Es ist ein Vorteil, dass der erste Fehlercode nicht verwendet werden muss, um diese Bytefehlerposition zu bestimmen. Damit können im ersten Fehlercode Prüfbytes eingespart werden.
  • 1 veranschaulicht ein Beispiel der Verwendung eines ersten und eines zweiten Fehlercodes. In diesem Beispiel werden 43 Bytes Nutzdaten um 3 Prüfbytes ergänzt. Jedes Byte umfasst 6 Bits. Die (43 + 3 =) 46 Bytes ergeben (im fehlerfreien Fall) ein Codewort des ersten Codes, hier eines Reed-Solomon-Codes (RS-Codes).
  • In einem nächsten Schritt wird jedes der Bytes des Codeworts des RS-Codes in ein Codewort des zweiten Codes transformiert. Im vorliegenden Beispiel ist der zweite Code ein 4-aus-8-Code: Die Codewörter des 4-aus-8-Code weisen 4 Einsen und 4 Nullen auf. Nach der Transformation ergeben sich wieder 46 Bytes. Diese werden in einem Speicher abgelegt.
  • Beim Lesen aus dem Speicher werden die 46 Bytes ausgelesen. Hierbei wird geprüft, ob jedes der gelesenen Bytes ein Codewort des 4-aus-8-Codes ist.
  • Gemäß einer beispielhaften Implementierung können die einzelnen Bytes aus dem Speicher unter Nutzung einer zeitlichen Domäne gelesen werden. In diesem Fall kann vorteilhaft der Lesevorgang bereits beendet werden, wenn 4 Bits des gleichen Typs, also entweder 4mal der Wert 0 oder 4mal der Wert 1 gelesen wurde. Für die verbleibenden noch nicht eingetroffenen Bits wird dann der jeweils andere Wert angenommen. Dieser Ansatz nutzt die Eigenschaft des 4-aus-8-Codes, bei dem Codewörter 4 Einsen oder 4 Nullen aufweisen. Hierbei kann es zu Fehlern kommen dergestalt, dass fünf statt vier gleicher Werte gelesen werden und somit kein Codewort des zweiten Codes mehr vorliegt. Zu Details hinsichtlich des Auslesens von Speicherzellen in der Zeitdomäne sei beispielsweise auf US 9,805,771 B2 verwiesen: Hierbei wird ein Lesestrom, der beim Auslesen in Abhängigkeit von einem in der Speicherzelle gespeicherten Widerstandswert gebildet wird, in einem Kondensator integriert. Den Speicherzellen, die in der zeitlichen Reihenfolge am schnellsten eine bestimmte Spannung des Kondensators erreichen, kann jeweils der Wert 1 zugeordnet werden und den Zellen, die als langsamsten die bestimmte Spannung erreichen, kann jeweils der Wert 0 zugeordnet werden.
  • Handelt es sich bei dem aus dem Speicher gelesenen 8-Bit Byte um ein Codewort des zweiten Fehlercodes, d.h. des 4-aus-8-Codes, dann erfolgt die Rücktransformation dieses Codeworts in einen 6-Bit Wert gemäß der vorstehend erwähnten Zuordnung. Sind alle 46 Bytes Codewörter des zweiten Fehlercodes, erfolgt die Rücktransformation in 46 6-Bit Bytes, die im fehlerfreien Fall ein Codewort des ersten Fehlercodes, d.h. des RS-Codes, sind.
  • Ist mindestens eines der gelesenen 8-Bit-Bytes kein Codewort des 4-aus-8-Codes, so gibt es mindestens eine Bytefehlerposition, die dem nachfolgenden Korrekturschritt mitgeteilt wird, um die Korrektur dieses mindestens einen fehlerhaften Bytes mittels des ersten Fehlercodes einzuleiten.
  • Der hier beschriebene Ansatz erlaubt auch die Erkennung der weiteren Bytefehlerposition durch den ersten Fehlercode (mit anschließender Korrektur), die mit einem 4-aus-8-Codewort assoziiert ist, das mittels mehrerer Fehler in ein weiteres 4-aus-8-Codewort verfälscht wurde. Zwar ist dieses falsche 4-aus-8-Codewort von dem zweiten Fehlercode nicht erkennbar und damit kann auch die Bytefehlerposition für dieses Codewort durch den zweiten Fehlercode nicht ermittelt werden. Allerdings kann ein zusätzlicher Bytefehler vorliegen, der von dem zweiten Fehlercode erkannt wird. Für diesen zusätzlichen Bytefehler liefert der zweite Fehlercode die Bytefehlerposition. Basierend auf dieser Bytefehlerposition kann nun der erste Fehlercode die weitere Bytefehlerposition (die dem verfälschten 4-aus-8-Codewort entspricht) ermitteln und korrigieren.
  • Alternative zweite Fehlercodes
  • Die Erfindung ist nicht darauf beschränkt, dass der zweite Fehlercode ein n1-aus-n-Code ist. Beispielsweise kann ein m-Bit Byte des ersten Fehlercodes auf ein (m + 1)-Bit Byte des zweiten Fehlercodes abgebildet werden, indem zusätzlich ein ParitätsBit aus den m Bits des Bytes des ersten Fehlercodes gebildet wird und an die m Bits des ersten Fehlercodes angehängt wird. Ein Codewort des zweiten Fehlercodes kann ein (m + 1)-Bit-Wort mit einer geraden Anzahl von Einsen sein.
  • Gemäß einem weiteren Beispiel können die m Bits eines Bytes des ersten Fehlercodes auch verdoppelt und somit redundant in dem Speicher gespeichert werden. Beim Lesen kann mittels des zweiten Fehlercodes kontrolliert werden, ob zweimal das gleiche m-Bit Byte erhalten wurde.
  • Auch können unterschiedliche m-Bit Bytes des ersten Fehlercodes nach unterschiedlichen Vorschriften in Codewörter des zweiten Fehlercodes (z.B. unterschiedliche Fehlercodes) transformiert werden. So kann beispielsweise ein erstes 6-Bit Byte in ein Codewort eines 4-aus-8 Codes transformiert werden und ein zweites 6-Bit Byte wird in ein 7-Bit Byte (6 Bits mit einem zusätzlichen Paritätsbit) transformiert.
  • Für den hier beschriebenen Ansatz ist der zweite Fehlercode nicht zwingend erforderlich. Es ist lediglich erforderlich, dass für ein fehlerhaftes Byte eine Bytefehlerposition bestimmbar ist, die bei der Bestimmung einer weiteren Bytefehlerposition durch den ersten Fehlercode verwendet werden kann und nicht von diesem bestimmt werden muss.
  • Beispielsweise können pro Nutzdatenbyte Messwerte gespeichert werden, die in einem bestimmten vorbekannten Wertebereich liegen. Bei dem Messwert kann es sich z.B. um Temperatur, Luftdruck, Länge von Bauteilen o.ä. handeln.
  • Die Nutzdatenbytes können zusammen mit Prüfbytes in einem Speicher abgespeichert werden, wobei die Nutzdatenbytes und die Prüfbytes (im fehlerfreien Fall) ein Codewort des ersten Fehlercodes bilden. Stellt sich beim Lesen aus dem Speicher heraus, dass ein Nutzdatenbyte nicht in dem bekannten Wertebereich liegt, so kann für dieses Byte eine Bytefehlerposition erkannt werden.
  • Die hier beschriebenen Beispiele ermöglichen insbesondere die Verbesserung der Fehlerkorrektur und Fehlererkennung eines ersten Fehlercodes. Dabei soll die weitere Bytefehlerposition effizient und mit geringem Aufwand bestimmt werden.
  • Allgemeine Beschreibung von Reed-Solomon-Codes
  • Nachfolgend werden einige Begriffe und Eigenschaften von Reed-Solomon-Codes erläutert.
  • Beispielsweise werden
    • - t-Bytefehler-korrigierende Codes und
    • - t-Bytefehler-korrigierende und (t + 1)-Bytefehler-erkennende Codes betrachtet. Insbesondere werden die Fälle t = 2 und t = 1 berücksichtigt.
    Beispielsweise können als Bytefehler-korrigierende Codes bekannte Reed-Solomon-Codes verwendet werden. Für Reed-Solomon-Codes sei beispielhaft verwiesen auf [Lin, S., Costello, D.: Error Control Coding, Prentice Hall, 1983, Seiten 170 bis 177] oder [Wicker, S.: Error Control Systems for Digital Communication and Storage, Prentice Hall, 1995, Seiten 214 bis 224].
  • Ein 1-Bytefehler-korrigierender und 2-Bytefehler-erkennender Reed-Solomon-Code weist eine H-Matrix H B y t e
    Figure DE102022101798B3_0003
    auf wie folgt: H B y t e = ( α 0 α 1 α 2 α 2 m 2 α 0 α 2 α 4 α 2 ( 2 m 2 ) α 0 α 3 α 6 α 3 ( 2 m 2 ) )
    Figure DE102022101798B3_0004
  • Hierbei sind αi Elemente des Galoisfelds GF(2m). Diese liegen beispielsweise in einer Exponentialdarstellung vor. α kann ein primitives Element des Galoisfelds GF(2m) sein. Die Exponenten j von αj sind modulo 2m - 1 zu interpretieren.
  • Es ist möglich, aus der H-Matrix gemäß Gleichung (1) eine H-Matrix H B y t e = ( α 0 α 0 α 0 α 0 α 0 α 1 α 2 α 2 m 2 α 0 α 2 α 4 α 2 ( 2 m 2 ) )
    Figure DE102022101798B3_0005
    abzuleiten, indem für i = 0,..., (2m - 2) die i-te Spalte mit α-i multipliziert wird. Hierdurch ändert sich nur die Gestalt der H-Matrix, nicht der Code, da α-i ≠ 0 ist. Dies ist beispielsweise auch in [Fujiwara, E.: Code Design for Dependable Systems, Wiley, 2006, Seite 65] beschrieben, wobei der Wert „1“ für α0 verwendet wird, da α0 das Einselement des verwendeten Galoisfelds ist.
  • Für einen 2-Bytefehler-korrigierenden und 3-Bytefehler-erkennenden Code wird die folgende H-Matrix verwendet: H B y t e = ( α 0 α 0 α 0 α 0 α 0 α 1 α 2 α 2 m 2 α 0 α 2 α 4 α 2 ( 2 m 2 ) α 0 α 3 α 6 α 3 ( 2 m 2 ) α 0 α 4 α 8 α 4 ( 2 m 2 ) )
    Figure DE102022101798B3_0006
  • Jede Spalte der in Gleichung (3) angegebenen H-Matrix entspricht einem Byte.
  • Ist die Länge des Codes gleich N Bytes oder m·N-Bit (wobei jedes Byte m-Bit aufweist), werden nur N Spalten der H-Matrizen gemäß Gleichung (1) oder Gleichung (3) verwendet. Beispielsweise können dann die verbleibenden (letzten) 2m - 2 - N Spalten gestrichen werden.
  • Allgemein kann für einen t-Bytefehler-korrigierenden und t + 1-Bytefehler-erkennenden Code die H-Matrix wie folgt angegeben werden: H B y t e = ( α 0 α 0 α 0 α 0 α 0 α 1 α 2 α 2 m 2 α 0 α 2 α 4 α 2 ( 2 m 2 ) α 0 α 3 α 6 α 3 ( 2 m 2 ) α 0 α 4 α 8 α 4 ( 2 m 2 ) α 0 α 2 t 1 α 2 t 2 α 2 t ( 2 m 2 ) )
    Figure DE102022101798B3_0007
  • Nachfolgend wird beispielhaft ein Code betrachtet, der 2-Bytefehler korrigieren und 3-Bytefehler erkennen kann.
  • Tritt ein Fehler auf, wird ein korrekter Vektor v = v0, ... , vN-1 in einen fehlerhaften Vektor v' = v'0, ... , v'N-1 gestört.
  • Die Komponenten v0,...,vN-1 des Vektors v sind Bytes, die jeweils m-Bit umfassen, so dass v i = v 1 i , , v m i
    Figure DE102022101798B3_0008
    für i= 0,..., N - 1 gilt. v 1 i , , v m i
    Figure DE102022101798B3_0009
    sind somit die m-Bit des i-ten Bytes.
  • Ein m-Bit-Byte kann auch als ein Element des Galoisfelds GF(2m) bezeichnet werden.
  • Liegt ein 1-Bytefehler vor, ist nur ein einzelnes Byte fehlerhaft, d.h. für ein bestimmtes i ∈ {0,... ,7V — 1} ist das zugehörige i-te Byte fehlerhaft.
  • Wird das korrekte i-te Byte mit v i = v 1 i , , v m i
    Figure DE102022101798B3_0010
    und das fehlerhafte i-te Byte mit v ' i = v 1 ' i , , v m ' i
    Figure DE102022101798B3_0011
    bezeichnet, können sich 1 oder 2 oder bis zu m-Bit des korrekten i-ten Bytes von dem fehlerhaften i-ten Byte unterscheiden.
  • Ein Bytefehler im i-ten Byte kann durch
    • - die fehlerhafte Byteposition i und
    • - einen Bytefehlerwert
    e i = v i v ' i = v 1 i v 1 ' i , , v m i v m ' i
    Figure DE102022101798B3_0012
    beschrieben werden. Hierbei sei angemerkt, dass „⊕“ die exklusiv-oder-Operation kennzeichnet.
  • Die Position eines i-ten Bytes kann auch mit αi bezeichnet werden.
  • Soll ein Bytefehler mit dem Bytefehlerwert ei in der Byteposition i korrigiert werden, so ist für die Byteposition i ein Bytefehlerkorrekturwert zu bestimmen, der gleich dem Bytefehlerwert ist.
  • In diesem Beispiel ist für einen zu korrigierenden Bytefehler der Bytefehlerwert gleich dem Bytefehlerkorrekturwert; insoweit können die Begriffe Bytefehlerwert und Bytefehlerkorrekturwert synonym verwendet werden.
  • Um eine unübersichtliche Anzahl von Indizes zu vermeiden, werden nachfolgend Bytefehlerwerte mit den alphabetischen Buchstaben a, b, c bezeichnet.
  • Ein Bytefehlerkorrekturwert für das i-te Bytes kann auch mit a(i) bezeichnet werden.
  • Bytepositionen können mit i, j, k, ... oder mit αi, αj, αk, ... bezeichnet werden, wobei α ein erzeugendes Element des Galoisfelds GF(2m) ist.
  • Ein Fehlersyndrom s weist Syndromkomponenten (auch bezeichnet als Komponenten, Fehlersyndromkomponenten, Teilfehlersyndrome oder Teilsyndrome) s1, s2, s3, s4, s5 auf, die für die H-Matrix gemäß Gleichung (4) bestimmt sind zu: s 1 = ( α 0 , α 0 , α 0 , , α 0 ) ( v ' 0 , , v ' M 1 ) T ,
    Figure DE102022101798B3_0013
    s 2 = ( α 0 , α 1 , α 2 , , α 2 m 2 ) ( v ' 0 , , v ' M 1 ) T ,
    Figure DE102022101798B3_0014
    s 3 = ( α 0 , α 2 , α 4 , , α 2 ( 2 m 2 ) ) ( v ' 0 , , v ' M 1 ) T ,
    Figure DE102022101798B3_0015
    s 4 = ( α 0 , α 3 , α 6 , , α 3 ( 2 m 2 ) ) ( v ' 0 , , v ' M 1 ) T ,
    Figure DE102022101798B3_0016
    s 5 = ( α 0 , α 4 , α 8 , , α 4 ( 2 m 2 ) ) ( ν ' 0 , , ν ' M 1 ) T ,
    Figure DE102022101798B3_0017
    s 2 t + 1 = ( α 0 , α 2 t , α 2 ( 2 t ) , , α 2 t ( 2 m 2 ) ) ( ν ' 0 , , ν ' M 1 ) T .
    Figure DE102022101798B3_0018
  • Dabei ist v ' = ( v ' 0 , , v ' M 1 ) T
    Figure DE102022101798B3_0019
    ein Spaltenvektor mit einer Anzahl von M Komponenten, die jeweils m Bits aufweisen. Dieser Spaltenvektor kann auch als transponierter Vektor des Zeilenvektors (v'0, ... ,v'M-1) bezeichnet werden.
  • Die Syndromkomponenten s1, s2, ..., s2t+1 sind jeweils ein Byte mit m Bits.
  • Liegt ein 1-Bytefehler vor, so gilt s1 ≠ 0 und D e t   ( s 1 s 2 s 2 s 3 ) = 0.
    Figure DE102022101798B3_0020
  • Liegt ein 2-Bytefehler vor, so gilt D e t   ( s 1 s 2 s 2 s 3 ) 0
    Figure DE102022101798B3_0021
    und D e t   ( s 1 s 2 s 3 s 2 s 3 s 4 s 3 s 4 s 5 ) = 0.
    Figure DE102022101798B3_0022
  • Liegt ein 3-Bytefehler vor, so gilt D e t   ( s 1 s 2 s 3 s 2 s 3 s 4 s 3 s 4 s 5 ) 0
    Figure DE102022101798B3_0023
    und D e t   ( s 1 s 2 s 3 s 4 s 2 s 3 s 4 s 5 s 3 s 4 s 5 s 6 ) = 0.
    Figure DE102022101798B3_0024
  • Dies kann entsprechend fortgesetzt werden bis zu einem t-Bytefehler: So liegt ein t-Bytefehler dann vor, wenn gilt: D e t   ( s 1 s 2 s 3 s t s 2 s 3 s 4 s t + 1 s t s t + 1 s t + 2 s 2 t 1 ) 0
    Figure DE102022101798B3_0025
    und D e t   ( s 1 s 2 s 3 s t + 1 s 2 s 3 s 4 s t + 2 s t s t + 1 s t + 2 s 2 t ) = 0.
    Figure DE102022101798B3_0026
  • Die Anzahl der Bytefehler kann durch die Bestimmung der Werte der angegebenen Determinante bestimmt werden. Dies ist mit steigender Anzahl der möglichen Fehler aufwändig: So ist zur Feststellung, ob entsprechend den Gleichungen (10) und (11) ein t-Bytefehler vorliegt, der Wert einer Determinanten zu bestimmen, die 2·t Syndromkomponenten als Elemente aufweist. Diese sind zusätzlich zu den Nutzdatenbytes zu speichern. Jede Syndromkomponente entspricht einem Byte mit m Bits.
  • Eine Bytefehlerposition kann beispielsweise als Nullstellen des Lokatorpolynoms bestimmt werden.
  • Eine Nullstelle eines Lokatorpolynoms kann als ein Element des entsprechenden Galoisfeldes GF(2m) beschrieben werden.
  • Ein erstes, zweites, drittes Element, etc. des Galoisfeldes wird hierbei mit α1, α2, α3, etc. bezeichnet. Dabei ist nicht festgelegt, um welches Element des Galoisfeldes es sich konkret handelt.
  • Ist { α 0 , α 1 , α 2 , , α i , , α 2 m 2 }
    Figure DE102022101798B3_0027
    beispielsweise die Menge der 2m - 1 Elemente des Galoisfeldes ungleich 0 in ihrer Exponentialdarstellung, dann sind α1, α2, α3, etc. Elemente dieser Menge. Beispielsweise kann α 1 = α 10 ,
    Figure DE102022101798B3_0028
    α 2 = α 3 ,
    Figure DE102022101798B3_0029
    α 3 = α 0
    Figure DE102022101798B3_0030
    oder eine andere Zuordnung gelten.
  • Die Lokatorpolynome ergeben sich für die unterschiedlichen Anzahlen von Bytefehlern zu:
    • - für einen 1-Bytefehler: L 1 ( x ) = ( x + α 1 ) = x + σ ( 1 ) 1 ;
      Figure DE102022101798B3_0031
    • - für einen 2-Bytefehler: L 2 ( x ) = ( x + α 1 ) ( x + α 2 ) = x 2 + x σ ( 2 ) 1 + σ ( 2 ) 2 ;
      Figure DE102022101798B3_0032
    • - für einen 3-Bytefehler: L 3 ( x ) = ( x + α 1 ) ( x + α 2 ) ( x + α 3 ) = = x 3 + x 2 σ ( 3 ) 1 + x 2 σ ( 3 ) 2 + σ ( 3 ) 3 ;
      Figure DE102022101798B3_0033
    • - für einen 4-Bytefehler: L 4 ( x ) = ( x + α 1 ) ( x + α 2 ) ( x + α 3 ) ( x + α 4 ) = = x 4 + x 3 σ ( 4 ) 1 + x 2 σ ( 4 ) 2 + x σ ( 4 ) 3 + σ ( 4 ) 4 ;
      Figure DE102022101798B3_0034
    • - für einen n-Bytefehler: L n ( x ) = ( x + α 1 ) ( x + α 2 ) ( x + α n ) = = x n + x n 1 σ ( n ) 1 + x n 2 σ ( n ) 2 + + σ ( n ) n .
      Figure DE102022101798B3_0035
  • Dabei bezeichnet der Koeffizient σ(j)i eines Lokatorpolynoms für j = 1,...,n und i = 1,...,n eine bekannte elementarsymmetrische Funktion von j Variablen α1 bis αj. Dies kann durch Ausmultiplizieren von ( x + α 1 ) ( x + α 2 ) ( x + α n )
    Figure DE102022101798B3_0036
    verifiziert werden.
  • So gilt beispielsweise σ ( 1 ) 1 = α 1
    Figure DE102022101798B3_0037
    σ ( 2 ) 1 = α 1 + α 2 ,
    Figure DE102022101798B3_0038
    σ ( 2 ) 2 = α 1 α 2 ,
    Figure DE102022101798B3_0039
    σ ( 3 ) 1 = α 1 + α 1 + α 3 ,
    Figure DE102022101798B3_0040
    σ ( 3 ) 2 = α 1 α 2 + α 1 α 3 + α 2 α 3 ,
    Figure DE102022101798B3_0041
    σ ( 3 ) 3 = α 1 α 2 α 3 ,
    Figure DE102022101798B3_0042
    σ ( 4 ) 1 = α 1 + α 1 + α 3 + α 4 ,
    Figure DE102022101798B3_0043
    σ ( 4 ) 2 = α 1 α 2 + α 1 α 3 + α 1 α 4 + α 2 α 3 + α 2 α 4 + σ 3 α 4 ,
    Figure DE102022101798B3_0044
    σ ( 4 ) 3 = α 1 α 2 α 3 + α 1 α 2 α 4 + α 1 α 3 α 4 + α 2 α 3 α 4 ,
    Figure DE102022101798B3_0045
    σ ( 4 ) 4 = α 1 α 2 α 3 α 4 ,  
    Figure DE102022101798B3_0046
      σ ( n ) 1 = α 1 + α 1 + + α n ,  
    Figure DE102022101798B3_0047
    σ ( n ) n = α 1 α 2 α n .
    Figure DE102022101798B3_0048
  • Eine symmetrische Funktion σ(k)i mit 1 ≤ i ≤ k hängt dabei, wie in den Beispielen dargestellt, von k Variablen α1,...,αk ab. Sie enthält alle möglichen (7) unterschiedlichen Produkte von ihrer Variablen, die mit der Operation „+“ im Galoisfeld GF(2m) verknüpft sind. Ist i = 1, bestehen die ( k 1 ) = k
    Figure DE102022101798B3_0049
    Produkte jeweils nur aus einer der Variablen. Die Addition erfolgt im Galoisfeld GF(2m). Sie entspricht hier der komponentenweisen Addition modulo 2. Als Variablen der symmetrischen Funktionen werden hier die Variablen α1, α2, α3, etc. verwendet.
  • Zwischen den Komponenten der Fehlersyndrome und den Komponenten der entsprechenden Lokatorpolynome ist die folgende Beziehung für einen t-Bytefehler bekannt: ( s 1 s 2 s 3 s t s 2 s 3 s 4 s t + 1 s 3 s 4 s 5 s t + 1 s t 1 s t s t + 1 s 2 t 2 s t s t + 1 s t + 2 s 2 t 1 ) ( σ ( t ) t σ ( t ) t 1 σ ( t ) t 2 σ ( t ) 2 σ ( t ) 1 ) = ( s t + 1 s t + 2 s t + 3 s 2 t 1 s 2 t ) .
    Figure DE102022101798B3_0050
  • Dies ist beispielsweise in [Wicker, S.: Error Control Systems for Digital Communication and Storage, Prentice Hall, 1995, Seiten 215] beschrieben, wobei dort für die Syndromkomponente si die Bezeichnung Si und für den Koeffizienten σ(t)i die Bezeichnung Λi verwendet wird.
  • Wird beispielhaft ein Galoisfeld GF(qm) mit q = 2 verwendet, können die negativen Vorzeichen in Gleichung (17) weggelassen werden, da in einem Galoisfeld GF(2m) Addition und Subtraktion gleich sind. Beispielhaft wird nachfolgend das Galoisfeld GF(2m) verwendet und die negativen Vorzeichen in Gleichung (17) werden weggelassen.
  • Weiterer (zusätzlicher) Bytefehler bei einem Bytefehler an einer gegebenen Bytefehlerposition
  • Im Folgenden wird beispielhaft ausgeführt, wie
    • - eine weitere Bytefehlerposition bestimmt wird, sofern ein weiterer Bytefehler aufgetreten ist oder
    • - bestimmt wird, dass kein weiterer Bytefehler aufgetreten ist, wenn eine Anzahl von N1 Bytefehlern bekannt ist.
  • Dabei ist die Anzahl der Bytefehler N1 größer oder gleich 1.
  • Es wird darauf abgestellt, dass vorab bereits ein Bytefehler oder mehrere Bytefehler aufgetreten ist/sind. Dann kann der mindestens eine weitere Bytefehler gemäß obiger Formulierung auftreten.
  • Sind beispielsweise N1 Bytefehlerpositionen bestimmt, dann kann eine weitere (N1 + 1)-te Bytefehlerposition bestimmt werden, wenn an dieser Position ein Bytefehler aufgetreten ist. Ist keine weitere Bytefehlerposition fehlerhaft, so ist auch kein weiterer Bytefehler aufgetreten.
  • Hierbei sei angemerkt, dass ein aufgetretener Bytefehler ein mittels eines Fehlercodes detektierbarer Bytefehler ist. Es ist denkbar, dass ein nicht erkennbarer Bytefehler vorliegt, der unerkannt bleibt und insofern gemäß den vorliegenden Ausführungen als nicht aufgetreten angesehen wird.
  • Beispielsweise ist eine erste Bytefehlerposition α1 gegeben. Die Bytefehlerposition besagt, dass für dieses Byte, dass mehrere Bits umfasst, ein Fehler detektiert wurde.
  • Sofern ein weiterer Bytefehler in einem anderen Byte aufgetreten ist, kann eine zweite Bytefehlerposition α2 bestimmt werden. Auch kann bestimmt werden, dass keine weitere Bytefehlerposition vorhanden ist, wenn kein zweiter Bytefehler aufgetreten ist.
  • Im Falle eines 1-Bytefehlers mit der vorgegebenen Bytefehlerposition α1 und mit einem Bytefehlerwert a gilt s 1 = a ,
    Figure DE102022101798B3_0051
    s 2 = α 1 a = s 1 α 1 .
    Figure DE102022101798B3_0052
  • Es ist nicht erforderlich, dass der Bytefehlerwert a bekannt ist.
  • Im Falle eines 2-Bytefehlers mit
    • - der bekannten Bytefehlerposition α1 mit einem Bytefehlerwert a und
    • - einer weiteren (noch unbekannten) Bytefehlerposition α2 mit einem Bytefehlerwert b
    gilt s 1 = a + b ,
    Figure DE102022101798B3_0053
    s 2 = α 1 a + α 2 b ,
    Figure DE102022101798B3_0054
    s 3 = α 1 2 a + α 2 2 b
    Figure DE102022101798B3_0055
    und damit s 1 α 1 = ( a + b ) α 1 = a α 1 + b α 1 s 2 = a α 1 + b α 2 .
    Figure DE102022101798B3_0056
  • Es ist nicht erforderlich, dass die Werte α2, a und b bekannt sind.
  • Bei bekannter Bytefehlerposition α1 kann anhand von s 1 α 1 + s 2 = 0
    Figure DE102022101798B3_0057
    bestimmt werden, dass kein 2-Bytefehler vorliegt und anhand von s 1 α 1 + s 2 0
    Figure DE102022101798B3_0058
    festgestellt werden, dass kein 1-Bytefehler vorliegt.
  • Liegt kein 1-Bytefehler vor, sondern liegt ein 2-Bytefehler mit bekannter Bytefehlerposition α1 und zu bestimmender Bytefehlerposition α2 vor, dann gilt s 1 σ ( 2 ) 2 + s 2 σ ( 2 ) 1 = s 3
    Figure DE102022101798B3_0059
    mit σ ( 2 ) 2 = α 1 α 2 = σ ( 1 ) 1 α 2
    Figure DE102022101798B3_0060
    und σ ( 2 ) 1 = α 1 + α 2 = σ ( 1 ) 1 + α 2
    Figure DE102022101798B3_0061
    und damit s 1 α 1 α 2 + s 2 ( α 1 + α 2 ) = s 3 = s 1 σ ( 1 ) 1 α 2 + s 2 ( σ ( 1 ) 1 + α 2 ) .
    Figure DE102022101798B3_0062
  • Die Gleichung (27) ist nach der zu bestimmenden Bytefehlerposition α2 auflösbar: α 2 = s 3 + s 2 α 1 s 1 α 1 + s 2 = s 3 + s 2 σ ( 1 ) 1 s 1 σ ( 1 ) 1 + s 2 .
    Figure DE102022101798B3_0063
  • Die Bytefehlerposition α2 ist aus den drei Syndromkomponenten s1, s2 und s3 und der symmetrischen Funktionen σ(1)1 = α1 bestimmbar. Wie ausgeführt, ist die Bytefehlerposition α1 vorbekannt. Es ist daher nicht erforderlich, die Lösungen des entsprechenden Lokatorpolynoms zu bestimmen.
  • Weiterer (zusätzlicher) Bytefehler bei zwei Bytefehlern an zwei (unterschiedlichen) gegebenen Bytefehlerpositionen
  • Alternativ wird beschrieben, wie im Falle von zwei bekannten Bytefehlerpositionen α1 und α2 bestimmt wird, ob ein dritter Bytefehler vorliegt und wenn ein dritter Bytefehler vorliegt, wie dann eine dritte Bytefehlerposition bestimmt werden kann. Dabei unterscheiden sich die Bytefehlerpositionen α1, α2 und α3 voneinander.
  • Liegt ein 2-Bytefehler vor, gilt s 1 σ ( 2 ) 2 + s 2 ( 2 ) σ ( 2 ) 1 + s 3 = 0.
    Figure DE102022101798B3_0064
  • Dies ergibt sich aus: s 1 = a + b ,
    Figure DE102022101798B3_0065
    s 2 = α 1 a + α 2 b ,
    Figure DE102022101798B3_0066
    s 3 = α 1 2 a + α 2 2 b ,
    Figure DE102022101798B3_0067
    σ ( 2 ) 2 = α 1 α 2 ,
    Figure DE102022101798B3_0068
    σ ( 2 ) 1 = α 1 + α 2 .
    Figure DE102022101798B3_0069
  • Dabei sind a und b die entsprechenden Bytefehlerwerte und α1 und α2 die Bytefehlerpositionen. Gilt die Gleichung (29), dann liegt kein 3-Bytefehler vor.
  • Liegt nun ein 3-Bytefehler mit den Bytefehlerwerten a, b und c und den Bytefehlerpositionen α1, α2 und α3 vor, dann gilt: s 1 = a + b + c ,
    Figure DE102022101798B3_0070
    s 2 = α 1 a + α 2 b + α 3 c ,
    Figure DE102022101798B3_0071
    s 3 = α 1 2 a + α 2 2 b + α 3 2 c ,
    Figure DE102022101798B3_0072
    σ ( 2 ) 2 = α 1 α 2 ,
    Figure DE102022101798B3_0073
    σ ( 2 ) 1 = α 1 + α 2
    Figure DE102022101798B3_0074
  • Hieraus ergibt sich: s 1 σ ( 2 ) 2 + s 2 σ ( 2 ) 1 + s 3 = c ( α 1 α 2 + α 1 α 3 + α 2 α 3 + α 3 2 ) = = c ( α 1 + α 3 ) ( α 2 + α 3 ) = D .
    Figure DE102022101798B3_0075
  • Ein Wert D = 0 ist nur möglich, wenn (mindestens) eine der folgenden Bedingungen erfüllt ist:
    • - c = 0;
    • - α3 = α1 oder α3 = α2, was im Widerspruch dazu steht, dass die Bytefehlerpositionen α1, α2 und α3 unterschiedlich sind.
  • Somit kann ein 3-Bytefehler an der Gültigkeit der Ungleichung s 1 = σ ( 2 ) 2 + s 2 σ ( 2 ) 1 + s 3 0
    Figure DE102022101798B3_0076
    erkannt werden.
  • Liegt nun ein 3-Bytefehler vor, dann kann die dritte Bytefehlerposition α3 unter Verwendung der bekannten Bytefehlerpositionen α1, α2 und aus den Syndromkomponenten s1, s2, s3 und s4 gemäß der Beziehung s 1 σ ( 3 ) 3 + s 2 σ ( 3 ) 2 + s 3 σ ( 3 ) 1 = s 4
    Figure DE102022101798B3_0077
    bestimmt werden, wobei σ ( 3 ) 3 = α 1 α 2 α 3 ,
    Figure DE102022101798B3_0078
    σ ( 3 ) 2 = α 1 α 2 + α 1 α 3 + α 2 α 3 ,
    Figure DE102022101798B3_0079
    σ ( 3 ) 1 = α 1 + α 2 + α 3
    Figure DE102022101798B3_0080
    gilt. Die Bytefehlerposition α3 ist die fehlerhafte zu bestimmende weitere (d.h. zusätzliche) Bytefehlerposition. Aus Gleichung (30) ergibt sich s 4 = s 1 α 1 α 2 α 3 + s 2 ( α 1 α 2 + α 1 α 3 + α 2 α 3 ) + s 3 ( α 1 + α 2 + α 3 ) = = s 1 σ ( 2 ) 2 α 3 + s 2 [ σ ( 2 ) 1 α 3 + σ ( 2 ) 2 ] + s 3 [ σ ( 2 ) 1 + α 3 ]
    Figure DE102022101798B3_0081
    und damit für die zu bestimmende Bytefehlerposition α3: α 3 = s 4 + s 3 σ ( 2 ) 1 + s 2 σ ( 2 ) 2 s 3 + s 2 σ ( 2 ) 1 + s 1 σ ( 2 ) 2 = s 4 + s 3 [ α 1 + α 2 ] + s 2 α 1 α 2 s 3 + s 2 [ α 1 + α 2 ] + s 1 α 1 α 2
    Figure DE102022101798B3_0082
  • Die Bytefehlerposition α3 ist aus den vier Syndromkomponenten s1, s2, s3, s4 sowie den symmetrischen Funktionen σ(2)1, σ(2)2, die aus den bekannten Bytefehlerwerten α1 und α2 hervorgehen, bestimmbar. Es ist nicht erforderlich, die Lösungen des entsprechenden Lokatorpolynoms (hier: dritten Grades) zu ermitteln oder mehr als vier Syndromkomponenten zu verwenden. Dies reduziert den Aufwand in erheblichem Maße.
  • Weiterer (zusätzlicher) Bytefehler bei einer Vielzahl von Bytefehlern an unterschiedlichen gegebenen Bytefehlerpositionen
  • Entsprechend lässt sich dieser Ansatz erweitern: Es kann eine weitere Bytefehlerposition bestimmt werden, wenn drei oder mehr Bytefehlerpositionen vorbekannt sind. Sind k Bytefehlerpositionen bekannt, so sind k + 2 Fehlersyndromkomponenten bekannt.
  • Beispielsweise gelten für die zu bestimmenden Bytefehlerpositionen
    • - α4, wenn drei Bytefehlerpositionen α1, ... , α3 bekannt sind: α 4 = s 5 + s 4 σ ( 3 ) 1 + s 3 σ ( 3 ) 2 + s 2 σ ( 3 ) 3 s 4 + s 3 σ ( 3 ) 1 + s 2 σ ( 3 ) 2 + s 1 σ ( 3 ) 3 ;
      Figure DE102022101798B3_0083
    • - α5, wenn vier Bytefehlerpositionen α1,..., α4 bekannt sind: α 5 = s 6 + s 5 σ ( 4 ) 1 + s 4 σ ( 4 ) 2 + s 3 σ ( 4 ) 3 + s 2 σ ( 4 ) 4 s 5 + s 4 σ ( 4 ) 1 + s 3 σ ( 4 ) 2 + s 2 σ ( 4 ) 3 + s 1 σ ( 4 ) 4 ;
      Figure DE102022101798B3_0084
    • - α6, wenn fünf Bytefehlerpositionen α1,...,α5 bekannt sind: α 6 = s 7 + s 6 σ ( 5 ) 1 + s 5 σ ( 5 ) 2 + s 4 σ ( 5 ) 3 + s 3 σ ( 5 ) 4 + s 2 σ ( 5 ) 5 s 6 + s 5 σ ( 5 ) 1 + s 4 σ ( 5 ) 2 + s 3 σ ( 5 ) 3 + s 2 σ ( 5 ) 4 + s 1 σ ( 5 ) 5 ;
      Figure DE102022101798B3_0085
    • - α7, wenn sechs Bytefehlerpositionen α1,...,α6 bekannt sind: α 7 = s 8 + s 7 σ ( 6 ) 1 + s 6 σ ( 6 ) 2 + s 5 σ ( 6 ) 3 + s 4 σ ( 6 ) 4 + s 3 σ ( 6 ) 5 + s 2 σ ( 6 ) 6 s 7 + s 6 σ ( 6 ) 1 + s 5 σ ( 6 ) 2 + s 4 σ ( 6 ) 3 + s 3 σ ( 6 ) 4 + s 2 σ ( 6 ) 5 + s 1 σ ( 6 ) 6 .
      Figure DE102022101798B3_0086
  • Allgemein ergibt sich für N1 bekannte Bytefehlerpositionen α1,...,αN1 die weitere Bytefehlerposition αN1+1 zu: α N 1 + 1 = s N 1 + 2 + s N 1 + 1 σ ( N 1 ) 1 + s N 1 σ ( N 1 ) 2 + + s 2 σ ( N 1 ) N 1 s N 1 + 1 + s N 1 σ ( N 1 ) 1 + s N 1 1 σ ( N 1 ) 2 + + s 1 σ ( N 1 ) N 1 .
    Figure DE102022101798B3_0087
  • Hierbei kann es vorteilhaft sein, die nachfolgenden symmetrischen Funktionen σ(j)i, mit j ≥ 1 und i ≤ j zu verwenden: Die Funktion σ(j)i ergibt sich für j > 1 aus den Funktionen σ(j - 1)k mit k ≤ j - 1 und einer weiteren Variablen αk: σ ( 2 ) 1 = σ ( 1 ) 1 + α 2
    Figure DE102022101798B3_0088
    σ ( 2 ) 2 = σ ( 1 ) 1 α 2
    Figure DE102022101798B3_0089
    σ ( 3 ) 1 = σ ( 2 ) 1 + α 3
    Figure DE102022101798B3_0090
    σ ( 3 ) 2 = σ ( 2 ) 1 α 3 + σ ( 2 ) 2
    Figure DE102022101798B3_0091
    σ ( 3 ) 3 = σ ( 2 ) 2 α 3
    Figure DE102022101798B3_0092
    σ ( 4 ) 1 = σ ( 3 ) 1 + α 4
    Figure DE102022101798B3_0093
    σ ( 4 ) 2 = σ ( 3 ) 1 α 4 + σ ( 3 ) 2
    Figure DE102022101798B3_0094
    σ ( 4 ) 3 = σ ( 3 ) 2 α 4 + σ ( 3 ) 3
    Figure DE102022101798B3_0095
    σ ( 4 ) 4 = σ ( 4 ) 3 α 4
    Figure DE102022101798B3_0096
    σ ( n + 1 ) 1 = σ ( n ) 1 + α n + 1
    Figure DE102022101798B3_0097
    σ ( n + 1 ) 2 = σ ( n ) 1 α n + 1 + σ ( n ) 2
    Figure DE102022101798B3_0098
    σ ( n + 1 ) 3 = σ ( n ) 2 α n + 1 + σ ( n ) 3    
    Figure DE102022101798B3_0099
    σ ( n + 1 ) n + 1 = σ ( n ) n α n + 1
    Figure DE102022101798B3_0100
  • Somit können aus bereits ermittelten symmetrischen Funktionen σ(j)i und einer zusätzlichen Variablen schrittweise weitere symmetrische Funktionen bestimmt und zur Ermittlung der weiteren Bytefehlerposition genutzt werden.
  • Beispielhafte Implementierung
  • 2 zeigt eine symbolische Anordnung, z.B. als Realisierung einer Schaltung, die es ermöglicht, die symmetrischen Funktionen σ(2)1 = α1 + α2 und σ(2)2 = α1 · α2 anhand der Bytefehlerpositionen α1 und α2 zu bestimmen.
  • Ein Addierglieder 21 mit zwei m-Bit breiten Eingängen und einem m-Bit breiten Ausgang ermöglicht die komponentenweisen Addition modulo-2 (XOR-Verknüpfung) der an den Eingängen anliegenden Bytefehlerpositionen α1 und α2. Ein Galoisfeldmultiplizierer 22 mit zwei m-Bit breiten Eingängen und einem m-Bit breiten Ausgang ermöglicht die Multiplikation α1 · α2.
  • 3 zeigt eine beispielhafte Schaltungsanordnung zur Bestimmung einer Bytefehlerposition α3 unter Verwendung der Syndromkomponenten s1 bis s4 und zweier bekannter Bytefehlerpositionen α1, α2 entsprechend Gleichung (31). Die Bytefehlerpositionen α1, α2 wurden hierbei gemäß der in 2 gezeigten Anordnung zu den symmetrischen Funktionen σ(2)1 und σ(2)2 verknüpft, die Eingangssignale der in 3 gezeigten Anordnung sind.
  • 3 weist Galoisfeldmultiplizierer 11 bis 15 auf, mit zwei m-Bit breiten Eingängen und einem m-Bit breiten Ausgang. Weiterhin sind zwei Addierglieder 16, 17 mit zwei m-Bit breiten Eingängen und einem m-Bit breiten Ausgang zur komponentenweisen Addition modulo-2 (XOR-Verknüpfung) sowie ein Invertierer 18 mit einem m-Bit breiten Eingang und einem m-Bit breiten Ausgang dargestellt. Die Komponenten 11 bis 18 sind derart angeordnet, dass sich aus ihrer Verschaltung im Ergebnis die Bytefehlerposition α3 ergibt.

Claims (15)

  1. Verfahren zur Fehlerverarbeitung, - wobei n Bytefehlerpositionen von n Bytefehlern vorgegeben sind, wobei n eine positive ganze Zahl ist, - bei dem bestimmt wird, ob es eine weitere Bytefehlerposition gibt anhand der n Bytefehlerpositionen und anhand von n + 1 Fehlersyndromkomponenten eines ersten Fehlercodes.
  2. Verfahren nach Anspruch 1, bei dem die weitere Bytefehlerposition durch die n Bytefehlerpositionen und die n + 1 Fehlersyndromkomponenten des ersten Fehlercodes bestimmt wird.
  3. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der erste Fehlercode ein Bytefehlercode, insbesondere ein Reed-Solomon-Code ist.
  4. Verfahren nach einem der vorhergehenden Ansprüche, bei dem erkannt wird, dass kein weiterer Bytefehler vorhanden ist, falls keine weitere Bytefehlerposition bestimmbar ist.
  5. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die weitere Bytefehlerposition in Abhängigkeit mindestens einer symmetrischen Funktion der n Bytefehlerpositionen bestimmt wird.
  6. Verfahren nach einem der Ansprüche 1 bis 5, bei dem - im fehlerfreien Fall ein Byte des ersten Fehlercodes in ein Codewort eines zweiten Fehlercodes transformiert wird, - eine Bytefehlerposition bestimmt wird, falls ein Nicht-Codewort des zweiten Fehlercodes erkannt wird.
  7. Verfahren nach Anspruch 6, bei dem der zweite Fehlercode ein n1-aus-n-Code ist, wobei 1 ≤ n1 < n ≤ 2 gilt.
  8. Verfahren nach einem der Ansprüche 6 oder 7, bei dem Codewörter des zweiten Fehlercodes in einem Speicher gespeichert werden.
  9. Verfahren nach Anspruch 8, bei dem im fehlerfreien Fall Codewörter des zweiten Fehlercodes aus dem Speicher ausgelesen und in Bytes des ersten Fehlercodes zurücktransformiert werden.
  10. Verfahren nach Anspruch 9, bei dem das Auslesen aus dem Speicher unter Berücksichtigung einer zeitlichen Reihenfolge erfolgt.
  11. Verfahren nach einem der Ansprüche 5 bis 9, bei dem dann, wenn beim Auslesen aus dem Speicher ein Nicht-Codewort des zweiten Fehlercodes erkannt wird, eine Bytefehlerposition für dieses Byte des ersten Fehlercodes bestimmt wird.
  12. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die weitere Bytefehlerposition α2 bestimmbar ist, so dass gilt: α 2 = s 3 + s 2 α 1 s 1 α 1 + s 2 ,
    Figure DE102022101798B3_0101
    wobei α1 die vorgegebene Bytefehlerposition und s1, s2, s3 Syndromkomponenten bezeichnen.
  13. Vorrichtung zur Fehlerverarbeitung, die eingerichtet ist zu bestimmen, ob es eine weitere Bytefehlerposition gibt anhand von n Bytefehlerpositionen und anhand von n + 1 Fehlersyndromkomponenten eines ersten Fehlercodes, wobei die n Bytefehlerpositionen von n Bytefehlern vorgegeben sind und wobei n eine positive ganze Zahl ist.
  14. Vorrichtung nach Anspruch 13, die ferner eingerichtet ist, die weitere Bytefehlerposition durch die n Bytefehlerpositionen und die n + 1 Fehlersyndromkomponenten des ersten Fehlercodes zu bestimmen.
  15. Schaltungsanordnung umfassend mindestens eine Vorrichtung nach einem der Ansprüche 13 oder 14.
DE102022101798.2A 2022-01-26 2022-01-26 Fehlerverarbeitung Active DE102022101798B3 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102022101798.2A DE102022101798B3 (de) 2022-01-26 2022-01-26 Fehlerverarbeitung
US18/159,365 US20230267039A1 (en) 2022-01-26 2023-01-25 Error processing for non-volatile memories

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102022101798.2A DE102022101798B3 (de) 2022-01-26 2022-01-26 Fehlerverarbeitung

Publications (1)

Publication Number Publication Date
DE102022101798B3 true DE102022101798B3 (de) 2023-07-20

Family

ID=86990335

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022101798.2A Active DE102022101798B3 (de) 2022-01-26 2022-01-26 Fehlerverarbeitung

Country Status (2)

Country Link
US (1) US20230267039A1 (de)
DE (1) DE102022101798B3 (de)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9805771B2 (en) 2014-02-26 2017-10-31 Infineon Technologies Ag Determining a state of a cell structure
DE102017125617A1 (de) 2017-11-02 2019-05-02 Infineon Technologies Ag Bestimmung und Verwendung von Bytefehlerpostionssignalen
US10903859B2 (en) 2018-04-10 2021-01-26 Infineon Technologies Ag Error detection by means of group errors
DE102021109391B3 (de) 2021-04-14 2022-08-25 Infineon Technologies Ag Multibytefehler-Erkennung

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9805771B2 (en) 2014-02-26 2017-10-31 Infineon Technologies Ag Determining a state of a cell structure
DE102017125617A1 (de) 2017-11-02 2019-05-02 Infineon Technologies Ag Bestimmung und Verwendung von Bytefehlerpostionssignalen
US10903859B2 (en) 2018-04-10 2021-01-26 Infineon Technologies Ag Error detection by means of group errors
DE102021109391B3 (de) 2021-04-14 2022-08-25 Infineon Technologies Ag Multibytefehler-Erkennung

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Bossen, D.: b-Adjacent Error Correction, IBM J. Res. Dev, July 1970, Seiten 402 bis 408
Lin, S., Costello, D.: Error Control Coding, Prentice Hall, 1983, Seiten 170 bis 177] oder [Wicker, S.: Error Control Systems for Digital Communication and Storage, Prentice Hall, 1995, Seiten 214 bis 224
Okano, H., Imai, H.: A Construction Method of High-Speed Decoders Using ROM's for Bose-Chaudhuri-Hocquengiem and Reed-Solomon Codes, IEEE TRANSACTIONS ON COMPUTERS, VOL. C-36, NO. 10, OCTOBER 1987, Seiten 1165 bis 1171

Also Published As

Publication number Publication date
US20230267039A1 (en) 2023-08-24

Similar Documents

Publication Publication Date Title
DE102017125617B4 (de) Bestimmung und Verwendung von Bytefehlerpostionssignalen
DE69919199T2 (de) Vorwärtsfehlerkorrektur
DE102011085602B4 (de) Vorrichtung und Verfahren zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz
DE2657826A1 (de) Einrichtung zur fehlererkennung und fehlerkorrektur im speichersystem einer dv-anlage
DE102014215252B9 (de) Wirksame fehlerkorrektur von mehrbitfehlern
DE2060643A1 (de) Schaltungsanordnung zur Korrektur von Einzelfehlern
DE2262070A1 (de) Mit schieberegistern arbeitendes fehlerkorrektursystem
DE102018103408B3 (de) Integrierte schaltung und verfahren zum verarbeiten eines codierten nachrichtenworts
EP0545498B1 (de) Verfahren und Schaltungsanordnung zum Decodieren von RS-codierten Datensignalen
DE102017103347B4 (de) Verarbeitung von daten in speicherzellen eines speichers
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
DE2260846A1 (de) Fehlerkorrektursystem
DE102018131613A1 (de) Fehlererkennung mittels Gruppenfehler
DE4105860A1 (de) Schaltungsanordnung zum erkennen und korrigieren von fehlern in datenworten
DE102011087634A1 (de) Vorrichtung und verfahren zum erfassen eines fehlers in einem codierten binärwort
DE102021109391B3 (de) Multibytefehler-Erkennung
DE102020110787B3 (de) Schaltung und verfahren zum kodieren oder dekodieren eines datenworts
DE102022101798B3 (de) Fehlerverarbeitung
DE602004008150T2 (de) Datenfehlerkorrektur mittels Redundanzblöcke
DE102016104012A1 (de) Verarbeitung eines Datenworts
DE102013219088B9 (de) Schaltungsanordnung und Verfahren zur Realisierung von Prüfbitkompaktierung für Cross-Parity-Codes
DE4117726C2 (de) Fehlerkorrekturverfahren und Einrichtung zu dessen Durchführung
DE102018126685B3 (de) Verarbeitung von Daten
DE102019113970B4 (de) Erkennung von adressfehlern

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