Hi gem5 community,

TL;DR:

   1. In "classic" memory, the current 2 options, mostly_incl and
   mostly_excl, seem to apply only to cache fill but NOT eviction. As a
   result, blocks evicted from L2 may be still present in L1. Is my
   understanding correct?
   2. What would be a reasonable way to enforce strict inclusivity and
   exclusivity?

----------------------

Details:
This link may provide some background:
https://m5-dev.m5sim.narkive.com/qRrXUtt7/gem5-dev-review-request-3156-mem-add-cache-clusivity-to-steer-behaviour-on-fill

   1. In the case of a replacement eviction, BaseCache::allocateBlock()
   finds a victim and then calls BaseCache::handleEvictions() >>
   BaseCache::evictBlock() >> Cache::evictBlock(). As a result, a packet is
   pushed into writebacks list. doWritebacks() doesn't seem to bother upstream
   caches that hold the same block.
   2. To implement strict inclusivity, the most obvious way to me is
   letting doWritebacks() send an invalidation packet through cpuSidePort. But
   I don't know how to stitch these things together without breaking other
   stuff.
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to