DE102011087634B4 - Vorrichtung und verfahren zum erfassen eines fehlers in einem codierten binärwort - Google Patents

Vorrichtung und verfahren zum erfassen eines fehlers in einem codierten binärwort Download PDF

Info

Publication number
DE102011087634B4
DE102011087634B4 DE102011087634.0A DE102011087634A DE102011087634B4 DE 102011087634 B4 DE102011087634 B4 DE 102011087634B4 DE 102011087634 A DE102011087634 A DE 102011087634A DE 102011087634 B4 DE102011087634 B4 DE 102011087634B4
Authority
DE
Germany
Prior art keywords
error
bits
binary word
error correction
code
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
DE102011087634.0A
Other languages
English (en)
Other versions
DE102011087634B9 (de
DE102011087634A1 (de
Inventor
Ulrich Backhausen
Michael Goessel
Thomas Kern
Thomas Rabenalt
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of DE102011087634A1 publication Critical patent/DE102011087634A1/de
Publication of DE102011087634B4 publication Critical patent/DE102011087634B4/de
Application granted granted Critical
Publication of DE102011087634B9 publication Critical patent/DE102011087634B9/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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3776Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using a re-encoding step during the decoding process
    • 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
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3738Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with judging correct decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Vorrichtung zum Erfassen eines Fehlers in einem durch einen Fehlerkorrekturcode codierten Binärwort, wobei die Vorrichtung folgende Merkmale aufweist: einen Fehlerkorrektor, der konfiguriert ist, um einen korrigierbaren Bitfehler in einem fehlerhaften Teilsatz von Bits des codierten Binärworts zu korrigieren, wobei der Teilsatz von Bits einen Teil der Bits oder alle Bits des durch den Fehlerkorrekturcode codierten Binärworts umfasst, und um einen korrigierten Teilsatz von Bits an einem Ausgang des Fehlerkorrektors auszugeben, falls der Fehlerkorrektor fehlerlos arbeitet; und einen Fehlerdetektor, der konfiguriert ist, um ein Fehlerdetektoreingangsbinärwort zu empfangen, wobei das Fehlerdetektoreingangsbinärwort auf einem korrigierten codierten Binärwort basiert, das den korrigierten Teilsatz von Bits und, falls der Teilsatz nicht alle Bits in dem durch den Fehlerkorrekturcode codierten Binärworts umfasst, den verbleibenden Rest des durch den Fehlerkorrekturcode codierten Binärworts enthält, und um basierend auf dem Fehlerkorrekturcode eine Fehlererfassungsbitsequenz zu bestimmen, die anzeigt, ob das Fehlerdetektoreingangsbinärwort ein Codewort des Fehlerkorrekturcodes ist oder nicht.

Description

  • Ausführungsbeispiele beziehen sich auf Fehlerkorrektur und Fehlererfassung von digitalen Signalen und insbesondere auf eine Vorrichtung und ein Verfahren zum Erfassen eines Fehlers in einem codierten Binärwort und eine Vorrichtung und ein Verfahren zum Erfassen eines Fehlers in einer Mehrzahl von codierten Binärwörtern, die durch einen Fehlerkorrekturcode codiert sind.
  • Für die Korrektur von Daten, die mit Fehlerkorrekturcodes codiert sind, werden Fehlerkorrekturschaltungen verwendet. Als Codes zur Fehlerkorrektur werden häufig Hamming-Codes, Hsiao-Codes, BCH-Codes und andere verwendet. Für die Fehlerkorrektur von Daten, die mit Fehlerkorrekturcodes codiert sind, können Fehlerkorrekturschaltungen verwendet werden.
  • Durch den hohen Integrationsgrad elektronischer Schaltungen treten häufiger vorübergehende und permanente Hardwarefehler auf, die auch die Fehlerkorrekturschaltung verfälschen können. Eine fehlerhafte Fehlerkorrekturschaltung kann zu einer fehlerhaften Korrektur der Daten führen, die durch dieselbe zu verarbeiten sind, selbst wenn die Daten, die durch dieselbe zu verarbeiten sind, korrekt sind, was nachteilhaft ist und beispielsweise bei sicherheitskritischen Anwendungen so gut wie ausgeschlossen sein sollte.
  • Aus der DE 11 2007 003 639 T5 ist ein Verfahren zum Erfassen einer Störung in einer Fehlerkorrektureinheit bekannt, bei dem die Fehlerkorrektureinheit Ausgangsdaten von einer Datenquelle empfängt, bestimmt, ob die empfangenen Daten fehlerhaft sind, und falls dies der Fall ist, diese korrigiert. Ein Fehlervektor wird manipuliert, um anzugeben, dass ein Fehler korrigiert wurde. Die Ausgangsdaten der Fehlerkorrektureinheit werden mit wenigstens einem Referenzdatenelement verglichen und basierend auf dem Vergleich und dem Fehlervektor wird bestimmt, ob die Fehlerkorrektureinheit ordnungsgemäß arbeitet.
  • Die US 2003/0070135 A1 offenbart ein Verfahren zum Bestimmen von r Fehlererfassungsbits eines Worts von m Bits, die codiert werden sollen. Das Verfahren umfasst das Berechnen des Produkts eines Vektors mit m Komponenten, die das zu codierende Wort darstellen, und einer Partitätskontrollmatrix. Die Paritätskontrollmatrix enthält zumindest ein Paar von komplementären Zeilen.
  • Es ist die Aufgabe der vorliegenden Erfindung, eine Vorrichtung zum Erfassen eines Fehlers in einem codierten Binärwort, einen Fehlerdetektor, eine Schaltungsanordnung, und ein Verfahren zum Erfassen eines Fehlers in einem codierten Binärwort mit verbesserten Charakteristika zu schaffen.
  • Die Aufgabe wird gelöst durch die Merkmale der unabhängigen Ansprüche. Weiterbildungen finden sich in den abhängigen Ansprüchen.
  • Ein Ausführungsbeispiel gemäß einem Aspekt schafft eine Vorrichtung zum Erfassen eines Fehlers in einem durch einen Fehlerkorrekturcode codierten Binärwort, wobei die Vorrichtung einen Fehlerkorrektor und eine Fehlerdetektor aufweist. Der Fehlerkorrektor ist konfiguriert, um einen korrigierbaren Bitfehler in einem fehlerhaften Teilsatz von Bits des codierten Binärworts zu korrigieren, wobei der Teilsatz von Bits einen Teil der Bits oder alle Bits des durch den Fehlerkorrekturcode codierten Binärworts umfasst, und um einen korrigierten Teilsatz von Bits an einem Ausgang des Fehlerkorrektors auszugeben, falls der Fehlerkorrektor fehlerlos arbeitet. Der Fehlerdetektor ist konfiguriert, um ein Fehlerdetektoreingangsbinärwort zu empfangen, wobei das Fehlerdetektoreingangsbinärwort auf einem korrigierten codierten Binärwort basiert, das den korrigierten Teilsatz von Bits und, falls der Teilsatz nicht alle Bits in dem durch den Fehlerkorrekturcode codierten Binärworts umfasst, den verbleibenden Rest des durch den Fehlerkorrekturcode codierten Binärworts enthält, und um basierend auf dem Fehlerkorrekturcode zu bestimmen, ob das Fehlerdetektoreingangsbinärwort ein Codewort des Fehlerkorrekturcodes ist oder nicht.
  • Durch Bestimmen, ob das Fehlerdetektoreingangsbinärwort ein Codewort des Fehlerkorrekturcodes ist oder nicht, kann ein Fehler in dem Fehlerdetektoreingangsbinärwort erfasst werden. Dieser Fehler kann verursacht werden durch eine fehlerhafte Fehlerkorrektur, die durch den Fehlerkorrektor durchgeführt wird, oder einen Fehler in dem ordnungsgemäßen Teilsatz von Bits des fehlerhaften codierten Binärworts, das nicht durch den Fehlerkorrektor korrigiert wurde.
  • Ein weiteres Ausführungsbeispiel gemäß einem Aspekt schafft einen Fehlerdetektor, der konfiguriert ist, um eine Fehlererfassungsbitsequenz zu bestimmen, die anzeigt, ob ein Fehlerdetektoreingangsbinärwort ein Codewort eines Fehlerkorrekturcodes ist oder nicht. Der Fehlerdetektor kann die Fehlererfassungsbitsequenz bestimmen basierend auf einer Multiplikation einer Fehlererfassungsmatrix und des Fehlerdetektoreingangsbinärworts. Die Fehlererfassungsmatrix basiert auf einer Prüfmatrix des Fehlerkorrekturcodes. Ferner weist die Fehlererfassungsmatrix weniger Zeilen auf als die Prüfmatrix oder weniger Spalten als die Prüfmatrix.
  • Ein weiteres Ausführungsbeispiel gemäß einem Aspekt schafft einen Fehlerdetektor, der konfiguriert ist, um eine Fehlererfassungsbitsequenz zu bestimmen, die anzeigt, ob ein Fehlerdetektoreingangsbinärwort ein Codewort eines Fehlerkorrekturcodes ist oder nicht. Der Fehlerdetektor bestimmt die Fehlererfassungsbitsequenz basierend auf einer Multiplikation einer Fehlererfassungsmatrix und des Fehlererfassungseingangsbinärworts. Ferner basiert die Fehlererfassungsmatrix auf der Prüfmatrix des Fehlerkorrekturcodes, und die Fehlererfassungsmatrix weist zumindest eine Spalte oder zumindest eine Zeile auf, die ableitbar ist durch Invertieren zumindest eines Elements einer entsprechenden Spalte oder zumindest eines Elements einer entsprechenden Zeile der Prüfmatrix.
  • Ein weiteres Ausführungsbeispiel gemäß einem weiteren Aspekt schafft eine Vorrichtung zum Erfassen eines Fehlers in der Mehrzahl von codierten Binärwörtern, die durch einen Fehlerkorrekturcode codiert sind, die einen Kombinierer und einen Fehlerdetektor aufweist. Der Kombinierer ist konfiguriert, um ein kombiniertes Binärwort zu bestimmen durch Kombinieren eines ersten codierten Binärworts und eines zweiten codierten Binärworts der Mehrzahl von codierten Binärwörtern, so dass das bestimmte kombinierte Binärwort ein Codewort des Fehlerkorrekturcodes ist, falls das erste codierte Binärwort und das zweite codierte Binärwort Codewörter des Fehlerkorrekturcodes sind, und so dass das bestimmte kombinierte codierte Binärwort kein Codewort des Fehlerkorrekturcodes ist, falls das erste codierte Binärwort oder das zweite codierte Binärwort kein Codewort des Fehlerkorrekturcodes ist. Ferner ist der Fehlerdetektor konfiguriert, um eine Fehlererfassungsbitsequenz zu bestimmen, die anzeigt, ob das bestimmte kombinierte Binärwort ein Codewort des Fehlerkorrekturcodes ist oder nicht.
  • Durch Kombinieren zweier oder mehrerer codierter Binärwörter auf eine Weise, so dass das kombinierte Binärwort erneut ein Codewort des Fehlerkorrekturcodes ist, falls alle kombinierten codierten Binärwörter Codewörter des Fehlerkorrekturcodes sind, kann es ausreichen, denselben Fehlerdetektor zum gleichzeitigen Erfassen eines Fehlers innerhalb von zwei oder mehr codierten Binärwörtern zu verwenden. Daher ist beispielsweise nur ein Fehlerdetektor erforderlich zum Erfassen eines Fehlers in einer Mehrzahl von Binärwörtern, die durch einen Fehlerkorrekturcode codiert sind. Auf diese Weise kann der Hardwareaufwand zur Fehlererfassung wesentlich reduziert werden.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf beiliegende Zeichnungen näher erläutert. Es zeigen:
  • 1 ein Blockdiagramm einer Vorrichtung zum Erfassen eines Fehlers in einem codierten Binärwort;
  • 2 ein Blockdiagramm einer Vorrichtung zum Erfassen eines Fehlers in einem codierten Binärwort;
  • 3 ein Blockdiagramm eines adressierbaren Speichers zum Speichern und Bereitstellen von Binärwörtern;
  • 4 ein Blockdiagramm eines Fehlerdetektors und eines Fehleranzeigebestimmers;
  • 5 ein Blockdiagramm eines Fehlerdetektors und eines Fehleranzeigebestimmers;
  • 6 ein Blockdiagramm einer Vorrichtung zum Erfassen eines Fehlers in einem codierten Binärwort;
  • 7 ein Blockdiagramm einer Vorrichtung zum Erfassen eines Fehlers in einem codierten Binärwort;
  • 8 ein Flussdiagramm eines Verfahrens zum Erfassen eines Fehlers in einem codierten Binärwort;
  • 9 ein Blockdiagramm einer Vorrichtung zum Erfassen eines Fehlers in einer Mehrzahl von codierten Binärwörtern, die durch einen Fehlerkorrekturcode codiert sind; und
  • 10 das Flussdiagramm eines Verfahrens zum Erfassen eines Fehlers in einer Mehrzahl von codierten Binärwörtern, die durch einen Fehlerkorrekturcode codiert sind.
  • Nachfolgend werden für Aufgaben und Funktionseinheiten mit den gleichen oder ähnlichen Funktionseigenschaften teilweise die gleichen Bezugszeichen verwendet, und die Beschreibung derselben bezüglich einer Figur soll auch für andere Figuren gelten, um Redundanz bei der Beschreibung der Ausführungsbeispiele zu reduzieren.
  • 1 zeigt ein Blockdiagramm einer Vorrichtung 100 zum Erfassen eines Fehlers in einem codierten Binärwort gemäß einem Ausführungsbeispiel eines Aspekts. Die Vorrichtung 100 weist einen Fehlerkorrektor 110 auf, der mit einem Fehlerdetektor 120 verbunden ist. Der Fehlerkorrektur 110 korrigiert einen korrigierbaren Bitfehler 102 in einem fehlerhaften Teilsatz von Bits eines fehlerhaften codierten Binärworts, das durch einen Fehlerkorrekturcode codiert ist, so dass der korrigierte Teilsatz von Bits gleich einem entsprechenden Teilsatz von Bits eines Codeworts des Fehlerkorrekturcodes ist, falls der Fehlerkorrektor 110 fehlerlos arbeitet. Ferner bestimmt der Fehlerdetektor 120 eine Fehlererfassungsbitsequenz 122, die anzeigt, ob ein Fehlerdetektoreingangsbinärwort 118 ein Codewort des Fehlerkorrekturcodes ist oder nicht. Das Fehlerdetektoreingangsbinärwort 118 basiert auf einem korrigierten codierten Binärwort 112, das den korrigierten Teilsatz von Bits und maximal einen ordnungsgemäßen Teilsatz von Bits des fehlerhaften codierten Binärworts 102 enthält.
  • Durch Bestimmen, ob das Fehlerdetektoreingangsbinärwort 118 ein Codewort des Fehlerkorrekturcodes ist oder nicht, kann ein Fehler, der durch den Fehlerkorrektor verursacht wird, und/oder ein Fehler, der bereits in dem ordnungsgemäßen Teilsatz von Bits des fehlerhaften codierten Binärworts 102 existiert, das in dem korrigierten codierten Binärwort 112 enthalten ist, erfasst werden. Daher kann die Wahrscheinlichkeit eines Fehlers in einem codierten Binärwort nach der Fehlerkorrektur wesentlich reduziert werden, so dass die Gesamtfehlererfassungswahrscheinlichkeit wesentlich verbessert werden kann.
  • Bei diesem Beispiel und den folgenden Beispielen weist ein Binärwort die gleiche Anzahl von Bits auf wie ein Codewort des Fehlerkorrekturcodes. Ein Teilsatz von Bits eines Binärworts oder eines Codeworts kann ein leerer Teilsatz sein, kann einige Bits des Binärworts oder des Codeworts enthalten oder kann alle Bits des Binärworts oder des Codeworts enthalten. Ferner kann ein ordnungsgemäßer Teilsatz eines Binärworts oder eines Codeworts ein leerer Teilsatz sein oder kann einige Bits, aber nicht alle Bits des Binärworts oder des Codeworts enthalten.
  • Der Fehlerkorrektor 110 kann implementiert sein, so dass ein korrigierbarer Bitfehler in allen Bits eines codierten Binärworts korrigiert werden kann, oder so, dass nur ein Teil der Bits eines codierten Binärworts, das an den Fehlerkorrektor 110 geliefert wird, korrigiert wird. Beispielsweise kann ein codiertes Binärwort Adressbits aufweisen, die nicht korrigiert sein können, und daher kann der Hardwareaufwand für den Fehlerkorrektor 110 reduziert werden. Bei diesem Beispiel kann ein korrigierbarer Bitfehler in einem fehlerhaften ordnungsgemäßen Teilsatz von Bits nur korrigiert werden, falls ein fehlerhaftes codiertes Binärwort an den Fehlerkorrektor 110 geliefert wird.
  • Anders ausgedrückt, der fehlerhafte Teilsatz von Bits des fehlerhaften Binärworts kann alle Bits des fehlerhaften codierten Binärworts 102 enthalten, oder der fehlerhafte Teilsatz von Bits kann ein ordnungsgemäßer Teilsatz der Bits des fehlerhaften codierten Binärworts 102 sein und enthält nicht alle Bits des fehlerhaften codierten Binärworts 102.
  • Beispielsweise enthält das fehlerhafte codierte Binärwort 102 20 Bits, und der fehlerhafte Teilsatz von Bits enthält die ersten 14 Bits des fehlerhaften codierten Binärworts 102 mit zumindest einem fehlerhaften Bit. Dann korrigiert der Fehlerkorrektor 110 einen korrigierbaren Bitfehler (z. B. das zumindest eine fehlerhafte Bit) innerhalb der 14 Bits des fehlerhaften Teilsatzes von Bits, während ein korrigierbarer Bitfehler in den letzten sechs Bits des fehlerhaften codierten Binärworts 102, die nicht in dem fehlerhaften Teilsatz von Bits enthalten sind, durch den Fehlerkorrektor 110 nicht korrigiert wird, falls derselbe fehlerlos arbeitet. Falls der fehlerhafte Teilsatz von Bits alle 20 Bits des fehlerhaften codierten Binärworts 102 enthält, wird jeder korrigierbare Bitfehler durch den Fehlerkorrektor 110 korrigiert. Falls ein fehlerloses codiertes Binärwort an den Fehlerkorrektor geliefert wird, wird keines der 14 Bits des Teilsatzes von Bits (der in diesem Fall kein „fehlerhafter” Teilsatz ist) korrigiert, und der korrigierte Teilsatz von Bits ist gleich den 14 Bits des fehlerlosen codierten Binärworts.
  • Der korrigierte Teilsatz von Bits enthält die gleiche Anzahl von Bits wie der fehlerhafte Teilsatz von Bits, aber zumindest ein Bit kann korrigiert werden durch den Fehlerkorrektor 110 basierend auf dem Fehlerkorrekturcode, falls der fehlerhafte Teilsatz einen korrigierbaren Bitfehler aufweist. Der korrigierte Teilsatz von Bits entspricht einem Teilsatz von Bits eines Codeworts des Fehlerkorrekturcodes, was ein Ergebnis der Korrektur des korrigierbaren Bitfehlers ist, falls der Fehlerkorrektor 110 fehlerlos arbeitet. Andernfalls kann der Fehlerkorrektor 110 einen fehlerhaften korrigierten Teilsatz von Bits ausgeben, der zumindest ein fehlerhaftes Bit enthält. Solch ein fehlerhaftes Verhalten des Fehlerkorrektors 110 kann durch den Fehlerdetektor 120 erfasst werden.
  • Der Eingang des Fehlerkorrektors 110 kann alle Bits eines codierten Binärworts sein, da alle Bits notwendig sein können für die Fehlerkorrektur basierend auf dem Fehlerkorrekturcode. Das eingegebene codierte Binärwort ist ein fehlerhaftes codiertes Binärwort, falls dasselbe zumindest ein fehlerhaftes Bit aufweist. Der korrigierte Teilsatz von Bits, der den Ausgang des Fehlerkorrektors 110 darstellt, kann weniger Bits aufweisen als das eingegebene codierte Binärwort, abhängig davon, ob der Fehlerkorrektor 110 einen korrigierbaren Bitfehler in allen Bits eines fehlerhaften codierten Binärworts korrigiert oder nur innerhalb eines fehlerhaften ordnungsgemäßen Teilsatzes von Bits des fehlerhaften codierten Binärworts.
  • Der Fehlerdetektor 120 bestimmt eine Fehlererfassungsbitsequenz 122, die anzeigt, ob ein Fehlerdetektoreingangsbinärwort 118 ein Codewort des Fehlerkorrekturcodes ist oder nicht. Der Fehlerdetektor 120 kann beispielsweise die Fehlererfassungsbitsequenz 122 bestimmen basierend auf dem Fehlerkorrekturcode, so dass die Fehlererfassungsbitsequenz ein Fehlersyndrom des Fehlerdetektoreingangsbinärworts 118 darstellen kann. Bei diesem Beispiel kann die Fehlererfassungsbitsequenz 102 eine Anzahl von Bits gleich der Anzahl von Prüfbits des Fehlerkorrekturcodes aufweisen. Auf diese Weise kann jeder erfassbare Fehler (abhängig von dem Fehlerkorrekturcode) durch den Fehlerdetektor 120 erfasst werden (falls der Fehlerdetektor fehlerlos arbeitet).
  • Alternativ kann der Fehlerdetektor 120 beispielsweise die Fehlererfassungsbitsequenz 122 bestimmen, so dass die Fehlererfassungsbitsequenz 102 nur ein reduziertes Fehlersyndrom (z. B. einen Teilsatz von Bits des Fehlersyndroms oder eine Funktion der Bits des Fehlersyndroms, wie beispielsweise die Parität aller Bits des Fehlersyndroms) des Fehlerdetektoreingangsbinärworts 118 darstellt, was zu einer reduzierten Fehlererfassungswahrscheinlichkeit führt, aber auch zu reduzierten Hardwareanforderungen für den Fehlerdetektor 120. Anders ausgedrückt, die Fehlererfassungsbitsequenz 122 kann weniger Bits aufweisen als eine Anzahl von Prüfbits des Fehlerkorrekturcodes. Auf diese Weise kann die Fehlererfassungswahrscheinlichkeit des Fehlerdetektors 120 angepasst werden an die erforderliche Fehlererfassungswahrscheinlichkeit, was zu reduzierten Hardwareanforderungen führt für reduzierte Fehlererfassungswahrscheinlichkeitsanforderungen. Daher kann der notwendige Hardwareaufwand ohne Weiteres an Anwendungen mit unterschiedlichen Fehlererfassungswahrscheinlichkeitsanforderungen angepasst werden.
  • Anders ausgedrückt, der Fehlerkorrekturcode kann durch den Fehlerkorrektor verwendet werden zum Korrigieren eines korrigierbaren Bitfehlers in dem fehlerhaften Teilsatz von Bits, und der gleiche Fehlerkorrekturcode kann durch den Fehlerdetektor zum Erfassen eines Fehlers in dem Fehlerdetektoreingangsbinärwort 118 verwendet werden. In diesem Zusammenhang kann der Fehlerkorrekturcode auch als Fehlerkorrektur- und -erfassungscode oder Fehlerkorrektur/Erfassungscode bezeichnet werden, und kann für Fehlerkorrektur oder für Fehlererfassung oder für Fehlerkorrektur und -erfassung verwendet werden.
  • Beispielsweise können Codes für Fehlerkorrektur und für Fehlererfassung verwendet werden. Beispielsweise kann ein Hamming-Code für 1-Bit-Fehlerkorrektur oder für 1-Bit- und 2-Bit-Fehlererfassung verwendet werden. Gleichartig dazu kann ein Hsiao-Code für 1-Bit-Fehlerkorrektur und gleichzeitig für 2-Bit-Fehlererfassung verwendet werden. Falls ein Hsiao-Code nur für Fehlererfassung verwendet wird, werden 1-Bit-, 2-Bit- und 3-Bit-Fehler erfasst. Hier wird die Bezeichnung „Fehlerkorrekturcode” verwendet, und es ist nicht ausgeschlossen, dass der entsprechende Code auch für Fehlererfassung verwendet werden kann.
  • Das Fehlerdetektoreingangsbinärwort 118 basiert auf einem korrigierten codierten Binärwort 112, das den korrigierten Teilsatz von Bits und maximal einen ordnungsgemäßen Teilsatz von Bits des fehlerhaften codierten Binärworts 102 enthält. Das Fehlerdetektoreingangsbinärwort 118 kann das korrigierte codierte Binärwort 112 selbst sein, oder das korrigierte codierte Binärwort 112 kann mit einem oder mehreren anderen codierten Binärwörtern 114 kombiniert werden, um das Fehlerdetektoreingangsbinärwort 118 zu erhalten, wie es nachfolgend näher erläutert wird.
  • Das korrigierte codierte Binärwort 112 enthält den korrigierten Teilsatz von Bits und maximal einen ordnungsgemäßen Teilsatz von Bits des möglicherweise fehlerhaften codierten Binärworts. Abhängig davon, ob der Fehlerkorrektor 110 implementiert sein kann, um einen korrigierbaren Bitfehler innerhalb aller Bits eines fehlerhaften codierten Binärworts zu korrigieren, oder nur einen ordnungsgemäßen Teilsatz von Bits eines fehlerhaften codierten Binärworts, kann das korrigierte codierte Binärwort 112 nur den korrigierten Teilsatz von Bits (der alle Bits eines codierten Binärworts darstellt) und kein Bit des fehlerhaften codierten Binärworts selbst (Bits, die nicht durch den Fehlerkorrektor korrigiert werden) enthalten, oder das korrigierte codierte Binärwort 112 kann den korrigierten Teilsatz von Bits enthalten, der nur einen ordnungsgemäßen Teilsatz von Bits eines codierten Binärworts darstellt und ein oder mehrere Bits (den ordnungsgemäßen Teilsatz von Bits) des fehlerhaften codierten Binärworts, die nicht durch den Fehlerkorrektor 110 korrigiert werden. Anders ausgedrückt, der ordnungsgemäße Teilsatz von Bits eines fehlerhaften codierten Binärworts kann ein leerer Teilsatz sein oder kann zwischen einem Bit des fehlerhaften codierten Binärworts und allen außer einem Bit des fehlerhaften codierten Binärworts enthalten. Noch anders ausgedrückt, zumindest ein Bit eines codierten Binärworts wird für Korrektur durch den Fehlerkorrektor 110 berücksichtigt, sodass maximal alle außer einem Bit (der ordnungsgemäße Teilsatz von Bits) des fehlerhaften codierten Binärworts in dem korrigierten Binärwort 112 enthalten sind, direkt ohne Verarbeitung durch den Fehlerkorrektor 110.
  • 2 zeigt ein Blockdiagramm einer Vorrichtung 200 zum Erfassen eines Fehlers in einem codierten Binärwort gemäß einem Ausführungsbeispiel eines Aspekts. Die Vorrichtung 200 ist ähnlich wie die in 1 gezeigte Vorrichtung und stellt ein Beispiel dar für einen Fehlerkorrektor 23 (FKS), der implementiert ist zum Korrigieren nur eines Teils (eines ordnungsgemäßen Teilsatzes) von Bits eines fehlerhaften codierten Binärworts v' 21. Der Eingang des Fehlerkorrektors 23 kann ein fehlerhaftes codiertes Binärwort v' 21 sein, das eine erste Gruppe von Bits v'1 enthält, die zu korrigieren sind, und eine zweite Gruppe von Bits v'2, die nicht zu korrigieren ist. Falls die Bits, die zu korrigieren sind, einen korrigierbaren Bitfehler enthalten (fehlerhafter Teilsatz von Bits v'1 des fehlerhaften codierten Binärworts v'), und der Fehlerkorrektor 23 fehlerlos arbeitet, ist der korrigierte Teilsatz von Bits v1 corr 24 gleich einem entsprechenden Teilsatz von Bits eines Codeworts des Fehlerkorrekturcodes. Falls der Fehlerkorrektor 23 nicht fehlerlos arbeitet, kann der korrigierte Teilsatz von Bits v1 corr 24 zumindest ein fehlerhaftes Bit aufweisen und ist daher nicht gleich einem entsprechenden Teilsatz von Bits eines Codeworts des Fehlerkorrekturcodes. Nach dem Korrigieren des fehlerhaften Teilsatzes v'1 werden der korrigierte Teilsatz von Bits v1 corr 24 und die zweite Gruppe von Bits v'2, die nicht für Korrektur berücksichtigt wird (die den ordnungsgemäßen Teilsatz von Bits v'2 des fehlerhaften codierten Binärworts v' darstellt) an den Fehlerdetektor 25 geliefert. Der Fehlerdetektor 25 bestimmt eine Fehlererfassungsbitsequenz A1, ..., Al 26, die anzeigt, ob das Fehlerdetektoreingangsbinärwort, das bei diesem Beispiel das korrigierte codierte Binärwort vcorr ist, den korrigierten Teilsatz von Bits v1 corr 24 und den ordnungsgemäßen Teilsatz von Bits v'2 des fehlerhaften codierten Binärworts v' 21 enthält oder nicht.
  • Bei diesem Beispiel ist der fehlerhafte Teilsatz v'1 ein ordnungsgemäßer Teilsatz von Bits des fehlerhaften codierten Binärworts v' 21, was bedeutet, dass es sein kann, dass der Fehlerkorrektor 23 einen korrigierbaren Bitfehler aller Bits eines codierten Binärworts nicht korrigiert. Ferner ist der ordnungsgemäße Teilsatz von Bits v'2 des fehlerhaften codierten Binärworts v', der in dem korrigierten codierten Binärwort vcorr enthalten ist, ein komplementärer Teilsatz von Bits im Vergleich zu dem fehlerhaften Teilsatz von Bits v'1. Dies bedeutet, dass der fehlerhafte Teilsatz von Bits v'2 des fehlerhaften codierten Binärworts v' 21 die Bits eines codierten Binärworts enthält, für die ein korrigierbarer Bitfehler nicht durch den Fehlerkorrektor 23 korrigiert wird. Noch anders ausgedrückt vervollständigen sich der korrigierte Teilsatz von Bits v1 corr und der ordnungsgemäße Teilsatz von Bits v'2 des fehlerhaften codierten Binärworts v' 21 einander zu einem Codewort vcorr des Fehlerkorrekturcodes, falls der Fehlerkorrektor 23 fehlerlos arbeitet und der ordnungsgemäße Teilsatz von Bits v'2 des fehlerhaften codierten Binärworts v' 21 keinen Bitfehler aufweist.
  • Bei einigen Ausführungsbeispielen kann die Fehlererfassungsbitsequenz 122, 26 durch den Fehlerdetektor 120, 25 bestimmt werden, sodass die Fehlererfassungsbitsequenz 122, 26 für alle möglichen Codewörter des Fehlerkorrekturcodes die gleiche vordefinierte Erfassungsbitsequenz aufweist. Auf diese Weise kann ohne weiteres von der Fehlererfassungsbitsequenz 122, 26 bestimmt werden, ob das Fehlerdetektoreingangsbinärwort ein Codewort des Fehlerkorrekturcodes ist oder nicht. Diese vordefinierte Erfassungsbitsequenz kann beispielsweise nur Bits gleich 0 oder nur Bits gleich 1 aufweisen, obwohl auch andere Bitsequenzen für die vordefinierte Erfassungsbitsequenz gewählt werden können.
  • Alternativ kann gemäß einem Ausführungsbeispiel eines Aspekts die Fehlererfassungsbitsequenz 122, 26 durch den Fehlerdetektor 120, 25 bestimmt werden, sodass die Fehlererfassungsbitsequenz 122, 26 mehr als eine vordefinierte Erfassungsbitsequenz für unterschiedliche Codewörter des Fehlerkorrekturcodes aufweist. Beispielsweise kann der Fehlerdetektor 120, 25 die Fehlererfassungsbitsequenz 122, 26 bestimmen, sodass die Fehlererfassungsbitsequenz 122, 26 gleich einer ersten vordefinierten Erfassungsbitsequenz ist für einen ersten Teilsatz von Codewörtern des Fehlerkorrekturcodes, und gleich einer zweiten vordefinierten Erfassungsbitsequenz für einen zweiten Teilsatz von Codewörtern des Fehlerkorrekturcodes. Die erste vordefinierte Erfassungsbitsequenz unterscheidet sich von der zweiten vordefinierten Erfassungsbitsequenz und der erste Teilsatz unterscheidet sich von dem zweiten Teilsatz. Auf diese Weise kann ein Haftfehler zumindest an einem Ausgang des Fehlerdetektors 120 identifiziert werden, da zumindest für zwei unterschiedliche Codewörter des Fehlerkorrekturcodes die Fehlererfassungsbitsequenz 122, 26 unterschiedliche vordefinierte Erfassungsbitsequenzen aufweist, falls der Fehlerdetektor 120, 25 fehlerlos arbeitet.
  • Falls beispielsweise die Fehlererfassungsbitsequenz 122, 26 entweder gleich der ersten vordefinierten Erfassungsbitsequenz oder gleich der zweiten vordefinierten Erfassungsbitsequenz für jedes Codewort eines Fehlerkorrekturcodes ist, dann kann die Fehlererfassungsbitsequenz 122, 26 ungleich der ersten vordefinierten Erfassungsbitsequenz und der zweiten vordefinierten Erfassungsbitsequenz sein, falls das korrigierte codierte Binärwort kein Codewort des Fehlerkorrekturcodes ist. Auf diese Weise kann ein Fehler, der durch den Fehlerkorrektor 110 verursacht wird, oder ein Fehler, der bereits in dem ordnungsgemäßen Teilsatz von Bits des fehlerhaften codierten Binärworts erhalten ist, erfasst werden.
  • Obwohl für die erste vordefinierte Erfassungsbitsequenz und die zweite vordefinierte Erfassungsbitsequenz eine beliebige Bitsequenz gewählt werden kann (da Implementieren eines oder mehrerer Inverter an den Ausgängen des Fehlerdetektors jede vordefinierte Bitsequenz realisieren kann), können alle Bits der ersten vordefinierten Erfassungsbitsequenz 0 sein, und alle Bits der zweiten vordefinierten Erfassungsbitsequenz können 1 sein. Auf diese Weise können Haftfehler an 0 oder Haftfehler an 1 (stuck-at-0 or stuck-at-1 errors) an den Ausgängen des Fehlerdetektors 120, 25 erfasst werden.
  • Die Fehlererfassungsbitsequenz 122 kann beispielsweise weiter verarbeitet werden durch einen Fehleranzeigebestimmer. Ein Beispiel für einen Fehleranzeigebestimmer 35 ist in 4 gezeigt. Bei diesem Beispiel bestimmt der Fehlerdetektor 34 eine Fehlererfassungsbitsequenz A1 ... Al, die nur gleich 0 Bits aufweist, falls das Fehlerdetektoreingangsbinärwort vcorr gleich einem beliebigen Codewort des Fehlerkorrekturcodes ist. Der Fehleranzeigebestimmer 35 umfasst ein NOR-Gatter 36 mit Eingängen für die Fehlererfassungsbitsequenz und einem Binärausgang e1, der gleich 1 ist, falls die Fehlererfassungsbitsequenz nur Bits gleich 0 aufweist, und ist ansonsten gleich 0. Folglich wird ein Fehler in dem Fehlerdetektoreingangsbinärwort vcorr erfasst, falls der Binärausgang e1 des Fehleranzeigebestimmers 35 gleich 0 ist, falls der Fehlerdetektor 34 und der Fehleranzeigebestimmer 35 fehlerlos arbeiten.
  • Alternativ, wie es oben erwähnt wurde, kann die Fehlererfassungsbitsequenz A1 ... Al gleich zwei oder mehr vordefinierten Erfassungsbitsequenzen für unterschiedliche Codewörter des Fehlerkorrekturcodes sein. 5 zeigt ein Beispiel für einen Fehleranzeigebestimmer 510, der mit dem Ausgang des Fehlerdetektors 44 verbunden ist, falls die Fehlererfassungsbitsequenz entweder eine erste vordefinierte Erfassungsbitsequenz oder eine zweite vordefinierte Erfassungsbitsequenz (zwei unterschiedliche vordefinierte Erfassungsbitsequenzen) für jedes Codewort des Fehlerkorrekturcodes aufweist. Der Fehleranzeigebestimmer 510 weist eine erste kombinatorische Schaltung 45 mit einem NOR-Gatter 46, wie es oben beschrieben ist, und eine zweite kombinatorische Schaltung 47 mit einem UND-Gatter 48 auf, die die Bits der Fehlererfassungsbitsequenz gemäß einer logischen UND-Funktion kombiniert, um einen zweiten Binärausgang e2 des Fehleranzeigebestimmers 510 zu erhalten. Der Binärausgang e1 des NOR-Gatters 46 und der Binärausgang e2 des UND-Gatters 48 kann zusammen als Fehleranzeigebitsequenz bezeichnet werden. Falls die Fehleranzeigebitsequenz 01 oder 10 ist, weist die Fehlererfassungsbitsequenz nur Bits gleich 0 oder nur Bits gleich 1 auf, was die erste vordefinierte Erfassungsbitsequenz und die zweite vordefinierte Bitsequenz sein kann, die anzeigt, dass das Fehlerdetektoreingangsbinärwort vcorr ein Codewort des Fehlerkorrekturcodes ist. Folglich, falls die Fehleranzeigebitsequenz 00 oder 11 ist (der Binärausgang des NOR-Gatters ist gleich dem Binärausgang des UND-Gatters), ist das Fehlerdetektoreingangsbinärwort vcorr kein Codewort des Fehlerkorrekturcodes und ein Fehler in dem codierten Binärwort wird erfasst.
  • Anders ausgedrückt, die in 1 und/oder 2 gezeigte Vorrichtung kann zusätzlich einen Fehleranzeigebestimmer aufweisen, der basierend auf der Fehlererfassungsbitsequenz eine Fehleranzeigebitsequenz bestimmt, die anzeigt, ob ein Fehler in dem Fehlerdetektoreingangsbinärwort erfasst wird oder nicht. Die Fehleranzeigebitsequenz kann ein Bit aufweisen, falls nur ein möglicher Wert der Fehlererfassungsbitsequenz für alle Codewörter des Fehlerkorrekturcodes erhältlich ist, oder die Fehleranzeigebitsequenz kann 2 Bits aufweisen, falls zumindest zwei unterschiedliche mögliche Werte der Fehlererfassungsbitsequenz für unterschiedliche Codewörter des Fehlerkorrekturcodes erhältlich sind.
  • Der Fehlerkorrekturcode kann beispielsweise ein linearer Fehlerkorrekturcode sein, obwohl auch ein nichtlinearer Fehlerkorrekturcode verwendet werden kann. Der Fehlerkorrekturcode kann beispielsweise ein Hamming-Code, ein Hsiao-Code oder ein BCH-Code sein.
  • Bei einigen Ausführungsbeispielen kann der Fehlerdetektor 120, 25, 34, 44 die Fehlererfassungsbitsequenz bestimmen basierend auf einer Multiplikation einer Fehlererfassungsmatrix und des Fehlerdetektoreingangsbinärworts. Die Fehlererfassungsmatrix kann auf einer Prüfmatrix (z. B. einer Paritätsprüfmatrix) des Fehlerkorrekturcodes basieren.
  • Beispielsweise weist die Fehlererfassungsmatrix weniger Zeilen auf als die Prüfmatrix oder weniger Spalten als die Prüfmatrix. Anders ausgedrückt, die Fehlererfassungsbitsequenz kann weniger Bits aufweisen als eine Anzahl von Prüfbits des Fehlerkorrekturcodes, wie es bereits oben beschrieben ist.
  • Ferner weist die Fehlererfassungsmatrix beispielsweise zumindest eine Spalte oder zumindest eine Zeile auf, die ableitbar ist durch Invertieren zumindest eines Elements einer entsprechenden Spalte oder zumindest eines Elements einer entsprechenden Zeile der Prüfmatrix oder durch Invertieren zumindest eines Elements einer entsprechenden Spalte oder zumindest eines Elements einer entsprechenden Zeile einer Matrix, die sich von einer Multiplikation einer Transformationsmatrix und der Prüfmatrix ergibt.
  • Bei einigen Ausführungsbeispielen kann der Eingang des Fehlerkorrektors 110, 23 ein codiertes Binärwort sein, bereitgestellt durch einen adressierbaren Speicher (z. B. ROM, RAM oder nichtflüchtiger Speicher), einen Codierer oder kann von einem Sender empfangen werden. In jedem Fall kann das codierte Binärwort ein oder mehrere fehlerhafte Bits aufweisen, die zu einem fehlerhaften codierten Binärwort führen.
  • Ein codiertes Binärwort oder ein fehlerhaftes codiertes Binärwort weist beispielsweise eine erste Gruppe von Bits auf, die Datenbits darstellen, eine zweite Gruppe von Bits, die Prüfbits des Fehlerkorrekturcodes darstellen, und eine dritte Gruppe von Bits, die Adressbits darstellen.
  • Ferner kann der fehlerhafte Teilsatz von Bits des fehlerhaften codierten Binärworts nur die erste Gruppe von Bits und die zweite Gruppe von Bits enthalten, und das korrigierte codierte Binärwort enthält den korrigierten Teilsatz von Bits und die dritte Gruppe von Bits des fehlerhaften codierten Binärworts (die den ordnungsgemäßen Teilsatz von Bits des fehlerhaften codierten Binärworts darstellen). Anders ausgedrückt, die erste Gruppe von Bits und die zweite Gruppe von Bits können durch den Fehlerkorrektor korrigiert werden, falls ein korrigierbarer Bitfehler innerhalb dieser Bits auftritt und der Fehlerkorrektor fehlerlos arbeitet, während die dritte Gruppe von Bits nicht durch den Fehlerkorrektor korrigiert wird, falls der korrigierbare Bitfehler in der dritten Gruppe von Bits auftritt.
  • Ein codiertes Binärwort, das ein fehlerhaftes codiertes Binärwort sein kann, kann durch einen adressierbaren Speicher 51 an den Fehlerkorrektor geliefert werden, wie er in 3 gezeigt ist. Bei diesem Beispiel ist die erste Gruppe von Bits u, u' (Datenbits) und die zweite Gruppe von Bits c, c' (Prüfbits) an einer Adresse des adressierbaren Speichers 51 gespeichert, angezeigt durch die dritte Gruppe von Bits a (Adressbits).
  • Wie es bereits oben erwähnt wurde, kann das Fehlerdetektoreingangsbinärwort eine Kombination des korrigierten codierten Binärworts und zumindest eines anderen codierten Binärworts sein. Dafür kann die Vorrichtung zum Erfassen eines Fehlers in einem codierten Binärwort bei einigen Ausführungsbeispielen zusätzlich einen Kombinierer aufweisen, der das Fehlerdetektoreingangsbinärwort bestimmt durch Kombinieren des korrigierten codierten Binärworts und eines zweiten codierten Binärworts, sodass das Fehlerdetektoreingangsbinärwort ein Codewort des Fehlerkorrekturcodes ist, falls das korrigierte codierte Binärwort und das zweite codierte Binärwort Codewörter des Fehlerkorrekturcodes sind, und sodass das Fehlerdetektoreingangsbinärwort kein Codewort des Fehlerkorrekturcodes ist, falls das korrigierte codierte Binärwort oder das zweite codierte Binärwort kein Codewort des Fehlerkorrekturcodes ist. Auf diese Weise kann ein Fehler in mehreren eingegebenen codierten Binärwörtern gleichzeitig durch den gleichen Fehlerdetektor erfasst werden.
  • Es wurde beschrieben, dass der Fehlerdetektor Fehler in seinen Eingangssequenzen erfasst, die durch einen Code C codiert sind. Bei den meisten bisher beschriebenen Beispielen wurde der gleiche Code C auch für Fehlerkorrektur fehlerhafter Bits in einem Teilsatz von Bits eines Codeworts durch die Korrektorschaltung verwendet.
  • Alternativ kann der beschriebene Fehlerdetektor auch angewendet werden für die Erfassung von fehlerhaften Bits in seinen Eingangssequenzen, die durch einen Code C codiert sind, unabhängig davon, ob der Code C für Fehlerkorrektur verwendet wurde, um die Eingangssequenzen des Detektors zu bestimmen, oder ob der Code C für Fehlerkorrektur oder nur für Fehlererfassung verwendet wird.
  • Beispielsweise ist in 7 der Ausgang v des Codierers 71 ein Codewort des betrachteten Codes C und v wird von den Informationsbits w durch den Codierer 71 bestimmt. Der Ausgang des Codierers 71 ist durch die Leitungen 74 über den Multiplikation-MUX 75 durch die Leitungen 76 ohne Korrektur direkt mit den Eingängen des Detektors FE 77 verbunden. Der Detektor 77 erfasst, ob der Ausgang v des Codierers 71 ein Codewort des betrachteten Codes C ist. Durch den Detektor 77 kann die Korrektheit des Codierers 71 geprüft werden. Und in diesem Fall wurde der Code C nicht für Korrektur einer fehlerhaften Bitsequenz verwendet. Der Code C kann beispielsweise ein Hamming-Code sein, und dieser Code kann entweder für 1-Bit-Fehlerkorrektur oder für 1-Bit- und 2-Bit-Fehlererfassung verwendet werden. In diesem Fall wird der Code C für Erfassung verwendet.
  • 6 zeigt ein Blockdiagramm einer Vorrichtung 600 zum Erfassen eines Fehlers in einem codierten Binärwort, das die Erfassung eines Fehlers in dem Ausgang von zwei Fehlerkorrektoren 61, 62 durch den gleichen Fehlerdetektor 64 darstellt. Der erste Fehlerkorrektor 61, der zweite Fehlerkorrektor 62 und der Fehlerdetektor 64 können gemäß einem oder mehreren oben beschriebenen Aspekten implementiert werden. Anders ausgedrückt, der zweite Fehlerkorrektor 62 kann einen korrigierbaren Bitfehler in einem zweiten fehlerhaften Teilsatz von Bits eines zweiten fehlerhaften codierten Binärworts korrigieren, dass durch den Fehlerkorrekturcode codiert ist, sodass ein korrigierter zweiter Teilsatz von Bits 66 gleich einem entsprechenden Teilsatz von Bits des Codeworts des Fehlerkorrekturcodes ist, falls der zweite Fehlerkorrektor 62 fehlerlos arbeitet. Das zweite codierte Binärwort 66 kann den korrigierten zweiten Teilsatz von Bits enthalten und maximal einen ordnungsgemäßen Teilsatz von Bits des zweiten fehlerhaften codierten Binärworts.
  • Bei diesem Beispiel ist der oben erwähnte Kombinierer als ein XOR-Gatter 63 realisiert. Anders ausgedrückt, der Kombinierer kann das korrigierte codierte Binärwort 65 und das zweite codierte Binärwort 66 kombinieren durch eine bitweise logische XOR-Funktion (Exklusiv-ODER-Funktion), um das Fehlerdetektoreingangsbinärwort zu erhalten.
  • Alternativ zu dem zweiten Fehlerdetektor 62 kann das zweite codierte Binärwort 66 durch einen Codierer bereitgestellt werden, der ein Binärwort gemäß dem Fehlerkorrekturcode codiert, um das zweite codierte Binärwort 66 zu erhalten.
  • Ferner können gemäß dem beschriebenen Konzept mehr als zwei codierte Binärwörter durch den Kombinierer kombiniert werden, sodass der gleiche Fehlerdetektor einen Fehler in der Mehrzahl von codierten Binärwörtern erfassen kann, die durch Fehlerkorrektoren, Codierer oder Sender gleichzeitig bereitgestellt werden.
  • Daher kann der Hardwareaufwand für die Fehlererfassung von Fehlern, die durch Fehlerkorrektoren, Codierer und/oder codierte Binärwörter, die durch einen Sender übertragen werden, verursacht werden, wesentlich reduziert werden, da der Ausgang von mehreren dieser Einheiten durch den gleichen Fehlerdetektor verarbeitet werden kann.
  • Einige Ausführungsbeispiele beziehen sich auf einen Fehlerdetektor, der eine Fehlererfassungsbitsequenz bestimmt, die anzeigt, ob ein Fehlerdetektoreingangsbinärwort ein Codewort eines Fehlerkorrekturcodes ist oder nicht. Der Fehlerdetektor kann die Fehlererfassungsbitsequenz bestimmen basierend auf einer Multiplikation einer Fehlererfassungsmatrix und des Fehlerdetektoreingangsbinärworts. Die Fehlererfassungsmatrix basiert auf einer Prüfmatrix des Fehlerkorrekturcodes. Ferner weist die Fehlererfassungsmatrix weniger Zeilen auf als die Prüfmatrix oder weniger Spalten als die Prüfmatrix.
  • Auf diese Weise kann die Fehlererfassungswahrscheinlichkeit des Fehlerdetektors an die erforderliche Fehlererfassungswahrscheinlichkeit angepasst werden, was zu reduzierten Hardwareanforderungen für reduzierte Fehlererfassungswahrscheinlichkeitsanforderungen führt. Daher kann der notwendige Hardwareaufwand ohne weiteres an Anwendungen mit unterschiedlichen Fehlererfassungswahrscheinlichkeitsanforderungen angepasst werden.
  • Weitere Ausführungsbeispiele beziehen sich auf einen Fehlerdetektor, der eine Fehlererfassungsbitsequenz bestimmt, die anzeigt, ob ein Fehlerdetektoreingangsbinärwort ein Codewort eines Fehlerkorrekturcodes ist oder nicht. Der Fehlerdetektor bestimmt die Fehlererfassungsbitsequenz basierend auf einer Multiplikation einer Fehlererfassungsmatrix und dem Fehlerdetektoreingangsbinärwort. Ferner basiert die Fehlererfassungsmatrix auf der Prüfmatrix des Fehlerkorrekturcodes und die Fehlererfassungsmatrix weist zumindest eine Spalte oder zumindest eine Zeile auf, die ableitbar ist durch Invertieren zumindest eines Elements einer entsprechenden Spalte oder zumindest eines Elements einer entsprechenden Zeile der Prüfmatrix.
  • Auf diese Weise kann eine geeignete Fehlererfassungsmatrix leicht gefunden werden.
  • Ein Fehlerdetektor kann beispielsweise konfiguriert sein, um eine Fehlererfassungsbitsequenz zu bestimmen, die anzeigt, ob ein Fehlerdetektorbinärwort eines Linearcodes C der Länge n mit q Informationsbits ist oder nicht, mit m = n – q und mit einer (m, n)-Prüfmatrix H. Ferner ist der Fehlerdetektor konfiguriert, um die Fehlererfassungsbitsequenz zu bestimmen basierend auf einer Multiplikation einer Fehlererfassungs-(l, n)-Matrix L und des Fehlerdetektoreingangsbinärworts. Die Fehlererfassungsmatrix L wird basierend auf einer (l, n)-Matrix M bestimmt, die definiert ist als das Produkt einer Transformationsmatrix K und der Matrix H als M = KH, wobei K eine (l, m)-Binärmatrix ist, für die nicht alle Elemente gleich 0 sind und 1 kleiner oder gleich m ist. Die Fehlererfassungsmatrix L kann zumindest eine Spalte oder zumindest eine Zeile aufweisen, die ableitbar ist durch Invertieren zumindest eines Elements einer entsprechenden Spalte oder zumindest eines Elements einer entsprechenden Zeile der (l, n)-Matrix M.
  • Anders ausgedrückt, die (l, n)-Fehlererfassungsmatrix L kann bestimmt werden basierend auf einer Matrix M, die das Produkt M = KH einer binären (l, m)-Transformationsmatrix K und der (m, n)-Prüfmatrix des Fehlerkorrekturcodes ist, wo K (Transformationsmatrix) eine (l, m)-Binärmatrix ist, für die nicht alle Elemente gleich 0 sind, und wo die Fehlererfassungsmatrix L zumindest eine Spalte oder zumindest eine Zeile aufweist, die ableitbar ist durch Invertieren zumindest eines Elements einer entsprechenden Spalte oder zumindest eines Elements einer entsprechenden Zeile der Prüfmatrix.
  • Noch anders ausgedrückt, die Fehlererfassungsmatrix kann bestimmt werden basierend auf einer ersten Matrix, die bestimmt wird durch Multiplizieren der Prüfmatrix des Codes durch eine Binärmatrix, für die nicht alle Elemente gleich 0 sind, und wo die Fehlererfassungsmatrix zumindest eine Zeile oder zumindest eine Spalte aufweist, die ableitbar ist durch Invertieren zumindest eines Elements einer entsprechenden Zeile der ersten Matrix oder zumindest eines Elements einer entsprechenden Spalte der ersten Matrix.
  • Zum Ableiten der L-Matrix von der H-Matrix werden beispielsweise die erste und die zweite Zeile von H addiert modulo 2 (z. B. durch eine Multiplikation mit einer geeigneten Matrix K). Die bestimmte Matrix ist die M-Matrix. Zum Bestimmen von L werden beispielsweise alle Elemente der ersten Spalte der M-Matrix invertiert.
  • Weitere Ausführungsbeispiele beziehen sich auf eine Vorrichtung zum Erfassen eines Fehlers in einem codierten Binärwort, die eine Einrichtung zum Korrigieren eines Bitfehlers und eine Einrichtung zum Bestimmen einer Fehlererfassungsbitsequenz aufweist. Die Einrichtung zum Korrigieren eines Bitfehlers korrigiert einen korrigierbaren Bitfehler in einem fehlerhaften Teilsatz von Bits eines fehlerhaften codierten Binärworts, das durch einen Fehlerkorrekturcode codiert ist, sodass der korrigierte Teilsatz von Bits gleich einem entsprechenden Satz von Bits eines Codeworts des Fehlerkorrekturcodes ist, falls die Einrichtung zum Korrigieren eines Bitfehlers fehlerlos arbeitet. Ferner bestimmt eine Einrichtung zum Bestimmen einer Fehlererfassungsbitsequenz eine Fehlererfassungsbitsequenz, die anzeigt, ob ein Fehlerdetektoreingangsbinärwort ein Codewort des Fehlerkorrekturcodes ist oder nicht. Das Fehlerdetektoreingangsbinärwort basiert auf einem korrigierten codierten Binärwort, das den korrigierten Teilsatz von Bits und maximal einen ordnungsgemäßen Teilsatz von Bits des fehlerhaften codierten Binärworts enthält.
  • 8 zeigt ein Flussdiagramm eines Verfahrens 800 zum Erfassen eines Fehlers in einem codierten Binärwort gemäß einem Ausführungsbeispiel eines Aspekts. Das Verfahren 800 weist das Korrigieren 810 eines korrigierbaren Bitfehlers in einem fehlerhaften Teilsatz von Bits eines fehlerhaften codierten Binärworts, das durch einen Fehlerkorrekturcode codiert ist, auf, sodass der korrigierte Teilsatz von Bits gleich einem entsprechenden Teilsatz von Bits eines Codeworts des Fehlerkorrekturcodes ist, falls die Korrektur des korrigierbaren Fehlers fehlerlos durchgeführt wird. Ferner weist das Verfahren 800 das Bestimmen 820 einer Fehlererfassungsbitsequenz auf, die anzeigt, ob ein Fehlerdetektoreingangsbinärwort ein Codewort des Fehlerkorrekturcodes ist oder nicht. Das Fehlerdetektoreingangsbinärwort basiert auf einem korrigierten codierten Binärwort, das den korrigierten Teilsatz von Bits und maximal einen ordnungsgemäßen Teilsatz von Bits des fehlerhaften codierten Binärworts enthält.
  • Außerdem kann das Verfahren 800 weitere Schritte aufweisen, die einen oder mehrere der optionalen Aspekte des oben beschriebenen vorgeschlagenen Konzepts darstellen.
  • 9 zeigt ein Blockdiagramm einer Vorrichtung 900 zum Erfassen eines Fehlers in einer Mehrzahl von codierten Binärwörtern, die durch einen Fehlerkorrekturcode codiert sind, gemäß einem Ausführungsbeispiel eines Aspekts. Die Vorrichtung 900 weist einen Kombinierer 910 auf, der mit einem Fehlerdetektor 920 verbunden ist. Der Kombinierer 910 bestimmt ein kombiniertes Binärwort 912 durch Kombinieren eines ersten codierten Binärworts 902 und eines zweiten codierten Binärworts 904 der Mehrzahl von codierten Binärwörtern, so dass das bestimmte kombinierte Binärwort 912 ein Codewort des Fehlerkorrekturcodes ist, falls das erste codierte Binärwort 902 und das zweite codierte Binärwort 904 Codewörter des Fehlerkorrekturcodes sind, und sodass das bestimmte kombinierte Binärwort 912 kein Codewort des Fehlerkorrekturcodes ist, falls das erste codierte Binärwort 902 oder das zweite codierte Binärwort 904 kein Codewort des Fehlerkorrekturcodes ist. Ferner kann der Fehlerdetektor 920 eine Fehlererfassungsbitsequenz 922 bestimmen, die anzeigt, ob das bestimmte kombinierte Binärwort 912 ein Codewort des Fehlerkorrekturcodes ist oder nicht.
  • Durch Kombinieren von zwei oder mehr codierten Binärwörtern in ein kombiniertes Binärwort, sodass das bestimmte kombinierte Binärwort ein Codewort des Fehlerkorrekturcodes ist, falls alle zu kombinierenden codierten Binärwörter Codewörter des Fehlerkorrekturcodes sind, kann der Fehlerdetektor 920 einen Fehler in einem oder mehreren der codierten Binärwörter gleichzeitig erfassen. Daher kann es sein, dass nur ein Fehlerdetektor notwendig ist zum Erfassen von Fehlern in einer Mehrzahl von codierten Binärwörtern, was zu einem wesentlich reduzierten Hardwareaufwand für die Fehlererfassung führt.
  • Die Mehrzahl von codierten Binärwörtern weist zumindest das erste codierte Binärwort und das zweite codierte Binärwort auf, die von zwei unabhängigen Quellen (z. B. Fehlerkorrektor, Codierer oder Sender) bereitgestellt werden können. Die Mehrzahl von codierten Binärwörtern kann jedoch auch mehr als zwei codierte Binärwörter aufweisen, die durch mehr als zwei unterschiedliche unabhängige Quellen bereitgestellt werden. Bei diesem Beispiel kann der Kombinierer das kombinierte Binärwort 912 bestimmen durch Kombinieren aller codierter Binärwörter der Mehrzahl von codierten Binärwörtern, sodass das bestimmte kombinierte Binärwort 912 ein Codewort des Fehlerkorrekturcodes ist, falls alle codierten Binärwörter der Mehrzahl von codierten Binärwörtern Codewörter des Fehlerkorrekturcodes sind, und sodass das bestimmte kombinierte Binärwort 912 kein Codewort des Fehlerkorrekturcodes ist, falls ein codiertes Binärwort der Mehrzahl von codierten Binärwörtern kein Codewort des Fehlerkorrekturcodes ist.
  • Die Mehrzahl von codierten Binärwörtern kann beispielsweise bereitgestellt werden durch ein oder mehrere Fehlerkorrektoren, Codierer oder kann von einem oder mehreren Sendern empfangen werden.
  • Beispielsweise kann das erste codierte Binärwort durch einen ersten Fehlerkorrektor bereitgestellt werden und das zweite codierte Binärwort kann durch einen zweiten Fehlerkorrektor bereitgestellt werden, oder ein erstes codiertes Binärwort kann durch einen Fehlerkorrektor bereitgestellt werden und ein zweites codiertes Binärwort kann durch einen Codierer bereitgestellt werden.
  • Der Kombinierer kann beispielsweise ein XOR-Gatter aufweisen zum Bestimmen des kombinierten Binärworts, falls der Fehlerkorrekturcode ein linearer Fehlerkorrekturcode ist. Anders ausgedrückt, der Kombinierer 910 kann das erste codierte Binärwort 902 und das zweite codierte Binärwort 904 kombinieren durch eine bitweise logische XOR-Funktion, um das kombinierte Binärwort 912 zu erhalten.
  • Alternativ kann der Fehlerkorrekturcode ein nichtlinearer Fehlerkorrekturcode sein, und der Kombinierer 910 kann ein Kombination des ersten codierten Binärworts 902 und des zweiten codierten Binärworts 904 basierend auf dem nichtlinearen Fehlerkorrekturcode realisieren, sodass das kombinierte Binärwort 912 ein Codewort des nichtlinearen Fehlerkorrekturcodes ist, falls das erste codierte Binärwort 902 und das zweite codierte Binärwort 904 Codewörter des nichtlinearen Fehlerkorrekturcodes sind.
  • Der Fehlerdetektor 920 kann auf verschiedene Weisen implementiert werden, der Fehlerdetektor 920 kann beispielsweise implementiert werden gemäß einem oder mehreren Aspekten oder möglichen Variationen eines Fehlerdetektors 120, 25, 34, 44, 64, der oben beschrieben ist. In dieser Verbindung entspricht das kombinierte Binärwort 912 dem Fehlerdetektoreingangsbinärwort.
  • Zusätzlich kann die Vorrichtung 900 einen Fehlerkorrektor aufweisen. Dieser Fehlerkorrektor kann einen korrigierbaren Bitfehler in einem fehlerhaften Teilsatz von Bits eines fehlerhaften codierten Binärworts korrigieren, das durch den Fehlerkorrekturcode codiert ist, so dass ein korrigierter Teilsatz von Bits gleich einem entsprechenden Teilsatz von Bits eines Codeworts des Fehlerkorrekturcodes ist, falls der Fehlerkorrektor fehlerlos arbeitet. Bei diesem Beispiel enthält das erste codierte Binärwort 902 den korrigierten Teilsatz von Bits und maximal einen ordnungsgemäßen Teilsatz von Bits des fehlerhaften codierten Binärworts.
  • Der Fehlerkorrektor kann auf verschiedene Weisen implementiert werden. Der Fehlerkorrektor kann beispielsweise gemäß einem oder mehreren Aspekten eines oben beschriebenen Fehlerkorrektors 110, 23, 61, 62 implementiert werden. In diesem Zusammenhang entspricht das erste codierte Binärwort 902 dem oben erwähnten korrigierten codierten Binärwort.
  • Ähnlich wie oben erwähnt kann der fehlerhafte Teilsatz ein ordnungsgemäßer Teilsatz der Bits des fehlerhaften codierten Binärworts sein, und der ordnungsgemäße Teilsatz der Bits des fehlerhaften codierten Binärworts, der durch das erste codierte Binärwort umschlossen ist, kann ein komplementärer Teilsatz von Bits sein im Vergleich zu dem fehlerhaften Teilsatz von Bits.
  • Alternativ ist der fehlerhafte Teilsatz von Bits gleich dem fehlerhaften codierten Binärwort und das erste codierte Binärwort enthält nur den korrigierten Teilsatz von Bits, der ein korrigiertes fehlerhaftes codiertes Binärwort darstellt.
  • Ferner kann die Vorrichtung 900 einen zweiten Fehlerkorrektor aufweisen. Dieser zweite Fehlerkorrektor kann einen korrigierbaren Bitfehler in einem zweiten fehlerhaften Teilsatz von Bits eines zweiten fehlerhaften codierten Binärworts korrigieren, das durch den Fehlerkorrekturcode codiert ist, sodass der korrigierte zweite Teilsatz von Bits gleich einem entsprechenden Teilsatz von Bits eines Codeworts eines Fehlerkorrekturcodes ist, falls der zweite Fehlerkorrektor fehlerlos arbeitet. Bei diesem Beispiel enthält das zweite codierte Binärwort 904 den korrigierten zweiten Teilsatz von Bits auf maximal einem ordnungsgemäßen Teilsatz von Bits des zweiten fehlerhaften Codiererprimärworts.
  • Gleichartig dazu können der erste Fehlerkorrektor und der zweite Fehlerkorrektor gemäß einem oder mehreren Aspekten eines oben erwähnten Fehlerdetektors implementiert werden.
  • Ein Beispiel für eine Vorrichtung zum Erfassen eines Fehlers in einer Mehrzahl von codierten Binärwörtern, die durch einen Fehlerkorrekturcode codiert sind, die zwei Fehlerkorrektoren und einen Kombinierer aufweist, realisiert durch ein XOR-Gatter, wurde bereits in 6 gezeigt und beschrieben.
  • Als Alternative zu dem zweiten Fehlerkorrektor kann die Vorrichtung 900 einen Codierer aufweisen, der ein Binärwort gemäß dem Fehlerkorrekturcode codiert, um das zweite codierte Binärwort zu erhalten.
  • Außerdem kann die Vorrichtung 900 einen oder mehrere weitere Fehlerkorrektoren und/oder Codierer aufweisen, die ein codiertes Binärwort der Mehrzahl von codierten Binärwörtern bereitstellen.
  • Ähnlich wie bereits in Verbindung mit anderen Aspekten erwähnt, kann die Fehlererfassungsbitsequenz 922 weniger Bits aufweisen als eine Anzahl von Prüfbits des Fehlerkorrekturcodes, sodass die Fehlererfassungswahrscheinlichkeit und der Hardwareaufwand für den Fehlerdetektor an die Anforderungen der Anwendung angepasst werden können.
  • Zusätzlich oder alternativ kann der Fehlerdetektor 920 die Fehlererfassungsbitsequenz 922 bestimmen, sodass die Fehlererfassungsbitsequenz 922 gleich einer ersten vordefinierten Erfassungsbitsequenz ist für einen ersten Teilsatz von Codewörtern des Fehlerkorrekturcodes und gleich einer zweiten vordefinierten Erfassungsbitsequenz für einen zweiten Teilsatz von Codewörtern des Fehlerkorrekturcodes. Die erste vordefinierte Erfassungsbitsequenz unterscheidet sich von der zweiten vordefinierten Erfassungsbitsequenz und der erste Teilsatz unterscheidet sich von dem zweiten Teilsatz.
  • Ferner kann die Fehlererfassungsbitsequenz 922 ungleich der ersten vordefinierten Erfassungsbitsequenz und der zweiten vordefinierten Erfassungsbitsequenz sein, falls das korrigierte codierte Binärwort kein Codewort des Fehlerkorrekturcodes ist.
  • Beispielsweise sind die Bits der ersten vordefinierten Erfassungsbitsequenz alle 0, und die Bits der zweiten vordefinierten Erfassungsbitsequenz sind alle 1.
  • Auf diese Weise können beispielsweise auch Haftfehler zumindest an den Ausgängen des Fehlerdetektors 920 erfasst werden, wie es bereits oben beschrieben ist.
  • Wie es bereits erwähnt wurde, kann der Fehlerdetektor 920 beispielsweise die Fehlererfassungsbitsequenz 922 bestimmen basierend auf einer Multiplikation einer Fehlererfassungsmatrix und des bestimmten kombinierten Binärworts 912. Diese Fehlererfassungsmatrix basiert auf einer Prüfmatrix des Fehlerkorrekturcodes.
  • Die Fehlererfassungsmatrix kann beispielsweise weniger Zeilen als die Prüfmatrix oder weniger Spalten als die Prüfmatrix aufweisen.
  • Alternativ oder zusätzlich kann die Fehlererfassungsmatrix zumindest eine Spalte oder zumindest eine Zeile aufweisen, die ableitbar ist durch Invertieren einer entsprechenden Spalte oder einer entsprechenden Zeile der Prüfmatrix.
  • Wie es bereits oben erwähnt wurde, kann ein codiertes Binärwort, das ein fehlerhaftes codiertes Binärwort sein kann, beispielsweise durch einen adressierbaren Speicher, einen Codierer oder einen Sender bereitgestellt werden. Dies ist ähnlich wie es bereits in Verbindung mit 3 beschrieben wurde.
  • Einige Ausführungsbeispiele gemäß einem Aspekt beziehen sich auf eine Vorrichtung zum Erfassen eines Fehlers in einer Mehrzahl von codierten Binärwörtern, die durch einen Fehlerkorrekturcode codiert sind. Die Vorrichtung weist eine Einrichtung auf zum Bestimmen eines kombinierten Binärworts und eine Einrichtung zum Bestimmen einer Fehlererfassungsbitsequenz. Die Einrichtung zum Bestimmen eines kombinierten Binärworts bestimmt ein kombiniertes Binärwort durch Kombinieren eines ersten codierten Binärworts und eines zweiten codierten Binärworts der Mehrzahl von codierten Binärwörtern, sodass das bestimmte kombinierte Binärwort ein Codewort des Fehlerkorrekturcodes ist, falls das erste codierte Binärwort und das zweite codierte Binärwort Codewörter des Fehlerkorrekturcodes sind, und sodass das bestimmte kombinierte Binärwort kein Codewort des Fehlerkorrekturcodes ist, falls das erste codierte Binärwort oder das zweite codierte Binärwort kein Codewort des Fehlerkorrekturcodes ist. Ferner bestimmt die Einrichtung zum Bestimmen einer Fehlererfassungsbitsequenz eine Fehlererfassungsbitsequenz, die anzeigt, ob das bestimmte kombinierte Binärwort ein Codewort des Fehlerkorrekturcodes ist oder nicht.
  • 10 zeigt ein Flussdiagramm eines Verfahrens 1000 zum Erfassen eines Fehlers in einer Mehrzahl von codierten Binärwörtern, die durch einen Fehlerkorrekturcode codiert sind, gemäß einem Ausführungsbeispiel eines Aspekts. Das Verfahren 1000 weist das Bestimmen 1010 eines kombinierten Binärworts durch Kombinieren eines ersten codierten Binärworts und eines zweiten codierten Binärworts der Mehrzahl von codierten Binärwörtern auf, sodass das bestimmte kombinierte Binärwort ein Codewort des Fehlerkorrekturcodes ist, falls das erste codierte Binärwort und das zweite codierte Binärwort Codewörter des Fehlerkorrekturcodes sind, und sodass das bestimmte kombinierte Binärwort kein Codewort des Fehlerkorrekturcodes ist, falls das erste codierte Binärwort oder das zweite codierte Binärwort kein Codewort des Fehlerkorrekturcodes ist. Ferner weist das Verfahren 1000 das Bestimmen 1020 einer Fehlererfassungsbitsequenz auf, die anzeigt, ob das bestimmte kombinierte Binärwort ein Codewort des Fehlerkorrekturcodes ist oder nicht.
  • Außerdem kann das Verfahren 1000 weitere Schritte aufweisen, die einen oder mehrere der optionalen Aspekte des oben beschriebenen vorgeschlagenen Konzepts darstellen.
  • Nachfolgend werden Aspekte basierend auf 27 näher beschrieben. Obwohl diese Beispiele unterschiedliche Aspekte zeigen, die zusammen implementiert sind, können diese Aspekte auch unabhängig voneinander implementiert werden.
  • Zuerst wird ein Ausführungsbeispiel erläutert mit Bezugnahme auf 2. 2 zeigt eine Schaltungsanordnung für Fehlererfassung von Fehlern in einer Fehlerkorrekturschaltung FKS 23 (Fehlerkorrektor), die Fehler in den Eingangsdaten korrigiert, beispielsweise unter Verwendung eines Linearcodes C.
  • Die Länge des Codes C ist bezeichnet durch n, und die Anzahl von Informationsbits w = w1, ..., wq ist gekennzeichnet durch q, wobei q < n. Beispiele für Fehlerkorrekturcodes sind Hamming-Codes, beispielsweise beschrieben in „Lin, S., Costello, D., „Error Control coding”, Prentice Hall, 1983, S. 79–82”, Hsiao-Codes, beispielsweise beschrieben in Fujijwara, E., „Code Design for Dependable Systems”, Wiley, 2006, S. 98–101”, Hsiao-Codes, wie sie beispielsweise beschrieben sind in „Fujijwara, E., „Code Design for Dependable Systems”, Wiley, 2006, S. 98–101”, BCH-Codes, beispielsweise beschrieben in „Micheloni, R., Marelli, A. und Ravasio, R., „Error Correction Codes for Non. Volatile Memories”, Springer 2008, S. 48–54”, und Reed-Muller-Codes, die eine Majoritätsdecodierung erlauben, wie es beispielsweise beschrieben ist in „Micheloni, R., Marelli, A. und Ravasio, R. „Error Correction Codes for Non-Volatile Memories”, Springer 2008, S. 38–42”.
  • Bei Anwendungen werden Codes durch einen Fachmann auf diesem Gebiet regelmäßig in einer verkürzten Form verwendet, um dieselben an die tatsächlich erforderliche Wortbreite anzupassen. Dies kann durchgeführt werden durch Löschen von Spalten der H-Matrix des unverkürzten Codes.
  • Für einen Linearcode C wird das zugeordnete Codewort v bestimmt von den Informationsbits w durch v = w·G, wobei G eine Generatormatrix des Codes C ist und G eine (q, n)-Matrix ist.
  • Basierend auf der Beziehung sT = H·v'T kann geprüft werden, ob das Wort v' = (v' 1, ..., v' n) ein Codewort des Codes C ist. Hier bezeichnet v'T den transponierten Spaltenvektor des Zeilenvektors v'. H ist eine (m, n)-Matrix, die H-Matrix (Prüfmatrix oder Paritätsprüfmatrix) des Codes und s = (s1, ..., sm)T mit m = n – q ist das Syndrom des Worts v'. Hier bezeichnet (s1, ..., sm)T den transponierten Spaltenvektor des Zeilenvektors (s1, ..., sm). Falls v' = v ein Codewort des Codes C ist, ist das Fehlersyndrom s = 0.
  • Die in 2 gezeigte Vorrichtung ist aufgebaut aus einer Fehlerkorrekturschaltung FKS 23 (Fehlerkorrektor) und einer Fehlererfassungsschaltung FE 25 (Fehlerdetektor). In die Fehlerkorrekturschaltung 23 wird an ihrem n Bit breiten Eingang 21 ein n Bit breites Wort v' = v' 1, ..., v' n = v'1, v'2 (v'1 korrigierter Teilsatz von Bits, v'2 ordnungsgemäßer Teilsatz von Bits des fehlerhaften codierten Binärworts) eingegeben, wobei v'1 = v' 1, ..., v' p und v'2 = v' p+1, ..., v' n mit p ≤ n gilt. Falls p = n, dann besteht v'1 aus allen n Komponenten von v' und v'2 weist keine Komponente auf.
  • Die Komponenten von v'1 sind die p Komponenten von v', die durch die Schaltung FKS 23 korrigiert werden, und die Komponenten von v'2 sind die n-p-Komponenten von v', die nicht durch die Schaltung FKS 23 korrigiert werden und die auf der n – p Bit breiten Leitung 22 zu ihrem Ausgang geleitet werden. Ohne eine Begrenzung bezüglich der Allgemeingültigkeit sind die Komponenten, die korrigiert werden, bündig links angeordnet, sodass die Beschreibung einfacher wird. Die Bits, die korrigiert werden, können die Datenbits u1, ..., uk und die Prüfbits c1, ..., cm eines Linearcodes sein, dessen Informationsbits w = w1, ..., wq aus den Datenbits u = u1, ..., uk und den Adressbits a = a1, ..., ar besteht, wobei die Datenbits u und die Prüfbits c unter der Adresse a in einem Speicher gespeichert sind, wie es nachfolgend näher erläutert wird. Es ist auch möglich, dass p = n und alle Bits durch die Schaltung FKS 23 korrigiert werden.
  • An ihrem p Bit breiten Ausgang 24 gibt die Schaltung FKS die Werte v1 corr = vcorr,1, ...vcorr,p aus, die zusammen mit den nichtkorrigierten Bits v'2 = v' p+1, ..., v' n auf der Leitung 22 bereitgestellt werden, die das n-stellige Binärwort vcorr = v1 corr, v'2 = vcorr,1, ..., vcorr,n bilden.
  • Die Fehlerkorrekturschaltung FKS 23 korrigiert Wörter, verursacht durch Fehler in den ersten p Bits der Codewörter des Codes C und die durch den Code C korrigierbar sind.
  • Zuerst wird der Fall betrachtet, dass die Schaltung FKS 23 fehlerlos ist (fehlerlos arbeitet). Falls v' = v gilt, wobei v ein Codewort des Codes C ist, dann gilt das Folgende: vcorr = v. Falls C beispielsweise ein 1-Bit-korrigierender Hamming-Code ist, dann werden alle Codewörter des Hamming-Codes und alle Wörter, die sich durch den 1-Bit-Fehler in den ersten p Bits der Codewörter ergeben, durch die Schaltung FKS 23 in Codewörtern korrigiert. Wörter, die sich durch 1-Bit-Fehler in den Bits v'2 der Codewörter ergeben, werden nicht in Codewörter korrigiert. Falls Codewörter des Codes C und Nicht-Codewörter des Codes C, die von Codewörtern des Codes C stammen, durch 1-Bit-Fehler ausschließlich in den ersten p Bits, an den Eingang der Schaltung FKS 23 geliefert werden, dann wird ein Codewort des Codes C durch die Schaltung FKS 23 ausgegeben.
  • Falls C ein 2-Bit-fehlerkorrigierender BCH-Code ist, werden alle Codewörter dieses Codes und alle Wörter, die sich von 1-Bit- und 2-Bit-Fehlern von Codewörtern ausschließlich in den ersten p Bits ergeben, in Codewörter korrigiert durch die Schaltung FKS 23. Alle Wörter, die sich von Fehlern in den Bits v'2 der Codewörter ergeben, werden nicht durch die Schaltung FKS 23 korrigiert.
  • Falls C ein Reed-Muller-Code ist, beispielsweise mit einem Codeabstand 8, dessen Korrekturschaltung beispielsweise als eine Majoritätsdecodierung implementiert sein kann und alle 3-Bit-Fehler korrigieren kann, dann werden alle Codewörter und alle Wörter, die sich von Codewörtern ergeben, durch 1-Bit-, 2-Bit- und 3-Bit-Fehler ausschließlich in den ersten p Bits durch die Schaltung FKS 23 korrigiert, aber nicht Wörter, die sich von Fehlern in den Bits v'2 ergaben.
  • Die Fehlerkorrekturschaltung FKS 23 kann eine herkömmliche Fehlerkorrekturschaltung des Fehlerkorrekturcodes C sein. Falls für p < n n – p Bits nicht korrigiert sind, dann werden die nicht korrigierten Ausgänge einer Fehlerkorrekturschaltung auf einen Code C beispielsweise einfach ignoriert und nicht als Hardware implementiert.
  • Es ist von Interesse, dass die Fehlerkorrekturschaltung FKS 23 nicht nur Codewörter des Codes C transformiert, sondern auch Wörter, die von Codewörtern des Codes C erzeugt werden können durch höchstens t Fehler in den ersten p Bits, und die angelegt werden an den Eingang der Schaltung FKS 23, in Codewörter vcorr des Codes C, falls es der Code C erlaubt, t Bitfehler zu korrigieren.
  • Falls die Schaltung FKS 23 fehlerhaft ist oder Fehler enthält, kann dies daran gesehen werden, dass vcorr kein Codewort des Codes C ist. Falls ein Codewort des Codes oder ein Nicht-Codewort des Codes C, das durch eine fehlerlose Schaltung FKS 23 zu einem Codewort des Codes C korrigiert werden könnte, in eine fehlerhafte Fehlerkorrekturschaltung FKS 23 eingegeben wird, kann dies erfasst werden, falls vcorr kein Codewort ist.
  • Dies wird vorteilhafterweise erfasst durch eine Fehlererfassungsschaltung FE 25, die, wie oben angezeigt, für Fehlererfassung von Fehlern in der Fehlerkorrekturschaltung FKS 23 dient.
  • Bei diesem Beispiel ist die Fehlererfassungsschaltung FE 25 eine kombinatorische Schaltung mit n Eingängen und 1 Ausgängen A1, ..., Al, wobei l ≤ m, die an ihren Ausgängen ein 1 Komponentenbinärfehlersignal f = f1, ..., fl ausgibt, sodass, wenn ein Codewort vcorr eingegeben wird, für das Fehlersignal f1 i1 = f2 i2 = ... = fl il = 0 oder f1 i1 = f2 i2 = ... = fl il = 1 gilt, und falls nicht alle Komponenten f1 i1 ... = fl il gleich sind, wird erfasst, dass kein Codewort in die Schaltung FE 25 eingegeben wurde. Dies wird entweder verursacht durch einen Fehler in der Fehlerkorrekturschaltung FKS 23 oder zeigt an, dass ein nicht korrigierbares Wort v' an dem Eingang der Fehlerkorrekturschaltung existiert und die Korrektur durch die Schaltung FKS nicht erfolgreich war. In diesem Zusammenhang f ij / j = f j, falls ij = 0 gilt, und f ij / j = fj, falls ij = 1 gilt, und wobei j die Werte 1, ..., l annimmt.
  • Falls beispielsweise alle Werte i1, ..., il gleich 1, dann f1 i1 = f1, ..., fl il = fl und bei der Eingabe eines Codeworts gilt entweder f1 = f2 = ... = fl = 1 oder f1 = f2 = ... = fl = 0 und ein Fehler wird erfasst, falls nicht alle Komponenten f1, ..., fl gleich sind. Falls beispielsweise j1 = 1, j2 = 0, j3 = 0, j4 = 1, ..., jl = 1, dann f i1 / 1 = f1, f i2 / 2 = f 2, f i3 / 3 = f 3, j i2 / 4 = f4, ..., f il / l = fl, und bei der Eingabe eines Codeworts gilt f1 = f 2 = f 3 = f4 = ... = fl, und ein Fehler wird angezeigt, falls nicht alle Komponenten f1, f 2, f 3, f4, ..., fl gleich sind.
  • Es ist hier vorteilhaft, dass durch die Auswahl der Anzahl l der Ausgänge der Schaltung FE 25 die Komplexität für Fehlererfassung, beispielsweise im Gegensatz zu Dopplung und Vergleich, variiert werden kann mit der Variation von 1 und an die erforderliche Fehlererfassungswahrscheinlichkeit angepasst werden kann und dass dann, wenn zwei unterschiedliche Belegungen vordefiniert sind für f = f1, ..., fl, z. B. 1, 1, ..., 1 und 0, 0, ..., 0, wenn unterschiedliche Codewörter an den Eingang der Fehlererfassungsschaltung FE 25 angelegt werden, die Ausgänge A1, ..., Al in dem fehlerlosen Fall zwei unterschiedliche Werte annehmen und somit zumindest bezüglich Haftfehlern an 0 und Haftfehlern an 1 getestet werden, zumindest die Ausgänge in dem fortlaufenden fehlerlosen Betrieb der Fehlerkorrekturschaltung FKS 23, was beispielsweise nicht der Fall ist mit den Ausgängen eines Komparators, wenn Dopplung und Vergleich realisiert werden.
  • Es ist ferner vorteilhaft, dass auch mehrere Fehlerkorrekturschaltungen, beispielsweise auf einem Chip, durch eine einzige Fehlererfassungsschaltung geprüft werden können durch XOR-Verknüpfung ihrer Ausgänge, Komponente um Komponente, wie es nachfolgend näher erläutert wird.
  • In 4 ist dargestellt, dass die 1 Ausgänge A1, ..., Al der Schaltung FE 34 in 1 Eingänge einer 1-stelligen kombinatorischen Funktion SFE1 geführt werden mit einem Steuerwert, die an ihrem Ausgang ein Fehlersignal e1 ausgibt. Als eine konkrete Funktion wurde in 3 ein NOR-Gatter 36 (das eine logische Nicht-ODER-Funktion realisiert) mit 1 Eingängen ausgewählt, sodass e1 = 1 gilt für f1 = f2 = ... = fl = 0 und e1 = 0 für f1 = f2 = ... = fl = 1. Falls einer der Werte i1, i2, ..., il gleich 0 ist, dann wird der entsprechende Ausgang der Fehlererfassungsschaltung FE 34 invertiert, bevor derselbe mit dem entsprechenden Eingang des NOR-Gatters 35 verbunden wird.
  • 5 zeigt, wie die Ausgänge A1, ..., Al der Schaltung FE 44 gleichzeitig verbunden werden mit den 1 Eingängen einer kombinatorischen Schaltung SFE1 45 zum Realisieren einer Booleschen Funktion, die an ihrem Ausgang das Fehlersignal e1 ausgibt, und mit den 1 Eingängen einer kombinatorischen Schaltung SFE0 47 zum Realisieren einer Booleschen Funktion 0, die an ihrem Ausgang ein Fehlersignal e2 ausgibt. Die kombinatorische Schaltung SFE1 45 und die kombinatorische Schaltung SFE0 47 können zusammen einen Fehleranzeigebestimmer realisieren, wie er oben erwähnt ist. Als konkrete Schaltungen wurden hier ein NOR-Gatter 46 für die kombinatorische Schaltung SFE1 gewählt, und ein AND-Gatter 48 für die kombinatorische Schaltung SFE0 47.
  • Es wird angenommen, dass i1 = i2 = ... = il. Falls f1 = ... = fl = 1 gilt, dann e1 = 0 und e2 = 1, und falls f1 = ... = fl = 0 gilt, dann e1 = 1 und e2 = 0, sodass dann, wenn unterschiedliche Codewörter vcorr an den Eingang der Schaltung FE 44 angelegt werden, unterschiedliche Werte für e1 und e2 ausgegeben werden. Falls nicht alle Komponenten von f gleich sind, dann e1 = e2, und ein Fehler der Schaltung FKS 23 in 5, der sich als Nicht-Codewort vcorr manifestiert, wird dann erfasst, dass e1 = e2 gilt.
  • In 3 ist für ein Ausführungsbeispiel dargestellt, wie die Teilwörter v'1 und v'2 an dem Schaltungseingang der Schaltung FKS 23 von 2 gebildet werden, wenn Datenbits u1, ..., uk und Prüfbits c1, ..., cm die Bits bilden, die durch die Schaltung FKS 23 korrigiert werden, und wenn die Adressbits a = a1, ..., ar, unter denen die Bits u und c in einem Speicher gespeichert sind, nicht korrigiert werden.
  • Die Datenbits u und die Adressbits a bilden die q Informationsbits w = w1, ..., wq des Fehlerkorrekturcodes, der hier als trennbar angenommen wurde, sodass von den Informationsbits u und a die Prüfbits c bestimmt werden und die Informationsbits beim Codieren nicht geändert werden. Die Bits u und c werden während des Schreibens unter der Adresse a in einem Speicher 51 gespeichert, und beim Lesen erneut ausgelesen unter der Adresse a. Beim Schreiben wird angenommen, dass u, a, c ein Codewort des Codes C ist. Falls die Daten erneut an der Adresse ausgelesen werden, können dieselben sich fälschlicherweise geändert haben, sodass allgemein u', c' ausgelesen werden, die sich von u, c unterscheiden können. Außerdem kann die Adresse fehlerhaft gebildet sein, sodass statt der Adresse a die Adresse a' zu berücksichtigen ist. Die ausgelesenen Daten u', c' = v'1 werden durch die Fehlerkorrekturschaltung FKS 23 in 2 korrigiert, während die Adressbits a' = v'2 nicht korrigiert werden und fehlerhafte Adressbits zu einem Nicht-Codewort vcorr = v1 corr, a' an dem Eingang der Fehlererfassungsschaltung FE 25 führen.
  • Nachfolgend wird mit Bezugnahme auf Beispiele erläutert, wie eine kombinatorische Schaltung FE 25 für Fehlererfassung praktisch bestimmt werden kann.
  • Die Fehlererfassungsschaltung FE 25 (Fehlerdetektor) realisiert beispielsweise eine Funktion fT = L·vT, wobei L eine (l, n)-Matrix ist und fT den transponierten Spaltenvektor des Zeilenvektors f = (f1, ..., fl) bezeichnet. Die Matrix L (Fehlererfassungsmatrix) kann beispielsweise bestimmt werden durch M = K·H = (M1, ..., Mn), wobei H eine (m, n)-H-Matrix (Prüfmatrix) des Fehlerkorrekturcodes C ist und die Transformationsmatrix K eine binäre (l, m)-Matrix ungleich der Null-Matrix ist. Das Folgende gilt: m = n – q, 1 < l ≤ m und M1, ... Mn sind die l-komponentigen Spalten der Matrix M.
  • Die (l, n)-Matrix L = (L1, L2, ..., Ln) mit den Spalten L1, ... Ln ist hier bestimmt von einer Matrix M = K·H = M1, M2, ..., Ml, sodass für einen Teilsatz von {Li1, ..., Lih} von h, h ≤ n Spalten diese h Spalten der Matrix L die entsprechenden invertierten Spalten der Matrix M sind. Für diese h Spalten der Matrix L gilt: Li1 = M i1, Li2 = M i2, ..., Lih = M il, während für alle anderen l-h-Spalten für j = h + 1, ..., n gilt: Lij = Mij, und wobei die Spalte M ij gebildet wird von der Spalte Mij der Matrix M durch Invertieren aller l Komponenten der Spalte Mij.
  • Falls beispielsweise h = 0, dann ist keine Spalte der Matrix M invertiert und L = K·H.
  • Bei einem anderen Beispiel ist es möglich, dass die Matrix K gleich der m-dimensionalen Identitätsmatrix ist, sodass M = I·H = H gilt. Es ist auch möglich, dass die Matrix K nur ein einzelnes Element 1 enthält, während alle anderen Elemente 0 sind.
  • Um die Bestimmung der Matrix L näher zu erläutern, wird nun als ein Beispiel eines Fehlerkorrekturcodes ein verkürzter Hamming-Code betrachtet mit der (4.9)-H-Matrix und mit der Matrix K = I4 (Transformationsmatrix), wobei I4 die vierdimensionale Identitätsmatrix ist. Bei diesem Beispiel M = H mit
    Figure DE102011087634B4_0002
    und mit der (5.9)-G-Matrix G des Codes
    Figure DE102011087634B4_0003
  • Das Codewort v = v1, ..., v9 mit v = u·G = u, c mit den Prüfbits c = c1, ..., c4 ist den Informationsbits u = u1, ..., u5 zugeordnet, wobei c1 = u1 ⊕ u2 ⊕ u4 ⊕ u5 c2 = u1 ⊕ u3 ⊕ u4 c3 = u2 ⊕ u3 ⊕ u4 c4 = u5 gilt. Die zwei Wörter v = 110110001 und v' = 101100100 sind gültige Codewörter, da H·vT = 0 und H·v'T = 0 gilt.
  • h = 1 und Mi1 = M2 werden gewählt. Dann gilt für die zweite Spalte L2 der Matrix L, dass L2 = M 2 und somit
    Figure DE102011087634B4_0004
    und L·vT = fT = (f1, f2 f3, f4)T = (1, 1, 1, 1)T und L·v'T = fT = (f1, f2, f3, f4)T = (0, 0, 0, 0).
  • Die Schaltung FE 25 realisiert einfach die binären linearen Gleichungen fT = L·vT d. h. f1 = v1 ⊕ v4 ⊕ v5 ⊕ v6 f2 = v1 ⊕ v2 ⊕ v3 ⊕ v4 ⊕ v7 f3 = v3 ⊕ v4 ⊕ v8 f4 = v2 ⊕ v5 ⊕ v9 die beispielsweise mit einem Synthesewerkzeug implementiert werden können.
  • Eine besonders einfache Variante wird erhalten für den betrachteten verkürzten Hamming-Code durch Wählen von M = K·H mit
    Figure DE102011087634B4_0005
    wobei die Matrix K nur Nullen aufweist außer einem Element 1 und H die H-Matrix des bereits beschriebenen verkürzten Hamming-Codes ist. Ferner gilt M = K·H = (1 1 0 1 1 1 0 0 0) = M1, ..., M9. Falls hier h = 2 und i1 = 2, werden i2 = 4 gewählt und somit L2 = M 2 = 0, i2 = 4 und somit L4 = M 4 = 0, dann L = (1 0 0 0 1 0 0 0) und f = f1 = L·v = v1 ⊕ v5. Für das Codewort v' = (110110001), f = f1 = L·v' = 0 und für das Codewort v'' = (101100100), f = f1 = L v'' = 1.
  • Bei einem weiteren Ausführungsbeispiel kann dargestellt werden, wie mit einer beschriebenen Fehlererfassungsschaltung FE mehrere Fehlerkorrekturschaltungen bezüglich Fehlern gleichzeitig geprüft werden können, was besonders vorteilhaft ist, wenn mehrere Fehlerkorrekturschaltungen auf dem gleichen Chip implementiert sind.
  • 6 stellt zwei Fehlerkorrekturschaltungen FKS 61 (Fehlerkorrektor) und FKS* 62 (zweiter Fehlerkorrektor) dar, wobei die Fehlerkorrekturschaltung FKS 61 die Signale v'1, v'2 in vcorr korrigiert, die an die n Bit breiten Signalleitungen 65 an den ersten Eingängen der n XOR-Gatter 63 (Kombinierer) angelegt werden, und wobei die Fehlerkorrekturschaltung FKS* 62 die Signale υ ~'1, υ ~'2 in υ ~corr korrigiert, die an die n Bit breiten Signalleitungen 66 an der korrekten Position an einem jeweiligen zweiten Eingang der n XOR-Gatter 63 angelegt werden, und deren n binäre Ausgänge in die Eingänge der Fehlererfassungsschaltung FE (Fehlerdetektor) geleitet werden. Falls sowohl vcorr und auch das υ ~corr Codewörter des Linearcodes C sind, dann ist deren XOR-Verknüpfung Komponente um Komponente auch ein Codewort und ein Fehler in einem der Codewörter vcorr oder υ ~corr kann eine Auswirkung eines Fehlers in der bitweisen XOR-Summe haben, der durch die Fehlererfassungsschaltung FE erfasst werden kann.
  • Auf eine sehr ähnliche Weise können auch mehr als zwei Fehlerkorrekturschaltungen bezüglich Fehlern geprüft werden durch bitweise XOR-Verknüpfung der korrigierten Werte der mehr als zwei Fehlerkorrekturschaltungen und dann Prüfen durch die Fehlererfassungsschaltung FE, ob die Werte, die an dieselbe angelegt werden, ein Codewort bilden. Es kann dann erfasst werden, ob eine Fehlerkorrekturschaltung fehlerhaft ist.
  • Gleichartig dazu ist es auch möglich, wie es in 7 dargestellt ist, die Codewörter, die durch einen Codierer 71 erzeugt werden, mit der Fehlererfassungsschaltung FE zu prüfen, wie es in 7 dargestellt ist. Die Ausgänge 74 des Codierers 71 sind mit den Eingängen 76 der Fehlererfassungsschaltung FE 77 verbunden über den ersten n Bit breiten Eingang eines Multiplexers 75, mit dem zweiten n Bit breiten Eingang, dessen Leitungen 73 korrigierte Signale vcorr tragen, die durch die zumindest eine Fehlerkorrekturschaltung FKS 72 korrigiert werden, angelegt werden. Hier wird angenommen, dass die Ausgangssignale des Codierers 71 und der Fehlerkorrekturschaltung 72 zu unterschiedlichen Zeiten bereitgestellt werden, sodass der Multiplexer dieselben zu der Fehlererfassungsschaltung weiterleitet 77 zu Zeiten, zu denen die Ausgangssignale bereitgestellt werden.
  • Der Codierer 71 ist implementiert, sodass derselbe das zugeordnete Codewort v = w·G von den Informationsbits w1, ..., wq bildet, wobei G die G-Matrix des Codes C ist. Die Fehlerkorrekturschaltung FKS 72 korrigiert die Bits v'1 in v1 corr, die das Wort vcorr bilden, zusammen mit den nicht korrigierten Bits v'2.
  • Abgesehen davon kann es vorteilhaft sein, die Ausgänge eines Codes über XOR-Gatter mit den Ausgängen einer Fehlerkorrekturschaltung zu verbinden, sodass die Ausgänge der XOR-Gatter mit den Eingängen der Fehlererfassungsschaltung FE über XOR-Gatter verbunden sind.
  • Gleichartig dazu kann es vorteilhaft sein, mehrere n Bit breite Leitungen zu verbinden, die auf einem Chip existieren und jeweils gleichzeitig oder zu unterschiedlichen Zeiten Codewörter des Codes C tragen, sodass in dem fehlerlosen Fall die Verbindungsleitungen auch Codewörter des Codes C tragen und dass die n Bit breiten Leitungen kein Codewort des Codes tragen, falls eine der n Bit breiten Verbindungsleitungen kein Codewort trägt und die Verbindungsleitungen mit den Eingängen einer beschriebenen Fehlererfassungsschaltung verbunden sind.
  • Einige Ausführungsbeispiele beziehen sich auf eine Schaltungsanordnung für Fehlererfassung. Sie bezieht sich auf die Verbesserung von Fehlererfassung in elektrischen Schaltungen und ist beispielsweise anwendbar bei der Erfassung von Fehlern in Schaltungen für Fehlerkorrektur von Daten, die mit Fehlerkorrekturcodes codiert sind.
  • Das vorgeschlagene Konzept kann eine Schaltungsanordnung bereitstellen und/oder ein Verfahren, das eine Fehlererfassung von Fehlern in einer Fehlerkorrekturschaltung ermöglicht, die einfach und/oder kostengünstig ist.
  • Einige Ausführungsbeispiele beziehen sich auf eine Schaltungsanordnung S zum Erfassen von Fehlern in einer Schaltung zum Korrigieren von Fehlern in Codewörtern eines linearen Fehlerkorrekturcodes C, die eine Fehlerkorrekturschaltung FKS aufweist. Die Fehlerkorrekturschaltung FKS weist n binäre Eingänge für den Eingang eines n-Komponenten-Binarworts v' = v' 1 ..., v' n auf, das aus zwei Bitgruppen v'1 = v' 1 ..., v' p und v'2 = v' p+1, ..., v' n besteht, und p Ausgängen zum Ausgeben von p korrigierten Bits der ersten Bitgruppe v1 corr = vcorr,1, ..., vcorr,p wobei 1 ≤ p ≤ n gilt.
  • Der Linearcode besteht aus Codewörtern v = v1 ..., vn = v1, v2 der Länge n mit q, q < n Informationsbits, wobei die Codewörter aus einer ersten Gruppe von Bits v1 = v1, ..., vp und einer zweiten Gruppe von Bits v2 = vp+1, ..., vn bestehen, wobei Fehler in der ersten Gruppe von Bits korrigiert werden durch die Fehlerkorrekturschaltung FKS in v1 corr und Fehler in der zweiten Bitgruppe von Bits nicht korrigiert werden, und wobei die Bits v1 corr der ersten Bitgruppe, korrigiert durch die Fehlerkorrekturschaltung FKS, und die nicht korrigierten Bits υ'2 der zweiten Bitgruppe das n-stellige Binärwort vcorr = v1 corr, v'2 bilden.
  • Die Fehlerkorrekturschaltung FKS ist aufgebaut, sodass, wenn ein Codewort v ∊ C eingegeben wird, vcorr = v gilt, wenn die Fehlerkorrekturschaltung FKS nicht fehlerhaft ist.
  • Eine Fehlererfassungsschaltung FE mit n binären Eingängen und 1 binären Ausgängen A1, ..., Al zum Ausgeben eines l-Komponentenfehlersignals f1, ..., fl existiert, die das Fehlersignal f = f1, ..., fl für l bestimmte Binärwerte i1, i2, ..., il bildet, sodass für einen Eingang jedes Codeworts vcorr des Codes C für die Komponenten des Fehlersignals f i1 / 1 = f i2 / 2 = ... = f il / l gilt, und wenn ein Nicht-Codewort vcorr eingegeben wird, nicht alle Komponenten f1 i1, f2 i2, ..., fl il der Komponenten des Fehlersignals gleich sind und die Fehlererfassungsschaltung einen Fehler anzeigt, wenn nicht alle Werte der Komponenten f1 i1, f2 i2, ..., fl il des Fehlersignals f gleich sind und 1 ≤ n – q gilt, und wobei f ij / j = f j für j = 1, ..., l gilt, falls ij = 0 gilt, und f ij / j = fj, falls ij = 1 gilt.
  • Gemäß einem Aspekt gilt i1 = i2 = ... = il und f i1 / 1 = f1, f i2 / 2 = f2, ..., f il / l = fl.
  • Ferner kann es ein Codewort vcorr des Codes C geben, sodass f1 = f2 = ... = fl = 0, und es gibt ein weiteres Codewort vcorr des Codes C, sodass f1 = f2 = ... = fl = 1.
  • Gemäß einem weiteren Ausführungsbeispiel bildet die Fehlererfassungsschaltung FE 24 das Fehlersignal f gemäß der Beziehung fT = L·υ T / corr, wobei L eine (l, n)-Matrix mit binären Elementen ist, vT den transponierten Spaltenvektor des Zeilenvektors v bezeichnet und fT den transponierten Spaltenvektor des Zeilenvektors bezeichnet, f = f1, ..., fl und f1 = f2 = ... = fl gilt, wenn vcorr ein Codewort des Codes C ist, und für (zumindest) ein Nicht-Codewort vcorr gilt, dass nicht alle Komponenten f1 = f2 = ... = fl von f gleich sind, und die Fehlerkorrekturschaltung FE zeigt einen Fehler an, wenn nicht alle Komponenten gleich sind.
  • Ferner können die Schaltungsausgänge A1, ..., Al der Schaltung FE in l Eingänge einer ersten kombinatorischen Schaltung SFE1 geführt werden zum Realisieren einer Booleschen Funktion, die ein binäres Fehlersignal e1 an ihrem 1 Bit breiten Ausgang ausgibt.
  • Gemäß einem weiteren Aspekt sind die Schaltungsausgänge A1, ..., Al der Schaltung FE mit einer ersten kombinatorischen Schaltung SFE1 verbunden zum Realisieren einer 1-stelligen Booleschen Funktion und die 1 Eingänge einer zweiten kombinatorischen Schaltung SFE2 zum Realisieren einer weiteren Booleschen Funktion, wobei die Schaltung SFE1 ein binäres Fehlersignal e1 ausgibt und die Schaltung SFE2 ein binäres Fehlersignal e2 ausgibt.
  • Ferner kann die (l, n)-Matrix L bestimmt werden durch L = K·H, wobei H eine (m, n)-H-Matrix des fehlerkorrigierenden Linearcodes C ist und K eine binäre (l, m)-Matrix ungleich der Null-Matrix ist, und m = n – q und l ≤ m.
  • Alternativ, l = m und K ist beispielsweise eine (m, m)-Identitätsmatrix.
  • Gemäß einem weiteren Aspekt wird die (l, n)-Matrix L = (L1, L2, ..., Ll) bestimmt von einer Matrix (M = K·H = M1, M2, ..., Ml), dass für einen Teilsatz {Li1, ..., Lih} von h, h ≤ 1, Spalten der Matrix L, d. h. Li1 = M i1, Li2 = M i2, ..., Lih = M ih gilt, während für alle anderen l – h Spalten für j = h + 1, ..., l Lij = Mij gilt, und wobei die Spalte M ij gebildet wird von der Spalte der Matrix Mij wobei alle 1 Komponenten der Spalte Mij invertiert sind. Beispielsweise h = 1.
  • Ferner können die erste Bitgruppe v1 = u, c und die zweite Bitgruppe v2 = a der Codewörter des fehlerkorrigierten Codes C aus einer Bitgruppe u = u1, ..., uk von k Bits, einer Bitgruppe c = c1, ..., cm von m Bits und einer Bitgruppe a von r Bits a = a1, ..., ar bestehen, wobei k + r + m = n gilt, wobei u die Datenbits sind und a die Adressbits, und u und a die Informationsbits des Fehlerkorrekturcodes C bilden und c die Prüfbits des Fehlerkorrekturcodes C, wobei die Prüfbits c bestimmt werden von (u, a) und die Datenbits u und die Prüfbits c unter der Adresse a in einem Speicher gespeichert sind.
  • Beispielsweise sind die Datenbits u und die Prüfbits c die Bits, die korrigiert werden.
  • Alternativ können alle n Bits korrigiert werden und v1 = v 1 / 1 , ..., v 1 / n umfasst alle n Bits und v2 umfasst keine Bits.
  • Ferner kann, abgesehen von der Fehlerkorrekturschaltung FKS, zumindest eine weitere Fehlerkorrekturschaltung FKS* existieren, wobei jeder der n Schaltungsausgänge der Fehlerkorrekturschaltung FKS in den ersten Eingang eines XOR-Gatters geleitet wird, das zumindest einen weiteren Eingang aufweist. An diesem zumindest einen weiteren Eingang an der richtigen Position ist eine entsprechende Ausgangsleitung der weiteren Fehlerkorrekturschaltung FKS* verbunden, und der Ausgang des XOR-Gatters ist an der richtigen Position mit dem entsprechenden Eingang der Fehlererfassungsschaltung FE verbunden.
  • Alternativ oder zusätzlich kann, abgesehen von der zumindest einen Fehlerkorrekturschaltung FKS, auch zumindest eine Schaltung für Datencodierung DK (Codierer) von Informationsbits in Codewörter v = v1, ..., vn des Codes C existieren, und die Ausgangsleitungen, die die Bits v1, ..., vn der Schaltung für Datencodierung DK tragen, sind an der richtigen Position mit den Eingängen der Fehlererfassungsschaltung FE verbunden.
  • Allgemein können ein Fehlerkorrektor, ein Fehlerdetektor, ein Kombinierer, ein Codierer, ein Fehleranzeigebestimmer, eine Einrichtung zum Korrigieren eines Bitfehlers und/oder eine Einrichtung zum Bestimmen einer Fehlererfassungsbitsequenz, wie oben beschrieben, eine unabhängige Hardwareeinheit oder Teil eines Computers, ein Mikrocontroller oder ein Digitalsignalprozessor sowie ein Computerprogramm oder Softwareprodukt zum Laufen auf einem Computer, einem Mikrocontroller oder einem Digitalsignalprozessor sein.
  • Ferner können ein Fehlerkorrektor, ein Fehlerdetektor, ein Kombinierer, ein Codierer, ein Fehleranzeigebestimmer, eine Einrichtung zum Korrigieren eines Bitfehlers und/oder eine Einrichtung zum Bestimmen einer Fehlererfassungsbitsequenz, wie oben beschrieben, unabhängig voneinander oder zumindest teilweise zusammen implementiert werden. Dafür kann beispielsweise die Funktionalität von zwei oder mehr dieser Einheiten zumindest teilweise vereint werden zu einer kombinierten Hardwareeinheit oder einer Softwareeinheit durch ein Synthesewerkzeug.
  • Obwohl einige Aspekte des beschriebenen Konzepts im Zusammenhang einer Vorrichtung beschrieben wurden, ist klar, dass diese Aspekte auch eine Beschreibung des entsprechenden Verfahrens darstellen, wo ein Block oder eine Vorrichtung einem Verfahrensschritt oder einem Merkmal eines Verfahrensschritts entspricht. Analog stellen Aspekte, die im Zusammenhang eines Verfahrensschritts beschrieben wurden, auch eine Beschreibung eines entsprechenden Blocks oder Elements oder Merkmals einer entsprechenden Vorrichtung dar.
  • Abhängig von bestimmten Implementierungsanforderungen können Ausführungsbeispiele in Hardware oder in Software implementiert werden. Die Implementierung kann durchgeführt werden unter Verwendung eines digitalen Speichermediums, beispielsweise einer Diskette, einer DVD, einer Blue-Ray, einer CD, eines ROM, eines PROM, eines EPROM, eines EEPROM oder eines Flash-Speichers, auf dem elektronisch lesbare Steuersignale gespeichert sind, die zusammenwirken (oder in der Lage sind, zusammenzuwirken) mit einem programmierbaren Computersystem, sodass das jeweilige Verfahren durchgeführt wird. Daher kann das digitale Speichermedium computerlesbar sein.
  • Einige Ausführungsbeispiele weisen einen Datenträger auf mit elektronisch lesbaren Steuersignalen, der in der Lage ist, mit einem programmierbaren Computersystem zusammenzuwirken, sodass eines der hierin beschriebenen Verfahren durchgeführt wird.
  • Allgemein können Ausführungsbeispiele implementiert werden als ein Computerprogrammprodukt mit einem Programmcode, wobei der Programmcode wirksam ist zum Durchführen eines der Verfahren, wenn das Computerprogrammprodukt auf einem Computer läuft. Der Programmcode kann beispielsweise auf einem maschinenlesbaren Träger gespeichert werden.
  • Andere Ausführungsbeispiele weisen das Computerprogramm auf zum Durchführen eines der hierin beschriebenen Verfahren, gespeichert auf einem maschinenlesbaren Träger.
  • Anders ausgedrückt, ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens ist daher ein Computerprogramm mit einem Programmcode zum Durchführen eines der hierin beschriebenen Verfahren, wenn das Computerprogramm auf einem Computer läuft.
  • Ein weiteres Ausführungsbeispiel des erfindungsgemäßen Verfahrens ist daher ein Datenträger (oder ein digitales Speichermedium oder ein computerlesbares Medium), das darauf aufgezeichnet das Computerprogramm aufweist zum Durchführen eines der hierin beschriebenen Verfahren.
  • Ein weiteres Ausführungsbeispiel des erfindungsgemäßen Verfahrens ist daher ein Datenstrom oder eine Sequenz von Signalen, der/die das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren darstellt. Der Datenstrom oder die Sequenz von Signalen kann beispielsweise konfiguriert sein, um über eine Datenkommunikationsverbindung übertragen zu werden, beispielsweise über das Internet.
  • Ein weiteres Ausführungsbeispiel weist eine Verarbeitungseinrichtung auf, beispielsweise einen Computer, oder eine programmierbare Logikvorrichtung, die konfiguriert oder angepasst ist zum Durchführen eines der hierin beschriebenen Verfahren.
  • Ein weiteres Ausführungsbeispiel weist einen Computer auf, auf dem das Computerprogramm installiert ist, zum Durchführen eines der hierin beschriebenen Verfahren.
  • Bei einigen Ausführungsbeispielen kann ein programmierbares Logikbauelement (beispielsweise ein feldprogrammierbares Gatterarray) verwendet werden, um einige oder alle der Funktionalitäten der hierin beschriebenen Verfahren durchzuführen. Bei einigen Ausführungsbeispielen kann ein feldprogrammierbares Gatterarray mit einem Mikroprozessor kooperieren, um eines der hierin beschriebenen Verfahren durchzuführen. Allgemein werden die Verfahren vorzugsweise durch jede Hardwarevorrichtung durchgeführt.
  • Die oben beschriebenen Ausführungsbeispiele sind lediglich darstellend für die beschriebenen Prinzipien. Es ist klar, dass Modifikationen und Variationen der Anordnungen und Einzelheiten, die hierin beschrieben sind, für andere Fachleute auf diesem Gebiet offensichtlich sind. Dieselben sollen daher nur durch den Schutzbereich der anhängigen Patentansprüche begrenzt sein und nicht durch die spezifischen Einzelheiten, die durch Beschreibung und Erläuterung der Ausführungsbeispiele hierin präsentiert wurde.
  • Obwohl einige abhängige Ansprüche sich nur auf einen anderen Anspruch beziehen, ist auch eine Kombination mit einem oder mehreren weiteren abhängigen oder anderen unabhängigen Ansprüchen möglich. Ferner können auch unterschiedliche unabhängige Ansprüche kombiniert werden.

Claims (22)

  1. Vorrichtung zum Erfassen eines Fehlers in einem durch einen Fehlerkorrekturcode codierten Binärwort, wobei die Vorrichtung folgende Merkmale aufweist: einen Fehlerkorrektor, der konfiguriert ist, um einen korrigierbaren Bitfehler in einem fehlerhaften Teilsatz von Bits des codierten Binärworts zu korrigieren, wobei der Teilsatz von Bits einen Teil der Bits oder alle Bits des durch den Fehlerkorrekturcode codierten Binärworts umfasst, und um einen korrigierten Teilsatz von Bits an einem Ausgang des Fehlerkorrektors auszugeben, falls der Fehlerkorrektor fehlerlos arbeitet; und einen Fehlerdetektor, der konfiguriert ist, um ein Fehlerdetektoreingangsbinärwort zu empfangen, wobei das Fehlerdetektoreingangsbinärwort auf einem korrigierten codierten Binärwort basiert, das den korrigierten Teilsatz von Bits und, falls der Teilsatz nicht alle Bits in dem durch den Fehlerkorrekturcode codierten Binärworts umfasst, den verbleibenden Rest des durch den Fehlerkorrekturcode codierten Binärworts enthält, und um basierend auf dem Fehlerkorrekturcode eine Fehlererfassungsbitsequenz zu bestimmen, die anzeigt, ob das Fehlerdetektoreingangsbinärwort ein Codewort des Fehlerkorrekturcodes ist oder nicht.
  2. Vorrichtung gemäß Anspruch 1, bei der die Fehlererfassungsbitsequenz weniger Bits aufweist als eine Anzahl von Prüfbits des Fehlerkorrekturcodes.
  3. Vorrichtung gemäß Anspruch 1 oder 2, bei der der Fehlerdetektor konfiguriert ist, um die Fehlererfassungsbitsequenz zu bestimmen, sodass die Fehlererfassungsbitsequenz gleich einer ersten vordefinierten Erfassungsbitsequenz für einen ersten Teilsatz von Codewörtern des Fehlerkorrekturcodes und gleich einer zweiten vordefinierten Erfassungsbitsequenz für einen zweiten Teilsatz von Codewörtern des Fehlerkorrekturcodes ist, wobei die erste vordefinierte Erfassungsbitsequenz sich von der zweiten vordefinierten Erfassungsbitsequenz unterscheidet, und der erste Teilsatz sich von dem zweiten Teilsatz unterscheidet.
  4. Vorrichtung gemäß Anspruch 3, bei der die Fehlererfassungsbitsequenz ungleich der ersten vordefinierten Erfassungsbitsequenz und der zweiten vordefinierten Erfassungsbitsequenz ist, falls das korrigierte codierte Binärwort kein Codewort des Fehlerkorrekturcodes ist.
  5. Vorrichtung gemäß Anspruch 3 oder 4, bei der die Bits der ersten vordefinierten Erfassungsbitsequenz alle 0 sind und die Bits der zweiten vordefinierten Erfassungsbitsequenz alle 1 sind.
  6. Vorrichtung gemäß einem der Ansprüche 1 bis 5, bei der der fehlerhafte Teilsatz ein ordnungsgemäßer Teilsatz der Bits des fehlerhaften codierten Binärworts ist, wobei der ordnungsgemäße Teilsatz von Bits des fehlerhaften codierten Binärworts, der in dem korrigierten codierten Binärwort enthalten ist, ein komplementärer Teilsatz von Bits ist im Vergleich zu denn fehlerhaften Teilsatz von Bits.
  7. Vorrichtung gemäß einem der Ansprüche 1 bis 6, bei der der fehlerhafte Teilsatz von Bits gleich dem fehlerhaften codierten Binärwort ist, wobei das korrigierte codierte Binärwort nur den korrigierten Teilsatz enthält, der ein korrigiertes fehlerhaftes codiertes Binärwort darstellt.
  8. Vorrichtung gemäß einem der Ansprüche 1 bis 7, bei der der Fehlerdetektor konfiguriert ist, um die Fehlererfassungsbitsequenz zu bestimmen basierend auf einer Multiplikation einer Fehlererfassungsmatrix und des Fehlerdetektoreingangsbinärworts, wobei die Fehlererfassungsmatrix auf einer Prüfmatrix des Fehlerkorrekturcodes basiert.
  9. Vorrichtung gemäß Anspruch 8, bei der die Fehlererfassungsmatrix weniger Zeilen als die Prüfmatrix oder weniger Spalten als die Prüfmatrix aufweist.
  10. Vorrichtung gemäß Anspruch 8 oder 9, bei der die Fehlererfassungsmatrix zumindest eine Spalte oder zumindest eine Zeile aufweist, die ableitbar ist durch Invertieren zumindest eines Elements einer entsprechenden Spalte oder zumindest eines Elements einer entsprechenden Zeile der Prüfmatrix oder durch Invertieren zumindest eines Elements einer entsprechenden Spalte oder zumindest eines Elements einer entsprechenden Zeile einer Matrix, die sich von einer Multiplikation einer Transformationsmatrix und der Prüfmatrix ergibt.
  11. Vorrichtung gemäß einem der Ansprüche 1 bis 10, bei der der Fehlerkorrekturcode ein linearer Fehlerkorrekturcode ist.
  12. Vorrichtung gemäß einem der Ansprüche 1 bis 11, bei der das fehlerhafte codierte Binärwort eine erste Gruppe von Bits, die Datenbits darstellen, eine zweite Gruppe von Bits, die Prüfbits des Fehlerkorrekturcodes darstellen, und eine dritte Gruppe von Bits, die Adressbits darstellen, aufweist, wobei der fehlerhafte Teilsatz nur die erste Gruppe von Bits und die zweite Gruppe von Bits enthält, wobei das korrigierte codierte Binärwort den korrigierten Teilsatz von Bits und die dritte Gruppe von Bits des fehlerhaften codierten Binärworts enthält.
  13. Vorrichtung gemäß Anspruch 12, die einen adressierbaren Speicher aufweist, wobei zumindest die erste Gruppe von Bits und die zweite Gruppe von Bits an einer Adresse des adressierbaren Speichers gespeichert sind, die durch die dritte Gruppe von Bits angezeigt ist.
  14. Vorrichtung gemäß einem der Ansprüche 1 bis 13, die einen Kombinierer aufweist, der konfiguriert ist, um das Fehlerdetektoreingangsbinärwort zu bestimmen durch Kombinieren des korrigierten codierten Binärworts und eines zweiten codierten Binärworts, so dass das Fehlerdetektoreingangsbinärwort ein Codewort des Fehlerkorrekturcodes ist, falls das korrigierte codierte Binärwort und das zweite codierte Binärwort Codewörter des Fehlerkorrekturcodes sind, und sodass das Fehlerdetektoreingangsbinärwort kein Codewort des Fehlerkorrekturcodes ist, falls das korrigierte codierte Binärwort oder das zweite codierte Binärwort kein Codewort des Fehlerkorrekturcodes ist.
  15. Vorrichtung gemäß Anspruch 14, die einen zweiten Fehlerkorrektor aufweist, der konfiguriert ist, um einen korrigierbaren Bitfehler in einem zweiten fehlerhaften Teilsatz von Bits eines zweiten fehlerhaften codierten Binärworts zu korrigieren, das durch den Fehlerkorrekturcode codiert ist, sodass der korrigierte zweite Teilsatz von Bits gleich einem entsprechenden Teilsatz von Bits eines Codeworts des Fehlerkorrekturcodes ist, falls der zweite Fehlerkorrektor fehlerlos arbeitet, wobei das zweite codierte Binärwort den korrigierten zweiten Teilsatz von Bits und maximal einen ordnungsgemäßen Teilsatz von Bits des zweiten fehlerhaften codierten Binärworts enthält.
  16. Vorrichtung gemäß Anspruch 14 oder 15, die einen Codierer aufweist, der konfiguriert ist, um ein Binärwort gemäß dem Fehlerkorrekturcode zu codieren, um das zweite codierte Binärwort zu erhalten.
  17. Vorrichtung gemäß einem der Ansprüche 14 bis 16, bei der der Kombinierer konfiguriert ist, um das korrigierte codierte Binärwort und das zweite codierte Binärwort durch eine bitweise logische XOR-Funktion zu kombinieren, um das Fehlerdetektoreingangsbinärwort zu erhalten.
  18. Vorrichtung gemäß einem der Ansprüche 1 bis 17, die einen Fehleranzeigebestimmer aufweist, der konfiguriert ist, um basierend auf der Fehlererfassungsbitsequenz eine Fehleranzeigebitsequenz zu bestimmen, die anzeigt, ob ein Fehler in dem Fehlerdetektoreingangsbinärwort erfasst wird oder nicht, wobei die Fehleranzeigebitsequenz ein Bit aufweist, falls nur ein möglicher Wert der Fehlererfassungsbitsequenz für alle Codewörter des Fehlerkorrekturcodes erhältlich ist, oder die Fehleranzeigebitsequenz zwei Bits aufweist, falls zumindest zwei unterschiedliche mögliche Werte der Fehlererfassungsbitsequenz für unterschiedliche Codewörter des Fehlerkorrekturcodes erhältlich sind.
  19. Fehlerdetektor, der konfiguriert ist zum Bestimmen einer Fehlererfassungsbitsequenz, die anzeigt, ob ein Fehlerdetektoreingangsbinärwort ein Codewort eines linearen Fehlerkorrekturcodes ist oder nicht, wobei der Fehlerdetektor konfiguriert ist zum Bestimmen der Fehlererfassungsbitsequenz basierend auf einer Multiplikation einer Fehlererfassungsmatrix und des Fehlerdetektoreingangsbinärworts, wobei die Fehlererfassungsmatrix auf einer Prüfmatrix des linearen Fehlerkorrekturcodes basiert, wobei die Fehlererfassungsmatrix weniger Zeilen als die Prüfmatrix oder weniger Spalten als die Prüfmatrix des linearen Fehlerkorrekturcodes aufweist.
  20. Fehlerdetektor, der konfiguriert ist, um eine Fehlererfassungsbitsequenz zu bestimmen, die anzeigt, ob ein Fehlerdetektoreingangsbinärwort ein Codewort eines Fehlerkorrekturcodes ist oder nicht, wobei der Fehlerdetektor konfiguriert ist zum Bestimmen der Fehlererfassungsbitsequenz basierend auf einer Multiplikation einer Fehlererfassungsmatrix und des Fehlerdetektoreingangsbinärworts, wobei die Fehlererfassungsmatrix auf der Prüfmatrix des Fehlerkorrekturcodes basiert, wobei die Fehlererfassungsmatrix zumindest eine Spalte oder zumindest eine Zeile aufweist, die ableitbar ist durch Invertieren zumindest eines Elements einer entsprechenden Spalte oder zumindest eines Elements einer entsprechenden Zeile der Prüfmatrix, oder durch Invertieren zumindest eines Elements einer entsprechenden Spalte oder zumindest eines Elements einer entsprechenden Zeile einer Matrix, die sich von einer Multiplikation einer Transformationsmatrix und der Prüfmatrix ergibt.
  21. Schaltungsanordnung S zum Erfassen von Fehlern in einer Schaltung zum Korrigieren von Fehlern in Codewörtern eines linearen Fehlerkorrekturcodes C, die eine Fehlerkorrekturschaltung aufweist, wobei die Fehlerkorrekturschaltung n binäre Eingänge für den Eingang eines n-Komponenten-Binärworts v' = v' 1 ..., v' n, das aus zwei Bitgruppen v'1 = v' 1,.., v' p und v'2 = v' p+1, ..., v' n besteht, und p Ausgänge zum Ausgeben von p korrigierten Bits der ersten Bitgruppe v1 corr = vcorr,1, ..., vcorr,p aufweist, wobei 1 ≤ p ≤ n gilt, wobei der Linearcode aus Codewörtern v = v1 ..., vn = v1, v2 der Länge n besteht mit q, q < n Informationsbits, wobei die Codewörter aus einer ersten Gruppe von Bits v1 = v1, ..., vp und einer zweiten Gruppe von Bits v2 = vp+1, ..., vn bestehen, wobei Fehler in der ersten Gruppe von Bits korrigiert werden durch die Fehlerkorrekturschaltung in v1 corr und Fehler in der zweiten Bitgruppe von Bits nicht korrigiert werden, und wobei die Bits v1 corr der ersten Bitgruppe, die durch die Fehlerkorrekturschaltung korrigiert werden, und die nicht korrigierten Bits υ'2 der zweiten Bitgruppe das n-stellige Binärwort vcorr = v1 corr, v'2 bilden, wobei die Fehlerkorrekturschaltung eingerichtet ist, sodass, wenn ein Codewort v ∊ C eingegeben wird, vcorr = v gilt, wenn die Fehlerkorrekturschaltung nicht fehlerhaft ist; und eine Fehlererfassungsschaltung mit n binären Eingängen und 1 binären Ausgängen A1, ..., Al zum Ausgeben eines l-Komponenten-Fehlersignals f1, ..., fl existiert, die das Fehlersignal f = f1, ..., fl für l bestimmte Binärwerte i1, i2, ..., il bildet, sodass für einen Eingang jedes Codeworts vcorr des Codes C für die Komponenten des Fehlersignals f i1 / 1 = f i2 / 2 = ... =f il / l gilt, und wenn ein Nicht-Codewort vcorr eingegeben wird, nicht alle Komponenten f1 i1, f2 i2, ..., fl il der Komponenten des Fehlersignals gleich sind und die Fehlererfassungsschaltung einen Fehler anzeigt, wenn nicht alle Werte der Komponenten f1 i1, f2 i2, ..., fl il des Fehlersignals f gleich sind und 1 ≤ n – q gilt, und wobei f ij / j = f j für j = 1, ..., l gilt, falls ij = 0 gilt, und f ij / j = fj, falls ij = 1 gilt.
  22. Verfahren (800) zum Erfassen eines Fehlers in einem durch einen Fehlerkorrekturcode codierten Binärwort, wobei das Verfahren folgende Merkmale aufweist: Korrigieren (810) eines korrigierbaren Bitfehlers in einem fehlerhaften Teilsatz von Bits des codierten Binärworts, wobei der Teilsatz von Bits einen Teil der Bits oder alle Bits des durch den Fehlerkorrekturcode codierten Binärworts umfasst, und Ausgeben eines korrigierten Teilsatzes von Bits, falls die Korrektur des korrigierbaren Bitfehlers fehlerfrei durchgeführt wird; und Empfangen eines Fehlerdetektoreingangsbinärwort, wobei das Fehlerdetektoreingangsbinärwort auf einem korrigierten codierten Binärwort basiert, das den korrigierten Teilsatz von Bits und, falls der Teilsatz nicht alle Bits in dem durch den Fehlerkorrekturcode codierten Binärworts umfasst, den verbleibenden Rest des durch den Fehlerkorrekturcode codierten Binärworts enthält, und basierend auf dem Fehlerkorrekturcode Bestimmen, ob das Fehlerdetektoreingangsbinärwort ein Codewort des Fehlerkorrekturcodes ist oder nicht.
DE102011087634.0A 2010-12-03 2011-12-02 Vorrichtung und verfahren zum erfassen eines fehlers in einem codierten binärwort Active DE102011087634B9 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/959,838 2010-12-03
US12/959,838 US8898535B2 (en) 2010-12-03 2010-12-03 Apparatus and method for detecting an error within a coded binary word

Publications (3)

Publication Number Publication Date
DE102011087634A1 DE102011087634A1 (de) 2012-06-06
DE102011087634B4 true DE102011087634B4 (de) 2017-02-23
DE102011087634B9 DE102011087634B9 (de) 2017-05-18

Family

ID=46083121

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102011087634.0A Active DE102011087634B9 (de) 2010-12-03 2011-12-02 Vorrichtung und verfahren zum erfassen eines fehlers in einem codierten binärwort

Country Status (3)

Country Link
US (1) US8898535B2 (de)
CN (1) CN102546095B (de)
DE (1) DE102011087634B9 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9118351B2 (en) 2012-02-15 2015-08-25 Infineon Technologies Ag System and method for signature-based redundancy comparison
US9209834B2 (en) * 2012-06-12 2015-12-08 Broadcom Corporation Symbol mapping for binary coding
FR3051095B1 (fr) * 2016-05-04 2020-11-13 Valeo Iluminacion Sa Detection de defaillance partielle et/ou totale d'un groupe de sources lumineuses d'un vehicule
CN106448738B (zh) * 2016-11-10 2019-09-10 电子科技大学 一种可编程存储器读出自检电路及方法
CN106845593A (zh) * 2017-01-16 2017-06-13 武汉大学 一种矩形固定点阵信息编解码方法
CN108664906B (zh) * 2018-04-27 2023-02-10 温州大学激光与光电智能制造研究院 一种基于卷积网络的火灾场景中内容的检测方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030070135A1 (en) * 2001-10-05 2003-04-10 Laurent Murillo High-efficiency error detection and/or correction code
DE112007003639T5 (de) * 2007-11-03 2010-09-02 Robert Bosch Gmbh Verfahren und System zum Erfassen einer Störung in einer Fehlerkorrektureinheit

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6745363B2 (en) * 1999-07-30 2004-06-01 Hewlett-Packard Development Company, Lp Early error detection using ECC
JP3527873B2 (ja) * 1999-09-03 2004-05-17 松下電器産業株式会社 誤り訂正装置
KR100339343B1 (ko) * 2000-07-11 2002-06-03 서평원 통신 시스템 및 이 시스템의 신호 처리 방법
US7203890B1 (en) * 2004-06-16 2007-04-10 Azul Systems, Inc. Address error detection by merging a polynomial-based CRC code of address bits with two nibbles of data or data ECC bits
JP4575288B2 (ja) * 2005-12-05 2010-11-04 株式会社東芝 記憶媒体、記憶媒体再生装置、記憶媒体再生方法および記憶媒体再生プログラム
DE102006001872B4 (de) * 2006-01-13 2013-08-22 Infineon Technologies Ag Vorrichtung und Verfahren zum Überprüfen einer Fehlererkennungsfunktionalität einer Datenverarbeitungseinrichtung auf Angriffe
JPWO2008132813A1 (ja) * 2007-04-17 2010-07-22 パナソニック株式会社 無線通信装置および無線通信方法
US8069392B1 (en) * 2007-10-16 2011-11-29 Integrated Device Technology, Inc. Error correction code system and method
CN101340193B (zh) * 2008-08-12 2011-04-20 普天信息技术研究院有限公司 一种低密度校验码的构造方法、编码器和译码器
US8276039B2 (en) * 2009-02-27 2012-09-25 Globalfoundries Inc. Error detection device and methods thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030070135A1 (en) * 2001-10-05 2003-04-10 Laurent Murillo High-efficiency error detection and/or correction code
DE112007003639T5 (de) * 2007-11-03 2010-09-02 Robert Bosch Gmbh Verfahren und System zum Erfassen einer Störung in einer Fehlerkorrektureinheit

Also Published As

Publication number Publication date
US20120144260A1 (en) 2012-06-07
DE102011087634B9 (de) 2017-05-18
CN102546095B (zh) 2015-08-19
US8898535B2 (en) 2014-11-25
DE102011087634A1 (de) 2012-06-06
CN102546095A (zh) 2012-07-04

Similar Documents

Publication Publication Date Title
DE60117066T2 (de) Verfahren und Vorrichtung zum Überprüfen von fehlerkorrigierenden Codes
DE102011085602B4 (de) Vorrichtung und Verfahren zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz
DE102011087634B4 (de) Vorrichtung und verfahren zum erfassen eines fehlers in einem codierten binärwort
DE102013215055B4 (de) Schaltungsanordnung, Vorrichtung, Verfahren und Computerprogramm mit modifiziertem Fehlersyndrom zur Fehlererkennung von permanenten Fehlern in Speichern
DE102015201384B4 (de) Vorrichtung und Verfahren zum Verbessern der Datenspeicherung durch Dateninvertierung
DE2060643C3 (de) Schaltungsanordnung zur Korrektur von Einzelfehlern
DE102017103347B4 (de) Verarbeitung von daten in speicherzellen eines speichers
DE102011087457A1 (de) Vorrichtung und verfahren zum erfassen eines fehlers in einer mehrzahl von codierten binärwörtern, die durch einen fehlerkorrekturcode codiert sind
DE102005022107B9 (de) Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge
DE102014215252B9 (de) Wirksame fehlerkorrektur von mehrbitfehlern
DE102006005817A1 (de) Fehlererkennungsvorrichtung für einen Adressdecoder und Vorrichtung zur Fehlererkennung für einen Adressdecoder
DE102013109315B4 (de) Verfahren und Datenverarbeitungseinrichtung zum Rekonstruieren eines Vektors
DE102016102590A1 (de) Datenverarbeitungseinrichtungen und verfahren zum rekonstruieren eines puf-werts
DE102010041680B4 (de) Vorrichtung und Verfahren zum Bestimmen einer Position eines 1-Bit-Fehlers in einer codierten Bitsequenz, Vorrichtung und Verfahren zur Korrektur eines 1-Bit-Fehlers in einer codierten Bitsequenz und Decodierer und Verfahren zum Decodieren einer fehlerhaften, codierten Bitsequenz
DE102013222136A1 (de) Schaltung und Verfahren für die Mehr-Bit-Korrektur
DE102013219088B9 (de) Schaltungsanordnung und Verfahren zur Realisierung von Prüfbitkompaktierung für Cross-Parity-Codes
DE102016104012A1 (de) Verarbeitung eines Datenworts
DE102021109391B3 (de) Multibytefehler-Erkennung
DE102011080659B4 (de) Vorrichtung und verfahren zum testen einer zu testenden schaltung
DE102019113970B4 (de) Erkennung von adressfehlern
DE102018126685B3 (de) Verarbeitung von Daten
DE102014118531B4 (de) Verfahren und Datenverarbeitungseinrichtung zum Ermitteln eines Fehlervektors in einem Datenwort
DE102013201422B3 (de) Verfahren zum Wiederherstellen verlorengegangener und/ oder beschädigter Daten
DE102013112020B4 (de) Verfahren und Vorrichtung zum Erkennen von Bitfehlern
DE102022118280A1 (de) Fehlerverarbeitung und Korrektur benachbarter 2-Bitfehler

Legal Events

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