gem5
v20.1.0.0
|
Public Member Functions | |
CopyEngineChannel (CopyEngine *_ce, int cid) | |
virtual | ~CopyEngineChannel () |
Port & | getPort () |
std::string | name () |
virtual Tick | read (PacketPtr pkt) |
virtual Tick | write (PacketPtr pkt) |
void | channelRead (PacketPtr pkt, Addr daddr, int size) |
void | channelWrite (PacketPtr pkt, Addr daddr, int size) |
DrainState | drain () override |
Draining is the process of clearing out the states of SimObjects.These are the SimObjects that are partially executed or are partially in flight. More... | |
void | drainResume () override |
Resume execution after a successful drain. More... | |
void | serialize (CheckpointOut &cp) const override |
Serialize an object. More... | |
void | unserialize (CheckpointIn &cp) override |
Unserialize an object. More... | |
Public Member Functions inherited from Drainable | |
DrainState | drainState () const |
Return the current drain state of an object. More... | |
virtual void | notifyFork () |
Notify a child process of a fork. More... | |
Public Member Functions inherited from Serializable | |
Serializable () | |
virtual | ~Serializable () |
void | serializeSection (CheckpointOut &cp, const char *name) const |
Serialize an object into a new section. More... | |
void | serializeSection (CheckpointOut &cp, const std::string &name) const |
void | unserializeSection (CheckpointIn &cp, const char *name) |
Unserialize an a child object. More... | |
void | unserializeSection (CheckpointIn &cp, const std::string &name) |
Private Types | |
enum | ChannelState { Idle, AddressFetch, DescriptorFetch, DMARead, DMAWrite, CompletionWrite } |
Private Member Functions | |
void | fetchDescriptor (Addr address) |
void | fetchDescComplete () |
void | fetchNextAddr (Addr address) |
void | fetchAddrComplete () |
void | readCopyBytes () |
void | readCopyBytesComplete () |
void | writeCopyBytes () |
void | writeCopyBytesComplete () |
void | writeCompletionStatus () |
void | writeStatusComplete () |
void | continueProcessing () |
void | recvCommand () |
bool | inDrain () |
void | restartStateMachine () |
Additional Inherited Members | |
Static Public Member Functions inherited from Serializable | |
static const std::string & | currentSection () |
Gets the fully-qualified name of the active section. More... | |
static void | serializeAll (const std::string &cpt_dir) |
Serializes all the SimObjects. More... | |
static void | unserializeGlobals (CheckpointIn &cp) |
Protected Member Functions inherited from Drainable | |
Drainable () | |
virtual | ~Drainable () |
void | signalDrainDone () const |
Signal that an object is drained. More... | |
Definition at line 60 of file copy_engine.hh.
|
private |
Enumerator | |
---|---|
Idle | |
AddressFetch | |
DescriptorFetch | |
DMARead | |
DMAWrite | |
CompletionWrite |
Definition at line 81 of file copy_engine.hh.
CopyEngine::CopyEngineChannel::CopyEngineChannel | ( | CopyEngine * | _ce, |
int | cid | ||
) |
Definition at line 78 of file copy_engine.cc.
References fetchDescComplete().
|
virtual |
Definition at line 107 of file copy_engine.cc.
Definition at line 239 of file copy_engine.cc.
References bits(), CopyEngineReg::CHAN_CHAINADDR, CopyEngineReg::CHAN_CHAINADDR_HIGH, CopyEngineReg::CHAN_CMPLNADDR, CopyEngineReg::CHAN_CMPLNADDR_HIGH, CopyEngineReg::CHAN_COMMAND, CopyEngineReg::CHAN_CONTROL, CopyEngineReg::CHAN_ERROR, CopyEngineReg::CHAN_STATUS, panic, and Packet::setLE().
Definition at line 367 of file copy_engine.cc.
References CopyEngineReg::CHAN_CHAINADDR, CopyEngineReg::CHAN_CHAINADDR_HIGH, CopyEngineReg::CHAN_CMPLNADDR, CopyEngineReg::CHAN_CMPLNADDR_HIGH, CopyEngineReg::CHAN_COMMAND, CopyEngineReg::CHAN_CONTROL, CopyEngineReg::CHAN_ERROR, CopyEngineReg::CHAN_STATUS, DPRINTF, Packet::getLE(), ArmISA::mask, and panic.
|
private |
Definition at line 548 of file copy_engine.cc.
|
overridevirtual |
Draining is the process of clearing out the states of SimObjects.These are the SimObjects that are partially executed or are partially in flight.
Draining is mostly used before forking and creating a check point.
This function notifies an object that it needs to drain its state.
If the object does not need further simulation to drain internal buffers, it returns DrainState::Drained and automatically switches to the Drained state. If the object needs more simulation, it returns DrainState::Draining and automatically enters the Draining state. Other return values are invalid.
Implements Drainable.
Definition at line 637 of file copy_engine.cc.
References MipsISA::ce, DPRINTF, Drained, Draining, and Running.
|
overridevirtual |
Resume execution after a successful drain.
Reimplemented from Drainable.
Definition at line 728 of file copy_engine.cc.
References DPRINTF.
|
private |
Definition at line 608 of file copy_engine.cc.
References DPRINTF.
|
private |
Definition at line 466 of file copy_engine.cc.
References CopyEngineReg::DESC_CTRL_CP_STS, CopyEngineReg::DESC_CTRL_NULL, DPRINTF, and panic.
Referenced by CopyEngineChannel().
|
private |
Definition at line 449 of file copy_engine.cc.
References MipsISA::ce, DPRINTF, and MemCmd::ReadReq.
|
private |
Definition at line 597 of file copy_engine.cc.
References MipsISA::ce, DPRINTF, and MemCmd::ReadReq.
Port & CopyEngine::CopyEngineChannel::getPort | ( | ) |
Definition at line 130 of file copy_engine.cc.
|
private |
Definition at line 626 of file copy_engine.cc.
References MipsISA::ce, DPRINTF, Draining, Drainable::drainState(), Running, and Drainable::signalDrainDone().
|
inline |
Definition at line 97 of file copy_engine.hh.
References ce, channelId, csprintf(), and SimObject::name().
Definition at line 98 of file copy_engine.hh.
References panic.
|
private |
Definition at line 495 of file copy_engine.cc.
References MipsISA::ce, DPRINTF, and MemCmd::ReadReq.
|
private |
Definition at line 505 of file copy_engine.cc.
References DPRINTF.
|
private |
Definition at line 136 of file copy_engine.cc.
References MipsISA::ce, panic, and Running.
|
private |
Definition at line 702 of file copy_engine.cc.
References panic.
|
overridevirtual |
Serialize an object.
Output an object's state into the current checkpoint section.
cp | Checkpoint state |
Implements Serializable.
Definition at line 666 of file copy_engine.cc.
References arrayParamOut(), MipsISA::ce, SERIALIZE_ARRAY, and SERIALIZE_SCALAR.
|
overridevirtual |
Unserialize an object.
Read an object's state from the current checkpoint section.
cp | Checkpoint state |
Implements Serializable.
Definition at line 683 of file copy_engine.cc.
References arrayParamIn(), MipsISA::ce, UNSERIALIZE_ARRAY, and UNSERIALIZE_SCALAR.
Definition at line 100 of file copy_engine.hh.
References panic.
|
private |
Definition at line 577 of file copy_engine.cc.
References MipsISA::ce, DPRINTF, and MemCmd::WriteReq.
|
private |
Definition at line 515 of file copy_engine.cc.
References MipsISA::ce, DPRINTF, and MemCmd::WriteReq.
|
private |
Definition at line 529 of file copy_engine.cc.
References CopyEngineReg::DESC_CTRL_CP_STS, and DPRINTF.
|
private |
Definition at line 590 of file copy_engine.cc.
References DPRINTF.
|
private |
Definition at line 119 of file copy_engine.hh.
|
private |
Definition at line 70 of file copy_engine.hh.
|
private |
Definition at line 64 of file copy_engine.hh.
Referenced by name().
|
private |
Definition at line 63 of file copy_engine.hh.
|
private |
Definition at line 66 of file copy_engine.hh.
Referenced by name().
|
private |
Definition at line 79 of file copy_engine.hh.
|
private |
Definition at line 68 of file copy_engine.hh.
|
private |
Definition at line 65 of file copy_engine.hh.
|
private |
Definition at line 67 of file copy_engine.hh.
|
private |
Definition at line 74 of file copy_engine.hh.
|
private |
Definition at line 115 of file copy_engine.hh.
|
private |
Definition at line 73 of file copy_engine.hh.
|
private |
Definition at line 77 of file copy_engine.hh.
|
private |
Definition at line 76 of file copy_engine.hh.
|
private |
Definition at line 90 of file copy_engine.hh.
|
private |
Definition at line 123 of file copy_engine.hh.
|
private |
Definition at line 72 of file copy_engine.hh.
|
private |
Definition at line 131 of file copy_engine.hh.
|
private |
Definition at line 71 of file copy_engine.hh.
|
private |
Definition at line 127 of file copy_engine.hh.