Abstract
The SystemC standard is widely used in industry and academia to model and simulate electronic system-level designs. However, despite the availability of multi-core processor hosts, the reference SystemC simulator is still based on sequential Discrete Event Simulation (DES) which executes only a single thread at any time.
In recent years, parallel SystemC simulators have been proposed which run multiple threads in parallel based on Parallel Discrete Event Simulation (PDES) semantics. While this can improve the simulator run time by an order of magnitude, synchronous PDES requires careful dependency analysis of the model and still limits the parallel execution to threads that run at the same simulation time.
In this chapter, we review the classic DES and PDES algorithms and then present a state-of-the-art approach called Out-of-Order Parallel Discrete Event Simulation (OOO PDES) which breaks the traditional time cycle barrier and executes threads in parallel and out of order (ahead of time) while maintaining the standard SystemC modeling semantics. Specifically, we present our Recoding Infrastructure for SystemC (RISC) that consists of a dedicated SystemC compiler and advanced parallel simulator. RISC provides an open-source reference implementation of OOO PDES and achieves fastest simulation speed for traditional SystemC models without any loss of accuracy.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Abbreviations
- AST:
-
Abstract Syntax Tree
- DE:
-
Discrete Event
- DES:
-
Discrete Event Simulation
- DUT:
-
Design Under Test
- ESL:
-
Electronic System Level
- OOO PDES:
-
Out-of-Order Parallel Discrete Event Simulation
- PDES:
-
Parallel Discrete Event Simulation
- RISC:
-
Recoding Infrastructure for SystemC
- SG:
-
Segment Graph
- SLDL:
-
System-Level Description Language
References
Accellera Systems Initiative. http://www.accellera.org
Amdahl GM (1967) Validity of the single processor approach to achieving large scale computing capabilities. In: Proceedings of the spring joint computer conference, AFIPS’67 (Spring), 18–20 Apr 1967. ACM, New York, pp 483–485. doi:10.1145/1465482.1465560
Cai L, Gajski D (2003) Transaction level modeling: an overview. In: Proceedings of the international conference on hardware/software codesign and system synthesis, Newport Beach
Chandy K, Misra J (1979) Distributed simulation: a case study in design and verification of distributed programs. IEEE Trans Softw Eng SE-5(5):440–452
Chen W, Dömer R (2013) Optimized out-of-order parallel discrete event simulation using predictions. In: Proceedings of design, automation and test in Europe conference and exhibition (DATE)
Chen W, Han X, Chang CW, Liu G, Dömer R (2014) Out-of-order parallel discrete event simulation for transaction level models. IEEE Trans Comput Aided Des Integr Circuits Syst (TCAD) 33(12):1859–1872. doi:10.1109/TCAD.2014.2356469
Chen W, Han X, Dömer R (2011) Multi-core simulation of transaction level models using the system-on-chip environment. IEEE Des Test Comput 28(3):20–31
Chen W, Han X, Dömer R (2012) Out-of-order parallel simulation for ESL design. In: Proceedings of design, automation and test in Europe conference and exhibition (DATE)
Dömer R, Chen W, Han X, Gerstlauer A (2011) Multi-core parallel simulation of system-level description languages. In: Proceedings of design automation conference. Asia and South Pacific (ASPDAC), pp 311–316
Dömer R, Gerstlauer A, Gajski D (2002) SpecC language reference manual, version 2.0. SpecC technology open consortium. http://www.specc.org
Ezudheen P, Chandran P, Chandra J, Simon BP, Ravi D (2009) Parallelizing SystemC kernel for fast hardware simulation on SMP machines. In: PADS’09: proceedings of the 2009 ACM/IEEE/SCS 23rd workshop on principles of advanced and distributed simulation, pp 80–87
Fujimoto R (1990) Parallel discrete event simulation. Commun ACM 33(10):30–53
Gajski DD, Zhu J, Dömer R, Gerstlauer A, Zhao S (2000) SpecC: specification language and design methodology. Kluwer Academic Publishers, Boston
Gerstlauer A (2010) Host-compiled simulation of multi-core platforms. In: Proceedings of the international symposium on rapid system prototyping (RSP), Washington, DC
Grötker T, Liao S, Martin G, Swan S (2002) System design with SystemC. Kluwer Academic Publishers, Dordrecht
Group SLW SystemC 2.3.1, core SystemC language and examples. http://accellera.org/downloads/standards/systemc
Huang K, Bacivarov I, Hugelshofer F, Thiele L (2008) Scalably distributed SystemC simulation for embedded applications. In: International symposium on industrial embedded systems, SIES 2008, pp 271–274
IEEE Computer Society (2011) IEEE standard 1666-2011 for standard SystemC language reference manual. IEEE, New York
Kaushik A, Patel HD (2013) SystemC-clang: an open-source framework for analyzing mixed-abstraction SystemC models. In: Proceedings of the forum on specification and design languages (FDL), Paris
Liu G, Schmidt T, Doemer R Recoding infrastructure for SystemC (RISC) compiler and simulator. http://www.cecs.uci.edu/~doemer/risc.html
Liu G, Schmidt T, Dömer R (2015) RISC compiler and simulator, alpha release V0.2.1: out-of-order parallel simulatable SystemC subset. Technical Report CECS-TR-15-02, Center for Embedded and Cyber-physical Systems, University of California, Irvine
Mukherjee S, Reinhardt S, Falsafi B, Litzkow M, Hill M, Wood D, Huss-Lederman S, Larus J (2000) Wisconsin wind tunnel II: a fast, portable parallel architecture simulator. IEEE Concurr 8(4):12–20
Nanjundappa M, Patel HD, Jose BA, Shukla SK (2010) SCGPSim: a fast SystemC simulator on GPUs. In: Proceedings of design automation conference. Asia and South Pacific (ASPDAC)
Nicol D, Heidelberger P (1996) Parallel execution for serial simulators. ACM Trans Model Comput Simul 6(3):210–242
Quinlan DJ (2000) ROSE: compiler support for object-oriented frameworks. Parallel Process Lett 10(2/3):215–226
Schmidt T, Liu G, Dömer R (2016) Automatic generation of thread communication graphs from SystemC source code. In: Proceedings of international workshop on software and compilers for embedded systems (SCOPES)
Schumacher C, Leupers R, Petras D, Hoffmann A (2010) parSC: synchronous parallel SystemC simulation on multi-core host architectures. In: Proceedings of the international conference on hardware/software codesign and system synthesis (CODES+ISSS), pp 241–246
Sinha R, Prakash A, Patel HD (2012) Parallel simulation of mixed-abstraction SystemC models on GPUs and multicore CPUs. In: Proceedings of design automation conference. Asia and South Pacific (ASPDAC)
Sirowy S, Huang C, Vahid F (2010) Online SystemC emulation acceleration. In: Proceedings of design automation conference (DAC)
Stattelmann S, Bringmann O, Rosenstiel W (2011) Fast and accurate source-level simulation of software timing considering complex code optimizations. In: Proceedings of design automation conference (DAC)
SystemC Language Working Group (LWG). http://accellera.org/activities/working-groups/systemc-language
SystemC TLM-2.0. http://www.accellera.org/downloads/standards/systemc/tlm
Weinstock J, Schumacher C, Leupers R, Ascheid G, Tosoratto L (2014) Time-decoupled parallel SystemC simulation. In: Proceedings of design, automation and test in Europe conference and exhibition (DATE), Dresden
Yun D, Kim S, Ha S (2012) A parallel simulation technique for multicore embedded systems and its performance analysis. IEEE Trans Comput Aided Des Integr Circuits Syst (TCAD) 31(1):121–131
Zhu J, Dömer R, Gajski DD (1997) Syntax and semantics of the SpecC language. In: International symposium on system synthesis (ISSS), Osaka
Acknowledgements
This work has been supported in part by substantial funding from Intel Corporation. The authors thank Intel Corporation for the valuable support and fruitful collaboration. The authors also thank the anonymous reviewers for valuable suggestions to improve this chapter.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2017 Springer Science+Business Media Dordrecht
About this entry
Cite this entry
Dömer, R., Liu, G., Schmidt, T. (2017). Parallel Simulation. In: Ha, S., Teich, J. (eds) Handbook of Hardware/Software Codesign. Springer, Dordrecht. https://doi.org/10.1007/978-94-017-7267-9_19
Download citation
DOI: https://doi.org/10.1007/978-94-017-7267-9_19
Published:
Publisher Name: Springer, Dordrecht
Print ISBN: 978-94-017-7266-2
Online ISBN: 978-94-017-7267-9
eBook Packages: EngineeringReference Module Computer Science and Engineering