What you are asking for is not clear. What do you mean by "from the 100
GETS misses in proc 0, there are 40 hits in proc 1 ...etc."? Do you want
to track the last processor that touched each block? Each GETS miss can
be fetched from either:
- Any of the caches of the other processors OR
- Memory
You can include a new field as a property of cache blocks in
ruby/system/CacheMemory.h that you set to the last processor that
touches a block. However, when the block is written back to memory, you
should reset this field to a default of "N/A" or something similar.
Conversely, when you read a block from memory, you should set this field
to the same default. This way you know for each GETS miss whether a
block last existed in another processor's cache or memory.
I hope that helps.
-Alaa
adash@xxxxxxx wrote:
Hello,
I am working on a 4 processor system with
MOSI_SMP_bcast_1level-cache protocol. Most of my functions
are initialized and defined inside CacheMemory.h file and
called inside the *.sm file. I am interested in writing such
as function which will do the following…..
Suppose I have 100 read misses(GETS) generated by processor
0, how do I find out the number of hits for these 100 misses
inside other processors.
Lets say for the above 100 misses in Proc 0, there are 40
hits in Proc1 for those addresses, 40 hits in Proc 2 and 20
hits in Proc 3(40+40+20 =100). These 40, 40 and 20 is what I
am interested to find out.
Thanks in advance.
Regards,
AD
|