Hi Carole,

tryCacheAccess is not used in normal case. It was more kind of backdoor to figure out whether there will be a hit in L1 cache.I guess current version even comment that out.

To find out how the request re handled in Cache hierarchy simulated by Ruby, start by looking into Sequencer::makeRequest(), which then calls Sequencer::issueRequest(). These functions do some checking and then creates a RubyRequest messages (which is understood by the SLICC generated cache hierarchy of Ruby). Finally it pushes the request to the cache hierarchy by calling m_mandatory_q_ptr->enqueue(msg, latency); at the end of the Sequencer::issueRequest() function. The "mandatory queue"s are attached to the L1 Cache controller of the SLICC simulated cache hierarchy. The cache hierarchy along with the coherence protocol (SLICC generated code) will simulate the request after de-queuing the request from the mandatory queue at the L1 cache controller.


Arka


On 07/30/2011 08:22 PM, Carole-Jean Wu wrote:
Hi,

I am trying to reason about the printed ruby statistics in the default
ruby.stats by comparing it with my own miss counter implementation. From my
understanding, all memory requests will be sent to system/Sequencer.cc and
to access the cache, it has to call tryCacheAccess. However, this function
doesn't seem to be called at all in my simulation. Am I looking at the wrong
function? Can someone point out the **cache access** function for all memory
requests?

thanks in advance,
Carole




_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to