Native Simulation of MPSoC Using Hardware-Assisted Virtualization

Integration of multiple heterogeneous processors into a single system-on-a-chip is a clear trend in embedded devices. Designing and verifying these devices requires high-speed and easy-to-build simulation platforms. Among the software simulation approaches, native simulation is a good candidate since the embedded software is executed natively on the host machine, and no instruction set simulator development effort is necessary. However, existing native simulation approaches are such that the simulated software shares the memory space of the modeled hardware modules and the host operating system, making impractical the support of legacy code running on the target platform. To overcome this issue seldom mentioned in the literature, we propose the addition of a transparent address space translation layer to separate the target address space from the host simulator one. For this, we exploit the hardware-assisted virtualization technology now available on most general-purpose processors. Experiments show that this solution does not degrade the native simulation speed, while keeping the ability to accomplish software performance evaluation.

[1]  Kingshuk Karuri,et al.  A SW performance estimation framework for early system-level-design using fine-grained instrumentation , 2006, Proceedings of the Design Automation & Test in Europe Conference.

[2]  Frédéric Pétrot,et al.  On MPSoC Software Execution at the Transaction Level , 2011, IEEE Design & Test of Computers.

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

[4]  Matt T. Yourst PTLsim: A Cycle Accurate Full System x86-64 Microarchitectural Simulator , 2007, 2007 IEEE International Symposium on Performance Analysis of Systems & Software.

[5]  Jung Ho Ahn,et al.  A Comprehensive Memory Modeling Tool and Its Application to the Design and Analysis of Future Memory Hierarchies , 2008, 2008 International Symposium on Computer Architecture.

[6]  David Larson,et al.  Advanced virtualization capabilities of POWER5 systems , 2005, IBM J. Res. Dev..

[7]  L. Peter Deutsch,et al.  Efficient implementation of the smalltalk-80 system , 1984, POPL.

[8]  Eric Cheung,et al.  Fast and accurate performance simulation of embedded software for MPSoC , 2009, 2009 Asia and South Pacific Design Automation Conference.

[9]  M. Bonaciu,et al.  Using abstract CPU subsystem simulation model for high level HW/SW architecture exploration , 2005, Proceedings of the ASP-DAC 2005. Asia and South Pacific Design Automation Conference, 2005..

[10]  Fabrice Bellard,et al.  QEMU, a Fast and Portable Dynamic Translator , 2005, USENIX ATC, FREENIX Track.

[11]  Ahmed Amine Jerraya,et al.  Hardware/software interface codesign for embedded systems , 2005, Computer.

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

[13]  Eric Flamand Strategic directions towards multicore application specific computing , 2009, DATE '09.

[14]  Robert P. Goldberg,et al.  Formal requirements for virtualizable third generation architectures , 1973, SOSP 1973.

[15]  R. P. Goldberg,et al.  Virtual Machine Technology: A Bridge From Large Mainframes To Networks Of Small Computers , 1979 .

[16]  Frédéric Pétrot,et al.  Using binary translation in event driven simulation for fast and flexible MPSoC simulation , 2009, CODES+ISSS '09.

[17]  Trevor Mudge,et al.  MiBench: A free, commercially representative embedded benchmark suite , 2001 .

[18]  James R. Bell,et al.  Threaded code , 1973, CACM.

[19]  Rainer Leupers,et al.  A high-level virtual platform for early MPSoC software development , 2009, CODES+ISSS '09.

[20]  Giovanni De Micheli,et al.  Synthesis and simulation of digital systems containing interacting hardware and software components , 1992, [1992] Proceedings 29th ACM/IEEE Design Automation Conference.

[21]  Eugenio Villar,et al.  Automatic HW/SW Interface Modeling for Scratch-Pad and Memory Mapped HW Components in Native Source-Code Co-simulation , 2009, IESS.

[22]  A. Kivity,et al.  kvm : the Linux Virtual Machine Monitor , 2007 .

[23]  Robert P. Goldberg,et al.  Survey of virtual machine research , 1974, Computer.

[24]  Stefan Heinen,et al.  Using a dataflow abstracted virtual prototype for HdS-design , 2009, 2009 Asia and South Pacific Design Automation Conference.

[25]  Robert J. Creasy,et al.  The Origin of the VM/370 Time-Sharing System , 1981, IBM J. Res. Dev..

[26]  Frédéric Pétrot,et al.  Native MPSoC co-simulation environment for software performance estimation , 2009, CODES+ISSS '09.

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

[28]  Gil Neiger,et al.  Intel virtualization technology , 2005, Computer.

[29]  Andreas Gerstlauer,et al.  RTOS modeling for system level design , 2003, 2003 Design, Automation and Test in Europe Conference and Exhibition.

[30]  Jan Madsen,et al.  Network-on-chip modeling for system-level multiprocessor simulation , 2003, RTSS 2003. 24th IEEE Real-Time Systems Symposium, 2003.

[31]  Vikram S. Adve,et al.  LLVM: a compilation framework for lifelong program analysis & transformation , 2004, International Symposium on Code Generation and Optimization, 2004. CGO 2004..

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

[33]  Jean Paul Calvez,et al.  A generic RTOS model for real-time systems simulation with systemC , 2004, Proceedings Design, Automation and Test in Europe Conference and Exhibition.

[34]  Nikil D. Dutt,et al.  Instruction set compiled simulation: a technique for fast and flexible instruction set simulation , 2003, Proceedings 2003. Design Automation Conference (IEEE Cat. No.03CH37451).