DE19506435A1 - Verfahren und Einrichtung zum Vermeiden von Rückschreibkonflikten zwischen einen gemeinsamen Rückschreibpfad verwendenden Ausführungseinheiten - Google Patents
Verfahren und Einrichtung zum Vermeiden von Rückschreibkonflikten zwischen einen gemeinsamen Rückschreibpfad verwendenden AusführungseinheitenInfo
- Publication number
- DE19506435A1 DE19506435A1 DE19506435A DE19506435A DE19506435A1 DE 19506435 A1 DE19506435 A1 DE 19506435A1 DE 19506435 A DE19506435 A DE 19506435A DE 19506435 A DE19506435 A DE 19506435A DE 19506435 A1 DE19506435 A1 DE 19506435A1
- Authority
- DE
- Germany
- Prior art keywords
- execution unit
- pipeline
- execution
- write
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 16
- 239000000872 buffer Substances 0.000 claims abstract description 38
- 238000012545 processing Methods 0.000 claims description 10
- 230000000694 effects Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 claims description 4
- 230000001934 delay Effects 0.000 claims description 2
- 230000011664 signaling Effects 0.000 claims 6
- 230000003111 delayed effect Effects 0.000 claims 5
- 238000001514 detection method Methods 0.000 claims 2
- 238000007792 addition Methods 0.000 description 28
- 230000006870 function Effects 0.000 description 10
- 238000011161 development Methods 0.000 description 5
- 230000003139 buffering effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 101150071111 FADD gene Proteins 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3873—Variable length pipelines, e.g. elastic pipeline
-
- 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
-
- 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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
-
- 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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3858—Result writeback, i.e. updating the architectural state or memory
-
- 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
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 betrifft das Gebiet der Mikro
prozessorarchitektur. Insbesondere betrifft die vorliegende
Erfindung das Gebiet der Mikroprozessorarchitektur, die darauf
gerichtet ist, parallel ausgeführte, gemeinsame Ressourcen
erfordernde Instruktionen zu koordinieren, indem ein Verfahren
und eine Einrichtung zum Erweitern von Ausführungseinheit-
Pipelines zur Verfügung gestellt wird.
Mit fortschreitender Computerentwicklung streben die Mi
kroprozessorentwickler nach der Entwicklung von Chips, die eine
höhere Leistung und eine schnellere Verarbeitung aufweisen. Die
anfänglichen Fortschritte waren im wesentlichen darauf konzen
triert, die Anzahl der Transistoren einer einen einzigen Mikro
prozessor enthaltenden integrierten Schaltung zu erhöhen. Diese
Entwicklung geht bei den heutigen Mikroprozessoren weiter, bei
denen nun buchstäblich Millionen von Transistoren auf einem
einzigen Chip angeordnet sind. Die weitere Integration hat es
ermöglicht, daß die Prozessortaktraten mit der erhöhten
Transistordichte stark erhöht wurden.
Durch das Überwinden von physikalischen Grenzen wird das
Letzte an Leistungsfähigkeit herausgeholt. Mikroprozessoren
sind in einzelne Funktionsblöcke aufgeteilt, durch welche
Instruktionen jeweils eine Stufe pro Zeiteinheit weitergegeben
werden. Dies ermöglicht eine Pipelineverarbeitung von Instruk
tionen, so daß eine zweite Instruktion an der ersten Stufe
starten kann, wenn eine Instruktion die erste Verarbeitungsstu
fe beendet hat und zu der zweiten Stufe übertragen wird. Auf
diese Weise sorgt die Pipelineverarbeitung selbst in den Fäl
len, wo jede Instruktion eine Anzahl von Taktzyklen zur Beendi
gung aller Verarbeitungsstufen benötigt, dafür, daß Instruktio
nen in jedem Taktzyklus beendet werden. Dieser Ein-Zyklus-
Durchsatz eines Pipeline-Mikroprozessors erhöht die Gesamtlei
stung von Computersystemen stark.
Andere Verbesserungen des Mikroprozessor-Designs sind die
Entwicklung von superskalaren Mikroprozessoren, die in der Lage
sind, mehr als eine Instruktion pro Taktzyklus an der Anfangs
stufe der Pipeline starten zu lassen. Ebenso werden in einem
superskalaren Mikroprozessor oft mehr als eine Instruktion in
jedem Taktzyklus beendet. Andere Entwicklungsfortschritte sind
die Vereinfachung der Instruktionssätze eines Mikroprozessors,
wobei Mikroprozessoren mit reduziertem Instruktionssatz (RISC)
entwickelt wurden. Diese Mikroprozessoren nutzen die Tatsache,
daß viele einfache Instruktionen häufiger ausgeführt werden als
einige komplizierte Instruktionen. Durch das Eliminieren der
komplizierten Instruktionen aus dem Instruktionssatz wird eine
schnellere Ausführungspipeline geschaffen. Komplizierte In
struktionen werden durch Kombinationen der einfacheren Instruk
tionen ausgeführt.
Damit Mikroprozessoren mit Pipelineverarbeitung effizien
ter arbeiten, muß eine Instruktions-Heranholeinheit am Kopf der
Pipeline die Pipeline kontinuierlich mit einem Instrukti
onsstrom versorgen. Jedoch hindern bedingte Verzweigungsin
struktionen innerhalb eines Instruktionsstroms eine Instrukti
ons-Heranholeinheit an dem Kopf einer Pipeline solange daran,
die richtige Instruktion heranzuholen, bis die Bedingung gelöst
ist. Da diese Bedingung erst weiter unten in der Pipeline
gelöst wird, ist die Instruktions-Heranholeinheit nicht in der
Lage, richtige Instruktionen heranzuholen.
Zur Lösung dieses Problems verwenden viele Mikroprozesso
ren mit Pipelineverarbeitung Verzweigungsvorhersagemechanismen,
die das Ergebnis von Verzweigungen vorhersagen und dann
nachfolgende Instruktionen entsprechend der Verzweigungsvorher
sage heranholen. Die Verzweigungsvorhersage geschieht unter
Verwendung eines Verzweigungsziel-Puffers, der die Geschichte
einer Verzweigungsinstruktion auf der Basis des Instruktions
zeigers oder der Instruktionsadresse dieser Instruktion spei
chert. Jedesmal, wenn eine Verzweigungsinstruktion herangeholt
wird, sagt der Verzweigungszielpuffer unter Verwendung der
Verzweigungsgeschichte die Zieladresse der Verzweigung vorher.
Die Verwendung der Verzweigungsvorhersage in einer Architektur
mit pipeline-verarbeiteten Instruktionen wird oft als spekula
tive Ausführung bezeichnet.
Neben der spekulativen Ausführung sind durch die Imple
mentierung einer Außer-der-Reihe-Abfertigung (out-of-order
dispatch) von Instruktionen zu den Ausführungseinheiten be
trächtliche Anstiege des Instruktionsdurchsatzes erzielbar.
Viele Experimente haben bestätigt, daß ein typischer Von-
Neumann-Befehlscode durch Verwendung der ungeordneten Ausfüh
rung beträchtliche Parallelität und damit eine potentielle
Leistungsverstärkung schafft. Ungeordnete Ausführung ist mög
lich, wenn eine bestimmte Instruktion nicht von vorangehenden
Instruktionen abhängt, indem sie ein Ergebnis vor der Ausfüh
rung benötigt. Mit der Außer-der-Reihe-Ausführung kann sich
eine beliebige, bis zu der Anzahl der Pipelinestufen aller
Funktionseinheiten gehende Anzahl von Instruktionen in den
Ausführungseinheiten in der Ausführung befinden.
In einem eine Außer-der-Reihe-Ausführung verwendendem
Prozessor wird die Instruktionsausgabe abgebrochen, wenn es
einen Konflikt bei einer Funktionseinheit gibt oder wenn eine
ausgegebene Instruktion von einem Ergebnis einer Instruktion
abhängt, das noch nicht berechnet wurde. Um Abbrüche zu verhin
dern oder ihre Auswirkungen zu mildern, wurde in früheren
Texten die Schaffung eines als Reservierungsstation (RS) be
kannten Puffers zwischen der Decodier- und der Ausführungsstufe
beschrieben. Der Prozessor dekodiert Instruktionen und gibt sie
in die Reservierungsstation ein, solange dort Platz in dem
Puffer ist und er untersucht gleichzeitig die Instruktionen in
der Reservierungsstation, um diejenigen Instruktionen zu
finden, die den Ausführungseinheiten zugeteilt werden können
(d. h. Instruktionen, für die Quelloperanden und Ausführungsein
heiten verfügbar sind). Instruktionen mit bereitgestellten
Daten werden von der Reservierungsstation mit wenig Rücksicht
auf ihre ursprüngliche Programmreihenfolge ausgegeben. Für
weitere Informationen über die Verwendung einer Reservierungs
station und die Ausführung außer der Reihe sei auf Mike John
son, Superscalar Microprocessor Design, Prentice-Hall, Inc.,
1991, Kapitel 3 und 7 verwiesen.
In Mikroprozessoren mit Reservierungsstationen, ein
schließlich superskalaren Prozessoren stellt die Reservie
rungsstation im allgemeinen fertige Instruktionen direkt einer
geeigneten Ausführungseinheit zur Verfügung. In vielen Fällen
können die Ausführungseinheiten in Gruppen zusammengefaßt
werden, die mit einem einzigen Abfertigungs- bzw. Dispatch-Port
der Reservierungsstation gekoppelt sind. Bei einem Ausführungs
beispiel können beispielsweise eine Gleitkommaadditions- und
eine Gleitkommamultiplikations-Ausführungseinheit mit demselben
Abfertigungs-Port gekoppelt sein. Die Gleitkommadditions- und
die Gleitkommamultiplikations-Ausführungseinheiten können
unterschiedlich lange interne Pipelines aufweisen. Ein Problem
entsteht dadurch, daß diese üblicherweise gruppierten Ausfüh
rungseinheiten sich möglicherweise einen einzigen Rückschreib
pfad von den Ausführungseinheiten teilen. Wenn die Reservie
rungsstation eine erste Instruktion an eine Ausführungseinheit,
wie bspw. die Gleitkommamultiplikationseinheit, und dann nach
folgend eine Instruktion an die Gleitkommaadditions-Ausfüh
rungseinheit in der gleichen Gruppe von Ausführungseinheiten
abfertigt, ist es möglich, daß mehrere Ausführungseinheiten
gleichzeitig fertig sind, ein Ergebnis zurückzuschreiben. Da
sich die Ausführungseinheiten einem gemeinsamen Rückschreib-
Port teilen, entsteht eine Zugriffskonkurrenz.
Es ist Aufgabe der Erfindung, die Zugriffskonkurrenz der
Ausführungseinheiten zu überwinden, die sich einen gemeinsamen
Rückschreib-Port teilen.
Diese Aufgabe wird erfindungsgemäß gelöst durch eine Ein
richtung mit den Merkmalen des Anspruchs 1, 16, 22 oder 23.
Verfahrensmäßig wird diese Aufgabe gelöst durch die Merkmale
des Anspruchs 9. Außerdem wird die Aufgabe gelöst durch einen
Mikroprozessor mit den Merkmalen des Anspruchs 18.
Die Erfindung geht dabei von der Erkenntnis aus, daß durch
das Verlängern der Pipeline der von einem Rückschreibkonflikt
betroffenen Funktionseinheit der Rückschreibkonflikt gelöst
werden kann. Es wird eine Logikschaltung zur Verfügung ge
stellt, um die Tiefe von zwei gleichzeitig ausführenden Ausfüh
rungspipelines zu vergleichen, um zu bestimmen, ob ein Konflikt
entstehen wird. Wenn es sich herausstellt, daß zwei
Ausführungseinheiten versuchen werden, gleichzeitig zurückzu
schreiben, wird die Ausführungseinheit mit der kürzeren Pipe
line angewiesen, eine Stufe zu ihrer Pipeline hinzuzufügen.
Dies geschieht, indem sie ihr Ergebnis in einem zusätzlichen
Register für einen Taktzyklus speichert. Nachdem der Konflikt
gelöst worden ist, wird die Instruktion zum Verlängern der
Pipeline einer gegebenen Funktionseinheit zurückgenommen.
Die Erfindung trägt dazu bei, die Zugriffskonkurrenz zwi
schen Ausführungseinheiten zu überwinden, welche sich einen
gemeinsamen Rückschreibpfad teilen und welche möglicherweise
einen gleichzeitigen Zugriff zu dem Rückschreibpfad erfordern.
Es ist ein Vorteil der Erfindung, daß sie potentielle
Konflikte an einem mehreren Funktionseinheiten gemeinsamen
Rückschreib-Port erfassen kann.
Außerdem stellt die Erfindung ein Mittel zur Verfügung, um
eine Reservierungsstation daran zu hindern, Instruktionen
zuzuteilen, die zu Rückschreibkonflikten führen könnten oder um
dieses Zuteilen zu verzögern.
Die vorliegende Erfindung stellt außerdem ein Mittel und
ein Verfahren für mehrstufige Ausführungseinheiten zur Verfü
gung, um der Reservierungsstation zu signalisieren, daß sie die
Abfertigung verschiedener Instruktionen zur Vermeidung von
Konflikten zwischen diesen Ausführungseinheiten verzögern soll.
Beispielsweise wird eine Ausführungseinheit mit einer
dreistufigen Pipeline der Reservierungsstation signalisieren,
daß sie keine 1-Zyklus-Instruktionen abfertigen soll, die
gleichzeitig über einen gemeinsamen Rückschreib-Port zurückge
schrieben werden müßten. Ebenfalls sind Ausführungseinheiten,
die eine unbestimmte Anzahl von Pipelinestufen erfordern, mit
einer Einrichtung ausgerüstet, um der Reservierungsstation zu
melden, daß sie die Abfertigung von Instruktionen an die einen
gemeinsamen Rückschreib-Port verwendenden Ausführungseinheiten
eine bekannte Anzahl von Zyklen im voraus verhindern soll, um
Zugriffskonkurrenzen zu vermeiden.
Im folgenden wird die Erfindung anhand eines in der Zei
chung beschriebenen Ausführungsbeispiels näher erläutert. In
der Zeichnung zeigen:
Fig. 1 eine schematische Darstellung einer Computerarchi
tektur, die die Erfindung enthalten kann,
Fig. 2 ein Blockschaltbild eines Teils eines die Erfindung
implementieren Mikroprozessors;
Fig. 3 eine detailliertere Darstellung der Pipeline von
zwei Ausführungseinheiten, die sich einen gemeinsa
men Rückschreib-Port teilen und der Einrichtung zum
Vermeiden einer kollidierenden Verwendung des Rück
schreib-Ports;
Fig. 4 ein Blockschaltbild der Ausführungseinheiten, die
einer Reservierungsstation Signale senden, um die
Reservierungsstation an der Abfertigung von Instruk
tionen zu hindern, welche in Konflikt mit dem Bedarf
eines gemeinsamen Rückschreibpfades geraten würde.
Die vorliegende Erfindung stellt ein Verfahren und eine
Einrichtung zur Verfügung, um Rückschreibkonflikte zwischen
einem gemeinsamen Rückschreib-Port verwendenden Ausführungsein
heiten zu vermeiden. In der folgenden Beschreibung sind zahl
reiche spezielle Details angegeben, beispielsweise bestimmte
Pipelinelängen von Ausführungseinheiten und bestimmte Instruk
tionscodes, um ein besseres Verständnis der Erfindung zu
ermöglichen. Für den Fachmann ist es jedoch klar, daß die
vorliegende Erfindung ohne diese speziellen Details ausgeführt
werden kann. In anderen Fällen sind bekannte Steuerstrukturen
und Schaltungen auf Gatterebene nicht detailliert dargestellt,
um das Verständnis der Erfindung nicht zu erschweren. Insbe
sondere werden viele Funktionen beschrieben, die von verschie
denen Logikschaltungen ausgeführt werden. Die Beschreibung der
verschiedenen Funktionen versetzt den Fachmann in die Lage, die
notwendigen Logikschaltungen ohne übermäßigen Aufwand zu
implementieren.
In Fig. 1 ist ein typisches Computersystem dargestellt,
das einen die Erfindung implementierenden Mikroprozessor
verwendet. Ein Computer 100 weist drei Hauptkomponenten auf.
Die erste dieser Hauptkomponenten ist die Eingabe/Ausgabe(I/O)-
Schaltung 101, die zum Austausch von geeignet strukturierten
Informationen mit anderen Teilen des Computers 100 sowie mit
externen Geräten verwendet wird. Als Teil des Computers 100
sind eine Verarbeitungseinheit (CPU) 102 und ein Speicher 103
dargestellt. Diese beiden letztgenannten Elemente sind in den
meisten Universalrechnern und in fast allen Spezialrechnern zu
finden. Viele kommerziell erhältliche Computer mit unter
schiedlichen Fähigkeiten können mit einem die Erfindung imple
mentierenden Prozessor verwendet werden.
In Fig. 1 ist außerdem ein in der typischen Ausführungs
form als Tastatur dargestelltes Eingabegerät 105 gezeigt.
Außerdem ist als Eingabegerät ein Grafiktableau 107 darge
stellt. Es ist jedoch klar, daß das Eingabegerät auch jede
andere Art von bekannten Eingabegeräten (natürlich einschließ
lich eines anderen Computers) sein kann. Eine Massenspeicher
einrichtung 104 ist mit der I/O-Schaltung 101 gekoppelt und
stellt zusätzliche Speichermöglichkeiten für den Rechner 100
zur Verfügung. Der Massenspeicher kann andere Programme,
Schriftarten für verschiedene Zeichen und dergleichen enthalten
und kann die Form eines magnetischen oder optischen Platten
laufwerks haben. Es ist klar, daß die in dem Massenspeicher 104
gespeicherten Daten in bestimmten Fällen in üblicher Weise in
den Rechnern 100 als Teil des Speichers 103 integriert werden
können.
Außerdem sind drei typische Computeranzeigegeräte darge
stellt, ein Anzeigebildschirm 108, ein Plotter 109 und ein
Laserdrucker 110. Jedes Anzeigegerät kann zum Anzeigen von
Bildern oder Dokumenten oder anderen von dem Computer 100
verwendeten Daten eingesetzt werden. Ein Cursor-Steuergerät
106, beispielsweise eine Maus, ein Trackball oder ein Stift
sind auch mit der I/O-Schaltung 101 gekoppelt. Andere geeignete
Zeigergeräte können verwendet werden.
Das bevorzugte Ausführungsbeispiel der vorliegenden Erfin
dung ist dafür vorgesehen, in einem Mikroprozessor ausgeführt
zu werden, der den Instruktionssatz des bekannten Intel-Archi
tektur-Mikroprozessors ausführt. Die Erfindung kann jedoch in
jedem Mikroprozessor implementiert werden, der eine Mikroar
chitektur aufweist, in der sich mehrere Funktionseinheiten
einen gemeinsamen Rückschreibpfad teilen und die von der
Zugriffskonkurrenz mehrerer Funktionseinheiten betroffen sein
kann, die gleichzeitig über den gemeinsamen Rückschreibpfad
zurückschreiben müssen.
Der erfindungsgemäße Mikroprozessor dekodiert vor dem Aus
führen der Intel-Architektur-Mikroprozessorinstruktionen diese
in eine einfachere, stilisierte Sequenz von "Mikrobefehlen".
Die Mikrobefehle werden dann analysiert und ihr Ablauf wird
erneut geplant entsprechend den aufgelösten Abhängigkeiten,
wobei die Außer-der-Reihe-Ausführung implementiert wird. Die
unten gezeigte Sequenz zeigt das Abbilden von sechs Instruktio
nen des Dhrystone-Testprogramms in ihre Mikrobefehle ("Gn"
heißt allgemeines Register n (general register)):
Intel-Architektur-Instruktionen | |
Mikrobefehle | |
000014e8: PUSHw BP <TOS fbfffc3c< | |
STw IN (G5, G4) OUT (Memfbfffc3c) | |
SUB IN (SPO, CO) OUT (SPO) | |
000014e9: MOVw EA, R ESP EBP | MVw IN (G4) OUT (G5) |
000014eb: LEAVE <TOS fbfffc3c< | ADD IN (G5, CO) OUT (G4) |
LDw IN (G5, Memfbfffc3c) OUT (G5) | |
000014ec: RETn | LDw IN (G4, Memfbfffc40) OUT (TO) |
ADD IN (SPO, CO) OUT (SPO) | |
JMP IN (TO)OUT() | |
00001625: XORw EA, R EDI EDI | XOR IN (G7, G7) OUT (G7) |
00001625: ADDw Ib, EA ESP <IMM 18< | ADD IN (G4) OUT (G4, flags 0) |
Wie zu sehen ist, wird die PUSH-Instruktion des BP-Regi
sters in zwei Mikrobefehle konvertiert. Der erste Mikrobefehl
führt das Speichern des Registers aus und der zweite paßt den
Stapelspeicherzeiger an. Diese beiden Mikrobefehle hängen nicht
voneinander ab. Der der PUSH-Instruktion entsprechende
"Mikrobefehl" wurde explizit geschrieben, um, wo möglich, eine
maximale Parallelität zu ermöglichen. Wie zu sehen ist, werden
einige komplexe Instruktionen in mehrere Mikrobefehle über
setzt, die untereinander einen Bezug haben können, oder nicht,
und einfache Instruktionen (wie beispielsweise XOR oder ADD)
werden direkt in einen einzigen Mikrobefehl abgebildet.
In Fig. 2 ist ein Teil des die Erfindung implementierenden
Mikroprozessors dargestellt. Bei dem bevorzugten Ausfüh
rungsbeispiel implementiert der Mikroprozessor die Außer-der-
Reihe-Ausführung. Der in Fig. 2 dargestellte Teil des Mikro
prozessors kann als der außer der Reihe ausführende Kern des
Mikroprozessors betrachtet werden. Das erste Element des in
Fig. 2 dargestellten Kerns ist die Reservierungsstation 20. Die
Reservierungsstation ist ein, den Funktionseinheiten vorge
schalteter Puffer, der die Mikrobefehle hält, die zur Ausfüh
rung auf benötigte Ressourcen warten. Diese benötigten Ressour
cen enthalten Quelldatenoperanden (die vorangegangene Mikro
befehle möglicherweise noch nicht erzeugt haben) und eine zum
Ausführen des Mikrobefehls verfügbare Funktionseinheit.
Die Reservierungsstation führt verschiedene Funktionen
aus. Sie dient als Puffer für Instruktionen und für bereits
verfügbare Quelldaten. Die Quelldaten können bereits in der
Reservierungsstation gespeichert sein und auf eine entspre
chende Instruktion warten. In anderen Fällen hält die Reservie
rungsstation dekodierte Instruktionen und "überwacht" "auf der
Suche" nach Quelldaten, die sie für ihre Mikrobefehle benötigt,
alle Ergebnis/Rückschreib-Busse von allen anderen Ausführungs
einheits-Schnittstellen. Wenn die gesuchten Daten auf dem
Ergebnisbus 120 ankommen, greift die Reservierungsstation diese
und schreibt diese in das geeignete Quelldatenfeld.
Sobald alle Quelloperanden für einen Mikrobefehl in der
Reservierungsstation sind, bestimmt die Reservierungsstation,
wann eine geeignete Ausführungseinheit verfügbar ist, und plant
den mit bereitgestellten Daten versehenen Mikrobefehl zur
Abfertigung zu einer verfügbaren Ausführungseinheit ein. Die
Reservierungsstation 20 der Fig. 2 ist mit fünf Abfertigungs-
Ports dargestellt. In erster Linie werden bei dem dargestellten
Ausführungsbeispiel Mikrobefehle über entweder den Abferti
gungs-Port 0 oder den Abfertigungs-Port 1 abgefertigt.
Bei dem bevorzugten Ausführungsbeispiel sind fünf Ausfüh
rungseinheiten mit dem Abfertigungs-Port 0 der Reservierungs
station 20 gekoppelt. Das sind die Gleitkommaadditionseinheit
(Fadd) 31, die Gleitkomma- und Integer-Multiplikationseinheit
(I/F Mult) 32, die Gleitkommadivisionseinheit (Fdiv/Idiv) 33,
die Integer-Ausführungseinheit (IEU[0]) 34 und eine fest
verdrahtete Logikeinheit (Wire) 35. Der komplexe Instruktions
satz der Intel-Mikroprozessorarchitektur wird, wie bereits be
schrieben wurde, auf einen einfacheren Mikrobefehlsstrom redu
ziert. Diese Mikrobefehle werden von den verschiedenen Ausfüh
rungseinheiten abgearbeitet, wenn sie mit bereitgestellten
Daten versehen sind. Viele Anwendungsprogramme verwenden die
Integer-Ausführungseinheit häufig. Die Integer-Ausführungsein
heit 34 ist so konzipiert, daß sie in der Lage ist, Mikrobe
fehle mit bereitgestellten Daten in einem Taktzyklus zu verar
beiten. Sie wird deshalb als eine 1-Zyklus-Funktionseinheit
bezeichnet. Die Integer-Ausführungseinheit 34 empfängt eine
Instruktionscodesequenz und Quelloperandendaten mit einer
Breite von 32 Bits pro Operand. Die Gleitkomma-Ausführungs
einheiten 31, 32 und 33 führen kompliziertere Tasks aus, wenn
sie Mikrobefehle mit bereitgestellten Daten empfangen. Diese
Funktionseinheiten empfangen Quelldatenoperanden mit einer
Breite von 86 Bits.
Bei dem bevorzugten Ausführungsbeispiel erfordert eine
Gleitkommaadditionsinstruktion drei Taktzyklen, eine Integer-
Multiplikationsinstruktion vier Taktzyklen und eine Gleitkomma
multiplikationsinstruktion fünf Taktzyklen zur Ausführung.
Gleitkommadivisionen und Quadratwurzeln, die beide von der
Gleitkommadivisionseinheit 33 ausgeführt werden, haben in
Abhängigkeit von der für ihr Ergebnis benötigten Genauigkeit
Latenzzeiten variabler Länge. Die festverdrahtete Logikeinheit
35 ist eine Hybrid-Ausführungseinheit, die in dem bevorzugten
Ausführungsbeispiel für verschiedene "Catch-All" -Instruktionen
implementiert ist. Sie ähnelt einer Gleitkommaeinheit dadurch,
daß der Eingangsstrom 86-Bit-Operanden enthält, aber sie ähnelt
der Integer-Ausführungseinheit mehr darin, daß sie ihre
Operationen in einem einzigen Taktzyklus ausführt.
Der Abfertigungs-Port 1 der Reservierungsstation 20 ist
auch mit zwei Ausführungseinheiten gekoppelt, und zwar einer
Integer-Ausführungseinheit (IEU[1]) 36 und einer Sprung-Einheit
(Jump) 37. Die Integer-Ausführungseinheit 36 kann identisch zu
der Ausführungseinheit 34 sein, oder sie kann zusätzliche
und/oder unterschiedliche Funktionen aufweisen. Zwei Integer-
Ausführungseinheiten sind aufgrund des zumeist üblichen hohen
Anteils der Integer-Mikrobefehle vorgesehen, wodurch die
Leistung des gesamten Systems verbessert wird. Natürlich können
in alternativen Architekturen zusätzliche Integer-
Ausführungseinheiten vorgesehen werden.
Nachdem eine Ausführungseinheit einen Mikrobefehl
ausgeführt hat, wird das Ergebnis über einen Rückschreibbus 120
zu dem Umordnungspuffer (ROB - reorder buffer) 40 gesendet und
zurück zu der Reservierungsstation 20. Der Umordnungspuffer 40
dient als die Stelle, an der die Ergebnisse der außer der Reihe
ausgeführten Mikrobefehle derart gesammelt werden, daß sie
später in der richtigen Von-Neumann-Programmreihenfolge in dem
Maschinenstatus festgeschrieben (committed) werden können. Auf
diese Weise reassembliert der außer der Reihe aus führende Kern
den Instruktionsstrom in dem Umordnungspuffer in dessen
ursprüngliche Programmreihenfolge. Zur gleichen Zeit, zu der
die Ausführungseinheiten zu dem Umordnungspuffer 40
zurückschreiben, schreiben sie zu der Reservierungsstation 20
zurück, da das Ergebnis eines Befehls einer Ausführungseinheit
einen Quelloperanden zur Verfügung stellen kann, der für die
Ausführung eines in der Reservierungsstation wartenden anderen
Mikrobefehls benötigt wird.
Wie Fig. 2 zeigt, verwenden die fünf Ausführungseinheiten
von dem Abfertigungs-Port 0 alle denselben Rückschreibpfad 120
zu dem Umordnungspuffer und zu der Reservierungsstation 20. Das
ist der Grund, weshalb bestimmte Konflikte entstehen können,
und es ist der Ausgangspunkt für die vorliegende Erfindung. Ein
Konflikt entsteht, wenn beispielsweise eine Integer-
Multiplikationsinstruktion und eine
Gleitkommaadditionsinstruktion bei aufeinanderfolgenden
Taktzyklen von der Reservierungsstation ausgegeben werden. Da
die Integer-Multiplikationseinheit mit einer Vier-Zyklus-
Pipeline ausführt und die Gleitkommaadditionseinheit eine Drei-
Zyklus-Pipeline aufweist, führen nacheinander an diese beiden
Einheiten ausgegebene Instruktionen zu einer Situation, in der
beide Einheiten dem Rückschreibbus 120 gleichzeitig
Ergebnisdaten zur Verfügung stellen wollen. Dies darf nicht
geschehen. Wenn eine Integer-Instruktion der Integer-
Ausführungseinheit 34 zwei Takte nach der Abfertigung einer
Gleitkomma-Instruktion oder drei Takte nach einer Integer-
Multiplikationsinstruktion abgefertigt worden ist, werden die
Integer-Ausführungseinheit und die Multiplikationseinheit in
ähnlicher Weise in dem gleichen Taktzyklus zurückschreiben
müssen. Das darf ebenfalls nicht geschehen.
Fig. 3 zeigt eine detailliertere Ansicht von zwei
Ausführungseinheiten, die gekoppelt sind, um zu dem
Umordnungspuffer 40 und der Reservierungsstation 20 über den
Rückschreibbus 120 zurückzuschreiben. Die Gleitkomma-
Additionseinheit 31 und die Multiplikationseinheit 32
empfangen beispielsweise Mikrobefehle mit bereitgestellten
Daten von der Reservierungsstation. Die
Gleitkommaadditionseinheit 31 weist eine Drei-Stufen-
Ausführungspipeline auf. Daher kann sie mit jedem Taktzyklus
einen Mikrobefehl empfangen und ein Ergebnis zur Verfügung
stellen, obwohl sie drei Taktzyklen zur Beendigung eines
Mikrobefehls benötigt. Die drei Stufen der Pipeline sind in
Fig. 3 dargestellt mit einem Funktionsschaltungsblock 41 als
erste Stufe, einem Funktionsschaltungsblock 42 als zweite Stufe
und einem Funktionsschaltungsblock 43 als dritte Stufe. Vor
jeder Stufe der Ausführungseinheits-Pipeline sind Latch-
Schaltungen oder Register zum Puffern des Datenstroms in jeder
Funktionsstufe vorgesehen. Diese sind als Latch-Schaltungen 44,
45 bzw. 46 dargestellt, die der ersten, zweiten und dritten
Pipelinestufe der Gleitkommaadditionseinheit vorgeschaltet
sind.
In ähnlicher Weise empfängt der Integer-Teil der
Multiplikationsfunktionseinheit 32 seine Mikrobefehle von der
Reservierungsstation. Er weist allerdings eine
Ausführungspipeline mit vier Stufen auf, nämlich einer ersten
Stufe 47, einer zweiten Stufe 49, einer dritten Stufe 50 und
einer vierten Stufe 51. Jeder dieser Stufen sind Latch-
Schaltungen oder Puffer 52, 53, 55 bzw. 56 vorgeschaltet.
Wenn auf eine abgefertigte Integer-
Multiplikationsinstruktion einen Takt später eine abgefertigte
Gleitkommaadditionsinstruktion folgt, sind beide
Funktionseinheiten, wie oben beschrieben, gleichzeitig bereit,
um Ergebnisdaten über den gleichen Rückschreibbus 120
zurückzuschreiben. Eine Zugriffskonkurrenz liegt vor. Um dies
zu vermeiden, wird die Pipeline der Gleitkommaadditions-
Funktionseinheit 31 gegebenenfalls um einen Taktzyklus
erweitert. Eine vierte Latch-Schaltung oder ein Pipeline-
Erweiterungspuffer 60 empfängt das Ausgangssignal von der
dritten Pipelinestufe 43 der Einheit. Das Puffern des
Ergebnisses der Funktionseinheit über einen vierten Puffer
verzögert die Ausgabe der Einheit um einen Taktzyklus. Wenn
eine Gleitkommaadditionsinstruktion einen Taktzyklus nach einer
Gleitkommamultiplikationsinstruktion abgefertigt worden ist,
ist es erforderlich, das Ergebnis einen Taktzyklus nach dem
Ergebnis der Gleitkommamultiplikationseinheit
zurückzuschreiben, indem das Pipeline-Erweiterungsregister
verwendet wird. Alternativ zu dem Pipeline-Erweiterungspuffer
60 können andere 1-Zyklus-Puffertechniken implementiert werden,
beispielsweise eine 1-Zyklus-Verzögerungsleitung.
Zur Steuerung der Pipelinelänge der
Gleitkommaadditionseinheit 31 ist eine Multiplexerschaltung 61
vorgesehen. Die Multiplexerschaltung 61 empfängt als
Eingangssignale ein Ergebnis direkt von der dritten
Pipelinestufe 43 der Gleitkommaadditionseinheit und ein von dem
vorhergehenden Taktzyklus gepuffertes Ergebnis von dem
Pipeline-Erweiterungspuffer 60. Der Multiplexer 61 wird von
einer Steuerlogik 62 gesteuert, die bestimmt, wenn die
Pipelinelänge der Gleitkommaadditionseinheit erweitert werden
soll. Wenn die Steuerlogik 62 bestimmt, daß ein
Rückschreibkonflikt vorliegen wird, instruiert sie den
Multiplexer 61, daß durch den Pipelineerweiterungspuffer 60
laufende Signal als das Signal auszuwählen, das von der
Funktionseinheit zurückgeschrieben wird. Wenn kein
Rückschreibkonflikt vorliegt und kein Rückschreibergebnis in
dem Erweiterungspuffer 60 anhängig ist, instruiert die
Steuerlogik den Multiplexer 61, den Ausgang direkt von der
dritten Pipelinestufe 43 der Gleitkommaadditionseinheit
auszuwählen.
Bei der Bestimmung, ob die Gleitkommaadditionseinheit die
Pipelinelänge der Funktionseinheit erweitern soll, mißt die
Steuerlogik 62 die auf den verschiedenen Pipelinestufen der
Gleitkommaadditions- und Integer-Multiplikations-
Funktionseinheiten auftretende Aktivität. Die Steuerlogik 62
kann eine Vergleichsschaltung implementieren, die bestimmt, daß
es einen Rückschreibkonflikt gibt und daß die
Gleitkommaadditionseinheit ihre Pipelinelänge um einen
Taktzyklus erweitern muß, wenn eine Multiplikationsinstruktion
in der Multiplikations-Pipelinestufe 4 zu der gleichen Zeit
ist, wie eine Gleitkommaadditionseinheit in der dritten
Pipelinestufe dieser Funktionseinheit. Andere Vergleiche können
durchgeführt werden, wenn der Vergleich so konzipiert ist, daß
er anzeigt, daß ein Rückschreibkonflikt vorhanden sein wird.
Der Fachmann ist ohne übermäßiges Herumexperimentieren in der
Lage, die Steuerlogik 62 derart zu implementieren, daß sie das
Vorhandensein eines Rückschreibkonfliktes feststellen kann.
Wenn nach einem vorangegangenen Rückschreibkonflikt kein
Rückschreibkonflikt mehr vorliegt, setzt die Steuerlogik 62 der
Gleitkommaadditionseinheit 31 die Länge der
Gleitkommaadditionspipeline auf drei Taktzyklen zurück. Wenn in
den Pufferbauelementen Gültig-Bits implementiert sind, dann
setzt der Pipelineerweiterungspuffer 60 sein Gültig-Bit zurück,
womit eine 3-Taktzyklus-Pipeline angezeigt wird.
Die obige Beschreibung der Verlängerung der Pipeline einer
Funktionseinheit betraf den Fall eines Rückschreibkonfliktes,
in dem zwei Funktionseinheiten eine Pipelinelängendifferenz von
einer Pipelinestufen haben. Selbstverständlich können zwei
Funktionseinheiten auch eine Pipelinelängendifferenz von mehr
als einer Stufe haben. Zur optimalen Implementierung der
Erfindung in solchen Fällen muß der Pipelineerweiterungspuffer
60 eine Puffermöglichkeit für Einträge mit einer Tiefe von N
bieten, wobei N die Differenz der Pipelinestufen, der
kollidierenden Funktionseinheiten ist.
Ein weiterer Aspekt der Erfindung wird unter
gleichzeitiger Bezugnahme auf die Fig. 2, 3 und 4
beschrieben. Andere Rückschreibkonflikte können im Zusammenhang
mit denjenigen Ausführungseinheiten entstehen, die ihre
Eingangssignale von dem Abfertigungs-Port 0 der
Reservierungsstation 20 empfangen. Es gibt zwei 1-Zyklus-
Ausführungseinheiten, die Integer-Ausführungseinheit 34 und die
festverdrahtete Logikeinheit 35 (Fig. 2). Wenn ein Mikrobefehl
zu einer dieser Ausführungseinheiten abgefertigt wird und sich
eine Gleitkommaeinheit in der letzten Stufe ihrer Pipeline
befindet, müssen sowohl die 1-Zyklus-Einheit als auch die
Gleitkommaeinheit ihre Ergebnisdaten gleichzeitig
zurückschreiben. Deshalb muß die Reservierungsstation 20 daran
gehindert werden, 1-Zyklus-Mikrobefehle abzufertigen, bevor
eine Gleitkommaeinheit ihre Ergebnisdaten zurückschreiben will.
Die Gleitkommaeinheiten sind deshalb mit einem Signalpfad zu
der Reservierungsstation 20 versehen, um zu melden, daß
bestimmte Befehlsarten für einen Taktzyklus nicht abgefertigt
werden sollen. Die Logik in der Reservierungsstation empfängt
diese Signale und berücksichtigt sie bei der Ausführung ihres
Einplan-Algorithmus. Da die Reservierungsstation bei dem
bevorzugten Ausführungsbeispiel eine 2-Takt-Zyklus-Pipeline zum
Einplanen der Mikrobefehle benötigt, muß die
Reservierungsstation das Unterdrückungssignal wenigstens zwei
Taktzyklen vor der Abfertigung von irgendwelchen zu
verhindernden Mikrobefehlen empfangen.
Die erste Stufe 41 der Gleitkommaadditions-
Funktionseinheit 31 meldet beim Empfang einer
Gleitkommaadditionsinstruktion der Reservierungsstation, daß
diese keine 1-Zyklus-Mikrobefehle ausgeben soll. Das hindert
die Reservierungsstation daran, zwei Zyklen später einen 1-
Zyklus-Mikrobefehl entweder zu der Integer-Ausführungseinheit
34 oder zu der festverdrahteten Logikeinheit 35 auszugeben, die
dann versuchen würden, Ergebnisdaten zu der gleichen Zeit
zurückzuschreiben, wenn das Gleitkommaadditionsergebnis
zurückgeschrieben wird. Ebenso meldet die zweite Pipelinestufe
49 der Multiplikations-Funktionseinheit 32 der
Reservierungsstation 20, daß sie zwei Taktzyklen später keine
1-Zyklus-Mikrooperationen ausgeben sollen, die zu dem gleichen
Rückschreibkonflikt mit dieser Einheit führen würden.
Im folgenden wird eine weitere Gleitkommaeinheit der von
dem Abfertigungs-Port 0 Mikrobefehle empfangenden Gruppe
berücksichtigt. Die Gleitkommadivisionseinheit führt sowohl
Gleitkommadivisionen als auch Quadratwurzelfunktionen aus. Die
Funktionseinheit bei dem bevorzugten Ausführungsbeispiel
arbeitet nicht mit Pipelineverarbeitung. Gleitkommadivisionen
und Quadratwurzeln können sehr lange Latenzzeiten bis zu 60
Taktzyklen haben. Während ein Befehl darin ausgeführt wird,
können keine anderen Mikrobefehle zu dieser Funktionseinheit 33
abgefertigt werden. Entsprechend meldet die
Gleitkommadivisionseinheit beim Empfang eines Mikrobefehls der
Reservierungsstation 20, daß sie die Abfertigung von
nachfolgenden Mikrobefehlen zu dieser verhindern soll, bis die
Gleitkommadivisionseinheit 33 das Rückschreiben ihres
Ergebnisses ausgeführt hat. Alternativ kann die
Reservierungsstationslogik so konzipiert sein, daß sie
selbsthemmende Back-to-back-Divisionen verhindert. Außerdem ist
die Gleitkommadivisionseinheit in der Lage, die Anzahl der
Taktzyklen zu bestimmen, die sie zur Ausführung eines
empfangenen Mikrobefehls benötigt. Mit dieser Information
meldet die Gleitkommadivisionseinheit 33 drei Taktzyklen vor
dem Rückschreiben, daß keine 1-Zyklus-Mikrobefehle von der
Reservierungsstation ausgegeben werden sollen. Ebenso meldet
die Gleitkommadivisionseinheit 33 5, 6 und 7 Taktzyklen vor dem
Rückschreiben, daß keine 3-Zyklus-, 4- bzw. 5-Zyklus-
Mikrobefehle von der Reservierungsstation 20 abgefertigt werden
sollen. Wenn die Reservierungsstation nur daran gehindert wird,
eine Klasse von Mikrobefehlen abzufertigen (d. h. eine 3-Zyklus-
Gleitkommaaddition) können andere Mikrobefehle weiter
abgefertigt werden (d. h. 1-Zyklus-Befehle oder längere
Multiplikationsbefehle).
Die Implementierung sowohl der Pipelineverlängerung der
Gleitkommaadditionseinheit als auch des Hinderns der
Reservierungsstation daran, bestimmte kollidierende
Mikrobefehle auszugeben, behebt das potentielle Problem eines
Rückschreibkonfliktes von Ausführungseinheiten, die sich einen
gemeinsamen Rückschreibpfad teilen. Das bevorzugte
Ausführungsbeispiel wurde als in einem außer der Reihe
ausführenden Mikroprozessor implementiert beschrieben. Die
vorliegende Erfindung kann jedoch in jedem Prozessor
implementiert werden, in dem die oben beschriebenen
Rückschreibkonflikte existieren.
Claims (23)
1. Einrichtung zum Verlängern einer Pipeline einer ersten
Ausführungseinheit (31), die sich mit einer zweiten
Ausführungseinheit (32) einen Rückschreibpfad (120) teilt, wobei
die erste Ausführungseinheit wenigstens eine Pipelinestufe (43)
aufweist, und wobei die zweite Ausführungseinheit eine Pipeline
mit wenigstens einer Stufe mehr als die erste
Ausführungseinheit aufweist,
gekennzeichnet durch
eine mit der letzten Pipelinestufe (43) der ersten Ausführungseinheit (31) gekoppelte Puffereinrichtung (60) zum Verzögern des Rückschreibens eines Ergebnisses der ersten Ausführungseinheit;
eine mit der Puffereinrichtung (60) und der letzten Pipelinestufe (43) der ersten Ausführungseinheit (31) gekoppelte Multiplexeinrichtung (61), die ein erstes Eingangssignal von der Puffereinrichtung und ein zweites Eingangssignal von der letzten Pipelinestufe der ersten Ausführungseinheit empfängt und die ein Ausgangssignal an den Rückschreibpfad (120) anlegt; und
eine mit der ersten und der zweiten Ausführungseinheit (31, 32) gekoppelte Rückschreibkonflikt-Erfassungseinrichtung zum Erfassen, ob die Ausführungseinheiten einem Rückschreibkonflikt begegnen werden, wobei die Rückschreibkonflikt- Erfassungseinrichtung der Multiplexeinrichtung (61) ein Steuersignal zum Auswählen des ersten oder des zweiten Eingangssignals als das an den Rückschreibpfad anzulegende Ausgangssignal zur Verfügung stellt.
eine mit der letzten Pipelinestufe (43) der ersten Ausführungseinheit (31) gekoppelte Puffereinrichtung (60) zum Verzögern des Rückschreibens eines Ergebnisses der ersten Ausführungseinheit;
eine mit der Puffereinrichtung (60) und der letzten Pipelinestufe (43) der ersten Ausführungseinheit (31) gekoppelte Multiplexeinrichtung (61), die ein erstes Eingangssignal von der Puffereinrichtung und ein zweites Eingangssignal von der letzten Pipelinestufe der ersten Ausführungseinheit empfängt und die ein Ausgangssignal an den Rückschreibpfad (120) anlegt; und
eine mit der ersten und der zweiten Ausführungseinheit (31, 32) gekoppelte Rückschreibkonflikt-Erfassungseinrichtung zum Erfassen, ob die Ausführungseinheiten einem Rückschreibkonflikt begegnen werden, wobei die Rückschreibkonflikt- Erfassungseinrichtung der Multiplexeinrichtung (61) ein Steuersignal zum Auswählen des ersten oder des zweiten Eingangssignals als das an den Rückschreibpfad anzulegende Ausgangssignal zur Verfügung stellt.
2. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß
die Puffereinrichtung (60) ein das Ausgangssignal der letzten
Pipelinestufe der ersten Ausführungseinheit (31) empfangendes
Register aufweist.
3. Einrichtung nach Anspruch 2, dadurch gekennzeichnet, daß
die Multiplexeinrichtung (61) eine Multiplexerlogik aufweist,
die als Eingangssignale den Inhalt des Registers und das
Ausgangssignal der letzten Pipelinestufe (43) der ersten
Ausführungseinheit (31) empfängt.
4. Einrichtung nach Anspruch 3, dadurch gekennzeichnet, daß
die Rückschreibkonflikt-Erfassungseinrichtung (62) eine mit der
ersten und der zweiten Ausführungseinheit (31, 32) gekoppelte
Vergleichslogik zum Vergleichen der Pipeline-Aktivität der
Ausführungseinheiten aufweist, um festzustellen, ob die
Ausführungseinheiten gleichzeitig zu dem Rückschreibpfad (120)
schreiben werden, wobei die Vergleichslogik der
Multiplexerlogik zur Vermeidung eines erfaßten
Rückschreibkonfliktes ein das Eingangssignal von dem Register
auswählendes Steuersignal zur Verfügung stellt.
5. Einrichtung nach einem der Ansprüche 1 bis 4, dadurch
gekennzeichnet,
daß eine eine n-Zyklus-Einplanungs-Pipeline aufweisende Reservierungsstation (20) mit der ersten und der zweiten Ausführungseinheit (31, 32) und mit wenigstens einer dritten Ausführungseinheit (34, 35) gekoppelt ist, wobei die dritte Ausführungseinheit nur einen einzigen Zyklus zur Ausführung abgefertigter Instruktionen benötigt und sich einen gemeinsamen Rückschreibpfad (120) mit der ersten und/oder zweiten Ausführungseinheit (31) teilt und
daß die erste und/oder die zweite Ausführungseinheit (31) eine m-Zyklus-Pipeline sowie eine Einrichtung zum Signalisieren aufweist, wobei die Einrichtung zum Signalisieren der Reservierungsstation signalisiert, daß sie das Einplanen von Instruktionen zur Abfertigung zu der dritten Ausführungseinheit verzögern soll, um einen Rückschreibkonflikt zwischen der ersten bzw. der zweiten und der dritten Ausführungseinheit zu vermeiden.
daß eine eine n-Zyklus-Einplanungs-Pipeline aufweisende Reservierungsstation (20) mit der ersten und der zweiten Ausführungseinheit (31, 32) und mit wenigstens einer dritten Ausführungseinheit (34, 35) gekoppelt ist, wobei die dritte Ausführungseinheit nur einen einzigen Zyklus zur Ausführung abgefertigter Instruktionen benötigt und sich einen gemeinsamen Rückschreibpfad (120) mit der ersten und/oder zweiten Ausführungseinheit (31) teilt und
daß die erste und/oder die zweite Ausführungseinheit (31) eine m-Zyklus-Pipeline sowie eine Einrichtung zum Signalisieren aufweist, wobei die Einrichtung zum Signalisieren der Reservierungsstation signalisiert, daß sie das Einplanen von Instruktionen zur Abfertigung zu der dritten Ausführungseinheit verzögern soll, um einen Rückschreibkonflikt zwischen der ersten bzw. der zweiten und der dritten Ausführungseinheit zu vermeiden.
6. Einrichtung nach Anspruch 5, dadurch gekennzeichnet, daß
die erste bzw. die zweite Ausführungseinheit (31, 32) der
Reservierungsstation an der (m-n)ten Stufe der Pipeline das
Signal sendet.
7. Einrichtung nach einem der Ansprüche 1 bis 6, dadurch
gekennzeichnet, daß die erste Ausführungseinheit (31) eine
Pipelinelänge von N Pipelinestufen und die zweite Ausführungs
einheit (32) eine Pipelinelänge von M Pipelinestufen aufweist,
wobei M größer ist als N und daß die Puffereinrichtung (60)
eine Puffertiefe von M-N aufweist.
8. Einrichtung nach einem der Ansprüche 1 bis 7, dadurch
gekennzeichnet, daß die erste Ausführungseinheit (31) eine
Gleitkommaadditionseinheit mit einer 3-Zyklus-Pipeline und die
zweite Ausführungseinheit (32) eine Integer-Mul
tiplikationseinheit mit einer 4-Zyklus-Pipeline aufweist.
9. Verfahren zum Vermeiden von Rückschreibkonflikten zwi
schen einer ersten und einer zweiten Ausführungseinheit eines
Mikroprozessors, die sich einen gemeinsamen Rückschreibpfad
teilen, wobei die erste Ausführungseinheit wenigstens eine
Pipelinestufe und die zweite Ausführungseinheit eine Pipeline
mit wenigstens einer Stufe mehr als die Pipeline der ersten
Ausführungseinheit aufweist,
dadurch gekennzeichnet,
daß das Ausgangssignal der ersten Ausführungseinheit gepuf
fert wird, wenn die erste und die zweite Ausführungseinheit
andernfalls versuchen würden, gleichzeitig zurückzuschreiben.
10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, daß
das Ausgangssignal für einen zusätzlichen Taktzyklus gepuffert
wird.
11. Verfahren nach Anspruch 9 oder 10, dadurch gekennzeich
net,
daß die erste Ausführungseinheit mit einem zusätzlichen Puffer versehen wird, der das Ausgangssignal der ersten Ausfüh rungseinheit verzögert, wobei der zusätzliche Puffer das Aus gangssignal von der letzten Pipelinestufe der ersten Ausfüh rungseinheit empfängt;
daß die Pipelineaktivitäten der ersten und der zweiten Aus führungseinheit verglichen werden, um zu bestimmen, ob beide versuchen, den gemeinsamen Rückschreibpfad gleichzeitig zu verwenden; und
daß das Ausgangssignal der ersten Ausführungseinheit mit Hilfe des zusätzlichen Puffers zwischengespeichert wird, wenn andernfalls ein Rückschreibkonflikt zwischen der ersten und der zweiten Ausführungseinheit auftreten würde.
daß die erste Ausführungseinheit mit einem zusätzlichen Puffer versehen wird, der das Ausgangssignal der ersten Ausfüh rungseinheit verzögert, wobei der zusätzliche Puffer das Aus gangssignal von der letzten Pipelinestufe der ersten Ausfüh rungseinheit empfängt;
daß die Pipelineaktivitäten der ersten und der zweiten Aus führungseinheit verglichen werden, um zu bestimmen, ob beide versuchen, den gemeinsamen Rückschreibpfad gleichzeitig zu verwenden; und
daß das Ausgangssignal der ersten Ausführungseinheit mit Hilfe des zusätzlichen Puffers zwischengespeichert wird, wenn andernfalls ein Rückschreibkonflikt zwischen der ersten und der zweiten Ausführungseinheit auftreten würde.
12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, daß
einem Multiplexer das Ausgangssignal der letzten Pipelinestufe
der ersten Ausführungseinheit zur Verfügung gestellt wird,
daß dem Multiplexer gleichzeitig das im Puffer zwischenge
speicherte Ausgangssignal zur Verfügung gestellt wird; und
daß zur Vermeidung eines Rückschreibkonfliktes das geeig
nete Ausgangssignal von dem Multiplexer ausgewählt wird, um es
über den gemeinsamen Rückschreibpfad zurückzuschreiben.
13. Verfahren nach einem der Ansprüche 9 bis 12, dadurch
gekennzeichnet, daß die erste Ausführungseinheit eine Pipeline
länge von N Pipelinestufen und die zweite Ausführungseinheit
eine Pipelinelänge von M Pipelinestufen aufweist, wobei M
größer ist als N, und daß das Ausgangssignal für (M-N) Pipe
linestufen gepuffert wird.
14. Verfahren nach einem der Ansprüche 9 bis 13, dadurch
gekennzeichnet,
daß die erste und die zweite Ausführungseinheit Instruktio nen von einer eine n-Zyklus-Einplanungs-Pipeline aufweisende Reservierungsstation empfangen, wobei die Reservierungsstation mit einer dritten Ausführungseinheit gekoppelt ist, die nur einen einzigen Taktzyklus zur Ausführung von Instruktionen benötigt und
daß von der ersten eine m-Zyklus-Ausführungs-Pipeline auf weisenden Ausführungseinheit, während der (m-n)ten Stufe ihrer Pipeline der Reservierungsstation gemeldet wird, daß von dieser keine 1-Zyklus-Instruktionen zugeteilt werden soll.
daß die erste und die zweite Ausführungseinheit Instruktio nen von einer eine n-Zyklus-Einplanungs-Pipeline aufweisende Reservierungsstation empfangen, wobei die Reservierungsstation mit einer dritten Ausführungseinheit gekoppelt ist, die nur einen einzigen Taktzyklus zur Ausführung von Instruktionen benötigt und
daß von der ersten eine m-Zyklus-Ausführungs-Pipeline auf weisenden Ausführungseinheit, während der (m-n)ten Stufe ihrer Pipeline der Reservierungsstation gemeldet wird, daß von dieser keine 1-Zyklus-Instruktionen zugeteilt werden soll.
15. Verfahren nach einem der Ansprüche 9 bis 14, wobei der
Mikroprozessor eine vierte Ausführungseinheit aufweist, die mit
der Reservierungsstation und dem gemeinsamen Rückschreibpfad
gekoppelt ist, und keine Pipelineverarbeitung durchführt,
dadurch gekennzeichnet,
daß von der vierten Ausführungseinheit der Reservierungs station signalisiert wird, daß diese keine Instruktionen zu der vierten Ausführungseinheit abfertigen soll, bis die vierte Ausführungseinheit ein Ergebnis über den Rückschreibpfad ge schrieben hat;
daß die Anzahl von Taktzyklen (X) bestimmt wird, die die vierte Ausführungseinheit zur Ausführung einer Instruktion benötigt;
daß von der vierten Ausführungseinheit während des (X-n)ten Ausführungszyklus der Reservierungsstation signalisiert wird,
daß von ihr keine 1-Zyklus-Instruktionen abgefertigt werden sollen; und
daß von der vierten Ausführungseinheit während des (X- (m+n))ten Ausführungszyklus der Reservierungsstation signali siert wirt, daß von ihr keine m-Zyklus-Instruktionen abgefer tigt werden sollen.
daß von der vierten Ausführungseinheit der Reservierungs station signalisiert wird, daß diese keine Instruktionen zu der vierten Ausführungseinheit abfertigen soll, bis die vierte Ausführungseinheit ein Ergebnis über den Rückschreibpfad ge schrieben hat;
daß die Anzahl von Taktzyklen (X) bestimmt wird, die die vierte Ausführungseinheit zur Ausführung einer Instruktion benötigt;
daß von der vierten Ausführungseinheit während des (X-n)ten Ausführungszyklus der Reservierungsstation signalisiert wird,
daß von ihr keine 1-Zyklus-Instruktionen abgefertigt werden sollen; und
daß von der vierten Ausführungseinheit während des (X- (m+n))ten Ausführungszyklus der Reservierungsstation signali siert wirt, daß von ihr keine m-Zyklus-Instruktionen abgefer tigt werden sollen.
16. Computersystem mit einer Eingabe/Ausgabe(I/O)-Einrich
tung als Kommunikationsschnittstelle, einem mit der I/O-Ein
richtung gekoppelten Speicher (104) zum Speichern von Instruk
tionen und Computerdaten, einer mit der I/O-Einrichtung gekop
pelten Dateneingabeeinrichtung (105-107) zur Kommunikation
mit einem Computerbenutzer und einem mit der I/O-Einrichtung
gekoppelten Mikroprozessor (102) zum Ausführen von Befehlen und
zum Verarbeiten von Computerdaten mit einer Einrichtung zum
Verlängern einer Pipeline einer ersten Ausführungseinheit (31),
die sich mit einer zweiten Ausführungseinheit (32) einen
Rückschreibpfad (120) teilt, wobei die erste Ausführungseinheit
wenigstens eine Pipelinestufe (43) aufweist, und wobei die
zweite Ausführungseinheit eine Pipeline mit wenigstens einer
Stufe mehr als die erste Ausführungseinheit aufweist,
gekennzeichnet durch
eine mit der letzten Pipelinestufe (43) der ersten Ausführungseinheit (31) gekoppelte Puffereinrichtung (60) zum Verzögern des Rückschreibens eines Ergebnisses der ersten Ausführungseinheit;
eine mit der Puffereinrichtung (60) und der letzten Pipelinestufe (43) der ersten Ausführungseinheit (31) gekoppelte Multiplexeinrichtung (61), die ein erstes Eingangssignal von der Puffereinrichtung und ein zweites Eingangssignal von der letzten Pipelinestufe der ersten Ausführungseinheit empfängt und die ein Ausgangssignal an den Rückschreibpfad (120) anlegt; und
eine mit der ersten und der zweiten Ausführungseinheit (31, 32) gekoppelte Rückschreibkonflikt-Erfassungseinrichtung zum Erfassen, ob die Ausführungseinheiten einem Rückschreibkonflikt begegnen werden, wobei die Rückschreibkonflikt- Erfassungseinrichtung der Multiplexeinrichtung (61) ein Steuersignal zum Auswählen des ersten oder des zweiten Eingangssignals als das an den Rückschreibpfad anzulegende Ausgangssignal zur Verfügung stellt.
eine mit der letzten Pipelinestufe (43) der ersten Ausführungseinheit (31) gekoppelte Puffereinrichtung (60) zum Verzögern des Rückschreibens eines Ergebnisses der ersten Ausführungseinheit;
eine mit der Puffereinrichtung (60) und der letzten Pipelinestufe (43) der ersten Ausführungseinheit (31) gekoppelte Multiplexeinrichtung (61), die ein erstes Eingangssignal von der Puffereinrichtung und ein zweites Eingangssignal von der letzten Pipelinestufe der ersten Ausführungseinheit empfängt und die ein Ausgangssignal an den Rückschreibpfad (120) anlegt; und
eine mit der ersten und der zweiten Ausführungseinheit (31, 32) gekoppelte Rückschreibkonflikt-Erfassungseinrichtung zum Erfassen, ob die Ausführungseinheiten einem Rückschreibkonflikt begegnen werden, wobei die Rückschreibkonflikt- Erfassungseinrichtung der Multiplexeinrichtung (61) ein Steuersignal zum Auswählen des ersten oder des zweiten Eingangssignals als das an den Rückschreibpfad anzulegende Ausgangssignal zur Verfügung stellt.
17. Computersystem nach Anspruch 16, dadurch gekennzeich
net,
daß eine eine n-Zyklus-Einplanungs-Pipeline aufweisende Reservierungsstation (20) mit der ersten und der zweiten Ausführungseinheit (31, 32) und mit wenigstens einer dritten Ausführungseinheit (34, 35) gekoppelt ist, wobei die dritte Ausführungseinheit nur einen einzigen Zyklus zur Ausführung abgefertigter Instruktionen benötigt und sich einen gemeinsamen Rückschreibpfad (120) mit der ersten und/oder zweiten Ausführungseinheit (31) teilt und
daß die erste und/oder die zweite Ausführungseinheit (31) eine m-Zyklus-Pipeline sowie eine Einrichtung zum Signalisieren aufweist, wobei die Einrichtung zum Signalisieren der Reservierungsstation signalisiert, daß sie das Einplanen von Instruktionen zur Abfertigung zu der dritten Ausführungseinheit verzögern soll, um einen Rückschreibkonflikt zwischen der ersten bzw. der zweiten und der dritten Ausführungseinheit zu vermeiden.
daß eine eine n-Zyklus-Einplanungs-Pipeline aufweisende Reservierungsstation (20) mit der ersten und der zweiten Ausführungseinheit (31, 32) und mit wenigstens einer dritten Ausführungseinheit (34, 35) gekoppelt ist, wobei die dritte Ausführungseinheit nur einen einzigen Zyklus zur Ausführung abgefertigter Instruktionen benötigt und sich einen gemeinsamen Rückschreibpfad (120) mit der ersten und/oder zweiten Ausführungseinheit (31) teilt und
daß die erste und/oder die zweite Ausführungseinheit (31) eine m-Zyklus-Pipeline sowie eine Einrichtung zum Signalisieren aufweist, wobei die Einrichtung zum Signalisieren der Reservierungsstation signalisiert, daß sie das Einplanen von Instruktionen zur Abfertigung zu der dritten Ausführungseinheit verzögern soll, um einen Rückschreibkonflikt zwischen der ersten bzw. der zweiten und der dritten Ausführungseinheit zu vermeiden.
18. Computersystem nach Anspruch 17, dadurch gekennzeich
net, daß die erste bzw. die zweite Ausführungseinheit (31, 32)
der Reservierungsstation an der (m-n)ten Stufe der Pipeline das
Signal sendet.
19. Computersystem nach einem der Ansprüche 16 bis 18, da
durch gekennzeichnet, daß die erste Ausführungseinheit (31)
eine Pipelinelänge von N Pipelinestufen und die zweite Ausfüh
rungseinheit (32) eine Pipelinelänge von M Pipelinestufen
aufweist, wobei M größer ist als N und daß die Puffereinrich
tung (60) eine Puffertiefe von M-N aufweist.
20. Computersystem nach einem der Ansprüche 16 bis 19, da
durch gekennzeichnet, daß die erste Ausführungseinheit (31)
eine Gleitkommaadditionseinheit mit einer 3-Zyklus-Pipeline und
die zweite Ausführungseinheit (32) eine Integer-Mul
tiplikationseinheit mit einer 4-Zyklus-Pipeline aufweist.
21. Mikroprozessor mit einer ersten und einer zweiten mit
Pipelineverarbeitung arbeitenden Ausführungseinheit (31, 32),
die ihre zugehörigen Ergebnisse während eines gemeinsamen
Taktzyklus oder während verschiedener Taktzyklen ausgeben
können,
dadurch gekennzeichnet,
daß mit der ersten und der zweiten Ausführungseinheit Mit
tel gekoppelt sind, die das Ergebnis der ersten Ausführungsein
heit um wenigstens einen Taktzyklus verzögern, wenn die Ergeb
nisse der ersten und der zweiten Ausführungseinheit ansonsten
während des gleichen Taktzyklus ausgegeben würden.
22. Einrichtung für einen Prozessor mit einer ersten und
einer zweiten Ausführungseinheit (31, 32), die mit einer ge
meinsamen Einheit (20) gekoppelt sind, um Instruktionen von
dieser zu empfangen und Ergebnisse zu dieser zurückzuschreiben,
wobei die erste Ausführungseinheit eine letzte Pipelinestufe
(43) aufweist, die ein erstes Ergebnis während eines gegebenen
Pipelinezyklus zur Verfügung stellt, und wobei die zweite
Ausführungseinheit wenigstens eine Pipelinestufe mehr als die
erste Ausführungseinheit aufweist,
dadurch gekennzeichnet,
daß eine zusätzliche Pipelinestufe (60) derart eingebunden ist, daß sie das erste Ergebnis empfangen und als verzögertes Ergebnis während eines nachfolgenden Pipelinezyklus zur Verfügung stellen kann;
daß ein Multiplexer (61) das erste Ergebnis und das verzö gerte Ergebnis empfangen kann, und mit der gemeinsamen Einheit (20) gekoppelt ist; und
daß eine Rückschreibkonflikt-Erfassungslogik (62) mit der ersten und der zweiten Ausführungseinheit und dem Multiplexer gekoppelt ist, um den Multiplexer dazu zu veranlassen, das verzögerte Ergebnis zum Rückschreiben zur gemeinsamen Einheit während des nachfolgenden Pipelinezyklus auszuwählen, wenn in einem bestimmten Pipelinezyklus die letzte Stufe sowohl der ersten als auch der zweiten Ausführungseinheit Ergebnisse ausgeben, und andernfalls das erste Ergebnis während des be stimmten Pipelinezyklus an die gemeinsame Einheit zurückzu schreiben.
daß eine zusätzliche Pipelinestufe (60) derart eingebunden ist, daß sie das erste Ergebnis empfangen und als verzögertes Ergebnis während eines nachfolgenden Pipelinezyklus zur Verfügung stellen kann;
daß ein Multiplexer (61) das erste Ergebnis und das verzö gerte Ergebnis empfangen kann, und mit der gemeinsamen Einheit (20) gekoppelt ist; und
daß eine Rückschreibkonflikt-Erfassungslogik (62) mit der ersten und der zweiten Ausführungseinheit und dem Multiplexer gekoppelt ist, um den Multiplexer dazu zu veranlassen, das verzögerte Ergebnis zum Rückschreiben zur gemeinsamen Einheit während des nachfolgenden Pipelinezyklus auszuwählen, wenn in einem bestimmten Pipelinezyklus die letzte Stufe sowohl der ersten als auch der zweiten Ausführungseinheit Ergebnisse ausgeben, und andernfalls das erste Ergebnis während des be stimmten Pipelinezyklus an die gemeinsame Einheit zurückzu schreiben.
23. Einrichtung aufweisend:
eine Instruktionsausgabeeinheit (20);
eine erste Ausführungseinheit (31), die mit der Instrukti onsausgabeeinheit zur Ausführung von Instruktionen und zum Liefern eines ersten Ergebnisses während einer ersten Zeitperi ode gekoppelt ist; und
eine mit der Instruktionsausgabeeinheit gekoppelte zweite Ausführungseinheit (32) zur Ausführung von Instruktionen, wobei die zweite Ausführungseinheit eine mit der In struktionsausgabeeinheit gekoppelte erste Pipelinestufe (43) zum Liefern eines zweiten Ergebnisses und eine mit der ersten Pipelinestufe (43) gekoppelte zweite Pipelinestufe (60) zur Lieferung des zweiten Ergebnisses als verzögertes Ergebnis während einer zweiten Zeitperiode aufweist,
dadurch gekennzeichnet,
daß die zweite Ausführungseinheit aufweist,
eine mit der ersten Pipelinestufe und der zweiten Ausfüh rungseinheit (32) gekoppelte Rückschreibkonflikt-Erfassungslo gik (62) zur Erfassung, ob das zweite Ergebnis während der ersten Zeitperiode geliefert wird; und
ein mit der ersten und der zweite Pipelinestufe und der Er fassung gekoppelter Multiplexer zum Zurückschreiben des zweiten Ergebnisses zu der Instruktionsausgabeeinheit, wenn das zweite Ergebnis nicht während der ersten Zeitperiode geliefert wird, und andernfalls zum Zurückschreiben des verzögerten Ergebnisses zu der Instruktionsausgabeeinheit während der zweiten Zeitperi ode.
eine Instruktionsausgabeeinheit (20);
eine erste Ausführungseinheit (31), die mit der Instrukti onsausgabeeinheit zur Ausführung von Instruktionen und zum Liefern eines ersten Ergebnisses während einer ersten Zeitperi ode gekoppelt ist; und
eine mit der Instruktionsausgabeeinheit gekoppelte zweite Ausführungseinheit (32) zur Ausführung von Instruktionen, wobei die zweite Ausführungseinheit eine mit der In struktionsausgabeeinheit gekoppelte erste Pipelinestufe (43) zum Liefern eines zweiten Ergebnisses und eine mit der ersten Pipelinestufe (43) gekoppelte zweite Pipelinestufe (60) zur Lieferung des zweiten Ergebnisses als verzögertes Ergebnis während einer zweiten Zeitperiode aufweist,
dadurch gekennzeichnet,
daß die zweite Ausführungseinheit aufweist,
eine mit der ersten Pipelinestufe und der zweiten Ausfüh rungseinheit (32) gekoppelte Rückschreibkonflikt-Erfassungslo gik (62) zur Erfassung, ob das zweite Ergebnis während der ersten Zeitperiode geliefert wird; und
ein mit der ersten und der zweite Pipelinestufe und der Er fassung gekoppelter Multiplexer zum Zurückschreiben des zweiten Ergebnisses zu der Instruktionsausgabeeinheit, wenn das zweite Ergebnis nicht während der ersten Zeitperiode geliefert wird, und andernfalls zum Zurückschreiben des verzögerten Ergebnisses zu der Instruktionsausgabeeinheit während der zweiten Zeitperi ode.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US20294594A | 1994-02-28 | 1994-02-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE19506435A1 true DE19506435A1 (de) | 1995-09-14 |
DE19506435C2 DE19506435C2 (de) | 2000-05-18 |
Family
ID=22751847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19506435A Expired - Lifetime DE19506435C2 (de) | 1994-02-28 | 1995-02-24 | Verfahren und Einrichtung zum Vermeiden von Rückschreibkonflikten zwischen einen gemeinsamen Rückschreibpfad verwendenden Ausführungseinheiten |
Country Status (4)
Country | Link |
---|---|
US (1) | US5604878A (de) |
DE (1) | DE19506435C2 (de) |
GB (1) | GB2287108B (de) |
SG (1) | SG75756A1 (de) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5555432A (en) * | 1994-08-19 | 1996-09-10 | Intel Corporation | Circuit and method for scheduling instructions by predicting future availability of resources required for execution |
US5905881A (en) * | 1995-11-30 | 1999-05-18 | Unisys Corporation | Delayed state writes for an instruction processor |
DE69733444D1 (de) * | 1996-03-29 | 2005-07-14 | Matsushita Electric Ind Co Ltd | Datenprozessor mit variabler Anzahl von Pipelinestufen |
US5996059A (en) * | 1997-07-01 | 1999-11-30 | National Semiconductor Corporation | System for monitoring an execution pipeline utilizing an address pipeline in parallel with the execution pipeline |
GB2382422A (en) * | 2001-11-26 | 2003-05-28 | Infineon Technologies Ag | Switching delay stages into and out of a pipeline to increase or decrease its effective length |
US7039736B2 (en) * | 2003-01-15 | 2006-05-02 | Hewlett-Packard Development Company, L.P. | Systems and methods for accessing bus-mastered system resources |
US7159101B1 (en) * | 2003-05-28 | 2007-01-02 | Mips Technologies, Inc. | System and method to trace high performance multi-issue processors |
JP2007528549A (ja) * | 2004-03-10 | 2007-10-11 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 電子回路 |
US20070162768A1 (en) * | 2004-03-10 | 2007-07-12 | Koninklijke Philips Electronics, N.V. | Electronic circuit |
US7478225B1 (en) * | 2004-06-30 | 2009-01-13 | Sun Microsystems, Inc. | Apparatus and method to support pipelining of differing-latency instructions in a multithreaded processor |
US7339592B2 (en) * | 2004-07-13 | 2008-03-04 | Nvidia Corporation | Simulating multiported memories using lower port count memories |
GB2458487B (en) * | 2008-03-19 | 2011-01-19 | Imagination Tech Ltd | Pipeline processors |
JPWO2010021119A1 (ja) * | 2008-08-21 | 2012-01-26 | パナソニック株式会社 | 命令制御装置 |
JP5491071B2 (ja) * | 2009-05-20 | 2014-05-14 | エヌイーシーコンピュータテクノ株式会社 | 命令融合演算装置および命令融合演算方法 |
KR101711388B1 (ko) * | 2013-01-28 | 2017-03-02 | 삼성전자주식회사 | 파이프라인에서 블럭을 스케줄하는 컴파일 방법 및 장치 |
GB2516864A (en) * | 2013-08-02 | 2015-02-11 | Ibm | Increased instruction issue rate and latency reduction for out-of-order processing by instruction chaining and collision avoidance |
JP6225554B2 (ja) * | 2013-08-14 | 2017-11-08 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US20150261542A1 (en) * | 2014-03-14 | 2015-09-17 | Arm Limited | Data processing apparatus and method for performing data processing operation with a conditional processing step |
US9558002B2 (en) | 2014-09-30 | 2017-01-31 | Imagination Techologies Limited | Variable length execution pipeline |
GB2537523B (en) * | 2014-09-30 | 2017-09-27 | Imagination Tech Ltd | Multimode variable length execution pipeline |
US10846098B2 (en) * | 2018-05-29 | 2020-11-24 | Arm Limited | Execution pipeline adaptation |
US11561798B2 (en) * | 2020-07-30 | 2023-01-24 | International Business Machines Corporation | On-the-fly adjustment of issue-write back latency to avoid write back collisions using a result buffer |
CN112581351A (zh) * | 2020-12-05 | 2021-03-30 | 西安翔腾微电子科技有限公司 | 一种双发射simt染色处理单元写回单元结构及写回通路冲突检测方法 |
US11755331B2 (en) | 2021-07-11 | 2023-09-12 | Apple Inc. | Writeback hazard elimination using a plurality of temporary result-storage elements |
US20240078035A1 (en) * | 2022-09-01 | 2024-03-07 | Arm Limited | Write-back rescheduling |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS56129950A (en) * | 1980-03-07 | 1981-10-12 | Hitachi Ltd | Information processor |
EP0136218A3 (de) * | 1983-08-29 | 1988-04-20 | FAIRCHILD CAMERA & INSTRUMENT CORPORATION | Pipeline-Mehrtorprozessor |
JPH0658631B2 (ja) * | 1983-12-19 | 1994-08-03 | 株式会社日立製作所 | デ−タ処理装置 |
US4875161A (en) * | 1985-07-31 | 1989-10-17 | Unisys Corporation | Scientific processor vector file organization |
US5081575A (en) * | 1987-11-06 | 1992-01-14 | Oryx Corporation | Highly parallel computer architecture employing crossbar switch with selectable pipeline delay |
US5067069A (en) * | 1989-02-03 | 1991-11-19 | Digital Equipment Corporation | Control of multiple functional units with parallel operation in a microcoded execution unit |
US5222223A (en) * | 1989-02-03 | 1993-06-22 | Digital Equipment Corporation | Method and apparatus for ordering and queueing multiple memory requests |
US5073855A (en) * | 1989-06-30 | 1991-12-17 | Bull Hn Information Systems Inc. | Resource conflict detection method and apparatus included in a pipelined processing unit |
US5165038A (en) * | 1989-12-29 | 1992-11-17 | Supercomputer Systems Limited Partnership | Global registers for a multiprocessor system |
US5222240A (en) * | 1990-02-14 | 1993-06-22 | Intel Corporation | Method and apparatus for delaying writing back the results of instructions to a processor |
JPH04367936A (ja) * | 1991-06-17 | 1992-12-21 | Mitsubishi Electric Corp | スーパースカラープロセッサ |
JPH05265746A (ja) * | 1992-02-18 | 1993-10-15 | Nec Corp | マイクロプロセッサ |
-
1994
- 1994-08-17 GB GB9416585A patent/GB2287108B/en not_active Expired - Fee Related
- 1994-08-17 SG SG1996001617A patent/SG75756A1/en unknown
-
1995
- 1995-02-24 DE DE19506435A patent/DE19506435C2/de not_active Expired - Lifetime
- 1995-08-01 US US08/513,679 patent/US5604878A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
GB2287108B (en) | 1998-05-13 |
SG75756A1 (en) | 2000-10-24 |
GB9416585D0 (en) | 1994-10-12 |
GB2287108A (en) | 1995-09-06 |
DE19506435C2 (de) | 2000-05-18 |
US5604878A (en) | 1997-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19506435C2 (de) | Verfahren und Einrichtung zum Vermeiden von Rückschreibkonflikten zwischen einen gemeinsamen Rückschreibpfad verwendenden Ausführungseinheiten | |
DE19506990A1 (de) | Einrichtung zur Datenumleitung in einem Prozessor mit mehreren Ausführungseinheiten | |
DE102014011332B4 (de) | Priorisieren von anweisungen basierend auf typ | |
DE69636861T2 (de) | Mikroprozessor mit Lade-/Speicheroperation zu/von mehreren Registern | |
DE69932066T2 (de) | Mechanismus zur "store-to-load forwarding" | |
DE60115982T2 (de) | Verfahren und Vorrichtung zum Zuordnen funktioneller Einheiten in einem Mehrfachthread-VLIM-Prozessor | |
DE69933088T2 (de) | Vliw-verarbeiter verarbeitet befehle von verschiedenen breiten | |
DE69833008T2 (de) | Prozessor mit instruktionskodierung mittels eines schablonenfeldes | |
DE60010907T2 (de) | Sram-steuerungvorrichtung für parallele prozessorarchitektur mit adressen- und befehlswarteschlange und arbiter | |
DE69737423T2 (de) | Verfahren und gerät zum replizieren von datenspeicherung in einem fortgeschrittenen mikroprozessor | |
EP2140347B1 (de) | Verarbeitung von instructionen mit langer latenzzeit in einem pipeline-basierten prozessor | |
DE60038693T2 (de) | Verfahren und vorrichtung zur ausschaltung eines taktsignals in einem vielfadenprozessor | |
DE69433339T2 (de) | Lade-/Speicherfunktionseinheiten und Datencachespeicher für Mikroprozessoren | |
DE4301417C2 (de) | Computersystem mit Einrichtung zur parallelen Befehlsausführung | |
DE60011797T2 (de) | Ausführung von mehreren fäden in einem parallelprozessor | |
DE69724771T2 (de) | Zentralprozessoreinheit mit x86 und dsp kern und einem dsp funktions-dekoder zum abbilden von x 86-befehlen auf dsp-befehle | |
DE69736105T2 (de) | Hierarchische durchsuchlogik für ungeordnete lade/speicherausführungssteuerung | |
DE102018005216A1 (de) | Prozessoren, Verfahren und Systeme für einen konfigurierbaren, räumlichen Beschleuniger mit Transaktions- und Wiederholungsmerkmalen | |
DE19534752A1 (de) | Verfahren und System zum Liefern einer Unterstützung für eine spekulative Ausführung | |
DE102015002383A1 (de) | Verfahren und Vorrichtung zum Implementieren einer dynamischen Out-of-order-Prozessorpipeline | |
DE69831344T2 (de) | Effiziente verarbeitung von gebündelten sprungbefehlen | |
DE60005860T2 (de) | Ablaufsteuerung zum ausgeben und wiederausgeben von ketten abhängiger befehle | |
DE60131214T2 (de) | Verfahren und Anordnung zur Freilassung von Funktionseinheiten in einem multithreaded VLIW-Prozessor | |
DE102014003799A1 (de) | Systeme und Verfahren zur Übertragungseliminierung mit Bypass-Mehrfachinstanziierungstabelle | |
DE60115976T2 (de) | Rechnersystem und Interruptvorgang |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
R071 | Expiry of right | ||
R071 | Expiry of right |