Detailseite
Projekt Druckansicht

Modellbasierter Entwurf von Hardware-Software-Systemen mit synchronen Sprachen

Fachliche Zuordnung Rechnerarchitektur, eingebettete und massiv parallele Systeme
Förderung Förderung von 2007 bis 2014
Projektkennung Deutsche Forschungsgemeinschaft (DFG) - Projektnummer 46404603
 
Erstellungsjahr 2014

Zusammenfassung der Projektergebnisse

In der ersten Förderperiode des Projekts wurden bereits erste Verfahren zur Übersetzung von synchronen Programmen in Software und Hardware entwickelt. Dabei wurden die synchronen Programme zunächst in atomare bedingte Aktionen als interne Repräsentation des Compilers übersetzt, was sogar mit einer modularen Vorgehensweise möglich wurde. In der zweiten Förderperiode, über die hier berichtet wird, wurden diese Verfahren ausgebaut, um die manchmal unnötig starken Restriktionen des synchronen Ausführungsmodells umgehen zu können und somit asynchrone parallele Abläufe daraus extrahieren zu können. Dazu wurden im Wesentlichen zwei Richtungen verfolgt, die jeweils von einem wissenschaftlichen Mitarbeiter bearbeitet wurden: Die erste Richtung konzentrierte sich auf die effiziente Synthese von datengetriebenen asynchronen Prozessnetzwerken. Dabei wurden zunächst die Datenabhängigkeiten der atomaren bedingten Aktionen analysiert, um möglichst unabhängige Prozesse zu generieren. Darauf aufbauend wurden viele von parallelen Prozessorarchitekturen her bekannte Optimierungen wie spekulative und „Out-of-Order“ Ausführungen auf die Prozessnetzwerke übertragen. Um die Performanz weiter zu steigern, hat sich gezeigt, dass im Wesentlichen der Kommunikationsaufwand zwischen den Prozessen zu reduzieren ist. Die zweite Richtung führte Untertakte als neues Konzept der Verfeinerung der Reaktionsschritte des synchronen Programms ein, womit innerhalb der synchronen Ausführung voneinander unabhängige Abläufe erzeugt wurden, die asynchron zueinander ablaufen können. Mit diesem Konzept werden dem Programmierer explizite Sprachmittel zur Verfügung gestellt, mit denen zeitlich lose gekoppelte Threads beschrieben werden können, ohne dass dabei der Determinismus dieser Systeme aufgegeben werden müsste. Neben der Syntax und Semantik neuer Anweisungen mussten hierzu grundsätzlich neue Verfahren zur Übersetzung in die Zwischensprache, zur Simulation und zur Kausalitätsanalyse entwickelt werden. Die damit gewonnenen Spielräume konnten zur Optimierung von daraus generierter paralleler Software genutzt werden, da hiermit unnötige Synchronisationen vermieden werden können. Zusätzlich zeigte sich, dass die atomaren bedingten Aktionen mit Untertakten ein universelles Berechnungsmodell darstellen, mit dem sich viele weitere Beschreibungssprachen darstellen und integrieren lassen.

Projektbezogene Publikationen (Auswahl)

  • A Formal Semantics of Clock Refinement in Imperative Synchronous Languages. In: Gomes, L. (Hrsg.) ; Khomenko, V. (Hrsg.) ; Fernandes, J. (Hrsg.): Application of Concurrency to System Design (ACSD). Braga, Portugal : IEEE Computer Society, 2010, S. 157–168
    Gemünde, M. ; Brandt, J. ; Schneider, K.
  • Compilation of Imperative Synchronous Programs with Refined Clocks. In: Carloni, L. (Hrsg.) ; Jobstmann, B. (Hrsg.): Formal Methods and Models for Codesign (MEMOCODE). Grenoble, France : IEEE Computer Society, 2010, S. 209–218
    Gemünde, M. ; Brandt, J. ; Schneider, K.
  • Dependency-Driven Distribution of Synchronous Programs. In: Hinchey, M. et al. (Hrsg.): Distributed and Parallel Embedded Systems (DIPES). Brisbane, Queensland, Australia : International Federation for Information Processing (IFIP), 2010, S. 169–180
    Baudisch, D. ; Brandt, J. ; Schneider, K.
  • Multithreaded Code from Synchronous Programs: Generating Software Pipelines for OpenMP. In: Dietrich, M. (Hrsg.): Methoden und Beschreibungssprachen zur Modellierung und Verifikation von Schaltungen und Systemen (MBMV). Dresden, Germany : Fraunhofer Verlag, 2010, S. 11–20
    Baudisch, D. ; Brandt, J. ; Schneider, K.
  • Causality Analysis of Synchronous Programs with Refined Clocks. In: High Level Design Validation and Test Workshop (HLDVT). Napa, California, USA : IEEE Computer Society, 2011, S. 25–32
    Gemünde, M. ; Brandt, J. ; Schneider, K.
  • Schizophrenia and Causality in the Context of Refined Clocks. In: Morawiec, A. (Hrsg.) ; Hinderscheit, J. (Hrsg.) ; Ghenassia, O. (Hrsg.): Forum on Specification and Design Languages (FDL). Oldenburg, Germany : IEEE Computer Society, 2011, S. 1–8
    Gemünde, M. ; Brandt, J. ; Schneider, K.
  • Translating Synchronous Systems to Data-Flow Process Networks. In: Yeo, S.-S. (Hrsg.) ; Vaidya, B. (Hrsg.) ; Papadopoulos, G. (Hrsg.): Parallel and Distributed Computing, Applications and Technologies (PDCAT). Gwangju, Korea : IEEE Computer Society, 2011, S. 354–361
    Baudisch, D. ; Brandt, J. ; Schneider, K.
  • Efficient Handling of Arrays in Dataflow Process Networks. In: International Conference on Embedded Software and Systems (ICESS). Liverpool, United Kingdom : IEEE Computer Society, 2012, S. 1395–1402
    Baudisch, D. ; Brandt, J. ; Schneider, K.
  • Clock Refinement in Imperative Synchronous Languages. In: EURASIP Journal on Embedded Systems 3 (2013), August, S. 1–21
    Gemünde, M. ; Brandt, J. ; Schneider, K.
  • Evaluation of Speculation in Out-Of-Order Execution of Synchronous Data-Flow Networks. In: International Journal of Parallel Programming (IJPP) (2013), October, S. 1–44
    Baudisch, D. ; Schneider, K.
  • Constructive Polychronous Systems. In: Science of Computer Programming (SCICO) (2014)
    Talpin, J.-P. ; Brandt, J. ; Gemünde, M. ; Schneider, K. ; Shukla, S.
  • Reducing the Communication of Message-Passing Systems Synthesized from Synchronous Programs. In: Euromicro International Conference on Parallel, Distributed, and Network-Based Processing (PDP). Turin, Italy : IEEE Computer Society, 2014
    Baudisch, D. ; Bai, Y. ; Schneider, K.
 
 

Zusatzinformationen

Textvergrößerung und Kontrastanpassung