Verification of data-insensitive circuits: An in-order-retirement case study

T. Arons and A. Pnueli

There is a large class of circuits (including pipeline and out-of-order execution components) which can be formally verified while completely ignoring the precise characteristics (e.g. word-size) of the data manipulated by the circuits. In the literature, this is often described as the use of uninterpreted functions, implying that the concrete operations applied to the data are abstracted into unknown and featureless functions. In this paper, we briefly introduce an abstract unifying model for such data-insensitive circuits, and claim that the development of such models, perhaps even a theory of circuit schemas, can significantly contribute to the development of efficient and comprehensive verification algorithms combining deductive as well as enumerative methods.

As a case study, we present in this paper an algorithm for out-of-order execution with in-order retirement and show it to be a refinement of the sequential instruction execution algorithm. Refinement is established by deductively proving (using PVS) that the register files of the out-of-order algorithm and the sequential algorithm agree at all times if the two systems are synchronized at instruction retirement time.

FMCAD'98 Formal Methods in Computer-Aided Design


Gzipped PostScript

PVS dump file

We provide the PVS dump files used in the verification of a model with out-of-order execution with in-order-retirement.
We used PVS Version 2.1 (patch level 2.414)

The top level file allFiles is a dummy file used to get a dump of the next two files, Refine and SplitEqual.

Refine contains the refinement relation between the sequential system (seq.pvs) and the out-of-order execution in-order-retirement (InOrder.pvs).
A number of invariants of the OOO model (found in InOrder.pvs) are defined in files InvDefs and InvDefs2 and proved in InOrderProp and InOrderP2, respectively.
File IOdef gives definitions of data structures in the OOO model, while the file def gives definitions common to both seq and the OOO model.

File SplitEqual proves that our split transition relation is equal to the unified one, both of which are found in InOrder.