DE102005018248B4 - Prüfverfahren zur sicheren, beschleunigten Erkennung von Datenfehlern und Vorrichtung zur Durchführung des Prüfverfahrens - Google Patents

Prüfverfahren zur sicheren, beschleunigten Erkennung von Datenfehlern und Vorrichtung zur Durchführung des Prüfverfahrens Download PDF

Info

Publication number
DE102005018248B4
DE102005018248B4 DE102005018248.8A DE102005018248A DE102005018248B4 DE 102005018248 B4 DE102005018248 B4 DE 102005018248B4 DE 102005018248 A DE102005018248 A DE 102005018248A DE 102005018248 B4 DE102005018248 B4 DE 102005018248B4
Authority
DE
Germany
Prior art keywords
checksum
data
matrix
binary
test method
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE102005018248.8A
Other languages
English (en)
Other versions
DE102005018248A1 (de
Inventor
Kamal Merchant
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.)
Deutsche Gesetzliche Unfallversicherung eV
Original Assignee
GESETZLICHE UNFALLVERSICHERUNG E V DGUV DEUTSCHE
Deutsche Gesetzliche Unfallversicherung eV
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 GESETZLICHE UNFALLVERSICHERUNG E V DGUV DEUTSCHE, Deutsche Gesetzliche Unfallversicherung eV filed Critical GESETZLICHE UNFALLVERSICHERUNG E V DGUV DEUTSCHE
Priority to DE102005018248.8A priority Critical patent/DE102005018248B4/de
Publication of DE102005018248A1 publication Critical patent/DE102005018248A1/de
Application granted granted Critical
Publication of DE102005018248B4 publication Critical patent/DE102005018248B4/de
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • 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/65Purpose and implementation aspects
    • H03M13/6575Implementations based on combinatorial logic, e.g. Boolean circuits

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

Prüfverfahren zur sicheren, beschleunigten Erkennung von Datenfehlern in einem Datenblock, bestehend aus binären Nutzdaten und einer durch einen Generator erzeugten binären Prüfsumme, dadurch gekennzeichnet, dass die Prüfsummengenerierung durch Matrixmultiplikation der binären Nutzdaten mit einer Fehlermatrix, die durch den Prüfsummengenerator erzeugt wird, erfolgt, wobei in der Fehlermatrix das Bit am Beginn der ersten Zeile den Wert 1 aufweist, gefolgt von Bits mit dem Wert 0 und dass jede darauf folgende Zeile durch das Schieberegister gemäß seiner linearen Rückkoppelungen aus den Bits der vorherigen Zeile berechnet wird.

Description

  • Die Erfindung betrifft ein Prüfverfahren zur sicheren, beschleunigten Erkennung von Datenfehlern unter Verwendung von Mitteln zur Prüfsummengenerierung in Form einer binären Fehlermatrix sowie eine Vorrichtung zur Durchführung des Verfahrens, bestehend aus matrixartig verschalteten UND-Gattern.
  • Verfahren zur Bestimmung einer Restfehlerwahrscheinlichkeit bei der Übertragung von Daten sind in vielfältiger Weise bekannt. Hierzu gehört das Patent DE 10253949 B3 von K. Merchant vom 19. November 2002, welches ein System zur Reduzierung der Restfehlerwahrscheinlichkeit bei der Übertragung von Daten beschreibt. Das bekannte Verfahren, das bereits eine Reduzierung der Restfehlerwahrscheinlichkeit mit angemessenem Aufwand auf einen beliebig kleinen Wert erlaubt, soll durch erhöhte Anpassungsfähigkeit an wechselnde Betriebsbedingungen ergänzt werden. Für Schaltungen, die die Sicherheit bzw. Betriebssicherheit eines Systems oder einer Anlage überwachen und somit gewährleisten sollen, gelten folgende Anforderungen:
    • – sichere Datenspeicherung (Überwachung der Daten auf bit-Fehler)
    • – hohe Taktrate (schnelle Datenverarbeitung)
    • – einfaches, wartungsarmes Design (geringe Störanfälligkeit)
  • US 6,763,492 B1 offenbart ein Verfahren und ein System zur effizienten Codierung von linearen Blockcodes, welches eine Nachschlagtabelle mit einem Satz von Impulsantworten verwendet, um eine höhere Leistung durch eine parallele Codierung zu erreichen.
  • Bit-Fehler werden standardmäßig durch Prüfsummentests detektiert und korrigiert (vgl. 1): Für jedes Datenpaket d (mit d = Anzahl der Informationsbits) wird bitweise durch ein LFSR (linear rückgekoppeltes Schieberegister) eine Prüfsumme CRC (mit CRC = Anzahl der Prüfbits) erstellt. Diese Prüfsumme entspricht einem Divisionsrest. Datenpaket d und Prüfsumme CRC werden bei der Überprüfung als gemeinsames Datenpaket ausgelesen und erneut mittels des gleichen LFSR verarbeitet. Der hinzugefügte Divisionsrest macht das Datenpaket nun zu einem ganzen Vielfachen und der nun ermittelte Divisionsrest ist damit CRC = 0. in der Kommunikationstechnik haben sich mehrere LFSR mit gut erforschten Eigenschaften etabliert (z. B. CRC-CCITT, CRC-Ethernet oder primitive Polynome des Typs CRC-16). Die bitweise Verarbeitung des Datenblocks d ist jedoch langsam und somit ein Nachteil. in der DE 198 38 865 wird ein Verfahren zur Konstruktion von parallelisierten Schaltungen zur Prüfsummenerzeugung offenbart, die die entsprechenden Prüfsummen erheblich schneller berechnen können. Wie in der US 5,103,451 wird eine einem bestimmten Schieberegister entsprechende, optimierte Anordnung von XOR-Gattern verwendet. XOR-Gatter sind im Vergleich zu UND-Gattern komplexer aufgebaut und führen so zu aufwendigeren Schaltungen und erhöhter Störanfälligkeit. Ein Wechsel des Schieberegisters ist mit diesen spezifisch optimierten Schaltungen nicht möglich.
  • Um die Datensicherheit in sensiblen Bereichen passend erhöhen zu können (z. B. Datenspeicher, der zeitweise radioaktiver Strahlung ausgesetzt ist), ist ein Wechsel des Schieberegisters wünschenswert. Die vorliegende Erfindung betrifft daher ein Verfahren zur beschleunigten Berechnung von LFSR-Prüfsummen, das das situationsabhängige Anpassen der Datensicherheit erlaubt, sowie ein Verfahren zur Konstruktion einer entsprechenden Schaltung aus weniger störanfälligen UND-Gattern.
  • Diese Aufgabe wird erfindungsgemäß durch ein Prüfverfahren zur sicheren Erkennung von Datenfehlern unter Verwendung von Mitteln zur Prüfsummengenerierung in Form einer Fehlermatrix gemäß Anspruch 1 gelöst. Eine Vorrichtung zur Durchführung des Verfahrens mittels einer entsprechenden Schaltung aus UND-Gattern gemäß der vorliegenden Erfindung ist in Ansprüchen 7, 8 und 10 angegeben.
  • Als Kriterium zur Bewertung von Datensicherheit wird die sogenannte Hamming-Distanz HD verwendet. Diese entspricht der Anzahl bits eines Datenblocks, die mindestens verfälscht werden müssen, um einen nicht mehr erkennbaren Fehler zu erzeugen (Datenfälschung). Die Hamming-Distanz ist dabei abhängig von der Gesamtlänge des Datenblocks (Nutzdatenbits + bits der Prüfsumme) und von der Art der Verschaltung des Schieberegisters, das die Prüfsumme CRC erzeugt. Im Folgenden wird die Erfindung am Beispiel von LFSR-Prüfsummengeneratoren, bei denen die Ausgänge des Schieberegisters selektiv auf den Eingang über ein EX-OR rückgekoppelt werden, erläutert (vgl. 4): Das Schieberegister durchläuft eine Anzahl von insgesamt ZL Zyklen, bevor sich die durch das Register generierten Werte wiederholen. Damit z. B. ein 1-bit-Fehler korrigiert werden kann, muss die Anzahl bits des insgesamt übertragenen Datenblocks D kleiner oder gleich ZL sein (vgl. 2):
    Die Breite des Datenblocks D sei gleich ZL. Ein Datenpaket D wird ausgelesen und mittels eines LFSR überprüft. Wenn die Prüfsumme CRC einem von 0 verschiedenen Wert Xy entspricht, liegt ein Übertragungs- bzw. Lesefehler vor. Bei HD ≥ 3 ist es möglich, den zugehörigen Fehler Ey über die Menge aller Prüfsummen zu ermitteln. Die Menge aller Prüfsummen wird dazu durchsucht und Xy erfasst. Da mit HD ≥ 3 jede Prüfsumme umkehrbar eindeutig mit einem Fehler E verknüpft ist, kann nun der Fehler Ey über Xy ermittelt und die Korrektur durchgeführt werden.
  • Da die Menge der 1-bit-Fehler über die Fehlerprüfsumme umkehrbar eindeutig mit der fehlerhaften Bitposition des Datenblocks D verknüpft sind, sind umgekehrt auch die Prüfsummen über die in einer Fehlermatrix FM erfassten Fehlerprüfsummen bestimmbar. Die Fehlermatrix wird mittels des Prüfsummengenerators aus einem Prüfsummenstartwert entwickelt und spiegelt die mathematischen Eigenschaften des Generators wieder. Dieses sind die Voraussetzungen für die Durchführung des erfindungsgemäßen Verfahrens, in dem die Fehlermatrix FM durch Matrixmultiplikation mit den Nutzdatenbits die Funktion des LFSR als Prüfsummengenerator übernimmt. Die Anordnung der Prüfsummen in Matrixform gestattet die Konstruktion einer schnellen, parallelisierten Schaltung. Die Matrixmultiplikation kann mittels dieses matrixartigen Schaltungsnetzes mit UND-Gattern an den Positionen der bits mit dem Wert 1 durchgeführt werden. Dadurch wird die Prüfsumme nicht mehr bitweise sondern im Idealfall Datenblockweise gebildet. Dies bildet den Grundgedanken der vorliegenden Erfindung.
  • Zunächst soll ein Beispiel des erfindungsgemäßen Prüfverfahrens in prinzipieller Art anhand der folgenden Überlegungen hergeleitet werden:
    • 1. Konstruktion einer Fehlermatrix
    • 2. Definition der verwendeten Begriffe
    • 3. verfahrensgemäße Prüfung eines Datenpakets
    • 4. Struktur und Eigenschaften der Fehlermatrix
  • 1. Konstruktion der Fehlermatrix FM (vgl. Fig. 3):
  • Beginnend mit dem Startwert X1 = 11, 02, 03, .... 0CRC (binär; erstes bit = 1, gefolgt von Nullen; die Zeilen weisen eine Breite gleich der Bit-Breite der Prüfsumme auf) erzeugt das LFSR aus diesem Startwert ZL-1 weitere Prüfsummen. Die bits erfahren dabei in jeder nachfolgenden Zeile eine Rechtsverschiebung: Das erste Bit der nächsten Zeile wird jeweils aus den rückgekoppelten bits der vorherigen Zeile berechnet und eingefügt.
  • 2. Definition der verwendeten Begriffe:
    • CRC
      = Prüfsumme (dual)
      n
      = Länge der Prüfsumme CRC
      ZL
      = Zyklus-Länge = Anzahl der verschiedenen, möglichen Prüfsummen für E
      FM
      = Fehlermatrix = ZL Zeilen und n Spalten (jedes Element ein bit)
      HD
      = Hamming-Distanz
      m
      = Anzahl der veränderten bits
      D
      = Daten (dual) = d (Informationsbits; dual) + CRC (Prüfsumme; dual)
      CD
      = ,corrupted data' = veränderte Daten (dual)
      E
      = 1-bit-Fehler (dual; Länge = D; wird modulo 2 auf D addiert; das ,falsche' bit ist hier 1)
      N
      = Blocklänge des gesamten Datenpakets in bits D = (d + CRC)
  • 3. verfahrensgemäße Prüfung eines Datenpakets
  • Es sei: N = (CRC + d) = ZL
  • Damit gilt hier: HD = 3 (für N ≤ ZL ist HD ≥ 3)
  • Jedem 1-bit-Fehler kann umkehrbar eine Prüfsumme zugeordnet werden.
  • Umkehrung:
  • Jedes CRC kann über 1-bit-Operationen in der FM erhalten werden.
    CD = D + E (modulo 2) und CRCFM (1, n) = CD(1, d)·FM(d, n)
    CRC-Bildung: CRCFM (1, n) = CD(1, d)·FM(d, n)
    CRC-Überprüfung: CRCFM XOR CRC = 0 = data is valid
  • Mit der Gleichung CRC-Bildung lässt sich CRC von Nutzdaten blockweise über die Fehlermatrix bestimmen (Matrixmultiplikation) – daher der Index FM. Diese Prüfsumme CRCFM XOR-verknüpft mit der angehängten Prüfsumme CRC, muss bei Datenintegrität 0 ergeben, es sei denn, m ≥ HD.
  • 4. Struktur und Eigenschaften der FM
  • Da die Bitmuster hier mit jedem Zeilensprung eine Rechtsverschiebung erfahren, lässt sich eine FM bei bekannter erster Spalte und bekannter erster Zeile vollständig entwickeln. Bei Verwendung von programmierbaren Schaltkreisen (d. h. schaltbare UND-Gatter) kann so mit geringem Mehraufwand schnell von einem LFSR auf ein anderes LFSR umgeschaltet werden. Zur Berechnung der Prüfsumme eines Nutzdatenblocks d werden nur die ersten d Zeilen der FM benötigt. Die weiteren Zeilen sind zur Prüfsummenbestimmung nicht notwendig.
  • 5. Konstruktion einer erfindungsgemäßen Schaltung (vgl. Fig. 3)
  • Die Anordnung der auf 1 stehenden bits in der FM entspricht der Anordnung von UND-Gattern in der matrixartig aufgebauten Schaltung. Die zu verarbeitenden Daten werden seitlich eingeschoben (big Endian; most significant bit = MSB = Zeile 1; Least significant bit = LSB = Zeile ZL (bei Verarbeitung des Datenpakets D)). Werden nur die Nutzdaten d verarbeitet, so werden nur die ersten d Zeilen der FM zur Konstruktion der Schaltung verwendet. Alternativ kann der Aufwand an Schaltelementen dadurch reduziert werden (geringere Störanfälligkeit), dass die FM in Teilabschnitten einer programmierbaren Schaltung mit geringerer Zeilenzahl zugeführt wird und die Prüfsumme durch Aufsummieren der Teilergebnisse erhalten wird. Wird HD nicht durch LFSR-Variation geändert, so kann eine fest verdrahtete, parallelisierte Verarbeitungsmatrix aus einfachen und damit weniger störanfälligen UND-Gattern verwendet werden.
  • Auf diese Art und Weise macht die Fehlermatrix FM die beschleunigte, parallelisierte CRC-Erzeugung zugänglich. Geschwindigkeit und Gatteraufwand können mit programmierbaren Schaltungen individuell gegeneinander abgewogen werden (Verkleinern der Schaltung durch Teilen der FM in Teilabschnitte s. o.). Fest verdrahtete Schaltungen mit UND-Gattern bieten bei konstanter Blocklänge den Vorteil eines einfacheren Designs (reduzierte Störanfälligkeit) und ermöglichen dennoch eine hohe Verarbeitungsgeschwindigkeit.
  • 6. Beispiele
  • Die folgenden Beispiele aus der Praxis sollen das erfindungsgemäße Prüfverfahren verdeutlichen:
    • – Die Blockweise Decodierung der Nutzdaten
    • – Die Blockweise Codierung der Nutzdaten
    • – Online-Test einer Finite State Maschine (FSM)
  • Die zu decodierenden bzw. codierenden Daten können aus unterschiedlichen Quellen stammen. Sie können Empfangs- bzw. Sendedaten einer Übertragungseinheit sein oder aber auch Inhalt eines Arbeitsspeichers sein, der im Laufe des Betriebes ständig aktualisiert wird und so auf dem neuesten Stand gehalten wird. Der Einfachheit halber wird hier angenommen, dass die zu decodierenden Daten aus dem Arbeitsspeicher kommen und vor der Verarbeitung auf Fehler überprüft werden sollen. Umgekehrt werden die während des Betriebes verarbeiteten Daten bevor sie im Arbeitsspeicher abgelegt werden codiert. Mit der hier vorgestellten Methodik können dann die Daten bereits zum Zeitpunkt ihrer Entstehung codiert und während des nächsten Verarbeitungszeitpunktes decodiert und damit auf Fehler überprüft werden. Damit kann das Prüfverfahren beschleunigt und die Betriebssicherheit deutlich erhöht werden.
  • 6.1 Blockdecodierung
  • Die Decodierung wird gleichzeitig mit den Lesezugriffen durchgeführt. Das aus dem Arbeitsspeicher stammende Lesedatum wird gleichzeitig dem Blockdecoder zugeleitet und das Ergebnis von CRC des aktuellen Datenwortes im Zwischenspeicher des Decoders aufaddiert. Man kann nach dem letzten Lesezugriff eines Blockes feststellen, ob ein Fehler stattgefunden hat. Am Ende der sukzessiven Addition von CRC der sämtlichen Wörter, die das Informationsteil bilden, steht im Zwischenspeicher des Decoders das CRC von Nutzdaten des Blockes. Als letztes Wort steht am Blockende das CRC von Nutzdaten (Informationsteil). Nach dem letzten Zugriff auf den Datenblock wird das gelesene Datum mit dem CRC aus dem Zwischenspeicher verglichen. Die Gleichheit des Vergleiches deutet auf Fehlerfreiheit des gelesenen Speicherinhalts hin oder es liegt ein m-Bitfehler vor, wobei m ≥ HD ist.
  • 6.2 Blockcodierung
  • Die Codierung des Datenblockes wird gleichzeitig mit den Schreibzugriffen durchgeführt. Alle Wörter des Informationsteils werden nacheinander in den Arbeitsspeicher geschrieben. Gleichzeitig mit dem Schreibzugriff wird das Datum auch an die Blockcodierung zugeleitet, die das CRC des momentanen Datenwortes bildet und im Zwischenspeicher der Blockcodierschaltung aufaddiert. Nach dem Schreiben von sämtlichen Wörtern des Informationsteils steht im Zwischenspeicher das CRC der Nutzdaten (Informationsteil). Als letztes wird nun dieses aus dem Zwischenspeicher geholt (Abwicklung per Software) und als letztes Wort des Datenblockes im Arbeitsspeicher übertragen. Der Block beinhaltet nun die codierten Daten.
  • 6.3 Implementierungsvarianten (Verschaltung)
  • Zur Implementierung bieten sich zwei Varianten an:
    • • Bei einer Implementierung mit der festen Verdrahtung werden die Rockkoppelung Rk, Blocklänge N und Länge n des Schieberegisters vordefiniert. Damit ist die Güte der Fehlererkennung (Hamming-Distanz) schon vorprogrammiert und kann nicht verändert werden.
    • • Bei einer Implementierung mit der programmierbaren Verdrahtung können die Rückkopplung, Länge n des Schieberegisters und Blocklänge N und damit die Hamming-Distanz an die Bedürfnisse der Applikation angepasst werden. Es ist sogar möglich im laufenden Betrieb einen Teil der Daten (sicherheitsrelevante Daten) mit höherer Sicherheit, d. h. mit höherer Hamming-Distanz, zu bearbeiten.
  • 6.4 Blockdecoder mit der festen Verdrahtung (Fig. 8)
  • 8 zeigt den Aufbau eines erfindungsgemäßen Blockdecoders mit der festen Verdrahtung. Vor dem Beginn der Decodierung werden 2-Bit Zähler, Zwischenspeicher, CRC-Error und 4-Bit Datenspeicher initialisiert. Initialisierung kann wahlweise per Soft- oder Hardware durchgeführt werden. Im betrachteten Fall hat FM 11 Zeilen je 4 Bits. An Stelle von jeder Eins in der FM wird jeweils ein UND-Gatter implementiert. Der rechte Eingang dieses Gatters wird fest mit VDD (Eins) verdrahtet und der linke Eingang wird jeweils mit der entsprechenden Stelle des Datenbits verbunden. Die nibbleweise gelesenen Daten werden am Ende des Lesezugriffs mit der positiven Flanke von rd_n im 4-Bit Datenspeicher übernommen. 2-Bit Zähler Z und Zwischenspeicher ZW werden ebenfalls mit der positiven Flanke von rd_n getaktet. In 4 Zugriffen werden jeweils 11 Datenbits und 4 CRC-Bits (N1–N4) nibbleweise aus dem Arbeitsspeicher gelesen. Die gelesenen Daten werden über einen Demux zur Berechnung des CRCs an FM (UND-Gatter) weitergeschaltet. Das CRC wird nibbleweise ermittelt und im Zwischenspeicher ZW aufaddiert. Nach dem letzten Lesezugriff (N4) wird das CRC aus dem Zwischenspeicher mit dem Lesedatum verglichen. Das Ergebnis CRC-Error (1 = Datenfehler) wird abhängig vom Design 1 bis 2 Takte nach diesem Zugriff im Register CE übernommen. Nun kann der Decoder zum Empfang des nächsten Blockes wieder initialisiert werden.
  • 6.5 Blockdecoder mit der programmierbaren Verdrahtung
  • 7 zeigt Aufbau eines erfindungsgemäßen Blockdecoders mit der programmierbaren Verdrahtung. Im Gegensatz zum Decoder mit der festen Verdrahtung wird hier jedes Matrixelement mit einem UND-Gatter belegt. Der rechte Eingang dieses Gatters wird dann mit dem aktuellen CRC-Bit verbunden und somit kann es nur zum CRC-Ergebnis beitragen, wenn dieses gleich Eins ist. Diese UND-Gatter werden hier dann durch ein weiteres UND-Gatter ergänzt. Dieses ist im Bild rechts versetzt unterhalb des eigentlichen UND-Gatters gezeichnet und bildet die programmierbare Rückkoppelung. Ist das Bit Rki der Rk gleich null, so wird das entsprechende CRC-Bit nicht rückgekoppelt. Das Ergebnis der Rk wird durch das EX-OR, das am linken Rand der UND-Matrix gezeichnet ist gebildet und dient als Bit MSB der nächsten Zeile von FM. Oberhalb der FM ist ein Register ME vorgesehen, das die erste Zeile des Subblocks der Länge r (Busbreite hier = 4) beinhaltet. Mit dieser ersten Zeile und den r Rückkoppelungen (EX-ORs am linken Rand der UND-Matrix, die MSB von CRC bilden) werden dann die nächsten r Zeilen von FM gebildet. Mit der positiven Flanke von rd_n steht das r-Bit Datenwort intern an den Eingängen (Signal D4) der FM. Der Decoder hat nun die volle Länge der Zugriffszeit (bis zum nächsten rd_n) zur Bildung des CRC von gelesenen Daten D4 zur Verfügung. Am Ende des nächsten Lesezugriffs wird das ermittelte CRC in ZW aufaddiert und gleichzeitig wird die erste Zeile des nächsten Subblocks (dies ist die letzte Zeile des aktuellen Subblocks) im Register ME geladen. Nun beginnt die Berechnung von CRC des nächsten Wortes. Nachfolgend wird der vollständige Ablauf des Blockdecodierung beschrieben.
  • Als erstes wird das Reg. Rk beschrieben. Das Reg. ist n-Bit breit. Wird die Länge n von CRC kleiner als r gewählt, so bleiben die r – n LSBs auf Null.
    Z. B. 1001 0111 0000 0000, n = 8, r = 16
  • Außerdem sollen die r – n LSBs vom Vergleichen maskiert werden. Es soll dafür gesorgt werden, dass die Bedingung „r ≤ n” erfüllt wird. Das optimale Ergebnis gewinnt man, wenn r = n gewählt wird. Vor dem Beginn der Decodierung werden die Reg. ZW, Datenspeicher D, ME und CE initialisiert. Initialwert ist im Block unten rechts gezeichnet. Ist die Anzahl der Informationsbits k nicht durch r teilbar, so beträgt die Anzahl der Informationsbits gleich dem Rest des Teilungsergebnisses im letzten Wort des Informationsteils. Die restlichen Bits werden durch selektive Aktivierung des Resets des Datenspeichers auf Null gehalten.
    Z. B. 1010 0000 0000 0000, k = 35, r = 16, 3-Bit Information im 3ten Wort, Rest 0
  • Nach dem letzten Blockzugriff wird das berechnete CRC aus dem Zwischenspeicher mit dem Lesedatum verglichen. Das Ergebnis CRC-Error (1 = Datenfehler) wird abhängig vom Design 1 bis 2 Takte nach diesem Zugriff im Register CE übernommen. Nun kann der Decoder zum Empfang des nächsten Blockes wieder initialisiert werden.
  • 6.6 Blockcodierung mit der festen Verdrahtung
  • 6 zeigt den Aufbau einer erfindungsgemäßen Blockcodierschaltung mit der festen Verdrahtung. Die Fehler-Matrix FM ist identisch mit dem Decoder der Schaltung mit der festen Verdrahtung (siehe 8). Die Daten werden nibbleweise (n = 4) im Arbeitsspeicher geschrieben und mit der positiven Flanke von wr_n im 4-Bit-Datenspeicher übernommen. 2-Bit Zähler Z und Zwischenspeicher ZW werden ebenfalls mit der positiven Flanke von wr_n getaktet. Vor dem Beginn der Codierung werden 2-Bit Zähler, Zwischenspeicher und 4-Bit Datenspeicher initialisiert. Initialisierung kann wahlweise per Soft- oder Hardware durchgeführt werden. In 3 Zugriffen werden 11 Datenbits nibbleweise (N1–N3) im Arbeitsspeicher geschrieben und über den Demux zur Berechnung des CRCs an FM weitergeschaltet. Das CRC wird nibbleweise ermittelt und im Zwischenspeicher ZW aufaddiert. Nach dem Beschreiben des kompletten Informationsteils (hier 3 Nibbles) ist noch ein Dummy Schreibzugriff zur Bildung des CRCs erforderlich. CRC steht nun im ZW. In den nächsten zwei Zugriffen wird CRC aus dem ZW gelesen und anschließend im Datenblock an letzter Stelle zurückgeschrieben. Die Blockcodierung ist somit beendet und nun kann mit der Codierung des nächsten Blockes begonnen werden. Der Codiervorgang braucht 2 Zyklen mehr als die Anzahl der zu codierenden Nibbles bzw. Wörter.
  • 6.7 Blockcodierung mit der programmierbaren Verdrahtung (Fig. 5)
  • Der Ablauf des Codiervorgangs ist exakt identisch mit dem der Beschreibung der festverdrahteten Schaltung (Absatz 6.6). Die Konvention ist identisch mit der Beschreibung im Absatz 6.5. Lediglich entfällt hier der CRC-Vergleicher. Die Codierschaltung beinhaltet generell keinen Vergleicher dafür aber die Tristate-Buffers zum lesen des Registers ZW. Dieses wird mit Hilfe des Signals OE_ZW gelesen. Der Codiervorgang braucht allgemein 2 Zyklen mehr als die Anzahl der zu codierenden Nibbles bzw. Wörter. Der Zusatzaufwand von 2 Zyklen fällt bei großen Datenblöcken nicht ins Gewicht. Z. B. die hier vorgeschlagene Schaltung erlaubt die Datensicherung bis zu 2048 Wörtern (2047 Wörter Informationen, 1 Wart CRC) mit Hamming-Distanz von 4 mit einem 16-Bit CCITT Polynom. Das letzte Informationswort hat nur 15-Bit Information. Bit 16 wird auf Null gesetzt.
  • 6.8 Decodierung einer FSM (Fig. 9)
  • Die Codierung bzw. Decodierung mit der festen Verdrahtung benötigt etwa die Hälfte der Anzahl der FFS gegenüber programmierbarer Verdrahtung. Die Anzahl der benötigten UND-Gatter kann aber abhängig von der Zykluslänge drastisch zunehmen, da hier jede Eins aus der FM belegt werden muss. Außerdem bietet der Ansatz keine Flexibilität und benötigt zusätzlich einen aufwendigen Demultiplexer. Dennoch hat dieses Konzept seine Berechtigung für spezielle Applikationen, wie z. B. Decodierung einer FSM.
  • Werden die einzelnen States einer FSM mit einem Polynom nten Grades codiert, so benötigt man N = t + n Bits für einen codierten State. Es stehen dann maximal 2t – 1 verschiedene States zur Verfügung. Mit einem Polynom 12ten Grades (erweiterter Golay-Code) können maximal 11-Bit Information mit einer Hamming-Distanz von 8 abgesichert werden.
    X^12 + X^10 + X^7 + X^4 + X^3 + X^2 + X + 1
  • Die Zykluslänge N beträgt hier 23. Der Decoder kann somit Online bis zu 7 Bitfehler die in einem State zufällig (durch Radioaktive Strahlung) entstehen, sofort erkennen. Somit lässt sich eine FSM mit maximal 2047 States kontinuierlich überwachen. Die Decodierung (9) von einzelnen States wird bei dieser Anwendung erheblich vereinfacht, da bei einer FSM die Daten taktsynchron entstehen und stabil anliegen. Außerdem kann der ganze Block in einem Zug ohne Blockteilung decodiert werden. Somit können die Daten direkt an die FM (UND-Gatter) zugeführt werden. Demux, Datenspeicher und sogar der 12-bit Zwischenspeicher können entfallen. Im Gegensatz zum Blockdecoder wird hier der ganze Block inklusive Prüfbits (CRC) decodiert, da die States bereits vorcodiert sind und die Blockcodierung nicht mehr benötigt wird. Die FM beinhaltet bei dieser Anwendung insgesamt N = n + d Zeilen und nicht die d Zeilen wie bei den bisher betrachteten 2 Beispielen mit der festen Verdrahtung. Die einzelnen States müssen natürlich gültige Codewörter mit CRC = 0 sein.
  • 9 zeigt eine erfindungsgemäße Ausführung einer FSM mit 4 Informationsbits (15 States) und 12 Prüfbits, die mit einem erweiterten Golay-Code die Online-Überwachung der FSM durchführt. Die Schaltung benötigt sehr wenig an Hardware (1 FF, 66 UND-Gatter, 12 EX-OR und ein OR-Gatter) und der größte Vorteil ist ihre relativ einfache Struktur, die eine fehlerfreie Implementierung erlaubt. Die Anzahl der möglichen States können bis 2047 (Informationsbits 11) problemlos erweitert werden. Dann benötigt die Schaltung anstatt 66 UND-Gatter 139 Und-Gatter, also keinen nennenswerten Mehraufwand.

Claims (10)

  1. Prüfverfahren zur sicheren, beschleunigten Erkennung von Datenfehlern in einem Datenblock, bestehend aus binären Nutzdaten und einer durch einen Generator erzeugten binären Prüfsumme, dadurch gekennzeichnet, dass die Prüfsummengenerierung durch Matrixmultiplikation der binären Nutzdaten mit einer Fehlermatrix, die durch den Prüfsummengenerator erzeugt wird, erfolgt, wobei in der Fehlermatrix das Bit am Beginn der ersten Zeile den Wert 1 aufweist, gefolgt von Bits mit dem Wert 0 und dass jede darauf folgende Zeile durch das Schieberegister gemäß seiner linearen Rückkoppelungen aus den Bits der vorherigen Zeile berechnet wird.
  2. Prüfverfahren nach Anspruch 1, dadurch gekennzeichnet, dass auf Basis der Fehlermatrix eine matrixartige Verknüpfung von UND-Elementen gebildet wird, die nach Eingabe der Nutzdaten die Prüfsumme generiert.
  3. Prüfverfahren nach Anspruch 2, dadurch gekennzeichnet, dass jedes Bit-Element der Fehlermatrix mit dem Wert ,eins' einer Zelle der matrixartigen Verknüpfung mit einem UND-Element entspricht.
  4. Prüfverfahren nach den vorhergehenden Ansprüchen, dadurch gekennzeichnet, dass die Datensicherheit durch Wechsel des Generatorpolynoms erhöht wird.
  5. Prüfverfahren nach den vorhergehenden Ansprüchen, dadurch gekennzeichnet, dass der Prüfsummengenerator in der Funktion eines Schieberegisters ausgebildet ist.
  6. Prüfverfahren nach den vorhergehenden Ansprüchen, dadurch gekennzeichnet, dass der Prüfsummengenerator in der Funktion eines linear rückgekoppelten Schieberegisters ausgebildet ist.
  7. Vorrichtung zur Durchführung eines Prüfverfahrens unter Generierung einer binären Prüfsumme aus binären Nutzdaten nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass die Vorrichtung aus einer Schaltung besteht, die matrixartig in Zeilen und Spalten angeordnete Zellen aufweist, die über Leitungen verknüpfte UND-Gatter besitzen, wobei als Bauplan eine nach Anspruch 1 erzeugte, binäre Fehlermatrix dient und in jeder Zelle, bei der das Element der Fehlermatrix den Bit-Wert von ”eins” aufweist, ein UND-Gatter eingebaut ist.
  8. Vorrichtung zur Generierung der binären Prüfsumme aus den binären Nutzdaten nach einem der Ansprüche 1–6, dadurch gekennzeichnet, dass die Vorrichtung aus einer Schaltung besteht, die matrixartig in Zeilen und Spalten angeordnete Zellen aufweist, die jeweils ein über Leitungen verknüpftes, schaltbares UND-Gatter besitzen, wobei als Bauplan eine nach Anspruch 1 erzeugte, binäre Fehlermatrix dient und in jeder Zelle, bei der das Element der Fehlermatrix den Bit-Wert von ”eins” aufweist, das UND-Gatter eingeschaltet ist.
  9. Vorrichtung zur Generierung der binären Prüfsumme aus den binären Nutzdaten nach Anspruch 8, dadurch gekennzeichnet, dass die nach der Fehlermatrix aufgebaute Schaltung aus schaltbaren UND-Gattern eine Anzahl von Zeilen besitzt, die maximal der Anzahl der Prüfbits entspricht.
  10. Vorrichtung zur Durchführung des Verfahrens nach einem der Ansprüche 1–6, dadurch gekennzeichnet, dass die matrixartige Schaltung in der ersten Zelle der ersten Zeile ein UND-Gatter aufweist, gefolgt von Zellen ohne UND-Gatter, dass jede Zeile der Schaltung genau so viele Zellen besitzt, wie eine Prüfsumme Bits enthält, wobei das Schaltmuster einer Zeile in jeder darauffolgenden Zeile um eine Zelle nach rechts verschoben ist, und dass die erste Zelle einer neuen Zeile immer dann mit einem UND-Gatter besetzt ist, wenn in der Fehlermatrix an dieser Position das Element ein Bit mit dem Wert ”Eins” besitzt.
DE102005018248.8A 2005-04-19 2005-04-19 Prüfverfahren zur sicheren, beschleunigten Erkennung von Datenfehlern und Vorrichtung zur Durchführung des Prüfverfahrens Expired - Fee Related DE102005018248B4 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102005018248.8A DE102005018248B4 (de) 2005-04-19 2005-04-19 Prüfverfahren zur sicheren, beschleunigten Erkennung von Datenfehlern und Vorrichtung zur Durchführung des Prüfverfahrens

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102005018248.8A DE102005018248B4 (de) 2005-04-19 2005-04-19 Prüfverfahren zur sicheren, beschleunigten Erkennung von Datenfehlern und Vorrichtung zur Durchführung des Prüfverfahrens

Publications (2)

Publication Number Publication Date
DE102005018248A1 DE102005018248A1 (de) 2006-10-26
DE102005018248B4 true DE102005018248B4 (de) 2014-06-12

Family

ID=37067832

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102005018248.8A Expired - Fee Related DE102005018248B4 (de) 2005-04-19 2005-04-19 Prüfverfahren zur sicheren, beschleunigten Erkennung von Datenfehlern und Vorrichtung zur Durchführung des Prüfverfahrens

Country Status (1)

Country Link
DE (1) DE102005018248B4 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE202023106573U1 (de) 2023-11-09 2024-01-26 Oculeus Gmbh Kommunikations-Netzwerk mit Datenkanal

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6763492B1 (en) * 2000-09-26 2004-07-13 Qualcomm Incorporated Method and apparatus for encoding of linear block codes

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6763492B1 (en) * 2000-09-26 2004-07-13 Qualcomm Incorporated Method and apparatus for encoding of linear block codes

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE202023106573U1 (de) 2023-11-09 2024-01-26 Oculeus Gmbh Kommunikations-Netzwerk mit Datenkanal

Also Published As

Publication number Publication date
DE102005018248A1 (de) 2006-10-26

Similar Documents

Publication Publication Date Title
DE10133595B4 (de) Pufferschaltung, Speicherzugriffsverfahren und Reed-Solomon-Decoder
DE3486200T2 (de) Verfahren und vorrichtung zur dekodierung eines fehlerverbesserungskodes.
DE102013215055B4 (de) Schaltungsanordnung, Vorrichtung, Verfahren und Computerprogramm mit modifiziertem Fehlersyndrom zur Fehlererkennung von permanenten Fehlern in Speichern
DE2916710C2 (de)
DE60117066T2 (de) Verfahren und Vorrichtung zum Überprüfen von fehlerkorrigierenden Codes
DE102005028221B4 (de) Vorrichtung und Verfahren zum Schutz der Integrität von Daten
DE102011085602B4 (de) Vorrichtung und Verfahren zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz
DE3882223T2 (de) Ausgebreitete Fehlerkorrekturvorrichtung mit Einzel-Paket-Fehlerkorrektur und Doppel-Paket-Fehlerdetektionscoden.
DE102017103347B4 (de) Verarbeitung von daten in speicherzellen eines speichers
DE102015113414B4 (de) Fehlerkorrektur unter Verwendung von WOM-Codes
DE102012208711B4 (de) Vorrichtung zum Erzeugen einer Prüfsumme
DE102006005817B4 (de) Fehlererkennungsvorrichtung für einen Adressdecoder und Vorrichtung zur Fehlererkennung für einen Adressdecoder
DE69121733T2 (de) Technik zum eingebauten Selbsttest für Nur-Lese-Speicher
DE3422461A1 (de) Decoder zum decodieren von codewoertern, die blockweise mittels eines reed-solomon-codes gegen mehrere symbolfehler je block geschuetzt sind, und leseanordnung mit einem derartigen decoder fuer optisch lesbare speicherkoerper
DE2015345B2 (de) Datenübertragungseinrichtung mit Fehlererkennung und Fehlerkorrektur
DE102012103577A1 (de) Datenspeichervorrichtung, Kodierungseinheit, Systeme selbige umfassend und Verfahren zum Auslesen von Daten
DE69317766T2 (de) Fehlerkorrekturgerät für digitale Daten zur Korrektur von Einfachfehlern (sec), von Doppelfehlern (ded) und Vielfacheinzelbytefehlern (sbd) und zur Korrektur von Einzelbytefehlern ungerader Anzahl (odd sbc)
DE102016102590B4 (de) Datenverarbeitungseinrichtungen und verfahren zum rekonstruieren eines puf-werts
DE2217935B2 (de) Anordnung und Verfahren zur Korrektur von Doppelfehlern in einer Nachricht
DE69429525T2 (de) Programmierbarer redundanz/syndromgenerator
DE102007007546A1 (de) Fehlerkorrekturcode-Striping
DE60215687T2 (de) Fehlerkorrektion von multibit-baueinheiten mit unbeschränkter erkennung von doppelfehlern
DE102016104012A1 (de) Verarbeitung eines Datenworts
EP1222545B1 (de) Verfahren und schaltungsanordnung zum speichern von datenworten in einem ram modul
DE102020110787B3 (de) Schaltung und verfahren zum kodieren oder dekodieren eines datenworts

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8127 New person/name/address of the applicant

Owner name: DEUTSCHE GESETZLICHE UNFALLVERSICHERUNG E.V. (, DE

R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R020 Patent grant now final

Effective date: 20150313

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee