gem5
v20.0.0.2
|
#include <timing.hh>
Protected Member Functions | |
bool | sendResp (TimingRequestProtocol *peer, PacketPtr pkt) |
Attempt to send a timing response to the peer by calling its corresponding receive function. More... | |
void | sendSnoopReq (TimingRequestProtocol *peer, PacketPtr pkt) |
Attempt to send a timing snoop request packet to the peer by calling its corresponding receive function. More... | |
void | sendRetryReq (TimingRequestProtocol *peer) |
Send a retry to the peer that previously attempted a sendTimingReq to this protocol and failed. More... | |
void | sendRetrySnoopResp (TimingRequestProtocol *peer) |
Send a retry to the peer that previously attempted a sendTimingSnoopResp to this peer and failed. More... | |
virtual bool | recvTimingReq (PacketPtr pkt)=0 |
Receive a timing request from the peer. More... | |
virtual bool | tryTiming (PacketPtr pkt)=0 |
Availability request from the peer. More... | |
virtual bool | recvTimingSnoopResp (PacketPtr pkt)=0 |
Receive a timing snoop response from the peer. More... | |
virtual void | recvRespRetry ()=0 |
Called by the peer if sendTimingResp was called on this protocol (causing recvTimingResp to be called on the peer) and was unsuccessful. More... | |
Friends | |
class | TimingRequestProtocol |
|
protectedpure virtual |
Called by the peer if sendTimingResp was called on this protocol (causing recvTimingResp to be called on the peer) and was unsuccessful.
Implemented in X86ISA::GpuTLB::CpuSidePort, CommMonitor::MonitorSlavePort, Bridge::BridgeSlavePort, AddrMapper::MapperSlavePort, SerialLink::SerialLinkSlavePort, MemCheckerMonitor::MonitorSlavePort, LdsState::CuSidePort, TLBCoalescer::CpuSidePort, SimpleCache::CPUSidePort, sc_gem5::Gem5ToTlmBridge< BITWIDTH >::BridgeSlavePort, SimpleMemobj::CPUSidePort, TokenSlavePort, SimpleMemory::MemoryPort, DRAMSim2::MemoryPort, StubSlavePort, and QueuedSlavePort.
Referenced by TimingRequestProtocol::sendRetryResp().
|
protectedpure virtual |
Receive a timing request from the peer.
Implemented in BaseCache::CpuSidePort, X86ISA::GpuTLB::CpuSidePort, CommMonitor::MonitorSlavePort, Bridge::BridgeSlavePort, SerialLink::SerialLinkSlavePort, AddrMapper::MapperSlavePort, MemCheckerMonitor::MonitorSlavePort, TLBCoalescer::CpuSidePort, LdsState::CuSidePort, GPUCoalescer::GMTokenPort, SMMUATSSlavePort, RubyPort::PioSlavePort, SimpleCache::CPUSidePort, SimpleMemobj::CPUSidePort, sc_gem5::Gem5ToTlmBridge< BITWIDTH >::BridgeSlavePort, DRAMCtrl::MemoryPort, CoherentXBar::CoherentXBarSlavePort, MemDelay::SlavePort, QoS::MemSinkCtrl::MemoryPort, NoncoherentXBar::NoncoherentXBarSlavePort, SimpleMemory::MemoryPort, RubyPort::MemSlavePort, SMMUSlavePort, DRAMSim2::MemoryPort, SimpleTimingPort, and StubSlavePort.
Referenced by TimingRequestProtocol::sendReq().
|
protectedpure virtual |
Receive a timing snoop response from the peer.
Implemented in SlavePort, BaseCache::CpuSidePort, CommMonitor::MonitorSlavePort, AddrMapper::MapperSlavePort, MemCheckerMonitor::MonitorSlavePort, sc_gem5::Gem5ToTlmBridge< BITWIDTH >::BridgeSlavePort, CoherentXBar::CoherentXBarSlavePort, MemDelay::SlavePort, and StubSlavePort.
Referenced by TimingRequestProtocol::sendSnoopResp().
|
protected |
Attempt to send a timing response to the peer by calling its corresponding receive function.
If the send does not succeed, as indicated by the return value, then the sender must wait for a recvRespRetry at which point it can re-issue a sendTimingResp.
peer | Peer to send the packet to. |
pkt | Packet to send. |
Definition at line 77 of file timing.cc.
References Packet::isResponse(), and TimingRequestProtocol::recvTimingResp().
Referenced by SlavePort::sendTimingResp().
|
protected |
Send a retry to the peer that previously attempted a sendTimingReq to this protocol and failed.
Definition at line 92 of file timing.cc.
References TimingRequestProtocol::recvReqRetry().
Referenced by SlavePort::sendRetryReq().
|
protected |
Send a retry to the peer that previously attempted a sendTimingSnoopResp to this peer and failed.
Definition at line 98 of file timing.cc.
References TimingRequestProtocol::recvRetrySnoopResp().
Referenced by SlavePort::sendRetrySnoopResp().
|
protected |
Attempt to send a timing snoop request packet to the peer by calling its corresponding receive function.
Snoop requests always succeed and hence no return value is needed.
peer | Peer to send the packet to. |
pkt | Packet to send. |
Definition at line 84 of file timing.cc.
References Packet::isRequest(), and TimingRequestProtocol::recvTimingSnoopReq().
Referenced by SlavePort::sendTimingSnoopReq().
|
protectedpure virtual |
Availability request from the peer.
Implemented in SlavePort, BaseCache::CpuSidePort, CommMonitor::MonitorSlavePort, sc_gem5::Gem5ToTlmBridge< BITWIDTH >::BridgeSlavePort, and MemDelay::SlavePort.
Referenced by TimingRequestProtocol::trySend().
|
friend |