Go to the documentation of this file.
44 #include "debug/VoltageDomain.hh"
45 #include "params/VoltageDomain.hh"
52 :
SimObject(
p), voltageOpPoints(
p.voltage), _perfLevel(0), stats(*this)
55 "voltage domain %s\n",
name());
59 std::greater<Voltages::value_type>()),
"DVFS: Voltage operation "\
60 "points not in descending order for voltage domain %s\n",
68 "DVFS: Requested voltage ID %d is outside the known "\
69 "range for domain %s.\n", perf_level,
name());
94 gem5_assert(
d->voltageDomain() ==
this,
"DVFS: Clock domain %s "\
95 "(id: %d) should not be registered with voltage domain "\
96 "%s\n",
d->name(),
d->domainID(),
name());
101 "level %d\n",
d->name(),
d->domainID(), perf);
104 if (perf < perf_max) {
126 warn(
"DVFS: Perf level for voltage domain %s adapted to "\
127 "requested perf levels from source clock domains.\n",
name());
145 : statistics::
Group(&vd),
146 ADD_STAT(voltage, statistics::units::Volt::get(),
"Voltage in Volts")
SrcClockDomain::PerfLevel PerfLevel
#define UNSERIALIZE_SCALAR(scalar)
VoltageDomain(const Params &p)
Derived & method(T *obj, V(T::*method)() const)
Extended functor that calls the specified method of the provided object.
VoltageDomainStats(VoltageDomain &vd)
void startup() override
Startup has all SrcClockDomains registered with this voltage domain, so try to make sure that all per...
SrcClockChildren srcClockChildren
void serialize(CheckpointOut &cp) const override
Serialize an object.
const Voltages voltageOpPoints
List of possible minimum voltage at each of the frequency operational points, should be in descending...
virtual std::string name() const
#define ADD_STAT(n,...)
Convenience macro to add a stat to a statistics group.
bool sanitiseVoltages()
Recomputes the highest (fastest, i.e., numerically lowest) requested performance level of all associa...
The source clock domains provides the notion of a clock domain that is connected to a tunable clock s...
Abstract superclass for simulation objects.
#define SERIALIZE_SCALAR(scalar)
void unserialize(CheckpointIn &cp) override
Unserialize an object.
PerfLevel perfLevel() const
Get the voltage point of the domain.
double voltage() const
Get the current voltage.
statistics::Value voltage
Stat for reporting voltage of the domain.
std::ostream CheckpointOut
A VoltageDomain is used to group clock domains that operate under the same voltage.
#define gem5_assert(cond,...)
The assert macro will function like a normal assert, but will use panic instead of straight abort().
#define fatal_if(cond,...)
Conditional fatal macro that checks the supplied condition and only causes a fatal error if the condi...
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
uint32_t numVoltages() const
Generated on Wed May 4 2022 12:14:03 for gem5 by doxygen 1.8.17