• Keine Ergebnisse gefunden

examen.press ist eine Reihe, die Theorie und Praxis aus allen Bereichen der Informatik für die Hochschulausbildung vermittelt.

N/A
N/A
Protected

Academic year: 2022

Aktie "examen.press ist eine Reihe, die Theorie und Praxis aus allen Bereichen der Informatik für die Hochschulausbildung vermittelt."

Copied!
15
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

eXamen.press

(2)

eXamen.press ist eine Reihe, die Theorie und

Praxis aus allen Bereichen der Informatik für

die Hochschulausbildung vermittelt.

(3)

Jürgen Teich · Christian Haubelt

Digitale Hardware/

Software-Systeme

Synthese und Optimierung

2., erweiterte Auflage

Mit 283 Abbildungen und 14 Tabellen

123

(4)

Jürgen Teich Christian Haubelt

Universität Erlangen-Nürnberg

Lehrstuhl Hardware-Software-Co-Design Am Weichselgarten 3

91058 Erlangen

teich@informatik.uni-erlangen.de haubelt@informatik.uni-erlangen.de

Bibliografische Information der Deutschen Nationalbibliothek

Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.

Die 1. Auflage dieses Buches erschien 1997 in der Reihe Springer-Lehrbuch unter dem Titel J. TeichDigitale Hardware/Software-Systeme. Synthese und Optimierung, ISBN 3-540-62433-3, Springer Berlin Heidelberg New York

ISSN 1614-5216

ISBN 978-3-540-46822-6 Springer Berlin Heidelberg New York

ISBN 3-540-62433-3 1. Auflage Springer Berlin Heidelberg New York

Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere die der Übersetzung, des Nachdrucks, des Vortrags, der Entnahme von Abbildungen und Tabellen, der Funksendung, der Mikroverfilmung oder der Vervielfältigung auf anderen We- gen und der Speicherung in Datenverarbeitungsanlagen, bleiben, auch bei nur auszugsweiser Verwertung, vorbehalten. Eine Vervielfältigung dieses Werkes oder von Teilen dieses Werkes ist auch im Einzelfall nur in den Grenzen der gesetzlichen Bestimmungen des Urheberrechts- gesetzes der Bundesrepublik Deutschland vom 9. September 1965 in der jeweils geltenden Fassung zulässig. Sie ist grundsätzlich vergütungspflichtig. Zuwiderhandlungen unterliegen den Strafbestimmungen des Urheberrechtsgesetzes.

Springer ist ein Unternehmen von Springer Science+Business Media springer.de

© Springer-Verlag Berlin Heidelberg 1997, 2007

Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften. Text und Abbildungen wurden mit größter Sorgfalt erarbeitet. Verlag und Autor können jedoch für eventuell verbliebene fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung noch irgendeine Haftung übernehmen.

Satz: Druckfertige Daten der Autoren

Herstellung: LE-TEX, Jelonek, Schmidt & Vöckler GbR, Leipzig Umschlaggestaltung: KünkelLopka Werbeagentur, Heidelberg Gedruckt auf säurefreiem Papier 33/3142 YL 5 4 3 2 1 0

(5)

Vorwort

Einbettung

Dieses Buch vermittelt den aktuellen Stand moderner Syntheseverfahren f¨ur digi- tale Systeme, die aus Hardware- und Softwarekomponenten bestehen, sogenannte Hardware/Software-Systeme.

Die Grundlagen der hier beschriebenen Verfahren sind Gegenstand zweier von Prof. Teich an der Friedrich-Alexander-Universit¨at Erlangen-N¨urnberg gehaltenen Vorlesungen, n¨amlich der Veranstaltung”Eingebettete Systeme“ (seit Wintersemes- ter 2003/2004) sowie der Vorlesung”Hardware-Software-Co-Design“ (seit Sommer- semester 2003). Der Inhalt der 1. Auflage diente bereits als Grundlage gleichnamiger Vorlesungen von Prof. Teich an der ETH Z¨urich (1995-1997) sowie an der Uni- versit¨at Paderborn (1998-2002). Vom Charakter her ist das Buch f¨ur den Kreis von Studierenden der Informatik, Elektrotechnik, Informations- und Kommunikations- technik sowie Mechatronik konzipiert und geeignet. Grundkenntnisse ¨uber Schal- tungsentwurf und Mikrorechnertechnik werden dabei weitgehend vorausgesetzt. Im Weiteren soll das Buch Entwicklungsingenieure in der Industrie ansprechen, die mit dem Entwurf und der Handhabung immer komplexer werdender technischer Syste- me konfrontiert sind.

Im Vordergrund dieses Buches stehen Verfahren zur Synthese und Optimierung von Hardware/Software-Systemen, die in einen technischen Kontext eingebunden sind, sog.eingebettete Systeme.

Der BegriffSynthesewird hier in Abgrenzung zum BegriffEntwurfverstanden:

W¨ahrend der Entwurf eines Systems entweder von Hand durchgef¨uhrt wird oder Tei- le des Entwurfs mit Hilfe von sog.CAD-Werkzeugen (engl.computer-aided design) unterst¨utzt werden (z. B. Simulationswerkzeugen [390]), impliziert Synthese einen vollautomatischen Entwurf, bei dem der Entwickler/die Entwicklerin nur noch mit den Aufgaben der anf¨anglichen Spezifikation, den Parametereinstellungen und der Exploration unterschiedlicher L¨osungen beauftragt ist [42].

In diesem Zusammenhang werden schwerpunktm¨aßig Entwurfsmethoden behan- delt, die zur ¨Ubersetzungszeit (engl.compile-time), also statisch, durchgef¨uhrt wer- den k¨onnen. Allerdings werden ebenfalls Modelle und Methoden zum Entwurf von reaktiven Systemenbzw.Echtzeitsystemenmit Betriebssystemkernen vorgestellt, bei denen statische Verfahren nur teilweise eingesetzt werden k¨onnen.

(6)

VI Vorwort

Abgrenzend sei an dieser Stelle bemerkt, dass die f¨ur den Entwurf digitaler Hardware/Software-Systeme essentiellen Aspekte der Spezifikationund der Verifi- kationden Rahmen dieses Buches ¨uberschreiten w¨urden. Sie allein bieten Stoff ge- nug f¨ur einen zweiten Band. Diese Themen k¨onnen deshalb (zugunsten einer einge- henden Betrachtung vonSynthese-undOptimierungsverfahren) nicht in der ihnen geb¨uhrenden Ausf¨uhrlichkeit behandelt werden.

Zusammenfassung

Vom didaktischen Standpunkt her zielt das Buch darauf, die Verwandtschaften der Synthese von Hardwarekomponenten und Softwarekomponenten eines Systems in einer einheitlichen Notation und mit einem einheitlichen Satz von Syntheseverfah- ren darzustellen. Zum Beispiel besch¨aftigen sich Lehrb¨ucher zur Synthese digitaler Systeme, wie beispielsweise [84] oder [122], fast ausschließlich mit der Synthese von Hardware. Die Bedeutung von Softwarerealisierungen und entsprechende Syn- theseprobleme werden nicht oder nur untergeordnet betrachtet.

Hier wird versucht, die Grundaufgaben der Synthese einheitlich und unabh¨angig davon darzustellen, ob das Ergebnis der Synthese Software oder Hardware ist. Als Grundaufgaben der Synthese werden in diesem Zusammenhang dieAllokationvon Ressourcen, dieAblaufplanungvonAufgabenauf Ressourcen und dieBindungvon Aufgaben an Ressourcen betrachtet. Aufgaben und Ressourcen weisen auf unter- schiedlichen Ebenen der Synthese unterschiedliche Granularit¨aten auf, z. B. sind Aufgaben auf derSystemebeneAlgorithmen, Prozesse, Tasks und Jobs, Ressourcen sind Prozessoren und ASICs (anwendungsspezifische integrierte Schaltungen); auf der Architekturebene stellen die Aufgaben beispielsweise elementare arithmetische und logische Operationen (z. B. Multiplikationen, Additionen etc.) und die Ressour- cen funktionale Einheiten (z. B. ALUs, Multiplizierer etc.) dar.

Es wird zu zeigen versucht, dass die Aufgaben der Synthese von Software und Hardware auf verschiedenen Abstraktionsebenen starke Verwandtschaften aufweisen (Kapitel 1). Unterschiedlich sind die Granularit¨aten der Aufgaben und Ressourcen, die Problemgr¨oßen, die Zielfunktionen und zum Teil die Algorithmen zur Optimie- rung.

Zun¨achst werden die Begriffe der Ablaufplanung, Allokation und Bindung auf einer Ebene erl¨autert, die unabh¨angig von der Implementierungsart und der Abstrak- tionsebene ist. Die wichtigsten Modelle zur Spezifikation, insbesondere Kontroll- Datenflussgraphenund verwandte Modelle, werden in Kapitel 2 vorgestellt. Dann werden die Syntheseprobleme formal definiert und eine Menge von Algorithmen vorgestellt, die die Syntheseprobleme auf Grundprobleme der kombinatorischen Op- timierung reduzieren (Kapitel 3–5). F¨ur diese Grundprobleme enth¨alt der Anhang komplexit¨atstheoretische Analysen und eine Bibliothek von Algorithmen.

Zum einen werden die Verfahren danach unterschieden, ob siekonstruktivoder transformatorisch(iterativ verbessernd) sind. Zum anderen werden Bindungs- und Ablaufplanungsprobleme klassifiziert. Sowohl exakte Verfahren als auch Heuristiken werden vorgestellt.

(7)

Vorwort VII Die Syntheseverfahren werden unabh¨angig von Implementierungsart und Ab- straktionsebene betrachtet. Danach folgt jeweils ein Kapitel ¨uber Syntheseverfahren bzw. Anpassungen, die speziell sind f¨ur die

Hardwaresynthese(Kapitel 6),

Softwaresynthese(Kapitel 7) bzw.

Systemsynthese(Kapitel 8).

Diesen Kapiteln sind Abschnitte angegliedert, die Ergebnisse eigener Forschungsar- beiten enthalten. Diese sowie Inhalte einer vertieften Betrachtungsweise bestimmter Themen sind mit dem Symbolgekennzeichnet: Sie w¨urden den Rahmen einer einf¨uhrenden Vorlesung ¨uberschreiten und sind aus zwei Gr¨unden als”eigenst¨andig“

zu bezeichnen:

Der fachkundige Leser kann die Abschnitte unabh¨angig von den Grundlagenka- piteln lesen.

Der (zun¨achst noch) nicht interessierte Leser kann entsprechende Abschnitte

¨uberspringen, ohne den”roten Faden“ zu verlieren.

Der Anhang enth¨alt s¨amtliche Notationen, grundlegende mathematische Defini- tionen und eine Bibliothek an Algorithmen zur Optimierung.

Danksagung

Der Text der ersten Auflage entstand w¨ahrend der T¨atigkeit des ersten Autors als Oberassistent am Institut f¨ur Technische Informatik und Kommunikationsnet- ze (TIK) der ETH Z¨urich in den Jahren 1995 und 1996. Erste Konzepte zu diesem Werk entstammen einem einj¨ahrigen Forschungsaufenthalt (im Jahr 1994) an der UC Berkeley als Postdoktorand der Deutschen Forschungsgemeinschaft (DFG).

Ein besonderer Dank hinsichtlich der ersten Auflage gilt meinem Doktorvater und Betreuer meiner Habilitation, Herrn Prof. Lothar Thiele. Ein Teil der hier eben- falls beschriebenen eigenen Forschungsergebnisse sind aus einer intensiven Zusam- menarbeit entstanden und entstammen meiner Habilitationsschrift [387]. In diesem Zusammenhang m¨ochte ich an dieser Stelle auch Herrn Prof. Wolfgang Rosenstiel und Herrn Prof. Gerhard Tr¨oster danken f¨ur ihre Kommentare und Ratschl¨age bei der Begutachtung meiner Arbeit.

Der Ansatz zur Systemsynthese mit evolution¨aren Algorithmen entstand in Zu- sammenarbeit mit meinem Kollegen Tobias Blickle. Anregungen zu dem Verfahren zur Architektursynthese mit ganzzahligen linearen Programmen erhielt ich ferner durch Diskussionen und Zusammenarbeit mit meinem fr¨uheren Kollegen Li Zhang.

Vielen Dank auch dem Co-Autor der zweiten Auflage, Herrn Dr. Christian Hau- belt f¨ur wertvolle Ideen und Vorschl¨age zur Erweiterung und Aktualisierung des vor- liegenden Stoffes, vor allem auf dem Gebiet der Systemsynthese in Kapitel 8.

Erlangen, im Herbst 2006 J. Teich

(8)

VIII Vorwort

Vorwort zur zweiten Auflage

Die Modernit¨at und Wichtigkeit von Verfahren zum ganzheitlichen Entwurf von Hard- und Software-Systemen hat sich in den letzten Jahren best¨atigt, sogar dras- tisch erh¨oht. So ist es technisch m¨oglich, nicht nur einen, sondern mehrere Prozes- soren zusammen mit anderen Hardware-Komponenten (engl. sog. Hardware-IPs)

¨uber Verbindungsnetzwerke auf einem Mikrochip der Gr¨oße eines Fingernagels zu integrieren, sog. Systems-on-a-Chip (SoC). Verfahren zur Synthese und Explora- tion unterschiedlicher Architekturauslegungen des Chips sowie Abbildungen der zu implementierenden Funktionen in Hard- und Software hinsichtlich unterschiedli- cher Kriterien, u. a. Kosten, Geschwindigkeit und Energieverbrauch, treten daher zunehmend in den Vordergrund der Forschung und langsam auch ihren Weg in die industrielle Praxis an. Auf den h¨oheren Abstraktionsebenen des Entwurfs von Hardware/Software-Systemen hat sich seit der letzten Auflage sehr viel getan, wes- halb sich der vorliegende Band in diesem Bereich am meisten von der ersten Auflage unterscheidet.

Weitere ¨Anderungen und Aktualisierungen betreffen die Bereiche der Architek- tursynthese und der Modellierung. Als unserer Ansicht nach f¨ur den Systementwurf bestens geeignet hat sich die SpracheSystemC[144, 35, 188] erwiesen. Die Vorteile dieser C++-basierten Entwurfssprache liegen in der Ausf¨uhrbarkeit und Simulierbar- keit, der Modellierbarkeit von Nebenl¨aufigkeit von Modulen und der Unabh¨angig- keit einer Beschreibung von einer anschließenden Implementierung eines Systems in einer Kombination aus Hardware- und Software-Modulen. Ebenfalls besitzt die Sprache Konstrukte zur Modellierung und Verfeinerung von allen wichtigen Daten- typen, die f¨ur den Softwareentwurf als auch den Hardwareentwurf wichtig sind. Aus diesem Grund haben wir uns entschieden, alle Beispiele in der vorliegenden zweiten Auflage in SystemC bzw. C++ zu beschreiben statt in VHDL in der ersten Auflage.

Im Kapitel 6 werden auch kommerzielle Werkzeuge vorgestellt, die in der Lage sind, aus SystemC-Beschreibungen Hardware-Module zu synthetisieren.

Wir sind der Auffassung, dass mit SystemC in Zukunft erstmals Potentiale des ganzheitlichen Entwurfs von eingebetteten elektronischen Systemen ausgehend von einer einheitlichen Entwurfssprache erkennbar werden. So wird SystemC im indus- triellen Umfeld bereits jetzt intensiv eingesetzt in unterschiedlichsten Entwurfssta- dien, u. a. zur funktionalen Simulation einer Spezifikation oder f¨ur die Analyse von wichtigen Systemeigenschaften (z. B. Geschwindigkeit, Kosten und Energie- verbrauch), insbesondere auch zur Analyse von Architekturvarianten. In einem ei- genen in diesem Buch beschriebenen Ansatz einer Entwurfsmethodik mit Namen SystemCoDesignerzeigen wir, dass unter Einsatz von leistungsf¨ahigen verf¨ugbaren Werkzeugen zur Architektursynthese und mit Hilfe von Verfeinerungen es in naher Zukunft m¨oglich sein wird, f¨ur viele SoC-Plattformen effiziente Zielimplementierun- gen automatisch zu generieren und somit die bekannte Kluft zwischen Modellierung und Implementierung zumindest zu verkleinern.

Erlangen, im Herbst 2006 J. Teich und C. Haubelt

(9)

Inhaltsverzeichnis

1 Einleitung. . . 1

1.1 Motivation . . . 1

1.2 Entwurfsmethodik . . . 7

1.2.1 Erfassen und simulieren . . . 7

1.2.2 Beschreiben und synthetisieren . . . 8

1.2.3 Spezifizieren, explorieren und verfeinern . . . 9

1.3 Abstraktion und Entwurfsrepr¨asentationen . . . 10

1.3.1 Modelle . . . 10

1.3.2 Synthese . . . 12

1.3.3 Optimierung . . . 26

1.4 Ubungen . . . .¨ 28

2 Modellierung . . . 37

2.1 Einleitung . . . 37

2.2 Klassifikation von Modellen . . . 39

2.3 Petri-Netzmodell . . . 40

2.3.1 Dynamische Eigenschaften von Petri-Netzen . . . 43

2.4 Kontrollflussmodelle . . . 45

2.4.1 Endliche Automaten (FSMs) . . . 45

2.4.2 Erweiterte Zustandsmaschinenmodelle . . . 47

2.4.3 Hierarchische, nebenl¨aufige Zustandsmaschinen . . . 49

2.4.4 Statecharts . . . 49

2.5 Datenflussmodelle . . . 54

2.5.1 Datenflussgraphen . . . 54

2.5.2 Markierte Graphen . . . 55

2.5.3 Synchrone Datenflussgraphen (SDF) . . . 56

2.6 Erweiterte Datenflussmodelle . . . 60

2.6.1 Verklemmungen in SDF-Graphen . . . 60

2.6.2 Reduktion des SDF-Modells auf markierte Graphen . . . 62

2.6.3 Zyklostatischer Datenfluss . . . 63

2.6.4 Dynamische Datenflussmodelle . . . 64

(10)

X Inhaltsverzeichnis

2.7 Strukturorientierte Modelle . . . 66

2.7.1 Komponenten-Verbindungsdiagramm (CCD) . . . 66

2.8 Heterogene Modelle . . . 66

2.8.1 Kontroll-Datenflussgraphen (CDFGs) . . . 68

2.8.2 Modellierung in SystemCoDesigner . . . 74

2.9 K¨onnen Programmiersprachen mehr? . . . 79

2.10 Literaturhinweise . . . 81

2.11 ¨Ubungen . . . 86

3 Synthese . . . 93

3.1 Fundamentale Syntheseprobleme . . . 93

3.1.1 Ablaufplanung . . . 94

3.1.2 Allokation . . . 96

3.1.3 Bindung . . . 97

3.2 Implementierung . . . 98

3.3 Problemklassen . . . 99

3.4 Ubungen . . . 101¨

4 Ablaufplanung. . . 103

4.1 Klassifikation von Ablaufplanungsproblemen . . . 103

4.1.1 Statische und dynamische Ablaufplanung . . . 103

4.1.2 Pr¨aemption . . . 104

4.1.3 Datenabh¨angigkeiten . . . 104

4.1.4 Ressourcenbeschr¨ankungen . . . 104

4.1.5 Periodische Ablaufplanung . . . 104

4.2 Klassifikation von Algorithmen . . . 105

4.3 Ablaufplanung ohne Ressourcenbeschr¨ankungen . . . 106

4.3.1 Der ASAP-Algorithmus . . . 106

4.3.2 Der ALAP-Algorithmus . . . 107

4.3.3 Ablaufplanung mit Zeitbeschr¨ankungen . . . 108

4.4 Ablaufplanung mit Ressourcenbeschr¨ankungen . . . 112

4.4.1 Erweiterte ASAP- und ALAP-Verfahren . . . 113

4.4.2 Listscheduling . . . 113

4.4.3 Force-directed scheduling . . . 117

4.4.4 Ganzzahlige lineare Programmierung . . . 121

4.5 Periodische Ablaufplanungsprobleme. . . 124

4.5.1 Iterative Algorithmen . . . 125

4.5.2 Iterative Ablaufplanung ohne Ressourcenbeschr¨ankungen . . 132

4.5.3 Verfahren zur Reduktion vonPmin . . . 138

4.5.4 Iterative Ablaufplanung mit Ressourcenbeschr¨ankungen . . . 143

4.5.5 ILP-Modell zur Ablaufplanung iterativer Algorithmen . . . 143

4.5.6 Beispiel: FIR-Filter . . . 145

4.6 Ressourcetypbindung. . . 147

4.7 Dynamische Ablaufplanung . . . 149

4.7.1 Definitionen . . . 151

(11)

Inhaltsverzeichnis XI

4.7.2 Optimierungskriterien bei dynamischen

Ablaufplanungsproblemen . . . 154

4.7.3 Dynamische Ablaufplanung ohne Echtzeitanforderungen . . . 155

4.7.4 Dynamische Ablaufplanung mit Echtzeitanforderungen . . . . 160

4.7.5 Periodische, dynamische Ablaufplanung . . . 165

4.8 Literaturhinweise, Ausblicke und Werkzeuge . . . 170

4.9 Ubungen . . . 175¨

5 Bindung . . . 181

5.1 Graphentheoretische Betrachtung von Bindungsproblemen . . . 181

5.2 Bindung nach Ablaufplanung . . . 185

5.3 Periodische Bindungsprobleme . . . 188

5.4 Bindung hierarchischer Graphen . . . 192

5.5 Bindung vor Ablaufplanung. . . 192

5.6 Partitionierungsalgorithmen . . . 193

5.6.1 Konstruktive Verfahren zur Partitionierung . . . 195

5.6.2 Iterative Verfahren zur Partitionierung . . . 198

5.6.3 Evolution¨are Algorithmen . . . 199

5.6.4 Partitionierung mit linearer Programmierung . . . 199

5.6.5 Algorithmen zur HW/SW-Partitionierung . . . 200

5.7 Entwurfssysteme zur Partitionierung . . . 202

5.7.1 Funktionale Partitionierung im Hardwareentwurf . . . 203

5.7.2 ILP-basierte Ans¨atze f¨ur Multi-Chip-Entw¨urfe . . . 205

5.7.3 Entwurfssysteme zur Hardware/Software-Partitionierung . . . 206

5.7.4 ILP-basierte Ans¨atze zur HW/SW-Partitionierung . . . 208

5.8 Literaturhinweise und Zusammenfassung . . . 208

5.9 Ubungen . . . 210¨

6 Architektursynthese. . . 217

6.1 Was ist Architektursynthese? . . . 218

6.1.1 Operationswerk . . . 219

6.1.2 Steuerwerk . . . 221

6.2 Sch¨atzung der Entwurfsqualit¨at . . . 223

6.2.1 Kostenmaße . . . 224

6.2.2 Performanzmaße . . . 224

6.2.3 Absch¨atzung der TaktperiodeT . . . 227

6.2.4 Absch¨atzung der LatenzL. . . 229

6.2.5 Absch¨atzung der Ausf¨uhrungszeit . . . 229

6.2.6 Absch¨atzung der Kosten . . . 229

6.3 Energie- und Leistungsverbrauchsmanagement . . . 232

6.3.1 Energie- und Leistungsverbrauch . . . 233

6.3.2 Leistungseffizienz . . . 233

6.3.3 Quellen des Leistungsverbrauchs . . . 236 6.3.4 Strukturelle Maßnahmen zur Leistungsverbrauchsreduktion . 237

(12)

XII Inhaltsverzeichnis

6.3.5 Maßnahmen auf Verhaltensebene zur Reduktion des

Leistungsverbrauchs . . . 240

6.3.6 Sch¨atzung des mittleren Leistungsverbrauchs . . . 243

6.4 Notation und Problemstellung der Architektursynthese . . . 246

6.5 Spezialoperationen und Spezialressourcen . . . 250

6.5.1 Verkettung funktionaler Operatoren . . . 250

6.5.2 Module mit Fließbandverarbeitung . . . 252

6.5.3 Funktionale Fließbandverarbeitung und Schleifenfaltung . . . 252

6.6 Verfahren zur Architektursynthese . . . 255

6.6.1 Erweiterung bekannter Ablaufplanungsverfahren . . . 255

6.6.2 ILP-Modelle zur Architektursynthese . . . 255

6.7 ILP-Modelle zur Architektursynthese . . . 257

6.7.1 Zeitschlitzmodelle . . . 257

6.7.2 Flussmodell . . . 262

6.8 Das Flussmodell . . . 266

6.9 Analyse des Flussmodells. . . 271

6.9.1 Polyedertheorie . . . 271

6.9.2 Analyse des L¨osungspolytops des Fluss-ILP . . . 273

6.10 Verbesserung der Modellstruktur. . . 280

6.10.1 Elimination von Flussvariablen . . . 280

6.10.2 Anpassung der Konstantenδ(vi,vj,k). . . 283

6.10.3 Elimination redundanter Ungleichungen . . . 285

6.10.4 Hinzuf¨ugen g¨ultiger Ungleichungen . . . 286

6.11 Fließbandverarbeitung . . . 288

6.11.1 Ressourcen mit Fließbandverarbeitung . . . 288

6.11.2 Funktionale Fließbandverarbeitung und Schleifenfaltung . . . 289

6.11.3 ASAP- und ALAP-Zeiten bei iterativer Ablaufplanung . . . 292

6.11.4 Ablaufplanung mit vollstatischer Bindung. . . 293

6.12 Relaxationsverfahren. . . 296

6.13 Beispiele . . . 297

6.13.1 L¨oser einer gew¨ohnlichen Differentialgleichung . . . 297

6.13.2 Elliptisches Wellenfilter . . . 299

6.14 Literaturhinweise und Werkzeuge . . . 301

6.15 ¨Ubungen . . . 309

7 Softwaresynthese. . . 315

7.1 Merkmale und Klassifikation von Prozessoren . . . 316

7.1.1 Klassifikation von Prozessoren . . . 317

7.1.2 Kriterienbasierte Prozessorwahl . . . 319

7.1.3 Architekturparameter von ASIPs . . . 320

7.2 Einf¨uhrung Compiler . . . 322

7.2.1 Umgebungen . . . 323

7.2.2 Sprachkonzepte . . . 324

7.2.3 Analyse von Quellprogrammen . . . 324

7.2.4 Phasen (Analyse, Codegenerierung, Optimierung) . . . 328

(13)

Inhaltsverzeichnis XIII

7.3 Zwischendarstellungen . . . 331

7.3.1 Drei-Adress-Code . . . 331

7.3.2 Kontrollflussgraphen und DAGs . . . 334

7.4 Codegenerierung und Codeoptimierung . . . 338

7.4.1 Eine einfache Zielsprache . . . 340

7.4.2 Allokation, Ablaufplanung und Bindung . . . 341

7.5 Registervergabe und Registerbindung . . . 346

7.5.1 Lebenszeitenanalyse . . . 346

7.5.2 Registervergabe und -bindung durch Graphf¨arbung . . . 348

7.5.3 Globale Registervergabe . . . 349

7.6 Optimale Registerbindung mit ILP-Techniken. . . 352

7.6.1 Existierende Ans¨atze . . . 352

7.6.2 Exakte minimale F¨arbung mit ILP-Modell . . . 356

7.6.3 k-F¨arbung und Registerabwurf . . . 358

7.6.4 Optimalek-F¨arbung mit ILP-Modell . . . 359

7.6.5 Modellierung von Register-Register-Umspeicherungen . . . 362

7.6.6 Bestimmung optimaler Registerabwurfzeitpunkte . . . 365

7.6.7 Modellierung heterogener Registerstrukturen . . . 368

7.6.8 Ausblicke . . . 369

7.7 Codeselektion: Mustererkennung und Baumtransformation . . . 370

7.8 Dynamische Programmierung . . . 375

7.8.1 Prinzip der dynamischen Programmierung . . . 376

7.8.2 Codegenerierung mit dynamischer Programmierung . . . 377

7.9 Maschinenunabh¨angige Optimierung . . . 380

7.9.1 Transformationen auf Grundbl¨ocken . . . 381

7.9.2 Globale Optimierung . . . 383

7.10 Maschinenabh¨angige Optimierung . . . 384

7.11 Softwaresynthese f¨ur eingebettete Prozessoren . . . 386

7.11.1 Anpassbarkeit von Compilern . . . 386

7.11.2 Unterschiede der Codegenerierung . . . 387

7.11.3 Retargetierbare Compiler f¨ur RISC/CISC . . . 388

7.11.4 Retargetierbare Compiler f¨ur DSPs . . . 390

7.11.5 Retargetierbare Compiler f¨ur VLIW-artige Architekturen . . . 393

7.11.6 Kommerzielle retargetierbare Compiler . . . 400

7.12 Softwaresynthese auf Modulebene . . . 401

7.12.1 Betriebssysteme . . . 401

7.12.2 Echtzeitbetriebssysteme . . . 403

7.12.3 Codegenerierung f¨ur datenflussdominante Systeme . . . 404

7.12.4 Externe Ereignisse . . . 412

7.12.5 Ressourcenzugriffsprotokolle und Ablaufplanungsanomalien . . . 415

7.13 Literaturhinweise und Zusammenfassung . . . 418

7.14 ¨Ubungen . . . 422

(14)

XIV Inhaltsverzeichnis

8 Systemsynthese . . . 427

8.1 Modell der Systemsynthese . . . 430

8.1.1 Spezifikation eines Problems . . . 431

8.1.2 Spezifikation von Zielarchitekturen . . . 431

8.1.3 Spezifikation von Abbildungen . . . 433

8.1.4 Implementierung . . . 434

8.2 Entwurfsraumexploration . . . 439

8.2.1 Optimierungsstrategien und Zielfunktionen . . . 442

8.2.2 Sch¨atzung der Entwurfsqualit¨at . . . 445

8.2.3 Strategien zur ¨Uberdeckung und zum Beschneiden des Entwurfsraums . . . 447

8.3 Entwurfsraumexploration mit evolution¨aren Algorithmen . . . 450

8.3.1 Optimierung mit evolution¨aren Algorithmen . . . 452

8.3.2 Codierung von Implementierungen . . . 454

8.3.3 Fitnessfunktionen und Beschr¨ankungen . . . 460

8.3.4 Parameter des evolution¨aren Algorithmus . . . 463

8.3.5 Fallstudie . . . 463

8.4 Modellerweiterungen . . . 471

8.4.1 Mehrstufiger Spezifikationsgraph . . . 471

8.4.2 Hierarchische Spezifikationsgraphen . . . 473

8.5 Verbesserte ¨Uberdeckung des Entwurfsraums . . . 479

8.5.1 Symbolische Techniken in der Entwurfsraumexploration . . . 479

8.5.2 Pareto-Front-Arithmetik . . . 485

8.6 Entwurfssysteme zur Systemsynthese . . . 490

8.7 Zusammenfassung und Literaturhinweise . . . 493

8.8 Ubungen . . . 498¨

Anhang . . . 501

Notation. . . 501

A.1 Logik . . . 501

A.2 Mengen . . . 502

A.3 Relationen und Funktionen . . . 502

A.4 Lineare Algebra . . . 503

A.5 Ganzzahlige Algebra . . . 503

A.6 Graphen . . . 503

A.6.1 Ungerichtete Graphen . . . 504

A.6.2 Gerichtete Graphen . . . 506

A.6.3 Perfekte Graphen . . . 507

A.7 Polyedertheorie . . . 508

A.8 Kombinatorische Optimierungsprobleme . . . 510

A.8.1 Entscheidungsprobleme und Optimierungsprobleme . . . 510

A.8.2 Algorithmen . . . 510

A.8.3 Klassifikation von Problemen . . . 511

(15)

Inhaltsverzeichnis XV

Fundamentale Optimierungsalgorithmen . . . 513

B.1 Lineare und ganzzahlige lineare Programmierung . . . 514

B.1.1 Umformungen linearer Programme . . . 515

B.1.2 Algorithmen zur L¨osung von LPs . . . 515

B.1.3 Algorithmen zur L¨osung von ILPs . . . 516

B.2 Simulated annealing . . . 519

B.3 Evolution¨are Algorithmen . . . 520

B.4 Mehrzieloptimierung . . . 522

B.4.1 Leistungsbewertung von Optimierungsalgorithmen . . . 523

B.4.2 Evolution¨are Algorithmen f¨ur die Mehrzieloptimierung . . . . 527

Graphenalgorithmen. . . 531

C.1 K¨urzeste- und L¨angste-Pfad-Probleme . . . 531

C.1.1 KPP auf azyklischen Graphen: Topologische Sortierung . . . . 532

C.1.2 KPP auf zyklischen Graphen . . . 532

C.1.3 LPP . . . 537

C.1.4 L¨osung von LPP (KPP) durch lineare Programmierung . . . . 537

C.2 Graphf¨arbung . . . 538

C.2.1 F¨arbung triangulierter Graphen . . . 539

C.2.2 Periodische F¨arbungsprobleme . . . 541

C.3 Cliquepartitionierung . . . 544

Literatur. . . 547

Sachverzeichnis. . . 571

Referenzen

ÄHNLICHE DOKUMENTE

FileOutputStream: Ein FileOutputStream ist ein Objekt welches weiss, wie Bytes in ein File geschrieben werden.. Methode in

Auch wenn eine eindeutige Korrelation, wie sie hier behauptet wird, nicht in jedem Fall nachweisbar ist, so lässt sich doch feststellen, dass in Lateinamerika während des

ches. 100—4 Baggesen, I., humoristische Reisen durch Danemark, Deutschland und die Schweiz. 10Z Dessen Parthenais, oder die Alpenreise. I., hinterlassene bisher noch

Bei WintiMed machen 28 Hausärztinnen und Hausärzte mit, die den Facharzttitel für Innere oder für Allgemeine Medizin (oder eine äquivalente Weiterbildung) ha- ben..

Dies gilt auch für das Ziel 'Sparsamkeit der öffentlichen Hand', welches lediglich als Anerkennung der Begrenztheit verfügbarer Ressourcen betrachtet wird und

An zweiter Stelle wurden für den edoc- Server Leitlinien definiert, die beschrei- ben, welche Publikationen unter welchen Bedingungen über den edoc-Server ver- öffentlicht werden

 In Grids steckt ein großes Potential für viele Arten der Nutzung – Ob und wann es jedoch voll ausgeschöpft werden kann, lässt sich im Moment noch nicht

http://bit.ly/2HkjCLI (kurze Animationsfilme zu verschiedenen Themen, Lexik, Grammatik) Речевые ситуации auf YouTube (kurze Animationsfilme zur Entwicklung des Sprechens)