Validating the Intel(R) Pentium(R) 4 microprocessor

Developing a new leading edge IA-32 microprocessor is an immensely complicated undertaking. In the case of the Pentium(R) 4 processor, the microarchitecture is significantly more complex than any previous IA-32 microprocessor and the implementation borrows almost nothing from any previous implementation. This paper describes how we went about the task of finding bugs in the Pentium(R) 4 processor design prior to initial silicon, and what we found along the way.