Hardware Reference
In-Depth Information
4Superskalaritat
Wir wollen nun das Konzept mehrerer parallel arbeitender Funktionseinhei-
ten weiter entwickeln. Prozessoren, die in der Lage sind, in einem Taktschritt
mehrere Instruktionen eines konventionellen, linearen Programms auf ver-
schiedene parallele Ausfuhrungseinheiten zu verteilen, heißen superskalar .
4.1
4.1 Parallele Ausfuhrungseinheiten
Zunachst greifen wir die fur den Pentium entwickelte Idee nochmals auf. Wir
wollen uberlegen, wie es aussehen konnte, wenn MMIX zwei parallele Pipelines,
U-Pipe und V-Pipe, hatte. Fur den Pentium gelten allerdings komplizierte
Regeln, welche Instruktionen parallel ausgefuhrt werden konnen, die Pairing
Rules.
Wir wollen diese Eigenschaften des realen Pentium hier nicht detailliert be-
trachten. Insbesondere verbleiben wir bei funf Stufen, wohingegen der Penti-
um uber eine Stufe mehr verfugte. Wir nehmen ferner an, dass beliebige In-
struktionen parallel ausgefuhrt werden konnen, sofern nicht die eine Operan-
den benotigt, die von der anderen erst berechnet werden. Diese Read-After-
Write-Abhangigkeit konnen wir hier nicht mehr durch Forwarding losen, wie
im vorangegangenen Kapitel. Zunachst betrachten wir den Fall, dass paralle-
le Instruktionen gleichzeitig fertiggestellt werden mussen. Uberholen ist also
nicht moglich, wenn etwa eine der beiden Instruktionen in einer Stufe warten
muss (Speicherzugriff oder lang laufende Operation).
In Abbildung 4.1 ist die Situation dargestellt, dass die Fetch-Stufe gleichzei-
tig zwei Pipelines mit Instruktionen beschicken kann. Die beiden Pipelines
heißen wie beim Pentium U-Pipe und V-Pipe. Voraussetzung fur das gleich-
zeitige Versorgen beider Pipelines mit Befehlen ist, dass die Fetch-Stufe uber
zwei Befehle verfugt. Der bereits vorgestellte Mechanismus des Prefetching
versucht, in einem Buffer immer genugend Instruktionen zu diesem Zweck
vorratig zu halten.
Betrachten wir einen kurzen Programmausschnitt aus mandelbrot.mms (siehe
Anhang, Abschnitt A.3.1):
23
FADD
p,p,plow
24
FADD
q,q,qlow
25
SET
xk,0
26
SET
yk,0
27
SET
k,0
28
Nachste Iteration: x k +1 = x k − y k + p
29 1H
INCL
k,1
Search WWH ::




Custom Search