DE69122142T2 - Steuerungsanlage für ein Mehrprozessorsystem - Google Patents
Steuerungsanlage für ein MehrprozessorsystemInfo
- Publication number
- DE69122142T2 DE69122142T2 DE69122142T DE69122142T DE69122142T2 DE 69122142 T2 DE69122142 T2 DE 69122142T2 DE 69122142 T DE69122142 T DE 69122142T DE 69122142 T DE69122142 T DE 69122142T DE 69122142 T2 DE69122142 T2 DE 69122142T2
- Authority
- DE
- Germany
- Prior art keywords
- interrupt
- queue
- input
- output
- ldvc
- 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
- 238000000034 method Methods 0.000 claims description 69
- 230000008569 process Effects 0.000 claims description 65
- 230000010365 information processing Effects 0.000 claims description 22
- 238000003491 array Methods 0.000 claims 1
- 235000019837 monoammonium phosphate Nutrition 0.000 description 13
- 238000004891 communication Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 3
- 238000007726 management method Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 229920003195 poly(n-butyl isocyanate) Polymers 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/368—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
- G06F13/4221—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Bus Control (AREA)
- Multi Processors (AREA)
Description
- Die vorliegende Erfindung betrifft ein Mehrprozessorsy- stem, welches aus einer Vielzahl von Informationsverarbeitungsmodulen gebildet ist, und insbesondere ein Steuersystem zur effektiven Verarbeitung einer Eingabe- und Ausgabe-Anforderung von entsprechenden Informationsverarbeitungsmodulen und zur effektiven Verarbeitung von Unterbrechungsanforderungen von entsprechenden Eingabe- und Ausgabe-Anordnungen.
- In der folgenden Erläuterung sind die entsprechenden Elemente einer Anordnung mit den folgenden Abkürzungen bezeichnet:
- PM: Informationsprozessormodul
- DVC: Eingabe/Ausgabe-Anordnung
- ADP: Eingabe/Ausgabe-Adapter
- IOC: Eingabe/Ausgabe-Kontroller
- IOBUS: Eingabe/Ausgabe-Bus zum Verbinden von PM und ADP
- DVBUS: Gerätebus zum Verbinden von ADP und DVC
- CPU: Informationsverarbeitungseinheit im PM
- MSU: Speichereinheit im PM
- PIBC: PM-IOBUS-Verbinder
- PMBUS: PM-Bus, der CPU, MSU und PIBC im PM verbindet
- AIBC: ADP-IOBUS-Verbinder
- ADBC: ADP-DVBUS-Verbinder
- APU: ADP-Verarbeitungseinheit
- CSU: Steuerspeichereinheit im ADP
- LDVC: Tabelle zum Halten logischer Eingabe/Ausgabe-Anforderungen für eine PM-DVC-Entsprechung, die in der CSU vorgesehen ist
- PDVC: Tabelle zum Halten physischer Eingabe/Ausgabe-Anforderungen, die der DVC entspricht
- PMIC: PM-Unterbrechungssteuertabelle
- Allgemein ausgedrückt ist es notwendig, wenn eine Vielzahl von PMs vorgesehen ist, daß ein System Daten, wie eine Datenbank oder eine Benutzerdatei, als eine Quelle enthält. Daher werden sie üblicherweise in einer DVC (Eingabe/Ausgabe-Anordnung), wie einer Magnetplatte, gespeichert und gemeinsam von einer Vielzahl von PMs verwendet. Wenn ein PM auf eine DVC zugreift, und die DVC bereits eine Eingabe/Ausgabe-Anforderung von einem anderen PM ausführt, muß es warten, bis diese Anforderung vollendet ist. Daher ist es notwendig, die Eingabe/Ausgabe-Anforderung erneut zu stellen, wenn die DVC verfügbar wird. Dieser Prozeß wird von einer PM-Software durchgeführt. Dies führt jedoch zu einem Aufwand, der durch eine Unterbrechung oder Eingabe/Ausgabe-Anforderung verursacht wird. Wenn viele PMs vorgesehen sind, und auch wenn ein PM die Eingabe/Ausgabe-Anforderung erneut stellt, kann ein anderes PM bereits die DVC verwenden. Daher steigt die Anzahl der Neuausgaben der Eingabe/Ausgabe-Anforderungen, die gesamte Leistungsfähigkeit des Systems nimmt jedoch trotz der erhöhten Anzahl von PMs nicht zu.
- Fig.1 zeigt ein Beispiel eines herkömmlichen Mehrprozessorsystems mit einem PM (Informationsverarbeitungsmodul) 1, einem ADP (Eingabe/Ausgabe-Adapter) 2, einer DVC (Eingabe/Ausgabe-Anordnung) 3 und einem IOC (Eingabe/Ausgabe- Kontroller) 6. 8 bis 16 PMs sind beispielsweise vorgesehen. Der PM 1 und ADP 2 sind auf einzelner Basis vorgesehen, und alle DVCs werden von einem einzigen gemeinsamen IOC 6 ge steuert. Entsprechende PMs 1 und ADPs 2, die unter der Kontrolle der PMs 1 arbeiten, greifen auf die DVC 3 durch einen einzigen gemeinsamen IOC 6 zu.
- Das in Fig.1 gezeigte herkömmliche System wurde in letzter Zeit bei Universal-Computern verwendet. Entsprechen de ADPs 2 sind getrennt vorgesehen, so daß sie ausschließlich dem oberen PM 1 gehören. Der IOC 6 zum Steuern einer Eingabe/Ausgabe entsprechender DVCs 3 ist mit einem Port versehen, um mit einer Vielzahl von ADPs verbunden zu werden.
- In diesem Fall ist ein ADP 2 ausschließlich für ein vorherbestimmtes PM 1 vorgesehen und empfängt immer eine Eingabe/Ausgabe-Anforderung vom PM 1. Der ADP 2 benachrich tigt den IOC 6 von der Eingabe/Ausgabe-Anforderung.
- Wenn die angeforderte DVC 3 in Übereinstimmung mit einer Eingabe/Ausgabe-Anforderung von einem anderen PM (durch den ADP) arbeitet, benachrichtigt der IOC 6 den die Eingabe/Ausgabe-Anforderung durchführenden ADP 2, daß die DVC 3 in Verwendung steht, und die DVC empfängt die Eingabe/Ausgabe-Anforderung vom PM 1 nicht. Der ADP 2 berichtet diesen Status (der angibt, daß die DVC 3 in Verwendung steht) an das PM 1 durch eine Unterbrechungsoperation und vollendet den Eingabe/Ausgabe-Prozeß.
- Die Software des PM 1 stellt erneut eine Eingabe/Ausgabe-Anforderung, nachdem eine vorherbestimmte Zeit nach dem Empfang des Berichts gewartet wurde. Wenn die DVC 3 eine Antwort zurücksendet, die angibt, daß eine DVC verfügbar geworden ist, haben einige IOCs 6 eine Funktion des Berichtens über diese Verfügbarkeit durch eine Unterbrechung. In diesem Fall stellt die Software des PM 1 erneut eine Eingabe/Ausgabe-Anforderung nach dem Empfang der Unterbrechung.
- Der ADP 2 ist auch mit einer Wartefunktion versehen, bis die DVC 3 verfügbar ist, und der ADP 2 stellt die Eingabe/Ausgabe-Anforderung erneut, wodurch die PM-Software und der Aufwand verringert werden.
- Herkömmlich ist die Verfügbarkeit einer DVC 3 bei einer Neuausgabe einer Eingabe/Ausgabe-Anforderung nicht sicher. Mit einer Zunahme der Anzahl von PMs 1 und der Rate von verwendeten DVCs steigt die Frequenz der Neuausgaben. Da der Neuausgabe-Prozeß im ursprünglichen System nicht notwendig ist, bewirkt die Zunahme des Neuausgabe-Prozesses die Senkung der Leistungsfähigkeit des Systems.
- Wenn PMs 1/ADPs 2 verschiedener Modelle eine gemeinsame DVC 3 verwenden, variiert ferner die Anzahl von Malen, wie oft die DVC den Prozeß der Neuausgabe durchführen muß, zwischen verschiedenen Modellen. Auch wenn diese verschiedenen PMs gleichzeitig den Neuausgabe-Prozeß starten, birgt das erneute Stellen der Eingabe/Ausgabe-Anforderung durch ein langsameres PM 1 die Möglichkeit eines Ausfalls, wodurch die Leistungsfähigkeit des PM-Prozesses stark verschlechtert wird.
- Fig.2 zeigt ein weiteres herkömmliches System, bei dem ein Kommunikationsweg 7 zwischen PMs vorgesehen ist, und entsprechende PMs 1 einen einzigen ADP 2 und eine Vielzahl von DVCs 3 aufweisen.
- In diesem System gehören die DVCs 3 sowie der ADP 2 ausschließlich einem bestimmten PM 1, das auf sie zugreift. Wenn ein bestimmtes PM 1 auf eine DVC 3 zugreifen muß, die nicht unter seiner Kontrolle steht, ersucht das bestimmte PM 1 durch einen Kommunikationsweg 7 zwischen PMs 1 ein anderes PM 1, mit dem die DVC 3 verbunden ist, eine Eingabe/Ausgabe- Operation durchzuführen, und sendet und empfängt die Transferdaten durch diesen Kommunikationsweg.
- In diesem System kann nur ein PM 1 eine Eingabe/Ausgabe-Anforderung an eine bestimmte DVC 3 stellen, und die Software des PM 1 kann immer einen Betriebszustand der DVC 3 steuern. Daher kann das in Fig.2 gezeigte System das Auftreten eines Zustands, in dem die DVC in Verwendung steht, und ein erneutes Stellen der Eingabe/Ausgabe-Anforderung verhindem, was im in Fig.1 dargestellten herkömmlichen System bewirkt wird. In diesem System erfordert jedoch das PM 1, das ersucht wird, die Eingabe/Ausgabe-Anforderung zu stellen, eine Speicherressource und einen Kommunikationsaufwand zwischen PMs. Daher ist dieses System verglichen mit einer Struktur nachteilig, bei der ein direkter Zugriffsweg vom PM 1 zur DVC vorgesehen ist.
- Insbesondere ist der Kommunikationsaufwand zwischen PMs stark von der Zugriffsfrequenz auf eine DVC 3 abhängig, die unter der Kontrolle eines anderen PM 1 steht. Daher ist es notwendig, das Kommunikationsvolumen zwischen PMs unter Verwendung eines speziellen Verfahrens zum Speichern von Daten in entsprechenden DVCs oder durch die Begrenzung einer zu verarbeitenden Applikation auf einen bestimmten Zweck und eine bestimmte Verwendung zu verringern, wodurch eine Abnahme der Leistungsfähigkeit des Systems verhindert wird. Dieses Verfahren ist insofern äußerst nachteilig, als es schwierig ist, ein System mit hoher Leistung zu bauen, dessen Zweck und Verwendung beschränkt sind, wodurch es als Universalsystem ungeeignet wird.
- Wenn eine DVC eine Unterbrechungsanforderung an ein PM stellt, während das PM bereits eine Unterbrechungsanforderung von einer anderen DVC ausführt, muß sie warten, bis diese Anforderung vollendet ist. Daher ist es notwendig, die Unterbrechungsanforderung erneut zu stellen, wenn das PM verfügbar wird. Wenn ein PM eine Unterbrechungsanforderung nicht akzeptieren kann, da die Unterbrechung durch die Software maskiert wird, ist es auch notwendig, die Unterbrechungsanforderung erneut zu stellen. Dieser Prozeß kann durch Firmware in einem Adapter durchgeführt werden. Da I/O- Anforderungen an eine Vielzahl von DVCs, die von einer Vielzahl von PMs übertragen werden, gleichzeitig im Adapter verarbeitet werden, ist es notwendig, parallel mit der Vollendung Unterbrechungen zu behandeln, die bei der Vollendung der I/O-Anforderungen erfolgen. Dies kann jedoch im Stand der Technik nicht effektiv erzielt werden.
- Ein Beispiel des Standes der Technik ist im EP-Patent 0 029 394 zu finden, das ein Verfahren und eine Anordnung zum Zählen und Verwalten asynchroner Ereignisse, die von peripheren Anordnungen stammen, offenbart. Ein weiteres Beispiel ist im EP-Patent 0 059 838 zu finden, das ein Datenverarbeitungssystem mit einer Vielzahl von Host-Prozessoren und peripheren Anordnungen offenbart. Es wird ein hierarchisches Steuerverfahren bzw. eine Vorrichtung verwendet.
- Es ist eine Aufgabe der vorliegenden Erfindung, einen direkten Zugriff von entsprechenden PMs auf eine DVC aufrechtzuerhalten und den Aufwand zu verringern, der durch das erneute Stellen einer Eingabe/Ausgabe-Anforderung im PM 1 verursacht wird, wodurch verhindert wird, daß die Verarbeitungsleistung eines Mehrprozessorsystems reduziert wird.
- Es ist eine weitere Aufgabe der vorliegenden Erfindung, das Auftreten eines Zustands des Wartens auf eine Unterbrechung für andere PMs zu warten, in Abhängigkeit davon, ob eine Unterbrechung für ein bestimmtes PM akzeptiert wird, wenn die Unterbrechungsanforderung von entsprechenden DVCs an das PM verarbeitet wird, wodurch verhindert wird, daß die Verarbeitungsleistung eines Mehrprozessorsysterns verringert wird.
- Gemäß einem ersten Aspekt der vorliegenden Erfindung ist ein Mehrprozessorsystem vorgesehen, mit einer Eingabe/Ausgabe-Anforderungsanordnung, welche Anordnung umfaßt: eine Vielzahl von Eingabe/Ausgabe-Adaptern (ADP); eine Vielzahl von Eingabe/Ausgabe-Anordnungen (DVC); und eine Vielzahl von informationsverarbeitungsmodulen (PM);
- und dadurch gekennzeichnet ist, daß die Vielzahl von Informationsverarbeitungsmodulen (PM) zur Verwendung der Eingabe/Ausgabe-Adapter (ADP) dient, und daß die Eingabe/Ausgabe-Anordnungen (DVC) geteilt sind, um von entsprechenden Eingabe/Ausgabe-Adaptern gesteuert zu werden;
- und ferner umfaßt:
- eine Einrichtung zum Vorsehen einer Tabelle zum Halten logischer Eingabe/Ausgabe-Anforderungen (LDVC), um Eingabe/Ausgabe-Anforderungen von entsprechenden Informationsverarbeitungsrnodulen für jede der genannten Eingabe/Ausgabe- Anordnungen (DVC), die von den genannten Informationsverarbeitungsmodulen gesteuert werden, unter Verwendung einer Treiberwarteschlange zu verwalten; und
- eine Einrichtung zum Verarbeiten von Eingabe/Ausgabe- Anforderungen von entsprechenden Informationsverarbeitungsmodulen auf der Basis eines Zustands der genannten Tabelle zum Halten von Eingabe/Ausgabe-Anforderungen und der Eingabe/Ausgabe-Anordnungen.
- Gemäß einem zweiten Aspekt der vorliegenden Erfindung ist ein Mehrprozessorsystem vorgesehen, mit einer Unterbrechungsanforderungs-Steueranordnung, welche Anordnung umfaßt:
- eine Vielzahl von Eingabe/Ausgabe-Adaptern (ADP);
- eine Vielzahl von Eingabe/Ausgabe-Anordnungen (DVC); und eine Vielzahl von Informationsverarbeitungsmodulen (PM);
- und dadurch gekennzeichnet ist, daß die Informationsverarbeitungsmodule (PM) zur Verwendung der Eingabe/Ausgabe- Adapter (ADP) dienen, und daß die Eingabe/Ausgabe-Anordnungen (DVC) geteilt sind, um von entsprechenden Eingabe/Ausgabe-Adaptern gesteuert zu werden; und ferner umfaßt:
- eine Einrichtung zum Vorsehen einer Tabelle zum Halten von Unterbrechungsanforderungen, um Unterbrechungsanforderungen von entsprechenden Eingabe/Ausgabe-Anordnungen an jedes der genannten Informationsverarbeitungsmodule unter Verwendung einer Warteschlange zu verwalten; und
- eine Einrichtung zum Verarbeiten von Unterbrechungsan forderungen von entsprechenden Eingabe/Ausgabe-Anordnungen auf der Basis des Zustands der genannten Tabelle zum Halten von Unterbrechungsanforderungen und der Eingabe/Ausgabe-Anordnungen.
- Zum besseren Verständnis der Erfindung und, um zu zeigen, wie dieselbe durchgeführt werden kann, wird nun anhand bloßer Beispiele auf die beigeschlossenen zeichnungen bezuggenommen, in denen:
- Fig.1 eine Strukturansicht eines herkömmlichen Computersystems zeigt;
- Fig.2 eine Strukturansicht eines anderen herkömmlichen Computersystems zeigt;
- Fig.3 ein Blockbild zur Erläuterung eines Prinzips der vorliegenden Erfindung zeigt;
- Fig.4 eine Strukturansicht einer ersten Ausführungsform der vorliegenden Erfindung zeigt;
- Fig.5 eine erläuternde Ansicht eines Steuerinformationsformats in der ersten Ausführungsform der vorliegenden Erfindung zeigt;
- Fig.6 eine Strukturansicht einer Steuertabelle der ersten Ausführungsforrn zeigt;
- Fig.7 eine erläuternde Ansicht einer Warteschlange einer LDVC zeigt;
- Fig.8 eine erläuternde Ansicht eines Formats der LDVC zeigt;
- Fig.9 eine erläuternde Ansicht eines Formats der PDVC zeigt;
- Fig.10 eine erläuternde Ansicht einer Treiberwarteschlange der PDVC zeigt;
- Fig.11 ein Flußdiagramm eines Hauptprozesses eines ADP- Steuerprogramms in der vorliegenden Erfindung zeigt;
- Fig.12 ein Flußdiagramm eines Prozesses eines I/O-Befehlsempfangs zeigt;
- Fig.13 ein Flußdiagramm einer I/O-Befehlsausführung zeigt;
- Fig.14 ein Flußdiagramm eines Wiederanschließungsprozesses der ersten Ausführungsform zeigt;
- Fig.15 eine Strukturansicht einer zweiten Ausführungsform der vorliegenden Erfindung zeigt;
- Fig.16 eine Strukturansicht einer Steuertabelle der zweiten Ausführungsform zeigt;
- Fig.17 eine erläuternde Ansicht einer Warteschlange der LDVC zeigt;
- Fig.18 eine erläuternde Ansicht eines Formats der PMIC zeigt;
- Fig.19 eine erläuternde Ansicht einer Unterbrechungs warteschlange der PMIC zeigt;
- Fig.20 ein Flußdiagramm eines Unterbrechungsprozesses 1 in der zweiten Ausführungsform zeigt; und
- Fig.21 ein Flußdiagramm eines Unterbrechungsprozesses 2 in der zweiten Ausführungsform zeigt.
- Fig.3 zeigt das erste Prinzip der vorliegenden Erfindung. Entsprechende PMs 1 (Informationsverarbeitungsmodule) verwenden gemeinsam eine Vielzahl von ADPs (Eingabe/Ausgabe- Adaptern) 2. Entsprechende ADPs 2 haben ihre eigenen DVCs, die unter ihrer Kontrolle stehen. Der Zugriff auf eine be liebige DVC 3 von den PMs 1 erfolgt durch einen ADP 2, zu dem die beliebige DVC 3 gehört. Eine Einrichtung zur Verwaltung von Eingabe/Ausgabe-Anforderungen, die an die beliebige DVC 3 von entsprechenden PMs 1 gestellt werden, unter Verwendung einer Warteschlange von PMs 1 pro DVC 3 ist für ent sprechende ADPs 2 vorgesehen.
- Eine Vielzahl von PMs (Informationsverarbeitungsmodulen) 1 bildet ein Mehrprozessorsystem. Der Adapter 2 verarbeitet eine Eingabe/Ausgabe-Anforderung von entsprechenden PMs 1. Die DVC 3 umfaßt beispielsweise eine Magnetplatten anordnung oder eine Magnetbandanordnung. Der IOBUS 4 verbindet ein beliebiges PM 1 mit einem beliebigen ADP 2 und überträgt Daten und Steuerinformationen. Der DVBUS (Gerätebus) 5 verbindet entsprechende ADPs 2 mit einer Vielzahl von DVCs 3, die unter ihrer Kontrolle stehen, und überträgt Datensteuerinformationen. Eine CSU (Steuerspeichereinheit) 22 ist im ADP 2 vorgesehen. Die CSU 22 umfaßt eine Tabelle zum Halten von Eingabe/Ausgabe-Anforderungen LDVC 221, um eine Eingabe/Ausgabe-Anforderung von den PMs (#0, #1, ...) 1 an entsprechende DVCs 3 (#0, #1, ...) zu halten, die von entsprechenden ADPs 2 gesteuert werden. Die Tabelle zum Halten von Eingabe/Ausgabe-Anforderungen LDVC 221 hat eine Warteschlangen-Verwaltungsfunktion. Eine Warteschlange 222 ist in bezug auf die LDVC 221 zur Verwaltung der Prozeßsequenz von Eingabe/Ausgabe-Anforderungen von entsprechenden PMs in bezug auf entsprechende DVCs vorgesehen. Das Steuerprogramm 223 verwaltet Eingabe/Ausgabe-Anforderungen von entsprechenden PMs unter Verwendung der LDVC 221, und die APU verarbeitet Eingabe/Ausgabe-Anforderungen in der Reihenfolge, in der sie mit der Warteschlange 222 verbunden werden, wenn die DVC 3 verfügbar ist.
- Wenn, wie in Fig.3 gezeigt, ein PM 1 eine Eingabe/Ausgabe-Anforderung an eine DVC 3 erzeugt, stellt das PM 1 eine Eingabe/Ausgabe-Anforderung an den ADP 2, mit dem die DVC 3 verbunden ist, wie im Steuerprogramm angegeben. Die APU des ADP 2 speichert die Eingabe/Ausgabe-Anforderung vom PM 1 einmal in der LDVC, die dem PM/der DVC entspricht. Der ADP 2 verbindet die Eingabe/Ausgabe-Anforderung mit der Treiberwarteschlange, die für jede der DVCs 3 vorgesehen ist, und führt einen Prozeß für die DVC 3 in der Reihenfolge der Ankunft der Eingabe/Ausgabe-Anforderungen durch. Wenn Eingabe/Ausgabe-Anforderungen an eine Vielzahl von DVCs 3 erfolgen, bilden die DVCs 3 auch eine Warteschlange, um Prozesse auf sequentielle Weise durchzuführen.
- Daher hindert die obige Struktur entsprechende PMs 1 daran zu beurteilen, daß die DVCs 3 in Verwendung stehen. Der ADP 2 muß nicht erneut eine nutzlose Eingabe/Ausgabe-Anforderung an die DVCs 3 stellen und kann einen durch die Neuausgabe der Eingabe/Ausgabe-Anforderung verursachten Aufwand vermeiden. Da ferner kein Ausfall bei der Neuausgabe der Eingabe/Ausgabe-Anforderung auftritt, kommt es zu keiner extremen Abnahme der Leistung, die durch variierende Leistungspegel von PMs 1 verursacht wird. Die Eingabe/Ausgabe- Operation der DVC 3 wird direkt von den entsprechenden PMs 1 in bezug auf ein Stellen einer Eingabe/Ausgabe-Anforderung sowie den Datentransfer auf die gleiche Weise wie im in Fig.1 gezeigten herkömmlichen System durchgeführt. Daher entfällt das Problem eines Kommunikationsaufwands zwischen PMs 1, und es wird eine Optimierung der Datenanordnung erzielt, wodurch ein Hochleistungs-Mehrprozessorsystem vorgesehen wird.
- Gemäß dem zweiten Prinzip der vorliegenden Erfindung verwenden entsprechende PMs 1 gemeinsam eine Vielzahl von ADPs. Entsprechende ADPs 2 haben ihre eigenen DVCs. Der Zugriff auf eine beliebige DVC 3 von einem PM 1 erfolgt durch einen ADP 2, zu dem die beliebige DVC 3 gehört. Eine Einrichtung zur Verwaltung von Unterbrechungsanforderungen, die von beliebigen DVCs 3 an das PM 1 gestellt werden, unter Verwendung einer Warteschlange von DVCs 3 pro PM ist für entsprechende ADPs 2 vorgesehen.
- Die CSU 22 umfaßt eine Tabelle zum Halten von Einga be/Ausgabe-Anforderungen LDVC 221, um eine Unterbrechungsanforderung von DVCs (#0, #1, ...) 1 an entsprechende PMs 1 (#0, #1, ...) zu halten, die von entsprechenden ADPs 2 gesteuert werden. Die Tabelle zum Halten von Eingabe/Ausgabe- Anforderungen LDVC 221, um eine Unterbrechungsanforderung zu halten, ist gleich wie die Tabelle zum Halten von Eingabe/Ausgabe-Anforderungen für die Eingabe/Ausgabe-Anforderung. Die Tabelle zum Halten von Eingabe/Ausgabe-Anforderungen LDVC 221 hat eine Warteschlangen-Verwaltungsfunktion. Eine Warteschlange 224 ist in bezug auf die LDVC 221 zur Verwaltung der Prozeßsequenz von Unterbrechungsanforderungen von entsprechenden DVCs in bezug auf entsprechende PMs vorgesehen. Das Steuerprogramm 223 verwaltet Unterbrechungsan forderungen von entsprechenden DVCs unter Verwendung der LDVC 221, und die APU verarbeitet die Unterbrechungsanforderungen in der Reihenfolge, in der sie mit der Warteschlange 224 verbunden werden, wenn das PM 1 verfügbar ist. Die Warteschlange umfaßt eine Treiberwarteschlange 222 zum Verbin den von Zellen in der Reihenrichtung der LDVC 221 und eine Unterbrechungswarteschlange 224 zum Verbinden von Zellen in der Spaltenrichtung der LDVC.
- Wenn, wie in Fig.3 gezeigt, eine DVC 3 eine Unterbrechungsanforderung an ein PM 1 erzeugt, erteilt die DVC 3 eine Unterbrechungsanforderung (REQ) an einen ADP 2, mit dem das PM 1 verbunden ist, wie im Steuerprogramm angegeben. Die APU des ADP 2 speichert die Unterbrechungsanforderung von der DVC 3 einmal in der LDVC, die der DVC/dem PM entspricht. Der ADP 2 verbindet die Unterbrechungsanforderung mit der Unterbrechungswarteschlange, die für jedes der PMs 1 vorgesehen ist, und führt einen Prozeß für das PM 1 in der Reihenfolge der Ankunft der Unterbrechungsanforderungen durch. Wenn Unterbrechungsanforderungen an eine Vielzahl von PMs 1 erfolgen, bilden die PMs 1 auch eine Warteschlange, um Prozesse auf sequentielle Weise durchzuführen.
- Daher verringert die obige Struktur das Auftreten eines Wartezustands auf eine Unterbrechung für andere PMs in Abhängigkeit davon, ob die Unterbrechung für ein bestimmtes PM akzeptiert wird, wenn die Unterbrechungsanforderung von ent sprechenden DVCs 3 an das PM verarbeitet wird, wodurch verhindert wird, daß die Verarbeitungsleistung eines Mehrprozessorsystems verringert wird.
- Da I/O-Anforderungen an eine Vielzahl von DVCs, die von einer Vielzahl von PMs übertragen werden, gleichzeitig vom ADP 2 verarbeitet werden, kann der ADP 2 parallel mit der Vollendung Unterbrechungen behandeln, die bei der Vollendung der I/O-Anforderungen erfolgen.
- Wie in Fig.4 gezeigt, umfaßt ein Mehrprozessorsystem einer ersten Ausführungsform der vorliegenden Erfindung einen PM 1, einen ADP 2, eine DVC 3, einen IOBUS 4, einen DVBUS 5, eine CPU 11, eine MSU 12, einen PIBC (PM-IOBUS-Verbinder) 13, einen PMBUS (PM-Bus) 14, eine APU 21, eine CSU 22, einen AIBC (ADP-IOBUS-Verbinder) 23, einen ADBC (ADP- DVBUS-Verbinder) 24, einen ADBUS (ADP-Bus) 25 und eine LDVC (Tabelle zum Halten von Eingabe/Ausgabe-Anforderungen) 221.
- Die CPU 11 in einem beliebigen PM 1 führt ein in der MSU 12 gespeichertes Programm aus und nimmt eine Serie von Prozessen vor. Wenn eine Instruktion zum Anfordern einer Eingabe/Ausgabe-Operation im PM 1 ausgeführt wird, gibt die CPU 11 notwendige Informationen an, wie den ADP und die DVC, die Gegenstand der Eingabe/Ausgabe-Anforderung sein sollten, und weist den PIBC 13 an, den ADP 2 um die Eingabe/Ausgabe- Operation zu ersuchen.
- Der PIBC 13 überträgt die Eingabe/Ausgabe-Anforderung an den AIBC 23 im ADP 2 durch den IOBUS 4. Der AIBC 23 benachrichtigt die APU 21, daß die Eingabe/Ausgabe-Anforderung empfangen wird, und die APU 21 speichert die Eingabe/Ausgabe-Anforderung in der LDVC 221, die dem PM, das die Eingabe/Ausgabe-Anforderung stellt, und der gegenständlichen DVC entspricht und in der CSU 22 vorgesehen ist, und registriert die LDVC 221 in einer Warteschlange, um auf die Eingabe/Ausgabe-Operation zu warten. Wenn der DVBUS 5 nicht verwendet wird, und eine Eingabe/Ausgabe-Anforderung an die DVC gestellt wird, die nicht betrieben wird, erteilt die APU 21 die Eingabe/Ausgabe-Anforderung an die DVC in Übereinstimmung mit der Warteschlangensequenz und führt sequentiell die in der LDVC 221 gehaltenen Eingabe/Ausgabe-Anforderungen durch.
- Fig.5A bis 5D zeigen ein Format von Steuerinformationen, das in der Ausführungsform der vorliegenden Erfindung verwendet wird.
- Fig. 5A repräsentiert eine Eingabe/Ausgabe-Instruktion, die von einer CPU in einem PM ausgeführt wird, Fig.58 zeigt einen Parameter einer Eingabe/Ausgabe-Instruktion, Fig.5C zeigt einen Befehl zum Steuern einer Eingabe/Ausgabe, und Fig.5D zeigt einen Statusblock zum Steuern einer Eingabe/Ausgabe.
- Der Eingabe/Ausgabe-Befehl in Fig.5A umfaßt einen Operationscode (OP), die Gerätenummer des zu verwendenden ADPs (ADP #), die Gerätenummer der DVC (DVC #), die Gegenstand des Zugriffs ist, und die Parameteradresse (Parameter Adrs), die in Fig.58 gezeigt ist.
- In Fig.58 dargestellte Parameter umfassen eine Adresse (Command Adrs) zum Speichern des in Fig.58 gezeigten Befehls und eine Adresse (Status Blk Adrs) für den in Fig.5D gezeigten Statusblock zum Speichern von Vollendungsinformationen.
- Der wie in Fig.5C dargestellte Befehl enthält einen Operationscode (OP), wie Lesen, Schreiben, Suchen, Flagge (flg), Daten zählen (Data Count) und eine Datenspeicheradresse in einem Hauptspeicher (LSU Adrs), und bildet ein Kanalprogramm durch die Kombination einer Vielzahl von Befehlen in einer Kette.
- Ein wie in Fig.5D gezeigter Statusblock enthält einen Status (Status), der einen Vollendungsstatus angibt, eine Datenzählung für die verbleibenden Daten bei einer abnormalen Vollendung und eine Adresse eines abschließenden Befehls.
- Fig.6 zeigt eine Steuertabelle zum Halten einer Eingabe/Ausgabe-Anforderung in der ersten Ausführungsform der vorliegenden Erfindung.
- Die Steuertabelle ist entsprechend der DVC (#) vorgesehen und umfaßt eine LDVC und PDVC.
- Die LDVC umfaßt eine Tabelle zur Verwaltung von Eingabe/Ausgabe-Anforderungen von entsprechenden PMs an eine einzelne DVC, indem sie in eine Warteschlange in der Ankunftssequenz eingegeben werden. Die PDVC umfaßt eine Tabelle zur Verwaltung der Eingabe/Ausgabe-Anforderungssequenz, wenn die Eingabe/Ausgabe-Anforderungen von einer Vielzahl von PMs an einer Vielzahl von DVCs ankommen, die unter der Kontrolle eines ADP vorgesehen sind.
- Fig.7 zeigt ein Beispiel einer Warteschlange der LDVC. In diesem Fall kommen Eingabe/Ausgabe-Anforderungen von PMs an die DVC#0 an einem ADP in der Sequenz PM#2, PM#0 und PM#1 an. Daher wird, wie in Fig.7 gezeigt, eine Warteschlange, worin PM#2, PM#0 und PM#1 sequentiell, beginnend mit PM#2, verbunden sind, für LDVC#0 gebildet.
- LDVC#0 wird PDVC#0 unterworfen, und LDVC#0 wird aktiviert, wenn PDVC#0 den Beginn einer Warteschlange von PDVC erreicht und in einen Ausführungszustand gelangt. Zu dieser Zeit gelangt die Eingabe/Ausgabe-Anforderung PM#2, die am Beginn der Warteschlange von LDVC#0 vorgesehen ist, in einen Ausführungszustand, und die Eingabe/Ausgabe-Anforderungen PM#0 und PM#1 kommen zu Ausführung-Warten.
- Wenn die Ausführung der Eingabe/Ausgabe-Anforderung von PM#2 vollendet ist, wird die Anforderung von PM#2 aus der LDVC-Warteschlange entfernt, und stattdessen gelangt PM#0 an den Beginn der LDVC-Warteschlange. Zu dieser Zeit wird jedoch PDVC#0 vom Beginn der PDVC-Warteschlange entfernt und auf eine Ausführung warten gelassen. Daher wird die Eingabe/Ausgabe-Anforderung von PM#0 auf eine Ausführung warten gelassen, bis PDVC#0 in den nächsten Ausführungszustand gelangt.
- Fig.8 zeigt ein LDVC-Format. Die folgenden Statusinformationen werden für einen Status (Status) in der LDVC vorgesehen.
- IDLE: Es geschieht nichts.
- WAIT: Verfügbarkeit der PDVC wird abgewartet.
- WORK: Eine Eingabe/Ausgabe-Anforderung gelangt an den Beginn der Warteschlange und führt die Eingabe/Ausgabe- Operation durch.
- IRQW: Die LDVC wird mit einer Unterbrechungswarteschlange verbunden, wie in Fig.19 gezeigt&sub1; und wartet auf das Erteilen des IRQ-Busbefehls. Wenn die LDVC den Beginn der Unterbrechungswarteschlange erreicht, d.h. die LDVC den Beginn der LDVC-Unterbrechungswarteschlange und den Beginn der PMIC-Unterbrechungswarteschlange erreicht, wird der IRQ- Befehl erteilt, und der IRQW-Zustand wird auf den IRQEX- Zustand geändert. Wie oben beschrieben, entspricht PMIC PM.
- IRQEX: Die LDVC erreicht den Beginn einer Unterbrechungswarteschlange, und PMIC erreicht den Beginn der PMIC- Unterbrechungswarteschlange. Daher wird der IRQ-Busbefehl erteilt, und eine Benachrichtigung vom PM darüber, ob der IRQ-Busbefehl akzeptiert wird, wird abgewartet. Wenn die Benachrichtigung der Akzeptanz der Unterbrechung ja ist, wird der Zustand auf den Zustand von IACKW geändert, und die LDVC wird aus der Unterbrechungswarteschlange entfernt. Wenn die Benachrichtigung der Akzeptanz der Unterbrechung nein ist, wird die PMIC geändert, um mit dem Ende der PMIC-Unterbrechungswarteschlange verbunden zu werden, und der Zustand von IRQEX wird zum Zustand von IRQW zurückgeführt.
- IACKW: Dies zeigt, daß die Unterbrechungsanf orderung vom PM akzeptiert wird, und der ADP 2 auf den IACK-Busbefehl wartet. Zu dieser Zeit ist die LDVC nicht mit der Unterbrechungswarteschlange und Treiberwarteschlange verbunden. Der ADP 2 empfängt den IACK-Busbefehl, wird in den IDLE-Zustand zurückgeführt und wartet auf einen neuen I/O-Befehl.
- Außerdem umfaßt die LDVC ferner Adressen (Command ADRS, Status Blk Adrs) des Befehls und des Statusblocks der Tabelle, wie in Fig.5C gezeigt, und Verbindungsinformationen (Next LDVC, Prev. LDVC) zum Verbinden mit der nächsten und vorhergehenden LDVC zur Bildung einer Warteschlange.
- Fig.9 zeigt ein Format der PDVC.
- IDLE: Es geschieht nichts (d.h. es gibt keine LDVC in einem Ausführungszustand oder Wartezustand).
- WAIT: Verfügbarkeit des DVBUS wird abgewartet.
- WORK: Eine Eingabe/Ausgabe-Operation wird ausgeführt.
- DISC: Während die DVC in Betrieb ist, ist der DVBUS offen (d.h. ausgeschaltet).
- Die PDVC hat die Gerätenummer des PM der Eingabe/Ausgabe-Anforderungsquelle (Active PM#) und die Verbindungsinformationen (Next PDVC und Prev. PDVC) zum Verbinden der PDVC mit der nächsten oder vorhergehenden PDVC zur Bildung einer Warteschlange.
- Fig.10 zeigt ein Beispiel der Warteschlange der PDVC. Eingabe/Ausgabe-Anforderungen vom PM#0, PM#1 und PM#2 werden an die DVC#0, DVC#1 und DVC#2 gestellt und in der LDVC gehalten. PDVC#2, PDVC#0 und PDVC#1 sind mit einer Warteschlange in dieser Reihenfolge in Übereinstimmung mit einer Ankunftssequenz von Eingabe/Ausgabe-Anforderungen verbunden.
- Die LDVC von PM#0 bildet eine Warteschlange für PDVC#1.
- LDVCs von PM#1, PM#2 und PM#0 bilden eine Warteschlange für PDVC#0, und LDVC von PM#0 bildet eine Warteschlange für PDVC#1.
- Ein Prozeßfluß eines Steuerprogramms eines ADP zur Verarbeitung einer Eingabe/Ausgabe-Anforderung unter Verwendung der PDVC und LDVC wird mit Bezugnahme auf Fig.11 bis 14 erläutert.
- Fig.11 ist ein Flußdiagramm eines Hauptprozesses des ADP-Steuerprogramms. Wenn die Energiequelle eingeschaltet wird, wird ein Initialisierungsprozeß durchgeführt, und wenn eine I/O- (Eingabe/Ausgabe-) Instruktion von einem PM kommt, wird ein Prozeß des Empfangs der I/O-Instruktion durchgeführt. Wenn eine PDVC in einem Wartezustand ist, wartet der Prozeß, bis ein DVBUS zwischen ADP-DVC verfügbar ist, wodurch der I/O-Befehl ausgeführt wird. Die Vollendung dieser Ausführung des I/O-Befehls wird durch einen Unterbrechungsprozeß (nachstehend beschrieben) vom ADP zum PM vorgenommen. Wenn die DVC eine Wiederanschließungsanforderung überträgt, wird ihr Verbindungsprozeß für die PDVC im DISC- Zustand durchgeführt.
- Fig.12 zeigt ein Flußdiagramm eines Prozesses, in dem die APU 21 des ADP 2 einen I/O-Befehl empfängt.
- Wenn eine von einem PMN zu einer DVCm übertragene Anforderung am ADP 2 ankommt, und wenn OPCODE nicht LACK (Unterbrechung-Quittung) ist, wird die Anforderung als I/O- Befehl beurteilt, und der ADP 2 untersucht den Zustand von LDVCnm, und sendet einen I/O-Befehl "Empfangszurückweisung" an PMN als Antwort in einem anderen Zustand als IDLE. Wenn LDVCnm IDLE ist, sendet der Prozeß einen I/O-Befehl "Empfangsvollendung" an PMN, um den Zustand von LDVCnm auf WAIT zu ändern, und LDVCnm an die LDVC-Warteschlange anzufügen, nach dem Speichern von Paramterinformationen in LDVCnm.
- Als nächstes untersucht der ADP den Zustand von LDVCm, und der Prozeß kehrt zum Hauptprozeß in anderen Zuständen als IDLE zurück. Im Fall von IDLE ändert der ADP den Zustand der PDVC auf WAIT und fügt PDVCm an die PDVC-Warteschlange an, wodurch zum in Fig.11 gezeigten Hauptprozeß zurückgekehrt wird. Wenn OPCODE LACK ist, wird die Unterbrechungsanforderung vom PM akzeptiert, ein Zustand von LDVCnm wird leer gemacht, d.h. IDLE, wodurch zum Hauptprozeß zurückgekehrt wird.
- Fig.13 zeigt ein Flußdiagramm einer I/O-Befehlsausführung. n bezeichnet die Gerätenummer des PM, und m bezeichnet die Gerätenummer der DVC.
- Wenn der DVBUS verwendet werden kann, ändert der Prozeß den Zustand der PDVCm für die DVCm und den Zustand der LDVCm von PMn für die DVCm auf WORK. Als nächstes führt der Prozeß eine Eingabe/Ausgabe-Operation durch. Die Eingabe/Ausgabe- Operation wird ausgeführt, indem zuerst ein Befehl an die DVC gesendet wird, Daten zur DVC übertragen werden, und untersucht wird, ob der DVBUS ausgeschaltet ist. Als Trennung des DVBUS gibt es einen Fall, wo alle Eingabe/Ausgabe- Operationen vollendet sind, und einen Fall, wo die DVC während eines mechanischen Betriebs der DVC temporär ausge schaltet ist. Wenn alle Eingabe/Ausgabe-Prozesse nicht vollendet sind, wird der Zustand von PDVCm auf DISC geändert, aus der Warteschlange entfernt und zum Hauptprozeß zurückgeführt. Wenn alle Eingabe/Ausgabe-Operationen vollendet sind, wird LDVCm aus der LDVC-Warteschlange entfernt, und der Unterbrechungsprozeß 1 (in Fig.20 gezeigt) wird ausgeführt.
- Wenn die Länge der LDVC-Treiberwarteschlange nicht ist, wird der Zustand von PDVCm auf WAIT geändert, PDVCm wird an das Ende der PDVC-Treiberwarteschlange bewegt und zum in Fig.11 gezeigten Hauptprozeß zurückgeführt. Wenn die Länge der LDVC-Treiberwarteschlange 0 ist, wird der Zustand von PDVCm auf IDLE geändert, PDVCm wird aus der PDVC- Treiberwarteschlange entfernt und zum Hauptprozeß zurückgeführt.
- Fig.14 zeigt ein Flußdiagramm eines Wiederanschlie ßungsprozesses. Wenn die DVCm im getrennten Zustand eine Wiederanschließungsanforderung stellt, untersucht der Prozeß, ob der Zustand der entsprechenden PDVCm DISC ist. Wenn er von DISC verschieden ist, wird die DVC über die Zurückweisung der Wiederanschließung benachrichtigt, der Prozeß wird durch die Freigabe des DVBUS vollendet und kehrt zum in Fig.11 gezeigten Hauptprozeß zurück. Wenn der Zustand der PDVCm DISC ist, wird er auf WORK geändert, die PDVCm wird an den Beginn der PDVC-Warteschlange bewegt, der Prozeß empfängt die Wiederanschließung, öffnet die Eingabe/Ausgabe- Operation erneut und wird zu in der in Fig.11 dargestellten I/O-Befehlsaus führung zurückgeführt.
- Gemäß der vorliegenden Erfindung kann der Zugriffsbus von entsprechenden PMs auf die beliebige DVC direkt durch einen ADP gesetzt werden, ohne durch andere PM-Wege zu gehen, und das PM, das die Eingabe/Ausgabe-Anforderung gestellt hat, muß die Eingabe/Ausgabe-Anforderung nicht erneut stellen, auch wenn die DVC, auf die zuzugreifen ist, in Verwendung steht, und muß nicht mit anderen PMs kommunizieren. Dies senkt den Aufwand und verbessert die Leistung eines Mehrprozessorsystems.
- Wie in Fig.15 gezeigt, umfaßt ein Mehrprozessorsystem einer zweiten Ausführungsform der vorliegenden Erfindung einen PM 1, einen ADP 2, eine DVC 3, einen IOBUS 4, einen DVBUS 5, eine CPU 11, eine MSU 12, einen PIBC (PM-IOBUS-Verbinder) 13, einen PMBUS (PM-Bus) 14, eine APU 21, eine CSU 22, einen AIBC (ADP-IOBUS-Verbinder) 23, einen ADBC (ADP- DVBUS-Verbinder) 24, einen ADBUS (ADP-Bus) 25 und eine LDVC (Tabelle zum Halten von Eingabe/Ausgabe-Anforderungen) 221.
- Die APU 21 in einem beliebigen ADP 2 führt ein in der CSU 22 gespeichertes Programm aus und nimmt eine Serie von Prozessen vor. Wenn eine Instruktion zum Anfordern einer Unterbrechungsoperation im ADP 2 ausgeführt wird, gibt die APU 21 notwendige Informationen an, wie das PM, das Gegenstand einer Unterbrechungsanforderung sein sollte, und weist den AIBC 23 an, den PBIC 13 des PM 1 um die Unterbrechungsoperation zu ersuchen.
- Der AIBC 23 überträgt die Unterbrechungsanforderung an den PIBC 13 im PM 1 durch den IOBUS 4. Der PIBC 13 benachrichtigt die CPU 11, daß die Unterbrechungsanforderung empfangen wird, und die APU 21 speichert die Unterbrechungsan forderung in der LDVC 221, die der DVC, welche die Unterbrechungsanforderung stellt, und der gegenständlichen DVC entspricht und in der CSU 22 vorgesehen ist, und registriert die LDVC 221 in einer Warteschlange, um auf die Unterbrechungsoperation zu warten.
- Wenn der DVBUS 5 nicht verwendet wird, und eine Unterbrechungsanforderung an das PM gestellt wird, das nicht betrieben wird, stellt die APU 21 die Unterbrechungsanforderung an das PM in Übereinstimmung mit der Warteschlangensequenz und überträgt sequentiell die in der LDVC 221 gehal tenen Unterbrechungsanforderungen.
- Die obige Unterbrechungsoperation wird detaillierter beschrieben. Die folgenden drei Arten von Definitionen betreffen einen Zustand einer Speicherschaltung INTSTS REG 131, die im PIBC 13 vorgesehen ist.
- IDLE: Dies bezeichnet einen Zustand, in dem ein Unterbrechungsempfang möglich ist. PMIRQ (PM-Unterbrechungsanforderung) ist aus. Wenn ein IRQ- (Unterbrechungsanforderungs-) Busbefehl vom ADP 2 empfangen wird, wird dieser Zustand auf einen IRQ-Zustand geändert.
- IRQ: Dies bezeichnet einen Zustand, in dem eine Unterbrechungsanforderung reserviert ist. PMIRQ ist ein. Eine neue Unterbrechung vom ADP 2 wird nicht akzeptiert. Die CPU 11 akzeptiert eine Unterbrechung, und, wenn PCMIACK (PM- Unterbrechung-Quittung) eingeschaltet wird, wird der Zustand auf IACKW (Unterbrechung-Quittung-Warten) geändert.
- IACKW: Dies bezeichnet einen Zustand, in dem die LACK- Busbefehlsübertragung reserviert ist. PMIRQ ist aus. Eine neue Unterbrechung vorn ADP 2 wird nicht akzeptiert. Wenn der PIBC auf einen I/O-Bus zugreift, und ein IACK-Busbefehl übertragen wird, wird der Zustand von INTSTS REG 131 auf IDLE geändert. Das PM kommt in einen Zustand, in dem die Unterbrechung akzeptabel ist.
- Ein Mechanismus des Auftretens einer Unterbrechung für ein einzelnes PM ist wie folgt.
- Wenn eine DVCm eine Unterbrechungsanforderung an ein PM überträgt, speichert die APU 21 (die eine Firmware umfaßt, die auf der APU in Betrieb ist) vorher die detaillierten Unterbrechungsinformationen in dem Bereich der MSU 12, der vom PM beim Erteilen eines I/O-Befehls als Statusblock bezeichnet wird. Die APU 21 setzt Unterbrechungsinformationen (wie ADP#, DVC#, PM# und Unterbrechungsursachencode) in einer Unterbrechungserzeugungsschaltung (INTREQ REG) 231 im AIBC 23, und weist den AIBC 23 an, den Start der Unterbrechung für das PM zu gestatten. Der AIBC 23 greift auf den I/O-Bus zu und überträgt einen Busbefehl (einen IRQ-Busbefehl) einer Unterbrechungsanforderung an das bezeichnete PM. Die oben angegebenen Unterbrechungsinformationen sind in diesem Busbefehl enthalten. Wenn der PIBC 13 einen Unterbrechungsbefehl vom AIBC 23 empfängt, und INTSTS REG 131 leer ist (d.h. sich in einem IDLE-Zustand befindet), werden die Unterbrechungsinformationen im INTSTS REG 131 gesetzt, und die Unterbrechungsanforderung (PMIRQ) an die CPU 11 wird eingeschaltet, und der ADP 2 wird über den Unterbrechungsempfang benachrichtigt. Wenn INTSTS REG 131 nicht leer ist, wird der ADP 2 benachrichtigt, daß die Unterbrechung nicht akzeptiert wird. Diese Benachrichtigungen werden zum ADP 2 über eine Antwortsignalleitung des IOBUS übertragen. Diese Antwortsignalleitung wird zu einer Einheit auf einer Sender- Seite durch eine Einheit auf einer Empfänger-Seite beim Empfang des Busbefehls geführt.
- Die APU 21 wird über den Inhalt des Antwortsignals des AIBC 23 durch eine Unterbrechung an die APU 21 benachrichtigt. Daher kann die APU 21 bestimmen, ob die Unterbrechungstransmission erfolgreich ist. Wenn die Unterbrechungstransmission ausfällt, wird die Unterbrechungsanforderung später erneut versucht.
- Wenn PMIRQ ein ist, und der Unterbrechungsempfang möglich ist, schaltet sich PMIACK ein, wodurch die Unterbrechungsoperation ausgeführt wird. Ob der Unterbrechungsempfang möglich ist, hängt von einem Zustand einer Unterbre chungsmaske in der CPU 11 ab. Dies ist eine wohlbekannte Technologie. Eine Software kann manchmal lange Zeit in einem Unterbrechungsprohibitionszustand laufen. In diesem Fall wird INTSTS REG 131 in diesem Zustand gehalten (d.h. im Zustand von IRQ).
- Wenn sich PMIACK einschaltet, schaltet der PBIC 13 PMIRQ aus, und greift auf den IOBUS zu, indem INTSTS REG 131 in einen IACKW-Zustand versetzt wird, in dem auf die LACK- Transmission gewartet wird, und überträgt einen Busbefehl (IACK-Busbefehl) für den Unterbrechungsempfang an den ADP 2. Wenn die Transmission des Busbefehls vollendet ist, wird INTSTS REG 131 in einen IDLE-Zustand zurückgeführt, und daher wird ein Empfang einer neuen Unterbrechung möglich.
- Wenn der AIBC 23 LACK empfängt, wie in Fig.12 gezeigt, benachrichtigt er die APU 21 beispielsweise durch eine Unterbrechungsoperation. Die APU 21 führt die LDVC 221 in einen IDLE-Zustand zurück, wenn sie LACK empfängt.
- Fig.16 zeigt eine Steuertabelle zum Halten einer Unterbrechungsanforderung in der zweiten Ausführungsform der vorliegenden Erfindung.
- Die Steuertabelle ist entsprechend dem PM (#) vorgesehen und umfaßt LDVC und PMIC.
- Eine LDVC umfaßt eine Tabelle zur Verwaltung von Unterbrechungsanforderungen von entsprechenden DVCs an ein einziges PM, indem sie in eine Warteschlange in der Ankunftssequenz eingegeben werden. PMIC umfaßt eine Tabelle zur Verwaltung der Sequenz des Prozesses der Unterbrechungsanforderungen, wenn die Unterbrechungsanforderungen von einer Vielzahl von DVCs an einer Vielzahl von PMs ankommen.
- Fig.17 zeigt ein Beispiel einer Warteschlange der LDVC. In diesem Fall kommen Unterbrechungsanforderungen von DVCs an ein PM#0 an einem ADP in der Sequenz DVC#2, DVC#0 und DVC#1 an. Daher wird, wie in Fig.17 dargestellt, eine Warteschlange, in der DVC#2, DVC#0 und DVC#1 sequentiell, beginnend mit DVC#2, für LDVC#0 gebildet.
- LDVC#0 wird PMIC#0 unterworfen, und PMIC#0 wird aktiviert, wenn PMIC#0 den Beginn einer Warteschlange von PMIC erreicht und in einen Ausführungszustand kommt. Zu dieser Zeit gelangt die Unterbrechungsanforderung DVC#2, die am Beginn der Warteschlange von PMIC#0 vorgesehen ist, in einen Aus führungs zustand, und die Unterbrechungsanforderungen DVC#0 und DVC#1 gelangen in einen Zustand des Wartens auf eine Ausführung.
- Wenn die Ausführung der Unterbrechungsanforderung von DVC#2 vollendet ist, wird die Anforderung von DVC#2 aus der LDVC-Warteschlange entfernt, und stattdessen gelangt DVC# an den Beginn der LDVC-Warteschlange. Zu dieser Zeit wird jedoch PMIC#0 vom Beginn der PDVC-Warteschlange entfernt und auf eine Ausführung warten gelassen. Daher wird die Unterbrechungsanforderung von DVC#0 auf eine Ausführung warten gelassen, bis PMIC#0 in den nächsten Ausführungszustand gelangt.
- Ein Format und Zustand der verwendeten LDVC in bezug auf die Unterbrechungsanforderung sind gleich wie oben in bezug auf den I/O-Befehl beschrieben.
- Fig.18 zeigt ein PMIC-Format.
- PMIC hat die folgenden Zustände.
- IDLE: Dieser Status zeigt, daß die LDVC, die auf eine Unterbrechung wartet und zu einem bestimmten PM gehört, nicht existiert, d.h. im Zustand von IRQW (Unterbrechungsanforderung-Warten/IRQ (Unterbrechungsanforderung-Ausführen)).
- WAIT: Dieser Zustand zeigt, daß die LDVC von IACKW (Unterbrechung-Quittung-Warten) existiert, und der PMIC auf eine Verfügbarkeit des AIBC 23 wartet. IACKW bezeichnet einen Zustand, in dem eine Unterbrechungsanforderung vom PM akzeptiert wird, und auf LACK gewartet wird.
- ACTIVE: Dieser Zustand zeigt, daß das PM eine Berechtigung zur Kontrolle des AIBC 23 hat. Der Beginn der LDVC, der mit dem PMIC verbunden ist, ist im Zustand von IRQEX.
- Der PMIC hat die Gerätenummer der DVC der Unterbrechungsanforderungsquelle (Active LDVC#) und die Verbindungsinformationen (Next PMIC und Prev. PMIC) zum Verbinden des PMIC mit dem nächsten oder vorhergehenden PMIC zur Bildung einer Warteschlange.
- Fig.19 zeigt ein Beispiel der Unterbrechungswarteschlange des PMIC. Unterbrechungsanforderungen von DVC#0, DVC#1 und DVC#2 werden an PM#0, PM#1 und PM#2 gestellt und in der LDVC gehalten. PMIC#2, PMIC#0 und PMIC#1 sind mit einer Warteschlange in dieser Reihenfolge in Übereinstimmung mit einer Ankunftssequenz von Unterbrechungsanforderungen verbunden. Die LDVC von DVC#0 bildet eine Warteschlange für PMIC#1. LDVCs von DVC#1, DVC#2 und DVC#0 bilden eine Warteschlange für PMIC#0, und LDVC von DVC#0 bildet eine Warteschlange für PMIC#1.
- Fig.20 und 21 zeigen Flußdiagramme des Unterbrechungsprozesses.
- Wie in Fig.20 gezeigt, bestimmt ein Unterbrechungsprozeß 1 zuerst den Zustand von PMICM, wenn PMICM IDLE ist. Dann bestimmt der Prozeß die Länge einer PMIC-Unterbrechungswarteschlange. Wenn die Länge der Warteschlange nicht 0 ist, wird der Zustand von PMIC zu WAIT gemacht, und PMIC tritt in die PMIC-Warteschlange ein. Dann wird der Zustand von LDVCMN IRQW gemacht und wird mit der LDVC-Unterbrechungswarteschlange verbunden. Wenn die Länge der PMIC- Unterbrechungswarteschlange 0 ist, wird der Zustand von PMIC ACTIVE gemacht, und PMIC wird mit dem Beginn der PMIC-Warteschlange verbunden. Dann wird der Zustand von LDVCmn IRQEX gemacht. Als nächstes tritt PMIC in den Beginn der LDVC- Unterbrechungswarteschlange von PMICn ein. Der Prozeß ersucht den AIBC, einen Unterbrechungsbefehl zu erteilen. Dann kehrt der Prozeß zur I/O-Instruktionsausführung zurück. Wenn der Zustand von PMICM WAIT oder ACTIVE ist, macht der Prozeß direkt den Zustand von LDVCnm IRQW.
- Der Unterbrechungsprozeß 2 wird durch eine Unterbrechung vom AIBC an die APU 21 und durch die Benachrichtigung über ein Ergebnis eines Unterbrechungsbusbefehls aktiviert. Wie in Fig.21 gezeigt, bestimmt der Unterbrechungsprozeß 2 das Ergebnis der Ausführung eines Unterbrechungsbusbefehls. Wenn die Ausführung des Unterbrechungsbusbefehls akzeptiert wird, ist der Zustand von LDVC am Beginn IACKW und wird aus der LDVC-Unterbrechungswarteschlange entfernt. Wenn die Länge der LDVC-Unterbrechungswarteschlange 0 ist, wird der Zustand von PMIC IDLE gemacht, und PMIC wird aus der PMIC- Warteschlange entfernt. Dann bestimmt der Prozeß die Länge der PMIC-Unterbrechungswarteschlange. Wenn die Länge der PMIC-Unterbrechungswarteschlange nicht 0 ist, wird der Zustand des nächsten PMIC ACTIVE gemacht, und die LDVC am Beginn wird IRQEX gemacht. Dann weist der Prozeß den AIBC an, einen Unterbrechungsbefehl zu erteilen, wodurch zum ursprünglichen Prozeß zurückgekehrt wird. Wenn die Länge der PMIC-Unterbrechungswarteschlange 0 ist, wird der Prozeß direkt zum ursprünglichen zurückgeführt. Wenn die Länge der LDVC-Unterbrechungswarteschlange nicht 0 ist, wird der Zustand von PMIC WAIT gemacht, und der Zustand von LDVC wird IRQW gemacht und geändert, um mit dem Ende der PMIC-Warteschlange verbunden zu werden. Wenn das Ergebnis der Ausführung des Unterbrechungsbusbefehls eine Ablehnung ist, wird der Zustand von PMIC auch WAIT gemacht, und der Zustand von LDVC wird IRQW gemacht und geändert, um mit dem Ende der PMIC-Warteschlange verbunden zu werden.
- Gemäß der vorliegenden Erfindung können, wie oben beschrieben wird, entsprechende PMs direkt einen Zugriffsweg auf ein beliebige DVC durch einen ADP bestimmen, ohne durch andere PMs zu gehen, und es ist nicht notwendig, daß das PM, das eine Eingabe/Ausgabe-Anforderung stellt, die Eingabe/Ausgabe-Anforderung erneut zu stellen, auch wenn die DVC, auf die ein Zugriff erfolgt, in Verwendung steht, und es ist auch nicht notwendig, mit anderen PMs zu kommunizieren, wodurch der Aufwand verringert und die Leistung eines Mehrprozessorsystems gesteigert wird. Ferner kann die vorliegende Erfindung das Auftreten eines Wartezustands auf eine Unterbrechung für andere PMs in Abhängigkeit davon verringern, ob die Unterbrechung für ein bestimmtes PM akzeptiert wird, wenn die Unterbrechungsanforderung von entsprechenden DVCs an das PM verarbeitet wird, wodurch verhindert wird, daß die Verarbeitungsleistung eines Mehrprozessorsystems reduziert wird.
Claims (19)
1. Mehrprozessorsystem, mit einer
Eingabe/Ausgabe-Anforderungsanordnung, welche Anordnung umfaßt:
eine Vielzahl von Eingabe/Ausgabe-Adaptern (ADP) (2);
eine Vielzahl von Eingabe/Ausgabe-Anordnungen (DVC) (3); und
eine Vielzahl von Informationsverarbeitungsmodulen
(PM);
und dadurch gekennzeichnet ist, daß die Vielzahl von
Informationsverarbeitungsmodulen (PM) zur Verwendung der
Eingabe/Ausgabe-Adapter (ADP) (2) dient, und daß die
Eingabe/Ausgabe-Anordnungen (DVC) (3) geteilt sind, um von
entsprechenden Eingabe/Ausgabe-Adaptern gesteuert zu werden;
und ferner umfaßt:
eine Einrichtung zum Vorsehen einer Tabelle zum Halten
logischer Eingabe/Ausgabe-Anforderungen (LDVC) (221), um
Eingabe/Ausgabe-Anforderungen von entsprechenden
Inforrnationsverarbeitungsmodulen für jede der genannten
Eingabe/Ausgabe-Anordnungen (DVC) (3), die von den genannten
Informationsverarbeitungsmodulen gesteuert werden, unter
Verwendung einer Treiberwarteschlange zu verwalten; und
eine Einrichtung zum Verarbeiten von Eingabe/Ausgabe-
Anforderungen von entsprechenden
Informationsverarbeitungsmodulen (1) auf der Basis eines Zustands der genannten
Tabelle zum Halten von Eingabe/Ausgabe-Anforderungen und der
Eingabe/Ausgabe-Anordnungen.
2. Mehrprozessorsystem nach Anspruch 1, bei welchem:
Tabellen zum Halten physischer
Eingabe/Ausgabe-Anforderungen (PDVCs) in Übereinstimmung mit den genannten DVCs (3)
vorgesehen sind, und die genannten PDVCs eine PDVC-Treiber
warteschlange in der Reihenfolge des Zugriffs auf einen
Gerätebus (DVBUS) (5) bilden.
3. Mehrprozessorsystem nach Anspruch 1, bei welchem:
die genannte Tabelle zum Halten von
Eingabe/Ausgabe-Anforderungen Eingabe/Ausgabe-Anforderungen von einer Vielzahl
von PMs an dieselbe DVC (3) in entsprechenden Zellen einer
Reihe speichert, die derselben DVC (3) entsprechen, wodurch
es den Zellen ermöglicht wird, eine LDVC-Treiberwarte
schlange in einer vorherbestimmten Reihenfolge zu bilden.
4. Mehrprozessorsystem nach Anspruch 3, bei welchem:
PDVCs vorgesehen sind, die den genannten jeweiligen
DVCs (3) entsprechen, die DVCs (3), die jeweiligen Reihen
der genannten Tabelle zum Halten von Eingabe/Ausgabe-Anfor
derungen entsprechen, von einer PDVC-Warteschlange gesteuert
werden, und, wenn die LDVC den Beginn der LDVC-Warteschlange
erreicht, die LDVC am Beginn der LDVC-Warteschlange in die
PDVC-Warteschlange eintritt, und, wenn die PDVC an den
Beginn der PDVC-Warteschlange kommt, eine Ausführung der
Eingabe/Ausgabe startet, wodurch die
Eingabe/Ausgabe-Anforderung ausgeführt wird, wenn die Eingabe/Ausgabe-Anforderung
den Beginn der LDVC-Treiberwarteschlange erreicht und ferner
den Beginn der PDVC-Warteschlange erreicht.
5. Mehrprozessorsystem nach Anspruch 4, bei welchem:
die Zustände der genannten LDVC umfassen: IDLE, worin
nichts geschieht; WAIT, worin auf die Verfügbarkeit von PDVC
gewartet wird; WORK, worin die LDVC an den Beginn der
Warteschlange kommt und die Eingabe/Ausgabe-Operation ausführt;
IRQW, worin die LDVC in die Unterbrechungswarteschlange
eingegeben wird und wartet, bis sie an der Reihe ist, um einen
IRQ-Busbefehl zu erteilen; IRQEX, worin die LDVC mit dem
Beginn der Unterbrechungswarteschlange verbunden wird, eine
PMIC (PM-Unterbrechungssteuertabelle) mit dem Beginn einer
PMIC-Unterbrechungswarteschlange verbunden wird, ein IRQ-
Busbefehl erteilt wird, und auf die Benachrichtigung der
Akzeptanz durch das PM (1) gewartet wird; und IACKW
(Unterbrechung-Quittung-Warten), worin die
Unterbrechungsanforderung vom PM (1) akzeptiert wird, und auf den IACK-Busbefehl
vom ADP (2) gewartet wird, wodurch die
Eingabe/Ausgabe-Anforderung mit der Unterbrechungsanforderung in bezug auf
eine Vollendung einer Ausführung der
Eingabe/Ausgabe-Anforderung assoziiert wird.
6. Mehrprozessorsystern nach Anspruch 4, bei welchem:
die genannte PDVC umfaßt: IDLE, worin nichts geschieht;
WAIT, worin auf die Verfügbarkeit des DVBUS gewartet wird;
WORK, worin die Eingabe/Ausgabe-Operation ausgeführt wird;
und DISC, worin die DVC arbeitet, und der DVBUS (5)
ausgeschaltet ist.
7. Mehrprozessorsystem nach Anspruch 4, bei welchern:
der genannte ADP (2) umfaßt: eine Einrichtung zum
Akzeptieren eines Eingabe/Ausgabe-Befehls, wenn der
Eingabe/Ausgabe-Befehl ankommt, eine Einrichtung zum Ausführen
eines Eingabe/Ausgabe-Befehls, wenn der
Eingabe/Ausgabe-Befehl nicht ankommt, oder wenn eine PDVC in einem
WAIT-Zustand bei einer Vollendung des Akzeptierens des
Eingabe/Ausgabe-Befehls existiert, und zum Vornehmen einer
Unterbrechungsoperation am PM (1) bei der Vollendung einer
Eingabe/Ausgabe-Operation, und eine Einrichtung zum Durchführen
eines Wiederanschließungsprozesses, wenn die PDVC in einem
WAIT-Zustand nicht existiert, oder wenn die
Wiederanschließungsanforderung bei einer Ausführung des genannten
Eingabe/Ausgabe-Befehls erfolgt.
8. Mehrprozessorsystem nach Anspruch 7, bei welchem die
genannte Einrichtung zum Akzeptieren von Eingabe/Ausgabe-
Anforderungen umfaßt: eine Einrichtung zum Zurückweisen
einer Akzeptanz einer Eingabe/Ausgabe-Anforderung, wenn LACK
nicht erteilt wird, und LDVCnm in einem anderen Zustand ist
als IDLE, eine Einrichtung zum Antworten an das PM durch
eine Vollendung des Eingabe/Ausgabe-Anforderungsempfangs,
wenn LACK nicht erteilt wird, und LDVCnm in einem IDLE-
Zustand ist, eine Einrichtung zum Ändern des Zustands von
LDVCnm auf WAIT, und Anfügen von LDVCnm an die
LDVC-Warteschlange, eine Einrichtung zum Andern von PDVCm auf WAIT,
wenn PDVCm in einem IDLE-Zustand ist, und Anfügen von PDVCm
an die PDVC-Treiberwarteschlange, und eine Einrichtung, um
LDVCm in einem Unterbrechungszustand IDLE zu machen, wenn
LACK erteilt wird.
9. Mehrprozessorsystem nach Anspruch 7, bei welchem:
die genannte
Eingabe/Ausgabe-Befehlsausführungseinrichtung umfaßt: eine Einrichtung zum Ändern des Zustands von
PDVCm auf WORK, wenn der DVBUS zur Verfügung steht, und
Ändern des Zustands von LDVCm auf WORK, eine Einrichtung zum
Ausführen einer Eingabe/Ausgabe-Qperation, eine Einrichtung
zum Ändern von PDVCm auf DISC, wenn die
Eingabe/Ausgabe-Operation nicht vollendet ist, und Entfernen von PDVCm aus der
PDVC-Warteschlange, eine Einrichtung zum Entfernen von
LDVCnm aus der LDVC-Treiberwarteschlange und Durchführen
eines Unterbrechungsprozesses, wenn alle Eingabe/Ausgabe-
Operationen vollendet sind, eine Einrichtung zum Ändern des
Zustands von PDVCm auf IDLE, wenn die Länge der LDVC-Trei
berwarteschlange 0 ist, und Entfernen von PDVCm aus der
genannten PDVC-Warteschlange, und eine Einrichtung zum Ändern
des Zustands von PDVCm auf WAIT, wenn die Länge der LDVC-
Treiberwarteschlange nicht 0 ist, und Anfügen von PDVCm an
das Ende der PDVC-Treiberwarteschlange.
10. Mehrprozessorsystem nach Anspruch 9, bei welchem:
die Unterbrechungsprozeßeinrichtung umfaßt: eine
Einrichtung zum Beurteilen der Länge einer
PMIC-Unterbrechungswarteschlange, eine Einrichtung zum Verbinden der
Unterbrechungsanforderung mit der LDVC-Unterbrechungswarteschlange
von PMICn, wenn die Länge der
PMIC-Unterbrechungswarteschlange nicht 0 ist, und eine Einrichtung zum Verbinden der
genann:en Unterbrechungsanforderung mit dem Beginn der PMIC-
warteschlange und ferner Verbinden der genannten
Unterbrechungsanforderung
mit dem Beginn der
LDVC-Unterbrechungswarteschlange von PMICn, wenn die Länge der
PMIC-Unterbrechungswarteschlange 0 ist, und zum Anweisen, daß ein
Unterbrechungsbefehl zu erteilen ist.
11. Mehrprozessorsystem nach Anspruch 9, bei welchem:
die Unterbrechungsprozeßeinrichtung umfaßt: eine
Einrichtung zum Entfernen der LDVC am Beginn der
LDVC-Unterbrechungswarteschlange, wenn der Unterbrechungsbusbefehl
akzeptiert wird, eine Einrichtung zum Entfernen einer PMIC
aus einer PMIC-Warteschlange, wenn die Länge der
LDVC-Unterbrechungswarteschlange 0 ist, eine Einrichtung, um den
Zustand der nächsten PMIC ACTIVE zu machen, wenn die Länge
der PMIC-Unterbrechungswarteschlange nicht 0 ist, die LDVC
am Beginn als IRQEX zu bezeichnen, und den Unterbrechungs
befehl zu erteilen, eine Einrichtung zum Zurückkehren zu
einem ursprünglichen Prozeß, wenn die Länge der PMIC-
Unterbrechungswarteschlange 0 ist, und eine Einrichtung zum
Verbinden der PMIC mit dem Ende der PMIC-Warteschlange, wenn
der Unterbrechungsbusbefehl nicht akzeptiert wird oder die
Länge der LDVC-Unterbrechungswarteschlange nicht 0 ist.
12. Mehrprozessorsystem, mit einer
Unterbrechungsanforderungs-steueranordnung, welche Anordnung umfaßt:
eine Vielzahl von Eingabe/Ausgabe-Adaptern (ADP);
eine Vielzahl von Eingabe/Ausgabe-Anordnungen (DVC);
und eine Vielzahl von Informationsverarbeitungsmodulen (PM)
und dadurch gekennzeichnet ist, daß die
Informationsverarbeitungsmodule (PM) zur Verwendung der Eingabe/Ausgabe-
Adapter (ADP) dienen, und daß die
Eingabe/Ausgabe-Anordnungen (DVC) geteilt sind, um von entsprechenden Einga
be/Ausgabe-Adaptern gesteuer: zu werden;
und ferner umfaßt:
eine Einrichtung zum Vorsehen einer Tabelle zum Halten
von Unterbrechungsanforderungen. um
Unterbrechungsanforderungen
von entsprechenden Eingabe/Ausgabe-Anordnungen an
jedes der genannten Informationsverarbeitungsmodule unter
Verwendung einer Warteschlange zu verwalten; und
eine Einrichtung zum Verarbeiten von
Unterbrechungsanforderungen von entsprechenden Eingabe/Ausgabe-Anordnungen
auf der Basis des Zustands der genannten Tabelle zum Halten
von Unterbrechungsanforderungen und der
Eingabe/Ausgabe-Anordnungen.
13. Mehrprozessorsystern nach Anspruch 12, bei welchem:
PM-Unterbrechungssteuertabellen (PMICs) in
Übereinstimmung mit den genannten PMs vorgesehen sind, und die
genannten PMICs eine PMIC-Unterbrechungswarteschlange in der
Reihenfolge des Zugriffs auf den Eingabe/Ausgabe-Bus IOBUS (4)
bilden.
14. Mehrprozessor-Steuersystem nach Anspruch 12, bei
welchem:
die genannte Tabelle zum Halten von
Unterbrechungsanforderungen Unterbrechungsanforderungen von einer Vielzahl
von DVCs (3) an dasselbe PM in entsprechenden Zellen einer
Reihe speichert, die demselben PM entsprechen, wodurch es
den genannten Zellen ermöglicht wird, eine Warteschlange in
einer vorherbestimmten Reihenfolge zu bilden.
15. Mehrprozessorsystem nach Anspruch 12, bei welchem:
PM-Unterbrechungssteuertabellen (PMICs) vorgesehen
sind, die den genannten jeweiligen PMs entsprechen, welche
PMs, die jeweiligen Reihen der genannten Tabelle zum Halten
von Eingabe/Ausgabe-Anforderungen entsprechen, von einer
PMIC-Warteschlange gesteuert werden, und, wenn die LDVC den
Beginn der LDVC-Warteschlange erreicht, die LDVC am Beginn
der LDVC-Warteschlange in die PMIC-Warteschlange eintritt,
und, wenn die PMIC an den Beginn der PMIC-Warteschlange
kommt, eine Unterbrechungsausführung startet.
16. Mehrprozessorsystem nach Anspruch 15, bei welchem:
der Zustand der genannten LDVC umfaßt: IDLE, worin
nichts geschieht; WAIT, worin auf die Verfügbarkeit von PDVC
gewartet wird; WORK, worin die LDVC an den Beginn der
Warteschlange kommt und die Eingabe/Ausgabe-Operation ausführt;
IRQW (Unterbrechungsanforderung-Warten), worin die LDVC in
die Unterbrechungswarteschlange eingegeben wird und wartet,
bis sie an der Reihe ist, um einen IRQ-Busbefehl zu
erteilen; IRQEX, worin die LDVC mit dem Beginn der
Unterbrechungswarteschlange verbunden wird, PMIC mit dem Beginn
einer PMIC-Unterbrechungswarteschlange verbunden wird, ein
IRQ-Busbefehl erteilt wird, und auf die Benachrichtigung der
Akzeptanz durch das PM gewartet wird; und IACKW, worin die
Unterbrechungsanforderung vom PM (1) akzeptiert wird, und
auf den LACK- (Unterbrechung-Quittung-) Busbefehl vom ADP
(2) gewartet wird.
17. Mehrprozessorsystem nach Anspruch 15, bei welchem:
die genannte PDVC umfaßt: IDLE, worin nichts geschieht;
WAIT, worin auf die Verfügbarkeit des DVBUS (5) gewartet
wird; und WORK, worin die Eingabe/Ausgabe-Operation
ausgeführt wird.
18. Mehrprozessorsystem nach Anspruch 12, bei welchem:
der genannte Unterbrechungsprozeß umfaßt: eine
Einrichtung zum Beurteilen der Länge der
PMIC-Unterbrechungswarteschlange, wenn der Zustand von PMIC IDLE ist, eine
Einrichtung, um den Zustand von PMIC WAIT zu machen, zum
Verbinden der Unterbrechungsanforderung mit der
PMIC-Warteschlange und zum Verbinden der Unterbrechungsanforderung mit
der LDVC-Unterbrechungswarteschlange von PMICN, wenn die
Länge der PMIC-Unterbrechungswarteschlange nicht 0 ist, eine
Einrichtung zum Verbinden der genannten
Unterbrechungsanforderung mit dem Beginn der PMIC-warteschlange und ferner
Verbinden der genannten Unterbrechungsanforderung mit dem
Beginn der LDVC-Unterbrechungswarteschlange von PMICN, wenn
die Länge der PMIC-Unterbrechungswarteschlange 0 ist, und
zum Anweisen, daß ein Unterbrechungsbefehl zu erteilen ist,
und eine Einrichtung zum Verbinden der genannten
Unterbrechungsanforderung mit einer LDVC-Unterbrechungswarteschlange
von PMICN, wenn der Zustand von PMICN WAIT oder ACTIVE ist.
19. Mehrprozessorsystem nach Anspruch 12, bei welchem:
der genannte Unterbrechungsprozeß umfaßt: eine
Einrichtung zum Entfernen von LDVC am Beginn der
LDVC-Unterbrechungswarteschlange, wenn der Unterbrechungsbusbefehl akzep
tiert wird, eine Einrichtung zum Entfernen einer PMIC aus
einer PMIC-Warteschlange, wenn die Länge der
LDVC-Unterbrechungswarteschlange 0 ist, eine Einrichtung, um den Zustand
der nächsten PMIC ACTIVE zu machen, wenn die Länge der PMIC-
Unterbrechungswarteschlange nicht 0 ist, die LDVC am Beginn
als IRQEX zu bezeichnen, und den Unterbrechungsbefehl zu
erteilen, eine Einrichtung zum Zurückkehren zu einem
ursprünglichen Prozeß, wenn die Länge der
PMIC-Unterbrechungswarteschlange 0 ist, und eine Einrichtung zum Verbinden der PMIC
mit dem Ende der PMIC-Warteschlange, wenn der
Unterbrechungsbusbefehl nicht akzeptiert wird oder die Länge der
LDVC-Unterbrechungswarteschlange nicht 0 ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5907090 | 1990-03-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69122142D1 DE69122142D1 (de) | 1996-10-24 |
DE69122142T2 true DE69122142T2 (de) | 1997-01-23 |
Family
ID=13102725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69122142T Expired - Fee Related DE69122142T2 (de) | 1990-03-09 | 1991-03-11 | Steuerungsanlage für ein Mehrprozessorsystem |
Country Status (6)
Country | Link |
---|---|
US (1) | US5507032A (de) |
EP (1) | EP0446077B1 (de) |
KR (1) | KR950008837B1 (de) |
AU (1) | AU654268B2 (de) |
CA (1) | CA2037989C (de) |
DE (1) | DE69122142T2 (de) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5371893A (en) * | 1991-12-27 | 1994-12-06 | International Business Machines Corporation | Look-ahead priority arbitration system and method |
US5717950A (en) * | 1994-01-11 | 1998-02-10 | Hitachi, Ltd. | Input/output device information management system for multi-computer system |
US5860022A (en) * | 1994-07-26 | 1999-01-12 | Hitachi, Ltd. | Computer system and method of issuing input/output commands therefrom |
JP3042341B2 (ja) * | 1994-11-30 | 2000-05-15 | 日本電気株式会社 | クラスタ結合型マルチプロセッサシステムにおけるローカル入出力制御方法 |
US5592631A (en) * | 1995-05-02 | 1997-01-07 | Apple Computer, Inc. | Bus transaction reordering using side-band information signals |
US5812799A (en) * | 1995-06-07 | 1998-09-22 | Microunity Systems Engineering, Inc. | Non-blocking load buffer and a multiple-priority memory system for real-time multiprocessing |
US5675829A (en) * | 1995-07-07 | 1997-10-07 | Sun Microsystems, Inc. | Method and apparatus for coordinating data transfer between hardware and software by comparing entry number of data to be transferred data to entry number of transferred data |
FR2737590B1 (fr) * | 1995-08-03 | 1997-10-17 | Sgs Thomson Microelectronics | Dispositif de gestion d'interruptions |
US6021456A (en) * | 1996-11-12 | 2000-02-01 | Herdeg; Glenn Arthur | Method for communicating interrupt data structure in a multi-processor computer system |
US6393455B1 (en) | 1997-03-28 | 2002-05-21 | International Business Machines Corp. | Workload management method to enhance shared resource access in a multisystem environment |
US5960178A (en) * | 1997-08-08 | 1999-09-28 | Bell Communications Research, Inc. | Queue system and method for point-to-point message passing having a separate table for storing message state and identifier of processor assigned to process the message |
US6073197A (en) * | 1997-08-21 | 2000-06-06 | Advanced Micro Devices Inc. | Apparatus for and method of communicating data among devices interconnected on a bus by using a signalling channel to set up communications |
US6085277A (en) * | 1997-10-15 | 2000-07-04 | International Business Machines Corporation | Interrupt and message batching apparatus and method |
USRE42761E1 (en) | 1997-12-31 | 2011-09-27 | Crossroads Systems, Inc. | Storage router and method for providing virtual local storage |
US5941972A (en) * | 1997-12-31 | 1999-08-24 | Crossroads Systems, Inc. | Storage router and method for providing virtual local storage |
US6571206B1 (en) * | 1998-01-15 | 2003-05-27 | Phoenix Technologies Ltd. | Apparatus and method for emulating an I/O instruction for the correct processor and for servicing software SMI's in a multi-processor environment |
US6701429B1 (en) | 1998-12-03 | 2004-03-02 | Telefonaktiebolaget Lm Ericsson(Publ) | System and method of start-up in efficient way for multi-processor systems based on returned identification information read from pre-determined memory location |
US7478185B2 (en) * | 2007-01-05 | 2009-01-13 | International Business Machines Corporation | Directly initiating by external adapters the setting of interruption initiatives |
JP7318423B2 (ja) | 2019-08-30 | 2023-08-01 | 富士通株式会社 | 通信制御装置、通信制御方法及び通信制御プログラム |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4228496A (en) * | 1976-09-07 | 1980-10-14 | Tandem Computers Incorporated | Multiprocessor system |
US4276594A (en) * | 1978-01-27 | 1981-06-30 | Gould Inc. Modicon Division | Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same |
US4207609A (en) * | 1978-05-08 | 1980-06-10 | International Business Machines Corporation | Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system |
US4271468A (en) * | 1979-11-06 | 1981-06-02 | International Business Machines Corp. | Multiprocessor mechanism for handling channel interrupts |
FR2470412B1 (fr) * | 1979-11-19 | 1986-10-03 | Bull Sa | Procede et dispositif de comptabilisation et de gestion des evenements asynchrones emis par des appareils peripheriques dans un systeme de traitement de donnees |
US4396984A (en) * | 1981-03-06 | 1983-08-02 | International Business Machines Corporation | Peripheral systems employing multipathing, path and access grouping |
US4562533A (en) * | 1981-12-03 | 1985-12-31 | Ncr Corporation | Data communications system to system adapter |
US4796176A (en) * | 1985-11-15 | 1989-01-03 | Data General Corporation | Interrupt handling in a multiprocessor computing system |
US4783730A (en) * | 1986-09-19 | 1988-11-08 | Datapoint Corporation | Input/output control technique utilizing multilevel memory structure for processor and I/O communication |
US4888691A (en) * | 1988-03-09 | 1989-12-19 | Prime Computer, Inc. | Method for disk I/O transfer |
-
1991
- 1991-03-09 KR KR1019910003804A patent/KR950008837B1/ko not_active IP Right Cessation
- 1991-03-11 DE DE69122142T patent/DE69122142T2/de not_active Expired - Fee Related
- 1991-03-11 AU AU72813/91A patent/AU654268B2/en not_active Ceased
- 1991-03-11 CA CA002037989A patent/CA2037989C/en not_active Expired - Fee Related
- 1991-03-11 EP EP91301976A patent/EP0446077B1/de not_active Expired - Lifetime
-
1993
- 1993-12-02 US US08/166,799 patent/US5507032A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
AU7281391A (en) | 1991-09-12 |
KR950008837B1 (ko) | 1995-08-08 |
DE69122142D1 (de) | 1996-10-24 |
CA2037989A1 (en) | 1991-09-10 |
AU654268B2 (en) | 1994-11-03 |
EP0446077A3 (en) | 1993-01-07 |
KR910017306A (ko) | 1991-11-05 |
CA2037989C (en) | 1998-07-28 |
EP0446077B1 (de) | 1996-09-18 |
US5507032A (en) | 1996-04-09 |
EP0446077A2 (de) | 1991-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69122142T2 (de) | Steuerungsanlage für ein Mehrprozessorsystem | |
DE3854594T2 (de) | Programmierbare Steuerung mit parallelen Prozessoren. | |
DE3853574T2 (de) | Steuerung von Benutzerantworten in einem Übertragungsbus. | |
DE3852433T2 (de) | Funktionsverteiltes Steuergerät. | |
DE3851928T2 (de) | Steuerung von asynchron arbeitenden Peripheriegeräten. | |
DE68927626T2 (de) | Hierarchisches Mehrfachbus-Computersystem | |
DE2856483C2 (de) | ||
DE2411963C3 (de) | Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken | |
DE69127101T2 (de) | System für verteilte mehrfachrechnerkommunikation | |
DE3884579T2 (de) | Urladekontrollsystem in einem Mehrprozessorsystem. | |
DE3883532T2 (de) | Knoten für die bedienung von unterbrechungsanforderungsnachrichten auf einem anstehenden bus. | |
DE2755952C2 (de) | ||
DE3688363T2 (de) | Unterbrechungsabwicklung in einem Multiprozessorrechnersystem. | |
DE3508291A1 (de) | Realzeit-datenverarbeitungssystem | |
DE2243956A1 (de) | Speicherprogrammierte datenverarbeitungsanlage | |
DE4033336A1 (de) | Verfahren zum erzeugen einer ausfallmeldung und mechanismus fuer ausfallmeldung | |
DE2030812A1 (de) | Modulare Datenrechnersysteme | |
DE19607531A1 (de) | Multicluster-Computersystem | |
DE2612139A1 (de) | Ein/ausgang-steuerungssystem | |
DE69114961T2 (de) | Vorrichtung für Zusammenschaltungskanäle. | |
DE3642324A1 (de) | Multiprozessoranlage mit prozessor-zugriffssteuerung | |
DE68924992T2 (de) | Symmetrische Steuerungsanordnung für Multiverarbeitung. | |
EP0799441B1 (de) | Verfahren zur steuerung von technischen vorgängen | |
DE68924109T2 (de) | Verfahren und System für die Überwachung der Anzahl von freien Puffern. | |
DE3639549A1 (de) | Mehrfachsteuersystem und -verfahren fuer plattenspeicher |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |