summaryrefslogtreecommitdiff
path: root/src/mem/cache/replacement_policies/bip_rp.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem/cache/replacement_policies/bip_rp.cc')
-rw-r--r--src/mem/cache/replacement_policies/bip_rp.cc14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/mem/cache/replacement_policies/bip_rp.cc b/src/mem/cache/replacement_policies/bip_rp.cc
index 215711bb9..4a3a516f4 100644
--- a/src/mem/cache/replacement_policies/bip_rp.cc
+++ b/src/mem/cache/replacement_policies/bip_rp.cc
@@ -30,8 +30,9 @@
#include "mem/cache/replacement_policies/bip_rp.hh"
+#include <memory>
+
#include "base/random.hh"
-#include "debug/CacheRepl.hh"
BIPRP::BIPRP(const Params *p)
: LRURP(p), btp(p->btp)
@@ -39,16 +40,17 @@ BIPRP::BIPRP(const Params *p)
}
void
-BIPRP::reset(CacheBlk *blk)
+BIPRP::reset(const std::shared_ptr<ReplacementData>& replacement_data) const
{
- BaseReplacementPolicy::reset(blk);
+ std::shared_ptr<LRUReplData> casted_replacement_data =
+ std::static_pointer_cast<LRUReplData>(replacement_data);
- // Blocks are inserted as MRU if lower than btp, LRU otherwise
+ // Entries are inserted as MRU if lower than btp, LRU otherwise
if (random_mt.random<unsigned>(1, 100) <= btp) {
- blk->lastTouchTick = curTick();
+ casted_replacement_data->lastTouchTick = curTick();
} else {
// Make their timestamps as old as possible, so that they become LRU
- blk->lastTouchTick = 0;
+ casted_replacement_data->lastTouchTick = 1;
}
}