DE69027932T2 - Cpu-pipeline mit registerfile-bypass durch adressvergleich bei aktualisierungen/zugriffen - Google Patents
Cpu-pipeline mit registerfile-bypass durch adressvergleich bei aktualisierungen/zugriffenInfo
- Publication number
- DE69027932T2 DE69027932T2 DE69027932T DE69027932T DE69027932T2 DE 69027932 T2 DE69027932 T2 DE 69027932T2 DE 69027932 T DE69027932 T DE 69027932T DE 69027932 T DE69027932 T DE 69027932T DE 69027932 T2 DE69027932 T2 DE 69027932T2
- Authority
- DE
- Germany
- Prior art keywords
- ale
- operand
- output
- input
- result
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3826—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
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)
- Executing Machine-Instructions (AREA)
Description
- Die Erfindung bezieht sich im allgemeinen auf eine Vorrichtung und ein Verfahren zur Datenverarbeitung, insbesondere auf eine für eine Zentraleinheit (CPU) bestimmte Arithmetik/- Logik-Pipeline von größerer Geschwindigkeit und höherem Wirkungsgrad, die einen Registerfile-Bypass benutzt, wenn eine Registerfile-Aktualisierungsadresse einer Registerfile-Zugriffsadresse gleich ist.
- Ein Registerfile befindet sich in vielen Datenverarbeitungseinheiten und umfaßt eine Vielzahl von Registern, die an eine Arithmetik-Logik-Einheit (ALE) angeschlossen sind und zum Speichern von Operanden und Ergebnissen von Rechen- oder Verknüpfungsoperationen, z.B. Gleitkommarechnungen, verschiedene Steueroperationen usw. verwendet werden. Der Registerfile kann als lokaler Speicher oder Cachespeicher eines schnellen Direktzugriffsspeichers (RAM) hoher Leistung betrachtet werden. Je größer die Zahl der Register im Registerfile, je größer ist die Datenmenge, die in der CPU selbst gespeichert werden kann. Wenn somit der Registerfile vergrößert wird, sind auf einen üblicherweise langsameren Systemspeicher weniger Zugriffe erforderlich, um Operanden abzurufen und Ergebnisse von ALE-Operationen zu speichern. Unter diesen Umständen leuchtet es ein, daß jegliche Erhöhung der Geschwindigkeit und Verbesserung der Leistungsfähigkeit im Betrieb des Registerfiles und der ALE sich direkt auf die Gesamtgeschwindigkeit und Verarbeitungsleistung der CPU auswirken.
- Bei einigen Anlagen wird der Registerfile während eines einzelnen CPU-Befehlszyklus angesteuert (gelesen) und aktualisiert (geschrieben). Da jedoch die CPU-Zykluszeit reduziert ist, entsteht eine Schwierigleit insofern, als für den Zugriff auf den Registerfile für eine ALE-Operation und für das Rückschreiben des Ergebnisses der ALE-Operation in den Registerfile während desselben Zyklus nicht genügend Zeit zur verfügung steht. Eine Lösung dieser Schwierigkeit besteht darin, auf den Registerfile während eines ersten CPU-Zyklus (Zyklus N) zuzugreifen und den Registerfile während eines nächsten, nachfolgenden CPU-Zyklus (Zyklus N+1) zu aktualisieren.
- Diese Lösung erzeugt jedoch eine Schwierigkeit bei CPU-Befehlen der Art, bei der ein während des Zyklus N entstandenes Ergebnis während des Zyklus N+1 in den Registerfile zurückgeschrieben und auch als Operand während des Zyklus N+1 benutzt werden muß. Eine solche Bedingung entsteht bei einer zeitverschachtelt arbeitenden CPU, bei der die Befehle überlappt ausgeführt werden, derart, daß ein zweiter Befehl begonnen wird, bevor die Ausführung eines vorhergehenden ersten Befehls beendet ist.
- Fig. 1 zeigt in einem Blockschaltbild einen Teil der Pipeline einer herkömmlichen CPU 1 mit einem Multiplexer (MUX) 2. Der MUX 2 empfängt einen ersten Eingang von einem CPU-Datenbus und einen zweiten Eingang von einem Ergebnis-Ausgang (R) einer ALE 4. Zwischen dem MUX 2 und der ALE 4 ist der Registerfile 3 zwischengeschaltet. Der Registerfile 3 umfaßt eine Vielzahl, z.B. 16, 64, 128 oder 256 Register. Die Anzahl Bit (m) der verschiedenen Datenwege und die Breite der einzelnen Register unterscheiden sich von Ausführung zu Ausführung und liegen üblicherweise im Bereich von 8 bis 128 Bit. Der Registerfile 3 empfängt eine Aktualisierungs-Registeradresse während eines Zyklus N und eine Zugriffs-Registeradresse während eines Zyklus N+1. Die Aktualisierungsadresse steuert ein Register an, in welches das Ergebnis der ALE 4 geschrieben wird. Die Zugriffsadresse steuert ein Register an, das entweder über den A- oder den B-Anschluß und danach zum entsprechenden Eingang der ALE 4 ausgelesen wird. Der Ergebnis-Ausgang (R) der ALE wird zum Aktualisieren eines Registers innerhalb des Registerfiles zum Eingang des Multiplexers zurückgeleitet. Selbstverständlich wird der R-Ausgang der ALE üblicherweise auch einer Anzahl weiterer Schaltungsanordnungen zugeleitet, die in dem vereinfachten Blockschaltbild der Fig. 1 nicht dargestellt sind.
- Entsprechend dieser herkömmlichen Anlage ist in Fig. 1b ein erster Befehl dargestellt, der die Form A+B=B hat. Das heißt, der in einem Speicherplatz A des Registerfiles gespeicherte Operand wird zu dem Operanden addiert, der in einem Speicherplatz B des Registerfiles gespeichert ist, und das Ergebnis wird (zur Aktualisierung) in den Speicherplatz B des Registerfiles zurückgeschrieben. Ein nächster Befehl hat die Form C+B=D, bei dem einer der Operanden - B - in dem durch den vorhergehenden Befehl aktualisierten Register enthalten ist. Da die Operationen in der CPU zeitverschachtelt und sich gegenseitig überlappend ausgeführt werden, kann in diesem Fall das Ergebnis der ersten Operation im Registerfile noch nicht aktualisiert sein, wenn die zweite Operation begonnen wird. Beispielsweise entsteht bei einem Befehl von der Form A+C=C, gefolgt von C+D=D die gleiche Schwierigkeit, insofern als der zu aktualisierende Speicherplatz (C) des Registerfiles auch als Operand für den zweiten, zeitverschachtelt auszuführenden Befehl erforderlich ist.
- Der Erfindung liegt daher die Aufgabe zugrunde, eine verbesserte Arithmetik-Logik-Pipeline für eine CPU zu schaffen, bei der das Ergebnis einer ALE als Operand während einer unmittelbar nachfolgenden zeitverschachtelten Operation direkt zur Verfügung gestellt wird, ohne zuerst in einem Registerfile aktualisiert zu werden.
- Eine weitere Aufgabe der Erfindung besteht darin, eine Arithmetik-Logik-Pipeline für eine CPU dahingehend zu verbessern, daß sie eine Schaltungsanordnung enthält, die einen lokalen Operandenspeicher umgeht, wenn ein ALE-Ergebnis als Eingang zur ALE während eines Zyklus erforderlich ist, in dem das ALE-Ergebnis auch zum Aktualisieren eines Speicherplatzes im lokalen Operandenspeicher benötigt wird.
- Zeitverschachtelt arbeitende Verarbeitungsanlagen, in denen ein ALE-Ergebnis während einer unmittelbar nachfolgenden zeitverschachtelten Operation als Operand zur Verfügung gestellt wird, ohne zuerst in einem Registerfile oder internen Speicher aktualisiert zu werden, sind üblich, siehe Stand der Technik bezüglich "Operandenkonflikt", beschrieben in EP-A-0 269 980 oder die Beschreibung des Standes der Technik in US- A-4 639 866. Beide Dokumente schweigen sich aus über die Speicherung von ALE-Zwischenergebnissen in getrennt adressierbaren Arbeitsregistern.
- US-A-4 594 682 beschreibt eine Vektorverarbeitungsanlage, die das sich überlappende Lesen und Beschreiben von Vektorelementen ermöglicht. Die bekannte Anlage umfaßt einen Cachespeicher, aus dem Daten an beide Eingänge einer ALE übertragen werden können. Dieses Dokument läßt darauf schließen, daß der ALE-Ausgang nur zu einem der ALE-Eingänge übertragen werden kann. Ein lokaler Speicher zum Speichern von ALE-Zwischenergebnissen ist ausschließlich mit diesem einen ALE-Eingang verbunden.
- Die vorstehend genannten Schwierigkeiten werden überwunden und die Aufgaben der Erfindung gelöst mit einer Vorrichtung gemäß Anspruch 5 und einem Verfahren gemäß Anspruch 1, mit denen eine bedeutende Erhöhung der Geschwindigkeit bei den Operationsarten erzielt wird, bei denen ein Speicherelement, z.B. ein Speicherplatz eines Registerfiles oder ein Arbeitsregister mit dem Ergebnis einer vorherigen Operation aktualisiert und gleichzeitig auf ihn zugegriffen werden muß, um einen Operanden für eine nachfolgende Operation zu erhalten. Die Erfindung dient dazu, eine solche Bedingung festzustellen und den Ausgang der vorhergehenden Operation der ALE direkt zur Verfügung zu stellen, ohne daß eine zusätzliche Verzögerung eintritt, die erforderlich ist, um das Speicherelement zuerst zu aktualisieren und dann nachfolgend auf es zuzugreifen.
- Gemäß einer speziellen Ausführungsform sind ein A-Ausgang und ein B-Ausgang eines Registerfiles je einem zugehörigen Multiplexer zugeordnet. Jeder Multiplexer hat als weiteren Eingang einen Bus, der ein Ergebnis von einer ALE überträgt. Ausgänge der Multiplexer werden an entsprechende A- bzw. B-Eingänge der ALE geleitet. Jeder Multiplexer wird durch einen zugehörigen Registerfileadressen-Vergleicher gesteuert. Die Adressenvergleicher haben je als Eingang entsprechende Registerfile-A- und B-Zugriffsadressen und eine Registeraktualisierungsadresse. Die Adressenvergleicher vergleichen die ihnen zugewiesenen Registerfile-Aktualisierungs- und -Zugriffsadressen, derart, daß bestimmbar ist, ob das für den Zugriff angesteuerte Registerfileregister mit dem für die Aktualisierung angesteuerten Registerfileregister gleich ist. Werden diese beiden Adressen als gleich festgestellt, bedeutet dies, daß das Ergebnis einer ALE-Operation während eines Befehlszyklus N als Operand in einer ALE-Operation während eines Zyklus N+1 benutzt werden soll. Wenn diese Bedingung festgestellt wird, ermöglicht es der Ausgang des zugehörigen Adressenvergleichers, daß der entsprechende Multiplexerauswahleingang das ALE-Ergebnis direkt zum entsprechenden Eingang der ALE leitet, wodurch der Registerfile wirkungsvoll umgangen wird.
- Die vorstehend genannten und weitere Merkmale der Erfindung ergeben sich deutlicher aus der nachfolgenden detaillierten Beschreibung der Erfindung in Verbindung mit der beigefügten Zeichnung, in der zeigt:
- Fig. 1a ein Blockschaltbild, das eine herkömmliche Zwischenverbindung Registerfile/ALE darstellt,
- Fig. 1b eine grafische Darstellung von zwei zeitverschachtelten Befehlen einer Form, bei der während eines Zyklus N+1 ein früheres ALE-Ergebnis zum Aktualisieren eines Registerfilespeicherplatzes und auch als Operand für eine laufende ALE-Operation erforderlich ist, und
- Fig. 2 ein detailliertes Blockschaltbild mit der Darstellung eines Registerfiles mit eienr Bypass-Schaltungsanordnung, die erfindungsgemäß ausgeführt ist und betrieben wird.
- Die nachstehende Beschreibung ist in den Zusammenhang mit einem Registerfile mit 128 Registern je von der Breite 32 Bit gestellt. Es ist jedoch klar, daß die Erfindung mit Registerfiles beliebiger praktischer Tiefe und Breite ausgeführt werden kann und nicht auf die Arbeitsweise mit dem nachstehend angeführten speziellen Beispiel beschränkt ist.
- Fig. 2 ist ein Blockschaltbild, das einen Teil einer zentralen Verarbeitungseinheit (CPU) 10 darstellt, die erfindungsgemäß ausgeführt ist und betrieben wird. Die CPU 10 kann in einer Vielzahl verschiedener Hardwareausführungsarten implementiert werden, einschließlich, ohne hierauf beschränkt zu sein, in Form von Mikroprozessoren, Klein- und Großrechnern. Beispielsweise kann die CPU 10 ein VS-Rechner, insbesondere ein VS-8000-Rechner sein, der von der Wang Laboratories, Inc., Lowell, Massachusetts hergestellt wird. Die CPU 10 umfaßt einen 32-Bit-Datenbus DB00:31, der über einen bidirektionalen Pufferspeicher 12 mit einem ersten Eingang eines Multiplexers (MUX) 14 verbunden ist. Ein zweiter Eingang des MUX 14 ist mit einem 32-Bit-C-Bus (CB00:31) verbunden. Die Auswahl des DB00:31 oder des CB00:31 zwecks Anschluß über den MUX 14 geschieht durch einen REG FILE SELECT-(Registerfileauswahl) Eingang an den Auswahleingang (S) des MUX 14. Der ausgewählte 32-Bit-Bus wird an einen Ausgang des MUX 14 geleitet und an einen Eingang eines lokalen Operandenspeichers angelegt, der als 128x32-Registerfile (REG FILE) 16 implementiert ist. Der REG FILE 16 umfaßt als Eingänge einen 7-Bit-A- Zugriffsadressenbus und einen 7-Bit-B-Zugriffsbus zur Kennzeichnung bestimmter Register unter den 128 Registern des REG FILE 16, die angesteuert (gelesen) werden sollen. Der REG FILE 16 hat als Eingang auch einen 7-Bit-Aktualisierungsadressenbus zum Kennzeichnen des zu aktualisierenden (zu schreibenden) Registers. Der Aktualisierungsadressenbus ist eine über Register geleitete oder verzögerte Version des B- Zugriffsbusses. Das heißt, während eines Zyklus N aktualisiert der Aktualisierungsadressenbus das Register, auf welches die B-Zugriffsadresse während des Zyklus N-1 zugegriffen hat. Der REG FILE 16 umfaßt auch einen 32-Bit-A-Ausgang und einen 32-Bit-B-Ausgang. Die an den A-Ausgang geleiteten Daten werden durch den A-Zugriffsbus adressiert und zugegriffen, und die am B-Ausgang erscheinenden Daten werden durch den B- Zugriffsbus adressiert und zugegriffen.
- Bei einer herkömmlichen Anlage, wie der in Fig. 1a dargestellten, wären die 32-Bit-A- und -B-Ausgänge mit einer ALE direkt verbunden. Dagegen sind jedoch erfindungsgemäß der 32- Bit-A-Ausgang und der 32-Bit-B-Ausgang des REG FILE 16 je mit einem zugehörigen MUX 18 und MUX 20 verbunden. MUX 18 und MUX 20 weisen je einen weiteren Eingang CBOO:31 auf. Ein Ausgang des MUX 18 ist an einen A-Eingang einer ALE 22 angeschlossen, und ein Ausgang des MUX 20 ist mit einem B-Eingang der ALE 22 verbunden. MUX 18 und MUX 20 werden je von einem zugehörigen Adressenvergleicher (ADDR COMP) 24 bzw. 26 gesteuert. Die Adressenvergleicher 24 und 26 weisen je als Eingang entsprechende Zugriffsadressen und die Aktualisierungsadresse des REG FILE 16 auf. Die Adressenvergleicher 24 und 26 vergleichen diese Adressen des REG FILE 16 derart, daß bestimmbar ist, ob das während eines laufenden Zyklus für den Zugriff angesteuerte Register des REG FILE 16 gleich ist dem Register des REG FILE 16, das während des Zyklus zum Aktualisieren ausgewählt wurde. Wird festgestellt, daß diese beiden Adressen gleich sind, bedeutet dies, daß das Ergebnis einer ALE- Operation während eines Befehlszyklus N als Operand in einer ALE-Operation während des nachfolgenden Zyklus N+1 benutzt werden soll. Wenn diese Bedingung festgestellt wird, ermöglicht der Ausgang des zugehörigen Adressenvergleichers 24 und 26, daß der Auswahleingang (S) des entsprechenden Multiplexers MUX 18 oder MUX 20 das Ergebnis der ALE 22 auf dem Bus CB00:31 direkt an den entsprechenden Eingang der ALE 22 leitet, wodurch der REG FILE 16 wirkungsvoll umgangen wird.
- Wenn die Aktualisierungsadresse mit der entsprechenden A- oder B-Zugriffsadrsse nicht gleich ist, ist der S-Eingang zu MUX 18 und MUX 20 nicht aktiviert, und diese Multiplexer wählen statt dessen den entsprechenden Ausgang des REG FILE 16 als Datenquelle für die ALE 22 aus. Beispielsweise führt die Operation A+B=C, gefolgt von der Operation A+D=E nicht zu einer Umgehung des REG FILE 16, insofern als keiner der Operanden (A oder D) des zweiten Befehls als Ergebnis des ersten Befehls aktualisiert wird.
- Weiter in der Beschreibung des in Fig. 2 dargestellten Teils der CPU 10: Der Ausgang der ALE 22 wird einem Zwischenspeicher 28a zugeleitet und von dort zu einer ALE-Verschiebeschaltung 28. Die Verschiebeschaltung 28 wird durch einen Verschiebesteuerungs-Logikblock 30 gesteuert. Die ALE-Verschiebeschaltung 28 arbeitet in herkömmlicher Weise und positioniert bei Bedarf das zwischengespeicherte ALE-Ergebnis, bevor es auf den CB00:31-Bus geleitet wird.
- Weiter ist erfindungsgemäß eine Umgehung für ein A-Arbeitsregister (WR-A) 32 und ein B-Arbeitsregister (WR-B) 34 vorgesehen. In diesem Falle ist das Arbeitsregister ein für bestimmte Rechen/Verknüpfungs-Operationen benutztes Zwischenregister. Erfindungsgemäß wird der Ausgang des Arbeitsregisters an einen Eingang eines zugehörigen Multiplexers AMUX 36 bzw. BMUX 38 geleitet. Ein zweiter Eingang zu den beiden AMUX 36 und BMUX 38 ist der CB00:31-Bus, der das Ergebnis der ALE 22 von der Verschiebeschaltung 28 überträgt.
- Jeder der Multiplexer 36 und 38 hat einen mit einem Ausgang eines zugehörigen Vergleichers 40 bzw. 42 verbundenen Auswahleingang. Der Vergleicher 40 generiert einen Ausgang, der den AMUX 36 veranlaßt, den CB00:31-Eingang statt des Ausgangs vom WR-A 32 auszuwählen, wenn der Zustand der logischen Signale anzeigt, daß die Quelle einer Operation der WR-A 32 (ACCES WRA) ist und auch, daß der WR-A 32 während desselben Zyklus von der ALE 22 aktualisiert wird. Der Vergleicher 42 arbeitet in identischer Weise, um Daten an den B-Anschluß der ALE 22 zu leiten. Die Arbeitsweise des AMUX 36 und des Vergleichers 40 dient somit in ähnlicher Weise, wie sie zuvor für den REG FILE 16 beschrieben wurde, dazu, den WR-A 32 rasch zu umgehen, wenn festgestellt wird, daß der WR-A 32 in demselben Zyklus aktualisiert und ausgewählt werden muß. Auf ähnliche Weise dient die Arbeitsweise des BMUX 38 und des Vergleichers 42 dazu, den WR-B 34 rasch zu umgehen, wenn festgestellt wird, daß der WR-B 34 in demselben Zyklus aktualisiert und ausgewählt werden muß. Das heißt, daß dieses Merkmal der Erfindung feststellt, ob ein Aktualisierungssignal für eines der Arbeitsregister in Verbindung mit einem Zugriffssignal für das Arbeitsregister aktiviert ist; wenn dem so ist, wird das Arbeitsregister umgangen und der Ausgang der ALE 22 wird an den Eingang der ALE 22 zurückübertragen.
- In den vorstehend beschriebenen Fällen, bei denen der REG FILE 16 oder eines der Arbeitsregister umgangen wird, geschieht das Aktualisieren des Registers mit dem Ergebnis der ALE 22 vorzugsweise noch immer während des Zyklus (N+1). Jedoch erhält die ALE 22 zur gleichen Zeit die Aktualisierungsdaten und muß somit nicht warten, bis der REG FILE 16 oder das Arbeitsregister aktualisiert ist.
- Die CPU 10 weist ferner einen Steuerungs-Logikblock 44 auf, der Mikrobefehle zu decodieren und in Verbindung mit einem CPU-Befehlszyklustakt (CLK) verschiedene Steuer- und Adressensignale zu generieren vermag, die für den Betrieb der CPU 10 erforderlich sind.
- Gemäß der vorstehenden Beschreibung leuchtet es ein, daß die Erfindung eine bedeutende Erhöhung der Geschwindigkeit für die Operationsarten schafft, bei denen ein Speicherelement, z.B. ein Registerfile-Speicherplatz oder ein Arbeitsregister aktualisiert werden muß mit einem Ergebnis einer vorhergehenden Operation und gleichzeitig auf sie zugegriffen werden muß, um einen Operanden für eine nachfolgende Operation zu liefern. Die Erfindung dient dazu, den Ausgang der nachfolgenden Operation direkt an die ALE 22 zu übertragen, ohne die zusätzliche Verzögerung zu erleiden, die zum Aktualisieren des Speicherelementes und dann zum nachfolgenden Zugreifen auf es erforderlich ist.
Claims (10)
1. Verfahren zum Betreiben einer Arithmetik-Pipeline, die
eine adressierbare lokale Speichereinrichtung (16) mit einer
Vielzahl von Speicherplätzen zum Speichern von Operanden
aufweist, wobei die Pipeline Arbeitsregister-Einrichtungen (32,
34), auf die von der Speichereinrichtung getrennt zugegriffen
wird, zum Speichern von Zwischenergebnissen von an den
Operanden durchgeführten Operationen umfaßt, ferner mit einer
ALE-Einrichtung (22) mit Eingängen zum Empfangen eines ersten
Operanden und eines zweiten Operanden von der
Speichereinrichtung oder von den Arbeitsregister-Einrichtungen, wobei
die ALE-Einrichtung einen Ausgang zum Ausgeben des
Ergebnisses einer am ersten Operanden und am zweiten Operanden
ausgeführten Operation aufweist,
mit den Schritten:
- während eines ersten Zeitintervalls Adressieren der
Speichereinrichtung (16), um aus ihr den ersten Operanden und
einen zweiten Operanden wiederzugewinnen,
- Anlegen des ersten Operanden und des zweiten Operanden
an einen A-Eingang bzw. einen B-Eingang der ALE-Einrichtung
(22), derart, daß an einem Ausgang der ALE-Einrichtung ein
Ergebnis zum Speichern in der Speichereinrichtung oder ein
Zwischenergebnis zum Speichern in der ersten Arbeitsregister-
Einrichtung (32) oder der zweiten Arbeitsregister-Einrichtung
(34) erzeugt wird, wobei die erste
Arbeitsregister-Einrichtung einen mit dem Ausgang der ALE verbundenen Eingang und
einen mit dem A-Eingang der ALE verbundenen Ausgang aufweist,
die zweite Arbeitsregister-Einrichtung einen mit dem Ausgang
der ALE verbundenen Eingang und einen mit dem B-Eingang der
ALE verbundenen Ausgang aufweist,
- während eines zweiten Zeitintervalls Bestimmung, ob eine
nächste Operation entweder für einen ersten Operanden oder
für einen zweiten Operanden das Ergebnis oder das
Zwischenergebnis
benötigt, die während des ersten Zeitintervalls
erzeugt wurden, und
wenn das Ergebnis oder das Zwischenergebnis, die während des
ersten Zeitintervalls erzeugt wurden, als bei der nächsten
Operation entweder für den ersten Operanden oder für den
zweiten Operanden als erforderlich bestimmt wird, umfaßt das
Verfahren die Schritte:
- Aufheben der Verbindung zwischen dem A-Eingang der ALE-
Einrichtung mit der Speichereinrichtung (16) und mit der
ersten Arbeitsregister-Einrichtung (32),
- Verbinden des Ausgangs der ALE-Einrichtung mit dem A-
Eingang der ALE-Einrichtung, um ihr das Ergebnis oder das
Zwischenergebnis zuzuleiten, oder Aufheben der Verbindung
zwischen dem B-Eingang der ALE-Einrichtung mit der
Speichereinrichtung (16) und der zweiten Arbeitsregister-Einrichtung
(34), und
- Verbinden des Ausgangs der ALE-Einrichtung wird mit dem
B-Eingang der ALE-Einrichtung, um ihr das Ergebnis oder das
Zwischenergebnis zuzuleiten.
2. Verfahren nach Anspruch 1, bei dem der
Bestimmungsschritt während eines zweiten Zeitintervalls einen Schritt
des Vergleichens einer der Speichereinrichtung zugeordneten
Aktualisierungsadresse mit einer der Speichereinrichtung
zugeordneten Zugriffsadresse umfaßt, derart, daß feststellbar
ist, ob die beiden Adressen gleich sind.
3. Verfahren nach Anspruch 1, bei dem die Schritte des
Verbindens und des Aufhebens der Verbindung einen Schritt der
Aktivierung einer Multiplexer-Einrichtung (18, 20, 36, 38)
umfaßt, derart, daß ein Eingang, an dem das Ergebnis der ALE-
Einrichtung anliegt, ansteuerbar ist, um den Eingang mit
einem Ausgang der Multiplexer-Einrichtung zu verbinden, wobei
der Ausgang der Multiplexer-Einrichtung mit einem Eingang der
ALE-Einrichtung verbunden ist.
4. Verfahren nach Anspruch 1, bei dem der Schritt des
Bestimmens während eines zweiten Zeitintervalls einen Schritt
der Feststellung umfaßt, ob ein Aktualisierungssignal für die
Arbeitsregister-Einrichtung in Verbindung mit einem
Zugriffssignal für die Arbeitsregister-Einrichtung aktiviert ist.
5. Datenverarbeitungs-Vorrichtung mit einer
Arithmetik-Pipeline, die eine adressierbare lokale Speichereinrichtung
(16) mit einer Vielzahl von Speicherplätzen zum Speichern von
Operanden aufweist, wobei die Pipeline ferner eine
ALE-Einrichtung (22) mit Eingängen zum Empfangen eines ersten
Operanden und eines zweiten Operanden von einem ersten Ausgang
bzw. von einem zweiten Ausgang der Speichereinrichtung
umfaßt, wobei die ALE-Einrichtung einen Ausgang zum Ausgeben
des Ergebnisses einer am ersten und am zweiten Operanden
ausgeführten Operation aufweist,
wobei die Vorrichtung ferner umfaßt:
- eine erste Arbeitsregister-Einrichtung (32), auf die die
Speichereinrichtung getrennt zugreift, zum Speichern von
Zwischenergebnissen von Operationen an den Operanden, wobei die
erste Arbeitsregister-Einrichtung einen mit dem Ausgang der
ALE-Einrichtung verbundenen Eingang und einen mit einem
ersten Eingang der ALE-Einrichtung verbundenen Ausgang
aufweist,
- eine zweite Arbeitsregister-Einrichtung (34), auf die
die Speichereinrichtung getrennt zugreift, zum Speichern von
Zwischenergebnissen von Operationen an den Operanden, wobei
die zweite Arbeitsregister-Einrichtung einen mit dem Ausgang
der ALE-Einrichtung verbundenen Eingang und einen mit einem
zweiten Eingang der ALE-Einrichtung verbundenen Ausgang
aufweist,
- eine Einrichtung (44) zum Adressieren der
Speichereinrichtung während eines ersten Zeitintervalls, um aus ihm
einen ersten Operanden und einen zweiten Operanden
wiederzugewinnen,
- Einrichtungen (18, 20) zum Zuleiten des ersten Operanden
und des zweiten Operanden an den ersten bzw. den zweiten
Eingang der ALE-Einrichtung, derart, daß an einem Ausgang der
ALE-Einrichtung ein Ergebnis oder ein Zwischenergebnis
erzeugt wird,
- Einrichtungen (24, 26, 40, 42) zum Bestimmen während
eines zweiten Zeitintervalls, ob die ALE-Einrichtung entweder
für den ersten Operanden oder für den zweiten Operanden das
Ergebnis oder das Zwischenergebnis benötigt, die während des
ersten Zeitintervalls erzeugt wurden, und
- mit der Betätigung der Bestimmungs-Einrichtung
verbundene und auf sie ansprechende Einrichtungen (18, 20, 36, 38)
zum Aufheben der Verbindung eines der ALE-Eingänge mit dem
Ausgang der Speichereinrichtung und mit dem Ausgang der
zugeordneten Arbeitsregister-Einrichtung und zum Verbinden des
Ausgangs der ALE-Einrichtung entweder mit dem ersten Eingang
oder mit dem zweiten Eingang der ALE-Einrichtung, wenn eine
nächste Operation entweder für den ersten Operanden oder für
den zweiten Operanden das Ergebnis oder das Zwischenergebnis
benötigt, die während des ersten Zeitintervalls erzeugt
wurden.
6. Datenverarbeitungs-Vorrichtung nach Anspruch 5,
bei der die Bestimmungs-Einrichtung Vergleichereinrichtungen
(24, 26) zum Vergleichen einer Aktualisierungsadresse, die
der Speichereinrichtung (16) zugeordnet ist, mit einer
Zugriffsadresse, die der Speichereinrichtung (16) zugeordnet
ist, aufweist, derart, daß feststellbar ist, ob die beiden
Adressen gleich sind.
7. Datenverarbeitungs-Vorrichtung nach Anspruch 5,
bei der die Verbindungs-Einrichtungen
Multiplexer-Einrichtungen (18, 20, 36, 38) mit einem mit dem Ausgang der
ALE-Einrichtung verbundenen Eingang aufweist, wobei ein Ausgang der
Multiplexer-Einrichtungen mit einem der Eingänge der
ALE-Einrichtung verbunden ist.
8. Datenverarbeitungs-Vorrichtung nach Anspruch 5,
bei der die Bestimmungs-Einrichtung Einrichtungen (40, 42)
zum Feststellen umfaßt, ob ein Aktualisierungssignal für die
Arbeitsregister-Einrichtungen (32, 34) in Verbindung mit
einem Zugriffssignal für die Arbeitsregister-Einrichtungen (32,
34) aktiviert ist.
9. Datenverarbeitungs-Vorrichtung nach Anspruch 5,
bei der die Speichereinrichtung von
Registerfile-Einrichtungen gebildet ist, die als je von m Bit gebildeten n
Speicherplätze organisiert sind, wobei ein bestimmter Platz der n
Speicherplätze durch eine Registerfile-Aktualisierungsadresse
und/oder durch eine Registerfile-Zugriffsadresse bezeichnet
ist.
10. Datenverarbeitungs-Vorrichtung nach Anspruch 5,
bei der die Bestimmungs-Einrichtung auf einen Inhalt eines
einem Befehl zugeordneten Mikrobefehls anspricht.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/405,794 US5123108A (en) | 1989-09-11 | 1989-09-11 | Improved cpu pipeline having register file bypass and working register bypass on update/access address compare |
PCT/US1990/001643 WO1991003784A1 (en) | 1989-09-11 | 1990-03-28 | Improved cpu pipeline having register file bypass on update/access address compare |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69027932D1 DE69027932D1 (de) | 1996-08-29 |
DE69027932T2 true DE69027932T2 (de) | 1997-02-27 |
Family
ID=23605267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69027932T Expired - Fee Related DE69027932T2 (de) | 1989-09-11 | 1990-03-28 | Cpu-pipeline mit registerfile-bypass durch adressvergleich bei aktualisierungen/zugriffen |
Country Status (7)
Country | Link |
---|---|
US (1) | US5123108A (de) |
EP (1) | EP0491693B1 (de) |
JP (1) | JP2840444B2 (de) |
AU (1) | AU643432B2 (de) |
CA (1) | CA2064819C (de) |
DE (1) | DE69027932T2 (de) |
WO (1) | WO1991003784A1 (de) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0594546A (ja) * | 1991-02-05 | 1993-04-16 | American Teleph & Telegr Co <Att> | デジタルプロセツサ |
JPH04275628A (ja) * | 1991-03-01 | 1992-10-01 | Mitsubishi Electric Corp | 演算処理装置 |
JP2693651B2 (ja) * | 1991-04-30 | 1997-12-24 | 株式会社東芝 | 並列プロセッサー |
US5488729A (en) * | 1991-05-15 | 1996-01-30 | Ross Technology, Inc. | Central processing unit architecture with symmetric instruction scheduling to achieve multiple instruction launch and execution |
JPH0520066A (ja) * | 1991-07-16 | 1993-01-29 | Mitsubishi Electric Corp | 並列計算機 |
JP2539974B2 (ja) * | 1991-11-20 | 1996-10-02 | 富士通株式会社 | 情報処理装置におけるレジスタの読出制御方式 |
DE69334046T2 (de) * | 1992-02-28 | 2007-02-08 | Oki Electric Industry Co., Ltd. | Cache-Speichervorrichtung |
JPH0612107A (ja) * | 1992-06-02 | 1994-01-21 | Mitsubishi Electric Corp | シーケンス演算プロセッサおよびシーケンス演算処理装置 |
AU4219693A (en) * | 1992-09-30 | 1994-04-14 | Apple Computer, Inc. | Inter-task buffer and connections |
EP0650116B1 (de) * | 1993-10-21 | 1998-12-09 | Sun Microsystems, Inc. | Gegenflusspipelineprozessor |
US5704052A (en) * | 1994-11-06 | 1997-12-30 | Unisys Corporation | Bit processing unit for performing complex logical operations within a single clock cycle |
US5870581A (en) * | 1996-12-20 | 1999-02-09 | Oak Technology, Inc. | Method and apparatus for performing concurrent write operations to a single-write-input register file and an accumulator register |
US5799163A (en) * | 1997-03-04 | 1998-08-25 | Samsung Electronics Co., Ltd. | Opportunistic operand forwarding to minimize register file read ports |
US5996065A (en) * | 1997-03-31 | 1999-11-30 | Intel Corporation | Apparatus for bypassing intermediate results from a pipelined floating point unit to multiple successive instructions |
US5872986A (en) * | 1997-09-30 | 1999-02-16 | Intel Corporation | Pre-arbitrated bypassing in a speculative execution microprocessor |
US6131108A (en) * | 1998-03-31 | 2000-10-10 | Lsi Logic Corporation | Apparatus, and associated method, for generating multi-bit length sequences |
US6088784A (en) * | 1999-03-30 | 2000-07-11 | Sandcraft, Inc. | Processor with multiple execution units and local and global register bypasses |
EP1124181B8 (de) * | 2000-02-09 | 2012-03-21 | Texas Instruments Incorporated | Datenverarbeitungsvorrichtung |
US7206927B2 (en) * | 2002-11-19 | 2007-04-17 | Analog Devices, Inc. | Pipelined processor method and circuit with interleaving of iterative operations |
US20040249782A1 (en) * | 2003-06-04 | 2004-12-09 | International Business Machines Corporation | Method and system for highly efficient database bitmap index processing |
WO2010043401A2 (en) | 2008-10-15 | 2010-04-22 | Martin Vorbach | Data processing device |
US20190377580A1 (en) * | 2008-10-15 | 2019-12-12 | Hyperion Core Inc. | Execution of instructions based on processor and data availability |
TWI607375B (zh) * | 2012-11-05 | 2017-12-01 | 義隆電子股份有限公司 | 提升處理器之數值比較效能方法及應用在電子裝置進行數值比較的處理器 |
US9569214B2 (en) * | 2012-12-27 | 2017-02-14 | Nvidia Corporation | Execution pipeline data forwarding |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4594682A (en) * | 1982-12-22 | 1986-06-10 | Ibm Corporation | Vector processing |
GB8401807D0 (en) * | 1984-01-24 | 1984-02-29 | Int Computers Ltd | Pipelined data processing apparatus |
AU553416B2 (en) * | 1984-02-24 | 1986-07-17 | Fujitsu Limited | Pipeline processing |
JPS6386033A (ja) * | 1986-09-30 | 1988-04-16 | Fujitsu Ltd | パイプライン処理方式 |
JPH0810430B2 (ja) * | 1986-11-28 | 1996-01-31 | 株式会社日立製作所 | 情報処理装置 |
US4901267A (en) * | 1988-03-14 | 1990-02-13 | Weitek Corporation | Floating point circuit with configurable number of multiplier cycles and variable divide cycle ratio |
-
1989
- 1989-09-11 US US07/405,794 patent/US5123108A/en not_active Expired - Lifetime
-
1990
- 1990-03-28 JP JP2505555A patent/JP2840444B2/ja not_active Expired - Lifetime
- 1990-03-28 EP EP90905845A patent/EP0491693B1/de not_active Expired - Lifetime
- 1990-03-28 CA CA002064819A patent/CA2064819C/en not_active Expired - Lifetime
- 1990-03-28 DE DE69027932T patent/DE69027932T2/de not_active Expired - Fee Related
- 1990-03-28 WO PCT/US1990/001643 patent/WO1991003784A1/en active IP Right Grant
- 1990-03-28 AU AU53539/90A patent/AU643432B2/en not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
JP2840444B2 (ja) | 1998-12-24 |
EP0491693A1 (de) | 1992-07-01 |
JPH05503381A (ja) | 1993-06-03 |
CA2064819C (en) | 2000-02-08 |
AU643432B2 (en) | 1993-11-18 |
WO1991003784A1 (en) | 1991-03-21 |
DE69027932D1 (de) | 1996-08-29 |
CA2064819A1 (en) | 1991-03-12 |
US5123108A (en) | 1992-06-16 |
EP0491693B1 (de) | 1996-07-24 |
AU5353990A (en) | 1991-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69027932T2 (de) | Cpu-pipeline mit registerfile-bypass durch adressvergleich bei aktualisierungen/zugriffen | |
DE68928677T2 (de) | Verfahren und digitaler Computer zur Vorverarbeitung mehrerer Befehle | |
DE69115344T2 (de) | Vorverarbeitungsprozessor zur Verbindung von Befehlen für einen Cache-Speicher | |
DE68907518T2 (de) | Inhaltsadressierte Speicheranordnung. | |
DE3686991T2 (de) | Mechanismus fuer parallele speicherdatenabholung und befehlsausfuehrung in einem prozessor mit reduziertem befehlssatz. | |
DE3424962C2 (de) | ||
DE69017178T2 (de) | Datenverarbeitungssystem mit Vorrichtung zur Befehlskennzeichnung. | |
DE2542751C2 (de) | Datenverarbeitungsanlage | |
DE3688824T2 (de) | Datenverarbeitungssystem. | |
DE69228360T2 (de) | Registerlesekontrolle | |
DE69738188T2 (de) | Verfahren und apparat für eine erhöhte genauigkeit bei der verzweigungsvorhersage in einem superskalaren mirkroprozessor | |
DE69030931T2 (de) | Mehrfachsequenzprozessorsystem | |
DE3586603T2 (de) | Datenprozessor fuer interpretierende und kompilierte sprache. | |
DE69032276T2 (de) | Verfahren und Anordnung zur Verbesserung der Datenspeicherungsgeschwindigkeit eines Computersystems | |
DE69032174T2 (de) | Datenprozessor mit der Fähigkeit, zwei Befehle gleichzeitig auszuführen | |
DE69418146T2 (de) | Temporärer Registersatz für einen superpipeline-superskalaren Prozessor | |
DE4335475A1 (de) | Datenverarbeitungseinrichtung mit Cache-Speicher | |
DE2714805A1 (de) | Datenverarbeitungssystem | |
DE3689389T2 (de) | Datenverarbeitungsprozessor. | |
DE68928187T2 (de) | Inhaltadressierte Speicherzellenanordnung | |
EP0010186B1 (de) | Vorrichtung zum Bearbeiten bezeichneter Hinweise | |
DE2715073B2 (de) | Mikroprogranunierte Rechner-Steuervorrichtung | |
DE19983098B4 (de) | Mehrfach-Bitanzeige zur Behandlung von Schreib-nach-Schreib-Fehlern und zur Eliminierung von Bypass-Komparatoren | |
DE69732793T2 (de) | Acht-bit-mikrokontroller mit risc-architektur | |
DE69616718T4 (de) | Vorrichtung und verfahren zur bestimmung von adressen fehlausgerichteter daten |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: LG SEMICON CO., LTD., CHEONGJU, KR |
|
8327 | Change in the person/name/address of the patent owner |
Owner name: LG ELECTRONICS INC., SEOUL/SOUL, KR |
|
8328 | Change in the person/name/address of the agent |
Representative=s name: COHAUSZ & FLORACK, 40472 DUESSELDORF |
|
8339 | Ceased/non-payment of the annual fee |