Information Technology Reference
In-Depth Information
beitenden Addition wird anhand des Operationscodes und des aktuellen Zustands
Null der oberste Eintrag des Decoders selektiert und alle notwendigen Steuersignale
generiert. Insbesondere wird der Folgezustand Null auf der rechten Seite des Deco-
ders erzeugt, der mit dem nächsten Takt in das Zustandsregister geschrieben wird
(mit a markierte Verbindung), so dass jeweils nachfolgende Befehle denselben Initi-
alzustand Null vorfinden. Das Zustandsregister hat für die Ausführung einschrittig
bearbeitbarer Befehlen noch keine Funktion. Es wird aber benötigt, wenn ein Befehl
in mehreren Schritten bearbeitet werden muss.
OP
COND
ADDR
Datenwerk
vom CC
Z ustandsregister
a
add
cmp
call
-
-
-
-
-
-
-
-
-
0
0
0
1
0
0
1
0
AC = AC + [ ADDR ], setze CC,
PC = PC + 1;
AC - [ ADDR ],
setze CC,
PC = PC + 1;
SP = SP - 1,
PC = PC + 1;
[SP] = PC;
PC = PC + ADDR;
ALU AC
SP CC
PC
M 1
M 2
M 3
M 4
M 5
ME
Bild 2.12. Mehrschrittig arbeitendes Mikroprogrammsteuerwerk mit Zustandsregister
Angenommen, es soll ein Unterprogrammaufruf ( call ) verarbeitet werden, dann
wird zuerst der dritte Eintrag im Decoder selektiert und so ein Steuervektor gene-
riert, der die Dekrementierung des Stapelzeigerregisters bewirkt ( M 2 : verbinde 1,
M 1 : verbinde SP, ALU : subtrahiere, CC : halte, AC : halte und SP : setze). Außerdem
wird der Befehlszähler inkrementiert, da für den Rücksprung nicht die Adresse des
unterprogrammaufrufenden, sondern des darauf folgenden Befehls benötigt wird.
Stapelzeigerregister sowie Befehlszähler werden zeitgleich zum Zustandsregister
mit dem nächsten Taktschritt aktualisiert, wodurch insbesondere der Folgezustand 1
aktiviert und der unterste im Decoder dargestellte Eintrag selektiert wird. In diesem
Zustand wird der inkrementierte Befehlszählerinhalt indirekt zu SP im Datenspei-
cher gesichert und der befehlszählerrelative Sprung zur im Befehl codierten Adresse
ADDR ausgeführt. Die Bearbeitung des Unterprogrammaufrufs endet mit dem
Rücksetzen des Zustandsregisters in den Initialzustand 0, so dass mit dem nächsten
Taktschritt die Bearbeitung des am Sprungziel stehenden Befehl in derselben Weise
begonnen werden kann.
Das Setzen des Zustandsregisters kann als Sprung zu einer Menge von Mikrobefeh-
len interpretiert werden, von denen jedoch nur einer entsprechend der Eingangsbe-
dingungen ausgeführt wird. Zum Beispiel wird mit dem ersten für Unterprogramm-
aufrufe zuständigen Eintrag ein Sprung zum Folgezustand 1 und mit dem zweiten
Eintrag ein Sprung zum Folgezustand Null ausgeführt. Falls die Mehrzahl der
Mikrobefehle in einem Mikroprogramm Sprünge erwarten lassen, ist es sinnvoll, ein
Search WWH ::




Custom Search