-
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.