Information Technology Reference
In-Depth Information
Startadressen ermitteln, indem der in Bild 2.45b dargestellte Mehrfach-Sprungziel-
cache mit der Adresse A 0 angesprochen wird. Der auf diese Weise ermittelte Eintrag
enthält die Startadressen aller Basisblöcke , die durch zwei aufeinander folgende
Sprungbefehle erreichbar sind und die wenigstens einmal ausgeführt wurden. Über
zwei nachgeschaltete Multiplexer werden schließlich zwei der sechs gespeicherten
Startadressen ausgewählt, und zwar abhängig von der zuvor durchgeführten Mehr-
fach-Sprungvorhersage.
Befehlsadresse
A 0
:
bcc
A 0
Mehrfach-Sprungzielcache
t
:
bcc
n
n
Adresse
Sprungziele
A t
A n
:
bcc
A t
--A tt
A tn
A nt
A nn
A 0
Ö
Ö
Ö
Ö
Ö
t
A tt
A tn
:
bcc
:
bcc
c
t
n
A 0
Ö
a
A t
A tn Ö
b
a
b
Bild 2.45. Wirkungsweise und Struktur eines Mehrfach-Sprungzielcaches. Die Adressen der in
Teilbild a hervorgehoben dargestellten Basisblöcke werden durch den Zugriff auf den grau unter-
legten Eintrag des Mehrfach-Sprungzielcaches in Teilbild b ermittelt
Neben der als Vorgabe verwendeten Startadresse A 0 lassen sich auf diese Weise die
Adressen A t und A tn ermitteln. Sie werden verwendet, um zeitgleich die auszufüh-
renden Basisblöcke aus dem Befehlscache zu lesen. Bei einer Organisation des
Befehlscaches in Zeilen fester Breite ist es i.Allg. nicht erforderlich, die Anzahl der
jeweils zu lesenden Befehle zu kennen. Vielmehr werden die einzelnen Cache-Zei-
len jeweils nach den abschließenden Sprungbefehlen durchsucht, die überzähligen
Befehle verworfen, die extrahierten Basisblöcke zu der zu verarbeitenden Basis-
blockfolge (dem sog. Hot Trace ) zusammengesetzt und diese zur Verarbeitung in
das Fließband des Prozessors weitergereicht.
Falls beim Zugriff auf den Mehrfach-Sprungzielcache eine Zieladresse nicht defi-
niert sein sollte, wird man normalerweise alle untergeordneten Basisblockadressen
verwerfen und auf den Befehlscache sequentiell zugreifen. Werden z.B. in Bild
2.45b die Sprungbefehle beide als nichtverzweigend vorhergesagt, ist wegen des
leeren, mit c markierten Eintrags A n auch A nn zu verwerfen und statt dessen nur mit
A 0 auf eine, zwei oder drei aufeinander folgende Zeilen des Befehlscaches zuzugrei-
fen. Insbesondere wird dabei auch die Startadresse A nn ermittelt und für die nächste
Sprungzielvorhersage in den Mehrfach-Sprungzielcache eingetragen.
1. Der Begriff des Basisblocks stammt aus dem Übersetzerbau und bezeichnet eine statische
Befehlsfolge mit einer Startadresse und einem abschließenden Sprungbefehl bzw. Übergang zu
einem anderen Basisblock [8]. Im vorliegenden Fall sind Basisblöcke hingegen dynamisch
definiert. Da es nicht möglich ist, Einsprungmarken zur Laufzeit zu identifizieren, besteht ein
solcher „dynamischer“ Basisblock möglicherweise aus mehreren „statischen“ Basisblöcken.
Search WWH ::




Custom Search