gem5
v21.0.1.0
mem
cache
replacement_policies
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
34
#include "
mem/cache/replacement_policies/replaceable_entry.hh
"
35
#include "params/BaseReplacementPolicy.hh"
36
#include "
sim/sim_object.hh
"
37
41
typedef
std::vector<ReplaceableEntry*>
ReplacementCandidates
;
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