一种针对周期性关键任务的电源管理装置及其方法

文档序号:6376560阅读:112来源:国知局
专利名称:一种针对周期性关键任务的电源管理装置及其方法
技术领域
本发明涉及CPU电源管理的技术领域,具体是一种针对周期性关键任务的电源管理装置及其方法。
背景技术
能源效率是大量计算机系统首要考虑的因素。如今,移动设备中的电源使用时间,嵌入式设备在峰值负荷时的能源限制,都需要对电源的使用进行更好地管理,都需要在满足服务质量的条件下,保证系统正常运行,并且节省能源。随着嵌入式系统的应用范围增力口,对嵌入式系统的电源资源进行有效管理显得更为重要。现有的CPU电源管理机制,是利用之前一段时间的CPU利用率,然后预测下一阶段 时间CPU的使用情况,进而调节CPU的性能状态来节约电源。但是,CPU使用率与任务的关键性没有联系。因此,基于CPU使用率的预测有不确定性,可能导致关键进程的响应延迟。对于嵌入式的实时应用,预测失败是不可接受的。因为实时类的应用都有一个Deadline,错过Deadline,就意味着程序的运行异常。例如音频或视频帧的播放时间错过以后,用户就能明显地感觉到音频或视频的不连贯,这会极大地影响用户的体验。

发明内容
本发明提供了一种针对周期性关键任务的电源管理装置及其方法,目的是实现了对关键性周期任务的电源管理,在动态节约能源的同时,能够满足服务的性能要求,提供了高质量的电源管理服务。一种针对周期性关键任务的电源管理装置,包括如下部分心跳性能采集模块、系统参数调节模块以及状态分析和决策模块。心跳性能采集模块用于采集目标程序的性能,在目标程序的关键循环中设置心跳产生代码,每执行一次循环就产生一次心跳,采集一个周期内的心跳频率h,并将该心跳频率传送给状态分析和决策模块。所述的目标程序为周期性任务。所述的关键循环是指每执行一次循环,就能表示程序执行进度的前进的循环。状态分析和决策模块判断所接收到的目标程序的心跳频率h是否在该目标程序的目标心跳频率范围[Min,Max]内,若在,不传送信号给系统参数调节模块,若不在,传送调节系统参数的信号给系统参数调节模块。系统参数调节模块在接收到调节系统参数的信号后,采用采用动态电压速率调整技术调整CPU的电压和速率,具体是当h小于Min时,增加CPU的电压和频率,当h大于Max时,降低CPU的电压和频率。一种针对周期性关键任务的电源管理方法,包括如下步骤步骤I :心跳代码插入,具体是首先,在目标程序中找到关键循环,然后,在关键循环外初始化心跳数据结构,在关键循环里插入心跳产生代码,并在循环结束后,注销心跳数据结构;所述的心跳产生代码通过在目标程序的关键循环中设置时间戳实现;所述的目标程序为周期性任务;步骤2 :心跳性能采集,采集目标程序执行的时候产生的心跳频率h ;
步骤3 :状态分析和决策,判断所采集的目标程序的心跳频率h是否在该目标程序的目标心跳频率的范围[Min,Max]内,若在则不需要进行调整,结束本次过程;否则,执行步骤4 ;步骤4 :系统参数调节,采用动态电压速率调整技术调整CPU的电压和频率。当心跳频率h小于目标心跳频率的最小值Min时,增加CPU的电压和频率,若h大于目标心跳频率的最大值Max时,降低CPU的电压和频率。本发明的优点和积极效果在于本发明的电源管理装置及其方法,通过在目标程序中设置心跳产生代码,来获得程序的执行状态,通过对产生的心跳速率和目标心跳速率比较,来调节CPU的速率和电压,或者降 低目标程序的执行速度,使得在满足程序性能目标的前提下,更大程度地节约能源。相对于现有的CPU的电源管理机制,预测更加准确,更大程度地保证了嵌入式的实时应用的正常运行。


图I为本发明的电源管理装置的结构示意图;图2为本发明的电源管理方法的执行流程图;图3为向周期程序中插入心跳代码的示例图。
具体实施例方式下面结合附图来具体说明本发明的技术方案。本发明通过插入心跳代码监测程序的执行性能,从程序的角度反映程序的执行状态,根据程序的执行状态相应调整CPU的电压和频率。本发明所针对的目标程序为周期性的关键任务。在程序最外层的周期循环中插入心跳代码,来获取程序的准确执行状态。心跳是通过在周期性程序循环中插入代码来模拟程序的心跳,用来代表程序的不断执行。通过程序的目标性能与当前执行性能的比较,决定相应的电源管理调度策略。采用DVFS (动态电压速率调整)技术调整CPU的电压和频率,来达到节约电源的目的,在此基础上,保证程序的执行性能。本发明的针对周期性关键任务的电源管理装置及其方法首先检测程序的性能状态,来决定如何调整系统的电源状态。关键程序需要按照目标性能状态执行,当超过目标频率时候,降低CPU频率和电压来节约电源。在程序负载波动的情况下,当程序性能不能满足要求的时候,调整CPU的频率和电压,来影响程序性能,在满足性能的最低CPU频率状态下执行。如图I所示,本发明的电源管理装置主要包括如下几个模块心跳性能采集模块1,状态分析和决策模块2,以及系统参数调节模块3。心跳性能采集模块1,用于采集目标程序的性能。心跳性能采集模块I的实现原理是,要在目标程序中,插入心跳产生代码,心跳产生代码必须设置在目标程序运行过程中的关键循环当中,这样才可以准确得反映程序的执行进度,而且通过周期时间内产生的心跳,来反映程序当前的执行效率。关键循环是指每执行一次循环,就能表示程序执行进度的前进,一般是周期性程序的最外层循环。具体实现可以是在目标程序的最外层循环中设置时间戳,来获取目标程序的周期执行进度。通过度量周期时间内心跳产生的次数,即度量周期时间内关键循环的执行次数,获得心跳频率,可以简洁的使用心跳频率来表示当前目标程序的性能和执行进度。心跳性能采集模块I将获取的心跳频率传送给状态分析和决策模块2。将统计到的目标程序的性能信息,即心跳频率,也就是周期内采集的时间戳,保存到外部文件或者共享内存中,通过查看这些性能信息可监测目标程序的执行状态。状态分析和决策模块2,通过分析采集到的心跳信息,利用现有的性能调整策略调整性能与电源策略。将使用心跳性能采集模块I采集到的性能信息与提前设定好的目标性能进行比较,决定下一个计算周期的激励策略,来满足目标性能。假如h是当前观测到的目标程序的心跳频率,同时[Min, Max]是目标程序的目标心跳频率范围。同时各种激励策略能够提高执行频率来满足目标心跳频率,当h在该目标程序的目标心跳频率的范围内时,说明目标程序的执行速度已经满足了用户的请求,则继续保持当前的执行状态。如果不在目标心跳频率范围之内,此时发送一个调节系统参数的信号给系统参数调节模块3。系统参数调节模块3,主要采用DVFS技术,调整CPU的频率和电压,通过调整CPU的电压和频率,相应影响目标程序的执行速度,若h大于Max,就降低CPU的电压和频率,若 h小于Min,则增加CPU的电压和频率。比如,降低了 CPU的电压和频率时,减少分配给该目标程序的计算节点数目,使得目标程序的执行速度降低,达到节约电源以及改变程序性能 状态的目的。现有的常用CPU体系结构均支持DVFS技术,例如x86,arm, powerpc等。只有可以有效调整系统电源使用的情况,才能最终达到节约电源的目的。而节约电源肯定会在一定程度上影响程序的执行效率。如图2所示,为本发明的电源管理方法的步骤。步骤I,心跳代码插入。首先,需要在目标程序中找到关键循环。并在关键循环的外边初始化好心跳数据结构,然后,在关键循环里边插入心跳产生代码,在循环中周期性地产生心跳。并在循环结束后,注销心跳数据结构。如图3所示,为插入心跳代码的一个示例。图3中,找到目标程序void target_foo ()的关键循环while (I),在while (I)的外边初始化心跳数据结构heartbeat_init (&heart),在while (I)的程序里面插入心跳率的获取和记录操作heartbeat (&heart, i++),在循环结束后,通过构析函数 heartbeat_f inish (&heart)注销心跳数据结构。步骤2,心跳性能采集。通过在待监测的目标程序中插入心跳产生代码,可以在目标程序执行的时候产生的心跳频率,并根据心跳频率获得目标程序的执行性能,即每秒钟目标程序执行时产生的心跳数目,也可以认为是每秒钟最外层循环执行的次数。在实现的过程中,每个插入程序的心跳产生代码的实质就是记录一个时间戳。然后通过采集程序关键循环当中的时间戳,来获取程序实际的执行进度。然后,通过度量两次相邻循环的间隔,可以简洁有效的获取程序当前的性能以及执行进度。对于循环执行较快的程序,可以划定一个窗口,规定一个窗口大小M,只有当运行M次循环之后,再采集时间点。这样可以避免过多采集数据对目标程序带来干扰。心跳性能采集模块I实现了步骤I和步骤2的过程。步骤3,状态分析和决策。通过分析采集到的心跳频率和操作系统的当前状态,利用现有的性能调整策略调整性能与电源。将使用心跳性能采集模块I采集到的性能信息与提前设定好的目标性能进行比较,决定下一个计算周期的激励策略,来满足目标性能。假如h是当前观测到的心跳频率,同时[Min,Max]是目标程序的目标心跳频率范围。当h在该目标程序的目标心跳频率的范围内时,说明目标程序的执行速度已经满足了用户的要求,不需要进行调整,结束本次过程。若不在,则需要进行调整,执行步骤4。状态分析和决策模块2实现了步骤3状态分析和决策的过程。步骤4,系统参数调节。系统参数调节模块3主要实现了通过调整CPU频率和电压来达到节约电源和调整程序性能的目的。目前基本米用 ACPI(Advanced Configuration and Power Management Interface)来实现电源管理接口,ACPI是1997年由Intel、Microsoft、Toshiba所共同制定提供操作系统应用程序管理所有电源管理接口。设置五个CPU工作状态Ρ(ΓΡ4。Pl CPU初始的默认状态,在这个状态下CPU运行不受限制,目标:As fast as it can。PO :—种保证最高性能的状态,在这个状态下CPU使用超频或其他技术提高运算速度,目标=Faster than Pl0 P2 :略低于Pl状态的CPU运行状态,降低CPU运算速度,有一定的节能效果,目标Slower than Pl。P3 :低于P2的状态,用于节能,目标Slower than P2。P4 :类似P3,但略低于P3,目标是Slower than P3。五个CPU状态的设置主要是为了在满足性能的同时,达到一定的节省能源消耗的作用。在需要对CPU频率和电压进行调整时,通常从一个CPU频率状态调整到相邻的状态。若h大于Max,就降低CPU的电压和频率,若h小于Min,则增加CPU频率。例如当h>Max时,降低CPU的电压和频率,同时调用一些策略来降低目标程序的执行速度,比如减少分配给该目标程序的节点数目。通过使用DFVS技术降低CPU的电压和频率,在满足程序性能目标的前提下带来能源的节约。针对不同的目标程序,设定有不同的目标心跳频率的范围,例如x264视频的处理,帧速一般达到24帧/秒就可以满足用户的体验。因此,设置[min, max]区间为[24,30]。CPU初始频率从较低的频率,如P5开始执行,如果不能满足心跳频率的要求,那么就会提高到P4,直到心跳频率处在设置的目标心跳频率范围内。大于目标心跳频率范围,就降低CPU频率。小于目标心跳频率范围,则增加CPU频率。然后再进行心跳频率的采集,进行下一个周期的判断。当根据分析决策得到的系统参数调节指令得到执行,CPU频率以及CPU的能耗状态会得到变化。进而,影响到目标程序的执行速度。执行速度将会反应到目标程序的心跳率上。目标程序的心跳频率采集模块将会继续捕捉心跳,直到该目标程序结束。本发明的电源管理装置及其方法,通过监控程序的执行状态,从而动态地配置资源,不仅可以使用现有策略节约电源,而且不影响程序的实时性。并且能够在服务负载高峰的时期,优化资源配置,满足关键进程的实时性响应。本发明的电源管理装置及其方法可以应用于嵌入式系统的电源管理,满足实时性较强任务的电源管理需求,并在满足实时任务性能的同时节约电源。
权利要求
1.一种针对周期性关键任务的电源管理装置,其特征在于,包括心跳性能采集模块、系统参数调节模块以及状态分析和决策模块;心跳性能采集模块用于采集目标程序的性能,在目标程序的关键循环中设置心跳产生代码,每执行一次循环就产生一次心跳,采集一个周期内的心跳频率h,并将该心跳频率传送给状态分析和决策模块,所述的目标程序为周期性任务,所述的关键循环是指每执行一次循环,就能表示目标程序执行进度的前进;状态分析和决策模块判断所接收到的目标程序的心跳频率h是否在该目标程序的目标心跳频率的范围[Min,Max]内,若在,不传送信号给系统参数调节模块,若不在,传送调节系统参数的信号给系统参数调节模块;系统参数调节模块在接收到调节系统参数的信号后,采用动态电压速率调整技术调整CPU的电压和频率,具体是当h小于Min时,增加CPU的电压和频率,当h大于Max时,降低CPU的电压和频率。
2.根据权利要求I所述的电源管理装置,其特征在于,所述的心跳性能采集模块,通过在目标程序的最外层循环中设置时间戳来实现心跳产生代码。
3.一种针对周期性关键任务的电源管理方法,其特征在于,该方法包括如下步骤 步骤I :心跳代码插入,具体是首先,在目标程序中找到关键循环,然后,在关键循环外初始化心跳数据结构,在关键循环里插入心跳产生代码,并在循环结束后,注销心跳数据结构;所述的心跳产生代码通过在目标程序的关键循环中设置时间戳实现,每执行一次关键循环就产生一次心跳;所述的目标程序为周期性任务; 步骤2 :心跳性能采集,采集目标程序执行的时候产生的心跳频率h ; 步骤3 :状态分析和决策,判断所采集的目标程序的心跳频率h是否在该目标程序的目标心跳频率的范围[Min,Max]内,若在则不需要进行调整,结束本次过程;否则,执行步骤.4 ; 步骤4 :系统参数调节,采用动态电压速率调整技术调整CPU的电压和频率,当心跳频率h小于目标心跳频率的最小值Min时,增加CPU的电压和频率,若h大于目标心跳频率的最大值Max时,降低CPU的电压和频率。
全文摘要
本发明提供了一种电源管理装置及其方法,主要用于移动设备和嵌入式设备中。该装置通过心跳性能采集模块在周期性的目标程序中设置心跳产生代码,并采集心跳频率,状态分析和决策模块通过将采集的心跳频率与操作系统的目标心跳速率比较,来决定性能调整策略,通过系统参数调节模块来完成CPU频率和电压的调节。该方法同该装置,通过设置的心跳产生代码来采集心跳频率,对比心跳频率和目标心跳速率来调节CPU频率和电压,或者降低目标程序的执行速度。本发明方法实现了对关键性周期任务的电源管理,在动态节约能源的同时能够满足服务的性能要求,提供了高质量的电源管理服务。
文档编号G06F1/26GK102880275SQ20121033049
公开日2013年1月16日 申请日期2012年9月7日 优先权日2012年9月7日
发明者王雷, 李康, 王刚, 王欢, 赵玉龙, 王宇 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1