mem-cache,mem-ruby: Move WeightedLRU RP
authorDaniel R. Carvalho <odanrc@yahoo.com.br>
Sat, 2 Nov 2019 14:20:00 +0000 (15:20 +0100)
committerDaniel Carvalho <odanrc@yahoo.com.br>
Mon, 10 Feb 2020 12:40:18 +0000 (12:40 +0000)
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>

src/mem/cache/replacement_policies/ReplacementPolicies.py
src/mem/cache/replacement_policies/SConscript
src/mem/cache/replacement_policies/weighted_lru_rp.cc [new file with mode: 0644]
src/mem/cache/replacement_policies/weighted_lru_rp.hh [new file with mode: 0644]
src/mem/ruby/structures/CacheMemory.cc
src/mem/ruby/system/SConscript
src/mem/ruby/system/WeightedLRUPolicy.cc [deleted file]
src/mem/ruby/system/WeightedLRUPolicy.hh [deleted file]
src/mem/ruby/system/WeightedLRUReplacementPolicy.py [deleted file]

index 8a67deaa1208ea3f483ba9ed5c41784c07d89b77..739b40046531c37f44d442249ca994a0978cb03f 100644 (file)
@@ -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"
index 468cf7df46c4e83d348252cafd4e9185436b61f4..a1fd443bcf30de6fb2e81664df36930385faea15 100644 (file)
@@ -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/cache/replacement_policies/weighted_lru_rp.cc b/src/mem/cache/replacement_policies/weighted_lru_rp.cc
new file mode 100644 (file)
index 0000000..f7bcd40
--- /dev/null
@@ -0,0 +1,127 @@
+/*
+ * 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
+ */
+
+#include "mem/cache/replacement_policies/weighted_lru_rp.hh"
+
+#include <cassert>
+
+#include "params/WeightedLRURP.hh"
+
+WeightedLRUPolicy::WeightedLRUPolicy(const Params* p)
+    : BaseReplacementPolicy(p)
+{
+}
+
+WeightedLRUPolicy *
+WeightedLRURPParams::create()
+{
+    return new WeightedLRUPolicy(this);
+}
+
+void
+WeightedLRUPolicy::touch(const std::shared_ptr<ReplacementData>&
+                                                  replacement_data) const
+{
+    std::static_pointer_cast<WeightedLRUReplData>(replacement_data)->
+                                                 last_touch_tick = curTick();
+}
+
+void
+WeightedLRUPolicy::touch(const std::shared_ptr<ReplacementData>&
+                        replacement_data, int occupancy) const
+{
+    std::static_pointer_cast<WeightedLRUReplData>(replacement_data)->
+                                                  last_touch_tick = curTick();
+    std::static_pointer_cast<WeightedLRUReplData>(replacement_data)->
+                                                  last_occ_ptr = occupancy;
+}
+
+ReplaceableEntry*
+WeightedLRUPolicy::getVictim(const ReplacementCandidates& candidates) const
+{
+    assert(candidates.size() > 0);
+
+    ReplaceableEntry* victim = candidates[0];
+    // Use weight (last_occ_ptr) to find victim.
+    // Evict the block that has the smallest weight.
+    // If two blocks have the same weight, evict the oldest one.
+    for (const auto& candidate : candidates) {
+        // candidate's replacement_data
+        std::shared_ptr<WeightedLRUReplData> candidate_replacement_data =
+            std::static_pointer_cast<WeightedLRUReplData>(
+                                             candidate->replacementData);
+        // victim's replacement_data
+        std::shared_ptr<WeightedLRUReplData> victim_replacement_data =
+            std::static_pointer_cast<WeightedLRUReplData>(
+                                             victim->replacementData);
+
+        if (candidate_replacement_data->last_occ_ptr <
+                    victim_replacement_data->last_occ_ptr) {
+            victim = candidate;
+        } else if (candidate_replacement_data->last_occ_ptr ==
+                    victim_replacement_data->last_occ_ptr) {
+            // Evict the block with a smaller tick.
+            Tick time = candidate_replacement_data->last_touch_tick;
+            if (time < victim_replacement_data->last_touch_tick) {
+                victim = candidate;
+            }
+        }
+    }
+    return victim;
+}
+
+std::shared_ptr<ReplacementData>
+WeightedLRUPolicy::instantiateEntry()
+{
+    return std::shared_ptr<ReplacementData>(new WeightedLRUReplData);
+}
+
+void
+WeightedLRUPolicy::reset(const std::shared_ptr<ReplacementData>&
+                                                    replacement_data) const
+{
+    // Set last touch timestamp
+    std::static_pointer_cast<WeightedLRUReplData>(
+        replacement_data)->last_touch_tick = curTick();
+}
+
+void
+WeightedLRUPolicy::invalidate(const std::shared_ptr<ReplacementData>&
+                                                    replacement_data) const
+{
+    // Reset last touch timestamp
+    std::static_pointer_cast<WeightedLRUReplData>(
+        replacement_data)->last_touch_tick = Tick(0);
+}
diff --git a/src/mem/cache/replacement_policies/weighted_lru_rp.hh b/src/mem/cache/replacement_policies/weighted_lru_rp.hh
new file mode 100644 (file)
index 0000000..f339605
--- /dev/null
@@ -0,0 +1,114 @@
+/*
+ * 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: Sooraj Puthoor
+ */
+
+#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"
+
+struct WeightedLRURPParams;
+
+class WeightedLRUPolicy : public BaseReplacementPolicy
+{
+  protected:
+    /** Weighted LRU implementation of replacement data. */
+    struct WeightedLRUReplData : ReplacementData
+    {
+        /** pointer for last occupancy */
+        int last_occ_ptr;
+
+        /** Tick on which the entry was last touched. */
+        Tick last_touch_tick;
+
+        /**
+         * Default constructor. Invalidate data.
+         */
+        WeightedLRUReplData() : ReplacementData(),
+                                last_occ_ptr(0), last_touch_tick(0) {}
+    };
+  public:
+    typedef WeightedLRURPParams Params;
+    WeightedLRUPolicy(const Params* p);
+    ~WeightedLRUPolicy() {}
+
+    /**
+     * Invalidate replacement data to set it as the next probable victim.
+     * Sets its last touch tick as the starting tick.
+     *
+     * @param replacement_data Replacement data to be invalidated.
+     */
+    void invalidate(const std::shared_ptr<ReplacementData>& replacement_data)
+                                                              const override;
+    /**
+     * Touch an entry to update its replacement data.
+     * Sets its last touch tick as the current tick.
+     *
+     * @param replacement_data Replacement data to be touched.
+     */
+    void touch(const std::shared_ptr<ReplacementData>&
+                                        replacement_data) const override;
+    void touch(const std::shared_ptr<ReplacementData>& replacement_data,
+                                        int occupancy) const;
+
+    /**
+     * Reset replacement data. Used when an entry is inserted.
+     * Sets its last touch tick as the current tick.
+     *
+     * @param replacement_data Replacement data to be reset.
+     */
+    void reset(const std::shared_ptr<ReplacementData>& replacement_data) const
+                                                                     override;
+
+    /**
+     * Instantiate a replacement data entry.
+     *
+     * @return A shared pointer to the new replacement data.
+     */
+    std::shared_ptr<ReplacementData> instantiateEntry() override;
+
+    /**
+     * Find replacement victim using weight.
+     *
+     * @param candidates Replacement candidates, selected by indexing policy.
+     * @return Replacement entry to be replaced.
+     */
+    ReplaceableEntry* getVictim(const ReplacementCandidates&
+                                              candidates) const override;
+};
+
+#endif // __MEM_CACHE_REPLACEMENT_POLICIES_WEIGHTED_LRU_RP_HH__
index a7aa6370b5d5130de15101dde0f58868fad1fba1..b7343084a182f0963b434f053433c132a2661853 100644 (file)
@@ -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;
 
index b67311bcac3ee3dcf35d38154fbcddbf632f65f6..62d680e8d6795f7c9f713499e172304c864200bc 100644 (file)
@@ -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/WeightedLRUPolicy.cc b/src/mem/ruby/system/WeightedLRUPolicy.cc
deleted file mode 100644 (file)
index 8f330d9..0000000
+++ /dev/null
@@ -1,126 +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
- */
-
-#include "mem/ruby/system/WeightedLRUPolicy.hh"
-
-#include <cassert>
-#include <memory>
-
-WeightedLRUPolicy::WeightedLRUPolicy(const Params* p)
-    : BaseReplacementPolicy(p)
-{
-}
-
-WeightedLRUPolicy *
-WeightedLRUReplacementPolicyParams::create()
-{
-    return new WeightedLRUPolicy(this);
-}
-
-void
-WeightedLRUPolicy::touch(const std::shared_ptr<ReplacementData>&
-                                                  replacement_data) const
-{
-    std::static_pointer_cast<WeightedLRUReplData>(replacement_data)->
-                                                 last_touch_tick = curTick();
-}
-
-void
-WeightedLRUPolicy::touch(const std::shared_ptr<ReplacementData>&
-                        replacement_data, int occupancy) const
-{
-    std::static_pointer_cast<WeightedLRUReplData>(replacement_data)->
-                                                  last_touch_tick = curTick();
-    std::static_pointer_cast<WeightedLRUReplData>(replacement_data)->
-                                                  last_occ_ptr = occupancy;
-}
-
-ReplaceableEntry*
-WeightedLRUPolicy::getVictim(const ReplacementCandidates& candidates) const
-{
-    assert(candidates.size() > 0);
-
-    ReplaceableEntry* victim = candidates[0];
-    // Use weight (last_occ_ptr) to find victim.
-    // Evict the block that has the smallest weight.
-    // If two blocks have the same weight, evict the oldest one.
-    for (const auto& candidate : candidates) {
-        // candidate's replacement_data
-        std::shared_ptr<WeightedLRUReplData> candidate_replacement_data =
-            std::static_pointer_cast<WeightedLRUReplData>(
-                                             candidate->replacementData);
-        // victim's replacement_data
-        std::shared_ptr<WeightedLRUReplData> victim_replacement_data =
-            std::static_pointer_cast<WeightedLRUReplData>(
-                                             victim->replacementData);
-
-        if (candidate_replacement_data->last_occ_ptr <
-                    victim_replacement_data->last_occ_ptr) {
-            victim = candidate;
-        } else if (candidate_replacement_data->last_occ_ptr ==
-                    victim_replacement_data->last_occ_ptr) {
-            // Evict the block with a smaller tick.
-            Tick time = candidate_replacement_data->last_touch_tick;
-            if (time < victim_replacement_data->last_touch_tick) {
-                victim = candidate;
-            }
-        }
-    }
-    return victim;
-}
-
-std::shared_ptr<ReplacementData>
-WeightedLRUPolicy::instantiateEntry()
-{
-    return std::shared_ptr<ReplacementData>(new WeightedLRUReplData);
-}
-
-void
-WeightedLRUPolicy::reset(const std::shared_ptr<ReplacementData>&
-                                                    replacement_data) const
-{
-    // Set last touch timestamp
-    std::static_pointer_cast<WeightedLRUReplData>(
-        replacement_data)->last_touch_tick = curTick();
-}
-
-void
-WeightedLRUPolicy::invalidate(const std::shared_ptr<ReplacementData>&
-                                                    replacement_data) const
-{
-    // Reset last touch timestamp
-    std::static_pointer_cast<WeightedLRUReplData>(
-        replacement_data)->last_touch_tick = Tick(0);
-}
diff --git a/src/mem/ruby/system/WeightedLRUPolicy.hh b/src/mem/ruby/system/WeightedLRUPolicy.hh
deleted file mode 100644 (file)
index a117845..0000000
+++ /dev/null
@@ -1,113 +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: Sooraj Puthoor
- */
-
-#ifndef __MEM_RUBY_SYSTEM_WEIGHTEDLRUPOLICY_HH__
-#define __MEM_RUBY_SYSTEM_WEIGHTEDLRUPOLICY_HH__
-
-#include "mem/cache/replacement_policies/base.hh"
-#include "mem/ruby/structures/CacheMemory.hh"
-#include "params/WeightedLRUReplacementPolicy.hh"
-
-/* Simple true LRU replacement policy */
-
-class WeightedLRUPolicy : public BaseReplacementPolicy
-{
-  protected:
-    /** Weighted LRU implementation of replacement data. */
-    struct WeightedLRUReplData : ReplacementData
-    {
-        /** pointer for last occupancy */
-        int last_occ_ptr;
-
-        /** Tick on which the entry was last touched. */
-        Tick last_touch_tick;
-
-        /**
-         * Default constructor. Invalidate data.
-         */
-        WeightedLRUReplData() : ReplacementData(),
-                                last_occ_ptr(0), last_touch_tick(0) {}
-    };
-  public:
-    typedef WeightedLRUReplacementPolicyParams Params;
-    WeightedLRUPolicy(const Params* p);
-    ~WeightedLRUPolicy() {}
-
-    /**
-     * Invalidate replacement data to set it as the next probable victim.
-     * Sets its last touch tick as the starting tick.
-     *
-     * @param replacement_data Replacement data to be invalidated.
-     */
-    void invalidate(const std::shared_ptr<ReplacementData>& replacement_data)
-                                                              const override;
-    /**
-     * Touch an entry to update its replacement data.
-     * Sets its last touch tick as the current tick.
-     *
-     * @param replacement_data Replacement data to be touched.
-     */
-    void touch(const std::shared_ptr<ReplacementData>&
-                                        replacement_data) const override;
-    void touch(const std::shared_ptr<ReplacementData>& replacement_data,
-                                        int occupancy) const;
-
-    /**
-     * Reset replacement data. Used when an entry is inserted.
-     * Sets its last touch tick as the current tick.
-     *
-     * @param replacement_data Replacement data to be reset.
-     */
-    void reset(const std::shared_ptr<ReplacementData>& replacement_data) const
-                                                                     override;
-
-    /**
-     * Instantiate a replacement data entry.
-     *
-     * @return A shared pointer to the new replacement data.
-     */
-    std::shared_ptr<ReplacementData> instantiateEntry() override;
-
-    /**
-     * Find replacement victim using weight.
-     *
-     * @param candidates Replacement candidates, selected by indexing policy.
-     * @return Replacement entry to be replaced.
-     */
-    ReplaceableEntry* getVictim(const ReplacementCandidates&
-                                              candidates) const override;
-};
-
-#endif // __MEM_RUBY_SYSTEM_WeightedLRUPolicy_HH__
diff --git a/src/mem/ruby/system/WeightedLRUReplacementPolicy.py b/src/mem/ruby/system/WeightedLRUReplacementPolicy.py
deleted file mode 100644 (file)
index 48143e5..0000000
+++ /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"