节省处理器功耗的方法

文档序号:82553阅读:346来源:国知局
专利名称:节省处理器功耗的方法
技术领域
本发明涉及处理器的功耗节省,具体涉及一种节省处理器功耗的方法,能够在保证处理器的电压满足应用要求的同时降低处理器的功耗。
背景技术
在如嵌入式手持系统之类的电池供电处理系统中,电池的寿命通常是一个系统的瓶颈。而另一方面,多媒体尤其是视频播放在如PMP和PDA之类的手持设备中将变得越来越普及。因此,电池供电的处理系统的低功耗设计显得非常重要。此外,在现在的手持设备中,嵌入式CPU的功能变得越来越强大,通常可以进行软解码操作。众所周知,软解码是一个需要CPU密集处理的应用,需要耗费很多电池能量。
当CPU做视频软解码时,通常会采用一种叫做DVS/DFS(DynamicVoltage/Frequency Scaling)的技术进行低功耗设计。DVS技术中一个很重要的任务是选取一个合适的CPU负载采样周期,利用一种合适的算法进行CPU负载预测以决定下一个时间间隔中设置多大的电压和频率。众所周知,该采样周期的选取对于DVS的性能有着极大的影响。因为,视频流通常是一帧一帧的,现在人们通常的做法都认为采样间隔应该是帧率的倒数。例如对于一段30帧/秒的流,通常就认为该采样间隔或周期取33毫秒是最合适的。但是,经过大量的研究发现基于这种采样间隔得到的CPU负载数据其规律性很不好,很难给出一个很好的预测结果,导致或者电压不能满足处理器的要求,或者处理器的功耗过大。
此外,在上述基于时间间隔的低功耗设计中,由于处理器的负载是随着应用程序的变化而变化的,所以如何准确预测下一时间间隔是另一个重要的问题。例如文献1(Xiaotao Liu,Prashant Shenoy andWeibo Gong,A Time Series-based Approach for Power Management inMobile Processors and Disks,In Proceedings of the 14th ACM Workshopon Network and Operating System Support for Audio and Video(NOSSDAV)提出了一种基于时间序列的预测方法,其中采用时间序列的方法来预测处理器的负载值,但是该方法并未讨论如何在动态情况下调节处理器的功率,也就是说,并不能在处理器的运行情况发生改变时准确预测处理器在下一时间间隔中的负载值。

发明内容鉴于上述问题,完成了本发明。本发明的目的是提出一种节省处理器功耗的方法,能够在保证处理器的性能满足应用要求的同时降低处理器的功耗。
在本发明的一个方面,提出了一种节省处理器功耗的方法,包括步骤(1)对处理器的负载进行密集采样,以得到第一数目的处理器负载值;(2)对所述第一数目的处理器负载值进行傅立叶变换,以计算与幅度峰值相对应的频率和与该频率相对应的特征采样周期;(3)在当前时间间隔中以所述特征采样周期重新采样所述处理器的负载,以得到第二数目的处理器负载值;(4)基于所述第二数目的处理器负载值建立预测模型,以预测所述处理器在下一时间间隔中的处理器负载值;以及(5)根据所述预测的处理器负载值调节所述处理器的电压/频率。
根据本发明的一个实施例,所述步骤(4)包括通过下面的线性模型由M个处理器负载值来预测所述处理器在下一时间间隔中的处理器负载值x^t+1=xt+Σi=1p(xt-i+1-xt-i)φi;t=0,1,2,3,...,M]]>其中,p表示线性模型的阶数,系数φi可以利用Yule-Walker公式由当前时刻之前的由M个处理器负载值来估计。
根据本发明的一个实施例,所述步骤(5)通过查表的方法来根据所述预测的处理器负载值调节所述处理器的电压/频率。
根据本发明的一个实施例,在所述步骤(2),如下计算所述特征采样周期τ=(T*N/2)/fτ其中T表示密集采样的采样周期,N是所述的第一数目,而fτ是所述与幅度峰值相对应的频率。
在本发明的另一方面,提出了一种节省处理器功耗的方法,包括步骤(1)对处理器的负载进行密集采样,以得到第一数目的处理器负载值;(2)对所述第一数目的处理器负载值进行傅立叶变换,以计算与幅度峰值相对应的频率和与该频率相对应的特征采样周期;(3)在当前时间间隔中以所述特征采样周期重新采样所述处理器的负载,以得到第二数目的处理器负载值;(4)基于所述第二数目的处理器负载值建立预测模型,以预测所述处理器在下一时间间隔中的处理器负载值;(5)用补偿因子补偿所述预测的处理器负载值;以及(6)根据所述补偿的处理器负载值调节所述处理器的电压/频率。
根据本发明的一个实施例,该方法还包括(7)如果所述补偿因子在一段时间中的变化大于预定的阈值,则执行重复所述步骤(1)~(6)。
根据本发明的一个实施例,所述补偿因子是加性补偿因子λ,通过将所述加性补偿因子加在所述预测的处理器负载值上来进行所述补偿。
根据本发明的一个实施例,所述补偿因子是乘性补偿因子λ,通过用所述乘性补偿因子除所述预测的处理器负载值来进行所述补偿。
根据本发明的一个实施例,如下确定所述加性补偿因子λλ=KPe+KI∫edt+KDdedt]]>其中e表示统计得到的过调率和用户设定的过调率之间的偏差,KP,KI和KD分别表示比例系数,积分系数和微分系数。
根据本发明的一个实施例,如下确定所述乘性补偿因子λ
λ=KPe+KI∫edt+KDdedt]]>其中e表示统计得到的过调率和用户设定的过调率之间的偏差,KP,KI和KD分别表示比例系数,积分系数和微分系数。
利用本发明的方法,可以准确预测下一时间间隔中处理器的负载值,从而能够按照该负载值来调节处理器在下一时间间隔中的电压/频率。此外,由于可以用补偿因子对预测的负载值进行补偿,从而能够在处理器的运行情况发生改变时及时进行准确的调整,以在满足应用程序要求的同时降低处理器的功耗。
图1示出了根据本发明第一实施例的节省处理器功耗的方法的详细流程图。
图2示出了根据本发明第二实施例的节省处理器功耗的方法的详细流程图。
具体实施方式下面对照附图详细描述本发明的实施例。
如图1所示,在步骤S110,先按照某个密集采样间隔如T=10ms采集N=128个CPU负载值。在步骤S120,对采集的128个CPU负载值作FFT变换针对前半个周期找到幅度峰值所对应的频率fτ。
接下来,在步骤S130,根据频率fτ求出特征采样周期τ=(T*N/2)/fτ。
然后,在步骤S140,以与特征采样周期τ相对应的频率对CPU负载进行采样,得到一系列CPU负载值,例如64个。在步骤S150,根据采样得到的CPU负载值进行DVS建模,从而预测下一时间间隔中的CPU负载值。
具体来说,建立DVS模型的过程如下。经过大量的研究发现,利用上述特征采样间隔τ采集的CPU负载值非常好地符合ARIMA(自回归积分滑动平均)随机过程。
此外,由于ARIMA过程中的MA过程分量非常小,所以可以将其忽略而不会对结果产生多大影响,但是却可以大大地简化预测模型的复杂度并减少计算量。DVS模型主要用来根据以前的CPU负载预测下一个时间间隔的CPU负载,从而设置相应的电压/频率。
因此,根据ARI(自回归积分)模型,对当前时刻的CPU负载的预测值可以很容易地通过线性模型由当前时刻之前的M个CPU负载值来表示x^t+1=xt+Σi=1p(xt-i+1-xt-i)φi;t=0,1,2,3,...,M---(1)]]>其中,p表示ARI模型的阶数,也就是观测窗的大小,系数φi可以利用Yule-Walker公式由当前时刻之前的CPU负载值估计得到φ^1φ^2φ^p=1ρ^1ρ^p-1ρ^11ρ^p-2ρ^p-1ρ^p-21-1ρ^1ρ^2ρ^p---(2)]]>其中ρ^k=ρ^-k=r^k/r^0,---(3)]]>r^k=r^-k=1MΣt=1M-kxtxt-k,k=0,1,2,3,...,p;t=0,1,2,3,...,M---(4)]]>M是大于p的自然数。
因此,根据上述的DVS模型,可以预测到下一时间间隔中的CPU负载值。当得到CPU在下一个时隙的负载预测值
以后,在步骤S160,就可以利用简单的查表的方法得到对应的频率/电压值。比如x^t+1=0.3]]>表示下个时间间隔CPU负载只有CPU以峰值频率运行时的0.3倍,因而可以从CPU厂商提供的电压-频率对应表得到相应的电压值。
此外,DVS是通过降低CPU电压/频率的方法节约能量的,因此就存在可能由于预测不准确或者过度调低电压而导致的CPU性能不够,从而导致应用程序无法按时完成。比如对于视频解码来说,该在某个时刻完成的一帧无法按时解码出来从而影响了播放效果。
因此,在本发明的第二实施例中,通过一个过载控制机制进行过度调整电压的控制以免对系统性能造成影响。图2示出了根据本发明第二实施例的节省处理器功耗的方法的详细流程图。
根据本发明第二实施例的方法的步骤S110~S150与根据本发明第一实施例的方法的步骤S210~S250相同,所以在此不对S210~S250重复描述。
在步骤S255,定义了补偿因子用于补偿预测的CPU负载,以控制对CPU电压的调整幅度。然后,在步骤S260,判断补偿因子在一段时间中是否剧烈变化时,即是否超过预定的阈值(如增加100%)。如果剧烈变化,就可以知道流的特性已经改变,该采样频率已经不合适了,以至于相应的DVS模型不再准确。这时,流程返回到步骤S210,进行与上述相同的过程。如果变化在可接受的范围内,则流程转到步骤S240,重复上述的过程。
具体而言,当预测得到了一个CPU预测值
以后,再由一个补偿因子λ对其进行补偿,以作为最后的预测值。本发明的第二实施例定义了两种补偿因子加性的和乘性的,然后控制补偿因子以便使得最后的视频效果(过调率)保持在一个预先设定或用户可以接受的范围内。
如下利用加性补偿因子对预测的CPU负载值进行补偿x^t+1=x^t+1+λ---(5)]]>如下利用乘性补偿因子对预测的CPU负载值进行补偿x^t+1=x^t+1/λ---(6)]]>其中补偿因子λ的控制是由一个PID控制器调节的,调节的方法如下λ=KPe+KI∫edt+KDdedt---(7)]]>
其中e是指统计得到的过调率和用户设定的过调率之间的偏差,KP,KI和KD分别表示比例系数,积分系数和微分系数。可以看出,当偏差e较大时,需要相应地加大或减小λ以使得过调率在设定范围内摆动。这里,过调率是指在n个时间间隔内,有多少个间隔由于将电压调得过低使得该在这个时间间隔内运行完的指令没有跑完。
此外,利用补偿因子,还可以很方便地检测出视频流特性的变化。比如当视频流改变时必定是一系列的特性都变化了,从而导致预测模型不再准确。这会导致预测误差增大从而补偿因子急剧增加(加性)或减小(乘性)以维持过调率不致增加太多。
这样,就可以知道系统特性变了,需要一个新模型或者需要新的采样频率了。从而,流程返回到步骤S210,进行与上述相同的过程。
以上所述,仅为本发明中的具体实施方式
,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变换或替换,都应涵盖在本发明的包含范围之内。因此,本发明的保护范围应该以权利要求
书的保护范围为准。
权利要求
1.一种节省处理器功耗的方法,包括步骤(1)对处理器的负载进行密集采样,以得到第一数目的处理器负载值;(2)对所述第一数目的处理器负载值进行傅立叶变换,以计算与幅度峰值相对应的频率和与该频率相对应的特征采样周期;(3)在当前时间间隔中以所述特征采样周期重新采样所述处理器的负载,以得到第二数目的处理器负载值;(4)基于所述第二数目的处理器负载值建立预测模型,以预测所述处理器在下一时间间隔中的处理器负载值;以及(5)根据所述预测的处理器负载值调节所述处理器的电压/频率。
2.如权利要求
1所述的方法,其特征在于,所述步骤(4)包括通过下面的线性模型由M个处理器负载值来预测所述处理器在下一时间间隔中的处理器负载值x^t+1=xt+Σi=1p(xt-i+1xt-i)φi;t=0,1,2,3,···,M]]>其中,p表示线性模型的阶数,系数φi可以利用Yule-Walker公式由当前时刻之前的由M个处理器负载值来估计。
3.如权利要求
1或2所述的方法,其特征在于,所述步骤(5)通过查表的方法来根据所述预测的处理器负载值调节所述处理器的电压/频率。
4.如权利要求
3所述的方法,其特征在于,在所述步骤(2),如下计算所述特征采样周期τ=(T*N/2)/fτ其中T表示密集采样的采样周期,N是所述的第一数目,而fτ是所述与幅度峰值相对应的频率。
5.一种节省处理器功耗的方法,包括步骤(1)对处理器的负载进行密集采样,以得到第一数目的处理器负载值;(2)对所述第一数目的处理器负载值进行傅立叶变换,以计算与幅度峰值相对应的频率和与该频率相对应的特征采样周期;(3)在当前时间间隔中以所述特征采样周期重新采样所述处理器的负载,以得到第二数目的处理器负载值;(4)基于所述第二数目的处理器负载值建立预测模型,以预测所述处理器在下一时间间隔中的处理器负载值;(5)用补偿因子补偿所述预测的处理器负载值;以及(6)根据所述补偿的处理器负载值调节所述处理器的电压/频率。
6.如权利要求
5所述的方法,其特征在于,还包括(7)如果所述补偿因子在一段时间中的变化大于预定的阈值,则执行重复所述步骤(1)~(6)。
7.如权利要求
6所述的方法,其特征在于,所述补偿因子是加性补偿因子λ,通过将所述加性补偿因子加在所述预测的处理器负载值上来进行所述补偿。
8.如权利要求
6所述的方法,其特征在于,所述补偿因子是乘性补偿因子λ,通过用所述乘性补偿因子除所述预测的处理器负载值来进行所述补偿。
9.如权利要求
7所述的方法,其特征在于,如下确定所述加性补偿因子λλ=KPe+KI∫edt+KDdedt]]>其中e表示统计得到的过调率和用户设定的过调率之间的偏差,KP,KI和KD分别表示比例系数,积分系数和微分系数。
10.如权利要求
8所述的方法,其特征在于,如下确定所述乘性补偿因子λλ=KPe+KI∫edt+KDdedt]]>其中e表示统计得到的过调率和用户设定的过调率之间的偏差,KP,KI和KD分别表示比例系数,积分系数和微分系数。
11.如权利要求
5所述的方法,其特征在于,所述步骤(4)包括通过下面的线性模型由M个处理器负载值来预测所述处理器负载值x^t+1=xt+Σi=1p(xt-i+1xt-i)φi;t=0,1,2,3,···,M]]>其中,p表示线性模型的阶数,系数φi可以利用Yule-Walker公式由当前时刻之前的由M个处理器负载值来估计。
12.如权利要求
11所述的方法,其特征在于,所述步骤(6)通过查表的方法来根据所述预测的处理器负载值调节所述处理器的电压/频率。
13.如权利要求
12所述的方法,其特征在于,在所述步骤(2),如下计算所述特征采样周期τ=(T*N/2)/fτ其中T表示密集采样的采样周期,N是所述的第一数目,而fτ是所述与幅度峰值相对应的频率。
专利摘要
公开了一种节省处理器功耗的方法,包括步骤(1)对处理器的负载进行密集采样,以得到第一数目的处理器负载值;(2)对第一数目的处理器负载值进行傅立叶变换,以计算与幅度峰值相对应的频率和与该频率相对应的特征采样周期;(3)在当前时间间隔中以特征采样周期重新采样处理器的负载,以得到第二数目的处理器负载值;(4)基于第二数目的处理器负载值建立预测模型,以预测处理器在下一时间间隔中的处理器负载值;以及(5)根据预测的处理器负载值调节处理器的电压/频率。利用本发明的方法,可以准确预测下一时间间隔中处理器的负载值,从而能够按照该负载值来调节处理器在下一时间间隔中的电压/频率。
文档编号G06F1/32GK1991687SQ200510135575
公开日2007年7月4日 申请日期2005年12月29日
发明者贺志强, 郭子华 申请人:联想(北京)有限公司导出引文BiBTeX, EndNote, RefMan
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1