Hardware Reference
In-Depth Information
und leitet die Ausgabe in eine Datei um, die man dann mit Standard Unix-
Hilfsprogrammen wie grep auswerten kann.
Beim Metasimulator fur MMIX gibt es die folgenden Parameter zu konfigurie-
ren:
peekahead : Dieser Parameter gibt an, wie viele Befehle im Fetch Buffer
gleichzeitig untersucht werden konnen, um Sprungbefehle zu entdecken
und Sprungziele vorherzusagen.
branchpredictbits : Entspricht der Anzahl n von Bits des Pradiktors.
branchaddressbits :Anzahl a von Bits fur die Speicherung der Adresse
der Verzweigungsbefehle (die Adresse wird modulo a gespeichert).
branchhistorybits :Anzahl b der Historybits, die berucksichtigt werden
(Teil der Adresse, unter welcher jeder Pradiktor gespeichert wird).
branchdualbits :Diese c Bits werden verwendet, um die Befehlsadres-
se mit der Historie Exklusiv-Oder zu verknupfen, um den Pradiktor zu
finden. Davon verspricht man sich eine bessere Entkopplung von Mehr-
deutigkeiten der Befehlsadressen.
Details uber die Sprungvorhersage gibt der Simulator aus, wenn im Verbose-
Level das Bit 7 gesetzt ist (z.B. v80 ). Vor jedem Verzweigungsbefehl wird die
Pradiktion fur diesen Befehl ausgegeben: Fur welche Adresse und wie sich der
Pradiktor verandern wurde, sollte sich die Pradiktion als zutreffend erweisen.
Ob die dynamische Pradiktion mit der statischen Vohersage ubereinstimmt,
wird angegeben durch OK (fur Agreement) bzw. NG (fur Opposition). Trifft
diedynamischePradiktion nicht zu, so erfolgt eine weitere Ausgabe nach der
Verzweigung, die Auskunft uber den aktualisierten Wert des Pradiktors gibt.
Beispiel:
predicting 100 OK; bp[3]=1
mispredicted 100; bp[3]=-1
Dies bedeutet, dass fur den Verzweigungsbefehl an Adresse 100 zunachst
Ubereinstimmung mit der statischen Pradiktion vorausgesagt wird. Diese
Vorhersage stellt sich als falsch heraus. Der Wert des Pradiktors wird schließ-
lich zu -1 statt zu 1 gesetzt.
Die Prozessorhersteller geben Details ihrer Algorithmen zur Sprungvorhersa-
ge nur sehr sparsam an die Offentlichkeit. Folgendes ist jedoch bekannt:
AMD Athlon 64/Opteron: Global History Buffer mit 2 Bit Pradiktoren (satu-
rierende Zwei-Komplement-Zahler), die mit vier Bits der Befehlsadresse und
acht Bits der globalen Branch History indiziert werden. Der Zugriff erfolgt
gleichzeitig mit dem auf den L1-Instruktionscache.
Search WWH ::




Custom Search