Hardware Reference
In-Depth Information
eine gleichermaßen für Lade- und Speicherbefehle geeignete Schaltungsstruk-
tur. Die Datenspeicheradresse ist das Operationsergebnis im Register »Ergeb-
nis«. Die Registeradresse für den Datenaustausch steht wie bei allen anderen
behandelten Befehlen in der Ergebnisschreibphase im Register »ARegY2«. Zu-
sätzlich wird aus der Operandenholphase (OF) über die Register »Ctrl_EX«
und »Ctrl_RW« ein Bitvektor übergeben, der für den dritten Port des Re-
gistersatzes und für den Datenspeicher die Information für die Bildung der
Schreibsignale enthält. Für einen Speicherbefehl wird das adressierte Regis-
ter gelesen und der gelesene Inhalt auf den adressierten Datenspeicherplatz
geschrieben. Für einen Lesebefehl wird der adressierte Datenspeicherplatz ge-
lesen und sein Inhalt in das adressierte Register geschrieben.
ARegY1,CtrlEXARegY2,CtrlRW
Konstantef¨urLadenbzw.Speichern
Registersatz
Instr
Datenspeicher
Opcode
x
1
a
1
y
1
x
RAM
y
RAM
sopadd
w
1
ORegA
w
IF
x
2
a
2
x
3
a
3
y
2
Ergebnis
OpTypTransferrichtung
DS
⇒
RS
RS
⇒
DS
0
w
2
ALU
a
ORegB
ld
y
3
st
0
w
3
DS
Datenspeicher
EX
RW(speichern)
OF
RS
Registersatz
Ctrl...
Kontrollregister
RW(laden)
Abb. 5.21. Lade- und Speicher-Pipeline
5.4.3 Sprung-Pipeline
Die Kontrollflussanweisungen einer höheren Programmiersprache - Fallun-
terscheidungen, Schleifen, Unterprogrammaufrufe und Unterprogrammrück-
sprünge - werden im übersetzten ausführbaren Programm mit Sprungbefehlen
nachgebildet. Die Nachbildung aller Hochsprachen-Kontrollflussanweisungen
erfordert mindestens zwei Arten von Sprüngen:
• einen unbedingten Sprung zu einer berechneten Adresse unter Aufbewah-
rung der Rückkehradresse und
• einen bedingten Sprung zu einer berechneten Adresse.
Eine berechnete Adresse ist auf der Maschinenprogrammebene der Inhalt ei-
nes Registers, in das zuvor die Adresse geschrieben wurde. Der Speicherplatz
für die Rückkehradresse ist gleichfalls ein Register, dessen Inhalt von nachfol-
genden Befehlen bearbeitet oder in den Datenspeicher kopiert werden kann.