Mable: A Technique for Efficient Machine Simulation

We present a framework for an efficient instruction-level machine simulator which can be used with existing software tools to develop and analyze programs for a proposed processor architecture. The simulator exploits similarities between the instruction sets of the emulated machine and the host machine to provide fast simulation. Furthermore, existing program development tools on the host machine such as debuggers and profilers can be used without modification on the emulated program running under the simulator. The simulator can therefore be used to debug and tune application code for the new processor without building a whole new set of program development tools. The technique has applicability to a diverse set of simulation problems. We show how the framework has been used to build simulators for a shared-memory multiprocessor, a superscalar processor with support for speculative execution, and a dual-issue embedded processor.

[1]  Michael D. Smith,et al.  Tracing with Pixie , 1991 .

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

[3]  R. Bedicheck Some efficient architecture simulation tech-niques , 1990 .

[4]  Alan Jay Smith,et al.  Line (Block) Size Choice for CPU Cache Memories , 1987, IEEE Transactions on Computers.

[5]  Y. B. Lin,et al.  Techniques for the trace-driven simulation of cache performance , 1989, WSC '89.

[6]  Michael D. Smith,et al.  Boosting beyond static scheduling in a superscalar processor , 1990, ISCA '90.

[7]  James R. Bell,et al.  Threaded code , 1973, CACM.

[8]  Richard L. Sites,et al.  Binary translation , 1993, CACM.

[9]  John L. Hennessy,et al.  The accuracy of trace-driven simulations of multiprocessors , 1993, SIGMETRICS '93.

[10]  Michael D. Smith,et al.  Efficient superscalar performance through boosting , 1992, ASPLOS V.

[11]  M. F.,et al.  Bibliography , 1985, Experimental Gerontology.

[12]  Yale N. Patt,et al.  An investigation of the performance of various dynamic scheduling techniques , 1992, MICRO.

[13]  Norman P. Jouppi,et al.  A simulation based study of TLB performance , 1992, ISCA '92.

[14]  John Paul Shen,et al.  Instruction level profiling and evaluation of the IBM RS/6000 , 1991, [1991] Proceedings. The 18th Annual International Symposium on Computer Architecture.

[15]  Michael D. Smith,et al.  Limits on multiple instruction issue , 1989, ASPLOS III.

[16]  Gerry Kane,et al.  MIPS RISC Architecture , 1987 .

[17]  John L. Hennessy,et al.  Multiprocessor Simulation and Tracing Using Tango , 1991, ICPP.

[18]  Eric A. Brewer,et al.  PROTEUS: a high-performance parallel-architecture simulator , 1992, SIGMETRICS '92/PERFORMANCE '92.