gem5  v22.0.0.1
Public Member Functions | Private Attributes | List of all members
gem5::prefetch::Base::PrefetchInfo Class Reference

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 >
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...
 

Detailed Description

Class containing the information needed by the prefetch to train and generate new prefetch requests.

Definition at line 97 of file base.hh.

Constructor & Destructor Documentation

◆ PrefetchInfo() [1/2]

gem5::prefetch::Base::PrefetchInfo::PrefetchInfo ( PacketPtr  pkt,
Addr  addr,
bool  miss 
)

Constructs a PrefetchInfo using a PacketPtr.

Parameters
pktPacketPtr used to generate the PrefetchInfo
addrthe address value of the new object, this address is used to train the prefetcher
misswhether this event comes from a cache miss

Definition at line 62 of file base.cc.

References data, gem5::Packet::getAddr(), gem5::Packet::getConstPtr(), gem5::ArmISA::offset, gem5::Packet::req, and write.

◆ PrefetchInfo() [2/2]

gem5::prefetch::Base::PrefetchInfo::PrefetchInfo ( PrefetchInfo const &  pfi,
Addr  addr 
)

Constructs a PrefetchInfo using a new address value and another PrefetchInfo as a reference.

Parameters
pfiPrefetchInfo used to generate this new object
addrthe address value of the new object

Definition at line 78 of file base.cc.

◆ ~PrefetchInfo()

gem5::prefetch::Base::PrefetchInfo::~PrefetchInfo ( )
inline

Definition at line 256 of file base.hh.

References data.

Member Function Documentation

◆ get()

template<typename T >
T gem5::prefetch::Base::PrefetchInfo::get ( ByteOrder  endian) const
inline

Gets the associated data of the request triggering the event.

Parameters
Byteordering of the stored data
Returns
the data

Definition at line 211 of file base.hh.

References gem5::betoh(), data, gem5::letoh(), and panic.

Referenced by gem5::prefetch::IndirectMemory::calculatePrefetch().

◆ getAddr()

Addr gem5::prefetch::Base::PrefetchInfo::getAddr ( ) const
inline

◆ getPaddr()

Addr gem5::prefetch::Base::PrefetchInfo::getPaddr ( ) const
inline

Gets the physical address of the request.

Returns
physical address of the request

Definition at line 190 of file base.hh.

References paddress.

Referenced by gem5::prefetch::STeMS::calculatePrefetch().

◆ getPC()

Addr gem5::prefetch::Base::PrefetchInfo::getPC ( ) const
inline

◆ getRequestorId()

RequestorID gem5::prefetch::Base::PrefetchInfo::getRequestorId ( ) const
inline

Gets the requestor ID that generated this address.

Returns
the requestor ID that generated this address

Definition at line 162 of file base.hh.

References requestorId.

Referenced by gem5::prefetch::Stride::calculatePrefetch().

◆ getSize()

unsigned int gem5::prefetch::Base::PrefetchInfo::getSize ( ) const
inline

Gets the size of the request triggering this event.

Returns
the size in bytes of the request triggering this event

Definition at line 171 of file base.hh.

References size.

Referenced by gem5::prefetch::IndirectMemory::calculatePrefetch().

◆ hasPC()

bool gem5::prefetch::Base::PrefetchInfo::hasPC ( ) const
inline

◆ isCacheMiss()

bool gem5::prefetch::Base::PrefetchInfo::isCacheMiss ( ) const
inline

Check if this event comes from a cache miss.

Returns
true if this event comes from a cache miss

Definition at line 199 of file base.hh.

References cacheMiss.

Referenced by gem5::prefetch::IndirectMemory::calculatePrefetch(), and gem5::prefetch::STeMS::calculatePrefetch().

◆ isSecure()

bool gem5::prefetch::Base::PrefetchInfo::isSecure ( ) const
inline

◆ isWrite()

bool gem5::prefetch::Base::PrefetchInfo::isWrite ( ) const
inline

Checks if the request that caused this prefetch event was a write request.

Returns
true if the request causing this event is a write request

Definition at line 181 of file base.hh.

References write.

Referenced by gem5::prefetch::IndirectMemory::calculatePrefetch().

◆ sameAddr()

bool gem5::prefetch::Base::PrefetchInfo::sameAddr ( PrefetchInfo const &  pfi) const
inline

Check for equality.

Parameters
pfiPrefetchInfo to compare against
Returns
True if this object and the provided one are equal

Definition at line 233 of file base.hh.

References getAddr(), and isSecure().

Member Data Documentation

◆ address

Addr gem5::prefetch::Base::PrefetchInfo::address
private

The address used to train and generate prefetches.

Definition at line 100 of file base.hh.

Referenced by getAddr().

◆ cacheMiss

bool gem5::prefetch::Base::PrefetchInfo::cacheMiss
private

Whether this event comes from a cache miss.

Definition at line 116 of file base.hh.

Referenced by isCacheMiss().

◆ data

uint8_t* gem5::prefetch::Base::PrefetchInfo::data
private

Pointer to the associated request data.

Definition at line 118 of file base.hh.

Referenced by get(), PrefetchInfo(), and ~PrefetchInfo().

◆ paddress

Addr gem5::prefetch::Base::PrefetchInfo::paddress
private

Physical address, needed because address can be virtual.

Definition at line 114 of file base.hh.

Referenced by getPaddr().

◆ pc

Addr gem5::prefetch::Base::PrefetchInfo::pc
private

The program counter that generated this address.

Definition at line 102 of file base.hh.

Referenced by getPC().

◆ requestorId

RequestorID gem5::prefetch::Base::PrefetchInfo::requestorId
private

The requestor ID that generated this address.

Definition at line 104 of file base.hh.

Referenced by getRequestorId().

◆ secure

bool gem5::prefetch::Base::PrefetchInfo::secure
private

Whether this address targets the secure memory space.

Definition at line 108 of file base.hh.

Referenced by isSecure().

◆ size

unsigned int gem5::prefetch::Base::PrefetchInfo::size
private

Size in bytes of the request triggering this event.

Definition at line 110 of file base.hh.

Referenced by getSize().

◆ validPC

bool gem5::prefetch::Base::PrefetchInfo::validPC
private

Validity bit for the PC of this address.

Definition at line 106 of file base.hh.

Referenced by hasPC().

◆ write

bool gem5::prefetch::Base::PrefetchInfo::write
private

Whether this event comes from a write request.

Definition at line 112 of file base.hh.

Referenced by isWrite(), and PrefetchInfo().


The documentation for this class was generated from the following files:

Generated on Sat Jun 18 2022 08:14:29 for gem5 by doxygen 1.8.17