Go to the documentation of this file.
29 #ifndef __CACHE_PREFETCH_ASSOCIATIVE_SET_HH__
30 #define __CACHE_PREFETCH_ASSOCIATIVE_SET_HH__
116 template<
class Entry>
118 static_assert(std::is_base_of<TaggedEntry, Entry>::value,
119 "Entry must derive from TaggedEntry");
239 #endif//__CACHE_PREFETCH_ASSOCIATIVE_SET_HH__
A replaceable entry is a basic entry in a 2d table-like structure that needs to have replacement func...
Copyright (c) 2018 Metempsy Technology Consulting All rights reserved.
Associative container based on the previosuly defined Entry type Each element is indexed by a key of ...
const int associativity
Associativity of the container.
Addr getTag() const
Obtain the entry tag.
const_iterator end() const
Returns an iterator pointing to the end of the the dictionary (placeholder element,...
Addr tag
Tag for the entry.
Entry * findEntry(Addr addr, bool is_secure) const
Find an entry within the set.
std::vector< Entry > entries
Vector containing the entries of the container.
void accessEntry(Entry *entry)
Do an access to the entry, this is required to update the replacement information data.
bool secure
Whether this entry refers to a memory area in the secure space.
A common base class of cache replacement policy objects.
std::vector< Entry * > getPossibleEntries(const Addr addr) const
Find the set of entries that could be replaced given that we want to add a new entry with the provide...
bool isSecure() const
Consult if this entry refers to a memory in the secure area.
void insertEntry(Addr addr, bool is_secure, Entry *entry)
Indicate that an entry has just been inserted.
typename std::vector< Prefetcher::IrregularStreamBuffer::AddressMappingEntry >::iterator iterator
iterator begin()
Returns an iterator to the first entry of the dictionary.
void setValid()
Sets the entry to valid.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Entry * findVictim(Addr addr)
Find a victim to be replaced.
const int numEntries
Total number of entries, entries are organized in sets of the provided associativity.
void invalidate(Entry *entry)
Invalidate an entry and its respective replacement data.
typename std::vector< Prefetcher::IrregularStreamBuffer::AddressMappingEntry >::const_iterator const_iterator
Iterator types.
void setSecure(bool s)
Sets the secure value bit.
virtual void invalidate()
Invalidates the entry.
iterator end()
Returns an iterator pointing to the end of the the dictionary (placeholder element,...
A common base class for indexing table locations.
BaseIndexingPolicy *const indexingPolicy
Pointer to the indexing policy.
BaseReplacementPolicy *const replacementPolicy
Pointer to the replacement policy.
bool isValid() const
Consult the valid bit.
void setTag(Addr t)
Sets the tag of the entry.
AssociativeSet(int assoc, int num_entries, BaseIndexingPolicy *idx_policy, BaseReplacementPolicy *rpl_policy, Entry const &init_value=Entry())
Public constructor.
const_iterator begin() const
Returns an iterator to the first entry of the dictionary.
Generated on Wed Sep 30 2020 14:02:12 for gem5 by doxygen 1.8.17