8.6 Device Register Coverage 9.1 Probes Command Set
Simics User's Guide  /  II Feature Overview  / 

9 Probes

This section describes the Probes Framework in Simics.

Simics' Probes framework provides a generic mechanism for measuring counters and other statistics in Simics. The probe measurement points are distributed across the entire simulated system.

Probes can be related to target processors, device models, the host system (where Simics runs), instrumentation tools etc. There are also probes which present sums of other probes in the system on cell or global level.

Currently, most probes have been added for the purpose of measuring and understanding the performance of Simics. Additional probes could focus more on the target hardware and software aspects.

A probe offers a simple way to extract the value, and also contains type information and formatting hints on the probe itself to present the value of the probe, in an uniform and user-readable format.

A probe is identified by a probe name, which is a string with a hierarchical namespaces separated with dots (.). For example, cpu.cycles would be found in each processor model in the system and represents how many cycles that has elapsed on the specific processor. The cell.cycles probes are related to the cell objects and this returns the sum of executed cycles of processors which located under the specific cell. Finally, sim.cycles is not related to any object but form a singelton sum of all the processor's cycles elapsed.

Probes can also be derived from other probes, offering a some calculated metric. For example sim.slowdown is calculated as the fraction between sim.time.virtual and sim.time.wallclock, providing an indication how fast the virtual time elapsed compared to the real wallclock time on the system which Simics runs on.

Simics itself is aware of all probes that currently exist in the system, allowing commands to list the probes or read out their values from Simics command line interface.

Probes may either be explicitly implemented in the various Simics objects, or can be implicitly created by the probes framework itself. For example, Simics may detect that a new object is created that implements the cycle interface and then automatically create probes for accessing the new object's cycle information.

8.6 Device Register Coverage 9.1 Probes Command Set