gem5  v20.0.0.3
Protected Member Functions | Friends | List of all members
AtomicRequestProtocol Class Referenceabstract

#include <atomic.hh>

Inheritance diagram for AtomicRequestProtocol:
MasterPort AddrMapper::MapperMasterPort AtomicSimpleCPU::AtomicCPUPort BaseKvmCPU::KVMCpuPort BaseTrafficGen::TrafficGenPort Bridge::BridgeMasterPort CoherentXBar::CoherentXBarMasterPort CoherentXBar::SnoopRespPort CommMonitor::MonitorMasterPort ComputeUnit::DataPort ComputeUnit::DTLBPort ComputeUnit::ITLBPort ComputeUnit::LDSPort ComputeUnit::SQCPort DefaultFetch< Impl >::IcachePort DmaPort ExternalMaster::ExternalPort GarnetSyntheticTraffic::CpuPort Gicv3Its::DataPort GpuDispatcher::TLBPort LSQ< Impl >::DcachePort MemCheckerMonitor::MonitorMasterPort MemTest::CpuPort MinorCPU::MinorCPUPort NoncoherentXBar::NoncoherentXBarMasterPort QueuedMasterPort RiscvISA::Walker::WalkerPort RubyDirectedTester::CpuPort RubyTester::CpuPort sc_gem5::TlmToGem5Bridge< BITWIDTH >::BridgeMasterPort SerialLink::SerialLinkMasterPort SimpleCache::MemSidePort SimpleMemobj::MemSidePort SMMUMasterPort SMMUMasterTableWalkPort System::SystemPort TimingSimpleCPU::TimingCPUPort TLBCoalescer::MemSidePort TokenMasterPort TraceCPU::DcachePort TraceCPU::IcachePort X86ISA::GpuTLB::MemSidePort X86ISA::Walker::WalkerPort

Protected Member Functions

Tick send (AtomicResponseProtocol *peer, PacketPtr pkt)
 Send an atomic request packet, where the data is moved and the state is updated in zero time, without interleaving with other memory accesses. More...
 
Tick sendBackdoor (AtomicResponseProtocol *peer, PacketPtr pkt, MemBackdoorPtr &backdoor)
 Send an atomic request packet like above, but also request a backdoor to the data being accessed. More...
 
virtual Tick recvAtomicSnoop (PacketPtr pkt)=0
 Receive an atomic snoop request packet from our peer. More...
 

Friends

class AtomicResponseProtocol
 

Detailed Description

Definition at line 49 of file atomic.hh.

Member Function Documentation

◆ recvAtomicSnoop()

virtual Tick AtomicRequestProtocol::recvAtomicSnoop ( PacketPtr  pkt)
protectedpure virtual

◆ send()

Tick AtomicRequestProtocol::send ( AtomicResponseProtocol peer,
PacketPtr  pkt 
)
protected

Send an atomic request packet, where the data is moved and the state is updated in zero time, without interleaving with other memory accesses.

Parameters
peerPeer to send packet to.
pktPacket to send.
Returns
Estimated latency of access.

Definition at line 48 of file atomic.cc.

References Packet::isRequest(), and AtomicResponseProtocol::recvAtomic().

Referenced by TraceCPU::FixedRetryGen::name(), and MasterPort::sendAtomic().

◆ sendBackdoor()

Tick AtomicRequestProtocol::sendBackdoor ( AtomicResponseProtocol peer,
PacketPtr  pkt,
MemBackdoorPtr backdoor 
)
protected

Send an atomic request packet like above, but also request a backdoor to the data being accessed.

Parameters
peerPeer to send packet to.
pktPacket to send.
backdoorCan be set to a back door pointer by the target to let caller have direct access to the requested data.
Returns
Estimated latency of access.

Definition at line 55 of file atomic.cc.

References Packet::isRequest(), and AtomicResponseProtocol::recvAtomicBackdoor().

Referenced by MasterPort::sendAtomicBackdoor().

Friends And Related Function Documentation

◆ AtomicResponseProtocol

friend class AtomicResponseProtocol
friend

Definition at line 51 of file atomic.hh.


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

Generated on Fri Jul 3 2020 15:53:10 for gem5 by doxygen 1.8.13