Debugging and optimizing high performance superscalar out-of-order processors using formal verification techniques

This paper proposes a multiplexer based method, which has been used for RTL/gate level debugging, into cycle accurate design of high performance microprocessors so that complicated superscalar out-of-order processors with performance optimization techniques can be formally debugged and optimized. The results show that our debugging method reduces the complexity of the counterexamples so that verification engineers can quickly locate the bugs. In addition, our optimization technique not only improves the performance of the target processor by avoiding unnecessary stalls and replays, but also reduces the complexity of the verification process by reducing the size of the formulas to be checked by SAT/SMT solvers despite the fact that the number of simulation cycles increases. The results show that the size of the propositional formulas for verification is reduced by up to an order of magnitude and also their verification time by up to two orders of magnitude has been reduced.

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

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

[3]  Kwang-Ting Cheng,et al.  RTL Error Diagnosis Using a Word-Level SAT-Solver , 2008, 2008 IEEE International Test Conference.

[4]  Randal E. Bryant,et al.  Formal verification of superscalar microprocessors with multicycle functional units, exceptions, and branch prediction , 2000, Proceedings 37th Design Automation Conference.

[5]  Wolfgang Rosenstiel,et al.  Organic Computing at the System on Chip Level , 2006, 2006 IFIP International Conference on Very Large Scale Integration.

[6]  David Bañeres,et al.  Variable-latency design by function speculation , 2009, 2009 Design, Automation & Test in Europe Conference & Exhibition.

[7]  David M. Bull,et al.  RazorII: In Situ Error Detection and Correction for PVT and SER Tolerance , 2009, IEEE Journal of Solid-State Circuits.

[8]  Masahiro Fujita,et al.  Pipelined Microprocessors Optimization and Debugging , 2010, ARC.

[9]  Viswanathan Subramanian,et al.  Superscalar Processor Performance Enhancement through Reliable Dynamic Clock Frequency Tuning , 2007, 37th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN'07).

[10]  Malgorzata Marek-Sadowska,et al.  ATPG-based logic synthesis: an overview , 2002, ICCAD 2002.

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

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

[13]  Robert Wille,et al.  Evaluation of Cardinality Constraints on SMT-Based Debugging , 2009, 2009 39th International Symposium on Multiple-Valued Logic.

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

[15]  Trevor Mudge,et al.  Razor: a low-power pipeline based on circuit-level timing speculation , 2003, Proceedings. 36th Annual IEEE/ACM International Symposium on Microarchitecture, 2003. MICRO-36..

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

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

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

[19]  Miroslav N. Velev,et al.  A method for debugging of pipelined processors in formal verification by Correspondence Checking , 2010, 2010 15th Asia and South Pacific Design Automation Conference (ASP-DAC).

[20]  Rolf Drechsler,et al.  Automatic Fault Localization for Property Checking , 2008, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[21]  TingTing Hwang,et al.  Synthesis of a novel timing-error detection architecture , 2008, TODE.

[22]  Marco Benedetti,et al.  A performance-driven QBF-based iterative logic array representation with applications to verification, debug and test , 2007, ICCAD 2007.

[23]  Trevor Mudge,et al.  A self-tuning DVS processor using delay-error detection and correction , 2005, VLSIC 2005.

[24]  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.

[25]  Andreas G. Veneris Fault diagnosis and logic debugging using Boolean satisfiability , 2003, Proceedings. 4th International Workshop on Microprocessor Test and Verification - Common Challenges and Solutions.