25.10.2012 Aufrufe

Generierung lokaler Optimierungen - IPD Snelting

Generierung lokaler Optimierungen - IPD Snelting

Generierung lokaler Optimierungen - IPD Snelting

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.

4 Implementierung<br />

Das Grundprinzip dieses Ansatzes orientiert sich, wie bei Bansal und Aiken [3], an der<br />

Idee von Massalin [14]. Es besteht darin, durch Aufzählung aller Muster und dem Vergleich<br />

ihrer Semantik, jeweils ein günstigstes und damit optimales Muster aus der Menge<br />

der semantisch äquivalenten Muster zu ermitteln und aus den Äquivalenzbeziehungen<br />

zwischen den Mustern einer solchen Menge, Ersetzungsregeln abzuleiten.<br />

Die Idee ist nun, die einzelnen Muster nacheinander aufzuzählen und dabei deren Kosten,<br />

stufenweise, bis zu einer definierten Kostenobergrenze zu steigern. Hierdurch ergibt sich<br />

eine Sortierung der Muster nach ihrem Kostenwert costM und es wird gewährleistet,<br />

dass immer das günstigste Muster zuerst behandelt wird. Nach der Erzeugung eines<br />

neuen Musters wird dieses mit den bereits erzeugten, optimalen Mustern hinsichtlich<br />

der Semantik verglichen. Besteht eine Äquivalenz, kann daraus eine Optimierungsregel<br />

oder eine Transformationsregel abgeleitet werden.<br />

Aus dieser Grundidee ergibt sich eine logische Strukturierung in die Hauptkomponenten:<br />

Mustererzeugung Erzeugt schrittweise, aufbauend auf bereits vorhandenen Mustern<br />

neue Muster. Die Kosten der erzeugten Muster nehmen dabei stufenweise, bis zu<br />

einer definierten Kostenobergrenze zu. Jedes Muster wird zur <strong>Generierung</strong> neuer<br />

Muster mit höheren Kosten der Menge der bereits erzeugten Muster hinzugefügt.<br />

Musteranalyse Prüft jedes neu erzeugte Muster zunächst dahingehend, ob eine bereits<br />

erzeugte Regel anwendbar ist. Ist dies der Fall, wird das Muster von der Musteranalyse<br />

nicht weiter berücksichtigt. Andernfalls wird geprüft, ob bereits ein anderes,<br />

semantisch äquivalentes, optimales Muster vorhanden ist. Dies ist Aufgabe des<br />

Vorabtests und des Erfüllbarkeitstests. Existiert ein solches Muster, wird eine neue<br />

Regel erzeugt. Wird kein semantisch äquivalentes, optimales Muster gefunden, so<br />

wird das Muster zur Menge der optimalen Muster MOpt hinzugefügt 1 .<br />

In Abbildung 4.1 ist der Ablauf in einem Übersichtsdiagramm dargestellt. Eine ausführliche<br />

Beschreibung der einzelnen Komponenten, sowie diverser Erweiterungen und Einschränkungen<br />

wird in den folgenden Abschnitten gegeben.<br />

4.2 Mustererzeugung<br />

4.2.1 Kostenmodell und Mustergröße<br />

Ein Kostenmodell wird benötigt, um die einzelnen Muster untereinander vergleichen und<br />

jeweils ein optimales Muster auswählen zu können. Massalin [14] verwendet hierzu die<br />

Anzahl der Instruktionen, Denali [11] vergleicht die zu erwartenden Taktzyklen einer<br />

1 Aufgrund der Aufzählungsreihenfolge ist sichergestellt, dass kein günstigeres Muster mit gleicher Se-<br />

24<br />

mantik existiert

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!