DE68926564T2 - Multiprozessor-Belastungsteilungsanordnung - Google Patents
Multiprozessor-BelastungsteilungsanordnungInfo
- 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
Links
- 230000015654 memory Effects 0.000 claims description 31
- 238000000034 method Methods 0.000 claims description 31
- 230000005540 biological transmission Effects 0.000 claims description 4
- 230000000903 blocking effect Effects 0.000 claims 1
- 230000006870 function Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000003111 delayed effect Effects 0.000 description 3
- 230000003466 anti-cipated effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/505—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17337—Direct 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.
- 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.
- 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.
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4654654A (en) * | 1983-02-07 | 1987-03-31 | At&T Bell Laboratories | Data network acknowledgement arrangement |
-
1989
- 1989-03-30 CA CA000595186A patent/CA1318409C/en not_active Expired - Fee Related
- 1989-10-18 DE DE1989626564 patent/DE68926564T2/de not_active Expired - Fee Related
- 1989-10-18 ES ES89310698T patent/ES2087081T3/es not_active Expired - Lifetime
- 1989-10-18 EP EP19890310698 patent/EP0366344B1/de not_active Expired - Lifetime
- 1989-10-27 JP JP1278816A patent/JP2530918B2/ja not_active Expired - Lifetime
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 |