Context-sensitive timing automata for fast source level simulation

We present a novel technique for efficient source level timing simulation of embedded software execution on a target platform. In contrast to existing approaches, the proposed technique can accurately approximate time without requiring a dynamic cache model. Thereby the dramatic reduction in simulation performance inherent to dynamic cache modeling is avoided. Consequently, our approach enables an exploitation of the performance potential of source level simulation for complex microarchitectures that include caches. Our approach is based on recent advances in context-sensitive binary level timing simulation. However, a direct application of the binary level approach to source level simulation reduces simulation performance similarly to dynamic cache modeling. To overcome this performance limitation, we contribute a novel pushdown automaton based simulation technique. The proposed context-sensitive timing automata enable an efficient evaluation of complex simulation logic with little overhead. Experimental results show that the proposed technique provides a speed up of an order of magnitude compared to existing context selection techniques and simple source level cache models. Simulation performance is similar to a state of the art accelerated cache simulation. The accelerated simulation is only applicable in specific circumstances, whereas the proposed approach does not suffer this limitation.

[1]  Reinhard Wilhelm,et al.  Analysis of Loops , 1998, CC.

[2]  Ulf Schlichtmann,et al.  Fast cache simulation for host-compiled simulation of embedded software , 2013, 2013 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[3]  Andreas Gerstlauer,et al.  Source-Level Performance, Energy, Reliability, Power and Thermal (PERPT) Simulation , 2017, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[4]  Andreas Herkersdorf,et al.  Context-aware compiled simulation of out-of-order processor behavior based on atomic traces , 2011, 2011 IEEE/IFIP 19th International Conference on VLSI and System-on-Chip.

[5]  Ulf Schlichtmann,et al.  Hierarchical control flow matching for source-level simulation of embedded software , 2012, 2012 International Symposium on System on Chip (SoC).

[6]  Kenneth A. Hawick,et al.  Enumerating Circuits and Loops in Graphs with Self-Arcs and Multiple-Arcs , 2008, FCS.

[7]  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).

[8]  Jan Gustafsson,et al.  The Mälardalen WCET Benchmarks: Past, Present And Future , 2010, WCET.

[9]  Gerard J. M. Smit,et al.  A mathematical approach towards hardware design , 2010, Dynamically Reconfigurable Architectures.

[10]  Wolfgang Rosenstiel,et al.  Context-sensitive timing simulation of binary embedded software , 2014, 2014 International Conference on Compilers, Architecture and Synthesis for Embedded Systems (CASES).

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

[12]  Oliver Bringmann,et al.  Accelerating source-level timing simulation , 2016, 2016 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[13]  Ulf Schlichtmann,et al.  Memory access reconstruction based on memory allocation mechanism for source-level simulation of embedded software , 2013, 2013 18th Asia and South Pacific Design Automation Conference (ASP-DAC).

[14]  Andreas Gerstlauer,et al.  Automated, retargetable back-annotation for host compiled performance and power modeling , 2013, 2013 International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS).

[15]  Andreas Gerstlauer,et al.  The next generation of virtual prototyping: Ultra-fast yet accurate simulation of HW/SW systems , 2015, 2015 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[16]  Henrik Theiling,et al.  Control flow graphs for real-time systems analysis: reconstruction from binary executables and usage in ILP-based path analysis , 2002 .

[17]  Wolfgang Rosenstiel,et al.  Trace-based context-sensitive timing simulation considering execution path variations , 2016, 2016 21st Asia and South Pacific Design Automation Conference (ASP-DAC).

[18]  Wolfgang Rosenstiel,et al.  Dominator homomorphism based code matching for source-level simulation of embedded software , 2011, 2011 Proceedings of the Ninth IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS).