Information Technology Reference
In-Depth Information
einen sog. virtuellen Prozessor) [103]. Daneben ist die simultane Verarbeitung von
Befehlsfolgen für einige weitere Prozessoren angekündigt: Der Alpha 21464 von
Compaq (Codename EV8), der nach dem Verkauf an Intel wohl nicht mehr gefertigt
werden wird, sollte vier Befehlsfolgen ausführen können und dabei achtfach super-
skalar sein [195]. Der zum PowerPC kompatible Power5 von IBM soll zwei echte
fünffach superskalare Prozessorkerne besitzen, mit denen es jeweils möglich ist,
zwei Befehlsfolgen quasiparallel zu verarbeiten [89, 135].
Nach Aussage von Intel sollte auch der Montecito, ein Nachfolger des Itanium 2,
ursprünglich simultanes Multithreading unterstützen. Tatsächlich wird nun jedoch
das blockbasierte Multithreading verwirklicht [19], was zunächst sinnvoll erscheint,
da es sich beim Montecito nicht um einen superskalaren, sondern um einen VLIW-
Prozessor handelt. Trotzdem wäre es prinzipiell möglich, simultanes Multithreading
zu realisieren. Da nämlich im Programmiermodell des Prozessors definiert ist, dass
sich bei sequentieller Verarbeitung der parallel in einem Befehl codierten Operatio-
nen die Semantik eines Programms nicht ändert, lassen sich horizontale Verluste
leicht vermeiden, indem Befehle parallel auszuführender Befehlsfolgen zerlegt und
die Operationen zu neuen Befehlen kombiniert werden.
A 1
A 2 A 3
B 1 B 2
B 3
C 1 C 2
C 4 C 5 C 6 C 7
C 8 C 9
A 1
A 2
A 3
B 1 B 2
A 4
A 5 A 6 A 7 A 8 A 9
B 4 B 5 B 6 B 7
B 8 B 9
C 3
B 3
C 1 C 2
A 4
B 7 C 3
C 4 C 5 C 6 C 7 A 5
B 8
B 4 B 5 B 6
t
a
A 6 A 7 A 8 A 9
C 8 C 9
B 9
b
Bild 3.53. Zeitlicher Ablauf bei Verarbeitung von drei unabhängigen Befehlsfolgen A, B und C
durch einen VLIW-Prozessor, der ein Programmiermodell ähnlich dem des IA-64 besitzt. a Sequen-
tielle Verarbeitung der drei Befehlsfolgen. b Verarbeitung durch simultanes Multithreading
Das zugrunde liegende Verarbeitungsprinzip ist in Bild 3.53 für einen VLIW-Pro-
zessor dargestellt, der maximal fünf Operationen parallel ausführen kann. Die drei
Befehlsfolgen A, B und C (Bild 3.53a) werden dabei zu der rechts abgebildeten
Befehlsfolge (Bild 3.53b) vereint. Im ersten Takt führt man kombiniert zunächst
Operationen aus den Befehlsfolgen A und B aus. Da maximal fünf Operationen par-
allel verarbeitbar sind, ist B 3 um einen Takt zu verzögern. Dies ist unproblematisch,
weil, wie eingangs erwähnt, in einem Befehl nur Operationen codiert sein dürfen,
die sowohl parallel als auch sequentiell ausgeführt werden können, und zwar ohne
das sich die Semantik des Programms ändert. Im weiteren Verlauf wird parallel zu
B 3 der erste Befehl der Befehlsfolge C und der zweite Befehl der Befehlsfolge A
ausgeführt. Damit aufeinander folgende Befehle der ursprünglichen Befehlsfolgen
sequentiell ausgeführt werden, ist es nicht möglich, A 5 , B 4 oder C 3 im zweiten Takt
zu starten, weshalb es hier zu einem horizontalen Verlust kommt. Die drei Befehls-
folgen werden in der hier beschriebenen Weise insgesamt in sechs statt neun Takten
ausgeführt. Dabei nimmt die Häufigkeit horizontaler (und auch vertikaler) Verluste
deutlich ab.
Search WWH ::




Custom Search