388
7 Optimierung
des Energieverbrauchs um 76% berichtet [226]. Allerdings bringt die Umwandlung
üblicherweise einen gewissen Präzisionsverlust mit sich. Genaugenommen gibt es
einen Zielkonflikt zwischen verschiedenen Metriken zur Bewertung eines Entwurfs
(siehe Abschnitt 5.3 auf Seite 278), hier z.B. zwischen den Implementierungskosten
und der Qualität des Algorithmus (ausgedrückt z.B. in Form des Signal-RauschAbstandes (SNR), siehe Seite 156). Bei kleinen Wortlängen kann die Qualität signifikant beeinträchtigt werden. Als Folge können Gleitkomma-Datentypen durch
Festkomma-Datentypen ersetzt werden, dabei muss allerdings eine Analyse des
Qualitätsverlustes erfolgen. Ursprünglich wurde diese Ersetzung manuell durchgeführt. Dies ist jedoch ein aufwändiger und fehleranfälliger Vorgang. Daher hat
man versucht, diese Ersetzung mit Hilfe geeigneter Werkzeuge durchzuführen. Eines dieser Werkzeuge ist FRIDGE (Fixed-point pRogrammIng DesiGn Environment)
[588, 284]. Die Funktionalität von FRIDGE ist kommerziell als Teil der System
Studio-Umgebung der Firma Synopsys verfügbar [518]. SystemC kann dazu verwendet werden, Festkomma-Datentypen zu simulieren und so den Qualitätsverlust
zu prüfen.
Analysen der Zielkonflikte zwischen hinzugefügtem Rauschen und der benötigten Wortlänge wurden von Shi und Brodersen [486] und auch von Menard et al.
[391] vorgeschlagen. Das Thema ist insgesamt weiterhin Gegenstand der Forschung
(siehe z.B. Lee et al. [336]). Auch im Bereich des Maschinellen Lernens werden
entsprechende Verfahren untersucht [454].
7.2 Nebenläufigkeit von Tasks
Wie bereits auf Seite 41 beschrieben ist die Granularität eines Task-Graphen eine
der wichtigsten Eigenschaften von Tasks. Auch für hierarchische Task-Graphen kann
es nützlich sein, die Granularität der Knoten zu verändern. Die Partitionierung von
Spezifikationen in einzelne Tasks zielt dabei nicht notwendigerweise auf die Erreichung maximaler Effizienz der Implementierung ab. In der Spezifikationsphase sind
vielmehr eine klare Trennung von Belangen und ein sauberes Softwaremodell wichtiger als Details der Implementierung. Eine klare Trennung der Belange beinhaltet
beispielsweise eine klare Trennung der Implementierung abstrakter Datentypen von
ihrer Verwendung. Im Laufe des Entwurfs werden Tasks typischerweise zu Objekten
des Betriebssystems, also zu Prozessen (siehe Definition 4.1) bzw. Threads. Unsere
Spezifikation könnte die fließbandartige Verwendung mehrerer Tasks vorsehen, wobei die Verschmelzung einiger dieser Tasks den Aufwand zur Kontextumschaltung
zwischen Prozessen verringern könnte. Daher wird nicht notwendigerweise eine
Eins-zu-eins-Beziehung zwischen den in der Spezifikation beschriebenen Tasks und
den nachher tatsächlich implementierten Prozessen bestehen. Das bedeutet, dass eine Neustrukturierung von Tasks angebracht sein kann. Verschmelzen und Aufteilen
einzelner Tasks vor der Abbildung auf Prozesse erlaubt es tatsächlich, eine solche
Neustrukturierung zu realisieren.
Précédent

- 406/485

Suivant