pwr: Enable multiple power models per component

This patch allows the user to specify more than one
power model for any given Clocked Object. This is
useful and some times necessary to properly model
components that have multiple power sources (or
subcomponents) but gem5 doesn't model them.

The ideal solution would be to have a DictParam
to replace the VectorParam so each model can have
a name and can be identified in the stats file.

Change-Id: I4080a7054a16b56069c44750a7a9ce4e674cdf9d
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/5733
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
This commit is contained in:
David Guillen Fandos
2016-07-01 17:46:25 +01:00
committed by Andreas Sandberg
parent 899ad72060
commit 0757bef15d
2 changed files with 3 additions and 3 deletions

View File

@@ -67,7 +67,7 @@ class ClockedObject(SimObject):
clk_domain = Param.ClockDomain(Parent.clk_domain, "Clock domain")
# Power model for this ClockedObject
power_model = Param.PowerModel(NULL, "Power model")
power_model = VectorParam.PowerModel([], "Power models")
# Provide initial power state, should ideally get redefined in startup
# routine

View File

@@ -49,8 +49,8 @@ ClockedObject::ClockedObject(const ClockedObjectParams *p) :
prvEvalTick(0)
{
// Register the power_model with the object
if (p->power_model)
p->power_model->setClockedObject(this);
for (auto & power_model: p->power_model)
power_model->setClockedObject(this);
}
void