Static scheduling of synchronous data flow programs for digital signal processing
IEEE Transactions on Computers
Synchronous programming with events and relations: the SIGNAL language and its semantics
Science of Computer Programming
Type inclusion constraints and type inference
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Simplifying subtyping constraints
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Proceedings of the first ACM SIGPLAN international conference on Functional programming
YAPI: application modeling for signal processing systems
Proceedings of the 37th Annual Design Automation Conference
Proceedings of the 37th Annual Design Automation Conference
Types and programming languages
Types and programming languages
IEEE Transactions on Computers
Embedded Control: From Asynchrony to Synchrony and Back
EMSOFT '01 Proceedings of the First International Workshop on Embedded Software
StreamIt: A Language for Streaming Applications
CC '02 Proceedings of the 11th International Conference on Compiler Construction
Globally-asynchronous locally-synchronous systems (performance, reliability, digital)
Globally-asynchronous locally-synchronous systems (performance, reliability, digital)
Application-domain-driven system design for pervasive video processing
Ambient intelligence
Towards a higher-order synchronous data-flow language
Proceedings of the 4th ACM international conference on Embedded software
Synchronization of periodic clocks
Proceedings of the 5th ACM international conference on Embedded software
Formal methods for scheduling of latency-insensitive designs
EURASIP Journal on Embedded Systems
Compositionality of Statically Scheduled IP
Electronic Notes in Theoretical Computer Science (ENTCS)
Abstraction of Clocks in Synchronous Data-Flow Systems
APLAS '08 Proceedings of the 6th Asian Symposium on Programming Languages and Systems
Specification and verification of time requirements with CCSL and Esterel
Proceedings of the 2009 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
Low-level programming in Hume: an exploration of the HW-Hume level
IFL'06 Proceedings of the 18th international conference on Implementation and application of functional languages
Analysis of Scheduled Latency Insensitive Systems with Periodic Clock Calculus
Journal of Electronic Testing: Theory and Applications
A real-time architecture design language for multi-rate embedded control systems
Proceedings of the 2010 ACM Symposium on Applied Computing
Proceedings of the 7th ACM international conference on Computing frontiers
Lucy-n: a n-synchronous extension of Lustre
MPC'10 Proceedings of the 10th international conference on Mathematics of program construction
Multi-task Implementation of Multi-periodic Synchronous Programs
Discrete Event Dynamic Systems
Sessional dataflow: short paper
DAMP '12 Proceedings of the 7th workshop on Declarative aspects and applications of multicore programming
Static scheduling of latency insensitive designs with Lucy-n
Proceedings of the International Conference on Formal Methods in Computer-Aided Design
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
MPC'12 Proceedings of the 11th international conference on Mathematics of Program Construction
Design of streaming applications on MPSoCs using abstract clocks
DATE '12 Proceedings of the Conference on Design, Automation and Test in Europe
Space optimal solution for data reordering in streaming applications on NoC based MPSoC
Journal of Systems Architecture: the EUROMICRO Journal
Explicit routing schemes for implementation of cellular automata on processor arrays
Natural Computing: an international journal
Hi-index | 0.00 |
The design of high-performance stream-processing systems is a fast growing domain, driven by markets such like high-end TV, gaming, 3D animation and medical imaging. It is also a surprisingly demanding task, with respect to the algorithmic and conceptual simplicity of streaming applications. It needs the close cooperation between numerical analysts, parallel programming experts, real-time control experts and computer architects, and incurs a very high level of quality insurance and optimization.In search for improved productivity, we propose a programming model and language dedicated to high-performance stream processing. This language builds on the synchronous programming model and on domain knowledge -- the periodic evolution of streams -- to allow correct-by-construction properties to be proven by the compiler. These properties include resource requirements and delays between input and output streams. Automating this task avoids tedious and error-prone engineering, due to the combinatorics of the composition of filters with multiple data rates and formats. Correctness of the implementation is also difficult to assess with traditional (asynchronous, simulation-based) approaches. This language is thus provided with a relaxed notion of synchronous composition, called n-synchrony: two processes are n-synchronous if they can communicate in the ordinary (0-)synchronous model with a FIFO buffer of size n.Technically, we extend a core synchronous data-flow language with a notion of periodic clocks, and design a relaxed clock calculus (a type system for clocks) to allow non strictly synchronous processes to be composed or correlated. This relaxation is associated with two sub-typing rules in the clock calculus. Delay, buffer insertion and control code for these buffers are automatically inferred from the clock types through a systematic transformation into a standard synchronous program. We formally define the semantics of the language and prove the soundness and completeness of its clock calculus and synchronization transformation. Finally, the language is compared with existing formalisms.