29#ifndef __CACHE_PREFETCH_ASSOCIATIVE_SET_HH__
30#define __CACHE_PREFETCH_ASSOCIATIVE_SET_HH__
50 static_assert(std::is_base_of_v<TaggedEntry, Entry>,
51 "Entry must derive from TaggedEntry");
65 const size_t associativity_,
68 Entry
const &init_val = Entry());
virtual Entry * accessEntryByAddr(const Addr addr)
Do an access to the entry if it exists.
BaseReplacementPolicy * replPolicy
The replacement policy of the cache.
BaseIndexingPolicy * indexingPolicy
Indexing policy of the cache.
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...
virtual Addr getTag(const Addr addr) const
Get the tag for the addr.
Associative container based on the previosuly defined Entry type Each element is indexed by a key of ...
void insertEntry(Addr addr, bool is_secure, Entry *entry)
Indicate that an entry has just been inserted.
AssociativeSet(const char *name, const size_t num_entries, const size_t associativity_, replacement_policy::Base *repl_policy, BaseIndexingPolicy *indexing_policy, Entry const &init_val=Entry())
Public constructor.
Entry * findEntry(Addr addr, bool is_secure) const
Find an entry within the set.
A common base class for indexing table locations.
virtual std::string name() const
A common base class of cache replacement policy objects.
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.