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