Befehlszyklus

Ausführung von Maschinenprogrammen mit Steuersignalen

Steuersignale dienen dazu, Aktionen von Komponenten eines Rechners gezielt zu aktivieren. So lassen sich mit Steuersignalen Tore öffnen und schließen oder das Weiterzählen des Programmzählers auslösen.

Steuersignale werden im Folgenden benutzt, um Maschinenprogramme Schritt für Schritt auszuführen.

Experimente mit dem Bonsai-Simulationsprogramm

Im CPU-Fenster siehst du das Operationswerk des Bonsai-Rechners ergänzt um eine Art Controlboard bzw. Steuerboard.
Mit dem Schalter rechts oben kannst du das Controlboard (de)aktivieren. Aktiviere für die weiteren Experimente das Controlboard.

Bonsai-Logo Du kannst den Simulator auch größer direkt in einem separaten Fenster öffnen: Bonsai-Simulator

Aufgabe 1

Im Ausgangszustand sind alle Steuerleitungen inaktiv. Wenn du auf eine der Zahlen 0..14 im Controlboard klickst, dann kannst du auf diese Weise gezielt Steuerleitungen aktivieren und auch wieder deaktivieren. Probiere das selbst aus.

Beobachte auch genau, wie sich die Darstellung im Controlboard ändert und wie sich die Darstellung der Steuerleitung ändert.

Aufgabe 2

Teste jetzt systematisch alle Steuersignale (ab Nummer 3) und fertige eine Liste mit den jeweils erzielten Wirkungen an.

Signalnummer Wirkung des Signals
3 öffnet das Tor vom Speicher zum Datenbus
4 öffnet das Tor vom Datenbus zum Speicher
5 aktiviert den Akku, den gespeicherten Wert um 1 zu erhöhen
6 ...
... ...

Ein Signalaktivierungsalgorithmus

Im letzten Kapitel hast du Befehle direkt im Operationswerk ausgeführt. Die hierzu erforderlichen Aktionen kannst du jetzt direkt im Controlboard aktivieren.

Hier ein Signalaktivierungsalgorithmus, mit dem man Maschinenprogramme mit Steuersignalen ausführen kann.

Wiederhole:
    # Befehl holen
    10                      PC -> ABus
    10, 3, 11               Mem[Abus] -> DBus -> IR 
    10, 3                   Mem[Abus] -> DBus
    # Befehl decodieren und ausführen
    Falls op(IR):
        1 (inc):
            12              adr(IR) -> ABus
            12, 3, 7        Mem[ABus] -> DBus -> Akku
            12, 3           Mem[ABus] -> DBus
            12, 5, 13       upAkku; incPC 
            12, 8, 4        Akku -> DBus -> Mem[ABus]
            12, 8           Akku -> DBus
        2 (dec):
            12              adr(IR) -> ABus
            12, 3, 7        Mem[ABus] -> DBus -> Akku
            12, 3           Mem[ABus] -> DBus
            12, 6, 13       downAkku; incPC 
            12, 8, 4        Akku -> DBus -> Mem[ABus]
            12, 8           Akku -> DBus
        3 (jmp):
            12, 9           adr(IR) -> ABus -> PC
            12              adr(IR) -> ABus
        4 (tst):
            12, 13          adr(IR) -> ABus; incPC
            12, 3           Mem[ABus] -> DBus
            12, 3, 14       incPCz
        5 (hlt):

Aufgabe 3

Gib selbst einfache Maschinenprogramme im Datenspeicher ein und führe sie mit dem Controlboard nach dem gezeigten Signalaktivierungsalgorithmus aus.

Beachte: Offen ist noch die Frage, wie die Wiederholung und die Decodierung ebenfalls mit Steuersignalen realisiert werden können. Diese Punkte sollen in den folgenden Abschnitten geklärt werden.

X

Fehler melden

X

Suche