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