One Pass Simulator
The OnePass simulator is built on top of the framework of TurboSMARTS [1] simulator, which alters its execution between detailed simulation (for collecting execution statistics) and functional simulation (which significantly reducing simulation time). Due to the fact that a program exhibits repetitive execution phases, the overall characteristics of program execution can be accurately modeled by only simulating in detail a small portion of the program with long execution time [2, 3]. OnePass simulator investigates the potential of exploiting this repetitive behavior of applications one step further. Instead of running the benchmark applications many times for different microarchitecture configurations, OnePass dynamically changes the modeled micro-architecture configurations of the simulated host during the execution of a benchmark application as shown in Figure 1. This approach can significantly improve the total simulation time. There are a few details that need to be addressed. First, the simulation of each configuration must be evenly distributed throughout the benchmark execution. Second, we have to ensure there will be no loss of accuracy when performing the configuration switching. To address these issues, we have incorporated statistical sequential sampling into the simulator to determine the best sampling period for each benchmark and various micro-architecture configurations.

simulator architecture overview
Figure 1. OnePass Sampling Simulator Mechanism

The simulator is provided as is with no further support.

[1] T. F. Wenisch, R. E. Wunderlich, B. Falsafi, J. C. Hoe, “TurboSmarts: Accurate Microarchitecture Simulation Sampling in Minutes,” Proceedings of the International Conference on Measurement & Modeling of Computer Systems (SIGMETRICS), June 2005.
[2] R. E. Wunderlich, T. F. Wenisch, B. Falsafi, J. C. Hoe, “Smarts: Accelerating Microarchitecture Simulation via Rigorous Statistical Sampling,” Proceedings of the 30th International Symposium on Computer Architecture (ISCA), June 2003.
[3] Timothy Sherwood, Erez Perelman, Greg Hamerly and Brad Calder, Automatically Characterizing Large Scale Program Behavior , In the 10th International Conference on Architectural Support for Programming Languages and Operating Systems, October 2002.