gem5
|
#include <mshr.hh>
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... | |
|
inline |
Add the specified packet in the TargetList.
This function stores information related to the added packet and updates accordingly the flags.
pkt | Packet considered for adding |
readTime | Tick at which the packet is processed by this cache |
order | A counter giving a unique id to each target |
source | Indicates the source agent of the packet |
markPending | Set for deferred targets or pending MSHRs |
alloc_on_fill | Whether 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 | ( | ) |
Definition at line 179 of file mshr.cc.
References MSHR::clearDownstreamPending(), and ArmISA::t.
Referenced by MSHR::clearDownstreamPending(), MSHR::markInService(), and MSHR::promoteWritable().
|
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 |
Definition at line 213 of file mshr.cc.
References ccprintf(), MSHR::Target::FromCPU, MSHR::Target::FromPrefetcher, MSHR::Target::FromSnoop, ArmISA::s, and ArmISA::t.
Referenced by MSHR::print().
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().
|
inline |
Definition at line 179 of file mshr.hh.
References allocOnFill, hasUpgrade, and needsWritable.
Referenced by MSHR::deallocate(), MSHR::promoteDeferredTargets(), and MSHR::promoteWritable().
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.
pkt | Packet considered for the flag update |
source | Indicates the source of the packet |
alloc_on_fill | Whether 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.
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 |
Definition at line 161 of file mshr.hh.
Referenced by MSHR::handleSnoop(), isReset(), MSHR::markInService(), MSHR::needsWritable(), MSHR::promoteWritable(), and resetFlags().