[vorheriger Abschnitt][nächster Abschnitt][Inhalt]

2 Grundlagen der Rechnerarchitektur


2.2.2 Fetch/Decode/Execute

Wir haben bereits festgestellt, daß bei der Ausführung jedes Maschinenbefehls der Dreischritt Laden/Verarbeiten/Speichern erfolgt. Aus etwas anderer, mehr an der Realisierung eines Prozessors orientierter Sicht spricht man außerdem häufig von drei Phasen FETCH, DECODE und EXECUTE.
Die FETCH-Phase deckt sich mit dem Laden bei der Ausführung einzelner Maschinenbefehle, d.h. das Befehlswort (ein Binärwort) wird aus der durch den Programmzähler bezeichneten Zelle im Hauptspeicher geholt (instruction fetch) und in einem extra dafür zuständigen Register abgelegt. Diese Phase läuft immer gleich ab, da der Prozessor den anstehenden Maschinenbefehl ja noch gar nicht kennt.
In der anschließenden DECODE-Phase muß die Art des Befehls „erkannt" werden, damit das Steuerwerk in der nächsten Phase die Handlungen für diesen spezifischen Befehl durchführen kann. Während dieser Phase ist ebenfalls noch nicht bekannt, welche Art von Befehl ansteht, weswegen sie genauso wie FETCH stets gleich abläuft; dennoch können manche Mikroprozessoren hier bereits „auf Verdacht" Binärwörter aus Registern anfordern, die später gebraucht werden könnten (register prefetch).
Die EXECUTE-Phase muß folglich den Rest von Verarbeitungs- und Speicher-Phase abdecken. Bei dieser Zusammenfassung ist jeder Befehl in der EXECUTE-Phase aktiv. Häufig wird diese Phase noch in weitere untergliedert, z.B. erst eine Phase für das etwaige Holen von Operanden aus dem Datenspei-cher (data fetch), gefolgt von einer für die eigentliche Berechnung und einer für das Speichern des Ergebnis-ses in dem Datenspeicher oder einem Register (write back). Es liegt auf der Hand, daß bei einer solchen Unterteilung der Ausführungsphase nicht jeder Befehl in allen drei EXECUTE-Schritten aktiv ist.


[vorheriger Abschnitt][nächster Abschnitt][Inhalt] Carsten Kelling 1996 ([EMail senden]); letzte Änderung: 17. September 1997