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
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).
File SplitEqual proves that our split transition relation is equal to the
unified one, both of which are found in InOrder.
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)
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.