Hintergrund der Erfindung
-
Die vorliegende Erfindung betrifft einen Mikroprozessor und
insbesondere eine Verbesserung bei einer
Befehlsdekodereinheit in einem Pipeline-Mikroprozessor.
-
Ein Pipeline-Mikroprozessor ist grundlegend aus sechs
Baueinheiten aufgebaut:
-
einer Bussteuereinheit BCU zum Initiieren eines Buszyklus,
um einen Befehlsabrufvorgang und einen Operanddatenlese-
/Einschreibvorgang durchzuführen, einer
Befehlsvorabeinleseeinheit PFU für das Anfordern eines
Befehlsabruf-Buszyklus an der BCU, um Befehle vorab abzurufen, einer
Befehlsdekodereinheit IDU zum Dekodieren des Befehls von der PFU
und Erzeugen der Datenverarbeitungsinformation, die für die
Befehlsausführung notwendig ist, und der
Operandzugriffsinformation, die fur einen Operanddatenzugriff notwendig ist,
einer effektiven Adressgeneratoreinheit EAG zum Berechnen
einer effektiven Adresse in Abhängigkeit von der
Operandzugriffsinformation, einer Speicherverwaltungseinheit MMU zum
Übersetzen der effektiven Adresse in eine reale Adresse und
zum Anfordern eines Operanddatenzugriffs an der BCU und
eine Befehlsdurchführungseinheit EXU zum Durchführen eines
Befehis in Abhängigkeit von der
Datenverarbeitungsinformation von der IDU. Diese Einheiten arbeiten parallel in
einer vorbestimmten Verarbeitungsweise nach Art einer
Pipeline.
-
In letzter Zeit ist ein Mikroprozessor gefordert worden,
der die Softwareprogrammierung erleichtert. Zu diesem Zweck
ist eine Abundanz der Befehlsformate vorbereitet worden und
darüberhinaus ist unterstützt worden, daß ein unabhängiger
Adressiermodus für die entsprechenden Operanden bestimmt
werden kann. Auch im Adressiermodus sind reichlich
Adressiermodi vorbereitet, wie beispielsweise Direkt-/Indirekt-
Modi, Distanzmodi, Indexmodi usw.
-
Die Unterstützung der abundanten Befehlsformate und
Adressiermodi verursacht jedoch eine verlängerte Dekodierzeit.
Besonders dekodiert die IDU einen auszuführenden Befehl und
erzeugt die Datenverarbeitungsinformation und die
Operandzugriffsinformation in Übereinstimmung mit der
Dekodiersequenz, die durch das Format und den Operandadressiermodus
des Befehls bestimmt ist. Daher verlängert das Unterstützen
vieler Befehlsformate und Operandadressiermodi eine Zeit
zum Dekodieren und Detektieren des Formats und des
Operandadressiermodus eines auszuführenden Befehls, um die
Dekodierseguenz zu bestimmen. Das Erzeugen der
Datenverarbeitungsinformation und der Operandzugriffsinformation wird
dadurch verzögert, wodurch der Pipelineverarbeitungsvorgang
gestört wird. Die Arbeitseffizienz des Mikroprozessors wird
dadurch gesenkt.
-
Ein Mikroprozessor, der dadurch gekennzeichnet ist, daß ein
Befehlsdekodiervorgang durch eine Vordekodereinheit und
eine Hauptdekodereinheit durchgeführt wird, die nach Art
einer Pipeline arbeiten, indem zwischen diese beiden
Einheiten ein Puffer zum zeitweiligen Speichern der
Information von der Vordekodereinheit angeordnet ist, ist in der
EP-A-0336091 (Artikel 56 (3)) offenbart.
-
Aufgabe der vorliegenden Erfindung ist es, einen
Mikroprozessor zu schaffen, der abundante Befehlsformate und
Operandadressiermodi
ohne Senkung der
Befehlsdekodiergeschwindigkeit unterstützt.
-
Diese Aufgabe wird gelöst durch den Mikroprozessor wie im
anhängenen Anspruch definiert.
-
Die Vordekodereinheit des beanspruchten Mikroprozessors hat
einen ersten und zweiten Vordekoder, die jeweils ein
Operationscode-(im Nachfolgenden OP-Code bezeichnet)-Feld und
ein Adressierfeld eines auszuführenden Befehls empfangen.
Der erste Vordekoder dekodiert das OP-Codefeld vor und
erzeugt eine OP-Codeinformation, die für die Anzahl der Bytes
des OP-Codefeldes und die Anzahl der zu verarbeitenden
Operanden repräsentativ ist. Der zweite Vordekoder dekodiert
das Adressierfeld vor und erzeugt die
Adressiermodusinformation, die für die Anzahl der Bytes des Operanden und des
Adressiermodus, der dem Operand zugeordnet ist,
repräsentativ ist. Die OP-Codeinformation und die
Adressiermodusinformation werden zeitweilig im Puffer gespeichert. Der
Puffer speichert auch die OP-Code- und Adressierfelder des
Befehls und speichert weiter Distanzdaten und unmittelbare
Daten des Befehls. Die Hauptdekodereinheit bestimmt die
auszuführende Dekodiersequenz in Abhängigkeit von der OP-
Codeinformation und der Adressiermodusinformation vom
Puffer, und führt den Dekodiervorgang an anderer Information
vom Puffer aus, um die Datenverarbeitungsinformation und
die Operandzugriffsoperation in Übereinstimmung mit der
bestimmten Dekodiersequenz zu erzeugen. Während des
Dekodiervorgangs der Hauptdekodereinheit führt die
Vordekodereinheit den Dekodiervorgang eines zweiten Operanden oder eines
als nächstes auszuführenden Befehls aus.
-
Das heißt, die vorliegende Erfindung basiert auf der
Entdeckung, daß der Dekodiervorgang eines Befehls im
allgemeinen aus einem ersten Vorgang des Detektierens des Formats
und des Operandadressiermodus des Befehls und einem zweiten
Vorgang des Erzeugens dekodierter Befehlsinformation in
Abhängigkeit von der Dekodiersequenz, die durch das
detektierte Ergebnis des ersten Schrittes bestimmt ist, besteht,
und somit die ersten und zweiten Schritte der
Vordekodereinheit bzw. der Hauptdekodereinheit zuordnet, die nach Art
einer Pipeline arbeiten. Demgemäß wird der erste Vorgang
parallel zum zweiten Vorgang durchgeführt, so daß die
Betriebszeit der Vordekodereinheit durch die Betriebszeit der
Hauptdekodereinheit außer Betracht kommt. Der
Pipeline-Verarbeitungsvorgang des Mikroprozessors insgesamt ist somit
kaum gestört, wodurch seine Programmarbeitseffizienz
verbessert wird.
Kurze Beschreibung der Figuren
-
Die vorstehenden und andere Aufgaben, Vorteile und Merkmale
der vorliegenden Erfindung gehen aus der folgenden
Beschreibung anhand der begleitenden Figuren hervor, in
welchen zeigt:
-
Fig. 1 ein Blockschaltbild, das eine Ausführungsform der
vorliegenden Erfindung repräsentiert;
-
Fig. 2 ein Blockschaltbild, das den Aufbau der in der Fig.
1 gezeigten PFU, PDU, BUF und MDU zeigt;
-
Fig. 3 einen Zeitablaufplan zur Erläuterung des Betriebes
der in der Fig. 2 gezeigten Schaltung;
-
Fig. 4 ein Blockschaltbild, das die PFU gemäß einer anderen
Ausführungsform der vorliegenden Erfindung repräsentiert;
-
Fig. 5 ein Zeitablaufplan zur Erläuterung des Betriebes der
in der Fig. 4 gezeigten Schaltung und
-
Fig. 6A und 6B Formatdiagramme, die zwei Beispiele von
Befehlen anzeigen.
Detaillierte Beschreibung der Ausführungsformen
-
In Fig. 1 hat ein Mikroprozessor 100 gemäß einer
Ausführungsform der vorliegenden Erfindung eine Bussteuereinheit
(BCU), 110, die einen Buszyklus auf einem Systembus 190
initiiert, der mit einem Speicher und peripheren
Eingangs/Ausgangs-Einheiten (nicht dargestellt) verbunden ist, und
Befehle aufruft und Operanddaten liest und einschreibt.
Eine Befehls-Vorabeinleseeinheit PFU 120 hat einen
Vorabeinlese-Adressenverweis (nicht dargestellt) und gibt eine
Befehls-Vorabeinleseanfrage, die den Inhalt dieses
Adressenverweises enthält, über einen Bus 1201 an die BCU 110.
Die vorab eingelesenen Befehle von der BCU 110 werden über
einen Befehlsbus 1101 auf die PFU 120 übertragen und
zeitweilig in dieser gespeichert. Die PFU 120 richtet den OP-
Code und den oder die Operanden des vorab eingelesenen
Befehls aus und gibt diese auf einen Bus 1202 aus. Die
Information auf dem Bus 1202 wird einer Vordekodereinheit PDU
130, die gemäß der vorliegenden Erfindung vorgesehen ist,
zugeführt. Die PDU 130 dekodiert den OP-Code vor und
erzeugt die OP-Code-Information, die die Byte-Länge des OP-
Codes anzeigt, und die Anzahl der Operanden, die zu
verarbeiten sind. Darüberhinaus dekodiert die PDU 130 den oder
die Operanden vor und erzeugt die
Adressiermodusinformation, die die Bytelänge des Operanden und einen
bezeichneten Adressiermodus anzeigt. Die OP-Codeinformation und die
Adressiermodusinformation werden auf einen Bus 1302
übertragen und zeitweilig in einem Puffer BFF 140 zusammen mit
anderer Information auf dem Bus 1202 gespeichert. Die
Inhalte des BFF 140 werden über einen Bus 1401 einer
Hauptdekodereinheit MDU 150 zugeführt. Die MDU 150 bestimmt die
Dekodierseguenz in Abhängigkeit von der OP-Codeinformation
und der Adressiermodusinformation und führt in
Übereinstimmung mit der bestimmten Dekodiersequenz eine
Dekodieroperation durch, um die Operandzugriffsinformation 1502 für den
Zugriff zum Operanden und die Datenverarbeitungsinformation
1501 zur Durchführung des geforderten Befehls zu erzeugen.
Die Operandzugriffsoperation 1502 wird einer
Generatoreinheit EAG 160 für die effektive Adresse zugeführt, die eine
effektive Adresse 1601 der Operanddaten berechnet und
erzeugt.
Die effektive Adresse 1601 wird einer
Speicherverwaltungseinheit MMU 170 zugeführt und dann in eine reale
Adresse übersetzt. Die MMU 170 informiert die MDU 150 über
die Beendigung der Adressenübersetzung durch ein Signal
1702. Die MMU 170 gibt weiterhin an die BCU 110 eine
Operandzugriffsanfrage durch Zuführen der realen Adresse. Die
Datenverarbeitungsinformation 1501 von der MDU 150 wird
einer Durchführungssteuerungseinheit EXU 180 zugeführt, die
somit den geforderten Befehl oder die Datenverarbeitung mit
dem Empfangen oder übertragen der Operanddaten von oder auf
die BCU 110 über einen Bus 1801 durchführt. Diese
Bauemheiten BCU 110, PFU 120, PDU 130, MDU 150, EAG 160, MMU 170
und EXU 180 arbeiten parallel nach Art einer Pipeline.
-
Fig. 2 zeigt den internen Blockaufbau der PFU 120, PDU 130,
BFF 140 und MDU 150. Anzumerken ist, daß nur Teile gezeigt
sind, die sich auf die vorliegende Erfindung beziehen, um
eine komplizierte Zeichnung zu vermeiden. Der Befehlsbus
1101 von der BCU 110 hat eine 32-Bit-Länge (d.h. eine Vier-
Byte-Länge), und damit werden Befehlsdaten mit vier Bytes
durch einen Vorabeinlesevorgang vorab eingelesen und dann
auf dem Bus 1101 übertragen. Der Bus 1101 ist gemeinsam an
vier Fächer (pocket) (INSQ 0 bis INSQ 3) 121-1 bis 121-4
einer Befehlsschlange 121 angeschlossen, die jeweils eine
Vier-Byte-Speicherkapazität haben. Die Befehlsdaten mit
Vier-Bytes vom Bus 1101 sind somit zeitweilig in einer der
Befehlsschlangenfächer INSQ 0-3, die durch die
Schlangenverweisinformation 1241, welche von einer
Schlangensteuerung 124 erzeugt worden ist, bezeichnet ist. Die
Schlangenfächer INSQ 0-3 werden in dieser Reihenfolge bezeichnet.
Wenn beispielsweise das erste Schlangenfach INSQ 0
unverarbeitete Befehlsdaten speichert, werden die Befehlsdaten auf
dem Bus 1101 im zweiten Schlangenfach INSQ 1 gespeichert.
Die Inhalte der Schlangenfächer INSQ 0-3 werden zu den
Befehlsdaten 122 mit 16-Byte-Länge gebunden und dann einem
Befehlsausrichter 123 zugeführt. Dieser Ausrichter 123 hat
einen OP-Codefeld-Ausgangsbus 126 mit 2-Byte-Länge, einen
Adressierfeld-Ausgangsbus 127 mit 2-Byte-Länge und einen
Datenausgangsbus 128 mit 4-Byte-Länge. Die Gesamt-Bytelänge
eines Befehls, der ein OP-Codefeld und ein Operandfeld
enthält, ist nicht konstant, aber wird innerhalb eines
Bereiches von wenigen Bytes bis zu zehn und mehreren Bytes in
Abhängigkeit von dem geforderten Datenverarbeitungsvorgang
und/oder dem Adressiermodus des oder der Operanden
geändert. Daher spricht der Befehlsausrichter 123 auf die
Ausrichtverweisinformation 1251 von einer Ausrichtsteuerung
125 an und richtet die Befehlsdaten auf dem Bus 122 so aus,
daß das OP-Codefeld, das Adressierfeld und die
Distanz- oder unmittelbaren Daten eines durchzuführenden Befehls auf
die Busse 126, 127 bzw. 128 übertragen werden. Diese Busse
126 bis 128 entsprechen dem in der Fig. 1 gezeigten Bus
1202.
-
Die OP-Codedaten auf dem Bus 126 und die Adressierfelddaten
auf dem Bus 127 werden einem OP-Codefeld-(OPF)-Vordekoder
131 bzw. einem Adressierfeld (AF)-Vordekoder 132 der PDU
130 zugeführt. In Abhängigkeit von den OP-Codefelddaten
erzeugt der OPF-Vordekoder 131 die OP-Codeinformatin 133, die
für die Bytelänge des OP-Codefeldes und die Anzahl der
Operanden, die bearbeitet werden müssen, repräsentativ ist.
Der AF-Vordekoder 132 erzeugt die Adressiermodusinformation
134, die für die Bytelänge des Operanden und den
Adressiermodus, der diesem in Abhängigkeit von dem Adressierfeld
bestimmt ist, repräsentativ ist. Diese Informationssätze 133
und 134 werden der Ausrichtsteuerung 125 und der
Schlangensteuerung 124 der PFU 120 zugeführt. In Abhängigkeit von
den Informationssätzen 133 und 134 erzeugt die
Ausrichtsteuerung 125 die Ausrichtverweisinformation 1251 zum
Steuern der Positionen und der Anzahl der Byte-Daten, die von
dem Befehlsausrichter 123 ausgegeben werden sollen, und die
Schlagensteuerung 124 erzeugt die
Schlangenverweisinformation 1241 zum Steuern der Schlangenfächer INSQF in welchen
die Befehlsdaten vom Bus 1101 gespeichert werden. Die OP-
Codeinformation 133 und die Adressiermodusinformation 134
werden zeitweilig in Pufferregistern (BFFR1 und BFFR3) (141
bzw. 143) gespeichert. Das OP-Codefeld und das
Adressierfeld, die von dem Ausrichter 123 ausgegeben werden, werden
weiter über Zweigbusse 1261 und 1271 auf die BFF 140
übertragen und dann zeitweilig in dem BFFR2 bzw. BFFR4
gespeichert. Die Distanzdaten oder die unmittelbaren Daten vom
Ausrichter 1123 werden über den Bus 128 der BFF 140
zugeführt und dann zeitweilig in deren BFFR5 gespeichert. Die
Busse für die Information 133 und 134, die Zweigbusse 1261
und 1271 und der Bus 128 entsprechen dem in der Fig. 1
gezeigten Bus 1302.
-
Die Daten, die in dem BFFR1 und BFFR2 gespeichert sind,
d.h. die OP-Codeinformation 133 und die
Adressiermodusinformation 134 werden der Dekodiersequenzsteuerung 151 der
MDU 150 zugeführt. Die Steuerung 151 bestimmt so sofort die
Dekodiersequenz, die durchgeführt werden soll, da die
Information 133 und 134 die vorstehend beschriebenen Inhalte
hat, und erzeugt dann die bestimmte Sequenzinformation 1511
und 1512. Die Sequenzinformation 1511 wird einem
OPF-Hauptdekoder 152 zugeführt, der auch die OP-Codefelddaten vom
BFFR2 erhält. Demgemäß erzeugt der Dekoder 152
Datenverarbeitungsinformation 1501, die für die Befehlsdurchführung
notwendig ist, und führt diese der EXU 180 zu. Die
Adressierfelddaten vom BFFR4 werden einem AF-Hauptdekoder 153
zugeführt, und die Distanz- oder unmittelbaren Daten vom
BFFR5 werden einem Operandzugriff-Informationsgenerator 154
zugeführt. Diese Bauemheiten 153 und 154 arbeiten in
Übereinstimmung mit der Adressiersequenz-Information 1512 und
erzeugen damit die Operandzugriffsoperation 1502, die
ihrerseits der BAG 160 zugeführt wird.
-
Wie vorstehend erwähnt, ändert sich die gesamte Byte-Länge
eines durchzuführenden Befehls in Abhängigkeit von der
geforderten Datenverarbeitungsoperation und dem
Adressiermodus, mit dem der oder die zu bearbeitenden Operanden
bezeichnet sind. Zwei Beispiele, die für unterschiedliche
Befehlsformate repräsentativ sind, sind in den Figuren 6A und
68 gezeigt. Der in der Fig. 6A gezeigte Befehl ist ein
Befehl mit zwei Operanden 500, mit einem ersten Operand, dem
ein Distanzmodus als ein Adressiermodus zugeordnet ist und
einem zweiten Operand, dem ein Distanzindexmodus als ein
Adressiermodus zugeordnet ist. Im einzelnen ist dieser
Befehl 500 zusammengesetzt aus dem OP-Codefeld 502 mit 2-
Byte-Länge, einen ersten Operand-Adressiermodus-OPNDI-AM-
Feld 502 mit 1 Bytelänge, den Distanzdaten 503 von
4-Bytelänge, einem zweiten Operand-(OPND 2)-Indexfeld 504 mit 1-
Bytelänge, einem AM-Modus-Feld 505 mit 1-Bytelänge und
Distanzdaten 506 mit 2-Bytelänge und damit einer Länge von
11-Byte insgesamt. Der in der Fig. 68 gezeigte Befehl ist
Befehl mit einem Operand 550, in welchem ein
Distanzindexmodus als Adressiermodus für einen Operanden bestimmt ist.
Dieser Befehl 550 ist zusammengesetzt aus einem OP-Codefeld
510 mit 1-Bytelänge, einem Indexfeld 511 mit 1-Bytelänge,
einem AM-Feld 512 mit 1-Bytelänge und Distanzdaten mit 4-
Bytelänge, und hat somit insgesamt eine Länge von 7-Byte.
-
Als nächstes wird ein Vorgang unter Bezugnahme auf die
Figuren 1, 2 und 6 und weiterhin auf die Fig. 3 beschrieben
die einen Zeitablaufplan zeigt. Es wird angenommen, daß die
Befehle 500 und 550, die in der Fig. 6 gezeigt sind, in der
Befehlsschlange 121 gespeichert sind. Da jedoch die
Befehlsschlange 121 16-Bytelänge insgesamt hat, werden die
niedrigerwertigen Doppeltyp-Distanzdaten 513 des Befehls
550 noch nicht in der Schlange gespeichert.
-
Da der vorherige Befehl bereits auf die PDU 130 übertragen
worden ist, steuert die Ausrichtsteuerung 125 die
Ausrichtverweisinformation 1251 dergestalt, daß der
Befehlsausrichter 123 die ersten und zweiten Byte-Daten der
16-Byte-Befehlsdaten
122 auf den Bus 126 und der dritten und vierten
Bytedaten desselben auf dem Bus 127 ausgibt. Das heißt, das
OP-Codefeld 501 des Befehls 500 wird auf den Bus 126
ausgegeben und das OPND1-AM-Feld 502 des ersten Bytes der
Distanzdaten 503 wird während einem ersten Takt (1) eines in
der Fig. 3 gezeigten Systemtakts auf dem Bus 127
ausgegeben. In Abhängigkeit davon erzeugt der OPF-Vordekoder 131
die OP-Codeinformation 133 und der AF-Vordekoder 132
erzeugt die Adressiermodusinformation 134. Die
OP-Codeinformation 133 reprasentiert, daß der Befehl 500 ein
OP-Codefeld mit 2-Bytelänge und zwei Operanden hat. Die
Adressiermodusinformation 134 repräsentiert, daß der erste
Operand eine Distanzmodusadressierung und die Distanzdaten mit
4-Byte-Länge hat. Anzumerken ist, daß das erste Byte der
Distanz 503 (displacement), das dem AF-Vordekoder 132
zugeführt wird, ignoriert wird. In Abhängigkeit von solchen
Inhalten der Information 133 und 134 steuert die
Ausrichtsteuerung 125 den Inhalt der Verweisinformation 1251
dergestalt, daß der Befehlsausrichter 123 das vierte bis siebte
Byte der 16-Byte-Befehlsdaten 122 während des nächsten
Taktes (2) auf dem Bus 128 ausgibt, und die Schlangensteuerung
124 steuert die Inhalte der Verweisinformation 1241
dergestalt, daß neue Befehlsdaten in den ersten bis dritten
Byte-Positionen der Schlangenfach INSQ0 gespeichert werden
dürfen.
-
In Abhängigkeit von dem Beginn des Taktes (2) werden die
Information 133 und 134 und die Felddaten 501 und 502 von
der PDU 130 in den entsprechenden Pufferregistern BFFR des
BFFL40 gespeichert. Andererseits gibt der Befehlsausrichter
123 die Distanzdaten 503 mit 4-Byte-Länge auf den Bus 128
aus. Während diesem Takt (2) führt die MDU 150 den
Dekodiervorgang in Übereinstimmung mit der
Dekodiersequenzinformation aus, die durch die Sequenzsteuerung 151 bestimmt
ist. Somit erzeugt der OPF-Hauptdekoder 152 die
Datenverarbeitungsinformation 1501, die für die erforderliche
Operation
bei zwei Operanddaten, repräsentativ ist, und der AF-
Hauptdekoder 153 rückt den
Zugriffsinformationserzeugungsvorgang in einen Zustand vor, in welchem nur die Distanz
503 erforderlich ist, um das Erzeugen der
Operandzugriffsinformation 1502 zu beenden. Die Ausrichtersteuerung 125
steuert den Inhalt der Verweisinformation 1251 dergestalt,
daß der Befehlsausrichter 123 das neunte und zehnte Byte
der Befehlsdaten 122 während eines nächsten Taktes (3) auf
den Bus 127 ausgibt.
-
Wenn der Takt (3) erscheint, sind die Distanzdaten 503 im
BFFR 5 gespeichert, so daß die MDU 150 das Erzeugen der
Operandzugriffsoperation 1502 für die ersten Operanddaten
beendet, wobei die Information 1502 ihrerseits auf den
EAG-160 übertragen wird. Andererseits werden die
OPND2-Indexfelddaten 504 und AM-Felddaten 505 vom Ausrichter 123 auf
den Bus 127 ausgegeben. Daher erzeugt der AF-Vordekoder 132
die Adressiermodusinformation 134, die repräsentiert, daß
der Adressiermodus des zweiten Operanden ein
Distanz-Indexierter Modus ist, und daß die Distanzdaten 2-Byte-Länge
haben.
-
In einem Takt (4) startet die MDU 150 das Erzeugen der
Zugriffsinformation für die zweiten Operanddaten, und der
Befehlsausrichter 123 gibt die Distanzdaten 506 auf den Bus
128 aus. Während dem nächsten Takt (5), werden die
Distanzdaten 506 über den BFFR5 der MDU 150 zugeführt und damit
ist die Operandzugriffsinformation 1502 für die zweiten
Operanddaten erzeugt und der EAG 160 zugeführt. Wenn der
Befehlsausrichter 123 die Distanzdaten 506 ausgibt, ist der
Ausrichtvorgang für den Befehl 500 vollendet. Daher steuert
die Ausrichtersteuerung 125 die Verweisinformation 1251, um
zu bewirken, daß der Befehlsausrichter 123 während des
Taktes (5) die zwölften und dreizehnten Bytedaten der
Befehlsdaten 122 auf den Bus 126 bzw. die vierzehnten und
fünfzehnten Byte-Daten derselben auf den Bus 127 ausgibt. Somit
sind das OP-Codefeld 510 und das Indexfeld 511 des Befehls
510 dem OPF-Vordekoder 131 und das AM-Feld 512 und das
erste Byte der Distanz 513 dem AF-Vordekoder 132 zugeführt.
Die Information 133 vom OPF-Vordekoder 131 repräsentiert,
daß das OP-Codefeld eine Länge 1-Byte hat und die Anzahl
der Operanddaten 1 ist. Demgemäß detektiert die
Ausrichtersteuerung 125, daß das Indexfeld 511 nicht dem
AF-Vordekoder 132 zugeführt worden ist, und steuert somit die
Verweisinformation 1251 so, daß bewirkt wird, daß der
Befehlsausrichter 123 die Felder 511 und 512 während eines nächsten
Taktes (6) auf dem Bus 127 ausgibt. Andererseits führt der
OPF-Hauptdekoder 152 während dem Takt (6) den
Dekodiervorgang durch, so daß die Datenverarbeitungsinformation 1501
für den Befehl 550 erzeugt ist.
-
Wenn ein nächster Takt (7) erscheint, werden die
Adressiermodusinformation 134 vom AF-Vordekoder 132 und die
Felddaten 511 und 512 der MDU 150 zugeführt. Die Information 134
repräsentiert, daß die Distanzdaten 513 eine Länge von 4-
Byte haben. Zusätzlich wurde während der Takte (3) bis (6)
der Befehls-Vorabeinlesevorgang von der PFU-120
durchgeführt, so daß die verbleibenden zwei Bytedaten der Distanz
513 bereits in den Positionen des ersten und zweiten Bytes
des Schlangenfachs INSQ0 gespeichert sind. Demgemäß werden
alle vier Byte-Daten der Distanz 513 während des Taktes (7)
am Ausrichter 123 ausgegeben, so daß die
Operandzugriffsoperation für die Operanddaten des Befehls 550 in einem
nächsten Takt (8) erzeugt wird.
-
Obwohl die Dekodiersequenz und die Steuerung des
Befehlsausrichters 123 in Abhängigkeit von dem Format und dem
Operandadressiermodus eines auszuführenden Befehls geändert
werden, befreit die PDU 140 die MDU 150 vom Dekodieren des
Befehlsformats und des Operandadressiermodus und von der
Steuerung des Ausrichters 123. Darüberhinaus arbeiten die
PDU 140 und MDU 150 nach Art einer Pipeline, da zwischen
ihnen ein BFF 140 vorgesehen ist. Demgemäß fällt der
Betrieb der PDU 140 im gesamten Dekodiervorgang nicht ins
Gewicht fallen. Dadurch wird ein Dekodiervorgang mit hoher
Geschwindigkeit durchgeführt.
-
Bei der vorstehenden Ausführungsform werden die Felddaten
511 und 512 des Befehls 550 zweimal von dem
Befehlsausrichter 123 ausgegeben, wie dies in den dem Betrieb zugehörigen
Takten (5) und (6) beschrieben worden ist. Wenn eine solche
Konstruktion realisiert ist, daß der Dekodiervorgang des
Befehls 505 durch nur einmaliges Ausgeben der Felddaten 511
und 512 am Ausrichter 123 vollendet ist, wird die
Dekodiergeschwindigkeit weiter verbessert. Die Konstruktion für
diesen Zweck ist in Fig. 4 als eine andere Ausführungsform
der vorliegenden Erfindung gezeigt, wobei die gleichen
Bauteile wie in der Fig. 2 gezeigt, mit den gleichen
Bezugsziffern bezeichnet sind, um deren weitere Beschreibung
weglassen zu können.
-
Bei dieser Ausführungsform wird ausgenützt, daß die ersten
drei Bits des OP-Codes des Befehls mit einem 1-Byte-Längen-
OP-Code alle "1" sind. Im einzelnen ist ein Musterdetektor
400 vorgesehen, der an den Befehlsbus 1101 angeschlossen
ist. Dieser Detektor 400 detektiert, ob die ersten drei
Bits der jeweiligen Byte-Daten alle "1" sind oder nicht.
Wenn die ersten drei Bits alle "1" sind, setzt der Detektor
400 das entsprechende Bit eines Flag-Registers 401 auf "1".
Andererseits setzt für den Fall, daß wenigstens eines der
drei Bits "0" ist, der Detektor 400 das entsprechende Bit
des Registers 401 auf "0" zurück. Das Flag-Register 401 hat
somit einen 16-Bit-Aufbau. Der Inhalt des Registers 401
wird einem Flag-Ausrichter 402 zugeführt, der ebenfalls die
Verweisinformation 1251 empfängt. In Abhängigkeit von dem
Inhalt der Verweisinformation 1251 wählt der Ausrichter 402
ein Bit des Registers 401 und gibt das gewählte Bitdatum
aus. Anders ausgedrückt, der Flag-Ausrichter 402 gibt die
Daten eines Bits des Registers 401 aus, wobei dieses Bit
der Position der Byte-Daten der 16-Byte-Daten 122
entspricht, die an den ersten Byte-Bus-126-7 des Busses 126
durch den Befehlsausrichter 123 ausgegeben worden sind.
Wenn beispielsweise der Befehlsausrichter 123 die zwölften
Byte-Daten der Befehlsdaten 122 auf den Bus 126-1 ausgibt,
gibt der Flag-Ausrichter 402 das zwölfte Bitdatum des Flag-
Registers 401 aus. Der zweite Byte-Bus 126-2 des Busses 126
und der erste Byte-Bus 127-1 des Busses 127 werden zu einem
Multiplexer (MPX) 404 gekoppelt, und die ersten und zweiten
Byte-Busse 127-1 und 127-2 des Busses 127 werden zu einem
Multiplexer (MPX) 405 gekoppelt. Die Ausgänge der MPXS 404
und 405 werden verbunden, wenn der
Adressierfeld-Ausgangsbus 127 an die PDU 130 gekoppelt ist. Die MPXs 404 und 405
werden durch die Daten 403 vom Flag-Ausrichter 402
gesteuert. Wenn dieses Datum 403 "1" einnimmt, wählen die MPXs
404 und 405 den Bus 126-2 bzw. 127-1. Wenn das Datum 403
"0" ist, werden die Busse 127-1 und 127-2 durch den MPX 404
bzw. 405 gewählt.
-
Ein Betriebszeitablaufplan gemäß dieser Ausführungsform ist
in der Fig. 5 im Vergleich zu dem in der Fig. 3 gemäß der
vorherigen Ausführungsform gezeigten Plan gezeigt. Wenn die
OP-Codefelddaten 501 des Befehls 500 im Takt (1) auf dem
Bus 126 ausgegeben werden, gibt der Flag-Ausrichter 402 das
Datum 403 mit "0" aus, da das OP-Codefeld 501 eine 2-Byte-
Länge hat. Demgemäß sind auf dem Bus 127 die AM-Felddaten
502 und das erste Byte der Distanzdaten 503 ausgegeben.
Somit sind der Ausrichtvorgang und der Dekodiervorgang mit
Bezug auf den Befehl 500 bei beiden Ausführungsformen
identisch. Wenn andererseits die OP-Codefelddaten 510 des
Befehls 550 während dem Takt (5) auf den Bus 1261 ausgegeben
werden, gibt der Flag-Ausrichter 402 das Datum 403 mit "0"
aus. Demgemäß werden die Indexfelddaten 511 auf dem Bus
126-2 als ein erstes Bytedatum auf den Bus 127 über MPX-404
übertragen und das AM-Felddatum 512 auf dem Bus 127-1 wird
als zweites Bytedatum über den NPX 405 auf den Bus 127
übertragen. Diese Felddaten 511 und 512 werden dadurch dem
AF-Vordekoder 132 zugeführt. Als Ergebnis werden die
Distanzdaten 513 während dem Takt (6) am Ausrichter 123
ausgegeben, und der Dekodiervorgang für diesen Befehls 550 ist
beim Takt (7) vollendet. Somit ist die
Dekodiergeschwindigkeit weiter verbessert.