Information Technology Reference
In-Depth Information
Befindet sich ein passender Eintrag darin (in Bild 3.43 mit a markiert), wird dieser
ausgelesen und einer Selektionslogik zugeführt. Parallel dazu bestimmt eine Einheit
zur Mehrfach-Sprungvorhersage, wie sich die am Ende der gelesenen Basisblöcke
codierten Sprungbefehle jeweils verhalten. Durch Vergleich des Vorhersageergeb-
nisses (hier sei t-t-n angenommen) mit der der gelesenen Basisblockfolge zuzuord-
nenden Sprungfolge (t-n) wird entschieden, welche der Basisblöcke durch die
Selektionslogik zur Ausführung weitergereicht werden sollen (b und c).
Adresse
Trace-Cache
Befehlscache
Adr.
Daten
Folgeadr .
Pfad
Adr.
Daten
Mehrfach-
Sprung-
vorhersage
Fill-Unit
￿￿￿￿￿
￿￿￿￿￿
A
￿￿￿￿￿￿￿￿￿￿￿￿
￿￿￿￿￿￿￿
￿￿￿￿￿￿￿￿
￿￿￿￿￿￿￿￿
￿￿￿￿￿
￿￿￿￿￿
g
a
t-n
t-t-n
Logic
b
f
AB
C
D
c
Selection
Predecode
e
h
d
A-B
C
￿￿￿￿￿￿￿￿￿￿￿￿￿￿
Befehle
Sprungentscheidungen
Bild 3.43. Struktur einer Einheit zum Laden von Befehlen aus einem Trace-Cache
Wie dabei mit den überzähligen Basisblöcken verfahren wird, ist implementierungs-
abhängig. Entweder werden sie verworfen (c), was den Vorteil hat, dass die nicht
benötigten Ressourcen anderen Befehlen zur Verfügung stehen, oder sie werden
gekennzeichnet zur Ausführung weitergereicht. Die Kennzeichnung beim inaktiven
Starten von Befehlen (inactive issue) ist hierbei erforderlich, um mit dem nächsten
Takt parallel auch die Befehle des zweiten, wahrscheinlicheren Pfads vorrangig aus-
führen zu können [48]. So ist es möglich, dass sich bei der hier angenommenen
Basisblockfolge A-B-D gleichzeitig Befehle des gespeicherten Basisblocks C und
des vorhergesagten Basisblocks D in Bearbeitung befinden.
Um zu bestimmen, mit welcher Adresse der nächste Zugriff durchzuführen ist, müs-
sen zu den Nutzdaten noch die Folgeadressen aller aus der jeweiligen Basisblock-
folge herausführenden Pfade gespeichert werden. Für drei Basisblöcke sind insge-
samt vier Adressen erforderlich, je eine für die innerhalb der Basisblockfolge auftre-
tenden Sprungbefehle und zwei für den am Ende des letzten Basisblocks C codier-
ten Sprungbefehl (von denen eine der unmittelbar auf den bedingten Sprungbefehl
folgenden Adresse entspricht). Die Auswahl der zu verwendenden Adresse
geschieht ähnlich wie die Selektion der auszuführenden Basisblöcke, nämlich basie-
rend auf einem Vergleich der gespeicherten und der prognostizierten Sprungfolge.
So wird in Bild 3.43 z.B. vorhergesagt, dass von der gespeicherten Basisblockfolge
A-B-C voraussichtlich nur A und B ausgeführt werden und daher die zu B gespei-
Search WWH ::




Custom Search