Information Technology Reference
In-Depth Information
gen im Befehlspuffer verweilen und sich daher mit jedem Takt, ähnlich wie zu Bild
3.50b beschrieben, auch starten lassen (in Bild 3.51 mit c markiert).
Da der Füllstand des Befehlspuffers rasch mit der Anzahl der Befehle zunimmt, die
gleichzeitig zu einer einzelnen Befehlsfolge aus dem Befehlsspeicher bzw. -Cache
gelesen werden, ist als Nachteil jedoch in Kauf zu nehmen, dass der Befehlspuffer,
bei bestehenden Abhängigkeiten zu Befehlen mit langen Latenzzeiten, innerhalb
kürzester Zeit blockiert. Es ist daher günstiger, pro Takt mehrere Befehlsfolgen zu
adressieren. Allerdings ist dies auch aufwendiger, da der Befehlscache hierbei mit
einer entsprechend großen Anzahl an Leseports ausgestattet sein muss. Dies lässt
sich z.B. durch eine Organisation in Bänken realisieren, auf die verschränkt zuge-
griffen wird (ähnlich wie in Abschnitt 3.1.3 beschrieben).
Wie viele Befehle zu jeder parallel adressierten Befehlsfolge gelesen werden, ist
implementierungsabhängig. Im einfachsten Fall wird eine konstante Befehlsanzahl
adressiert. Mit langen Latenzzeiten und untereinander existierenden Abhängigkeiten
besteht jedoch die Gefahr, dass einige Befehle, ähnlich wie oben beschrieben, sehr
lange im Befehlspuffer verweilen und ihn ggf. blockieren. Günstiger ist es daher,
eine Befehlsfolge jeweils nur bis zum nächsten Befehl, der eine lange Latenzzeit
erwarten lässt, zu laden.
Wie dabei verfahren wird, ist in Bild 3.52 angedeutet. Es sei angenommen, dass pro
Takt zweimal acht Befehle aus dem Befehlscache gelesen und acht Befehle in den
Befehlspuffer geschrieben werden können. Nach dem Lesen der beiden Befehlsfol-
gen A und B wird A zunächst nach dem ersten Befehl durchsucht, der eine lange
Latenzzeit vermuten lässt. Dies ist im Bild der schraffierte Befehl A 5 . Anschließend
werden A 1 bis A 5 in den Befehlspuffer übertragen. Da insgesamt acht Befehle zu
lesen sind, entnimmt man die noch fehlenden drei Befehl aus der Befehlsfolge B.
Dabei wird ignoriert, dass B 2 ebenfalls eine lange Latenzzeit aufweist. Es muss also
in Kauf genommen werden, dass B 3 , falls es abhängig von B 2 ist, einen Eintrag des
Befehlspuffers blockiert.
Befehlsfolge A
A 1
Befehlsfolge B
A 2
A 3
A 4
A 5
A 6
A 7
A 8
B 1
B 2
B 3
B 4
B 5
B 6
B 7
B 8
A 1
A 2
A 3
A 4
A 5
B 1
B 2
B 3
Bild 3.52. Paralleler Zugriff auf zwei Befehlsfolgen A und B, wobei A bis zum ersten Befehl gele-
sen wird, der eine lange Latenzzeit erwarten lässt (schraffiert) und die restlichen Befehle der
Befehlsfolge B entnommen werden
Falls wie im Strukturbild 3.51 die Anzahl der verarbeitbaren Befehlsfolgen größer
ist als die Anzahl der Zugriffe, die auf dem Befehlsspeicher bzw. -cache ausführbar
sind, muss mit jedem Takt entschieden werden, auf welche der zur Auswahl stehen-
den Befehlsfolgen zuzugreifen ist. In [190] sind hierzu vier unterschiedliche Heuris-
tiken beschrieben worden:
Bei dem als BRCOUNT bezeichneten Verfahren wird zu jeder Befehlsfolge die
Anzahl der ungelösten, in Bearbeitung befindlichen Sprünge gezählt und auf die
Search WWH ::




Custom Search