DE69433293T2 - Netzwerkübertragungsverfahren für Systeme mit virtuellem Speicher - Google Patents

Netzwerkübertragungsverfahren für Systeme mit virtuellem Speicher Download PDF

Info

Publication number
DE69433293T2
DE69433293T2 DE1994633293 DE69433293T DE69433293T2 DE 69433293 T2 DE69433293 T2 DE 69433293T2 DE 1994633293 DE1994633293 DE 1994633293 DE 69433293 T DE69433293 T DE 69433293T DE 69433293 T2 DE69433293 T2 DE 69433293T2
Authority
DE
Germany
Prior art keywords
information
data
area
packet
reception
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE1994633293
Other languages
English (en)
Other versions
DE69433293D1 (de
Inventor
Hideki Kunitachi-shi Murayama
Satoshi Kawasaki-shi Yoshizawa
Hidenori Tokorozawa-shi Inouchi
Takeshi Sagamihara-shi Aimoto
Takehisa Sagamihara-shi Hayashi
Hiroshi Hadano-shi Iwamoto
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Application granted granted Critical
Publication of DE69433293D1 publication Critical patent/DE69433293D1/de
Publication of DE69433293T2 publication Critical patent/DE69433293T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9042Separate storage for different parts of the packet, e.g. header and payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • H04L49/557Error correction, e.g. fault recovery or fault tolerance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9047Buffering arrangements including multiple buffers, e.g. buffer pools
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9057Arrangements for supporting packet reassembly or resequencing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • 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

Description

  • 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
    Figure 00070001
  • 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)(164165) 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)(164165). 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

Claims (5)

  1. Verfahren zur Übermittlung von Informationen zwischen Netzwerkcomputern (100), die jeweils mindestens einen Prozessor (130), einen physikalischen Hauptspeicher (150, 170) und einen mit einem Netzwerk (190) verbundenen Netzwerkadapter (110) aufweisen, wobei auf jedem Netzwerkcomputer (100) ein virtuelles Speichersystem implementiert ist, mit folgenden Schritten: vor Ankunft eines Datenpakets von einem sendenden Netzwerkcomputer (100T), Vorabzuordnen eines Empfangsbereichs (171, 172) in einem solchen Teil des Hauptspeichers (150, 170) eines empfangenden Netzwerkcomputers (100R), dessen Auslagern durch das virtuelle Speichersystem gesperrt ist, und Initialisieren von Adressenumwandlungstabellen (164, 165) zur Umwandlung von virtuellen in physikalische Speicheradressen sowie einer Port-Tabelle (167) zur Verbindung einer Port-ID mit einer Adressenumwandlungstabelle (164, 165) in dem Hauptspeicher des empfangenden Netzwerkcomputers, Senden eines Pakets von einem sendenden Netzwerkcomputer (100T), das eine Port-ID (312-b) enthält, Empfangen des Pakets an dem empfangenden Netzwerkcomputer (100R), Gewinnen von Informationen aus der Port-Tabelle (167) des empfangenden Netzwerkcomputers (100R) aufgrund der Port-ID (312-b) des empfangenen Pakets, und Bestimmen einer physikalischen Adresse im Empfangsbereich im Hauptspeicher (140, 170) des empfangenden Netzwerkcomputers (100R) aus den Adressenumwandlungstabellen (164, 165) aufgrund der aus der Port-Tabelle (167) gewonnenen Informationen, und direktes Übermitteln von Daten aus dem empfangenen Paket in den Empfangsbereich im Hauptspeicher (150, 170) des empfangenden Netzwerkcomputers (100R), der durch die genannte physikalische Adresse bezeichnet wird.
  2. Verfahren nach Anspruch 1, mit folgenden weiteren Schritten: Hinzufügen eines Sicherheitsschlüssels zu dem gesendeten Datenpaket durch den sendenden Netzwerkcomputer (100T), Bestimmen von Sicherheitsschlüsselinformationen aus den gewonnenen Informationen, und Vergleichen des dem ausgesandten Paket hinzugefügten Sicherheitsschlüssels mit den Sicherheitsschlüsselinformationen, bevor der Schritt zum direkten Übermitteln von Daten in den Hauptspeicher (150, 170) ausgeführt wird.
  3. Verfahren nach Anspruch 1 oder 2, mit folgenden weiteren Schritten: Hinzufügen von Teilungsinformationen (311-b) zu dem ausgesandten Datenpaket, die Teile des ausgesandten Datenpakets bezeichnen, wenn der Datenbereich des Pakets in mindestens zwei Teile eingeteilt wird, und Übermitteln jedes der Teile des Datenbereichs an den Benutzerdatenbereich (170) des Hauptspeichers (150, 170) des empfangenden Netzwerkcomputers (100R) aufgrund der Teilungsinformationen.
  4. Verfahren nach einem der Ansprüche 1 bis 3, wobei im Schritt zur Bestimmung einer physikalischen Adresse Adressenumwandlungstabellen (164, 165) verwendet werden, um einen Benutzerdatenbereich mit einem kontinuierlichen virtuellen Adressraum in einen Benutzerdatenbereich mit nicht kontinuierlichen physikalischen Adressen umzuwandeln.
  5. Verfahren nach einem der Ansprüche 1 bis 4, wobei der empfangende Netzwerkcomputer (100R) einen Interrupt erzeugt, wenn das zuletzt übertragene Datenpaket eines Satzes an Paketen in den Benutzerdatenbereich übertragen wurde.
DE1994633293 1993-09-08 1994-08-26 Netzwerkübertragungsverfahren für Systeme mit virtuellem Speicher Expired - Fee Related DE69433293T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP22355093 1993-09-08
JP22355093A JP3473975B2 (ja) 1993-09-08 1993-09-08 ネットワークシステムおよびネットワークにおける通信方法

Publications (2)

Publication Number Publication Date
DE69433293D1 DE69433293D1 (de) 2003-12-11
DE69433293T2 true DE69433293T2 (de) 2004-09-09

Family

ID=16799920

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1994633293 Expired - Fee Related DE69433293T2 (de) 1993-09-08 1994-08-26 Netzwerkübertragungsverfahren für Systeme mit virtuellem Speicher

Country Status (5)

Country Link
US (1) US5617424A (de)
EP (2) EP0642246B1 (de)
JP (1) JP3473975B2 (de)
KR (1) KR100326864B1 (de)
DE (1) DE69433293T2 (de)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835492A (en) * 1993-09-08 1998-11-10 Hitachi, Ltd. Network for mutually connecting computers and communicating method using such network
US5857075A (en) * 1995-01-11 1999-01-05 Sony Corporation Method and integrated circuit for high-bandwidth network server interfacing to a local area network
US6256313B1 (en) 1995-01-11 2001-07-03 Sony Corporation Triplet architecture in a multi-port bridge for a local area network
US5940597A (en) * 1995-01-11 1999-08-17 Sony Corporation Method and apparatus for periodically updating entries in a content addressable memory
US5764895A (en) * 1995-01-11 1998-06-09 Sony Corporation Method and apparatus for directing data packets in a local area network device having a plurality of ports interconnected by a high-speed communication bus
US5884040A (en) * 1995-01-11 1999-03-16 Sony Corporation Per-packet jamming in a multi-port bridge for a local area network
JP4160642B2 (ja) 1995-09-08 2008-10-01 株式会社日立製作所 ネットワークデータ転送方法
US6470391B2 (en) 1995-09-08 2002-10-22 Hitachi, Ltd. Method for transmitting data via a network in a form of divided sub-packets
US6510145B1 (en) 1997-07-25 2003-01-21 Samsung Electronics, Co., Ltd. Method and apparatus for providing packet data service in a communication system
KR100258221B1 (ko) 1997-07-25 2000-06-01 윤종용 통신시스템의 패킷 트래픽 채널의 초기화 방법
US6363067B1 (en) 1997-09-17 2002-03-26 Sony Corporation Staged partitioned communication bus for a multi-port bridge for a local area network
US6442168B1 (en) 1997-09-17 2002-08-27 Sony Corporation High speed bus structure in a multi-port bridge for a local area network
US6617879B1 (en) 1997-09-17 2003-09-09 Sony Corporation Transparently partitioned communication bus for multi-port bridge for a local area network
US6157951A (en) * 1997-09-17 2000-12-05 Sony Corporation Dual priority chains for data-communication ports in a multi-port bridge for a local area network
US6738384B1 (en) 1997-09-17 2004-05-18 Sony Corporation Technique for optimizing cut-through for broadcast and multi-cast packets in a multi-port bridge for a local area network
KR100286334B1 (ko) * 1998-03-10 2001-04-16 김영환 디엠에이씨를이용한유에스비인터페이스장치및방법
JP3250532B2 (ja) * 1998-11-24 2002-01-28 日本電気株式会社 データ送受信システム、データ受信装置、及びデータ受信方法
AU1843300A (en) * 1998-12-11 2000-06-26 Microsoft Corporation Accelerating a distributed component architecture over a network using a modified rpc communication
US7031904B1 (en) * 1999-01-26 2006-04-18 Adaptec, Inc. Methods for implementing an ethernet storage protocol in computer networks
KR100618739B1 (ko) * 1999-10-11 2006-08-31 엘지엔시스(주) 다수의 큐를 이용한 대외계업무 수행방법
US6990528B1 (en) * 2000-10-19 2006-01-24 International Business Machines Corporation System area network of end-to-end context via reliable datagram domains
US6941350B1 (en) 2000-10-19 2005-09-06 International Business Machines Corporation Method and apparatus for reliably choosing a master network manager during initialization of a network computing system
US7113995B1 (en) 2000-10-19 2006-09-26 International Business Machines Corporation Method and apparatus for reporting unauthorized attempts to access nodes in a network computing system
US6981025B1 (en) 2000-10-19 2005-12-27 International Business Machines Corporation Method and apparatus for ensuring scalable mastership during initialization of a system area network
US7099955B1 (en) 2000-10-19 2006-08-29 International Business Machines Corporation End node partitioning using LMC for a system area network
US7636772B1 (en) 2000-10-19 2009-12-22 International Business Machines Corporation Method and apparatus for dynamic retention of system area network management information in non-volatile store
US20020073257A1 (en) * 2000-12-07 2002-06-13 Ibm Corporation Transferring foreign protocols across a system area network
KR20030000378A (ko) * 2001-06-23 2003-01-06 정우협 마우스에 의한 컴퓨터 볼륨(음량)조절에 대한 방법
US20030220987A1 (en) * 2002-05-21 2003-11-27 Aviation Communication & Surveillance Systems, Llc System and method with environment memory for input/output configuration
DE10248672B4 (de) * 2002-10-18 2016-02-11 Robert Bosch Gmbh Verfahren zur Übertragung von Daten auf einem Bus
KR100442372B1 (ko) * 2002-10-28 2004-07-30 엘지전자 주식회사 데이터 전송 장치 및 방법
US20050135612A1 (en) * 2003-12-19 2005-06-23 Evans Alan F. Secure digital communication
US7783769B2 (en) 2004-03-31 2010-08-24 Intel Corporation Accelerated TCP (Transport Control Protocol) stack processing
JP4568021B2 (ja) * 2004-04-05 2010-10-27 株式会社日立製作所 コマンド多重数監視制御方式を運用するコンピュータシステム
US7634584B2 (en) * 2005-04-27 2009-12-15 Solarflare Communications, Inc. Packet validation in virtual network interface architecture
JP5120765B2 (ja) * 2006-12-26 2013-01-16 日本電気株式会社 並列計算機システム
WO2012131806A1 (en) * 2011-03-28 2012-10-04 Nec Corporation Retransmission control system and retransmission control method
CN110943941B (zh) * 2019-12-06 2022-03-11 北京天融信网络安全技术有限公司 一种报文接收方法、网卡及电子设备

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1984003192A1 (en) * 1983-02-07 1984-08-16 American Telephone & Telegraph Data network interface
US4654654A (en) * 1983-02-07 1987-03-31 At&T Bell Laboratories Data network acknowledgement arrangement
US5365519A (en) * 1991-03-05 1994-11-15 Hitachi, Ltd. ATM switch1ng system connectable to I/O links having different transmission rates
JPH0329048A (ja) * 1989-06-27 1991-02-07 Fujitsu Ltd データ転送方式
JPH0418652A (ja) * 1990-05-11 1992-01-22 Seiko Epson 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
US5379295A (en) * 1990-07-31 1995-01-03 Nec Corporation Cross-connect system for asynchronous transfer mode
US5371868A (en) * 1990-08-20 1994-12-06 Digital Equipment Corporation Method and apparatus for deriving addresses from stored address information for use in identifying devices during communication
US5164938A (en) * 1991-03-28 1992-11-17 Sprint International Communications Corp. Bandwidth seizing in integrated services networks
US5321695A (en) * 1991-05-01 1994-06-14 Hewlett-Packard Company Port arrival identification for computer network packets
US5398245A (en) * 1991-10-04 1995-03-14 Bay Networks, Inc. Packet processing method and apparatus
FI88841C (fi) * 1991-10-30 1993-07-12 Nokia Telecommunications Oy Foerfarande foer att behandla dataoeverfoeringsramar av vaexlande laengd med en kanalstyrenhet och foer att placera desamma till ett cykliskt buffertminne
AU2912692A (en) * 1991-11-08 1993-06-07 Ernest Stewart Lee Cryptographic apparatus and method for a data communication network
US5347514A (en) * 1993-03-26 1994-09-13 International Business Machines Corporation Processor-based smart packet memory interface

Also Published As

Publication number Publication date
US5617424A (en) 1997-04-01
KR950009452A (ko) 1995-04-24
EP1289221A2 (de) 2003-03-05
JPH0778112A (ja) 1995-03-20
JP3473975B2 (ja) 2003-12-08
EP0642246A3 (de) 1995-12-13
EP0642246A2 (de) 1995-03-08
KR100326864B1 (ko) 2002-06-22
DE69433293D1 (de) 2003-12-11
EP1289221A3 (de) 2005-07-13
EP0642246B1 (de) 2003-11-05

Similar Documents

Publication Publication Date Title
DE69433293T2 (de) Netzwerkübertragungsverfahren für Systeme mit virtuellem Speicher
DE69628631T2 (de) Dateneingangs/-ausgangsvorrichtung durch Referenzierung zwischen zentralen Verarbeitungseinheiten und Ein-/Ausgabevorrichtungen
DE3114961C2 (de)
DE69533230T2 (de) Verfahren und vorrichtung zur verbesserung der fehlertoleranz eines netzwerkes
DE60203380T2 (de) Verfahren und vorrichtung zur mehrfachsendung
DE69826930T2 (de) System und Verfahren zur wirksamen Fernplatte Ein-/Ausgabe
DE60212626T2 (de) Endknotenunterteilung mittels lokaler identifikatoren
DE2854485C2 (de) Datenverarbeitungsanlage
DE112020002501T5 (de) System und verfahren zur erleichterung eines effizienten lastausgleichs in einer netzwerkschnittstellensteuerung (nic)
DE60030767T2 (de) Datenzuweisung zu threads in einem multi-threaded netzwerkprozessor
DE60201682T2 (de) Anordnung zur erzeugung mehrerer virtueller warteschlangenpaare aus einer komprimierten warteschlange auf der basis gemeinsamer attribute
DE112013006063B4 (de) Funktionsübernahme für einen Datenübertragungskanal in einem Netzwerk mit Hochleistungsdatenverarbeitung
DE60222656T2 (de) Vorrichtung und verfahren für effizientes multicasting von datenpaketen
DE69836778T2 (de) Vorrichtung und Verfahren zur Fernpufferspeicherzuordnung und Verwaltung für Nachrichtenübertragung zwischen Netzknoten
DE3642324C2 (de) Multiprozessoranlage mit Prozessor-Zugriffssteuerung
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE69628798T2 (de) Verfahren zur Übertragung von Multimediadaten
DE4208924A1 (de) Verfahren zur kommunikation zwischen prozessoren und parallelverarbeitungscomputer hierfuer
DE112017001808T5 (de) Technologien für einen verteilten hardwarewarteschlangenmanager
CH634940A5 (en) Channel-adapter arrangement
DE60109060T2 (de) Interkommunikationsvorprozessor
DE102015102692A1 (de) Verfahren zum Optimieren von Netzdatenströmen in einem eingeschränkten System
DE102008030587A1 (de) Verfahren und Vorrichtung zur Erhöhung der Effizienz der Interrupt-Lieferung zur Laufzeit in einem Netzwerksystem
DE60038703T2 (de) Asynchrone Datenübertragung
DE1549437A1 (de) Datenverarbeitendes System aus mehreren miteinander verbundenen Datenverarbeitungsanlagen

Legal Events

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