Aktororientierte Synthese und Optimierung digitaler Hardware/Software-Systeme auf Systemebene
Zusammenfassung der Projektergebnisse
Eingebettete Systeme sind aus unserem täglichen Leben nicht mehr wegzudenken. Es handelt sich hierbei um spezialisierte Rechensysteme, die in Bereichen der Industrieautomatisierung, Transportwesen, Medizintechnik, Consumer-Elektronik und vielen mehr zu finden sind. Aufgrund ihrer Spezialisierung werden diese Systeme oftmals als digitales Hardware/Software-Systeme realisiert, also aus interagierenden Hardware- und Software-Komponenten. Bedingt durch die steigende Komplexität dieser Systeme ist deren Entwicklung auf unteren Abstraktionsebenen heutzutage zu zeitaufwändig, weshalb neue automatisierte Entwurfsverfahren auf Systemebene ansetzen müssen. Während Entwurfsverfahren für Hardware und Software auf niedrigeren Abstraktionsebenen mittlerweile weitgehend automatisiert sind, fehlt es nach wie vor an entsprechenden Verfahren für eingebettete Systeme auf Systemebene. Dies ist umso bedenklicher, da die Mehrheit aller Entscheidungen, welche auf dieser Ebene getroffen werden, einen enormen Einfluss auf die Qualität der entwickelten Implementierung haben. Schlimmer noch, Fehlentscheidungen lassen sich in späteren Entwurfsphasen nicht mehr mit vertretbarem Aufwand revidieren. Ohne automatisierte Entwurfsverfahren auf Systemebene wird es kaum gelingen, alternative Entwurfsentscheidungen frühzeitig zu antizipieren, um die Entwurfsqualität nachhaltig zu verbessern. Aus diesem Grund wurden im AEOS-Projekt neuartige Methoden zum automatischen Entwurf und Optimierung von eingebetteten digitalen Hardware/Software-Systemen auf der Systemebene konzipiert und untersucht. Durch die entwickelten Methoden ist es möglich, unterschiedliche, aber dennoch optimale Hardware/Software-Lösungen identifizieren zu können. Ausgangspunkt aller Untersuchungen war eine Modellierung der zu realisierenden Anwendung aus kommunizierenden Tasks, die selbstständig ihre Ausführung steuern können, sog. Aktoren. Mit diesem Aktororientierten Ansatz ist es möglich, sowohl die Implementierungsform jedes Aktors (Task) als Hardware- oder Softwarekomponenten als auch die entsprechende Kommunikationsform (Software/Software-, Hardware/Hardware- oder Hardware/Software-Kommunikation) zu wählen. In einer Entwurfsraumexploration erfolgt die Optimierung dieser Aufteilung. Um die Anwendbarkeit im industriellen Umfeld zu ermöglichen, erfolgte zuvor eine sprachbasierte Umsetzung des formalen Modells in einer C++-basierten Systembeschreibungssprache. Schwerpunkte innerhalb des AEOS-Projekts lagen auf Methoden zur Generierung von (1) Software, (2) Hardware und (3) Kommunikationsstrukturen aus Aktororientierten Modellen. Dabei wurde insbesondere darauf geachtet, dass existierende Entwurfswerkzeuge für tiefere Abstraktionsebenen angebunden werden können. Somit konnte sich die Forschung alleinig auf die wichtigen Fragestellungen zum Entwurf auf der Systemebene konzentrieren. Im Bereich der Softwaresynthese konnten hier neuartige Transformationen konzipiert und untersucht werden, die es erlauben, den Overhead bei der Ablaufplanung auf den besonders wichtigen Multi-Core-Prozessoren zu reduzieren und somit die Performance der Software steigern. Die grundlegende Idee hierbei ist, zunachst Aktoren mit statischem Kommunikationsverhalten zu identifizieren und diese zu einem größeren Verbundaktor zusammenzufassen. Hierbei können die zusammengefassten Aktoren quasi-statisch geplant und somit die Anzahl dynamischer Planungsentscheidungen reduziert werden. Im Bereich der Hardwaresynthese wurden Verfahren zur effizienten Umsetzung von Aktoren oder Gruppen von Aktoren in Hardware untersucht. Wichtige Ergebnisse konnten auf dem Gebiet des Cachings von Daten und des Ressourcen-Sharings erzielt werden. In der zweiten Projektphase wurden außerdem die Methoden des domänenspezifischen Clusterings, die in der ersten Phase für die Softwaresynthese entwickelt wurden, auf den Hardwareentwurf übertragen. Die entwickelten Verfahren zur Kommunikationssynthese basieren auf einem Bibliotheksansatz, der aufgrund der klaren Semantik der Aktor-Aktor-Kommunikation möglich ist. Eine besondere Herausforderung stellte die Unterstützung von Multi-Hop-Kommunikation dar, die mittels symbolischer Techniken in der Entwurfsraumexploration gelöst wurden. In der zweiten Phase erfolgte schließlich auch die Integration der entwickelten Clustering-Techniken in die Entwurfsexploration, um diese neuartige Transformation auch umfänglich in der Systemsynthese zu unterstützen. Innerhalb des AEOS-Projekts sind international sichtbare Forschungsbeiträge im Bereich des Entwurfs eingebetteter Systeme entstanden.
Projektbezogene Publikationen (Auswahl)
-
A Model-Based Inter-Process Resource Sharing Approach for High-Level Synthesis of Dataflow Graphs. In Proc. Electronic System Level Synthesis Conference, ESLSyn’12, pages 17–22, June 2012
Christian Zebelein, Joachim Falk, Christian Haubelt, and Jürgen Teich
-
Exploiting Model-Knowledge in High-Level Synthesis. In Jens Brandt and Klaus Schneider, editors, Methoden und Beschreibungssprachen zur Modellierung und Verifikation von Schaltungen und Systemen, Kaiserslautern, Germany, Mar. 5-7, 2012, MBMV’12, pages 181–191. Verlag Dr. Kovac, 2012
Christian Zebelein, Christian Haubelt, Joachim Falk, and Jürgen Teich
-
A Rule-Based Quasi-Static Scheduling Approach for Static Islands in Dynamic Dataflow Graphs. ACM Trans. Embedded Comput. Syst., 12(3):74:1–74:31, April 2013
Joachim Falk, Christian Zebelein, Christian Haubelt, and Jürgen Teich
-
Model-Based Representation of Schedules for Dataflow Graphs. In Christian Haubelt and Dirk Timmermann, editors, Methoden und Beschreibungssprachen zur Modellierung und Verifikation von Schaltungen und Systemen, Warnemünde, Germany, Mar. 12-14, 2013, MBMV’13, pages 105–115. Institut für Angewandte Mikroelektronik und Datentechnik, Universität Rostock, 2013
Christian Zebelein, Christian Haubelt, Joachim Falk, and Jürgen Teich
-
Representing Mapping and Scheduling Decisions within Dataflow Graphs. In Proc. Forum on Specification & Design Languages, FDL’13, pages 1–8, Piscataway, NJ, USA, September 2013. IEEE
Christian Zebelein, Christian Haubelt, Joachim Falk, Tobias Schwarzer, and Jürgen Teich
-
A Model-Based Approach for the Specification and Refinement of Streaming Applications. Dissertation, Universität Rostock, Fakultät für Informatik und Elektrotechnik, September 2014
Christian Zebelein
-
Model-Based Actor Multiplexing with Application to Complex Communication Protocols. In Proc. Design, Automation and Test in Europe, DATE’14, pages 1–4, March 2014
Christian Zebelein, Christian Haubelt, Joachim Falk, Tobias Schwarzer, and Jürgen Teich
-
Performance Analysis of Weakly-Consistent Scenario-Aware Dataflow Graphs. In Proc. Asilomar Conference on Signals, Systems, and Computers, ASILOMAR’14. IEEE Computer Society, November 2014
Marc Geilen, Joachim Falk, Christian Haubelt, Twan Basten, Bart Theelen, and Sander Stuijk
-
A Clustering-Based MPSoC Design Flow for Data Flow-Oriented Applications. Dissertation Friedrich-Alexander-Universität Erlangenu Nürnberg
Joachim Falk
-
Quasi-Static Scheduling of Data Flow Graphs in the Presence of Limited Channel Capacities. In Proc. 13th IEEE Symposium on Embedded Systems for Real-time Multimedia, ESTIMEDIA’15, pages 1–10. IEEE, October 2015
Joachim Falk, Tobias Schwarzer, Michael Glaß, Jürgen Teich, Christian Zebelein, and Christian Haubelt
-
Sensor-Based Online Hand Gesture Recognition on Multi-Core DSPs. In Proceedings of the Symposium on Signal Processing on Graphics Processing Units and Multicores, Orlando, Florida, USA, 2015
Florian Grützmacher, Johann-Peter Wolff, and Christian Haubelt
-
Throughput-optimizing Compilation of Dataflow Applications for Multi-Cores using Quasi-Static Scheduling. In Sander Stuijk, editor, Proc. of the 18th International Workshop on Software and Compilers for Embedded Systems, SCOPES’15, pages 68–75, Berlin, Germany, June 2015. ACM
Tobias Schwarzer, Joachim Falk, Michael Glaß, Jürgen Teich, Christian Zebelein, and Christian Haubelt