43 #ifndef __CPU_SIMPLE_ATOMIC_HH__
44 #define __CPU_SIMPLE_ATOMIC_HH__
49 #include "params/AtomicSimpleCPU.hh"
134 panic(
"Atomic CPU doesn't expect recvTimingResp!\n");
140 panic(
"Atomic CPU doesn't expect recvRetry!\n");
223 #endif // __CPU_SIMPLE_ATOMIC_HH__
A MasterPort is a specialisation of a BaseMasterPort, which implements the default protocol for the t...
virtual void recvFunctionalSnoop(PacketPtr pkt)
Receive a functional snoop request packet from the slave port.
Fault readMem(Addr addr, uint8_t *data, unsigned size, Request::Flags flags) override
Fault initiateMemRead(Addr addr, unsigned size, Request::Flags flags) override
DrainState
Object drain/handover states.
Declaration of a request, the overall memory request consisting of the parts of the request that are ...
void recvReqRetry()
Called by the slave port if sendTimingReq was called on this master port (causing recvTimingReq to be...
An AtomicCPUPort overrides the default behaviour of the recvAtomicSnoop and ignores the packet instea...
void drainResume() override
bool isDrained()
Check if a system is in a drained state.
const char * description() const
Return a C string describing the event.
bool recvTimingResp(PacketPtr pkt)
Receive a timing response from the slave port.
AtomicCPUDPort(const std::string &_name, BaseSimpleCPU *_cpu)
const bool simulate_inst_stalls
TickEvent(AtomicSimpleCPU *c)
uint64_t Tick
Tick count type.
void printAddr(Addr a)
Print state of address in memory system via PrintReq (for debugging).
void takeOverFrom(BaseCPU *oldCPU) override
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
virtual ~AtomicSimpleCPU()
ProbePointArg< std::pair< SimpleThread *, const StaticInstPtr > > * ppCommit
Probe Points.
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
DrainState drain() override
void activateContext(ThreadID thread_num) override
void switchOut() override
bool isSnooping() const
Determine if this master port is snooping or not.
int16_t ThreadID
Thread index/ID type.
void threadSnoop(PacketPtr pkt, ThreadID sender)
Perform snoop for other cpu-local thread contexts.
ProbePointArg generates a point for the class of Arg.
Fault writeMem(uint8_t *data, unsigned size, Addr addr, Request::Flags flags, uint64_t *res) override
AtomicSimpleCPU(AtomicSimpleCPUParams *params)
std::vector< SimpleExecContext * > threadInfo
const bool simulate_data_stalls
bool tryCompleteDrain()
Try to complete a drain request.
AtomicCPUPort(const std::string &_name, BaseSimpleCPU *_cpu)
MasterPort & getInstPort() override
Return a reference to the instruction port.
void verifyMemoryMode() const override
void regProbePoints() override
MasterPort & getDataPort() override
Return a reference to the data port.
AtomicCPUDPort dcachePort
std::shared_ptr< FaultBase > Fault
void suspendContext(ThreadID thread_num) override
virtual Tick recvAtomicSnoop(PacketPtr pkt)
Receive an atomic snoop request packet from the slave port.