DE69327927T2 - Schnelles Vorausholen und Zuteilung von Befehlen mittels vorausschauender Anmerkungen von früher vorausgeholten - Google Patents

Schnelles Vorausholen und Zuteilung von Befehlen mittels vorausschauender Anmerkungen von früher vorausgeholten

Info

Publication number
DE69327927T2
DE69327927T2 DE69327927T DE69327927T DE69327927T2 DE 69327927 T2 DE69327927 T2 DE 69327927T2 DE 69327927 T DE69327927 T DE 69327927T DE 69327927 T DE69327927 T DE 69327927T DE 69327927 T2 DE69327927 T2 DE 69327927T2
Authority
DE
Germany
Prior art keywords
instruction
address
cache
computer system
branch
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
DE69327927T
Other languages
English (en)
Other versions
DE69327927D1 (de
Inventor
William N. Joy
Kit Sang Tam
Alfred K.W. Yeung
Robert Yung
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of DE69327927D1 publication Critical patent/DE69327927D1/de
Application granted granted Critical
Publication of DE69327927T2 publication Critical patent/DE69327927T2/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 or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

    1. Gebiet der Erfindung:
  • Die vorliegende Erfindung bezieht sich auf das Gebiet der Computersysteme. Insbesondere bezieht sich die vorliegende Erfindung auf das Vorabrufen und die Abfertigung von Befehlen auf Computersystemen.
  • 2. Hintergrund:
  • Früher wurde bei der Abfertigung eines Verzweigungsbefehls das Abrufen und die Abfertigung von Befehlen auf einem Computersystem solange angehalten, bis die Verzweigungsrichtung und die Zieladresse aufgelöst waren. Da die Folge dieses "Leerlauf-Ansatzes" eine niedrigere Systemleistung war, wird er in den heutigen Hochleistungscomputern selten verwendet. Um eine höhere Systemleistung zu erreichen, wurden verschiedene Techniken entwickelt, um mit dem Abrufen und der Abfertigung von Befehlen effektiv fortzufahren, ohne auf die Auflösung der Verzweigungsrichtung warten zu müssen. Ein wesentlicher Punkt für die effektive Weiterbearbeitung des Vorabrufens und Abfertigens von Befehlen ist die Fähigkeit, die Verzweigungsrichtung vorherzusagen. Es gibt verschiedene allgemein bekannte Ansätze für die Vorhersage der Verzweigungsrichtung:
  • 1. Statische Vorhersage: Bei diesem Ansatz sagt der Verzweigungsvorhersagealgorithmus immer dieselbe Richtung vorher, nämlich die Richtung, die als die Richtung mit der höheren Wahrscheinlichkeit festgelegt ist. Ein Beispiel dafür die Richtung "Verzweigung genommen".
  • 2. Dynamische Software-Vorhersage: Bei diesem Ansatz sagt der Verzweigungsvorhersagealgorithmus die Verzweigungsrichtung unter Nutzung von Hinweisen des Software-Verzweigungsvorhersagebits vorher.
  • 3. Dynamische Hardware-Vorhersage: Bei diesem Ansatz sagt der Verzweigungsvorhersagealgorithmus die Verzweigungsrichtung aufgrund der Informationen zur Verzweigungsvorgeschichte vorher, die in einer Verzweigungsvorhersagetabelle enthalten sind.
  • Der Ansatz der statischen Vorhersage ist einfach zu implementieren, aber die Trefferquote der Vorhersagen beträgt im allgemeinen weniger als 75%. Eine solche Trefferquote ist im allgemeinen zu niedrig für eine hohe Skalarität und/oder Hochleistungscomputer, da die Kosten, um eine Fehlvorhersage auszugleichen, hoch sind. Der Ansatz der dynamischen Software-Vorhersage funktioniert in der Regel sehr gut, wenn sie in Verbindung mit der als "Trace-Scheduling" bekannten Kompilierungstechnik angewandt wird. Ohne Trace- Scheduling ist die Trefferquote bei Vorhersagen allgemein sehr schlecht. Leider ist Trace-Scheduling auf einige Programme und Implementierungen ziemlich schwierig anzuwenden. Die dynamische Hardware-Vorhersage hat im allgemeinen eine ziemlich hohe Trefferquote bei den Vorhersagen. Aber sie erhöht die Komplexität des Aufbaus und macht die Verwendung von zusätzlicher Hardware zur Aufnahme der selbständigen 2 Verzweigungsvorhersagetabelle notwendig. Außerdem ist es ziemlich schwierig, die Größe der Verzweigungsvorhersagetabelle entsprechend der ständig zunehmenden Cache-Größe oder der ständig zunehmenden Ausführungsrate zu erhöhen. Außerdem wird die Komplexität zur Wahrung der Cache-Kohärenz erhöht.
  • Daher ist es erstrebenswert, einen Ansatz zu haben, der eine in hohem Maße zuverlässige Trefferquote bei der Verzweigungsvorhersage liefert, ohne daß die Komplexität und/oder die Hardware wesentlich umfangreicher wird. Weiterhin ist es erstrebenswert, daß dieser Ansatz einfach zu erweitern wäre, um mit der ständig zunehmenden Cache-Größe und der ständig anwachsenden Geschwindigkeit der Zentraleinheit Schritt zu halten.
  • Weiterhin ist es bei so einem Ansatz für eine in hohen Maße zuverlässige Verzweigungsvorhersage sinnlos, einen Großteil der Leistungsfähigkeit, die man gewonnen hat, darauf zu verwenden, die nächste Heranholadresse festzulegen, unabhängig davon, ob es die Zieladresse oder die nächste sequentielle Heranholadresse ist. Daher ist es weiterhin erstrebenswert, daß der Ansatz auch eine in hohem Maße zuverlässige dynamische Vorhersage über die nächste Heranholadresse liefert. Ebenso macht es keinen Sinn, einen Großteil der gewonnenen Leistung auf das Vorabrufen von Befehlen zur Steuerübertragung zu verwenden. Daher ist es weiterhin erstrebenswert, daß der Ansatz das Vorabrufen der Steuerübertragung mit einer Verzögerungszeit von Null gewährleistet.
  • EP-A-0 401 992 (Advanced Micro Devices, Inc.) offenbart ein Verfahren und eine Vorrichtung zur Beschleunigung von Verzweigungsbefehlen, die die dynamische Verzweigungsvorhersage anwenden.
  • Wie hier im folgenden offenbart ist, liefert die vorliegende Erfindung, wie sie in den nachstehenden Ansprüchen definiert ist, ein Verfahren und eine Vorrichtung zum schnellen Vorabrufen und zur schnellen Abfertigung von Befehlen unter der Verwendung von früheren Abfertigungsvorhersageanmerkungen, auch bekannt als In-Cache-Vorhersage, die die oben beschriebenen Ziele erreicht und die angestrebten Ergebnisse liefert.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Offenbart werden ein Verfahren und eine Vorrichtung zum schnellen Vorabrufen und zur schnellen Abfertigung von Befehlen unter Verwendung einer früheren Abfertigungsvorhersageanmerkung, auch bekannt als In-Cache-Vorhersage. Es werden m Verzweigungsvorhersagefelder (BRPD-Felder) zu jedem Befehlssatz von n Befehlen jeder Cache-Zeile eines Befehls- Caches hinzugefügt, wobei m kleiner oder gleich n ist. Die m BRPD-Felder werden benötigt, um m Verzweigungsvorhersagen für m "dominante" Befehle' der n entsprechenden Befehle zu speichern. Die BRPD-Felder einer Cache-Zeile werden entsprechend einer festgelegten Initialisierungsvorgehensweise eines Verzweigungsvorhersagealgorithmus initialisiert, während die Cache-Zeile erstmals in den Befehls-Cache eingebracht wird. Gleichzeitig mit den entsprechenden Befehlssätzen der Cache-Zeile wird auf die BRPD-Sätze der Cache- Zeile zugegriffen. Eine BRPD wird aus dem dem ausgewählten Befehlssatz entsprechenden BRPD-Satz ausgewählt. Die ausgewählte BRPD wird entsprechend einer festgelegten Aktualisierungsvorgehensweise des Verzweigungsvorhersagealgorithmus aktualisiert, wenn die tatsächliche Verzweigungsrichtung aufgelöst wird.
  • Weiterhin werden jedem Befehlssatz von n Befehlen jeder Cache-Zeile des Befehls-Caches k Nächste-Heranholadresse- Vorhersage-Felder (NFAPD-Felder) gegeben, wobei k kleiner oder gleich m ist. Die k NFAPD-Felder werden dazu verwendet, die k Vorhersagen über die nächste Heranholadresse für k "dominante" Befehle der n entsprechenden Befehle zu spei- g chern. Die NFAPDs sagen die nächsten Zieladressen der entsprechenden "dominanten" Befehle vorher, wenn die entsprechenden BRPD-Felder vorhersa en, daß "die Verzweigung genommen wird"; sonst sagen sie die nächsten sequentiellen Adressen der entsprechenden "dominanten" Befehle vorher. Ähnlich den BRPD-Feldern werden die NFAPD-Felder einer Cache-Zeile entsprechend einer festgelegten Initialisierungsvorgehensweise eines Vorhersagealgorithmus für die nächste Heranholadresse initialisiert, während die Cache-Zeile erstmals in den Befehls-Cache eingebracht wird. Auf die NFAPD-Sätze einer Cache-Zeile wird außerdem gleichzeitig mit den entsprechenden Befehlssätzen der Cache-Zeile zugegriffen. Eine NFAPD wird aus dem dem ausgewählten Befehlssatz entsprechenden NFAPD-Satz ausgewählt. Die ausgewählte NFAPD wird entsprechend einer festgelegten Aktualisierungsvorgehensweise des Vorhersagealgorithmus für die nächste Heranholadresse aktualisiert, wenn die tatsächliche nächste Heranholadresse bestimmt wird.
  • Die ausgewählte NFAPD wird sofort im Register für die nächste Heranholadresse (NFA-Register) der Befehlsvorabruf- und -abfertigungseinheit gespeichert; die ausgewählte NFAPD kann so als die NFA für den nächsten Befehls-Cache-Zugriff verwendet werden. Die NFA (d. h. die ausgewählte NFAPD des vorhergehenden Befehls-Cache-Zugriffs) wird außerdem dazu verwendet, die BRPD und die NFAPD während des nächsten Befehls-Cache-Zugriffs auszuwählen. Im Ergebnis können Befehle sowohl entlang des sequentiellen Pfads als auch entlang des Zieladressenpfads ständig mit einer Vorabrufverzögerungszeit von Null vorabgerufen werden.
  • Weiterhin werden zu jedem Satz von n Befehlen jeder Cache-Zeile des Befehls-Caches n Befehlsklassen-Felder (IKlassen-Felder) hinzugefügt. Die n IKlassen-Felder werden verwendet, um n Befehlsklassen für die n entsprechenden Befehle zu speichern. Die Befehlsklassen einer Cache-Zeile werden entweder vorbestimmt und vorgespeichert, bevor die Cache-Zeile erstmals in den Befehls-Cache eingebracht wird oder sie werden bestimmt und gespeichert, während die Cache- Zeile erstmals in den Befehls-Cache eingebracht wird. Ähnlich den BRPDs und die NFAPDs wird auf die IKlassen-Sätze einer Cache-Zeile gleichzeitig mit den entsprechenden Befehlssätzen der Cache-Zeile zugegriffen. Eine IKlasse wird aus dem dem ausgewählten Befehlssatz entsprechenden IKlassen-Satz ausgewählt. Die NFA wird auch dazu verwendet, die IKlasse auszuwählen. Die ausgewählte IKlasse wird in Verbindung mit der tatsächlich genommenen Verzweigungsrichtung und der tatsächlichen nächsten Heranholadresse, die durch die festgelegten BRPD- und NFAPD-Aktualisierungsvorgehensweisen bestimmt wurde, verwendet, um die angemessenen Aktualisierungsoperationen vorzuschreiben.
  • Bei einem Ausführungsbeispiel ist n gleich 4, und m und k sind beide gleich 1. Jedes BRPD-Feld einer eingehenden Cache-Zeile wird so initialisiert, daß für alle Klassen von Steuerübertragungsbefehlen "Verzweigung wird nicht genommen" vorhergesagt wird. Wenn andererseits ein ausgewähltes BRPD- Feld der Cache-Zeile, auf die zugegriffen wird, die Verzweigungsrichtung richtig vorhersagt, wird es nicht aktualisiert. Wenn das ausgewählte BRPD-Feld der Cache-Zeile, auf die zugegriffen wird, die Verzweigungsrichtung falsch vorhersagt, wird es mit der tatsächlich genommenen Verzweigungsrichtung aktualisiert. Für alle Klassen von Steuerübertragungsbefehlen werden die NFAPD-Felder einer eingehenden Cache-Zeile so initialisiert, daß sie die entsprechenden nächsten Heranholadressen so vorhersagen, daß sie gleich der Summe des aktuellen Befehlszählers plus der Cache-Heranholgröße sind. Wenn das ausgewählte NFAPD-Feld einer Cache- Zeile, auf die zugegriffen wird, die nächste Heranholadresse richtig vorhersagt, wird es nicht aktualisiert. Wenn andererseits das ausgewählte NFAPD-Feld einer Cache-Zeile, auf die zugegriffen wird, die nächste Heranholadresse falsch vorhersagt, wird es mit der tatsächlichen nächsten Heranhol- adresse aktualisiert, wenn die Verzweigungsrichtung richtig vorhergesagt wurde; anderenfalls wird es mit einer Adresse aktualisiert, die gleich der Summe des aktuellen Befehlszählers plus der Cache-Heranholgröße ist.
  • Bei einem weiteren Ausführungsbeispiel wird ein ausgewähltes BRPD-Feld der Cache-Zeile, auf die zugegriffen wird, mit der richtigen Verzweigungsrichtungsvorhersage aktualisiert, auch wenn es die Verzweigungsrichtung richtig vorhersagt.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Aus der nun folgenden detaillierten Beschreibung der bevorzugten Ausführungsform der Erfindung werden die Ziele, Merkmale und Vorteile der vorliegenden Erfindung deutlich werden. Dabei wird Bezug auf die Zeichnungen genommen, wobei
  • Fig. 1 ein Funktionsdiagramm eines Computersystems ist, das die Lehren der vorliegenden Erfindung aufweist.
  • Fig. 2 stellt den Befehls-Cache der vorliegenden Erfindung dar.
  • Fig. 3 stellt die Befehlsklassen-Felder, die Verzweigungsvorhersage-Felder und die Nächste-Heranholadresse- Vorhersage-Felder der vorliegenden Erfindung dar.
  • Fig. 4 zeigt beispielhaft den Inhalt der Verzweigungs- vorhersage-Felder und der Nächste-Heranholadresse-Vorher- sage-Felder für eine beispielhafte Satzvorhersageanmerkung in verschiedenen Szenarien für eine Ausführungsform des Befehls-Caches.
  • Fig. 5a bis 5b stellen zwei Ausführungsformen der Auswahllogik des Befehls-Caches dar.
  • Fig. 6a bis 6b veranschaulichen Verzweigungsvorhersage-Treffer-, Nächste-Heranholadresse-Vorhersage-Trefferund Nächste-Heranholadresse-Bestimmungen durch die Befehls- vorabruf- und -abfertigungseinheit der vorliegenden Erfindung.
  • Fig. 7 stellt den Arbeitsfluß des Befehls-Caches der vorliegenden Erfindung dar.
  • Fig. 8a bis 8b veranschaulichen den Arbeitsfluß der Vorabruf- und Abfertigungseinheit der vorliegenden Erfindung.
  • Fig. 9a bis 9c veranschaulichen die Initialisierungs- und Aktualisierungsvorgehensweise eines bestimmten Vorhersagealgorithmus für eine Verzweigung und die nächste Heranholadresse.
  • AUSFÜHRLICHE BESCHREIBUNG GEGENWÄRTIG BEVORZUGTER UND ALTERNATIVE AUSFÜHRUNGSFORMEN
  • Offenbart werden ein Verfahren und eine Vorrichtung zur , schnellen Befehlsabfertigung unter Verwendung von früheren Abfertigungsvorhersageanmerkungen, auch bekannt als In- Cache-Vorhersage. Besonders kann die vorliegende Erfindung in Computersystemen angewendet werden, in denen ein in hohem Maße effizientes Befehlsvorabrufen und -abfertigen angestrebt wird. In der folgenden Beschreibung werden zur anschaulicheren Darstellung spezielle Zahlen, Materialien und Konfigurationen genannt, um ein tiefgehendes Verständnis der vorliegenden Erfindung zu gewährleisten. Für den Fachmann ist jedoch klar, daß die vorliegende Erfindung ohne diese speziellen Einzelheiten ausgeführt werden kann. an anderen Stellen werden allgemein bekannte Systeme in graphischer Form oder als Blockdiagramme gezeigt, um die vorliegende Erfindung nicht unnötig zu verschleiern.
  • Nun wird, bezugnehmend auf Fig. 1, ein funktionales Blockdiagramm gezeigt, das ein Computersystem darstellt, das den Lehren der vorliegenden Erfindung folgt. Es wird ein Computersystem 10 gezeigt, das eine mit einer Anzahl von Ausführungseinheiten 14 verbundene Befehlsvorabruf- und - abfertigungseinheit 12 aufweist. Das Computersystem 10 weist weiterhin einen Befehls-Lache 16 und einen mit einer Speichereinheit 20 verbundenen Daten-Lache 18 auf. Der Befehls- und der Daten-Lache, 16 und 18, sind ferner jeweils mit der Befehlsvorabruf- und -abfertigungseinheit 12 und den Ausführungseinheiten 14 gekoppelt. Zusätzlich weist das Computersystem 10 eine mit der Befehlsvorabruf- und -abfertigungseinheit 12, dem Befehls- und Daten-Lache, 16 und 18, und der Speichereinheit 20 verbundene Speichermanagementeinheit 22 auf. Sie rufen gemeinsam Befehle aus der Speichereinheit 20 ab, senden diese zur Ausführung an die Ausführungseinheiten 14 und speichern die Ausführungsergebnisse wieder in der Speichereinheit 20. Abgesehen von der Befehlsvorabruf- und -abfertigungseinheit 12 und dem Befehls-Cache 16 sollen die anderen Elemente 14 und 18 bis 22, ein breites Spektrum dieser Elemente, die in, den meisten, Computersystemen vorhanden sind, repräsentieren. Der Aufbau und die grundsätzlichen Funktionen dieser anderen Elemente 14 und 18 bis 22 sind allgemein bekannt und werden nicht weiter beschrieben. Die Befehlsvorabruf- und -abfertigungs- einheit 12 und das Befehls-Cache 16 werden im folgenden in weiteren Einzelheiten beschrieben. Dabei wird Bezug auf die restlichen Figuren genommen.
  • Obwohl die vorliegende Erfindung anhand des in Fig. 1 dargestellten Computersystems aufgrund der folgenden Beschreibung beschrieben wird, ist es verständlich, daß die vorliegende Erfindung in anderen Computersystemen mit abweichenden Architekturen angewendet werden kann. Insbesondere kann die vorliegende Erfindung in einem Computersystem ohne Speichermanagementeinheit eingesetzt werden. Weiterhin kann die Erfindung bei einem kombinierten Befehls-/Daten-Cache oder nur einem Befehls-Cache eingesetzt werden.
  • Nun wird, bezugnehmend auf Fig. 2, ein Blockdiagramm gezeigt, das den Befehls-Cache der vorliegenden Erfindung darstellt. Es wird der Befehls-Cache 16 mit einem Befehls- Array 24, einem entsprechenden Tag-Array 26, einem entsprechenden Befehlsklassen-Array 27 und einem entsprechenden Vorhersageanmerkungs-Array 28 und einer Auswahllogik 30 gezeigt. Die Arrays 24 bis 28 sind mit der Auswahllogik 30 verbunden. Gemeinsam speichern und senden sie Befehle und entsprechende Befehlsklassen, Verzweigungsvorhersagen, und Vorhersagen über die nächste Heranholadresse an die Befehlsvorabruf- und -abfertigungseinheit.
  • Obwohl Fig. 2, um das Verständnis zu erleichtern, die Arrays 24 bis 28 als eigenständige Einheiten zeigt, ist es klar, daß die vorliegende Erfindung auch ausgeführt werden kann, wenn die Arrays 24 bis 28 miteinander kombiniert sind oder eine beliebige Kombination dieser Arrays vorliegt.
  • Das Befehls-Array 24 umfaßt eine Anzahl von Cache- Zeilen, z. B. 34, von denen jede r Sätze von Befehlsblöcken, z. B. 44a bis 44*, umfaßt. Jeder Befehlssatz, z. B. 44a umfaßt n Befehle. Das Tag-Array 26 umfaßt entsprechende Tag-Einträge, z. B. 36, von denen jeder r Adreß-Tag-Sätze und zugeordnete Steuerinformationen, z. B. 46a bis 46*, umfaßt. Jeder Adreß-Tag-Satz und zugeordnete Steuerinformationen, z. B. 46a, umfaßt einen Adreß-Tag und zugeordnete Steuerinformationen, wie Gültig- und Verwendungsbits, für die entsprechenden n Befehle. Der Inhalt der Adreß-Tags und zugeordneten Steuerinformationen, z. B. 46a bis 46*, sowie deren Relation zu den Befehlsblöcken, z. B. 44a bis 44*, sind allgemein bekannt und werden nicht näher beschrieben werden.
  • Das Befehlsklassen-Array 27 umfaßt entsprechende Befehlsklasseneinträge z. B. 37, von denen, jeder r Befehlsklassensätze, z. B. 47a bis 47*, umfaßt. Das Vorhersageanmerkungs - Array 28 umfaßt entsprechende Vorhersageanmerkungseinträge, z. B. 38, von denen jeder r Vorhersageanmerkungssätze, z. B. 48a bis 48*, umfaßt. Der Inhalt eines Befehlsklassensatzes, z. B. 47a, der Inhalt eines Vorhersageanmerkungssatzes, z. B. 48a und deren Relation zu dem entsprechenden Befehlsblocksatz, z. B. 44a, sind in den Fig. 3 bis 4 veranschaulicht.
  • Wie in Fig. 3 gezeigt, umfaßt jeder Befehlsklassensatz 47 n Befehlsklassen (IKlassen) 32 für die entsprechenden n Befehle. Die n Befehlsklassen 47 speichern die Kodierung für die Befehlsklassen der entsprechenden n Befehle. Spezielle Beispiele für Befehlsklassen sind Befehlszähler-Relativverzweigung (PC-Relativverzweigung), Register-Indirektverzweigung, Speicherzugriff, arithmetische und Fließkommaoperationen. Bei einer Ausführungsform werden die Befehle dekodiert und die Befehlsklassenkodierungen vom Befehlsfache in der IKlasse gespeichert, während die fache-Zeile in den Befehls-Lache gebracht wird. Bei einer alternativen Ausführungsform werden die Befehle dekodiert und die Befehlsklassenkodierungen in den IKlassen gespeichert, bevor die Lache-Zeile in den Befehls-Lache gebracht wird.
  • Es wird immer noch Bezug auf Fig. 3 genommen. Jeder Vorhersageanmerkungssatz 48 umfaßt m BRPDs und k NFAPDs für die entsprechenden n Befehle, wobei m und k kleiner oder gleich n sind. Die m BRPDs und k NFAPDs speichern jeweils die Verzweigungsvorhersagen und die Vorhersagen über die nächste Heranholadresse für die m und k "dominanten" Befehle der jeweils entsprechenden n Befehle. Befehlsdominanz kann auf verschiedene allgemein bekannte Arten implementiert werden, z. B. einschließlich letzter Zugriff oder in Programmreihenfolge. Die BRPDs und die NFAPDs werden entsprechend der Initialisierungsvorgehensweise eines Vorhersagealgorithmus für eine Verzweigung und die nächste Heranholadresse vom Befehls-Lache initialisiert, wenn die Lache-Zeile erstmals in den Befehls-Lache gebracht wird. Danach wird auf die BRPDs und die NFAPDs zugegriffen, sie werden ausgewählt und durch die Befehlsvorabruf- und -abfertigungseinheit in Übereinstimmung mit der Aktualisierungsvorgehensweise des Vorhersagealgorithmus für eine Verzweigung und die nächste Heranholadresse aktualisiert, wenn die Treffer oder Fehlversuche bezüglich der Vorhersagen über die Verzweigung und der nächsten Heranholadresse von der Befehlsvorabruf- und - abfertigungseinheit bestimmt werden. Die Initialisierung, die Auswahl und die Aktualisierung der BRPDs 40 und der NFAPDs 42 wird detaillierter nachfolgend unter Bezugnahme auf die Fig. 7 und 8a bis 8b erörtert. Die Vorhersagealgorithmen für eine Verzweigung und die nächste Heranholadresse hängen von der Anwendung ab und werden detaillierter weiter unten mit Bezug auf die Fig. 9a bis 9c besprochen.
  • Fig. 4 veranschaulicht den Inhalt der BRPDs und NFAPDs in einem Vorhersageanmerkungssatz mit beispielhaftem BRPD- und NFAPD-Inhalt beispielhafter Vorhersageanmerkungssätze von beispielhaften Vorhersageanmerkungseinträgen für Cache- Zeilen verschiedener Ausführungsbeispiele des Befehls-Caches näher. Für jedes dieser Ausführungsbeispiele gilt n = 4, m = 1 und k = 1. Weiterhin wird eine 1-Bit-BRPD verwendet, wobei "0" bedeutet, daß "Verzweigung nicht genommen" vorausgesagt wird, und "1" bedeutet, daß "Verzweigung genommen" vorausgesagt wird. Man beachte, daß bei anderen Ausführungsformen alternativ mehrere Bits verwendet werden können, um jede BRPD zu speichern, wodurch eine feinere Granularität und mehr Informationen zu jeder Verzweigungsvorhersage gegeben werden.
  • Das erste beispielhafte BRPD- und NFAPD-Paar, "0, next seq addr", 52 veranschaulicht ein Beispiel, in dem der entsprechende aus 4 Befehlen bestehende Satz keine Verzweigungsbefehle enthält. Weiterhin sagt der Algorithmus für eine Verzweigung und die nächste Heranholadresse jeweils vorher, daß die "Null"-Verzweigung "nicht genommen wird" und daß die nächste Heranholadresse die nächste sequentielle Adresse sein wird. Daher wird die BRPD auf "0" und die NFAPD auf "next seq äddr" gesetzt. Es ist zu beachten, daß bei anderen Ausführungsformen alternativ das einem Satz von Befehlen ohne Verzweigungsbefehle entsprechende BRPD-Feld stattdessen ignoriert werden kann.
  • Das zweite und das dritte beispielhafte BRPD- und NFAPD- Paar, "0, next seq addr" und "1, target addr 1", 54 und 56 veranschaulicht zwei Beispiele, bei denen der entsprechende aus 4 Befehlen bestehende Satz einen Verzweigungsbefehl enthält, den ersten Befehl. In einem Fall, 54, sagt der Verzweigungsvorhersagealgorithmus vorher, daß die Verzweigung "nicht genommen wird", und der Algorithmus für die nächste Heranholadresse sagt vorher, daß die nächste Adresse die nächste sequentielle Adresse sein wird. Daher wird die BRPD auf "0" und die NFAPD auf "next seq addr" gesetzt. Im anderen Fall, 56, sagt der Verzweigungsvorhersagealgorithmus vorher, daß die Verzweigung "genommen wird", und der Algorithmus für die nächste Heranholadresse sagt vorher, daß die nächste Adresse die nächste Zieladresse des ersten Befehls sein wird. Daher wird die BRPD auf "1" und die NFAPD auf "target addr 1" gesetzt.
  • Das vierte und das fünfte beispielhafte BRPD- und NFAPD- Paar, "0, next seq addr" und "1, target addr 1", 58 und 60, veranschaulicht zwei Beispiele, bei denen der aus 4 Befehlen bestehende Satz zwei Verzweigungsbefehle, den ersten und den dritten Befehl, enthält. In dem einen Fall, 58, sagt der Verzweigungsvorhersagealgorithmus vorher, daß beide Verzweigungen "nicht genommen werden", und der Algorithmus für die nächste Heranholadresse sagt vorher, daß die nächste Adresse die nächste sequentielle Adresse sein wird. Daher wird die BRPD auf "0" und die NFAPD auf "next seq addr" gesetzt. In dem anderen Fall, 60, sagt der Verzweigungsvorhersagealgorithmus vorher, daß der erste Verzweigungsbefehl, d. h. der erste Befehl, "genommen wird"; aber daß der zweite Verzweigungsbefehl, d. h. der dritte Befehl, "nicht genommen wird". Unter der weiteren Annahme, daß bei diesem Beispiel die Ausführung -des Programms mit dem ersten Befehl des 4 Befehle umfassenden Satzes beginnt, sagt der Algorithmus für die nächste Heranholadresse vorher, daß die nächste Adresse die nächste Zieladresse des ersten Verzweigungsbefehls, d. h. der erste Befehl sein wird. Daher wird die BRPD auf "1" und die NFAPD" auf "target addr 1" gesetzt.
  • Däs sechste und das siebte beispielhafte BRPD - und NFAPD-Paar, "1, target addr 3" und "1, target addr 1", 62 und 64, veranschaulicht zwei Beispiele, bei denen der aus 4 Befehlen bestehende Satz zwei Verzweigungsbefehle, den ersten und den dritten Befehl, enthält. In dem einen Fall, 62, sagt der Verzweigungsvorhersagealgorithmus vorher, daß der erste Verzweigungsbefehl, d. h. der erste Befehl, "nicht genommen wird", aber daß der zweite Verzweigungsbefehl, d. h. der dritte Befehl "genommen wird", und der Algorithmus für die nächste Heranholadresse sagt vorher, daß die nächste Adresse die Zieladresse des zweiten Verzweigungsbefehls, d. h. der dritte Befehl, sein wird. Daher wird die BRPD auf "1" und die NFAPD auf "target address 3" gesetzt. Im anderen Fall, 64, sagt der Verzweigungsvorhersagealgorithmus vorher, daß beide Verzweigungsbefehle "genommen werden". Unter der weiteren Annahme, daß bei diesem Beispiel die Befehlsdominanz aufgrund des letzten Zugriffs implementiert ist und daß der erste Befehl der Befehl zwischen dem ersten und dem dritten Befehl ist, auf den als letztes zugegriffen wurde, sagt der Algorithmus für die nächste Heranholadresse vorher daß die nächste Adresse die nächste Zieladresse des ersten Verzweigungsbefehls, d. h. der Befehl, auf den als letztes zugegriffen wurde, sein wird. Daher wird die BRPD auf "1" und die NFAPD auf "target addr 1" gesetzt.
  • Obwohl die vorliegende Erfindung so beschrieben wurde, daß jeder Vorhersageanmerkungssatz m BRPDs und k NFAPDs aufweist, ist es klar, daß die vorliegende Erfindung so ausgeführt werden kann, daß jeder Vorhersageanmerkungssatz nur m BRPDs und keine NFAPDs aufweist. Bei solchen Ausführungsformen -kann die nächste Heranholadresse von der Befehlsvorabruf- und -abfertigungseinheit aufgrund der ausgewählten BRPD errechnet werden.
  • Es wird wiederum Bezug auf Fig. 2 genommen. Der Befehls-Cache 16 em fän t eine nächste Heranholadresse von der Befehlsvorabruf- und -abfertigungseinheit. Daraufhin wird auf die in einer der Cache-Zeilen gespeicherten Befehle sowie deren entsprechende Tag- und Vorhersageanmerkungseinträge zugegriffen und diese an die Auswahllogik 30 weitergegeben. Die Auswahllogik 30 wählt einen Befehlssatz, eine Verzweigungsvorhersage und eine Vorhersage über die nächste Heranholadresse aus und gibt diese an die Befehlsvorabruf- und -abfertigungseinheit weiter. Die Vorhersagen über die Verzweigung und die nächste Heranholadresse werden aus dem entsprechenden Vorhersageanmerkungssatz ausgewählt. Zwei Ausführungsformen der Auswahllogik 30 sind in den Fig. 5a bis 5b dargestellt.
  • Fig. 5a stellt eine Ausführungsform der Auswahllogik dar, bei der m und k beide größer als 1 sind. Die Befehlssätze (Instr Blks) und die entsprechenden Sätze von Tags (TAGS), Befehlsklassen (IKlassen) und Vorhersageanmerkungen (PAs), die aus den entsprechenden Arrays abgerufen wurden, werden zuerst an eine Satzauswahllogik 66 weitergegeben. Die Satzauswahllogik 66 wählt unter Verwendung der aktuellen nächsten Heranholadresse (NFA) einen Befehlssatz und seine entsprechenden Sätze von Tags (TAG i), Befehlsklassen (IKlassen-i) und Vorhersageanmerkungen (PA i) aus. Die ausgewählten Sätze von Befehlsklassen (IKlassen i) und Vorhersageanmerkungen (PA i) werden dann an die BRPD- und NFAPD- Auswahllogik 68 weitergeleitet. Die BRPD- und NFAPD-Auswahllogik 68 wählt unter Verwendung der aktuellen Heranholadresse (NFA) eine BRPD (BRPD j) und eine NFAPD (NFAPD j) aus den m BRPDs und k NFAPDs des ausgewählten Vorhersageanmerkungssatzes (PA i) aus.
  • Die Satzauswahllogik 66 soll ein breites Spektrum von Auswahllogiken repräsentieren, die in den meisten Computer-Systemen vorhanden sind, einschließlich der Auswahllogik, die im U. S. Patent US-A-5.392.414 vom 30. Juni 1992 mit dem Titel Rapid Data Retrieval From A Data Storage Using Prior Access Predictive Annotation (Schneller Datenabruf aus einem Datenspeicher unter Verwendung von Vorhersageanmerkungen früherer Zugriffe dargestellt ist, und die auf denselben Anmelder übertragen wurde wie die vorliegende Erfindung. Die BRPD- und NFAPD-Auswahllogik, 68, kann zusammen mit anderen allgemein bekannten kombinatorischen Logiken implementiert werden.
  • Fig. 5b zeigt eine Ausführungsform der Auswahllogik, bei der m und k beide gleich 1 sind. Diese Ausführungsform ist grundsätzlich dieselbe, wie die in Fig. 5a gezeigte Ausführungsform, mit der Ausnahme, daß die BRPD- und NFAPD- Auswahllogik nicht notwendig ist, da m und k beide gleich 1 sind. Durch Verzicht auf die BRPD- und NFAPD-Auswahllogik werden die BRPD und die NFAPD ausgewählt, sobald der Befehlsblock ausgewählt wird.
  • Es ist ersichtlich, daß die Werte von m und k vom Aufbau abhängen. Wenn m oder k gegen n anwachsen, wird die Wahrscheinlichkeit von Treffern bei der Vorhersage von Verzweigungen und nächsten Heranholadressen ansteigen; allerdings wird sich als Folge der größeren Zeitspanne, die notwendig ist, um eine Vorhersage über eine Verzweigung und die nachste Heranholadresse auszuwählen, ebenfalls die Verzögerungs-Zeit zwischen den Heranholvorgängen verlängern. Andererseits wird die Wahrscheinlichkeit von Treffern bei der Vorhersage von Verzweigungen und nächsten Heranholadressen bei kleiner werdendem und gegen 1 gehendem m oder k abnehmen, aber als Folge der geringeren Zeitspanne, die notwendig ist, um die Vorhersage über eine Verzweigung und die nächste Heranholädresse auszuwählen, wird die Verzögerungszeit zwischen den Heranholvorgängen ebenfalls abnehmen. Tatsächlich kann dann, wenn, wie bei den Ausführungsformen in Fig. 6b gezeigt, m und k beide gleich 1 sind, auf die BRPD- und NFAPD-Auswahllogik verzichtet und so die Möglichkeit geschaffen werden, die BRPD und die NFAPD gleichzeitig mit dem Befehlsblock auszuwählen. Auf der Grundlage der folgenden Beschreibung wird verständlich, daß der Verzicht auf die BRPD- und NFAPD- Auswahllogik eine Reduzierung der Befehls-Heranhol-Verzögerungszeit auf Null erleichtert. Mit anderen Worten, das nächste Heranholen kann durchgeführt werden, ohne die Befehle des aktuellen Heranholvorgangs zu berücksichtigen.
  • Nun werden, bezugnehmend auf die Fig. 6a bis 6b; zwei Blockdiagramme gezeigt, die Verzweigungsvorhersage-Treffer-, Nächste-Heranholadresse-Vorhersage-Treffer- und Nächste-Heranholadresse-Bestimmungen durch die Befehlsvorabruf- und - abfertigungseinheit der vorliegenden Erfindung darstellen. Wie in Fig. 6a gezeigt, weist die Befehlsvorabruf- und
  • - abfertigungseinheit einen Komparator 68 auf. Der Komparator, 68 empfängt als Eingangssignale die BRPD und die NFAPD vom Befehls-Cache und die Auflösung der tatsächlichen Verzweigung und der nächsten Heranholadresse aus der Vorabruf- und Abfertigungseinheit oder den Ausführungseinheiten. Daraufhin gibt der Komparator ein Verzweigungsvorhersage-Treffer/Fehl versuch-Signal und ein Nächste-Heranholadresse-Vorhersage- Treffer/Fehlversuch-Signal aus. Es ist klar, daß die Entscheidung über die tatsächliche Verzweigung und die nächste Heranholadresse getrennt empfangen werden können, daher können die Verzweigungs- und die Nächste-Heranholadresse- Treffer/Fehlversuch-Signale zu verschiedenen Zeitpunkten generiert werden. Der Komparator 68 soll ein breites Spektrum von Komparatoren, die in den meisten Computersystemen vorhanden sind, repräsentieren. Ihr Aufbau und ihre Grundfunktionen sind allgemein bekannt und werden nicht näher beschrieben.
  • Außerdem weist die Befehlsvorabruf- und -abfertigungs- einheit ein Nächste-Heranholadressen-Register 70 auf, wie in Fig. 6b gezeigt ist. Die NFAPD, die vom Befehls-Cache empfangen wurde, wird sofort im Nächste-Heranholadressen-Register gespeichert und als Heranholadresse (NFA) für den nachsten Befehlsheranholvorgang verwendet. Es ist klar, daß dann, wenn, wie es der Fall bei der in Fig. 5b gezeigten Ausführungsform ist, die NFAPD gleichzeitig mit dem Befehls Block ausgewählt wird, das direkte Speichern der NFAPD in das NFA-Register und ihre Verwendung als NFA des nächsten Befehlsheranholvorgangs eine Heranholverzögerungszeit von Null zwischen aufeinanderfolgenden Befehlsheranholvorgängen zur Folge hat.
  • Nun wird, bezugnehmend auf Fig. 7, ein Ablaufdiagramm gezeigt, das den Operationsfluß des Befehls-Caches darstellt. Der Befehls-Cache empfängt die Heranholadresse aus der Befehlsvorabruf- und -abfertigungseinheit, Block 74. Daraufhin bestimmt der Befehls-Cache, ob ein Cache-Treffer vorliegt, Block 76. Wenn ein Cache-Treffer, wie weiter oben beschrieben, vorliegt, wählt der Befehls-Cache einen Befehlssatz, eine Verzweigungsvorhersage und eine Vorhersage über die nächste Heranholadresse aus und gibt diese an die Befehlsvorabruf- und -abfertigungseinheit weiter, Block 78.
  • Wenn ein Cache-Fehlversuch vorliegt, initiiert der Befehls-Cache ein Cache-Füllen, Block 80. Während die Cache- Zeile mit aus dem Speicher zurückgegebenen Befehlen gefüllt wird, werden die Befehle an die Befehlsvorabruf- und -abfertigungseinheit weitergegeben, Block 82. Alternativ können die Befehle an die Befehlsvorabruf- und -abfertigungseinheit weitergeleitet werden, nachdem die Cache-Zeile gefüllt worden ist. Wie weiter oben beschrieben, dekodiert der Befehls- Cache bei der Ausführungsform, in der die Befehle nicht vorher dekodiert werden und die Befehlsklassen nicht vorgespeichert werden, außerdem die Befehle und speichert die Befehlsklassen in die IKlassen, während die Cache-Zeile gefüllt wird, Block 84. Außerdem werden die m BRPDs und k NFAPDs entsprechend der Sätze von n Befehlen der Cache- Zeile, die gefüllt wird, in Entsprechung mit der Initialisierungsvorgehensweise des Vorhersagealgorithmus für eine Verzweigung und die nächste Heranholadresse initialisiert, Block 86.
  • Nun werden, bezugnehmend auf die Fig. 8a bis 8b, zwei Ablaufdiagramme gezeigt, die den Operationsfluß der Befehlsvorabruf- und -abfertigungseinheit zeigen. Wie in Fig. 8a gezeigt, stellt die Befehlsvorabruf- und -abfertigungsein- heit fest, ob ein Heranhol-/Vorabheranholvorgang durchgeführt werden soll, Block 94. Wenn ein Heranhol-/Vorabheranholvorgang durchgeführt werden soll, holt die Befehlsvorabruf- und -abfertigungseinheit die nächste Heranholadresse (NFA) vom NFA-Register zum Befehls-Cache, Block 96. Daraufhin liefert der Befehls-Cache der Befehlsvorabruf- und - abfertigungseinheit den verlangten Befehlsblock, und die Befehlsvorabruf- und -abfertigungseinheit reiht den zurück gegebenen Befehlsblock in eine Warteschlange ein. Wie weiter oben beschrieben, ist die NFA im NFA-Register die ausgewählte NFAPD, die vom Befehls-Cache in Verbindung mit dem Befehlsblock empfangen wurde, der für den letzten Heranholvorgang empfangen wurde. In der Zwischenzeit, wenn die Befehlswarteschlange nicht leer ist, fertigt die Befehlsvorabruf- und -abfertigungseinheit in Abhängigkeit von der Systemarchitektur einen oder mehrere Befehle ab, Block 98. Die Befehlsvorabruf- und -abfertigungseinheit wiederholt die oben genannten Schritte, Blöcke 94 bis 98, bis das Computersystem abgeschaltet wird.
  • Wie in Fig. 8b gezeigt wird, bestimmt die Befehlsvorabruf- und -abfertigungseinheit gleichzeitig die Verzweigungsauflösung oder empfängt die Verzweigungsauflösung aus den Ausführungseinheiten, Block 108. Dann bestimmt die Befehlsvorabruf- und -abfertigungseinheit, ob ein Verzweigungsvorhersage-Treffer vorliegt, Block 110. Wenn die ausgewählte BRPD die Verzweigungsrichtung falsch vorhergesagt hat, greift die Befehlsvorabruf- und -abfertigungseinheit auf den Befehls-Cache zu und aktualisiert die vorher ausgewählte BRPD und die NFAPD in der Cache-Zeile, auf die vorher zugegriffen wurde, entsprechend, Block 114. Wenn die ausgewählte BRPD die Verzweigungsrichtung richtig vorhergesagt hat, dann bestimmt die Befehlsvorabruf- und -abfertigungseinheit, nachdem die Auflösung der nächsten Heranholadresse bestimmt oder die Auflösung der nächsten Heranholadresse von den Ausführungseinheiten empfangen wurde, Block 111, ob ein Nächste-Heranholadresse-Treffer vorliegt, Block 112. Wenn die ausgewählte NFAPD die nächste Heranholadresse falsch vorhergesagt hat, greift die Befehlsvorabruf- und -abfertigungseinheit auf das Befehls-Cache zu und aktualisiert die vorher ausgewählte NFAPD in der Cache-Zeile, auf die vorher zugegriffen wurde, Block 116. Weiterhin kann zur Vereinfachung der Implementierung die Befehlsvorabruf- und -abfertigungseinheit, unabhängig davon, ob die ausgewählte NFAPD die nächste Heranholadresse richtig vorhergesagt hat, wahlweise trotzdem auch die vorher ausgewählte BRPD in der Cache-Zeile, auf die vorher zugegriffen wurde, aktualisieren, Block 118.
  • Nun werden, bezugnehmend auf die Fig. 9a bis 9c, drei Blockdiagramme gezeigt, die die Initialisierungs- und Aktualisierungsvorgehensweisen eines beispielhaften Vorhersagealgorithmus für eine Verzweigung und die nächste Heranholadresse darstellen. Der beispielhafte Vorhersagealgorithmus für eine Verzweigung und die nächste Heranholadresse stellt sicher, daß die Verzweigungsvorhersagen nur ein Bit umfassen. In Fig. 9a wird die Initialisierungsvorgehensweise- Tabelle 120 des bestimmten Vorhersagealgorithmus für eine Verzweigung und die nächste Heranholadresse gezeigt. Unabhängig von der Befehlsklasse, werden die BRPDs so initialisiert, daß sie "Verzweigung wird nicht genommen" vorhersagen, und die NFAPDs werden so initialisiert, daß sie die nächste Heranholadresse so vorhersagen, daß es eine Adresse ist, die gleich der Summe des aktuellen Befehlszählers und der Größe des nächsten sequentiellen Heranholblocks ist. Jenach Implementierung kann es notwendig sein, die Größe des nächsten sequentiellen Heranholblocks zur Cache-Blockgren- zenausrichtung anzupassen oder auch nicht. Es ist klar, daß durch eine einheitliche Initialisierung der BRPDs und NFAPDs für alle Befehle unabhängig von der Befehlsklasse die Implementierung vereinfacht wird. Während eine Vereinfachung der Implementierung für die bedingungslosen befehlszählerbezogenen und registerindexierten Befehle eine falsche Erstvorhersage nach sich zieht, wird es aufgrund der noch zu beschreibenden Aktualisierungsvorgehensweise nur einen Fehlversuch geben, solange nicht eine externe Störung vorliegt, wie z. B., daß sich mehrere Verzweigungen dieselben Vorhersagefelder teilen.
  • Fig. 9b zeigt die Aktualisierungsvorgehensweise für die Befehlszähler-Relativverzweigungsbefehle für einen speziel len Vorhersagealgorithmus für eine Verzweigung und die nächste Heranholadresse. Im ersten Fall, in dem die ausgewählte BRPD vorhersagt, daß die Verzweigung "genommen wird", und die Verzweigung nicht genommen wird, 122, wird die ausgewählte BRPD mit der richtigen Vorhersage, d. h. "wird nicht genommen", aktualisiert und die ausgewählte NFAPD wird mit der Summe der aktuellen Heranholadresse und der Größe des nächsten sequentiellen Heranholblocks aktualisiert. Im zweiten Fall, in dem die ausgewählte BRPD vorhersagt, daß die Verzweigung "genommen wird", und die Verzweigung genommen wird, aber die NFAPD unzutreffend ist, 124, wird die ausgewählte NFAPD mit der richtigen Heranholadresse, d. h. der Zieladresse, aktualisiert.
  • Im dritten Fall, in dem die ausgewählte BRPD vorhersagt, daß die Verzweigung "nicht genommen wird", und die Verzweigung genommen wird, 126, wird die ausgewählte BRPD mit der richtigen Vorhersage, d. h. "wird genommen", aktualisiert, und die ausgewählte NFAPD wird mit der richtigen Heranholadresse, d. h. der Zieladresse, aktualisiert. Im vierten Fall, in dem die ausgewählte BRPD vorhersagt, daß die Verzweigung "nicht genommen wird", und die Verzweigung nicht genommen wird, aber die NFAPD unzutreffend ist, 128, wird die ausgewählte NFAPD mit der Summe der aktuellen Heranhol- adresse und der Größe des nächsten sequentiellen Heranhol- Blocks aktualisiert.
  • Im fünften Fall, in dem die ausgewählte BRPD vorhersagt, daß die Verzweigung "genommen wird", und die Verzweigung genommen wird und die NFAPD die nächste Heranholzieladresse richtig vorhersagt, 130, werden die ausgewählte BRPD und die ausgewählte NFAPD nicht aktualisiert. Ähnlich ist es im sechsten Fall, in dem die ausgewählte BRPD vorhersagt, daß die Verzweigung "nicht genommen wird", und die Verzweigung nicht genommen wird und die NFAPD die nächste sequentielle Heranholadresse richtig vorhersagt, 132, und die ausgewählte BRPD und die ausgewählte NFAPD nicht aktualisiert werden.
  • Wie weiter oben beschrieben, kann es im ersten und dritten Fall notwendig sein, die nächste sequentielle Heranholblockgröße je nach Implementierung zur Cache-Blockgrenzenausrichtung anzupassen oder auch nicht. Zusätzlich können die BRPD im zweiten, fünften und sechsten Fall trotzdem mit der tatsächlichen Verzweigungsrichtung aktualisiert werden, anstatt keine Operation durchzuführen.
  • Fig. 9c stellt die Aktualisierungsvorgehensweise für eine indirekte Registersteuerübertragung und für eine bedingungslose Befehlszähler-Relativsteuerübertragung für einen bestimmten Vorhersagealgorithmus für eine Verzweigung und die nächste Heranholadresse dar. Im ersten und vierten Fall, in dem die ausgewählte BRPD vorhersagt, daß die Verzweigung "nicht genommen wird", und die Verzweigung genommen wird, 134 und 140, wird die ausgewählte BRPD mit der richtigen Vorhersage, d. h. "wird genommen", aktualisiert und die ausgewählte NFAPD wird mit der richtigen Heranholadresse, d. h. der Zieladresse, aktualisiert.
  • Im zweiten und fünften Fall, in dem die ausgewählte BRPD vorhersagt, daß die Verzweigung "genommen wird", und die Verzweigung genommen wird und die NFAPD unzutreffend ist, 136 und 142, wird die ausgewählte NFAPD mit der richtigen Heranholadresse, d. h. der Zieladresse, aktualisiert. Im dritten und sechsten Fall, in dem die ausgewählte BRPD vorhersagt, daß die Verzweigung "genommen wird", und die Verzweigung genommen wird und die NFAPD die nächste Heranholzieladresse richtig vorhersagt, 140 und 144, werden die ausgewählte BRPD und die ausgewählte NFAPD nicht aktualisiert. Ähnlich ist es im dritten und sechsten Fall, in denen die BRPD trotzdem mit der tatsächlichen Verzweigungsrichtung aktualisiert werden kann, anstatt keine Operation durchzuführen.

Claims (34)

1. Ein Computersystem mit einer Ausführungseinheit zum Ausführen von Befehlen eines Computerprogramms, gekennzeichnet durch
eine Schaltung (16) zum Abrufen von Befehlen aus einem Speicher (20);
eine Schaltung (16) zum unabhängigen Decodieren jedes Befehls ohne Rücksicht auf irgendwelche Abhängigkeiten des Befehls von irgendwelchen anderen Befehlen, um die Klasse des jeweiligen Befehls zu bestimmen; und
einen Befehls-Cache (16) zum Speichern des jeweiligen Befehls und der unabhängigen zugehörigen Klasseninformationen für diesen Befehl.
2. Das Computersystem nach Anspruch 1, wobei die Klasse des Befehls aus einer Gruppe ausgewählt ist, die Gleitkommaoperationen, Ganzzahloperationen, Speicherzugriffsoperationen und Verzweigungsoperationen umfaßt.
3. Das Computersystem nach Anspruch 1, wobei die Klasse des abgerufenen Befehls anzeigende Daten und der Befehl in einer Cache-Zeile (34) in dem Befehls-Cache (16) gespeichert werden.
4. Das Computersystem nach Anspruch 1, aufweisend:
einen Befehls-Cache (16) zum Speichern einer Mehrzahl der Befehle des Computerprogramms, wobei der Befehls-Cache gekennzeichnet ist durch:
ein Befehlsfeld zum Speichern eines ersten Befehls der Mehrzahl von Befehlen;
ein Befehlsadreßfeld zum Speichern einer Adresse, die dem ersten Befehl entspricht;
ein dem ersten Befehl zugeordnetes Nächster-Adreßabruf- Feld zum Speichern einer nächsten Abrufadresse, die einem zweiten Befehl entspricht, wobei die nächste Abrufadresse dem unbedingten Abrufen des zweiten Befehls, wenn der erste Befehl abgerufen worden ist, dient.
5. Das Computersystem nach Anspruch 4, ferner aufweisend ein mit dem Befehls-Cache (16) gekoppeltes Nächste-Abrufadresse-Register (70) zum Empfangen der dem zweiten Befehl entsprechenden nächsten Abrufadresse, wenn der erste Befehl aus dem Befehls-Cache (16) abgerufen worden ist.
6. Das Computersystem nach Anspruch 5, ferner aufweisend eine mit dem Nächste-Abrufadresse-Register (70) gekoppelte Vorabruf- und Abfertigungseinheit (12) zum Abrufen des zweiten Befehls, wenn die nächste Abrufadresse von dem Nächste-Abrufadresse-Register (70) empfangen worden ist.
7. Das Computersystem nach Anspruch 6, wobei die Ausführungseinheit (14) mit der Vorabruf- und Abfertigungseinheit (12) gekoppelt ist, um den ersten Befehl auszuführen, nachdem die Vorabruf- und Abfertigungseinheit (12) den ersten Befehl an die Ausführungseinheit (14) abgefertigt hat.
8. Das Computersystem nach Anspruch 4, wobei die nächste Abrufadresse eine dem ersten Befehl nachfolgende sequentielle Adresse ist.
9. Das Computersystem nach Anspruch 4, wobei der erste Befehl ein Verzweigungsbefehl ist und der Befehls-Cache ferner ein Verzweigungsvorhersagefeld zum Speichern von Verzweigungsvorhersageinformationen aufweist.
10. Das Computersystem nach Anspruch 9, wobei die Verzweigungsvorhersageinformationen in dem Verzweigungsvorher sagefeld (40) dem Vorhersagen, daß die Verzweigung nicht genommen wird, dienen, und wobei das Nächste-Adreßabruf-Feld dem Speichern der sequentiellen Adresse nach dem ersten Befehl dient.
11. Das Computersystem nach Anspruch 9, wobei die Verzweigungsvorhersageinformationen in dem Verzweigungsvorhersagefeld (40) der Vorhersage dienen, daß die Verzweigung genommen wird, und wobei das Nächste-Adreßabruf-Feld (42) dem Speichern einer Zieladresse des ersten Befehls dient.
12. Das Computersystem nach Anspruch 9, wobei die Verzweigungsvorhersageinformationen dynamisch in Übereinstimmung mit einem Verzweigungsvorhersagealgorithmus aktualisiert werden.
13. Das Computersystem nach Anspruch 4, wobei die Ausführungseinheit (14) zum Ausführen des ersten Befehls mit dem Befehls-Cache (16) gekoppelt ist, wobei die Ausführung einheit (14) ferner eine Entscheidungseinheit zum Entscheiden einer tatsächlichen nächsten Abrufadresse des ersten Befehls und eine Vergleichsschaltung (68) zum Vergleichen der tatsächlichen nächsten Abrufadresse mit der in dem dem ersten Befehl zugeordneten Nächste-Adreßabruf-Feld (42) enthaltenen nächsten Abrufadresse aufweist.
14. Das Computersystem nach Anspruch 13, ferner aufweisend eine mit der Ausführungseinheit (14) und dem Befehlsfache (16) gekoppelte Vorabrufeinheit (12), zum Abrufen eines dritten Befehls, der der tatsächlichen nächsten Abrufadresse entspricht, und zum Liefern des dritten Befehls an die Ausführungseinheit (14) zum Ausführen, sofern die Vergleichsschaltung (68) feststellt, daß die tatsächliche nächste Abrufadresse des ersten Befehls und die nächste Abruf adresse, die in dem dem ersten Befehl zugeordneten Nächste- Adreßabruf-Feld (42) enthalten ist, verschieden sind.
15. Das Computersystem nach Anspruch 14, wobei die Ausführung des Computerprogramms an dem dritten Befehl wieder aufgenommen wird, sofern die Vergleichsschaltung feststellt, daß die tatsächliche nächste Abrufadresse des ersten Befehls und die nächste Abrufadresse, die in dem dem ersten Befehl zugeordneten Nächste-Adreßabruf-Feld enthalten ist, verschieden sind.
16. Das Computersystem nach Anspruch 14, wobei das dem ersten Befehl zugeordnete Nächste-Adreßabruf-Feld (42) aktualisiert wird, wenn die tatsächliche nächste Abrufadresse des ersten Befehls und die nächste Abrufadresse, die in dem dem ersten Befehl zugeordneten Nächste-Adreßabruf-Feld (42) enthalten ist, verschieden sind.
17. Das Computersystem nach Anspruch 4, wobei der zweit Befehl aus dem Befehls-Cache (16) abgerufen wird.
18. Das Computersystem nach Anspruch 4, wobei der zwei Befehl aus dem Speicher (20) abgerufen wird, sofern der zweite Befehl sich nicht in dem Befehls-Cache (16) befindet.
19. Das Computersystem nach Anspruch 4, wobei der zweite Befehl abgerufen und spekulativ an die Ausführungseinheit (14) zur Ausführung abgefertigt wird.
20. Das Computersystem nach Anspruch 4, wobei die Mehrzahl von in dem Befehls-Cache (16) gespeicherten Befehlen in einer Anzahl von Cache-Zeilen angeordnet sind, wobei jede der Anzahl von Cache-Zeilen (34)(n) der Mehrzahl von in dem Cache (16) gespeicherten Befehlen enthält.
21. Das Computersystem nach Anspruch 20, wobei jede der Anzahl von Cache-Zeilen (34)(k) der Nächste-Adreßabruf-Feld- Adressen (42) enthält, wobei (k) kleiner als oder gleich (n) ist.
22. Das Computersystem nach Anspruch 20, wobei jede der Anzahl von Cache-Zeilen (34)(m) Verzweigungsvorhersageelemente (40) enthält, wobei (m) gleich oder kleiner als (n) ist.
23. Das Computersystem nach Anspruch 20, wobei jede der Anzahl von Cache-Zeilen (34) ein Verzweigungsvorhersagefeld (40) zum Speichern von Verzweigungsvorhersageinformationen für einen dominierenden Befehl unter den (n) Befehlen in jeder der Anzahl von Cache-Zeilen (34) in dem Befehls-Cache (16) enthält.
24. Das Computersystem nach Anspruch 4, wobei die in dem dem ersten Befehl zugeordneten Nächste-Adreßabruf-Feld (40) gespeicherte nächste Abrufadresse in Übereinstimmung mit einer vorgegebenen Verfahrensweise initialisiert wird, wenn der erste Befehl in den Befehls-Cache (16) aus dem Speicher (20) gebracht wird.
25. Das Computersystem nach Anspruch 4, wobei der Befehls-Cache (16) ferner ein Befehlsdecodierfeld zum Speichern von Befehlsdecodierinformationen für den ersten Befehl enthält.
26. Das Computersystem nach Anspruch 25, wobei die Befehlsdecodierinformationen einen Klassenidentifizierer zum Identifizieren der Klasse des ersten Befehls enthalten.
27. Das Computersystem nach Anspruch 4, wobei die nächste Abrufadresse eine vorhergesagte nächste Abrufadresse ist.
28. Ein Verfahren zum Bereitstellen eines Computersystems zum Ausführen von Befehlen eines Computerprogramms, wobei das Computersystem eine Ausführungseinheit aufweist, wobei das Verfahren gekennzeichnet ist durch die Schritte: Bereitstellen einer Schaltung (16) zum Abrufen von Befehlen aus einem Speicher;
Bereitstellen einer Schaltung (16) zum unabhängigen Decodieren jedes Befehls ohne Rücksicht auf irgendwelche Abhängigkeiten des Befehls von irgendwelchen anderen Befehlen, um die Klasse des jeweiligen Befehls zu bestimmen; und Bereitstellen eines Befehls-Cache (16) zum Speichern jedes Befehls und der unabhängigen zugehörigen Klasseninformationen für diesen Befehl.
29. Das Verfahren nach Anspruch 28, wobei die Klasse des Befehls aus einer Gruppe ausgewählt wird, die Gleitkommaoperationen, Ganzzahloperationen, Speicherzugriffsoperationen und Verzweigungsoperationen umfaßt.
30. Das Verfahren nach Anspruch 29, wobei die die Klasse des abgerufenen Befehls anzeigenden Daten und der Befehl in einer Cache-Zeile (24) des Befehls-Cache (16) gespeichert werden.
31. Das Verfahren nach Anspruch 28, ferner gekennzeichnet durch die Schritte:
Bereitstellen eines Befehls-Cache (16) zum Speichern einer Mehrzahl von Befehlen des Computerprogramms, wobei der Befehls-Cache (16) umfaßt:
Bereitstellen eines Befehlsfeldes zum Speichern eines in der Mehrzahl von Befehlen enthaltenden ersten Befehls;
Bereitstellen eines Befehlsadreßfeldes zum Speichern einer dem ersten Befehl entsprechenden Adresse;
Bereitstellen eines dem ersten Befehl zugeordneten Nächste-Adreßabruf-Feldes (42) zum Speichern einer nächsten Abrufadresse, die einem zweiten Befehl entspricht, wobei die nächste Abrufadresse dem unbedingten Abrufen des zweiten Befehls dient, wenn der erste Befehl abgerufen worden ist.
32. Das Verfahren nach Anspruch 31, ferner umfassend die Schritte des Bereitstellens eines mit dem Befehls-Cache (16) gekoppelten Nächste-Abrufadresse-Registers (70) zum Empfangen einer nächsten Abrufadresse, die dem zweiten Befehl entspricht, wenn der erste Befehl aus dem Befehls-Cache (16) abgerufen worden ist.
33. Das Verfahren nach Anspruch 32, ferner umfassend den Schritt des Bereitstellens einer mit dem Nächste-Abrufadres- se-Register (70) gekoppelten Vorabruf- und Abfertigungseinheit (12) zum Abrufen des zweiten Befehls, wenn die nächste Abrufadresse durch das Nächste-Abrufadresse-Register (70) empfangen worden ist.
34. Das Verfahren nach Anspruch 33, wobei die Ausführungseinheit (14) mit der Vorabruf- und Abfertigungseinheit (12) gekoppelt ist, wobei der Schritt aus dem Ausführen des ersten Befehls, nachdem die Vorabruf- und Abfertigungseinheit (12) den ersten Befehl an die Ausführungseinheit (14) abgefertigt hat, besteht.
DE69327927T 1992-08-31 1993-07-06 Schnelles Vorausholen und Zuteilung von Befehlen mittels vorausschauender Anmerkungen von früher vorausgeholten Expired - Fee Related DE69327927T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US93837192A 1992-08-31 1992-08-31

Publications (2)

Publication Number Publication Date
DE69327927D1 DE69327927D1 (de) 2000-04-06
DE69327927T2 true DE69327927T2 (de) 2000-10-12

Family

ID=25471319

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69327927T Expired - Fee Related DE69327927T2 (de) 1992-08-31 1993-07-06 Schnelles Vorausholen und Zuteilung von Befehlen mittels vorausschauender Anmerkungen von früher vorausgeholten

Country Status (5)

Country Link
US (2) US6304961B1 (de)
EP (1) EP0586057B1 (de)
JP (1) JP3518770B2 (de)
KR (1) KR100287628B1 (de)
DE (1) DE69327927T2 (de)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5367703A (en) * 1993-01-08 1994-11-22 International Business Machines Corporation Method and system for enhanced branch history prediction accuracy in a superscalar processor system
US5742805A (en) * 1996-02-15 1998-04-21 Fujitsu Ltd. Method and apparatus for a single history register based branch predictor in a superscalar microprocessor
US5774710A (en) * 1996-09-19 1998-06-30 Advanced Micro Devices, Inc. Cache line branch prediction scheme that shares among sets of a set associative cache
US5995749A (en) 1996-11-19 1999-11-30 Advanced Micro Devices, Inc. Branch prediction mechanism employing branch selectors to select a branch prediction
US5978906A (en) * 1996-11-19 1999-11-02 Advanced Micro Devices, Inc. Branch selectors associated with byte ranges within an instruction cache for rapidly identifying branch predictions
US6253316B1 (en) 1996-11-19 2001-06-26 Advanced Micro Devices, Inc. Three state branch history using one bit in a branch prediction mechanism
US5954816A (en) * 1996-11-19 1999-09-21 Advanced Micro Devices, Inc. Branch selector prediction
US5974538A (en) * 1997-02-21 1999-10-26 Wilmot, Ii; Richard Byron Method and apparatus for annotating operands in a computer system with source instruction identifiers
US6108774A (en) * 1997-12-19 2000-08-22 Advanced Micro Devices, Inc. Branch prediction with added selector bits to increase branch prediction capacity and flexibility with minimal added bits
US6112299A (en) * 1997-12-31 2000-08-29 International Business Machines Corporation Method and apparatus to select the next instruction in a superscalar or a very long instruction word computer having N-way branching
US6647490B2 (en) * 1999-10-14 2003-11-11 Advanced Micro Devices, Inc. Training line predictor for branch targets
US6636959B1 (en) 1999-10-14 2003-10-21 Advanced Micro Devices, Inc. Predictor miss decoder updating line predictor storing instruction fetch address and alignment information upon instruction decode termination condition
US6546478B1 (en) 1999-10-14 2003-04-08 Advanced Micro Devices, Inc. Line predictor entry with location pointers and control information for corresponding instructions in a cache line
US6502188B1 (en) 1999-11-16 2002-12-31 Advanced Micro Devices, Inc. Dynamic classification of conditional branches in global history branch prediction
US7769983B2 (en) * 2005-05-18 2010-08-03 Qualcomm Incorporated Caching instructions for a multiple-state processor
US7590825B2 (en) 2006-03-07 2009-09-15 Intel Corporation Counter-based memory disambiguation techniques for selectively predicting load/store conflicts
US7711927B2 (en) 2007-03-14 2010-05-04 Qualcomm Incorporated System, method and software to preload instructions from an instruction set other than one currently executing
US20100064118A1 (en) * 2008-09-10 2010-03-11 Vns Portfolio Llc Method and Apparatus for Reducing Latency Associated with Executing Multiple Instruction Groups
US9268881B2 (en) * 2012-10-19 2016-02-23 Intel Corporation Child state pre-fetch in NFAs
US9117170B2 (en) 2012-11-19 2015-08-25 Intel Corporation Complex NFA state matching method that matches input symbols against character classes (CCLs), and compares sequence CCLs in parallel
US9665664B2 (en) 2012-11-26 2017-05-30 Intel Corporation DFA-NFA hybrid
US9304768B2 (en) 2012-12-18 2016-04-05 Intel Corporation Cache prefetch for deterministic finite automaton instructions
US9268570B2 (en) 2013-01-23 2016-02-23 Intel Corporation DFA compression and execution
US9455743B2 (en) * 2014-05-27 2016-09-27 Qualcomm Incorporated Dedicated arithmetic encoding instruction
US10185568B2 (en) 2016-04-22 2019-01-22 Microsoft Technology Licensing, Llc Annotation logic for dynamic instruction lookahead distance determination
CN112540795A (zh) * 2019-09-23 2021-03-23 阿里巴巴集团控股有限公司 指令处理装置和指令处理方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228498A (en) 1977-10-12 1980-10-14 Dialog Systems, Inc. Multibus processor for increasing execution speed using a pipeline effect
US4437149A (en) * 1980-11-17 1984-03-13 International Business Machines Corporation Cache memory architecture with decoding
US4435756A (en) 1981-12-03 1984-03-06 Burroughs Corporation Branch predicting computer
US4894772A (en) 1987-07-31 1990-01-16 Prime Computer, Inc. Method and apparatus for qualifying branch cache entries
US5142634A (en) * 1989-02-03 1992-08-25 Digital Equipment Corporation Branch prediction
US5136697A (en) * 1989-06-06 1992-08-04 Advanced Micro Devices, Inc. System for reducing delay for execution subsequent to correctly predicted branch instruction using fetch information stored with each block of instructions in cache
US5129067A (en) * 1989-06-06 1992-07-07 Advanced Micro Devices, Inc. Multiple instruction decoder for minimizing register port requirements
US5226130A (en) 1990-02-26 1993-07-06 Nexgen Microsystems Method and apparatus for store-into-instruction-stream detection and maintaining branch prediction cache consistency
US5230068A (en) 1990-02-26 1993-07-20 Nexgen Microsystems Cache memory system for dynamically altering single cache memory line as either branch target entry or pre-fetch instruction queue based upon instruction sequence
DE69130588T2 (de) * 1990-05-29 1999-05-27 National Semiconductor Corp., Santa Clara, Calif. Cache-Speicher von partiell decodierten Befehlen und Verfahren hierfür
JPH04111127A (ja) * 1990-08-31 1992-04-13 Toshiba Corp 演算処理装置
WO1992006426A1 (en) * 1990-10-09 1992-04-16 Nexgen Microsystems Method and apparatus for parallel decoding of instructions with branch prediction look-up
US5265213A (en) 1990-12-10 1993-11-23 Intel Corporation Pipeline system for executing predicted branch target instruction in a cycle concurrently with the execution of branch instruction
AU3776793A (en) * 1992-02-27 1993-09-13 Intel Corporation Dynamic flow instruction cache memory

Also Published As

Publication number Publication date
EP0586057B1 (de) 2000-03-01
EP0586057A3 (en) 1994-06-22
KR100287628B1 (ko) 2001-06-01
US6304961B1 (en) 2001-10-16
KR940004436A (ko) 1994-03-15
DE69327927D1 (de) 2000-04-06
EP0586057A2 (de) 1994-03-09
US20020124162A1 (en) 2002-09-05
JPH06208463A (ja) 1994-07-26
JP3518770B2 (ja) 2004-04-12

Similar Documents

Publication Publication Date Title
DE69327927T2 (de) Schnelles Vorausholen und Zuteilung von Befehlen mittels vorausschauender Anmerkungen von früher vorausgeholten
DE69534148T2 (de) Rechnersystem zur Ausführung von Verzweigungsbefehlen
DE10084556B4 (de) Optimierte Ausführung von statisch sehr wahrscheinlich vorhergesagten Verzweigungsbefehlen
DE69702350T2 (de) Verzweigungsvorhersageschema für cachespeicherzeile, das von sätzen eines set-assoziativen cachespeichers gemeinsam verwendet wird
DE69031991T2 (de) Verfahren und Gerät zur Beschleunigung von Verzweigungsbefehlen
DE69929936T2 (de) Verfahren und Vorrichtung zum Abrufen von nicht-angrenzenden Befehlen in einem Datenverarbeitungssystem
DE3751474T2 (de) Verzweigungsstrom-Koprozessor.
DE69229198T2 (de) Verzweigungsbefehlprozessor und Verfahren
DE19527031C2 (de) Verzweigungsprozessor für ein Datenverarbeitungssystem und Verfahren zum Betreiben eines Datenverarbeitungssystems
DE69023568T2 (de) Cache-Speicheranordnung.
DE4447238B4 (de) Schaltungsanordnung und Verfahren zum Gewinnen von Informationen zur Verzweigungsvorhersage
DE69932066T2 (de) Mechanismus zur "store-to-load forwarding"
DE68928812T2 (de) Vorrichtung zur Auflösung von einer variablen Anzahl von möglichen Speicherzugriffskonflikten in einem Pipeline-Rechnersystem und Verfahren dazu
DE69433339T2 (de) Lade-/Speicherfunktionseinheiten und Datencachespeicher für Mikroprozessoren
DE69904189T2 (de) Konfigurierter prozessor zur abbildung von logischen registernummern auf physikalische registernummern unter verwendung von virtuellen registernummern
DE69321698T2 (de) Verfahren und System zur verbesserten Genauigkeit der Sprungvorhersage in einem Superskalarprozessor
DE69434669T2 (de) Spekulative Befehlswarteschlange für Befehle mit variabler Byteslänge
DE3851746T2 (de) Sprungvorhersage.
DE69504135T2 (de) Einrichtung zur Aktualisierung von Programmzählern
DE60308201T2 (de) Datenverarbeitungssystem mit externen und internen anweisungssätzen
DE3785897T2 (de) Steuervorrichtung zum vorabruf von befehlen.
DE69835100T2 (de) Prozessor konfiguriert um vorausschauende resultate von zusammengefassten übertragungs-, vergleichs- und einfachen arithmetischen befehlen zu produzieren
DE69427672T2 (de) Befehlscachespeicher für Befehle mit variabler Byteslänge
DE69904479T2 (de) Registerumbenennung wobei übertragungsinstruktionen mittels umbenennungsschildernzeichen realisiert werden
DE69622663T2 (de) Zweistufige vorausholungspufferstruktur und verfahren mit bypass

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee