Mikroprogramm
Was leistet ein Mikroprogramm?
Ein Mikroprogramm ist ein Programm zur automatisierten Aktivierung von Steuersignalen. Es besteht aus Steuerworten bzw. Mikrobefehlen, die jeweils eine Kombination aus Steuersignalen bilden.
Experimente mit dem Bonsai-Simulationsprogramm
Der rechte Rand der Simulation wird sichtbar, wenn du das Menü mit einem Mausklick auf das 'X' rechts oben abschaltest. Du kannst den Simulator auch etwas größer direkt in einem separaten Fenster öffnen: Bonsai-Simulator
Aufgabe 1
Schaue zunächst in den Mikroprogrammspeicher hinein. Hierzu musst du nur den passenden Tab anklicken. Du erhältst eine zunächst etwas merkwürdige Auflistung von Zahlen. Ziel ist es zunächst, diese Zahlen zu deuten.
00: 1024 01: 3080 02: 1032 03: 4096 04: 4100 ... 10: 4096 11: 4232 12: 4104 13: 12320 14: 4368 15: 4352 16: 2 ...
Die Zahlen in den Speicherzellen stehen hier für Bitfolgen
00: 000010000000000 01: 000110000001000 02: 000010000001000 03: 001000000000000 04: 001000000000100 ... 10: 001000000000000 11: 001000010001000 12: 001000000001000 13: 011000000100000 14: 001000100010000 15: 001000100000000 16: 000000000000010 ...
Aufgabe 2
Die Bitfolgen sind hier Steuerwörter. Sie geben an, welche Steuersignale zu einem bestimmten Zeitpunkt alle (gleichzeitig) aktiviert werden sollen.
Zur besseren Lesbarkeit werden die Steuerwörter jetzt nur mit den Nummern der aktiven Signale dargestellt. So entspricht dem Steuerwort 000110000001000 die Liste [11, 10, 3].
00: [10] 01: [11, 10, 3] 02: [10, 3] 03: [12] 04: [12, 2] ... 10: [12] 11: [12, 7, 3] 12: [12, 3] 13: [13, 12, 5] 14: [12, 8, 4] 15: [12, 8] 16: [1] ... 20: [12] 21: [12, 7, 3] 22: [12, 3] 23: [13, 12, 6] 24: [12, 8, 4] 25: [12, 8] 26: [1] ... 30: [12, 9] 31: [12] 32: [1] ... 40: [13, 12] 41: [12, 3] 42: [14, 12, 3] 43: [1] ... 50: [12, 2, 0]
(a) Etliche Teile des so dargestellten Mikroprogramms kannst du jetzt identifizieren. Vergleiche hierzu mit dem Steueralgorithmus.
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):
(b) Kommentiere das Mikroprogramm analog zum Steueralgorithmus. Beachte, dass die Bedeutung von einigen Steuerwörtern noch geklärt werden muss.