DE4442687C2 - Prozessor mit mehreren Instruktionsregistern - Google Patents
Prozessor mit mehreren InstruktionsregisternInfo
- Publication number
- DE4442687C2 DE4442687C2 DE4442687A DE4442687A DE4442687C2 DE 4442687 C2 DE4442687 C2 DE 4442687C2 DE 4442687 A DE4442687 A DE 4442687A DE 4442687 A DE4442687 A DE 4442687A DE 4442687 C2 DE4442687 C2 DE 4442687C2
- Authority
- DE
- Germany
- Prior art keywords
- instruction
- decoder
- output
- execution circuit
- length
- 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
Links
- 230000015654 memory Effects 0.000 claims description 77
- 238000012545 processing Methods 0.000 claims description 72
- 238000012546 transfer Methods 0.000 claims description 34
- 238000000034 method Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 claims 2
- NFDFTMICKVDYLQ-UHFFFAOYSA-N 2-[2-[[4-(4-chloro-2,5-dimethoxyphenyl)-5-(2-cyclohexylethyl)-1,3-thiazol-2-yl]carbamoyl]-5,7-dimethylindol-1-yl]acetic acid Chemical compound C1=C(Cl)C(OC)=CC(C2=C(SC(NC(=O)C=3N(C4=C(C)C=C(C)C=C4C=3)CC(O)=O)=N2)CCC2CCCCC2)=C1OC NFDFTMICKVDYLQ-UHFFFAOYSA-N 0.000 description 37
- 238000010586 diagram Methods 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 9
- 230000004044 response Effects 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 241000115963 Anisocentropus pan Species 0.000 description 1
- 238000005034 decoration Methods 0.000 description 1
- 210000003608 fece Anatomy 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Description
Die vorliegende Erfindung betrifft einen Prozessor mit
mehreren Instruktionsregistern nach den Ansprüchen 1, 4 und
7.
Aus der US 4,587,611 ist bereits ein Prozessor mit
mehreren Instruktionsregistern bekannt, wobei der Prozessor
neben einem Programmzähler auch einen Programmspeicher, In
struktionsdekodierer, eine Ausführungsschaltung sowie eine
Steuerschaltung umfaßt. Bei diesem bekannten Prozessor ist
das gleiche Programm in jeder von zwei Speichereinheiten
gespeichert, was einen entsprechend hohen Schaltungsaufwand
erfordert. Wenn bei diesem bekannten Prozessor ein beding
ter Verzweigungsbefehl aus einem ersten Speicher ausgelesen
wird, so wird ein zweiter Speicher über eine Verzweigungs
adresse in dem Verzweigungsadressenabschnitt in dem Ver
zweigungsbefehl adressiert und andererseits wird ein Adres
senregister inkrementiert und es wird der erste Speicher
durch die in der Reihenfolge nächste Adresse adressiert,
wobei eine von zwei Instruktionen aus den ersten und dem
zweiten Speicher mit Hilfe eines Gatters selektiert wird,
und zwar auf der Grundlage des Wertes eines Verzweigungsbe
dingungsflags.
Aus der US 5,267,350 ist ein Befehlsabruf-Steuerver
fahren bekannt, welches auf der Grundlage einer Schaltungs
anordnung durchgeführt wird, die eine Vielzahl von Befehls
pufferstufen enthält, wobei eine Befehlsleseanfrage an
einen Speicher ausgegeben wird, wenn ein Teil der Befehl
spufferstufen in einen leeren Zustand gelangt und wobei ein
abgerufener Befehl in einer Befehlspufferstufe in einem
leeren Zustand derselben gespeichert wird. Mit Hilfe eines
Flags wird eine andere Befehlspufferstufe spezifiziert, die
in einen leeren Zustand gelangt, nachdem der in der Be
fehlspufferstufe abgespeicherte Befehl zu einem Dekodierer
übertragen worden ist. Die Menge an Befehlen, die in der
Befehlspufferstufe gespeichert wird, wird variabel gestal
tet, und zwar in Einklang mit der Ausgangsgröße einer Flag-
Verriegelungsschaltung und es wird der abgerufene Befehl in
der Befehlspufferstufe in einem leeren Zustand gespeichert.
Dieses bekannte Verfahren schafft somit die Möglichkeit,
daß eine Vielzahl von Befehlen, die nach einer Befehlslese
anfrage abgerufen werden, in leeren Befehlspufferstufen ge
speichert werden können, wodurch die Zahl der Leseanfragen,
die ausgegeben werden, reduziert werden kann.
Bei den eingangs genannten Prozessoren wird eine Pipe
lineverarbeitung ausgeführt, um den Verarbeitungsvorgang zu
beschleunigen.
Bei der Pipelineverarbeitung nach dem Stand der Tech
nik ist eine Instruktionswarteschlange, die zum Beispiel 6
Registerstufen umfaßt, mit der vorderen Stufe eines Deko
dierers verbunden, und eine Warteschlange mit derselben An
zahl von Stufen ist mit der hinteren Stufe dieses Dekodie
rers
verbunden. Da eine normale Instruktion in einem Zyklus aus
geführt werden kann, wenn sich die Pipeline in dem statio
nären Zustand stabilisiert hat, ist eine Hochgeschwindig
keitsverarbeitung möglich.
Jedoch bei Instruktionen, die eine Verarbeitung erfor
dern, die sich von jener bei normalen Instruktionen unter
scheidet, wie z. B. Verzweigungsinstruktionen, Direktdaten
übertragungsinstruktionen oder Instruktionen mit variabler
Länge, wird die Verarbeitungsgeschwindigkeit reduziert, wie
unten beschrieben.
- 1. Im Fall einer Verzweigungsinstruktion, die ja die
Ausführungsfolge der Instruktionen verändert, sind Instruk
tionen, die teilweise verarbeitet worden sind, verworfen
worden, und es ist nötig, ab dem Instruktionsholen erneut
zu beginnen, wodurch die Vorteile der Pipelineverarbeitung
zunichte gemacht werden.
Deshalb kann für die Verzweigungsinstruktion eine Ver zweigungsvoraussage ausgeführt werden, indem die Instrukti on an dem Verzweigungsziel vor der Verzweigungs instruktion verbunden wird und sie in die Pipeline gelesen wird. Dies führt jedoch dazu, daß die Struktur des Compilers, der die Verzweigungsvoraussage ausführt, kom pliziert wird. Ferner wird die Verzweigung unter gewissen Bedingungen nicht auftreten, und da die Instruktion am Verzweigungsziel dennoch ausgeführt werden wird, obwohl dies nicht nötig ist, wird die Verarbeitungsgeschwindigkeit reduziert.
Eine andere Lösung eliminiert Totzeit, indem die Instruktion, die vor einer bedingten Verzweigungsinstruktion auszuführen ist, hinter der bedingten Verzweigungsinstruk tion als Verzögerungsschlitz oder -slot eingefügt wird und dieser Verzögerungsslot ausgeführt wird, während das Verzweigungsziel bestimmt wird. Jedoch führt auch dieses Verfahren dazu, daß der Compiler, der den Verzögerungsslot einfügt, komplizierter wird, und ferner wird, falls ein Verzögerungsslot nicht eingefügt werden kann, die Verarbeitungsgeschwindigkeit reduziert. - 2. Im Fall einer Direktdatenübertragungsinstruktion ist Zeit für die Berechnung der Ausführungsadresse und für den Speicherzugriff erforderlich. Dieses Problem kann überwunden und die Verarbeitung beschleunigt werden, indem eine Direktdatenübertragungsinstruktion verwendet wird, die die Daten innerhalb eines Instruktionswortes anordnet. Da eine Direktdatenübertragungsinstruktion jedoch auf das Aufnehmen der Direktdaten warten muß, benötigt die Ausführung eine Vielzahl von Zyklen, wodurch die Verarbei tungsgeschwindigkeit reduziert wird.
- 3. Im Fall von Instruktionen mit mehrfacher Länge ist es notwendig, wieder ein Dekodieren auszuführen, nachdem die mehrfachen Längen verbunden sind, wodurch die Ausführung eine Vielzahl von Zyklen benötigt und die Verarbeitungs geschwindigkeit reduziert wird.
Die der Erfindung zugrundeliegende Aufgabe besteht darin,
einen Prozessor zu schaffen, bei dem im Vergleich zu her
kömmlichen Prozessoren die Verzögerungszeiten reduziert
sind, die sich im Falle der Verarbeitung von Instruktionen
ergeben, wie Verzweigungsinstruktionen, unmittelbare Daten
übertragungsinstruktionen oder Instruktionen mit variabler
Länge ergeben, wobei gleichzeitig die erforderliche Spei
cherkapazität wesentlich reduzierbar sein soll.
Gemäß einem ersten Lösungsvorschlag wird die genannte
Aufgabe durch die im Anspruch 1 aufgeführten Merkmale ge
löst.
Besonders vorteilhafte Ausgestaltungen und Weiterbil
dungen des Prozessors nach dem Anspruch 1 ergeben sich aus
den Unteransprüchen 2 und 3.
Weitere Lösungsvorschläge der genannten Aufgabe erge
ben sich aus den Ansprüchen 4 und 7, wobei vorteilhafte
Ausgestaltungen und Weiterbildungen dieser Lösungsvorschlä
ge aus den Unteransprüchen hervorgehen.
Bezüglich des ersten Lösungsvorschlages der Erfindung
ist es möglich, daß die Verzweigungsinstruktion und die In
struktion an dem Verzweigungsziel kontinuierlich ohne Un
terbrechung ausgeführt werden und ohne daß der Compiler ir
gendeine
spezielle Verarbeitung für die Verzweigungsinstruktion
ausführt, die Verarbeitung im Vergleich zum Stand der
Technik zu beschleunigen, ohne den Compiler zu komplizieren.
Bezüglich des zweiten Lösungsvorschlages der Erfindung ist es
möglich, daß die Verzweigungsinstruktion und die Instruktion
an dem Verzweigungsziel kontinuierlich ohne Unterbrechung
ausgeführt werden und ohne daß der Compiler irgendeine
spezielle Verarbeitung für die Verzweigungsinstruktion
ausführt, die Verarbeitung im Vergleich zum Stand der
Technik zu beschleunigen, ohne den Compiler zu komplizieren.
Bezüglich des dritten Lösungsvorschlages der Erfindung ist es
möglich, daß die Verzweigungsinstruktion und die Instruktion
am Ziel der Verzweigung kontinuierlich ohne Unterbrechung
ausgeführt werden und ohne daß der Compiler irgendeine
spezielle Verarbeitung für die Verzweigungsinstruktion
ausführt, die Verarbeitung im Vergleich zum Stand der
Technik zu beschleunigen, ohne den Compiler zu komplizieren.
Die Erfindung ist im folgenden anhand von Ausführungs
beispielen näher beschrieben.
Fig. 1 ist ein Blockdiagramm, das einen Prozessor in
der ersten Ausführungsform gemäß der vorliegenden Erfindung
zeigt;
Fig. 2 ist ein Zeitlagendiagramm, das eine normale
Pipeline-Verarbeitung zeigt, die nach einem Rücksetzen und
bis zu der Zeit ausgeführt wird, wenn in der Vorrichtung in
Fig. 1 ein stationärer Zustand erreicht ist;
Fig. 3 ist ein Zeitlagendiagramm, das eine Pipeline-
Verarbeitung zeigt, die für eine unbedingte Verzweigungs
instruktion in der Vorrichtung in Fig. 1 ausgeführt wird;
Fig. 4 ist ein Zeitlagendiagramm, das eine Pipeline-
Verarbeitung zeigt, die für eine bedingte Verzweigungs
instruktion in der Vorrichtung in Fig. 1 ausgeführt wird;
Fig. 5 ist ein Blockdiagramm, das einen Prozessor in
der zweiten Ausführungsform gemäß der vorliegenden Erfindung
zeigt;
Fig. 6 ist ein Zeitlagendiagramm, das eine Pipeline-
Verarbeitung zeigt, die für eine Direktdatenübertragungs
instruktion in der Vorrichtung in Fig. 5 ausgeführt wird;
Fig. 7 ist ein Blockdiagramm, das einen Prozessor in
der dritten Ausführungsform gemäß der vorliegenden Erfindung
zeigt;
Fig. 8 ist ein Zeitlagendiagramm, das eine Pipeline-
Verarbeitung zeigt, die für eine Instruktion mit doppelter
Länge in der Vorrichtung in Fig. 7 ausgeführt wird;
Fig. 9 ist ein Blockdiagramm, das einen Prozessor in
der vierten Ausführungsform gemäß der vorliegenden Erfindung
zeigt;
Fig. 10 zeigt die Anordnung eines Programms innerhalb
des Speichers in Fig. 9;
Fig. 11 ist ein Zeitlagendiagramm, das eine normale
Pipeline-Verarbeitung zeigt, die nach einem Rücksetzen und
bis zu einem stationären Zustand in der Vorrichtung in Fig.
9 ausgeführt wird;
Fig. 12 ist ein Zeitlagendiagramm, das eine Pipeline-
Verarbeitung zeigt, die für eine unbedingte Verzweigungs
instruktion in der Vorrichtung in Fig. 9 ausgeführt wird;
Fig. 13 ist ein Zeitlagendiagramm, das eine Pipeline-
Verarbeitung zeigt, die für eine bedingte Verzweigungs
instruktion in der Vorrichtung in Fig. 9 ausgeführt wird;
Fig. 14 ist ein Blockdiagramm, das einen Prozessor in
der fünften Ausführungsform gemäß der vorliegenden Erfindung
zeigt;
Fig. 15 ist ein Zeitlagendiagramm, das eine Pipeline-
Verarbeitung zeigt, die für eine Direktdatenübertragungs
instruktion in der Vorrichtung in Fig. 14 ausgeführt wird;
Fig. 16 ist ein Blockdiagramm, das einen Prozessor in
der sechsten Ausführungsform gemäß der vorliegenden Erfin
dung zeigt;
Fig. 17 ist ein Zeitlagendiagramm, das eine Pipeline-
Verarbeitung zeigt, die für eine Instruktion mit doppelter
Länge in der Vorrichtung in Fig. 16 ausgeführt wird;
Fig. 18 ist ein Blockdiagramm, das einen Prozessor in
der siebten Ausführungsform gemäß der vorliegenden Erfindung
zeigt;
Fig. 19 ist ein Zeitlagendiagramm, das eine normale
Pipeline-Verarbeitung zeigt, die nach einem Rücksetzen bis
zu der Zeit ausgeführt wird, wenn in der Vorrichtung in Fig.
18 der stationäre Zustand erreicht ist;
Fig. 20 ist ein Blockdiagramm, das einen Prozessor in
der achten Ausführungsform gemäß der vorliegenden Erfindung
zeigt;
Fig. 21 ist ein Zeitlagendiagramm, das eine Pipeline-
Verarbeitung für eine Direktdatenübertragungsinstruktion in
der Vorrichtung in Fig. 20 zeigt; und
Fig. 22 ist ein Blockdiagramm, das einen Prozessor in
der neunten Ausführungsform gemäß der vorliegenden Erfindung
zeigt.
Nun werden unten unter Bezugnahme auf die Zeichnungen,
in denen gleiche Bezugszeichen über mehrere Ansichten hinweg
gleiche oder ähnliche Teile bezeichnen, Ausführungsformen
der vorliegenden Erfindung beschrieben.
Fig. 1 zeigt einen Prozessor in der ersten Ausführungs
form gemäß der vorliegenden Erfindung.
Der Speicher 1A und der Speicher 1B haben eine identi
sche Struktur mit gleicher Speicherkapazität, und in den
zwei Speichern 1A und 1B wird ein Programm gespeichert,
indem das Programm in Ein-Wort-Einheiten unterteilt wird,
die alternierend in jeden der zwei Speicher geschrieben
werden. Bezüglich der Adressen in dem Speicher 1A, die mit
A0, A1, A2, ... bezeichnet sind, und bezüglich der Adressen
in dem Speicher 1B, die mit B0, B1, B2, ... bezeichnet sind,
wird das Programm nämlich in der Reihenfolge gespeichert:
A0, B0, A1, B1, A2, B2, ....
Der Adresseneingangsanschluß des Speichers 1A ist mit
dem Ausgangsanschluß des Programmzählers 2A über exklusive
Drähte verbunden, und der Adresseneingangsanschluß des
Speichers 1B ist mit dem Ausgangsanschluß des Programmzäh
lers 2B über exklusive Drähte verbunden. Jeder der Programm
zähler 2A und 2B hat eine Zweistufenstruktur, die aus der
normalen Zählereinheit, die die Eingangsstufe ist, und der
Halte-(Register)-Einheit besteht, die die Ausgangsstufe ist,
und der Inhalt PAN, der in der Eingangsstufe aktualisiert
und bestätigt worden ist, wird, wie später erläutert, in der
Ausgangsstufe als Reaktion auf ein Steuersignal als PA
gehalten.
Der Datenausgangsanschluß des Speichers 1A ist mit dem
Eingangsanschluß des Instruktionsregisters 3A über exklusive
Drähte verbunden, und der Datenausgangsanschluß des Spei
chers 1B ist mit dem Eingangsanschluß des Instruktions
registers 3B über exklusive Drähte verbunden. Der Speicher
1A führt den Inhalt IA1 unter der Adresse PA, die durch den
Programmzähler 2A spezifiziert ist, ständig dem Eingangs
anschluß des Instruktionsregisters 3A zu, und der Speicher
1B führt den Inhalt IB1 unter der Adresse PB, die durch den
Programmzähler 2B spezifiziert ist, ständig dem Eingangs
anschluß des Instruktionsregisters 3B zu. Die Instruktions
register 3A und 3B halten IA1 bzw. IB1, um sie als IA2 bzw.
IB2 als Reaktion auf ein Strobe-Signal auszugeben.
Die Ausgangsanschlüsse der Instruktionsregister 3A und
3B sind mit den Eingangsanschlüssen der Instruktionsdekodie
rer 4A bzw. 4B verbunden. Jeder der Instruktionsdekodierer
4A und 4B ist in der Eingangsstufe mit einem internen
Register versehen und dekodiert den Instruktionskode, der in
diesem Register gehalten wird, zur Ausgabe als DA oder DB.
Die Ausgangsanschlüsse der Instruktionsdekodierer 4A
und 4B sind mit den Eingangsanschlüssen der Ausführungs
schaltung 5 und der Steuerschaltung 6 verbunden. Die Aus
führungsschaltung 5 ist in der internen Eingangsstufe mit
einem Selektor versehen, der als Reaktion auf das Selek
tionssteuersignal entweder DA oder DB selektiert, und mit
einem Register, das das selektierte DA oder DB hält. Auf der
Grundlage des Dekodierresultats, welches die Ausgabe des
Dekodierers ist und in diesem Register gehalten wird, führt
die Ausführungsschaltung 5 eine Verarbeitung, wie z. B. eine
Berechnung oder Datenübertragung, auf dieselbe Weise wie
eine Ausführungsschaltung in der bekannten Technik aus, die
mit einer ALU und internen Registern versehen ist. Um den
Ausdruck zu vereinfachen, gehen wir von der Voraussetzung
aus, daß die Selektion entweder von DA oder DB die Selektion
entweder von DA oder DB und dessen Halten in dem Register
bedeutet.
Diese Komponenten 1A bis 4A, 1B bis 4B und 5 arbeiten
gemäß Steuersignalen, die von der Steuerschaltung 6 gesendet
werden. Diese Steuersignale werden synchron mit den doppel
ten Phasentakten CA und CB erzeugt, wie in Fig. 2 gezeigt.
Die Grundlagen der Steuerung, die durch die Steuerschaltung
6 ausgeführt werden, sind wie folgt:
- 1. Die Steuerschaltung 6 bewirkt, daß die Ausfüh rungsschaltung 5 DA und DB alternierend selektiert und ausführt, führt das Selektionssteuersginal mit der Zeitlage des Anstiegs des Taktes CA der Ausführungsschaltung 5 zu und bewirkt, daß sie DB selektiert, wenn sie die Ausführung der Ausgabe des Instruktionsdekodierers 4A vollendet hat, und bewirkt, daß sie das Dekodierresultat DA selektiert, wenn sie die Ausführung des Dekodierresultats des Instruktions dekodierers 4B vollendet hat. Dann bewirkt sie, daß das interne Register dieses Dekodierresultat hält. Die Anfangs selektion nach einem Rücksetzen ist DA.
- 2. Wenn DA selektiert ist, bewirkt die Steuerschal tung 6, daß der Instruktionsdekodierer 4A IA2 hält, und wenn DB selektiert ist, bewirkt sie, daß der Instruktionsdekodie rer 4B IB2 hält.
- 3. Wenn IA2 in dem Instruktionsdekodierer 4A gehalten wird, bewirkt die Steuerschaltung 6, daß das Instruktions register 3A IA1 hält, und wenn IB2 in dem Instruktions dekodierer 4B gehalten wird, bewirkt sie, daß das Instruk tionsregister 3B IB1 hält.
- 4. Die Steuerschaltung 6 bewirkt, daß der Inhalt PAN oder PBN in der Eingangsstufe des Programmzählers 2A oder 2B in der Ausgangsstufe als PA oder PB mit der Zeitlage des Anstiegs des Taktes CA gehalten wird.
- 5. Die Steuerschaltung 6 bewirkt, daß mit der Zeit lage des Anstiegs des Taktes CB IA1 in dem Instruktions register 3A gehalten wird oder IB1 in dem Instruktions register 3B gehalten wird.
- 6. Die Steuerschaltung 6 aktualisiert den Inhalt PAN oder PBN in der Eingangsstufe des Programmzählers 2A oder 2B mit der Zeitlage des Anstiegs des Taktes CB. Das Aktualisie ren von PAN wird gewöhnlich durch Zuführen eines Impulses zu dem Takteingangsanschluß des Programmzählers 2A ausgeführt, um Eins zu dem Zählerwert hinzuzufügen, wenn aber die Ausgabe des Instruktionsdekodierers 4A eine unbedingte Verzweigungsinstruktion anzeigt, wird es ausgeführt, indem die Adresse des Verzweigungsziels auf der Grundlage der Ausgabe des Instruktionsdekodierers 4A bestimmt wird und sie dann in den Programmzähler 2A geladen wird, und wenn die Ausgabe des Instruktionsdekodierers 4A eine bedingte Verzweigungsinstruktion anzeigt, wird es ausgeführt, indem die Adresse des Verzweigungsziels auf der Grundlage der Ausgabe des Instruktionsdekodierers 4A und eines Status- Flags bestimmt wird und sie dann in den Programmzähler 2A geladen wird. Das Aktualisieren des Programmzählers 2B wird auf dieselbe Weise wie bei dem Programmzähler 2A ausgeführt.
- 7. Als nächstes wird unter Bezugnahme auf Fig. 2 die normale Pipeline-Verarbeitung erläutert, die ausgeführt wird, nachdem der Prozessor zurückgesetzt wird, bis der Prozessor in den stationären Zustand eintritt.
Die Startadresse zur Programmausführung nach einem
Rücksetzen wird als n bezeichnet. Obwohl es in Fig. 1 oder
Fig. 2 nicht gezeigt ist, wird die Initialisierungsver
arbeitung ausgeführt, wenn der Prozessor zurückgesetzt ist,
bei der n in die Eingangsstufen der Programmzähler 2A und 2B
geladen wird, und andererseits wird die Ausführungsstart
adresse n den Eingangsanschlüssen des Speichers 1A und 1B
über einen anderen Weg (nicht gezeigt) zugeführt.
Den zeitlichen Anstiegspunkten des Taktes CA sind
ungerade Zahlen zugeordnet; t1, t3, t5, ..., und den zeit
lichen Anstiegspunkten des Taktes CB sind gerade Zahlen
zugeordnet; t2, t4, t6, .... Außerdem wird IA1, das aus der
Adresse i in dem Speicher 1A gelesen wurde, als IA1(i)
bezeichnet, und IA2 wird, wenn IA1(i) in dem Instruktions
register 3A gehalten wird, als IA2(i) bezeichnet. Die
gleiche Regel gilt für IB1 und IB2. Bei der folgenden
Erläuterung hat die Pipeline 5 Stufen, die aus der Instruk
tionshol-(IF)-Stufe, der Instruktionsdekodier-(ID)-Stufe,
der Ausführungs-(EX)-Stufe, der Speicherzugriffs-(MA)-Stufe
und der Stufe zum Schreiben in das Register (WB) bestehen.
Zum Beispiel bei einer Instruktion, bei der Daten aus der
Speicheradresse gelesen werden, die der Inhalt des Index
registers IX mit hinzugefügter 100 sind, um in das Register
R geladen zu werden; d. h.,
LOAD R, IX + 100;
ist die EX-Stufe die Verarbeitung, bei der 100 zu dem Inhalt
des Indexregisters IX hinzugefügt werden, um die Ausfüh
rungsadresse zu bestimmen, ist die MA-Stufe die Verarbei
tung, bei der Daten aus dieser Ausführungsadresse in dem
Speicher gelesen werden, und ist die WB-Stufe die Verarbei
tung, bei der die Daten, die ausgelesen worden sind, in dem
Register R gespeichert werden. Bei einer Instruktion hin
sichtlich einer Register-Register-Operation, wie eine
Register-Register-Vergleichsinstruktion, ist die EX-Stufe
die Operation zwischen zwei Registern, ist die MA-Stufe
bedeutungslos und ist die WB-Stufe das Speichern des Resul
tats der Operation in einem Register. Bei einer Direktdaten
übertragungsinstruktion; d. h.,
LDI R, 200
ist die WB-Stufe die Verarbeitung, bei der Direktdaten 200
in dem Register gespeichert werden, und die EX- und MA-
Stufen sind bedeutungslos.
Von den Steuersignalen, die von der Steuerschaltung 6
ausgegeben werden, sind jene, die in Fig. 2 gezeigt sind,
wie folgt: das Instruktion-IA-Dekodiersignal dient zum
Bewirken, daß der Instruktionsdekodierer 4A, der IA2 hält,
dies dekodiert, wenn es hoch ist, und das Instruktion-IB-
Dekodiersignal dient zum Bewirken, daß der Instruktions
dekodierer 4B, der IB2 hält, dies dekodiert, wenn es hoch
ist. Das Instruktion-IA-Ausführungssignal dient zum Bewir
ken, daß die Ausführungsschaltung 5 DA selektiert und
ausführt, wenn es hoch ist, und das Instruktion-IB-Aus
führungssignal dient zum Bewirken, daß die Ausführungs
schaltung 5 DB selektiert und ausführt, wenn es hoch ist.
Die IF-Stufe beginnt beim Aktualisieren von PA oder PB des
Programmzählers 2A oder 2B.
- 1. n wird in beide Programmzähler 2A und 2B geladen. PA = n und PB = n. Die Instruktionsdekodierer 4A, 4B und die Ausführungsschaltung 5 sind im Wartezustand.
- 2. IA1(n) und IB1(n) werden in den Instruktions registern 3A bzw. 3B gehalten. Ein Impuls wird den Takt eingangsanschlüssen der Programmzähler 2A und 2B zugeführt, so daß PAN = n + 1 und PBN = n + 1 ist. Die Instruktionsdekodierer 4A, 4B und die Ausführungsschaltung 5 sind im Wartezustand.
- 3. IA2(n) und IB2(n) werden in den Instruktions dekodierern 4A bzw. 4B gehalten und dekodiert. PA = n + 1 und PB = n + 1. Die Ausführungsschaltung 5 ist in dem Wartezustand.
- 4. IA1(n + 1) und IB1(n + 1) werden in den Instruktions registern 3A bzw. 3B gehalten. Ein Impuls wird den Takt eingangsanschlüssen der Programmzähler 2A und 2B zugeführt, so daß PAN = n + 2 und PBN = n + 2 ist. Die Ausführungsschaltung 5 ist im Wartezustand.
- 5. DA(n) wird durch die Ausführungsschaltung 5 selektiert und ausgeführt, um die EX-Stufe auszuführen. Andererseits wird DB(n) nicht selektiert, und der Instruk tionsdekodierer 4B tritt in den Wartezustand ein. Dieser Wartezustand bedeutet, daß der Ausgang des Instruktions dekodierers 4B beim Ausgeben des Dekodierresultats nicht verwendet wird. IA2(n + 1) wird in dem Instruktionsdekodierer 4A gehalten und dekodiert. PA = n + 2.
- 6. IA1(n + 2) wird in dem Instruktionsregister 3A gehalten. Ein Impuls wird dem Takteingangsanschluß des Programmzählers 2A zugeführt, so daß PAN = n + 3 ist.
- 7. DB(n) wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. DA(n + 1) wird nicht selektiert, und der Instruktionsdekodierer 4A tritt in den Wartezustand ein. Der Speicherzugriff, der DA(n) entspricht, wird durch die Steuerschaltung 6 ausgeführt. IB2(n + 1) wird in dem Instruktionsdekodierer 4B gehalten und dekodiert. PB = n + 2.
- 8. IB1(n + 2) wird in dem Instruktionsregister 3B gehalten. Ein Impuls wird dem Takteingangsanschluß des Programmzählers 2B zugeführt, so daß PBN = n + 3 ist.
- 9. DA(n + 1) wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. DB(n + 1) wird nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. Das Schreiben in das Register, das DA(n) entspricht, und der Speicherzugriff, der DB(n) entspricht, werden durch die Steuerschaltung 6 ausgeführt. IA2(n + 2) wird in dem Instruktionsdekodierer 4A gehalten und dekodiert. PA = n + 3.
Die normale Fünfstufen-Pipeline-Verarbeitung wird auf
die oben beschriebene Weise ausgeführt, und die Operation
tritt in den stationären Zustand ein.
- A) Nun wird unter Bezugnahme auf Fig. 3 die Pipeline- Verarbeitung für eine unbedingte Verzweigungsinstruktion erläutert, die ausgeführt wird, nachdem der Prozessor in den stationären Zustand eintritt.
Wir gehen von der Voraussetzung aus, daß diese un
bedingte Verzweigungsinstruktion unter der Adresse An
(Adresse n in dem Speicher 1A) gespeichert ist, daß eine
relative Verzweigungszieladresse K in dem Wort der unbeding
ten Verzweigungsinstruktion ist und daß die relative Ver
zweigungszieladresse K eine gerade Zahl 2k und in dem
Speicher 1A ist.
Das tatsächliche Verzweigungsziel für die relative
Verzweigungszieladresse K wird auf dieselbe Weise wie bei
einem Prozessor nach Stand der Technik bestimmt, in dem der
Speicher 1A und der Speicher 1B integriert sind, indem die
Adresse i in dem Speicher 1A als 2i betrachtet wird und
ferner die Adresse i in dem Speicher 1B als 2i + 1 betrachtet
wird, für jedes i, das 0 bis M ist. Genauer gesagt, wenn die
unbedingte Verzweigungsinstruktion in dem Speicher 1A (oder
dem Speicher 1B) gespeichert ist und K eine ungerade Zahl
2k + 1 ist, d. h., wenn das niederwertigste Bit von K "1" ist,
ist die relative Verzweigungszieladresse gleich der relati
ven Verzweigungszieladresse k in dem Speicher 1B (oder dem
Speicher 1A), und wenn K eine gerade Zahl 2k ist, d. h.,
wenn das niederwertigste Bit von K "0" ist, ist die relative
Verzweigungszieladresse gleich der relativen Verzweigungs
zieladresse k in dem Speicher 1A (oder dem Speicher 1B).
Das folgende ist eine Erläuterung bezüglich der Pipe
line-Verarbeitung eines Instruktionswortes, das der Adresse
n - 1 in dem Speicher 1A vorausgeht und der Adresse
n - 1 in dem Speicher 1B vorausgeht.
- 1. DA(n - 2) wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. Andererseits wird DB(n) nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. IA2(n - 1) wird in dem Instruktionsdekodie rer 4A gehalten und dekodiert. PA = n.
- 2. Die unbedingte Verzweigungsinstruktion IA1(n) wird in dem Instruktionsregister 3A gehalten. Ein Impuls wird dem Takteingangsanschluß des Programmzählers 2A zugeführt, so daß PAN = n + 1 ist.
- 3. DB(n - 2) wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. Andererseits wird DA(n - 1) nicht selektiert, und der Instruktionsdekodierer 4A tritt in den Wartezustand ein. IB2(n - 1) wird in dem Instruktionsdekodie rer 4B gehalten und dekodiert. PB = n.
- 4. IB1(n) wird in dem Instruktionsregister 3B gehal ten. Ein Impuls wird dem Takteingangsanschluß des Programm zählers 2B zugeführt, so daß PBN = n + 1 ist.
- 5. DA(n - 1) wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. Andererseits wird DB(n - 1) nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. IA2(n) wird in dem Instruktionsdekodierer 4B gehalten und dekodiert. PA = n + 1.
- 6. IA1(n + 1) wird in dem Instruktionsregister 3A gehalten. Durch die Steuerschaltung 6 wird bestimmt, daß DA(n) eine unbedingte Verzweigungsinstruktion anzeigt, und das k der relativen Verzweigungszieladresse K = 2k, die in DA(n) enthalten ist, wird in die Programmzähler 2A und 2B geladen, so daß PAN = k und PBN = k ist. Damit wird die nachfol gende Operation mit der Operation nach einem Rücksetzen identisch.
- 7. DB(n - 1) wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. Andererseits wird DA(n) nicht selektiert, und der Instruktionsdekodierer 4A tritt in den Wartezustand ein. IB2(n) wird nicht in dem Instruktions dekodierer 4B gehalten (wird unterdrückt). PA = k und PB = k.
- 8. IA1(k) und IB1(k) werden in den Instruktions registern 3A bzw. 3B gehalten. PAN = k + 1 und PBN = k + 1.
- 9. Das Dekodierresultat DA(n) der unbedingten Ver zweigungsinstruktion wird durch die Ausführungsschaltung 5 selektiert und ohne Bedeutung ausgeführt. Denn k ist zu der Zeit t6 in die Programmzähler 2A und 2B geladen worden, und somit ist die Ausführung der unbedingten Verzweigung erfolgt. IA2(k) und TB2(k) werden in den Instruktionsdeko dierern 4A bzw. 4B gehalten und dekodiert. PA = k + 1 und PB = k + 1.
- 10. IA1(k + 1) und IB1(k + 1) werden in den Instruktions registern 3A bzw. 3B gehalten. PAN = k + 2 und PBN = k + 2.
- 11. DA(k) wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. Andererseits wird DB(k) nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. Der Speicherzugriff, der DA(n) entspricht, wird durch die Steuerschaltung 6 ohne Bedeutung ausgeführt (die MA-Stufe, die DA(n) entspricht, ist bedeutungslos). IA2(k + 1) wird in dem Instruktionsdekodierer 4A gehalten und dekodiert. PA = k + 2.
Da die unbedingte Verzweigungsinstruktion und die
Instruktion am Verzweigungsziel ohne jede Unterbrechung
kontinuierlich ausgeführt werden, wie erläutert worden ist,
wird eine Verzögerung der Verarbeitung verhindert. Obwohl
Fig. 3 den Fall zeigt, bei dem das Verzweigungsziel Ak ist,
wird eine Verzögerung der Verarbeitung auf ähnliche Weise
verhindert, wenn das Verzweigungsziel Bk ist.
- A) Als nächstes wird unter Bezugnahme auf Fig. 4 die Pipeline-Verarbeitung für eine bedingte Verzweigungsinstruk tion erläutert, die ausgeführt wird, nachdem der Prozessor in den stationären Zustand eintritt.
Die folgende Erörterung beruht auf der Voraussetzung,
daß eine Register-Register-Vergleichsinstruktion unter der
Adresse An gespeichert ist, daß die bedingte Verzweigungs
instruktion unter der Adresse Bn gespeichert ist und daß die
Verzweigungszieladresse bestimmt ist, um entweder An + 1 oder
Bk zu sein, in Abhängigkeit von dem Resultat der Ausführung
dieser Vergleichsinstruktion in der EX-Stufe.
In Fig. 4 ist die Operation ab dem Zeitpunkt t1 bis zum
Zeitpunkt t7 aus der obigen Erläuterung unter Bezugnahme auf
Fig. 2 und 3 ersichtlich und wird deshalb hier weggelassen.
Die Zeitpunkte t3 bis t7 entsprechen den Zeitpunkten t1 bis
t5 in Fig. 3.
- 1. Durch die Steuerschaltung 6 wird bestimmt, daß DB(n) eine bedingte Verzweigungsinstruktion ist. Mit dieser Bestimmung wird das k der relativen Verzweigungszieladresse K = 2k, die in DB(n) enthalten ist, in den Programmzähler 2B geladen, so daß PBN = k ist. Dann wird k + 1 als Adresse, die Bk folgt, in den Programmzähler 2A geladen, so daß PAN = k + 1 ist. Damit wird die nachfolgende Operation ähnlich jener, die nach einem Rücksetzen ausgeführt wird.
- 2. Das Dekodierresultat DA(n) der Vergleichsinstruk tion wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. Andererseits wird DB(n) nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. IA2(n + 1) wird in dem Instruktionsdekodierer 4A gehalten und dekodiert. PB = k + 1 und PB = k.
- 3. IA1(k + 1) und IB1(k) werden in den Instruktions registern 3A bzw. 3B gehalten. Ein Impuls wird den Takt eingangsanschlüssen der Programmzähler 2A und 2B zugeführt, so daß PAN = k + 2 und PBN = k + 1 ist.
- 4. Mit dem Resultat der Ausführung der oben beschriebenen Vergleichsinstruktion ist das Verzweigungsziel der bedingten Verzweigungsinstruktion bestimmt. In Fig. 4 ist die Verzweigungszieladresse bestimmt, um Bk zu sein, und DA(n + 1) wird unterdrückt. Das Dekodierresultat DB(n) der bedingten Verzweigungsinstruktion wird durch die Ausfüh rungsschaltung 5 selektiert und formell ausgeführt. Der Speicherzugriff, der DA(n) entspricht, wird durch die Steuerschaltung 6 ohne Bedeutung ausgeführt (die MA-Stufe, die DA(n) entspricht, ist bedeutungslos). IA2(k + 1) und IB2(k) werden in den Instruktionsdekodierern 4A bzw. 4B gehalten und dekodiert. PB = k + 1.
- 5. IB1(k + 1) wird in dem Instruktionsregister 3B gehalten. PBN = k + 2.
- 6. Das Dekodierresultat DB(k) der Instruktion an dem Verzweigungsziel wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. Andererseits wird DA(k + 1) nicht selektiert, und der Instruktionsdekodierer 4A tritt in den Wartezustand ein. Das Schreiben in das Register, das DA(n) entspricht, und der Speicherzugriff, der DB(n) entspricht, werden durch die Steuerschaltung 6 ohne Bedeutung ausgeführt (die WB-Stufe, die DA(n) entspricht, und die MA-Stufe, die DB(n) entspricht, sind bedeutungslos). IB2(k + 1) wird in dem Instruktionsdekodierer 4A gehalten und dekodiert. PA = k + 2.
Da die bedingte Verzweigungsinstruktion und die
Instruktion an dem Verzweigungsziel ohne jede Unterbrechung
kontinuierlich ausgeführt werden, wie erläutert worden ist,
wird eine Verzögerung der Verarbeitung verhindert. Obwohl
Fig. 4 einen Fall zeigt, bei dem das Verzweigungsziel Bk
ist, wird eine Verzögerung der Verarbeitung auf ähnliche
Weise verhindert, wenn das Verzweigungsziel Ak ist.
Fig. 5 zeigt einen Prozessor in der zweiten Ausfüh
rungsform gemäß der vorliegenden Erfindung.
Um die Direktdaten im zweiten Wort in einer Direkt
datenübertragungsinstruktion von den Instruktionsregistern
3A und 3B direkt der Ausführungsschaltung 5A zuzuführen,
sind in diesem Prozessor die Ausgangsanschlüsse der
Instruktionsregister 3A oder 3B über die Umgehung 7A bzw. 7B
direkt mit den Eingangsanschlüssen der Ausführungsschaltung
5A verbunden.
Wenn die Steuerschaltung 6A bestimmt, daß die Ausgabe
des Instruktionsdekodierers 4A oder 4B eine Direktdatenüber
tragungsinstruktion anzeigt, veranlaßt sie die Ausführungs
schaltung 5A, IA2 oder IB2 über die Umgehung 7A oder 7B
direkt zu halten und sie in einem Zyklus auszuführen.
Alle anderen Aspekte sind identisch mit jenen des in
Fig. 1 gezeigten Prozessors.
Fig. 6 zeigt die Pipeline-Verarbeitung für die Direkt
datenübertragungsinstruktion, nachdem der Prozessor in den
stationären Zustand eingetreten ist.
Wir gehen von der Voraussetzung aus, daß das erste Wort
der Direktdatenübertragungsinstruktion unter der Adresse An
gespeichert ist und daß die Direktdaten, d. h., das zweite
Wort der Direktdatenübertragungsinstruktion, unter der
Adresse Bn gespeichert sind.
- 1. DA(n - 2) wird durch die Ausführungsschaltung 5A selektiert und ausgeführt. Andererseits wird DB(n - 2) nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. IA2(n - 1) wird in dem Instruktionsdekodie rer 4A gehalten und dekodiert. PA = n.
- 2. Die unbedingte Verzweigungsinstruktion IA1(n) wird in dem Instruktionsregister 3A gehalten. Ein Impuls wird dem Takteingangsanschluß des Programmzählers 2A zugeführt, so daß PAN = n + 1 ist.
- 3. DB(n - 2) wird durch die Ausführungsschaltung 5A selektiert und ausgeführt. Andererseits wird DA(n - 1) nicht selektiert, und der Instruktionsdekodierer 4A tritt in den Wartezustand ein. IB2(n - 1) wird in dem Instruktionsdekodie rer 4B gehalten und dekodiert. PB = n.
- 4. Die Direktdaten IB1(n) werden in dem Instruktions register 3B gehalten. Ein Impuls wird dem Takteingangs anschluß des Programmzählers 2B zugeführt, so daß PBN = n + 1 ist.
- 5. DA(n - 1) wird durch die Ausführungsschaltung 5A selektiert und ausgeführt. Andererseits wird DB(n - 1) nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. IA2(n) wird in dem Instruktionsdekodierer 4A gehalten und dekodiert. PA = n + 1.
- 6. IA1(n + 1) wird in dem Instruktionsregister 3A gehalten. PAN = n + 2. Die Steuerschaltung 6A bestimmt, daß DA(n) eine Direktdatenübertragungsinstruktion anzeigt und daß IB2(n) deshalb Direktdaten sind.
- 7. Auf der Grundlage der obigen Bestimmung wird IB2(n) nicht in dem Instruktionsdekodierer 4B sondern in dem internen Register der Ausführungsschaltung 5A über die Umgehung 7B gehalten. DB(n - 1) wird durch die Ausführungs schaltung 5A selektiert und ausgeführt. DA(n) wird nicht selektiert, und der Instruktionsdekodierer 4A tritt in den Wartezustand ein. PB = n + 1.
- 8. IB1(n + 1) wird in dem Instruktionsregister 3B gehalten. PBN = n + 2.
- 9. Das Dekodierresultat DA(n) der Direktdatenüber tragungsinstruktion wird durch die Ausführungsschaltung 5A selektiert und ohne Bedeutung ausgeführt (die EX-Stufe, die DA(n) entspricht, ist bedeutungslos). IA2(n + 1) und IB2(n + 1) werden in den Instruktionsdekodierern 4A bzw. 4B gehalten und dekodiert. PA = n + 2 und PB = n + 2.
- 10. IA1(n + 2) und IB1(n + 2) werden in den Instruktions registern 3A bzw. 3B gehalten. PAN = n + 3.
- 11. DA(n + 1) wird durch die Ausführungsschaltung 5A selektiert und ausgeführt. Andererseits wird DB(n + 1) nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. Der Speicherzugriff, der DA(n) entspricht, wird durch die Steuerschaltung 6A ohne Bedeutung ausgeführt (die MA-Stufe, die DA(n) entspricht, ist bedeutungslos). IA2(n + 2) wird in dem Instruktionsdekodierer 4A gehalten und dekodiert.
Die Datenübertragung von Direktdaten zu einem Register
wird in der WB-Stufe ausgeführt, die DA(n) entspricht.
Wie bisher erläutert worden ist, wird die Direktdaten
übertragungsinstruktion mit doppelter Länge, die Direktdaten
enthält, ohne Unterbrechung in einem Zyklus ausgeführt,
wodurch irgendeine Verzögerung der Verarbeitung verhindert
wird.
Fig. 7 zeigt einen Prozessor in der dritten Ausfüh
rungsform gemäß der vorliegenden Erfindung.
Um eine Instruktion mit doppelter Länge schneller
auszuführen, ist dieser Prozessor zusätzlich zu den
Instruktionsdekodierern 4A und 4B mit einem Dekodierer von
Instruktionen mit doppelter Länge 4N versehen. Die Ausgangs
anschlüsse der Instruktionsregister 3A und 3B sind mit den
Eingangsanschlüssen des Dekodierers von Instruktionen mit
doppelter Länge 4N verbunden, und der Ausgangsanschluß des
Dekodierers von Instruktionen mit doppelter Länge 4N ist mit
dem Eingangsanschluß der Ausführungsschaltung 5B verbunden.
Der Dekodierer von Instruktionen mit doppelter Länge 4N ist
mit einem Register versehen, das IA2 und IB2 in seiner
internen Eingangsstufe hält, und dekodiert Instruktionen mit
doppelter Länge, die in diesem Register gehalten werden.
Wenn die Steuerschaltung 6B bestimmt, daß die Ausgabe
des Instruktionsdekodierers 4A oder 4B eine Instruktion mit
doppelter Länge anzeigt, veranlaßt sie den Dekodierer von
Instruktionen mit doppelter Länge 4N, IA2 und IB2 zu halten,
und veranlaßt ihn, die Instruktion mit doppelter Länge zu
dekodieren. Das Dekodieren der Instruktion mit doppelter
Länge wird in einem Zyklus ausgeführt.
Alle anderen Aspekte sind mit jenen des in Fig. 1
gezeigten Prozessors identisch.
Fig. 8 zeigt die Pipeline-Verarbeitung für eine
Instruktion mit doppelter Länge, wenn der Prozessor in den
stationären Zustand eingetreten ist.
Das Doppellängendekodiersignal in Fig. 8 dient der
Ausführungsschaltung 6B, um den Dekodierer von Instruktionen
mit doppelter Länge 4N zu veranlassen, IA2 und IB2 zu halten
und sie zu dekodieren, wenn es hoch ist.
Wir gehen von der Voraussetzung aus, daß eine Instruk
tion mit doppelter Länge unter den Adressen An und Bn
gespeichert ist. Da die Operation zu den Zeitpunkten t1 bis
t5 mit jener zu den Zeitpunkten t1 bis t5 in Fig. 3 iden
tisch ist, wird ihre Erläuterung hier weggelassen.
- 1. IA2(n + 1) wird in dem Instruktionsregister 3A gehalten. PAN = n + 2. Die Steuerschaltung 6B bestimmt, daß DA(n) das erste Wort der Instruktion mit doppelter Länge anzeigt.
- 2. DB(n - 1) wird durch die Ausführungsschaltung 5B selektiert und ausgeführt. Auf der Grundlage der oben beschriebenen Bestimmung werden IA2(n) und IB2(n) in der Eingangsstufe des Dekodierers von Instruktionen mit doppel ter Länge 4N gehalten und dekodiert. Andererseits wird nach diesem Halten IA2(n + 1) in dem Instruktionsdekodierer 4A gehalten und dekodiert. PA = n + 2 und PB = n + 1.
- 3. IA1(n + 2) wird in dem Instruktionsregister 3A gehalten, und IB1(n + 1) wird in dem Instruktionsregister 3B gehalten. PAN = n + 3 und PBN = n + 2.
- 4. Das Dekodierresultat des Dekodierers von Instruk tionen mit doppelter Länge 4N wird durch die Ausführungs schaltung 5B selektiert und ausgeführt. IA2(n + 1) wird in dem Instruktionsdekodierer 4A gehalten und dekodiert. PB = n + 2.
- 5. IB1(n + 2) wird in dem Instruktionsregister 3B gehalten. PBN = n + 3.
- 6. DA(n + 1) wird durch die Ausführungsschaltung 5B selektiert und ausgeführt. Andererseits wird DB(n + 1) nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. Die Speicherzugriffe, die DA(n) und DB(n) entsprechen, werden durch die Steuerschaltung 6B ausgeführt. IA2(n + 2) wird in dem Instruktionsdekodierer 4A gehalten und dekodiert. PA = n + 3.
Wie bisher erläutert worden ist, wird die Instruktion
mit doppelter Länge ohne Unterbrechung in einem Zyklus
ausgeführt, wodurch eine Verzögerung der Verarbeitung
verhindert wird.
Fig. 9 zeigt einen Prozessor in der vierten Ausfüh
rungsform gemäß der vorliegenden Erfindung.
Um dessen Struktur einfacher als jene in der oben
beschriebenen ersten Ausführungsform zu machen, beträgt in
diesem Prozessor die Bitlänge des Speichers 1 zwei Wörter,
wie in Fig. 10 gezeigt, und wenn die Adresse PC = i für den
Speicher 1 spezifiziert ist, wird die Zweiwortinstruktion
IW(i), die aus den Instruktionswörtern IA1(i) und IB1(i)
besteht, ausgelesen. IA1(i) und IB1(i) werden in den
Instruktionsregistern 3A bzw. 3B, die in Fig. 9 gezeigt
sind, gehalten. Denn für den Speicher 1 ist nur ein
Programmzähler 2 vorhanden. Die Ausgaben IA2 und IB2 der
Instruktionsregister 3A und 3B werden in den Instruktions
dekodierern 4A bzw. 4B gehalten und dekodiert. Mit dieser
Struktur wird die Steuerung, die durch die Steuerschaltung
6C ausgeführt wird, im Vergleich zu der oben beschriebenen
ersten Ausführungsform auch einfacher.
Die Grundlagen der Steuerung, die durch die Steuer
schaltung 6C ausgeführt wird, sind wie folgt:
- 1. Die Steuerschaltung 6 veranlaßt die Ausführungs schaltung 5, DA und DB alternierend zu selektieren und auszuführen, und führt das Selektionssteuersignal mit der Zeitlage des Anstiegs des Taktes CA (Fig. 2) der Ausfüh rungsschaltung 5 zu. Wenn die Ausführung des Dekodierresul tats des Instruktionsdekodierers 4A durch die Ausführungs schaltung 5 vollendet worden ist, veranlaßt sie die Aus führungsschaltung 5, DB zu selektieren, und wenn die Aus führung des Dekodierresultats des Instruktionsdekodierers 4B vollendet worden ist, veranlaßt sie die Ausführungsschaltung 5, das Dekodierresultat von DA zu selektieren. Sie veranlaßt das interne Register, dieses Dekodierresultat zu halten.
- 2. Wenn DA durch die Ausführungsschaltung 5 selek tiert wird, hält der Instruktionsdekodierer 4A IA2, und wenn DB selektiert wird, hält der Instruktionsdekodierer 4B IB2.
- 3. Jedes Mal, wenn ein Speichersatz DA und DB selek tiert ist, wird der Inhalt PCN in der Eingangsstufe des Programmzählers 2 in der Ausgangsstufe mit der Zeitlage des Anstiegs des Taktes CA gehalten und als PC ausgegeben.
- 4. Mit der Zeitlage des Anstiegs des Taktes CB (Fig. 2) werden IA1 und IB1 in den Instruktionsregistern 3A bzw. 3B gehalten, und PCN wird aktualisiert.
- 5. Als nächstes wird unter Bezugnahme auf Fig. 11 die normale Pipeline-Verarbeitung erläutert, die ausgeführt wird, nachdem der Prozessor zurückgesetzt ist, bis der Prozessor in den stationären Zustand eintritt. Die in der Figur nicht gezeigte Initialisierungsverarbeitung, die unmittelbar nach einem Rücksetzen ausgeführt wird, ist mit jener identisch, die in der oben beschriebenen ersten Ausführungsform ausgeführt wird.
- 6. PC = n. IW(n) = {IA1(n), IB(n)} wird aus dem Speicher 1 ausgelesen. Die Instruktionsdekodierer 4A, 4B und die Ausführungsschaltung 5 sind in dem Wartezustand.
- 7. IA1(n) und IB1(n) werden in den Instruktions registern 3A bzw. 3B gehalten. PCN = n + 1.
- 8. IA2(n) und IB2(n) werden in den Instruktions dekodierern 4A bzw. 4B gehalten und dekodiert. PC = n + 1. Die Ausführungsschaltung 5 ist in dem Wartezustand.
- 9. IA1(n + 1) und IB1(n + 1) werden in den Instruktions registern 3A bzw. 3B gehalten. PCN = n + 2.
- 10. DA(n) wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. Andererseits wird DB(n) nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. IA2(n + 1) wird in dem Instruktionsdekodie rer 4A gehalten und dekodiert.
- 11. DB(n) wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. DA(n + 1) wird nicht selektiert, und der Instruktionsdekodierer 4A tritt in den Wartezustand ein. Der Speicherzugriff, der DA(n) entspricht, wird durch die Steuerschaltung 6C ausgeführt. IB2(n + 1) wird in dem Instruktionsdekodierer 4B gehalten und dekodiert. PC = n + 2.
- 12. Der Speicherzugriff, der DA(n) entspricht, wird durch die Steuerschaltung 6C ausgeführt. IA1(n + 2) und IB1(n + 2) werden in den Instruktionsregistern 3A bzw. 3B gehalten. PCN = n + 3.
- 13. DA(n + 1) wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. Das Schreiben in das Register, das DA(n) entspricht, und der Speicherzugriff, der DB(n) entspricht, werden durch die Steuerschaltung 6C ausgeführt. DB(n + 1) wird nicht selektiert, und der Instruktionsdekodie rer 4B tritt in den Wartezustand ein. IA2(n + 2) wird in dem Instruktionsdekodierer 4A gehalten und dekodiert.
Wie bisher erläutert worden ist, wird die normale
Pipeline-Verarbeitung von 5 Stufen ausgeführt, und dann
tritt der Prozessor in den stationären Zustand ein.
- A) Als nächstes wird unter Bezugnahme auf Fig. 12 die Pipeline-Verarbeitung für eine unbedingte Verzweigungs instruktion erläutert, die ausgeführt wird, nachdem der Prozessor in den stationären Zustand eintritt. Die Bedingun gen für die unbedingte Verzweigungsinstruktion sind diesel ben wie jene, die im Fall von Fig. 3 angegeben wurden.
- B) DB(n - 2) wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. Andererseits wird DA(n - 1) nicht selektiert, und der Instruktionsdekodierer 4A tritt in den Wartezustand ein. IB2(n - 1) wird in dem Instruktionsdekodie rer 4B gehalten und dekodiert. PC = n.
- C) Die unbedingte Verzweigungsinstruktion IA1(n) wird in dem Instruktionsregister 3A gehalten, und gleichzei tig wird IB1(n) in dem Instruktionsregister 3B gehalten. PCN = n + 1.
- D) DA(n - 1) wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. Andererseits wird DB(n - 1) nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. IA2(n) wird in dem Instruktionsdekodierer 4A gehalten und dekodiert.
- E) Die Steuerschaltung 6C bestimmt, daß DA(n) eine unbedingte Verzweigungsinstruktion anzeigt, und das k der relativen Verzweigungszieladresse K = 2k, die in DA(n) enthal ten ist, wird in den Programmzähler 2 geladen, so daß PCN = k ist. Damit wird die nachfolgende Operation identisch mit jener nach einem Rücksetzen.
- F) DB(n - 1) wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. Andererseits wird DA(n) nicht selektiert, und der Instruktionsdekodierer 4A tritt in den Wartezustand ein. IB2(n) wird nicht in dem Instruktions dekodierer 4B gehalten (wird unterdrückt). PC = k.
- G) IA1(k) und IB1(k) werden in den Instruktions registern 3A bzw. 3B gehalten. PCN = k + 1.
- H) Das Dekodierresultat DA(n) der unbedingten Ver zweigungsinstruktion wird durch die Ausführungsschaltung 5 selektiert und ohne Bedeutung ausgeführt (die EX-Stufe, die DA(n) entspricht, ist bedeutungslos). IA2(k) und IB2(k) werden in dem Instruktionsdekodierer 4A bzw. 4B gehalten und dekodiert. PC = k + 1.
- I) IA1(k + 1) und IB1(k + 1) werden in den Instruktions registern 3A bzw. 3B gehalten. PCN = k + 2.
- J) DA(k) wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. Andererseits wird DB(k) nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. Der Speicherzugriff, der DA(n) entspricht, wird durch die Steuerschaltung 6C ohne Bedeutung ausgeführt (die MA-Stufe, die DA(n) entspricht, ist bedeutungslos). IA2(k + 1) wird in dem Instruktionsdekodierer 4A gehalten und dekodiert.
Wie bisher erläutert worden ist, wird eine Verzögerung
der Verarbeitung verhindert, da die unbedingte Verzweigungs
instruktion und die Instruktion am Verzweigungsziel kon
tinuierlich ohne jede Unterbrechung ausgeführt werden.
Obwohl Fig. 12 den Fall zeigt, bei dem das Verzweigungsziel
Ak ist, wird eine Verzögerung der Verarbeitung auf dieselbe
Weise verhindert, wenn das Verzweigungsziel Bk ist.
- A) Als nächstes wird unter Bezugnahme auf Fig. 13 die Pipeline-Verarbeitung für eine bedingte Verzweigungsinstruk tion erläutert, die ausgeführt wird, nachdem der Prozessor in den stationären Zustand eintritt. Die Bedingungen für die bedingte Verzweigungsinstruktion sind mit jenen identisch, die in Fig. 4 gegeben sind, außer daß das Verzweigungsziel hier Ak ist.
In Fig. 13 ist die Operation ab dem Zeitpunkt t1 bis
zum Zeitpunkt t3 mit der Operation identisch, die von
Zeitpunkt t1 bis Zeitpunkt t3 in Fig. 12 ausgeführt wird,
und ihre Beschreibung wird weggelassen. Bei t4 gibt es keine
Veränderung.
- 1. PC = n + 1. DB(n - 1) wird durch die Ausführungsschal tung 5 selektiert und ausgeführt. Andererseits wird DA(n) nicht selektiert, und der Instruktionsdekodierer 4A tritt in den Wartezustand ein. Die bedingte Verzweigungsinstruktion IB2(n) wird in dem Instruktionsdekodierer 4B gehalten und dekodiert.
- 2. IA1(n + 1) und IB1(n + 1) werden in den Instruktions registern 3A bzw. 3B gehalten. Die Steuerschaltung 6C bestimmt, daß DB(n) eine bedingte Verzweigungsinstruktion anzeigt, und das k der relativen Verzweigungszieladresse K = 2k, die in DB(n) enthalten ist, wird in den Programmzähler 2 geladen. Die nachfolgende Operation wird jener ähnlich, die nach einem Rücksetzen ausgeführt wird.
- 3. Das Dekodierresultat DA(n) der Vergleichsinstruk tion wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. DB(n) wird nicht selektiert, und der Instruk tionsdekodierer 4B tritt in den Wartezustand ein. IA2(n + 1) wird in dem Instruktionsdekodierer 4A gehalten und deko diert. PC = k.
- 4. IA1(k) und IB1(k) werden in den Instruktions registern 3A bzw. 3B gehalten. PCN = k + 1.
- 5. Auf der Grundlage des oben beschriebenen Resultats der Ausführung der Vergleichsinstruktion wird das Verzwei gungsziel für die bedingte Verzweigungsinstruktion bestimmt. In Fig. 13 ist die Verzweigungszieladresse bestimmt, um Ak zu sein, und DA(n + 1) und IB2(n + 1) werden unterdrückt. Das Dekodierresultat DB(n) der bedingten Verzweigungsinstruktion wird durch die Ausführungsschaltung 5 selektiert und ohne Bedeutung ausgeführt, und der Speicherzugriff, der DA(n) entspricht, wird durch die Steuerschaltung 6C ohne Bedeutung ausgeführt (die EX-Stufe, die DB(n) entspricht, und die MA- Stufe, die DA(n) entspricht, sind bedeutungslos). IA2(k) und IB2(k) werden in den Instruktionsdekodierern 4A bzw. 4B gehalten und dekodiert. PC = k + 1.
- 6. IA1(k + 1) und IB1(k + 1) werden in den Instruktions registern 3A bzw. 3B gehalten, und PCN = k + 2.
- 7. Das Dekodierresultat DA(k) der Instruktion an dem Verzweigungsziel wird durch die Ausführungsschaltung 5 selektiert und ausgeführt. Andererseits wird DB(k) nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. Das Schreiben in das Register, das DA(n) entspricht, und der Speicherzugriff, der DB(n) entspricht, werden durch die Steuerschaltung 6C ohne Bedeutung ausge führt (die WB-Stufe, die DA(n) entspricht, und die MA-Stufe, die DB(n) entspricht, sind bedeutungslos). IA2(k + 1) wird in dem Instruktionsdekodierer 4A gehalten und dekodiert.
Wie bisher erläutert worden ist, wird eine Verzögerung
der Verarbeitung verhindert, da die bedingte Verzweigungs
instruktion und die Instruktion am Verzweigungsziel ohne
jede Unterbrechung kontinuierlich ausgeführt werden. Obwohl
Fig. 13 den Fall zeigt, bei dem das Verzweigungsziel Ak ist,
wird eine Verzögerung der Verarbeitung auf dieselbe Weise
verhindert, wenn das Verzweigungsziel Bk ist.
Fig. 14 zeigt den Prozessor in der fünften Ausführungs
form gemäß der vorliegenden Erfindung.
Dieser Prozessor ist eine vereinfachte Version der in
Fig. 5 gezeigten Struktur und verkörpert eine ähnliche
Vereinfachung wie jene, die in Fig. 9 gezeigt ist. Um
nämlich die Direktdaten im zweiten Wort einer Direktdaten
übertragungsinstruktion von den Instruktionsregistern 3A
oder 3B direkt der Ausführungsschaltung 5A zuzuführen, sind
die Ausgangsanschlüsse der Instruktionsregister 3A und 3B
über die Umgehung 7A bzw. 7B direkt mit den Eingangs
anschlüssen der Ausführungsschaltung 5A verbunden.
Fig. 15 zeigt die Pipeline-Verarbeitung für eine
Direktdatenübertragungsinstruktion, die ausgeführt wird,
nachdem der Prozessor in den stationären Zustand eintritt.
Die Bedingungen für die Direktdatenübertragungsinstruktion
sind dieselben wie jene, die in Fig. 6 gegeben sind.
Die Operation ab Zeitpunkt t1 bis t4 in Fig. 15 ist
identisch mit der Operation, die ab Zeitpunkt t1 bis t4 in
Fig. 13 ausgeführt wurde, und ihre Erläuterung wird hier
weggelassen. Die Steuerschaltung 6D bestimmt zwischen den
Zeitpunkten t3 und t5, daß DA(n) eine Direktdatenübertra
gungsinstruktion anzeigt.
- 1. PC = n + 1. DB(n - 1) wird durch die Ausführungsschal tung 5A selektiert und ausgeführt. Andererseits wird DA(n) nicht selektiert, und der Instruktionsdekodierer 4A tritt in den Wartezustand ein. Mit der oben beschriebenen Bestimmung passiert IB2(n) die Umgehung 7B und wird in dem internen Register der Ausführungsschaltung 5A als Direktdaten direkt gehalten.
- 2. IA1(n + 1) und IB1(n + 1) werden in den Instruktions registern 3A bzw. 3B gehalten. PCN = n + 2.
- 3. Das Dekodierresultat DA(n) der Direktdatenüber tragungsinstruktion wird durch die Ausführungsschaltung 5A selektiert und ohne Bedeutung ausgeführt. IA2(n + 1) und IB2(n + 1) werden in den Instruktionsdekodierern 4A bzw. 4B gehalten und dekodiert. PC = n + 2.
- 4. IA1(n + 2) und IB1(n + 2) werden in den Instruktions registern 3A bzw. 3B gehalten. PCN = n + 3.
- 5. DA(n + 1) wird durch die Ausführungsschaltung 5A selektiert und ausgeführt. Andererseits wird DB(n + 1) nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. Der Speicherzugriff, der DA(n) entspricht, wird durch die Steuerschaltung 6D ohne Bedeutung ausgeführt. IA2(n + 2) wird in dem Instruktionsdekodierer 4A gehalten und dekodiert.
Die Datenübertragung von Direktdaten mit doppelter
Länge zu einem Register wird in der WB-Stufe ausgeführt, die
DA(n) entspricht.
Wie bisher erläutert worden ist, wird eine Verzögerung
der Verarbeitung verhindert, da die Direktdatenübertragungs
instruktion mit doppelter Länge ohne Unterbrechung in einem
Zyklus ausgeführt wird.
Fig. 16 zeigt den Prozessor in der sechsten Ausfüh
rungsform gemäß der vorliegenden Erfindung.
Dieser Prozessor ist eine vereinfachte Version der in
Fig. 7 gezeigten Struktur und verkörpert eine ähnliche
Vereinfachung wie jene, die in Fig. 9 gezeigt ist. Um
nämlich eine Instruktion mit doppelter Länge schneller
auszuführen, ist zusätzlich zu den Instruktionsdekodierern
4A und 4B zu der in Fig. 9 gezeigten Struktur ein Dekodierer
von Instruktionen mit doppelter Länge 4N hinzugefügt, und
die Ausgangsanschlüsse der Instruktionsregister 3A und 3B
sind mit dem Eingangsanschluß des Dekodierers von Instruk
tionen mit doppelter Länge 4N über die Drähte 8A bzw. 8B
verbunden, und die Ausgangsanschlüsse des Dekodierers von
Instruktionen mit doppelter Länge 4N sind mit dem Eingangs
anschluß der Ausführungsschaltung 5B verbunden.
Fig. 17 zeigt die Pipeline-Verarbeitung für eine
Instruktion mit doppelter Länge, die ausgeführt wird,
nachdem der Prozessor in den stationären Zustand eintritt.
Die Bedingungen für die Instruktion mit doppelter Länge sind
dieselben wie jene, die im Fall von Fig. 8 gegeben sind.
- 1. DB(n - 2) wird durch die Ausführungsschaltung 5B selektiert und ausgeführt. Andererseits wird DA(n - 1) nicht selektiert, und der Instruktionsdekodierer 4A tritt in den Wartezustand ein. IB2(n - 1) wird in dem Instruktionsdekodie rer 4B gehalten und dekodiert. PC = n.
- 2. Das erste Wort IA1(n) und das zweite Wort IB1(n) der Instruktion mit doppelter Länge werden in den Instruk tionsregistern 3A bzw. 3B gehalten. PCN = n + 1.
- 3. DA(n - 1) wird durch die Ausführungsschaltung 5B selektiert und ausgeführt. Andererseits wird DB(n - 1) nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. IA2(n) wird in dem Instruktionsdekodierer 4A gehalten und dekodiert.
- 4. Die Steuerschaltung 6E bestimmt, daß DA(n) eine Instruktion mit doppelter Länge anzeigt.
- 5. Auf der Grundlage der oben beschriebenen Bestim mung treten die Instruktionsdekodierer 4A und 4B in den Wartezustand ein. Andererseits werden IA2(n) und IB2(n) in dem Dekodierer von Instruktionen mit doppelter Länge 4N über die Drähte 8A bzw. 8B gehalten, und die Instruktion mit doppelter Länge wird dekodiert. DB(n - 1) wird durch die Ausführungsschaltung 5B selektiert und ausgeführt. PC = n + 1.
- 6. IA1(n + 1) und IB1(n + 1) werden in den Instruktions registern 3A bzw. 3B gehalten, und PCN = n + 2.
- 7. Die Dekodierresultate DA(n) und DB(n) der Instruktion mit doppelter Länge werden durch die Ausfüh rungsschaltung 5B ausgeführt. IA2(n + 1) und IB2(n + 1) werden in den Instruktionsdekodierern 4A bzw. 4B gehalten und dekodiert. PC = n + 2.
- 8. IA1(n + 2) und IB1(n + 2) werden in den Instruktions registern 3A bzw. 3B gehalten. PCN = n + 3.
- 9. DA(n + 1) wird durch die Ausführungsschaltung 5B selektiert und ausgeführt. Andererseits wird DB(n) nicht selektiert, und der Instruktionsdekodierer 4B tritt in den Wartezustand ein. Die Speicherzugriffe, die DA(n) und DB(n) entsprechen, werden durch die Steuerschaltung 6E ausgeführt. IA2(n + 2) wird in dem Instruktionsdekodierer 4A gehalten und wird dekodiert.
Wie bisher erläutert worden ist, wird eine Verzögerung
der Verarbeitung verhindert, da die Instruktion mit doppel
ter Länge ohne Unterbrechung in einem Zyklus ausgeführt
wird.
Fig. 18 zeigt den Prozessor in der siebten Ausführungs
form gemäß der vorliegenden Erfindung.
In diesem Prozessor wird, um die Struktur im Vergleich
zu jener in Fig. 1 zu vereinfachen, nur ein Instruktions
dekodierer 4 verwendet. Da nur ein Instruktionsdekodierer 4
vorhanden ist, ist die Eingangsstufe innerhalb der Aus
führungsschaltung 5C nicht mit einem Selektor versehen, und
stattdessen ist ein Selektor, der entweder die Ausgabe des
Instruktionsregisters 3A oder 3B selektiert, in der nächsten
Stufe des Registers vorgesehen, das in der Eingangsstufe
innerhalb des Instruktionsdekodierers 4 angeordnet ist. Der
einzige Unterschied zwischen der Ausführungsschaltung 5C und
der Ausführungsschaltung 5, die in Fig. 1 gezeigt ist, ist
der, daß die Ausführungsschaltung 5C nicht mit einem Selek
tor in der internen Eingangsstufe versehen ist. Der einzige
Unterschied zwischen dem Instruktionsdekodierer 4 und dem
Instruktionsdekodierer 4A, der in Fig. 1 gezeigt ist, ist
der, daß der Instruktionsdekodierer 4 mit dem Selektor in
der internen Eingangsstufe versehen ist.
Da nur ein Instruktionsdekodierer 4 vorhanden ist, ist
die Steuerung, die durch die Steuerschaltung 6F ausgeführt
wird, einfacher als jene, die durch die in Fig. 1 gezeigte
Steuerschaltung 6 ausgeführt wird. Wenn IA2 in dem Instruk
tionsdekodierer 4 gehalten wird, fügt die Steuerschaltung 6F
Eins zu PAN hinzu und veranlaßt das Instruktionsregister 3A,
IA1 zu halten. Wenn IB2 in dem Instruktionsdekodierer 4
gehalten wird, fügt die Steuerschaltung 6F Eins zu PBN hinzu
und veranlaßt das Instruktionsregister 3B, IB1 zu halten.
Alle anderen Aspekte dieses Prozessors sind mit jenen
des in Fig. 1 gezeigten Prozessors identisch.
Die normale Pipeline-Verarbeitung, die ausgeführt wird,
nachdem der Prozessor zurückgesetzt ist und bis der Prozes
sor in den stationären Zustand eintritt, wird unter
Bezugnahme auf Fig. 19 erläutert. Die in der Figur nicht
gezeigte Initialisierungsverarbeitung, die unmittelbar nach
einem Rücksetzen ausgeführt wird, ist mit jener identisch,
die in der vorher beschriebenen ersten Ausführungsform
ausgeführt wird.
- 1. PA = n und PB = n. Der Instruktionsdekodierer 4 und die Ausführungsschaltung 5C sind in dem Wartezustand.
- 2. IA1(n) und IB1(n) werden in den Instruktions registern 3A bzw. 3B gehalten. PAN = n + 1 und PBN = n + 1.
- 3. IA2(n) wird in dem Instruktionsdekodierer 4 gehalten und dekodiert. IB2(n) tritt in den Wartezustand ein. PA = n + 1. Die Ausführungsschaltung 5C ist in dem Warte zustand.
- 4. IA1(n + 1) wird in dem Instruktionsregister 3A gehalten. PAN = n + 2.
- 5. DA(n) wird durch die Ausführungsschaltung 5C gehalten und ausgeführt. IB2(n) wird in dem Instruktions dekodierer 4 gehalten und dekodiert. PB = n + 1.
- 6. IB1(n + 1) wird in dem Instruktionsregister 3B gehalten. PBN = n + 2.
- 7. DB(n) wird durch die Ausführungsschaltung 5C ausgeführt. Der Speicherzugriff, der DA(n) entspricht, wird durch die Steuerschaltung 6F ausgeführt. IA2(n + 1) wird in dem Instruktionsdekodierer 4 gehalten und dekodiert. PA = n + 2.
- 8. IA1(n + 2) wird in dem Instruktionsregister 3A gehalten. PAN = n + 3.
- 9. DA(n + 1) wird durch die Ausführungsschaltung 5C ausgeführt. Das Speicherbeschreiben, das DB(n) entspricht, und das Schreiben in das Register, das DA(n) entspricht, werden durch die Steuerschaltung 6F ausgeführt. IB2(n + 1) wird in dem Instruktionsdekodierer 4 gehalten und dekodiert. PB = n + 2.
Die normale Pipeline-Verarbeitung mit 5 Stufen wird auf
die oben beschriebene Weise ausgeführt, und der Prozessor
tritt in den stationären Zustand ein. Da die Pipeline-
Verarbeitung für eine unbedingte Verzweigungsinstruktion und
eine bedingte Verzweigungsinstruktion, die ausgeführt wird,
nachdem der Prozessor in den stationären Zustand eintritt,
leicht aus der vorherigen Erläuterung ersichtlich sind, wird
ihre Erläuterung hier weggelassen. Auch mit diesem Prozessor
wird der schon beschriebene Vorteil, daß eine unbedingte
Verzweigungsinstruktion und eine bedingte Verzweigungs
instruktion ohne Unterbrechung in einem Zyklus ausgeführt
werden können, erreicht.
Fig. 20 zeigt den Prozessor in der achten Ausführungs
form gemäß der vorliegenden Erfindung.
Dieser Prozessor ist eine vereinfachte Version der in
Fig. 5 gezeigten Struktur und verkörpert eine ähnliche
Vereinfachung wie jene, die in Fig. 18 gezeigt ist. Um
nämlich die Direktdaten in dem zweiten Wort einer Direkt
datenübertragungsinstruktion von den Instruktionsregistern
3A oder 3B direkt der Ausführungsschaltung 5D zuzuführen,
sind die Ausgangsanschlüsse der Instruktionsregister 3A und
3B über die Umgehung 7A bzw. 7B direkt mit den Eingangs
anschlüssen der Ausführungsschaltung 5D verbunden.
Fig. 21 zeigt die Pipeline-Verarbeitung für eine
Direktdatenübertragungsinstruktion, die ausgeführt wird,
nachdem der Prozessor in den stationären Zustand eintritt.
Die Bedingungen für die Direktdatenübertragungsinstruktion
sind dieselben wie jene im Fall von Fig. 6.
- 1. DB(n - 2) wird durch die Ausführungsschaltung 5D gehalten und ausgeführt. PA = n. IA2(n - 1) wird in dem Instruktionsdekodierer 4 gehalten und dekodiert.
- 2. IA1(n) wird in dem Instruktionsregister 3A gehal ten. PAN = n + 1.
- 3. DA(n - 1) wird durch die Ausführungsschaltung 5D gehalten und ausgeführt. IB2(n - 1) wird in dem Instruktions dekodierer 4 gehalten und dekodiert. PB = n.
- 4. IB1(n) wird in dem Instruktionsregister 3B gehal ten. PBN = n + 1.
- 5. DB(n - 1) wird durch die Ausführungsschaltung 5D gehalten und ausgeführt. Die Direktdatenübertragungsinstruk tion IA2(n) wird in dem Instruktionsdekodierer 4 gehalten und dekodiert. PA = n + 1.
- 6. IA1(n + 1) wird in dem Instruktionsregister 3A gehalten, so daß PAN = n + 2 ist. Die Steuerschaltung 6G bestimmt, daß IA2(n) eine Direktdatenübertragungsinstruktion ist und daß IB2(n) deshalb Direktdaten sind. Die Steuer schaltung 6G steuert das Senden von IB2(n) als Direktdaten über die Umgehung 7B zu der Ausführungsschaltung 5D.
- 7. Das Dekodierresultat DB(n) der Direktdatenüber tragungsinstruktion wird durch die Ausführungsschaltung 5D ohne Bedeutung ausgeführt. Der Speicherzugriff, der DA(n) entspricht, wird durch die Steuerschaltung 6G ohne Bedeutung ausgeführt. IA2(n + 1) wird in dem Instruktionsdekodierer 4 gehalten und dekodiert. PB = n + 1.
- 8. IB1(n + 1) wird in dem Instruktionsregister 3B gehalten. PBN = n + 2.
- 9. DA(n + 1) wird durch die Ausführungsschaltung 5D ausgeführt. Der Speicherzugriff, der DA(n) entspricht, wird durch die Steuerschaltung 6G ohne Bedeutung ausgeführt. IB2(n + 1) wird in dem Instruktionsdekodierer 4 gehalten und dekodiert. PA = n + 2.
Die Datenübertragung von Direktdaten mit doppelter
Länge zu einem Register wird in der WB-Stufe ausgeführt, die
DA(n) entspricht.
Wie bisher erläutert worden ist, wird eine Verzögerung
der Verarbeitung verhindert, da die Direktdatenübertragungs
instruktion mit doppelter Länge, die Direktdaten enthält,
ohne Unterbrechung in einem Zyklus ausgeführt wird.
Fig. 22 zeigt den Prozessor in der neunten Ausführungs
form gemäß der vorliegenden Erfindung.
Dieser Prozessor ist eine vereinfachte Version der in
Fig. 7 gezeigten Struktur und verkörpert eine ähnliche
Vereinfachung wie jene, die in Fig. 18 gezeigt ist. Um
nämlich eine Instruktion mit doppelter Länge schneller
auszuführen, ist zusätzlich zu dem Instruktionsdekodierer 4
zu der Struktur in Fig. 18 ein Dekodierer von Instruktionen
mit doppelter Länge 4N hinzugefügt, und die Ausgangs
anschlüsse der Instruktionsregister 3A und 3B sind mit den
Eingangsanschlüssen des Dekodierers von Instruktionen mit
doppelter Länge 4N über die Drähte 8A bzw. 8B verbunden, und
der Ausgangsanschluß des Dekodierers von Instruktionen mit
doppelter Länge 4N ist mit dem Eingangsanschluß der Aus
führungsschaltung 5E verbunden.
Da die durch die Steuerschaltung 6H dieses Prozessors
ausgeführte Operation leicht aus der vorherigen Erläuterung
ersichtlich ist, wird ihre Erläuterung hier weggelassen.
Auch mit diesem Prozessor wird der vorher beschriebene
Vorteil, daß eine Instruktion mit doppelter Länge ohne
Unterbrechung in einem Zyklus ausgeführt werden kann,
erreicht.
Obwohl die vorliegende Erfindung in ihren bevorzugten
Ausführungsformen beschrieben worden ist, versteht sich, daß
die Erfindung nicht darauf begrenzt ist und daß verschiedene
Veränderungen und Abwandlungen vorgenommen werden können,
ohne von dem Grundgedanken und dem Schutzumfang der Erfin
dung abzuweichen.
Claims (9)
1. Prozessor, der für jedes i, das von 1 bis n
reicht, umfaßt:
einen i-ten Programmzähler (2A, 2B);
einen i-ten Speicher (1A, 1B), an welchen eine Ausgabe von dem i-ten Programmzähler (2A, 2B) zu adressie ren ist;
ein i-tes Instruktionsregister (3A, 3B) zum Hal ten einer Ausgabe von dem i-ten Speicher (1A, 1B); und
einen i-ten Instruktionsdekodierer (4A, 4B) zum Holen und Dekodieren einer Ausgabe von dem i-ten Instrukti onsregister (3A, 3B);
welcher Prozessor ferner umfaßt:
eine Ausführungsschaltung (5) zum Selektieren von einer der Ausgaben von den ersten bis n-ten Instruktionsde kodierern (4A, 4B) und zum Ausführen einer Verarbeitung auf der Grundlage der selektierten Ausgabe; und
eine Steuerschaltung (6) zum Bewirken, daß die Ausführungsschaltung (5) die genannten Ausgaben von den er sten bis n-ten Instruktionsdekodierern (4A, 4B) sequentiell selektiert und ausführt, daß ferner der i-te Instruktions dekodierer (4A, 4B) die Ausgabe von dem i-ten Instruktions register (3A, 3B) holt, nachdem die Ausführungsschaltung (5) die Ausgabe des i-ten Instruktionsdekodierers ausge wählt hat, ferner den i-ten Programmzähler (2A, 2B) zu ver anlassen, eine Aktualisierung durchzuführen, nachdem der genannte i-te Instruktionsdekodierer (4A, 4B) einen Abruf vorgang ausgeführt hat und um zu bewirken, daß das i-te In struktionsregister (3A, 3B) die Ausgabe von dem i-ten Spei cher (1A, 1B) nach dem Aktualisierungsvorgang gespeichert hält;
wobei in den ersten bis n-ten Speichern (1A, 1B) ein Programm in Einheiten von einem Datenwort in der Rei henfolge von dem ersten Speicher bis zu dem n-ten Speicher nur einmal gespeichert ist (Fig. 1).
einen i-ten Programmzähler (2A, 2B);
einen i-ten Speicher (1A, 1B), an welchen eine Ausgabe von dem i-ten Programmzähler (2A, 2B) zu adressie ren ist;
ein i-tes Instruktionsregister (3A, 3B) zum Hal ten einer Ausgabe von dem i-ten Speicher (1A, 1B); und
einen i-ten Instruktionsdekodierer (4A, 4B) zum Holen und Dekodieren einer Ausgabe von dem i-ten Instrukti onsregister (3A, 3B);
welcher Prozessor ferner umfaßt:
eine Ausführungsschaltung (5) zum Selektieren von einer der Ausgaben von den ersten bis n-ten Instruktionsde kodierern (4A, 4B) und zum Ausführen einer Verarbeitung auf der Grundlage der selektierten Ausgabe; und
eine Steuerschaltung (6) zum Bewirken, daß die Ausführungsschaltung (5) die genannten Ausgaben von den er sten bis n-ten Instruktionsdekodierern (4A, 4B) sequentiell selektiert und ausführt, daß ferner der i-te Instruktions dekodierer (4A, 4B) die Ausgabe von dem i-ten Instruktions register (3A, 3B) holt, nachdem die Ausführungsschaltung (5) die Ausgabe des i-ten Instruktionsdekodierers ausge wählt hat, ferner den i-ten Programmzähler (2A, 2B) zu ver anlassen, eine Aktualisierung durchzuführen, nachdem der genannte i-te Instruktionsdekodierer (4A, 4B) einen Abruf vorgang ausgeführt hat und um zu bewirken, daß das i-te In struktionsregister (3A, 3B) die Ausgabe von dem i-ten Spei cher (1A, 1B) nach dem Aktualisierungsvorgang gespeichert hält;
wobei in den ersten bis n-ten Speichern (1A, 1B) ein Programm in Einheiten von einem Datenwort in der Rei henfolge von dem ersten Speicher bis zu dem n-ten Speicher nur einmal gespeichert ist (Fig. 1).
2. Prozessor nach Anspruch 1, bei dem:
die Ausgaben der ersten bis n-ten Instruktionsre gister (3A, 3B) den Eingangsanschlüssen der Ausführungs schaltung (5A) über Umgehungen (7A, 7B) zugeführt werden; und
die Steuerschaltung (6A) auf der Grundlage der Ausgabe des Dekodierers (4A, 4B) entscheidet, ob die In struktion eine Direktdatenübertragungsinstruktion ist oder nicht, und bewirkt, falls diese als Direktdatenübertra gungsinstruktion bestimmt wird, daß die Ausführungsschal tung (5A) Direktdaten über die Umgehung (7A, 7B) holt, um die Direktdatenübertragungsinstruktion sofort auszuführen (Fig. 5).
die Ausgaben der ersten bis n-ten Instruktionsre gister (3A, 3B) den Eingangsanschlüssen der Ausführungs schaltung (5A) über Umgehungen (7A, 7B) zugeführt werden; und
die Steuerschaltung (6A) auf der Grundlage der Ausgabe des Dekodierers (4A, 4B) entscheidet, ob die In struktion eine Direktdatenübertragungsinstruktion ist oder nicht, und bewirkt, falls diese als Direktdatenübertra gungsinstruktion bestimmt wird, daß die Ausführungsschal tung (5A) Direktdaten über die Umgehung (7A, 7B) holt, um die Direktdatenübertragungsinstruktion sofort auszuführen (Fig. 5).
3. Prozessor nach Anspruch 1, der ferner umfaßt:
einen Dekodierer (4N) für Instruktionen mit N- facher Länge, wobei 2 ≦ N ≦ n ist, zum Dekodieren von N sukzes siven Wörtern in den Ausgaben der ersten bis n-ten Instruk tionsregister (3A, 3B) und zum Zuführen des Dekodierresul tats zu der Ausführungsschaltung (5B);
bei dem die Steuerschaltung (6B) bewirkt, wenn die Ausgabe des Instruktionsdekodierers (4A, 4B), der für einfache Länge vorgesehen ist, eine Instruktion mit N- facher Länge anzeigt, daß der Dekodierer (4N) von Instruk tionen mit N-facher Länge die Instruktion mit N-facher Län ge dekodiert, und bewirkt, daß der Dekodierer (4A, 4B) von Instruktionen mit einfacher Länge eine Instruktion deko diert, die nach der Instruktion mit N-facher Länge folgt (Fig. 7).
einen Dekodierer (4N) für Instruktionen mit N- facher Länge, wobei 2 ≦ N ≦ n ist, zum Dekodieren von N sukzes siven Wörtern in den Ausgaben der ersten bis n-ten Instruk tionsregister (3A, 3B) und zum Zuführen des Dekodierresul tats zu der Ausführungsschaltung (5B);
bei dem die Steuerschaltung (6B) bewirkt, wenn die Ausgabe des Instruktionsdekodierers (4A, 4B), der für einfache Länge vorgesehen ist, eine Instruktion mit N- facher Länge anzeigt, daß der Dekodierer (4N) von Instruk tionen mit N-facher Länge die Instruktion mit N-facher Län ge dekodiert, und bewirkt, daß der Dekodierer (4A, 4B) von Instruktionen mit einfacher Länge eine Instruktion deko diert, die nach der Instruktion mit N-facher Länge folgt (Fig. 7).
4. Prozessor mit:
einem Programmzähler (2);
einem Speicher (1) zum sequentiellen Speichern von n Wörtern des Programms innerhalb einer Adresse und um mit einer Ausgabe des Programmzählers adressiert zu werden, um die n Wörter auszugeben;
ersten bis n-ten Instruktionsregistern (4A, 4B) zum Halten der Ausgabe von dem Speicher (1), und zwar je weils ein Wort bei insgesamt n Wörtern;
ersten bis n-ten Instruktionsdekodierern (3A, 3B) zum Holen und Dekodieren der Ausgaben von den jeweiligen ersten bis n-ten Instruktionsregistern (4A, 4B);
einer Ausführungsschaltung (5) zum Selektieren von einer der Ausgaben von den ersten bis n-ten Instrukti onsdekodierern (3A, 3B) und zum Ausführen einer Verarbei tung auf der Grundlage der selektierten Ausgabe; und
einer Steuerschaltung (6C) zum Bewirken, daß die Ausführungsschaltung (5) die Ausgaben von den ersten bis n- ten Instruktionsdekodierern (3A, 3B) sequentiell selektiert und ausführt, zum Bewirken, daß der i-te Instruktionsdeko dierer (3A, 3B) die Ausgabe von dem i-ten Instruktionsregi ster (4A, 4B) holt, nachdem die Ausführungsschaltung (5) die Ausgabe des i-ten Instruktionsdekodierers (3A, 3B) se lektiert hat, zum Bewirken, daß der Programmzähler (2) ak tualisiert, nachdem die Ausführungsschaltung (5) alle Aus gaben der ersten bis n-ten Instruktionsdekodierer (3A, 3B) einmal selektiert hat, und zum Bewirken, daß die ersten bis n-ten Instruktionsregister (4A, 4B) die Ausgabe von dem Speicher (1) nach dem genannten Aktualisieren halten (Fig. 9, Fig. 10).
einem Programmzähler (2);
einem Speicher (1) zum sequentiellen Speichern von n Wörtern des Programms innerhalb einer Adresse und um mit einer Ausgabe des Programmzählers adressiert zu werden, um die n Wörter auszugeben;
ersten bis n-ten Instruktionsregistern (4A, 4B) zum Halten der Ausgabe von dem Speicher (1), und zwar je weils ein Wort bei insgesamt n Wörtern;
ersten bis n-ten Instruktionsdekodierern (3A, 3B) zum Holen und Dekodieren der Ausgaben von den jeweiligen ersten bis n-ten Instruktionsregistern (4A, 4B);
einer Ausführungsschaltung (5) zum Selektieren von einer der Ausgaben von den ersten bis n-ten Instrukti onsdekodierern (3A, 3B) und zum Ausführen einer Verarbei tung auf der Grundlage der selektierten Ausgabe; und
einer Steuerschaltung (6C) zum Bewirken, daß die Ausführungsschaltung (5) die Ausgaben von den ersten bis n- ten Instruktionsdekodierern (3A, 3B) sequentiell selektiert und ausführt, zum Bewirken, daß der i-te Instruktionsdeko dierer (3A, 3B) die Ausgabe von dem i-ten Instruktionsregi ster (4A, 4B) holt, nachdem die Ausführungsschaltung (5) die Ausgabe des i-ten Instruktionsdekodierers (3A, 3B) se lektiert hat, zum Bewirken, daß der Programmzähler (2) ak tualisiert, nachdem die Ausführungsschaltung (5) alle Aus gaben der ersten bis n-ten Instruktionsdekodierer (3A, 3B) einmal selektiert hat, und zum Bewirken, daß die ersten bis n-ten Instruktionsregister (4A, 4B) die Ausgabe von dem Speicher (1) nach dem genannten Aktualisieren halten (Fig. 9, Fig. 10).
5. Prozessor nach Anspruch 4, bei dem:
die Ausgaben der ersten bis n-ten Instruktionsre gister (3A, 3B) den Eingangsanschlüssen der Ausführungs schaltung (5A) über Umgehungen (7A, 7B) zugeführt werden; und
die Steuerschaltung (6D) auf der Grundlage der Ausgabe des Dekodierers (4A, 4B) bestimmt, ob die Instruk tion eine Direktdatenübertragungsinstruktion ist oder nicht, und bewirkt, falls diese als Direktdatenübertra gungsinstruktion bestimmt wird, daß die Ausführungsschal tung (5A) Direktdaten über die Umgehung (7A, 7B) holt, um die Direktdatenübertragungsinstruktion sofort auszuführen (Fig. 14).
die Ausgaben der ersten bis n-ten Instruktionsre gister (3A, 3B) den Eingangsanschlüssen der Ausführungs schaltung (5A) über Umgehungen (7A, 7B) zugeführt werden; und
die Steuerschaltung (6D) auf der Grundlage der Ausgabe des Dekodierers (4A, 4B) bestimmt, ob die Instruk tion eine Direktdatenübertragungsinstruktion ist oder nicht, und bewirkt, falls diese als Direktdatenübertra gungsinstruktion bestimmt wird, daß die Ausführungsschal tung (5A) Direktdaten über die Umgehung (7A, 7B) holt, um die Direktdatenübertragungsinstruktion sofort auszuführen (Fig. 14).
6. Prozessor nach Anspruch 4, der ferner umfaßt:
einen Dekodierer (4N) von Instruktionen mit N- facher Länge, wobei 2 ≦ N ≦ n ist, zum Dekodieren von N sukzes siven Wörtern in den Ausgaben der ersten bis n-ten Instruk tionsregister (3A, 3B) und zum Zuführen des Dekodierresul tats zu der Ausführungsschaltung (5B);
bei dem die Steuerschaltung (6E) bewirkt, wenn die Ausgabe des Instruktionsdekodierers (4A, 4B), der für einfache Länge vorgesehen ist, eine Instruktion mit N- facher Länge anzeigt, daß der Dekodierer (4N) für Instruk tionen mit N-facher Länge die Instruktion mit N-facher Län ge dekodiert, und bewirkt, daß der Dekodierer (4A, 4B) für Instruktionen mit einfacher Länge eine Instruktion deko diert, die nach der Instruktion mit N-facher Länge folgt (Fig. 16).
einen Dekodierer (4N) von Instruktionen mit N- facher Länge, wobei 2 ≦ N ≦ n ist, zum Dekodieren von N sukzes siven Wörtern in den Ausgaben der ersten bis n-ten Instruk tionsregister (3A, 3B) und zum Zuführen des Dekodierresul tats zu der Ausführungsschaltung (5B);
bei dem die Steuerschaltung (6E) bewirkt, wenn die Ausgabe des Instruktionsdekodierers (4A, 4B), der für einfache Länge vorgesehen ist, eine Instruktion mit N- facher Länge anzeigt, daß der Dekodierer (4N) für Instruk tionen mit N-facher Länge die Instruktion mit N-facher Län ge dekodiert, und bewirkt, daß der Dekodierer (4A, 4B) für Instruktionen mit einfacher Länge eine Instruktion deko diert, die nach der Instruktion mit N-facher Länge folgt (Fig. 16).
7. Prozessor, der für jedes i, das von 1 bis n reicht,
umfaßt:
einen i-ten Programmzähler (2A, 2B);
einen i-ten Speicher (1A, 1B) zum Adressiertwer den mit der Ausgabe von dem i-ten Programmzähler (2A, 2B); und
ein i-tes Instruktionsregister (3A, 3B) zum Hal ten der Ausgaben von dem i-ten Speicher (1A, 1B);
welcher Prozessor ferner umfaßt:
einen Instruktionsdekodierer (4) zum Selektieren von einer der Ausgaben von den ersten bis n-ten Instrukti onsregistern (3A, 3B) und zum Dekodieren der selektierten Ausgabe;
eine Ausführungsschaltung (5C) zum Ausführen ei ner Verarbeitung auf der Grundlage der Ausgabe von dem In struktionsdekodierer (4); und
eine Steuerschaltung (6F) zum Bewirken, daß der Instruktionsdekodierer (4) die Ausgaben von den ersten bis n-ten Instruktionsregistern (3A, 3B) sequentiell selek tiert, zum Bewirken, daß der i-te Programmzähler (2A, 2B) aktualisiert, nachdem die Ausgabe des i-ten Instruktionsre gisters (3A, 3B) durch den Instruktionsdekodierer (4) se lektiert wurde, und zum Bewirken, daß das i-te Instrukti onsregister (3A, 3B) die Ausgaben des i-ten Speichers (1A, 1B) nach dem Aktualisieren hält;
bei dem in den ersten bis n-ten Speichern (1A, 1B) ein Programm in Einheiten von einem Wort in der Reihen folge von dem ersten bis zu dem n-ten Speicher (1A, 1B) nur einmal gespeichert ist (Fig. 18).
einen i-ten Programmzähler (2A, 2B);
einen i-ten Speicher (1A, 1B) zum Adressiertwer den mit der Ausgabe von dem i-ten Programmzähler (2A, 2B); und
ein i-tes Instruktionsregister (3A, 3B) zum Hal ten der Ausgaben von dem i-ten Speicher (1A, 1B);
welcher Prozessor ferner umfaßt:
einen Instruktionsdekodierer (4) zum Selektieren von einer der Ausgaben von den ersten bis n-ten Instrukti onsregistern (3A, 3B) und zum Dekodieren der selektierten Ausgabe;
eine Ausführungsschaltung (5C) zum Ausführen ei ner Verarbeitung auf der Grundlage der Ausgabe von dem In struktionsdekodierer (4); und
eine Steuerschaltung (6F) zum Bewirken, daß der Instruktionsdekodierer (4) die Ausgaben von den ersten bis n-ten Instruktionsregistern (3A, 3B) sequentiell selek tiert, zum Bewirken, daß der i-te Programmzähler (2A, 2B) aktualisiert, nachdem die Ausgabe des i-ten Instruktionsre gisters (3A, 3B) durch den Instruktionsdekodierer (4) se lektiert wurde, und zum Bewirken, daß das i-te Instrukti onsregister (3A, 3B) die Ausgaben des i-ten Speichers (1A, 1B) nach dem Aktualisieren hält;
bei dem in den ersten bis n-ten Speichern (1A, 1B) ein Programm in Einheiten von einem Wort in der Reihen folge von dem ersten bis zu dem n-ten Speicher (1A, 1B) nur einmal gespeichert ist (Fig. 18).
8. Prozessor nach Anspruch 7, bei dem:
die Ausgaben der ersten bis n-ten Instruktionsre gister (3A, 3B) den Eingangsanschlüssen der Ausführungs schaltung (5D) über Umgehungen (7A, 7B) zugeführt werden; und
die Steuerschaltung (6G) auf der Grundlage der Ausgabe des Dekodierers (4) bestimmt, ob die Instruktion eine Direktdatenübertragungsinstruktion ist oder nicht, und bewirkt, falls diese als Direktdatenübertragungsinstruktion bestimmt wird, daß die Ausführungsschaltung (5D) Direktda ten über die Umgehung (7A, 7B) holt, um die Direktdaten übertragungsinstruktion sofort auszuführen (Fig. 20).
die Ausgaben der ersten bis n-ten Instruktionsre gister (3A, 3B) den Eingangsanschlüssen der Ausführungs schaltung (5D) über Umgehungen (7A, 7B) zugeführt werden; und
die Steuerschaltung (6G) auf der Grundlage der Ausgabe des Dekodierers (4) bestimmt, ob die Instruktion eine Direktdatenübertragungsinstruktion ist oder nicht, und bewirkt, falls diese als Direktdatenübertragungsinstruktion bestimmt wird, daß die Ausführungsschaltung (5D) Direktda ten über die Umgehung (7A, 7B) holt, um die Direktdaten übertragungsinstruktion sofort auszuführen (Fig. 20).
9. Prozessor nach Anspruch 7, der ferner umfaßt:
einen Dekodierer (4N) von Instruktionen mit N- facher Länge, wobei 2 ≦ N ≦ n ist, zum Dekodieren von N sukzes siven Wörtern in den Ausgaben der ersten bis n-ten Instruk tionsregister (3A, 3B) und zum Zuführen des Dekodierresul tats zu der Ausführungsschaltung (5E);
bei dem die Steuerschaltung (6H) bewirkt, wenn die Ausgabe des Instruktionsdekodierers (4), der für einfa che Länge vorgesehen ist, eine Instruktion mit N-facher Länge anzeigt, daß der Dekodierer (4N) von Instruktionen mit N-facher Länge die Instruktion mit N-facher Länge deko diert, und bewirkt, daß der Dekodierer (4) von Instruktio nen mit einfacher Länge eine Instruktion dekodiert, die nach der Instruktion mit N-facher Länge folgt (Fig. 22).
einen Dekodierer (4N) von Instruktionen mit N- facher Länge, wobei 2 ≦ N ≦ n ist, zum Dekodieren von N sukzes siven Wörtern in den Ausgaben der ersten bis n-ten Instruk tionsregister (3A, 3B) und zum Zuführen des Dekodierresul tats zu der Ausführungsschaltung (5E);
bei dem die Steuerschaltung (6H) bewirkt, wenn die Ausgabe des Instruktionsdekodierers (4), der für einfa che Länge vorgesehen ist, eine Instruktion mit N-facher Länge anzeigt, daß der Dekodierer (4N) von Instruktionen mit N-facher Länge die Instruktion mit N-facher Länge deko diert, und bewirkt, daß der Dekodierer (4) von Instruktio nen mit einfacher Länge eine Instruktion dekodiert, die nach der Instruktion mit N-facher Länge folgt (Fig. 22).
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5352824A JPH07200289A (ja) | 1993-12-28 | 1993-12-28 | 情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE4442687A1 DE4442687A1 (de) | 1995-06-29 |
DE4442687C2 true DE4442687C2 (de) | 1999-11-25 |
Family
ID=18426693
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4442687A Expired - Fee Related DE4442687C2 (de) | 1993-12-28 | 1994-11-30 | Prozessor mit mehreren Instruktionsregistern |
Country Status (4)
Country | Link |
---|---|
US (1) | US5649226A (de) |
JP (1) | JPH07200289A (de) |
DE (1) | DE4442687C2 (de) |
GB (1) | GB2285322B (de) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5724565A (en) * | 1995-02-03 | 1998-03-03 | International Business Machines Corporation | Method and system for processing first and second sets of instructions by first and second types of processing systems |
US6209020B1 (en) * | 1996-09-20 | 2001-03-27 | Nortel Networks Limited | Distributed pipeline memory architecture for a computer system with even and odd pids |
JP3738134B2 (ja) * | 1998-06-19 | 2006-01-25 | 三洋電機株式会社 | デジタル信号処理装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4587611A (en) * | 1980-09-04 | 1986-05-06 | Amdahl Corporation | Multiple module control store for use in a data processing system |
US5267350A (en) * | 1989-10-26 | 1993-11-30 | Kenji Matsubara | Method for fetching plural instructions using single fetch request in accordance with empty state of instruction buffers and setting of flag latches |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3764988A (en) * | 1971-03-01 | 1973-10-09 | Hitachi Ltd | Instruction processing device using advanced control system |
US4025771A (en) * | 1974-03-25 | 1977-05-24 | Hughes Aircraft Company | Pipe line high speed signal processor |
US4439827A (en) * | 1981-12-28 | 1984-03-27 | Raytheon Company | Dual fetch microsequencer |
JPH0810430B2 (ja) * | 1986-11-28 | 1996-01-31 | 株式会社日立製作所 | 情報処理装置 |
DE69032812T2 (de) * | 1989-07-07 | 1999-04-29 | Hitachi, Ltd., Tokio/Tokyo | Vorrichtung und Verfahren zur parallelen Verarbeitung |
JP2834292B2 (ja) * | 1990-08-15 | 1998-12-09 | 株式会社日立製作所 | データ・プロセッサ |
US5283874A (en) * | 1991-10-21 | 1994-02-01 | Intel Corporation | Cross coupling mechanisms for simultaneously completing consecutive pipeline instructions even if they begin to process at the same microprocessor of the issue fee |
US5357617A (en) * | 1991-11-22 | 1994-10-18 | International Business Machines Corporation | Method and apparatus for substantially concurrent multiple instruction thread processing by a single pipeline processor |
US5317745A (en) * | 1992-01-10 | 1994-05-31 | Zilog, Inc. | Minimal interrupt latency scheme using multiple program counters |
US5559975A (en) * | 1994-06-01 | 1996-09-24 | Advanced Micro Devices, Inc. | Program counter update mechanism |
US5574937A (en) * | 1995-01-30 | 1996-11-12 | Intel Corporation | Method and apparatus for improving instruction tracing operations in a computer system |
-
1993
- 1993-12-28 JP JP5352824A patent/JPH07200289A/ja not_active Withdrawn
-
1994
- 1994-11-23 US US08/347,090 patent/US5649226A/en not_active Expired - Fee Related
- 1994-11-29 GB GB9424058A patent/GB2285322B/en not_active Expired - Fee Related
- 1994-11-30 DE DE4442687A patent/DE4442687C2/de not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4587611A (en) * | 1980-09-04 | 1986-05-06 | Amdahl Corporation | Multiple module control store for use in a data processing system |
US5267350A (en) * | 1989-10-26 | 1993-11-30 | Kenji Matsubara | Method for fetching plural instructions using single fetch request in accordance with empty state of instruction buffers and setting of flag latches |
Also Published As
Publication number | Publication date |
---|---|
US5649226A (en) | 1997-07-15 |
GB2285322A (en) | 1995-07-05 |
JPH07200289A (ja) | 1995-08-04 |
DE4442687A1 (de) | 1995-06-29 |
GB9424058D0 (en) | 1995-01-18 |
GB2285322B (en) | 1998-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69534113T2 (de) | Kompression der Befehlswörter eines Rechners | |
DE4302495C2 (de) | Einrichtung und Verfahren zum Bestimmen der Länge eines Befehls in einem sequentiellen Befehlsstrom | |
DE69132675T2 (de) | Parallelfliessband-Befehlsverarbeitungssystem für sehr lange Befehlswörter | |
DE3750935T2 (de) | Verfahren und System zum Erleichtern der Befehlsausführung in einem digitalen Rechner. | |
DE69129569T2 (de) | Maschine mit sehr langem Befehlswort für leistungsfähige Durchführung von Programmen mit bedingten Verzweigungen | |
DE4206062C2 (de) | Pipelineverarbeitung von Instruktionen | |
DE69127101T2 (de) | System für verteilte mehrfachrechnerkommunikation | |
DE69228360T2 (de) | Registerlesekontrolle | |
DE3851746T2 (de) | Sprungvorhersage. | |
DE69702350T2 (de) | Verzweigungsvorhersageschema für cachespeicherzeile, das von sätzen eines set-assoziativen cachespeichers gemeinsam verwendet wird | |
DE69418146T2 (de) | Temporärer Registersatz für einen superpipeline-superskalaren Prozessor | |
DE69327927T2 (de) | Schnelles Vorausholen und Zuteilung von Befehlen mittels vorausschauender Anmerkungen von früher vorausgeholten | |
DE3638572C2 (de) | ||
DE2829668A1 (de) | Kanaldatenpufferspeicher | |
DE1299146B (de) | Befehlssteuereinheit | |
DE69632655T2 (de) | Pipeline-Datenverarbeitungsanordnung zur Durchführung einer Mehrzahl von untereinander datenabhängigen Datenprozessen | |
DE3114921C2 (de) | Mikroprogramm-Speicheranordnung | |
DE69031696T2 (de) | Cache-Speicher mit der Möglichkeit im Fehlgriffsfall gleichzeitig zu aktualisieren und eine Entscheidung über die nächste Adresse zu treffen | |
DE3802025C1 (de) | ||
DE19526008A1 (de) | Vertikal partitionierter, primärer Befehls-Cache-Speicher | |
DE4134392C2 (de) | Verfahren und Vorrichtung zum Ungültigmachen von Befehlen in Geräten mit Parallelverarbeitung | |
DE69229213T2 (de) | Verfahren und Cache-Speichersteuereinheit zum Holen von Daten für eine Zentraleinheit mit verringerter Wartezeit | |
DE2926351A1 (de) | Look-ahead-speicheradressen- steuereinrichtung | |
DE69033416T2 (de) | Hauptspeicherkarten mit Einzelbit-Setz- und Rücksetz-Funktion | |
DE69032463T2 (de) | Verzweigungssteuerschaltung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |