gem5 v24.1.0.1
|
Indirect Pattern Detector entrt. More...
Public Member Functions | |
IndirectPatternDetectorEntry (unsigned int num_addresses, unsigned int num_shifts, TagExtractor ext) | |
void | invalidate () override |
Invalidate the block. | |
![]() | |
TaggedEntry () | |
~TaggedEntry ()=default | |
void | registerTagExtractor (TagExtractor ext) |
virtual bool | isValid () const |
Checks if the entry is valid. | |
bool | isSecure () const |
Check if this block holds data from the secure memory space. | |
virtual Addr | getTag () const |
Get tag associated to this block. | |
bool | match (const KeyType &key) const |
Checks if the given tag information corresponds to this entry's. | |
virtual void | insert (const KeyType &key) |
Insert the block by assigning it a tag and marking it valid. | |
std::string | print () const override |
Prints relevant information about this entry. | |
![]() | |
ReplaceableEntry () | |
virtual | ~ReplaceableEntry ()=default |
virtual void | setPosition (const uint32_t set, const uint32_t way) |
Set both the set and way. | |
uint32_t | getSet () const |
Get set number. | |
uint32_t | getWay () const |
Get way number. | |
Public Attributes | |
int64_t | idx1 |
First index. | |
int64_t | idx2 |
Second index. | |
bool | secondIndexSet |
Valid bit for the second index. | |
int | numMisses |
Number of misses currently recorded. | |
std::vector< std::vector< Addr > > | baseAddr |
Potential BaseAddr candidates for each recorded miss. | |
![]() | |
std::shared_ptr< replacement_policy::ReplacementData > | replacementData |
Replacement data associated to this entry. | |
Additional Inherited Members | |
![]() | |
using | KeyType = TaggedTypes::KeyType |
using | IndexingPolicy = TaggedIndexingPolicy |
using | TagExtractor = std::function< Addr(Addr)> |
![]() | |
virtual void | setTag (Addr tag) |
Set tag associated to this block. | |
virtual void | setSecure () |
Set secure bit. | |
void | clearSecure () |
Clear secure bit. | |
virtual void | setValid () |
Set valid bit. | |
![]() | |
TagExtractor | extractTag |
Callback used to extract the tag from the entry. | |
![]() | |
uint32_t | _set |
Set to which this entry belongs. | |
uint32_t | _way |
Way (relative position within the set) to which this entry belongs. | |
Indirect Pattern Detector entrt.
Definition at line 130 of file indirect_memory.hh.
|
inline |
Definition at line 147 of file indirect_memory.hh.
References gem5::ArmISA::ext, and gem5::TaggedEntry::registerTagExtractor().
|
inlineoverridevirtual |
Invalidate the block.
Its contents are no longer valid.
Reimplemented from gem5::TaggedEntry.
Definition at line 158 of file indirect_memory.hh.
References idx1, idx2, gem5::TaggedEntry::invalidate(), numMisses, and secondIndexSet.
Referenced by gem5::prefetch::IndirectMemory::allocateOrUpdateIPDEntry().
std::vector<std::vector<Addr> > gem5::prefetch::IndirectMemory::IndirectPatternDetectorEntry::baseAddr |
Potential BaseAddr candidates for each recorded miss.
The number of candidates per miss is determined by the number of elements in the shiftValues array.
Definition at line 145 of file indirect_memory.hh.
Referenced by gem5::prefetch::IndirectMemory::trackMissIndex1(), and gem5::prefetch::IndirectMemory::trackMissIndex2().
int64_t gem5::prefetch::IndirectMemory::IndirectPatternDetectorEntry::idx1 |
First index.
Definition at line 133 of file indirect_memory.hh.
Referenced by gem5::prefetch::IndirectMemory::allocateOrUpdateIPDEntry(), invalidate(), and gem5::prefetch::IndirectMemory::trackMissIndex1().
int64_t gem5::prefetch::IndirectMemory::IndirectPatternDetectorEntry::idx2 |
Second index.
Definition at line 135 of file indirect_memory.hh.
Referenced by gem5::prefetch::IndirectMemory::allocateOrUpdateIPDEntry(), invalidate(), and gem5::prefetch::IndirectMemory::trackMissIndex2().
int gem5::prefetch::IndirectMemory::IndirectPatternDetectorEntry::numMisses |
Number of misses currently recorded.
Definition at line 139 of file indirect_memory.hh.
Referenced by invalidate(), gem5::prefetch::IndirectMemory::trackMissIndex1(), and gem5::prefetch::IndirectMemory::trackMissIndex2().
bool gem5::prefetch::IndirectMemory::IndirectPatternDetectorEntry::secondIndexSet |
Valid bit for the second index.
Definition at line 137 of file indirect_memory.hh.
Referenced by gem5::prefetch::IndirectMemory::allocateOrUpdateIPDEntry(), gem5::prefetch::IndirectMemory::calculatePrefetch(), and invalidate().