SimGen: Development of Efficient Instruction Set Simulators

A simulator is a powerful tool for both hardware and software development. However, implementing an efficient simulator by hand is a labour intensive and error-prone task. This paper describes a tool for automating significant portions of the work involved in developing instruction set architecture simulators while still generating an efficient simulator. We believe that the tool significantly shortens the design time. A specification file describing the instruction set is used as input to the tool. With this technique we have generated a SPARC V8 simulator which is more efficient than an earlier hand-coded and hand-optimized version. The tool has also been applied to APZ 21220, a proprietary embedded CISC processor, demonstrating the generality of the technique.

[1]  David Keppel,et al.  Shade: a fast instruction-set simulator for execution profiling , 1994, SIGMETRICS.

[2]  M. Anton Ertl A Portable Forth Engine , 1993 .

[3]  Lance M. Berc,et al.  Continuous profiling: where have all the cycles gone? , 1997, TOCS.

[4]  C. May Mimic: a fast system/370 simulator , 1987, PLDI 1987.

[5]  M. Anton Ertl,et al.  Stack caching for interpreters , 1995, PLDI '95.

[6]  Anoop Gupta,et al.  Complete computer system simulation: the SimOS approach , 1995, IEEE Parallel Distributed Technol. Syst. Appl..

[7]  Peter Sestoft,et al.  Partial evaluation and automatic program generation , 1993, Prentice Hall international series in computer science.

[8]  David L Weaver,et al.  The SPARC architecture manual : version 9 , 1994 .

[9]  Michel Dubois,et al.  Trace-Driven Simulations of Parallel and Distributed Algorithms in Multiprocessors , 1986, International Conference on Parallel Processing.

[10]  Eliot Miranda BrouHaHa - A Portable Smalltalk Interpreter , 1987, OOPSLA.

[11]  James R. Larus,et al.  EEL: machine-independent executable editing , 1995, PLDI '95.

[12]  Norman Ramsey,et al.  The New Jersey Machine-Code Toolkit , 1995, USENIX.

[13]  Richard M. Stallman,et al.  Using and Porting GNU CC , 1998 .

[14]  Marc Atkins,et al.  PC Software Performance Tuning , 1996, Computer.

[15]  Robert J. Fowler,et al.  MINT: a front end for efficient simulation of shared-memory multiprocessors , 1994, Proceedings of International Workshop on Modeling, Analysis and Simulation of Computer and Telecommunication Systems.