ABSTRACT

This chapter outlines the interaction between the construction of valid schedules for synchronous dataflow graphs and the memory requirements of the compiled code. Dataflow is a natural model of computation to use as the underlying model for a actor-oriented programming environments for designing digital signal processing (DSP) systems. An actor fires in a dataflow graph by removing tokens from its input edges and producing tokens on its output edges. The stream of tokens produced this way corresponds naturally to a discrete time signal in a DSP system. DSP software tools, like tools in other embedded systems domains, are often allowed to spend more time for optimization of code than what is required by low-complexity, deterministic algorithms, such as those that are typically employed in compilers for general purpose platforms. Since off-chip memory accesses involve significant execution time penalties, and large power consumption costs, subroutine insertion enables embedded software developers to exploit an important part of the overall design space.