-
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.