一种基于Linux嵌入式系统的动态电源管理的方法

文档序号:6581734阅读:232来源:国知局
专利名称:一种基于Linux嵌入式系统的动态电源管理的方法
技术领域
本发明属于嵌入式系统的动态电源管理技术,特别是涉及一种基于Li皿x嵌入式 系统的动态电源管理的方法。
背景技术
随着半导体技术的高速发展,系统集成度和运算速度的提高,使得高性能和低功 耗的矛盾日益突出。 一方面,嵌入式技术迅速发展,嵌入式设备得到广泛应用,在给人们在 通讯、娱乐等方面提供了便利的同时也暴露出一些缺陷和不足。能量消耗问题是近几年来 人们在嵌入式系统设计中普遍关注的难点与热点,它严重制约着嵌入式系统的应用及发 展。大量的移动系统出现,它们由电池供电,并且电池在重量和尺寸上受到严格限制。尤其 是对于手持式设备,这些设备大部分时间由电池供电,电池的供电时间有限;而且结构比较 紧凑,散热条件差。另一方面,一些大型系统由于进行大量高强度计算产生的热量需要散 发;人们不但关心大型系统由于巨大的电路能量消耗产生的运行成本,而且关心系统在由 于能量消耗产生的高温环境下运行的可靠性。 因此如何降低设备的功耗,无论在军用设备和民用设备,如PDA,手持电脑等等,都 具有非同寻常的现实意义。减少电能消耗不仅能延长电池的寿命,而且能有效提高系统的 可靠性,同时,散发的热量少了 ,所需的散热器就越少,从而可减少该设备的成本和体积,使 产品尽快进入市场。特别在人类关注生态环境的今天,低功耗对保护环境同样具有非常积 极的意义。 动态电源管理(Dynamic Power Management, DPM)是实现低功耗的主要技术,设备 通常具有不同的能量消耗等级,在运行过程中,在满足一定性能约束条件下,DPM通过观察 设备负载将设备动态的切换到不同的能耗状态的方法来达到节省设备能耗的目的,例如, 设备空闲(Idle)时,采用某种策略将设备转入能耗更低的状态(Standby)。大量研究证明, 采用动态电源管理技术比不采用能够节省多达30%的能量,因此对动态电源管理技术的研 究具有重要的意义。 在动态电源管理中,何时决定切换以及如何切换设备的能耗状态由采用的DPM策 略决定(算法),策略的性能直接决定动态电源管理技术的省电效果。故而提供一种高性能 DPM策略的管理方法具有重大意义。

发明内容
本发明的目的在于提供一种在Li皿x嵌入式环境中的可加载的DPM框架,且性能 更佳的管理方法。 为了实现上述发明目的,采用的技术方案如下 —种基于Li皿x嵌入式系统的动态电源管理的方法,由动态电源管理框架实现, 所述动态电源管理框架包括脚本层、虚拟文件接口层、设备动态电源管理策略层和设备驱 动层;
所述脚本层提供用于对动态电源管理框架进行控制的脚本,在Li皿x中指的是 Shell脚本,通过脚本层所提供的脚本能启动/关闭具体设备的动态电源管理,或者获取设 备电源管理的相关信息; 所述虚拟文件接口层提供与脚本命令相对应的接口 ,以供脚本调用,包括整个动 态电源管理框架的虚拟文件接口以及各个电源管理设备的文件接口 ,在Li皿x中,使用内 核中Sysf s或者Proc所提供机制来实现DPM模块的虚拟文件接口层;
所述设备动态电源管理策略层提供各电源管理设备的策略接口,以供虚拟文件接 口层调用; 所述设备驱动层提供与各电源管理设备动态电源管理相关的驱动。 上述技术方案中,所述脚本层处于用户层,其余三层都处于操作系统层。对应到
Li皿x,后三层位于Li皿x内核中,其实现将以Li皿x驱动模块的方式实现。 本发明的设备动态电源管理策略层针对CPU的电源管理采用基于指数平均适应
性算法策略。 针对CPU的电源管理与现有的区别主要体现如下 第一 引进指数平均算法预测下一时间间隔的CPU空闲时间。 用At表示时间片t所测得的负载,Pt表示此时间片的预测负载,则指数平均算法 预测时间片t的负载为 <formula>formula see original document page 4</formula> 其中,weight是一个权值,它表示历史时间片的负载对下一时间片的负载的影响 程度。当weight为0时,Pt = At—p这表明下一时间片的预测负载等于上一时间片的实际 负载,当weight的值越大时,CPU频率/电压的转变将会变慢且平滑。当weight的值变小 时,表明系统对负载的变化有更快速的反应。 令<formula>formula see original document page 4</formula>则<formula>formula see original document page 4</formula>等价于: <formula>formula see original document page 4</formula> 可以看出,Pt的值取决于P。的值与所有历史时间片的负载。 由于考虑了历史负载的影响,指数平均算法的CPU负载曲线比较平稳,不会出现 剧烈的变化,做决策时,也不会引起操作点的剧烈变化。 第二 适应性的根据负载变化动态修改参数sampling_down_factor。
具体做法是当需要提高CPU频率时,表明此时CPU较繁忙,因此,如果此时 sampling_down_factor的值较小,在增力t] CPU频率的同时,增大sampling_down_factor 的值;当需要降低CPU频率时,表明此时CPU相对空闲,因此,如果此时samp 1 ing_doWn_ factor的值较大,在减少CPU频率的同时,减小sampling_down_factor的值。sampling— down—factor增加和减少的量是一样的,在具体的实现中,每次增加/减少的量的值为1。
采用基于指数平均适应性算法策略后,所述CPU的电源管理策略具体如下
1)用指数平均算法预测下一时间片[ti, t(i+l)]的CPU空闲时间tidle ;
2)判断tidle是否小于[1(1+1)-廿]*20%,如果是转步骤3),否则转步骤4);
3)令down_skip = 0,将CPU频率提高到最大频率值,增大sampling_down_factor 的值,转步骤l); 4) down_skip++,判断down—ship是否大于等于sampling—down—factor,如果是转 步骤5),否则转步骤1); 5)降低CPU频率,在当前负载不变情况下,目标频率应使得空闲时间能超过30%, 减少sampling_down_factor的值,转步骤1)。 ti表示第i个时间片开始时刻,sampling_down_factor表示触发频率更改时的阈 值,down_skip表示对阈值的计数值。 本发明的设备动态电源管理策略层硬盘的电源管理采用半马尔可夫算法的策略。
本发明提出一个可动态加载的动态电源管理模块的框架,采用了软件设计上的分 层概念,具有比较好的扩展性,容易在模块中添加对其他设备的动态电源管理。另外,模块 是可动态加载/卸载的,方便开发工作的进行。 本发明针对现有Linux的Cpufreq内核子系统的电源管理策略0ndemand的不足, 提出并实现基于指数平均适应性算法的新的策略,并以磁盘作为节能对象,在DPM模块中 实现了基于半马尔可夫过程的磁盘动态电源管理。 通过实验表明,对于CPU的动态电源管理,本发明的CPU动态电源管理无论从能耗 还是性能都优于Cpufreq内核子系统中的0ndemand策略。对于硬盘的动态电源管理,本发 明实现的基于半马尔可夫过程的磁盘动态电源管理,在性能损失相同的情况下,相对于其 他电源管理策略,能够获得更好的节能效果。


图1为本发明的动态电源管理框架示意图; 图2为半马尔可夫决策过程示意图; 图3为系统状态转换模型; 图4为磁盘状态转换模型; 图5采用不同DPM策略时CPU操作点变化曲线; 图6采用不同电源策略时磁盘状态变化曲线比较。
具体实施例方式
下面结合附图对本发明做进一步的说明。 图1是本发明的DPM框架图。采用了软件设计的分层思想。因此,容易对模块进 行扩展,添加针对不同设备的电源管理。整个框架包括脚本层、虚拟文件接口层、设备DPM 策略层、设备驱动层。 本发明除了实现了一种在Li皿x嵌入式环境中的可加载的DPM的框架,还针对 Li皿x的Cpufreq内核子系统的电源管理策略0ndemand的不足,提出并实现基于指数平均 适应性算法的新的策略,以及针对于离散时间和连续时间的马尔可夫决策过程算法的硬盘 电源管理的不足,提出基于半马尔可夫的硬盘电源管理优化算法。 在计算机系统中,系统状态的转换通常是由一些事件(event)引起的,例如请求 到来,请求队列为空等。这些事件是电源状态转换的原因,本发明研究的半马尔可夫决策就是在这些事件的驱动下进行工作的。图2是事件驱动的半马尔可夫决策过程
event(事件)是引起状态转换的原因,例如请求到来,请求队列为空等;
决策点是进入另一个状态的时刻,即每当系统进入新的状态si,就做一次决策,发 出命令ai ; ti是当系统处于状态si,在发出命令ai的情况下,直到系统转换到状态si+1所 经历的时间,ti服从概率分布Fi j (t) , Fi j (t)可以是任何的概率分布。
半马尔可夫代价模型如下 F(ti|si,ai):表示在状态si时发出命令ai,在ti结束之前有事件发生的概率分 布; p(s(i+l) |si, ai, ti):表示在状态si时发出命令ai,在ti结束之前有事件发生
的条件下,系统转换到状态S(i + l)的概率; m(jls,a):表示在状态s时发出命令a,系统转换到状态j的概率,由概率学知识, 有/n(_/1 、") = f/ (_/ II j,a) y(s, a):表示在状态s时发出命令a,处于状态s的期望 时间,由概率学知识,有
0 " (3-2) cost(s, a):表示在s时发出命令a的平均代价,包括能耗代价和性能损耗代价。 有cos";,.,";) = +厂F(dw I s,.,a》Z J^cCSi+p^aX^ I <formula>formula see original document page 6</formula>节 ° ° (3-3) 其中k(si,ai)表示在状态si时发出命令ai的固定代价,c (s (i+1) , si, ai)表示 在状态si时发出命令ai,接下来的状态是s(i+l)的代价率。Si+l是si有可能转化到的 状态的集合。 性能约束和能耗约束下的最优化策略的求解等价于对下面式子的求解 min XX cos f, "' "),", a)


其中f(s, a)是未知数,表示在状态s时发出命令的频率;系数cost(s, a)和
m(sls', a)含义见前面。(3-4)式求解的是在一定性能损耗的约束下,使得能耗最小的策
略,由对称性,将(3-4)中两个cost(s,a)交换位置,就变成求解在一定能量消耗的约束下,
使得性能损耗最小的策略。 则在状态s时发出命令a的概率为
<formula>formula see original document page 6</formula> '', " X/"i,"i)
一 (3-5) 根据系统在状态s时发出各个命令的概率大小,选择概率最大的那个命令。
为了求出式子(3-4)的各个系数,需要对目标系统的状态转换过程进行研究。目 标系统一般有若干个不同的能耗状态,例如,active、idle等。ii^在某一能耗状态s的 某个时刻进行,或者说,在s的某个时间片At内做的。由此,如果能对s再进行划分,将能 得到精确度和灵活性更高的决策。假设目标系统具有active、 idle、 standby、 sle印四个 能耗状态,基于上面思想,建立图3所示的系统转换模型。 图3中arrival表示有服务请求到来,d印arture表示服务队列为空。 从图3中可以看出,Idle、 Standby、 Sle印按照时间片被细化成了若干个状态,状
态数目取决于时间片数,假设有n个时间片(n A t略大于等效工作时间Tbe),则系统状态数
为0(n)+2。 如果目标系统有更多的低能耗状态,同样可采取像Idle、 Standby、 Sle印那样按 照时间片细化成若干个状态。 细化Idle、 Stanby状态,使得可以在不同的Idle或Stanby时刻采取决策, 一方 面决策点增加,灵活性更高;另一方面也能更大程度地避免系统由于长时间处于Idle状态 (本应转入Stanby状态)或者Stanby状态(本应转入Sle印状态)而消耗大量能量的情 况。 决策点包括Idle、 Standby的各个时间片,进入Idle或Standby的每一个时间片 状态都会做决策,发出命令,决定系统转换到哪一个状态。 对于图3的系统状态转换模型,在Idle和Stanby的每一个时间片状态,事件 event指的就是请求到来。设F(t)表示事件发生的概率分布,p (ti, si, ai)表示系统在时 间片状态si时发出命令ai(例如保持idle的命令),在时间片[ti,ti+At]内有请求到来 的概率,对Idle或Standby的某一个时间片状态(ti《t《ti+A t),在[ti, ti+At]有 请求到来意味着在
没有请求到来,由概率学知识有<formula>formula see original document page 7</formula>3~6) 考虑系统处于时间片状态si时发出命令ai,处于状态si或者处于转换状态的期 望时间 如果ai是保持当前状态不变的命令,当没有事件发生时,系统状态保持不变,则 相应时间片状态si的期望时间 <formula>formula see original document page 7</formula>(3-7) 如果ai是转换到其他状态的命令,假设转换时间为Atl,当没有事件发生时,系
统将保持"转换状态"不变,其期望时间为
<formula>formula see original document page 7</formula> 在Idle和Stanby的每一个时间片状态,有事情发生(即有请求到来),系统的状 态总会发生变化,即会转换到Active状态。系统在Idle或Standby的某一个时间片状态 时,下一状态仍然为Idle或Standby的概率为m(j I si, ai) = l-p(ti, si, ai) (3-9)
下一状态为Active的概率m(j I si, ai) = p(ti, si, ai) (3-10)
到此为止,图3的目标系统对应的式子(3-4)的各个系数已能够计算出来,即可对 式子(3-4)进行求解,求出图3所描述系统的x(si, ai)。具体决策点包括Idle、 Standby 的各个时间片,每当进入Idle或Standby的每一个时间片状态都会做决策产生一个内核 随机数RND,如果转换到更低能耗状态的概率x(si, ai)大于RND,则发出命令,将系统转换 到更低能耗状态,否则,不发出命令。 采用本发明对CPU动态电源管理进行评估测试,测试时间大约十分钟。开启CPU 电源管理后,同时播放一段3:33和一段9:40的视频,启动视频后,马上用0penof f ice新建 并编辑两个新的odt文件,输入五到六行的字符,存盘并关闭文件,接着关闭Openoffice, 接下去什么也不做,等待视频播放完成。 此方法可测试DPM策略在以下情况的性能第一,CPU在一段时间内较忙;第二, CPU负载适中;第三,CPU相对空闲。 从单位时间平均能耗,性能损失,状态转换次数三个方面来对算法性能进行评估。 单位时间性能损失采用下面公式来计算 Per/ — Cfmswm = ~^-
,eg"e"ce (4-1) CPU性能损失和负载成正比,和CPU频率成反比。负载越高,性能越差。频率越高, 性能越好。 CPU在进行状态转换的时候会产生时间延迟,状态转换期间CPU什么也做不了 ,状 态转换次数越多,CPU性能损失就越大,对CPU寿命的影响也更大。 以80ms作为采样时间间隔,在不同DPM策略下,对CPU当前负载和状态进行采样, 图4是用Matlab进行数据处理后的结果。为表述方便,将本发明的策略取名为Mydemand。
操作点的值越高,消耗的能量就越多。从图4可以看出,相对于不采用DPM的情况, 采用Ondemand或Mydemand进行动态电源管理,都能够在比较大的程度上节省能耗。相对 于采用Mydemand,采用Ondemand时CPU明显有更多的时间是处于高操作点,而且不同操作 点间的切换更频繁,这说明Mydemand无论从性能上还是能耗上都应该是优于Ondemand的。
采用本发明对磁盘动态电源管理评估测试,测试时间大约8分钟(500秒),在 此时间内播放一段长约5分20秒的视频,接着编写一段helloworld代码,启动GCC编译 helloworld代码,执行此代码,最后大约一分半钟什么都不做。 此方法可同时测试算法在以下情况的性能第一,硬盘在一段时间内较忙;第二, 硬盘空闲。 由于硬盘本身有高级电源管理(APM)功能,因此,不仅需要比较在DPM模块中实现 的硬盘DPM各个策略间的性能差异,而且还要比较它们与硬盘APM之间的性能差异。
以1 s为采样时间间隔,在不同的电源策略下,对硬盘的状态进行采样。图5是用 Matlab对数据进行处理后的结果。 从上到下三个子图分别是不采用电源管理(nopm)、采用磁盘本身的高级电源管理 (disk apm)、采用基于半马尔可夫决策过程的动态电源管理(semi-markovdecision dpm) 这三种策略时磁盘状态的变化曲线。 从图6可以看到,nopm时磁盘只会处 Idle和Active状态,而disk apm或semi-markov decision dpm时,磁盘还会比较久的处于低能耗的Standby状态,因此,disk apm或semi__markov decision dpm者卩會g达到节省會g耗的效果。 从图6还可以看出,semi-markov decision dpm处于Active禾P Standby状态的时 间比disk即m多,而处于Idle状态的时间比disk即m少,由于Active和Idle两个状态 能耗相差不大,而Standby状态比Idle状态能耗小得多,因此,semi-markov decision dpm 比disk即m更加节能。
权利要求
一种基于Linux嵌入式系统的动态电源管理的方法,其特征在于由动态电源管理框架实现,所述动态电源管理框架包括脚本层、虚拟文件接口层、设备动态电源管理策略层和设备驱动层;所述脚本层提供用于对动态电源管理框架进行控制的脚本,通过脚本层所提供的脚本能启动/关闭具体设备的动态电源管理,或者获取设备电源管理的相关信息;所述虚拟文件接口层提供与脚本命令相对应的接口,以供脚本调用,包括整个动态电源管理框架的虚拟文件接口以及各个电源管理设备的文件接口;所述设备动态电源管理策略层提供各电源管理设备的策略接口,以供虚拟文件接口层调用;所述设备驱动层提供与各电源管理设备动态电源管理相关的驱动。
2. 根据权利要求1所述的基于Li皿x嵌入式系统的动态电源管理的方法,其特征在于 所述脚本层处于用户层,其余三层都处于操作系统层。
3. 根据权利要求1或2所述的基于Li皿x嵌入式系统的动态电源管理的方法,其特征 在于设备动态电源管理策略层针对CPU的电源管理采用基于指数平均适应性算法策略。
4. 根据权利要求3所述的基于Li皿x嵌入式系统的动态电源管理的方法,其特征在于 所述CPU的电源管理策略具体如下1) 用指数平均算法预测下一时间片[ti,t(i+l)]的CPU空闲时间tidle;2) 判断tidle是否小于[t(i+l)-ti丌20X,如果是转步骤3),否则转步骤4);3) 令down_skip = O,将CPU频率提高到最大频率值,增大sampling_down_factor的 值,转步骤l);4) (1(^11_8^。++,判断down_ship是否大于等于sampling_down_factor,如果是转步骤 5),否则转步骤1);5) 降低CPU频率,在当前负载不变情况下,目标频率应使得空闲时间能超过30%,减少 sampling—down—factor的值,转步骤1);其中,ti表示第i个时间片开始时刻,sampling_doWn_factor表示触发频率更改时的 阈值,down_skip表示对阈值的计数值。
5. 根据权利要求1或2所述的基于Li皿x嵌入式系统的动态电源管理的方法,其特征 在于设备动态电源管理策略层硬盘的电源管理采用半马尔可夫算法的策略。
全文摘要
本发明提供一种基于Linux嵌入式系统的动态电源管理的方法,由动态电源管理框架实现,所述动态电源管理框架包括脚本层、虚拟文件接口层、设备动态电源管理策略层和设备驱动层;所述脚本层提供用于对动态电源管理框架进行控制的脚本,通过脚本层所提供的脚本能启动/关闭具体设备的动态电源管理,或者获取设备电源管理的相关信息;所述虚拟文件接口层提供与脚本命令相对应的接口,以供脚本调用,包括整个动态电源管理框架的虚拟文件接口以及各个电源管理设备的文件接口;所述设备动态电源管理策略层提供各电源管理设备的策略接口,以供虚拟文件接口层调用;所述设备驱动层提供与各电源管理设备动态电源管理相关的驱动。
文档编号G06F9/46GK101697095SQ20091019347
公开日2010年4月21日 申请日期2009年10月30日 优先权日2009年10月30日
发明者刘发贵, 吴泽祥, 曹立正 申请人:华南理工大学;
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1