gem5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Public Attributes | List of all members
MSHR::TargetList Class Reference

#include <mshr.hh>

Inheritance diagram for MSHR::TargetList:
std::list< Target >

Public Member Functions

 TargetList ()
 
void updateFlags (PacketPtr pkt, Target::Source source, bool alloc_on_fill)
 Use the provided packet and the source to update the flags of this TargetList. More...
 
void resetFlags ()
 
void populateFlags ()
 Goes through the list of targets and uses them to populate the flags of this TargetList. More...
 
bool isReset () const
 Tests if the flags of this TargetList have their default values. More...
 
void add (PacketPtr pkt, Tick readyTime, Counter order, Target::Source source, bool markPending, bool alloc_on_fill)
 Add the specified packet in the TargetList. More...
 
void replaceUpgrades ()
 Convert upgrades to the equivalent request if the cache line they refer to would have been invalid (Upgrade -> ReadEx, SC* -> Fail). More...
 
void clearDownstreamPending ()
 
bool checkFunctional (PacketPtr pkt)
 
void print (std::ostream &os, int verbosity, const std::string &prefix) const
 

Public Attributes

bool needsWritable
 
bool hasUpgrade
 
bool allocOnFill
 Set when the response should allocate on fill. More...
 
- Public Attributes inherited from std::list< Target >
Target item
 Dummy Item. More...
 

Detailed Description

Definition at line 158 of file mshr.hh.

Constructor & Destructor Documentation

MSHR::TargetList::TargetList ( )

Definition at line 72 of file mshr.cc.

Member Function Documentation

void MSHR::TargetList::add ( PacketPtr  pkt,
Tick  readyTime,
Counter  order,
Target::Source  source,
bool  markPending,
bool  alloc_on_fill 
)
inline

Add the specified packet in the TargetList.

This function stores information related to the added packet and updates accordingly the flags.

Parameters
pktPacket considered for adding
readTimeTick at which the packet is processed by this cache
orderA counter giving a unique id to each target
sourceIndicates the source agent of the packet
markPendingSet for deferred targets or pending MSHRs
alloc_on_fillWhether it should allocate on a fill

Definition at line 109 of file mshr.cc.

References MSHR::downstreamPending, and Packet::findNextSenderState().

Referenced by MSHR::allocate(), MSHR::allocateTarget(), and MSHR::handleSnoop().

bool MSHR::TargetList::checkFunctional ( PacketPtr  pkt)

Definition at line 200 of file mshr.cc.

References Packet::checkFunctional(), and ArmISA::t.

Referenced by MSHR::checkFunctional().

void MSHR::TargetList::clearDownstreamPending ( )
bool MSHR::TargetList::isReset ( ) const
inline

Tests if the flags of this TargetList have their default values.

Definition at line 193 of file mshr.hh.

References allocOnFill, hasUpgrade, and needsWritable.

Referenced by MSHR::allocate(), and MSHR::deallocate().

void MSHR::TargetList::populateFlags ( )

Goes through the list of targets and uses them to populate the flags of this TargetList.

When the function returns the flags are consistent with the properties of packets in the list.

Definition at line 100 of file mshr.cc.

References ArmISA::t.

Referenced by MSHR::extractServiceableTargets(), and MSHR::promoteDeferredTargets().

void MSHR::TargetList::print ( std::ostream &  os,
int  verbosity,
const std::string &  prefix 
) const
void MSHR::TargetList::replaceUpgrades ( )

Convert upgrades to the equivalent request if the cache line they refer to would have been invalid (Upgrade -> ReadEx, SC* -> Fail).

Used to rejig ordering between targets waiting on an MSHR.

Definition at line 165 of file mshr.cc.

References replaceUpgrade(), and ArmISA::t.

Referenced by MSHR::handleSnoop().

void MSHR::TargetList::resetFlags ( )
inline
void MSHR::TargetList::updateFlags ( PacketPtr  pkt,
Target::Source  source,
bool  alloc_on_fill 
)

Use the provided packet and the source to update the flags of this TargetList.

Parameters
pktPacket considered for the flag update
sourceIndicates the source of the packet
alloc_on_fillWhether the pkt would allocate on a fill

Definition at line 78 of file mshr.cc.

References MSHR::allocOnFill(), Packet::cmd, MSHR::Target::FromSnoop, Packet::isUpgrade(), MSHR::needsWritable(), Packet::needsWritable(), and MemCmd::StoreCondReq.

Member Data Documentation

bool MSHR::TargetList::allocOnFill

Set when the response should allocate on fill.

Definition at line 164 of file mshr.hh.

Referenced by MSHR::allocOnFill(), isReset(), and resetFlags().

bool MSHR::TargetList::hasUpgrade

Definition at line 162 of file mshr.hh.

Referenced by isReset(), and resetFlags().

bool MSHR::TargetList::needsWritable

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

Generated on Fri Jun 9 2017 13:04:15 for gem5 by doxygen 1.8.6