Please choose your delivery country and your customer group
Micro-architects rely upon simulation to evaluate design alternatives, yet constructing an accurate simulator by hand is a difficult and time-consuming process because simulators are usually written in sequential languages while the system being modeled is concurrent. Structural modeling can mitigate this difficulty by allowing the micro-architect to specify the simulation model in a concurrent, structural form; a simulator compiler then generates a simulator from the model. However, the resulting simulators are generally slower than those produced by hand. The thesis of this dissertation is that simulation speed improvements can be obtained by careful scheduling of the work to be performed by the simulator onto single or multiple processors. For scheduling onto single processors, this dissertation presents an evaluation of previously proposed scheduling mechanisms in the context of a structural micro-architectural simulation framework which uses a particular model of computation, the Heterogeneous Synchronous Reactive(HSR) model, and improvements to these mechanisms which make them more effective or more feasible for micro-architectural models. A static scheduling technique known as partitioned scheduling is shown to offer the most performance improvement: up to 2.08 speed up. This work furthermore proves that the Discrete Event model of computation can be statically scheduled using partitioned scheduling when restricted in ways that are commonly assumed in micro-architectural simulation. For scheduling onto multiple processors, this dissertation presents the first automatic parallelization of simulators using the HSR model of computation. It shows that effective parallelization requires techniques to avoid waiting due to locks and to improve cache locality. Two novel heuristics for lock mitigation and two for cache locality improvement are introduced and evaluated on three different parallel systems.