mem-cache,mem-ruby: Move WeightedLRU RP
Move the WeightedLRUReplacementPolicy to the replacement policies folder.
Change-Id: I9902faefb6de33343bb65f994be70bd9e1dd4e14
Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/22445
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: John Alsop <johnathan.alsop@amd.com>
Tested-by: kokoro <noreply+kokoro@google.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
diff --git a/src/mem/cache/replacement_policies/ReplacementPolicies.py b/src/mem/cache/replacement_policies/ReplacementPolicies.py
index 8a67dea..739b400 100644
--- a/src/mem/cache/replacement_policies/ReplacementPolicies.py
+++ b/src/mem/cache/replacement_policies/ReplacementPolicies.py
@@ -96,3 +96,8 @@
cxx_class = 'TreePLRURP'
cxx_header = "mem/cache/replacement_policies/tree_plru_rp.hh"
num_leaves = Param.Int(Parent.assoc, "Number of leaves in each tree")
+
+class WeightedLRURP(BaseReplacementPolicy):
+ type = "WeightedLRURP"
+ cxx_class = "WeightedLRUPolicy"
+ cxx_header = "mem/cache/replacement_policies/weighted_lru_rp.hh"
diff --git a/src/mem/cache/replacement_policies/SConscript b/src/mem/cache/replacement_policies/SConscript
index 468cf7d..a1fd443 100644
--- a/src/mem/cache/replacement_policies/SConscript
+++ b/src/mem/cache/replacement_policies/SConscript
@@ -41,3 +41,4 @@
Source('random_rp.cc')
Source('second_chance_rp.cc')
Source('tree_plru_rp.cc')
+Source('weighted_lru_rp.cc')
diff --git a/src/mem/ruby/system/WeightedLRUPolicy.cc b/src/mem/cache/replacement_policies/weighted_lru_rp.cc
similarity index 96%
rename from src/mem/ruby/system/WeightedLRUPolicy.cc
rename to src/mem/cache/replacement_policies/weighted_lru_rp.cc
index 8f330d9..f7bcd40 100644
--- a/src/mem/ruby/system/WeightedLRUPolicy.cc
+++ b/src/mem/cache/replacement_policies/weighted_lru_rp.cc
@@ -33,10 +33,11 @@
* Authors: Derek Hower
*/
-#include "mem/ruby/system/WeightedLRUPolicy.hh"
+#include "mem/cache/replacement_policies/weighted_lru_rp.hh"
#include <cassert>
-#include <memory>
+
+#include "params/WeightedLRURP.hh"
WeightedLRUPolicy::WeightedLRUPolicy(const Params* p)
: BaseReplacementPolicy(p)
@@ -44,7 +45,7 @@
}
WeightedLRUPolicy *
-WeightedLRUReplacementPolicyParams::create()
+WeightedLRURPParams::create()
{
return new WeightedLRUPolicy(this);
}
diff --git a/src/mem/ruby/system/WeightedLRUPolicy.hh b/src/mem/cache/replacement_policies/weighted_lru_rp.hh
similarity index 91%
rename from src/mem/ruby/system/WeightedLRUPolicy.hh
rename to src/mem/cache/replacement_policies/weighted_lru_rp.hh
index a117845..f339605 100644
--- a/src/mem/ruby/system/WeightedLRUPolicy.hh
+++ b/src/mem/cache/replacement_policies/weighted_lru_rp.hh
@@ -33,14 +33,15 @@
* Authors: Sooraj Puthoor
*/
-#ifndef __MEM_RUBY_SYSTEM_WEIGHTEDLRUPOLICY_HH__
-#define __MEM_RUBY_SYSTEM_WEIGHTEDLRUPOLICY_HH__
+#ifndef __MEM_CACHE_REPLACEMENT_POLICIES_WEIGHTED_LRU_RP_HH__
+#define __MEM_CACHE_REPLACEMENT_POLICIES_WEIGHTED_LRU_RP_HH__
+#include <memory>
+
+#include "base/types.hh"
#include "mem/cache/replacement_policies/base.hh"
-#include "mem/ruby/structures/CacheMemory.hh"
-#include "params/WeightedLRUReplacementPolicy.hh"
-/* Simple true LRU replacement policy */
+struct WeightedLRURPParams;
class WeightedLRUPolicy : public BaseReplacementPolicy
{
@@ -61,7 +62,7 @@
last_occ_ptr(0), last_touch_tick(0) {}
};
public:
- typedef WeightedLRUReplacementPolicyParams Params;
+ typedef WeightedLRURPParams Params;
WeightedLRUPolicy(const Params* p);
~WeightedLRUPolicy() {}
@@ -110,4 +111,4 @@
candidates) const override;
};
-#endif // __MEM_RUBY_SYSTEM_WeightedLRUPolicy_HH__
+#endif // __MEM_CACHE_REPLACEMENT_POLICIES_WEIGHTED_LRU_RP_HH__
diff --git a/src/mem/ruby/structures/CacheMemory.cc b/src/mem/ruby/structures/CacheMemory.cc
index a7aa637..b734308 100644
--- a/src/mem/ruby/structures/CacheMemory.cc
+++ b/src/mem/ruby/structures/CacheMemory.cc
@@ -35,9 +35,9 @@
#include "debug/RubyCacheTrace.hh"
#include "debug/RubyResourceStalls.hh"
#include "debug/RubyStats.hh"
+#include "mem/cache/replacement_policies/weighted_lru_rp.hh"
#include "mem/ruby/protocol/AccessPermission.hh"
#include "mem/ruby/system/RubySystem.hh"
-#include "mem/ruby/system/WeightedLRUPolicy.hh"
using namespace std;
diff --git a/src/mem/ruby/system/SConscript b/src/mem/ruby/system/SConscript
index b67311b..62d680e 100644
--- a/src/mem/ruby/system/SConscript
+++ b/src/mem/ruby/system/SConscript
@@ -37,7 +37,6 @@
SimObject('GPUCoalescer.py')
SimObject('RubySystem.py')
SimObject('Sequencer.py')
-SimObject('WeightedLRUReplacementPolicy.py')
if env['BUILD_GPU']:
SimObject('VIPERCoalescer.py')
@@ -51,4 +50,3 @@
Source('Sequencer.cc')
if env['BUILD_GPU']:
Source('VIPERCoalescer.cc')
-Source('WeightedLRUPolicy.cc')
diff --git a/src/mem/ruby/system/WeightedLRUReplacementPolicy.py b/src/mem/ruby/system/WeightedLRUReplacementPolicy.py
deleted file mode 100644
index 48143e5..0000000
--- a/src/mem/ruby/system/WeightedLRUReplacementPolicy.py
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright (c) 2013-2015 Advanced Micro Devices, Inc.
-# All rights reserved.
-#
-# For use for simulation and test purposes only
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# 1. Redistributions of source code must retain the above copyright notice,
-# this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above copyright notice,
-# this list of conditions and the following disclaimer in the documentation
-# and/or other materials provided with the distribution.
-#
-# 3. Neither the name of the copyright holder nor the names of its
-# contributors may be used to endorse or promote products derived from this
-# software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-#
-# Authors: Derek Hower
-
-from m5.params import *
-from m5.proxy import *
-from m5.objects.ReplacementPolicies import BaseReplacementPolicy
-
-class WeightedLRUReplacementPolicy(BaseReplacementPolicy):
- type = "WeightedLRUReplacementPolicy"
- cxx_class = "WeightedLRUPolicy"
- cxx_header = "mem/ruby/system/WeightedLRUPolicy.hh"