Microprocessor Verification via Feedback-Adjusted Markov Models

The challenge of verifying a modern microprocessor design is an overwhelming one: Increasingly complex microarchitectures combined with heavy time-to-market pressure have forced microprocessor vendors to employ immense verification teams in the hope of finding the most critical bugs in a timely manner. Unfortunately, too often, size does not seem to matter in verification, as design schedules continue to slip and microprocessors find their way to the marketplace with design errors. In this paper, we describe a novel closed-loop simulation-based approach to hardware verification and present a tool called StressTest that uses our methods to locate hard-to-find corner-case design bugs and performance problems. StressTest is based on a Markov-model-driven random instruction generator with activity monitors. The model is generated from the user-specified template files and is used to generate the instructions sent to the design under test (DUT). In addition, the user specifies key activity nodes within the design that should be stressed and monitored throughout the simulation. The StressTest engine then uses closed-loop feedback techniques to transform the Markov model into one that effectively stresses the user-selected points of interest. In parallel, StressTest monitors the correctness of the DUT response and, if the design behaves against expectation, it reports a bug and a trace leading to it. Using two microarchitectures as example testbeds, we demonstrate that StressTest finds more bugs with less effort than open-loop random instruction test generation techniques

[1]  David G. Chinnery,et al.  A functional validation technique: biased-random simulation guided by observability-based coverage , 2001, Proceedings 2001 IEEE International Conference on Computer Design: VLSI in Computers and Processors. ICCD 2001.

[2]  David A. Patterson,et al.  Computer Organization And Design: The Hardware/Software Interface , 1993 .

[3]  장훈,et al.  [서평]「Computer Organization and Design, The Hardware/Software Interface」 , 1997 .

[4]  Bob Bentley,et al.  Validating the Intel(R) Pentium(R) 4 microprocessor , 2001, Proceedings of the 38th Design Automation Conference (IEEE Cat. No.01CH37232).

[5]  Yossi Lichtenstein,et al.  Industrial experience with test generation languages gar processor verification , 2004, Proceedings. 41st Design Automation Conference, 2004..

[6]  Jason Baumgartner,et al.  Functional verification of the POWER4 microprocessor and POWER4 multiprocessor system , 2002, IBM J. Res. Dev..

[7]  B. Bentley Validating The Intel Pentium 4 Processor 1 Validating The Intel ® Pentium ® 4 Processor , 2022 .

[8]  Carl Ramey,et al.  Functional verification of a multiple-issue, out-of-order, superscalar Alpha processor-the DEC Alpha 21264 microprocessor , 1998, Proceedings 1998 Design and Automation Conference. 35th DAC. (Cat. No.98CH36175).

[9]  Greg Spirakis Opportunities and challenges in building silicon products in 65nm and beyond , 2004, Proceedings Design, Automation and Test in Europe Conference and Exhibition.

[10]  Janick Bergeron,et al.  Writing Testbenches: Functional Verification of HDL Models , 2000 .

[11]  Yehuda Naveh,et al.  X-Gen: a random test-case generator for systems and SoCs , 2002, Seventh IEEE International High-Level Design Validation and Test Workshop, 2002..

[12]  Yervant Zorian,et al.  2001 Technology Roadmap for Semiconductors , 2002, Computer.

[13]  Adnan Aziz,et al.  Constraint-based verification , 2006 .

[14]  Faisal Haque,et al.  Art of Verification with VERA , 2001 .

[15]  Allon Adir,et al.  Genesys-Pro: innovations in test program generation for functional processor verification , 2004, IEEE Design & Test of Computers.

[16]  Faisal Imdad-Haque,et al.  The art of verification with Vera , 2001 .

[17]  Avi Ziv,et al.  Coverage directed test generation for functional verification using Bayesian networks , 2003, Proceedings 2003. Design Automation Conference (IEEE Cat. No.03CH37451).

[18]  Yoav Hollander,et al.  The e language: a fresh separation of concerns , 2001, Proceedings Technology of Object-Oriented Languages and Systems. TOOLS 38.