On Sat, Feb 6, 2010 at 9:08 AM, soumyaroop roy <s...@cse.usf.edu> wrote:
> Let me rephrase my last question:
> Is there any way that a comparison could be performed between the
> checkpoint output by inorder with that output by a simple CPU? Say, if
> the number of committed instructions in both are the same when the
> checkpoints are dumped, should I expect that the register and memory
> state for both CPU's should be identical?

I would expect so, as long as the inorder pipeline is drained and only
truly architectural state is checkpointed.

>
> In any case, what kind of testing strategy should be put in place to
> test the correctness of checkpointing apart from just taking
> checkpoints for programs/benchmarks, resuming from those checkpoints,
> running the programs till completion, and finally verifying the
> correctness of the outputs?

We've had discussions on this before, though I don't recall all the
details of what we've come up with.  Certainly the basic idea of
taking a checkpoint, restoring from that checkpoint, and then
comparing with an execution that didn't stop is a common one.  You
wouldn't have to run all the way to the end; you could dump statistics
and perhaps another checkpoint at a common point further on but not
all the way at completion.  There is an issue in that the drain
operation will perturb the state slightly, so you can't expect the
results to be identical unless you either (1) artificially induce a
drain without a checkpoint at the same spot in the non-checkpointed
execution or (2) do a stats reset at a common point in both
simulations after the checkpoint restore.  The latter seems a lot
simpler to me.

Steve
_______________________________________________
m5-dev mailing list
m5-dev@m5sim.org
http://m5sim.org/mailman/listinfo/m5-dev

Reply via email to