A Single-Specification Principle for Functional-to-Timing Simulator Interface Design [abstract] (DOI, PDF)
David A. Penry
Proceedings of the 2011 International Symposium on Performance Analysis of Systems and Software (ISPASS), April 2011.

Microarchitectural simulators are often partitioned into separate, but interacting, functional and timing simulators. These simulators interact through some interface whose level of detail depends upon the needs of the timing simulator. The level of detail supported by the interface profoundly affects the speed of the functional simulator, therefore, it is desirable to provide only the detail that is actually required. However, as the microarchitectural design space is explored, these needs may change, requiring corresponding time-consuming and error-prone changes to the interface. Thus simulator developers are tempted to include extra detail in the interface "just in case" it is needed later, trading off simulator speed for development time.

We show that this tradeoff is unnecessary if a single-specification design principle is practiced: write the simulator \emph{once} with an extremely detailed interface and then derive less-detailed interfaces from this detailed simulator. We further show that the use of an Architectural Description Language (ADL) with constructs for interface specification makes it possible to synthesize simulators with less-detailed interfaces from a highly-detailed specification with only a few lines of code and minimal effort. The speed of the resulting low-detail simulators is up to 14.4 times the speed of high-detail simulators.