Skip to main content

Proving the Correctness of a Complete Microprocessor

  • Conference paper
Informatik 2000

Part of the book series: Informatik aktuell ((INFORMAT))

Abstract

This paper presents status results of a microprocessor verification project. The authors verify a complete 32-bit RISC microprocessor including the floating point unit and the control logic of the pipeline. The paper describes a formal definition of a “correct” microprocessor. This correctness criterion is proven for an implementation using formal methods. All proofs are verified mechanically by means of the theorem proving system PVS.

supported by the DFG graduate program “Effizienz und Komplexität von Algorithmen und Rechenanlagen’

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 64.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 82.00
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. J.L. Hennessy and D.A. Patterson. Computer Architecture: A Quantitative Approach. Morgan Kaufmann Publishers, INC., San Mateo, CA, 2nd edition, 1996.

    MATH  Google Scholar 

  2. D. Cyrluk, S. Rajan, N. Shankar, and M. K. Srivas. Effective theorem proving for hardware verification. In 2nd International Conference on Theorem Provers in Circuit Design, 1994.

    Google Scholar 

  3. Ravi Hosabettu, Ganesh Gopalakrishnan, and Mandayam Srivas. A proof of correctness of a processor implementing Tomasulo’s algorithm without a reorder buffer. In Correct Hardware Design and Verification Methods: IFIP WG 10.5 Internatinal Conference on Correct Hardware Design and Verification Methods (CHARME), pages 8–22. Springer, 1999.

    Google Scholar 

  4. Jun Sawada and Warren A. Hunt. Results of the verification of a complex pipelined machine model. In Correct Hardware Design and Verification Methods: IFIP WG 10.5 Internatinal Conference on Correct Hardware Design and Verification Methods (CHARME), pages 313–316. Springer, 1999.

    Google Scholar 

  5. Matt Kaufmann and J. S. Moore. ACL2: An industrial strength version of nqthm. In Proc. of the Eleventh Annual Conference on Computer Assurance, pages 23–34. IEEE Computer Society Press, 1996.

    Google Scholar 

  6. Thomas A. Henzinger, Shaz Qadeer, and Sriram K. Rajamani. You assume, we guarantee: Methodology and case studies. In Proc. 10th International Conference on Computer-aided Verification (CAV), 1998.

    Google Scholar 

  7. K.L. McMillan. Verification of an implementation of Tomasulo’s algorithm by composition model checking. In Proc. 10th International Conference on Computer Aided Verification, pages 110–121, 1998.

    Chapter  Google Scholar 

  8. W. Damm and A. Pnueli. Verifying out-of-order executions. In H.F. Li and D.K. Probst, editors, Advances in Hardware Design and Verification: IFIP WG 10.5 Internatinal Conference on Correct Hardware Design and Verification Methods (CHARME), pages 23–47. Chapmann & Hall, 1997.

    Google Scholar 

  9. M.L. McMillan. Verification of infinite state systems by compositional model checking. In Correct Hardware Design and Verification Methods: IFIP WG 10.5 Internatinal Conference on Correct Hardware Design and Verification Methods (CHARME), pages 219–233. Springer, 1999.

    Chapter  Google Scholar 

  10. Y.-A. Chen and R. E. Bryant. Verification of floating-point adders. Lecture Notes in Computer Science, 1427, 1998.

    Google Scholar 

  11. Y.-A. Chen and R. E. Bryant. PHDD: An efficient graph representation for floating point circuit verification. In IEEE/ACM International Conference on Computer Aided Design; Digest of Technical Papers (ICCAD ′97), pages 2–7, Washington - Brussels - Tokyo, November 1997. IEEE Computer Society Press.

    Google Scholar 

  12. Y.-A. Chen, E. Clarke, P.-H. Ho, and Y. Hoskote. Verification of all circuits in a floating-point unit using word-level model checking. Lecture Notes in Computer Science, 1166, 1996.

    Google Scholar 

  13. M. D. Aagaard and C.-J. H. Seger. The formal verification of a pipelined double-precision IEEE floating-point multiplier. In International Conference on Computer Aided Design, pages 7–10, Los Alamitos, Ca., USA, November 1995. IEEE Computer Society Press.

    Google Scholar 

  14. L. Claesen, D. Verkest, and H. De Man. A proof of the non-restoring division algorithm and its implementation on an ALU. In Formal Methods in System Design, vol. 5, pages 5–31, 1994.

    Google Scholar 

  15. J. O’Leary, M. Leeser, J. Hickey, and M. Aagaard. Non-restoring integer square root: A case study in design by principled optimization. Lecture Notes in Computer Science, 901, 1995.

    Google Scholar 

  16. David M. Russinoff. A mechanically checked proof of IEEE compliance of the floating point multiplication, division and square root algorithms of the AMD-K7 processor. LMS Journal of Computation and Mathematics, 1:148–200, 1998.

    MathSciNet  MATH  Google Scholar 

  17. Daniel Kröning, Wolfgang Paul, and Silvia M. Müller. Proving the correctness of pipelined micro-architectures. In Klaus Waldschmidt and Christoph Grimm, editors, Proc. of ITG/GI/GMM-Workshop „Methoden und Beschreibungssprachen zur Modellierung und Verifikation von Schaltungen und Systemen“, pages 89–98. VDE Verlag, 2000.

    Google Scholar 

  18. Silvia M. Müller and Wolfgang Paul. Computer Architecture: Complexity and Correctness. Springer, 2000.

    MATH  Google Scholar 

  19. Institute of Electrical and Electronics Engineers. ANSI/IEEE standard 754-1985, IEEE Standard for Binary Floating-Point Arithmetic, 1985. for a readable account see the article by W.J. Cody et al. in the IEEE MICRO Journal, Aug. 1984, 84–100.

    Google Scholar 

  20. Paul S. Miner. Defining the IEEE-854 floating-point standard in PVS. Technical report, NASA, Langley Research Center, 1995.

    Google Scholar 

  21. Wolfgang Paul. Recherarchitektur II SS98, 1998. Lecture Notes.

    Google Scholar 

  22. Donald E. Thomas and Philip Moorby. The Verilog Hardware Description Language. Kluwer, Boston;Dordrecht;London, 1991.

    Book  Google Scholar 

  23. James C. Hoe and Arvind. Hardware synthesis from term rewriting systems. In Proc. of VLSI ′99, Lisbon, Portugal, 1999.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2000 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Jacobi, C., Kroening, D. (2000). Proving the Correctness of a Complete Microprocessor. In: Mehlhorn, K., Snelting, G. (eds) Informatik 2000. Informatik aktuell. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-58322-3_24

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-58322-3_24

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-67880-9

  • Online ISBN: 978-3-642-58322-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics