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.
Carsten Kelling 1996 (); letzte Änderung: 17. September 1997 |