Automatic verification of instruction set simulation using synchronized state comparison

Instruction-level simulation is the basis for much research in computer architecture. Typically, the simulators used for this type of research are verified by comparing the outputs of a simulated benchmark program and the outputs of the same program when run on a real machine - the simulator is "verified" if the outputs are the same. In the case of some benchmark programs, however it is possible that significant fractions of the benchmark would not be executed due to minor differences or errors in the simulator, which would limit the usefulness of the results of the simulations. This paper presents a novel method for verifying instruction-level simulators via step-by-step register state comparison to a hardware implementation. A description of a sample implementation of this verification method is presented, along with a discussion of specific implementation issues. The verification speed of 1000-5000 instructions per second on a 300 MHz MIPS R12000 is a concern, but possible ways to address this limitation are described.

[1]  Todd M. Austin,et al.  The SimpleScalar tool set, version 2.0 , 1997, CARN.

[2]  David J. Lilja,et al.  Measuring computer performance : A practitioner's guide , 2000 .

[3]  Rajiv Gupta,et al.  Automatic generation of microarchitecture simulators , 1998, Proceedings of the 1998 International Conference on Computer Languages (Cat. No.98CB36225).

[4]  Mark Horowitz,et al.  Architecture validation for processors , 1995, Proceedings 22nd Annual International Symposium on Computer Architecture.

[5]  Scott Devine,et al.  Using the SimOS machine simulator to study complex computer systems , 1997, TOMC.

[6]  J. Burch Techniques for verifying superscalar microprocessors , 1996, 33rd Design Automation Conference Proceedings, 1996.

[7]  Norman Ramsey,et al.  Specifying representations of machine instructions , 1997, TOPL.

[8]  Tor E. Jeremiassen Sleipnir. An instruction-level simulator generator , 2000, Proceedings 2000 International Conference on Computer Design.

[9]  David L. Dill,et al.  Efficient validity checking for processor verification , 1995, Proceedings of IEEE International Conference on Computer Aided Design (ICCAD).