10.5555/646890.709275guideproceedingsArticle/Chapter ViewAbstractPublication PagesConference Proceedingsacm-pubtype
Article

Microprocessor Verification Using Efficient Decision Procedures for a Logic of Equality with Uninterpreted Functions

Online:07 June 1999Publication History

ABSTRACT

Modern processors have relatively simple specifications based on their instruction set architectures. Their implementations, however, are very complex, especially with the advent of performance-enhancing techniques such as pipelining, superscalar operation, and speculative execution. Formal techniques to verify that a processor implements its instruction set specification could yield more reliable results at a lower cost than the current simulation-based verification techniques used in industry.

The logic of equality with uninterpreted functions (EUF) provides a means of abstracting the manipulation of data by a processor when verifying the correctness of its control logic. Using a method devised by Burch and Dill [BD94], the correctness of a processor can be inferred by deciding the validity of a formula in EUF describing the comparative effect of running one clock cycle of processor operation to that of executing a small number (based on the processor issue rate) of machine instructions.

This paper describes recent advances in reducing formulas in EUF to propositional logic. We can then use either Binary Decision Diagrams (BDDs) or satisfiability procedures to determine whether this propositional formula is a tautology. We can exploit characteristics of the formulas generated when modeling processors to significantly reduce the number of propositional variables, and consequently the complexity, of the verification task.

References

  1. W. Ackermann, Solvable Cases of the Decision Problem, North-Holland, Amsterdam, 1954.Google ScholarGoogle Scholar
  2. C. Barrett, D. Dill, and J. Levitt, "Validity checking for combinations of theories with equality," Formal Methods in Computer-Aided Design (FMCAD '96), M. Srivas and A. Camilleri, eds., LNCS 1166, Springer-Verlag, November, 1996, pp. 187-201. Google ScholarGoogle Scholar
  3. S. Bose, and A. L. Fisher, "Verifying Pipelined Hardware Using Symbolic Logic Simulation," International Conference on Computer Design (ICCD '89), 1989, pp. 217-221.Google ScholarGoogle Scholar
  4. R. E. Bryant, "Graph-based algorithms for Boolean function manipulation", IEEE Transactions on Computers, Vol. C-35, No. 8 (August, 1986), pp. 677-691. Google ScholarGoogle Scholar
  5. R. E. Bryant, S. German, and M. N. Velev, "Processor verification using efficient reductions of the logic of uninterpreted functions to propositional logic," Technical report CMU-CS-99-115, Carnegie Mellon University, 1999. Available electronically as: http://www.cs.cmu.edu/~bryant/pubdir/cmu-cs-99- 115.ps.Google ScholarGoogle Scholar
  6. R. E. Bryant, S. German, and M. N. Velev, "Exploiting positive equality in a logic of uninterpreted functions with equality," Computer-Aided Verification (CAV '99), 1999.Google ScholarGoogle Scholar
  7. J. R. Burch, and D. L. Dill, "Automated verification of pipelined microprocessor control," Computer-Aided Verification (CAV '94), D. L. Dill, ed., LNCS 818, Springer-Verlag, June, 1994, pp. 68-80. Google ScholarGoogle Scholar
  8. J. R. Burch, "Techniques for verifying superscalar microprocessors," 33rd Design Automation Conference (DAC '96), June, 1996, pp. 552-557. Google ScholarGoogle Scholar
  9. A. Goel, K. Sajid, H. Zhou, A. Aziz, and V. Singhal, "BDD based procedures for a theory of equality with uninterpreted functions," Computer-Aided Verification (CAV '98), A. J. Hu and M. Y. Vardi, eds., LNCS 1427, Springer-Verlag, June, 1998, pp. 244-255. Google ScholarGoogle Scholar
  10. J. L. Hennessy, and D. A. Patterson, Computer Architecture: A Quantitative Approach, 2nd edition Morgan-Kaufmann, San Francisco, 1996. Google ScholarGoogle Scholar
  11. C. A. R. Hoare, "Proof of Correctness of Data Representations," Acta Informatica Vol. 1, 1972, pp. 271-281.Google ScholarGoogle Scholar
  12. M. Kantrowitz, and L. M. Noack, "I'm Done Simulating; Now What? Verification Coverage Analysis and Correctness Checking of the DECchip 21164 Alpha Micro-processor," 33rd Design Automation Conference (DAC '96), 1996, pp. 325-330. Google ScholarGoogle Scholar
  13. G. Nelson, and D. C. Oppen, "Fast decision procedures based on the congruence closure," J. ACM, Vol. 27, No. 2 (1980), pp. 356-364. Google ScholarGoogle Scholar
  14. K. L. Nelson, A. Jain, and R. E. Bryant, "Formal Verification of a Superscalar Execution Unit," 34th Design Automation Conference (DAC '97), June, 1997. Google ScholarGoogle Scholar
  15. A. Pnueli, Y. Rodeh, O. Shtrichman, and M. Siegel, "Deciding equality formulas by small-domain instantiations," Computer-Aided Verification (CAV '99), 1999.Google ScholarGoogle Scholar
  16. R. E. Shostak, "A practical decision procedure for arithmetic with function symbols," J. ACM, Vol. 26, No. 2 (1979), pp. 351-360. Google ScholarGoogle Scholar
  17. M. Srivas and M. Bickford, "Formal Verification of a Pipelined Microprocessor," IEEE Software, Vol. 7, No. 5 (Sept., 1990), pp. 52-64. Google ScholarGoogle Scholar
  18. M. N. Velev, and R. E. Bryant, "Bit-level abstraction in the verification of pipelined microprocessors by correspondence checking." Formal Methods in Computer-Aided Design (FMCAD '98), G. Gopalakrishnan and P. Windley, eds., LNCS 1522, Springer-Verlag, November, 1998, pp. 18-35. Google ScholarGoogle Scholar

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in
  • Published in

    Guide Proceedings cover image
    TABLEAUX '99: Proceedings of the International Conference on Automated Reasoning with Analytic Tableaux and Related Methods
    June 1999
    323 pages
    ISBN:3540660860

    Publisher

    Springer-Verlag

    Berlin, Heidelberg

    Publication History

    • Online: 7 June 1999

    Qualifiers

    • Article
About Cookies On This Site

We use cookies to ensure that we give you the best experience on our website.

Learn more

Got it!