Optimizing Automatic Abstraction Refinement for GSTE

Slides:



Advertisements
Similar presentations
Model Checking Lecture 4. Outline 1 Specifications: logic vs. automata, linear vs. branching, safety vs. liveness 2 Graph algorithms for model checking.
Advertisements

Compiler Support for Superscalar Processors. Loop Unrolling Assumption: Standard five stage pipeline Empty cycles between instructions before the result.
Representing Boolean Functions for Symbolic Model Checking Supratik Chakraborty IIT Bombay.
Data-Flow Analysis II CS 671 March 13, CS 671 – Spring Data-Flow Analysis Gather conservative, approximate information about what a program.
Constraint Based Reasoning over Mutex Relations in Graphplan Algorithm Pavel Surynek Charles University, Prague Czech Republic.
An Introduction to the Model Verifier verds Wenhui Zhang September 15 th, 2010.
Modeling shared cache and bus in multi-core platforms for timing analysis Sudipta Chattopadhyay Abhik Roychoudhury Tulika Mitra.
A Graph-Partitioning-Based Approach for Multi-Layer Constrained Via Minimization Yih-Chih Chou and Youn-Long Lin Department of Computer Science, Tsing.
Data-Flow Analysis Framework Domain – What kind of solution is the analysis looking for? Ex. Variables have not yet been defined – Algorithm assigns a.
Rigorous Software Development CSCI-GA Instructor: Thomas Wies Spring 2012 Lecture 13.
Combining Symbolic Simulation and Interval Arithmetic for the Verification of AMS Designs Mohamed Zaki, Ghiath Al Sammane, Sofiene Tahar, Guy Bois FMCAD'07.
1 CS 201 Compiler Construction Lecture 7 Code Optimizations: Partial Redundancy Elimination.
ECE Synthesis & Verification - L211 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Verification Equivalence checking.
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.
5/6/2004J.-H. R. Jiang1 Functional Dependency for Verification Reduction & Logic Minimization EE290N, Spring 2004.
Overview of program analysis Mooly Sagiv html://
Lazy Abstraction Tom Henzinger Ranjit Jhala Rupak Majumdar Grégoire Sutre.
CS 267: Automated Verification Lecture 13: Bounded Model Checking Instructor: Tevfik Bultan.
Composing Dataflow Analyses and Transformations Sorin Lerner (University of Washington) David Grove (IBM T.J. Watson) Craig Chambers (University of Washington)
Register Allocation and Spilling via Graph Coloring G. J. Chaitin IBM Research, 1982.
Maria-Cristina Marinescu Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology A Synthesis Algorithm for Modular Design of.
Automatic Abstraction Refinement for GSTE Yan Chen, Yujing He, and Fei Xie Portland State University Jin Yang Intel Nov 13, 2007.
Word-level Sequential Memory Abstraction for Model Checking Per Bjesse November 19, 2008 TexPoint fonts used in EMF. Read the TexPoint manual before you.
Algebra-2 Section 3-2A Solving Systems of Linear Equations Algebraically Using Substitution.
1 Automatic Refinement and Vacuity Detection for Symbolic Trajectory Evaluation Orna Grumberg Technion Haifa, Israel Joint work with Rachel Tzoref.
Open Sentences.
Semantics In Text: Chapter 3.
Verification & Validation By: Amir Masoud Gharehbaghi
Institute for Applied Information Processing and Communications (IAIK) – Secure & Correct Systems 1 Robert Könighofer and Roderick Bloem IAIK – Graz University.
Solving Systems of Linear Equations by Substitution; Applications Solve systems of linear equations using substitution. 2.Solve applications involving.
Bell Ringer: Simplify each expression
CHARME’03 Predicate abstraction with Minimum Predicates Sagar Chaki*, Ed Clarke*, Alex Groce*, Ofer Strichman** * Carnegie Mellon University ** Technion.
On the Relation Between Simulation-based and SAT-based Diagnosis CMPE 58Q Giray Kömürcü Boğaziçi University.
SAT/ACT MATH UNIT 10 Equation with More Than One Variable.
Credible Compilation With Pointers Martin Rinard and Darko Marinov Laboratory for Computer Science Massachusetts Institute of Technology.
Counterexample-Guided Abstraction Refinement By Edmund Clarke, Orna Grumberg, Somesh Jha, Yuan Lu, and Helmut Veith Presented by Yunho Kim Provable Software.
Reducing Structural Bias in Technology Mapping
Presentation Title 2/4/2018 Software Verification using Predicate Abstraction and Iterative Refinement: Part Bug Catching: Automated Program Verification.
Introduction to Formal Verification
Hybrid BDD and All-SAT Method for Model Checking
Abstraction and Refinement for Large Scale Model Checking
SS 2017 Software Verification Bounded Model Checking, Outlook
Hardware Verification
Reasoning about code CSE 331 University of Washington.
Alan Mishchenko UC Berkeley
Alan Mishchenko Robert Brayton UC Berkeley
6-2 Solving Systems using Substitution
Machine-Independent Optimization
Optimal Redundancy Removal without Fixedpoint Computation
Edward Smith University of Oxford
Property Directed Reachability with Word-Level Abstraction
Introduction to Formal Verification
SAT-Based Area Recovery in Technology Mapping
Over-Approximating Boolean Programs with Unbounded Thread Creation
Scalable and Scalably-Verifiable Sequential Synthesis
Semantics In Text: Chapter 3.
Open Sentences.
Algebra: Equations and Inequalities
Symbolic Characterization of Heap Abstractions
Predicates and Quantifiers
Alan Mishchenko UC Berkeley
Scalability in Model Checking
Alan Mishchenko UC Berkeley
State Abstraction Techniques for the Verification of Reactive Circuits
Word-Level Aspects of ABC
SAT-based Methods: Logic Synthesis and Technology Mapping
Automatic Abstraction of Microprocessors for Verification
Fast Min-Register Retiming Through Binary Max-Flow
Visual Algebra for Teachers
Faster Extraction of High-Level Minimal Unsatisfiable Cores
Presentation transcript:

Optimizing Automatic Abstraction Refinement for GSTE Yan Chen, Fei Xie Portland State University Jin Yang Intel

Outline Overview of (G)STE Quaternary Abstraction and its Imprecision AutoGSTE: Automatic Abstraction Refinement Optimizing AutoGSTE More Accurate Fan-in Analysis Precise Nodes with Lifespans State Set Containment Check Conclusions

Symbolic Trajectory Evaluation [Bryant & Seger] Buffered Register mux din wr rd ck B R sel out !ck&wr& din=DATA ck&!wr& rd !ck ck out=DATA Simulation-based model checking ck din DATA True wr rd out False B R sel

Generalized STE Buffered Register mux GSTE Assertion Graph [Yang & Seger] Buffered Register mux din wr rd ck B R sel out ck din DATA True wr rd out False GSTE Assertion Graph wr& din=DATA out=DATA !wr&rd / an infinite collection of STE assertions Simulation with fixed-point computation

Outline Overview of (G)STE Quaternary Abstraction and its Imprecision AutoGSTE: Automatic Abstraction Refinement Optimizing AutoGSTE More Accurate Fan-in Analysis Precise Nodes with Lifespans State Set Containment Check Conclusions

Quaternary Abstraction (Conflict) Two sides of a coin Significantly reduce state space representation by quaternary abstraction  Over abstractions cause false negatives  1 X (Unknown) Information Partial Order Propagation of “Unknown”

Causes of False Negatives: Quaternary State Set Unions mux din wr rd ck B R sel out wr& din=DATA out=DATA !wr&rd / 2 1 Edge 1 2 din=DATA, wr=1, rd=X, B=R=sel=X din=X, wr=0, rd=1, B=DATA, R=X, sel=0 Check out=DATA Quaternary Simulation Result Quaternary Union din=X, wr=0, rd=1, B=DATA, R=X, sel=X Check out=DATA fail din=X, wr=0, rd=1, B=DATA, R=DATA, sel=1 Check out=DATA

Causes of False Negatives: Quantified-out Symbolic Variables A=(variable v) B=(variable v) out=0 True / 1 2 Edge 1 2 A=v, B=v A=X, B=X Check out=0 fail Quaternary Simulation Result

Outline Overview of (G)STE Quaternary Abstraction and its Imprecision AutoGSTE: Automatic Abstraction Refinement Optimizing AutoGSTE More Accurate Fan-in Analysis Precise Nodes with Lifespans State Set Containment Check Conclusions

AutoGSTE: Automatic Abstraction Refinement [FMCAD’07] Abstraction refinement: (monotonic) (1) Constraining inputs with symbolic constants/variables (2) Model refinement: introducing precise nodes (3) Spec refinement: assertion graph transformations Circuit Impl. Assertion Graph Assertion holds (1) GSTE Refined Abstraction (3) Abstraction Refinement Counter Example Assertion fails (2) Counter Example Analysis Causes of Imprecision Causes of imprecision in GSTE’s quaternary abstraction: (1) Under-constrained inputs; (2) Quaternary state set unions; (3) Existentially quantified-out symbolic variables

Outline Overview of (G)STE Quaternary Abstraction and its Imprecision AutoGSTE: Automatic Abstraction Refinement Optimizing AutoGSTE More Accurate Fan-in Analysis Precise Nodes with Lifespans State Set Containment Check Conclusions

Counterexample Analysis -- Union mux din wr rd ck B R Sel Out wr& din=DATA out=DATA !wr&rd / 2 1 DATA X X X Counter Example Edge 1 din=DATA, wr=1, rd=X, B=R=sel=X Edge 2 din=X, wr=0, rd=1, B=DATA, R=X, sel=0 Edge 2 din=X, wr=0, rd=1, B=DATA, R=X, sel=X

Counterexample Analysis -- Weak A=(variable v) B=(variable v) out=0 True / 1 2 Counter Example Edge 1 A=v, B=v Edge 2 A=X, B=X

Inefficiency in Backward Reasoning The original counterexample analysis algorithm Did not consider post-image functions mux X A B C Out Can identify more causes than necessary

Consider Post-image Functions mux X A B C Out Get the post-image function for Out Substitute circuit nodes with values in counterexample Canonicalize post-image function using BDD

Effectiveness Speculative Design of FIFOs When the mux has 24 fan-ins, number of circuit nodes identified: Original algorithm: 120 Optimized algorithm: 5 1 n … In MUX Sel

Experimental Results

Outline Overview of (G)STE Quaternary Abstraction and its Imprecision AutoGSTE: Automatic Abstraction Refinement Optimizing AutoGSTE More Accurate Fan-in Analysis Precise Nodes with Lifespans State Set Containment Check Conclusions

Model Refinement ∪ ∪ = = Quaternary Union Mark “sel” as precise node v B=DATA, R=X, sel=0 B=DATA, R=DATA, sel=1 B=DATA, R=X, sel=X ∪ = B=DATA R= sel= v 1 X DATA B=DATA, R=X, sel=0 B=DATA, R=DATA, sel=1 ∪ =

Inefficiency in Model Refinement Problem: May mark unnecessary nodes precise Solution: More accurate fan-in analysis help to reduce unnecessary precise nodes Problem: Precise nodes are made during the whole simulation Solution: Mark the circuit nodes precise only on certain assertion edges Monotonic precise node marking on each edge Trade-offs between iteration times and state spaces

Experiments on Staged Design with Speculation 1 n … In MUX Sel Staged design with speculation Hard to check using original AutoGSTE

Experimental Results

Outline Overview of (G)STE Quaternary Abstraction and its Imprecision AutoGSTE: Automatic Abstraction Refinement Optimizing AutoGSTE More Accurate Fan-in Analysis Precise Nodes with Lifespans State Set Containment Check Conclusions

Specification Refinement Loop unrolling/case-splitting transformations on assertion graphs wr& din=DATA out=DATA !wr&rd / 2 1 wr& din=DATA out=DATA !wr&rd / 3 1 2 A=(variable v) B=(variable v) out=0 True / 1 2 A=1, B=1 2 True / out=0 3 1 A=0, B=0

Inefficiency in Specification Refinement GSTE sim(e) = { [C=1, D=1], [C=v, D=0], [C=0, D=0] } = [C=X, D=X] [C=1, D=1] [C=v, D=0] Expected Result [C=1, D=1] [C=v, D=0] AutoGSTE [C=0, D=0]

Improve Specification Refinement Check if a new state s’ is contained in the state set of that assertion edge If true, fixed-point found If a previous state is contained in s’, replace with s’ Containment Check Given two state: s1, s2. Build Boolean expression (Is s1 contained in s2?) s2  s1 Satisfibility of the expression Existentially quantify out all variables in BDD

Experiments Circuit Results Without Containment Check Results with Containment Check FIFO Depth # of Edges Time (Sec.) Mem (MB) 3 11 51 0.32 12 25 0.3 8 26 296 2.98 14 145 2.56 15 16 50 1104 16.97 22 545 13.9 17 24 74 2424 33 1201 44.3 20

Outline Overview of (G)STE Quaternary Abstraction and its Imprecision AutoGSTE: Automatic Abstraction Refinement Optimizing AutoGSTE More Accurate Fan-in Analysis Precise Nodes with Lifespans State Set Containment Check Conclusions

Conclusions Optimization of Counterexample Analysis Consider post-image function and unknown conditions Effective in reducing unnecessary X-chasing Optimization of Model Refinement Extend precise node with lifespans Effective in reducing memory usage Optimization of Specification Refinement Containment check for state set unions Effective in reducing unnecessary loop unrolling and case splitting