Fast System-Level Prototyping of Power-Aware Dynamic Memory Managers for Embedded Systems

The rapid evolution in sub-micron process technology allows presently more complex systems to be implemented in embedded devices. In the near future, portable consumer devices must run multimedia and wireless network applications that require an enormous computational performance (1-40 GOPS) at a low energy consumption (0.1-2 W ). In these multimedia and wireless network applications, the dynamic memory subsystem is currently one of the main sources of power consumption and its inattentive management can severely affect the performance and power consumption of the whole system. Within this context, the construction and system-level power evaluation of custom dynamic memory managers is one of the most important and difficult parts for an efficient mapping of such dynamic applications on low-power and high-speed embedded systems. Moreover, they are subjected to design-time constraints due to market competition. As a result, current design technologies fall behind these requirements and consistent high-level design methodologies able to handle such complexity and enabling a short time-to-market are in great need. In this paper, we present a new system-level approach to model complex custom dynamic memory managers integrating a detailed power profiling method. This approach enables the developer to obtain power consumption estimates, memory usage and memory access values to refine the dynamic memory management of the system in a very early stage of the design flow and to explore the large search space of dynamic memory manager implementations without a time-consuming programming effort.

[1]  Chantal Ykman-Couvreur,et al.  Automated dynamic memory data type implementation exploration and optimization , 2003, IEEE Computer Society Annual Symposium on VLSI, 2003. Proceedings..

[2]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[3]  Douglas Gregor,et al.  C++ Templates: The Complete Guide , 2002 .

[4]  Rudy Lauwereins,et al.  A QoS Framework for Interactive 3D Applications , 2002, WSCG.

[5]  George Varghese,et al.  Efficient fair queueing using deficit round-robin , 1996, TNET.

[6]  M.A. Horowitz,et al.  Speed and power scaling of SRAM's , 2000, IEEE Journal of Solid-State Circuits.

[7]  Paul R. Wilson,et al.  Dynamic Storage Allocation: A Survey and Critical Review , 1995, IWMM.

[8]  Giuseppe Attardi,et al.  A Customisable Memory Management Framework for C++ , 1998, Softw. Pract. Exp..

[9]  P. Gács,et al.  Algorithms , 1992 .

[10]  Mark Horowitz,et al.  Timing Models for MOS Circuits , 1983 .

[11]  Paul R. Wilson,et al.  The memory fragmentation problem: solved? , 1998, ISMM '98.

[12]  Yannis Smaragdakis,et al.  Mixin-Based Programming in C++ , 2000, GCSE.

[13]  Yannis Smaragdakis,et al.  Mixin layers: an object-oriented implementation technique for refinements and collaboration-based designs , 2002, TSEM.

[14]  Roy Stuart Hallquist DYNAMIC STORAGE ALLOCATION. , 1973 .

[15]  Yannis Smaragdakis,et al.  Implementing Layered Designs with Mixin Layers , 1998, ECOOP.

[16]  Rudy Lauwereins,et al.  Power Estimation Approach of Dynamic Data Storage on a Hardware Software Boundary Level , 2003, PATMOS.

[17]  David Notkin,et al.  Using role components in implement collaboration-based designs , 1996, OOPSLA '96.

[18]  D. Sarta,et al.  A data dependent approach to instruction level power estimation , 1999, Proceedings IEEE Alessandro Volta Memorial Workshop on Low-Power Design.

[19]  Niraj K. Jha,et al.  High-level software energy macro-modeling , 2001, Proceedings of the 38th Design Automation Conference (IEEE Cat. No.01CH37232).

[20]  David Vandevoorde,et al.  C++ Templates , 2002 .

[21]  Reinhard Koch,et al.  Metric 3D Surface Reconstruction from Uncalibrated Image Sequences , 1998, SMILE.

[22]  Mahmut T. Kandemir,et al.  Evaluating Integrated Hardware-Software Optimizations Using a Unified Energy Estimation Framework , 2003, IEEE Trans. Computers.

[23]  Wendong Hu,et al.  NetBench: a benchmarking suite for network processors , 2001, IEEE/ACM International Conference on Computer Aided Design. ICCAD 2001. IEEE/ACM Digest of Technical Papers (Cat. No.01CH37281).

[24]  David Gay,et al.  Memory management with explicit regions , 1998, PLDI.

[25]  Kiem-Phong Vo,et al.  Vmalloc: A General and Efficient Memory Allocator , 1996, Softw. Pract. Exp..