Ub4-Sprungvorhersage

  • Füllung der Pipeline sicherstellen
  • Sprung hat zwei mögliche Ausgänge
    • Taken (T)
    • Not Taken (NT)
  • Sprungvorhersage:
    • Vorhersage des Ausgangs
    • Laden der Befehle vom vorhergesagten Ziel

Warum ist die Sprungvorhersage bei der Pipeline-Ausführung wichtig?

Die Sprungvorhersage verhindert das Leerlaufen der Pipeline bei Kontrollflussbefehlen.

Statische Sprungvorhersage

  • Richtung der Vorhersage für Befehl immer gleich (“statisch”)
    • Always Taken, or
    • Always Not Taken
  • Statische Technik: Prädikation
    • Verwenden von Prädikaten

    • Compiler-gestützt

    • Sprungbefehle werden vermieden, stattdessen spekulative Ausführung der mit Prädikat versehenen Befehle und Gültigmachen bei Evaluation des Prädikatregisters zu Wahr

    • Benötigte Hardware: Spekulative Ausführung, Prädikatregister

Dynamische Sprungvorhersage

  • Vorhersage auf Grund von bisherigem Programmablauf

  • Sprungbefehle werden ausgeführt

  • Nächsten Befehle werden entsprechend der Vorhersage über den Sprungausgang spekulativ geladen und ausgeführt

  • Benötigte Hardware: Sprungzieltabelle, Prädiktor(en)

One-Bit Predictor
One-Bit Predictor
Two-Bit Predictor
Two-Bit Predictor
Sättigungszähler (Saturation scheme)
Sättigungszähler (Saturation schem…
  • ST: Strongly Taken (11)
  • WT: Weakly Taken (10)
  • WNT: Weakly Not Taken (01)
  • SNT: Strongly Not Taken (00)
ST: Strongly Taken (11)…
ST
ST
WT
WT
SNT
SNT
WNT
WNT
T
T
T
T
T
T
T
T
NT
NT
NT
NT
NT
NT
NT
NT
T
T
NT
NT
  • T: Taken (1)
  • NT: Not Taken (0)
T: Taken (1)…
NT
NT
T
T
T
T
NT
NT
Hysteresemethode (Hysteresis scheme)
Hysteresemethode (Hysteresis scheme)
ST
ST
WT
WT
SNT
SNT
WNT
WNT
T
T
T
T
T
T
NT
NT
NT
NT
NT
NT
T
T
NT
NT
(m, n)-Korrelationsprädikator
(m, n)-Korrelationsprädikator
  • Sprungverlaufsregister (Branch History Register, BHR)
    • Speicherung der letzten m Sprünge
  • Sprungsverlaufstabelle (Pattern History Table, PHT)
    • Jeder Eintrag ist ein n-Bit Prädikator
    • Insgesamt Einträge
Sprungverlaufsregister (Branch History Register, BHR)…
ST
ST
WT
WT
SNT
SNT
WNT
WNT
T
T
T
T
T
T
T
T
NT
NT
NT
NT
NT
NT
NT
NT
ST
ST
WT
WT
SNT
SNT
WNT
WNT
T
T
T
T
T
T
T
T
NT
NT
NT
NT
NT
NT
NT
NT
1
1
Bsp: (1, 2)-Korrelationsprädikator
Bsp: (1, 2)-Korrelationsprädikator
NT
NT
BHR
Speicherung der letzten 1 Sprünge
BHR…
Vorhersage (Prediction)
Vorhersage (Pr…
0
0
Jede Eintrag ist ein 2-Bit Prädikator
Jede Eintrag ist ein 2-Bit Prädikator
PHT
PHT
Insgesamt Einträge
Insgesamt 2^{\color{blue}…
(SNT, WT)
(SNT, WT)
Tatsächliche Richtung:
Tatsächliche Richtung:
ST
ST
WT
WT
SNT
SNT
WNT
WNT
T
T
T
T
T
T
T
T
NT
NT
NT
NT
NT
NT
NT
NT
ST
ST
WT
WT
SNT
SNT
WNT
WNT
T
T
T
T
T
T
T
T
NT
NT
NT
NT
NT
NT
NT
NT
1
1
T
T
BHR
BHR
Vorhersage (Prediction)
Vorhersage (Pr…
0
0
PHT
PHT
(WNT, WT)
(WNT, WT)
1
1
0
0
T
T
Selektor für Prädikator
  • 0: verwende den 1. Prädikator
  • 1: verwende den 2. Prädikator
Selektor für Prädikator…
Viewer does not support full SVG 1.1

Previous
Next