-
Die vorliegende Erfindung betrifft ein Steuerungssystem
für die Ausführung von Befehlen zur Anwendung in einer
Informationsverarbeitungsvorrichtung mit einer
Pipeline-Befehlsausführungssteuerung, in welcher ein Befehlszwischenblock
zwischen einem Abschluß eines bestimmten Befehl, der
beispielsweise bei einem Debug-Prozeß (Fehlerentfernung)
angewendet wird, und einem Auslesen eines nächsten Befehls
ausgeführt wird, indem dieser sequentiell abgearbeitet wird.
-
Eine sequentielle Steuerung, welche ein Grundschena einer
Ausführungssteuerung darstellt, arbeitet nit den Schritten:
Auslesen eines Befehls, Dekodieren desselben, Ausführen
desselben und dann Auslesen des nächsten Befehls.
-
Andererseits wird eine Ausführungssteuerung unter
Verwendung eines Pipelinesystems wie folgt ausgeführt: d.h., ein
Befehl, welcher zukünftig für notwendig erachtet wird, oder
ein Befehl, welcher gerade ausgeführt wurde, wird in einem
Befehlspuffer gespeichert und der Befehl im Voraus geholt.
Der geholte Befehl wird teilweise dekodiert, ein Teil der
Verarbeitung parallel zu einer Ausführung eines momentanen
Befehls ausgeführt, und einige Befehle gleichzeitig parallel
vorverarbeitet. Ein System für die Ausführung von Befehlen
zwischen dem Abschluß der Ausführung eines bestimmten Befehls
und einem Auslesen eines nächsten Befehls wird üblicherweise
beim Debugging verwendet. Daher wird die Ausführung über eine
Anzeige aus einem Service-Prozessor gesteuert.
-
Es werde angenommen, daß in dem Informationsprozessor mit
einer Pipeline-Befehlsausführungssteuerung eine
Programmunterbrechung während der Ausführung eines Programms erfolgt.
Da in dem Informationsprozessor dieses Typs mehrere Befehle
parallel und gleichzeitig von dem Pipelinesystem ausgeführt
werden, ist es schwierig, ein Programm zu identifizieren, in
welchem eine solche Programmunterbrechung auftrat.
-
Sogar in einem herkömmlichen System zum sequentiellen
Ausführen von Befehlen, wird ein
Befehlsausführungs-Steuerungsabschnitt durch den Service-Prozessor so dargestellt,
wie er diese Befehle sequentiell ausführt. Daher wird der
Befehlszwischenblock von der
Informationsverarbeitungsvorrichtung sequentiell als Ganzes ausgeführt. Daher ist es dann,
wenn mehrere Programme von der
Informationsverarbeitungsvorrichtung ausgeführt werden, nicht möglich, den
Befehlszwischenblock nur in einem gewünschten Abschnitt eines
spezifischen Programms sequentiell auszuführen.
-
Die EP-A-0 042 422 offenbart ein
Informationsverarbeitungssystem mit einer Skalar-Recheneinheit und einer Vektor-
Recheneinheit. Eine Gruppe von Befehlen kann parallel von
Skalar-Recheneinheit und der Vektor-Recheneinheit verarbeitet
werden. Ein Steuerregister überwacht den Inhalt des
Befehlsregisters und setzt dessen
Parallel/Seriell-Verarbeitungsmodusbit auf logisch "1" oder "0".
-
Die US-A-4 251 859 offenbart einen
Vorrang-Überlappungsbefehl, welcher Teiloperationen nachfolgender Befehle ungültig
macht, wenn die Teiloperationen in paralleler und
überlappender Beziehung zu den Vorrang-Überlappungsbefehl stehen.
-
Eine Aufgabe der vorliegenden Erfindung besteht darin,
das vorstehend erwähnte Problem durch Bereitstellen eines
Steuerungssytems für die Ausführung von Befehlen zu
beseitigen, durch welches ein Befehl, in welchem eine
Programmunterbrechung auftritt, leicht identifiziert werden kann und eine
sequentielle Ausführung eines Befehlszwischenblocks zwischen
einem Ausführungsabschluß eines bestimmten Befehls und einem
Auslesen eines nächsten Befehls nur innerhalb eines
gewünschten Abschnittes eines spezifischen Programms leicht
ausgeführt werden kann. Diese Aufgabe wird durch die Merkmale der
Ansprüche gelöst.
-
Weitere Merkmale, Ausführungsformen und Vorteile der
vorliegenden Erfindung werden beim Lesen der nachstehenden
Beschreibung unter Bezugnahme auf die beigefügten Zeichnungen
ersichtlich, in welchen dieselben oder entsprechende
Komponenten mit denselben Bezugszeichen bezeichnet sind, und in
welchen:
-
Fig. 1 ein System darstellt, auf welches eine
Ausführungsform der vorliegenden Erfindung angewendet wird;
-
Fig. 2 eine Beziehung zwischen einem Quellprogrammablauf und
einem Inhalt einer den sequentiellen Modus der
Befehlsausführung anzeigenden Information 3, welche in
einem Programmstatuswort-Halteabschnitt 2 gehalten
wird, zeigt;
-
Fig. 3 ein Diagramm ist, das Positionen in dem Programm in
Fig. 2 zeigt, an welchen ein
Sequentiellmodus-Setzbefehl und ein Sequentiellmodus-Rücksetzbefehl
eingefügt werden;
-
Fig. 4. ein Diagramm ist, das Positionen in dem Programm in
Fig. 2 zeigt, an welchen sequentielle Befehle für die
Befehlsausführung eingefügt werden;
-
Fig. 5 einen Abschnitt einer Ausführungsform der
vorliegenden Erfindung darstellt; und
-
Fig. 6A und 6B einen Verarbeitungsablauf einer
Interruptroutine darstellen, die in einer Ausführungsform der
vorliegenden Erfindung verwendet wird.
-
Gemäß Fig. 1 weist ein System, auf welches eine
Ausführungsform der vorliegenden Erfindung angewendet wird, einen
Hauptspeicher 5, um zumindest Befehlsworte und Daten zu
speichern, einen Befehls-Cachespeicher 6 zum Speichern zumindest
ein Teils einer Kopie des in dem Hauptspeicher 5
gespeicherten Befehlswortes, einen
Befehlsausführungs-Steuerungsabschnitt 1 für die Ausführung eines von dem
Befehls-Cachespeicher 6 geholten Befehls mittels eines Pipelinesystems,
einen Programmstatuswort-Halteabschnitt 2, welcher eine den
sequentiellen Modus der Befehlsausführung anzeigende
Information
3 enthält, zum Halten einer Steuerinformation, die einen
Programmausführungsstatus als ein Programmstatuswort anzeigt,
und einen Anzeigeabschnitt 4 für eine sequentielle
Befehlsausführung auf, der auf eine den sequentiellen Modus der
Befehlsausführung anzeigende Information 3 des in dem
Programmstatuswort-Halteabschnitt 2 gehaltenen
Programmstatuswortes reagiert, um dem
Befehlsausführungs-Steuerungsabschnitt 1 anzuzeigen, einen Befehlszwischenblock zwischen
einem Ausführungsabschluß eines bestimmten Befehls und einem
Lesen eines nächsten Befehls sequentiell auszuführen.
-
In Fig. 2 ist eine Beziehung zwischen einem
Quellprogrammablauf und dem Inhalt der in dem Programmstatuswort-
Halteabschnitt 2 gehaltenen, den sequentiellen Modus der
Befehlsausführung anzeigenden Information 3 dargestellt. Wenn
der Befehlszwischenblock in einer Periode zwischen den
Punkten A und B in dem Quellprogrammablauf sequentiell ausgeführt
werden soll, reicht es bei der vorliegenden Erfindung aus,
die den sequentiellen Modus der Befehlsausführung anzeigende
Information 3 in dem Programmstatuswort-Halteabschnitt 2 auf
logisch "1" zu setzen.
-
Das Setzen der den sequentiellen Modus der
Befehlsausführung anzeigenden Information 3 auf "1" kann durch jedes der
nachstehenden zwei Verfahren erfolgen.
-
Das erste Verfahren wird nun zuerst unter Bezugnahme auf
die Fig. 2, 3 und 5 beschrieben.
-
Wenn der Befehlszwischenblock sequentiell in der Periode
zwischen den Punkten A und B in dem in Fig. 2 dargestellten
Quellprogrammablauf ausgeführt werden soll, wird ein den
sequentiellen Modus setzender Befehl bzw. ein den sequentiellen
Modus rücksetzender Befehl bei den Punkten A und B des in
Fig. 3 dargestellten Programms eingefügt.
-
Wenn gemäß Fig. 3 und 5 der den sequentiellen Modus
setzende Befehl in dem Befehlsausführungs-Steuerungsabschnitt 1
ausgeführt wird, wird die den sequentiellen Modus der
Befehlsausführung anzeigende Information 3 in dem
Programmstatuswort-Halteabschnitt
2 mittels einer Setzeinrichtung 11 auf
"1" gesetzt. Auf diesem "1"-Status der den sequentiellen
Modus anzeigenden Information 3 hin sendet der Anzeigeabschnitt
4 für eine sequentielle Befehlsausführung einen Befehl an den
Befehlsausführungs-Steuerungsabschnitt 1. Der
Befehlsausführungs-Steuerungsabschnitt 1 wird durch diesen Befehl in einen
Modus sequentieller Befehlsausführung versetzt und dann der
Befehlszwischenblock sequentiell ausgeführt.
-
Ferner wird dann, wenn das Quellprogramm bis zu dem Punkt
B in Fig. 3 ausgeführt ist, der den sequentiellen Modus
rücksetzende Befehl ausgeführt. Als Antwort auf diese Ausführung
wird die den sequentiellen Modus der Befehlsausführung
anzeigende Information 3 in dem Programmstatuswort-Halteabschnitt
2 auf "0" geändert. Mit dieser Änderung des Status auf "0"
zeigt der Anzeigeabschnitt 4 für eine sequentielle
Befehlsausführung dem Befehlsausführungs-Steuerungsabschnitt 1 an,
den sequentiellen Modus der Befehlsausführung zurückzusetzen.
Nach diesem Befehl fügt der
Befehlsausführungs-Steuerungsabschnitt 1 den Befehlszwischenblock in die Pipeline ein und
führt ihn aus.
-
Das zweite Verfahren zum Setzen der den sequentiellen
Modus der Befehlsausführung anzeigenden Information 3 wird nun
im Detail unter Bezugnahme auf Fig. 2, 4 und 6 beschrieben
-
Wenn der Befehlszwischenblock sequentiell in der Periode
zwischen den Punkten A und B in dem in Fig. 2 dargestellten
Quellprogrammablauf ausgeführt wird, werden Befehle für eine
sequentielle Befehlsausführung an den Punkten A und B des in
Fig. 4 dargestellten Quellprogrammablaufs eingefügt.
-
Das Quellprogramm wird von einem Compiler nach einer
Detektion des Befehle für eine sequentielle Befehlsausführung
so kompiliert, daß Interruptroutinen A und B an den Punkten A
und B des Quellprogrammablaufs aufgerufen werden. Diese
Interruptroutinen sind solche für eine Umschaltung zwischen dem
sequentiellen Modus und der Ausführung des
Befehlszwischenblocks.
-
Eine Arbeitsablauf der Interruptroutine wir nun im Detail
unter Bezugnahme auf Fig. 6A und 6B beschrieben.
-
Gemäß Fig. 6A wird ein Grundprozeßstatus (BPSX) in einen
von einer aktuellen Prozeßstatusblockadresse (CPSB)
zugewiesenen Prozeßstatusblock (PSB) eines Speichers gerettet.
-
Gemäß Fig. 6B wird der Grundprozeßstatus (BPSY) aus dem
von einer nächsten Prozeßstatusblockadresse (NPSB)
zugewiesenen Prozeßstatusblock (PSB) des Speichers zurückgeladen. Zu
diesem Zeitpunkt ist das Programmstatuswort in dem
Grundprozeßstatus (BPSX und BPSY) enthalten, der in den
Prozeßstatusblock (PSB) des Speichers gerettet und zurückgeladen wird.
-
Gemäß Fig. 6A und 6B muß die Interruptroutine A den
Inhalt der den sequentiellen Modus der Befehlsausführung
anzeigenden Information 3 des Programmstatuswortes in dem
Grundprozeßstatus (BPSX), welcher zum Aufrufzeitpunkt der
Interruptroutine A durch einen aufgerufenen Prozeß als "1"
gespeichert wird, umschreiben, so daß der Befehlszwischenblock in
den sequentiellen und Ausführungsmodus versetzt wird. Zum
selben Zeitpunkt wird der Grundprozeßstatus (BPSX) in den
Grundprozeßstatus (BPSY) umgeschrieben oder eine Adresse
(CPSB) des PBSX in eine Adresse (BPSB) des BPSY
umgeschrieben. Wenn die Steuerung dem aufgerufenen Prozeß zurückgegeben
wird, wird der Grundprozeßstatus (BPSY) in den Prozeß
zurückgeladen, und das gerettete Programmstatuswort zurückgeholt.
Zu diesem Zeitpunkt zeigt die den sequentiellen Modus der
Befehlsausführung anzeigende Information 3 in dem
Programmstatuswort den sequentiellen Ausführungsmodus für den
Befehlszwischenblock an.
-
Im Gegensatz dazu schreibt die Interruptroutine B die den
sequentiellen Modus der Befehlsausführung anzeigenden
Information 3 in dem Programmstatuswort in dem Grundprozeßstatus
(BPSX), welcher zum Aufrufzeitpunkt der Interruptroutine B
durch den aufgerufenen Prozeß gerettet wird, in einen Inhalt
um, welcher einen Modus anzeigt, in welchem der
Befehlszwischenblock nicht sequentiell ausgeführt wird. Gleichzeitig
wird der Grundprozeßstatus (BPSY) in den Grundprozeßstatus
(BPSX) verschoben oder eine Adresse (CPSB) des BPSY in eine
Adresse (NPSB) des BPSX umgeschrieben. Wenn die Steuerung dem
aufgerufenen Prozeß zurückgegeben wird, wird der
Grundprozeßstatus (BPSY) in den Prozeß zurückgeladen, und das gerettete
Programmstatuswort zurückgeholt. Zu diesem Zeitpunkt zeigt
die den sequentiellen Modus der Befehlsausführung anzeigende
Information 3 einen Modus an, in welchem der
Befehlszwischenblock nicht sequentiert und ausgeführt wird.
-
Durch Ausführen des in Fig. 4 dargestellten kompilierten
Programms wird der Befehlszwischenblock in die Ablauffolge
eingereiht und in der Periode zwischen den Punkten A und B in
dem in Fig. 4 dargestellten Programm ausgeführt.
-
Gemäß der vorliegenden Erfindung werden dann, wenn eine
Programmunterbrechung während der Ausführung eines Programms
in einer Informationsverarbeitungsvorrichtung mit einer
Pipeline-Befehlsausführungssteuerung auftritt, mehrere Befehle
gleichzeitig parallel durch das Pipelinesystem ausgeführt.
Daher kann dann, wenn es erforderlich ist, einen spezifischen
Befehl zu identifizieren, bei welchem die
Programmunterbrechung auftritt oder wenn der Befehlszwischenblock sequentiell
ausgeführt werden sollte, der spezielle Befehl leicht
identifiziert werden, ohne daß die Notwendigkeit der sequentiellen
der Ausführung und normalen Ausführung des
Befehlszwischenblocks durch die gesamte Informationsvorrichtung besteht,
indem in dem Programmstatuswort eine Befehlsinformation gesetzt
wird, welche anzeigt, ob der Befehlszwischenblock sequentiell
ausgeführt werden soll.
-
Auch dann, wenn mehrere Programme von der
Informationsverarbeitungsvorrichtung verarbeitet werden, kann der
Befehlszwischenblock sequentiell nur in einem gewünschten
Abschnitt eines spezifischen Programms ausgeführt werden.