SimICS/Sun4m: A Virtual Workstation

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. We present an implementation of a simulator acting as a virtual workstation fully compatible with the sun4m architecture from Sun Microsystems. Built using the system-level SPARC V8 simulator SimICS, SimICS/sun4m models one or more SPARC V8 processors, supports user-developed modules for data cache and instruction cache simulation and execution profiling of all code, and provides a symbolic and performance debugging environment for operating systems. SimICS/sun4m can boot unmodified operating systems, including Linux 2.0.30 and Solaris 2.6, directly from snapshots of disk partitions. To support essentially arbitrary code, we implemented binary-compatible simulators for several devices, including SCSI, console, interrupt, timers, EEPROM, and Ethernet. The Ethernet simulation hooks into the host and allows the virtual workstation to appear on the local network with full services available (NFS, NIS, rsh, etc). Ethernet and console traffic can be recorded for future playback. The performance of SimICS/sun4m is sufficient to run realistic workloads, such as the database benchmark TPC-D, scaling factor 1/100, or an interactive network application such as Mozilla. The slowdown in relation to native hardware is in the range of 25 to 75 (measured using SPECint95). We also demonstrate some applications, including modeling an 8-processor sun4m version (which does not exist), modeling future memory hierarchies, and debugging an operating system.

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

[2]  Robert C. Bedichek Talisman: fast and accurate multicomputer simulation , 1995, SIGMETRICS '95/PERFORMANCE '95.

[3]  Mendel Rosenblum,et al.  Embra: fast and flexible machine simulation , 1996, SIGMETRICS '96.

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

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

[6]  David Samuelsson System Level Interpretation of the SPARC V8 Instruction Set Architecture , 1994 .

[7]  Peter S. Magnusson,et al.  A hybrid simulation approach enabling performance characterization of large software systems , 1997, Proceedings Fifth International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems.

[8]  Richard M. Stallman Using and porting gnu cc (version 2 , 1992 .

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

[10]  Peter S. Magnusson,et al.  Efficient memory simulation in SimICS , 1995, Proceedings of Simulation Symposium.

[11]  Fredrik Larsson,et al.  SimGen: Development of Efficient Instruction Set Simulators , 1997 .

[12]  Paul Klint,et al.  Interpretation Techniques , 1981, Softw. Pract. Exp..

[13]  Peter Magnusson Partial Translation , 1993 .

[14]  Peter S. Magnusson A Design for Efficient Simulation of a Multiprocessor , 1993, MASCOTS.

[15]  Mendel Rosenblum,et al.  Using complete machine simulation to understand computer system behavior , 1998 .

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

[17]  John H. Howard,et al.  A virtual machine emulator for performance evaluation , 1980, CACM.

[18]  Michael Stonebraker,et al.  The Implementation of Postgres , 1990, IEEE Trans. Knowl. Data Eng..

[19]  Peter S. Magnusson Efficient instruction cache simulation and execution profiling with a threaded-code interpreter , 1997, WSC '97.

[20]  Magnus Christensson,et al.  Techniques for runtime code generation in instrumented instruction set simulators , 1997 .

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

[22]  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.

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

[24]  Lance M. Berc,et al.  Continuous profiling: where have all the cycles gone? , 1997, ACM Trans. Comput. Syst..

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

[26]  Peter S. Magnusson Efficient simulation of parallel hardware , 1992 .

[27]  Josep Torrellas,et al.  Reducing remote conflict misses: NUMA with remote cache versus COMA , 1997, Proceedings Third International Symposium on High-Performance Computer Architecture.