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
Sent: Friday, March 05, 2010 7:37 AM
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>
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 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 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.
|