SIMULTime: Context-sensitive timing simulation on intermediate code representation for rapid platform explorations

Nowadays, product lines are common practice in the embedded systems domain as they allow for substantial reductions in development costs and the time-to-market by a consequent application of design paradigms such as variability and structured reuse management. In that context, accurate and fast timing predictions are essential for an early evaluation of all relevant variants of a product line concerning target platform properties. Context-sensitive simulations provide attractive benefits for timing analysis. Nevertheless, these simulations depend strongly on a single configuration pair of compiler and hardware platform. To cope with this limitation, we present SIMULTime, a new technique for context-sensitive timing simulation based on the software intermediate representation. The assured simulation throughput significantly increases by simulating simultaneously different hardware hardware platforms and compiler configurations. Multiple accurate timing predictions are produced by running the simulator only once. Our novel approach was applied on several applications showing that SIMULTime increases the average simulation throughput by 90% when at least four configurations are analyzed in parallel.

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

[2]  Gero Dittmann,et al.  An Instrumentation Approach for Hardware-Agnostic Software Characterization , 2015, International Journal of Parallel Programming.

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

[5]  John P. Gallagher,et al.  Inferring Parametric Energy Consumption Functions at Different Software Levels: ISA vs. LLVM IR , 2015, FOPARA.

[6]  Wolfgang Rosenstiel,et al.  Context-sensitive timing automata for fast source level simulation , 2017, Design, Automation & Test in Europe Conference & Exhibition (DATE), 2017.

[7]  Gilles Sassatelli,et al.  Accuracy evaluation of GEM5 simulator system , 2012, 7th International Workshop on Reconfigurable and Communication-Centric Systems-on-Chip (ReCoSoC).

[8]  David Keppel,et al.  Shade: a fast instruction-set simulator for execution profiling , 1994, SIGMETRICS.

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

[10]  Oliver Bringmann,et al.  Advancing source-level timing simulation using loop acceleration , 2018, 2018 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[11]  Somayeh Sardashti,et al.  The gem5 simulator , 2011, CARN.

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

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

[14]  Rainer Leupers,et al.  A universal technique for fast and flexible instruction-set architecture simulation , 2002, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[15]  Frédéric Pétrot,et al.  A mapping approach between IR and binary CFGs dealing with aggressive compiler optimizations for performance estimation , 2018, 2018 23rd Asia and South Pacific Design Automation Conference (ASP-DAC).

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