02.08.2013 Aufrufe

Grundlagen paralleler Architekturen

Grundlagen paralleler Architekturen

Grundlagen paralleler Architekturen

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Vorlesung Rechnerarchitektur 2 Seite 21<br />

Lehrstuhl für Rechnerarchitektur - Universität Mannheim<br />

<strong>Grundlagen</strong> <strong>paralleler</strong> <strong>Architekturen</strong><br />

Maschinenbefehle - Instruction Level Parallelism (ILP)<br />

Analyseverfahren von Compilern, die über Kontrollflußgrenzen hinausgehen, wurden zur<br />

Erkennung und Nutzung dieser Parallelitätsebene entwickelt [Nic85] [Gas89] [Ess90].<br />

Auch Schleifeniterationen von Berechnungen [Lil94] kann man auf diese Weise für die Ausnutzung<br />

der Parallelität heranziehen und dann ergeben sich erhebliche Gewinne, die zum<br />

Teil natürlich von den zugrunde liegenden Datenstrukturtypen stammen. Im Gegensatz zu<br />

den Vektoroperationen können aber auf dieser Ebene die Anweisungen innerhalb der Schleifen<br />

von größerer Allgemeinheit sein und müssen nicht auf Vektoroperationen abbildbar<br />

sein.<br />

Die Nutzung dieser Parallelitätsebene führt zu mehreren recht unterschiedlichen Architekturformen.<br />

Ihre gemeinsame Eigenschaft ist die enge Kopplung der Verarbeitungseinheiten,<br />

die den Aufwand für die Ablaufsteuerung und die Synchronisation zwischen den Verarbeitungseinheiten<br />

gering hält. Auch die mehrfädigen <strong>Architekturen</strong> (multi-threaded Architectures,<br />

MTA) nutzen diese Parallelitätsebene und versuchen die Latenzzeit der<br />

Synchronisation in der Bearbeitungszeit weiterer Basisblöcke zu verstecken.<br />

Die Parallelitätsebene der Maschinenbefehle enthält die Elementaroperation, die zur Lösung<br />

von arithmetischen Ausdrücken benötigt werden. Da diese Datenabhängigkeiten aufweisen,<br />

ist eine der wichtigsten Aufgaben des Compilers eine Datenabhängigkeitsanalyse zu erstellen,<br />

die es ermöglicht, den Abhängigkeitsgraph so zu transformieren [Kuc78], daß sich ein<br />

hohes Maß an konkurrenten Operationen ergibt.<br />

Die Ausnutzung dieser Parallelität geschieht durch parallele Funktionseinheiten innerhalb<br />

der Verarbeitungseinheiten. Die Ablaufsteuerung wird vom Compiler bereits zur Übersetzungszeit<br />

geplant oder zur Laufzeit von effizienten Hardwareresourcen innerhalb der Verarbeitungseinheiten<br />

ausgeführt. Beispiele hierfür sind VLIW-Prozessoren (‘very long<br />

instruction word’), superskalare Prozessoren und Pipeline-Prozessoren. Allerdings sind die<br />

Verarbeitungseinheiten, mit denen diese Parallelitätsebene gut ausnutzbar ist, immer nur so<br />

gut, wie der Compiler die dafür notwendigen Optimierungen beherrscht.<br />

Die feinkörnigen Datenflußsysteme nutzen ebenfalls diese Ebene, erkennen aber die parallel<br />

ausführbaren Operationen zur Laufzeit durch die in Hardware realisierte Datenflußsynchronisation.<br />

(Datenfluss vs. Kontrollfluss)<br />

WS03/04

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!