Applying SMT in symbolic execution of microcode
Abstract
Microcode is a critical component in modern microprocessors, and substantial effort has been devoted in the past to verify its correctness. A prominent approach, based on symbolic execution, traditionally relies on the use of boolean SAT solvers as a backend engine. In this paper, we investigate the application of Satisfiability Modulo Theories (SMT) to the problem of microcode verification. We integrate MathSAT, an SMT solver for the theory of Bit Vectors, within the flow of microcode verification, and experimentally evaluate the effectiveness of some optimizations. The results demonstrate the potential of SMT technologies over pure boolean SAT.
References (22)
- T. Arons, E. Elster, L. Fix, S. Mador-Haim, M. Mishaeli, J. Shalev, E. Singerman, A. Tiemeyer, M. Y. Vardi, and L. D. Zuck. Formal verification of backward compatibility of microcode. In CAV. 2005.
- T. Arons, E. Elster, T. Murphy, and E. Singerman. Embedded Software Validation: Applying Formal Techniques for Coverage and Test Gener- ation. Int. Workshop on Microprocessor Test and Verification, 2006.
- T. Arons, E. Elster, S. Ozer, J. Shalev, and E. Singerman. Efficient symbolic simulation of low level software. In DATE. ACM, 2008.
- G. Audemard and L. Simon. Predicting learnt clauses quality in modern SAT solvers. In IJCAI. Morgan Kaufmann, 2009.
- D. Babić and A. Hu. Approximating the safely reusable set of learned facts. STTT, 11(4), Oct. 2009.
- C. W. Barrett, R. Sebastiani, S. A. Seshia, and C. Tinelli. Satisfiability Modulo Theories. In Biere et al. [7].
- Part II, Chapter 26.
- A. Biere, M. Heule, H. van Maaren, and T. Walsh, editors. Handbook of Satisfiability, volume 185 of Frontiers in Artificial Intelligence and Applications. IOS Press, 2009.
- R. Bruttomesso, A. Cimatti, A. Franzén, A. Griggio, Z. Hanna, A. Nadel, A. Palti, and R. Sebastiani. A Lazy and Layered SMT(BV) Solver for Hard Industrial Verification Problems. In CAV. 2007.
- R. Bruttomesso, A. Cimatti, A. Franzén, A. Griggio, and R. Sebastiani. The MathSAT 4 SMT solver. In CAV. 2008.
- R. Bruttomesso and N. Sharygina. A Scalable Decision Procedure for Fixed-Width Bit-Vectors. In ICCAD 2009, 2009.
- N. Eén and N. Sörensson. Temporal induction by incremental SAT solving. Electronic Notes in Theoretical Computer Science, 89(4), 2003.
- A. Franzén. Efficient Solving of the Satisfiability Modulo Bit-Vectors Problem and Some Extensions to SMT. PhD thesis, DISI -University of Trento, 2010.
- P. Godefroid, M. Y. Levin, and D. Molnar. Automated Whitebox Fuzz Testing. Technical Report MSR-TR-2007-58, Microsoft Research Redmond, Redmond, WA, May 2007.
- D. Große and R. Drechsler. Acceleration of SAT-Based iterative property checking. In Correct Hardware Design and Verification Methods. 2005.
- G. Hinton, D. Sager, M. Upton, D. Boggs, D. P. Group, and I. Corp. The Microarchitecture of the Pentium R 4 Processor. Intel Technology Journal, 1, 2001.
- Z. Khasidashvili, A. Nadel, A. Palti, and Z. Hanna. Simultaneous SAT- Based model checking of safety properties. In Hardware and Software, Verification and Testing, volume 3875 of LNCS. Springer-Verlag, 2006.
- S. Khurshid, C. P. asȃreanu, and W. Visser. Generalized symbolic execution for model checking and testing. In TACAS. 2003.
- J. C. King. Symbolic execution and program testing. Commun. ACM, 19(7), 1976.
- O. Shtrichman. Pruning techniques for the SAT-Based bounded model checking problem. In CHARME. 2001.
- J. P. M. Silva and K. A. Sakallah. Robust search algorithms for test pattern generation. In FTCS. IEEE Computer Society, 1997.
- J. Whittemore, J. Kim, and K. Sakallah. SATIRE: a new incremental satisfiability engine. In DAC. ACM, 2001.