Standard-compliant parallel SystemC simulation of loosely-timed transaction level models: From baremetal to Linux-based applications support

Abstract To face the growing complexity of System-on-Chips (SoCs) and their tight time-to-market constraints, Virtual Prototyping (VP) tools based on SystemC/TLM2.0 must get faster while maintaining accuracy. However, the ASI SystemC reference implementation remains sequential and cannot leverage the multiple cores of modern workstations. In this paper, we present SCale 2.0, a new implementation of a parallel and standard-compliant SystemC kernel, reaching unprecedented simulation speeds. By coupling a parallel SystemC kernel with shared resources access monitoring and process-level rollback, we can preserve SystemC atomic thread evaluation while leveraging the available host cores. We also generate process interaction traces that can be used to replay any simulation deterministically for debug purpose. Evaluation on baremetal applications shows × 15 speedup compared to the ASI SystemC kernel using 33 host cores reaching speeds above 2300 Million simulated Instructions Per Second (MIPS). Challenges related to parallel simulation of full software stack with modern operating systems are also addressed with speedup reaching × 13 during recording run and × 24 during the replay run.

[1]  Timo Hämäläinen,et al.  Distributed systemc simulation on manycore servers , 2016, 2016 IEEE Nordic Circuits and Systems Conference (NORCAS).

[2]  Alain Greiner,et al.  An Efficient TLM/T Modeling and Simulation Environment Based on Conservative Parallel Discrete Event Principles , 2006, Proceedings of the Design Automation & Test in Europe Conference.

[3]  Alain Greiner,et al.  Parallel simulation of systemC TLM 2.0 compliant MPSoC on SMP workstations , 2010, 2010 Design, Automation & Test in Europe Conference & Exhibition (DATE 2010).

[4]  Richard M. Fujimoto,et al.  Parallel discrete event simulation , 1990, CACM.

[5]  Stefan Kraemer,et al.  A checkpoint/restore framework for systemc-based virtual platforms , 2009, 2009 International Symposium on System-on-Chip.

[6]  Tim Schmidt,et al.  A segment-aware multi-core scheduler for system C PDES , 2016, 2016 IEEE International High Level Design Validation and Test Workshop (HLDVT).

[7]  Franco Fummi,et al.  SAGA: SystemC acceleration on GPU architectures , 2012, DAC Design Automation Conference 2012.

[8]  Nicolas Ventroux,et al.  Standard-compliant Parallel SystemC simulation of Loosely-Timed Transaction Level Models , 2020, 2020 25th Asia and South Pacific Design Automation Conference (ASP-DAC).

[9]  Nicolas Ventroux,et al.  Fast Virtual Prototyping for Embedded Computing Systems Design and Exploration , 2019, RAPIDO '19.

[10]  Norbert Wehn,et al.  Speculative Temporal Decoupling Using fork() , 2019, 2019 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[11]  Rainer Leupers,et al.  SystemC-link: Parallel SystemC simulation using time-decoupled segments , 2016, 2016 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[12]  Massimo Violante,et al.  A Novel Method for Online Detection of Faults Affecting Execution-Time in Multicore-Based Systems , 2017, ACM Trans. Embed. Comput. Syst..

[13]  Matthieu Moy Parallel programming with SystemC for loosely timed models: A non-intrusive approach , 2013, 2013 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[14]  Nicolas Ventroux,et al.  A new parallel SystemC kernel leveraging manycore architectures , 2016, 2016 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[15]  James C. Hoe,et al.  Highly-parallel special-purpose multicore architecture for SystemC/TLM simulations , 2014, 2014 International Conference on Embedded Computer Systems: Architectures, Modeling, and Simulation (SAMOS XIV).

[16]  Rainer Leupers,et al.  parSC: Synchronous parallel SystemC simulation on multi-core host architectures , 2010, 2010 IEEE/ACM/IFIP International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS).

[17]  Kai Li,et al.  The PARSEC benchmark suite: Characterization and architectural implications , 2008, 2008 International Conference on Parallel Architectures and Compilation Techniques (PACT).

[18]  Matthieu Moy,et al.  Challenges for the parallelization of loosely timed SystemC programs , 2015, 2015 International Symposium on Rapid System Prototyping (RSP).

[19]  Hiren D. Patel,et al.  Parallel simulation of mixed-abstraction SystemC models on GPUs and multicore CPUs , 2012, 17th Asia and South Pacific Design Automation Conference.

[20]  Kun Zhang,et al.  ArchSim: A System-Level Parallel Simulation Platform for the Architecture Design of High Performance Computer , 2009, Journal of Computer Science and Technology.

[21]  Rainer Leupers,et al.  Parallel SystemC Simulation for ESL Design , 2016, ACM Trans. Embed. Comput. Syst..

[22]  Bastien Chopard,et al.  A Conservative Approach to SystemC Parallelization , 2006, International Conference on Computational Science.

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

[24]  Rainer Dömer Seven Obstacles in the Way of Standard-Compliant Parallel SystemC Simulation , 2016, IEEE Embedded Systems Letters.

[25]  Rainer Leupers,et al.  legaSCi: Legacy SystemC Model Integration into Parallel Simulators , 2014, TECS.

[26]  Zhang Kun,et al.  A Parallel SystemC Environment: ArchSC , 2009, ICPADS.

[27]  Xu Han,et al.  Out-of-Order Parallel Discrete Event Simulation for Transaction Level Models , 2014, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[28]  Tim Schmidt,et al.  Hybrid analysis of SystemC models for fast and accurate parallel simulation , 2017, 2017 22nd Asia and South Pacific Design Automation Conference (ASP-DAC).

[29]  Yunhao Liu,et al.  Sea Depth Measurement with Restricted Floating Sensors , 2007, 28th IEEE International Real-Time Systems Symposium (RTSS 2007).

[30]  Rainer Dömer,et al.  Event Delivery using Prediction for Faster Parallel SystemC Simulation , 2020, 2020 25th Asia and South Pacific Design Automation Conference (ASP-DAC).

[31]  Rachid Deriche,et al.  Using Canny's criteria to derive a recursively implemented optimal edge detector , 1987, International Journal of Computer Vision.

[32]  Peter J. Denning,et al.  The locality principle , 2005, CACM.

[33]  Tim Schmidt,et al.  Port call path sensitive conflict analysis for instance-aware parallel SystemC simulation , 2018, 2018 Design, Automation & Test in Europe Conference & Exhibition (DATE).