gem5
v21.0.1.0
|
A fully associative cache block. More...
#include <fa_lru.hh>
Public Member Functions | |
FALRUBlk () | |
std::string | print () const override |
Pretty-print inCachesMask and other CacheBlk information. More... | |
![]() | |
CacheBlk () | |
CacheBlk (const CacheBlk &)=delete | |
CacheBlk & | operator= (const CacheBlk &)=delete |
CacheBlk (const CacheBlk &&)=delete | |
virtual CacheBlk & | operator= (CacheBlk &&other) |
Move assignment operator. More... | |
virtual | ~CacheBlk () |
virtual void | invalidate () override |
Invalidate the block and clear all state. More... | |
void | setCoherenceBits (unsigned bits) |
Sets the corresponding coherence bits. More... | |
void | clearCoherenceBits (unsigned bits) |
Clear the corresponding coherence bits. More... | |
bool | isSet (unsigned bits) const |
Checks the given coherence bits are set. More... | |
bool | wasPrefetched () const |
Check if this block was the result of a hardware prefetch, yet to be touched. More... | |
void | clearPrefetched () |
Clear the prefetching bit. More... | |
void | setPrefetched () |
Marks this blocks as a recently prefetched block. More... | |
Tick | getWhenReady () const |
Get tick at which block's data will be available for access. More... | |
void | setWhenReady (const Tick tick) |
Set tick at which block's data will be available for access. More... | |
uint32_t | getTaskId () const |
Get the task id associated to this block. More... | |
uint32_t | getSrcRequestorId () const |
Get the requestor id associated to this block. More... | |
unsigned | getRefCount () const |
Get the number of references to this block since insertion. More... | |
void | increaseRefCount () |
Get the number of references to this block since insertion. More... | |
Tick | getAge () const |
Get the block's age, that is, the number of ticks since its insertion. More... | |
void | insert (const Addr tag, const bool is_secure, const int src_requestor_ID, const uint32_t task_ID) |
Set member variables when a block insertion occurs. More... | |
void | trackLoadLocked (PacketPtr pkt) |
Track the fact that a local locked was issued to the block. More... | |
void | clearLoadLocks (const RequestPtr &req) |
Clear the any load lock that intersect the request, and is from a different context. More... | |
bool | checkWrite (PacketPtr pkt) |
Handle interaction of load-locked operations and stores. More... | |
virtual void | insert (const Addr tag, const bool is_secure) |
Insert the block by assigning it a tag and marking it valid. More... | |
![]() | |
TaggedEntry () | |
~TaggedEntry ()=default | |
virtual bool | isValid () const |
Checks if the entry is valid. More... | |
bool | isSecure () const |
Check if this block holds data from the secure memory space. More... | |
virtual Addr | getTag () const |
Get tag associated to this block. More... | |
virtual bool | matchTag (Addr tag, bool is_secure) const |
Checks if the given tag information corresponds to this entry's. More... | |
virtual void | insert (const Addr tag, const bool is_secure) |
Insert the block by assigning it a tag and marking it valid. More... | |
std::string | print () const override |
Prints relevant information about this entry. More... | |
![]() | |
ReplaceableEntry ()=default | |
virtual | ~ReplaceableEntry ()=default |
virtual void | setPosition (const uint32_t set, const uint32_t way) |
Set both the set and way. More... | |
uint32_t | getSet () const |
Get set number. More... | |
uint32_t | getWay () const |
Get way number. More... | |
Public Attributes | |
FALRUBlk * | prev |
The previous block in LRU order. More... | |
FALRUBlk * | next |
The next block in LRU order. More... | |
CachesMask | inCachesMask |
A bit mask of the caches that fit this block. More... | |
![]() | |
uint8_t * | data |
Contains a copy of the data in this block for easy access. More... | |
Tick | whenReady |
Which curTick() will this block be accessible. More... | |
![]() | |
std::shared_ptr< ReplacementPolicy::ReplacementData > | replacementData |
Replacement data associated to this entry. More... | |
Additional Inherited Members | |
![]() | |
enum | CoherenceBits : unsigned { WritableBit = 0x02, ReadableBit = 0x04, DirtyBit = 0x08, AllBits = 0x0E } |
Cache block's enum listing the supported coherence bits. More... | |
![]() | |
void | setTaskId (const uint32_t task_id) |
Set the task id value. More... | |
void | setSrcRequestorId (const uint32_t id) |
Set the source requestor id. More... | |
void | setRefCount (const unsigned count) |
Set the number of references to this block since insertion. More... | |
void | setTickInserted () |
Set the current tick as this block's insertion tick. More... | |
![]() | |
virtual void | setTag (Addr tag) |
Set tag associated to this block. More... | |
virtual void | setSecure () |
Set secure bit. More... | |
virtual void | setValid () |
Set valid bit. More... | |
![]() | |
std::list< Lock > | lockList |
List of thread contexts that have performed a load-locked (LL) on the block since the last store. More... | |
unsigned | coherence |
The current coherence status of this block. More... | |
![]() | |
uint32_t | _set |
Set to which this entry belongs. More... | |
uint32_t | _way |
Way (relative position within the set) to which this entry belongs. More... | |
|
overridevirtual |
Pretty-print inCachesMask and other CacheBlk information.
Reimplemented from CacheBlk.
Definition at line 58 of file fa_lru.cc.
References csprintf(), inCachesMask, and CacheBlk::print().
CachesMask FALRUBlk::inCachesMask |
A bit mask of the caches that fit this block.
Definition at line 92 of file fa_lru.hh.
Referenced by FALRU::accessBlock(), FALRU::CacheTracking::check(), FALRU::CacheTracking::init(), FALRU::insertBlock(), FALRU::CacheTracking::moveBlockToHead(), FALRU::CacheTracking::moveBlockToTail(), print(), and FALRU::CacheTracking::recordAccess().
FALRUBlk* FALRUBlk::next |
The next block in LRU order.
Definition at line 89 of file fa_lru.hh.
Referenced by FALRU::CacheTracking::check(), FALRU::CacheTracking::init(), FALRU::CacheTracking::moveBlockToTail(), FALRU::moveToHead(), FALRU::moveToTail(), and FALRU::tagsInit().
FALRUBlk* FALRUBlk::prev |
The previous block in LRU order.
Definition at line 87 of file fa_lru.hh.
Referenced by FALRU::CacheTracking::moveBlockToHead(), FALRU::moveToHead(), FALRU::moveToTail(), and FALRU::tagsInit().