HINTERGRUND DER ERFINDUNG
Gebiet der Erfindung
-
Die vorliegende Erfindung betrifft einen Mikroprozessor vom
Parallelebefehls-Ausführungstyps, insbesondere einen
Mikroprozessor vom Befehls-Pipelinetyp, der schnell Befehle
ausführen kann.
Beschreibung des Standes der Technik
-
In einem Mikroprozessor vom Befehls-Pipelinetyp gemäß dem
Stand der Technik werden ein bestimmtes Register oder
bestimmte Register zur Durchführung einer Operanden-
Adressenberechnung beispielsweise bei einem ADD-Befehl
durchgeführt. Da der Inhalt des Registers durch einen
vorausgehenden Befehl, beispielsweise einen TRANSFER-Befehl
modifiziert ist, kann der ADD-Befehl nicht an eine
Operandenadressen-Berechnungsstufe verschoben werden, bevor
eine Schreibstufe eines Allgemeinzweck-Registers beendet ist,
wodurch die Verarbeitung des Befehls verzögert wird.
-
Figur 2 zeigt eine Prinzipkonstruktion des Mikroprozessors
vom Befehls-Pipelinetyp gemäß dem Stand der Technik.
-
IN Figur 2 bezeichnet ein Bezugszeichen 1 einen
Bussteuerabschnitt (BCU) zum Verbinden eines Mikroprozessors
P mit einer externen Schaltung, ein Bezugszeichen 2
bezeichnet einen Befehlsholabschnitt (IEU), 3 bezeichnet
einen Dekoder (DEC) zum Dekodieren von Befehlen, 4 bezeichnet
einen Operandenadressen-Berechnungsabschnitt (OAG), 5 einen
Adressenübersetzungsabschnitt (AT) zum Umwandeln einer
logischen Adresse in eine physikalische Adresse, 6 einen
Operandenholabschnitt (OPE) zum Holen eines Operanden, 7
einen Operationsausführungsabschnitt (EXU) zum Ausführen von
Befehlen, 8 eine Allzweckregistergruppe (GR), die aus einer
Vielzahl von (nicht dargestellten) Registern R&sub1;, R&sub2;, R&sub3;, R&sub4;
bestehen. Wenn durch den in Figur 2 gezeigten Mikroprozessor
P beispielsweise in Figur 1 gezeigte Maschinenbefehle
ausgeführt werden, dannn wird die Zeitgabe der Befehls-
Pipelineverarbeitung die in Figur 3 gezeigte. Wie in den
Figuren 1 und 3 gezeigt, wird unter der Ahnahme, daß a&sub1; ein
Befehl ist, der den Inhalt einer Adresse A an ein (nicht
dargestelltes) Register R&sub1; in G&sub8; transferiert, a&sub2; ein Befehl
ist, der Daten in dem Register R&sub3; in GR&sub8; an das Register R&sub2;
transferiert, a&sub3; ein ADD-Befehl ist, der den Inhalt einer
Adresse B, der durch das Register R&sub2; modifiziert ist, an das
Register R&sub4; transferiert und a&sub4; ein Befehl ist, der Daten in
dem Register R&sub2; an einen durch die Adresse C angezeigten
Speicher transferiert, der Inhalt des Registers R&sub2; durch den
Befehl a&sub3; verwendet, um eine Operandenadressenberechnung
durchzuführen. Allerdings ist der Inhalt des Registers R&sub2;
durch den Befehl a&sub2; modifziert. Infolgedessen kann sich der
Befehl a&sub3; nicht an OAG&sub4; bewegen, bis der Transfer des Befehis
a&sub2; nach GR&sub8; abgeschlossen ist, wodurch die Verarbeitung des
Befehis a&sub3; verzögert wird.
-
Da der Operationsausführungsabschnitt und die Allgemeinzweck-
Registergruppe in dem Mikroprozessor gemäß dem Stand der
Technik nicht doppelt vorgesehen sind, können nachfolgende
Befehle nicht ausgeführt werden, bis die Befehle zum
Aktualisieren der Allzweckregistergruppe GR&sub8; vollständig
ausgeführt worden sind.
-
Deswegen können die Vorteile des Pipelinesystems aufgrund
einer Stagnation des Verarbeitungsflusses in den
Mikroprozessoren vom Befehls-Pipelinetyp gemäß diesem Stand
der Technik nicht demonstriert werden.
ZUSAMMENFASSUNG DER ERFINDUNG
-
Der Artikel "Design Considerations for 32 Bit Mikroprocessors
TX3" von K. Okamoto et al, in spring Compcon 88, März 04,
1988, San Francisco, CA, US, Seiten 25 bis 29 beschreibt
einen Mikroprozessor vom Befehls-Pipelinetyp, umfassend eine
Vielzahl von gleichzeitig arbeitenden
Operationsausführungsabschnitten. Jeder dekodierte Befehl
wird in der Reihenfolge einer Programmsequenz ausgegeben,
aber Befehle können wegen Unterschieden in der
Ausführungszeit oder der Anzahl von Pipelinestufen außerhalb
der Reihenfolge beendet werden. Um genaue Unterbrechungen und
Fangstellen sicherzustellen, besitzt der TX3 einen
Rekorderpuffer und zwei allgemeine Registerdateien, bei denen
es sich um die gegenwärtige GR-Datei und die zukünftige GR-
Datei handelt (genaue Unterbrechungen oder Fangstellen
erfordern, daß alle Befehle vor dem unterbrochenen Befehl
abgeschlossen worden sind und alle dem unterbrochenen Befehl
folgenden Befehle noch nicht begonnen haben). Die zukünftige
GR-Datei hält die Kopien der für eine normale
Programmausführung verwendeten Register und die gegenwärtige
GR-Datei hält den Zustand der im Fall einer Unterbrechung
oder Fangstelle zu verwendenden Register. Der Rekorderpuffer
verfolgt, welche Befehle ausgegeben worden sind und in
welcher Reihenfolge. Register-Schreibvorgänge werden sofort
an die zukünftige GR-Datei gesendet, aber durch den
Rekoderpuffer in eine Warteschlange eingereiht, um an die
gegenwärtige GR-Datei geschrieben zu werden, wenn der
unmittelbar vorausgehende Befehl beendet wird (eine
zusätzliche Logik stellt sicher, daß die Ergebnisse berechnet
werden, bevor sie ausgelesen werden).
ZUSAMMENFASSUNG DER ERFINDUNG
-
Es ist deshalb eine Aufgabe der vorliegenden Erfindung, einen
Mikroprozessor vom Befehls-Pipelinetyp bereitzustellen,
umfassend eine Vielzahl von gleichzeitig arbeitenden
Oper ationsaus führungsabschnitten mit einer einfacheren
Schaltungsanordnung für eine Neuordnung.
-
Gemäß der vorliegenden Erfindung ist ein Mikroprozessor vom
Befehls-Pipelinetyp wie im Anspruch 1 beansprucht vorgesehen.
-
Diese und andere Aufgaben, Merkmale und Vorteile der
vorliegenden Erfindung ergeben sich näher aus der folgenden
Beschreibung einer bevorzugten Ausführungsform im
Zusammenhang mit den beiliegenden Zeichnungen.
ERSTE BESCHREIBUNG DER ZEICHNUNGEN
-
In den Zeichnungen zeigen:
-
Fig. 1 ein Beispiel eines Programms zur
Verdeutlichung der Probleme, die die
Mikroprozessoren gemäß dem Stand der Technik
aufweisen;
-
Fig. 2 den Aufbau des Mikroprozessors vom Befehls-
Pipelinetyp gemäß dem Stand der Technik;
-
Fig. 3 einen Ablauf einer Befehlsverarbeitung in dem
in Figur 2 gezeigten Mikroprozessor;
-
Fig. 4 eine grundlegende Konstruktion des
Mikroprozessors vom Befehls-Pipelinetyp gemäß
der vorliegenden Erfindung;
-
Fig. 5 einen Ablauf einer Befehlsverarbeitung in
jedem Abschnitt, der den in Figur 4 gezeigten
Mikroprozessor bildet;
-
Fig. 6 eine ausführliche Konstruktion des
Betriebsausführungsabschnitts und der
Allgemeinzweck-Registergruppe, die in Figur 4
gezeigt ist;
-
Fig. 7 ein Format jedes in Figur 6 gezeigten
Registers; und
-
Fig. 8 ein Eingabeformat der Registergruppe FGR zum
Speichern des Ergebnisses der Befehle in den
Allgemeinzweck-Registern, verarbeitet in einer
vorwärtsschauenden Weise.
AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
-
Figur 4 zeigt eine Prinzipkonstruktion des Mikroprozessors
vom Befehls-Pipelinetyp gemäß der vorliegenden Erfindung.
-
In der Figur sind die gleichen Konstruktionselemente wie die
in Figur 2 gezeigten mit den gleichen Bezugszeichen
bezeichnet. Der Mikroprozessor vom Befehls-Pipelinetyp umfaßt
einen Operationsausführungsabschnitt, der umfaßt: einen
ersten Operationsausführungsabschnitt (SEP) 10 zum jeweiligen
Ausführen von Befehlen mit keinem Speicheroperanden, einen
zweiten Operationsausführungsabschnitt (IEP) 11 zum
jeweiligen Ausführen von Befehlen mit einem Speicheroperanden
und einen dritten Operationsausführungsabschnitt (FEP) 12 zum
Ausführen von Gleitkomma. Zusätzlich bezeichnet ein
Bezugszeichen 13 einen Befehlssendeabschnitt zum Senden von
dekodierten Befehlen an jeden Operationsabschnitt und ein
Bezugszeichen 14 bezeichnet ein Gleitkoma-Register.
-
In dem in Figur 4 gezeigten Mikroprozessor gemäß der
vorliegenden Erfindung werden die in Figur 4 gezeigten
Pipelinebefehle in einer in Figur 5 gezeigten Weise
ausgeführt. Jeder Befehl wird nämlich geholt und für jeden
Takt verarbeitet; ein Befehl a&sub2; mit einem Speicheroperanden
wird in der Reihenfolge von dem Befehlsholabschnitt 2 T dem
Dekoder 3 T dem Befehlsausgabeabschnitt 13 T dem
Operandenadressenabschnitt 4 T dem
Adressenübersetzungsabschnitt 5 T dem Operandenholabschnitt
6 zu dem zweiten Operationsausführungsabschnitt 11
verarbeitet.
-
Ein Befehl a&sub2; mit keinem Speicheroperanden, aber nur einem
Registeroperanden wird in der Reihenfolge von dem
Befehlsholabschnitt 2 T dem Dekoder 3 T dem
Befehlsausgabeabschnict 13 zu dem ersten
Operationsausführungsabschnitt 10 verarbeitet.
-
Da die Ausführungen der Befehle a&sub2; und a&sub2; jeweils an den
fünften und sechsten Takten abgeschlossen ist, ist es wie in
Figur 5 gezeigt eine Diskrepanz zwischen den Daten in der
Allgemeinzweck-Registergruppe 8' und dem Programmfluß zu
vermeiden. Diesbezüglich umfaßt die Allgemeinzweck-
Registergruppe 8' eine Registergruppe zum Halten von
Programm-verarbeiteten sich ergebenden Daten, die nachher
beschrieben werden und eine Registergruppe zum
vorübergehenden Halten des Ausführungsergebnisses jedes
Befehis in der vorwärtsblickenden Weise, das heißt die zwei
Registergruppen sind dupliziert.
-
In Figur 6 umfaßt der erste Operationsausführungsabschnitt 10
einen ersten Operator 20 und ein erstes Befehlsregister 21,
der zweite Operationsausführungsabschnitt 11 umfaßt einen
zweiten Operator 22 und ein zweites Befehlsregister 23 und
der dritte Operationsausführungsabschnitt 12 umfaßt einen
dritten Operator 24 und ein drittes Befehlsregister 25. Jedes
der Befehlsregister 21, 23 und 25 besitzt ein in Figur 7
gezeigtes Befehlsformat.
-
Das heißt, in Figur 7 bezeichnet OP ein Operationsfunktions-
Bezeichnungsfeld der zugehörigen Operatoren, SR bezeichnet
ein Quellenregister-Bezeichnungsfeld, DR ein
Bezeichnungsregisterfeld, SA/ID eine Quellenoperandenadresse
oder Sofortdaten-Haltefeld, DA ein Bestimmungsoperanden-
Adressenhaltefeld und PC ein Adressenhaltefeld eines sich in
Ausführung befindlichen Befehls.
-
Zurückkommend auf Figur 6 ist die Allgemeinzweck-
Registergruppe 8' in eine Registergruppen CGRi (i = 1, 2, 3,
..., n) zum Speichern von Daten als ein Ergebnis einer
Verarbeitung gemäß einem Programm und eine Registergruppe
FGRi (i = 1, 2, 3, ..., n) aufgeteilt. Insbesondere
bezeichnet ein Bezugszeichen 30 in Figur 6 einen
Befehlsadressen-Vergleichsabschnitt, der in dem
Allgemeinzweck-Register 8' enthalten ist.
-
In Figur 8 ist ein ausführliches Format der Registergruppe
FGR gezeigt, die aus drei Kennungsabschnitten F, I, S
besteht, die jeweils aus drei Bit und einem
Datenhalteabschnitt FGRi zum Halten jedes Datenwerts
bestehen.
-
Zurückkommend auf Figur 6 wird für die Vergleiche jedes PC-
Feldes jedes PC-Feld der Befehlsregister 21, 23, 25 an den
Befehlsadressen-Vergleichsabschnitt 30 angelegt, um zu
bestimmen, ob ein nachfolgender Befehl durch Übespringen
eines vorhergehenden Befehis ausgeführt wird oder nicht.
-
Wenn aus dem Ergebnis des Vergleichs das PC-Feld des ersten
Befehlsregisters 21 nicht minimal ist, wird ein "1"
Ausgangssignal von dem Ausgang C&sub1; des Vergleichsabschnitts
erzeugt, und wenn das PC-Feld des zweiten Befehlsregisters 23
nicht minimal ist, dann wird ein "1" Ausgangssignal von dem
Ausgang C&sub2; davon erzeugt, während, wenn das PC-Feld des
Befehlsregisters 25 nicht minmal ist, ein "1" Ausgangssignal
von dem Ausgang C&sub3; davon erzeugt wird.
-
Wenn ferner die Adresse PC des Befehlsregisters in dem
Operator, der einen Befehl ausgeführt hat, nicht minimal ist,
wird ein "1" Ausgangssignal (ein EGR-SCHRFIB-Signal) von dem
Ausgang C&sub4; des Adressenvergleichsabschnitts 30 erzeugt,
während, wenn die Adresse PC des Befehlsregisters minimal
ist, ein "1" Ausgangssignal (CGR-SCHREIB-Signal) von dem
Ausgang C&sub5; des Vergleichsabschnitts 30 erzeugt wird.
-
Wenn die Operation in jedem Operator abgeschlossen ist, dann
wird die Kennung 5 in dem Register FGR auf "1" gesetzt, wenn
C&sub4;=1, C&sub1;=1 ist und die I-Kennung wird auf "1" gesetzt, wenn
C&sub2;=1 ist, während die F-Fennung auf "1" gesetzt wird, wenn
C&sub3;=1 ist.
-
Das Operationsergebnis von jedem der Operatoren 20, 22 und 24
wird in dem durch das DR-Feld jedes Pefehlsregisters 21, 23,
25 bezeichneten Datenhalteabschnitt FGRi gespeichert.
-
Wenn die Operation jedes Operators 20, 22 und 24
abgeschlossen ist, dann wird das Ergebnis jeder Operation in
dem Datenhalteabschnitt FGRi und CGRi gespeichert, die durch
das DR-Feld jedes Befehlsregisters unter der Annahme von
C&sub4;=0, C&sub5;=1 bezeichnet sind. Die Daten in einem anderen FGRi,
in dem irgendeine der Kennungen F, I und S eingerichtet
worden sind, wird in dem entsprechenden CGRi bezeichnet.
-
Demzufolge und wie in Figur 5 gezeigt, enthält im Betrieb das
in Figur 3 gezeigte PC-Feld des ersten Befehlsregisters 21
die Adresse des Befehis a&sub2; zu dem fünften Takt, wobei zu
dieser Zeit der Befehl a&sub2; ausgeführt werden soll und das PC-
Feld des zweiten Befehlsregisters 23 enthält den Befehl a&sub1;.
Da allerdings ein Befehl nicht an das PC-Feld des dritten
Befehlsregisters 25 von dem Befehlssendeabschnitt 13 gesendet
worden ist, enthält sein PC-Feld keine Adresse. Infolgedessen
wird in dem dritten Operationsausführungsabschnitt 12 kein
Befehl ausgeführt.
-
Da andererseits das erste Befehlsregister 21 den Befehl a&sub2;
enthält und das Adressen-PC-Feld davon größer als das des
Befehis a&sub1; ist, wird C&sub1;=1 hergestellt und das Ergebnis der
Operation wird in FGR&sub2; geschrieben, während die Kennung 5 auf
"1" gesetzt wird.
-
Der Befehl a&sub1; wird in dem zweiten Operator 11 in dem sechsten
Takt ausgeführt. Da in diesem Fall jedoch das Befehlsregister
21 in dem ersten Operator 10 keinen Befehl enthält, da der
Befehl a&sub2; bereits darin ausgeführt worden ist, wird keine
Funktion ausgeführt. Da demzufolge C&sub4;=0, C&sub5;=1 ist, wird das
Ergebnis der Operation des Befehls a&sub1; in dem CGR&sub1; und FGR&sub1;
gespeichert, während der Datenwert in FGR&sub2;, in dem die
Kennung S1 aud "1" gesetzt worden ist, nun an CGR&sub2;
transferiert wird und für eine spätere Verwendung als
Datenwert gespeichert wird, der entlang des Programmflusses
verarbeitet ist.
-
Wie sich aus der voranstehenden Beschreibung ergibt, kann der
Datenwert, der für die Berechnung der effektiven Adresse des
nächsten Befehls a&sub3; benötigt wird, aus dem FGR&sub2; (der dem
Register R&sub2; entspricht) beim Abschluß des fünften Takts
aufgenommen werden. Infolgedessen kann der Befehl a&sub3; an den
Effektivadressen-Berechnungsabschnitt 4 sofort bewegt werden.
-
Demzufolge und im Gegensatz zu den Mikroprozessoren dieses
Typs gemäß dem Stand der Technik wird in dem Mikroprozessor
vom Befehls-Pipelinetyp gemäß der vorliegenden Erfindung eine
sequentielle Programmverarbeitung, derart, daß der Befehl a&sub3;
nur nach Ausführung der Befehle a&sub1; und a&sub2; verarbeitet werden
kann, in der vorliegenden Erfindung nicht benötigt.
-
Wie voranstehend beschrieben worden ist, wird in dem
Mikroprozessor vom Befehls-Pipelinetyp gemäß der vorliegenden
Erfindung der Operationsausführungsabschnitt dupliziert, um
so eine Vielzahl von Befehlen gleichzeitig auszuführen,
während auch die Allgemeinzweck-Registergruppe in eine zweite
Registergruppe zum Speichern von entlang des Programmflusses
verarbeiteten Daten und in eine erste Registergruppe zum
Speichern von Daten als Ergebnis der Tatsache, daß ein
nachfolgender Befehl in einer vorausblickenden Weise
ausgeführt wird, aufgeteilt ist.
-
In dem Mikroprozessor vom Befehls-Pipelinetyp gemäß der
vorliegenden Erfindung ist auch eine Vergleichs- und
Entscheidungseinrichtung vorgesehen, wobei eine Entscheidung
durchgeführt wird, ob der nachfolgende Befehl durch
Überspringen der vorangehenden Befehle ausgeführt wird oder
nicht und die verarbeiteten Daten, die in der ersten
Regigstergruppe gehalten worden sind, an die zweite
Registergruppe gesendet werden oder nicht, um sie in der Form
entlang des Programmflusses gemäß dem Ergebnis der
Entscheidung zu ersetzen.
-
Da nachfolgende Befehle in einer vorausblickenden Weise
ausgeführt werden können, ohne auf das Ergebnis der
Ausführung der vorangehenden Befehle zu warten, kann das
Betriebsverhalten des Mikroprozessors vom Befehls-Pipelinetyp
gemäß der vorliegenden Erfindung bemerkenswert verbessert
werden.