DE3856139T2 - Mikroprozessor - Google Patents

Mikroprozessor

Info

Publication number
DE3856139T2
DE3856139T2 DE3856139T DE3856139T DE3856139T2 DE 3856139 T2 DE3856139 T2 DE 3856139T2 DE 3856139 T DE3856139 T DE 3856139T DE 3856139 T DE3856139 T DE 3856139T DE 3856139 T2 DE3856139 T2 DE 3856139T2
Authority
DE
Germany
Prior art keywords
instruction
bits
microprogram
code
instruction code
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
DE3856139T
Other languages
English (en)
Other versions
DE3856139D1 (de
Inventor
Shiro Baba
Yoshimune Hagiwara
Shigeki Masumura
Hideo Nakamura
Kouki Noguchi
Fumio Tsuchiya
Takashi Tsukamoto
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.)
Hitachi ULSI Engineering Corp
Hitachi Microcomputer System Ltd
Hitachi Ltd
Original Assignee
Hitachi ULSI Engineering Corp
Hitachi Microcomputer System Ltd
Hitachi 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
Application filed by Hitachi ULSI Engineering Corp, Hitachi Microcomputer System Ltd, Hitachi Ltd filed Critical Hitachi ULSI Engineering Corp
Publication of DE3856139D1 publication Critical patent/DE3856139D1/de
Application granted granted Critical
Publication of DE3856139T2 publication Critical patent/DE3856139T2/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/22Microcontrol or microprogram arrangements
    • 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/3017Runtime instruction translation, e.g. macros
    • G06F9/30178Runtime instruction translation, e.g. macros of compressed or encrypted instructions
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/261Microinstruction address formation
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30156Special purpose encoding of instructions, e.g. Gray coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Description

    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.

Claims (4)

1. Mikroprogrammgesteuerter Mikroprozessor mit einem Befehlssatz, bei dem ein Operanden-Adressiermodus und der Operationstyp für einen Operand unabhängig voneinander in einem Befehl enthalten sind, wobei der Operanden-Adressiermodus von einer vorbestimmten Anzahl von ersten Bits (50) des Befehlscodes und der Operationstyp von einer vorbestimmten Anzahl von gegenüber den ersten Bits unterschiedlichen zweiten Bits (52) des Befehlscodes angegeben werden, dadurch gekennzeichnet,
daß das Codierschema für die den Operanden-Adressiermodus angebenden ersten Bits (50) der gleiche ist wie für die den Operationstyp angebenden zweiten Bits (52), und
daß die Befehls-Codelänge um Einheiten derselben vorbestimmten Anzahl von Bits erweiterbar ist.
2. Mikroprozessor nach Anspruch 1, wobei zu dem Befehlssatz ein Befehl gehört, der es gestattet, sämtliche Funktionen des Befehls mit den besagten ersten Bits anzugeben. (Figur 3)
3. Mikroprozessor nach Anspruch 1 oder 2, mit
einer kombinatorischen Logikschaltung (100) zum Empfang eines Befehlscodes (103) mit der vorbestimmten Anzahl von Bits und zum Erzeugen eines Ausgangssignals mit einer geringeren Anzahl von Bits, und
einer Einrichtung (102) zur Erzeugung einer Mikroprogramm-Adresse aufgrund des Ausgangssignals der kombinatorischen Logikschaltung und mindestens eines Teils der Bitinformation (106) des Mikroprogramms.
4. Mikroprozessor nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die vorbestimmte Anzahl von Bits 8 ist.
DE3856139T 1987-11-04 1988-11-02 Mikroprozessor Expired - Fee Related DE3856139T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62277410A JP2635057B2 (ja) 1987-11-04 1987-11-04 マイクロプロセッサ

Publications (2)

Publication Number Publication Date
DE3856139D1 DE3856139D1 (de) 1998-04-09
DE3856139T2 true DE3856139T2 (de) 1998-11-05

Family

ID=17583158

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3856139T Expired - Fee Related DE3856139T2 (de) 1987-11-04 1988-11-02 Mikroprozessor

Country Status (5)

Country Link
US (1) US5117488A (de)
EP (1) EP0315139B1 (de)
JP (1) JP2635057B2 (de)
KR (1) KR970004473B1 (de)
DE (1) DE3856139T2 (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2835103B2 (ja) * 1989-11-01 1998-12-14 富士通株式会社 命令指定方法及び命令実行方式
JPH04156613A (ja) * 1990-10-20 1992-05-29 Fujitsu Ltd 命令バッファ装置
SG52380A1 (en) 1991-09-23 1998-09-28 Intel Corp A computer system and method for executing interrupt instructions in two operating modes
DE69326066T2 (de) * 1992-03-25 2000-03-30 Zilog, Inc. Schnelle befehlsdekodierung in einem pipeline-prozessor
US5542058A (en) * 1992-07-06 1996-07-30 Digital Equipment Corporation Pipelined computer with operand context queue to simplify context-dependent execution flow
JP3339132B2 (ja) * 1993-09-14 2002-10-28 ソニー株式会社 中央処理装置
JP3711422B2 (ja) * 1995-12-20 2005-11-02 セイコーエプソン株式会社 情報処理回路
US5905893A (en) * 1996-06-10 1999-05-18 Lsi Logic Corporation Microprocessor adapted for executing both a non-compressed fixed length instruction set and a compressed variable length instruction set
JP3658101B2 (ja) 1996-09-13 2005-06-08 株式会社ルネサステクノロジ データ処理装置
JP3781519B2 (ja) * 1997-08-20 2006-05-31 富士通株式会社 プロセッサの命令制御機構
US6182202B1 (en) * 1997-10-31 2001-01-30 Oracle Corporation Generating computer instructions having operand offset length fields for defining the length of variable length operand offsets
US6012138A (en) * 1997-12-19 2000-01-04 Lsi Logic Corporation Dynamically variable length CPU pipeline for efficiently executing two instruction sets
US6237078B1 (en) * 1998-08-21 2001-05-22 Advanced Micro Devices, Inc. Code segment default operation determination
US6708268B1 (en) * 1999-03-26 2004-03-16 Microchip Technology Incorporated Microcontroller instruction set
KR100308211B1 (ko) 1999-03-27 2001-10-29 윤종용 압축 명령을 갖는 마이크로 컴퓨터 시스템
US6633969B1 (en) 2000-08-11 2003-10-14 Lsi Logic Corporation Instruction translation system and method achieving single-cycle translation of variable-length MIPS16 instructions
CN117118570B (zh) * 2023-09-06 2024-04-02 上海交通大学 有限位数的最大码距遥控指令码生成系统及方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4087857A (en) * 1976-10-04 1978-05-02 Honeywell Information Systems Inc. ROM-initializing apparatus
JPS6029126B2 (ja) * 1977-01-14 1985-07-09 株式会社日立製作所 デ−タ処理装置
US4162480A (en) * 1977-01-28 1979-07-24 Cyclotomics, Inc. Galois field computer
GB2077010B (en) * 1980-06-02 1984-10-31 Hitachi Ltd Microprogramme control method and apparatus therefor
US4432052A (en) * 1981-04-13 1984-02-14 Texas Instruments Incorporated Microcomputer device using dispatch addressing of control ROM
US4797808A (en) * 1981-06-22 1989-01-10 Texas Instruments Incorporated Microcomputer with self-test of macrocode
JPS58146941A (ja) * 1982-02-26 1983-09-01 Hitachi Ltd マイクロプログラム制御デ−タ処理装置

Also Published As

Publication number Publication date
EP0315139A3 (de) 1991-03-20
EP0315139B1 (de) 1998-03-04
JP2635057B2 (ja) 1997-07-30
JPH01119828A (ja) 1989-05-11
KR970004473B1 (ko) 1997-03-28
US5117488A (en) 1992-05-26
EP0315139A2 (de) 1989-05-10
DE3856139D1 (de) 1998-04-09
KR900006853A (ko) 1990-05-09

Similar Documents

Publication Publication Date Title
DE3688824T2 (de) Datenverarbeitungssystem.
DE3856139T2 (de) Mikroprozessor
DE3750935T2 (de) Verfahren und System zum Erleichtern der Befehlsausführung in einem digitalen Rechner.
DE2846117C2 (de) Datenprozessor
DE69124437T2 (de) Verfahren und Vorrichtung zum Umkehren von Byteordnung in einem Rechner
DE69433026T2 (de) Verfahren und Vorrichtung zum Datenverarbeiten mit mehreren Statusbitgruppen
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE2524046C2 (de) Elektronische Datenverarbeitungsanlage
DE2540975A1 (de) Multi-mikro-prozessor-einheit
DE2505384A1 (de) Steuerteil fuer eine elektronische datenverarbeitungsanlage
DE2714805A1 (de) Datenverarbeitungssystem
DE3121742C2 (de) Mikroprogramm-Steuereinrichtung
DE2718110A1 (de) Datenverarbeitungseinheit
DE69732793T2 (de) Acht-bit-mikrokontroller mit risc-architektur
DE3854853T2 (de) Datenprozessor mit erweiterten Operationsfunktionen
DE69231237T2 (de) Datenverarbeitungsvorrichtung
DE69804562T2 (de) Prozessarchitektur und Verfahren zur Durchführung von verschiedenen Adressierungsarten
DE69315192T2 (de) Datenverarbeitungssystem und -Verfahren mit einem erweitbaren Register
DE68925376T2 (de) In Direktabbildung und in Bankabbildung wirksamer Informationsprozessor und Verfahren zum Schalten der Abbildungsschemas
DE2951040C2 (de)
DE2458286A1 (de) Datenverarbeitungssystem zum verschieben von datenfeldern mit verschiedenen strukturen
DE69229424T2 (de) Adressengeneration in einer Datenverarbeitungseinheit
DE69807412T2 (de) Prozessorarchitekturschema und Befehlssatz zur Maximierung verfügbarer Opcodes und zum Einsetzen verschiedener Adressierungsmodi
DE69503010T2 (de) Mikroprozessor zur Ausführung von Befehlen,von denen ein Teil des Operandfelds als Operationscode zu gebrauchen ist
DE68928041T2 (de) Mikroprogrammgesteuerter Mikroprozessor mit Zeiger-Register und Zugriffsverfahren dafür

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee