Proceedings of the 9th ACM SIGPLAN International Conference on Certified Programs and Proofs 2020
DOI: 10.1145/3372885.3373811
|View full text |Cite
|
Sign up to set email alerts
|

Verifying 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 … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
8
0

Year Published

2020
2020
2024
2024

Publication Types

Select...
3
2
1

Relationship

1
5

Authors

Journals

citations
Cited by 10 publications
(8 citation statements)
references
References 24 publications
0
8
0
Order By: Relevance
“…-how memory is organized -how an instruction is decoded into a sequence of microoperations -the set of microoperations implemented in hardware -the throughput and latency of microoperations and instructions and various others features of the microprocessor. In our previous work [21], we described what it means for an x86 instruction to be decoded and executed correctly and how our proofs capture this property. For illustrative purposes, we use the same example that was described in that work.…”
Section: Challenges Of Verifying a Single X86 Instructionmentioning
confidence: 99%
See 2 more Smart Citations
“…-how memory is organized -how an instruction is decoded into a sequence of microoperations -the set of microoperations implemented in hardware -the throughput and latency of microoperations and instructions and various others features of the microprocessor. In our previous work [21], we described what it means for an x86 instruction to be decoded and executed correctly and how our proofs capture this property. For illustrative purposes, we use the same example that was described in that work.…”
Section: Challenges Of Verifying a Single X86 Instructionmentioning
confidence: 99%
“…Finally, we note that in our previous work [21], we used GL-the predecessor of FGL-as our core verification tool. The benefits of switching to FGL have been considerable.…”
Section: Front-end and Microcode Verificationmentioning
confidence: 99%
See 1 more Smart Citation
“…Formal specification of instruction sets are critical in directly reasoning about low-level machine code [86,89,88,112], verifying computer processor architectures [138,139,132,140], compilers [141,90,142,143], verifying assembly language functions against a specification [144], binary rewriting across architectures [82], verified binary decompilation [145,78,146,103], abstract interpretation of binaries [147,148], automated testcase generation [149,100], synthesis of instruction semantics [87], and formalizing multiprocessor memory models [127,126]. There exist a number of notable specifications of ISAs (e.g., RISC-V [128,90,141], MIPS [128,119], CHERI-MIPS [128], PowerPC [143,91,90], SPARC [91], ARM [150,151,152,119,140,132,153,154] etc.)…”
Section: Defining Formal Semantics Of Isa (Other Than X86/x86-64)mentioning
confidence: 99%
“…Second, since our method can symbolically execute instructions, it can be used to generate input tests that have high coverage. While such analyses have been done at the detailed RTL level [191,192,193,139,140,194,155,138], there exists limited similar line of work at the x86-64 ISA level 15 . The most significant advantage of such symbolic execution is the ability to detect corner case or hard to detect bugs [191,195].…”
Section: Validating Processor Hardwarementioning
confidence: 99%