gem5  v22.1.0.0
Protected Member Functions | Friends | List of all members
gem5::AtomicResponseProtocol Class Referenceabstract

#include <atomic.hh>

Inheritance diagram for gem5::AtomicResponseProtocol:
gem5::ResponsePort gem5::AddrMapper::MapperResponsePort gem5::Bridge::BridgeResponsePort gem5::CommMonitor::MonitorResponsePort gem5::ExternalSlave::ExternalPort gem5::LdsState::CuSidePort gem5::MemCheckerMonitor::MonitorResponsePort gem5::OutgoingRequestBridge::OutgoingRequestPort gem5::PortTerminator::RespPort gem5::QueuedResponsePort gem5::SerialLink::SerialLinkResponsePort gem5::SimpleCache::CPUSidePort gem5::SimpleMemobj::CPUSidePort gem5::SlavePort gem5::SysBridge::SysBridgeSourcePort gem5::TLBCoalescer::CpuSidePort gem5::ThreadBridge::IncomingPort gem5::TokenResponsePort gem5::VegaISA::GpuTLB::CpuSidePort gem5::VegaTLBCoalescer::CpuSidePort gem5::X86ISA::GpuTLB::CpuSidePort gem5::memory::CfiMemory::MemoryPort gem5::memory::DRAMSim2::MemoryPort gem5::memory::DRAMsim3::MemoryPort gem5::memory::SimpleMemory::MemoryPort sc_gem5::Gem5ToTlmBridge< BITWIDTH >::BridgeResponsePort

Protected Member Functions

Tick sendSnoop (AtomicRequestProtocol *peer, PacketPtr pkt)
 Send an atomic snoop request packet, where the data is moved and the state is updated in zero time, without interleaving with other memory accesses. More...
 
virtual Tick recvAtomic (PacketPtr pkt)=0
 Receive an atomic request packet from the peer. More...
 
virtual Tick recvAtomicBackdoor (PacketPtr pkt, MemBackdoorPtr &backdoor)=0
 Receive an atomic request packet from the peer, and optionally provide a backdoor to the data being accessed. More...
 

Friends

class AtomicRequestProtocol
 

Detailed Description

Definition at line 89 of file atomic.hh.

Member Function Documentation

◆ recvAtomic()

virtual Tick gem5::AtomicResponseProtocol::recvAtomic ( PacketPtr  pkt)
protectedpure virtual

Receive an atomic request packet from the peer.

Implemented in gem5::ruby::GPUCoalescer::GMTokenPort, gem5::SimpleTimingPort, gem5::ThreadBridge::IncomingPort, gem5::SysBridge::SysBridgeSourcePort, gem5::memory::SimpleMemory::MemoryPort, gem5::NoncoherentXBar::NoncoherentXBarResponsePort, gem5::MemDelay::ResponsePort, gem5::memory::MemCtrl::MemoryPort, gem5::CoherentXBar::CoherentXBarResponsePort, gem5::memory::CfiMemory::MemoryPort, gem5::BaseCache::CpuSidePort, gem5::AddrMapper::MapperResponsePort, gem5::SimpleMemobj::CPUSidePort, gem5::SimpleCache::CPUSidePort, gem5::PioPort< Device >, gem5::PioPort< gem5::PioDevice >, gem5::PioPort< gem5::X86ISA::Interrupts >, gem5::OutgoingRequestBridge::OutgoingRequestPort, gem5::SerialLink::SerialLinkResponsePort, gem5::ruby::RubyPort::PioResponsePort, gem5::ruby::RubyPort::MemResponsePort, gem5::memory::qos::MemSinkCtrl::MemoryPort, gem5::MemCheckerMonitor::MonitorResponsePort, gem5::memory::DRAMsim3::MemoryPort, gem5::memory::DRAMSim2::MemoryPort, gem5::CommMonitor::MonitorResponsePort, gem5::Bridge::BridgeResponsePort, gem5::LdsState::CuSidePort, gem5::X86ISA::IntResponsePort< Device >, gem5::X86ISA::IntResponsePort< gem5::X86ISA::Interrupts >, gem5::SMMUATSDevicePort, gem5::SMMUControlPort, gem5::SMMUDevicePort, gem5::VegaTLBCoalescer::CpuSidePort, gem5::VegaISA::GpuTLB::CpuSidePort, gem5::TLBCoalescer::CpuSidePort, gem5::X86ISA::GpuTLB::CpuSidePort, gem5::StubSlavePort, and sc_gem5::Gem5ToTlmBridge< BITWIDTH >::BridgeResponsePort.

Referenced by gem5::ResponsePort::recvAtomicBackdoor(), and gem5::AtomicRequestProtocol::send().

◆ recvAtomicBackdoor()

virtual Tick gem5::AtomicResponseProtocol::recvAtomicBackdoor ( PacketPtr  pkt,
MemBackdoorPtr backdoor 
)
protectedpure virtual

◆ sendSnoop()

Tick gem5::AtomicResponseProtocol::sendSnoop ( AtomicRequestProtocol peer,
PacketPtr  pkt 
)
protected

Send an atomic snoop 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.
pktSnoop packet to send.
Returns
Estimated latency of access.

Definition at line 68 of file atomic.cc.

References gem5::Packet::isRequest(), and gem5::AtomicRequestProtocol::recvAtomicSnoop().

Referenced by gem5::ResponsePort::sendAtomicSnoop().

Friends And Related Function Documentation

◆ AtomicRequestProtocol

friend class AtomicRequestProtocol
friend

Definition at line 91 of file atomic.hh.


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

Generated on Wed Dec 21 2022 10:23:28 for gem5 by doxygen 1.9.1