DSPs with dual memory banks offer high memory bandwidth, which is required for high-performance applications. However, such DSP architectures pose problems for C compilers, which are mostly not capable of partitioning program variables between memory banks. As a consequence, time-consuming assembly programming is required for an efficient coding of time-critical algorithms. This paper presents a new technique for automatic variable partitioning between memory banks in compilers, which leads to a higher utilization of available memory bandwidth in the generated machine code. We present experimental results obtained by integrating the proposed technique into an existing C compiler for the AMS Gepard, an industrial DSP core.
[1]
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.
[2]
Bruce D. Shriver,et al.
Some Experiments in Local Microcode Compaction for Horizontal Machines
,
1981,
IEEE Transactions on Computers.
[3]
Sharad Malik,et al.
Simultaneous reference allocation in code generation for dual data memory bank ASIPs
,
2000,
TODE.
[4]
Paul Chow,et al.
Exploiting dual data-memory banks in digital signal processors
,
1996,
ASPLOS VII.