DE102012208711A1 - Vorrichtung zum Erzeugen einer Prüfsumme - Google Patents

Vorrichtung zum Erzeugen einer Prüfsumme Download PDF

Info

Publication number
DE102012208711A1
DE102012208711A1 DE102012208711A DE102012208711A DE102012208711A1 DE 102012208711 A1 DE102012208711 A1 DE 102012208711A1 DE 102012208711 A DE102012208711 A DE 102012208711A DE 102012208711 A DE102012208711 A DE 102012208711A DE 102012208711 A1 DE102012208711 A1 DE 102012208711A1
Authority
DE
Germany
Prior art keywords
symbol
payload
current
symbols
combined
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
DE102012208711A
Other languages
English (en)
Other versions
DE102012208711B4 (de
Inventor
Berndt Gammel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of DE102012208711A1 publication Critical patent/DE102012208711A1/de
Application granted granted Critical
Publication of DE102012208711B4 publication Critical patent/DE102012208711B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • 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/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/091Parallel or block-wise CRC computation
    • 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/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • H03M13/095Error detection codes other than CRC and single parity bit codes

Abstract

Eine Vorrichtung erzeugt eine Prüfsumme für eine Nutzlast mit einer Anzahl von Nutzlastsymbolen. Die Vorrichtung umfasst einen Codierer zum Codieren der Nutzlast. Der Codierer ist konfiguriert, um ein aktuelles Nutzlastsymbol und ein vorhergehendes Codiersymbol oder ein Initialisierungssymbol zu kombinieren, um ein kombiniertes Symbol zu erhalten, und das kombinierte Symbol unter Verwendung einer Abbildungsregel abzubilden, um ein aktuelles Codiersymbol zu erhalten. Die Abbildungsregel basiert auf einer Zweier- oder höheren Potenz einer Begleitmatrix eines charakteristischen Polynoms eines Linearrückkopplungsschieberegisters. Die Vorrichtung ist konfiguriert, sodass die Prüfsumme dem aktuellen Codiersymbol entspricht, wenn die Anzahl von Nutzlastsymbolen durch den Codierer verarbeitet wird, wobei die Anzahl eins oder größer als eins ist.

Description

  • Die vorliegende Anmeldung bezieht sich auf eine Vorrichtung zum Erzeugen einer Prüfsumme für eine Nutzlast mit einer Anzahl von Nutzlastsymbolen und insbesondere auf einen adaptiven Hoher-Codeabstand-Prüfsummenalgorithmus und ein solches Modul.
  • Digitale Fehlererfassungsverfahren basieren auf Informationsredundanz, die allgemein kann durch einen Fehlererfassungs-(oder -korrektur-)Code beschrieben werden. Darüber hinaus wird ein Code, der in der Lage ist, eine Nutzlast mit einer variablen Anzahl von Nutzlastsymbolen, z. B. eine Mitteilung, zu verarbeiten, auch als Prüfsumme oder Prüfsummencode bezeichnet.
  • Es ist die Aufgabe der vorliegenden Erfindung, Vorrichtungen zum Erzeugen einer Prüfsumme, einen Prüfsummenprozessor, ein Verfahren zum Erzeugen einer Prüfsumme sowie ein computerlesbares digitales Speichermedium mit verbesserten Charakteristika zu schaffen.
  • Die Aufgabe wird durch die Merkmale der unabhängigen Ansprüche gelöst. Weiterbildungen finden sich in den abhängigen Ansprüchen.
  • Ausführungsbeispiele, die hierin beschrieben sind, schaffen eine Vorrichtung zum Erzeugen einer Prüfsumme für eine Nutzlast mit einer Anzahl von Nutzlastsymbolen. Die Vorrichtung umfasst einen Codierer zum Codieren der Nutzlast. Der Codierer ist konfiguriert, um ein aktuelles Nutzlastsymbol und ein vorhergehendes Codiersymbol oder ein Initialisierungssymbol zu kombinieren, um ein kombiniertes Symbol zu erhalten, und das kombinierte Symbol unter Verwendung einer Abbildungsregel abzubilden, um ein aktuelles Codiersymbol zu erhalten. Die Abbildungsregel basiert auf einer Zweier- oder höheren Potenz einer Begleitmatrix eines charakteristischen Polynoms eines Linearrückkopplungsschieberegisters. Die Vorrichtung ist konfiguriert, so dass die Prüfsumme dem aktuellen Codiersymbol entspricht, wenn die Anzahl von Nutzlastsymbolen durch den Codierer verarbeitet wird, wobei die Anzahl eins oder größer als eins ist.
  • Weitere Ausführungsbeispiele, die hierin beschrieben sind, schaffen eine Vorrichtung zum Erzeugen einer Prüfsumme für eine Nutzlast mit einer Anzahl von Nutzlastsymbolen. Die Vorrichtung umfasst einen Kombinierer, eine Abbildungseinrichtung und ein Register. Der Kombinierer ist konfiguriert, um ein aktuelles Nutzlastsymbol und ein vorhergehendes Codiersymbol oder ein Initialisierungssymbol zu kombinieren, um ein kombiniertes Symbol zu erhalten. Die Abbildungseinrichtung ist konfiguriert, um das kombinierte Symbol unter Verwendung einer Abbildungsregel abzubilden, um ein aktuelles Codiersymbol zu erhalten, wobei die Abbildungsregel auf einer Zweier- oder höheren Potenz einer Begleitmatrix eines charakteristischen Polynoms eines Linearrückkopplungsschieberegisters basiert. Das Register ist konfiguriert, um das aktuelle Codiersymbol zu speichern und das aktuelle Codiersymbol auszugeben.
  • Weitere hierin beschriebene Ausführungsbeispiele schaffen einen Prüfsummenprozessor zum Erzeugen von Prüfsummen für unterschiedliche Nutzlasten mit unterschiedlichen Anzahlen von Nutzlastsymbolen. Der Prüfsummenprozessor umfasst einen ersten Speicher, einen zweiten Speicher, eine Vorrichtung zum Erzeugen einer Prüfsumme und einen Selektor. Der erste Speicher ist konfiguriert, um eine erste Nutzlast mit einer ersten Anzahl von Nutzlastsymbolen zu speichern. Der zweite Speicher ist konfiguriert, um eine zweite Nutzlast mit einer zweiten Anzahl von Nutzlastsymbolen zu speichern, wobei die zweite Anzahl von Nutzlastsymbolen größer ist als die erste Anzahl von Nutzlastsymbolen. Die Vorrichtung zum Erzeugen einer Prüfsumme umfasst einen Codierer zum Codieren der Nutzlast und einen Eingang für das aktuelle Nutzlastsymbol. Der Codierer ist konfiguriert, um ein aktuelles Nutzlastsymbolen und ein vorhergehendes Codiersymbol oder ein Initialisierungssymbol zu kombinieren, um ein kombiniertes Symbol zu erhalten, und das kombinierte Symbol unter Verwendung einer Abbildungsregel abzubilden, um ein aktuelles Codiersymbol zu erhalten. Die Abbildungsregel basiert auf einer Zweier- oder höheren Potenz einer Begleitmatrix eines charakteristischen Polynoms eines Linearrückkopplungsschieberegisters. Der Selektor ist konfiguriert, um entweder den ersten Speicher oder den zweiten Speicher mit dem Eingang der Vorrichtung zu koppeln. Darüber hinaus ist die Vorrichtung konfiguriert, um eine Prüfsumme für die erste Nutzlast auszugeben, wenn der erste Speicher mit dem Eingang der Vorrichtung gekoppelt ist und die erste Anzahl von Nutzlastsymbolen verarbeitet ist, und um eine Prüfsumme für die zweite Nutzlast auszugeben, wenn der zweite Speicher mit dem Eingang der Vorrichtung gekoppelt ist und die zweite Anzahl von Nutzlastsymbolen verarbeitet ist.
  • Fachleute auf diesem Gebiet werden beim Lesen der folgenden detaillierten Beschreibung und beim Betrachten der beiliegenden Zeichnungen zusätzliche Merkmale und Vorteile erkennen.
  • Die Elemente der Zeichnungen sind nicht notwendigerweise maßstabsgerecht zueinander. Gleiche Bezugszeichen bezeichnen entsprechende ähnliche Teile. Die Merkmale der verschiedenen dargestellten Ausführungsbeispiele können kombiniert werden, es sei denn, sie schließen einander aus. Ausführungsbeispiele sind in Zeichnungen dargestellt und werden in der folgenden Beschreibung näher dargestellt.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1 ein Blockdiagramm einer Vorrichtung zum Erzeugen einer Prüfsumme für eine Nutzlast mit einer Anzahl von Nutzlastsymbolen gemäß einem Ausführungsbeispiel;
  • 2 ein Blockdiagramm eines Prüfsummenprozessors gemäß einem Ausführungsbeispiel;
  • 3 ein Blockdiagramm einer Vorrichtung zum Erzeugen einer Prüfsumme für eine Nutzlast mit einer Anzahl von Nutzlastsymbolen gemäß einem Ausführungsbeispiel; und
  • 4 ein Blockdiagramm einer Abbildungseinrichtung mit einem parallelen Eingang und einem parallelen Ausgang gemäß einem Ausführungsbeispiel.
  • In der folgenden Beschreibung wird eine Mehrzahl von Einzelheiten dargelegt, um eine gründlichere Erläuterung von Ausführungsbeispielen der vorliegenden Erfindung zu geben. Für Fachleute auf dem Gebiet ist jedoch klar, dass Ausführungsbeispiele der vorliegenden Erfindung ohne diese spezifischen Einzelheiten praktiziert werden können. In anderen Fällen sind gut bekannte Strukturen und Vorrichtungen in Blockdiagrammform gezeigt anstatt in näheren Einzelheiten, um ein Undeutlich Machen von Ausführungsbeispielen der vorliegenden Erfindung zu vermeiden. Außerdem können Merkmale der unterschiedlichen hierin nachfolgend beschriebenen Ausführungsbeispiele miteinander kombiniert werden, es sei denn, dies ist speziell anderweitig angemerkt.
  • 1 zeigt eine Vorrichtung 100 zum Erzeugen einer Prüfsumme 102 für eine Nutzlast 104 mit einer Anzahl m von Nutzlastsymbolen a1 bis an, gemäß einem Ausführungsbeispiel. Die Vorrichtung 100 umfasst einen Codierer 106 zum Codieren der Nutzlast 104. Der Codierer 106 ist konfiguriert, um ein aktuelles Nutzlastsymbol ak (k = 1, ..., m) und ein vorhergehendes Codiersymbol sk-1 oder ein Initialisierungssymbol S0 zu kombinieren, um ein kombiniertes Symbol zu erhalten, und um das kombinierte Symbol unter Verwendung einer Abbildungsregel Cq abzubilden, um ein aktuelles Codiersymbol sk zu erhalten. Die Abbildungsregel Cq basiert auf (oder ist definiert durch) einer Zweier- oder höheren Potenz q (q > 2) einer Begleitmatrix C eines charakteristischen Polynoms p(x) eines Linearrückkopplungsschieberegisters (LFSR). Darüber hinaus ist die Vorrichtung 100 konfiguriert, so dass die Prüfsumme sm (102) dem aktuellen Codiersymbol sk entspricht, wenn die Anzahl m von Nutzlastsymbolen durch den Codierer 106 verarbeitet wird (wenn k = m), wobei die Anzahl m eins oder größer als eins ist. Anders ausgedrückt, die Anzahl m von Nutzlastsymbolen kann eine natürliche Zahl gleich oder größer als eins sein.
  • Bei einigen Ausführungsbeispielen umfasst der Codierer 106 der Vorrichtung 100 eine Rückkopplung (einen Rückkopplungsweg) zum Rückkoppeln des vorhergehenden Codiersymbols sk-1, das erzeugt wurde, während das vorhergehende Nutzlastsymbol ak-1 codiert wurde. Die Kombination des vorhergehenden Codiersymbols sk-1 und des aktuellen Nutzlastsymbols ak liefert im Allgemeinen eindeutige Werte, selbst wenn es ähnliche oder gleiche aufeinanderfolgende Nutzlastsymbole ak und ak-1 gibt.
  • Außerdem kann die Vorrichtung 100 Prüfsummen erzeugen für unterschiedliche Nutzlasten mit unterschiedlichen Anzahlen von Nutzlastsymbolen, oder anders ausgedrückt, die Vorrichtung 100 kann eine Prüfsumme für eine Nutzlast erzeugen mit einer Symbolsequenz variabler Länge.
  • Darüber hinaus wird durch Abbilden des kombinierten Symbols auf das aktuelle Codiersymbol sk unter Verwendung der hierin beschriebenen Abbildungsregel Cq ein variabler oder adaptiver minimaler Codeabstand dmin bereitgestellt. Der minimale Codeabstand dmin hängt von der Anzahl m von Nutzlastsymbolen ab, d. h. der Prüfsummencode hat einen hohen minimalen Codeabstand dmin für eine kurze Nutzlast (oder kurze Symbolsequenz) und einen niedrigen minimalen Codeabstand dmin für eine lange Nutzlast (oder lange Symbolsequenz). Somit ist der minimale Codeabstand dmin eine Funktion der Anzahl m von Nutzlastsymbolen, oder anders ausgedrückt, der Länge der Symbolsequenz. Ferner hängt derselbe von der spezifischen Auswahl der Begleitmatrix C und der Potenz p ab. Das heißt, abhängig von der Anzahl von Nutzlastsymbolen m nehmen das charakteristische Polynom und die Potenz dmin(m, C, p) unterschiedliche Werte an. Dies steht im Gegensatz zu den Prüfalgorithmen, die Fachleuten auf diesem Gebiet gut bekannt sind, wie z. B. die CRC- oder Fletcher-Prüfsumme usw., für die dmin für alle Längen m < M konstant ist, wobei M eine feste maximale Länge ist. Im Falle des CCITT CRC-16 oder IEEE 802.3 CRC-32 ist beispielsweise dmin = 4 und für eine Fletcher-Prüfsumme dmin = 3. Im Gegensatz dazu verwendet der hierin beschriebene Aufbau Potenzen der Begleitmatrix, was es ermöglicht, größere Werte von dmin für kurze Sequenzen zu erhalten, während nach wie vor ein bestimmter Minimalwert für lange Sequenzen beibehalten wird.
  • Bei einigen Ausführungsbeispielen kann der Codierer 106 konfiguriert sein, um das aktuelle Nutzlastsymbol ak und das vorhergehende Codiersymbol sk oder das Initialisierungssymbol S0 unter Verwendung einer linearen Kombination zu kombinieren. Ferner kann der Codierer 106 ein XOR- oder XNOR-Gatter umfassen zum Kombinieren des aktuellen Nutzlastsymbols ak und des vorhergehenden Codiersymbols sk-1 des Initialisierungssymbol So.
  • Darüber hinaus können das aktuelle Nutzlastsymbol ak und das vorhergehende Codiersymbol sk-1 oder das Initialisierungssymbol S0 eine Mehrzahl von Symboleinheiten (oder Bits) umfassen. Dadurch kann der Codierer 106 konfiguriert sein, um das aktuelle Nutzlastsymbol ak und das vorhergehende Codiersymbol sk-1 oder das Initialisierungssymbol So einheitsweise (oder bitweise) zu kombinieren. Die einheitsweise (oder bitweise) Kombination des aktuellen Nutzlastsymbols ak und des vorhergehenden Codiersymbols sk-1 oder des Initialisierungssymbols S0 kann durch Verwenden paralleler XOR- oder XNOR-Gatter erreicht werden.
  • Der Codierer 106 ist auch konfiguriert, um das kombinierte Symbol unter Verwendung einer Abbildungsregel Cq abzubilden, um das aktuelle Codiersymbol sk, wie vorher beschrieben, zu erhalten. Die Abbildungsregel Cq basiert auf (oder ist definiert durch) einer Zweier- oder höheren Potenz q (q > 2) einer Begleitmatrix C eines charakteristischen Polynoms p(x) eines Linearrückkopplungsschieberegisters. Anders ausgedrückt, die Abbildungsregel Cq basiert auf (oder ist definiert durch) einer Begleitmatrix C zu der Zweier- oder höheren Potenz q (z. B. C2, C3, C4, C5 usw.), wobei die Begleitmatrix C definiert ist durch ein charakteristisches Polynom p(x) eines Linearrückkopplungsschieberegisters. Das charakteristische Polynom p(x) des Linearrückkopplungsschieberegisters kann ein primitives Polynom g(x) oder ein primitives Polynom g(x) multipliziert mit einem Polynom ersten Grades, wie z. B. x + 1, umfasst. Darüber hinaus kann der Codierer 106 bei einigen Ausführungsbeispielen konfiguriert sein, um eine Potenz q der Begleitmatrix C zu verwenden, wobei die Potenz q in Symboleinheiten (oder Bits) einer Länge h des aktuellen Codiersymbols oder eines größeren Werts (q > h) entspricht. Dies garantiert, dass jede Symboleinheit (oder jedes Bit) mit einer anderen Symboleinheit (oder einem anderen Bit) kombiniert (oder gemischt) wird.
  • Außerdem kann der in 1 gezeigte Codierer 106 eine (Logik-)Schaltung umfassen mit einem Eingang für das kombinierte Symbol, einem Ausgang für das aktuelle codierte Symbol sk und einer Mehrzahl von XOR- oder XNOR-Gattern, die zwischen den Eingang und den Ausgang gekoppelt sind. Die Mehrzahl von XOR- oder XNOR-Gattern sind miteinander gekoppelt, so dass das kombinierte Symbol an dem Eingang der (Logik-)Schaltung gemäß der Abbildungsregel Cq auf das aktuelle Codiersymbol sk an dem Ausgang der (Logik-)Schaltung abgebildet ist.
  • Ferner kann die Vorrichtung 100 zum Erzeugen einer Prüfsumme 102 ein Register umfassen zum Speichern des aktuellen Codiersymbols sk und zum Ausgeben des aktuellen Codiersymbols sk. Das aktuelle Codiersymbol sk, das in dem Register gespeichert ist, kann bei dem nächsten Codierschritt verwendet werden, während das nächste Nutzlastsymbol ak+1 codiert wird. Außerdem kann das aktuelle Codiersymbol sk ausgegeben werden als eine Prüfsumme sm (Paritätssymbol), wenn die Anzahl m von Nutzlastsymbolen verarbeitet wird durch den Codierer 106 (wenn k = m), anders ausgedrückt, wenn alle Nutzlastsymbole der Nutzlast 104 verarbeitet sind.
  • 2 zeigt ein Blockdiagramm eines Prüfsummenprozessors 120 gemäß einem Ausführungsbeispiel. Der Prüfsummenprozessor 120 ist konfiguriert, um Prüfsummen 102 für unterschiedliche Nutzlasten mit unterschiedlichen Anzahlen von Nutzlastsymbolen zu erzeugen. Der Prüfsummenprozessor 120 umfasst einen ersten Speicher 122, einen zweiten Speicher 124, die Vorrichtung 100 zum Erzeugen einer Prüfsumme 102, wie es in 1 gezeigt ist, und einen Selektor 126. Der gleiche Codierer 106 kann zum Codieren unterschiedlicher Nutzlasten mit unterschiedlichen Anzahlen von Nutzlastsymbolen verwendet werden, unabhängig von der Länge (Anzahl m von Nutzlastsymbolen am) der Nutzlasten. Außerdem hat der Code, der durch den Codierer 106 erzeugt wird, die wünschenswerte Eigenschaft eines zunehmenden minimalen Codeabstands dmin für kürzere (abnehmende Anzahl von Nutzlastsymbolen am) Nutzlasten.
  • Der erste Speicher 122 ist konfiguriert, um eine erste Nutzlast mit einer ersten Anzahl von Nutzlastsymbolen zu speichern. Der zweite Speicher 124 ist konfiguriert, um eine zweite Nutzlast mit einer zweiten Anzahl von Nutzlastsymbolen zu speichern, wobei die zweite Anzahl von Nutzlastsymbolen größer ist als die erste Anzahl von Nutzlastsymbolen. Anders ausgedrückt, die zweite Nutzlast ist länger als die erste Nutzlast.
  • Darüber hinaus kann bei einigen Ausführungsbeispielen ein großer Speicher, der den ersten Speicher 122 und den zweiten Speicher 124 umfasst, zum Speichern der ersten Nutzlast mit der ersten Anzahl von Nutzlastsymbolen und zum Speichern der zweiten Nutzlast mit der zweiten Anzahl von Nutzlastsymbolen verwendet werden.
  • Die Vorrichtung 100 zum Erzeugen einer Prüfsumme 102 umfasst ferner einen Eingang 128 für das aktuelle Nutzlastsymbol. Der Selektor 126 ist konfiguriert, um entweder den ersten Speicher 122 oder den zweiten Speicher 124 mit dem Eingang 128 der Vorrichtung 100 zu koppeln. Der Prüfsummenprozessor 120 liefert eine Prüfsumme für die erste Nutzlast, wenn der erste Speicher 122 mit dem Eingang 128 der Vorrichtung 100 gekoppelt ist und wenn die erste Anzahl von Nutzlastsymbolen verarbeitet ist, und eine Prüfsumme für die zweite Nutzlast, wenn der zweite Speicher 124 mit dem Eingang 128 der Vorrichtung 100 gekoppelt ist und wenn die zweite Anzahl von Nutzlastsymbolen verarbeitet ist.
  • Die Funktionalität der Vorrichtung 100 zum Erzeugen einer Prüfsumme 102 für eine Nutzlast 104 mit einer Anzahl m von Nutzlastsymbolen, wie es in 1 und 2 gezeigt ist, kann durch einen Prüfsummencode geschrieben werden, oder anders ausgedrückt, durch eine Regel, die die Anzahl m von Nutzlastsymbolen in eine Prüfsumme 102 umwandelt.
  • Die Hauptcharakteristika eines Prüfsummencodes sind eine Länge des Paritätssymbols (h), ein minimaler Codeabstand (dmin), eine maximale Anzahl von (Nutzlast-)Symbolen, für die der minimale Codeabstand gültig ist (L), eine Wahrscheinlichkeit, dass ein (Mehrfach-)Zufallsfehler zu einem gültigen Codewort (p) führt, eine Bündellängenerfassung (b) und/oder Hardwareimplementierungscharakteristika, wie z. B. erforderliche Fläche und Leistungsfähigkeit.
  • Wie es bereits oben beschrieben wurde, ist der Codierer 106 konfiguriert, um einen variablen oder adaptiven (minimalen) Codeabstand dmin zu liefern, der von der Anzahl von Nutzlastsymbolen abhängt, oder anders ausgedrückt, der (minimale) Codeabstand dmin ist eine Funktion der Anzahl m von Nutzlastsymbolen. Somit wird der Prüfsummencode nachfolgend als ein adaptiver Hoher-Codeabstand-Prüfsummen-(AHDCS-; AHDCS = adaptive high code distance checksum)Code bezeichnet. Der AHDCS-Code kann beispielsweise verwendet werden zum Berechnen von Daten oder Anweisungssignaturen für Größen variabler Länge auf Smartcardsicherheitssteuerungen, ist aber nicht darauf beschränkt.
  • Eine große Anzahl von bekannten Prüfsummencodes ist durch internationale Standards definiert. Bekannte oder herkömmliche Prüfsummencodes sind, beispielsweise, CRC-Codes, z. B. CRC16 und CRC32 (CRC = cyclic redundancy check = zyklische Redundanzprüfung), WSC-Codes, Blockparitätscodes, BCH-Codes (BCH = Bose, Ray-Chaudhuri und Hocquenghem), Reed-Solomon-Codes und Fletcher-Prüfsumme. Unabhängig davon verursacht die Verwendung eines Prüfsummencodes auf einer Sicherheitssteuerung (z. B. einer Smartcard) als Fehlererfassungsmaßnahme spezielle Grenzbedingungen, die keiner der oben erwähnten Prüfsummencodes erfüllt. Im starken Gegensatz dazu erfüllt der AHDCS-Code die Grenzbedingungen für die Verwendung auf einer Sicherheitssteuerung als eine Fehlererfassungsmaßnahme, wie er nachfolgend näher beschrieben wird.
  • Der AHDCS-Code erfüllt die Grenzbedingungen einer asymptotischen maximalen Wahrscheinlichkeit p, dass ein (Mehrfach-)Zufallsfehler zu einem gültigen Codewort für eine gegebene Länge h des Paritätssymbols führt, d. h. p = 2–n. Ferner erfüllt der AHDCS-Code die Grenzbedingung einer maximalen Bündellänge b für eine gegebene Lange h des Paritätssymbols, d. h. b = h. Außerdem erfüllt der AHDCS-Code die Grenzbedingung eines vorzugsweise großen (minimalen) Codeabstands dmin als eine Funktion der maximalen Anzahl von Symbolen L (dmin(L)), wobei L eine natürliche Zahl gleich oder größer eins ist (L = 1, 2, 3, ...), d. h. dmin(L1) > dmin(L2) > dmin(L3) > ... > dmin(Ln) für L1 < L2 < L3 < ... < Ln. Darüber hinaus erfüllt der AHDCS-Code die Grenzbedingung einer reduzierten oder sogar minimierten Hardwareimplementierungsfläche. Ferner ist der AHDCS parallelisierbar, so dass ein h-Bitwort oder Symbol innerhalb eines Codierschritts verarbeitet oder codiert werden kann.
  • Im Gegensatz dazu werden die oben erwähnten bekannten Prüfsummencodes nachfolgend kurz beschrieben. Darüber hinaus ist in den folgenden Beispielen die Länge des Paritätssymbols beispielhaft als 16 Bit (h = 16 Bit) gewählt.
  • Der Fletcher-Code (insbesondere Fletcher 255) hat einen kleinen (minimalen) Codeabstand dmin = 3 Bits für eine suboptimale maximale Anzahl von Symbolen L = 128, eine suboptimale Wahrscheinlichkeit p = 0,001538%, dass ein (Mehrfach-)Zufallsfehler zu einem gültigen Codewort führt, und eine suboptimale Bündellänge b = 7 Bits. Theoretisch wären L = 2.047, p = 2–16 und b = 16 Bit möglich.
  • WSC-Codes und Blockparitätscodes haben auch stark suboptimale Fehlererfassungscharakteristika, oder anders ausgedrückt, einen kleinen (minimalen) Codeabstand dmin. Ferner erfordern Reed-Solomon-Codes und BCH-Codes im Allgemeinen sehr komplexe Codierer und Decodierer und haben auch suboptimale Fehlererfassungscharakteristika, oder anders ausgedrückt, einen kleinen (minimalen) Codeabstand dmin.
  • Der CRC 16-Code (CCITT (CCITT = International Telegraph and Telephone Consultative Committee = Internationaler beratender Ausschuss für Telegrafen- und Telefondienst) oder XBM) hat einen (minimalen) Codeabstand von dmin = 4 Bits für bis zu L = 2.047 Symbole (optimal). Theoretisch wären dmin = 3 Bit für bis zu L = 4.094 Symbole, dmin = 4 Bit für bis zu L = 2.047 Symbole, dm;,, = 5 Bit für bis zu L = 15 Symbole, dmin = 6 Bit für bis zu L = 8 Symbole und dmin = 7 Bit und dmin = 8 Bit für L = 1 Symbol möglich. Somit sind die Standard-CRC-Codes nicht adaptiv, was heißt, dass der (minimale) Codeabstand (dmin) für kürzere Symbolsequenzen nicht ansteigt. Außerdem sind CRC-Codes generell sequentiell definiert, d. h. eine Parallelisierung zum Verarbeiten eines 16-Bit-Worts oder -Symbols in einem Codierschritt ist prinzipiell möglich, würde aber eine große Hardwarefläche erfordern, was wiederum zu hoher Energieaufnahme führen würde.
  • Darüber hinaus ist es im Zusammenhang von Daten und Anweisungssignaturen als Gegenmaßnahmen gegenüber Fehlerangriffen sehr wichtig, einen Prüfsummencode zu verwenden, der einen höheren (minimalen) Codeabstand dmin aufweist für kürzere Symbolsequenzen, um so viele Mehrfachbitfehler wie möglich zu erfassen, da kürzere Daten- oder Anweisungssequenzen gleichzeitig in einem lokalen Puffer angeordnet sein können, der von einem lokalen Angriff z. B. mit einem Laser, betroffen sein kann. Wie es bereits näher beschrieben wurde, kann im Gegensatz zu bekannten Prüfsummencodes der AHDCS-Code einen höheren (minimalen) Codeabstand dmin für kürzere Symbolsequenzen bereitstellen.
  • Außerdem ist es im Zusammenhang von Sendeprotokollen mit Protokollrahmen mit variabler Länge (was normalerweise der Fall ist) vorteilhaft, einen Prüfsummencode zu verwenden, der einen höheren (minimalen) Codeabstand dmin für kürzere Symbolsequenzen hat. Wenn kürzere Protokollrahmen gesendet werden (was normalerweise der häufigste Fall ist), ist die Fehlererfassungsrate automatisch erhöht. Somit kann die mittlere Gesamtfehlerrate reduziert werden.
  • Die theoretisch triviale Möglichkeit, unterschiedliche, aber jeweils optimale Codes für unterschiedliche Längen von Symbolsequenzen zu verwenden, kann aus praktischen Gründen überhaupt nicht berücksichtigt werden. Einerseits muss die Länge der Symbolsequenzen bekannt sein, bevor die Berechnung begonnen wird, und die Längeninformation zum Auswählen des Codes müsste immer gegeben sein. Andererseits müssen etwa ein Dutzend unterschiedliche Algorithmen implementiert werden und dynamisches Schalten zwischen denselben müsste durchgeführt werden.
  • Der AHDCS-Code hat eine dynamische Einstellung des (minimalen) Codeabstands dmin zu der Anzahl von m von Symboleinheiten (Länge). Ferner schafft der AHDCS-Code die Möglichkeit einer einfachen homogenen Hardwareimplementierung. Dadurch findet kein Schalten zwischen Codes mit unterschiedlichen (minimalen) Codeabständen statt. Diese Charakteristik ist inhärent enthalten in dem Aufbau des AHDCS-Codes. Darüber hinaus kann der AHDCS-Code effizient parallelisiert werden. Außerdem sind Bündellänge b und asymptotische Fehlererfassungswahrscheinlichkeit p verbessert (oder sogar optimal) im Vergleich zu den oben erwähnten herkömmlichen bekannten Codes.
  • Der AHDCS kann definiert werden durch die dynamische Gleichung, gegeben durch: sk = Cq(sk-1 + ak) (1) für k = 1, 2, ..., m. Das „+”-Symbol in Gleichung (1) bezeichnet Modulo-2-Addition (XOR). Der Zustandsvektor nach dem Codieren der Sequenz der k Nutzlast-(oder Mitteilungs-)Symbole (a1, a2, ..., ak) ist mit sk bezeichnet und kann eine Breite von h-Bit (z. B. h = 16) haben. Nach dem Codieren (oder Hashen) aller m Nutzlastsymbole ist das Paritätsprüfsymbol gegeben durch den Wert sm. Die Nutzlast-(oder Mitteilungs-)Symbole ai können auch eine Länge von h-Bit haben. Die Matrix C ist eine Begleitmatrix eines Linearrückkopplungsschieberegisters und kann eine Abmessung von h × h haben. In der dynamischen Gleichung des AHDCS wird die Matrix C in die Potenz von q erhoben, wobei bei einigen Ausführungsbeispielen q gleich oder größer h (q > h) ist. Darüber hinaus basiert die Begleitmatrix C auf dem (oder ist definiert durch das) charakteristischen Polynom p(x) eines Linearrückkopplungsschieberegisters. Dadurch sind zwei Möglichkeiten relevant, wie sie gegeben sind durch: p(x) = g(x) (2) p(x) = (x + 1)g(x) (3) wobei g(x) ein primitives Polynom ist. Für p(x) = g(x) ist garantiert, dass der Codeabstand 3 ist (d*min = 3) für die maximale Länge L. Für p(x) = (x + 1)g(x) ist garantiert, dass der Codeabstand 4 ist (d*min = 4) für die maximale Länge L. Nachfolgend wird d*min als ein Standardabstand bezeichnet.
  • Durch Wählen des verbleibenden freien Parameters, nämlich des primitiven Polynoms g(x), können unterschiedliche Realisierungen von AHDCS erhalten werden. Für Nutzlasten mit einer kleinen Anzahl von Nutzlastsymbolen führen viele Polynome g(x) zu einem Prüfsummencode, der einen höheren Codeabstand hat als der Standardabstand d*min.
  • Außerdem kann ein hoher Codeabstand bereitgestellt werden für Nutzlasten mit einer kleinen Anzahl von Nutzlastsymbolen für ausgewählte g(x) gemäß einigen Ausführungsbeispielen. Wenn man beispielsweise h = 16 Bit und p(x) = c5c0(hex) (Gleichung (2)) annimmt, stellt der AHDCS einen minimalen Codeabstand dmin = 4 Bits für L < 52 Symbole, dmin = 5 Bits für L < 5 Symbole und dmin = 7 Bits für L < 1 Symbole bereit, wobei h die Länge der Daten und Paritätssymbole ist und L die maximale Anzahl von Nutzlastsymbolen ist, für die der minimale Codeabstand gültig ist. Für längere Paritätssymbole werden sehr hohe Codeabstände bereitgestellt, z. B. dmin > 10 Bit.
  • Bei einigen Ausführungsbeispielen kann ein Polynom der Begleitmatrix C verwendet werden statt dem Faktor Cq in der Gleichung (1). In diesem Fall kann der AHDCS allgemein definiert werden durch die dynamische Gleichung: sk = (aqCq + aq-1Cq-1 + ... + a2C2 + a1C1 + a0I)(sk-1 + ak) (4) wobei I die Identitätsmatrix ist (die der nullten Potenz von C entspricht) und q wie vorher gleich oder größer als 2 ist (q > 2). Darüber hinaus kann in dem binären Fall aq eine logische Null oder eine logische Eins sein (im allgemeinen Fall jede Zahl). Anders ausgedrückt, die Abbildungsregel kann auf einer gewichteten Summe der i-ten Potenzen der Begleitmatrix C basieren, wobei zumindest ein Term mit einer Potenz i ≥ 2 vorliegt. Anders ausgedrückt, die Abbildungsregel kann auf einer gewichteten Summe der Zweier- oder höheren Potenz q der Begleitmatrix C basieren und einer anderen Potenz der Begleitmatrix C, wobei die andere Potenz der Begleitmatrix C Null umfasst.
  • Ferner kann bei einigen Ausführungsbeispielen die Potenz q der Begleitmatrix C variabel (nicht konstant) sein. Dabei kann die Potenz q der Begleitmatrix C eine Funktion von k (Cq(k)) sein, z. B. nachdem eine erste Unteranzahl von Nutzlastsymbolen mit einer ersten Anzahl der Begleitmatrix C verarbeitet wurde, kann der Codierer 106 zu einer zweiten Potenz der Begleitmatrix schalten, zum Codieren einer zweiten Unteranzahl von Nutzlastsymbolen, usw. Anders ausgedrückt, die Abbildungsregel Cq(k) kann basieren auf (oder definiert sein durch) einer Zweier- oder höheren Potenz der Begleitmatrix C für eine erste Unteranzahl von Nutzlastsymbolen und auf einer anderen Potenz der Begleitmatrix C für eine zweite Unteranzahl von Nutzlastsymbolen, wobei die erste Unteranzahl von Nutzlastsymbolen addiert mit der zweiten Unteranzahl von Nutzlastsymbolen zu der Anzahl von Nutzlastsymbolen filtert oder kleiner ist als die Anzahl von Nutzlastsymbolen.
  • Außerdem können die zwei oben erwähnten Ausführungsbeispiele kombiniert werden. Dadurch können alle Potenzen und/oder Koeffizienten in der Gleichung (4) eine Funktion von k sein, z. B. nachdem eine erste Unteranzahl von Nutzlastsymbolen verarbeitet wurde, kann der Codierer 106 eine q-te Potenz der Begleitmatrix C zu der gewichteten Summe der Abbildungsregel addieren.
  • Darüber hinaus erfordert eine Hardwareimplementierung des AHDCS-Codes normalerweise weniger Fläche als ein herkömmlicher paralleler CRC-Code, der ein Paritätssymbol mit der gleichen Breite h bereitstellt.
  • 3 zeigt ein Blockdiagramm einer Vorrichtung 100 zum Erzeugen einer Prüfsumme 102 für eine Nutzlast 104 mit einer Anzahl m von Nutzlastsymbolen gemäß einem weiteren Ausführungsbeispiel. Die Vorrichtung 100 umfasst einen Kombinierer 140, eine Abbildungseinrichtung 142 und ein Register 144.
  • Bei einigen Ausführungsbeispielen kann der Codierer 106 der Vorrichtung 100 zum Erzeugen einer Prüfsumme 102 für eine Nutzlast 104 mit einer Anzahl von Nutzlastsymbolen, wie es in 1 gezeigt ist, den Kombinierer 140, die Abbildungseinrichtung 142 und das Register 144 umfassen, wie nachfolgend beschrieben.
  • Der Kombinierer 140 ist konfiguriert, um ein aktuelles Nutzlastsymbol ak und ein vorhergehendes Codiersymbol sk-1 oder ein Initialisierungssymbol S0 zu kombinieren, um ein kombiniertes Symbol zu erhalten.
  • Die Abbildungseinrichtung 142 ist konfiguriert, um das kombinierte Symbol unter Verwendung einer Abbildungsregel Cq abzubilden, um ein aktuelles Codiersymbol zu erhalten, wobei die Abbildungsregel Cq basiert auf (oder definiert ist durch) einer Zweier- oder höheren Potenz q (q > 2) einer Begleitmatrix C für ein charakteristisches Polynom p(x) eines Linearrückkopplungsschieberegisters.
  • Das Register 144 ist konfiguriert, um das aktuelle Codiersymbol sk zu speichern und das aktuelle Codiersymbol sk auszugeben. Das aktuelle Codiersymbol sk, das in dem Register 144 gespeichert ist, kann in dem nächsten Codierschritt verwendet werden, während das nächste Nutzlastsymbol ak+1 codiert wird. Außerdem kann das aktuelle Codiersymbol sk als eine Prüfsumme sm (Paritätssymbol) ausgegeben werden, wenn die Anzahl m von Nutzlastsymbolen durch den Codierer 106 verarbeitet wird (wenn k = m), anders ausgedrückt, wenn alle Nutzlastsymbole der Nutzlast verarbeitet sind.
  • Bei einigen Ausführungsbeispielen ist der Kombinierer 140 konfiguriert, um das aktuelle Nutzlastsymbol ak und das vorhergehende Codiersymbol sk-1 oder das Initialisierungssymbol So unter Verwendung einer linearen Kombination zu kombinieren. Ferner kann der Kombinierer 140 ein XOR- oder XNOR-Gatter umfassen zum Kombinieren des aktuellen Nutzlastsymbols ak und des vorhergehenden Codiersymbols sk-1 oder des Initialisierungssymbol S0.
  • Darüber hinaus, wie bereits erwähnt wurde, können das aktuelle Nutzlastsymbol ak und das vorhergehende Codiersymbol sk-1 oder das Initialisierungssymbol So eine Mehrzahl von Symboleinheiten (oder Bits) umfassen. Dadurch kann der Kombinierer 140 konfiguriert sein, um das aktuelle Nutzlastsymbol ak und das vorhergehende Codiersymbol sk-1 oder das Initialisierungssymbol So einheitsweise (oder bitweise) zu kombinieren.
  • Bei einigen Ausführungsbeispielen ist die Abbildungseinrichtung 142 konfiguriert, um das kombinierte Symbol unter Verwendung einer Abbildungsregel Cq abzubilden, um das aktuelle Codiersymbol zu erhalten. Die Abbildungsregel Cq basiert auf (oder ist definiert durch) eine Begleitmatrix C zu der Zweier- oder höheren Potenz q (z. B. C2, C3, C4, C5 usw.), wobei die Begleitmatrix C definiert ist durch ein charakteristisches Polynom p(x) eines Linearrückkopplungsschieberegisters. Das charakteristische Polynom p(x) des Linearrückkopplungsschieberegisters kann ein primitives Polynom g(x) oder ein primitives Polynom g(x), multipliziert mit einem Polynom ersten Grades, wie z. B. x + 1, umfassen. Darüber hinaus kann der Codierer 106 bei einigen Ausführungsbeispielen konfiguriert sein, um eine Potenz q der Begleitmatrix C zu verwenden, wobei die Potenz q in Symboleinheiten (oder Bits) einer Länge h des aktuellen Codiersymbols oder mehr entspricht (q > h).
  • Bei einigen Ausführungsbeispielen kann der Anfangswert S0 in ein h-Bit-Register 144 geladen werden. Für jedes neue (Nutzlast-)Symbol ak wird der Wert von sk, der in dem Register 144 gespeichert ist, gelesen und mit dem (Nutzlast-)Symbol ak verbunden unter Verwendung eines XOR-Gatters, wobei die lineare Abbildung Cq daran angelegt wird und das Ergebnis zurück in das Register 144 geladen (oder geschrieben) wird.
  • Wie es bereits erwähnt wurde, können bei einigen Ausführungsbeispielen das aktuelle Nutzlastsymbol ak und das vorhergehende Codiersymbol sk-1 eine Anzahl von Symboleinheiten (oder Bits) umfassen. In diesem Fall kann die Vorrichtung 100 einen ersten parallelen Bus 150, einen zweiten parallelen Bus 152, einen einheitsweisen parallelen Kombinierer 140, einen dritten parallelen Bus 154, eine Abbildungseinrichtung 142 mit einem parallelen Eingang und einem parallelen Ausgang, einen vierten parallelen Bus 156, ein Register 144 mit einem parallelen Eingang und einem parallelen Ausgang, einen fünften parallelen Bus 158 und einen Zweig 160 aufweisen.
  • Bei 3 ist die Anzahl von Symboleinheiten (oder Bits) beispielhaft als 16 gewählt. Selbstverständlich ist die folgende Beschreibung auch anwendbar auf Ausführungsbeispiele mit einer anderen Anzahl von Symboleinheiten, z. B. 2, 4, 8, 16, 32, 64 oder 128 oder sogar 1.024.
  • Der erste parallele Bus 150 kann eine Mehrzahl einzelner Leitungen gleich der Anzahl von Symboleinheiten (oder Bits) zum Tragen des aktuellen Nutzlastsymbols ak aufweisen. Der zweite parallele Bus 152 kann eine Mehrzahl von einzelnen Leitungen gleich der Anzahl von Symboleinheiten (oder Bits) zum Tragen des vorhergehenden Codiersymbols sk-1 oder des Initialisierungssymbols S0 aufweisen.
  • Der einheitsweise (bitweise) parallele Kombinierer 140 ist konfiguriert, um das aktuelle Nutzlastsymbol ak und das vorhergehende Codiersymbol sk-1 oder das Initialisierungssymbol S0 einheitsweise (bitweise) zu kombinieren, um das kombinierte Symbol zu erhalten, wobei das kombinierte Symbol die gleiche Anzahl von Symboleinheiten (oder Bits) aufweist.
  • Der dritte parallele Bus 154 kann eine Mehrzahl von einzelnen Leitungen gleich der Anzahl von Symboleinheiten (oder Bits) zum Tragen des kombinierten Symbols aufweisen.
  • Die Abbildungseinrichtung 142 hat einen parallelen Eingang für das kombinierte Symbol, einen parallelen Ausgang für das aktuelle Codiersymbol sk und eine Mehrzahl von XOR- oder XNOR-Gattern, die zwischen den parallelen Eingang und den parallelen Ausgang gekoppelt sind. Dadurch sind die Mehrzahl von XOR- oder XNOR-Gattern miteinander gekoppelt, sodass das kombinierte Symbol an dem parallelen Eingang auf das aktuelle Codiersymbol sk an dem parallelen Ausgang abgebildet wird, gemäß der Abbildungsregel Cq, wobei das aktuelle Codiersymbol die gleiche Anzahl von Symboleinheiten (oder Bits) aufweist.
  • Der vierte parallele Bus 156 kann eine Mehrzahl von einzelnen Leitungen gleich der Anzahl von Symboleinheiten (oder Bits) zum Tragen des aktuellen Codiersymbols sk aufweisen.
  • Das Register 144 hat einen parallelen Eingang und einen parallelen Ausgang und kann konfiguriert sein, um das aktuelle Codiersymbol sk zu speichern und das aktuelle Codiersymbol sk auszugeben.
  • Der fünfte parallele Bus 158 kann eine Mehrzahl von einzelnen Leitungen gleich der Anzahl von Symboleinheiten (oder Bits) zum Tragen des aktuellen Codiersymbol sk aufweisen. Die Verzweigung 160 ist konfiguriert, um den fünften parallelen Bus 158 und den zweiten parallelen Bus 152 parallel zu koppeln.
  • 4 zeigt ein Blockdiagramm der Abbildungseinrichtung 142 mit einem parallelen Eingang 162 und einem parallelen Ausgang 164 gemäß einem Ausführungsbeispiel. Die Abbildungseinrichtung 142 umfasst eine Mehrzahl von XOR- oder XNOR-Gattern, die zwischen den parallelen Eingang 162 und den parallelen Ausgang 164 gekoppelt sind, wobei die Mehrzahl von XOR- oder XNOR-Gattern miteinander gekoppelt sind, sodass das kombinierte Symbol an dem Eingang 162 auf das aktuelle Codiersymbol sk abgebildet wird an dem Ausgang 164 gemäß der Abbildungsregel Cq. Bei 4 sind beispielhaft nur XOR-Gatter gezeigt. Selbstverständlich können statt den XOR-Gattern XNOR-Gatter oder eine Kombination derselben verwendet werden.
  • Bei einigen Ausführungsbeispielen kann die Vorrichtung 100 zum Erzeugen einer Prüfsumme 102 für eine Nutzlast 104 mit einer Anzahl von Nutzlastsymbolen verwendet werden zum Schützen von Mitteilungen, die über einen Kommunikationskanal gesendet werden, oder anders ausgedrückt, zum Erfassen und/oder Korrigieren von Fehlern, die auftreten können, während Mitteilungen des Kommunikationssignals gesendet werden. Daher kann die Vorrichtung 100 auf der Codierer- und/oder Decodiererseite verwendet werden.
  • Darüber hinaus kann bei einigen Ausführungsbeispielen die Vorrichtung 100 zum Erzeugen einer Prüfsumme 102 für eine Nutzlast 104 mit einer Anzahl von Nutzlastsymbolen in einem Mikroprozessor verwendet werden, z. B. zum Schützen von Daten oder Programmcode. Dabei kann die Vorrichtung 100 zum Erzeugen einer Prüfsumme wiederum als Codierer oder Decodierer verwendet werden. Alternativ kann die Vorrichtung 100 zum Erzeugen einer Prüfsumme als ein zweckgebundener Codierer oder Decodierer verwendet werden, wobei zwei Vorrichtungen 100 zum Codieren bzw. Decodieren verwendet werden können.
  • Weitere Ausführungsbeispiele schaffen ein Verfahren zum Erzeugen einer Prüfsumme für eine Nutzlast mit einer Anzahl m von Nutzlastsymbolen. In einem ersten Schritt werden ein aktuelles Nutzlastsymbol und ein vorhergehendes Codiersymbol oder ein Initialisierungssymbol kombiniert, um ein kombiniertes Symbol zu erhalten. In einem zweiten Schritt wird das kombinierte Symbol unter Verwendung einer Abbildungsregel abgebildet, um ein aktuelles Codiersymbol zu erhalten. Die Abbildungsregel basiert auf (oder ist definiert durch) einer Zweier- oder höheren Potenz einer Begleitmatrix eines charakteristischen Polynoms eines Linearrückkopplungsschieberegisters. In einem dritten Schritt wird angezeigt, ob die Prüfsumme dem aktuellen Codiersymbol entspricht. Die Prüfsumme entspricht dem aktuellen Codiersymbol, wenn die Anzahl von Nutzlastsymbolen durch den Codierer verarbeitet wird, wobei die Anzahl eins oder größer als eins ist.
  • Bei einigen Ausführungsbeispielen wird eine lineare Kombination verwendet zum Kombinieren des aktuellen Nutzlastsymbols und des vorhergehenden Codiersymbols oder des Initialisierungssymbols. Darüber hinaus kann eine XOR- oder XNOR-Operation verwendet werden zum Kombinieren des aktuellen Nutzlastsymbols und des vorhergehenden Codiersymbols oder des Initialisierungssymbols. Außerdem können das aktuelle Nutzlastsymbol und das vorhergehende Codiersymbol oder das Initialisierungssymbol eine Anzahl von Symboleinheiten (oder Bits) umfassen, wobei eine einheitsweise (oder bitweise) Kombination verwendet werden kann zum Kombinieren des aktuellen Nutzlastsymbols und des vorhergehenden Codiersymbols oder des Initialisierungssymbols.
  • Ferner kann das charakteristische Polynom des Linearrückkopplungsschieberegisters ein primitives Polynom oder ein primitives Polynom, multipliziert mit einem Polynom ersten Grades, umfassen.
  • Bei einigen Ausführungsbeispielen hat das aktuelle Codiersymbol eine Mehrzahl von Symboleinheiten (oder Bits). Außerdem kann der Schritt des Abbildens (zweiter Schritt) das Verwenden einer Potenz der Begleitmatrix umfassen, wobei die Potenz in Symboleinheiten (oder Bits) einer Länge des aktuellen Codiersymbols oder mehr entspricht.
  • Darüber hinaus schaffen Ausführungsbeispiele ein computerlesbares digitales Speichermedium mit einem darauf gespeicherten Computerprogramm mit einem Programmcode zum Durchführen, wenn dasselbe auf einem Computer läuft, eines Verfahrens zum Erzeugen einer Prüfsumme für eine Nutzlast mit einer Anzahl von Nutzlastsymbolen. In einem ersten Schritt werden ein aktuelles Nutzlastsymbol und ein vorhergehendes Codiersymbol oder ein Initialisierungssymbol kombiniert, um ein kombiniertes Symbol zu erhalten. In einem zweiten Schritt wird das kombinierte Symbol unter Verwendung einer Abbildungsregel abgebildet, um ein aktuelles Codiersymbol zu erhalten. Die Abbildungsregel basiert auf (oder ist definiert durch) einer Zweier- oder höheren Potenz einer Begleitmatrix eines charakteristischen Polynoms eines Linearrückkopplungsschieberegisters. In einem dritten Schritt wird angezeigt, ob die Prüfsumme dem aktuellen Codiersymbol entspricht. Die Prüfsumme entspricht dem aktuellen Codiersymbol, wenn die Anzahl von Nutzlastsymbolen durch den Codierer verarbeitet wird, wobei die Anzahl eins oder größer als eins ist.
  • Weitere Ausführungsbeispiele schaffen eine Einrichtung zum Erzeugen einer Prüfsumme für eine Nutzlast mit einer Anzahl von Nutzlastsymbolen. Die Einrichtung zum Erzeugen umfasst eine Einrichtung zum Kombinieren eines aktuellen Nutzlastsymbols und eines vorhergehenden Codiersymbols oder eines Initialisierungssymbols, um ein kombiniertes Symbol zu erhalten; und eine Einrichtung zum Abbilden des kombinierten Symbols unter Verwendung einer Abbildungsregel, um ein aktuelles Codiersymbol zu erhalten, wobei die Abbildungsregel basiert auf (oder definiert ist durch) einer Zweier- oder höheren Potenz einer Begleitmatrix für ein charakteristisches Polynom eines Linearrückkopplungsschieberegisters. Die Prüfsumme entspricht dem aktuellen Codiersymbol, wenn die Anzahl von Nutzlastsymbolen durch den Codierer verarbeitet wird, wobei die Anzahl eins oder größer als eins ist.
  • Obwohl einige Aspekte im Zusammenhang einer Vorrichtung beschrieben wurden, ist klar, dass diese Aspekte auch eine Beschreibung des entsprechenden Verfahrens darstellen, wo ein Block oder eine Vorrichtung einem Verfahrensschritt/Verfahrensschritten oder einem Merkmal eines Verfahrensschritts/Verfahrensschritten entspricht. Analog stellen Aspekte, die im Zusammenhang eines Verfahrensschritts beschrieben werden, auch eine Beschreibung eines entsprechenden Blocks/entsprechender Blöcke oder Elemente oder Merkmale einer entsprechenden Vorrichtung dar. Einige oder alle der Verfahrensschritte können durch eine Hardwarevorrichtung (oder durch eine Verwendung derselben) ausgeführt werden, wie z. B. einen Mikroprozessor, einen programmierbaren Computer oder eine elektronische Schaltung. Bei einigen Ausführungsbeispielen können einige oder mehrere der wichtigsten Verfahrensschritte durch solch eine Vorrichtung ausgeführt werden.
  • Abhängig von bestimmten Implementierungsanforderungen können Ausführungsbeispiele in Hardware oder in Software implementiert sein. Die Implementierung kann durchgeführt werden unter Verwendung eines digitalen Speichermediums, beispielsweise einer Floppy-Disk, einer DVD, einer Blu-ray, einer CD, eines ROM, eines PROM, eines EPROM, eines EEPROM oder eines Flash-Speichers mit darauf gespeicherten elektronisch lesbaren Steuersignalen, die mit einem programmierbaren Computersystem kooperieren (oder kooperieren können), für das das jeweilige Verfahren durchgeführt wird. Daher kann das digitale Speichermedium computerlesbar sein.
  • Einige Ausführungsbeispiele umfassen einen Datenträger mit elektronisch lesbaren Steuersignalen, die in der Lage sind, mit einem programmierbaren Computersystem zu kooperieren, sodass eines der hierin beschriebenen Verfahren durchgeführt wird.
  • Allgemein können Ausführungsbeispiele als ein Computerprogrammprodukt implementiert sein mit einem Programmcode, wobei der Programmcode wirksam ist zum Durchführen eines der Verfahren, wenn das Computerprogrammprodukt auf einem Computer läuft. Der Programmcode kann beispielsweise auf einem maschinenlesbaren Träger gespeichert sein.
  • Andere Ausführungsbeispiele umfassen das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren; gespeichert auf einem maschinenlesbaren Träger. Anders ausgedrückt, das Computerprogramm hat einen Programmcode zum Durchführen eines der hierin beschriebenen Verfahren, wenn das Computerprogramm auf einem Computer läuft.
  • Ein weiteres Ausführungsbeispiel umfasst einen Datenträger (oder ein digitales Speichermedium oder ein computerlesbares Medium) mit dem darauf aufgezeichneten Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren. Der Datenträger, das digitale Speichermedium oder das aufgezeichnete Medium sind typischerweise greifbar und/oder nicht transitorisch.
  • Ein weiteres Ausführungsbeispiel umfasst einen Datenstrom oder eine Sequenz von Signalen, die das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren darstellen. Der Datenstrom oder die Sequenz von Signalen kann beispielsweise konfiguriert sein, um über eine Datenkommunikationsverbindung, beispielsweise über das Internet, übertragen zu werden.
  • Ein weiteres Ausführungsbeispiel umfasst eine Verarbeitungseinrichtung, beispielsweise einen Computer oder eine programmierbare Logikvorrichtung, die konfiguriert ist oder angepasst ist, um eines der hierin beschriebenen Verfahren durchzuführen.
  • Ein weiteres Ausführungsbeispiel umfasst einen Computer, auf dem das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren installiert ist.
  • Ein weiteres Ausführungsbeispiel umfasst eine Vorrichtung oder ein System, das konfiguriert ist, um ein Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren zu einem Empfänger zu übertragen (beispielsweise elektronisch oder optisch). Der Empfänger kann beispielsweise ein Computer, eine Mobilvorrichtung, eine Speichervorrichtung oder dergleichen sein. Die Vorrichtung oder das System kann beispielsweise einen Dateiserver zum Übertragen des Computerprogramms zu dem Empfänger umfassen.
  • Bei einigen Ausführungsbeispielen kann eine programmierbare Logikvorrichtung (beispielsweise ein feldprogrammierbares Gatterarray) verwendet werden, um einige oder alle der Funktionalitäten der hierin beschriebenen Verfahren durchzuführen. Bei einigen Ausführungsbeispielen kann ein feldprogrammierbares Gatterarray mit einem Mikroprozessor zusammenarbeiten, um eines der hierin beschriebenen Verfahren durchzuführen. Im Allgemeinen werden die Verfahren vorzugsweise durch jede Hardwarevorrichtung durchgeführt.
  • Begriffe wie z. B. „erste”, „zweite” und dergleichen werden ebenfalls verwendet, um verschiedene Elemente, Regionen, Abschnitte usw. zu beschreiben, und sind nicht begrenzend. Gleiche Begriffe bezeichnen gleiche Elemente in der ganzen Beschreibung.
  • Wie sie hierin verwendet werden, sind die Begriffe „haben”, „enthalten”, „umfassen”, „aufweisen” und dergleichen offene Begriffe, die das Vorliegen der bestimmten Elemente oder Merkmale anzeigen, aber zusätzlichen Elemente oder Merkmale nicht ausschließen. Die Artikel „einer/eines/eine” und „der/die/das” sollen Plural sowie Singular umfassen, es sei denn, der Zusammenhang zeigt dies eindeutig anderweitig an.
  • Es ist klar, dass die Merkmale der verschiedenen hierin beschriebenen Ausführungsbeispiele miteinander kombiniert werden können, es sei deren, dies ist speziell anderweitig angemerkt.
  • Obwohl hierin spezifische Ausführungsbeispiele dargestellt und beschrieben wurden, ist es für Durchschnittsfachleute auf diesem Gebiet klar, dass eine Vielzahl alternativer und/oder äquivalenter Implementierungen eingesetzt werden kann für die spezifischen gezeigten und beschriebenen Ausführungsbeispiele, ohne von dem Schutzbereich der vorliegenden Erfindung abzuweichen. Diese Anwendung soll alle Anpassungen und Variationen der spezifischen hierin erörterten Ausführungsbeispiele abdecken. Daher soll diese Erfindung nur durch die Ansprüche und die Äquivalente derselben begrenzt werden.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • IEEE 802.3 CRC-32 [0019]

Claims (29)

  1. Vorrichtung (100) zum Erzeugen einer Prüfsumme (102) für eine Nutzlast (104) mit einer Anzahl von Nutzlastsymbolen, wobei die Vorrichtung (100) folgende Merkmale aufweist: einen Codierer (106) zum Codieren der Nutzlast (104), wobei der Codierer (106) konfiguriert ist, um ein aktuelles Nutzlastsymbol und ein vorhergehendes Codiersymbol oder ein Initialisierungssymbol zu kombinieren, um ein kombiniertes Symbol zu erhalten, und das kombinierte Symbol unter Verwendung einer Abbildungsregel abzubilden, um ein aktuelles Codiersymbol zu erhalten, wobei die Abbildungsregel auf einer Zweier- oder höheren Potenz einer Begleitmatrix (C) eines charakteristischen Polynoms eines Linearrückkopplungsschieberegisters basiert; wobei die Vorrichtung (100) konfiguriert ist, sodass die Prüfsumme (102) dem aktuellen Codiersymbol entspricht, wenn die Anzahl von Nutzlastsymbolen durch den Codierer (106) verarbeitet wird, wobei die Anzahl eins oder größer als eins ist.
  2. Vorrichtung (100) gemäß Anspruch 1, bei der die Abbildungsregel auf einer gewichteten Summe der Potenzen der Begleitmatrix (C) basiert, und wobei zumindest ein Term mit einer Zweier- oder höheren Potenz vorliegt, wobei ein Term mit der nullten Potenz ebenfalls erlaubt ist.
  3. Vorrichtung (100) gemäß Anspruch 1 oder 2, bei der die Abbildungsregel für eine erste Unteranzahl von Nutzlastsymbolen auf einer Zweier- oder höheren Potenz der Begleitmatrix (C) basiert und für eine zweite Unteranzahl von Nutzlastsymbolen auf einer anderen Potenz der Begleitmatrix (C), und wobei die erste Unteranzahl von Nutzlastsymbolen, addiert zu der zweiten Unteranzahl von Nutzlastsymbolen, zu der Anzahl von Nutzlastsymbolen führt oder kleiner ist als die Anzahl von Nutzlastsymbolen.
  4. Vorrichtung (100) gemäß einem der Ansprüche 1 bis 3, bei der der Codierer (106) konfiguriert ist, um das aktuelle Nutzlastsymbol und das vorhergehende Codiersymbol oder das Initialisierungssymbol unter Verwendung einer linearen Kombination zu kombinieren.
  5. Vorrichtung (100) gemäß einem der Ansprüche 1 bis 4, bei der der Codierer (106) ein XOR- oder XNOR-Gatter aufweist, das konfiguriert ist, um das aktuelle Nutzlastsymbol und das vorhergehende Codiersymbol oder das Initialisierungssymbol zu kombinieren.
  6. Vorrichtung (100) gemäß einem der Ansprüche 1 bis 5, bei der das aktuelle Nutzlastsymbol und das vorhergehende Codiersymbol oder das Initialisierungssymbol eine Mehrzahl von Symboleinheiten aufweisen, und wobei der Codierer (106) konfiguriert ist, um das aktuelle Nutzlastsymbol und das vorhergehende Codiersymbol oder das Initialisierungssymbol einheitsweise zu kombinieren.
  7. Vorrichtung (100) gemäß einem der Ansprüche 1 bis 6, bei der das charakteristische Polynom des Linearrückkopplungsschieberegisters ein primitives Polynom oder ein primitives Polynom multipliziert mit einem Polynom ersten Grades aufweist.
  8. Vorrichtung (100) gemäß einem der Ansprüche 1 bis 7, bei der das aktuelle Codiersymbol eine Mehrzahl von Symboleinheiten aufweist, und wobei der Codierer (106) konfiguriert ist, um eine Potenz der Begleitmatrix (C) zu verwenden, wobei die Potenz in Symboleinheiten einer Länge des aktuellen Codiersymbols oder mehr entspricht.
  9. Vorrichtung (100) gemäß einem der Ansprüche 1 bis 8, bei der der Codierer (106) eine Schaltung mit einem Eingang für das kombinierte Symbol, einem Ausgang für das aktuelle Codiersymbol und einer Mehrzahl von XOR- oder XNOR-Gattern, die zwischen den Eingang und den Ausgang gekoppelt sind, aufweist, wobei die Mehrzahl von XOR- oder XNOR-Gattern miteinander gekoppelt sind, sodass das kombinierte Symbol an dem Eingang gemäß der Abbildungsregel auf das aktuelle Codiersymbol an dem Ausgang abgebildet wird.
  10. Vorrichtung (100) gemäß einem der Ansprüche 1 bis 9, die ferner ein Register aufweist, das konfiguriert ist, um das aktuelle Codiersymbol zu speichern und das aktuelle Codiersymbol auszugeben.
  11. Prüfsummenprozessor (120) zum Erzeugen von Prüfsummen (102) für unterschiedliche Nutzlasten (104) mit einer unterschiedlichen Anzahl von Nutzlastsymbolen; wobei der Prüfsummenprozessor (120) folgende Merkmale aufweist: eine ersten Speicher (122), der konfiguriert ist, um eine erste Nutzlast (104) mit einer ersten Anzahl von Nutzlastsymbolen zu speichern; einen zweiten Speicher (124), der konfiguriert ist, um eine zweite Nutzlast (104) mit einer zweiten Anzahl von Nutzlastsymbolen zu speichern, wobei die zweite Anzahl von Nutzlastsymbolen größer ist als die erste Anzahl von Nutzlastsymbolen; eine Vorrichtung (100) zum Erzeugen einer Prüfsumme (102), wobei die Vorrichtung (100) folgende Merkmale aufweist: einen Eingang; einen Selektor (126), der konfiguriert ist, um den ersten Speicher (122) oder den zweiten Speicher (124) mit dem Eingang zu koppeln; und einen Codierer (106), der konfiguriert ist, um ein aktuelles Nutzlastsymbol und ein vorhergehendes Codiersymbol oder ein Initialisierungssymbol zu kombinieren, um ein kombiniertes Symbol zu erhalten, und das kombinierte Symbol unter Verwendung einer Abbildungsregel abzubilden, um ein aktuelles Codiersymbol zu erhalten, wobei die Abbildungsregel auf einer Zweier- oder höheren Potenz einer Begleitmatrix (C) eines charakteristischen Polynoms eines Linearrückkopplungsschieberegisters basiert; und wobei die Vorrichtung (100) konfiguriert ist, um eine Prüfsumme (102) für die erste Nutzlast (104) auszugeben, wenn der erste Speicher (122) mit dem Eingang der Vorrichtung (100) gekoppelt ist und die erste Anzahl von Nutzlastsymbolen verarbeitet wird, und um eine Prüfsumme (102) für die zweite Nutzlast (104) auszugeben, wenn der zweite Speicher (124) mit dem Eingang der Vorrichtung (100) gekoppelt ist und die zweite Anzahl von Nutzlastsymbolen verarbeitet wird.
  12. Vorrichtung (100) zum Erzeugen einer Prüfsumme (102) für eine Nutzlast (104) mit einer Anzahl von Nutzlastsymbolen, wobei die Vorrichtung (100) folgende Merkmale aufweist: einen Kombinierer (140), der konfiguriert ist, um ein aktuelles Nutzlastsymbol und ein vorhergehendes Codiersymbol oder ein Initialisierungssymbol zu kombinieren, um ein kombiniertes Symbol zu erhalten; eine Abbildungseinrichtung (142), die konfiguriert ist, um das kombinierte Symbol unter Verwendung einer Abbildungsregel abzubilden, um ein aktuelles Codiersymbol zu erhalten, wobei die Abbildungsregel auf einer Zweier- oder höheren Potenz einer Begleitmatrix (C) eines charakteristischen Polynoms eines Linearrückkopplungsschieberegisters basiert; und ein Register (144), das konfiguriert ist, um das aktuelle Codiersymbol zu speichern und das aktuelle Codiersymbol auszugeben.
  13. Vorrichtung (100) gemäß Anspruch 12, bei der die Abbildungsregel für eine erste Unteranzahl von Nutzlastsymbolen auf einer Zweier- oder höheren Potenz der Begleitmatrix (C) und für eine zweite Unteranzahl von Nutzlastsymbolen auf einer anderen Potenz der Begleitmatrix (C) basiert, und wobei die erste Unteranzahl von Nutzlastsymbolen, addiert zu der zweiten Unteranzahl von Nutzlastsymbolen, zu der Anzahl von Nutzlastsymbolen führt oder geringer ist als die Anzahl von Nutzlastsymbolen.
  14. Vorrichtung (100) gemäß Anspruch 12 oder 13, bei der der Kombinierer (140) konfiguriert ist, um das aktuelle Nutzlastsymbol und das vorhergehende Codiersymbol oder das Initialisierungssymbol unter Verwendung einer linearen Kombination zu kombinieren.
  15. Vorrichtung (100) gemäß einem der Ansprüche 12 bis 14, bei der der Kombinierer (140) ein XOR- oder XNOR-Gatter aufweist, das konfiguriert ist, um das aktuelle Nutzlastsymbol und das vorhergehende Codiersymbol oder das Initialisierungssymbol zu kombinieren.
  16. Vorrichtung (100) gemäß einem der Ansprüche 12 bis 15, bei der das aktuelle Nutzlastsymbol und das vorhergehende Codiersymbol oder das Initialisierungssymbol eine Mehrzahl von Symboleinheiten aufweisen, und wobei der Kombinierer (140) konfiguriert ist, um das aktuelle Nutzlastsymbol und das vorhergehende Codiersymbol oder das Initialisierungssymbol einheitsweise zu kombinieren.
  17. Vorrichtung (100) gemäß einem der Ansprüche 12 bis 16, bei der das charakteristische Polynom des Linearrückkopplungsschieberegisters ein primitives Polynom oder ein primitives Polynom multipliziert mit einem Polynom ersten Grades aufweist.
  18. Vorrichtung (100) gemäß einem der Ansprüche 12 bis 17, bei der das aktuelle Codiersymbol eine Mehrzahl von Symboleinheiten aufweist, und bei der die Abbildungseinrichtung (142) konfiguriert ist, um eine Potenz der Begleitmatrix (C) zu verwenden, wobei die Potenz in Symboleinheiten einer Länge des aktuellen Codiersymbols oder mehr entspricht.
  19. Vorrichtung (100) gemäß einem der Ansprüche 12 bis 18, bei der die Abbildungseinrichtung (142) einen Eingang für das kombinierte Symbol, einen Ausgang für das aktuelle Codiersymbol und eine Mehrzahl von XOR- oder XNOR-Gattern, die zwischen den Eingang und den Ausgang gekoppelt sind, aufweist, und wobei die Mehrzahl von XOR- oder XNOR-Gattern miteinander gekoppelt sind, sodass das kombinierte Symbol an dem Eingang gemäß der Abbildungsregel auf das aktuelle Codiersymbol an dem Ausgang abgebildet wird.
  20. Vorrichtung (100) gemäß einem der Ansprüche 12 bis 19, bei der das aktuelle Nutzlastsymbol und das vorhergehende Codiersymbol eine Anzahl von Symboleinheiten aufweisen, wobei der Codierer (106) folgende Merkmale aufweist: einen ersten parallelen Bus (150) mit einer Mehrzahl von einzelnen Leitungen gleich der Anzahl von Symboleinheiten zum Tragen des aktuellen Nutzlastsymbols; einen zweiten parallelen Bus (152) mit einer Mehrzahl von einzelnen Leitungen gleich der Anzahl von Symboleinheiten zum Tragen des vorhergehenden Codiersymbols oder des Initialisierungssymbols; einen einheitsweisen parallelen Kombinierer (140), der konfiguriert ist, um das aktuelle Nutzlastsymbol und das vorhergehende Codiersymbol oder das Initialisierungssymbol zu kombinieren, um das kombinierte Symbol zu erhalten, wobei das kombinierte Symbol die Anzahl von Symboleinheiten aufweist; einen dritten parallelen Bus (154) mit einer Mehrzahl von einzelnen Leitungen gleich der Anzahl von Symboleinheiten zum Tragen des kombinierten Symbols; eine Abbildungseinrichtung (142), die einen parallelen Eingang für das kombinierte Symbol, einen parallelen Ausgang für das aktuelle Codiersymbol und eine Mehrzahl von XOR- oder XNOR-Gattern, die zwischen den parallelen Eingang und den parallelen Ausgang gekoppelt sind, aufweist, wobei die Mehrzahl von XOR- oder XNOR-Gattern miteinander gekoppelt sind, sodass das kombinierte Symbol an dem parallelen Eingang gemäß der Abbildungsregel auf das aktuelle Codiersymbol an dem parallelen Ausgang abgebildet wird, wobei das aktuelle Codiersymbol die Anzahl von Symboleinheiten aufweist; einen vierten parallelen Bus (156) mit einer Mehrzahl von einzelnen Leitungen gleich der Anzahl von Symboleinheiten zum Tragen des aktuellen Codiersymbols; ein paralleles Register, das konfiguriert ist, um das aktuelle Codiersymbol zu speichern und das aktuelle Codiersymbol auszugeben; einen fünften parallelen Bus (158) mit einer Mehrzahl von einzelnen Leitungen gleich der Anzahl von Symboleinheiten zum Tragen des aktuellen Codiersymbols; und eine Verzweigung (160), die konfiguriert ist, um den fünften parallelen Bus (158) und den zweiten parallelen Bus (152) parallel zu koppeln.
  21. Vorrichtung (100) zum Erzeugen einer Prüfsumme (102) für eine Nutzlast (104) mit einer Anzahl von Nutzlastsymbolen, wobei die Vorrichtung (100) folgende Merkmale aufweist: eine Einrichtung zum Kombinieren eines aktuellen Nutzlastsymbols und eines vorhergehenden Codiersymbols oder eines Initialisierungssymbols, um ein kombiniertes Symbol zu erhalten; eine Einrichtung zum Abbilden des kombinierten Symbols unter Verwendung einer Abbildungsregel, um ein aktuelles Codiersymbol zu erhalten, wobei die Abbildungsregel auf einer Zweier- oder höheren Potenz einer Begleitmatrix (C) eines charakteristischen Polynoms eines Linearrückkopplungsschieberegisters basiert; und wobei die Prüfsumme (102) dem aktuellen Codiersymbol entspricht, wenn die Anzahl von Nutzlastsymbolen durch den Codierer (106) verarbeitet wird, wobei die Anzahl eins oder größer als eins ist.
  22. Verfahren zum Erzeugen einer Prüfsumme (102) für eine Nutzlast (104) mit einer Anzahl von Nutzlastsymbolen, wobei das Verfahren folgende Schritte aufweist: Kombinieren eines aktuelles Nutzlastsymbols und eines vorhergehenden Codiersymbols oder eines Initialisierungssymbols, um ein kombiniertes Symbol zu erhalten; Abbilden des kombinierten Symbols unter Verwendung einer Abbildungsregel, um ein aktuelles Codiersymbol zu erhalten, wobei die Abbildungsregel auf einer Zweier- oder höheren Potenz einer Begleitmatrix (C) eines charakteristischen Polynoms eines Linearrückkopplungsschieberegisters basiert; und Anzeigen, ob die Prüfsumme (102) dem aktuellen Codiersymbol entspricht, wenn die Anzahl von Nutzlastsymbolen durch den Codierer (106) verarbeitet wird, wobei die Anzahl eins oder größer als eins ist.
  23. Verfahren gemäß Anspruch 22, bei dem die Abbildungsregel für eine erste Unteranzahl von Nutzlastsymbolen auf einer Zweier- oder höheren Potenz der Begleitmatrix (C) und für eine zweite Unteranzahl von Nutzlastsymbolen auf einer anderen Potenz der Begleitmatrix (C) basiert, und wobei die erste Unteranzahl von Nutzlastsymbolen, addiert zu der zweiten Unteranzahl von Nutzlastsymbolen, zu der Anzahl von Nutzlastsymbolen führt oder geringer ist als die Anzahl von Nutzlastsymbolen.
  24. Verfahren gemäß Anspruch 22 oder 23, bei dem das Kombinieren des aktuellen Nutzlastsymbols und des vorhergehenden Codiersymbols oder des Initialisierungssymbols, um das kombinierte Symbol zu erhalten, die Verwendung einer linearen Kombination zum Kombinierendes aktuellen Nutzlastsymbols und des vorhergehenden Codiersymbols oder des Initialisierungssymbols aufweist.
  25. Verfahren gemäß einem der Ansprüche 22 bis 24, bei dem das Kombinieren des aktuellen Nutzlastsymbols und des vorhergehenden Codiersymbols oder des Initialisierungssymbols, um das kombinierte Symbol zu erhalten, das Verwenden einer XOR- oder XNOR-Operation zum Kombinieren des aktuellen Nutzlastsymbols und des vorhergehenden Codiersymbols oder des Initialisierungssymbols aufweist.
  26. Verfahren gemäß einem der Ansprüche 22 bis 25, bei dem das aktuelle Nutzlastsymbol und das vorhergehende Codiersymbol oder das Initialisierungssymbol eine Anzahl von Symboleinheiten aufweisen, und wobei das Kombinieren des aktuellen Nutzlastsymbols und des vorhergehenden Codiersymbols oder des Initialisierungssymbols, um das kombinierte Symbol zu erhalten, ein einheitsweises Kombinieren des aktuellen Nutzlastsymbols und des vorhergehenden Codiersymbols oder des Initialisierungssymbols aufweist.
  27. Verfahren gemäß einem der Ansprüche 22 bis 26, bei dem das charakteristische Polynom des Linearrückkopplungsschieberegisters ein primitives Polynom oder ein primitives Polynom multipliziert mit einem Polynom ersten Grades aufweist.
  28. Verfahren gemäß einem der Ansprüche 22 bis 27, bei dem das aktuelle Codiersymbol eine Mehrzahl von Symboleinheiten aufweist, und wobei das Abbilden des kombinierten Symbols unter Verwendung der Abbildungsregel, um das aktuelle Codiersymbol zu erhalten, ein Verwenden einer Potenz der Begleitmatrix (C) aufweist, wobei die Potenz in Symboleinheiten einer Länge des aktuellen Codiersymbols oder mehr entspricht.
  29. Computerlesbares digitales Speichermedium mit einem darauf gespeichertem Computerprogramm mit einem Programmcode zum Durchführen, wenn dasselbe auf einem Computer läuft, eines Verfahrens zum Erzeugen einer Prüfsumme (102) für eine Nutzlast (104) mit einer Anzahl von Nutzlastsymbolen, wobei das Verfahren folgende Schritte aufweist: Kombinieren eines aktuelles Nutzlastsymbols und eines vorhergehenden Codiersymbols oder eines Initialisierungssymbols, um ein kombiniertes Symbol zu erhalten; Abbilden des kombinierten Symbols unter Verwendung einer Abbildungsregel, um ein aktuelles Codiersymbol zu erhalten, wobei die Abbildungsregel auf einer Zweier- oder höheren Potenz einer Begleitmatrix (C) eines charakteristischen Polynoms eines Linearrückkopplungsschieberegisters basiert; und Anzeigen, ob die Prüfsumme (102) dem aktuellen Codiersymbol entspricht, wenn die Anzahl von Nutzlastsymbolen durch den Codierer (106) verarbeitet wird, wobei die Anzahl eins oder größer als eins ist.
DE102012208711.7A 2011-05-25 2012-05-24 Vorrichtung zum Erzeugen einer Prüfsumme Active DE102012208711B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/115,382 US8612842B2 (en) 2011-05-25 2011-05-25 Apparatus for generating a checksum
US13/115,382 2011-05-25

Publications (2)

Publication Number Publication Date
DE102012208711A1 true DE102012208711A1 (de) 2012-12-27
DE102012208711B4 DE102012208711B4 (de) 2017-08-31

Family

ID=47198609

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012208711.7A Active DE102012208711B4 (de) 2011-05-25 2012-05-24 Vorrichtung zum Erzeugen einer Prüfsumme

Country Status (3)

Country Link
US (1) US8612842B2 (de)
CN (1) CN102799495B (de)
DE (1) DE102012208711B4 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8656260B1 (en) * 2011-07-29 2014-02-18 Xilinx, Inc. Methods and circuits for processing a data block by frames
US9639416B1 (en) * 2012-11-18 2017-05-02 Altera Corporation CRC circuits with extended cycles
US20150363263A1 (en) * 2014-06-12 2015-12-17 HGST Netherlands B.V. ECC Encoder Using Partial-Parity Feedback
DE102015217724A1 (de) * 2015-09-16 2017-03-16 Siemens Aktiengesellschaft Vorrichtung und Verfahren zum Erstellen einer asymmetrischen Prüfsumme
LU92881B1 (en) * 2015-11-18 2017-06-21 Technische Univ Hamburg Harburg Methods for encoding and decoding a binary string and System therefore
CN108512555B (zh) * 2018-03-13 2021-09-24 中国工程物理研究院电子工程研究所 一种系统rs码阶数及本原多项式的识别方法
EP3683679A1 (de) * 2019-01-15 2020-07-22 ARM Limited Prüfsummenerzeugung
US11018694B2 (en) * 2019-06-10 2021-05-25 Hewlett Packard Enterprise Development Lp Fast cyclic redundancy check code generation

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4771429A (en) * 1986-09-18 1988-09-13 Abbott Laboratories Circuit combining functions of cyclic redundancy check code and pseudo-random number generators
JPH01201736A (ja) * 1988-02-08 1989-08-14 Mitsubishi Electric Corp マイクロコンピュータ
US6192498B1 (en) * 1997-10-01 2001-02-20 Globepan, Inc. System and method for generating error checking data in a communications system
US6560727B1 (en) * 1999-10-21 2003-05-06 Sandia Corporation Bit error rate tester using fast parallel generation of linear recurring sequences
ATE345613T1 (de) * 2000-04-07 2006-12-15 Broadcom Corp Rahmenbasierte übertragung von nutzdaten mit veränderlicher datenrate
US7000177B1 (en) 2000-06-28 2006-02-14 Marvell International Ltd. Parity check matrix and method of forming thereof
WO2004038926A1 (en) 2002-10-23 2004-05-06 Koninklijke Philips Electronics N.V. Method and device for building a variable-length error code
US7124351B2 (en) * 2002-12-04 2006-10-17 Stmicroelectronics Asia Pacific Pte. Ltd. Software instructions utilizing a hardwired circuit
JP2008532410A (ja) * 2005-03-01 2008-08-14 エヌエックスピー ビー ヴィ メッセージ認証コードを発生する発生器、発生方法、プログラム要素、及びコンピュータ読取可能媒体
US7500174B2 (en) 2005-05-23 2009-03-03 Microsoft Corporation Encoding and application of extended hamming checksum
US7761776B1 (en) 2005-11-03 2010-07-20 Xilinx, Inc. Method and apparatus for a modular, programmable cyclic redundancy check design
US9270414B2 (en) * 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
US7962837B2 (en) 2007-09-13 2011-06-14 United Memories, Inc. Technique for reducing parity bit-widths for check bit and syndrome generation for data blocks through the use of additional check bits to increase the number of minimum weighted codes in the hamming code H-matrix
US8397147B2 (en) * 2007-11-02 2013-03-12 Telefonaktiebolaget L M Ericsson (Publ) Optimum distance spectrum feedforward low rate tail-biting convolutional codes
US8464141B2 (en) * 2008-08-13 2013-06-11 Infineon Technologies Ag Programmable error correction capability for BCH codes

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IEEE 802.3 CRC-32

Also Published As

Publication number Publication date
CN102799495A (zh) 2012-11-28
US8612842B2 (en) 2013-12-17
US20120304041A1 (en) 2012-11-29
CN102799495B (zh) 2015-09-23
DE102012208711B4 (de) 2017-08-31

Similar Documents

Publication Publication Date Title
DE102012208711B4 (de) Vorrichtung zum Erzeugen einer Prüfsumme
DE10133595B4 (de) Pufferschaltung, Speicherzugriffsverfahren und Reed-Solomon-Decoder
DE102012200197B4 (de) Vorrichtung und Verfahren zur Fehlerkorrektur und zum Schutz vor Datenverfälschung
DE102010035210B4 (de) Verfahren zur Rückgewinnung verlorener Daten und zur Korrektur korrumpierter Daten
DE2914515A1 (de) Verfahren und vorrichtung fuer ein wirksames fehlerentdeckungs- und korrektursystem
DE112014002870T5 (de) Kombinations-Fehler- und Löschdecodierung für Produktcodes
DE112016003638B4 (de) Auf eine Decodierung folgende Fehlerprüfung mit Diagnose für Produktcodes
DE102011085602A1 (de) Vorrichtung und Verfahren zum Korrigieren zumindest eines Bitfehlers in einer codierten Bitsequenz
DE102013016681A1 (de) Codieren und Decodieren von Daten zum Vornehmen von Anpassungen für Speicherzellen mit Haftfehlern
DE2217935A1 (de) Anordnung und Verfahren zur Korrektur von Doppelfehlern
DE102011087634B9 (de) Vorrichtung und verfahren zum erfassen eines fehlers in einem codierten binärwort
DE112015001607T5 (de) Orthogonale Datenorganisation für Fehlerdetektion und -korrektur in seriellen Videoschnittstellen
DE112010003445T5 (de) Verfahren und System zur Erkennung der Rahmengrenze eines in der Vorwärtsfehlerkorrekturschicht im Ethernet empfangenen Datenstroms
DE102011087457A1 (de) Vorrichtung und verfahren zum erfassen eines fehlers in einer mehrzahl von codierten binärwörtern, die durch einen fehlerkorrekturcode codiert sind
DE102013201422B3 (de) Verfahren zum Wiederherstellen verlorengegangener und/ oder beschädigter Daten
DE102013219088B9 (de) Schaltungsanordnung und Verfahren zur Realisierung von Prüfbitkompaktierung für Cross-Parity-Codes
DE102016201408B4 (de) Verfahren zum Übertragen von Daten
DE102004055684A1 (de) Verfahren zur Absicherung des Datentransferns in einem sicheren Netzwerk mit CRC`s variabler Länge
DE102010029113A1 (de) Verfahren zur Kanalcodierung von digitalen Daten
DE10345438B4 (de) Verfahren und Vorrichtung zum Dekodieren von mittels paketorientierten Datenübertragungsnetzen übertragenen kodierten Datenpaketen und Verfahren und Vorrichtung zum Kodieren und Dekodieren von über paketorientierte Datenübertragungsnetze zu übertragende Datenpaketen
DE10253949B3 (de) Verfahren zur Bestimmung einer Restfehlerwahrscheinlichkeit bei der Übertragung von Daten
DE102010006876B4 (de) Verfahren und Vorrichtung zur Kodierung von Daten
DE102005018248B4 (de) Prüfverfahren zur sicheren, beschleunigten Erkennung von Datenfehlern und Vorrichtung zur Durchführung des Prüfverfahrens
DE102014114728B4 (de) Mehrschichtige fehlerkorrekturcodierung
DE102015118668A1 (de) Fehlerkorrektur

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R130 Divisional application to

Ref document number: 102012025808

Country of ref document: DE

Ref document number: 102012025807

Country of ref document: DE

R130 Divisional application to

Ref document number: 102012025807

Country of ref document: DE

Ref document number: 102012025808

Country of ref document: DE

R020 Patent grant now final
R082 Change of representative