Software synthesis and code generation for signal processing systems

The role of software is becoming increasingly important in the implementation of digital signal processing (DSP) applications. As this trend intensifies, and the complexity of applications escalates, we are seeing an increased need for automated tools to aid in the development of DSP software. This paper reviews the state of the art in programming language and compiler technology for DSP software implementation. In particular, we review techniques for high-level block-diagram-based modeling of DSP applications; the translation of block-diagram specifications into efficient C programs using global target-independent optimization techniques; and the compilation of C programs into streamlined machine code for programmable DSP processors using architecture-specific and retargetable back-end optimizations. We also point out important directions for further investigation.

[1]  J. Huisman The Netherlands , 1996, The Lancet.

[2]  Kurt Keutzer,et al.  Instruction selection using binate covering for code size optimization , 1995, ICCAD.

[3]  Edward A. Lee,et al.  A scheduling framework for minimizing memory requirements of multirate DSP systems represented as dataflow graphs , 1993, Proceedings of IEEE Workshop on VLSI Signal Processing.

[4]  Hugo De Man,et al.  A graph based processor model for retargetable code generation , 1996, Proceedings ED&TC European Design and Test Conference.

[5]  Heinrich Meyr,et al.  Optimum vectorization of scalable synchronous dataflow graphs , 1993, Proceedings of International Conference on Application Specific Array Processors (ASAP '93).

[6]  Prakash Panangaden,et al.  Minimal Memory Schedules for Dataflow Networks , 1993, CONCUR.

[7]  Praveen K. Murthy,et al.  The CBP parameter-a useful annotation to aid block-diagram compilers for DSP , 2000, 2000 IEEE International Symposium on Circuits and Systems. Emerging Technologies for the 21st Century. Proceedings (IEEE Cat No.00CH36353).

[8]  Rainer Leupers,et al.  Retargetable Code Generation for Digital Signal Processors , 1997, Springer US.

[9]  T. C. May,et al.  Instruction-set matching and selection for DSP and ASIP code generation , 1994, Proceedings of European Design and Test Conference EDAC-ETC-EUROASIC.

[10]  Rainer Leupers,et al.  Constraint driven code selection for fixed-point DSPs , 1999, DAC '99.

[11]  Edward A. Lee,et al.  Optimal parenthesization of lexical orderings for DSP block diagrams , 1995, VLSI Signal Processing, VIII.

[12]  B. Wess Automatic instruction code generation based on trellis diagrams , 1992, [Proceedings] 1992 IEEE International Symposium on Circuits and Systems.

[13]  J. T. Buck Static scheduling and code generation from dynamic dataflow graphs with integer-valued control streams , 1994, Proceedings of 1994 28th Asilomar Conference on Signals, Systems and Computers.

[14]  Rainer Leupers,et al.  A uniform optimization technique for offset assignment problems , 1998, Proceedings. 11th International Symposium on System Synthesis (Cat. No.98EX210).

[15]  Praveen K. Murthy,et al.  Shared Memory Implementations of Synchronous Dataflow Specifications Using Lifetime Analysis Techniques , 1999 .

[16]  Edward A. Lee,et al.  Generating compact code from dataflow specifications of multirate signal processing algorithms , 1995, IEEE Transactions on Circuits and Systems I Fundamental Theory and Applications.

[17]  Bruce D. Shriver,et al.  Some Experiments in Local Microcode Compaction for Horizontal Machines , 1981, IEEE Transactions on Computers.

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

[19]  Edward A. Lee Consistency in Dataflow Graphs , 1991, IEEE Trans. Parallel Distributed Syst..

[20]  Rainer Leupers,et al.  Time-constrained code compaction for DSPs , 1997, IEEE Trans. Very Large Scale Integr. Syst..

[21]  Soonhoi Ha,et al.  Memory efficient software synthesis from dataflow graph , 1998, Proceedings. 11th International Symposium on System Synthesis (Cat. No.98EX210).

[22]  Gregory J. Chaitin,et al.  Register allocation and spilling via graph coloring , 2004, SIGP.

[23]  Christopher W. Fraser,et al.  Engineering a simple, efficient code-generator generator , 1992, LOPL.

[24]  Edward A. Lee,et al.  Ptolemy: A Framework for Simulating and Prototyping Heterogenous Systems , 2001, Int. J. Comput. Simul..

[25]  Jürgen Teich,et al.  Evolutionary algorithms for the synthesis of embedded software , 2000, IEEE Trans. Very Large Scale Integr. Syst..

[26]  Kurt Keutzer,et al.  Storage assignment to decrease code size , 1996, TOPL.

[27]  Edward A. Lee,et al.  Generating compact code from dataflow specifications of multirate signal processing algorithms , 1995 .

[28]  Sharad Malik,et al.  Using register-transfer paths in code generation for heterogeneous memory-register architectures , 1996, DAC '96.

[29]  Heinrich Meyr,et al.  Retiming of DSP programs for optimum vectorization , 1994, Proceedings of ICASSP '94. IEEE International Conference on Acoustics, Speech and Signal Processing.

[30]  Robert Bregovic,et al.  Multirate Systems and Filter Banks , 2002 .

[31]  Edward A. Lee,et al.  Joint Minimization of Code and Data for Synchronous Dataflow Programs , 1997, Formal Methods Syst. Des..

[32]  Rudy Lauwereins,et al.  Data memory minimisation for synchronous data flow graphs emulated on DSP-FPGA targets , 1997, DAC.

[33]  E.A. Lee,et al.  Synchronous data flow , 1987, Proceedings of the IEEE.

[34]  Ken Kennedy,et al.  Optimal register assignment to loops for embedded code generation , 1996, TODE.

[35]  Edward A. Lee Programmable dsp architectures: part ii , 1988 .

[36]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[37]  Ahmed Amine Jerraya,et al.  Address calculation for retargetable compilation and exploration of instruction-set architectures , 1996, DAC '96.

[38]  Jürgen Teich,et al.  Optimized software synthesis for DSP using randomization techniques: (revised version of TIK Report 32) , 1999 .

[39]  Srinivas Devadas,et al.  ISDL: an instruction set description language for retargetability , 1997, DAC.

[40]  Jochen A. G. Jess,et al.  Conflict Modelling and Instruction Scheduling in Code Generation for In-House DSP Cores , 1995, 32nd Design Automation Conference.

[41]  Guang R. Gao,et al.  Well-behaved dataflow programs for DSP computation , 1992, [Proceedings] ICASSP-92: 1992 IEEE International Conference on Acoustics, Speech, and Signal Processing.

[42]  Alfred V. Aho,et al.  Code generation using tree matching and dynamic programming , 1989, ACM Trans. Program. Lang. Syst..

[43]  Sharad Malik,et al.  Optimal code generation for embedded memory non-homogeneous register architectures , 1995 .

[44]  R. Hartmann,et al.  Combined scheduling and data routing for programmable ASIC systems , 1992, [1992] Proceedings The European Conference on Design Automation.

[45]  Paul N. Hilfinger,et al.  Lazy Data Routing And Greedy Scheduling For Application-specific Signal Processors , 1988, [1988] Proceedings of the 21st Annual Workshop on Microprogramming and Microarchitecture - MICRO '21.

[46]  Rudy Lauwereins,et al.  Buffer memory requirements in DSP applications , 1994, Proceedings of IEEE 5th International Workshop on Rapid System Prototyping.

[47]  E.A. Lee,et al.  A comparison of synchronous and cycle-static dataflow , 1995, Conference Record of The Twenty-Ninth Asilomar Conference on Signals, Systems and Computers.

[48]  Rainer Leupers,et al.  Algorithms for address assignment in DSP code generation , 1996, Proceedings of International Conference on Computer Aided Design.

[49]  Praveen K. Murthy,et al.  A buffer merging technique for reducing memory requirements of synchronous dataflow specifications , 1999, Proceedings 12th International Symposium on System Synthesis.

[50]  D. H. Bartley,et al.  Optimizing stack frame accesses for processors with restricted addressing modes , 1992, Softw. Pract. Exp..

[51]  Edward A. Lee Representing and exploiting data parallelism using multidimensional dataflow diagrams , 1993, 1993 IEEE International Conference on Acoustics, Speech, and Signal Processing.

[52]  Gert Goossens,et al.  Chess: retargetable code generation for embedded DSP processors , 1994, Code Generation for Embedded Processors.

[53]  S.S. Bhattacharyya,et al.  A hierarchical multiprocessor scheduling system for DSP applications , 1995, Conference Record of The Twenty-Ninth Asilomar Conference on Signals, Systems and Computers.

[54]  Nikil D. Dutt,et al.  A Unified code generation approach using mutation scheduling , 1994, Code Generation for Embedded Processors.

[55]  B. Wess,et al.  Optimal DSP memory layout generation as a quadratic assignment problem , 1997, Proceedings of 1997 IEEE International Symposium on Circuits and Systems. Circuits and Systems in the Information Age ISCAS '97.

[56]  Gary William Grewal,et al.  An integrated approach to retargetable code generation , 1994, Proceedings of 7th International Symposium on High-Level Synthesis.

[57]  F. H. van Eemeren,et al.  Analysis and evaluation , 1995 .

[58]  D.R. O'Hallaron,et al.  The Assign Parallel Program Generator , 1991, The Sixth Distributed Memory Computing Conference, 1991. Proceedings.

[59]  Jürgen Teich,et al.  Multidimensional Exploration of Software Implementations for DSP Algorithms , 2000, J. VLSI Signal Process..

[60]  Heinrich Meyr,et al.  High level software synthesis for signal processing systems , 1992, [1992] Proceedings of the International Conference on Application Specific Array Processors.

[61]  Srinivas Devadas,et al.  Analysis and Evaluation of Address Arithmetic Capabilities in Custom DSP Architectures , 1997, Des. Autom. Embed. Syst..

[62]  Lothar Nowak Graph based retargetable microcode compilation in the MIMOLA design system , 1987, MICRO 20.

[63]  Edward A. Lee,et al.  Scheduling dynamic dataflow graphs with bounded memory using the token flow model , 1993, 1993 IEEE International Conference on Acoustics, Speech, and Signal Processing.

[64]  Guang R. Gao,et al.  Minimizing memory requirements in rate-optimal schedules , 1994, Proceedings of IEEE International Conference on Application Specific Array Processors (ASSAP'94).

[65]  Edwin A. Harcourt,et al.  Generation of software tools from processor descriptions for hardware/software codesign , 1997, DAC.

[66]  Edward A. Lee,et al.  DSP Processor Fundamentals , 1997 .

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

[68]  Edward A. Lee,et al.  Synthesis of Embedded Software from Synchronous Dataflow Specifications , 1999, J. VLSI Signal Process..

[69]  Praveen K. Murthy,et al.  Shared memory implementations of synchronous dataflow specifications , 2000, DATE '00.

[70]  Clifford Liem,et al.  Trends In Embedded Systems Technology , 1996 .

[71]  B. A. Minch,et al.  IEEE Transactions on Circuits and Systems II: Analog and Digital Signal Processing , 1998 .

[72]  Giovanni De Micheli,et al.  Synthesis and Optimization of Digital Circuits , 1994 .

[73]  Guang R. Gao,et al.  Well-Behaved Programs for DSP Computation , 1992 .

[74]  E.A. Lee Programmable DSP architectures. II , 1989, IEEE ASSP Magazine.

[75]  Sharad Malik,et al.  Memory bank and register allocation in software synthesis for ASIPs , 1995, ICCAD.

[76]  Srinivas Devadas,et al.  Instruction selection, resource allocation, and scheduling in the AVIV retargetable code generator , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).

[77]  Jürgen Teich,et al.  Optimized software synthesis for digital signal processing algorithms: an evolutionary approach , 1998, 1998 IEEE Workshop on Signal Processing Systems. SIPS 98. Design and Implementation (Cat. No.98TH8374).

[78]  Jean A. Peperstraete,et al.  Cycle-static dataflow , 1996, IEEE Trans. Signal Process..

[79]  Edward A. Lee,et al.  APGAN and RPMC: Complementary Heuristics for Translating DSP Block Diagrams into Efficient Software Implementations , 1997, Des. Autom. Embed. Syst..

[80]  Rainer Leupers,et al.  Time-constrained code compaction for DSPs , 1995 .

[81]  Thomas Bäck,et al.  Evolutionary computation: comments on the history and current state , 1997, IEEE Trans. Evol. Comput..

[82]  Kurt Keutzer,et al.  Code Optimization Techniques for Embedded DSP Microprocessors , 1995, 32nd Design Automation Conference.

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

[84]  Jan M. Rabaey,et al.  VLSI design and implementation fuels the signal-processing revolution , 1998 .

[85]  Heinrich Meyr,et al.  Scheduling for optimum data memory compaction in block diagram oriented software synthesis , 1995, 1995 International Conference on Acoustics, Speech, and Signal Processing.

[86]  Edward A. Lee,et al.  Gabriel: a design environment for DSP , 1989, IEEE Micro.

[87]  Catherine H. Gebotys,et al.  An efficient model for DSP code generation: performance, code size, estimated energy , 1997, Proceedings. Tenth International Symposium on System Synthesis (Cat. No.97TB100114).

[88]  Edward A. Lee,et al.  An extension of multidimensional synchronous dataflow to handle arbitrary sampling lattices , 1996, 1996 IEEE International Conference on Acoustics, Speech, and Signal Processing Conference Proceedings.

[89]  Shuvra S. Bhattacharyya,et al.  Parameterized dataflow modeling of DSP systems , 2000, 2000 IEEE International Conference on Acoustics, Speech, and Signal Processing. Proceedings (Cat. No.00CH37100).

[90]  Shuvra S. Bhattacharyya,et al.  Quasi-static scheduling of reconfigurable dataflow graphs for DSP systems , 2000, Proceedings 11th International Workshop on Rapid System Prototyping. RSP 2000. Shortening the Path from Specification to Prototype (Cat. No.PR00668).