A Mechanically Checked Proof of Correctness of the AMD K5 Floating Point Square Root Microcode | Formal Methods in System Design Skip to main content
Log in

A Mechanically Checked Proof of Correctness of the AMD K5 Floating Point Square Root Microcode

  • Published:
Formal Methods in System Design Aims and scope Submit manuscript

Abstract

We present a rigorous mathematical proof of the correctness of the floating point square root instruction of the AMD K5 microprocessor. The instruction is represented as a program in a formal language that was designed for this purpose, based on the K5 microcode and the architecture of its FPU. We prove a statement of its correctness that corresponds directly with the IEEE Standard. We also derive an equivalent formulation, expressed in terms of rational arithmetic, which has been encoded as a formula in the ACL2 logic and mechanically verified with the ACL2 prover. Finally, we describe a microcode modification that was implemented as a result of this analysis in order to ensure the correctness of the instruction.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Subscribe and save

Springer+ Basic
¥17,985 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price includes VAT (Japan)

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. R.S. Boyer and J. Moore, A Computational Logic Handbook, Academic Press, Boston, MA, 1988.

    Google Scholar 

  2. R.E. Bryant, Verification of arithmetic functions with binary moment diagrams, Technical Report CMU-CS–94–160, School of Computer Science, Carnegie-Mellon University, 1994.

  3. E.M. Clarke and X. Zhao, Word level symbolic model checking: A new approach for verifying arithmetic circuits, Technical Report CMU-CS–95–161, School of Computer Science, Carnegie-Mellon University, 1995.

  4. J. Harrison, Floating point verification in HOL, in Proc. 8th Intl. Workshop on Higher Order Logic Theorem Proving and its Applications, Springer-Verlag, 1995.

  5. Institute of Electrical and Electronic Engineers, IEEE standard for binary floating point arithmetic, Std. 754–1985, New York, NY, 1985.

  6. Intel Corporation, Pentium Family User's Manual, Vol. 3: Architecture and Programming Manual, 1994.

  7. M. Kaufmann and J. Moore, A precise description of the ACL2 logic, http://www.cs.utexas.edu/users/moore/acl2/reports/km97a.ps

  8. M. Leeser and J. O'Leary, Verification of a subtractive Radix-2 square root algorithm and implementation, in Proc. Intl. Conf. on Computer Design, 1995.

  9. P. Miner and J. Leathrum, Verification of IEEE compliant subtractive division algorithms, in M. Srivas and A. Camilleri (Eds.), Proceedings of Formal Methods in Computer-Aided Design (FMCAD) '96, Springer-Verlag LNCS 1166, pp. 275–293, 1996.

  10. J. Moore, T. Lynch, and M. Kaufmann, A mechanically checked proof of the correctness of the kernel of the AMD5K 86 floating-point division algorithm, http://devil.ece.utexas.edu/lynch/divide/divide.html

  11. H. Rueß, M.K. Srivas, and N. Shankar, Modular verification of SRT division, in R. Alur and T. Henzinger (Eds.), Computer-Aided Verification (CAV '96), Springer Verlag LNCS 1102, pp. 123–134, July 1996.

  12. D.M. Russinoff, A mechanically checked proof of IEEE compliance of the AMD K7 floating point multiplication, division, and square root instructions, http://www.onr.com/user/russ/david/k7-div-sqrt.ps.

  13. G.L. Steele, Jr., Common Lisp The Language, 2nd edition, Digital Press, 1990.

Download references

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Russinoff, D.M. A Mechanically Checked Proof of Correctness of the AMD K5 Floating Point Square Root Microcode. Formal Methods in System Design 14, 75–125 (1999). https://doi.org/10.1023/A:1008669628911

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1008669628911

Navigation