Information Technology Reference
In-Depth Information
Bild 3.43 angedeutet, allein die Startadresse einer Basisblockfolge verwendet, kön-
nen sich unterschiedliche Basisblockfolgen, mit jeweils denselben Startadressen,
gegenseitig verdrängen (z.B. A-B-C und A-B-D). Im Idealfall sollte jedoch die
jeweils relevanteste Basisblockfolge gespeichert werden. Dies ist erreichbar, indem
eine neu hinzukommende Basisblockfolge, zu deren Startadresse bereits eine Ein-
trag existiert, zunächst in einem Ringpuffer zwischengespeichert und ausschließlich
bei mehrfacher Ausführung in den Trace-Cache übertragen wird.
A
B
A
:
bcc
4 Befehle
(a
1
- a
4
)
C
A
B
C
b
B
:
bcc
10 Befehle
(b
1
- b
10
)
A
B
c
1
-c
2
c
3
-c
5
A
b
1
-b
9
C
:
bcc
5 Befehle
(c
1
- c
5
)
b
10
C
A
a
1
B
C
a
2
-a
4
c
1
-c
3
B
c
4
-c
5
A
B
b
1
-b
7
C
A
b
8
-b
10
C
A
a
c
Bild 3.44.
Speicherplatzbedarf in einem Trace-Cache bei Verarbeitung einer Schleife.
a
Angenom-
mene Struktur der Schleife.
b
Ungepackte Speicherung von Basisblöcken.
c
Gepackte Speicherung
von Basisblöcken
Als Alternative zu diesem Verfahren lässt sich die Häufigkeit, mit der eine Basis-
blockfolge bearbeitet wird, auch aus der Zuverlässigkeit ableiten, mit der die enthal-
tenen Sprungbefehle vorhergesagt wurden. Hierbei wird zu jedem Eintrag im Trace-
Cache ein Zuverlässigkeitswert gespeichert (erzeugt z.B. durch eine entsprechend
der Reihenfolge gewichteten Addition der in Zahlen abgebildeten Vorhersagezu-
stände aller Sprungbefehle), der mit dem gleicherweise erzeugten Zuverlässigkeits-
wert der aktuell generierten Basisblockfolge verglichen wird. Eine Ersetzung findet
statt, wenn der gespeicherte Zuverlässigkeitswert kleiner als der berechnete ist.
Natürlich lassen sich unterschiedliche Basisblockfolgen, die alle dieselbe Startad-
resse besitzen, auch parallel in unterschiedlichen Einträgen des Trace-Caches spei-
chern. Hierzu muss beim Tag-Vergleich nur das Ergebnis der Mehrfach-Sprungvor-
hersage einbezogen werden. Wegen der hohen zu erwartenden Redundanz wird
diese Möglichkeit meist jedoch nicht in Betracht gezogen.
Vorübersetzung von Basisblockfolgen
Von den zuvor beschriebenen Aktionen „Befehle aus dem Trace-Cache lesen“ und
„neuen Eintrag in den Trace-Cache schreiben“ sind nur die Lesezugriffe für die
Geschwindigkeit, mit der ein Prozessor arbeitet, von Bedeutung, da sie deutlich häu-
figer als Schreibzugriffe auftreten (der relevante Pfad ist in Bild 3.43 als stark aus-
gezeichnete Linie dargestellt). Es ist daher tolerierbar, wenn die Erzeugung eines
Search WWH ::
Custom Search