gem5 v24.0.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. | |
void | drainResume () override |
Resume execution after a successful drain. | |
void | serialize (CheckpointOut &cp) const override |
Serialize an object. | |
void | unserialize (CheckpointIn &cp) override |
Unserialize an object. | |
Public Member Functions inherited from gem5::Drainable | |
DrainState | drainState () const |
Return the current drain state of an object. | |
virtual void | notifyFork () |
Notify a child process of a fork. | |
Public Member Functions inherited from gem5::Serializable | |
Serializable () | |
virtual | ~Serializable () |
void | serializeSection (CheckpointOut &cp, const char *name) const |
Serialize an object into a new section. | |
void | serializeSection (CheckpointOut &cp, const std::string &name) const |
void | unserializeSection (CheckpointIn &cp, const char *name) |
Unserialize an a child object. | |
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 gem5::Serializable | |
static const std::string & | currentSection () |
Gets the fully-qualified name of the active section. | |
static void | generateCheckpointOut (const std::string &cpt_dir, std::ofstream &outstream) |
Generate a checkpoint file so that the serialization can be routed to it. | |
Protected Member Functions inherited from gem5::Drainable | |
Drainable () | |
virtual | ~Drainable () |
void | signalDrainDone () const |
Signal that an object is drained. | |
Definition at line 63 of file copy_engine.hh.
|
private |
Enumerator | |
---|---|
Idle | |
AddressFetch | |
DescriptorFetch | |
DMARead | |
DMAWrite | |
CompletionWrite |
Definition at line 84 of file copy_engine.hh.
gem5::CopyEngine::CopyEngineChannel::CopyEngineChannel | ( | CopyEngine * | _ce, |
int | cid ) |
Definition at line 83 of file copy_engine.cc.
References fetchDescComplete().
|
virtual |
Definition at line 112 of file copy_engine.cc.
Definition at line 244 of file copy_engine.cc.
References gem5::bits(), gem5::copy_engine_reg::CHAN_CHAINADDR, gem5::copy_engine_reg::CHAN_CHAINADDR_HIGH, gem5::copy_engine_reg::CHAN_CMPLNADDR, gem5::copy_engine_reg::CHAN_CMPLNADDR_HIGH, gem5::copy_engine_reg::CHAN_COMMAND, gem5::copy_engine_reg::CHAN_CONTROL, gem5::copy_engine_reg::CHAN_ERROR, gem5::copy_engine_reg::CHAN_STATUS, panic, and gem5::Packet::setLE().
Definition at line 372 of file copy_engine.cc.
References gem5::copy_engine_reg::CHAN_CHAINADDR, gem5::copy_engine_reg::CHAN_CHAINADDR_HIGH, gem5::copy_engine_reg::CHAN_CMPLNADDR, gem5::copy_engine_reg::CHAN_CMPLNADDR_HIGH, gem5::copy_engine_reg::CHAN_COMMAND, gem5::copy_engine_reg::CHAN_CONTROL, gem5::copy_engine_reg::CHAN_ERROR, gem5::copy_engine_reg::CHAN_STATUS, DPRINTF, gem5::Packet::getLE(), gem5::ArmISA::mask, and panic.
|
private |
Definition at line 552 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 gem5::Drainable.
Definition at line 641 of file copy_engine.cc.
References gem5::MipsISA::ce, DPRINTF, gem5::Drained, gem5::Draining, and gem5::Running.
|
overridevirtual |
Resume execution after a successful drain.
Reimplemented from gem5::Drainable.
Definition at line 732 of file copy_engine.cc.
References DPRINTF.
|
private |
Definition at line 612 of file copy_engine.cc.
References DPRINTF.
|
private |
Definition at line 470 of file copy_engine.cc.
References gem5::copy_engine_reg::DESC_CTRL_CP_STS, gem5::copy_engine_reg::DESC_CTRL_NULL, DPRINTF, and panic.
Referenced by CopyEngineChannel().
|
private |
Definition at line 453 of file copy_engine.cc.
References gem5::MipsISA::ce, DPRINTF, and gem5::MemCmd::ReadReq.
|
private |
Definition at line 601 of file copy_engine.cc.
References gem5::MipsISA::ce, DPRINTF, and gem5::MemCmd::ReadReq.
Port & gem5::CopyEngine::CopyEngineChannel::getPort | ( | ) |
Definition at line 135 of file copy_engine.cc.
|
private |
Definition at line 630 of file copy_engine.cc.
References gem5::MipsISA::ce, DPRINTF, gem5::Draining, gem5::Drainable::drainState(), gem5::Running, and gem5::Drainable::signalDrainDone().
|
inline |
Definition at line 102 of file copy_engine.hh.
References ce, channelId, gem5::csprintf(), and gem5::Named::name().
Definition at line 108 of file copy_engine.hh.
References panic.
|
private |
Definition at line 499 of file copy_engine.cc.
References gem5::MipsISA::ce, DPRINTF, and gem5::MemCmd::ReadReq.
|
private |
Definition at line 509 of file copy_engine.cc.
References DPRINTF.
|
private |
Definition at line 141 of file copy_engine.cc.
References gem5::MipsISA::ce, panic, and gem5::Running.
|
private |
Definition at line 706 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 gem5::Serializable.
Definition at line 670 of file copy_engine.cc.
References gem5::arrayParamOut(), gem5::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 gem5::Serializable.
Definition at line 687 of file copy_engine.cc.
References gem5::arrayParamIn(), gem5::MipsISA::ce, UNSERIALIZE_ARRAY, and UNSERIALIZE_SCALAR.
Definition at line 110 of file copy_engine.hh.
References panic.
|
private |
Definition at line 581 of file copy_engine.cc.
References gem5::MipsISA::ce, DPRINTF, and gem5::MemCmd::WriteReq.
|
private |
Definition at line 519 of file copy_engine.cc.
References gem5::MipsISA::ce, DPRINTF, and gem5::MemCmd::WriteReq.
|
private |
Definition at line 533 of file copy_engine.cc.
References gem5::copy_engine_reg::DESC_CTRL_CP_STS, and DPRINTF.
|
private |
Definition at line 594 of file copy_engine.cc.
References DPRINTF.
|
private |
Definition at line 129 of file copy_engine.hh.
|
private |
Definition at line 73 of file copy_engine.hh.
|
private |
Definition at line 67 of file copy_engine.hh.
Referenced by name().
|
private |
Definition at line 66 of file copy_engine.hh.
|
private |
Definition at line 69 of file copy_engine.hh.
Referenced by name().
|
private |
Definition at line 82 of file copy_engine.hh.
|
private |
Definition at line 71 of file copy_engine.hh.
|
private |
Definition at line 68 of file copy_engine.hh.
|
private |
Definition at line 70 of file copy_engine.hh.
|
private |
Definition at line 77 of file copy_engine.hh.
|
private |
Definition at line 125 of file copy_engine.hh.
|
private |
Definition at line 76 of file copy_engine.hh.
|
private |
Definition at line 80 of file copy_engine.hh.
|
private |
Definition at line 79 of file copy_engine.hh.
|
private |
Definition at line 94 of file copy_engine.hh.
|
private |
Definition at line 133 of file copy_engine.hh.
|
private |
Definition at line 75 of file copy_engine.hh.
|
private |
Definition at line 141 of file copy_engine.hh.
|
private |
Definition at line 74 of file copy_engine.hh.
|
private |
Definition at line 137 of file copy_engine.hh.