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

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

Info

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
target program
target
frequency
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
Application number
CN2012103304955A
Other languages
English (en)
Inventor
王雷
李康
王刚
王欢
赵玉龙
王宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN2012103304955A priority Critical patent/CN102880275A/zh
Publication of CN102880275A publication Critical patent/CN102880275A/zh
Pending legal-status Critical Current

Links

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的电压和频率。
CN2012103304955A 2012-09-07 2012-09-07 一种针对周期性关键任务的电源管理装置及其方法 Pending CN102880275A (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110134215A (zh) * 2019-05-24 2019-08-16 广东中兴新支点技术有限公司 数据处理方法、装置、电子设备及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
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 国家信息及自动化研究院 计算机电源控制装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
Donyanavard et al. SPARTA: Runtime task allocation for energy efficient heterogeneous many-cores
US10289184B2 (en) Methods of achieving cognizant power management
Imes et al. POET: a portable approach to minimizing energy under soft real-time constraints
US7321942B2 (en) Performance counter for adding variable work increment value that is dependent upon clock frequency
Femal et al. Boosting data center performance through non-uniform power allocation
Chen et al. Energy-Aware Server Provisioning and Load Dispatching for Connection-Intensive Internet Services.
Ge et al. Performance-constrained distributed dvs scheduling for scientific applications on power-aware clusters
US7131015B2 (en) Performance level selection in a data processing system using a plurality of performance request calculating algorithms
WO2021233261A1 (zh) 一种多任务动态资源调度方法
CN104991830A (zh) 基于服务等级协议的yarn资源分配和节能调度方法及系统
US20120233609A1 (en) Optimizing virtual machine synchronization for application software
Nachiappan et al. Domain knowledge based energy management in handhelds
CN102004671A (zh) 一种云计算环境下数据中心基于统计模型的资源管理方法
WO2007072458A2 (en) Performance analysis based system level power management
Liu et al. Fastcap: An efficient and fair algorithm for power capping in many-core systems
Hou et al. ANT-Man: Towards agile power management in the microservice era
CN108845659B (zh) 一种功耗优先的嵌入式处理器实时任务分配方法
Li et al. Dynamic qos management for chip multiprocessors
Petrucci et al. Thread assignment optimization with real-time performance and memory bandwidth guarantees for energy-efficient heterogeneous multi-core systems
Zhou et al. Greengear: Leveraging and managing server heterogeneity for improving energy efficiency in green data centers
CN102880275A (zh) 一种针对周期性关键任务的电源管理装置及其方法
Chen et al. More bang for your buck: Boosting performance with capped power consumption
CN103092328A (zh) 一种基于磁盘休眠的计算机节能的方法
Imes et al. Portable multicore resource management for applications with performance constraints
CN114327023A (zh) 一种Kubernetes集群的节能方法、系统、计算机介质和电子设备

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