Information Technology Reference
In-Depth Information
verändert, was hier leicht dadurch erreichbar ist, dass man ein zusätzlichen Schreibport am Regis-
terspeicher vorsieht. Es sei dem Leser überlassen, die Registertransferstruktur entsprechend Bild
2.5 so abzuwandeln, dass auch die prämodifizierende indirekte Adressierung ermöglicht wird.
2.1.5 Befehlsadressierung
Der Prozessor in Bild 2.5 ist zwar bezüglich der Funktionalität seines Datenwerks
vergleichbar mit realen Prozessoren, wie z.B. dem Alpha 21364 von Compaq [25,
28] oder dem ARM7TDMI von ARM ltd. [10, 11], nicht jedoch in der Funktionali-
tät seines Leitwerks. Nachteilig ist vor allem, dass keine Unterprogramme aufgeru-
fen werden können, da es hierzu möglich sein muss, die Adressen der aufrufenden
Befehle zu sichern. Die erforderlichen Erweiterungen sind in Bild 2.6 dargestellt.
Beim Aufruf eines Unterprogramms wird die Zieladresse über die mit a markierte
Verbindung und den Multiplexer in den Befehlszählers PC übertragen und gleich-
zeitig die Adresse des unterprogrammaufrufenden Befehls, die man für einen Rück-
sprung am Ende des Unterprogramms benötigt, aus dem Befehlszähler über die mit
b markierte Verbindung zum Registerspeicher transportiert.
a
b
c
d
+1
Befehls-
speicher
Register-
speicher
Daten-
speicher
ALU
N
n
Befehlsdecoder
Bild 2.6. Registertransferschaltung eines sequentiell arbeitenden Prozessors, mit dem sich Unter-
programmaufrufe und -rücksprünge ausführen lassen
Zu beachten ist, dass ein Sprungziel nicht mehr, wie in Bild 2.5, statt einer Ergebnis-
adresse im Befehl codiert ist, sondern nun statt der N Bit breiten Operandenadresse.
Dies hat vor allem nachteilige Auswirkungen auf bedingte Sprungbefehle, da im
Befehl nicht zwei Operandenadressen codiert werden können, sondern maximal
eine Operandenadresse codiert werden kann. Der Vergleich zweier Operanden ist
dennoch möglich, wie dies anhand der nachfolgenden Befehlsfolge zu ersehen ist.
r3 und speichere Wahrheitswert in r1
cmpne
r1, r2, r3
// Vergleiche r2
bt
r1, label
// Verzweige falls der Wert in r1 wahr ist (branch true)
Um nach Bearbeitung eines Unterprogramms in das aufrufende Programm zurück-
zukehren, ist es erforderlich, die in einem Register gespeicherte Adresse des unter-
programmaufrufenden Befehls auszuwerten, weshalb in Bild 2.6 die mit c und d
markierten Verbindungen vorgesehen sind. Zunächst wird die beim Unterpro-
grammaufruf gespeicherte Adresse in die ALU übertragen und um Eins inkremen-
tiert. Letzteres ist hier erforderlich, weil nicht zum unterprogrammaufrufenden, son-
Search WWH ::




Custom Search