Linux系统中Cpufreq电源管理模块的探究与应用

2018-02-14 12:49赵婉芳
数字技术与应用 2018年10期

赵婉芳

题目:Research and Application of Cpufreq Power Management Module in Linux System

作者:ZHAO Wan-fang

(北京电子科技职业学院,北京  100176)

摘要:随着能源消耗的增长,动态电源管理技术广泛应用于嵌入式便携式电子终端设备, Linux系统也采用了动态电源管理,系统中通过Cpufreq模块动态调整CPU频率以降低能源消耗。本文重点讨论了Cpufreq模块的结构特点及主要调控器,并探究了Cpufreq电源管理模块的应用要点。

关键词:动态电源管理;Linux系统;Cpufreq

中图分类号:TN86   文献标识码:A    文章编号:1007-9416(2018)10-0000-00

1 引言

动态电源管理是一种系统级的功耗控制技术,它广泛应用于嵌入式便攜式电子终端设备,如外围设备负载较大时的功耗控制。近年来,随着移动互联越来越普遍,用户越来越意识到有限的电力资源对环境和资源消耗的影响,能耗管理已成为计算机领域的一个热门话题。由于所有的计算机都必须使用一定数量的电力来运行,所以在系统和软件架构上已经有许多进步来节省所使用的电量。开发这些特性是提供良好的电源管理的关键。本文讨论了Linux内核的电源管理模块的结构特点与应用,Linux系统内核的电源管理模块允许其充分利用运行的各种平台的电源管理能力,达到系统节能目的。

2 Cpufreq结构特点

Cpufreq是Linux内核的一个子系统,CPU活动时控制电源使用,它支持在处理器上显式设置频率,并提供了一组模块化的接口来管理CPU频率的变化。图1描述了Cpufreq基本结构。

图1 Cpufreq结构图

Cpufreq module部分为各种频率控制技术提供了通用接口。Cpufreq有助于CPU频率控制机制和策略的独立发展。它还为用户提供了一系列能选择策略调控器并为该特定策略调控器设置参数的标准接口。

CPU-specific drivers部分实现不同的CPU变频技术,在给定的平台上,可以支持一种或多种频率调制技术,并且必须为平台加载适当的驱动器以执行有效的频率变化。Cpufreq基础结构允许每个平台使用一个CPU专用驱动程序。这些低级驱动程序中的一些还依赖于ACPI方法来从BIOS获得关于CPU及其能够支持的频率的信息。

In-kernel governors部分中,Cpufreq支持改变频率的策略调控器,该调控器可以根据不同的标准(如CPU使用率)改变CPU频率。Cpufreq还可以显示系统上的可用调控器,并允许用户选择调控器来管理每个独立CPU的频率。这部分中主要包括有Performance governor、Powersave governor、Userspace governor和ondemand governor等功能不同的调控器。

3 Cpufreq governor调控器

为了节省能源消耗,当系统响应事件时,CPU频率可以根据系统负载自动缩放,或由用户空间程序进行手动调节。Cpufreq Governors则是进行CPU频率调节的设备。频率缩放功能是在Linux内核中实现,系统内核将自动加载所需模块,在默认情况下启用的是ondemand Governors。

Cpufreq Governors支持几种电源使用方案。一个时间只有一种方案有效。具体的方案如表1所示。

Performance Governor可以将CPU保持在用户指定范围内的最高可能频率。它节电效益不明显,只适用于数小时的繁重工作,甚至只有在CPU很少或从不空闲的时候。

Powersave Governor可以将CPU保持在用户指定范围内的最低可能频率。它提供最大功率节省,以最低的CPU性能为代价。这种特殊的Governor不能长期的省电,虽然在预期CPU低活性时它可能是明智的设置,在此期间任何意外的高负荷可以导致系统实际上消耗更多的能量。

Userspace  Governor:可以将可用的频率信息通过sysfs导出到用户级别,在所有的管理器中,Userspace是可定制模式,用户空间管理器允许用户空间程序进行频率设置,如果配置恰当,它可以达到系统提供的性能和功耗之间的最佳平衡。该调速器通常与CPU速度守护进程一起使用。所有用户空间动态CPU频率管理器都使用该调速器作为代理。

Ondemand governor是一个动态的调控器能够对CPU进行频繁的负载监视,当系统的负载是高时,允许CPU时钟频率达到最大,当系统空闲时可以缩小时钟频率。虽然这允许系统相对于系统负载相应地调整功耗,这样做在牺牲频率切换之间的延迟。因此,如果系统经常在空闲和繁重的工作之间切换,则延迟能够抵销其节能效益。对于大多数系统而言,它可以提供最佳的散热,功耗和性能之间的妥协。

Conservative governor设置CPU频率取决于当前使用情况。它逐渐地增加和减少CPU的速度,而不是在CPU上有任何负载时直接跳转到高速度。这种模式更适合于电池供电的环境。在该工作模式中调速器将调整到它认为适合负载的时钟频率,而不是简单地选择最大和最小,虽然这可能提供显著节省功耗,但比起ondemand调控器则有一个更大的延迟。

4 结语

随着动态电源管理广泛应用于嵌入式便携式电子终端设备, Linux也很早就采用了动态电源管理,利用电源管理模块来动态调整CPU频率以降低能源消耗,从而有效降低系统的功耗。由于系统组件在各种功耗运行状态之间切换的同时,其工作性能也相应降低,而且需要一定的电能消耗和转换时间,导致系统功耗增加和性能降低。不适当的切换非但不能带来功耗的降低,反而容易导致较大的性能损失。因此未来还需要在动态电源策略优化方面做进一步的研究,在系统性能和功耗间进行均衡,寻求能达到边界最优的控制策略。

参考文献

[1]翟剑锋,李衍杰,陈浩耀.动态电源管理的在线优化技术[J].控制理论与应用,2018,(01):65-69.

Research and Application of Cpufreq Power Management Module in Linux System

ZHAO Wan-fang

(Beijing Polytechnic College, Beijing  100016)

Abstract: With the increase of energy consumption, dynamic power management technology is widely used in embedded portable electronic terminal devices, and dynamic power management is also used in Linux system. In the system, the CPU frequency is dynamically adjusted through the Cpufreq module to reduce energy consumption. This paper focuses on the structure characteristics and main regulators of the Cpufreq module, and explores the application points of the Cpufreq power management module.

Key words: dynamic power management;Linux system;Cpufreq