SystemC Semantics by Actors and Reduction Techniques in Model Checking Marjan Sirjani Formal Methods Lab, ECE Dept. University of Tehran, Iran MoCC 2008.

Slides:



Advertisements
Similar presentations
1 Verification by Model Checking. 2 Part 1 : Motivation.
Advertisements

Tintu David Joy. Agenda Motivation Better Verification Through Symmetry-basic idea Structural Symmetry and Multiprocessor Systems Mur ϕ verification system.
Auto-Generation of Test Cases for Infinite States Reactive Systems Based on Symbolic Execution and Formula Rewriting Donghuo Chen School of Computer Science.
Model Checking for an Executable Subset of UML Fei Xie 1, Vladimir Levin 2, and James C. Browne 1 1 Dept. of Computer Sciences, UT at Austin 2 Bell Laboratories,
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
Multiprocessors— Large vs. Small Scale Multiprocessors— Large vs. Small Scale.
Lecture 6: Multicore Systems
The cardiac pacemaker – SystemJ versus Safety Critical Java Heejong Park, Avinash Malik, Muhammad Nadeem, and Zoran Salcic. University of Auckland, NZ.
Formal Modelling of Reactive Agents as an aggregation of Simple Behaviours P.Kefalas Dept. of Computer Science 13 Tsimiski Str Thessaloniki Greece.
Simulation Verification of Different Constraints in System Level Design in SystemC Piyush Ranjan Satapathy CS220 Class Project Presentation.
Synchron’08 Jean-François LE TALLEC INRIA SOP lab, AOSTE INRIA SOP lab, EPI AOSTE ScaleoChip Company SoC Conception Methodology.
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 9 Slide 1 Appendix 3 Object-Oriented Analysis and Design.
1 Concurrency Specification. 2 Outline 4 Issues in concurrent systems 4 Programming language support for concurrency 4 Concurrency analysis - A specification.
Automatic Verification of Component-Based Real-Time CORBA Applications Gabor Madl Sherif Abdelwahed
An Automata-based Approach to Testing Properties in Event Traces H. Hallal, S. Boroday, A. Ulrich, A. Petrenko Sophia Antipolis, France, May 2003.
PTIDES: Programming Temporally Integrated Distributed Embedded Systems Yang Zhao, EECS, UC Berkeley Edward A. Lee, EECS, UC Berkeley Jie Liu, Microsoft.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
Developing Verifiable Concurrent Software Tevfik Bultan Department of Computer Science University of California, Santa Barbara
FunState – An Internal Design Representation for Codesign A model that enables representations of different types of system components. Mixture of functional.
Partial Order Reduction for Scalable Testing of SystemC TLM Designs Sudipta Kundu, University of California, San Diego Malay Ganai, NEC Laboratories America.
Verifying Distributed Real-time Properties of Embedded Systems via Graph Transformations and Model Checking Gabor Madl
Model-based Analysis of Distributed Real-time Embedded System Composition Gabor Madl Sherif Abdelwahed
November 18, 2004 Embedded System Design Flow Arkadeb Ghosal Alessandro Pinto Daniele Gasperini Alberto Sangiovanni-Vincentelli
Interface-based Design Donald Chai EE249. Outline Orthogonalization of concerns Formalisms Interface-based Design Example Cheetah Simulator Future Inroads.
Formal Verification of SpecC Programs using Predicate Abstraction Himanshu Jain Daniel Kroening Edmund Clarke Carnegie Mellon University.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Formal Techniques for Verification Using SystemC By Nasir Mahmood.
Advances in Language Design
Cheng/Dillon-Software Engineering: Formal Methods Model Checking.
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.
(C) 2009 J. M. Garrido1 Object Oriented Simulation with Java.
Using Mathematica for modeling, simulation and property checking of hardware systems Ghiath AL SAMMANE VDS group : Verification & Modeling of Digital systems.
SystemC: A Complete Digital System Modeling Language: A Case Study Reni Rambus Inc.
Rebecca Modeling Language Mahdieh Ahmadi Verification of Reactive Systems March 2014.
Benjamin Gamble. What is Time?  Can mean many different things to a computer Dynamic Equation Variable System State 2.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
- 1 - Embedded Systems - SDL Some general properties of languages 1. Synchronous vs. asynchronous languages Description of several processes in many languages.
Languages for HW and SW Development Ondrej Cevan.
Fast Simulation Techniques for Design Space Exploration Daniel Knorreck, Ludovic Apvrille, Renaud Pacalet
Abstraction and Compositional Verification Techniques for Asynchronously Communicating Components Marjan Sirjani Tehran University, IPM FMCO’06 Amsterdam.
1 Compositional Approach for System Design: Semantics of SystemC R.K. Shyamasundar IBM Research, India Research Lab. and Tata Institute of Fundamental.
1 LiSyC ENSIETA/DTN 02/04/2008 AADL execution semantics transformation for formal verification Joel Champeau, Thomas Abdoul, Pierre Yves Pillain, Philippe.
Refining middleware functions for verification purpose Jérôme Hugues Laurent Pautet Fabrice Kordon
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Advanced Topics in Software Engineering Marjan Sirjani Tehran University Faculty of Engineering ECE Department Tehran,
Programming Paradigms for Concurrency Pavol Cerny Vasu Singh Thomas Wies Part III – Message Passing Concurrency.
Design and Analysis of Real-Time Software REal TIme System Laboratory Scuola Superiore S.Anna G. Lipari E. Bini Ericsson Lab Italia C. Vitucci.
1 Qualitative Reasoning of Distributed Object Design Nima Kaveh & Wolfgang Emmerich Software Systems Engineering Dept. Computer Science University College.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
CprE 588 Embedded Computer Systems Prof. Joseph Zambreno Department of Electrical and Computer Engineering Iowa State University Lecture #5 – System-Level.
System-level power analysis and estimation September 20, 2006 Chong-Min Kyung.
Requirements Engineering-Based Conceptual Modelling From: Requirements Engineering E. Insfran, O. Pastor and R. Wieringa Presented by Chin-Yi Tsai.
A flexible simulator for control- dominated distributed real-time systems Johannes Petersson IDA/SaS/ESLAB Johannes Petersson IDA/SaS/ESLAB Master’s Thesis.
Verification & Validation By: Amir Masoud Gharehbaghi
Course: COMS-E6125 Professor: Gail E. Kaiser Student: Shanghao Li (sl2967)
Developing a Framework for Simulation, Verification and Testing of SDL Specifications Olga Shumsky Lawrence Henschen Northwestern University
IAY 0600 Digital Systems Design Event-Driven Simulation VHDL Discussion Alexander Sudnitson Tallinn University of Technology.
Software Systems Verification and Validation Laboratory Assignment 4 Model checking Assignment date: Lab 4 Delivery date: Lab 4, 5.
T imed Languages for Embedded Software Ethan Jackson Advisor: Dr. Janos Szitpanovits Institute for Software Integrated Systems Vanderbilt University.
Agenda  Quick Review  Finish Introduction  Java Threads.
Reachability Testing of Concurrent Programs1 Reachability Testing of Concurrent Programs Richard Carver, GMU Yu Lei, UTA.
Symbolic Model Checking of Software Nishant Sinha with Edmund Clarke, Flavio Lerda, Michael Theobald Carnegie Mellon University.
CS5270 Lecture 41 Timed Automata I CS 5270 Lecture 4.
Business System Development
Tsao, Lin-wei Li, Han-lin Hu, Sun-Bo
Concurrency Specification
CoCentirc System Studio (CCSS) by
Model Checking for an Executable Subset of UML
Presentation transcript:

SystemC Semantics by Actors and Reduction Techniques in Model Checking Marjan Sirjani Formal Methods Lab, ECE Dept. University of Tehran, Iran MoCC 2008 Eindhoven 1

Outline of the Talk Motivation and Goal SystemC Actors and Rebeca Coordinating Actors Mapping SystemC to Actors Model Checking SystemC Designs Conclusion 2

Motivation  Integrating heterogeneous components  Increasing complexity of microelectronic systems  Demand an appropriate increase in the level of abstraction in design => using SystemC and/or Actors  Sufficient verification/validation of complex designs  High amount of effort for simulation  Demand a formal verification approach => mapping 3

Goal A model for system-level design  Modeling different levels of abstraction Software TLM RTL in a consistent manner. Closer to the application domain A tool for formal verification of system-level designs 4

Why SystemC? A standard language for modeling embedded systems at system level An object-oriented language supporting  Modularity  Concurrency  Synchronization 5

Why Actor? Actor-based design: high level of abstraction Inherent Concurrency: provided by means of concurrent actors No threads Actors: units of concurrency Event-driven computational model: message passing and event-driven execution of actors 6

Applications Models: Actors Programs: SystemC Executables Silicon Chips 7

SystemC 8

9 A system-level design language Design of the hardware and software components together at a high level of abstraction Simulation kernel manages process interactions 9

SystemC Modularity: SC_MODULE  Contains: ports, signals, variables, constructor, functions, processes Concurrency: Processes  SC_Method: atomic execution  SC_Thread: wait statements Synchronization: Events  Explicit: event of type SC_EVENT Calling notify() method  Implicit: change of the value of signals 10

11 SystemC Simulation Kernel Each simulation cycle has two phases  Evaluation Execution of the ready to run processes  Update After delta time Signal Updates Two dimension timing to implement concurrency  Physical time  Delta time 11

Actors and Rebeca 12

Traditional Actor Agent-based model, introduced by Hewitt, 1970 Developed as a concurrent object-based language by Agha, 1980 Concurrent objects communicating with each other through asynchronous message passing Actors know about the communicating partners Objects take messages from their queues and reacts to them  Do some computation  Send messages to other objects 13

14 Rebeca Language Reactive Objects Language Actor-based A Rebeca model is  Set of concurrently executing reactive objects  Interacting by Asynchronous messages

Rebeca Language Rebecs are instances of Reactive Classes Reactive Classes  A queue for messages  Message servers  State variables Rebecs are running concurrently  Take a message from the queue and execute the related message server atomically 15

Rebeca  Actor-based Inherent concurrency Units of modeling = units of concurrency Event-driven  Built for verification purposes model checking support compositional verification  Formal semantics Firm basis for verification 16

System Design Using Rebeca System components are running concurrently Considering a rebec for each component Each component knows other components to which it interacts with and directly send messages to them 17

18

19

20

21

22

Coordinating Actors 23

New Generation of Actors Keeping Actors as simple as possible Actors do not know about the scenarios which activate other actors Moving towards component-based designs Extracting coordination parts from computational parts A coordinating Actor is responsible for activating other actors 24

25

26

27

28

29

30

Actors with a Coordinator Actors: concurrent components  communicate through ports and  interact according to a common pattern of interaction System components -> Concurrent components Interaction patterns -> Component composition Component behavior and component composition are orthogonal 31

Mapping SystemC to Rebeca 32

Modules and Processes SystemC ConstructRebeca Construct ModuleReactive Class Process (method & thread)Message server Module instanceA group of rebecs 33

Signals, Ports and variable SystemC Construct Rebeca Construct SignalTwo global variables PortA local copy of the variable representing the attached signal VariableOne global variables 34

Events, Wait and Notify 35 SystemC Construct Rebeca Construct Eventa global variable of type Boolean WaitRebeca wait statement Notifyan assignment on the variable representing the event

SystemC Simulation Kernel  A specific reactive object is dedicated to handle the functionality of the simulation kernel  Becomes active when none of the other rebecs are active  Functionality:  Checking sensitivity lists to find if any of the rebecs can be activated  Updating signal values  Feeding new input to the system if all of the rebecs are still inactive 36

Model Checking SystemC Designs 37

Rebeca Model Checkers 38 SystemC Model LTL/CTL Property Sytra: Model and Property Transformer (Including KasCPar as the compiler) Rebeca Model Checker (Modere & SyMon) Model Checking Result Rebeca Model

Modere Modere: Model checking Engine for Rebeca  Direct model checker of Rebeca Generating state space based on the interleaving of all executable rebecs Provides many abstraction and reduction techniques specific for Rebeca Supports both LTL and CTL properties 39

SyMon SyMon: Systemc Model checking Engine A verification engine customized according to the behavior of SystemC simulation kernel:  Executes processes one by one, with a non- preemptive scheduling policy, according to a pre- specified order  Generating only one path of execution  Provides a significant amount of reduction in the size of the generated state space 40

Reduction Techniques: Based on SystemC Semantics Delta Cycles  Generating state space based on the interleaving of all executable rebecs N ready to run => N! states for delta cycles  Generating only one path of execution, assuming an order for executing rebecs N ready to run => N states for delta cycles 41

Reduction Techniques: Based on Rebeca Semantics Compositional Verificationn:  Abstracting environment as external messages 42

43 Abstraction Techniques: Bounded queues  Abstracting external messages  Queue length in model checking Check overflow, supported by tool Course grained interleaving  Method execution as a transition (Atomic method execution) Conventional data abstractions

44 Partial Order and Symmetry Reduction Techniques Partial order reduction  Diamond parts in the state space Symmetry reduction  Like in dining philosophers (Ring-like topologies)  The permutation relation shall preserve both rebec types and known-rebec relation.

Case studies The approach is applied on a set of case studies  D-flip flop  Shifter  Bus arbiter  Latched ALU  2-by-4 decoder  Full adder  Fibonacci generator  GCD calculator 45

A large case study: MIPS Model  SystemC A processor supporting ALU, branch and memory operators 17 concurrent threads 96 signals, events and variables  Rebeca 18 rebec 136 global variable Total number of states  Modere: exploded  SyMon:

Work in Progress: Scheduling Using Time Automata and Task Automata to verify schedulability of rebecs 47

Conclusion Define formal semantics of SystemC by means of Rebeca Model check SystemC designs  According to the semantics of simulation kernel  All interleavings 48