On 12/8/2023 1:31 AM, zahra moein via gem5-users wrote:
Hello,

Thank you very much for your response. I appreciate your assistance, and I made an effort to understand the code, which provided me with a better understanding.

However, I couldn't determine the exact origin of the packet sent by sendTimingResp() for it to be received by recvTimingResp().

I defined a counter and counted the number of times handleFill() was called in the last-level cache. This count was equal to system.l2.overallMshrMisses::total and system.mem_ctrls.dram.numReads::total.
The last-level cache is L2, and the prefetcher is disabled.

Based on this, can I conclude that whenever handleFill() is used in the last-level cache, a block is evicted from the last-level cache, and a clean block is brought from the main memory to the last-level cache?

I think your conclusion may be too strong because a block *can* be moved
from the IO cache (for example) to the last level cache.  A block brought
from memory is by definition clean, so that part holds.  I think violation of
your assumption would be rare, and perhaps in some systems it would always
hold.

HTH.

Eliot Moss
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org

Reply via email to