cpu: Add support for scheduling multiple inst/load stop events
authorAndreas Sandberg <andreas@sandberg.pp.se>
Tue, 11 Jun 2013 07:18:25 +0000 (09:18 +0200)
committerAndreas Sandberg <andreas@sandberg.pp.se>
Tue, 11 Jun 2013 07:18:25 +0000 (09:18 +0200)
commit0793d0727bf13f3dc1f41ac24cab04f4ab1f6b2a
tree60a1e800d9fb1f7462c21708dc2eb096788e56af
parent247e4e9ab41bafcfcbde725bb40e6a7b5628f1de
cpu: Add support for scheduling multiple inst/load stop events

Currently, the only way to get a CPU to stop after a fixed number of
instructions/loads is to set a property on the CPU that causes a
SimLoopExitEvent to be scheduled when the CPU is constructed. This is
clearly not ideal in cases where the simulation script wants the CPU
to stop at multiple instruction counts (e.g., SimPoint generation).

This changeset adds the methods scheduleInstStop() and
scheduleLoadStop() to the BaseCPU. These methods are exported to
Python and are designed to be used from the simulation script. By
using these methods instead of the old properties, a simulation script
can schedule a stop at any point during simulation or schedule
multiple stops. The number of instructions specified when scheduling a
stop is relative to the current point of execution.
src/cpu/BaseCPU.py
src/cpu/base.cc
src/cpu/base.hh