A software performance simulation methodology for rapid system architecture exploration

The performance simulation of embedded system designs is often a time consuming process. Whereas the simulation performance of hardware models depends on the chosen abstraction level, the software part is usually simulated with a slow instruction-set-simulator (ISS), which greatly limits the entire simulation speed. In this paper we solve this problem by presenting a highly automated methodology developed in the SIMBA project, which replaces the ISS simulation with a faster performance simulation of a delay-annotated software model suitable for architecture exploration of embedded systems. We use the assembler code from the target cross-compiler and the processor datasheet to automatically generate a SystemC model, which consists of the original software code annotated with additional delay information for each C-code statement to consider the timing behavior of the software. This also encompasses micro-architectural effects like different cache/memory access times and pipeline effects. The SystemC simulation of the model provides accurate information on the timing behavior of the software close to the software execution time on the target processor. We use a sample software C-code to prove our methodology and compare it with an ISS simulation. It shows that our methodology provides a several times faster performance simulation of the software with sufficient accuracy regarding timing, cache, pipeline and memory accesses as it is required for the architecture exploration of embedded systems.

[1]  Luciano Lavagno,et al.  Software performance estimation strategies in a system-level design tool , 2000, Proceedings of the Eighth International Workshop on Hardware/Software Codesign. CODES 2000 (IEEE Cat. No.00TH8518).

[2]  Christian Steger,et al.  Automatic Generation of a Verification Platform , 2005, FDL.

[3]  C.M. Kirchsteiger,et al.  Automatic Test Generation From Semi-formal Specifications for Functional Verification of System-on-Chip Designs , 2008, 2008 2nd Annual IEEE Systems Conference.

[4]  Wolfgang Rosenstiel,et al.  The simulation semantics of SystemC , 2001, Proceedings Design, Automation and Test in Europe. Conference and Exhibition 2001.

[5]  Donatella Sciuto,et al.  Source-level execution time estimation of C programs , 2001, Ninth International Symposium on Hardware/Software Codesign. CODES 2001 (IEEE Cat. No.01TH8571).

[6]  P. Coulton,et al.  C++ Optimizations for Mobile Applications , 2006, 2006 IEEE International Symposium on Consumer Electronics.

[7]  Todd M. Austin,et al.  The SimpleScalar tool set, version 2.0 , 1997, CARN.

[8]  Fernando Herrera,et al.  System-level performance analysis in SystemC , 2004, Proceedings Design, Automation and Test in Europe Conference and Exhibition.