DE69114788T2 - Datenübertragungssystem mit Kontrollsummerechenmittel. - Google Patents

Datenübertragungssystem mit Kontrollsummerechenmittel.

Info

Publication number
DE69114788T2
DE69114788T2 DE69114788T DE69114788T DE69114788T2 DE 69114788 T2 DE69114788 T2 DE 69114788T2 DE 69114788 T DE69114788 T DE 69114788T DE 69114788 T DE69114788 T DE 69114788T DE 69114788 T2 DE69114788 T2 DE 69114788T2
Authority
DE
Germany
Prior art keywords
data
checksum
partial
sum
memory
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
DE69114788T
Other languages
English (en)
Other versions
DE69114788D1 (de
Inventor
Patrick S Gonia
James F Hoff
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.)
Honeywell Inc
Original Assignee
Honeywell 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 Honeywell Inc filed Critical Honeywell Inc
Publication of DE69114788D1 publication Critical patent/DE69114788D1/de
Application granted granted Critical
Publication of DE69114788T2 publication Critical patent/DE69114788T2/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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Detection And Correction Of Errors (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Description

    Gebiet der Erfindung:
  • Die Erfindung bezieht sich auf ein Daten-Dialogsystem gemäß dem Gattungsbegriff des unabhängigen Patentanspruches, und insbesondere auf Dialogsysteme, in denen Datenpakete rasch und zuverlässig von Punkt zu Punkt in einem Raum (oder Zeit) abgeliefert werden müssen, die aber bei der Übertragung beeinträchtigt werden können. Insbesondere ist die Erfindung geeignet für die Berechnung der Prüfsumme, wie sie in dem international genormten Transport-Schichtprotokoll ISO IS/8073 spezifiziert ist, und sie kann für andere ähnliche Protokolle verwendet werden, die eine Prüfsumme erfordern.
  • Hintergrund der Erfindung:
  • Eines von verschiedenen Problemen, die beim Dialog zwischen Datenverarbeitungseinrichtungen angetroffen werden, ist dies, daß die Datenpakete bei der Übertragung beeinträchtigt werden können. Verschiedene geschichtete Dialogprotokolle werden typischerweise verwendet, um diese Daten- Dialogprobleme zu lösen. Insbesondere ist das Transport-Schichtprotokoll für die zuverlässige End-Zu-End-Übertragung von Daten zwischen Systemen verantwortlich und es ist die primäre Protokollschicht, welche diese beeinträchtigten Pakete feststellt und diese kompensiert. Das Verfahren, das in dem genormten Transport-Schichtprotokoll (internationaler Standard ISO IS/8073) zur Feststellung von beeinträchtigten Paketen verwendet wird, wurde ursprünglich durch Fletcher vorgeschlagen [Fletcher, J., "An Arithmetic Checksum for Serial Transmissions" IEEE Transactions on Communications, Band COM-30, Nr.1, Januar 1982, Seiten 247-252]. Dieses Verfahren berechnet eine arithmetische Prüfsumme, die in Paketen enthalten ist, wenn sie übertragen werden, so daß angetroffene Fehler während der Übertragung festgestellt werden können, wenn sie empfangen werden. Diese Veröffentlichung bezieht sich auf ein verbessertes Verfahren für die Berechnung von Prüfsummenfunktionen für Protokolle, welche Fehler-Prüffunktionen des arithmetischen Typs gemäß Fletcher verwenden.
  • Andere Protokolle, die die Fletcher-Prüfsumme benutzen, umfassen das Protokoll für die Vorgabe des Netzwerkservice ISO IS/8473 im verbindungslosen Modus und das Department of Defense Transmission Control Protocol/Internet Protocol (TCP/IP), das in dem Arpanet verwendet wird.
  • Die serielle Informationsübertragung zwischen Computern kann durch Fehler beeinträchtigt werden, die aus Fehlfunktionen der Hardware und Umgebungsstörungen resultieren. Verschiedene Verfahren werden typischerweise benutzt, um die Fehler festzustellen, so daß sie entdeckt werden können aus Funktionen, die die Prüfsumme, Produktcodes und zyklische Redundanzprüfungen umfassen. Diese Verfahren geben verschiedene Schutzpegel vor. Die Verwendung der Fletcher-Prüfsumme ist besonders vorteilhaft für allgemeine Standard-Computer-Dialogverbindungen, da die Prüfsumme leicht in gleicher Weise in Systemen mit hoher und geringer Leistung verwirklicht werden kann. Dialoge zwischen Hochleistungssystemen können Nutzen aus einem Fehlerfeststellverfahren ziehen, das speziell für die Hochleistungsanwendung entworfen ist. Die genormte Allzweck- Prüfsummenmethode ist jedoch auch in diesem Fall immer noch erwünscht, um eine Kompatibilität mit Systemen geringer Leistung vorzugeben. Es ist jedoch allgemein anerkannt, daß das Verfahren zur Verwirklichung der Prüfsumme die Durchgangsleistung des Dialogsystems beträchtlich beeinflussen kann. Daher ist es vorteilhaft, ein Verfahren zur Berechnung der Prüfsumme mit hoher Geschwindigkeit vorzugeben, um die System-Durchgangsleistung aufrecht zu erhalten.
  • Zusätzlich zur Feststellung von Fehlern müssen Daten physikalisch aus einem Computer-Systemspeicher für Zwecke der Übertragung kopiert werden und in den Speicher für den Empfang kopiert werden. Ein Hauptproblem bei der Erzielung einer hohen Durchgangsleistung des Dialogsystems ist die Verarbeitungsverwaltung, die Ausführungsoperationen, wie beispielsweise dem Kopieren und der Berechnung der Prüfsumme zugeordnet ist und die mit jedem Byte des Pakets ausgeführt werden. Diese zwei Operationen werden insbesondere im Stand der Technik der Reihe nach durchgeführt und demzufolge mit einer zusätzlichen Zeit, um das Paket vollständig zu verarbeiten. Im Stand der Technik ist die Nützlichkeit der Kombination von Softwareprogrammen vorgeschlagen worden, welche die Prüfsumme berechnen und Kopierfunktionen ausführen. Diese bekannten Verfahren sind jedoch immer noch sehr leistungseinschränkend infolge der Verwendung von Software, die Allzweck- Prozessorbefehle steuert, um die Aufgabe zu bewerkstelligen.
  • Ein weiterer leistungsbeschränkender Punkt im Entwurf von Dialogsystemen bezieht sich auf die übliche und nützliche Praxis der Zuordnung von Daten zu verschiedenen diskontinuierlichen Speicherplätzen in dem Speicher des Computersystems. Obgleich nützlich hinsichtlich der optimalen Nutzung des Speichers, stellt diese Praxis Probleme für Hochleistungsdialoge dar, bei denen in einem vorgegebenen Daten-Dialogpaket zu übertragende Daten in mehreren Datenpuffern enthalten sein können. Dies kompliziert weiter die Berechnung einer Prüfsumme und das Auslesen und Einschreiben von Puffern für die Übertragung und den Empfang.
  • Die vorliegende Erfindung geht von einem Daten-Dialogsystem mit Prüfsummenberechnung zur Fehlerfeststellung aus, wie es in der US-A-35 73 726 offenbart ist.
  • Zusammenfassung der Erfindung:
  • Im Hinblick auf vorstehende Ausführungen liegt eine breite Aufgabe dieser Erfindung, wie sie in den Ansprüchen offenbart ist, in der Vorgabe eines wirtschaftlichen Hoch leistungs-Daten-Dialogsystems für die Feststellung der Beeinträchtigung von Digitaldaten, die während der Übertragung oder Speicherung aufgetreten sein kann.
  • Diese Aufgabe wird gelöst durch die kennzeichnenden Merkmale der unabhängigen Ansprüche. Weitere vorteilhafte Ausführungsbeispiele des erfindungsgemäßen Systems können den abhängigen Ansprüchen entnommen werden.
  • Die Erfindung gibt ein Fehler-Feststellsystem vor, bei dem Hardwareeinrichtungen für die Abtastung und Prüfung der Daten vorgesehen sind, ohne daß Prozessorzeit im Softwarebetrieb benutzt wird mit Ausnahme für die Auslösung und Beendigung der Prüfoperation.
  • Die Erfindung gibt ferner einen wirtschaftlichen Schaltkreis vor, der eine minimale Anzahl von elektrischen Komponenten für die Berechnung der Prüfsummen mit hoher Geschwindigkeit (Speicher-Übertragungsgeschwindigkeit) sowohl beim Empfang als auch bei der Übertragung in einem Daten-Dialogsystem besitzt. Hierbei wird eine minimale Anzahl von Eingängen pro Logik- Berechnungskomponente erforderlich.
  • Schließlich gibt die Erfindung eine Hochgeschwindigkeits-(Speicher- Übertragungsgeschwindigkeit)-Prüfsummen-Berechnungseinheit vor, die die Prüfsummenberechnung parallel mit der Hochgeschwindigkeitsbewegung der Daten von einem Speicherplatz zu einem anderen ausführt unter Verwendung eines automatischen Adressen-Erzeugungsschaltkreises vom DMA-Typ, wodurch das Erfordernis der Neuabtastung der Daten für irgendeinen Zweck vermieden wird. Die Kopie kann der Übertragung, dem Empfang oder irgendeinem anderen Grund dienen.
  • Kurze Beschreibung der Zeichnungen:
  • Fig. 1 ist eine schematische Darstellung eines Computersystems, welches ausgelegt ist für das Senden und den Empfang von Datenübertragungen und das mit einer Prüfsummen- Berechnungseinheit gemäß der Erfindung ausgerüstet ist;
  • Fig. 1a und 1b sind schematische Diagramme, die den Übertragungs- und Empfangsmodus des Computersystems gemäß Fig. 1 zeigen;
  • Fig. 2 ist ein schematisches Diagramm der Speicherorganisation eines typischen Pakets von Daten, das benutzt wird, um Information durch ein Paket-Schalternetzwerk zu übertragen, auf das die Prüfsummen-Neuerung der Erfindung anwendbar ist;
  • Fig. 3 ist ein schematisches Diagramm des Prüfsummen- Berechnungsabschnittes der Prüfsummen-Berechnungseinheit gemäß Fig. 1;
  • Fig. 4 ist ein schematisches Diagramm eines Teiladdierers des Typs, wie er für die Prüfsummen-Berechnungseinheit verwendet wird;
  • Fig. 5 ist ein schematisches Diagramm einer praktischen Ausführungsform des Prüfsummen-Berechnungsabschnittes der Prüfsummen-Berechnungseinheit gemäß Fig. 3; und
  • Fig. 6 ist ein schematisches Diagramm eines typischen Paketes von Daten gemäß Fig. 2 mit der Ausnahme, daß ein Puffer- Verkettungsmerkmal veranschaulicht ist, wobei das Paket nicht aneinandergrenzende Abschnitte im Speicher aufweist.
  • Detaillierte Beschreibung:
  • Bezugnehmend auf Fig. 1 der Zeichnungen ist dort eine schematische Zeichnung eines Daten-Dialogsystems dargestellt, welches eine Prüfsummen- Berechnungseinheit 10 zwischen einem universellen Zentralcomputer 12 und einer Netzwerk-Schnittstelle 14 aufweist. Daten werden über die Schnittstelle 14 zu einem Dialognetzwerk übertragen und von diesem empfangen.
  • Die Prüfsummen-Berechnungseinheit 10 umfaßt einen Prüfsummen- Berechnungsabschnitt 16, einen Datenfluß-Steuerabschnitt 18 und einen Netzwerk-Speicherabschnitt 22. Pakete von Daten liegen in einem Hauptspeicherabschnitt 20 des Zentralcomputers 12 vor und in dem Netzwerk- Speicherabschnitt 22, der temporär Datenpakete vor der Übertragung und nach dem Empfang durch die Netzwerk-Schnittstelle 14 speichert.
  • Der Datenfluß im Übertragungsmodus erfolgt vom Hauptspeicher 20 des Zentralcomputers 12, von wo er parallel über eine Buseinheit 23 zu dem Prüfsummen-Berechnungsabschnitt 16 und dem Netzwerk-Speicherabschnitt 22 gerichtet wird. Nach der temporären Speicherung in dem Netzwerk- Speicherabschnitt fließt er aus der Netzwerk-Schnittstelle heraus. Der Datenfluß im Empfangsmodus ist von der Netzwerk-Schnittstelle 14 zu dem Netzwerk- Speicherabschnitt 22 gerichtet, von wo er in einer ähnlichen Weise parallel über die Buseinheit 23 zu dem Prüfsummen-Berechnungsabschnitt 16 und zu dem Hauptspeicher 20 des Zentralcomputers gerichtet wird.
  • Die Buseinheit 23 ist schematisch in den Fig. 1 a und 1 b dargestellt, um die Datenflußrichtungen während der zwei Betriebsmoden, der Übertragung und des Empfangs zu verdeutlichen. Diesbezüglich gibt ein bidirektionaler Bus 24 mit einer Breite von 32 Bit direkte Verbindungen zwischen dem Zentralcomputerspeicher 20 und dem Netzwerk-Speicherabschnitt 22 für einen bidirektionalen Betrieb vor.
  • Der Bus 25 besitzt ebenfalls eine Breite von 32 Bit und verbindet den Prüfsummen-Berechnungsabschnitt 16 mit dem Zentraispeicher 20 und dem Netzwerk-Speicher 22 über den Bus 24 für einen Betrieb in einer Richtung, wobei die Datenworte immer in den Prüfsummen-Berechnungsabschnitt 16 sowohl bei der Übertragung als auch dem Empfang gelesen werden.
  • Die Hardwarelogik der Prüfsummen-Berechnungseinheit von Fig. 1 umfaßt Adressengeneratoren 32 und 34, die über Verbindungen 35 und 36 durch den Datenfluß-Steuerabschnitt 18 für eine entsprechende Abtastung über Verbindungen 37 und 38 in einem direkten Speicher-Zugriffsmodus (DMA), in dem Hauptspeicher 20 und dem Netzwerk-Speicherabschnitt 22 gesteuert werden.
  • Der DMA-Adressengenerator 32 arbeitet während der Übertragung, um Daten von dem Hauptspeicher 20 auf den Bus 23 zum Zwecke des gleichzeitigen Einschreibens (1.) in den Netzwerk-Speicherabschnitt 22 und (2.) in den Prüfsummen-Berechnungsabschnitt 16 zu bewegen. Der DMA-Adressengenerator 34 arbeitet während der Übertragung, um Daten in den Netzwerk- Speicherabschnitt 22 zur temporären Speicherung zu bewegen, bevor sie über die Netzwerk-Schnittstelle 14 übertragen werden.
  • Während des Empfangs arbeitet der DMA-Adressengenerator 34, um Daten von dem Netzwerk-Speicherabschnitt 22 auf den Bus 23 zum Zwecke der gleichzeitigen Einschreibung (1.) in den Hauptspeicher 20 und (2.) in den Prüfsummen-Berechnungsabschnitt 16 zu bewegen. Der DMA-Adressengenerator 32 arbeitet während des Empfangs, um Daten in den Hauptspeicher 20 zur Verwendung durch den Zentralcomputer 12 zu bewegen.
  • Fig. 2 zeigt ein typisches beispielhaftes Datenpaket 30, das in einem Hauptspeicher 20 mit einer Breite von 32 Bit organisiert ist und einer Übertragung von dem Zentralcomputer 12 zu der Netzwerk-Schnittstelle 14 unterliegt. Das Datenpaket umfaßt eine Reihe von Bytes mit 8 Bit, die die Protokoll- Steuerinformation PCI für die verschiedenen Schichten des Protokolls 150 festlegen und die die Transport-Schichtdaten 151 festlegen. Die Protokoll- Steuerinformation umfaßt die Transportschicht PCI 152 und die untere Netzwerkschicht PCI 153.
  • Die Grenze A ist die erste Grenze für das Doppelwort mit 32 Bit am oder vor dem Beginn des Paketes, mit dem die erste DMA-Operation beginnt. Der tatsächliche Start des Paketes ist der Start der unteren Netzwerkschicht PCI, die sich von dem Punkt B zu dem Punkt C erstreckt. Die Startadresse der Transportschicht, die sich zwischen den Punkten C und F erstreckt, umfaßt die ersten und zweiten auf die Prüfsumme bezogenen Bytes X und Y, die an den Punkten D und E entsprechend angeordnet sind. Der Beginn der Transportschichtdaten befindet sich an irgendeinem Punkt F, der auf einer Doppelwortgrenze liegen kann oder auch nicht. Das Ende der Daten und gleichzeitig auch das Paket befindet sich an irgendeinem Punkt G. Der Raum H zwischen einem solchen Ende und dem Ende des 32-Bit-Doppelwortes 1 kann 0,1, 2 oder 3 Bytes umfassen, die mit Nullen gefüllt sind.
  • Eine Offset-Anzahl von Bytes zwischen dem Start der DMA-Operation A und dem Start der Prüfsummenoperation wird zwischen dem Punkt A und dem Punkt C gezählt. Ein zweiter Offset zwischen dem Ende der Transportschichtdaten G und dem Ende der DMA-Operation wird zwischen dem Punkt G und dem Punkt 1 gezählt. Der Prüfsummen-Datenfluß-Steuerabschnitt 15 benutzt die zwei Offsets, um den Prüfsummen-Berechnungsabschnitt über die Leitung 52 zu steuern. Diese Steuerung ruft den Beginn der Prüfsummenbildung mit dem Byte hervor, das unmittelbar auf den Punkt C folgt, und den Stop mit dem Byte, das unmittelbar vor dem Punkt G liegt. Unter Verwendung des Offsets können die voneinander unabhängigen Anforderungen der Kopie eines Datenblockes und der Prüfsummenbildung mit einer Untergruppe der kopierten Daten während gleichzeitiger Operationen verwirklicht werden, wobei das Kopieren an den beliebigen Punkten A und 1 entsprechend beginnt und endet, und die Prüfsummenbildung an den Punkten C und G entsprechend beginnt und endet.
  • Während der Übertragungsoperation werden Datenpakete 30 in dem Hauptspeicher 20 in der Form von Worten mit einer Breite von 32 Bit zu dem Netzwerk-Speicherabschnitt 22 über die Busverbindung 24 bewegt. Gleichzeitig und parallel werden Datenpakete zu dem Prüfsummen-Berechnungsabschnitt 16 über die Busverbindung 25 bewegt. Die obige Parallelbewegung von Daten wird in eine Direktspeicherzugriffs-(DMA)-Operation durch den Adressengenerator 32 ausgeführt mit nur einer Abtastung der Daten in dem Hauptspeicher 20 für jedes Wort mit einer Breite von 32 Bit.
  • Bei der Vorbereitung der Übertragung besitzen die Datenpakete 30 in dem Hauptspeicher 20, jeweils gemäß dem 150-Transportschicht- Prüfsummenalgorithmus, Bytes X und Y, die auf "Summen" und "Summe von Summen" bezogen sind und die den Wert Null besitzen, bevor die Prüfsumme berechnet wird. Gemäß der Erfindung werden die Paketdaten zu dem Prüfsummen-Berechnungsabschnitt 16 gesendet, wo Werte für die Bytes X und Y gemäß dem Prüfsummenalgorithmus berechnet werden. Zur gleichen Zeit wird eine identische Kopie der Daten mit Null-Bytes X und Y von dem Hauptspeicher 20 zu dem Netzwerk-Speicherabschnitt 22 gesendet.
  • Die berechneten X- und Y-Bytewerte werden zu dem Netzwerk-Speicherabschnitt 22 ausgegeben, um die Null-Bytes X und Y der darin kopierten Daten über einen Prüfsummen-Datenausgang 80, den Datenfluß-Steuerabschnitt 18 und eine Verbindung 82 zwischen dem Abschnitt 18 und dem Netzwerk-Speicherabschnitt 22 zu füllen. Die Paketdaten mit den Bytewerten X und Y werden sodann auf das Netzwerk über die Netzwerk-Schnittstelle 14 übertragen.
  • Während der Empfangsoperation werden Datenpakete 30 in dem Netzwerk- Speicherabschnitt 22 in der Form von Worten mit einer Breite von 32 Bit zu dem Hauptspeicherabschnitt 20 über die Busverbindung 24 bewegt. Gleichzeitig und parallel werden die Datenpakete zu dem Prüfsummen-Berechnungsabschnitt 16 über die Busverbindung 25 bewegt. Die obige Parallelbewegung von Daten wird in einer Direktspeicherzugriff-(DMA)-Operation durch den Adressengenerator 34 ausgeführt mit nur einer Abtastung der Daten in dem Netzwerk-Speicherabschnitt 22 für jedes Wort von 32 Bit.
  • Die in dem Netzwerk-Speicherabschnitt 22 empfangenen Datenpakete 30 besitzen gemäß dem LSO-Transportschicht-Prüfsummenalgorithmus komplementäre Bytes X und Y entsprechend der "Summe" und "Summe von Summen" mit spezifischen Werten, welche durch eine Prüfsummenoperation von einer Übertragungsstation berechnet wurden. Während der Empfangsoperation wird jedes übertragene Datenpaket auf Fehler an der Empfangsstation geprüft, in dem aktuelle Summen- und Summe von Summen-Werte für alle Bytes in dem Transportschichtpaket von den Punkten C bis G in Fig. 2 berechnet werden. Jeder Wert wird dem Wert Null bei Abwesenheit eines Fehlers entsprechend als direkte Folge der spezifischen, auf die Summe und die Summe von Summen bezogenen Werte, die in den Bytes X und Y durch die Übertragungsstation gespeichert sind. Die Prüfsummenberechnungen beim Empfang geben eine Fehlerfeststellung durch kontinuierliche Prüfung jedes empfangenen Datenpakets auf Werte von Null für die Summe und die Summe von Summen vor.
  • Werte für die Summen- und Summe von Summen-Bytes werden an den Hauptspeicher 20 über den Prüfsummen-Datenausgang 80, den Datenfluß- Steuerabschnitt 18 und eine Verbindung 84 zwischen dem Steuerabschnitt 15 und dem Hauptspeicher 20 ausgegeben, um den korrekten oder nicht-korrekten Empfang des Paketes anzuzeigen.
  • Der Prüfsummen-Berechnungsabschnitt 16 von Fig. list in schematischen Einzelheiten in Fig. 3 dargestellt. Die Eingangsseite des Abschnittes 16 ist wirksam mit dem Datenbus 25 verbunden, um Datenbits 32 zu einer Zeit zu empfangen, während Daten zwischen den Speichern 20 und 22 während der Übertragung und des Empfangs bewegt werden. Eine Vierweg- Multiplexerlregistereinheit 40 speist eine Reihe von Teiladdierern 45, 46 und 47 mit einem Byte zu jedem Zeitpunkt. Diese Addierer führen die erforderlichen Fletcher-Prüfsummenoperationen aus.
  • Der Prüfsummen-Berechnungsabschnitt 16 umfaßt eine Prüfsummen- Steuereinheit 50, die mit der Multiplexereinheit 40 und den Teiladdierern verbunden ist, um deren Steuerung zu bewirken. Eine Steuerverbindung 52 (in Fig. 1 gezeigt) ist zwischen dem Datenfluß-Steuerabschnitt 18 und der Prüfsummen-Steuereinheit 150 vorgesehen.
  • Ein Datenausgang 55 des Prüfsummen-Berechnungsabschnittes 16 besteht aus zwei 8 Bit-Worten, die mit "Summe" und "Summe von Summen" bezeichnet sind, welche die Werte sind, die durch den 150-Transportschicht- Prüfsummenalgorithmus im Falle des Empfangs gefordert werden. Der Ausgang 55 besitzt den Wert "Null" sowohl für die Bytes der Summe als auch der Summe von Summen, in dem Fall, wo keine Fehler in dem empfangenen Paket festgestellt werden. Andernfalls weicht das Ergebnis von Null ab. Im Übertragungsmodus werden die Ausgangswerte 55 in einer relativ geringen Berechnung benutzt, die durch den Datenfluß-Steuerabschnitt 18 ausgeführt wird und die in dem Transportschicht-Protokollstandard festgelegt ist, um die exakten Prüfsummenbytes X und Y zu erzeugen, die in das Datenpaket vor der Übertragung eingeschrieben werden.
  • Bezieht man sich auf Fig. 3 und nimmt man an, daß sich das Gerät in einem Übertragungsmodus befindet, so wird auf den Bus 25, der ein Wort mit einer Breite von 32 Bit von dem Hauptspeicher 20 führt, durch den Multiplexer 40 zugegriffen, der es in vier 8 Bit-Worte (n = 8) unterteilt, welche der Reihe nach den Eingängen A0 bis A7 des Teiladdierers 45 zugeführt werden.
  • Mit der Verbindungskonfiguration gemäß Fig. 3 kann der Teiladdierer 45 unabhängig den geforderten "Summen"-Wert (Modulo 255) für den Datenausgang 55 erzeugen. Die Erzeugung eines "Summe von Summen"-Wertes (Modulo 255) erfordert die gemeinsame Teilnahme aller drei Teiladdierer 45, 46 und 47 bei der Verbindungskonfiguration gemäß Fig. 3. Diese Ausgangswerte 55 werden benutzt, um die Prüfsummenbytes X und Y zu berechnen, die in das Datenpaket vor der Übertragung eingeschrieben werden.
  • Wenn sich das Gerät in einem Empfangsmodus befindet, so wird auf den Bus 25 in ähnlicher Weise durch den Multiplexer 40 zugegriffen, welcher das Wort in vier 8 Bit-Worte (n = 8) unterteilt, die der Reihe nach den Eingangen A0 bis A7 des Teiladdierers 45 zugeführt werden. Mit identischem Betrieb erzeugt der Teiladdierer 45 den geforderten "Summen"-Wert für den Datenausgang 55, und der "Summe von Summen"-Wert wird durch die gemeinsame Einwirkung aller drei Teiladdierer 45, 46 und 47 gebildet. Der Datenfluß-Steuerabschnitt 18 übermittelt die Werte für die Summe und die Summe von Summen zu dem Hauptspeicher 20 des Zentralcomputers 12 über die Leitung 84 (in Fig. 1 gezeigt). Der Zentralcomputer triffi eine Feststellung, ob der fehlerfreie Empfang des Paketes, der auf diesen Werten basiert, in beiden Fällen Null beträgt oder nicht.
  • Damit der Prüfsummen-Berechnungsabschnitt nicht als ein leistungsbeschränkender Engpaß im Hinblick auf die maximal mögliche Geschwindigkeit im Falle eines DMA-gesteuerten Speichers wirkt, muß bei einer Speicherkopieroperation alleine die Prüfsummenoperation mit einer Geschwindigkeit ausgeführt werden, die dem vierfachen der Geschwindigkeit der Speicherübertragung entspricht. Das heißt, vier Bytes müssen einer Prüfsummenbildung während der Zeit einer DMA-Übertragung mit 32 Bit unterzogen werden.
  • Die Prüfsummenoperationen in dem hier offenbarten Ausführungsbeispiel werden durch Teiladdierer 45, 46 und 47 ausgeführt, die durch acht Volladdierer aufgebaut werden, von denen jeder eine Breite von einem Bit aufweist und die parallel betrieben werden, um einen "Teiladdierer" zu bilden. Ein solcher Teiladdierer ist in Fig. 4 gezeigt und umfaßt acht Volladdierer 60 bis 67 mit einer Breite von einem Bit und ein "Teilsummen-Ausgangsregister" 71 mit einer Breite von acht Bit und ein "Teilübertrags"-Ausgangsregister 72 mit einer Breite von acht Bit.
  • Jeder Volladdierer mit einer Breite von einem Bit besitzt drei Eingänge für die Addition von drei Bits (An und Bn und einen Übertragseingang Cn), und somit besitzt jeder der Teiladdierer 24 Eingänge, die drei Worte A, B und C mit 8 Bit aufnehmen, wie dies in Fig. 4 gezeigt ist. Jeder Volladdierer mit einer Breite von einem Bit besitzt zwei Ausgangsbits für die Summe Sn und den Übertrag Cn, und jeder Teiladdierer ist somit über einen Bus 75 mit einer Breite von 8 Bit an das Register 71 angeschlossen, das einen "Teilsummen"-Wert ausgibt und über einen Bus 76 mit einer Breite von 8 Bit an das Register 72 angeschlossen ist, welches einen "Teilübertragst"-Wert ausgibt. Obgleich die Einzelbitaddierer unabhängig voneinander betrieben werden, besitzen ihre Ausgangsbits, die in den Registern 71 und 72 gespeichert werden, eine 8 Bit-Binärgewichtung wie ein normaler binärer Summenausgang.
  • Der Teiladdierer ist insofern ein Teiladdierer, als er nicht die Fortpflanzung von Übertragsbits durch die Addierer-Bitpositionen (vom Übertragsausgang zum Übertragseingang) von der am wenigstens signifikanten Bitposition zu der signifikantesten Bitposition in jedem Addierzyklus in Rechnung stellt. Durch die Vermeidung des Wartens auf Überträge, die sich durch den Addierer fortpflanzen, um einen korrekten Summenausgang zu erzeugen, kann der Addierer der Reihe nach eine Liste von Binärworten mit einer sehr schnellen Zykluszeit und mit einer minimalen Verzögerung pro Wort addieren, da jeder Addierer mit einer Breite von einem Bit unabhängig und parallel arbeiten kann.
  • Um Überträge in Rechnung zu stellen, ohne auf die Übertragsfortpflanzung zu warten, kann alternativ ein vollständiges Summenresultat an jeder Ausgangsbitposition gebildet werden, indem alle 24 Eingangsbits bezüglich ihrer Einwirkung auf das Ausgangssummenbit in Rechnung gestellt werden. Dieses Verfahren kann mit einer hohen Geschwindigkeit arbeiten, besitzt aber den Nachteil einer sehr großen Anzahl von Logikeingängen, die für jedes Ausgangsbit zu berücksichtigen sind, und somit einen hohen Aufwand speziell bei breiten Binärworten. Die geringe Anzahl von Eingängen, die pro Bitposition bei der Erfindung erforderlich sind, resultiert aus seiner Bereitschaft, eine teilweise vervollständigte Summe (in zwei Teilen) für eine vollständige Summe bei jeder der letzten Summieroperation nachfolgenden Summieroperation in der Reihe zu ersetzen.
  • Der "Teilsummen"-Ausgang 75 an jeder Zyklusgrenze ist nicht die tatsächliche Summe der zuvor addierten Summanden, da ihm eine Berücksichtigung der Übertragswerte fehlt. Der Teilübertragsausgang 76 besitzt einen ähnlichen Mangel. Wenn diese zwei Ausgänge 75 und 76 vollständig summiert würden, so würde der Ausgang die korrekte laufende Summe für die vorangehenden Summanden sein. Bei der Erfindung ist jedoch eine vollständige Summe niemals so lange verfügbar, bis das endgültige Resultat gebildet ist.
  • Um dem Mangel Rechnung zu tragen, wird der Teilübertragsausgang nach links verschoben zu der nächst höheren Bitposition und zusammen mit der Teilsumme und dem nächsten Summanden in dem nächsten Addierzyklus gemäß Fig. 3 addiert. Die Längsverschiebung tritt an den Verbindungspunkten C0-C7 nach Art eines umlaufenden Übertrages auf, wodurch die erforderliche Modulo 255- Arithmetik verwirklicht wird. Dies führt zu einem Summenausgang in dem ersten Addierer 45, der solange nicht die endgültige korrekte Summe ist, bis genügend Zyklen ausgeführt worden sind, nachdem der letzte von Null abweichende Summand addiert worden ist, um alle verbleibenden Teilüberträge zu addieren. 7 Zyklen (im Falle eines Summanden mit 8 Bit), nachdem die einlaufenden Summanden enden und Werte von Null für die Summanden substituiert worden sind, beträgt der Teilübertragsausgang Null und der Teilsummenausgang wird das vollständige Summenresultat (keine Teilsumme) enthalten. Obgleich zusätzliche Zyklen benötigt werden, um das endgültige Summenresultat zu erzeugen, kann somit jeder Zyklus mit höherer Geschwindigkeit ausgeführt werden. Wenn eine große Anzahl von Summanden addiert werden, ergibt sich somit eine Zeiteinsparung, um die endgültige Summe zu erzeugen.
  • Bezüglich des Verfahrens der Bildung der Summe von Summen muß diese Addition den letzten Summenwert mit dem laufenden Gesamtwert der Summe von Summen zusammenaddieren. Diese Werte kommen jeweils in zwei Teilen, aufgrund des verwendeten Verfahrens der Teiladdition. Infolgedessen muß die Summe von Summen-Addition vier Eingänge zusammenaddieren, welche aus zwei neuen Teileingängen für die Summe und zwei laufenden Gesamt- Teileingängen für die Summe von Summen bestehen. Das Ergebnis wird gebildet durch Verwendung der zweiten und dritten Teiladdierer 46 und 47. Die neuen Teileingänge für die Summe bestehen aus:
  • 1) der neuen Teilsumme (Eingang an A0-A7 am Teiladdierer 47), und
  • 2) dem neuen Teilübertrag (Eingang an B0-B7 des Teiladdierers 46).
  • Die laufenden Gesamt-Teileingänge für die Summe von Summen sind:
  • 3) die laufende Teilsumme von Summen (Eingang an B0-B7 des Teiladdierers 47), und
  • 4) der laufende Teilübertrag von dem Summe von Summen- Additionszyklus (Eingang an A0-A7 des Teiladdierers 46).
  • Diese vier Eingänge (anstelle von drei Eingängen bei einem normalen Addierer: A, B & Übertragseingang) werden effektiv in zwei Stufen des Summe von Summen-Addierers teiladdiert, der die zweiten und dritten Teiladdierer 46 und 47 umfaßt. Da diese Addition ebenfalls eine "Teiladdition" ist, werden zwei zusätzliche Ausgangswerte gebildet. Die gesonderten, durch die Teiladdition erzeugten Teilwerte, nämlich die Teilsumme und der Teilübertrag von dem Teiladdierer 46, müssen bei der Bildung der Summe von Summen-Ergebnissen berücksichtigt werden. Dem wird Rechnung getragen an den Eingängen C0-C7 des Teiladdierers 47 und den Eingängen C0-C7 des Teiladdierers 46. Die Summieroperation der vier Eingänge, die erforderlich ist, um das Summe von Summen-Resultat unter Verwendung des Teiladditionsverfahrens zu erhalten, wird somit durch Verwendung der einfachen Teiladdierer 46 und 47 mit drei Eingängen erzielt.
  • Das Verfahren der Verbindung der zwei Teiladditionsstufen 46 und 47 gestattet es, daß das endgültige Summe von Summen-Resultat in dem dritten Teiladdierer 47 verbleiben kann, anstatt zwischen den beiden bei abwechselnden Zyklen hin und her zu schalten. Tatsächlich wird der Teiladdierer 46 benutzt, um strikt Teilübertragseingänge aufzusummieren, während der Teiladdierer 47 benutzt wird, um strikt Teilsummeneingänge aufzuaddieren. Da die Teilüberträge auf null zurückgeführt werden, nachdem ihren Einflüssen vollständig Rechnung getragen worden ist, weisen beide Ausgänge des Teiladdierers 46 den Wert Null auf, nachdem alle Überträge berücksichtigt worden sind. Somit muß man nur sicherstellen, daß sieben oder mehr zusätzliche Zyklen nach dem letzten von Null abweichenden Summanden von dem Teiladdierer 45 empfangen worden sind, um sicherzugehen, daß das Ergebnis korrekt ist und von dem Teilsummenausgang des dritten Teiladdierers 47 ablesbar ist.
  • Ein praktisches Ausführungsbeispiel des Prüfsummen-Berechnungsabschnittes 16 ist in Fig. 5 gezeigt, in welcher entsprechende Hardware-Komponenten die gleichen Bezugszeichen aufweisen.
  • Gemäß Fig. 1 kann in einigen Fällen das Datenpaket, das einer Prüfsummenbildung unterzogen werden soll, in einer Gruppe von getrennten Datenpuffern gespeichert werden, die diskontinuierlich in verschiedenen Abschnitten des Hauptspeichers 20 angeordnet sind. In diesem Fall verwendet die Prüfsummenoperation den Adressengenerator 32 in einem Puffer- Verkettungsmodus, der eine größere Wirksamkeit bei der Verbindung der getrennten Pakete zu einem einzigen logischen Paket für die Prüfsummenbildung und die Übertragung bezweckt. Der Zentralcomputer 12 ist somit nicht erforderlich, um die getrennten Datenpuffer zu einem aneinandergrenzenden Datenpuffer zu organisieren, bevor der Steuerabschnitt 18 und der Adressengenerator 32 die Übertragung- und Prüfsummenbildung derselben auf den Bus 23 bewirken.
  • Fig. 6 zeigt ein Paket 30, welches mit drei Teilen 131, 132 und 133 dargestellt ist, die diskontinuierlich in verschiedenen Abschnitten des Hauptspeichers 20 angeordnet sind. Pufferdeskriptoren 135, 136 und 137 sind ebenfalls im Speicher 20 entsprechend angeordnet, um jeden der Paketteile miteinander zu verbinden und den Datenfluß-Steuerabschnitt 18 mit Hinweisadressen zu jedem getrennten Paketteil zu versehen. Jeder Pufferdeskriptor besitzt drei Felder, welche umfassen (1.) eine Hinweisadresse zu dem Beginn eines Paketteiles, (2.) die Länge des Paketteiles und (3.) einen Hinweis bzw. eine Verbindung zu dem nächsten Pufferdeskriptor. Das Wort "NULL", auf das durch die nächste Pufferverbindung des letzten Pufferdeskriptors 137 hingewiesen wird, zeigt dem Datenfluß-Steuerabschnitt 18 an, daß keine weiteren Pakete einem vorgegebenen Paket zugeordnet sind.
  • Der Steuerabschnitt 18 arbeitet mit dem Adressengenerator 32 und den Pufferdeskriptoren zusammen, um der Reihe nach die Paketdatenteile 131,132 und 133 auf den Bus 23 zu laden, der diese als Datenströme zu dem Prüfsummen-Berechnungsabschnitt 16 und dem Netzwerk-Speicherabschnitt 22 richtet. Puffer-Hinweisadressen von jedem der Pufferdeskriptoren werden in den Hauptspeicher-Abschnitt 20 kopiert und in den Datenfluß-Steuerabschnitt 18 über die Leitung 140 geladen, wo auf sie durch den Adressengenerator 32 zugegriffen werden kann.
  • Der Adressengenerator lädt den Datenpuffer 131, beginnend am Punkt A und mit 32 Bit, auf einmal auf den Bus 23, bis er zu dem Punkt F gelangt, wo die Puffer- Verkettungsoperation bewirkt wird. Dieses Verfahren wird für die Datenpuffer 132 und 133 über Pufferdeskriptoren 136 und 137 wiederholt, bis ein vollständiges Paket bewegt worden ist und einer Prüfsummenbildung unterzogen worden ist.
  • Eine ähnliche Puffer-Verkettungsoperation kann verwendet werden, um in diskontiniuerliche Pufferspeicherplätze in dem Netzwerk-Speicherabschnitt 22 einzuschreiben, wenn dies für große Datenpakete gewünscht ist. Eine Leitung ist dementsprechend vorgesehen, um nächste Hinweisadressenwerte von dem Speicherabschnitt 22 in den Datenfluß-Steuerabschnitt 18 zu laden, in welchem auf sie durch den Adressengenerator 34 zugegriffen werden kann.
  • Die Berechnung der Prüfsumme im Datenempfangsmodus (Fig. 1b) wird in ähnlicher Weise ausgeführt unter Verwendung der Puffer-Verkettungsoperation mit den zwei Adressengeneratoren und dem Datenfluß-Steuerabschnitt 18.
  • Die Erfindung wird ebenfalls mit Vorteil in Situationen verwendet, wo die Dialoganforderungen oder die Anforderungen des Zentralsystems die Bewegung von Daten aus dem Zentralspeicher ausschließen, bis die Prüfsumme berechnet worden ist, und die X- und Y-Werte in das Paket eingefügt worden sind. In diesem Fall arbeitet die Prüfsummen-Berechnungseinheit (Fig. 1) in einer ähnlichen Weise, um die Prüfsumme auf Befehl des Zentralcomputers zu berechnen, wobei jedoch die Daten nicht in dem Netzwerk-Speicherabschnitt während der Berechnung der Prüfsumme gespeichert sind. In diesem Fall sind der Netzwerk- Speicherabschnitt 22 und der zugeordnete Adressengenerator 34 für die Berechnung der Prüfsumme nicht erforderlich. Die X- und Y-Werte werden über die Leitung 84 in den Hauptspeicher 20, anstatt n den Neztwerkspeicher 22 zurückgeführt. Die Einheit liefert eine rasche Berechnung der Prüfsumme, ohne daß ausgedehnte Software-Verarbeitungsschritte des Zentralcomputers erforderlich sind.
  • Im Empfangsmodus gestattet das entsprechende Erfordernis die Berechnung der Prüfsumme nur, nachdem das Paket vollständig in dem Hauptspeicher 20 gespeichert ist. In diesem Modus greift die Prüfsummen-Berechnungseinheit auf das empfangene Paket in dem Hauptspeicher zu unter Verwendung des Adressengenerators 32 und des Busses 23, um die Prüfsumme zu berechnen. Die Summen- und Summe von Summen-Werte sind über die Leitung 84 für den Hauptspeicher 20 verfügbar.
  • Es liegt dem Fachmann auf der Hand, daß zahlreiche Modifikationen der vorliegenden Erfindung vorgenommen werden können, ohne daß von dem Geist der Erfindung abgewichen wird, die nur durch den Rahmen der angefügten Ansprüche beschränkt werden soll.

Claims (5)

1. Daten-Dialogsystem aufweisend eine Prüfsummen-Berechnungseinrichtung (16), einen Datenspeicher (20, 22) für die Speicherung einer Gruppe von Datenworten, eine Datenadressier- und Abtasteinrichtung (32, 34), um auf den Speicher zuzugreifen und Datenworte an die Prüfsummen-Berechnungseinrichtung zu liefern und von dieser zu übertragen, dadurch gekennzeichnet, daß der Datenspeicher erste und zweite Speicherabschnitte (20, 22) aufweist und daß Steuerschaltkreise (18) die Übertragung von Daten zwischen den Speicherabschnitten gleichzeitig mit dem Betrieb der Prüfsummen-Berechnungseinrichtung (16) gestatten; daß die Prüfsummen- Berechnungseinrichtung (16) drei Teiladdierer (45, 46, 47) umfaßt, wobei die Addierer so angeordnet sind, daß ein erster Addierer ein Summenresultat erzeugt und alle drei Addierer zusammenwirken, um ein Teilsummenresultat zu erzeugen; und daß die Datenadressier- und Abtasteinuchtung (32, 34) Puffer-Verkettüngseinrichtungen (135, 136, 137) umfaßt, die die Prüfsummenbildung von mehreren diskontinuierlichen Datenblöcken (131, 132, 133) ermöglichen.
2. Daten-Dialogsystem nach Anspruch 1, dadurch gekennzeichnet, daß die Prüfsummen-Berechnungseinrichtung (16) über den Prüfsummen-Algorithmus betätigbar ist, wie er für das Standard-Transport-Schichtprotokoll ISO IS/8073 spezifiziert ist.
3. Daten-Dialogsystem nach Anspruch 2, dadurch gekennzeichnet, daß die Anordnung vorgibt, daß das Teilsummenresultat am Ausgang des letzten Addierers (47) in der Reihe erhalten wird, nachdem die erforderliche Anzahl von Summierzyklen vervollständigt ist.
4. Datendialogsystemnachanspruch3, dadurch gekennzeichnet, daß die Teiladdierer (45, 46, 47) so angeordnet sind, daß der endgültige Wert der Teilsummen Bytes am Ausgang des letzten Teiladdierers nach der Vervollstandigung der erforderlichen Anzahl von Summierzyklen erhalten wird.
5. Daten-Dialogsystem nach Anspruche 4, dadurch gekennzeichnet, daß jeder der Teiladdierer (45, 46, 47) Eingänge (A0 - A7), (B0 - B7), und (C0 - C7) und Ausgänge (PS) und (PC) besitzt.
DE69114788T 1990-08-29 1991-08-27 Datenübertragungssystem mit Kontrollsummerechenmittel. Expired - Fee Related DE69114788T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US57482290A 1990-08-29 1990-08-29

Publications (2)

Publication Number Publication Date
DE69114788D1 DE69114788D1 (de) 1996-01-04
DE69114788T2 true DE69114788T2 (de) 1996-07-11

Family

ID=24297792

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69114788T Expired - Fee Related DE69114788T2 (de) 1990-08-29 1991-08-27 Datenübertragungssystem mit Kontrollsummerechenmittel.

Country Status (5)

Country Link
US (1) US5500864A (de)
EP (1) EP0473102B1 (de)
JP (1) JPH04358245A (de)
CA (1) CA2050099A1 (de)
DE (1) DE69114788T2 (de)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5430842A (en) * 1992-05-29 1995-07-04 Hewlett-Packard Company Insertion of network data checksums by a network adapter
JPH0816419A (ja) * 1994-04-05 1996-01-19 Internatl Business Mach Corp <Ibm> メッセージ・データ・エラー検出システム
US5663952A (en) * 1995-07-07 1997-09-02 Sun Microsystems, Inc. Checksum generation circuit and method
US5737638A (en) * 1995-07-14 1998-04-07 International Business Machines Corporation System for determining plurality of data transformations to be performed upon single set of data during single transfer by examining communication data structure
US5845095A (en) * 1995-07-21 1998-12-01 Motorola Inc. Method and apparatus for storing and restoring controller configuration information in a data communication system
US5815516A (en) * 1996-04-05 1998-09-29 International Business Machines Corporation Method and apparatus for producing transmission control protocol checksums using internet protocol fragmentation
KR100201946B1 (ko) * 1997-03-19 1999-06-15 윤종용 Fft 망의 첵섬 계산장치 및 방법
US6289023B1 (en) * 1997-09-25 2001-09-11 Hewlett-Packard Company Hardware checksum assist for network protocol stacks
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
WO2000002236A2 (en) * 1998-07-07 2000-01-13 Memc Electronic Materials, Inc. Radio frequency identification system and method for tracking silicon wafers
US6279140B1 (en) * 1999-01-07 2001-08-21 International Business Machines Corporation Method and apparatus for checksum verification with receive packet processing
US6324670B1 (en) 1999-03-24 2001-11-27 Novell, Inc. Checksum generator with minimum overflow
US6922781B1 (en) * 1999-04-30 2005-07-26 Ideaflood, Inc. Method and apparatus for identifying and characterizing errant electronic files
JP2001027877A (ja) * 1999-04-30 2001-01-30 Hewlett Packard Co <Hp> データ・ストリームに対してアルゴリズムを実行する装置
US6964008B1 (en) * 1999-11-12 2005-11-08 Maxtor Corporation Data checksum method and apparatus
US6530061B1 (en) * 1999-12-23 2003-03-04 Intel Corporation Method and apparatus for offloading checksum
US6637007B1 (en) * 2000-04-28 2003-10-21 Network Appliance, Inc. System to limit memory access when calculating network data checksums
US6643821B2 (en) * 2000-11-30 2003-11-04 Stmicroelectronics, Inc. Method and device for computing incremental checksums
US7274706B1 (en) 2001-04-24 2007-09-25 Syrus Ziai Methods and systems for processing network data
US6976205B1 (en) * 2001-09-21 2005-12-13 Syrus Ziai Method and apparatus for calculating TCP and UDP checksums while preserving CPU resources
US6976170B1 (en) * 2001-10-15 2005-12-13 Kelly Adam V Method for detecting plagiarism
JP2003124977A (ja) * 2001-10-18 2003-04-25 Fujitsu Ltd チェックサムの書換装置
GB2383440A (en) * 2001-12-21 2003-06-25 Sun Microsystems Inc DMA memory system with further DMA unit
US7212532B1 (en) * 2001-12-21 2007-05-01 Rockwell Collins, Inc. Message re-sending protocol for a wireless communications system
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
EP1353467A1 (de) * 2002-04-08 2003-10-15 Mitsubishi Electric Information Technology Centre Europe B.V. Verfahren zur Rückgewinnung von Rahmenmarkierungen in HSDPA
US7899924B2 (en) 2002-04-19 2011-03-01 Oesterreicher Richard T Flexible streaming hardware
US7137142B2 (en) * 2002-06-28 2006-11-14 Motorola, Inc. Method and system for vehicle authentication of a component using key separation
US7385974B2 (en) * 2003-03-20 2008-06-10 Broadcom Corporation Self-describing transport protocol segments
US7930490B2 (en) * 2002-12-23 2011-04-19 Siemens Industry, Inc. Method for utilizing a memory device for a programmable logic controller (PLC)
JP4344576B2 (ja) * 2003-09-26 2009-10-14 株式会社ルネサステクノロジ パケット通信装置
US7631251B2 (en) * 2005-02-16 2009-12-08 Hewlett-Packard Development Company, L.P. Method and apparatus for calculating checksums
US7496695B2 (en) 2005-09-29 2009-02-24 P.A. Semi, Inc. Unified DMA
US20070124816A1 (en) * 2005-11-29 2007-05-31 Alcatel Unauthorized content detection for information transfer
US8024632B1 (en) 2008-01-11 2011-09-20 Victor Konrad Method and mechanism for implementation-independent, on-line, end-to-end detection of faults in self-checking queues in digital hardware systems
US8112691B1 (en) * 2008-03-25 2012-02-07 Oracle America, Inc. Method for efficient generation of a Fletcher checksum using a single SIMD pipeline
US20090248910A1 (en) * 2008-04-01 2009-10-01 Apple Inc. Central dma with arbitrary processing functions
US8099528B2 (en) * 2008-09-30 2012-01-17 Apple Inc. Data filtering using central DMA mechanism
GB2465801B (en) * 2008-12-01 2014-05-14 Micron Technology Inc Method and apparatus for providing data access
US9880954B2 (en) 2008-12-01 2018-01-30 Micron Technology, Inc. Method and apparatus for providing data access

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2907526A (en) * 1956-11-02 1959-10-06 Ibm Electronic accumulator
US3299260A (en) * 1963-08-06 1967-01-17 Ncr Co Parallel adder using majority decision elements
US3573726A (en) * 1968-09-26 1971-04-06 Computer Ind Inc Partial modification and check sum accumulation for error detection in data systems
US4054788A (en) * 1976-06-04 1977-10-18 Hewlett-Packard Company Modular binary half-adder
US4092732A (en) * 1977-05-31 1978-05-30 International Business Machines Corporation System for recovering data stored in failed memory unit
SE417760B (sv) * 1979-05-15 1981-04-06 Ellemtel Utvecklings Ab Sett att vid dataoverforing mellan en sendande dator och en mottagande dator overvaka fel och anordning for genomforande av settet
DE2939461C2 (de) * 1979-09-28 1989-07-20 Siemens AG, 1000 Berlin und 8000 München Verfahren zum Feststellen von Datenstörungen in Speichern
US4570215A (en) * 1982-01-08 1986-02-11 Omron Tateisi Electronics Co. Input/output device for programmable controller
US4523314A (en) * 1983-02-07 1985-06-11 Sperry Corporation Read error occurrence detector for error checking and correcting system
JPS605363A (ja) * 1983-06-22 1985-01-11 Sharp Corp メモリ内容確認方式
US4604750A (en) * 1983-11-07 1986-08-05 Digital Equipment Corporation Pipeline error correction
JPS60133599A (ja) * 1983-12-21 1985-07-16 Nec Corp 半導体メモリ装置
US4555784A (en) * 1984-03-05 1985-11-26 Ampex Corporation Parity and syndrome generation for error detection and correction in digital communication systems
US4889233A (en) * 1986-10-20 1989-12-26 Fuji Photo Film Co., Ltd. Cassette for stimulable phosphor sheet
JPS63217736A (ja) * 1987-03-05 1988-09-09 Mitsubishi Electric Corp デ−タ伝送方式
US4949342A (en) * 1987-04-14 1990-08-14 Matsushita Electric Industrial Co., Ltd. Code error detecting method
JP2713902B2 (ja) * 1987-04-28 1998-02-16 三洋電機株式会社 アドレス発生回路
US4899305A (en) * 1988-06-15 1990-02-06 National Semiconductor Corp. Manchester carry adder circuit
US4901270A (en) * 1988-09-23 1990-02-13 Intel Corporation Four-to-two adder cell for parallel multiplication
US4964126A (en) * 1988-09-30 1990-10-16 Massachusetts Institute Of Technology Fault tolerant signal processing machine and method
JPH02259926A (ja) * 1989-03-31 1990-10-22 Hitachi Ltd 加算制御方式
US5058110A (en) * 1989-05-03 1991-10-15 Ultra Network Technologies Protocol processor

Also Published As

Publication number Publication date
EP0473102A2 (de) 1992-03-04
EP0473102A3 (en) 1993-01-07
JPH04358245A (ja) 1992-12-11
US5500864A (en) 1996-03-19
CA2050099A1 (en) 1992-03-01
EP0473102B1 (de) 1995-11-22
DE69114788D1 (de) 1996-01-04

Similar Documents

Publication Publication Date Title
DE69114788T2 (de) Datenübertragungssystem mit Kontrollsummerechenmittel.
DE3424962C2 (de)
DE3650102T2 (de) Anordnung und Verfahren zur Berechnung zyklischer redundanter Kode.
DE69623545T2 (de) Schaltung und Verfahren zur Erzeugung von Prüfsummen
DE3689285T2 (de) CRC-Rechenmaschinen.
DE2846495C2 (de) Zentraleinheit
DE1524103B2 (de) Datenverarbeitungsgerät
DE2727533A1 (de) Datenuebertragungssystem
DE3222389A1 (de) Kanalschnittstellenschaltung
DE2360505A1 (de) Datenverarbeitungsanlage mit einer anordnung zur uebertragung von daten zwischen zwei funktionseinheiten
DE2935906A1 (de) Mikrokomputer
DE2856680A1 (de) Befehlspuffer fuer ein datenverarbeitungssystem
DE2817073A1 (de) Adressenberechnungsanordnung
DE69323695T2 (de) Verfahren und Einrichtung zum Überprüfen von geordneter Datenverarbeitung
DE2707820C3 (de) Datenverarbeitungsanlage
DE69021332T2 (de) Datenformat für Informationspakete.
DE69422018T2 (de) Schnittstellenvorrichtung
DE2952163C2 (de) Datenverarbeitungsanlage mit einem ersten und einem zweiten Prozessor
DE1187403B (de) Verfahren und Einrichtung zur logischen Verknuepfung zweier Operanden
DE1187402B (de) Anordnung zum parallelen Addieren dreier binaerer Zahlen
DE1524127B2 (de) Mehrfachrechenanlage mit internen verbindungsleitungen zwischen den datenverarbeitungsgeraeten
DE69807738T2 (de) Verfahren und vorrichtung zur byteausrichtung
DE2557787A1 (de) Einrichtung und verfahren zum verarbeiten von maschinenbefehlen unterschiedlicher formate in einem mikroprogrammierten datenverarbeitungssystem
DE2831887C2 (de) Anordnung zum Übertragen von Daten zwischen einer zentralen Verarbeitungseinheit und mehreren peripheren Einheiten
DE68907935T2 (de) Verfahren und Anordnung zur Uebertragung einer Nachricht in einem Nachrichtenübertragungsnetz mit mehreren Masterstationen und mindestens einer Slavestation, insbesondere in einem Fahrzeug.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee