|
Befehlszyklus
Der Befehlszyklus wird von der CPU ständig durchlaufen:
- die Befehle stehen im Speicher.
- das Leitwerk "weiß" jederzeit, welcher Befehl als nächster auszuführen ist.
- die Adresse (= Nummer der Speicherzelle) des nächsten auszuführenden Befehls steht in einem speziellen Register des Leitwerks, dem Befehlszähler (Program Counter, PC, BZ, Instruction Address Register, IAR, Instruction Pointer, IP).
- üblicherweise stehen aufeinanderfolgende Befehle in aufeinander folgenden Speicherzellen, der zuerst auszuführende Befehl hat die niedrigste Adresse.
- zu Beginn des Programms wird der BZ mit dessen Startadresse geladen.
Ablauf des Befehlszyklus In der Befehlsholphase erfolgt ein Speicherzugriff (1a) auf die vom Befehlszähler (BZ) angezeigte Adresse. Der entsprechende Befehl wird in das Befehlsregister (IR) des Leitwerks gebracht (1b). Anschließend wird der BZ um 1 erhöht. Er zeigt damit auf den nächsten Programmbefehl. Besteht ein Befehl aus mehreren Speicherworten, setzt sich diese Phase auch aus mehreren Speicherzugriffen zusammen (BZ wird jedes Mal erhöht), bis der Befehl vollständig im IR steht. Es erfolgt hier in der Befehlsholphase bereits eine Teilauswertung des Operations-Codes (s. Grafik). Das Befehlsregister
besteht hier aus Op-Code-Register (OR, Befehlsregister) und
Adress-Register (AR).
Der Befehl im OR wird nun decodiert (Befehlsdecoder) und der
Ablaufsteuerung zugeführt. Diese ist in der Regel als
Mikroprogramm realisiert. Die Ablaufsteuerung erzeugt nun die
nötigen Steuersignale (siehe Kapitel 8).
Benötigt der Befehl Operanden, so wird deren Adresse
aus dem Inhalt des AR ermittelt. Häufig ist im Befehl nicht
die tatsächliche Operandenadresse, sondern nur eine
Teilinformation enthalten, die noch geeignet ergänzt werden
muss ( Adressrechnung, s. später).
Nun erfolgt ein Speicherzugriff (4a) auf die so festgestellten
Operanden-Adresse. Der Operand wird in das vom Op-Code
spezifizierte Register oder in das Rechenwerk (4b) oder in die
ausgewählte Speicherzelle gebracht.
Falls durch den Op-Code weitere Teiloperationen gefordert sind,
werden diese nun ausgeführt. Dabei kann auch der Inhalt des BZ
verändert werden (Sprungbefehle, Unterprogramm-Aufrufe).
Jeder Befehlszyklus besteht aus einer Anzahl von Teilschritten.
Die Anzahl der Teilschritte kann für unterschiedliche
Befehle verschieden sein, auch die Zeitdauer der einzelnen Befehle
kann unterschiedlich sein.
die Befehlszyklen verschiedener Befehle können
unterschiedlich lang sein. Die tatsächliche Dauer eines
Befehlszyklus hängt von der Taktfrequenz der CPU ab.
Der gesamte Ablauf in der CPU wird durch einen zentralen Takt
gesteuert. Ein Befehlszyklus kann in eine Reihe von Maschinenzyklen
zerlegt werden (z.B. Speicherzugriff in einem Maschinenzyklus). Ein
Maschinenzyklus kann eine oder mehrere Taktperioden
(Arbeitstakt des Prozessors) dauern.
|
|
|