DE69636029T2 - Verfahren und Vorrichtung zur Datenübertragung - Google Patents

Verfahren und Vorrichtung zur Datenübertragung Download PDF

Info

Publication number
DE69636029T2
DE69636029T2 DE69636029T DE69636029T DE69636029T2 DE 69636029 T2 DE69636029 T2 DE 69636029T2 DE 69636029 T DE69636029 T DE 69636029T DE 69636029 T DE69636029 T DE 69636029T DE 69636029 T2 DE69636029 T2 DE 69636029T2
Authority
DE
Germany
Prior art keywords
data
data packet
packet
adapter
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 - Lifetime
Application number
DE69636029T
Other languages
English (en)
Other versions
DE69636029D1 (de
Inventor
Gary S. Rochester Delp
Philip L. Rochester Leichty
Albert A. Oronoco Slane
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Application granted granted Critical
Publication of DE69636029D1 publication Critical patent/DE69636029D1/de
Publication of DE69636029T2 publication Critical patent/DE69636029T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/128Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine for dedicated transfers to a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Description

  • DER ERFINDUNG ZUGRUNDE LIEGENDER ALLGEMEINER STAND DER TECHNIK
  • 1. Bereich der Technik:
  • Die vorliegende Erfindung betrifft im Allgemeinen ein Verfahren und eine Vorrichtung zur Übertragung von Daten und insbesondere ein verbessertes Verfahren und eine verbesserte Vorrichtung zum Empfang von Daten, die über ein Datenübertragungsnetzwerk an ein Datenverarbeitungssystem übertragen werden. Genauer gesagt, die vorliegende Erfindung betrifft ein verbessertes Verfahren und eine verbesserte Vorrichtung zum Empfang von Daten in einem Datenverarbeitungssystem, das eine paketbasierte Architektur verwendet, die die Latenzzeit verringert, indem sie vor dem Empfang eines vollständigen Datenpakets Paket-Kopfbereiche verarbeitet.
  • 2. Beschreibung der verwandten Technik:
  • Ein mit einem Rechnernetzwerk verbundenes Datenverarbeitungssystem enthält üblicherweise einen Eingabe-/Ausgabe-(E/A-)Adapter, um die Übertragung von Daten zwischen dem Datenverarbeitungssystem und dem Rechnernetzwerk zu unterstützen. Üblicherweise verwendet der E/A-Adapter entweder eine host- oder eine paketbasierte Architektur. In der hier verwendeten Weise bezieht sich der Begriff hostbasiert auf eine Architektur, bei der ein Datenpaket beim Empfang der Daten mittels direktem Speicherzugriff (DMA) an den Host- Speicher in dem Datenverarbeitungssystem übertragen wird. Da hostbasierte Adapter Daten an den Host-Speicher übertragen, wenn diese von dem Rechnernetzwerk empfangen werden, enthalten hostbasierte Adapter üblicherweise nur einen kleinen Datenpufferspeicher. Im Gegensatz dazu kennzeichnet eine paketbasierte Architektur eine E/A-Adaptervariante, die einen Adapterspeicher enthält, der ein oder mehrere Datenpakete speichern kann. Üblicherweise empfängt ein paketbasierter Adapter Datenpakete von einem Rechnernetzwerk und lädt sie in den Adapterspeicher, und anschließend überträgt er mittels DMA vollständige Datenpakete an den Host-Speicher.
  • Nun Bezug nehmend auf 7 ist eine Zeitachse dargestellt, die Ereignisse beim Empfang eines Datenpakets durch ein Datenverarbeitungssystem zeigt, das einen herkömmlichen paketbasierten E/A-Adapter verwendet. Wie gezeigt ist, benachrichtigt der E/A-Adapter im Anschluss an die Übertragung eines Datenpakets von einem Rechnernetzwerk in den Adapterspeicher (Balken 150) die Software, die in dem Host-Datenverarbeitungssystem ausgeführt wird, darüber, dass ein Datenpaket empfangen worden ist (Balken 152). Wie durch den Balken 154 gezeigt ist, bereitet der E/A-Adapter dann eine DMA-Übertragung des Paket-Kopfbereichs an den Host-Speicher vor und führt anschließend die DMA-Übertragung des Paket-Kopfbereichs durch, wie durch den Balken 156 gezeigt ist. Nach dem Empfang einer Benachrichtigung, dass die DMA-Übertragung des Paketkopfes abgeschlossen ist (Balken 158), prüft der E/A-Adapter den Kopfbereich des Datenpakets (Balken 160) und bereitet eine DMA-Übertragung des Datenpakets in den Benutzeradressraum im Host-Speicher vor (Balken 162). Daraufhin führt der E/A-Adapter eine DMA-Übertragung der Paketdaten in den Benutzeradressraum im Host-Speicher durch (Balken 164) und benachrichtigt die Software im Host- Datenverarbeitungssystem, dass die DMA-Übertragung abgeschlossen ist, wie durch den Balken 166 gezeigt ist. Schließlich zeigt der Balken 168, wie die Software des Datenverarbeitungssystems den Benutzer darüber informiert, dass das Datenpaket eingetroffen ist.
  • Wie aus 7 ersichtlich ist, stellt die Latenzzeit, die ein Benutzer zwischen dem Zeitpunkt, zu dem ein Datenpaket vom E/A-Adapter empfangen wird, und dem Zeitpunkt, zu dem der Benutzer über die Ankunft des Datenpakets unterrichtet wird, wahrnimmt, ein Problem bei der herkömmlichen paketbasierten Architektur dar. Aufgrund der chronologischen Reihenfolge der Ereignisse auf der den Datenempfang darstellenden Zeitachse nimmt der Benutzer das Intervall, in dem das Datenpaket vom Rechnernetzwerk an den E/A-Adapter übertragen wird, und den Zeitraum, der erforderlich ist, um die DMA-Übertragung des Pakets aus dem Adapterspeicher in den Benutzeradressraum im Host-Speicher durchzuführen, sowie jede eventuelle zusätzliche Verarbeitung im Protokollstapel wie zum Beispiel die Kontrolle der Prüfsumme oder eine andere Fehlererkennung wahr. Aufgrund der vom Benutzer wahrgenommenen Latenzzeit bei paketbasierten Architekturen verwenden viele Datenverarbeitungssysteme eine hostbasierte Adapterarchitektur.
  • Nun Bezug nehmend auf 8 ist eine Zeitachse gezeigt, die Ereignisse beim Empfang eines Datenpakets durch ein Datenverarbeitungssystem zeigt, das einen herkömmlichen hostbasierten Adapter verwendet. Der Balken 170 zeigt den Empfang eines Datenpakets durch den hostbasierten E/A-Adapter. Wie durch den Balken 172 gezeigt ist, führt der hostbasierte E/A-Adapter eine gleichzeitige DMA-Übertragung des Datenpakets in den Systemadressraum im Host-Speicher des Datenverarbeitungssystems durch. Als Nächstes benachrichtigt der E/A-Adapter die System-Software darüber, dass ein Paket vom Rechnernetzwerk empfangen worden ist (Balken 174). Wie durch die Balken 176 und 178 gezeigt ist, fragt der E/A-Adapter dann den Paket-Kopfbereich ab, um eine Zieladresse im Benutzeradressraum des Host-Speichers in Erfahrung zu bringen, und kopiert das Datenpaket aus dem Systemadressraum an die Zieladresse im Benutzeradressraum des Host-Speichers. Wie durch den Balken 180 gezeigt ist, benachrichtigt der E/A-Adapter schließlich den Benutzer darüber, dass ein Datenpaket vom Rechnernetzwerk empfangen worden ist.
  • Obgleich eine hostbasierte Adapterarchitektur die vom Benutzer wahrgenommene Latenzzeit verringert, da sich die DMA-Übertragung des Datenpakets an den Systemadressraum im Host-Speicher und der Empfang des Datenpakets zeitlich überschneiden, nimmt der Benutzer die Latenzzeit beim Kopieren des Datenpakets aus dem Systemadressraum in den Benutzeradressraum im Host-Speicher nach wie vor wahr. Da das Datenpaket nach seinem Empfang vom Rechnernetzwerk ohne jede Verarbeitung an den Host-Speicher weitergereicht wird, kann der E/A-Adapter außerdem keine unmittelbaren DMA-Dienste an dem Datenpaket vornehmen, da ein vollständiges Datenpaket nicht zur Verfügung steht. Folglich müssen DMA-Dienste wie die Kontrolle der Prüfsumme oder Datenverschlüsselung durchgeführt werden, nachdem die Daten in den Benutzeradressraum kopiert worden sind, wodurch sich die vom Benutzer wahrgenommene Latenzzeit weiter erhöht.
  • Es ist eine Aufgabe der vorliegenden Erfindung, ein Verfahren bereitzustellen, das die vorstehend genannten Nachteile überwindet.
  • Gemäß der vorliegenden Erfindung stellen wir ein Verfahren bereit, um Daten von einem Datenübertragungsnetzwerk in einem Datenverarbeitungssystem zu empfangen, wobei das Datenverarbeitungssystem über einen Datenübertragungsadapter verfügt, der mit dem Datenübertragungsnetzwerk und einem Host-Speicher verbunden ist, wobei der Datenübertragungsadapter einen Adapterspeicher hat, wobei das Datenübertragungsnetzwerk Daten in Paketen, die einen Paket-Kopfbereich und Paketdaten enthalten, an das Datenverarbeitungssystem sendet, wobei das Verfahren Folgendes umfasst: Empfangen eines Teils eines Datenpakets von dem Datenübertragungsnetzwerk an dem Adapterspeicher in dem Datenübertragungsadapter, wobei der Teil des Datenpakets mindestens einen Paket-Kopfbereich enthält, wobei der Paket-Kopfbereich eine Länge des Datenpakets und eine Zieladresse in dem Host-Speicher angibt; als Reaktion auf den Empfang des Teils des Datenpakets Vorbereiten einer Übertragung des Datenpakets aus dem Adapterspeicher an den Host-Speicher, bevor ein letzter Teil des Datenpakets an dem Adapterspeicher empfangen wird, wobei die Vorbereitung die Feststellung von Übertragungsparametern entsprechend Informationen, die in dem Paket-Kopfbereich enthalten sind, einschließt; Übertragen des Datenpakets aus dem Adapterspeicher an den Host-Speicher, wobei das Datenpaket an Adressen in dem Host-Speicher gespeichert wird und dabei bei der Zieladresse begonnen wird; gleichzeitig mit dem Schritt der Übertragung des Datenpakets Feststellen, ob das Datenpaket einen Fehler enthält; als Reaktion auf die Feststellung eines Fehlers in dem Datenpaket Abbrechen der Übertragung des Datenpakets aus dem Adapterspeicher an den Host-Speicher; und als Reaktion auf das Nichterkennen eines Fehlers in dem Datenpaket vor dem Abschluss der Übertragung des Pakets aus dem Adapterspeicher an den Host-Speicher Bereitstellen einer Benachrichtigung, dass das Datenpaket von dem Datenübertragungsnetzwerk empfangen worden ist.
  • Gemäß der vorliegenden Erfindung stellen wir überdies eine Vorrichtung in einem Datenverarbeitungssystem bereit, um Daten von einem Datenübertragungsnetzwerk zu empfangen, wobei das Datenverarbeitungssystem über einen Host-Speicher verfügt, wobei das Datenübertragungsnetzwerk Daten in Paketen, die einen Paket-Kopfbereich und Paketdaten enthalten, an das Datenverarbeitungssystem sendet, wobei die Vorrichtung Folgendes umfasst: einen Datenübertragungsadapter, der mit dem Datenübertragungsnetzwerk verbunden ist, wobei der Datenübertragungsadapter über einen Adapterspeicher verfügt; ein Mittel, um einen Teil eines Datenpakets von dem Datenübertragungsnetzwerk an dem Adapterspeicher in dem Datenübertragungsadapter zu empfangen, wobei der Teil des Datenpakets mindestens einen Paket-Kopfbereich enthält, wobei der Paket-Kopfbereich eine Länge des Datenpakets und eine Zieladresse in dem Host-Speicher angibt; ein Mittel, das auf den Empfang des Teils des Datenpakets anspricht, um eine Übertragung des Datenpakets aus dem Adapterspeicher an den Host-Speicher vorzubereiten, bevor ein letzter Teil des Datenpakets an dem Adapterspeicher empfangen wird, wobei die Vorbereitung die Feststellung von Übertragungsparametern entsprechend Informationen, die in dem Paket-Kopfbereich enthalten sind, einschließt; ein Mittel, um das Datenpaket aus dem Adapterspeicher an den Host-Speicher zu übertragen, wobei das Datenpaket an Adressen in dem Host-Speicher gespeichert und dabei bei der Zieladresse begonnen wird; ein Mittel, um festzustellen, ob das Datenpaket einen Fehler enthält, wobei das Mittel zur Feststellung Fehler während der Übertragung des Datenpakets aus dem Adapterspeicher an den Host-Speicher erkennt; ein Mittel, um die Übertragung des Datenpakets aus dem Adapterspeicher an den Host-Speicher als Reaktion auf die Feststellung eines Fehlers in dem Datenpaket abzubrechen; und ein Mittel, um eine Benachrichtigung, dass das Datenpaket von dem Datenübertragungsnetzwerk empfangen worden ist, als Reaktion darauf bereitzustellen, dass vor dem Abschluss der Übertragung des Pakets aus dem Adapterspeicher an den Host-Speicher kein Fehler in dem Datenpaket festgestellt worden ist.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die Erfindung sowie eine bevorzugte Verwendungsart, weitere Aufgaben und Vorteile der Erfindung lassen sich am besten durch Bezugnahme auf die folgende ausführliche Beschreibung einer der Veranschaulichung dienenden Ausführungsform verstehen, wenn diese in Verbindung mit den beigefügten Zeichnungen gelesen wird, in denen:
  • 1 eine bevorzugte Ausführungsform eines Datenübertragungsnetzwerks veranschaulicht, mit dem das Verfahren und das System der vorliegenden Erfindung vorteilhaft genutzt werden können;
  • 2 ein Blockschaltbild einer bevorzugten Ausführungsform des in 1 gezeigten Server darstellt;
  • 3 ein Flussdiagramm ist, das ein Verfahren zum Empfang eines Datenpakets von einem Datenübertragungsnetzwerk gemäß einer ersten bevorzugten Ausführungsform der vorliegenden Erfindung veranschaulicht;
  • 4 eine Zeitachse mit Ereignissen beim Empfang eines Datenpakets gemäß dem in 3 gezeigten Verfahren darstellt;
  • 5 ein Flussdiagramm ist, das ein Verfahren zum Empfang eines Datenpakets von einem Datenübertragungsnetzwerk gemäß einer zweiten bevorzugten Ausführungsform dieser vorliegenden Erfindung zeigt;
  • 6 eine Zeitachse mit Ereignissen beim Empfang eines Datenpakets gemäß dem in 5 veranschaulichten Verfahren darstellt;
  • 7 eine Zeitachse ist, die Ereignisse beim Empfang eines Datenpakets durch einen herkömmlichen paketbasierten E/A-Adapter in einem Datenverarbeitungssystem zeigt; und
  • 8 eine Zeitachse ist, die Ereignisse beim Empfang eines Datenpakets durch einen herkömmlichen hostbasierten E/A-Adapter in einem Datenverarbeitungssystem zeigt.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
  • Nun Bezug nehmend auf die Figuren und insbesondere mit Bezug auf 1 ist ein Datenverarbeitungssystem 10 bildhaft dargestellt, das zur Umsetzung des Verfahrens der vorliegenden Erfindung verwendet werden kann. In der dargestellten Ausführungsform enthält das Datenverarbeitungssystem 10 einen Server 12 und einen oder mehrere Clients 14. Jeder Client 14 umfasst einen Personal Computer 16, einen Bildschirm 18, eine Tastatur 20 und eine Maus 22. Wie dem Fachmann bekannt ist, kann ein Benutzer mit Hilfe der Tastatur 20, der Maus 22 oder einer anderen geeigneten Eingabeeinheit Daten in den Personal Computer 16 eingeben. Mittels des Personal Computers 16 kann der Benutzer dann Daten lokal verarbeiten oder die Daten über das lokale Netz (LAN) 13 unter Verwendung von herkömmlichen Vernetzungsverfahren vom Personal Computer 16 an einen anderen Client 14 senden. Ebenso kann ein Benutzer über die Datenübertragungsverbindung 24 Aufgaben an den Server 12 senden. Für einen Benutzer ist es von Vorteil, Aufgaben an den Server 12 zur Ausführung zu senden, da der Server 12 im Vergleich zu einem der Clients 14 Aufgaben in verhältnismäßig kurzer Zeit ausführen kann.
  • Wie der Fachmann versteht, verwenden die Datenübertragungsleitung 24 und das LAN 13 ein ausführungsspezifisches Datenübertragungsprotokoll, das in einer bevorzugten Ausführungsform der vorliegenden Erfindung das Protokoll für den asynchronen Übertragungsmodus (ATM) umfasst. Gemäß dem ATM-Protokoll wird jedes Datenpaket, das über die Datenübertragungsleitung 24 oder das LAN 13 übertragen wird, in mehrere Zellen fester Länge unterteilt. In manchen Ausführungen des ATM-Protokolls enthält jede Zelle zum Beispiel 48 Byte Zelldaten und einen zugehörigen 5-Byte-Zellenkopfbereich, der den Inhalt der Zelle beschreibt. Da jedes Datenpaket in mehrere einzelne Zellen unterteilt wird, können mehrere Pakete gleichzeitig über ein Netzwerk gesendet werden, indem Zellen von jedem der vielen Pakete ineinander verschachtelt werden. Obgleich der Netzwerkdurchsatz, den das ATM-Protokoll bietet, hoch ist, kann folglich ein bestimmtes Datenpaket an einem fernen Knoten in dem Netzwerk verhältnismäßig viel Zeit brauchen, bis es ankommt, da Zellen von anderen Paketen zwischen die Zellen des interessierenden Pakets geschoben werden. Wie nachstehend ausführlicher beschrieben wird, hält die vorliegende Erfindung die vom Benutzer wahrgenommene Latenzzeit zwischen der Ankunft des Paket-Kopfbereichs und der Verfügbarkeit der Paketdaten so gering wie möglich, indem sie den Paket-Kopfbereich bereits verarbeitet, während die Paketdaten noch empfangen werden.
  • Nun Bezug nehmend auf 2 ist ein Blockschaltbild des Server 12 gezeigt, der in einer bevorzugten Ausführungsform der vorliegenden Erfindung aus einem Rechner mit mehreren Prozessoren wie zum Beispiel dem IBM RISC System/6000 besteht. Wie dargestellt ist, enthält der Server 12 eine oder mehrere CPUs 30, die vorzugsweise unter einem Multithread-Betriebssystem wie zum Beispiel AIX (Advanced Interactive Executive), der IBM-Version von UNIX, laufen. Gemäß der vorliegenden Erfindung führen die CPUs 30 auch eine Datenübertragungssoftware aus, welche die Übertragung von Daten zwischen dem Server 12 und der Datenübertragungsleitung 24 steuert. Unter AIX führt jede der CPUs 30 gleichzeitig einen Thread (d.h. einen zeitlich planbaren Befehlsstrom) eines Betriebssystems oder eines Benutzer-(Datenübertragungssoftware-)Prozesses aus.
  • Wie gezeigt ist, hat jede der CPUs 30 einen integrierten Level-one-(L1-)Cachespeicher 32 und einen zugehörigen Level-two-(L2-)Cachespeicher 34. Der Fachmann versteht, dass die L1-Cachespeicher 32 und der L2-Cachespeicher 34 verhältnismäßig kleine, schnelle Teile des Speichers bilden, die Daten und Befehle speichern, auf die häufig zugegriffen wird. Wenn sich Daten oder Befehle, die von einer der CPUs 30 angefordert werden, nicht im L1-Cachespeicher 32 oder im L2-Cachespeicher 34 des Prozessors befinden, greift die CPU 30 über den Systembus 38 auf die angeforderten Daten oder Befehle aus dem Hauptspeicher 36 oder dem Sekundärspeicher 40 zu. Adressen, die sich im Adressraum des Server 12 befinden, werden von einem Speicherverwaltungsprogramm (nicht gezeigt) in die Speicherhierarchie abgebildet, die die L1-Cachespeicher 32, den L2-Cachespeicher 34 und den Hauptspeicher 36 umfasst. Wie bei vielen Rechnernetzwerken, die von einer Client/Server-Topologie Gebrauch machen, üblich, wird der Adressraum des Server 12 zwischen dem Adressraum eines globalen Hosts (Betriebssystems) und einem Benutzeradressraum aufgeteilt. Jedem Benutzerprozess, beispielsweise der Datenübertragungssoftware, wird ein bestimmter Teil des Benutzeradressraums zugeteilt.
  • Gemäß der vorliegenden Erfindung enthält der Server 12 auch einen paketbasierten Eingabe-/Ausgabe-(E/A-)Adapter 42. Der E/A-Adapter 42 wird mit der Datenübertragungsleitung 24 verbunden, um die Übertragung von Daten zwischen dem Server 12 und den Clients 14 zu vereinfachen. Als paketbasierter Adapter enthält der E/A-Adapter 42 den Adapterspeicher 44, der ein oder mehrere Datenpakete speichern kann, die der E/A-Adapter 42 von der Datenübertragungsleitung 24 empfängt. Darüber hinaus enthält der E/A-Adapter 42 eine integrierte DMA-Steuereinheit 46, die zwischen dem E/A-Adapter 42 und anderen "intelligenten" Einheiten (nicht gezeigt), die mit dem Systembus 38 verbunden sind und DMA-Übertragungen durchführen, Buszuteilungsentscheidungen trifft. Der Fachmann versteht, dass die Systemeinheit 12 weitere Einheiten enthält, die für das Verständnis der vorliegenden Erfindung aber nicht notwendig sind und somit der Einfachheit halber in 2 weggelassen wurden.
  • Nun Bezug nehmend auf die 3 und 4 sind ein Flussdiagramm und eine Zeitachse des Verfahrens zum Empfang von Daten von einem Datenübertragungsnetzwerk gemäß einer ersten bevorzugten Ausführungsform der vorliegenden Erfindung gezeigt. Zuerst Bezug nehmend auf 3 beginnt der Prozess am Block 60, wenn der E/A-Adapter 42 mit dem Empfang eines Datenpakets von der Datenübertragungsleitung 24 beginnt. Wenn das Datenpaket empfangen wird, wird es vom E/A-Adapter 42 im Adapterspeicher 44 gespeichert. Der Empfang des Datenpakets ist durch den Balken 84 in 4 dargestellt. Der Prozess schaltet dann vom Block 60 zum Block 62, der zeigt, dass der E/A-Adapter 42 eine DMA-Übertragung des Paket-Kopfbereichs an den Host-Adressraum im Server 12 vornimmt, sobald der Empfang des Paket-Kopfbereichs als gesichert gilt. Der Schwellwert für die Datenmenge, die notwendig ist, damit die DMA-Übertragung des Kopfbereichs gestartet wird, kann verbindungsweise festgelegt werden, so dass die Datenübertragungssoftware festlegen kann, wie viele Daten empfangen werden müssen, bevor die Ankunft des Kopfbereichs als gesichert gilt. Wie die Darstellung mit einer gestrichelten Linie zeigt, wird der Paket-Kopfbereich nur in den Fällen an den Host-Adressraum im Server 12 übertragen, in denen die Datenübertragungssoftware nicht direkt auf den Adapterspeicher 44 zugreifen kann. Andernfalls wird der Block 62 nicht ausgeführt, und der Prozess schaltet zum Block 64.
  • Der Block 64 zeigt, dass der E/A-Adapter 42 die Datenübertragungssoftware darüber benachrichtigt, dass der Paket-Kopfbereich empfangen worden ist. Die Benachrichtigung über den Empfang des Paket-Kopfbereichs ist durch den Balken 86 in 4 gezeigt. Als Nächstes fragt die Datenübertragungssoftware am Block 66 den Paket-Kopfbereich ab, um eine DMA-Übertragung des Pakets aus dem Adapterspeicher 44 an den Benutzeradressraum im Server 12 vorzubereiten. Die Datenübertragungssoftware kann die DMA-Übertragung vor der Ankunft des vollständigen Pakets vorbereiten, da der Paket-Kopfbereich die für die Durchführung der DMA-Übertragung notwendigen Informationen enthält, wie zum Beispiel eine Protokollkennung, eine Zieladresse sowie die Längenangabe des Pakets. Wie durch den Balken 88 von 4 gezeigt ist, verringert die vorliegende Erfindung folglich die Latenzzeit, indem sie den Paket-Kopfbereich verarbeitet, bevor der Empfang des Pakets abgeschlossen ist. Im Gegensatz dazu führen herkömmliche Verfahren zum Empfang von Daten von einem Datenübertragungsnetzwerk die Verarbeitung des Paket-Kopfbereichs erst aus, nachdem das vollständige Paket empfangen worden ist, wie in 7 gezeigt ist.
  • Der Prozess schaltet dann vom Block 66 zum Block 68, der zeigt, dass festgestellt wird, ob der Empfang des Pakets abgeschlossen ist. Wenn das Paket noch nicht vollständig empfangen wurde, wartet der Prozess am Block 68, bis der Empfang des Pakets abgeschlossen ist. Sobald der Empfang des Pakets abgeschlossen ist, schaltet der Prozess zum Block 70, der zeigt, dass der E/A-Adapter 42 eine DMA-Übertragung des Pakets in eine Warteschlange stellt oder die DMA-Übertragung des Pakets aus dem Adapterspeicher 44 an die Zieladresse im Benutzeradressraum startet. Die DMA-Übertragung des Pakets aus dem Adapterspeicher 44 an den Benutzeradressraum ist durch den Balken 90 in 4 dargestellt. Die DMA-Übertragung wird zum Beispiel in eine Warteschlange gestellt, wenn ein zuvor empfangenes Paket noch nicht an den Benutzeradressraum übertragen worden ist. Während das Paket aus dem Adapterspeicher 44 an den Benutzeradressraum übertragen wird, wird am Block 72 eine Fehlererkennung durchgeführt. Die Daten in dem Paket können beispielsweise einer Prüfsummenkontrolle unterzogen werden, um festzustellen, ob die Daten während der Übertragung verfälscht wurden. Wenn am Block 72 ein Fehler festgestellt wird, schaltet der Prozess zum Block 74, der zeigt, dass der E/A-Adapter 44 die DMA-Übertragung abbricht. Der Prozess schaltet dann zum Block 76, der zeigt, dass der E/A-Adapter 42 die Datenübertragungssoftware darüber benachrichtigt, dass ein Fehler festgestellt worden ist. Der Prozess endet daraufhin am Block 82.
  • Kehren wir nochmals zum Block 72 zurück. Wenn während der DMA-Übertragung kein Fehler festgestellt wird, schaltet der Prozess zum Block 78, der die Feststellung, ob die DMA-Übertragung abgeschlossen ist, zeigt. Wenn nicht, schaltet der Prozess wieder zum Block 72. wenn die DMA-Übertragung jedoch abgeschlossen ist, schaltet der Prozess zum Block 80, der zeigt, dass der E/A-Adapter 42 die Datenübertragungssoftware darüber benachrichtigt, dass die DMA-Übertragung abgeschlossen ist (Balken 92 von 4). Die Software kann dann den Benutzer darüber informieren, dass Daten empfangen worden sind. Anschließend endet der Prozess am Block 82.
  • Ein Vergleich mit 7 zeigt, dass das Verfahren zum Empfang von Daten von einem Datenübertragungsnetzwerk, das in 3 gezeigt ist, gegenüber dem herkömmlichen Verfahren eine deutliche Leistungssteigerung erzielt. Indem die DMA-Übertragung des Paket-Kopfbereichs durchgeführt und die DMA-Übertragung des Pakets während des Empfangs des Pakets vorbereitet wird, verringert die vorliegende Erfindung die Latenzzeit von Paketen. Eine noch größere Leistungssteigerung lässt sich jedoch erzielen, wenn man den so genannten unmittelbaren DMA ("immediate DMA") nutzt, der in der zweiten bevorzugten Ausführungsform der vorliegenden Erfindung, die in 5 gezeigt ist, zur Anwendung kommt.
  • Nun Bezug nehmend auf 5 ist ein Flussdiagramm des Verfahrens zum Empfang von Daten von einem Datenübertragungsnetzwerk gemäß einer zweiten bevorzugten Ausführungsform der vorliegenden Erfindung gezeigt. Wie aus der folgenden Beschreibung ersichtlich ist, ist der in 5 gezeigte Prozess dem in 3 gezeigten Prozess sehr ähnlich, außer dass das in 5 gezeigte Verfahren ein Datenpaket bereits an den Benutzeradressraum überträgt, während das Paket noch empfangen wird, statt auf den vollständigen Eingang des Pakets zu warten. Wenn der Prozess am Block 100 beginnt, wartet der E/A-Adapter 42 auf asynchrone Daten von der Datenübertragungsleitung 24. Wenn von der Datenübertragungsleitung 24 ein Paket empfangen wird, wie in 6 durch den Balken 126 dargestellt ist, schaltet der Prozess vom Block 100 zum Block 102, der zeigt, dass der E/A-Adapter 42 den Paket-Kopfbereich aus dem Adapterspeicher 44 an den Hostadressraum überträgt, sobald der E/A-Adapter 42 genügend Daten empfängt, um sicherzustellen, dass der Paket-Kopfbereich in den empfangenen Daten enthalten ist. Wie in der ersten bevorzugten Ausführungsform ist der Block 102 nur erforderlich, wenn die auf den CPUs 30 ausgeführte Datenübertragungssoftware nicht direkt auf den Adapterspeicher 44 zugreifen kann. Der Prozess schaltet dann zum Block 104, der zeigt, dass die Datenübertragungssoftware darüber benachrichtigt wird, dass der Paket-Kopfbereich empfangen worden ist. Als Nächstes fragt die Datenübertragungssoftware den Paket-Kopfbereich am Block 106 ab, um eine DMA-Übertragung des Pakets an den Benutzeradressraum vorzubereiten. Gemäß der veranschaulichten Ausführungsform der vorliegenden Erfindung bereitet die Datenübertragungssoftware die DMA-Übertragung so vor, dass jede vorher festgelegte Teilmenge des Pakets bei deren Empfang durch den E/A-Adapter 42 an den Benutzeradressraum übertragen wird. Der Fachmann erkennt, dass die Datenmenge in einer Teilmenge eines Pakets von der Datenübertragungssoftware verbindungsweise festgelegt werden kann. Die Vorbereitung der DMA-Übertragung ist in 6 durch den Balken 130 grafisch dargestellt.
  • Anschließend schaltet der Prozess zum Block 108, der zeigt, dass festgestellt wird, ob der E/A-Adapter 42 eine Teilmenge des Pakets empfangen hat. Wenn nicht, schaltet der Prozess wieder zum Block 100, bis eine Teilmenge des Pakets empfangen wird. Anschließend schaltet der Prozess zum Block 110, der zeigt, dass der E/A-Adapter 42 die Teilmenge des Pakets an den Benutzeradressraum überträgt. Wenn während der DMA-Übertragung am Block 112 ein Fehler festgestellt wird, schaltet der Prozess zu den Blöcken 114 und 116, die zeigen, dass die DMA-Übertragung abgebrochen und die Datenübertragungssoftware darüber benachrichtigt wird, dass ein Fehler festgestellt worden ist. Der Prozess endet daraufhin am Block 124.
  • Kehren wir nochmals zum Block 112 zurück. Wenn während der DMA-Übertragung der Teilmenge des Pakets kein Fehler festgestellt wird, schaltet der Prozess zum Block 118, der zeigt, dass festgestellt wird, ob die DMA-Übertragung der Teilmenge des Pakets abgeschlossen ist. Wenn nicht, schaltet der Prozess wieder zum Block 112. Wenn die DMA-Übertragung der Teilmenge des Pakets jedoch abgeschlossen ist, schaltet der Prozess vom Block 118 zum Block 120, der zeigt, dass festgestellt wird, ob das ganze Paket aus dem Adapterspeicher 44 an den Benutzeradressraum übertragen worden ist. Wenn die DMA-Übertragung des Pakets noch nicht abgeschlossen ist, schaltet der Prozess wieder zum Block 108. Wenn die DMA-Übertragung des Pakets jedoch abgeschlossen ist, schaltet der Prozess zum Block 122. Nochmals Bezug nehmend auf 6 ist die DMA-Übertragung des Pakets aus dem Adapterspeicher 44 an den Benutzeradressraum durch den Balken 132 grafisch dargestellt. Kehren wir nun nochmals zum Block 122 von 5 zurück, in dem der E/A-Adapter 42 die Datenübertragungssoftware darüber benachrichtigt, dass die DMA-Übertragung des Pakets aus dem Adapterspeicher 44 an den Benutzeradressraum abgeschlossen ist. Die Benachrichtigung über die abgeschlossene DMA-Übertragung ist in 6 durch den Balken 134 gezeigt. Der Prozess endet daraufhin am Block 124.
  • Wie nach eingehender Betrachtung von 6 im Vergleich zu den 7 und 8 erkennbar ist, ist die zweite bevorzugte Ausführungsform der vorliegenden Erfindung gegenüber den beiden herkömmlichen Architekturen, der hostbasierten und der paketbasierten Architektur, leistungsfähiger, da sich die Vorbereitung der DMA-Übertragung und die DMA-Übertragung selbst zeitlich mit dem Empfang des Pakets durch den E/A-Adapter 42 überschneiden. Darüber hinaus hat sich die vorliegende Erfindung mit den Nachteilen der hostbasierten Architektur befasst, da unmittelbare DMA-Dienste wie zum Beispiel die Fehlererkennung zur Verfügung stehen und auf die zusätzliche Kopieroperation aus dem Hostadressraum in den Benutzeradressraum verzichtet wurde. Obgleich die zweite bevorzugte Ausführungsform der vorliegenden Erfindung die Latenzzeit beim Datenempfang stärker verringert als die erste bevorzugte Ausführungsform, erkennt der Fachmann, dass die Entscheidung für die Realisierung der einen oder der anderen Ausführungsform eine Gestaltungsfrage ist, bei der die verbesserte Leistungsfähigkeit, die die zweite bevorzugte Ausführungsform bietet, gegen die zusätzliche Komplexität, die sie mit sich bringt, abzuwägen ist.
  • Wie beschrieben wurde, stellt die vorliegende Erfindung ein verbessertes Verfahren und ein verbessertes System zum Empfang von Daten von einem Rechnernetzwerk bereit. Die vorliegende Erfindung verringert die von einem Benutzer wahrgenommene Latenzzeit, da Paket-Kopfbereiche bereits verarbeitet und DMA- Übertragungen vorbereitet werden, bevor ein vollständiges Paket empfangen wird.

Claims (8)

  1. Verfahren, um Daten von einem Datenübertragungsnetzwerk in einem Datenverarbeitungssystem zu empfangen, wobei das Datenverarbeitungssystem über einen Datenübertragungsadapter verfügt, der mit dem Datenübertragungsnetzwerk und einem Host-Speicher verbunden ist, wobei der Datenübertragungsadapter einen Adapterspeicher hat, wobei das Datenübertragungsnetzwerk Daten in Paketen, die einen Paket-Kopfbereich und Paketdaten enthalten, an das Datenverarbeitungssystem sendet, wobei das Verfahren Folgendes umfasst: Empfangen eines Teils eines Datenpakets von dem Datenübertragungsnetzwerk an dem Adapterspeicher in dem Datenübertragungsadapter, wobei der Teil des Datenpakets mindestens einen Paket-Kopfbereich enthält, wobei der Paket-Kopfbereich eine Länge des Datenpakets und eine Zieladresse in dem Host-Speicher angibt; als Reaktion auf den Empfang des Teils des Datenpakets Vorbereiten einer Übertragung des Datenpakets aus dem Adapterspeicher an den Host-Speicher, bevor ein letzter Teil des Datenpakets an dem Adapterspeicher empfangen wird, wobei die Vorbereitung die Feststellung von Übertragungsparametern entsprechend Informationen, die in dem Paket-Kopfbereich enthalten sind, einschließt; Übertragen des Datenpakets aus dem Adapterspeicher an den Host-Speicher, wobei das Datenpaket an Adressen in dem Host-Speicher gespeichert wird und dabei bei der Zieladresse begonnen wird; gleichzeitig mit dem Schritt der Übertragung des Datenpakets Feststellen, ob das Datenpaket einen Fehler enthält; als Reaktion auf die Feststellung eines Fehlers in dem Datenpaket Abbrechen der Übertragung des Datenpakets aus dem Adapterspeicher an den Host-Speicher; und als Reaktion auf das Nichterkennen eines Fehlers in dem Datenpaket vor dem Abschluss der Übertragung des Pakets aus dem Adapterspeicher an den Host-Speicher Bereitstellen einer Benachrichtigung, dass das Datenpaket von dem Datenübertragungsnetzwerk empfangen worden ist.
  2. Verfahren zum Empfang von Daten von einem Datenübertragungsnetzwerk nach Anspruch 1, wobei der Schritt der Übertragung des Datenpakets an den Host-Speicher Folgendes umfasst: als Reaktion auf den Empfang einer jeden vorher festgelegten Teilmenge des Datenpakets Übertragen einer jeden vorher festgelegten Teilmenge des Datenpakets an den Host-Speicher.
  3. Verfahren zum Empfang von Daten von einem Datenübertragungsnetzwerk nach einem der vorhergehenden Ansprüche, wobei der Schritt der Übertragung des Datenpakets an den Host-Speicher als Reaktion auf den Empfang eines letzten Teils des Datenpakets durch den Adapterspeicher durchgeführt wird.
  4. Verfahren zum Empfang von Daten von einem Datenübertragungsnetzwerk nach Anspruch 3, wobei das Verfahren des Weiteren Folgendes umfasst: als Reaktion auf den Empfang des Teils des Datenpakets, der den Kopfbereich enthält, Übertragen des Kopfbereichs aus dem Adapterspeicher an den Host-Speicher, bevor der letzte Teil des Datenpakets empfangen wird.
  5. Vorrichtung in einem Datenverarbeitungssystem, um Daten von einem Datenübertragungsnetzwerk zu empfangen, wobei das Datenverarbeitungssystem über einen Host-Speicher verfügt, wobei das Datenübertragungsnetzwerk Daten in Paketen, die einen Paket-Kopfbereich und Paketdaten enthalten, an das Datenverarbeitungssystem sendet, wobei die Vorrichtung Folgendes umfasst: einen Datenübertragungsadapter, der mit dem Datenübertragungsnetzwerk verbunden ist, wobei der Datenübertragungsadapter über einen Adapterspeicher verfügt; ein Mittel, um einen Teil eines Datenpakets von dem Datenübertragungsnetzwerk an dem Adapterspeicher in dem Datenübertragungsadapter zu empfangen, wobei der Teil des Datenpakets mindestens einen Paket-Kopfbereich enthält, wobei der Paket-Kopfbereich eine Länge des Datenpakets und eine Zieladresse in dem Host-Speicher angibt; ein Mittel, das auf den Empfang des Teils des Datenpakets anspricht, um eine Übertragung des Datenpakets aus dem Adapterspeicher an den Host-Speicher vorzubereiten, bevor ein letzter Teil des Datenpakets an dem Adapterspeicher empfangen wird, wobei die Vorbereitung die Feststellung von Übertragungsparametern entsprechend Informationen, die in dem Paket-Kopfbereich enthalten sind, einschließt; ein Mittel, um das Datenpaket aus dem Adapterspeicher an den Host-Speicher zu übertragen, wobei das Datenpaket an Adressen in dem Host-Speicher gespeichert und dabei bei der Zieladresse begonnen wird; ein Mittel, um festzustellen, ob das Datenpaket einen Fehler enthält, wobei das Mittel zur Feststellung Fehler während der Übertragung des Datenpakets aus dem Adapterspeicher an den Host-Speicher erkennt; ein Mittel, um die Übertragung des Datenpakets aus dem Adapterspeicher an den Host-Speicher als Reaktion auf die Feststellung eines Fehlers in dem Datenpaket abzubrechen; und ein Mittel, um eine Benachrichtigung, dass das Datenpaket von dem Datenübertragungsnetzwerk empfangen worden ist, als Reaktion darauf bereitzustellen, dass vor dem Abschluss der Übertragung des Pakets aus dem Adapterspeicher an den Host-Speicher kein Fehler in dem Datenpaket festgestellt worden ist.
  6. Vorrichtung zum Empfang von Daten von einem Datenübertragungsnetzwerk nach Anspruch 5, wobei das Mittel zur Übertragung des Datenpakets an den Host-Speicher Folgendes umfasst: ein Mittel, das auf den Empfang einer jeden vorher festgelegten Teilmenge des Datenpakets anspricht, um jede vorher festgelegte Teilmenge des Datenpakets an den Host-Speicher zu übertragen.
  7. Vorrichtung zum Empfang von Daten von einem Datenübertragungsnetzwerk nach Anspruch 5 oder 6, wobei das Mittel zur Übertragung des Datenpakets an den Host-Speicher das Datenpaket als Reaktion auf den Empfang eines letzten Teils des Datenpakets durch den Adapterspeicher aus dem Adapterspeicher an den Host-Speicher überträgt.
  8. Vorrichtung zum Empfang von Daten von einem Datenübertragungsnetzwerk nach Anspruch 7, die des Weiteren Folgendes umfasst: ein Mittel, das auf den Empfang des Teils des Datenpakets anspricht, der den Kopfbereich enthält, um den Kopfbereich aus dem Adapterspeicher an den Host-Speicher zu übertragen, bevor der letzte Teil des Datenpakets empfangen wird.
DE69636029T 1995-07-10 1996-06-26 Verfahren und Vorrichtung zur Datenübertragung Expired - Lifetime DE69636029T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US500491 1995-07-10
US08/500,491 US5752078A (en) 1995-07-10 1995-07-10 System for minimizing latency data reception and handling data packet error if detected while transferring data packet from adapter memory to host memory

Publications (2)

Publication Number Publication Date
DE69636029D1 DE69636029D1 (de) 2006-05-24
DE69636029T2 true DE69636029T2 (de) 2006-10-05

Family

ID=23989647

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69636029T Expired - Lifetime DE69636029T2 (de) 1995-07-10 1996-06-26 Verfahren und Vorrichtung zur Datenübertragung

Country Status (4)

Country Link
US (1) US5752078A (de)
EP (1) EP0753817B1 (de)
JP (1) JP3384686B2 (de)
DE (1) DE69636029T2 (de)

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6115767A (en) * 1996-03-04 2000-09-05 Matsushita Electric Industrial Co., Ltd. Apparatus and method of partially transferring data through bus and bus master control device
GB9606834D0 (en) * 1996-03-30 1996-06-05 Int Computers Ltd Inter-processor communication
JP3165050B2 (ja) * 1996-12-24 2001-05-14 九州日本電気通信システム株式会社 パケットエラー検出方式
JP3196681B2 (ja) * 1997-03-13 2001-08-06 ヤマハ株式会社 通信データ一時記憶装置
US6304911B1 (en) * 1997-06-25 2001-10-16 Advanced Micro Devices, Inc. Information packet reception indicator for reducing the utilization of a host system processor unit
US5918074A (en) * 1997-07-25 1999-06-29 Neonet Llc System architecture for and method of dual path data processing and management of packets and/or cells and the like
US6085253A (en) * 1997-08-01 2000-07-04 United Video Properties, Inc. System and method for transmitting and receiving data
US5905905A (en) * 1997-08-05 1999-05-18 Adaptec, Inc. System for copying IOBS from FIFO into I/O adapter, writing data completed IOB, and invalidating completed IOB in FIFO for reuse of FIFO
US8539112B2 (en) 1997-10-14 2013-09-17 Alacritech, Inc. TCP/IP offload device
US7174393B2 (en) * 2000-12-26 2007-02-06 Alacritech, Inc. TCP/IP offload network interface device
US7237036B2 (en) * 1997-10-14 2007-06-26 Alacritech, Inc. Fast-path apparatus for receiving data corresponding a TCP connection
US6427173B1 (en) 1997-10-14 2002-07-30 Alacritech, Inc. Intelligent network interfaced device and system for accelerated communication
US7042898B2 (en) 1997-10-14 2006-05-09 Alacritech, Inc. Reducing delays associated with inserting a checksum into a network message
US6757746B2 (en) * 1997-10-14 2004-06-29 Alacritech, Inc. Obtaining a destination address so that a network interface device can write network data without headers directly into host memory
US7076568B2 (en) * 1997-10-14 2006-07-11 Alacritech, Inc. Data communication apparatus for computer intelligent network interface card which transfers data between a network and a storage device according designated uniform datagram protocol socket
US8621101B1 (en) 2000-09-29 2013-12-31 Alacritech, Inc. Intelligent network storage interface device
US6658480B2 (en) 1997-10-14 2003-12-02 Alacritech, Inc. Intelligent network interface system and method for accelerated protocol processing
US6470415B1 (en) 1999-10-13 2002-10-22 Alacritech, Inc. Queue system involving SRAM head, SRAM tail and DRAM body
US7167927B2 (en) * 1997-10-14 2007-01-23 Alacritech, Inc. TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism
US6389479B1 (en) 1997-10-14 2002-05-14 Alacritech, Inc. Intelligent network interface device and system for accelerated communication
US7284070B2 (en) * 1997-10-14 2007-10-16 Alacritech, Inc. TCP offload network interface device
US7185266B2 (en) 2003-02-12 2007-02-27 Alacritech, Inc. Network interface device for error detection using partial CRCS of variable length message portions
US6687758B2 (en) 2001-03-07 2004-02-03 Alacritech, Inc. Port aggregation for network connections that are offloaded to network interface devices
US8782199B2 (en) 1997-10-14 2014-07-15 A-Tech Llc Parsing a packet header
US6434620B1 (en) 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US7089326B2 (en) * 1997-10-14 2006-08-08 Alacritech, Inc. Fast-path processing for receiving data on TCP connection offload devices
US6591302B2 (en) 1997-10-14 2003-07-08 Alacritech, Inc. Fast-path apparatus for receiving data corresponding to a TCP connection
US6226680B1 (en) * 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US7133940B2 (en) * 1997-10-14 2006-11-07 Alacritech, Inc. Network interface device employing a DMA command queue
US6427171B1 (en) 1997-10-14 2002-07-30 Alacritech, Inc. Protocol processing stack for use with intelligent network interface device
US6697868B2 (en) 2000-02-28 2004-02-24 Alacritech, Inc. Protocol processing stack for use with intelligent network interface device
US5948079A (en) * 1997-12-19 1999-09-07 Advanced Micro Devices, Inc. System for non-sequential transfer of data packet portions with respective portion descriptions from a computer network peripheral device to host memory
US6765901B1 (en) * 1998-06-11 2004-07-20 Nvidia Corporation TCP/IP/PPP modem
US7664883B2 (en) * 1998-08-28 2010-02-16 Alacritech, Inc. Network interface device that fast-path processes solicited session layer read commands
US6772215B1 (en) * 1999-04-09 2004-08-03 Telefonaktiebolaget Lm Ericsson (Publ) Method for minimizing feedback responses in ARQ protocols
US6457072B1 (en) * 1999-07-29 2002-09-24 Sony Corporation System and method for effectively performing physical direct memory access operations
US7159030B1 (en) * 1999-07-30 2007-01-02 Intel Corporation Associating a packet with a flow
US6961777B1 (en) * 1999-08-06 2005-11-01 Shrikumar Hariharasubrahmanian Systems and methods for predicting fields in a data packet
US6675200B1 (en) * 2000-05-10 2004-01-06 Cisco Technology, Inc. Protocol-independent support of remote DMA
US6678746B1 (en) 2000-08-01 2004-01-13 Hewlett-Packard Development Company, L.P. Processing network packets
US8019901B2 (en) * 2000-09-29 2011-09-13 Alacritech, Inc. Intelligent network storage interface system
US6720074B2 (en) * 2000-10-26 2004-04-13 Inframat Corporation Insulator coated magnetic nanoparticulate composites with reduced core loss and method of manufacture thereof
US7139848B1 (en) * 2000-12-08 2006-11-21 Xilinx, Inc. DMA protocol extension for packet-based transfer
US20030115350A1 (en) * 2001-12-14 2003-06-19 Silverback Systems, Inc. System and method for efficient handling of network data
US20030121835A1 (en) * 2001-12-31 2003-07-03 Peter Quartararo Apparatus for and method of sieving biocompatible adsorbent beaded polymers
US6985974B1 (en) 2002-04-08 2006-01-10 Marvell Semiconductor Israel Ltd. Memory interface controller for a network device
US7496689B2 (en) * 2002-04-22 2009-02-24 Alacritech, Inc. TCP/IP offload device
US7543087B2 (en) * 2002-04-22 2009-06-02 Alacritech, Inc. Freeing transmit memory on a network interface device prior to receiving an acknowledgement that transmit data has been received by a remote device
US7191241B2 (en) * 2002-09-27 2007-03-13 Alacritech, Inc. Fast-path apparatus for receiving data corresponding to a TCP connection
US7337241B2 (en) * 2002-09-27 2008-02-26 Alacritech, Inc. Fast-path apparatus for receiving data corresponding to a TCP connection
US7843968B2 (en) 2002-09-30 2010-11-30 Sanyo Electric Co., Ltd. Communication apparatus and applications thereof
US20040088262A1 (en) * 2002-11-06 2004-05-06 Alacritech, Inc. Enabling an enhanced function of an electronic device
US7536674B2 (en) * 2003-08-13 2009-05-19 Intel Corporation Method and system for configuring network processing software to exploit packet flow data locality
US6996070B2 (en) * 2003-12-05 2006-02-07 Alacritech, Inc. TCP/IP offload device with reduced sequential processing
US8248939B1 (en) 2004-10-08 2012-08-21 Alacritech, Inc. Transferring control of TCP connections between hierarchy of processing mechanisms
US7903687B2 (en) 2005-04-01 2011-03-08 International Business Machines Corporation Method for scheduling, writing, and reading data inside the partitioned buffer of a switch, router or packet processing device
US7706409B2 (en) 2005-04-01 2010-04-27 International Business Machines Corporation System and method for parsing, filtering, and computing the checksum in a host Ethernet adapter (HEA)
US7586936B2 (en) 2005-04-01 2009-09-08 International Business Machines Corporation Host Ethernet adapter for networking offload in server environment
US7492771B2 (en) * 2005-04-01 2009-02-17 International Business Machines Corporation Method for performing a packet header lookup
US7881332B2 (en) 2005-04-01 2011-02-01 International Business Machines Corporation Configurable ports for a host ethernet adapter
US7577151B2 (en) * 2005-04-01 2009-08-18 International Business Machines Corporation Method and apparatus for providing a network connection table
US7508771B2 (en) 2005-04-01 2009-03-24 International Business Machines Corporation Method for reducing latency in a host ethernet adapter (HEA)
US7606166B2 (en) 2005-04-01 2009-10-20 International Business Machines Corporation System and method for computing a blind checksum in a host ethernet adapter (HEA)
US7697536B2 (en) * 2005-04-01 2010-04-13 International Business Machines Corporation Network communications for operating system partitions
US20060221953A1 (en) * 2005-04-01 2006-10-05 Claude Basso Method and apparatus for blind checksum and correction for network transmissions
US7738500B1 (en) 2005-12-14 2010-06-15 Alacritech, Inc. TCP timestamp synchronization for network connections that are offloaded to network interface devices
JP2007195240A (ja) * 2007-03-16 2007-08-02 Sanyo Electric Co Ltd パケット処理装置、通信装置
US8169992B2 (en) 2007-08-08 2012-05-01 Telefonaktiebolaget Lm Ericsson (Publ) Uplink scrambling during random access
US8539513B1 (en) 2008-04-01 2013-09-17 Alacritech, Inc. Accelerating data transfer in a virtual computer system with tightly coupled TCP connections
US8341286B1 (en) 2008-07-31 2012-12-25 Alacritech, Inc. TCP offload send optimization
US9306793B1 (en) 2008-10-22 2016-04-05 Alacritech, Inc. TCP offload device that batches session layer headers to reduce interrupts as well as CPU copies
JP5392553B2 (ja) * 2009-07-08 2014-01-22 日本電気株式会社 データ転送システムおよびデータ転送方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0137804A4 (de) * 1983-02-07 1987-10-12 American Telephone & Telegraph Datennetzschnittstelle.
JPS6027256A (ja) * 1983-07-25 1985-02-12 Hitachi Ltd パケツト交換機の切替方式
US4637015A (en) * 1985-07-29 1987-01-13 Northern Telecom Limited Packet transmission and reception via a shared DMA channel
JPH024072A (ja) * 1988-06-20 1990-01-09 Fujitsu Ltd パケット交換方式
JPH02137547A (ja) * 1988-11-18 1990-05-25 Mitsubishi Electric Corp パケット交換装置
US5210749A (en) * 1990-05-29 1993-05-11 Advanced Micro Devices, Inc. Configuration of srams as logical fifos for transmit and receive of packet data
US5367643A (en) * 1991-02-06 1994-11-22 International Business Machines Corporation Generic high bandwidth adapter having data packet memory configured in three level hierarchy for temporary storage of variable length data packets
US5398245A (en) * 1991-10-04 1995-03-14 Bay Networks, Inc. Packet processing method and apparatus
JP3127523B2 (ja) * 1991-10-31 2001-01-29 株式会社日立製作所 通信制御装置およびデータ送信方法
US5293487A (en) * 1991-12-27 1994-03-08 Digital Equipment Corporation Network adapter with high throughput data transfer circuit to optimize network data transfers, with host receive ring resource monitoring and reporting
US5412782A (en) * 1992-07-02 1995-05-02 3Com Corporation Programmed I/O ethernet adapter with early interrupts for accelerating data transfer
US5307459A (en) * 1992-07-28 1994-04-26 3Com Corporation Network adapter with host indication optimization
JP2931490B2 (ja) * 1992-12-18 1999-08-09 富士通株式会社 並列処理方式
US5606665A (en) * 1994-07-01 1997-02-25 Digital Equipment Corporation Buffer descriptor prefetch in network and I/O design

Also Published As

Publication number Publication date
JPH0934818A (ja) 1997-02-07
US5752078A (en) 1998-05-12
JP3384686B2 (ja) 2003-03-10
EP0753817B1 (de) 2006-04-12
EP0753817A1 (de) 1997-01-15
DE69636029D1 (de) 2006-05-24

Similar Documents

Publication Publication Date Title
DE69636029T2 (de) Verfahren und Vorrichtung zur Datenübertragung
DE69922693T2 (de) Systemem und verfahren für netzwerkvorrichtung und ein-ausgabegerätetreiber
DE60204687T2 (de) Speicherkopierbefehl mit Angabe von Quelle und Ziel, der in der Speichersteuerung ausgeführt wird
DE69735866T2 (de) Vorrichtung und Verfahren zur Erzeugung von voraussagbaren Antworten
DE69821050T2 (de) Datenstromdifferenzierungssystem für Endgerätemulator
DE69826930T2 (de) System und Verfahren zur wirksamen Fernplatte Ein-/Ausgabe
DE102005014727B4 (de) Hardwarekoordination von Power Management-Aktivitäten
DE60027404T2 (de) Kreditbasiertes flusskontrollverfahren
DE69433293T2 (de) Netzwerkübertragungsverfahren für Systeme mit virtuellem Speicher
DE60035830T2 (de) Netzwerkgeräteverwaltungsvorrichtung und - verfahren
DE112013006063B4 (de) Funktionsübernahme für einen Datenübertragungskanal in einem Netzwerk mit Hochleistungsdatenverarbeitung
DE69723726T2 (de) Anwendungsprogrammierungsschnittstelle für Datenübertragung und Busverwaltung einer Busstruktur
DE19900245B4 (de) Vorrichtung und Verfahren zum Senden von Daten von einem USB-Endpunkt an einen USB-Host
DE19982854B4 (de) Verfahren und Einrichtung zum Minimieren von Leerlaufbedingungen eines asynchronen Sendefifos und von Überlaufbedingungen eines Empfangsfifos
DE69533680T2 (de) Verfahren und Vorrichtung zur dynamischen Bestimmung und Zuteilung von Zugriffsguoten für ein gemeinsames Betriebsmittel
DE69734432T2 (de) Verfahren und Vorrichtung zur Absendung von Clientverfahrenanrufen in einem Server Rechnersystem
DE4208924A1 (de) Verfahren zur kommunikation zwischen prozessoren und parallelverarbeitungscomputer hierfuer
DE60038703T2 (de) Asynchrone Datenübertragung
DE112005001364T5 (de) Verarbeiten von Empfangsprotokolldateneinheiten
DE19924922A1 (de) System und Verfahren für Nachrichtenübermittlung zwisfchen Netzwerkknoten, die durch parallele Verbindungen verbunden sind
DE19900369A9 (de) Vorrichtung und Verfahren zur Ausführung einer Steuerübertragung auf einem Universal Serial Bus
DE4319912A1 (de) Echtzeitdaten-Abbildungsnetzwerksystem und Verfahren zum Betreiben desselben
DE112011102242T5 (de) Vorrichtung zum Verarbeiten einer Stapelarbeitseinheit
DE60023169T2 (de) Datenübertragung mittels einer unzuverlässigen und einer zuverlässigen Transportvorrichtung
DE69907852T2 (de) Hochverfügbare asynchrone Ein/Ausgabe für gruppierte Rechnersysteme

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)