APP下载

基于linux的cpufreq动态电源管理模块研究

2018-06-07赵婉芳

现代工业经济和信息化 2018年5期
关键词:管理策略电源动态

赵婉芳

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

引言

随着物联网技术的发展,大量的移动终端连接入网,与传统电子设备的电源类型和使用情况相比,大部分物联网移动终端的电源一般都选择使用电池供电,其优点是移动性强,体积小,但是也使得电源能量比较有限,而优秀的电源管理系统能使得电池的寿命延长2-3倍[1]。因此如何在有限的供电时间内,在不同的使用场景之下保证移动终端的正常使用是目前移动终端电源管理研究的主要方向。目前电源管理主要分为硬件和软件的实现。硬件上,通过优化电路和改进工艺来降低电路的工作功耗。软件上,通过管理软件的执行,使电路尽可能地处于低功耗工作状态。有效的电源管理不仅降低功耗,也能降低故障率。降低功耗的同时,电路的工作温度也会减低,同时降低电路的故障率。本文主要研究LINUX系统中如何通过软件进行动态电源管理。

1 动态电源管理策略

在电源管理中,为了节省能耗,在设备的工作过程中决定一个设备是否需要降低性能或者被关闭的规则叫做电源管理策略。电源管理策略主要分为静态电源管理技术和动态电源管理技术两大领域。一般来讲,在嵌入式移动终端设备中,设备的工作状态主要在工作和空闲之间相互交替运行,这两种工作状态的能量消耗需求不同,CPU的工作频率和工作电压以及总线的时钟频率和设备的电源状态差别很大。因此,为了设备能更好的节省能耗,通常通过使用动态电源管理策略将负载较轻的设备切换到低功耗的状态下运行,动态调节设备的频率及电压,从而在满足性能的前提条件下,有效降低系统整体功耗。动态电源管理中常见的状态切换示意图如图1所示。

图1 DPM控制的状态切换图

2 动态电源管理策略类型

动态电源管理策略主要分为以下四种类型:

1)超时(Time-Out)策略:该策略原理为基于原有的工作经验设置一个阀值,当设备空闲时间大于所设置阀值时,设备将自动进入睡眠状态或低功耗状态。这种策略最为简单易用,因此在工业中应用广泛,智能手机以及笔记本电脑的屏幕保护即采用此种策略。但策略的缺点是当阀值时间设置过长时,设备就会在等待超时时间到来之前产生比较多能耗。超时策略主要通过超时阈值来调整系统,与系统的负载无关,因此策略关键点是阈值的设置,目前有很多实现动态调整超时阈值的算法。

2)贪婪(Greedy)策略:该策略原理为使用标志位(flag)检测设备的状态和系统的请求状况,如果该设备处于运行状态并没有系统请求,则将该设备工作状态设置为低功耗状态,当有请求到来时,再使该设备从低功耗状态转换到运行状态。在实际的工作中如果工作状态发生转换,则不可避免地会带来能量消耗及时间的延迟,因此当系统进行频繁的状态切换时,贪婪算法会消耗更多的能量和造成更多的延迟,从而产生抖动现象。因此工作状态的转换和系统延时之间的矛盾,使得贪婪策略很难成为最优算法。

3)基于随机(Stochastic)过程策略:该策略原理为把系统负载当作随机优化问题处理,系统的四个核心模块即服务提供者、服务请求者、等待队列和电源管理分别对应马尔可夫的四个不同过程,并利用随机的马尔可夫过程求解。该策略可以用于交互式系统,处理多个状态之间的切换问题。但由于该策略基于随机概率模型,因此分析过程会有失真现象,和系统的真实性有一定区别。

4)预测策略:该策略主要使用推测的方法,通过设备的历史空闲时间记录和工作时间记录去推测出未来的时间值,当这个值大于盈亏平衡时间时,设备处理完请求后则进入睡眠状态或低功耗状态,直到有用户请求到达而返回工作状态,如果值小于盈亏平衡时间时,设备则进入空闲状态,直到有用户请求到达。该策略算法涉及参数较多,实现相对较为复杂,当预测时间与实际时间有较大误差时,则会造成一定的能量浪费和设备性能损失。

3 Linux中主要的电源管理模块

cpufreq驱动:根据CPU的负载,调整CPU的频率和电压。

在Linux系统中,为了能耗节省,有专门的电源管理模块来进行设备的电源管理优化,其中非常重要的就是cpufreq模块。cpufreq模块是Linux内核设置频率变化的处理器子系统,主要负责系统工作期间频率的调整来实现设备的能耗控制。cpufreq提供了一个模块化的接口来管理CPU频率的变化。cpufreq模块结构图如下图2所示:

图2 cpufreq模块结构图

当CPU处于活跃状态,CPU的频率缩放功能可以使得操作系统调节CPU的频率大小。当响应系统事件时,cpufreq可以根据系统负载自动进行缩放也可以通过使用用户空间程序进行手动调节。CPU的频率调节是在Linux内核中实现,调节频率的设备则是cpufreq Governors。开始工作时,系统内核将自动加载所需模块,在默认情况下启用的是ondemand Governors。

大多数cpufreq驱动以及CPU频率调节算法要求将CPU频率设置为预定义的一个固定值。为了能够实现动态频率调节,cpufreq必须设置一个“目标频率”并告知特定的驱动程序。在cpufreq策略中使用什么样的频率是通过使用cpufreq Governor来决定的。cpufreq Governors支持几种电源使用方案,但一个时间只有一种方案有效。具体的cpufreq Governors方案如表1所示。

表1 cpufreq Governors方案

在以上Governor的使用中要注意,Performance Governor没有节电效益,它只适用于数小时的繁重工作,甚至只有在CPU很少或从不空闲的时候使用;Userspace Governor取决于它是如何配置的,它可以为你的系统提供的性能和功耗之间的最佳平衡,在所有的governor中,它是最可定制的;Ondemand governor是一个动态的governor,当系统的负载是高时,允许CPU时钟频率达到最大,当系统空闲时则可以缩小时钟频率。Conservative governor设置CPU频率取决于当前使用情况。它的不同在于,它逐渐地增加和减少CPU的速度,而不是在CPU上有任何负载时直接跳转到高速度。这种模式更适合于电池供电的环境。另外还有一个最新加入的管理器是the schedutil cpufreq governor,它使用调度器所提供的CPU利用率的信息作为决策的输入,为调度程序与CPU电源管理更紧密地链接创建接口。不同的Governor,具有不同的频率设置策略,因此在具体的应用中要根据实际情况选用恰当的Governor才能达到节能目的,否则只会适得其反,不仅达不到降低系统能耗的目的,反而降低了系统性能。

4 结语

在移动终端嵌入式设备中,通过动态电源管理可以有效降低系统整体功耗,从而延长系统待机时间。本文介绍了已有的动态电源管理策略,重点研究了LINUX系统中当系统处于工作状态时负责电源管理的cpufreq模块结构特点并分析总结出Governor部分在实际使用中的注意要点,为众多基于Linux系统嵌入式设备的电源管理实际应用提供了一个有用的参考。

[1]Daler Rakhmatov etal.Energy Management for Battery-Powered Embedded Systems[J].ACM Transactions on Embedded Computing Systems,2003:277-324.

猜你喜欢

管理策略电源动态
国内动态
房建工程招标组织与合同管理策略
国内动态
国内动态
论减税降费背景下的企业财务管理策略
建筑工程管理策略探讨
建筑施工安全管理策略的应用探索
动态
Cool Invention炫酷发明
哪一款移动电源充电更多?更快?