A Fast SystemC Engine D. Gracia Pérez LRI, Paris South Univ. O. Temam LRI, Paris South Univ. G. Mouchard LRI, Paris South Univ. CEA.

Slides:



Advertisements
Similar presentations
MP3 Optimization Exploiting Processor Architecture and Using Better Algorithms Mancia Anguita Universidad de Granada J. Manuel Martinez – Lechado Vitelcom.
Advertisements

Simulation Verification of Different Constraints in System Level Design in SystemC Piyush Ranjan Satapathy CS220 Class Project Presentation.
Optimizations for a Simulator Construction System Supporting Reusable Components David A. Penry and David I. August The Liberty Architecture Research Group.
Overview Motivations Basic static and dynamic optimization methods ADAPT Dynamo.
Synchron’08 Jean-François LE TALLEC INRIA SOP lab, AOSTE INRIA SOP lab, EPI AOSTE ScaleoChip Company SoC Conception Methodology.
Extensible Processors. 2 ASIP Gain performance by:  Specialized hardware for the whole application (ASIC). −  Almost no flexibility. −High cost.  Use.
Give qualifications of instructors: DAP
Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
Institut für Datentechnik und Kommunikationetze Analysis of Shared Coprocessor Accesses in MPSoCs Overview Bologna, Simon Schliecker Matthias.
Mahapatra-Texas A&M-Fall'001 cosynthesis Introduction to cosynthesis Rabi Mahapatra CPSC498.
Chapter 6 : Channel Refinement. SystemC Communication Refinement Vital part of overall system refinement: Add more details  To gain more precise analysis.
FF-1 9/30/2003 UTD Practical Priority Contention Resolution for Slotted Optical Burst Switching Networks Farid Farahmand The University of Texas at Dallas.
Copyright © 2001 Stephen A. Edwards All rights reserved SystemC Prof. Stephen A. Edwards.
Design of Fault Tolerant Data Flow in Ptolemy II Mark McKelvin EE290 N, Fall 2004 Final Project.
Chapter 1 and 2 Computer System and Operating System Overview
Just-in-Time Compilation for FPGA Processor Cores This work was supported in part by the National Science Foundation (CNS ) and by the Semiconductor.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
Network-on-Chip: Communication Synthesis Department of Computer Science Texas A&M University.
Architectural and Compiler Techniques for Energy Reduction in High-Performance Microprocessors Nikolaos Bellas, Ibrahim N. Hajj, Fellow, IEEE, Constantine.
Maria-Cristina Marinescu Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology A Synthesis Algorithm for Modular Design of.
Maria-Cristina Marinescu Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology High-level Specification and Efficient Implementation.
SystemC: Introduction. SystemC  A C++ based class library and design environment for system-level design.  Suitable for functional description that.
From Scenic to SystemC Mehrdad Abutalebi. Outline Introducing Scenic Scenic Implementation Modeling Reactivity A Simple example From Scenic to SystemC.
Institut für Computertechnik ICT Institute of Computer Technology Interaction of SystemC AMS Extensions with TLM 2.0 Markus Damm, Christoph.
ESL: Panacea or Hype? FERMAT | Sandeep Shukla | June 2005 Acknowledgement: NSF, Project Tech, and the “Chip.
Elad Hadar Omer Norkin Supervisor: Mike Sumszyk Winter 2010/11, Single semester project. Date:22/4/12 Technion – Israel Institute of Technology Faculty.
Upgrade to Real Time Linux Target: A MATLAB-Based Graphical Control Environment Thesis Defense by Hai Xu CLEMSON U N I V E R S I T Y Department of Electrical.
LOPASS: A Low Power Architectural Synthesis for FPGAs with Interconnect Estimation and Optimization Harikrishnan K.C. University of Massachusetts Amherst.
A New Method For Developing IBIS-AMI Models
1 Freeha Azmat Saba Zia Dec 02, Agenda Installation Introduction From Verilog to SystemC Counter as an Example Complete SystemC Modeling 2.
1 Towards Optimal Custom Instruction Processors Wayne Luk Kubilay Atasu, Rob Dimond and Oskar Mencer Department of Computing Imperial College London HOT.
F. Gharsalli, S. Meftali, F. Rousseau, A.A. Jerraya TIMA laboratory 46 avenue Felix Viallet Grenoble Cedex - France Embedded Memory Wrapper Generation.
Fast Simulation Techniques for Design Space Exploration Daniel Knorreck, Ludovic Apvrille, Renaud Pacalet
Replay Compilation: Improving Debuggability of a Just-in Time Complier Presenter: Jun Tao.
Quality Driven SystemC Design By Nasir Mahmood. Hybrid Approach The idea here is to combine the strengths of simulation – namely the ability to handle.
Winter-Spring 2001Codesign of Embedded Systems1 Reactivity, Ports, and Signals in SystemC Part of HW/SW Codesign of Embedded Systems Course (CE )
1 IMEC / KHBO June 2004 Micro-electronics SystemC Dorine Gevaert.
Winter-Spring 2001Codesign of Embedded Systems1 Methodology for HW/SW Co-verification in SystemC Part of HW/SW Codesign of Embedded Systems Course (CE.
XStream: Rapid Generation of Custom Processors for ASIC Designs Binu Mathew * ASIC: Application Specific Integrated Circuit.
6. A PPLICATION MAPPING 6.3 HW/SW partitioning 6.4 Mapping to heterogeneous multi-processors 1 6. Application mapping (part 2)
Development of Programmable Architecture for Base-Band Processing S. Leung, A. Postula, Univ. of Queensland, Australia A. Hemani, Royal Institute of Tech.,
System-level power analysis and estimation September 20, 2006 Chong-Min Kyung.
Lab 2 Parallel processing using NIOS II processors
© ABB University - 1 Revision B E x t e n d e d A u t o m a t i o n S y s t e m x A Chapter 21 Function Designer Course T314.
A flexible simulator for control- dominated distributed real-time systems Johannes Petersson IDA/SaS/ESLAB Johannes Petersson IDA/SaS/ESLAB Master’s Thesis.
Gedae, Inc. Gedae: Auto Coding to a Virtual Machine Authors: William I. Lundgren, Kerry B. Barnes, James W. Steed HPEC 2004.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Modeling PANDA TDAQ system Jacek Otwinowski Krzysztof Korcyl Radoslaw Trebacz Jagiellonian University - Krakow.
A Floating Point Divider for Complex Numbers in the NIOS II Presented by John-Marc Desmarais Authors: Philipp Digeser, Marco Tubolino, Martin Klemm, Daniel.
An Automated Development Framework for a RISC Processor with Reconfigurable Instruction Set Extensions Nikolaos Vassiliadis, George Theodoridis and Spiridon.
Different Microprocessors Tamanna Haque Nipa Lecturer Dept. of Computer Science Stamford University Bangladesh.
Disco: Running Commodity Operating Systems on Scalable Multiprocessors Presented by: Pierre LaBorde, Jordan Deveroux, Imran Ali, Yazen Ghannam, Tzu-Wei.
(1) SIMICS Overview. (2) SIMICS – A Full System Simulator Models disks, runs unaltered OSs etc. Accuracy is high (e.g., pollution effects factored in)
Scott Sirowy, Chen Huang, and Frank Vahid † Department of Computer Science and Engineering University of California, Riverside {ssirowy,chuang,
SystemC Semantics by Actors and Reduction Techniques in Model Checking Marjan Sirjani Formal Methods Lab, ECE Dept. University of Tehran, Iran MoCC 2008.
Memory-Aware Compilation Philip Sweany 10/20/2011.
POLITECNICO DI MILANO A SystemC-based methodology for the simulation of dynamically reconfigurable embedded systems Dynamic Reconfigurability in Embedded.
CoDeveloper Overview Updated February 19, Introducing CoDeveloper™  Targeting hardware/software programmable platforms  Target platforms feature.
1 of 14 Ivan Ukhov Embedded Systems Laboratory Department of Computer and Information Science Linköping University TDDI08: Embedded Systems Design Introduction.
Static Analysis of Object References in RMI-based Java Software
Morgan Kaufmann Publishers
A Framework for Automatic Resource and Accuracy Management in A Cloud Environment Smita Vijayakumar.
Design Flow System Level
VLIW DSP vs. SuperScalar Implementation of a Baseline H.263 Encoder
Smita Vijayakumar Qian Zhu Gagan Agrawal
A High Performance SoC: PkunityTM
Computer Architecture
Portable SystemC-on-a-Chip
A Level Computer Science Topic 5: Computer Architecture and Assembly
Presentation transcript:

A Fast SystemC Engine D. Gracia Pérez LRI, Paris South Univ. O. Temam LRI, Paris South Univ. G. Mouchard LRI, Paris South Univ. CEA

2 Introduction SystemC is becoming a de facto standard but: Too slow for cycle-accurate simulators SystemC performance decreased from version 1.0 to 2.0 SystemC implementation is not geared toward performance; more functionalities, less performance Little effort on SystemC scheduler; useless work is costly What do we need ? Compatibility with SystemC Support of features for cycle-accurate simulators (signals, modules) 1 - Better software implementation of SystemC core 2 - Better scheduling algorithm that limits useless work

3 SystemC Overview Simulators based on SystemC are structural: Hardware/software components  Modules Communications between modules  Ports / Signals Module behavior  Process Input Signal List  Sensitive List System time  Clocks sc_out sc_in Process sc_module sc_clock Sensitive list sc_signal sc_in_clk Process sc_module Steps by one delta cycle Processes Sensitive to clock edge Active signals list End of clock cycle when active signals list is empty SystemC Classes Dynamic Process Schedule SystemC dynamically wakes up a process whenever an input signal changes Sleeping Process Awaken Process

4 SC_METHOD Ports and signals Signal Propagation: Toggle buffer instead of Copy. 1 - Implementation of a New SystemC Engine Process sc_out<>::write() sc_port_b<>::operator  () virtual sc_signal<>::write() sc_prim_channel::request_update() sc_prim_channel_registry::request_update() Call Graph of Signal Writing Process Read BufferWrite Buffer Toggle BufferProcess reading signalProcess writing signal Avoid nested method calls of SystemC 2.0: inlining

5 2 - Improving SystemC Scheduling Performance is correlated with the number of process wakeups Extra information on signal dependency  Better scheduling S1 S3 S4 S5 S2 A BC D B C B Signal update Delta Cycle A D B C S1 S3 S4 S5 S2 A BC D BB Signal update Delta Cycle A D C Module Sleeping Process Signal Data Flow Dependency w/o dependency infowith dependency info AD BC 7 Wakeups5 Wakeups AD BC 2 Useless Wakeups Awaken Process Updated Signal

6 Acyclic Scheduling Add signal dependency information Build a signal dependency graph Assume that no true combinational cycle exists Find best (static) order of signals Schedule processes accordingly Fall-back for graph cycles: dynamic SystemC scheduling Better performance by compiling the schedule Signal Schedule S1S2 S3 S4 S5 A D Process Schedule Signal Update B C B S1 S3 S4 S5 S2 A BC D Module Process Signal Data Flow Dependency with dependency infoFinal Schedule

7 Implementing signal dependencies SC_CTOR(moduleB) { SC_METHOD(B); sensitive << inReq << inAck; outReq(inReq); outAck(inAck); } void B() { outReq = inReq; outAck = inAck; } Module B Source Code Combinational Processes I/O dependency B inAck outAck inReq outReq S5S3 S1 Extended syntax to specify dependencies Informations remains local to the module C outAck inReq inReady S4 S2 Module C Source Code SC_CTOR(moduleC) { SC_METHOD(C); sensitive << inReq << inReady; outAck(inReq); outAck(inReady); } void C() { outAck = inReq && inReady; } S5 B C

8 Experimental results Tested on two simulators : A 5-stage RISC processor simulator A superscalar processor simulator 10 million simulated instructions Pentium IV 2 Ghz From 1.96 to 3.56 speedup over SystemC Wakeups decreased by 29.9 % and 22.7 % Maximum # Delta Cycles decreases from 12 to 3 Wakeup distribution Performance # Wakeups

9 Conclusions FastSysC: Improved software implementation Improved scheduling algorithm Significant speedup on cycle-accurate simulators Compatible with any SystemC simulator using modules and signals Freely available at Future Work: Support for additional SystemC communication syntax (events, channels,…) Automatic generation of signal dependencies Part of a broad effort on simulation (MicroLib): Library of cycle-accurate processor simulators & processor component simulators Generic instruction-set simulators Fast simulation techniques

10 Q & A