rechner:registermaschine:start
Inhaltsverzeichnis
Theoretische Registermaschine
Eine Registermaschine ist ein abstraktes Modell der theoretischen Informatik, das genutzt wird, um den Begriff der Berechenbarkeit zu definieren.
Eine Registermaschine besteht aus
- einem Programm bestehend aus endlich vielen durchnummerierten Befehlen,
- unendlich vielen durchnummerierten Speicherzellen, den Registern und
- einem Befehlszähler, in dem die Nummer des nächsten auszuführenden Befehls gespeichert ist.
Jedes Register kann eine beliebig große natürliche Zahl speichern.
Die Registermaschine besitzt folgenden Befehlssatz:
| Befehl | Bedeutung |
|---|---|
| Increase Register i and jump to p | Erhöht den Wert des Registers i um 1 und lädt dann die Adresse p in den Befehlszähler |
| Decrease Register i and jump to p | Vermindert den Wert des Registers i um 1 (nur falls Wert von i > 0) und lädt dann die Adresse p in den Befehlszähler |
| if Value of i == 0 then jump to p else jump to q | Falls der Wert des Registers i den Wert 0 hat, lade p in den Befehlszähler, ansonsten lade q in den Befehlszähler |
Reale Registermaschine
Reale Computer sind auch Registermaschinen, aber in etwas anderer technischer Form. Sie bestehen
- aus einem einzigen Register, dem Akkumulator,
- dem Befehlszähler, der die Adresse des nächsten Befehls enthält,
- dem Befehlsregister, das den aktuellen Befehl enthält,
- dem Statusregister, dessen Bits entsprechend dem Ergebnis des letzten Rechenergebnisses gesetzt sind.
Der Akkumulator kann auf vielseitige Weise benutzt werden. Es existieren Befehle, um
- Daten vom Arbeitsspeicher in den Akkumulator zu laden ("lesen"),
- Daten vom Akkumulator in den Arbeitsspeicher zu schreiben,
- Rechenoperationen mit dem Akkumulator auszuführen und
- Logikoperationen mit dem Akkumulator auszuführen.
Befehlszyklus
Die Maschinensprachebefehle werden innerhalb des Prozessors in folgenden Teilschritten (Phasen) abgearbeitet ("Befehlszyklus"):
- Fetch-Phase:
- Der Maschinensprache-Befehl wird aus der Speicherzelle gelesen, auf die der Befehlszähler zeigt.
- Der Befehlszähler wird entsprechend erhöht.
- Der Operand (z.B. ein immediate-Operand oder eine Adresse) wird geladen.
- Der Befehlszähler wird erneut entsprechend erhöht.
- Decode-Phase:
- Der Befehl wird entschlüsselt.
- Steuerwerk und Rechenwerk werden für die Ausführung des Befehls vorbereitet.
- Execute-Phase:
- Ausführen des Befehls durch Rechenwerk und Steuerwerk
rechner/registermaschine/start.txt · Zuletzt geändert: von Martin Pabst
