DE4434529A1 - Verfahren zum Verarbeiten eines Befehls mit Einsatzbedingung und Vorrichtung dazu - Google Patents
Verfahren zum Verarbeiten eines Befehls mit Einsatzbedingung und Vorrichtung dazuInfo
- Publication number
- DE4434529A1 DE4434529A1 DE4434529A DE4434529A DE4434529A1 DE 4434529 A1 DE4434529 A1 DE 4434529A1 DE 4434529 A DE4434529 A DE 4434529A DE 4434529 A DE4434529 A DE 4434529A DE 4434529 A1 DE4434529 A1 DE 4434529A1
- Authority
- DE
- Germany
- Prior art keywords
- condition
- true
- false
- command
- exception
- 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.)
- Ceased
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000012545 processing Methods 0.000 title claims description 118
- 238000012958 reprocessing Methods 0.000 claims description 16
- 230000005540 biological transmission Effects 0.000 claims description 6
- 230000001419 dependent effect Effects 0.000 claims description 3
- 230000014759 maintenance of location Effects 0.000 claims 2
- 230000008569 process Effects 0.000 abstract description 8
- 238000011084 recovery Methods 0.000 description 41
- 238000010586 diagram Methods 0.000 description 34
- 230000004044 response Effects 0.000 description 33
- 238000010276 construction Methods 0.000 description 16
- 230000008859 change Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000032050 esterification Effects 0.000 description 2
- 238000005886 esterification reaction Methods 0.000 description 2
- 108090000623 proteins and genes Proteins 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 210000004916 vomit Anatomy 0.000 description 2
- 230000008673 vomiting Effects 0.000 description 2
- 235000010678 Paulownia tomentosa Nutrition 0.000 description 1
- 240000002834 Paulownia tomentosa Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000009189 diving Effects 0.000 description 1
- 239000003112 inhibitor Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000000746 purification Methods 0.000 description 1
- 238000004148 unit process Methods 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/30094—Condition code generation, e.g. Carry, Zero flag
-
- 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/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/262—Arrangements for next microinstruction selection
-
- 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/3842—Speculative instruction execution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Description
Die vorliegende Erfindung bezieht sich allgemein auf Verfahren
zum Verarbeiten eines Befehls mit einer Einsatzbedingung und Vor
richtungen dazu.
Genauer bezieht sie sich auf ein Verfahren zum Verarbeiten einer
Mehrzahl von Befehlen, die jeweils eine entsprechende Einsatzbe
dingung unter einer Anzahl von Umständen aufweisen, und eine Vor
richtung dazu. Dabei wird die Einsatzbedingung aus Bedingungen
gebildet, die zum letztendlichen Verarbeiten eines entsprechenden
Befehls notwendig sind.
Fig. 28 ist ein Blockschaltbild, das den Aufbau eines Mikropro
zessors als einen herkömmlichen Befehlsprozessor darstellt.
Wie in Fig. 28 gezeigt ist, weist der Mikroprozessor eine Regi
sterdatei (Registerspeicher) 1, die aus einer Mehrzahl von Regi
stern gebildet wird, eine ALU 2 (Arithmetic and Logical Unit =
arithmetische und logische Einheit), einen Speicher 3 zum Halten
von Befehlen, einen Programmzähler 4, der Adressen für auszufüh
rende Befehle hält und eine solche Adresse an den Speicher 3 an
legt, und eine Erhöhungsschaltung 5 zum Erhöhen (Inkrementieren)
des Programmzählers 4 auf.
Der Mikroprozessor weist weiter ein Befehlsregister 6 zum Halten
eines Befehls, der aus dem Speicher 3 geholt ist, einen Befehls
dekoder 7 zum Dekodieren des Befehls und zum Erzeugen eines Steu
ersignals zum Steuern des Lesens/Schreibens aus dem/in das Regi
ster 1 und eines Steuersignals zum Steuern der ALU 2, eine Test
schaltung 8 zum Bestimmen einer Verzweigungsbedingung basierend
auf aus der Registerdatei 1 gelesenen Daten und eine Schaltung 9
zum Berechnen einer Zieladresse (Zieladressenberechnungsschal
tung) als Reaktion auf ein Steuersignal von der Testschaltung 8
auf.
Bei dem Mikroprozessor wird ein auszuführender Befehl aus den in
dem Speicher 3 gehaltenen Befehlen zuerst durch den Programmzäh
ler 4 adressiert. Dann wird der adressierte Befehl aus dem Spei
cher 3 geholt und in dem Befehlsregister 6 gehalten. Der in dem
Befehlsregister 6 gehaltene Befehl wird durch den Befehlsdekoder
7 dekodiert und Lesen/Schreiben aus der/in die Registerdatei 1
wird gesteuert und die ALU 2 wird als Reaktion auf den Inhalt des
Befehls gesteuert.
Falls der durch das Befehlsregister 6 geholte Befehl ein Verar
beitungsbefehl ist, werden Daten entsprechend aus zwei Registern
in der Registerdatei 1 gelesen. Diese Stücke von ausgelesenen
Daten werden durch die ALU 2 verarbeitet, und der resultierende
Wert bzw. die resultierenden Daten wird/bzw. werden in ein Regi
ster in der Registerdatei 1 geschrieben.
Falls der durch das Befehlsregister 6 geholte Befehl ein Verzwei
gungsbefehl ist, werden zwei Stücke von aus der Registerdatei 1
gelesenen Daten an die Testschaltung 8 angelegt. Basierend auf
diesen Stücken von Daten bestimmt die Testschaltung 8, ob die
Verzweigungsbedingung erfüllt ist oder nicht. Genauer bestimmt
die Testschaltung 8, ob die Bedingung wahr oder falsch ist.
Falls die Bedingung wahr ist, wird die Zieladresse durch die
Zieladressenberechnungsschaltung 9 zum Anlegen an den Programm
zähler 4 berechnet. Falls die Bedingung falsch ist, wird der Pro
grammzähler 4 erhöht (inkrementiert).
Im allgemeinen muß ein Mikroprozessor manchmal eine Verarbeitung
bzw. einen Befehl, der "Ausnahme" genannt wird, in der Mitte bzw.
dem Verlauf der Ausführung eines Befehls ausführen. Falls zum
Beispiel in einem Mikroprozessor mit virtuellem Speicher ein Be
fehl (Ladebefehl) zum Holen von Daten aus dem Speicher 3 in ein
Register in der Registerdatei 1 ausgeführt wird, sind die zu la
denden Daten manchmal nicht in dem Speicher 3 vorhanden bzw. prä
sent. Eine solche Ausnahme wird im allgemeinen "Page-Fehler" (pa
ge fault) genannt. In einem solchen Fall muß eine spezielle Rou
tine, die "Ausnahmebehandlung" (exception handler) genannt wird,
aufgerufen werden, um die Daten von einer Platte oder Diskette in
den Speicher 3 zu laden. Nachfolgend muß die Verarbeitung bzw.
der Verarbeitungsablauf von dem Befehl wieder aufgenommen werden,
der die Ausnahme (Exception) verursacht hat.
Fig. 10 ist ein Ablaufdiagramm, das ein Beispiel eines Programms
zeigt. Entsprechend dem Ablaufdiagramm wird nachdem die Bedingung
(für den Befehl "falls" wird im folgenden "if" verwendet)
C1 : if(R2<R3) in einem Basisblock K1 bestimmt ist, entweder ein
Basisblock L1 oder L3 initiiert bzw. aufgerufen. Genauer sind der
Befehl I2 : r4=r12+r13 im Basisblock L1 und der Befehl
I3 : r5=r12-r13 basierend auf der Bedingung C1 auszuführen.
Bei dem herkömmlichen Mikroprozessor, der oben beschrieben ist,
kann keine der Anweisungen I2 und I3 ausgeführt werden, bis die
Bedingung C1 bestimmt ist. Zum Beispiel werden Daten, die aus der
Ausführung des Befehls I2 resultieren, in ein Register r4 in der
Registerdatei 1 nur dann geschrieben, wenn die Bedingung C1 wahr
ist. Das Schreiben von Daten, die aus der Ausführung des Befehls
I2 resultieren, in das Register r4, wobei die Bedingung C1 falsch
ist, zerstört die zuvor durch das Register r4 gehaltenen Daten.
Derart ist der herkömmliche Mikroprozessor nicht in der Lage, die
Befehle I2, I3 und I4, die basierend auf den Bedingungen C1 und
C2 auszuführen sind, auszuführen, bis die Bedingungen C1 und C2
bestimmt sind.
Obwohl Mikroprozessoren mit einer Mehrzahl von ALUs in den ver
gangenen Jahren vorgeschlagen worden sind, können solche Mikro
prozessoren einen Befehl, der basierend auf einer oder mehreren
Bedingungen auszuführen ist, immer noch nicht ausführen, bevor
diese Bedingungen bestimmt sind. Einige aus der Mehrzahl der ALUs
arbeiten für einige Momente bzw. Zeitabschnitte überhaupt nicht,
und eine ausreichend hohe Betriebsgeschwindigkeit der Verarbei
tung kann nicht erreicht werden.
Es ist Aufgabe der vorliegenden Erfindung, einen Mikroprozessor,
der zum Ausführen eines Befehls, der nach der Bestimmung einer
Bedingung auszuführen ist, in der Lage ist, bevor eine solche
Bestimmung ausgeführt ist, und ein Verfahren für eine solche Be
fehlsbearbeitung zu ermöglichen.
Diese Aufgabe wird gelöst durch ein Verfahren nach Anspruch 1
oder 4 bzw. einen Prozessor nach Anspruch 6 oder 20.
Weiterbildungen der Erfindung sind in den Unteransprüchen gekenn
zeichnet.
Die Erfindung ermöglicht einen Mikroprozessor, der zur Verarbei
tung von Befehlen mit einer höheren Geschwindigkeit in der Lage
ist.
Die Erfindung ermöglicht weiter einen Mikroprozessor, der zum
Verarbeiten eines Befehls auf das Austreten einer Ausnahme hin in
der Lage ist.
Ein Verfahren zum Verarbeiten eines Befehls mit einer Einsatzbe
dingung entsprechend einer Ausführungsform der vorliegenden Er
findung verarbeitet eine Mehrzahl von Befehlen, die jeweils eine
entsprechende Einsatzbedingung unter einer Mehrzahl von Bedingun
gen aufweisen.
Die Einsatzbedingung wird durch irgendeine der obigen Bedingungen
gebildet, die zum letztendlichen Verarbeiten des entsprechenden
Befehls notwendig sind. Das obige Verarbeitungsverfahren weist
die Schritte auf: Bestimmen von mindestens einer Bedingung, die
aus den obigen Bedingungen ausgewählt wird; Vergleichen einer
Einsatzbedingung, die mindestens einem Befehl entspricht, der aus
den obigen Befehlen ausgewählt worden ist, und der obigen Bedin
gung, Ausführen des ausgewählten Befehls nach dem Vergleich und
Erzeugen resultierender Daten; Halten der erzeugten Daten in ei
ner deterministischen Art in einem ersten Fall, in dem wahr oder
falsch für alle Bedingungen in der entsprechenden Einsatzbedin
gung mit wahr oder falsch für die bereits bestimmte Bedingung
übereinstimmen, und provisorisches Halten der erzeugten Ergebnis
daten in einem zweiten Fall, in dem wahr oder falsch für irgend
eine der entsprechenden Einsatzbedingung mit wahr oder falsch für
die bereits bestimmte Bedingung übereinstimmt und die anderen
Bedingungen in der entsprechenden Einsatzbedingung noch nicht
bestimmt sind; und erneutes Halten der resultierenden Daten, die
provisorisch gehalten werden, in einer deterministischen Art zu
dem Zeitpunkt des Auftretens des Falls, wenn wahr oder falsch für
alle Bedingungen in der entsprechenden Einsatzbedingung mit wahr
oder falsch für bereits bestimmte Bedingung übereinstimmen.
Ein Prozessor für einen Befehl mit einer Einsatzbedingung ent
sprechend einer anderen Ausführungsform der Erfindung verarbeitet
eine Mehrzahl von Befehlen, die jeweils eine entsprechende Ein
satzbedingung unter einer Mehrzahl von Bedingungen aufweisen. Die
obige Einsatzbedingung wird von irgendeiner der Bedingungen ge
bildet, die zum letztendlichen Verarbeiten des entsprechenden
Befehls notwendig sind. Der Prozessor weist eine Betriebseinheit,
eine Datenhalteeinheit, eine Wahr-Falsch-Halteeinheit, eine Aus
nahmesteuerschaltung und eine Einsatzsteuerschaltung auf. Die Be
triebseinheit führt mindestens einen Befehl, der aus den obigen
Befehlen ausgewählt worden ist, aus und bestimmt mindestens eine
Bedingung, die aus den obigen Bedingungen ausgewählt worden ist.
Die Datenhalteeinheit hält die durch die Ausführung des ausge
wählten Befehls durch die Betriebseinheit produzierten Ergebnis
daten deterministisch oder provisorisch. Die Wahr-Falsch-Halte
einheit weist eine Mehrzahl von Eingängen bzw. Eingangsadressen
entsprechend der Mehrzahl Bedingungen auf. Die Eingangsadressen
halten jeweils eine erste Bedingungsinformation, daß eine ent
sprechende Bedingung wahr ist, eine zweite Bedingungsinformation,
daß die entsprechende Bedingung falsch ist, oder eine dritte Be
dingungsinformation, daß wahr oder falsch für die entsprechende
Bedingung unbestimmt ist. Die Ausführsteuerschaltung vergleicht
die entsprechende Einsatzbedingung mit der Bedingungsinformation,
die von der Wahr/Falsch-Halteeinheit erhalten wird, (i) steuert
die Datenhalteeinheit zum deterministischen Halten der Ergebnis
daten in einem ersten Fall, in dem wahr oder falsch für alle Be
dingungen in der entsprechenden Einsatzbedingung entsprechend mit
der Bedingungsinformation entsprechend den Bedingungen überein
stimmt und (ii) steuert die Datenhalteeinheit zum provisorischen
Halten der Ergebnisdaten in einem zweiten Fall, in dem wahr oder
falsch für irgendeine Bedingung in der entsprechenden Einsatzbe
dingung entsprechend mit der Bedingungsinformation, die dieser
Bedingung entspricht, übereinstimmt, und die Bedingungsinforma
tion entsprechend der anderen Bedingungen in der entsprechenden
Einsatzbedingung die dritte Bedingungsinformation ist. Die Ein
satzsteuerschaltung vergleicht die entsprechende Einsatzbedingung
mit der Bedingungsinformation, die von der Wahr/Falsch-Halteein
heit erhalten wird, und steuert die Datenhalteeinheit zum erneu
ten Halten der Ergebnisdaten, die sie provisorisch gehalten hat,
in einer deterministischen Weise zu dem Zeitpunkt des Einsatzes
bzw. Auftretens des Falles, in dem wahr oder falsch für alle Be
dingungen in der entsprechenden Einsatzbedingung entsprechend mit
der Bedingungsinformation für alle Bedingungen übereinstimmt.
Bei dem Prozessor weist ein Ausführbefehl (bzw. ausführender Be
fehl) zum Bestimmen von mindestens einer Bedingung aus den obigen
Bedingungen bevorzugterweise eine entsprechende Einsatzbedingung
auf. Jeder Eingang bzw. jede Eingangsadresse in der Wahr/Falsch-
Halteeinheit hält deterministisch oder provisorisch Bedingungs
information. Die Ausführsteuerschaltung vergleicht eine Einsatz
bedingung, die dem Bedingungsbefehl entspricht, mit der Bedin
gungsinformation, die von der Wahr/Falsch-Halteeinheit erhalten
wird. Die Ausführsteuerschaltung (i) steuert weiter die
Wahr/Falsch-Halteeinheit zum deterministischen Halten der ersten
oder der zweiten Bedingungsinformation, die durch Bestimmung der
ausgewählten Bedingung durch die Betriebseinheit basierend auf
dem Bedingungsbefehl produziert worden ist, in einem dritten
Fall, in dem wahr oder falsch für alle Bedingungen in der Ein
satzbedingung, die dem Bedingungsbefehl entspricht, entsprechend
mit der Bedingungsinformation übereinstimmen. Die Ausführsteuer
schaltung (ii) steuert weiter die Wahr/Falsch-Halteeinheit zum
provisorischen Halten der ersten oder zweiten Bedingungsinforma
tion, die durch Bestimmung der ausgewählten Bedingung durch die
Betriebseinheit, basierend auf dem Bedingungsbefehl produziert
worden ist, in einem vierten Fall, in dem wahr oder falsch für
irgendeine Bedingung aus der Einsatzbedingung, die dem Bedin
gungsbefehl entspricht, entsprechend mit der Bedingungsinforma
tion übereinstimmt, die dieser beliebigen Bedingung entspricht,
und die Bedingungsinformation, die den anderen Bedingungen in der
entsprechenden Einsatzbedingung entspricht, die dritte Bedin
gungsinformation ist. Der Prozessor weist weiter eine zweite Ein
satzsteuerschaltung auf, die die Einsatzbedingung, die dem Bedin
gungsbefehl entspricht, mit der Bedingungsinformation, die durch
die Wahr/Falsch-Halteeinheit erhalten wird, vergleicht und die
Wahr/Falsch-Halteschaltung zum erneuten Halten der ersten oder
der zweiten Bedingungsinformation, die durch die Wahr/Falsch-Hal
teeinheit provisorisch gehalten worden ist, in deterministischer
Weise steuert, zu dem Zeitpunkt des Einsatzes bzw. Auftretens,
bei dem wahr oder falsch für alle Bedingungen der Einsatzbedin
gung, die dem Bedingungsbefehl entspricht, mit der Bedingungsin
formation, die allen Bedingungen entspricht, übereinstimmt.
Der Prozessor weist bevorzugterweise weiter eine Ausnahmespei
cherschaltung und eine Ausnahmeverarbeitungseinheit auf. Die Aus
nahmespeicherschaltung speichert die Erzeugung einer Ausnahme,
wenn die Ausnahme während der Verarbeitung des ausgewählten Be
fehls und in dem zweiten Fall auftritt. Die Ausnahmeverarbei
tungseinheit verarbeitet eine Ausnahme, wenn die Ausnahmespei
cherschaltung das Auftreten der Ausnahme zu dem Zeitpunkt des
Einsatzes gespeichert hat.
Der Prozessor weist bevorzugterweise weiter eine Wahr/Falsch-Be
rechnungsschaltung, eine Ausnahmespeicherschaltung, eine Zukünf
tigwahr/Zukünftigfalsch-Halteeinheit, eine Wiederverarbeitungs
einheit und eine Ausnahmeverarbeitungseinheit auf. Die
Wahr/Falsch-Berechnungsschaltung addiert zu der Bedingungsinfor
mation, die von der Wahr/Falsch-Halteeinheit erhalten wird, eine
Bedingungsinformation, die durch die Bestimmung der ausgewählten
Bedingung durch die Betriebseinheit erhalten wird. Die Ausnahme
speicherschaltung speichert das Auftreten einer Ausnahme, wenn
die Ausnahme während der Verarbeitung des ausgewählten Befehls
und in dem zweiten Fall erzeugt wird. Die Zukünftigwahr/Zukünf
tigfalsch-Halteeinheit hält die Bedingungsinformation, die von
der Wahr/Falsch-Berechnungsschaltung erhalten wird. Die Ausnahme
verarbeitungseinheit verarbeitet erneut die Befehle, die zum
Zeitpunkt des obigen Einsatzes bereits verarbeitet worden sind,
aus der Mehrzahl der Befehle, falls die Ausnahmespeicherschaltung
das Auftreten der Ausnahme zu dem Zeitpunkt des Einsatzes gespei
chert hat. Die Ausnahmeverarbeitungseinheit vergleicht eine Ein
satzbedingung, die einem Befehl entspricht, der die Ausnahme ver
ursacht hat, mit der Bedingungsinformation, die von der Zukünf
tigwahr/Zukünftigfalsch-Halteeinheit erhalten wird, wenn die Aus
nahme während des erneuten Verarbeitens des Befehls durch die
Verarbeitungseinheit erneut erzeugt wird, und sie verarbeitet die
Ausnahme, wenn wahr oder falsch für alle Bedingungen der entspre
chenden Einsatzbedingung entsprechend mit der Bedingungsinforma
tion, die den Bedingungen entspricht, übereinstimmt. Die Wahr/
Falsch-Halteeinheit akzeptiert Bedingungsinformation, die von der
Wahr/Falsch-Berechnungsschaltung erhalten wird, nicht, wenn die
Wiederverarbeitungseinheit den Befehl erneut verarbeitet, und
andernfalls akzeptiert sie die Bedingungsinformation. Die
Wahr/Falsch-Halteeinheit akzeptiert Bedingungsinformation, die
von der Zukünftigwahr/Zukünftigfalsch-Halteeinheit erhalten wird,
wenn die Wiederverarbeitungseinheit die erneute Verarbeitung des
Befehls vervollständigt, bzw. abgeschlossen hat.
Darum wird entsprechend den Ausführungsformen der vorliegenden
Erfindung der Befehl spekulativ ausgeführt und der Ergebniswert
bzw. die Ergebnisdaten desselben werden provisorisch gehalten, ob
vor der Ausführung des Befehls bestimmt ist, daß eine Einsatzbe
dingung bereits erfüllt worden ist, oder nicht, oder falls es
noch nicht bestimmt worden ist, ob die Einsatzbedingung erfüllt
ist oder nicht. Die provisorisch gehaltenen Ergebnisdaten werden
zum Zeitpunkt des Auftretens des Einsatzes (das heißt der Ein
satzbedingung) erneut in deterministischer Weise gehalten. Derart
kann der Befehl, von dem nicht bekannt ist, ob seine Einsatzbe
dingung erfüllt ist oder nicht, spekulativ ausgeführt werden, und
darum kann die Verarbeitungsgeschwindigkeit für Befehle erhöht
werden.
Bevorzugterweise wird vor der Ausführung eines bedingten Befehls
(d. h. eines Befehls, der nur beim Erfüllen einer bestimmten Be
dingung ausgeführt wird) bestimmt, ob eine Einsatzbedingung (d. h.
eine Bedingung, die zum Ausführen des Befehls erfüllt sein soll)
erfüllt ist oder nicht, und der bedingte Befehl wird spekulativ
ausgeführt und die bedingte Information wird provisorisch gehal
ten, selbst falls die Einsatzbedingung noch nicht bestimmt ist.
Darum können nicht nur gewöhnliche Befehle, sondern auch bedingte
Befehle spekulativ ausgeführt werden.
Bevorzugterweise, wird, falls eine Ausnahme auftritt, wenn ein
Befehl spekulativ ausgeführt wird, eine Ausnahmeverarbeitung zum
Zeitpunkt eines Einsatzes ausgeführt. Dementsprechend wird eine
übermäßige Ausnahmeverarbeitung nicht ausgeführt, und die Verar
beitungsgeschwindigkeit für Befehle kann weiter erhöht werden.
Bevorzugterweise werden Befehle zum Zeitpunkt des Einsatzes er
neut verarbeitet. Die Zukünftigwahr/Zukünftigfalsch-Halteeinheit
wird befragt, wenn eine Ausnahme erneut erzeugt wird, und falls
ein Befehl, der die Ausnahme verursacht hat, in der Zukunft fol
gend (auszuführen) ist, wird die Ausnahmeverarbeitung ausgeführt.
Derart werden die Befehle bis zu dem Einsatz erneut verarbeitet,
und die Ausnahmeverarbeitung wird wie gewünscht ausgeführt, falls
die Ausnahme erneut erzeugt wird, und daher kann die binäre Größe
von Programmen am Anstieg gehindert werden, und genaue Ergebnis
daten werden produziert.
Weitere Merkmale und Zweckmäßigkeiten der Erfindung ergeben sich
aus der Beschreibung von Ausführungsbeispielen anhand der Figu
ren.
Von den Figuren zeigen:
Fig. 1 ein Blockschaltbild, das den Aufbau eines
Mikroprozessors entsprechend einer ersten
Ausführungsform der Erfindung zeigt;
Fig. 2 eine Darstellung zum Gebrauch bei der Erläu
terung eines Beispiels eines Befehlscode für
den in Fig. 1 gezeigten Mikroprozessors;
Fig. 3 eine Darstellung zum Gebrauch bei der Erläu
terung des Aufbaus eines TF-Registers in dem
in Fig. 1 gezeigten Mikroprozessors;
Fig. 4 eine Darstellung zum Gebrauch bei der Erläu
terung des Aufbaus eines Einsatzbedingungs
abschnittes in einem Befehlscode für den in
Fig. 1 gezeigten Mikroprozessor;
Fig. 5 eine Darstellung zum Gebrauch bei der Erläu
terung des Konzepts der Funktion einer Aus
nahmesteuerschaltung bei dem in Fig. 1 ge
zeigten Mikroprozessor;
Fig. 6 eine Blockdarstellung, die den Aufbau der
Ausnahmesteuerschaltung, die in Fig. 1 ge
zeigt ist, zeigt;
Fig. 7 eine Blockdarstellung, die den Aufbau einer
Einsatzbedingungsberechnungsschaltung in der
in Fig. 6 gezeigten Ausführsteuerschaltung
zeigt;
Fig. 8 ein Schaltbild, das den Aufbau einer Ver
gleichsschaltung in der Einsatzbedingungsbe
rechnungsschaltung, die in Fig. 7 gezeigt
ist, zeigt;
Fig. 9 eine Blockdarstellung, die die Anordnung ei
ner Folgeregisterdatei, einer Schattenregi
sterdatei und einer Einsatzsteuerschaltung
bei dem in Fig. 1 gezeigten Mikroprozessor
zeigt;
Fig. 10 ein Ablaufdiagramm zum Gebrauch bei der Er
läuterung eines Beispiels eines Programms;
Fig. 11 eine Programmliste, die Programme zum Ge
brauch in dem in Fig. 1 gezeigten Mikropro
zessor entsprechend dem in Fig. 10 gezeigten
Programm zeigt;
Fig. 12A und 12B Blockdarstellung, die den Aufbau eines
Mikroprozessors entsprechend einer zweiten
Ausführungsform zeigen;
Fig. 13 ein Zeitablaufdiagramm zum Gebrauch bei der
Erläuterung des Betriebs des in den Fig. 12A
und 12B gezeigten Mikroprozessors;
Fig. 14 eine Blockdarstellung, die den Aufbau einer
Gültigkeitsberechnungsschaltung bei dem in
den Fig. 12A und 12B gezeigten Mikroprozessor
zeigt;
Fig. 15 eine Blockdarstellung, die den Aufbau einer
Schreibbestimmungsberechnungsschaltung in dem
in den Fig. 12A und 12B gezeigten Mikropro
zessor zeigt;
Fig. 16 eine Programmliste, die Programme zum Ge
brauch in dem Mikroprozessor entsprechend
einer dritten Ausführungsform zeigt;
Fig. 17 eine Blockdarstellung, die den Aufbau einer
Einsatzbedingungsberechnungsschaltung in ei
nem Mikroprozessor zum Verarbeiten von Befeh
len entsprechend den in Fig. 16 gezeigten
Programmen zeigt;
Fig. 18 eine Blockdarstellung, die den Aufbau eines
Mikroprozessors entsprechend einer vierten
Ausführungsform zeigt;
Fig. 19 eine Programmliste, die Programme zum Ge
brauch in dem in Fig. 18 gezeigten Mikropro
zessor zeigt;
Fig. 20 eine Darstellung zum Gebrauch bei der Erläu
terung des Aufbaus einer Registerdatei in
einem Mikroprozessor entsprechend einer fünf
ten Ausführungsform;
Fig. 21 eine Blockdarstellung, die den Aufbau eines
Mikroprozessors entsprechend einer sechsten
Ausführungsform zeigt;
Fig. 22 eine Blockdarstellung, die die Anordnung ei
ner Folgeregisterdatei, einer Schattenregi
sterdatei, einer Einsatzsteuerschaltung und
einer EP-Schaltung in dem in Fig. 21 gezeig
ten Mikroprozessor zeigt;
Fig. 23 ein Zeitablaufdiagramm zum Gebrauch bei der
Erläuterung von Betriebsabläufen in einer
Ausnahmeverarbeitung durch den in Fig. 21
gezeigten Mikroprozessor;
Fig. 24 eine Programmliste, die Erholungscodes zeigt,
die durch den in Fig. 21 gezeigten Mikropro
zessor verarbeitet werden;
Fig. 25 eine Programmliste zum Aufrufen der Erho
lungscodes bei dem in Fig. 21 gezeigten Mi
kroprozessor;
Fig. 26 eine Programmliste zum Gebrauch bei der Er
läuterung, warum bei der EP-Schaltung des in
Fig. 21 gezeigten Mikroprozessors ein Rück
schreibesperrmittel notwendig ist;
Fig. 27 eine Blockdarstellung, die den Aufbau eines
Mikroprozessors entsprechend einer siebten
Ausführungsform zeigt; und
Fig. 28 eine Blockdarstellung, die den Aufbau eines
herkömmlichen Mikroprozessors zeigt.
Ein Verfahren zum Verarbeiten von Befehlen und eine Vorrichtung
dazu entsprechend den Ausführungsformen der vorliegenden Erfin
dung wird nun im Detail unter Bezugnahme auf die Figuren be
schrieben. Es ist zu bemerken, daß dieselben Bezugszeichen wie in
der Beschreibungseinleitung dieselben oder entsprechende Ab
schnitte bezeichnen.
Fig. 1 ist eine Blockdarstellung, die den Aufbau eines Mikropro
zessors entsprechend einer ersten Ausführungsform zeigt.
Wie in Fig. 1 gezeigt ist, weist der Mikroprozessor vier ALUs 2A
bis 2D, einen Speicher 3, einen Programmzähler 4 zum Anlegen der
Adresse eines auszuführenden Befehls an den Speicher 3, eine
Schaltung 5 zum Erhöhen (Inkrementieren) des Programmzählers 4,
ein Befehlsregister 6 zum Halten eines aus dem Speicher 3 gehol
ten Befehls, einen Befehlsdekoder 7 zum Dekodieren eines durch
das Befehlsregister 6 gehaltenen Befehls und zum Erzeugen eines
Steuersignals zur Steuerung der ALUs 2A bis 2D und eine Schaltung
9 zum Berechnen einer Zieladresse (Zieladressenberechnungsschal
tung) auf.
Im Gegensatz zu dem in Fig. 28 gezeigten herkömmlichen Mikropro
zessor weist der Mikroprozessor weiter ein Wahr/Falsch-Register
(True/False-Register; TF-Register) 10, eine Ausführsteuerschal
tung 11, eine Folgeregisterdatei (Folgeregisterspeicher) 12, eine
Schattenregisterdatei (Schattenregisterspeicher) 13 und eine Ein
satzsteuerschaltung 14 auf.
Fig. 2 ist eine Darstellung, die den Aufbau eines Befehlscode
zeigt, der durch den Mikroprozessor verarbeitet werden kann. Wie
in Fig. 2 gezeigt ist, wird der Befehlscode aus einem Befehlsaus
führabschnitt (Befehlsbetriebsabschnitt) 15 und einem Einsatzbe
dingungsabschnitt 16 gebildet. Der Befehlsausführabschnitt 15
entspricht einem Befehlscode, der durch einen herkömmlichen Mi
kroprozessor verarbeitet werden kann. Der Einsatzbedingungsab
schnitt 16 ist ein Abschnitt zum Spezifizieren von einer oder von
mehreren Bedingungen, die zum Ausführen eines Befehls, der durch
den Befehlsausführabschnitt 15 angezeigt wird, notwendig ist bzw.
sind.
Fig. 3 ist eine Darstellung, die den Aufbau des TF-Registers 10
zeigt. Wie in Fig. 3 gezeigt ist, weist das TF-Register 10 m Ein
gänge (Eingangsadressen bzw. Einträge) auf. Jeder Eingang wird
von 2 Bit, nämlich dem Gültigkeitsbit Tv und dem Wert Td, gebil
det und hält eine erste Bedingungsinformation, die enthält, ob
eine Bedingung wahr ist, eine zweite Bedingungsinformation, die
enthält, ob die Bedingung falsch ist, oder eine dritte Informa
tion, die enthält, das wahr oder falsch für die Bedingung unbe
stimmt ist.
Wie in Tabelle 1 gezeigt ist, ist, falls das Gültigkeitsbit Tv
"1" ist und das Wertbit Td "1" ist, die Bedingung wahr (d. h. er
füllt). Falls das Gültigkeitsbit Tv "1" ist und das Wertbit Td
"0" ist, ist die Bedingung falsch (d. h. nicht erfüllt). Falls das
Gültigkeitsbit Tv "0" ist, ist unabhängig von dem Wert des Wert
bits Td wahr oder falsch für die Bedingung unbestimmt.
Mit dem in Fig. 2 gezeigten Befehlscode kann, falls zum Beispiel
ein erster Eintrag in dem TF-Register 10 "wahr" und ein zweiter
Eintrag außerdem "wahr" ist, der Mikroprozessor dazu angewiesen
werden, im wesentlichen das Addieren eines Wertes, der durch das
Register r14 gehalten wird, und eines Wertes, der durch das Regi
ster r15 gehalten wird, auszuführen und den Ergebniswert in dem
Register r6 zu speichern.
Fig. 4 zeigt den Aufbau eines Einsatzbedingungsabschnitts 16. Wie
in Fig. 4 gezeigt ist, weist der Eingangsbedingungsabschnitt 16 m
Eingänge (=Einträge), die den Eingängen (= Einträgen) in dem TF-
Register 10 entsprechen, auf. Jeder Eintrag wird von 2 Bit gebil
det, nämlich dem Gültigkeitsbit Cv und Wertbit Cd, wie in dem
Fall des TF-Registers 10.
Wie in Tabelle 2 gezeigt ist, ist, falls das Gültigkeitsbit Cv
"1" ist und das Wertbit Cd "1" ist, eine notwendige Bedingung für
einen im wesentlichen auszuführenden Befehl, der durch den Be
fehlsausführabschnitt 15 dargestellt bzw. angezeigt wird, das ein
entsprechender Eintrag in dem TF-Register 10 "wahr" ist. Anders
ausgedrückt, das ist nicht die einzige Bedingung für den Befehl,
der durch den Befehlsausführabschnitt 15 angezeigt ist, um im
wesentlichen ausgeführt zu werden.
Falls das Gültigkeitsbit Cv "1" und das Wertbit Cd "0" ist, ist
eine notwendige Bedingung für die Ausführung des Befehls, der
durch den Befehlsausführabschnitt 15 angezeigt ist, das ein ent
sprechender Eintrag in dem TF-Register 10 "falsch" ist.
Falls das Gültigkeitsbit Cv "0" ist, muß ein durch den Befehls
ausführabschnitt 15 angezeigter Befehl unabhängig von dem Wertbit
Cd und unabhängig davon, ob ein entsprechender Eintrag in dem TF-
Register 10 "wahr", "falsch" oder "unbestimmt" ist, ausgeführt
werden.
Die Ausführsteuerschaltung 11 vergleicht einen Eintrag in dem
Ausführsteuerabschnitt 16 und einen Eintrag in dem TF-Register 10
entsprechend und steuert die ALUs 2A bis 2D zum deterministischen
Ausführen eines Befehls oder zum provisorischen Ausführen des
Befehls als Reaktion auf das Ergebnis.
Fig. 5 ist eine Darstellung zum Gebrauch bei einer detaillierten
Erläuterung des Konzepts der Funktion der Ausführsteuerschaltung
11.
Wie in Fig. 5 gezeigt ist, wird ein Befehl I unter drei gewissen
(bestimmten) Bedingungen C1 bis C3 ausgeführt. Zum Beispiel wird,
wenn die erste Bedingung C1 "wahr" ist, die zweite Bedingung C2
"wahr" ist und die dritte Bedingung C3 "falsch" ist, der Befehl I
nur dann tatsächlich ausgeführt, wenn ein erster Eintrag in dem
Einsatzbedingungsabschnitt 16 "wahr", ein zweiter Eintrag "wahr"
und ein dritter Eintrag "falsch" hält.
- (A) Falls die ersten bis dritten Einträge in dem TF-Register 10, die diesen Bedingungen C1 bis C3 entsprechen, "wahr" oder "falsch" halten und diese "wahr" und "falsch" mit den "wahr" oder "falsch" der ersten bis dritten Bedingungen C1 bis C3 überein stimmen, steuert die Ausführsteuerschaltung 11 die ALUs 2A bis 2D zum deterministischen Ausführen des Befehls I. Der Befehl I wird in diesem Fall speziell als daraus folgender Befehl oder kurz "Folgebefehl" bezeichnet.
- (B) Falls die ersten bis dritten Einträge in dem TF-Register 10, die den ersten bis dritten Bedingungen C1 bis C3 entsprechen, jeweils "unbestimmt" halten, steuert die Ausführsteuerschaltung 11 die ALUs 2A bis 2D zum provisorischen (vorläufigen oder speku lativen) Ausführen des Befehls I. Der Befehl I wird in diesem Fall nachfolgend "spekulativer Befehl" genannt.
- (C) Falls einige der ersten bis dritten Einträge in dem TF-Regi ster 10, die den ersten bis dritten Bedingungen C1 bis C3 entsprechen, "wahr" oder "falsch" halten, und falls die "wahr" und "falsch" entsprechend mit den "wahr" und "falsch" für die ersten bis dritten Bedingungen C1 bis C3 übereinstimmen, steuert die Ausführsteuerschaltung 11 die ALUs 2A bis 2D zum provisori schen Ausführen des Befehls I. Der Befehl I wird in diesem Fall ebenfalls "spekulativer Befehl" genannt.
Eine Folgeregisterdatei 12 und eine Schattenregisterdatei 13 wer
den von 32 Registern 30 bzw. 31 gebildet. Die Folgeregisterdatei
12 entspricht der Registerdatei 1 des herkömmlichen Mikroprozes
sors.
Die Folgeregisterdatei 12 hält deterministisch Ergebnisdaten, die
durch das Ausführen eines Befehls durch die ALUs 2A bis 2D er
zeugt werden. Die Schattenregisterdatei 13 hält provisorisch Er
gebnisdaten, die durch die Ausführung eines Befehls durch die
ALUs 2A bis 2D erzeugt werden.
Die Einsatzsteuerschaltung 14 hält den Einsatzbedingungsabschnitt
16 eines Befehls, der den in dem Schattenregister 13 gespeicher
ten Ergebnisdaten entspricht. Die Einsatzsteuerschaltung 14 über
wacht immer das TF-Register 10, vergleicht einen Eintrag in dem
Einsatzbedingungsabschnitt 16 und einen Eintrag in dem TF-Regi
ster 10 und überträgt Ergebnisdaten, die in der Schattenregister
datei 13 gespeichert sind, in die Folgeregisterdatei 12, falls
die Einträge entsprechend miteinander übereinstimmen.
Wie in Fig. 5 gezeigt ist, wird, falls zum Beispiel der spekula
tive Befehl I ausgeführt wird und die Ergebnisdaten provisorisch
in der Schattenregisterdatei 13 gespeichert sind, der Einsatzbe
dingungsabschnitt 16 des Befehls I in der Steuerschaltung 14 ge
speichert.
Dann, an dem Punkt, an dem die ersten bis dritten Einträge in dem
TF-Register 10, die den ersten bis dritten Bedingungen C1 bis C3
entsprechen, die zum Ausführen des Befehls I notwendig sind,
"wahr" oder "falsch" halten, überträgt, falls die "wahr" und
"falsch" entsprechend mit "wahr" und "falsch" für die ersten bis
dritten Bedingungen C1 bis C3, die zum Ausführen des Befehls I
notwendig sind, übereinstimmen, die Einsatzsteuerschaltung 14,
die in der Schattenregisterdatei 13 gespeicherten Ergebnisdaten
in die Folgeregisterdatei 12.
Der Aufbau der Ausführsteuerschaltung 11, der Folgeregisterdatei
12, der Schattenregisterdatei 13 und der Einsatzsteuerschaltung
14 werden nun detaillierter beschrieben.
Fig. 6 ist eine Blockdarstellung, die den Aufbau der Ausführsteu
erschaltung 11 zeigt. Wie in Fig. 6 gezeigt ist, weist die Aus
führsteuerschaltung 11 eine Einsatzbedingungsberechnungsschaltung
17, einen Inverter 18, ein UND-Gatter 19A und ein ODER-Gatter 19B
auf.
Fig. 7 ist ein Blockschaltbild, das den Aufbau der Einsatzbedingungsberech
nungsschaltung 17 zeigt. Wie in Fig. 7 gezeigt ist, weist die
Einsatzbedingungsberechnungsschaltung 17 Vergleichsschaltungen 20
und 21 und UND-Gatter 22 und 23 auf. Bei der in Fig. 7 gezeigten
Einsatzbedingungsberechnungsschaltung weisen der Einsatzbedin
gungsabschnitt 16 und das TF-Register 10 jeweils 2 Einträge auf.
Fig. 8 ist ein Schaltbild, das den Aufbau der Vergleichsschaltung
20 oder 21 in der Einsatzbedingungsberechnungsschaltung 17 zeigt.
Wie in Fig. 8 gezeigt ist, weist die Vergleichsschaltung 20 oder
21 einen Inverter 24, einen NAND-Gatter 25, ein Exklusiv-NOR-Gat
ter 26 und NAND-Gatter 27 und 28 auf.
Die Vergleichsschaltungen 20 und 21 vergleichen einen Eintrag in
dem Einsatzbedingungsabschnitt 16 und einen entsprechenden Ein
trag in dem TF-Register und erzeugen abhängig von dem Ergebnis
ein Gültigkeitsbit Vi und einen Wert Di.
Tabelle 3 ist eine Wahrheitstabelle, die den Betrieb der Ver
gleichsschaltung 20 oder 21 zeigt.
Wie in Tabelle 3 gezeigt ist, erzeugen, falls das Gültigkeitsbit
Cv von einem Eintrag in dem Einsatzbedingungsabschnitt "0" ist,
die Vergleichsschaltungen 20 oder 21 ein Gültigkeitsbit Vi mit
"1" und ein Wertbit Di mit "1", unabhängig von den Werten des
Gültigkeitsbits Tv und Wertes Td.
Falls das Gültigkeitsbit Cv eines Eintrags in dem Einsatzbedin
gungsabschnitt 16 "1" ist und das Gültigkeitsbit Tv eines ent
sprechenden Eintrags in dem TF-Register 10 "0" ist, erzeugt die
Vergleichsschaltung 20 oder 21 ein Gültigkeitsbit Vi mit "0", un
abhängig von den Werten der Wertbits Cd und Td diese Einträge.
Falls das Gültigkeitsbit Cv eines Eintrags in dem Einsatzbedin
gungsabschnitt 16 und das Gültigkeitsbit Tv eines entsprechenden
Eintrags in dem TF-Register 10 beide "1" sind, und falls ihre
Wertbits Cd und Td miteinander gleich sind, erzeugt die Ver
gleichsschaltung 20 oder 21 ein Gültigkeitsbit Vi mit "1" und ein
Wertbit Di mit "1". Falls die Wertbits Cd und Td dieser Einträge
unterschiedlich sind, erzeugt die Vergleichsschaltung 20 oder 21
ein Gültigkeitsbit Vi mit "1" und ein Wertbit Di mit "0".
Die Einsatzbedingungsberechnungsschaltung 17 erzeugt ein Gültig
keitsbit V mit "1" nur dann, wenn die Gültigkeitsbits Vi beider
Vergleichsschaltungen 20 und 21 "1" sind. Die Einsatzbedingungs
berechnungsschaltung 17 erzeugt ein Wertbit D mit "1" nur dann,
wenn die Wertbits Di beider Vergleichsschaltungen 20 und 21 "1"
sind.
Darum wird, falls das Wertbit V der Einsatzbedingungsberechnungs
schaltung 17 "0" ist, ein Schattenregisterschreibbestimmungsbit
SD mit "1" erzeugt. Das Gültigkeitsbit V und das Wertbit D der
Einsatzbedingungsberechnungsschaltung 17 sind beide "1" oder das
Gültigkeitsbit V ist "0", dann wird ein Befehlsgültigkeitsbit IV
mit "1" produziert.
Wie aus der obigen Beschreibung zu ersehen ist, erzeugt die Aus
führsteuerschaltung 11, falls alle Einträge in dem Einsatzbedin
gungsabschnitt 16 "nicht darum kümmern" halten (falls ein ent
sprechender Befehl in dem Befehlsausführabschnitt bedingungslos
auszuführen ist), ein Schattenregisterschreibbestimmungsbit SD
mit "0" und ein Befehlsgültigkeitsbit IV mit "1".
Einige Einträge in dem Einsatzbedingungsabschnitt 16 halten
"wahr" oder "falsch" und entsprechende Einträge in dem TF-Regi
ster halten "unbestimmt", dann erzeugt die Ausführsteuerschaltung
11 das Schattenregisterschreibbestimmungsbit SD mit "1" und das
Befehlsgültigkeitsbit IV mit "1". Falls einige Einträge in dem
Einsatzbedingungsabschnitt 16 "wahr" oder "falsch" halten und
einige der entsprechenden Einträge in dem TF-Register 10 "wahr"
oder "falsch" halten, und die "wahr" und "falsch" in dem Einsatz
bedingungsabschnitt 16 entsprechend mit den "wahr" und "falsch"
in dem TF-Register 10 übereinstimmen, erzeugt die Ausführsteuer
schaltung 11 das Schattenregisterschreibbestimmungsbit SD mit "0"
und das Befehlsgültigkeitsbit IV mit "1".
Bei einem Befehlsgültigkeitsbit IV mit "1" werden die erzeugten
Ergebnisdaten in der Folgeregisterdatei 12 gespeichert. Falls das
Schattenregisterschreibbestimmungsbit SD "0" ist und das Befehls
gültigkeitsbit IV "0" ist, wird der Befehl nicht ausgeführt oder
die durch das Ausführen des Befehls erzeugten Ergebnisdaten wer
den weder in der Folgeregisterdatei 12 noch dem Schattenregister
13 gespeichert. Falls das Schattenregisterschreibbestimmungsbit
SD "1" ist und das Befehlsgültigkeitsbit IV "1" ist, werden die
durch das Ausführen eines Befehls erzeugten Ergebnisdaten provi
sorisch in der Schattenregisterdatei 13 gespeichert.
Fig. 9 ist eine Blockdarstellung, die den Aufbau der Folgeregi
sterdatei 12, der Schattenregisterdatei 13 und der Einsatzsteuer
schaltung 14 zeigt.
Wie in Fig. 9 gezeigt ist, wird die Folgeregisterdatei (Folgere
gisterspeicher) 12 von 32 Folgeregistern 30 gebildet. Die Schat
tenregisterdatei (Schattenregisterspeicher) 13 wird von 32 Schat
tenregistern 31 gebildet.
Die Einsatzsteuerschaltung 14 wird von 32 Einträgen bzw. Ein
gangsadressen, die den 32 Folgeregistern 30 und den 32 Schatten
registern 31 entsprechen, gebildet. Jeder Eintrag weist einen
Einsatzbedingungsspeicherabschnitt 32, eine Einsatzbedingungsbe
rechnungsschaltung 17 und ein UND-Gatter 33 auf.
Wenn ein spekulativer Befehl ausgeführt wird und die Ergebnisda
ten provisorisch in dem Schattenregister 31 in der Schattenregi
sterdatei 13 gespeichert werden, hält der Einsatzbedingungsspei
cherabschnitt 32 den dem Befehl entsprechenden Einsatzbedingungs
abschnitt 16.
Die Einsatzbedingungsberechnungsschaltung 17, die identisch mit
der Einsatzbedingungsberechnungsschaltung 17 in der oben be
schriebenen Einsatzsteuerschaltung 11 ist, vergleicht den Ein
satzbedingungsabschnitt 16, der durch den Einsatzbedingungsspei
cherabschnitt 32 und das TF-Register 10 gehalten wird, und er
zeugt ein Gültigkeitsbit V und ein Wertbit D basierend auf dem
Ergebnis. Das UND-Gatter 33 nimmt ein logisches Produkt (UND-Ver
knüpfung) des Gültigkeitsbits V und des Wertes D der Einsatzbe
dingungsberechnungsschaltung 17 zum Anlegen desselben an das Gate
eines Übertragungsgatters 34, das zwischen das Folgeregister 30
und das Schattenregister 31 verbunden ist.
Die Einsatzbedingungsberechnungsschaltung 17 überwacht immer das
TF-Register 10 und erzeugt ein Gültigkeitsbit V mit "1" und ein
Wertbit D mit "1", wenn wahr/falsch in dem Einsatzbedingungsab
schnitt 16, der durch den Einsatzbedingungsspeicherabschnitt 32
gehalten wird, entsprechend mit wahr/falsch in dem TF-Register 10
übereinstimmt. Dieses schaltet das Übertragungsgatter 34 an und
die Ergebnisdaten in dem Schattenregister 31 werden in das Folge
register 30 übertragen.
Der Betrieb des Mikroprozessors entsprechend der ersten Ausfüh
rungsform wird nun basierend auf dem in Fig. 10 gezeigten Pro
gramm beschrieben.
Fig. 11 ist eine Programmliste (Programmlisting) zum Betrieb des
Mikroprozessors basierend auf dem in Fig. 10 gezeigten Programm.
In Fig. 11 wird jede Zeile von einer Mehrzahl von Befehlscodes
gebildet. Jeder Befehlscode wird von einem Befehlsausführab
schnitt 15 und einem Einsatzbedingungsabschnitt 16 gebildet. Be
fehle, die durch Befehlsausführabschnitte 15 der Befehlscodes in
derselben Zeile angezeigt sind, werden zu der Zeit ausgeführt.
Es ist zu bemerken, daß die Befehlscodes voneinander durch ";"
getrennt sind. Der Befehlsausführabschnitt 15 und der Einsatz
bedingungsabschnitt 16 sind durch "?" getrennt.
"Immer" in dem Einsatzbedingungsabschnitt 16 zeigt an, daß die
Befehle I1, I2, C1 oder C2 in dem Befehlsausführabschnitt 15 im
mer bedingungslos unabhängig von wahr/falsch in dem TF-Register
10 auszuführen sind.
Tf[i] zeigt an, daß ein Befehl, der durch einen Befehlsausführ
abschnitt 15 angezeigt wird, nur dann auszuführen ist, falls der
i-te Eintrag in dem TF-Register 10 "wahr" ist. /TF[i] zeigt an,
daß ein Befehl in dem Befehlsausführabschnitt 15 nur dann auszu
führen ist, wenn der i-te Eintrag in dem TF-Register 10 "falsch"
ist.
TF[1](2] definiert zum Beispiel das Ausführen eines Befehls in
dem Befehlsausführabschnitt 15 nur dann, wenn der erste und der
zweite Eintrag in dem TF-Register 10 "wahr" sind. TF[1]&/TF[2]
definiert, daß ein Befehl in dem Befehlsausführabschnitt 15 nur
dann auszuführen ist, wenn der erste Eintrag in dem TF-Register
10 "wahr" und der zweite Eintrag "falsch" ist.
Die Blöcke K1, L1 bis L3 in Fig. 11 entsprechen den Basisblöcken
K1, L1 bis L3 in Fig. 10. Die Blöcke K1, L1 bis L3 verzweigen in
Basisblöcke M1 bis M3.
In dem ersten Zyklus werden vier Befehle I1 bis I4 in der ersten
Zeile zu einer Zeit ausgeführt.
Mit dem Befehlscode "immer?I1" wird der Befehl I1 unbedingt bzw.
bedingungslos ausgeführt. Genauer sind alle Einträge in den Ein
satzbedingungsabschnitten 16 des Befehlscodes "nicht darum küm
mern" und das Gültigkeitsbit Cv jedes Eintrags ist "0".
Die Einsatzbedingungsberechnungsschaltung 17 erzeugt darum ein
Gültigkeitsbit V und ein Wertbit D jeweils mit "1", ohne Rück
sicht auf die Gültigkeitsbits Tv und Td jedes Eintrags in dem TF-
Register 10. Derart erzeugt die Ausführsteuerschaltung 11 ein
Schattenschreibbestimmungsbit SD mit "0" und ein Befehlsgültig
keitsbit IV mit "1".
Dementsprechend werden die Daten der Register r10 und r11 in der
Folgeregisterdatei 12 addiert, und die Ergebnisdaten werden de
terministisch in dem Register r2 in der Folgeregisterdatei 12
gespeichert.
Mit dem Befehlscode "TF[1]?I2" ist der erste Eintrag in dem Ein
satzbedingungsabschnitt 16 des Befehlscodes "wahr" und das Gül
tigkeitsbit Cv und das Wertbit Cd sind beide "1". Die Gültig
keitsbits Cv, die nicht die des ersten Eintrags in dem Einsatz
bedingungsabschnitt 16 sind, sind alle "0".
Da an diesem Punkt der erste Eintrag in dem TF-Register 10 "unbe
stimmt" ist und das Gültigkeitsbit Tv "0" ist, erzeugt die Aus
führsteuerschaltung 11 das Schattenregisterschreibbestimmungsbit
SD mit "1" und das Befehlsgültigkeitsbit IV mit "0". Die Daten
der Register r12 und r13 in der Folgeregisterdatei 12 werden ad
diert, und die Ergebnisdaten werden provisorisch in dem Register
r4 in der Schattenregisterdatei 13 gespeichert.
Zu dieser Zeit sind die Daten des Einsatzbedingungsabschnitts 16,
die durch das Befehlsregister 6 gehalten werden, in dem Einsatz
bedingungsspeicherabschnitt 32 des vierten Eintrags (der vierten
Eingangsadresse) in der Einsatzsteuerschaltung 14 gespeichert,
der dem Schattenregister r4 entspricht, das die Ergebnisdaten
speichert.
Mit dem Befehlscode "/TF[1]?13" ist der erste Eintrag in dem Ein
satzbedingungsabschnitt 16 des Befehlscodes "falsch" und das Gül
tigkeitsbit Cv ist "1". Da der erste Eintrag in dem TF-Register
10 wie oben beschrieben "unbestimmt" ist, werden die Daten des
Registers r13 von den Daten des Registers r12 in der Folgeregi
sterdatei 12 entsprechend dem Befehl I3 subtrahiert und die Er
gebnisdaten werden provisorisch in dem Schattenregister r5 in der
Schattenregisterdatei 13 gespeichert.
Zu dieser Zeit sind die Daten des Einsatzbedingungsabschnitts 16
außerdem in dem Einsatzbedingungsspeicherabschnitt 32 des fünften
Eintrags (der fünften Eingangsadresse) in der Einsatzsteuerschal
tung 14 gespeichert, der dem Schattenregister r5 entspricht, das
die Ergebnisdaten speichert.
Mit dem Befehlscode "Tf[1][2]?14" sind der erste und der zwei
te Eintrag in dem Einsatzbedingungsabschnitt 16 des Befehlscodes
beide "wahr". Zu dieser Zeit werden, da der erste und der zweite
Eintrag in dem TF-Register 10 "unbestimmt" sind, die Daten der
Register r14 und r15 in der Folgeregisterdatei 12 entsprechend
dem Befehl I4 addiert und die Ergebnisdaten werden provisorisch
in dem Register r6 in der Schattenregisterdatei 13 gespeichert.
Zu der Zeit sind die Daten des Einsatzbedingungsabschnittes 16
außerdem in dem Einsatzbedingungsspeicherabschnitt 32 des sech
sten Eintrags (Eingangsadresse) in der Einsatzsteuerschaltung 14
gespeichert.
In dem nächsten Zyklus wird der Bedingungsbefehl C1 entsprechend
dem Befehlscode "immer?C1" immer ausgeführt. Genauer wird, falls
der Wert bzw. die Daten des Registers r2 kleiner als der Wert
bzw. die Daten des Registers r3 ist bzw. sind, der erste Eintrag
in dem TF-Register 10 "wahr" oder andernfalls "falsch" gemacht.
Entsprechend des Befehlscodes "immer?C2" wird, falls der Wert
bzw. die Daten der Register r4 und r5 gleich sind, der zweite
Eintrag in dem TF-Register 10 "wahr" oder andernfalls "falsch"
gemacht.
Zu der Zeit überwacht die Einsatzsteuerschaltung 14 das TF-Regi
ster 10 und vergleicht den in dem Einsatzbedingungsspeicherab
schnitt 32 gespeicherten Einsatzbedingungsabschnitt 16 und das
TF-Register 10.
Falls der erste Eintrag in dem TF-Register 10 "wahr" ist, erzeugt
die Einsatzbedingungsberechnungsschaltung 17 der vierten Ein
gangsadresse in der Einsatzsteuerschaltung 14 das Gültigkeitsbit
V und das Wertbit D beide mit "1". Das logische Produkt (UND-Ver
knüpfung) des Gültigkeitsbits V und des Wertbits D werden an das
Gate des Übertragungsgatters 34 durch das UND-Gatter 33 angelegt
und das Übertragungsgatter 34 wird angeschaltet. Die Daten bzw.
der Wert des Register r4 in der Schattenregisterdatei 13 werden
so in das entsprechende Register r4 in der Folgeregisterdatei 12
übertragen.
Zu dieser Zeit bzw. dabei wird der Wert des Registers r5 in der
Schattenregisterdatei 13 keiner Verarbeitung unterworfen. Falls
dagegen der erste Eintrag in dem TF-Register 10 "falsch" ist,
werden die Daten des Registers r5 in der Schattenregisterdatei 13
in das entsprechende Register r5 in der Folgeregisterdatei 12
durch das Übertragungsgatter 34 übertragen.
Zu dieser Zeit bzw. dabei wird der Wert des Registers r4 in der
Schattenregisterdatei 13 keiner Verarbeitung unterworfen.
Falls der erste und der zweite Eintrag in dem TF-Register 10 bei
de "wahr" sind, wird der Wert des Registers r6 in der Schatten
registerdatei 13 in das entsprechende Register r6 in der Folgere
gisterdatei 12 durch das Übertragungsgatter 34 übertragen.
Falls mindestens einer der ersten und zweiten Einträge in dem TF-
Register 10 "falsch" ist, wird jedoch der Wert des Registers r6
in der Schattenregisterdatei 13 keiner Verarbeitung unterworfen.
Als nächstes wird in dem dritten Zyklus entsprechend des Befehls
codes "TF[1]&/TF[2]?J1", falls der erste Eintrag in dem TF-Regi
ster 10 "wahr" und der zweite Eintrag "falsch" ist, ein unbeding
ter Verzweigungsbefehl J1 ausgeführt. Genauer wird, falls die
Bedingung C1 "wahr" ist und die Bedingung C2 "falsch" ist, ein
Adreßbestimmungsbasisblock M2 in dem Programmzähler 4 gespei
chert.
Falls der erste Eintrag in dem TF-Register 10 "falsch" ist, wird
ein unbedingter Verzweigungsbefehl J2 ausgeführt. Genauer wird,
falls die Bedingung C1 "falsch" ist, ein Adreßbestimmungsbasis
block M1 in dem Programmzähler 4 gespeichert.
Falls der erste und der zweite Eintrag in dem TF-Register 10 bei
de "wahr" sind, wird ein unbedingter Verzweigungsbefehl J3 ausge
führt. Genauer wird, falls die Bedingungen C1 und C2 beide "wahr"
sind, ein Adreßbestimmungsbasisblock M3 in dem Programmzähler 4
gespeichert.
Wie oben beschrieben wurde, wird entsprechend der ersten Ausfüh
rungsform ein Befehl, der unter einer oder unter mehreren Bedin
gungen tatsächlich auszuführen ist, ausgeführt, bevor wahr/falsch
der Bedingungen bestimmt sind. Entsprechend des in Fig. 11 ge
zeigten Programmes wird zum Beispiel der Befehl I2, der unter der
Bedingung C1 auszuführen ist, in dem ersten Zyklus spekulativ
(das heißt ohne Rücksicht auf das Erfüllen der Bedingung) ausge
führt, bevor wahr/falsch für die Bedingung C1 bestimmt ist. Der
Befehl I3, der auch unter der Bedingung C1 auszuführen ist, wird
in dem ersten Zyklus spekulativ ausgeführt, bevor wahr/falsch der
Bedingung bestimmt ist. Der Befehl I4, der unter den Bedingungen
C1 und C2 auszuführen ist, wird spekulativ in dem ersten Zyklus
ausgeführt, bevor wahr/falsch für diese Bedingungen C1 und C2
bestimmt sind.
Darum werden solche spekulativen Befehle I2 bis I4, die mit dem
herkömmlichen Mikroprozessor in dem ersten Zyklus nicht ausge
führt werden können, ausgeführt und die ALUs 2A bis 2D werden
effektiv genutzt. Dieses verbessert die Verarbeitungsgeschwindig
keit für die Befehle.
Es ist zu bemerken, daß bei der ersten Ausführungsform der Folge
registerspeicher 12 und der Schattenregisterspeicher 13 der Da
tenhalteeinheit entsprechen, die deterministisch (festgelegt)
oder provisorisch (vorläufig) die Ergebnisdaten bzw. den Ergeb
niswert hält.
Fig. 12A und 12B sind Blockdarstellungen, die den Aufbau eines
Mikroprozessors entsprechend einer zweiten Ausführungsform zei
gen.
Der Mikroprozessor entsprechend der zweiten Ausführungsform weist
eine Pipeline-Anordnung von Mikroprozessoren entsprechend der
ersten Ausführungsform auf.
Wie die Fig. 12A und 12B zeigen, verarbeitet der Mikroprozessor
im wesentlichen eine Mehrzahl von Befehlen, die unter einer oder
unter mehreren Bedingungen auszuführen sind, durch vier Verarbei
tungsstufen S1 bis S4.
Wie in dem Fall des Mikroprozessors entsprechend der ersten Aus
führungsform weist der Mikroprozessor vier ALUs 2A bis 2D, einen
Speicher 3, einen Programmzähler 4, eine Erhöhungsschaltung 5,
ein Befehlsregister 6, einen Befehlsdekoder 7, eine Zieladressen
berechnungsschaltung 9, ein TF-Register 10, eine Ausführsteuer
schaltung 11, eine Folgeregisterdatei 12, eine Schattenregister
datei 13 und eine Einsatzsteuerschaltung 14 auf.
Fig. 13 ist ein Zeitablaufdiagramm zum Gebrauch bei der Erläute
rung des Betriebs des Mikroprozessors.
Wie die Fig. 12 und 13 zeigen, wird in der ersten Verarbeitungs
stufe S1 ein Befehl, der durch den Programmzähler 4 bestimmt bzw.
bezeichnet ist, aus dem Speicher 3 geholt und in dem Befehlsregi
ster 6 gespeichert.
In der zweiten Verarbeitungsstufe S2 wird der in dem Befehlsregi
ster 6 gespeicherte Befehl durch den Befehlsdekoder 7 dekodiert
und als Reaktion auf ein Steuersignal von dem Befehlsdekoder 7
werden vorgeschriebene Daten aus der Folgeregisterdatei 12 oder
der Schattenregisterdatei 13 gelesen.
Der Mikroprozessor weist weiter ein Register 35 zum Speichern von
Signalen, die durch den Befehlsdekoder 7 erzeugt worden sind, zur
Steuerung der ALUs 2A bis 2D und Register 36 und 37 zum Speichern
von aus der Folgeregisterdatei 12 oder der Schattenregisterdatei
13 gelesenen Daten.
In der dritten Verarbeitungsstufe S3 werden in den Registern 36
und 37 gespeicherte Daten durch die ALUs 2A bis 2D als Reaktion
auf ein Steuersignal, das in dem ALU-Steuersignalregister 35 ge
speichert ist, verarbeitet.
In der vierten Verarbeitungsstufe S4 werden die durch die ALUs 2A
und 2D erzeugten Ergebnisdaten in die Folgeregisterdatei oder die
Schattenregisterdatei 13 geschrieben oder Bedingungsinformation
mit wahr oder falsch, die durch die ALUs 2A bis 2D erzeugt worden
ist, wird in das TF-Register 10 geschrieben und Daten in dem Ein
satzbedingungsabschnitt 16 werden in die Einsatzsteuerschaltung
14 geschrieben.
Es folgt eine Beschreibung des einzigartigen Aufbaus des Mikro
prozessors, der Befehle mit Einsatzbedingungen unter Pipeline-
Steuerung verarbeitet.
Wie die Fig. 12A und 12B zeigen, weist der Mikroprozessor weiter
eine Ausführsteuerschaltung 11, ein Einsatzbedingungsregister 38,
ein erstes Gültigkeitsregister 39 und ein erstes Schreibbestim
mungsregister 40 auf.
Die Ausführsteuerschaltung 11 ist identisch zu der in der ersten
Ausführungsform, sie vergleicht Einsatzbedingungsabschnitt 16 und
TF-Register 10 und erzeugt ein Befehlsgültigkeitsbit IV und
Schattenregisterschreibbestimmungsbit SD basierend auf dem Ergeb
nis (des Vergleichs).
Das Einsatzbedingungsregister 38 hält den Einsatzbedingungsab
schnitt 16, der einem Befehl entspricht, der durch die ALUs 2A
bis 2D ausgeführt wird. Das erste Gültigkeitsregister 39 hält ein
Befehlsgültigkeitsbit IV, das durch die Ausführsteuerschaltung 11
erzeugt worden ist und dem Befehl entspricht. Das erste Schreib
bestimmungsregister 40 hält ein Schattenregisterschreibbestim
mungsbit SD, das durch die Ausführsteuerschaltung 11 erzeugt wor
den ist und dem Befehl entspricht. Der Mikroprozessor weist wei
ter eine Einsatzbedingungsberechnungsschaltung 41, eine Gültig
keitsberechnungsschaltung 42, eine Schreibbestimmungsberech
nungsschaltung 43, ein zweites Gültigkeitsregister 44 und ein
zweites Schreibbestimmungsregister 45 auf.
Die Einsatzbedingungsberechnungsschaltung 41 ist identisch mit
der in Fig. 7 gezeigte Einsatzbedingungsberechnungsschaltung 17,
sie vergleicht den Einsatzbedingungsabschnitt 16, der in dem Ein
satzbedingungsregister 38 gespeichert ist, und das TF-Register 10
und erzeugt ein Gültigkeitsbit V und ein Wertbit D basierend auf
dem Ergebnis.
Fig. 14 ist eine Blockdarstellung, die den Aufbau einer Gültig
keitsberechnungsschaltung 42 zeigt. Wie in Fig. 14 gezeigt ist,
weist die Gültigkeitsberechnungsschaltung 42 ein UND-Gatter 46,
das das Gültgkeitsbit V und das Wertbit D von der Einsatzbedin
gungsberechnungsschaltung 41 empfängt, und ein ODER-Gatter 48,
das die Ausgabe des UND-Gatters 46 und das Gültigkeitsbit V über
einen Inverter 47 empfängt, und ein UND-Gatter 49, das die Aus
gabe des ODER-Gatters 48 und das Befehlsgültigkeitsbit IV von dem
ersten Gültigkeitsregister 39 empfängt, auf.
Die folgende Tabelle 4 erläutert die Funktion der Gültigkeitsbe
rechnungsschaltung 42.
Wie in Tabelle 4 gezeigt ist, ist, wenn die Einsatzbedingungsbe
rechnungsschaltung 41 sowohl das Gültigkeitsbit V als auch das
Wertbit D beide auf "1" erzeugt, die Ausgabe des ODER-Gatters 48
"1" und darum wird das in dem ersten Gültigkeitsregister 39 ge
speicherte Befehlsgültigkeitsbit IV über das UND-Gatter 49 an das
zweite Gültigkeitsregister 44 übertragen.
Die Einsatzbedingungsberechnungsschaltung 41 erzeugt das Gültig
keitsbit V auf "1" und das Wertbit D auf "0", dann ist die Aus
gabe des ODER-Gatters 48 "0" und das Befehlsgültigkeitsbit IV mit
"0" wird in dem zweiten Gültigkeitsregister 44 gespeichert.
Wenn die Einsatzbedingungsberechnungsschaltung 41 das Gültig
keitsbit V mit "0" erzeugt, ist die Ausgabe des ODER-Gatters 48
"1", und das Befehlsgültigkeitsbit IV, das in dem ersten Gültig
keitsregister 39 gespeichert ist, wird über das UND-Gatter 49 an
das zweite Gültigkeitsregister 44 übertragen.
Fig. 15 ist eine Blockdarstellung, die den Aufbau der Schreibbe
stimmungsberechnungsschaltung 43 zeigt. Wie in Fig. 15 gezeigt
ist, weist die Schreibbestimmungsberechnungsschaltung 43 einen
Inverter 50, der das Gültigkeitsbit V von der Einsatzbedingungs
berechnungsschaltung 41 empfängt, und ein UND-Gatter, das die
Ausgabe des Inverters 50 und das Schattenregisterschreibbestim
mungsbit SD von dem Schreibbestimmungsregister 40 empfängt, auf.
Die folgende Tabelle 5 erläutert die Funktion der Schreibbestim
mungsberechnungsschaltung 43.
Wie in Tabelle 5 gezeigt ist, wird, wenn die Einsatzbedingungsbe
rechnungsschaltung 41 das Gültigkeitsbit V mit "1" erzeugt, die
Ausgabe des Inverters 50 "0" und daher wird das Schattenregister
schreibbestimmungsbit SD mit "0" in dem zweiten
Schreibbestimmungsregister 45 gespeichert.
Wenn die Einsatzbedingungsberechnungsschaltung 41 das Gültig
keitsbit V mit "0" erzeugt, ist die Ausgabe des Inverters 50 "1" und
daher wird das Schattenregisterschreibbestimmungsbit SD, das in
dem ersten Schreibbestimmungsregister 40 gespeichert ist, an das
zweite Schreibbestimmungsregister 45 durch das UND-Gatter 51
übertragen.
Der Mikroprozessor weist weiter eine Registerdatei-Schreibsteuer
schaltung 52 auf. Die Registerdatei-Schreibsteuerschaltung 52
führt eine solche Steuerung aus, das, wenn das Befehlsgültig
keitsbit IV, das in dem zweiten Gültigkeitsregister 44 gespei
chert ist, "1" und das Schattenregisterschreibbestimmungsbit SD,
das in dem zweiten Schreibbestimmungsregister 45 gespeichert ist,
"0" ist, die entsprechend des Befehls durch die ALUs 2A bis 2D
erzeugten Ergebnisdaten in die Folgeregisterdatei 12 geschrieben
werden.
Wenn das Befehlsgültigkeitsbit IV in dem zweiten Gültigkeitsregi
ster 44 "1" und das Schattenregisterschreibbestimmungsbit SD, das
in dem zweiten Schreibbestimmungsregister 45 gespeichert ist, "1"
ist, dann führt die Registerdatei-Schreibsteuerschaltung 52 eine
solche Steuerung aus, daß die entsprechend des Befehls durch ALUs
2A bis 2D erzeugten Ergebnisdaten in die Schattenregisterdatei 13
geschrieben werden.
Wenn das Befehlsgültigkeitsbit IV, das in dem zweiten Gültig
keitsregister 44 gespeichert ist, "0" ist, führt die Registerda
tei-Schreibsteuerschaltung 52 eine solche Steuerung aus, daß die
Ergebnisdaten, die durch die ALUs 2A bis 2D entsprechend des Be
fehls erzeugt worden sind, weder in die Folgeregisterdatei 12
noch in die Schattenregisterdatei 13 geschrieben werden.
Der Betrieb des Mikroprozessors entsprechend der zweiten Ausfüh
rungsform wird nun in Verbindung mit den Fig. 12 und 13 beschrieben.
In dem ersten Takt wird der erste Befehl aus dem Speicher 3 in
der ersten Verarbeitungsstufe 51 geholt und in dem Befehlsregi
ster 6 gespeichert.
Dann wird in dem zweiten Takt der erste Befehl, der in dem Be
fehlsregister 6 gespeichert ist, durch den Befehlsdekoder 7 in
der zweiten Verarbeitungsstufe S2 dekodiert und Daten in der Fol
geregisterdatei 12 oder der Schattenregisterdatei 13 werden als
Reaktion auf ein Steuersignal von dem Befehlsdekoder 7 ausgelesen
und in dem Register 36 oder 37 gespeichert. Die Ausführsteuer
schaltung 11 in der zweiten Verarbeitungsstufe S2 erzeugt das
Befehlsgültigkeitsbit IV und das Schattenregisterschreibbestim
mungsbit SD, die dem ersten Befehl entsprechen, und die erzeug
ten Daten (die erzeugten Bits) werden in dem ersten Gültigkeits
register 39 bzw. dem ersten Schreibregister 40 gespeichert.
Genauer erzeugt, falls die wahr/falsch der Einträge in dem Ein
satzbestimmungsabschnitt 16 entsprechend mit den wahr/falsch der
Einträge in dem TF-Register 10 übereinstimmen, die Ausführsteuer
schaltung 11 im Übergang zu der dritten Verarbeitungsstufe S3
Behandlungsinformation, die definiert, das die später entspre
chend des ersten Befehls erzeugten Ergebnisdaten in der Folgere
gisterdatei 12 gespeichert werden.
Falls die wahr/falsch der Einträge in dem Einsatzbestimmungsab
schnitt 16 nicht entsprechend mit den wahr/falsch der Einträge in
dem TF-Register 10 übereinstimmen, erzeugt die Ausführsteuer
schaltung 11 in dem Übergang zu der dritten Verarbeitungsstufe S3
Behandlungsinformation, die definiert, das die später entspre
chend des ersten Befehls erzeugten Ergebnisdaten weder in der
Folgeregisterdatei 12 noch in der Schattenregisterdatei 13 ge
speichert werden.
Zur selben Zeit wird in der ersten Verarbeitungsstufe S1 der
zweite Befehl aus dem Speicher 3 geholt und in dem Befehlsregi
ster 6 gespeichert.
In dem dritten Takt führen dann als Reaktion auf ein Steuersi
gnal, das in dem ALU-Steuersignalregister 35 gespeichert ist, die
ALUs 2A bis 2D in der dritten Verarbeitungsstufe S3 den ersten
Befehl aus. Die Einsatzbedingungsberechnungsschaltung 41 in der
dritten Verarbeitungsstufe 53 vergleicht den Einsatzbedingungs
abschnitt 16, der dem ersten Befehl entspricht und in dem Ein
satzbedingungsregister 38 gespeichert ist, mit dem TF-Register 10
und erzeugt ein Gültigkeitsbit V und ein Wertbit D für den ersten
Befehl.
Die Gültigkeitsberechnungsschaltung 42 in der dritten Verarbei
tungsstufe S3 überträgt das Befehlsgültigkeitsbit IV, das in dem
ersten Gültigkeitsregister 39 gespeichert ist, an das zweite Gül
tigkeitsregister 44 ohne irgendeine Änderung oder es ändert das
Befehlsgültigkeitsbit IV basierend auf dem Gültigkeitsbit V und
dem Wertbit D von der Einsatzbedingungsberechnungsschaltung 41.
Die Schreibbestimmungsberechnungsschaltung 43 überträgt basierend
auf dem Gültigkeitsbit V von der Einsatzbedingungsberechnungs
schaltung 41 das Schattenregisterschreibbestimmungsbit SD, das in
dem ersten Schreibbestimmungsregister 40 gespeichert ist, an das
zweite Schreibbestimmungsregister 45 ohne irgendeine Änderung,
oder sie ändert das Schattenregisterschreibbestimmungsbit SD.
Wenn das Befehlsgültigkeitsbit IV mit "1" in dem ersten Gültig
keitsregister 39 gespeichert ist und das Schattenregisterschreib
bestimmungsbit SD mit "0" in dem ersten Schreibbestimmungsregi
ster 40 gespeichert ist (falls bereits bestimmt worden ist, daß
der erste Befehl gültig ist und die Ergebnisdaten in die Folgere
gisterdatei 12 zu schreiben sind), erzeugt die Einsatzbedingungs
berechnungsschaltung 41 immer das Gültigkeitsbit V und das Wert
bit D mit "1" und daher wird das Befehlsgültigkeitsbit IV mit "1"
in dem zweiten Gültigkeitsregister 44 gespeichert, und das Schat
tenregisterschreibbestimmungsbit SD mit "0" bleibt auf "0". Als
ein Ergebnis wird das Schattenregisterschreibbestimmungsbit SD in
dem zweiten Schreibbestimmungsregister 45 ohne irgendeine Ände
rung gespeichert.
Wenn das Befehlsgültigkeitsbit TV mit "0" in dem ersten Gültig
keitsregister 39 und das Schattenregisterschreibbestimmungsbit SD
mit "0" in dem ersten Schreibbestimmungsregister 40 gespeichert
ist (falls der erste Befehl bereits als ungültig bestimmt worden
ist), erzeugt die Einsatzbedingungsberechnungsschaltung 41 immer
das Gültigkeitsbit V mit "1" und das Wertbit D mit "0", und daher
werden das Befehlsgültigkeitsbit IV mit "0" und das Schattenregi
sterschreibbestimmungsbit SD mit "0" beide auf "0" gebracht. Als
ein Ergebnis werden das Befehlsgültigkeitsbit IV und das Schat
tenregisterschreibbestimmungsbit SD beide in dem zweiten Gültig
keitsregister 44 bzw. dem zweiten Schreibbestimmungsregister 45
ohne irgendeine Änderung gespeichert.
Wenn das Befehlsgültigkeitsbit IV mit "1" in dem Gültigkeitsregi
ster 39 gespeichert ist und das Schattenregisterschreibbestim
mungsbit SD mit "1" in dem ersten Schreibbestimmungsregister 40
gespeichert ist (falls die entsprechend des ersten Befehls zu
erzeugenden Ergebnisdaten in der Schattenregisterdatei 13 zu
speichern sind), kann in der dritten Verarbeitungsstufe S3 ir
gendeine der Bestimmungen, daß die Einsatzbedingung entsprechend
des ersten Befehls erfüllt ist, daß die Einsatzbedingung nicht
erfüllt ist, und daß es unbestimmt ist, ob die Einsatzbedingung
erfüllt ist oder nicht, gemacht werden.
Falls die Einsatzbedingung als erfüllt bestimmt wird, (falls die
Einsatzbedingungsberechnungsschaltung 41 sowohl das Gültigkeits
bit V als auch das Wertbit D mit "1" erzeugt), wird das Befehls
gültigkeitsbit IV in dem zweiten Gültigkeitsregister 44 ohne ir
gendeine Änderung gespeichert, und das Schattenregisterschreib
bestimmungsbit SD mit "1" wird in "0" geändert und in dem zweiten
Schreibbestimmungsregister 45 gespeichert.
Falls die Einsatzbedingung als nicht erfüllt bestimmt wird,
(falls die Einsatzbedingungsberechnungsschaltung 41 das Gültig
keitsbit V mit "1" und das Wertbit D mit "0" erzeugt), werden das
Befehlsgültigkeitsbit IV und das Schattenregisterschreibbestim
mungsbit SD mit "1" beide in "0" geändert und in dem zweiten Gül
tigkeitsregister 44 bzw. dem zweiten Schreibbestimmungsregister
45 gespeichert.
Falls es nicht bestimmt ist, ob die Einsatzbedingung erfüllt ist
oder nicht (falls die Einsatzbedingungsberechnungsschaltung 41
das Gültigkeitsbit V mit "0" erzeugt), werden das Befehlsgültig
keitsbit IV und das Schattenregisterschreibbestimmungsbit SD bei
de mit "1" unverändert in dem zweiten Gültigkeitsregister 44 bzw.
dem zweiten Schreibbestimmungsregister 45 gespeichert.
Gleichzeitig damit wird der zweite Befehl, der durch das Befehls
register 6 geholt worden ist, durch den Befehlsdekoder 7 deko
diert und Daten in der Folgeregisterdatei 12 oder der Schattenre
gisterdatei 13 werden als Reaktion auf ein Steuersignal von dem
Befehlsdekoder 7 ausgelesen.
Des weiteren wird gleichzeitig damit der dritte Befehl aus dem
Speicher 3 geholt.
Dann werden in dem vierten Takt die Ergebnisdaten, die durch die
ALUs 2A bis 2D entsprechend des ersten Befehls erzeugt worden
sind, in die Folgeregisterdatei 12 oder die Schattenregisterdatei
13 als Reaktion auf ein Steuersignal von der Registerdatei-
Schreibsteuerschaltung 52 geschrieben. Genauer führt die Regi
sterdatei-Schreibsteuerschaltung 52, wenn das Befehlsgültigkeits
bit IV "1" und das Schattenregisterschreibbestimmungsbit SD "0"
ist, eine solche Steuerung aus, daß die Ergebnisdaten in die Fol
geregisterdatei 12 geschrieben werden.
Wenn das Befehlsgültigkeitsbit IV "1" und das Schattenregister
schreibbestimmungsbit SD "1" ist, führt die Registerdatei-
Schreibsteuerschaltung 52 eine solche Steuerung aus, daß die Er
gebnisdaten in die Schattenregisterdatei 13 geschrieben werden.
Wenn das Befehlsgültigkeitsbit IV "0" ist, führt die Registerda
tei-Schreibsteuerschaltung 52 eine solche Steuerung aus, daß die
Ergebnisdaten weder in die Folgeregisterdatei 12 noch in die
Schattenregisterdatei 13 geschrieben werden.
Es ist zu bemerken, daß, falls die Ergebnisdaten in die Schatten
registerdatei 13 geschrieben werden, der Einsatzbedingungsab
schnitt 16, der dem ersten Befehl entspricht, in dem Einsatzbe
dingungsspeicherabschnitt 32 in der Einsatzsteuerschaltung 14
gespeichert ist.
Gleichzeitig damit wird der zweite Befehl durch die ALUs 2A und
2D ausgeführt, und das Befehlsgültigkeitsbit IV und das Schatten
registerschreibbestimmungsbit SD werden in dem zweiten Gültig
keitsregister 44 bzw. dem zweiten Schreibbestimmungsregister 45
gespeichert.
Gleichzeitig damit wird der dritte Befehl durch den Befehlsdeko
der 7 dekodiert und Daten in der Folgeregisterdatei 12 oder der
Schattenregisterdatei 13 werden als Reaktion auf ein Steuersignal
von dem Befehlsdekoder 7 ausgelesen.
Weiterhin gleichzeitig damit wird der vierte Befehl aus dem Spei
cher 3 geholt. Nachfolgend werden die zweiten bis vierten Befehle
vergleichbar zu dem Fall des ersten Befehls verarbeitet.
Der Mikroprozessor entsprechend der ersten Ausführungsform ist in
der Lage zum Beispiel den Bedingungsbefehl C2 vor der Ausführung
des Bedingungsbefehls C1 basierend auf dem in Fig. 10 gezeigten
Programm auszuführen. Im Sinne des Programms ist jedoch der Be
dingungsbefehl C2 dazu vorgesehen, ausgeführt zu werden, nachdem
der Bedingungsbefehl C1 ausgeführt ist.
Entsprechend der Bedeutung des Programmes kann der Mikroprozessor
so aufgebaut sein, daß der Bedingungsbefehl C2 nicht ausgeführt
werden kann, bis der Bedingungsbefehl C1 ausgeführt ist.
Fig. 16 ist eine Programmliste (Listing), die ein Beispiel eines
Programms für einen einer dritten Ausführungsform der Erfindung
entsprechenden Mikroprozessor zeigt. Es ist zu bemerken, daß die
Befehle I1 bis I4, C1 und C2, D1 und D3 identisch mit den in Fig.
11 gezeigten sind.
Charakteristisch ist, daß der Bedingungsbefehl C2 anhängig von
einem Ergebnis der Ausführung des Bedingungsbefehls C1 ausgeführt
wird. Genauer wird der Bedingungsbefehl C2 nur ausgeführt, wenn
der erste Eintrag in dem TF-Register 10 "wahr" ist. Das
wahr/falsch in dem ersten Eintrag in dem TF-Register 10 wird
durch Ausführung des Bedingungsbefehls C1 in dem unmittelbar vor
herigen Zyklus bestimmt.
Dementsprechend wird der Bedingungsbefehl C2 nur dann ausgeführt,
wenn der Bedingungsbefehl C1 ausgeführt ist und in den ersten
Eintrag bzw. die erste Eingangsadresse in dem TF-Register 10
"wahr" geschrieben ist, und dieses ermöglicht "wahr" oder
"falsch" in die zweite Eingangsadresse bzw. den zweiten Eintrag
des TF-Registers 10 zu schreiben.
Anders ausgedrückt enthält der zweite Eintrag bei der ersten Aus
führungsform nur das Ergebnis der Ausführung des Bedingungsbe
fehls C2, während der zweite Eintrag entsprechend der dritten
Ausführungsform nicht nur das Ergebnis der Ausführung des Bedin
gungsbefehls C2, sondern implizit außerdem die Tatsache, daß der
erste Eintrag "wahr" ist, enthält.
Die Bedingung "TF[0][02]" entsprechend der ersten Ausführungs
form wird einfach durch "TF[2]" dargestellt.
Fig. 17 ist eine Blockdarstellung, die den Aufbau einer Ausführ
steuerschaltung und einer Einsatzbedingungsberechnungsschaltung
in einer Einsatzsteuerschaltung in dem Mikroprozessor entspre
chend der dritten Ausführungsform zeigt.
Wie in Fig. 17 gezeigt ist, weist die Einsatzbedingungsberech
nungsschaltung 53 eine Vergleichsschaltung 20, einen Dekoder 54
und zwei Selektoren (Auswahlschaltungen) 55 und 56 auf. Die Ein
satzbedingungsberechnungsschaltung 53 vergleicht einen Einsatz
steuerabschnitt 58 und das TF-Register 10 und erzeugt das Gültig
keitsbit V und das Wertbit D basierend auf dem Ergebnis.
Der Einsatzsteuerabschnitt 58 wird aus einem Gültigkeitsbit, ei
nem Wertbit und einem Bit, das die Eintragsnummer des TF-Regi
sters 10 anzeigt, die zu vergleichen ist, gebildet. Das TF-Regi
ster 10 ist im wesentlichen identisch zu dem der ersten Ausfüh
rungsform. In dem Fall des in Fig. 16 gezeigten Programmes je
doch, da ein Befehl ohne Berücksichtigung von mindestens 2 Bedin
gungen ausgeführt werden kann, benötigt das TF-Register 10 nur
zwei Einträge.
Die Vergleichsschaltung 20 in der Einsatzbedingungsberechnungs
schaltung 53 ist im wesentlichen identisch zu der der ersten Aus
führungsform. Der Dekoder 54 deko 47631 00070 552 001000280000000200012000285914752000040 0002004434529 00004 47512diert die Eintragszahl des TF-
Registers 10 und erzeugt ein vorgeschriebenes Auswahlsignal. Der
Selektor 55 wählt das Gültigkeitsbit aus dem ersten oder dem
zweiten Eintrag in dem TF-Register 10 als Reaktion auf das Aus
wahlsignal des Dekoders 54 aus und legt ausgewählte Gültigkeits
bit Tv an die Vergleichsschaltung 20 an. Der Selektor 56 wählt
das Wertbit des ersten oder des zweiten Eintrags in dem TF-Regi
ster 10 als Reaktion auf ein Auswahlsignal von dem Dekoder 54 aus
und legt das ausgewählte Wertbit Td an die Vergleichsschaltung 20
an.
Zum Beispiel mit dem Befehlscode "TF[1]?I2" wird der Befehl I2
nur dann ausgeführt, wenn der erste Eintrag in dem TF-Register 10
"wahr" ist. In diesem Fall spezifiziert das Bit des Einsatzbedin
gungsabschnitts 58, das die Eintragsnummer des TF-Registers 10
anzeigt, den ersten Eintrag. Derart werden das Gültigkeitsbit Tv
und der Wert Td des ersten Eintrags in dem TF-Register 10 durch
die Selektoren 55 bzw. 56 ausgewählt und an die Vergleichsschal
tung 20 angelegt.
Mit dem Befehlscode "TF[2]?I4" spezifiziert das Bit in dem Ein
satzbedingungsabschnitt 58, das die Eintragsnummer des TF-Regi
sters 10 anzeigt, den zweiten Eintrag in dem TF-Register 10. Der
art werden das Gültigkeitsbit Tv und der Wert Td des zweiten Ein
trags in dem TF-Register 10 durch die Selektoren 55 bzw. 56 aus
gewählt und an die Vergleichsschaltung 20 angelegt.
Entsprechend der dritten Ausführungsform weisen der Einsatzbedin
gungsabschnitt 58 und die Einsatzbedingungsberechnungsschaltung 53
einfachere Konfigurationen als bei der ersten Ausführungsform
auf.
Es ist zu bemerken, daß der Mikroprozessor entsprechend der drit
ten Ausführungsform entsprechend der zweiten Ausführungsform mit
einer Pipeline-Anordnung ausgebildet sein kann.
Fig. 18 ist eine Blockdarstellung, die den Aufbau eines Mikropro
zessors entsprechend einer vierten Ausführungsform zeigt.
Wie Fig. 18 zeigt, weist der Mikroprozessor entgegengesetzt zu
der ersten Ausführungsform ein Folge-TF-Register 60 anstelle des
TF-Registers 10, ein Schatten-TF-Register 61 und eine TF-Regi
ster-Einsatzsteuerschaltung 62 auf.
Das Folge-TF-Register 60 entspricht dem TF-Register 10 entspre
chend der ersten Ausführungsform und weist einen oder mehrere
Einträge (Eingangsadressen) auf, die deterministisch (festgelegt)
eines von drei Stücken von Information, ob eine gewisse Bedingung
"wahr", "falsch" oder "unbestimmt" ist, halten.
Das Schatten-TF-Register 61 weist einen oder mehrere Einträge
auf, die provisorisch eines von drei Stücken von Information, die
anzeigen, daß eine gewisse Bedingung "wahr" ist, "falsch" ist
oder das wahr/falsch "unbestimmt" ist, halten.
Wenn ein Bedingungsbefehl mit der Einsatzbedingung (das heißt der
Bedingung für die Ausführung des Bedingungsbefehls) "unbestimmt"
ausgeführt wird, hält die TF-Register-Einsatzsteuerschaltung 62
die Einsatzbedingung und überträgt "wahr" oder "falsch", die in
dem Schatten-TF-Register 61 gespeichert sind, an das Folge-TF-
Register 60 an dem Punkt, an dem wahr/falsch in der Einsatzbedin
gung mit dem entsprechenden wahr/falsch in dem Folge-TF-Register
10 übereinstimmt.
Es ist zu bemerken, daß die TF-Register-Einsatzsteuerschaltung 62
im wesentlichen denselben Aufbau wie die Einsatzsteuerschaltung
14 entsprechend der ersten Ausführungsform aufweist.
Fig. 19 ist eine Programmliste, die ein Beispiel eines Programms
für den Mikroprozessor zeigt.
Entsprechend des Programms wird der Befehlscode "TF[1]?C" in dem
zweiten Zyklus verarbeitet. Mit dem Befehlscode "TF[1]?C2" ist
der Bedingungsbefehl C2 nur auszuführen, wenn der erste Eintrag
in dem Folge-TF-Register 60 "wahr" ist.
Das wahr/falsch des ersten Eintrags wird jedoch nur dann be
stimmt, wenn der Befehlscode "immer?C1" in dem nächsten dritten
Zyklus verarbeitet wird. Dementsprechend wird an diesem Punkt in
dem zweiten Zyklus, da der erste Eintrag in dem Folge-TF-Register
60 "unbestimmt" ist, der Bedingungsbefehl C2 provisorisch ausge
führt, und das wahr/falsch wird in dem zweiten Eintrag in dem
Schatten-TF-Register 61 gespeichert. Gleichzeitig damit wird die
Einsatzbedingung "TF[1]" in dem Einsatzbedingungsspeicherab
schnitt in der TF-Register-Einsatzsteuerschaltung 62 gespeichert.
Dann wird mit dem Befehlscode "immer?C1" in dem dritten Zyklus
der Bedingungsbefehl C1 immer ausgeführt und dieses wahr/falsch
wird in dem ersten Eintrag in dem Folge-TF-Register 60 gespei
chert.
Die TF-Register-Einsatzsteuerschaltung 62 überwacht immer das
Folge-TF-Register 60. Darum wird, wenn das wahr/falsch in der
Einsatzbedingung, das in dem Einsatzbedingungsspeicherabschnitt
in der TF-Register-Einsatzsteuerschaltung 62 gespeichert ist, mit
dem wahr/falsch des ersten Eintrags in dem Folge-TF-Register 60
übereinstimmt, das wahr/falsch des Bedingungsbefehls C2, das in
dem zweiten Eintrag in dem Schatten-TF-Register 61 gespeichert
ist, an den zweiten Eintrag in dem Folge-TF-Register 60 übertra
gen.
Entsprechend der vierten Ausführungsform kann zusätzlich zu den
einfachen Ausführbefehlen I2 und I3 (d. h. Befehlen, die eine Ver
arbeitung ausführen), die eine Einsatzbedingung "unbestimmt" auf
weisen, der Bedingungsbefehl C2 (d. h. ein Befehl, der abhängig
von einer Bedingung verschiedene Verarbeitungen ausführt), der
eine Einsatzbedingung "unbestimmt" aufweist, auch spekulativ aus
geführt werden.
Es ist zu bemerken, daß bei der vierten Ausführungsform das Fol
ge-TF-Register 60 und das Schatten-TF-Register 61 der Wahr/
Falsch-Halteeinheit entsprechen. Die Einsatzsteuerschaltung 14
entspricht der ersten Einsatzsteuerschaltung. Die TF-Register-
Einsatzsteuerschaltung 62 entspricht der zweiten Einsatzsteuer
schaltung.
Fig. 20 ist eine Darstellung, die den Aufbau einer Registerdatei
in einem Mikroprozessor entsprechend einer fünften Ausführungs
form zeigt.
Wie in Fig. 20 gezeigt ist, weist der Mikroprozessor eine erste
Registerdatei 65, die von 32 Registern RA1 bis RA32 gebildet
wird, eine zweite Registerdatei 66, die von 32 Registern RB1 bis
RB32 gebildet wird, und 32 Kennzeichen (Flags) F1 bis F32 auf.
Entsprechend der fünften Ausführungsform werden die Ergebnisda
ten, falls ein Befehl mit der Einsatzbedingung "unbestimmt" spe
kulativ ausgeführt wird, die Ergebnisdaten provisorisch in einem
der Register RA1 bis RA32 in der ersten Registerdatei 65 gespei
chert und ein entsprechendes Kennzeichen der Kennzeichen F1 bis
F32 wird auf "0" gesetzt.
Das Kennzeichen wird auf "1" in dem Moment gesetzt, wenn das
Wahr/Falsch der Einsatzbedingung bestimmt ist, und das
Wahr/Falsch entsprechend mit dem Wahr/Falsch in dem TF-Register
übereinstimmt.
Anstelle des physikalischen Übertragens der Daten von der Schat
tenregisterdatei 13 in die Folgeregisterdatei 12 wie bei der er
sten Ausführungsform kann das Invertieren des Kennzeichens die
den Status der Registerdateien 65 und 66 von einem spekulativen
Status in einen Folgestatus bei der fünften Ausführungsform än
dern.
Die Mikroprozessoren entsprechend der ersten bis fünften Ausfüh
rungsformen sind zum Ausführen spekulativer Befehle in der Lage,
aber sie haben ein Problem damit, wie eine Ausnahme, die beim
Ausführen eines solchen spekulativen Befehls auftritt, zu verar
beiten ist, da es unbekannt ist, ob die Ergebnisdaten an dem
Punkt, an dem ein solcher spekulativer Befehl ausgeführt wird,
gültig sind.
Die einfachste Annäherung an das Problem ist es, eine Ausnahme,
die durch einen spekulativen Befehl verursacht wird, an dem
Punkt, an dem die Ausnahme verursacht wird, vergleichbar zu dem
Fall einer Ausnahme, die durch einen Folgebefehl verursacht wird,
zu verarbeiten.
Diese Methode ist sehr einfach, aber sie erniedrigt in starkem
Maß die Verarbeitungseffizienz für die Befehle. Wenn eine Ausnah
me, die wie oben beschrieben "Page-Fehler" genannt wird, verur
sacht wird, werden zum Beispiel einige hundert bis einige tausend
von Zyklen zum entsprechenden Verarbeiten der Ausnahme notwendig
sein. Falls jedoch die Ergebnisdaten, die durch das Ausführen des
spekulativen Befehls erzeugt werden, der den Page-Fehler verur
sacht hat, nicht notwendig sind, werden die einige hundert bis
einige tausend Zyklen verschwendet, d. h. unnötig verbraucht,
sein.
Fig. 21 ist eine Blockdarstellung, die den Aufbau eines Mikropro
zessors entsprechend einer sechsten Ausführungsform, die auf die
Lösung eines solchen Problems gerichtet ist, zeigt.
Wie in Fig. 21 gezeigt ist, weist der Mikroprozessor in diesem
Fall wie der Mikroprozessor entsprechend der ersten Ausführungs
form vier ALUs 2A bis 2D, einen Speicher 3, einen Programmzähler
4, eine Erhöhungsschaltung 5, ein Befehlsregister 6, einen Be
fehlsdekoder 7, eine Zieladressenberechnungsschaltung 9, ein TF-
Register 10, eine Ausführsteuerschaltung 11, eine Folge-Register
datei 12, eine Schatten-Registerdatei 13 und eine Einsatzsteuer
schaltung 14 auf.
Der Mikroprozessor weist anders als der Mikroprozessor entspre
chend der ersten Ausführungsform einen EPC (Excepted Program
Counter = Ausnahmeprogrammzähler) 70, einen Selektor (Auswahl
schaltung) 71 und eine EP (Excepted Pending = Ausnahme ist anhän
gig)-Schaltung 72 auf.
Der EPC 70 speichert eine Adresse, die in dem Programmzähler 4
gespeichert ist, wenn ein aus dem Speicher 3 geholter Befehl eine
Ausnahme verursacht. Der Selektor 71 wählt durch die ALUs 2A bis
2D produzierte Ergebnisdaten oder die in dem EPC 70 gespeicherte
Adresse aus und liefert dieselbe an die Folgeregisterdatei 12
oder die Schattenregisterdatei 13. Es ist zu bemerken, daß der
EPC 70 und der Selektor 71 in dem herkömmlichen Mikroprozessor
vorgesehen sind.
Die EP-Schaltung 72 speichert die Tatsache, daß der spekulative
Befehl die Ausnahme verursacht hat, als Reaktion auf ein Ausnah
meerzeugungssignal SE, das anzeigt, daß der spekulative Befehl
die Ausnahme verursacht hat, und sie erzeugt ein Ausnahmeverar
beitungssignal RSE, das die Notwendigkeit des Verarbeitens der
Ausnahme an einem vorgeschriebenen Punkt anzeigt.
Ein solches Ausnahmeerzeugungssignal SE wird an verschiedenen
Orten abhängig von der Art der Ausnahme erzeugt. Falls die Aus
nahme ein Page-Fehler ist, wird zum Beispiel das Ausnahmeerzeu
gungssignal SE in der peripheren Schaltung des Speichers 3 er
zeugt. Falls die Ausnahme ein Überlauf ist, wird das Ausnahmeer
zeugungssignal SE durch die ALUs 2A bis 2D erzeugt. Falls ein
undefinierter Befehl geholt wird, wird das Ausnahmeerzeugungssi
gnal SE durch den Befehlsdekoder 7 erzeugt.
Fig. 22 ist eine Blockdarstellung, die den Aufbau der Folgeregi
sterdatei 12, der Schattenregisterdatei 13, der Einsatzsteuer
schaltung 14 und der EP-Schaltung 72 zeigt.
Die Folgeregisterdatei 12, die Schattenregisterdatei 13 und die
Einsatzsteuerschaltung 14 weisen im wesentlichen den identischen
Aufbau wie die der ersten Ausführungsform auf.
Wie in dem Fall der Folgeregisterdatei 12, der Schattenregister
datei 13, und der Einsatzsteuerschaltung 14 weist die EP-Schal
tung 72 32 Einträge bzw. Eingangsadressen auf.
Jeder Eintrag (d. h. jede Eingangsadresse) in der EP-Schaltung 72
weist eine Verriegelungsschaltung 74, ein NAND-Gatter 72 und ei
nen n-Kanal-MOS-Transistor 76 auf.
Die Verriegelungsschaltung 74 weist einen Eingangsanschluß IN,
einen Freigabeanschluß E und einen Rücksetzanschluß R auf, und
sie speichert "1" oder "0" als Reaktion auf das Ausnahmeerzeu
gungssignal SE, das über einen Puffer 77 an den Eingabeanschluß
IN angelegt ist. Das Ausgabesignal der Verriegelungsschaltung 74
wird an ihren eigenen Freigabeanschluß E angelegt. Darum wird als
Reaktion auf das Anlegen des Ausnahmeerzeugungssignals SE auf H-
Niveau an den Eingangsanschluß IN der Verriegelungsschaltung 74
durch den Puffer 77 die Verriegelungsschaltung auf "1" gesetzt.
Zu dem Zeitpunkt wird, da ein H-Niveau Ausgabesignal an den Frei
gabeanschluß E auf einen negativen Logik angelegt wird, die Ver
riegelungsschaltung 74 nicht erneut beschrieben, falls ein neues
Ausnahmeerzeugungssignal SE angelegt wird.
Das Ausgabesignal der Verriegelungsschaltung 74 und das Ausgabe
signal des UND-Gatters 33 in der Einsatzsteuerschaltung 14 werden
an den Eingabeanschluß des UND-Gatters 75 angelegt, dessen Aus
gabesignal an das Gate des n-Kanal-MOS-Transistors 76 angelegt
wird.
Die 32 n-Kanal-MOS-Transistoren 76 in den 32 Einträgen bilden
zusammen mit einem Hochzieh-Widerstand 79 und einen Inverter 80
ein ODER-Gatter 81.
Der Einsatzbedingungsspeicherabschnitt 32 weist außerdem einen
Eingabeanschluß IN und einen Freigabeanschluß E auf und speichert
den Einsatzbedingungsabschnitt 16, der an den Eingabeanschluß IN
über einem Puffer 78 angelegt wird, wenn ein spekulativer Befehl
ausgeführt wird. Das Ausgabesignal der Verriegelungsschaltung 74
wird außerdem an den Freigabeanschluß E des Einsatzbedingungs
speicherabschnittes 32 angelegt. Darum ist, wenn eine Ausnahme
auftritt und "1" in der Schaltung 74 gespeichert ist, der Ein
satzbedingungsspeicherabschnitt 32 nicht in der Lage erneut be
schrieben zu werden.
Nun wird der Betrieb des Mikroprozessors entsprechend der sech
sten Ausführungsform beschrieben.
Fig. 23 ist ein Zeitablaufdiagramm zum Gebrauch bei der Erläute
rung des Betriebs des Mikroprozessors entsprechend der sechsten
Ausführungsform.
Verschiedene Befehle werden sequentiell in einem Hauptprogramm,
das Folgebefehle und spekulative Befehle aufweist, verarbeitet.
Falls die Ausführung eines spekulativen Befehls eine Ausnahme
verursacht, wird die Ausnahme nicht bis zu einem Einsatzpunkt
(d. h. einem Zeitpunkt des Ausführens) verarbeitet.
Ein Erholungscode, der unter Verwendung von Software erzeugt
wird, ist für jeden Einsatzpunkt vorbereitet. Wenn der Einsatz
punkt erreicht ist, wird der Erholungscode von seinem ersten Be
fehl ausgeführt.
Der Erholungscode wird gebildet durch Extrahieren von nur den
spekulativen Befehlen vor dem Einsatzpunkt aus dem Hauptprogramm.
Diese spekulativen Befehle werden nacheinander folgend angeordnet
und in einen Folgebefehl geändert. Wenn ein spekulativer Befehl,
bei dem zuvor eine Ausnahme aufgetreten ist, ausgeführt wird,
wird die Ausnahme wie in dem vorhergehenden Fall erneut erzeugt.
Diesmal jedoch wird die Verarbeitung für die Ausnahme direkt dar
aufhin basierend auf einer vorgeschriebenen Ausnahmeroutine aus
geführt. Wenn der letzte Befehl in dem Erholungscode ausgeführt
ist, kehrt der Verarbeitungsablauf zu dem Hauptprogramm zurück
und die Verarbeitung wird an dem Befehl wieder aufgenommen, der
der nächste nach dem Einsatzpunkt ist.
Der Betrieb des Mikroprozessors entsprechend der sechsten Ausfüh
rungsform wird nun detaillierter beschrieben.
Es wird angenommen, daß ein Befehl mit einer Einsatzbedingung
TF[1]?I2 eine Ausnahme verursacht, wenn zum Beispiel das Pro
gramm, das in Fig. 11 gezeigt ist, ausgeführt wird.
In dem ersten Zyklus wird der Folgebefehl I1 ausgeführt, nämlich
ein in dem Register r10 gespeicherter Wert und ein in dem Regi
ster r11 gespeicherter Wert werden addiert und die Ergebnisdaten
werden in dem Folgeregister r2 des zweiten Eintrags in der Folge
registerdatei 12 gespeichert. Gleichzeitig damit wird der speku
lative Befehl I2 ausgeführt. Da der erste Eintrag in dem TF-Regi
ster 10, der der Einsatzbedingung TF[1] des Befehls I2 ent
spricht, "unbestimmt" ist, wird der Befehl I2 spekulativ ausge
führt. Derart werden ein Wert, der in dem Register r12 gespei
chert ist, und ein Wert, der in dem Register r13 gespeichert ist,
addiert und die Ergebnisdaten werden in dem Schattenregister r4
des vierten Eintrags in der Schattenregisterdatei 13 gespeichert.
Da der Befehl I2 eine Ausnahme verursacht, wird das Ausnahmeer
zeugungssignal SE mit H-Niveau an die Verriegelungsschaltung 74
des vierten Eintrags in der EP-Schaltung 72 über den Puffer 77
angelegt. Derart wird "1" in die Verriegelungsschaltung 74 des
vierten Eintrags geschrieben. Es ist zu bemerken, daß, da der
Befehl I2 die Ausnahme verursacht hat, der Ergebniswert ein will
kürlicher Wert ist.
Gleichzeitig dazu werden die Befehle mit Einsatzbedingungen I3
und I4 ausgeführt. Da diese Befehle I3 und I4 beide spekulativ
sind, werden die Ergebnisdaten in den Schattenregistern 31 des
fünften und des sechsten Eintrags in der Schattenregisterdatei 13
gespeichert.
Da jedoch diese Befehle I3 und I4 keine Ausnahme verursachen,
wird das Ausnahmeerzeugungssignal SE auf L-Niveau an die Verrie
gelungsschaltung 74 des fünften bzw. des sechsten Eintrags in der
EP-Schaltung 72 angelegt. Derart wird "0" in der Verriegelungs
schaltung 74 gespeichert.
Dann werden in dem zweiten Zyklus die Folgebedingungsbefehle C1
und C2 gleichzeitig ausgeführt. Falls der in dem Folgeregister r2
des zweiten Eintrags gespeicherte Wert kleiner als der in dem
Folgeregister r3 des dritten Eintrags gespeicherte Wert ist, wird
in dem ersten Eintrag des TF-Registers 10 "wahr" gesetzt. Derart
erreicht, falls der in dem Einsatzbedingungsspeicherabschnitt 32
des vierten Eintrags in der Einsatzsteuerschaltung 14 gespeicher
te Inhalt mit dem in dem TF-Register 10 gespeicherten Inhalt
übereinstimmt, das Ausgabesignal des UND-Gatters 33 das H-Niveau.
Dieses schaltet das Übertragungsgatter 34 in dem vierten Eintrag
an, und die Ergebnisdaten des Befehls I2, die in dem Schattenre
gister 31 des vierten Eintrags gespeichert sind, werden an das
Folgeregister 30 des vierten Eintrags übertragen. Gleichzeitig
damit wird das UND-Gatter 75 in dem vierten Eintrag in der EP-
Schaltung 72 angeschaltet, und ein Ausgabesignal aus seiner Ver
riegelungsschaltung 74 wird an das Gate des n-Kanal-MOS-Transi
stors 76 angelegt.
Da die Ausnahme auftritt, wenn der Befehl I2 in dem ersten Zyklus
ausgeführt wird, ist "1" in der Verriegelungsschaltung 74 des
ersten Eintrags in der EP-Schaltung 72 gesetzt worden. Darum er
reicht das Ausgabesignal der Verriegelungsschaltung 74 das H-Ni
veau und der n-Kanal-MOS-Transistor 76 wird angeschaltet. Dieses
bringt das Ausnahmeverarbeitungssignal RSE auf das H-Niveau. Als
Reaktion auf das Ausnahmeverarbeitungssignal RSE auf H-Niveau
wird die Anfangsadresse der Ausnahmebehandlung in dem Programm
zähler 4 gesetzt. Derart wird der Ausnahmeverarbeitungsablauf
(die Routine zum Verarbeiten der Ausnahme) ausgeführt.
Falls der in dem Folgeregister r2 des zweiten Eintrags gespei
cherte Wert nicht kleiner als der in dem Folgeregister r3 des
dritten Eintrags gespeicherte Wert ist, wird in dem ersten Ein
trag des TF-Registers 10 "falsch" gesetzt.
In diesem Fall erreicht das Ausgabesignal des UND-Gatters 33 des
vierten Eintrags in der Einsatzsteuerschaltung 14 nicht das H-
Niveau, sondern es wird auf dem L-Niveau gehalten. Die in dem
Schattenregister 31 des vierten Eintrags in der Schattenregister
datei 13 gespeicherten Ergebnisdaten werden nicht an das entspre
chende Folgeregister 30 übertragen. Ein Ausgabesignal auf H-Ni
veau von der Verriegelungsschaltung 74 wird nicht an das Gate des
n-Kanal-MOS-Transistors 76 angelegt. Dementsprechend erreicht das
Ausnahmeverarbeitungssignal RSE nicht das H-Niveau, sondern es
wird auf dem L-Niveau gehalten. Darum wird der Ausnahmeverarbei
tungsablauf nicht ausgeführt.
Wie in dem Vorhergehenden ausgeführt worden ist, wird bei dem
Mikroprozessor, falls eine Ausnahme durch das Ausführen eines
spekulativen Befehls I2 erzeugt wird, ein Verarbeitungsablauf für
die Ausnahme nicht unmittelbar darauf folgend ausgeführt und bis
zu einem Einsatzpunkt, an dem die Einsatzbedingung des spekulati
ven Befehls I2 erfüllt ist, hinausgezögert, wobei an dem Einsatz
punkt der Verarbeitungsablauf für die Ausnahme zum ersten Mal
ausgeführt wird.
Genauer weist der Mikroprozessor an dem Einsatzpunkt zum ersten
Mal, daß der spekulative Befehl I2, der ausgeführt worden ist,
eine Ausnahme verursacht hat, und er treibt dann die Ausnahmebe
handlung.
Falls eine Ausnahme erzeugt wird, wenn ein spekulativer Befehl
ausgeführt wird, werden bedeutungslose Ergebnisdaten erzeugt. Da
es eine Möglichkeit dafür gibt, daß ein anderer spekulativer Be
fehl basierend auf solchen bedeutungslosen Ergebnisdaten, abhän
gig von dem entsprechenden Programm, ausgeführt worden ist, ist
das erneute Ausführen des spekulativen Befehls, der die Ausnahme
verursacht hat, nachdem der Ausnahmeverarbeitungsablauf ausge
führt worden ist, nicht genug, und die anderen spekulativen Be
fehle müssen erneut ausgeführt werden.
Tatsächlich notwendig ist es, die zwischen dem Auftreten der Aus
nahme und dem Einsatzpunkt befindlichen spekulativen Befehle er
neut auszuführen, aber es würde sehr aufwendig sein, nur diese
spekulativen Befehle aus dem Hauptprogramm zu extrahieren. Der
Mikroprozessor entsprechend der sechsten Ausführungsform ist so
aufgebaut, daß er alle spekulativen Befehle vor dem Einsatzpunkt
erneut ausführt.
Es ist zu bemerken, daß die Routine (Erholungscode), die nur aus
den erneut auszuführenden spekulativen Befehlen aufgebaut ist,
als ein Programm für jeden Einsatzpunkt vorbereitet ist. Da das
Wahr/Falsch für die Einsatzbedingungen bereits bestimmt worden
ist, wird ihre Reihenfolge zum aufeinanderfolgenden Ausführen
dieser spekulativen Befehle geändert.
In dem Fall des in Fig. 11 gezeigten Programms wird zum Beispiel
an einem Einsatzpunkt in dem zweiten Zyklus ein Erholungscode,
wie in Fig. 24 gezeigt ist, mit Software erzeugt. Wie in Fig. 24
gezeigt ist, ist der Folgebefehl "immer?I1" nicht in dem Er
holungscode enthalten. Alle Instruktionen in dem Erholungscode
sind in ihrer Reihenfolge geändert, so daß sie aufeinanderfolgend
ausgeführt werden.
Genauer gesagt, da das Wahr/Falsch des ersten Eintrags in dem TF-
Register 10 bestimmt ist, wenn der Bedingungsbefehl C1 ausgeführt
ist, sind die spekulativen Befehle I2 und I3, die das Wahr/Falsch
in den Einsatzbedingungsabschnitten aufweisen, so angeordnet, daß
sie ausgeführt werden, nachdem der Bedingungsbefehl C1 ausgeführt
ist, und sie sind als Folgebefehle ausgeführt. Da das Wahr/Falsch
des zweiten Eintrags in dem TF-Register 10 durch Ausführen des
Bedingungsbefehls C2 bestimmt wird, wird der spekulative Befehl
I4, der das Wahr/Falsch des ersten und des zweiten Eintrags in
dem Einsatzbedingungsabschnitt aufweist, so angeordnet, daß er
ausgeführt wird, nachdem die Bedingungsbefehle C1 und C2 ausge
führt sind, und er wird als ein Folgebefehl ausgeführt.
Wenn der Befehl I2 basierend auf dem Erholungscode erneut ausge
führt wird, wird eine Ausnahme erneut erzeugt. Da jedoch der Be
fehl E2 in diesem Fall ein Folgebefehl ist, der auszuführen ist,
nachdem das Wahr/Falsch des ersten Eintrags in dem TF-Register 10
bestimmt ist, wird der Ausnahmeverarbeitungsablauf sofort ausge
führt.
Da alle Befehle in dem Erholungscode folgend (Folgebefehle) sind,
wird eine spekulative Ausnahme nicht auftreten. An dem Ende des
Erholungscodes ist ein Sprungbefehl für einen Sprung zum Zurück
kehren zu der Adresse, die die auf den Einsatzpunkt folgende ist,
vorgesehen.
Eine Methode zum Aufrufen des Erholungscodes an dem Einsatzpunkt
ist zum Beispiel das Vorbereiten einer Sprungtabelle in einem
Programm, die so verwendet werden kann, daß sie zum Beispiel zur
Bezugnahme auf die Anfangsadresse des Erholungscodes die Adresse
des Einsatzpunktes als Index verwendet. Entsprechend einer sol
chen Methode ist es nur notwendig, einen Code zum Ausführen des
in Fig. 25 gezeigten Programmes in einem Interrupt-Handler (Be
fehl zur Reaktion auf einen Interrupt) zu speichern.
Entsprechend des Programmes wird die Anfangsadresse eines Erho
lungscodes, die der Adresse eines speziellen Einsatzpunktes ent
spricht, von der Sprungtabelle in der ersten Anweisung aufgerufen
und in einer Variablen "Erholungscodeadresse" gespeichert. Die
"Sprungtabelle" ist eine Tabelle, in der die Anfangsadresse eines
Erholungscodes entsprechend zu der Adresse jedes Einsatzpunktes
erhalten ist.
In der zweiten Anweisung wird die Anfangsadresse eines Erholungs
codes in dem Programmzähler 4 gespeichert und vorgeschriebene
Befehle werden aufeinanderfolgend entsprechend des Erholungscodes
ausgeführt.
Im allgemeinen ist der EPC ein Register zum Halten der Adresse
eines Befehls, der einen Interrupt verursacht hat, aber der EPC
70 entsprechend der sechsten Ausführungsform ist ein Register zum
Halten der Adresse eines Einsatzpunktes. Genauer hält der EPC 70
eine Adresse, wenn ein Interrupt verursacht wird, als Reaktion
auf das Ausnahmeverarbeitungssignal RSE auf H-Niveau.
Nun folgt eine Beschreibung darüber, warum die Verriegelungs
schaltung 74 und der Einsatzbedingungsspeicherabschnitt 32 daran
gehindert werden, erneut beschrieben zu werden, wenn "1" in der
Verriegelungsschaltung 74 in der EP-Schaltung 72 gesetzt ist.
Falls das erneute Beschreiben nicht verboten ist, tritt ein Pro
blem auf, wenn das in Fig. 26 gezeigte Programm ausgeführt wird.
Es wird angenommen, daß der Befehl I10 ausgeführt und eine Aus
nahme erzeugt wird. Da der Befehl I10 spekulativ ist, wird ein
Verarbeitungsablauf für die Ausnahme nicht sofort ausgeführt, "1"
wird in der Verriegelungsschaltung 74 des ersten Eintrags in der
EP-Schaltung 72 gesetzt, und die Einsatzbedingung TF "1" wird in
den Einsatzbedingungsspeicherabschnitt 32 des ersten Eintrags in
der Einsatzsteuerschaltung 14 geschrieben.
Zu dieser Zeit ist, obwohl der durch Ausführen des spekulativen
Befehls erzeugte Ergebniswert in das Schattenregister 31 des er
sten Eintrags in der Schattenregisterdatei 13 geschrieben wird,
der Ergebniswert kein korrekter Wert, da der Befehl die Ausnahme
verursacht hat.
Angenommen, daß keine Aufnahme auftritt, wenn der spekulative
Befehl I11 ausgeführt wird, wird, falls die Verriegelungsschal
tung 74 nicht mit Mitteln zum Verhindern des Schreibens vorgese
hen ist, "0" in der Verriegelungsschaltung 74 in dem ersten Ein
trag EP-Schaltung 72 gesetzt, was die Speicherung dessen, daß der
Befehl I10 die Ausnahme verursacht hat, löscht.
Es ist darum notwendig, zu verhindern, daß der Inhalt durch einen
anderen Befehl auf "0" zurückgesetzt wird, wenn "1" in der Ver
riegelungsschaltung 74 in der EP-Schaltung 72 gesetzt ist.
Dies gilt ebenfalls für den Einsatzbedingungsspeicherabschnitt
32. Das ist so, da der Einsatzbedingungsspeicherabschnitt 32 die
Bedingungen zum Verarbeiten der Ausnahmen, die durch spekulative
Befehle verursacht wurden, speichert, und dieser darf daher nicht
mit einem anderen Befehl überschrieben werden.
In dem Fall des in Fig. 26 gezeigten Programms wird der Befehl
I11 basierend auf dem Ergebniswert r1 des Befehls I10 ausgeführt.
Da der Befehl I10 eine Ausnahme verursacht hat, ist der Ergebnis
wert r1 kein korrekter Wert.
Ein erneutes Ausführen eines spekulativen Befehls, der eine Aus
nahme verursacht hat, ist nicht genug. Der Mikroprozessor ent
sprechend der sechsten Ausführungsform ist daher so entworfen,
daß er alle spekulativen Befehle vor dem Einsatzpunkt (z. B. bis
zum vorherigen Einsatzpunkt) erneut ausführt.
Wie in dem Vorhergehenden wird entsprechend der sechsten Ausfüh
rungsform, da ein Verarbeitungsablauf für eine Ausnahme, die
durch Ausführen eines spekulativen Befehls I2 verursacht worden
ist, nicht sofort ausgeführt wird, und da ein solcher Ausnahme
verarbeitungsablauf, falls es notwendig ist, an einem Einsatz
punkt ausgeführt wird, ein solcher Ausnahmeverarbeitungsablauf
nicht verschwendet, d. h. unnötigerweise ausgeführt. Darum können
Befehle effizienter und mit höherer Geschwindigkeit verarbeitet
werden.
Es ist zu bemerken, daß bei der sechsten Ausführungsform die Ver
riegelungsschaltung 74 der Ausnahmespeicherschaltung entspricht.
Der EPC 70, der Selektor 71 und ähnliches entsprechen der Ausnah
meverarbeitungseinheit.
Entsprechend der sechsten Ausführungsform können Befehle effi
zienter ohne übermäßige Ausnahmeverarbeitungsabläufe verarbeitet
werden, aber sie weist das Problem auf, daß zum Vorsehen eines
Erholungscodes, der an jedem Einsatzpunkt vorgesehen ist und ei
ner Sprungtafel zum Aufrufen des Erholungscodes, die binäre Größe
eines Programms erhöht wird und daher ein großer Bereich des
Speicherbereichs der Platte (Speicherplatte) belegt wird.
Da die Anfangsadresse eines Erholungscodes jeweils in einen Ein
trag der Sprungtafel geschrieben ist, ist zum Beispiel für einen
32-Bit-Mikroprozessor die Größe jedes Eintrages in der Sprungta
fel 4 Byte groß. Im folgenden wird eine Gruppe von Befehlen, die
parallel ausgegeben werden, als ein Befehlsblock bezeichnet. Die
Anfangsadresse eines Erholungscodes ist für jeden Einsatzpunkt
notwendig, und daher ist die Größe der Sprungtabelle am größten,
wenn alle Befehlsblöcke Einsatzpunkte sind.
Währenddessen weist ein Erholungscode in einem Hauptprogramm (des
Erholungscodes) spekulative Befehle aufeinanderfolgend angeordnet
auf, und daher ist die Größe des Erholungscodes gleich oder ein
wenig größer als die Größe des Hauptprogramms. Angenommen, daß
die Größe des Erholungscodes ungefähr gleich der Größe des Haupt
programmes ist, beträgt die Größe des Erholungscodes, der einem
Befehlsblock entspricht, 20 Byte für einen Mikroprozessor, der 5-
Byte Befehle ausgibt, in anderen Worten für einen Mikrocomputer,
dessen ein Befehlsblock 20 Byte entspricht.
Darum ist das Verhältnis der Erhöhung der binären Größe des ge
samten Programmes relativ zu der binären Größe von nur dem Haupt
programm wie folgt gegeben:
Wie aus dem Ausdruck zu ersehen ist, ist die binäre Größe des
gesamten Programmes inklusive der Sprungtafel und des Erholungs
codes ungefähr 2,2 mal größer, als nur die binäre Größe des
Hauptprogrammes.
Bei der sechsten Ausführungsform wird selbst für eine kleine
Wahrscheinlichkeit des Auftretens einer Ausnahme eine hohe Wahr
scheinlichkeit des Auftretens des Überschreitens von zwei Cash-
Fehlern oder Page-Fehlern bei der Bezugnahme auf die Sprungtafel
und das Ausführen des Erholungscodes erwartet, und daher kann die
Leistung stark gestört sein.
Zusätzlich kann, da die Befehle in einem Erholungscode aufeinand
erfolgend in geänderter Weise angeordnet werden, die Hardware,
die zum Ausführen spekulativer Befehle in der Lage ist, nicht
effektiv genutzt werden.
Fig. 27 ist eine Blockdarstellung, die den Aufbau eines gesamten
Mikroprozessors entsprechend einer siebten Ausführungsform zeigt,
die auf die Lösung eines solchen Problemes gerichtet ist.
Wie Fig. 27 zeigt, weist der Mikroprozessor einen Erholungspro
grammzähler (RPC) 85 zum Speichern von Zieladressen für Verzwei
gungsbefehle, ein TF-Register 86 zum Halten einer Bedingungsin
formation, die anzeigt, daß eine jeweilige Bedingung "wahr",
"falsch" oder "unbestimmt" ist, eine Wahr/Falsch-Berechnungs
schaltung (TF-Berechnungsschaltung) 87 zum Addieren von Bedin
gungsinformation, die von dem TF-Register 86 erhalten wird, und
von Bedingungsinformation, die von den ALUs 2A bis 2D erhalten
wird, zur Ausgabe, ein Zukünftigwahr/Zukünftigfalsch-Register
(FTF-Register) 88 zum Halten von Bedingungsinformation, die von
der TF-Berechnungsschaltung 87 erhalten wird, eine Unterbre
chungssteuerschaltung (Interrupt-Steuerschaltung) 89 zum Erzeugen
eines Unterbrechungssteuersignals (Interrupt-Steuersignal) als
Reaktion auf ein Ausnahmeverarbeitungssignal RSE, ein Unterbre
chungssignal oder ähnliches, eine Vergleichsschaltung 90 zum Ver
gleichen des Wertes des Programmzählers 4 und eines Wertes des
EPC 70 und zum Erzeugen eines Vergleichssignals CMP auf H-Niveau
als Reaktion auf eine Übereinstimmung zwischen diesen, und ein
Statusregister 91, das ein Erholungsmodusbit 92 aufweist, das als
Reaktion auf das Vergleichssignal CMP auf H-Niveau zurückgesetzt
wird, auf.
Anders als das TF-Register 10 in den oben beschriebenen Ausfüh
rungsformen akzeptiert das TF-Register 86 Bedingungsinformation
von der TF-Berechnungsschaltung 87 nur während des Zeitraumes, in
dem das Ausnahmeverarbeitungssignal RSE auf L-Niveau ist. Genauer
wird das erneute Schreiben von Bedingungsinformation in das TF-
Register 10 während des Zeitraums, in dem Ausnahmeverarbeitungs
signal RSE auf dem H-Niveau ist, verhindert. Das TF-Register 86
akzeptiert außerdem Bedingungsinformation von dem FTF-Register 88
als Reaktion auf das Vergleichssignal CMP auf H-Niveau.
Die TF-Berechnungsschaltung 87 weist m Einträge (Eingangsadres
sen) entsprechend den Einträgen (Eingangsadressen) des TF-Regi
sters 86 auf. Jeder Eintrag der TF-Berechnungsschaltung 87 gibt
Bedingungsinformation in einen entsprechenden Eintrag in dem TF-
Register 86 wie sie ist aus, falls entsprechende Bedingungsinfor
mation nicht von den ALUs 2A bis 2D zugeführt wird, und gibt ent
sprechende Bedingungsinformation, die von den ALUs 2A bis 2D an
gelegt wird, aus, falls solche Information angelegt wird.
Darum gibt, wenn der erste und der zweite Eintrag in dem TF-Regi
ster 86 "unbestimmt" halten und der dritte Eintrag "wahr" hält,
und wenn die von den ALUs 2A bis 2D gelieferte Bedingungsinforma
tion die ist, daß die entsprechende Bedingung des ersten Eintrags
"wahr" ist, die TF-Berechnungsschaltung 87 "wahr" aus dem ersten
Eintrag, "unbestimmt" aus dem zweiten Eintrag und "wahr" aus dem
dritten Eintrag aus. Wenn der erste Eintrag in dem TF-Register 86
"falsch" hält, der zweite Eintrag "wahr" hält und der dritte Ein
trag "unbestimmt" hält, und wenn die Bedingungsinformation, die
von den ALUs 2A bis 2D zugeführt wird, die ist, daß die entspre
chende Bedingung in dem dritten Eintrag "falsch" ist, gibt die
TF-Berechnungsschaltung 87 "falsch" aus dem ersten Eintrag,
"wahr" aus dem zweiten Eintrag und "falsch" aus dem dritten Ein
trag aus.
Das FTF-Register 88 weist vergleichbar dem TF-Register 86 in Ein
träge auf. Jeder Eintrag des FTF-Registers 88 hält eine Informa
tion darüber, ob eine entsprechende Bedingung in der Zukunft
"wahr", "falsch" oder "unbestimmt" ist.
Die Unterbrechungssteuerschaltung 89 erzeugt wie in dem Fall der
Unterbrechungssteuerschaltung des herkömmlichen Mikroprozessors
ein Unterbrechungssteuersignal als Reaktion auf ein Unterbrech
ungssignal. Das Unterbrechnungssignal wird von dem Abschnitt
zugeführt, an dem eine Ausnahme wie ein Überlauf oder ein Page-
Fehler erzeugt wird. Das Ausnahmeverarbeitungssignal RSE, das der
Unterbrechungssteuerschaltung 89 von der EP-Schaltung 72 zuge
führt wird, ist ein solches Unterbrechungssignal. Die Unterbre
chungssteuerschaltung 89 erzeugt darum ein Unterbrechungssteuer
signal auch als Reaktion auf ein Ausnahmeverarbeitungssignal RSE.
Als Reaktion auf die Erzeugung eines Unterbrechungssteuersignals
wird die Ausnahmebehandlung (die Routine zur Behandlung der Aus
nahme) aufgerufen und ein Verarbeitungsablauf entsprechend der
erzeugten Ausnahme wird ausgeführt. Ein Unterbrechungssteuersi
gnal wird als Reaktion auf das Ausnahmeverarbeitungssignal RSE
erzeugt, und falls als Reaktion die Ausnahmebehandlung aufgerufen
wird, wird das Erholungsmodusbit 92 des Statusregisters 91 auf
"1" gesetzt. Derart wird ein Erholungsmodus, wie er im folgenden
beschrieben wird, erreicht. Die Ausnahmebehandlung, als Reaktion
auf das Ausnahmeverarbeitungssignal RSE aufgerufen ist, speichert
den Wert des RPC 85 in dem Programmzähler 4.
Die Unterbrechungssteuerschaltung 89 vergleicht eine Einsatzbe
dingung, die in einem verarbeiteten Befehl enthalten ist, und die
Bedingungsinformation des FTF-Registers 88, wenn das Erholungs
modusbit 92 auf "1" gesetzt ist und ein Unterbrechungssignal er
zeugt ist, und erzeugt ein Unterbrechungssteuersignal, wenn die
Einsatzbedingung erfüllt ist, und die Ausnahmebehandlung, die als
Reaktion aufgerufen wird, führt einen entsprechenden Ausnahmever
arbeitungsablauf aus.
Der Betrieb des Mikroprozessors entsprechend der siebten Ausfüh
rungsform wird beschrieben. Wie in dem Fall der sechsten Ausfüh
rungsform wird angenommen, daß eine Ausnahme durch einen Befehl
I2 mit einer Einsatzbedingung verursacht wird, wenn das in Fig.
11 gezeigte Programm ausgeführt wird.
Wenn in dem ersten Zyklus in einem Programm eine Adresse entspre
chend eines gewissen Verzweigungsbefehls in dem Programmzähler 4
gespeichert ist, schreitet die Ausführung (des Programms) zu dem
Basisblock K1 fort. Die in dem Programmzähler 4 zu der Zeit ge
speicherte Adresse ist außerdem in dem RPC 85 gespeichert.
In dem ersten Zyklus werden die Befehle I1 bis I4 gleichzeitig
ausgeführt. Falls der Befehl I2 spekulativ ausgeführt wird, wer
den ein in dem Register r12 gespeicherter Wert und ein in dem
Register r13 gespeicherter Wert addiert und der Ergebniswert wird
in dem Schattenregister in dem vierten Eintrag in der Schattenre
gisterdatei 13 gespeichert.
Der Befehl I2, der eine Ausnahme verursacht, ist spekulativ und
daher wird der Verarbeitungsablauf für die Ausnahme nicht sofort
ausgeführt. Anstelle dessen wird "1" in der Verriegelungsschal
tung 74 in dem vierten Eintrag der EP-Schaltung 72 gesetzt. Die
Einsatzbedingung TF[1] dazu ist in dem Einsatzbedingungsspeiche
rabschnitt 32 in dem vierten Eintrag in der Einsatzsteuerschal
tung 14 gespeichert.
Nachfolgend werden in dem zweiten Zyklus zwei Bedingungsbefehle
C1 und C2 aufeinanderfolgend ausgeführt. Falls ein Wert in der
Registerdatei r2 kleiner als ein Wert in der Registerdatei r3
ist, wird von dem ersten Eintrag in der TF-Berechnungsschaltung
87 basierend auf der Bedingungsinformation von ALUs 2A bis 2D
eine Bedingungsinformation mit "wahr" ausgegeben. Derart stimmt
die Einsatzbedingung TF[1], die in dem Einsatzbedingungsspeiche
rabschnitt 32 in dem vierten Eintrag in der Einsatzsteuerschal
tung 14 gespeichert ist, mit der Bedingungsinformation, die von
der TF-Berechnungsschaltung 87 angelegt wird, überein, und daher
steigt das Ausnahmeverarbeitungssignal RSE von der EP-Schaltung
72 auf das H-Niveau an. Die Unterbrechungssteuerschaltung 89
schreibt den Wert des Programmzählers 4 zu dem Zeitpunkt in den
EPC 70 als Reaktion auf das Ausnahmeverarbeitungssignal RSE auf
H-Niveau. Darum wird nicht die Adresse des Befehls I2, der die
Ausnahme verursacht, wie sie ist geschrieben, sondern die Adresse
des Bedingungsbefehls C2 wird zum Festlegen der Einsatzbedingung
TF[1] des Befehls I2 geschrieben.
Die Bedingungsinformation von der TF-Berechnungsschaltung 87 wird
in das FTF-Register 88 geschrieben. Falls ein Wert in dem Regi
ster r2 kleiner als ein Wert in dem Register r3 ist, und falls
ein Wert in dem Register r4 gleich einem Wert in dem Register r5
ist, wird die Bedingungsinformation "wahr" von sowohl dem ersten
als auch dem zweiten Eintrag der TF-Berechnungsschaltung 87 aus
gegeben. Die Bedingungsinformation "wahr" wird sowohl in den er
sten als auch in den zweiten Eintrag in dem FTF-Register 88 ge
schrieben.
Da zu dieser Zeit das Ausnahmeverarbeitungssignal RSE auf dem H-
Niveau ist, wird diese Bedingungsinformation der TF-Berechnungs
schaltung 87 nicht in das TF-Register 86 geschrieben. Genauer,
obwohl der erste und der zweite Eintrag in dem TF-Register 10 an
diesem Punkt entsprechend der sechsten Ausführungsform "wahr"
werden, wird der erste und der zweite Eintrag in dem TF-Register
86 entsprechend der siebten Ausführungsform auf "unbestimmt" ge
halten, und anstelle dessen werden der erste und der zweite Ein
trag in dem FTF-Register 88 "wahr".
Die Ausnahmebehandlung wird als Reaktion auf ein Unterbrechungs
steuersignal von der Unterbrechungsteuerschaltung 89 aktiviert.
Die Ausnahmebehandlung setzt das Erholungsmodusbit 92 des Status
registers 91 auf "1" und den Wert des RPC 85 in den Programmzäh
ler 4. Derart ändert der Mikroprozessor seien Modus von dem ge
wöhnlichen Modus in eine Erholungsmodus.
Da der RPC 85 die Adressen der Befehle I1 bis I4 in dem ersten
Zyklus speichert, werden die Befehle von dem ersten Zyklus erneut
ausgeführt. In dem Erholungsmodus führt die Ausführsteuerschal
tung nur spekulative Befehle durch Bezugnahme auf das TF-Register
86 aus. Darum werden in dem ersten Zyklus drei spekulative Befeh
le I2 bis I4 unter den vier Befehlen ausgeführt und der Folgebe
fehl I1 wird nicht ausgeführt.
Da der Befehl I2 ausgeführt wird, wird erneut eine Ausnahme er
zeugt. Zu diesem Zeitpunkt wird durch Bezugnahme auf den ersten
Eintrag in dem FTF-Register 88 überprüft, ob die Einsatzbedingung
TF[1] des Befehls I2 in Zukunft "wahr" oder "falsch" sein wird.
Da der erste Eintrag in dem FTF-Register 88 "wahr" ist, wird ein
Ausnahmeverarbeitungsablauf als Reaktion auf Unterbrechungssteu
ersignal, das durch die Unterbrechungssteuerschaltung 89 erzeugt
wird, ausgeführt. Obwohl der erste Eintrag in dem TF-Register 86
immer noch "unbestimmt" ist, wird der Ausnahmeverarbeitungsablauf
basierend auf der Information, daß der erste Eintrag in der Zu
kunft notwendigerweise "wahr" sein wird, ausgeführt.
Hierin ist, falls der Befehl I3 ebenfalls eine Ausnahme verur
sacht, die Einsatzbedingung des Befehls I3 TF[1], der erste Ein
trag in dem FTF-Register 88 ist "wahr" und daher wird der Ausnah
meverarbeitungsablauf nicht ausgeführt. Hierin, der erste Eintrag
in dem FTF-Register 88 ist "wahr", und in dem Fall von "unbe
stimmt", wie in dem Fall mit dem gewöhnlichen Modus, wird als
Reaktion auf das Ausnahmeerzeugungssignal SE auf H-Niveau in der
Verriegelungsschaltung 74 in dem fünften Eintrag in der EP-Schal
tung 72 "1" gesetzt.
Dieser Ausnahmeverarbeitungsablauf wird gleichzeitig mit dem Auf
treten der Ausnahme wie in dem Fall mit einem gewöhnlichen Aus
nahmeverarbeitungsablauf ausgeführt, und wenn einmal der Ausnah
meverarbeitungsablauf vervollständigt ist, sind die Adressen der
Befehle C1 und C2, die dem Befehl I2, der die Ausnahme verursacht
hat, folgen, in dem Programmzähler 4 gespeichert, und die Ausfüh
rung wird bei diesen Befehlen C1 und C2 wieder aufgenommen. Der
Wert des Programmzählers 4 ist darum gleich dem Wert des EPC 70
und darum erzeugt die Vergleichsschaltung 90 das Vergleichssignal
CMP auf H-Niveau. Als Reaktion auf das Vergleichssignal CMP auf
H-Niveau, speichert das TF-Register 86 Bedingungsinformation aus
dem FTF-Register 88, und das Erholungsmodusbit 92 des Statusregi
sters 91 wird auf "0" zurückgesetzt. Derart kehrt der Mikropro
zessor von dem Erholungsmodus in den gewöhnlichen Modus zurück.
Die siebte Ausführungsform benötigt keinen Erholungscode und kei
ne Sprungtafel zum Aufrufen des Erholungscodes, wie es bei der
sechsten Ausführungsform notwendig ist. Es ist nicht notwendig,
insbesondere die binäre Größe des Programmes zum Ausführen von
Ausnahmeverarbeitungsabläufen zu vergrößern. Zusätzlich ist, da
die erneute Ausführung zur Erholung basierend auf dem Original
programm ausgeführt wird, die Möglichkeit einer Ausnahme wie ei
nes Cash-Fehlers und eines Page-Fehlers extrem gering. Darüber
hinaus ist, wenn die erneute Ausführung zum Zwecke der Erholung
ausgeführt wird, der Mikroprozessor zum spekulativen Ausführen
von Befehlen in der Lage, und daher kann die Funktion des Prozes
sors, der zur spekulativen Ausführung von Befehlen (in der Lage
ist), effektiver genutzt werden.
Claims (21)
1. Verfahren zum Verarbeiten einer Mehrzahl von Befehlen, die
jeweils eine entsprechende Einsatzbedingung unter einer Mehrzahl
von Unterbedingungen aufweisen, wobei die Einsatzbedingung ir
gendeine Unterbedingung aus den Unterbedingungen enthält, die zum
letztendlichen Verarbeiten eines entsprechenden Befehls notwendig
ist, wobei das Verfahren die Schritte aufweist:
Bestimmen von mindestens einer ausgewählten Unterbedingung der Unterbedingungen;
Vergleichen der Einsatzbedingung, die mindestens einem ausgewähl ten Befehl aus den Befehlen entspricht, mit der Mehrzahl der Un terbedingungen;
Erzeugen von Ergebnisdaten durch Ausführen des ausgewählten Be fehls nach dem Vergleich;
deterministisches Halten der erzeugten Ergebnisdaten in einem ersten Fall, in dem wahr/falsch für alle Unterbedingungen in der entsprechenden Einsatzbedingung entsprechend mit wahr/falsch in der bereits bestimmten Unterbedingung übereinstimmt, und proviso risches Halten der erzeugten Ergebnisdaten in einem zweiten Fall, in dem wahr/falsch für irgendeine Unterbedingung in der entspre chenden Einsatzbedingung entsprechend mit wahr/falsch für die bereits bestimmte Unterbedingung übereinstimmt und die anderen Unterbedingungen in der entsprechenden Einsatzbedingung noch nicht bestimmt sind;
wobei in dem zweiten Fall die provisorisch gehaltenen Ergebnis daten an einem Einsatzzeitpunkt in deterministischer Weise erneut gehalten werden, wenn wahr/falsch für alle Unterbedingungen in der entsprechenden Einsatzbedingung entsprechend mit wahr/ falsch für die bereits bestimmten Unterbedingungen übereinstimmen.
Bestimmen von mindestens einer ausgewählten Unterbedingung der Unterbedingungen;
Vergleichen der Einsatzbedingung, die mindestens einem ausgewähl ten Befehl aus den Befehlen entspricht, mit der Mehrzahl der Un terbedingungen;
Erzeugen von Ergebnisdaten durch Ausführen des ausgewählten Be fehls nach dem Vergleich;
deterministisches Halten der erzeugten Ergebnisdaten in einem ersten Fall, in dem wahr/falsch für alle Unterbedingungen in der entsprechenden Einsatzbedingung entsprechend mit wahr/falsch in der bereits bestimmten Unterbedingung übereinstimmt, und proviso risches Halten der erzeugten Ergebnisdaten in einem zweiten Fall, in dem wahr/falsch für irgendeine Unterbedingung in der entspre chenden Einsatzbedingung entsprechend mit wahr/falsch für die bereits bestimmte Unterbedingung übereinstimmt und die anderen Unterbedingungen in der entsprechenden Einsatzbedingung noch nicht bestimmt sind;
wobei in dem zweiten Fall die provisorisch gehaltenen Ergebnis daten an einem Einsatzzeitpunkt in deterministischer Weise erneut gehalten werden, wenn wahr/falsch für alle Unterbedingungen in der entsprechenden Einsatzbedingung entsprechend mit wahr/ falsch für die bereits bestimmten Unterbedingungen übereinstimmen.
2. Verfahren nach Anspruch 1, gekennzeichnet durch die Schrit
te:
sofortige Behandlung einer Ausnahme auf das Auftreten einer Aus nahme während der Verarbeitung des ausgewählten Befehls in dem ersten Fall;
Speichern des Auftretens einer Ausnahme auf das Auftreten einer Ausnahme während der Verarbeitung des ausgewählten Befehls in dem zweiten Fall; und
Behandlung der Ausnahme an dem Einsatzzeitpunkt, wenn das Auftre ten der Ausnahme gespeichert ist.
sofortige Behandlung einer Ausnahme auf das Auftreten einer Aus nahme während der Verarbeitung des ausgewählten Befehls in dem ersten Fall;
Speichern des Auftretens einer Ausnahme auf das Auftreten einer Ausnahme während der Verarbeitung des ausgewählten Befehls in dem zweiten Fall; und
Behandlung der Ausnahme an dem Einsatzzeitpunkt, wenn das Auftre ten der Ausnahme gespeichert ist.
3. Verfahren nach Anspruch 1 oder 2, gekennzeichnet durch die
Schritte:
sofortige Behandlung einer Ausnahme auf das Auftreten einer Aus nahme während der Verarbeitung des ausgewählten Befehls in dem ersten Fall hin, und
Speichern des Auftretens einer Ausnahme auf das Auftreten einer Ausnahme während der Verarbeitung des ausgewählten Befehls in dem zweiten Fall hin;
erneute Verarbeitung aller Befehle aus der Mehrzahl der Befehle, die bis zu dem Einsatzzeitpunkt verarbeitet worden sind, wenn das Auftreten der Ausnahme zu dem Einsatzzeitpunkt gespeichert ist; und
sofortige Behandlung einer Ausnahme auf das erneute Auftreten der Ausnahme während des erneuten Verarbeitens des Befehls hin.
sofortige Behandlung einer Ausnahme auf das Auftreten einer Aus nahme während der Verarbeitung des ausgewählten Befehls in dem ersten Fall hin, und
Speichern des Auftretens einer Ausnahme auf das Auftreten einer Ausnahme während der Verarbeitung des ausgewählten Befehls in dem zweiten Fall hin;
erneute Verarbeitung aller Befehle aus der Mehrzahl der Befehle, die bis zu dem Einsatzzeitpunkt verarbeitet worden sind, wenn das Auftreten der Ausnahme zu dem Einsatzzeitpunkt gespeichert ist; und
sofortige Behandlung einer Ausnahme auf das erneute Auftreten der Ausnahme während des erneuten Verarbeitens des Befehls hin.
4. Verfahren zum Verarbeiten einer Mehrzahl von Befehlen, die
jeweils eine entsprechende Einsatzbedingung aufweisen, durch eine
Mehrzahl von Verarbeitungsstufen unter einer Pipeline-Steuerung
unter einer Mehrzahl von Unterbedingungen, wobei die Einsatzbe
dingung irgendeine Unterbedingung aus den genannten Unterbedin
gungen enthält, die zum letztendlichen Verarbeiten des ent
sprechenden Befehls notwendig ist, wobei das Verfahren die
Schritte aufweist:
Bestimmen von mindesten einer ausgewählten Unterbedingung aus den Unterbedingungen;
Vergleichen einer Einsatzbedingung, die mindestens einem ausge wählten Befehl der Befehle entspricht, mit der Mehrzahl der Un terbedingungen in einer der Mehrzahl von Verarbeitungsstufen; in einem ersten Fall, in dem wahr/falsch für alle Unterbedingun gen in der entsprechenden Einsatzbedingung entsprechend mit wahr/falsch für die bereits bestimmten Unterbedingungen überein stimmt, Erzeugen einer ersten Behandlungsinformation, die an zeigt, daß die durch Ausführung des ausgewählten Befehls zu er zeugenden Ergebnisdaten zum Zeitpunkt des Bewegens zu einer nach folgenden Stufe deterministisch gehalten werden sollen, und in einem zweiten Fall, in dem wahr/falsch für irgendeine Unterbedin gung in der entsprechenden Einsatzbedingung entsprechend mit wahr/falsch für die bereits bestimmten Unterbedingungen überein stimmt und die anderen Unterbedingungen in der entsprechenden Einsatzbedingung noch nicht bestimmt sind, Erzeugen einer zweiten Handhabungsinformation, die anzeigt, daß die durch Ausführung des ausgewählten Befehls zu erzeugenden Ergebnisdaten zum Zeitpunkt des Bewegens zu einer nachfolgenden Stufe provisorisch gehalten werden sollen;
Erzeugen von Ergebnisdaten durch Ausführen des ausgewählten Be fehls nach dem Vergleich;
deterministisches Halten der erzeugten Ergebnisdaten basierend auf der ersten Handhabungsinformation in dem ersten Fall, und provisorisches Halten der erzeugten Ergebnisdaten basierend auf der zweiten Handhabungsinformation in dem zweiten Fall;
wobei in dem zweiten Fall, wenn wahr/falsch für alle Unterbedin gung in der entsprechenden Einsatzbedingung entsprechend mit wahr/falsch für die bereits bestimmten Unterbedingungen überein stimmen, die provisorisch gehaltenen Ergebnisdaten in determini stischer Weise erneut gehalten werden.
Bestimmen von mindesten einer ausgewählten Unterbedingung aus den Unterbedingungen;
Vergleichen einer Einsatzbedingung, die mindestens einem ausge wählten Befehl der Befehle entspricht, mit der Mehrzahl der Un terbedingungen in einer der Mehrzahl von Verarbeitungsstufen; in einem ersten Fall, in dem wahr/falsch für alle Unterbedingun gen in der entsprechenden Einsatzbedingung entsprechend mit wahr/falsch für die bereits bestimmten Unterbedingungen überein stimmt, Erzeugen einer ersten Behandlungsinformation, die an zeigt, daß die durch Ausführung des ausgewählten Befehls zu er zeugenden Ergebnisdaten zum Zeitpunkt des Bewegens zu einer nach folgenden Stufe deterministisch gehalten werden sollen, und in einem zweiten Fall, in dem wahr/falsch für irgendeine Unterbedin gung in der entsprechenden Einsatzbedingung entsprechend mit wahr/falsch für die bereits bestimmten Unterbedingungen überein stimmt und die anderen Unterbedingungen in der entsprechenden Einsatzbedingung noch nicht bestimmt sind, Erzeugen einer zweiten Handhabungsinformation, die anzeigt, daß die durch Ausführung des ausgewählten Befehls zu erzeugenden Ergebnisdaten zum Zeitpunkt des Bewegens zu einer nachfolgenden Stufe provisorisch gehalten werden sollen;
Erzeugen von Ergebnisdaten durch Ausführen des ausgewählten Be fehls nach dem Vergleich;
deterministisches Halten der erzeugten Ergebnisdaten basierend auf der ersten Handhabungsinformation in dem ersten Fall, und provisorisches Halten der erzeugten Ergebnisdaten basierend auf der zweiten Handhabungsinformation in dem zweiten Fall;
wobei in dem zweiten Fall, wenn wahr/falsch für alle Unterbedin gung in der entsprechenden Einsatzbedingung entsprechend mit wahr/falsch für die bereits bestimmten Unterbedingungen überein stimmen, die provisorisch gehaltenen Ergebnisdaten in determini stischer Weise erneut gehalten werden.
5. Verfahren nach Anspruch 4, gekennzeichnet durch die Schrit
te:
erneutes Vergleichen der entsprechenden Einsatzbedingung mit der Mehrzahl der Unterbedingungen nach der Erzeugung der ersten oder der zweiten Handhabungsinformation in einer anderen Stufe nach der einen Verarbeitungsstufe; und
Ändern der zweiten Handhabungsinformation in die erste Handha bungsinformation zu dem Zeitpunkt des Bewegens zu einer nachfol genden Verarbeitungsstufe, wenn das Ergebnis des erneuten Ver gleichs anzeigt, daß sich der zweite Fall in den ersten Fall ge ändert hat.
erneutes Vergleichen der entsprechenden Einsatzbedingung mit der Mehrzahl der Unterbedingungen nach der Erzeugung der ersten oder der zweiten Handhabungsinformation in einer anderen Stufe nach der einen Verarbeitungsstufe; und
Ändern der zweiten Handhabungsinformation in die erste Handha bungsinformation zu dem Zeitpunkt des Bewegens zu einer nachfol genden Verarbeitungsstufe, wenn das Ergebnis des erneuten Ver gleichs anzeigt, daß sich der zweite Fall in den ersten Fall ge ändert hat.
6. Prozessor zum Verarbeiten einer Mehrzahl von Befehlen, die
jeweils eine entsprechende Einsatzbedingung aufweisen, wobei die
Einsatzbedingung irgendeine Unterbedingung aus einer Mehrzahl von
Unterbedingungen aufweist, die zum letztendlichen Verarbeiten
eines entsprechenden Befehls notwendig ist, wobei der Prozessor
aufweist:
ein Betriebsmittel (2A-2D) zum Ausführen von mindestens einem ausgewählten Befehl aus den Befehlen und zum Bestimmen von minde stens einer ausgewählten Unterbedingung aus den Unterbedingungen;
einem Datenhaltemittel (12, 13; 65, 66) zum deterministischen oder provisorischen Halten von durch die Ausführung des ausge wählten Befehls durch das Betriebsmittel erzeugten Ergebnisdaten;
ein Wahr/Falsch-Haltemittel (10; 60, 61; 86), das eine Mehrzahl von Einträgen entsprechend der Mehrzahl von Unterbedingungen auf weist, wobei die Einträge jeweils eine Information halten, die eine erste Bedingungsinformation, die anzeigt, daß eine entspre chende Unterbedingung wahr ist, eine zweite Bedingungsinforma tion, die anzeigt, daß die entsprechende Unterbedingung falsch ist, oder eine dritte Bedingungsinformation, die anzeigt, daß wahr/falsch für die entsprechende Unterbedingung unbestimmt ist, ist;
ein Ausführsteuermittel (11) zum Vergleichen der entsprechenden Einsatzbedingung mit der Bedingungsinformation, die von dem Wahr/Falsch-Haltemittel erhalten wird, das (i) das Datenhaltemit tel zum deterministischen Halten der Ergebnisdaten in einem er sten Fall steuert, in dem wahr/falsch für alle Unterbedingungen in der entsprechenden Einsatzbedingung entsprechend mit der allen Unterbedingungen entsprechenden Bedingungsinformation überein stimmt, und das (ii) das Datenhaltemittel zum provisorischen Hal ten der Ergebnisdaten in einem zweiten Fall steuert, in dem wahr/falsch für irgendeine Unterbedingung in der entsprechenden Einsatzbedingung entsprechend mit der zu der Unterbedingung ent sprechenden Bedingungsinformation übereinstimmt und die den ande ren Unterbedingungen in der entsprechenden Einsatzbedingung ent sprechende Bedingungsinformation die dritte Bedingungsinformation ist; und
ein Einsatzsteuermittel (14) zum Vergleichen der entsprechenden Einsatzbedingung mit der von dem Wahr/Falsch-Haltemittel erhal tenen Bedingungsinformation und zum Steuern des Datenhaltemittels zum erneuten Halten der provisorisch gehaltenen Ergebnisdaten in deterministischer Weise zu einem Einsatzzeitpunkt, wenn wahr/falsch für alle Unterbedingungen in der entsprechenden Ein satzbedingung entsprechend mit der Bedingungsinformation, die allen Unterbedingungen entspricht, übereinstimmt.
ein Betriebsmittel (2A-2D) zum Ausführen von mindestens einem ausgewählten Befehl aus den Befehlen und zum Bestimmen von minde stens einer ausgewählten Unterbedingung aus den Unterbedingungen;
einem Datenhaltemittel (12, 13; 65, 66) zum deterministischen oder provisorischen Halten von durch die Ausführung des ausge wählten Befehls durch das Betriebsmittel erzeugten Ergebnisdaten;
ein Wahr/Falsch-Haltemittel (10; 60, 61; 86), das eine Mehrzahl von Einträgen entsprechend der Mehrzahl von Unterbedingungen auf weist, wobei die Einträge jeweils eine Information halten, die eine erste Bedingungsinformation, die anzeigt, daß eine entspre chende Unterbedingung wahr ist, eine zweite Bedingungsinforma tion, die anzeigt, daß die entsprechende Unterbedingung falsch ist, oder eine dritte Bedingungsinformation, die anzeigt, daß wahr/falsch für die entsprechende Unterbedingung unbestimmt ist, ist;
ein Ausführsteuermittel (11) zum Vergleichen der entsprechenden Einsatzbedingung mit der Bedingungsinformation, die von dem Wahr/Falsch-Haltemittel erhalten wird, das (i) das Datenhaltemit tel zum deterministischen Halten der Ergebnisdaten in einem er sten Fall steuert, in dem wahr/falsch für alle Unterbedingungen in der entsprechenden Einsatzbedingung entsprechend mit der allen Unterbedingungen entsprechenden Bedingungsinformation überein stimmt, und das (ii) das Datenhaltemittel zum provisorischen Hal ten der Ergebnisdaten in einem zweiten Fall steuert, in dem wahr/falsch für irgendeine Unterbedingung in der entsprechenden Einsatzbedingung entsprechend mit der zu der Unterbedingung ent sprechenden Bedingungsinformation übereinstimmt und die den ande ren Unterbedingungen in der entsprechenden Einsatzbedingung ent sprechende Bedingungsinformation die dritte Bedingungsinformation ist; und
ein Einsatzsteuermittel (14) zum Vergleichen der entsprechenden Einsatzbedingung mit der von dem Wahr/Falsch-Haltemittel erhal tenen Bedingungsinformation und zum Steuern des Datenhaltemittels zum erneuten Halten der provisorisch gehaltenen Ergebnisdaten in deterministischer Weise zu einem Einsatzzeitpunkt, wenn wahr/falsch für alle Unterbedingungen in der entsprechenden Ein satzbedingung entsprechend mit der Bedingungsinformation, die allen Unterbedingungen entspricht, übereinstimmt.
7. Prozessor nach Anspruch 6, dadurch gekennzeichnet,
daß das Datenhaltemittel
ein erstes Registermittel (12) zum deterministischen Halten der Ergebnisdaten und
ein zweites Registermittel (13) zum provisorischen Halten der Ergebnisdaten aufweist.
daß das Datenhaltemittel
ein erstes Registermittel (12) zum deterministischen Halten der Ergebnisdaten und
ein zweites Registermittel (13) zum provisorischen Halten der Ergebnisdaten aufweist.
8. Prozessor nach Anspruch 7, dadurch gekennzeichnet,
daß das Ausführsteuermittel
ein Vergleichsmittel (17) zum Vergleichen der entsprechenden Ein satzbedingung mit der von dem Wahr/Falsch-Haltemittel erhaltenen Bedingungsinformation und
ein Mittel (18, 19A, 19B) zum (i) Steuern des ersten Registermit tels zum Halten der Ergebnisdaten in dem ersten Fall und (ii) zum Steuern des zweiten Registermittels zum Halten der Ergebnisdaten in dem zweiten Fall aufweist.
daß das Ausführsteuermittel
ein Vergleichsmittel (17) zum Vergleichen der entsprechenden Ein satzbedingung mit der von dem Wahr/Falsch-Haltemittel erhaltenen Bedingungsinformation und
ein Mittel (18, 19A, 19B) zum (i) Steuern des ersten Registermit tels zum Halten der Ergebnisdaten in dem ersten Fall und (ii) zum Steuern des zweiten Registermittels zum Halten der Ergebnisdaten in dem zweiten Fall aufweist.
9. Prozessor nach Anspruch 7 oder 8, dadurch gekennzeichnet,
daß das Einsatzsteuermittel
ein Speichermittel (32) zum Speichern der entsprechenden Einsat zbedingung,
ein Vergleichsmittel (17) zum Vergleichen der in dem Speichermit tel gespeicherten Einsatzbedingung mit der von dem Wahr/Falsch- Haltemittel erhaltenen Bedingungsinformation und
ein Übertragungsmittel (33, 34) zum Übertragen der durch das zweite Registermittel erhaltenen Ergebnisdaten an das erste Regi stermittel zu dem Einsatzzeitpunkt aufweist.
daß das Einsatzsteuermittel
ein Speichermittel (32) zum Speichern der entsprechenden Einsat zbedingung,
ein Vergleichsmittel (17) zum Vergleichen der in dem Speichermit tel gespeicherten Einsatzbedingung mit der von dem Wahr/Falsch- Haltemittel erhaltenen Bedingungsinformation und
ein Übertragungsmittel (33, 34) zum Übertragen der durch das zweite Registermittel erhaltenen Ergebnisdaten an das erste Regi stermittel zu dem Einsatzzeitpunkt aufweist.
10. Prozessor nach einem der Ansprüche 6 bis 9, dadurch gekenn
zeichnet,
daß das Datenhaltemittel ein Kennzeichen zum Spezifizieren, ob das
Datenhaltemittel die Ergebnisdaten deterministisch oder proviso
risch hält, aufweist.
11. Prozessor nach einem der Ansprüche 6 bis 10, dadurch gekenn
zeichnet,
daß ein Bedingungsbefehl zum Bestimmen von mindestens einer Un terbedingung der Unterbedingungen eine entsprechende zweite Ein satzbedingung aufweist,
daß jeder Eintrag des Wahr/Falsch-Haltemittels die Bedingungsin formation deterministisch oder provisorisch hält,
daß das Ausführsteuermittel die zweite Einsatzbedingung, die dem Bedingungsbefehl entspricht, mit der von dem Wahr/Falsch-Halte mittel erhaltenen Bedingungsinformation vergleicht, wobei es (i) in einem dritten Fall, in dem wahr/falsch für alle Unterbedingun gen in der zweiten Einsatzbedingung, die dem Bedingungsbefehl entspricht, entsprechend mit der Bedingungsinformation, die allen Unterbedingungen entspricht, übereinstimmt, das Wahr/Falsch-Hal temittel zum deterministischen Halten der ersten oder der zweiten Bedingungsinformation, die durch Bestimmung der ausgewählten Un terbedingung durch das Betriebsmittel entsprechend des Bedin gungsbefehls erzeugt wird, steuert, und wobei es (ii) in einem vierten Fall, in dem wahr/falsch für irgendwelche Unterbedingungen in der zweiten Einsatzbedingung, die dem Bedingungsbefehl ent spricht, mit der Bedingungsinformation, die der entsprechenden Unterbedingung entspricht, übereinstimmt und die den anderen Un terbedingungen in der zweiten Einsatzbedingung, die dem Bedin gungsbefehl entspricht, entsprechende Bedingungsinformation die dritte Bedingungsinformation ist, das Wahr/Falsch-Haltemittel zum provisorischen Halten der ersten oder zweiten Bedingungsinforma tion, die durch Bestimmung der ausgewählten Unterbedingung durch das Betriebsmittel entsprechend des Bedingungsbefehls erzeugt ist, steuert, und
wobei der Prozessor weiter ein zweites Einsatzsteuermittel (62) aufweist zum Vergleichen der zweiten Einsatzbedingung, die dem Bedingungsbefehl entspricht, mit der von dem Wahr/Falsch-Halte mittel erhaltenen Bedingungsinformation und zum Steuern des Wahr/Falsch-Haltemittels zum erneuten Halten der ersten oder der zweiten Bedingungsinformation, die provisorisch durch das Wahr/ Falsch-Haltemittel gehalten wird, in einer deterministischen Wei se an einem zweiten Einsatzzeitpunkt, wenn alle Unterbedingungen in der Einsatzbedingung, die dem Bedingungsbefehl entspricht, mit der Bedingungsinformation, die allen Unterbedingungen entspricht, übereinstimmt.
daß ein Bedingungsbefehl zum Bestimmen von mindestens einer Un terbedingung der Unterbedingungen eine entsprechende zweite Ein satzbedingung aufweist,
daß jeder Eintrag des Wahr/Falsch-Haltemittels die Bedingungsin formation deterministisch oder provisorisch hält,
daß das Ausführsteuermittel die zweite Einsatzbedingung, die dem Bedingungsbefehl entspricht, mit der von dem Wahr/Falsch-Halte mittel erhaltenen Bedingungsinformation vergleicht, wobei es (i) in einem dritten Fall, in dem wahr/falsch für alle Unterbedingun gen in der zweiten Einsatzbedingung, die dem Bedingungsbefehl entspricht, entsprechend mit der Bedingungsinformation, die allen Unterbedingungen entspricht, übereinstimmt, das Wahr/Falsch-Hal temittel zum deterministischen Halten der ersten oder der zweiten Bedingungsinformation, die durch Bestimmung der ausgewählten Un terbedingung durch das Betriebsmittel entsprechend des Bedin gungsbefehls erzeugt wird, steuert, und wobei es (ii) in einem vierten Fall, in dem wahr/falsch für irgendwelche Unterbedingungen in der zweiten Einsatzbedingung, die dem Bedingungsbefehl ent spricht, mit der Bedingungsinformation, die der entsprechenden Unterbedingung entspricht, übereinstimmt und die den anderen Un terbedingungen in der zweiten Einsatzbedingung, die dem Bedin gungsbefehl entspricht, entsprechende Bedingungsinformation die dritte Bedingungsinformation ist, das Wahr/Falsch-Haltemittel zum provisorischen Halten der ersten oder zweiten Bedingungsinforma tion, die durch Bestimmung der ausgewählten Unterbedingung durch das Betriebsmittel entsprechend des Bedingungsbefehls erzeugt ist, steuert, und
wobei der Prozessor weiter ein zweites Einsatzsteuermittel (62) aufweist zum Vergleichen der zweiten Einsatzbedingung, die dem Bedingungsbefehl entspricht, mit der von dem Wahr/Falsch-Halte mittel erhaltenen Bedingungsinformation und zum Steuern des Wahr/Falsch-Haltemittels zum erneuten Halten der ersten oder der zweiten Bedingungsinformation, die provisorisch durch das Wahr/ Falsch-Haltemittel gehalten wird, in einer deterministischen Wei se an einem zweiten Einsatzzeitpunkt, wenn alle Unterbedingungen in der Einsatzbedingung, die dem Bedingungsbefehl entspricht, mit der Bedingungsinformation, die allen Unterbedingungen entspricht, übereinstimmt.
12. Prozessor nach einem der Ansprüche 6 bis 11, dadurch gekenn
zeichnet,
daß das Wahr/Falsch-Haltemittel
ein erstes Wahr/Falsch-Registermittel (60), das eine Mehrzahl von Einträgen enthält, die der Mehrzahl von Unterbedingungen entspre chen, wobei jeder Eintrag die Bedingungsinformation determini stisch hält, und
ein zweites Wahr/Falsch-Registermittel (61), das eine Mehrzahl von Einträgen enthält, die der Mehrzahl von Unterbedingungen ent sprechen, wobei jeder Eintrag die Bedingungsinformation proviso risch hält, aufweist.
daß das Wahr/Falsch-Haltemittel
ein erstes Wahr/Falsch-Registermittel (60), das eine Mehrzahl von Einträgen enthält, die der Mehrzahl von Unterbedingungen entspre chen, wobei jeder Eintrag die Bedingungsinformation determini stisch hält, und
ein zweites Wahr/Falsch-Registermittel (61), das eine Mehrzahl von Einträgen enthält, die der Mehrzahl von Unterbedingungen ent sprechen, wobei jeder Eintrag die Bedingungsinformation proviso risch hält, aufweist.
13. Prozessor nach einem der Ansprüche 6 bis 12, gekennzeichnet
durch
ein Ausnahmespeichermittel (72) zum Speichern des Auftretens ei ner Ausnahme, wenn eine Ausnahme während des Zeitraums der Ver arbeitung des ausgewählten Befehls in dem zweiten Fall auftritt, und
ein Ausnahmebehandlungsmittel zum Behandeln der Ausnahme zu dem Einsatzzeitpunkt, falls das Ausnahmespeichermittel das Auftreten der Ausnahme speichert.
ein Ausnahmespeichermittel (72) zum Speichern des Auftretens ei ner Ausnahme, wenn eine Ausnahme während des Zeitraums der Ver arbeitung des ausgewählten Befehls in dem zweiten Fall auftritt, und
ein Ausnahmebehandlungsmittel zum Behandeln der Ausnahme zu dem Einsatzzeitpunkt, falls das Ausnahmespeichermittel das Auftreten der Ausnahme speichert.
14. Prozessor nach Anspruch 13, dadurch gekennzeichnet,
daß das Ausnahmebehandlungsmittel weiter
ein Wiederverarbeitungsmittel zum erneuten Verarbeiten eines Be
fehles aus der Mehrzahl von Befehlen, dessen Ergebnisdaten minde
stens zwischen dem Auftreten der Ausnahme und dem Einsatzzeit
punkt provisorisch gehalten worden sind, vor der Behandlung der
Ausnahme aufweist.
15. Prozessor nach Anspruch 14, dadurch gekennzeichnet,
daß das Wiederverarbeitungsmittel aufeinanderfolgend eine Mehr
zahl von Befehlen erneut verarbeitet, deren Ergebnisdaten provi
sorisch gehalten worden sind.
16. Prozessor nach einem der Ansprüche 13 bis 15, dadurch ge
kennzeichnet,
daß das Ausnahmespeichermittel seinen Speicherinhalt daran hin
dert, überschrieben zu werden, während es das Auftreten der Aus
nahme speichert.
17. Prozessor nach einem der Ansprüche 6 bis 16, gekennzeichnet
durch
ein Wahr/Falsch-Berechnungsmittel (87) zum Hinzufügen von Bedin gungsinformation, die durch Bestimmung der ausgewählten Unterbe dingung durch das Betriebsmittel erzeugt ist, zu der Bedingungs information, die von dem Wahr/Falsch-Haltemittel erhalten wird;
ein Ausnahmespeichermittel (72) zum Speichern des Auftretens ei ner Ausnahme, wenn die Ausnahme während der Verarbeitung des aus gewählten Befehls in dem zweiten Fall auftritt;
ein Zukünftigwahr/Zukünftigfalsch-Haltemittel (88) zum Halten der Bedingungsinformation, die von dem Wahr/Falsch-Berechnungsmittel erhalten wird;
ein Wiederverarbeitungsmittel zur erneuten Verarbeitung der Be fehle aus der Mehrzahl der Befehle, die bis zu dem Einsatzzeit punkt bereits verarbeitet worden sind, falls das Ausnahmespei chermittel das Auftreten der Ausnahme zu dem Einsatzzeitpunkt speichert; und
eine Ausnahmebehandlungsmittel (70, 89) zum Vergleichen einer Einsatzbedingung, die einem Befehl entspricht, der die Ausnahme verursacht hat, mit der Bedingungsinformation, die von dem Zukünftigwahr/Zukünftigfalsch-Haltemittel erhalten wird, wenn die Ausnahme während des Zeitraums, in dem das Wiederverarbeitungs mittel den Befehl erneut verarbeitet, wieder auftritt, und zum Behandeln der Ausnahme, falls wahr/falsch für alle Unterbedingun gen in der entsprechenden Einsatzbedingung mit der Bedin gungsinformation, die allen Unterbedingungen entspricht, überein stimmen,
wobei das Wahr/Falsch-Haltemittel die von dem Wahr/Falsch-Berech nungsmittel während des Zeitraums, in dem das Wiederverarbei tungsmittel den Befehl erneut verarbeitet, erhaltene Bedingungs information nicht akzeptiert und andernfalls die Bedingungsinfor mation akzeptiert, und wobei es die Bedingungsinformation, die von dem Zukünftigwahr/Zukünftigfalsch-Haltemittel erhalten wird, wenn die erneute Verarbeitung des Befehls durch das Wiederverar beitungsmittel abgeschlossen ist, akzeptiert.
ein Wahr/Falsch-Berechnungsmittel (87) zum Hinzufügen von Bedin gungsinformation, die durch Bestimmung der ausgewählten Unterbe dingung durch das Betriebsmittel erzeugt ist, zu der Bedingungs information, die von dem Wahr/Falsch-Haltemittel erhalten wird;
ein Ausnahmespeichermittel (72) zum Speichern des Auftretens ei ner Ausnahme, wenn die Ausnahme während der Verarbeitung des aus gewählten Befehls in dem zweiten Fall auftritt;
ein Zukünftigwahr/Zukünftigfalsch-Haltemittel (88) zum Halten der Bedingungsinformation, die von dem Wahr/Falsch-Berechnungsmittel erhalten wird;
ein Wiederverarbeitungsmittel zur erneuten Verarbeitung der Be fehle aus der Mehrzahl der Befehle, die bis zu dem Einsatzzeit punkt bereits verarbeitet worden sind, falls das Ausnahmespei chermittel das Auftreten der Ausnahme zu dem Einsatzzeitpunkt speichert; und
eine Ausnahmebehandlungsmittel (70, 89) zum Vergleichen einer Einsatzbedingung, die einem Befehl entspricht, der die Ausnahme verursacht hat, mit der Bedingungsinformation, die von dem Zukünftigwahr/Zukünftigfalsch-Haltemittel erhalten wird, wenn die Ausnahme während des Zeitraums, in dem das Wiederverarbeitungs mittel den Befehl erneut verarbeitet, wieder auftritt, und zum Behandeln der Ausnahme, falls wahr/falsch für alle Unterbedingun gen in der entsprechenden Einsatzbedingung mit der Bedin gungsinformation, die allen Unterbedingungen entspricht, überein stimmen,
wobei das Wahr/Falsch-Haltemittel die von dem Wahr/Falsch-Berech nungsmittel während des Zeitraums, in dem das Wiederverarbei tungsmittel den Befehl erneut verarbeitet, erhaltene Bedingungs information nicht akzeptiert und andernfalls die Bedingungsinfor mation akzeptiert, und wobei es die Bedingungsinformation, die von dem Zukünftigwahr/Zukünftigfalsch-Haltemittel erhalten wird, wenn die erneute Verarbeitung des Befehls durch das Wiederverar beitungsmittel abgeschlossen ist, akzeptiert.
18. Prozessor nach Anspruch 17, dadurch gekennzeichnet,
daß das Wiederverarbeitungsmittel selektiv den Befehl in dem
zweiten Fall aus den Befehlen erneut verarbeitet.
19. Prozessor nach Anspruch 17 oder 18, dadurch gekennzeichnet,
daß das Ausnahmespeichermittel seinen Speicherinhalt daran hin
dert, beschrieben zu werden, während es das Auftreten der Ausnah
me speichert.
20. Prozessor zum Verarbeiten einer Mehrzahl von Befehlen, die
jeweils eine entsprechende Einsatzbedingung aufweisen, unter ei
ner Pipeline-Steuerung durch eine Mehrzahl von Verarbeitungsstu
fen unter einer Mehrzahl von Unterbedingungen, wobei die Einsatz
bedingung irgendeine Unterbedingung enthält, die zum letztendli
chen Verarbeiten des entsprechenden Befehls unter den Unterbedin
gungen notwendig ist, wobei der Prozessor aufweist:
ein Betriebsmittel (2A-2D) zum Ausführen von mindestens einem ausgewählten Befehl aus den Befehlen und zum Bestimmen von minde stens einer ausgewählten Unterbedingung aus den Unterbedingungen;
ein Datenhaltemittel (12, 13) zum deterministischen oder provi sorischen Halten von durch die Ausführung des ausgewählten Befehls durch das Betriebsmittel erzeugten Ergebnisdaten;
ein Wahr/Falsch-Haltemittel (10), das eine Mehrzahl von Einträgen enthält, die der Mehrzahl von Unterbedingungen entspricht, wobei jeder Eintrag eine Information hält, die eine erste Bedingungs information, die anzeigt, daß die entsprechende Unterbedingung wahr ist, eine zweite Bedingungsinformation, die anzeigt, daß die entsprechende Unterbedingung falsch ist, oder eine dritte Bedin gungsinformation, die anzeigt, daß wahr/falsch für die entspre chende Bedingung unbestimmt ist, ist;
ein Informationserzeugungsmittel (11) in einer aus der Mehrzahl von Verarbeitungsstufen zum Vergleichen der entsprechenden Ein satzbedingung mit der Bedingungsinformation, die von dem Wahr/ Falsch-Haltemittel erhalten wird, wobei es (i) in einem ersten Fall, in dem wahr/falsch für alle Unterbedingungen in der ent sprechenden Einsatzbedingung entsprechend mit den Bedingungsin formationen, die allen Unterbedingungen entsprechen, übereinstim men, eine erste Handhabungsinformation erzeugt, die anzeigt, daß durch die Ausführung des ausgewählten Befehls durch das Betriebs mittel erzeugte Ergebnisdaten zum Zeitpunkt des Bewegens zu einer nachfolgenden Stufe provisorisch sind, und es (ii) in einem zwei ten Fall, in dem wahr/falsch für irgendeine Unterbedingung in einer entsprechenden Einsatzbedingung entsprechend mit der Bedin gungsinformation, die der entsprechenden irgendeinen Unterbedin gung entspricht, übereinstimmt und die Bedingungsinformationen, die den anderen Unterbedingungen in der entsprechenden Einsatz bedingung entsprechen, die dritte Bedingungsinformation sind, eine zweite Handhabungsinformation, die anzeigt, daß die durch die Ausführung des ausgewählten Befehls durch das Betriebsmittel zu erzeugenden Ergebnisdaten zum Zeitpunkt des Bewegens zu einer nachfolgenden Verarbeitungsstufe provisorisch sind, erzeugt;
ein Schreibsteuermittel (52), das das Datenhaltemittel (i) ent sprechend der ersten Handhabungsinformation in dem ersten Fall zum deterministischen Halten der durch das Betriebsmittel erzeug ten Ergebnisdaten und (ii) entsprechend der zweiten Handhabungs information in dem zweiten Fall zum provisorischen Halten der durch das Betriebsmittel erzeugten Ergebnisdaten steuert; und
ein Einsatzsteuermittel (14) zum Vergleichen der entsprechenden Einsatzbedingung mit der von dem Wahr/Falsch-Haltemittel erhal tenen Bedingungsinformation und zum Steuern des Datenhaltemittels zum deterministischen erneuten Halten der Ergebnisdaten, die zu einem Einsatzzeitpunkt provisorisch gehalten worden sind, an dem wahr/falsch für alle Unterbedingungen in der entsprechenden Ein satzbedingung entsprechend mit den Bedingungsinformationen, die allen Unterbedingungen entsprechen, übereinstimmen.
ein Betriebsmittel (2A-2D) zum Ausführen von mindestens einem ausgewählten Befehl aus den Befehlen und zum Bestimmen von minde stens einer ausgewählten Unterbedingung aus den Unterbedingungen;
ein Datenhaltemittel (12, 13) zum deterministischen oder provi sorischen Halten von durch die Ausführung des ausgewählten Befehls durch das Betriebsmittel erzeugten Ergebnisdaten;
ein Wahr/Falsch-Haltemittel (10), das eine Mehrzahl von Einträgen enthält, die der Mehrzahl von Unterbedingungen entspricht, wobei jeder Eintrag eine Information hält, die eine erste Bedingungs information, die anzeigt, daß die entsprechende Unterbedingung wahr ist, eine zweite Bedingungsinformation, die anzeigt, daß die entsprechende Unterbedingung falsch ist, oder eine dritte Bedin gungsinformation, die anzeigt, daß wahr/falsch für die entspre chende Bedingung unbestimmt ist, ist;
ein Informationserzeugungsmittel (11) in einer aus der Mehrzahl von Verarbeitungsstufen zum Vergleichen der entsprechenden Ein satzbedingung mit der Bedingungsinformation, die von dem Wahr/ Falsch-Haltemittel erhalten wird, wobei es (i) in einem ersten Fall, in dem wahr/falsch für alle Unterbedingungen in der ent sprechenden Einsatzbedingung entsprechend mit den Bedingungsin formationen, die allen Unterbedingungen entsprechen, übereinstim men, eine erste Handhabungsinformation erzeugt, die anzeigt, daß durch die Ausführung des ausgewählten Befehls durch das Betriebs mittel erzeugte Ergebnisdaten zum Zeitpunkt des Bewegens zu einer nachfolgenden Stufe provisorisch sind, und es (ii) in einem zwei ten Fall, in dem wahr/falsch für irgendeine Unterbedingung in einer entsprechenden Einsatzbedingung entsprechend mit der Bedin gungsinformation, die der entsprechenden irgendeinen Unterbedin gung entspricht, übereinstimmt und die Bedingungsinformationen, die den anderen Unterbedingungen in der entsprechenden Einsatz bedingung entsprechen, die dritte Bedingungsinformation sind, eine zweite Handhabungsinformation, die anzeigt, daß die durch die Ausführung des ausgewählten Befehls durch das Betriebsmittel zu erzeugenden Ergebnisdaten zum Zeitpunkt des Bewegens zu einer nachfolgenden Verarbeitungsstufe provisorisch sind, erzeugt;
ein Schreibsteuermittel (52), das das Datenhaltemittel (i) ent sprechend der ersten Handhabungsinformation in dem ersten Fall zum deterministischen Halten der durch das Betriebsmittel erzeug ten Ergebnisdaten und (ii) entsprechend der zweiten Handhabungs information in dem zweiten Fall zum provisorischen Halten der durch das Betriebsmittel erzeugten Ergebnisdaten steuert; und
ein Einsatzsteuermittel (14) zum Vergleichen der entsprechenden Einsatzbedingung mit der von dem Wahr/Falsch-Haltemittel erhal tenen Bedingungsinformation und zum Steuern des Datenhaltemittels zum deterministischen erneuten Halten der Ergebnisdaten, die zu einem Einsatzzeitpunkt provisorisch gehalten worden sind, an dem wahr/falsch für alle Unterbedingungen in der entsprechenden Ein satzbedingung entsprechend mit den Bedingungsinformationen, die allen Unterbedingungen entsprechen, übereinstimmen.
21. Prozessor nach Anspruch 20, gekennzeichnet durch
ein Informationsänderungsmittel (41, 42, 43) zum Ändern der zwei
ten Handhabungsinformation in die erste Handhabungsinformation zu
dem Zeitpunkt des Bewegens zu einer nachfolgenden Verarbeitungs
stufe in einer anderen Verarbeitungsstufe nach der einen Verar
beitungsstufe, in der das Informationserzeugungsmittel die erste
oder die zweite Handhabungsinformation erzeugt, wenn der erste
Fall sich in den zweiten Fall geändert hat.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP24116293 | 1993-09-28 | ||
JP28352193 | 1993-11-12 | ||
JP6133106A JPH07182165A (ja) | 1993-09-28 | 1994-06-15 | コミット条件付き命令の処理方法およびその装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE4434529A1 true DE4434529A1 (de) | 1995-04-06 |
Family
ID=27316636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4434529A Ceased DE4434529A1 (de) | 1993-09-28 | 1994-09-27 | Verfahren zum Verarbeiten eines Befehls mit Einsatzbedingung und Vorrichtung dazu |
Country Status (2)
Country | Link |
---|---|
US (1) | US5761467A (de) |
DE (1) | DE4434529A1 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8326903B2 (en) | 2008-01-04 | 2012-12-04 | International Business Machines Corporation | System and method for improved vector analysis |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3494489B2 (ja) * | 1994-11-30 | 2004-02-09 | 株式会社ルネサステクノロジ | 命令処理装置 |
US5854928A (en) * | 1996-10-10 | 1998-12-29 | Hewlett-Packard Company | Use of run-time code generation to create speculation recovery code in a computer system |
US6314513B1 (en) * | 1997-09-30 | 2001-11-06 | Intel Corporation | Method and apparatus for transferring data between a register stack and a memory resource |
US6263401B1 (en) | 1997-09-30 | 2001-07-17 | Institute For The Development Of Emerging Architectures, L.L.C. | Method and apparatus for transferring data between a register stack and a memory resource |
US7761857B1 (en) * | 1999-10-13 | 2010-07-20 | Robert Bedichek | Method for switching between interpretation and dynamic translation in a processor system based upon code sequence execution counts |
US6594821B1 (en) | 2000-03-30 | 2003-07-15 | Transmeta Corporation | Translation consistency checking for modified target instructions by comparing to original copy |
JP3532835B2 (ja) * | 2000-07-04 | 2004-05-31 | 松下電器産業株式会社 | データ処理装置およびプログラム変換装置 |
US7003762B2 (en) * | 2002-08-01 | 2006-02-21 | Sas Institute Inc. | Computer-implemented exception handling system and method |
US7320121B2 (en) * | 2002-08-01 | 2008-01-15 | Sas Institute Inc. | Computer-implemented system and method for generating embedded code to add functionality to a user application |
US7310723B1 (en) * | 2003-04-02 | 2007-12-18 | Transmeta Corporation | Methods and systems employing a flag for deferring exception handling to a commit or rollback point |
US8413162B1 (en) | 2005-06-28 | 2013-04-02 | Guillermo J. Rozas | Multi-threading based on rollback |
WO2012103359A2 (en) | 2011-01-27 | 2012-08-02 | Soft Machines, Inc. | Hardware acceleration components for translating guest instructions to native instructions |
WO2013095569A1 (en) * | 2011-12-22 | 2013-06-27 | Intel Corporation | Method, apparatus and system for selective execution of a commit instruction |
WO2014151652A1 (en) | 2013-03-15 | 2014-09-25 | Soft Machines Inc | Method and apparatus to allow early dependency resolution and data forwarding in a microprocessor |
EP2972798B1 (de) | 2013-03-15 | 2020-06-17 | Intel Corporation | Verfahren und vorrichtung für eine gastadressenstapelemulation mit unterstützung einer spekulation |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5129079A (en) * | 1985-02-18 | 1992-07-07 | Fujitsu Limited | Computer system having subinstruction surveillance capability |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5459845A (en) * | 1990-12-20 | 1995-10-17 | Intel Corporation | Instruction pipeline sequencer in which state information of an instruction travels through pipe stages until the instruction execution is completed |
JPH0820949B2 (ja) * | 1991-11-26 | 1996-03-04 | 松下電器産業株式会社 | 情報処理装置 |
US5421022A (en) * | 1993-06-17 | 1995-05-30 | Digital Equipment Corporation | Apparatus and method for speculatively executing instructions in a computer system |
-
1994
- 1994-09-12 US US08/304,441 patent/US5761467A/en not_active Expired - Fee Related
- 1994-09-27 DE DE4434529A patent/DE4434529A1/de not_active Ceased
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5129079A (en) * | 1985-02-18 | 1992-07-07 | Fujitsu Limited | Computer system having subinstruction surveillance capability |
Non-Patent Citations (2)
Title |
---|
MAHLKE, S.A. (u.a.): Sentinel Scheduling for VLIW and Superscalar Processors, ASPLOS V-Oct. 1992/MA, USA, 1992, ACM 0-89791-53-5-6/92/0010/0238, S. 238-247 * |
SMITH, M.D. (u.a.) Efficient Superscalar Performance Through Boosting, ASPLOS v-Oct. 1992/MA, USA, 1992, ACM 0-89791-53-5-6/92/ 0010/0248, S. 248-359 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8326903B2 (en) | 2008-01-04 | 2012-12-04 | International Business Machines Corporation | System and method for improved vector analysis |
Also Published As
Publication number | Publication date |
---|---|
US5761467A (en) | 1998-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2714805C2 (de) | ||
DE69028138T2 (de) | Mechanismus zur präzisen Behandlung von Ausnahmebedingungen in einem Prozessor mit gepaarten Befehlen | |
DE3650413T2 (de) | Verfahren und Vorrichtung zur Annulierung eines Befehls. | |
DE3751297T2 (de) | Schaltung zur Programmsteuerung. | |
DE4329336C2 (de) | Einrichtung und Verfahren zur Identifizierung eines Computer-Mikroprozessors | |
DE3853613T2 (de) | Mikrorechner mit flexiblen anwendungsspezifischen integrierten Schaltungen. | |
DE3851488T2 (de) | Registerverwaltungssystem mit Ausführung von Befehlen in Unordnung in einem Computerprozessor. | |
DE2846495C2 (de) | Zentraleinheit | |
DE4434529A1 (de) | Verfahren zum Verarbeiten eines Befehls mit Einsatzbedingung und Vorrichtung dazu | |
DE3587058T2 (de) | Fehlerbeseitigungssystem in einem datenprozessor mit einem steuerspeicher. | |
DE3689595T2 (de) | Datenverarbeitungssystem. | |
DE4434895C2 (de) | Verfahren und Vorrichtung zur Behandlung von Ausnahmebedingungen | |
DE68924400T2 (de) | Fliessbanddatenverarbeitungsvorrichtung. | |
DE68927029T2 (de) | Pipelineprozessor | |
DE2611892C2 (de) | Mikroprogramm-Steueranordnung | |
DE1499200B2 (de) | Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung | |
DE2907181A1 (de) | Befehlssatz-modifizierregister fuer einen datenprozessor | |
DE112005002370T5 (de) | Ausführung von Kontrollbefehlen in redundanten Multithreadingumgebungen | |
DE2715073A1 (de) | Mikroprogrammierte rechner-steuervorrichtung | |
DE19824289A1 (de) | Pipelineverarbeitungsmaschine | |
DE3751287T2 (de) | Während einer Instruktionsausführung eine Unterbrechungsanforderung empfangender Mikroprogrammkontrolleur. | |
DE2906685C2 (de) | ||
DE19652290A1 (de) | Mikrocomputer | |
DE2702722A1 (de) | Instruktionsinterpretation in elektronischen datenverarbeitungsanlagen | |
DE4222275A1 (de) | Parallelprozessor und betriebsverfahren eines solchen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8131 | Rejection |