Hi everyone,
I've just posted to the review board 12 patches that enable me to
perform SMARTS-like sampling simulation. Most are finished and I'd be
happy to commit them if everyone is ok with them. A couple are not
quite there yet and I'd like input on whether they are correct and
whether I'm doing things in the best way.
To summarise what I've done:
1) Taken the branch predictor out of O3CPU and made it a stand-alone
SimObject that is accessible from python;
2) Added functionality to the simple CPUs to allow them to warm the
branch predictor;
3) Altered the takeOverFrom functions so that CPU memory is always
connected up if required. Also provided functions to mark all cache
data as ready which is required after functional warming;
4) Provided functions available in python to get the number of
instructions executed by each CPU and to set the maximum number to
execute for the next phase;
5) Provided the ability to backup and restore stats so that they are not
counted during the warming up phase;
6) Altered the example simulation scripts so that folk can see how I am
simulating like this and do it themselves;
7) Made various bug fixes and alterations to correct corner cases I
found when implementing this stuff.
I'm not so sure about 1) and it would be good to get Kevin's input on
that. I hope to extend it to make one generic branch predictor so that
the in-order core can make use of it too, instead of having it's own,
duplicated code.
I'm also not so sure about the backing up and restoring of stats. I've
not implemented this in all of the classes and I'm not 100% sure what's
going on, so this is a kind of stab-in-the-dark. Nate, if you could
give me feedback on what is right and wrong here, or if there's a better
approach, that would be much appreciated.
In general, if there are any glaring errors or things I haven't thought
about, please let me know.
All these patches should apply with no problems (in the order they're
posted on the review board) and you can try out the sampling for
yourselves too :-)
Cheers
Tim
--
Timothy M. Jones
http://homepages.inf.ed.ac.uk/tjones1
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.
_______________________________________________
m5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/m5-dev