Information Technology Reference
In-Depth Information
Wie dies mit Hilfe einer Einheit zur Vorhersage mehrerer Sprungziele erreicht wer-
den kann, veranschaulicht Bild 3.42b. Angenommen ein superskalarer Prozessor
soll die in Bild 3.42a grau unterlegte Basisblockfolge parallel ausführen, dann ist
mit Hilfe der bekannten Startadresse A durch eine Mehrfach-Sprungvorhersage
sowie - Sprungzielvorhersage zunächst auf die Basisblöcke B, C und X zu schließen.
Die Adresse X wird im Folgetakt benötigt, um auf die nächste auszuführende Basis-
blockfolge zuzugreifen (markiert mit a). Die restlichen drei Adressen A, B und C
sind für den parallelen Zugriff auf den Multiport-Befehlscache erforderlich (b). Aus
den auf diese Weise ermittelten Zeilen (c) werden schließlich die auszuführenden
Basisblöcke extrahiert (d) und eine Befehlsfolge generiert, die zur Verarbeitung an
den hier nicht dargestellten Decoder des Prozessors weitergereicht wird.
Adresse
t-n-n
A
:
bcc
Mehrfach-
Sprungzielcache
Mehrfach-
Sprungvorhersage
X
t
n
B
E
:
bcc
n
:
bcc
a
b
Multiport-
Befehlscache
Adr.
Daten
t
B
￿￿￿￿
A
D
C
￿￿￿￿￿￿￿￿
￿￿￿￿￿￿￿￿
:
bcc
:
bcc
c
C
t
n
￿￿￿￿￿￿￿￿
￿￿￿￿
X
d
a
b
￿￿￿￿￿￿￿
￿￿￿￿￿￿￿
￿￿￿￿￿
￿￿￿￿￿
Bild 3.42. Einheit für den parallelen Zugriff auf mehrere Basisblöcke. a Ausschnitt aus dem zu ver-
arbeitenden Kontrollfluss. b Blockstruktur der Einheit
Das im Bild dargestellte Verfahren hat einige signifikante Nachteile: Ein Befehlsca-
che mit drei unabhängigen Leseports belegt nach [174] etwa die neunfache Chipflä-
che wie einer mit nur einem Leseport und wird Zugriffe i.Allg. auch langsamer ver-
arbeiten. Der kritische Pfad der dargestellten Struktur enthält neben dem Befehlsca-
che noch den Mehrfach-Sprungzielcache und zahlreiche Multiplexer sowie Shift-
Netze (für Extraktion und Zusammenführung der gelesenen Basisblöcke) und dürfte
somit ein Hauptkandidat für den kritischen Pfad des gesamten Prozessors sein. Zwar
ist eine Realisierung in Fließbandtechnik möglich, jedoch nicht wünschenswert, da
sich dadurch die Latenzzeit beim Wiederaufsetzen der Befehlsverarbeitung, z.B.
nach einem Kontrollflusskonflikt, verlängert. Die genannten Nachteile lassen sich
jedoch vermeiden, wenn logisch aufeinander folgende Basisblöcke auch physika-
lisch aufeinander folgend speicherbar wären. Genau diese Idee liegt dem Konzept
des sog. Trace-Caches zugrunde, dessen Funktionsweise im Folgenden anhand der
Struktur in Bild 3.43 getrennt für Lese- und Schreibzugriffe beschrieben wird.
Lesezugriff auf einen Trace-Cache
Die Verarbeitung einer Basisblockfolge (entsprechend Bild 3.42a) beginnt mit dem
Anlegen der Startadresse des ersten zu lesenden Basisblocks A an den Trace-Cache.
Search WWH ::




Custom Search