Data Partit ioning for DSP Software Synthesis

Many modern DSP processors have the ability to access multiple memory banks in parallel. Efficient compiler techniques are needed to maximize such parallel memory operations to enhance performance. On the other hand, stringent memory capacity is also an important requirement to meet, and this complicates our ability to lay out data for parallel accesses. We examine these problems, data partitioning and minimization, jointly in the context of software synthesis from dataflow representations of DSP algorithms. Moreover, we exploit specific characteristics in such dataflow representations to streamline the data partitioning process. Based on these observations on practical dataflow-based DSP benchmarks, we develop simple, efficient partitioning algorithms that come very close to optimal solutions. Our experimental results show 19.4% average improvement over traditional coloring strategies with much higher efficiency than ILP-based optimal partitioning computation. This is especially useful during design space exploration, when many candidate synthesis solutions are being evaluated iteratively.

[1]  Rajeev Barua,et al.  Heterogeneous memory management for embedded systems , 2001, CASES '01.

[2]  Paul Chow,et al.  Exploiting dual data-memory banks in digital signal processors , 1996, ASPLOS VII.

[3]  B. D. Bunday,et al.  Logic-Based 0-1 Constraint Programming , 1996 .

[4]  Preeti Ranjan Panda,et al.  Memory bank customization and assignment in behavioral synthesis , 1999, 1999 IEEE/ACM International Conference on Computer-Aided Design. Digest of Technical Papers (Cat. No.99CH37051).

[5]  B. Wess,et al.  Integrated approach to optimized code generation for heterogeneous-register architectures with multiple data-memory banks , 2001, Proceedings 14th Annual IEEE International ASIC/SOC Conference (IEEE Cat. No.01TH8558).

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

[7]  Yunheung Paek,et al.  Efficient register and memory assignment for non-orthogonal architectures via graph coloring and MST algorithms , 2002, LCTES/SCOPES '02.

[8]  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.

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

[10]  Robert E. Tarjan,et al.  Depth-First Search and Linear Graph Algorithms , 1972, SIAM J. Comput..

[11]  David S. Johnson,et al.  Computers and In stractability: A Guide to the Theory of NP-Completeness. W. H Freeman, San Fran , 1979 .

[12]  Edward A. Lee,et al.  Direct synthesis of optimized DSP assembly code from signal flow block diagrams , 1992, [Proceedings] ICASSP-92: 1992 IEEE International Conference on Acoustics, Speech, and Signal Processing.

[13]  Rajeev Barua,et al.  Compiler Support for Scalable and Efficient Memory Systems , 2001, IEEE Trans. Computers.

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

[15]  Rainer Leupers,et al.  Variable partitioning for dual memory bank DSPs , 2001, 2001 IEEE International Conference on Acoustics, Speech, and Signal Processing. Proceedings (Cat. No.01CH37221).

[16]  Erik Brockmeyer,et al.  Data and memory optimization techniques for embedded systems , 2001, TODE.

[17]  Sharad Malik,et al.  Simultaneous reference allocation in code generation for dual data memory bank ASIPs , 2000, TODE.

[18]  Nikil D. Dutt,et al.  On-chip vs. off-chip memory: the data partitioning problem in embedded processor-based systems , 2000, TODE.