Hi Brad,

On 17/06/2015 21:38, Beckmann, Brad wrote:
The benefit for creating at trace, rather than just inserting data into the 
cache, is two-fold.  First, by creating a trace from a very large cache system, 
one can warmup caches of different sizes, associativities and even completely 
different cache hierarchies/configurations from a single trace.  Second, and 
probably more important, Ruby protocols rely on timing requests to set cache 
block state to the unique states used by a particular protocol.  Often Ruby is 
used to compare different protocols and this process allows us to compare 
protocols using the exact same checkpoint.

Thanks for the explanation. OK, so I understand why you want to have a trace, but is there any need for it, or could you just start at a checkpoint with a totally empty cache (as in the classic model)? Basically, is this trace simply a way to avoid the need to warm up the caches after a checkpoint?

At the moment I can create the trace at a checkpoint, which is progress, but I get problems both in the simulator and simulated system when restoring from the checkpoint. I'd like to know whether to invest the time in getting this to work, or whether I should simply implement memWriteback() for ruby to flush dirty data before a checkpoint, then do away with the trace altogether.

Cheers
Tim

--
Timothy M. Jones
http://www.cl.cam.ac.uk/~tmj32/
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to