Accelerating the Industrial Deployment of Model-Checking for SW Verification: Lessons from 10 years...

25
Accelerating the Industrial Deployment of Model-Checking for SW Verification: Lessons from 10 years of Model Checking Deployment for HW Verification in Intel Limor Fix Intel Research

Transcript of Accelerating the Industrial Deployment of Model-Checking for SW Verification: Lessons from 10 years...

Page 1: Accelerating the Industrial Deployment of Model-Checking for SW Verification: Lessons from 10 years of Model Checking Deployment for HW Verification in.

Accelerating the Industrial Deployment of Model-Checking for SW Verification:

Lessons from 10 years of Model Checking Deployment for HW Verification in Intel

Limor Fix

Intel Research

Page 2: Accelerating the Industrial Deployment of Model-Checking for SW Verification: Lessons from 10 years of Model Checking Deployment for HW Verification in.

Page 2

Agenda

Acknowledgements

Brief History

Hardware formal verification at Intel – the first generation

Next generation

Discussion – industrial deployment of software model checking

1995

2004

Page 3: Accelerating the Industrial Deployment of Model-Checking for SW Verification: Lessons from 10 years of Model Checking Deployment for HW Verification in.

Page 3

Acknowledgements

The success of formal verification in Intel was the result of a

great collaboration between industry and academia

My team has worked with Randy Bryant, P.P. Chakrabarti, Ed Clarke, P. Dasgupta, David Dill, Enrico Giuchilia, Orna Grumberg, Scott Hazelhurst, Sharad Malik, Zohar Manna, Amir Pnueli, Assaf Schuster, Fabio Somenzi, Armando Tacchella, Moshe Vardi, and Lenore Zuck

Page 4: Accelerating the Industrial Deployment of Model-Checking for SW Verification: Lessons from 10 years of Model Checking Deployment for HW Verification in.

Page 4

Brief History First generation FPV product (Athena): 1995-1999

Tool “Prover” (FSL+SMV)Used by 2 lead CPU (Merced, WMT) during 95-99WMT post-mortem: very successful, important High-Quality-Bugs (HQB) were found, ¼ of

validation team was FV Merced post-mortem: important HQB

Second generation FPV product (Nike): 2000-2002Tool “FPV system”

ForSpec (property language), FedEx (ForSpec checkers), Forecast (BDD based model checker), Thunder (SAT based Bounded/Full model-checker), Forte(STE, FL)

Users: Lead CPU designs, Chipsets, communication chips Third generation FPV product: 2003-2005

Tool “Foresight” ForSpec (standalone and embedded), Libraries of properties (FSTL), Thunder,

FedEX+, ForesightUsers: Lead CPU designs, Chipsets, communication chips

Fourth generation: 2005-…

Page 5: Accelerating the Industrial Deployment of Model-Checking for SW Verification: Lessons from 10 years of Model Checking Deployment for HW Verification in.

Page 5

Prover: The First Generation

1995 – 1999: the deployment of the first formal property verification in Intel

Prover: The first generation of Intel formal property verification system

Prover included:

Enhanced version of SMV FSL: a specification language that was an hardware linear

temporal language inspired by LTL The compiler for FSL translated the linear logic into automata

using tableau-like algorithms FSL was used both:

to specify formal properties to be verified by the model checker and

to specify checkers to be checked dynamically during simulation of the hardware designs.

Page 6: Accelerating the Industrial Deployment of Model-Checking for SW Verification: Lessons from 10 years of Model Checking Deployment for HW Verification in.

Page 6

Prover: The first generation

Two lead CPU design teams used Prover for 4 years (in Santa Clara and Oregon)

Both teams reported successful usage, high quality bugs have been found. Either, these bugs were likely to be found by other validation tools much later in

the design cycle Or, these bugs might have escaped all the validation tools and reach the silicon

Very important leanings were generated by the two design teams

about: How Where When By whom

Also, the remaining technology challenges were identified

Page 7: Accelerating the Industrial Deployment of Model-Checking for SW Verification: Lessons from 10 years of Model Checking Deployment for HW Verification in.

Page 7

How

Automated abstraction (vs. Manual Abstraction) Property based pruning Input elimination and data abstraction Manual abstraction: did not fly

Modular verification using assume-guarantee paradigm Partitioning the design following its syntactic structure Partitioning the design following the its functionality Partitioning continued till a certain count of states was reached

Properties were developed to capture the intended behavior of

the inputs and the outputs of each module

Desired properties sometimes ended up as a large set of smaller assumptions and properties

Page 8: Accelerating the Industrial Deployment of Model-Checking for SW Verification: Lessons from 10 years of Model Checking Deployment for HW Verification in.

Page 8

Where

Only selected areas of the CPU were formally verified

These were areas of high risk in which new complex functionality was added:

Memory Cluster

Bus Cluster

Execution Cluster

Front End Cluster

Page 9: Accelerating the Industrial Deployment of Model-Checking for SW Verification: Lessons from 10 years of Model Checking Deployment for HW Verification in.

Page 9

When

Early in the design cycle, even before simulation model is ready

Pro: Bugs were revealed early and did not even reach the early simulation models

Con: RTL was unstable at that time and the RTL changes required recoding of the properties and assumptions again and again

The teams ended up using the tools relatively late and have indicated that support for early verification would be very beneficial

Page 10: Accelerating the Industrial Deployment of Model-Checking for SW Verification: Lessons from 10 years of Model Checking Deployment for HW Verification in.

Page 10

By Whom

Both the validation and the RTL-design groups used Prover

Number of users: More validators than designers

Effectiveness: Designers used Prover more effectively

Page 11: Accelerating the Industrial Deployment of Model-Checking for SW Verification: Lessons from 10 years of Model Checking Deployment for HW Verification in.

Page 11

Challenges Identified

Limited capacity of the model checker

Assumption handling Hard to know which assumptions were needed Hard to identify circular reasoning Hard to make sure all assumptions were verified

Development of high quality specification was very difficult

Hard to develop high level properties that do not mimic the details of the implementation,

Hard to train the designers to use a linear temporal language Impossible to know if enough properties were developed to express the

entire desired behavior of the design, Hard to maintain the properties since the design was changing

Page 12: Accelerating the Industrial Deployment of Model-Checking for SW Verification: Lessons from 10 years of Model Checking Deployment for HW Verification in.

Page 12

Challenges Identified

Need to replace current validation activity or at least integrate formal verification into current design or validation activity

Page 13: Accelerating the Industrial Deployment of Model-Checking for SW Verification: Lessons from 10 years of Model Checking Deployment for HW Verification in.

Page 13

Simulation only - RTLer flow

RTL development / update

MASold/wwXX

RTL

RTL check-in

mini regressionRTL CTEsimulation

RTLwwXX+1

checked in

Cluster validation flowFull Chip

validation flow

Debug using

bug?

yes no

build test and run

RTL simulation

bugs

Page 14: Accelerating the Industrial Deployment of Model-Checking for SW Verification: Lessons from 10 years of Model Checking Deployment for HW Verification in.

Page 14

Simulation Only - Cluster Validator’s Flow

Ramp on Design

MAS/RTL

Develop/update test-plan

Develop CTE environment

Develop CTE checkers

Develop Coverage

Build & Run CTE

Analyze Checkerresults

Analyze coverageresults

RTLer

RTLer flow

bugs

CoverageDB

Test DB

Page 15: Accelerating the Industrial Deployment of Model-Checking for SW Verification: Lessons from 10 years of Model Checking Deployment for HW Verification in.

Page 15

Simulation Only – Full Chip Validator’s Flow

Develop/update test-plan

Develop/update architectural

checker

Develop testsDevelop/updateother checkers

Build & Run FC

Analyze Checkerresults

Analyze coverageresults

RTLer flow

bugs

CoverageDB

TestDB

Page 16: Accelerating the Industrial Deployment of Model-Checking for SW Verification: Lessons from 10 years of Model Checking Deployment for HW Verification in.

Page 16

Next Generations In the following years:

New specification language (ForSpec)

Libraries of properties

Compilers that automatically generate properties and assumptions

Multiple engines: SAT-based model checker Symbolic simulation engine Parallel model checker

Formal specification coverage tools Measure the completeness of the set of properties that have been developed

Database of properties and assumptions to help detect circular reasoning and track the status of all properties

Verification manager

Verification tools for microcode

Page 17: Accelerating the Industrial Deployment of Model-Checking for SW Verification: Lessons from 10 years of Model Checking Deployment for HW Verification in.

Page 17

Next Generations – Property Language ForSpec

ForSpec has two versions: A standalone version in which the properties are developed in a separate

file

An embedded version in which properties are developed as embedded assertions inside the RTL model, that is, as part of the Verilog code

PSL and SVA IEEE standards Intel has donated ForSpec to AccelleraThe resulting PSL IEEE standard, has adopted major parts of

ForSpec standalone version. The resulting SVA IEEE standard for SystemVerilog assertion

has also adopted major parts of ForSpec embedded version

Page 18: Accelerating the Industrial Deployment of Model-Checking for SW Verification: Lessons from 10 years of Model Checking Deployment for HW Verification in.

Page 18

RTLer flow with Foresight

RTL development / update

MASold/wwXX

RTL

RTL check-in

mini regressionRTL CTEsimulation

RTLwwXX+1

checked in

Cluster validation flow FC validation flow

Debug

bug?

yes no

Assertionsinsertion

checkingassertions

checkingassertions

build test and run

RTL simulation

(semi)-Formalverification of

assertions

coverageDB

Test /properties

DB

bugs

Page 19: Accelerating the Industrial Deployment of Model-Checking for SW Verification: Lessons from 10 years of Model Checking Deployment for HW Verification in.

Page 19

Summary of the deployment of formal property verification in Intel

Took five years to move from experimental deployment to wide deployment

Close interaction with early adopters – a must

Understanding the current flows and challenges – a must

Industrial standards – very important

Major success

Centrino validator: “FV saved us a lot of Debug effort. FV cleaned the XXX bugs inside the modules and left us to deal only with the Full Chip context bugs. Given the circumstances ……… and other difficulties ………, without FV cleaning the bugs inside the modules before we even started, I think we couldn’t make it to Tap-Out on time”

Page 20: Accelerating the Industrial Deployment of Model-Checking for SW Verification: Lessons from 10 years of Model Checking Deployment for HW Verification in.

Page 20

Industrial deployment of model checking for SW verification

Need to think about: How Where When By Whom

Page 21: Accelerating the Industrial Deployment of Model-Checking for SW Verification: Lessons from 10 years of Model Checking Deployment for HW Verification in.

Page 21

How

Embedded assertions Have been proven very successful in hardware verification Need to be dense enough Generate some of them automatically Develop a library of parameterized assertions Embedded assertions need to be utilized for several propose:

compiler optimization debugging using gdb-like debuggers

Database of assertions need to be generated automatically from the program code for managing the status of the assertions

False negativeUse assertion as run time checkersFocus first on previously passing assertionsTowards “tap out” clean all failing assertions

Page 22: Accelerating the Industrial Deployment of Model-Checking for SW Verification: Lessons from 10 years of Model Checking Deployment for HW Verification in.

Page 22

Where

Parallel programs Most state-of-the-art computing devices have multiple processing units

and the move to chip multiprosessors is happening very fast. New programming paradigms are being developed to combat the

difficulties of parallel programming. The new developed languages should include embedded assertions as

integral part of the language Security

The problem of viruses, spyware, and worms is growing fast and has very high costs.

Extra efforts to reduce vulnerability of software are likely to be invested to prevent these costs.

Page 23: Accelerating the Industrial Deployment of Model-Checking for SW Verification: Lessons from 10 years of Model Checking Deployment for HW Verification in.

Page 23

When

Assertions development should become an integral part of writing (and Compiling) software

Page 24: Accelerating the Industrial Deployment of Model-Checking for SW Verification: Lessons from 10 years of Model Checking Deployment for HW Verification in.

Page 24

By Whom

Most assertions need to be developed by the programmers themselves and should be always turned on

The validation teams may add more assertions later and most importantly they need to work with the assertion database to complete the verification of all assertions.

Page 25: Accelerating the Industrial Deployment of Model-Checking for SW Verification: Lessons from 10 years of Model Checking Deployment for HW Verification in.

Page 25

Thank You