Hardware Reference
In-Depth Information
Prädiktorentabellen
A=11111
A=10111
Globale
Historie der
Sprungbefehle:
A=10111
A=10111
A=10111
A=10110
0000 -1
0001 0
0010 1
0011 -1
0100 0
0101 1
0110 0
0111 -1
1000 -1
1001 -2
1010 0
1011 0
1100 1
1101 -2
1110 1
1111 0
T
T
N
N
T
T
N
N
T
T
N
N
entspricht
1001
Vorhersage für diesen Sprung
auf Basis der Historie 1001
entspricht
0011
Vorhersage für diesen Sprung
auf Basis der Historie 0011
Abbildung 6.5. Sprungvorhersage unter Einbeziehung der globalen Historie mit a = 5 und
b = 4. Die Historie ist links von oben nach unten dargestellt. Der jeweilige Inhalt des
Schieberegisters zur Aufzeichnung der Historie ist schraert dargestellt. Fur jede mogliche
Programmadresse enthalt jede Tabelle den Zusammenhang Historie/Pradiktor
des Schieberegisters adressiert und ausgelesen. Insgesamt sind 2 a ·
( b +2 b · n )
Bits zur Speicherung der Tabellen fur die Sprungvorhersage erforderlich.
Wird andererseits die Historie global betrachtet, so gibt es lediglich ein Schie-
beregister der Lange b . Mit diesem wird der zur Adresse des Sprungbefehls
gehorende n -Bit-Pradiktor ausgelesen. Hier sind damit nur b +2 a + b · n Bits
zur Speicherung der Tabellen fur die Sprungvorhersage erforderlich.
Diese Situation ist in Abbildung 6.5 veranschaulicht. Dort ist ein Schiebere-
gister der Lange b = 4 verwendet und es werden a = 5 Adressbits betrachtet.
Zu jedem moglichen Inhalt des Schieberegisters und fur jede mogliche 5-Bit-
Adresse gibt es einen Zwei-Bit-Pradiktor.
Das Au nden eines Pradiktors kann dabei im Gegensatz zu oben in einem
Schritt erfolgen, wenn die Pradiktorentabelle mit a + b Bits adressiert wird,
also die Bits der Befehlsadresse und der Historie zusammen auffuhrt.
Wir wollen den Ablauf des Verfahrens mit dem Programm simple.mms ver-
deutlichen, fur das Sprungmuster TTNNTTNN, vier-Bit-Historie und zwei-
Bit-Pradiktoren. Die Situation ist also wie in Abbildung 6.5, wir mussen aber
 
Search WWH ::




Custom Search