gem5  v21.0.1.0
base.hh
Go to the documentation of this file.
1 
29 #ifndef __MEM_CACHE_REPLACEMENT_POLICIES_BASE_HH__
30 #define __MEM_CACHE_REPLACEMENT_POLICIES_BASE_HH__
31 
32 #include <memory>
33 
35 #include "params/BaseReplacementPolicy.hh"
36 #include "sim/sim_object.hh"
37 
42 
43 namespace ReplacementPolicy {
44 
48 class Base : public SimObject
49 {
50  public:
51  typedef BaseReplacementPolicyParams Params;
52  Base(const Params &p) : SimObject(p) {}
53  virtual ~Base() = default;
54 
60  virtual void invalidate(const std::shared_ptr<ReplacementData>&
61  replacement_data) const = 0;
62 
68  virtual void touch(const std::shared_ptr<ReplacementData>&
69  replacement_data) const = 0;
70 
76  virtual void reset(const std::shared_ptr<ReplacementData>&
77  replacement_data) const = 0;
78 
85  virtual ReplaceableEntry* getVictim(
86  const ReplacementCandidates& candidates) const = 0;
87 
93  virtual std::shared_ptr<ReplacementData> instantiateEntry() = 0;
94 };
95 
96 } // namespace ReplacementPolicy
97 
98 #endif // __MEM_CACHE_REPLACEMENT_POLICIES_BASE_HH__
ReplacementCandidates
std::vector< ReplaceableEntry * > ReplacementCandidates
Copyright (c) 2018-2020 Inria All rights reserved.
Definition: base.hh:41
ReplaceableEntry
A replaceable entry is a basic entry in a 2d table-like structure that needs to have replacement func...
Definition: replaceable_entry.hh:57
ReplacementPolicy::Base::getVictim
virtual ReplaceableEntry * getVictim(const ReplacementCandidates &candidates) const =0
Find replacement victim among candidates.
ReplacementPolicy::Base::touch
virtual void touch(const std::shared_ptr< ReplacementData > &replacement_data) const =0
Update replacement data.
std::vector
STL vector class.
Definition: stl.hh:37
replaceable_entry.hh
ReplacementPolicy::Base::reset
virtual void reset(const std::shared_ptr< ReplacementData > &replacement_data) const =0
Reset replacement data.
ReplacementPolicy
Copyright (c) 2018-2020 Inria All rights reserved.
Definition: stride.hh:64
sim_object.hh
ReplacementPolicy::Base::Params
BaseReplacementPolicyParams Params
Definition: base.hh:51
ReplacementPolicy::Base
A common base class of cache replacement policy objects.
Definition: base.hh:48
ReplacementPolicy::Base::invalidate
virtual void invalidate(const std::shared_ptr< ReplacementData > &replacement_data) const =0
Invalidate replacement data to set it as the next probable victim.
ReplacementPolicy::Base::instantiateEntry
virtual std::shared_ptr< ReplacementData > instantiateEntry()=0
Instantiate a replacement data entry.
ReplacementPolicy::Base::~Base
virtual ~Base()=default
MipsISA::p
Bitfield< 0 > p
Definition: pra_constants.hh:323
ReplacementPolicy::Base::Base
Base(const Params &p)
Definition: base.hh:52
SimObject
Abstract superclass for simulation objects.
Definition: sim_object.hh:141

Generated on Tue Jun 22 2021 15:28:25 for gem5 by doxygen 1.8.17