A Survey of Embedded Software Profiling Methodologies

Embedded Systems combine one or more processor cores with dedicated logic running on an ASIC or FPGA to meet design goals at reasonable cost. It is achieved by profiling the application with variety of aspects like performance, memory usage, cache hit versus cache miss, energy consumption, etc. Out of these, performance estimation is more important than others. With ever increasing system complexities, it becomes quite necessary to carry out performance estimation of embedded software implemented in a particular processor for fast design space exploration. Such profiled data also guides the designer how to partition the system for Hardware (HW) and Software (SW) environments. In this paper, we propose a classification for currently available Embedded Software Profiling Tools, and we present different academic and industrial approaches in this context. Based on these observations, it will be easy to identify such common principles and needs which are required for a true Software Profiling Tool for a particular application.

[1]  Lesley Shannon,et al.  Using reconfigurability to achieve real-time profiling for hardware/software codesign , 2004, FPGA '04.

[2]  Teofilo F. Gonzalez,et al.  Performance data collection using a hybrid approach , 2005, ESEC/FSE-13.

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

[4]  Frank Vahid,et al.  Frequent loop detection using efficient nonintrusive on-chip hardware , 2005, IEEE Transactions on Computers.

[5]  Roman L. Lysecky,et al.  Efficient hardware-based nonintrusive dynamic application profiling , 2011, TECS.

[6]  E. Metz,et al.  Performance data collection: hybrid approach , 2004 .

[7]  Ashish Shenoy,et al.  Evaluation of Dynamic Profiling Methodologies for Optimization of Sensor Networks , 2010, IEEE Embedded Systems Letters.

[8]  El- Sayed M. Saad,et al.  FPGA-based software profiler for Hardware/Software co-design , 2009, 2009 National Radio Science Conference.

[9]  Chung-Ta King,et al.  Multiprocessor System-on-Chip Profiling Architecture: Design and Implementation , 2009, 2009 15th International Conference on Parallel and Distributed Systems.

[10]  Kingshuk Karuri,et al.  Fine-grained application source code profiling for ASIP design , 2005, Proceedings. 42nd Design Automation Conference, 2005..

[11]  Jason G. Tong,et al.  Profiling Tools for FPGA-Based Embedded Systems: Survey and Quantitative Comparison , 2008, J. Comput..

[12]  Lesley Shannon,et al.  Maximizing system performance: using reconfigurability to monitor system communications , 2004, Proceedings. 2004 IEEE International Conference on Field- Programmable Technology (IEEE Cat. No.04EX921).

[13]  Paul Chow,et al.  A profiler for a heterogeneous multi-core multi-FPGA system , 2008, 2008 International Conference on Field-Programmable Technology.

[14]  Koen Bertels,et al.  A Profiling Framework for Design Space Exploration in Heterogeneous System Context , 2007 .

[15]  Ahmed Amine Jerraya,et al.  Software Performance Estimation in MPSoC Design , 2007, 2007 Asia and South Pacific Design Automation Conference.

[16]  Flávio Rech Wagner,et al.  Applying neural networks to performance estimation of embedded software , 2008, J. Syst. Archit..

[17]  Roman L. Lysecky,et al.  Non-intrusive dynamic application profiling for multitasked applications , 2009, 2009 46th ACM/IEEE Design Automation Conference.

[18]  Roman L. Lysecky,et al.  Non-intrusive dynamic application profiler for detailed loop execution characterization , 2008, CASES '08.