170 likes | 292 Vues
This paper explores critical memory management strategies essential for optimizing data transfer and storage in multimedia processors. It discusses various code transformations, data, and memory optimization techniques that improve embedded system performance. The research identifies optimal memory architectures, total memory requirements, power dissipation, and the crucial decisions compilers and synthesis tools must address. Key topics include minimizing register counts, heuristic approaches for graph coloring, and strategies for foreground and background memory optimization. This work contributes to efficient memory design in high-performance applications.
E N D
Memory management Ingrid Verbauwhede Department of Electrical Engineering University of California Los Angeles
Literature • F. Catthoor, K. Danckaert, S. Wuytack, N. Dutt, “Code transformations for Data Transfer and Storage Exploration Preprocessing in Multimedia Processors,” IEEE Design & Test of Computers, May-June 2001, pg. 70-82. • P. Panda, F. Catthoor, N. Dutt, et al, “Data and memory optimization techniques for embedded systems,” ACM Transactions on Design Automation of Electronic Systems, Vol. 6, no. 2, april 2001, pg. 149- 206. • W. Verhaegh, E. Aarts, P. van Gorp, P. Lippens, “A Two-Stage approach to multi dimensional periodic scheduling,” IEEE Transactions on CAD, Vol. 20, no. 10, October 2001, pg. 1185-1199.
Important Memory Decisions inEmbedded Systems • What is a good memory architecture for an application? • Total memory requirement • Delay due to memory • Power dissipation due to memory access • Compiler and Synthesis tool (Exploration tools) should make informed decisions on: • Registers and Register files • Cache parameters • Number and size of memory banks
Minimizing Register Count • Graph Colouring is NP-complete • Heuristics (“Growing clusters”) • Polynomial time solution exists for straight line code (no branches) • “Left-edge” algorithm • Possible to incorporate other factors • Interconnect cost annotated as edge-weight
Intermediate conclusion • Memory management is important • Two main types: • “background” memory optimization (multidimensional arrays) • “foreground” memory optimization (scalars) • Foreground memory: • registers & graph coloring • register files and limited access • model of individual read/write operations to SRAM