Steuersignale
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.
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.