sim: Use the Temperature param type
authorAndreas Sandberg <andreas.sandberg@arm.com>
Tue, 19 Jan 2021 10:16:03 +0000 (10:16 +0000)
committerAndreas Sandberg <andreas.sandberg@arm.com>
Tue, 26 Jan 2021 10:40:11 +0000 (10:40 +0000)
Add support for passing typed temperatures using the new Temperature
param type.

Change-Id: If68d619fd824e171d895a5cbbe4d0325d4c4f4db
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/39219
Tested-by: kokoro <noreply+kokoro@google.com>
Reviewed-by: Gabe Black <gabe.black@gmail.com>
Reviewed-by: Daniel Carvalho <odanrc@yahoo.com.br>
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>

src/sim/power/PowerModel.py
src/sim/power/ThermalDomain.py
src/sim/power/ThermalModel.py
src/sim/power/power_model.cc
src/sim/power/thermal_domain.cc
src/sim/power/thermal_model.cc

index 2047c645b7a713484307c0e58f95812c09bd4450..cfbd8cb66e228579187e6f8c9db772321c7b805d 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2016-2018 ARM Limited
+# Copyright (c) 2016-2018, 2021 Arm Limited
 # All rights reserved.
 #
 # The license below extends only to copyright in the software and shall
@@ -63,4 +63,4 @@ class PowerModel(SimObject):
     pm_type = Param.PMType("All", "Type of power model")
 
     # Ambient temperature to be used when no thermal model is present
-    ambient_temp = Param.Float(25.0, "Ambient temperature")
+    ambient_temp = Param.Temperature("25.0C", "Ambient temperature")
index 3fd5cadbf9a6bd045ab91e9a76f1daabf149d90f..57c53b2910f15906cae6ea8282e019b01221bf2e 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2015 ARM Limited
+# Copyright (c) 2015, 2021 Arm Limited
 # All rights reserved.
 #
 # The license below extends only to copyright in the software and shall
@@ -46,4 +46,4 @@ class ThermalDomain(SimObject):
     ]
 
     # Static temperature which may change over time
-    initial_temperature = Param.Float(25.0, "Initial temperature")
+    initial_temperature = Param.Temperature("25.0C", "Initial temperature")
index 2894dd8ebafa4ca217b04367e8051396e8cba0d8..90710e19e03b8a8b41760f59635ef2d70f45135d 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2015 ARM Limited
+# Copyright (c) 2015, 2021 Arm Limited
 # All rights reserved.
 #
 # The license below extends only to copyright in the software and shall
@@ -77,7 +77,7 @@ class ThermalReference(SimObject, object):
     ]
 
     # Static temperature which may change over time
-    temperature = Param.Float(25.0, "Operational temperature in Celsius")
+    temperature = Param.Temperature("25.0C", "Operational temperature")
 
 
 # Represents a thermal capacitor
index fbc67d34b95efea08d9f707853b63daae9934e84..42515ace8681f5894018239e4aeaebe02c0cc9b3 100644 (file)
@@ -66,7 +66,7 @@ PowerModel::PowerModel(const Params &p)
     // The temperature passed here will be overwritten, if there is
     // a thermal model present
     for (auto & pms: states_pm){
-        pms->setTemperature(p.ambient_temp);
+        pms->setTemperature(p.ambient_temp.toCelsius());
     }
 
     dynamicPower
index a5eb33c8e662fa0b0ed4945fb0ff7504f53fbe40..b0868becfe841c51a2bc33f27283a695192f1622 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015 ARM Limited
+ * Copyright (c) 2015, 2021 Arm Limited
  * All rights reserved
  *
  * The license below extends only to copyright in the software and shall
@@ -49,7 +49,7 @@
 #include "sim/sub_system.hh"
 
 ThermalDomain::ThermalDomain(const Params &p)
-    : SimObject(p), _initTemperature(p.initial_temperature),
+    : SimObject(p), _initTemperature(p.initial_temperature.toCelsius()),
     node(NULL), subsystem(NULL),
     ADD_STAT(currentTemp, "Temperature in centigrade degrees")
 {
index a37240b9b1684a913e513259b19bb180696d924a..c57e284c9c99681a5a4b8004c7e29237fecc9260 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015 ARM Limited
+ * Copyright (c) 2015, 2021 Arm Limited
  * All rights reserved
  *
  * The license below extends only to copyright in the software and shall
@@ -51,7 +51,7 @@
  * ThermalReference
  */
 ThermalReference::ThermalReference(const Params &p)
-    : SimObject(p), _temperature(p.temperature), node(NULL)
+    : SimObject(p), _temperature(p.temperature.toCelsius()), node(NULL)
 {
 }