Formal verification of superscalar microprocessors with multicycle functional units, exceptions, and branch prediction

We extend the Burch and Dill flushing technique [6] for formal verification of microprocessors to be applicable to designs where the functional units and memories have multicycle and possibly arbitrary latency. We also show ways to incorporate exceptions and branch prediction by exploiting the properties of the logic of Positive Equality with Uninterpreted Functions [4][5]. We study the modeling of the above features in different versions of dual-issue superscalar processors.

[1]  Poul Frederick Williams,et al.  Formal Verification based on Boolean Expression Diagrams , 2001, Electronical Notes in Theoretical Computer Science.

[2]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

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

[4]  Wilhelm Ackermann,et al.  Solvable Cases Of The Decision Problem , 1954 .

[5]  Ganesh Gopalakrishnan,et al.  Decomposing the Proof of Correctness of pipelined Microprocessors , 1998, CAV.

[6]  Jun Sawada,et al.  Hardware Modeling Using Function Encapsulation , 2000, FMCAD.

[7]  Armin Biere,et al.  Verification of Out-Of-Order Processor Designs Using Model Checking and a Light-Weight Completion Function , 2002, Formal Methods Syst. Des..

[8]  Warren A. Hunt FM8501: A Verified Microprocessor , 1994, Lecture Notes in Computer Science.

[9]  Richard Rudell Dynamic variable ordering for ordered binary decision diagrams , 1993, ICCAD.

[10]  Stephan Merz,et al.  Model Checking , 2000 .

[11]  David L. Dill,et al.  Reducing Manual Abstraction in Formal Verification of Out-of-Order Execution , 1998, FMCAD.

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

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

[14]  David A. Patterson,et al.  Computer Architecture - A Quantitative Approach, 5th Edition , 1996 .

[15]  R. Rudell Dynamic variable ordering for ordered binary decision diagrams , 1993, ICCAD 1993.

[16]  Donald S. Fussell,et al.  Formal verification of an advanced pipelined machine , 1999 .

[17]  Randal E. Bryant,et al.  Boolean Satisfiability with Transitivity Constraints , 2000, CAV.

[18]  Jerry R. Burch,et al.  Mechanically Checking a Lemma Used in an Automatic Verification Tool , 1996, FMCAD.

[19]  Miroslav N. Velev,et al.  Formal Verification of VLIW Microprocessors with Speculative Execution , 2000, CAV.

[20]  Randal E. Bryant,et al.  Incorporating timing constraints in the efficient memory model for symbolic ternary simulation , 1998, Proceedings International Conference on Computer Design. VLSI in Computers and Processors (Cat. No.98CB36273).

[21]  Amir Pnueli,et al.  Deciding Equality Formulas by Small Domains Instantiations , 1999, CAV.

[22]  Armin Biere,et al.  Combining Decision Diagrams and SAT Procedures for Efficient Symbolic Model Checking , 2000, CAV.

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

[24]  Randal E. Bryant,et al.  Exploiting Positive Equality in a Logic of Equality with Uninterpreted Functions , 1999, CAV.

[25]  Donald E. Thomas,et al.  The Verilog® Hardware Description Language , 1990 .

[26]  Randal E. Bryant,et al.  Bit-Level Abstraction in the Verfication of Pipelined Microprocessors by Correspondence Checking , 1998, FMCAD.

[27]  Jerry R. Burch Techniques for verifying superscalar microprocessors , 1996, DAC '96.

[28]  Randal E. Bryant,et al.  Superscalar Processor Verification Using Efficient Reductions of the Logic of Equality with Uninterpreted Functions to Propositional Logic , 1999, CHARME.

[29]  David A. Patterson,et al.  Computer architecture (2nd ed.): a quantitative approach , 1996 .

[30]  Ganesh Gopalakrishnan,et al.  Systematic verification of pipelined microprocessors , 2000 .

[31]  Ganesh Gopalakrishnan,et al.  Proof of Correctness of a Processor with Reorder Buffer Using the Completion Functions Approach , 1999, CAV 1999.

[32]  Randal E. Bryant,et al.  Symbolic Boolean manipulation with ordered binary-decision diagrams , 1992, CSUR.

[33]  Randal E. Bryant Bit-Level Abstraction in the Verification of Pipelined , 1998 .