DE3751108T2 - Mikroprozessor mit der Fähigkeit, an einen Koprozessor geschaltet zu werden. - Google Patents

Mikroprozessor mit der Fähigkeit, an einen Koprozessor geschaltet zu werden.

Info

Publication number
DE3751108T2
DE3751108T2 DE3751108T DE3751108T DE3751108T2 DE 3751108 T2 DE3751108 T2 DE 3751108T2 DE 3751108 T DE3751108 T DE 3751108T DE 3751108 T DE3751108 T DE 3751108T DE 3751108 T2 DE3751108 T2 DE 3751108T2
Authority
DE
Germany
Prior art keywords
coprocessor
bus
execution unit
microprocessor
level
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE3751108T
Other languages
English (en)
Other versions
DE3751108D1 (de
Inventor
Takashi C O Nec Corpo Nakayama
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Electronics Corp
Original Assignee
NEC Corp
Nippon Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP27014386A external-priority patent/JPH0677251B2/ja
Priority claimed from JP1494587A external-priority patent/JPH0650500B2/ja
Application filed by NEC Corp, Nippon Electric Co Ltd filed Critical NEC Corp
Application granted granted Critical
Publication of DE3751108D1 publication Critical patent/DE3751108D1/de
Publication of DE3751108T2 publication Critical patent/DE3751108T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units

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)
  • Advance Control (AREA)

Description

  • 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.

Claims (4)

1. Mikroprozessor (10,70), der an einen Coprozessor (30,80) gekoppelt werden kann, wobei der Mikroprozessor eine Ausführungseinheit (12) aufweist, die Befehle eines Programmes ausführt, eine Bussteuereinheit (14), die mit der Ausführungseinheit gekoppelt ist und einen Adressbus (40) und einen Datenbus (50) steuert, um einen Buszyklus zum Lesen oder Schreiben von Daten zu initiieren, und einen Anschluß (15), der mit der Ausführungseinheit verbunden ist, wobei der Anschluß (15) mit einem Pusy-Signal (BS) versorgt wird, das unter Steuerung des Coprozessors (30,80) einen ersten oder einen 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, dadurch gekennzeichnet, daß der Anschluß (15) auf den zweiten Logikpegel festgelegt ist, wenn der Coprozessor nicht vorhanden ist, daß die Bussteuereinheit (14), ob der Coprozessor (30,80) abwesend ist oder nicht, einen ersten Buszyklus zum Zuführen eines ersten Befehlscodes an den Coprozessor (30,80) iniziiert, der eine durch den Coprozessor auszuführende Anweisung angibt, und daß die Ausführungseinheit (12) den Pegel dem Anschluß (15) detektiert, nachdem der Buszyklus zur Zuführung des Befehlscodes initiiert ist, und der Bussteuereinheit (14) befiehlt, einen zweiten Buszyklus zum Aus lesen von Statusinformation des Coprozessor (30,80) zu iniziieren, wenn für den Anschluß (15) festgestellt wurde, daß er auf dem zweiten Logikpegel ist, und anschließend die durch den zweiten Buszyklus erhaltene Information überprüft.
2. Mikroprozessor nach Anspruch 1, dadurch gekennzeichnet, daß die Bussteuereinheit (14) der Ausführungseinheit (12) ein Buszyklussignal (BC) zuführt, das angibt, daß der erste Buszyklus durchgeführt wird, und daß die Ausführungseinheit (12) den Pegel an dem Anschluß (15) erfaßt, wenn das Buszyklussignal (BC) verschwindet.
3. Mikroprozessor nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß der Mikroprozessor ferner einen Zusatzanschluß (17) aufweist, der mit der Ausführungseinheit (12) verbunden ist, wobei der Zusatzanschluß (17) mit einem Statuslese-Anforderungssignal (STRD) versorgt wird, das einen aktiven oder einen inaktiven Pegel unter Steuerung durch den Coprozessor (30, 80) einnimmt, wenn der Coprozessor mit dem Mikroprozessor verbunden ist, und auf den aktiven Pegel festgelegt ist, wenn der Coprozessor abwesend ist, wobei der aktive Pegel angibt, daß die Statusinformation des Coprozessors durch den Mikroprozessor zu überprüfen ist, und der inaktive Pegel angibt, daß die Statusinformation des Coprozessors nicht durch den Mikroprozessor zu überprüfen ist, und daß die Ausführungseinheit (12) der Bussteuereinheit (14) befiehlt, den zweiten Buszyklus zu initiieren, wenn festgestellt wird, daß der Zusatzanschluß (17) auf dem Aktivpegel ist, nachdem für den Anschluß (15) festgestellt wurde, daß er auf dem zweiten Logikpegel ist.
4. Mikroprozessor nach Anspruch 3, dadurch gekennzeichnet, daß die Ausführungseinheit (12) der Bussteuereinheit (14) befiehlt, einen dritten Buszyklus zum Auslesen von Arithmetikresultatdaten aus dem Coprozessor (30, 80) zu iniziieren, wenn für den Zusatzanschluß (17) festgestellt wurde, daß er auf dem inaktiven Pegel ist, nachdem festgestellt wurde, daß der Anschluß (15) auf dem zweiten Logikpegel ist.
DE3751108T 1986-11-12 1987-11-12 Mikroprozessor mit der Fähigkeit, an einen Koprozessor geschaltet zu werden. Expired - Fee Related DE3751108T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP27014386A JPH0677251B2 (ja) 1986-11-12 1986-11-12 スレ−ブ・プロセツサの制御方式
JP1494587A JPH0650500B2 (ja) 1987-01-25 1987-01-25 スレ−ブ・プロセツサ制御方式

Publications (2)

Publication Number Publication Date
DE3751108D1 DE3751108D1 (de) 1995-04-06
DE3751108T2 true DE3751108T2 (de) 1995-10-26

Family

ID=26350995

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3751108T Expired - Fee Related DE3751108T2 (de) 1986-11-12 1987-11-12 Mikroprozessor mit der Fähigkeit, an einen Koprozessor geschaltet zu werden.

Country Status (3)

Country Link
US (1) US4926318A (de)
EP (1) EP0267613B1 (de)
DE (1) DE3751108T2 (de)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63261449A (ja) * 1987-04-20 1988-10-28 Hitachi Ltd デ−タ処理装置
JPH0786870B2 (ja) * 1988-04-15 1995-09-20 株式会社日立製作所 コプロセツサのデータ転送制御方法およびその回路
JP2754825B2 (ja) * 1989-02-03 1998-05-20 日本電気株式会社 マイクロプロセッサ
US5068821A (en) * 1989-03-27 1991-11-26 Ge Fanuc Automation North America, Inc. Bit processor with powers flow register switches control a function block processor for execution of the current command
US5590363A (en) * 1989-04-18 1996-12-31 Dell Usa, L.P. Circuit for detection of co-processor unit presence and for correction of its absence
US5134713A (en) * 1989-05-19 1992-07-28 Compaq Computer Corporation Coprocessor detection circuit
US5420989A (en) * 1991-06-12 1995-05-30 Cyrix Corporation Coprocessor interface supporting I/O or memory mapped communications
JP2884831B2 (ja) * 1991-07-03 1999-04-19 株式会社日立製作所 処理装置
JPH0628322A (ja) * 1992-07-10 1994-02-04 Canon Inc 情報処理装置
US5490279A (en) * 1993-05-21 1996-02-06 Intel Corporation Method and apparatus for operating a single CPU computer system as a multiprocessor system
US5884091A (en) * 1993-12-08 1999-03-16 Intel Corporation Computer system having a central processing unit responsive to the identity of an upgrade processor
JPH07219774A (ja) * 1994-02-07 1995-08-18 Fujitsu Ltd データ処理装置および例外処理方法
CA2137488C (en) * 1994-02-18 1998-09-29 Richard I. Baum Coexecuting method and means for performing parallel processing in conventional types of data processing systems
JPH10502196A (ja) * 1994-06-29 1998-02-24 インテル・コーポレーション アップグレード可能なマルチプロセッサ・コンピュータシステムでシステムバス所有権を指示するプロセッサ
US5892934A (en) * 1996-04-02 1999-04-06 Advanced Micro Devices, Inc. Microprocessor configured to detect a branch to a DSP routine and to direct a DSP to execute said routine
JP3708853B2 (ja) * 2001-09-03 2005-10-19 松下電器産業株式会社 マルチプロセッサシステムおよびプログラム制御方法
JP3878508B2 (ja) * 2001-11-08 2007-02-07 松下電器産業株式会社 回路群制御システム
JP4644569B2 (ja) * 2005-09-02 2011-03-02 富士通セミコンダクター株式会社 複数チップの起動方法
US11138140B2 (en) * 2020-01-31 2021-10-05 Hewlett Packard Enterprise Development Lp Configuring first subsystem with a master processor and a second subsystem with a slave processor

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3713107A (en) * 1972-04-03 1973-01-23 Ncr Firmware sort processor system
US4014005A (en) * 1976-01-05 1977-03-22 International Business Machines Corporation Configuration and control unit for a heterogeneous multi-system
JPS6038740B2 (ja) * 1976-04-19 1985-09-03 株式会社東芝 デ−タ処理装置
US4128876A (en) * 1977-04-28 1978-12-05 International Business Machines Corporation Synchronous microcode generated interface for system of microcoded data processors
US4395758A (en) * 1979-12-10 1983-07-26 Digital Equipment Corporation Accelerator processor for a data processing system
US4547849A (en) * 1981-12-09 1985-10-15 Glenn Louie Interface between a microprocessor and a coprocessor
JPS58140862A (ja) * 1982-02-16 1983-08-20 Toshiba Corp 相互排他方式
US4509116A (en) * 1982-04-21 1985-04-02 Digital Equipment Corporation Special instruction processing unit for data processing system
US4679166A (en) * 1983-01-17 1987-07-07 Tandy Corporation Co-processor combination
US4715013A (en) * 1983-04-18 1987-12-22 Motorola, Inc. Coprocessor instruction format

Also Published As

Publication number Publication date
US4926318A (en) 1990-05-15
EP0267613B1 (de) 1995-03-01
EP0267613A3 (en) 1990-04-04
EP0267613A2 (de) 1988-05-18
DE3751108D1 (de) 1995-04-06

Similar Documents

Publication Publication Date Title
DE3751108T2 (de) Mikroprozessor mit der Fähigkeit, an einen Koprozessor geschaltet zu werden.
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE4035405C2 (de)
DE3686991T2 (de) Mechanismus fuer parallele speicherdatenabholung und befehlsausfuehrung in einem prozessor mit reduziertem befehlssatz.
DE4329336C2 (de) Einrichtung und Verfahren zur Identifizierung eines Computer-Mikroprozessors
DE69130554T2 (de) Registerschaltung zum Kopieren des Inhalts eines Registers in ein anderes Register
DE2907181C2 (de) Prozessor mit einem Befehlssatz-Modifizierregister
DE2755273C2 (de)
DE69906156T2 (de) Mikroprozessorvorrichtung mit programmierbaren wartezuständen
DE3751164T2 (de) Datenprozessor mit verschiedenen Unterbrechungsverarbeitungsarten.
DE2456578C2 (de) Datenverarbeitungsanlage
DE3587213T2 (de) Verarbeitungseinheit mit der faehigkeit ein oder mehrere programme auszufuehren mit einer mehrzahl von funktionseinheiten.
DE2744531A1 (de) Elektronische datenverarbeitungsanlage
DE1499200B2 (de) Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung
DE3687867T2 (de) Mikrorechner.
DE69130513T2 (de) Verfahren zur Durchführung boolescher Operationen zwischen zwei beliebigen Bits von zwei beliebigen Registern
DE60009496T2 (de) Mikroprozessor mit reduziertem kontextumschaltungsaufwand und verfahren
EP0500973A1 (de) Initialisierungsroutine im EEPROM
DE69033031T2 (de) Programmierbares Steuergerät
DE3882425T2 (de) Datenübertragungssteuerungsvorrichtung für Direktspeicherzugriff.
DE19652290C2 (de) Mikrocomputer
DE69230898T2 (de) Speicherauswahl enthaltendes Verarbeitungs-System und Verfahren
DE68925376T2 (de) In Direktabbildung und in Bankabbildung wirksamer Informationsprozessor und Verfahren zum Schalten der Abbildungsschemas
DE3700800C2 (de) Einrichtung zur Erzeugung eines Unterbrechungspunktes in einem Mikroprozessor
DE3307194C2 (de)

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: NEC ELECTRONICS CORP., KAWASAKI, KANAGAWA, JP

8339 Ceased/non-payment of the annual fee