Address assignment sensitive variable partitioning and scheduling for DSPS with multiple memory banks

Multiple memory banks design is employed in many high performance DSP processors. This architectural feature supports higher memory bandwidth by allowing multiple data memory access to be executed in parallel. Dedicated address generation units (AQUs) are commonly presented in DSPs to perform address arithmetic in parallel to the main datapath. Address assignment, optimization of memory layout of program variables to reduce address arithmetic instruction, has been studied extensively on single memory architecture. Make effective use of AQUs on multiple memory banks is a great challenge to compiler design and has not been studied previously. In this paper, we exploit address assignment with variable partitioning for scheduling on DSP architectures with multiple memory banks and AQUs. Our approach is built on novel graph models which capture both parallelism and serialism demands. An efficient scheduling algorithm, Address Assignment Sensitive Variable Partitioning (AASVP), is proposed to best leverage both multiple memory banks and AQUs. Experimental results show significant improvement compare to existing methods.

[1]  Edwin Hsing-Mean Sha,et al.  Optimizing Address Assignment and Scheduling for DSPs With Multiple Functional Units , 2006, IEEE Transactions on Circuits and Systems II: Express Briefs.

[2]  Edwin Hsing-Mean Sha,et al.  Efficient variable partitioning and scheduling for DSP processors with multiple memory modules , 2004, IEEE Transactions on Signal Processing.

[3]  Giorgio Gambosi,et al.  Complexity and Approximation , 1999, Springer Berlin Heidelberg.

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

[5]  R. Prim Shortest connection networks and some generalizations , 1957 .

[6]  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).

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

[8]  Taewhan Kim,et al.  Address assignment combined with scheduling in DSP code generation , 2002, DAC '02.