|
gem5
|
FU completion event class. More...
#include <inst_queue.hh>
Public Member Functions | |
| FUCompletion (DynInstPtr &_inst, int fu_idx, InstructionQueue< Impl > *iq_ptr) | |
| Construct a FU completion event. More... | |
| virtual void | process () |
| virtual const char * | description () const |
| Return a C string describing the event. More... | |
| void | setFreeFU () |
Public Member Functions inherited from Event | |
| Event (Priority p=Default_Pri, Flags f=0) | |
| virtual | ~Event () |
| virtual const std::string | name () const |
| void | dump () const |
| Dump the current event data. More... | |
| bool | scheduled () const |
| Determine if the current event is scheduled. More... | |
| void | squash () |
| Squash the current event. More... | |
| bool | squashed () const |
| Check whether the event is squashed. More... | |
| bool | isExitEvent () const |
| See if this is a SimExitEvent (without resorting to RTTI) More... | |
| bool | isManaged () const |
| Check whether this event will auto-delete. More... | |
| bool | isAutoDelete () const |
| Tick | when () const |
| Get the time that the event is scheduled. More... | |
| Priority | priority () const |
| Get the event priority. More... | |
| virtual BaseGlobalEvent * | globalEvent () |
| If this is part of a GlobalEvent, return the pointer to the Global Event. 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 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 Attributes | |
| DynInstPtr | inst |
| Executing instruction. More... | |
| int | fuIdx |
| Index of the FU used for executing. More... | |
| InstructionQueue< Impl > * | iqPtr |
| Pointer back to the instruction queue. More... | |
| bool | freeFU |
| Should the FU be added to the list to be freed upon completing this event. More... | |
Additional Inherited Members | |
Public Types inherited from EventBase | |
| typedef int8_t | Priority |
Static Public Member Functions inherited from Serializable | |
| static const std::string & | currentSection () |
| Get the fully-qualified name of the active section. More... | |
| static void | serializeAll (const std::string &cpt_dir) |
| static void | unserializeGlobals (CheckpointIn &cp) |
Static Public Attributes inherited from EventBase | |
| static const Priority | Minimum_Pri = SCHAR_MIN |
| Event priorities, to provide tie-breakers for events scheduled at the same cycle. More... | |
| static const Priority | Debug_Enable_Pri = -101 |
| If we enable tracing on a particular cycle, do that as the very first thing so we don't miss any of the events on that cycle (even if we enter the debugger). More... | |
| static const Priority | Debug_Break_Pri = -100 |
| Breakpoints should happen before anything else (except enabling trace output), so we don't miss any action when debugging. More... | |
| static const Priority | CPU_Switch_Pri = -31 |
| CPU switches schedule the new CPU's tick event for the same cycle (after unscheduling the old CPU's tick event). More... | |
| static const Priority | Delayed_Writeback_Pri = -1 |
| For some reason "delayed" inter-cluster writebacks are scheduled before regular writebacks (which have default priority). More... | |
| static const Priority | Default_Pri = 0 |
| Default is zero for historical reasons. More... | |
| static const Priority | DVFS_Update_Pri = 31 |
| DVFS update event leads to stats dump therefore given a lower priority to ensure all relevant states have been updated. More... | |
| static const Priority | Serialize_Pri = 32 |
| Serailization needs to occur before tick events also, so that a serialize/unserialize is identical to an on-line CPU switch. More... | |
| static const Priority | CPU_Tick_Pri = 50 |
| CPU ticks must come after other associated CPU events (such as writebacks). More... | |
| static const Priority | Stat_Event_Pri = 90 |
| Statistics events (dump, reset, etc.) come after everything else, but before exit. More... | |
| static const Priority | Progress_Event_Pri = 95 |
| Progress events come at the end. More... | |
| static const Priority | Sim_Exit_Pri = 100 |
| If we want to exit on this cycle, it's the very last thing we do. More... | |
| static const Priority | Maximum_Pri = SCHAR_MAX |
| Maximum priority. More... | |
Static Public Attributes inherited from Serializable | |
| static int | ckptCount = 0 |
| static int | ckptMaxCount = 0 |
| static int | ckptPrevCount = -1 |
Protected Types inherited from EventBase | |
| typedef unsigned short | FlagsType |
| typedef ::Flags< FlagsType > | Flags |
Protected Member Functions inherited from Event | |
| Flags | getFlags () const |
| Accessor for flags. More... | |
| bool | isFlagSet (Flags _flags) const |
| void | setFlags (Flags _flags) |
| Accessor for flags. More... | |
| void | clearFlags (Flags _flags) |
| void | clearFlags () |
| virtual void | trace (const char *action) |
| trace event activity More... | |
| void | acquire () |
| Memory management hooks for events that have the Managed flag set. More... | |
| void | release () |
| Managed event removed from the event queue. More... | |
| virtual void | acquireImpl () |
| virtual void | releaseImpl () |
Static Protected Attributes inherited from EventBase | |
| static const FlagsType | PublicRead = 0x003f |
| static const FlagsType | PublicWrite = 0x001d |
| static const FlagsType | Squashed = 0x0001 |
| static const FlagsType | Scheduled = 0x0002 |
| static const FlagsType | Managed = 0x0004 |
| static const FlagsType | AutoDelete = Managed |
| static const FlagsType | Reserved0 = 0x0008 |
| This used to be AutoSerialize. More... | |
| static const FlagsType | IsExitEvent = 0x0010 |
| static const FlagsType | IsMainQueue = 0x0020 |
| static const FlagsType | Initialized = 0x7a40 |
| static const FlagsType | InitMask = 0xffc0 |
FU completion event class.
Definition at line 98 of file inst_queue.hh.
| InstructionQueue< Impl >::FUCompletion::FUCompletion | ( | DynInstPtr & | _inst, |
| int | fu_idx, | ||
| InstructionQueue< Impl > * | iq_ptr | ||
| ) |
Construct a FU completion event.
Definition at line 63 of file inst_queue_impl.hh.
|
virtual |
Return a C string describing the event.
This string should not be dynamically allocated; just a const char array describing the event class.
Reimplemented from Event.
Definition at line 81 of file inst_queue_impl.hh.
|
virtual |
Implements Event.
Definition at line 72 of file inst_queue_impl.hh.
|
inline |
Definition at line 121 of file inst_queue.hh.
References InstructionQueue< Impl >::FUCompletion::freeFU.
Referenced by InstructionQueue< Impl >::scheduleReadyInsts().
|
private |
Should the FU be added to the list to be freed upon completing this event.
Definition at line 112 of file inst_queue.hh.
Referenced by InstructionQueue< Impl >::FUCompletion::setFreeFU().
|
private |
Index of the FU used for executing.
Definition at line 104 of file inst_queue.hh.
|
private |
Executing instruction.
Definition at line 101 of file inst_queue.hh.
|
private |
Pointer back to the instruction queue.
Definition at line 107 of file inst_queue.hh.