Befehlszyklus Holen–Dekodieren–Ausführen – im Inneren einer einfachen CPU

InformatikComputer und HardwareAlter 16–17

Wird geladen …

Eine winzige CPU mit PC, MAR, MDR, CIR, ACC, Rechenwerk und Steuerwerk, über Adress-, Daten- und Steuerbus mit 16 oder 32 Speicherzellen verbunden. Laden Sie ein Beispielprogramm in einer einfachen Assemblersprache (LDA, ADD, SUB, STA, BRZ, BRP, BRA, OUT, HLT) und gehen Sie Takt für Takt durch die Phasen Holen, Dekodieren und Ausführen, um die Daten auf den Bussen wandern zu sehen; ändern Sie die Taktfrequenz und zählen Sie die Taktzyklen.

Lektion: Im Inneren des Computers: CPU, Register, Busse und der Befehlszyklus Holen–Dekodieren–Ausführen

Was sie zeigt

Ein speicherprogrammierter Computer legt Befehle und Daten als Zahlen im Hauptspeicher ab. Die CPU wiederholt immer denselben Zyklus: Sie holt den Befehl von der Adresse im Befehlszähler, dekodiert ihn im Steuerwerk und führt ihn aus, wobei Werte zwischen Registern, Rechenwerk und Speicher über Adress-, Daten- und Steuerbus wandern. Das Modell arbeitet wie der Little Man Computer: dreistellige Dezimalcodes, deren erste Ziffer der Operationscode und deren letzte zwei Ziffern die Adresse sind, mit einer Registerübertragung pro Taktzyklus.

So funktioniert es

Wählen Sie ein Beispielprogramm und stellen Sie Wert A und Wert B ein. Klicken Sie auf Schritt (1 Takt), um einen Taktzyklus weiterzugehen, und lesen Sie oben die Registerübertragung, etwa MAR ← PC; mit Ganzer Befehl beenden Sie den aktuellen Befehl, mit Start treibt die Taktfrequenz die CPU an. Schalten Sie die Speicheranzeige zwischen Assembler und Maschinencode um und klicken Sie auf eine Speicherzelle, um zu sehen, wie die CPU sie lesen würde.

Einstellbare Parameter

  • Beispielprogramm Zwei Zahlen addieren (A + B), Countdown von A bis 0 (Schleife), Die größere Zahl von A und B
  • Wert A 0–50
  • Wert B 0–50
  • Taktfrequenz 0,5–20 Hz
  • Speicherzellen 16 Zellen, 32 Zellen
  • Speicheranzeige Assembler (LDA 13…), Maschinencode (513…)

Fragen zum Erkunden

  1. Warum wird der Befehlszähler schon in der Holphase erhöht, bevor der Befehl ausgeführt wird?
  2. Wie viele Taktzyklen brauchen ADD und BRA in diesem Modell, und warum unterscheiden sie sich?
  3. Wie ändert sich beim Countdown-Programm die Gesamtzahl der Zyklen, wenn A um 1 steigt?