DocumentCode
1425582
Title
A mechanically checked proof of the AMD5K86TM floating-point division program
Author
Moore, J. Strother ; Lynch, Thomas W. ; Kaufmann, Matt
Author_Institution
Dept. of Comput. Sci., Texas Univ., Austin, TX, USA
Volume
47
Issue
9
fYear
1998
fDate
9/1/1998 12:00:00 AM
Firstpage
913
Lastpage
926
Abstract
We report on the successful application of a mechanical theorem prover to the problem of verifying the division microcode program used on the AMD5K86 microprocessor. The division algorithm is an iterative shift and subtract type. It was implemented using floating point microcode instructions. As a consequence, the floating quotient digits have data dependent precision. This breaks the constraints of conventional SRT division theory. Hence, an important question was whether the algorithm still provided perfectly rounded results at 24, 53, or 64 bits. The mechanically checked proof of this assertion is the central topic of the paper. The proof was constructed in three steps. First, the divide microcode was translated into a formal intermediate language. Then, a manually created proof was transliterated into a series of formal assertions in the ACL2 dialect. After many expansions and modifications to the original proof, the theorem prover certified the assertion that the quotient will always be correctly rounded to the target precision
Keywords
firmware; floating point arithmetic; microprogramming; theorem proving; ACL2 dialect; AMD5K86 floating point division program; AMD5K86 microprocessor; conventional SRT division theory; data dependent precision; divide microcode; division algorithm; division microcode program; floating point microcode instructions; floating quotient digits; formal assertions; formal intermediate language; iterative shift and subtract; manually created proof; mechanical theorem prover; mechanically checked proof; target precision; Algorithm design and analysis; Assembly; Constraint theory; Digital arithmetic; Error analysis; Estimation error; Formal verification; Helium; Iterative algorithms; Microprocessors;
fLanguage
English
Journal_Title
Computers, IEEE Transactions on
Publisher
ieee
ISSN
0018-9340
Type
jour
DOI
10.1109/12.713311
Filename
713311
Link To Document