DE69122142T2 - Steuerungsanlage für ein Mehrprozessorsystem - Google Patents

Steuerungsanlage für ein Mehrprozessorsystem

Info

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
Application number
DE69122142T
Other languages
English (en)
Other versions
DE69122142D1 (de
Inventor
Makoto Kimura
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of DE69122142D1 publication Critical patent/DE69122142D1/de
Application granted granted Critical
Publication of DE69122142T2 publication Critical patent/DE69122142T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor 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.
DE69122142T 1990-03-09 1991-03-11 Steuerungsanlage für ein Mehrprozessorsystem Expired - Fee Related DE69122142T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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