DE69827843T2 - Nachrichtenpufferung für ein computerbasiertes Netzwerk - Google Patents

Nachrichtenpufferung für ein computerbasiertes Netzwerk Download PDF

Info

Publication number
DE69827843T2
DE69827843T2 DE69827843T DE69827843T DE69827843T2 DE 69827843 T2 DE69827843 T2 DE 69827843T2 DE 69827843 T DE69827843 T DE 69827843T DE 69827843 T DE69827843 T DE 69827843T DE 69827843 T2 DE69827843 T2 DE 69827843T2
Authority
DE
Germany
Prior art keywords
buffer
message
messages
receive
counter
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
DE69827843T
Other languages
English (en)
Other versions
DE69827843D1 (de
Inventor
D. Richard PRIBNOW
T. Michael BYE
G. James BRAVATTO
Theodore John KLINE
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.)
Graphics Properties Holdings Inc
Original Assignee
Silicon Graphics Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Silicon Graphics Inc filed Critical Silicon Graphics Inc
Application granted granted Critical
Publication of DE69827843D1 publication Critical patent/DE69827843D1/de
Publication of DE69827843T2 publication Critical patent/DE69827843T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft Computersysteme und insbesondere ein netzwerkbasiertes Computersystem.
  • Hintergrund
  • Modulare, stark verbundene Computernetzwerksysteme ermöglichen das Austauschen von Daten zwischen individuellen Knoten in. dem Netzwerk und das gemeinsame Verwenden von Hardware-Ressourcen. Viele Netzwerke bewegen große Datenmengen und viele Nachrichten zwischen den Netzwerkknoten. Infolge des großen Umfangs der Datenbewegung in einem solchen System kann der Kommunikationsverkehr zwischen den Knoten gestaut werden. Nachrichten und Daten werden in abgeschlossenen Paketen gesendet, die die erforderliche Adresse, den erforderlichen Befehl und die erforderlichen Daten aufweisen. Pakete können über mehrere Zwischenknoten von einer Quelle zu einem Ziel gesendet werden. Hierdurch wird Zeit gespart und werden Staus vermieden, weil die Prozessoren nicht darauf warten, dass jede Nachricht über die Länge des Netzwerks läuft, bevor das nächste Paket gesendet wird.
  • Es sind noch Probleme mit Nachrichten verbunden, die in einem Computernetzwerksystem von einer Quelle zu einem Ziel gesendet werden. Eines der Probleme besteht darin, dass Wartezeiten oder Verzögerungen in Prozessoren hervorgerufen werden können, die entweder die Quelle oder das Ziel für mehrere Nachrichten sind. Gegenwärtig erzeugt jedes Nachrichtenpaket beim Empfang einen Interrupt. Der Prozessor muss auf jeden Interrupt antworten, bevor die nächste Nachricht empfangen werden kann. Dies ist bei vielen Computersystemen kein Problem. Bei netzwerkbasierten Systemen müssen von einem Prozessor jedoch möglicherweise mehrere Nachrichten zu einer gegebenen Zeit empfangen werden. Mehrere Nachrichten erzeugen mehrere Interrupts. In dem Fall, in dem mehrere Nachrichten in etwa gleichzeitig an einem Prozessor ankommen, ist die CPU nur in der Lage, die Nachrichten seriell abzuwickeln und muss auf einen Interrupt für eine erste Nachricht antworten und den Interrupt abarbeiten, bevor auf den nächsten Nachrichteninterrupt geantwortet und dieser abgearbeitet werden kann. Wenn mehrere Nachrichten an einer CPU ankommen, kann die CPU übermäßig viel Zeit dafür aufwenden, die den Nachrichten zugeordneten verschiedenen Interrupts zu verarbeiten. Dieses Problem ist in einem netzwerkbasierten System verstärkt, in dem es üblicher ist, dass eine bestimmte CPU mehrere Nachrichten verarbeiten muss. Wenn eine CPU oder ein Prozessor eine Anzahl von Nachrichten abarbeiten muss, kann in dem bestimmten Computersystem viele Male eine Wartezeit herbeigeführt werden. Mit anderen Worten verbringt die CPU, die mehrere Nachrichten abarbeiten muss, mehr Zeit damit, Interrupts abzuarbeiten, die den mehreren Nachrichten zugeordnet sind, als andere Operationen auszuführen. Die anderen Operationen können daher verzögert werden, was als Wartezeit infolge eines Zusatzaufwands des Systems bezeichnet wird und zu einer erhöhten Antwortzeit eines bestimmten Prozessors führt. Es besteht ein Bedarf an einem Prozessor für die Verwendung in einem Netzwerksystem, der mehrere Nachrichten wirksam empfangen und behandeln kann. Es besteht auch ein Bedarf an einer CPU, die mehrere Nachrichten in einem Strom behandeln kann und mehrere Nachrichten in einem Durchgang durch das Betriebssystem behandeln kann. Es besteht auch ein Bedarf an einem System oder einer CPU, wodurch mehrere Nachrichten mit einem Interrupt behandelt werden können. Ein solches System könnte prüfen, ob zusätzliche Nachrichten angekommen sind, während ein erster Interrupt für eine Nachricht verarbeitet wird. Es besteht auch ein Bedarf an einer CPU, die weniger Zeit damit verbringt, mehrere Interrupts von mehreren Nachrichten abzuarbeiten, und die einen größeren Teil ihrer Zeit für andere Aufgaben aufwendet. Es besteht auch ein Bedarf an einem Computersystem, der einen verkleinerten Befehlssatz für das Behandeln des Empfangs von Paketen oder Nachrichten von einem Netzwerk aufweist. Es besteht auch ein Bedarf an einem wirksameren Weg für das Senden von Nachrichten zu einem Client-Zielcomputer im Netzwerk und für das Empfangen von Nachrichten oder Paketen von dem Netzwerk. Ein solches System würde Nachrichten wirksamer behandeln, wodurch ein Netzwerk mit einer erhöhten Geschwindigkeit und einem kleineren Zusatzaufwand in Bezug auf einen Befehlssatz und die verwendeten Taktzyklen erzeugt wird.
  • In EP-A-646 876 ist ein Nachrichtenweiterleitungssystem für ein verteiltes, gemeinsam verwendetes Speicher-Mehrfachprozessorsystem beschrieben, wobei den verteilten gemeinsam verwendeten Speichern allen Prozessormodulen gemeinsame globale Adressen zugewiesen sind und die Adressen des verteilten gemeinsam verwendeten Speichers jedes Prozessormoduls mit dem verteilten gemeinsam verwendeten Speicher jedes Prozessormoduls, das das Ziel der Datenübertragung ist, gemeinsam verwendet werden. Nachrichtenpuffer und Nachrichtensteuerbereiche in dem verteilten gemeinsam verwendeten Speicher sind in Bereiche unterteilt, die durch eine Kombination sendender und empfangender Prozessormodule spezifiziert sind.
  • Gemäß einem Aspekt sieht die vorliegende Erfindung ein Verfahren zum Abwickeln der Kommunikation von und zu einem einem Prozessor zugeordneten Speicher mit einem oder mehreren Eingabepuffern und einem Ausgabepuffer, wobei der Prozessor an ein Computernetzwerk angeschlossen ist, vor, wobei das Verfahren durch die folgenden Schritte gekennzeichnet ist:
    Empfangen einer Nachricht in einem Empfangspuffer und Erzeugen eines die empfangene Nachricht anzeigenden Interrupts,
    Empfangen mindestens einer zusätzlichen Nachricht im Empfangspuffer, ohne zusätzliche Interrupts für diese weiteren empfangenen Nachrichten zu verwenden,
    Erhöhen eines Empfangseingabezählers beim Empfang einer Nachricht im Empfangspuffer, indem die Länge der Nachricht zum Empfangseingabezähler addiert wird, um einen Empfangspuffer-Begrenzungszählerwert zu erzeugen,
    Addieren der Länge jeder vom Empfangspuffer gesendeten Nachricht zu einem zweiten Empfangszähler, um einen Empfangspuffer-Anfangswert zu erzeugen, und
    Senden von Nachrichten vom Empfangspuffer, bis der Empfangspuffer-Anfangswert auf den Empfangspuffer-Begrenzungswert erhöht wurde.
  • Gemäß einem weiteren Aspekt sieht die vorliegende Erfindung ein Computernetzwerksystem mit mehreren Netzwerkknoten, wobei jeder Netzwerkknoten einen Client-Computer enthält, der durch Paketnachrichten kommuniziert, und mit einer Kommunikationssteuerung, die den Client-Computer mit dem Computernetzwerk verbindet, wobei die Kommunikationssteuerung ferner einen Nachrichtenempfangspuffer enthält, vor, wobei das System dadurch gekennzeichnet ist, dass es ferner aufweist:
    einen dem Nachrichtenempfangspuffer zugeordneten Empfangseingabe-Pufferzähler, wobei die Kommunikationssteuerung für das Erhöhen des Empfangseingabe-Pufferzählers beim Empfang der Nachricht im Empfangspuffer eingerichtet ist, um einen der letzten Adresse der letzten empfangenen Nachricht zugeordneten Empfangspuffer-Zählerbegrenzungswert zu erzeugen,
    einen dem Nachrichtenempfangspuffer zugeordneten zweiten Pufferzähler, wobei die Kommunikationssteuerung für das Senden von Nachrichten vom Empfangspuffer eingerichtet ist, bis der zweite Empfangspufferzähler auf den Empfangspuffer-Zählerbegrenzungswert erhöht wurde, wobei das System für das Erzeugen eines Interrupts beim Empfang einer ersten Nachricht im Empfangspuffer und für das Empfangen mindestens einer zusätzlichen Nachricht im Empfangspuffer eingerichtet ist, ohne zusätzliche Interrupts für diese weiteren empfangenen Nachrichten zu verwenden, bis der zweite Empfangspufferzähler auf den Empfangsbegrenzungswert erhöht wurde.
  • Gemäß einem weiteren Aspekt sieht die vorliegende Erfindung eine Kommunikationssteuerung vor, die einen Empfangspuffer und eine dem Empfangspuffer zugeordnete Empfangspuffersteuerung aufweist, dadurch gekennzeichnet, dass
    die Empfangspuffersteuerung für das Erhöhen eines dem Empfangspuffer zugeordneten Zählers auf eine neue letzte Adresse des Empfangspuffers eingerichtet ist, wenn eine zweite Nachricht empfangen wird, bevor ein Interrupt für eine erste Nachricht gelöscht wurde.
  • Gemäß einem weiteren Aspekt sieht die vorliegende Erfindung ein Verfahren für das Abwickeln der Kommunikation von und zu einem einem Prozessor zugeordneten Speicher mit mehreren Eingabepuffern und einem Ausgabepuffer, wobei der Prozessor an ein Computernetzwerk angeschlossen ist, vor, wobei das Verfahren durch die folgenden Schritte gekennzeichnet ist:
    Empfangen einer Nachricht in einem Sendepuffer,
    Empfangen mindestens einer zusätzlichen Nachricht im Sendepuffer, ohne zusätzliche Interrupts für diese weiteren empfangenen Nachrichten zu verwenden,
    Erhöhen eines Sendepuffer-Eingabezählers beim Empfangen der Nachricht im Sendepuffer, indem die Länge der Nachricht zum Sendepuffer-Eingabezähler addiert wird, um einen Sendepuffer-Begrenzungswert zu erzeugen,
    Addieren der Länge jeder vom Sendepuffer gesendeten Nachricht zu einem zweiten Sendepufferzähler, um einen Sendepuffer-Anfangswert zu erzeugen, und
    Senden von Nachrichten vom Sendepuffer, bis der Sendepuffer-Anfangswert auf den Sendepuffer-Begrenzungswert erhöht wurde.
  • Ein Computer zur Verwendung in einem Netzwerksystem hat eine Kommunikationssteuerung zum Steuern des Empfangs und des Sendens von Paketen oder Nachrichten an jedem Client- Computer. Die jedem Client-Computer zugeordnete Schnittstelle weist einen Sendenachrichtenpuffer und einen Empfangsnachrichtenpuffer auf. Der Sendenachrichtenpuffer hat einen Sendenachrichten-Pufferzähler, der ansprechend auf den Empfang von Nachrichten vom Client-Computer für das Senden auf dem Ringnetzwerk erhöht wird. Die Kommunikationssteuerung sendet Nachrichten vom Sendepuffer, bis der Sendenachrichten-Pufferzähler die Adresse oder einen Wert erreicht, die oder der der letzten empfangenen Nachricht zugeordnet ist. Ähnlich weist der Empfangsnachrichtenpuffer einen Empfangsnachrichten-Pufferzähler auf, der zu einem Empfangsnachrichtenpuffer-Zählerwert erhöht wird, wenn jede Nachricht empfangen wird. Der Empfangsnachrichtenpuffer wird geleert, bis der Empfangsnachrichtenpuffer-Zählerwert erreicht wurde. Der Empfangspuffer kann auch einen aktiven und einen inaktiven Abschnitt aufweisen. Diese können auch als ein Vordergrundabschnitt und ein Hintergrundabschnitt bezeichnet werden. Die Kommunikationssteuerung schaltet fortlaufend zwischen dem aktiven und dem inaktiven Abschnitt des Speichers um und kennzeichnet jeden Speicherabschnitt nach dem Umschalten neu. Die Kommunikationssteuerung kann auch Prioritätsschemata für die Nachrichten erkennen.
  • Vorteilhafterweise lässt die Kommunikationssteuerung minimale Störungen zu, wenn Nachrichten übertragen werden. Die Kommunikationssteuerung ermöglicht auch ein minimales Unterbrechen dieses Prozessors, wenn Nachrichten in einen Empfangspuffer oder einen Sendepuffer übertragen oder von diesen ausgesendet werden. Weil die Kommunikationssteuerung einen Empfangspaketzähler (RPC) innerhalb des Empfangspuffers erhöht, wenn Nachrichten in einen Puffer eingegeben werden, um einen Zähler mit einer zugeordneten Adresse oder einem zugeordneten Wert zu erzeugen, wodurch die letzte empfangene Nachricht wiedergegeben wird, braucht die Kommunikationssteuerung, wenn Ausgaben vom Sendepuffer zu senden sind, lediglich Nachrichten zu senden, bis der Wert des Zählers gleich dem Wert ist, der der Begrenzungsadresse für eine bestimmte Nachricht zugeordnet ist. Wenn der Zählerwert der Adresse gleicht, die der Grenze der Nachricht zugeordnet ist, unterbricht die Kommunikationssteuerung das Senden von Nachrichten. Der Vorteil besteht darin, dass in der Vergangenheit verschiedene Hinweiszeichen und Interrupts verwendet werden mussten, um anzugeben, wenn eine einzige Nachricht vollständig war. Wenn beispielsweise vier Nachrichten gesendet werden mussten, wurden vier Interrupts vom Prozessor der Kommunikationssteuerung verarbeitet, um die vier Nachrichten zu empfangen. Bei der vorliegenden Kommunikationssteuerung wird Zeit gespart, weil die in den Puffer eingegebenen Nachrichten nicht die Verarbeitung eines Interrupts erfordern. Die Nachrichten werden empfangen, und es wird ein RPC-Zähler erhöht, um den Empfang der Nachricht wiederzugeben. Daher können mehrere Nachrichten verarbeitet werden, nachdem mit der Verarbeitung eines anfänglichen Interrupts begonnen worden ist. Die anschließenden Nachrichten brauchen keinen Interrupt zu verarbeiten. Falls anschließende Nachrichten im Speicher empfangen werden, kann der RPC erhöht werden, bevor die CPU den vorhergehenden Interrupt beendet. Infolge des gleichen Mittels ist es nicht erforderlich, dass eine Anzahl von Nachrichtenende-Interrupts verarbeitet wird, wenn Nachrichten vom Sendepuffer ausgesendet werden. Das Endergebnis besteht darin, dass mehrere Nachrichten oder Pakete bei einem minimalen Zusatzaufwand und einer minimalen Verarbeitung in die Empfangspuffer gesendet oder von diesen empfangen werden können.
  • Kurzbeschreibung der Zeichnung
  • 1 ist ein Blockdiagramm mehrerer über ein Netzwerk verbundener Client-Computer,
  • 2 ist ein Blockdiagramm einer Ringnetzwerktopologie, die in dem System aus 1 verwendet werden könnte,
  • 3 zeigt ein Peripheriekanal-Ringnetzwerk mit vier Knoten,
  • 4 zeigt ein schematisches Diagramm einer in einem Ringnetzwerk verwendeten Schnittstellenvorrichtung,
  • 5 ist ein Flussdiagramm, in dem die Schritte für die Kommunikationssteuerung beim Empfangen von Nachrichten oder Paketen innerhalb eines Puffers dargestellt sind,
  • 6 ist ein Flussdiagramm, in dem die Schritte zusätzlich zu den in 5 dargestellten für das Abwickeln der Kommunikation in einem Nachrichtenempfangspuffer dargestellt sind, wobei der Nachrichtenempfangspuffer einen Vordergrund- und einen Hintergrundbereich im Speicher aufweist,
  • 7 ist ein Flussdiagramm zur Ausgabe von Nachrichten aus einem Puffer,
  • 8 ist ein Blockdiagramm mehrerer Register, die mehreren Kanälen eines Ringnetzwerks zugeordnet sind, und
  • 9 ist ein Blockdiagramm der Transferinformationsregister aus 8.
  • Detaillierte Beschreibung
  • In der folgenden detaillierten Beschreibung wird auf die anliegende Zeichnung Bezug genommen, in der zur Erläuterung spezifische Ausführungsformen dargestellt sind, in denen die Erfindung verwirklicht werden kann. Diese Ausführungsformen werden in ausreichenden Einzelheiten beschrieben, um es Fachleuten zu ermöglichen, die Erfindung zu verwirklichen und zu verwenden, und es ist zu verstehen, dass auch andere Ausführungsformen verwendet werden. können und dass Änderungen vorgenommen werden können, ohne vom in den anliegenden Ansprüchen dargelegten Schutzumfang der vorliegenden Erfindung abzuweichen.
  • 1 zeigt ein allgemeines Computernetzwerksystem mit mehreren als Knoten 110 bezeichneten Computervorrichtungen, die über eine Kommunikationsleitung 130 mit dem Netzwerk 120 verbunden sind. 2 zeigt eine mögliche Topologie eines solchen Computernetzwerksystems. Hierbei sind die Knoten 210 durch die Kommunikationsleitung 220 so verbunden, dass ein Ringnetzwerk gebildet ist. Pakete können auf der Kommunikationsleitung 220 in beiden Richtungen gesendet werden. Die Kommunikationsleitung 220 kann ein beliebiges Übertragungsmedium, einschließlich einer Leitung mit verdrillten Paaren, eines Koaxialkabels oder einer Lichtleitfaser, sein. Das Bewegen von Daten in beiden Richtungen entlang den Kommunikationsleitungen erfordert jedoch ein hohes Maß an Steuerung, um Datenkollisionen zu vermeiden.
  • Es sei bemerkt, dass, wenngleich in dieser Anmeldung ein Ringnetzwerk als eine als Beispiel dienende Umgebung für diese Erfindung beschrieben ist, die Erfindung auch für einen beliebigen Typ einer Computernetzwerkkonfiguration verwendet werden kann.
  • Ein Weg zum Verringern des erforderlichen Ausmaßes der Verkehrssteuerung besteht darin, die Kommunikationsleitung 220 als zwei getrennte unidirektionale Leitungen zu implementieren. Dieser Ansatz ist in 3 dargestellt. 3 zeigt einen Dualring-Peripheriekanal 380, in dem sich der Verkehr in einem Ring im Uhrzeigersinn und im anderen Ring entgegen dem Uhrzeigersinn bewegt. Hierdurch wird der auf der Kommunikationsleitung erforderliche Vereinbarungsaufwand erheblich verringert, weil sich alle Daten als Einzeldatei in dieselbe Richtung bewegen. Die Redundanz, die durch die Doppelringe und ihre sich entgegengesetzt drehende Orientierung bereitgestellt wird, ermöglicht das Fortsetzen des Betriebs während des Hinzufügens, Entfernens oder Hot-Swapping von Client-Knoten oder bei Vorhandensein einer fehlerhaften Verbindung oder eines fehlerhaften Knotens. Hierdurch wird das Netzwerk sehr fehlertolerant gemacht.
  • Der Peripheriekanal 380 weist eine Anzahl von Knoten 310 auf, die miteinander durch entgegengesetzt drehende Ringe 360 und 370 verbunden sind. Jeder Knoten 310 weist einen Client 320 und eine Schnittstellenvorrichtung 330 auf. Gemäß einer Ausführungsform kann die Schnittstellenvorrichtung 330 als ein einziger ASIC implementiert werden. Die Schnittstellen vorrichtung 330 könnte auch als eine Computerplatine oder als eine externe Vorrichtung implementiert werden, welche den Client und den Peripheriekanal 380 über ein Kabel verbindet. Der Client 320 kann ein allein stehender Computer oder eine Workstation sein. Der Client 320 könnte auch eine Peripherievorrichtung in der Art eines Plattenfelds sein. Bei einem System kommuniziert der Clientcomputer 320 über den Peripheriekanal 380 mit Massenspeichervorrichtungen. Gemäß einer anderen Ausführungsform kommuniziert ein massiv paralleles Verarbeitungssystem (MPP) mit anderen Computersystemen und mit dem Massenspeicher über den Peripheriekanal 380. Bei einer solchen Ausführungsform ist die Schnittstellenvorrichtung 330 über eine E/A-Steuerung mit Prozessoren innerhalb des MPP-Systems verbunden. Bei einer Ausführungsform enthält die Schnittstellenvorrichtung 330 einen 32-Bit-breiten Kanalport 350 für jeden der Dualnetzwerkkanäle und eine 64-Bit-breite bidirektionale Clientportschnittstelle 340 zur Kommunikation mit dem Client 320. Gemäß einer Ausführungsform sind die Ringe 360 und 370 in der gleichen Weise implementiert, in der ein einzelner Ring in einer skalierbaren Kanalschnittstelle implementiert ist. Es könnten auch andere Verbindungsverfahren verwendet werden, ohne vom Schutzumfang der Erfindung abzuweichen.
  • Bei einer Ausführungsform werden die Ringe 360 und 370 für aktiven Datenverkehr verwendet. Sie arbeiten unabhängig und wirken nur an den Portschnittstellen zusammen. Der Verkehr wird zwischen den beiden Ringen nicht umgeschaltet. Dadurch, dass zwei aktive Ringe bereitgestellt sind, ist die Datenübertragungsrate gegenüber einem Netzwerk mit einem einzigen Ring erhöht.
  • 4 ist ein Blockdiagramm eines Abschnitts eines Clients 320, der mit dem Client-Port 340 verbunden ist. Der Abschnitt des Clients 320 ist ein Blockdiagramm der Nachrichtenabwicklungshardware 400, die eingehende und abgehende Nachrichten oder Pakete abwickelt. Die Nachrichtenabwicklungshardware 400 ist Teil der Kommunikationssteuerung.
  • Wie in 4 dargestellt ist, weist der Client 320 einen Prozessor 410 und einen Speicher 420 auf. Der Speicher 420 weist einen Sendepuffer 480 und einen Empfangspuffer 470.1 sowie einen Empfangspuffer 470.2 auf. Jeder der Puffer 470.1, 470.2 und 480 sind Puffer, die innerhalb des Speichers durch Register, die auf die aktuelle Adresse und die Begrenzungsadresse zeigen, relativierbar sind. Jeder dieser Puffer hat einen Zähler, der die aktuelle Adresse liest, und einen Zähler, der die Begrenzungs- oder Endadresse liest. Es sei bemerkt, dass der Sendepuffer 480 auch als ein Paar von Sendepuffern ähnlich den Empfangspuffern 470.1 und 470.2 eingerichtet werden könnte. Das Nachrichtenabwicklungssystem 400 weist eine Nachrichtenausgangssteuerung 430 und eine Nachrichteneingangssteuerung 440 auf. Sowohl die Nachrichteneingangssteuerung 440 als auch die Nachrichtenausgangssteuerung 430 weisen zweckgebundene Hardware und Software auf, die der Steuerung hoher Ebene durch den Prozessor 410 unterliegen. Zum Abwickeln vom Sendepuffer 480 gesendeter Nachrichten leitet die CPU beispielsweise den Auftrag einfach an die Nachrichtenausgangssteuerung 430 weiter, die auch als CH 21 bezeichnet wird. Die Nachrichtenausgangssteuerung ist dem Abwickeln der Nachrichtenausgabe aus dem Puffer 480 zugewiesen und weist zweckgebundene Hardware und Software zum Erreichen dieser Aufgabe oder der damit verbundenen Aufgaben auf. Ähnlich weist die Nachrichteneingangssteuerung 440 Hardware und Software auf, die für das Abwickeln der Nachrichteneingabe vom Client-Port 340, während die Nachrichten in die Empfangspuffer 470.1 und 470.2 im Speicher 420 laufen, vorgesehen sind. Die Nachrichtenausgangssteuerung 430 steuert auch einen Nachrichten-FIFO 432. Der Nachrichten-FIFO empfängt vom Sendepuffer 480 gesendete Nachrichten und hält sie fest, um sie zum Client-Port 340 zu senden. Ähnlich steuert die auch als CH 20 bekannte Nachrichteneingangssteuerung 440 einen Nachrichten-FIFO 442, der Nachrichten vom Client-Port empfängt und sie im Empfangspuffer 470.1 oder 470.2 platziert. Es sei bemerkt, dass das System in der Lage ist, einen Staudruck auf eine Ursprungsstelle auszuüben, falls einer der FIFOs 442 und 432 voll werden sollte. Falls ein Ursprungscomputer beispielsweise Nachrichten sendet, die für einen bestimmten Client bestimmt sind, kann der diesem Client zugeordnete Nachrichten-FIFO 442 voll werden oder nahezu voll werden. Um zu gewährleisten, dass keine Nachrichten verloren gehen, kann eine Nachricht zum Ursprungscomputer gesendet werden, um zu verhindern, dass er Nachrichten zu dem speziellen Ziel sendet. Der Client 320 ist über den bidirektionalen Client-Port 340 mit der Schnittstellenvorrichtung 330 verbunden.
  • Der Verkehr im Peripheriekanal 380 ist in Pakete organisiert, die von einem Ursprungsknoten zu einem Zielknoten gesendet werden. Ein Paket wird auf einem der Kanalringe übertragen, wobei es über die Zwischenknoten läuft, bis es den Zielknoten erreicht. Der Zielknoten entfernt das Paket aus dem Kanal und antwortet mit einem Echopaket. Der Ursprungsknoten behält eine Kopie des gesendeten Pakets, bis er das entsprechende Echopaket empfängt. Das Echo informiert die Quelle, ob das gesendete Paket am Zielknoten erfolgreich empfangen wurde, oder ob er belegt war. Falls das Paket akzeptiert wurde, gibt der Ursprungsknoten den vom gesendeten Paket belegten Pufferplatz frei. Falls das Paket belegt war, sendet der Ursprungsknoten das Paket erneut.
  • Pakete, die in die Knoten-Schnittstellenvorrichtung 330 eintreten, durchlaufen zuerst den Phasenkorrektor und Decodierer, um die Pakete mit der Umgebung der Schnittstellenvorrichtung auszurichten. Die Pakete werden dann von einem Parser interpretiert und entweder durch den Knoten geleitet oder von der Schnittstellenvorrichtung 330 entnommen und in Empfangspuffer 470 geleitet. Pakete, die vom Client 320 ankommen, werden in einem aktiven Sendepuffer 480 zusammengestellt und durchlaufen den Client-Port 340, bevor sie in den Peripheriekanal 380 selbst eintreten.
  • Der Peripheriekanal 380 und die Schnittstellenvorrichtung 330 können auch als ein Dualringsystem oder als ein Einzelringsystem konfiguriert sein. Der Client 320 verwendet ein Kommunikationssteuersystem zum Verwalten des Empfangens und Sendens von Paketen, die über die Client-Schnittstelle 340 in die Schnittstellenvorrichtung 330 laufen und von dieser kommen. Unabhängig davon, ob das Netzwerksystem ein Einzelringsystem, ein Dualringsystem oder ein Mehrfachringsystem ist, steuert das Kommunikationssteuersystem die Empfangspuffer 470 für das Empfangen von Paketen oder Nachrichten vom Kanal 310 und zum Ausgeben dieser Nachrichten oder Pakete an den Client über den Client-Port 340 in der gleichen Weise. Ähnlich steuert das Kommunikationssteuersystem auch die Sendepuffer 480 zum Senden von Nachrichten vom Client 320 zum Client-Port 340 und zur Schnittstellenvorrichtung 330 des Netzwerks. Die Kommunikationssteuerung kann auf eine Anzahl von Arten implementiert werden. Bei diesem bestimmten System ist die Kommunikationssteuerung im Betriebssystem eines Prozessors in dem Client-Computer, der der Aufgabe zugeordnet ist, konfigurierbar.
  • Diese Erfindung konzentriert sich auf die Steuerung der Empfangspuffer 470 und der Sendepuffer 480. Der allgemeine Betrieb sowohl der Empfangspuffer 470 als auch der Sendepuffer 480 wird zuerst erörtert. Nach dieser allgemeinen Erörterung des allgemeinen Betriebs werden die spezifischen Befehlssätze dargelegt.
  • Steuerung von Empfangs- und Sendepuffern
  • Der allgemeine Betrieb der Empfangspuffer 470 und der aktiven Sendepuffer 480 wird nun anhand des in 5 dargestellten Flussdiagramms erörtert. 5 ist ein Flussdiagramm, in dem die Schritte dargestellt sind, die die Kommunikationssteuerung beim Empfangen von Nachrichten oder Paketen innerhalb eines Puffers, beispielsweise in der Nachrichtenausgangssteuerung 430 oder der Nachrichteneingangssteuerung 440, implementiert. Jedem Puffer 470.1, 470.2 oder 480 ist durch Software ein Platz im Speicher 420 zugewiesen, und seine Länge beträgt n Nachrichten. Wenn eine Nachricht empfangen wird, wird sie durch die Nachrichteneingangssteuerung 440 (CH 20) zum Puffer 470 hinzugefügt. Der Nachrichteneingangssteuerung 440 (CH 20) ist ein Paar von Zählern zugeordnet. Wenn jede Nachricht dem Puffer 470.1 hinzugefügt wird, wird einer der Zähler erhöht, um die Adresse anzugeben, an der die letzte Nachricht oder das letzte Paket gespeichert wurde. Wenn zusätzliche Pakete oder Nachrichten ankommen, wird der Zähler wieder erhöht, um eine neue Endadresse anzugeben, an der das letzte Paket oder die letzte Nachricht gespeichert wurde. Wenn eine neue Nachricht oder ein neues Paket im Puffer 470.1 platziert wird, wird sie bzw. es vorteilhafterweise lediglich im Puffer plaziert, statt dass es erforderlich wäre, einen Interrupt zu erzeugen, der von der CPU erkannt werden muss, bevor eine weitere Nachricht oder ein weiteres Paket im Puffer 470.1 plaziert wird. Dies ist vorteilhaft, weil zu jeder Zeit mehrere oder zahlreiche Nachrichten in einen Puffer 470.1 eingegeben werden können. Hierdurch wird der mit der Kommunikationssteuerung verbundene Zusatzaufwand verringert, weil nicht auf Interrupts geantwortet werden muss, um Nachrichten zu den Nachrichtenpuffern 470.1 hinzuzufügen. Hierdurch wird auch Zeit gespart, weil die Nachrichten einfach an einen Puffer 470.1 angehängt werden können und ein Zähler erhöht werden kann, um die der letzten Nachricht zugeordnete Adresse anzugeben.
  • Wie durch eine Bezugszahl 510 angegeben ist, besteht der Anfangsschritt darin zu bestimmen, ob eine Nachricht in den Puffer 470.1 eingegeben wird. Falls keine eingehende Nachricht oder kein eingehendes Paket vorhanden ist, wird nichts unternommen. Falls eine eingehende Nachricht vorhanden ist, reagiert die Steuerung 440 durch Senden der Nachricht zu 470.1. Der Interrupt wird dann, wie in Schritt 520 dargestellt ist, gesetzt, und der einem CR/CL-Register 470.1 zugeordnete RPC-Zähler wird erhöht, um die neue Adresse für die letzte Nachricht anzugeben, wie in Schritt 530 dargestellt ist. Der nächste Schritt, der durch eine Bezugszahl 540 angegeben ist, besteht darin zu bestimmen, ob zusätzliche Nachrichten empfangen worden sind. Falls keine zusätzlichen Nachrichten empfangen worden sind, wird der Puffer zurückgesetzt und wartet auf den nächsten Interrupt, wie durch die zu Schritt 510 zurücklaufende Linie dargestellt ist. Falls zusätzliche Nachrichten empfangen worden sind, werden die zusätzlichen Nachrichten zum Puffer hinzugefügt, und der der letzten Adresse zugeordnete Zähler wird dann erhöht, um die neue letzte Adresse anzugeben, die der letzten empfangenen Nachricht oder dem letzten empfangenen Paket zugeordnet ist, wie durch die Linie zu Schritt 530 dargestellt ist. Die in 5 dargestellten Schritte sind jedem Puffer in der Art des Empfangspuffers 470.1 zugeordnet, dem ein einziger Puffer zugeordnet ist. Jede Nachricht, die zu einem Empfangspuffer läuft, könnte einen Interrupt erzeugen, Software erlaubt es der CPU jedoch, Interrupts außer Acht zu lassen, die während eines Interrupts empfangen werden, weil gerade eine Nachricht verarbeitet wird. Durch die Verarbeitung mehrerer Nachrichten mit einem Interrupt wird die CPU davon befreit, andere Aufgaben zu behandeln, wodurch die mit der Ausführung der anderen Aufgaben verbundene Wartezeit verringert wird.
  • Bei einer bevorzugten Ausführungsform besteht jeder Empfangspuffer 470 aus mindestens zwei Puffern 470.1 und 470.2, die im Speicher zugeordnet sind. Dies ist vorteilhaft, weil dadurch eine nicht zusammenhängende Zuordnung von Speicher möglich ist. Typischerweise wird ein Abschnitt oder Puffer als Vordergrund bezeichnet, wie durch die Markierung FG am Puffer 470.1 dargestellt ist. Der Vordergrund ist der Abschnitt des Speichers, in dem Nachrichten oder Datenpakete empfangen werden. Sobald der Vordergrund oder Abschnitt des Speichers gefüllt wurde, fügt die Kommunikationssteuerung dem Hintergrund (durch die Markierung BG am Puffer 470.2 dargestellt) künftige Pakete hinzu und bringt den Hintergrund in den Vordergrund. Mit anderen Worten wird der Vordergrund, wenn er voll ist, zum Hintergrund gemacht oder gekennzeichnet, und der andere Speicherabschnitt, der zuvor als Vordergrund bezeichnet wurde, wird nun zum Vordergrund oder Abschnitt des Speichers gemacht.
  • 6 ist ein Flussdiagramm, in dem die Schritte dargestellt sind, die zusätzlich zu den in 5 dargestellten zum Abwickeln der Kommunikation in einem Nachrichtenempfangspuffer 470 mit einem ersten Speicherabschnitt und einem zweiten Speicherabschnitt oder mit zwei Puffern ausgeführt werden. Einer der Puffer 470.1 ist als Vordergrund gekennzeichnet, und der andere Puffer, der Empfangspuffer 470.2, ist als Hintergrund gekennzeichnet. Die Puffer lagern fortlaufend zwischen dem Vordergrund und dem Hintergrund um, wenn beide voll werden. Der Vordergrund ist der Ort, von dem aus die Übertragungen stattfinden. Der Hintergrund ist ein anderer Registersatz, an dem entweder gerade beendete letzte Übertragung oder die nächste Übertragung stattfindet. Nach einem Umschalten vom Vordergrund zum Hintergrund verarbeitet der Prozessor das letzte Paket bzw. die letzten Pakete und richtet dann den Hintergrund für die nächste Übertragung ein. Dies geschieht, während der Vordergrund Nachrichten überträgt. Die Inaktivität wird eingeleitet, nachdem die letzte Nachricht empfangen wurde und die Registereinstellung zu Hintergrund gewechselt ist. Die Inaktivität endet, wenn die CPU den Hintergrund für die nächste Übertragung einrichtet. Dies ist dann der Fall, wenn der Hintergrund aktiv wird. Es ist auf diese Weise möglich, dass sowohl der Vordergrund als auch der Hintergrund aktiv (oder inaktiv) sind. Es ist recht normal, wenn beide aktiv sind. Es ist nicht normal, wenn beide inaktiv sind. Wenn beide inaktiv sind, bedeutet dies, dass der Vordergrund keine Nachrichten empfangen kann. Dieses System lässt der CPU einen Zeitraum zum Einrichten des Hintergrunds, ohne dass die Befürchtung besteht, Nachrichten zu verlieren oder aufzuhalten.
  • Es sei bemerkt, dass der Empfangspuffer aus mehr als zwei Puffern bestehen könnte. Es könnten mehrere Vordergründe oder Hintergründe implementiert werden. Zusätzlich könnten auch mehrere Puffer als Sendepuffer verwendet werden. Der Sendepuffer 480 könnte aus einem Hintergrund und einem Vordergrund oder aus mehreren Vordergründen und mehreren Hintergründen bestehen.
  • Software führt den Interrupt aus und setzt die CA/CL-Register auf den inaktiven Hintergrund zurück und setzt sie auf aktiv zurück. Wie durch eine Bezugszahl 610 dargestellt ist, dient der erste Schritt der Bestimmung, ob der Vordergrundspeicher voll geworden ist. Falls dies nicht der Fall ist, werden in den Empfangspuffer 470 eingehende Nachrichten an den Vordergrundpuffer angehängt, wie in Schritt 620 dargestellt ist. Natürlich wird, wenn neue Nachrichten zum Vordergrund hinzugefügt werden, der dem Puffer zugeordnete Zähler erhöht, um die neue letzte Nachrichtenadresse anzugeben (in Schritt 530 in 5 dargestellt). Falls der Vordergrundspeicher voll geworden ist, schaltet die Kommunikationssteuerung zum Hintergrundspeicher um und fügt die neuen eingehenden Nachrichten dem Hintergrundspeicher hinzu, wie in Schritt 630 dargestellt ist. Sobald die Umschaltung zwischen dem Vordergrund und dem Hintergrund vorgenommen wurde, kennzeichnet die Kommunikationssteuerung den Vordergrund als den Hintergrund um, wie in Schritt 640 dargestellt ist. Ähnlich wird das, was zuvor der Hintergrund war, nun zum Vordergrund, wie Schritt 650 zeigt. Die Schritte 630, 640 und 650 können innerhalb der Kommunikationssteuerung im Wesentlichen gleichzeitig geschehen. Nach Schritt 650 geht die Kommunikationssteuerung zur Überwachung und Bestimmung, ob der Vordergrundspeicher voll geworden ist, zurück, wie in Schritt 610 dargestellt ist. Sobald der Vordergrundspeicher voll geworden ist, werden die Schritte 630, 640 und 650 wiederholt. Der Vordergrund- und der Hintergrundspeicher werden üblicherweise mit den Empfangspuffern 470 implementiert.
  • 7 zeigt ein Flussdiagramm zur Ausgabe von Nachrichten von einem Puffer in der Art der Sendepuffer 480. Wie vorstehend erwähnt wurde, sind jedem Puffer zwei Zähler zugeordnet. Wenn die Nachrichten gesendet werden, wird der erste Zähler erhöht, um die der letzten gesendeten Nachricht zugeordnete Adresse wiederzugeben. Der andere Zähler hält die Endadresse der letzten Nachricht, die gesendet werden muss, im Puffer. Dies ist die Begrenzungsadresse. Das Senden von Nachrichten oder Datenpaketen ist ein einfacher Prozess des Erhöhens des Anfangsadressenzählers, wenn jede Nachricht vom Puffer ausgegeben wird, um die dieser bestimmten Nachricht oder diesem bestimmten Paket zugeordnete Adresse wiederzugeben. Wenn der Anfangsadressenzähler bis zur Begrenzungsadresse der letzten Nachricht erhöht wird, weiß der Puffer, wie das Ausgeben von Nachrichten zu unterbrechen ist. Vorteilhafterweise können andere Nachrichten an den Puffer angehängt werden, wenn Nachrichten vom Puffer gesendet werden. Wenn eine Nachricht hinzugefügt wird, wird die Begrenzungsadresse erhöht, um die letzte Adresse wiederzugeben, die der letzten empfangenen Nachricht zugeordnet ist. Die Kommunikationssteuerung muss nicht auf eine Unterbrechung antworten, um die hinzugefügte Nachricht aufzunehmen, und der Adressenzähler, der der Anfangsadresse der gesendeten Nachricht zugeordnet ist, arbeitet weiter, bis der Adressenzähler die neue Begrenzungsadresse erreicht, die der letzten hinzugefügten Nachricht zugeordnet ist. Auf diese Weise können Nachrichten hinzugefügt werden, während ein anderer Abschnitt des Puffers Nachrichten sendet. Es braucht auf keine Unterbrechungen reagiert zu werden, und der Betrieb des Sendens kann fortgesetzt werden, wenn der Puffer neue hinzugefügte Nachrichten aufweist.
  • Wie in 7 dargestellt ist, wird zuerst festgestellt, ob ein Befehl zur Ausgabe von Nachrichten vorliegt, wie durch Schritt 710 dargestellt ist. Falls kein solcher Befehl vorliegt, wartet die Kommunikationssteuerung einfach auf den Befehl, wie durch eine Bezugszahl 720 dargestellt ist. Falls ein solcher Befehl vorliegt, reagiert die Kommunikationssteuerung auf ihn, wie durch eine Bezugszahl 730 dargestellt ist. Die Kommunikationssteuerung sendet dann Nachrichten, bis die Adresse, die der gegenwärtig gesendeten Nachricht zugeordnet ist, gleich der Adresse ist, die der letzten empfangenen Nachricht zugeordnet ist, wie durch Schritt 740 dargestellt ist. Die letzte bekannte Adresse, die dem Puffer zugeordnet ist, kann auch als der Pufferzählwert bezeichnet werden. Selbst nachdem die Begrenzungsadresse erreicht worden ist, können zusätzliche Nachrichten hinzugefügt werden, und die Begrenzungsadresse ändert sich und die Kommunikationssteuerung wird wieder aktiv und sendet die hinzugefügten Nachrichten. Interrupts werden nur erzeugt, wenn der Anfangsadressenzähler der Begrenzungsadresse gleicht.
  • Es gibt mehrere Erweiterungen, die in einem Netzwerk implementiert werden können, um abgehende Informationspakete oder Daten und/oder Nachrichten zu priorisieren. Beispielsweise könnte das Kommunikationssteuersystem, ebenso wie die Empfangssteuerung, mehrere Anfangs- und Endadressen erkennen und eine Vordergrund-/Hintergrundkonfiguration implementieren. Zusätzlich könnten die Pakete Indikatoren aufweisen, die die in dem Paket enthaltenen Informationen widerspiegeln. Ein solcher Informationsindikator könnte auch zum Priorisieren der zu sendenden Informationen verwendet werden. Ein weiterer Weg zum Priorisieren der einem Paket zugeordneten Daten oder Nachricht besteht darin, die Nachrichtenquelle und das Ziel, zu der die Nachricht zu senden ist, anzugeben. Bestimmte Clients 320 in einem Netzwerk können Funktionen ausführen, die Priorität gegenüber jenen anderer Clients gewinnen, die mit dem Netzwerk verbunden sind, so dass die für diesen bestimmten Client-Computer oder Mikroprozessor bestimmten Nachrichten oder Nachrichten von einem bestimmten Client oder Mikroprozessor nach Wunsch priorisiert werden können.
  • Ein weiterer Weg zum Priorisieren würde darin bestehen, bestimmte Nachrichten zu einem bestimmten Vordergrund hinzuzufügen, wenn mehrere Vordergründe einem Sendepuffer 480 oder Empfangspuffer 470 zugeordnet sind.
  • In 8 sind mehrere Register dargestellt, die dem Kanal 20, dem Kanal 21, dem Kanal 22 und dem Kanal 23 zugeordnet sind.
  • Der Peripheriekanal 380 und die Schnittstellenvorrichtung 330 können als ein Dualringsystem oder als ein Einzelringsystem konfiguriert werden, wie in 4 dargestellt ist. Die Kommunikationssteuerungen für ein Einzelringsystem oder ein Dualringsystem sind gleich. Das Kommunikationssteuersystem steuert die Empfangspuffer 470 für das Empfangen von Daten von den Kanälen 410 des bidirektionalen Mehrkanalrings und zum Ausgeben dieser Pakete an das ringbasierte Netzwerk. Das Kommunikationssteuersystem steuert auch die Puffer für das Erhalten von Paketen oder Nachrichten von dem Ring und zum Übertragen dieser Pakete zum Client-Computer.
  • Kommunikationssteuerung
  • Alle Kanäle werden mit einem Transferinformationsblock ("Transfer Information Block" – TIB) implementiert, der die Informationen enthält, die die Client-Schnittstellenvorrichtung 330 benötigt, um von den Empfangspuffern 470 und 480 empfangene Nachrichten abzuwickeln. Es gibt zwei Sätze von TIB-Registern.
  • CPU-Befehlssatz
    • 0010jk Set CA: Setze den TIB-Zeiger der Kanalnummer Aj auf die Adresse Ak.
    • 0011jk Set CL: Schreibe in den Adressenort, auf den der TIB-Zeiger des Kanals Aj zeigt, den Wert in Ak und erhöhe den TIB-Zeiger.
    • 0012j0 Clr CI: Lösche den Interrupt des Kanals Aj.
    • 0012j1 Clr Chnl MC: Lösche den Kanal Aj und breche alle gerade ausgeführten Übertragungen ab.
    • 033ij0 Read CA: Lese den Adressenort, auf den der TIB-Zeiger des Kanals Aj zeigt, in Ai.
  • Nachrichteneingabe
  • Der Nachrichteneingabe-TIB hat zwei Sätze von Transferinformationsregistern (TI-Registern) und zwei Sätze von CA/CL-Registern. Zu jeder gegebenen Zeit ist ein Satz von CA/CL-Registern im Vordergrund (FG) und der andere im Hintergrund (BG). Das FG/BG-Umschalten geschieht, wenn CA = CL für einen Registersatz ist. Zum Setzen des TIB-Zeigers für eine Nachrichteneingabe muss ein Set CA ausgegeben werden, wobei Aj auf 20 gesetzt ist. Ak wird als die TIB-Zeigeradresse geladen. Jedes Set CL schreibt den CL-Wert an den TIB-Ort, auf den der TIB-Zeiger zeigt. Dieser TIB wird sequenziell durch Set CL-Befehle geladen. Nachdem die Daten in den TIB geschrieben worden sind, wird der TIB-Zeiger zum nächsten Ort erhöht. Ein Set CL für die Orte 2 oder 5 (CL) setzt das aktive Bit im TI-Register 0 oder 1. Ein Set CL für die Orte oder 4 (CA) löscht den RPC im TI-Register 0 oder 1. Die Adressenzuordnung des TIBs ist in 8 dargestellt.
  • TI – Transferinformationsregister
  • 9 zeigt weitere Einzelheiten der Transferinformationsregister (TI-Register) des in 8 dargestellten Kanals 20. Die TI-Register sind Software-Nurleseregister und enthalten Nachrichteneingabeinformationen für die beiden Sätze von CA/CL-Registern. Die Bits 0–21 des TI-Registers 0, 1 zeigen den Status, bei dem CA/CL auf 0 bzw. 1 gesetzt ist. Die Bits 30–31 beider TI-Register geben an, welcher Kanal den Interrupt gesendet hat. Die Formate der TI-Register sind nachstehend dargestellt.
    RPC: Die Bits 0–19 sind der Empfangspaket-Zählwert (RPC), der eine laufende Gesamtzahl der Nachrichten im Hauptspeicher für einen Satz von CA/CL-Registern ist.
    Der RPC wird gelöscht, wenn CA eines CA/CL-Satzes geschrieben wird.
    Act: Das Bit 20 ist ein aktives Hinweiszeichen, das gesetzt wird, wenn CL eines CA/CL-Satzes geschrieben wird, und das gelöscht wird, wenn der CA/CL-Satz in den Hintergrund gesendet wird.
    FG: Das Bit 21 ist ein Hinweiszeichen, das aussagt, ob das gerade gelesene TI-Register gegenwärtig im Vordergrund (1) oder im Hintergrund (0) ist.
    PE: Das Bit 22 legt fest, ob FG und ACT gesetzt sind und ein Paritätsfehler auf einer Nachricht erfasst wird.
    Bits 24, 23: Kennungsbits des TI-Registers.
    INT-0, INT-1: Die Bits 31, 30 geben an, dass der CA/CL-Satz 0, 1 den Interrupt gesendet hat.
  • Nachrichteneingabeprotokoll
  • Zum Empfangen von Nachrichten muss ein Set CA ausgegeben werden und ein TIB-Zeiger so gesetzt werden, dass er auf CA eines CA/CL-Satzes zeigt. Ein Set CL kann dann verwendet werden, um CA zu schreiben, worauf ein weiteres Set CL zum Schreiben von CL folgt. Die Hardware ist nun für den Empfang von Nachrichten bereit. Wenn eine Nachricht empfangen worden ist, wird sie in den Hauptspeicher geschrieben, und es wird ein Interrupt für den Kanal 20 gesendet. Von der Zeit an, zu der der Interrupt gesendet wird, können mehrere Nachrichten in den Speicher geschrieben werden, und die Zeitsoftware liest den RPC. Der Interrupt kann durch Lesen eines der TI-Register verarbeitet werden, um herauszufinden, welches CA/CL den Interrupt gesendet hat. Sobald dies bestimmt wurde, gibt der RPC von dem geeigneten TI-Register an, wie viele 35-Wort-Nachrichtenpakete sich im Hauptspeicher befinden. Nachdem die Nachrichten verarbeitet worden sind, kann ein Clr CI ausgegeben werden, um den Interrupt zu löschen, und RPC sollte dann erneut gelesen werden, um zu prüfen, ob weitere Nachrichten in den Speicher geschrieben worden sind. Falls dies der Fall ist, sollten sie verarbeitet werden. Falls der RPC nach einem Clr CI nicht erneut gelesen wird, könnten unverarbeitete Nachrichtenpakete im Speicher verbleiben, ohne dass ein Interrupt gesetzt wird. Nachrichten werden gegenwärtig geschrieben, wobei das erste Wort die Länge des Pakets angibt, das folgt.
  • Anfänglich werden sowohl FG-CA/CL als auch BG-CA/CL geschrieben und dadurch aktiv gesetzt. Nachrichten werden in den CA/CL-Satz 0 (Puffer A) geschrieben, bis CA0 = CL0 gilt. Zu dieser Zeit wird das FG/BG-Umschalten vorgenommen und der CA/CL-Satz 0 inaktiv gesetzt. Die aktiven Bits befinden sich im TI-Register. Nachdem der Puffer A geleert worden ist, kann der CA/CL-Satz 0 erneut geladen werden. Falls das aktive Bit im TI-Register gesetzt ist, gilt CA # CL, und CA/CL sollte offensichtlich nicht erneut geladen werden. Das aktive Bit ist die Warteschlange zum erneuten Laden von CA/CL.
  • Die Hardware sendet keinen Interrupt, wenn keine Nachricht zum Speicher gesendet worden ist. Der RPC ist eine laufende Gesamtzahl und nicht die Anzahl der Nachrichten seit dem letzten Interrupt. Die Interrupt-Bits im TI-Register geben immer an, welches CA/CL-Paar den Interrupt gesendet hat. Falls ein FG/BG-Umschalten vorgenommen wird, bevor alle Nachrichten verarbeitet worden sind, ist es möglich, beide INT-Bits zu setzen.
  • Nachrichtenausgabe und Nachrichtenausgabeprotokoll
  • Der Nachrichtenausgabe-TIB hat einen Satz von CA/CL-Registern. Zum Senden von Nachrichten muss ein Set CA ausgegeben werden und der TIB-Zeiger auf die Adresse 0 (CA) gesetzt werden. Ein Set CL kann dann verwendet werden, um CA zu schreiben, dem ein weiteres Set CL folgt, um CL zu schreiben. Jedes Mal dann, wenn CL geladen wird, wird die Fähigkeit eines Interrupts für den Kanal 21 eingeschaltet, und falls CL größer als CA ist, beginnt die Nachrichtenausgabeaktivität. Um die Interrupt-Fähigkeit des Kanals 21 auszuschalten, muss ein Clr CI ausgegeben werden, nachdem CL gesetzt wurde. Wenn CA = CL ist, wird die Nachrichtenausgabeaktivität unterbrochen, und falls ein Interrupt eingeschaltet wird, wird ein Interrupt auf dem Kanal 21 gesendet. Zur Wiederaufnahme der Nachrichtenausgabeaktivität muss ein neues CL geladen werden, und die Interrupt-Fähigkeit des Kanals 21 wird wieder eingeschaltet. Ein Clr CI müsste wieder ausgegeben werden, um den Interrupt auszuschalten. Demgemäß hat Clr CI einen doppelten Zweck, es wird dadurch nämlich ein Interrupt gelöscht, wenn es gesetzt ist, und die Interrupt-Fähigkeit des Kanals 21, jedes Mal dann, wenn es ausgegeben wird, ausgeschaltet.
  • Das erste Wort abgehender Nachrichten gibt die Länge der zu sendenden Nachricht an. Das "Außerhalb-des-Bands-Wort" wird nicht auf den Ring gesendet.
  • Vorteilhafterweise ermöglicht die Kommunikationssteuerung eine minimale Prozessorunterbrechung, wenn Nachrichten entweder von einem Empfangspuffer oder von einem Sendepuffer aufgenommen oder ausgegeben werden. Weil die Kommunikationssteuerung einen Zähler innerhalb des Empfangspuffers erhöht, wenn Nachrichten in einen Puffer eingegeben werden, um einen Zähler mit einer Adresse oder einem zugeordneten Wert zu erzeugen, wodurch die letzte empfangene Nachricht widergespiegelt wird, kann die Kommunikationssteuerung, wenn Ausgaben vom Sendepuffer gesendet werden müssen, lediglich Nachrichten senden, bis der Wert des Zählers dem Wert gleicht, der der Adresse für eine bestimmte Nachricht zugeordnet ist. Wenn der Zählerwert der einer Nachricht zugeordneten Begrenzungsadresse gleicht, unterbricht die Kommunikationssteuerung das Senden von Nachrichten. Der Vorteil besteht darin, dass in der Vergangenheit verschiedene Hinweiszeichen und Interrupts verwendet werden mussten, um anzugeben, wenn eine einzelne Nachricht abgeschlossen war. Falls beispielsweise vier Nachrichten in einen Empfangspuffer gesendet wurden, wurden vier Interrupts von dem Prozessor verarbeitet, um die vier Nachrichten zu empfangen. Bei der gegenwärtigen Kommunikationssteuerung wird Zeit gespart, weil die in den Puffer eingegebenen Nachrichten nicht die Verarbeitung eines Interrupts benötigen. Die Nachrichten werden empfangen, und ein Zähler wird erhöht, um den Empfang der Nachricht widerzuspiegeln. Daher können mehrere Nachrichten in einem einzigen Interrupt verarbeitet werden. Die nachfolgenden Nachrichten brauchen keinen Interrupt zu verarbeiten, falls sie empfangen werden, bevor der erste Interrupt abgeschlossen wurde. Wenn Nachrichten vom Sendepuffer ausgesendet werden, ist es aus dem gleichen Grunde nicht erforderlich, eine Anzahl von Nachrichtenendbefehlen zu verarbeiten. Das Endergebnis ist ein Netzwerk, das in der Lage ist, mehrere Nachrichten oder Informationspakete in die Sende- und Empfangspuffer bei einem minimalen Zusatzaufwand und einer minimalen Verarbeitung einzulesen und von diesen auszusenden.
  • Zusammenfassend sei bemerkt, dass ein Verfahren zum Abwickeln der Kommunikation von und zu einem einem Prozessor zugeordneten Speicher mit mehreren Eingabepuffern und einem Ausgabepuffer, wobei der Prozessor an ein Computernetzwerk angeschlossen ist, die folgenden Schritte aufweist: Empfangen einer Nachricht in einem Empfangspuffer und Erhöhen eines Empfangseingabezählers beim Empfang der Nachricht im Empfangspuffer, indem die Länge der Nachricht zum Empfangseingabezähler addiert wird, um einen Empfangseingabe-Zählerwert zu erzeugen. Das Verfahren beinhaltet auch den Schritt des Sendens von Nachrichten vom Empfangspuffer, bis der Empfangseingabezähler auf den Empfangsgrenzwert erhöht wurde.
  • Ein Computernetzwerksystem beinhaltet mehrere Netzwerkknoten. Jeder der Netzwerkknoten weist einen Client-Computer, der mit Paketnachrichten kommuniziert, und eine Kommunikationssteuerung, die den Client-Computer mit dem Computernetzwerk verbindet, auf. Die Kommunikationssteuerung weist weiter einen Nachrichtenempfangspuffer und einen dem Nachrichtenempfangspuffer zugeordneten Empfangspufferzähler auf. Die Kommunikationssteuerung erhöht einen Empfangspufferzähler beim Empfangen der Nachricht im Empfangspuffer, um einen Pufferzählerwert zu erzeugen, der der letzten Adresse der letzten empfangenen Nachricht zugeordnet ist. Die Kommunikationssteuerung sendet Nachrichten vom Empfangspuffer, bis der Empfangspufferzähler bis zum Grenzwert für den Empfang erhöht wurde.
  • Eine Kommunikationssteuerung weist einen Empfangspuffer und eine dem Empfangspuffer zugeordnete Empfangspuffersteuerung auf. Die Empfangspuffersteuerung erhöht einen dem Empfangspuffer zugeordneten Zähler bis zu einer letzten Empfangspufferadresse, wenn eine zweite Nachricht empfangen wird, bevor ein Interrupt für eine erste Nachricht gelöscht wurde.
  • Ein Verfahren zum Abwickeln der Kommunikation von und zu einem einem Prozessor zugeordneten Speicher mit mehreren Eingabepuffern und einem Ausgabepuffer, wobei der Prozessor an ein Computernetzwerk angeschlossen ist, beinhaltet die folgenden Schritte: Empfangen einer Nachricht in einem Sendepuffer und Erhöhen eines Empfangseingabezählers beim Empfangen der Nachricht im Sendepuffer durch Addieren der Länge der Nachricht zum Empfangseingabezähler, um einen Sendeeingabe-Zählerwert zu erzeugen. Die Nachrichten vom Sendepuffer werden gesendet, bis der Sendeeingabezähler auf den Grenzwert für das Senden erhöht wurde.
  • Wenngleich hier spezifische Ausführungsformen erläutert und beschrieben wurden, werden Fachleute verstehen, dass die dargestellte spezifische Ausführungsform durch jede beliebige Anordnung ersetzt werden kann, die berechnet ist, um dieselben Zwecke zu erreichen. Diese Anmeldung soll alle Anpassungen oder Variationen der vorliegenden Erfindung einschließen. Es ist daher ausschließlich vorgesehen, dass diese Erfindung nur durch die Ansprüche und gleichwertige Ausgestaltungen von ihnen beschränkt ist.

Claims (28)

  1. Verfahren zum Abwickeln der Kommunikation von und zu einem einem Prozessor (320) zugeordneten Speicher mit einem einzigen oder mehreren Eingabepuffern (470) und einem Ausgabepuffer (480), wobei der Prozessor an ein Computernetzwerk (120) angeschlossen ist, wobei das Verfahren gekennzeichnet ist durch die folgenden Schritte: Empfangen einer Nachricht in einem Empfangspuffer und Erzeugen eines die empfangene Nachricht anzeigenden Interrupts, Empfangen mindestens einer zusätzlichen Nachricht im Empfangspuffer, ohne zusätzliche Interrupts für diese weiterhin empfangenen Nachrichten zu verwenden, Erhöhen eines Empfangseingabezählers beim Empfang einer Nachricht im Empfangspuffer, indem die Länge der Nachricht zum Empfangseingabezähler addiert wird, um einen Empfangspufferbegrenzungszählerwert zu erzeugen, Addieren der Länge jeder vom Empfangspuffer gesendeten Nachricht zu einem zweiten Empfangszähler, um einen Empfangszähleranfangswert zu erzeugen, und Senden von Nachrichten vom Empfangspuffer, bis der Empfangspufferanfangswert auf den Empfangspufferbegrenzungswert erhöht wird.
  2. Verfahren nach Anspruch 1, ferner umfassend das Außerachtlassen eines von einer nachfolgenden Eingabenachricht erzeugten Interrupts, wenn der Empfangspuffer eine Nachricht empfängt, wobei der Empfangseingabezähler beim Empfang der nachfolgenden Nachricht im Empfangseingabepuffer erhöht wird.
  3. Verfahren nach Anspruch 1 oder 2, ferner umfassend die folgenden Schritte: Empfangen mehrerer Eingabenachrichten im Empfangspuffer, Erhöhen des Empfangseingabezählers beim Empfang der mehreren Eingabenachrichten im Empfangseingabepuffer, Hinzufügen der Eingabenachrichten zu einem ersten Speicherabschnitt, bis der erste Speicherabschnitt voll ist, und Umleiten eingehender Nachrichten zu einem zweiten Speicherabschnitt, wenn der erste Speicherabschnitt voll ist.
  4. Verfahren nach Anspruch 3, wobei das Umleiten eingehender Nachrichten zu einem zweiten Speicherabschnitt, wenn der erste Speicherabschnitt voll ist, ferner die folgenden Schritte umfaßt: Kennzeichnen des ersten Speicherabschnitts als inaktiv, und Kennzeichnen des zweiten Speicherabschnitts als aktiv.
  5. Verfahren nach Anspruch 1 oder 2, ferner umfassend die folgenden Schritte: Empfangen mehrerer Eingabenachrichten in einem Eingabepuffer, Erhöhen des Empfangseingabezählers beim Empfang der mehreren Eingabenachrichten im Empfangseingabepuffer, Hinzufügen der Eingabenachrichten zu einem Vordergrundspeicherabschnitt, bis der Vordergrundspeicherabschnitt voll ist, und Umleiten eingehender Nachrichten zu einem Hintergrundspeicherabschnitt, wenn der Vordergrundspeicherabschnitt voll ist.
  6. Verfahren nach Anspruch 5, ferner umfassend das Kennzeichnen des Hintergrundspeicherabschnitts als Vordergrundspeicherabschnitt.
  7. Verfahren nach Anspruch 5 oder 6, ferner umfassend das Kennzeichnen des Vordergrundspeicherabschnitts als Hintergrundspeicherabschnitt.
  8. Verfahren nach Anspruch 5, ferner umfassend das Umschalten zwischen dem Vordergrundspeicherabschnitt und dem Hinter grundspeicherabschnitt, wenn der Vordergrundspeicherabschnitt voll wird.
  9. Verfahren nach Anspruch 5, 6, 7 oder 8, ferner umfassend das Priorisieren der Reihenfolge, in der Nachrichten vom Empfangspuffer an einen dem Knoten zugeordneten Client-Computer ausgegeben werden.
  10. Verfahren nach Anspruch 9, wobei das Priorisieren der Reihenfolge, in der Nachrichten vom Empfangspuffer ausgegeben werden, auf der Angabe eines Ursprungscomputers basiert, von dem aus die Nachricht zugestellt wurde.
  11. Verfahren nach Anspruch 1, ferner umfassend die folgenden Schritte: Plazieren einer Nachricht im Sendepuffer, Erhöhen eines ersten Sendepufferzählers beim Empfangen der Nachricht im Sendepuffer, indem die Länge der Nachricht zum ersten Sendepufferzähler addiert wird, um einen Sendepufferbegrenzungswert zu erzeugen, Addieren der Länge jeder vom Sendepuffer gesendeten Nachricht zu einem zweiten Sendepufferzähler, um einen Sendepufferanfangswert zu erzeugen, und Senden von Nachrichten vom Sendepuffer, bis der Sendepufferanfangswert auf dem Sendepufferbegrenzungswert erhöht ist.
  12. Verfahren nach Anspruch 11, ferner umfassend das Priorisieren der Reihenfolge, in der Nachrichten vom Sendepuffer gesendet werden, basierend auf einem Zielcomputer, dem die Nachricht zuzustellen ist.
  13. Computernetzwerksystem mit mehreren Netzwerkknoten (320), wobei jeder Netzwerkknoten (320) einen Client-Computer (410) enthält, der mittels Paketnachrichten kommuniziert, und mit einer Kommunikationssteuerung (440), die den Client-Com puter mit dem Computernetzwerk verbindet, wobei die Kommunikationssteuerung ferner einen Nachrichtenempfangspuffer (470) enthält, wobei das System dadurch gekennzeichnet ist, daß es ferner umfaßt: einen dem Nachrichtenempfangspuffer (470) zugeordneten Empfangseingabepufferzähler, wobei die Kommunikationssteuerung (440) zum Erhöhen des Empfangseingabepuffers beim Empfang der Nachricht im Empfangspuffer ausgelegt ist, um einen der letzten Adresse der letzten empfangenen Nachricht zugeordneten Empfangspufferzählerbegrenzungswert zu erzeugen, einen dem Nachrichtenempfangspuffer zugeordneten zweiten Pufferzähler, wobei die Kommunikationssteuerung (440) zum Senden von Nachrichten vom Empfangspuffer (470) eingerichtet ist, bis der zweite Empfangspufferzähler auf den Empfangspufferzählerbegrenzungswert erhöht ist, wobei das System zum Erzeugen eines Interrupts beim Empfang einer ersten Nachricht im Empfangspuffer und zum Empfangen mindestens einer zusätzlichen Nachricht im Empfangspuffer eingerichtet ist, ohne zusätzliche Interrupts für diese weiterhin empfangenen Nachrichten zu verwenden, bis der zweite Empfangspufferzähler auf den Empfangsbegrenzungswert erhöht ist.
  14. Computernetzwerksystem nach Anspruch 13, wobei der Empfangspuffer ferner umfaßt: einen Vordergrundspeicherabschnitt und einen Hintergrundspeicherabschnitt.
  15. Computernetzwerksystem nach Anspruch 13, wobei der Empfangspuffer ferner umfaßt: einen Vordergrundspeicherabschnitt und einen Hintergrundspeicherabschnitt, wobei die Kommunikationssteuerung zum Senden von im Vordergrundspeicherabschnitt empfangenen Nachrichten, bis der Vordergrund voll ist, und zum Senden von im Hintergrundspeicherabschnitt empfangenen Nachrichten ausgelegt ist.
  16. Computernetzwerksystem nach Anspruch 15, ferner umfassend eine Einrichtung zum Umschalten des Vordergrundspeicherabschnitts auf den Hintergrundspeicherabschnitt und zum Umschalten des Hintergrundspeicherabschnitts auf den Vordergrundspeicherabschnitt.
  17. Computernetzwerksystem nach Anspruch 16, wobei die Umschalteinrichtung eine Empfangsnachrichtensteuerung ist.
  18. Computernetzwerksystem nach Anspruch 16, wobei die Umschalteinrichtung zwischen Vordergrund- und Hintergrundspeicherabschnitt ferner umfaßt: eine Einrichtung zum Vergleichen des Empfangspufferzählerwerts mit dem Wert eines für den Vordergrundspeicherabschnitt maximalen Zählerwert, und zum Umschalten auf den Hintergrund, wenn der maximale Zählerwert und der Empfangspufferzählerwert gleich sind.
  19. Computernetzwerksystem nach Anspruch 13, ferner umfassend einen Nachrichtensendepuffer, und einen dem Nachrichtensendepuffer zugeordneten Sendepufferzähler.
  20. Computernetzwerksystem nach Anspruch 13, ferner umfassend einen Nachrichtensendepuffer, und einen dem Nachrichtensendepuffer zugeordneten Sendepufferzähler, wobei die Kommunikationssteuerung ausgelegt ist zum Erhöhen des Sendepufferzählers beim Empfang der Nachricht im Sendepuffer, um einen Sendepufferzählerwert zu erzeugen, und zum Senden von Nachrichten vom Sendepuffer, bis der Sendepufferzähler auf den Sendebegrenzungswert erhöht ist.
  21. Computernetzwerksystem nach Anspruch 19, ferner umfassend eine Einrichtung zum Priorisieren von Nachrichten im Nachrichtensendepuffer.
  22. Computernetzwerksystem nach Anspruch 19, ferner umfassend eine Einrichtung zum Priorisieren von Nachrichten im Nachrichtensendepuffer, und eine Einrichtung zum Priorisieren von Nachrichten im Nachrichtenempfangspuffer.
  23. Kommunikationssteuerung, umfassend einen Empfangspuffer und eine dem Empfangspuffer zugeordnete Empfangspuffersteuerung, gekennzeichnet dadurch, daß die Empfangspuffersteuerung zum Erhöhen eines dem Empfangspuffer zugeordneten Zählers auf eine neue letzte Adresse des Empfangspuffers, wenn eine zweite Nachricht empfangen wird, bevor ein Interrupt für eine erste Nachricht beseitigt ist.
  24. Kommunikationssteuerung nach Anspruch 23, wobei der Empfangspuffer umfaßt: einen Vordergrundempfangspuffer und einen Hintergrundempfangspuffer, wobei die Empfangspuffersteuerung ausgelegt ist zum Hinzufügen von Nachrichten zum Vordergrund, bis eine Begrenzungsadresse erreicht ist, und zum Umschalten des Vordergrundpuffers auf den Hintergrund.
  25. Kommunikationssteuerung nach Anspruch 23, ferner umfassend einen Sendepuffer, eine dem Sendepuffer zugeordnete Sendepuffersteuerung, wobei die Sendepuffersteuerung zum Erhöhen eines dem Sendepuffer zugeordneten Zählers auf eine letzte Sendepufferadresse ausgelegt ist, wenn eine zweite Nachricht während des Sendens einer ersten Nachricht empfangen wird, und wobei der Sendepuffer zum Senden der ersten und der zweiten Nachricht ausgelegt ist, bevor ein der ersten Nachricht zugeordneter Interrupt zurückgesetzt wird.
  26. Verfahren zum Abwickeln der Kommunikation von und zu einem einem Prozessor (320) zugeordneten Speicher mit mehreren Eingabepuffern (470-1, 470-2) und einem Ausgabepuffer (480), wobei der Prozessor an ein Computernetzwerk (120) angeschlossen ist, wobei das Verfahren gekennzeichnet ist durch die folgenden Schritte: Empfangen einer Nachricht in einem Sendepuffer (480) und Erzeugen eines die empfangene Nachricht anzeigenden Interrupts, Empfangen mindestens einer zusätzlichen Nachricht im Sendepuffer, ohne zusätzliche Interrupts für diese weiterhin empfangenen Nachrichten zu verwenden, Erhöhen eines Sendepuffereingabezählers beim Empfangen der Nachricht im Sendepuffer, indem die Länge der Nachricht zum Sendepuffereingabezähler addiert wird, um einen Sendepufferbegrenzungswert zu erzeugen, Addieren der Länge jeder vom Sendepuffer gesendeten Nachricht zu einem zweiten Sendepufferzähler, um einen Sendepufferanfangswert zu erzeugen, und Senden von Nachrichten vom Sendepuffer, bis der Sendepufferanfangswert auf den Sendepufferbegrenzungswert erhöht ist.
  27. Verfahren nach Anspruch 26, ferner umfassend das Aufteilen des Sendepuffers in zwei Puffer.
  28. Verfahren nach Anspruch 26, ferner umfassend das Aufteilen des Sendepuffers in mehrere Puffer und das Kennzeichnen eines der mehreren Puffer als Vordergrund.
DE69827843T 1997-12-16 1998-12-16 Nachrichtenpufferung für ein computerbasiertes Netzwerk Expired - Fee Related DE69827843T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/991,233 US6256677B1 (en) 1997-12-16 1997-12-16 Message buffering for a computer-based network
US991233 1997-12-16
PCT/US1998/026669 WO1999031847A1 (en) 1997-12-16 1998-12-16 Message buffering for a computer-based network

Publications (2)

Publication Number Publication Date
DE69827843D1 DE69827843D1 (de) 2004-12-30
DE69827843T2 true DE69827843T2 (de) 2005-11-24

Family

ID=25537011

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69827843T Expired - Fee Related DE69827843T2 (de) 1997-12-16 1998-12-16 Nachrichtenpufferung für ein computerbasiertes Netzwerk

Country Status (5)

Country Link
US (1) US6256677B1 (de)
EP (1) EP1038375B1 (de)
AT (1) ATE283592T1 (de)
DE (1) DE69827843T2 (de)
WO (1) WO1999031847A1 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6484207B1 (en) 1998-11-17 2002-11-19 Cisco Technology, Inc. Switching system having interconnects dedicated to store and retrieve data including management of dedicated memory segments allocated when a general memory is depleted
US6526452B1 (en) * 1998-11-17 2003-02-25 Cisco Technology, Inc. Methods and apparatus for providing interfaces for mixed topology data switching system
US6665673B1 (en) 1998-11-17 2003-12-16 Cisco Technology, Inc. Channel communication system
US6721798B1 (en) * 1999-05-06 2004-04-13 International Business Machines Corporation Method and apparatus for converting IP datagram to/from ethernet frames
US7480697B2 (en) * 2002-05-28 2009-01-20 International Business Machines Corporation Method and apparatus using attached hardware subsystem to communicate between attached hosts
US7447794B1 (en) 2002-12-04 2008-11-04 Silicon Graphics, Inc. System and method for conveying information
US20050177660A1 (en) * 2004-02-05 2005-08-11 Rajesh Mamidwar Method and system for merged rate-smoothing buffer with burst buffer
US20060095922A1 (en) * 2004-11-03 2006-05-04 Oracle International Corporation Response Time to Process Desired Transaction Requests in Event Based Network Servers
US7921165B2 (en) * 2005-11-30 2011-04-05 Microsoft Corporation Retaining mail for availability after relay
US8473966B2 (en) * 2006-09-29 2013-06-25 D.E. Shaw Research, Llc Iterative exchange communication
US8375155B2 (en) * 2010-06-23 2013-02-12 International Business Machines Corporation Managing concurrent serialized interrupt broadcast commands in a multi-node, symmetric multiprocessing computer
US8775699B2 (en) * 2011-03-01 2014-07-08 Freescale Semiconductor, Inc. Read stacking for data processor interface
US20230083701A1 (en) * 2021-09-15 2023-03-16 International Business Machines Corporation Automatically controlling resource partitions in advance of predicted bottlenecks for log streaming messages

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3506118A1 (de) * 1985-02-22 1986-08-28 Robert Bosch Gmbh, 7000 Stuttgart Verfahren zum betreiben einer datenverarbeitungsanlage fuer kraftfahrzeuge
US5257374A (en) 1987-11-18 1993-10-26 International Business Machines Corporation Bus flow control mechanism
JP2834210B2 (ja) 1988-09-14 1998-12-09 株式会社日立製作所 リング状ネットワークにおけるメッセージ制御方法
US4995056A (en) 1989-01-13 1991-02-19 International Business Machines Corporation System and method for data communications
CA2011935A1 (en) * 1989-04-07 1990-10-07 Desiree A. Awiszio Dual-path computer interconnect system with four-ported packet memory control
US5495482A (en) * 1989-09-29 1996-02-27 Motorola Inc. Packet transmission system and method utilizing both a data bus and dedicated control lines
DE69020899T2 (de) * 1990-09-28 1995-12-07 Hewlett Packard Co Netzüberwachungssystem und -vorrichtung.
US5353412A (en) * 1990-10-03 1994-10-04 Thinking Machines Corporation Partition control circuit for separately controlling message sending of nodes of tree-shaped routing network to divide the network into a number of partitions
US5797041A (en) * 1992-06-30 1998-08-18 Hitachi, Ltd. Communication control system utilizing a shared buffer composed of first and second descriptors which are managed by high and low level protocols
US5307459A (en) * 1992-07-28 1994-04-26 3Com Corporation Network adapter with host indication optimization
US5371736A (en) * 1992-12-21 1994-12-06 Abb Power T&D Company, Inc. Universal protocol programmable communications interface
SG47794A1 (en) * 1993-09-30 1998-04-17 Intel Corp Buffer memory management for a computer network node
US5617537A (en) 1993-10-05 1997-04-01 Nippon Telegraph And Telephone Corporation Message passing system for distributed shared memory multiprocessor system and message passing method using the same
JPH07262152A (ja) * 1994-03-24 1995-10-13 Hitachi Ltd コンピュータシステム
US5613129A (en) * 1994-05-02 1997-03-18 Digital Equipment Corporation Adaptive mechanism for efficient interrupt processing
US5541912A (en) * 1994-10-04 1996-07-30 At&T Corp. Dynamic queue length thresholds in a shared memory ATM switch
US5539729A (en) * 1994-12-09 1996-07-23 At&T Corp. Method for overload control in a packet switch that processes packet streams having different priority levels
US5768530A (en) * 1995-12-28 1998-06-16 Emc Corporation High speed integrated circuit interface for fibre channel communications

Also Published As

Publication number Publication date
ATE283592T1 (de) 2004-12-15
US6256677B1 (en) 2001-07-03
EP1038375B1 (de) 2004-11-24
EP1038375A1 (de) 2000-09-27
DE69827843D1 (de) 2004-12-30
WO1999031847A1 (en) 1999-06-24

Similar Documents

Publication Publication Date Title
DE69433293T2 (de) Netzwerkübertragungsverfahren für Systeme mit virtuellem Speicher
DE69133569T2 (de) Netzschnittstelle
DE112020002496T5 (de) System und verfahren zur erleichterung eines effizienten host-speicherzugriffs von einer netzwerkschnittstellensteuerung (nic)
DE69735936T2 (de) Seriendatenschnittstellenverfahren und vorrichtung #
DE69827843T2 (de) Nachrichtenpufferung für ein computerbasiertes Netzwerk
DE102005022110B4 (de) Flußsteuerungsverfahren und -vorrichtung für das Eintreffen einzelner Pakete auf einem bidirektionalen Ringverbund
DE60027404T2 (de) Kreditbasiertes flusskontrollverfahren
DE602005003142T2 (de) Vorrichtung und verfahren zur unterstützung von verbindungsherstellung in einem offload der netzwerkprotokollverarbeitung
DE60114097T2 (de) Verfahren und System zur Verbesserung der Netzleistungsfähigkeit unter Verwendung eines leistungssteigernden Proxies
DE60319543T2 (de) Speicher und weiterleitungsschaltereinrichtung, system und verfahren
DE69826930T2 (de) System und Verfahren zur wirksamen Fernplatte Ein-/Ausgabe
DE4121446C2 (de) Terminal-Server-Architektur
DE3642324C2 (de) Multiprozessoranlage mit Prozessor-Zugriffssteuerung
DE3243830A1 (de) Multiprozessor-unterbrechungsanordnung
EP0006164A1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE69332853T2 (de) Multiprozessorsystem und Kommunikationsverfahren zwischen Prozessoren
DE102020105776A1 (de) Kostengünstige Überlastungsisolierung für verlustfreies Ethernet
DE60038703T2 (de) Asynchrone Datenübertragung
DE102021109482A1 (de) SYSTEM UND VERFAHREN ZUR REGELUNG VON NVMe-oF-BEFEHLSANFRAGEN UND DATENFLUSS ÜBER EIN NETZWERK MIT UNGLEICHMÄßIGER GESCHWINDIGKEIT
DE112021003094T5 (de) System und verfahren zum planen von gemeinsam nutzbaren pcie-endpunktvorrichtungen
DE60305560T2 (de) Eingebettetes System für die Überlastregelung von Rundfunkverkehr in einem Kommunikationsnetzwerk
DE112013001211B4 (de) Multithread-Paketverarbeitung
DE60112680T2 (de) Netzwerkerweiterungsmodul
DE102019105065A1 (de) Technologien zur gezielten flusssteuerungswiederherstellung
EP1121645B1 (de) Elektronische steuereinrichtung mit einem parallelen datenbus und verfahren zum betreiben der steuereinrichtung

Legal Events

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