I conducted an experiment to figure out how many calls are made to the hash table to check if the given address exists in the cache. For the same setup as before, less than 10% calls are made. That is out of about 880,000,000 calls to the isTagPresent function, only about 81,000,000 actually go and search the hash table.

I think we should work towards removing some of the redundant calls. I have a partial fix for some portion of the code. But again, it is not a design change. I am unsure how to change the design of Ruby and/or Slicc to get done with these redundant calls.

Brad, do you have something in mind on this?

Thanks
Nilay

On Fri, 26 Nov 2010, Steve Reinhardt wrote:

Hi Nilay,

Good job, this is clearly progress... you've sped up isTagPresent by 2X and
the simulation overall by almost 10%.  That's nothing to sneeze at.  It's
sad that isTagPresent is still the top function though.  Can you do some
tracing or other experiments to get a feel for whether keeping the last N
tags instead of the last 1 (for some small value of N, like 2 or 3) would be
useful?  Just printing out a trace of calls to isTagPresent should be enough
to get a feeling for whether that's worth hacking in a test implementation.

Also, I see a lot of your patch has to do with removing const labels from
isTagPresent... this is exactly the scenario the 'mutable' keyword was
designed for; if you mark your m_mru_* fields as mutable, then you shouldn't
have to remove the const labels from any of the function calls.

Steve

On Fri, Nov 26, 2010 at 9:37 AM, Nilay Vaish <ni...@cs.wisc.edu> wrote:

I profiled the un-modified and the modified m5 ten times (this time there
was no load on the machine). Here are the average results:

             % time   std. dev  actual time   std. dev
un-modified
isTagPresent   19.99     0.35      47.17         1.23
cumulative     100       0.00      235.91        3.37

modified
isTagPresent   10.35     0.28      21.22         0.57
cumulative     100       0.00      205.11        2.94

Below is the patch, though it may not apply cleanly to current version of
m5 since I have few un-committed patches enqueued.

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

Reply via email to