DE69623545T2 - Schaltung und Verfahren zur Erzeugung von Prüfsummen - Google Patents

Schaltung und Verfahren zur Erzeugung von Prüfsummen

Info

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
Application number
DE69623545T
Other languages
English (en)
Other versions
DE69623545D1 (de
Inventor
Gentry, Jr.
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Application granted granted Critical
Publication of DE69623545D1 publication Critical patent/DE69623545D1/de
Publication of DE69623545T2 publication Critical patent/DE69623545T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's

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

    Hintergrund der Erfindung
  • 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.
  • Zusammenfassung der Erfindung
  • 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.
  • Kurze Beschreibung der Zeichnungen
  • 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.
  • Detaillierte Beschreibung der bevorzugten Ausführung
  • 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.
DE69623545T 1995-07-07 1996-06-27 Schaltung und Verfahren zur Erzeugung von Prüfsummen Expired - Fee Related DE69623545T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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