DE69736164T2 - Datenverarbeitungsvorrichtung mit Verzweigungsvorhersage - Google Patents

Datenverarbeitungsvorrichtung mit Verzweigungsvorhersage Download PDF

Info

Publication number
DE69736164T2
DE69736164T2 DE69736164T DE69736164T DE69736164T2 DE 69736164 T2 DE69736164 T2 DE 69736164T2 DE 69736164 T DE69736164 T DE 69736164T DE 69736164 T DE69736164 T DE 69736164T DE 69736164 T2 DE69736164 T2 DE 69736164T2
Authority
DE
Germany
Prior art keywords
branch
instruction
history information
level
taken
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
DE69736164T
Other languages
English (en)
Other versions
DE69736164D1 (de
Inventor
Shuichi Takarazuka-shi Takayama
Shining-Sato 2H Nobuo Osaka-shi Higaki
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.)
Panasonic Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Application granted granted Critical
Publication of DE69736164D1 publication Critical patent/DE69736164D1/de
Publication of DE69736164T2 publication Critical patent/DE69736164T2/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

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

  • HINTERGRUND DER ERFINDUNG
  • (1) Sachgebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf eine Informations-Verarbeitungsvorrichtung, wie beispielsweise einen Mikroprozessor, und bezieht sich insbesondere auf eine verbesserte Technik einer Verzweigungsvorhersage.
  • (2) Beschreibung des Stands der Technik
  • Für eine Informations-Verarbeitungsvorrichtung, wie beispielsweise einen Mikroprozessor, der eine Pipeline-Struktur verwendet, ist eine Verzweigungsvorhersage ein Verfahren, das dazu verwendet wird, die Störungen in der Pipeline zu unterdrücken, die aufgrund von Verzweigungen in dem Steuerfluss auftreten, wenn Verzweigungsanweisungen ausgeführt werden. Um eine Verzweigungsvorhersage mit hoher Genauigkeit durchzuführen, ist es notwendig, vorherzusagen, ob eine konditionale Verzweigung (bezeichnet als "eine Verzweigung" nachfolgend) für jede Verzweigungsanweisung durchgeführt wird (nachfolgend wird, ob eine Verzweigung durchgeführt wird oder nicht durchgeführt wird, als "vorgenommen" oder "nicht vorgenommen" bezeichnet). Um dies vorzunehmen, kann eine Verzweigungs-Vorhersage-Tabelle, die eine Zusammenstellung von Verzweigungs-Vorhersage-Informationen entsprechend zu jeder Verzweigungsanweisung in den Programmen ist, vorgesehen werden.
  • Wenn die Verzweigungs-Vorhersage-Tabelle in einem internen Speicher der informations-Verarbeitungsvorrichtung gespeichert ist, führt dies zu einer Erhöhung der Größe der Hardware. Aus diesem Grund ist ein Verzweigungs-Vorhersage-Verfahren, das die erforderliche Größe der Hardware der Informations-Verarbeitungsvorrichtung minimiert, vorgeschlagen worden (siehe eine Informations-Verarbeitungsvorrichtung, offenbart in der japanischen, offen gelegten Patentanmeldung No. 63-75934, zum Beispiel). Dieses Verfahren speichert nicht die Verzweigungs-Vorhersage-Informationen permanent in dem in ternen Speicher der Informations-Verarbeitungsvorrichtung, sondern besitzt die Verzweigungs-Vorhersage-Informationen, die in den Verzweigungsanweisungen selbst vorgesehen sind.
  • 1 stellt ein Verzweigungsanweisungsformat dieser herkömmlichen Informations-Verarbeitungsvorrichtung dar. Wie in 1 dargestellt ist, ist 1 Bit von Verzweigungs-Vorhersage-Informationen 40b in einer Verzweigungsanweisung 40 vorgesehen, und, wenn ein Dekodieren der Verzweigungsanweisung 40 vorgenommen wird, ruft die herkömmliche Informations-Verarbeitungsvorrichtung eine nächste Anweisung ab, die entsprechend der Verzweigungs-Vorhersage-Informationen 40b ausgeführt werden soll. Nach der Ausführung der Verzweigungsanweisung 40 vergleicht die herkömmliche Informations-Verarbeitungsvorrichtung das Ausführungsergebnis mit den Verzweigungs-Vorhersage-Informationen 40b, und, wenn die Vorhersage nicht korrekt ist, aktualisiert sie die Verzweigungs-Vorhersage-Informationen 40b der Verzweigungsanweisung 40, gespeichert in dem Speicher. Indem dies so vorgenommen wird, muss diese Informations-Verarbeitungsvorrichtung nicht die Verzweigungs-Vorhersage-Tabelle in dem internen Speicher speichern.
  • Obwohl die erforderliche Hardware-Größe der herkömmlichen Informations- Verarbeitungsvorrichtung verringert wird, hat dies einen Nachteil dahingehend, dass die Penalyties bzw. die Straffunktionen, die sich aus dem Fehler der Verzweigungsvorhersage ergeben, häufig aufgrund der geringen Genauigkeit der Verzweigungsvorhersage erfahren werden.
  • Mit anderen Worten ruft die herkömmliche Informations-Verarbeitungsvorrichtung eine nächste Anweisung entsprechend der 1-Bit-Verzweigungs-Vorhersage-Informationen vorab ab, die das Ausführungsergebnis der Verzweigungsanweisung darstellen. Wenn zum Beispiel die Bedingungen, dass eine Verzweigung vorgenommen wird, nur während einer alternativen Ausführung erfüllt werden, werden alle Vorhersagen nicht korrekt. Deshalb muss die vorab abgerufene Anweisung zu jedem Zeitpunkt für ungültig erklärt werden, wenn eine solche Vorhersageverzweigung ausgeführt wird, was verhindert, dass die informations-Verarbeitungsvorrichtung unter einer hohen Geschwindigkeit arbeitet.
  • Die EP-A-0 081 357 stellt einen Verzweigungs-Vorhersage-Computer dar, in dem Verzweigungs-Historik- und Vorhersage-Informationen zusammen mit Verzweigungsan weisungen gespeichert sind. In dieser Struktur werden die Historik- und Vorhersage-Informationen zusammen, unter Ausführen der Anweisung, aktualisiert.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Die vorliegende Erfindung schafft eine Informations-Verarbeitungsvorrichtung, die sequenziell Anweisungen ausführt, wobei die Informations-Verarbeitungsvorrichtung aufweist:
    eine Speichereinrichtung zum Speichern einer Anweisungsgruppe, umfassend eine Verzweigungsanweisung, die enthält (a) Verzweigungs-Vorhersage-Informationen für eine Vorhersage darüber, ob eine Verzweigung genommen ist oder nicht genommen ist, und (b) Verzweigungs-Historik-Informationen, die sich auf eine Vielzahl von vergangenen Verzweigungsergebnissen beziehen;
    eine Anweisungsabrufeinrichtung zum Abrufen einer Anweisung, die ausgeführt werden soll, von der Speichereinrichtung;
    eine Anweisungs-Decodiereinrichtung zum Decodieren der abgerufenen Anweisung und zum Beurteilen, ob die decodierte Anweisung die Verzweigungsanweisung ist;
    eine Anweisungs-Abrufsteuereinrichtung zum Steuern, wenn die decodierte Anweisung dahingehend beurteilt ist, dass sie die Verzweigungsanweisung ist, der Anweisungsabrufeinrichtung so, um eine Anweisung entsprechend der Verzweigungs-Vorhersage-Informationen, enthalten in der decodierten Verzweigungsanweisung, abzurufen;
    eine Ausführungseinrichtung zum Ausführen der decodierten Verzweigungsanweisung; und
    eine Verzweigungs-Historik-Informations-Aktualisierungseinrichtung zum Aktualisieren der Verzweigungs-Historik-Informationen, enthalten in der ausgeführten Verzweigungsanweisung, so, wie dies notwendig ist, entsprechend zu (a) einem Verzweigungsergebnis der ausgeführten Verzweigungsanweisung und (b) der Verzweigungs-Historik-Informationen, enthalten in der ausgeführten Verzweigungsanweisung,
    dadurch gekennzeichnet, dass die Informations-Verarbeitungsvorrichtung weiterhin aufweist:
    eine Verzweigungs-Vorhersage-Informations-Aktualisierungseinrichtung zum Aktualisieren der Verzweigungs-Vorhersage-Informationen, enthalten in der ausgeführten Verzweigungsanweisung, so, wie dies notwendig ist, entsprechend einem modifizierbaren Aktualisierungs-Algorithmus, definiert in der Verzweigungs-Vorhersage-Informations- Aktualisierungseinrichtung und entsprechend zu (a) dem Verzweigungsergebnis der ausgeführten Verzweigungsanweisung, (b) den Verzweigungs-Historik-Informationen, enthalten in der ausgeführten Verzweigungsanweisung, und (c) den Verzweigungs-Vorhersage-Informationen, enthalten in der ausgeführten Verzweigungsanweisung.
  • Die vorliegende Erfindung und deren spezifische Ausführungsformen schaffen eine Informations-Verarbeitungsvorrichtung, die eine Verzweigungsvorhersage mit einer hohen Genauigkeit unter Verwendung einer klein dimensionierten Hardware vornimmt.
  • Mit anderen Worten umfasst die Verzweigungsanweisung der Informations-Verarbeitungsvorrichtung der vorliegenden Erfindung einen Satz von Verzweigungs-Vorhersage-Informationen ebenso wie einen Satz von Verzweigungs-Historik-Informationen, die die vergangenen Verzweigungsergebnisse darstellen. Wenn die Verzweigungsanweisung ausgeführt wird, werden der Satz der Verzweigungs-Vorhersage-Informationen und der Satz der Verzweigungs-Historik-Informationen der Verzweigungsanweisung unter Berücksichtigung nicht nur des Ausführungsergebnisses, sondern auch des Satzes von Verzweigungs-Historik-Informationen, die in die Verzweigungsanweisung eingeschlossen worden sind, aktualisiert.
  • Als eine Folge wird eine Anweisung entsprechend einem Verzweigungsergebnis für die vorhergehende Ausführung ebenso wie einem Verzweigungsergebnis für zwei Ausführungen zuvor vorab abgerufen, so dass die Verzweigungsvorhersage mit einer höheren Genauigkeit als die herkömmliche Verzweigungsvorhersage durchgeführt werden kann.
  • Der Satz von Verzweigungs-Vorhersage-Informationen und der Satz von Verzweigungs-Historik-Informationen sind nicht als eine Verzweigungs-Vorhersage-Tabelle dauerhaft in dem internen Speicher der Informations-Verarbeitungsvorrichtung gespeichert, sondern sind der Verzweigungsanweisung, gespeichert in der Speichereinrichtung, zugeordnet. Dementsprechend kann die erforderliche Größe der Hardware der Informations-Verarbeitungsvorrichtung zum Realisieren der Verzweigungsvorhersage reduziert werden.
  • Der Satz von Verzweigungs-Historik-Informationen der Informations-Verarbeitungsvorrichtung kann als eine Zusammenfassung einer Vielzahl von vergangenen Verzweigungsergebnissen der Verzweigungsanweisung, die den Satz von Verzweigungs-Historik-Informationen besitzt, angesehen werden.
  • Dementsprechend können die Verzweigungs-Historik-Informationen die weiter weg liegenden, vergangenen Verzweigungsergebnisse, unter Verwendung einer geringeren Anzahl von Bits als jemals zuvor, wiedergeben, und die Unordnung der Verzweigungsvorhersage (die Abnahme in der Genauigkeit), die durch das außergewöhnliche Ergebnis der Vorhersageverzweigung auferlegt wird, kann vermieden werden. Als eine Folge kann die Verzweigungsvorhersage, gesehen in einer Perspektive unter Berücksichtigung von weiter in der Vergangenheit liegenden Verzweigungsergebnissen, erreicht werden.
  • In einer bevorzugten Ausführungsform stellen die Verzweigungs-Historik-Informationen eine von mindestens vier Ebenen dar, umfassend die höchste Ebene und die niedrigste Ebene,
    wobei die Verzweigungs-Vorhersage-Informationen eines von „genommen" und „nicht genommen" darstellen,
    wobei der Aktualisierungs-Algorithmus so arbeitet, um die Verzweigungs-Vorhersage-Informationen auf „genommen", wenn der erste Zustand erfüllt ist, und auf „nicht genommen", wenn der zweite Zustand erfüllt ist, zu aktualisieren, und um, in anderen Fällen, die Verzweigungs-Vorhersage-Informationen unverändert zu belassen, wenn weder der erste Zustand noch der zweite Zustand erfüllt ist,
    wobei der erste Zustand derjenige ist, dass die Verzweigungs-Historik-Informationen einen Zwischenwert A darstellen, der weder die niedrigste Ebene noch die höchste Ebene ist, sondern näher zu der höchsten Ebene liegt, wobei dann das Verzweigungsergebnis „genommen" ist und die Verzweigungs-Vorhersage-Informationen „nicht genommen" darstellen, und
    der zweite Zustand derjenige ist, dass die Verzweigungs-Historik-Informationen einen Zwischenwert B darstellen, der weder die niedrigste Ebene noch die höchste Ebene ist, sondern näher zu der niedrigsten Ebene liegt, wobei das Verzweigungsergebnis „ nicht genommen" ist und die Verzweigungs-Vorhersage-Informationen „genommen" darstellen.
  • In einer alternativen Ausführungsform stellen die Verzweigungs-Historik-Informationen eine von mindestens vier Ebenen dar, die die höchste Ebene und die niedrigste Ebene umfassen,
    wobei die Verzweigungs-Vorhersage-Informationen eines von „genommen" und „nicht genommen" darstellen,
    wobei der Aktualisierungs-Algorithmus so arbeitet, um die Verzweigungs-Vorhersage-Informationen auf „genommen", wenn ein erster Zustand erfüllt ist, und auf „nicht genommen", wenn ein zweiter Zustand erfüllt ist, zu aktualisieren, und um, in ande ren Fällen, die Verzweigungs-Vorhersage-Informationen unverändert zu belassen, wenn weder der erste Zustand noch der zweite Zustand erfüllt ist,
    wobei der erste Zustand derjenige ist, dass die Verzweigungs-Historik-Informationen die höchste Ebene darstellen, das Verzweigungsergebnis „genommen" ist und die Verzweigungs-Vorhersage-Informationen „nicht genommen" darstellen, und
    wobei der zweite Zustand derjenige ist, dass die Verzweigungs-Historik-Informationen die niedrigste Ebene darstellen, das Verzweigungsergebnis „nicht genommen" ist und die Verzweigungs-Vorhersage-Informationen „genommen" darstellen.
  • Hierdurch kann die statistische Zusammenfassung von mehr als 3 Verzweigungsergebnissen in nur 2-Bit-Verzweigungs-Historik-Informationen, zum Beispiel, präsentiert werden.
  • In irgendeiner der vorstehenden Ausführungsformen kann es sein, dass Verzweigungs-Historik-Informationen eine von der Ebene 1, der Ebene 2, der Ebene 3 und der Ebene 4 darstellen, wobei Ebene 1 der höchsten Ebene entspricht und Ebene 4 der niedrigsten Ebene entspricht, und
    die Verzweigungs-Historik-Informations-Aktualisierungseinrichtung eine logische Schaltung umfasst, die (a), wenn das Verzweigungsergebnis „genommen" darstellt, die Verzweigungs-Historik-Informationen unverändert beibehält, wenn die Verzweigungs-Historik-Informationen die Ebene 1 darstellen, die Verzweigungs-Historik-Informationen auf Ebene 1 aktualisiert, wenn die Verzweigungs-Historik-Informationen die Ebene 2 darstellen, die Verzweigungs-Historik-Informationen auf die Ebene 2 aktualisiert, wenn die Verweigungs-Historik-Informationen die Ebene 3 darstellen, und die Verzweigungs-Historik-Informationen auf die Ebene 3 aktualisiert, wenn die Verzweigungs-Historik-Informationen die Ebene 4 darstellen, und
    dass (b), wenn das Verzweigungsergebnis „nicht genommen" darstellt, die Verzweigungs-Historik-Informationen auf Ebene 2 aktualisiert, wenn die Verzweigungs-Historik-Informationen die Ebene 1 darstellen, die Verzweigungs-Historik-Informationen auf Ebene 3 aktualisiert, wenn die Verzweigungs-Historik-Informationen die Ebene 2 darstellen, die Verzweigungs-Historik-Informationen auf Ebene 4 aktualisiert, wenn die Verzweigungs-Historik-Informationen die Ebene 3 darstellen, und die Verzweigungs-Historik-Informationen unverändert beibehält, wenn die Verzweigungs-Historik-Informationen die Ebene 4 darstellen.
  • Die Verzweigungs-Vorhersage-Informations-Aktualisierungseinrichtung der Informations-Verarbeitungsvorrichtung kann umfassen: eine logische Schaltung, die (a) die Verzweigungs-Vorhersage-Informationen auf „genommen" aktualisiert, wenn die Verzweigungs-Historik-Informationen die Ebene 2 darstellen, das Verzweigungsergebnis „genommen" ist und die Verzweigungs-Vorhersage-Informationen „nicht genommen" darstellen, und
    (b) die Verzweigungs-Vorhersage-Informationen auf „nicht genommen" aktualisiert, wenn die Verzweigungs-Historik-Informationen die Ebene 3 darstellen, das Verzweigungsergebnis „nicht genommen" ist und die Verzweigungs-Vorhersage-Informationen „genommen" darstellen.
  • Dementsprechend wird die Verzweigungsvorhersage, die eine Hysterese in der Beziehung zwischen der Verzweigungsergebnis-Historik und den Verzweigungs-Vorhersageinformationen besitzt, vorgenommen, so dass die Genauigkeit der Vorhersage verglichen mit der Verzweigungsvorhersage basierend auf den 1-Bit-Verzweigungs-Vorhersage-Informationen angehoben wird, und diejenige der Unordnung der Verzweigungsvorhersage, die durch die alternierende Wiederholung auftritt, dass die Verzweigung "genommen" und "nicht genommen" wird, und zwar in einem kurzen Zeitzyklus, wird vermieden.
  • Die Infarmations-Verarbeitungsvorrichtung kann weiterhin eine Anweisungserzeugungseinrichtung aufweisen, um, wenn die Verzweigungs-Historik-Informationen durch die Verzweigungs-Historik-Informations-Aktualisierungseinrichtung aktualisiert werden müssen und/oder wenn die Verzweigungs-Vorhersage-Informationen durch die Verzweigungs-Vorhersage-Informations-Aktualisierungseinrichtung aktualisiert werden müssen, zulässt, dass die Verzweigungs-Historik-Informationen und die Verzweigungs-Vorhersage-Informationen so, wie dies notwendig ist, aktualisiert werden und eine neue Verzweigungsanweisung erzeugt, die die aktualisierten Verzweigungs-Historik-Informationen und/oder die Verzweigungs-Vorhersage-Informationen umfasst; und
    eine Überschreibeinrichtung zum Überschreiben einer entsprechenden Stelle in der Speichereinrichtung mit der neuen Verzweigungsanweisung, wobei die entsprechende Stelle eine Stelle ist, wo eine Verzweigungsanweisung, von der die neue Verzweigungsanweisung erzeugt wurde, gespeichert worden ist.
  • Mit dieser Struktur werden die Verzweigungs-Vorhersage-Informationen und die Verzweigungs-Historik-Informationen der Verzweigungsanweisung insgesamt aktualisiert (zusammen mit anderen Bits der Verzweigungsanweisung), so dass sie in dem Hochgeschwindigkeitsprozess, verglichen mit dem Prozess, aktualisiert werden können, indem die Verzweigungsanweisung von der Speichereinrichtung ausgelesen, aktualisiert und umgeschrieben wird.
  • Die Speichereinrichtung der Informations-Verarbeitungsvorrichtung umfasst vorzugsweise:
    eine Hauptspeichereinrichtung zum Speichern der Anweisungsgruppe;
    eine Cache-Speichereinrichtung zum Speichern einer Teilkopie der Anweisungsgruppe, gespeichert in der Hauptspeichereinrichtung; und
    eine Cache-Steuereinrichtung, um eine Übereinstimmung zwischen einem Inhalt der Cache-Speichereinrichtung und einem Inhalt der Hauptspeichereinrichtung beizubehalten,
    wobei die Anweisungsabrufeinrichtung die Anweisung von der Cache-Speichereinrichtung abruft,
    wobei die Überschreibeinrichtung die entsprechende Stelle in der Cache-Speichereinrichtung mit der neuen Verzweigungsanweisung überschreibt.
  • Als eine Folge muss die Informations-Verarbeitungsvorrichtung der vorliegenden Erfindung nur die Verzweigungsanweisung, gespeichert in dem Cache-Speicher, auf den mit einer hohen Geschwindigkeit zugegriffen werden kann, aktualisieren, so dass die Ausführungsgeschwindigkeit beschleunigt wird.
  • Mittels der Strukturen, die vorstehend erwähnt sind, kann das Niveau der Hysterese erhöht werden, und eine Informations-Verarbeitungsvorrichtung, die für Systeme geeignet ist, wo eine Unterdrückung von Störungen in dem Verzweigungs-Vorhersage-Informationsfluss von einer hohen Priorität ist, wird realisiert.
  • Alternativ kann das Niveau der Hysterese verringert werden, so dass die Verzweigungsvorhersage, die für das Programmausführungsergebnis empfindlich ist, das bedeutet die dynamische Verzweigungsvorhersage, erreicht werden kann. Auch kann, da die Verzweigungs-Historik-Informationen nur eine kleine Anzahl von Bits haben müssen, die Anweisungs-Einstellung stärker frei definiert werden.
  • Der Satz der Verzweigungs-Historik-Informationen der Informations-Verarbeitungsvorrichtung kann ein Verzweigungsergebnis für jede vergangene Ausfüh rung einer Verzweigungsanweisung, umfassend den Satz von Verzweigungs-Historik-Informationen, darstellen.
  • Der Satz der Verzweigungs-Historik-Informationen der Informations-Verarbeitungsvorrichtung kann aus bis zu 2 Bits aufgebaut werden, die ein Verzweigungsergebnis für eine vorhergehende Ausführung und ein Verzweigungsergebnis für zwei Ausführungen zuvor darstellen, und die Verzweigungs-Historik-Informations-Erzeugungseinrichtung kann einen neuen Satz von Verzweigungs-Historik-Informationen unter Verwendung von Verzweigungsergebnissen zu Zeiten von Ausführungen der Verzweigungsanweisung erzeugen.
  • Dementsprechend wird die Verzweigungsvorhersage entsprechend ohne die Zusammenfassung einer Vielzahl von vergangenen Verzweigungsergebnissen, allerdings der letzten aufeinander folgenden Verzweigungsergebnisse, durchgeführt, so dass die Informations-Verarbeitungsvorrichtung, die genau die Verzweigungsvorhersage unter Berücksichtigung des außergewöhnlichen Verzweigungsergebnisses durchführt, realisiert werden kann.
  • Weiterhin kann die vorliegende Erfindung unter Verwendung nicht nur einer Hardware, sondern auch einer Software, realisiert werden. In diesem Zusammenhang schafft die vorliegende Erfindung auch ein mittels Computer lesbares Speichermedium, das darauf eine Computerprogrammcode-Einrichtung, eingeladen in einen Computer, besitzt, um den Computer in die Lage zu versetzen, einen Vorgang eines Mikroprozessors zu simulieren, der eine Anweisung vorab abruft, indem eine Verzweigungsvorhersage vorgenommen wird, durch Ausführung der Schritte:
    einen Anweisungsabrufschritt zum Abrufen einer Anweisung, die ausgeführt werden soll, von einer Speichereinrichtung, die eine Anweisungsgruppe speichert, umfassend eine Verzweigungsanweisung, die enthält (a) Verzweigungs-Vorhersage-Informationen für eine Vorhersage darüber, ob eine Verzweigung genommen ist oder nicht genommen ist, und (b) Verzweigungs-Historik-Informationen, die sich auf eine Vielzahl von vergangenen Verzweigungsergebnissen beziehen;
    einen Anweisungs-Decodierschritt zum Decodieren, ob die decodierte Anweisung eine Verzweigungsanweisung ist;
    einen Verzweigungs-Vorhersageschritt zum Lesen, wenn die abgerufene Anweisung als eine Verzweigungsanweisung decodiert ist, einer Anweisung, die entsprechend den Verzweigungs-Vorhersage-Informationen, enthalten in der decodierten Verzweigungsanweisung, ausgeführt werden soll;
    einen Ausführungsschritt zum Ausführen der decodierten Verzweigungsanweisung; und
    einen Verzweigungs-Historik-Informations-Aktualisierungsschritt zum Aktualisieren der Verzweigungs-Historik-Informationen, enthalten in der ausgeführten Verzweigungsanweisung so, wie dies entsprechend zu (a) einem Verzweigungsergebnis der ausgeführten Verzweigungsanweisung und (b) den Verzweigungs-Historik-Informationen, enthalten in der ausgeführten Verzweigungsanweisung, notwendig ist,
    gekennzeichnet dadurch, dass es weiterhin aufweist:
    einen Verzweigungs-Vorhersage-Informations-Aktualisierungsschritt zum Aktualisieren der Verzweigungs-Vorhersage-Informationen, enthalten in der ausgeführten Verzweigungsanweisung so, wie dies notwendig ist, entsprechend einem modifizierbaren Aktualisierungs-Algorithmus, der in der Verzweigungs-Vorhersage-Informations-Aktualisierungseinrichtung definiert ist, und entsprechend zu (a) dem Verzweigungsergebnis der ausgeführten Verzweigungsanweisung, (b) der Verzweigungs-Historik-Informationen, enthaften in der ausgeführten Verzweigungsanweisung, und (c) den Verzweigungs-Vorhersage-Informationen, enthalten in der ausgeführten Verzweigungsanweisung.
  • In einer bevorzugten Ausführungsform stellen, in dem mittels Computer lesbaren Speichermedium, die Verzweigungs-Historik-Informationen eine von mindestens vier Ebenen dar, umfassend die höchste Ebene und die niedrigste Ebene,
    die Verzweigungs-Vorhersage-Informationen stellen eines von „genommen" und „nicht genommen" dar,
    der Aktualisierungs-Algorithmus funktioniert so, um die Verzweigungs-Vorhersage-Informationen auf „genommen", wenn ein erster Zustand erfüllt ist, und auf „nicht genommen", wenn ein zweiter Zustand erfüllt ist, zu aktualisieren und in anderen Fällen die Verzweigungs-Vorhersage-Informationen unverändert zu belassen, wenn weder der erste Zustand noch der zweite Zustand erfüllt ist,
    wobei der erste Zustand derjenige ist, dass die Verzweigungs-Historik-Informationen einen Zwischenwert A darstellen, der weder die niedrigste Ebene noch die höchste Ebene ist, sondern näher zu der höchsten Ebene liegt, das Verzweigungsergeb nis „genommen" ist und die Verzweigungs-Vorhersage-Informationen „nicht genommen" darstellen, und
    der zweite Zustand derjenige ist, dass die Verzweigungs-Historik-Informationen einen Zwischenwert B darstellen, der weder die niedrigste Ebene noch die höchste Ebene ist, sondern näher zu der niedrigsten Ebene liegt, das Verzweigungsergebnis „nicht genommen" ist und die Verzweigungs-Vorhersage-Informationen „genommen" darstellen.
  • In einer alternativen, bevorzugten Ausführungsform stellen, in dem mittels Computer lesbaren Speichermedium, die Verzweigungs-Historik-Informationen eine von mindestens vier Ebenen dar, umfassend die höchste Ebene und die niedrigste Ebene,
    wobei die Verzweigungs-Vorhersage-Informationen entweder „genommen" oder „nicht genommen" darstellen,
    wobei der Aktualisierungs-Algorithmus so funktioniert, um Verzweigungs-Vorhersage-Informationen auf „genommen", wenn ein erster Zustand erfüllt ist, und auf „nicht genommen", wenn ein zweiter Zustand erfüllt ist, zu aktualisieren, und in anderen Fällen die Verzweigungs-Vorhersage-Informationen unverändert zu belassen, wenn weder der erste Zustand noch der zweite Zustand erfüllt ist,
    wobei der erste Zustand derjenige ist, dass die Verzweigungs-Historik-Informationen die höchste Ebene darstellen, das Verzweigungsergebnis „genommen" ist und die Verzweigungs-Vorhersage-Informationen „nicht genommen" darstellen, und
    der zweite Zustand derjenige ist, dass die Verzweigungs-Historik-Informationen die niedrigste Ebene darstellen, das Verzweigungsergebnis „nicht genommen" ist und die Verzweigungs-Vorhersage-Informationen „genommen" darstellen.
  • In den vorstehenden Ausführungsformen ist der Aufbau so, dass die Verzweigungs-Historik-Informationen einen von der Ebene 1, der Ebene 2, der Ebene 3 und der Ebene 4 darstellen, wobei Ebene 1 der höchsten Ebene entspricht und Ebene 4 der niedrigsten Ebene entspricht, und
    die Codeeinrichtung mit dem geladenen Programm den Computer so anpasst, um den Verzweigungs-Historik-Informations-Aktualisierungsschritt auszuführen, (a) wenn das Verzweigungsergebnis „genommen" darstellt, um die Verzweigungs-Historik-Informationen unverändert beizubehalten, wenn die Verzweigungs-Historik-Informationen die Ebene 1 darstellen, um die Verzweigungs-Historik-Informationen auf die Ebene 1 zu aktualisieren, wenn die Verzweigungs-Historik-Informationen die Ebene 2 darstellen, um die Verzwei gungs-Historik-Informationen auf die Ebene 2 zu aktualisieren, wenn die Verzweigungs-Historik-Informationen die Ebene 3 darstellen, und um die Verzweigungs-Historik-Informationen auf die Ebene 3 zu aktualisieren, wenn die Verzweigungs-Historik-Informationen die Ebene 4 darstellen, und
    (b) wenn das Verzweigungsergebnis „nicht genommen" darstellt, um die Verzweigungs-Historik-Informationen auf die Ebene 2 zu aktualisieren, wenn die Verzweigungs-Historik-Informationen die Ebene 1 darstellen, um die Verzweigungs-Historik-Informationen auf die Ebene 3 zu aktualisieren, wenn die Verzweigungs-Historik-Informationen die Ebene 2 darstellen, um die Verzweigungs-Historik-Informationen auf die Ebene 4 zu aktualisieren, wenn die Verzweigungs-Historik-Informationen die Ebene 3 darstellen, und um die Verzweigungs-Historik-Informationen unverändert zu belassen, wenn die Verzweigungs-Historik-Informationen die Ebene 4 darstellen.
  • Vorzugsweise versetzt die Einrichtung des geladenen Programmcodes den Computer in die Lage, den Verzweigungs-Vorhersage-Informations-Aktualisierungsschritt auszuführen, (a) um die Verzweigungs-Vorhersage-Informationen auf „genommen" zu aktualisieren, wenn die Verzweigungs-Historik-Informationen die Ebene 2 darstellen, das Verzweigungsergebnis „genommen" ist, und die Verzweigungs-Vorhersage-Informationen „nicht genommen" darstellen, und
    (b) um die Verzweigungs-Vorhersage-Informationen auf „nicht genommen" zu aktualisieren, wenn die Verzweigungs-Historik-Informationen die Ebene 3 darstellen, das Verzweigungsergebnis „nicht genommen" ist, und die Verzweigungs-Vorhersage-Informationen „genommen" darstellen.
  • Die vorliegende Erfindung schafft auch ein Speichermedium, das ein Programm zum Realisieren der Informations-Verarbeitungsvorrichtung unter Verwendung einer Software speichert und eine Anweisungsgruppe speichert, die eine eindeutige Verzweigungsanweisung für die Informations-Verarbeitungsvorrichtung umfasst.
  • Dementsprechend werden ein Hochleistungs-Mikroprozessorcomputer, eine virtuelle Maschine und andere, die unter Verwendung einer klein dimensionierten Hardware oder Software realisiert werden und eine Verzweigungsvorhersage mit einer hohen Genauigkeit durchführen, durch die vorliegende Erfindung realisiert, wodurch deren praktischer Effekt wesentlich wird.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Diese und andere Aufgaben, Vorteile und Merkmale der Erfindung werden aus der nachfolgenden Beschreibung ersichtlich werden, die in Verbindung mit den beigefügten Zeichnungen vorgenommen wird, die eine spezifische Ausführungsform der Erfindung darstellen.
  • In den Zeichnungen:
  • 1 stellt ein Format einer herkömmlichen Verzweigungsanweisung dar;
  • 2 zeigt ein Blockdiagramm, das die Struktur der Informations-Verarbeitungsvorrichtung der vorliegenden Erfindung darstellt;
  • 3 stellt ein Format einer Verzweigungsanweisung der vorliegenden Erfindung dar;
  • 4 zeigt eine Wahrheitstabelle, die die Eingangs-/Ausgangs-Beziehungen der Verzweigungs-Historik-Informations-Erzeugungseinheit 16 und der Verzweigungs-Vorhersage-Informations-Erzeugungseinheit 17 darstellt;
  • 5 stellt die detaillierte Schaltung der Verzweigungs-Historik-Informations-Erzeugungseinheit 16 dar;
  • 6 zeigt eine detaillierte Schaltung der Verzweigungs-Vorhersage-Informations-Erzeugungseinheit 17;
  • 7 zeigt ein Zustands-Übergangs-Diagramm, das einen aktualisierten Algorithmus der Verzweigungs-Historik-Informationen und der Verzweigungs-Vorhersage-Informationen der Verzweigungsanweisung darstellt;
  • 8 zeigt ein Blockdiagramm, das die detaillierte Struktur der Verzweigungsanweisung-Aktualisierungseinheit 18 der Informations-Verarbeitungsvorrichtung darstellt;
  • 9 zeigt eine farbliche Darstellung, die Beziehungen unter den Verzweigungs-Vorhersage-Informationen und den Verzweigungs-Historik-Informationen der Verzweigungsanweisung und des Verzweigungsergebnisses darstellt;
  • 10 stellt einen Fluss des Pipeline-Prozesses, durchgeführt durch die Informations-Verarbeitungsvorrichtung, dar;
  • 11 stellt ein Zustands-Übergangs-Diagramm dar, das einen aktualisieren Algorithmus der Verzweigungs-Historik-Informationen und der Verzweigungs-Vorhersage-Informationen der Verzweigungsanweisung darstellt, zu der eine Informations-Verarbeitungsvorrichtung der Modifikation 1 in Bezug gesetzt ist;
  • 12 stellt ein Zustands-Übergangs-Diagramm dar, das einen aktualisierten Algorithmus der Verzweigungs-Historik-Informationen und der Verzweigungs-Vorhersage-Informationen der Verzweigungsanweisung darstellt, zu der eine Informations-Verarbeitungsvorrichtung der Modifikation 2 in Bezug gesetzt ist;
  • 13 stellt eine Wahrheits-Tabelle dar, die einen aktualisierten Algorithmus der Verzweigungs-Historik-Informationen und der Verzweigungs-Vorhersage-Informationen der Verzweigungsanweisung darstellt, zu der eine Informations-Verarbeitungsvorrichtung der Modifikation 3 in Bezug gesetzt ist; und
  • 14 stellt ein Zustands-Übergangs-Diagramm dar, das einen aktualisierten Algorithmus der Verzweigungs-Historik-Informationen und der Verzweigungs-Vorhersage-Informationen der Verzweigungsanweisung darstellt, zu der die Modifikation 3 in Bezug gesetzt ist.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Das Nachfolgende ist eine Beschreibung einer Ausführungsform einer Informations-Verarbeitungsvorrichtung der vorliegenden Erfindung, unter Bezugnahme auf die Zeichnungen.
  • Struktur der Informations-Verarbeitungsvorrichtung
  • 2 zeigt ein Blockdiagramm, das die Struktur einer Informations-Verarbeitungsvorrichtung 100 der vorliegenden Erfindung darstellt.
  • Die Informations-Verarbeitungsvorrichtung 100 ist ein Prozessor-System, das Anweisungen mit einer festgelegten Länge von 32 Bits eine nach der anderen, die im Voraus gespeichert sind, abruft, dekodiert und ausführt. Die Informations-Verarbeitungsvorrichtung ist aus einem Hauptspeicher 9, einer Cache-Einheit 11, einer Anweisungsabrufeinheit 12, einem Anweisungsregister 13, einer Anweisungsdekodiereinheit 14, einer Anweisungs-Ausführungseinheit 15, einer Adressensteuereinheit 8, einer Programm-Zähler-Gruppe 10, einer Adressenerzeugereinheit 19, einer Verzweigungs-Historik-Informations-Erzeugungseinheit 16, einer Verzweigungs-Vorhersage-Informations-Erzeugungseinheit 17 und einer Verzweigungsanweisung-Aktualisierungseinheit 18 aufgebaut. Hierbei werden die Komponenten 8 bis 19 in Synchronisation zu einem Taktsignal, das nicht dargestellt ist, betrieben.
  • Die Komponenten 12 bis 18 weisen eine 4-Stufen-Pipeline wie folgt auf: die Anweisungs-Abrufeinheit 12 weist eine Abruf-(IF)-Stufe der Pipeline auf; die Anweisungsregi stereinheit 13 und die Anweisungsdekodiereinheit 14 weisen eine Dekodier-(DEC)-Stufe der Pipeline auf; die Anweisungsausführungseinheit 15, die Verzweigungs-Historik-Informations-Erzeugungseinheit 16, die Verzweigungs-Vorhersage-Informations-Erzeugungseinheit 17 und die Verzweigungsanweisung-Aktualisierungseinheit 18 weisen eine Ausführungs-(EX)-Stufe der Pipeline auf; und die Anweisungs-Ausführungseinheit 15 und die Verzweigungsanweisung-Aktualisierungseinheit 18 weisen eine Speicher-(MEM)-Zugriffs-Stufe der Pipeline auf. Hierbei wird der Prozess jeder Stufe in einem Taktzyklus unabhängig und parallel zu den Vorgängen der anderen Stufen durchgeführt.
  • Der Hauptspeicher 9 wird durch einen DRAM, oder dergleichen, gebildet und speichert eine Folge von Anweisungen (Programm), die Gegenstand der Ausführung durch die Informations-Verarbeitungsvorrichtung 100 sind. Dieses Programm umfasst eine Verzweigungsanweisung, die eindeutig für die Informations-Verarbeitungsvorrichtung 100 ist.
  • 3 stellt das Verzweigungsanweisungsformat der Informations-Verarbeitungsvorrichtung 100 dar. Eine Verzweigungsanweisung 20 ist aus einem 13-Bit-Operationscode 20a, einer 1-Bit-Verzweigungs-Vorhersage-Information 20b, einer 2-Bit-Verzweigungs-Historik-Information 20c und einer 16-Bit-Verzweigungs-Bestimmungs-Adresse 20d zusammengesetzt. Der Operationscode 20a stellt einen Operationscode und einen Verzweigungszustand, die die vorliegende Anweisung identifizieren, dar.
  • Die Verzweigungs-Vorhersage-Information 20b sagt vorher, ob die Verzweigung genommen wird oder nicht genommen wird, wenn die vorliegende Verzweigungsanweisung als Nächstes ausgeführt wird. Die Beziehung zwischen der Verzweigungs-Vorhersage-Information 20b und der Vorhersage ist wie folgt: wenn die Verzweigungs-Vorhersage-Information 20b "0" ist, wird eine Verzweigung als "nicht genommen" vorhergesagt; und wenn die Verzweigungs-Vorhersage-Information 20b "1" ist, wird eine Verzweigung als "genommen" vorhergesagt.
  • Die Verzweigungs-Historik-Informationen 20c sind Informationen, die statistisch von einer Vielzahl von vergangenen Ergebnissen dieser Verzweigungsanweisung zusammengestellt worden sind. Die Beziehung zwischen der Verzweigungs-Historik-Information 20c und der Häufigkeit, mit der die Verzweigung genommen worden ist (hier wird die Häufigkeit durch Vergleichen des Falls, wenn die Verzweigung nicht genommen worden ist, berechnet), ist wie folgt: wenn die Verzweigungs-Historik-Informationen 20c "00" sind, ist die Häufigkeit "sehr niedrig"; wenn die Verzweigungs-Historik-Informationen 20c "01" ist, ist die Häufigkeit "niedrig"; wenn die Verzweigungs-Historik-Informationen 20c "10" sind, ist die Häufigkeit "hoch"; und wenn die Verzweigungs-Historik-Informationen 20c "11" sind, ist die Häufigkeit "sehr hoch".
  • Die Verzweigungs-Bestimmungsadresse 20d stellt die Verzweigungs-Bestimmungsadresse für den Fall dar, wenn die Verzweigung genommen ist, was bedeutet, dass die Adresse in dem Hauptspeicher 9 der nächsten Anweisung ausgeführt werden soll. Es sollte hier angemerkt werden, dass dann, wenn die Verzweigung nicht genommen wird, die nächste Anweisung, die ausgeführt werden soll, die eine ist, die dieser Anweisung folgt.
  • Die Cache-Einheit 11 wird zum Beschleunigen des Zugriffs von der Anweisungs-Abrufeinheit 12 zu dem Hauptspeicher 9 verwendet und ist aus einem Cache-Speicher 11a, einem Tag-Speicher 11b und einer Cache-Steuereinheit 11c zusammengesetzt.
  • Der Cache-Speicher 11a wird durch einen SRAM, oder dergleichen, erreicht und ist ein Hochgeschwindigkeitsspeicher, der einen Teil des Programms, gespeichert in dem Hauptspeicher 9 in einer Einheit, bezeichnet als ein Cache-Block, speichert. Der Tag-Speicher 11b speichert ein Tag-Directory, das aus einer Adresse des Cache-Blocks und anderen Informationen zusammengesetzt ist.
  • Die Cache-Steuereinheit 11c erfasst einen Cache-Treffer durch vergleichen der Adresse, ausgegeben durch die Anweisungs-Abrufeinheit 12, mit den Inhalten des Tag-Speichers 11b. Wenn ein Cache-Treffer erfasst ist, wird der Zugriff von der Anweisungs-Abrufeinheit 11 zu dem Cache-Speicher für gültig erklärt. Andererseits ersetzt, wenn ein Cache-Treffer nicht erfasst ist, die Cache-Steuereinheit 11c den Cache-Block unter Verwendung eines LRU-(Least Recently Used)-Algorithmus. Wenn der Cache-Block ersetzt ist, werden die Inhalte des Cache-Speichers 11b und des Hauptspeichers 9 übereinstimmend durch Schreiben des Cache-Blocks in den Hauptspeicher 9 unter Verwendung des Schreib-Zurück-Verfahrens gehalten.
  • Die Anweisungs-Abrufeinheit 12 ruft vorab eine Anweisung ab, die dekodiert und ausgeführt werden soll. Die Anweisungs-Abrufeinheit 12 gibt zuerst eine Abrufadresse, übertragen von dem Anweisungs-Abrufzähler 11a, zu der Cache-Einheit 11, aus und ruft eine Anweisung entsprechend zu der Abrufadresse von dem Cache-Speicher 11a ab (oder dem Hauptspeicher 9) und speichert dann temporär die Anweisung in einem Anweisungspuffer 12a, der ein Register zum Speichern einer vorab abgerufenen Anweisung ist.
  • Das Anweisungsregister 13 ist ein Register zum Speichern einer Anweisung, die Gegenstand des Dekodiervorgangs ist. Das Anweisungsregister 13 liest die Anweisung, vorab abgerufen durch den Anweisungspuffer 12a, in dem nächsten Taktzyklus, und speichert die Anweisung, während die Anweisung dekodiert wird. 2 stellt die Inhalte einer Verzweigungsanweisung, gespeichert in dem Anweisungsregister 13, dar.
  • Die Anweisungsdekodiereinheit 14 wird durch einen ROM, der ein Mikroprogramm, oder dergleichen, speichert, erreicht, und dekodiert den Operationscode 13a einer Anweisung, die in dem Anweisungsregister 13 gespeichert ist, vor einem Ausgeben des Dekodierergebnisses, als ein Steuersignal 141, zu der Anweisungs-Ausführungseinheit 15. Wenn eine Verzweigungsanweisung Gegenstand des Dekodiervorgangs ist, informiert die Anweisungsdekodiereinheit 14 die Anweisungs-Ausführungseinheit 14 und die Adressensteuereinheit 8 über die Verzweigungs-Vorhersage-Informationen 13b der Verzweigungsanweisung über eine Signalleitung 142.
  • Die Adressensteuereinheit 8 steuert die Adressenerzeugungseinheit 19 und die Programm-Zähler-Gruppe 10 entsprechend den Nachrichten, die von der Anweisungsdekodiereinheit 14 und der Anweisungs-Ausführungseinheit 15 gesendet sind. Indem dies so vorgenommen wird, aktualisiert die Adressensteuereinheit 8 die Werte von drei Zählern (ein Anweisungs-Abrufzähler 10a, ein Anweisungs-Dekodierzähler 10b und ein Anweisungs-Ausführungszähler 10c) enthalten in der Programm-Zähler-Gruppe 10.
  • Der Anweisungs-Abrufzähler 10a speichert die Adresse (Abrufadresse) in dem Hauptspeicher 9 der Anweisung, die in dem Anweisungspuffer 12a gespeichert worden ist, der Anweisungs-Dekodierzähler 10b speichert die Adresse (Dekodieradresse) in dem Hauptspeicher der Anweisung, die in dem Anweisungsregister 13 gespeichert worden ist, und der Anweisungs-Ausführungszähler 10c speichert die Adresse (Ausführungsadresse) in dem Hauptspeicher der Anweisung, die durch die Anweisungs-Ausführungseinheit 15 ausgeführt werden soll.
  • Die Adressenerzeugungseinheit 19 umfasst eine ALU und einen Selektor. Unter der Steuerung der Adressen-Steuereinheit 8 erhöht die Adressenerzeugungseinrichtung 19 die Inhalte der Zähler 10a, 10b und 10c in der Programm-Zähler-Gruppe 10 und schreibt die Verzweigungs-Bestimmungsadresse 13d in den Anweisungs-Abrufzähler 10a oder erklärt die Verzweigungs-Bestimmungsadresse 13d für ungültig.
  • Die Anweisungs-Ausführungseinheit 15 führt eine Berechnung und eine Datenübertragung entsprechend zu jeder Anweisung, durch Steuern deren innerer Bauteile, umfassend ein allgemeines Register und eine funktionale Einheit, entsprechend dem Steuersignal 141 der Anweisungsdekodiereinheit 14, durch.
  • Wenn die ausgeführte Anweisung eine Verzweigungsanweisung ist, informiert die Anweisungs-Ausführungseinheit 15 die Verzweigungs-Historik-Informations-Erzeugungseinheit 16 und die Verzweigungs-Vorhersage-Informations-Erzeugungseinheit 17 über das Ausführungsergebnis (ob die Verzweigung genommen wird oder nicht genommen wird) über eine Signalleitung 151. Auch vergleicht die Anweisungs-Ausführungseinheit 15 das Ausführungsergebnis mit den Verzweigungs-Vorhersage-Informationen 13b und informiert dann die Anweisungsdekodiereinheit 14 und die Adressensteuereinheit 8 über das Vergleichsergebnis (ob die Vorhersage korrekt war oder nicht korrekt war) über eine Signalleitung 152 für die Penalty-Verarbeitung, die dann durchgeführt wird, wenn die Vorhersage nicht korrekt war. Hierbei bezieht sich die Penalty-Verarbeitung auf die Prozesse einer Ungültig-Erklärung der Adresse, die zu dem Anweisungsregister 13 übertragen ist, und über ein Abrufen der nächsten Anweisung, die nach der vorliegenden Verzweigungsanweisung ausgeführt werden soll.
  • Wenn eine Verzweigungsanweisung durch die Anweisungs-Ausführungseinheit 15 ausgeführt worden ist, beurteilt die Verzweigungs-Historik-Informations-Erzeugungseinheit 16, ob die Verzweigungs-Historik-Informationen 13c in dieser Anweisung aktualisiert werden sollten, und zwar entsprechend des momentanen Inhalts der Verzweigungs-Historik-Informationen 13c und des Ausführungsergebnisses (ob die Verzweigung genommen wurde oder nicht genommen wurde). Wenn beurteilt ist, dass die Verzweigungs-Historik-Informationen aktualisiert werden müssen, erzeugt die Verzweigungs-Historik-Informations-Erzeugungseinheit 16 die neuen Verzweigungs-Historik-Informationen, und gibt das Beurteilungsergebnis (ob die Verzweigungs-Historik-Informationen "beibehalten" oder "aktualisiert" werden sollen) und die neuen Verzweigungs-Historik-Informationen zu der Verzweigungsanweisung-Aktualisierungseinheit 18 aus.
  • Wenn eine Verzweigungsanweisung durch die Anweisungs-Ausführungseinheit 15 ausgeführt wird, beurteilt die Verzweigungs-Vorhersage-Informations-Erzeugungseinheit 17, ob die Verzweigungs-Vorhersage-Informationen in einer Verzweigungsanweisung entsprechend den Verzweigungs-Historik-Informationen 13c, enthalten in den Verzweigungs- Informationen und dem Ausführungsergebnis, aktualisiert werden sollten (ob die Verzweigung genommen wurde oder nicht genommen wurde). Wenn beurteilt ist, dass die Verzweigungs-Vorhersage-Informationen aktualisiert werden sollen, erzeugt die Verzweigungs-Vorhersage-Informations-Erzeugungseinheit 17 neue Verzweigungs-Vorhersage-Informationen und gibt dann das Ergebnis (ob die Verzweigungs-Vorhersage-Informationen "beibehalten" oder "aktualisiert" werden sollen) und neue Verzweigungs-Vorhersage-Informationen zu der Verzweigungsanweisung-Aktualisierungseinheit 18 aus.
  • 4 zeigt eine Wahrheits-Tabelle, die die Eingangs-/Ausgangs-Beziehungen der Verzweigungs-Historik-Informations-Erzeugungseinheit 16 und der Verzweigungs-Vorhersage-Informations-Erzeugungseinheit 17 darstellt. Die Eingangswert-Spalte stellt alle Kombinationen der Verzweigungs-Historik-Informationen H1H0 und das Ausführungsergebnis X, die in die Verzweigungs-Historik-Informations-Erzeugungseinheit 16 und die Verzweigungs-Vorhersage-Informations-Erzeugungseinheit 17 eingegeben sind, dar. Die Spalte der Verzweigungs-Histarik-Informationen N1N0 der Ausgangswert-Spalte stellt die neuen Verzweigungs-Historik-Informationen dar, die durch die Verzweigungs-Historik-Informations-Erzeugungseinheit 16 entsprechend den Kombinationen der Eingangswerte in der Eingangswert-Spalte ausgegeben sind. Die Spalte der Verzweigungs-Vorhersage-Informationen F der Ausgangswert-Spalte stellt die neuen Verzweigungs-Vorhersage-Informationen dar, die durch die Verzweigungs-Vorhersage-Informations-Erzeugungseinheit 17 entsprechend zu den Kombinationen der Eingangswerte in der Eingangswert-Spalte ausgegeben sind. Es sollte hier angemerkt werden, dass einige Werte in der Spalte für die ausgegebenen Werte als "–" angegeben sind, was zeigt, dass die Werte keine Bedeutung haben. Wenn dies der Fall ist, bedeutet dies, dass die Verzweigungs-Historik-Informations-Erzeugungseinheit 16 (oder die Verzweigungs-Vorhersage-Informations-Erzeugungseinheit 17) die Verzweigungsanweisung-Aktualisierungseinheit 18 über eine andere Signalleitung informiert, dass die Verzweigungs-Historik-Informationen (oder die Verzweigungs-Vorhersage-Informationen) "beibehalten" werden sollen.
  • 5 stellt die detaillierte Schaltung der Verzweigungs-Historik-Informations-Erzeugungseinheit 16 dar. Die Schaltung in der Verzweigungs-Historik-Informations-Erzeugungseinheit 16 ist als eine kombinatorische logische Schaltung ausgeführt, die ein 3-Bit-Signal (die Verzweigungs-Historik-Informationen N1N0 und die Informationen M1, die anzeigen, dass die vorliegenden Verzweigungs-Historik-Informationen "beibehalten" werden sollten) zu der Verzweigungsanweisung-Aktualisierungseinheit 18 entsprechend zu einem 3-Bit-Eingangssignal (die Verzweigungs-Historik-Informationen H1H0 und das Ausführungsergebnis X) ausgibt.
  • 6 stellt die detaillierte Schaltung der Verzweigungs-Vorhersage-Informations-Erzeugungseinheit 17 dar. Die Schaltung in der Verzweigungs-Vorhersage-Informations-Erzeugungseinheit 17 ist als eine kombinatorische logische Schaltung ausgeführt, die ein 2-Bit-Signal (die Verzweigungs-Vorhersage-Informationen F und die Information M0, die anzeigen, dass die vorliegenden Verzweigungs-Vorhersage-Informationen "beibehalten" werden sollten) zu der Verzweigungsanweisung-Aktualisierungseinheit 18, entsprechend zu einem 3-Bit-Eingangssignal (die Verzweigungs-Historik-Informationen H1H0 und das Ausführungsergebnis X) ausgibt. Es sollte hier angemerkt werden, dass dann, wenn die Verzweigungs-Historik-Informationen N1N0 und die Verzweigungs-Vorhersage-Informationen F "beibehalten" werden sollten, die logischen Werte der Informationen M1 und M0 auf "1" gesetzt werden.
  • 7 zeigt ein Zustands-Übergangs-Diagramm einer Verzweigungsanweisung 20, wobei der Zustand der Wert der Verzweigungs-Historik-Information 20c ist, und stellt auch einen Aktualisierungs-Algorithmus der Verzweigungs-Historik-Informationen und der Verzweigungs-Vorhersage-Informationen, dargestellt in 4, dar.
  • Wie in 7 dargestellt ist, stellt jede der vier ovalen Figuren den Wert (Zustand) dar, den die 2-Bit-Verzweigungs-Historik-Informationen nehmen können. Die Übergangspfeile, gezeichnet als durchgezogene Linien, zeigen die Übergangsrichtung an, wenn das Ausführungsergebnis "1" ist, was bedeutet dann, wenn eine Verzweigung genommen worden ist. Dabei zeigen die Übergangspfeile, gezeichnet als unterbrochene Linien, die Übergangsrichtung an, wenn das Ausführungsergebnis "0" ist, was bedeutet, wenn eine Verzweigung nicht genommen worden ist. Die Prozesse, durchgeführt dann, wenn die Verzweigungs-Vorhersage-Informationen ausgegeben sind (aktualisiert sind), werden explizit neben den Übergangspfeilen 30a und 30b beschrieben.
  • Zum Beispiel gibt, wenn die Verzweigungs-Historik-Informationen "10" vor der Ausführungsform sind (was bedeutet, die Häufigkeit, mit der die vorliegende Verzweigung genommen worden ist, bevor sie "hoch" ist), und das Ausführungsergebnis der Verzweigungsanweisung "1" ist, nämlich "genommen", die Verzweigungs-Historik-Informations- Erzeugungseinheit 16 die neuen Verzweigungs-Historik-Informationen "11" (die anzeigen, dass die Häufigkeit, mit der die vorliegende Verzweigung zuvor genommen worden ist, "sehr hoch" ist) zu der Verzweigungsanweisung-Aktualisierungseinheit 18 aus. Gleichzeitig gibt die Verzweigungs-Vorhersage-Informations-Erzeugungseinheit 17 die neuen Verzweigungs-Vorhersage-Informationen als "1" (was bedeutet "genommen") zu der Verzweigungsanweisung-Aktualisierungseinheit 18 aus.
  • Die Verzweigungsanweisung-Aktualisierungseinheit 18 aktualisiert die ersten 16 Bits der Verzweigungsanweisung (der Operationscode 20a, die Verzweigungs-Vorhersage-Information 20b und die Verzweigungs-Historik-Information 20c), die in dem Cache-Speicher 11a (oder dem Hauptspeicher 9) gespeichert sind, dessen Adresse durch den Wert des Anweisungs-Ausführungszählers 10c angezeigt ist, entsprechend zu den Signalen (N1, N0 und M1) von der Verzweigungs-Historik-Informations-Erzeugungseinheit 16, den Signalen (F und M0) von der Verzweigungs-Vorhersage-Informations-Erzeugungseinheit 17 und dem Wert des Anweisungs-Ausführungszählers 10c. Allerdings wird, wenn der Hinweis empfangen wird, dass die Informationen von sowohl der Verzweigungs-Historik-Informations-Erzeugungseinheit 16 als auch der Verzweigungs-Vorhersage-Informations-Erzeugungseinheit 17 "beibehalten" werden sollten, oder wenn der Hinweis empfangen wird, dass die Anweisung, ausgeführt durch die Anweisungs-Ausführungseinheit 15, nicht eine Verzweigungsanweisung ist, die Verzweigungsanweisung-Aktualisierungseinheit 18 keinen Vorgang an dem Hauptspeicher 9 (oder dem Cache-Speicher 11a) durchführen.
  • 8 zeigt ein Blockdiagramm, das die detaillierte Struktur der Verzweigungsanweisung-Aktualisierungseinheit 18 darstellt. Die Verzweigungsanweisung-Aktualisierungseinheit 18 ist aus einer Verzweigungsanweisung-Speichereinheit 18a, einer Aktualisierungs-Beurteilungseinheit 18b, einer Anweisungserzeugungseinheit 18c und einer Adressen-Gate-Einheit 18d aufgebaut.
  • Die Verzweigungsanweisung-Speichereinheit 18a ist ein Warteschlange-Puffer, der, zu jedem Zeitpunkt, zu dem eine neue Anweisung in dem Anweisungsregister 13 gespeichert ist, die ersten 16 Bits der neuen Anweisung erhält und speichert (wenn die neue Anweisung eine Verzweigungsanweisung ist, stellen die 16 Bits die Verzweigungs-Vorhersage-Informationen 13b und die Verzweigungs-Historik-Informationen 13c dar), und speichert auch die 16 Bits jede der zwei Anweisungen in der Dekodierstufe und der Ausführungsstufe.
  • Die Aktualisierungs-Beurteilungseinheit 18d erhält das Signal M1, das anzeigt, ob die Verzweigungs-Historik-Informationen aktualisiert sind, von der Verzweigungs-Historik-Informations-Erzeugungseinheit 16, und das Signal M0, das anzeigt, ob die Verzweigungs-Vorhersage-Informationen aktualisiert sind, von der Verzweigungs-Vorhersage-Informations-Erzeugungseinheit 17. Entsprechend diesen Signalen steuert die Aktualisierungs-Beurteilungseinheit 18b die Erzeugung einer neuen Verzweigungsanweisung durch die Anweisungs-Erzeugungseinheit 18c und die Zulässigkeit der Ausgabe einer Adresse durch die Adressen-Gate-Einheit 18d.
  • Die Anweisungs-Ereugungseinheit 18c überschreibt die neue Verzweigungs-Historik-Information N1N0 und die neue Verzweigungs-Vorhersage-Information, ausgegeben durch die Verzweigungs-Historik-Informations-Erzeugungseinheit 16 und die Verzweigungs-Vorhersage-Informations-Erzeugungseinheit 17, an der ersten der zwei 1-Bit-Anweisungen, um in der Verzweigungsanweisung-Speichereinheit 18a gespeichert zu werden (die Äquivalenz zu den ersten 16 Bits der Verzweigungsanweisung sind, die gerade ausgeführt worden ist). Indem dies so vorgenommen wird, erzeugt die Anweisungs-Erzeugungseinheit 18c die ersten 16 Bits der Verzweigungsanweisung in der Cache-Einheit 11 (oder dem Hauptspeicher 9), die aktualisiert werden soll. Es sollte hier angemerkt werden, dass dann, wenn die Signale (M1 und M0), um die vorliegenden Informationen "beizubehalten", von der Aktualisierungs-Beurteilungseinheit 18b empfangen werden, die Anweisungs-Erzeugungseinheit 18c nicht die Verzweigungs-Historik-Informationen und die Verzweigungs-Vorhersage-Informationen entsprechend zu den Signalen aktualisieren wird.
  • Dementsprechend aktualisiert, wenn mindestens eine der Verzweigungs-Vorhersage-Informationen 20b und der Verzweigungs-Historik-Informationen 20c der Verzweigungsanweisung, ausgeführt durch die Anweisungs-Ausführungseinheit 15, aktualisiert werden sollte, die Verzweigungsanweisung-Aktualisierungseinheit 18 die Verzweigungsanweisung 20 durch Überschreiben der neuen 16 Bits auf den ersten 16 Bits der Verzweigungsanweisung, gespeichert in dem Cache-Speicher 11a (oder dem Hauptspeicher 9).
  • Das Nachfolgende ist eine Beschreibung von spezifischen Änderungen der Verzweigungs-Historik-Informationen und der Verzweigungs-Vorhersage-Informationen, vorgenommen durch die Verzweigungs-Historik-Informations-Erzeugungseinheit 16, die Verzweigungs-Vorhersage-Informations-Erzeugungseinheit 17 und die Verzweigungsanweisung-Aktualisierungseinheit 18, unter Bezugnahme auf das Zustands-Übergangs-Diagramm der 7.
  • Es wird angenommen, dass die Verzweigungsanweisung 20, deren Verzweigungs-Historik-Informationen 20c "00" sind und deren Verzweigungs-Vorhersage-Informationen 20b "0" sind, wiederholt ausgeführt wird. In diesem Fall sind die spezifischen Änderungen der Verzweigungs-Historik-Informationen und der Verzweigungs-Vorhersage-Informationen wie folgt:
    wenn die Verzweigung bei der ersten Ausführung genommen wird, werden die Verzweigungs-Historik-Informationen 20c auf "01" aktualisiert und die Verzweigungs-Vorhersage-Informationen 20b werden unverändert gelassen;
    wenn die Verzweigung bei der zweiten Ausführung genommen wird, werden die Verzweigungs-Historik-Informationen 20c auf "10" aktualisiert und die Verzweigungs-Vorhersage-Informationen 20b werden unverändert gelassen;
    wenn die Verzweigung bei der dritten Ausführung genommen wird, werden die Verzweigungs-Historik-Informationen 20c auf "11" aktualisiert und die Verzweigungs-Vorhersage-Informationen 20b werden auf "1" aktualisiert;
    wenn die Verzweigung nicht bei der vierten Ausführung genommen wird, werden die Verzweigungs-Historik-Informationen 20c auf "10" aktualisiert und die Verzweigungs-Vorhersage-Informationen 20b werden unverändert belassen;
    wenn die Verzweigung nicht bei der fünften Ausführung genommen wird, werden die Verzweigungs-Historik-Informationen 20c auf "01" aktualisiert und die Verzweigungs-Vorhersage-Informationen 20b werden unverändert gelassen; und
    wenn die Verzweigung nicht bei der sechsten Ausführung genommen wird, werden die Verzweigungs-Historik-Informationen 20c auf "00" aktualisiert und die Verzweigungs-Vorhersage-Informationen 20b werden auf "0" aktualisiert.
  • 9 zeigt eine grafische Darstellung, die die vorstehenden Beispiele darstellt, wobei die vertikale Achse den Wert der Verzweigungs-Vorhersage-Informationen 20b dar stellt, die horizontale Achse den Wert der Verzweigungs-Historik-Informationen 20c darstellt und die Koordinaten ausgedruckt sind.
  • Wie in 9 dargestellt ist, wird der Übergangspunkt der Verzweigungs-Historik-Informationen 20c, wenn die Verzweigung aufeinander folgend genommen wird und die Verzweigungs-Vorhersage-Informationen 20b von "0" auf "1" geändert werden, unterschiedlich zu demjenigen der Verzweigungs-Historik-Informationen 20c, wenn die Verzweigung aufeinander folgend nicht genommen wird, und die Verzweigungs-Vorhersage-Informationen 22b von "1" auf "0" geändert werden. Das bedeutet, dass die Inversionsschwellwerte der Verzweigungs-Vorhersage-Informationen 20b unterschiedlich sind, in Abhängigkeit von der Richtung, in der sich die Verzweigungs-Historik-Informationen 20c ändern. Es kann gesagt werden, dass eine Liste, die die Verzweigungs-Vorhersage-Informationen 20b bestimmt, unter Verwendung der Historik der Ausführungsergebnisse als eine Eingabe, eine Hysterese zeigt. Mit anderen Worten wird, solange wie dort keine merkbare Differenz zwischen den Häufigkeiten vorhanden ist, mit denen die Verzweigung genommen worden ist und nicht genommen worden ist, die vorliegende Verzweigungsvorhersage beibehalten.
  • Unter Verwendung dieser Hysterese können Fehlfunktionen, wie beispielsweise eine Störung bzw. Unordnung in den Verzweigungs-Vorhersage-Informationen 20b, verursacht durch eine außergewöhnliche Verzweigung, und/oder die vollständige Ungenauigkeit in der Verzweigungsvorhersage, wenn eine Verzweigung alternativ genommen ist und nicht genommen ist, vermieden werden. Weiterhin wird die Genauigkeit der Verzweigungsvorhersage in Programmen vom Steuer-Typ insbesondere verbessert.
  • Betriebsweise der Informations-Verarbeitungsvorrichtung 100
  • Das Nachfolgende ist eine Beschreibung der Betriebsweise, die durch die Informations-Verarbeitungsvorrichtung 100, die die angegebene Struktur besitzt, durchgeführt wird, unter Bezugnahme auf ein Beispiel des Falls, bei dem eine spezifische Verzweigung ausgeführt wird.
  • 10 stellt einen Fluss des Pipeline-Prozesses, durchgeführt durch die Informations-Verarbeitungsvorrichtung 100, dar. Hierbei sind die anfänglichen Werte der Verzweigungs-Vorhersage-Informationen 20b und der Verzweigungs-Historik-Informationen 20c der Verzweigungsanweisung 20, gespeichert in dem Hauptspeicher 9, jeweils "0" und "01". Es sollte hier angemerkt werden, dass diese Anfangswerte durch einen Compiler über eine statische Analyse an einem Quellenprogramm erzeugt werden. Auch wird ein Cache-Block, umfassend die Verzweigungsanweisung, von dem Hauptspeicher 9 gelesen und in dem Cache-Speicher 11a gespeichert.
  • (1) Anweisungs-Abruf-(IF)-Ebene
  • Die Verzweigungsanweisung wird von dem Cache-Speicher 11a ausgelesen und wird in dem Anweisungspuffer 12a durch die Anweisungs-Abrufeinheit 12 während der zweiten Hälfte des Taktzyklus 1 (1b) gespeichert.
  • (2) Dekodier-(DEC)-Ebene
  • Die Verzweigungsanweisung, vorab gelesen durch den Anweisungspuffer 12a, wird zu dem Anweisungsregister 13 übertragen und wird durch die Anweisungsdekodiereinheit 14 während der ersten Hälfte des Taktzyklus 2 dekodiert (2a).
  • Genauer gesagt beurteilt die Anweisungsdekodiereinheit 14, ob die Anweisung, die dekodiert werden soll, eine Verzweigungsanweisung ist, durch Dekodieren des Operationscodes 13a, gespeichert in dem Anweisungsregister 13. Auch informiert, zusätzlich zu einem Ausgeben des Steuersignals für die Beurteilung des Verzweigungszustands zu der Anweisungs-Ausführungseinheit 15, die Anweisungsdekodiereinheit 14 die Adressensteuereinheit 8 über die Verzweigungs-Vorhersage-Informationen 13b, gespeichert in dem Anweisungsregister 13.
  • Die Adressensteuereinheit 8 sagt vorher, dass die Ausführung der Anweisung nicht zu einer Verzweigung führen wird, da die Verzweigungs-Vorhersage-Informationen 13b "0" sind, und erhöht dann den Wert des Anweisungs-Abrufzählers 10a durch Steuern der Adressenerzeugungseinheit 19. Der Wert (die Abrufadresse) wird dann zu der Cache-Einheit 11 über die Anweisungs-Abrufeinheit 12 ausgegeben.
  • Als eine Folge wird, in der IF-Ebene, während der zweiten Hälfte des Taktzyklus 2 (2b), die nächste Anweisung, die der vorliegenden Verzweigungsanweisung folgt, durch die Anweisungs-Abrufeinheit 12 ausgelesen und wird in dem Anweisungspuffer 12a gespeichert. Dementsprechend wir die nächste Anweisung vorab entsprechend der Verzweigungs-Vorhersage-Informationen, umfasst in der Verzweigungsanweisung, gelesen, gerade bevor die Verzweigungsanweisung durchgeführt ist.
  • (3) Ausführungs-(EX)-Ebene
  • Während der ersten Hälfte des Taktzyklus 3 (3a) beurteilt die Anweisungs-Ausführungseinheit den Zustand der Verzweigungsanweisung entsprechend dem Steuer signal von der Anweisungsdekodiereinheit 14. Hiernach informiert die Anweisungs-Ausführungseinheit 15 die Verzweigungs-Historik-Informations-Erzeugungseinheit 16 und die Verzweigungs-Vorhersage-Informations-Erzeugungseinheit 17 über das Ausführungsergebnis (ob die Verzweigung genommen wurde oder nicht genommen wurde), ebenso wie sie die Anweisungsdekodiereinheit 14 und die Adressensteuereinheit 8 über das Vorhersageergebnis informiert (ob die Vorhersage korrekt war oder nicht korrekt war).
  • Beim Empfangen des Hinweises über das Ausführungsergebnis während der zweiten Hälfte des Taktzyklus 3 (3b) erhalten die Verzweigungs-Historik-Informations-Erzeugungseinheit 16 und die Verzweigungs-Vorhersage-Informations-Erzeugungseinheit 17 die Verzweigungs-Historik-Informationen 13c, gespeichert in dem Anweisungsregister 13, und erzeugen neue Verzweigungs-Historik-Informationen und neue Verzweigungs-Vorhersage-Informationen oder behalten die vorliegenden Informationen bei und informieren dann die Verzweigungsanweisung-Erzeugungseinheit 18 über das Ergebnis.
  • Unter Empfang des Hinweises der neuen Verzweigungs-Historik-Informationen und/oder der neuen Verzweigungs-Vorhersage-Informationen erzeugt die Verzweigungsanweisung-Aktualisierungseinheit 18 die ersten 16 Bits der neuen Verzweigungsanweisung, umfassend diese Sätze von Informationen.
  • Es sollte hier angemerkt werden, dass dann, wenn die Vorhersage nicht korrekt ist, die Penalty-Verarbeitung (Ungültigkeits-Erklärung der Anweisung, übertragen durch das Anweisungsregister 13, und Abrufen der nächsten Anweisung, die basierend auf dem Ausführungsergebnis ausgeführt werden soll) durch die Anweisungs-Ausführungseinheit 15 und die Anweisungs-Abrufeinheit 12 durchgeführt wird.
  • (4) Speicher-(MEM)-Ebene
  • Während des Taktzyklus 4 überschreibt, wenn der Hinweis empfangen ist, dass mindestens eine der Verzweigungs-Vorhersage-Informationen 20b und der Verzweigungs-Historik-Informationen 20c von der Verzweigungs-Historik-Informations-Erzeugungseinheit 16 und der Verzweigungs-Vorhersage-Informations-Erzeugungseinheit 17 "aktualisiert" ist, die Verzweigungsanweisung-Aktualisierungseinheit 18 die ersten 16 Bits der Verzweigungsanweisung, erzeugt während des Taktzyklus 3b, auf der Verzweigungsanweisung, gespeichert in dem Cache-Speicher 11a, angezeigt durch die Ausführungsadresse, gespeichert in dem Anweisungs-Ausführungszähler 10c.
  • Der Cache-Block, umfassend die aktualisierte Verzweigungsanweisung in dem Cache-Speicher 11a, wird in der entsprechenden Position in dem Hauptspeicher 9 durch die Cache-Steuereinheit 11c überschrieben, bevor sie von dem Cache-Speicher 11a gelöscht wird. Aufgrund des Vorgangs in dieser MEM-Ebene werden, wenn die Verzweigungsanweisung von dem Hauptspeicher 9 gelesen ist und erneut ausgeführt ist, die Verzweigungs-Vorhersage-Informationen 20b und die Verzweigungs-Historik-Informationen 20c, umfasst in der Verzweigungsanweisung, definitiv gültige Informationen basierend auf den vergangenen Verzweigungsergebnissen sein.
  • Dementsprechend werden, in der Informations-Verarbeitungsvorrichtung 100, die Verzweigungs-Historik-Informationen und die Verzweigungs-Vorhersage-Informationen jeder Verzweigungsanweisung gehalten, nicht in einer zugeordneten Speichertabelle, sondern in der Verzweigungsanweisung selbst. Deshalb wird die Hardware-Größe, die für die Informations-Verarbeitungsvorrichtung 100 erforderlich ist, unterdrückt bzw. gering gehalten, vergleichen mit dem Fall, in dem die Verzweigungs-Historik-Informationen und die Verzweigungs-Vorhersage-Informationen einer Vielzahl von Verzweigungsanweisungen permanent in dem internen Speicher der Informations-Verarbeitungsvorrichtung 100 gespeichert sind.
  • Die Verzweigungsanweisung, durchgeführt durch die Informations-Verarbeitungsvorrichtung 100, umfasst die 1-Bit-Verzweigungs-Vorhersage-Informationen ebenso wie die 2-Bit-Verzweigungs-Historik-Informationen, die die Zusammenfassung einer Vielzahl von Verzweigungsergebnissen darstellen. Als solches wird die Verzweigungsvorhersage, die eine Hysterese entsprechend den Verzweigungs-Historik-Informationen und dem vorhergehenden Ausführungsergebnis besitzt, vorgenommen. Demzufolge wird die Trefferrate der Verzweigungsvorhersage verglichen mit der Vorhersage basierend auf den Verzweigungs-Vorhersage-Informationen mit nur 1 Bit erhöht, und die zuverlässige Verzweigungsvorhersage, die gegen die Effekte einer außergewöhnlichen Verzweigung resistent ist, wird erreicht.
  • Obwohl der Hauptspeicher 9 ein DRAM oder dergleichen, und der Cache-Speicher 11a ein SRAM oder dergleichen, in der vorliegenden Ausführungsform ist, sollte offensichtlich werden, dass die vorliegende Erfindung nicht auf diese Komponenten beschränkt ist.
  • Als ein Beispiel kann der Hauptspeicher 9 eine nicht flüchtige Speichervorrichtung, wie beispielsweise eine Festplatte, sein. Demzufolge sind, gerade dann, wenn die Stromversorgung der Informations-Verarbeitungsvorrichtung abgeschaltet ist, die Verzweigungs-Vorhersage-Information 20b und die Verzweigungs-Historik-Information 20c noch auf einer solchen Festplatte gespeichert, so dass die gültige Verzweigungsvorhersage durchgeführt werden kann, ohne dass man zuerst die Verzweigungs-Historik-Informationen akkumulieren muss.
  • Modifikation 1
  • Das Nachfolgende ist eine Beschreibung einer Modifikation der Informations-Verarbeitungsvorrichtung 100 in der angegebenen Ausführungsform.
  • Wie in 7 in der Ausführungsform, die vorstehend beschrieben ist, dargestellt ist, werden die Verzweigungs-Vorhersage-Informationen als "genommen" nur dann eingestellt, wenn sich die Verzweigungs-Historik-Informationen von "hoch" zu "sehr hoch" bewegen, und wird auf als "nicht genommen" nur dann eingestellt, wenn sich die Verzweigungs-Historik-Informationen von "niedrig" zu "sehr niedrig" bewegen.
  • In dieser Modifikation wird allerdings der Aktualisierungs-Algorithmus geändert, wie dies neben den Übergangspfeilen 31a und 31b des Zustands-Übergangs-Diagramms in 11 geschrieben ist, so dass die Verzweigungs-Vorhersage-Informationen als "genommen" nur dann eingestellt werden, wenn die Verzweigungs-Historik-Informationen "sehr hoch" verbleiben (das bedeutet das Ausführungsergebnis der Verzweigungsanweisung, mit den Verzweigungs-Historik-Informationen, die "sehr hoch" sind, wird "genommen"), und als "nicht genommen" nur dann eingestellt werdem, wenn die Verzweigungs-Historik-Informationen "sehr niedrig" verbleiben (das bedeutet das Ausführungsergebnis der Verzweigungsanweisung, mit den Verzweigungs-Historik-Informationen, die "sehr niedrig" sind, wird "nicht genommen"), wobei die Einstellung nicht in allen anderen Fällen geändert wird. Dies kann einfach durch Modifizieren des Verdrahtungsmusters der kombinatorischen, logischen Schaltung, umfasst in der Verzweigungs-Vorhersage-Informations-Erzeugungseinheit 17, realisiert werden.
  • Diese Modifikation 1 stellt einen Fall dar, bei dem das Niveau der Hysterese höher als dasjenige in der angegebenen Ausführungsform ist, was durch Vergleichen der 7 mit 11 verständlich werden kann. Mit anderen Worten werden sich die Verzweigungs- Vorhersage-Informationen in 11 nicht aufgrund deren unregelmäßigen Verzweigungsergebnisse ändern.
  • Dementsprechend ist es möglich, eine Informations-Verarbeitungsvorrichtung zu realisieren, die für Systeme geeignet ist, wo eine Unterdrückung von Unordnungen in dem Verzweigungs-Vorhersage-Informationsfluss eine hohe Priorität besitzt, oder für Systeme, wo Änderungen in den Verzweigungs-Vorhersage-Informationen nicht erwünscht sind, wie beispielsweise ein System, bei dem ein Anfangswert, bestimmt durch statische Informationen, immer dann beibehalten wird, wenn dies im Hinblick auf dynamische Ereignisse zum Zeitpunkt einer Ausführung möglich ist.
  • Modifikation 2
  • Obwohl die Verzweigungs-Historik-Informationen aus 2 Bits in der angegebenen Ausführungsform zusammengesetzt sind, können sie einfach auf 1 Bit modifiziert werden. 12 stellt ein Zustands-Übergangs-Diagramm dar, das einen Aktualisierungs-Algorithmus der Verzweigungs-Historik-Informationen in dem Fall darstellt, wo die Verzweigungs-Historik-Informationen aus 1 Bit zusammengesetzt sind. Die Verzweigungs-Historik-Informationen gehören zu entweder dem Zustand "hoch" oder dem Zustand "niedrig", wobei die Zustände jeweils anzeigen, dass das vorhergehende Ausführungsergebnis "genommen" wurde und "nicht genommen" wurde. Wie neben dem Übergangspfeil 32a geschrieben ist, sind die Verzweigungs-Vorhersage-Informationen als "genommen" nur dann eingestellt, wenn die Verzweigungs-Historik-Informationen "hoch" verbleiben (das bedeutet das Ausführungsergebnis der Verzweigungsanweisung, wobei die Verzweigungs-Historik-Informationen "hoch" sind, wird "genommen"). Ähnlich werden, wie neben dem Übergangspfeil 32b geschrieben ist, die Verzweigungs-Vorhersage-Informationen als "nicht genommen" nur dann eingestellt, wenn die Verzweigungs-Historik-Informationen "niedrig" verbleiben (das bedeutet das Ausführungsergebnis der Verzweigungsanweisung, wobei die Verzweigungs-Historik-Informationen "niedrig" sind, wird "nicht genommen"). Hierbei wird die Einstellung nicht für andere Übergänge geändert. Dementsprechend wird die Einstellung der Verzweigungs-Vorhersage-Informationen nicht geändert, während die Ausführungsergebnisse der Verzweigungsanweisung wiederholt zwischen "genommen" und "nicht genommen" wechseln, allerdings werden, wenn dasselbe Ergebnis wiederholt wird, die Verzweigungs-Vorhersage-Informationen als der Wert entsprechend zu dem Ergebnis eingestellt.
  • Wie leicht verständlich werden kann, kann die Modifikation 2 einfach durch Verringern der logischen Schaltungen und durch Modifizierung der Übertragungsmuster der logischen Schaltungen der Verzweigungs-Historik-Informations-Erzeugungseinheit 16 und der Verzweigungs-Vorhersage-Informations-Erzeugungseinheit 17 der angegebenen Ausführungsform realisiert werden.
  • Diese Modifikation 2 kann durch Vergleichen der 7 mit der 12, die darstellen, dass das Niveau der Hysterese in dieser zweiten Modifikation niedriger als in 2 der angegebenen Ausführungsform ist, verständlich werden. Mit anderen Worten sind die Verzweigungs-Vorhersage-Informationen für die Änderung der Verzweigungs-Historik-Informationen, verglichen mit den Verzweigungs-Vorhersage-Informationen in der angegebenen Ausführungsform, empfindlich. Dementsprechend kann eine Informations-Verarbeitungsvorrichtung, die für ein System geeignet ist, das empfindlicher für Programmausführungsergebnisse als die Informations-Verarbeitungsvorrichtung 100 der angegebenen Ausführungsform ist, das bedeutet ein Realzeitsystem, mit einer Folge von außergewöhnlichen Prozessen, realisiert werden.
  • Die Verzweigungs-Historik-Informationen sind mit nur 1 Bit in der Modifikation 2 zusammengesetzt, so dass die Code-Größe verringert wird und der Anweisungs-Satz freier definiert werden kann (Auflisten eines Operationscodes).
  • Modifikation 3
  • In der angegebenen Ausführungsform und den Modifikationen 1 und 2 führt die Informations-Verarbeitungsvorrichtung die Verzweigungsanweisungen, umfassend Verzweigungs-Historik-Informationen, die eine statistische Zusammenfassung der vergangenen Verzweigungsergebnissen sind, durch. Sie kann einfach zu einer Informations-Verarbeitungsvorrichtung modifiziert werden, die Verzweigungsanweisungen durchführt, die jeweils die Verzweigungs-Historik-Informationen, zusammengesetzt aus einer Vielzahl von Bits entsprechend zu jeder vergangenen Verzweigung, umfassen.
  • Das bedeutet, dass eine Informations-Verarbeitungsvorrichtung, die eine Verzweigungsanweisung durchführt, umfassend eine Vielzahl von Bits, die eine Vielzahl von vergangenen Ausführungsergebnissen der Verzweigungsanweisung darstellen, durch Modifizieren der Funktionen (Eingangs-/Ausgangs-Umwandlungs-Algorithmus) der Verzweigungs-Historik-Informations-Erzeugungseinheit 16 und der Verzweigungs-Vorhersage- Informations-Erzeugungseinheit 17 der Informations-Verarbeitungsvorrichtung 100 in der angegebenen Ausführungsform realisiert wird.
  • 13, die der 4 der angegebenen Ausführungsform entspricht, ist eine Wahrheits-Tabelle, die einen Aktualisierungs-Algorithmus, durchgeführt durch eine Verzweigungs-Historik-Informations-Erzeugungseinheit und eine Verzweigungs-Vorhersage-Informations-Erzeugungseinheit einer Informationsvorrichtung, auf die sich die Modifikation 3 bezieht, darstellt.
  • Im Gegensatz zu der angegebenen Ausführungsform stellen die 2-Bit-Verzweigungs-Historik-Informationen 20c, umfasst in einer Verzweigungsanweisung, das Verzweigungsergebnis der vorhergehenden Ausführung unter Verwendung des letzteren Bits H0 ("1" zeigt "genommen" an und "0" zeigt "nicht genommen" an) dar, und stellen das Verzweigungsergebnis von zwei Ausführungen zuvor unter Verwendung des ersten Bits H1 dar.
  • Die Verzweigungs-Historik-Informations-Erzeugungseinheit der Modifikation 3 ist ein Warteschlange-Puffer, und erzeugt beim Empfangen des Hinweises eines neuen Ausführungsergebnisses X von der Anweisungs-Ausführungseinheit 15 neue Verzweigungs-Historik-Informationen N1N0 durch Eingeben des Ausführungsergebnisses X in das letztere Bit N0, was das gespeicherte 2-Bit H1H0 nach oben verschiebt.
  • Als eine allgemeine Regel verwendet die Verzweigungs-Vorhersage-Informations-Erzeugungseinheit der Modifikation 3 den zahlenmäßig umfangreicheren, logischen Wert in 3 Bits als die neuen Verzweigungs-Vorhersage-Informationen F, wobei die 3 Bits die 2-Bit-Verzweigungs-Historik-Informationen H1 H0 vor der Ausführung der Verzweigungsanweisung und das 1-Bit-Ausführungsergebnis X, auf das durch die Anweisungs-Ausführungseinheit 15 hingewiesen ist (zum Beispiel dann, wenn H1H0 =01 und X=1 gilt, und deren zahlenmäßig umfangreicherer logischer Wert "1" ist), sind. In dem einzigen Ausnahmefall, wo diese 3 Bits, H1H0 und X, 0 und 1, abwechseln, erzeugt die Verzweigungs-Vorhersage-Informations-Erzeugungseinheit einen logischen Wert als die neuen Verzweigungs-Vorhersage-Informationen F, dem Alternieren folgend (zum Beispiel dann, wenn H1H0=010 gilt, ist der erzeugte logische Wert "1", und wenn H1H0X=101 gilt, ist der erzeugte logische Wert "0"). Allgemein wird eine nächste Verzweigungsvorhersage als zahlenmäßig umfangreicher der vergangenen drei Ausführungsergebnisse ("genommen" oder "nicht genommen")erzeugt. Allerdings wird in dem Ausnahmefall, wo die vergange nen drei Ausführungsergebnisse "genommen" und "nicht genommen" abwechseln, die Verzweigungsvorhersage der folgenden Alternierung folgend vorgenommen.
  • 14 zeigt ein Zustands-Übergangs-Diagramm, das den aktualisierten Algorithmus der Verzweigungs-Historik-Informationen und der Verzweigungs-Vorhersage-Informationen der Modifikation 3 darstellt, und entspricht der 7 in der angegebenen Ausführungsform. Wie in 14 dargestellt ist, stellen die Werte, die neben den Übergangspfeilen angegeben sind, die Quellen der Übergänge dar (das bedeutet, die Werte des Ausführungsergebnis Xs) und stellen die Werte der neuen Verzweigungs-Vorhersage-Informationen, ausgegeben durch die Verzweigungs-Vorhersage-Informations-Erzeugungseinheit, entsprechend zu den Übergängen, dar.
  • Hierbei werden, als ein Beispiel, wenn die Verzweigungsanweisung 20 mit den Verzweigungs-Historik-Informationen 20c "00" und den Verzweigungs-Vorhersage-Informationen 20b "0" wiederholt ausgeführt werden, die Werte der Verzweigungs-Historik-Informationen 20c und der Verzweigungs-Vorhersage-Informationen 20b aktualisiert oder werden unverändert belassen wie folgt:
    wenn das erste Ausführungsergebnis der Verzweigung "genommen" (nicht vorhergesagt) ist, werden die Verzweigungs-Historik-Informationen 20c auf "01" aktualisiert und die Verzweigungs-Vorhersage-Informationen 20b werden auf "0" (ungeändert) eingestellt;
    wenn das zweite Ausführungsergebnis der Verzweigung "nicht genommen" (wie vorhergesagt) ist, werden die Verzweigungs-Historik-Informationen 20c auf "10" aktualisiert und die Verzweigungs-Vorhersage-Informationen 20b werden auf "1" geändert;
    wenn das dritte Ausführungsergebnis der Verzweigung "genommen" (wie vorhergesagt) ist, werden die Verzweigungs-Historik-Informationen 20c auf "01" aktualisiert und die Verzweigungs-Vorhersage-Informationen 20b werden auf "0" geändert; und
    wenn das vierte Ausführungsergebnis der Verzweigung "nicht genommen" (wie vorhergesagt) ist, werden die Verzweigungs-Historik-Informationen 20c auf "10" aktualisiert und die Verzweigungs-Vorhersage-Informationen 20b werden auf "1" geändert.
  • Mittels der Informations-Verarbeitungsvorrichtung der Modifikation 3 wird, wie von der Informations-Verarbeitungsvorrichtung der angegebenen Ausführungsform bestimmt, die Verzweigungsvorhersage entsprechend den vergangenen Verzweigungsergebnissen allgemein vorgenommen und wird auch unter der Annahme vorgenommen, dass eine "Toggle" Situation fortführen wird, wenn die Verzweigungen alternierend "genommen" und "nicht genommen" werden. Als eine Folge können Verzweigungen genau sogar für diese spezielle Art eines Programmflusses vorhergesagt werden.
  • Bis zu diesem Punkt ist die Informations-Verarbeitungsvorrichtung der vorliegenden Erfindung in einer Ausführungsform und 3 Modifikationen beschrieben worden, obwohl die vorliegende Erfindung nicht auf diese beschränkt ist. Es sollte offensichtlich werden, dass andere Modifikationen einfach durch Kombinieren der Werte, wie beispielsweise der Zustände zum Bestimmen der Verzweigungs-Vorhersage-Informationen (Kombination des Werts von Verzweigungs-Historik-Informationen und des Verzweigungsergebnisses), des Algorithmus, der die Verzweigungs-Historik-Informationen aktualisiert, und der Anzahl von Bits der Verzweigungs-Historik-Informationen, realisiert werden können.
  • Als ein Beispiel können die Verzweigungs-Historik-Informationen 3 Bits zugeordnet werden, die eine detailliertere Zusammenfassung der Verzweigungs-Historik in 8 Phasen darstellen. Indem dies vorgenommen wird, kann eine detailliertere Verzweigungsvorhersage mit einer höheren Genauigkeit vorgenommen werden.
  • Es sollte hier angeführt werden, dass allerdings dann, wenn die Anzahl von Bits in einer Verzweigungsanweisung, die zum Erstellen einer Verzweigungsvorhersage zugeordnet ist, erhöht wird, dort eine Abwägung mit der Freiheit, mit der die Anweisungseinstellung definiert werden kann, vorgenommen wird, so dass die Anzahl von verwendeten Bits in Bezug auf die erforderliche Vorhersagegenauigkeit und die erforderlichen Anweisungstypen bestimmt werden sollte.
  • Die Bestandteile der angegebenen Ausführungsform und der Modifikationen sind unter der Vorgabe erläutert, dass sie alle durch die logischen Schaltungen realisiert werden, obwohl es nicht gesagt werden muss, dass die vorliegende Erfindung nicht nur durch eine Hardware, sondern auch durch eine Software, realisiert werden kann.
  • Genauer gesagt können die Bestandteile der Informations-Verarbeitungsvorrichtung 100 der angegebenen Ausführungsform, wie beispielsweise die Speichereinrichtungen 9, 11a, 11b, 12a, 13, 10a, 10b und 10c zum Speichern von Anweisungen und Werten, zu Variablen und einem Datenbereich zugeordnet werden, und das Beibehalten von Funktionen wie beispielsweise der Steuereinrichtungen 88, 11c, 12 und 14-19 kann unter Verwendung einer Programmiersprache beschrieben werden. Dementsprechend kann die Informations-Verarbeitungsvorrichtung der vorliegenden Erfindung als ein Simulationsprogramm und eine virtuelle Maschine, ausgeführt durch ein allgemeines Computer-System, realisiert werden. Ein Programm zum Realisieren einer solchen Informations-Verarbeitungsvorrichtung der vorliegenden Erfindung kann auf einem Speichermedium, wie beispielsweise einem CD-ROM, gespeichert werden und kann verteilt werden.
  • Weiterhin umfasst die Verzweigungsanweisung der angegebenen Ausführungsform und der Modifikationen die Verzweigungs-Historik-Informationen, die einzigartig für die vorliegende Erfindung sind, wie dies in dem Anweisungsformat der 3, zum Beispiel, dargestellt ist, im Gegensatz zu dem herkömmlichen Anweisungsformat, das in 1 dargestellt ist. Die Verzweigungsanweisung, umfassend die charakteristische Struktur, ist einzigartig für die vorliegende Erfindung. Es sollte offensichtlich sein, dass ein Satz von Anweisungen (ein Programm), umfassend eine solche Verzweigungsanweisung, wie in dem Fall mit dem Programm, über ein Speichermedium verteilt werden kann, wie beispielsweise eine Floppy-Disk, oder eine Kommunikationsleitung.
  • Obwohl die vorliegende Erfindung vollständig anhand von Beispielen unter Bezugnahme auf die beigefügten Zeichnungen beschrieben worden ist, sollte angeführt werden, dass verschiedene Änderungen und Modifikationen für Fachleute auf dem betreffenden Fachgebiet ersichtlich werden. Deshalb sollten, ohne dass solche Änderungen und Modifikationen außerhalb des Schutzumfangs der vorliegenden Erfindung liegen, sie dahingehend angesehen werden, dass sie darin umfasst sind.

Claims (12)

  1. Informations-Verarbeitungsvorrichtung, die aufeinanderfolgend Anweisungen ausführt, wobei die Informations-Verarbeitungsvorrichtung aufweist: eine Speichereinrichtung (9, 11) zum Speichern einer Anweisungsgruppe, umfassend eine Verzweigungsanweisung, die (a) Verzweigungs-Vorhersage-Informationen für eine Vorhersage darüber, ob eine Verzweigung genommen ist oder nicht genommen ist, und (b) Verzweigungs-Historik-Informationen, die sich auf eine Vielzahl von vergangenen Verzweigungsergebnissen beziehen, umfasst; eine Anweisungsabrufeinrichtung (12, 13) zum Abrufen einer Anweisung, die ausgeführt werden soll, von der Speichereinrichtung; eine Anweisungs-Decodiereinrichtung (14) zum Decodieren der abgerufenen Anweisung und zum Beurteilen, ob die decodierte Anweisung die Verzweigungsanweisung ist; eine Anweisungs-Abrufsteuereinrichtung (8, 19, 10) zum Steuern, wenn die decodierte Anweisung dahingehend beurteilt ist, dass sie die Verzweigungsanweisung ist, der Anweisungsabrufeinrichtung so, um eine Anweisung entsprechend der Verzweigungs-Vorhersage-Informationen, enthalten in der decodierten Verzweigungsanweisung, abzurufen; eine Ausführungseinrichtung (15) zum Ausführen der decodierten Verzweigungsanweisung; und eine Verzweigungs-Historik-Informations-Aktualisierungseinrichtung (16, 18) zum Aktualisieren der Verzweigungs-Historik-Informationen, enthalten in der ausgeführten Verzweigungsanweisung, so, wie dies notwendig ist, entsprechend zu (a) einem Verzweigungsergebnis der ausgeführten Verzweigungsanweisung und (b) der Verzweigungs-Historik-Informationen, enthalten in der ausgeführten Verzweigungsanweisung, dadurch gekennzeichnet, dass die Informations-Verarbeitungsvorrichtung weiterhin aufweist: eine Verzweigungs-Vorhersage-Informations-Aktualisierungseinrichtung (17, 18) zum Aktualisieren der Verzweigungs-Vorhersage-Informationen, enthalten in der ausgeführten Verzweigungsanweisung, so, wie dies notwendig ist, entsprechend einem modifizierbaren Aktualisierungs-Algorithmus, definiert in der Verzweigungs-Vorhersage-Informations-Aktualisierungseinrichtung und entsprechend zu (a) dem Verzweigungsergebnis der ausgeführten Verzweigungsanweisung, (b) der Verzweigungs-Historik-Informationen, enthalten in der ausgeführten Verzweigungsanweisung, und (c) der Verzweigungs-Vorhersage-Informationen, enthalten in der ausgeführten Verzweigungsanweisung.
  2. Informations-Verarbeitungsvorrichtung nach Anspruch 1, wobei die Verzweigungs-Historik-Informationen eine von mindestens vier Ebenen, die die höchste Ebene und die niedrigste Ebene umfassen, darstellen, wobei die Verzweigungs-Vorhersage-Informationen eines von „genommen" und „nicht genommen" darstellen, wobei der Aktualisierungs-Algorithmus so arbeitet, um die Verzweigungs-Vorhersage-Informationen auf „genommen", wenn ein erster Zustand erfüllt ist, und auf „nicht genommen", wenn ein zweiter Zustand erfüllt ist, zu aktualisieren, und um, in anderen Fällen, die Verzweigungs-Vorhersage-Informationen unverändert zu belassen, wenn weder der erste Zustand noch der zweite Zustand erfüllt ist, wobei der erste Zustand derjenige ist, dass die Verzweigungs-Historik-Informationen einen Zwischenwert A darstellen, der weder die niedrigste Ebene noch die höchste Ebene ist, sondern näher zu der höchsten Ebene liegt, wobei dann das Verzweigungsergebnis „genommen" ist und die Verzweigungs-Vorhersage-Informationen „nicht genommen" darstellen, und der zweite Zustand derjenige ist, dass die Verzweigungs-Historik-Informationen einen Zwischenwert B darstellen, der weder die niedrigste Ebene noch die höchste Ebene ist, sondern näher zu der niedrigsten Ebene liegt, wobei das Verzweigungsergebnis „nicht genommen" ist und die Verzweigungs-Vorhersage-Informationen „genommen" darstellen.
  3. Informations-Verarbeitungsvorrichtung nach Anspruch 1, wobei die Verzweigungs-Historik-Informationen eine von mindestens vier Ebenen, die die höchste Ebene und die niedrigste Ebene darstellen, umfassen, wobei die Verzweigungs-Vorhersage-Informationen eines von „genommen" und „nicht genommen" darstellen, wobei der Aktualisierungs-Algorithmus so arbeitet, um die Verzweigungs-Vorhersage-Informationen auf „genommen", wenn ein erster Zustand erfüllt ist, und auf „nicht genommen", wenn ein zweiter Zustand erfüllt ist, zu aktualisieren, und um, in anderen Fällen, die Verzweigungs-Vorhersage-Informationen unverändert zu belassen, wenn weder der erste Zustand noch der zweite Zustand erfüllt ist, wobei der erste Zustand derjenige ist, dass die Verzweigungs-Historik-Informationen die höchste Ebene darstellen, das Verzweigungsergebnis „genommen" ist und die Verzweigungs-Vorhersage-Informationen „nicht genommen" darstellen, und wobei der zweite Zustand derjenige ist, dass die Verzweigungs-Historik-Informationen die niedrigste Ebene darstellen, das Verzweigungsergebnis „nicht genommen" ist und die Verzweigungs-Vorhersage-Informationen „genommen" darstellen.
  4. Informations-Verarbeitungsvorrichtung nach Anspruch 2 oder 3, wobei die Verzweigungs-Historik-Informationen eine von Ebene 1, Ebene 2, Ebene 3 und Ebene 4 darstellen, wobei Ebene 1 der höchsten Ebene entspricht und Ebene 4 der niedrigsten Ebene entspricht, und die Verzweigungs-Historik-Informations-Aktualisierungseinrichtung eine logische Schaltung umfasst, die (a), wenn das Verzweigungsergebnis „genommen" darstellt, die Verzweigungs-Historik-Informationen unverändert beibehält, wenn die Verzweigungs-Historik-Informationen die Ebene 1 darstellen, die Verzweigungs-Historik-Informationen auf Ebene 1 aktualisiert, wenn die Verzweigungs-Historik-Informationen die Ebene 2 darstellen, die Verzweigungs-Historik-Informationen auf die Ebene 2 aktualisiert, wenn die Verzweigungs-Historik-Informationen die Ebene 3 darstellen, und die Verzweigungs-Historik-Informationen auf die Ebene 3 aktualisiert, wenn die Verzweigungs-Historik-Informationen die Ebene 4 darstellen, und dass (b), wenn das Verzweigungsergebnis „nicht genommen" darstellt, die Verzweigungs-Historik-Informationen auf Ebene 2 aktualisiert, wenn die Verzweigungs-Historik-Informationen die Ebene 1 darstellen, die Verzweigungs-Historik-Informationen auf Ebene 3 aktualisiert, wenn die Verzweigungs-Historik-Informationen die Ebene 2 dar stellen, die Verzweigungs-Historik-Informationen auf Ebene 4 aktualisiert, wenn die Verzweigungs-Historik-Informationen die Ebene 3 darstellen, und die Verzweigungs-Historik-Informationen unverändert beibehält, wenn die Verzweigungs-Historik-Informationen die Ebene 4 darstellen.
  5. Informations-Verarbeitungsvorrichtung nach Anspruch 4, wobei die Verzweigungs-Vorhersage-Informations-Aktualisierungseinrichtung eine logische Schaltung umfasst, die (a) die Verzweigungs-Vorhersage-Informationen auf „genommen" aktualisiert, wenn die Verzweigungs-Historik-Informationen die Ebene 2 darstellen, das Verzweigungsergebnis „genommen" ist und die Verzweigungs-Vorhersage-Informationen „nicht genommen" darstellen, und (b) die Verzweigungs-Vorhersage-Informationen auf „nicht genommen" aktualisiert, wenn die Verzweigungs-Historik-Informationen die Ebene 3 darstellen, das Verzweigungsergebnis „nicht genommen" ist und die Verzweigungs-Vorhersage-Informationen „genommen" darstellen.
  6. Informations-Verarbeitungsvorrichtung nach Anspruch 5, die weiterhin aufweist: eine Anweisungs-Erzeugungseinrichtung (18), um, wenn die Verzweigungs-Historik-Informationen durch die Verzweigungs-Historik-Informations-Aktualisierungseinrichtung aktualisiert werden müssen und/oder wenn die Verzweigungs-Vorhersage-Informationen durch die Verzweigungs-Vorhersage-Informations-Aktualisierungseinrichtung aktualisiert werden müssen, zulässt, dass die Verzweigungs-Historik-Informationen und die Verzweigungs-Vorhersage-Informationen so, wie dies notwendig ist, aktualisiert werden und eine neue Verzweigungsanweisung erzeugt, die die aktualisierten Verzweigungs-Historik-Informationen und/oder die Verzweigungs-Vorhersage-Informationen umfasst; und eine Überschreibeinrichtung (18) zum Überschreiben einer entsprechenden Stelle in der Speichereinrichtung mit der neuen Verzweigungsanweisung, wobei die entsprechende Stelle eine Stelle ist, wo eine Verzweigungsanweisung, von der die neue Verzweigungsanweisung erzeugt wurde, gespeichert worden ist.
  7. Informations-Verarbeitungsvorrichtung nach Anspruch 6, wobei die Speichereinrichtung umfasst: eine Hauptspeichereinrichtung (9) zum Speichern der Anweisungsgruppe; eine Cache-Speichereinrichtung (11a) zum Speichern einer Teilkopie der Anweisungsgruppe, gespeichert in der Hauptspeichereinrichtung; und eine Cache-Steuereinrichtung (11c), um eine Übereinstimmung zwischen einem Inhalt der Cache-Speichereinrichtung und einem Inhalt der Hauptspeichereinrichtung beizubehalten, wobei die Anweisungsabrufeinrichtung die Anweisung von der Cache-Speichereinrichtung abruft, wobei die Überschreibeinrichtung die entsprechende Stelle in der Cache-Speichereinrichtung mit der neuen Verzweigungsanweisung überschreibt.
  8. Mittels Computer lesbares Speichermedium, das darauf eine Computerprogramm-Codeeinrichtung, geladen in einem Computer, besitzt, um den Computer so anzupassen, um einen Betrieb eines Mikroprozessors zu simulieren, der eine Anweisung, durch Vornehmen einer Verzweigungsvorhersage, vorab abruft durch Ausführen der Schritte von: einen Anweisungsabrufschritt zum Abrufen einer Anweisung, die ausgeführt werden soll, von einer Speichereinrichtung, die eine Anweisungsgruppe speichert, umfassend eine Verzweigungsanweisung, die enthält (a) Verzweigungs-Vorhersage-Informationen für eine Vorhersage darüber, ob eine Verzweigung genommen ist oder nicht genommen ist, und (b) Verzweigungs-Historik-Informationen, die sich auf eine Vielzahl von vergangenen Verzweigungsergebnissen beziehen; einen Anweisungs-Decodierschritt zum Decodieren, ob die decodierte Anweisung die Verzweigungsanweisung ist; einen Verzweigungs-Vorhersageschritt zum Lesen, wenn die abgerufene Anweisung als eine Verzweigungsanweisung decodiert ist, einer Anweisung, die entsprechend den Verzweigungs-Vorhersage-Informationen, enthalten in der decodierten Verzweigungsanweisung, ausgeführt werden soll; einen Ausführungsschritt zum Ausführen der decodierten Verzweigungsanweisung; und einen Verzweigungs-Historik-Informations-Aktualisierungsschritt zum Aktualisieren der Verzweigungs-Historik-Informationen, enthalten in der ausgeführten Verzweigungsanweisung so, wie dies entsprechend zu (a) einem Verzweigungsergebnis der ausgeführten Verzweigungsanweisung und (b) den Verzweigungs-Historik-Informationen, enthalten in der ausgeführten Verzweigungsanweisung, notwendig ist, gekennzeichnet dadurch, dass es weiterhin aufweist: einen Verzweigungs-Vorhersage-Informations-Aktualisierungsschritt zum Aktualisieren der Verzweigungs-Vorhersage-Informationen, enthalten in der ausgeführten Verzweigungsanweisung so, wie dies notwendig ist, entsprechend zu einem modifizierbaren Aktualisierungs-Algorithmus, der in der Verzweigungs-Vorhersage-Informations-Aktualisierungseinrichtung definiert ist, und entsprechend zu (a) dem Verzweigungsergebnis der ausgeführten Verzweigungsanweisung, (b) den Verzweigungs-Historik-Informationen, enthalten in der ausgeführten Verzweigungsanweisung, und (c) den Verzweigungs-Vorhersage-Informationen, enthalten in der ausgeführten Verzweigungsanweisung.
  9. Mittels Computer lesbares Speichermedium nach Anspruch 8, wobei die Verzweigungs-Historik-Informationen eine von mindestens vier Ebenen, umfassend die höchste Ebene und die niedrigste Ebene, darstellen, wobei die Verzweigungs-Vorhersage-Informationen eines von „genommen" und „nicht genommen" darstellen, wobei der Aktualisierungs-Algorithmus so funktioniert, um die Verzweigungs-Vorhersage-Informationen auf „genommen", wenn ein erster Zustand erfüllt ist, und auf „nicht genommen", wenn ein zweiter Zustand erfüllt ist, zu aktualisieren und in anderen Fällen die Verzweigungs-Vorhersage-Informationen unverändert zu belassen, wenn weder der erste Zustand noch der zweite Zustand erfüllt ist, wobei der erste Zustand derjenige ist, dass die Verzweigungs-Historik-Inforrnationen einen Zwischenwert A darstellen, der weder die niedrigste Ebene noch die höchste Ebene ist, sondern näher zu der höchsten Ebene liegt, das Verzweigungsergebnis „genommen" ist und die Verzweigungs-Vorhersage-Informationen „nicht genommen" darstellen, und wobei der zweite Zustand derjenige ist, dass die Verzweigungs-Historik-Informationen einen Zwischenwert B darstellen, der weder die niedrigste Ebene noch die höchste Ebene ist, sondern näher zu der niedrigsten Ebene liegt, das Verzweigungsergebnis „ nicht genommen" ist und die Verzweigungs-Vorhersage-Informationen „genommen" darstellen.
  10. Mittels Computer lesbares Speichermedium nach Anspruch 8, wobei die Verzweigungs-Historik-Informationen eine von mindestens vier Ebenen, umfassend die höchste Ebene und die niedrigste Ebene, darstellen, wobei die Verzweigungs-Vorhersage-Informationen entweder „genommen" oder „nicht genommen" darstellen, wobei der Aktualisierungs-Algorithmus so funktioniert, um Verzweigungs-Vorhersage-Informationen auf „genommen", wenn ein erster Zustand erfüllt ist, und auf „nicht genommen", wenn ein zweiter Zustand erfüllt ist, zu aktualisieren, und in anderen Fällen die Verzweigungs-Vorhersage-Informationen unverändert zu belassen, wenn weder der erste Zustand noch der zweite Zustand erfüllt ist, wobei der erste Zustand derjenige ist, dass die Verzweigungs-Historik-Informationen die höchste Ebene darstellen, das Verzweigungsergebnis „genommen" ist und die Verzweigungs-Vorhersage-Informationen „nicht genommen" darstellen, und der zweite Zustand derjenige ist, dass die Verzweigungs-Historik-Informationen die niedrigste Ebene darstellen, das Verzweigungsergebnis „nicht genommen" ist und die Verzweigungs-Vorhersage-Informationen „genommen" darstellen.
  11. Mittels Computer lesbares Speichermedium nach Anspruch 9 oder 10, wobei die Verzweigungs-Historik-Informationen einen von Ebene 1, Ebene 2, Ebene 3 und Ebene 4 darstellen, wobei die Ebene 1 der höchsten Ebene entspricht und Ebene 4 der niedrigsten Ebene entspricht, und die Codeeinrichtung mit dem geladenen Programm den Computer so anpasst, um den Verzweigungs-Historik-Informations-Aktualisierungsschritt auszuführen, (a) wenn das Verzweigungsergebnis „genommen" darstellt, um die Verzweigungs-Historik-Informationen unverändert beizubehalten, wenn die Verzweigungs-Historik-Informationen die Ebene 1 darstellen, um die Verzweigungs-Historik-Informationen auf die Ebene 1 zu aktualisieren, wenn die Verzweigungs-Historik-Informationen die Ebene 2 darstellen, um die Verzweigungs-Historik-Informationen auf die Ebene 2 zu aktualisieren, wenn die Verzweigungs-Historik-Informationen die Ebene 3 darstellen, und um die Verzweigungs-Historik-Informationen auf die Ebene 3 zu aktualisieren, wenn die Verzweigungs-Historik-Informationen die Ebene 4 darstellen, und (b) wenn das Verzweigungsergebnis „nicht genommen" darstellt, um die Verzweigungs-Historik-Informationen auf die Ebene 2 zu aktualisieren, wenn die Verzweigungs- Historik-Informationen die Ebene 1 darstellen, um die Verzweigungs-Historik-Informationen auf die Ebene 3 zu aktualisieren, wenn die Verzweigungs-Historik-Informationen die Ebene 2 darstellen, um die Verzweigungs-Historik-Informationen auf die Ebene 4 zu aktualisieren, wenn die Verzweigungs-Historik-Informationen die Ebene 3 darstellen, und um die Verzweigungs-Historik-Informationen unverändert zu belassen, wenn die Verzweigungs-Historik-Informationen die Ebene 4 darstellen.
  12. Mittels Computer lesbares Speichermedium nach Anspruch 11, wobei die Codeeinrichtung mit dem geladenen Programm den Computer so anpasst, um den Verzweigungs-Vorhersage-Informations-Aktualisierungsschritt auszuführen, (a) um die Verzweigungs-Vorhersage-Informationen auf „genommen" zu aktualisieren, wenn die Verzweigungs-Historik-Informationen die Ebene 2 darstellen, das Verzweigungsergebnis „genommen" ist und die Verzweigungs-Vorhersage-Informationen „nicht genommen" darstellen, und (b) um die Verzweigungs-Vorhersage-Informationen auf „nicht genommen" zu aktualisieren, wenn die Verzweigungs-Historik-Informationen die Ebene 3 darstellen, das Verzweigungsergebnis „nicht genommen" ist und die Verzweigungs-Vorhersage-Informationen „genommen" darstellen.
DE69736164T 1996-12-09 1997-12-09 Datenverarbeitungsvorrichtung mit Verzweigungsvorhersage Expired - Fee Related DE69736164T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP32845796 1996-12-09
JP32845796 1996-12-09

Publications (2)

Publication Number Publication Date
DE69736164D1 DE69736164D1 (de) 2006-08-03
DE69736164T2 true DE69736164T2 (de) 2006-11-09

Family

ID=18210488

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69736164T Expired - Fee Related DE69736164T2 (de) 1996-12-09 1997-12-09 Datenverarbeitungsvorrichtung mit Verzweigungsvorhersage

Country Status (7)

Country Link
US (1) US5928358A (de)
EP (1) EP0847004B1 (de)
JP (1) JP3760041B2 (de)
KR (1) KR100440805B1 (de)
CN (1) CN1153133C (de)
DE (1) DE69736164T2 (de)
TW (1) TW380238B (de)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6170053B1 (en) * 1996-06-27 2001-01-02 Texas Instruments Incorporated Microprocessor with circuits, systems and methods for responding to branch instructions based on history of prediction accuracy
US6029228A (en) * 1996-12-31 2000-02-22 Texas Instruments Incorporated Data prefetching of a load target buffer for post-branch instructions based on past prediction accuracy's of branch predictions
TW373149B (en) * 1997-07-02 1999-11-01 Matsushita Electric Ind Co Ltd Program control method
US6151672A (en) * 1998-02-23 2000-11-21 Hewlett-Packard Company Methods and apparatus for reducing interference in a branch history table of a microprocessor
US6189091B1 (en) 1998-12-02 2001-02-13 Ip First, L.L.C. Apparatus and method for speculatively updating global history and restoring same on branch misprediction detection
US6341348B1 (en) * 1998-12-03 2002-01-22 Sun Microsystems, Inc. Software branch prediction filtering for a microprocessor
US6499101B1 (en) * 1999-03-18 2002-12-24 I.P. First L.L.C. Static branch prediction mechanism for conditional branch instructions
WO2001016702A1 (en) 1999-09-01 2001-03-08 Intel Corporation Register set used in multithreaded parallel processor architecture
DE19945940C2 (de) * 1999-09-24 2002-01-17 Infineon Technologies Ag Verfahren und Vorrichtung zur Bearbeitung bedingter Sprungbefehle in einem Prozessor mit PIPELINE-Rechnerarchitektur
US6546481B1 (en) 1999-11-05 2003-04-08 Ip - First Llc Split history tables for branch prediction
US7681018B2 (en) 2000-08-31 2010-03-16 Intel Corporation Method and apparatus for providing large register address space while maximizing cycletime performance for a multi-threaded register file set
EP1646941B1 (de) * 2003-07-09 2010-12-15 Nxp B.V. Verfahren und system zur zweigprädiktion
JP4009248B2 (ja) 2003-12-05 2007-11-14 富士通株式会社 分岐予測装置および分岐予測方法
JP4213181B2 (ja) * 2004-04-21 2009-01-21 富士通株式会社 分岐予測装置、その方法、及びプロセサ
US8443171B2 (en) * 2004-07-30 2013-05-14 Hewlett-Packard Development Company, L.P. Run-time updating of prediction hint instructions
US20070186049A1 (en) * 2006-02-03 2007-08-09 International Business Machines Corporation Self prefetching L2 cache mechanism for instruction lines
US8904155B2 (en) * 2006-03-17 2014-12-02 Qualcomm Incorporated Representing loop branches in a branch history register with multiple bits
US7647486B2 (en) 2006-05-02 2010-01-12 Atmel Corporation Method and system having instructions with different execution times in different modes, including a selected execution time different from default execution times in a first mode and a random execution time in a second mode
JP2008165589A (ja) * 2006-12-28 2008-07-17 Fujitsu Ltd 情報処理装置
JP5012084B2 (ja) 2007-02-22 2012-08-29 富士通セミコンダクター株式会社 情報処理装置
KR20120064446A (ko) * 2010-12-09 2012-06-19 삼성전자주식회사 컴퓨팅 시스템 상의 바이트코드의 분기 처리 장치 및 방법
JP5552042B2 (ja) * 2010-12-27 2014-07-16 インターナショナル・ビジネス・マシーンズ・コーポレーション プログラム解析の方法、システムおよびプログラム
US8959320B2 (en) * 2011-12-07 2015-02-17 Apple Inc. Preventing update training of first predictor with mismatching second predictor for branch instructions with alternating pattern hysteresis
CN104156196B (zh) * 2014-06-12 2017-10-27 龚伟峰 重命名预处理方法
US10747539B1 (en) 2016-11-14 2020-08-18 Apple Inc. Scan-on-fill next fetch target prediction

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4435756A (en) * 1981-12-03 1984-03-06 Burroughs Corporation Branch predicting computer
JPS6375934A (ja) * 1986-09-19 1988-04-06 Nec Corp 情報処理装置
JPH0650465B2 (ja) * 1989-10-16 1994-06-29 株式会社東芝 分岐制御回路
US5564118A (en) * 1992-11-12 1996-10-08 Digital Equipment Corporation Past-history filtered branch prediction
JP3599409B2 (ja) * 1994-06-14 2004-12-08 株式会社ルネサステクノロジ 分岐予測装置
US5864697A (en) * 1996-06-28 1999-01-26 Texas Instruments Incorporated Microprocessor using combined actual and speculative branch history prediction
US5822575A (en) * 1996-09-12 1998-10-13 Advanced Micro Devices, Inc. Branch prediction storage for storing branch prediction information such that a corresponding tag may be routed with the branch instruction
US5817699A (en) * 1997-05-30 1998-10-06 Flores; John A. Process for the preparation of ketamine ointment

Also Published As

Publication number Publication date
US5928358A (en) 1999-07-27
TW380238B (en) 2000-01-21
JP3760041B2 (ja) 2006-03-29
EP0847004A1 (de) 1998-06-10
KR19980063936A (ko) 1998-10-07
JPH10228377A (ja) 1998-08-25
KR100440805B1 (ko) 2004-09-18
CN1153133C (zh) 2004-06-09
CN1186981A (zh) 1998-07-08
DE69736164D1 (de) 2006-08-03
EP0847004B1 (de) 2006-06-21

Similar Documents

Publication Publication Date Title
DE69736164T2 (de) Datenverarbeitungsvorrichtung mit Verzweigungsvorhersage
DE10084556B4 (de) Optimierte Ausführung von statisch sehr wahrscheinlich vorhergesagten Verzweigungsbefehlen
DE69132675T2 (de) Parallelfliessband-Befehlsverarbeitungssystem für sehr lange Befehlswörter
DE69725278T2 (de) Programmierbares system und verfahren zum vorhersagen von verzweigungen für computersysteme
DE69031991T2 (de) Verfahren und Gerät zur Beschleunigung von Verzweigungsbefehlen
DE102004013676B4 (de) Schaltung in einem Prozessor zur Steuerung einer iterativen Ausführung einer Gruppe von Programmanweisungen
DE19527031C2 (de) Verzweigungsprozessor für ein Datenverarbeitungssystem und Verfahren zum Betreiben eines Datenverarbeitungssystems
DE69534113T2 (de) Kompression der Befehlswörter eines Rechners
DE4222776C2 (de) Parallelverarbeitungseinheit und Verfahren zum Ausführen von Befehlen
DE69929936T2 (de) Verfahren und Vorrichtung zum Abrufen von nicht-angrenzenden Befehlen in einem Datenverarbeitungssystem
DE68928812T2 (de) Vorrichtung zur Auflösung von einer variablen Anzahl von möglichen Speicherzugriffskonflikten in einem Pipeline-Rechnersystem und Verfahren dazu
DE69322683T2 (de) Verfahren und Vorrichtung zur Durchführung eines pseudo-LRU Cachespeicherersetzungsschemas mit einer Verriegelungsfunktion
DE69620807T2 (de) Datenverarbeitungsvorrichtung zum Vorziehen einer Datenstruktur aus dem Hauptspeicher oder seinem Cachespeicher
DE69719239T2 (de) Hardware-Anordnung zur optimierten Vorausholung von Befehlen und Daten
DE69523690T2 (de) Mikroprozessor mit Registerspeicher
DE69622219T2 (de) Optimierungsgerät zum Entfernen von Gefahren durch Arrangierung der Befehlsreihenfolge
DE69131472T2 (de) Verfahren zum Vorsehen eines synchronisierten Datencachespeicherbetriebs für Prozessoren in einer parallelen Verarbeitungsanordnung und parallele Verarbeitungsanordnung zur Durchführung des Verfahrens
DE68925397T2 (de) Pipelineprozessor
DE19855806A1 (de) Vorrichtung und Verfahren zum Durchführen von Unterprogrammaufruf- und Rücksprungoperationen
DE2630323A1 (de) Datenspeichereinrichtung
DE19945992A1 (de) Dynamisch optimierender Objektcode-Übersetzer zur Architekturemulation und dynamisches optimierendes Objektcode-Übersetzungsverfahren
DE69130757T2 (de) Ausführungsvorrichtung für bedingte Verzweigungsbefehle
DE3752280T2 (de) Mustergenerator
DE3855524T2 (de) Arithmetik-Parallelverarbeitungseinheit und zugehöriger Kompilator
DE69233282T2 (de) Datenverarbeitungsvorrichtung

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: PANASONIC CORP., KADOMA, OSAKA, JP

8339 Ceased/non-payment of the annual fee