DE69320321T2 - Verfahren und Gerät zum Nachprüfen von CRC-Koden, wobei CRC Teilkode kombiniert werden - Google Patents
Verfahren und Gerät zum Nachprüfen von CRC-Koden, wobei CRC Teilkode kombiniert werdenInfo
- Publication number
- DE69320321T2 DE69320321T2 DE69320321T DE69320321T DE69320321T2 DE 69320321 T2 DE69320321 T2 DE 69320321T2 DE 69320321 T DE69320321 T DE 69320321T DE 69320321 T DE69320321 T DE 69320321T DE 69320321 T2 DE69320321 T2 DE 69320321T2
- Authority
- DE
- Germany
- Prior art keywords
- data block
- crc
- partial
- crc code
- predetermined
- 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
Links
- 238000000034 method Methods 0.000 title claims description 33
- 238000004891 communication Methods 0.000 claims description 6
- 238000012795 verification Methods 0.000 claims description 4
- 206010009944 Colon cancer Diseases 0.000 description 63
- 230000005540 biological transmission Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000009795 derivation Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 101100311330 Schizosaccharomyces pombe (strain 972 / ATCC 24843) uap56 gene Proteins 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 101150018444 sub2 gene Proteins 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
- H03M13/091—Parallel or block-wise CRC computation
Landscapes
- Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Description
- Diese Erfindung bezieht sich auf Verfahren und Vorrichtungen zum Überprüfen von CRC-Codes (CRC = Cyclic redundancy check = zyklische Redundanzüberprüfung).
- CRC-Codes werden ausgiebig bei digitalen Datenübertragungen zur Erfassung von Fehlern verwendet, die während des Datenübertragungsprozesses auftreten können. Typischerweise wird eine Mitteilung, die übermittelt werden soll, assembliert und in einer binären digitalen Form codiert, wobei aus derselben unter Verwendung eines vorbestimmten Algorithmus zusammen mit einer vorbestimmten Multi-Bit-Zahl ein CRC-Code hergeleitet wird. Eine spezielle Zahl kann zu diesem Zweck durch das folgende Polynom 32. Grades dargestellt werden:
- g (x) =x³²+x²&sup6;+x²³+x²²+x¹&sup6;+x¹²+x¹¹+x¹&sup0;+x&sup8;+x&sup7;+x&sup5;+x&sup4;+x²+x+1 (1)
- Bei einer Implementierung dieser Technik ist ein 32-stufiges schieberegister mit einem Exklusiv-ODER-Gatter an dessen Ausgang (Stufe 31, Numerierung ausgehend von 0) vorgesehen, um synchron mit der Verschiebung des Inhalt des Registers das Ausgangssignal, Modulo 2, zu aufeinanderfolgenden Bits der zu übermittelnden Mitteilung hinzuzufügen. Das Ausgangssignal dieses Exklusiv-ODER-Gatters wird direkt in die erste Stufe (Stufe 0) und in weitere Exklusiv-ODER-Gatter eingespeist, die jede der verbleibenden Stufen entsprechend den Termen von g(x) (d.h. die Stufen 26, 23, ..., 2 und 1) mit deren vorangehender Stufe (siehe Fig. 1) koppeln. Das Schieberegister ist anfänglich nur mit Eins-Werten geladen, woraufhin dasselbe die zu übermittelnde Mitteilung wie beschrieben empfängt; wenn die gesamte Mitteilung eingegeben worden ist, wird der Inhalt des Schieberegisters ausgegeben und invertiert, um den CRC-Code zu erzeugen, der im allgemeinen an die Mitteilung angefügt ist. Beim Empfang werden die Mitteilung und deren angefügter CRC-Code auf dieselbe Art und Weise in ein entsprechend angeordnetes Schieberegister, das nur mit Eins-Werten vorgeladen ist, eingegeben; wenn die gesamte Mitteilung und der CRC-Code eingegeben worden sind, sollte das Schieberegister den binären Wert 1100 0111 0000 0100 1101 1101 0111 1011 (C704DD7BH) enthalten, der dem Rest der Division des Polynoms x&sup6;³+x&sup6;²+ ... +x³³+x³² durch das Polynom g(x) entspricht. Falls sich ein beliebiger anderer Wert ergibt, hat die Mitteilung einen oder mehrere Fehler enthalten.
- Obwohl eine solche Implementierung wirksam und zuverlässig ist, treten Umstände auf, bei denen dieselbe nachteilig ist. Eine Technik, die gegenwärtig für eine schnelle Datenübertragung implementiert ist, ist als asynchroner übertragungsmodus (ATM; ATM = Asynchronous Transfer Mode) bekannt. Bei Implementierungen eines ATM für eine "lokale" Verwendung, z. B. in Gebäuden, kann eine einzige Mitteilung relativ groß sein (beispielsweise bis zu 65.568 Bytes). Zu Übertragungszwecken wird diese Mitteilung längenmäßig in ein exaktes Vielfaches von 48 Bytes aufgefüllt und daraufhin in aufeinanderfolgende 48-Byte-Segmente unterteilt. Obwohl gemäß dem ATM-Protokoll diese Segmente in derselben Reihenfolge empfangen werden, in der dieselben gesendet wurden, können dieselben mit Segmenten von anderen Übertragungen durchsetzt sein, die für denselben oder einen anderen Empfänger gedacht sind.
- Ein möglicher Lösungsansatz zum Überprüfen des CRC-Codes für die empfangene Mitteilung würde darin bestehen, das CRC- Überprüfungsergebnis als Teil einer allgemeinen Verarbeitung der Mitteilung herzuleiten. Eine solche Verarbeitung wird jedoch typischerweise unter einer Softwareprogrammsteuerung von einer Datenverarbeitungsausrüstung ausgeführt, wodurch bezüglich der Verarbeitungsgeschwindigkeit jeder Mitteilung ein ernsthafter zeitlicher Mehraufwand verursacht wird.
- Es würde prinzipiell möglich sein, das CRC-Überprüfungsergebnis für jede Mitteilung in Echtzeit herzuleiten, indem deren aufeinanderfolgende Segmente einem Schieberegister zugeführt werden, sowie dieselben empfangen werden; eingestreute Segmente für andere Mitteilungen könnten entweder durch Bereitstellen eines individuellen Schieberegisters für jede unterschiedliche Mitteilung oder durch Sichern und Wiederherstellen des Inhalts des Schieberegisters gehandhabt werden, falls ein Segment für eine unterschiedliche Mitteilung empfangen wird. Die erste Option ist jedoch bezüglich der Schaltungshardware sehr aufwendig, während die zweite Option eine unerwünschte verzögerung auferlegt, wenn der gegenwärtige Inhalt des Schieberegisters für eine Mitteilung und die Identität der Mitteilung gesichert werden, und die Mitteilung, deren nächstes Segment angekommen ist, identifiziert wird, und der im vorhergehenden gesicherte Inhalt für diese Mitteilung wiedergewonnen und in das Register geladen wird. Beide Lösungsansätze erfordern außerdem ein Einstellen einer willkürlichen Grenze für die Anzahl unterschiedlicher Mitteilungen, die gleichzeitig empfangen werden können.
- Das IBM Technical Disclosure Bulletin, Bd. 30, Nr. 12, 05.88, Seiten 458-464, offenbart ein Bit-weises paralleles CRC-Bestimmungsverfahren. Bei diesem Verfahren wird jedes Byte der Eingangsdaten mit dem gegenwärtigen Inhalt eines Registers kombiniert (einer XOR-Operation unterzogen). Das Ergebnis der XOR-Operation wird zum Adressieren einer Mehrzahl von Tabellen verwendet, wobei das Ausgangssignal derselben zum Aktualisieren des Registers verwendet wird. Die Europäische Patentanmeldung Nr. A-0465006 offenbart ein Verfahren zum Berechnen einer Prüfsumme, das die Bestimmung von Teilprüfsummen beinhaltet. Dieses Dokument bezieht sich jedoch nicht auf die Berechnung einer zyklischen Prüfsumme.
- Gemäß einem Aspekt dieser Erfindung ist ein Verfahren zum Überprüfen eines CRC-Codes bezüglich eines Datenblocks geschaffen, der als Mehrzahl von Teilblöcken über ein Kommunikationsmedium übertragen wird, wobei der CRC-Code nach einer Division durch ein vorbestimmtes Polynom eines Operanden, der aus dem Datenblock hergeleitet wird, einen Rest aufweist, wobei das Verfahren folgende Schritte aufweist:
- Herleiten eines jeweiligen Teil-CRC-Codes für jeden empfangenen Teildatenblock aus einem vorbestimmten Initialisierungswert und unter Verwendung des vorbestimmten Polynoms;
- Kombinieren der Teil-CRC-Codes, um einen CRC-Überprüfungswert für den vollständigen Datenblock wie empfangen herzuleiten, der anzeigt, ob der empfangene Datenblock mit einem CRC-Code konsistent ist, der für den Datenblock als Ganzes betrachtet unter Verwendung des vorbestimmten Polynoms hergeleitet worden wäre; und
- Nachprüfen der Gültigkeit des Überprüfungswertes für den vollständigen empfangenen Datenblock.
- Unter Verwendung dieses Verfahrens wird ein getrennter Teil-CRC-Code für jedes ATM-Segment hergeleitet und in Verbindung mit demselben gespeichert; der Ausgangswert für die CRC-codeerzeugung (z. B. der Inhalt des oben beschriebenen Schieberegisters) wird daraufhin auf einen vorbestimmten Initialisierungswert (z. B. nur Null-Werte) zurückgesetzt. Daraufhin werden die Teil-CRC-Codes für alle Segmente, die eine vollständige Mitteilung aufweisen, kombiniert, wie es hierin beschrieben ist, um einen CRC-Überprüfungswert herzuleiten, der sich auf die vollständige Mitteilung bezieht, und der verwendet werden kann, um zu überprüfen, ob die Mitteilung durch Fehler beeinträchtigt worden ist. Die Herleitung der Teil-CRC-Codes kann zweckmäßigerweise mit einer hohen Geschwindigkeit in einer reservierten Hardwareschaltungsanordnung erreicht werden, wohingegen die Kombination der Teil-CRC-Codes unter Verwendung einer Schaltungsanordnung unter einer Softwareprogrammsteuerung erreicht werden kann, ohne daß ein ernsthafter zeitlicher Mehraufwand verursacht wird. Mit dieser Erfindung ist es nicht erforderlich, als Teil der Teil-CRC-Codeherleitung zu identifizieren, zu welcher Mitteilung ein Segment gehört, wobei prinzipiell keine Begrenzung bezüglich der Anzahl von Mitteilungen vorhanden ist, die gleichzeitig empfangen werden können.
- Gemäß einem weiteren Aspekt dieser Erfindung ist eine Vorrichtung zum Überprüfen eines CRC-Codes bezüglich eines Datenblocks, der als Mehrzahl von Teilbiöcken über ein Kommunikationsmedium übertragen wird, vorgesehen, wobei der CRC- Code nach einer Division durch ein vorbestimmtes Polynom eines Operanden, der aus dem Datenblock hergeleitet wird, einen Rest aufweist, wobei die Vorrichtung folgende Merkmale aufweist:
- eine Einrichtung zum Herleiten eines jeweiligen Teil-CRC- Codes für jeden empfangenen Teildatenblock aus einem vorbestimmten Initialisierungswert und unter Verwendung des vorbestimmten Polynoms;
- eine Einrichtung zum Kombinieren der Teil-CRC-Codes, um einen CRC-Überprüfungswert für den vollständigen Datenblock wie empfangen herzuleiten, der anzeigt, ob der empfangene Datenblock mit einem CRC-Code konsistent ist, der für den Datenblock als Ganzes betrachtet unter Verwendung des vorbestimmten Polynoms hergeleitet worden wäre; und
- eine Einrichtung zum Nachprüfen der Gültigkeit des Überprüfungswertes für den vollständigen empfangenen Datenblock.
- Im folgenden wird nun ein Verfahren und eine Vorrichtung gemäß dieser Erfindung zum Überprüfen von CRC-Codes unter Bezugnahme auf die begleitenden Zeichnungen beispielhaft beschrieben. Es zeigen:
- Fig. 1 ein Schieberegister zum Herleiten eines CRC-Codes basierend auf dem Polynom g(x);
- Fig. 2 ein Blockdiagramm einer Vorrichtung zum Überprüfen von CRC-Codes gemäß dieser Erfindung;
- Fig. 3 ein Flußdiagramm einer Prozedur, die als Bestandteil der Vorrichtung von Fig. 2 implementiert ist; und
- Fig. 4a Verweistabellen aus Hexadezimalwerten, die bei der bis 7b Prozedur von Fig. 3 verwendet werden.
- Im folgenden wird auf Fig. 2 Bezug genommen. Eine Vorrichtung zum Empfangen eines ATM-Datenstroms auf einer fiberoptischen Eingangsleitung 10 und zum Überprüfen von CRC-Codes von Mitteilungen in dem Datenstroin weist eine Eingangsschnittstelle 12 auf, die mit der Leitung 10 gekoppelt ist. Wie es in Fig. 2 dargestellt ist, wird der ATM-Datenstrom behandelt, als ob derselbe eine Sequenz von Zellen aufweist, wobei jede Zelle einen Fünf-Byte-Kopfbereich H (H = Header), der Systembetriebsinformationen trägt, und ein 48-Byte-Nutzinformationsbereich aufweist, der ein Segment einer vollständigen ATM-Mitteilung aufweist. Aufeinanderfolgende Zellen können Segmente für unterschiedliche Mitteilungen enthalten, wobei die Identität der Mitteilung, zu der ein Segment gehört, in den Informationen in dem Kopfbereich H der Zelle, die das Segment enthält, enthalten ist.
- Die Eingangsschnittstelle 12 wandelt das Signal von der Leitung 10 von einer optischen Form in eine elektrische Form um, erzeugt ein Datensignal, das die Segmentdaten in jeder Zelle enthält, erzeugt ein Taktsignal, das mit dem Auftreten von binären Ziffern in dem Signal synchronisiert ist (Taktrückgewinnung), lokalisiert die Grenzen zwischen den ATM- Zellen in dem empfangenen Datenstrom, um ein Anfang-einer- Zelle-signal (SOC-signal; SOC = start-of-cell) zu erzeugen, und entnimmt aus dem Zellenkopfbereich die Identität der Mitteilung, zu der jedes segment gehört. Die Techniken und die Schaltungsanordnung zum Durchführen dieser Funktionen sind Fachleuten auf diesem Gebiet bekannt und bilden keinen Bestandteil dieser Erfindung und werden somit hierin nicht weiter beschrieben.
- Das Datensignal, das Taktsignal und das SOC-Signal werden einem 32-Bit-Schieberegister 14 zugeführt, das angeordnet ist, um einen CRC-Code zu implementieren, wie es im vorhergehenden beschrieben und in Fig. 1 gezeigt ist. Zusätzlich zu den in Fig. 1 gezeigten Verbindungen weist das Schieberegister 14 zwei weitere Eingänge auf: einen Takteingang, der das Taktsignal empfängt und das Verschieben der Daten durch das Register synchronisiert; und einen Steuereingang, der das SOC-Signal empfängt und bewirkt, daß der gegenwärtige Inhalt des Schieberegisters ausgegeben (gesichert) wird, und daß das Schieberegister auf einen vorbestimmten Initialisierungswert nur aus Null-Werten zurückgesetzt wird. Die Implementierung dieser Eingänge wird Fachleuten auf diesem Gebiet auch offensichtlich sein.
- Der Ausgang des Schieberegisters 14 ist mit einem Speicher 16 gekoppelt, der ferner das Datensignal, das Taktsignal und die Mitteilungsidentität von der Eingangsschnittstelle 12 empfängt. Wenn ein SOC-Signal auftritt, wird der gegenwärtige Inhalt des Schieberegisters 14 (ein "Teil"-CRC-Code, PCRC; PCRC = 'partial' CRC code) in den Speicher 16 ausgegeben, der den gegenwärtigen Inhalt in Verbindung mit den entsprechenden Segmentdaten und der Identität der Mitteilung (MsgID; MsgID = identity of the message) speichert, zu der das Segment gehört. Der Speicher 16 kann eine Kapazität mit gewünschter Größe aufweisen, d. h. typischerweise mehrere tausend Segmente und zugeordnete PCRCs und MsgIds.
- Obwohl die Herleitung von Teil-CRC-Codes mittels des Schieberegisters 14 und die Übertragung von Daten über die Schaltungsanordnung zur Verdeutlichung bezüglich serieller Techniken beschrieben und dargestellt worden ist, wird es Fachleuten auf diesem Gebiet offensichtlich sein, daß diese Operationen gleichermaßen unter Verwendung paralleler Mechanismen implementiert sein können, um mehrere Bits gleichzeitig zu verarbeiten, falls dies erwünscht ist.
- Wenn alle Segmente einer Mitteilung empfangen worden sind, wird die vollständige Mitteilung assembliert und deren CRC- Code mittels einer Überprüfungsvorrichtung 18 überprüft. Diese Vorrichtung kann zweckmäßigerweise mittels einer Datenverarbeitungseinheit implementiert sein, die von einem geeigneten Softwareprogramm gesteuert wird; die Datenverarbeitungseinheit kann ferner verwendet werden, um eine Weiterverarbeitung der empfangenen Daten, beispielsweise gemäß höherstufiger Kommunikationsprotokolle, zu implementieren.
- Die Überprüfungsvorrichtung 18 entnimmt aus dem Speicher 16 den PCRC für jedes Segment, das die MsgID für diese Mitteilung aufweist, und kombiniert dieselbe mit den PCRCs für die anderen Segmente der Mitteilung gemäß der in Fig. 3 dargestellten Prozedur.
- Im folgenden wird auf Fig. 3 Bezug genommen. Die Prozedur beginnt bei Schritt 30, indem ein Zähler auf 5 gleich 1 gesetzt wird, und indem ein variabler 4-Byte-Hexadezimal-CRC auf einen Wert von FFFFFFFFH initialisiert wird.
- In dem nächsten Schritt 32 leitet die Prozedur einen Wert für einen Index I gemäß den Werten der jeweiligen Bytes des variablen CRC in jede von vier Verweistabellen ab. Folglich wird ein Index I&sub4;&sub0;&sub8; gleich dem Wert des höchstwertigen Bytes des CRC gesetzt, ein Index I&sub4;&sub0;&sub0; gleich dem zweit-höchstwertigen Byte gesetzt, ein Index I&sub3;&sub9;&sub2; gleich dem dritt-höchstwertigen Byte gesetzt, und ein Index I&sub3;&sub8;&sub4; gleich dem niedrigstwertigen Byte gesetzt.
- Jede Verweistabelle weist 256 Eintragungen auf, wobei die Werte derselben von dem speziellen Polynom, auf dem der CRC-Code-Algorithmus basiert, abhängen werden und, wie es im folgenden beschrieben wird, berechnet werden können. Ein Satz von Tabellen T&sub3;&sub8;&sub4;, T&sub3;&sub9;&sub2;, T&sub4;&sub0;&sub0; und T&sub4;&sub0;&sub8; für das Polynom g(x) ist in den Fig. 4a - 7b dargestellt.
- In Schritt 34 gewinnt die Prozedur den Wert des PCRC für das Segment s wieder, wobei die Segmente in der Reihenfolge numeriert sind, in der dieselben empfangen wurden; folglich entspricht der erste wiedergewonnene PCRC (s = 1) dem höchstwertigen Segment, das das erste zu empfangene Segment ist; das letzte wiedergewonnene Segment ist das niedrigstwertige Segment, wobei s gleich der Gesamtzahl der Segmente in der Mitteilung ist.
- Ein aktualisierter Wert für CRC wird gemäß der Beziehung
- CRC = PCRC(s) T&sub4;&sub0;&sub8;(I&sub4;&sub0;&sub8;) T&sub4;&sub0;&sub0;(I&sub4;&sub0;&sub0;) T&sub3;&sub9;&sub2;(I&sub3;&sub9;&sub2;) T&sub3;&sub8;&sub4;(I&sub3;&sub8;&sub4;) (2)
- in Schritt 36 hergeleitet, wobei eine bitweise Exklusiv- ODER-Operation angibt, und wobei T&sub4;&sub0;&sub8; (I&sub4;&sub0;&sub8;) die Eintragung in der Tabelle T&sub4;&sub0;&sub8; für den gegenwärtigen Wert des Index I&sub4;&sub0;&sub8; angibt.
- Der Wert von s wird in Schritt 38 um Eins inkrementiert, wobei der inkrementierte Wert in Schritt 40 überprüft wird. Falls s kleiner oder gleich der Gesamtzahl der Segmente in der Mitteilung ist, springt die Prozedur zu Schritt 32 zurück, um gemäß den jeweiligen Bytes, die den aktualisierten Wert des CRC aufweisen, neue Werte für die Indizes I&sub3;&sub8;&sub4;, I&sub3;&sub9;&sub2;, I&sub4;&sub0;&sub0; und I&sub4;&sub0;&sub8; herzuleiten.
- Falls der inkrementierte Wert von s größer als die Gesamtzahl der Segmente in der Mitteilung ist, ist der Wert des CRC der CRC-Überprüfungswert für die vollständige Mitteilung. Dieser wird in Schritt 42 mit dem erwarteten Wert von C704DD7BH für eine fehlerfreie Mitteilung auf Gleichheit überprüft. Falls der CRC diesen Wert aufweist, wird in Schritt 44 ein gültiger CRC-Code angezeigt; andernfalls wird in Schritt 46 ein ungültiger CRC-Code und folglich das Auftreten eines oder mehrerer Fehler in der empfangenen Mitteilung angezeigt. In dem letzteren Fall würden abhängig von dem speziellen Kommunikationsprotokoll, das verwendet wird, geeignete Schritte, wie z. B. ein Anfordern einer erneuten Übertragung der Mitteilung, vorgenommen werden.
- Obwohl die Prozedur von Fig. 3 in dem Zusammenhang beschrieben worden ist, daß der Empfang einer Mitteilung abgeschlossen ist, bevor eine Herleitung des Gesamt-CRC-Überprüfungswertes beginnt, sollte angemerkt werden, daß die Prozedur gleichermaßen bei einer Herleitung des CRC-Überprüfungswertes gleichzeitig mit dem Empfang jedes aufeinanderfolgenden Segments angewendet werden kann.
- Beispielsweise können eine Drei-Segment-Mitteilung und ein angefügter CRC-Code empfangen werden, die aufeinanderfolgende Segmente mit Teil-CRCs aufweisen, die mittels des Schieberegisters 14 wie folgt hergeleitet werden:
- PCRC(1) = A07C4DD8H PCRC(2) = 072FEB03H PCRC(3) = 2E24F35DH.
- Die Werte von I&sub3;&sub8;&sub4;, I&sub3;&sub9;&sub2;, I&sub4;&sub0;&sub0; und I&sub4;&sub0;&sub8; für den Anfangswert des CRC von FFFFFFFFH sind
- I&sub3;&sub8;&sub4; = I&sub3;&sub9;&sub2; = I&sub4;&sub0;&sub0; = I&sub4;&sub0;&sub8; = FFH,
- für die die Verweistabelleneintragungen lauten
- T&sub3;&sub8;&sub4; = 580FA91EH, T&sub3;&sub9;&sub2; = 513658BFH, T&sub4;&sub0;&sub0; = 4A0E09B0H und T&sub4;&sub0;&sub8; = 150516A1H.
- Die erste Berechnung des CRC in Schritt 36 ergibt
- CRC = A07C4DD8 580FA91E 513658BF 4A0E09B0 150516A1 = F64EA368H.
- Die nächsten Werte von I&sub3;&sub8;&sub4;, I&sub3;&sub9;&sub2;, I&sub4;&sub0;&sub0; und I&sub4;&sub0;&sub8; sind I&sub3;&sub8;&sub4; = 68H, I&sub3;&sub9;&sub2; = A3H, I&sub4;&sub0;&sub0; = 4EH und I&sub4;&sub0;&sub8; = F6H,
- wobei die Verweistabelleneintragungen lauten
- T&sub3;&sub8;&sub4; = 267A5A62H, T&sub3;&sub9;&sub2; = D5B60D44H, T&sub4;&sub0;&sub0; = 859250ACH und T&sub4;&sub0;&sub8; = 1EE6098CH.
- So ergibt die nächste Berechnung des CRC in Schritt 36
- CRC = 072FEB03 267A5A62 D5B60D44 859250AC 1EE6098C = 6F97E505H.
- Die neuen Werte von I&sub3;&sub8;&sub4;, I&sub3;&sub9;&sub2;, I&sub4;&sub0;&sub0; und I&sub4;&sub0;&sub8; sind folglich
- I&sub3;&sub8;&sub4; = 05H, I&sub3;&sub9;&sub2; = E5H, I&sub4;&sub0;&sub0; = 97H und I&sub4;&sub0;&sub8; = 6FH,
- wobei die entsprechenden Verweistabelleneintragungen lauten
- T&sub3;&sub8;&sub4; = B55AB166H, T&sub3;&sub9;&sub2; = ED693030H, T&sub4;&sub0;&sub0; = 1A274B01H und T&sub4;&sub0;&sub8; = AB34E471H.
- So ergibt die endgültige Berechnung des CRC in Schritt 36
- CRC = 2E24F35D B55AB166 ED693030 1A274B01 AB34E471 = C704DD7BH.
- Dies ist der erwartete Wert für die CRC-Überprüfung, so daß der CRC-Prozeß keine Übertragungsfehler anzeigt.
- Die Verweistabellen T&sub3;&sub8;&sub4;, T&sub3;&sub9;&sub2;, T&sub4;&sub0;&sub0; und T&sub4;&sub0;&sub8; enthalten Werte, die gemäß den folgenden Beziehungen für 0 ≤ i < 256 berechnet werden:
- T&sub3;&sub8;&sub4;[i] = (x³&sup8;&sup4; i(x)) mod g(x) (3)
- T&sub3;&sub9;&sub2;[i] = (X³&sup9;² i(x)) mod g(x) (4)
- T&sub4;&sub0;&sub0;[i] = (X&sup4;&sup0;&sup0; i(x)) mod g(x) (5)
- T&sub4;&sub0;&sub8;[i] = (x&sup4;&sup0;&sup8; i(x)) mod g(x) (6)
- wobei i(x) das Polynom ist, das dem Acht-Bit-Wert i entspricht. Die folgende Routine in einem C-Programmcode kann zu diesem Zweck verwendet werden:
- #define MASK 0X80000000L /* Maske für höchstwertiges Bit */
- #define P 0x04c11db7L /* Generator-Programm
- g(x) = x^{32} + P(x) */
- void table () ;
- unsigned long x_power () ;
- main ()
- {
- unsigned long t384[256], t392[256], t400[256], t408[256];
- unsigned long h384;
- /* Setze h384(x) = x^{384} mod g(x) */
- h384 = x_power(384, 1);
- /* Erstelle Verweistabellen für x^{j}i(x) mod g(x) für alle 8-bit i und j = 384, 392, 400, 408 */
- table(t384, h384);
- table(t392, x_power(8, h384));
- table(t400, x_power(16, h384));
- table(t408, x_power(24, h384));
- }
- /* Erstelle Verweistabelle für h(x)i(x) mod g(x) für alle 8-bit i (h ist 32 bits) */
- void table(t, h)
- unsigned long t[256], h;
- {
- int u, i, k;
- unsigned long x_table[8];
- unsigned long mask;
- /* Setze x_table [u] = h (x) ^ {u} mod g (x) für 0 < = u < 8 */
- x_table[0] = h;
- for (u=1; u< 8; u++)
- x_table[u] = x_power(1, x_table[u-1]);
- /* Setze t[i] = h(x)i(x) mod g(x) für alle 8-bit i */
- for (i=0; i< 256; i++)
- {
- /* Aussuchen der Terme h(x)x {u} mod g(x) aus x_table[]
- gemäß den Positionen der 1-Werte in i */
- for (mask=1, k=0; k< 8; mask< < =1, k++
- if (i & mask)
- t[i] ^= x_table[k];
- }
- }
- /* Rücksprünge (x^{r} h(x)) mod g(x) */
- unsigned long x_power(r, h)
- int r;
- unsigned long h;
- {
- int i;
- for (i=1; i< =r; i++)
- {
- /* Schiebe h um Eins nach links, XOR mit P,
- falls das höchstwertige Bit 1 war */
- if (h & MASK)
- h = (h < < 1) ^ P;
- else
- h < < = 1;
- }
- return(h);
- }
Claims (10)
1. Ein Verfahren zum Überprüfen eines CRC-Codes bezüglich
eines Datenblocks, der als Mehrzahl von Teilblöcken
über ein Kommunikationsmedium übertragen wird, wobei
der CRC-Code nach einer Division durch ein
vorbestimmtes Polynom eines Operanden, der aus dem Datenblock
hergeleitet wird, einen Rest aufweist, wobei das
Verfahren folgende Schritte aufweist:
Herleiten (14) eines jeweiligen Teil-CRC-Codes für
jeden empfangenen Teildatenblock aus einem vorbestimmten
Initialisierungswert und unter Verwendung des
vorbestimmten Polynoms;
Kombinieren (30, 32, 34, 36) der Teil-CRC-Codes, um
einen CRC-Überprüfungswert für den vollständigen
Datenblock wie empfangen herzuleiten, der anzeigt, ob der
empfangene Datenblock mit einem CRC-Code konsistent
ist, der für den Datenblock als Ganzes betrachtet unter
Verwendung des vorbestimmten Polynoms hergeleitet
worden wäre; und
Nachprüfen (42) der Gültigkeit des Überprüfungswertes
für den vollständigen empfangenen Datenblock.
2. Das Verfahren gemäß Anspruch 1, bei dem die Teil-CRC-
Codes unter Verwendung einer
Hardwareschaltungsanordnung (14) hergeleitet werden, die für diesen Zweck
reserviert ist, und bei dem der Überprüfungswert für den
vollständigen Datenblock unter Verwendung einer
Mehrzweckhardwareschaltungsanordnung (18), die von
Programmanweisungen gesteuert wird, hergeleitet wird.
3. Das Verfahren gemäß Anspruch 1 oder 2, bei dem die
Teil-CRC-Codes hergeleitet werden durch:
Voreinstellen eines Schieberegisters (14) mit dem
Initialisierungswert, wobei das Schieberegister über
Exklusiv-ODER-Gatter eine Rückkopplung von dessen Ausgang
zu vorbestimmten Schieberegisterstufen aufweist;
Schieben eines Datenteilblocks in das Schieberegister;
und
Speichern (16) des sich ergebenden Inhalts des
Schieberegisters.
4. Das Verfahren gemäß einem der vorhergehenden Ansprüche,
bei dem der Initialisierungswert Null ist.
5. Das Verfahren gemäß einem der vorhergehenden Ansprüche,
bei dem der CRC-Überprüfungswert durch Kombinieren (36)
des Teil-CRC-Codes für den zweiten und jeden
nachfolgenden Datenteilblock mit einem oder mehreren Werten
hergeleitet wird, die aus einer oder mehreren
vorbestimmten Tabellen gemäß dem Ergebnis eines solchen
Kombinationsschrittes für den vorhergehenden Teil-CRC-Code
ausgewählt werden (32), wobei ein Wert oder Werte für
eine Kombination mit dein Teil-CRC-Code für den ersten
Datenteilblock aus der Tabelle oder den Tabellen gemäß
einem vorbestimmten Anf angswert (30) ausgewählt wird
bzw. werden.
6. Das Verfahren gemäß Anspruch 5, bei dem eine Mehrzahl
von vorbestimmten Tabellen vorgesehen ist, und bei dem
Werte aus den Tabellen gemäß Werten von jeweiligen
Abschnitten des Ergebnisses des Kombinationsschrittes für
den vorhergehenden Teil-CRC-Code oder des vorbestimmten
Anfangswertes ausgewählt werden.
7. Das Verfahren gemäß Anspruch 6, bei dem die Teil-CRC-
Codes und die Tabelle oder Tabellen als
Hexadezimalwerte
gespeichert werden, wobei die jeweiligen Abschnitte
benachbarte Paare von Hexadezimalziffern sind, und
wobei der Kombinationsschritt unter Verwendung einer
bitweisen Modulo-2-Addition durchgeführt wird.
8. Das Verfahren gemäß Anspruch 7, bei dem der
vorbestimmte Anf angswert nur aus hexadezimalen F-Werten besteht,
wobei der CRC-Code gemäß dem Polynom
g (x) =x³²+x²&sup6;+x²³+x²²+x¹&sup6;+x¹²+x¹¹+x¹&sup0;+x&sup8;+x&sup7;+x&sup5;+x&sup4;+x²+x+1
hergeleitet wird, und die Werte für den
Kombinationsschritt aus den Tabellen von Fig. 4a bis 7b ausgewählt
werden.
9. Vorrichtung zum Überprüfen eines CRC-Codes bezüglich
eines Datenblocks, der als Mehrzahl von Teilblöcken
über ein Kommunikationsmedium übertragen wird, wobei
der CRC-Code nach einer Division durch ein
vorbestimmtes Polynom eines Operanden, der aus dem Datenblock
hergeleitet wird, einen Rest aufweist, wobei die
Vorrichtung folgende Merkmale aufweist:
eine Einrichtung zum Herleiten (14) eines jeweiligen
Teil-CRC-Codes für jeden empfangenen Teildatenblock aus
einem vorbestimmten Initialisierungswert und unter
Verwendung des vorbestimmten Polynoms;
eine Einrichtung zum Kombinieren (30, 32, 34, 36) der
Teil-CRC-Codes, um einen CRC-Überprüfungswert für den
vollständigen Datenblock wie empfangen herzuleiten, der
anzeigt, ob der empfangene Datenblock mit einem CRC-
Code konsistent ist, der für den Datenblock als Ganzes
betrachtet unter Verwendung des vorbestimmten Polynoms
hergeleitet worden wäre; und
eine Einrichtung zum Nachprüfen der Gültigkeit (42) des
Überprüfungswertes für den vollständigen empfangenen
Datenblock.
10. Die Vorrichtung gemäß Anspruch 9, die eine
Hardwareschaltungsanordnung (14), die für eine Herleitung der
Teil-CRC-Codes reserviert ist, und eine
Mehrzweckhardwareschaltungsanordnung (18), die durch
Programmanweisungen gesteuert wird, zum Herleiten des
Überprüfungswertes für den vollständigen Datenblock aufweist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP93300852A EP0609595B1 (de) | 1993-02-05 | 1993-02-05 | Verfahren und Gerät zum Nachprüfen von CRC-Koden, wobei CRC Teilkode kombiniert werden |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69320321D1 DE69320321D1 (de) | 1998-09-17 |
DE69320321T2 true DE69320321T2 (de) | 1998-12-24 |
Family
ID=8214298
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69320321T Expired - Fee Related DE69320321T2 (de) | 1993-02-05 | 1993-02-05 | Verfahren und Gerät zum Nachprüfen von CRC-Koden, wobei CRC Teilkode kombiniert werden |
Country Status (4)
Country | Link |
---|---|
US (1) | US5778013A (de) |
EP (1) | EP0609595B1 (de) |
JP (1) | JP3306210B2 (de) |
DE (1) | DE69320321T2 (de) |
Families Citing this family (69)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5878057A (en) * | 1995-10-06 | 1999-03-02 | Tektronix, Inc. | Highly parallel cyclic redundancy code generator |
FR2747869A1 (fr) * | 1996-04-17 | 1997-10-24 | Canon Kk | Procede et dispositif de correction d'erreurs de transmission de suites de nombres |
US6161207A (en) * | 1996-11-15 | 2000-12-12 | Motorola, Inc. | Communications unit and method of communicating having efficient packet acknowledgement |
GB2322526A (en) * | 1997-02-22 | 1998-08-26 | The Technology Partnership Plc | Encoding and decoding data |
EP0976221B1 (de) * | 1997-04-14 | 2004-04-14 | Siemens Aktiengesellschaft | Verfahren und anordnung zur bildung und überprüfung einer prüfsumme für digitale daten, die in mehrere datensegmente gruppiert sind |
US7167927B2 (en) | 1997-10-14 | 2007-01-23 | Alacritech, Inc. | TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism |
US6434620B1 (en) | 1998-08-27 | 2002-08-13 | Alacritech, Inc. | TCP/IP offload network interface device |
US7133940B2 (en) * | 1997-10-14 | 2006-11-07 | Alacritech, Inc. | Network interface device employing a DMA command queue |
US8539112B2 (en) | 1997-10-14 | 2013-09-17 | Alacritech, Inc. | TCP/IP offload device |
US7089326B2 (en) * | 1997-10-14 | 2006-08-08 | Alacritech, Inc. | Fast-path processing for receiving data on TCP connection offload devices |
US7076568B2 (en) * | 1997-10-14 | 2006-07-11 | Alacritech, Inc. | Data communication apparatus for computer intelligent network interface card which transfers data between a network and a storage device according designated uniform datagram protocol socket |
US6757746B2 (en) | 1997-10-14 | 2004-06-29 | Alacritech, Inc. | Obtaining a destination address so that a network interface device can write network data without headers directly into host memory |
US8782199B2 (en) | 1997-10-14 | 2014-07-15 | A-Tech Llc | Parsing a packet header |
US6697868B2 (en) | 2000-02-28 | 2004-02-24 | Alacritech, Inc. | Protocol processing stack for use with intelligent network interface device |
US7185266B2 (en) | 2003-02-12 | 2007-02-27 | Alacritech, Inc. | Network interface device for error detection using partial CRCS of variable length message portions |
US6658480B2 (en) | 1997-10-14 | 2003-12-02 | Alacritech, Inc. | Intelligent network interface system and method for accelerated protocol processing |
US7237036B2 (en) | 1997-10-14 | 2007-06-26 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding a TCP connection |
US6687758B2 (en) * | 2001-03-07 | 2004-02-03 | Alacritech, Inc. | Port aggregation for network connections that are offloaded to network interface devices |
US6226680B1 (en) | 1997-10-14 | 2001-05-01 | Alacritech, Inc. | Intelligent network interface system method for protocol processing |
US8621101B1 (en) | 2000-09-29 | 2013-12-31 | Alacritech, Inc. | Intelligent network storage interface device |
US7174393B2 (en) | 2000-12-26 | 2007-02-06 | Alacritech, Inc. | TCP/IP offload network interface device |
US6029186A (en) * | 1998-01-20 | 2000-02-22 | 3Com Corporation | High speed calculation of cyclical redundancy check sums |
US6223320B1 (en) * | 1998-02-10 | 2001-04-24 | International Business Machines Corporation | Efficient CRC generation utilizing parallel table lookup operations |
US7664883B2 (en) | 1998-08-28 | 2010-02-16 | Alacritech, Inc. | Network interface device that fast-path processes solicited session layer read commands |
US6405340B1 (en) * | 1999-07-02 | 2002-06-11 | Ericsson Inc. | Flexible method of error protection in communications systems |
US6681364B1 (en) * | 1999-09-24 | 2004-01-20 | International Business Machines Corporation | Cyclic redundancy check for partitioned frames |
CN1411630A (zh) * | 2000-02-17 | 2003-04-16 | 模拟装置公司 | 用于生成循环余数核对代码以及生成其他基于余数的编码的方法、设备和产品 |
US6763492B1 (en) * | 2000-09-26 | 2004-07-13 | Qualcomm Incorporated | Method and apparatus for encoding of linear block codes |
US8019901B2 (en) | 2000-09-29 | 2011-09-13 | Alacritech, Inc. | Intelligent network storage interface system |
US6720074B2 (en) * | 2000-10-26 | 2004-04-13 | Inframat Corporation | Insulator coated magnetic nanoparticulate composites with reduced core loss and method of manufacture thereof |
US7065702B2 (en) * | 2001-04-12 | 2006-06-20 | Siliquent Technologies Ltd. | Out-of-order calculation of error detection codes |
US6804220B2 (en) * | 2001-05-07 | 2004-10-12 | Qualcomm Incorporated | Method and apparatus for generating control information for packet data |
GB2375463A (en) * | 2001-05-08 | 2002-11-13 | Ubinetics Ltd | Configurable encoder |
US20020191938A1 (en) * | 2001-06-13 | 2002-12-19 | Ethicon Endo-Surgery, Inc. | Fiberoptic coil tray and carrier package |
US6928608B2 (en) * | 2001-08-14 | 2005-08-09 | Optix Networks Ltd. | Apparatus and method for accelerating cyclic redundancy check calculations |
US20030121835A1 (en) * | 2001-12-31 | 2003-07-03 | Peter Quartararo | Apparatus for and method of sieving biocompatible adsorbent beaded polymers |
US7174498B2 (en) | 2002-02-15 | 2007-02-06 | Intel Corporation | Obtaining cyclic redundancy code |
US7543087B2 (en) | 2002-04-22 | 2009-06-02 | Alacritech, Inc. | Freeing transmit memory on a network interface device prior to receiving an acknowledgement that transmit data has been received by a remote device |
EP1499024B1 (de) * | 2002-04-22 | 2010-06-30 | Fujitsu Limited | Fehlerdetektionscodierer und -decodierer |
US7496689B2 (en) | 2002-04-22 | 2009-02-24 | Alacritech, Inc. | TCP/IP offload device |
US20040153935A1 (en) * | 2002-07-19 | 2004-08-05 | Niesen Joseph W. | Reduced overhead CRC functionality for packets and link layer superframes |
US20040158794A1 (en) * | 2002-07-19 | 2004-08-12 | Niesen Joseph W. | Reduced overhead CRC functionality for packets and link layer superframes |
US7337241B2 (en) * | 2002-09-27 | 2008-02-26 | Alacritech, Inc. | Fast-path apparatus for receiving data corresponding to a TCP connection |
US20040088262A1 (en) * | 2002-11-06 | 2004-05-06 | Alacritech, Inc. | Enabling an enhanced function of an electronic device |
US7343541B2 (en) * | 2003-01-14 | 2008-03-11 | Broadcom Corporation | Data integrity in protocol offloading |
US7181671B2 (en) * | 2003-09-23 | 2007-02-20 | Macronix International Co., Ltd. | Parallelized CRC calculation method and system |
US6996070B2 (en) * | 2003-12-05 | 2006-02-07 | Alacritech, Inc. | TCP/IP offload device with reduced sequential processing |
US7360142B1 (en) | 2004-03-03 | 2008-04-15 | Marvell Semiconductor Israel Ltd. | Methods, architectures, circuits, software and systems for CRC determination |
US7434150B1 (en) | 2004-03-03 | 2008-10-07 | Marvell Israel (M.I.S.L.) Ltd. | Methods, circuits, architectures, software and systems for determining a data transmission error and/or checking or confirming such error determinations |
US8248939B1 (en) | 2004-10-08 | 2012-08-21 | Alacritech, Inc. | Transferring control of TCP connections between hierarchy of processing mechanisms |
US20060168495A1 (en) * | 2005-01-25 | 2006-07-27 | Analog Devices, Inc. | Computation of cyclic redundancy check |
US7738500B1 (en) | 2005-12-14 | 2010-06-15 | Alacritech, Inc. | TCP timestamp synchronization for network connections that are offloaded to network interface devices |
US7958436B2 (en) | 2005-12-23 | 2011-06-07 | Intel Corporation | Performing a cyclic redundancy checksum operation responsive to a user-level instruction |
US7925957B2 (en) | 2006-03-20 | 2011-04-12 | Intel Corporation | Validating data using processor instructions |
US7937643B1 (en) | 2006-09-18 | 2011-05-03 | Mediatek Inc. | Mobile communication device and data reception method |
US8379738B2 (en) * | 2007-03-16 | 2013-02-19 | Samsung Electronics Co., Ltd. | Methods and apparatus to improve performance and enable fast decoding of transmissions with multiple code blocks |
DE102007032659A1 (de) * | 2007-07-13 | 2009-01-15 | Knick Elektronische Messgeräte GmbH & Co. KG | Verfahren zur telegrammweisen Datenübertragung in einem seriellen Kommunikationsprotokoll sowie dieses nutzende Datenübertragungsvorrichtung |
KR101286238B1 (ko) * | 2007-08-01 | 2013-07-15 | 삼성전자주식회사 | 데이터 병렬화 수신기 |
JP4831018B2 (ja) * | 2007-08-28 | 2011-12-07 | 日本電気株式会社 | 並列巡回符号生成装置および並列巡回符号検査装置 |
US8539513B1 (en) | 2008-04-01 | 2013-09-17 | Alacritech, Inc. | Accelerating data transfer in a virtual computer system with tightly coupled TCP connections |
US8341286B1 (en) | 2008-07-31 | 2012-12-25 | Alacritech, Inc. | TCP offload send optimization |
US9306793B1 (en) | 2008-10-22 | 2016-04-05 | Alacritech, Inc. | TCP offload device that batches session layer headers to reduce interrupts as well as CPU copies |
US9081700B2 (en) | 2013-05-16 | 2015-07-14 | Western Digital Technologies, Inc. | High performance read-modify-write system providing line-rate merging of dataframe segments in hardware |
US9542261B2 (en) * | 2013-07-01 | 2017-01-10 | Ixia | Methods, systems, and computer readable media for multi-packet cyclic redundancy check engine |
DE102013214855A1 (de) * | 2013-07-30 | 2015-02-05 | Robert Bosch Gmbh | Verfahren und Vorrichtungen zur Verwaltung von Messdaten einer Batterie |
US9304709B2 (en) | 2013-09-06 | 2016-04-05 | Western Digital Technologies, Inc. | High performance system providing selective merging of dataframe segments in hardware |
US9684580B2 (en) | 2013-11-05 | 2017-06-20 | Ixia | Methods, systems, and computer readable media for efficient scrambling of data for line rate transmission in high speed communications networks |
CN105095726B (zh) | 2014-05-08 | 2018-05-11 | 阿里巴巴集团控股有限公司 | 生成验证码的方法及装置 |
DE112016006791B4 (de) | 2016-06-07 | 2020-02-06 | Mitsubishi Electric Corporation | Datenverarbeitungsvorrichtung, Datenverarbeitungsverfahren und Datenverarbeitungsprogramm |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4703485A (en) * | 1986-02-10 | 1987-10-27 | International Business Machines Corporation | Method and apparatus for computing and implementing error detection check bytes |
EP0276991B1 (de) * | 1987-01-30 | 1992-05-13 | Sony Corporation | Verfahren und Gerät zum Kodieren von aufgezeichneten Daten mit einem Identifikationskode und einem Fehlerprüfkode |
GB8704883D0 (en) * | 1987-03-03 | 1987-04-08 | Hewlett Packard Co | Secure information storage |
US5247524A (en) * | 1990-06-29 | 1993-09-21 | Digital Equipment Corporation | Method for generating a checksum |
US5321704A (en) * | 1991-01-16 | 1994-06-14 | Xilinx, Inc. | Error detection structure and method using partial polynomial check |
US5303302A (en) * | 1992-06-18 | 1994-04-12 | Digital Equipment Corporation | Network packet receiver with buffer logic for reassembling interleaved data packets |
JP2821324B2 (ja) * | 1992-11-04 | 1998-11-05 | 三菱電機株式会社 | 誤り訂正回路 |
US5410546A (en) * | 1993-11-01 | 1995-04-25 | Storage Technology Corporation | Apparatus and method for CRC computation over fixed length blocks containing variable length packets of data received out of order |
-
1993
- 1993-02-05 EP EP93300852A patent/EP0609595B1/de not_active Expired - Lifetime
- 1993-02-05 DE DE69320321T patent/DE69320321T2/de not_active Expired - Fee Related
-
1994
- 1994-02-04 JP JP03293894A patent/JP3306210B2/ja not_active Expired - Fee Related
-
1996
- 1996-01-11 US US08/584,804 patent/US5778013A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP3306210B2 (ja) | 2002-07-24 |
EP0609595B1 (de) | 1998-08-12 |
JPH0715354A (ja) | 1995-01-17 |
EP0609595A1 (de) | 1994-08-10 |
DE69320321D1 (de) | 1998-09-17 |
US5778013A (en) | 1998-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69320321T2 (de) | Verfahren und Gerät zum Nachprüfen von CRC-Koden, wobei CRC Teilkode kombiniert werden | |
DE69624441T2 (de) | Hochparallel zyklischer Redundanzkodegenerator | |
DE69232384T2 (de) | CRC-Betriebsverfahren und HEC(Kopf-Fehlerprüfung)-Synchronisierungseinheit für ein ATM-Vermittlungsverfahren | |
DE69129558T2 (de) | Synchronisierungsanordnung für nach einem asynchronen Transfermodus übertragenen Zellen | |
DE69020641T2 (de) | Synchronisation einer Sequenz. | |
DE69324050T2 (de) | Modifizierung eines CRC Prüffeldes bei der Weiterleitung von Datenpaketen | |
DE69731074T2 (de) | Anordnung und Verfahren zur Übertragung von Daten über eine Vielzahl von Kanälen | |
DE4228316C2 (de) | Adapter für Übertragungsleitungen unter Verwendung von HDLC-Rahmen | |
DE69424877T2 (de) | Reed-solomon-dekoder | |
DE69329098T2 (de) | Vorrichtung und verfahren zur überprüfung von nachrichten in paketform mit kopfende bestehend aus wegleitinformation und crc prüfsequenz | |
DE69834542T2 (de) | Hardwareoptimierter reed-solomon-decoder zur decodierung grosser datenblöcke | |
DE60124851T2 (de) | Vorrichtung und Verfahren zur Fehlererkennung in einem CRC Code mit invertierten Paritätsbits | |
EP0470451A2 (de) | Verfahren zur Rechnung des CRC in einem HDLC-Protokoll | |
DE3787900T2 (de) | Verfahren und Gerät zur Erzeugung von Prüfungs-Byten zur Fehlerdetektion für einen Datenblock. | |
DE69731932T2 (de) | Verfahren und Vorrichtung für zweistufige CRC-32-Berechnung | |
DE69907566T2 (de) | Reed Solomon Kodierungsgerät und Reed Solomon Kodierungsverfahren | |
DE1223414B (de) | Schaltungsanordnung fuer Codeuebersetzer in Empfangseinrichtungen fuer Nachrichten in fehlerkorrigierendem Code | |
DE2262070A1 (de) | Mit schieberegistern arbeitendes fehlerkorrektursystem | |
DE69125685T2 (de) | Einrichtung zur geschützten Kommunikation und System zur geschützten Übertragung | |
EP0545498A2 (de) | Verfahren und Schaltungsanordnung zum Decodieren von RS-codierten Datensignalen | |
DE60308197T2 (de) | Zyklisch redundante prüfung mit effizienter neuberechnung des fehlererkennenden codes | |
DE69834296T2 (de) | Verschlüsselungsvorrichtung und rechnerlesbares Aufzeichnungsmedium mit Ausführungsprogramm | |
DE69524430T2 (de) | Crc/epc prüfsystem | |
DE602005003728T2 (de) | Korrektur von durch Scrambling bedingter Fehlerfortpflanzung mit anschliessender Vorwärtsfehlerkorrektur | |
DE3789266T2 (de) | Fehlerkorrekturgerät. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: AGILENT TECHNOLOGIES, INC. (N.D.GES.D.STAATES DELA |
|
8339 | Ceased/non-payment of the annual fee |