Deductive Verification of Advanced Out-of-Order Microprocessors

This paper demonstrates the modeling and deductive verification of out-of-order microprocessors of varying complexities using a logic of Counter Arithmetic with Lambda Expressions and Uninterpreted Functions (CLU). The microprocessors support combinations of out-of-order instruction execution, superscalar operation, branch prediction, execute and memory exceptions, and load-store buffering. We illustrate that the logic is expressive enough to model components found in modern processors. The paper describes the challenges in modeling and verification with the addition of different design features. The paper demonstrates the effective use of automatic decision procedure to reduce the amount of manual guidance required in discharging most proof obligations in the verification. Unlike previous methods, the verification scales well for superscalar processors with wide dispatch and retirement widths.

[1]  Jun Sawada,et al.  Processor Verification with Precise Exeptions and Speculative Execution , 1998, CAV.

[2]  Armin Biere,et al.  Combining Symbolic Model Checking with Uninterpreted Functions for Out-of-Order Processor Verification , 1998, FMCAD.

[3]  Natarajan Shankar,et al.  PVS: A Prototype Verification System , 1992, CADE.

[4]  Ranjit Jhala,et al.  Microarchitecture Verification by Compositional Model Checking , 2001, CAV.

[5]  David L. Dill,et al.  Formal Verification of Out-of-Order Execution Using Incremental Flushing , 1998, CAV.

[6]  Sanjit A. Seshia,et al.  Modeling and Verifying Systems Using a Logic of Counter Arithmetic with Lambda Expressions and Uninterpreted Functions , 2002, CAV.

[7]  Andreas Blass,et al.  Inadequacy of computable loop invariants , 2001, TOCL.

[8]  Randal E. Bryant,et al.  Processor verification using efficient reductions of the logic of uninterpreted functions to propositional logic , 1999, TOCL.

[9]  Amir Pnueli,et al.  A Comparison of Two Verification Methods for Speculative Instruction Execution , 2000, TACAS.

[10]  David L. Dill,et al.  Validity Checking for Combinations of Theories with Equality , 1996, FMCAD.

[11]  Robert S. Boyer,et al.  A Theorem Prover for a Computational Logic , 1990, CADE.

[12]  Sanjit A. Seshia,et al.  Modeling and Verification of Out-of-Order Microprocessors in UCLID , 2002, FMCAD.

[13]  Ganesh Gopalakrishnan,et al.  Verifying Advanced Microarchitectures that Support Speculation and Exceptions , 2000, CAV.

[14]  David L. Dill,et al.  Automatic verification of Pipelined Microprocessor Control , 1994, CAV.

[15]  Yuri Gurevich The Decision Problem for Standard Classes , 1976, J. Symb. Log..

[16]  Miroslav N. Velev,et al.  Using rewriting rules and positive equality to formally verify wide-issue out-of-order microprocessors with a reorder buffer , 2002, Proceedings 2002 Design, Automation and Test in Europe Conference and Exhibition.