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