gem5  v20.1.0.0
Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
Ticked Class Referenceabstract

Ticked attaches gem5's event queue/scheduler to evaluate calls and provides a start/stop interface to ticking. More...

#include <ticked_object.hh>

Inheritance diagram for Ticked:
Serializable Minor::Pipeline TickedObject

Public Member Functions

 Ticked (ClockedObject &object_, Stats::Scalar *imported_num_cycles=NULL, Event::Priority priority=Event::CPU_Tick_Pri)
 
virtual ~Ticked ()
 
void regStats ()
 Register {num,ticks}Cycles if necessary. More...
 
void start ()
 Start ticking. More...
 
Cycles cyclesSinceLastStopped () const
 How long have we been stopped for? More...
 
void resetLastStopped ()
 Reset stopped time to current time. More...
 
void stop ()
 Cancel the next tick event and issue no more. More...
 
void serialize (CheckpointOut &cp) const override
 Checkpoint lastStopped. More...
 
void unserialize (CheckpointIn &cp) override
 Unserialize an object. More...
 
virtual void evaluate ()=0
 Action to call on the clock tick. More...
 
virtual void countCycles (Cycles delta)
 Callback to handle cycle statistics and probes. 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)
 

Protected Member Functions

void processClockEvent ()
 Evaluate and reschedule. More...
 

Protected Attributes

ClockedObjectobject
 ClockedObject who is responsible for this Ticked's actions/stats. More...
 
EventFunctionWrapper event
 The wrapper for processClockEvent. More...
 
bool running
 Have I been started? and am not stopped. More...
 
Cycles lastStopped
 Time of last stop event to calculate run time. More...
 
Stats::ScalarnumCycles
 Total number of cycles either ticked or spend stopped. More...
 
Stats::Scalar tickCycles
 Number of cycles ticked. More...
 
Stats::Formula idleCycles
 Number of cycles stopped. More...
 

Private Attributes

Stats::ScalarnumCyclesLocal
 Locally allocated stats. More...
 

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)
 

Detailed Description

Ticked attaches gem5's event queue/scheduler to evaluate calls and provides a start/stop interface to ticking.

Ticked is not a ClockedObject but can be attached to one by inheritance and by calling regStats, serialize/unserialize

Definition at line 58 of file ticked_object.hh.

Constructor & Destructor Documentation

◆ Ticked()

Ticked::Ticked ( ClockedObject object_,
Stats::Scalar imported_num_cycles = NULL,
Event::Priority  priority = Event::CPU_Tick_Pri 
)

Definition at line 43 of file ticked_object.cc.

References processClockEvent().

◆ ~Ticked()

virtual Ticked::~Ticked ( )
inlinevirtual

Definition at line 95 of file ticked_object.hh.

Member Function Documentation

◆ countCycles()

virtual void Ticked::countCycles ( Cycles  delta)
inlinevirtual

Callback to handle cycle statistics and probes.

This callback is called at the beginning of a new cycle active cycle and when restarting the ticked object. The delta parameter indicates the number of cycles elapsed since the previous call is normally '1' unless the object has been stopped and restarted.

Parameters
deltaNumber of cycles since the previous call.

Definition at line 158 of file ticked_object.hh.

Referenced by processClockEvent(), and start().

◆ cyclesSinceLastStopped()

Cycles Ticked::cyclesSinceLastStopped ( ) const
inline

How long have we been stopped for?

Definition at line 116 of file ticked_object.hh.

References lastStopped.

Referenced by start().

◆ evaluate()

virtual void Ticked::evaluate ( )
pure virtual

Action to call on the clock tick.

Implemented in Minor::Pipeline.

Referenced by processClockEvent().

◆ processClockEvent()

void Ticked::processClockEvent ( )
protected

Evaluate and reschedule.

Definition at line 57 of file ticked_object.cc.

References countCycles(), evaluate(), event, numCycles, running, and tickCycles.

Referenced by Ticked().

◆ regStats()

void Ticked::regStats ( )

Register {num,ticks}Cycles if necessary.

If numCycles is imported, be sure to register it before calling this regStats

Definition at line 67 of file ticked_object.cc.

References Stats::DataWrap< Derived, InfoProxyType >::desc(), idleCycles, name(), Stats::DataWrap< Derived, InfoProxyType >::name(), numCycles, numCyclesLocal, and tickCycles.

Referenced by TickedObject::regStats().

◆ resetLastStopped()

void Ticked::resetLastStopped ( )
inline

Reset stopped time to current time.

Definition at line 123 of file ticked_object.hh.

References lastStopped.

Referenced by stop().

◆ serialize()

void Ticked::serialize ( CheckpointOut cp) const
overridevirtual

Checkpoint lastStopped.

Implements Serializable.

Reimplemented in TickedObject.

Definition at line 86 of file ticked_object.cc.

References lastStopped, and paramOut().

Referenced by TickedObject::serialize().

◆ start()

void Ticked::start ( )
inline

Start ticking.

Definition at line 103 of file ticked_object.hh.

References countCycles(), cyclesSinceLastStopped(), event, numCycles, running, and Event::scheduled().

◆ stop()

void Ticked::stop ( )
inline

Cancel the next tick event and issue no more.

Definition at line 130 of file ticked_object.hh.

References event, resetLastStopped(), running, and Event::scheduled().

Referenced by Minor::Pipeline::evaluate().

◆ unserialize()

void Ticked::unserialize ( CheckpointIn cp)
overridevirtual

Unserialize an object.

Read an object's state from the current checkpoint section.

Parameters
cpCheckpoint state

Implements Serializable.

Reimplemented in TickedObject.

Definition at line 94 of file ticked_object.cc.

References lastStopped, and optParamIn().

Referenced by TickedObject::unserialize().

Member Data Documentation

◆ event

EventFunctionWrapper Ticked::event
protected

The wrapper for processClockEvent.

Definition at line 65 of file ticked_object.hh.

Referenced by processClockEvent(), start(), and stop().

◆ idleCycles

Stats::Formula Ticked::idleCycles
protected

Number of cycles stopped.

Definition at line 88 of file ticked_object.hh.

Referenced by regStats().

◆ lastStopped

Cycles Ticked::lastStopped
protected

Time of last stop event to calculate run time.

Definition at line 74 of file ticked_object.hh.

Referenced by cyclesSinceLastStopped(), resetLastStopped(), serialize(), and unserialize().

◆ numCycles

Stats::Scalar& Ticked::numCycles
protected

Total number of cycles either ticked or spend stopped.

Definition at line 82 of file ticked_object.hh.

Referenced by processClockEvent(), regStats(), and start().

◆ numCyclesLocal

Stats::Scalar* Ticked::numCyclesLocal
private

Locally allocated stats.

Definition at line 78 of file ticked_object.hh.

Referenced by regStats().

◆ object

ClockedObject& Ticked::object
protected

ClockedObject who is responsible for this Ticked's actions/stats.

Definition at line 62 of file ticked_object.hh.

◆ running

bool Ticked::running
protected

Have I been started? and am not stopped.

Definition at line 71 of file ticked_object.hh.

Referenced by processClockEvent(), start(), and stop().

◆ tickCycles

Stats::Scalar Ticked::tickCycles
protected

Number of cycles ticked.

Definition at line 85 of file ticked_object.hh.

Referenced by processClockEvent(), and regStats().


The documentation for this class was generated from the following files:

Generated on Wed Sep 30 2020 14:02:33 for gem5 by doxygen 1.8.17