posted on 1980-01-01, 00:00authored byShuvendu K Lahiri, Randal E. Bryant
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.