Towards Accurate Source-Level Annotation of Low-Level Properties Obtained from Optimized Binary Code

This chapter presents an approach for back-annotating timing information determined from optimized binary code into the source code of the software. The annotated source code can be integrated into a SystemC-based simulation environment and allows a fast execution time estimation while preserving timing accuracy. In contrast to previous approaches, the presented method supports heavily optimized code without any need for changes in the compiler. To annotate timing data, the relation between source code and binary code is reconstructed using data flow analysis. Based on debug information, the analysis allows correlating the execution of source code lines with the control flow on binary level. An experimental evaluation of this technique provided encouraging results as the produced timing estimates deviate less than 6% from the results of a cycle-accurate instruction set simulator.

[1]  Kun Lu,et al.  An approach to improve accuracy of source-level TLMs of embedded software , 2011, 2011 Design, Automation & Test in Europe.

[2]  Antonio Sánchez,et al.  SciSim: a software performance estimation framework using source code instrumentation , 2008, WOSP '08.

[3]  Stephen Gilmore,et al.  Automatic extraction of PEPA performance models from UML activity diagrams annotated with the MARTE profile , 2008, WOSP '08.

[4]  Ren-Song Tsay,et al.  Source-level timing annotation for fast and accurate TLM computation model generation , 2010, 2010 15th Asia and South Pacific Design Automation Conference (ASP-DAC).

[5]  Oliver Bringmann,et al.  ESL power analysis of embedded processors for temperature and reliability estimations , 2009, CODES+ISSS '09.

[6]  Rolf Ernst,et al.  System level performance analysis - the SymTA/S approach , 2005 .

[7]  Wolfgang Rosenstiel,et al.  High-performance timing simulation of embedded software , 2008, 2008 45th ACM/IEEE Design Automation Conference.

[8]  Wolfgang Rosenstiel,et al.  Fast and accurate source-level simulation of software timing considering complex code optimizations , 2011, 2011 48th ACM/EDAC/IEEE Design Automation Conference (DAC).

[9]  Michael F. P. O'Boyle,et al.  DATE '08 Proceedings of the conference on Design, automation and test in Europe , 2008 .

[10]  Zhonglei Wang,et al.  An efficient approach for system-level timing simulation of compiler-optimized embedded software , 2009, 2009 46th ACM/IEEE Design Automation Conference.

[11]  Sharad Malik,et al.  Performance Analysis of Embedded Software Using Implicit Path Enumeration , 1995, 32nd Design Automation Conference.

[12]  Eugenio Villar,et al.  Fast instruction cache modeling for approximate timed HW/SW co-simulation , 2010, GLSVLSI '10.

[13]  Alexander Viehl,et al.  Bottom-up performance analysis considering time slice based software scheduling at system level , 2009, CODES+ISSS '09.

[14]  Marcel Verhoef,et al.  System architecture evaluation using modular performance analysis: a case study , 2006, International Journal on Software Tools for Technology Transfer.

[15]  Wolfgang Rosenstiel,et al.  Fast and accurate resource conflict simulation for performance analysis of multi-core systems , 2011, 2011 Design, Automation & Test in Europe.

[16]  Jan Reineke,et al.  Memory Hierarchies, Pipelines, and Buses for Future Architectures in Time-Critical Embedded Systems , 2009, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[17]  Alberto L. Sangiovanni-Vincentelli,et al.  Source-Level Timing Annotation and Simulation for a Heterogeneous Multiprocessor , 2008, 2008 Design, Automation and Test in Europe.

[18]  Eric Cheung,et al.  Memory subsystem simulation in software TLM/T models , 2009, 2009 Asia and South Pacific Design Automation Conference.

[19]  Florian Martin,et al.  Generating program analyzers , 1999 .

[20]  Frédéric Pétrot,et al.  Automatic instrumentation of embedded software for high level hardware/software co-simulation , 2009, 2009 Asia and South Pacific Design Automation Conference.