gem5 v24.0.0.0
|
A tagged entry is an entry containing a tag. More...
#include <tagged_entry.hh>
Public Member Functions | |
TaggedEntry () | |
~TaggedEntry ()=default | |
bool | isSecure () const |
Check if this block holds data from the secure memory space. | |
virtual bool | matchTag (Addr tag, bool is_secure) const |
Checks if the given tag information corresponds to this entry's. | |
virtual void | insert (const Addr tag, const bool is_secure) |
Insert the block by assigning it a tag and marking it valid. | |
void | invalidate () override |
Invalidate the block. | |
std::string | print () const override |
Prints relevant information about this entry. | |
bool | matchTag (const Addr tag) const override |
Checks if the given tag information corresponds to this entry's. | |
void | insert (const Addr tag) override |
Insert the block by assigning it a tag and marking it valid. | |
Public Member Functions inherited from gem5::CacheEntry | |
CacheEntry ()=default | |
~CacheEntry ()=default | |
virtual bool | isValid () const |
Checks if the entry is valid. | |
virtual Addr | getTag () const |
Get tag associated to this block. | |
Public Member Functions inherited from gem5::ReplaceableEntry | |
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. | |
Protected Member Functions | |
virtual void | setSecure () |
Set secure bit. | |
Protected Member Functions inherited from gem5::CacheEntry | |
virtual void | setTag (Addr _tag) |
Set tag associated to this block. | |
virtual void | setValid () |
Set valid bit. | |
Private Member Functions | |
void | clearSecure () |
Clear secure bit. | |
Private Attributes | |
bool | _secure |
Secure bit. | |
Additional Inherited Members | |
Public Attributes inherited from gem5::ReplaceableEntry | |
std::shared_ptr< replacement_policy::ReplacementData > | replacementData |
Replacement data associated to this entry. | |
Protected Attributes inherited from gem5::ReplaceableEntry | |
uint32_t | _set |
Set to which this entry belongs. | |
uint32_t | _way |
Way (relative position within the set) to which this entry belongs. | |
A tagged entry is an entry containing a tag.
Each tag is accompanied by a secure bit, which informs whether it belongs to a secure address space. A tagged entry's contents are only relevant if it is marked as valid.
Definition at line 48 of file tagged_entry.hh.
|
inline |
Definition at line 51 of file tagged_entry.hh.
|
default |
|
inlineprivate |
Clear secure bit.
Should be only used by the invalidation function.
Definition at line 130 of file tagged_entry.hh.
References _secure.
Referenced by invalidate().
|
inlineoverridevirtual |
Insert the block by assigning it a tag and marking it valid.
Touches block if it hadn't been touched previously.
tag | The tag value. |
Reimplemented from gem5::CacheEntry.
Definition at line 113 of file tagged_entry.hh.
References panic.
|
inlinevirtual |
Insert the block by assigning it a tag and marking it valid.
Touches block if it hadn't been touched previously.
tag | The tag value. |
Reimplemented in gem5::CacheBlk, gem5::SectorSubBlk, and gem5::TempCacheBlk.
Definition at line 81 of file tagged_entry.hh.
References setSecure(), gem5::CacheEntry::setTag(), gem5::CacheEntry::setValid(), and gem5::CacheEntry::tag.
Referenced by gem5::SectorSubBlk::insert().
|
inlineoverridevirtual |
Invalidate the block.
Its contents are no longer valid.
Reimplemented from gem5::CacheEntry.
Reimplemented in gem5::TempCacheBlk.
Definition at line 92 of file tagged_entry.hh.
References clearSecure(), and gem5::CacheEntry::invalidate().
Referenced by gem5::CacheBlk::invalidate(), gem5::prefetch::AccessMapPatternMatching::AccessMapEntry::invalidate(), gem5::prefetch::IndirectMemory::IndirectPatternDetectorEntry::invalidate(), gem5::prefetch::IndirectMemory::PrefetchTableEntry::invalidate(), gem5::prefetch::IrregularStreamBuffer::AddressMappingEntry::invalidate(), gem5::prefetch::SignaturePath::PatternEntry::invalidate(), gem5::prefetch::STeMS::ActiveGenerationTableEntry::invalidate(), gem5::prefetch::Stride::StrideEntry::invalidate(), and gem5::SectorBlk::invalidateSubBlk().
|
inline |
Check if this block holds data from the secure memory space.
Definition at line 59 of file tagged_entry.hh.
References _secure.
Referenced by gem5::Cache::cleanEvictBlk(), gem5::BaseCache::cmpAndSwap(), gem5::FALRU::findBlock(), gem5::BaseCache::handleFill(), gem5::FALRU::insertBlock(), gem5::FALRU::invalidate(), matchTag(), gem5::CacheBlkPrintWrapper::print(), print(), gem5::BaseCache::satisfyRequest(), gem5::BaseCache::updateBlockData(), gem5::BaseCache::updateCompressionData(), gem5::BaseCache::writebackBlk(), gem5::BaseCache::writebackVisitor(), and gem5::BaseCache::writecleanBlk().
|
inlinevirtual |
Checks if the given tag information corresponds to this entry's.
tag | The tag value to compare to. |
is_secure | Whether secure bit is set. |
Definition at line 69 of file tagged_entry.hh.
References gem5::CacheEntry::getTag(), isSecure(), gem5::CacheEntry::isValid(), and gem5::CacheEntry::tag.
Referenced by gem5::BaseTags::findBlock(), gem5::CompressedTags::findVictim(), gem5::SectorTags::findVictim(), and gem5::SectorSubBlk::insert().
|
inlineoverridevirtual |
Checks if the given tag information corresponds to this entry's.
tag | The tag value to compare to. |
Reimplemented from gem5::CacheEntry.
Definition at line 106 of file tagged_entry.hh.
References panic.
|
inlineoverridevirtual |
Prints relevant information about this entry.
Reimplemented from gem5::CacheEntry.
Definition at line 99 of file tagged_entry.hh.
References gem5::csprintf(), gem5::CacheEntry::getTag(), isSecure(), gem5::CacheEntry::isValid(), and gem5::ReplaceableEntry::print().
Referenced by gem5::CacheBlk::print(), and gem5::SectorBlk::print().
|
inlineprotectedvirtual |
Set secure bit.
Definition at line 120 of file tagged_entry.hh.
References _secure.
Referenced by insert().
|
private |
Secure bit.
Marks whether this entry refers to an address in the secure memory space. Must always be modified along with the tag.
Definition at line 127 of file tagged_entry.hh.
Referenced by clearSecure(), isSecure(), and setSecure().