DE4101623A1 - Informationsverarbeitungssystem - Google Patents
InformationsverarbeitungssystemInfo
- 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
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 36
- 238000012545 processing Methods 0.000 claims description 86
- 238000000034 method Methods 0.000 claims description 42
- 230000006870 function Effects 0.000 claims 1
- 238000012546 transfer Methods 0.000 description 12
- 238000001514 detection method Methods 0.000 description 10
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 3
- 235000010678 Paulownia tomentosa Nutrition 0.000 description 2
- 240000002834 Paulownia tomentosa Species 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 101100042271 Mus musculus Sema3b gene Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 230000002542 deteriorative effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation 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.
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.
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.
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.
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.
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.
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.
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.
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)
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)
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)
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 | インターナショナル・ビジネス・マシーンズ・コーポレイション | マルチプロセツサ・システム |
-
1990
- 1990-01-23 JP JP2013207A patent/JP2779032B2/ja not_active Expired - Lifetime
-
1991
- 1991-01-18 US US07/643,121 patent/US5440750A/en not_active Expired - Fee Related
- 1991-01-21 DE DE4101623A patent/DE4101623A1/de not_active Withdrawn
Cited By (2)
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 |