Re: [Gems-users] Issue with SLICC ...in MOESI_CMP_L2-sim


Date: Tue, 09 Mar 2010 10:06:06 -0600
From: Muhammad Shoaib <shoaibbinalt@xxxxxxxx>
Subject: Re: [Gems-users] Issue with SLICC ...in MOESI_CMP_L2-sim
Thanks for the thoughts.

I tried to go with MSI_MOSI_CMP instead of MOESI_CMP and this issue is not observed there i.e. there were messages coming from the network into L2 and were being serviced. I don't think changing the protocol should make this difference or can it !!!!


Shoaib

On 03/06/10, Dan Gibson <degibson@xxxxxxxx> wrote:
It seems reasonable to me that a cache could receive a request for a line not present. Thats just a 'miss'. I am not a protocol expert, so I cannot say under what conditions in this protocol you would receive a message for a non-present line.

It doesn't seem reasonable that the line would never be present, however. But, since your print_some() fires and your cal_Time() doesn't, I suggest you take along hard look at your cal_Time() function.

Regards,
Dan

On Fri, Mar 5, 2010 at 2:29 PM, Muhammad Shoaib <shoaibbinalt@xxxxxxxx <shoaibbinalt@xxxxxxxx>> wrote:
With the following setting, my "print_some()" gets executed for the "apache" workload...but still cal_Time() is not invoked


==================================================
 in_port(requestNetwork_in, RequestMsg, GlobalRequestToL2Cache) {
    if (requestNetwork_in.isReady()) {
      peek(requestNetwork_in, RequestMsg) {
 print_some();
cal_Time(in_msg.Address);

}}
=================================================

So this employs that whenever a request (for updated copy or whatever) is forwarded to my current node, it comes out that the required address is not in the cache (is that right??). Since cal_Time() print stuff will only execute on a hit. But isn't there a contradiction ..requests are forwarded to my node because I have that cache line but they are not there!!!

Shoaib




On 03/05/10, Muhammad Shoaib <shoaibbinalt@xxxxxxxx <shoaibbinalt@xxxxxxxx>> wrote:

This is my configuration file ....currently I am playing around with MOESI_CMP

======================================================

read-configuration /path/applu_warm-8p.check
istc-disable
dstc-disable
cpu-switch-time 1
load-module ruby
ruby0.setparam g_NUM_PROCESSORS 8
ruby0.setparam g_PROCS_PER_CHIP 8
ruby0.setparam L1_CACHE_ASSOC 2
ruby0.setparam L1_CACHE_NUM_SETS_BITS 9
ruby0.setparam L2_CACHE_ASSOC 16
ruby0.setparam L2_CACHE_NUM_SETS_BITS 13
ruby0.setparam_str g_NETWORK_TOPOLOGY FILE_SPECIFIED
ruby0.setparam_str g_GARNET_NETWORK false
ruby0.init
c 350000000
ruby0.dump-stats output_applu.txt
exit
=======================================================

On 03/05/10, Dan Gibson <degibson@xxxxxxxx <degibson@xxxxxxxx>> wrote:
I need more information about how you are running. What is your configuration? Protocol? Benchmark? Run length? etc.

On Fri, Mar 5, 2010 at 11:31 AM, Shoaib Altaf <shoaibbinalt@xxxxxxxx <shoaibbinalt@xxxxxxxx> <shoaibbinalt@xxxxxxxx <shoaibbinalt@xxxxxxxx>>> wrote:
 
Thanks for helping me out.
 
1) It is just a typo.
 
2) There is no "if" in the CacheMemory.h but the function cal_Time itself calls print (do calculations) only when the Tag is present

3) I have tried to print some stuff ...but still nothing gets printed.

4) I am still trying to figure that out. That's why I asked because I THINK (!!!) there should be some messages (Or I am wrong )transactions across that path
 
 
Shoaib 

From: Dan Gibson <degibson@xxxxxxxx <degibson@xxxxxxxx>>
Sent: Friday, March 05, 2010 7:37 AM
To: Gems Users <gems-users@xxxxxxxxxxx <gems-users@xxxxxxxxxxx>>
Subject: Re: [Gems-users] Issue with SLICC ...in MOESI_CMP_L2-sim


Muhammad,
You have a bit of a mystery here. Lets see if we can't solve it.
1. Why is your function called cal_Time in its definition and cal_act_Time when invoked?
2. Are your print statements guarded by any IF statements?
3. Try printing something (anything) immediately before the call site to cal_act_Time to verify control flow gets there.
4. How are you testing? Is there any reason why GlobalRequestToL2Cache might never have any messages?

Regards,
Dan

On Thu, Mar 4, 2010 at 7:58 PM, Muhammad Shoaib <shoaibbinalt@xxxxxxxx <shoaibbinalt@xxxxxxxx> <shoaibbinalt@xxxxxxxx <shoaibbinalt@xxxxxxxx>>> wrote:

List,

I am trying to count the number of access L2 cache has either from its private L1 or from other nodes. For this I have implemented a function "cal_Time" which keeps track of  the time between consecutive accesses to a cache line. This function prints the time using "my_print" which is an external function defined in CacheMemory.h.
=============================================
void cal_Time(Address addr){
   if (L2cacheMemory.isTagPresent(addr)){
      
        L2cacheMemory[addr].active_time_val:= (L2cacheMemory[addr].f_time_val-L2cacheMemory[addr].i_time_val);

                        L2cacheMemory.my_print(addr,L2cacheMemory[addr].active_time_val);
=============================================
The problem is when i use this function in the following way it works (in my understanding with this I am tracking all requests L2 faces from its own private L1!!!)

======================================================
 in_port(L1requestNetwork_in, RequestMsg, L1RequestToL2Cache) {
    if (L1requestNetwork_in.isReady()) {
      peek(L1requestNetwork_in, RequestMsg) {
        assert(in_msg.Destination.isElement(machineID));
        
    cal_act_Time(in_msg.Address);
====================================================

But with the following stuff, when i try to track the requests from other processor nodes..nothing happens ..==> this function never gets executed ==>it never receives a request from other processors (Right??)??? But this should not be the case/....

========================================================
 in_port(requestNetwork_in, RequestMsg, GlobalRequestToL2Cache) {
    if (requestNetwork_in.isReady()) {
      peek(requestNetwork_in, RequestMsg) {
 
cal_act_Time(in_msg.Address);
========================================================

Any pointers/ suggestions...Am i doing something wrong here??

Shoaib

_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx <Gems-users@xxxxxxxxxxx> <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.





--
http://www.cs.wisc.edu/~gibson [esc]:wq!


_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx <Gems-users@xxxxxxxxxxx> <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.


_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx <Gems-users@xxxxxxxxxxx> <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.





--
http://www.cs.wisc.edu/~gibson [esc]:wq!

--


-

_______________________________________________
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.





--
http://www.cs.wisc.edu/~gibson [esc]:wq!


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