summaryrefslogtreecommitdiff
path: root/configs/example/arm/fs_power.py
diff options
context:
space:
mode:
Diffstat (limited to 'configs/example/arm/fs_power.py')
-rw-r--r--configs/example/arm/fs_power.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/configs/example/arm/fs_power.py b/configs/example/arm/fs_power.py
index b27455f13..7b92c8db8 100644
--- a/configs/example/arm/fs_power.py
+++ b/configs/example/arm/fs_power.py
@@ -69,6 +69,25 @@ class CpuPowerModel(PowerModel):
CpuPowerOff(), # OFF
]
+class L2PowerOn(MathExprPowerModel):
+ # Example to report l2 Cache overall_accesses
+ # The estimated power is converted to Watt and will vary based on the size of the cache
+ dyn = "overall_accesses*0.000018000"
+ st = "(voltage * 3)/10"
+
+class L2PowerOff(MathExprPowerModel):
+ dyn = "0"
+ st = "0"
+
+class L2PowerModel(PowerModel):
+ # Choose a power model for every power state
+ pm = [
+ L2PowerOn(), # ON
+ L2PowerOff(), # CLK_GATED
+ L2PowerOff(), # SRAM_RETENTION
+ L2PowerOff(), # OFF
+ ]
+
def main():
parser = argparse.ArgumentParser(
@@ -90,6 +109,14 @@ def main():
cpu.default_p_state = "ON"
cpu.power_model = CpuPowerModel()
+ # Example power model for the L2 Cache of the bigCluster
+ for l2 in root.system.bigCluster.l2.descendants():
+ if not isinstance(l2, m5.objects.Cache):
+ continue
+
+ l2.default_p_state = "ON"
+ l2.power_model = L2PowerModel()
+
bL.instantiate(options)
print("*" * 70)