gem5 v24.0.0.0
|
Class containing the information needed by the prefetch to train and generate new prefetch requests. More...
#include <base.hh>
Public Member Functions | |
Addr | getAddr () const |
Obtains the address value of this Prefetcher address. | |
bool | isSecure () const |
Returns true if the address targets the secure memory space. | |
Addr | getPC () const |
Returns the program counter that generated this request. | |
bool | hasPC () const |
Returns true if the associated program counter is valid. | |
RequestorID | getRequestorId () const |
Gets the requestor ID that generated this address. | |
unsigned int | getSize () const |
Gets the size of the request triggering this event. | |
bool | isWrite () const |
Checks if the request that caused this prefetch event was a write request. | |
Addr | getPaddr () const |
Gets the physical address of the request. | |
bool | isCacheMiss () const |
Check if this event comes from a cache miss. | |
template<typename T > | |
T | get (ByteOrder endian) const |
Gets the associated data of the request triggering the event. | |
bool | sameAddr (PrefetchInfo const &pfi) const |
Check for equality. | |
PrefetchInfo (PacketPtr pkt, Addr addr, bool miss) | |
Constructs a PrefetchInfo using a PacketPtr. | |
PrefetchInfo (PrefetchInfo const &pfi, Addr addr) | |
Constructs a PrefetchInfo using a new address value and another PrefetchInfo as a reference. | |
~PrefetchInfo () | |
Private Attributes | |
Addr | address |
The address used to train and generate prefetches. | |
Addr | pc |
The program counter that generated this address. | |
RequestorID | requestorId |
The requestor ID that generated this address. | |
bool | validPC |
Validity bit for the PC of this address. | |
bool | secure |
Whether this address targets the secure memory space. | |
unsigned int | size |
Size in bytes of the request triggering this event. | |
bool | write |
Whether this event comes from a write request. | |
Addr | paddress |
Physical address, needed because address can be virtual. | |
bool | cacheMiss |
Whether this event comes from a cache miss. | |
uint8_t * | data |
Pointer to the associated request data. | |
Class containing the information needed by the prefetch to train and generate new prefetch requests.
Constructs a PrefetchInfo using a PacketPtr.
pkt | PacketPtr used to generate the PrefetchInfo |
addr | the address value of the new object, this address is used to train the prefetcher |
miss | whether this event comes from a cache miss |
Definition at line 61 of file base.cc.
References data, gem5::Packet::getAddr(), gem5::Packet::getConstPtr(), gem5::Packet::hasData(), gem5::ArmISA::offset, gem5::Packet::req, and write.
gem5::prefetch::Base::PrefetchInfo::PrefetchInfo | ( | PrefetchInfo const & | pfi, |
Addr | addr ) |
Constructs a PrefetchInfo using a new address value and another PrefetchInfo as a reference.
pfi | PrefetchInfo used to generate this new object |
addr | the address value of the new object |
|
inline |
|
inline |
Gets the associated data of the request triggering the event.
Byte | ordering of the stored data |
Definition at line 224 of file base.hh.
References gem5::betoh(), data, gem5::letoh(), and panic.
Referenced by gem5::prefetch::IndirectMemory::calculatePrefetch().
|
inline |
Obtains the address value of this Prefetcher address.
Definition at line 138 of file base.hh.
References address.
Referenced by gem5::prefetch::AccessMapPatternMatching::calculatePrefetch(), gem5::prefetch::BOP::calculatePrefetch(), gem5::prefetch::DeltaCorrelatingPredictionTables::calculatePrefetch(), gem5::prefetch::IndirectMemory::calculatePrefetch(), gem5::prefetch::IrregularStreamBuffer::calculatePrefetch(), gem5::prefetch::SBOOE::calculatePrefetch(), gem5::prefetch::SignaturePath::calculatePrefetch(), gem5::prefetch::STeMS::calculatePrefetch(), gem5::prefetch::Stride::calculatePrefetch(), gem5::prefetch::Tagged::calculatePrefetch(), gem5::prefetch::Queued::insert(), gem5::prefetch::Queued::notify(), and sameAddr().
|
inline |
Gets the physical address of the request.
Definition at line 203 of file base.hh.
References paddress.
Referenced by gem5::prefetch::STeMS::calculatePrefetch().
|
inline |
Returns the program counter that generated this request.
Definition at line 156 of file base.hh.
Referenced by gem5::prefetch::DeltaCorrelatingPredictionTables::calculatePrefetch(), gem5::prefetch::IndirectMemory::calculatePrefetch(), gem5::prefetch::IrregularStreamBuffer::calculatePrefetch(), gem5::prefetch::PIF::calculatePrefetch(), gem5::prefetch::STeMS::calculatePrefetch(), gem5::prefetch::Stride::calculatePrefetch(), gem5::prefetch::Queued::DeferredPacket::createPkt(), and gem5::prefetch::Queued::createPrefetchRequest().
|
inline |
Gets the requestor ID that generated this address.
Definition at line 175 of file base.hh.
References requestorId.
Referenced by gem5::prefetch::Stride::calculatePrefetch().
|
inline |
Gets the size of the request triggering this event.
Definition at line 184 of file base.hh.
References size.
Referenced by gem5::prefetch::IndirectMemory::calculatePrefetch().
|
inline |
Returns true if the associated program counter is valid.
Definition at line 166 of file base.hh.
References validPC.
Referenced by gem5::prefetch::DeltaCorrelatingPredictionTables::calculatePrefetch(), gem5::prefetch::IndirectMemory::calculatePrefetch(), gem5::prefetch::IrregularStreamBuffer::calculatePrefetch(), gem5::prefetch::PIF::calculatePrefetch(), gem5::prefetch::STeMS::calculatePrefetch(), gem5::prefetch::Stride::calculatePrefetch(), gem5::prefetch::Queued::DeferredPacket::createPkt(), and getPC().
|
inline |
Check if this event comes from a cache miss.
Definition at line 212 of file base.hh.
References cacheMiss.
Referenced by gem5::prefetch::IndirectMemory::calculatePrefetch(), and gem5::prefetch::STeMS::calculatePrefetch().
|
inline |
Returns true if the address targets the secure memory space.
Definition at line 147 of file base.hh.
References secure.
Referenced by gem5::prefetch::AccessMapPatternMatching::calculatePrefetch(), gem5::prefetch::IndirectMemory::calculatePrefetch(), gem5::prefetch::IrregularStreamBuffer::calculatePrefetch(), gem5::prefetch::SignaturePath::calculatePrefetch(), gem5::prefetch::STeMS::calculatePrefetch(), gem5::prefetch::Stride::calculatePrefetch(), gem5::prefetch::Queued::DeferredPacket::createPkt(), gem5::prefetch::Queued::insert(), gem5::prefetch::Queued::notify(), and sameAddr().
|
inline |
Checks if the request that caused this prefetch event was a write request.
Definition at line 194 of file base.hh.
References write.
Referenced by gem5::prefetch::IndirectMemory::calculatePrefetch().
|
inline |
Check for equality.
pfi | PrefetchInfo to compare against |
Definition at line 246 of file base.hh.
References getAddr(), and isSecure().
|
private |
|
private |
Whether this event comes from a cache miss.
Definition at line 129 of file base.hh.
Referenced by isCacheMiss().
|
private |
Pointer to the associated request data.
Definition at line 131 of file base.hh.
Referenced by get(), PrefetchInfo(), and ~PrefetchInfo().
|
private |
Physical address, needed because address can be virtual.
Definition at line 127 of file base.hh.
Referenced by getPaddr().
|
private |
|
private |
The requestor ID that generated this address.
Definition at line 117 of file base.hh.
Referenced by getRequestorId().
|
private |
Whether this address targets the secure memory space.
Definition at line 121 of file base.hh.
Referenced by isSecure().
|
private |
|
private |
|
private |
Whether this event comes from a write request.
Definition at line 125 of file base.hh.
Referenced by isWrite(), and PrefetchInfo().