The simulation mode (or execution mode) is used to control the availability of certain features: instruction and data profiling, memory timing, and the micro-architectural interface. To allow for maximum performance when these features are not used, they are compiled as separate processor implementations. By default, Simics uses the fastest possible mode ("normal").
To select a simulation mode, the corresponding command line flag (-stall or -ma) is passed to Simics. For example, to select "Stall mode":
$ cd [workspace] $ ./simics -stall ...
Simics does not support switching processor implementations at runtime. To change from one mode to another, use Simics's checkpoint feature to save the simulation state and restart Simics in the new mode from the checkpoint:
simics> write-configuration at-workload-start simics> quit
and then start from the new checkpoint in the new simulation mode:
$ ./simics -stall -c at-workload-start
Normal mode is the fastest execution mode, and is optimized for emulation-style usage. The following features are not available in Normal mode:
Stall mode supports stalling and instruction/data profiling.
Note that not all Simics processor models implement a complete support for stalling and profiling. Refer to chapter 13 (Profiling) and chapter 16 (Stalling) for more information.
The micro-architecture mode selects in implementation with support for micro-architectural simulation. For performance reasons, this mode is usually only used for those subsets of the workload for which micro-architectural modeling is relevant. Typically, the system is booted in normal mode until the workload starts. A checkpoint is then taken, and Simics is restarted in micro-architecture mode from that checkpoint.
Changing to micro-architectural mode usually requires additional configuration information (like a processor timing model for example) before the simulation can be run. See chapter 17 and Simics Micro-Architectural Interface document for more information.