-
Die vorliegende Erfindung betrifft einen Mikroprozessor,
der die Fähigkeit hat, an einen Coprozessor geschaltet zu
werden, mit einer Ausführungseinheit, die Befehle eines
Programms ausführt, einer Bussteuereinheit, die mit der
Ausführungseinheit gekoppelt ist und einen Adreßbus und
einen Datenbus steuert, um einen Buszyklus zum Lesen oder
Schreiben der Daten zu initiieren, und einem Anschluß, der
mit der Ausführungseinheit verbunden ist, wobei der
Anschluß mit einem Busy-Signal versorgt wird, das unter
Steuerung des Coprozessors einen ersten und zweiten
Logikpegel einnimmt, wenn der Coprozessor mit dem Mikroprozessor
gekoppelt ist, wobei der erste Logikpegel angibt, daß der
Coprozessor in einem Arithmetik-Operationszustand ist, und
der zweite Logikpegel angibt, daß der Coprozessor nicht in
einem Arithmetik-Operationszustand ist.
-
Die US-A-4 547 849 zeigt einen Mikroprozessor mit einem
Übereinstimmung-Vorhanden-Flag, das dem Mikroprozessor
sagt, ob im System ein Coprozessor vorhanden ist oder
nicht. Wenn kein Coprozessor vorhanden ist, sagt ein
Emulationsflag dem Mikroprozessor, ob eine Software-Emulation
der ESC-Instruktionen (Code-Umschalt-Instruktionen)
stattfinden muß oder nicht. Die ESC-Instruktionen müssen vom
Coprozessor ausgeführt werden. Das heißt, wenn dieser
Mikroprozessor auf die ESC-Instruktionen trifft, wird zuerst der
Inhalt des MP-Flag überprüft, um festzustellen, ob der
Coprozessor im System vorhanden ist oder nicht, dann wird der
Inhalt des MP-Flag überprüft. Dieser Vorgang wird
Emulationstest
genannt und wird immer dann durchgeführt, wenn
der Mikroprozessor auf die ESC-Befehle trifft. Der
Mikroprozessor behandelt die ESC-Befehle als eine von acht
verschiedenen Kategorien, von denen jede die Operationsabfolge
definiert, die vom Mikroprozessor durchgeführt werden muß.
In jeder Kategorie ist der Emulationstest als erste
Operation aufgeführt. Daher wird der Mikroprozessor immer dann,
wenn er auf einen ESC-Befehl trifft, ungeachtet der
Kategorie, zuerst den Emulationstest durchführen. Bei dem
Emulationstest wird das MP-Zeichen überprüft, um die Anwesenheit
oder Abwesenheit des Coprozessors zu detektieren, und dann
wird das EM-Zeichen überprüft, ob das MP-Zeichen die
Abwesenheit des Coprozessors anzeigt. Wenn andererseits das MP-
Zeichen die Anwesenheit des Coprozessors ansagt, werden ein
Busy-Signal und ein Fehlersignal überprüft und ein
Befehlscode, der für den ESC-Befehl repräsentativ ist, falls
notwendig, zum Coprozessor geschickt.
-
Gemäß diesem Stand der Technik muß der Mikroprozessor den
Emulationstest ungeachtet der Anwesenheit des Coprozessors
durch Überprüfen des Inhaltes des MP-Flag durchführen. Aus
diesem Grund wird die Durchführungszeitspanne des Befehls
auf hoher Ebene verlängert, wodurch die
Rechengeschwindigkeit gesenkt wird. Darüber hinaus sind für einen Fall, bei
dem eine Vielzahl von Coprozessoren erforderlich sind, eine
Vielzahl von Flags entsprechend der jeweiligen
Coprozessoren notwendig, wodurch die Hardware des Mikroprozessors
vergrößert wird.
-
In der Zeitschrift IEEE-MICRO, Vol. 6, Nr. 2, April 1986,
Seiten 29 bis 46, IEEE, New York, ist ein Mikroprozessor
offenbart, der den Zustand des Coprozessors überwachen
kann.
-
Daher ist es ein Ziel der vorliegenden Erfindung, einen
verbesserten Mikroprozessor zu schaffen, der an einen
Coprozessor geschaltet werden kann.
-
Ein anderes Ziel der vorliegenden Erfindung ist es, einen
Mikroprozessor zu schaffen, der die Anwesenheit oder
Abwesenheit des Coprozessors ohne den Einsatz eines Flag
detektieren kann.
-
Ein weiteres Ziel der vorliegenden Erfindung ist es, ein
neues Steuersystem zwischen einem Mikroprozessor und einem
Coprozessor zu schaffen.
-
Ein Mikroprozessor gemäß der vorliegenden Erfindung, wie
vorstehend beschrieben, ist dadurch gekennzeichnet, daß der
Anschluß auf den zweiten Logikpegel festgelegt ist, wenn
der Coprozessor nicht vorhanden ist, daß die
Bussteuereinheit, ob der Coprozessor abwesend ist oder nicht, einen
ersten Buszyklus zum Zuführen eines ersten Befehlscodes an
den Coprozessor initiiert, der eine durch den Coprozessor
auszuführende Anweisung angibt, und daß die
Ausführungseinheit den Pegel des Anschlusses detektiert, nachdem der
Buszyklus zur Zuführung des Befehlscodes initiiert ist, und
der Bussteuereinheit befiehlt, einen zweiten Buszyklus zum
Auslesen von Statusinformationen des Coprozessors zu
initiieren, wenn für den Anschluß festgestellt wurde, daß er auf
dem zweiten Logikpegel ist, und anschließend die durch den
zweiten Buszyklus erhaltene Information überprüft.
-
Andere Aspekte und Merkmale des Mikroprozessors gemäß der
vorliegenden Erfindung sind in den anschließenden
Unteransprüchen 2 bis 4 spezifiziert.
KURZE BESCHREIBUNG DER FIGUREN
-
Die vorstehenden und andere Ziele, Vorteile und Merkmale
der vorliegenden Erfindung werden durch die folgende
Beschreibung anhand der begleitenden Figuren im einzelnen
erläutert. Es zeigt:
-
Fig. 1 ein Blockschaltbild, welches eine Ausführungsform
der vorliegenden Erfindung repräsentiert;
-
Fig. 2 ein Flußdiagramm der Operation eines in der Fig. 1
gezeigten Hauptprozessors;
-
Fig. 3 einen Zeitschaltplan der Operation gemäß Fig. 2;
-
Fig. 4 ein Blockschaltbild eines modifizierten Beispieles
der Ausführungsform gemäß Fig. 1;
-
Fig. 5 ein Blockschaltbild einer anderen Ausführungsform
der vorliegenden Erfindung;
-
Fig. 6 ein Flußdiagramm der Operation eines in der Fig. 5
gezeigten Hauptprozessors;
-
Fig. 7A und 78 Zeitschaltpläne der in der Fig. 6 gezeigten
Operation; und
-
Fig. 8 ein Blockschaltbild eines modifizierten Beispieles
der Ausführungsform gemäß Fig. 5.
DETAILLIERTE BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
-
Fig. 1 zeigt einen Hauptprozessor 10 (Master) als CPU,
einen Hilfsprozessor 30 (Slave) als einen Coprozessor und
einen Speicher 20. Der Hilfsprozessor 30 arbeitet unter
Steuerung des Hauptprozessors 10 und führt anstatt des
Mauptprozessors 10 Befehle auf hoher Ebene mit hoher
Geschwindigkeit, wie beispielsweise eine Rechenoperation mit
Gleitkomma, eine Funktions-Rechenoperation etc. aus. Der
Hauptprozessor 10 hat zum Speicher 20 Zugriff, und im
Speicher 20 sind Daten und ein Programm gespeichert, welches
Befehle auf niedriger Ebene und Befehle auf hoher Ebene
umfaßt. Der Hauptprozessor 10, der Speicher 20 und der
Hilfsprozessor
30 sind über einen Adressenbus 40 und einen
Datenbus 50 miteinander verbunden.
-
Der Hauptprozessor 10 hat eine Befehlsdekodiereinheit 11,
die Befehle dekodiert, welche vom Hauptprozessor 10 und vom
Hilfsprozessor 30 ausgeführt werden, eine
Ausführungseinheit 12, die die gesamte Operation des Hauptprozessors 10
steuert und Befehle unter Mikroprogrammsteuerung ausführt,
eine Recheneinheit für tatsächliche Adressen 13, die eine
tatsächliche Adresse jedes Operanden der jeweiligen Befehle
ausrechnet, und eine Bussteuereinheit 14, die den Adreßbus
40 und den Datenbus 50 steuert, um Zugriff zum Speicher 20
und zum Hilfsprozessor 30 zu erzeugen, wobei diese
Baueinheiten 11 bis 14, wie dargestellt, über interne
Busleitungen miteinander verbunden sind. Die Bussteuereinheit 14
versorgt über eine Leitung 16 die Ausführungseinheit 12 mit
einem Buszyklussignal BC mit hohem pegel, wenn diese eine
Befehlsinformation des durch den Hilfsprozessor 30
auszuübenden Befehls auf den Datenbus 50 übertragen wird. Der
Hauptprozessor 10 hat weiterhin einen Anschluß 15, der mit
der Ausführungseinheit 12 verbunden ist und mit einem Busy-
Signal BS gespeist wird, das später beschrieben wird.
-
Der Hilfsprozessor 30 hat eine Recheneinheit 31, die eine
Rechenoperation mit Befehlen auf hoher Ebene durchführt,
ein Befehlstor 32, das über den Datenbus-50-Befehlscode die
durch den Hilfsprozessor 30 auszuführenden Befehle erhält,
ein Statustor 33, das den Status der Recheneinheit 31
empfängt und diesen an den Datenbus 50 ausgibt, ein
Operandentor 34, das über den Datenbus 50 Daten empfängt, die für
die arithmetische Operation der Einheit 31 notwendig sind
und das Rechenergebnis an den Datenbus 50 ausgibt, und
einen Adressendekodierer 35, der über den Adreßbus 40
Adresseninformationen empfängt und eines der Tore 32, 33
und 34 in Abhängigkeit davon auswählt, wobei diese
Baueinheiten 31 bis 35, wie dargestellt, über interne
Busleitungen
gekoppelt sind. Der Hilfsprozessor 30 hat weiterhin
einen Ausgangsanschluß 37 und einen N-Kanal-MOS-Transistor
36 vom Typ mit offenem Drain. Der Source-Drain-Pfad des
Transistors 36 ist zwischen den Anschluß 37 und Masse
geschaltet, und das Gate ist an die Recheneinheit 31
angeschlossen.
-
Der Anschluß 37 des Hilfsprozessors 30 ist über eine
Leitung 61 an den Anschluß 35 des Hauptprozessors 10
angeschlossen. Die Leitung 61 ist über einen Widerstand 60 zu
einer Netzspannung Vcc hochgezogen. Die Recheneinheit 31
des Hilfsprozessors versorgt den MOS-Transistor 36 während
einer Zeitspanne, in der die Einheit 31 im
Rechenoperationsstatus ist, mit einem hohen Pegel, um den Transistor
36 einzuschalten. Somit erzeugt der Hilfsprozessor 30 das
Busy-Signal BS mit einem niedrigen Pegel, das seinerseits
der Ausführungseinheit 12 des Hauptprozessors 10 über den
Anschluß 15 zugeführt wird. Der Transistor 36 ist mit
Ausnahme einer Zeitspanne der Rechenoperation der Einheit 31
in einem nicht leitenden Zustand, so daß das Busy-Signal BS
den hohen Pegel einnimmt. Anders ausgedrückt, der
Hilfsprozessor 30 erzeugt nicht das Busy-Signal BS.
-
Fig. 2 zeigt ein Flußdiagramm, das die Operation der
Ausführungseinheit 12 für den Fall repräsentiert, bei dem der
Befehlsdekodierer 11 den Befehl dekodiert, der durch den
Hilfsprozessor 30 durchgeführt werden soll. Dieses
Flußdiagramm zeigt eine dyadische Operation von "A+B T B". Wenn
die Daten des ersten und zweiten Operanden A und B im
Speicher 20 gespeichert sind, fordert die Ausführungseinheit 12
die Bussteuereinheit 14 auf, die Daten des ersten und
zweiten Operanden A und B aus dem Speicher 20 zu lesen und
diese in dem Operandentor 34 des Hilfsprozessors 30 zu
speichern (Schritte 201 und 202). Somit steuert die
Bussteuereinheit 14 die Adreß- und Datenbusse 40 und 50 und
schreibt die Daten der ersten und zweiten Operanden A und B
in das Operandentor 34. Wenn die Operanden A und B Register
(nicht dargestellt) im Hilfsprozessor 34 sind, werden die
Schritte 201 und 202 nicht ausgeführt. Danach versorgt die
Ausführungseinheit 12 die Bussteuereinheit 14 mit einem
Befehlscode, der vom Befehlsdekodierer 11 eingegeben ist, und
fordert die Einheit 14 auf, diesen an das Befehlstor 32 zu
leiten (Schritt 203). In Abhängigkeit von dieser
Aufforderung überträgt die Bussteuereinheit 14 den Befehlscode auf
den Datenbus 50 und die Adresseninformation des Befehlstors
32 auf den Adreßbus 40, wie in der Fig. 3 dargestellt ist.
Der Befehlscode auf dem Datenbus 50 wird somit in das
Befehlstor 32 eingeschrieben. Während dieser
Buszykluszeitspanne leitet die Bussteuereinheit 14 das Buszyklussignal
BS mit hohem Pegel, wie in der Fig. 3 gezeigt, über die
Signalleitung 16 zur Ausführungseinheit 12. Als Ergebnis wird
die Ausführungseinheit 12 solange in einen
Bereitschaftszustand gebracht, bis das Buszyklussignal BS sich in den
niederen Pegel ändert, d.h. bis die Einschreibinformation des
Befehlscodes in das Befehlstor 32 beendet ist (Schritt
204).
-
In Abhängigkeit von der Anderung des Buszyklussignals BC
vom hohen Pegel zum niederen Pegel überprüft die
Ausführungseinheit 12 den Pegel des Busy-Signals BS, das über den
Anschluß 15 zugeführt ist, um zu detektieren, ob die
Rechenoperation von der Baueinheit 31 beendet ist oder nicht
(Schritt 205). Wenn der Hilfsprozessor 30 abwesend ist,
wird der Anschluß 15 vom Widerstand 60 auf den hohen Pegel
gezogen. Das heißt, das Busy-Signal BS nimmt den hohen
Pegel ein. Daher betrachtet die Ausführungseinheit 12 die
Rechenoperation durch die Baueinheit 31 als beendet und
fordert die Bussteuereinheit 14 auf, die Statusinformation des
Statustores 33 zu lesen (Schritt 206). Die Bussteuereinheit
14 überträgt die Adresseninformation des Statustores 33
über den Adreßbus 40 auf den Hilfsprozessor 30 und liest
die darin gespeicherte Statusinformation, die ihrerseits
über den Datenbus der Ausführungseinheit 12 zugeführt wird.
Die Ausführungseinheit 12 beurteilt den Inhalt der
herausgelesenen Statusinformation (Schritt 207). Da der
Hilfsprozessor 30 abwesend ist und da jede Bitleitung des
Datenbusses herauf- oder heruntergezogen ist, sind alle Bits der
herausgelesenen Statusinformation "1" oder "0". Der Inhalt
der Statusinformation nimmt nämlich einen anomalen Wert
ein. Als Ergebnis detektiert die Ausführungseinheit 12 die
Abwesenheit des Hilfsprozessors 30 und führt den vom
Hilfsprozessor 30 auszuführenden Befehl selbst aus, und zwar
repräsentiert als eine Hilfsprozessor-Abwesenheitsoperation
(Schritt 208). Die Ausführungseinheit 12 ist nicht mit
einer Funktion ähnlich der Recheneinheit 31 ausgestattet, und
daher sollten verschiedene Befehle auf niedriger Ebene
kombiniert werden, um die Befehle auf hoher Ebene auszuführen,
so daß die Verarbeitungszeit verlängert wird.
-
Wenn der Hilfsprozessor 30 mit dem Hauptprozessor 10
gekoppelt ist, wie dies in der Fig. 1 gezeigt ist, führt die
Baueinheit 31 die Rechenoperation der Daten zwischen den
ersten und zweiten Operanden A und B, die im Operandentor
34 gespeichert sind, in Abhängigkeit von dem Befehlscode
durch, der vom Befehlstor 32 zugeführt worden ist, und
leitet weiterhin den Hochpegel an den Transistor 36 weiter,
der dadurch eingeschaltet wird, um das Busy-Signal BS auf
den niedrigen Pegel zu verändern, wie dies in der Fig. 3
gezeigt ist. Demgemäß erhält die Ausführungseinheit 12 das
Busy-Signal BS mit niederem Pegel in Abhängigkeit von der
Änderung des Buszyklussignals BS von hohem Pegel auf
niedrigen Pegel und betrachtet damit die Recheneinheit 31 als
im Rechenoperationsstatus, um dadurch einen Zugriff auf den
Hilfsprozessor 30 zu untersagen. Die Adreß- und Datenbusse
40 und 50 werden somit in einen freien Status gebracht.
Obwohl die Ausführungseinheit 12 in dem Flußdiagramm gemäß
Fig. 2 einen Bereitschaftszustand einnimmt, da die Busse 40
und 50 frei sind, kann die Ausführungseinheit 12 vorab aus
dem Speicher Befehle holen, indem sie die Busse 40 und 50
benutzt, oder periphere Einheiten (nicht dargestellt)
können die Busse 40 und 50 benutzen. Die Ausführungseinheit 12
überprüft zyklisch den Pegel des Busy-Signals BS.
-
Wenn die Rechenoperation der Einheit 31 beendet ist,
speichert die Einheit 31 die Statusinformation und das
Rechenergebnis im Statustor 33 bzw. im Operandentor 34. Die
arithmetische Einheit 31 leitet weiterhin den niederen
Pegel auf den Transistor 36, um diesen auszuschalten. Das
Busy-Signal BS wird somit durch den Hochziehwiderstand 60,
wie in der Fig. 3 gezeigt, auf hohen Pegel gebracht. Als
Ergebnis des Detektierens des hohen Pegels des Busy-Signals
BS betrachtet die Ausführungseinheit 12 die Recheneinheit
31 als fertig mit ihrer Rechenoperation und fordert die
Bussteuereinheit 14 auf, die Statusinformation
herauszulesen (Schritt 206). Somit versorgt die Bussteuereinheit 14
den Hilfsprozessor 30 über den Adreßbus 40 mit der
Adresseninformation des Statustors 33 und liest die
Statusinformation aus dem Statustor 33 über den Datenbus 50, wie dies
in der Fig. 3 gezeigt ist. Die herausgelesene
Statusinformation wird von der Ausführungseinheit 12 beurteilt
(Schritt 207). Wenn die Statusinformation arithmetische
Ausnahmedaten umfaßt, die für einen Überlauf oder
Nulldivisor repräsentativ sind, führt die Ausführungseinheit 12
eine Fehlerrepräsentation als eine
Hilfsprozessor-Rechenausnahmeoperation 210 durch. Wenn die Statusinformation
keinen anomalen Wert oder die arithmetische Ausnahme
enthält, fordert die Ausführungseinheit 12 die
Bussteuereinheit 14 auf, das Rechenergebnis herauszulesen (Schritt
209). Als Ergebnis leitet die Bussteuereinheit 14 die
Adresseninformation des Operandentors 34 über den Adreßbus
40 auf den Hilfsprozessor 30, und das im Operandentor 34
gespeicherte Rechenergebnis wird herausgelesen und dann auf
den Datenbus 50 übertragen.
-
Da die Abwesenheit des Hilfsprozessors 30 durch Lesen und
Beurteilen des Inhaltes der Statusinformation im Statustor
detektiert wird, benötigt der Hauptprozessor 10 kein Flag,
das für die Anwesenheit oder Abwesenheit des
Hilfsprozessors 30 repräsentativ ist. Darüber hinaus wird das Lesen
der Statusinformation nur dann ausgeführt, wenn das Busy-
Signal die Information annimmt, die für die Beendigung
einer Rechenoperation der Einheit 31 repräsentativ ist, und
daher werden die Busse 40 und 50 nicht mit Lesen der
Statusinformation besetzt.
-
In der Fig. 4 sind eine Vielzahl von Hilfsprozessoren (drei
Prozessoren in der Zeichnung) 30-1, 30-2 und 30-3 über
Adreß- und Datenbusse 40 und 50 an den Hauptprozessor 10
gekoppelt. Jeder der Hilfsprozessoren 30-1 bis 30-3 hat den
gleichen Aufbau wie der in der Fig. 1 gezeigte Prozessor,
und deren Busy-Signal-Ausgangsanschlüsse 37-1 bis 37-3 sind
gemeinsam an den Anschluß 15 des Hauptprozessors 10 über
die Leitung 61 angeschlossen. Da jedes Tor der jeweiligen
Hilfsprozessoren 30-1 bis 30-3 einem individuellen
Adreßraum zugeordnet ist, wird durch die Adresseninformation,
die vom Mauptprozessor 10 erzeugt worden ist, nur auf eines
der Tore unter den Hilfsprozessoren 30-1 bis 30-3
zugegriffen. Da jeder der Hilfsprozessoren 30-1 bis 30-3 einen
Transistor vom offenen Draintyp hat (Transistor 36 in Fig.
1), wird das Busy-Signal BS durch einen der
Hilfsprozessoren 30-1 bis 30-3 gesteuert, der sich im
Rechenoperationsstatus befindet. Somit kann der Hauptprozessor 10 eine
Vielzahl von Hilfsprozessoren 30-1 bis 30-3 auf die gleiche
Art und Weise, wie vorstehend beschrieben, steuern.
-
Bei der vorstehend beschriebenen Ausführungsform wird die
Statusinformation des Hilfsprozessors 30 immer ausgelesen.
Wenn jedoch die Statusinformation keine abnorme Information
oder arithmetische Ausnahmeinformation enthält, ist das
Herauslesen der Statusinformation nicht notwendig. Das
heißt, das Rechenergebnis kann aus dem Hilfsprozessor ohne
Lesen der Statusinformation herausgelesen werden. Die
Prozeßzeit für den Befehl auf hoher Ebene wird dadurch weiter
verkürzt.
-
Zu diesem Zweck ist als eine andere Ausführungsform der
vorliegenden Erfindung, wie in der Fig. 5 gezeigt, ein
Hauptprozessor 70 mit einem zweiten Eingangsanschluß 17
versehen, der an die Ausführungseinheit 12 gekoppelt ist,
und ein Hilfsprozessor 80 ist mit einem zweiten N-Kanal-
MOS-Transistor 38 vom offenen Draintyp und einem zweiten
Ausgangsanschluß 39 versehen. Die Anschlüsse 17 und 39 sind
miteinander über eine Signalleitung 63 verbunden, die
ihrerseits über einen Widerstand 62 zu einer Netzspannung Vcc
hochgezogen ist. Der Drain-Source-Pfad des Transistors 38
ist zwischen Anschluß 39 und Masse geschaltet, und das Gate
desselben ist an die Recheneinheit 31 angeschlossen. Die
Einheit 31 leitet am Ende der Rechenoperation den hohen
Pegel auf den Transistor 38, wenn die Notwendigkeit des
Herauslesens der Statusinformation nicht auftritt, d.h., wenn
die arithmetische Ausnahme und Flagaktualisieren nicht als
Ergebnis der Rechenoperation auftritt. Der Transistor 38
wird dabei eingeschaltet, um die Leitung 63 auf den
niedrigen Pegel zu bringen. Der Pegel der Leitung 63 wird über
den Anschluß 17 als Statusleseanforderungssignal STRD an
die Ausführungseinheit 12 angelegt.
-
Eine detaillierte Beschreibung des Schaltungsbetriebs wird
im folgenden anhand eines Flußdiagrammes, wie in der Fig. 2
gezeigt, und der Zeitschaltpläne, wie in den Fig. 7A und 7b
gezeigt, durchgeführt.
-
Das Flußdiagramm gemäß Fig. 2 gibt ebenfalls eine dyadische
Operation von "A+B T B" an. Die Schritte 601 bis 605
entsprechen jeweils den Schritten 201 bis 205, und daher kann
ihre Beschreibung weggelassen werden. Wenn die
Ausführungseinheit
12 den hohen Pegel des Busy-Signals BS detektiert,
fängt sie das Statusleseanforderungssignal STRD ein, das
vom Anschluß 17 zugeführt wird, um dessen Pegel zu
detektieren. Angenommen, daß sowohl die arithmetische Ausnahme
als auch das Flagaktualisieren nicht stattfinden, leitet
die Recheneinheit 31 am Ende der Rechenoperation den hohen
Pegel auf den Transistor 38. Der Transistor 38 schaltet
dabei ein, um das Statusleseanforderungssignal STRD auf den
niederen Pegel zu bringen, wie dies in der Fig. 7A gezeigt
ist. Daher empfängt die Ausführungseinheit 12 das
Niedrigpegel-Signal STRD. Als Ergebnis fordert die
Ausführungseinheit 12 die Bussteuereinheit 14 auf, das Rechenergebnis
ohne Lesen der Statusinformation aus dem Hilfsprozessor 80
zu lesen (Schritt 612). Somit leitet die Bussteuereinheit
14 die Adresseninformation des Operandentors 34 über den
Adreßbus 40 auf den Hilfsprozessor 80 und liest das
Rechenergebnis, das im Tor 34 gespeichert ist, über den
Datenbus 50, wie dies in der Fig. 7A gezeigt ist. Die
Prozeßzeit für den Befehl auf hoher Ebene ist dadurch kurz
gehalten.
-
Wenn im Gegensatz hierzu die arithmetische Ausnahme oder
Flagaktualisierung auftritt, schaltet die Recheneinheit 31
den Transistor 38 ein. Das Statusleseanforderungssignal
STRD wird dabei auf dem hohen Pegel gehalten, wie dies in
der Fig. 78 gezeigt ist. Da die Ausführungseinheit 12 das
Hochpegel-Signal STRD erhält, fordert diese die
Bussteuereinheit 14 auf, die Statusinformation zu lesen
(Schritt 607). Somit leitet die Bussteuereinheit 14 die
Adresseninformation des Statustors 33 über den Adreßbus 40
auf den Hilfsprozessor 80 und liest die darin gespeicherte
Statusinformation über den Datenbus 50, wie dies in der
Fig. 78 gezeigt ist. Die Ausführungseinheit 12 beurteilt
den Inhalt der herausgelesenen Statusinformation (Schritt
608). Wenn die Statusinformation die arithmetischen
Ausnahmedaten enthält, führt die Ausführungseinheit 12 eine
arithmetische Hilfsprozessor-Ausnahmeoperation aus, die
vorstehend beschrieben worden ist (Schritt 610). Für den
Fall, daß die Statusinformation Flagaktualisierungsdaten
enthält, aktualisiert die Ausführungseinheit 12 den Inhalt
der zugehörigen Flag 18 (Schritt 609). Das aktualisierte
Flag wird beispielsweise für eine Zweigoperation oder einen
Subroutine-Vorgang verwendet. Danach fordert die
Ausführungseinheit 12 die Bussteuereinheit 14 auf, das
Rechenergebnis zu lesen (Schritt 612).
-
Wenn der Hilfsprozessor 80 abwesend ist, werden sowohl das
Busy-Signal BS als auch das Statusleseanforderungssignal
STRD auf hohem Pegel gehalten. Alle Bits der
herausgelesenen Statusinformationen nehmen "1" oder "0" ein. Als
Ergebnis führt die Ausführungseinheit 12 eine
Hilfsprozessor-Abwesenheitsoperation (Schritt 611) aus, die vorstehend
bereits erwähnt ist.
-
Da der Buszyklus zum Lesen des Inhaltes des Statustores 33
durch die Verwendung des Statusleseanforderungssignals STRD
weggelassen werden kann, ist die Ausführungszeit des
Befehls auf hoher Ebene weiter verkürzt.
-
Bezugnehmend auf Fig. 8 ist der Hauptprozessor 70 mit einer
Vielzahl von Hilfsprozessoren (drei Prozessoren in der
Zeichnung) 80-1, 80-2 und 80-3 verbunden, die jeweils die
gleiche Konstruktion wie der in der Fig. 5 gezeigte haben.
Die Busy-Signal-Ausgangsanschlüsse 37-1, 37-2 und 37-3 der
Milfsprozessoren 80-1 bis 80-3 werden gemeinsam über die
Leitung 61 an den Anschluß 15 des Hauptprozessors 70
angeschlossen, und die
Statusleseanforderungssignal-Ausgangsanschlüsse 39-1 bis 39-3 sind gemeinsam über die Leitung 62
an den Anschluß 17 angeschlossen. Da die entsprechenden
Tore der Hilfsprozessoren 80-1 bis 80-3 entsprechenden
Adreßräumen zugeordnet sind, kann der Hauptprozessor 70
diese Hilfsprozessoren 80-1 bis 80-3 individuell steuern.