28th Annual Simulation Symposium
Efficient memory simulation in SimICS
Santa Barbara, California
April 25-April 28
ISBN: 0-8186-7091-6
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. A software caching mechanism (the Simulator Translation Cache, STC) improves the performance of interpreted memory operations by reducing the number of calls to complex memory simulation code. Major data structures are allocated lazily to reduce the size of the simulator process. A well defined internal interface to generic memory simulation simplifies user extensions. Leveraging on a flexible interpreter based on threaded code allows runtime selection of statistics gathering, memory profiling, and cache simulation with low overhead. The result is a memory simulation scheme that supports a range of features for use in computer architecture research, program profiling, and debugging.
Index Terms:
storage management; storage allocation; virtual machines; data structures; efficient memory simulation; SimICS; instruction level simulator; multiprocessors; complex memory hierarchies; user level code; system level code; software caching mechanism; Simulator Translation Cache; STC; interpreted memory operations; complex memory simulation code; data structures; lazy storage allocation; well defined internal interface; generic memory simulation; user extensions; threaded code; runtime selection; statistics gathering; memory profiling
Citation:
P. Magnusson, B. Werner, "Efficient memory simulation in SimICS," ss, pp.62, 28th Annual Simulation Symposium, 1995