mem-cache: set the second chance to false when inserting a block
authorMingyuan <xiang_my@outlook.com>
Mon, 2 Sep 2019 22:48:03 +0000 (17:48 -0500)
committerMingyuan Xiang <mxiang6@wisc.edu>
Sun, 13 Oct 2019 16:41:33 +0000 (16:41 +0000)
commitaae1ec8a906c2145fdb2bbcb9f2aa9f2e9ca7d03
tree51b07ee6d5dd6738873f21d7197b7f57638d135c
parentb8ecd2784c24879712b598fe940d8a73ec6842b1
mem-cache: set the second chance to false when inserting a block

Modify second chance replacement policy so that entries are inserted
without a second chance. Previously, the second chance bit was set
to true when a cache line was inserted. So the cache line would gain
its second chance when inserting. This is wrong because the cache
block will only get a second chance when it hits.

Here's a quoted citation for the second chance replacement policy:
"Whenever the algorithm examines a  page entry, it extracts the associated
usage bit and enters it into the high-order position of a k-bit shift
register after shifting the contents of the register one bit-position
lower. Then if the shift register is nonzero, the page is retained; if the
shift register is zero, the page is replaced by the new page. In either
case the usage bit for the page is turned off and the circular list
pointer is advanced."
(A Paging Experiment with the Multics System, FJ Corbato, 1968)

Change-Id: I0d07e56aa16c67dd36e0d490c3f457f91e46f320
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/20882
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
src/mem/cache/replacement_policies/second_chance_rp.cc