Simulator papers

Here are some papers that can be of interest for simulator developers.

Dynamic binary translation related papers

Mark Probst. "Fast Machine-Adaptable Dynamic Binary Translation". Workshop on Binary Translation 2001.
Reflects an earlier state in the development of bintrans
Mark Probst. "Dynamic Binary Translation". UKUUG Linux Developer's Conference 2002.
An overview over dynamic binary translation in general and bintrans in particular.
Bob Cmelik, David Keppel. "Shade: A Fast Instruction-Set Simulatorfor Execution Profiling". Sun Microsystems, Inc. University of Washington. 1993.
This paper describes a tool called Shade which combines efficient instruction-set simulation with a flexible, extensible trace generation capability. Efficiency is achieved by dynamically compiling and caching code to simulate and trace the application program. The user may control the extent of tracing in a variety of ways; arbitrarily detailed application state information may be collected during the simulation, but tracing less translates directly into greater efficiency. This paper describes the capabilities, design, implementation, and performance of Shade, and discusses instruction set emulation in general.

Interpreter related papers

Robert C. Bedichek. "Some Efficient Architecture Simulation Techniques". Department of Computer Science, University of Washington Seattle, Washington 98195.
An efficient simulator for the Motorola 88000 at the ISA (Instruction Set Architecture) level is described. By translating instructions on the fly to a quick-to-execute form we achieve an average ratio of 20 simulator host instructions executed per simulated instruction. Lazy allocation of memory allows large memories to be modelled with low start-up time. We describe our experience using the simulator to develop workstation software. The simulator's speed and extensive I/O device modelling made it possible for us to interactively debug and test a UNIX(R) kernel and diagnostic software well before the hardware was available. Extensions to closely model caches and multiprocessors are sketched.
Robert C. Bedichek. "Talisman: Fast and Accurate Multicomputer Simulation".
Talisman is a simulator that models the execution semantics andtiming of a multicomputer. Talisman is unique in combining high semantic accuracy, high timing accuracy, portability, and good performance. This good performance allows users to run significant programs on large simulated multicomputers. The combination of high accuracy and good performance yields an ideal tool for evaluating architectural trade-offs. Talisman models the semantics of virtual memory, a circuit-switched internode interconnect, I/O devices, and instruction execution in both user and supervisor modes.It also models the timing of processor pipelines, caches, local memory buses, and a circuit-switched interconnect. Talisman executesthe same program binary images as a hardware prototype at a cost of about 100 host instructions per simulated instruction.

SimICS related papers

Peter S. Magnusson. David Samuelsson. "A Compact Intermediate Format for SIMICS". Swedish Institute of Computer Science.
Instruction set architecture (ISA) simulators are an increasingly popular class of tools for both research and commercial purposes. Common applications include trace generation, program development, and compatibility support. A major concern with ISA simulators is performance and memory overhead. A common technique for achieving good performance is to use threaded code, which involves translating the target object code to an intermediate format which is subsequently interpreted.
Peter S. Magnusson. Bengt Werner. "Some Efficient Techniques for Simulating Memory". Swedish Institute of Computer Science.
(see paper below)
Peter S. Magnusson. Bengt Werner. "Efficient Memory Simulation in SimICS". Swedish Institute of Computer Science.
We describe novel techniques used for efficient simulation of memory in SimICS, an instruction level simulator developed at SICS. The design has focused on efficiently supporting the simulation of multiprocessors, analyzing complex memory hierarchies and running large binaries with a mixture of system-level and user-level code.
Peter S. Magnusson et al. "SimICS/sun4m: A VIRTUAL WORKSTATION". Usenix 1998.
System level simulators allow computer architects and system software designers to recreate an accurate and complete replica of the program behavior of a target system, regardless of the availability, existence, or instrumentation support of such a system. Applications include evaluation of architectural design alternatives as well as software engineering tasks such as traditional debugging and performance tuning.
Peter S. Magnusson. "Efficient Instruction Cache Simulation and Execution Profiling with a threaded-code interpreter". Swedish Institute of Computer Science.
Presents an extention to the an existing SPARC V8 instruction set simulator, SimICS, to support accurate profiling of branches and instruction cache misses.
Peter S. Magnusson. "Partial Translation". Swedish Institute of Computer Science.
Traditional simulation of a target architecture by interpreting object code can be improved by translating the object code to an intermediate format. This approach is called interpretive translation. Despite a substantial performance improvement over traditional interpretation, a large part of the overhead is unnecessary. An alternative approach is block translation, where one or more simulated instructions are translated to directly executable code.


guss-hackers Last modified: $Date: 2003/06/03 17:12:13 $