From 65cea4708e2f2f2cb361e12b6385d4bc29618223 Mon Sep 17 00:00:00 2001 From: Stephan Diestelhorst Date: Mon, 30 Jun 2014 13:56:06 -0400 Subject: power: Add basic DVFS support for gem5 Adds DVFS capabilities to gem5, by allowing users to specify lists for frequencies and voltages in SrcClockDomains and VoltageDomains respectively. A separate component, DVFSHandler, provides a small interface to change operating points of the associated domains. Clock domains will be linked to voltage domains and thus allow separate clock, but shared voltage lines. Currently all the valid performance-level updates are performed with a fixed transition latency as specified for the domain. Config file example: ... vd = VoltageDomain(voltage = ['1V','0.95V','0.90V','0.85V']) tsys.cluster1.clk_domain.clock = ['1GHz','700MHz','400MHz','230MHz'] tsys.cluster2.clk_domain.clock = ['1GHz','700MHz','400MHz','230MHz'] tsys.cluster1.clk_domain.domain_id = 0 tsys.cluster2.clk_domain.domain_id = 1 tsys.cluster1.clk_domain.voltage_domain = vd tsys.cluster2.clk_domain.voltage_domain = vd tsys.dvfs_handler.domains = [tsys.cluster1.clk_domain, tsys.cluster2.clk_domain] tsys.dvfs_handler.enable = True --- src/arch/alpha/AlphaSystem.py | 3 ++- src/arch/mips/MipsSystem.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'src/arch') diff --git a/src/arch/alpha/AlphaSystem.py b/src/arch/alpha/AlphaSystem.py index cc8e453b1..5e4822f00 100644 --- a/src/arch/alpha/AlphaSystem.py +++ b/src/arch/alpha/AlphaSystem.py @@ -45,7 +45,8 @@ class LinuxAlphaSystem(AlphaSystem): system_type = 34 system_rev = 1 << 10 - boot_cpu_frequency = Param.Frequency(Self.cpu[0].clk_domain.clock.frequency, + boot_cpu_frequency = Param.Frequency(Self.cpu[0].clk_domain.clock[0] + .frequency, "boot processor frequency") class FreebsdAlphaSystem(AlphaSystem): diff --git a/src/arch/mips/MipsSystem.py b/src/arch/mips/MipsSystem.py index 4605b21a7..58e30f28d 100644 --- a/src/arch/mips/MipsSystem.py +++ b/src/arch/mips/MipsSystem.py @@ -50,7 +50,8 @@ class LinuxMipsSystem(MipsSystem): system_type = 34 system_rev = 1 << 10 - boot_cpu_frequency = Param.Frequency(Self.cpu[0].clk_domain.clock.frequency, + boot_cpu_frequency = Param.Frequency(Self.cpu[0].clk_domain.clock[0] + .frequency, "boot processor frequency") class BareIronMipsSystem(MipsSystem): -- cgit v1.2.3