DE102015112554A1 - Verfahren und Vorrichtung zum Erzeugen einer Codebitsequenz sowie zum Erkennen von Bitfehlern - Google Patents

Verfahren und Vorrichtung zum Erzeugen einer Codebitsequenz sowie zum Erkennen von Bitfehlern Download PDF

Info

Publication number
DE102015112554A1
DE102015112554A1 DE102015112554.4A DE102015112554A DE102015112554A1 DE 102015112554 A1 DE102015112554 A1 DE 102015112554A1 DE 102015112554 A DE102015112554 A DE 102015112554A DE 102015112554 A1 DE102015112554 A1 DE 102015112554A1
Authority
DE
Germany
Prior art keywords
bit sequence
code
bits
bit
parity
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.)
Granted
Application number
DE102015112554.4A
Other languages
English (en)
Other versions
DE102015112554B4 (de
Inventor
Christian Siemers
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.)
Hochschule Nordhausen
Technische Universitaet Clausthal
Original Assignee
Hochschule Nordhausen
Technische Universitaet Clausthal
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 Hochschule Nordhausen, Technische Universitaet Clausthal filed Critical Hochschule Nordhausen
Priority to DE102015112554.4A priority Critical patent/DE102015112554B4/de
Publication of DE102015112554A1 publication Critical patent/DE102015112554A1/de
Application granted granted Critical
Publication of DE102015112554B4 publication Critical patent/DE102015112554B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

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

Landscapes

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

Abstract

Die Erfindung betrifft ein Verfahren zum Erzeugen einer Codebitsequenz mit einem vorgegebenen Hamming-Abstand größer als 4 basierend auf einer Datenbitsequenz durch Hinzufügen von auf den Nutzdatenbits der Datenbitsequenz basierenden Kontrollbits, wobei zwei Paritätscodes ineinander verschachtelt zur Anwendung kommen, wobei der erste Paritätscode kein Hamming-Code ist und der zweite Paritätscode ein Hamming-Code ist, dessen Hamming-Abstand kleiner als der vorgegebene Gesamt-Hamming-Abstand ist. Die Erfindung betrifft ebenso ein Verfahren zum Überprüfen und Erkennen und Korrigieren von Fehlern bei einer derartigen Codebitsequenz.

Description

  • Die Erfindung betrifft ein Verfahren zum Erzeugen einer Codebitsequenz mit einem vorgegebenen Hamming-Abstand größer als 4 basierend auf einer Datenbitsequenz durch Hinzufügen von auf den Nutzdatenbits der Datenbitsequenz basierenden Kontrollbits zu der Datenbitsequenz. Die Erfindung betrifft auch ein Verfahren zum Erkennen eines Bitfehlers in einer aus mehreren Bits bestehenden Bitsequenz sowie ein Computerprogramm, eine Halbleiterschaltung sowie ein Computersystem hierzu.
  • Es ist allgemein bekannt, dass auch bei Computerprogrammen, die hinsichtlich ihrer semantischen Vorgaben mathematisch korrekt sind, Fehler auftreten können, deren Ursprünge meist nicht mehr feststellbar sind. Derartige Fehler bei der Ausführung von Computerprogrammen, beispielsweise bei der Speicherung von Daten in einer Speichereinheit oder beispielsweise bei der Übertragung von Daten über eine Kommunikationsstrecke, können beispielsweise durch äußere Einflüsse, Erwärmungen oder auch Hardwaredefekte entstehen und können temporär oder von dauerhafter Natur sein. Insbesondere bei sicherheitskritischen Anwendungen ist es daher notwendig, derartige Fehler sicher und schnell erkennen zu können.
  • So ist es beispielsweise bekannt, dass sicherheitskritische Systeme redundant ausgelegt werden, sodass jedes der Systeme einzeln für sich die Berechnung durchführt und anschließend durch Vergleich der Ergebnisse festgestellt werden kann, ob ein Fehler in einer der Berechnungen aufgetreten ist. Sind beide Ergebnisse identisch, so wird von keinem Fehler ausgegangen. Andernfalls wird das Ergebnis als Fehler behaftet gekennzeichnet. Ist eine ungerade Anzahl von redundanten Verrechnungseinheiten vorgesehen, so kann auch das Mehrheitsprinzip über die Ausgabe eines entsprechenden Ergebnisses entscheiden.
  • So ist es bei der Übertragung von Daten, beispielsweise in Kommunikationsnetzwerken, bekannt, dass sogenannte CRC-Summen (Cyclic Redundancy Check) eingesetzt werden, die durch erzeugende Polynome gebildet werden. Hierdurch lassen sich bestimmte Arten von Fehlern zuverlässig erkennen. Allerdings ist dieses System hinsichtlich der Anzahl der Fehler sowie hinsichtlich der Korrektur von erkannten Fehlern stark eingeschränkt.
  • Bei dem Fehlererkennungsverfahren durch redundante Ausführung ist ein Nachteil jedoch darin zu sehen, dass aufgrund der Mehrfachausführung der Systeme auch entsprechend mehr Hardware bereitgestellt werden muss. Derartige Systeme benötigen signifikant mehr elektrische Energie für den Betrieb, sodass diese Art der Fehlererkennung hinsichtlich des Einsatzgebietes Beschränkungen unterliegt. Wird die Redundanz der Berechnung auf ein und demselben Mikroprozessor untergebracht, so ist hierfür meist eine wesentlich höhere Siliziumfläche notwendig, was sich in einigen Einsatzgebieten ebenfalls als nachteilig erwiesen hat. Demgegenüber steht jedoch der unübersehbare Vorteil, dass mithilfe der redundanten Ausführung (auch mehrfach redundant) Rechenfehler innerhalb des Mikroprozessors zuverlässig erkannt werden können.
  • Ein Mittelweg zwischen dem vollständigen Verzicht einer redundanten Berechnung einerseits (höchste Performance) und einer mehrfachen redundanten Ausführung (höchste Sicherheit) stellen sogenannte Fehler erkennende und gegebenenfalls Fehler korrigierende lineare Blockcodes dar, deren bekanntester Vertreter der sogenannte Hamming-Code ist. Bei dem Hamming-Code wird basierend auf einer Datenbitsequenz bestehend aus mehreren Nutzdatenbits mehrere Paritätsbits bzw. Kontrollbits berechnet, die jeweils die Parität einer bestimmten Gruppe von Nutzdatenbits der Datenbitsequenz abbilden. Aufgrund der Tatsache, dass die Auswahl der Nutzdatenbits zur Berechnung des jeweiligen Paritätsbits mathematisch in binärer Form beschreibbar ist, können bei hinreichender Anzahl von erzeugten Paritätsbits nicht nur Fehler erkannt werden, sondern auch gegebenenfalls Fehler behoben werden.
  • Die nachfolgende Tabelle zeigt eine 32 Bit Datenbitsequenz (d0 bis d31), bei der an den entscheidenden Stellen Paritätsbits (p1 bis p6) eingefügt wurden.
    Figure DE102015112554A1_0001
  • Für eine derartige Hamming-Code-Bitsequenz sind somit 38 Bits notwendig, so dass durch Hinzufügen von 7 Paritätsbits als Redundanz zu den 32 Datenbits insgesamt zwei Bitfehler erkannt und ein Bitfehler korrigiert werden können. Ein derartiger Code hat somit einen Hamming-Abstand von 3 und wird auch als (38, 32, 3) Hammingcode bezeichnet.
  • Die einzelnen Paritätsbits werden dabei wie folgt berechnet:
    Figure DE102015112554A1_0002
    Figure DE102015112554A1_0003
  • Der Berechnung liegt dabei die Regel zugrunde, dass jedes Paritätsbit an eine Stelle innerhalb der Nutzdatenbitsequenz eingefügt wird, die mit einem als 2K darstellbarem Index (k gleich 0, 1, ...) versehen ist. Ein solches Paritätsbit wird dann so berechnet, dass eine XOR-Verknüpfung über alle rechts von dem Paritätsbit stehenden Nutzdatenbits gebildet wird, wobei in der binären Kodierung des jeweiligen Nutzdatenbits das k-te-Bit auf logisch „1” gesetzt ist. Damit ist die Auswahl der Nutzdatenbits zur Berechnung des jeweiligen Paritätsbits mathematisch eindeutig beschreibbar.
  • Um zu überprüfen, ob ein Fehler in der kodierten Bitsequenz von Nutzdatenbits und Paritätsbits vorhanden ist, werden aus der kodierten Bitsequenz die Nutzdatenbits extrahiert und anschließend basierend auf der oben dargestellten Rechenregel die entsprechenden Paritätsbits neu berechnet. Anschließend werden die in der kodierten Bitsequenz vorhandenen Paritätsbits mit den neu berechneten Paritätsbits verglichen, wobei hierbei immer die Paritätsbits mit gleichem Index verglichen werden.
  • Wird bei dem Vergleich festgestellt, dass sowohl die in der kodierten Bitsequenz vorhandenen Paritätsbits als auch die neuberechneten Paritätsbits identisch sind, so liegt kein Fehler vor. Wird jedoch festgestellt, dass ein oder mehrere Paritätsbits mit gleichem Index einen Unterschied aufweisen, so scheint ein Fehler vorzuliegen. Dabei kann je nach Index der verschiedenen Paritätsbits festgestellt werden, welches Bit in der kodierten Bitsequenz tatsächlich fehlerhaft ist, so dass zumindest bei einem 1-Bit-Fehler eine Fehlerkorrektur möglich wird (durch Invertierung des fehlerhaften Bits in der kodierten Bitsequenz).
  • Die Paritätsbits mit gleichem Index können beispielsweise dadurch verglichen werden, dass die Paritätsbits mit gleichem Index XOR-verknüpft werden, wodurch ein Bitvektor entsteht, der auch als Syndromvektor bezeichnet wird und die gleiche Anzahl von Bits aufweist, wie Paritätsbits vorhanden sind.
  • Figure DE102015112554A1_0004
  • Aus Übersichtlichkeitsgründen kann die Berechnung der Paritätsbits aus den entsprechenden Nutzdatenbits auch in einer Matrixform dargestellt werden, wie sie im weiteren Verlauf der Beschreibung der Erfindung verwendet wird. Für einen (12, 8, 3) Hamming-Code ist nachstehend die Matrixform angegeben, wobei hierbei die Nutzdatenbits d0 bis d7 mit der Kodierungsmatrix multipliziert werden.
  • Figure DE102015112554A1_0005
  • Der Nachteil eines solchen Hamming-Codes ist die Tatsache, dass nur eine begrenzte Anzahl von Bitfehlern erkannt und lediglich ein Bitfehler korrigiert werden kann. Der oben beschriebene Hamming-Code hat dabei lediglich einen Hamming-Abstand von 3, so dass lediglich zwei Bitfehler erkannt und ein Bitfehler korrigiert werden kann. Wolle man die Anzahl der erkennbaren Bitfehler sowie die Anzahl der korrigierbaren Bits erhöhen, d. h. also den Hamming-Abstand innerhalb des Codes erhöhen, so müsste die Anzahl der verwendeten Paritätsbits drastisch erhöht werden, was schließlich zu Lasten der Performance und Leistung eines Systems, das einen derartigen Paritätscode verwendet, geht.
  • Es ist daher Aufgabe der vorliegenden Erfindung ein verbessertes Verfahren sowie ein Computerprogramm, eine Halbleiterschaltung sowie ein Computersystem hierzu anzugeben, mit dem ein Paritätscode basierend auf einer Datenbitsequenz erzeugt werden kann, der einen vorgegebenen Hamming-Abstand von mehr als 4 aufweist und dennoch mit weniger zusätzlichen Paritätsbits bzw. Kontrollbits erforderlich wäre.
  • Es ist auch Aufgabe der vorliegenden Erfindung ein verbessertes Verfahren, Computerprogramm, Halbleiterschaltung sowie Computersystem hierzu anzugeben, mit dem Bitfehler erkannt und korrigiert werden können, die innerhalb einer derartigen kodierten Bitsequenz basierend auf dem erfindungsgemäßen Verfahren enthalten sind.
  • Die Aufgabe wird mit dem Verfahren zum Erzeugen einer Codebitsequenz gemäß Anspruch 1 sowie einem Verfahren zum Erkennen von Bitfehlern gemäß Anspruch 7 erfindungsgemäß gelöst.
  • Gemäß Anspruch 1 wird ein Verfahren zum Erzeugen einer Codebitsequenz mit einem vorgegebenen Hamming-Abstand größer als 4 basierend auf einer Datenbitsequenz durch Hinzufügen von auf die Nutzdatenbits der Datenbitsequenz basierenden Kontrollbits vorgeschlagen, wobei die berechneten Kontrollbits auf einer zweifach linearen Abbildung beruhen, die ineinander verschachtelt sind. So werden die Kontrollbits der ersten linearen Abbildung auf den Datenbits der Datenbitsequenz berechnet, während die zweite lineare Abbildung einen Hamming-Code darstellt und die Kontrollbits des Hamming-Codes dabei basierend auf den Nutzdatenbits einerseits und den Kontrollbits der ersten linearen Abbildung andererseits beruhen.
  • Die erste lineare Abbildung, die als erstes Paritätscode-Berechnungsschema bezeichnet wird, stellt dabei gerade keinen Hamming-Code dar und zeichnet sich insbesondere dadurch aus, dass die Auswahl der einzelnen Nutzdatenbits für die Berechnung des jeweiligen Kontrollbits bzw. Paritätsbits des ersten Paritätscode-Berechnungsschemas gerade nicht mathematisch mithilfe einer für jede Bitlänge der Datenbitsequenz gültige Rechenvorschrift beschreiben lässt, so wie dies für den klassischen Hamming-Code wie oben dargelegt möglich ist.
  • Demnach wird zunächst eine Datenbitsequenz bereitgestellt, die eine Mehrzahl von Nutzdatenbits aufweist, welche die zu codierenden binären Nutzdaten enthalten. Dabei ist die Anzahl der Nutzdatenbits der Datenbitsequenz fest vorgegeben.
  • Des Weiteren wird ein erstes Paritätscode-Berechnungsschema bereitgestellt, dass ein oder mehrere erste Kontrollbits aufweist, die jeweils gemäß dem ersten Paritätscode-Berechnungsschema aus Bitwerten eines jeweils vorgegebenen Teils von Bits der zugrunde liegenden Bitsequenz berechnet werden, wobei das erste Paritätscode-Berechnungsschema nicht einem Hamming-Code entspricht. Des Weiteren wird ein zweites Paritätscode-Berechnungsschema, das einem Hamming-Code mit einem vorgegebenen Hamming-Abstand entspricht, wobei der Hamming-Abstand des zweiten Paritätscode-Berechnungsschemas kleiner ist als der Hamming-Abstand der zu erzeugenden Codebitsequenz insgesamt. Auch das zweite Paritätscode-Berechnungsschema weist ein oder mehrere zweite Kontrollbits auf, die jeweils gemäß dem Hamming-Code-Berechnungsschema des zweiten Paritätscode-Berechnungsschemas aus Bitwerten eines jeweils vorgegebenen Teils von Bits der zugrunde liegenden Bitsequenz berechnet werden.
  • Anschließend wird erfindungsgemäß eine erste Paritätscode-Bitsequenz erzeugt, die basierend auf der bereitgestellten Datenbitsequenz gemäß dem ersten Paritätscode-Berechnungsschema die ersten Kontrollbits berechnet und die berechneten ersten Kontrollbits der bereitgestellten Datenbitsequenz hinzugefügt werden. Anschließend wird eine zweite Paritätscode-Bitsequenz erzeugt, in der basierend auf der zuvor berechneten ersten Paritätscode-Bitsequenz gemäß dem zweiten Paritätscode-Berechnungsschemas, das einen Hamming-Code darstellt, die zweiten Kontrollbits berechnet und die berechneten zweiten Kontrollbits der ersten Paritätscode-Bitsequenz zugefügt werden.
  • In der breitmöglichsten Ausgestaltung entspricht die zweite Paritätscode-Bitsequenz der zu erzeugenden Codebitsequenz, wodurch die Nutzdatenbits der zugrunde liegenden Datenbitsequenz mithilfe der ersten und zweiten Kontrollbits gemäß dem vorgegebenen Hamming-Abstand von größer als 4 redundant vorgehalten werden können.
  • Unter den ersten und zweiten Kontrollbits, wobei es mehrere erste Kontrollbits für das erste Paritätscode-Berechnungsschema und auch mehrere zweite Kontrollbits für das zweite Paritätscode-Berechnungsschema geben kann, werden insbesondere Paritätsbits verstanden, die sich aus einer Paritätsberechnung der zugrunde liegenden Bits der Bitsequenz berechnen lassen. Eine derartige Paritätsberechnung kann beispielsweise durch eine XOR-Verknüpfung aller den jeweiligen Kontrollbits zugrunde liegenden Bits der Bitsequenz berechnet werden.
  • Unter einem Paritätscode-Berechnungsschema wird dabei im Sinne der vorliegenden Erfindung eine Rechenvorschrift derart verstanden, die angibt, wie die einzelnen Kontrollbits bzw. Paritätsbits des jeweiligen Berechnungsschemas berechnet werden, insbesondere welche Datenbits der zugrunde liegenden Bitsequenz für das jeweilige Kontrollbit verwendet werden soll. Dabei ist die Rechenvorschrift für das zweite Paritätscode-Berechnungsschema, das einen Hamming-Code darstellt, mathematisch eindeutig beschreibbar, während dies für das erste Paritätscode-Berechnungsschema gerade nicht der Fall ist
  • Eine solche erzeugte Codebitsequenz basierend auf einer Datenbitsequenz weist dabei insbesondere die Eigenschaft auf, dass die Anzahl der ersten und zweiten Kontrollbits zur Erreichung des vorgegebenen Hamming-Abstandes größer als 4 kleiner ist als die Anzahl jener Paritätsbits, die benötigt würden, würde man den vorgegebenen Hamming-Abstand ausschließlich mit einem Hamming-Code realisieren wollen oder würde man zwei Hamming-Codes ineinander verschachteln.
  • Der Erfinder hat insbesondere hierbei erkannt, dass eine Vergrößerung des Hamming-Abstandes eines vorgegebenen Hamming-Codes und einer damit einhergehenden größeren Anzahl von zu erkennenden Bitfehlern und zu korrigierenden Bitfehlern auch dann möglich ist, wenn ein derartiges Berechnungsschema zum einen in einen Hamming-Code verschachtelt und zum anderen es hierfür keine mathematisch beschreibbare Definition gibt, die die Auswahl der Bits der Bitsequenz für das jeweilige Kontrollbit vorgibt. Dies ist insbesondere deshalb erstaunlich, da gerade diese Definition, wie sie beim Hamming-Code verwendet wird, mit der der Hamming-Code mathematisch beschrieben wird, dazu führt, dass überhaupt erst ein fehlerhaftes Bit erkannt und lokalisiert werden kann, um es so gegebenenfalls auch zu korrigieren.
  • Mit dem vorgeschlagenen Verfahren lassen sich somit Codebitsequenzen aus Datenbitsequenzen erzeugen, die beispielsweise einen Hamming-Abstand von 5 haben, wodurch sich mehr Bitfehler erkennen lassen und darüber hinaus auch ein und zwei Bitfehler korrigieren lassen.
  • Gemäß einer vorteilhaften Ausführungsform kann die zu erzeugende Codebitsequenz einen geraden Hamming-Abstand haben, wobei ein drittes Paritätscode-Berechnungsschema bereitgestellt wird, das ein drittes Kontrollbit aufweist, das gemäß dem dritten Paritätscode-Berechnungsschema als Gesamtparität aus den Bitwerten alle Bits der zugrunde liegenden Bitsequenz berechnet wird, wobei eine dritte Paritätscode-Bitsequenz als die zu erzeugende Codebitsequenz anstelle der zweiten Paritätcode-Bitsequenz erzeugt wird, in dem basierend auf der zuvor berechneten zweiten Paritätscode-Bitsequenz gemäß dem dritten Paritätscode-Berechnungsschema das dritte Kontrollbit berechnet und das berechnete dritte Kontrollbit der zweiten Paritätscode-Bitsequenz hinzugefügt wird. Hierdurch kann der Hamming-Abstand der zugrunde liegenden Codebitsequenz um 1 erhöht werden.
  • Gemäß einer weiteren vorteilhaften Ausführungsform wird zumindest ein Teil der ersten Kontrollbits an den Anfang oder das Ende der Datenbitsequenz angefügt und/oder zumindest ein Teil der ersten Kontrollbits innerhalb der Datenbitsequenz eingefügt, um die erste Paritätscode-Bitsequenz zu erhalten. Die ersten Kontrollbits können somit als zusammenhängende Bitsequenz der Datenbitsequenz hinzugefügt werden, und zwar an den Anfang oder an das Ende der Datenbitsequenz. Die ersten Kontrollbits können aber auch wahlweise in die Datenbitsequenz eingefügt werden, so wie dies beispielsweise aus dem Hamming-Code bekannt ist.
  • Da sich das erste Paritätscode-Berechnungsschema nicht unabhängig für verschiedene Bitlängen der zugrunde liegenden Datenbitsequenz beschreiben lässt, ist es besonders vorteilhaft, wenn für eine vorgegebene Anzahl von zu codierenden Bits einer Bitsequenz ein entsprechendes Berechnungsschema ermittelt wird, in dem sämtliche Kombinationen von Bits der Bitsequenz für die Berechnung des jeweiligen Kontrollbits ermittelt und dann für alle Kombinationen von Bitwerten der Bitsequenz dann zusammen mit dem zweiten Paritätscode-Berechnungsschema überprüft wird, ob das jeweilige erste Paritätscode-Berechnungsschema die Vorgabe bezüglich des geforderten Hamming-Abstandes erfüllt oder nicht.
  • Hierzu wird zunächst eine Vielzahl von möglichen Berechnungsschemas, vorzugsweise alle möglichen Berechnungsschemas, für das erste Paritätscode-Berechnungsschema mit einer vorliegenden Anzahl von Kontrollbits, beispielsweise einem einzigen Kontrollbit, berechnet, indem für jedes Kontrollbit verschiedene mögliche Kombinationen von Bits der zugrunde liegenden Bitsequenz, anhand derer Bitwerte das jeweilige Kontrollbit berechnet wird, ermittelt werden. Bei einer vorgegebenen Bitlänge der Datenbitsequenz von n-Bits ergibt sich für ein Kontrollbit genau 2n verschiedene Kombinationen von möglichen Berechnungsschemas. Für eine 7 Bit Datenbitsequenz ergeben sich somit 27 gleich 128 verschiedene Möglichkeiten, ein einziges Kontrollbit aus unterschiedlichen Kombinationen von Bits der 7 Bit Datenbitsequenz zu berechnen.
  • Anschließend wird für jedes so erzeugte erste Paritätscode-Berechnungsschema überprüft, ob das Berechnungsschema den geforderten Hamming-Abstand erreicht oder nicht. Hierfür wird über sämtliche erste Paritätscode-Berechnungsschemas iteriert, wobei in jeder Iteration für ein konkretes erstes Paritätscode-Berechnungsschema dann für jede mögliche Kombination von Bitwerten der zugrunde liegenden Datenbitsequenz das oder die ersten Kontrollbits des ersten Paritätscode-Berechnungsschemas und anschließend die zweiten Kontrollbits des zweiten Paritätscode-Berechnungsschemas berechnet, und zwar in einer Art und Weise, als ob basierend auf der konkreten Kombination der Bitwerte der Bitsequenz die Codebitsequenz erzeugt werden soll. Damit ergibt sich für ein konkretes Paritätscode-Berechnungsschema für jede mögliche Kombination von Bits der Datenbitsequenz ein erstes oder zweites und gegebenenfalls auch ein drittes Kontrollbit, sofern dies im vorangegangen Schritt mit berechnet wurde, wobei nunmehr überprüft werden kann, ob für jede mögliche Kombination der Bits der Datenbitsequenz das erste und zweite Berechnungsschema in der Gesamtheit tatsächlich den geforderten Hamming-Abstand erreichen.
  • Hierfür werden die Kontrollbits der jeweiligen Kombination von Bitwerten mit den Kontrollbits aller übrigen möglichen Kombinationen von Bitwerten verglichen und die minimale Anzahl von unterschiedlichen Bits zwischen den jeweiligen verglichenen Kontrollbits der möglichen Kombinationen von Bitwerten bestimmt. Nur wenn für das konkrete erste Paritätcode-Berechnungsschema die minimale Anzahl von unterschiedlichen Bits zwischen den jeweiligen verglichenen Kontrollbits der möglichen Kombinationen von Bitwerten größer oder gleich dem geforderten Hamming-Abstand der gewünschten Codebitsequenz ist, handelt es sich um ein Berechnungsschema, das somit den geforderten Hamming-Abstand erfüllt.
  • Mit diesem Verfahren lassen sich für eine gewählte Bitlänge der Datenbitsequenz unter Umständen verschiedene erste Paritätscode-Berechnungsschemas ermitteln, die nicht einem Hamming-Code entsprechen und deren Bildungsvorschriften darüber hinaus auch nicht durch eine einfache Rechenvorschrift mathematisch definierbar sind.
  • Vorteilhafterweise wird das oben beschriebene Verfahren zum Erzeugen des ersten Paritätscode-Berechnungsschemas begonnen mit lediglich einem einzigen Kontrollbit des ersten Paritätscode-Berechnungsschemas. Sofern für nur ein einziges Kontrollbit kein gültiges erstes Paritätscode-Berechnungsschema ermittelt worden ist, das die Bedingung des vorgegebenen Hamming-Abstandes erfüllt, wird die Anzahl der Kontrollbits um 1 erhöht und das Verfahren zum Ermitteln des ersten Paritätscode-Berechnungsschemas mit der um 1 erhöhten Anzahl von Kontrollbits erneut durchgeführt. Dies wird solange wiederholt, bis ein entsprechendes gültiges Berechnungsschema ermittelt worden ist, das den geforderten Hamming-Abstand hat.
  • Die folgende Matrix zeigt die Berechnung einer ersten Paritätscode-Bitsequenz basierend auf der Datenbitsequenz d0 bis d6 mit den ersten Kontrollbits m0 bis m3.
  • Figure DE102015112554A1_0006
  • Aus dieser so erzeugten ersten Paritätcode-Bitsequenz wird dann anschließend der Hamming-Code ermittelt, indem gemäß der Berechnungsvorschrift des Hamming-Codes die zweiten Kontrollbits p1 bis p4 basierend auf der ersten Paritätcode-Bitsequenz ermittelt werden.
  • Figure DE102015112554A1_0007
  • Hier wird somit die Abbildung eine 7 Bit Datenbitsequenz auf einem Code mit 11 Bits insgesamt angegeben, wobei der hier dargestellte Code einen Hamming-Abstand von 5 hat. In der Vektorenschreibweise (Matrixzeilen) haben die Kontrollbits des ersten Paritätscode-Berechnungsschemas folgende Werte:
    {0x16, 0x45, 0x70, 0x4A}
  • Die in der oben gezeigten Schreibweise enthaltene Matrixmultiplikation wird so ausgeführt, dass die binären Werte miteinander multipliziert und dann per XOR-Verknüpfung als Ersatz für die Addition verknüpft werden.
  • Gemäß Anspruch 7 wird des Weiteren ein Verfahren zum Erkennen eines Bitfehlers in einer aus mehreren Bits bestehenden Bitsequenz beansprucht, wobei die Bitsequenz eine Codebitsequenz darstellt, die basierend auf einer eine Mehrzahl von Nutzdatenbits enthaltenen ursprünglichen Datenbitsequenz gemäß dem vorstehenden Verfahren erzeugt wurde. Demnach wurden in die ursprüngliche Datenbitsequenz die ersten und zweiten Kontrollbits und gegebenenfalls auch das dritte Kontrollbit (Gesamtparität) eingefügt, um die Codebitsequenz zu erhalten.
  • Um eine derartige Codebitsequenz hinsichtlich von Fehlern zu überprüfen, wird zunächst die Datenbitsequenz aus der Codebitsequenz extrahiert, d. h. es werden sämtliche Nutzdatenbits aus der bereitgestellten Codebitsequenz ermittelt und zu der Datenbitsequenz zusammengesetzt. Darüber hinaus werden auch die ersten Kontrollbits und die zweiten Kontrollbits der bereitgestellten Codebitsequenz extrahiert, um die entsprechenden Informationen zur Überprüfung der Codebitsequenz zu erhalten.
  • Anschließend werden die ersten Kontrollbits und die zweiten Kontrollbits basierend auf der extrahierten Datenbitsequenz neu berechnet, und zwar in gleicher Art und Weise, wie die extrahierten Kontrollbits der bereitgestellten Codebitsequenz basierend auf der ursprünglichen Datenbitsequenz gemäß dem vorstehend genannten Verfahren erzeugt wurden. Demnach werden das gleiche erste Paritätscode-Berechnungsschema und zweite Paritätscode-Berechnungsschema zur Erzeugung der ersten Kontrollbits und der zweiten Kontrollbits bei der Neuberechnung verwendet, die auch bei der Erzeugung der Kontrollbits der bereitgestellten Codebitsequenz verwendet wurden.
  • Anschließend werden die extrahierten ersten Kontrollbits mit den neu berechneten ersten Kontrollbits sowie die extrahierten zweiten Kontrollbits mit den neu berechneten zweiten Kontrollbits verglichen, wobei in Abhängigkeit des Vergleiches, d. h. je nach Ergebnis des Vergleiches, ein Bitfehler in der bereitgestellten Codebitsequenz erkannt werden kann. Ein Bitfehler in der Codebitsequenz meint hierbei, dass ein oder mehrere Bits der gesamten Codebitsequenz, d. h. sowohl Nutzdatenbits als auch Kontrollbits, fehlerhaft ist, d. h. invertiert.
  • Der Überprüfung der bereitgestellten Codebitsequenz kann des Weiteren auch das dritte Kontrollbit des dritten Paritätscode-Berechnungsschemas zugrunde gelegt werden, so dass hier aus der gesamten Codebitsequenz das dritte Kontrollbit extrahiert und ein drittes Kontrollbit basierend auf der bereitgestellten Codebitsequenz ohne drittes Kontrollbit in gleicher Weise, wie das extrahierte dritte Kontrollbit der bereitgestellten Codebitsequenz erzeugt wurde, neu berechnet wird. Anschließend wird das extrahierte dritte Kontrollbit mit dem neu berechneten dritten Kontrollbit zum Erkennen von Bitfehlern verglichen.
  • Des Weiteren ist es vorteilhaft, wenn bei Erkennen eines Bitfehlers eines oder mehrerer Bits das oder die fehlerhaften Bits in der bereitgestellten Codebitsequenz in Abhängigkeit von dem Vergleich der Kontrollbits ermittelt und korrigiert werden.
  • Des Weiteren ist es vorteilhaft, wenn nach der Korrektur des Bitfehlers die korrigierte Codebitsequenz überprüft wird, in dem das Verfahren zur Erkennung von Bitfehlern mit der korrigierten Codebitsequenz als die bereitgestellte Codebitsequenz erneut durchgeführt wird. Wird in der korrigierten Codebitsequenz ebenfalls ein Bitfehler erkannt, so wird die Korrektur des Bitfehlers verworfen und lediglich ein Mehrbitfehler in der Codebitsequenz angezeigt.
  • Zur Verbesserung der Erkennungsgeschwindigkeit ist es desweiteren vorteilhaft, wenn für eine vorgegebene Anzahl von fehlerhaften Bits in einer Codebitsequenz mit vorgegebener Bitlänge für jede mögliche Fehlerkombination der vorgegebenen Anzahl von fehlerhaften Bits eine der jeweiligen Fehlerkombination zugeordnete Korrekturvorschrift bereitgestellt wird, wobei in Abhängigkeit von dem durchgeführten Vergleich der Kontrollbits die konkrete Fehlerkombination eines Bitfehlers in der Codebitsequenz ermittelt und basierend auf der konkreten Fehlerkombination dann die der Fehlerkombination zugeordnete Korrekturvorschrift aus den bereitgestellten Korrekturvorschriften ermittelt und erkannte Bitfehler in der Codebitsequenz dann unter Anwendung der ermittelten Korrekturvorschrift korrigiert wird. Dies ist insbesondere vorteilhaft auch bei zwei oder mehr Bitfehlern.
  • Es wird zunächst eine gültige Kombination von Nutzdatenbits der zugrunde liegenden Datenbitsequenz ausgewählt. Dies kann beispielsweise der Nullvektor sein, bei dem jedes Bild null ist. Anschließend wird in dieser konkreten Datenbitsequenz jeder mögliche N-Bit-Fehler erzeugt, so dass für die gültige Datenbitsequenz eine Vielzahl von fehlerhaften Datenbitsequenzen mit der vorgegebenen Anzahl von Bitfehlern vorliegt.
  • Anschließend werden die Kontrollbits, wie vorstehend bereits beschrieben, sowohl für die korrekte gültige Datenbitsequenz als auch für jede fehlerhafte Datenbitsequenz ermittelt, so dass für jede Datenbitsequenz dann das erste, zweite und gegebenenfalls dritte Kontrollbit bzw. Bits vorliegen.
  • Nun werden die Kontrollbits der einen gültigen Datenbitsequenz mit den Kontrollbits der jeweils fehlerindizierten Datenbitsequenzen verglichen, wobei basierend auf dem Vergleich dann die entsprechende Korrekturvorschrift ermittelt und der fehlerhaften Datenbitsequenz zugeordnet wird. Dabei kann festgestellt werden, dass es ausreichend ist, den Vergleich für eine einzige gültige Datenbitsequenz durchzuführen, da die sich hieraus ableiten Fehlerkorrektur für sämtliche andere gültige Datenbitsequenzen ebenfalls gültig ist.
  • So ist es hierbei beispielsweise denkbar, dass bei dem Vergleich der Kontrollbits der korrekten Datenbitsequenz mit den fehlerhaften Datenbitsequenzen jeweils ein sogenanntes Syndrom erzeugt wird, bei dem die zu vergleichenden Kontrollbits mit gleichem Index jeweils XOR verknüpft werden. Für jedes Syndrom kann dann eine Korrekturvorschrift angegeben werden, die angibt, welche N-Bits in der Codebitsequenz fehlerhaft sind. Dabei ist unabhängig von der zugrunde liegenden Kombination der Datenbitsequenz das Syndrom für den entsprechenden Fehler immer gleich.
  • Eine Korrekturvorschrift kann demzufolge so ausgestaltet sein, dass sie für die Codebitsequenz mit vorgegebener Bitlänge eine XOR-Maske angibt, mit der die Codebitsequenz XOR verknüpft wird und anschließend der Mehrbitfehler in der Codebitsequenz behoben ist.
  • Die Erfindung wird anhand des nachstehenden Ausführungsbeispiels anhand einer Codesbitsequenz näher erläutert.
  • Bereitgestellt wird ein (15, 7, 5)-Paritätscode, genauer (15, 11, 7, 5)-Paritätscode, bei dem das erste Paritätscode-Berechnungsschema wie folgt lautet:
    Figure DE102015112554A1_0008
  • Das zweite Paritätscode-Berechnungsschema ist dabei ein Hamming-Code mit einem Hamming-Abstand von 3 und führt zu:
    Figure DE102015112554A1_0009
  • Damit ergibt sich für das erste Paritätscode-Berechnungsschema folgender Vektoren:
    {0x16, 0x45, 0x70, 0x4A}
  • Darüber hinaus wird ein drittes Paritätscode-Berechnungsschema verwendet, um ein drittes Kontrollbit als Gesamtparität über die Bitsequenz die d0 bis d6, m0 bis m3 und p1 bis p4 zu erhalten.
  • Unter einem (15, 11, 7, 5)-Paritätscode wird verstanden, dass die gesamte Codebitsequenz 15 Bits aufweist, wobei insgesamt 7 Nutzdatenbits enthalten sind und die Hamming-Distanz 5 ist. Die Anzahl der Nutzdatenbits und der ersten Kontrollbits gemäß dem ersten Paritätscode-Berechnungsschema beträgt hierbei 11, so dass insgesamt 4 Kontrollbits des ersten Paritätscode-Berechnungschemas vorhanden sind.
  • Zur Überprüfung einer derartigen Codebitsequenz, beispielsweise nach dem Auslesen aus dem Speicher oder bei der Übertragung über eine Kommunikationsstrecke, wird zunächst die Datenbitsequenz d0 bis d6 aus der Codebitsequenz extrahiert, um darauf basierend unter Anwendung des vorliegenden Verfahrens die ersten Kontrollbits m0 bis m3 sowie die zweiten Kontrollbits p1 bis p4 gemäß der in dieser Patentanmeldung vorgeschlagenen Erfindung neu zu berechnen. Auch das dritte Kontrollbit, die Gesamtparität, wird neu berechnet. Anschließend werden die in der Codebitsequenz enthaltenen Kontrollbits mit den neu berechneten Kontrollbits verglichen und das sogenannte Syndrom bzw. ein Syndromvektor gebildet.
  • Hierzu wird das Kontrollbit m0 der Codebitsequenz mit dem neu berechneten Kontrollbit M0' XOR verknüpft, das Kontrollbit m1 mit dem neu berechneten Kontrollbit m1', usw. Eine derartige XOR Verknüpfung erfolgt dabei mit allen bekannten und neu berechneten Kontrollbits gleichem Index. Demnach wird auch das jeweilige Syndrom des Hamming-Codes berechnet, so dass das Kontrollbit p1 mit dem neu berechneten Kontrollbit p1' XOR verknüpft wird, und so weiter.
  • Die Summen aller Syndrome eines Paritätscodes werden dabei als Syndromvektor bezeichnet, wobei die Syndrome der ersten Kontrollbits des ersten Paritäts-Berechnungsschema als erster Syndromvektor, die Syndrome der zweiten Kontrollbits des zweiten Paritätscode-Berechnungsschemas als zweiter Syndromvektor (Hamming-Syndrom) und das Syndrom der Gesamtparität als dritter Syndromvektor bezeichnet.
  • Ist eines der Syndrome ungleich null, so müssen sich die beiden Vergleichsoperanden der XOR-Verknüpfung unterscheiden, was letztlich bedeutet, dass beide Kontrolllbits, die zu dem Syndrom durch XOR-Verknüpfung führen, unterschiedlich sind. Demnach ist von einem Fehler in Bezug auf die dem Kontrollbit zugrunde liegenden Nutzdatenbits auszugehen. Ist das Syndrom hingegen null, so sind beide Kontrollbits identisch und es ist nicht von einem Fehler in Bezug auf die dem Kontrollbit zugrunde liegenden Nutzdatenbits auszugehen.
  • A) Mehrbitfehlererkennung und 1-Bit-Fehlerkorrektur
  • Für eine Mehrbitfehlererkennung im oben angegebenen Paritätscode, der einen insgesamt Hamming-Abstand von 5 aufweist, erfolgt eine Fallunterscheidung.
  • Erster Fall: alle drei Syndromvektoren sind null. In diesem Fall wird von einer korrekten Codebitsequenz ausgegangen.
  • Zweiter Fall: der erste Syndromvektor und der zweite Syndromvektor sind gleich null, der dritte Syndromvektor, die Gesamtparität, ist ungleich null. In diesem Fall wird von einer korrekten Codebitsequenz ausgegangen, bei der nur das dritte Kontrollbit, die Gesamtparität, einen Fehler aufzeigt.
  • Dritter Fall: der erste Syndromvektor und/oder der zweite Syndromvektor sind ungleich null. Dies bedeutet, dass mindestens eines der Syndrome in den Syndromvektoren ungleich null ist. Hier liegt ein Fehler vor, der entweder in einem der Kontrollbits selber manifestiert sein kann oder in den Nutzdatenbits.
  • Bei der Fehlerkorrektur wird ebenfalls eine Fallunterscheidung durchgeführt:
    Erster Fall: der erste Syndromvektor ist ungleich null, der zweite Syndromvektor ist gleich null. In diesem Fall liegt ein Mehrbitfehler vor, der nur detektiert, aber nicht korrigiert werden kann.
  • Zweiter Fall: der erste und der zweite Syndromvektor sind gleich null, der dritte Syndromvektor ist ungleich null. In diesem Fall ist lediglich das dritte Kontrollbit fehlerhaft und braucht nur invertiert zu werden. Eine weitere Überprüfung ist damit nicht erforderlich.
  • Dritter Fall: der zweite Syndromvektor ist ungleich null (Hamming Syndrom), wobei eines der Syndrome auf ein Bit zeigt, das außerhalb der Nutzung des aktuellen Codes liegt. In diesem Fall liegt ebenfalls ein Mehrbitfehler vor, der detektiert, aber nicht korrigiert werden kann. Unter „außerhalb der Nutzung des aktuellen Codes” wird hierbei gemeint, dass der gesamte Syndromvektor bestehend aus den einzelnen Syndromen als Dezimaldarstellung auf ein Bit zeigt, das außerhalb der verwendeten Anzahl von Bits der Codebitsequenz liegt. Mit anderen Worten, die Dezimaldarstellung des aus mehreren Bits bestehenden Syndromvektors ist eine Dezimalzahl, die größer ist als die maximale Bitlänge der zugrunde liegenden Codebitsequenz.
  • Vierter Fall: der zweite Syndromvektor ist ungleich null und eines der Syndrome zeigt auf ein Bit, das innerhalb der Nutzung des aktuellen Codes liegt. In diesem Fall wird eine Korrektur gemäß Hamming-Code durchgeführt. Anschließend wird diese Korrektur überprüft, indem hierzu wieder die Kontrollbits der einzelnen Paritätscode-Berechnungsschemas neu berechnet und anschließend die Syndrome und Syndromvektoren neu ermittelt werden. Sind diese neu berechneten Syndrome nicht alle gleich null, so liegt weiterhin ein Fehler vor, so dass die Korrektur ungültig ist. In diesem Fall wird ein nicht korrigierbarer Mehrbitfehler angezeigt.
  • B) Mehrbitfehlererkennung und 1/2 Bit Fehlerkorrektur
  • Aufgrund der Vorgabe, dass die vorliegende Codebitsequenz einen Hamming-Abstand von fünf aufweist, sind auch zwei Bitfehler korrigierbar. Sollen auch zwei Bitfehler in einer technischen Realisierung korrigiert werden können, so sind die oben genannten Fallunterscheidungen für die 1 Bit Fehlerkorrektur grundsätzlich gültig, bis auf den vierten Fall.
  • Sind die neu berechneten Syndrome nach der Korrektur gleich null, wird die Korrektur als richtig gewertet und mit dem Ergebnis der anderen Korrektur (2-Bit Korrektur s. u.) logisch verknüpft. So konnte die Korrektur vollständig durchgeführt werden, wenn entweder die 1 Bit Korrektur erfolgreich war und die 2 Bit Korrektur fehlgeschlagen ist oder die 1 Bit Korrektur nicht erfolgreich war aber die 2 Bit Korrektur.
  • Zeigen beide Korrekturen einen Erfolg oder beide einen Nichterfolg, liegt ein Mehrbitfehler mit mindestens drei fehlerhaften Bits vor.
  • Die 2 Bit Fehlerkorrektur wird dabei parallel zu der 1 Bit Fehlerkorrektur durchgeführt, wobei ein 2 Bit Fehler im gesamten, nicht erweiterten Code (keine Gesamtparität) dann vorliegt, wenn sowohl der erste Syndromvektor als auch der zweite Syndromvektor ungleich null ist. Hierfür kann folgender Korrekturalgorithmus angegeben werden:
    Wie bereits zuvor geschrieben, wird für jede mögliche 2 Bit Fehlerkombination eine Korrekturvorschrift angegeben, mit der dies behoben werden kann. Wie bereits oben dargelegt, kann diese Korrekturvorschrift entsprechend berechnet werden.
  • Wird erkannt, dass sowohl der erste Syndromvektor als auch der zweite Syndromvektor ungleich null sind, so wird die entsprechende Korrekturvorschrift gemäß dem Syndromvektor angewendet und hinterher überprüft, ob diese Korrektur zu einem richtigen Ergebnis geführt hat oder nicht.
  • In einem Spezialfall ist im gesamten, nicht erweiterten Code (also ohne Gesamtparität) ein 1 Bit Fehler enthalten, wobei zusätzlich das Gesamtparitätsbit (drittes Kontrollbit) invertiert ist. Ein derartiger Fehler wird ebenfalls dadurch gekennzeichnet, dass der erste und der zweite Syndromvektor ungleich null und der dritte Syndromvektor gleich null sind. Allerdings kann dieser Spezialfall dadurch behoben werden, dass eine 1 Bit Fehlerkorrektur durchgeführt wird und das Gesamtparitätsbit lediglich invertiert wird.
  • Die nachfolgende Tabelle zeigt eine derartige Korrekturvorschrift, die je nach den Syndromvektoren, die aufgefunden wurden, für die 2 Bit Fehlerkorrektur angewendet werden kann. Die Tabelle ist nicht abschließend und soll nur beispielhaft als Auszug dienen:
    2. Syndromvektor 1. Syndromvektor Korrekturmaske
    0x03 0x00 0x0006
    0x02 0x04 0x000a
    0x05 0x00 0x0012
    0x04 0x09 0x0022
    0x07 0x0c 0x0042
    0x06 0x01 0x0082
    0x09 0x00 0x0102
    0x08 0x0a 0x0202
    0x0b 0x02 0x0402
    0x0a 0x07 0x0802
    0x0d 0x01 0x1002
    ...
  • Die 2 Bit Fehlerkorrektur kann schließlich auch auf eine drei und mehrere Fehlerbitkorrekturen erweitert werden, wenn hierfür entsprechend höhere Hamming-Abstände für die Berechnung des Paritätscodes herangezogen werden.

Claims (15)

  1. Verfahren zum Erzeugen einer Codebitsequenz mit einem vorgegebenen Hamming-Abstand größer als 4 basierend auf einer Datenbitsequenz durch Hinzufügen von auf den Nutzdatenbits der Datenbitsequenz basierenden Kontrollbits zu der Datenbitsequenz, gekennzeichnet durch die mittels einer mikroprozessorgesteuerten Rechenanlage ausführbaren Schritte: a) Bereitstellen einer Datenbitsequenz, die eine Mehrzahl von vorgegebenen Nutzdatenbits aufweist, welche die zu codierenden binären Nutzdaten enthalten, b) Bereitstellen eines ersten Paritätscode-Berechnungsschemas, das eine oder mehrere erste Kontrollbits aufweist, die jeweils gemäß dem ersten Paritätscode-Berechnungsschema aus Bitwerten eines jeweils vorgegebenen Teils von Bits der zugrundeliegenden Bitsequenz berechnet werden, wobei das erste Paritätscode-Berechnungsschema nicht einem Hamming-Codes entspricht, c) Bereitstellen eines zweiten Paritätscode-Berechnungsschemas, das einem Hamming-Code mit einem vorgegebenen Hamming-Abstand, der kleiner ist als der Hamming-Abstand der zu erzeugenden Codebitsequenz insgesamt, entspricht und das ein oder mehrere zweite Kontrollbits aufweist, die jeweils gemäß dem Hamming-Code-Berechnungsschema des zweiten Paritätscode-Berechnungsschemas aus Bitwerten eines jeweils vorgegebenen Teils von Bits der zugrundeliegenden Bitsequenz berechnet werden, d) Erzeugen einer ersten Paritätscode-Bitsequenz, indem basierend auf der bereitgestellten Datenbitsequenz gemäß dem ersten Paritätscode-Berechnungsschema die ersten Kontrollbits berechnet und die berechneten ersten Kontrollbits der bereitgestellten Datenbitsequenz hinzugefügt werden, und e) Erzeugen einer zweiten Paritätscode-Bitsequenz als zu erzeugende Codebitsequenz, indem basierend auf der zuvor berechneten ersten Paritätscode-Bitsequenz gemäß dem zweiten Paritätscode-Berechnungsschema die zweiten Kontrollbits berechnet und die berechneten zweiten Kontrollbits der ersten Paritätscode-Bitsequenz hinzugefügt werden.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die zu erzeugende Codebitsequenz einen geraden Hamming-Abstand hat und ein drittes Paritätscode-Berechnungsschema bereitgestellt wird, das ein drittes Kontrollbit aufweist, das gemäß dem dritten Paritätscode-Berechnungsschema als Gesamtparität aus den Bitwerten aller Bits der zugrundeliegenden Bitsequenz berechnet wird, wobei eine dritte Paritätscode-Bitsequenz als die zu erzeugende Codebitsequenz anstelle der zweiten Paritätscode-Bitsequenz erzeugt wird, indem basierend auf der zuvor berechneten zweiten Paritätscode-Bitsequenz gemäß dem dritten Paritätscode-Berechnungsschema das dritte Kontrollbit berechnet und das berechnete dritte Kontrollbit der zweiten Paritätscode-Bitsequenz hinzugefügt wird.
  3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass zumindest ein Teil der ersten Kontrollbits an den Anfang oder das Ende der Datenbitsequenz angefügt und/oder dass zumindest ein Teil der ersten Kontrollbits innerhalb der Datenbitsequenz eingefügt wird, um die erste Paritätscode-Bitsequenz zu erhalten.
  4. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass zuvor ein Berechnungsschema des ersten Paritätscode-Berechnungsschema ermittelt wird durch die Schritte: – Berechnen einer Vielzahl von möglichen Berechnungsschemas für das erste Paritätscode-Berechnungsschema mit vorgegebener Anzahl von Kontrollbits, indem für jedes Kontrollbit verschiedene mögliche Kombinationen von Bits der zugrundeliegenden Bitsequenz, anhand derer Bitwerte das jeweilige Kontrollbit berechnet wird, ermittelt werden, – Für jedes erste Paritätscode-Berechnungsschema aus der Vielzahl von möglichen Berechnungsschemas: – Berechnen der ersten Kontrollbits basierend auf dem jeweiligen ersten Paritätscode-Berechnungsschema und Berechnen der zweiten Kontrollbits basierend auf dem zweiten Paritätscode-Berechnungsschema für jede mögliche Kombination von Bitwerten der Bits der zugrundeliegenden Datenbitsequenz, – Für jede Kombination von Bitwerten der Datenbitsequenz: Vergleichen der berechneten Kontrollbits der jeweiligen Kombination von Bitwerten mit den Kontrollbits aller übrigen möglichen Kombination von Bitwerten und Bestimmen der minimalen Anzahl von unterschiedlichen Bits zwischen den jeweils verglichenen Kontrollbits der möglichen Kombination von Bitwerten, und – Auswählen eines Berechnungsschemas als das zu ermittelnde ersten Paritätscode-Berechnungsschemas, dessen minimale Anzahl von unterschiedlichen Bits größer oder gleich dem vorgegebenen Hamming-Abstand der zu erzeugenden Codebitsequenz sind.
  5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass die möglichen Berechnungsschemas für das erste Paritätscode-Berechnungsschema berechnet werden, indem für jedes Kontrollbit jede mögliche Kombination von Bits der zugrundeliegenden Bitsequenz, anhand derer Bitwerte das jeweilige Kontrollbit berechnet wird, ermittelt wird.
  6. Verfahren nach Anspruch 4 oder 5, dadurch gekennzeichnet, dass bei Feststellung, dass keine minimale Anzahl von unterschiedlichen Bits größer oder gleich dem vorgegebenen Hamming-Abstand der zu erzeugenden Codebitsequenz ist, die vorgegebene Anzahl von Kontrollbits um eins erhöht und das Verfahren gemäß Anspruch 4 mit der um eins erhöhten Anzahl von Kontrollbits wiederholt wird.
  7. Verfahren zum Erkennen eines Bitfehlers in einer aus mehreren Bits bestehenden Bitsequenz, gekennzeichnet durch die mittels einer mikroprozessorgesteuerten Rechenanlage ausführbaren Schritte: a) Bereitstellen einer Codebitsequenz, die basierend auf einer eine Mehrzahl von Nutzdatenbits enthaltenen ursprünglichen Datenbitsequenz gemäß dem Verfahren nach einem der Ansprüche 1 bis 6 erzeugt wurde, b) Extrahieren der Datenbitsequenz, der ersten Kontrollbits und der zweiten Kontrollbits aus der bereitgestellten Codebitsequenz, c) Neuberechnen von ersten Kontrollbits und Neuberechnen von zweiten Kontrollbits basierend auf der extrahierten Datenbitsequenz in gleicher Weise, wie die extrahierten Kontrollbits der bereitgestellten Codebitsequenz basierend auf der ursprünglichen Datenbitsequenz gemäß dem Verfahren nach einem der Ansprüche 1 bis 6 erzeugt wurden, und d) Erkennen eines Bitfehlers eines oder mehrerer Bits in der bereitgestellten Codebitsequenz durch Vergleich der extrahierten ersten Kontrollbits mit den neuberechneten ersten Kontrollbits und Vergleich der extrahierten zweiten Kontrollbits mit den neuberechneten zweiten Kontrollbits.
  8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass die bereitgestellte Codebitsequenz gemäß dem Verfahren nach Anspruch 2 erzeugt wurde, wobei das dritte Kontrollbit aus der bereitgestellten Codebitsequenz extrahiert, ein drittes Kontrollbit basierend auf der bereitgestellten Codebitsequenz ohne drittes Kontrollbit in gleicher Weise, wie das extrahierte dritte Kontrollbit der bereitgestellten Codebitsequenz gemäß dem Verfahren nach Anspruch 2 erzeugt wurde, neuberechnet und das extrahierte dritte Kontrollbit mit dem neuberechneten dritten Kontrollbit zum Erkennen von Bitfehlern verglichen wird.
  9. Verfahren nach Anspruch 7 oder 8, dadurch gekennzeichnet, dass bei Erkennen eines Bitfehlers eines oder mehrerer Bits das oder die fehlerhaften Bits in der bereitgestellten Codebitsequenz in Abhängigkeit von dem Vergleich der Kontrollbits ermittelt und korrigiert werden.
  10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass nach der Korrektur des Bitfehlers die korrigierte Codebitsequenz überprüft wird, indem das Verfahren gemäß Anspruch 7 oder 8 mit der korrigierten Codebitsequenz als die in Schritt a) des Anspruchs 7 bereitgestellte Codebitsequenz durchgeführt wird, wobei bei Erkennen eines Bitfehlers in der korrigierten Codebitsequenz die Korrektur des Bitfehlers verworfen wird.
  11. Verfahren nach Anspruch 9 oder 10, dadurch gekennzeichnet, dass für eine vorgegebene Anzahl von fehlerhaften Bits in einer Codebitsequenz mit vorgegebener Bitlänge für jede mögliche Fehlerkombination der vorgegebenen Anzahl von fehlerhaften Bits eine der jeweiligen Fehlerkombination zugeordneten Korrekturvorschrift bereitgestellt wird, wobei in Abhängigkeit von dem in Schritt d) durchgeführten Vergleiches der Kontrollbits die konkrete Fehlerkombination eines Bitfehlers in der Codebitsequenz ermittelt und basierend auf der konkreten Fehlerkombination dann die der Fehlerkombination zugeordneten Korrekturvorschrift aus den bereitgestellten Korrekturvorschriften ermittelt und der erkannte Bitfehler in der Codebitsequenz dann unter Anwendung der ermittelten Korrekturvorschrift korrigiert wird.
  12. Computerprogramm mit Programmcodemitteln, insbesondere auf einem maschinenlesbaren Träger gespeichert, eingerichtet zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 6 und/oder nach einem der Ansprüche 7 bis 11, wenn das Computerprogramm auf einer Datenverarbeitungsanlage ausgeführt wird.
  13. Halbleiterschaltung, eingerichtet zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 6 und/oder nach einem der Ansprüche 7 bis 11.
  14. Computersystem mit einem Mikroprozessor und einer mit dem Mikroprozessor verbundenen digitalen Speichereinheit, dadurch gekennzeichnet, dass das Computersystem mittels des Mikroprozessors zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 6 und/oder nach einem der Ansprüche 7 bis 11 eingerichtet ist.
  15. Computersystem nach Anspruch 14, dadurch gekennzeichnet, dass das Computersystem zum Erzeugen einer Codebitsequenz basierend auf einer Datenbitsequenz gemäß dem Verfahren nach einem der Ansprüche 1 bis 6 und zum Hinterlegen der Codebitsequenz in der digitalen Speichereinheit eingerichtet ist, wobei beim Auslesen der Codebitsequenz aus der digitalen Speichereinheit in den Mikroprozessor das Computersystem zum Erkennen eines Bitfehlers in der Codebitsequenz gemäß dem Verfahren nach einem der Ansprüche 7 bis 11 ausgebildet ist.
DE102015112554.4A 2015-07-30 2015-07-30 Verfahren und Vorrichtung zum Erzeugen einer Codebitsequenz sowie zum Erkennen von Bitfehlern Expired - Fee Related DE102015112554B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102015112554.4A DE102015112554B4 (de) 2015-07-30 2015-07-30 Verfahren und Vorrichtung zum Erzeugen einer Codebitsequenz sowie zum Erkennen von Bitfehlern

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102015112554.4A DE102015112554B4 (de) 2015-07-30 2015-07-30 Verfahren und Vorrichtung zum Erzeugen einer Codebitsequenz sowie zum Erkennen von Bitfehlern

Publications (2)

Publication Number Publication Date
DE102015112554A1 true DE102015112554A1 (de) 2017-02-02
DE102015112554B4 DE102015112554B4 (de) 2017-10-26

Family

ID=57795293

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015112554.4A Expired - Fee Related DE102015112554B4 (de) 2015-07-30 2015-07-30 Verfahren und Vorrichtung zum Erzeugen einer Codebitsequenz sowie zum Erkennen von Bitfehlern

Country Status (1)

Country Link
DE (1) DE102015112554B4 (de)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5206864A (en) * 1990-12-04 1993-04-27 Motorola Inc. Concatenated coding method and apparatus with errors and erasures decoding
DE69619372T2 (de) * 1995-06-05 2002-07-11 Fujitsu Ltd Fehlererkennungs- und fehlerkorrekturverfahren
EP0908025B1 (de) * 1996-06-25 2003-04-02 Ericsson Inc. Verfahren zum aufbau einer nebeninformation in gegenwart eines zeitselektiven fadings

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5206864A (en) * 1990-12-04 1993-04-27 Motorola Inc. Concatenated coding method and apparatus with errors and erasures decoding
DE69619372T2 (de) * 1995-06-05 2002-07-11 Fujitsu Ltd Fehlererkennungs- und fehlerkorrekturverfahren
EP0908025B1 (de) * 1996-06-25 2003-04-02 Ericsson Inc. Verfahren zum aufbau einer nebeninformation in gegenwart eines zeitselektiven fadings

Also Published As

Publication number Publication date
DE102015112554B4 (de) 2017-10-26

Similar Documents

Publication Publication Date Title
DE102011085602B4 (de) Vorrichtung und Verfahren zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz
DE2657826A1 (de) Einrichtung zur fehlererkennung und fehlerkorrektur im speichersystem einer dv-anlage
DE102017103347B4 (de) Verarbeitung von daten in speicherzellen eines speichers
DE2060643B2 (de) Schaltungsanordnung zur Korrektur von Einzelfehlern
DE2914515A1 (de) Verfahren und vorrichtung fuer ein wirksames fehlerentdeckungs- und korrektursystem
DE10238841B4 (de) Parallelverarbeitung der Decodierung und der zyklischen Redundanzüberprüfung beim Empfang von Mobilfunksignalen
DE112016003638T5 (de) Auf eine Decodierung folgende Fehlerprüfung mit Diagnose für Produktcodes
DE102011087634B4 (de) Vorrichtung und verfahren zum erfassen eines fehlers in einem codierten binärwort
DE102005022107B9 (de) Vorrichtung und Verfahren zum Bestimmen einer Position eines Bitfehlers in einer Bitfolge
DE4105860C2 (de) Schaltungsanordnung zum Erkennen und Korrigieren von Fehlern in Datenworten
DE102010035210A1 (de) Verfahren zur Rückgewinnung verlorener Daten und zur Korrektur korrumpierter Daten
DE2217935A1 (de) Anordnung und Verfahren zur Korrektur von Doppelfehlern
DE102014215252A1 (de) Wirksame fehlerkorrektur von mehrbitfehlern
DE102017216264B4 (de) Decodierverfahren
DE102011087457A1 (de) Vorrichtung und verfahren zum erfassen eines fehlers in einer mehrzahl von codierten binärwörtern, die durch einen fehlerkorrekturcode codiert sind
DE102013109315A1 (de) Verfahren und Datenverarbeitungseinrichtung zum Rekonstruieren eines Vektors
DE102013219088B9 (de) Schaltungsanordnung und Verfahren zur Realisierung von Prüfbitkompaktierung für Cross-Parity-Codes
DE102015112554B4 (de) Verfahren und Vorrichtung zum Erzeugen einer Codebitsequenz sowie zum Erkennen von Bitfehlern
DE102021109391B3 (de) Multibytefehler-Erkennung
EP1856611B1 (de) Verfahren zur datensicherung und gerät zu dessen ausführung
DE102019113970B4 (de) Erkennung von adressfehlern
DE102015111729B4 (de) Verfahren und decoder zum bestimmen eines fehlervektors für ein datenwort gemäss einem reed-muller-code
DE102013201422B3 (de) Verfahren zum Wiederherstellen verlorengegangener und/ oder beschädigter Daten
EP2654209B1 (de) Verfahren und Vorrichtung zur Ermittlung einer Bitfehlerrate bei seriell verkettten LDPC und Blockkodes
DE102013112020B4 (de) Verfahren und Vorrichtung zum Erkennen von Bitfehlern

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: GRAMM, LINS & PARTNER PATENT- UND RECHTSANWAEL, DE

R082 Change of representative

Representative=s name: GRAMM, LINS & PARTNER PATENT- UND RECHTSANWAEL, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee