Integration of Code Scheduling, Memory Allocation, and Array Binding for Memory-Access Optimization

In many embedded systems, particularly those with high data computations, the delay of memory access is one of the major bottlenecks in the system's performance. It has been known that there are high variations in memory-access delays depending on the ways of designing memory configurations and assigning arrays to memories. Furthermore, embedded-DRAM technology that provides efficient access modes is actively being developed, possibly becoming a mainstream in future embedded-system design. In that context, in this paper, the authors propose an effective solution to the problem of (embedded DRAM) memory allocation and mapping in memory-access-code generation with the objective of minimizing the total memory-access time. Specifically, the proposed approach, called memory-access-code optimization (MACCESS-opt), solves the three problems simultaneously: 1) determination of memories; 2) mapping of arrays to memories; and 3) scheduling of memory-access operations, so that the use of DRAM-access modes is maximized while satisfying the storage size constraint of embedded systems. Experimental data on a set of benchmark designs are provided to show the effectiveness of the proposed integrated approach. In short, MACCESS-opt reduces the total memory-access latency by over 18%, from which the authors found that the memory mapping and scheduling techniques in MACCESS-opt contribute about 12% and 6% reductions of the total memory-access latency, respectively

[1]  Taewhan Kim,et al.  Memory layout techniques for variables utilizing efficient DRAM access modes in embedded system design , 2005, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[2]  Daniel Gajski,et al.  A memory selection algorithm for high-performance pipelines , 1995, Proceedings of EURO-DAC. European Design Automation Conference.

[3]  Mahmut T. Kandemir,et al.  Locality-conscious process scheduling in embedded systems , 2002, Proceedings of the Tenth International Symposium on Hardware/Software Codesign. CODES 2002 (IEEE Cat. No.02TH8627).

[4]  Betty Prince High Performance Memories: New Architecture DRAMs and SRAMs — Evolution and Function , 1996 .

[5]  Charles M. Fiduccia,et al.  A linear-time heuristic for improving network partitions , 1988, 25 years of DAC.

[6]  Nikil D. Dutt,et al.  Incorporating DRAM access modes into high-level synthesis , 1998, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[7]  Chaitali Chakrabarti,et al.  Memory exploration for low power embedded systems , 1999, ISCAS'99. Proceedings of the 1999 IEEE International Symposium on Circuits and Systems VLSI (Cat. No.99CH36349).

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

[9]  H. De Man,et al.  Dataflow-driven Memory Allocation For Multi-dimensional Signal Processing Systems , 1994, IEEE/ACM International Conference on Computer-Aided Design.

[10]  Miodrag Potkonjak,et al.  MediaBench: a tool for evaluating and synthesizing multimedia and communications systems , 1997, Proceedings of 30th Annual International Symposium on Microarchitecture.

[11]  William H. Press,et al.  Numerical recipes in C , 2002 .

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

[13]  Herman Schmit,et al.  Array mapping in behavioral synthesis , 1995 .

[14]  Taewhan Kim,et al.  An integrated algorithm for memory allocation and assignment in high-level synthesis , 2002, DAC '02.