Compositionality in Synchronous Data Flow: modular code generation from hierarchical SDF graphs

Hierarchical SDF models are not compositional: a composite SDF actor cannot be represented as an atomic SDF actor without loss of information that can lead to rate inconsistency or deadlock. Motivated by the need for incremental and modular code generation from hierarchical SDF models, we introduce in this paper DSSF profiles. DSSF (Deterministic SDF with Shared FIFOs) forms a compositional abstraction of composite actors that can be used for modular compilation. We provide algorithms for automatic synthesis of non-monolithic DSSF profiles of composite actors given DSSF profiles of their sub-actors. We show how different trade-offs can be explored when synthesizing such profiles, in terms of compactness (keeping the size of the generated DSSF profile small) versus reusability (maintaining necessary information to preserve rate consistency and deadlock-absence) as well as algorithmic complexity. We show that our method guarantees maximal reusability and report on a prototype implementation.

[1]  William B. Ackerman,et al.  Scenarios: A Model of Non-Determinate Computation , 1981, ICFPC.

[2]  Shuvra S. Bhattacharyya,et al.  Embedded Multiprocessors: Scheduling and Synchronization , 2000 .

[3]  Edward A. Lee,et al.  A Hierarchical Multiprocessor Scheduling Framework for , 1999 .

[4]  Edward A. Lee,et al.  Static Scheduling of Synchronous Data Flow Programs for Digital Signal Processing , 1989, IEEE Transactions on Computers.

[5]  Nancy A. Lynch,et al.  Hierarchical correctness proofs for distributed algorithms , 1987, PODC '87.

[6]  Eugene W. Stark,et al.  An Algebra of Dataflow Networks , 1995, Fundam. Informaticae.

[7]  Christian Haubelt,et al.  A generalized static data flow clustering algorithm for mpsoc scheduling of multimedia applications , 2008, EMSOFT '08.

[8]  Stavros Tripakis,et al.  Modularity vs. Reusability: Code Generation from Synchronous Block Diagrams , 2008, 2008 Design, Automation and Test in Europe.

[9]  Thomas A. Henzinger,et al.  Interface Theories for Component-Based Design , 2001, EMSOFT.

[10]  Joseph Sifakis,et al.  The Algebra of Connectors—Structuring Interaction in BIP , 2007, IEEE Transactions on Computers.

[11]  Farhad Arbab,et al.  Abstract Behavior Types: a foundation model for components and their composition , 2002, Sci. Comput. Program..

[12]  Edward A. Lee,et al.  Software Synthesis from Dataflow Graphs , 1996 .

[13]  Gilles Kahn,et al.  The Semantics of a Simple Language for Parallel Programming , 1974, IFIP Congress.

[14]  Stavros Tripakis,et al.  Modular Code Generation from Triggered and Timed Block Diagrams , 2008, 2008 IEEE Real-Time and Embedded Technology and Applications Symposium.

[15]  Thomas A. Henzinger,et al.  Interface automata , 2001, ESEC/FSE-9.

[16]  Edward A. Lee,et al.  Compositionality in synchronous dataflow : modular code generation from hierarchical SDF graphs , 2010 .

[17]  Edward A. Lee,et al.  A HIERARCHICAL MULTIPROCESSOR SCHEDULING FRAMEWORK FOR SYNCHRONOUS DATAFLOW GRAPHS , 1995 .

[18]  Stavros Tripakis,et al.  Modular code generation from synchronous block diagrams: modularity vs. code size , 2009, POPL '09.

[19]  Bengt Jonsson,et al.  A fully abstract trace model for dataflow and asynchronous networks , 1994, Distributed Computing.

[20]  Rudy Lauwereins,et al.  Cyclo-static data flow , 1995, 1995 International Conference on Acoustics, Speech, and Signal Processing.

[21]  William Thies,et al.  StreamIt: A Language for Streaming Applications , 2002, CC.

[22]  Hermann Kopetz,et al.  Elementary versus composite interfaces in distributed real-time systems , 1999, Proceedings. Fourth International Symposium on Autonomous Decentralized Systems. - Integration of Heterogeneous Systems -.

[23]  Marc Geilen,et al.  Reduction techniques for Synchronous Dataflow graphs , 2009, 2009 46th ACM/IEEE Design Automation Conference.

[24]  Edward A. Lee,et al.  Taming heterogeneity - the Ptolemy approach , 2003, Proc. IEEE.