DE68927375T2 - Arbitrierung von Übertragungsanforderungen in einem Multiprozessor-Rechnersystem - Google Patents
Arbitrierung von Übertragungsanforderungen in einem Multiprozessor-RechnersystemInfo
- Publication number
- DE68927375T2 DE68927375T2 DE68927375T DE68927375T DE68927375T2 DE 68927375 T2 DE68927375 T2 DE 68927375T2 DE 68927375 T DE68927375 T DE 68927375T DE 68927375 T DE68927375 T DE 68927375T DE 68927375 T2 DE68927375 T2 DE 68927375T2
- Authority
- DE
- Germany
- Prior art keywords
- requests
- resources
- reserved
- available
- request
- 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
- 230000005540 biological transmission Effects 0.000 title description 3
- 239000013598 vector Substances 0.000 claims abstract description 87
- 238000004891 communication Methods 0.000 claims abstract description 32
- 238000000034 method Methods 0.000 claims description 26
- 238000012545 processing Methods 0.000 claims description 17
- 230000006872 improvement Effects 0.000 claims description 2
- 239000000872 buffer Substances 0.000 description 17
- 230000004044 response Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 3
- 241001522296 Erithacus rubecula Species 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- HRANPRDGABOKNQ-ORGXEYTDSA-N (1r,3r,3as,3br,7ar,8as,8bs,8cs,10as)-1-acetyl-5-chloro-3-hydroxy-8b,10a-dimethyl-7-oxo-1,2,3,3a,3b,7,7a,8,8a,8b,8c,9,10,10a-tetradecahydrocyclopenta[a]cyclopropa[g]phenanthren-1-yl acetate Chemical compound C1=C(Cl)C2=CC(=O)[C@@H]3C[C@@H]3[C@]2(C)[C@@H]2[C@@H]1[C@@H]1[C@H](O)C[C@@](C(C)=O)(OC(=O)C)[C@@]1(C)CC2 HRANPRDGABOKNQ-ORGXEYTDSA-N 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000977 initiatory 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
- Bus Control (AREA)
- Exchange Systems With Centralized Control (AREA)
Description
- Diese Erfindung bezieht sich allgemein auf Multiprozessor-Computersysteme, in denen eine Systemsteuereinheit (SCU) zum parallelen Betreiben mehrerer Zentraleinheiten (CPUS) und anderer Systemeinheiten verwendet wird. Insbesondere bezieht sich diese Erfindung auf ein Zuteilungsschema, das einer SCU in einem Multiprozessorsystem ermöglicht, Kommunikationsanforderungen von verschiedenen Systemports vor allem zwischen den CPUS, den Eingabe/Ausgabe-Einheiten und dem Systemspeicher effizient zuzuteilen.
- Die Techniken der Mehrfachverarbeitung, in denen mehrere Prozessoren an definierten Aufgaben durch Problemzerlegung und parallele Verarbeitung arbeiten können, wobei Computeranweisungen in eine Reihe kleinerer und weniger komplexer Operationen unterteilt werden, die nacheinander pipelineartig durch dafür vorgesehene funktionale Einheiten, die für spezifische Zwecke optimiert sind, ausgeführt werden, werden üblicherweise in Hochleistungscomputern verwendet. In solchen Computersystemen werden hohe Ausführungsgeschwindigkeiten und eine Betriebsredundanz mittels mehrerer Kommunikationswege erzielt, die zwischen den mehreren Prozessoreinheiten und Eingabe/Ausgabe-Einheiten zusammen mit parallelen wegen zum Massenspeicher und zu anderen Vorrichtungen vorgesehen sind.
- In einem Multiprozessorsystem wird die parallele Operation der mehreren CPUs mit dem Systemspeicher, den Eingabe/Ausgabe-Vorrichtungen und anderen Einheiten des Computersystems typischerweise durch eine Systemsteuereinheit (SCU) koordiniert, die sämtliche Systemeinheiten, die an sie angeschlossen sind, miteinander verbindet und eine Kommunikation zwischen den Einheiten für einen effizienten Austausch von Daten und verwandten Steuersignalen schafft. Die SCU hält sämtliche Systemkomponenten aktiv, vermeidet dabei Konflikte zwischen den Einheiten und arbeitet im wesentlichen in der Weise, daß sie Kommunikationsanforderungen zwischen dem Systemspeicher und den über die verschiedenen Ports mit der SCU verbundenen Systemeinheiten liefert. Da aufeinanderfolgende Kommunikationsanforderungen bei der SCU ankommen, ist kritisch, daß die Anforderungen von verschiedenen Ports in der Weise verarbeitet werden, die nicht nur die Systembetriebsmittel für eine Erleichterung des parallelen Betriebs am effizientesten gebraucht, sondern außerdem sicherstellt, daß jeder anfordernde Port gerecht behandelt wird, indem seine Anforderung innerhalb einer vernünftigen Zeitperiode verarbeitet wird. Diese Anforderungen, d. h. die Systemeffizienz und die Gerechtigkeit zwischen den Einheiten sind inhärent konfliktträchtig, wobei die Erzielung eines optimalen Kompromisses zwischen beiden eine schwierige Aufgabe bei der Implementierung effizienter Zuteilungsschemata ist.
- Herkömmliche Zuteilungsschemata neigen dazu, bei der Schaffung einer vernünftigen Antwortperiode ineffizient zu sein und bei Verwendung in Multiprozessorsystemen als Folge von Engpässen, die durch gesicherte Kommunikationsanforderungen erzeugt werden, zusammenzubrechen. Beispielsweise kann ein "Round-Robin"-Schema, in dem sämtliche Anforderungen entsprechend ihrer Ankunftszeit bei der SCU verarbeitet werden, eine gerechte Zuteilung sicherstellen; ein solches Schema ist jedoch hinsichtlich der Verwendung der Systembetriebsmittel sehr ineffizient, weil eine Anforderung, die sich am Anfang der Zuteilungswarteschlange befindet, Anforderungen hinter ihr wirksam aussperrt, bis sämtliche von der vorderen Anforderung geforderten Betriebsmittel verfügbar sind, unabhängig von der Tatsache, daß Betriebsmittel, die von nachfolgenden wartenden Anforderungen gefordert werden, in Wirklichkeit verfügbar sind.
- Es wird zum Beispiel der Fall des Zugriffs auf einen Speicher betrachtet, welcher mehrere Speichersegmente enthält, die unabhängig zyklisch durchlaufen werden können. Falls in der "Round-Robin"-Methode zwei anfordernde Ports A und B, wobei sich die Anforderung A in der Zuteilungswarteschlange vor der Anforderung B befindet, bei der SCU anstehen und die Anforderung A einen Zugriff auf ein Speichersegment erfordert, das momentan benutzt wird, während die Anforderung B die Verwendung eines Speichersegments erfordert, das momentan verfügbar ist, wird die Anforderung B zu dem Zeitpunkt, zu dem das von der Anforderung A geforderte Speicherseument frei ist, so daß die Anforderung A zuerst bedient werden kann, unnötigerweise von einer Bedienung ausgesperrt wird. Die mittlere Ansprechzeit pro Kommunikationsanforderung wird ungebührend erhöht, ferner ist dieses Schema für die Paralleloperation nicht nützlich.
- Eine weitere Möglichkeit ist die Verwendung des sogenannten "Sofotausführungs"-Schemas der Zuteilung, in dem die bei der SCU ankommenden Kommunikationsanforderungen sequentiell abgefragt werden und diejenigen Anforderungen, die Betriebsmittel erfordern, die zum Zeitpunkt des Abfragens nicht verfügbar sind, ignoriert werden, während eine sequentiell auftretende Anforderung, für die Betriebsmittel verfügbar sind, sofort verarbeitet wird. Obwohl eine solche Methode die zu einem gegebenen Zeitpunkt verfügbaren Systembetriebsmittel effizient nutzt, ist sie unpraktisch, weil eine Anforderung vollständig ausgesperrt werden kann, falls nicht sämtliche von der Anforderung geforderten Betriebsmittel jedesmal, wenn die Anforderung als Teil der Zuteilungsfolge abgefragt wird, verfügbar sind.
- Ein effizientes Zuteilungsschema, durch das Kommunikationsanforderungen von verschiedenen Systemeinheiten in einem Multiprozessorsystem für die optimale Verwendung von verfügbaren Betriebsmitteln zugeteilt werden, während gleichzeitig sichergestellt ist, daß sämtliche derartigen Anforderungen in einer vernünftigen Zeitperiode berücksichtigt werden, basiert auf dem Konzept des Identifizierens sämtlicher Betriebsmittel, die für die Erfüllung ankommender Kommunikationsanforderungen zum Zeitpunkt der Zuteilung benötigt werden, des Berücksichtigens von Anforderungen, für die sämtliche geforderten Betriebsmittel verfügbar sind, des Umgehens von Anforderungen, für die geforderte Betriebsmittel nicht verfügbar sind, nachdem die nicht verfügbaren geforderten Betriebsmittel reserviert worden sind, und des Weiterführens der Zuteilung durch abwechselndes Abfragen von nachfolgenden neuen Anforderungen und von Anforderungen, denen reservierte Betriebsmittel zugeordnet sind.
- Das Zuteilungssystem arbeitet in Verbindung mit einem Paar von Betriebsmittelvektoren: 1) mit einem Vektor (RR) für angeforderte Betriebsmittel, der sämtliche Betriebsmittel repräsentiert, die angefordert werden, um einen Befehl auszuführen, der eine zum Zeitpunkt der Zuteilung ausstehende Anforderung begleitet; und 2) mit einem Vektor (RA) für verfügbare Betriebsmittel, der sämtliche Betriebsmittel repräsentiert, die zum Zeitpunkt des Abfragens verfügbar sind. Die Identifizierung von Anforderungen, für die angeforderte Betriebsmittel zum Zeitpunkt der Zuteilung verfügbar sind, wird durch Vergleichen der zwei Betriebsmittelvektoren erzielt. Falls festgestellt wird, daß die beiden Vektoren übereinstimmen, ist dies ein Hinweis darauf, daß sämtliche angeforderten Betriebsmittel verfügbar sind. Falls die Betriebsmittelvektoren nicht übereinstimmen, ist dies ein Hinweis darauf, daß wenigstens einige der angeforderten Betriebsmittel nicht verfügbar sind und daß die betreffende Anforderung in den reservierten Zustand versetzt wird. Eine ähnliche Übereinstimmungsprüfung wird ausgeführt, wenn eine reservierte Anforderung zugeteilt wird; wenn jedoch in diesem Fall die Vektoren nicht übereinstimmen, werden sämtliche entsprechenden angeforderten Betriebsmittel durch Speichern des RA-Vektors in den reservierten Zustand versetzt, so daß die Betriebsmittel für nachfolgende Anforderungen unverfügbar gemacht werden können.
- Ein Artikel des Standes der Technik mit dem Titel "Distributing of Tasks Among the Units of a Computer Network" in der Veröffentlichung "Automatic Control and Computer Sciences", Bd. 20, 2. November 1986, Seiten 1-8, ist auf das Problem der Verteilung von Aufgaben auf die Basis-Computerzentren, die gemeinsam genutzt werden und die den Kern eines solchen Netzes bilden, gerichtet. Darin wird ein Ganzzahl-Programmierungsverfahren mit Boolschen Variablen gelehrt. Alternativen, die spezifische Merkmale des angesprochenen Problems berücksichtigen, werden geprüft und als Lösungen vorgeschlagen. Die vorliegende Erfindung verwendet eine Zuteilungsmethode zur Problemlösung.
- Kurz zusammengefaßt werden gemäß dem Zuteilungsschema der Erfindung, die in den Ansprüchen 1 und 5 angegeben ist, sämtliche Einheiten, die an die SCU (d. h. an sämtliche SCU-Ports) angeschlossen sind, sequentiell abgefragt, wobei Anforderungen anfangs entsprechend einem im voraus definierten hierarchischen Prioritätsschema zugeteilt werden, gemäß dem Prioritäten an Anforderungen zugeteilt werden, die bei der SCU ankommen. Im ersten Durchlauf der Abfragesequenz werden sämtliche Anforderungen, die berücksichtigt werden können, ausgeführt, während Anforderungen, die unverfügbare Betriebsmittel anfordern, in einen reservierten Status versetzt werden. Im nachfolgenden Durchlauf werden sämtliche reservierten Anforderungen vom vorhergehenden Durchlauf erneut abgefragt, um festzustellen, ob die entsprechenden reservierten Betriebsmittel zu diesem Zeitpunkt verfügbar sind. Irgendwelche reservierten Anforderungen, für die die angeforderten Betriebsmittel seitdem verfügbar geworden sind, werden berücksichtigt. Reservierte Anforderungen, für die die angeforderten Betriebsmittel noch immer unverfügbar sind, werden im reservierten Status gehalten; weiterhin werden die entsprechenden Betriebsmittel als reservierte Betriebsmittel gespeichert, um eine Übersicht über reservierte Betriebsmittel zu erzeugen, die für nachfolgende Anforderungen verfügbar gemacht werden. Während des dritten Durchlaufs werden irgendwelche neuen Anforderungen, die seit der vorhergehenden Abfrage gespeichert worden sind und für die angeforderte Betriebsmittel verfügbar sind, berücksichtigt. Im dritten Durchlauf wird jedoch keine Reservierung von Betriebsmitteln vorgenommen. Diese abwechselnde Abfrage von "reservierten" und "neuen" Anforderungen wird in nachfolgenden Durchläufen so lange fortgesetzt, bis sämtliche reservierten Anforderungen berücksichtigt worden sind, d. h. bis keine der Systembetriebsmittel mehr im reservierten Stätus sind, wobei an diesem Punkt eine neue Übersicht reservierter Anforderungen begonnen wird.
- Wie weiter unten im einzelnen erläutert wird, arbeitet das obige Zuteilungsschema ununterbrochen, weil ankommende Kommunikationsanforderungen kontinuierlich verarbeitet werden, ohne einer besonderen Anforderung zu ermöglichen, die Zuteilung der folgenden Anforderungen unnötigerweise zu verhindern. Durch Sicherstellen, daß sämtliche Anforderungen, die als Teil eines Zuteilungsdurchlaufs reserviert sind, berücksichtigt werden, bevor die Reservierung von Betriebsmitteln nachfolgender Anforderungen begonnen wird, verhindert das Zuteilungsschema, daß eine anfordernde Einheit ausgesperrt wird.
- Bei der Implementierung des Zuteilungsschemas dieser Erfindung werden gemäß einer bevorzugten Ausführungsform Befehlsumformungseinrichtungen verwendet, um ein Verzeichnis sämtlicher Kommunikationsbefehle zu speichern, welche vom System verarbeitet werden können, wobei jeder Eintrag im Verzeichnis mit einer entsprechenden Liste sämtlicher Betriebsmittel, die für die Ausführung des besonderen Befehls erforderlich sind, indexiert ist. Alle bei der SCU ankommenden Anforderungen werden in einer Prioritätseinrichtung gespeichert, die ankommende Anforderungen in sequentieller Ordnung akzeptiert und an ihrem Ausgang eine einzige Anforderung verfügbar macht, die unter den gespeicherten Anforderungen auf der Grundlage eines im voraus definierten Prioritätsschemas die höchste Priorität besitzt. Befehle, die mit ankommenden Kommunikationsanforderungen in Beziehung stehen, werden in einer Befehlspuffereinrichtung gespeichert. Eine Multiplexeranordnung, die durch die von der Prioritätszuteilungseinrichtung ausgewählten Anforderung indexiert wird, wird dazu verwendet, den der ausgewählten Anforderung entsprechenden Befehl zur Befehlsumformungseinrichtung zu schikken, die als Antwort darauf einen Betriebsmittelvektor erzeugen kann, der sämtliche Betriebsmittel angibt, die für die Verarbeitung des Befehls erforderlich sind.
- Die SCU ist mit einer Einrichtung zum Halten eines aktualisierten Satzes von Betriebsmitteln, die zum Zeitpunkt der Zuteilung verfügbar sind, versehen, um einen Vektor verfügbarer Betriebsmittel zu erzeugen. Dieser Vektor wird mittels einer Komparatoranordnung mit dem Betriebsmittelvektor, der der von der Prioritätseinrichtung bestimmten momentan ausstehenden Anforderung entspricht, verglichen, um festzustellen, ob sämtliche Betriebsmittel, die für die Ausführung des der zugeteilten Anforderung zugeordneten Befehls erforderlich sind, verfügbar sind. Falls festgestellt wird, daß die zwei Betriebsmittelvektoren übereinstimmen, bewirkt der Komparatorausgang die Berücksichtigung der ausgewählten Anforderung. Falls jedoch die Betriebsmittelvektoren nicht übereinstimmen, bewirkt die Komparatoranordnung, daß der SCU-Port, der der anfordernden Einheit entspricht, welche die Kommunikationsanforderung eingeleitet hat, als im reservierten Status befindlich gekennzeichnet wird. Wenn eine reservierte Anforderung zugeteilt wird, wird der Vektor der angeforderten Betriebsmittel erneut mit dem momentanen Vektor verfügbarer Betriebsmittel verglichen. Falls die Vektoren noch immer nicht übereinstimmen, bewirkt der Komparatorausgang, daß der Vektor angeforderter Betriebsmittel in einem Betriebsmittelreservierungsvektor gespeichert wird; falls die Vektoren übereinstimmen, wird die reservierte Anforderung berücksichtigt und aus der Liste der reservierten Anforderungen entnommen. Die zyklische Operation dieser physikalischen Anordnung basiert auf dem Zuteilungsschema, das oben zusammengefaßt worden ist und weiter unten im einzelnen beschrieben wird.
- Andere Aufgaben und Vorteile der Erfindung werden deutlich beim Lesen der folgenden genauen Beschreibung und mit Bezug auf die Zeichnungen, in denen:
- Fig. 1 ein Blockschaltbild ist, das ein Multiprozessor- Computersystem veranschaulicht, das eine Systemsteuereinheit (SCU) zum Betreiben mehrerer Prozessoren und Eingabe/Ausgabe-Einheiten verwendet, in der das Zuteilungsschema dieser Erfindung wirksam verwendet werden kann.
- Fig. 2A, 2B und 2C Flußdiagramme sind, die die sequentielle Prozedur veranschaulichen, auf der das Zuteilungsschema dieser Erfindung basiert;
- Fig. 3 ein Blockschaltbild einer bevorzugten Einrichtung zum Implementieren des Zuteilungsschemas von Fig. 2 in einem Multiprozessorsystem des in Fig. 1 gezeigten Typs ist;
- Fig. 4 eine schematische Darstellung ist, die eine Anordnung zum Implementieren des bevorzugten hierarchischen Prioritätsschemas für die Auswahl von Anforderungen für die Zuteilung veranschaulicht;
- Fig. 5 eine Tabelle ist, die die bevorzugte Darstellung der verschiedenen Systembetriebsmittel auflistet, die von den Betriebsmittelvektoren identifiziert und in der Befehlsumformungseinrichtung verwendet werden, um den angeforderten Betriebsmittelvektor zu erzeugen; und
- Fig. 6 eine schematische Darstellung ist, die eine bevorzugte Logikanordnung für die Implementierung des Betriebsmittelkomparators von Fig. 3 veranschaulicht.
- Obwohl die Erfindung für verschiedene Abwandlungen und alternative Formen geeignet ist, sind in den Zeichnungen beispielhaft spezifische Ausführungsformen von ihr gezeigt worden, die hier im einzelnen beschrieben werden. Selbstverständlich ist jedoch nicht beabsichtigt, die Erfindung auf die besonderen offenbarten Formen einzuschränken, statt dessen soll die Erfindung sämtliche Abwandlungen, Äquivalente und Alternativen abdecken, die in den Geist und den Umfang der Erfindung fallen, die durch die beigefügten Ansprüche definiert sind.
- Nun wird auf die Zeichnungen und insbesondere auf Fig. 1 Bezug genommen, in der ein vereinfachtes Blockschaltbild eines Multiprozessorsystems 10 gezeigt ist, das mehrere Zentraleinheiten (CPUs) 12 verwendet und so beschaffen ist, daß es einen gleichzeitigen, d. h. parallelen Betrieb der System-CPUs ermöglicht, indem es ihnen erlaubt, einen gemeinsamen Speicher 16 für das System gemeinsam zu nutzen. Der Hauptspeicher 16 selbst enthält typischerweise mehrere Speichereinheiten 16A und 16B. Eine Systemsteuereinheit (SCU) 14 verbindet die CPUs 12 mit dem Hauptspeicher 16 und mit einer Eingabe/Ausgabe-Steuereinrichtung (E/A-Steuereinrichtung) 18. Die E/A-Steuereinrichtung erlaubt dem Verarbeitungssystem im allgemeinen und den CPUS im besonderen, mit der äußeren Welt über geeignete E/A-Schnittstellen 20 und zugeordnete E/A-Einheiten 20A für das System zu kommunizieren. Die SCU 14 kann außerdem die verschiedenen Systemmodule mit einer Dienstprozessor-/Kontrolleinheit (SPU) 22 verbinden, die herkömmliche Kontrollfunktionen einschließlich der Statusbestimmung und der Steuerung des Gesamtbetriebs des Verarbeitungssystems ausführen kann. In dem Multiprozessorsystem von Fig. 1 erfolgt eine effiziente Kommunikation zwischen den Systemeinheiten, die über die SCU 14 und den Hauptspeicher 16 verbunden sind, und insbesondere zwischen jeder System-CPU 12 und den einzeln adressierbaren Segmenten, die jede Speichereinheit 16A, 16B enthält, über eine hierzu vorgesehene Schnittstelleneinrichtung 30. Die spezifische Konfiguration des Hauptspeichers und die besondere Weise, in der die SCU mit dem Speicher über eine Schnittstelle verbunden ist, ist für die vorliegende Erfindung nicht wichtig und wird daher hier nicht im einzelnen diskutiert. Es wird hierbei für Einzelheiten der bevorzugten Schnittstelleneinrichtung auf die gleichzeitig anhängige EP-A-0 380 844, Gagliardo u. a., mit dem Titel "Method And Means For Interfacing A System Control Unit For A Multi-Processor System With The System Main Memory", die ebenfalls auf den Anmelder der vorliegenden Erfindung lautet, verwiesen. Für die Beschreibung der vorliegenden Erfindung ist es ausreichend anzugeben, daß jede Speichereinheit 16A, 16B des Hauptspeichers 16 vorzugsweise auf zwei Speicherports an der SCU aufgeteilt ist, wobei jeder Port mit zwei einzeln adressierbaren Segmenten verbunden ist und sämtliche Segmente an Blockgrenzen verschachtelt sind, wie im einzelnen in der obenerwähnten gleichzeitig anhängigen Anmeldung beschrieben ist.
- Jede Systemeinheit wie etwa eine CPU oder eine E/A-Einheit ist an die SCU 14 über einen diskreten Port angeschlossen, wobei sämtliche Kommunikationsanforderungen und spezifischer sämtliche Zugriffsanforderungen zwischen dem Speicher und den Systemeinheiten am entsprechenden Port der SCU anliegen. Die SCU 14 arbeitet in der Weise, daß sie die Systemeinheiten aktiv hält, wobei Konflikte zwischen den Einheiten vermieden werden, indem Anforderungen für Kommunikationen zwischen der Systemeinheit und dem Systemspeicher, die an den verschiedenen Ports der SCU empfangen werden, behandelt werden. Da die verschiedenen CPUs und E/A-Einheiten im Multiprozessorsystem parallel betrieben werden, werden gewöhnlich von der SCU mehrere Kommunikationsanforderungen empfangen. Weiterhin kann eine Anzahl solcher Anforderungen typischerweise den Zugriff auf die gleichen Systembetriebsmittel erfordern, um die Anforderungen durch Ausführen der ihnen zugeordneten Befehle zu berücksichtigen.
- Es ist daher eine wichtige Funktion der SCU, an ihren Ports empfangene Anforderungen von den Systemeinheiten in einer Weise zu verarbeiten, die die Systembetriebsmittel am effizientesten nutzt und weiterhin jede ankommende Systemanforderung gerecht behandelt, indem sie die Anforderung innerhalb einer vernünftigen Zeitperiode verarbeitet. Genauer ist die Technik, auf deren Grundlage die SCU an ihren Ports anliegende Anforderungen von den Systemeinheiten zuteilt, um die zweifache Forderung nach einer Systemeffizienz und einer Gerechtigkeit zwischen den Einheiten zu erreichen, einer der Hauptfaktoren, die die Gesamtbetriebseffizienz des Verarbeitungssystems beeinflussen. Wie oben diskutiert, sind herkömmliche Zuteilungsschemata, die beispielsweise auf der "Round-Robin"-Methode oder auf der "Sofortausführungs"-Methode basieren, für die Verwendung in Multiprozessorsystemen nicht zufriedenstellend, weil sie keine effiziente Nutzung der Systembetriebsmittel in Kombination mit einer vernünftigen Antwortperiode bei der Zuteilung der Kommunikationsanforderungen schaffen.
- Gemäß der vorliegenden Erfindung wird ein neues Zuteilungsschema geschaffen, das von einer SCU für die effiziente Zuteilung von Systemeinheiten in einem Multiprozessorsystem des mit Bezug auf Fig. 1 beschriebenen Typs ausgehenden Anforderungen verwendet werden kann. Das Zuteilungsschema basiert auf dem Konzept der Identifizierung sämtlicher Betriebsmittel, die für die Berücksichtigung ankommender Kommunikationsanforderungen durch Ausführen der zugeordneten Befehle benötigt werden, des Berücksichtigens von Anforderungen, für die sämtliche angeforderten Betriebsmittel zum Zeitpunkt der Zuteilung verfügbar sind, des Versetzens von Anforderungen, für die nicht alle angeforderten Betriebsmittel zum Zeitpunkt der Zuteilung verfügbar sind, in den reservierten Status, des Reservierens der entsprechenden angeforderten Betriebsmittel, wenn eine reservierte Anforderung nicht berücksichtigt werden kann, des Weiterführens der Zuteilung durch abwechselndes Abfragen vorher reservierter Anforderungen, die ihnen zugeordnete reservierte Betriebsmitteln besitzen, und anschließend empfangener neuer Anforderungen sowie des Berücksichtigens von Anforderungen, für die angeforderte Betriebsmittel verfügbar sind oder geworden sind. Um sämtliche Betriebsmittel zu identifizieren, die für die Berücksichtigung ankommender Anforderungen erforderlich sind, verwendet das Zuteilungssystem dieser Erfindung gemeinsam ein Paar von vom System erzeugten Betriebsmittelvektoren wie folgt:
- 1) einen Vektor (RR) für angeforderte Betriebsmittel, der sämtliche Systembetriebsmittel identifiziert, die für die Ausführung eines eine ausgewählte Anforderung begleitenden Befehls zum Zeitpunkt der Zuteilung erforderlich sind; und
- 2) einen Vektor (RA) für verfügbare Betriebsmittel, der sämtliche Systembetriebsmittel identifiziert, die zum Zeitpunkt der Zuteilung tatsächlich verfügbar sind.
- Um jene Anforderungen zu identifizieren, für die sämtliche erforderlichen Betriebsmittel zum Zeitpunkt der Zuteilung verfügbar sind, werden die zwei Betriebsmittelvektoren RR und RA miteinander verglichen. Falls festgestellt wird, daß die Betriebsmittelvektoren übereinstimmen, ist dies ein klarer Hinweis darauf, daß sämtliche erforderlichen Betriebsmittel verfügbar sind. Falls die Betriebsmittelvektoren nicht übereinstimmen, ist dies ein Hinweis darauf, daß wenigstens einige der für die Ausführung des entsprechenden Befehls erforderlichen Betriebsmittel momentan nicht verfügbar sind, was anzeigt, daß die betreffende Anforderung momentan nicht berücksichtigt werden kann. Daher wird eine ankommende Anforderung ausgeführt, wenn die Vektoren übereinstimmen, und in den reservierten Zustand versetzt, wenn die Vektoren nicht übereinstimmen. Falls festgestellt wird, daß die für die Ausführung einer reservierten Anforderung erforderlichen Betriebsmittel nicht verfügbar sind, d. h. falls der RR- Vektor für eine reservierte Anforderung und der RA-Vektor nicht übereinstimmen, werden sie in den reservierten Zustand versetzt, so daß diese Betriebsmittel die Berücksichtigung reservierter Anforderungen ermöglichen, sobald sie verfügbar werden. Der RA-Vektor wird konkurrent eingestellt, um den reservierten Status dieser Betriebsmittel widerzuspiegeln, indem die reservierten Betriebsmittel für nachfolgende Anforderungen unverfügbar gemacht werden. Die folgende Beschreibung wird sich auf die sequentielle Prozedur konzentrieren, auf der das Zuteilungsschema dieser Erfindung basiert. Die Zuteilung basiert auf der sequentiellen Abfrage sämtlicher SCU-Ports, die für die Aufnahme von Kommunikationsanforderungen von entsprechenden Systemeinheiten verfügbar sind.
- Ankommende Anforderungen werden während der Abfrageroutine gesammelt und für die nachfolgende Zuteilung gespeichert. Die Auswahl von Anforderungen für die Zuteilung aus dem gespeicherten Anforderungsverzeichnis basiert auf einem einfachen hierarchischen Schema, das gemäß einer bevorzugten Ausführungsform mehrere Anforderungen an einem gegebenen Port auf einer Erste-Ankunft/Erste-Zuteilung-Basis, die auf die Ankunftszeit von Anforderungen am Port bezogen ist, mit Prioritäten versieht und ferner sämtliche gesammelten Anforderungen während einer gegebenen Abfrageroutine auf der Grundlage einer im voraus definierten Prioritätshierarchie mit Prioritäten versieht.
- Gemäß einem Merkmal dieser Erfindung verwendet die Zuteilungssequenz drei getrennte Zuteilungsdurchläufe, wobei jeder Durchlauf die Auswahl und die Zuteilung sämtlicher Anforderungen umfaßt, die während einer einzelnen Abfrageroutine gesammelt werden. Genauer werden während eines ersten Durchlaufs der Abfragesequenz (des "Reservierungs"-Durchlaufs) Anforderungen berücksichtigt, für die sämtliche erforderlichen Betriebsmittel, die dem zugeordneten Befehl entsprechen, zum Zeitpunkt der Zuteilung verfügbar sind. Außerdem werden während des Reservierungs-Durchlaufs Anforderungen, für die nicht alle der erforderlichen Betriebsmittel verfügbar sind, für eine weitere Zuteilung in einen reservierten Status versetzt.
- Im nachfolgenden Zuteilungs-Durchlauf (dem "Neuprüfungs"- Durchlauf) werden nur jene Anforderungen zugeteilt, die im vorhergehenden Reservierungs-Durchlauf reserviert worden sind, indem diese reservierten Anforderungen, für die entsprechende reservierte Betriebsmittel seit dem Zeitpunkt, zu dem die Anforderungen in den reservierten Status versetzt wurden, verfügbar geworden sind, berücksichtigt werden. Außerdem werden während des Neuprüfungs- Durchlaufs jene reservierten Anforderungen, für die die erforderlichen Betriebsmittel, die dem zugeordneten Befehl entsprechen, noch immer nicht verfügbar sind, in einem reservierten Status gehalten; weiterhin werden die entsprechenden erforderlichen Betriebsmittel wie durch die entsprechenden RR-Vektoren dargestellt, als Verzeichnis reservierter Betriebsmittel in den reservierten Zustand versetzt.
- Während des dritten Zuteilungs-Durchlaufs (dem "Nichtreservierungs"-Durchlauf) werden nur jene neuen Anforderungen zugeteilt, die von der SCU seit der vorhergehenden Abfrageroutine angenommen worden sind, indem Anforderungen berücksichtigt werden, für die sämtliche entsprechenden erforderlichen Betriebsmittel verfügbar sind. Es erfolgt jedoch als Teil des dritten Durchlaufs keine Reservierung von Betriebsmitteln. Diese abwechselnde Abfrage von "reservierten" und "neuen" Anforderungen wird in nachfolgenden Durchläufen fortgesetzt, bis sämtliche reservierten Anforderungen, die sich aus dem anfänglichen Reservierungs-Durchlauf ergeben, berücksichtigt worden sind. An diesem Punkt gibt es keine ausstehenden reservierten Anforderungen, ferner werden die Identifizierung nicht ausführbarer Anforderungen, die reserviert werden müssen, und die Erzeugung des Verzeichnisses zugeordneter reservierter Betriebsmittel erneut begonnen, indem ein neuer Reservierungs-Durchlauf ausgeführt wird, dem erneut die abwechselnde Ausführung von Neuprüfungs- und Nichtreservierungs-Durchläufen folgt, wenn die Zuteilung fortschreitet.
- Nun wird mit Bezug auf die Fig. 2A, 2B und 2C eine genauere Erläuterung der verschiedenen Prozedurschritte gegeben, die in der Ausführung der drei Zuteilungsdurchläufe gemäß dem Zuteilungsschema dieser Erfindung enthalten sind. Insbesondere in Fig. 2A ist ein Flußdiagramm 50 für den Reservierungs-Durchlauf gezeigt. Wie darin gezeigt, werden im ersten Schritt 51 Anforderungen von abgefragten Ports der SCU empfangen und zusammen mit den zugeordneten Befehlen gespeichert. Wenn zum Zweck der Erläuterung angenommen wird, daß die Anzahl der an die SCU angeschlossenen Einheiten und daher die Anzahl der SCU- Ports gleich "P" ist und wenn angenommen wird, daß sämtliche Ports je eine einzige Kommunikationsanforderung annehmen, ist die Anzahl der Anforderungen und Befehle, die für die Zuteilung von der SCU während einer einzigen Abfrageroutine gesammelt werden, ebenfalls gleich "P". Im Schritt 52 werden die gespeicherten Anforderungen auf der Grundlage des ausgewählten hierarchischen Prioritätsschemas mit Prioritäten versehen, wobei beispielsweise bei der obersten Priorität "N" begonnen wird.
- Im folgenden Schritt 53 wird die Anforderung REQN mit der momentan höchsten Priorität als nächste für die Zuteilung gewählt, wobei der entsprechende gespeicherte Befehl CMDN entnommen wird. Im Schritt 54 wird der Vektor RRN für erforderliche Betriebsmittel, der dem ausgewählten Befehl entspricht, erzeugt. Im folgenden Schritt 55 wird der Vektor RA für verfügbare Betriebsmittel erzeugt, anschließend werden die beiden Betriebsmittelvektoren im Schritt 56 miteinander verglichen, um festzustellen, ob sämtliche für den ausgewählten Befehl erforderlichen Betriebsmittel momentan verfügbar sind. Falls die Antwort im Schritt 56 negativ ist, wird die betreffende Anforderung REQN im Schritt 57 in einen reservierten Status versetzt.
- Falls die Antwort im Schritt 56 positiv ist, d. h. falls sämtliche Betriebsmittel, die für die zugeteilte Anforderung erforderlich sind, tatsächlich verfügbar sind, wird auf den Schritt 58 zugegriffen, in dem das Zuteilungsschema die Verarbeitung der Anforderung einleitet. Die Ausführung entweder des Schrittes 57 oder des Schrittes 58 führt zum Schritt 59, wo geprüft wird, ob sämtliche von den SCU-Ports gesammelten Anforderungen zugeteilt worden sind. Falls die Antwort im Schritt 59 negativ ist, wird auf einen Schritt 60 zugegriffen, wo der Prioritätsparameter N inkrementiert wird, bevor zum Schritt 53 der Reservierungs-Durchlauf-Sequenz zurückgekehrt wird, so daß die ausstehende Anforderung mit der momentan höchsten Priorität für die Zuteilung ausgewählt wird. Die obenbeschriebene Ablaufsequenz wird solange wiederholt, bis sämtliche mit Priorität versehenen Anforderungen tatsächlich zugeteilt worden sind, wobei dann die Antwort im Schritt 59 positiv ist und auf den Schritt 61 zugegriffen wird, wo der Neuprüfungs-Durchlauf des Zuteilungsschemas begonnen wird.
- Fig. 2B zeigt ein Flußdiagramm, das die Prozedursequenz darstellt, die in der Ausführung des Neuprüfungs-Durchlaufs des Zuteilungsschemas gemäß dieser Erfindung enthalten ist. Der Neuprüfungs-Durchlauf 70 wird im Schritt 71 begonnen und enthält die sequentielle Zuteilung von Anforderungen, die während des anfänglichen Reservierungs-Durchlaufs in einem reservierten Status gespeichert worden sind. Im Schritt 72 wird eine Prüfung ausgeführt, um festzustellen, ob das Reservierungsregister leer ist, d. h. um festzustellen, ob sämtliche als Teil des anfänglichen Reservierungs-Durchlaufs in den reservierten Status versetzte Anforderungen anschließend berücksichtigt worden sind, so daß momentan keine ausstehenden reservierten Anforderungen vorhanden sind. Falls die Antwort positiv ist, wird auf einen Schritt 73 zugegriffen, wo die Zuteilung weitergeführt wird, indem zum Reservierungs-Durchlauf zurückgekehrt wird. Andernfalls wird auf einen Schritt 74 zugegriffen, wo der erforderliche Befehl CMDX, der der am längsten ausstehenden, reservierten Anforderung RREQX entspricht, für die Zuteilung ausgewählt wird. Zur Erläuterung wird angenommen, daß "Q" reservierte Anforderungen zugeteilt werden müssen, wobei der Suffix "X" die am längsten ausstehende, reservierte Anforderung zum Zeitpunkt der Zuteilung bezeichnet. Im Schritt 75 wird der entsprechende Vektor RRX für erforderliche Betriebsmittel erzeugt.
- Anschließend wird im Schritt 76 der Vektor RRX mit dem Vektor RA für verfügbare Betriebsmittel verglichen. Im Schritt 77 wird festgestellt, ob sämtliche Betriebsmittel, die für die Berücksichtigung der ausgewählten Anforderung erforderlich sind, momentan verfügbar sind. Falls die Antwort im Schritt 77 negativ ist, werden sämtliche erforderlichen Betriebsmittel, die der Anforderung REQX entsprechen, wie durch den Vektor RRX angegeben, im Schritt 78 im Register für reservierte Betriebsmittel gespeichert. Anschließend wird auf einen Schritt 79 zugegriffen, wo der Vektor RA für verfügbare Betriebsmittel so eingestellt wird, daß die durch den Vektor RRN dargestellten reservierten Betriebsmittel für die nachfolgenden Anforderungen unverfügbar gemacht werden.
- Falls jedoch im Schritt 77 die Antwort positiv ist, wird auf einen Schritt 80 zugegriffen, wo die Verarbeitung der ausgewählten Anforderung begonnen wird, bevor zur Ablaufsequenz im Schritt 79 zurückgekehrt wird, wo der Vektor RA für verfügbare Betriebsmittel entsprechend eingestellt wird. Dann wird auf einen Schritt 81 zugegriffen, wo eine Prüfung ausgeführt wird, um festzustellen, ob sämtliche ausstehenden reservierten Anforderungen zugeteilt worden sind. Falls die Prüfung im Schritt 81 eine negative Antwort ergibt, wird in einem Schritt 82 der den reservierten Status angebende Parameter X inkrementiert, woraufhin im Schritt 72 erneut in die Ablaufsequenz eingetreten wird, so daß die momentan am längsten ausstehende, reservierte Anforderung als nächste für die Zuteilung gewählt werden kann. Falls andererseits die Prüfung im Schritt 81 ein positives Ergebnis ergibt, d. h. falls sämtliche ausstehenden, reservierten Anforderungen tatsächlich zugeteilt worden sind, geht die Ablaufsequenz weiter zum Nichtreservierungs-Durchlauf im Schritt 83.
- In Fig. 2C ist ein Flußdiagramm veranschaulicht, das die Sequenz definiert, die in dem Nichtreservierungs-Durchlauf gemäß dem Zuteilungsschema dieser Erfindung enthalten ist. Der Nichtreservierungs-Durchlauf 90 wird beim Schritt 91 begonnen, wo sämtliche an den SCU-Ports von den anfordernden Systemeinheiten nach dem vorhergehenden Reservierungs-Durchlauf empfangenen Befehle oder ausstehenden Anforderungen an den Ports, die von jenen verschieden sind, die für die Zuteilung im Reservierungs- Durchlauf gewählt worden sind, gesammelt und zusammen mit den zugeordneten Befehlen gespeichert werden. Zur Erläuterung wird angenommen, daß die Gesamtzahl von Anforderungen/Befehlen, die im Nichtreservierungs-Durchlauf zugeteilt werden sollen, durch "K" gegeben ist. Im folgenden Schritt 92 werden die gespeicherten Anforderungen auf einer Basis ähnlich derjenigen, die im Prioritätsschritt 52 des Reservierungs-Durchlaufs (Fig. 2A) verwendet worden ist, mit Prioritäten versehen.
- Im Schritt 93 werden die Anforderung REQL mit dem höchsten ausstehenden Prioritätspegel (der hier zur Erläuterung mit "L" bezeichnet ist) sowie der entsprechende Befehl CMDL für die Zuteilung ausgewählt. Im folgenden Schritt 94 wird der Vektor RRL für erforderliche Betriebsmittel, der dem ausgewählten Befehl entspricht, erzeugt und im Schritt 95 mit dem Vektor RA für verfügbare Betriebsmittel verglichen. Im Schritt 96 wird eine Bestimmung ausgeführt, ob sämtliche für die Ausführung des ausgewählten Befehls erforderlichen Betriebsmittel verfügbar sind. Falls die Antwort im Schritt 96 negativ ist, wird auf einen Schritt 97 zugegriffen, wo eine Bestimmung ausgeführt wird, ob sämtliche mit Priorität versehenen Anforderungen zugeteilt worden sind. Falls die Antwort im Schritt 97 negativ ist, wird der Prioritätsparameter L im Schritt 98 inkrementiert, woraufhin im Schritt 93 erneut in die Ablaufsequenz eingetreten wird, so daß die Anforderung mit der momentan höchsten Priorität als nächste für die Zuteilung gewählt wird.
- Falls jedoch der Schritt 96 ergibt, daß sämtliche erforderlichen Betriebsmittel tatsächlich verfügbar sind, wird ein Schritt 99 erreicht, wo die Verarbeitung der ausgewählten Anforderung begonnen wird und anschließend bei 97 erneut in die Ablaufsequenz eingetreten wird, um festzustellen, ob sämtliche mit Priorität versehenen Anforderungen zugeteilt worden sind. Die obige Sequenz von Ereignissen wird solange wiederholt, bis eine positive Antwort im Schritt 97 erzeugt wird, was anzeigt, daß sämtliche mit Priorität versehenen Anforderungen tatsächlich zugeteilt worden sind, woraufhin die Sequenz zum Neuprüfungs-Durchlauf zurückkehrt, der im Schritt 99A begonnen wird.
- In Fig. 3 ist ein vereinfachtes Blockschaltbild gezeigt, das eine bevorzugte Anordnung 100 zum Implementieren des Zuteilungsschemas von Fig. 2, die für die Verwendung in einem Multiprozessorsystem des in Fig. 1 gezeigten Typs geeignet ist, veranschaulicht. An den SCU-Ports ankommende Anforderungen 112 werden in einer Prioritätseinrichtung 113 gespeichert, während entsprechende Befehle 114, die den ankommenden Anforderungen zugeordnet sind, angenommen und zunächst in einem getrennten Befehlspuffer 115 gespeichert werden. Die gespeicherten Befehle werden anschließend vom Puffer 115 an einen Multiplexer 117 übertragen, der so beschaffen ist, daß er ein Prioritätsindexsignal 116 von der Prioritätseinrichtung 113 annehmen kann und als Antwort darauf einen entsprechenden gespeicherten Befehl als ausgewählten Befehl 118 entnehmen kann.
- Gemäß einem Merkmal dieser Erfindung arbeitet die Prioritätseinrichtung 113 gemäß einem hierarchischen Auswahlschema, das auf der Auswahl der Anforderung basiert, die - ausgedrückt durch die Ankunftszeit beim SCU-Port - am längsten aussteht, wenn an einem gegebenen Port mehrere Anforderungen ankommen, und gemäß der Auswahl einer einzelnen Anforderung aus den von sämtlichen SCU-Ports gesammelten ausstehenden Anforderungen auf der Grundlage einer im voraus definierten Hierarchie von Quellen, welche Anforderungen aussenden. Genauer wird die Hierarchie für die Zuweisung von Prioritäten in die besondere Systemeinheit, die eine Kommunikationsanforderung aussendet, eingegeben; in einem solchen Schema wird die höchste Priorität vorzugsweise Anforderungen zugeteilt, die vom Speicher ausgehen, während Anforderungen von E/A-Einheiten eine relativ niedrigere Priorität erhalten und schließlich Anforderungen, die von den CPUs ausgehen, die niedrigste Priorität erhalten.
- Die Zuteilungstechnik dieser Erfindung und ihre Implementierung wird am besten verständlich durch Betrachten der SCU-Port-Konfiguration gemäß einer bevorzugten Ausführungsform dieser Erfindung, wobei die SCU so beschaffen ist, daß sie Kommunikationsanforderungen von vier CPUs, zwei Speichereinheiten und zwei E/A-Einheiten zuteilen kann. Daher sind an der SCU wenigstens acht Ports vorgesehen, die Anforderungen und zugeordnete Befehle von entsprechenden Systemeinheiten annehmen können. Ferner ist jeder der SCU-Ports so beschaffen, daß er mehrere Kommunikationsanforderungen von der entsprechenden Systemeinheit empfangen und aufnehmen kann. Kommunikationsanforderungen, denen eine Priorität gewährt worden ist, bewirken beispielsweise, daß für bestimmte Zeitperioden Datenübertragungswege durch die SCU reserviert werden, wie in der EP-A-0 380 851, Chinnasway u. a., mit dem Titel "Modular Crossbar Interconnection Network for Data Transmission Between System Units In A Multi-Processor System" weiter beschrieben ist.
- Vorzugsweise ist die SCU so beschaffen, daß sie an jedem CPU-Port in der SCU bis zu drei ausstehende Anforderungen und an jedem E/A-Einheit-Port und an jedem Speichereinheit-Port in der SCU bis zu zwei Anforderungen aufnehmen kann, so daß zu einem gegebenen Zeitpunkt an den SCU- Ports bis zu 20 Anforderungen ausstehen können, um von der Prioritätseinrichtung verarbeitet zu werden. Ähnlich müssen bis zu 20 entsprechende ankommende Befehle gespeichert werden, so daß der Befehlspuffer 115 mit einer entsprechenden Kapazität versehen ist, um dies zu ermöglichen.
- Fig. 4 zeigt eine bevorzugte Anordnung der Prioritätseinrichtung 113 für die Annahme von bis zu 20 ankommenden Anforderungen (REQ 0-REQ 19) an den SCU-Ports, um sie geeignet mit Prioritäten zu versehen, um eine einzelne Anforderung für die Zuteilung auszuwählen. Die Anordnung 160 enthält eine Reihe von Zwischenspeichern 161 für die Annahme ankommender Anforderungen von acht SCU-Ports, die vier CPU-Ports (CPU-Port 0, CPU-Port 1, CPU-Port 2 und CPU-Port 3) für die vier CPUs 1-4, zwei E/A-Ports (E/A- Port 0 und E/A-Port 1) für die zwei E/A-Einheiten sowie zwei Speicherports (MEM-Port 0 und MEM-Port 1) für die zwei Speicherports umfassen. Genauer ist für jeden SCU- Port, wo Kommunikationsanforderungen an die zugeordnete Systemeinheit und von der zugeordneten Systemeinheit empfangen werden können, mit einem einzelnen Zwischenspeicher versehen. Beispielsweise entspricht der Zwischenspeicher 0 dem CPU-Port 0, der so beschaffen ist, daß er Anforderungen REQ 0, REQ 1 und REQ 2 an die CPU 1 und von der CPU 1 empfangen kann.
- Die maximale Anzahl von ankommenden Anforderungen, die von einem CPU-Port aufgenommen werden können, im vorliegenden Fall 3, wird im Zwischenspeicher 0 nacheinander zwischengespeichert, so daß eine Anforderung, die als erste am Port ankommt, zu einem gegebenen Zeitpunkt die am längsten ausstehende Anforderung bildet und als die besondere Anforderung REQ 00, die vom CPU-Port 0 gesammelt wird, ausgelesen wird. Dieser Auswahltyp wird für die verbleibenden drei Zwischenspeicher fortgesetzt, die den SCU-Ports 1, 2, 3 entsprechen, die ihrerseits den CPUs 2, 3 bzw. 4 entsprechen. Beispielsweise entspricht der Zwischenspeicher 3 dem CPU-Port 3 und kann drei Anforderungen aufnehmen, die möglicherweise beim CPU-Port 3 anliegen, d. h. REQ 9, REQ 10 und REQ 11, um die am längsten ausstehende Anforderung der aufgenommenen Anforderungen als REQ 03 für die weitere Zuteilung auszuwählen.
- Auf einer ähnlichen Grundlage sind entsprechend den SCU- Ports 4, 5 für die E/A-Einheiten 0, 1 Zwischenspeicher 4 bzw. 5 vorgesehen. Genauer nimmt der Zwischenspeicher 4 zwei Anforderungen REQ 12 und REQ 13 vom E/A-Port 0 an, um die am längsten ausstehende der zwei Anforderungen als REQ 04 auszuwählen. Ähnlich nimmt der Zwischenspeicher 5 zwei Anforderungen REQ 14 und REQ 15 vom E/A-Port 1 an, um eine der beiden Anforderungen als ausstehende Anforderung REQ 05 auszuwählen.
- Ähnlich sind Zwischenspeicher 6, 7 entsprechend den SCU- Ports für die zwei Speichereinheiten 0, 1, die das System unterstützen, vorgesehen. Der Zwischenspeicher 6 nimmt insbesondere zwei Anforderungen REQ 16 und REQ 17 vom Speicherport 1 an, um aus ihnen die am längsten ausstehende Anforderung als REQ 06 auszuwählen. Der Zwischenspeicher 7 nimmt Anforderungen REQ 18 und REQ 19 vom Speicherport 0 an und wählt die am längsten ausstehende der beiden Anforderungen als REQ 07 aus. Tatsächlich arbeitet die Anordnung, die acht Zwischenspeicher 161 verwendet, die den acht SCU-Ports entsprechen, in der Weise, daß die am längsten ausstehende Anforderung an jedem SCU- Port gewählt wird, um bis zu acht Anforderungen zu sammeln; diese Sequenz des Abfragens jedes der acht SCU- Ports zum Sammeln einer einzigen ausstehenden Anforderung für jeden Port bildet eine einzelne Abfrageroutine. Die ausgewählten Anforderungen REQ 00-REQ 07 werden an ein Prioritätsauswahlnetzwerk 162 geliefert, das eine einfache Logikanordnung zum Entnehmen einer besonderen Anforderung auf der Grundlage einer im voraus definierten Hierarchie von Prioritätspegeln bildet.
- Wie oben beschrieben, basiert die Prioritätshierarchie vorzugsweise auf der Zuweisung der höchsten Priorität an Anforderungen, die sich in Speicherports befinden, auf der Zuweisung einer relativ niedrigeren Priorität an Anforderungen, die von E/A-Ports ausgehen, und auf der Zu- Weisung der niedrigsten Priorität an Anforderungen, die von CPU-Ports ausgehen. Genauer wird einem der zwei Speicherports, beispielsweise dem Speicherport 0, die höchste Priorität zugewiesen, so daß, wann immer REQ 07 aktiv ist, ihr die höchste Priorität zugewiesen wird und daher für die Zuteilung ausgewählt wird. Der nächste Prioritätspegel wird der REQ 06 vom Speicherport 1 zugewiesen. Ähnlich werden sukzessive niedrigere Prioritätspegel der REQ 05 vom E/A-Port 0, der REQ 04 vom E/A-Port 1, der REQ 03 vom CPU-Port 3, der REQ 02 vom CPU-Port 2, der REQ 01 vom CPU-Port 1 und der REQ 00 vom CPU-Port 0 zugewiesen.
- Eine besondere aktive Anforderung wird für die Zuteilung nur dann gewählt, wenn sämtliche Anforderungen mit höheren Prioritätspegeln inaktiv sind. Beispielsweise wird REQ 04, die dem E/A-Port 1 entspricht, für die Zuteilung nur dann gewählt, wenn REQ 05, REQ 06 und REQ 07 (die einen höheren Prioritätspegel als denjenigen von REQ 04 besitzen) inaktiv sind. Sobald eine besondere Anforderung für die Zuteilung auf der Grundlage ihres Prioritätspegels gewählt worden ist, wird ein entsprechender Prioritätsindex als ein Signal erzeugt, das die besondere der ankommenden 20 Anforderungen angibt, die für die Zuteilung gewählt worden ist, so daß der entsprechende Befehl, der der ausgewählten Anforderung zugeordnet ist, für die Zuteilung gewählt werden kann.
- Bei der Definition der Prioritätshierarchie sollte beachtet werden, daß die Schaffung lediglich eines Zugriffs auf den Speicher infolge einer Anforderung von einer Systemeinheit wie etwa einer CPU ohne Nutzen ist, wenn keine Übertragung der angeforderten Speicherdaten zurück zur anfordernden CPU vorgesehen ist, sobald die Daten vom Speicher verfügbar werden, wie durch einen darauf bezogenen Speicherbefehl angegeben ist. Es ist daher wichtig, daß nachfolgende CPU-Anforderungen, die an den Speicher gerichtet sind, durch Speicherbefehle ausgesetzt werden, die die Übertragung von Daten an die anfordernde Systemeinheit erfordern. Dies wird dadurch erzielt, daß solchen Speicherbefehlen die höchste Priorität zugewiesen wird. Wenn mehrere Speichereinheiten vorhanden sind, ist jeder Einheit einer von mehreren verschiedenen Prioritätspegeln zugewiesen, wovon jeder höher als jene ist, die den restlichen Systemeinheiten zugewiesen sind. Beispielsweise ist in der bevorzugten Ausführungsform, die zwei unabhängig zugreifbare Speichereinheiten besitzt, der Speichereinheit "0" die höchste Priorität (d. h. 1) zugewiesen, während der Speichereinheit 1 die nächsthöchste Priorität (d. h. 2) zugewiesen ist.
- Unterhalb der Prioritätspegel für Speichereinheiten sind die nächsthöchsten Pegel den E/A-Einheiten zugeordnet. Dies dient dazu, Konflikte zu vermeiden, die entstehen, wenn eine CPU, die bereits eine Operation einer E/A-Einheit angefordert hat und die Einheit dazu veranlaßt hat, die Operation auszuführen, anschließend die Ausführung weiterer Operationen von derselben Einheit anfordert, wodurch die E/A-Einheit stark belastet wird und eine effektive E/A-Antwort verhindert wird. Es ist daher wichtig, daß von E/A-Einheiten ausgehende Befehle höhere Prioritätspegel erhalten als jene, die von System-CPUs kommen. Beispielsweise sind in der bevorzugten Ausführungsform den System-E/A-Einheiten 0, 1 Prioritätspegel 3 bzw. 4 zugewiesen, die direkt unterhalb der Prioritätspegel für die beiden Speichereinheiten liegen. Schließlich sind den System-CPUs die niedrigsten Prioritätspegel zugeordnet; die vier CPUs 1-4 besitzen in der bevorzugten Ausführungsform beispielsweise die Prioritätspegel 4-7.
- Nun wird wieder auf Fig. 3 Bezug genommen, wo der Prioritätsindex 116, der von der Prioritätseinrichtung 113 erzeugt wird, an den Multiplexer 117 geliefert wird und als Wählsignal für die Auswahl eines besonderen der dem Multiplexer 117 zugeführten empfangenen Befehle dient, welcher der ankommenden Anforderung 112 mit der höchsten Priorität entspricht.
- Der ausgewählte Befehl 118 wird der Befehlsumformungseinrichtung 119 zugeführt, damit der Vektor 120 für erforderliche Betriebsmittel, der sämtliche Betriebsmittel repräsentiert, die für die Ausführung des ausgewählten Befehls 118 erforderlich sind, erzeugt wird. Genauer enthält die Befehlsumformungseinrichtung 119 eine Tabelle von im voraus definierten Listen, die sämtliche möglichen Kommunikationsbefehle im allgemeinen und Speicherbefehle im besonderen, die vom Verarbeitungssystem als ausführbar definiert sind, miteinander korrelieren. Hierzu werden die Kommunikationsbefehle, die am häufigsten von der SCU zugeteilt werden, vorzugsweise in Kategorien von Befehlen unterteilt, die erfordern, daß ähnliche Gruppen von erforderlichen Betriebsmitteln ausgeführt werden. Typische Kategorien enthalten Speicherlesevorgänge, Speicherschreibvorgänge, E/A-Lesevorgänge und E/A-Schreibvorgänge, obwohl weniger häufige Befehle wie etwa jene, die keinen Zugriff auf den Speicher und auf die E/A-Einheiten erfordern, jedoch Zugriff auf die Systemmikrocode-Warteschlange erfordern, sowie Befehle, die keinen Zugriff auf den Speicher oder die E/A-Einheiten oder die Mikrocode- Warteschlange für das System erfordern, ebenfalls kategorisiert werden können. Für jeden Befehl, der unter irgendeine dieser Befehlskategorien fällt, wird die spezifische Gruppe von Systembetriebsmitteln, die für die Ausführung des Befehls wesentlich sind, identifiziert, außerdem wird eine Tabelle, die spezifische Befehle korreliert, die erforderlichen Betriebsmitteln entsprechen, erzeugt.
- Den Fachleuten ist klar, daß das Zuteilungsschema nicht auf irgendeinen besonderen Typ oder eine besondere Kategorie von Systembetriebsmitteln eingeschränkt ist. Typische Betriebsmittel für die Ausführung normaler Befehle enthalten Befehlspuffer für System-CPUs und Speichereinheiten, Puffer für E/A-Vorrichtungen, Datenpfad-Quellen für CPUs, Speicher und E/A-Einheiten, Datenpfadziele für CPUs, Speichereinheiten und E/A-Einheiten. Weiterhin können auch bestimmte spezialisierte Betriebsmittel identifiziert werden, etwa die Verfügbarkeit des Zugriffs auf eine Mikrocode-Warteschlange und Datenwegkreuzungen, wenn indirekt verbundene Kreuzschienen-Module für die Datenübertragung zwischen Systemeinheiten und Speichersegmenten verwendet werden.
- Eine bevorzugte Anordnung für im voraus definierte Systembetriebsmittel, die für die Ausführung eines ausgewählten Befehls erforderlich sind, die bequem in Form eines 32-Bit-Vektors darstellbar ist, ist in Fig. 5 gezeigt. Jedes der 32 Bits stellt im positiven Fall ein spezifisches Systembetriebsmittel dar, das für die Ausführung eines besonders Systembefehls erforderlich ist. In Fig. 5 repräsentieren beispielsweise die Bits 0, 1, 2 und 3 die CPU-Befehlspuffer für die CPU 1, die CPU 2, die CPU 3 bzw. die CPU 4, während die Bits 4, 5 sowie 6, 7 die zwei Befehlspuffer für jedes Segment der Speichereinheiten eines Systemspeichers repräsentieren, welcher zwei getrennte, unabhängig zugreifbare Doppelsegment-Speichereinheiten enthält, und die Bits 8, 9 die Puffer für die Eingabe/Ausgabe-Einheiten 1, 2 repräsentieren usw. Für jeden Befehl, der im voraus durch Anwendung des Zuteilungsschemas gewählt wird, wird ein entsprechender RR- Vektor definiert, der in Form eines 32-Bit-Wortes sämtliche Systembetriebsmittel identifiziert, die für die Ausführung des Befehls erforderlich sind. Daher ist die Befehlsumformungseinrichtung im wesentlichen eine Einrichtung zum Speichern des Verzeichnisses eines zuteilungsfähigen Befehls zusammen mit den entsprechenden 32-Bit-RR- Vektoren. Jedesmal wird eine Anforderung für die Zuteilung gewählt. Der Prioritätsindex 116 bewirkt, daß der entsprechende Befehl vom MUX 117 entnommen wird und zu den Befehlsumformungseinrichtungen 119 geliefert wird, wobei als Antwort darauf der entsprechende gespeicherte RR-Vektor entnommen wird, um anschließend mit dem RA-Vektor verglichen zu werden.
- Das Zuteilungssystem von Fig. 3 enthält außerdem einen Monitor 121 für verfügbare Betriebsmittel, der eine momentane Aufzeichnung sämtlicher Systembetriebsmittel erzeugt, die für die Verwendung verfügbar sind, und der den Vektor 122 für verfügbare Betriebsmittel (RA) erzeugt, der in Kombination mit dem von der Befehlsumformungseinrichtung 119 erzeugten RR-Vektor 120 an die Betriebsmittel-Vergleichseinrichtung 123 geliefert wird.
- Der Betriebsmittelmonitor 121 ist im wesentlichen ein Modul, der direkt mit jedem der Systembetriebsmittel (wie in der Betriebsmitteltabelle von Fig. 5 identifiziert) verbunden ist, um die Verfügbarkeit jedes Betriebsmittels sicherzustellen und um als Antwort darauf das entsprechende Bit in einem den Vektor für verfügbare Betriebsmittel speichernden Register zü setzen oder zu löschen. Die tatsächliche physikalische Anordnung hierfür ist nicht wichtig; es wird lediglich gefordert, daß der Betriebsmittelmonitor 121 mit jedem der im voraus bezeichneten Systembetriebsmittel verbunden ist, so daß er in einem Format, das demjenigen des Vektors (RR) für erforderliche Betriebsmittel entspricht, einen Hinweis auf die zu irgendeinem gegebenen Zeitpunkt verfügbaren Systembetriebsmittel schaffen kann. Vorzugsweise ist der Betriebsmittelmonitor in Form von festverdrahteten Verbindungen von jedem bezeichneten Systembetriebsmittel zu einem Register für verfügbare Betriebsmittel implementiert, das wenigstens ein einziges Bit, das jedem Systembetriebsmittel entspricht, besitzt; wenn ein besonderes Systembetriebsmittel in Gebrauch ist, wird das entsprechende Bit im Register für verfügbare Betriebsmittel gesetzt, so daß der Ausgang des Registers die Verfügbarkeit von Systembetriebsmitteln angibt und den Vektor RA für verfügbare Betriebsmittel repräsentiert. Der Komparator 123 von Fig. 3 arbeitet in der Weise, daß er die zwei Betriebsmittelvektoren, die an ihn geliefert werden, vergleicht und ein "Prozeßanforderungs"-Signal 124 erzeugt, falls festgestellt wird, daß die zwei Vektoren RR und RA übereinstimmen, d. h. falls sämtliche vom gewählten Befehl 118 erforderten Betriebsmittel momentan verfügbar sind; das "Prozeßanforderungs"-Signal 124 ist dann für die Verwendung durch die SCU bei der Ausführung des ausgewählten Befehls in herkömmlicher Weise verfügbar.
- Der Komparator 123 ist außerdem so beschaffen, daß er ein Reservierungssignal 120 erzeugt, das bewirkt, daß der RR- Vektor an ein Betriebsmittel-Reservierungsregister (RRV) 125 geliefert wird, so daß die vom RR-Vektor bezeichneten erforderlichen Betriebsmittel darin gespeichert werden können, falls die miteinander verglichenen Betriebsmittelvektoren nicht übereinstimmen&sub4; Das RRV 125 ist ebenfalls mit dem Monitor 121 für verfügbare Betriebsmittel verbunden, so daß ein aktualisierter Vektor PA 112 für verfügbare Betriebsmittel hieraus erzeugt werden kann, der die Nichtverfügbarkeit der reservierten Betriebsmittel widerspiegelt, die durch den im Register 125 gespeicherten Vektor 120 für erforderliche Betriebsmittel bezeichnet sind. Das Reservierungssignal 120 kann auch dafür verwendet werden zu bewirken, daß die betreffende Anforderung als im reservierten Status befindlich bezeichnet wird und in einem Anforderungs-Reservierungsregister 126 für die nachfolgende Zuteilung gespeichert wird, nachdem sie von der Prioritätseinrichtung 113 und vom restlichen Zuteilungssystem von Fig. 3 verarbeitet worden ist.
- Alternativ kann das Betriebsmittel-Reservierungsregister 125 selbst mit der Betriebsmittel-Komparatoreinrichtung 123 in der Weise verbunden sein, daß der beim Komparator ankommende RR-Vektor ebenfalls mit den reservierten Betriebsmitteln verglichen wird, um sicherzustellen, daß verfügbare Betriebsmittel tatsächlich für die Ausführung eines ausgewählten Befehls nur dann verfügbar gemacht werden, wenn sie nicht vorher im RRV 125 reserviert worden sind.
- Im wesentlichen basiert das Zuteilungsschema dieser Erfindung auf der Bestimmung der Betriebsmittel, die für die Ausführung eines ausgewählten Befehls erforderlich sind, auf der Bestimmung, ob sämtliche erforderlichen Betriebsmittel verfügbar sind, nachdem zuerst sichergestellt worden ist, daß keines der verfügbaren Betriebsmittel für vorher zugeteilte Anforderungen reserviert worden ist, sowie auf der Reservierung sämtlicher erforderlichen Betriebsmittel, wenn festgestellt wird, daß irgendwelche der erforderlichen Betriebsmittel für einen besonderen Befehl entweder nicht verfügbar sind oder durch vorherige Anforderungen reserviert worden sind, und schließlich auf der Angabe von Anforderungen, die verarbeitet werden können, für welche sämtliche erforderlichen Betriebsmittel sowohl verfügbar als auch nicht für vorher ausgeführte Anforderungen reserviert sind.
- In Fig. 6 ist eine bevorzugte Logikanordnung für die Implementierung des obigen Schemas gezeigt, welches angibt, daß ein besonderer zugeteilter Prozeß berücksichtigt werden kann. Die Anordnung 170 enthält mehrere UND-Gatter 172, wovon jedes so beschaffen ist, daß es an seinen zwei Eingängen Signale annehmen kann, die die Verfügbarkeit bzw. den nicht reservierten Status eines besonderen Betriebsmittels angeben. Es sind so viele UND-Gatter 172 vorgesehen, wie diskrete Systembetriebsmittel vorhanden sind, die für die Verarbeitung von Kommunikationsanforderungen verwendet werden können. Gemäß einer bevorzugten Ausführungsform sind 32 derartige UND-Gatter 172 vorgesehen, um Statussignale anzunehmen, die mit den 32 bezeichneten Systembetriebsmitteln in Beziehung stehen. Der Ausgang jedes UND-Gatters 172 ergibt einen Hinweis auf die tatsächliche Verfügbarkeit des entsprechenden Betriebsmittels. Genauer nimmt der Ausgang nur dann hohen Zustand an, d. h. wird positiv, wenn beide Eingänge in das Gatter hoch sind, d. h. nur dann, wenn das entsprechende Betriebsmittel sowohl für die Verwendung durch das System verfügbar als auch nicht gleichzeitig für eine vorhergehende Anforderung reserviert ist.
- Für jedes UND-Gatter 172 wird das die Verfügbarkeit eines Betriebsmittels angebende Signal als einer der Eingänge an ein zweites UND-Gatter 174 geliefert, das außerdem an seinem Eingang ein Signal annimmt, das anzeigt, daß die Anforderung für die Ausführung eines ausgewählten Befehls erforderlich ist. Es ist zu beachten, daß das den erforderlichen Status des Betriebsmittels angebende Signal aus dem Vektor RR für erforderliche Betriebsmittel abgeleitet wird und den Status jenes Bits des RR-Vektors repräsentiert, das dem besonderen zu vergleichenden Betriebsmittel entspricht. Der Ausgang des UND-Gatters 174 wird folglich nur dann positiv, wenn beide Signale hoch sind, d. h. nur dann, wenn das besondere Betriebsmittel sowohl verfügbar als auch erforderlich ist.
- Der Ausgang des UND-Gatters 174 wird als einer von zwei Eingängen an ein Exklusiv-ODER-Gatter 176 geliefert; das Gatter wird außerdem mit dem Signal für erforderliche Betriebsmittel versorgt, das an das Gatter 174 an dessen zweiten Eingang geliefert wird. Die Exklusiv-ODER-Operation, die vom Gatter 176 ausgeführt wird, erzeugt einen Ausgang, der nur dann hoch ist, wenn die zwei an das Gatter gelieferten Eingangssignale verschieden sind. Daher wird der Ausgang des Gatters 176 nur dann hoch, wenn das Signal für verfügbare Betriebsmittel niedrig ist und das Signal für erforderliche Betriebsmittel hoch ist, d. h. nur dann, wenn das betreffende Betriebsmittel erforderlich, jedoch momentan nicht verfügbar ist. Die Ausgänge sämtlicher Exklusiv-ODER-Gatter 176, die sämtlichen Systembetriebsmitteln entsprechen, werden als Eingänge an ein ODER-Gatter 178 geliefert. Der Ausgang des Gatters 178 ist folglich immer dann hoch, wenn einer oder mehrere seiner Eingänge hoch sind, d. h. immer dann, wenn irgendeines der erforderlichen Systembetriebsmittel, die einer verarbeiteten Anforderung entsprechen, nicht verfügbar ist.
- Das Signal dient als Hinweis, das sämtliche für die besondere Anforderung erforderlichen Betriebsmittel reserviert werden müssen, und dient dazu, den Vektor für erforderliche Betriebsmittel, der von der Befehlsumformungseinrichtung erzeugt wird, an das Register RRV für reservierte Betriebsmittel zu übertragen.
- Der Ausgang jedes Exklusiv-ODER-Gatters 176 ist immer dann niedrig, wenn die beiden Signale an seinen Eingängen gleich sind; falls daher das betreffende Betriebsmittel für das System tatsächlich verfügbar ist, wie durch das Vorhandensein eines hohen Ausgangs am UND-Gatter 174 angezeigt wird, und falls die Betriebsmittel außerdem für die Ausführung des Befehls erforderlich sind, wie durch das ebenfalls hohe Signal für erforderliche Betriebsmittel angezeigt wird, ist auch der sich ergebende Ausgang des Gatters 176 hoch. Ein hoher Ausgang am Gatter 176 gibt daher an, daß die betreffende Anforderung für die Verarbeitung sowohl erforderlich als auch verfügbar ist. Um eine solche Bedingung zu beurteilen, werden die Ausgänge sämtlicher Exklusiv-ODER-Gatter 176 außerdem als Eingänge an ein NOR-Gatter 180 geliefert, das einen hohen Ausgang erzeugt, wenn sämtliche an das Gatter gelieferten Signale hoch sind. Falls daher die Signale am Ausgang sämtlicher Exklusiv-ODER-Gatter 176 der Vergleichsanordnung hoch sind, d. h. wenn sämtliche erforderlichen Betriebsmittel verfügbar und nicht reserviert sind, ist der Ausgang des NOR-Gatters 178 hoch und dient als Signal für den Beginn der Verarbeitung der betreffenden Anforderung.
- Die besondere Weise, in der die Ausgangssignale der Gatter 178 und 180 verwendet werden, um die Reservierung sämtlicher erforderlicher Betriebsmittel auszuführen, und die Verarbeitung von Zuteilungsanforderungen sind für die Implementierung dieses Zuteilungsschemas nicht kritisch; den Fachleuten sind viele herkömmliche Verfahren hierfür bekannt, so daß hier keine Einzelheiten angegeben werden müssen. Wichtig ist, daß das Reservierungssignal immer dann erzeugt wird, wenn eines oder mehrere der Betriebsmittel, die für die Ausführung eines besonderen Befehls erforderlich sind, entweder für das System nicht verfügbar sind oder in den reservierten Status versetzt worden sind, und daß das Prozeßanforderungssignal nur dann erzeugt wird, wenn sämtliche erforderlichen Betriebsmittel für die Ausführung eines Befehls momentan verfügbar sind. Die folgende Beschreibung verdeutlicht die bevorzugte Weise, in der die erforderlichen Betriebsmittel für einen ausgewählten Befehl in der Befehlsumformungseinrichtung (119 in Fig. 3) bezeichnet werden, um den entsprechenden RR-Vektor zu erzeugen. Die Auswahl der Gruppe von Befehlen, die für die Zuteilung bezeichnet werden, basiert darauf, aus der Gesamtgruppe von vom System ausführbaren Befehlen eine Untergruppe zu identifizieren, die eine begrenzte Anzahl von Befehlen repräsentiert, für die schnelle Ausführungszeiten kritisch sind; die übrigen Systembefehle können vom System-Mikrocode oder in Übereinstimmung mit einer anderen herkömmlichen Einrichtung verarbeitet werden. Die ausgewählte Untergruppe wird dann in eine Anzahl von umfangreichen Befehlskategorien unterteilt, wovon für jede eine gemeinsame Gruppe von erforderlichen Speicherbetriebsmitteln einfach identifiziert werden kann. Ein zugeteilter Befehl wird zunächst entsprechend herkömmlicher Techniken decodiert, wobei dann, wenn festgestellt wird, daß es sich um einen Speicherbefehl handelt, dieser Befehl anschließend als zu einer der im voraus definierten Befehlskategorien gehörend identifiziert wird. Vorzugsweise umfaßt die Befehlsuntergruppe die folgenden vier Speicherbefehl-Kategorien:
- Speicherlesevorgang;
- Speicherschreibvorgang;
- Eingabe/Ausgabe-Lesevorgang; und
- Eingabe/Ausgabe-Schreibvorgang.
- Für jede dieser Kategorien wird eine erschöpfende Liste von sämtlichen Befehlen vorbereitet, die darin bezeichnet werden können. Außerdem werden sämtliche Systembetriebsmittel bezeichnet, die für die Ausführung jedes der vier Typen von Befehlen erforderlich sind. Wenn daher ein decodierter Befehl als zu einer der Speicherbefehl-Kategorien gehörend identifiziert wird, ist die entsprechende Gruppe von erforderlichen Betriebsmitteln sofort bekannt. Auf diese Weise wird die Zuteilung von Speicherbefehlen erheblich beschleunigt und ist wegen des kritischen Bedarfs an einer sofortigen Verarbeitung von Speicherbefehlen von Systemeinheiten besonders vorteilhaft.
- Als typisches Beispiel erfordern Speicherschreiboperationen die Verwendung der folgenden Betriebsmittel, um ausgeführt zu werden: einen Speicherbefehlspuffer, der der besonderen Speichereinheit entspricht, auf die zugegriffen werden soll; einen Zielpfad an die besondere Speichereinheit und das darin befindliche Speichersegment; eine Datenwegkreuzung, falls die anfordernde Einheit eine modulare Ebene ist, die aus dem gewünschten Datenweg und -ziel entfernt ist; und einen Datenquellenweg für die den Befehl aussendende Systemeinheit. Daher werden immer dann, wenn für einen decodierten Befehl festgestellt wird, daß er unter die Speicherschreibvorgang-Kategorie fällt, die oben angegebenen Betriebsmittel als erforderliche Betriebsmittel bezeichnet; genauer wird der Betriebsmittel-Tabelleneintrag (siehe Fig. 5), der den Speicherschreibbefehlen entspricht, durch Versetzen der diesen Betriebsmitteln entsprechenden Bits in hohen Zustand repräsentiert. Falls beispielsweise der Befehl das Segment 1 in der Speichereinheit 1 adressiert und von der CPU 4 ausgeht, die als eine Datenwegkreuzung definiert worden ist, die den Zugriff auf die Speichereinheit 1 erfordert, würden im entsprechenden 32-Bit-RR-Vektor die Bits mit den Nummern 7, 24, 13 und 29 positiv sein. Typische Befehle, die unter die Speicherlesevorgang-Kategorie fallen, enthalten Lesen-Auffüllen, Schreiben-Auffüllen, Schreiben-Auffüllen-Verbinden, 5 chreiben-Auffüllen-Verriegeln, Schreiben-Auffüllen-Entriegeln, DMA-Lesen und DMA-Lesen-Verriegeln. Immer dann, wenn einer dieser Befehle in dieser Kategorie zugeteilt wird, enthält der entsprechende RR-Vektor die Betriebsmittel, die gemeinsam für diese Kategorie bezeichnet sind.
- Auf einer ähnlichen Basis sind die verbleibenden Kategorien so definiert, daß sie eine im voraus definierte Gruppe von gemeinsamen Betriebsmitteln enthalten. Die Speicherschreibvorgang-Kategorie enthält beispielsweise den Zurückschreib-, den DMA-Schreib- und den DMA-Schreib- Entriegelungs-Be fehl. Die E/A-Lesevorgang-Kategorie enthält den Befehl zum Lesen des E/A-Registers und die Dienstprozessor-Lesebefehle, während die E/A-Schreibvorgang-Kategorie den Befehl zum Schreiben in das E/A-Register und den Dienstprozessor-Schreibbefehl enthält. Befehle, die unter keine der Speicherbefehl-Kategorien fallen oder jene Befehle, die weitere Betriebsmittel erfordem, können einzeln definierte Gruppen von erforderlichen Betriebsmitteln für die Erzeugung entsprechender RR- Vektoren besitzen.
- Selbstverständlich können statt der Verwendung der Methode der "gemeinsamen Kategorie" sämtliche Systembefehle, die für die Operation unter dem Zuteilungsschema dieser Erfindung ausgewählt sind und alle Speicherbefehle umfassen, einzeln definierte Gruppen von erforderlichen Betriebsmitteln enthalten. In einer weiteren Alternative kann jedem ein Systembetriebsmittel repräsentierenden Bit eine entsprechende Gruppe von Systembefehlen zugeordnet sein, die das Bit bestätigen können; der entsprechende RR-Vektor könnte durch Decodieren eines Befehls, durch Vergleichen des Vektors mit jedem der Betriebsmittelbits sowie durch Bestätigen oder Negieren eines Bits auf der Grundlage, ob der Befehl in die dem Bit zugeordnete Befehlsgruppe fällt oder nicht, erzeugt werden. Daraus wird deutlich, daß das vorliegende Zuteilungsschema nicht auf ein besonderes Verfahren zum Erzeugen des RR-Vektors eingeschränkt ist; es ist lediglich erforderlich, daß das System eine Liste sämtlicher Systembetriebsmittel erzeugen kann, die für die Ausführung eines Befehls erforderlich sind, der der für die Zuteilung ausgewählten Anforderung zugeordnet ist.
- Wie aus der vorangehenden Beschreibung hervorgeht, enthält das Zuteilungsschema dieser Erfindung im wesentlichen das Einleiten der Zuteilung mittels eines Reservierungs-Durchlaufs, gefolgt von so vielen abwechselnden Neuprüfungs- und Nichtreservierungs-Durchläufen wie nötig, um sämtliche ausstehenden reservierten Anforderungen zuzuteilen und zu berücksichtigen. Wenn keine reservierten Anforderungen mehr anstehen, wird ein neuer Reservierungs-Durchlauf begonnen, dem wiederum abwechselnde Nichtreservierungs- und Neuprüfungs-Durchläufe folgen. Die Zuteilungssequenz ist daher ununterbrochen und stellt eine deutliche Verbesserung gegenüber herkömmlichen Zuteilungsschemata dar, die eine sporadische Abfrage von Anforderungen enthalten, was typischerweise aufgrund der ineffizienten Nutzung der Systembetriebsmittel zu einer beeinträchtigten Systemleistung führt.
- Das vorliegende Schema nutzt in effizienter Weise sämtliche Systembetriebsmittel, die zu dem Zeitpunkt verfügbar sind, zum dem eine ausgewählte Anforderung zugeteilt wird. Weiterhin ist die Zuteilung gemäß dem vorliegenden Schema nicht aussperrend; der Grund hierfür beruht auf der Tatsache, daß die Reservierung von erforderlichen Betriebsmitteln nur während des anfänglichen Reservierungs- Durchlaufs erlaubt ist und nachfolgende Neuprüfungs- und Nichtreservierungs-Durchläufe ausschließlich der Zuteilung und der Ausführung ausstehender reservierter Anforderungen bzw. anschließend empfangener Anforderungen gewidmet sind, für die erforderliche Betriebsmittel tatsächlich verfügbar sind. Daher ist für jede Anforderung, die in einen reservierten Status versetzt worden ist, deren Berücksichtigung innerhalb einer vernünftigen Zeit garantiert, so daß eine anfordernde Einheit niemals ausgesperrt wird.
Claims (7)
1. Verfahren zum Zuteilen von Anforderungen für die
Zuweisung von knappen Systembetriebsmitteln, wobei die
Anforderungen durch entsprechende Befehle spezifiziert
sind, die ausgeführt werden müssen, um die knappen
Systembetriebsmittel zuzuweisen, wobei das Verfahren die
Schritte enthält:
Empfangen eines zuzuteilenden Befehls (52),
Erzeugen eines ersten Vektors, der sämtliche
knappen Systembetriebsmittel definiert, die für die
Ausführungen des empfangenen Befehls (54) erforderlich sind,
und
Erzeugen eines zweiten Vektors, der sämtliche
knappen Systembetriebsmittel darstellt, die momentan
verfügbar sind (55), wobei das Verfahren gekennzeichnet ist
durch:
Vergleichen des ersten und des zweiten Vektors
(56),
Ausführen des empfangenen Befehls, falls der
Vergleich angibt, daß sämtliche knappen
Systembetriebsmittel, die für die Ausführung des Befehls erforderlich
sind, momentan verfügbar sind (80), und andernfalls: (i)
Versetzen des Befehls in den "reservierten" Status (57),
(ii) Reservieren sämtlicher erforderlicher knappen
Systembetriebsmittel für die Ausführung des empfangenen
Befehls (78) und (iii) Ausführen des empfangenen Befehls,
wenn sämtliche erforderlichen knappen
Systembetriebsmittel für die Ausführung des empfangenen Befehls verfügbar
werden.
2. Zuteilungsverfahren nach Anspruch 1, in dem der
empfangene Befehl dadurch empfangen wird, daß eine Reihe
von Befehlen gespeichert werden und der empfangene Befehl
gemäß einem im voraus definierten Prioritätsschema
ausgewählt wird.
3. Zuteilungsverfahren nach Anspruch 2, in dem das
im voraus definierte Prioritätsschema für die
gespeicherten Befehle enthält:
einen ersten Zuteilungsdurchlauf (der
"Reservierungs"-Durchlauf (50)), in dessen Verlauf die
Speicherplätze zum Speichern der Reihe von Befehlen zyklisch
abgefragt werden und Befehle, die zu diesem Zeitpunkt an
den Speicherplätzen gespeichert sind, zugeteilt werden,
indem Befehle (58), für die entsprechende reservierte
Betriebsmittel verfügbar sind, ausgeführt werden und
sämtliche Befehle, für die nicht alle erforderlichen
knappen Systembetriebsmittel verfügbar sind, in den
reservierten Status versetzt werden (57),
einen zweiten Zuteilungsdurchlauf (der
"Neuprüfungs"-Durchlauf (70)), in dessen Verlauf nur reservierte
Befehle ausgeführt werden, indem jene reservierten
Anforderungen ausgeführt werden (80), für die sämtliche
knappen Systembetriebsmittel in diesem Zeitpunkt
verfügbar geworden sind, und sämtliche erforderlichen knappen
Systembetriebsmittel für jene reservierten Befehle, für
die solche erforderlichen knappen Systembetriebsmittel zu
diesem Zeitpunkt nicht verfügbar sind, reserviert werden,
und
einen dritten Zuteilungsdurchlauf (der
"Nichtreservierungs"-Durchlauf (90)), in dessen Verlauf nur
jene Befehle, die an den Speicherplätzen gespeichert
sind, die dem vorhergehenden "reservierungs"-Durchlauf
nachfolgen ("neue" Anforderungen), zugeteilt werden,
indem diese neuen Befehle, für die sämtliche erforderlichen
knappen Systembetriebsmittel verfügbar sind, ausgeführt
werden (99).
4. Zuteilungsverfahren nach Anspruch 3, in dem nach
der Ausführung eines "Reservierungs"-Durchlaufs (50)
nachfolgende "Neuprüfungs"-Durchläufe (70) und
nachfolgende "nichtreservierungs"-Durchläufe (90) abwechselnd
ausgeführt werden, bis sämtliche während des anfänglichen
"Reservierungs"-Durchlaufs reservierten Befehle
ausgeführt worden sind.
5. Multiprozessorsystem des Typs mit einer
Systemsteuereinheit (SCU) zum parallelen Betreiben mehrerer
Systemeinheiten, die mehrere Zentraleinheiten (CPUs) und
wenigstens eine Eingabe/Ausgabe-Einheit (E/A-Einheit)
enthalten, wobei die SCU in der Weise arbeitet, daß sie
den CPUs und den E/A-Einheiten erlaubt, auf adressierte
Segmente des Speichers kontrolliert zuzugreifen, indem
sie von der Einheit ausgehende
Kommunikationsanforderungen zuteilt, wobei jede Anforderung berücksichtigt werden
kann, indem ein zugeordneter Befehl ausgeführt wird, wenn
eine entsprechende Menge von im voraus definierten
Systembetriebsmitteln verfügbar ist, wobei die Verbesserung
enthält:
Einrichtungen (113, 115) zum Speichern von von
den Einheiten ankommenden Anforderungen (112) und der
ihnen zugeordneten Befehle (113), eine Einrichtung (117)
zum Auswählen des Befehls, der einer ausgewählten
Anforderung der für die Zuteilung gespeicherten Anforderungen
zugeordnet ist, eine Einrichtung (119) zum Erzeugen eines
ersten Betriebsmittelvektors, der sämtliche
Betriebsmittel identifiziert, die für die Ausführung eines
ausgewählten Befehls erforderlich sind, eine Einrichtung (121)
zum Erzeugen eines zweiten Betriebsmittelvektors, der
sämtliche Systembetriebsmittel repräsentiert, die zum
Zeitpunkt der Zuteilung verfügbar sind, und eine
Einrichtung
(123) zum Vergleichen des ersten und des zweiten
Betriebsmittelvektors, um festzustellen, ob sämtliche für
die Ausführung eines ausgewählten Befehls erforderlichen
Systembetriebsmittel zum Zeitpunkt der Zuteilung
verfügbar sind, eine Einrichtung (123) zum Beginnen der
Berücksichtigung der Anforderung, falls sämtliche
erforderlichen Betriebsmittel verfügbar sind, eine Einrichtung
(125) zum Reservieren von erforderlichen Betriebsmitteln,
die der zugeteilten Anforderungen entsprechen, falls
nicht alle Betriebsmittel verfügbar sind, derart, daß
solche reservierten Betriebsmittel für nachfolgende
Anforderungen unverfügbar gemacht werden, und eine
Einrichtung (123) zum Beginnen der Berücksichtigung der
reservierten Anforderungen, wenn entsprechende reservierte
Betriebsmittel verfügbar werden.
6. Multiprozessorsystem nach Anspruch 5, in dem die
Einrichtung (113, 115) zum Speichern ankommender
Anforderungen und der zugeordneten Befehle enthält:
eine Einrichtung zum Empfangen und Speichern
ankommender Befehle, eine Einrichtung (113) zum Zuteilen
von Prioritäten für die Annahme ankommender Anforderungen
und für die Erzeugung eines Befehlssignals, das einen
ausgewählten der gespeicherten Befehle angibt, der einer
ausgewählten, zuzuteilenden Anforderung entspricht, auf
der Grundlage des vorgegebenen Prioritätsschemas, und
eine Einrichtung (117) zum Entnehmen eines ausgewählten
gespeicherten Befehls auf der Grundlage des Steuersignals
und zum Weiterleiten des entnommenen Befehls an die
Einrichtung zum Erzeugen des ersten Betriebsmittelvektors.
7. Multiprozessorsystem nach Anspruch 6, das
ferner eine Einrichtung (126) enthält zum
Unverfügbarmachen der reservierten Betriebsmittel für nachfolgende
Anforderungen durch Anpassen des zweiten
Betriebsmittelvektors an die reservierten Betriebsmittel, wobei die
Einrichtung (123) zum Beginnen der Berücksichtigung von
Anforderungen auf den angepaßten zweiten
Betriebsmittelvektor anspricht.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/306,871 US5155854A (en) | 1989-02-03 | 1989-02-03 | System for arbitrating communication requests using multi-pass control unit based on availability of system resources |
Publications (2)
Publication Number | Publication Date |
---|---|
DE68927375D1 DE68927375D1 (de) | 1996-11-28 |
DE68927375T2 true DE68927375T2 (de) | 1997-05-28 |
Family
ID=23187237
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE68927375T Expired - Fee Related DE68927375T2 (de) | 1989-02-03 | 1989-09-21 | Arbitrierung von Übertragungsanforderungen in einem Multiprozessor-Rechnersystem |
Country Status (6)
Country | Link |
---|---|
US (1) | US5155854A (de) |
EP (1) | EP0380857B1 (de) |
JP (1) | JPH02242364A (de) |
AT (1) | ATE144631T1 (de) |
AU (1) | AU628529B2 (de) |
DE (1) | DE68927375T2 (de) |
Families Citing this family (85)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6807609B1 (en) * | 1989-12-04 | 2004-10-19 | Hewlett-Packard Development Company, L.P. | Interleaving read and write operations on a bus and minimizing buffering on a memory module in a computer system |
US5265257A (en) * | 1990-06-22 | 1993-11-23 | Digital Equipment Corporation | Fast arbiter having easy scaling for large numbers of requesters, large numbers of resource types with multiple instances of each type, and selectable queuing disciplines |
FR2676845B1 (fr) * | 1991-05-23 | 1993-09-24 | Sextant Avionique | Dispositif pour la gestion de plusieurs files d'attente independantes dans un espace memoire commun et banalise. |
US5386512A (en) * | 1991-07-19 | 1995-01-31 | International Business Machines Corporation | System for deriving and testing mutual capability set after receiving updated capability from other processors and before requesting service information |
US5551054A (en) * | 1991-11-19 | 1996-08-27 | Adaptec, Inc. | Page mode buffer controller for transferring Nb byte pages between a host and buffer memory without interruption except for refresh |
US5388237A (en) * | 1991-12-30 | 1995-02-07 | Sun Microsystems, Inc. | Method of and apparatus for interleaving multiple-channel DMA operations |
US5548762A (en) * | 1992-01-30 | 1996-08-20 | Digital Equipment Corporation | Implementation efficient interrupt select mechanism |
US5317739A (en) * | 1992-03-30 | 1994-05-31 | International Business Machines Corp. | Method and apparatus for coupling data processing systems |
US5301283A (en) * | 1992-04-16 | 1994-04-05 | Digital Equipment Corporation | Dynamic arbitration for system bus control in multiprocessor data processing system |
JP2566719B2 (ja) * | 1992-04-20 | 1996-12-25 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データ通信インタフエース及びその動作方法 |
US5341502A (en) * | 1992-12-14 | 1994-08-23 | Motorola, Inc. | Device for assigning a shared resource in a data processing system |
US5758157A (en) * | 1992-12-31 | 1998-05-26 | International Business Machines Corporation | Method and system for providing service processor capability in a data processing by transmitting service processor requests between processing complexes |
EP0635792B1 (de) * | 1993-07-16 | 2003-08-27 | Siemens Aktiengesellschaft | Verfahren zur Koordination von parallelen Zugriffen mehrerer Prozessoren auf Resourcenkonfigurationen |
US5634072A (en) * | 1993-11-01 | 1997-05-27 | International Business Machines Corporation | Method of managing resources in one or more coupling facilities coupled to one or more operating systems in one or more central programming complexes using a policy |
US5502816A (en) * | 1994-03-25 | 1996-03-26 | At&T Corp. | Method of routing a request for a virtual circuit based on information from concurrent requests |
EP1016957B1 (de) * | 1994-04-04 | 2011-08-10 | MagnaChip Semiconductor Ltd. | Verwaltungsverfahren für gemeinsame Betriebsmittel von Prozessoreinheiten |
US6282572B1 (en) | 1994-05-04 | 2001-08-28 | Telefonaktieboalget Lm Ericsson (Publ) | Providing a master device with slave device capability information |
US6360285B1 (en) * | 1994-06-30 | 2002-03-19 | Compaq Computer Corporation | Apparatus for determining memory bank availability in a computer system |
EP0787327B1 (de) * | 1995-08-23 | 2002-06-12 | Koninklijke Philips Electronics N.V. | Datenverarbeitungssystem mit einer asynchrongesteuerten pipeline |
US6282561B1 (en) * | 1995-12-07 | 2001-08-28 | Microsoft Corporation | Method and system for resource management with independent real-time applications on a common set of machines |
US5875338A (en) * | 1995-12-14 | 1999-02-23 | International Business Machines Corporation | Method and apparatus for arbitrating resource requests utilizing independent tokens for arbiter cell selection |
US5752260A (en) * | 1996-04-29 | 1998-05-12 | International Business Machines Corporation | High-speed, multiple-port, interleaved cache with arbitration of multiple access addresses |
US5923887A (en) * | 1996-05-20 | 1999-07-13 | Advanced Micro Devices, Inc. | Interrupt request that defines resource usage |
US5862338A (en) * | 1996-12-30 | 1999-01-19 | Compaq Computer Corporation | Polling system that determines the status of network ports and that stores values indicative thereof |
US6085276A (en) * | 1997-10-24 | 2000-07-04 | Compaq Computers Corporation | Multi-processor computer system having a data switch with simultaneous insertion buffers for eliminating arbitration interdependencies |
US7013305B2 (en) | 2001-10-01 | 2006-03-14 | International Business Machines Corporation | Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange |
US6668317B1 (en) | 1999-08-31 | 2003-12-23 | Intel Corporation | Microengine for parallel processor architecture |
US6427196B1 (en) | 1999-08-31 | 2002-07-30 | Intel Corporation | SRAM controller for parallel processor architecture including address and command queue and arbiter |
US6983350B1 (en) | 1999-08-31 | 2006-01-03 | Intel Corporation | SDRAM controller for parallel processor architecture |
US7191309B1 (en) | 1999-09-01 | 2007-03-13 | Intel Corporation | Double shift instruction for micro engine used in multithreaded parallel processor architecture |
EP1236088B9 (de) | 1999-09-01 | 2008-10-08 | Intel Corporation | Registersatz zur verwendung in einer parallellen mehrfachdrahtprozessorarchitektur |
WO2001016702A1 (en) | 1999-09-01 | 2001-03-08 | Intel Corporation | Register set used in multithreaded parallel processor architecture |
US6532509B1 (en) * | 1999-12-22 | 2003-03-11 | Intel Corporation | Arbitrating command requests in a parallel multi-threaded processing system |
US6694380B1 (en) | 1999-12-27 | 2004-02-17 | Intel Corporation | Mapping requests from a processing unit that uses memory-mapped input-output space |
US6631430B1 (en) | 1999-12-28 | 2003-10-07 | Intel Corporation | Optimizations to receive packet status from fifo bus |
US6307789B1 (en) | 1999-12-28 | 2001-10-23 | Intel Corporation | Scratchpad memory |
US6625654B1 (en) | 1999-12-28 | 2003-09-23 | Intel Corporation | Thread signaling in multi-threaded network processor |
US7620702B1 (en) | 1999-12-28 | 2009-11-17 | Intel Corporation | Providing real-time control data for a network processor |
US6661794B1 (en) | 1999-12-29 | 2003-12-09 | Intel Corporation | Method and apparatus for gigabit packet assignment for multithreaded packet processing |
US6584522B1 (en) | 1999-12-30 | 2003-06-24 | Intel Corporation | Communication between processors |
US6952824B1 (en) | 1999-12-30 | 2005-10-04 | Intel Corporation | Multi-threaded sequenced receive for fast network port stream of packets |
US7480706B1 (en) | 1999-12-30 | 2009-01-20 | Intel Corporation | Multi-threaded round-robin receive for fast network port |
US6976095B1 (en) | 1999-12-30 | 2005-12-13 | Intel Corporation | Port blocking technique for maintaining receive packet ordering for a multiple ethernet port switch |
US6938256B2 (en) * | 2000-01-18 | 2005-08-30 | Galactic Computing Corporation | System for balance distribution of requests across multiple servers using dynamic metrics |
US8538843B2 (en) | 2000-07-17 | 2013-09-17 | Galactic Computing Corporation Bvi/Bc | Method and system for operating an E-commerce service provider |
US7844513B2 (en) * | 2000-07-17 | 2010-11-30 | Galactic Computing Corporation Bvi/Bc | Method and system for operating a commissioned e-commerce service prover |
US6816905B1 (en) | 2000-11-10 | 2004-11-09 | Galactic Computing Corporation Bvi/Bc | Method and system for providing dynamic hosted service management across disparate accounts/sites |
US7681018B2 (en) | 2000-08-31 | 2010-03-16 | Intel Corporation | Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set |
US20020053017A1 (en) * | 2000-09-01 | 2002-05-02 | Adiletta Matthew J. | Register instructions for a multithreaded processor |
US6807187B1 (en) * | 2000-09-28 | 2004-10-19 | Cisco Technology, Inc. | Method and apparatus for determining a next round robin element using a cascaded approach |
US7020871B2 (en) * | 2000-12-21 | 2006-03-28 | Intel Corporation | Breakpoint method for parallel hardware threads in multithreaded processor |
US7225281B2 (en) | 2001-08-27 | 2007-05-29 | Intel Corporation | Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms |
US7487505B2 (en) | 2001-08-27 | 2009-02-03 | Intel Corporation | Multithreaded microprocessor with register allocation based on number of active threads |
US7216204B2 (en) * | 2001-08-27 | 2007-05-08 | Intel Corporation | Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment |
US6868476B2 (en) | 2001-08-27 | 2005-03-15 | Intel Corporation | Software controlled content addressable memory in a general purpose execution datapath |
US7126952B2 (en) | 2001-09-28 | 2006-10-24 | Intel Corporation | Multiprotocol decapsulation/encapsulation control structure and packet protocol conversion method |
US7594229B2 (en) * | 2001-10-09 | 2009-09-22 | Nvidia Corp. | Predictive resource allocation in computing systems |
US7158964B2 (en) * | 2001-12-12 | 2007-01-02 | Intel Corporation | Queue management |
US7107413B2 (en) * | 2001-12-17 | 2006-09-12 | Intel Corporation | Write queue descriptor count instruction for high speed queuing |
US7269179B2 (en) * | 2001-12-18 | 2007-09-11 | Intel Corporation | Control mechanisms for enqueue and dequeue operations in a pipelined network processor |
US7895239B2 (en) * | 2002-01-04 | 2011-02-22 | Intel Corporation | Queue arrays in network devices |
US7181573B2 (en) * | 2002-01-07 | 2007-02-20 | Intel Corporation | Queue array caching in network devices |
US6934951B2 (en) | 2002-01-17 | 2005-08-23 | Intel Corporation | Parallel processor with functional pipeline providing programming engines by supporting multiple contexts and critical section |
US7610451B2 (en) | 2002-01-25 | 2009-10-27 | Intel Corporation | Data transfer mechanism using unidirectional pull bus and push bus |
US7181594B2 (en) * | 2002-01-25 | 2007-02-20 | Intel Corporation | Context pipelines |
US7149226B2 (en) * | 2002-02-01 | 2006-12-12 | Intel Corporation | Processing data packets |
US7437724B2 (en) * | 2002-04-03 | 2008-10-14 | Intel Corporation | Registers for data transfers |
US7471688B2 (en) | 2002-06-18 | 2008-12-30 | Intel Corporation | Scheduling system for transmission of cells to ATM virtual circuits and DSL ports |
US7337275B2 (en) | 2002-08-13 | 2008-02-26 | Intel Corporation | Free list and ring data structure management |
US7352769B2 (en) | 2002-09-12 | 2008-04-01 | Intel Corporation | Multiple calendar schedule reservation structure and method |
US7433307B2 (en) | 2002-11-05 | 2008-10-07 | Intel Corporation | Flow control in a network environment |
US7380151B1 (en) * | 2002-12-11 | 2008-05-27 | National Semiconductor Corporation | Apparatus and method for asynchronously clocking the processing of a wireless communication signal by multiple processors |
US7016695B1 (en) | 2002-12-11 | 2006-03-21 | National Semiconductor Corporation | Apparatus and method for processing a deterministic data flow associated with a wireless communication signal |
AU2003299668A1 (en) * | 2002-12-18 | 2004-07-22 | Emc Corporation | Resource allocation aware queuing of requests for media resources |
US6941438B2 (en) * | 2003-01-10 | 2005-09-06 | Intel Corporation | Memory interleaving |
US7443836B2 (en) | 2003-06-16 | 2008-10-28 | Intel Corporation | Processing a data packet |
US7213099B2 (en) | 2003-12-30 | 2007-05-01 | Intel Corporation | Method and apparatus utilizing non-uniformly distributed DRAM configurations and to detect in-range memory address matches |
US7222202B2 (en) * | 2004-02-17 | 2007-05-22 | Broadcom Corporation | Method for monitoring a set of semaphore registers using a limited-width test bus |
US7370326B2 (en) * | 2004-04-02 | 2008-05-06 | Emulex Design & Manufacturing Corporation | Prerequisite-based scheduler |
US7917906B2 (en) * | 2004-07-02 | 2011-03-29 | Seagate Technology Llc | Resource allocation in a computer-based system |
US9405348B2 (en) | 2008-04-21 | 2016-08-02 | Adaptive Computing Enterprises, Inc | System and method for managing energy consumption in a compute environment |
WO2009131592A1 (en) * | 2008-04-21 | 2009-10-29 | Cluster Resources, Inc. | System and method for managing energy consumption in a compute environment |
US8725923B1 (en) * | 2011-03-31 | 2014-05-13 | Emc Corporation | BMC-based communication system |
JP5836903B2 (ja) * | 2012-09-04 | 2015-12-24 | 株式会社東芝 | 情報処理装置 |
JP5826728B2 (ja) * | 2012-09-07 | 2015-12-02 | 株式会社東芝 | 情報処理装置 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US435766A (en) * | 1890-09-02 | Brush | ||
US3593300A (en) * | 1967-11-13 | 1971-07-13 | Ibm | Arrangement for automatically selecting units for task executions in data processing systems |
US4387427A (en) * | 1978-12-21 | 1983-06-07 | Intel Corporation | Hardware scheduler/dispatcher for data processing system |
US4281381A (en) * | 1979-05-14 | 1981-07-28 | Bell Telephone Laboratories, Incorporated | Distributed first-come first-served bus allocation apparatus |
US4384324A (en) * | 1980-05-06 | 1983-05-17 | Burroughs Corporation | Microprogrammed digital data processing system employing tasking at a microinstruction level |
FR2503898B1 (fr) * | 1981-04-08 | 1986-02-28 | Thomson Csf | Procede et dispositif d'allocation d'une ressource dans un systeme comportant des unites de traitement de donnees autonomes |
US4435766A (en) * | 1981-06-16 | 1984-03-06 | International Business Machines Corporation | Nested resource control using locking and unlocking routines with use counter for plural processes |
US4481572A (en) * | 1981-10-13 | 1984-11-06 | Teledyne Industries, Inc. | Multiconfigural computers utilizing a time-shared bus |
US4814974A (en) * | 1982-07-02 | 1989-03-21 | American Telephone And Telegraph Company, At&T Bell Laboratories | Programmable memory-based arbitration system for implementing fixed and flexible priority arrangements |
US4648061A (en) * | 1982-11-09 | 1987-03-03 | Machines Corporation, A Corporation Of New York | Electronic document distribution network with dynamic document interchange protocol generation |
US4633394A (en) * | 1984-04-24 | 1986-12-30 | International Business Machines Corp. | Distributed arbitration for multiple processors |
JPS6170654A (ja) * | 1984-09-14 | 1986-04-11 | Hitachi Ltd | 分散処理システムにおける資源管理方式 |
US4794516A (en) * | 1985-10-31 | 1988-12-27 | International Business Machines Corporation | Method and apparatus for communicating data between a host and a plurality of parallel processors |
US4858173A (en) * | 1986-01-29 | 1989-08-15 | Digital Equipment Corporation | Apparatus and method for responding to an aborted signal exchange between subsystems in a data processing system |
US4881195A (en) * | 1986-11-26 | 1989-11-14 | Rockwell International Corp. | Multi-requester arbitration circuit |
US4922413A (en) * | 1987-03-24 | 1990-05-01 | Center For Innovative Technology | Method for concurrent execution of primitive operations by dynamically assigning operations based upon computational marked graph and availability of data |
US4920486A (en) * | 1987-11-23 | 1990-04-24 | Digital Equipment Corporation | Distributed arbitration apparatus and method for shared bus |
-
1989
- 1989-02-03 US US07/306,871 patent/US5155854A/en not_active Expired - Lifetime
- 1989-09-21 DE DE68927375T patent/DE68927375T2/de not_active Expired - Fee Related
- 1989-09-21 EP EP89309609A patent/EP0380857B1/de not_active Expired - Lifetime
- 1989-09-21 AT AT89309609T patent/ATE144631T1/de not_active IP Right Cessation
-
1990
- 1990-02-02 JP JP2024313A patent/JPH02242364A/ja active Pending
- 1990-04-27 AU AU53946/90A patent/AU628529B2/en not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
EP0380857A3 (de) | 1992-05-20 |
JPH02242364A (ja) | 1990-09-26 |
EP0380857A2 (de) | 1990-08-08 |
ATE144631T1 (de) | 1996-11-15 |
EP0380857B1 (de) | 1996-10-23 |
US5155854A (en) | 1992-10-13 |
DE68927375D1 (de) | 1996-11-28 |
AU628529B2 (en) | 1992-09-17 |
AU5394690A (en) | 1991-12-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE68927375T2 (de) | Arbitrierung von Übertragungsanforderungen in einem Multiprozessor-Rechnersystem | |
DE69031231T2 (de) | Synchronisierung und Verarbeitung von Speicherzugriffsoperationen | |
DE68928530T2 (de) | Modulare Kreuzschienenzwischenverbindungen in einem digitalen Rechner | |
DE3789625T2 (de) | Methode zur dynamischen Partitionierung von Parallelprozessoren. | |
DE60037065T2 (de) | Übertragungsteuerung mit Naben- und Torachitektur | |
DE69419680T2 (de) | Skalierbare Unterbrechungsstruktur für ein Simultanverarbeitungssystem | |
DE68924934T2 (de) | Parallelsynchronisationstechnik. | |
DE69529381T2 (de) | Warteschlangen-Arbitrierungsmechanismus für Datenverarbeitungssystem | |
DE60030767T2 (de) | Datenzuweisung zu threads in einem multi-threaded netzwerkprozessor | |
DE3642324C2 (de) | Multiprozessoranlage mit Prozessor-Zugriffssteuerung | |
DE68919631T2 (de) | Verfahren zur Verarbeitung von Programmteilen eines verteilten Anwendungsprogramms durch einen Hauptrechner und einen intelligenten Arbeitsplatz in einer SNA LU 6.2-Netzwerkumgebung. | |
DE69606648T2 (de) | Verfahren und vorrichtung zur ablauffolgen von multiprozessoren mit starker affinität | |
DE69027515T2 (de) | Vorrichtung für Prioritätsarbitrierungskonditionierung bei gepufferter Direktspeicheradressierung | |
DE3134428C2 (de) | ||
DE3782335T2 (de) | Speichersteuersystem. | |
DE3751091T2 (de) | Übertragungsprotokoll zwischen Prozessoren. | |
DE69131548T2 (de) | Schneller Arbitrierer mit einfacher Anpassung für eine grosse Anzahl von Anforderern mit grosser Anzahl von mehreren Betriebsmitteltypen und selektierbaren Methoden von Warteschleifen | |
DE69701078T2 (de) | Mikroprozessorarchitektur mit der Möglichkeit zur Unterstützung mehrerer verschiedener Prozessoren | |
DE3689226T2 (de) | Multiprozessorsystem mit multihierarchischen Ebenen. | |
DE3853574T2 (de) | Steuerung von Benutzerantworten in einem Übertragungsbus. | |
DE69127101T2 (de) | System für verteilte mehrfachrechnerkommunikation | |
DE3783370T2 (de) | Schaltung zur blockierungsverhinderung von hochprioritaetsanforderungen an eine systemsteuerung. | |
DE10152970B4 (de) | Halbleiterbauelement mit Systembus und externem Bus sowie Halbleiterchip-Betriebsverfahren und Speichermedium | |
DE112012003961T5 (de) | Gleichzeitige Verarbeitung von eingereihten Nachrichten | |
DE69224279T2 (de) | Verfahren und Gerät zur Arbitrierung auf Basis der Verfügbarkeit von Betriebsmitteln |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |