Upgrade requests are used on a write to a shared copy, to upgrade that copy's state from shared (read-only) to writable. They're generally treated as invalidations.
A write hit implies that a cache has an exclusive copy, so it knows that there's no need to send invalidations to lower levels. There are some relevant comments on the block states in the CacheBlk::print() method definition in src/mem/cache/blk.hh. Steve On Sun, Feb 7, 2016 at 4:04 PM Gongjin Sun <[email protected]> wrote: > Hi All, > > Does any know the function of the request called "UpgradeReq"? Under what > circumstance will this request be generated? After this request is sent to > other cache levels, what will happen to that level? There are so few > comments about it. Accord to its use, I guess it is related to write miss. > But I'm not sure about the specific functions. > > In addition, I noticed that when a "write hit" happens in a cache level, > this cache will NOT send an invalidate message to its lower levels (closer > to mem) to invalidate this line's other copies. Is that correct? (Note: now > this cache's upper level (closer to cpu) definitely doesn't contain this > line, otherwise there must a write hit in that upper level rather than this > cache level.) > > Thank you in advance > > Best > gjins > _______________________________________________ > gem5-users mailing list > [email protected] > http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
_______________________________________________ gem5-users mailing list [email protected] http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users
