|
gem5 [DEVELOP-FOR-25.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 gem5::X86ISA::addr, address, cacheMiss, getPaddr(), getPC(), getSize(), gem5::Packet::hasData(), hasPC(), isSecure(), isWrite(), paddress, pc, gem5::Packet::req, requestorId, secure, size, validPC, and write.
Referenced by PrefetchInfo(), and sameAddr().
| 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 |
Definition at line 77 of file base.cc.
References gem5::X86ISA::addr, address, cacheMiss, data, paddress, pc, PrefetchInfo(), requestorId, secure, size, validPC, and write.
|
inline |
|
inline |
Gets the associated data of the request triggering the event.
| Byte | ordering of the stored data |
Definition at line 226 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 140 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::Sms::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 205 of file base.hh.
References paddress.
Referenced by gem5::prefetch::STeMS::calculatePrefetch(), and PrefetchInfo().
|
inline |
Returns the program counter that generated this request.
Definition at line 158 of file base.hh.
Referenced by gem5::prefetch::DeltaCorrelatingPredictionTables::calculatePrefetch(), gem5::prefetch::IndirectMemory::calculatePrefetch(), gem5::prefetch::IrregularStreamBuffer::calculatePrefetch(), gem5::prefetch::PIF::calculatePrefetch(), gem5::prefetch::Sms::calculatePrefetch(), gem5::prefetch::STeMS::calculatePrefetch(), gem5::prefetch::Stride::calculatePrefetch(), gem5::prefetch::Queued::createPrefetchRequest(), and PrefetchInfo().
|
inline |
Gets the requestor ID that generated this address.
Definition at line 177 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 186 of file base.hh.
References size.
Referenced by gem5::prefetch::IndirectMemory::calculatePrefetch(), and PrefetchInfo().
|
inline |
Returns true if the associated program counter is valid.
Definition at line 168 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::Sms::calculatePrefetch(), gem5::prefetch::STeMS::calculatePrefetch(), gem5::prefetch::Stride::calculatePrefetch(), getPC(), and PrefetchInfo().
|
inline |
Check if this event comes from a cache miss.
Definition at line 214 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 149 of file base.hh.
References secure.
Referenced by gem5::prefetch::AccessMapPatternMatching::calculatePrefetch(), gem5::prefetch::IndirectMemory::calculatePrefetch(), gem5::prefetch::IrregularStreamBuffer::calculatePrefetch(), gem5::prefetch::PIF::calculatePrefetch(), gem5::prefetch::SignaturePath::calculatePrefetch(), gem5::prefetch::STeMS::calculatePrefetch(), gem5::prefetch::Stride::calculatePrefetch(), gem5::prefetch::Queued::insert(), gem5::prefetch::Queued::notify(), PrefetchInfo(), and sameAddr().
|
inline |
Checks if the request that caused this prefetch event was a write request.
Definition at line 196 of file base.hh.
References write.
Referenced by gem5::prefetch::IndirectMemory::calculatePrefetch(), and PrefetchInfo().
|
inline |
Check for equality.
| pfi | PrefetchInfo to compare against |
Definition at line 248 of file base.hh.
References getAddr(), isSecure(), and PrefetchInfo().
|
private |
The address used to train and generate prefetches.
Definition at line 115 of file base.hh.
Referenced by getAddr(), PrefetchInfo(), and PrefetchInfo().
|
private |
Whether this event comes from a cache miss.
Definition at line 131 of file base.hh.
Referenced by isCacheMiss(), PrefetchInfo(), and PrefetchInfo().
|
private |
Pointer to the associated request data.
Definition at line 133 of file base.hh.
Referenced by get(), PrefetchInfo(), and ~PrefetchInfo().
|
private |
Physical address, needed because address can be virtual.
Definition at line 129 of file base.hh.
Referenced by getPaddr(), PrefetchInfo(), and PrefetchInfo().
|
private |
The program counter that generated this address.
Definition at line 117 of file base.hh.
Referenced by getPC(), PrefetchInfo(), and PrefetchInfo().
|
private |
The requestor ID that generated this address.
Definition at line 119 of file base.hh.
Referenced by getRequestorId(), PrefetchInfo(), and PrefetchInfo().
|
private |
Whether this address targets the secure memory space.
Definition at line 123 of file base.hh.
Referenced by isSecure(), PrefetchInfo(), and PrefetchInfo().
|
private |
Size in bytes of the request triggering this event.
Definition at line 125 of file base.hh.
Referenced by getSize(), PrefetchInfo(), and PrefetchInfo().
|
private |
Validity bit for the PC of this address.
Definition at line 121 of file base.hh.
Referenced by hasPC(), PrefetchInfo(), and PrefetchInfo().
|
private |
Whether this event comes from a write request.
Definition at line 127 of file base.hh.
Referenced by isWrite(), PrefetchInfo(), and PrefetchInfo().