[go: up one dir, main page]

DE4101623A1 - Informationsverarbeitungssystem - Google Patents

Informationsverarbeitungssystem

Info

Publication number
DE4101623A1
DE4101623A1 DE4101623A DE4101623A DE4101623A1 DE 4101623 A1 DE4101623 A1 DE 4101623A1 DE 4101623 A DE4101623 A DE 4101623A DE 4101623 A DE4101623 A DE 4101623A DE 4101623 A1 DE4101623 A1 DE 4101623A1
Authority
DE
Germany
Prior art keywords
command
information
synchronization
execution
value
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.)
Withdrawn
Application number
DE4101623A
Other languages
English (en)
Inventor
Katsuyoshi Kitai
Yasuhiro Inagami
Yoshiko Tamaki
Yoshikazu Tanaka
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE4101623A1 publication Critical patent/DE4101623A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions

Landscapes

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

Description

Die Erfindung betrifft ein Informationsverarbeitungssystem für Multitasking.
Ein erstes Verfahren zum Erzielen von Synchronisation zwi­ schen Befehlen abarbeitenden Prozessoren, die Parallelverar­ beitung (oder Multitasking) ausführen, ist in US 46 36 942 beschrieben. Beim Verfahren gemäß diesem Patent wird ein Ein-Bit-Semaphorregister (Signalanzeigeregister) verwendet, das allen Prozessoren gemeinsam ist. Ein Test- und Setzbe­ fehl ist dem Semaphorregister zugeordnet. Ein Prozessor, der einen Test- und Setzbefehl ausgeführt hat, gibt den fol­ genden Befehl in einer Zeitspanne nicht aus, in der das Semaphorregister den Wert "0" aufweist, oder bis es durch einen anderen Prozessor auf den Wert "1" gesetzt wird. Auf diese Weise wird Hochgeschwindigkeitssynchronisierung da­ durch ausgeführt, daß jeweils ein Prozessor mit den anderen synchronisiert wird, wobei der Prozessor das Semaphorregi­ ster dauernd überprüfen kann. Ein zweites Verfahren zum Aus­ führen von Hochgeschwindigkeitssynchronisierung zwischen parallel arbeitenden (oder Multitasking) Prozessoren ist durch die folgende Technik bekannt. Ein Vergleichsbefehl und ein Verzweigungsbefehl werden kombiniert, um eine Schleife zu bilden, und die Anzahl der Schleifendurchläufe wird auf einen vorgegebenen Wert gesetzt. Wenn die vorgegebene Anzahl von Schleifendurchläufen erreicht ist, wird die Schleife verlassen, und die Steuerung wird durch einen Überwacherauf­ ruf an das Betriebssystem übergeben. Ein Beispiel wird mit Hilfe bekannter Befehle beschrieben, wie sie von M-Reihen- Prozessoren verwendet werden. Bei dieser Befehlsfolge wird die Zahl 100 für die Schleifendurchläufe in GR2 gesetzt, und es wird dann darauf gewartet, daß der Inhalt von SEMAPHORE während eines Schleifendurchlaufs den Wert "1" einnimmt.
Dieser Stand der Technik weist folgende Probleme auf.
Beim ersten herkömmlichen Verfahren, durch das Synchronisie­ rung zwischen Prozessoren herbeigeführt wird, wird der Test- und Setzbefehl andauernd ausgeführt, wobei jeder Prozessor ausschließlich genutzt wird, bis das Semaphorregister auf "1" gesetzt wird. In einer Multÿobumgebung kann jedoch der Fall auftreten, daß ein anderer Job mit Hilfe des Betriebs­ systems in der Zeit ausgeführt werden kann, bis das Sema­ phorregister auf "1" gesetzt wird. Daher hat das erste Ver­ fahren vor allem in einer Multÿobumgebung den Nachteil, daß der Systemdurchsatz schlecht ist.
Beim zweiten herkömmlichen Verfahren tritt dagegen das erst­ genannte Problem nicht auf, da die Anzahl von Schleifen­ durchläufen gesetzt ist. In einer Multÿobumgebung kann sich jedoch die für Synchronisierung erforderliche Zeit mit jeder Abarbeitung ändern, da ein Job Parallelverarbeitung unter­ worfen wird und ein anderer Job in koexistierender Weise ab­ gearbeitet wird. Da sich die CPU-Zeitdauer von Abarbeitung zu Abarbeitung ändert, ist eine Zeiterfassungsliste nicht stabilisiert, und das Programm kann nicht optimiert werden. Dieses Problem tritt nicht auf, wenn es möglich ist, die für Synchronisierung erforderliche Zeit zu messen, um die CPU- Zeitdauer zu bestimmen, von der die zum Synchronisieren er­ forderliche Zeitspanne abgezogen wird. Beim zweiten herkömm­ lichen Verfahren ist es jedoch zum Messen der für Synchroni­ sierung erforderlichen Zeit erforderlich, daß Überwacher­ aufrufbefehle beim Start und beim Ende eines Schleifendurch­ laufs ausgeführt werden, um Überwacheraufrufinterrupts zu erzeugen und um vom Betriebssystem Information zu den CPU- Zeitpunkten zu erhalten, um die Differenz zwischen diesen zu bestimmen. Es besteht jedoch das Problem, daß das Erzeugen von Interrupt zu einem großen Overhead führt, wodurch die Bedeutung des Ausführens von Hochgeschwindigkeits-Synchroni­ sierverarbeitung durch den Schleifenablauf mit exklusiver Nutzung durch jeden Prozessor verlorengeht.
Das zweite herkömmliche Verfahren weist weiterhin folgendes Problem auf. Im allgemeinen ist jeder Prozessor mit einem Pufferspeicher versehen, um Hochgeschwindigkeitsausführung eines Befehls bewerkstelligen zu können. Eine Kopie eines Teils des Hauptspeichers wird im Pufferspeicher gehalten. Wenn Multitasking ausgeführt wird, während Synchronisierung zwischen mehreren Prozessoren hergestellt wird, muß das Syn­ chronisieren unter Nutzen gemeinsamer Daten erfolgen, wie mit dem genannten Datenwert SEMAPHORE, der an derselben Stelle wie im Hauptspeicher vorhanden ist. Insbesondere wird Synchronisation in solcher Weise ausgeführt, daß der erste Prozessor darauf wartet, daß der Wert SEMAPHORE "1" wird, und ein zweiter Prozessor "1" als Wert für SEMAPHORE abspei­ chert.
Der Pufferspeicher im ersten Prozessor hält eine Kopie des Inhalts von SEMAPHORE im Hauptspeicher, wodurch Hochge­ schwindigkeitsverarbeitung für den Vergleich erzielt wird. Wenn der zweite Prozessor den Inhalt von SEMAPHORE im Haupt­ speicher in "1" überschreibt, wird der Wert SEMAPHORE, wie er im Pufferspeicher des ersten Prozessors gehalten wird, ungültig. Wenn dann der erste Prozessor wieder den Vergleich mit dem Inhalt von SEMAPHORE, also mit "1" macht, ist die Kopie von SEMAPHORE aus dem Hauptspeicher im Pufferspeicher des ersten Prozessors nicht vorhanden. Daher kann die Beur­ teilung vollzogener Synchronisation erst erfolgen, nachdem der Inhalt von SEMAPHORE, wie er überschrieben wurde, als Block vom Hauptspeicher in den Pufferspeicher übertragen wurde.
Da die Blockübertragung erfolgt, wenn der Wert von SEMAPHORE "1" wird und dadurch Synchronisierung erzielt wird, hat das zweite Verfahren das Problem, daß lange Zeit zwischen dem Erzielen von Synchronisation und dem Ausführen des nächsten Befehls vergeht. Wenn dagegen ein Verfahren verwendet wird, gemäß dem der Inhalt von SEMAPHORE direkt aus dem Hauptspei­ cher gelesen wird, besteht kein Auftreten oder Erfordernis einer Blockübertragung nach dem Erzielen von Synchronisa­ tion, aber es ist nicht möglich, den Vergleichsvorgang selbst mit hoher Geschwindigkeit auszuführen.
Die Erfindung dient dazu, diese Probleme zu vermeiden.
Der Erfindung liegt die Aufgabe zugrunde, ein Informations­ verarbeitungssystem anzugeben, bei dem Hochgeschwindigkeits­ synchronisierung zwischen Befehle arbeitenden Prozessoren in einer Multÿobumgebung erzielt werden kann und bei dem die für den Busy-Wartezustand erforderliche Zeitspanne ohne Overhead gemessen werden kann.
Eine weitere Aufgabe der Erfindung ist es, ein Informations­ verarbeitungssystem anzugeben, bei dem die Zeitdauer für den Busy-Wartezustand in einer Job-Zeitdauerliste berücksichtigt werden kann.
Zu diesem Zweck weist ein erfindungsgemäßes Informationsver­ arbeitungssystem einen ersten und einen zweiten befehlsab­ arbeitenden Prozessor auf. Der erste Prozessor verfügt über eine Vergleichseinrichtung, die auf einen Befehl zum Herbei­ führen von Synchronisierung des ersten Prozessors mit dem zweiten Prozessor anspricht, um wiederholt erste Daten, die vom zweiten Prozessor überschreibbar oder änderbar sind, mit zweiten Daten für die Synchronisierung zu vergleichen, die durch den ersten Prozessor bestimmt werden, um ein Signal auszugeben, das das Vollziehen von Synchronisierung anzeigt, wenn ein vorgegebenes Vergleichsergebnis erhalten wird. Wei­ terhin ist eine Einrichtung zum Abschließen des Ausführens des Befehls zum Herbeiführen von Synchronisierung vorhanden, wenn eine obere Zeitgrenze abläuft, ohne daß das vorgegebene Vergleichsergebnis von der Vergleichseinrichtung erhalten wird.
Der erste Datenwert ist ein solcher, der in einem Hauptspei­ cher gespeichert wird, der dem ersten und dem zweiten Pro­ zessor gemeinsam ist. Der zweite Datenwert wird in demjeni­ gen von mehreren Registern im ersten Prozessor gehalten, das durch den Befehl zum Ausführen der Synchronisierung bezeich­ net wird. Die jeweilige obere Zeitgrenze ist eine Zeitspan­ ne, die in einem anderen der mehreren Register gehalten wird und das durch den Befehl zum Ausführen der Synchronisierung bezeichnet wird.
Der erste Prozessor kann weiterhin eine Interrupterzeugungs­ einrichtung zum Erzeugen eines gespeicherten Interrupts, im Fall, daß ein äußerer Interrupt in bezug auf den ersten Pro­ zessor gespeichert wird, wenn der wiederholte Vergleich aus­ geführt wird, bis die vorgegebene obere Zeitgrenze erreicht wird, um dadurch das Abarbeiten des Befehls zum Herbeiführen von Synchronisierung abzuschließen.
Der erste Prozessor kann darüber hinaus mit einer Einrich­ tung zum Anzeigen versehen sein, ob Ausführen des Befehls zum Erzielen von Synchronisierung erlaubt sein soll. Weiter­ hin kann er eine Interrupterzeugungseinrichtung zum Erzeugen eines Interrupts in dem Fall aufweisen, daß der erste Pro­ zessor versucht, den Befehl zum Ausführen von Synchronisie­ rung abzuarbeiten, während dies durch die Anzeigeeinrichtung nicht erlaubt wird, um dadurch das Ausführen des Befehls ab­ zuschließen.
Die Erfindung wird im folgenden anhand von durch Figuren veranschaulichten Ausführungsbeispielen näher beschrieben.
Fig. 1 ist ein schematisches Blockdiagramm eines Ausfüh­ rungsbeispiels eines erfindungsgemäßen Informationsverarbei­ tungssystems;
Fig. 2A bis 2C sind Schaltungen, die Details des Informa­ tionsverarbeitungssystems von Fig. 1 zeigen;
Fig. 3A und 3B zeigen das Format bzw. den Ablauf eines Ver­ gleichs- und Warte(CW) -Befehls gemäß der Erfindung;
Fig. 4 ist eine Schaltung, die Details einer CW-Befehls-Aus­ führungssteuereinheit bei einem anderen Ausführungsbeispiel der Erfindung zeigt;
Fig. 5A und 5B sind Schaltungen, die Details von CW-Befehls­ ausführungseinheiten in anderen Ausführungsbeispielen der Erfindung zeigen;
Fig. 6A und 6B sind Schaltungen, die Details einer CW-Be­ fehlsende-Beurteilungsschaltung und einer Interruptsteuer­ schaltung bei weiteren Ausführungsbeispielen der Erfindung zeigen;
Fig. 7 ist eine Schaltung, die Details einer CW-Befehlsaus­ führungseinheit bei einem weiteren Ausführungsbeispiel der Erfindung zeigt;
Fig. 8 ist ein Blockdiagramm zum Erläutern von Datenberei­ chen eines Betriebssystems, das einem erfindungsgemäßen CW- Befehl zugeordnet ist;
Fig. 9A bis 9E sind Flußdiagramme, die einen von einem Be­ triebssystem in Zusammenhang mit einem erfindungsgemäßen CW- Befehl ausgeführten Ablauf zeigen;
Fig. 10A und 10B betreffen ein weiteres Ausführungsbeispiel der Erfindung, wobei Fig. 10A eine Schaltung ist, die De­ tails einer CW-Befehlsausführungseinheit zeigt, und Fig. 10B eine Schaltung ist, die Details einer CW-Befehlsende-Beur­ teilungsschaltung und einer Interruptsteuerschaltung zeigt; und
Fig. 11 und 12 zeigen ein anderes Ausführungsbeispiel mit einem CW-Befehl.
1) Format des CW-Befehls
Ein Beispiel für das Format eines Vergleichs- und Wartebe­ fehls (im folgenden als CW(Compare and Wait)-Befehl be­ zeichnet, gemäß einem Ausführungsbeispiel der Erfindung wird nun unter Bezugnahme auf Fig. 3A erläutert.
Das Format des CW-Befehls ist in Fig. 3A dargestellt. Der Befehl ist 32 Bits (4 Bytes) lang. Die Bits 0 bis 15 be­ zeichnen einen Betriebskode. Ein Feld R1 mit den Bits 24 bis 27 bezeichnen ein Paar Register für allgemeine Verwendung (im folgenden als allgemeine Register bezeichnet), und ein Feld R2 mit den Bits 28 bis 31 bezeichnet die Nummer eines allgemeinen Registers. Die Bits 16 bis 23 werden ignoriert. Im folgenden sind die Registernummern der paarweise zugeord­ neten allgemeinen Register, wie sie durch das Feld R1 fest­ gelegt sind, durch R1 und R1+1 bezeichnet, und die Register­ nummer des allgemeinen Registers, das durch das Feld R2 be­ zeichnet ist, ist durch R2 gegeben.
Der Inhalt des allgemeinen Registers R2 bezeichnet eine Adresse eines Hauptspeichers. Unter dieser Adresse des Hauptspeichers gespeicherte Daten und der Inhalt des allge­ meinen Registers R1 werden miteinander verglichen. Die maxi­ male Ausführungszeit des CW-Befehls ist durch das allgemeine Register R1+1 festgelegt.
Der CW-Befehl führt die Synchronisierung zwischen Befehls­ prozessoren dadurch aus, daß er den Vergleich ausführt, bis der Inhalt der im Hauptspeicher unter der durch das allge­ meine Register R2 vorgegebenen Adresse und der Inhalt des allgemeinen Registers R1 ungleich werden. Wenn die beiden Inhalte ungleich werden, wird die Ausführung des CW-Befehls mit einem Bedingungskode "0" abgeschlossen. Im Fall, wenn die maximale Ausführungszeit während des dauernden Ver­ gleichs ablief, wird der CW-Befehl mit dem Bedingungskode "2" abgeschlossen.
2) Grundzüge des Ablaufs des CW-Befehls
Zunächst wird ein Programmierbeispiel bei Multitasking mit CW-Befehlen, die ein Ausführungsbeispiel der Erfindung dar­ stellen, und Befehlen, die von einem M-Reihen-Prozessor verwendet werden, mit Hilfe von Fig. 12 erläutert. In Fig. 12 bezeichnen Bezugszeichen 2104 bis 2190 eine Befehlsfolge eines Grundprogramms und Bezugszeichen 2204 bis 2272 eine Befehlsfolge eines Unterprogramms.
Es sei angenommen, daß Parallelverarbeiten des Grundpro­ gramms und des Unterprogramms in solcher Weise ausgeführt wird, daß das Grundprogramm durch den Prozessor 0 und das Unterprogramm durch den Prozessor 1 ausgeführt wird.
Zunächst wird die Ausführung des Grundprogramms gestartet. Das Grundprogramm initialisiert gemeinsame Daten SEM und MACRO1 mit "1" bzw. "0" (2104, 2108). Danach wird mit Hilfe eines Makros ATTACH (Anfügen) ein Programmsteuerblock TCB angefügt oder ein Unterprogramm erzeugt (2112). Wenn das Unterprogramm durch das Makro ATTACH erzeugt wird, wird das Ausführen dieses Unterprogramms gestartet. Das Unterprogramm initialisiert gemeinsame Daten NEW und MACRO2 mit "1" bzw. "0" (2204, 2208). Das Grundprogramm führt eine Befehlsfolge 11 (2116) aus und das Unterprogramm eine Befehlsfolge 21 (2212), so daß Parallelverarbeiten des Grundprogramms und des Unterprogramms erfolgt.
Wenn das Ausführen der Befehlsfolge 11 abgeschlossen wird, wartet das Grundprogramm darauf, daß das Unterprogramm die Befehlsfolge 21 abschließt. Bei der dargestellten Befehls­ folge werden die gemeinsamen Daten SEM und MACRO1 dazu ver­ wendet, Synchronisierung zwischen dem Grundprogramm und dem Unterprogramm zu erzielen. Das Grundprogramm lädt "1" und "100" in das zweite bzw. dritte allgemeine Register (2120, 2124) und setzt eine Hauptspeicheradresse für den gemeinsa­ men Datenwert SEM im vierten allgemeinen Register (2128). Danach wird mit Hilfe eines CW-Befehls eine Synchronisier­ verarbeitung auf Grundlage eines Busy-Wartezustands ausge­ führt, in dem eine Vergleichsverarbeitung erfolgt, bis der Wert von SEM ungleich "1" wird, was Abschluß der Synchroni­ sierung anzeigt, oder bis die maximale Ausführungszeit "100" für den CW-Befehl abgelaufen ist (2132). Wenn ein Bedin­ gungskode CC bei Abschluß der Ausführung des CW-Befehls "0" ist, bedeutet dies, daß die Synchronisierung vollzogen wur­ de. Demgemäß wird eine Verzweigung zu L1 gemacht (2136, 2152), und die folgende Befehlsfolge 12 wird ausgeführt (2156). Wenn der Bedingungskode mit Abschluß der Ausführung des CW-Befehls "2" ist, wurde die Synchronisierung noch nicht beendet. In diesem Fall wird MACRO1 auf den Wert "1" gesetzt, um anzuzeigen, daß auf Synchronisierung durch einen Überwacher gewartet wird (2140). Demgemäß wird der Wartezu­ stand für die Synchronisation durch den Überwacher mit einem Makro WAIT (2144) vollzogen.
Wenn andererseits die Ausführung der Befehlsfolge 21 abge­ schlossen ist, teilt das Unterprogramm dem Grundprogramm den Abschluß der Befehlsfolge mit, die parallel mit dem Grund­ programm ausgeführt wurde, um Synchronisierung mit dem Grundprogramm zu erzielen. Das Unterprogramm überschreibt SEM mit dem Wert "0", um den Abschluß der Ausführung der Be­ fehlsfolge 21 dem Grundprogramm mitzuteilen, das darauf war­ tet, daß der Wert von SEM gemäß dem CW-Befehl ungleich "1" wird (2216). Dann wird untersucht, ob MACRO1 den Wert "1" aufweist oder nicht, um dadurch zu untersuchen, ob der War­ tezustand des Grundprogramms zum Synchronisieren mit dem Un­ terprogramm aufgrund des CW-Befehls oder aufgrund des Makros WAIT eingenommen wurde (2220). Wenn der Wert von MACRO1 un­ gleich "1" ist, entspricht dies dem Fall, daß der Wartezu­ stand für die Synchronisierung vom CW-Befehl ausgeht. In diesem Fall wurde die Mitteilung des Abschlusses der Ausfüh­ rung der Befehlsfolge bereits abgeschlossen (2216). Dann er­ folgt eine Verzweigung zu L3 und die anschließende Befehls­ folge wird ausgeführt (2224, 2236). Wenn MACRO1 "1" ist, entspricht dies einem Wartezustand für Synchronisierung, der durch das Makro WAIT ausgelöst ist. In diesem Fall wird ein Makro POST (Anschlußmakro) ausgeführt, um Abschluß der Aus­ führung der Befehlsfolge anzuzeigen (2228).
Nach Erhalt der Mitteilung des Abschlusses der Abarbeitung der Befehlsfolge im Unterprogramm erzeugt das Grundprogramm die anschließende Befehlsfolge 12 (2156). Während das Grund­ programm die Befehlsfolge 12 ausführt, wartet das Unterpro­ gramm darauf, daß das Grundprogramm eine Bedingung mitteilt, die die Ausführung einer Befehlsfolge neu anweist. In der dargestellten Befehlsfolge dienen die gemeinsamen Daten NEW und MACRO2 dazu, daß das Unterprogramm auf die Bedingungs­ mitteilung vom Grundprogramm warten muß. Das Unterprogramm lädt "1" und "100" in das zweite bzw. dritte allgemeine Re­ gister (2236, 2240) und setzt die Hauptspeicheradresse für den gemeinsamen Datenwert NEW im vierten allgemeinen Regi­ ster (2244). Danach wird mit Hilfe eines CW-Befehls eine Vergleichsverarbeitung für einen Busy-Wartezustand ausge­ führt, bis der Wert von NEW ungleich "1" wird und die Be­ dingung mitgeteilt wird, oder bis die maximale Ausführungs­ zeit "100" für den CW-Befehl abgelaufen ist (2248). Wenn der Bedingungskode CC bei Abschluß der Ausführung des CW-Befehls "0" ist, bedeutet dies, daß die Bedingung mitgeteilt wurde. Daher erfolgt eine Verzweigung nach L4 (2252, 2264), und die anschließende Befehlsfolge 23 wird ausgeführt (2268). Wenn der Bedingungskode mit Abschluß der Ausführung des CW-Be­ fehls "1" ist, wurde die Bedingung noch nicht mitgeteilt. Daher wird MACRO2 auf den Wert "1" gesetzt, um anzuzeigen, daß die Mitteilung der Bedingung über das Steuersystem er­ wartet wird (2256), und anschließend wird der Wartevorgang für die Mitteilung der Bedingung über das Betriebssystem vom Makro WAIT übernommen (2260) .
Wenn andererseits das Ausführen der Befehlsfolge 12 abge­ schlossen wird, teilt das Grundprogramm diesen Vorgang bzw. diese Bedingung dem Unterprogramm mit, damit erneut Paral­ lelverarbeitung erfolgt. Die Grundaufgabe schreibt den Wert NEW in "0" um, um die Bedingung dem Unterprogramm mitzutei­ len, das gemäß dem CW-Befehl darauf wartet, daß der Wert von NEW ungleich "1" wird (2160). Anschließend wird untersucht, ob MACRO2 "1" ist oder nicht, um zu überprüfen, ob das War­ ten des Unterprogramms auf die Mitteilung vom Grundprogramm aufgrund des CW-Befehls oder des Makros WAIT erfolgt (2168). Der Fall, daß MACRO2 nicht "1" ist, entspricht einem Warten auf die Mitteilung der Bedingung, das durch den CW-Befehl ausgelöst wird. In diesem Fall wurde die Mitteilung des Vor­ gangs bereits abgeschlossen. Es wird dann nach L2 verzweigt, und die anschließende Befehlsfolge 13 wird abgearbeitet (2172, 2178). Der Fall, daß MACRO2 den Wert "1" aufweist, entspricht einem Warten auf die Mitteilung des Vorgangs vor­ genommen durch das Makro WAIT. In diesem Fall wird das Makro POST ausgeführt, um die Bedingung mitzuteilen (2176). An­ schließend führt das Grundprogramm die Befehlsfolge 13 aus (2186), und das Unterprogramm führt die Befehlsfolge 23 aus (2268), so daß Parallelverarbeitung des Grundprogramms und des Unterprogramms erfolgt.
Die oben beschriebene Verarbeitung wird wiederholt. Dabei wird die Verarbeitung wiederholt, gemäß der das Unterpro­ gramm auf einen Befehl betreffend die Ausführung einer neuen Befehlsfolge durch das Grundprogramm wartet, Parallelverar­ beitung des Grundprogramms und des Unterprogramms erfolgt und das Grundprogramm auf Abschluß der Ausführung der Be­ fehlsfolge durch das Unterprogramm wartet (2186, 2272).
Schließlich ordnet das Hauptprogramm den Programmsteuerblock einem Prozessor zu oder löscht das Unterprogramm mit Hilfe eines Makros DETACH (Abtrennen) (2190).
Zunächst wird der Ablauf des CW-Befehls in Grundzügen mit Hilfe des Flußdiagramms von Fig. 3B erklärt. Detaillierte Erläuterung eines Ausführungsbeispiels eines Verarbeitungs­ systems zum Realisieren des Ablaufs des CW-Befehls erfolgt später.
  • a) Zunächst wird der Wert einer CW-Befehls-Ausführungs­ freigabeflagge untersucht, um zu beurteilen, ob die Ausfüh­ rung eines CW-Befehls zulässig ist oder nicht (Schritt 905) . Die CW-Befehls-Ausführungsfreigabeflagge wird vorab durch einen Überwacher (Betriebssystem) auf "0" oder "1" gesetzt. Das Setzen der Flagge auf "1" zeigt an, daß das Ausführen des CW-Befehls zulässig ist, während das Setzen der Flagge auf "0" anzeigt, daß das Ausführen nicht zulässig ist.
  • b) Im Fall, daß der Wert der CW-Befehlsausführungs-Frei­ gabeflagge "0" ist (Schritt 906), wird eine besondere Ab­ laufausnahme ermittelt (Schritt 950), wodurch die Ausführung des CW-Befehls unterdrückt wird (Schritt 990).
  • c) Im Fall, daß der Wert der CW-Befehlsausführungs-Frei­ gabeflagge "1" (Schritt 907) ist, wird der Inhalt des allge­ meinen Registers R1+1, das durch das Feld R1 des CW-Befehls gegeben ist, in das Zeitgrenzenregister für Nutzer kopiert (Schritt 910). Ebenfalls wird der Inhalt eines Zeitgrenzen­ registers für einen Überwacher (Betriebssystem) in ein in­ ternes Zeitgrenzenregister für Überwacher kopiert. Nach dem Kopieren wird mit dem Aufwärtszählen eines Busy-Wartezeit­ zählers und dem Abwärtszählen des Zeitgrenzenregisters für Nutzer und dem Abwärtszählen des internen Zeitgrenzenregis­ ters für Überwacher begonnen (Schritt 915) . Der Busy-Warte­ zeitzähler ist ein Zeitzähler zum Messen der Ausführungszeit für den CW-Befehl, und er dient dazu, die Busy-Wartezeit­ spanne zu messen, die für die Synchronisierung zwischen Pro­ zessoren erforderlich ist. Abweichend vom Zeitgrenzenregis­ ter für Überwacher und vom Zeitgrenzenregister für Nutzer wird der Wert des Busy-Wartezeitzählers nicht jedesmal rück­ gesetzt, wenn ein CW-Befehl ausgeführt wird. Daher kann der Busy-Wartezeitzähler den akkumulierten Wert der Busy-Warte­ zeitspannen für mehrere CW-Befehle liefern. Dadurch, daß ein Systemverwalter oder ein Nutzer durch das Betriebssystem über den Wert des Busy-Wartezeitzählers informiert wird, kann der Systemverwalter die Busy-Wartezeitspanne zu Lasten eines Nutzers berücksichtigen, oder der Nutzer kann sie beim Optimieren eines parallel verarbeiteten Programms berück­ sichtigen. Das Zeitspannenregister ist ein Register zum Ein­ stellen des oberen Grenzwertes der Busy-Wartezeitspanne, wie sie durch den CW-Befehl verursacht werden darf, und sie wird dazu verwendet, zu verhindern, daß die Busy-Wartezeitspanne zu lange wird. Das Zeitgrenzenregister für Nutzer und das Zeitgrenzenregister für den Überwacher (Betriebssystem) wer­ den vorbereitet.
  • d) Der Inhalt D2 des Hauptspeichers unter der Adresse, wie sie durch das allgemeine Register R2 vorgegeben wird und wie sie durch das Feld R2 des CW-Befehls bezeichnet ist, wird abgerufen (Schritt 920).
  • e) Der Inhalt des allgemeinen Registers R1, wie es durch das Feld R1 des CW-Befehls bezeichnet ist, wird mit D2 ver­ glichen (Schritt 925).
  • f) Im Fall, daß die beiden Inhalte einander nicht gleich sind (Schritt 926), bedeutet dies, daß die Verarbeitung zum Synchronisieren der Prozessoren durch den CW-Befehl norma­ lerweise abgeschlossen ist. Daher wird D2 in das allgemeine Register R1 geladen (Schritt 955), der Bedingungskode wird auf "0" gesetzt (Schritt 926), das Verarbeiten zum Bringen des Busy-Wartezeitzählers und des Zeitgrenzenregisters auf den laufenden Stand werden unterbrochen (Schritt 975), und der Inhalt des Zeitgrenzenregisters für Nutzer wird in das allgemeine Register R1+1 kopiert (Schritt 980), wodurch das Abarbeiten des CW-Befehls abgeschlossen wird (Schritt 990).
  • g) Im Fall, daß die beiden in Schritt 925 miteinander ver­ glichenen Inhalte gleich sind (Schritt 927), wird der Inhalt des Zeitgrenzenregisters für Nutzer überprüft (Schritt 930).
  • h) Im Fall, daß der Inhalt des Zeitgrenzenregisters für Nutzer gleich oder kleiner ist als 0, d. h. im Fall, wenn die Grenze der Ausführungszeit für den CW-Befehl erreicht wurde (Schritt 931), wird der Bedingungskode auf "2" gesetzt (Schritt 960), das Verarbeiten zum Bringen des Busy-Warte­ zeitzählers und des Zeitgrenzenregisters auf den laufenden Stand werden angehalten (Schritt 975), und der Inhalt des Zeitgrenzenregisters für Nutzer wird in das allgemeine Register R1+1 kopiert (Schritt 980), wodurch die Ausführung des CW-Befehls abgeschlossen wird (Schritt 990).
  • i) Im Fall, daß der Inhalt des Zeitgrenzenregisters für Nutzer größer ist als 0 (Schritt 932), wird der Inhalt des internen Zeitgrenzenregisters für Überwacher untersucht (Schritt 935).
  • j) Im Fall, daß der Inhalt des internen Zeitgrenzenregi­ sters für Überwacher gleich oder kleiner ist als 0, d. h. im Fall, daß die Grenze der Ausführungszeit für den CW-Befehl erreicht wurde (Schritt 936), wird die Verarbeitung zum Bringen des Busy-Wartezeitzählers und des Zeitgrenzenregis­ ters auf den laufenden Stand angehalten (Schritt 977), der Inhalt des Zeitgrenzenregisters für Nutzer wird in das all­ gemeine Register R1+1 kopiert (Schritt 982), und ein CW- Interrupt mit dem Typ des endenden Befehls, der verworfen wurde, wird erzeugt (Schritt 970), wodurch die Ausführung des CW-Befehls abgeschlossen wird (Schritt 990). Dadurch ist es möglich, die Steuerung an den Überwacher (Betriebssystem) zu geben.
  • k) Im Fall, daß der Inhalt des internen Zeitgrenzenregi­ sters für Überwacher größer ist als 0 (Schritt 937), wird untersucht, ob ein Eingabe/Ausgabe-Interruptfaktor oder ein externer Interruptfaktor gespeichert wird oder nicht, um einen Interrupt von außen auf den Prozessor zuzulassen (Schritt 940).
  • l) Im Fall, daß kein Interruptfaktor gespeichert wird (Schritt 941), kehrt der Ablauf zu Schritt 920 zurück. Syn­ chronisierung zwischen den Prozessoren wird durch einen Busy-Wartezustand ausgeführt.
  • m) Im Fall, daß ein Interruptfaktor gespeichert wird (Schritt 942), werden die Abläufe zum Bringen des Busy-Zeit­ zählers und des Zeitgrenzenregisters auf den laufenden Stand angehalten (Schritt 976), der Inhalt des Zeitgrenzenregi­ sters für Nutzer wird in das allgemeine Register R1+1 ko­ piert (Schritt 981), und der gespeicherte Eingabe/Ausgabe- Interrupt oder externe Interrupt wird erzeugt (Schritt 965), wodurch das Ausführen des CW-Befehls abgeschlossen wird (Schritt 990).
Wie oben angegeben wird in einer Zeitspanne, die dem Zeit­ grenzenregister vorgegeben wird, solange keine Eingabe/Aus­ gabe-Interruptanforderung oder externe Interruptanforderung auftrat, das Ausführen des CW-Befehls vorgenommen, bis der Inhalt des Hauptspeichers unter der Adresse, die durch den Inhalt des allgemeinen Registers, wie er durch das Feld R2 des CW-Befehls vorgegeben ist, nicht mehr dem Inhalt des allgemeinen Registers gleich ist, wie es durch das Feld R1 des CW-Befehls bezeichnet wird. Ein Busy-Wartezustand wird dazu verwendet, die Synchronisierung zwischen den Prozesso­ ren zu bewerkstelligen. Eine Busy-Wartezeitspanne wird durch den Busy-Wartezeitzähler gemessen. Ein stabilisierter Betrag kann dadurch bestimmt werden, daß die Busy-Wartezeitspanne von der gesamten CPU-Zeitspanne abgezogen wird, und dies selbst dann, wenn die Busy-Wartezeitspanne für jede Befehls­ ausführung unterschiedlich ist, wie bei Mehrfachjobausfüh­ rung.
3) Ablauf des CW-Befehls
Im folgenden wird ein Ausführungsbeispiel eines erfindungs­ gemäßen Informationsverarbeitungssystems zum Realisieren des oben gegebenen Ablaufs des CW-Befehls im Detail mit Hilfe der Fig. 1 sowie 2A bis 2C erläutert.
3-a) Beschreibung der Grundzüge
Zunächst werden die Grundzüge des gesamten Ausführungsbei­ spiels anhand von Fig. 1 dargestellt.
In Fig. 1 bezeichnen Bezugszeichen 1, 2, 3 und 4 Befehlspro­ zessoren 0 bis 3. Details der Prozessoren 1 bis 3 sind nicht dargestellt, da sie mit denen für den Prozessor 0 überein­ stimmen. Ein Bezugszeichen 5 bezeichnet eine Speichersteuer­ einheit, und ein Bezugszeichen 6 bezeichnet einen Hauptspei­ cher.
Die Steuerspeichereinheit 5 speichert den Zugriff zum Haupt­ speicher 6. Die Prozessoren 0 bis 3 können über die Spei­ chersteuereinheit 5 das Laden von Daten aus dem Hauptspei­ cher 6 und das Speichern von Daten im Hauptspeicher 6 vor­ nehmen.
Im Prozessor 0 bezeichnet ein Bezugszeichen 100 eine CW-Be­ fehlsausführungseinheit, ein Bezugszeichen 113 eine Gruppe allgemeiner Register, ein Bezugszeichen 126 ein internes Zeitgrenzregister für Überwacher, ein Bezugszeichen 131 ein Zeitgrenzenregister für Nutzer und ein Bezugszeichen 150 einen Busy-Wartezeitzähler. Ein Bezugszeichen 200 bezeichnet eine CW-Befehls-Ausführungssteuereinheit, und ein Bezugszei­ chen 210 bezeichnet eine CW-Befehlsausführungs-Freigabeflag­ ge. Ein Bezugszeichen 300 bezeichnet eine CW-Befehlsende- Beurteilungsflagge, und ein Bezugszeichen 320 bezeichnet einen Bedingungskode. Ein Bezugszeichen 400 bezeichnet eine Interruptsteuerschaltung, ein Bezugszeichen 500 einen Be­ fehlsdekoder und ein Bezugszeichen 700 einen Pufferspeicher.
In Fig. 1 liest der Befehlsdekoder 500 einen Befehl vom Puf­ ferspeicher oder über die Speichersteuereinheit 5 vom Haupt­ speicher 6. Im Fall, daß der Lesebefehl ein CW-Befehl ist, sendet der Befehlsdekoder 500 über eine Leitung 506 ein CW- Befehls-Ermittlungssignal "1" an die CW-Befehls-Ausführungs­ steuereinheit 200. Der Befehlsdekoder 500 sendet auch die Nummern R1 und R2 für allgemeine Register, wie sie durch die Felder R1 bzw. R2 des Befehls gegeben sind, über Leitungen 504 und 505 an die CW-Befehlsausführungseinheit 100.
Im Fall, daß der Inhalt der CW-Befehls-Ausführungsfreigabe­ flagge 210 "0" ist, senden die CW-Befehls-Ausführungssteuer­ schaltung 200 ein besonders Ausführungsausnahme-Anforderungssig­ nal "1" über eine Leitung 214 an die Interruptsteuereinheit 400. Die Interruptsteuerschaltung 400 erzeugt aufgrund der besonderen Ausführungsausnahme einen Interrupt. Andererseits führt die CW-Befehls-Ausführungssteuereinheit 200 vier Ver­ arbeitungsabläufe (1) bis (4) wie folgt aus, wenn der Inhalt der CW-Befehls-Ausführungsfreigabeflagge 210 "1" ist.
  • 1) Die Steuereinheit 200 sendet ein CW-Befehls-Ausführungs­ steuersignal über eine Leitung 222 an die CW-Befehlsausfüh­ rungseinheit, um die Ausführung des CW-Befehls zu steuern.
  • 2) Die Steuereinheit 200 sendet ein CW-Befehlsstartsignal "1" über eine Leitung 232 an die CW-Befehlsausführungsein­ heit, so daß der Inhalt des allgemeinen Registers R1+1, wie es durch das Feld R1 des CW-Befehls bezeichnet wird, in das Zeitgrenzenregister 131 für Nutzer kopiert wird.
  • 3) Die Steuereinheit 200 sendet ein Busy-Wartezeitzähler-Updatesig­ nal "1" über eine Leitung 241 an die CW-Befehlsausführungs­ einheit, um die Verarbeitung für das Hochzählen des Busy- Wartezeitzählers 150 zu starten.
  • 4) Die Steuereinheit 200 sendet ein Zeitgrenzenregister-Updatesignal "1" über eine Leitung 234 an die CW-Befehlsausführungseinheit 100, um die Verarbeitung für das Abwärtszählen des internen Zeitgrenzen­ registers 126 für Überwacher und das Zeitgrenzenregister 131 für Nutzer zu starten.
Die CW-Befehlsausführungseinheit 100 vergleicht den Inhalt des allgemeinen Registers 113 R1, wie es durch das Feld R1 des Befehls bezeichnet wird, und den Inhalt des Hauptspei­ chers unter der Adresse, wie sie durch den Inhalt des allge­ meinen Registers R2 gegeben wird, das durch das Feld R2 des Befehls bezeichnet ist, miteinander. Wenn die Inhalte un­ gleich sind, sendet die CW-Befehlsausführungseinheit 100 ein Synchronisiersignal "1" über eine Leitung 119 an die CW-Be­ fehlsende-Beurteilungsschaltung 300 und lädt den Inhalt des Hauptspeichers 6 unter der Adresse, wie sie durch den Inhalt des allgemeinen Registers 113 R2, wie es durch das Feld R2 des Befehls bezeichnet wird, in das allgemeine Register 113 R1, wie es durch das Feld R1 des Befehls bezeichnet wird. Die CW-Befehlsausführungseinheit 100 sendet auch ein Zeit­ grenzenablaufsignal "1" (für Überwacher) über eine Leitung 129 an die CW-Befehlsende-Beurteilungsschaltung 300, wenn der Inhalt des internen Zeitgrenzenregisters 126 für Überwa­ cher ungleich oder kleiner 0 ist, und sie sendet ein Zeit­ grenzenablaufsignal "1" (für Nutzer) über eine Leitung 131 an die CW-Befehlsende-Beurteilungsschaltung 300, wenn der Inhalt des Zeitgrenzenregisters 131 für Nutzer ungleich oder kleiner 0 wird.
  • 1) Im Fall, daß die Leitung 119 (oder das Synchronisiersig­ nal) und die Leitungen 129 und 139 (oder die Zeitgrenzenab­ laufsignale) alle den Wert "0" führen, sendet die CW-Be­ fehlsende-Beurteilungsschaltung 300 ein Wiedervergleichs- Anforderungssignal "1" über eine Leitung 324 an die CW-Be­ fehls-Ausführungssteuerschaltung 200. Diese wiederum sendet ein CW-Befehls-Ausführungssteuersignal über eine Leitung 222 an die CW-Befehlsausführungseinheit 100, um diese wieder zu veranlassen, eine Verarbeitung zum Vergleichen der Inhalte des allgemeinen Registers 113 R1, wie es durch das Feld R1 des CW-Befehls bezeichnet wird, mit dem Inhalt des Haupt­ speichers 6 unter der Adresse, die durch den Inhalt des all­ gemeinen Registers 113 R2 gegeben ist, wie es durch das Feld R2 des CW-Befehls bezeichnet wird, miteinander zu verglei­ chen. Ein Busy-Wartezustand wird ausgeführt.
  • 2) Im Fall, daß die Leitung 119 (oder das Synchronisiersig­ nal) den Wert "1" führt, setzt die CW-Befehlsende-Beurtei­ lungsschaltung 300 den Bedingungskode 320 auf den Wert "0" und sendet ein Bedingungskode-Setzendesignal "1" über eine Leitung 331 an die CW-Befehls-Ausführungssteuerschaltung 200. Auch dann, wenn die Leitung 139 oder das Zeitgrenzen­ ablaufsignal (für Nutzer) den Wert "1" führt, setzt die CW- Befehlsende-Beurteilungsschaltung 300 den Bedingungskode 320 auf "2" und sendet das Bedingungskode-Setzendesignal "1" über die Leitung 331 an die CW-Befehls-Ausführungssteuerein­ heit 200. Auf den Empfang des Bedingungskode-Setzendesignals "1" über die Leitung 331 wechselt die CW-Befehls-Ausfüh­ rungssteuerschaltung 200 den Wert auf der Leitung 241 (oder das Busy-Wartezeit-Updatesignal) von "1" auf "0", um den Ablauf zum Bringen des Busy-Wartezeitzählers und des Zeit­ grenzenregisters auf den laufenden Stand zu beenden. Auch sendet die CW-Befehls-Ausführungssteuerschaltung 200 ein CW-Befehlsendesignal über eine Leitung 233 an die CW-Be­ fehlsausführungseinheit 100, um den Inhalt des Zeitgrenzen­ registers 131 für Nutzer in das allgemeine Register R1+1 zu laden, wie es durch das Feld R1 des Befehls bezeichnet wird.
  • 3) Im Fall, daß die Leitung 129 oder das Zeitgrenzenablauf­ signal für Überwacher den Wert "1" führt, sendet die CW- Befehlsende-Beurteilungsschaltung 300 ein CW-Interruptanfor­ derungssignal "1" über eine Leitung 353 an die Interrupt­ steuerschaltung 400. Die Interruptsteuerschaltung 400 er­ zeugt einen CW-Interrupt.
Die Interruptsteuerschaltung 400 erzeugt einen Eingabe/Aus­ gabe-Interrupt oder einen externen Interrupt, wenn ein Ein­ gabe/Ausgabe-Interruptsignal über eine Leitung 422 oder ein externes Interruptsignal über eine Leitung 423 während der Ausführung des CW-Befehls erhalten wird. Nach dem Erzeugen des Eingabe/Ausgabe-Interrupts oder des externen Interrupts sendet die Interruptsteuerschaltung 400 ein Interrupterzeu­ gungssignal "1" über eine Leitung 411 an die CW-Befehls-Aus­ führungssteuerschaltung 200. Auf den Empfang des Interrupt­ erzeugungssignals hin ändert die CW-Befehls-Ausführungs­ steuerschaltung 200 das Signal auf der Leitung 241 (oder das Busy-Wartezeitzähler-Updatesignal) und auf der Leitung 234 (oder das Zeitgrenzenregister-Updatesignal) von "1" auf "0", um die Verarbeitung zum Bringen des Busy-Wartezeitzählers und des Zeitgrenzenregisters auf den laufenden Stand anzu­ halten. Auch sendet die CW-Befehls-Ausführungssteuerschal­ tung 200 ein CW-Befehlsendesignal über die Leitung 233 an die CW-Befehlsausführungseinheit 100, um den Inhalt des Zeitgrenzenregisters 131 für Nutzer in das Register 113 R1+1 zu kopieren, wie es durch das Feld R1 des Befehls bezeichnet wird.
Auf diese Art und Weise kann Synchronisierung zwischen Pro­ zessoren durch den zeitbegrenzten Busy-Wartezustand bewerk­ stelligt werden, und die Busy-Wartezeitspanne kann gemessen werden.
3-b) Detaillierte Beschreibung
Nun werden Details des Informationsverarbeitungssystems ge­ mäß einem Ausführungsbeispiel der Erfindung zum Realisieren des CW-Befehls mit Hilfe der Fig. 2A bis 2C erläutert.
Fig. 2B zeigt Details des Befehlsdekoders 500 und der CW- Befehls-Ausführungssteuerschaltung 200 von Fig. 1. In Fig. 2B bezeichnet das Bezugszeichen 5 die Speichersteuerschal­ tung, das Bezugszeichen 6 den Hauptspeicher, das Bezugszei­ chen 200 die CW-Befehls-Ausführungssteuerschaltung und das Bezugszeichen 500 den Befehlsdekoder.
Im Befehlsdekoder 500 bezeichnet ein Bezugszeichen 501 einen Ablaufkode für einen Befehl, Bezugszeichen 502 und 503 die Felder R1 und R2 des Befehls und ein Bezugszeichen 506 ein CW-Befehlsermittlungssignal. Der Befehlsdekoder 500 greift über die Speichersteuerschaltung 500 auf einen Befehl im Hauptspeicher 6 zu. Im Fall, daß der Ablaufkode 501 eines Befehls ein solcher für einen CW-Befehl gemäß einem Ausfüh­ rungsbeispiel der Erfindung ist, sendet der Befehlsdekoder 500 ein CW-Befehlsermittlungssignal "1" über eine Leitung 506 an die CW-Befehls-Ausführungssteuereinheit 200. Außerdem sendet er die Nummern R1 und R2 für die allgemeinen Regi­ ster, wie sie durch die Felder 502 und 503 des CW-Befehls gegeben sind, auf Leitungen 504 und 505.
In der CW-Befehls-Ausführungssteuereinheit 200 bezeichnet ein Bezugszeichen 210 eine CW-Befehls-Ausführungsfreigabe­ flagge, ein Bezugszeichen 211 ein NICHT-Glied, Bezugszeichen 212 und 213 UND-Glieder, ein Bezugszeichen 220 eine Steuer­ schaltung, ein Bezugszeichen 221 ein ODER-Glied, ein Bezugs­ zeichen 230 eine CW-Befehl-"In Ausführung" (oder "Während Ausführung")-Anzeigeflagge und ein Bezugszeichen 131 ein ODER-Glied.
Die CW-Befehls-Ausführungsfreigabeflagge 210 ist ein Ein- Bit-Register und sie gibt an, ob Ausführung des CW-Befehls freigegeben ist. Der Wert "1" der CW-Befehls-Ausführungs­ freigabeflagge 210 zeigt an, daß Ausführung des CW-Befehls zugelassen ist, während der Wert "0" anzeigt, daß die Aus­ führung des CW-Befehls nicht zugelassen ist. Ein Überwacher kann den Wert "0" oder "1" aus dem Hauptspeicher 6 über eine Leitung 215 in die CW-Befehls-Ausführungsfreigabeflagge 210 laden und den Inhalt dieser Flagge im Hauptspeicher 6 über eine Leitung 216 abspeichern. Dadurch kann der Überwacher mit Hilfe der CW-Befehlsausführungsflagge den Kreis von Nutzern einschränken, die CW-Befehle nutzen können.
Nun wird der Fall erläutert, daß das CW-Befehlsermittlungs­ signal "1" vom Befehlsdekoder 500 über eine Leitung 506 er­ halten wird, während die CW-Befehls-Ausführungsfreigabe­ flagge 210 "0" ist. Da diese Flagge diesen Wert aufweist, erhält der Eingang des NICHT-Gliedes 211 den Wert "0", und demgemäß nimmt sein Ausgang den Wert "1" an. Da die Aus­ gangssignale sowohl vom NICHT-Glied 211 wie auch auf der Leitung 506 (oder das CW-Befehlsermittlungssignal) beide "1" sind, steht demgemäß an beiden Eingängen des UND-Gliedes 211 der Wert "1" an, und demgemäß erhält der Ausgang des UND- Gliedes 212 oder eine Leitung 214 den Wert "1", der als Spe­ zialbetriebs-Ausführungsanforderungssignal "1" geliefert wird. Das Spezialbetriebs-Ausführungsanforderungssignal wird an die Interruptsteuerschaltung 400 gegeben, die ihrerseits eine Spezialbetriebsausnahme erzeugt, so daß die Ausführung des CW-Befehls unterdrückt wird.
Nun wird der Fall erläutert, daß das CW-Befehlsermittlungs­ signal über die Leitung 506 zum Befehlsdekoder 500 den Wert "1" aufweist, während die CW-Befehls-Ausführungsfreigabe­ flagge 210 den Wert "1" aufweist. Da der Wert dieser Flagge und derjenige auf der Leitung 506 (oder das CW-Befehlser­ mittlungssignal) beide "1" sind, liegt an beiden Eingängen des UND-Gliedes 211 der Wert "1" an, und demgemäß hat auch der Ausgang des UND-Gliedes 211 oder die Leitung 232 den Wert "1". Wenn die Leitung 232 den Wert "1" einnimmt, wird das Ausgangssignal des ODER-Gliedes 221 "1", welches Signal wiederum an die Steuerschaltung 220 gesandt wird. Nachdem die Steuerschaltung 220 das Signal "1" von der ODER-Schal­ tung 221 erhalten hat, sendet sie ein CW-Befehls-Ermitt­ lungssteuersignal über eine Leitung 222 an die CW-Befehls­ ausführungsschaltung 100, um die Ausführung der Schritte 920, 925, 930 und 935 im Flußdiagramm von Fig. 3B zu steu­ ern, das den Ablauf für den CW-Befehl darstellt. Ebenso wird die CW-Befehl-"In Ausführung"-Anzeigeflagge 230, die ein Ein-Bit-Register ist, auf "1" gesetzt, wenn die Leitung 232 (oder das Setzsignal) den Wert "1" führt, und sie wird auf "0" rückgesetzt, wenn eine Leitung 233 (oder ein Rücksetz­ signal) den Wert "1" führt. Dementsprechend wird die CW- Befehl-"In Ausführung"-Anzeigeflagge 230 auf Eins gesetzt, wenn die Leitung 232 "1" führt, und demgemäß führen auch eine Leitung 241 (oder ein Busy-Wartezeitzähler-Updatesig­ nal) und eine Leitung 234 (oder ein Zeitgrenzenregister- Updatesignal) den Wert "1". Das Busy-Wartezeitzähler-Update­ signal und das Zeitgrenzenregister-Updatesignal werden über Leitungen 241 bzw. 234 an die CW-Befehlsausführungseinheit 100 gegeben, wodurch die Verarbeitung für das Aufwärtszählen des Busy-Wartezeitzählers 150 und für das Aufwärtszählen der Zeitgrenzenregister 136 und 131 gestartet werden. Ebenso wird ein CW-Befehls-Startsignal "1" über eine Leitung 232 an die CW-Befehlsausführungseinheit 100 gegeben.
Fig. 2A zeigt Details der CW-Befehlsausführungseinheit 100 von Fig. 1. In Fig. 2A bezeichnet das Bezugszeichen 5 die Speichersteuereinheit, das Bezugszeichen 6 den Hauptspei­ cher und das Bezugszeichen 100 die CW-Befehlsausführungsein­ heit.
In der CW-Befehlsausführungseinheit 100 bezeichnet ein Be­ zugszeichen 110 einen Komparator, ein Bezugszeichen 111 ein Adreßregister, ein Bezugszeichen 112 ein Datenregister, ein Bezugszeichen 113 allgemeine Register, ein Bezugszeichen 114 ein Pufferglied, ein Bezugszeichen 120 einen Komparator, ein Bezugszeichen 121 ein Zeitgrenzenregister für Überwacher, ein Bezugszeichen 122 einen Dekrementierer, ein Bezugszei­ chen 123 eine Konstante "0", ein Bezugszeichen 126 ein in­ ternes Zeitgrenzenregister für Überwacher, ein Bezugszeichen 130 einen Komparator, ein Bezugszeichen 131 ein Zeitgrenzen­ register für Nutzer, ein Bezugszeichen 132 einen Dekremen­ tierer, ein Bezugszeichen 133 eine Konstante "0" und ein Bezugszeichen 140 ein UND-Glied. Ein Bezugszeichen 150 be­ zeichnet einen Busy-Wartezeitzähler, ein Bezugszeichen 155 einen Inkrementierer und ein Bezugszeichen 152 ein UND- Glied. Ein Bezugszeichen 160 bezeichnet ein Taktsignal (CK), das synchron mit Grundtakten des Verarbeitungssystems ist.
Das UND-Glied 140 gibt das Taktsignal 160 in derjenigen Zeitspanne auf die Leitung 141, in der eine Leitung 234 (oder ein Zeitgrenzenregister-Updatesignal) den Wert "1" führt. Die Leitung 141 führt ein Setzsignal für das interne Zeitgrenzenregister 126 für Überwacher und das Zeitgrenzen­ register 131 für Nutzer. Das Auf-den-laufenden-Stand-Bringen der Inhalte des internen Zeitgrenzenregisters 126 für Über­ wacher und das Zeitgrenzenregister 131 für Nutzer wird in der Zeitspanne ausgeführt, in der die Leitung 234 (oder das Zeitgrenzenregister-Updatesignal) den Wert "1" führt.
Das UND-Glied 152 gibt das Taktsignal 160 in einer Zeitspan­ ne aus, in der eine Leitung 241 (oder ein Busy-Wartezeit­ zähler-Updatesignal) den Wert "1" führt. Da das Ausgangssig­ nal vom UND-Glied 152 das Setzsignal für den Busy-Wartezeit­ zähler 150 ist, wird das Auf-den-laufenden-Stand-Bringen dieses Zählers in derjenigen Zeitspanne ausgeführt, in der die Leitung 241 (oder das Busy-Wartezeitzzähler-Updatesig­ nal) den Wert "1" führt.
Das Zeitgrenzenregister 121 für Überwacher ist ein Register, in dem der Überwacher einen oberen Grenzwert für die Ausfüh­ rungszeit eines CW-Befehls setzen kann, d. h. der obere Grenzwert für die Busy-Wartezeitspanne wird gesetzt. Das Zeitgrenzenregister 121 für Überwacher dient dazu, zu ver­ hindern, daß sich der Systemdurchsatz aufgrund einer zu lan­ gen Busy-Wartezeitspanne verschlechtern könnte. Der Inhalt des Hauptspeichers 6 kann über eine Leitung 124 in das Zeit­ grenzenregister 121 für Überwacher übertragen werden, und der Inhalt des Zeitgrenzenregisters 121 für Überwacher kann über eine Leitung 125 zur Speicherung im Hauptspeicher über­ tragen werden.
Wenn das CW-Befehlsstartsignal "1" über eine Leitung 232 in das interne Zeitgrenzenregister 126 für Überwacher gegeben wird, wird der Inhalt des Zeitgrenzenregisters 121 für Über­ wacher über eine Leitung 127 in das interne Zeitgrenzenre­ gister 126 für Überwacher übertragen und dort abgespeichert.
Der Inhalt des internen Zeitgrenzenregisters 126 für Über­ wacher wird im Dekrementierer 122 um "1" dekrementiert und dann wieder synchron mit dem Taktsignal 160 in das interne Zeitgrenzenregister 126 übertragen, wenn die Leitung 234 (oder das Zeitgrenzenregister-Updatesignal) den Wert "1" führt. Dementsprechend wird in der Zeitspanne, in der die Leitung 234 (oder das Zeitgrenzenregister-Updatesignal) den Wert "1" führt, der Inhalt des internen Zeitgrenzenregisters 126 für Überwacher Schritt für Schritt synchron mit dem Taktsignal 160 dekrementiert. Der Komparator 120 vergleicht den Inhalt des internen Zeitgrenzenregisters 126 für Über­ wacher mit der Konstanten "0". Wenn der Inhalt des internen Zeitgrenzenregisters 126 für Überwacher gleich oder kleiner 0 wird, gibt der Komparator 120 auf einer Leitung 129 ein Zeitgrenzenablaufsignal "1" (für Überwacher) aus, das an­ zeigt, daß der obere Grenzwert der CW-Befehlsausführungszeit erreicht wurde.
Das Zeitgrenzenregister 131 für Nutzer ist ein Register, in das ein Nutzer einen oberen Grenzwert für die Ausführungs­ zeit eines CW-Befehls einschreiben kann, d. h. den oberen Grenzwert der Busy-Wartezeitspanne. Das Zeitgrenzenregister 131 für Nutzer wird dazu verwendet, zu verhindern, daß die Busy-Wartezeitspanne zu lange wird. Das Zeitgrenzenregister 131 für Nutzer und die allgemeinen Register 113 können ihre Inhalte wechselseitig über eine Leitung 134 übertragen. Wenn das CW-Befehlsstartsignal "1" über die Leitung 232 zum Zeit­ grenzenregister 131 für Nutzer übertragen wird, wird der Inhalt des allgemeinen Registers 113 R1+1, das die um Eins gegenüber der über die Leitung 504 übertragenen Registernum­ mer R1 aufweist, über die Leitung 134 zum Zeitgrenzenregis­ ter 131 für Nutzer übertragen und dort abgespeichert.
Der Inhalt des Zeitgrenzenregisters 131 für Nutzer wird im Dekrementierer 132 um Eins dekrementiert und wird synchron mit dem Taktsignal 160 dann wieder in das Zeitgrenzenregi­ ster 131 für Nutzer eingeschrieben, wenn die Leitung 234 (oder das Zeitgrenzenregister-Updatesignal) den Wert "1" führt. Dementsprechend wird in der Zeitspanne, in der die Leitung 234 (oder das Zeitgrenzenregister-Updatesignal) den Wert "1" führt, der Inhalt des Zeitgrenzenregisters 131 für Nutzer Schritt für Schritt synchron mit dem Taktsignal 160 dekrementiert. Der Komparator 130 vergleicht den Inhalt des Zeitgrenzenregisters 131 für Nutzer mit der Konstanten "0". Wenn der Inhalt des Zeitgrenzenregisters 131 für Nutzer gleich oder kleiner 0 wird, gibt der Komparator 130 auf ei­ ner Leitung 139 ein Zeitgrenzenablaufsignal "1" (für Nutzer) aus, das anzeigt, daß der obere Grenzwert der CW-Befehlsaus­ führungszeit erreicht wurde.
Der Busy-Wartezeitzähler 150 ist ein Zeitzähler zum Messen der CW-Befehlsausführungszeit, und er wird dazu verwendet, die Busy-Wartezeitspanne zu messen, die für Synchronisierung von Prozessoren erforderlich ist. Der Überwacher kann den Inhalt des Hauptspeichers 6 über eine Leitung 153 in den Busy-Wartezeitzähler 150 übertragen und kann den Inhalt des Busy-Wartezeitzählers 150 über eine Leitung 154 in den Hauptspeicher 6 übertragen, um ihn dort zu speichern.
Der Inhalt des Busy-Wartezeitzählers 150 wird im Inkremen­ tierer 151 um Eins inkrementiert und synchron mit dem Takt­ signal 161 dann wieder in den Busy-Wartezeitzähler 150 über­ tragen, wenn die Leitung 241 (oder das Busy-Wartezeitzähler- Updatesignal) den Wert "1" führt. Dementsprechend wird der Inhalt des Busy-Wartezeitzählers 150 synchron mit dem Takt­ signal 160 um Eins inkrementiert, solange die Leitung 241 (oder das Busy-Wartezeitzähler-Updatesignal) den Wert "1" führt.
Gemäß der Steuerung durch ein CW-Befehls-Ausführungssteuer­ signal (auf einer Leitung 222) wird der Inhalt des Haupt­ speichers 6 unter der Adresse, wie sie durch den Inhalt eines Registers unter den allgemeinen Registern 113, dessen Registernummer durch das Feld R2 des CW-Befehls bezeichnet ist, mit dem Inhalt eines Registers in der Gruppe 113 der allgemeinen Register verglichen, dessen Registernummer durch das Feld R1 des CW-Befehls bezeichnet ist. Der Inhalt eines Registers unter den allgemeinen Registern 113, wie es durch die Leitung 505 bezeichnet wird, wird aus dem Register in das Adreßregister 111 eingelesen. Der Inhalt des Adreßregi­ sters 111 wird über eine Leitung 116 an die Speichersteuer­ schaltung 5 gegeben, und der Inhalt des Hauptspeichers 6 un­ ter der Adresse, wie sie durch den Inhalt des Adreßregisters 111 bezeichnet ist, wird aus dem Hauptspeicher 6 über eine Leitung 117 in das Datenregister 112 übertragen. Ebenso wird der Inhalt des Registers unter den allgemeinen Registern 113, das durch das Signal auf der Leitung 504 bezeichnet wird, aus dem Register in das Pufferglied 114 übertragen. Der Komparator 114 vergleicht den Inhalt des Pufferglieds 114 und den Inhalt des Datenregisters 112 miteinander. Falls beide Inhalte nicht übereinstimmen, gibt der Komparator 110 über eine Leitung 119 ein Synchronisiersignal "1" aus, das anzeigt, daß Synchronisierung zwischen Prozessoren bewerk­ stelligt wurde. Darüber hinaus wird der Inhalt des Datenre­ gisters 112 in das allgemeine Register 113 R1 geladen, das durch das Feld R1 im Befehl bezeichnet wird.
Fig. 2C zeigt Details der CW-Befehlsende-Beurteilungsschal­ tung 300 und der Interruptsteuerschaltung 400 von Fig. 1. In der CW-Befehlsende-Beurteilungsschaltung 300 bezeichnet ein Bezugszeichen 310 einen Auswähler, ein Bezugszeichen 311 eine Konstante "0", ein Bezugszeichen 312 eine Konstante "2", ein Bezugszeichen 320 einen Bedingungskode, ein Bezugs­ zeichen 322 eine Verzweigungsbefehl-Ausführungssteuerschal­ tung, ein Bezugszeichen 330 ein ODER-Glied, ein Bezugszei­ chen 340 ein NOR-Glied, Bezugszeichen 341 und 350 UND-Glie­ der und Bezugszeichen 351 und 352 NICHT-Glieder.
In der Interruptsteuerschaltung 400 bezeichnet ein Bezugs­ zeichen 410 eine Interrupterzeugungsschaltung, ein Bezugs­ zeichen 420 ein Eingabe/Ausgabe-Interruptanforderungs-Halte­ register, ein Bezugszeichen 421 ein Externinterruptanforde­ rungs-Halteregister und ein Bezugszeichen 424 ein NOR-Glied.
In der CW-Befehlsende-Beurteilungsschaltung 300 ist das Sig­ nal auf einer Leitung 119 das Auswahlsignal für den Auswäh­ ler 310. Der Auswähler 310 wählt die Konstante "2", wenn die Leitung 119 den Wert "0" führt, und die Konstante "0", wenn die Leitung 119 den Wert "1" führt. Das Ausgangssignal vom Auswähler 310 wird als Bedingungskode 320 gesetzt, wenn das Ausgangssignal vom ODER-Glied 330 den Wert "1" aufweist.
  • a) Es wird nun der Fall erläutert, daß das Synchronisier­ signal "1" auf der Leitung 119 von der CW-Befehlsausfüh­ rungseinheit 100 den Wert "1" aufweist. Wenn die Leitung 119 (oder das Synchronisiersignal) den Wert "1" aufweist, wählt der Auswähler 310 die Konstante "0", und demgemäß ist das Ausgangssignal vom Auswähler 310 "0". Dadurch wird das Aus­ gangssignal vom ODER-Glied 330 "1", da der eine Eingang, der mit der Leitung 119 verbunden ist (also das Synchronisier­ signal erhält) "1" ist. Dementsprechend wird "0" als Bedin­ gungskode 320 gesetzt. Da eine Leitung 331, die das Aus­ gangssignal vom ODER-Glied 330 leitet, den Wert "1" führt, wird ein Bedingungskode-Einstellendesignal "1" an die CW- Befehls-Ausführungssteuereinheit 200 gegeben. Dadurch wird die Ausführung des CW-Befehls abgeschlossen, wobei der Be­ dingungskode auf "0" gesetzt ist.
  • b) Nun wird der Fall erläutert, daß die Leitung 119 von der CW-Befehlsausführungseinheit 100 den Wert "0" (für das Syn­ chronisiersignal) führt und daß eine Leitung 139 von der CW- Befehlsausführungseinheit 100 ein Zeitgrenzenablaufsignal "1" (für Nutzer) führt. Da das Signal auf der Leitung 119 "0" wird, wählt der Auswähler 310 die Konstante "2", und demgemäß wird das Ausgangssignal vom Auswähler 310 "2". Da andererseits die Leitung 139 oder das Zeitgrenzenablaufsig­ nal (für Nutzer) den Wert "1" führt, was als ein Eingangs­ signal dem ODER-Glied 330 zugeführt wird, wird das Ausgangs­ signal vom ODER-Glied 330 "1". Demgemäß wird "2" als Bedin­ gungskode 320 gesetzt. Da die Leitung 331 als Ausgangslei­ tung des ODER-Gliedes 330 den Wert "1" führt, wird das Be­ dingungskode-Setzendesignal "1" an die CW-Befehls-Ausfüh­ rungssteuerschaltung 200 gegeben. Dadurch wird das Ausführen des CW-Befehls abgeschlossen, wobei der Bedingungskode auf "2" gesetzt ist.
Der Bedingungskode 320 wird über eine Leitung 321 an die Verzweigungs-Befehlsausführungssteuerschaltung 322 gegeben, die den Zustand eines Verzweigungsbefehls beurteilt. Demge­ mäß kann so programmiert werden, daß eine Verarbeitung, die dem CW-Befehl folgt, vom Bedingungskode abhängt. Da Verzwei­ gungsbefehl-Ausführungssteuerschaltungen 322 bekannt sind, werden Details derselben nicht erläutert. Ein Beispiel der Programmierung ist das folgende. Der Fall, daß der Kode "0" ist, bedeutet, daß die Synchronisierverarbeitung normal ab­ geschlossen wurde. In diesem Fall wird eine Befehlsfolge ausgeführt, die der Synchronisierverarbeitung folgt. Ande­ rerseits bedeutet der Fall des Bedingungskodes "2", daß die Synchronisierverarbeitung aufgrund des Busy-Wartezustandes eine Zeitgrenze erreichte. In diesem Fall wird demgemäß eine Überwacher-Interruptanforderung erzeugt (z. B. wird ein WARTE-Makro ausgeführt), und ein Synchronisierablauf unter Eingriff eines Überwachers wird ausgeführt, wodurch effek­ tive Nutzung des Verarbeitungssystems gewährleistet wird. Insbesondere wird die wirksame Nutzung des Verarbeitungssys­ tems dadurch erzielt, daß der Überwacher einen anderen Programmablauf zuteilen kann.
  • c) Es wird nun der Fall erläutert, daß die CW-Befehlsaus­ führungseinheit 100 das Signal "0" über die Leitung 119 (für das Synchronisiersignal), das Signal "0" über eine Leitung 139 (für das Zeitgrenzenablaufsignal (für Nutzer)) und ein Zeitgrenzenablaufsignal "1" für Überwacher über eine Leitung 129 liefert. Da die Leitung 119 und die Leitung 139 beide den Wert "0" führen, sind demgemäß beide Eingangssignale des ODER-Gliedes 330 "0", weswegen sein Ausgangssignal "0" ist, und demgemäß die Leitung 331 (für das Bedingungskode-Setz­ endesignal) den Wert "0" führt. Andererseits ist das Aus­ gangssignal vom NICHT-Glied 352 "1", da die Leitung 119 den Wert "0" führt. Das Ausgangssignal vom NICHT-Glied 351 ist "1", da die Leitung 139 den Wert "0" führt. Dementsprechend sind die drei Eingangssignale des UND-Gliedes 350, d. h. das Ausgangssignal vom NICHT-Glied 351, das Ausgangssignal vom NICHT-Glied 352 und das Signal auf der Leitung 129 (oder das Zeitgrenzenablaufsignal (für Überwacher)) alle "1". Demgemäß ist das Ausgangssignal vom UND-Glied 350 "1", welcher Wert über eine Leitung 353 als CW-Befehlsanforderungssignal "1" an die Interruptsteuerschaltung 400 gegeben wird. Ein CW- Interrupt wird durch die Interruptsteuerschaltung 400 er­ zeugt, wodurch das Ausführen des CW-Befehls abgeschlossen wird.
  • d) Nun wird der Fall erläutert, daß die CW-Befehlsausfüh­ rungseinheit 100 über die Leitung 119 (für das Synchroni­ siersignal), die Leitung 139 (für das Zeitgrenzenablaufsig­ nal (für Nutzer)) und die Leitung 129 (für das Zeitgrenzen­ ablaufsignal (für Überwacher)) jeweils den Wert "0" ausgibt.
Wenn eine Eingabe/Ausgabe-Interruptanforderung ausgegeben wird, während der CW-Befehl ausgeführt wird, wird ein Ein­ gabe/Ausgabe-Interruptsignal über eine Leitung 422 an die Interruptsteuerschaltung 400 gegeben, so daß "1" in das Ein­ gabe/Ausgabe-Interruptanforderungs-Halteregister 420 einge­ schrieben wird. Andererseits wird dann, wenn eine externe Interruptanforderung ausgegeben wird, während der CW-Befehl ausgeführt wird, ein externes Interruptsignal über eine Lei­ tung 423 zugeführt, wodurch "1" in das externe Interruptan­ forderungs-Halteregister 421 eingeschrieben wird.
  • d1) Zunächst wird nun der Fall erläutert, bei dem die In­ halte des Eingabe/Ausgabe-Interruptanforderungs-Halteregi­ sters 420 und des externen Interruptanforderungs-Halteregi­ sters 421 beide "0" sind. Da in diesem Fall die beiden Ein­ gangssignale zum NOR-Glied 424 beide "0" sind, nimmt dessen Ausgangssignal den Wert "1" an. Andererseits wird in der CW-Befehlsende-Beurteilungsschaltung 300 das Ausgangssignal des NOR-Gliedes 340 "1", da die drei Eingangssignale vom NOR-Glied 340 und den Leitungen 119, 129 und 139 alle "0" sind. Da zwei Eingangssignale des UND-Gliedes 341 oder das Ausgangssignal vom NOR-Glied 340 und das Ausgangssignal vom NOR-Glied 424 beide "1" sind, nimmt das Ausgangssignal vom UND-Glied 341 den Wert "1" an, der wiederum als Wiederver­ gleichs-Anforderungssignal "1" über eine Leitung 342 an die CW-Befehls-Ausführungssteuereinheit 200 gegeben wird. Diese steuert die CW-Befehlsausführungseinheit 100 wiederum so an, daß der oben genannte Vergleichsablauf wiederholt wird. Ein Busy-Wartezustand erfolgt.
  • d2) Im Fall, daß entweder das Eingabe/Ausgabe-Interrupt­ anforderungs-Halteregister 420 oder das externe Interrupt­ anforderungs-Halteregister 421 den Wert "1" speichert, wird das Ausgangssignal vom NOR-Glied 424 "0". Da dann ein Ein­ gangssignal des UND-Gliedes 341, oder das Ausgangssignal vom NOR-Glied 424, "0" ist, ist das Ausgangssignal vom UND-Glied 341 "0". Die Leitung 342 bleibt also auf dem Wert "0", und demgemäß wird kein Wiedervergleichs-Anforderungssignal aus­ gegeben. Andererseits erzeugt die Interrupterzeugungsschal­ tung 410 den Halte-Eingabe/Ausgabe-Interrupt oder den exter­ nen Interrupt. Dadurch wird die Ausführung des CW-Befehls abgeschlossen.
In der Interruptsteuerschaltung 400 erzeugt die Interrupt­ erzeugungsschaltung 410 einen Spezialbetriebs-Ausnahmeinter­ rupt, wenn ein spezielles Betriebsausnahme-Anforderungssig­ nal über die Leitung 214 empfangen wird. Nach Empfang des CW-Interruptanforderungssignals über die Leitung 353 erzeugt die Interrupterzeugungsschaltung 410 einen CW-Interrupt vom Typ, bei dem das Ende des CW-Befehls wirkungslos gemacht wird. Nach Empfang des Signals vom Eingabe/Ausgabe-Inter­ ruptanforderungs-Halteregister 420 erzeugt die Interrupter­ zeugungsschaltung 410 einen Eingabe/Ausgabe-Interrupt und setzt das Eingabe/Ausgabe-Interruptanforderungs-Halteregis­ ter 420 auf "0" zurück. Nach Erhalt eines Signals vom exter­ nen Interruptanforderungs-Halteregister 421 erzeugt die In­ terrupterzeugungsschaltung 410 einen externen Interrupt und setzt das externe Interruptanforderungs-Halteregister 421 auf "0". Wenn ein Interrupt erzeugt wird, sendet die Inter­ rupterzeugungsschaltung 410 ein Interrupterzeugungssignal "1" über eine Leitung 411 an die CW-Befehls-Ausführungssteu­ erschaltung 200.
Wiederum unter Bezugnahme auf Fig. 2B wird nun der Betrieb der CW-Befehls-Ausführungssteuereinheit 200 nach Erhalt von Signalen von der CW-Befehlsende-Beurteilungsschaltung 300 und der Interruptsteuerschaltung 400 erläutert.
Zunächst wird der Ablauf für den Fall erklärt, daß das Wie­ dervergleichs-Anforderungssignal "1" von der CW-Befehlsende- Beurteilungsschaltung 300 über die Leitung 342 zugeführt wird. Wenn die Leitung 342 den Wert "1" führt, ist ein Ein­ gangssignal des ODER-Gliedes 221 "1", und demgemäß ist das Ausgangssignal desselben auch "1". Dieses Signal wird der Steuerschaltung 220 zugeführt. Nach Erhalt dieses Signals sendet diese das CW-Befehls-Ausführungssteuersignal über die Leitung 222 an die CW-Befehlsausführungseinheit 100, und zwar auf ähnliche Weise wie vorstehend beschrieben, so daß der im Detail erläuterte Ablauf wiederholt wird.
Nun wird der Fall beschrieben, daß über die Leitung 331 das Bezugskode-Setzendesignal "1" oder über die Leitung 411 das Interrupterzeugungssignal "1" zugeführt wird. Wenn die Lei­ tung 331 (oder das Bedingungskode-Setzendesignal) oder die Leitung 411 (oder das Interrupterzeugungssignal) den Wert "1" einnimmt, wird das Ausgangssignal vom ODER-Glied 231 "1", und demgemäß führt die Leitung 233 (oder das Resetsig­ nal) den Wert "1". Wenn die Leitung 233 diesen Wert ein­ nimmt, wird die CW-Befehl-"In Ausführung"-Anzeigeflagge 230 von "1" auf "0" rückgesetzt, so daß die Leitung 241 (oder das Busy-Wartezeitzähler-Updatesignal) und die Leitung 234 (oder das Zeitgrenzenregister-Updatesignal) den Wert "0" führen. Wenn diese Signale "0" werden, wird der Ablauf für das Aufwärtszählen des Busy-Wartezeitzählers 150 und der Ab­ lauf für das Abwärtszählen des internen Zeitgrenzenregisters 126 für Überwacher und des Zeitgrenzenregisters 131 für Nut­ zer angehalten. Ein CW-Befehlsendesignal "1" wird über eine Leitung 233 an die CW-Befehlsausführungseinheit 100 gegeben. Danach ist das Ausführen des CW-Befehls abgeschlossen.
Unter erneuter Bezugnahme auf Fig. 2A wird nun die Funktion der CW-Befehlsausführungseinheit 100 beschrieben, wenn das CW-Befehlsendesignal "1" über die Leitung 233 zugeführt wird.
Wenn das CW-Befehlsendesignal "1" über die Leitung 233 von der CW-Befehls-Ausführungssteuereinheit 200 empfangen wird, bleibt der Ablauf zum Auf-den-laufenden-Stand-Bringen des Zeitgrenzenregisters 131 angehalten, da die Leitung 234 (oder das Zeitgrenzenregister-Updatesignal) den Wert "0" führt. Nach Erhalt des CW-Befehlsendesignals "1" kopiert die CW-Befehlsausführungseinheit 100 den Inhalt des Zeitgrenzen­ registers 131 für Nutzer über die Leitung 134 in das allge­ meine Register 113 R1+1, bei dem es sich um das Register handelt, dessen Nummer über die Leitung 504 zugeführt wird, die der Nummer des Feldes R1 des Befehls zuzüglich Eins ent­ spricht, wodurch das Ausführen des CW-Befehls abgeschlossen wird. Wenn der Inhalt des Registers R1+1 nach Abschließen des Ausführens des CW-Befehls gelesen wird, kann dadurch die Busy-Wartezeitspanne erfahren werden, die durch diesen CW- Befehl verursacht wird.
Da beim vorstehenden Ausführungsbeispiel die maximale Zeit­ spanne für den Busy-Wartezustand durch die Zeitgrenzenregi­ ster für Nutzer und für Überwacher gesetzt werden kann und Synchronisation nicht auf Grundlage eines Busy-Wartezustan­ des, sondern unter Eingreifen eines Überwachers ausgeführt werden kann, wenn die Zeitgrenze erreicht wurde, kann der Überwacher andere Programmabläufe statt des Programmablaufs im Busy-Wartezustand zu teilen, und es ist selbst bei mehre­ ren Jobs möglich, effektive Nutzung des Verarbeitungssystems zu erzielen, wobei Verschlechterung des Jobdurchsatzes ver­ hindert wird. Da darüber hinaus die Busy-Wartezeitspanne durch den Busy-Wartezeitzähler gemessen werden kann, ist es möglich, einem Nutzer eine stabile Zumessung zu gewähren, indem die gemessene Busy-Wartezeitspanne von der gesamten CPU-Zeitspanne abgezogen wird, die von dem der Parallelver­ arbeitung unterworfenen Job gebraucht wird.
4) Verarbeitung durch ein Betriebssystem, das mit einem CW-Befehl verknüpft ist
Mit Hilfe der Fig. 2A bis 2C, 8 und der Fig. 9A bis 9E wird nun ein Ausführungsbeispiel einer Verarbeitung erläutert, die sich auf einen CW-Interrupt bezieht, sowie eine Verar­ beitung, die sich auf Erzeugen/Löschen von Unterprogrammab­ läufen bezieht, sowie eine Verarbeitung, die sich auf den Busy-Wartezeitzähler bezieht. Es sind Verarbeitungen durch ein Betriebssystem, das bei einem CW-Befehl hinzugefügt, der ein Ausführungsbeispiel der Erfindung ist. Erläuterungen der bekannten Verarbeitungen durch das Betriebssystem werden weggelassen.
In Fig. 8 bezeichnen die Bezugszeichen 1, 2, 3 und 4 Be­ fehlsprozessoren 0 bis 3, das Bezugszeichen 5 eine Speicher­ steuereinheit und das Bezugszeichen 6 einen Hauptspeicher.
In Fig. 8 gibt ein Bezugszeichen 1610 ein Betriebssystem an, das im Hauptspeicher gespeichert ist. Ein Bezugszeichen 1612 bezeichnet Elemente einer Dispatchschlange, von denen jedes die Adresse eines Programmsteuerblocks für die abzuarbeiten­ den Programme speichert. Bezuszeichen 1620 und 1621 bezeich­ nen Jobsteuerblöcke, in denen Steuerinformation für jeden Job gespeichert ist. Ein Jobsteuerblock wird für jeden Job erzeugt. Bezugszeichen 1630, 1640 und 1650 bezeichnen Pro­ grammsteuerblöcke, in denen Steuerinformation für jedes Pro­ gramm einschließlich der Grundadresse des Programmbereichs des Programms gespeichert ist. Außerdem ist der Speicherbe­ reich für das Programm gespeichert. Der Block 1630 ist der Programmsteuerblock für das Grundprogramm, der Block 1640 derjenige für ein Unterprogramm 0 und der Block 1650 derje­ nige für ein Unterprogramm 1. Ein Programmsteuerblock wird für jeweils ein Programm erzeugt. Wenn mehrere Programme auszuführen sind, wobei ein Job in mehrere Programme unter­ teilt ist, werden mehrere Programmsteuerblöcke 1630, 1640 und 1650 für jeweils einen Jobsteuerblock 1620 erzeugt. Be­ zugszeichen 1631, 1641 und 1651 bezeichnen Programmbereiche für das Grundprogramm, das Unterprogramm 0 bzw. das Unter­ programm 1. Bezugszeichen 1632, 1642 und 1652 bezeichnen Da­ tenbereiche für lokale oder charakteristische Daten des Grundprogramms, des Unterprogramms 0 bzw. des Unterprogramms 1, und ein Bezugszeichen 1660 bezeichnet einen gemeinsamen Datenbereich, d. h. einen Datenbereich, der dem Grundpro­ gramm, dem Unterprogramm 0 und dem Unterprogramm 1 gemeinsam ist. Daten, die für die Synchronisierung zwischen Programmen verwendet werden, werden im gemeinsamen Datenbereich 1660 gespeichert. Ein Bezugszeichen 1670 bezeichnet den Speicher­ bereich für ein Programm. Obiges unterscheidet sich nicht von üblichen Abläufen mit Hilfe eines Betriebssystems.
Was für die Abläufe durch ein Betriebssystem charakteri­ stisch ist, die bei einem CW-Befehl gemäß einem Ausführungs­ beispiel der Erfindung hinzugefügt werden, ist das Folgende. Ein Bezugszeichen 1671 bezeichnet einen Bereich zum Spei­ chern von Zeiten vom Busy-Wartezeitzähler 150, und zwar von der Gesamtzeit der Busy-Wartezeitspannen, wie sie durch CW- Befehle verursacht werden. Ein Bezugszeichen 1672 bezeichnet einen Bereich zum Speichern der CW-Befehls-Ausführungsfrei­ gabeflagge 210, ein Bezugszeichen 1674 einen Bereich zum Speichern des Werts des Zeitgrenzenregisters 121 für den Überwacher und ein Bezugszeichen 1675 einen Bereich zum Speichern der Inhalte der allgemeinen Register 113 R1 und R2, die durch die Felder R1 bzw. R2 des CW-Befehls bezeich­ net sind, für den ein CW-Interrupt nach seinem Erzeugen festgestellt wird. Bezugszeichen 1633, 1643 und 1653 be­ zeichnen CW-Interruptflaggen. Eine CW-Interruptflagge wird mit "1" gespeichert, wenn ein CW-Interrupt erzeugt wird, da­ gegen mit "0", wenn dies nicht der Fall ist. Ein Ausfüh­ rungsbeispiel für die Verarbeitung durch das Betriebssystem in bezug auf einen CW-Befehl wird nun unter Bezugnahme auf das Flußdiagramm von Fig. 9A beschrieben.
Wenn ein Nutzer einen Job der Parallelverarbeitung mit einem CW-Befehl mit einer Jobsteuersprache unterwirft (Schritt 1012), führt das Betriebssystem einen Ablauf zum Initiali­ sieren der Ausführung des Jobs aus (1020). Zunächst erzeugt das Betriebssystem einen Jobsteuerblock 1620, der dem Job- und Programmsteuerblock 1630 für das dem Job entsprechende Grundprogramm erzeugt. Dann wird ein Zeitgrenzenwert in einem Zeitgrenzen-Registerbereich 1674 (für Überwacher) ge­ speichert (Schritt 1022). Es ist ein Speicherbereich des Programmsteuerblocks. Das Betriebssystem wählt den Zeitgren­ zenwert abhängig von Betriebsbedingungen des Systems. Eben­ falls wird ein Initialisierungswert "0" für die Busy-Warte­ zeitspanne im Busy-Wartezeitzählerbereich 1671 im Speicher­ bereich des Programmsteuerblocks gespeichert (Schritt 1023), und "1" wird in einem CW-Befehls-Ausführungsfreigabeflag­ gen-Bereich 1672 im Speicherbereich des Programmsteuerblocks gespeichert, wenn Multitasking mit dem Job ausgeführt werden kann (Schritt 1024). Schließlich wird eine Adresse für den Programmsteuerblock in die Dispatchschlange 1612 einge­ schrieben, und das Programm wartet selbst auf seine Prozes­ sorzuweisung (Schritt 1025).
Wenn das Programm dem Prozessor 0 zugewiesen wird, werden der Inhalt des Busy-Wartezeitzählerbereichs 1671, des CW- Befehls-Ausführungsfreigabeflaggen-Bereichs 1672 und des Zeitgrenzenregisterbereichs 1674 (für Überwacher) in den Speicherbereich (1670) des Programmsteuerblocks jeweils über Leitungen 153, 215 bzw. 124 in den Busy-Wartezeitzähler 150, die CW-Befehls-Ausführungsfreigabeflagge 210 bzw. das Zeit­ grenzenregister 121 für Überwacher eingeschrieben, die im Prozessor 0 vorhanden sind (Schritt 1030).
Ein Block 1040 zeigt die Verarbeitung für den CW-Befehl, nachdem das Programm zugeordnet wurde. Ein Bezugszeichen 1050 bezeichnet eine Interruptverarbeitung, wenn ein CW- Interrupt auftritt, während ein Programm in Multitasking mit dem CW-Befehl abgearbeitet wird. Ein Bezugszeichen 1060 be­ zeichnet die Verarbeitung, wenn das in der Dispatchschlange 1612 gespeicherte Programm aufgrund der Erzeugung eines CW- Interrupts zurückverwiesen wird. 1070 bezeichnet die Verar­ beitung für den Fall, daß Programmumschaltung von einem Pro­ gramm, das Multitasking mit Hilfe eines CW-Befehls unter­ liegt, auf ein anderes Programm umgeschaltet wird. 1080 be­ zeichnet einen entsprechenden Fall. 1090 bezeichnet eine Verarbeitung für den Fall, daß ein Programmsteuerblock (oder ein Unterprogramm) angefügt oder ein Unterprogramm mit Hilfe eines Makros ANFÜGEN angefügt oder ein Unterprogramm erzeugt wird, und 1100 bezeichnet die Verarbeitung für den Fall, daß ein Unterprogramm durch ein Makro ABTRENNEN abgetrennt wird oder ein Unterprogramm gelöscht wird.
Details des Ablaufs 1090 für den Fall, daß ein Programm­ steuerblock mit Hilfe eines Makros ANFÜGEN angefügt oder ein Unterprogramm erzeugt wird, werden nun unter Bezugnahme auf Fig. 9E beschrieben.
Zunächst führt ein Grundprogramm ein Makro ANFÜGEN aus, um beim Betriebssystem das Bilden eines Unterprogramms anzufor­ dern (Schritt 1092). Es wird nun der Fall, daß Erzeugung des Unterprogramms 1 angefragt wird, unter Bezugnahme auf die Fig. 8 und 9E beschrieben. Das Betriebssystem erzeugt einen Programmsteuerblock 1650 für das Unterprogramm 1, um Steuer­ information für das Unterprogramm 1 zu speichern (Schritt 1094). Darüber hinaus werden, wegen desselben Jobs, der In­ halt des CW-Befehls-Ausführungsfreigabeflaggen-Bereichs und des Zeitgrenzenregisterbereichs für Überwacher im Speicher­ bereich des Programmsteuerblocks 1630 für das Grundprogramm in den CW-Befehls-Ausführungsfreigabeflaggen-Bereich 1672 und den Zeitgrenzenregisterbereich (für Überwacher) 1674 im Speicherbereich 1670 des Programmsteuerblocks 1650 für das Unterprogramm 1 kopiert (Schritt 1096). Da das Unterprogramm 1 noch nicht ausgeführt wird, wird ein Initialisierwert "0" im Busy-Wartezeitzählerbereich 1671 im Speicherbereich 1670 des Programmsteuerblocks 1650 für das Unterprogramm 1 abge­ speichert (Schritt 1098). Nachdem der Speicherbereich 1670 des Programmsteuerbereichs 1650 für das Unterprogramm 1 so initialisiert wurde, wird die Adresse des Programmsteuerbe­ reichs 1650 in der Dispatchschlange 1612 des Betriebssystems gespeichert. Das Unterprogramm 1 wartet selbst auf seine Zu­ teilung zu einem Prozessor.
Die Details des Ablaufs 1070 im Fall, daß das Betriebssystem eine Programmumschaltung auf ein anderes Programm vornimmt, wird nun unter Bezugnahme auf Fig. 9B beschrieben.
Das Betriebssystem rettet die Inhalte der CW-Befehls-Ausfüh­ rungsfreigabeflagge 210 und des Zeitgrenzenregisters 121 für Überwacher im Prozessor in den CW-Befehls-Ausführungsfrei­ gabeflaggen-Bereich 1672 und den Zeitgrenzenregisterbereich (für Überwacher) 1674 im Speicherbereich eines Programm­ steuerblocks im Hauptspeicher 6, was über Leitungen 216 bzw. 125 erfolgt, und speichert den Inhalt des Busy-Wartezeitzäh­ lers 1650 im Prozessor in den Busy-Wartezeitzählerbereich im Speicherbereich des Programmsteuerblocks im Hauptspeicher 6, was über die Leitung 154 erfolgt, um die Gesamtsumme der Busy-Wartezeitspannen bis zu diesem Zeitpunkt zu retten (Schritt 1072). Da der Inhalt des Zeitgrenzenregisters 131 für Nutzer nach dem Ende eines CW-Befehls in das allgemeine Register 113 kopiert wird, das durch den CW-Befehl bezeich­ net wird, wird der Inhalt des Zeitgrenzenregisters 131 für Nutzer durch einen Rettungsablauf für allgemeine Register in den Hauptspeicher 6 beschrieben, wobei es sich um herkömmli­ che oder bekannte Verarbeitung durch ein Betriebssystem han­ delt. Anschließend wird ein anderes Programm einem Prozessor zugeteilt (Schritt 1074).
Details des Verarbeitungsablaufs 1080 im Fall, daß das Be­ triebssystem Programmumschaltung von einem anderen Programm her vornimmt, wird nun unter Bezugnahme auf Fig. 9D be­ schrieben.
Nachdem die Ausführungsumgebung einer anderen Aufgabe in einen Rettungsbereich für einen Programmsteuerblock im Hauptspeicher 6 gerettet wurde, führt das Betriebssystem einen Verarbeitungsablauf aus, wie er erforderlich ist, um eine Zuordnung für das Programm vorzunehmen, das Multi­ tasking mit Hilfe des CW-Befehls zu unterwerfen ist (im fol­ genden als Interrupt-Programm bezeichnet). Das Betriebs­ system lädt die Inhalte des CW-Befehls-Ausführungsfreigabe­ flaggen-Bereichs 1672 und des Zeitgrenzenregisterbereichs (für Überwacher) 1674 im Rettungsbereich des Programmsteuer­ blocks in die CW-Befehls-Ausführungsfreigabeflagge 210 bzw. das Zeitgrenzenregister 121 für Überwacher in einem Prozes­ sor, was über die Leitungen 215 bzw. 124 erfolgt, und es lädt den Inhalt des Busy-Wartezeitzählerbereichs 1671 im Rettungsbereich des Programmsteuerblocks, oder die Gesamt­ summe der Busy-Wartezeitspannen bis zu diesem Zeitpunkt, über die Leitung 173 in den Busy-Wartezeitzähler 150, um die Busy-Wartezeitspannen ab dem Start der Ausführung des be­ treffenden Programms weiter aufzusummieren (Schritt 1082). Da das Betriebssystem den Wert des Busy-Wartezeitzählers 150 nach dem Umschalten auf ein anderes Programm rettet, wie in Zusammenhang mit der Verarbeitung 1070 erläutert, und den geretteten Wert nach dem Umschalten von einem Programm wie­ der lädt, ist es möglich, den akkumulierten Wert der Busy- Wartezeitspannen für mehrere CW-Befehle zu bestimmen oder zu erhalten.
Da der Inhalt des allgemeinen Registers 113, wie es durch einen CW-Befehl bezeichnet wird, nach dem Beginn der Ausfüh­ rung des CW-Befehls in das Zeitgrenzenregister 131 für Nut­ zer kopiert wird, wird ein notwendiger Wert in das Zeitgren­ zenregister 131 für Nutzer geladen, in dem ein Wiederher­ stellablauf für allgemeine Register ausgeführt wird, wobei es sich um einen bekannten Ablauf eines Betriebssystems han­ delt. Danach wird das interessierende Programm einem Prozes­ sor zugeteilt (Schritt 1084).
Details des Interruptablaufs 1050 für den Fall, daß ein CW- Interrupt erzeugt wird, wird nun unter Bezugnahme auf Fig. 9B beschrieben.
Die Erläuterung erfolgt für den Fall, daß das Unterprogramm 1 durch den Prozessor 0 ausgeführt wird und ein CW-Interrupt in diesem Prozessor erzeugt wird. Mit Erzeugen des CW-Inter­ rupts (Schritt 1052) wird die Steuerung an eine Interrupt­ verarbeitungsroutine des Betriebssystems übergeben, was mit Hilfe eins Interruptablaufs erfolgt. Das Betriebssystem speichert die Inhalte des Busy-Wartezeitzählers 150, der CW- Befehls-Ausführungsfreigabeflagge 210 und des Zeitgrenzen­ registers 121 für Überwacher im Prozessor 0 in einem Busy- Wartezeitzählerbereich 171, einem CW-Befehls-Ausführungs­ freigabeflaggen-Bereich 1672 bzw. einem Zeitgrenzenregister­ bereich (für Überwacher) 1074 in einem Rettungsbereich 1670 des Programmsteuerblocks für das Unterprogramm 1 über Lei­ tungen 154, 216 bzw. 125 ab (Schritt 1053). Darüber hinaus werden die Inhalte der allgemeinen Register 113, die durch R1 und R2 des CW-Befehls gegeben sind, für den der CW-Inter­ rupt ermittelt wird, in einem Bereich 1675 des Rettungsbe­ reichs 1670 des Programmsteuerblocks abgespeichert, um die Inhalte der allgemeinen Register, die durch die Felder R1 und R2 des CW-Befehls bezeichnet sind, zu retten (Schritt 1054). Weiterhin wird eine CW-Interruptflagge 1653 im Pro­ grammsteuerblock auf "1" gesetzt (Schritt 1055), und die Programmsteuerblockadresse des Programms, für das der CW- Interrupt ermittelt wurde, wird hinten an die Dispatch­ schlange 1612 angehängt (Schritt 1056). Das Einfügen am Ende der Dispatchschlange erfolgt, um die Dispatchpriorität in einem Zeitraum zu erniedrigen, in dem Synchronisieren von Programmen abgewartet wird. Schließlich wird ein anderes Programm von der Spitze der Dispatchschlange 1612 ausgewählt und einem Prozessor zugewiesen (Schritt 1057).
Details des Ablaufs 1060, wenn ein in der Dispatchschlange 1612 registriertes Programm aufgrund der Erzeugung eines CW- Interrupts wieder einem Prozessor zugewiesen wird, wird nun unter Bezugnahme auf Fig. 9C erläutert.
Die Erklärung erfolgt für den Fall, daß das Unterprogramm 1 zugewiesen wird. Wenn ein Programm mit einer CW-Interrupt­ flagge 1653 vom Wert "1" eines Programmsteuerblocks oder ein Programm, das in der Dispatchschlange 1612 aufgrund der Er­ zeugung eines CW-Interrupts (im folgenden als betreffendes Programm bezeichnet) aus der Dispatchschlange 1612 als nächstzuzuweisendes Programm ausgewählt wird (Schritt 1062), wird der Inhalt eines Bereichs 1675 im Rettungsbereich 1670 des Programmsteuerblocks zum Speichern des Inhalts der all­ gemeinen Register, wie sie durch die Felder R1 und R2 des CW-Befehls bezeichnet sind, erfaßt. Die Inhalte von R1 und R2 sind mit D1 bzw. A bezeichnet (Schritt 1063). Der Inhalt unter der Adresse A wird aus dem Hauptspeicher 6 gelesen, und der gelesene Datenwert wird mit D2 bezeichnet (Schritt 1064). Der Datenwert D1 und der Datenwert D2 werden mitein­ ander verglichen (Schritt 1065). Der CW-Interrupt wurde er­ zeugt, wobei der Typ erzeugt wurde, gemäß dem das Ende des CW-Befehls unwirksam gemacht wurde. Demgemäß wird dann, wenn das betreffende Programm wieder zuzuweisen ist, die Ausfüh­ rung ab dem betreffenden CW-Befehl wieder gestartet, für den der Interrupt erzeugt wurde. Wenn die Datenwerte D1 und D2 einander gleich sind, wird das betreffende Programm wieder hinten an die Dispatchschlange 1612 angefügt (Schritt 1068), da ein CW-Interrupt wegen Zeitgrenzenüberschreitung erzeugt würde, wenn das Programm wieder einem Prozessor zugewiesen würde. Ein anderes Programm wird von der Spitze der Dis­ patchschlange 1612 ausgewählt und einem Prozessor zugewiesen (Schritt 1069). Wenn andererseits die Datenwerte D1 und D2 nicht übereinstimmen, wird die CW-Interruptflagge 1653 im Programmsteuerblock auf "0" rückgesetzt (Schritt 1066), und die Inhalte eines Busy-Wartezeitzählerbereichs 1671, eines CW-Befehls-Ausführungsfreigabeflaggen-Bereichs 1672 und eines Zeitgrenzenregisterbereichs (für Überwacher) 1674 im Rettungsbereich 1670 des Programmsteuerblocks werden in den Busy-Wartezeitzähler 150, die CW-Befehls-Ausführungsfrei­ gabeflagge 210 bzw. das Zeitgrenzenregister 121 im Prozessor 0 geladen (Schritt 1067). Auf diese Weise wird das betref­ fende Programm wieder einem Prozessor zugewiesen. Da das Betriebssystem den Wert des Busy-Wartezeitzählers 150 mit Auftreten des CW-Interrupts speichert, wie in Zusammenhang mit der Verarbeitung 1050 beschrieben, und den Wert wieder liest, wenn das in der Dispatchschlange gespeicherte Pro­ gramm aufgrund des Auftretens des CW-Interrupts wieder in der Verarbeitung 1060 einem Prozessor zugewiesen wird, ist es möglich, den akkumulierten Wert der Busy-Wartezeitspannen zu bestimmen, wenn ein CW-Befehl mehrfach ausgeführt wird.
Details des Ablaufs 1100 für den Fall, bei dem ein Programm­ steuerblock mit Hilfe eines Makros ABTRENNEN abgetrennt wird oder ein Unterprogramm gelöscht wird, werden nun unter Be­ zugnahme auf Fig. 9E beschrieben.
Zunächst führt ein Grundprogramm ein Makro ABTRENNEN aus, um das Betriebssystem zu veranlassen, ein Unterprogramm zu lö­ schen (Schritt 1102). Es wird nun anhand der Fig. 8 und 9E der Fall besprochen, daß Löschen des Unterprogramms 1 ange­ fordert wird. Um die Busy-Wartezeitspanne für den Gesamtjob einem Nutzer oder Systemverwalter mitzuteilen, muß das Be­ triebssystem dafür sorgen, daß das Grundprogramm die Busy- Wartezeitspanne für das Unterprogramm 1 übernimmt, wie sie durch einen CW-Befehl verursacht wurde. Das Betriebssystem addiert die Gesamtsumme der Busy-Wartezeitspannen für das Unterprogramm 1, wie sie in einem Busy-Wartezeitzählerbe­ reich 1671 in einem Rettungsbereich 1670 eines Programm­ steuerblocks 1650 für das Unterprogramm 1 gespeichert ist, zum Inhalt des Busy-Wartezeitzählerbereichs in einem Ret­ tungsbereich des Programmsteuerblocks 1630 des Grundpro­ gramms (Schritt 1104). Danach erfährt der Programmsteuer­ block 1650 des Unterprogramms 1 durch eine herkömmliche oder bekannte Verarbeitung durch das Betriebssystem eine Zuwei­ sung zu einem Prozessor (Schritt 1106).
Gemäß Fig. 9A werden mit dem Ende eines Jobs die Inhalte der Busy-Wartezeitzählerbereiche in den Rettungsbereichen der Programmsteuerblöcke für alle Programme dieses Jobs aufsum­ miert, und die gesamte Busy-Wartezeitspanne wird als Bela­ stungs- oder Abrechnungsinformation (Schritt 1110) ausgege­ ben. Wenn alle Programme beendet sind und die Steuerung an das Betriebssystem zurückgegeben wird, speichert dieses den Inhalt des Busy-Wartezeitzählers in einem Prozessor in einen Busy-Wartezeitzählerbereich im Rettungsbereich des Programm­ steuerblocks eines jeden Programms (Schritt 1110).
Durch Hinzufügen des oben genannten Ablaufs zu den Abläufen eines herkömmlichen Betriebssystems wird es möglich, Syn­ chronisierung zwischen Programmen mit Hilfe eines CW-Befehls vorzunehmen und die Busy-Wartezeitspanne als Belastungs­ oder Abrechnungsinformation zu bestimmen.
Beim vorliegenden Ausführungsbeispiel werden der Datenwert D1 und der Datenwert D2 im Verarbeitungsschritt 1065 mitein­ ander verglichen (siehe Fig. 9B), und dann, wenn diese bei­ den Datenwerte gleich sind, wird das betreffende Programm wieder an das Ende der Dispatchschlange 1612 angefügt, und ein anderes Programm erfährt eine Zuweisung zu einem Prozes­ sor. Jedoch kann dieser Ablauf aus den folgenden Gründen weggelassen werden. Dann, wenn ein CW-Interrupt erzeugt wird, wird der Programmsteuerblock des betreffenden Pro­ gramms hinten an die Dispatchschlange angehängt, um die Dis­ patchpriorität für dieses Programm zu erniedrigen. Daher be­ steht eine große Wahrscheinlichkeit, daß ein Programm, das ein Synchronisiersignal an die betreffende Aufgabe sendet, bereits zugewiesen wurde und das Synchronisiersignal bereits gesendet wurde.
5) Andere Ausführungsbeispiele der Erfindung
Beim vorstehenden Ausführungsbeispiel wurde der Ablauf zum Auf-den-laufenden-Stand-Bringen des Wertes des Busy-Warte­ zeitzählers während der Ausführung des CW-Befehls ausge­ führt. Jedoch kann, wie in Fig. 4 dargestellt, der Ablauf zum Auf-den-laufenden-Stand-Bringen des Busy-Wartezeitzäh­ lers auch dadurch gesteuert werden, daß ein Befehl zur Ver­ fügung gestellt wird, der den Start des Ablaufs für das Auf­ wärtszählen des Busy-Wartezeitzählers anzeigt, und ein Be­ fehl, der das Ende des Ablaufs für das Aufwärtszählen dieses Zählers anzeigt. Es ist möglich, die Busy-Wartezeitspanne dadurch zu messen, daß der Befehl zum Anzeigen des Ablaufs für das Aufwärtszählen des Busy-Wartezeitzählers direkt vor dem CW-Befehl ausgeführt wird und der Befehl zum Anzeigen des Endes des Ablaufs für das Aufwärtszählen der Busy-Warte­ zeitspanne ausgeführt wird, nachdem ein Synchronisierablauf auf Grundlage des Busy-Wartezustands abgeschlossen wurde. In diesem Fall kann jedoch, da die Steuerung nicht durch einen Überwacher, sondern einen Nutzer ausgeführt wird, ein Sy­ stemverwalter die Busy-Wartezeitspanne nicht als Belastungs­ information verwenden, obwohl der Nutzer diese Zeitspanne als Optimierungsinformation für ein Programm oder derglei­ chen nutzen kann.
In Fig. 4 bezeichnet ein Bezugszeichen 240 eine Busy-Warte­ zeitzähler-Updateflagge und ein Bezugszeichen 501 ein Be­ triebskodefeld für einen Befehl. Die anderen Komponenten stimmen mit denen von Fig. 2B überein.
Wenn ein Busy-Wartezeit-Startbefehl zum Starten des Ablaufs zum Aufwärtszählen des Busy-Wartezeitzählers ermittelt wird, sendet der Befehlsdekoder 500 ein Busy-Wartezeitzähler- Startbefehls-Ermittlungssignal "1" über eine Leitung 507 an die Busy-Wartezeitzähler-Updateflagge 240. Nach Empfang des Busy-Wartezeitzähler-Startbefehls-Ermittlungssignals "1" wird die Busy-Wartezeitzähler-Updateflagge 240 auf "1" ge­ setzt. Wenn diese Flagge "1" wird, wird ein Busy-Wartezeit­ zähler-Updatesignal "1" auf die Leitung 241 gegeben, so daß die Verarbeitung für das Aufwärtszählen des Busy-Wartezeit­ zählers ausgeführt wird.
Wenn ein Busy-Wartezeitzähler-Stoppbefehl zum Anhalten der Verarbeitung zum Aufwärtszählen des Busy-Wartezeitzählers ermittelt wird, sendet der Befehlsdekoder 100 ein Busy- Wartezeitzähler-Stoppbefehls-Ermittlungssignal "1" über eine Leitung 508 an die Busy-Wartezeitzähler-Updateflagge 240. Nach Empfang dieses Signals wird diese Flagge auf "0" rück­ gesetzt. Wenn sie auf "0" rückgesetzt ist, wird die Leitung 241 (oder das Busy-Wartezeitzähler-Updatesignal) "0", so daß die Verarbeitung für das Aufwärtszählen des Busy-Wartezeit­ zählers angehalten wird.
Wenn ein Programm, das einen CW-Befehl abarbeitet, aufgrund eines Eingabe/Ausgabe-Interrupts oder eines externen Inter­ rupts unterbrochen wird, muß das Betriebssystem die Verar­ beitung zum Auf-den-laufenden-Stand-Bringen des Busy-Warte­ zeitzählers anhalten. In diesem Fall wird eine CW-Flagge, die anzeigt, ob ein unterbrochener Befehl ein CW-Befehl ist, in einem Programmsteuerblock des Hauptspeichers 6 gespei­ chert. Das Betriebssystem untersucht, ob der unterbrochene Befehl ein CW-Befehl ist. Ist dies der Fall, führt das Be­ triebssystem einen Busy-Wartezeitzähler-Stoppbefehl aus, um die Verarbeitung zum Auf-den-laufenden-Stand-Bringen des Busy-Wartezeitzählers anzuhalten, und sie setzt die CW- Flagge. Wenn obiges Programm wieder einem Prozessor zuzu­ weisen ist, wird der Stand der CW-Flagge im Programmsteuer­ bereich untersucht. Ist diese Flagge gesetzt, wird sie auf "0" rückgesetzt, und ein Busy-Wartezeitzähler-Startbefehl zum Starten der Verarbeitung zum Auf-den-laufenden-Stand- Bringen des Busy-Wartezeitzählers wird daher ausgeführt, um dieses Programm einem Prozessor zuzuweisen.
Gemäß dem vorstehenden Ausführungsbeispiel wird, wenn das CW-Befehlsendesignal "1" über die Leitung 233 ausgegeben wird, der Inhalt des Zeitgrenzenregisters 131 für Nutzer in das allgemeine Register 113 R1+1 gegeben, das durch das Feld R1 des CW-Befehls bezeichnet wird. Wenn jedoch eine durch einen CW-Befehl hervorgerufene Busy-Wartezeitspanne ohne Nutzen ist, kann das Kopieren unterbleiben.
Gemäß dem vorstehenden Ausführungsbeispiel setzt der Nutzer auch den oberen Grenzwert für die Busy-Wartezeitspanne (oder den oberen Grenzwert für die Ausführungszeit eines CW-Be­ fehls) in das allgemeine Register 113. Jedoch kann, wie in Fig. 5A dargestellt, der obere Grenzwert der Busy-Wartezeit­ spanne auch dadurch vorgegeben werden, daß ein Zeitgrenzen­ register für besondere Zwecke für Nutzer vorhanden ist und ein Lade/Speicher-Befehl verwendet wird, um die Information aus dem Hauptspeicher 6 zu laden oder sie dort abzuspei­ chern.
In Fig. 5A bezeichnet ein Bezugszeichen 131 ein Zeitgrenzen­ register für Nutzer. Es ist möglich, den Inhalt des Haupt­ speichers 6 über eine Leitung 134 in das Zeitgrenzenregister 131 für Nutzer zu übertragen und den Inhalt des Zeitgrenzen­ registers 131 für Nutzer über eine Leitung 135 in den Haupt­ speicher 6 zu übertragen. Die anderen Komponenten und der andere Aufbau stimmen mit den Gegebenheiten von Fig. 2A überein. Dementsprechend wird beim vorliegenden Ausführungs­ beispiel ein CW-Befehl ausgeführt, nachdem ein Zeitgrenzen­ wert in das Zeitgrenzenregister 131 für Nutzer geladen wur­ de, so wie beim vorstehenden Ausführungsbeispiel ein CW- Befehl ausgeführt wird, nachdem ein Zeitgrenzenwert in das allgemeine Register 113 übertragen wurde.
In der Zeitspanne, in der das Zeitgrenzenregister-Updatesig­ nal "1" infolge der Ermittlung des CW-Befehls auf der Lei­ tung 234 steht, wird der Inhalt des Zeitgrenzenregisters 131 Schritt für Schritt um Eins synchron mit dem Taktsignal 160 dekrementiert. Der Inhalt des Zeitgrenzenregisters 131 für Nutzer wird durch den Komparator 130 mit der Konstanten "0" verglichen. Wenn der Wert des Zeitgrenzenregisters 131 für Nutzer kleiner oder gleich 0 wird, wird das Zeitgrenzenab­ laufssignal (für Nutzer) für die Leitung 139 ausgegeben. Auf diese Weise ist es möglich, die Zeitgrenze für die Busy- Wartezeitspanne ohne das allgemeine Register 113, jedoch mit Hilfe des Zeitgrenzenregisters 131 für spezielle Zwecke für Nutzer zu überwachen.
Gemäß dem in Fig. 5A dargestellten Ausführungsbeispiel ist es erforderlich, da der Inhalt des Zeitgrenzenregisters für Nutzer selbst während der Ausführung des CW-Befehls abwärts gezählt wird, jedesmal einen Zeitgrenzenwert in das Zeit­ grenzenregister für Nutzer zu setzen, wenn ein CW-Befehl ausgeführt wird. Jedoch kann das Erfordernis, daß jedesmal dann, wenn ein CW-Befehl abgearbeitet wird, ein Zeitgrenzen­ wert im Zeitgrenzenregister gesetzt werden muß, dadurch ver­ mieden werden, daß ein internes Register für ausschließliche Nutzung beim Abwärtszählen zusätzlich zum Zeitgrenzenregi­ ster für Nutzer bereitgestellt wird, wie in Fig. 5B darge­ stellt.
In Fig. 5B bezeichnet ein Bezugszeichen 131 ein Zeitgrenzen­ register für Nutzer und ein Bezugszeichen 136 ein internes Register. Die anderen Komponenten stimmen mit denen von Fig. 5A überein. Es ist möglich, über eine Leitung 134 einen Zeitgrenzenwert für das Zeitgrenzenregister 131 für Nutzer aus dem Hauptspeicher 6 zu übertragen und den Inhalt des Zeitgrenzenregisters 131 für Nutzer über die Leitung 135 in den Hauptspeicher 6 zu übertragen. Wenn ein CW-Befehl ermit­ telt wird und das CW-Befehlsstartsignal "1" auf der Leitung 232 steht, wird der Inhalt des Zeitgrenzenregisters 131 für Nutzer über eine Leitung 137 in das interne Register 136 ko­ piert. Anschließend wird, wie in Zusammenhang mit dem in Fig. 5A dargestellten Ausführungsbeispiel erläutert, der In­ halt des internen Registers 136 Schritt für Schritt um Eins während der Zeitspanne erniedrigt, in der die Leitung 234 (oder das Zeitgrenzenregister-Updatesignal) den Wert "1" führt. Der Inhalt des internen Registers 136 wird durch den Komparator 130 mit einem Konstanten "0" verglichen. Wenn der Inhalt des internen Registers 136 gleich oder kleiner 0 wird, wird ein Zeitgrenzenablaufsignal (für Nutzer) über die Leitung 139 ausgegeben. Auf diese Weise ist es möglich, die Zeitgrenze mit Hilfe des internen Registers 136 zu überwa­ chen. Da andererseits der Inhalt des Zeitgrenzenregisters 131 für Nutzer nicht dekrementiert wird, ist es nicht erfor­ derlich, den Zeitgrenzenwert rückzusetzen, wenn der Wert einmal gesetzt wurde.
Gemäß dem vorstehenden Ausführungsbeispiel wird das Ausfüh­ ren des CW-Befehls bei auf "2" gesetztem Bedingungskode dann abgeschlossen, wenn die Leitung 139 oder das Zeitgrenzen­ ablaufsignal (für Nutzer) den Wert "1" führt und wenn ein CW-Interrupt in dem Fall erzeugt wird, in dem die Leitung 129 oder das Zeitgrenzenablaufsignal (für Überwacher) den Wert "1" führt. Jedoch kann, wie in Fig. 6A dargestellt, das Ausführen eines CW-Befehls bei einem Bedingungskode von "2" sowohl in dem Fall, in dem die Leitung 139 oder das Zeit­ grenzenablaufsignal (für Nutzer) den Wert "1" erhält, wie auch in dem Fall, in dem die Leitung 129 oder das Zeitgren­ zenablaufsignal (für Überwacher) den Wert "1" erhält, been­ det werden. Auch kann, wie in Fig. 6B dargestellt, der Ab­ lauf des CW-Befehls beendet werden, wenn ein CW-Interrupt in den beiden Fällen erzeugt wird, in denen entweder die Lei­ tung 139 oder das Zeitgrenzenablaufsignal (für Nutzer) den Wert "1" erhält, oder die Leitung 129 oder das Zeitgrenzen­ ablaufsignal (für Überwacher) den Wert "1" erhält.
In Fig. 6A bezeichnet ein Bezugszeichen 330 ein ODER-Glied mit drei Eingängen. Der andere Aufbau stimmt mit dem in Fig. 2C gezeigten überein mit der Ausnahme, daß ein UND-Glied 350 statt den NICHT-Gliedern 351 und 352 vorhanden ist. Unter Bezugnahme auf Fig. 6A wird angenommen, daß die Leitung 119 (oder das Synchronisiersignal) den Wert "0" führt und die Leitung 129 oder 139 (oder das Zeitgrenzenablaufsignal) den Wert "1" führt. Da das Signal auf der Leitung 119 "0" ist, wählt der Auswähler 310 die Konstante "2" und sendet diesen Wert an den Bedingungskode 320. Wenn das Signal auf der Lei­ tung 129 oder 139 (oder das Zeitgrenzenablaufsignal) "1" oder die Eingangssignale des ODER-Gliedes 330 mit drei Ein­ gängen "1" werden, wird das Ausgangssignal vom ODER-Glied 330 "1", so daß der Wert "2" als Bedingungskode 320 gesetzt wird. Da andererseits die Leitung 331 (die das Bedingungs­ kode-Setzendesignal führt) mit dem Ausgang des ODER-Gliedes 330 verbunden ist, wird ein Bedingungskode-Setzendesignal vom Wert "1" über diese Leitung ausgegeben. Auf diese Weise wird, unabhängig davon, welches Zeitgrenzenablaufsignal "1" wird, der Ablauf des CW-Befehls abgeschlossen, wobei "2" als Bedingungskode gesetzt wird.
In Fig. 6B bezeichnet ein Bezugszeichen 350 ein UND-Glied mit zwei Eingängen, und ein Bezugszeichen 352 bezeichnet ein NICHT-Glied. Der andere Aufbau ist derselbe, wie er in Fig. 2C dargestellt ist, mit der Ausnahme, daß das ODER-Glied 330 und das NICHT-Glied 351 nicht vorhanden sind. Es wird der Fall angenommen, daß die Leitung 119 (oder das Synchroni­ siersignal) den Wert "0" führt und die Leitung 129 oder 139 (oder das Zeitgrenzenablaufsignal) den Wert "1" erhält. Da die Leitung 119 den Wert "0" führt, ist das Eingangssignal des NICHT-Gliedes 352 "0", und demgemäß ist sein Ausgangs­ signal "1". Da ebenso die Leitung 129 oder 139 "1" aufweist, wird das Ausgangssignal vom ODER-Glied 355 "1". Dementspre­ chend werden die beiden Eingangssignale des UND-Gliedes 350 beide "1". Dadurch erhält die Leitung 353 (oder das CW- Interruptanforderungssignal), die mit dem Ausgang des UND- Gliedes 350 verbunden ist, den Wert "1", woraufhin die In­ terrupterzeugungsschaltung 340 einen CW-Interrupt erzeugt. Auf diese Weise wird die Ausführung des CW-Befehls abge­ schlossen, wobei der CW-Interruptbefehl unabhängig davon er­ zeugt wird, welches Zeitgrenzenablaufsignal "1" wird.
Gemäß dem vorstehenden Ausführungsbeispiel wird dann, wenn der Wert des Zeitgrenzenregisters für Überwacher gleich oder kleiner 0 wird, wird ein Zeitgrenzenablaufsignal (für Über­ wacher) mit dem Wert "1" an die CW-Befehlsende-Beurteilungs­ schaltung 300 gegeben. Darüber hinaus wird ein CW-Interrupt­ anforderungssignal "1" von der CW-Befehlsende-Beurteilungs­ schaltung 300 an die Interrupterzeugungsschaltung 400 gege­ ben, die ihrerseits einen CW-Interrupt erzeugt, wodurch der Ablauf eines CW-Befehls abgeschlossen wird. Jedoch kann statt des Erzeugens eines CW-Interrupts auf Grundlage einer Zeitgrenze eine Steuerung ausgeführt werden, bei der ein CW- Interrupt immer erzeugt wird oder nicht immer erzeugt wird, wie in Fig. 7 dargestellt. Es kann nämlich ein Verfahren eingesetzt werden, bei dem der Fall des Ausführens einer Synchronisierverarbeitung mit Hilfe eines Betriebssystems im Fall eines CW-Interrupts und der Fall des dauernden Ausfüh­ rens eines CW-Befehls unter ausschließlicher Nutzung eines Prozessors (oder im Fall eines Busy-Zustandes) vorab eindeu­ tig abhängig von der Umgebung festgelegt wird, mit der das System betrieben wird.
In Fig. 7 bezeichnet ein Bezugszeichen 121 ein CW-Maskenre­ gister. Der andere Aufbau stimmt mit dem in Fig. 2A gezeig­ ten überein, mit der Ausnahme, daß der Komparator 120, das Zeitgrenzenregister 121 für Überwacher, der Dekrementierer 122 und das interne Zeitgrenzenregister 126 für Überwacher nicht vorhanden sind.
Das CW-Maskenregister 121 ist ein Ein-Bit-Register. Es steuert, ob ein CW-Interrupt erzeugt werden soll oder nicht. Es ist möglich, den Inhalt des Hauptspeichers 6 über eine Leitung 124 in das CW-Maskenregister 121 zu laden und den Inhalt des CW-Maskenregisters 121 über eine Leitung 125 in den Hauptspeicher 6 zu übertragen und dort abzuspeichern. Wenn der Inhalt des CW-Maskenregisters 121 "0" ist, wird über eine Leitung 129 (für ein Zeitgrenzenablaufsignal für Überwacher) dauernd "0" an die CW-Befehlsende-Beurteilungs­ schaltung 300 gegeben. Dementsprechend erfolgt kein Ausgeben des CW-Unterbrechungs-Anforderungssignals von der CW-Be­ fehlsende-Beurteilungsschaltung 300 an die Interruptsteuer­ schaltung 400, und demgemäß wird kein CW-Interrupt erzeugt. Es wird Synchronisierverarbeitung auf Grundlage eines Busy- Wartezustandes ausgeführt. Wenn andererseits der Inhalt des CW-Maskenregisters 121 "1" ist, wird dauernd ein Zeitgren­ zenablaufsignal (für Überwacher) vom Wert "1" über eine Lei­ tung 129 an die CW-Befehlsende-Beurteilungsschaltung 300 ge­ geben. Wenn demgemäß ein CW-Befehl ausgeführt wird, wird ein CW-Interrupt-Anforderungssignal dauernd an die Interrupt­ steuerschaltung 400 gegeben, und ein CW-Interrupt wird so lange erzeugt, wie das Synchronisiersignal nicht auf der Leitung 119 ansteht. Es wird Synchronisierverarbeitung mit Hilfe eines Betriebssystems ausgeführt.
Beim vorstehenden Ausführungsbeispiel sind zwei Zeitbegren­ zungsregister vorhanden, nämlich das Zeitbegrenzungsregister 121 für Überwacher und das Zeitbegrenzungsregister 131 für Nutzer. Das System kann jedoch so ausgebildet sein, daß es nur ein einziges Zeitbegrenzungsregister aufweist. Wenn nur das Zeitbegrenzungsregister 131 für Nutzer vorhanden ist, wird die Konstante "0" auf die Leitung 129 gegeben, so daß das Zeitbegrenzungsablaufsignal (für Überwacher) nicht aus­ gegeben wird. Wenn nur das Zeitbegrenzungsregister 121 für Überwacher vorhanden ist, wird die Konstante "0" auf die Leitung 139 gegeben, so daß das Zeitbegrenzungsablaufsignal (für Nutzer nicht ausgegeben wird.
Gemäß dem vorstehenden Ausführungsbeispiel ist das Taktsig­ nal (CK) 160 synchron mit dem Grundtakt des Verarbeitungs­ systems, d. h. mit dem Maschinenzyklus. Jedoch kann das Taktsignal 160 mit einer absoluten Zeitspanne synchronisiert werden, z. B. mit 100 Nanosekunden. Auch kann die Genauig­ keit bestimmt werden oder grob auf solche Weise eingestellt werden, daß z. B. jeweils 100 Maschinenzyklen statt immer nur ein Maschinenzyklus verwendet werden. Darüber hinaus kann das Taktsignal 160 mit dem Wiedervergleichs-Anforde­ rungssignal synchronisiert werden, das über die Leitung 324 ausgegeben wird. Dadurch kann die maximale CW-Befehlsausfüh­ rungszeit aus der Anzahl von Ausführungen der Vergleichsver­ arbeitung zum Beurteilen, ob Synchronisation erzielt wurde oder nicht, bestimmt werden.
Wenn beim vorigen Ausführungsbeispiel der Inhalt eines all­ gemeinen Registers 113, dessen Nummer durch das Feld R1 eines CW-Befehls (Daten des ersten Operanden) bezeichnet wird, nicht mehr mit dem Datenwert übereinstimmt, wie er in einem Hauptspeicher unter der Adresse abgelegt ist, die durch das allgemeine Register, das durch das Feld R2 des CW- Befehls (Daten des zweiten Operanden) bezeichnet wird, gibt der Komparator 110 in Fig. 2A das Synchronisiersignal über die Leitung 119 aus. Ein Busy-Wartezustand wird einge­ nommen, während die Vergleichsverarbeitung auf Nichtüberein­ stimmen der zwei Operanden des CW-Befehls als Synchronisier­ bedingung verwendet wird. Die vorstehende Ausführungsform ist sogar einfach auf den Fall anwendbar, bei dem die Bedin­ gung, unter der der Komparator 110 das Synchronisiersignal "1" über die Leitung 119 ausgibt, vom obigen Fall oder der obigen Bedingung unterschiedlich ist.
Wenn z. B. der Komparator 110 so ausgebildet ist, daß er das Synchronisiersignal "1" aussendet, wenn der Inhalt des Puf­ fergliedes 114 mit dem des Datenregisters 112 übereinstimmt, ist die Synchronisierbedingung die, daß die Daten des ersten und des zweiten Operanden übereinstimmen. Wenn der Kompara­ tor 110 so ausgebildet ist, daß er das Synchronisiersignal "1" ausgibt, wenn der Inhalt des Puffergliedes 114 größer ist als der Inhalt des Datenregisters 112, ist die Synchro­ nisierbedingung die, daß der Datenwert des ersten Operanden größer wird als der des zweiten.
Wenn der Komparator 110 so ausgebildet ist, daß er das Syn­ chronisiersignal "1" ausgibt, wenn der Inhalt des Puffer­ gliedes 114 gleich ist oder größer als der Inhalt des Daten­ registers 112, ist die Synchronisierbedingung die, daß der Datenwert des ersten Operanden größer oder gleich wird wie derjenige des zweiten Operanden.
Wenn der Komparator 110 so ausgebildet ist, daß er das Syn­ chronisiersignal "1" ausgibt, wenn der Inhalt des Puffer­ gliedes 114 kleiner ist als der Inhalt des Datenregisters 112, ist die Synchronisierbedingung die, daß der Datenwert des ersten Operanden kleiner wird als derjenige des zweiten Operanden.
Wenn der Komparator 110 so ausgebildet ist, daß er das Syn­ chronisiersignal "1" ausgibt, wenn der Inhalt des Puffer­ gliedes 114 gleich oder kleiner ist als der Inhalt des Da­ tenregisters 112, ist die Synchronisierbedingung die, daß der Datenwert des ersten Operanden gleich oder kleiner wird als der Datenwert des zweiten Operanden.
Gemäß dem vorstehenden Ausführungsbeispiel wird eine Ver­ gleichsverarbeitung ausgeführt, bis die Bedingung erfüllt ist, daß der Inhalt des allgemeinen Registers 113 R1, das durch das Feld R1 des CW-Befehls (Datenwert des ersten Ope­ randen) bezeichnet wird, ungleich dem Datenwert des Haupt­ speichers unter der Adresse wird, wie sie durch das allge­ meine Register R2 gegeben ist, das durch das Feld R2 des CW- Befehls (Datenwert des zweiten Operanden) bezeichnet wird. Jedoch kann unter Nutzung des vorstehenden Ausführungsbei­ spiels leicht ein Aufbau realisiert werden, bei dem die Ver­ gleichsverarbeitung ausgeführt wird, bis eine von zwei Be­ dingungen erfüllt ist, nämlich entweder die Bedingung, daß der Inhalt des allgemeinen Registers 113 R1, wie es durch das Feld R1 des CW-Befehls bezeichnet wird, ungleich dem Da­ tenwert des Hauptspeichers in der Adresse wird, wie sie durch das allgemeine Register R2 gegeben ist, das durch das Feld R2 des CW-Befehls bezeichnet wird, oder die Bedingung, daß der Inhalt des allgemeinen Registers 113 R1-1 ungleich dem Datenwert des Hauptspeichers unter der Adresse wird, wie sie durch das allgemeine Register R2+1 bezeichnet wird. In diesem Fall wird die maximale CW-Befehlsausführungszeit auf den Wert aus dem allgemeinen Register 113 R1+2 gesetzt.
Fig. 10A zeigt Details einer CW-Befehlsausführungseinheit 100, und Fig. 10B zeigt Details einer CW-Befehlsende-Beur­ teilungsschaltung 300 und einer Interruptsteuerschaltung 400.
In Fig. 10A bezeichnet das Bezugszeichen 100 die CW-Befehls­ ausführungseinheit. In dieser bezeichnen Bezugszeichen 110a und 110b Komparatoren, Bezugszeichen 111a und 111b Adreßre­ gister, Bezugszeichen 112a und 112b Datenregister, ein Be­ zugszeichen 113 ein allgemeines Register und Bezugszeichen 114a und 114b Pufferglieder. Die anderen Komponenten sind dieselben wie die in Fig. 2A dargestellten.
Ein Ablauf, der mit dem Zeitgrenzenregister 121 für Überwa­ cher, dem Zeitgrenzenregister 131 für Nutzer und dem Busy- Wartezeitzähler 150 verbunden ist, ist im wesentlichen der­ selbe wie bei der Frequenzausführung gemäß Fig. 2A. Im fol­ genden wird der Ablauf in bezug auf die Komparatoren 110a und 110b im Detail erklärt.
Gemäß der Steuerung durch ein CW-Befehls-Ausführungssteuer­ signal (auf der Leitung 222) wird der Inhalt des Hauptspei­ chers 6 unter der durch das allgemeine Register 113 R2 vor­ gegebenen Adresse, wie sie durch das Feld R2 des CW-Befehls bezeichnet wird, mit dem Inhalt des allgemeinen Registers 113 R1 verglichen, wie es durch das Feld R1 des CW-Befehls bezeichnet wird, und der Inhalt des Hauptspeichers 6 unter der Adresse, die durch das allgemeine Register 113 R2+1 vor­ gegeben ist, die durch das Feld R2 des CW-Befehls bezeichnet wird, wird mit dem Inhalt des allgemeinen Registers 113 R1+1 verglichen, das durch das Feld R1 des CW-Befehls bezeichnet wird.
Der Inhalt des allgemeinen Registers 113 R2 und der Inhalt des allgemeinen Registers 113 R2+1, wie es über die Leitung 505 bezeichnet wird, werden in die Adreßregister 111a bzw. 111b eingelesen. Der Inhalt des Adreßregisters 111a wird über eine Leitung 116a an die Speichersteuereinheit 5 gege­ ben, und der Inhalt des Hauptspeichers 6 unter der durch das Adreßregister 111a bezeichneten Adresse wird über eine Lei­ tung 117a vom Hauptspeicher 6 in das Datenregister 112a übertragen. Ebenso wird der Inhalt vom Adreßregister 111b über eine Leitung 116b an die Speichersteuereinheit 5 gege­ ben, und der Inhalt des Hauptspeichers 6 unter der vom Adreßregister 111b vorgegebenen Adresse wird über eine Lei­ tung 117b aus dem Hauptspeicher 6 in das Datenregister 112b übertragen.
Ebenso werden der Inhalt des allgemeinen Registers 113 R1 und der Inhalt des allgemeinen Registers 113 R1+1, wie es über das Signal auf der Leitung 504 bezeichnet wird, in die Pufferglieder 114a bzw. 114b eingelesen.
Der Komparator 110a vergleicht den Inhalt des Puffergliedes 114a mit dem Inhalt des Datenregisters 112a. Wenn die beiden Inhalte ungleich werden, sendet der Komparator 110a ein Syn­ chronisiersignal a mit dem Wert "1" über eine Leitung 119a, was anzeigt, daß Synchronisierung zwischen Prozessoren be­ werkstelligt wurde. Darüber hinaus wird der Inhalt des Da­ tenregisters 112a in das allgemeine Register 113 R1 einge­ schrieben, das durch das Feld R1 des Befehls bezeichnet wird. Entsprechend vergleicht der Komparator 110b den Inhalt des Puffergliedes 114b mit dem Inhalt des Datenregisters 112b. Wenn die beiden Inhalte ungleich werden, sendet der Komparator 110b ein Synchronisiersignal b mit dem Wert "1" über eine Leitung 119b, was anzeigt, daß Synchronisierung zwischen Prozessoren bewerkstelligt wurde. Darüber hinaus wird der Inhalt des Datenregisters 112b in das allgemeine Register 113 R1+1 eingeschrieben, das durch das Feld R1 des Befehls gekennzeichnet wird.
Fig. 10B zeigt Details der CW-Befehlsende-Beurteilungsschal­ tung 300 und der Unterbrechungssteuereinheit 400.
In der CW-Befehlsende-Beurteilungsschaltung 300 bezeichnet ein Bezugszeichen 310 einen Auswähler, ein Bezugszeichen 311 eine Konstante "0", ein Bezugszeichen 312 eine Konstante "2", ein Bezugszeichen 313 eine Konstante "1", ein Bezugs­ zeichen 320 einen Bedingungskode, ein Bezugszeichen 322 eine Verzweigungsbefehl-Ausführungssteuerschaltung, ein Bezugszei­ chen 330 ein ODER-Glied, ein Bezugszeichen 340 ein NOR- Glied, Bezugszeichen 341 und 350 UND-Glieder und Bezugszei­ chen 351, 352 und 354 NICHT-Glieder. Die Unterbrechungs­ steuereinheit 400 ist dieselbe, wie sie in Fig. 2C darge­ stellt ist.
In der CW-Befehlsende-Beurteilungsschaltung 300 dient das Signal auf der Leitung 119a oder 119b als Auswahlsignal für den Auswähler 310. Der Auswähler 310 wählt die Konstante "2", wenn die Signale auf beiden Leitungen 119a und 119b "0" sind, die Konstante "0", wenn das Signal auf der Leitung 119a "1" und dasjenige auf der Leitung 119b "0" oder "1" ist, und die Konstante "1", wenn das Signal auf der Leitung 119a "0" und dasjenige auf der Leitung 119b "1" ist. Das Ausgangssignal vom Auswähler 310 wird dem Bedingungskode 320 zugeführt, wenn das Ausgangssignal vom ODER-Glied 230 "1" wird.
  • a) Es wird nun der Fall erläutert, daß das Synchronisier­ signal a von der CW-Befehlsausführungsschaltung 100 auf der Leitung 119a den Wert "1" aufweist. Wenn dies der Fall ist, wählt der Auswähler 310 die Konstante "0" aus, und demgemäß wird sein Ausgangssignal "0". Dadurch wird das Ausgangssig­ nal vom ODER-Glied 330 "1", da ein Eingang desselben mit der Leitung 119a verbunden ist. Dementsprechend wird "0" als Bedingungskode 320 gesetzt. Da eine Leitung 331, die mit dem Ausgang des ODER-Gliedes 330 verbunden ist, den Wert "1" führt, wird ein Bedingungskode-Setzendesignal mit dem Wert "1" an die CW-Befehls-Ausführungssteuereinheit 200 gegeben. Demgemäß wird das Ausführen des CW-Befehls abgeschlossen, wobei der Bedingungskode auf "0" gesetzt ist.
  • b) Nun wird der Fall erläutert, daß die CW-Befehlsausfüh­ rungseinheit 100 über die Leitung 119a (für das Synchroni­ siersignal a) den Wert "0" ausgibt und das Synchronisiersig­ nal b von der CW-Befehlsausführungseinheit 100 auf der Lei­ tung 119b den Wert "1" aufweist. Da diese beiden Leitungen den Wert "1" führen, wählt der Auswähler 310 die Konstante "1" aus, weswegen sein Ausgangssignal "1" wird. Da das Sig­ nal auf der Leitung 119b (oder das Synchronisiersignal b) mit dem Wert "1" einem Eingang des ODER-Gliedes 330 zuge­ führt wird, wird dessen Ausgangssignal "1". Demgemäß wird "1" als Bedingungskode 320 gesetzt. Da die Leitung 331, die mit dem Ausgang des ODER-Gliedes 330 verbunden ist, den Wert "1" führt, wird ein Bedingungskode-Setzendesignal mit dem Wert "1" an die CW-Befehls-Ausführungssteuereinheit 200 ge­ geben. Dadurch wird das Ausführen des CW-Befehls abgeschlos­ sen, wobei der Bedingungskode auf "1" gesetzt wird.
  • c) Es wird nun der Fall erläutert, daß die Leitung 119a (für das Synchronisiersignal a) den Wert "0" führt, die Lei­ tung 119b (für das Synchronisiersignal b) ebenfalls den Wert "0" führt und ein Zeitbegrenzungsablaufsignal (für Nutzer) vom Wert "1" über eine Leitung 139 von der CW-Befehlsausfüh­ rungseinheit 100 ausgegeben wird. Da die Signale auf den Leitungen 119a und 119b "0" sind, wählt der Auswähler 310 die Konstante "2" aus, und demgemäß wird sein Ausgangssignal "2". Da dann die Leitung 139 (für das Zeitgrenzenablaufsig­ nal (für Nutzer)), die mit einem Eingang des ODER-Gliedes 330 verbunden ist, den Wert "1" führt, wird dessen Ausgangs­ signal "1". Dementsprechend wird "2" als Bedingungskode 320 gesetzt. Da die Ausgangsleitung vom ODER-Glied 330 den Wert "1" führt, wird ein Bedingungskode-Setzendesignal vom Wert "1" an die CW-Befehls-Ausführungssteuereinheit 200 gegeben. Dadurch wird das Ausführen des CW-Befehls abgeschlossen, wo­ bei der Bedingungskode auf "2" gesetzt ist.
Der Bedingungskode 320 wird über eine Leitung 321 der Ver­ zweigungsbefehl-Ausführungssteuerschaltung 322 zugeführt, die den Zustand eines Verzweigungsbefehls beurteilt. Demge­ mäß kann das Programmieren so erfolgen, daß die Verarbeitung nach dem CW-Befehl vom Bedingungskode abhängt. Da die Ver­ zweigungsbefehl-Ausführungssteuerschaltung 322 bekannt ist, wird keine detaillierte Erläuterung zu ihr gegeben. Ein Bei­ spiel für die Programmierung ist das folgende. Wenn der Be­ dingungskode "1" ist, bedeutet dies, daß die Synchronisier­ verarbeitung mit Hilfe der allgemeinen Register R1 und R2 normal beendet wurde. In diesem Fall wird daher die Befehls­ folge abgearbeitet, die der Synchronisierverarbeitung folgt. Der Fall, daß der Bedingungskode "1" ist, bedeutet, daß Syn­ chronisierverarbeitung auf Grundlage der allgemeinen Regi­ ster R1+1 und R2+2 normal abgeschlossen wurde. In diesem Fall wird daher die Befehlsfolge abgearbeitet, die der Syn­ chronisierverarbeitung folgt. Wenn andererseits der Bedin­ gungskode "2" ist, bedeutet dies, daß die Synchronisierver­ arbeitung auf Grundlage eines Busy-Wartezustands eine Zeit­ grenze erreicht hat. In diesem Fall wird daher ein Über­ wacherinterrupt erzeugt (z. B. wird ein Makro WARTEN ausge­ führt), und eine Synchronisierverarbeitung mit Hilfe des Betriebssystems wird ausgeführt, wodurch effektive Nutzung des Prozessorsystems erzielt wird. Diese effektive Nutzung wird dadurch erhalten, daß das Betriebssystem ein anderes Programm einem Prozessor zuweisen kann.
  • d) Es wird nun der Fall erläutert, daß die CW-Befehlsaus­ führungseinheit 100 das Signal "0" auf der Leitung 119a (für das Synchronisiersignal a) auf der Leitung 119b (für das Synchronisiersignal b) und auf der Leitung 139 (für das Zeitgrenzenablaufsignal (für Nutzer)) ausgibt, und daß sie weiterhin das Signal "1" auf einer Leitung 129 als Zeitgren­ zenablaufsignal (für Überwacher) ausgibt. Da die Leitungen 119a, 119b und 139 alle den Wert "0" führen und demgemäß drei Eingangssignale des ODER-Gliedes 330 "0" sind, ist des­ sen Ausgangssignal "0", und demgemäß führt die Leitung 331 (für das Bedingungskode-Setzendesignal) den Wert "0". Das Ausgangssignal vom NICHT-Glied 352 wird "1", da die Leitung 119a den Wert "0" führt. Dasselbe gilt für das Ausgangssig­ nal des NICHT-Gliedes 354 wegen des Wertes "0" auf der Lei­ tung 119b, wie auch für das NICHT-Glied 351 wegen des Wertes "0" auf der Leitung 139. Dementsprechend sind alle vier Ein­ gangssignale des UND-Gliedes 350, d. h. die Ausgangssignale vom NICHT-Glied 351, vom NICHT-Glied 352, vom NICHT-Glied 354 und auf der Leitung 129 (oder das Zeitgrenzenablaufsig­ nal (für Überwacher)) "1". Demgemäß wird das Ausgangssignal vom UND-Glied 350 "1", das als CW-Interruptanforderungssig­ nal "1" der Interruptsteuerschaltung 400 über eine Leitung 353 zugeführt wird. In der Interruptsteuereinheit 400 wird ein CW-Interrupt erzeugt, wodurch das Ausführen des CW-Be­ fehls abgeschlossen wird.
  • e) Als nächstes wird der Fall erläutert, daß die CW-Be­ fehlausführungseinheit 100 das Signal "0" über die Leitung 119a (für das Synchronisiersignal a), die Leitung 119b (für das Synchronisiersignal b), die Leitung 139 (für das Zeit­ grenzenablaufsignal (für Nutzer)) und die Leitung 129 (für das Zeitgrenzenablaufsignal (für Überwacher)) ausgibt.
  • e1) Zunächst erfolgt eine Erläuterung in Zusammenhang mit dem Fall, bei dem Wert des Eingabe/Ausgabe-Interruptanfor­ derungs-Halteregisters 420 und der Wert des externen Inter­ ruptanforderungs-Halteregisters 421 beide "0" sind. Da in diesem Fall die beiden Eingangssignale des NOR-Gliedes 424 beide "0" sind, ist dessen Ausgangssignal "1". Dagegen ist in der CW-Befehlsende-Beurteilungsschaltung 300 das Aus­ gangssignal vom NOR-Glied 340 "1", da alle seine Eingangs­ signale über die Leitungen 119a, 119b, 129 und 139 "0" sind. Da die beiden Eingangssignale des UND-Gliedes 341, nämlich das Ausgangssignal vom NOR-Glied 340 und das Ausgangssignal vom NOR-Glied 424 beide "1" sind, ist das Ausgangssignal vom UND-Glied 341 "1". Dieses wird als Wiedervergleichsanforde­ rungssignal "1" über eine Leitung 342 an die CW-Befehls-Aus­ führungssteuerschaltung 200 gegeben. Diese steuert die CW- Befehlsausführungseinheit 100 wieder so an, daß die bereits beschriebene Vergleichsverarbeitung wieder ausgeführt wird. Es erfolgt ein Busy-Wartezustand.
  • e2) Wenn entweder der Wert des Eingabe/Ausgabe-Interrupt­ anforderungs-Halteregisters 320 oder der Wert des externen Interruptanforderungs-Halteregisters 421 "1" ist, wird das Ausgangssignal vom NOR-Glied 424 "0". In diesem Fall wird das Ausgangssignal vom UND-Glied 341 "0", da eines seiner Eingangssignale, nämlich das Ausgangssignal vom NICHT-Glied 424 "0" ist. Damit bleibt das Signal auf der Leitung 342 "0", und demgemäß wird kein Wiedervergleichsanforderungssig­ nal ausgegeben. Andererseits erzeugt die Interrupterzeu­ gungsschaltung 410 den angeforderten Eingabe/Ausgabe-Inter­ rupt oder den externen Interrupt. Dadurch wird das Ausführen des CW-Befehls abgeschlossen.
Der folgende Ablauf ist derselbe, wie er anhand der Fig. 2A bis 2C beschrieben wurde.
Wie es aus dem Vorstehenden ersichtlich ist, ist es mit Hilfe des vorstehenden Ausführungsbeispiels oder gemäß der Erfindung möglich, einen Aufbau zu realisieren, durch den eine Vergleichsverarbeitung ausgeführt wird, bis eine von zwei Bedingungen erfüllt ist.
Wie vorstehend beschrieben, ist es, da die maximale Zeit­ spanne für den Busy-Wartezustand vorgegeben werden kann und Synchronisierung mit einem Interrupt eines Betriebssystems ausgeführt werden kann, erfindungsgemäß möglich, daß das Be­ triebssystem ein anderes Programm als dasjenige im Busy- Wartezustand einem Prozessor zuteilen kann, und dadurch ist es selbst in einer Multÿobumgebung möglich, das Prozessor­ system effektiv zu nutzen, wodurch Verschlechterung des Job­ durchsatzes verhindert wird. Ebenso ist es möglich, die Zeit abzuschätzen, die für den Busy-Zustand in einer Zeit­ liste für jeden Job berücksichtigt werden muß.
Schließlich wird noch mit Hilfe der Fig. 11 und 1 sowie 2B ein Ausführungsbeispiel eines erfindungsgemäßen Verarbei­ tungssystems zum Realisieren des CW-Befehls beschrieben.
In Fig. 11 bezeichnet ein Bezugszeichen 190 eine Adreßlie­ fersteuerschaltung, ein Bezugszeichen 191 einen Auswähler und ein Bezugszeichen 700 einen Pufferspeicher. Der andere Aufbau von Fig. 11 ist derselbe wie in Fig. 2A mit der Aus­ nahme, daß der Hauptspeicher 6 weggelassen ist.
Der Pufferspeicher 700 hält die Kopie eines Teils des Haupt­ speichers 6. Wenn Multitasking ausgeführt wird, während Syn­ chronisierung zwischen mehreren Prozessoren (1 und 2) ausge­ führt wird, erfolgt dies mit Hilfe gemeinsamer Daten an der­ selben Stelle im Hauptspeicher. Die Synchronisierung wird dabei so ausgeführt, daß der erste Prozessor 1 darauf war­ tet, daß SEM "1" wird und der zweite Prozessor 2 "1" in SEM abspeichert.
Der Pufferspeicher 700 im ersten Prozessor 1 hält die Kopie des Inhalts von SEM im Hauptspeicher 6, wodurch der Ver­ gleichsablauf durchgeführt wird. Der zweite Prozessor 2 teilt den Abschluß der Synchronisierung mit, indem er den Inhalt von SEM im Hauptspeicher 6 in "1" umschreibt. Dabei wird der Wert von SEM im Pufferspeicher 700 im ersten Pro­ zessor 1 über die Leitung 701a ungültig gemacht. Wenn dann der erste Prozessor 1 wieder den Inhalt von SEM mit "1" ver­ gleicht, liegt keine Kopie von SEM aus dem Hauptspeicher 6 im Pufferspeicher 700 im ersten Prozessor 1 vor. In diesem Fall wird der neu geschriebene Inhalt von SEM als Block vom Hauptspeicher 6 in den Pufferspeicher 700 übertragen. Danach wird eine Vergleichsverarbeitung ausgeführt, um Abschluß der Synchronisierung zu beurteilen.
Wie es bereits im einzelnen für den Fall beschrieben wurde, bei dem ein CW-Befehl durch den Befehlsdekoder 500 in Fig. 2B festgestellt wird, sendet die Steuerschaltung 220 ein CW- Befehls-Ausführungssteuersignal über die Leitung 222 an die CW-Befehlsausführungseinheit, um Ausführung der Verarbeitung der Schritte 920, 925, 930 und 935 im Flußdiagramm von Fig. 3B zu steuern, das den Ablauf für den CW-Befehl zeigt. Dar­ über hinaus gibt die Steuerschaltung 200 das Signal "1" über eine Leitung 222a an die Adreßsendesteuerschaltung 100 und den Auswähler 191, die in Fig. 11 dargestellt sind. Die Lei­ tung 222 in Fig. 2B enthält die Leitung 222a.
In Fig. 11 sendet die Adreßsendesteuerschaltung 190 den In­ halt des über die Leitung 116 erhaltenen Adreßregisters 111 über eine Leitung 192 an die Speichersteuereinheit 5, wenn sie den Wert "1" über die Leitung 222a erhält, und über eine Leitung 193 an den Pufferspeicher 700, wenn sie nicht "1" erhält. Wenn der Auswähler 191 den Wert "1" über die Leitung 222a erhält, wählt er eine Leitung 195 an, wodurch aus dem Pufferspeicher 700 gelesene Daten über eine Leitung 117 an das Datenregister 112 geliefert werden. Wenn "1" nicht er­ halten wird, wählt der Auswähler 191 eine Leitung 194 an, wodurch Daten von der Speichersteuereinheit 5 über eine Lei­ tung 117 an das Datenregister gesandt werden.
Wenn also der CW-Befehl vom Befehlsdekoder 500 festgestellt wird, wird direkt der Wert vom Hauptspeicher 6, wie er unter der Adresse abgespeichert ist, wie sie durch das allgemeine Register 113 gegeben ist, das durch die Registernummer des Feldes R2 des CW-Befehls bezeichnet wird, in das Datenregi­ ster 112 übertragen, also nicht aus dem Pufferspeicher 700. Der Wert wird mit dem Inhalt des allgemeinen Registers 113 verglichen, das die Registernummer aufweist, die durch das Feld R1 des CW-Befehls bezeichnet ist.
Gemäß dem vorstehenden Ausführungsbeispiel können also ge­ meinsame Daten im Hauptspeicher, auf die sich der CW-Befehl bezieht und die für die Synchronisierung zwischen Programmen verwendet werden, direkt aus dem Hauptspeicher 6 gelesen werden, also nicht aus dem Pufferspeicher 700. Dementspre­ chend kann vermieden werden, daß Blocktransfer nach dem Vollenden von Synchronisierung erfolgt, wodurch die Verar­ beitungszeit nach abgeschlossener Synchronisierung verkürzt werden kann.

Claims (26)

1. Informationsverarbeitungssystem mit mindestens zwei Prozessoren (1 bis 4), von denen jeder aufweist:
  • - eine Vergleichseinrichtung (110, 110a, 110b), um auf einen Befehl hin Synchronisierung eines ersten der Prozessoren mit einem der anderen zu bewerkstelligen und um wiederholt erste Daten, die durch den anderen Prozessor überschreibbar sind, mit zweiten Daten für die Synchronisierung zu vergleichen, die durch den ersten Prozessor bestimmt sind, um ein Signal anzugeben, das Ausführen der Synchronisierung anzeigt, wenn ein vorgegebenes Vergleichsergebnis erhalten wird; und
  • - eine Einrichtung (300) zum Beenden des Ausführens des Be­ fehls, wenn entweder eine Obergrenze für die Ausführungszeit oder eine vorgegebene Anzahl von Wiederholungen erreicht wurde, ohne daß das vorgegebene Ergebnis für den Vergleich von der Vergleichseinrichtung erhalten wurde.
2. Informationsverarbeitungssystem nach Anspruch 1, da­ durch gekennzeichnet, daß der erste Datenwert ein solcher ist, wie er in einem Hauptspeicher (6) abgelegt ist, der den mindestens zwei Prozessoren (1-4) gemeinsam ist.
3. Informationsverarbeitungssystem nach Anspruch 1, da­ durch gekennzeichnet, daß der zweite Datenwert in einem durch den Befehl bezeichneten Register innerhalb mehreren Registern (113) in jedem Prozessor gespeichert ist.
4. Informationsverarbeitungssystem nach Anspruch 3, da­ durch gekennzeichnet, daß die vorgegebene obere Grenze in einem anderen der mehreren Register gespeichert wird, das durch den Befehl bezeichnet wird.
5. Informationsverarbeitungssystem nach Anspruch 4, da­ durch gekennzeichnet, daß die vorgegebene obere Grenze einen kleineren Grenzwert aufweist, wie er durch einen Nutzer oder Überwacher bestimmt wird.
6. Informationsverarbeitungssystem nach Anspruch 1, da­ durch gekennzeichnet, daß jeder Prozessor (1-4) eine Ein­ richtung (400) zum Erzeugen eines Interrupts und zum Beenden der Ausführung des Befehls in dem Fall aufweist, daß ein von außen von den Prozessoren empfangener Interrupt noch unbear­ beitet ist, wenn der wiederholte Vergleich vollzogen wird, bis die vorgegebene Obergrenze erreicht ist.
7. Informationsverarbeitungssystem nach Anspruch 1, da­ durch gekennzeichnet, daß jeder Prozessor weiterhin auf­ weist:
  • - eine Einrichtung (210) zum Anzeigen, ob Ausführung des Be­ fehls erlaubt werden sollte oder nicht; und
  • - eine Einrichtung (211, 212, 410) zum Erzeugen eines Inter­ rupts und zum Beenden der Ausführung des Befehls, wenn jeder Prozessor versucht, den Befehl auszuführen, aber die Ausfüh­ rung des Befehls durch die Anzeigeeinrichtung nicht erlaubt wird.
8. Informationsverarbeitungssystem, in dem mehrere Pro­ gramme parallel ausgeführt werden, vorgegebene Information zum Synchronisieren, die das Auftreten eines vorgegebenen Vorgangs in bezug auf eines der Programme anzeigt, in einer Speichereinrichtung (6) gespeichert wird, wenn der vorgege­ bene Vorgang eintritt, ein anderes Programm auf Information aus der Speichereinrichtung zum Synchronisieren zugreift und der Zugriff auf Information zum Synchronisieren durch ein anderes Programm wiederholt wird, wenn die gelesene Informa­ tion zum Synchronisieren nicht die Information ist, die den Vorgang anzeigt, welches System aufweist:
  • - eine erste Einrichtung zum Zugreifen auf die Information für die Synchronisierung in der Speichereinrichtung zu einem Zeitpunkt, wenn die Programme auf das Eintreten eines Vor­ gangs warten sollten, und zum Beurteilen, ob die gelesene Information für die Synchronisierung eine vorgegebene Infor­ mation ist;
  • - eine zweite Einrichtung (300) zum Steuern der ersten Ein­ richtung, um diese dazu zu veranlassen, den Zugriffs- und den Beurteilungsablauf zu wiederholen, wenn die gelesene Information für die Synchronisierung nicht die vorgegebene Information ist, und zum Beenden des Betriebs der ersten Einrichtung, wenn die gelesene Information für die Synchro­ nisation die vorgegebene lnformation ist oder wenn ein Be­ triebsparameter, der entweder die Betriebszeit der ersten Einrichtung oder die Anzahl von Zugriffen auf den Inhalt der Speichereinrichtung anzeigt, einen vorgegebenen oberen Grenzwert überschreitet, wobei die gelesene Information für die Synchronisierung nicht die vorgegebene Information für die Synchronisierung ist; und
  • - eine dritte Einrichtung (150-152) zum Messen des akkumu­ lierten Werts voriger und aktueller Betriebszeiten der er­ sten Einrichtung jedesmal dann, wenn die erste Einrichtung aktiv ist.
9. Informationsverarbeitungssystem nach Anspruch 8, da­ durch gekennzeichnet, daß
  • - jede der ersten bis dritten Einrichtung eine Einrichtung zum Reagieren auf einen einzigen, jeweils gleichen Befehl aufweist; und
  • - die zweite Einrichtung eine Einrichtung (300) zum Beenden des Ausführens des Befehls aufweist.
10. Informationsverarbeitungssystem nach Anspruch 8, da­ durch gekennzeichnet, daß
  • - die erste und die zweite Einrichtung jeweils eine Einrich­ tung zum Reagieren auf einen einzigen, jeweils gleichen Be­ fehl aufweist;
  • - die zweite Einrichtung eine Einrichtung (300) zum Beenden der Ausführung des Befehls aufweist; und
  • - die dritte Einrichtung eine Einrichtung zum Reagieren auf einen Befehl aufweist, der sich vom genannten Befehl unter­ scheidet.
11. Informationsverarbeitungssystem nach Anspruch 8, da­ durch gekennzeichnet, daß die dritte Einrichtung (150-152) eine Einrichtung zum Messen des akkumulierten Werts der Be­ triebszeit der ersten Einrichtung aufweist, wenn diese mehr­ fach aktiviert wird, um gleiche oder unterschiedliche Infor­ mation für die Synchronisierung zu beurteilen.
12. Informationsverarbeitungssystem nach Anspruch 8, da­ durch gekennzeichnet, daß
  • - jede der ersten bis dritten Einrichtung eine Einrichtung zum Reagieren auf einen einzigen und jeweils gleichen Befehl aufweist;
  • - die zweite Einrichtung (300) eine Einrichtung zum Beenden der Ausführung des Befehls aufweist; und
  • - die dritte Einrichtung (150-152) eine Einrichtung auf­ weist zum Messen des akkumulierten Werts der Betriebszeit der ersten Einrichtung, wenn diese mehrfach aktiviert wird, um dieselbe oder unterschiedliche Information für die Syn­ chronisierung zu beurteilen.
13. Informationsverarbeitungssystem nach Anspruch 12, ge­ kennzeichnet durch eine vierte Einrichtung (400) zum Beur­ teilen, vor der Wiederholung des Zugriffs- und Beurteilungs­ betriebs der ersten Einrichtung (100), wenn die gelesene In­ formation für die Synchronisierung nicht die vorgegebene In­ formation ist, ob eine Interruptanforderung gehalten wird oder nicht, wobei diese vierte Einrichtung den Betrieb der ersten Einrichtung beendet, wenn eine Interruptanforderung gehalten wird, den akkumulierten Wert rettet, der von der dritten Einrichtung (150-152) akkumuliert wurde, das aus­ geführte Programm aufhebt und die Interruptanforderung bear­ beitet, und wobei die vierte Einrichtung nach Abschließen der Bearbeitung der Interruptanforderung den akkumulierten Wert an die dritte Einrichtung zurückgibt und die Ausführung des aufgehobenen Programms wieder aufnimmt.
14. Informationsverarbeitungssystem nach Anspruch 8, da­ durch gekennzeichnet, daß die zweite Einrichtung (300) wei­ terhin eine Einrichtung zum Speichern eines Bedingungskodes aufweist, dessen Inhalt davon abhängt, ob der Betrieb der ersten Einrichtung (100) dadurch beendet wurde, daß die ge­ lesene Information für die Synchronisierung die vorgegebene Information ist, oder ob der Betriebsparameter den oberen Grenzwert für den Fall überschreitet, daß die gelesene In­ formation für die Synchronisierung nicht die vorgegebene In­ formation ist.
15. Informationsverarbeitungssystem nach Anspruch 8, da­ durch gekennzeichnet, daß der obere Grenzwert einen ersten oberen Grenzwert aufweist, der durch einen Überwacher vorge­ geben wird, und einen zweiten oberen Grenzwert, der durch einen Nutzer vorgegeben wird, und die zweite Einrichtung (300) eine Einrichtung zum Beenden des Betriebs der ersten Einrichtung (100) aufweist, wenn der Betriebsparameter den ersten oder zweiten oberen Grenzwert überschreitet.
16. Informationsverarbeitungssystem nach Anspruch 15, da­ durch gekennzeichnet, daß die zweite Einrichtung (300) wei­ terhin eine Einrichtung für einen Interrupt durch den Über­ wacher aufweist, wenn der Betriebsparameter den ersten obe­ ren Grenzwert überschreitet.
17. Informationsverarbeitungssystem nach Anspruch 15, da­ durch gekennzeichnet, daß die zweite Einrichtung (300) eine Einrichtung zum Ausgeben eines Bedingungskodes aufweist, der anzeigt, daß der Betriebsparameter den zweiten oberen Grenz­ wert überschritten hat.
18. Informationsverarbeitungssystem nach Anspruch 8, ge­ kennzeichnet durch
  • - eine Einrichtung (210) zum Kontrollieren, ob die Funktion der ersten Einrichtung (100) erlaubt werden kann oder nicht; und
  • - eine Einrichtung (211, 212) zum Erzeugen eines Sonderbe­ triebsausnahmesignals, wenn der Betrieb der ersten Einrich­ tung von einem in Ausführung befindlichen Programm in einem Zustand angefordert wird, in dem der Betrieb der ersten Ein­ richtung durch die Kontrolleinrichtung nicht zugelassen wird.
19. Informationsverarbeitungssystem nach Anspruch 8, da­ durch gekennzeichnet, daß es einen Hauptspeicher (6) und mehrere Prozessoren (1-4) aufweist, die den Hauptspeicher gemeinsam haben, und daß die erste Einrichtung (100), die zweite Einrichtung (300) und die dritte Einrichtung (150-152) in jedem Prozessor vorhanden sind.
20. Informationsverarbeitungssystem nach Anspruch 19, da­ durch gekennzeichnet, daß eine Speichereinrichtung den Hauptspeicher (6) aufweist.
21. Informationsverarbeitungssystem mit mehreren Prozesso­ ren (1, 2, 3, 4), die einen Hauptspeicher (6) gemeinsam ha­ ben, wobei jeder Prozessor aufweist:
  • - mehrere Register (113);
  • - einen ersten Komparator (110 oder 130), der auf einen Be­ fehl zum Synchronisieren Information zum Synchronisieren im Hauptspeicher, wie sie durch Adreßinformation in einem er­ sten der Register, wie es durch den Befehl bezeichnet wird, mit Information in einem zweiten der Register (113) ver­ gleicht, wie es durch den Befehl bezeichnet wird;
  • - eine Ausführungsende-Beurteilungsschaltung (300) zum Wie­ derholen des Vergleichs durch den ersten Komparator, wenn das Vergleichsergebnis keinen vorgegebenen Wert ergibt, und zum Beenden der Ausführung des Befehls, wenn das Vergleichs­ ergebnis den vorgegebenen Wert liefert;
  • - eine Ermittlungsschaltung (122 oder 132) mit einem Zeit­ grenzenregister (126 und 131) und einem zweiten Komparator (120 oder 130), die, wenn der Vergleich durch den ersten Komparator wiederholt wird, einen Betriebsparameter zählt, der entweder der Anzahl von Wiederholungen oder der Ausfüh­ rungszeit für den Befehl entspricht, um ein vorgegebenes Signal auszugeben, wenn der Zählwert und der Inhalt des Zeitgrenzenregisters einander gleich werden; und
  • - wobei die Ausführungsende-Beurteilungsschaltung das Aus­ führen des Befehls beendet, wenn der zweite Komparator ein vorgegebenes Ausgangssignal liefert, bevor das Vergleichs­ ergebnis vom ersten Komparator den vorgegebenen Wert lie­ fert.
22. Informationsverarbeitungssystem nach Anspruch 21, da­ durch gekennzeichnet, daß das Zeitgrenzenregister ein erstes Zeitgrenzenregister (131) zum Halten einer durch einen Nut­ zer vorgegebenen Zeitgrenze und ein zweites Zeitgrenzenregi­ ster (126) zum Halten einer durch einen Überwacher vorgege­ benen Zeitgrenze aufweist, daß der zweite Komparator einen dritten Komparator (130) aufweist zum Ermitteln, ob der ge­ zählte Betriebsparameter mit dem Inhalt des ersten Zeitgren­ zenregisters übereinstimmt, und einen vierten Komparator (120) aufweist zum Ermitteln, ob der gezählte Betriebspara­ meter mit dem Inhalt des zweiten Zeitgrenzenregisters über­ einstimmt, und daß die Ausführungsende-Beurteilungsschaltung (300) die Ausführung des Befehls beendet, wenn entweder das Ausgangssignal vom dritten Komparator oder das vom vierten Komparator einen vorgegebenen Wert einnimmt, bevor das Ver­ gleichsergebnis vom ersten Komparator (110) den vorgegebenen Wert liefert.
23. Informationsverarbeitungssystem nach Anspruch 22, da­ durch gekennzeichnet, daß die Ausführungsende-Beurteilungs­ schaltung (300) einen vorgegebenen Bedingungskode ausgibt, um einen Befehl auszuführen, der auf den genannten Befehl folgt, wenn das Ausgangssignal vom dritten Komparator (130) den vorgegebenen Wert einnimmt, bevor das Vergleichsergebnis vom ersten Komparator (110) den vorgegebenen Wert ergibt, und das in Ausführung befindliche Programm aufhebt, um einen Interrupt an den Überwacher zu geben, wenn das Ausgangssig­ nal vom vierten Komparator (130) den vorgegebenen Wert ein­ nimmt, bevor das Vergleichsergebnis vom ersten Komparator dem vorgegebenen Wert entspricht.
24. Informationsverarbeitungssystem nach Anspruch 21, da­ durch gekennzeichnet, daß jeder Prozessor (1-4) weiterhin eine Zählschaltung aufweist, die bei jedem Ausführen des Befehls aktiviert wird und die den akkumulierten Wert der Ausführungszeiten ermittelt, wenn der Befehl mehrfach ausge­ führt wird.
25. Informationsverarbeitungssystem, bei dem mehrere Pro­ gramme parallel ausgeführt werden, vorgegebene Information für Synchronisierung, die das Auftreten eines vorgegebenen Vorgangs in bezug auf eines der Programme anzeigt, in einem Hauptspeicher (6) gespeichert wird, wenn der vorgegebene Vorgang eintritt, ein anderes Programm auf Information zum Synchronisieren aus dem Hauptspeicher zugreift, und das Le­ sen von Information zum Synchronisieren durch das andere Programm wiederholt wird, wenn die gelesene Information zum Synchronisieren nicht die Information ist, die den Vorgang anzeigt, welches Informationsverarbeitungssystem mehrere Prozessoren (1, 2, 3, 4) aufweist, die den Hauptspeicher ge­ meinsam haben, wobei jeder Prozessor aufweist:
  • - einen Cache-Speicher (700) zum Halten eines Teils der Da­ ten des Hauptspeichers;
  • - eine Einrichtung zum Ungültigmachen der Information im Cache-Speicher, wenn die Information im Hauptspeicher durch einen anderen Prozessor überschrieben wird und wenn diese Information im Cache-Speicher gehalten wird, zum Lesen von Information aus dem Cache-Speicher, wenn die von einem in Ausführung befindlichen Programm angeforderte Information aus dem Hauptspeicher gelesen werden sollte, jedoch im Cache-Speicher gehalten wird, und zum Lesen der Information aus dem Hauptspeicher, wenn die von dem in Ausführung be­ findlichen Programm angeforderte Information, die vom Haupt­ speicher gelesen werden soll, nicht im Cache-Speicher gehal­ ten wird; und
  • - eine Einrichtung (190) zum Anweisen, daß dann, wenn die von dem in Ausführung befindlichen Programm angeforderte In­ formation, auf die im Hauptspeicher zugegriffen werden soll, Information für Synchronisierung ist, diese Information nicht aus dem Cache-Speicher, sondern aus dem Hauptspeicher gelesen wird.
26. Informationsverarbeitungssystem nach Anspruch 25, da­ durch gekennzeichnet, daß die Anweisungseinrichtung (190) eine Einrichtung zum Reagieren auf einen Befehl aufweist, der anfordert, daß auf Information zum Synchronisieren im Hauptspeicher (6) zugegriffen wird, und zum Beurteilen, ob diese Information vorgegebene Information ist oder nicht, um den Zugriff auf die angeforderte Information zum Synchroni­ sieren im Hauptspeicher anzuweisen.
DE4101623A 1990-01-23 1991-01-21 Informationsverarbeitungssystem Withdrawn DE4101623A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013207A JP2779032B2 (ja) 1990-01-23 1990-01-23 情報処理装置

Publications (1)

Publication Number Publication Date
DE4101623A1 true DE4101623A1 (de) 1991-07-25

Family

ID=11826711

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4101623A Withdrawn DE4101623A1 (de) 1990-01-23 1991-01-21 Informationsverarbeitungssystem

Country Status (3)

Country Link
US (1) US5440750A (de)
JP (1) JP2779032B2 (de)
DE (1) DE4101623A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997044731A1 (de) * 1996-05-22 1997-11-27 Siemens Aktiengesellschaft Verfahren zur synchronisation von programmen auf unterschiedlichen computern eines verbundes

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5875294A (en) 1995-06-30 1999-02-23 International Business Machines Corporation Method and system for halting processor execution in response to an enumerated occurrence of a selected combination of internal states
US5751945A (en) * 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring stalls to identify pipeline bottlenecks and stalls in a processing system
US5752062A (en) * 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring through monitoring an order of processor events during execution in a processing system
US5797019A (en) * 1995-10-02 1998-08-18 International Business Machines Corporation Method and system for performance monitoring time lengths of disabled interrupts in a processing system
US5691920A (en) * 1995-10-02 1997-11-25 International Business Machines Corporation Method and system for performance monitoring of dispatch unit efficiency in a processing system
US5729726A (en) * 1995-10-02 1998-03-17 International Business Machines Corporation Method and system for performance monitoring efficiency of branch unit operation in a processing system
US5949971A (en) * 1995-10-02 1999-09-07 International Business Machines Corporation Method and system for performance monitoring through identification of frequency and length of time of execution of serialization instructions in a processing system
US5748855A (en) * 1995-10-02 1998-05-05 Iinternational Business Machines Corporation Method and system for performance monitoring of misaligned memory accesses in a processing system
US5958019A (en) * 1996-07-01 1999-09-28 Sun Microsystems, Inc. Multiprocessing system configured to perform synchronization operations
US6044206A (en) * 1997-10-14 2000-03-28 C-Cube Microsystems Out of order instruction processing using dual memory banks
US7328270B1 (en) * 1999-02-25 2008-02-05 Advanced Micro Devices, Inc. Communication protocol processor having multiple microprocessor cores connected in series and dynamically reprogrammed during operation via instructions transmitted along the same data paths used to convey communication data
JP3564445B2 (ja) * 2001-09-20 2004-09-08 松下電器産業株式会社 プロセッサ、コンパイル装置及びコンパイル方法
US8484643B2 (en) * 2003-03-31 2013-07-09 Fujitsu Limited CPU usage time counting method and job control system using this CPU usage time
JP2006221226A (ja) * 2005-02-08 2006-08-24 Sharp Corp データ駆動型情報処理装置およびその制御方法
US20070226745A1 (en) * 2006-02-28 2007-09-27 International Business Machines Corporation Method and system for processing a service request
US8117614B2 (en) 2006-05-19 2012-02-14 International Business Machines Corporation Extract CPU time facility
WO2008023426A1 (fr) * 2006-08-24 2008-02-28 Netcleus Systems Corporation Dispositif de traitement de tâche
JP4230504B2 (ja) * 2006-11-30 2009-02-25 株式会社日立製作所 データプロセッサ
US8230203B2 (en) * 2007-03-30 2012-07-24 Intel Corporation Detecting spin loops in a virtual machine environment
EP2613269A4 (de) * 2010-08-30 2013-08-21 Fujitsu Ltd Multicore-prozessorsystem, synchronisationssteuerungssystem, synchronisationssteuerungsvorrichtung, informationserzeugungsverfahren und informationserzeugungsprogramm
US9046593B2 (en) * 2011-12-15 2015-06-02 The Boeing Company Method and apparatus for detecting and classifying signals
US10120681B2 (en) 2014-03-14 2018-11-06 International Business Machines Corporation Compare and delay instructions
US9558032B2 (en) 2014-03-14 2017-01-31 International Business Machines Corporation Conditional instruction end operation
US9454370B2 (en) 2014-03-14 2016-09-27 International Business Machines Corporation Conditional transaction end instruction
EP3234765A1 (de) * 2014-12-17 2017-10-25 Intel Corporation Vorrichtung und verfahren zur durchführung eines spin-loop-sprungs
JP7208448B2 (ja) * 2019-02-01 2023-01-19 富士通株式会社 情報処理装置、情報処理プログラム、及び情報処理方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4636942A (en) * 1983-04-25 1987-01-13 Cray Research, Inc. Computer vector multiprocessing control
US4827401A (en) * 1984-10-24 1989-05-02 International Business Machines Corporation Method and apparatus for synchronizing clocks prior to the execution of a flush operation
US4631674A (en) * 1985-02-05 1986-12-23 International Business Machines Corporation Active wait
JPS6345670A (ja) * 1986-08-13 1988-02-26 Hitachi Ltd プロセツサ間同期装置
US4979105A (en) * 1988-07-19 1990-12-18 International Business Machines Method and apparatus for automatic recovery from excessive spin loops in an N-way multiprocessing system
US4965718A (en) * 1988-09-29 1990-10-23 International Business Machines Corporation Data processing system incorporating a memory resident directive for synchronizing multiple tasks among plurality of processing elements by monitoring alternation of semaphore data
JPH0630094B2 (ja) * 1989-03-13 1994-04-20 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチプロセツサ・システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997044731A1 (de) * 1996-05-22 1997-11-27 Siemens Aktiengesellschaft Verfahren zur synchronisation von programmen auf unterschiedlichen computern eines verbundes
US6308223B1 (en) 1996-05-22 2001-10-23 Siemens Aktiengesellschaft Process for the synchronization of programs on different computers of an interconnected system

Also Published As

Publication number Publication date
US5440750A (en) 1995-08-08
JP2779032B2 (ja) 1998-07-23
JPH03217962A (ja) 1991-09-25

Similar Documents

Publication Publication Date Title
DE4101623A1 (de) Informationsverarbeitungssystem
DE4303062C2 (de) Verfahren zur Behebung von Systemausfällen in einem verteilten Computersystem und Vorrichtung zur Durchführung des Verfahrens
EP0346801B1 (de) Verfahren und Anordnung zur Ausführung eines Programms in einem heterogenen Mehrrechnersystem
DE69422743T2 (de) Endlosschleife-Erkennungsgerät
DE4216871C2 (de) Ausführungsordnen zum Sicherstellen der Serialisierbarkeit verteilter Transaktionen
DE3486257T2 (de) Synchrones dezentralisiertes Verarbeitungssystem.
EP0635792B1 (de) Verfahren zur Koordination von parallelen Zugriffen mehrerer Prozessoren auf Resourcenkonfigurationen
DE69617112T2 (de) Informationsverarbeitungssystem zur Ermöglichen des Zugriffs auf verschiedene Typen von Dateien und Steuerungsverfahren
DE60302184T2 (de) Fehlertolerantes Computersystem, Verfahren zur Resynchronisierung desselben und zugehöriges Resynchronisierungs-Programm
DE19708021C1 (de) Verfahren zur Regelung eines Zugriffs von Rechnern auf Daten eines zentralen Rechners
DE3852928T2 (de) Datenprozessor mit A/D-Umsetzer, um mehrere analoge Eingabekanäle in Digitaldaten umzusetzen.
DE10314148A1 (de) Verfahren und Vorrichtung zum Verteilten Steuern
DE3611223A1 (de) Verfahren und vorrichtung zum verhindern einer blockierung in einem datenbank-verwaltungssystem
DE2359258A1 (de) Echtzeitsteuerungsanordnung fuer eine simulationsvorrichtung
DE4033336A1 (de) Verfahren zum erzeugen einer ausfallmeldung und mechanismus fuer ausfallmeldung
DE69227741T2 (de) System und Verfahren zur Aufrüstung von Computer-Hardware und Software
DE3508291A1 (de) Realzeit-datenverarbeitungssystem
DE19836347A1 (de) Fehlertolerantes Computersystem
DE4420451A1 (de) Sperrmechanismus für ein CHECK-IN/CHECK-OUT-Modell
DE69409142T2 (de) Synchronisationssystem für redundante Aufträge
DE3886756T2 (de) Betriebsmittelzugriff für Multiprozessorrechnersystem.
DE69616903T2 (de) Mehrprozessoranordnung und Verfahren zur Synchronisierung zwischen Prozessoren
DE68924992T2 (de) Symmetrische Steuerungsanordnung für Multiverarbeitung.
DE2754890A1 (de) Einrichtung zur programmunterbrechung
DE19957594B4 (de) Verfahren zum Synchronisieren von threads eines Computerprogramms

Legal Events

Date Code Title Description
8141 Disposal/no request for examination