Software metadata: Systematic characterization of the memory behaviour of dynamic applications

Development of new embedded systems requires tuning of the software applications to specific hardware blocks and platforms as well as to the relevant input data instances. The behaviour of these applications heavily relies on the nature of the input data samples, thus making them strongly data-dependent. For this reason, it is necessary to extensively profile them with representative samples of the actual input data. An important aspect of this profiling is done at the dynamic data type level, which actually steers the designers choice of implementation of these data types. The behaviour of the applications is then characterized, through an analysis phase, as a collection of software metadata that can be used to optimize the system as a whole. In this paper we propose to represent the behaviour of data-dependent applications to enable optimizations, rather than to analyze their structure or to define the engineering process behind them. Moreover, we specifically limit ourselves to the scope of applications dominated by dynamically allocated data types running on embedded systems. We characterize the software metadata that these optimizations require, and we present a methodology, as well as appropriate techniques, to obtain this information from the original application. The optimizations performed on a complete case study, utilizing the extracted software metadata, achieve overall improvements of up to 42% in the number of cycles spent accessing memory when compared to code optimized only with the static techniques applied by GNU G++.

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

[2]  Luca Benini,et al.  A recursive algorithm for low-power memory partitioning , 2000, ISLPED'00: Proceedings of the 2000 International Symposium on Low Power Electronics and Design (Cat. No.00TH8514).

[3]  Alexandru Nicolau,et al.  Memory Issues in Embedded Systems-on-Chip: Optimizations and Exploration , 1998 .

[4]  William B. Frakes,et al.  Software reuse research: status and future , 2005, IEEE Transactions on Software Engineering.

[5]  Francky Catthoor,et al.  Template-Based Semi-Automatic Profiling of Multimedia Applications , 2006, 2006 IEEE International Conference on Multimedia and Expo.

[6]  Werner Staringer,et al.  Constructing applications from reusable components , 1994, IEEE Software.

[7]  Luca Chittaro,et al.  Rendering of X3D content on mobile devices with OpenGL ES , 2006, Web3D '06.

[8]  Paolo Bellavista,et al.  The Ubiquitous Provisioning of Internet Services to Portable Devices , 2002, IEEE Pervasive Comput..

[9]  Susan L. Graham,et al.  Gprof: A call graph execution profiler , 1982, SIGPLAN '82.

[10]  Francky Catthoor,et al.  Energy-efficient dynamic memory allocators at the middleware level of embedded systems , 2006, EMSOFT '06.

[11]  Francky Catthoor,et al.  Direct Memory Access Optimization in Wireless Terminals for Reduced Memory Latency and Energy Consumption , 2007, PATMOS.

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

[13]  Erik Brockmeyer,et al.  Data Access and Storage Management for Embedded Programmable Processors , 2002, Springer US.

[14]  K. De Bosschere,et al.  DIABLO: a reliable, retargetable and extensible link-time rewriting framework , 2005, Proceedings of the Fifth IEEE International Symposium on Signal Processing and Information Technology, 2005..

[15]  Tristan Henderson,et al.  The changing usage of a mature campus-wide wireless network , 2004, MobiCom '04.

[16]  Erik Brockmeyer,et al.  A combined DMA and application-specific prefetching approach for tackling the memory latency bottleneck , 2006, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[17]  Henk Corporaal,et al.  Intra-task scenario-aware voltage scheduling , 2005, CASES '05.

[18]  Rajeev Barua,et al.  Heterogeneous memory management for embedded systems , 2001, CASES '01.

[19]  José Ignacio Hidalgo,et al.  Optimization of dynamic data structures in multimedia embedded systems using evolutionary computation , 2007, SCOPES '07.

[20]  Luca Benini,et al.  System-level power optimization: techniques and tools , 1999, Proceedings. 1999 International Symposium on Low Power Electronics and Design (Cat. No.99TH8477).

[21]  Francky Catthoor,et al.  Systematic methodology for exploration of performance - Energy trade-offs in network applications using Dynamic Data Type refinement , 2007, J. Syst. Archit..

[22]  M. Burton,et al.  How to bridge the abstraction gap in system level modeling and design , 2004, ICCAD 2004.

[23]  Alberto L. Sangiovanni-Vincentelli,et al.  Quo Vadis, SLD? Reasoning About the Trends and Challenges of System Level Design , 2007, Proceedings of the IEEE.

[24]  Francky Catthoor,et al.  Dynamic data type refinement methodology for systematic performance-energy design exploration of network applications , 2006, Proceedings of the Design Automation & Test in Europe Conference.

[25]  Michael J. Vilot,et al.  Standard template library , 1996 .

[26]  Kristof Denolf,et al.  SPRINT: A Tool to Generate Concurrent Transaction-Level Models from Sequential Code , 2007, EURASIP J. Adv. Signal Process..

[27]  Hans Toetenel,et al.  Embedded Software Engineering: The State of the Practice , 2003, IEEE Softw..

[28]  Wayne H. Wolf,et al.  The future of multiprocessor systems-on-chips , 2004, Proceedings. 41st Design Automation Conference, 2004..

[29]  Francky Catthoor,et al.  Enabling run-time memory data transfer optimizations at the system level with automated extraction of embedded software metadata information , 2008, 2008 Asia and South Pacific Design Automation Conference.

[30]  Lieven Eeckhout,et al.  Quantifying the Impact of Input Data Sets on Program Behavior and its Applications , 2003, J. Instr. Level Parallelism.

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