CN102880275A - 一种针对周期性关键任务的电源管理装置及其方法 - Google Patents
一种针对周期性关键任务的电源管理装置及其方法 Download PDFInfo
- Publication number
- CN102880275A CN102880275A CN2012103304955A CN201210330495A CN102880275A CN 102880275 A CN102880275 A CN 102880275A CN 2012103304955 A CN2012103304955 A CN 2012103304955A CN 201210330495 A CN201210330495 A CN 201210330495A CN 102880275 A CN102880275 A CN 102880275A
- Authority
- CN
- China
- Prior art keywords
- heartbeat
- frequency
- target program
- target
- cpu
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 230000000737 periodic effect Effects 0.000 title claims abstract description 11
- 238000004458 analytical method Methods 0.000 claims abstract description 18
- 230000001121 heart beat frequency Effects 0.000 claims abstract 14
- 238000007726 management method Methods 0.000 claims description 13
- 238000005516 engineering process Methods 0.000 claims description 8
- 238000003780 insertion Methods 0.000 claims description 3
- 230000037431 insertion Effects 0.000 claims description 3
- 230000003247 decreasing effect Effects 0.000 claims 1
- 230000009897 systematic effect Effects 0.000 description 11
- 230000001105 regulatory effect Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 3
- 230000000747 cardiac effect Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000004134 energy conservation Methods 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
Images
Landscapes
- Power Sources (AREA)
Abstract
本发明提供了一种电源管理装置及其方法,主要用于移动设备和嵌入式设备中。该装置通过心跳性能采集模块在周期性的目标程序中设置心跳产生代码,并采集心跳频率,状态分析和决策模块通过将采集的心跳频率与操作系统的目标心跳速率比较,来决定性能调整策略,通过系统参数调节模块来完成CPU频率和电压的调节。该方法同该装置,通过设置的心跳产生代码来采集心跳频率,对比心跳频率和目标心跳速率来调节CPU频率和电压,或者降低目标程序的执行速度。本发明方法实现了对关键性周期任务的电源管理,在动态节约能源的同时能够满足服务的性能要求,提供了高质量的电源管理服务。
Description
技术领域
本发明涉及CPU电源管理的技术领域,具体是一种针对周期性关键任务的电源管理装置及其方法。
背景技术
能源效率是大量计算机系统首要考虑的因素。如今,移动设备中的电源使用时间,嵌入式设备在峰值负荷时的能源限制,都需要对电源的使用进行更好地管理,都需要在满足服务质量的条件下,保证系统正常运行,并且节省能源。随着嵌入式系统的应用范围增加,对嵌入式系统的电源资源进行有效管理显得更为重要。
现有的CPU电源管理机制,是利用之前一段时间的CPU利用率,然后预测下一阶段时间CPU的使用情况,进而调节CPU的性能状态来节约电源。但是,CPU使用率与任务的关键性没有联系。因此,基于CPU使用率的预测有不确定性,可能导致关键进程的响应延迟。对于嵌入式的实时应用,预测失败是不可接受的。因为实时类的应用都有一个Deadline,错过Deadline,就意味着程序的运行异常。例如音频或视频帧的播放时间错过以后,用户就能明显地感觉到音频或视频的不连贯,这会极大地影响用户的体验。
发明内容
本发明提供了一种针对周期性关键任务的电源管理装置及其方法,目的是:实现了对关键性周期任务的电源管理,在动态节约能源的同时,能够满足服务的性能要求,提供了高质量的电源管理服务。
一种针对周期性关键任务的电源管理装置,包括如下部分:心跳性能采集模块、系统参数调节模块以及状态分析和决策模块。心跳性能采集模块用于采集目标程序的性能,在目标程序的关键循环中设置心跳产生代码,每执行一次循环就产生一次心跳,采集一个周期内的心跳频率h,并将该心跳频率传送给状态分析和决策模块。所述的目标程序为周期性任务。所述的关键循环是指每执行一次循环,就能表示程序执行进度的前进的循环。状态分析和决策模块判断所接收到的目标程序的心跳频率h是否在该目标程序的目标心跳频率范围[Min,Max]内,若在,不传送信号给系统参数调节模块,若不在,传送调节系统参数的信号给系统参数调节模块。系统参数调节模块在接收到调节系统参数的信号后,采用采用动态电压速率调整技术调整CPU的电压和速率,具体是:当h小于Min时,增加CPU的电压和频率,当h大于Max时,降低CPU的电压和频率。
一种针对周期性关键任务的电源管理方法,包括如下步骤:
步骤1:心跳代码插入,具体是:首先,在目标程序中找到关键循环,然后,在关键循环外初始化心跳数据结构,在关键循环里插入心跳产生代码,并在循环结束后,注销心跳数据结构;所述的心跳产生代码通过在目标程序的关键循环中设置时间戳实现;所述的目标程序为周期性任务;
步骤2:心跳性能采集,采集目标程序执行的时候产生的心跳频率h;
步骤3:状态分析和决策,判断所采集的目标程序的心跳频率h是否在该目标程序的目标心跳频率的范围[Min,Max]内,若在则不需要进行调整,结束本次过程;否则,执行步骤4;
步骤4:系统参数调节,采用动态电压速率调整技术调整CPU的电压和频率。当心跳频率h小于目标心跳频率的最小值Min时,增加CPU的电压和频率,若h大于目标心跳频率的最大值Max时,降低CPU的电压和频率。
本发明的优点和积极效果在于:本发明的电源管理装置及其方法,通过在目标程序中设置心跳产生代码,来获得程序的执行状态,通过对产生的心跳速率和目标心跳速率比较,来调节CPU的速率和电压,或者降低目标程序的执行速度,使得在满足程序性能目标的前提下,更大程度地节约能源。相对于现有的CPU的电源管理机制,预测更加准确,更大程度地保证了嵌入式的实时应用的正常运行。
附图说明
图1为本发明的电源管理装置的结构示意图;
图2为本发明的电源管理方法的执行流程图;
图3为向周期程序中插入心跳代码的示例图。
具体实施方式
下面结合附图来具体说明本发明的技术方案。
本发明通过插入心跳代码监测程序的执行性能,从程序的角度反映程序的执行状态,根据程序的执行状态相应调整CPU的电压和频率。本发明所针对的目标程序为周期性的关键任务。在程序最外层的周期循环中插入心跳代码,来获取程序的准确执行状态。心跳是通过在周期性程序循环中插入代码来模拟程序的心跳,用来代表程序的不断执行。通过程序的目标性能与当前执行性能的比较,决定相应的电源管理调度策略。采用DVFS(动态电压速率调整)技术调整CPU的电压和频率,来达到节约电源的目的,在此基础上,保证程序的执行性能。
本发明的针对周期性关键任务的电源管理装置及其方法首先检测程序的性能状态,来决定如何调整系统的电源状态。关键程序需要按照目标性能状态执行,当超过目标频率时候,降低CPU频率和电压来节约电源。在程序负载波动的情况下,当程序性能不能满足要求的时候,调整CPU的频率和电压,来影响程序性能,在满足性能的最低CPU频率状态下执行。
如图1所示,本发明的电源管理装置主要包括如下几个模块:心跳性能采集模块1,状态分析和决策模块2,以及系统参数调节模块3。
心跳性能采集模块1,用于采集目标程序的性能。心跳性能采集模块1的实现原理是,要在目标程序中,插入心跳产生代码,心跳产生代码必须设置在目标程序运行过程中的关键循环当中,这样才可以准确得反映程序的执行进度,而且通过周期时间内产生的心跳,来反映程序当前的执行效率。关键循环是指每执行一次循环,就能表示程序执行进度的前进,一般是周期性程序的最外层循环。具体实现可以是在目标程序的最外层循环中设置时间戳,来获取目标程序的周期执行进度。通过度量周期时间内心跳产生的次数,即度量周期时间内关键循环的执行次数,获得心跳频率,可以简洁的使用心跳频率来表示当前目标程序的性能和执行进度。心跳性能采集模块1将获取的心跳频率传送给状态分析和决策模块2。将统计到的目标程序的性能信息,即心跳频率,也就是周期内采集的时间戳,保存到外部文件或者共享内存中,通过查看这些性能信息可监测目标程序的执行状态。
状态分析和决策模块2,通过分析采集到的心跳信息,利用现有的性能调整策略调整性能与电源策略。将使用心跳性能采集模块1采集到的性能信息与提前设定好的目标性能进行比较,决定下一个计算周期的激励策略,来满足目标性能。假如h是当前观测到的目标程序的心跳频率,同时[Min,Max]是目标程序的目标心跳频率范围。同时各种激励策略能够提高执行频率来满足目标心跳频率,当h在该目标程序的目标心跳频率的范围内时,说明目标程序的执行速度已经满足了用户的请求,则继续保持当前的执行状态。如果不在目标心跳频率范围之内,此时发送一个调节系统参数的信号给系统参数调节模块3。
系统参数调节模块3,主要采用DVFS技术,调整CPU的频率和电压,通过调整CPU的电压和频率,相应影响目标程序的执行速度,若h大于Max,就降低CPU的电压和频率,若h小于Min,则增加CPU的电压和频率。比如,降低了CPU的电压和频率时,减少分配给该目标程序的计算节点数目,使得目标程序的执行速度降低,达到节约电源以及改变程序性能状态的目的。现有的常用CPU体系结构均支持DVFS技术,例如x86,arm,powerpc等。只有可以有效调整系统电源使用的情况,才能最终达到节约电源的目的。而节约电源肯定会在一定程度上影响程序的执行效率。
如图2所示,为本发明的电源管理方法的步骤。
步骤1,心跳代码插入。
首先,需要在目标程序中找到关键循环。并在关键循环的外边初始化好心跳数据结构,然后,在关键循环里边插入心跳产生代码,在循环中周期性地产生心跳。并在循环结束后,注销心跳数据结构。如图3所示,为插入心跳代码的一个示例。图3中,找到目标程序voidtarget_foo()的关键循环while(1),在while(1)的外边初始化心跳数据结构heartbeat_init(&heart),在while(1)的程序里面插入心跳率的获取和记录操作heartbeat(&heart,i++),在循环结束后,通过构析函数heartbeat_finish(&heart)注销心跳数据结构。
步骤2,心跳性能采集。
通过在待监测的目标程序中插入心跳产生代码,可以在目标程序执行的时候产生的心跳频率,并根据心跳频率获得目标程序的执行性能,即每秒钟目标程序执行时产生的心跳数目,也可以认为是每秒钟最外层循环执行的次数。
在实现的过程中,每个插入程序的心跳产生代码的实质就是记录一个时间戳。然后通过采集程序关键循环当中的时间戳,来获取程序实际的执行进度。然后,通过度量两次相邻循环的间隔,可以简洁有效的获取程序当前的性能以及执行进度。对于循环执行较快的程序,可以划定一个窗口,规定一个窗口大小M,只有当运行M次循环之后,再采集时间点。这样可以避免过多采集数据对目标程序带来干扰。
心跳性能采集模块1实现了步骤1和步骤2的过程。
步骤3,状态分析和决策。
通过分析采集到的心跳频率和操作系统的当前状态,利用现有的性能调整策略调整性能与电源。将使用心跳性能采集模块1采集到的性能信息与提前设定好的目标性能进行比较,决定下一个计算周期的激励策略,来满足目标性能。假如h是当前观测到的心跳频率,同时[Min,Max]是目标程序的目标心跳频率范围。当h在该目标程序的目标心跳频率的范围内时,说明目标程序的执行速度已经满足了用户的要求,不需要进行调整,结束本次过程。若不在,则需要进行调整,执行步骤4。状态分析和决策模块2实现了步骤3状态分析和决策的过程。
步骤4,系统参数调节。
系统参数调节模块3主要实现了通过调整CPU频率和电压来达到节约电源和调整程序性能的目的。
目前基本采用ACPI(Advanced Configuration and Power Management Interface)来实现电源管理接口,ACPI是1997年由Intel、Microsoft、Toshiba所共同制定提供操作系统应用程序管理所有电源管理接口。
设置五个CPU工作状态:P0~P4。P1:CPU初始的默认状态,在这个状态下CPU运行不受限制,目标:As fast as it can。P0:一种保证最高性能的状态,在这个状态下CPU使用超频或其他技术提高运算速度,目标:Faster than P1。P2:略低于P1状态的CPU运行状态,降低CPU运算速度,有一定的节能效果,目标:Slower than P1。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的能耗状态会得到变化。进而,影响到目标程序的执行速度。执行速度将会反应到目标程序的心跳率上。目标程序的心跳频率采集模块将会继续捕捉心跳,直到该目标程序结束。
本发明的电源管理装置及其方法,通过监控程序的执行状态,从而动态地配置资源,不仅可以使用现有策略节约电源,而且不影响程序的实时性。并且能够在服务负载高峰的时期,优化资源配置,满足关键进程的实时性响应。本发明的电源管理装置及其方法可以应用于嵌入式系统的电源管理,满足实时性较强任务的电源管理需求,并在满足实时任务性能的同时节约电源。
Claims (3)
1.一种针对周期性关键任务的电源管理装置,其特征在于,包括心跳性能采集模块、系统参数调节模块以及状态分析和决策模块;心跳性能采集模块用于采集目标程序的性能,在目标程序的关键循环中设置心跳产生代码,每执行一次循环就产生一次心跳,采集一个周期内的心跳频率h,并将该心跳频率传送给状态分析和决策模块,所述的目标程序为周期性任务,所述的关键循环是指每执行一次循环,就能表示目标程序执行进度的前进;状态分析和决策模块判断所接收到的目标程序的心跳频率h是否在该目标程序的目标心跳频率的范围[Min,Max]内,若在,不传送信号给系统参数调节模块,若不在,传送调节系统参数的信号给系统参数调节模块;系统参数调节模块在接收到调节系统参数的信号后,采用动态电压速率调整技术调整CPU的电压和频率,具体是:当h小于Min时,增加CPU的电压和频率,当h大于Max时,降低CPU的电压和频率。
2.根据权利要求1所述的电源管理装置,其特征在于,所述的心跳性能采集模块,通过在目标程序的最外层循环中设置时间戳来实现心跳产生代码。
3.一种针对周期性关键任务的电源管理方法,其特征在于,该方法包括如下步骤:
步骤1:心跳代码插入,具体是:首先,在目标程序中找到关键循环,然后,在关键循环外初始化心跳数据结构,在关键循环里插入心跳产生代码,并在循环结束后,注销心跳数据结构;所述的心跳产生代码通过在目标程序的关键循环中设置时间戳实现,每执行一次关键循环就产生一次心跳;所述的目标程序为周期性任务;
步骤2:心跳性能采集,采集目标程序执行的时候产生的心跳频率h;
步骤3:状态分析和决策,判断所采集的目标程序的心跳频率h是否在该目标程序的目标心跳频率的范围[Min,Max]内,若在则不需要进行调整,结束本次过程;否则,执行步骤4;
步骤4:系统参数调节,采用动态电压速率调整技术调整CPU的电压和频率,当心跳频率h小于目标心跳频率的最小值Min时,增加CPU的电压和频率,若h大于目标心跳频率的最大值Max时,降低CPU的电压和频率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012103304955A CN102880275A (zh) | 2012-09-07 | 2012-09-07 | 一种针对周期性关键任务的电源管理装置及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012103304955A CN102880275A (zh) | 2012-09-07 | 2012-09-07 | 一种针对周期性关键任务的电源管理装置及其方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102880275A true CN102880275A (zh) | 2013-01-16 |
Family
ID=47481641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012103304955A Pending CN102880275A (zh) | 2012-09-07 | 2012-09-07 | 一种针对周期性关键任务的电源管理装置及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102880275A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134215A (zh) * | 2019-05-24 | 2019-08-16 | 广东中兴新支点技术有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090135752A1 (en) * | 2007-11-27 | 2009-05-28 | Motorola Inc. | A wirelesss communication device and method |
CN101689071A (zh) * | 2005-10-31 | 2010-03-31 | 高通股份有限公司 | 电子设备的自适应电压定标 |
CN102378949A (zh) * | 2009-03-31 | 2012-03-14 | 国家信息及自动化研究院 | 计算机电源控制装置 |
-
2012
- 2012-09-07 CN CN2012103304955A patent/CN102880275A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101689071A (zh) * | 2005-10-31 | 2010-03-31 | 高通股份有限公司 | 电子设备的自适应电压定标 |
US20090135752A1 (en) * | 2007-11-27 | 2009-05-28 | Motorola Inc. | A wirelesss communication device and method |
CN102378949A (zh) * | 2009-03-31 | 2012-03-14 | 国家信息及自动化研究院 | 计算机电源控制装置 |
Non-Patent Citations (2)
Title |
---|
HENRY HOFFMANN等: "Application Heartbeats:A Generic Interface for Specifying Program Performance and Goals in Autonomous Computing Environments", 《THE 7TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTONOMOUS COMPUTING AND COMMUNICATIONS》 * |
SUNG-YONG BANG等: "Run-Time Adaptive Workload Estimation for Dynamic Voltage Scaling", 《IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134215A (zh) * | 2019-05-24 | 2019-08-16 | 广东中兴新支点技术有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
CN110134215B (zh) * | 2019-05-24 | 2021-08-13 | 广东中兴新支点技术有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021233261A1 (zh) | 一种多任务动态资源调度方法 | |
US10289184B2 (en) | Methods of achieving cognizant power management | |
US7321942B2 (en) | Performance counter for adding variable work increment value that is dependent upon clock frequency | |
US10261818B2 (en) | Optimizing virtual machine synchronization for application software | |
US7131015B2 (en) | Performance level selection in a data processing system using a plurality of performance request calculating algorithms | |
Nachiappan et al. | Domain knowledge based energy management in handhelds | |
JP2009521056A (ja) | パフォーマンス解析に基づくシステムレベルの電力管理 | |
Hou et al. | ANT-Man: Towards agile power management in the microservice era | |
Chen et al. | More bang for your buck: Boosting performance with capped power consumption | |
Zhou et al. | Greengear: Leveraging and managing server heterogeneity for improving energy efficiency in green data centers | |
CN102880275A (zh) | 一种针对周期性关键任务的电源管理装置及其方法 | |
Petrucci et al. | Thread assignment optimization with real-time performance and memory bandwidth guarantees for energy-efficient heterogeneous multi-core systems | |
CN116028193B (zh) | 一种混部集群的大数据任务动态高能效调度方法和系统 | |
Imes et al. | Portable multicore resource management for applications with performance constraints | |
CN114327023A (zh) | 一种Kubernetes集群的节能方法、系统、计算机介质和电子设备 | |
Gaspar et al. | Performance-aware task management and frequency scaling in embedded systems | |
Sethi | Learning energy-aware transaction scheduling in database systems | |
Dayapule et al. | Powerstar: Improving power efficiency in heterogenous processors for bursty workloads with approximate computing | |
Kim et al. | Power-Aware Resource Management Techniques for Low-Power Embedded Systems. | |
Ellis | Controlling Energy Demand in Mobile Computing Systems | |
Ghiasi et al. | Cpu packing for multiprocessor power reduction | |
Lee et al. | EANeM: Energy-aware network stack management for mobile devices | |
Hung et al. | Energy-Efficient Communications for Improving Timely Progress of Intermittent-Powered BLE Devices | |
Rusu et al. | Integrated cpu and l2 cache frequency/voltage scaling using supervised learning | |
CN118244876A (zh) | 处理器功耗控制方法、处理器及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130116 |