Hi,

I added a function in CacheMemory.* called hashCompare(DataBlock dbk). This
function is called in MESI_CMP_directory-L2cache.sm:
-----------------------------
in_port(responseIntraChipL2Network_in, ResponseMsg, responseToL2Cache, rank
= 1) {
......
if(in_msg.Type == CoherenceResponseType:MEMORY_DATA) {

              DataBlock dbk := cache_entry.DataBlk;
              L2cacheMemory.hashCompare(dbk);

              trigger(Event:Mem_Data, in_msg.Address, cache_entry, tbe);
....
}
-----------------------------
It was also added in RubySlicc_Types.sm. However when I compiled it, it got
following error:
-----------------------------
build/X86/mem/protocol/L2Cache_Wakeup.do: In function
`L2Cache_Controller::wakeup()':
/home/ytian/Documents/Gem5/build/X86/mem/protocol/L2Cache_Wakeup.cc:234:
undefined reference to `CacheMemory::hashCompare(DataBlock)'
collect2: ld returned 1 exit status
scons: *** [build/X86/gem5.debug] Error 1
scons: building terminated because of errors.
-----------------------------
Could anyone tell me what the problem is? I added other functions (which
didn't take parameters) in this way and they worked fine.

Also I have another question related to the communication between L1 and L2
caches. As I know, a local L1 (let's say L1D-0) probably requests cache
block from a remote L2 cache slice (e.g., L2cache-1). Compared to a local
access (L1D-0 to L2cache-0), is there any latency varies? I assume that a
local access incurs smaller access latency than a remote access, is it
correct? Could anyone tell how it is simulated in any related code? Since
in MESI_CMP_directory-*.sm, i cannot find any places that differ the
requestor from local to remote one. Could you please give me any
explanation/instruction on the communication between L1caches and a shared
L2 cache? Thank you for your help.

Thanks,
Yingying
_______________________________________________
gem5-users mailing list
gem5-users@gem5.org
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to