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