Information Technology Reference
In-Depth Information
ration in Ausführung befinden darf, muss zusätzlich gelten, dass B 1 und C 1 nicht
von der Divisionseinheit zu verarbeiten sind. Im Konfliktfall ist also ggf. zu warten.
Genauso wie die Befehle in einem skalaren Prozessor verschränkt ausgeführt wer-
den können, ist dies auch mit einem VLIW-Prozessor möglich. Falls pro Takt zwei
Operationen startbar sind, lassen sich die Befehlsfolgen, z.B. wie in Bild 3.47c dar-
gestellt, verschränkt ausführen und dadurch die ursprünglich auftretenden vertikalen
Verluste vermeiden. Aufgrund der Abhängigkeit zwischen A 1 und A 2 ist es jedoch
nicht möglich, die beiden Operationen in einem Befehl zu codieren, weshalb hori-
zontale Verluste in Kauf zu nehmen sind.
Ein Nachteil des hier beschriebenen verschränkten Multithreadings ist, dass bei
einem taktweisen Kontextwechsel die Mindestanzahl der pseudoparallel auszufüh-
renden Befehlsfolgen N gleich der Taktanzahl sein muss, die zur Lösung von belie-
bigen Konflikten abzuwarten ist. Nur so kann auf konfliktlösende Maßnahmen, wie
Sprungvorhersage oder Bypässe verzichtet werden. Falls im Extremfall also nur
eine einzelne Befehlsfolge ausgeführt wird, darf aufgrund von potentiellen Abhän-
gigkeiten jeweils nur ein Befehl pro N Takte gestartet werden. In Bild 3.47 mindert
dies den Befehlsdurchsatz um zwei Drittel dessen, was durchschnittlich maximal
erreichbar wäre (die entsprechenden Befehle sind schraffiert dargestellt).
Ein Nachteil aller, also nicht nur der verschränkt arbeitenden Multithread-Architek-
turen ist, dass sich die Wirkung des Daten - bzw. Befehlscaches vermindert. Einer-
seits müssen die beschränkt verfügbaren Kapazitäten zur gleichzeitigen Speiche-
rung der Befehle und Daten unterschiedlicher Programme verwendet werden. Ande-
rerseits können sich die Zugriffe gegenseitig beeinflussen, indem die zu einem Pro-
gramm im Cache befindlichen Befehle oder Daten durch ein anderes Programm ver-
drängt werden. Besonders deutlich wird dies, wenn ein einzelnes Programm doppelt
mit unterschiedlichen Daten gestartet wird (z.B. zwei parallele Datenbankanfragen)
und der Datencache direkt zuordnend ist (direct mapped data cache). Da in den Pro-
grammen jeweils dieselben Adressbezüge codiert sind (die sich jedoch auf unter-
schiedliche Daten beziehen), werden einmal adressierte und in den Datencache gela-
dene Inhalte sofort wieder daraus verdrängt, wenn das parallel ausgeführte Pro-
gramm auf das entsprechende Datum zugreift ( aliasing ). Deshalb ist es möglich,
dass die Programme langsamer bearbeitet werden als bei einer streng sequentiellen
Ausführung. Der angedeutete Effekt lässt sich jedoch mindern, wenn man möglichst
große Caches mit möglichst vielen Wegen verwendet.
Beispiel 3.7. Heterogenous Element Processor . Einer der ersten Rechner mit verschränktem Mul-
tithreading ist der 1982 erschienene Heterogenous Element Processor HEP von Denelcor, dessen
Entwicklung durch Burden Smith bereits 1974 begonnen wurde. In Maximalkonfiguration besteht
der Rechner aus 16 als Process Execution Moduls (PEM) bezeichneten Prozessoren, 128 Daten-
speichermodulen und vier IO-Prozessoren. Ein einzelnes Process Execution Module kann bis zu
128 Prozesse quasiparallel ausführen. Maximal 64 Prozesse sind in einer Task zusammengefasst
und werden durch ein 64 Bit breites Task-Statuswort TSW beschrieben, in dem die zu verwenden-
den Basisadressen und Limits des Befehls-, Daten- und Registerspeichers sowie die Basisadresse
des Konstantenspeichers codiert sind. Jeder einzelne Prozess wird außerdem durch ein Prozesssta-
tuswort PSW beschrieben.
Search WWH ::




Custom Search