Re: [Gems-users] Efficiency of L2 cache


Date: Tue, 16 Feb 2010 19:48:57 -0600
From: Byn Choi <bynchoi1@xxxxxxxxxxxx>
Subject: Re: [Gems-users] Efficiency of L2 cache
That really depends on two things: 1. the protocol that you are using (which I assume you already picked out given that you have concrete examples to show for), and 2. just what data that you are hoping to produce. 2. should really depend on the theory/hypothesis you are working with, something that you are hoping to prove/disprove using the collected data.

All in all, you'd want to make sure that you have a firm understanding of both sides - what the protocol does by each action, and what you are trying to model - and by that I mean a good story/reasoning behind adding/excluding each of the L2 actions.

Byn

On Feb 16, 2010, at 6:15 PM, Muhammad Shoaib wrote:

Thanks for the reply Byn.

I have one more issue which needs clarification, i have a function which is calculating the activity time per cache line (L2). I am calling this function whenever the this action is invoked.

action(d_sendDataToL1GETS, "d", desc="Send data directly to L1 requestor")

But I am just wondering, for L2 cache request will I have to take into account the following actions as well or not??? (I need to care about the all requests to L2)

action(d_sendDataToL1GETX, "\d", desc="Send data and a token from TBE to L1 requestor")

 action(dd_sendDataToFwdGETX, "dd", desc="send data")

action(dd_sendDataToFwdGETS, "\dd", desc="send data")

action(dd_sendExclusiveDataToFwdGETS, "\d\d", desc="send data")

Thanks

Shoaib

On 02/15/10, Byn Choi <bynchoi1@xxxxxxxxxxxx> wrote:

Hi,


I'm no expert in GEMS - just played around with ruby for a while - so this may not be the best way to go about doing this.

I'd add a function in CacheMemory.h that takes the Address of the line and its purpose is to trigger timestamping. It should be easier to do it in CacheMemory.h because you'd want to use  g_eventQueue_ptr->getTime() to get the current ruby cycle.

The other half of the implementation would be in -L2cache.sm.
1. an additional timestamp field in L2Entry structure.
2. in transitions that are triggered by the event that you are interested in studying - LD/ST, etc, call the action whose definition calls the above mentioned timestamping function inside CacheMemory.h. For this, don't forget to add the function signature in the "external_type" construct in the .sm file.

As for the last question, I believe it is called when you do 
simics> ruby0.dump-stats 
Personally, I find that the best way to go about finding out about things like this is to use "fgrep -d recurse" or Ctags, etc.

Byn

On Feb 15, 2010, at 7:28 PM, Muhammad Shoaib wrote:

Hi list,

i am trying to study the efficiency of L2 cache (active blocks count) in a CMP system. For this i need to declare a array or structure which will record the time between two consecutive hits (for each cache line) but I am not sure where i should make the modification should be it in the -L2cache.sim or CacheMemory.h. Any suggestions on that?

And one general question about CacheMemory.h, there is a printConfig function there, its output is in the dump file after the simulation. But from it is being called ?

Muhammad


_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx <Gems-users@xxxxxxxxxxx>
https://lists.cs.wisc.edu/mailman/listinfo/gems-users
Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/" to your search.



--
Muhammad Shoaib Bin Altaf
ECE Graduate Student
UW Madison,WI _______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/gems-users
Use Google to search the GEMS Users mailing list by adding "site:https://lists.cs.wisc.edu/archive/gems-users/" to your search.


[← Prev in Thread] Current Thread [Next in Thread→]