Abstract
ACL2 is a mechanized mathematical logic intended for use in specifying and proving properties of computing machines. In two independent projects, industrial engineers have collaborated with researchers at Computational Logic, Inc. (CLI), to use ACL2 to model and prove properties of state-of-the-art commercial microprocessors prior to fabrication. In the first project, Motorola, Inc., and CLI collaborated to specify Motorola's complex arithmetic processor (CAP), a single-chip, digital signal processor (DSP) optimized for communications signal processing. Using the specification, we proved the correctness of several CAP microcode programs. The second industrial collaboration involving ACL2 was between Advanced Micro Devices, Inc. (AMD) and CLI. In this work we proved the correctness of the kernel of the floating-point division operation on AMD's first Pentium-class microprocessor, the AMD5 K 86. In this paper, we discuss ACL2 and these industrial applications, with particular attention to the microcode verification work.
The theorem prover used in this work was supported in part at Computational Logic, Inc., by the Defense Advanced Research Projects Agency, ARPA Order 7406, and the Office of Naval Research, Contract N00014-94-C-0193. The views and conclusions contained in this document are those of the author(s) and should not be interpreted as representing the official policies, either expressed or implied, of Advanced Micro Devices, Inc., Motorola, Inc., Computational Logic, Inc., the Defense Advanced Research Projects Agency, the Office of Naval Research, or the U.S. Government.
Preview
Unable to display preview. Download preview PDF.
References
K. Albin. Validating the ACL2 CAP Model. CAP Technical Report 9, Computational Logic, Inc., 1717 W. 6th, Austin, TX 78703 March, 1995.
R. S. Boyer and J. S. Moore. A Computational Logic. Academic Press: NewYork, 1979.
R. S. Boyer and J S. Moore. A Computational Logic Handbook, Academic Press: New York, 1988.
R. S. Boyer and Y. Yu. Automated Proofs of Object Code for a Widely Used Microprocessor, JACM, 43(1) January, 1996, pp. 166–192.
B. Brock. The CAP 94 Specification, CAP Technical Report 8, Computational Logic, Inc., 1717 W. 6th, Austin, TX 78703, July, 1995.
B. Brock. Formal Analysis of the CAP Instruction Pipeline, CAP Technical Report 10, Computational Logic, Inc., 1717 W. 6th, Austin, TX 78703, June, 1996.
B. Brock. Formal Verification of CAP Applications, CAP Technical Report 15, Computational Logic, Inc., 1717 W. 6th, Austin, TX 78703, June, 1996.
R. E. Bryant. Bit-Level Analysis of an SRT Divider Circuit, CMU-CS-95-140, School of Computer Science, Carnegie Mellon University, Pittsburg, PA 15213.
R. E. Bryant and Y. A. Chen. Verification of arithmetic functions with binary moment diagrams. In Proceedings of the 32nd ACM/IEEE Design Automation Conference IEEE Computer Society Press, June 1995.
J. R. Burch, E. M. Clarke, D. E. Long, K. L. McMillan and D. L. Dill. Symbolic Model Checking for Sequential Circuit Verification, IEEE Trans. on Computer-Aided Design of Integrated Circuits and Systems 13(4) April, 1994, pp. 401–424.
J. R. Burch and D. L. Dill. Automatic verification of pipelined microprocessor control. in David Dill, editor, Computer-Aided Verification, CAV '94, Stanford, CA, Springer-Verlag, Lecture Notes in Computer Science Volume 818, June, 1994, pp. 68–80.
E. M. Clarke, S. M. German and X. Zhao. Verifying the SRT Division Algorithm using Theorem Proving Techniques, Proceedings of Conference on Computer-Aided Verification, CAV '96, July, 1996.
E. M. Clarke, M. Fujita, and X. Zhao. Hybrid Decision Diagrams, ICCAD95, 1995, pp. 159–163.
E. M. Clarke, O. Grumberg, H. Hiraishi, S. Jha, D. E. Long, K. L. McMillan and L. A. Ness. Verification of the Futurebus+ Cache Coherence Protocol, Proc. CHDL, 1993.
J. Crow, S. Owre, J. Rushby, N. Shankar, and M. Srivas. A Tutorial Introduction to PVS, presented at Workshop on Industrial-Strength Formal Specification Techniques, Boca Raton, FL, April 1995 (see http://www.csl.sri.com/pvs.html).
S. Gilfeather, J. Gehman, and C. Harrison. Architecture of a Complex Arithmetic Processor for Communication Signal Processsing in SPIE Proceedings, International Symposium on Optics, Imaging, and Instrumentation, 2296 Advanced Signal Processing: Algorithms, Architectures, and Implementations V, July, 1994, pp. 624–625.
Z. Har'El and R. P. Kurshan. Software for Analytical Development of Communications Protocols, AT&T Bell Laboratories Technical Journal, 69(1) Jan–Feb, 1990, pp. 45–59.
C. Harrison. Hardware Verification of the Complex Arithmetic Processor XY Address Generator. CAP Technical Report 16, Computational Logic, Inc., 1717 W. 6th, Austin, TX 78703, August, 1995.
W. A. Hunt, Jr. Microprocessor Design Verification. Journal of Automated Reasoning, 5(4), pp. 429–460, 1989.
W. A. Hunt, Jr. and B. Brock. A Formal HDL and its use in the FM9001 Verification. Proceedings of the Royal Society, 1992.
W. A. Hunt, Jr. CAP Pin-level Specifications, CAP Technical Report 12, Computational Logic, Inc., 1717 W. 6th, Austin, TX 78703, April, 1996.
M. Kaufmann and J S. Moore. High-Level Correctness of ACL2: A Story, URL ftp://ftp.cli.com/pub/acl2/v1-8/acl2-sources/reports/story.txt, September, 1995.
M. Kaufmann and J S. Moore. ACL2 Version 1.8, URL ftp://ftp.cli.-com/pub/acl2/v1-8/acl2-sources/doc/HTML/acl2-doc.html, 1995.
M. Kaufmann and J S. Moore. ACL2: An Industrial Strength Version of Nqthm. In Proceedings of the Eleventh Annual Conference on Computer Assurance (COMPASS-96), IEEE Computer Society Press, June, 1996, pp. 23–34.
M. Kaufmann and P. Pecchiari. Interaction with the Boyer-Moore and Theorem Prover: A Tutorial Study Using the Arithmetic-Geometric Mean Theorem. Journal of Automated Reasoning 16(1–2) March, 1996, pp. 181–222.
S. P. Miller and M. Srivas. Formal Verification of the AAMP5 Microprocessor: A Case Study in the Industrial Use of Formal Methods, in Proceedings of WIFT '95: Workshop on Industrial-Strength Formal Specification Techniques, IEEECS, April, 1995, pp. 2–16.
P. M. Miner. Defining the IEEE-854 Floating-Point Standard in PVS, NASA Technical Memorandum 110167, NASA Langely Research Center, Hampton, VA 23681, 1995.
J S. Moore. Piton: A Mechanically Verified Assembly-Level Language, Automated Reasoning Series, Kluwer Academic Publishers, 1996.
J S. Moore, T. Lynch, and M. Kaufmann. A Mechanically Checked Proof of the Correctness of the Kernel of the AMD5K86 Floating-Point Division Algorithm, March, 1996, URL http://devil.ece.utexas.edu:80/∼lynch/divide/-divide.html.
A. V. Oppenheim and R. W. Scahfer. Discrete-Time Signal Processing. Prentice Hall, Englewood Cliffs, New Jersey, 1989.
K. M. Pitman et al. drafi proposed American National Standard for Information Systems — Programming Language — Common Lisp; X3J13/93-102.Global Engineering Documents, Inc., 1994.
H. Ruess, M. K. Srivas, and N. Shankar. Modular Verification of SRT Division, Computer Science Laboratory, SRI International, Menlo Park, CA 49025, 1996.
M. Srivas and M. Bickford. Formal Verification of a Pipelined Microprocessor, IEEE Software, September, 1990, pp. 52–64.
V. Stavridou. Gordon's Computer: A Hardware Verification Case Study in OBJ3, Formal Methods in System Design, 4(3), 1994, pp. 265–310.
G. L. Steele, Jr. Common LISP: The Language, Digital Press: Bedford, MA, 1984.
G. L. Steele, Jr. Common Lisp The Language, Second Edition. Digital Press, 30 North Avenue, Burlington, MA 01803, 1990.
U. Stern and D. L. Dill. Automatic Verification of the SCI Cache Coherence Protocol, in Proceedings of IFIP WG 10.5 Advanced Research Working Conference on Correct Hardware Design and Verification Methods, 1995, pp. 21–34.
Y. Yu. Automated Proofs of Object Code for a Widely used Microprocessor, Technical Report 92, Computational Logic, Inc., 1717 W. 6th, Austin, TX 78703, May, 1993. URL http://www.cli.com/reports/files/92.ps.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Brock, B., Kaufmann, M., Moore, J.S. (1996). ACL2 theorems about commercial microprocessors. In: Srivas, M., Camilleri, A. (eds) Formal Methods in Computer-Aided Design. FMCAD 1996. Lecture Notes in Computer Science, vol 1166. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0031816
Download citation
DOI: https://doi.org/10.1007/BFb0031816
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-61937-6
Online ISBN: 978-3-540-49567-3
eBook Packages: Springer Book Archive