CN102520782A - 基于处理器核数自动调节的电源管理方法 - Google Patents

基于处理器核数自动调节的电源管理方法 Download PDF

Info

Publication number
CN102520782A
CN102520782A CN2011104202511A CN201110420251A CN102520782A CN 102520782 A CN102520782 A CN 102520782A CN 2011104202511 A CN2011104202511 A CN 2011104202511A CN 201110420251 A CN201110420251 A CN 201110420251A CN 102520782 A CN102520782 A CN 102520782A
Authority
CN
China
Prior art keywords
nuclear
power supply
state
check
processor
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
CN2011104202511A
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.)
JIANGSU LEMOTE TECHNOLOGY Corp Ltd
Original Assignee
JIANGSU LEMOTE TECHNOLOGY Corp Ltd
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 JIANGSU LEMOTE TECHNOLOGY Corp Ltd filed Critical JIANGSU LEMOTE TECHNOLOGY Corp Ltd
Priority to CN2011104202511A priority Critical patent/CN102520782A/zh
Publication of CN102520782A publication Critical patent/CN102520782A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Power Sources (AREA)

Abstract

本发明公开了一种基于处理器核数自动调节的电源管理方法,在多核平台上,当系统负载大于100%时,采用CPU自动插拔机制对处理器核数进行调节。调节机制如下:系统负载>(核数-1)+上调阈值,增核;系统负载<(核数-1)-下调阈值,减核。本发明给多核平台带来更好的节能效果,和已有的电源管理方法完美协调,不存在功能冲突,并且有着基本不重叠的使用范围。

Description

基于处理器核数自动调节的电源管理方法
技术领域
本发明涉及一种电源管理方法,特别是一种基于处理器核数自动调节的电源管理方法。
背景技术
电源管理是计算机操作系统的一个重要组件,其根本目的是节能并且不影响性能。这在通过电池供电的笔记本电脑、平板电脑等设备上显得尤为重要。通常来说,电源管理的方法策略主要包括三个方面:运行时电源管理,待机管理,以及休眠管理。
ACPI(Advanced Configuration Power Interface,高级电源配置接口)是一个电源管理规范,其实现需要软件、硬件和固件的高度协作配合。图1是ACPI所定义的各种电源状态,详细解释如下:
1,睡眠状态与全局状态:睡眠状态中的计算机具有很低的功耗,可以接近于零。ACPI定义了6中睡眠状态,S0~S5,值越大睡眠越深,S0是正常运行,S5是软关机。另外还定义了G0~G3四种全局状态,其中G0对应S0,G1对应S1到S4,G2对应S5,G3是彻底的硬关机,切断一切电源。
2,CPU状态与设备状态:当CPU或者I/O设备空闲时,可以让它们单独进入某种程度的低功耗状态或者停止运行的电源状态。而这时整个系统还是处于S0。这些状态在ACPI里面称为C状态(也称Cx或C-State,用于CPU)或D状态(也称Dx或D-State,用于设备),从C0/D0直到Cn/Dn,n越大表示关闭的子部件越多,功耗越低。
3,性能状态:在系统的负载不是很高时,可以让CPU或设备处于低于峰值的某种较低性能状态,较低的性能也意味着较低的功耗。ACPI定义的性能状态称为P状态(也称Px或P-State),从P0直到Pn,n越大表示性能和功耗越低。所有的P状态都是C0/D0的子状态。
4,发热状态:当系统出现过热状态时,可以改变系统状态减少发热(被动散热),或者开启风扇等设备进行散热(主动散热)。被动散热可以通过调节P状态实现(这种方式叫TM2),如果到了功耗最低的P状态仍然不够,可以调节T状态(屏蔽部分时钟周期)进一步降低功耗(这种方式叫TM1),从T0到Tn,n值越大功耗越低。
Linux是一种操作系统内核,实现了如下一些电源管理方法:
A、基本功能管理:如关机,重启等。
B、待机管理:待机分两种,浅待机和深待机。浅待机通常叫Standby,对应ACPI S1;深待机通常叫Suspend To RAM(挂起到内存),对应ACPI S3。两者的特征比较如下:
浅待机:CPU状态置为最深的Cx,大部分设备状态置为最深的Dx(除了用于唤醒的设备),内存处于正常工作状态。功耗为开机状态的10%~20%,唤醒时间1~2秒。可通过任意预设的设备唤醒(如键盘)。
深待机:CPU和外设全部断电,内存供电但处于低耗能的自刷新状态(内容保持不变)。功耗为开机状态的1%左右,唤醒时间5~8秒。必须通过电源按键唤醒。
C、休眠管理:即Hibernation,也叫Suspend To Disk(挂起到硬盘),对应ACPI S4。将系统状态全部保存到硬盘以后,切断电源。功耗跟软关机相同(只有电源适配器等部件供电)。
D、运行时电源管理:系统运行时相当于ACPI S0。电源管理方法可以利用硬件提供的Cx、Dx、Px和Tx等特征。
CPU工作态电源管理:在Linux内核中称为CPUFreq子系统,是利用P-State(电压/频率调节)以达到节能目的的电源管理方法。Px状态间的切换有着极低的延迟,通常感觉不到。CPUFreq基本原则是根据当前系统负载来选择最合适的P-State。
CPU空闲态电源管理:在Linux内核中称为CPUIdle子系统,是利用C-State(暂停流水线、关闭时钟)以达到节能目的的电源管理方法。C-State是CPU停止工作的状态,不执行任何指令,有远低于工作状态的功耗,但是与工作状态间切换时有一定的延迟;越深的C-State有越低的功耗和越长的延迟,将CPU从某种C-State唤醒回到到工作态的事件叫Cx阻断事件(通常是硬件中断)。空闲态的电源管理的实现方式是采用一定的策略,能够比较精确的预测空闲状态的持续时间,而选择一个比较合适的C-State进入。
设备电源管理:利用D-State来降低计算机运行过程中外部设备的功耗。因为不会所有的外设同时出于工作状态,因此关闭处于非活动状态的设备来达到省电的目的。D-State跟CPU的C-State类似,越深的D状态具有越低的功耗,但也有着更长的唤醒时间。通常来说,D3代表完全关闭,D0代表正常工作,其他均为中间状态。D状态管理类似于C状态,根据预测的空闲时间来选择合适的D状态,尽量达到省电而不影响性能的目的。
在一些多核平台上,几个核之间存在依赖,比如每个核的频率、电压、暂停状态(相当于ACPI C/P状态)不能单独调节。这种情况下CPUFreq/CPUIdle要么效果不明显、要么影响性能。
发明内容
本发明所要解决的技术问题是提供一种利用了CPU热插拔机制,基于处理器核数自动调节的电源管理方法。CPU热插拔机制,即在系统运行过程中增减CPU核数,也被称为CPU自动插拔(CPUAutoplug)。
为了解决上述的技术问题,本发明的技术方案是:一种基于处理器核数自动调节的电源管理方法,在多核平台上,当系统负载大于100%时,采用CPU热插拔机制对处理器核数进行调节,调节机制如下:
系统负载>(核数-1)+上调阈值,增核;
系统负载<(核数-1)-下调阈值,减核。
上调阀值、下调阀值可视具体的情况来设定,例如可以将上调阀值定为95%,下调阀值定为10%。
处理器核数调节涉及到任务迁移,开/关一个核的有着较大的开销,因此采用CPU热插拔机制的调节不能过于频繁,否则会导致性能下降。
本发明根据采样周期来计算系统负载,并根据需要进行核数调整。
为了避免上述调节过于频繁的问题出现,每600毫秒计算一次系统负载,并根据需要进行核数调整。
本发明是构建在Linux内核中一种新的运行时电源管理方法。它适用于多核计算平台,其基本思想是根据系统负载动态调整CPU核数,以便在不影响性能的情况下降低功耗,延长电池使用时间。在“CPU自动插拔”里面,“插”的含义是增加CPU核数,“拔”的含义是减少CPU核数,而“自动”则表示根据负载情况进行自适应调整。
与其他运行时管理机制,如电压/频率调节(CPUFreq)和CPU暂停(CPUIdle)不同的是:CPUAutoplug能够适用于各个处理器核不能独立进行电压/频率调节或者CPU暂停的情况。同时,CPUAutoplug和CPUFreq、CPUIdle并不存在功能冲突,可以相互协作,更好地发挥节能作用。
在本发明中,系统负载的含义是CPU利用率,它决定了插拔的时机。一个CPU核的负载范围是0~100%,因此在有N个核的多处理器平台上,负载范围是0~N×100%。CPUAutoplug需要根据当前的负载情况选择开启最合适的核数,如果核数过少就会影响性能,反之则会浪费资源并且达不到节能的效果。
引入CPUAutoplug之前,系统负载为每个处理器核单独统计,运行时电源管理策略的适用范围是(L表示系统负载):
5%<L<100%:工作态电源管理(CPUFreq)占主导地位。
0%<L<5%:空闲态电源管理(CPUIdle)占主导地位。
在一个电压/频率可以独立调节双核平台上,如果一个核的负载80%,另一个是20%,CPUFreq可以将一个核的频率设置成最高频率的80%,另一个设置成最高频率的20%。而在一个电压/频率不能独立调节的双核平台,CPUFreq就无法处理:如果两个核一起降频到80%,则负载为20%的核会浪费资源,节能效果不好;而如果降频到80%以下,则负载为80%的核会有性能损失。CPUAutoplug则可以解决这一难题,因为它可以将工作负载都迁移到同一个核上,同时将另一个核完全关闭,从而达到节能又不影响性能的目的。
引入CPUAutoplug以后,系统负载总是使用全局统计,以四核平台为例,CPUAutoplug、CPUFreq和CPUIdle的生效范围大致如下:
100%<L<400%:核数自动调节(CPUAutoplug)占主导地位。
5%<L<100%:工作态电源管理(CPUFreq)占主导地位。
0%<L<5%:空闲态电源管理(CPUIdle)占主导地位。
因此,本发明和已有的运行时电源管理策略是可以完美协调的。
本发明是一种新的运行时电源管理方法,可以给多核平台带来更好的节能效果。在存在核间依赖的多核平台上,原有的运行时电源管理方法难以胜任。引入本发明后,可以在不影响性能的前提下带来更好的节能效果,例如在龙芯3A平台上,CPU的节能幅度可以比原先提高25%。
本发明方法可以和已有的电源管理方法完美协调,不存在功能冲突,并且有着基本不重叠的使用范围。它们的协调运作可以进一步改善节能效果。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细的说明。
附图为ACPI状态关系图。
具体实施方式
以下采用的硬件平台(处理器)是龙芯3A,软件平台(操作系统)是Linux内核,版本为2.6.36为例对本发明进行说明,但本发明不限于龙芯3A多核处理器平台。
插拔机制实现:插拔机制重用了Linux内核中已有的CPU热插拔实现,实施方式的步骤简述如下,这里假设0号核是一个在线的核,1号核是一个需要插/拔的核:
增加CPU核(“插”1号核):0号核设置1号核的起始运行地址→0号核开启1号核的核心时钟→1号核开始运行→1号核执行TLB/Cache初始化→1号核启动进程调度。
减少CPU核(“拔”1号核):1号核将进程迁移到0号核→1号核刷回TLB/Cache→1号核进入等待循环→0号核关闭1号核的核心时钟。
当一个核启动了进程调度,就意味着完全投入了运行,当其上的进程被迁移走,也就意味着不再运行有效的任务。
系统负载计算:系统负载决定了CPU插拔的时机,因此负载的计算是CPUAutoplug的一个重点。Linux内核会对每个处理器核所处的状态进行统计,这些处理器的状态包括用户态user、系统态system和空闲态idle三大类。更具体地说,用户态包括两种子状态,即普通用户态(normal user)和高优先用户态(nice);系统态包括普通系统态(normal system)、硬中断态(hard irq)和软中断态(soft irq)。空闲态包括普通空闲态(normal idle)和I/O等待态(i/o wait)。这些状态的相关统计数据都可以通过/proe/stat文件查看。
对于某一个处理器核,其负载L可以通过如下公式计算:
L=(user+system)/(user+system+idle)
这里,user、system、idle分别是过去一个统计周期里面用户态、系统态和空闲态的累计时间。
该公式是一个基本公式,在必要的情况下,可以通过调整各种状态(或者其子状态)的权重来达到需要的目的。
系统的全局负载等于每个核的负载之和。
核数调整策略:CPUAutoplug需要根据当前的负载情况选择开启最合适的核数,如果核数过少就会影响性能,反之则会浪费资源并且达不到节能的效果。另外,调整策略还需要防止发生颠簸状态,颠簸状态的含义是负载处于调整临界点时,核数在两个值之间发生频繁切换。
以四核平台为例,可以采取如表1所示的调整策略:
表1CPU自动插拔的核数调整策略(4核平台)
  当前核数  增核条件  减核条件
  4  无  负载<290%
  3  负载>295%  负载<190%
  2  负载>195%  负载<90%
  1  负载>95%  无
用公式表示:负载>(核数-1)+上调阈值,增核;负载<(核数-1)-下调阈值,减核。上调阈值和下调阈值分别是增核和减核的负载临界点,可根据需要进行调节,此处分别取95%和10%。
处理器核数调节涉及到任务迁移,开/关一个核的有着较大的开销,因此CPUAutoplug的调节不能过于频繁,否则会导致性能下降。参考使用的采样周期为600毫秒,即每600毫秒计算一次负载并根据需要进行核数调整。为了防止负载处于临界线附近时发生颠簸,同时最大限度地保证性能(性能为主,节能为辅),可以对减核条件进行强化,比如连续三次发出减核请求时才真正执行调整操作。反之,如果节能的需求更重于性能,则可以对增核条件进行强化。
上述实施例不以任何方式限制本发明,凡是采用等同替换或等效变换的方式获得的技术方案均落在本发明的保护范围内。

Claims (3)

1.一种基于处理器核数自动调节的电源管理方法,其特征在于:在多核平台上,当系统负载大于100%时,采用CPU热插拔机制对处理器核数进行调节,调节机制如下:
系统负载>(核数-1)+上调阈值,增核;
系统负载<(核数-1)-下调阈值,减核。
2.根据权利要求1所述的基于处理器核数自动调节的电源管理方法,其特征在于:根据采样周期来计算系统负载,并根据需要进行核数调整。
3.根据权利要求2所述的基于处理器核数自动调节的电源管理方法,其特征在于:所述采样周期为600毫秒。
CN2011104202511A 2011-12-15 2011-12-15 基于处理器核数自动调节的电源管理方法 Pending CN102520782A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011104202511A CN102520782A (zh) 2011-12-15 2011-12-15 基于处理器核数自动调节的电源管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011104202511A CN102520782A (zh) 2011-12-15 2011-12-15 基于处理器核数自动调节的电源管理方法

Publications (1)

Publication Number Publication Date
CN102520782A true CN102520782A (zh) 2012-06-27

Family

ID=46291734

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011104202511A Pending CN102520782A (zh) 2011-12-15 2011-12-15 基于处理器核数自动调节的电源管理方法

Country Status (1)

Country Link
CN (1) CN102520782A (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102999151A (zh) * 2012-10-30 2013-03-27 惠州Tcl移动通信有限公司 降低电子设备功耗的方法以及电子设备
CN103150005A (zh) * 2013-03-01 2013-06-12 福州瑞芯微电子有限公司 非对称低功耗移动设备的多核结构
CN104460925A (zh) * 2014-12-18 2015-03-25 山东超越数控电子有限公司 一种基于申威平台的电源管理实现方法
CN104516480A (zh) * 2014-12-08 2015-04-15 广东欧珀移动通信有限公司 一种降低系统功耗的方法及装置
CN104536833A (zh) * 2015-01-28 2015-04-22 浪潮电子信息产业股份有限公司 一种提高高频交易性能的方法
CN104731740A (zh) * 2013-12-23 2015-06-24 联芯科技有限公司 终端中多核处理器热插拔控制方法和装置
WO2015123938A1 (zh) * 2014-02-24 2015-08-27 中兴通讯股份有限公司 一种多核处理器调度方法、装置及终端
CN104932654A (zh) * 2015-01-09 2015-09-23 大唐微电子技术有限公司 一种时钟控制方法及装置
WO2015196969A1 (en) * 2014-06-23 2015-12-30 Mediatek Inc. Method and system providing power management for multimedia processing
CN105608049A (zh) * 2015-12-23 2016-05-25 魅族科技(中国)有限公司 智能终端的cpu控制方法及控制装置
CN105653004A (zh) * 2014-11-12 2016-06-08 鸿富锦精密工业(深圳)有限公司 电源控制装置
CN105892615A (zh) * 2015-12-22 2016-08-24 乐视移动智能信息技术(北京)有限公司 一种处理器负载收集方法及装置
TWI566087B (zh) * 2014-10-23 2017-01-11 群邁通訊股份有限公司 Cpu使用控制系統及方法
CN107506286A (zh) * 2017-09-26 2017-12-22 郑州云海信息技术有限公司 Cpu和内存块的自动上下线方法和系统
CN108021223A (zh) * 2017-11-30 2018-05-11 奇酷互联网络科技(深圳)有限公司 优化待机功耗的方法、设备、移动终端及计算机存储介质
CN108196481A (zh) * 2018-01-02 2018-06-22 联想(北京)有限公司 一种供电调节方法和电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080168287A1 (en) * 2007-01-10 2008-07-10 Ibm Corporation Method and Apparatus for Power Throttling a Processor in an Information Handling System
US20090089470A1 (en) * 2007-09-28 2009-04-02 Ven Adriaan Van De Interrupt balancing for multi-core and power
CN101436098A (zh) * 2008-12-24 2009-05-20 华为技术有限公司 降低多核对称多处理系统的功耗的方法及装置
CN101441510A (zh) * 2008-11-27 2009-05-27 深圳华为通信技术有限公司 一种实现多处理器处理信息的方法和终端
CN102213997A (zh) * 2010-04-01 2011-10-12 英特尔公司 用于中断功率管理的方法和设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080168287A1 (en) * 2007-01-10 2008-07-10 Ibm Corporation Method and Apparatus for Power Throttling a Processor in an Information Handling System
US20090089470A1 (en) * 2007-09-28 2009-04-02 Ven Adriaan Van De Interrupt balancing for multi-core and power
CN101441510A (zh) * 2008-11-27 2009-05-27 深圳华为通信技术有限公司 一种实现多处理器处理信息的方法和终端
CN101436098A (zh) * 2008-12-24 2009-05-20 华为技术有限公司 降低多核对称多处理系统的功耗的方法及装置
CN102213997A (zh) * 2010-04-01 2011-10-12 英特尔公司 用于中断功率管理的方法和设备

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102999151A (zh) * 2012-10-30 2013-03-27 惠州Tcl移动通信有限公司 降低电子设备功耗的方法以及电子设备
CN102999151B (zh) * 2012-10-30 2016-09-28 惠州Tcl移动通信有限公司 降低电子设备功耗的方法以及电子设备
CN103150005A (zh) * 2013-03-01 2013-06-12 福州瑞芯微电子有限公司 非对称低功耗移动设备的多核结构
CN104731740B (zh) * 2013-12-23 2017-11-10 联芯科技有限公司 终端中多核处理器热插拔控制方法和装置
CN104731740A (zh) * 2013-12-23 2015-06-24 联芯科技有限公司 终端中多核处理器热插拔控制方法和装置
WO2015123938A1 (zh) * 2014-02-24 2015-08-27 中兴通讯股份有限公司 一种多核处理器调度方法、装置及终端
US9965021B2 (en) 2014-06-23 2018-05-08 Mediatek, Inc. Method and system providing power management for multimedia processing
WO2015196969A1 (en) * 2014-06-23 2015-12-30 Mediatek Inc. Method and system providing power management for multimedia processing
TWI566087B (zh) * 2014-10-23 2017-01-11 群邁通訊股份有限公司 Cpu使用控制系統及方法
CN105653004A (zh) * 2014-11-12 2016-06-08 鸿富锦精密工业(深圳)有限公司 电源控制装置
CN104516480A (zh) * 2014-12-08 2015-04-15 广东欧珀移动通信有限公司 一种降低系统功耗的方法及装置
CN104516480B (zh) * 2014-12-08 2018-11-27 广东欧珀移动通信有限公司 一种降低系统功耗的方法及装置
CN104460925A (zh) * 2014-12-18 2015-03-25 山东超越数控电子有限公司 一种基于申威平台的电源管理实现方法
CN104932654A (zh) * 2015-01-09 2015-09-23 大唐微电子技术有限公司 一种时钟控制方法及装置
CN104932654B (zh) * 2015-01-09 2018-04-13 大唐微电子技术有限公司 一种时钟控制方法及装置
CN104536833A (zh) * 2015-01-28 2015-04-22 浪潮电子信息产业股份有限公司 一种提高高频交易性能的方法
CN105892615A (zh) * 2015-12-22 2016-08-24 乐视移动智能信息技术(北京)有限公司 一种处理器负载收集方法及装置
CN105608049A (zh) * 2015-12-23 2016-05-25 魅族科技(中国)有限公司 智能终端的cpu控制方法及控制装置
CN107506286A (zh) * 2017-09-26 2017-12-22 郑州云海信息技术有限公司 Cpu和内存块的自动上下线方法和系统
CN108021223A (zh) * 2017-11-30 2018-05-11 奇酷互联网络科技(深圳)有限公司 优化待机功耗的方法、设备、移动终端及计算机存储介质
CN108196481A (zh) * 2018-01-02 2018-06-22 联想(北京)有限公司 一种供电调节方法和电子设备

Similar Documents

Publication Publication Date Title
CN102520782A (zh) 基于处理器核数自动调节的电源管理方法
Meisner et al. Powernap: eliminating server idle power
US9235252B2 (en) Dynamic balancing of power across a plurality of processor domains according to power policy control bias
US10275260B2 (en) Collaborative processor and system performance and power management
US9377841B2 (en) Adaptively limiting a maximum operating frequency in a multicore processor
US20110131427A1 (en) Power management states
US8683247B2 (en) Method and apparatus for controlling power supply to primary processor and portion of peripheral devices by controlling switches in a power/reset module embedded in secondary processor
CN102789304B (zh) 电源管理方法及相关装置
US20130179710A1 (en) Multi-core processor system, dynamic power management method thereof and control apparatus thereof
US9411402B2 (en) Power control system and power control method
US9256271B2 (en) Predictive power management based on user category
CN110832434B (zh) 用于处理器的频率调控的方法和系统
CN101794169B (zh) 基于改变控制模式进行机群系统能耗管控的方法
US9110723B2 (en) Multi-core binary translation task processing
EP2843502B1 (en) Information processing device, information processing method, and program
CN102789301A (zh) 一种计算机的电源管理方法
CN102541246B (zh) 一种基于龙芯处理器平台的待机方法
CN101408792A (zh) 电源管理装置与其管理方法
CN103970253B (zh) 省电操作方法与电子装置
Xi et al. Understanding the critical path in power state transition latencies
KR20090084255A (ko) 멀티-코어 프로세서의 전원제어장치 및 방법
Sen et al. Frequency governors for cloud database OLTP workloads
US20230409100A1 (en) Dynamic input power monitor
Jiang et al. Dynamic voltage/frequency scaling for power reduction in data centers: Enough or not?
AlLee Green Microprocessor and Server Design

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20120627