From a628afedade8d7b7cab108a81e714fc2755b4af3 Mon Sep 17 00:00:00 2001 From: Anthony Gutierrez Date: Mon, 28 Jul 2014 12:23:23 -0400 Subject: mem: refactor LRU cache tags and add random replacement tags this patch implements a new tags class that uses a random replacement policy. these tags prefer to evict invalid blocks first, if none are available a replacement candidate is chosen at random. this patch factors out the common code in the LRU class and creates a new abstract class: the BaseSetAssoc class. any set associative tag class must implement the functionality related to the actual replacement policy in the following methods: accessBlock() findVictim() insertBlock() invalidate() --- src/mem/cache/cache.cc | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/mem/cache/cache.cc') diff --git a/src/mem/cache/cache.cc b/src/mem/cache/cache.cc index d59a0d44b..a5fa0e60d 100644 --- a/src/mem/cache/cache.cc +++ b/src/mem/cache/cache.cc @@ -38,6 +38,7 @@ #include "mem/cache/tags/fa_lru.hh" #include "mem/cache/tags/lru.hh" +#include "mem/cache/tags/random_repl.hh" #include "mem/cache/cache_impl.hh" // Template Instantiations @@ -45,5 +46,6 @@ template class Cache; template class Cache; +template class Cache; #endif //DOXYGEN_SHOULD_SKIP_THIS -- cgit v1.2.3