Techniques for verifying superscalar microprocessors
DAC '96 Proceedings of the 33rd annual Design Automation Conference
Proceedings of the 36th annual ACM/IEEE Design Automation Conference
Proceedings of the 37th Annual Design Automation Conference
ACM Transactions on Computational Logic (TOCL)
The memory gap and the future of high performance memories
ACM SIGARCH Computer Architecture News
Chaff: engineering an efficient SAT solver
Proceedings of the 38th annual Design Automation Conference
Boolean satisfiability with transitivity constraints
ACM Transactions on Computational Logic (TOCL)
Computer architecture: a quantitative approach
Computer architecture: a quantitative approach
Decomposing refinement proofs using assume-guarantee reasoning
Proceedings of the 2000 IEEE/ACM international conference on Computer-aided design
The small model property: how small can it be?
Information and Computation
Bit-Level Abstraction in the Verfication of Pipelined Microprocessors by Correspondence Checking
FMCAD '98 Proceedings of the Second International Conference on Formal Methods in Computer-Aided Design
Relating Multi-step and Single-Step Microprocessor Correctness Statements
FMCAD '02 Proceedings of the 4th International Conference on Formal Methods in Computer-Aided Design
Automatic Abstraction of Memories in the Formal Verification of Superscalar Microprocessors
TACAS 2001 Proceedings of the 7th International Conference on Tools and Algorithms for the Construction and Analysis of Systems
BDD Based Procedures for a Theory of Equality with Uninterpreted Functions
CAV '98 Proceedings of the 10th International Conference on Computer Aided Verification
You Assume, We Guarantee: Methodology and Case Studies
CAV '98 Proceedings of the 10th International Conference on Computer Aided Verification
Verifying Advanced Microarchitectures that Support Speculation and Exceptions
CAV '00 Proceedings of the 12th International Conference on Computer Aided Verification
Automatic verification of Pipelined Microprocessor Control
CAV '94 Proceedings of the 6th International Conference on Computer Aided Verification
A Fault Tolerant Approach to Microprocessor Design
DSN '01 Proceedings of the 2001 International Conference on Dependable Systems and Networks (formerly: FTCS)
Journal of Symbolic Computation
AR-SMT: A Microarchitectural Approach to Fault Tolerance in Microprocessors
FTCS '99 Proceedings of the Twenty-Ninth Annual International Symposium on Fault-Tolerant Computing
Experience with Term Level Modeling and Verification of the M*Core microprocessor Core.
HLDVT '01 Proceedings of the Sixth IEEE International High-Level Design Validation and Test Workshop (HLDVT'01)
BerkMin: A Fast and Robust Sat-Solver
Proceedings of the conference on Design, automation and test in Europe
SSD: An Affordable Fault Tolerant Architecture for Superscalar Processors
PRDC '01 Proceedings of the 2001 Pacific Rim International Symposium on Dependable Computing
Formal verification of an advanced pipelined machine
Formal verification of an advanced pipelined machine
Systematic verification of pipelined microprocessors
Systematic verification of pipelined microprocessors
Proceedings of the conference on Design, automation and test in Europe - Volume 1
Efficient translation of boolean formulas to CNF in formal verification of microprocessors
Proceedings of the 2004 Asia and South Pacific Design Automation Conference
Method for formal verification of soft-error tolerance mechanisms in pipelined microprocessors
ICFEM'10 Proceedings of the 12th international conference on Formal engineering methods and software engineering
Automatic formal verification of reconfigurable DSPs
Proceedings of the 16th Asia and South Pacific Design Automation Conference
ICFEM'11 Proceedings of the 13th international conference on Formal methods and software engineering
Automatic formal verification of multithreaded pipelined microprocessors
Proceedings of the International Conference on Computer-Aided Design
Hi-index | 0.00 |
Presented are abstraction techniques that accelerate the formal verification of pipelined processors with value prediction. The formal verification is done by modeling based on the logic of Equality with Uninterpreted Functions and Memories (EUFM), and using an automatic tool flow. Applying special abstractions in previous work had resulted in EUFM correctness formulas where most of the terms (abstract wordlevel values) appear in only positive equations (equality comparisons) or as arguments of uninterpreted functions and uninterpreted predicates, allowing such terms to be treated as distinct constants - a property called Positive Equality. That property produced orders of magnitude speedup. However, in processors with value prediction, the mechanism for correcting value mispredictions introduces both positive and negated equations between the actual and predicted values, thus reducing significantly the potential for exploiting Positive Equality. The contributions of this paper are: 1) modeling and formal verification of pipelined processors with loadvalue prediction and fully implemented mechanism for correcting load-value mispredictions; 2) an approach to abstract the mechanism for detecting load-value mispredictions, thus allowing the use of Positive Equality, at the cost of enriching the specification processor with the abstracted mechanism for detecting load-value mispredictions; and 3) the observation that this abstraction technique is general and applicable to the formal verification of pipelined processors with other forms of value prediction, e.g., branch prediction, as illustrated with experimental results. The presented abstraction technique produced an order of magnitude speedup when formally verifying a 5-stage pipelined processor with load-value prediction. It can be expected that the speedup would be significantly greater for more complex processors with value prediction.