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

#include <atomic.hh>

Inheritance diagram for AtomicRequestProtocol:
RequestPort AbstractController::MemoryPort AddrMapper::MapperRequestPort AtomicSimpleCPU::AtomicCPUPort BaseKvmCPU::KVMCpuPort BaseTrafficGen::TrafficGenPort Bridge::BridgeRequestPort CoherentXBar::CoherentXBarRequestPort CoherentXBar::SnoopRespPort CommMonitor::MonitorRequestPort ComputeUnit::DataPort ComputeUnit::DTLBPort ComputeUnit::ITLBPort ComputeUnit::LDSPort ComputeUnit::ScalarDataPort ComputeUnit::ScalarDTLBPort ComputeUnit::SQCPort DefaultFetch< Impl >::IcachePort DmaPort ExternalMaster::ExternalPort GarnetSyntheticTraffic::CpuPort Gicv3Its::DataPort LSQ< Impl >::DcachePort MasterPort MemCheckerMonitor::MonitorRequestPort MemTest::CpuPort MinorCPU::MinorCPUPort NoncoherentXBar::NoncoherentXBarRequestPort QueuedRequestPort RiscvISA::Walker::WalkerPort RubyDirectedTester::CpuPort RubyTester::CpuPort sc_gem5::TlmToGem5Bridge< BITWIDTH >::BridgeRequestPort SerialLink::SerialLinkRequestPort SimpleCache::MemSidePort SimpleMemobj::MemSidePort SMMURequestPort SMMUTableWalkPort System::SystemPort TimingSimpleCPU::TimingCPUPort TLBCoalescer::MemSidePort TokenRequestPort 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 RequestPort::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 RequestPort::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 Wed Sep 30 2020 14:02:21 for gem5 by doxygen 1.8.17