HINTERGRUND DER ERFINDUNG
-
Die in den beigefügten Ansprüchen definierte vorliegende Erfindung betrifft einen
Mikroprozessor und insbesondere eine Logikstruktur für eine Befehlscodierung und eine
interne Steuerung, die geeignet ist, die Größe eines LSI-Mikroprozessors zu verringern und
seine Leistungsfähigkeit zu verbessern.
-
Bei einem herkömmlichen Befehlscode eines 8-Bit-Mikroprozessors wird ein
Befehlssatz verwendet, der in erster Linie für eine Akkumulatoroperation verwendet wird und
auf einem Ein-Byte-Befehl beruht. Ein Beispiel eines solchen Befehlssatzes ist der im 8-Bit-
Mikroprozessor HD 6303X (Hitachi) verwendete. Bei einem 16-Bit-Mikroprozessor
wurden Register für allgemeine Zwecke und ein Operandenadressen-Operationsmodus
(effektive Adresse EA) eingeführt. Infolgedessen beträgt die Codelänge eines Befehls mehr als ein
Byte. Ein Beispiel eines solchen Befehlssatzes ist einer, der im 16-Bit-Mikroprozessor 8086
(Intel) verwendet wird.
-
Um in einer höheren Sprache wirksam zu kompilleren, können eine durch einen
Befehl ausgeführte Operation und die Erzeugung einer Operandenadresse unabhängig
angegeben werden. Insbesondere werden die Angabe einer Operation und die Angabe des
Operanden-Adressiermodus als Folge eines Befehls unabhängig vorgenommen. Dies wird als
Orthogonalisierung der Operation und der Operandenadressierung bezeichnet, und ein Befehl,
der eine solche Funktion aufweist, wird als orthogonaler Befehl bezeichnet. Ein Beispiel
eines solchen Befehls ist ein im 16-Bit-Mikroprozessor HD 68000 (Hitachi) verwendeter. Auf
diese Weise kann der Operanden-Adressiermodus durch unabhängige Angabe der Operation
und des Operanden-Adressiermodus für jede Operation festgelegt werden. Bei diesem
Verfahren ist die Codelänge eines Befehls jedoch groß. Beim Befehlssatz von HD 68000
beträgt die minimale Befehlscodelänge beispielsweise 2 Bytes, und der Befehlscode ist um eine
Byteeinheit erweitert.
-
Bei einem Mikroprozessor-Strukturierverfahren eines Mikroprogranimiersystems
aus JP-A-56-108 149 ist ein Mikroprozessor-Strukturierverfahren für einen Befehl offenbart,
bei dem ein Gewicht auf die Orthogonalität der Operation und des
Operanden-Adressiermodus gelegt wird. Beim offenbarten Strukturierverfahren wird der ganze Code, der den
Operanden und den Operanden-Adressierrnodus angibt, decodiert, um Startadressen
mehrerer Mikroprogramme, wie eines Operationsausführungs-Mikroprogramms und eines
Operandenadressier-Mikroprogramms zu erzeugen. Um einen Befehl auszuführen, werden
Unterroutinen der Mikroprogramme durch diese Startadressen der Reihe nach gestartet. Da die
Operation und der Operanden-Adressiermodus in einem Befehl unabhängig voneinander
angegeben werden, ist das Unterroutinenverfahren wirksam, die Größe der Mikroprogramme
zu verringern.
-
Bei den oben genannten Verfahren aus dem Stand der Technik ist die minimale
Codelänge des Befehls hoch und es wird dem logischen Umfang des Befehlsdecodiers zum
Decodieren des ganzen langen Befehlscodes keine Beachtung geschenkt. Infolgedessen ist
die Codewirksamkeit (der Kehrwert der tatsächlich verwendeten Gesamtbefehlscodelänge)
des dynamischen Befehlscodes bei der Ausführung des Programms verringert, und der
Umfang des Befehlsdecodiers erweitert.
-
Ein Mikroprozessor mit den Merkmalen des ersten Teils des Anspruchs 1 ist aus
US-A-4 197 578 bekannt.
ZUSAMMENFASSUNG DER ERFINDUNG
-
Eine Aufgabe der vorliegenden Erfindung besteht darin, einen Mikroprozessor
vorzusehen, der die Codewirksamkeit bei der Ausführung des Programms verbessert, den
Schaltungsumfang des Befehlsdecodierers verringert und eine vergleichbare
Leistungsfähigkeit wie ein Mikroprozessor aufweist, bei dem die Operation und der
Operanden-Adressiermodus orthogonal sind.
-
Die erwähnte Aufgabe wird durch den Mikroprozessor gemäß Anspruch 1 erreicht.
Wie nachfolgend in näheren Einzelheiten erklärt wird, hat dieser Mikroprozessor emen
Befehlssatz, bei dem eine Befehlscodelänge um eine Einheit einer vorgegebenen Anzahl von
Bits (beispielsweise ein Byte) als minimale Befehlscodelänge erweitert sein kann, bei dem
die Angabe des Operanden-Adressierrnodus und die Angabe der Operation durch
unabhängige Codes mit der vorgegebenen Anzahl von Bits vorgenommen werden und bei dem das
Codierschema der Codes mit der vorgegebenen Anzahl von Bits gleichmäßig ist, so daß ein
Befehlsdecodierer von diesen Codes gemeinsam verwendet werden kann.
-
Insbesondere hat der Mikroprozessor ein Mikroprogramm-Steuersystem mit einem
Befehl, der eine unabhängige Angabe des Operanden-Adressiermodus und des
Operationstyps für den Operanden in einem Befehl ermöglicht. Die Befehlscodelänge ist um eine
Einheit einer vorgegebenen Zahl von Bits (beispielsweise 8 Bits) erweiterbar. Die erste
vorbestimmte Anzahl von Bits (8 Bits) des Codes im Befehl bezeichnet den
Operanden-Adressiermodus, und die zweite vorbestimmte Anzahl von Bits (8 Bits) des Codes im Befehl
bezeichnet den Operationstyp des Operanden. Das Codeschema oder die Codeabbildung dieser
vorbestimmten Anzahl von Bits (8 Bits) ist gleichmäßig. Eine kombinatorische Logikschaltung,
welche den Befehlscode mit der vorbestimmten Anzahl von Bits (8 Bits) empfängt und ein
Ausgangssignal mit einer kleineren Anzahl von Bits erzeugt als sie das Eingangssignal
aufweist, ist vorgesehen. Die Mikroprogrammadresse wird durch die Ausgabe der
kombinatorischen
Logikschaltung und die Bitinformation wenigstens eines Teils des Mikroprogramms
erzeugt.
-
Durch Verringern der minimalen Codelänge des Befehlscodes wird die
Codewirksamkeit bei der Ausführung des Programms verbessert. Um die minimale Codelänge zu
verringern und den Befehl bei der Einheit der Codelänge zu decodieren und auszuführen, ist es
erforderlich, die Operanden-Adressiersequenz und die Operationssequenz völlig zu trennen,
wenn der Befehl verwendet wird, der den Operanden-Adressiermodus und die Operation
unabhängig voneinander angibt. Dies kann durch Vorsehen einer Einrichtung zum
Reservieren eines Teils des Befehlscodes erreicht werden, so daß auf diesen in der nächsten
Ausführungssequenz Bezug genommen werden kann.
-
Der Befehlsdecodierer kann durch Verwenden der gleichmäßigen Codeabbildung für
die Befehlscodes mit der Grundeodelänge, die als Daten zur Erzeugung der Startadressen
der Ausführungssequenzen verwendet werden, gemeinsam verwendet werden. Die
Sequenzen können durch das Mikroprogramm unterschieden werden.
-
Gemäß der vorliegenden Erfindung wird die Befehlsabbildung des Mikroprozessors,
bei der der Operanden-Adressiermodus und die Operation orthogonal sind, bei der Einheit
eines Bytes ausgeführt, so daß die Codewirksamkeit hoch ist. Da es nicht erforderlich ist,
für jedes Feld des Befehlscodes einen Befehlsdecodierer vorzusehen, kann der
Schaltungsumfang verringert sein. Durch internes Halten eines Teils des Befehlscodes können die
Größe des Mikroprogramms und auch der Umfang der Schaltung verringert werden.
KURZBESCHREIBUNG DER ZEICHNUNG
-
Fig. 1 ist ein Blockdiagramm einer Ausführungsform der vorliegenden Erfindung,
-
Fig. 2 zeigt ein Format eines Befehlscodes,
-
in Fig. 3 und 4 sind Bitkonligurationen des Befehlscodes dargestellt,
-
Fig. 5 stellt ein Abbildungsverfahren des Befehlscodes dar,
-
Fig. 6, 7 und 8 ist eine Abbildung des Befehlscodes gezeigt,
-
Fig. 9 zeigt ein Blockdiagramm einer Befehlsdecodiererlogik,
-
Fig. 10 zeigt ein Mikroprogrammformat zum Steuern eines Befehlsdecodierers,
-
in Fig. 11 ist eine Abbildung einer indirekten Operationsangabe dargestellt, und
-
Fig. 12 veranschaulicht ein Blockdiagramm einer Registersteuerlogik.
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Eine Ausführungsform der vorliegenden Erfindung wird nun mit Bezug auf Fig. 1
beschrieben. Bei der vorliegenden Ausführungsform befinden sich ein Mikroprozessor und
ein Teil eines Speichers in einem Ein-Chip-Mikroprozessor. Ein in den Mikroprozessor
eingebauter Speicher 9 ist mit dem 16 Bit breiten Mikroprozessor verbunden, der 8 Bit breite
Datenbusse 16 und 17 enthält. Eine Adresse wird über einen Adreßbus 15 vom
Mikroprozessor
geliefert, und Daten werden über die Datenbusse 16 und 17 gelesen oder
geschrieben. Wenn der Mikroprozessor mit einer sich außerhalb des Chips befindenden Vorrichtung,
wie einem Speicher, Daten austauscht, verwendet er einen Datenbus H 17 höherer Ordnung
des internen 16 Bit breiten Datenbusses. Von den über den Datenbus zugeführten Daten
wird der Befehlscode über Vorabbefehlsregister 18 und 19, in denen der vorab abgerufene
Befehlscode gespeichert ist, zu einem Befehlsregister 10 übertragen. Andererseits werden
die zu bearbeitenden Daten einer Operationsschaltung 4 zugeführt.
-
Der Befehlscode wird vom Befehlsregister 10 einem Befehlsdecodierer 1 sowie
indirekten Registem 11, 12, 13 und 14, die während der Ausführung des Befehls Teile des
Befehlscodes halten, zugeführt. Der Befehlsdecodierer 1 erzeugt eine Adresse des
Mikroprogramms und führt sie einem Mikroprogrammspeicher 5 zu, der mehrere den
Eingabeadressen entsprechende Mikroprogramme parallel ausgibt. Das auszuführende Mikroprogramm
wird durch eine Verzweigungssteuerlogik 7 angegeben, die eine Verzweigungsbedingung
und ein Operationsergebnis empfängt, um ein Auswahlsignal für das Mikroprogramm zu
erzeugen.
-
Ein Teil des ausgewählten Mikroprogramms wird einer ALU-Steuerlogik 2, einer
Registersteuerlogik 3 und einer Steuerlogik 8 zugeführt, die eine Einlausgabe-Steuerlogik
und eine Vorabbefehlsschaltung enthält, und sie erzeugen interne Steuersignale. Die ALU-
Steuerlogik 2 erzeugt ein Steuersignal zur Angabe einer durch eine ALU 400, die eine
Rechenoperation in der Operationsschaltung 4 ausführt, ausgeführten Operation und überprüft
ein Null- und ein Überlauf-Hinweiszeichen, die von der ALU 400 zugeführt wurden, und
liefert Verzweigungsinformationen an die Verzweigungssteuerlogik 7. Die
Registersteuerlogik 3 erzeugt ein Operationssteuersignal für die Register 401 in der Operationsschaltung
4. Die Operationsschaltung 4 bearbeitet die durch den Befehlscode angegebenen Daten in
Übereinstimmung mit dem Mikroprogramm.
-
In Fig. 2 ist ein Beispiel eines Formats eines durch die Datenbusse 16 und 17 im
Befehlsregister festgelegten Befehlscodesatzes dargestellt. Das dargestellte Befehlsformat gilt
für den Befehl, bei dem der Operanden-Adressiermodus und die Operation orthogonal sind.
Der Operanden-Adressiermodus ist durch das erste Byte 50 des Befehlscodes angegeben.
Daten, wie eine bei der Operation verwendete Verschiebung, sind byteweise als ein
Erweiterungsfeld 51 hinzugefügt. Die Operation ist durch das letzte Byte 52 angegeben. Der den
Operanden-Adressiermodus angebende Ein-Byte-Befehlscode und der die Operation
angebende Ein-Byte-Befehlscode haben ein gemeinsames Format. Die Formate sind in den
Figuren 3 und 4 dargestellt. Beim Befehlscode mit dem in Fig. 3 dargestellten Format geben die
ersten 4 Bits den Operanden-Adressiermodus oder die Operation an. Das nächste Bit wird
als Abschnitt zur Angabe einer Operandengröße oder der Operation verwendet. Die letzten
drei Bits geben die Registernummer von einem von 8 Registern 401 für allgemeine Zwecke
an. Der Befehlscode mit dem in Fig. 4 dargestellten Format wird verwendet, wenn es keine
Registerangabe gibt. Acht Bits werden verwendet, um den Operanden-Adressiermodus oder
die Operation anzugeben.
-
Die in Fig. 3 und 4 dargestellten 8-Bit-Befehlscodes sind in ein in Fig. 5 dargestelltes
Codierschema abgebildet, bei dem die Ordinate die 4 oberen Bits des 8-Bit-Codes im
Hexadezimalsystem repräsentiert und die Abszisse die 4 unteren Bits im Hexadezimalsystem
repräsentiert. Beispielsweise ist ein bei 53 abgebildeter Befehlscode im Binärsystem
"00010100" ("14" im Hexadezimalsystem). Ein bei 54 abgebildeter Befehlscode ist im
Binärsystem 10110*** (wobei * 0 oder 1 ist). Der bei 55 abegebildete Befehlscode weist das in
Fig. 4 dargestellte Befehlsformat auf, und der bei 56 abgebildete Befehlscode weist das in
Fig. 3 dargestellte Befehlsformat auf
-
Wie oben beschrieben wurde, sind der den Operanden-Adressiermodus angebende
und der die Operation angebende 8-Bit-Befehlscode in dem in Fig. 5 dargestellte
Codeschema abgebildet, sie sind jedoch völlig verschiedene Codeabbildungen. Der die Operation
angebende 8-Bit-Befehlscode kann die gleiche enthalten wie der den
Operanden-Adressiermodus angebende 8-Bit-Befehlscode. Die Codeabbildungen der Befehlscodes sind in den
Figuren 6, 7 und 8 dargestellt.
-
In Fig. 6 ist eine den Operanden-Adressiermodus angebende
8-Bit-Befehlscodeabbildung dargestellt. Beispielsweise ist der Befehlscode, der im Binärsystem "11100***"
aufweist (die vier oberen Bits sind im Hexadezimalsystem E) als (disp 8. Rn) (Byte)
dargestellt. Er bedeutet, daß die Daten im Speicher, die sich bei einer Adresse befinden, die
gleich der Summe des Inhalts des durch die drei Bits "***" angegebenen Registers ist, und
die acht Bits des Erweiterungsfeldes (51 in Fig. 2), die dem 8-Bit-Befehlscode folgen (als
Verschiebung bezeichnet) für die Operation verwendet werden. Das in Fig. 6 dargestellte
Adressierverfahren ist eines, das in Mikroprozessor-Handbüchem standardmäßig verwendet
wird. Bei der Codeabbildung werden auch Befehle abgebildet, die keine Operanden
benötigen, wie beispielsweise ein bedingter Verzweigungsbefehl (Bcc, der an den 4 oberen Bits
"2" oder "3" im Hexadezimalsystem aufweist). Beim in Fig. 2 dargestellten Befehlsformat,
bei dem die Angabe des Adressiermodus und die der Operation orthogonal sind, ist der
Befehlscode lang. Auf diese Weise wird bei einer häufig verwendeten Vergleichsoperation
(COMP, die "4" im Hexadezimalsystem in den vier oberen Bits aufweist) eine spezielle
Kurzform des Befehlscodes verwendet, die den Adressiermodus und die Operation nur
durch den Befehlscode mit einer Länge von 8 Bits gleichzeitig angeben kann, wie es beim
Befehlssatz des herkömmlichen 8-Bit-Mikroprozessors der Fall ist.
-
In den Figuren 7 und 8 sind Befehlscodes dargestellt, die die Operation angeben.
Der Befehl, der nur mit dem durch den Befehlscode aus Fig. 6 bezeichneten Operanden
verwendet wird, beispielsweise ein Konstanten-Addierbefehl (08, 09, 0C und 0D im
Hexadezimalsystem)
befindet sich im in Fig. 4 dargestellten Befehlscodeformat. Andererseits befindet
sich die Rechenoperation, die Operanden benötigt, beispielsweise eine Addition (ADD, die
"2" im Hexadezimalsystem in den vier oberen Bits aufweist) oder eine Subtraktion (SUB,
die "3" im Hexadezimalsystem in den vier oberen Bits aufweist) im in Fig. 3 dargestellten
Befehlscodeformat.
-
Der Befehlsdecodierer 1 erzeugt eine Adresse eines nachfolgend abzurufenden
Mikroprogramms. Sie kann durch Decodieren des Befehlscodes oder durch Angeben der
nächsten Adresse im Mikroprogramm erzeugt werden. Eine Konfiguration des
Befehlsdecodierers list in Fig. 9 dargestellt, und ein Format des dem Befehlsdecodierer 1 zugeführten
Mikroprogramms ist in Fig. 10 dargestellt. Der 8-Bit-Befehlscode 103 wird einer Logik 100
zugeführt, die die 8-Bit-Daten in 6-Bit-Daten komprimiert. Die 6-Bit-Daten werden mit
dem in Fig. 10 dargestellten Decodiermodusbit kombiniert, so daß sie als Startadresse 105
der Unterroutine des Mikroprogramms verwendet werden. Wenn die nächste Mikroadresse
direkt durch das Mikroprogramm (106 in Fig. 9) anzugeben ist, wird das in Fig. 10
dargestellte Mikroprogrammformat, dessen Startbit "0" ist, angegeben. Falls das Startbit "1" ist,
wird die Startadresse 105 der Unterroutine über den Wähler 102 vom Befehlsdecodierer 1
an den Mikroprogrammspeicher 5 übergeben. Ein Steuersignal für den Wähler 102 wird
unter Bezugnahme auf das Startbit des in Fig. 10 dargestellten Mikroprogrammformats durch
die Auswahlsteuerlogik 101 erzeugt.
-
Um die Befehle der Reihe nach auf der Mikroprogrammebene auszuführen, wird das
Startbit des in Fig. 10 dargestellten Mikroprogramms im letzten Schritt der
Mikroprogramm-Unterroutine auf "1" gesetzt und die Startadresse der nächsten Mikroprogramm-
Unterroutine erzeugt. Daraufhin wird die Adresse des nächsten Mikroprogramms in dem
Mikroprogramm so angegeben, daß die Sequenz fortgesetzt wird.
-
Wie oben beschrieben wurde, wird die Startadresse 105 der
Mikroprogramm-Unterroutine durch Kombinieren der durch Komprimieren aus dem 8-Bit-Befehlscode 103
erzeugten 6-Bit-Daten mit dem Decodiermodus-Hinweiszeichen im Mikroprogramm erzeugt.
Da der 8-Bit-Befehlscode das in Fig. 5 dargestellte Codeschema aufweist, müssen 32 bei 55
in Fig. 5 abgebildete Befehle und 28 bei 56 abgebildete Befehle, also insgesamt 60 Befehle
im Codeschema unterschieden werden. Die 60 Befehle sind in 6-Bit-Informationen codiert.
Es gibt mehrere Befehlscodeabbildungen, wie in den Figuren 6 bis 8 dargestellt ist. Die
Codeabbildungen werden durch ein Decodierrnodus-Iiinweiszeichen (Fig. 10) im
Mikroprogramm unterschieden. Da der nachfolgend auszuführende Prozeß im Mikroprozessor
bekannt ist, wird er angegeben. Beispielsweise wird die Unterroutine des Mikroprogramms
der Operandenadressierung des nächsten Befehls unter Verwendung der
Befehlscodeabbildung aus Fig. 6 im letzten Mikroprogramm für die Ausführung eines Befehls in den Figuren
6 bis 8 aufgerufen. Am Ende der Unterroutine wird die Befehlscodeabbildung angegeben,
die die in den Figuren 7 oder 8 dargestellte Operation angibt. Die Befehlscodeabbildung
wird ebenfalls durch die codierte Decodiermodusinformation angegeben. Da die Befehle auf
diese Weise decodiert werden, ist es nicht erforderlich, die Befehle in eine bestimmte Anzahl
von Feldern aufzuteilen und getrennte Decodierer vorzusehen, wie es bei
Befehlsdecodierem aus dem Stand der Technik geschieht.
-
Wenn ein Bit höherer Ordnung beim in Fig. 10 dargestellten Mikroprograminformat
"1" ist, werden die 6 unteren Bits verwendet, um die indirekten Register 11, 12, 13 und 14
zu steuern. Die Funktionen der indirekten Register bestehen (1) darin, die Anzahl der
Mikroschritte durch ein gemeinsames Mikroprogramms zu verringern und (2) Daten zwischen
Mikroprogramm-Unterroutinen auszutauschen. Der Inhalt der indirekten Register kann bei
jeder Unterbrechung der Mikro-Unterroutinen oder Befehle aktualisiert werden, und das
Aktualisieren wird durch die oben beschriebene 6-Bit-Information angefordert. Die 6-Bit-
Information wird zur Steuerlogik 6 des indirekten Registers übertragen, wo sie in ein
Eingangssteuersignal des indirekten Registers umgewandelt wird. Die Ausgangsinformation des
indirekten Registers wird nicht gesteuert, und die Eingangsinformation wird unverändert
ausgegeben.
-
Im indirekten Register 11 ist eine durch den Befehlscode angegebene
Verzweigungsbedingung gespeichert. Die Verzweigungsbedingung wird zur
Verzweigungssteuerlogik 7 übertragen. Wie in Zusammenhang mit der Arbeitsweise der Verzweigungssteuerlogik
7 beschrieben wurde, wird das Signal, das die Verzweigung des Mikroprogramms steuert,
unter Verwendung der Verzweigungsbedingung und des Operationsergebnisses erzeugt. Da
die Verzweigungsbedingung direkt zur Verzweigungssteuerlogik 7 übertragen wird, braucht
das Mikroprogramm nur in Übereinstimmung mit der Verzweigungsbedingung eine
Verzweigungsanweisung zu geben, und es ist nicht erforderlich, für jede
Verzweigungsbedingung des Befehlscodes ein anderes Mikroprogramm vorzubereiten.
-
Das Befehlsregister 12 wird verwendet, um die Operation der ALU in
Übereinstimmung mit der in Fig. 11 dargestellten Codeklassifizierung anzugeben. Das Mikroprogramm
kann die Operation der ALU, wie eine Addition oder eine Subtraktion, entweder direkt
angeben oder die in Fig. 11 dargestellte Operation indirekt angeben, welche durch das
indirekte Register 12 angegeben wird. Falls die 4 oberen Bits des Befehlscodes im
Hexadezimalsystem beispielsweise "3" sind, ist die indirekte Angabe der Operation eine Subtraktion
(SUB). Wenn die Operation der ALU durch das Mikroprogramm direkt angegeben wird,
wird die indirekte Angabe der Operation nicht berücksichtigt und die durch das
Mikroprogramm angegebene Operation ausgeführt. Wenn das Mikroprogramm die Anweisung gibt,
die indirekte Operation auszuführen, führt die ALU die Subtraktion aus. Daher wird nur
dann die der Codeklassifizierung aus Fig. 11 entsprechende Operation ausgeführt, wenn das
Mikroprogramm die Anweisung gibt, die indirekte Operation auszuführen.
-
Die indirekten Operationen, die durch die Codeklassifizierung aus Fig. 11 angegeben
werden können, entsprechen der in den Figuren 7 und 8 dargestellten Abbildung der
Befehlscodes der Operationsangabe. Auf diese Weise werden die Mikroprogramme für die
Rechenoperationen, die bei der Regelung der Datenübertragung gleich und bei der ALU-
Operation unterschiedlich sind, unter Verwendung der indirekten Angabe der Operation
vorbereitet, so daß sie eine gemeinsame Unterroutine benutzen können. Es ist
dementsprechend nicht erforderlich, für jede Rechenoperation des Befehlscodes ein anderes
Mikroprogramm vorzubereiten.
-
Die indirekten Register 13 und 14 werden als Ein/Ausgangs-Angabeinformation für
die acht Register 40 verwendet. Der Befehlscode des auszuführenden Befehls weist ein in
Fig. 2 dargestelltes Format auf, und er wird byteweise sequentiell zugeführt. Auf diese
Weise geht die Angabeinformation für das durch den Befehlscode im Adressiermodus
angegebene Register ohne das indirekte Register in der Unterroutine der Operation
verloren. Um dies zu verhindern, wird das indirekte Register zum Halten der Information
verwendet. Das Mikroprogramm kann das Register entweder direkt angeben oder es in
Übereinstimmung mit der Information in den indirekten Registern 13 und 14 angeben. Eine
Konfiguration der Registersteuerschaltung 3, die das Steuersignal für die Register-Ein/Ausgabe
erzeugt, ist in Fig. 12 dargestellt. Die Ausgangssignale 303 und 304 von den indirekten
Registern 13 und 14 werden durch 3-Bit-Decodierer 300 und 301 decodiert, die auf die
indirekt anzugebenden Register hinweisen. Die Angabeinformation und die Information 302 des
Mikroprogramins werden durch eine Registerangabelogik 302 verarbeitet, um ein Signal
zum Steuern der Ein/Ausgabe-Operation des Registers 40 zu erzeugen.
-
Da der Befehlscode im Mikroprozessor der vorliegenden Erfindung byteweise
verarbeitet wird, kann der Befehl Byte für Byte abgerufen werden. Der Operationszyklus im
LSI ist jedoch kürzer als der Speicherzugriffszyklus. Wegen der Einschränküng hinsichtlich
der Anzahl der Anschlußstifte des LSI-Gehauses ist eine paralleler Datenaustausch nüt einer
großen Busbreite mit außerhalb des LSI liegenden Einrichtungen schwer zu erreichen, die
Busbreite kann jedoch durch einen feinen Herstellungsprozeß relativ leicht innerhalb des
LSI vergrößert werden. Hierdurch kann beim Datenaustausch zwischen dem Speicher und
dem Mikroprozessor innerhalb des LSI der 16 Bit breite Datenbus verwendet werden, und
er weist daher eine hohe Geschwindigkeit auf Von den zu einer Zeit abgerufenen 16 Bits
des Befehlscodes werden die 8 oberen Bits zuerst verwendet. Wenn der Datenaustausch mit
der außerhalb der LSI liegenden Einrichtung mit einer Breite von 8 Bits vorgenommen
wird, ist es im Hinblick auf die Steuerung und die Reihenfolge der Verwendung des
Befehlscodes vorteilhaft, den Datenbus 17 höherer Ordnung für die 8 Bits zu verwenden. Das
Anpassen der Bitpositionen beim externen Abrufen eines Operanden (von Daten) kann
durch die Ein/Ausgabe-Schaltung 402 der Operationsschaltung vorgenommen werden.