From 7515106ebe879163e77d7e41a6bea242eeb4a9f8 Mon Sep 17 00:00:00 2001 From: "Daniel R. Carvalho" Date: Sat, 2 Nov 2019 15:20:00 +0100 Subject: [PATCH] mem-cache,mem-ruby: Move WeightedLRU RP Move the WeightedLRUReplacementPolicy to the replacement policies folder. Change-Id: I9902faefb6de33343bb65f994be70bd9e1dd4e14 Signed-off-by: Daniel R. Carvalho Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/22445 Reviewed-by: Jason Lowe-Power Reviewed-by: John Alsop Tested-by: kokoro Maintainer: Jason Lowe-Power --- .../ReplacementPolicies.py | 5 +++ src/mem/cache/replacement_policies/SConscript | 1 + .../replacement_policies/weighted_lru_rp.cc} | 7 ++-- .../replacement_policies/weighted_lru_rp.hh} | 15 +++---- src/mem/ruby/structures/CacheMemory.cc | 2 +- src/mem/ruby/system/SConscript | 2 - .../system/WeightedLRUReplacementPolicy.py | 41 ------------------- 7 files changed, 19 insertions(+), 54 deletions(-) rename src/mem/{ruby/system/WeightedLRUPolicy.cc => cache/replacement_policies/weighted_lru_rp.cc} (97%) rename src/mem/{ruby/system/WeightedLRUPolicy.hh => cache/replacement_policies/weighted_lru_rp.hh} (92%) delete mode 100644 src/mem/ruby/system/WeightedLRUReplacementPolicy.py diff --git a/src/mem/cache/replacement_policies/ReplacementPolicies.py b/src/mem/cache/replacement_policies/ReplacementPolicies.py index 8a67deaa1..739b40046 100644 --- a/src/mem/cache/replacement_policies/ReplacementPolicies.py +++ b/src/mem/cache/replacement_policies/ReplacementPolicies.py @@ -96,3 +96,8 @@ class TreePLRURP(BaseReplacementPolicy): 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 468cf7df4..a1fd443bc 100644 --- a/src/mem/cache/replacement_policies/SConscript +++ b/src/mem/cache/replacement_policies/SConscript @@ -41,3 +41,4 @@ Source('mru_rp.cc') 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 97% rename from src/mem/ruby/system/WeightedLRUPolicy.cc rename to src/mem/cache/replacement_policies/weighted_lru_rp.cc index 8f330d917..f7bcd4006 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 -#include + +#include "params/WeightedLRURP.hh" WeightedLRUPolicy::WeightedLRUPolicy(const Params* p) : BaseReplacementPolicy(p) @@ -44,7 +45,7 @@ WeightedLRUPolicy::WeightedLRUPolicy(const Params* p) } 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 92% rename from src/mem/ruby/system/WeightedLRUPolicy.hh rename to src/mem/cache/replacement_policies/weighted_lru_rp.hh index a11784584..f339605cf 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 + +#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 @@ class WeightedLRUPolicy : public BaseReplacementPolicy last_occ_ptr(0), last_touch_tick(0) {} }; public: - typedef WeightedLRUReplacementPolicyParams Params; + typedef WeightedLRURPParams Params; WeightedLRUPolicy(const Params* p); ~WeightedLRUPolicy() {} @@ -110,4 +111,4 @@ class WeightedLRUPolicy : public BaseReplacementPolicy 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 a7aa6370b..b7343084a 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 b67311bca..62d680e8d 100644 --- a/src/mem/ruby/system/SConscript +++ b/src/mem/ruby/system/SConscript @@ -37,7 +37,6 @@ if env['BUILD_GPU']: SimObject('GPUCoalescer.py') SimObject('RubySystem.py') SimObject('Sequencer.py') -SimObject('WeightedLRUReplacementPolicy.py') if env['BUILD_GPU']: SimObject('VIPERCoalescer.py') @@ -51,4 +50,3 @@ Source('RubySystem.cc') 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 48143e5d9..000000000 --- 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" -- 2.30.2