40 #ifndef __SIM_POWER_POWER_MODEL_HH__
41 #define __SIM_POWER_POWER_MODEL_HH__
44 #include "params/PowerModel.hh"
45 #include "params/PowerModelState.hh"
59 typedef PowerModelStateParams
Params;
91 .
desc(
"Dynamic power for this object (Watts)")
97 .
desc(
"Static power for this object (Watts)")
140 .
desc(
"Dynamic power for this power state")
146 .
desc(
"Static power for this power state")
162 const std::string &
name)
double getDynamicPower() const
Get the dynamic power consumption.
Derived & method(T *obj, V(T::*method)() const)
Extended functor that calls the specified method of the provided object.
void setClockedObject(ClockedObject *clkobj)
void regStats()
Register statistics for this object.
const Params * params() const
ThermalProbeListener(PowerModel &_pm, ProbeManager *pm, const std::string &name)
ProbeManager is a conduit class that lives on each SimObject, and is used to match up probe listeners...
Listener class to catch thermal events.
double getStaticPower() const
Get the static power consumption.
Declaration of Statistics objects.
void regStats()
Register statistics for this object.
virtual double getStaticPower() const =0
Get the static power consumption.
std::vector< PowerModelState * > states_pm
Actual power models (one per power state)
double _temp
Current temperature.
PowerModelStateParams Params
ProbeListenerArgBase is used to define the base interface to a ProbeListenerArg (i.e the notify method on specific type).
A PowerModel is a class containing a power model for a SimObject.
The ClockedObject class extends the SimObject with a clock and accessor functions to relate ticks to ...
Stats::Value dynamicPower
virtual void regProbePoints()
Register probe points for this object.
SubSystem * subsystem
The subsystem this power model belongs to.
ClockedObject * clocked_object
The clocked object we belong to.
Stats::Value dynamicPower
virtual void setTemperature(double temp)
Temperature update.
ClockedObject * clocked_object
The clocked object we belong to.
PowerModelState(const Params *p)
Derived & name(const std::string &name)
Set the name and marks this stat to print at the end of simulation.
virtual const std::string name() const
A PowerModelState is an abstract class used as interface to get power figures out of SimObjects...
PowerModel(const Params *p)
void thermalUpdateCallback(const double &temp)
void setClockedObject(ClockedObject *clkobj)
Derived & desc(const std::string &_desc)
Set the description and marks this stat to print at the end of simulation.
The SubSystem simobject does nothing, it is just a container for other simobjects used by the configu...
std::unique_ptr< ThermalProbeListener > thermalListener
Listener to catch temperature changes in the SubSystem.
Abstract superclass for simulation objects.
void notify(const double &temp)
virtual double getDynamicPower() const =0
Get the dynamic power consumption.