Replacing Testing with Formal Verification in Intel\(^{\scriptsize\circledR}\) CoreTM i7 Processor Execution Engine Validation

  • Roope Kaivola
  • Rajnish Ghughal
  • Naren Narasimhan
  • Amber Telfer
  • Jesse Whittemore
  • Sudhindra Pandav
  • Anna Slobodová
  • Christopher Taylor
  • Vladimir Frolov
  • Erik Reeber
  • Armaghan Naik
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5643)

Abstract

Formal verification of arithmetic datapaths has been part of the established methodology for most Intel processor designs over the last years, usually in the role of supplementing more traditional coverage oriented testing activities. For the recent Intel\(^{\tiny\circledR}\) CoreTM i7 design we took a step further and used formal verification as the primary validation vehicle for the core execution cluster, the component responsible for the functional behaviour of all microinstructions. We applied symbolic simulation based formal verification techniques for full datapath, control and state validation for the cluster, and dropped coverage driven testing entirely. The project, involving some twenty person years of verification work, is one of the most ambitious formal verification efforts in the hardware industry to date. Our experiences show that under the right circumstances, full formal verification of a design component is a feasible, industrially viable and competitive validation approach.

Keywords

Model Check State Component Single Instruction Multiple Data Symbolic Evaluation Execution Unit 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    First the Tick, Now the Tock: Next Generation Intel® Microarchitecture (Nehalem) Intel Corp., http://www.intel.com/technology/architecture-silicon/next-gen/whitepaper.pdf
  2. 2.
    IA-32 Intel® Architecture Software Developer’s Manual, Vol. 2A and 2B. Intel Corp.Google Scholar
  3. 3.
    Aagaard, M.D., Jones, R.B., Melhan, T.F., O’Leary, J.W., Seger, C.-J.H.: A methodology for large-scale hardware verification. In: Johnson, S.D., Hunt Jr., W.A. (eds.) FMCAD 2000. LNCS, vol. 1954, pp. 263–282. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  4. 4.
    Beers, R.: Pre-RTL formal verification: an Intel experience. In: DAC 2008: Proc. of the 45th annual conf. on Design automation, pp. 806–811. ACM, New York (2008)Google Scholar
  5. 5.
    Bentley, B.: Validating a modern microprocessor. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 2–4. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  6. 6.
    Flaisher, A., Gluska, A., Singerman, E.: Case study: Integrating FV and DV in the verification of the Intel CoreTM 2 Duo microprocessor. In: FMCAD, Formal Methods in Computer-Aided Design, pp. 192–195 (2007)Google Scholar
  7. 7.
    Grundy, J., Melhan, T., O’Leary, J.: A reflective functional language for hardware design and theorem proving. Journal of Functional Programming 16(2), 157–196 (2006)MathSciNetCrossRefMATHGoogle Scholar
  8. 8.
    Hazelhurst, S., Seger, C.-J.H.: Symbolic trajectory evaluation. In: Kropf, T. (ed.) Formal Hardware Verification. LNCS, vol. 1287, pp. 3–78. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  9. 9.
    Hinton, G., Sager, D., Upton, M., Boggs, D., Carmean, D., Kyker, A., Roussel, P.: The microarchitecture of the Pentium® 4 processor. Intel. Technology Journal Q1 (February 2001)Google Scholar
  10. 10.
    Jones, R.B.: Symbolic Simulation Methods for Industrial Formal Verification. Kluwer Academic Publishers, Dordrecht (2002)CrossRefGoogle Scholar
  11. 11.
    Kaivola, R.: Formal verification of Pentium® 4 components with symbolic simulation and inductive invariants. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 170–184. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  12. 12.
    Kaivola, R., Aagaard, M.D.: Divider circuit verification with model checking and theorem proving. In: Aagaard, M.D., Harrison, J. (eds.) TPHOLs 2000. LNCS, vol. 1869, pp. 338–355. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  13. 13.
    Kaivola, R., Kohatsu, K.: Proof engineering in the large: formal verification of Pentium® 4 floating-point divider. Int’l J. on Software Tools for Technology Transfer 4, 323–334 (2003)CrossRefMATHGoogle Scholar
  14. 14.
    Kaivola, R., Naik, A.: Formal verification of high-level conformance with symbolic simulation. In: HLDVT, High-Level Design Validation and Test, pp. 153–159 (2005)Google Scholar
  15. 15.
    Kaivola, R., Narasimhan, N.: Formal verification of the Pentium® 4 floating-point multiplier. In: DATE, Design, Automation and Test in Europe, pp. 20–27 (2002)Google Scholar
  16. 16.
    O’Leary, J.: Using a reflective functional language for hardware verification and theorem proving. In: Third Workshop on Applied Semantics (APPSEM 2005), September 12–15, 2005, pp. 12–15 (2005)Google Scholar
  17. 17.
    O’Leary, J.W., Zhao, X., Gerth, R., Seger, C.-J.H.: Formally verifying IEEE compliance of floating-point hardware. Intel. Technology Journal Q1 (Feburary 1999)Google Scholar
  18. 18.
    Paulson, L.: ML for the Working Programmer. Cambridge University Press, Cambridge (1996)CrossRefMATHGoogle Scholar
  19. 19.
    Schubert, T.: High level formal verification of next-generation microprocessors. In: DAC 2003: Proceedings of the 40th conference on Design automation, pp. 1–6. ACM Press, New York (2003)Google Scholar
  20. 20.
    Seger, C.-J.H., Bryant, R.E.: Formal verification by symbolic evaluation of partially-ordered trajectories. Formal Methods in System Design 6(2), 147–189 (1995)CrossRefGoogle Scholar
  21. 21.
    Slobodova, A.: Challenges for formal verification in industrial setting. In: Brim, L., Haverkort, B.R., Leucker, M., van de Pol, J. (eds.) FMICS 2006 and PDMC 2006. LNCS, vol. 4346, pp. 1–22. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  22. 22.
    Slobodova, A.: Formal verification of hardware support for advanced encryption standard. In: FMCAD, Formal Methods in Computer-Aided Design, pp. 61–64 (2008)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Roope Kaivola
    • 1
  • Rajnish Ghughal
    • 1
  • Naren Narasimhan
    • 1
  • Amber Telfer
    • 1
  • Jesse Whittemore
    • 1
  • Sudhindra Pandav
    • 1
  • Anna Slobodová
    • 1
  • Christopher Taylor
    • 1
  • Vladimir Frolov
    • 1
  • Erik Reeber
    • 1
  • Armaghan Naik
    • 1
  1. 1.Intel Corporation, JF4-451HillsboroUSA

Personalised recommendations