gem5  v21.1.0.2
Protected Member Functions | Friends | List of all members
gem5::AtomicRequestProtocol Class Referenceabstract

#include <atomic.hh>

Inheritance diagram for gem5::AtomicRequestProtocol:
gem5::RequestPort gem5::AddrMapper::MapperRequestPort gem5::AtomicSimpleCPU::AtomicCPUPort gem5::BaseKvmCPU::KVMCpuPort gem5::BaseTrafficGen::TrafficGenPort gem5::Bridge::BridgeRequestPort gem5::CoherentXBar::CoherentXBarRequestPort gem5::CoherentXBar::SnoopRespPort gem5::CommMonitor::MonitorRequestPort gem5::ComputeUnit::DataPort gem5::ComputeUnit::DTLBPort gem5::ComputeUnit::ITLBPort gem5::ComputeUnit::LDSPort gem5::ComputeUnit::ScalarDataPort gem5::ComputeUnit::ScalarDTLBPort gem5::ComputeUnit::SQCPort gem5::DmaPort gem5::ExternalMaster::ExternalPort gem5::GarnetSyntheticTraffic::CpuPort gem5::Gicv3Its::DataPort gem5::MasterPort gem5::MemCheckerMonitor::MonitorRequestPort gem5::MemTest::CpuPort gem5::MinorCPU::MinorCPUPort gem5::NoncoherentXBar::NoncoherentXBarRequestPort gem5::o3::Fetch::IcachePort gem5::o3::LSQ::DcachePort gem5::ProtocolTester::SeqPort gem5::QueuedRequestPort gem5::RiscvISA::Walker::WalkerPort gem5::ruby::AbstractController::MemoryPort gem5::RubyDirectedTester::CpuPort gem5::RubyTester::CpuPort gem5::SerialLink::SerialLinkRequestPort gem5::SimpleCache::MemSidePort gem5::SimpleMemobj::MemSidePort gem5::SMMURequestPort gem5::SMMUTableWalkPort gem5::System::SystemPort gem5::TimingSimpleCPU::TimingCPUPort gem5::TLBCoalescer::MemSidePort gem5::TokenRequestPort gem5::TraceCPU::DcachePort gem5::TraceCPU::IcachePort gem5::X86ISA::GpuTLB::MemSidePort gem5::X86ISA::Walker::WalkerPort sc_gem5::TlmToGem5Bridge< BITWIDTH >::BridgeRequestPort

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 52 of file atomic.hh.

Member Function Documentation

◆ recvAtomicSnoop()

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

◆ send()

Tick gem5::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 51 of file atomic.cc.

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

Referenced by gem5::RequestPort::sendAtomic().

◆ sendBackdoor()

Tick gem5::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 58 of file atomic.cc.

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

Referenced by gem5::RequestPort::sendAtomicBackdoor().

Friends And Related Function Documentation

◆ AtomicResponseProtocol

friend class AtomicResponseProtocol
friend

Definition at line 54 of file atomic.hh.


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

Generated on Tue Sep 21 2021 12:27:17 for gem5 by doxygen 1.8.17