Hardware Reference
In-Depth Information
In der Decode-Phase wird der eben geholte Befehl dekodiert. Hier werden
die im Befehl angegebenen Register gelesen oder ein Direktoperand aus dem
Befehlswort erkannt. Wir unterscheiden vier Moglichkeiten:
Befehle mit zwei Registeroperanden: Die beiden Register $Y und $Z wer-
den ausgelesen.
Befehle mit einem Registeroperanden und einem Direktoperanden. Das
Register $Y wird ausgelesen und der Direktoperand Z kommt aus dem
Befehlswort.
Befehle fur Speicherzugriff: Die Adresse wird mit Register- oder Direkt-
operanden berechnet. Zusatzlich wird bei schreibendem Zugriff der in den
Speicher zu schreibende Wert aus einem Register $X gelesen.
Sprungbefehle: Fur die Bedingung wird Register $X ausgelesen und zur
Berechnung des Sprungziels wird ein Direktoperand aus dem Befehlswort
weitergegeben.
In der Execute-Phase werden arithmetische und logische Operationen durch-
gefuhrt. Ferner werden die Bedingungen von Sprungbefehlen ausgewertet.
Kernstuck ist die Arithmetic Logical Unit (ALU) [1]. Aufgrund des dekodier-
ten Befehlsworts entscheiden Multiplexer vor der ALU, woher die Operan-
den kommen sollen: Aus Registern, Direktoperanden oder bei Sprungbefeh-
len kann sogar der Befehlszahler ein Operand sein. In dieser Stufe muss die
Bedingung einer Verzweigung gepruft werden. Das Ergebnis dieser Prufung
wirkt auf den Multiplexer in der F-Stufe zuruck, der den Befehlszahler mit
einer neu berechneten Sprungzieladresse uberschreiben kann.
In der M-Phase wird, falls notig, ein Speicherzugriff durchgefuhrt. Die effek-
tive Adresse fur den Zugriff wurde zuvor in der X-Phase berechnet.
Schließlich kann in der W-Phase ein Wert in ein Register der Registerbank
geschrieben werden. Ein Multiplexer wahlt entweder das Ergebnis einer arith-
metischen Operation oder einen aus dem Speicher gelesenen Wert.
Bei der Anwendung von Pipelining mussen die Ubergange zwischen den
einzelnen Stufen getaktet werden. An den Ubergangen m¨ussenauchWer-
te ubergeben und zwischengespeichert werden konnen. In Abbildung 3.1 ist
dies durch gestrichelte senkrechte Trennstriche angedeutet.
Um die Auswirkungen der Einfuhrung von Pipelining zu sehen, betrachten
wir zunachst die Befehlsausfuhrung ohne Pipelining. Wir nehmen an, ein
Befehl benotige zum Durchlaufen der Phasen Fetch, Execute und Memory
Access je 2∆ t ,wobei∆ t eine beliebige Zeiteinheit sei. Fur die anderen beiden
Phasen Decode und Write Back benotige ein Befehl nur halb so lang, also 1∆ t .
Abbildung 3.2 a) zeigt die sequenzielle Abarbeitung von drei verschiedenen
Befehlen.
Search WWH ::




Custom Search