gem5
v20.1.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. More... | |
bool | isSecure () const |
Returns true if the address targets the secure memory space. More... | |
Addr | getPC () const |
Returns the program counter that generated this request. More... | |
bool | hasPC () const |
Returns true if the associated program counter is valid. More... | |
RequestorID | getRequestorId () const |
Gets the requestor ID that generated this address. More... | |
unsigned int | getSize () const |
Gets the size of the request triggering this event. More... | |
bool | isWrite () const |
Checks if the request that caused this prefetch event was a write request. More... | |
Addr | getPaddr () const |
Gets the physical address of the request. More... | |
bool | isCacheMiss () const |
Check if this event comes from a cache miss. More... | |
template<typename T > | |
T | get (ByteOrder endian) const |
Gets the associated data of the request triggering the event. More... | |
bool | sameAddr (PrefetchInfo const &pfi) const |
Check for equality. More... | |
PrefetchInfo (PacketPtr pkt, Addr addr, bool miss) | |
Constructs a PrefetchInfo using a PacketPtr. More... | |
PrefetchInfo (PrefetchInfo const &pfi, Addr addr) | |
Constructs a PrefetchInfo using a new address value and another PrefetchInfo as a reference. More... | |
~PrefetchInfo () | |
Private Attributes | |
Addr | address |
The address used to train and generate prefetches. More... | |
Addr | pc |
The program counter that generated this address. More... | |
RequestorID | requestorId |
The requestor ID that generated this address. More... | |
bool | validPC |
Validity bit for the PC of this address. More... | |
bool | secure |
Whether this address targets the secure memory space. More... | |
unsigned int | size |
Size in bytes of the request triggering this event. More... | |
bool | write |
Whether this event comes from a write request. More... | |
Addr | paddress |
Physical address, needed because address can be virtual. More... | |
bool | cacheMiss |
Whether this event comes from a cache miss. More... | |
uint8_t * | data |
Pointer to the associated request data. More... | |
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 58 of file base.cc.
References data, Packet::getAddr(), Packet::getConstPtr(), ArmISA::offset, Packet::req, and write.
Prefetcher::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 |
|
inline |
Obtains the address value of this Prefetcher address.
Definition at line 117 of file base.hh.
References address.
Referenced by Prefetcher::Tagged::calculatePrefetch(), Prefetcher::DeltaCorrelatingPredictionTables::calculatePrefetch(), Prefetcher::IrregularStreamBuffer::calculatePrefetch(), Prefetcher::BOP::calculatePrefetch(), Prefetcher::SBOOE::calculatePrefetch(), Prefetcher::Stride::calculatePrefetch(), Prefetcher::AccessMapPatternMatching::calculatePrefetch(), Prefetcher::STeMS::calculatePrefetch(), Prefetcher::IndirectMemory::calculatePrefetch(), Prefetcher::SignaturePath::calculatePrefetch(), Prefetcher::Queued::insert(), Prefetcher::Queued::notify(), and sameAddr().
|
inline |
Gets the physical address of the request.
Definition at line 182 of file base.hh.
References paddress.
Referenced by Prefetcher::STeMS::calculatePrefetch().
|
inline |
Returns the program counter that generated this request.
Definition at line 135 of file base.hh.
Referenced by Prefetcher::DeltaCorrelatingPredictionTables::calculatePrefetch(), Prefetcher::IrregularStreamBuffer::calculatePrefetch(), Prefetcher::Stride::calculatePrefetch(), Prefetcher::PIF::calculatePrefetch(), Prefetcher::STeMS::calculatePrefetch(), Prefetcher::IndirectMemory::calculatePrefetch(), Prefetcher::Queued::DeferredPacket::createPkt(), and Prefetcher::Queued::createPrefetchRequest().
|
inline |
Gets the requestor ID that generated this address.
Definition at line 154 of file base.hh.
References requestorId.
Referenced by Prefetcher::Stride::calculatePrefetch().
|
inline |
Gets the size of the request triggering this event.
Definition at line 163 of file base.hh.
References size.
Referenced by Prefetcher::IndirectMemory::calculatePrefetch().
|
inline |
Returns true if the associated program counter is valid.
Definition at line 145 of file base.hh.
References validPC.
Referenced by Prefetcher::DeltaCorrelatingPredictionTables::calculatePrefetch(), Prefetcher::IrregularStreamBuffer::calculatePrefetch(), Prefetcher::Stride::calculatePrefetch(), Prefetcher::PIF::calculatePrefetch(), Prefetcher::STeMS::calculatePrefetch(), Prefetcher::IndirectMemory::calculatePrefetch(), Prefetcher::Queued::DeferredPacket::createPkt(), and getPC().
|
inline |
Check if this event comes from a cache miss.
Definition at line 191 of file base.hh.
References cacheMiss.
Referenced by Prefetcher::STeMS::calculatePrefetch(), and Prefetcher::IndirectMemory::calculatePrefetch().
|
inline |
Returns true if the address targets the secure memory space.
Definition at line 126 of file base.hh.
References secure.
Referenced by Prefetcher::IrregularStreamBuffer::calculatePrefetch(), Prefetcher::Stride::calculatePrefetch(), Prefetcher::AccessMapPatternMatching::calculatePrefetch(), Prefetcher::STeMS::calculatePrefetch(), Prefetcher::IndirectMemory::calculatePrefetch(), Prefetcher::SignaturePath::calculatePrefetch(), Prefetcher::Queued::DeferredPacket::createPkt(), Prefetcher::Queued::insert(), Prefetcher::Queued::notify(), and sameAddr().
|
inline |
Checks if the request that caused this prefetch event was a write request.
Definition at line 173 of file base.hh.
References write.
Referenced by Prefetcher::IndirectMemory::calculatePrefetch().
|
inline |
Check for equality.
pfi | PrefetchInfo to compare against |
Definition at line 225 of file base.hh.
References getAddr(), and isSecure().
|
private |
|
private |
Whether this event comes from a cache miss.
Definition at line 108 of file base.hh.
Referenced by isCacheMiss().
|
private |
Pointer to the associated request data.
Definition at line 110 of file base.hh.
Referenced by get(), PrefetchInfo(), and ~PrefetchInfo().
|
private |
Physical address, needed because address can be virtual.
Definition at line 106 of file base.hh.
Referenced by getPaddr().
|
private |
|
private |
The requestor ID that generated this address.
Definition at line 96 of file base.hh.
Referenced by getRequestorId().
|
private |
Whether this address targets the secure memory space.
Definition at line 100 of file base.hh.
Referenced by isSecure().
|
private |
|
private |
|
private |
Whether this event comes from a write request.
Definition at line 104 of file base.hh.
Referenced by isWrite(), and PrefetchInfo().