mem-ruby: prevent cacheProbe being called multiple times
authorJing Qu <jqu32@wisc.edu>
Thu, 19 Sep 2019 22:41:57 +0000 (17:41 -0500)
committerJING QU <jqu32@wisc.edu>
Wed, 25 Sep 2019 18:47:54 +0000 (18:47 +0000)
commitaff2cad4bed219a6827c26fd632c8cb3904752e6
tree3790c3d296bd0d1e244eaf1ca43a377d28c94451
parentf97cf54db7a6f7642cc9fd122f23c4396c39bcf0
mem-ruby: prevent cacheProbe being called multiple times

The cacheProbe() function will return the victim entry, and it gets
called for multiple times in trigger function in a single miss. This
will cause a problem when we try to add a new replacement policy to
the Ruby system. Certain policy, like RRIP, will modify the block
information every time the getVictim() function gets called. To
prevent future problems, we need to store the victim entry, so that
we only call it once in one miss.

Change-Id: Ic5ca05f789d9bbfb963b8e993ef707020f243702
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/21099
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Pouya Fotouhi <pfotouhi@ucdavis.edu>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Tested-by: kokoro <noreply+kokoro@google.com>
src/mem/ruby/protocol/MESI_Three_Level-L1cache.sm
src/mem/ruby/protocol/MESI_Two_Level-L1cache.sm
src/mem/ruby/protocol/MESI_Two_Level-L2cache.sm
src/mem/ruby/protocol/MOESI_CMP_directory-L2cache.sm
src/mem/ruby/protocol/MOESI_CMP_token-L1cache.sm
src/mem/ruby/protocol/MOESI_CMP_token-L2cache.sm
src/mem/ruby/protocol/MOESI_hammer-dir.sm