Information Technology Reference
In-Depth Information
Befehlsfolge mit der geringsten dabei ermittelten Anzahl zugegriffen. Das Ver-
fahren reduziert die Wahrscheinlichkeit dafür, wegen eines falsch vorhergesagten
Sprungs zahlreiche spekulativ ausgeführte Befehle verwerfen zu müssen.
• Beim zweiten Verfahren, dem sog. MISSCOUNT wird als nächstes jeweils die
Befehlsfolge mit der geringsten Anzahl an Fehlzugriffen auf den Cache (cache
miss) adressiert. Da solche Fehlzugriffe sehr lange Latenzzeiten zur Folge haben,
lässt sich auf diese Weise vermeiden, dass abhängige Befehle in den Befehlspuf-
fer geladen werden, die nicht verarbeitbar wären.
• Eine ähnliche Motivation liegt dem als IQPOSN bezeichneten Verfahren
zugrunde, bei dem jeweils die Befehlsfolge mit einer geringen Priorität bearbei-
tet wird, zu der der älteste im Befehlspuffer stehende Befehl gehört. Verweilt ein
Befehl nämlich sehr lange im Befehlspuffer, weist ein vorangehender in Bearbei-
tung befindlicher Befehl vermutlich eine lange Latenzzeit auf. Somit ist das
Laden weiterer Befehle nicht sinnvoll, da diese mit hoher Wahrscheinlichkeit
ebenfalls warten müssten und den Befehlspuffer blockieren könnten.
• IQPOSN ist deutlich besser als BRCOUNT oder MISSCOUNT, jedoch gering-
fügig schlechter als das sog. ICOUNT-Verfahren , bei dem jeweils auf die
Befehlsfolge zugegriffen wird, zu der sich die geringste Anzahl an Befehlen im
Befehlspuffer befindet [180, 38]. Das Verfahren bewirkt eine ausbalancierte Nut-
zung des Befehlspuffers, d.h., es wird zu allen bearbeiteten Befehlsfolgen im
zeitlichen Mittel dieselbe Anzahl an Befehlen gehalten. Bei einer Blockade einer
Befehlsfolge führt dies somit nicht zur Blockade des gesamten Befehlspuffers,
sondern nur zu der desjenigen Teils, der dieser Befehlsfolge zuzuordnen ist.
In derselben Weise, wie sich die Leistungsfähigkeit eines Prozessors durch die Stra-
tegie zum Füllen des Befehlspuffers beeinflussen lässt, ist sie durch die Strategie
beeinflussbar, mit der dieser geleert wird. Bei Ausführung mehrerer Befehlsfolgen
steigt nämlich die Wahrscheinlichkeit dafür, dass die Anzahl der auf Ausführung
wartenden Befehle im Befehlspuffer größer ist als die Anzahl der tatsächlich startba-
ren Befehle (wegen der in Hardware bestehenden Beschränkungen). Einige Strate-
gien zur Befehlsauswahl werden ebenfalls in [190] beschrieben:
Bei dem als OLDES_FIRST bezeichneten Verfahren wird jeweils der Befehl als
nächster begonnen, der die längste Zeit auf seine Ausführung wartet.
• Beim sog. BRANCH_FIRST werden Sprungbefehle bevorzugt behandelt, um
die Anzahl der spekulativ in Ausführung befindlichen Befehle so zu vermindern.
• Beim SPEC_LAST bzw. OPT_LAST werden spekulativ ausführbare Befehle
solange wie möglich verzögert, um die Ergebnisse bei einer Fehlspekulation
nicht verwerfen zu müssen.
Keines dieser Verfahren besitzt signifikante Vorteile gegenüber den anderen, wes-
halb i.Allg. das einfache OLDEST_FIRST bevorzugt zur Anwendung kommt.
Das simultane Multithreading ist im Xeon sowie einigen anderen zum Pentium 4
kompatiblen Prozessoren von Intel unter dem Namen Hyperthreading realisiert,
wobei sich jeweils zwei Befehlsfolgen parallel verarbeiten lassen (je eine durch
Search WWH ::




Custom Search