40 #ifndef __SIM_POWER_POWER_MODEL_HH__ 41 #define __SIM_POWER_POWER_MODEL_HH__ 44 #include "enums/PMType.hh" 45 #include "params/PowerModel.hh" 46 #include "params/PowerModelState.hh" 60 typedef PowerModelStateParams
Params;
92 .
desc(
"Dynamic power for this object (Watts)")
98 .
desc(
"Static power for this object (Watts)")
143 .
desc(
"Dynamic power for this power state")
149 .
desc(
"Static power for this power state")
157 void thermalUpdateCallback(
const double & temp);
165 const std::string &
name)
170 pm.thermalUpdateCallback(temp);
Derived & method(T *obj, V(T::*method)() const)
Extended functor that calls the specified method of the provided object.
void setClockedObject(ClockedObject *clkobj)
Enums::PMType power_model_type
The type of power model - collects all power, static or dynamic only.
void regStats()
Callback to set stat parameters.
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.
Declaration of Statistics objects.
void regStats()
Callback to set stat parameters.
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.
double getStaticPower() const
Get the static power consumption.
PowerModelStateParams Params
ProbeListenerArgBase is used to define the base interface to a ProbeListenerArg (i.e the notify method on specific type).
const Params * params() const
The ClockedObject class extends the SimObject with a clock and accessor functions to relate ticks to ...
SubSystem * subsystem
The subsystem this power model belongs to.
ClockedObject * clocked_object
The clocked object we belong to.
Stats::Value dynamicPower
virtual void regProbePoints()
Register probe points for this object.
virtual void setTemperature(double temp)
Temperature update.
ClockedObject * clocked_object
The clocked object we belong to.
virtual const std::string name() const
PowerModelState(const Params *p)
Derived & name(const std::string &name)
Set the name and marks this stat to print at the end of simulation.
double getDynamicPower() const
Get the dynamic power consumption.
A PowerModelState is an abstract class used as interface to get power figures out of SimObjects...
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.