38 #ifndef __SIM_POWER_POWER_MODEL_HH__ 39 #define __SIM_POWER_POWER_MODEL_HH__ 42 #include "enums/PMType.hh" 43 #include "params/PowerModel.hh" 44 #include "params/PowerModelState.hh" 58 typedef PowerModelStateParams
Params;
92 .
desc(
"Dynamic power for this object (Watts)")
98 .
desc(
"Static power for this object (Watts)")
145 .
desc(
"Dynamic power for this power state")
151 .
desc(
"Static power for this power state")
159 void thermalUpdateCallback(
const double & temp);
167 const std::string &
name)
172 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).
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 setTemperature(double temp)
Temperature update.
ClockedObject * clocked_object
The clocked object we belong to.
const Params * params() const
PowerModelState(const Params *p)
virtual void regProbePoints()
Register probe points for this object.
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
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.
virtual void regStats()
Callback to set stat parameters.
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.