Information Technology Reference
In-Depth Information
3.3 Multithreading (vielfädige Verarbeitung)
Die beiden wichtigsten Basistechniken zur Erhöhung des Befehlsdurchsatzes in Pro-
zessoren sind nach den vorangehenden Ausführungen die Fließbandverarbeitung
und die parallele Ausführung mehrerer Operationen. Beide Techniken werden
jedoch in ihrer Wirkung durch Operationen mit langen Latenzzeiten beschränkt. In
Bild 3.46 ist dies für skalare Prozessoren (a), VLIW-Prozessoren (b) und superska-
lare Prozessoren (c) in einer abstrakten Form dargestellt.
Befehlsstart
Befehlsstart
Befehlsstart
A 1
A 2
A 3
A 1 A 2 A 3
A 2
A 1
A 3
Horizontale
Verluste
A 5
Vertikale Verluste
t
Vertikale Verluste
Vertikale Verluste
Horizontale
Verluste
A 4 A 5
A 6
A 5
A 4
A 6
A 4
b
c
A 5
A 6
a
Bild 3.46. Zeitlicher Ablauf bei Verarbeitung einer Befehlsfolge, a durch einen skalaren Prozessor,
b durch einen VLIW-Prozessor, c durch einen superskalaren Prozessor.
Angenommen, ein skalarer Prozessor , der pro Takt prinzipiell einen Befehl starten
kann, soll eine optimierte Befehlsfolge A 1 bis A 6 ausführen (den sog. Thread ,
deutsch: Faden ), wobei A 3 insgesamt vier Takte benötigt, um ein weiterverarbeitba-
res Ergebnis zu erzeugen (z.B. ein Ladebefehl) und A 4 dieses Ergebnis benötigt, um
gestartet zu werden, dann hat die Befehlsfolge den Decoder nach neun Takten ver-
lassen, was einem durchschnittlichen Befehlsdurchsatz von etwa 0,3 Befehlen pro
Takt entspricht (Bild 3.46a). Zwar lässt sich der auftretende sog. vertikale Verlust
( vertical waste , vertical penalty ), also die Wartezeit zwischen A 3 und A 4 im Prinzip
verkürzen, indem Befehle ausgeführt werden, die keine Abhängigkeiten zu A 3 auf-
weisen, da jedoch eine optimierte Befehlsfolge vorausgesetzt wurde, ist dies hier
nicht möglich.
Die in Bild 3.46a dargestellte Befehlsfolge wird, wie in Bild 3.46b angedeutet,
durch einen VLIW-Prozessor zwar mit insgesamt sechs Takten schneller verarbeitet,
die vertikalen Verluste sind jedoch mit drei Takten unverändert vorhanden. Tatsäch-
lich verschärft sich die Situation sogar, weil zusätzlich zu den vertikalen nun die
sog. horizontalen Verluste ( horizontal waste , horizontal penalty ) in Kauf genommen
werden müssen [191]. Dies reduziert den effektiven Nutzen eines Prozessors und
vergrößert die Gesamtverluste ( opportunity cost [194]).
Ähnliches gilt für superskalare Prozessoren , die eine entsprechende Befehlsfolge
verarbeiten (Bild 3.46c). Durch das Umordnen der Befehle zur Laufzeit lassen sich
jedoch einige der horizontalen und vertikalen Verluste möglicherweise vermeiden.
Search WWH ::




Custom Search