Information Technology Reference
In-Depth Information
Befehlsdecoder die Ladeoperation erst starten kann, wenn die Multiplikation das
Fließband verlässt.
Während die Cray-1 pro Zeiteinheit nur auf maximal einen Vektor im Hauptspeicher
zugreifen kann, lassen sich von der Cray Y-MP bis zu vier Speicherzugriffe durch-
führen [23]. Die fünf Vektoroperationen zur Berechnung der in Bild 3.6 angegebe-
nen Formel sind daher wie in Bild 3.6c links angedeutet, parallel bearbeitbar (abge-
sehen von einem durch die Latenzzeiten bedingten Versatz). Die Multiplikation lässt
sich sogar versatzlos parallel zum Laden des Vektors Y ausführen, da die beiden
Operationen keinerlei Abhängigkeiten zueinander aufweisen.
Die Gesamtbearbeitungszeit in Takten ergibt sich somit als Summe der zu verknüp-
fenden Vektorelemente n und den Latenzzeiten für die Lade-, Additions- und Spei-
chereoperation sowie dem Maximum aus den Latenzzeiten für die Lade- bzw. Mul-
tiplikationsoperation. Die Art, in der die einzelnen Verarbeitungseinheiten verkettet
werden, ist in Bild 3.6c rechts angedeutet. Zu beachten ist, dass wegen der vonein-
ander abweichenden Laufzeiten der Verarbeitungseinheiten dabei gleichzeitig auf
verschiedene Elemente der einzelnen Vektoren zugegriffen wird.
Das Verketten von Verarbeitungseinheiten lässt sich auf unterschiedliche Weise
erreichen. Am einfachsten ist es zu realisieren, wenn die parallel auszuführenden
Operationen implizit und statisch in einem Befehl codiert sind. Beim Erkennen
eines solchen Befehls, werden die beteiligten Verarbeitungseinheiten über Querver-
bindungen verschaltet und die auszuführenden Einzeloperationen über ein mehr-
schrittig arbeitendes Steuerwerk parallel generiert.
Nachteilig an einer solchen Realisierung ist, dass sich nur Operationsfolgen verket-
tet bearbeiten lassen, für die im Programmiermodell ein Befehl definiert ist. Da
außerdem möglicherweise eine Vielzahl von Operanden benötigt wird, muss der
Decoder in der Lage sein, ein komplexes Befehlsformat zu analysieren. Dies kann
die Geschwindigkeit, mit der der Vektorprozessor insgesamt arbeitet, verlangsamen.
Schließlich ist die Codeerzeugung durch einen Übersetzer aufwendiger zu imple-
mentieren als ohne entsprechende Befehle, da automatisch erkannt werden muss, in
welchen Situationen sich die zusammengesetzten Befehle verwenden lassen.
Die aufgezählten Nachteile sind durch eine dynamische Verkettung vermeidbar.
Zunächst werden hierzu in der Decodierphase die Registeradressen der zu verknüp-
fenden Operanden mit den Ergebnisadressen aller in Ausführung befindlichen Vek-
toroperationen verglichen. Bei Übereinstimmung wird die im Decoder verweilende
Operation verzögert, bis das erste Element des benötigten Ergebnisses verfügbar ist.
Anschließend startet die Ausführung der Operation, wobei die Elemente des zu ver-
arbeitenden Vektors über eine vom Decoder geschaltete Querverbindung (vergleich-
bar mit Bypässen) in die zuständige Verarbeitungseinheit geführt werden.
Falls in der Decodierphase festgestellt wird, dass die benötigten Operanden entwe-
der keine Abhängigkeiten zu in Ausführung befindlichen Operationen aufweisen
oder dass zwar Abhängigkeiten bestehen, die entsprechenden Vektoren jedoch
bereits zum Teil erzeugt wurden, lässt sich die Operation sogar verzögerungsfrei
starten. Voraussetzung ist natürlich, das genügend Registerports zur Verfügung ste-
Search WWH ::




Custom Search