Definition
In Burch-Dill-style microprocessor verification, an abstraction function (\alpha) maps states of a microprocessor implementation to architectural states. The verification obligation is to prove that this mapping is maintained by each cycle of processor operation. [C2]
Role in microprocessor verification
The architectural target is an ISA model: a sequential specification that describes the effect of each instruction on architectural state, including registers, the program counter, and memory. [C1] Pipelined implementations overlap multiple instructions, so formal verification must show that the pipelined execution faithfully implements the sequential ISA semantics for all possible instruction sequences. [C1]
Within this setting, the abstraction function provides the bridge between the implementation state of the pipeline and the architectural state of the sequential ISA model. Burch and Dill's approach requires proving that such a function exists and is preserved across processor cycles. [C2]
Automatic computation by flushing
A key contribution attributed to Burch and Dill is that the abstraction function can be computed automatically by symbolically simulating the microprocessor as it flushes instructions out of the pipeline. [C3] The evidence notes that many pipelined processors already include mechanisms for flushing instructions, because flushing is needed to bring the pipeline to a quiescent state for exceptional conditions such as halting or interrupt handling. [C3]
For a single-issue microprocessor, this leads to a correspondence-checking proof structure: compare two symbolic simulations, one in which the pipeline is flushed and then a single instruction is executed in the ISA model, and another in which the pipeline runs for one normal cycle and then flushes. [C4]
Relationship to abstraction in modeling
The same source describes Burch and Dill's broader use of abstraction in verification. Instead of requiring precise bit-level models, their method uses term-level modeling, in which data representations and operations are abstracted as symbolic terms and units such as decoders and ALUs can be represented by uninterpreted functions. [C5] These abstractions allow verification to focus on pipeline control logic. [C5]
Verification scope
Burch-Dill verification establishes a safety property: every cycle of processor operation has an effect consistent with some number (k) of ISA-model steps, including (k = 0), where a cycle makes no program progress. [C6] The source also notes that this safety result alone does not rule out deadlock; liveness must additionally be verified to show that the processor cannot remain forever without making progress. [C6]