-
Gebiet der
Erfindung
-
Die Erfindung betrifft eine Technik
zum Verbessern des Funktionsvermögens
eines Netzwerks aus miteinander verbundenen Informationsverarbeitungssystemen
wie Computern und dergleichen bei der Übermittlung von Information.
-
Die Erfindung betrifft insbesondere
eine Technik zur Hochgeschwindigkeitsverarbeitung bei der Übermittlung
von Information in einem Netzwerk miteinander verbundener Computersysteme
oder anderer derartiger Informationsverarbeitungssysteme, die mit
einem virtuellen Speicher versehen sind.
-
Hintergrund
der Erfindung
-
Einhergehend mit dem weit verbreiteten
Gebrauch von Nahbereichs-Netzwerken in den letzten Jahren wird nun
in weitem Umfang ein verteiltes System verwendet, um auf mehreren
Maschinen gleichzeitig eine Verarbeitung auszuführen, die nicht mit einer einzelnen
WS (Workstation) ausgeführt
werden könnte.
Dank des Erscheinens von Hochgeschwindigkeits-Netzwerkmedien wie
optischen Fasern und dergleichen haben sich die Ansprechzeit und
der Durchsatz in der Netzwerkschicht bemerkenswert verbessert. Daher
wird es möglich, selbst
für Verarbeitungsvorgänge, die
bisher nicht mit diesem System ausgeführt werden konnten, eine dezentralisierte
Verarbeitung zu verwenden.
-
Ein Mehrcomputersystem ist ein solches,
bei dem mehrere Netzwerkcomputer über ein Netzwerk miteinander
verbunden sind, und das die Verarbeitung gleichzeitig ausführt. Netzwerkcomputer
führen
eine parallele Verarbeitung aus, während sie Meldungen über das
Netzwerk übertragen.
Bei einem Mehrcomputersystem sind Ressourcen dezentralisiert, um
das Auftreten von Flaschenhälsen
zu verhindern, die sich aus der Konzentration der Ressourcen ergeben.
Da die Ressourcen bei einem Mehrcomputersystem dezentralisiert sind,
tritt häufig
eine Übermittlung
von Meldungen, nach Bedarf, auf, um Ressourcen zwischen Computern auszutauschen.
Um den Systemdurchsatz zu verbessern, ist es daher wesentlich, den
Softwareoverhead bei der Übermittlung
von Mel dungen zu verringern.
-
Ein Hauptteil des Overheads in der
Verarbeitung der Übermittlungssoftware
ist die Datenkopierverarbeitung. Die Gründe, die eine Datenkopierverarbeitung
erforderlich machen, sind für
die Sende- und die Empfangsseite verschieden. Unten werden Faktoren
angegeben, die ein Kopieren von Daten auf der Sende- und der Empfangsseite
erforderlich machen.
-
Auf der Sendeseite sind Kopien aus
den folgenden Gründen
erforderlich:
- (1) Die zu sendenden Daten müssen dauernd
in einem Bereich existieren, in dem der Hauptspeicher existiert.
- (2) Es muss ein asynchroner Betrieb ausgeführt werden, durch den die Verarbeitung
ohne Blockaden ausgeführt
wird.
-
Im Fall des Punkts (1) können die
Benutzerdaten nicht durch DMA (direkter Speicherzugriff (eine Prozedur,
um direkten Zugriff auf einen Speicher für Daten-Eingabe/Ausgabe(I/O)-Prozesse
zu erlangen) übertragen
werden, solange sie nicht im Hauptspeicher existieren, wenn der
Sendevorgang durch den Netzwerkadapter ausgeführt wird. Um zu gewährleisten,
dass die zu sendenden Daten dauernd im Hauptspeicher existieren,
ist es erforderlich, die Daten aus einem Benutzerdatenraum zu kopieren,
der in den OS(Betriebssystem)-Raumbereich
ausgelagert sein kann, in dem der Hauptspeicher dauernd existiert
und kein Auslagern auftritt.
-
Um den asynchronen Betrieb gemäß dem obigen
Punkt (2) auszuführen,
muss der Benutzerdatenbereich so geschützt werden, dass die Datenkopie
nicht beseitigt wird.
-
Ferner sind auf der Empfangsseite
Kopien aus den folgenden Gründen
erforderlich:
- (1) Der Datenempfangsbereich
muss dauernd im Hauptspeicher existieren.
- (2) Die Empfangsadresse wird durch einen Empfangssystemaufruf
mitgeteilt.
-
Im Fall des Punkts (1) können die
Benutzerdaten nicht durch die DMA-Verarbeitung übertragen werden, solange nicht
der Datenbereich im OS-Raumbereich existiert, in dem dauernd der
Hauptspeicher existiert, wenn der Sendevorgang durch den Netzwerkadapter
ausgeführt
wird. Der Punkt (2) rührt
aus der Tatsache her, dass das Übertragungsziel
(die Empfangsadresse) instabil oder unbestimmt ist, wenn die empfangenen Daten
eintreffen, da es nicht gewährleistet
ist, dass der Empfangssystemaufruf früher als das Eintreffen der Daten
ausgegeben wird.
-
Betreffend Untersuchungen an Hochgeschwindigkeits-Kommunikationsmechanismen
wurde auf dem im Mai 1993 abgehaltenen Parallel Processing Symposium
JSPP '93 ein Beitrag "The Effect of Message
Communication on Performance in a Distributed-Memory and the Effectiveness
of Direct Message Reception" erbracht,
der eine Direktmeldungs-Kommunikationseinrichtung vorschlägt. Obwohl
dieser Beitrag beschreibt, dass eine Empfangsadresse zum Meldungskopf
hinzugefügt
werden sollte, gibt er nicht an, wie die Datenkopierverarbeitung
verhindert oder überflüssig gemacht
werden sollte.
-
Um die Adresse auf der Empfangsseite
direkt zu spezifizieren, muss sie dort früher als auf der Sendeseite
bekannt sein. Um dies zu bewerkstelligen, ist eine frühere, getrennte,
vorgegebene Mitteilung erforderlich. Wenn diese frühere Übermittlung
unter Verwendung eines herkömmlichen
Verfahrens erfolgt, ist es unmöglich,
den Overhead der Kommunikationsverarbeitung zu verringern.
-
D. h., dass die Empfangsadresse der
Benutzerdaten, an die die empfangenen Daten weiterzuleiten sind,
nicht spezifiziert werden kann, solange nicht die auf Hardwarebasis
erfolgende Übertragung
der empfangenen Daten an den Hauptspeicher abgeschlossen ist.
-
Infolgedessen müssen eintreffende empfangene
Daten als Erstes in den OS-Raumbereich,
der dauernd im Hauptspeicher existiert, verschoben werden, bevor
die Daten kopiert oder auf andere Weise verarbeitet werden, um die
Daten zur Zielanwendung zu leiten.
-
Der Verarbeitungsumfang, wie er beim
Kopieren dieser Daten anfällt,
steigt proportional zur Datenmenge an. Derzeit sind derartige Datenkopieroperationen
für einen
großen
Anteil der Datentransportoperationen verantwortlich, und dies wurde
zu einem Hauptproblem hinsichtlich des Implementierens von Hochgeschwindigkeits-Datenkommunikation.
-
WO 84/03192 offenbart ein Verfahren
zum Übermitteln
von Datenpaketen über
ein Netzwerk von Computern, von denen jeder eine Netzwerkschnittstelle
verfügt.
Die Netzwerkschnittstelle speichert empfangene Paketen in einem
Pufferregister, wenn Zieladressen in den Paketen zu irgendeiner
einer Anzahl von in einer Liste aufbewahrter Adressen passt. Paketierungsdaten
werden durch direkten Speicherzugriff vom Pufferregister an einen
Empfangspuffer im Speicher des Computers übertragen. Eine Zuweisung eines
Empfangspuffers zu einem empfangenen Paket erfolgt durch einen Assoziativspeicher,
der für
jede akzeptierbare Zieladresse eines empfangenen Pakets einen Code
("Portnummer") enthält, der
als Bezug auf einen zugeordneten Empfangspuffer verwendet wird.
-
WO 93/09627 offenbart eine Vorrichtung
zum Verschlüsseln
und Entschlüsseln
von Daten, die durch Netzwerkcomputer über eine Netzwerk gesendet
oder empfangen werden, wobei ein Sicherheitsschlüssel verwendet wird. EP-A-459
758 offenbart einen als FIFO-Speicher konfigurierten Pufferspeicher
zum Puffern von Paketdaten, wie sie zwischen einem Netzwerk und
einem Systemspeicher eines Computers übertragen werden. Der Artikel "A Kernel for High-Performance
Multicast Communications" von
J. Gait in IEEE Transactions on Computers, Vol. 38, No. 2, Feb.
1989, Seiten 218 bis 226 offenbart ein Mehrprozessor-Netzwerk, bei
dem die Prozessoren Meldungen austauschen. Die Meldungen werden
in einem virtuellen Speichersystem in verketteten Meldungsschlangen
aufrecht erhalten, was es ermöglicht,
Speicherseiten mit den in der Schlange stehenden Meldungen entweder
auf Benutzerprozess-Speicherraum oder Kernel-Speicherraum abzubilden,
um so ein überflüssiges Kopieren
der Meldungen zu vermeiden.
-
Zusammenfassung
der Erfindung
-
Es ist eine Aufgabe der Erfindung,
ein Verfahren zum Übermitteln
von Information zwischen Netzwerkcomputern zu schaffen, mit dem
von einem Netzwerkcomputer gesendete Paketdaten effizient an einen
Benutzerdatenbereich in einem anderen Netzwerkcomputer übertragen
werden können.
-
Diese Aufgabe ist durch das im Anspruch
1 dargelegte Verfahren gelöst.
Die Unteransprüche
sind auf bevorzugte Ausführungsformen
der Erfindung gerichtet.
-
Eine Ausführungsform der Erfindung ermöglicht es,
empfangene Daten direkt an den Benutzerdatenbereich zu übertragen,
wodurch das Erfordernis beseitigt wird, Datenkopieroperationen auszuführen.
-
Eine weitere Ausführungsform der Erfindung ermöglicht es,
einen Satz von Daten, der sich über
mehrere empfangene Pakete erstreckt, dadurch in einem einzelnen,
zusammenhängenden
Bereich zu empfangen, dass die empfangenen Pakete in den Bereich übertragen
werden, der in zwei oder mehr Teile unter teilt ist.
-
Wie im Fall vorhandener Kommunikationsoperationen
(wie TCP/IP, ein gut bekanntes Kommunikationsprotokoll) wird bei
der Erfindung eine virtuelle Schaltungskennung (Port-ID) eingestellt,
die von der Empfangs- und der Sendeseite verwendet wird. Auf der
Sendeseite wird die Kennung (Port-ID) für einen Sendevorgang eingestellt,
und auf der Empfangsseite wird eine Adresse in einem Empfangsbereich,
entsprechend der Kennung, eingestellt und auf Grundlage der Kennung
in eine Hardware-Empfangabereichsadresse gewandelt, woraufhin die Übertragung
der Daten erfolgt, so dass Daten direkt, ohne überflüssige Kommunikationsverarbeitung,
an einen gewünschten
Bereich geliefert werden.
-
Bei der Erfindung werden Pakete jeweils
mit Empfangsbereich-Zuweisungsinformation (Port-ID) versehen, um
den Bereich anzuzeigen, in dem das Paket zu empfangen ist. Bei einer
Ausführungsform
sind sie auch mit Aufteilungsinformation zum Aufteilen des Pakets
versehen.
-
Das die Empfangsseite des Netzwerks
bildende Informationsverarbeitungssystem nimmt auf eine Port-Tabelle
und Umwandlungstabellen Bezug, mit denen das empfangsseitige System
vorab versehen wird, um den Empfangsbereich im Hauptspeicher zu
spezifizieren, der der Empfangsbereich-Zuweisungsinformation (Port-ID)
entspricht. Das Informationsverarbeitungssystem unterteilt ein empfangenes
Paket entsprechend der Paketaufteilungsinformation, falls erforderlich.
-
Der Bereich, der die im Paket enthaltenen
Daten empfangen soll, wird aus der Port-Tabelle und den Umwandlungstabellen
bestimmt, und es wird DMA dazu verwendet, die Paketdaten an den
so bestimmten Bereich zu übertragen.
-
So ist durch die Erfindung eine billige
Art und Weise geschaffen, gemäß der eine
Hochgeschwindigkeits-Netzwerkkommunikation von Daten zwischen Anwendungsprozessen
realisiert werden kann, die keine Datenkopieroperationen durch den
Prozessor auf der Empfangsseite beinhaltet.
-
Kurze Beschreibung
der Zeichnungen
-
1(a) ist
ein Blockdiagramm eines "Dynamic
Link Allocation (DLA)"-Systems.
-
1(b) ist
ein Blockdiagramm zur Entsprechung zwischen dem Datenbereich und
einer physikalischen Adresse.
-
2 ist
ein Blockdiagramm eines Computer-Netzwerksystems.
-
3(a) ist
ein Diagramm eines Datenpakets gemäß dem Stand der Technik.
-
3(b) ist
ein Diagramm eines Datenpakets, das gemäß der Erfindung gesendet wird.
-
4 ist
ein Flussdiagramm von Sendesoftware-Prozessoperationen.
-
5 ist
ein Flussdiagramm der Sendeoperation des Netzwerkadapters.
-
6 ist
ein Flussdiagramm einer Empfangssoftware-Vorverarbeitung.
-
7 ist
ein Flussdiagramm der Empfangsoperation des Netzwerkadapters.
-
8 ist
ein Flussdiagramm einer Empfangssoftware-Nachverarbeitung.
-
9 ist
ein Flussdiagramm des Empfangs-Anwendungsprozesses.
-
10 ist
ein Blockdiagramm eines Interrupts betreffend das letzte Paket.
-
Detaillierte
Beschreibung der bevorzugten Ausführungsformen
-
Die Grundkonzepte der Erfindung werden
nun vor einer detaillierten Erörterung
der Ausführungsformen
offenbart.
-
Einer der Gründe, die Datenkopieroperationen
im Stand der Technik erforderlich machen, besteht darin, dass eine
asynchrone Operation ausgeführt
werden muss, durch die die Verarbeitung vorgenommen wird, ohne dass
eine Sperre auf der Sendeseite vorgenommen wird.
-
Um die asynchrone Operation beim
Stand der Technik auszuführen,
muss der Datenbereich geschützt werden,
und die Datenkopie kann nicht beseitigt werden. Um eine Technik
zu schaffen, die frei von einem Kopieren von Daten ist, muss daher
eine synchrone Operation ausgeführt
werden. Um eine synchrone Operation ohne Änderung der aktuellen API (Application
Programming Interface) zu realisieren, wird daher ein Prozess vom
Typ mit synchroner Sperrung verwendet, der das Ende des Sendesystemaufrufs
bis zum Abschluss der Datenübertragung
aufhebt. Es verbleibt jedoch die Wahrscheinlichkeit, dass durch
den Prozess vom Typ mit synchroner Sperre der Parallelbetrieb zu
opfern sein könnte.
Daher wird unten die Verwendung einer neuartigen API vom synchron
arbeitenden Typ ohne Sperrung angegeben, der eine synchrone Operation
ausführt, jedoch
nicht dazu führt,
dass der Prozess gesperrt wird. Merkmale eines Prozesses vom synchron
arbeitenden Typ mit Sperrung und des Prozesses vom synchron arbeitenden
Typ ohne Sperrung sind in der folgenden Tabelle 1 angegeben.
-
TABELLE
1
Merkmale einer API vom synchron arbeitenden Typ mit Sperrung
und einer API vom synchron arbeitenden Typ ohne Sperrung
-
Um die Erfordernisse zu schaffen,
für die
Datenkopieroperationen auf der Empfangsseite erforderlich sind,
muss auch die unten genannte API geändert werden. Die Änderungen
sind: (1) Zusatz zur API (Vorabzuweisung des Empfangsbereichs),
zum Informieren der Kommunikationssoftware über die Adresse des Empfangsbereichs
vor dem Eintreffen der Daten hinzufügen, und (2) der Empfangsbereich
wird zum Bereich gemacht, in dem der Hauptspeicher dauernd existiert,
während
die Vorabzuweisung des Empfangsbereichs verarbeitet wird.
-
Dank des Hinzufügens der oben genannten API
wird die Grundoperation der Empfangsverarbeitung die unten beschriebene:
- (1) Es wird eine Verbindung aufgebaut.
- (2) Der Empfangsbereich wird vorab zugewiesen.
- (3) Es wird ein Empfangssystemaufruf ausgegeben.
- (4) Der Empfangsbereich wird in Vorbereitung für den nächsten Empfang
geöffnet.
- (5) Danach werden (3) und (4) wiederholt.
-
Der Punkt (2) muss vor dem Eintreffen
der Daten ausgeführt
werden, und er sollte vorzugsweise bei der Verarbeitung (1) ausgeführt werden.
Das Hinzufügen
der oben genannten API ermöglicht
es, eine Empfangsverarbeitung ohne ein Kopieren von Daten zu realisieren.
Die API kann auf eine Anzahl von Arten modifiziert werden.
-
Unten sind die Erfordernisse für die zusätzliche
Hardware beschrieben, die das Kommunikationssystem ohne Kopieren
von Daten ausführt,
wenn die Software die oben genannten Grunderfordernisse der API zufriedenstellend
abarbeitet. Um eine Übermittlung
ohne Kopieren auszuführen,
ist es wesentlich, die DMA, die die Daten in den Hauptspeicher entsprechend
Daten überträgt, die
den Datenbereich auf der Empfangsseite des Pakets spezifizieren,
mit einer Hardware-Demultiplexfunktion zu versehen. In der Praxis
müssen
jedoch auch die folgenden Probleme gelöst werden, wenn es versucht
wird, eine virtuelle Speichermaschine mit einer Mehrprogrammumgebung
zu realisieren:
- (1) Fehler im Prozess dürfen die
anderen Prozesse nicht schädigen
(Schutz).
- (2) Daten müssen
in einen Bereich mit zusammenhängenden
virtuellen Adressen (ein Zusammenhängen physikalischer Adressen
ist nicht garantiert) übertragen
werden.
-
Gemäß dem Punkt (1) werden die
Daten vom Netzwerk dank der Technik ohne Kopieren von Daten direkt
an den Empfangsbereichs des Benutzers übertragen. Ohne die Schutzfunktion
können
jedoch einer inkorrekten Einstellung auf der Sendeseite Inhalte
in einem anderen Benutzerbereich oder einem Systembereich zerstört werden.
Daher ist es erforderlich, einen Mechanismus zur Hardware-Sicherheitsprüfung bereitzustellen.
-
Gemäß dem Punkt (2) verwaltet die
virtuelle Speichermaschine den Hauptspeicherbereich mit einer Seite
als Einheit. Daher ist es gewährleistet,
dass der vom Benutzer angeforderte Empfangsbereich im Raum virtueller
Adressen ein zusammenhängender
Bereich ist. Im Raum physikalischer Adressen, wo der Hauptspeicher
dauernd existiert, ist daher der zusammenhängende Bereich in Seiten unterteilt.
Unten ist ein System zum Unterstützen
einer Übermittlung
ohne Kopien mit Schutzfunktion und einer Funktion zum übertragen
der Daten in physikalisch nicht zusammenhängende Bereiche angegeben.
-
Als Hardwarezusatz zum Lösen der
oben genannten Probleme wird ein DLA(Dynamic Link Allocation)-System
verwendet. Das DLA-System zeigt die folgenden Merkmale:
- (1) Um die Datenkopierverarbeitung zu beseitigen, werden Pakete
direkt an den Bereich des empfangenen Prozessors übertragen.
(2) Ein Sicherheitsschlüssel
wird unter Verwendung der Hardware geprüft, die für den Schutz zwischen den Prozessen
sorgt.
- (3) Für
den Hauptspeicher werden eine Empfangsbereichszuweisungs-Auswahlinformationstabelle (Port-Tabelle)
und eine Empfangsbereichzuweisungs-Informationstabelle (Adressen-Umwandlungstabelle) bereitgestellt,
um die Einschränkungen
hinsichtlich des Sicherheitsschlüssels
und der Anzahl der Ports zu lockern.
- (4) Ein Pufferspeicher für
Empfangsdaten wird auf der Empfangsseite verwaltet (um die Unabhängigkeit
zu bewahren).
-
Unten sind der Aufbau des DLA-Systems
und die Steueroperation für
dasselbe angegeben. Die 1(a) veranschaulicht
kurz den Hardwareaufbau des DLA-Systems
und den zugehörigen
Betrieb desselben:
- (1) Initialisieren der Elemente
der Empfangsbereichszuweisungs-Auswahlinformationstabelle (Port-Tabelle)(167)
und der Empfangsbereichzuweisungs-Informationstabelle (Adressen-Umwandlungstabelle)(164 bis 165)
bei der Vorabzuweisung des Empfangspuffers, und der Benutzerdatenbereich
des entsprechenden Ports wird zu einem Bereich gemacht, in dem der
Hauptspeicher dauernd existiert.
- (2) Die Sendeseite sendet ein Paket, zu dem Information (Port-ID)
zum Zu weisen des Empfangsbereichs und ein Sicherheitsschlüssel zu
Schutzzwecken hinzugefügt
sind. (3) Das Empfangs-DMA-Steuerinformationsregister 111 im
Netzwerkadapter auf der Empfangsseite entnimmt entsprechend der
Port-ID einen entsprechenden Eintrag aus der Informationsbereichszuweisungs-Auswahlinformationstabelle
(Port-Tabelle)(167).
- (4) Der Schutz wird dadurch geprüft, dass der zum Paket hinzugefügte Sicherheitsschlüssel mit
einem Sicherheitsschlüssel
des im obigen Punkt (3) entnommenen Inhalts verglichen wird.
- (5) Wenn die Schutzprüfung
erfolgreich ist, wird eine physikalische Adresse auf der Empfangsseite
entsprechend der Empfangsbereichzuweisungs-Informationstabelle (Adressen-Umwandlungstabelle)(164 bis 165) ermittelt,
und es erfolgt durch eine DMA-Verarbeitung eine direkte übertragung
von Daten an den Benutzerdatenbereich auf der Empfangsseite.
-
Unten werden der Schutzmechanismus
und der Mechanismus zum Übertragen
von Daten an die virtuelle Adresse detailliert beschrieben.
-
Der Schutz wird durch die folgende
Verarbeitung bewerkstelligt:
- (1) Es wird ein
Schlüssel
ermittelt, der das Zugriffsrecht auf den Kommunikationsbereich beim
Senden und Empfangen von Daten spezifiziert.
- (2) Die Sendeseite überträgt dadurch
ein Paket, dass sie zu ihm den Schlüssel hinzufügt.
- (3) Die Empfangsseite prüft
den Schlüssel
im eingetroffenen Paket und denjenigen im Kommunikationsbereich.
-
Wenn keine zusätzliche Hardware vorhanden
ist, werden die oben genannten Verarbeitungsvorgänge durch eine Interruptverarbeitung
ausgeführt,
was dem Ziel entgegenläuft,
den Softwareoverhead zu verringern. Daher ist ein geeigneter Hardwaremechanismus
zum Prüfen
des Schutzzustands hinzugefügt.
-
Bei einem System mit einer Verwaltung
des virtuellen Speichers ist es nicht gewährleistet, dass ein zusammenhängender
Bereich im Raum virtueller Adressen ein zusammenhängender
Bereich im Raum physikalischer Adressen ist. Die 1(b) veranschaulicht die Entsprechung
zwischen einem zusammenhängenden
Bereich der virtuellen Adressen und dem Raum physikalischer Adressen
des Prozessors.
-
Wie es in der 1(b) dargestellt ist, ist der Empfangspufferbereich 20 im
Raum virtueller Adressen ein zusammenhängender Bereich, jedoch ist
er im Raum 30 physikalischer Adressen des Prozessors kein
zusammenhängender
Be reich. Um die Daten an den Bereich zu übertragen, der im Raum physikalischer
Adressen nicht zusammenhängend
ist, ist es erforderlich, einen Adressenwandler bereitzustellen,
um die Position im Empfangspuffer in den Raum physikalischer Adressen
des Prozessors zu wandeln. Daher ist ein Mechanismus bereitgestellt,
der eine virtuelle Adresse in eine physikalische Adresse wandelt,
wenn die Adresse erhalten wird, um das eingetroffene Paket zu übertragen.
-
Im Ergebnis werden die Daten auf
die unbeschriebene Weise in einen. Empfangsbereich übertragen, der
hinsichtlich der virtuellen Adressen zusammenhängend ist. Vor dem Übertragen
des Pakets an den Hauptspeicher wird eine physikalische Adresse
zum Empfangen der Daten entsprechend den Daten der Adressen-Umwandlungstabelle
ermittelt. Dann werden die Daten durch DMA-Verarbeitung an die auf
die obige Weise ermittelte physikalische Adresse zum Empfangen der
Daten übertragen.
Durch die oben genannte Verarbeitung werden die Daten an einen Datenempfangsbereich übertragen,
der physikalisch nicht zusammenhängend
ist (an einen Bereich übertragen,
der hinsichtlich der virtuellen Adressen zusammenhängend ist).
-
Als Nächstes werden nun unter Bezugnahme
auf die Zeichnungen detaillierte Ausführungsformen der Erfindung
beschrieben.
-
Die 2 zeigt
die Konfiguration eines Netzwerkcomputers als Beispiel eines Informationsverarbeitungssystems
gemäß der Erfindung,
der zum Aufbauen eines Netzwerks verwendet wird. Ein Netzwerk 190 besteht
aus mindestens zwei Netzwerkcomputern 100. Jeder Netzwerkcomputer 100 besteht
aus einem Prozessor 130, einem Hauptspeicher 150 und
einem Netzwerkadapter 110, wobei jedes dieser Bestandselemente mit
einem Systembus 180 verbunden ist. Vorzugsweise ist die
Systemkonfiguration des Netzwerkcomputers 100 mit einer
oder mehreren I/O-Vorrichtungen 140 versehen.
-
Der Netzwerkadapter 110 ist
mit einem Mehrschlangen-DMA-Controller 120, einem Kommunikationspuffer
(Sende- und Empfangspuffer) 121, einem Netzwerkkommunikationsabschnitt 118,
einem Empfangs-DMA-Steuerinformationsregister (I/O-Register) 111,
einem Sende-DMA-Steuerinformationsregister 112, einem Interrupt-Steuerinformationsregister 113,
einem Adapter-Steuerinformationsregister 114, einem Adaptercontroller 115,
einem Empfangs-DMA-Steuerinformationsselektor 116 und einem
DMA-Aufteilungsinformationsregister 117 versehen, die alle
durch einen internen Bus 122 miteinander verbunden sind.
-
Der Mehrschlangen-DMA-Controller 120 steuert
Datenübertragungsvorgänge vom
Kommunikationspuffer 121 zum Hauptspeicher 150 (während Empfangsoperationen)
auf Grundlage von Information, wie sie im Empfangs-DMA-Steuerinformationsregister
(I/O-Register) 111, im Adapter-Steuerinformationsregister 114 und
im Empfangs-DMA-Steuerinformationaselektor 116 aufbewahrt
ist, Information, wie sie in vom Netzwerk empfangenen Paketen enthalten
ist, und Information, wie sie in der Informationsbereichszuweisungs-Auswahlinformationstabelle
(Port-Tabelle) 167 und den Empfangsbereichzuweisungs-Informationstabellen
(Adressen-Umwandlungatabellen) 164 und 165 im
Hauptspeicher 150 enthalten ist. Die Daten werden vom Hauptspeicher 150 auf
Grundlage von Information, wie sie im Sende-DMA-Steuerinformationsregister 112,
im Interrupt-Steuerinformationsregister 113 und im Adapter-Steuerinformationsregister 114 aufbewahrt
wird, und Information, wie sie in der Bereichszuweisungs-Informationstabelle 166 im
Hauptspeicher 150 aufbewahrt wird, vom Hauptspeicher 150 an
den Kommunikationspuffer 121 übertragen (während Sendevorgängen), und
die Erzeugung kann unter Verwendung elektronischer Bauteile wie
verschiedener Typen von z. B. TTL- und CMOS-Bauteilen erfolgen.
-
Das Empfangs-DMA-Steuerinformationsregister
(I/O-Register) 111 dient zum Aufbewahren steuerungsbezogener
Information dazu, wann Daten vom Kommunikationspuffer 121 an
den Hauptspeicher 150 übertragen
werden. Das Sende-DMA-Steuerinformationsregister 112 dient
zum Aufbewahren steuerungsbezogener Information dazu, wann Daten
vom Hauptspeicher 150 an den Kommunikationspuffer 121 übertragen werden.
Das Interrupt-Steuerinformationsregister 113 dient zum
Aufbewahren von Information, die zum Ausführen eines Interrupts verwendet
wird, wie bei Abschluss der Datenübertragung zwischen dem Kommunikationspuffer 121 und
dem Hauptspeicher 150 oder auf Abschluss anderer vorgegebener
Operationen hin. Das Adapter-Steuerinformationsregister 114 dient
zum Aufbewahren verschiedener Steuerinformationstypen, wie sie während Operationen
des Netzwerkadapters 110 verwendet werden. Die Adaptersteuerungseinrichtung 115 ist
eine Einrichtung, durch die der Prozessor 130 den Netzwerkadapter 110 mit
Steuerungsinformation zum Steuern von Paketdaten-Übertragungsvorgängen durch
DMA versorgt. Der Empfangs-DMA-Steuerinformationsselektor 116 dient
zum Zwischenspeichern von Empfangsbereichzuweisungs-Information
(Port-ID) 312-b in einem Paket, um die Empfangsbereichzuweisungs-Informationstabellen
(Adressen-Umwandlungstabellen)(164 bis 165) auszuwählen. Das
DMA-Aufteilungsinformationsregister 117 dient zum Zwischenspeichern
der Datenlänge
und der spezifizierten Anzahl von Bereichen, wie sie in der Sendebereichszuweisungs-Informationstabelle 166 gespeichert
sind. Der Netzwerk-Kommunikationsabschnitt 118, der über ein
Eigenadressen register 119 verfügt, senden den Inhalt des Kommunikationspuffers 121 auf
das Netzwerk 190 hinaus, er überwacht Pakete auf dem Netzwerk 190 und
er platziert Pakete, die die eigene Adresse enthalten, im Kommunikationspuffer 121.
Jedes dieser Bauteile kann unter Verwendung elektronischer Bauteile
hergestellt werden, wie z. B. verschiedener Typen von TTL- und CMOS-Bauteilen.
-
Der Kommunikationpuffer 121 dient
zum Aufbewahren von Paketen zum Senden über das Netzwerk 190 sowie
Paketen, die über
das Netzwerk 190 empfangen werden, und er kann ebenfalls
aus elektronischen Bauteilen wie z. B. RAM-Bauteilen hergestellt werden. Als Prozessor 130 kann
ein zentrale Verarbeitungseinheit (CPU) verwendet werden, und der
Hauptspeicher 150 kann z. B. aus einem RAM aufgebaut werden.
-
Die Struktur der im Hauptspeicher 150 gespeicherten
Daten erfordert eine Berücksichtigung
der Datenstruktur in Zusammenhang mit Empfangsoperationen und der
Datenstruktur in Zusammenhang mit Sendeoperationen. Hinsichtlich
Empfangsoperationen existieren eine Informationsbereichszuweisungs-Auswahlinformationstabelle
(Port-Tabelle) 167, Empfangsbereichzuweisungs-Informationstabellen
(Adressenumwandlungstabellen) 164 und 165, Empfangsprotokollinformations-Tabellen 161 und 162 sowie
Benutzerdatenbereiche 171 und 172. Die Benutzerdatenbereiche 171 und 172 werden
für den
Empfang von Daten durch die Empfangsseite gespeichert. Die Empfangsprotokollinformations-Tabellen 161, 162 sind
in Bereichen zur Übertragung
von Protokollinformation, wie während
Kommunikationsvorgängen
erforderlich, gespeichert. Während Kommunikationsvorgängen erforderliche
Protokollinformation ist z. B. Information zum Spezifizieren von
Empfangsprozeduren. Zu Information der Empfangsbereichzuweisungs-Informationstabellen
(Adressen-Umwandlungstabellen) 164, 165 gehört beim Übertragen
von (eintreffenden) Paketen verwendete Steuerinformation, wie z.
B. Adresseninformation betreffend die Benutzerdatenbereiche 171, 172 und
die Empfangsprotokollinformations-Tabellen 161, 162.
Auf mehrere Benutzerdaten zeigende Information kann auch mittels
der Empfangsbereichzuweisungs-Informationstabellen (Adressen-Umwandlungstabellen) 164, 165 aufrecht
erhalten werden.
-
Hinsichtlich der 2 dient die Informationsbereichszuweisungs-Auswahlinformationstabelle (Port-Tabelle) 167 im
Hauptspeicher 150 zum Auswählen, welche der Empfangsbereichzuweisungs-Informationstabellen
(Adressen-Umwandlungstabellen) 164, 165 auf Grundlage
eines Hinweises durch die unten beschriebene Netzwerk-Paketempfangsbereichszuweisungs-Information
(Port-ID)
312-b auszuwählen
sind.
-
Hinsichtlich Sendeoperationen existieren
eine Sendebereichszuweisungs-Informationstabelle 166, eine
Sendeprotokollinformations-Tabelle 163 und ein Benutzerdatenbereich.
Der Benutzerdatenbereich 173 wird durch die Sendeseite
für den
Sendevorgang in einem Bereich abgespeichert. Die Sendeprotokollinformations-Tabelle 163 wird
in einem Bereich zur Übertragung
von während
Kommunikations erforderlicher Protokollinformation gespeichert.
Zu Beispielen für
während
Kommunikationsvorgängen
erforderlicher Protokollinformation gehört Zielprozeduren spezifizierende
Information.
-
Information der Sendebereichszuweisungs-Informationstabelle 166 ist
Steuerinformation, wie sie erforderlich ist, wenn (herausgehende)
Pakete übertragen
werden, wie z. B. der Benutzerdatenbereich 173, die Sendeprotokollinformations-Tabelle 163,
Adresseninformation und Größeninformation.
Empfangsbereichzuweisungs-Informationstabellen (Adressen-Umwandlungstabellen) 164, 165 spezifizieren
den Übertragungs-Zielbereich
für die
Empfangsprotokollinformations-Tabellen 161, 162 und
die Benutzerdatenbereiche 171, 172, und sie enthalten
z. B. Adressen im Hauptspeicher 150, die Datengröße usw.
-
Die Sendebereichszuweisungs-Informationstabelle 166 spezifiziert
die Sendeprotokollinformations-Tabelle 163 und den Benutzerdatenbereich 173,
und sie enthält
z. B. Adressen im Hauptspeicher 150, die Datengröße usw.
Wie im Fall von Empfangsoperationen können mehrere Sendeprotokollinformations-Tabellen 163 und
Benutzerdatenbereiche 173 vorhanden sein.
-
Bei dieser Ausführungsform liegen die Benutzerdatenbereiche 171, 172 und
der Benutzerdatenbereich 173 im Benutzerraumbereich 170 innerhalb
des Hauptspeichers 150. Die Informationsbereichszuweisungs-Auswahlinformationstabelle
(Port-Tabelle) 167, die Empfangsprotokollinformations-Tabellen 161, 162, die
Empfangsbereichzuweisungs-Informationstabellen (Adressen-Umwandlungstabellen) 164, 165,
die Sendebereichszuweisungs-Informationstabelle 166 und
die Sendeprotokollinformations-Tabelle 163 liegen im OS-Raumbereich 160.
-
Die 3(a) und
die 3(b) zeigen den
Aufbau eines Netzwerk-Kommunikationspakets.
-
In der 3(a) ist
ein herkömmliches
Netzwerkpaket dargestellt, das z. B. aus Daten 310-a, Typinformation 320-a,
einer Quelladresse 321-a und einer Zieladresse 322-a besteht.
Die Daten 310-a entsprechen Information, wie sie durch
das OS und andere Software verarbeitet wird. Der Typ 320-a entspricht
der Datenlänge
oder einer anderen derartigen Information, wie sie für den Netzwerkadapter 110 erforderlich
ist, um seine vorgegebene Verarbeitung auszuführen. Die Quelladresse 321-a ist
die Kennung des Netzwerkcomputers, der das Paket geliefert hat.
Die Zieladresse 322-a ist die Kennung des empfangenden
Netzwerkcomputers.
-
Wie es in der 3(b) dargestellt, verfügt ein Netzwerkpaket
gemäß der Erfindung über Daten 310-b, Aufteilungsinformation 311-b,
Empfangsbereichszuweisungs-Information 312-b, Typinformation 320-b,
eine Quelladresse 321-b und eine Zieladresse 322-b.
Die Daten 310-b, der Typ 320-b, die Quelladresse 321-b und die
Zieladresse 322-b entsprechen dem Datentyp 310-a,
der Typinformation 320-a, der Quelladresse 321-a und
der Zieladresse 322-a.
-
Auf der Empfangsseite bestehen die
Daten 310-b aus Information entsprechend den Empfangsprotokollinformations-Tabellen 161, 162 ohne
die Empfangsbereichszuweisungs-Information 312-b, Typinformation 320-b der
Quelladresse 321-b und der Zieladresse 322-b sowie
Benutzerdaten 171, 172.
-
Auf der Sendeseite bestehen die Daten 310-b aus
Information entsprechend der Sendeprotokollinformations-Tabelle 163 ohne
die Bereichszuweisungsinformation 312-b, der Typinformation 320-b,
der Quelladresse 321-b und der Zieladresse 322-b sowie
den Benutzerdaten 173.
-
Die Aufteilungsinformation 311-b zeigt
die Anzahl der Paketaufteilungen und die Länge der aufgeteilten Abschnitte.
Es ist zu beachten, dass diese Aufteilungsinformation Information
für drei
oder mehr Aufteilungen beinhalten kann. Sie kann auch Information
enthalten, die, wenn das Paket aufgeteilt ist, anzeigt, welcher der
aufgeteilten Abschnitte den Empfangsprotokollinformations-Tabellen 161, 162 und
der Sendeprotokollinformations-Tabelle 163 entspricht und
welcher der Abschnitte den Benutzerdatenbereichen 171, 173 entspricht.
Wenn ein Paket in drei oder -mehr Teile aufzuteilen ist, ist es
auch bevorzugt, Information einzuschließen, die anzeigt, welcher der
aufgeteilten Abschnitte welchem Abschnitt der Benutzerdaten entspricht.
-
Die Empfangsbereichszuweisungs-Information 312-b dient
zum Auswählen
derjenigen Empfangsbereichszuweisungs-Information (Port-ID), die
das Ziel der Daten anzeigt, die von einem Paket zum Hauptspeicher 150 übertragen
werden.
-
Nun werden Paketsende- und Paketempfangsprozesse
beschrieben.
-
Der Paketsendeprozess besteht daraus,
dass der Benutzerdatenbereich A, 173 und die Sendeprotokollinformations-Tabelle 163 dazu
verwendet werden, ein Netzwerkpaket entsprechend der Erfindung,
wie es in der 3(b) dargestellt
ist, aufzubauen und das Paket an das Netzwerk auszugeben.
-
Nun werden die Sendesoftwareverarbeitung
und der Betrieb des Netzwerkadapters 110 beschrieben.
-
Als Erstes wird unter Bezugnahme
auf die 4 eine auf Software
basierende Verarbeitung beschrieben, wie sie beim Senden eines Pakets
ausgeführt
wird. Der Benutzerdatenbereich A, 173 enthält zu sendende Benutzerdaten.
In einem Schritt 410 werden Empfangsbereichszuweisungsinformation 312-b,
Typinformation 320-b, die Quelladresse 321-b und
die Zieladresse 322-b in die Sendeprotokollinformation 163 eingetragen. Wie
oben beschrieben, ist die Empfangsbereichszuweisungs-Information 312-b eine
Kennung (Port-ID) zum Kennzeichnen des Datenempfangsbereichs auf
der Empfangsseite. Als Beispiel kann der Typ 320-b Information
sein, die den Typ eines Protokolls einer oberen Ebene anzeigt. Die
Quelladresse 321-b ist die Netzwerkkennung des eigenen
Computers, und die Zieladresse 322-b ist die Kennung des
Netzwerkcomputers auf der Empfangsseite. In einem Schritt 420 wird
Information, die Information zum Benutzerdatenbereich A, 173 und zur
Sendeprotokollinformations-Tabelle 163 spezifiziert, in
der Sendebereichszuweisungs-Informationstabelle 166 eingetragen.
-
Die Adresse, die Datenlänge usw.
im Benutzerdatenbereich 170 sind Beispiele für die eingetragene Information.
Zur Information, wie sie in der Sendebereichszuweisungs-Informationstabelle 166 eingetragen wird,
gehören
die Datenlänge
und die spezifizierte Anzahl der Bereiche. Die Information zur Datenlänge und der
spezifizierten Anzahl von Bereichen ist eines der Elemente zur Aufteilungsinformation 311-b im
Netzwerkpaket.
-
In einem Schritt 430 wird
die Information der Sendebereichszuweisungs-Informationstabelle 166 in das
Sende-DMA-Steuerinformationsregister 112 eingetragen. Zu
in das Sende-DMA-Steuerinformationsregister 112 eingetragener
Information gehört
die Adresse der Bereiche im Benutzerdatenbereich 170. In
einem Schritt 440 wird eine Operationsaktivierungsmitteilung
für die
Adaptersteuereinrichtung 115 implementiert. Die obige Abfolge
von Prozeduren schließt
den Sendeprozess ab.
-
Nun wird der Betrieb des Netzwerkadapters 110 beim
Senden unter Bezugnahme auf die 5 beschrieben.
Die Beschreibung erfolgt unter Bezugnahme auf Operationen folgend
auf den Start des Betriebs der Adaptersteuereinrichtung 115 als
Ergebnis der Operationsaktivierungsmitteilung.
-
In einem Schritt 510 liest
der Mehrschlangen-DMA-Controller 120 den Inhalt der Sendebereichszuweisungs-Informationstabelle 166 auf
Grundlage der im Sende-DMA-Steuerinformationsregister 112 gespeicherten
Information aus und trägt
diesen Inhalt in das DMA-Aufteilungsinformationsregister 117 ein.
-
In einem Schritt 520 liest
der Mehrschlangen-DMA-Controller 120 Information aus dem
Benutzerdatenbereich A, 173, und er sendet die Protokollinformationstabelle 163 entsprechend
dem Inhalt der Sendebereichszuweisungs-Informationstabelle 166 im
DMA-Aufteilungsinformationsregister 117 an den Kommunikationspuffer 121.
-
In einem Schritt 530 werden
die Datenlänge
und die spezifizierte Anzahl der Bereiche aus der Sendebereichszuweisungs-Informationstabelle 166 im
DMA-Aufteilungsinformationsregister 117 mittels
des Mehrschlangen-DMA-Controllers 120 zur Verwendung als
Aufteilungsinformation 311-b ausgelesen.
-
In einem Schritt 514 erzeugt
der Mehrschlangen-DMA-Controller 120 aus dem Benutzerdatenbereich A, 173 und
anderer Information als der Zieladresse 322-b, der Quelladresse 321-b,
des Typs 320-b und der Empfangsbereichszuweisungs-Information
(Port-ID) 312-b, wie sie in der Sendeprotokollinformations-Tabelle 163 aufbewahrt
werden, Daten 310-b, und er erstellt unter Verwendung der
Erfindung unter Verwendung der Zieladresse 322-b, der Quelladresse 321-b,
des Typs 320-b und der Empfangsbereichszuweisungs-Information
(Port-ID) 312-b, wie sie in der Sendeprotokollinformations-Tabelle 163 aufbewahrt
werden, ein Netzwerkpaket gemäß der Erfindung
und speichert dies in den Kommunikationspuffer 121 ein.
Abschließend
wird in einem Schritt 550 das fertiggestellte Netzwerkpaket über den
internen Bus 122 mittels des Netzwerk-Kommunikationsabschnitts 111 ausgegeben.
-
Nun wird die Paketempfangsprozedur
beschrieben. Unter Verwendung einer auf Hardware basierenden Verarbeitung
werden die vom Netzwerk 190 empfangenen Datenabschnitte
von Paketen direkt an einen Benutzerdaten-Speicherbereich innerhalb
des Benutzerraums übertragen,
um es dadurch zu ermöglichen,
die Daten ohne Datenkopieroperationen an ein Anwendungsprogramm
weiterzuleiten.
-
Einzelheiten zur Empfangsprozedur
werden wie folgt erläutert.
-
Empfangsprozeduren werden grob in
Folgendes unterteilts Eine Software-Vorverarbeitung, bei der es sich
um eine Softwareverarbeitung handelt, wie sie vor dem Eintreffen
der Daten ausgeführt
wird, Verarbeitung durch den Netzwerkadapter 110 beim Eintreffen
von Daten, und Software-Nachverarbeitung, bei der es sich um eine
Softwareverarbeitung handelt, wie sie folgend auf das Eintreffen
der Daten ausgeführt
wird.
-
Als Erstes wird die Software-Vorverarbeitung
gemäß der 6 beschrieben. Information
wird in die Informationsbereichszuweisungs-Auswahlinformationstabelle
(Port-Tabelle) 167 und die Empfangsbereichzuweisungs-Informationstabellen
(Adressen-Umwandlungstabellen) 164, 165 eingetragen,
und der Netzwerkadapter 110 wird informiert. In einem Schritt 610 wird
Information betreffend einen Interrupt, wie er bei Abschluss eines
Datenempfangs an den Prozessor 130 geliefert wird, in das
Interruptsteuerinformations-Register 113 eingetragen. Zu
einem Schritt 620 gehört
das Erstellen der Entsprechung zwischen Netzwerkpaket-Empfangsbereichszuweisungs-Information
(Port-ID) 312-b und den Empfangsbereichzuweisungs-Informationstabellen (Adressen-Umwandlungstabellen)(164–165)
in der Informationsbereichszuweisungs-Auswahlinformationstabelle
(Port-Tabelle) 167.
-
Die Informationsbereichszuweisungs-Auswahlinformationstabelle
(Port-Tabelle) 167 liegt in Form einer Datentabelle vor,
die es ermöglicht,
die Empfangsbereichszuweisungs-Information auf Grundlage der Empfangsbereichszuweisungs-Information
(Port-ID) 312-b auszulesen. In einem Schritt 630 werden
die Benutzerdatenbereiche (171, 172) und die Empfangsprotokollinformations-Tabellen
(161 bis 162) in die Empfangsbereichzuweisungs-Informationstabellen
(Adressen-Umwandlungstabellen)(164 bis 165) eingetragen. Zu
Beispielen derartig eingetragener Information gehören die
Adressen der Benutzerdatenbereiche (171 bis 172)
und die Empfangsprotokollinformations-Tabellen (161 bis 162)
sowie die Datengröße. Abschließend wird, in
einem Schritt 640, die Informationsbereichszuweisungs-Auswahlinformationstabelle
(Port-Tabelle) 167 in das
Empfangs-DMA-Steuerinformationsregister (I/O-Register) 111 eingetragen.
-
Entsprechend der Darstellung in der 7 wird nun der Betrieb des
Netzwerks 110 vom Abfangen eines Netzwerkpakets bis zum
Empfang der Daten beschrieben. In einem Schritt 710 überwacht
der Netzwerk-Kommunikationsabschnitt 118 im Netzwerkadapter 110 das
Netzwerk 190, und er nimmt über das Netzwerk 190 übermittelte
Netzwerkpakete auf. Als Nächstes
geht, in einem Schritt 720, wenn der Inhalt der Netzwerkpaket-Zieladresse 322-b mit
dem voreingestellten Inhalt des Registers 119 für die eigene
Adresse übereinstimmt,
der Prozess zu einem Schritt 740 weiter, während er
zu einem Schritt 730 verzweigt, wenn die Inhalte nicht übereinstimmen.
Im Schritt 730 wird das Netzwerkpaket verworfen und der
Prozess wird beendet. Im Fall des Schritts 740 wird das
Netzwerkpaket in den Kommunikationspuffer 121 verschoben.
In einem Schritt 750 wird der Inhalt der Empfangsbereichszuweisungs-Information
(Port-ID) 312-b im Netzwerkpaket durch den Mehrschlangen-DMA-Controller 120 in
die Empfangs-DMA-Steuerinformations-Auswähleinrichtung 116 eingetragen.
In einem Schritt 760 wählt
der Mehrschlangen-DMA-Controller 120 einen der mehreren
Sätze der
Empfangsbereichzuweisungs-Informationstabellen (Adressen-Umwandlungstabellen) 164, 165 aus
den Inhalten des Empfangs-DMA--Steuerinformationsregister (I/O-Register) 111 und
der Empfangs-DMA-Steuerinformations-Auswähleinrichtung 116 aus.
-
D. h., dass es zum Prozess gehört, dass
auf die Informationsbereichszuweisungs-Auswahlinformationatabelle
(Port-Tabelle) 167 entsprechend dem Inhalt der Bereichszuweisungsinformation
(Port-ID) 312-b und einer der Empfangsbereichzuweisungs-Informationstabellen
(Adressen-Umwandlungstabellen) 164, 165, die entsprechend
spezifiziert werden, Bezug genommen wird.
-
In einem Schritt 770 erhält der Mehrschlangen-DMA-Controller 120 Adresseninformation
aus einer ausgewählten
der Empfangsbereichzuweisungs-Informationstabellen (Adressen-Umwandlungstabellen)(164–165).
In einem Schritt 780 erhält der Mehrschlangen-DMA-Controller 120 Aufteilungsinformation 311-b aus dem Netzwerkpaket
im Kommunikationspuffer 121. In einem Schritt 785 unterteilt
der Mehrschlangen-DMA-Controller 120 den Datenabschnitt
des Pakets im Kommunikationspuffer 121 auf Grundlage der
Aufteilungsinformation 311-b.
-
D. h., dass die Netzwerkpaketdaten 310-b auf
Grundlage der Aufteilungszahl und der Längeninformation in der Aufteilungsinformation
sowie der Information, die angibt, welcher der aufgeteilten Abschnitte
den Empfangsprotokollinformations-Tabellen (161 bis 162)
entspricht, und welche Abschnitte den Benutzerdatenbereichen (171 bis 172)
entsprechen, in Empfangsprotokollinformation und Benutzerdaten aufgeteilt
wird.
-
In einem Schritt 720 werden,
auf Grundlage der im Schritt 770 spezifizierten Empfangsbereich
Zuweisungs-Information (wie z. B. Adresswerten im Spei cher 150),
die aufgeteilten Paketabschnitte in Benutzerdaten und Empfangsprotokollinformation
aufgeteilt und an ihren jeweiligen Zielbereiche übertragen.
-
Ferner erfolgt ein Speicherzugriff
durch ein Programm (ein normales Anwendungsprogramm), das mit virtuellem
Speicher läuft,
unter Verwendung von Information in den Empfangabereichzuweisungs-Informationstabellen
(Adressen-Umwandlungstabellen) 164, 165 zum Wandeln
virtueller Speicheradressen in physikalische Speicheradressen. Genauer
gesagt, zeigen die Empfangsbereichzuweisungs-Informationstabellen (Adressen-Umwandlungstabellen) 164, 165 diejenige
physikalische Seite, die der virtuellen Seite eines Prozesses entspricht.
-
"Seite" ist die Grundeinheit
der OS-Speicherverwaltung. Seitengrößen werden als Potenzen von
zwei angegeben; die meisten existierenden Betriebssysteme verwenden
Seiten von 2.048, 4.096 oder 8.192 (Bytes oder dergleichen). Physikalische
und virtuelle Adressen sind Werte, wie sie dadurch erhalten werden,
dass ein Seitenversatzwert zur Nummer der obigen Seite addiert wird.
Derselbe Seitenversatzwert wird sowohl für physikalische als auch virtuelle
Adressen verwendet. Wenn eine physikalische Adresse eingestellt
wird, kann die Adressen-Umwandlungstabelle dazu verwendet werden,
die physikalische Adresse zu erhalten, die einer logischen Adresse
entspricht.
-
Wenn z. B. ein Anwendungsdatenbereich
auf der logischen Seite (virtuellen Seite) "M, M +" liegt und Daten empfangen werden, die
sich über
zwei derartige Bereiche erstrecken, werden die physikalischen Seiten 200
und 358 mit der Seitengröße multipliziert,
und zum Ergebnis werden Seitenversatzwerte addiert, um dadurch eine
physikalische Adresse zu erhalten, die nur in einen Datenzeiger
für zwei
kontinuierliche Befehle in der Befehlsschlange eingetragen werden
muss. Diese Operation ermöglicht
es, empfangene Daten von nichtzusammenhängenden Bereichen physikalischer
Adressen in einen zusammenhängenden
Bereich virtueller Adressen zu übertragen.
Abschließend
wird, in einem Schritt 795, ein Interrupt entsprechend
dem Inhalt des Interruptsteuerinformations-Registers 113 an
den Prozessor 130 geliefert.
-
Entsprechend der 8 wird nun die Empfangssoftware-Nachverarbeitung,
wie sie folgend auf das Eintreffen von Daten erfolgt, beschrieben.
Die Empfangssoftware-Nachverarbeitung wird durch den Interrupt folgend
auf die Aufteilung des Netzwerkpakets in Benutzerdaten und Empfangsprotokollinformation,
und die zugehörige Übertragung,
aktiviert. In einem Schritt 810 spezifiziert der Prozessor 130,
wenn ein Interrupt ausgegeben wird, die Anwendung, die die Daten
entsprechend der Empfangsprotokollsteuerungs-Information empfängt. In
einem Schritt 820 geht, wenn sich die empfangende Anwendung
in einem Wartezustand befindet, in dem sich nach. dem Ausgeben einer
Anforderung, Daten zu empfangen, befindet, zu einem Schritt 830 weiter,
während
andernfalls der Prozess zu einem Schritt 840 verzweigt.
-
Im Schritt 830 wird die
Anwendung aktiviert, die die Daten angefordert hat und gesperrt
wurde. Im Schritt 840 wird, wenn die empfangende Anwendung
aus einem Wartezustand folgend auf die Ausgabe einer Anforderung
zum Empfangen von Daten freigegeben wurde, ein Flag gesetzt, um
diesen Zustand anzuzeigen, und es zu ermöglichen, dass die Daten an
die Anwendung weitergeleitet werden, sobald eine Anforderung zum Empfang
ausgegeben wird. In einem derartigen Fall wird die Prozedur zum
Weiterleiten der Daten an die Anwendung dann implementiert, wenn
die empfangende Anwendung die Anforderung für den Empfang ausgibt.
-
Um die Empfangsverarbeitung klarzustellen,
wird die Operation unten unter Bezugnahme auf die 9 aus der Perspektive eines Anwendungsprogramms
beschrieben, das eine Empfangsanforderung ausgibt. Die Zuordnung
von Empfangspufferraum wird in einem Schritt 910 ausgeführt. Dadurch
wird der unter Bezugnahme auf die 6 beschriebene
Prozess aktiviert. In einem Schritt 920 wird eine Empfangsanforderung ausgegeben.
Die Zuordnung von Empfangspuffer im Schritt 910 ist eine
erforderliche Vorbedingung für
die Ausgabe einer Empfangsanforderung, jedoch ist die Ausgabe einer
Empfangsanforderung unmittelbar folgend auf den Pufferzuordnungsprozess
keine erforderliche Vorbedingung.
-
Während
das Flussdiagramm auf die Beschreibung nur des empfangsbezogenen
Prozesses beschränkt
ist, um ein deutliches Bild des Ablaufs der Empfangsprozedur zu
schaffen, kann zwischen dem Schritt 910 und dem Schritt 920 eine
vorgegebene Prozedur eingefügt
werden.
-
Gemäß dem Schritt 930 verzweigt
der Prozess zu einem Schritt 960, wenn das Eintreffen von
Daten einer Empfangsanforderung vorhergeht, während der Prozess in anderen
Fällen
zu einem Schritt 940 weitergeht. Im Schritt 960 wurde
das das Eintreffen von Daten anzeigende Flag gesetzt, wie es unter
Bezugnahme auf die 8 beschrieben
wurde, so dass alles, was auszuführen
ist, lediglich darin besteht, die Daten zu akzeptieren.
-
In einem Schritt 950 tritt
der Prozess, da noch keine Daten eingetroffen sind, in einen Wartezustand ein,
der bis zur Aktivierung der unter Bezugnahme auf die 8 beschriebenen Empfangsprozessanforderung andauert.
Das unter Bezugnahme auf die 8 beschriebene
Verfahren wird zur Umkehr aus dem Wartezustand verwendet.
-
Gemäß der Erfindung ist, bei der Übermittlung
von Daten in Paketen über
ein Netzwerk mit mehreren Informationsverarbeitungssystemen eine
billige Einrichtung zum Übermitteln
von Information mit hoher Geschwindigkeit geschaffen, zu der keine
Datenkopiervorgänge,
eine Modifizierung einer Seitentabelle und dergleichen durch das
Informationsverarbeitungssystem auf der Empfangsseite gehören.
-
Nun wird weiter eine andere Ausführungsform
der Erfindung beschrieben.
-
Bei der ersten Ausführungsform
ist Hardware hinzugefügt
(Hardware-Hinzufügemechanismus),
um kopierfreie Kommunikationsvorgänge durch das DLA-System zu
bewerkstelligen. Kopienfreie Kommunikation macht die Kopierverarbeitung überflüssig. Als
Nächstes
ist der Softwareprozess, der verkleinert werden sollte, der Overhead
bei der Ablaufplanung. Die Verwendung von Threads oder dergleichen
ist beim Verringern der Ablaufplanverarbeitung effektiv. Es ist
auch möglich,
die Anzahl der Interrupts durch Bereitstellen eines zusätzlichen
Hardware-Hinzufügemechanismus
und durch Verringern des Overheads bei der Ablaufplanverarbeitung zu
verringern. Nun wird der Hardware-Hinzufügemechanismus beschrieben.
-
Auf der Empfangsseite ist es nicht
erforderlich, einen Interrupt auszugeben, wenn Daten vor einem Empfangssystemaufruf
eintreffen. Ein Interrupt ist erforderlich, um den Prozess zu starten,
der gesperrt war, was auf der Ausgabe des Empfangssystemaufrufs
vor dem Eintreffen der Daten beruht. Wenn kein gesperrter Prozess
vorliegt, ist es daher nicht erforderlich, einen Interrupt auszugeben.
D. h., dass die Ausgabe des Interrupts dadurch gesteuert wird, dass
der Zustand aufrecht erhalten wird, der das Vorliegen des gesperrten Prozesses
anzeigt.
-
Wenn die Kommunikationvorgänge unter
Verwendung eines großen
Pakets ausgeführt
werden, um einen hohen Durchsatz zu erzielen, muss das Paket einer
anderen Maschine warten, bis der obige Kommunikationsvorgang abgeschlossen
ist. Die Ansprechzeit ist beeinträchtigt, da die Maximalzeit
zur Paketübertragung verlängert ist.
Um dieses Problem zu lösen,
kann ein Hardware-Hin zufügemechanismus
ein Paket einer solchen Größe übertragen,
dass die Ansprechzeit nicht erhöht
wird, und er kann einen Interrupt ausgeben, wenn der abschließende Datenbereich
erreicht wurde. In einem Knotencomputer, für den es erwünscht ist,
ein Notpaket zu senden, wird die Ansprechzeit durch eine Batchverarbeitung
minimiert.
-
Ferner kann ein Interruptmechanismus
für das
letzte Paket als Hardware-Hinzufügemechanismus
vorhanden sein, der den Zustand verwaltet, in dem gesperrte Prozesse
existieren, und als Mechanismus, der einen Interrupt ausgibt, wenn
das letzte Paket eines Datenbereichs eingetroffen ist.
-
Die 10 zeigt
schematisch ein System eines Interruptmechanismus für das letzte
Paket. 100T ist ein Netzwerkcomputer auf der Sendeseite,
und 100R ist ein Netzwerkcomputer auf der Empfangsseite. 110T und 110R sind
Netzwerkadapter. 200T und 200R zeigen jeweils
Interrupt-Warteprozess-Flags. Ein Paket verfügt über Daten 310-C, weitere
Kopfdaten 320-C und ein Flag 330-c für das letzte
Paket.
-
Unten wird der Betrieb des Interruptmechanismus
für das
letzte Paket skizziert. Es ist nicht erforderlich, einen Interrupt
auszugeben, wenn der Empfangssystemaufruf eines Netzwerkcomputers
auf der Empfangsseite nicht vor dem Eintreffen der Daten liegt.
-
Unten wird die Operation angegeben,
wie sie ausgeführt
wird, wenn der Empfangssystemaufruf früher liegt und der Prozess gesperrt
ist:
- (1) Das Interruptwarteprozess-Flag des
Netzwerkadapters wird gesetzt, wenn der Empfangsprozess gesperrt
ist.
- (2) Auf der Sendeseite wird das Flag für das letzte Paket im letzten
Paket gesetzt.
- (3) Auf der Empfangsseite wird die Ausgabe eines Interrupts
abhängig
von der UND-Bedingung betreffend den Zustand, in dem das Interruptwarteprozess-Flag des Netzwerkadapters
gesetzt ist, und dem Zustand, in dem das Flag für das letzte Paket gesetzt
ist, kontrolliert.
-
Gemäß der oben genannten Operation
kann, während
die Empfangsseite große
Datenmengen empfängt,
die in mehrere Pakete unterteilt sind, das Eintreffen eines Notpakets
von einem anderen Knoten auf Interruptweise empfangen werden, was
es ermöglicht,
eine Kommunikation mit hohem Durchsatz zu realisieren, ohne dass
eine kurze Reaktionszeit geopfert würde.
-
1(a)
-
- Address Conversion Table//Adressen-Umwandlungstabelle
- Base Of Table//Tabellenbasis
- Buffer Size//Puffergröße
- Conversion Table//Umwandlungstabelle
- Entry//Eintrag
- Entry Number Of Table//Eintragsnummer in der Tabelle
- Network Adapter//Netzwerkadapter
- Port-ID//Port-ID
- Receive DMA Control Info. Register (I/O Register)//Empfangs-DMA-Steuerinformationsregister
(I/O-Register)
- Receive Region Assignment Info. Table For Port ID = x //Empfangsbereichzuweisungs-Informationstabelle
für die
Port-ID = x
- Receive Region Assignment Selection Info. Table//Informationsbereichszuweisungs-Auswahlinformationstabelle
- User Data//Benutzerdaten
- User Data Region//Benutzerdatenbereich
-
1(b)
-
- Physical Address Space At Processor//Raum für physikalischer
Adressen im Prozessor
- Receiving Buffer Region In The Virtual Address Space//Empfangspufferbereich
im Raum virtueller Adressen
- Region//Bereich
-
2
- 100
- Netzwerkcomputer
- 110
- Netzwerkcomputeradapter
- 111
- Empfangs-DMA-Steuerregister
- 112
- Sende-DMA-Steuerregister
- 113
- Interrupt
- 114
- Adapter-Steuerregister
- 115
- Adaptercontroller
- 116
- Empfangs-DMA-Steuerselektor
- 117
- DMA-Aufteilungsinformationsregister
- 118
- Netzwerk-Kommunikationsabschnitt
- 119
- Eigenadressregister
- 130
- Prozessor
- 140
- I/O-Vorrichtung
- 160
- OS-Raum
- 161,
162
- Empfangsprotokollinformations-Tabelle
- 163
- Sendeprotokollinformations-Tabelle
- 164,
165
- Empfangsbereichzuweisungs-Informationstabelle 166Sendebereichszuweisungs-Informationstabelle
- 167
- Informationsbereichszuweisungs-Auswahlinformationstabelle
- 170
- Benutzerraum
- 171,
172, 173
- Benutzerdatenbereich
x
- Network
- Netzwerk
- Network
Computer Memory
- Netzwerkcomputer-Speicher
-
3(a)
- 310-a
- Daten
- 320-a
- Typ
- 321-a
- Quelladresse
- 322-a
- Zieladresse
- Prior
Art
- Stand
der Technik
-
3(b)
- 310-b
- Daten
- 311-b
- Aufteilungsinformation
- 312-b
- Empfangsbereichszuweisungs-Informätion
- 320-b
- Typ
- 321-b
- Quelladresse
- 322-b
- Zieladresse
-
4
- 410
- Eintragen
von Empfangsbereichzuweisungs-Information 312b, des Typs 320b, der
Quelladresse 321b und der Zieladresse 322b in die Sendeprotokollinformation
163
- 420
- Eintragen
von Benutzerdaten A und Sendeprotokollinformation in die Sendebereichszuweisungs-Information 166
- 430
- Eintragen
der Sendebereichszuweisungs-Information 166 in das Sende-DMA-Steuerinformationsregister
120
- 440
- Informieren
der Adaptersteuereinrichtung 115 über die Aktivierung der Operation
- End
(Start) Of Transmission Software Process
- Ende
(Start) des Sendesoftwareprozesses
-
5
- 510
- Mehrschlangen-DMA-Controller
120 liest den Inhalt der Sendebereichszuweisungs-Information 166
auf Grundlage von im Sende-DMA-Steuerinformationsregister 112 gespeicherter
Information aus und trägt
den Inhalt in das DMA-Aufteilungsinformationsregister
117 ein
- 520
- Mehrschlangen-DMA-Controller
120 liest die Benutzerdaten A 173 und die Sendeprotokollinformation
163 in den Kommunikationpuffer 121 entsprechend dem Inhalt der Sendebereichszuweisungs-Info
166 im DMA-Aufteilungsinformationsregister 117 ein
- 530
- Die
Datenlänge
und die spezifizierte Anzahl der Bereiche werden aus der Sendebereichszuweisungs-Information
166 im DMA-Aufteilungsinformationsregister 117 durch den Mehrschlangen-DMA-Controller
120 zur Verwendung als Aufteilungsinformation 311-b ausgelesen
- 540
- Der
Mehrschlangen-DMA-Controller 120 erzeugt aus der Unterteilungsinformation,
den Benutzerdaten und der Sendeprotokollinformation Sendepakete
im Kommunikationspuffer 121
- 550
- Das
fertiggestellte Netzwerkpaket wird durch den Netzwerk-Kommunikationsabschnitt
118 an das Netzwerk 190 ausgegeben
- End
(Start) Of Transmission Process
- Ende
(Start) des Sendeprozesses
-
6
- 610
- Eintragen
von Information in das Interrupt-Steuerinformationsregister 113
betreffend einen Interrupt, wie er auf Abschluss eines Datenempfangsvorgangs
hin an den Prozessor 130 geliefert wird
- 620
- Eintragen
der Entsprechung zwischen der Netzwerkpaket-Empfangsbereichszuweisungs-Information 312-b
und der Empfangsbereichszuweisungsinformation (164–165) in
der Empfangsbereichszuweisungs-Auswählinformation 167
- 630
- Eintragen
von Benutzerdaten (171–172)
und Empfangsprotokollinformation (161–162) in der Empfangsbereichszuweisungs-Information
(164–165)
- 640
- Eintragen
der Empfangsbereichszuweisungs-Auswählinformation 167 im Empfangs-DMA-Steuerinformationsregister
111
- End
(Start) Of Receiving Software Proprocessing
- Ende
(Start) der Empfangasoftware-Vorverarbeitung
-
7
- 710
- Netzwerk-Kommunikationsabschnitt
118 nimmt Netzwerkpakete auf
- 720
- Stimmt
der Inhalt der Netzwerkpaket-Zieladresse mit dem aktuellen Inhalt
des Eigenadressregisters 119 überein?
- 730
- Netzwerkpaket
wird verworfen
- 740
- Netzwerk-Kommunikationsabschnitt
118 verschiebt das Netzwerkpaket in den Kommunikationspuffer 121
- 750
- Inhalt
der Empfangsbereichszuweisungs-Information 312-b im Netzwerkpaket
wird durch den Mehrschlangen-DMA-Controller 120 in den Empfangs-DMA-Steuerinformationsselektor
116 eingetragen
- 760
- Mehrschlangen-DMA-Controller
120 wählt
Empfangsbereichszuweisungs-Information (164–165) aus den Inhalten des
Empfangs-DMA-Steuerinformationsregisters 112 und des Empfangs-DMA-Steuerinformationsselektors
116 aus
- 770
- Mehrschlangen-DMA-Controller
120 erhält
Adresseninformation aus der Empfangsbereichszuweisungs-Information
(164–165)
- 780
- Mehrschlangen-DMA-Controller
120 erhält
die Aufteilungsinformation 311-b
vom Netzwerkpaket im Kommunikationspuffer 121
- 785
- Mehrschlangen-DMA-Controller
120 unterteilt das eingegebene Netzwerkpaket auf Grundlage der Aufteilungsinformation
311-b im Kommunikationspuffer 121
- 790
- Mehrschlangen-DMA-Controller
120 unterteilt den Datenabschnitt des Pakets im Kommunikationspuffer
121 auf Grundlage der Aufteilungsinformation 311-b
- 795
- Mehrschlangen-DMA-Controller
120führt
eine DMA-Datenübertragung
auf Grundlage der Aufteilungsinformation 311-b und der Adresseninformation
aus
- End
(Start) Of Receiving Process
- Ende
(Start) des Empfangsprozesses
-
8
- 810
- Anwendung,
die die Daten empfangen soll, wird entsprechend der Empfangsprotokoll-Steuerinformation (161–162) spezifiziert
- 820
- Wurde
eine Empfangsanforderung vor dem Empfang von Daten ausgeben?
- 830
- Aktivierung
der empfangenden Anwendung
- 840
- Dateneintreffzustand
aufrecht erhalten
- End
(Start) of Receiving Software Postprocessing
- Ende
(Start) der Empfangssoftware-Nachverarbeitung
- Response
To Receiving Interrupt
- Reaktion
auf Empfangsinterrupt
-
9
- 910
- Aktivierung
der Empfangspufferzuordnung
- 920
- Ausgabe
einer Empfangsanforderung
- 930
- Trafen
Daten vor der Anforderung ein?
- 940
- Bis
zum Ende des Datenempfangs sperren
- 950
- Anforderung
für den
Empfangsprozess aktivieren
- 960
- Bestätigen des
Eintreffens von Daten
- End
(Start) Of Receiving Process
- Ende
(Start) des Empfangsprozesses
-
10
- 200R,
T
- Interruptwarteprozess-Flag
- 310C
- Daten
- 320C
- Andere
Kopfdaten
- 330C
- Flag
für das
letzte Paket
- Header
Portion
- Kopfabschnitt
- Packet
- Paket