DE19782105C2 - Prozessorkern und Verfahren zum Unterstützen unterschiedlicher Befehlsheranholeinheiten in einer Pipeline - Google Patents

Prozessorkern und Verfahren zum Unterstützen unterschiedlicher Befehlsheranholeinheiten in einer Pipeline

Info

Publication number
DE19782105C2
DE19782105C2 DE19782105A DE19782105A DE19782105C2 DE 19782105 C2 DE19782105 C2 DE 19782105C2 DE 19782105 A DE19782105 A DE 19782105A DE 19782105 A DE19782105 A DE 19782105A DE 19782105 C2 DE19782105 C2 DE 19782105C2
Authority
DE
Germany
Prior art keywords
pipeline
instruction
bundle
stage
latch
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 - Fee Related
Application number
DE19782105A
Other languages
English (en)
Other versions
DE19782105T1 (de
Inventor
Paul G Meyer
Stephen Strazdus
Dennis O'connor
Thomas Adelmeyer
Jay Heeb
Avery Topps
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Application granted granted Critical
Publication of DE19782105C2 publication Critical patent/DE19782105C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines

Description

Die Erfindung bezieht sich auf einen Prozessorkern mit mehreren Pipelinestufen sowie auf ein Verfahren zur Unter­ stützung unterschiedlicher Befehlsheranholeinheiten ohne ei­ ne Modifikation des Prozessorkerns.
Die Verarbeitung in der Art einer Pipeline ist im Stand der Technik grundsätzlich gut bekannt. Fig. 1 zeigt einen derartigen typischen Pipeline-Prozessor. Der Prozessorkern 1 enthält fünf Pipelinestufen 2-6. Zwischen jeder Stufe be­ findet sich ein (nicht gezeigtes) implizites Latch. Die In­ formation wird von einer Pipelinestufe zur nächsten unter der Steuerung des Pipeline-Sequenzers 7 latch-gespeichert. Die erste Pipelinestufe ist eine Befehlszeigererzeugungsstu­ fe (IP) 2, welche eine Adresse erzeugt, bei welcher der ge­ wünschte Befehl gefunden werden kann. Diese Adresse wird dann zur Befehlsheranholeinheitstufe (IFU) 3 latch-gespei­ chert, welche den Befehl physisch heranholt. Üblicherweise weist die IFU einen eigenen Speicher (on-board memory) ir­ gendeiner Art auf. Dieser eigene Speicher kann in Form eines Befehls-Cache-Speichers vorliegen. Die IFU ist darüber hin­ aus mit der Bussteuereinrichtung 8 gekoppelt, welche es der IFU gestattet, auf den Speicher 10 dann zuzugreifen, wenn der gewünschte Befehl nicht in dem eigenen Speicher gefunden wird.
Sobald der Befehl entweder aus dem eigenen oder einem externen Speicher gewonnen worden ist, wird der Befehl an eine dritte Pipeline-Stufe, die Befehlsdekodiereinheit/Re­ gistersatz-Stufe (ID) 4 latch-gespeichert. Die ID 4 deko­ diert den Befehl und erwirbt irgendwelche erforderlichen Operanden aus einem Registersatz. Wenn jede Pipelinestufe einen einzelnen Zyklus benötigt, erwartet die ID, daß ein Befehl im dritten Zyklus und in jedem nachfolgenden Zyklus eintrifft. Wenn die IFU 3 nicht in der Lage ist, einen Be­ fehl an die ID 4 zu liefern, benachrichtigt sie den Pipe­ line-Sequenzer 7, daß sie angehalten wurde, während sie den erwarteten Befehl erlangt. Der Pipeline-Sequenzer hält dann alle darüber befindliches Stufen an. Sobald der Befehl ge­ liefert und dekodiert ist, werden der Befehl und die Operan­ den zur nächsten Stufe weiter latch-gespeichert, die die Ausführungseinheit 5 zum Ausführen des Befehls darstellt. Die abschließende Pipelinestufe ist die Rückschreibstufe 6, bei welcher die Ergebnisse des Befehls, der in der Ausfüh­ rungseinheit 5 während des vorhergehenden Zyklus ausgeführt wurde, zum Registersatz oder dem Daten-Cache 9 zurückge­ schrieben werden. Der Verzweigungszielpfad 11 gestattet der Ausführungseinheit 5, die IP 2 darüber zu informieren, daß eine Verzweigung aufgetreten ist, und liefert eine Adresse, bei welcher die Ausführung fortgesetzt werden soll. In Erwi­ derung werden die gegenwärtig in der Pipeline sich befinden­ den Informationen, die sich auf Befehle nach der Verzweigung in den Befehlsstrom beziehen, einer Flush-Operation unterzo­ gen. Der Pipeline-Sequenzer 7 behandelt die gemeinsame Steuerung unter den Pipelinestufen und sichert die Synchro­ nisation. Es ist entscheidend, daß der Pipeline-Sequenzer weiß, was in den von ihm gesteuerten Stufen auftritt, so daß die Synchronisation aufrechterhalten werden kann und Neu- Versuche erzeugt werden können, wenn erwartete Daten nicht in irgendeiner bestimmten Stufe empfangen werden.
Im Falle eines Anhaltens (Stall) benachrichtigt die das Anhalten initiierende Stufe den Pipeline-Sequenzer 7, und der Pipeline-Sequenzer 7 hält im gleichen Zyklus sämtliche Einheiten oberhalb dieser Stufe an. Wenn beispielsweise die ID 4 nicht in der Lage ist, das Dekodieren und das Register- Gewinnen in dem zugewiesenen Zyklus abzuschließen, gibt sie einen Haltebefehl an den Pipeline-Sequenzer 7 aus, welcher sofort die IP 2 und die IFU 3 anhält. Dieses Anhalten muß innerhalb des Zyklus abgeschlossen sein, sonst wird beispiels­ weise ein herangeholter Befehl an die ID 4 mit einem neuen Befehl, der seinen Platz in dem Latch einnimmt, latch-ge­ speichert. Wenn ID 4 nicht in der Lage ist, den an sie latch-gespeicherten Befehl zu akzeptieren, geht dieser Be­ fehl verloren. Das Anhalten wird zu einem Pfad kritischer Geschwindigkeit, welcher die maximale Frequenz verringert, bei welcher der Kern arbeiten kann, da die ID bis zu einem späten Zeitpunkt in den Zyklus nicht identifizieren kann, daß sie beispielsweise nicht einen erforderlichen Operanden hat und da die Anzahl der anzuhaltenden Latch-Speicher Zeit erfordert, um das Haltesignal bis zu einem Pegel aufzupuf­ fern, der in der Lage ist, sämtliche Stufen oberhalb der das Anhalten initiierenden Stufe anzuhalten.
Fig. 2 zeigt eine Blockdarstellung eines Systems eines alternativen Pipeline-Prozessors aus dem Stand der Technik. Der Prozessorkern 30 enthält eine Mehrzahl von Pipelinestu­ fen. Die Befehlszeigererzeugungsstufe (IP) 32 erzeugt einen Befehlszeiger und Steuerinformationen, welche sie in einem Befehlszeiger-Latch (IPL) 33 anordnet. Vom IPL 33 werden ei­ ne Mehrzahl von Steuerinformationen und eine Befehlsadresse umfassende Signale in eine Blind-Stufe 38 (Dummy-Stufe) latch-gespeichert, welche die gleiche Tiefe aufweisen muß, wie eine Befehlheranholeinheitsstufe (IFU) 39, welche sich außerhalb der Kerngrenzen 31 aufhält. Gleichzeitig mit dem Latch-Speichern der Steuersignale und der Befehlsadresse in die Steuerstufe 38 wird die Befehlsadresse auf Leitung 43 hinaus an die IFU 39 latch-gespeichert. Die IFU 39 holt die durch die Adresse angegebenen Befehle heran und stellt sie einem Befehlsheranhol-Latch (IFL) 34 innerhalb des Kerns 30 zur Verfügung. Gleichzeitig treffen die Steuersignale und die Befehlsadresse von der Blind-Pipelinestufe 38 ein. Die Steuerinformationen, die Befehlsadresse und der Befehl wer­ den dann in der Befehlsdekodier/Registersatz-Stufe (ID) 35 latch-gespeichert. Der Befehl wird in der ID 35 dekodiert und die Operanden werden gewonnen. Der dekodierte Befehl und die Operanden werden ebenso wie die Steuerinformationen an die Ausführungseinheit 36 latch-gespeichert. Die zum Rück­ schreiben erforderlichen Informationen werden an die Rück­ schreibstufe 37 wie im Stand der Technik latch-gespeichert. Die Latch-Speicher zwischen der ID 35 und der Ausführungs­ einheit 36 und zwischen der Ausführungseinheit 36 und der Rückschreibeinheit 37 sind aus Gründen der Klarheit in der Zeichnung nicht gezeigt. Die Neustart-Leitung 48 wird ver­ wendet, um die IP 32 über die neue Adresse zu informieren und um die gegenwärtig in der Pipeline vorhandenen Daten un­ gültig zu machen, wenn eine Verzweigung falsch vorhergesagt wurde. Die Ausführungseinheit 36 wird sämtliche von ihr emp­ fangenen Daten ignorieren, bis sie das durch die Pipeline zusammen mit einem Befehl, der dem Verzweigungsergebnis ent­ spricht, weitergeleitete Neustartsignal empfängt.
Im Falle eines Anhaltens wird beispielsweise in der ID 35 die Signalleitung 40 angelegt, um das IFL 34 anzuhalten, und es wird nach oben weitergeleitet, um außerdem das IPL 33 anzuhalten. Sofern die Blindstufe 38 und die IFU 39 eine Tiefe von mehr als 1 aufweisen, muß das Anhaltesignal 40 ebenso zur Blindstufe 38 und der IFU 39 geleitet werden. Ei­ ne analoge Situation tritt für ein Anhalten ein, welches von einer Stufe weiter unten in der Pipeline herrührt. Wie zuvor erwähnt, führt dies zu einem kritischen Zeitpfad, der zum Puffern und Ausbreiten des Signals erforderlich ist, um ein Anhalten ohne Datenverlust zu erreichen. Während zusätzlich die IFU 39 in Bezug auf die Größe ihres eigenen Speichers flexibel gemacht wird, wird ihre Tiefe von der Blindstufe 38 diktiert, da die beiden von gleicher Tiefe sein müssen, um die richtige Synchronisation der sich innerhalb des Kerns 30 hinab ausbreitenden Steuersignale zu sichern.
Änderungen der Anwendung oder gewünschten Verwendung er­ fordern üblicherweise eine Neukonstruktion des Kerns. Übli­ cherweise ist dies ein Ergebnis einer Änderung an der IFU. Die Dinge, die sich beispielsweise im Ergebnis von Kosten- oder Flächenbetrachtungen ändern können, sind die Größe des eigenen Speichers und die Tiefe der IFU-Pipeline. Beispiels­ weise ist es bei einigen Anwendungen aus Kosten- und Ent­ wurfszeitgründen erwünscht, eine IFU zu verwenden, welche mehr als einen Zyklus erfordert, um einen Befehl zu gewin­ nen. Die IFUs sind schaltungsintensiv, und je rigoroser die Zeitanforderungen für die Befehlsgewinnung sind, desto größer sind die zum Gewährleisten dieser Zeitvorgaben erfor­ derlichen Kosten und konstruktiven Bemühungen. So kann durch Erweitern der zur Verfügung stehenden Zeit die IFU unter Verwendung weniger qualifizierter Konstrukteure und bei ge­ ringeren Kosten entworfen werden. Da die IFU 39 aus dem Kern herausgenommen wurde, wie es in Fig. 2 gezeigt ist, kann deren Größe geändert werden. Ohne eine Neukonstruktion des Kerns reicht dies jedoch nicht, um auf Änderungen in der Tiefe der IFU-Pipeline einzugehen.
Demzufolge ist es eine Aufgabe der Erfindung, es einem Kern zu ermöglichen, in Verbindung mit einer großen Vielzahl von IFUs unterschiedlicher Größen und Tiefen verwendet zu werden.
Diese Aufgabe wird erfindungsgemäß durch einen Prozessorkern mit den Merkmalen des Anspruchs 1 bzw. durch ein Verfahren mit den Merkmalen des Anspruchs 7 gelöst.
Es wird ein Prozessorkern offenbart, der für eine Ver­ wendung in Verbindung mit einer großen Vielzahl von Befehls­ heranholeinheiten geeignet ist. Der Prozessorkern enthält eine Mehrzahl von Pipelinestufen, die eine Befehlszeigerer­ zeugungsstufe und eine Dekodierstufe einschließen. Der Kern bündelt in der ersten Stufe sämtliche für eine stromabfol­ gende Pipeline-Operation erforderlichen Steuersignale mit einer Befehlsadresse. Das Bündel wird aus dem Kern an die Befehlsheranholeinheit übermittelt. Die Befehlsheranholein­ heit holt den Befehl heran und fügt ihn zu dem Bündel hinzu, bevor sie das Bündel in der modifizierten Weise zurück in den Kern und die Pipeline hinab weiterleitet. Auf die Weise wird eine externe Pipelinestufe eingeführt, die eine Verbindung zwischen entkoppelten Pipelinestufen in dem Kern zur Verfügung stellt. Zusätzlich werden durch Bündelung der Steuersignale und der Adreßinformationen in einem einzigen Bündel, das die externe Pipelinestufe als Gruppe durchläuft, die Synchronisationsanforderungen verringert oder beseitigt.
Vorteilhafte Weiterbildungen der Erfindung sind in den Unteransprüchen gekennzeichnet.
KURZBESCHREIBUNG DER ZEICHNUNGEN
Fig. 1 zeigt eine Blockdarstellung eines bekannten Pipeline-Prozessorsystems.
Fig. 2 zeigt eine Blockdarstellung eines alternativen bekannten Pipeline-Prozessorsystems.
Fig. 3 zeigt eine Blockdarstellung eines bevorzugten Ausführungsbeispiels der Erfindung.
Fig. 4a-c zeigen Befehlszeitvorgaben in einer Pipe­ line gemäß der Erfindung, bei welcher eine Befehlsheranhol­ einheit eine Tiefe von 1, 2 bzw. 3 Zyklen hat.
Fig. 5 zeigt eine Blockdarstellung des Ausführungsbei­ spiels gemäß Fig. 3, das ein Beispiel einer Befehlsheranholeinheit benutzt.
Fig. 6 zeigt die Befehlszeitvorgaben in der Befehlsher­ anholeinheit gemäß Fig. 5 unter bestimmten Anhaltebedingun­ gen.
DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
Fig. 3 zeigt ein System, das ein bevorzugtes Ausfüh­ rungsbeispiel der Erfindung verwendet. Die Pipeline hat fünf Stufen: Eine Befehlszeigererzeugungsstufe (IP) 52, eine IFU- Stufe 59, eine Befehlsdekodier/Registersatz-Stufe (ID) 55, eine Ausführungseinheitsstufe 56 und eine Rückschreibstufe 57. Sämtliche dieser Stufen mit Ausnahme der IFU 59 befinden sich innerhalb des Prozessorkerns 50. Die IFU 59 ist außer­ halb der Kerngrenzen 51, unterliegt bestimmten Schnittstel­ lenanforderungen und kann hinsichtlich der Konstruktion und insbesondere der Größe und Tiefe breit variieren. Bei diesem Ausführungsbeispiel sind die Aktivitäten der IFU 59 für den Kern 50 unsichtbar. Die IFU 59 muß einen Adreßzeiger und Steuerinformationen aus der IP aufnehmen und die Befehle und Steuerinformationen an die ID 55 zurückgeben, aber das, was die IFU 57 zwischen dem Aufgeben und Rückgeben solcher Sig­ nale tut, ist unabhängig von der Kernkonstruktion.
Die IP 52 erzeugt eine Adresse für einen gewünschten Be­ fehl. Die IP ordnet diese Adresse und sämtliche für die wei­ ter unten liegenden Pipelinestufen benötigten Steuerinforma­ tionen als Bündel in einem Befehlszeiger-Latch-Speicher (IPL) 53 an. Das Bündel von Informationen, die sowohl die Befehlsadresse als auch sämtliche Steuerinformationen umfas­ sen, wird entlang der Signalleitungen 63 über die Kernbe­ grenzung 51 hinweg an die IFU 59 übermittelt. Die IFU 59 muß das Bündel einbehalten, so daß es mit dem herangeholten Be­ fehl die Pipeline hinab weitergeleitet werden kann. Dement­ sprechend hängt die IFU an das Bündel den herangeholten Be­ fehl an und leitet das mit dem Anhang versehene Bündel auf die Leitungen 62 an das Befehlsheranhol-Latch (IFL) 54 wei­ ter. Das mit Anhang versehene Bündel wird dann in die ID 55 latch-gespeichert. Die Funktion der ID 55, der Ausführungs­ einheit 56 und der Rückschreibstufe 57 sind ähnlich dem Stand der Technik. Da es jedoch keinen Pipeline-Sequenzer gibt, ist die Steuerung verteilt und beruht auf den durch die Pipeline hindurch als Teil des Bündels übermittelten Steuersignalen. Da es darüber hinaus keine Gewissheit gibt, daß die IFU den einem ausgegebenen Zeiger entsprechenden Be­ fehl einen Zyklus später liefert, erwartet die ID derartige Lieferungen nicht und hat daher keine Möglichkeit, die IP zu veranlassen eine Adresse wiederholt auszugeben.
Im Falle eines Anhaltens in der ID 55 (oder weiter unten in der Pipeline) hält die ID 55 zusätzlich das IFL 54 an und stellt ein Anhaltesignale 60 an der Kernbegrenzung 51 zur Verfügung. Was die IFU 59 mit dem Anhaltesignal 60 macht, ist implementierungsspezifisch und unabhängig von den unter ihr in der Pipeline befindlichen Stufen. Dies wird detail­ lierter unten in Verbindung mit den Fig. 5 und 6 erör­ tert. Die Neustartsignalleitung 58 benachrichtigt die IP 32 über ein Verzweigungsziel im Falle einer falsch vorhergesag­ ten Verzweigung. Ein Neustartsignal wird in dem nächsten Bündel ausgegeben, welches außerdem die Verzweigungsziel­ adresse enthält. Wenn die IFU den Neustart empfängt, kann sie in Abhängigkeit von ihrer Implementierung in der Lage sein, unnötige Heranholoperationen zu vermeiden, indem sie irgendwelche Operationen, die sich gerade im Ablauf befin­ den, abbricht. Dies ist besonders vorteilhaft, wenn sich stromabwärts Heranholoperationen zum Hauptspeicher 10 befin­ den.
Da die ID 55 und die IP 52 entkoppelt worden sind und sich sämtliche Steuerinformationen durch die IFU 59 hindurch ausbreiten, werden die einer IFU veränderlichen Tiefe zuzu­ schreibenden Synchronisationsanforderungen ausgeräumt. Da­ rüber hinaus wird der beschriebene Kern 50 mit einer beliebigen IFU einer großen Vielzahl von Größen und Tiefen richtig funktionieren, ohne daß irgendeine Neukonstruktion des Kerns 50 erforderlich wäre.
Die Fig. 4a-c zeigen, wie die Befehle durch die Pipeline gemäß der Erfindung hindurchgeleitet werden, wobei die IFU 1, 2 bzw. 3 Zyklen tief ist. In Fig. 4a gibt die IP einen ersten Befehl in einem ersten Zyklus aus, und die IFU gibt diesen Befehl in dem nächsten Zyklus aus, was so durch die Pipeline hindurch fortgesetzt wird. Gemäß Fig. 4b gibt die IP einen ersten Befehl in einem ersten Zyklus, einen zweiten Befehl in einem zweiten Zyklus und einen dritten Be­ fehl in dem dritten Zyklus aus. Die IFU jedoch gibt den ers­ ten Befehl erst im dritten Zyklus aus. Somit gibt es beim Start eine Verzögerung von zwei Zyklen, bevor die IFU mit dem Ausgeben eines Befehls in jedem Zyklus beginnt. Fig. 4c zeigt einen analogen Fall, bei welchem eine Verzögerung von drei Zyklen auftritt, bevor die IFU beginnt, einen Befehl in jedem Zyklus auszugeben. Die Fig. 4b und 4c setzen vor­ aus, daß die IFU eine Tiefe von 2 bzw. 3 aufweist und daß sie als. Pipeline strukturiert ist. Jedoch würde die Erfin­ dung auch mit einer nicht in der Art einer Pipeline struktu­ rierten IFU mit einer beliebigen Tiefe funktionieren. Dieses würde selbstverständlich die Leistunge verschlechtern, da es zwischen jedem aus der IFU ausgegebenen Befehl eine der Tiefe der IFU entsprechende Verzögerung gäbe. Dennoch liegt dies innerhalb des Umfangs und der Erwägungen der Erfindung.
Fig. 5 zeigt ein Beispiel der IFU 59, welche mit dem Prozessorkern 50 gemäß Fig. 3 verwendet werden kann. In Fig. 5 ist nur ein Abschnitt des Kerns 50 gezeigt. Die inter­ nen Verbindungen sind die gleichen wie die in Fig. 3.
Die IFU 59 hat eine Tiefe von 2. Sie ist als Pipeline mit einer ersten Stufe (FU1) 100 und einer zweiten Stufe (FU2) 102 strukturiert. Das in der Mitte angeordnete Latch 101 ist zwischen die beiden Stufen der IFU 59 eingekoppelt. Der Ausgang der FU2 102 ist mit einer Warteschlange 103 (FIFO) und einem Multiplexer 104 gekoppelt. Die Warte­ schlange 103 wiederum ist ebenfalls mit dem Multiplexer 104 gekoppelt. Sofern die Warteschlange 103 freigegeben ist, wird ein mit einem Anhang versehenes Bündel, das aus der FU2 102 ausgegeben wird, in der Warteschlange 103 gespeichert. Sofern die Warteschlange 103 nicht freigegeben ist, geht das von der FU2 102 ausgegebene mit einem Anhang versehene Bün­ del durch den Multiplexer 104 hindurch in das IFL 54. Somit können, da die Warteschlange 103, wie gezeigt ist, zwei Speicherplätze aufweist, zwei Befehle durch die IFU 59 ver­ arbeitet und in der Warteschlange 103 gespeichert werden, während das IFL 54 angehalten ist.
Die gezeigte IFU 59 kann einen Vorteil aus dem entkop­ pelten Anhaltemerkmal der Erfindung ziehen. Wenn die ID 55 ein Anhalten (Stall) 60 an das IFL 54 ausgibt, wird das An­ haltesignal der IFU 59 zur Verfügung gestellt. Was die IFU 59 mit dem Anhaltesignal macht, ist implementierungsspezi­ fisch. Dementsprechend kann, wenn die ID 55 das Anhaltesig­ nal 60 ausgibt, das Signal verwendet werden, um die Warte­ schlange 103 freizugeben, was dazu führt, daß die mit einem Anhang versehenen Bündel darin gespeichert werden. Die IFU 59 kann auf der Grundlage des Speicherniveaus in der Warte­ schlange 103 und auf der Grundlage anderer Faktoren bestim­ men, ob das Anhaltesignal 61 ausgegeben werden sollte. Da beispielsweise die IFU 59 die Menge von zwei Bündeln spei­ chert, kann sie in der Lage sein, zusätzliche Bündel von dem IPL 53 aufzunehmen, um mit der Verarbeitung dieser Bündel zu beginnen. Die IFU 59 kann dann das IPL 53 unter Verwendung der Signalleitung 61 anhalten, wenn ihre Möglichkeit zur Aufnahme zusätzlicher Bündel aufgebraucht ist. Eine längere Warteschlange würde die Verarbeitung weiterer Befehle ge­ statten, bevor es erforderlich wäre, daß die IFU 59 das IFL 53 anhält. In jedem Fall wäre es nicht erforderlich, das Haltesignal 61 sofort in dem gleichen Zyklus auszugeben, in dem das Haltesignal 60 angelegt wird. Dies verringert oder beseitigt den kritischen Zeitpfad, der zuvor derartigen Hal­ tesignalen anhaftete, und gestattet die Möglichkeit einer größeren Effektivität. Eine größere Effektivität wird er­ reicht, wenn der IFU und der IP gestattet wird, die Verar­ beitung fortzusetzen, was eine spätere Leerlaufzeit in der ID verringert, weil während des Anhaltens beispielsweise ein Heranholen aus dem Hauptspeicher begonnen oder sogar abge­ schlossen werden konnte. Wenn man beispielsweise ein Anhal­ ten von zwanzig Zyklen in der ID 55 annimmt und wenn man weiterhin annimmt, daß der Befehl des nächsten an die IFU 59 ausgegebenen Bündels aus dem Speicher 10 herangeholt würde, so würde während des Anhaltens eine beträchtliche Verarbei­ tung durchgeführt werden, um diesen als nächstes benötigten Befehl in dem Speicher zu gewinnen, sofern die IFU 59 dieses nächste Bündel aufnimmt, bevor sie das IPL 53 anhält.
Fig. 6 zeigt ein Beispiel eines Befehlsflusses durch die Pipeline des in Fig. 5 gezeigten Ausführungsbeispiels. In dem ersten Zyklus wird ein erster Befehl I1 durch die IP ausgegeben. Im Zyklus 2 hält sich I1 in dem IPL auf und wird in FU1 latch-gespeichert. Im Zyklus 3 hält sich I1 im zen­ tralen Latch auf und wird durch FU2 bearbeitet und ausgege­ ben. Im. Zyklus 4 hält sich I1 in dem IFL auf, und I1 wird durch die ID bearbeitet. Gemäß Fig. 6 wird angenommen, daß ein Anhalten im Zyklus 4 durch die ID ausgegeben wurde. So­ mit würde I2 dem gleichen Pfad wie I1 einen Zyklus nachfol­ gen, I2 würde aber in die Warteschlange im Zyklus 5 eingege­ ben werden, statt in das IFL. In ähnlicher Weise wird 13 in die Warteschlange im Zyklus 6 eingegeben und verbraucht da­ bei den zur Verfügung stehenden Speicherraum. Die IFU hält IP im Zyklus 7 an, obwohl das IP-Anhalten im Zyklus 6 fal­ lengelassen wurde. Somit verläßt in Zyklus 7 I2 die Warte­ schlange an das IFL und die ID. Das Anhalten der IP setzt sich bis zum Zyklus 8 fort, wodurch ein Entleeren der Warte­ schlange in nachfolgenden Zyklen gestattet wird. Es sind selbstverständlich andere Pipelineflüsse möglich, welche als innerhalb des Umfangs der Erfindung liegend angesehen wer­ den.
Da die Anhalte-Operationen entkoppelt sind, hat ein An­ halten durch die ID in irgendeinem der Zyklen 1-3 keinen Einfluß auf den gezeigten Fluß der Befehle. Wenn es bei­ spielsweise erforderlich wäre, daß 13 aus dem externen Speicher herangeholt wird, könnte darüber hinaus ein Anhalten der IP in T4, T5 unabhängig von dem durch die ID initiierten Anhalten initiiert werden. Die IFU setzt jedoch das Verar­ beiten des Heranholens fort, so daß in Abhängigkeit von der Länge des Anhaltens in der ID ein gültiger Befehl gewonnen werden kann, bevor (oder kürzere Zeit nachdem) die ID ver­ fügbar wird (wie oben erwähnt wurde).
In der vorstehenden Beschreibung wurde die Erfindung un­ ter Bezugnahme auf spezielle Ausführungsbeispiele beschrie­ ben. Es ist jedoch klar, daß verschiedene Modifikationen und Änderungen daran vorgenommen werden können, ohne von dem breiteren Geist und Umfang der Erfindung, wie er in den an­ hängigen Ansprüchen angegeben ist, abzuweichen. Dementspre­ chend sind die Beschreibung und die Zeichnungen eher in ei­ nem veranschaulichenden Sinne als in einem einschränkenden Sinne zu verstehen. Folglich sollte der Umfang der Erfindung nur durch die anhängigen Ansprüche begrenzt sein.

Claims (9)

1. Prozessorkern (50) mit mehreren Pipelinestufen (52, 55, 56, 57), umfassend:
eine Befehlszeigererzeugungsstufe (52), welche ein Bündel an eine externe Befehlsheranholeinheit (59) in einem ersten Zeitrahmen überträgt, wobei das Bündel für Pipeline- Operationen nachfolgender Stufen erforderliche Steuersignale und einen Befehlszeiger enthält; und
eine Befehlsdekodierstufe (55), welche das Bündel mit einem Anhang versehen von der externen Befehlsheranhol­ einheit (59) in einem zweiten Zeitrahmen empfängt, wobei der Anhang einen dem Befehlszeiger entsprechenden Befehl ent­ hält.
2. Prozessorkern (50) nach Anspruch 1, gekennzeichnet durch:
ein mit der Befehlszeigererzeugungsstufe (52) ge­ koppeltes erstes Latch (53), wobei das erste Latch (53) dem Latch-Speichern des Bündels dient und wobei das erste Latch (53) nicht auf ein Anhaltesignal aus der Befehlsdekodierstu­ fe (55) anspricht; und
ein mit der Befehlsdekodierstufe (55) gekoppeltes zweites Latch (54) zum Latch-Speichern des mit Anhang versehenen Bündels, wobei das zweite Latch (54) auf das Anhaltesignal anspricht.
3. Prozessorkern (50) nach Anspruch 2, dadurch ge­ kennzeichnet, daß die Befehlsdekodierstufe (55) ein Anhalte­ signal in demselben Zeitrahmen an das zweite Latch (54) übermittelt, wenn die Befehlsdekodierstufe (55) kein näch­ stes mit Anhang versehenes Bündel in einem nächsten Zeitrah­ men aufnehmen kann.
4. Prozessorkern (50) nach Anspruch 3, dadurch ge­ kennzeichnet, daß das Anhaltesignal an die externe Befehlsheranholeinheit (59) übermittelt wird und die externe Be­ fehlsheranholeinheit (59) ein entsprechendes Anhaltesignal an die Befehlszeigererzeugungsstufe (52) entweder in demsel­ ben Zeitrahmen, einem nachfolgenden Zeitrahmen oder niemals ausgibt.
5. Prozessorkern (50) nach Anspruch 4, dadurch ge­ kennzeichnet, daß das Anhaltesignal an die externe Befehls­ heranholeinheit (59) in dem Zyklus übermittelt wird, in wel­ chem das zweite Latch (54) angehalten wird; und
wobei in Erwiderung des Anhaltesignals die externe Be­ fehlsheranholeinheit (59)
ein unabhängiges Anhaltesignal an das erste Latch (53) übermittelt, sofern die externe Befehlsheranholeinheit (59) in dem Zyklus kein weiteres Bündel aufnehmen kann;
das unabhängige Anhaltesignal in einem nachfolgen­ den Zyklus übermittelt, sofern die externe Befehlsheranhol­ einheit nicht mehr in der Lage ist, ein neues Bündel in dem nachfolgenden Zyklus aufzunehmen;
keine unabhängige Anhalteanforderung übermittelt, sofern kein Rückstau (back log) im Ergebnis des Anhaltens des zweiten Latch (54) in der externen Befehlsheranholein­ heit (59) vorhanden ist.
6. Prozessorkern nach Anspruch 1, dadurch gekenn­ zeichnet, daß die Steuersignale ein Neustart-Signal umfas­ sen, wobei das Neustart-Signal bei einem Bündel eines neuen Verzweigungspfades ausgegeben wird.
7. Verfahren zur Unterstützung einer Befehlsheranhol­ einheit beliebiger Tiefe durch einen einzigen Prozessorkern, umfassend die Schritte:
Bereitstellen eines Prozessorkerns mit mehreren Pipelinestufen, die eine erste Pipelinestufe zum Erzeugen eines Befehlszeigers und eine dritte Pipelinestufe zum Deko­ dieren von Befehlen umfassen, wobei die erste und die dritte Pipelinestufe nicht direkt im Prozessorkern miteinander ge­ koppelt sind;
Bündeln eines Befehlszeigers mit Pipelinesteuerin­ formationen in der ersten Pipelinestufe in einem Bündel;
Übermitteln des Bündels über eine Kernbegrenzung hinweg an die Befehlsheranholeinheit in einem ersten Zeit­ rahmen;
Anhängen eines dem Befehlszeiger entsprechenden Befehls an das Bündel in der Befehlsheranholeinheit; und
Weiterleiten des mit dem Befehl versehenen Bündels zurück über die Kernbegrenzung hinweg an die dritte Pipe­ linestufe in einem nachfolgenden Zeitrahmen.
8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, daß ein Anhalten der dritten Pipelinestufe nicht direkt ein Anhalten der ersten Pipelinestufe initiiert.
9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß die außerhalb des Kerns angeordnete Befehlsheranholein­ heit bestimmt, ob die erste Pipelinestufe angehalten werden soll.
DE19782105A 1996-11-07 1997-07-30 Prozessorkern und Verfahren zum Unterstützen unterschiedlicher Befehlsheranholeinheiten in einer Pipeline Expired - Fee Related DE19782105C2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/746,285 US5889975A (en) 1996-11-07 1996-11-07 Method and apparatus permitting the use of a pipe stage having an unknown depth with a single microprocessor core
PCT/US1997/013504 WO1998020414A1 (en) 1996-11-07 1997-07-30 Method for supporting a variety of instruction fetch units in a pipeline with a single microprocessor core

Publications (1)

Publication Number Publication Date
DE19782105C2 true DE19782105C2 (de) 2001-11-08

Family

ID=25000203

Family Applications (2)

Application Number Title Priority Date Filing Date
DE19782105T Pending DE19782105T1 (de) 1996-11-07 1997-07-30 Verfahren zum Unterstützen einer Mehrzahl von Befehlsheranholeinheiten in einer Pipeline mit einem einzigen Mikroprozessorkern
DE19782105A Expired - Fee Related DE19782105C2 (de) 1996-11-07 1997-07-30 Prozessorkern und Verfahren zum Unterstützen unterschiedlicher Befehlsheranholeinheiten in einer Pipeline

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE19782105T Pending DE19782105T1 (de) 1996-11-07 1997-07-30 Verfahren zum Unterstützen einer Mehrzahl von Befehlsheranholeinheiten in einer Pipeline mit einem einzigen Mikroprozessorkern

Country Status (6)

Country Link
US (1) US5889975A (de)
AU (1) AU3903097A (de)
DE (2) DE19782105T1 (de)
GB (1) GB2334122B (de)
HK (1) HK1022195A1 (de)
WO (1) WO1998020414A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6237083B1 (en) 1998-02-13 2001-05-22 Advanced Micro Devices, Inc. Microprocessor including multiple register files mapped to the same logical storage and inhibiting sychronization between the register files responsive to inclusion of an instruction in an instruction sequence
US6591360B1 (en) 2000-01-18 2003-07-08 Hewlett-Packard Development Company Local stall/hazard detect in superscalar, pipelined microprocessor
US6587940B1 (en) 2000-01-18 2003-07-01 Hewlett-Packard Development Company Local stall/hazard detect in superscalar, pipelined microprocessor to avoid re-read of register file
US6553512B1 (en) * 2000-02-16 2003-04-22 Hewlett Packard Development Company, L.P. Method and apparatus for resolving CPU deadlocks
US20080222393A1 (en) * 2007-03-09 2008-09-11 On Demand Microelectronics Method and arrangements for pipeline processing of instructions
KR20190037534A (ko) * 2017-09-29 2019-04-08 삼성전자주식회사 디스플레이장치 및 그 제어방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5487156A (en) * 1989-12-15 1996-01-23 Popescu; Valeri Processor architecture having independently fetching issuing and updating operations of instructions which are sequentially assigned and stored in order fetched
US5559975A (en) * 1994-06-01 1996-09-24 Advanced Micro Devices, Inc. Program counter update mechanism
US5564029A (en) * 1992-06-08 1996-10-08 Matsushita Electric Industrial Co., Ltd. Pipeline processor which avoids resource conflicts

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5187800A (en) * 1985-01-04 1993-02-16 Sun Microsystems, Inc. Asynchronous pipelined data processing system
US5019967A (en) * 1988-07-20 1991-05-28 Digital Equipment Corporation Pipeline bubble compression in a computer system
US5490255A (en) * 1991-12-26 1996-02-06 Amdahl Corporation Expedited execution of pipelined command having self-ordering operand processing requirements
JPH06266556A (ja) * 1993-03-15 1994-09-22 Fujitsu Ltd データ処理装置
US5666507A (en) * 1993-12-29 1997-09-09 Unisys Corporation Pipelined microinstruction apparatus and methods with branch prediction and speculative state changing
US5668984A (en) * 1995-02-27 1997-09-16 International Business Machines Corporation Variable stage load path and method of operation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5487156A (en) * 1989-12-15 1996-01-23 Popescu; Valeri Processor architecture having independently fetching issuing and updating operations of instructions which are sequentially assigned and stored in order fetched
US5564029A (en) * 1992-06-08 1996-10-08 Matsushita Electric Industrial Co., Ltd. Pipeline processor which avoids resource conflicts
US5559975A (en) * 1994-06-01 1996-09-24 Advanced Micro Devices, Inc. Program counter update mechanism

Also Published As

Publication number Publication date
GB2334122A (en) 1999-08-11
DE19782105T1 (de) 1999-11-11
WO1998020414A1 (en) 1998-05-14
AU3903097A (en) 1998-05-29
HK1022195A1 (en) 2000-07-28
US5889975A (en) 1999-03-30
GB2334122B (en) 2001-10-03
GB9910492D0 (en) 1999-07-07

Similar Documents

Publication Publication Date Title
DE3914265C2 (de)
DE69929936T2 (de) Verfahren und Vorrichtung zum Abrufen von nicht-angrenzenden Befehlen in einem Datenverarbeitungssystem
DE19983330B4 (de) Computerprozessor mit einem Wiederholsystem mit einem Stufungsabschnitt zum getakteten Verzögern und Verfahren zum Verarbeiten eines Befehls in einem solchen Prozessor
DE2234867C2 (de) Anordnung in einer Datenverarbeitungsanlage zum Steuern der Verarbeitung zweier voneinander unabhängiger Befehlsfolgen
DE19983687B4 (de) Verarbeitung geordneter Datenanforderungen an einen Speicher
DE19983589B4 (de) Hochfrequenz-Pipeline-Entkopplungswarteschlangengestaltung
DE69534113T2 (de) Kompression der Befehlswörter eines Rechners
DE10085375B4 (de) Verfahren und Einrichtung für einen pipeline-verschachtelten Multi-Thread-Befehlsdecodierer
DE60306937T2 (de) Synchronisierung von pipelines in einem datenverarbeitungsgerät
DE19983517B4 (de) Verfahren und Einrichtung zur Abzweigvorhersage unter Verwendung einer Abzweig-Vorhersagetabelle einer zweiten Stufe
DE2161886C2 (de) Befehlsausführungseinheit in einer elektronischen Datenverarbeitungszentrale für die gleichzeitige Verarbeitung mehrerer Befehle
DE10084556B4 (de) Optimierte Ausführung von statisch sehr wahrscheinlich vorhergesagten Verzweigungsbefehlen
DE1299146B (de) Befehlssteuereinheit
DE3638572C2 (de)
DE4207148A1 (de) Superscalar-prozessor
DE4302495A1 (de)
DE4301417A1 (de)
DE2411963B2 (de) Datenverarbeitungsanlage
DE19526008C2 (de) Befehlsvorholeinheit für einen Computer
DE19983098B4 (de) Mehrfach-Bitanzeige zur Behandlung von Schreib-nach-Schreib-Fehlern und zur Eliminierung von Bypass-Komparatoren
DE1499206C3 (de) Rechenanlage
DE19782105C2 (de) Prozessorkern und Verfahren zum Unterstützen unterschiedlicher Befehlsheranholeinheiten in einer Pipeline
DE3307194C2 (de)
EP1117037B1 (de) Datenverarbeitungsvorrichtung zum parallelen Verarbeiten von unabhängigen Prozessen (Threads)
DE10303053B4 (de) Prozessorarchitektur mit einem Array von Pipelines und einer Registerdatei zum Vermeiden von Datenrisiken und Verfahren zur Datenweiterleitung in einer derartigen Prozessorarchitektur

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8607 Notification of search results after publication
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20110201