Hardware Reference
In-Depth Information
Fur Sprungbefehle werden oft eigene Einheiten gebaut. Hier sind Bedin-
gungen auszuwerten und arithmetische Operationen mit dem Befehlszahler
auszufuhren.
In superskalaren Prozessoren werden fur Speicherzugriffe stets eigene Ein-
heiten vorgesehen. Teilweise wird getrennt fur lesenden und schreibenden
Speicherzugriff oder sogar nach ganzzahligen und Gleitkommawerten dif-
ferenziert.
Auch fur Gleitkommabefehle werden in der Regel spezielle Einheiten vor-
gesehen. Hier findet gelegentlich sogar eine weitere Spezialisierung statt,
etwa die Realisierung bestimmter Einheiten nur fur Quadratwurzelberech-
nung.
Weitere Einheiten finden sich oft fur Spezialbefehle, etwa die Vektorbe-
fehle (siehe Abschnitt 1.3.7).
Tabelle 5.1 gibt eine Ubersicht uber die Ausfuhrungseinheiten einiger Bei-
spielprozessoren.
Beim Pipeline-Simulator konnen Ausfuhrungseinheiten spezifiziert werden,
die beliebige Befehle zusammenfassen. In der Konfigurationsdatei wird jede
Einheit durch das Schlusselwort unit eingeleitet, gefolgt von einem Namen
fur die Einheit und einer exakt 64-stelligen Hexadezimalzahl. Diese Zahl be-
steht aus 256 Bits, von denen jedes einem der MMIX -Opcodes zugeordnet ist.
Ob ein Bit null oder eins ist, entscheidet daruber, ob der entsprechende Be-
fehl auf dieser Einheit ausgefuhrt werden kann oder nicht. Das erste Bit steht
fur den Befehl TRIP und das letzte fur TRAP . Zur Zuordnung muss man eine
Tabelle mit allen MMIX -Opcodes konsultieren, z.B. in [1].
Beispielsweise werden eine Einheit fur ganzzahlige Befehle ohne Sprungbe-
fehle (IU) und eine nur fur die Sprungbefehle (BU) wie folgt beschrieben:
unit IU 000000ffffffffff00000000000000000000000000000000ffff00ffffff033c
unit BRU 0000000000000000ffffffff000000000000000300000003000000000000fcc0
Sind mehrere Taktzyklen zur Ausfuhrung einer Operation erforderlich, so
kann die Ausfuhrungseinheit in vielen Fallen als eigene mehrstufige Pipeline
realisiert werden. Ein einfaches Beispiel dafur bildet die Ausfuhrung von Be-
fehlen fur Speicherzugriffe. Vor dem Lesen oder Schreiben muss die Speicher-
adresse berechnet werden. Der eigentliche Zugriff kann erst danach erfolgen.
Abbildung 5.1 auf Seite 89 zeigt eine entsprechende zwei-stufige Pipeline. So-
bald eine Adressberechnung auf der ersten Stufe fertig ist, kann der Befehl auf
die zweite Stufe weiter gereicht werden. Dort verweilt der Befehl, bis der Spei-
cherzugriff erfolgt ist. Mit dem Wechsel in die zweite Stufe kann ein weiterer
Befehl in die erste Stufe nachfolgen. Die Adressberechnung benotigt in der
Search WWH ::




Custom Search