Verifying x86 Instruction Implementations
Shilpi Goel, Anna Slobodova, Rob Sumners, and Sol Swords

TL;DR
This paper presents a formal verification framework for verifying the correctness of x86 instruction implementations, including decoding, micro-operations, and execution, using theorem proving, symbolic simulation, and SAT solving.
Contribution
It introduces a comprehensive formal verification approach for x86 microprocessor instruction implementations, combining multiple tools within a unified framework.
Findings
Verification framework successfully models instruction decoding and execution
Automated lemma decomposition enhances verification efficiency
First known formal verification of x86 instruction implementations
Abstract
Verification of modern microprocessors is a complex task that requires a substantial allocation of resources. Despite significant progress in formal verification, the goal of complete verification of an industrial design has not been achieved. In this paper, we describe a current contribution of formal methods to the validation of modern x86 microprocessors at Centaur Technology. We focus on proving correctness of instruction implementations, which includes the decoding of an instruction, its translation into a sequence of micro-operations, any subsequent execution of traps to microcode ROM, and the implementation of these micro-operations in execution units. All these tasks are performed within one verification framework, which includes a theorem prover, a verified symbolic simulator, and SAT solvers. We describe the work of defining the needed formal models for both the architecture…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
