Hardware Reference
In-Depth Information
1
2
3
4
5
6
7
8
9
10
11
F
D
X
M
W
STO
y,A,j
F
D
X
M
W
SET
j,k
F
D
X
M
W
BNP
j,@+20
F
D
X
M
W
SUBU k,j,8
F
D
X
M
W
LDO
y,A,k
F
D
X
M
W
CMP
tmp,y,x
F
D
X
M
W
PBP
tmp,5B
Abbildung 3.12. Situation wie in Abbildung 3.11, aber ohne Pipeline-Stillstand, weil der
Sprung korrekt vorhergesagt wurde
Mit Methoden zur Vorhersage von Sprungzielen wird sich der ganze Ab-
schnitt 6 befassen. Wir werden dort auch sehen, dass sich Verzogerungen im
Ablauf durch falsch vorhergesagte Sprunge nie ganz vermeiden lassen.
3.2.4 Behandlung von Interrupts
Unterbrechungen (Interrupts, Exceptions) weisen gewisse Ahnlichkeiten mit
Verzweigungen und Unterprogrammaufrufen auf. Sie konnen auch als ablauf-
bedingte Hemmnisse betrachtet werden.
Manche Ausnahmebehandlungen erfolgen unter Kontrolle des Programms
und sind nachvollziehbar (synchron, siehe z.B. [1]). Bei MMIX sind das die
TRIP s, die entweder durch das Programm durch TRIP -Befehle ausgelost wer-
den oder durch arithmetische Ausnahmen (Exceptions). Ferner gehoren dazu
die Betriebssystemaufrufe oder Forced TRAP s sowie die externen asynchronen
Interrupts, ausgelost durch externe Gerate. Das Programm, in das nach dem
Auslosen eines TRIP oder TRAP verzweigt wird, nennt man Handler .
Ein TRIP -Befehl andert den Kontrollfluss wie ein unbedingter Sprung ( JMP )
oder ein Unterprogrammaufruf. Bei den arithmetischen Ausnahmen, die eben-
falls TRIP -Handler aufrufen, ergibt sich aber erst im Laufe der Befehlsbearbei-
tung, ob eine Ausnahmebehandlung erforderlich ist. Ob also bei einer Opera-
tion ein Uberlauf auftritt und der entsprechende TRIP -Handler aufzurufen ist,
steht erst nach der Execute-Phase fest. Der Kontrollfluss des Programms an
einer solchen Stelle verhalt sich also wie ein falsch vorhergesagter bedingter
Sprung.
Schwieriger sind externe (asynchrone) Interrupts zu behandeln. Diese lassen
sich naturgemaß nicht vorhersagen. Auf solche Unterbrechungsanforderun-
gen muss moglichst schnell reagiert werden. Bei Auftreten eines Interrupts
muss ebenfalls in einen Handler verzweigt werden. Anschließend ist das unter-
brochene Programm fortzusetzen. Dabei durfen keine Befehle unterbrochen
Search WWH ::




Custom Search