DE69623545T2 - Schaltung und Verfahren zur Erzeugung von Prüfsummen - Google Patents
Schaltung und Verfahren zur Erzeugung von PrüfsummenInfo
- Publication number
- DE69623545T2 DE69623545T2 DE69623545T DE69623545T DE69623545T2 DE 69623545 T2 DE69623545 T2 DE 69623545T2 DE 69623545 T DE69623545 T DE 69623545T DE 69623545 T DE69623545 T DE 69623545T DE 69623545 T2 DE69623545 T2 DE 69623545T2
- Authority
- DE
- Germany
- Prior art keywords
- data
- input
- adder
- checksum
- carry
- 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 abstract description 17
- 230000005540 biological transmission Effects 0.000 claims description 16
- 238000012546 transfer Methods 0.000 claims description 5
- 230000011218 segmentation Effects 0.000 claims 3
- 238000012432 intermediate storage Methods 0.000 claims 2
- 230000003139 buffering effect Effects 0.000 claims 1
- 230000008878 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- 230000000295 complement effect Effects 0.000 abstract description 5
- 238000012545 processing Methods 0.000 description 6
- 238000007792 addition Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003340 mental effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Detection And Correction Of Errors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Description
- Diese Erfindung betrifft eine Schaltung und ein Verfahren zum Bestimmen einer Prüfsumme für ein digitales Datenpaket. Die Schaltung und das Verfahren gemäß der vorliegenden Erfindung finden insbesondere beim Bestimmen einer Prüfsumme für ein digitales Datenpaket des Transmission Control Protocol (TCP) Anwendung. In der digitalen Telekommunikation werden Daten häufig in Datenströmen von Datensymbolen oder Signalen, sog. "Paketen" befördert. Um ein Verifizieren der empfangenen Daten zu ermöglichen, können die Pakete Codes enthalten, die von den übermittelten Daten abgeleitet werden. Ein derartiger Code ist eine Prüfsumme, die bei Transmission Control Protocol (TCP)-Paketen verwendet wird. Die Prüfsumme wird aus den Daten, die in dem Paket übertragen werden sollen, errechnet und zu dem Dateikopf des Pakets zusammen mit anderen Informationen wie Quell- und Zielangaben hinzugefügt, bevor die Übertragung des Pakets stattfindet. Wenn das Paket am Ziel empfangen wird, wird die Prüfsumme von dem Paketkopf abgerufen, und es wird eine neue Prüfsumme aus dem erhaltenen Datenpaket errechnet. Die abgerufene Prüfsumme und die neu berechnete Prüfsumme werden dann verglichen, wobei jede Abweichung darauf hinweist, dass das empfangene Paket nicht genau mit dem abgesandten Paket übereinstimmt.
- Ein Weg, auf dem eine Prüfsumme für ein Paket, das übertragen werden soll, erzeugt werden kann, ist das Verwenden eines Wirtsrechners, von dem das Datenpaket ausgeht, um die Prüfsumme zu errechnen, bevor die Daten an die Telekommunikationsschnittstelle zum Übertragen weitergereicht werden. In diesem Fall wird eine Prüfsumme mittels eines Softwarealgorithmus zum Steuern eines Mehrzweckrechners erzeugt. Obwohl dieses System keine zusätzliche Hardware benötigt, um das Vorsehen einer Prüfsumme zu implementieren, und die Datenpakete zusammengesetzt werden können, bevor sie den Wirtsrechner verlassen, kann das Erzeugen von Prüfsummen den Wirtsrechner in unerwünschter Weise belasten und eine nicht optimale Ausnutzung der Rechenkapazität des Wirtsrechners bedeuten.
- Da der Prüfsummenwert für ein Datenpaket nur bestimmt werden kann, nachdem alle Daten, die in dem Paket übermittelt werden sollen, zusammengestellt worden sind, kann das Erzeugen der Prüfsumme in der Telekommunikationsschnittstelle durchgeführt werden, welche den Wirtsrechner mit dem Telekommunikationsrietzwerk verbindet. Eine Mehrzweckrechnerschaltung mit Softwaresteuerung könnte zu diesem Zweck verwendet werden. Jedoch ist es im Allgemeinen wünschenswert, so viele der Telekommunikationsschnittstellenfunktionen wie möglich in einer einzigen integrierten Schaltung zur Verfügung zu stellen, in welchem Falle eine zweckbestimmte Prüfsummenerzeugungsschaltung in Hinblick auf die benötigte Siliziumfläche effizienter sein kann. Weil die Prüfsumme in der Telekommunikationsschnittstelle bestimmt wird, ist es außerdem notwendig, die Prüfsummen für die Pakete "im Flug" zu erzeugen, was ebenfalls eine schnelle und kompakte zweckbestimmte Summierungsschaltung nahelegt. Um eine 16-Bit-TCP-Prüfsumme zu errechnen, ist es notwendig, die 16-Bit-Einserkomplementsumme der TCP-Paketdaten heranzuziehen. Im Wesentlichen erfordert dies, alle 16-Bit-Daten zu summieren, wobei der Übertrag des 16-Bit-Ergebnisses in die Summe hinein addiert wird. Ein Weg, eine solche Summe zu erhalten, besteht darin, sequenziell alle der 16-Bit-Daten mittels eines Addierers zu addieren, der ein Ergebnis erzeugt, das größer als 16 Bit ist, und dann die signifikantesten Bits, die über die erwünschte 16-Bit-Summe hinausreichen (d. h. der kollektive Übertrag der 16-Bit-Additionen) während zweier Additionsdurchläufe in die 16-Bit-Prüfsumme zurückzuaddieren. Jedoch kann die Addiererschaltung, die notwendig ist, eine Prüfsumme auf diese Art zu erzeugen, zu komplex sein, insbesondere, wenn relativ große Pakete zu bearbeiten sind.
- Die Komplexität des Erzeugens einer 16-Bit-TCP-Prüfsumme wird weiter vergrößert, wenn der Paketdateneingang 32 Bit breit ist, wenn man bedenkt, dass die Prüfsumme im Flug zu berechnen ist. In diesem Fall ist es notwendig, dass pro Taktzyklus 32-Bit-Eingangsdaten verarbeitet werden können, es sei denn, der Prüfsummengenarator ist in der Lage, doppelt so schnell zu arbeiten, wie die Daten hereinkommen. Daher wäre gemäß der Prüfsummenerzeugungsstrategie, die oben dargelegt ist, entweder eine einzige, sehr komplexe Addierschaltung mit 32-Bit Eingang und einem mehr als 32-Bit Ausgang notwendig, oder es wäre ein Paar von 16-Bit Eingangsaddierern mit gemeinsamen Übertragsausgängen (d. h. einem mehr als 16-Bit Summenausgang) notwendig, sowie zusätzliche Schaltungen und Summenzyklen, um ein 16-Bit-Prüfsummenergebnis zu erzeugen.
- EP 0 473 102 betrifft ein Datenkommunikationssystem mit einem Prüfsummenberechnungsmittel, das zwischen einem Mehrzweckwirtsrechner und einer Netzwerkschnittstelle angeordnet ist. Das Prüfsummenberechnungsmittel umfasst eine Vielzahl von Teiladdierern, die Fletscher-Prüfsummenoperationen ausführen. Jeder der Teiladdierer ist aus acht Volladdierern zusammengesetzt, wobei jeder ein Bit breit ist, und die parallel arbeiten, um den betreffenden Teiladdierer zu bilden. Jeder Teiladdierer umfasst weiter ein acht Bit breites Teilsummenausgaberegister und ein acht Bit breites Teilübertragsausgaberegister. Jeder ein Bit breite Volladdierer hat drei Ausgaben zum Addieren dreier Bits einschließlich eines Übertragsbits.
- Entsprechend ist es ein Ziel der Erfindung, das Erzeugen einer TCP-Prüfsumme in einer Schaltung mit einer minimalen Anzahl und minimaler Komplexität von Schaltungselementen sowie eine minimale Zahl von Taktzyklen zu ermöglichen. Es ist ein weiteres Ziel der Erfindung, eine Prüfsummengeneratorschaltung bereitzustellen, die in eine integrierte Telekommunikationsschnittstellenschaltung zum Erzeugen von Prüfsummenwerten für Datenpakete im Flug implementiert werden kann.
- Es ist außerdem ein Ziel der Erfindung, ein Methode bereitzustellen, um Datenströme sequenziell zu verarbeiten, um eine Prüfsumme in einer minimalen Zahl von Verarbeitungszyklen zu erzeugen.
- Die vorliegende Erfindung ist durch die unabhängigen Ansprüche definiert. In einem weiteren Aspekt stellt die Erfindung einen Prüfsummengenerator zum Erzeugen einer N-Bit-Prüfsumme von Daten bereit, die einer ersten und zweiten N-Bit-Dateneingabe zugeführt werden. Der Prüfsummengenerator umfasst einen ersten und einen zweiten Addierer, wobei jeder zum Summieren zweier N-Operanden vorgesehen ist. Eine Ausgabe des ersten Addierers ist an eine erste Eingabe des ersten Addierers gekoppelt, um eine N-Bit-Summe zurückzuführen, und ein Übertragsausgang des ersten Addierers ist an einen Übertragseingang des ersten Addierers gekoppelt, um ein Übertragsbit zurückzuführen. Ein zweiter Eingang des ersten Addierers ist an den ersten N-Bit-Dateneingang gekoppelt, um Daten zu empfangen. Ein Ausgang des zweiten Addierers ist an seinem ersten Eingang des zweiten Addierers gekoppelt, um ein N-Bit-Summenergebnis zurück zu übertragen, und ein Übertragsausgang des zweiten Addierers ist an einen Übertragseingang des zweiten Addierers gekoppelt, um ein Übertragsbit rückzuführen. Ein zweiter Eingang des zweiten Addierers ist angekoppelt, um Daten von dem zweiten N-Bit-Dateneingang zu empfangen, aber er ist mit dem Ausgang des ersten Addierers und dem Übertragsausgang des ersten Addieres gebündelt. Durch das Rückführen der Addiererausgänge und der Übertragsausgänge zurück zu den Eingängen des entsprechenden Addierers können die Addierer die hereinkommenden N-Bitdaten summieren und gleichzeitig jegliche Übertragbits in die akkumulierte Summe halten. Wenn die hereinkommenden Daten alle summiert worden sind, können dann die Ausgänge der zwei Addierer mit jeglichen übriggebliebenen Übertragbits addiert werden, um eine endgültige Prüfsumme zu erzeugen, weil der Eingang des zweiten Addierers der Eingangsdaten, dem Summenausgang des anderen Addierers und dem Übertragsausgang des zweiten Addierers gebündelt ist. Jegliche Übertragsbits, die erzeugt werden, wenn die Teilsummen und Überträge der zwei Addierer zusammengefasst werden, werden in die endgültige Prüfsumme durch die Übertragsausgangsrückführverbindung gefaltet.
- In einer Ausführung der Erfindung werden in den Rückführverbindungen von den Addierersummenausgängen Register bereitgestellt, um die Summenausgaben vorübergehend zu speichern. Diese Register können mit gebündelten Eingängen versehen werden, um den Registern zu erlauben, mit Null initialisiert zu werden, um das Erzeugen einer Prüfsumme zu starten, oder die Register können mit einem Teilprüfsummenwert geladen werden, der vorher gespeichert wurde, wenn die Prüfsummenerzeugung unterbrochen wurde, z. B. in der Mitte eines Datenpakets.
- Die Erfindung stellt außerdem ein Verfahren zur Verfügung, um eine Prüfsumme aus einem Paar erster und zweiter Datenströme zu erzeugen. Das Verfahren beinhaltet das synchrone Summieren des ersten und zweiten Datenstroms in einer Serie von Summierungszyklen, wobei in jedem Summierungszyklus ein Übertragsausgangswert eines vorhergehenden Summierungszyklusses als Übergangseingangswert verwendet wird. Das Ergebnis ist eine erste und eine zweite Summe mit einem ersten und zweiten Übertragswert. Die erste und die zweite Summe werden addiert, zusammen mit dem ersten Übertragswert, so dass eine dritte Summe mit einem dritten Übertragswert erzeugt wird. Der zweite und der dritte Übertragswert werden zu der dritten Summe addiert, um eine vierte Summe und einen vierten Übertragswert zu erzeugen. Schließlich wird der vierte Übertragswert zu der vierten Summe addiert, um eine Prüfsumme für die Daten im ersten und zweiten Datenstrom zu erzeugen.
- In der bevorzugten Ausführung der Erfindung ist die Prüfsumme, die erzeugt werden soll, eine 16-Bit-Einserkomplementsumme der Daten, die in einem TCP-Paket übertragen werden sollen. Das Datenpaket wird auf einem 32 Bit-Datenweg empfangen, der in die jeweils 16 am wenigsten signifikanten Bits der Daten und die 16 signifikantesten Datenbits des ersten und zweiten Datenstroms geteilt ist. Für jeden Summierungszyklus der Eingangspaketdaten wird das Übertragsausgangsbitsignal für den nächsten Zyklus in den Übertragseingang zurückgeführt. Nachdem alle Eingangsdaten addiert worden sind, werden nur weitere drei Verarbeitungszyklen benötigt, um die zwei 16-Bit-Summen zu addieren und alle Übertragsbits zum Bilden der endgültigen 16-Bit-Prüfsumme zusammenzufügen.
- Das Summenergebnis und die Übertragsausgangsrückführstruktur und die Verbindung der Addierer in dem Prüfsummengenerator der vorliegenden Erfindung erlaubt es einer TCP-Prüfsummenschaltung mit minimaler Schaltungskomplexität implementiert zu werden, was besonders dort vorteilhaft ist, wo die Prüfsummenschaltung in einen Abschnitt einer integrierten Schaltung zu integrieren ist. Auch ist es aus der vorangehenden Zusammenfassung offensichtlich, dass der erfindungsgemäße Prüfsummengenerator und das Verfahren es einer TCP Prüfsumme ermöglichen, mit nur drei zusätzlichen Zyklen über die Anzahl der Zyklen erzeugt zu werden, die notwendig sind, um alle Paketdaten einzugeben. Die auf ein Minimum reduzierte Verarbeitungszeit ist insbesondere dann nützlich, wenn die Prüfsumme im Flug erzeugt werden soll, was z. B. bei einem Prüfsummengenerator in einer Kommunikationsschnittstellenschaltung notwendig sein kann.
- Die Erfindung wird im Folgenden detaillierter an Hand eines Beispieles und in Bezugnahme auf die beigefügten Zeichnungen, die eine bevorzugte Ausführung der Erfindung illustrieren, beschrieben.
- Fig. 1 ist ein einfaches Blockdiagramm einer Computerschnittstelle zu einem Telekommunikationsnetzwerk, das eine Anwendung des Prüfsummengenerators gemäß der bevorzugten Ausführung der Erfindung illustriert;
- Fig. 2 ist ein vereinfachtes Blockschaltbild, das die grundlegende Struktur einer bevorzugten Ausführung der Prüfsummengeneratorschaltung illustriert; und
- Fig. 3 ist ein Blockschaltbild einer bevorzugten Ausführungsform der Prüfsummengeneratorschaltung.
- Die vorliegende Erfindung betrifft ein Verfahren und eine Schaltung zum Erzeugen einer Prüfsumme für Datenpakete. Einige Abschnitte der folgenden Beschreibung sind mittels symbolischer Darstellungen der Operationen von Datenbits, die von einem Computer stammen, wiedergegeben. Diese Beschreibungen und Darstellung sind die Mittel, die von dem Fachmann auf dem Gebiet der Datenverarbeitung verwendet werden, und vermitteln in effektivster Weise die Substanz ihrer Arbeit an andere Fachleute. Die Operationen sind solche, die notwendig sind, physikalische Größen physikalisch zu verändern. Üblicherweise, aber nicht notwendigerweise, können diese Größen die Form elektrischer oder magnetischer Signale annehmen, die geeignet sind, gespeichert, übertragen, kombiniert, verglichen oder auf andere Weise verändert zu werden. Es hat sich mit der Zeit als praktisch erwiesen, im Wesentlichen aus Gründen allgemeiner Üblichkeit, diese Signale als Bits, Werte, Terme, Daten usw. zu bezeichnen. Sollte jedoch nicht vergessen werden, dass alle diese und ähnliche Begriffe mit geeigneten physikalischen Größen verbunden sind und lediglich bequeme Bezeichnungen für diese Größen darstellen.
- Weiter werden die durchgeführten Veränderungen häufig mit solchen Begriffen wie Addieren bezeichnet, welche im Allgemeinen mit geistigen Operationen in Verbindung gebracht werden, die von menschlichen Bearbeitern ausgeführt werden. In den meisten Fällen ist in keiner der Operationen die hier beschrieben sind und Teil der vorliegenden Erfindung bilden, eine solche Fähigkeit eines menschlichen Bearbeiters notwendig oder wünschenswert; die Operationen sind Maschinenoperationen. In allen Fällen sollte der Unterschied zwischen den Verfahrensoperationen beim Bedienen einer Rechenmaschine und dem Verfahren der Berechnung selbst beachtet werden.
- In Abb. 1 ist ein vereinfachtes funktionales Blockdiagramm des Wirtscomputers 10 dargestellt, der an einen Asynchronous Transfer Mode (ATM)-Knoten 60 eines Telekommunikationsnetzwerks mit Hilfe einer Netzwerkschnittstellenschaltung 20 angeschlossen ist. Die Schnittstellenschaltung 20 umfasst einen Übertragungsabschnitt 30, welcher Daten von dem Wirtscomputer 10 zum Übertragen an den ATM- Netzwerkknoten 60 empfängt, und einen Empfangsabschnitt 40, welcher Daten von dem ATM-Knoten 60 empfängt und die empfangenen Daten zu dem Wirtscomputer 10 weiterreicht. Daten, die an oder von dem Wirtsrechner 10 weitergereicht werden, können typischerweise die Form eines Transmission Control Protocol (TCP)-Pakets von mehreren Kilobyte haben, während Daten, die durch den ATM-Knoten 60 weitergereicht werden die Form einer ATM-Zelle von 53 Byte haben. Daher ist es eine der Aufgaben der Schnittstelle 20, ein TCP-Paket des Wirtsrechners 10 in Zellen zu segmentieren, die zu dem ATM-Knoten 60 weitergereicht werden, und Zellen, die von dem ATM-Knoten 60 empfangen werden, zu TCP-Paketen für den Wirtsrechner 10 wieder zusammenzufügen. Jedes TCP-Paket hat einen Kopfabschnitt mit einer 16- Bit-Prüfsumme, die das Einserkomplement der Einserkomplementsumme aller 16-Bit- Wörter in dem Kopf und den Text des Paketes ist, in das es eingeschlossen ist. Die bevorzugte Ausführung der vorliegenden Erfindung betrifft das Erzeugen der Prüfsumme aus den Paketdaten (einschließlich der Dateikopfinformation).
- Der Übertragungsabschnitt 30 der Schnittstelle 20, die in Fig. 1 dargestellt ist, umfasst einen Übertragungspuffer 32, der eine Größe hat, die geeignet ist ein vollständiges TCP-Paket, das von dem Benutzrechner 10 weitergereicht worden ist, zu speichern. Eine Übertragungslademaschine (34) ist bereitgestellt, um ein Datenpaket von dem Wirtscomputer 10 in den Übertragungszwischenspeicher 32 zu laden, und eine Übertragungsentlademaschine 38 ist bereitgestellt, um die Paketdaten von dem Übertragungszwischenspeicher 32 zu entnehmen und die Paketdaten in ATM- Zellen zu segmentieren, die zu dem ATM-Knoten 60 weitergereicht werden. Ein Prüfsummengenerator 36 empfängt die Paketdaten auch von der Übertragungslademaschine 34 und erzeugt einen Prüfsummenwert von den Paketdaten, während sie in den Übertragungszwischenspeicher 32 geladen werden. Der erzeugte Prüsummenwert wird dann an einer geeigneten Stelle in dem Übertragungszwischenspeicher 32 gespeichert, und zwar in dem Datenkopf des darin gespeicherten Pakets.
- Der Zweck der Prüfsumme besteht darin, auf der Empfängerseite eine Feststellung darüber zuzulassen, ob die Übertragung des Pakets von Daten ohne Fehler erfolgt ist. Daher umfasst auch die Empfängerseite 40 der Schnittstelle 20 einen Prüfsummengenerator 48. In dem Empfängerabschnitt 40 empfängt eine Empfangslademaschine 44 Zellendaten von ATM-Knoten 60 und setzt ein TCP-Paket in einem Empfangszwischenspeicher 42 wieder zusammen. Die Paketdaten von der Empfangslademaschine 44 werden auch zu dem Prüfsummengenerator 48 weitergeleitet, der einen Prüfsummenwert für die empfangenen Daten erzeugt, während die Daten in dem Zwischenspeicher 42 gespeichert werden. Wenn alle Datenpakete empfangen sind, reicht eine Empfangsentlademaschine 54 das Paket an den Wirtsrechner 10 weiter, zusammen mit den erzeugten Prüfsummenwerten von Prüfsummengenerator 48. Der Wirtsrechner kann dann die Aufgabe haben, jegliche Packdaten, die für Zwecke der Übertragung in das Paket eingefügt wurden, aus der erzeugten Prüfsumme zu subtrahieren. Wenn der empfangene Prüfsummenwert nicht mit dem Prüfsummenwert übereinstimmt, der aus den empfangenen Daten erzeugt wurde, zeigt dies an, dass die empfangenen Paketdaten nicht mit den Paketdaten übereinstimmen, wie sie übertragen wurden, und das während der Übertragung ein Fehler aufgetreten ist. In diesem Fall kann eine Nachricht von dem Wirtsrechner zurück zu der Quelle des Pakets übermittelt werden, um das Paket, das fehlerhaft empfangen wurde, erneut zu übertragen.
- Fig. 2 zeigt die grundlegenden Schaltungsstruktur des Prüfsummengenerators mit einer bevorzugten Ausführung der Erfindung. Der Prüfsummengenerator 100 empfängt am Dateneingang 32-Bit-Wörter von den Daten; und produziert einen 16-Bit- Prüfsummenwert am Prüfsummenausgang 144. Die 32-Bit Eingabedaten werden in zwei 16-Bit-Halbwörter geteilt, welche an Eingängen 102 und 104 geführt werden. Die grundliegende Struktur des Prüfsummengenerators 100 umfasst ein Paar von 16- Bit-Addierschaltungen 110, 120, welche die 16-Bit-Datenhalbwörter von den Eingangsleitungen 102, 104 jeweils addieren. Der Addierer 110 hat 16-Bit-Eingänge 112 und 114, einen 16-Ausgang 116 und einen 1-Bit Übertragsausgang. Der Eingang 114 ist zum Empfangen des signifikantesten Halbworts von Eingangsleitung 102 angekoppelt, und zwar mittels eines Multiplexers 140. Der Ausgang 116 des Addierers 110 ist an ein Register 118 gekoppelt, welches auch an den Eingang 112 des Addierers 110 rückgekoppelt ist. Außerdem ist der Übertragsausgang des Addierers 110 an den Übertragseingang rückgekoppelt. Für jeden Zyklus der Addiererschaltung 110 wird daher die Dateneingabe am Addierereingang 114 mit der Ausgabe 114 des Addierers 110 des vorherigen Zykluses addiert, welche zu dem Eingang 112 mittels des Zwischenspeichers 118 weitergereicht wird, zusammen mit jeglichem Übertrag von dem vorherigen Zyklus, der zu dem Übertragseingang des Addierers weitergereicht wird.
- Die Addierschaltung 120 ist ähnlich aufgebaut zu dem Addierer 110, wobei ein Eingang 124 zum Empfangen des am wenigsten signifikanten Halbworts an die Eingangsleitung 104 gekoppelt ist. Der Ausgang 126 des Addierers 120 ist an einen Zwischenspeicher 128 gekoppelt, der in den 16-Bit-Eingang 122 zurückführt. Auf ähnliche Weise ist der Übertragsausgang des Addierers 120 so gekoppelt, dass er zu dem Übertragseingang desselben zurückführt. Ein Zwischenspeicher 130 ist ebenfalls vorgesehen, um die Übertragsausgabe des Addierers 120 vorrübergehend zu speichern, wobei der Zwischenspeicher 130 an einen Eingang der Multiplexerschaltung 140 gekoppelt ist. Schließlich stellt der Zwischenspeicher 128 der Multiplexerschaltung 140 einen weiteren Eingang zur Verfügung. Die Multiplexerschaltung 140 ist auch mit einem Steuereingang 142 versehen, der steuert, ob der Multiplexer 140 Signale des signifikantesten Halbworteingangs 102, des Zwischenspeichers 128 oder des Zwischenspeichers 130 weitergibt.
- Die Arbeitsweise des Prüfsummengenerators 100 ist wie folgt. Paketdaten werden von dem Generator 100 als Serie von 32-Bit-Datenwörtern empfangen, die in 16-Bit- Halbwörter geteilt und an die Addierer 110, 120 weitergereicht werden. Für jedes Wort der Paketdaten durchlaufen die Addierer 110 und 120 einen Zyklus, um die entsprechenden Datenhalbwörter zu addieren, was durch die Rückführanordnung der Addiererausgänge 116, 126 und die Übertragsausgänge ermöglicht wird. Wenn alle Paketdaten summiert sind, müssen die zwei 16-Bit-Summen, die von den Addierern 110, 120 erzeugt wurden, addiert werden, zusammen mit dem letzten übrigbleibenden Übertragsbit jedes Addierers, und das Übertragsbit kann dann erzeugt werden, wenn die zwei 16-Bit-Summen addiert werden, um die endgültige Prüfsumme zu erzeugen. Der Prüfsummengenerator 100 erzielt dies in zusätzlichen drei Zyklen, und zwar folgendermaßen.
- Im ersten Zyklus wird der Steuereingang 142 der Multiplexerschaltung 140 so gesteuert, dass das am wenigsten signifikante Halbwort, welches in dem Zwischenspeicher 128 gespeichert ist, durch den Multiplexer 140 zum Eingang 114 des Addierers 110 weitergereicht wird. Folglich wird in dem ersten Zyklus das am wenigsten signifikante Halbwort vom Zwischenspeicher 128 zu der signifikantesten Halbwortsumme aus Register 118 addiert. Während dieses Zyklus wird auch das letzte übrigbleibende Übertragsbit vom Addierer 110 hinzugefügt. Das letzte übrigbleibende Übertragsbit von Addierer 120 wird in dem Zwischenspeicher 130 während des ersten zusätzlichen Zyklus vorübergehend gespeichert.
- Im zweiten Zyklus wird der Multiplexer 140 so gesteuert, dass er den Inhalt des Zwischenspeichers 133 an den Eingang 114 des Addierers 110 weitergibt, und der Addierer 110 wird so betrieben, dass er das letzte übrigbleibende Bit des Addierers 120 in die Summe addiert. Schließlich wird der Addierer 110 in dem dritten zusätzlichen Zyklus mit einer Nulleingabe am Eingang 114 betrieben, um jegliches Übertragsbit, das während dem zweiten Additionszyklus erzeugt wird, zu addieren. Die vollständige TCP-Prüfsumme ist dann in dem Zwischenspeicher 118 für eine Ausgangsleitung 144 zugänglich.
- Der Prüfsummengenerator 100, der in Fig. 3 gezeigt ist, umfasst einige zusätzliche Komponenten. Die Eingangs- und Ausgangssignale des Prüfsummengenerators 100 werden mittels Invertern 106, 108 und 146, die an den Eingangsleitungen 102, 104 und der Ausgangsleitung 144 jeweils bereitstehen, komplementiert. Die Multiplexerschaltung 140 erhält eine Nulleingabe, welche während des dritten zusätzlichen Zykluses des Addierers 100 wie oben beschrieben zu dem Addierereingang 114 weitergereicht wird, unter Kontrolle des Steuersignals 142. Eine Multiplexerschaltung 117 ist zwischen dem Ausgang 116 des Addierers 110 und dem Ergebniszwischen speicher 118 zwischengeschaltet. Die Multiplexerschaltung 117 ist genauso, wie der Ausgang 116 des Addierers 110, mit Initialisierungseingängen 150, 151 und 152 versehen, und die Auswahl des Ausgangs der Multiplexerschaltung 117 ist durch eine Steuerleitung 158 gesteuert. Der Initialisierungseingang 150 stellt der Multiplexerschaltung 117 eine Nulleingabe zur Verfügung, um es dem Zwischenspeicher 118 zu ermöglichen, mit Null initialisiert zu werden, um das Verarbeiten eines neuen Pakets von Daten zu ermöglichen. Eine Multiplexerschaltung 116 mit einem Null- Initialisierungseingang 162, der Eingaben von der Ausgangsleitung 126 und in dem Addierer 120 empfängt, ist ebenfalls vorgesehen und durch die Steuerleitung 158 gesteuert, um den Ergebniszwischenspeicher 128 zu initialisieren.
- Wieder bezugnehmend auf Fig. 1, wird die Übertragungslademaschine 34, welche dem Prüfsummengenerator die Eingabedaten zur Verfügung stellt, ein Datenpaket von Wirtsrechner 10 in Abschnitten laden. Z. B. kann der Übertragungszwischenspeicher 32 so eingerichtet werden, dass er eine Vielzahl von Paketen von Daten speichert, die von der Übertragungslademaschine 34 auf einmal gebündelt geladen werden. Das gleiche gilt für den Empfangsabschnitt der Schnittstelle 20, weil aufeinanderfolgende Zellen, die von dem ATM-Knoten 60 ankommen, nicht notwendigerweise zu den gleichen TCP-Paket gehören. Folglich ist der Prüfsummengenerator 100 mit einem Mittel zum Ausgeben eines Teilprüfsummenwertes versehen, der aus einem Teil eines TCP-Pakets gebildet wird, und zum Zurückladen des Teüprüfsummenwertes in den Prüfsummengenerator, wenn der nächste Abschnitt des TCP- Pakets am Eingang ankommt. Zu diesem Zweck ist die Multiplexschaltung 117 mit Initialisierungseingängen 151, 152 versehen, von denen das Register 118 mit Teilprüfsummenwerten unter Steuerung der Steuerleitung 158 geladen werden kann. Die Mehrzahl der Funktionen, die von der Schnittstelle 20, die in Fig. 1 dargestellt ist, ausgeführt werden können, können durch eine einzige anwendungsspezifische integrierte Schaltung (ASIC) auf einer Netzwerkschnittstellenkarte (NIC) bereitgestellt werden, die an den Wirtsrechner 10 gekoppelt ist. Der Prüfsummengenerator 100 wird in der bevorzugten Ausführung daher als ein Abschnitt des ASIC bereitgestellt, der z. B. in CMOS-Technik hergestellt werden kann. In diesem Fall würde auch eine Steuerschaltung in den ASIC integriert, um Paketdaten und Teilprüfsummenwerte als Eingaben an den Prüfsummengenerator weiterzuleiten (Leitungen 104, 102 und 151, 152), und Steuersignale, wie die auf den Steuerleitungen 142 und 158, zum Steuern der Funktion der Prüfsummengeneratorschaltung in der oben beschriebenen Art und Weise bereitzustellen. Die tatsächliche Struktur der Prüfsummengeneratorkomponente, wie z. B. die Addierer 110, 120, Zwischenspeicher 118, 128 und Multiplexer 117, 140, 160 sind dem Fachmann wohl bekannt und diese Strukturen werden daher nicht beschrieben.
- Währen die bevorzugte Ausführung der Erfindung oben im Zusammenhang mit einer ATM-Netzwerkschnittstellenschaltung beschrieben ist, sei deutlich gemacht, dass der beschriebene Prüfsummengenerator und das Verfahren für einen breiteren Anwendungsbereich geeignet sind. Während die vorliegende Erfindung in Zusammenhang mit der obigen Ausführung beschrieben wurde, ist es daher offensichtlich, dass viele Alternativen, Abwandlungen und Variationen sowie Anwendungen den Fachmann angesichts der vorangehenden Beschreibung offensichtlich sind. Entsprechend wurde die detaillierte Beschreibung der vorliegenden Erfindung oben nur beispielhaft vorgestellt, und sie sollten nicht dahingehend verstanden werden, dass der Bereich der vorliegenden Erfindung und ihre wesentlichen Merkmale in den beigefügten Ansprüchen definiert werden, welche nicht notwendigerweise durch Bezugnahme auf die vorangehende Beschreibung der bevorzugten Ausführung begrenzt sind.
Claims (19)
1. Prüfsummengenerator-Schaltung mit
einem ersten Addierer (120) mit erstem (124) und zweitem (122) Addierereingang, einem
ersten Summenausgang (126) und einem ersten angekoppelten Übertragausgang zur
Rückführung eines ersten generierten Übertragbits an einen Übertrageingang des ersten
Addierers (120), wobei der erste Addierereingang (124) zum Empfang erster Eingangsdaten
angekoppelt ist, und der erste Summenausgang (126) zur Rückführung erster
Teilsummendaten an den zweiten Addierereingang (122) gekoppelt ist,
und
einem zweiten Addierer (110) mit drittem (112) und viertem (114) Addierereingang, einem
zweiten Summenausgang (116) und einem zweiten angekoppelten Übertragausgang zur
Rückführung eines zweiten generierten Übertragbits an einen Übertrageingang des zweiten
Addierers (110), wobei der zweite Summenausgang (116) zur Rückführung zweiter
Teilsummendaten an den dritten Addierereingang (112) gekoppelt ist, dadurch gekennzeichnet, dass
der vierte Addierereingang (114) an den ersten Addierer (120) gekoppelt ist, um zweite
Eingangsdaten, die ersten Teilsummendaten vom ersten Summenausgang (126) und das
erste generierte Übertragbit vom ersten Übertragausgang selektiv zu empfangen.
2. Prüfsummengenerator nach Anspruch 1 und ein erstes Register (128), das zwischen den
ersten Summenausgang (126) und den zweiten Addierereingang (122) zur
Zwischenspeicherung der ersten Teilsummendaten gekoppelt ist, und ein zweites Register (118), das
zwischen den zweiten Summenausgang (116) und den dritten Addierereingang (112) zur
Zwischenspeicherung der zweiten Teilsummendaten gekoppelt ist.
3. Prüfsummengenerator nach Anspruch 2 und ein erster Multiplexer (140) mit einem an den
vierten Addierereingang (114) gekoppelten Ausgang (114) und mit an den ersten
Summenausgang (126), an den ersten Übertragausgang und an eine Datenquelle gekoppelten
Eingängen zum Empfang der zweiten Eingangsdaten.
4. Prüfsummengenerator nach Anspruch 3, wobei der Multiplexer (140) zur
Zwischenspeicherung des ersten generierten Übertragbits über ein Übertragregister (130) an den ersten
Übertragausgang (126) gekoppelt ist.
5. Prüfsummengenerator nach Anspruch 4 und ein Vorladekreis (117, 150, 160, 162), der
zur Initialisierung wenigstens eines der Register (118, 128) mit zuvor gespeicherten
Teilsummendaten an wenigstens eines der ersten (128) und zweiten (118) Register gekoppelt
ist.
6. Prüfsummengenerator nach einem der Ansprüche 1 bis 5, wobei die Prüfsumme eine N-
Bit-Prüfsumme ist, die von auf ersten und zweiten N-Bit-Dateneingängen zur Verfügung
stehenden Daten generiert ist, und wobei der erste Addierer (120) zwei vom ersten N-
Dateneingang empfangene N-Bit-Operanden summiert und der zweite Addierer (110) zwei
vom zweiten N-Bit-Dateneingang empfangene N-Bit-Operanden summiert.
7. Prüfsummengenerator nach einem der Ansprüche 3 bis 6, wobei der erste Multiplexer
(140) ferner über einen Nulleingang verfügt.
8. Prüfsummengenerator nach einem der Ansprüche 2 bis 7 und ein zweiter Multiplexer
(117) mit einem an das zweite Register (118) gekoppelten Ausgang und einem an den
Ausgang (116) des zweiten Addierers (110) gekoppelten ersten Eingang und wenigstens
einem zweiten angekoppelten Eingang (150) zum Empfang von Initialisierungsdaten.
9. Prüfsummengenerator nach einem der Ansprüche 2 bis 8 und ein dritter Multiplexer (160)
mit einem an das erste Register (128) gekoppelten Ausgang und einem an den Ausgang
(126) des ersten Addierers (120) gekoppelten ersten Eingang und einem zweiten
angekoppelten Eingang (162) zum Empfang von Initialisierungsdaten.
10. Prüfsummengenerator nach einem der Ansprüche 6 bis 9, wobei der erste und zweite N-
Bit-Dateneingang je einen 16-Bit-Dateneingang umfasst.
11. Prüfsummengenerator nach einem der Ansprüche 1 bis 10, wobei der erste Addierer
(120) und der zweite Addierer (110) Binäraddierer darstellen.
12. Prüfsummengenerator nach einem der Ansprüche 6 bis 11, wobei der erste und zweite
Dateneingang 16-Bit-Datenworte umfassen, und der erste und zweite Summenausgang 16-
Bit-Ausgänge umfassen.
13. Verfahren zur Generierung einer Prüfsumme aus einem Paar erster und zweiter
Datenströme mit den Verfahrensschritten:
synchrones Summieren der ersten und zweiten Datenströme in einer Reihe von
Summerzyklen, wobei bei jedem Summierzyklus ein Übertragausgangswert eines vorhergehenden
Summierzyklusses als Übertrageingangswert verwendet wird, um so erste und zweite
Summen mit ersten und zweiten Übertragausgangswerten zu generieren;
Addieren der ersten und zweiten Summen mit dem ersten Übertragausgangswert zur
Generierung einer dritten Summe mit einem dritten Übertragausgangswert;
Addieren der zweiten und dritten Übertragausgangswerte zur dritten Summe für die
Generierung einer vierten Summe mit einem vierten Übertragausgangswert; und
Addieren des vierten Übertragausgangswertes zur vierten Summe für die Generierung einer
Prüfsumme für die in den ersten und zweiten Datenströmen enthaltenen Daten.
14. Verfahren nach Anspruch 13, wobei die ersten und zweiten Datenströme jeweils 16-Bit-
Datenströme umfassen, und die Prüfsumme eine 16-Bit-Summe umfasst.
15. Verfahren nach Anspruch 13 oder 14 und ein Verfahrensschritt zur Summierung
wenigstens eines der ersten oder zweiten Datenströme mit einer Anfangsteilsumme.
16. Verfahren nach Anspruch 15 und ein Verfahrensschritt zur Aussetzung der Summierung
der ersten und zweiten Datenströme und zur Speicherung wenigstens einer Teilsumme.
17. Datenübertragungsschnittstelle (20) zur Ankopplung eines Host-Rechners (10) für die
Datenübermittlung über ein Fernmeldenetzwerk (60) mit asynchronem Übertragungsmodus
(ATM); mit
einer angekoppelten Lademaschine (34) zum Abruf eines Datenpakets vom Host-Rechner
(10);
einer Segmentierungsmaschine zur Segmentierung des Datenpakets in Zellen und zur
Weitergabe der Datenzellen an das ATM-Netzwerk (60) und
einem angekoppelten Prüfsummengenerator (36) nach einem der Ansprüche 1 bis 12 zum
Empfang des Datenpakets von der Lademaschine (34) und zur Generierung eines
Prüfsum
menwerts aus dem Datenpaket zwecks Weitergabe über die Segmentierungsmaschine an
das ATM-Netzwerk (60).
18. Datenübertragungsschnittstelle nach Anspruch 17 und ein an die Lade- (34) und
Segmentierungsmaschine zur Pufferung des Datenpakets gekoppelter
Übertragungszwischenspeicher (32), wobei die Ankopplung des Übertragungszwischenspeichers (32) auch zum
Empfang des Prüfsummenwerts vom zweiten Summenausgang (116) und der Einfügung des
Prüfsummenwerts in den im Zwischenspeicher (32) gepufferten Datenpaketheader dient.
19. Datenübertragungsschnittstelle nach Anspruch 17 oder 18, wobei das Datenpaket von
der Lademaschine (34) in Vier-Byte-Worten abgerufen wird, und die ersten Eingangsdaten
die erste Hälfte jedes Datenpaketworts und die zweiten Eingangsdaten die zweite Hälfte
jedes Datenpaketworts umfassen.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/499,484 US5663952A (en) | 1995-07-07 | 1995-07-07 | Checksum generation circuit and method |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69623545D1 DE69623545D1 (de) | 2002-10-17 |
DE69623545T2 true DE69623545T2 (de) | 2003-05-22 |
Family
ID=23985434
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69623545T Expired - Fee Related DE69623545T2 (de) | 1995-07-07 | 1996-06-27 | Schaltung und Verfahren zur Erzeugung von Prüfsummen |
Country Status (4)
Country | Link |
---|---|
US (1) | US5663952A (de) |
EP (1) | EP0752654B1 (de) |
JP (1) | JP3751689B2 (de) |
DE (1) | DE69623545T2 (de) |
Families Citing this family (76)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6449377B1 (en) | 1995-05-08 | 2002-09-10 | Digimarc Corporation | Methods and systems for watermark processing of line art images |
US6345104B1 (en) | 1994-03-17 | 2002-02-05 | Digimarc Corporation | Digital watermarks and methods for security documents |
US7286684B2 (en) * | 1994-03-17 | 2007-10-23 | Digimarc Corporation | Secure document design carrying auxiliary machine readable information |
US5996113A (en) * | 1996-11-26 | 1999-11-30 | Intel Corporation | Method and apparatus for generating digital checksum signatures for alteration detection and version confirmation |
KR100201946B1 (ko) * | 1997-03-19 | 1999-06-15 | 윤종용 | Fft 망의 첵섬 계산장치 및 방법 |
US5960012A (en) * | 1997-06-23 | 1999-09-28 | Sun Microsystems, Inc. | Checksum determination using parallel computations on multiple packed data elements |
US6311226B1 (en) | 1997-08-29 | 2001-10-30 | Cisco Technology, Inc. | Method and apparatus for dynamic link name negotiation |
US5898713A (en) * | 1997-08-29 | 1999-04-27 | Cisco Technology, Inc. | IP checksum offload |
US5983272A (en) | 1997-08-29 | 1999-11-09 | Cisco Technology, Inc. | Option request protocol |
US6310884B1 (en) | 1998-05-21 | 2001-10-30 | Lsi Logic Corporation | Data transfer method and apparatus that allocate storage based upon a received relative offset |
EP0978977A1 (de) | 1998-08-07 | 2000-02-09 | International Business Machines Corporation | Verfahren und System zum Verbesseren von Hochgeschwindichkeit Datenübertragungen zwischen Netzen |
US6711178B1 (en) | 1998-09-08 | 2004-03-23 | Cisco Technology, Inc. | Enhanced claw packing protocol |
US6182267B1 (en) | 1998-11-20 | 2001-01-30 | Cisco Technology, Inc. | Ensuring accurate data checksum |
US7382736B2 (en) | 1999-01-12 | 2008-06-03 | Mcdata Corporation | Method for scoring queued frames for selective transmission through a switch |
US6324670B1 (en) | 1999-03-24 | 2001-11-27 | Novell, Inc. | Checksum generator with minimum overflow |
US6343306B1 (en) * | 1999-05-18 | 2002-01-29 | Sun Microsystems, Inc. | High speed one's complement adder |
US6988235B2 (en) * | 2000-03-02 | 2006-01-17 | Agere Systems Inc. | Checksum engine and a method of operation thereof |
US7000034B2 (en) * | 2000-03-02 | 2006-02-14 | Agere Systems Inc. | Function interface system and method of processing issued functions between co-processors |
US7386238B2 (en) * | 2000-08-15 | 2008-06-10 | Lockheed Martin Corporation | Method and system for infrared data communications |
US6954893B2 (en) * | 2000-08-15 | 2005-10-11 | Lockheed Martin Corporation | Method and apparatus for reliable unidirectional communication in a data network |
US7236490B2 (en) * | 2000-11-17 | 2007-06-26 | Foundry Networks, Inc. | Backplane interface adapter |
US7596139B2 (en) | 2000-11-17 | 2009-09-29 | Foundry Networks, Inc. | Backplane interface adapter with error control and redundant fabric |
US6643821B2 (en) * | 2000-11-30 | 2003-11-04 | Stmicroelectronics, Inc. | Method and device for computing incremental checksums |
US7002980B1 (en) | 2000-12-19 | 2006-02-21 | Chiaro Networks, Ltd. | System and method for router queue and congestion management |
US6728929B1 (en) * | 2001-02-16 | 2004-04-27 | Spirent Communications Of Calabasas, Inc. | System and method to insert a TCP checksum in a protocol neutral manner |
US6813690B1 (en) * | 2001-06-12 | 2004-11-02 | Network Appliance, Inc. | Caching media data using content-sensitive identifiers |
US7386627B1 (en) * | 2002-01-29 | 2008-06-10 | Network Appliance, Inc. | Methods and apparatus for precomputing checksums for streaming media |
US7269661B2 (en) | 2002-02-12 | 2007-09-11 | Bradley Richard Ree | Method using receive and transmit protocol aware logic modules for confirming checksum values stored in network packet |
US7266117B1 (en) | 2002-05-06 | 2007-09-04 | Foundry Networks, Inc. | System architecture for very fast ethernet blade |
US7649885B1 (en) | 2002-05-06 | 2010-01-19 | Foundry Networks, Inc. | Network routing system for enhanced efficiency and monitoring capability |
US7468975B1 (en) | 2002-05-06 | 2008-12-23 | Foundry Networks, Inc. | Flexible method for processing data packets in a network routing system for enhanced efficiency and monitoring capability |
US20120155466A1 (en) | 2002-05-06 | 2012-06-21 | Ian Edward Davis | Method and apparatus for efficiently processing data packets in a computer network |
US7187687B1 (en) | 2002-05-06 | 2007-03-06 | Foundry Networks, Inc. | Pipeline method and system for switching packets |
US7020836B2 (en) * | 2002-07-30 | 2006-03-28 | Intel Corporation | One's complement pipelined checksum |
KR100782807B1 (ko) * | 2003-02-11 | 2007-12-06 | 삼성전자주식회사 | 첵섬 기입 방법 및 그에 따른 첵섬 확인 장치 |
US6901072B1 (en) | 2003-05-15 | 2005-05-31 | Foundry Networks, Inc. | System and method for high speed packet transmission implementing dual transmit and receive pipelines |
GB2417807B (en) * | 2003-06-17 | 2007-10-10 | Nds Ltd | Multimedia storage and access protocol |
KR20050057698A (ko) * | 2003-12-10 | 2005-06-16 | 삼성전자주식회사 | 체크섬을 생성하는 장치 및 방법 |
KR20050060298A (ko) * | 2003-12-16 | 2005-06-22 | 삼성전자주식회사 | 체크섬 생성장치 및 생성방법 |
US7817659B2 (en) | 2004-03-26 | 2010-10-19 | Foundry Networks, Llc | Method and apparatus for aggregating input data streams |
US7783769B2 (en) * | 2004-03-31 | 2010-08-24 | Intel Corporation | Accelerated TCP (Transport Control Protocol) stack processing |
US8730961B1 (en) | 2004-04-26 | 2014-05-20 | Foundry Networks, Llc | System and method for optimizing router lookup |
US7818444B2 (en) | 2004-04-30 | 2010-10-19 | Move Networks, Inc. | Apparatus, system, and method for multi-bitrate content streaming |
GB0411053D0 (en) * | 2004-05-18 | 2004-06-23 | Ricardo Uk Ltd | Data processing |
US7657703B1 (en) | 2004-10-29 | 2010-02-02 | Foundry Networks, Inc. | Double density content addressable memory (CAM) lookup scheme |
US7779330B1 (en) * | 2005-11-15 | 2010-08-17 | Marvell International Ltd. | Method and apparatus for computing checksum of packets |
US7958436B2 (en) | 2005-12-23 | 2011-06-07 | Intel Corporation | Performing a cyclic redundancy checksum operation responsive to a user-level instruction |
US8448162B2 (en) | 2005-12-28 | 2013-05-21 | Foundry Networks, Llc | Hitless software upgrades |
US7925957B2 (en) | 2006-03-20 | 2011-04-12 | Intel Corporation | Validating data using processor instructions |
US7903654B2 (en) | 2006-08-22 | 2011-03-08 | Foundry Networks, Llc | System and method for ECMP load sharing |
JP4845674B2 (ja) * | 2006-10-26 | 2011-12-28 | キヤノン株式会社 | データ処理装置及び方法、通信装置、並びにプログラム |
US8238255B2 (en) | 2006-11-22 | 2012-08-07 | Foundry Networks, Llc | Recovering from failures without impact on data traffic in a shared bus architecture |
US20090279441A1 (en) | 2007-01-11 | 2009-11-12 | Foundry Networks, Inc. | Techniques for transmitting failure detection protocol packets |
US8037399B2 (en) | 2007-07-18 | 2011-10-11 | Foundry Networks, Llc | Techniques for segmented CRC design in high speed networks |
US8271859B2 (en) | 2007-07-18 | 2012-09-18 | Foundry Networks Llc | Segmented CRC design in high speed networks |
US8509236B2 (en) | 2007-09-26 | 2013-08-13 | Foundry Networks, Llc | Techniques for selecting paths and/or trunk ports for forwarding traffic flows |
US20100104003A1 (en) * | 2008-10-24 | 2010-04-29 | Manufacturing Resources International Inc. | System and method for securely transmitting video data |
US8689343B2 (en) * | 2008-10-24 | 2014-04-01 | Manufacturing Resources International, Inc. | System and method for securely transmitting video data |
US8181060B1 (en) * | 2009-03-05 | 2012-05-15 | Riverbad Technology, Inc. | Preventing data corruption with transparent network connections |
US8090901B2 (en) | 2009-05-14 | 2012-01-03 | Brocade Communications Systems, Inc. | TCAM management approach that minimize movements |
US8599850B2 (en) | 2009-09-21 | 2013-12-03 | Brocade Communications Systems, Inc. | Provisioning single or multistage networks using ethernet service instances (ESIs) |
US9804840B2 (en) | 2013-01-23 | 2017-10-31 | International Business Machines Corporation | Vector Galois Field Multiply Sum and Accumulate instruction |
US9823924B2 (en) | 2013-01-23 | 2017-11-21 | International Business Machines Corporation | Vector element rotate and insert under mask instruction |
US9715385B2 (en) | 2013-01-23 | 2017-07-25 | International Business Machines Corporation | Vector exception code |
US9471308B2 (en) | 2013-01-23 | 2016-10-18 | International Business Machines Corporation | Vector floating point test data class immediate instruction |
US9513906B2 (en) | 2013-01-23 | 2016-12-06 | International Business Machines Corporation | Vector checksum instruction |
US9778932B2 (en) | 2013-01-23 | 2017-10-03 | International Business Machines Corporation | Vector generate mask instruction |
US10319408B2 (en) | 2015-03-30 | 2019-06-11 | Manufacturing Resources International, Inc. | Monolithic display with separately controllable sections |
US10922736B2 (en) | 2015-05-15 | 2021-02-16 | Manufacturing Resources International, Inc. | Smart electronic display for restaurants |
US10269156B2 (en) | 2015-06-05 | 2019-04-23 | Manufacturing Resources International, Inc. | System and method for blending order confirmation over menu board background |
US10319271B2 (en) | 2016-03-22 | 2019-06-11 | Manufacturing Resources International, Inc. | Cyclic redundancy check for electronic displays |
KR102204132B1 (ko) | 2016-05-31 | 2021-01-18 | 매뉴팩처링 리소시스 인터내셔널 인코포레이티드 | 전자 디스플레이의 원격 영상 검증 시스템 및 방법 |
US10510304B2 (en) | 2016-08-10 | 2019-12-17 | Manufacturing Resources International, Inc. | Dynamic dimming LED backlight for LCD array |
US11307791B2 (en) | 2019-05-24 | 2022-04-19 | Texas Instruments Incorporated | Quick clearing of registers |
CN111865494B (zh) * | 2020-06-23 | 2022-02-18 | 郑州信大捷安信息技术股份有限公司 | 一种基于校验和的数据自检装置及方法 |
US11895362B2 (en) | 2021-10-29 | 2024-02-06 | Manufacturing Resources International, Inc. | Proof of play for images displayed at electronic displays |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5111465A (en) * | 1989-06-30 | 1992-05-05 | Digital Equipment Corporation | Data integrity features for a sort accelerator |
US5247524A (en) * | 1990-06-29 | 1993-09-21 | Digital Equipment Corporation | Method for generating a checksum |
EP0473102B1 (de) * | 1990-08-29 | 1995-11-22 | Honeywell Inc. | Datenübertragungssystem mit Kontrollsummerechenmittel |
US5430842A (en) * | 1992-05-29 | 1995-07-04 | Hewlett-Packard Company | Insertion of network data checksums by a network adapter |
US5390196A (en) * | 1992-11-12 | 1995-02-14 | Bull Hn Information Systems Inc. | Byte-wise determination of a checksum from a CRC-32 polynomial |
-
1995
- 1995-07-07 US US08/499,484 patent/US5663952A/en not_active Expired - Lifetime
-
1996
- 1996-06-27 EP EP96110407A patent/EP0752654B1/de not_active Expired - Lifetime
- 1996-06-27 DE DE69623545T patent/DE69623545T2/de not_active Expired - Fee Related
- 1996-07-05 JP JP19417096A patent/JP3751689B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH09134295A (ja) | 1997-05-20 |
JP3751689B2 (ja) | 2006-03-01 |
EP0752654B1 (de) | 2002-09-11 |
US5663952A (en) | 1997-09-02 |
DE69623545D1 (de) | 2002-10-17 |
EP0752654A2 (de) | 1997-01-08 |
EP0752654A3 (de) | 1998-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69623545T2 (de) | Schaltung und Verfahren zur Erzeugung von Prüfsummen | |
DE3854361T2 (de) | Programmierbare Protokollvorrichtung. | |
DE3856239T2 (de) | Paketvermittlung | |
DE69423101T2 (de) | Virtuelle mehrfachsende-durchschaltvermittlung unter verwendung von zellenrecycling | |
DE68917592T2 (de) | Fernmeldevermittlungssystem. | |
EP0276776B1 (de) | Digitales Koppelnetz für Leitungs- und Paketvermittlung und Koppelfeldbaustein hierzu | |
DE69330675T2 (de) | Verbesserte Paketstruktur für Netzschicht | |
DE3787946T2 (de) | Schaltung zum Kombinieren von Funktionen der Generatoren eines zyklischen redundanten Prüfungskodes und von Pseudo-Zufallszahlengeneratoren. | |
DE69119844T2 (de) | Chiffriergerät | |
DE3688238T2 (de) | CRC-Rechenanordnung. | |
DE68923951T2 (de) | Hochgeschwindigkeits-Kombinierschalter mit Einzelfifo. | |
DE69329098T2 (de) | Vorrichtung und verfahren zur überprüfung von nachrichten in paketform mit kopfende bestehend aus wegleitinformation und crc prüfsequenz | |
DE60316662T2 (de) | Komprimierung von zellkopfteilen zur datenkommunikation | |
DE68913028T2 (de) | Empfangs- und Bearbeitungssystem für PCM-TDM-mehrwegübertragene HDLC-Rahmen, insbesondere für Datenvermittler. | |
DE602004009574T2 (de) | System und verfahren zum modifizieren von daten, die von einer quelle zu einem bestimmungsort übermittelt werden | |
DE3689282T2 (de) | CRC-Rechenmaschine und Methode zur CRC-Berechnung. | |
EP0470341B1 (de) | Verfahren und Schaltungsanordnung für die Aufnahme und Weiterleitung von nach einem asynchronen Transfermodus übertragenen Nachrichtenzellen durch eine ATM-Vermittlungseinrichtung | |
DE19821004C2 (de) | Sequenzgenerator | |
DE3881574T2 (de) | Vermittlungsverfahren für integrierte Sprach/Daten-Übertragung. | |
DE2731200A1 (de) | Anordnung zum steuern von datenfluessen | |
DE3535307A1 (de) | Mehrstufiges paketvermittlungskoppelfeld mit adressenelementauswahl | |
DE69227444T2 (de) | Einrichtung für die Erzeugung von Mehradresspaketen in einem Paketvermittlungssystem | |
DE69021332T2 (de) | Datenformat für Informationspakete. | |
EP0618703A2 (de) | Verfahren für Punkt-zu-Mehrpunkt-Verbindungen in selbstroutenden ATM-Koppelfeldern | |
DE69809224T2 (de) | Vermittlungsvorrichtung mit wenigstens einem Vermittlungskern-Zugriffselement zur Verbindung von verschiedenen Protokolladaptern |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |