Inventing IC design technologies that will be vital to Intel S CL 1 Compositional Specification and Verification in GSTE Jin Yang, joint work with Carl.

Slides:



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

Model Checking Lecture 4. Outline 1 Specifications: logic vs. automata, linear vs. branching, safety vs. liveness 2 Graph algorithms for model checking.
Auto-Generation of Test Cases for Infinite States Reactive Systems Based on Symbolic Execution and Formula Rewriting Donghuo Chen School of Computer Science.
Algorithmic Software Verification VII. Computation tree logic and bisimulations.
An Introduction to the Model Verifier verds Wenhui Zhang September 15 th, 2010.
Abstraction and Modular Reasoning for the Verification of Software Corina Pasareanu NASA Ames Research Center.
Model Checking : Making Automatic Formal Verification Scale Shaz Qadeer EECS Department University of California at Berkeley.
ECE Synthesis & Verification 1 ECE 667 Synthesis and Verification of Digital Systems Formal Verification Combinational Equivalence Checking.
ISBN Chapter 3 Describing Syntax and Semantics.
1 Introduction to Computability Theory Lecture12: Decidable Languages Prof. Amos Israeli.
Yongjian Li The State Key Laboratory of Computer Science Chinese Academy of Sciences William N. N. HungSynopsys Inc. Xiaoyu SongPortland State University.
Introduction to Computability Theory
1 Introduction to Computability Theory Lecture7: PushDown Automata (Part 1) Prof. Amos Israeli.
Tractable and intractable problems for parallel computers
Programming Language Semantics Denotational Semantics Chapter 5 Based on a lecture by Martin Abadi.
Course Summary. © Katz, 2003 Formal Specifications of Complex Systems-- Real-time 2 Topics (1) Families of specification methods, evaluation criteria.
Lecture 4&5: Model Checking: A quick introduction Professor Aditya Ghose Director, Decision Systems Lab School of IT and Computer Science University of.
Models of Computation for Embedded System Design Alvise Bonivento.
Interprocedural Analysis Noam Rinetzky Mooly Sagiv Tel Aviv University Textbook Chapter 2.5.
Copyright © 2006 The McGraw-Hill Companies, Inc. Programming Languages 2nd edition Tucker and Noonan Chapter 18 Program Correctness To treat programming.
ECE Synthesis & Verification - L211 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Verification Equivalence checking.
Course Summary. © Katz, 2007 Formal Specifications of Complex Systems-- Real-time 2 Topics (1) Families of specification methods, evaluation criteria.
Embedded Systems Laboratory Department of Computer and Information Science Linköping University Sweden Formal Verification and Model Checking Traian Pop.
01/27/2005 Combinationality of cyclic definitions EECS 290A – Spring 2005 UC Berkeley.
Describing Syntax and Semantics
Regular Expressions and Automata Chapter 2. Regular Expressions Standard notation for characterizing text sequences Used in all kinds of text processing.
1 Introduction to Computability Theory Lecture11: The Halting Problem Prof. Amos Israeli.
Programming Language Semantics Denotational Semantics Chapter 5 Part III Based on a lecture by Martin Abadi.
Formal verification Marco A. Peña Universitat Politècnica de Catalunya.
Formal Verification of SpecC Programs using Predicate Abstraction Himanshu Jain Daniel Kroening Edmund Clarke Carnegie Mellon University.
Maria-Cristina Marinescu Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology A Synthesis Algorithm for Modular Design of.
Thread-modular Abstraction Refinement Thomas A. Henzinger, et al. CAV 2003 Seonggun Kim KAIST CS750b.
Using Mathematica for modeling, simulation and property checking of hardware systems Ghiath AL SAMMANE VDS group : Verification & Modeling of Digital systems.
Automatic Abstraction Refinement for GSTE Yan Chen, Yujing He, and Fei Xie Portland State University Jin Yang Intel Nov 13, 2007.
Systems Architecture I1 Propositional Calculus Objective: To provide students with the concepts and techniques from propositional calculus so that they.
Mathematical Modeling and Formal Specification Languages CIS 376 Bruce R. Maxim UM-Dearborn.
Aquinas Hobor and Cristian Gherghina (National University of Singapore) TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.:
Introduction to Formal Methods Based on Jeannette M. Wing. A Specifier's Introduction to Formal Methods. IEEE Computer, 23(9):8-24, September,
1 Automatic Refinement and Vacuity Detection for Symbolic Trajectory Evaluation Orna Grumberg Technion Haifa, Israel Joint work with Rachel Tzoref.
Pushdown Automata (PDAs)
Constraint Satisfaction Problems (CSPs) CPSC 322 – CSP 1 Poole & Mackworth textbook: Sections § Lecturer: Alan Mackworth September 28, 2012.
Race Checking by Context Inference Tom Henzinger Ranjit Jhala Rupak Majumdar UC Berkeley.
CS5270 Lecture 41 Timed Automata I CS 5270 Lecture 4.
Sound Global Caching for Abstract Modal Tableaux Rajeev Goré The Australian National University  Linh Anh Nguyen University of Warsaw CS&P’2008.
Programming Languages and Design Lecture 3 Semantic Specifications of Programming Languages Instructor: Li Ma Department of Computer Science Texas Southern.
Ch. 13 Ch. 131 jcmt CSE 3302 Programming Languages CSE3302 Programming Languages (notes?) Dr. Carter Tiernan.
Learning Symbolic Interfaces of Software Components Zvonimir Rakamarić.
Lecture 5 1 CSP tools for verification of Sec Prot Overview of the lecture The Casper interface Refinement checking and FDR Model checking Theorem proving.
Verification & Validation By: Amir Masoud Gharehbaghi
Compositionality Entails Sequentializability Pranav Garg, P. Madhusudan University of Illinois at Urbana-Champaign.
Strings Basic data type in computational biology A string is an ordered succession of characters or symbols from a finite set called an alphabet Sequence.
1 ENGG 1015 Tutorial Three Examples of Finite State Machines Supplementary notes Learning Objectives  Learn about Design of Finite State Machines Ack.:
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Donghyun (David) Kim Department of Mathematics and Physics North Carolina Central University 1 Chapter 0 Introduction Some slides are in courtesy of Prof.
From Natural Language to LTL: Difficulties Capturing Natural Language Specification in Formal Languages for Automatic Analysis Elsa L Gunter NJIT.
/ PSWLAB Thread Modular Model Checking by Cormac Flanagan and Shaz Qadeer (published in Spin’03) Hong,Shin Thread Modular Model.
55:032 - Intro. to Digital DesignPage 1 VHDL and Processes Defining Sequential Circuit Behavior.
3/12/2013Computer Engg, IIT(BHU)1 PRAM ALGORITHMS-3.
On the Relation Between Simulation-based and SAT-based Diagnosis CMPE 58Q Giray Kömürcü Boğaziçi University.
CS5270 Lecture 41 Timed Automata I CS 5270 Lecture 4.
Introduction to Formal Methods
Formal methods: Lecture
Hardware Verification
Finite Automata a b A simplest computational model
Solving Linear Arithmetic with SAT-based MC
Edward Smith University of Oxford
Hardware Description Languages
Optimizing Automatic Abstraction Refinement for GSTE
Programming Languages 2nd edition Tucker and Noonan
Programming Languages 2nd edition Tucker and Noonan
Presentation transcript:

Inventing IC design technologies that will be vital to Intel S CL 1 Compositional Specification and Verification in GSTE Jin Yang, joint work with Carl Seger Strategic CAD Labs, Intel Corp. CMU March 23, 2004

GSTE 2 Motivation GSTE  combines high capacity of STE with expressive power of traditional model checking (YS ICCD’00)  provides a multi-dim. approach to achieve high capacity while maintaining accuracy (YS FMCAD’02)  has been used by FVers for > 1 year successfully on next-gen. Intel  -processors (Schubert ICCAD’03)  part of FORTE public release However  assertion graph specification in GSTE is inherently sequential but circuit behavior may be concurrent  … …

GSTE 3 Sequential Ex.: Memory 1024 x 64 Memory wren din[63:0] addr[9:0] rden dout[63:0] vIvI v1v1 v2v2 ( wren & addr[9:0] = A[9:0] & din[63:0] = D[63:0], true ) ( rden & addr[9:0] = A[9:0], dout[63:0] = D[63:0] ) ( !wren | addr[9:0] != A[9:0], true ) antecedent consequent   “Always read from a cell the most recently written data”

GSTE 4 Concurrent Ex.: Voting Machine reset avail[1] vote[1] avail[2] vote[2] avail[3] vote[3] vout Voting Machine –a vote can be accepted at station i (through vote[i]=1,2,3) when it is available –it outputs a voting result (vout=f(vote[1], vote[2], vote[3]) as soon as all three votes are in, and then makes the stations available for next round. 2222

GSTE 5 Voting Machine (cont.)  Specification using an assertion graph causes exponential complexity –order 1: vote[1], …, vote[2], …, vote[3] –order 2: vote[1], …, vote[3], …, vote[2] –… …  Solution –concurrent extension to assertion graphs –implementation independent –utilizing and guiding GSTE model checking –(future) ability to reason about specifications

GSTE 6 Basics: Domain And Trace  Domain D –a finite non-empty alphabet e.g., the set of states in a FSM (circuit) –P(D) – power set of D e.g., all subsets of states (state predicates) in FSM  Trace  = d 1 d 2 d 3 … –an infinite word in D  e.g., an infinite state sequence (trace) in FSM

GSTE 7 Basics: Assertion Alphabet  Assertion alphabet  = P(D)  P(D) –set of antecedent/consequence pairs –  = (D 1,D 2 )   – assertion letter –antecedent: ant(  ) = D 1 –consequent: cons(  ) = D 2 + a[15:0] b[15:0] c[15:0] ( a[15:0] = A[15:0] & b[15:0] = B[15:0], c[15:0] = A[15:0] + B[15:0] )

GSTE 8 Basics: Assertion Language  Assertion word - any word w =  1  2 …  k in  * –STE assertion  assertion word  Assertion language - any set of words L in P(  * ) –assertion graph  regular assertion language ( wren & addr = A & din = D, true ) ( !wren | addr != A, true ) * ( rden & addr = A, dout = D ) vIvI v1v1 v2v2 ( wren & addr = A & din = D, true ) ( rden & addr = A, dout = D ) ( !wren | addr != A, true )

GSTE 9 Basics: Trace Semantics  Trace Satisfiability –trace  satisfies a word  P(D)*, if  1  i  |  |,  (i)   [i]  Trace Language –assertion word  (w) = {  D  |  sat. ant(w)   sat. cons(w) } –assertion language (for all semantics)  (L) =  w  L  (w)  Theorem: L 1  L 2   (L 1 )  (L 2 ) L 1  L 2   (L 1 )  (L 2 ) “more words  more restricted behavior” “more words  more restricted behavior”

GSTE 10 The Meet Operator  Meet of assertion letters: ( C 1, C 2 )  ( D 1, D 2 ) = ( C 1  D 1, C 2  D 2 )  Meet of assertion words:  1  2 …  k   ’ 1  ’ 2 …  ’ k = (  1   ’ 1 ) (  2   ’ 2 ) … (  k   ’ k )  Meet of assertion languages: L 1  L 2 = { w 1  w 2 | w 1  L 1, w 2  L 2, |w 1 | = |w 2 | } L 1  L 2 = { w 1  w 2 | w 1  L 1, w 2  L 2, |w 1 | = |w 2 | }  ( vote[1]=1, true ) ( true, true )  ( true, true ) ( vote[2]=2, true )  ( vote[3]=2, true ) ( true, true ) = ( vote[1]=1 & vote[3]=2, true ) ( vote[2]=2, true ) Parallel composition

GSTE 11 Self Consistency  Repeated application  0 L = L,  k L = (  k-1 L)  L (k>0)  Lemma  k L   k+1 L but  (  k L ) =  (  k+1 L ) –proof sketch –(w 1  w 2  …  w k )  w k = w 1  w 2  …  w k –w  w ’ may be new, but  (w)   (w ’ )   (w  w ’ )  Theorem (about limit) L   k  0  k L but  ( L ) =  (  k  0  k L )

GSTE 12 Compositional Specification  Initialization: L 0 =  + L 0 (D,D)  Prefix: (1  i<h) L i = L j  j L i = L j  j  Summation: (h  i<l) L i = L i 1  … …  L i k (0  i j <h)  Meet: (l  i<n) L i = L i 1  … …  L i k (0  i j <l) Comment: there is a unique solution to the system  very much like CCS but with new 

GSTE 13 Example 1: Memory vIvI v1v1 v2v2 ( wren & addr = A & din = D, true ) ( rden & addr = A, dout = D ) ( !wren | addr != A, true )  L I =  + L I (true, true)  L I, 1 = L I (wren & addr = A & din = D, true)  L 1,1 = L 1 (!wren | addr != A, true)  L 1 = L I, 1  L 1,1  L 2 = L 1 (rden & addr = A, dout = D)

GSTE 14 Example 2: Voting Machine (VM) reset avail[1] vote[1] avail[2] vote[2] avail[3] vote[3] vout Voting Machine –a vote can be accepted at station i (through vote[i]=1,2,3) when it is available –it outputs a voting result (vout=f(vote[1], vote[2], vote[3]) as soon as all three votes are in, and then makes the stations available for next round. 2222

GSTE 15 Example 2 (cont)  L init =  + L init (true, true)  L ready [i] = L init (reset, true)  (L ready [i]  L poll ) (reset | vote[i]=0, avail[i]) (L ready [i]  L poll ) (reset | vote[i]=0, avail[i])  L voting [i] = (L ready [i]  L poll ) (!reset & vote[i]=V[i]>0, avail[i])  L voted [i] = ((L voting [i]  L voted [i])  L wait ) (!reset, !avail[i])   L wait =  1  i  3 L ready [i]  L poll =  1  i  3 (L voting [i]  (  j  i (L voting [j]  L voted [i])))  L outp = L poll (true, vote=f(V[1], V[2], V[3]))

GSTE 16 Model Checking Product Spec.  Theorem (product specification) for any language L in the solution,  k  0  k L is regular –proof sketch  k  0  k (L j  j ) = (  k  0  k L j )  j  k  0  k (L 1  L 2 ) = (  k  0  k L 1 )  (  k  0  k L 2 )  (  k  0  k L 1 )  (  k  0  k L 2 )  k  0  k (L 1  L 2 ) = (  k  0  k L 1 )  (  k  0  k L 2 ) construct transitions for the states in P({  k  0  k L 1,  k  0  k L 2, …,  k  0  k L n }) –since  (L) =  (  k  0  k L), this effectively provides a precise GSTE model checking solution for each L in the solution –but assertion graph for  k  0  k L may be exponentially large Need more efficient solution !

GSTE 17 Model  M = (S, R, L) –S is a finite set of states –R  S  S is a transition relation s.t.  s,  s’, (s, s’)  R –L: S  D is a labeling function  Semantics –run  : N  S s.t.  i  0, (  (i),  (i+1))  R –trace language  (M) = { L(  ) |  is a run of M } –satisfiability M |=  0  i  n L i :  (M)   (  0  i  n L i )  Post-Image post(S’) = { s |  s’  S’, s.t. (s’, s)  R }

GSTE 18 Simulation Relation  Definition any mapping R: {L 0, L 1, …, L n }  P(S) satisfying s  R(L i ), if  w  L i,  of M s.t.  (|w|)=s, L(  ) sat. ant(w)  Theorem  L i = L j , L(R(L i ))  cons(  )  M |=  0  i  n L i

GSTE 19 compGSTE  Initialization for all L i, R(L i ) := { };  Fix-point iteration repeat –R ’ := R; –for all L i, case –L i = L 0 : R(L i ) := S; –L i = L j  : if L j =L 0 then R(L j ) := {s | L(s)  ant(  )} else R(L j ) := post(R ’ (L j ))  {s | L(s)  ant(  )}; else R(L j ) := post(R ’ (L j ))  {s | L(s)  ant(  )}; if  (L(R(L i ))  cons(  )) then return false; if  (L(R(L i ))  cons(  )) then return false; –L i =  j L j : R(L j ) :=  j R’(L j ); –L i =  j L j : R(L j ) :=  j R’(L j ); until R = R’; return true;

GSTE 20 Ex: VM Implementation vout = avail[1] vote[1] 2 0 = avail[2] vote[2] 2 0 = avail[3] vote[3] f mux 0 vote_in[1] vote_in[2] vote_in[3] voted[1] voted[2] voted[3] reset clear clr en

GSTE 21 Ex: VM Model Checking vout avail[i] vote[i] f mux 0 vote_in[i] voted[i] reset clear … en clr L init = L ready [i] L voting [i] L wait L poll L outp 1. true  L init =  + L init (true, true)  L ready [i] = L init (reset, true)  (L ready [i]  L poll ) (reset | vote[i]=0, avail[i]) (L ready [i]  L poll ) (reset | vote[i]=0, avail[i])  L voting [i] = (L ready [i]  L poll ) (!reset & vote[i]=V[i]>0, avail[i])  L voted [i] = ((L voting [i]  L voted [i])  L wait ) (!reset, !avail[i])  L wait =  1  i  3 L ready [i]  L poll =  1  i  3 (L voting [i]  (  j  i (L voting [j]  L voted [i])))  L outp = L poll (true, vote=f(V[1], V[2], V[3])) L voted [i]

GSTE 22 Ex: VM Model Checking vout avail[i] vote[i] f mux 0 vote_in[i] voted[i] reset clear … en clr L init = L ready [i] L voting [i] L wait L poll L outp 2. true  L init =  + L init (true, true)  L ready [i] = L init (reset, true)  (L ready [i]  L poll ) (reset | vote[i]=0, avail[i]) (L ready [i]  L poll ) (reset | vote[i]=0, avail[i])  L voting [i] = (L ready [i]  L poll ) (!reset & vote[i]=V[i]>0, avail[i])  L voted [i] = ((L voting [i]  L voted [i])  L wait ) (!reset, !avail[i])  L wait =  1  i  3 L ready [i]  L poll =  1  i  3 (L voting [i]  (  j  i (L voting [j]  L voted [i])))  L outp = L poll (true, vote=f(V[1], V[2], V[3])) L voted [i] 2. reset

GSTE 23 Ex: VM Model Checking vout avail[i] vote[i] f mux 0 vote_in[i] voted[i] reset clear … en clr L init = L ready [i] L voting [i] L wait L poll L outp 3. true  L init =  + L init (true, true)  L ready [i] = L init (reset, true)  (L ready [i]  L poll ) (reset | vote[i]=0, avail[i]) (L ready [i]  L poll ) (reset | vote[i]=0, avail[i])  L voting [i] = (L ready [i]  L poll ) (!reset & vote[i]=V[i]>0, avail[i])  L voted [i] = ((L voting [i]  L voted [i])  L wait ) (!reset, !avail[i])  L wait =  1  i  3 L ready [i]  L poll =  1  i  3 (L voting [i]  (  j  i (L voting [j]  L voted [i])))  L outp = L poll (true, vote=f(V[1], V[2], V[3])) L voted [i] 3. reset | vote[i]=0 & vote_in[i]=0 3. !reset & vote[i]=V[i] & vote_in[i]=0

GSTE 24 Ex: VM Model Checking vout avail[i] vote[i] f mux 0 vote_in[i] voted[i] reset clear … en clr L init = L ready [i] L voting [i] L wait L poll L outp true  L init =  + L init (true, true)  L ready [i] = L init (reset, true)  (L ready [i]  L poll ) (reset | vote[i]=0, avail[i]) (L ready [i]  L poll ) (reset | vote[i]=0, avail[i])  L voting [i] = (L ready [i]  L poll ) (!reset & vote[i]=V[i]>0, avail[i])  L voted [i] = ((L voting [i]  L voted [i])  L wait ) (!reset, !avail[i])  L wait =  1  i  3 L ready [i]  L poll =  1  i  3 (L voting [i]  (  j  i (L voting [j]  L voted [i])))  L outp = L poll (true, vote=f(V[1], V[2], V[3])) L voted [i] reset | vote[i]=0 & vote_in[i]=0 !reset & vote[i]=V[i] & vote_in[i]=0 !reset & vote_in[i]=V[i] &  j. … … reset |  i.vote[i]=0 & vote_in[i]=0  i.!reset & vote[i]=V[i] & vote_in[i]=0 &  j  i.(vote[j]=V[j] | vote_in[j]=V[j])  j  i.(vote[j]=V[j] | vote_in[j]=V[j])  i.vote_in[i]=V[i]

GSTE 25 Brief Discussions  compGSTE is approximate –sound but not complete –extended quaternary model abstraction (FMCAD 2002)  Abstraction refinement –model refinement vs spec. refinement (FMCAD 2002) –partial product construction on specifications (serialization)  Advantages over assume-guarantee based composition –pure specification, implementation independent –computed “intermediate assumptions” –much less sensitive to implementation changes

GSTE 26 Ex: Implementation Change 2 vote[i] decode bundle vout avail[i] vote[i] f mux 0 vote_in[i] voted[i] reset clear … en clr = … 1 bundle 2 bundle 3 bundle vout reset avail[i]  Assume-guarantee based composition –re-partition the model, re-specify interface assumptions –re-run model checking  compGSTE –specification unchanged, only re-run model checking

GSTE 27 Industrial Ex.: Resource Scheduler Specification: when resource is available (avail = 1), schedule the oldest ready uop  handling 10 uops at a time, >1k state elements, >17000 gates  priority matrix, CAM, decision logic, power-saving feature etc. CAM receiving logic priority matrix ready logic Staging and CAM match scheduling logic Delivering logic uop alloc ready avail init out sched wrback

GSTE 28 Main Result  Previous work w/ a state-of-art in-house symbolic model checker –hundreds of small local properties –only on the priority matrix  Compositional specification (top down) –schedule uop[i], if “uop[i] is the oldest ready” and resource is available –uop[i] is oldest ready, if “uop[i] is ready” and for all j  i (  j  i ), either “uop[j] is not ready” or “uop[i] arrived earlier than uop[j]” –… … – 1k state elements  Compositional model checking –122.5 seconds, 36M on P4 1.5GHz –scalable - O(log 2 #uops), BDD was not a bottle-neck!  Detailed work is in writing –hopefully in time for ICCAD

GSTE 29 Conclusion  Summary of the compositional approach –compositional specification to handle concurrency –efficient compositional model checking –implementation independent –building for reasoning  Future work –reasoning about compositional specifications –extension to handle parameterized specification