DE4442687A1 - Prozessor mit mehreren Instruktionsregistern - Google Patents
Prozessor mit mehreren InstruktionsregisternInfo
- Publication number
- DE4442687A1 DE4442687A1 DE4442687A DE4442687A DE4442687A1 DE 4442687 A1 DE4442687 A1 DE 4442687A1 DE 4442687 A DE4442687 A DE 4442687A DE 4442687 A DE4442687 A DE 4442687A DE 4442687 A1 DE4442687 A1 DE 4442687A1
- Authority
- DE
- Germany
- Prior art keywords
- instruction
- decoder
- output
- nth
- register
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 description 62
- 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 40
- 238000010586 diagram Methods 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 9
- 238000000034 method Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 2
- 230000008859 change Effects 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
- 230000000630 rising effect 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 bezieht sich auf einen
Prozessor, der eine Mikroprozessoreinheit (MPU) mit einem
internen oder externen Programmspeicher, ein digitaler
Signalprozessor (DSP) mit einem internen oder externen
Programmspeicher oder dergleichen sein kann.
Diese Typen von Prozessoren führen eine Pipeline-
Verarbeitung aus, um das Verarbeiten zu beschleunigen. Bei
der Pipeline-Verarbeitung nach Stand der Technik ist eine
Instruktionswarteschlange, die zum Beispiel 6 Registerstufen
umfaßt, mit der vorderen Stufe eines Dekodierers verbunden,
und eine Warteschlange mit derselben Anzahl von Stufen ist
mit der hinteren Stufe dieses Dekodierers verbunden. Da eine
normale Instruktion in einem Zyklus ausgeführt werden kann,
wenn sich die Pipeline in dem stationären Zustand stabili
siert hat, ist eine Hochgeschwindigkeitsverarbeitung
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 Pipeline-Verarbeitung zunichte gemacht werden.
Deshalb kann für die Verzweigungsinstruktion eine
Verzweigungsvoraussage ausgeführt werden, indem die
Instruktion 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.
Demzufolge ist es eine Aufgabe der vorliegenden Erfin
dung, einen Prozessor vorzusehen, der die Verarbeitung
beschleunigen kann, ohne den Compiler zu komplizieren.
Gemäß dem ersten Aspekt der vorliegenden Erfindung ist
ein Prozessor vorgesehen, der für jedes i, das 1 bis n ist,
umfaßt: einen i-ten Programmzähler; ein i-tes Speicher
mittel, an welches eine Ausgabe von dem i-ten Programmzähler
zu adressieren ist; ein i-tes Instruktionsregister zum
Halten einer Ausgabe von dem i-ten Speichermittel; und einen
i-ten Instruktionsdekodierer zum Holen und Dekodieren einer
Ausgabe von dem i-ten Instruktionsregister; welcher Prozes
sor ferner umfaßt: eine Ausführungsschaltung zum Selektieren
von einer der Ausgaben von den ersten bis n-ten Instruk
tionsdekodierern und zum Ausführen einer Verarbeitung auf
der Grundlage der selektierten Ausgabe; und eine Steuer
schaltung zum Bewirken, daß die Ausführungsschaltung die
Ausgaben von den ersten bis n-ten Instruktionsdekodierern
sequentiell selektiert und ausführt, zum Bewirken, daß der
i-te Instruktionsdekodierer die Ausgabe von dem i-ten
Instruktionsregister holt, nachdem die Ausführungsschaltung
die Ausgabe des i-ten Instruktionsdekodierers selektiert,
zum Bewirken, daß der i-te Programmzähler aktualisiert,
nachdem der i-te Instruktionsdekodierer holt, und zum
Bewirken, daß das i-te Instruktionsregister die Ausgabe von
dem i-ten Speichermittel nach dem Aktualisieren hält; bei
dem in den ersten bis n-ten Speichermitteln ein Programm in
Einheiten von einem Wort in der Reihenfolge von dem ersten
Speichermittel bis zu dem n-ten Speichermittel gespeichert
ist.
Bezüglich des ersten Aspektes 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.
Gemäß dem zweiten Aspekt der vorliegenden Erfindung ist
ein Prozessor vorgesehen, mit: einem Programmzähler, einem
Speichermittel zum sequentiellen Speichern von n Wörtern des
Programms innerhalb einer Adresse und zum adressiert werden
mit einer Ausgabe des Programmzählers, um die n Wörter
aus zugeben; ersten bis n-ten Instruktionsregistern zum
Halten der Ausgabe von dem Speichermittel, jeweils ein Wort
bei insgesamt n Wörtern; ersten bis n-ten Instruktions
dekodierern zum Holen und Dekodieren der Ausgaben von den
jeweiligen ersten bis n-ten Instruktionsregistern; einer
Ausführungsschaltung zum Selektieren von einer der Ausgaben
von den ersten bis n-ten Instruktionsdekodierern und zum
Ausführen einer Verarbeitung auf der Grundlage der selek
tierten Ausgabe; und einer Steuerschaltung zum Bewirken, daß
die Ausführungsschaltung die Ausgaben von den ersten bis n-
ten Instruktionsdekodierern sequentiell selektiert und
ausführt, zum Bewirken, daß der i-te Instruktionsdekodierer
die Ausgabe von dem i-ten Instruktionsregister holt, nachdem
die Ausführungsschaltung die Ausgabe des i-ten Instruktions
dekodierers selektiert, zum Bewirken, daß der Programmzähler
aktualisiert, nachdem die Ausführungsschaltung alle Ausgaben
der ersten bis n-ten Instruktionsdekodierer einmal selek
tiert, und zum Bewirken, daß die ersten bis n-ten Instruk
tionsregister die Ausgabe von dem Speichermittel nach dem
Aktualisieren halten.
Bezüglich des zweiten Aspektes 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.
Gemäß dem dritten Aspekt der vorliegenden Erfindung ist
ein Prozessor vorgesehen, der für jedes i, das 1 bis n ist,
umfaßt: einen i-ten Programmzähler; ein i-tes Speichermittel
zum Adressiertwerden mit der Ausgabe von dem i-ten Programm
zähler; und ein i-tes Instruktionsregister zum Halten der
Ausgaben von dem i-ten Speichermittel; welcher Prozessor
ferner umfaßt: einen Instruktionsdekodierer zum Selektieren
von einer der Ausgaben von den ersten bis n-ten Instruk
tionsregistern und zum Dekodieren der selektierten Ausgabe;
eine Ausführungsschaltung zum Ausführen einer Verarbeitung
auf der Grundlage der Ausgabe von dem Instruktionsdekodie
rer; und eine Steuerschaltung zum Bewirken, daß der
Instruktionsdekodierer die Ausgaben von den ersten bis n-ten
Instruktionsregistern sequentiell selektiert, zum Bewirken,
daß der i-te Programmzähler aktualisiert, nachdem die
Ausgabe des i-ten Instruktionsregisters durch den Instruk
tionsdekodierer selektiert ist, und zum Bewirken, daß das i-
te Instruktionsregister die Ausgaben des i-ten Speicher
mittels nach dem Aktualisieren hält; bei dem in den ersten
bis n-ten Speichermitteln ein Programm in Einheiten von
einem Wort in der Reihenfolge von dem ersten bis zu dem n
ten Speichermittel gespeichert ist.
Bezüglich des dritten Aspektes 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.
Gemäß dem ersten Modus von irgendeinem des ersten bis
dritten Aspektes der vorliegenden Erfindung ist ein Prozes
sor vorgesehen, bei dem die Ausgaben von den ersten bis n-
ten Instruktionsregistern den Eingangsanschlüssen der
Ausführungsschaltung über Umgehungen zugeführt werden; und
die Steuerschaltung bestimmt auf der Grundlage der Ausgabe
des Dekodierers, ob die Instruktion eine Direktdatenüber
tragungsinstruktion ist oder nicht, und bewirkt, falls diese
als Direktdatenübertragungsinstruktion bestimmt wird, daß
die Ausführungsschaltung Direktdaten über die Umgehung holt,
um die Direktdatenübertragungsinstruktion sofort auszufüh
ren.
Bezüglich des ersten Modus wird eine Direktdatenüber
tragungsinstruktion in einem Zyklus ohne Unterbrechung
ausgeführt, wodurch im Vergleich zum Stand der Technik, der
eine Vielzahl von Zyklen erfordert, eine schnellere Ver
arbeitung erreicht wird.
Gemäß dem zweiten Modus von irgendeinem des ersten bis
dritten Aspektes der vorliegenden Erfindung ist ein Prozes
sor vorgesehen, der ferner umfaßt: einen Dekodierer von
Instruktionen mit N-facher Länge, wobei 2Nn ist, zum
Dekodieren von N sukzessiven Wörtern in den Ausgaben der
ersten bis n-ten Instruktionsregister und zum Zuführen des
Dekodierresultats zu der Ausführungsschaltung; bei dem die
Steuerschaltung bewirkt, wenn die Ausgabe des Instruktions
dekodierers, der für einfache Länge ist, eine Instruktion
mit N-facher Länge anzeigt, daß der Dekodierer von Instruk
tionen mit N-facher Länge die Instruktion mit N-facher Länge
dekodiert, und bewirkt, daß der Dekodierer von Instruktionen
mit einfacher Länge eine Instruktion dekodiert, die nach der
Instruktion mit N-facher Länge folgt.
Bezüglich des zweiten Modus wird eine Instruktion mit
N-facher Länge in einem Zyklus ohne Unterbrechung ausge
führt, wodurch im Vergleich zum Stand der Technik, der eine
Vielzahl von Zyklen erfordert, eine schnellere Verarbeitung
erreicht wird.
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 Selektionssteuersignal 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.
(A) 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.
- (t1) 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.
- (t2) 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.
- (t3) 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.
- (t4) 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.
- (t5) 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.
- (t6) 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.
- (t7) 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.
- (t8) 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.
- (t9) 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.
(B) 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.
- (t1) 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.
- (t2) 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.
- (t3) 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.
- (t4) 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.
- (t5) 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.
- (t6) 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.
- (t7) 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.
- (t8) IA1(k) und IB1(k) werden in den Instruktions registern 3A bzw. 3B gehalten. PAN=k+1 und PBN=k+1.
- (t9) 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 IB2(k) werden in den Instruktionsdeko dierern 4A bzw. 4B gehalten und dekodiert. PA=k+1 und PB=k+1.
(t10) IA1(k+1) und IB1(k+1) werden in den Instruktions
registern 3A bzw. 3B gehalten. PAN=k+2 und PBN=k+2.
(t11) 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.
(C) 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.
- (t8) 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.
- (t9) 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.
- (t10) 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.
- (t11) 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.
- (t12) IB1(k+1) wird in dem Instruktionsregister 3B gehalten. PBN=k+2.
- (t13) 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.
- (t1) 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.
- (t2) 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.
- (t3) 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.
- (t4) 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.
- (t5) 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.
- (t6) 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.
- (t7) 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.
- (t8) IB1(n+1) wird in dem Instruktionsregister 3B gehalten. PBN=n+2.
- (t9) 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.
- (t10) IA1(n+2) und IB1(n+2) werden in den Instruktions registern 3A bzw. 3B gehalten. PAN=n+3.
- (t11) 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.
- (t6) 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.
- (t7) 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.
- (t8) 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.
- (t9) 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.
- (t10) IB1(n+2) wird in dem Instruktionsregister 3B gehalten. PBN=n+3.
- (t11) 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.
(A) 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.
- (t1) 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.
- (t2) IA1(n) und IB1(n) werden in den Instruktions registern 3A bzw. 3B gehalten. PCN=n+1.
- (t3) 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.
- (t4) IA1(n+1) und IB1(n+1) werden in den Instruktions registern 3A bzw. 3B gehalten. PCN=n+2.
- (t5) 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.
- (t7) 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.
- (t8) 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.
- (t9) 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.
(B) 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.
- (t1) 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.
- (t2) 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.
- (t3) 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.
- (t4) 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.
- (t5) 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.
- (t6) IA1(k) und IB1(k) werden in den Instruktions registern 3A bzw. 3B gehalten. PCN=k+1.
- (t7) 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.
- (t8) IA1(k+1) und IB1(k+1) werden in den Instruktions registern 3A bzw. 3B gehalten. PCN=k+2.
- (t9) 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.
(C) 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.
- (t5) 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.
- (t6) 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.
- (t7) 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.
- (t8) IA1(k) und IB1(k) werden in den Instruktions registern 3A bzw. 3B gehalten. PCN=k+1.
- (t9) 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.
- (t10) IA1(k+1) und IB1(k+1) werden in den Instruktions registern 3A bzw. 3B gehalten, und PCN=k+2.
- (t11) 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.
- (t5) 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.
- (t6) IA1(n+1) und IB1(n+1) werden in den Instruktions registern 3A bzw. 3B gehalten. PCN=n+2.
- (t7) 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.
- (t8) IA1(n+2) und IB1(n+2) werden in den Instruktions registern 3A bzw. 3B gehalten. PCN=n+3.
- (t9) 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.
- (t1) 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.
- (t2) 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.
- (t3) 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.
- (t4) Die Steuerschaltung 6E bestimmt, daß DA(n) eine Instruktion mit doppelter Länge anzeigt.
- (t5) 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.
- (t6) IA1(n+1) und IB1(n+1) werden in den Instruktions registern 3A bzw. 3B gehalten, und PCN=n+2.
- (t7) 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.
- (t8) IA1(n+2) und IB1(n+2) werden in den Instruktions registern 3A bzw. 3B gehalten. PCN=n+3.
- (t9) 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
statt dessen 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.
- (t1) PA=n und PB=n. Der Instruktionsdekodierer 4 und die Ausführungsschaltung 5C sind in dem Wartezustand.
- (t2) IA1(n) und IB1(n) werden in den Instruktions registern 3A bzw. 3B gehalten. PAN=n+1 und PBN=n+1.
- (t3) 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.
- (t4) IA1(n+1) wird in dem Instruktionsregister 3A gehalten. PAN=n+2.
- (t5) 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.
- (t6) IB1(n+1) wird in dem Instruktionsregister 3B gehalten. PBN=n+2.
- (t7) 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.
- (t8) IA1(n+2) wird in dem Instruktionsregister 3A gehalten. PAN=n+3.
- (t9) 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.
- (t1) 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.
- (t2) IA1(n) wird in dem Instruktionsregister 3A gehal ten. PAN=n+1.
- (t3) 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.
- (t4) IB1(n) wird in dem Instruktionsregister 3B gehal ten. PBN=n+1.
- (t5) 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.
- (t6) 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.
- (t7) 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.
- (t8) IB1(n+1) wird in dem Instruktionsregister 3B gehalten. PBN=n+2.
- (t9) 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. Ein Prozessor, der für jedes i, das 1 bis n ist,
umfaßt:
einen i-ten Programmzähler;
ein i-tes Speichermittel, an welches eine Ausgabe von dem genannten i-ten Programmzähler zu adressieren ist;
ein i-tes Instruktionsregister zum Halten einer Ausgabe von dem genannten i-ten Speichermittel; und
einen i-ten Instruktionsdekodierer zum Holen und Dekodieren einer Ausgabe von dem genannten i-ten Instruk tionsregister;
welcher Prozessor ferner umfaßt:
eine Ausführungsschaltung zum Selektieren von einer der Ausgaben von den genannten ersten bis n-ten Instruktionsdekodierern und zum Ausführen einer Verarbeitung auf der Grundlage der selektierten Ausgabe; und
eine Steuerschaltung zum Bewirken, daß die genann te Ausführungsschaltung die genannten Ausgaben von den genannten ersten bis n-ten Instruktionsdekodierern sequen tiell selektiert und ausführt, zum Bewirken, daß der genann te i-te Instruktionsdekodierer die Ausgabe von dem genannten i-ten Instruktionsregister holt, nachdem die genannte Ausführungsschaltung die Ausgabe des genannten i-ten Instruktionsdekodierers selektiert, zum Bewirken, daß der genannte i-te Programmzähler aktualisiert, nachdem der genannte i-te Instruktionsdekodierer holt, und zum Bewirken, daß das genannte i-te Instruktionsregister die genannte Ausgabe von dem genannten i-ten Speichermittel nach dem genannten Aktualisieren hält;
bei dem in den genannten ersten bis n-ten Spei chermitteln ein Programm in Einheiten von einem Wort in der Reihenfolge von dem genannten ersten Speichermittel bis zu dem n-ten Speichermittel gespeichert ist.
einen i-ten Programmzähler;
ein i-tes Speichermittel, an welches eine Ausgabe von dem genannten i-ten Programmzähler zu adressieren ist;
ein i-tes Instruktionsregister zum Halten einer Ausgabe von dem genannten i-ten Speichermittel; und
einen i-ten Instruktionsdekodierer zum Holen und Dekodieren einer Ausgabe von dem genannten i-ten Instruk tionsregister;
welcher Prozessor ferner umfaßt:
eine Ausführungsschaltung zum Selektieren von einer der Ausgaben von den genannten ersten bis n-ten Instruktionsdekodierern und zum Ausführen einer Verarbeitung auf der Grundlage der selektierten Ausgabe; und
eine Steuerschaltung zum Bewirken, daß die genann te Ausführungsschaltung die genannten Ausgaben von den genannten ersten bis n-ten Instruktionsdekodierern sequen tiell selektiert und ausführt, zum Bewirken, daß der genann te i-te Instruktionsdekodierer die Ausgabe von dem genannten i-ten Instruktionsregister holt, nachdem die genannte Ausführungsschaltung die Ausgabe des genannten i-ten Instruktionsdekodierers selektiert, zum Bewirken, daß der genannte i-te Programmzähler aktualisiert, nachdem der genannte i-te Instruktionsdekodierer holt, und zum Bewirken, daß das genannte i-te Instruktionsregister die genannte Ausgabe von dem genannten i-ten Speichermittel nach dem genannten Aktualisieren hält;
bei dem in den genannten ersten bis n-ten Spei chermitteln ein Programm in Einheiten von einem Wort in der Reihenfolge von dem genannten ersten Speichermittel bis zu dem n-ten Speichermittel gespeichert ist.
2. Ein Prozessor nach Anspruch 1, bei dem:
die Ausgaben der genannten ersten bis n-ten Instruktionsregister den Eingangsanschlüssen der genannten Ausführungsschaltung über Umgehungen zugeführt werden; und
die genannte Steuerschaltung auf der Grundlage der Ausgabe des genannten Dekodierers entscheidet, ob die Instruktion eine Direktdatenübertragungsinstruktion ist oder nicht, und bewirkt, falls diese als Direktdatenübertragungs instruktion bestimmt wird, daß die genannte Ausführungs schaltung Direktdaten über die genannte Umgehung holt, um die Direktdatenübertragungsinstruktion sofort auszuführen.
die Ausgaben der genannten ersten bis n-ten Instruktionsregister den Eingangsanschlüssen der genannten Ausführungsschaltung über Umgehungen zugeführt werden; und
die genannte Steuerschaltung auf der Grundlage der Ausgabe des genannten Dekodierers entscheidet, ob die Instruktion eine Direktdatenübertragungsinstruktion ist oder nicht, und bewirkt, falls diese als Direktdatenübertragungs instruktion bestimmt wird, daß die genannte Ausführungs schaltung Direktdaten über die genannte Umgehung holt, um die Direktdatenübertragungsinstruktion sofort auszuführen.
3. Ein Prozessor nach Anspruch 1, der ferner umfaßt:
einen Dekodierer von Instruktionen mit N-facher Länge, wobei 2Nn ist, zum Dekodieren von N sukzessiven Wörtern in den Ausgaben der genannten ersten bis n-ten Instruktionsregister und zum Zuführen des Dekodierresultats zu der genannten Ausführungsschaltung;
bei dem die genannte Steuerschaltung bewirkt, wenn die Ausgabe des genannten Instruktionsdekodierers, der für einfache Länge ist, eine Instruktion mit N-facher Länge anzeigt, daß der genannte Dekodierer von Instruktionen mit N-facher Länge die genannte Instruktion mit N-facher Länge dekodiert, und bewirkt, daß der genannte Dekodierer von Instruktionen mit einfacher Länge eine Instruktion deko diert, die nach der genannten Instruktion mit N-facher Länge folgt.
einen Dekodierer von Instruktionen mit N-facher Länge, wobei 2Nn ist, zum Dekodieren von N sukzessiven Wörtern in den Ausgaben der genannten ersten bis n-ten Instruktionsregister und zum Zuführen des Dekodierresultats zu der genannten Ausführungsschaltung;
bei dem die genannte Steuerschaltung bewirkt, wenn die Ausgabe des genannten Instruktionsdekodierers, der für einfache Länge ist, eine Instruktion mit N-facher Länge anzeigt, daß der genannte Dekodierer von Instruktionen mit N-facher Länge die genannte Instruktion mit N-facher Länge dekodiert, und bewirkt, daß der genannte Dekodierer von Instruktionen mit einfacher Länge eine Instruktion deko diert, die nach der genannten Instruktion mit N-facher Länge folgt.
4. Ein Prozessor mit:
einem Programmzähler;
einem Speichermittel zum sequentiellen Speichern von n Wörtern des Programms innerhalb einer Adresse und zum adressiert werden mit einer Ausgabe des genannten Programm zählers, um die genannten n Wörter auszugeben;
ersten bis n-ten Instruktionsregistern zum Halten der Ausgabe von dem genannten Speichermittel, jeweils ein Wort bei insgesamt n Wörtern;
ersten bis n-ten Instruktionsdekodierern zum Holen und Dekodieren der Ausgaben von den jeweiligen genannten ersten bis n-ten Instruktionsregistern;
einer Ausführungsschaltung zum Selektieren von einer der Ausgaben von den genannten ersten bis n-ten Instruktionsdekodierern und zum Ausführen einer Verarbeitung auf der Grundlage der selektierten Ausgabe; und
einer Steuerschaltung zum Bewirken, daß die genannte Ausführungsschaltung die Ausgaben von den genannten ersten bis n-ten Instruktionsdekodierern sequentiell selek tiert und ausführt, zum Bewirken, daß der genannte i-te Instruktionsdekodierer die Ausgabe von dem genannten i-ten Instruktionsregister holt, nachdem die genannte Ausführungs schaltung die Ausgabe des genannten i-ten Instruktions dekodierers selektiert, zum Bewirken, daß der genannte Programmzähler aktualisiert, nachdem die genannte Ausfüh rungsschaltung alle Ausgaben der genannten ersten bis n-ten Instruktionsdekodierer einmal selektiert, und zum Bewirken, daß die genannten ersten bis n-ten Instruktionsregister die Ausgabe von dem genannten Speichermittel nach dem genannten Aktualisieren halten.
einem Programmzähler;
einem Speichermittel zum sequentiellen Speichern von n Wörtern des Programms innerhalb einer Adresse und zum adressiert werden mit einer Ausgabe des genannten Programm zählers, um die genannten n Wörter auszugeben;
ersten bis n-ten Instruktionsregistern zum Halten der Ausgabe von dem genannten Speichermittel, jeweils ein Wort bei insgesamt n Wörtern;
ersten bis n-ten Instruktionsdekodierern zum Holen und Dekodieren der Ausgaben von den jeweiligen genannten ersten bis n-ten Instruktionsregistern;
einer Ausführungsschaltung zum Selektieren von einer der Ausgaben von den genannten ersten bis n-ten Instruktionsdekodierern und zum Ausführen einer Verarbeitung auf der Grundlage der selektierten Ausgabe; und
einer Steuerschaltung zum Bewirken, daß die genannte Ausführungsschaltung die Ausgaben von den genannten ersten bis n-ten Instruktionsdekodierern sequentiell selek tiert und ausführt, zum Bewirken, daß der genannte i-te Instruktionsdekodierer die Ausgabe von dem genannten i-ten Instruktionsregister holt, nachdem die genannte Ausführungs schaltung die Ausgabe des genannten i-ten Instruktions dekodierers selektiert, zum Bewirken, daß der genannte Programmzähler aktualisiert, nachdem die genannte Ausfüh rungsschaltung alle Ausgaben der genannten ersten bis n-ten Instruktionsdekodierer einmal selektiert, und zum Bewirken, daß die genannten ersten bis n-ten Instruktionsregister die Ausgabe von dem genannten Speichermittel nach dem genannten Aktualisieren halten.
5. Ein Prozessor nach Anspruch 4, bei dem:
die Ausgaben der genannten ersten bis n-ten Instruktionsregister den Eingangsanschlüssen der genannten Ausführungsschaltung über Umgehungen zugeführt werden; und
die genannte Steuerschaltung auf der Grundlage der Ausgabe des genannten Dekodierers bestimmt, ob die Instruk tion eine Direktdatenübertragungsinstruktion ist oder nicht, und falls diese als Direktdatenübertragungsinstruk tion bestimmt wird, bewirkt daß die genannte Ausführungsschaltung Direktdaten über die genannte Umgehung holt, um die Direkt datenübertragungsinstruktion sofort auszuführen.
die Ausgaben der genannten ersten bis n-ten Instruktionsregister den Eingangsanschlüssen der genannten Ausführungsschaltung über Umgehungen zugeführt werden; und
die genannte Steuerschaltung auf der Grundlage der Ausgabe des genannten Dekodierers bestimmt, ob die Instruk tion eine Direktdatenübertragungsinstruktion ist oder nicht, und falls diese als Direktdatenübertragungsinstruk tion bestimmt wird, bewirkt daß die genannte Ausführungsschaltung Direktdaten über die genannte Umgehung holt, um die Direkt datenübertragungsinstruktion sofort auszuführen.
6. Ein Prozessor nach Anspruch 4, der ferner umfaßt:
einen Dekodierer von Instruktionen mit N-facher Länge, wobei 2Nn ist, zum Dekodieren von N sukzessiven Wörtern in den Ausgaben der genannten ersten bis n-ten Instruktionsregister und zum Zuführen des Dekodierresultats zu der genannten Ausführungsschaltung;
bei dem die genannte Steuerschaltung bewirkt, wenn die Ausgabe des genannten Instruktionsdekodierers, der für einfache Länge ist, eine Instruktion mit N-facher Länge anzeigt, daß der genannte Dekodierer von Instruktionen mit N-facher Länge die genannte Instruktion mit N-facher Länge dekodiert, und bewirkt, daß der genannte Dekodierer von Instruktionen mit einfacher Länge eine Instruktion deko diert, die nach der genannten Instruktion mit N-facher Länge folgt.
einen Dekodierer von Instruktionen mit N-facher Länge, wobei 2Nn ist, zum Dekodieren von N sukzessiven Wörtern in den Ausgaben der genannten ersten bis n-ten Instruktionsregister und zum Zuführen des Dekodierresultats zu der genannten Ausführungsschaltung;
bei dem die genannte Steuerschaltung bewirkt, wenn die Ausgabe des genannten Instruktionsdekodierers, der für einfache Länge ist, eine Instruktion mit N-facher Länge anzeigt, daß der genannte Dekodierer von Instruktionen mit N-facher Länge die genannte Instruktion mit N-facher Länge dekodiert, und bewirkt, daß der genannte Dekodierer von Instruktionen mit einfacher Länge eine Instruktion deko diert, die nach der genannten Instruktion mit N-facher Länge folgt.
7. Ein Prozessor, der für jedes i, das 1 bis n ist,
umfaßt:
einen i-ten Programmzähler;
ein i-tes Speichermittel zum Adressiertwerden mit der Ausgabe von dem genannten i-ten Programmzähler; und
ein i-tes Instruktionsregister zum Halten der Ausgaben von dem genannten i-ten Speichermittel;
welcher Prozessor ferner umfaßt:
einen Instruktionsdekodierer zum Selektieren von einer der Ausgaben von den genannten ersten bis n-ten Instruktionsregistern und zum Dekodieren der selektierten Ausgabe;
eine Ausführungsschaltung zum Ausführen einer Verarbeitung auf der Grundlage der Ausgabe von dem genannten Instruktionsdekodierer; und
eine Steuerschaltung zum Bewirken, daß der genann te Instruktionsdekodierer die Ausgaben von den genannten ersten bis n-ten Instruktionsregistern sequentiell selek tiert, zum Bewirken, daß der genannte i-te Programmzähler aktualisiert, nachdem die Ausgabe des genannten i-ten Instruktionsregisters durch den genannten Instruktions dekodierer selektiert ist, und zum Bewirken, daß das genann te i-te Instruktionsregister die Ausgaben des genannten i- ten Speichermittels nach dem genannten Aktualisieren hält;
bei dem in den genannten ersten bis n-ten Spei chermitteln ein Programm in Einheiten von einem Wort in der Reihenfolge von dem genannten ersten bis zu dem genannten n- ten Speichermittel gespeichert ist.
einen i-ten Programmzähler;
ein i-tes Speichermittel zum Adressiertwerden mit der Ausgabe von dem genannten i-ten Programmzähler; und
ein i-tes Instruktionsregister zum Halten der Ausgaben von dem genannten i-ten Speichermittel;
welcher Prozessor ferner umfaßt:
einen Instruktionsdekodierer zum Selektieren von einer der Ausgaben von den genannten ersten bis n-ten Instruktionsregistern und zum Dekodieren der selektierten Ausgabe;
eine Ausführungsschaltung zum Ausführen einer Verarbeitung auf der Grundlage der Ausgabe von dem genannten Instruktionsdekodierer; und
eine Steuerschaltung zum Bewirken, daß der genann te Instruktionsdekodierer die Ausgaben von den genannten ersten bis n-ten Instruktionsregistern sequentiell selek tiert, zum Bewirken, daß der genannte i-te Programmzähler aktualisiert, nachdem die Ausgabe des genannten i-ten Instruktionsregisters durch den genannten Instruktions dekodierer selektiert ist, und zum Bewirken, daß das genann te i-te Instruktionsregister die Ausgaben des genannten i- ten Speichermittels nach dem genannten Aktualisieren hält;
bei dem in den genannten ersten bis n-ten Spei chermitteln ein Programm in Einheiten von einem Wort in der Reihenfolge von dem genannten ersten bis zu dem genannten n- ten Speichermittel gespeichert ist.
8. Ein Prozessor nach Anspruch 7, bei dem:
die Ausgaben der genannten ersten bis n-ten Instruktionsregister den Eingangsanschlüssen der genannten Ausführungsschaltung über Umgehungen zugeführt werden; und
die genannte Steuerschaltung auf der Grundlage der Ausgabe des genannten Dekodierers bestimmt, ob die Instruk tion eine Direktdatenübertragungsinstruktion ist oder nicht, und bewirkt, falls diese als Direktdatenübertragungsinstruk tion bestimmt wird, daß die genannte Ausführungsschaltung Direktdaten über die genannte Umgehung holt, um die Direkt datenübertragungsinstruktion sofort auszuführen.
die Ausgaben der genannten ersten bis n-ten Instruktionsregister den Eingangsanschlüssen der genannten Ausführungsschaltung über Umgehungen zugeführt werden; und
die genannte Steuerschaltung auf der Grundlage der Ausgabe des genannten Dekodierers bestimmt, ob die Instruk tion eine Direktdatenübertragungsinstruktion ist oder nicht, und bewirkt, falls diese als Direktdatenübertragungsinstruk tion bestimmt wird, daß die genannte Ausführungsschaltung Direktdaten über die genannte Umgehung holt, um die Direkt datenübertragungsinstruktion sofort auszuführen.
9. Ein Prozessor nach Anspruch 7, der ferner umfaßt:
einen Dekodierer von Instruktionen mit N-facher Länge, wobei 2Nn ist, zum Dekodieren von N sukzessiven Wörtern in den Ausgaben der genannten ersten bis n-ten Instruktionsregister und zum Zuführen des Dekodierresultats zu der genannten Ausführungsschaltung;
bei dem die genannte Steuerschaltung bewirkt, wenn die Ausgabe des genannten Instruktionsdekodierers, der für einfache Länge ist, eine Instruktion mit N-facher Länge anzeigt, daß der genannte Dekodierer von Instruktionen mit N-facher Länge die genannte Instruktion mit N-facher Länge dekodiert, und bewirkt, daß der genannte Dekodierer von Instruktionen mit einfacher Länge eine Instruktion deko diert, die nach der genannten Instruktion mit N-facher Länge folgt.
einen Dekodierer von Instruktionen mit N-facher Länge, wobei 2Nn ist, zum Dekodieren von N sukzessiven Wörtern in den Ausgaben der genannten ersten bis n-ten Instruktionsregister und zum Zuführen des Dekodierresultats zu der genannten Ausführungsschaltung;
bei dem die genannte Steuerschaltung bewirkt, wenn die Ausgabe des genannten Instruktionsdekodierers, der für einfache Länge ist, eine Instruktion mit N-facher Länge anzeigt, daß der genannte Dekodierer von Instruktionen mit N-facher Länge die genannte Instruktion mit N-facher Länge dekodiert, und bewirkt, daß der genannte Dekodierer von Instruktionen mit einfacher Länge eine Instruktion deko diert, die nach der genannten Instruktion mit N-facher Länge folgt.
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 true DE4442687A1 (de) | 1995-06-29 |
DE4442687C2 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 | 株式会社日立製作所 | 情報処理装置 |
EP0407911B1 (de) * | 1989-07-07 | 1998-12-09 | Hitachi, Ltd. | 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 |
---|---|
DE4442687C2 (de) | 1999-11-25 |
JPH07200289A (ja) | 1995-08-04 |
GB2285322A (en) | 1995-07-05 |
GB2285322B (en) | 1998-10-07 |
US5649226A (en) | 1997-07-15 |
GB9424058D0 (en) | 1995-01-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE4302495C2 (de) | Einrichtung und Verfahren zum Bestimmen der Länge eines Befehls in einem sequentiellen Befehlsstrom | |
DE3750935T2 (de) | Verfahren und System zum Erleichtern der Befehlsausführung in einem digitalen Rechner. | |
DE3786594T2 (de) | Speicherverwaltungseinheit für Digitalsignalprozessor. | |
DE4035405C2 (de) | ||
US5283874A (en) | Cross coupling mechanisms for simultaneously completing consecutive pipeline instructions even if they begin to process at the same microprocessor of the issue fee | |
DE3638572C2 (de) | ||
DE3882487T2 (de) | Vektorprozessor zur schnellen verarbeitung von rekursiven gleichungen. | |
DE4335475A1 (de) | Datenverarbeitungseinrichtung mit Cache-Speicher | |
DE2944419C2 (de) | ||
DE69826404T2 (de) | Datenverarbeitungssystem mit mehreren Prozessoren, die eine Registerbank gemeinsam benutzen | |
DE19855806A1 (de) | Vorrichtung und Verfahren zum Durchführen von Unterprogrammaufruf- und Rücksprungoperationen | |
DE2829668A1 (de) | Kanaldatenpufferspeicher | |
DE2117936A1 (de) | Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems | |
DE69133571T2 (de) | Datenprozessor mit der Fähigkeit, zwei Befehle gleichzeitig auszuführen | |
DE3114921C2 (de) | Mikroprogramm-Speicheranordnung | |
DE69632655T2 (de) | Pipeline-Datenverarbeitungsanordnung zur Durchführung einer Mehrzahl von untereinander datenabhängigen Datenprozessen | |
DE2248296A1 (de) | Programmsteuereinrichtung | |
DE2926351A1 (de) | Look-ahead-speicheradressen- steuereinrichtung | |
DE3851230T2 (de) | Steuergerät für gespeicherte programme mit einer möglichkeit für bedingte abzweigung wie in einem videosignalverarbeitungssystem. | |
EP1117037B1 (de) | Datenverarbeitungsvorrichtung zum parallelen Verarbeiten von unabhängigen Prozessen (Threads) | |
DE4222275C2 (de) | Parallelprozessor und Betriebsverfahren für diesen | |
DE2906685C2 (de) | ||
DE4442687C2 (de) | Prozessor mit mehreren Instruktionsregistern | |
DE3633898C2 (de) | ||
DE69930893T2 (de) | Digitaler Signalprozessor für Daten mit grosser Bitlänge |
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 |