DE4207148A1 - Superscalar-prozessor - Google Patents
Superscalar-prozessorInfo
- Publication number
- DE4207148A1 DE4207148A1 DE4207148A DE4207148A DE4207148A1 DE 4207148 A1 DE4207148 A1 DE 4207148A1 DE 4207148 A DE4207148 A DE 4207148A DE 4207148 A DE4207148 A DE 4207148A DE 4207148 A1 DE4207148 A1 DE 4207148A1
- Authority
- DE
- Germany
- Prior art keywords
- data
- pipeline
- execution
- command
- stage
- 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
- 238000001514 detection method Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 8
- 238000013500 data storage Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 3
- 239000000872 buffer Substances 0.000 description 13
- 238000010586 diagram Methods 0.000 description 7
- 101100115778 Caenorhabditis elegans dac-1 gene Proteins 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 101000618467 Hypocrea jecorina (strain ATCC 56765 / BCRC 32924 / NRRL 11460 / Rut C-30) Endo-1,4-beta-xylanase 2 Proteins 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
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 Erfindung bezieht sich auf einen Superscalar-Prozessor nach
dem Oberbegriff des Patentanspruches 1. Ein derartiger Super
scalar-Prozessor weist eine Umgehungsleitung zum Übertragen von
Daten zwischen Pipelines auf. Insbesondere ist der Superscalar-Pro
zessor in der Lage, Daten zwischen Pipelines direkt zu über
tragen, die für eine Mehrzahl von Befehlen benutzt werden, die
parallel ausgeführt werden.
Ein "Superscalar" ist als eine Architektur zum Erhöhen der Verar
beitungsgeschwindigkeit in einem Mikroprozessor bekannt. Befehle,
die gleichzeitig ausgeführt werden können, werden aus einer gege
benen Mehrzahl von Befehlen erfaßt, und die erfaßten Befehle wer
den gleichzeitig oder parallel durch eine Mehrzahl von Pipelines
in einem Mikroprozessor unter Benutzung eines Superscalars ausge
führt.
Wie in Fig. 7 gezeigt ist, weist ein Superscalar-Prozessor 20 eine
Befehlsholstufe 2 zum Holen einer Mehrzahl von in einem Befehls
speicher 1 gespeicherten Befehlen, eine Befehlsdecodierstufe 3
zum Decodieren der in der Befehlsholstufe 2 geholten Befehle,
Funktionseinheiten 14-17, von denen jede eine Pipelinestruktur
aufweist, und eine Registerdatei 9 zum zeitweiligen Halten von zum
Ausführen der Befehle benutzten Daten auf. Die Funktionseinheiten
14-17 können auf einen externen Datenspeicher 8 durch einen Daten
bus 11 zugreifen. Die Registerdatei 9 ist mit einem RAM verwirk
licht, und auf sie wird von den Funktionseinheiten 14-17 zugegrif
fen.
Die Befehlsholstufe 2 enthält einen Programmzähler (nicht gezeigt)
und gibt ein von dem Programmzähler erzeugtes Adreßsignal an den
Befehlsspeicher 1 ab. Eine durch das gegebene Adreßsignal bezeich
nete Mehrzahl von Befehlen wird geholt und in der Befehlsholstufe
2 gehalten.
Die Befehlsdecodierstufe 3 nimmt die Mehrzahl von Befehlen von der
Befehlsholstufe 2 auf und decodiert sie. Gleichzeitig ausführbare
Befehle werden aus einer gegebenen Mehrzahl von Befehlen durch das
Decodieren der Befehle erfaßt. Zusätzlich leitet die Befehlsdeco
dierstufe 3 die Daten zwischen den Funktionseinheiten 14-17 und
der Registerdatei 9 weiter. Insbesondere liest die Decodierstufe 3
die durch die Funktionseinheiten 14-17 zu benutzenden Daten zum
Ausführen der gegebenen Befehle aus der Registerdatei 9 und gibt
die gelesenen Daten an die Funktionseinheiten 14-17 ab.
Jede der Funktionseinheiten 14-17 weist eine Pipelinestruktur auf.
Insbesondere sind bei dem Superscalar-Prozessor 20 vier Pipelines
für die 4 Funktionseinheiten 14-17 vorgesehen.
Die 4 Funktionseinheiten 14-17 führen vorbestimmte arithmetische
Operationen aus, wie unten beispielsweise beschrieben wird. Die
Funktionseinheiten 14 und 15 führen ganzzahlige arithmetische
Operationen aus. Die Funktionseinheit 16 führt das Laden und Spei
chern von Daten in den Datenspeicher 8 durch. Die Funktionseinheit
17 führt arithmetische Gleitkomma-Operationen aus. Beide
Funktionseinheiten 14 und 15 enthalten eine Ausführungsstufe (EXC)
und eine Rückschreibstufe (WB) zu der Registerdatei 9. Die Funk
tionseinheit 16 enthält eine Adreßverarbeitungsstufe (ADR), eine
Speicherzugriffsstufe (MEM) und eine Rückschreibstufe (WB). Die
Funktionseinheit 17 enthält 3 Verarbeitungsstufen (EX1, EX2, EX3)
und eine Rückschreibstufe (WB). Die Ausführungsstufen führen
arithmetische Operationen und Adreßberechnungen durch, während die
Speicherzugriffsstufe das Lesen/Schreiben aus/in den Datenspeicher
8 durchführt.
Der Superscalar-Prozessor 20 ist als Reaktion auf extern angelegte
zweiphasige nichtüberlappende Taktsignale Φ1 und Φ2 tätig. Insbe
sondere werden die Befehlsholstufe 2, die Befehlsdecodierstufe 3
und verschiedene Stufen in den Funktionseinheiten 14-17 als Reak
tion auf die Taktsignale Φ1 und Φ2 und der Steuerung der Pipelines
betrieben. Ein Beispiel von zweiphasigen nichtüberlappenden Takt
signalen ist in Fig. 6 gezeigt.
Im Betrieb erfaßt die Befehlsdecodierstufe 3 gleichzeitig ausführ
bare Befehle aus einer gegebenen Mehrzahl von Befehlen und gibt
die erfaßten Befehle an die Funktionseinheiten 14-17 weiter (gemäß
den Umständen an einige der Funktionseinheiten 14-17). Die Funk
tionseinheiten 14-17 weisen Pipelinestruktur auf, so daß sie die
gegebenen Befehle gleichzeitig oder parallel ausführen können.
Es sei jetzt angenommen, daß der Superscalar-Prozessor 3 Funk
tionseinheiten (Pipelines) aufweist und jede Funktionseinheit eine
Ausführungsstufe (EXC), eine Speicherzugriffsstufe (MEM) und eine
Rückschreibstufe (WB) aufweist. Ein Beispiel des Vorangehens des
Pipelineverarbeitens in diesem Fall ist in Fig. 8A dargestellt.
Wie in Fig. 8A gezeigt ist, wird angenommen, daß drei Pipelines
PL1, PL2 und PL3 die Befehle 1, 2 bzw. 3 ausführen. Das Verarbei
ten in der Befehlsholstufe 2 wird in einem Zeitraum T1 ausgeführt,
und das Verarbeiten in der Befehlsdecodierstufe 3 wird in einem
Zeitraum T2 in der Pipeline PL1 ausgeführt. Das Verarbeiten in der
Ausführungsstufe, der Speicherzugriffsstufe und der Rückschreib
stufe wird in den Zeiträumen T3, T4 bzw. T5 ausgeführt. In der
Pipeline PL2 wird das Verarbeiten in der Befehlsholstufe 2 in dem
Zeitraum T2 gestartet. Die Stufen (ID, EXC, MEM, WB) werden in den
Zeiträumen T3-T6 entsprechend wie bei der Pipeline PL1 ausge
führt. In der Pipeline PL3 wird, nachdem das Verarbeiten in der
Befehlsholstufe 2 in dem Zeitraum T3 gestartet ist, das Verarbei
ten in den entsprechenden Stufen in den Zeiträumen T4-T7 ausge
führt. Wie aus Fig. 8A zu sehen ist, führt jede Pipeline PL1-PL3
einen entsprechenden der gegebenen Befehle 1-3 aus, so daß zu ver
stehen ist, daß entsprechende Stufen simultan und parallel vor
schreiten. Es tritt jedoch ein Problem bezüglich des Gesichtspunk
tes der für die Verarbeitung benötigten Zeit im folgenden Fall
auf:
Wie in Fig. 8B gezeigt ist, wird angenommen, daß zwei Befehle 11 und 12 gegeben werden, und sie werden von den Pipelines PL1 und PL2 ausgeführt. Zusätzlich sei angenommen, daß die Daten eines durch Ausführen des Befehls 11 erzielten Resultats bei dem Verar beiten in dem Befehl 12 benötigt werden. In anderen Worten, es wird angenommen, daß der Befehl 12 gegeben ist, der seine eigene Verarbeitung durchführt, indem er die durch den ausgeführten Befehl 11 erzielten Daten benutzt.
Wie in Fig. 8B gezeigt ist, wird angenommen, daß zwei Befehle 11 und 12 gegeben werden, und sie werden von den Pipelines PL1 und PL2 ausgeführt. Zusätzlich sei angenommen, daß die Daten eines durch Ausführen des Befehls 11 erzielten Resultats bei dem Verar beiten in dem Befehl 12 benötigt werden. In anderen Worten, es wird angenommen, daß der Befehl 12 gegeben ist, der seine eigene Verarbeitung durchführt, indem er die durch den ausgeführten Befehl 11 erzielten Daten benutzt.
Bis jetzt wurde der Befehl 11 ausgeführt und in solch einem Fall
zuerst beendet. In der Pipeline PL1 wird die Befehlsholstufe 2 in
dem Zeitraum T1 ausgeführt, und die Befehlsdecodierstufe 3 wird in
dem Zeitraum T2 ausgeführt. Die Ausführungsstufe, die Speicher
zugriffsstufe und die Rückschreibstufe werden in den Zeiträumen
T3, T4 bzw. T5 ausgeführt. Die durch Ausführen des Befehls 11
erzielten Daten werden einmal in der in Fig. 7 gezeigten Register
datei gemäß der Ausführung der Rückschreibstufe gespeichert. Dage
gen wird in der Pipeline PL2 die Befehlsholstufe 2 in dem Zeitraum
T2 ausgeführt, und die Befehlsdecodierstufe 3 wird in dem Zeitraum
T3 ausgeführt. Das Ausführen des Befehls 12 wird jedoch in den
Zeiträumen T4 und T5 gestoppt. Der Grund dafür ist der, daß der
Befehl 12 Daten benutzt, die durch Ausführen des Befehls 11 erhal
ten werden, so daß er warten muß auf das Beenden der Ausführung
des Befehls 11. Folglich wird die Verarbeitung in der Pipeline PL2
angehalten, bis die Rückschreibstufe in der Pipeline PL1 in dem
Zeitraum T5 beendet ist. Daher wird die Pipeline PL1 in einen
Ruhezustand (Pipelineblockierung) in den Zeiträumen T4 und T5
gebracht.
Nach dem Ablauf des Zeitraums T5 sind die durch Ausführen des
Befehls 11 erhaltenen Daten in der Registerdatei 9 gespeichert.
Daher wird die Ausführung des Befehls 12 wieder in der Pipeline
PL2 in dem Zeitraum T6 gestartet. Nachdem die Befehlsdecodierstufe
3 in dem Zeitraum T6 ausgeführt ist, werden die Ausführungsstufe,
die Speicherzugriffsstufe und die Rückschreibstufe in den entspre
chenden Zeiträumen T7-T9 ausgeführt.
Wie oben beschrieben wurde, wird auf die Registerdatei 9 beim Ver
arbeiten eines Befehls 12 zugegriffen, nachdem die durch Ausführen
eines Befehls 11 erhaltenen Daten einmal in die Registerdatei 9
geschrieben sind. Die durch das Ausführen der Verarbeitung in
einer Pipeline PL1 erhaltenen Daten werden an eine andere Pipeline
PL2 durch die Registerdatei 9 übergeben. Wie jedoch in Fig. 8B
gezeigt ist, findet die Übertragung von Daten zwischen zwei Pipe
lines PL1 und PL2 durch die Registerdatei 9 statt, obwohl die
durch das Ausführen des Befehls 11 erzielten Daten bereits beim
Verarbeiten in der Ausführungsstufe in dem Zeitraum T3 erhalten
worden sind, so daß die Pipeline PL2 auf die Beendigung des Aus
führens der Rückschreibstufe in Pipeline PL1 warten muß. Als
Resultat wird eine lange Zeit zum Beenden der Ausführung des
Befehls benötigt. Die Verarbeitungsgeschwindigkeit des Super
scalar-Prozessors wird dadurch verringert.
Es ist daher das der Erfindung zugrunde liegende Problem, die zum
Ausführen einer Instruktion benötigte Zeit zu verringern, wobei
die eine Instruktion die durch Ausführen einer anderen Instruktion
erhaltenen Daten benutzt. Dieses soll insbesondere in einem
Superscalar-Prozessor der Fall sein, der zwei oder mehr Instruk
tionen gleichzeitig oder parallel ausführen kann. D.h. es soll
eine Pipelineblockierung in einem Superscalar-Prozessor verhindert
werden, der zwei oder mehr Befehle gleichzeitig oder parallel aus
führen kann.
Dieses Problem wird durch einen Superscalar-Prozessor der eingangs
beschriebenen Art gelöst, der durch die kennzeichnenden Merkmale
des Patentanspruchs 1 gekennzeichnet ist.
Insbesondere führt der erfindungsgemäße Superscalar-Prozessor
unter Pipelinesteuerung eine erste Mehrzahl von Befehlen, die
früher gegeben worden sind, und eine zweite Mehrzahl von Befehlen,
die später gegeben worden sind, aus, wobei er in einem Datenspei
cherschaltung gespeicherte Daten benutzt. Jeder Befehl enthält
eine Quellenadresse, die eine Adresse in der Datenspeicherschal
tung bezeichnet, wo die für die Ausführung des Befehls benötigten
Daten gespeichert sind, und eine Bestimmungsadresse, die eine
Adresse in der Datenspeicherschaltung bezeichnet, wo die ausge
führten Daten gespeichert werden sollen. Der Superscalar-Prozessor
enthält eine Erfassungsschaltung für gleichzeitig ausführbare
Befehle zum Erfassen gleichzeitig ausführbarer Befehle aus einer
gegebenen ersten oder zweiten Mehrzahl von Befehlen und eine
dritte Mehrzahl von Pipelineverarbeitungsschaltungen zum Ausführen
entsprechender Befehle, die von der Erfassungsschaltung für
gleichzeitig ausführbare Befehle erfaßt sind, auf parallele Weise
unter Pipelinesteuerung. Jede der Pipelineverarbeitungsschaltungen
enthält eine Ausführungsschaltung für einen früheren Befehl und
eine Ausführungsschaltung für einen späteren Befehl zum Ausführen
auf sequentielle Weise der gegebenen Befehle unter Pipelinesteue
rung. Die Ausführungsschaltung des späteren Befehls, die in minde
stens einer einer dritten Mehrzahl von Pipelineverarbeitungsschal
tungen enthalten ist, enthält eine Adreßkoinzidenz-Erfassungs
schaltung reagiert zum Erfassen der Koinzidenz zwischen der Quel
lenadresse, die in einem gegebenen Befehl enthalten ist, und der
Bestimmungsadresse, die in dem Befehl enthalten ist, der in einer
Ausführungsschaltung für einen früheren Befehl in einer anderen
Pipelineverarbeitungsschaltung ausgeführt ist, und eine direkte
Anlegeschaltung, die auf die Adreßkoinzidenz-Erfassungsschaltung
reagiert zum Anlegen der in der Verarbeitungsschaltung des frühe
ren Befehls in einer anderen Pipelineverarbeitungsschaltung erhal
tenen Daten direkt an die Verarbeitungsschaltung des späteren
Befehls, die in mindestens einer der Pipelineverarbeitungsschal
tungen enthalten ist.
Im Betrieb legt die Direktanlegeschaltung als Reaktion auf die
Adreßkoinzidenz-Erfassungsschaltung die Daten, die in der Verar
beitungsschaltung des früheren Befehls in einer anderen Pipeline
verarbeitungsschaltung erhalten sind, direkt an die Verarbeitungs
schaltung des späteren Befehls, die in mindestens einer Pipeline
verarbeitungsschaltung enthalten ist. Insbesondere nimmt die
Befehlsverarbeitungsschaltung in der mindestens einen Pipelinever
arbeitungsschaltung direkt die Daten auf, die in der Verarbei
tungsschaltung das früheren Befehls in einer anderen Pipelinever
arbeitungsschaltung ausgeführt sind, ohne daß sie durch die Daten
speicherschaltung gehen, so daß es möglich ist, den Befehl in kur
zer Zeit abzuarbeiten.
Bevorzugte Weiterbildungen der Erfindung ergeben sich aus den
Unteransprüchen.
Weitere Merkmale und Zweckmäßigkeiten der Erfindung ergeben sich
aus der Beschreibung eines Ausführungsbeispiels anhand der Figu
ren.
Von den Figuren zeigt:
Fig. 1 ein Blockschaltbild eines Superscalar-Prozessors gemäß
einer Ausführungsform der Erfindung;
Fig. 2 ein Blockschaltbild einer der in Fig. 1 gezeigten Funk
tionseinheiten;
Fig. 3 ein Blockschaltbild des in Fig. 2 gezeigten Adreßkompara
tors;
Fig. 4 ein Blockschaltbild des in Fig. 2 gezeigten Datenselek
tors;
Fig. 5 ein Blockschaltbild der in Fig. 2 gezeigten Ausführungs
einheit für eine arithmetische Operation;
Fig. 6 ein Zeitablaufdiagramm für ein zweiphasiges nicht über
lappendes Taktsignal;
Fig. 7 ein Blockschaltbild eines vorhandenen Superscalar-Prozes
sors und
Fig. 8A, 8B und 8C Zeitablaufdiagramme zum Darstellen des Ablaufes
der Pipelineverarbeitung.
Wie in Fig. 1 gezeigt ist, weist ein Superscalar-Prozessor 10 eine
Befehlsholstufe 2, eine Befehlsdecodierstufe 3, verbesserte Funk
tionseinheiten 4, 5, 6 und 7, eine Registerdatei 9 und eine neu
vorgesehene Umgehungsleitung 12 auf. Jede der Funktionseinheiten
4-7 enthält eine Ausführungsstufe (EXC) 41, eine Speicherzugriffs
stufe (MEM) 42 und eine Rückschreibstufe (WB) 43. Der Superscalar-Pro
zessor 10 wird als Reaktion auf ein extern angelegtes zwei
phasiges nichtüberlappendes Taktsignal Φ1, Φ2 unter Pipelinesteue
rung betrieben. Der grundlegende Betrieb ist der gleiche wie bei
dem in Fig. 7 gezeigten vorhandenen Superscalar-Prozessor 20, so
daß diese Beschreibung weggelassen wird.
Die Umgehungsleitung 12 ist zwischen entsprechenden Funktionsein
heiten 4-7 vorgesehen, und die in der Ausführungsstufe der Funk
tionseinheiten erhaltenen Daten werden über die Umgehungsleitung
12 übertragen. Zusätzlich werden die Bestimmungsadressen, die in
den in den entsprechenden Funktionseinheiten ausgeführten Befehlen
enthalten sind, zwischen den Funktionseinheiten 4-7 übertragen,
obwohl es nicht besonders gezeigt ist.
Eine der verbesserten in Fig. 1 gezeigten Funktionseinheiten ist
in Fig. 2 dargestellt. Wie in Fig. 2 gezeigt ist, enthält die ver
besserte Funktionseinheit eine Ausführungsstufe 41 zum Ausführen
eines Befehls, eine Speicherzugriffsstufe 42 zum Zugreifen auf den
Datenspeicher 8 oder die Registerdatei 9 und eine Rückschreibstufe
43 zum Schreiben der durch das Ausführen des Befehls erhaltenen
Daten in die Registerdatei 9.
Die Ausführungsstufe 41 enthält einen Adreßkomparator 80 zum Ver
gleichen einer Quellenadresse und eine Bestimmungsadresse, einen
auf Signale S11-S18 und S21-S28 reagierenden Datenselektor 83,
wobei die Signale die Vergleichsresultate zum Auswählen der in
einer arithmetischen Operation zu benutzenden Daten anzeigen, und
eine Ausführungseinheit 87 für eine arithmetische Operation zum
Ausführen der arithmetischen Operation auf der Grundlage der aus
gewählten Daten. Ein von der Decodierstufe 3 gegebener Befehl ent
hält einen Befehlscode OP, zwei Quellenadressen SA1 und SA2 und
eine Bestimmungsadresse DA. Der Adreßkomparator 80 nimmt die in
dem gegebenen Befehl enthaltenen Quellenadressen SA1 und SA2 auf.
Zusätzlich nimmt der Adreßkomparator 80 die Bestimmungsadressen
DAb1, DAb2, DAc1, DAc2, DAd1 und DAd2 auf, die in Befehlen enthal
ten sind, die von anderen in Fig. 1 gezeigten Funktionseinheiten
5, 6 und 7 bearbeitet werden. Weiter nimmt der Adreßkomparator 80
eine Bestimmungsadresse DAa1 in der Ausführungsstufe 41 und eine
Bestimmungsadresse DAa2 in der Speicherzugriffsstufe 42 auf. Der
Adreßkomparator 80 vergleicht die Quellenadressen SA1 und SA2 und
die Bestimmungsadressen DAa1 bis DAa2 und stellt die Koinzidenz
zwischen ihnen fest, wobei die Einzelheiten später beschrieben
werden.
Ein Bestimmungsregister 81 hält die von der Decodierstufe 3 abge
gebene Bestimmungsadresse DA. Die gehaltene Bestimmungsadresse
DAa1 wird an den Adreßkomparator 80 und an ein Bestimmungsregister
82 in der Speicherzugriffsstufe 42 abgegeben.
Der Datenselektor 83 ist zum Empfangen zweiter Werte DT1 und DT2
geschaltet, die durch die Registerdatei 9 durch die Decodierstufe
3 abgegeben werden. Die Werte DT1 und DT2 werden von einem Befehl
in der Ausführungsstufe 41 benötigt. Zusätzlich nimmt der Daten
selektor 83 Daten Db1, Db2, Dc1, Dc2, Dd1 und Dd2, die in den Aus
führungsstufen in anderen in Fig. 1 gezeigten Funktionseinheiten
5, 6 und 7 behandelt worden sind, durch die neu vorgesehene Umge
hungsleitung 12 auf. Weiterhin nimmt der Datenselektor 83 einen
Wert Da1, der durch ein Datenregister 86 in der Speicherzugriffs
stufe 42 gehalten wird, und einen Wert Da2, der von einem Daten
register 85 in der Ausführungsstufe 41 gehalten wird, auf. Der
Datenselektor 83 wird als Reaktion auf die Auswahlsignale S11-S18
und S21-S28 betrieben, die von dem Adreßkomparator 80 abge
geben werden, und die Einzelheiten hiervon werden später beschrie
ben.
Die Ausführungseinheit 84 der arithmetischen Operation ist über
Datenleitungen 31 und 32 mit dem Datenselektor 83 verbunden. Die
von dem Datenselektor 83 ausgewählten Daten werden über die Daten
leitungen 31 und 32 an die Ausführungseinheit 84 der arithmeti
schen Operation angelegt, und die auf dem gegebenen Befehl beru
hende arithmetische Operation wird dort ausgeführt. Die das Ausfüh
rungsresultat der arithmetischen Operation anzeigenden Daten wer
den in dem Datenregister 85 gehalten.
Die Speicherzugriffsstufe 42 enthält ein Bestimmungsregister 82
zum Halten einer Bestimmungsadresse und ein Datenregister 86 zum
Halten der ein Resultat der arithmetischen Operation anzeigenden
Daten. Die Rückschreibstufe nimmt die von dem Bestimmungsregister
82 gehaltene Bestimmungsadresse und die von dem Datenregister 86
gehaltenen Ausführungsdaten auf. Die Rückschreibstufe 43 schreibt
die ausgeführten Daten in die Registerdatei 9 gemäß der gegebenen
Bestimmungsadresse.
Ein Beispiel des in Fig. 2 gezeigten Adreßkomparators ist in Fig.
3 gezeigt. Wie nämlich in Fig. 3 gezeigt ist, weist der Adreßkom
parator 80 Koinzidenzdetektoren 811- 818 zum Erfassen der Koinzi
denz zwischen einer Quellenadresse SA1 und einer Bestimmungs
adresse und Koinzidenzdetektoren 821- 828 zum Erfassen der Koinzi
denz zwischen einer Quellenadresse SA2 und einer Bestimmungs
adresse auf. Die Quellenadressen SA1 und SA2 sind in einem von der
Decodierstufe 3 gegebenem Befehl enthalten. Die Koinzidenzdetekto
ren 811- 818 empfangen die Bestimmungsadressen DAb1, DAb2, DAc1,
DAc2, DAd1 und DAd2, die von den anderen Funktionseinheiten abge
geben werden, und ihre eigenen Bestimmungsadressen DAa1 bzw. DAa2.
Die Koinzidenzdetektoren 821- 828 empfangen die Bestimmungsadressen
auf die gleiche Weise. Ein Koinzidenzdetektor, z. B. Detektor 811
erfaßt die Koinzidenz zwischen der gegebenen Quellenadresse SA1
und der Bestimmungsadresse DAb1 und erzeugt ein Koinzidenzerfas
sungssignal S11 auf hohem Pegel. Die Koinzidenzerfassungssignale
S11-S18 und S21-S28 werden als Auswahlsignale zum Auswählen
von Daten, die in einer arithmetischen Operation benutzt werden,
an den Datenselektor 83 abgegeben.
Ein Beispiel eines Datenselektors 83 ist in Fig. 4 gezeigt. Wie
nämlich in Fig. 4 gezeigt ist, enthält der Datenselektor 83 Drei
stufenpuffer (tri-state buffer) 910-918, die mit der Datenleitung
31 verbunden sind, Dreistufenpuffer 920-928, die mit der Datenlei
tung 32 verbunden sind, und zwei NOR-Gatter 901 und 902. Die Drei
stufenpuffer 910 und 920 sind zum Empfangen der von der Register
datei 9 abgegebenen Werte DT1 bzw. DT2 geschaltet. Die Dreistufen
puffer 911-916 nehmen von den anderen Funktionseinheiten 5, 6 und
7 durch die Umgehungsleitung 12 angelegte Daten Db1, Db2, Dc1,
Dc2, Dd1 und Dd2 auf. Die Dreistufenpuffer 917 und 918 nehmen ihre
eigenen ausgeführten Daten Da1 bzw. Da2 auf. Die Dreistufenpuffer
921-928 nehmen die abgegebenen Daten auf die gleiche Weise auf wie
die Dreistufenpuffer 911-918. Die Dreistufenpuffer 911-918 werden
als Reaktion auf die Datenauswahlsignale S11-S18 gesteuert, die
von dem Adreßkomparator 80 abgegeben werden. Wenn z. B. das auf
einem hohen Pegel liegende Datenauswahlsignal S11 angelegt ist,
legt der Dreistufenpuffer 911 den Wert Db1 auf der Umgehungslei
tung 12 an die Datenleitung 31 an. Der Dreistufenpuffer 910 wird
als Reaktion auf ein Ausgangssignal von dem Buchstaben NOR-Gatter
901 betrieben. Wenn alle Datenauswahlsignale S11-S18 einen nie
drigen Pegel anzeigen, legt das NOR-Gatter 901 ein Ausgangssignal
auf einem hohen Pegel an den Dreistufenpuffer 910 an, so daß der
von der Registerdatei 9 abgegebene Wert DT1 an die Datenleitung 31
angelegt wird.
Die Dreistufenpuffer 921-928 sind entsprechend auf die Datenaus
wahlsignale S21-S28 tätig. Der Dreistufenpuffer 920 ist als
Reaktion auf ein Ausgangssignal von dem NOR-Gatter 902 tätig. Die
durch die Übertragungsgatter 910-918 und 920-928 ausgewählten
Daten werden über die Datenleitungen 31 und 32 zu der Ausführungs
einheit 87 der arithmetischen Operation übertragen.
Ein Beispiel einer Ausführungseinheit 84 der arithmetischen Opera
tion ist in Fig. 5 dargestellt. Wie nämlich in Fig. 5 gezeigt ist,
enthält die Ausführungseinheit 84 der arithmetischen Operation
Register 841 und 842 zum Halten von durch die Datenleitungen 31
bzw. angelegten Daten und eine arithmetische Operationseinheit
(ALU) 843 zum Ausführen einer arithmetischen Operation unter
Benutzung der durch die Register 841 und 842 gehaltenen Daten. Die
durch das Ausführen der arithmetischen Operation in der arithmeti
schen Operationseinheit 843 erhaltenen Daten werden an das in Fig.
2 gezeigte Datenregister 85 angelegt.
Im folgenden wird unter Bezugnahme auf die Fig. 1-5 und 8C der
Betrieb des in Fig. 1 gezeigten Superscalar-Prozessors 10
beschrieben. Es sei angenommen, daß der in Fig. 1 gezeigte Super
scalar-Prozessor 10 ebenfalls die Befehle 11 und 12 ausführt, die
oben unter Bezugnahme auf die Fig. 8B beschrieben worden sind. Wie
in Fig. 8C gezeigt ist, führt die Befehlsholstufe 2 den Befehl 11
in dem Zeitraum T1 aus (Pipeline PL1). In dem Zeitraum T2 führt
die Befehlsdecodierstufe 3 den Befehl 11 (Pipeline PL1) aus, dage
gen führt die Befehlsholstufe 2 den Befehl 12 aus. In dem Zeitraum
T3 wird der Befehl 11 in der Pipeline PL1 ausgeführt und die aus
geführten Daten werden erhalten. Die ausgeführten Daten stehen an,
um in die Registerdatei 9 gemäß der Bestimmungsadresse geschrieben
zu werden, die in dem Befehl 11 enthalten ist. Die ausgeführten
Daten sind dazu bestimmt, in der Ausführungsstufe in der Pipeline
PL2 in dem Befehl 12 benutzt zu werden, so daß die ausgeführten
Daten durch die in Fig. 1 gezeigte Umgehungsleitung 12 zu der
Pipeline PL2 geführt werden, wie im folgenden beschrieben wird.
Bei der obigen Beschreibung entspricht die Pipeline PL1 der Funk
tionseinheit 5, und die Pipeline PL2 entspricht der Funktionsein
heit 4.
Die Funktionseinheit 4, die die Pipeline PL2 darstellt, weist die
in Fig. 2 gezeigte Struktur auf. Wie in Fig. 2 gezeigt ist, ver
gleicht der Adreßkomparator 80 die Bestimmungsadressen SA1 und
SA2, die in dem gegebenen Befehl 12 enthalten sind, und die
Bestimmungsadressen DAa1, DAa2, . . . DAd1 und DAd2. Wie in der Fig.
3 gezeigt ist, werden in dem Fall, daß die Koinzidenz erfaßt wird,
Koinzidenzerfassungssignale S11-S18 oder S21-S28 auf hohem
Pegel als Auswahlsignale erzeugt.
Der in Fig. 4 gezeigte Datenselektor 83 legt selektiv die durch
die Umgehungsleitung 12 zugeführten Daten an die Datenleitungen 31
und 32 als Reaktion auf die Datenauswahlsignale S11-S18 und S21-S28
an. Wenn alle Datenauswahlsignale S11-S18 und S21-S28
auf niedrige Pegel sind, d. h., keine Koinzidenz zwischen den
Quellenadressen und den Bestimmungsadressen ist erfaßt, werden die
Werte DT1 und DT2, die von der Registerdatei 9 kommen, an die
Datenleitungen 31 und 32 angelegt. Wenn folglich mindestens eine
Koinzidenz in dem in Fig. 3 gezeigten Adreßkomparator 80 erfaßt
ist, werden die Daten in der anderen Funktionseinheit (d. h. Pipe
line PL1) über die Umgehungsleitung 12 (d. h. nicht durch die Regi
sterdatei 9) zu der Funktionseinheit 4 (d. h. Pipeline PL2) über
tragen. Die in der anderen Pipeline PL1 ausgeführten Daten werden
nicht durch die Registerdatei 9 zu der Pipeline PL2 geführt, so
daß es für die Pipeline PL2 nicht nötig ist, auf das Ende der Aus
führung in der Speicherzugriffsstufe und der Rückschreibstufe in
der Pipeline PL1 zu warten.
Wie in Fig. 8C gezeigt ist, werden die in der Ausführungsstufe in
der Pipeline PL1 ausgeführten Daten während des Zeitraums T3 durch
die Umgehungsleitung 12 an die Pipeline PL2 angelegt, so daß die
Ausführungsstufe in der Pipeline PL2 in dem Zeitraum T4 tätig
werden kann. Während bei dem in Fig. 7 gezeigten Superscalar-Pro
zessor 20 die Ausführung der Verarbeitung in der Pipeline PL2 in
den Ruhezustand während der Zeiträume T4 und T5
(Pipelineblockierung) gebracht wurde, wie in Fig. 8B gezeigt ist,
ist es bei dem in Fig. 1 gezeigten Superscalar-Prozessor 10 mög
lich, die Ausführung der Verarbeitung in der Ausführungsstufe und
der Speicherzugriffsstufe in den Zeiträumen T4 und T5 fortzuset
zen. D.h., eine Pipelineblockierung tritt nicht auf. Der Grund
dafür ist der, daß die in der Pipeline PL1 ausgeführten Daten
durch die Umgehungsleitung 12 zu der Pipeline PL2 geführt werden,
so daß es nicht nötig wird, auf das Beenden der Ausführung in der
Speicherzugriffsstufe und der Rückschreibstufe in der Pipeline PL1
zu warten.
Wie aus dem Vergleich zwischen den Fig. 8B und 8C zu sehen ist,
wird als Resultat die Zeitdauer (T2-T6), die die Pipeline PL2
benötigt, um die Ausführung des Befehls 12 auszuführen, kürzer
gemacht als Zeitdauer (T2-T9), die bei dem vorhandenen Super
scalar-Prozessor benötigt wird. Folglich wird die Verarbeitung bei
einer höheren Geschwindigkeit in einem Superscalar-Prozessor
erzielt.
Während der Superscalar-Prozessor 10 mit jeweils den gleichen
Pipelinestrukturen (d. h. Stufen) in dem in Fig. 1 gezeigten Bei
spiel beschrieben worden ist, ist die Anwendung der vorliegenden
Erfindung jedoch nicht darauf beschränkt. Selbst wenn der Super
scalar-Prozessor verschiedene Pipeline-Strukturen aufweist, ist es
möglich, die oben beschriebenen Vorteile in bezug auf die Zeit zu
erzielen, die zum Verarbeiten nötig ist, indem eine Umgehungslei
tung zwischen den Pipelines vorgesehen wird.
Claims (5)
1. Superscalar-Prozessor (10) mit einer Datenspeichereinrichtung,
der eine erste Mehrzahl von früher gegebenen Befehlen und eine
zweite Mehrzahl von später gegebenen Befehlen unter Pipelinesteue
rung unter Benutzung von in der Datenspeichereinrichtung gespei
cherten Daten ausführt,
wobei jeder der Befehle eine Quellenadresse (SA1, SA2) die eine Adresse in der Speichereinrichtung anzeigt, bei der für die Aus führung des Befehls zu benutzende Daten gespeichert sind, und eine Bestimmungsadresse (DA), die eine Adresse in der Datenspeicherein richtung anzeigt, bei der die ausgeführten Daten zu speichern sind, enthält,
mit einer Erfassungseinrichtung (3) für gleichzeitig ausführbare Befehle zum Erfassen gleichzeitig ausführbarer Befehle in der gegebenen ersten oder zweiten Mehrzahl von Befehlen,
mit einer dritten Mehrzahl von Pipelineverarbeitungseinrichtungen (4, 5) zum parallelen und gleichzeitigen Ausführen entsprechender Befehle unter Pipelinesteuerung, die von der Erfassungseinrichtung (3) für gleichzeitig ausführbare Befehle erfaßt sind,
wobei jede der dritten Pipelineverarbeitungseinrichtungen (4, 5) eine Ausführungseinrichtung (42) für den früheren Befehl und eine Ausführungseinrichtung (41) für den späteren Befehl zum aufeinan derfolgenden Ausführen der gegebenen Befehle unter Pipelinesteue rung aufweist,
dadurch gekennzeichnet, daß die in mindestens einer der dritten Mehrzahl von Pipelineverarbeitungseinrichtungen (4, 5) vorgesehene Ausführungseinrichtung (41) für den späteren Befehl aufweist:
eine Adreßkoinzidenz-Erfassungseinrichtung (80) zum Erfassen der Koinzidenz der in dem gegebenen Befehl enthaltenen Quellenadresse (SA1, SA2) und der in dem Befehl enthaltenen Bestimmungsadresse (DA), der in der Verarbeitungseinrichtung (42) für den früheren Befehl in einer anderen Pipelineverarbeitungseinrichtung ausge führt ist,
und eine Direktanlegungseinrichtung (12, 83), die auf die Adreß koinzidenz-Erfassungseinrichtung (80) reagiert, zum direkten Anle gen der in der Ausführungseinrichtung (42) für den früheren Befehl in der anderen Pipelineverarbeitungseinrichtung behandelten Daten an die Ausführungseinrichtung (42) für den späteren Befehl in der mindestens einen Pipelineverarbeitungseinrichtung.
wobei jeder der Befehle eine Quellenadresse (SA1, SA2) die eine Adresse in der Speichereinrichtung anzeigt, bei der für die Aus führung des Befehls zu benutzende Daten gespeichert sind, und eine Bestimmungsadresse (DA), die eine Adresse in der Datenspeicherein richtung anzeigt, bei der die ausgeführten Daten zu speichern sind, enthält,
mit einer Erfassungseinrichtung (3) für gleichzeitig ausführbare Befehle zum Erfassen gleichzeitig ausführbarer Befehle in der gegebenen ersten oder zweiten Mehrzahl von Befehlen,
mit einer dritten Mehrzahl von Pipelineverarbeitungseinrichtungen (4, 5) zum parallelen und gleichzeitigen Ausführen entsprechender Befehle unter Pipelinesteuerung, die von der Erfassungseinrichtung (3) für gleichzeitig ausführbare Befehle erfaßt sind,
wobei jede der dritten Pipelineverarbeitungseinrichtungen (4, 5) eine Ausführungseinrichtung (42) für den früheren Befehl und eine Ausführungseinrichtung (41) für den späteren Befehl zum aufeinan derfolgenden Ausführen der gegebenen Befehle unter Pipelinesteue rung aufweist,
dadurch gekennzeichnet, daß die in mindestens einer der dritten Mehrzahl von Pipelineverarbeitungseinrichtungen (4, 5) vorgesehene Ausführungseinrichtung (41) für den späteren Befehl aufweist:
eine Adreßkoinzidenz-Erfassungseinrichtung (80) zum Erfassen der Koinzidenz der in dem gegebenen Befehl enthaltenen Quellenadresse (SA1, SA2) und der in dem Befehl enthaltenen Bestimmungsadresse (DA), der in der Verarbeitungseinrichtung (42) für den früheren Befehl in einer anderen Pipelineverarbeitungseinrichtung ausge führt ist,
und eine Direktanlegungseinrichtung (12, 83), die auf die Adreß koinzidenz-Erfassungseinrichtung (80) reagiert, zum direkten Anle gen der in der Ausführungseinrichtung (42) für den früheren Befehl in der anderen Pipelineverarbeitungseinrichtung behandelten Daten an die Ausführungseinrichtung (42) für den späteren Befehl in der mindestens einen Pipelineverarbeitungseinrichtung.
2. Superscalar-Prozessor nach Anspruch 1,
dadurch gekennzeichnet, daß die Erfassungseinrichtung für gleich
zeitig ausführbare Befehle eine Decodiereinrichtung (3) zum Deco
dieren der ersten und zweiten Mehrzahl von Befehlen zum Erfassen
der gleichzeitig ausführbaren Befehle aufweist.
3. Superscalar-Prozessor nach Anspruch 1 oder 2,
dadurch gekennzeichnet, daß die Direktanlegungseinrichtung auf
weist:
eine Datenübertragungsleitung (12), die zwischen der mindesten einen Pipelineverarbeitungseinrichtung und der anderen Pipeline verarbeitungseinrichtung geschaltet ist zum Übertragen der Daten, die in der Ausführungseinrichtung (42) für den früheren Befehl in der anderen Pipelineverarbeitungseinrichtung behandelt sind, zu der Ausführungseinrichtung (41) für den späteren Befehl in der mindestens einen Pipelineverarbeitungseinrichtung und
eine Datenauswahleinrichtung (83) zum Empfangen von durch die Datenübertragungsleitung (12) übertragenen Daten und Auswählen der übertragenen Daten als Reaktion auf die Adreßkoinzidenz-Erfas sungseinrichtung (80).
eine Datenübertragungsleitung (12), die zwischen der mindesten einen Pipelineverarbeitungseinrichtung und der anderen Pipeline verarbeitungseinrichtung geschaltet ist zum Übertragen der Daten, die in der Ausführungseinrichtung (42) für den früheren Befehl in der anderen Pipelineverarbeitungseinrichtung behandelt sind, zu der Ausführungseinrichtung (41) für den späteren Befehl in der mindestens einen Pipelineverarbeitungseinrichtung und
eine Datenauswahleinrichtung (83) zum Empfangen von durch die Datenübertragungsleitung (12) übertragenen Daten und Auswählen der übertragenen Daten als Reaktion auf die Adreßkoinzidenz-Erfas sungseinrichtung (80).
4. Superscalar-Prozessor nach einem der Ansprüche 1 bis 3,
dadurch gekennzeichnet, daß die Ausführungseinrichtung (42) für
den früheren Befehl eine Speicherzugriffsstufe (5, 42) aufweist,
die in der anderen Pipelineverarbeitungseinrichtung vorgesehen
ist, zum Ausführen des Speicherzugriffs gemäß dem gegebenen
Befehl, und
die Ausführungseinrichtung (41) für den späteren Befehl eine Ausführungsstufe (4, 41) aufweist, die in der mindestens einen Pipelineverarbeitungseinrichtung vorgesehen ist, zum Ausführen einer arithmetischen Operation gemäß dem gegebenen Befehl.
die Ausführungseinrichtung (41) für den späteren Befehl eine Ausführungsstufe (4, 41) aufweist, die in der mindestens einen Pipelineverarbeitungseinrichtung vorgesehen ist, zum Ausführen einer arithmetischen Operation gemäß dem gegebenen Befehl.
5. Superscalar-Prozessor nach einem der Ansprüche 1 bis 4,
dadurch gekennzeichnet, daß die Datenspeichereinrichtung eine
Registerdatei (9) zum zeitweiligen Speichern der in der ersten und
zweiten Mehrzahl von Befehlen zu benutzenden Daten aufweist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3144560A JPH04367936A (ja) | 1991-06-17 | 1991-06-17 | スーパースカラープロセッサ |
Publications (1)
Publication Number | Publication Date |
---|---|
DE4207148A1 true DE4207148A1 (de) | 1992-12-24 |
Family
ID=15365101
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4207148A Ceased DE4207148A1 (de) | 1991-06-17 | 1992-03-06 | Superscalar-prozessor |
Country Status (3)
Country | Link |
---|---|
US (2) | US5636353A (de) |
JP (1) | JPH04367936A (de) |
DE (1) | DE4207148A1 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19506435C2 (de) * | 1994-02-28 | 2000-05-18 | Intel Corp | Verfahren und Einrichtung zum Vermeiden von Rückschreibkonflikten zwischen einen gemeinsamen Rückschreibpfad verwendenden Ausführungseinheiten |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5546554A (en) * | 1994-02-02 | 1996-08-13 | Sun Microsystems, Inc. | Apparatus for dynamic register management in a floating point unit |
US5559976A (en) * | 1994-03-31 | 1996-09-24 | International Business Machines Corporation | System for instruction completion independent of result write-back responsive to both exception free completion of execution and completion of all logically prior instructions |
JP3442175B2 (ja) * | 1995-02-02 | 2003-09-02 | 株式会社リコー | 中央演算処理装置 |
JP2636789B2 (ja) * | 1995-03-31 | 1997-07-30 | 日本電気株式会社 | マイクロプロセッサ |
US6092184A (en) * | 1995-12-28 | 2000-07-18 | Intel Corporation | Parallel processing of pipelined instructions having register dependencies |
US5813033A (en) * | 1996-03-08 | 1998-09-22 | Advanced Micro Devices, Inc. | Superscalar microprocessor including a cache configured to detect dependencies between accesses to the cache and another cache |
JP3745450B2 (ja) * | 1996-05-13 | 2006-02-15 | 株式会社ルネサステクノロジ | 並列処理プロセッサ |
JPH09305401A (ja) * | 1996-05-13 | 1997-11-28 | Mitsubishi Electric Corp | コンピュータ及びコンパイラ |
US5778248A (en) * | 1996-06-17 | 1998-07-07 | Sun Microsystems, Inc. | Fast microprocessor stage bypass logic enable |
US5802386A (en) * | 1996-11-19 | 1998-09-01 | International Business Machines Corporation | Latency-based scheduling of instructions in a superscalar processor |
JP3578883B2 (ja) * | 1997-01-31 | 2004-10-20 | 三菱電機株式会社 | データ処理装置 |
US6016543A (en) * | 1997-05-14 | 2000-01-18 | Mitsubishi Denki Kabushiki Kaisha | Microprocessor for controlling the conditional execution of instructions |
US6014759A (en) * | 1997-06-13 | 2000-01-11 | Micron Technology, Inc. | Method and apparatus for transferring test data from a memory array |
US6044429A (en) | 1997-07-10 | 2000-03-28 | Micron Technology, Inc. | Method and apparatus for collision-free data transfers in a memory device with selectable data or address paths |
US5872986A (en) * | 1997-09-30 | 1999-02-16 | Intel Corporation | Pre-arbitrated bypassing in a speculative execution microprocessor |
JP4201927B2 (ja) * | 1999-08-25 | 2008-12-24 | 株式会社ルネサステクノロジ | データ処理管理装置 |
US6862677B1 (en) * | 2000-02-16 | 2005-03-01 | Koninklijke Philips Electronics N.V. | System and method for eliminating write back to register using dead field indicator |
US6851044B1 (en) * | 2000-02-16 | 2005-02-01 | Koninklijke Philips Electronics N.V. | System and method for eliminating write backs with buffer for exception processing |
US6728870B1 (en) * | 2000-10-06 | 2004-04-27 | Intel Corporation | Register move operations |
WO2003036468A1 (en) | 2001-10-24 | 2003-05-01 | Telefonaktiebolaget Lm Ericsson (Publ) | An arrangement and a method in processor technology |
US20040128482A1 (en) * | 2002-12-26 | 2004-07-01 | Sheaffer Gad S. | Eliminating register reads and writes in a scheduled instruction cache |
US7937557B2 (en) * | 2004-03-16 | 2011-05-03 | Vns Portfolio Llc | System and method for intercommunication between computers in an array |
US7904695B2 (en) * | 2006-02-16 | 2011-03-08 | Vns Portfolio Llc | Asynchronous power saving computer |
JP4243271B2 (ja) * | 2005-09-30 | 2009-03-25 | 富士通マイクロエレクトロニクス株式会社 | データ処理装置およびデータ処理方法 |
US8078845B2 (en) * | 2005-12-16 | 2011-12-13 | Freescale Semiconductor, Inc. | Device and method for processing instructions based on masked register group size information |
US7966481B2 (en) | 2006-02-16 | 2011-06-21 | Vns Portfolio Llc | Computer system and method for executing port communications without interrupting the receiving computer |
US7752422B2 (en) * | 2006-02-16 | 2010-07-06 | Vns Portfolio Llc | Execution of instructions directly from input source |
US7904615B2 (en) * | 2006-02-16 | 2011-03-08 | Vns Portfolio Llc | Asynchronous computer communication |
EP1821202B1 (de) * | 2006-02-16 | 2011-01-12 | VNS Portfolio LLC | Ausführung von Anweisungen direkt von der Eingabequelle aus |
US7594094B2 (en) * | 2006-05-19 | 2009-09-22 | International Business Machines Corporation | Move data facility with optional specifications |
US7809927B2 (en) * | 2007-09-11 | 2010-10-05 | Texas Instruments Incorporated | Computation parallelization in software reconfigurable all digital phase lock loop |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4594655A (en) * | 1983-03-14 | 1986-06-10 | International Business Machines Corporation | (k)-Instructions-at-a-time pipelined processor for parallel execution of inherently sequential instructions |
AU553416B2 (en) * | 1984-02-24 | 1986-07-17 | Fujitsu Limited | Pipeline processing |
US5051940A (en) * | 1990-04-04 | 1991-09-24 | International Business Machines Corporation | Data dependency collapsing hardware apparatus |
US4916652A (en) * | 1987-09-30 | 1990-04-10 | International Business Machines Corporation | Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures |
JPH0769821B2 (ja) * | 1988-03-04 | 1995-07-31 | 日本電気株式会社 | 情報処理装置におけるバイパスライン制御方式 |
JPH0769822B2 (ja) * | 1988-11-08 | 1995-07-31 | 日本電気株式会社 | 演算レジスタのバイパスチェック方式 |
US5214763A (en) * | 1990-05-10 | 1993-05-25 | International Business Machines Corporation | Digital computer system capable of processing two or more instructions in parallel and having a coche and instruction compounding mechanism |
US5197135A (en) * | 1990-06-26 | 1993-03-23 | International Business Machines Corporation | Memory management for scalable compound instruction set machines with in-memory compounding |
JP2693651B2 (ja) * | 1991-04-30 | 1997-12-24 | 株式会社東芝 | 並列プロセッサー |
US5539911A (en) * | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
-
1991
- 1991-06-17 JP JP3144560A patent/JPH04367936A/ja active Pending
-
1992
- 1992-03-06 DE DE4207148A patent/DE4207148A1/de not_active Ceased
-
1994
- 1994-04-07 US US08/225,265 patent/US5636353A/en not_active Expired - Fee Related
-
1997
- 1997-05-29 US US08/865,308 patent/US6233670B1/en not_active Expired - Fee Related
Non-Patent Citations (2)
Title |
---|
US IEEE Transactions on Computers, Vol. 39, Nr. 3, März 1990, S. 349-359 * |
US-Buch: K. Hwang, F.A: Briggs "Computer Architecture and parallel Processing" Mc Graw Hill In., 1984, S. 200-203 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19506435C2 (de) * | 1994-02-28 | 2000-05-18 | Intel Corp | Verfahren und Einrichtung zum Vermeiden von Rückschreibkonflikten zwischen einen gemeinsamen Rückschreibpfad verwendenden Ausführungseinheiten |
Also Published As
Publication number | Publication date |
---|---|
US6233670B1 (en) | 2001-05-15 |
JPH04367936A (ja) | 1992-12-21 |
US5636353A (en) | 1997-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE4207148A1 (de) | Superscalar-prozessor | |
DE68927492T2 (de) | Verfahren und Vorrichtung zur gleichzeitigen Verteilung von Befehlen an mehrere funktionelle Einheiten | |
DE69228360T2 (de) | Registerlesekontrolle | |
DE69429226T2 (de) | Absendung von Befehlen an mehrere Verarbeitungseinheiten | |
DE69724771T2 (de) | Zentralprozessoreinheit mit x86 und dsp kern und einem dsp funktions-dekoder zum abbilden von x 86-befehlen auf dsp-befehle | |
DE68927911T2 (de) | Datenverarbeitungssystem | |
DE69028138T2 (de) | Mechanismus zur präzisen Behandlung von Ausnahmebedingungen in einem Prozessor mit gepaarten Befehlen | |
DE68928677T2 (de) | Verfahren und digitaler Computer zur Vorverarbeitung mehrerer Befehle | |
DE69515339T2 (de) | Rechnersystem | |
DE3586899T2 (de) | Instruktionsvorgriffsystem fuer bedingte sprungbefehle in einer zentralen verarbeitungseinrichtung. | |
DE69130757T2 (de) | Ausführungsvorrichtung für bedingte Verzweigungsbefehle | |
DE69534148T2 (de) | Rechnersystem zur Ausführung von Verzweigungsbefehlen | |
DE3210816C2 (de) | ||
DE68919069T2 (de) | Verfahren und Gerät zur Fehlererkennung und -korrektur in einem nach dem überlappten Steuerungsverfahren arbeitenden Rechnersystem. | |
DE69033443T2 (de) | Mechanismus zur Verzweigungsrücksetzung in einem Prozessor mit gepaarten Befehlen | |
DE3853529T2 (de) | Dynamische Mehrbefehle-Mehrdaten-Mehrpipeline-Gleitpunkteinheit. | |
DE3750935T2 (de) | Verfahren und System zum Erleichtern der Befehlsausführung in einem digitalen Rechner. | |
DE3686991T2 (de) | Mechanismus fuer parallele speicherdatenabholung und befehlsausfuehrung in einem prozessor mit reduziertem befehlssatz. | |
DE69809450T2 (de) | Datenverarbeitungsvorrichtung | |
DE69033398T2 (de) | Rechnerarchitektur mit Mehrfachbefehlsausgabe | |
DE69325086T2 (de) | Verfahren und System für spekulative Befehlsausführung | |
DE4206062C2 (de) | Pipelineverarbeitung von Instruktionen | |
DE69624158T2 (de) | Superskalarer Prozessor mit mehreren Registerblöcken und Erzeugung von spekulativen Antwortadressen | |
DE69030931T2 (de) | Mehrfachsequenzprozessorsystem | |
DE69027932T2 (de) | Cpu-pipeline mit registerfile-bypass durch adressvergleich bei aktualisierungen/zugriffen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8131 | Rejection |