3.2 Simulation des Von-Neumann-Rechners

[Steuerwerk Von-Neumann-Rechner]


3.2.1 Es geht los - der Befehlszyklus

Gründlich theoretisch vorbereitet durch das vorherige Kapitel kann es nun mit der Simulation des Von-Neumann-Rechners (VNR) losgehen. Bevor wir lernen, welche Befehle der VNR beherrscht, und was man damit alles anfangen kann, wollen wir betrachten, wie die Befehle ausgeführt werden. Alle Befehle des VNR werden nämlich, wie in 2.2.2 Fetch-Decode-Execute beschrieben, in einem Befehlszyklus mit eben diesen drei Schritten abgearbeitet.

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.


  Carsten Kelling 1996 ([EMail senden]); letzte Änderung: 21. Februar 1997