DE68926564T2 - Multiprozessor-Belastungsteilungsanordnung - Google Patents

Multiprozessor-Belastungsteilungsanordnung

Info

Publication number
DE68926564T2
DE68926564T2 DE1989626564 DE68926564T DE68926564T2 DE 68926564 T2 DE68926564 T2 DE 68926564T2 DE 1989626564 DE1989626564 DE 1989626564 DE 68926564 T DE68926564 T DE 68926564T DE 68926564 T2 DE68926564 T2 DE 68926564T2
Authority
DE
Germany
Prior art keywords
work request
processor
work
destination address
list
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
DE1989626564
Other languages
English (en)
Other versions
DE68926564D1 (de
Inventor
Dennis L Debruler
Allen Dennis Fergeson
F Joseph Glynn
Gilbert A Vandine
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.)
AT&T Corp
Original Assignee
AT&T Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by AT&T Corp filed Critical AT&T Corp
Publication of DE68926564D1 publication Critical patent/DE68926564D1/de
Application granted granted Critical
Publication of DE68926564T2 publication Critical patent/DE68926564T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)

Description

  • Die vorliegende Erfindung betrifft Verfahren zum Zuweisen von Arbeitsanforderungen, die über ein geschlossenes Netz, auf das sequentiell zugegriffen wird, übertragen werden, mit einer Mehrzahl von Knoten, die jeweils einen Prozessor umfassen, und Multiprozessorsysteme.
  • Häufig weisen verteilte Multiprozessorsysteme die Eigenschaft auf, daß ein beliebiger einer Mehrzahl von Prozessoren eine bestimmte Aufgabe ausführen kann Die Mehrzahl von Prozessoren wird zur Bearbeitung einer Spitzenverarbeitungslast bereitgestellt. Um diese Last zu bearbeitene, müssen alle Prozessoren ihren Anteil der Last tragen, was erfordert, daß kein Prozessor überlastet wird, wenn ein anderer Prozessor noch nicht voll belastet ist.
  • Eine gebräuchliche Anordnung zum Austauschen von Nachrichten unter Prozessoren eines Multiprozessorsystems besteht in der Verbindung jedes dieser Prozessoren über eine Schnittstelle mit einem Datenring. In der für Datenringe gebräuchlichen Terminologie werden die verschiedenen mit dem Ring verbundenen Prozessoren "Knoten" am Ring genannt. In der nachfolgenden Besprechung werden die Begriffe "Prozessoren" und "Knoten" austauschbar benutzt. Bei Empfang von Nachrichten vom Datenring leitet eine Prozessorschnittstelle jede Nachricht, die eine ihren eigenen Prozessor kennzeichnende Adresse aufweist, zu diesem Prozessor und leitet alle anderen Nachrichten zur nächsten Prozessorschnittstelle am Ring weiter. Zusätzlich ist jede Prozessorschnittstelle bereit, von ihrem zugehörigen Prozessor stammende Nachrichten zu erkennen, die, wenn sie vom Ring durch die Schnittstelle empfangen werden, anzeigen, daß eine Nachricht den ring vollständig den Ring durchlaufen hat, ohne einen Empfänger zu finden, und im allgemeinen gelöscht werden sollte.
  • Bei der Verwendung solcher Ringe entsteht ein Problem bei der Zuweisung von jeweiligen einer Mehrzahl gleichartiger Aufgaben zu jeweiligen der Prozessoren am Ring. Wenn nicht jeder Prozessor, der Arbeitsanforderungen für die Ausführung einer Aufgabe erstellt, eine Anzeige der gegenwärtig von jedem Prozeßserver, d.h. arbeitsempfangenden Prozessor, getragenen Last unterhält und jedem derartigen Prozessor Aufgaben auf der Grundlage dieser Lastanzeigen zuweist, wird die Belastung im allgemeinen nicht auf diejenigen Prozessoren verteilt, die am ehesten fähig sind, diese Last zu verarbeiten. Solche Anordnungen zum Informieren jedes arbeitsanf ordernden Prozessors über den Status jedes Arbeitausführungsprozessors sind unökonomisch. Eine weitere Alternative besteht darin, die Aufgabe der Arbeitszuteilung zu allen Prozessoren einem Prozessor zuzuweisen. Diese Anordnung bereitet Probleme hinsichtlich Zuverlässigkeit, sollte der eine Prozessor ausfallen, und ist ebenfalls unökonomisch, da sie mehrere Nachrichten zur Zuteilung einer Aufgabe erfordert. Weiterhin kann der Zuteilungsprozessor zu einem Systemengpaß werden und die Systemkapazität begrenzen. Ein Problem des Standes der Technik besteht daher darin, daß es keine wirkungsvollen Anordnungen zur Zuteilung von Arbeit zu jedem einer Mehrzahl von Prozessoren gibt und dabei gleichzeitig zu garantieren, daß, wenn ein beliebiger Prozessor diese Arbeitsanforderung annehmen kann, dieser Prozessor auch der sein wird, dem die Ausführung der Aufgabe zugeteilt wird. Ein zusätzliches Problem besteht im Falle eines Ausfalls eines oder mehrerer der Prozeßserver im Mangel eines wirkungsvollen Mechanismus zur automatischen Zuweisung der Aufgaben nur zu den übrigen im Betrieb befindlichen Prozeßservern.
  • In R. Alonso et al.: Sharing Jobs Among Independently Owned Processors; Proceedings 8th International Conference on Distributed Computing Systems, 13. Juni 1988, Seiten 282-288 werden Anordnungen zur Verteilung von Arbeit an verschiedene Prozessoren offenbart, wobei ein Prozessor ein Kandidat für seine eigene intern erstellte Arbeit und zuzügliche Arbeit ist, wenn seine Belastung unterhalb eines ersten Schwellwertes liegt, wird aus der Liste von Prozessoren, die zur Annahme zusätzlicher Außenarbeit berechtigt sind, entfernt, wenn seine Belastung diesen ersten Schwellwert überschreitet und weder interne noch externe Arbeit annimmt, wenn seine Belastung oberhalb eines zweiten höheren Schwellwertes liegt.
  • Nach einem Aspekt der vorliegenden Erfindung ist ein Verfahren nach Anspruch 1 vorgesehen.
  • Nach einem weiteren Aspekt der vorliegenden Erfindung ist ein Multiprozessorsystem nach Anspruch 17 vorgesehen.
  • In einer beispielhaften Ausführungsform der Erfindung ist jeder Prozessorknoten an einem Ring mit der Fähigkeit zur Annahme von Arbeitsanforderungsnachrichten mit einer einer Mehrzahl von durch den Prozessorknoten gespeicherten Adressen versehen, und jeder derartige Prozessorknoten ist mit der Fähigkeit der Hinzufügung und Löschung von Adressen aus dieser Liste versehen. Ein Prozessor, der eine Arbeitsanforderungsnachricht erstellt, stellt einer solchen Nachricht eine Adresse voraus. Der erste Prozessorknoten am Ring, der diese Adresse in seiner Liste hat, wird diese Nachricht annehmen, die darin angeforderte Arbeit ausführen und die Weiterleitung der Arbeitsanforderungsnachricht zu nachfolgenden Prozessorknoten verhindern.
  • In einer Ausführungsform der Erfindung löschen Prozessorknoten Adressen aus ihrer Liste, wenn sie eine Schwellenanzahl von Anforderungen nach Arbeit angesammelt haben, und fügen diese Adresse wieder in ihre Liste ein, wenn die Anzahl angesammelter Anforderungen den Schwellwert unterschreitet. Vorteilhafterweise schirmt eine solche Anordnung einen überlasteten Prozessorknoten gegen die Annahme zusätzlicher Arbeit ab und ermöglicht einem anderen Prozessor die Annahme der Nachricht und Verarbeitung der Anforderung.
  • In einer Ausführungsform der Erfindung weist jeder einer Mehrzahl von Prozessorknoten, die als an einen Datenring angeschaltete Prozeßserver wirken, eine Schnittstelle mit einem Speicher zum Speichern von Adressen für Arbeitsanforderungsnachrichten auf, die der Prozessor bereit ist, zu empfangen. Für jede empfangene Nachricht speichert der Prozessor die Arbeitsanforderung in einer Wartesschlange und zeichnet die Anzahl von in der Warteschlange angesammelten Arbeitsanforderungen auf. Wenn diese Anzahl einen Schwellwert überschreitet, löscht der Prozessor eine (als die Adresse mit niedriger Priorität definierte) Adresse im Schnittstellenspeicher, so daß von dann an nur Arbeitsanforderungen mit einer Adresse höherer Priorität angenommen werden. Vorteilhafterweise schirmt eine solche Anordnung einen stark belasteten Prozessor gegen die Annahme zusätzlicher Arbeitsanforderungen niedriger Priorität ab und erlaubt ihm dabei die Annahme von Arbeitsanforderungen mit hoher Priorität. In einer Ausführungsform ist der Speicher eine Bitmap. Vorteilhafterweise kann eine Bitmap ein Datenbit für jede einer großen Anzahl von Adressen innerhalb eines Speichers mit begrenzter Größe speichern; diese Adressen würden eine Menge von Adressen enthalten, und die Schnittstelle kann so initialisiert werden, daß sie auf jede Teilmenge dieser Menge reagiert. In dieser Ausführungsform entspricht eine Teilmenge dieser Adressen mehreren Prioritätsstufen für eine gegebene Aufgabenart, und Schnittstellen werden typischerweise so initiahsiert, daß sie auf eine Mehrzahl solcher Teilmengen reagieren.
  • In der vorliegenden Ausführungsform erkennen die Prozessoren, die Arbeitsanforderungsnachrichten übertragen, wenn eine Anforderung nicht von einem der bedienenden Prozessoren angenommen worden ist, da diese Arbeitsanforderungsnachricht über den Ring zum sendenden Prozessor zurückkehrt. Der sendende Prozessor prüft dann, ob die Arbeitsanforderung mit einer höheren Priorität als bei dem vorherigen Versuch gesandt werden kann, und wenn ja, wiederholt er die Anforderung. Wenn die Priorität nicht erhöht werden kann, dann bewirkt der sendende Prozessor die Wiederholung der Nachricht nach einer Verzögerung. Nachfolgende Wiederholungen werden um längere Zeitabstände verzögert, bis eine Entscheidung getroffen wird, daß der Versuch, die Arbeitsanforderung zu verarbeiten, fallengelassen werden sollte.
  • In der vorliegenden Ausführungsform ist jeder Prozeßserver ein programmgesteuerter Prozessor, der in seinem Speicher eine Warteschlange von zu verarbeitenden Arbeitsanforderungen, eine Anzeige der Anzahl von Einträgen in der Arbeitswarteschlange zur Einstellung der Liste von Adressen, um nur Anforderungen mit hoher Priorität oder Anforderungen mit allen Prioritäten anzunehmen, und in einer zugehörigen Ringschnittstelle die aktuelle der dynamisch wechselnden Liste von Adressen, die die Prioritätsstufe von Anforderungsnachrichten steuert, die von diesem Prozessor angenommen werden, enthält. Vorteilhafterweise bietet die Kombination der oben beschriebenen Prioritäts- Adressierungsanordnung (die sicherstellt, daß alle Prozeßserver maximal genutzt werden) und des Umplanungsalgorithmuses (der einen weiten Bereich von Wiederholungszeiten abdeckt) eine höchst effektive Strategie zur Bewältigung von Spitzen von Arbeitsanforderungsverkehr über einen weiten Bereich von Spitzenbelastung und -dauer.
  • Kurze Beschreibung der Zeichnung
  • Figur 1 ist ein Blockschaltbild eines Datenrings und an diesen Datenring angeschlossenen Prozessoren;
  • Figur 2 ist das Format einer Arbeitsanforderungsdatennachricht;
  • Figur 3 ist ein Flußdiagramm der von einem Prozessor bei der Anforderung von Arbeit durchgeführten Handlungen;
  • Figuren 4 und 7 sind Diagramme von von einem Prozessor zur Annahme von Arbeitsanforderungen durchgeführten Handlungen;
  • Figur 5 stellt den virtuellen Adreßraum und eine entsprechende Bitmap zum Ermöglichen, daß die Prozessoren die Arbeitsanforderungen auswählen, die sie annehmen werden, dar;
  • Figur 6 ist ein Blockschaltbild der Schaltungen zum Anschalten eines dieser Prozessoren an den Datenring.
  • Ausführliche Beschreibung
  • Figur 1 ist ein Blockschaltbild eines Datenrings 1 mit einem Prozessor 3 zum Erstellen von Arbeitsanforderungen und Senden dieser Anforderungen zum Datenring 1 und drei Prozessoren 2 zur Annahme von Arbeitsanforderungen vom Datenring 1. Jeder dieser Prozessoren weist eine zugehörige Ringschnittstelle 8 zur übertragung von vom Ring empfangenen Daten zum Prozessor, zum übertragen von Daten vom Prozessor zum Ring und zum Übertragen von vom Ring empfangenen Daten zur nächsten Schnittstelle auf. Die Einzelheiten des Blocks 8 sind in der Figur 6 dargestellt.
  • In diesem Beispiel wird von jedem Prozessor 3 zwar nur eine Art von Arbeitsanforderung erstellt, aber dies ist eine Art von Arbeitsanforderung, für die Arbeitsanforderungsnachrichten auf verschiedenen Prioritätsstufen gesandt werden können. Jede Prioritätsstufe für diese Art von Arbeitsanforderung stellt eine Klasse von Arbeitsanforderung dar. Weiterhin nimmt jeder Prozessor 2 nur eine Art von Arbeitsanforderung an und hat eine Liste von Zieladressen für verschiedene Prioritäten dieser Art. Wenn der Prozessor bereit ist, eine beliebige Priorität dieser Aufgabe anzunehmen, befinden sich alle dieser Adressen in der Adreßliste des zugehörigen Speichers der Schnittstelle 8 dieses Prozessors. Wenn eine oder mehrere Prioritätsstufen nicht länger angenommen werden, dann wird eine oder mehrere dieser Adressen aus der im zugehörigen Speicher der Schnittstelle 8 gespeicherten Liste entfernt. Jedes Mitglied der Liste entspricht einer Klasse von Arbeitanforderung.
  • Jeder der Prozessoren umfaßt eine durch ein Programm 4 gesteuerte Zentraleinheit 6. Auch weist der Prozessor 3 eine Warteschlange von verzögerten Anforderungen mit Anforderungen auf, die anfangs von keinem der Prozessoren 2 angenommen wurden und vor Wiederholung verzögert werden. Jeder der Prozessoren 2 enthält eine Arbeitswarteschlange 12 zum Speichern von Anforderungen zur Durchführung einer Aufgabe und eine Anzeige 10 der Anzahl von Einträgen in dieser Arbeitswarteschlange.
  • Sowie sich die Anzahl von Einträgen in der Arbeitswarte schlange ändert, was eine größere oder geringere angenommene zukünftige Belastung widerspiegelt, wird vom Prozessor die Priorität von anzunehmenden Arbeitsanforderungen durch Hinzufügen oder Löschen von Adressen aus der Liste von Adressen von anzunehmenden Arbeitsanforderungen eingestellt. Diese Liste wird in der Schnittstelle 8 gespeichert und wird zum Steuern von Arbeitsanforderungspaketen zum zugehörigen Prozessor oder zum Weitersenden der Arbeitsanforderungspakete zur nächsten Prozessorschnittstelle benutzt. Die mit dem Prozessor 3 verbundene Schnittstelle 8 dient zur Erkennung, wenn eine Arbeitsanforderungsnachricht den Ring vollständig durchlaufen hat, ohne von irgendeinem Prozessor 2 angenommen worden zu sein. Wenn dies geschieht, erkennt der Prozessor 3, daß die Arbeitsanforderung nicht angenommen worden ist, und, wie anhand der Figur 3 besprochen, wiederholt daraufhin die Anforderung mit einer anderen Adresse, insbesondere der mit der nächsthöheren Priorität als die der vorherigen Anforderung. Wenn die vorherige Anforderung die höchste Priorität hatte, reiht der Prozessor 3 diese Arbeitsanforderung zur nachfolgenden Wiederholung in die Warteschlange 13 ein.
  • Die Figur 2 stellt das Format eines Arbeitsanforderungspakets 20 dar. Dieses Paket umfaßt eine Sendeprozessoradresse 22, die von der Ringschnittstelle 8 des Prozessors 3 zur Erkennung von Paketen benutzt wird, die über den gesamten Ring gesandt wurden, ohne von einem beliebigen der Prozessoren 2 angenommen worden zu sein. Auch enthält das Paket eine Zieladresse 24, die von irgendeiner der Schnittstellen 8 der Prozessoren 2 dazu benutzt wird, zu bestimmen, ob dieses Paket für ihren zugehörigen Prozessor bestimmt ist. Abschließend enthält das Paket die Einzelheiten der Arbeitsanforderung 26, die Daten bereitstellen, so daß ein Prozessor 2 die vom Prozessor 3 angeforderten Aufgaben ausführen kann.
  • Die Figur 3 ist ein Flußdiagramm der vom Prozessor 3 durchgeführten Verarbeitung. Zuerst sendet der Prozessor 3 eine Arbeitsanforderung zum nächsten Prozessor am Ring (Handlungsblock 126) unter Verwendung der Adresse mit der niedrigsten Priorität für diese Klasse von Paketen. Für jedes an der Schnittstelle des Prozessors 3 empfangene Paket (Handlungsblock 127) wird in der Schnittstelle 8 des Prozessors 3 eine überprüfung durchgeführt, ob die Sender-(Ursprungs-)Adresse die Ursprungsadresse oder Kennzeichnung dieses Prozessors ist (Handlungsblock 128). Wenn nicht, dann wird das Paket zum nächsten Prozessor am Ring übertragen (Handlungsblock 129). Wenn die Ursprungsadresse mit der Prozessorkennzeichnung übereinstimmt, d.h. wenn es eine Ursprungspaarigkeit gibt, dann wird überprüft (Entscheidungsblock 130), ob die Priorität des Arbeitsanforderungspaketes angehoben werden kann. Arbeitsanforderungspakete, die eine natürlich hohe Priorität aufweisen, können mit einer höheren Priorität als ursprünglich vorgesehen übertragen werden, wenn beispielsweise eine solche Aufgabe nicht bei den ersten Versuchen angenommen wurde und nach einer Verzögerung zu wiederholen ist. Wenn die Priorität angehoben werden kann, dann wird die Priorität des Pakets durch Ändern der Zieladresse erhöht, um die nächsthöhere Priorität widerzuspiegeln, und das Paket wird wiederholt (Handlungsblock 140). Wenn die Priorität des Pakets nicht angehoben werden kann, d.h. es bereits mit der höchsten zulässigen Priorität für diese Anforderung gesandt wurde, dann wird überprüft, ob das Paket viermal (Prüfung 132) mit der höchsten für dieses Paket zulässigen Priorität übertragen worden ist. Die höchste zulässige Priorität für ein bestimmtes Paket kann eine niedrige Priorität sein, wenn die Anforderung eine Arbeitsanforderung mit von sich aus niedriger Priorität ist, beispielsweise eine Anforderung von einem Kunden mit niedriger Priorität. Wenn das Paket viermal mit seiner höchsten zulässigen Priorität gesandt worden ist, wird die Aufgabe gelöscht (Handlungsblock 136), da eine solche Situation eine massive überlastung darstellt, bei der Aufgaben verworfen werden müssen, da zuviele zu verarbeiten sind. Wenn das Paket weniger als viermal mit der höchsten Priorität für dieses Paket übertragen worden ist, dann ist die Verzögerung vor der nächsten Übertragung dieses Paketes ein binäres Mehrfaches einer Grundverzögerung, so daß die Verzögerungen für Wiederholungen nach der ersten gegenüber der vorherigen Verzögerung verdoppelt werden (Handlungsblock 133). Nach dieser Verzögerung (Handlungsblock 134) wird dieses Paket mit der höchsten Priorität für dieses Paket wiederholt (Handlungsblock 135), so daß der verzögerte Auftrag Priorität gegenüber neuen Aufträgen haben wird, die nicht verzögert worden sind.
  • Die Handlungen der Prozeßserver bzw. Arbeitsanforderungsverarbeitungsprozessoren 2 sind in der Figur 4 dargestellt. Ein Paket wird an der mit einem Prozessor 2 verbundenen Schnittstelle 8 empfangen (Handlungsblock 100). Dort wird die Zieladresse mit der Liste von Adressen, für die dieser Prozessor die zugehörige Arbeitsanforderung annehmen wird, verglichen (Prüfung 104). Wenn keine Paarigkeit besteht, dann wird das Paket von der Schnittstelle zur nächsten Schnittstelle am Ring übertragen (Handlungsblock 106). Wenn Paarigkeit besteht, wird das Paket zum zugehörigen Prozessor 2 übertragen und in die Arbeitsanforderungswarteschlange dieses Prozessors eingereiht (Handlungsblock 110). Es wird eine Prüfung 112 durchgeführt, ob die in der Arbeitsanforderungswarte schlange aufgenommene Anzahl von Arbeitsanforderungen nunmehr die Grenze bzw. den oberen Schwellwert für die gegenwärtig niedrigste Prioritäts stufe überschreitet. Wenn ja, dann wird die Adresse oder der mit dieser niedrigsten Prioritätsstufe verbundene niedrigere Schwellwert aus der Liste von Adressen gelöscht, für die Arbeitsanforderungspakete angenommen werden (Handlungsblock 114). Nach Annahme des Paketes werden weiterhin Arbeitsanforderungen im Prozessor 2 bearbeitet (Handlungsblock 116). Wenn die Bearbeitung einer Arbeitsanforderung abgeschlossen ist (Handlungsblock 118), wird geprüft, ob die Anzahl von Arbeitsanforderungen, die in der Warteschlange verbleiben, unter der Grenze bzw. dem mit der gegenwärtig niedrigsten Priorität verbundenen unteren Schwellwert liegt (Prüfung 120). Wenn ja, dann wird eine neue Anforderungsadresse mit niedrigerer Priorität zu der Liste von Adressen in der Schnittstelle 8 des Prozessors 2 hinzugefügt. Danach wird die Verarbeitung von Arbeitsanforderungen fortgesetzt (Handlungsblock 116). Jedem Prozeßserver wird anfangs eine Liste von Zieladressen zugewiesen, für die er Arbeitsanforderungen annimmt, so wie im Handlungsblock 90 der Figur 7 gezeigt. Mitglieder dieser Liste werden entsprechend den oben beschriebenen Schritten gelöscht und wieder eingefügt.
  • Einer gegebenen Aufgabenart auf einer Prioritätsstufe kann mehr als eine Adresse zugewiesen werden. Wenn dies geschieht, dann kann jeder von zwei oder mehreren Prozessoren 3 derselben Aufgabenart verschiedene Adressen zuweisen. Dann können die Prozessoren 2 Einzeladressen oder alle Adressen für eine bestimmte Aufgabenart und Priorität wie erforderlich hinzufügen oder löschen, um das Ausgleichen der Belastung fein abzustimmen. Als Alternative und zusätzlich können verschiedene Adressen für lange und kurze Arbeitsanforderungen derselben allgemeinen Aufgabenarten zugewiesen werden, wodurch eine allgemeine Aufgabenart in zwei Teilarten eingeteilt wird, die effektiv als zwei verschiedene Aufgabenarten behandelt werden.
  • Prozessoren können mehr als eine Aufgabenart bedienen. Eine Art der Verteilung von Aufgaben an bedienende Prozessoren besteht in der Initialisierung jeder Schnittstelle durch Zuweisen einer oder mehrerer verschiedener Listen von Adressen; jede derartige Liste von Adressen ist mit einer anderen Aufgabenart verbunden und würde im wesentlichen auf dieselbe schon für die Einzelaufgabe besprochene Weise verwaltet werden. Beispielsweise könnten kurze Aufgaben unter Bedingungen mäßiger Belastung angenommen werden, während längere es nicht würden, oder es würden Aufgaben, die Speicherraum freimachen, angenommen werden, während solche, die Speicherraum verbrauchen, nicht angenommen würden.
  • Die Figur 5 stellt eine Bitmap dar, die von jedem Prozessor dazu benutzt wird, zu entscheiden, ob er eine vom Ring empfangen Arbeitsanforderung annehmen sollte oder nicht. Arbeitsfunktionen sind in Gruppen wie beispielsweise A, B usw. eingeteilt, die jeweils eine Aufgabenart darstellen. Anforderungen können zweckent sprechend für jede Gruppe angenommen werden: hohe Priorität, mittlere und niedrige Priorität; nur hohe und mittlere Priorität; nur hohe Priorität; oder keine. Für jede Gruppe von Aufgaben und jede Priorität wird eine Adresse reserviert. Entsprechend jeder Adresse ist ein Bit Speicherung in einer Bitmap 270 fest zugeordnet. Wenn das Bit in der Bitmap auf Eins gesetzt ist, dann kann die entsprechende Aufgabe und Priorität vom Prozessor angenommen werden. Wenn es auf Null gesetzt ist, dann wird die entsprechende Aufgabe und Priorität zurückgewiesen. Figur 5 zeigt das Format eines virtuellen Adreßraums mit Adressen 251, 252 und 253 für Funktion A, hohe Prioritt, mittlere Priorität bzw. niedrige Priorität und Adressen 254, 255, 256 für Funktionen B, hohe Priorität, mittlere Priorität bzw. niedrige Priorität. Die den Funktionen A entsprechenden Bit sind 271, 272 und 273 und sind in der Bitmap 270 als im Zustand 1, 1 bzw. 0 befindlich dargestellt. Das zeigt an, daß der zugehörige Prozessor Anforderungen mit hoher und mittlerer Priorität für die Funktionsgruppe A annehmen wird, aber Anforderungen mit niedriger Priorität nicht annehmen wird. Gleichermaßen entsprechen Bit 274, 275 und 276 Anforderungen der Funktion B mit hoher Priorität, mittlerer Priorität und niedriger Priorität und sind auf 1, 0, 0 gesetzt, was anzeigt, daß nur B-Aufgaben hoher Priorität angenommen werden.
  • Figur 6 ist eine Erweiterung der Ringschnittstelle des Blocks 8 dieser beispielhaften Ausführungsform. Die Schnittstelle ist mit dem Ring 1 an einem mit einem Eingangsspeicher 201 verbundenen Eingang und an einem mit einem Schalter 225 verbundenen Ausgang verbunden. Die Schnittstelle ist über den Knotenprozessorbus 9 mit dem Knotenprozessor 2 verbunden. Die Schnittstelle wird durch die Ringschnittstellensteuerung 210 gesteuert, die die Information Token Vorhanden vom Tokendetektor 217, die Informations Adresse Erkannt von der Bitmap 215 und verschiedene Steuersignale vom Knotenprozessor 2 erhält. Der Tokendetektor 217 ist mit dem Eingangsspeicher 201 verbunden, um das Vorhandensein eines Tokens in diesem Speicher zu erkennen. Es gibt nur einen Token auf dem Ring, und die Ringschnittstelle, die den Token besitzt, ist die einzige, die in den Ring einschreiben darf. Der Token wird vom Eingangsspeicher 201 festgehalten, während das Schreiben stattfindet, und dann weitergegeben. Der Schalter 221 unter Steuerung der Ringschnittstellensteuerung 210 verbindet entweder den Eingangsspeicher 201 oder den Schreibspeicher 229 mit dem Eingang des Kopf speichers 223. Der Schreibspeicher 229 hält eine Warteschlange von Nachrichten vom Knotenprozessor, die in den Ring einzuschreiben sind. Der Kopf speicher 223 speichert jede Nachricht, während von der Ringschnittstellensteuerung bestimmt wird, was mit der Nachricht anzufangen ist. Der Ausgangsschalter 225 unter Steuerung der Ringschnittstellensteuerung leitet im Kopf speicher gespeicherte Nachrichten entweder zum Lesespeicher 227, zum Ring 1 oder zu beiden oder zu keinem. Die Bitmap 215, auf die über das Adreßregister 231 zugegriffen wird und die ein Schreibeingaberegister 233 zum Ändern der Bitmap und ein Leseausgaberegister 235 zum Lesen der Bitmap aufweist, wird zur Untersuchung von Ursprungs- und Zieladressen von Nachrichten im Kopfspeicher benutzt, um zu bestimmen, ob die Nachricht entweder von diesem Ringknoten kam oder für diesen Ringknoten bestimmt ist. Der Schalter 211 unter Steuerung der Ringschnittstellensteuerung 210 wählt entweder die Ursprungsadresse der Nachricht, die Zieladresse der Nachricht oder eine vom Knotenprozessor ausgewählte Adresse zur Aktualisierung als die in das Adreßregister 231 einzugebende Adresse zum Zugreifen auf die Bitmap aus.
  • Es wird darauf hingewiesen, daß, obwohl die bestimmte hier beschriebene Ausführungsform der vorliegenden Erfindung ein Tokenring ist, diese Anordnung in jedem Netz benutzt werden kann, in dem die Knoten des Netzes Nachrichten sequentiell empfangen und in dem nicht von irgendeinem Knoten angenommene Nachrichten zum Sender zurückgesandt werden. Derartige Netze werden als geschlossene Netze mit sequentiellem Zugriff bezeichnet. Ein Beispiel eines solchen Netzes ist das Doppelbusnetz des Stadtnetzstandards IEEE 802.6 (Metropolitan Area Network).
  • Mit den Ringschnittstellenschaltungen wird ein asynchroner Ring implementiert, bei dem alle Speicherelemente und Datenschnittstellen Informationen über Abstimmzeichen weitergeben. Wenn ein Knoten Daten zu übertragen hat, erstellt er ein Abstimmzeichen Daten Vorhanden. Wenn ein Knoten zur Annahme angebotener Daten bereit ist, erstellt er ein Abstimmzeichen Daten Angenommen. Die verschiedenen in Figur 6 gezeigten Speicher bieten die im obigen Absatz beschriebenen Funktionen und bieten auch die dynamische Speicherung, die erforderlich ist, einen asynchronen Betrieb wirkungsvoll zu machen. Jeder Speicher empfängt Informationen mit einer durch den Eingangsquittungsaustausch bestimmten Rate, bis er voll ist, und überträgt Informationen mit einer durch den Ausgangsquittungsaustausch bestimmten Rate, bis er leer ist. Empfang und Senden sind im Bezug aufeinander asynchron.
  • Nachrichten vom vorhergehenden Knoten 1 am Ring werden im Eingangsspeicher 201 aufgenommen. Wenn keine Schreibaufgaben anstehen, wird der Schalter 221 den Eingangsspeicher mit dem Kopfspeicher 223 verbinden. Die Ringschnittstellensteuerung 210 wird den Kopfspeicher dazu veranlassen, die Nachricht solange zu speichern, bis sie den weiteren Weg der Nachricht bestimmen kann. Um den weiteren Weg der Nachricht zu bestimmen, bewirkt die Schnittstellensteuerung 210 zuerst das Kopieren der Ursprungs- und dann der Zieladressen der Nachricht aus dem Kopfspeicher in das Adreßenregister der virtuellen Adressenbitmap. Wenn das Bit in der Bitmap an der durch die Ursprungsadresse der Nachricht angegebenen Adresse gesetzt ist, dann kam die Nachricht aus diesem Knoten und ist vollständig um den Ring herum gelaufen, ohne von irgendeinem Ziel entnommen zu werden; sie muß vom Ursprung entnommen und eine andere zutreffende Handlung muß unternommen werden. Wenn das Bit in der Bitmap an der durch die Zieladresse der Nachricht angegebenen Adresse gesetzt ist, dann ist die Nachricht an diesen Knoten adressiert und muß entweder aus dem Ring genommen oder zumindest kopiert werden, je nach Nachrichtenart. Der Inhalt der beiden ausgewählten Bit in der Bitmap und die Nachrichtenart aus dem Artenfeld der Nachricht im Kopfspeicher werden von der Schnittstellensteuerung 210 ausgewertet, um den weiteren Weg zu bestimmen. Der weitere Weg gibt die Einstellung des Schalters 225 an, der die Nachricht entweder zum nächsten Knoten am Ring oder zum Lesespeicher 227 sendet. Andere mögliche Schaltereinstellungen können das Kopieren einer Rundsendenachricht in den Lesespeicher zur gleichen Zeit, wie sie zum nächsten Knoten übertragen wird, verursachen oder kann verursachen, daß die Nachricht eliminiert wird. Wenn die Nachricht zum Lesespeicher geschaltet wird, dann informiert die Ringschnittstellensteuerung den Knotenprozessor. Der Knotenprozessor kann dann die Nachricht aus dem Lesespeicher auslesen.
  • Als Alternative kann die Ursprungsadresse mit einer in der Ringschnittstelle 8 fest verdrahteten oder von Drähten zur Rückwandplatine, mit der eine gegebene Schnittstellenkarte verbunden ist, gelieferten Adresse verglichen werden. Wenn der Knotenprozessor eine Nachricht auf den Ring zu senden hat, wird die Nachricht in den Schreibspeicher übertragen. Der Knotenprozessor informiert dann die Ringschnittstellensteuerung, daß eine Nachricht zum Senden bereit ist. Der Token ist eine Sondernachricht, die auf dem Ring umläuft, um dem Knoten im Besitz der Tokennachricht die Erlaubnis zum Schreiben von Nachrichten zu erteilen. Sobald der Tokendetektor 217, der durch den Eingangsspeicher laufende Nachrichten überwacht, einen Token erkennt, veranlaßt die Ringschnittstellensteuerung den Schalter 221, sich vom Eingangsspeicher abzuschalten, den Token im Eingangsspeicher zu halten und sich mit dem Schreibspeicher zu verbinden. Die Nachricht durchläuft den Kopfspeicher 223, wo verschiedene Gültigkeitsprüfungen einschließlich einer Prüfung der Ursprungsadresse durchgeführt werden. Wenn das Nachrichtenformat richtig ist, erlaubt die Ringschnittstellensteuerung, daß sie den Schalter 225 zum nächsten Knoten durchläuft. Sobald die Nachricht übertragen ist, kehrt der Schalter 221 zum Eingangsspeicher zurück, der dem Token und allen hinter dem Token angestauten Nachrichten weiterzufliessen erlaubt.
  • Wenn der Knotenprozessor eine durch die Ringschnittstelle zu erkennende Nachrichtenadresse hinzuzufügen oder zu löschen wünscht, muß das Bit in der Bitmap an dieser Adresse geändert werden. Der Knotenprozessor veranlaßt die Ringschnittstellensteuerung, den Nachrichtenfluß auf dem Ring anzuhalten und das Bitmapadreßregister über den Schalter 211 mit dem Knotenprozessorbus 9 zu verbinden. Das Bit in der Map wird geändert und der Nachrichtenfluß wieder gestartet.
  • Eine Alternative zur Benutzung einer Bitmap ist die Verwendung eines inhaltsadressierbaren Speichers zur Erkennung von Adressen, so wie er beispielsweise im US-A- 4,654,654 beschrieben ist. Ein solcher inhaltsadressierbarer Speicher würde die Bitmap 215 ersetzen und würde über das Adreßregister 231 adressiert werden, über das Schreibregister 233 beschrieben werden und ein Erkennungssignal wurde aus ihm über das Leseregister 235 ausgelesen werden.
  • Weitere Einzelheiten von Ringschnittstellen sind ausführlich beispielsweise in A.D. Fergeson et al., "The AT&T Interprocess Message Switch Architecture", Proceedings of the IEEE International Communications Conference, Juni 1988 beschrieben worden.
  • Ein als Teil des Programms 4 des Prozessors enthaltener Gesamtmonitor für den Prozessor 2 kann zur periodischen Untersuchung des Zustandes aller Arbeitswarteschlangeneintragzähler und zum Treffen einer globalen Entscheidung hinsichtlich der Prioritätsstufe von Anforderungen jeder Art, die vom Prozessor angenommen werden können, benutzt werden.
  • In dieser Beschreibung sind zwar die Prozessoren in den Prozessor 3 zur Erstellung von Arbeitsanforderungen und die Prozessoren 2 zur Verarbeitung dieser Arbeitsanforderungen eingeteilt worden, aber in anderen Anwendungen können Prozessoren beides durchführen und können insbesondere eine Arbeitsanforderung als Teil des Vorgangs der Ausführung einer anderen Arbeitsanforderung erstellen. Die Funktionen der Prozessoren 3 und 2 sind nicht zueinander inkompatibel, vorausgesetzt, daß jeder Prozessor, der Arbeitsanforderungen erstellt, bereit sein muß, Arbeitsanforderungspakete zu erkennen, die den Ring durchlaufen haben, ohne entnommen worden zu sein.
  • Es ist zu verstehen, daß die obige Beschreibung auf nur eine bevorzugte Ausführungsform der Erfindung zutrifft. Vom Fachmann können zahlreiche andere Anordnungen ausgedacht werden.

Claims (17)

1. Verfahren zum Zuweisen von Arbeitsanforderungen, die über ein geschlossenes Netz (1, 8), auf das sequentiell zugegriffen wird, übertragen werden, mit einer Mehrzahl von Knoten (2, 8), die jeweils einen Prozessor (2) umfassen, wobei jede Anforderung durch eine Arbeitsanforderungszieladresse (24) gekennzeichnet wird, die eine Klasse von Arbeitsanforderungen darstellt, wobei jeweiligen der besagten Mehrzahl von Prozessoren mindestens eine der besagten Arbeitsanforderungszieladressen zugewiesen worden ist, mit folgendem Schritt:
Annehmen der Arbeitsanforderungen in einem beliebigen der besagten Prozessoren, wenn die Belastung des besagten einen Prozessors unter einem ersten Schwellwert liegt; und
gekennzeichnet durch folgende Schritte:
Zuweisen von Listen (215) von aktiven Arbeitsanforderungszieladressen, eine Liste für jeden von jeweiligen der besagten Prozessoren, wobei jede Arbeitsanforderungszieladresse eine Klasse von Arbeitsanf orderungen darstellt, wobei mindestens zwei der besagten Prozessoren eine erste Arbeitsanforderungszieladresse in ihren Listen enthalten;
Löschen (114), aus der besagten Liste von Arbeitsanforderungszieladressen, eines Mitgliedes einer Liste eines beliebigen der besagten jeweiligen der besagten Prozessoren, wenn die Belastung des besagten beliebigen Prozessors einen ersten Schwellwert überschreitet, und danach Wiedereinfügen (122), in die besagte Liste von besagtem beliebigen Prozessor, des besagten Mitgliedes, wenn die Belastung des besagten beliebigen der besagten jeweiligen der besagten Prozessoren unter einem zweiten Schwellwert liegt;
in einem beliebigen der besagten jeweiligen der besagten Prozessoren, Annehmen (110) einer Arbeitsanforderung zur Angabe einer Aufgabe für einen Prozessor, der die besagte Arbeitsanforderung, die über das besagte Netz empfangen und durch die besagte erste Arbeitsanforderungszieladresse gekennzeichnet worden ist, empfängt, wenn die besagte erste Arbeitsanforderungszieladresse in der besagten Liste des besagten beliebigen Prozessors, der die besagte Arbeitsanforderung empfängt, enthalten ist;
Ausführen (116, 118) der besagten durch die besagte Arbeitsanforderung angegebenen Aufgabe, wenn die besagte Arbeitsanforderung angenommen wird; und
Übertragen (106) einer Arbeitsanforderung, die über das besagte Netz empfangen und durch die besagte erste Arbeitsanforderungszieladresse gekennzeichnet worden ist, zu einem nächsten Knoten des besagten geschlossenen Netzes, auf das sequentiell zugegriffen wird, wenn die besagte erste Arbeitsanforderungszieladresse nicht in der besagten Liste des besagten beliebigen Prozessors, der die besagte Arbeitsanforderung empfängt, enthalten ist.
2. Verfahren nach Anspruch 1, wobei der besagte Annahmeschritt den Schritt des Vergleichens der besagten ersten Arbeitsanforderungszieladresse mit Mitgliedern der besagten Liste von Adressen des besagten beliebigen Prozessors umfaßt.
3. Verfahren nach Anspruch 1, wobei der besagte beliebige Prozessor eine Warteschlange zum Speichern von Arbeitsanforderungen umfaßt und besagtes Löschen und Wiedereinfügen weiterhin folgende Schritte umfassen:
Bestimmen, ob die Belastung des besagten beliebigen Prozessors den besagten ersten Schwellwert überschreitet und Bestimmen, ob die besagte Belastung unter dem besagten zweiten Schwellwert liegt, durch Feststellen der Länge der besagten Warteschlange.
4. Verfahren nach Anspruch 1, wobei das besagte geschlossene Netz, auf das sequentiell zugegriffen wird, einen Datenring (1) umfaßt und wobei der besagte Schritt des Annehmens einer Arbeitsanforderung den Schritt des Empfangens der besagten Arbeitsanforderung vom besagten Datenring umfaßt.
5. Verfahren nach Anspruch 1, weiterhin mit folgenden Schritten:
Vergleichen einer Ursprungsadresse einer vom besagten Ring empfangenen Arbeitsanforderung mit einer Kennzeichnung eines Prozessors, der die besagte Arbeitsanforderung empfängt; und
wenn der besagte Vergleich eine Paarigkeit ergibt, Übertragen der besagten Arbeitsanforderung zu einem nächsten Prozessor am besagten geschlossenen Netz nach einer vorgegebenen Verzögerung.
6. Verfahren nach Anspruch 5, weiterhin mit dem Schritt des Verlängerns der besagten vorgegebenen Verzögerung für eine nachfolgende Wiederübertragung der besagten Arbeitsanforderung.
7. Verfahren nach Anspruch 1, wobei Mitglieder einer Art von Arbeitsanforderung mit unterschiedlichen Prioritäten übertragen werden, wobei jede Priorität mit einer anderen Arbeitsanforderungszieladresse verbunden ist, und wobei der besagte Annahmeschritt den Schritt des Annehmens einer Arbeitsanforderung einer gegebenen Art und einer gegebenen Priorität umfaßt, wenn die Adresse dieser Art und Priorität in der Liste enthalten ist.
8. Verfahren nach Anspruch 1, wobei unterschiedliche der besagten Mehrzahl von Prozessoren, die Arbeitsanforderungen derselben Klasse übertragen, diese Arbeitsanforderungen mit unterschiedlichen Arbeitsanforderungszieladressen kennzeichnen, weiterhin mit dem Schritt des Übertragens einer Arbeitsanforderung einer ersten Klasse von einem ersten Prozessor, wobei die besagte Arbeitsanforderung durch die mit der besagten ersten Klasse und dem besagten ersten Prozessor verbundene Arbeitsanforderungszieladresse gekennzeichnet ist.
9. Verfahren nach Anspruch 1, wobei eine Art von Arbeitsanforderung eine Mehrzahl von Prioritäten umfaßt und wobei jede der besagten Prioritäten der besagten Art von Arbeitsanforderung durch eine andere Arbeitsanforderungszieladresse gekennzeichnet ist, wobei der besagte Zuweisungsschritt den Schritt des Zuweisens von Listen von Adressen umfaßt, eine Liste für jeden von jeweiligen der besagten Prozessoren, wobei jede Liste eine Mehrzahl von Prioritäten von Arten von Arbeitsanforderungen darstellt.
10. Verfahren nach Anspruch 1, weiterhin mit folgendem Schritt: bei einem beliebigen der besagten jeweiligen der besagten Prozessoren übertragen, zu einem nächsten Prozessor am besagten geschlossenen Netz, einer Arbeitsanforderung, die über das besagte geschlossene Netz empfangen und durch eine erste Arbeitsanforderungszieladresse gekennzeichnet worden ist, wenn die besagte erste Arbeitsanforderungszieladresse nicht in der besagten Liste des besagten beliebigen Prozessors enthalten ist.
11. Verfahren nach Anspruch 1, wobei der besagte Zuweisungsschritt den folgenden Schritt umfaßt:
Zuweisen einer Arbeitsanforderungszieladresse für jede Klasse von Arbeitsanforderung zu jedem von mindestens zwei Prozessoren, weiterhin mit dem Schritt des Übertragens der besagten Arbeitsanforderung zu einem nächsten Prozessor, wenn die besagte erste Arbeitsanforderungszieladresse nicht in der besagten Liste des besagten beliebigen Prozessors enthalten ist;
wodurch mindestens ein Prozessor des besagten geschlossenen Netzes, auf das sequentiell zugegriffen wird, zum Bearbeiten jeder Klasse von Arbeitsanforderung zur Verfügung steht, selbst wenn ein Prozessor nicht mehr zur Bedienung von Arbeitsanforderungen verfügbar ist.
12. Verfahren nach Anspruch 1, wobei der besagte Annahmeschritt den Schritt des Vergleichens der besagten ersten Arbeitsanforderungszieladresse mit Mitgliedern der besagten Liste von Adressen des besagten beliebigen Prozessors umfaßt;
wobei der besagte Zuweisungsschritt den Schritt des Initialisierens einer Bitmap umfaßt, bei der jedes ihrer Bits einen Zustand für den zugewiesenen Status und einen anderen Zustand für den nichtzugewiesenen Status aufweist, für Adressen, die dem besagten beliebigen Prozessor zuweisbar sind, und wobei die besagten Löschund Wiedereinfügungsschritte jeweils das Ändern des Zustandes eines dem besagten Mitglied zugewiesenen Bits in den nichtzugewiesenen bzw. zugewiesenen Status umfassen.
13. Verfahren nach Anspruch 1, wobei der besagte Annahmeschritt den Schritt des Vergleichens der besagten ersten Arbeitsanforderungszieladresse mit Mitgliedern der besagten Liste von Adressen des besagten beliebigen Prozessors umfaßt, wobei der besagte Zuweisungsschritt den Schritt des Initialisierens der besagten Liste von Adressen, die dem besagten beliebigen Prozessor zugewiesen ist, in einem inhaltsadressierbaren Speicher umfaßt, und die besagten Lösch- und Wiedereinfügungsschritte jeweils das Löschen bzw. Wiedereinfügen des besagten Mitgliedes umfassen.
14. Verfahren nach Anspruch 1, wobei eine Art von Arbeitsanforderung eine Mehrzahl von Prioritäten umfaßt und wobei jede der besagten Prioritäten der besagten Art von Arbeitsanforderung durch eine andere Arbeitsanforderungszieladresse gekennzeichnet ist, weiterhin mit folgenden Schritten:
Vergleichen einer Ursprungsadresse einer vom besagten geschlossenen Netz empfangenen Arbeitsanforderung mit einer Kennzeichnung eines Prozessors, der die besagte Arbeitsanforderung empfängt; und
wenn der besagte Vergleich eine Paarigkeit ergibt, Erhöhen der Priorität der besagten empfangenen Arbeitsanf orderung und Übertragen der besagten Arbeitsanforderung zu einem nächsten Prozessor am besagten geschlossenen Netz.
15. Verfahren nach Anspruch 14, wobei jede der besagten Mehrzahl von Prioritäten der besagten Art von Arbeitsanf orderung durch eine andere Arbeitsanforderungszieladresse gekennzeichnet ist, wobei der besagte Schritt des Erhöhens von Priorität den Schritt des Änderns einer Arbeitsanforderungszieladresse der besagten empfangenen Arbeitsanforderung in eine Arbeitsanforderungszieladresse für eine höhere Priorität derselben Art von Arbeitsanforderungen umfaßt.
16. Verfahren nach Anspruch 1, wobei das Übertragen über das besagte geschlossene Netz, auf das sequentiell zugegriffen wird, im wesentlichen aus dem Übertragen über einen zusammengeschalteten Datenring besteht;
wobei der Schritt des Zuweisens von Listen das Initialisieren einer Bitmap umfaßt, bei der jedes ihrer Bit einen Zustand für einen zugewiesenen Status und einen anderen Zustand für einen nichtzugewiesenen Status aufweist, für Arbeitsanforderungszieladressen, die dem besagten beliebigen Prozeß zuweisbar sind, und wobei die besagten Lösch- und Wiedereinfügungsschritte jeweils das Ändern eines Bits der besagten Bitmap, das dem besagten Mitglied zugewiesen ist, in den nicht zugewiesenen bzw. zugewiesenen Status umfassen;
wobei der besagte beliebige Prozessor eine Warteschlange zum Speichern von Arbeitsanforderungen umfaßt, und wobei die besagten Lösch- und Wiedereinfügungsschritte jeweils folgendes umfassen: Bestimmen, ob die Belastung des besagten beliebigen Prozessors einen ersten Schwellwert überschreitet bzw. Bestimmen, ob die besagte Belastung unter einem zweiten Schwellwert liegt, durch Feststellen der Länge der besagten Warteschlange;
weiterhin mit folgenden Schritten:
Vergleichen einer Ursprungsadresse einer vom besagten geschlossenen Netz empfangenen Arbeitsanforderung mit einer Kennzeichnung eines Prozessors, der die besagte Arbeitsanforderung empfängt;
wenn der besagte Vergleich einer Ursprungsadresse eine Paarigkeit ergibt, Erhöhen einer Priorität der besagten empfangenen Arbeitsanforderung und Übertragen der besagten empfangenen Arbeitsanforderung zu einem nächsten Prozessor am besagten geschlossenen Netz, wobei das besagte Erhöhen von Priorität das Ändern einer Arbeitsanforderungszieladresse der besagten empfangenen Arbeitsanforderung in eine Arbeitsanforderungszieladresse für eine höhere Priorität derselben Art von Arbeitsanforderung umfaßt;
wenn der besagte Vergleich einer Ursprungsadresse eine Paarigkeit ergibt und die besagte Priorität der besagten Arbeitsanforderung nicht erhöht werden kann, Übertragen der besagten Arbeitsanforderung zu einem nächsten Prozessor am besagten geschlossenen Netz nach einer vorgegebenen Verzögerung; und
Verlängern der besagten vorgegebenen Verzögerung für eine nachfolgende Wiederübertragung der besagten Arbeitsanforderung.
17. Multiprozessorsystem mit einem Prozessor-Prozessor-Kommunikationsnetz (1) und einer Mehrzahl von Knoten (2, 8), wobei jeder Knoten einen programmgesteuerten Prozessor (2) umfaßt, mit folgendem:
einem Schnittstellenmittel einem (8) in jedem Knoten zum Zusammenschalten des besagten Netzes mit dem Prozessor des besagten jeweiligen Knotens zur Annahme von Arbeit von einem anderen Prozessor in einem der besagten Prozessoren, wenn eine Belastung des besagten Prozessors unter einem ersten Schwellwert liegt;
dadurch gekennzeichnet, daß das besagte Netz einen die besagte Mehrzahl von Knoten zusammenschaltenden Datenring (1) umfaßt;
das besagte Schnittstellenmittel (8) zum Zusammenschalten jedes der besagten Mehrzahl von Knoten mit dem besagten Datenring und zum Erkennen von Arbeitsanforderungsnachrichten auf dem besagten Datenring bestimmt ist, wobei das besagte Schnittstellenmittel weiterhin folgendes umfaßt: Mittel zum Erkennen von Arbeitsanforderungsnachrichten (210, 215, 223), wobei jede Nachricht eine von einer Mehrzahl von Arbeitsanforderungszieladressen (22) für vom angeschlossenen Prozessor angenommene Arbeitsanforderungen umfaßt; Mittel zum Annehmen dieser Arbeitsanforderungsnachrichten; Mittel zum Sperren weiterer Übertragung zu anderen Schnittstellenmitteln von angenommenen Arbeitsanforderungsnachrichten (225); und Mittel zum ilbertragen abgewiesener Arbeitsanforderungsnachrichten zu einem nächsten Schnittstellenmittel (225); wobei eine Mehrzahl der besagten Schnittstellenmittel jeweilige der besagten Arbeitsanforderungszieladressen annimmt;
jedes der besagten Schnittstellenmittel unter Programmsteuerung (210) betreibbar ist und auf Anzeigen einer Last von vom angeschlossenen Prozessor angenommenen Arbeitsanforderungen reagiert, um jeweilige der besagten Arbeitsanforderungszieladressen (8) aus dem besagten Mittel zum Erkennen (215) zu löschen oder hinzuzufügen (9), wenn eine Last einen ersten Schwellwert überschrei tet bzw. einen zweiten Schwellwert unterschreitet;
wobei eine Mehrzahl von Arbeitsanforderungszieladressen einer Art von Arbeitsanforderung zugewiesen ist, wobei jeweilige der besagten Mehrzahl von Arbeitsanforderungszieladressen unterschiedlichen Prioritäten ent sprechen und wobei mindestens einer der besagten Knoten weiterhin folgendes umfaßt:
Ein Mittel zum Erkennen (128) einer Paarigkeit zwischen einer Ursprungsadresse einer Arbeitsanforderungsnachricht und einer Kennzeichnung eines Prozessors des besagten mindestens einen Knotens; und
auf besagtes Mittel zum Erkennen reagierende Mittel zum Wiederübertragen (130, 140) der besagten Nachricht mit einer Arbeitsanforderungszieladresse entsprechend einer höheren Priorität für eine Art von Arbeitsanforderung der besagten Arbeitsanforderungsnachricht.
DE1989626564 1988-10-27 1989-10-18 Multiprozessor-Belastungsteilungsanordnung Expired - Fee Related DE68926564T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US26358088A 1988-10-27 1988-10-27

Publications (2)

Publication Number Publication Date
DE68926564D1 DE68926564D1 (de) 1996-07-04
DE68926564T2 true DE68926564T2 (de) 1996-11-07

Family

ID=23002370

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1989626564 Expired - Fee Related DE68926564T2 (de) 1988-10-27 1989-10-18 Multiprozessor-Belastungsteilungsanordnung

Country Status (5)

Country Link
EP (1) EP0366344B1 (de)
JP (1) JP2530918B2 (de)
CA (1) CA1318409C (de)
DE (1) DE68926564T2 (de)
ES (1) ES2087081T3 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2618135B2 (ja) * 1991-10-21 1997-06-11 日本電信電話株式会社 分散形処理システムにおける負荷分散制御方式
JPH05265975A (ja) * 1992-03-16 1993-10-15 Hitachi Ltd 並列計算処理装置
JPH0756868A (ja) * 1993-08-10 1995-03-03 Nec Corp 分散型データ処理方式
JP3658420B2 (ja) 1994-04-14 2005-06-08 株式会社日立製作所 分散処理システム
SE9404295D0 (sv) * 1994-12-09 1994-12-09 Ellemtel Utvecklings Ab Sätt och anordning vid telekommunikation
US6026425A (en) * 1996-07-30 2000-02-15 Nippon Telegraph And Telephone Corporation Non-uniform system load balance method and apparatus for updating threshold of tasks according to estimated load fluctuation
JPH10105205A (ja) * 1996-09-27 1998-04-24 Hitachi Ltd 資材所要量計算方法およびシステム
FR2766592B1 (fr) * 1997-07-23 1999-08-27 Bull Sa Dispositif et procede de regulation dynamique de l'attribution des ressources sur un systeme informatique
US6148324A (en) * 1998-01-05 2000-11-14 Lucent Technologies, Inc. Prioritized load balancing among non-communicating processes in a time-sharing system
WO2000045263A2 (en) * 1999-02-01 2000-08-03 Mpath Interactive, Inc. Adaptive thread manager
SE522271C2 (sv) 2000-07-05 2004-01-27 Ericsson Telefon Ab L M Förfarande och anordning i kopplingsnod för ett telesystem
EP1419598A4 (de) * 2001-07-25 2007-12-19 Atitania Ltd Lastausgleich in einem verteilten verarbeitungssystem
US7986625B2 (en) 2002-12-10 2011-07-26 International Business Machines Corporation Resource-aware system, method and program product for managing request traffic based on a management policy
JP5460143B2 (ja) * 2009-06-29 2014-04-02 キヤノン株式会社 データ処理装置、データ処理方法およびプログラム
JP5414506B2 (ja) * 2009-12-18 2014-02-12 キヤノン株式会社 データ処理装置、データ処理方法、及びプログラム
US11176065B2 (en) * 2019-08-12 2021-11-16 Micron Technology, Inc. Extended memory interface

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4654654A (en) * 1983-02-07 1987-03-31 At&T Bell Laboratories Data network acknowledgement arrangement

Also Published As

Publication number Publication date
EP0366344A3 (de) 1992-05-13
ES2087081T3 (es) 1996-07-16
CA1318409C (en) 1993-05-25
EP0366344B1 (de) 1996-05-29
DE68926564D1 (de) 1996-07-04
EP0366344A2 (de) 1990-05-02
JPH02178755A (ja) 1990-07-11
JP2530918B2 (ja) 1996-09-04

Similar Documents

Publication Publication Date Title
DE68926564T2 (de) Multiprozessor-Belastungsteilungsanordnung
DE3850881T2 (de) Verfahren und Vorrichtung zur Nachrichtenübertragung zwischen Quellen- und Zielanwender durch einen anteilig genutzten Speicher.
DE69827053T2 (de) Verfahren zur Zuteilung von Betriebsmitteln in einem digitalen Datenübertragungsnetzwerk
DE69227151T2 (de) Vorrichtung und Verfahren um Steuerinformationen eines Rechnersystems einzustellen
DE69906604T2 (de) Rechnersystem und Verfahren zur Zuordnung von Speicherraum zu Kommunikationsportpuffern
DE69534758T2 (de) Verfahren und System für Mehrfachübertragung
DE69619213T2 (de) System und Verfahren zur Lastverteilung eines Datei-Servers
DE69327576T2 (de) Paralleles Rechnersystem
US5155858A (en) Twin-threshold load-sharing system with each processor in a multiprocessor ring adjusting its own assigned task list based on workload threshold
DE69332751T2 (de) Server und Klient
DE69818141T2 (de) Verfahren und Vorrichtung zur dynamischen Verwaltung von Kommunikationspuffern mit Paketvermittlungsdaten für einen Drucker
DE60219999T2 (de) Taskverwaltungsverfahren für einen Router einer Paketvermittlungsstelle, die Teil eines gesicherten und Paketvermittelten Netzes ist
DE3887594T2 (de) Verteiltes überwachungssystem für lokales netz.
DE60203057T2 (de) Effizienter Optimierungsalgorithmus für Speichergebrauch in Netzwerkanwendungen
DE69631695T2 (de) Verfahren und vorrichtung zum senden von elektronischen postnachrichten in einem lokalen netz
DE69328804T2 (de) Verteilung von Übertragungsverbindungen über mehrere Dienstzugriffspunkte in einem Kommunikationsnetz
DE3642324C2 (de) Multiprozessoranlage mit Prozessor-Zugriffssteuerung
DE3751487T2 (de) Verfahren zur Steuerung eines Datenübertragungspuffers.
DE69030037T2 (de) Verfahren zur Verkehrsregelung in einem Hochgeschwindigkeitsdatennetz
DE2912738A1 (de) System mit direkter uebertragung zwischen subsystemen
DE69719669T2 (de) Dynamische Peripheriesteuerung von E/A-Puffern in Peripheriegeräten mit modularer Ein-/Ausgabe
DE3872145T2 (de) Datenuebertragungsnetzwerk.
DE3853162T2 (de) Gemeinsamer intelligenter Speicher für die gegenseitige Verbindung von verteilten Mikroprozessoren.
DE3853337T2 (de) Mechanismus und Verfahren zur Fernverwaltung von Speichern.
DE3851507T2 (de) Flusssteuerungssystem für Bus.

Legal Events

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