CN111443792A - 处理器的功耗控制方法、装置以及电子和存储设备 - Google Patents
处理器的功耗控制方法、装置以及电子和存储设备 Download PDFInfo
- Publication number
- CN111443792A CN111443792A CN201910040749.1A CN201910040749A CN111443792A CN 111443792 A CN111443792 A CN 111443792A CN 201910040749 A CN201910040749 A CN 201910040749A CN 111443792 A CN111443792 A CN 111443792A
- Authority
- CN
- China
- Prior art keywords
- processor
- admission condition
- sleep state
- condition
- current
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3293—Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Power Sources (AREA)
Abstract
本申请公开一种处理器以及多核处理器的功耗控制方法及装置,计算机存储介质和电子设备。其中,控制方法包括:获取处理器进入睡眠状态的原始准入条件;根据处理器当前进入睡眠状态是否满足调整原始准入条件的触发条件,确定处理器当前进入睡眠状态的当前准入条件;将原始准入条件调整为当前准入条件;从而能够对处理器设定的原始准入条件实现动态调整,使得处理器在位于业务流量波谷状态时能够通过动态调整原始准入条件进入深度睡眠状态,而在处理器处于业务流量波峰状态时能够通过动态调整原始准入条件避免处理器进入深度睡眠状态,实现从更细粒度上对处理器的睡眠状态进行动态控制,并且使得处理器既能够兼顾节能又能够避免唤醒时延。
Description
技术领域
本申请涉及计算机应用领域,具体涉及一种处理器的功耗控制方法以及控制装置。本申请同时涉及一种多核处理器的功耗控制方法,计算机存储介质和电子设备。
背景技术
ACPI(Advanced Configuration Power Interface:高级配置和电源管理接口)定义***处理器的电源状态,处理器可以具有两种状态:活跃状态(正在执行)和睡眠状态(未执行)。处理器电源状态被设计为C0,C1,C2,C3…Cn。C0电源状态是活跃状态,即CPU执行指令。C1到Cn都是处理器睡眠状态,即和C0状态相比,处理器消耗更少的能源并且释放更少的热量。
在数据中心、边缘节点、终端设备等场景,节能一直是非常重要的诉求,而CPU C-State是实现CPU绿色节能的一项重要技术。
当CPU空闲时,通过特定的指令(Mwait/HLT等)可以将CPU设置为某个低功耗状态,比如C1、C6等睡眠状态,当需要CPU处理任务时,可以通过中断唤醒处于低功耗状态的Core,使其恢复到C0运行状态。
睡眠深度越深,功耗越低,但是从睡眠状态恢复到运行状态的延时也越大,比如Skylake的CPU上关闭C6和C1E,仅保留C1状态,从而避免CPU从睡眠状态恢复到运行状态时延时的问题,然而,该种方式也意味着即便是在业务流量波谷期间,CPU最多也只能睡眠到C1状态,使得CPU依然处于较高功耗的状态。
因此,现有技术中通过对某些睡眠状态的采用关闭或开启等粗略的方式来控制处理器功耗并不能很好的达到节能的效果。
发明内容
本申请提供一种处理器的功耗控制方法,以解决现有技术中为降低功耗,对处理器进入睡眠状态的控制过于粗略的问题。
本申请提供一种处理器的功耗控制方法,包括:
获取处理器进入睡眠状态的原始准入条件;
根据处理器当前进入睡眠状态是否满足调整所述原始准入条件的触发条件,确定处理器当前进入睡眠状态的当前准入条件;
将所述原始准入条件调整为所述当前准入条件。
在一些实施例中,还包括:获取当前应用的响应实时时延时长和目标响应时延时长;
所述处理器当前进入睡眠状态满足调整所述原始准入条件的触发条件为,所述当前应用的响应实时时延时长不满足所述目标响应时延时长要求。
在一些实施例中,所述确定处理器当前进入睡眠状态的当前准入条件,包括:
基于所述原始准入条件的调整范围,确定出能够满足所述目标响应时延时长要求下,处理器进入睡眠状态的当前准入条件。
在一些实施例中,所述基于所述原始准入条件的调整范围,确定出能够满足所述目标响应时延时长要求下,处理器进入睡眠状态的当前准入条件,包括:
将所述原始准入条件的调整范围的中间值,确定为预选准入条件;
基于所述预选准入条件,当获取的当前应用的响应实时时延时长满足目标响应时延时长要求时,在所述中间值和所述调整范围的两端值之间重新确定新的调整范围;
将新的调整范围的中间值重新确定为预选准入条件,直至找到响应实时时延时长满足目标响应时延时长要求的调整范围内最小中间值;
将最小中间值确定为当前准入条件。
在一些实施例中,所述基于所述预选准入条件,当获取的当前应用的响应实时时延时长满足目标响应时延时长要求时,在所述中间值和所述调整范围的两端值之间重新确定新的调整范围,包括:
将所述调整范围的下限值与所述中间值形成的区间重新确定为新的调整范围。
在一些实施例中,所述基于所述原始准入条件的调整范围,确定出能够满足所述目标响应时延时长下,处理器进入睡眠状态的当前准入条件,包括:
将所述原始准入条件的调整范围的中间值,确定为预选准入条件;
基于所述预选准入条件,当获取的当前应用的响应实时时延时长仍不满足目标响应时延时长要求时,在所述中间值和所述调整范围的两端值之间重新确定新的调整范围;
将新的调整范围的中间值重新确定为预选准入条件,直至当前应用的响应实时时延时长满足目标响应时延时长要求,将重新确定的预选准入条件确定为当前准入条件。
在一些实施例中,所述基于所述预选准入条件,当获取的当前应用的响应实时时延时长仍不满足目标响应时延时长要求时,在所述中间值和所述调整范围的两端值之间重新确定新的调整范围,包括:
将所述调整范围的上限值与所述中间值形成的区间重新确定为新的调整范围。
在一些实施例中,所述原始准入条件具体为处理器睡眠状态数据结构中的目标驻留时间;
所述将所述原始准入条件调整为所述当前准入条件,包括:
将所述原始目标驻留时间中的原始时长值修改为当前准入条件的当前时长值
在一些实施例中,所述原始准入条件为满足处理器睡眠的原始时长值,所述当前准入条件为满足处理器睡眠的当前时长值。
在一些实施例中,还包括:
获取处理器进入睡眠状态的预测时长值;
所述处理器当前进入睡眠状态满足调整所述原始准入条件的触发条件为,所述预测时长值大于原始时长值。
在一些实施例中,所述确定处理器当前进入睡眠状态的当前准入条件,包括:
将所述预测时长值与原始时长值比较;
当预测时长值大于所述原始时长值时,将所述预测时长值确定为处理器当前进入睡眠状态的当前准入条件。
本申请还提供一种处理器的功耗控制装置,包括:
获取单元,用于获取处理器进入睡眠状态的原始准入条件;
确定单元,用于根据处理器当前进入睡眠状态是否满足调整所述原始准入条件的触发条件,确定处理器当前进入睡眠状态的当前准入条件;
调整单元,用于将所述原始准入条件调整为所述当前准入条件。
本申请还提供一种多核处理器的功耗控制方法,包括:
获取多核处理器中一个或多个处理器进入睡眠状态分别对应的原始准入条件;
根据所述多核处理器中一个或多个处理器当前进入睡眠状态是否满足调整所述原始准入条件的触发条件,分别确定一个或多个处理器当前进入睡眠状态的当前准入条件;
分别将一个或多个处理器的所述原始准入条件调整为相对应的一个或多个处理器的所述当前准入条件。
本申请还提供一种多核处理器的功耗控制方法,包括:
获取多核处理器中一个或多个处理器进入睡眠状态的原始共用准入条件;
根据所述多核处理器中一个或多个处理器当前进入睡眠状态是否满足调整所述原始共用准入条件的触发条件,确定一个或多个处理器当前进入睡眠状态的当前准入条件;
将一个或多个处理器的所述原始共用准入条件调整为所述当前准入条件。
本申请还提供一种计算机存储介质,用于存储网络平台产生数据,以及对应所述网络平台产生数据进行处理的程序;
所述程序在被所述处理器读取执行时,执行如下操作:
获取处理器进入睡眠状态的原始准入条件;
根据处理器当前进入睡眠状态是否满足调整所述原始准入条件的触发条件,确定处理器当前进入睡眠状态的当前准入条件;
将所述原始准入条件调整为所述当前准入条件。
本申请还提供一种电子设备,包括:
处理器;
存储器,用于存储对网络平台产生数据进行处理的程序,所述程序在被所述处理器读取执行时,执行如下操作:
获取处理器进入睡眠状态的原始准入条件;
根据处理器当前进入睡眠状态是否满足调整所述原始准入条件的触发条件,确定处理器当前进入睡眠状态的当前准入条件;
将所述原始准入条件调整为所述当前准入条件。
与现有技术相比,本申请具有以下优点:
本申请提供一种处理器的功耗控制方法,通过获取处理器进入睡眠状态的原始准入条件,在处理器当前进入睡眠状态满足调整所述原始准入条件的触发条件下,确定出处理器当前进入睡眠状态的当前准入条件,之后将原始准入条件调整为所述当前准入条件;从而能够对处理器设定的原始准入条件实现动态调整,即:根据处理器当前进入睡眠状态,将原始准入条件调整为满足当前进入睡眠状态的当前准入条件,使得处理器在位于业务流量波谷状态时能够通过动态调整原始准入条件进入深度睡眠状态,而在处理器处于业务流量波峰状态时能够通过动态调整原始准入条件避免处理器进入深度睡眠状态,实现从更细粒度上对处理器的睡眠状态进行动态控制,并且通过动态调整控制使得处理器既能够兼顾节能又能够避免唤醒时延。
另外,本申请提供的多核处理器的功耗控制方法,能够根据获取的多核处理器中一个或多个处理器进入睡眠状态分别对应的原始准入条件,在多核处理器中一个或多个处理器当前进入睡眠状态是否满足调整所述原始准入条件的触发条件下,将分别确定一个或多个处理器当前进入睡眠状态的当前准入条件与相对应的一个或多个处理器的原始准入条件进行调整,从而实现多核多处理器功耗的动态控制。
另外,本申请提供的多核处理器的功耗控制方法,能够根据获取多核处理器中一个或多个处理器进入睡眠状态的原始共用准入条件,在多核处理器中一个或多个处理器当前进入睡眠状态满足调整所述原始共用准入条件的触发条件下,将所确定的一个或多个处理器当前进入睡眠状态的当前准入条件与原始共用准入条件进行调整,从而实现多核多处理器功耗的动态控制。。
附图说明
图1是本申请提供的一种处理器的功耗控制方法实施例的流程图;
图2是本申请提供的一种处理器的功耗控制装置实施例的结构示意图;
图3是本申请提供的一种处理器的功耗控制方法第一实施例的原理示意图;
图4是本申请提供的一种处理器的功耗控制方法第二实施例的原理示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
本申请中使用的术语是仅仅出于对特定实施例描述的目的,而非旨在限制本申请。在本申请中和所附权利要求书中所使用的描述方式例如:“一种”、“第一”、和“第二”等,并非对数量上的限定或先后顺序上的限定,而是用来将同一类型的信息彼此区分。
请参考图1所示,图1是本申请提供的一种处理器的功耗控制方法实施例的流程图。该方法包括:
步骤S101:获取处理器进入睡眠状态的原始准入条件。
所述步骤S101中的原始准入条件是指处理器在进入睡眠状态时的进入门槛,只有满足原始准入条件所述处理器方能进入到对应的睡眠状态下,从而实现节能的效果。
步骤S102:根据处理器当前进入睡眠状态是否满足调整所述原始准入条件的触发条件,确定处理器当前进入睡眠状态的当前准入条件。
所述步骤S102中的触发条件在第一实施例中可以是当前应用的响应实时时延时长不满足所述目标响应时延时长要求。因此,还包括:
获取当前应用的响应实时时延时长和目标响应时延时长。
其中,当前应用可以理解为安装在电子设备上的应用程序,例如:手机、笔记本电脑、PC机、平板电脑等设备上安装的APP。所述响应实时时延时长可以理解为应用程序在执行过程中的响应时长。所述目标响应时延时长可以理解为对于应用程序的响应期望达到的响应时长,例如:***在应用程序执行过程中期望应用程序达到的响应时长。
获取当前应用的响应实时时延时长可以通过APP设置的获取方式进行获取,例如:在读取APP数据时可以通过内存型数据库redis实现,当将APP中列表信息或者一些常被访问的信息转存至内存上时,读取数据存在的响应实时延时时长可以是指客户端(Client)发出一个请求(request)报文到Client端收到对应的返回(response)报文,根据该过程区间的时长确定响应实时时延。
获取目标响应时延时长可以是设定的一个期望响应时延值,该期望响应时延值是期望APP接收请求后的一个期望响应时延,例如:设置为200us,那么目标响应延时就是希望客户端(Client)发出一个请求(request)报文到Client端收到对应的返回(response)报文,该过程区间的期望时延为200us。
在获得两个时长指标后(响应实时时延时长数据指标和目标响应时延时长数据指标),需要根据上述两个时长指标确定出处理器当前的睡眠状态是否既能符合节能要求又能满足当前应用程序响应的要求,因此,所述步骤S102根据处理器当前进入睡眠状态是否满足调整所述原始准入条件的触发条件,确定处理器当前进入睡眠状态的当前准入条件,也就是,在所述当前应用的响应实时时延时长不满足所述目标响应时延时长要求时,确定处理器当前进入睡眠状态的当前准入条件,包括:
步骤S102-1:基于所述原始准入条件的调整范围,确定出能够满足所述目标响应时延时长要求下,处理器进入睡眠状态的当前准入条件。
其中,所述原始准入条件可以理解为满足处理器睡眠的原始时长值,所述当前准入条件可以理解为满足处理器睡眠的当前时长值。所述原始准入缇欧挨肩具体为处理器睡眠状态数据结构中的目标驻留时间(target_residency)。
可以理解,当处理器从睡眠状态到唤醒状态的过程中,会使得应用程序产生相应的响应时延,为保证应用程序响应时延能够满足响应目标时延时长的要求,需要对处理器的睡眠状态进行控制,也就是说,当目标响应时延时长要求较长时(或者是在业务流量波谷期间),所述处理器的睡眠状态可以相应的变长,当目标响应时延时长要求较短时(或者是在业务流量波峰期间),所述处理器的睡眠状态可以相应的变短。
因此,本实施例中,所述步骤S102需要根据当前应用的响应实时时延时长和目标响应时延时长预选出一个能够使处理器进入睡眠状态(C-State)较为适当的准入条件,即当前准入条件。所谓适当,可以理解为,针对当前应用的情况,能够使得处理器既能节省功耗又能保证唤醒时延需求的睡眠状态准入条件。在本实施例中,所述准入条件可以理解为处理器能够睡眠状态下的时间门槛值,通过C-State数据结构中的target_residency变量实现准入条件的设置,通过改变target_residency变量值进而改变睡眠状态的准入条件。所述target_residency变量可以理解为目标驻留时间,含义在于CPU期望进入C-State状态的准入条件是至少能够保证处理器睡眠的时长,如当处理器睡眠时长小于目标驻留时间值时,则处理器不允许进入该目标驻留时间值所对应的睡眠状态,例如:进入C1睡眠状态时的准入条件为大于等于5ms,当处理器睡眠时长为4ms时,则处理器无法进入C1睡眠状态,进入C6睡眠状态时为准入条件为大于等于6ms,当处理器睡眠时长为8ms时,则处理器能够进入C6睡眠状态。
基于上述,当所述当前应用的响应实时时延时长不满足所述目标响应时延时长要求可以是指,所述当前应用的响应实时时延时长大于目标响应时延时长,即:处理器睡眠时长过长(或者是执行线程进入深度睡眠),导致当前应用的响应较为耗时,即唤醒时间较长,例如:当前应用的响应实时时延时长为5毫秒,目标响应时延时长为4毫秒,所述处理器默认的或者预先设置的进入睡眠状态C6的准入条件为1毫秒,说明当前应用的执行线程较多进入了睡眠状态为C6的模式,使得线程的唤醒时间延长,进而导致当前应用的响应时间延长。基于响应实时时延时长达不到目标响应时延时长要求时的情况,需要对处理器的睡眠状态进行调整,即重新配置处理器进入睡眠状态的准入条件,从而使得当前应用能够满足目标响应时延时长的要求。
在第一实施例中,当所述当前应用的响应实时时延时长不满足所述目标响应时延时长要求时,所述步骤S102-1基于所述原始准入条件的调整范围,确定出能够满足所述目标响应时延时长要求下,处理器进入睡眠状态的当前准入条件,具体如何确定请参考下述内容。
在对具体确定的过程进行描述前,先对原始准入条件和当前准入条件进行说明,原始准入条件可以理解为处理器进入睡眠状态的初始条件,也可以是在对所述处理器进入睡眠状态的准入条件进行调整前的条件;当前准入条件可以是处理器当前进入睡眠状态的条件。
接下来,对确定当前准入条件进行说明。
步骤S102-1基于所述原始准入条件的调整范围,确定出能够满足所述目标响应时延时长要求下,处理器进入睡眠状态的当前准入条件,包括:
步骤S102-1-11:将所述原始准入条件的调整范围的中间值,确定为预选准入条件。
其中,所述调整范围的设定可以根据经验值进行设定,例如:根据通常情况下处理器进入睡眠状态的时长进行设置,或者,根据***的实际需要进行设定,或者根据不同应用程序的需求进行设定,当然也可以随意设置,设置的范围没有具体要求。
所述中间值即为调整范围区域内的中点值,例如:当设定的调整范围为0ms到50ms之间时,则选取25ms为中间值,此时25ms为当前处理器进入睡眠状态的预选准入条件。
沿用上述举例,即:对于响应实时时延时长为5ms,目标响应时延时长为4ms,说明响应实时时延没有满足目标时延的要求,需要提高或是增大进入睡眠状态C6的准入条件,如果响应实时时延没有满足目标时延的要求时,进入睡眠状态C6的准入条件为0ms,则在设定的调整范围在0-50ms之间选取中间值25ms作为调整后的进入睡眠状态C6的准入条件,进而使得当前应用中执行线程睡眠时长小于25ms的线程无法进入到睡眠状态为C6的模式下,例如:当睡眠状态C6的准入条件为25ms时,则获得的当前应用的响应实时时延时长降低为4ms,则说明当前应用的执行线程部分无法进入C6状态(或者是适于处理器当前进入睡眠状态的不是C6状态),使得没有进入睡眠状态C6的执行线程能够被快速的唤醒,从而当前应用的响应实时时延时长减小,满足目标响应时延时长。
可以理解的是,可以将所述中间值确定为当前准入条件,在本实施例中,为更进一步的找一个更适合的当前准入条件可以基于上述确定的预选准入条件,执行步骤S102-1-12。
步骤S102-1-12:基于所述预选准入条件,当获取的当前应用的响应实时时延时长满足目标响应时延时长要求时,在所述中间值和所述调整范围的两端值之间重新确定新的调整范围。
所述步骤S102-1-12具体实现过程可以沿用上述步骤S102-1-11中的举例进行说明,所谓新的调整范围是基于在所述S102-1-11中确定的中间值和所述调整范围之间进行重新确定,例如最初的调整范围为0-50毫秒之间,中间值为25毫秒,也就是说,调整范围被划分为0-25,25-50两个区间,则将所述0-25或25-50确定为新的调整范围。
步骤S102-1-13:将新的调整范围的中间值重新确定为预选准入条件,直至找到响应实时时延时长满足目标响应时延时长要求的最小中间值。
所述步骤102-1-13为保证在确定预选准入条件过程中能够快速获得一个较为合适的当前准入条件,因此,所述步骤S102-1-12中的基于所述预选准入条件,当获取的当前应用的响应实时时延时长满足目标响应时延时长要求时,在所述中间值和所述调整范围的两端值之间重新确定新的调整范围,包括:
将所述调整范围的下限值与所述中间值形成的区间重新确定为新的调整范围。
具体地,当获取的当前应用的响应实时时延时长满足目标响应时延时长要求时,通常情况下,准入条件无需增大,因此,在数值较小的区间范围内进行确定新的范围即可。
在确定新的调整范围后,则需要将新的调整范围的中间值重新确定为当前准入条件,直至找到响应实时时延时长满足目标响应时延时长要求的最小中间值。
在通过二分法找到较为合适的预选准入条件后,执行步骤S102-1-14。
步骤S102-1-14:将最小中间值确定为当前准入条件。
需要说明的是,在预选准入条件的查找方式上还可以采用其他查找方式,二分查找仅为本实施例中的一个举例。
以上是针对获取的当前应用的响应实时时延时长仍满足目标响应时延时长要求时的说明,那么,当获取的当前应用的响应实时时延时长仍不满足目标响应时延时长要求时,所述步骤S102-1基于所述原始准入条件的调整范围,确定出能够满足所述目标响应时延时长要求下,处理器进入睡眠状态的当前准入条件,包括:
步骤S102-2-21:将所述原始准入条件的调整范围的中间值,确定为当前准入条件。
该步骤S102-2-21与上述步骤S102-1-11相同,此处不再赘述。
步骤S102-2-22:基于所述预选准入条件,当获取的当前应用的响应实时时延时长仍不满足目标响应时延时长要求时,在所述中间值和所述调整范围的两端值之间重新确定新的调整范围。
所述步骤S102-2-22的具体过程参考步骤S102-1-12即可。
步骤S102-2-23:将新的调整范围的中间值重新确定为预选准入条件,直至当前应用的响应实时时延时长满足目标响应时延时长要求,将当前准入条件确定为当前准入条件。
所述步骤S102-1-12具体实现的目的是基于所述步骤S102-2-22的循环执行后,选取一个最为合适的准入条件作为预选准入条件。
所述当前准入条件的确定还可以包括:
设定所述当前处理器睡眠状态的原始准入条件的调整范围;
将所述调整范围的中间值,确定为所述当前处理器睡眠状态的当前准入条件;
将设定的所述当前处理器睡眠状态的原始准入条件修改为所述当前准入条件。
该种方式与上述方式的区别在于:上述方式在当前应用的响应实时时延时长满足响应目标时延时长要求时,还需要继续进行循环探测,直至预选出最为合适的当前准入条件。该种方式则为当当前应用的响应实时时延时长满足响应目标时延时长要求时,就进行确定,不进行再次探测的过程。
以上是通过当前应用的响应实时时延时长和目标响应时延时长,确定处理器当前准入条件的实施例。本申请还提供另一种确定处理器当前准入条件的实施例,如下:
基于上述步骤S102中描述的,在预选过程之前***对于处理器已经设置了默认的睡眠状态模式,即原始准入条件,或者根据应用程序的需求预先设置了处理器进入睡眠状态的模式,因此,在提供的其他实施例中,还可以包括:
获取处理器进入睡眠状态的预测时长值;
基于获取的预测时长值,所述处理器当前进入睡眠状态满足调整所述原始准入条件的触发条件为,所述预测时长值大于原始时长值。
基于上述预测时长值和触发条件,所述步骤S102根据处理器当前进入睡眠状态是否满足调整所述原始准入条件的触发条件,确定处理器当前进入睡眠状态的当前准入条件,包括:
将所述预测时长值与原始时长值比较;
当比较结果为,预测时长值大于所述原始时长值时,将所述预测时长值确定为处理器当前进入睡眠状态的当前准入条件。
例如:当前处理器的睡眠状态的预测时长为6毫秒,备选处理器睡眠状态包括:C1为3毫秒,C6为6毫秒,因此,当前处理器的睡眠状态准入条件为6毫秒,对应于C6睡眠状态,意味着业务流量处理处于波谷状态或者是执行线程处理处于波谷状态,处理器可以进入深度睡眠,进而实现节能。
补充说明的,通常C6模式的睡眠状态为深度睡眠状态,由于现有技术中为避免处理器进入深度睡眠后造成延时的问题,将C6睡眠状态关闭,而本申请针对该种情况无需关闭,在C6模式的睡眠状态开启下,可以通过调整C6模式的准入条件,实现处理器在业务流量处于波谷状态时能够进入深度睡眠,而当业务流量恢复到波峰状态时能够从深度睡眠中退出,即C6的准入条件的门槛配置较高,使得处理器进行正常工作或者浅睡眠状态。
需要说明的是,所述预测处理器进入睡眠状态的预测时长(predict_us)可以根据马上到期的定时器剩余时间、历史统计数据等作为输入信息进行预测时长的预测。
为进一步保证预选准入条件能够满足所述响应实时时延时长满足目标响应时延时长要求,还可以包括:
获得所述当前应用针对所述预选准入条件的确认信息;
所述获得所述当前应用针对所述预选准入条件的确认信息可以是将预选准入条件,即target_residency(目标驻留时间参数)发送至当前应用,当前应用对接收的目标驻留时间参数进行确认,并发送确认信息。
步骤S103:将所述原始准入条件调整为所述当前准入条件。
所述步骤S103目的在于将所述处理器睡眠的原始准入条件中的目标驻留时间参数修改为确定当前准入条件的参数,即:准入条件通过设置目标驻留时间控制处理器进入睡眠状态的门槛,原始目标驻留时间修改为当前准入条件的时间值后,完成处理器进入睡眠状态的动态控制,进而使得处理器当前睡眠状态的原始准入条件被修改,例如C6的目标驻留时间从原来的6毫秒被修改为3毫秒或者被修改为10毫秒。当目标驻留时间降低时,意味着当前业务流量处于波谷,即当前执行线程较少,降低进入深度睡眠的准入条件,达到节能的目的;当目标驻留时间增大时,意味着当前业务流程处于波峰,即当前执行线程较多,增大进入深度睡眠的准入条件,减小延迟。
基于所述步骤S102中的获得所述当前应用针对所述预选准入条件的确认信息,所述步骤S103的具体实现过程可以是根据所述确认信息,将所述当前处理器睡眠状态的准入条件修改为所述预选准入条件,即:将所述目标驻留时间参数的值修改为预选准入条件确定的值。具体实现过程将在下述本申请提供的一种处理器睡眠状态的配置***中进行说明。
以上是对本申请提供的一种处理器的功耗控制方法说明,需要说明的是,针对现有技术中为避免处理器处于深度睡眠状态下导致唤醒时延较长,而采用的将C6睡眠状态关闭的方法,本申请提供的配置方法则是基于C6睡眠状态开启下,能够根据当前应用的执行情况动态调整处理器进入C6睡眠状态的准入条件,进而在当前应用执行业务流量处于波谷时,处理器可以进入到C6睡眠状态下,而当当前应用执行业务流量处于波峰时或者是由波谷向波峰转变时,处理器可以由原来的C6睡眠状态退出,即修改C6睡眠状态的准入条件,使得处理器无法进入C6睡眠状态。反之亦然,当当前应用执行业务流量处于波峰时或者由波峰转变为波谷时,通过对C6睡眠状态准入条件的配置使得处理器也可以从不能进入C6睡眠状态转变为进入C6睡眠状态。因此,本申请在对准入条件的配置过程中无需关闭某一个睡眠状态模式,特别是深度睡眠状态模式。
以上是对本申请提供的一种处理器的功耗控制方法实施例的说明。与前述提供的一种处理器的功耗控制方法实施例相对应,本申请还公开一种处理器的功耗控制装置实施例,请参看图2,由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
如图2所示,图2是本申请提供的一种处理器的功耗控制装置实施例的结构示意图,该装置包括:
获取单元201,用于获取处理器进入睡眠状态的原始准入条件;
确定单元202,用于根据处理器当前进入睡眠状态是否满足调整所述原始准入条件的触发条件,确定处理器当前进入睡眠状态的当前准入条件;
调整单元203,用于将所述原始准入条件调整为所述当前准入条件。
所述获取单元201中原始准入条件是指处理器在进入睡眠状态时的进入门槛,只有满足原始准入条件所述处理器方能进入到对应的睡眠状态下,从而实现节能的效果。
进一步还包括:
时长获取单元,用于获取当前应用的响应实时时延时长和目标响应时延时长。
其中,当前应用可以理解为安装在电子设备上的应用程序,例如:手机、笔记本电脑、PC机、平板电脑等设备上安装的APP。所述响应实时时延时长可以理解为应用程序在执行过程中的响应时长。所述目标响应时延时长可以理解为对于应用程序的响应期望达到的响应时长,例如:***在应用程序执行过程中期望应用程序达到的响应时长。
获取当前应用的响应实时时延时长和目标响应时延时长可以通过使用线程的休眠实现延时,或者,通过使用TimerTask实现延时操作;或者,通过使用Handler的postDelayed方法实现延时。上述获取的方式可以是通过当前应用程序提供的API接口实现响应实时时延时长数据和目标响应时延时长数据的获取。
所述时长获取单元在获得两个时长指标后(响应实时时延时长数据指标和目标响应时延时长数据指标),需要根据上述两个时长指标确定出处理器当前的睡眠状态是否既能符合节能要求又能满足当前应用程序响应的要求,因此,进入确定单元202中。
确定单元202中的触发条件为当前应用的响应实时时延时长不满足所述目标响应时延时长要求。
可以理解,当处理器从睡眠状态到唤醒状态的过程中,会使得应用程序产生相应的响应时延,为保证应用程序响应时延能够满足响应目标时延时长的要求,需要对处理器的睡眠状态进行控制,也就是说,当目标响应时延时长要求较长时(或者是在业务流量波谷期间),所述处理器的睡眠状态可以相应的变长,当目标响应时延时长要求较短时(或者是在业务流量波峰期间),所述处理器的睡眠状态可以相应的变短。
因此,本实施例中,所述确定单元202需要根据当前应用的响应实时时延时长和目标响应时延时长确定出一个能够使处理器进入睡眠状态(C-State)较为适当的准入条件。所谓适当,可以理解为,针对当前应用的情况,能够使得处理器既能节省功耗又能保证唤醒时延需求的睡眠状态准入条件。在本实施例中,所述准入条件可以理解为处理器能够睡眠状态下的时间门槛值,通过C-State数据结构中的target_residency变量实现准入条件的设置,通过改变target_residency变量值进而改变睡眠状态的准入条件。所述target_residency变量可以理解为目标驻留时间,含义在于CPU期望进入C-State状态的准入条件是至少能够保证处理器睡眠的时长,如当处理器睡眠时长小于目标驻留时间值时,则处理器不允许进入该目标驻留时间值所对应的睡眠状态,例如:进入C1睡眠状态时的准入条件为大于等于5ms,当处理器睡眠时长为4ms时,则处理器无法进入C1睡眠状态,进入C6睡眠状态时为准入条件为大于等于6ms,当处理器睡眠时长为8ms时,则处理器能够进入C6睡眠状态。
以上是对本实施例中涉及到的一些技术名词进行的解释,下面具体介绍所述确定单元202的实现过程。
所述确定单元202中当所述当前应用的响应实时时延时长不满足所述目标响应时延时长要求可以是指,所述当前应用的响应实时时延时长大于目标响应时延时长,即:处理器睡眠时长过长,导致当前应用的响应较为耗时,例如:当前应用的响应实时时延时长为5毫秒,目标响应时延时长为4毫秒,所述处理器默认的或者预先设置的进入睡眠状态C6的准入条件为1毫秒,说明当前应用的执行线程较多进入了睡眠状态为C6的模式,使得线程的唤醒时间延长,进而导致当前应用的响应时间延长。基于响应实时时延时长达不到目标响应时延时长要求时的情况,需要对处理器的睡眠状态进行调整,即重新配置处理器进入睡眠状态的准入条件,从而使得当前应用能够满足目标响应时延时长的要求。
在本实施例中,当所述当前应用的响应实时时延时长不满足所述目标响应时延时长要求时,基于当前处理器睡眠状态的原始准入条件的调整范围,确定出能够满足所述目标响应时延时长的处理器睡眠状态的当前准入条件可以包括两种实现方式,第一种实现方式可以包括:
第一确定子单元202-1a:将所述原始准入条件的调整范围的中间值,确定为预选准入条件。
所述第一确定子单元202-1a中调整范围的设定可以根据经验值进行设定,例如:根据通常情况下处理器进入睡眠状态的时长进行设置,或者,根据***的实际需要进行设定,或者根据不同应用程序的需求进行设定,当然也可以随意设置,设置的范围没有具体要求。
所述中间值即为调整范围区域内的中点值,例如:当设定的调整范围为0ms到50ms之间时,则选取25ms为中间值,此时25ms为当前处理器进入睡眠状态的准入条件。
沿用上述举例,即:对于响应实时时延时长为5ms,目标响应时延时长为4ms,则25ms为处理器进入睡眠状态为C6的准入条件,该种条件下,提高进入睡眠状态C6的准入条件,进而使得当前应用中执行线程睡眠时长小于25ms的线程无法进入到睡眠状态为C6的模式下,例如:当睡眠状态C6的准入条件为25ms时,则获得的当前应用的响应实时时延时长降低为4ms,则说明当前应用的执行线程部分无法进入C6状态,使得没有进入睡眠状态C6的执行线程能够被快速的唤醒,从而当前应用的响应实时时延时长减小,满足目标响应时延时长。
可以理解的是,可以将所述中间值确定为当前准入条件,在本实施例中,为更进一步的找一个更适合的当前准入条件可以基于上述确定的预选准入条件,执行第二确定子单元202-1b。
所述第二确定子单元202-1b:基于所述预选准入条件,当获取的当前应用的响应实时时延时长满足目标响应时延时长要求时,在所述中间值和所述调整范围的两端值之间重新确定新的调整范围。所述第二确定子单元202-1b具体实现过程可以沿用上述第一确定子单元202-1a中的举例进行说明,所谓新的调整范围是基于确定的中间值和所述调整范围之间进行重新确定,例如:最初的调整范围为0-50毫秒之间,中间值为25毫秒,也就是说,调整范围被划分为0-25,25-50两个区间,则将所述0-25确定为新的调整范围。
查找子单元202-1c:将新的调整范围的中间值重新确定为预选准入条件,直至找到响应实时时延时长满足目标响应时延时长要求的最小中间值。
所述查找子单元202-1c为保证在确定预选准入条件过程中能够快速获得一个较为合适的准入条件,因此,所述第二确定子单元202-1b中的基于所述预选准入条件,当获取的当前应用的响应实时时延时长满足目标响应时延时长要求时,在所述中间值和所述调整范围的两端值之间重新确定新的调整范围,包括:
将所述调整范围的下限值与所述中间值形成的区间确定为新的调整范围。
具体地,当获取的当前应用的响应实时时延时长满足目标响应时延时长要求时,通常情况下,准入条件无需增大,因此,在数值较小的区间范围内进行确定新的范围即可。
在确定新的调整范围后,则需要将新的调整范围的中间值重新确定为当前准入条件,直至找到响应实时时延时长满足目标响应时延时长要求的最小中间值。
在通过二分法找到较为合适的预选准入条件后,执行第三确定子单元201-1e。
所述第三确定子单元201-1e:将最小中间值确定为当前准入条件。
需要说明的是,在预选准入条件的查找方式上还可以采用其他查找方式,二分查找仅为本实施例中的一个举例。
以上是针对获取的当前应用的响应实时时延时长仍满足目标响应时延时长要求时的说明,那么,当获取的当前应用的响应实时时延时长仍不满足目标响应时延时长要求时,所述基于所述原始准入条件的调整范围,确定出能够满足所述目标响应时延时长要求下,处理器进入睡眠状态的当前准入条件,包括:
当前准入条件确定子单元,用于将所述原始准入条件的调整范围的中间值,确定为当前准入条件。即,无需寻找最为合适的预选准入条件,直接将中间值确定为当前准入条件即可。
基于上述内容,是针对获取的当前应用的响应实时时延时长仍满足目标响应时延时长要求时的说明,那么,当获取的当前应用的响应实时时延时长仍不满足目标响应时延时长要求时,包括:第一确定子单元201-2a:将所述原始准入条件的调整范围的中间值,确定为当前准入条件。
该第一确定子单元201-2a与上述第一确定子单元201-1a相同,此处不再赘述。
第二确定子单元201-2b:基于所述预选准入条件,当获取的当前应用的响应实时时延时长仍不满足目标响应时延时长要求时,在所述中间值和所述调整范围的两端值之间重新确定新的调整范围。
所述第二确定子单元201-2b的具体过程参考上述201-1b的描述即可,二者不同之处一个是基于当前应用的响应实时时延时长满足目标响应时延时长要求,另一个是当前应用的响应实时时延时长仍不满足目标响应时延时长要求。
第三确定子单元201-2c:将新的调整范围的中间值重新确定为预选准入条件,直至当前应用的响应实时时延时长满足目标响应时延时长要求,将当前准入条件确定为当前准入条件。目的是选取一个最为合适的准入条件作为预选准入条件。
可以理解的是,当所述基于所述预选准入条件,当获取的当前应用的响应实时时延时长仍不满足目标响应时延时长要求时,在所述中间值和所述调整范围的两端值之间重新确定新的调整范围,包括:
将所述调整范围的上限值与所述中间值形成的区间重新确定为新的调整范围。
所述当前准入条件的确定还可以包括:
设定子单元202-3a:设定所述当前处理器睡眠状态的原始准入条件的调整范围;
第一确定子单元202-3b:将所述调整范围的中间值,确定为所述当前处理器睡眠状态的当前准入条件;
修改子单元202-3c:将设定的所述当前处理器睡眠状态的原始准入条件修改为所述当前准入条件。
该种方式与上述方式的区别在于:上述方式在当前应用的响应实时时延时长满足响应目标时延时长要求时或者不满足时,还需要继续进行循环探测,直至预选出最为合适的当前准入条件,该种方式则为当当前应用的响应实时时延时长满足响应目标时延时长要求则进行确定,不进行再次探测的过程。
以上是通过当前应用的响应实时时延时长和目标响应时延时长,确定处理器当前准入条件的实施例。本申请还提供另一种确定处理器当前准入条件的实施例,如下:
基于上述确定单元202中描述的,在预选过程之前***对于处理器已经设置了默认的睡眠状态模式,即原始准入条件,或者根据应用程序的需求预先设置了处理器进入睡眠状态的模式,因此,在提供的其他实施例中,还可以包括:
预测时长获取单子单元,用于获取处理器进入睡眠状态的预测时长值;
基于获取的预测时长值,所述处理器当前进入睡眠状态满足调整所述原始准入条件的触发条件为,所述预测时长值大于原始时长值。
所述确定单元202包括:
比较子单元,用于将所述预测时长与备选处理器睡眠状态的准入条件中的处理器睡眠时长进行比较;
确定子单元,用于当比较结果为,预测时长值大于所述原始时长值时,将所述预测时长值确定为处理器当前进入睡眠状态的当前准入条件。
例如:当前处理器的睡眠状态的预测时长为6毫秒,备选处理器睡眠状态包括:C1为3毫秒,C6为6毫秒,因此,当前处理器的睡眠状态准入条件为6毫秒,对应于C6睡眠状态,意味着业务流量处理处于波谷状态或者是执行线程处理处于波谷状态,处理器可以进入深度睡眠,进而实现节能。
补充说明的,通常C6模式的睡眠状态为深度睡眠状态,由于现有技术中为避免处理器进入深度睡眠后造成延时的问题,将C6睡眠状态关闭,而本申请针对该种情况无需关闭,在C6模式的睡眠状态开启下,可以通过调整C6模式的准入条件,实现处理器在业务流量处于波谷状态时能够进入深度睡眠,而当业务流量恢复到波峰状态时能够从深度睡眠中退出,即C6的准入条件的门槛配置较高,使得处理器进行正常工作或者浅睡眠状态。
为进一步保证预选准入条件能够满足所述响应实时时延时长满足目标响应时延时长要求,还可以包括:
获得所述当前应用针对所述预选准入条件的确认信息;
所述获得所述当前应用针对所述预选准入条件的确认信息可以是将预选准入条件,即target_residency(目标驻留时间参数)发送至当前应用,当前应用对接收的目标驻留时间参数进行确认,并发送确认信息。
所述调整单元203,用于将将所述原始准入条件调整为所述当前准入条件。
所述调整单元203目的在于将所述当前处理器睡眠状态中的目标驻留时间参数修改为预选准入条件中确定的目标驻留时间参数,使得当前处理器睡眠状态的准入条件被修改,例如C6的目标驻留时间(target_residency=6毫秒)从原来的6毫秒被修改为3毫秒(target_residency=3毫秒)或者被修改为10毫秒(target_residency=10毫秒)。当目标驻留时间降低时,意味着当前业务流量处于波谷,即当前执行线程较少,降低进入深度睡眠的准入条件,达到节能的目的;当目标驻留时间增大时,意味着当前业务流程处于波峰,即当前执行线程较多,增大进入深度睡眠的准入条件,减小延迟。
基于所述确定单元202中的获得所述当前应用针对所述当前准入条件的确认信息,所述调整单元203的具体实现过程可以是根据所述确认信息,将所述当前处理器睡眠状态的准入条件修改为所述预选准入条件,即:将所述目标驻留时间参数的值修改为预选准入条件确定的值。具体实现过程将在下述本申请提供的一种处理器睡眠状态的配置***中进行说明。
以上是对本申请提供的一种处理器睡眠状态的配置装置实施例进行的说明,结合上述内容,下面参考图3和图4所示,图3是本申请提供的一种处理器的功耗控制方法第一实施例的原理示意图;图4是本申请提供的一种处理器的功耗控制方法第二实施例的原理示意图。
如图3和图4所示,在功耗控制的逻辑中包括有客户端、控制器、睡眠状态驱动器和睡眠状态选取器。其中,通过客户端获取当前应用的响应实时时延时长和目标响应时延时长。
所述客户端(APP)可以理解为安装在所述在电子设备上的应用程序,应用程序告知控制器期望的响应时延时长,即目标响应时延时长,并且能够提供控制器一个获取响应实时时延时长的方式,例如:控制器通过提供的API接口实现响应实时时延时长的获取。
控制器,用于接收所述客户端提供的所述当前应用的响应实时时延时长数据和目标响应时延时长数据,并在所述当前应用的响应实时时延时长不满足所述目标响应时延时长要求时,基于当前处理器睡眠状态的原始准入条件的调整范围,预选出能够满足所述目标响应时延时长的处理器睡眠状态的当前准入条件;其中,所述当前准入条件为满足处理器睡眠时长的条件。
所述控制器(controller)会在设定的调整范围内确定出能够满足所述客户端应用的目标响应时延时长要求的当前准入条件,即目标驻留时间值符合客户端响应目标时延时长的要求。具体可以参考上述配置方法中的步骤S102,此处不再赘述。
所述控制器具体用于:
接收来自所述睡眠状态驱动器的所述当前准入条件;
将接收的所述当前准入条件发送至所述客户端;
接收所述客户端针对所述当前准入条件的确认信息;
所述控制器根据所述确认信息向所述睡眠状态驱动器发送当前准入条件的调整信息。
睡眠状态驱动器,用于将所述当前处理器睡眠状态的原始准入条件调整为所述控制器中确定出的能够满足所述目标响应时延时长的处理器睡眠状态的当前准入条件。
所述睡眠状态驱动器(idle driver)是与处理器中的空闲框架(idle framework)配合。在所述睡眠状态驱动器中每个处理器的内核(Core)和每个C-State的管理参数和状态参数通过cpuidle_state结构保存。其中,所述C-State中的目标驻留时间参数是各个C-State状态进入的准入条件,例如:C-State中包括:C0、C1和C6,其中C0为正常执行状态,C1为一般睡眠状态,C6为深度睡眠状态,设置每个C-State状态的目标驻留时间参数使得处理器能够根据当前业务流量情况,进入相应的C-State状态。所述睡眠状态驱动器(idledriver)能够通过提供的接口对所述C-State状态的结构参数进行修改,所述接口可以是基于procfs、sysfs、syscall等。
睡眠状态驱动器,具体用于:
根据接收的所述当前准入条件的调整信息,将设定的所述当前处理器睡眠状态的原始准入条件调整为所述当前准入条件。
睡眠状态选取器,用于根据所述睡眠状态驱动器中的当前准入条件,确定所述处理器当前能够进入的睡眠状态模式也可以看做是功耗模式。
所述睡眠状态选取器(meun governor)是内核现有的C-State控制方式,即:处理器通过cpuidle_idle_call()函数内调用menu_select()决策要进入的C-State睡眠状态。
请结合图3参考图4所示,所述睡眠状态驱动器可以单独设置,也可以设置在所述睡眠状态选取器中。
所述睡眠状态选取器还用于:
用于预测处理器进入睡眠状态的预测时长;
将所述预测时长与备选处理器睡眠状态准入条件中的处理器睡眠时长比较;
根据比较结果,选取所述预测时长大于或等于所述准入条件中处理器睡眠时长的处理器睡眠状态;
将处理器睡眠状态的原始准入条件调整为所述处理器当前进入睡眠状态的当前准入条件。
以上是对本申请提供的一种睡眠状态的配置***实施例的说明,具体实现过程可以参考针对图1的具体说明过程。
基于上述内容,本申请还提供一种多核处理器的功耗控制方法,包括:
获取多核处理器中一个或多个处理器进入睡眠状态分别对应的原始准入条件;
根据所述多核处理器中一个或多个处理器当前进入睡眠状态是否满足调整所述原始准入条件的触发条件,分别确定一个或多个处理器当前进入睡眠状态的当前准入条件;
分别将一个或多个处理器的所述原始准入条件调整为相对应的一个或多个处理器的所述当前准入条件。
上述多核处理器的功耗控制方法是针对每个处理器分别设置有原始准入条件,并根据需要将原始准入条件调整为当前准入条件,以便实现处理器功耗动态控制,达到节能并兼顾时延要求。
本申请还提供一种多核处理器的功耗控制方法,该方法是针对多个处理器仅设置一个原始共用准入条件,通过调整该原始共用准入条件实现处理器的功耗动态控制,具体包括:
获取多核处理器中一个或多个处理器进入睡眠状态的原始共用准入条件;
根据所述多核处理器中一个或多个处理器当前进入睡眠状态是否满足调整所述原始共用准入条件的触发条件,确定一个或多个处理器当前进入睡眠状态的当前准入条件;
将一个或多个处理器的所述原始共用准入条件调整为所述当前准入条件。
基于上述内容,本申请还提供一种计算机存储介质,用于存储网络平台产生数据,以及对应所述网络平台产生数据进行处理的程序;
所述程序在被所述处理器读取执行时,执行如下操作:
获取处理器进入睡眠状态的原始准入条件;
根据处理器当前进入睡眠状态是否满足调整所述原始准入条件的触发条件,确定处理器当前进入睡眠状态的当前准入条件;
将所述原始准入条件调整为所述当前准入条件。
基于上述内容,本申请还提供一种电子设备,包括:
处理器;
存储器,用于存储对网络平台产生数据进行处理的程序,所述程序在被所述处理器读取执行时,执行如下操作:
获取处理器进入睡眠状态的原始准入条件;
根据处理器当前进入睡眠状态是否满足调整所述原始准入条件的触发条件,确定处理器当前进入睡眠状态的当前准入条件;
将所述原始准入条件调整为所述当前准入条件。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
Claims (16)
1.一种处理器的功耗控制方法,其特征在于,包括:
获取处理器进入睡眠状态的原始准入条件;
根据处理器当前进入睡眠状态是否满足调整所述原始准入条件的触发条件,确定处理器当前进入睡眠状态的当前准入条件;
将所述原始准入条件调整为所述当前准入条件。
2.根据权利要求1所述的处理器的功耗控制方法,其特征在于,还包括:获取当前应用的响应实时时延时长和目标响应时延时长;
所述处理器当前进入睡眠状态满足调整所述原始准入条件的触发条件为,所述当前应用的响应实时时延时长不满足所述目标响应时延时长要求。
3.根据权利要求2所述的处理器的功耗控制方法,其特征在于,所述确定处理器当前进入睡眠状态的当前准入条件,包括:
基于所述原始准入条件的调整范围,确定出能够满足所述目标响应时延时长要求下,处理器进入睡眠状态的当前准入条件。
4.根据权利要求3所述的处理器的功耗控制方法,其特征在于,所述基于所述原始准入条件的调整范围,确定出能够满足所述目标响应时延时长要求下,处理器进入睡眠状态的当前准入条件,包括:
将所述原始准入条件的调整范围的中间值,确定为预选准入条件;
基于所述预选准入条件,当获取的当前应用的响应实时时延时长满足目标响应时延时长要求时,在所述中间值和所述调整范围的两端值之间重新确定新的调整范围;
将新的调整范围的中间值重新确定为预选准入条件,直至找到响应实时时延时长满足目标响应时延时长要求的调整范围内最小中间值;
将最小中间值确定为当前准入条件。
5.根据权利要求4所述的处理器的功耗控制方法,其特征在于,所述基于所述预选准入条件,当获取的当前应用的响应实时时延时长满足目标响应时延时长要求时,在所述中间值和所述调整范围的两端值之间重新确定新的调整范围,包括:
将所述调整范围的下限值与所述中间值形成的区间重新确定为新的调整范围。
6.根据权利要求3所述的处理器的功耗控制方法,其特征在于,所述基于所述原始准入条件的调整范围,确定出能够满足所述目标响应时延时长下,处理器进入睡眠状态的当前准入条件,包括:
将所述原始准入条件的调整范围的中间值,确定为预选准入条件;
基于所述预选准入条件,当获取的当前应用的响应实时时延时长仍不满足目标响应时延时长要求时,在所述中间值和所述调整范围的两端值之间重新确定新的调整范围;
将新的调整范围的中间值重新确定为预选准入条件,直至当前应用的响应实时时延时长满足目标响应时延时长要求,将重新确定的预选准入条件确定为当前准入条件。
7.根据权利要求6所述的处理器的功耗控制方法,其特征在于,所述基于所述预选准入条件,当获取的当前应用的响应实时时延时长仍不满足目标响应时延时长要求时,在所述中间值和所述调整范围的两端值之间重新确定新的调整范围,包括:
将所述调整范围的上限值与所述中间值形成的区间重新确定为新的调整范围。
8.根据权利要求1所述的处理器的功耗控制方法,其特征在于,所述原始准入条件具体为处理器睡眠状态数据结构中的目标驻留时间;
所述将所述原始准入条件调整为所述当前准入条件,包括:
将所述原始目标驻留时间中的原始时长值修改为当前准入条件的当前时长值。
9.根据权利要求1所述的处理器的功耗控制方法,其特征在于,所述原始准入条件为满足处理器睡眠的原始时长值,所述当前准入条件为满足处理器睡眠的当前时长值。
10.根据权利要求9所述的处理器的功耗控制方法,其特征在于,还包括:
获取处理器进入睡眠状态的预测时长值;
所述处理器当前进入睡眠状态满足调整所述原始准入条件的触发条件为,所述预测时长值大于原始时长值。
11.根据权利要求10所述的处理器的功耗控制方法,其特征在于,所述确定处理器当前进入睡眠状态的当前准入条件,包括:
将所述预测时长值与原始时长值比较;
当预测时长值大于所述原始时长值时,将所述预测时长值确定为处理器当前进入睡眠状态的当前准入条件。
12.一种处理器的功耗控制装置,其特征在于,包括:
获取单元,用于获取处理器进入睡眠状态的原始准入条件;
确定单元,用于根据处理器当前进入睡眠状态是否满足调整所述原始准入条件的触发条件,确定处理器当前进入睡眠状态的当前准入条件;
调整单元,用于将所述原始准入条件调整为所述当前准入条件。
13.一种多核处理器的功耗控制方法,其特征在于,包括:
获取多核处理器中一个或多个处理器进入睡眠状态分别对应的原始准入条件;
根据所述多核处理器中一个或多个处理器当前进入睡眠状态是否满足调整所述原始准入条件的触发条件,分别确定一个或多个处理器当前进入睡眠状态的当前准入条件;
分别将一个或多个处理器的所述原始准入条件调整为相对应的一个或多个处理器的所述当前准入条件。
14.一种多核处理器的功耗控制方法,其特征在于,包括:
获取多核处理器中一个或多个处理器进入睡眠状态的原始共用准入条件;
根据所述多核处理器中一个或多个处理器当前进入睡眠状态是否满足调整所述原始共用准入条件的触发条件,确定一个或多个处理器当前进入睡眠状态的当前准入条件;
将一个或多个处理器的所述原始共用准入条件调整为所述当前准入条件。
15.一种计算机存储介质,用于存储网络平台产生数据,以及对应所述网络平台产生数据进行处理的程序;
所述程序在被所述处理器读取执行时,执行如下操作:
获取处理器进入睡眠状态的原始准入条件;
根据处理器当前进入睡眠状态是否满足调整所述原始准入条件的触发条件,确定处理器当前进入睡眠状态的当前准入条件;
将所述原始准入条件调整为所述当前准入条件。
16.一种电子设备,包括:
处理器;
存储器,用于存储对网络平台产生数据进行处理的程序,所述程序在被所述处理器读取执行时,执行如下操作:
获取处理器进入睡眠状态的原始准入条件;
根据处理器当前进入睡眠状态是否满足调整所述原始准入条件的触发条件,确定处理器当前进入睡眠状态的当前准入条件;
将所述原始准入条件调整为所述当前准入条件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910040749.1A CN111443792B (zh) | 2019-01-16 | 2019-01-16 | 处理器的功耗控制方法、装置以及电子和存储设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910040749.1A CN111443792B (zh) | 2019-01-16 | 2019-01-16 | 处理器的功耗控制方法、装置以及电子和存储设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111443792A true CN111443792A (zh) | 2020-07-24 |
CN111443792B CN111443792B (zh) | 2023-05-09 |
Family
ID=71652272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910040749.1A Active CN111443792B (zh) | 2019-01-16 | 2019-01-16 | 处理器的功耗控制方法、装置以及电子和存储设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111443792B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114610140A (zh) * | 2022-03-31 | 2022-06-10 | 联想(北京)有限公司 | 一种处理器的功耗控制方法、***及电子设备 |
WO2023004662A1 (zh) * | 2021-07-29 | 2023-02-02 | 华为技术有限公司 | 延迟产生方法及相关设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7072080B1 (en) * | 1999-09-02 | 2006-07-04 | Brother Kogyo Kabushiki Kaisha | Information processor |
CN101091147A (zh) * | 2005-05-10 | 2007-12-19 | 索尼计算机娱乐公司 | 计算***中功率管理的方法和设备 |
CN103313296A (zh) * | 2012-03-12 | 2013-09-18 | 美国博通公司 | 应用处理器唤醒抑制 |
CN103369645A (zh) * | 2012-04-03 | 2013-10-23 | 三星电子株式会社 | 情境识别装置及方法 |
CN106055079A (zh) * | 2016-05-31 | 2016-10-26 | 广东欧珀移动通信有限公司 | 一种中央处理器的管理方法、及装置 |
CN108700924A (zh) * | 2015-11-20 | 2018-10-23 | 三星电子株式会社 | 功能操作方法和支持该方法的电子装置 |
-
2019
- 2019-01-16 CN CN201910040749.1A patent/CN111443792B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7072080B1 (en) * | 1999-09-02 | 2006-07-04 | Brother Kogyo Kabushiki Kaisha | Information processor |
CN101091147A (zh) * | 2005-05-10 | 2007-12-19 | 索尼计算机娱乐公司 | 计算***中功率管理的方法和设备 |
CN103313296A (zh) * | 2012-03-12 | 2013-09-18 | 美国博通公司 | 应用处理器唤醒抑制 |
CN103369645A (zh) * | 2012-04-03 | 2013-10-23 | 三星电子株式会社 | 情境识别装置及方法 |
CN108700924A (zh) * | 2015-11-20 | 2018-10-23 | 三星电子株式会社 | 功能操作方法和支持该方法的电子装置 |
CN106055079A (zh) * | 2016-05-31 | 2016-10-26 | 广东欧珀移动通信有限公司 | 一种中央处理器的管理方法、及装置 |
WO2017206858A1 (zh) * | 2016-05-31 | 2017-12-07 | 广东欧珀移动通信有限公司 | 一种中央处理器的管理方法、及相关产品 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023004662A1 (zh) * | 2021-07-29 | 2023-02-02 | 华为技术有限公司 | 延迟产生方法及相关设备 |
CN114610140A (zh) * | 2022-03-31 | 2022-06-10 | 联想(北京)有限公司 | 一种处理器的功耗控制方法、***及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111443792B (zh) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5601731B2 (ja) | プロセッサを動的に制御するシステムおよび方法 | |
US9176572B2 (en) | System and method for controlling central processing unit power with guaranteed transient deadlines | |
US7272730B1 (en) | Application-driven method and apparatus for limiting power consumption in a processor-controlled hardware platform | |
KR101333900B1 (ko) | 동적 메모리 동작 상태를 통한 메모리 전력 관리 | |
US9104411B2 (en) | System and method for controlling central processing unit power with guaranteed transient deadlines | |
US9128705B2 (en) | System and method for controlling central processing unit power with reduced frequency oscillations | |
EP3268842B1 (en) | Methods and systems for coordination of operating states amongst multiple socs within a computing device | |
US8224497B2 (en) | Energy limit in a sliding window in power and heat management | |
US10761774B2 (en) | Forced idling of memory subsystems | |
CN107924225B (zh) | 用于动态地调整存储器状态转变定时器的***和方法 | |
KR101659705B1 (ko) | 보장된 과도 데드라인들로 중앙 프로세싱 유닛 전력을 제어하기 위한 시스템 및 방법 | |
US9268389B2 (en) | Reducing power consumption on a processor system by masking actual processor load with insertion of dummy instructions | |
US9274584B2 (en) | Processor performance state optimization | |
CN103576833A (zh) | 存储器控制器的训练、功率门控和动态频率改变 | |
CN101661327A (zh) | 一种调节中央处理器主频的方法及装置 | |
US20170212581A1 (en) | Systems and methods for providing power efficiency via memory latency control | |
CN111443792B (zh) | 处理器的功耗控制方法、装置以及电子和存储设备 | |
US11256321B2 (en) | Network-driven, packet context-aware power management for client-server architecture | |
CN112015260A (zh) | 处理器的性能状态的调节方法、装置、uefi及存储介质 | |
CN110099161B (zh) | 智能终端及其控制方法、具有存储功能的装置 | |
CN117270672A (zh) | 一种协同休眠唤醒管理方法及***、相关装置、存储介质 | |
CN116540861A (zh) | 一种服务器控制方法及装置、电子设备、存储介质 | |
CN117492848A (zh) | 一种处理器状态的切换方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |