  As systems and applications grow more complex, detailed simulation takes an
ever increasing amount of time. The prospect of increased simulation time
resulting in slower design iteration forces architects to use simpler models,
such as spreadsheets, when they want to iterate quickly on a design. However,
the task of migrating from a simple simulation to one with more detail often
requires multiple executions to find where simple models could be effective,
which could be more expensive than running the detailed model in the first
place. Also, architects must often rely on intuition to choose these simpler
models, further complicating the problem.
  In this work, we present a method of bridging the gap between simple and
detailed simulation by monitoring simulation behavior online and automatically
swapping out detailed models with simpler statistical approximations. We
demonstrate the potential of our methodology by implementing it in the
open-source simulator SVE-Cachesim to swap out the level one data cache (L1D)
within a memory hierarchy. This proof of concept demonstrates that our
technique can handle a non-trivial use-case in not just approximation of local
time-invariant statistics, but also those that vary with time (e.g., the L1D is
a form of a time-series function), and downstream side-effects (e.g., the L1D
filters accesses for the level two cache). Our simulation swaps out the
built-in cache model with only an 8% error in the simulated cycle count while
using the approximated cache models for over 90% of the simulation, and our
simpler models require two to eight times less computation per "execution" of
the model
