DE19506435C2 - 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
- DE19506435C2 DE19506435C2 DE19506435A DE19506435A DE19506435C2 DE 19506435 C2 DE19506435 C2 DE 19506435C2 DE 19506435 A DE19506435 A DE 19506435A DE 19506435 A DE19506435 A DE 19506435A DE 19506435 C2 DE19506435 C2 DE 19506435C2
- Authority
- DE
- Germany
- Prior art keywords
- execution unit
- pipeline
- write
- execution
- 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.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 title claims description 16
- 239000000872 buffer Substances 0.000 claims description 37
- 238000012545 processing Methods 0.000 claims description 11
- 230000000694 effects Effects 0.000 claims description 4
- 230000008569 process Effects 0.000 claims description 3
- 230000001934 delay Effects 0.000 claims description 2
- 230000011664 signaling Effects 0.000 claims 5
- 238000007792 addition Methods 0.000 description 27
- 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 3
- 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
- 230000005611 electricity Effects 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
- 238000012549 training Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/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 eine Einrichtung zum
Verlängern einer Pipeline einer ersten Ausführungseinheit, die
sich mit einer zweiten Ausführungseinheit einem Rückschreibpfad
teilt, nach dem Oberbegriff des Patentanspruchs 1, ein Verfah
ren zum Vermeiden von Rückschreibkonflikten nach dem Oberbe
griff des Patentanspruchs 9 bzw. ein Computersystem nach dem
Oberbegriff des Patentanspruchs 16.
Mit fortschreitender Computerentwicklung streben die
Mikroprozessorentwickler nach der Entwicklung von Chips, die
eine höhere Leistung und eine schnellere Verarbeitung aufwei
sen. Die anfänglichen Fortschritte waren im wesentlichen darauf
konzentriert, die Anzahl der Transistoren einer einen einzigen
Mikroprozessor enthaltenden integrierten Schaltung zu erhöhen.
Diese Entwicklung geht bei den heutigen Mikroprozessoren wei
ter, 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 Verarbeitungs
stufe 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ß Instruk
tionen in jedem Taktzyklus beendet werden. Dieser Ein-Zyklus-
Durchsatz eines Pipeline-Mikroprozessors erhöht die Gesamt
leistung 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
Instruktionen werden durch Kombinationen der einfacheren
Instruktionen ausgeführt.
Damit Mikroprozessoren mit Pipelineverarbeitung effizien
ter arbeiten, muß eine Instruktions-Heranholeinheit am Kopf der
Pipeline die Pipeline kontinuierlich mit einem Instruktions
strom versorgen. Jedoch hindern bedingte Verzweigungsinstruk
tionen innerhalb eines Instruktionsstroms eine Instruktions-
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 nach
folgende Instruktionen entsprechend der Verzweigungsvorhersage
heranholen. Die Verzweigungsvorhersage geschieht unter Verwen
dung eines Verzweigungsziel-Puffers, der die Geschichte einer
Verzweigungsinstruktion auf der Basis des Instruktionszeigers
oder der Instruktionsadresse dieser Instruktion speichert.
Jedesmal, wenn eine Verzweigungsinstruktion herangeholt wird,
sagt der Verzweigungszielpuffer unter Verwendung der Verzwei
gungsgeschichte die Zieladresse der Verzweigung vorher. Die
Verwendung der Verzweigungsvorhersage in einer Architektur mit
pipeline-verarbeiteten Instruktionen wird oft als spekulative
Ausführung bezeichnet.
Neben der spekulativen Ausführung sind durch die Implemen
tierung einer Außer-der-Reihe-Abfertigung (out-of-order
dispatch) von Instruktionen zu den Ausführungseinheiten
beträ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 Lei
stungsverstärkung schafft. Ungeordnete Ausführung ist möglich,
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 Aus
führungseinheiten in der Ausführung befinden.
In einem eine Außer-der-Reihe-Ausführung verwendenden Pro
zessor wird die Instruktionsausgabe abgebrochen, wenn es einen
Konflikt bei einer Funktionseinheit gibt oder wenn eine ausge
gebene 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 Tex
ten die Schaffung eines als Reservierungsstation (RS) bekannten
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 Puf
fer ist, und er untersucht gleichzeitig die Instruktionen in
der Reservierungsstation, um diejenigen Instruktionen zu fin
den, die den Ausführungseinheiten zugeteilt werden können (d. h.
Instruktionen, für die Quelloperanden und Ausführungseinheiten
verfügbar sind). Instruktionen mit bereitgestellten Daten wer
den von der Reservierungsstation mit wenig Rücksicht auf ihre
ursprüngliche Programmreihenfolge ausgegeben. Für weitere
Informationen über die Verwendung einer Reservierungsstation
und die Ausführung außer der Reihe sei auf Mike Johnson, Super
scalar Microprocessor Design, Prentice-Hall, Inc., 1991, Kapi
tel 3 und 7 verwiesen.
Ein superskalarer Prozessor mit mehreren Ausführungsein
heiten, denen jeweils eine Rückschreibstufe zugeordnet ist, ist
aus DE 42 07 148 A1 bekannt.
In Mikroprozessoren mit Reservierungsstationen, ein
schließlich superskalaren Prozessoren stellt die Reservierungs
station 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 wer
den, 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 aus 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 bereit sind, ein Ergebnis zurückzuschreiben. Da
sich die Ausführungseinheiten einem gemeinsamen Rückschreib-
Port teilen, entsteht eine Zugriffskonkurrenz.
Aus dem US-Patent 5,222,240 ist es bekannt, das Rück
schreiben in einer Pipeline zu verzögern. Aus US 5,073,855 A ist
ebenfalls eine Pipeline-Verarbeitungseinheit bekannt.
Es ist Aufgabe der Erfindung, Zugriffskonflikte der Aus
führungseinheiten, die sich einen gemeinsamen Rückschreib-Port
teilen, zu reduzieren.
Diese Aufgabe wird erfindungsgemäß gelöst durch eine Ein
richtung mit den Merkmalen des Anspruchs 1 bzw. ein Computer
system mit den Merkmalen des Anspruchs 16. Verfahrensmäßig wird
diese Aufgabe gelöst durch ein Verfahren mit den Merkmalen des
Anspruchs 9. Außerdem wird die Aufgabe gelöst durch einen
Mikroprozessor mit den Merkmalen des Anspruchs 21.
Die Erfindung geht von der Grundüberlegung aus, daß durch
das Verlängern der Pipeline der von einem Rückschreibkonflikt
betroffenen Funktionseinheiten der Rückschreibkonflikt gelöst
werden kann. Es wird eine Logikschaltung zur Verfügung
gestellt, um die Tiefe von zwei gleichzeitig ausführenden Aus
führungspipelines zu vergleichen, um zu bestimmen, ob ein Kon
flikt entstehen wird. Wenn es sich herausstellt, daß zwei Aus
fü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 Kon
flikte an einem mehreren Funktionseinheiten gemeinsamen Rück
schreib-Port erfassen kann.
Außerdem stellt die Erfindung ein Mittel zur Verfügung, um
eine Reservierungsstation daran zu hindern, Instruktionen zuzu
teilen, 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 Kon
flikten zwischen diesen Ausführungseinheiten verzögern soll.
Beispielsweise wird eine Ausführungseinheit mit einer dreistu
figen Pipeline der Reservierungsstation signalisieren, daß sie
keine 1-Zyklus-Instruktionen abfertigen soll, die gleichzeitig
über einen gemeinsamen Rückschreib-Port zurückgeschrieben wer
den müßten. Ebenfalls sind Ausführungseinheiten, die eine unbe
stimmte Anzahl von Pipelinestufen erfordern, mit einer Einrich
tung ausgerüstet, um der Reservierungsstation zu melden, daß
sie die Abfertigung von Instruktionen an die einen gemeinsamen
Rückschreib-Port verwendenden Ausführungseinheiten eine bekann
te Anzahl von Zyklen im voraus verhindern soll, um Zugriffskon
kurrenzen 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 den 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 implementiert
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 ausfü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 Multiplikationen 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 Steurlogik 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 (21)
1. Einrichtung zum Verlängern einer Pipeline einer ersten
Ausführungseinheit (31), die sich mit einer zweiten Ausfüh
rungseinheit (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ührungsein
heit aufweist,
gekennzeichnet durch
einen mit der letzten Pipelinestufe (43) der ersten Ausfüh rungseinheit (31) gekoppelten Pipeline-Erweiterungspuffer (60) zum Verzögern des Rückschreibens eines Ergebnisses der ersten Ausführungseinheit;
eine mit dem Pipeline-Erweiterungspuffer (60) und der letzten Pipelinestufe (43) der ersten Ausführungseinheit (31) gekoppelte Multiplexerschaltung (61), die ein erstes Eingangs signal von dem Pipeline-Erweiterungspuffer (60) und ein zweites Eingangssignal von der letzten Pipelinestufe (43) der ersten Ausführungseinheit (31) 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 Steuerlogik (62) zum Erfassen, ob die Ausfüh rungseinheiten einem Rückschreibkonflikt begegnen werden, wobei die Steuerlogik (62) der Multiplexerschaltung (61) ein Steuer signal zum Auswählen des ersten oder des zweiten Eingangs signals als das an den Rückschreibpfad anzulegende Ausgangs signal zur Verfügung stellt.
einen mit der letzten Pipelinestufe (43) der ersten Ausfüh rungseinheit (31) gekoppelten Pipeline-Erweiterungspuffer (60) zum Verzögern des Rückschreibens eines Ergebnisses der ersten Ausführungseinheit;
eine mit dem Pipeline-Erweiterungspuffer (60) und der letzten Pipelinestufe (43) der ersten Ausführungseinheit (31) gekoppelte Multiplexerschaltung (61), die ein erstes Eingangs signal von dem Pipeline-Erweiterungspuffer (60) und ein zweites Eingangssignal von der letzten Pipelinestufe (43) der ersten Ausführungseinheit (31) 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 Steuerlogik (62) zum Erfassen, ob die Ausfüh rungseinheiten einem Rückschreibkonflikt begegnen werden, wobei die Steuerlogik (62) der Multiplexerschaltung (61) ein Steuer signal zum Auswählen des ersten oder des zweiten Eingangs signals als das an den Rückschreibpfad anzulegende Ausgangs signal zur Verfügung stellt.
2. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß
der Pipeline-Erweiterungspuffer (60) ein das Ausgangssignal der
letzten Pipelinestufe der ersten Ausführungseinheit (31)
empfangendes Register aufweist.
3. Einrichtung nach Anspruch 2, dadurch gekennzeichnet, daß
die Multiplexerschaltung (61) eine Multiplexerlogik aufweist,
die als Eingangssignale den Inhalt des Registers und das Aus
gangssignal der letzten Pipelinestufe (43) der ersten Ausfüh
rungseinheit (31) empfängt.
4. Einrichtung nach Anspruch 3, dadurch gekennzeichnet, daß
die Steuerlogik (62) eine mit der ersten und der zweiten Aus
führungseinheit (31, 32) gekoppelte Vergleichslogik zum Ver
gleichen der Pipeline-Aktivität der Ausführungseinheiten auf
weist, um festzustellen, ob die Ausführungseinheiten gleich
zeitig zu dem Rückschreibpfad 120 schreiben werden, wobei die
Vergleichslogik der Multiplexerschaltung (61) 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 Aus fü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üh rungseinheit (31, 32) teilt und
daß die erste und/oder die zweite Ausführungseinheit (31, 32) eine m-Zyklus-Pipeline sowie eine Einrichtung zum Signali sieren 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 Aus fü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üh rungseinheit (31, 32) teilt und
daß die erste und/oder die zweite Ausführungseinheit (31, 32) eine m-Zyklus-Pipeline sowie eine Einrichtung zum Signali sieren 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ß der Pipeline-Erweiterungs
puffer (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-Multiplikations
einheit 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 ver wenden; 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 ver wenden; 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 zwischen gespeicherte 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.
daß dem Multiplexer gleichzeitig das im Puffer zwischen gespeicherte 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) Pipeline
stufen gepuffert wird.
14. Verfahren nach einem der Ansprüche 9 bis 13, dadurch
gekennzeichnet,
daß die erste und die zweite Ausführungseinheit Instruk tionen 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 Instruk tionen 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 Aus führungseinheit ein Ergebnis über den Rückschreibpfad geschrie ben 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 wird, 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 Aus führungseinheit ein Ergebnis über den Rückschreibpfad geschrie ben 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 wird, daß von ihr keine m-Zyklus-Instruktionen abgefer tigt werden sollen.
16. Computersystem mit einer Eingabe/Ausgabe(I/O)-Schaltung
(101) als Kommunikationsschnittstelle, einem mit der I/O-Schal
tung (101) gekoppelten Speicher (104) zum Speichern von
Instruktionen und Computerdaten einer mit der I/O-Schaltung
(101) gekoppelten Dateneingabeeinrichtung (105-107) zur Kom
munikation mit einem Computerbenutzer und einem mit der I/O-
Einrichtung gekoppelten Mikroprozessor (CPU, 102) zum Ausführen
von Befehlen und zum Verarbeiten von Computerdaten mit einer
Einrichtung zum Verlängern einer Pipeline einer ersten Ausfüh
rungseinheit (31), die sich mit einer zweiten Ausführungseiheit
(32) einen Rückschreibpfad (120) teilt, wobei die erste Ausfüh
rungseinheit wenigstens eine Pipelinestufe (43) aufweist, und
wobei die zweite Ausführungseinheit eine Pipeline mit wenig
stens einer Stufe mehr als die erste Ausführungseinheit auf
weist,
gekennzeichnet durch
eine mit der letzten Pipelinestufe (43) der ersten Ausfüh rungseinheit (31) gekoppelten Pipeline-Erweiterungspuffer (60) zum Verzögern des Rückschreibens eines Ergebnisses der ersten Ausführungseinheit;
eine mit dem Pipeline-Erweiterungspuffer (60) und der letzten Pipelinestufe (43) der ersten Ausführungseinheit (31) gekoppelten Multiplexerschaltung (61), die ein erstes Eingangs signal von dem Pipeline-Erweiterungspuffer und ein zweites Ein gangssignal von der letzten Pipelinestufe der ersten Ausfüh rungseinheit empfängt und die ein Ausgangssignal an den Rück schreibpfad (120) anlegt; und
eine mit der ersten und der zweiten Ausführungseinheit (31, 32) gekoppelten Steuerlogik (62) zum Erfassen, ob die Ausfüh rungseinheiten einem Rückschreibkonflikt begegnen werden, wobei die Steuerlogik (62) der Multiplexerschaltung (61) ein Steuer signal zum Auswählen des ersten oder des zweiten Eingangs signals als das an den Rückschreibpfad anzulegende Ausgangs signal zur Verfügung stellt.
eine mit der letzten Pipelinestufe (43) der ersten Ausfüh rungseinheit (31) gekoppelten Pipeline-Erweiterungspuffer (60) zum Verzögern des Rückschreibens eines Ergebnisses der ersten Ausführungseinheit;
eine mit dem Pipeline-Erweiterungspuffer (60) und der letzten Pipelinestufe (43) der ersten Ausführungseinheit (31) gekoppelten Multiplexerschaltung (61), die ein erstes Eingangs signal von dem Pipeline-Erweiterungspuffer und ein zweites Ein gangssignal von der letzten Pipelinestufe der ersten Ausfüh rungseinheit empfängt und die ein Ausgangssignal an den Rück schreibpfad (120) anlegt; und
eine mit der ersten und der zweiten Ausführungseinheit (31, 32) gekoppelten Steuerlogik (62) zum Erfassen, ob die Ausfüh rungseinheiten einem Rückschreibkonflikt begegnen werden, wobei die Steuerlogik (62) der Multiplexerschaltung (61) ein Steuer signal zum Auswählen des ersten oder des zweiten Eingangs signals als das an den Rückschreibpfad anzulegende Ausgangs signal 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üh rungseinheit (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 Reser vierungsstation 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üh rungseinheit (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 Reser vierungsstation 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,
dadurch 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 auf
weist, wobei M größer ist als N und daß der Pipeline-Erwei
terungspuffer (60) eine Puffertiefe von M - N aufweist.
20. Computersystem nach einem der Ansprüche 16 bis 19,
dadurch gekennzeichnet, daß die erste Ausführungseinheit (31)
eine Gleitkommaadditionseinheit mit einer 3-Zyklus-Pipeline und
die zweite Ausführungseinheit (32) eine Integer-Multiplika
tionseinheit 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
Taktzyklusses oder während verschiedener Taktzyklen ausgeben
können,
dadurch gekennzeichnet,
daß er eine der mit den Ansprüche 1 bis 8 genannten Ein
richtungen aufweist.
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 DE19506435A1 (de) | 1995-09-14 |
DE19506435C2 true 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 |
EP0798633B1 (de) * | 1996-03-29 | 2005-06-08 | Matsushita Electric Industrial 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 |
DE602005021070D1 (de) * | 2004-03-10 | 2010-06-17 | Nxp Bv | Pipeline-schaltung |
CN100472432C (zh) * | 2004-03-10 | 2009-03-25 | Nxp股份有限公司 | 电子电路 |
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 |
WO2010021119A1 (ja) * | 2008-08-21 | 2010-02-25 | パナソニック株式会社 | 命令制御装置 |
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 |
GB2537523B (en) * | 2014-09-30 | 2017-09-27 | Imagination Tech Ltd | Multimode variable length execution pipeline |
US9558002B2 (en) | 2014-09-30 | 2017-01-31 | Imagination Techologies Limited | 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 |
CN112581351B (zh) * | 2020-12-05 | 2024-08-16 | 西安翔腾微电子科技有限公司 | 一种双发射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 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
DE4207148A1 (de) * | 1991-06-17 | 1992-12-24 | Mitsubishi Electric Corp | Superscalar-prozessor |
US5222240A (en) * | 1990-02-14 | 1993-06-22 | Intel Corporation | Method and apparatus for delaying writing back the results of instructions to a processor |
Family Cites Families (9)
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 |
US5222223A (en) * | 1989-02-03 | 1993-06-22 | Digital Equipment Corporation | Method and apparatus for ordering and queueing multiple memory requests |
US5067069A (en) * | 1989-02-03 | 1991-11-19 | Digital Equipment Corporation | Control of multiple functional units with parallel operation in a microcoded execution unit |
US5165038A (en) * | 1989-12-29 | 1992-11-17 | Supercomputer Systems Limited Partnership | Global registers for a multiprocessor system |
JPH05265746A (ja) * | 1992-02-18 | 1993-10-15 | Nec Corp | マイクロプロセッサ |
-
1994
- 1994-08-17 SG SG1996001617A patent/SG75756A1/en unknown
- 1994-08-17 GB GB9416585A patent/GB2287108B/en not_active Expired - Fee Related
-
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
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US5222240A (en) * | 1990-02-14 | 1993-06-22 | Intel Corporation | Method and apparatus for delaying writing back the results of instructions to a processor |
DE4207148A1 (de) * | 1991-06-17 | 1992-12-24 | Mitsubishi Electric Corp | Superscalar-prozessor |
Also Published As
Publication number | Publication date |
---|---|
GB2287108B (en) | 1998-05-13 |
US5604878A (en) | 1997-02-18 |
DE19506435A1 (de) | 1995-09-14 |
GB2287108A (en) | 1995-09-06 |
GB9416585D0 (en) | 1994-10-12 |
SG75756A1 (en) | 2000-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE19506435C2 (de) | Verfahren und Einrichtung zum Vermeiden von Rückschreibkonflikten zwischen einen gemeinsamen Rückschreibpfad verwendenden Ausführungseinheiten | |
DE69308548T2 (de) | Vorrichtung und verfahren zum befehlsabschluss in einem superskalaren prozessor. | |
DE69719235T2 (de) | Prozessor und Verfahren zur spekulativen Ausführung von bedingten Verzweigungsbefehlen unter Verwendung einer von mehreren Verzweigungsvorhersageverfahren | |
DE102014011332B4 (de) | Priorisieren von anweisungen basierend auf typ | |
DE69311330T2 (de) | Befehlsablauffolgeplanung von einem risc-superskalarprozessor | |
DE69636861T2 (de) | Mikroprozessor mit Lade-/Speicheroperation zu/von mehreren Registern | |
DE69429061T2 (de) | Superskalarmikroprozessoren | |
DE69607760T2 (de) | Ungeordnete lade-/speicher-ausführungssteuerung | |
DE3750306T2 (de) | System zum Gewährleisten der logischen Unversehrtheit von Daten. | |
DE69033398T2 (de) | Rechnerarchitektur mit Mehrfachbefehlsausgabe | |
DE69028138T2 (de) | Mechanismus zur präzisen Behandlung von Ausnahmebedingungen in einem Prozessor mit gepaarten Befehlen | |
DE19506990A1 (de) | Einrichtung zur Datenumleitung in einem Prozessor mit mehreren Ausführungseinheiten | |
DE69032635T2 (de) | Verfahren und Vorrichtung zur Erkennung von Betriebsmittelkonflikten in einer Pipeline-Verarbeitungseinheit | |
DE69904189T2 (de) | Konfigurierter prozessor zur abbildung von logischen registernummern auf physikalische registernummern unter verwendung von virtuellen registernummern | |
DE69033065T2 (de) | Mehrfachbefehlsdecoder | |
DE69612991T2 (de) | System zur bearbeitung von selbstmodifizierendem kode | |
DE60010907T2 (de) | Sram-steuerungvorrichtung für parallele prozessorarchitektur mit adressen- und befehlswarteschlange und arbiter | |
DE60038693T2 (de) | Verfahren und vorrichtung zur ausschaltung eines taktsignals in einem vielfadenprozessor | |
DE69325086T2 (de) | Verfahren und System für spekulative Befehlsausführung | |
DE69209888T2 (de) | Befehlablaufsteuerung für einen Rechner | |
DE69017178T2 (de) | Datenverarbeitungssystem mit Vorrichtung zur Befehlskennzeichnung. | |
DE68927911T2 (de) | Datenverarbeitungssystem | |
DE69737423T2 (de) | Verfahren und gerät zum replizieren von datenspeicherung in einem fortgeschrittenen mikroprozessor | |
DE60115982T2 (de) | Verfahren und Vorrichtung zum Zuordnen funktioneller Einheiten in einem Mehrfachthread-VLIM-Prozessor | |
DE69904083T2 (de) | Anordnung und verfahren zum etikettieren und ungültig-erklären von spekulativ ausgeführten befehlen |
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 |