gem5  v20.1.0.0
Public Member Functions | Private Attributes | List of all members
Prefetcher::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 90 of file base.hh.

Constructor & Destructor Documentation

◆ PrefetchInfo() [1/2]

Prefetcher::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 58 of file base.cc.

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

◆ PrefetchInfo() [2/2]

Prefetcher::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 74 of file base.cc.

◆ ~PrefetchInfo()

Prefetcher::Base::PrefetchInfo::~PrefetchInfo ( )
inline

Definition at line 248 of file base.hh.

References data.

Member Function Documentation

◆ get()

template<typename T >
T Prefetcher::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 203 of file base.hh.

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

Referenced by Prefetcher::IndirectMemory::calculatePrefetch().

◆ getAddr()

Addr Prefetcher::Base::PrefetchInfo::getAddr ( ) const
inline

◆ getPaddr()

Addr Prefetcher::Base::PrefetchInfo::getPaddr ( ) const
inline

Gets the physical address of the request.

Returns
physical address of the request

Definition at line 182 of file base.hh.

References paddress.

Referenced by Prefetcher::STeMS::calculatePrefetch().

◆ getPC()

Addr Prefetcher::Base::PrefetchInfo::getPC ( ) const
inline

◆ getRequestorId()

RequestorID Prefetcher::Base::PrefetchInfo::getRequestorId ( ) const
inline

Gets the requestor ID that generated this address.

Returns
the requestor ID that generated this address

Definition at line 154 of file base.hh.

References requestorId.

Referenced by Prefetcher::Stride::calculatePrefetch().

◆ getSize()

unsigned int Prefetcher::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 163 of file base.hh.

References size.

Referenced by Prefetcher::IndirectMemory::calculatePrefetch().

◆ hasPC()

bool Prefetcher::Base::PrefetchInfo::hasPC ( ) const
inline

◆ isCacheMiss()

bool Prefetcher::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 191 of file base.hh.

References cacheMiss.

Referenced by Prefetcher::STeMS::calculatePrefetch(), and Prefetcher::IndirectMemory::calculatePrefetch().

◆ isSecure()

bool Prefetcher::Base::PrefetchInfo::isSecure ( ) const
inline

◆ isWrite()

bool Prefetcher::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 173 of file base.hh.

References write.

Referenced by Prefetcher::IndirectMemory::calculatePrefetch().

◆ sameAddr()

bool Prefetcher::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 225 of file base.hh.

References getAddr(), and isSecure().

Member Data Documentation

◆ address

Addr Prefetcher::Base::PrefetchInfo::address
private

The address used to train and generate prefetches.

Definition at line 92 of file base.hh.

Referenced by getAddr().

◆ cacheMiss

bool Prefetcher::Base::PrefetchInfo::cacheMiss
private

Whether this event comes from a cache miss.

Definition at line 108 of file base.hh.

Referenced by isCacheMiss().

◆ data

uint8_t* Prefetcher::Base::PrefetchInfo::data
private

Pointer to the associated request data.

Definition at line 110 of file base.hh.

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

◆ paddress

Addr Prefetcher::Base::PrefetchInfo::paddress
private

Physical address, needed because address can be virtual.

Definition at line 106 of file base.hh.

Referenced by getPaddr().

◆ pc

Addr Prefetcher::Base::PrefetchInfo::pc
private

The program counter that generated this address.

Definition at line 94 of file base.hh.

Referenced by getPC().

◆ requestorId

RequestorID Prefetcher::Base::PrefetchInfo::requestorId
private

The requestor ID that generated this address.

Definition at line 96 of file base.hh.

Referenced by getRequestorId().

◆ secure

bool Prefetcher::Base::PrefetchInfo::secure
private

Whether this address targets the secure memory space.

Definition at line 100 of file base.hh.

Referenced by isSecure().

◆ size

unsigned int Prefetcher::Base::PrefetchInfo::size
private

Size in bytes of the request triggering this event.

Definition at line 102 of file base.hh.

Referenced by getSize().

◆ validPC

bool Prefetcher::Base::PrefetchInfo::validPC
private

Validity bit for the PC of this address.

Definition at line 98 of file base.hh.

Referenced by hasPC().

◆ write

bool Prefetcher::Base::PrefetchInfo::write
private

Whether this event comes from a write request.

Definition at line 104 of file base.hh.

Referenced by isWrite(), and PrefetchInfo().


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

Generated on Wed Sep 30 2020 14:03:07 for gem5 by doxygen 1.8.17