Hardware Reference
In-Depth Information
4.10.1 Pentium Pipelines fur X86-Befehle
Da die Prozessoren, die X86-Befehle ausfuhren konnen, sehr verbreitet sind,
werfen wir einen Blick auf deren Pipelines. Wir beginnen die Betrachtung
mit folgendem X86-Befehl:
add [mem],[reg]
Wir sehen hier das typische Zwei-Adress-Befehlsformat. Dieser Befehl addiert
den Inhalt einer mit [mem] bezeichneten Speicherstelle zum Wert aus Regis-
ter [reg] und schreibt das Ergebnis an die Speicheradresse [mem] zuruck.
Dieser Befehl fuhrt zwei Speicherzugriffe durch und zusatzlich eine arithme-
tische Operation. Wir sehen sofort, dass dieser Befehl auf einer klassischen
Funf-Stufen-Pipeline nicht ausgefuhrt werden kann. Siehe dazu Abbildung 3.1
auf. Auf Pipelines lassen sich nur Register-Register-Befehle sowie Load-Store-
Befehle ausfuhren. Diese Befehle haben wir in Abschnitt 1.3.4 als RISC-
Befehle 2 charakterisiert. Bei dem betrachteten Befehl add [mem],[reg] han-
delt es sich demgegenuber um einen CISC-Befehl.
Der X86-Befehlssatz ist ein typischer CISC-Befehlssatz. Er hat insbesondere
eine variable Befehlswortlange (1-15 Bytes) und komplexe Befehle, die mehr
als nur einen Speicherzugriff ausfuhren. Weil die Befehle dadurch schlecht
Pipeline-geeignet sind, werden die komplexen X86-Befehle von den Proze-
soren zunachst auf RISC-Befehle abgebildet. Diese RISC-Befehle sind nur
innerhalb des Prozessors sichtbar. Sie bleiben dem Programmierer verborgen
und sind teilweise nicht einmal offentlich dokumentiert. AMD spricht bei den
resultierenden Befehlen von RISC86-Befehlen , kurz ROPs oder Macro Opera-
tions , Intel nennt sie Micro Operations ,kurz µ OPs [33, 34, 36]. Wir sprechen
im folgenden von Mikrobefehlen . Ein X86-Befehl muss unter Umstanden in
mehr als einen RISC-Befehl umgesetzt werden. Durchschnittlich sollen zwei
Mikrobefehle erforderlich sein [36]. Die Mikrobefehlsworte sind bei Intel 188
und bei AMD 38 Bit lang; sie sind nach dem Drei-Adress-Format aufgebaut.
Den Befehl aus obigem Beispiel setzen wir beispielhaft in eine Folge von
MMIX -Befehlen um und erhalten drei Befehle:
LDO $X,mem
ADD $X,$X,reg
STO $X,mem
Unberucksichtigt bleiben dabei weitere Befehle, um gegebenenfalls die Adres-
se zu berechnen (etwa ein LDA -Befehl).
Die Dekodierung von CISC-Befehlen erfordert zusatzliche Arbeit. Die Prozes-
soren verfugen daher uber eigene Pipeline-Stufen, um die Befehle variabler
Lange zu trennen und auf die internen Mikrobefehle abzubilden. Die Mi-
2 RISC bedeutet Reduced Instruction Set Computer; CISC bedeutet Complex
Instruction Set Computer.
Search WWH ::




Custom Search