处理器频率控制方法、装置及存储介质
文献发布时间:2023-06-19 19:35:22
技术领域
本公开涉及处理器领域,尤其涉及一种处理器频率控制方法、装置及存储介质。
背景技术
随着处理器制作工艺的提升,手机等移动电子设备所能提供的算力也越来越强,游戏相机等高负载应用,在高算力的支持下,运行的也越来越流畅。但算力增长的同时,续航却变的越来越差,发烫也日益严重。如何平衡手机的性能和功耗,带给用户流畅体验的同时尽可能的降低功耗开销,增强续航,成为了手机基础体验领域的一个重大挑战。
在相关技术中,针对负载变化较大场景,高通等厂商提供了一套perflock机制,通过接口封装提供给系统应用使用。应用在识别到场景变化后,通过该接口,主动触发提频和限频操作。然而,在实际使用中,由于应用无法知道CPU(central processing unit,中央处理器)真实的算力需求,也不知道应用任务所在CPU各核心的运行分布,所以为了保障性能需求,通常会采用极端的方式,将所有CPU核心频率同时提升至最大,由此带来的功耗开销也会非常大,因此存在极大的缺陷。
发明内容
为克服相关技术中存在的问题,本公开提供一种处理器频率控制方法、装置及存储介质。
根据本公开实施例的第一方面,提供一种处理器频率控制方法,包括:
在检测到场景切换的情况下,根据新增渲染任务的负载信息以及所述新增渲染任务之间依赖关系,识别所述新增渲染任务中的关键任务并标记所述关键任务;
根据所述关键任务的标记检测所述关键任务的调度流程;
在确定所述调度流程表征所述关键任务进入目标处理器的执行队列的情况下,提高所述目标处理器的工作频率。
可选地,所述根据新增渲染任务的负载信息以及所述新增渲染任务之间依赖关系,识别所述新增渲染任务中的关键任务包括:
根据所述负载信息,确定所述新增渲染任务中负载高于预设负载阈值的第一任务;
根据所述第一任务与所述新增渲染任务之间的依赖关系,确定所述新增渲染任务中的关键任务。
可选地,所述根据所述第一任务与所述新增渲染任务之间的依赖关系,确定所述新增渲染任务中的关键任务包括:
针对所述第一任务中任意一个目标任务,确定依赖于所述目标任务的新增渲染任务数量;
在依赖于所述目标任务的任务数量大于预设数量阈值的情况下,确定所述目标任务为关键任务。
可选地,所述提高所述目标处理器的工作频率包括:
根据所述关键任务的处理器占用率以及所述目标处理器的状态信息,确定频率控制值;
根据所述频率控制值提高所述目标处理器的工作频率。
可选地,所述目标处理器的状态信息包括所述目标处理器的当前利用率、当前工作频率以及最大工作频率;
所述方法包括:
获取对应所述场景切换的切换类型的加速系数;
所述根据所述关键任务的处理器占用率以及所述目标处理器的当前状态信息,确定频率控制值包括:
根据所述当前利用率与所述处理器占用率的和,乘以所述最大频率并乘以所述加速系数,得到目标频率;
根据目标频率减去所述目标处理器的当前工作频率,确定所述频率控制值。
可选地,所述对应所述场景切换的类型加速系数是基于用户针对所述切换类型反馈的大数据确定的。
可选地,所述方法还包括:
确定对应所述场景切换的切换类型的持续时长,所述持续时长是通过机器学习预先计算得到的对应所述切换类型的目标时长;
所述根据所述关键任务的标记检测所述关键任务的调度流程包括:
在所述持续时长内根据所述关键任务的标记检测所述关键任务的调度流程。
根据本公开实施例的第二方面,提供一种处理器频率控制装置,包括:
识别模块,被配置为在检测到场景切换的情况下,根据新增渲染任务的负载信息以及所述新增渲染任务之间依赖关系,识别所述新增渲染任务中的关键任务并标记所述关键任务;
检测模块,被配置为根据所述关键任务的标记检测所述关键任务的调度流程;
控制模块,被配置为在确定所述调度流程表征所述关键任务进入目标处理器的执行队列的情况下,提高所述目标处理器的工作频率。
根据本公开实施例的第三方面,提供一种处理器频率控制装置,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
在检测到场景切换的情况下,根据新增渲染任务的负载信息以及所述新增渲染任务之间依赖关系,识别所述新增渲染任务中的关键任务并标记所述关键任务;
根据所述关键任务的标记检测所述关键任务的调度流程;
在确定所述调度流程表征所述关键任务进入目标处理器的执行队列的情况下,提高所述目标处理器的工作频率。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现本公开第一方面所提供的处理器频率控制方法的步骤。
本公开的实施例提供的技术方案可以包括以下有益效果:通过在场景切换时识别并标记关键任务,并根据标记信息监控关键任务的调度流程,在关键任务进入处理器的执行队列时,提高该处理器的功率,能够保证关键任务执行速率,避免了场景切换卡顿的同时,还能够只提高执行该任务的处理器的频率,有效地降低了功耗。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种处理器频率控制方法的流程图。
图2是根据一示例性实施例示出的一种处理器频率控制方法的另一流程图。
图3是根据一示例性实施例示出的一种处理器频率控制装置的框图。
图4是根据一示例性实施例示出的另一种处理器频率控制装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种处理器频率控制方法的流程图,如图1所示,其中,该处理器可以是具备多个核心的处理器,该方法的执行主体可以是处理器的调度模块,也可以是其他具备信息处理能力的电子设备,该方法包括以下步骤。
S101、在检测到场景切换的情况下,根据新增渲染任务的负载信息以及所述新增渲染任务之间依赖关系,识别所述新增渲染任务中的关键任务并标记所述关键任务。
本领域技术人员应理解,场景切换包括滑动屏幕、拖拽应用图标、打开应用、进入游戏以及解锁手机进入桌面等等终端的场景发生改变的情况。具体地,终端需要对画面重新渲染的所有情况均可以理解为场景切换。
其中,以执行主体为处理器的调度模块为例,该调度模块能够实时统计任务的负载信息,在场景切换时,该新增渲染任务可以是该调度模块通过缓冲队列(queueBuffer)机制通过对切换后的场景进行识别得到的。
应理解的是,上述新增渲染任务以及关键任务均至少有一个,关键任务可以表征为主导场景切换的渲染线程能否快速执行完成的任务,即,若关键任务的无法及时执行,则整个场景切换就无法快速地完成渲染操作,此时可能表现为手机卡顿。
S102、根据所述关键任务的标记检测所述关键任务的调度流程。
本领域技术人员应理解,任务在执行时可能会基于各个处理器的负载情况以及任务的执行情况,在不同的处理器之间迁移,该调度流程即可以表征对应的关键任务在不同的处理器之间的调度迁移情况。
S103、在确定所述调度流程表征所述关键任务进入目标处理器的执行队列的情况下,提高所述目标处理器的工作频率。
其中,目标处理器可以是上述具备多个核心的处理器中的任意一个处理器核心。
可以理解的是,在关键任务入队之后,执行队列中该关键任务之前可能还会存在待执行或未执行完成的任务,在排在该关键任务之前的任务被执行完成后,才会执行该关键任务。
在本公开实施例中,通过在场景切换时识别并标记关键任务,并根据标记信息监控关键任务的调度流程,在关键任务进入处理器的执行队列时,提高该处理器的功率,能够保证关键任务执行速率,避免了场景切换卡顿的同时,还能够只提高执行该任务的处理器的频率,有效地降低了功耗。
在一些可选地实施例中,所述根据新增渲染任务的负载信息以及所述新增渲染任务之间依赖关系,识别所述新增渲染任务中的关键任务包括:
根据所述负载信息,确定所述新增渲染任务中负载高于预设负载阈值的第一任务;
根据所述第一任务与所述新增渲染任务之间的依赖关系,确定所述新增渲染任务中的关键任务。
其中,预设负载阈值的设定可以是预先标定的数值,也可以是根据各个新增渲染任务的负载信息确定的,例如,新增渲染任务中负载排名前30%的渲染任务可以被认定为第一任务,则可以将该预设负载阈值设定为第30%的渲染任务的负载。该预设负载阈值的设置方法本公开对此不作限定。
本领域技术人员应理解,在场景切换时,各个渲染任务之间很有可能存在依赖关系,例如任务间的binder消息传递依赖,任务A给任务B发送一个同步消息,任务A需要等待任务B处理完该同步消息后才能运行,此时,任务A依赖于任务B,这是一个典型的任务依赖场景,类似的还有锁依赖等等依赖关系。
采用本方案,通过识别新增渲染任务中的高负载任务,并根据高负载任务与各个新增渲染任务之间的依赖关系确定关键任务,能够更准确地找出在场景切换时需要较大算力,并且与其他任务也关联密切的任务,有效地保证了场景切换的流畅。
可选地,所述根据所述第一任务与所述新增渲染任务之间的依赖关系,确定所述新增渲染任务中的关键任务包括:
针对所述第一任务中任意一个目标任务,确定依赖于所述目标任务的新增渲染任务数量;
在依赖于所述目标任务的任务数量大于预设数量阈值的情况下,确定所述目标任务为关键任务。
其中,该预设数量阈值可以是预先标定的数值,也可以是根据各个第一任务被依赖的任务数量的排名确定的阈值,例如,针对第一任务中的任务A,存在10个新增渲染任务依赖于该任务A,该任务A的被依赖数量处于所有第一任务中的第四名,若标定被依赖数量排名前三的任务为关键任务,则该预设数量阈值可以设置为10。
采用本方案,可以根据第一任务中各个任务被新增渲染任务所依赖的数量确定第一任务中的关键任务,能够使得确定出的关键任务与其他新增渲染任务的关联度更高,使得整体新增的渲染任务能够更快的被全部处理结束,保证了场景切换的流畅度。
在一些实施例中,所述提高所述目标处理器的工作频率包括:
根据所述关键任务的处理器占用率以及所述目标处理器的状态信息,确定频率控制值;
根据所述频率控制值提高所述目标处理器的工作频率。
其中,关键任务的处理器占用率可以是调度模块预先估计得到的。
采用本方案,可以根据关键任务的处理器占用率以及处理器的当期状态,合理地对处理器的频率进行控制,既能够避免提高幅度过低无法保证算力,还可以避免提高幅度过高导致功耗过高。
进一步,所述目标处理器的状态信息包括所述目标处理器的当前利用率、当前工作频率以及最大工作频率;
所述方法包括:
获取对应所述场景切换的切换类型的加速系数;
所述根据所述关键任务的处理器占用率以及所述目标处理器的当前状态信息,确定频率控制值包括:
根据所述当前利用率与所述处理器占用率的和,乘以所述最大频率并乘以所述加速系数,得到目标频率;
根据目标频率减去所述目标处理器的当前工作频率,确定所述频率控制值。
可以理解的是,针对不同的切换类型,用户期望的流程处理加速幅度是不同的,例如,对比游戏加载场景的切换类型与滑动桌面的切换类型,在基础算力已经足够的情况下,提升频率的幅度对滑动桌面的渲染速度的变化不太明显,导致用户对滑动桌面的场景的渲染速度变化的敏感程度可能较低,因此,针对滑动桌面的加速系数的设定可以偏低,使得功耗也得到降低。
具体地,频率控制值的计算可以以以下公式表示:△f=(λ1+λ2)*fmax*k–f1。其中,λ1表示目标处理器的当前利用率,λ2表示关键任务的处理器占用率,fmax表示目标处理器的最大频率,k表示加速系数,f1表示处理器的当前工作频率,△f表示频率控制值。
采用本方案,根据加速系数、关键任务的处理器占用率、目标处理器的当前利用率、当前工作频率以及最大工作频率计算得到频率控制值,不仅更能够合理地提高处理器的工作频率,还能够适应于各种不同的切换类型,保证用户的体验的同时还能够进一步地节省功耗。
可选地,所述对应所述场景切换的切换类型加速系数是基于用户针对所述切换类型反馈的大数据确定的。
例如,加速系数可以对所有场景设置一个相同的较低的基础值,若用户反馈在游戏加载场景的渲染时长过长,则可以提高游戏加载的切换类型的加速系数,以满足用户的需求。
采用本方案,通过用户反馈的数据对加速系数进行标定并调整,能够使得对处理器频率的控制更加符合用户的需求,提高用户的使用体验。
在一些实施例中,所述方法还包括:
确定对应所述场景切换的切换类型的持续时长,所述持续时长是通过机器学习预先计算得到的对应所述切换类型的目标时长;
所述根据所述关键任务的标记检测所述关键任务的调度流程包括:
在所述持续时长内根据所述关键任务的标记检测所述关键任务的调度流程。
例如,针对打开应用的切换类型,通过机器学习得到对应该切换类型通常会在2秒内完成渲染,则可以确定对应打开应用的持续时长是2秒,则可以在检测到开始打开应用之后的2秒内,检测关键任务的调度流程并提高对应的处理器的工作频率。
在一些可能的情况下,关键任务入队后,任务队列中处于该关键任务之前的任务可能由于一些问题导致无法执行完成,若一直保持提高处理器的频率,可能会功耗过高导致电池电量消耗过快。
采用本方案,通过机器学习确定各种场景切换的切换类型对应的持续时长,并在该持续时长内,提高执行关键任务的处理器的工作频率,由于场景切换的时间一般较短,通过增加时间限定,可以实现进一步地降低功耗。
为了使得本领域技术人员更理解本公开提供的技术方案,本公开还提供根据一示例性实施例示出的一种处理器频率控制方法的另一流程图图2,如图2所示,该方法包括步骤:
S201、判断是否检测到场景切换。
在确定检测到场景切换的情况下,执行步骤S202。
S202、确定新增渲染任务以及新增渲染任务的负载信息、处理器占用率。
S203、根据所述负载信息,确定负载较高的前40%的第一任务。
S204、确定该第一任务中被新增渲染任务依赖的任务数量最多的前3个任务为关键任务。
S205、标记该关键任务,根据所述关键任务的标记检测所述关键任务的调度流程。
通过步骤S202至步骤S205,能够在场景切换时,从新增的渲染任务中有效地标记能够主导渲染线程能否快速执行完成的关键任务。
S206、判断当前时刻是否处于对应场景切换的切换类型的持续时长内。
在处于持续时长内的情况下,执行步骤S207。
S207、根据调度流程确定执行关键任务的处理器,并获取该处理器的当前利用率、当前工作频率以及最大工作频率。
S208、获取对应场景切换的切换类型的加速系数。
S209、根据当前利用率与处理器占用率的和,乘以最大频率并乘以该加速系数,得到目标频率。
S210、根据目标频率减去所述目标处理器的当前工作频率,确定所述频率控制值。
其中,步骤S203中的40%以及步骤S204中的前3,均是便于理解示出的数据,具体实施时可以根据具体需求进行设计,本公开对此并不用做限定。
应理解的是,步骤S206至步骤S210是在步骤S205执行之后持续执行的,知道步骤S206确定当前时刻不处于该持续时长内的情况下,步骤S206至步骤S210停止执行。
基于相同的发明构思,图3是根据一示例性实施例示出的一种处理器频率控制装置30,该装置可以是手机等移动电子设备,也可以是电子设备的一部分,所述装置30包括:
识别模块31,被配置为在检测到场景切换的情况下,根据新增渲染任务的负载信息以及所述新增渲染任务之间依赖关系,识别所述新增渲染任务中的关键任务并标记所述关键任务;
检测模块32,被配置为根据所述关键任务的标记检测所述关键任务的调度流程;
控制模块33,被配置为在确定所述调度流程表征所述关键任务进入目标处理器的执行队列的情况下,提高所述目标处理器的工作频率。
可选地,所述识别模块31包括:
第一确定模块,被配置为根据所述负载信息,确定所述新增渲染任务中负载高于预设负载阈值的第一任务;
第二确定模块,被配置为根据所述第一任务与所述新增渲染任务之间的依赖关系,确定所述新增渲染任务中的关键任务。
可选地,所述第二确定模块具体被配置为:
针对所述第一任务中任意一个目标任务,确定依赖于所述目标任务的新增渲染任务数量;
在依赖于所述目标任务的任务数量大于预设数量阈值的情况下,确定所述目标任务为关键任务。
可选地,所述控制模块33包括:
第三确定模块,被配置为根据所述关键任务的处理器占用率以及所述目标处理器的状态信息,确定频率控制值;
控制子模块,被配置为根据所述频率控制值提高所述目标处理器的工作频率。
可选地,所述目标处理器的状态信息包括所述目标处理器的当前利用率、当前工作频率以及最大工作频率;
所述装置30包括:
获取模块,被配置为获取对应所述场景切换的切换类型的加速系数;
所述第三确定模块具体被配置为:
根据所述当前利用率与所述处理器占用率的和,乘以所述最大频率并乘以所述加速系数,得到目标频率;
根据目标频率减去所述目标处理器的当前工作频率,确定所述频率控制值。
可选地,所述对应所述场景切换的类型加速系数是基于用户针对所述切换类型反馈的大数据确定的。
可选地,所述装置30还包括:
第四确定模块,被配置为确定对应所述场景切换的切换类型的持续时长,所述持续时长是通过机器学习预先计算得到的对应所述切换类型的目标时长;
所述检测模块32具体被配置为:
在所述持续时长内根据所述关键任务的标记检测所述关键任务的调度流程。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本公开还提供一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现本公开提供的处理器频率控制方法的步骤。
图4是根据一示例性实施例示出的一种处理器频率控制的装置400的框图。例如,装置400可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图4,装置400可以包括以下一个或多个组件:处理组件402,存储器408,电力组件406,多媒体组件404,音频组件410,输入/输出(I/O)的接口412,传感器组件414,以及通信组件416。
处理组件402通常控制装置400的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件402可以包括一个或多个处理器420来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件402可以包括一个或多个模块,便于处理组件402和其他组件之间的交互。例如,处理组件402可以包括多媒体模块,以方便多媒体组件404和处理组件402之间的交互。
存储器408被配置为存储各种类型的数据以支持在装置400的操作。这些数据的示例包括用于在装置400上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器408可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电力组件406为装置400的各种组件提供电力。电力组件406可以包括电源管理系统,一个或多个电源,及其他与为装置400生成、管理和分配电力相关联的组件。
多媒体组件404包括在所述装置400和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件404包括一个前置摄像头和/或后置摄像头。当装置400处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件410被配置为输出和/或输入音频信号。例如,音频组件410包括一个麦克风(MIC),当装置400处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器408或经由通信组件416发送。在一些实施例中,音频组件410还包括一个扬声器,用于输出音频信号。
I/O接口412为处理组件402和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件414包括一个或多个传感器,用于为装置400提供各个方面的状态评估。例如,传感器组件414可以检测到装置400的打开/关闭状态,组件的相对定位,例如所述组件为装置400的显示器和小键盘,传感器组件414还可以检测装置400或装置400一个组件的位置改变,用户与装置400接触的存在或不存在,装置400方位或加速/减速和装置400的温度变化。传感器组件414可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件414还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件414还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件416被配置为便于装置400和其他设备之间有线或无线方式的通信。装置400可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件416经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件416还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置400可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述处理器频率控制方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器408,上述指令可由装置400的处理器420执行以完成上述处理器频率控制方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在另一示例性实施例中,还提供一种计算机程序产品,该计算机程序产品包含能够由可编程的装置执行的计算机程序,该计算机程序具有当由该可编程的装置执行时用于执行上述的处理器频率控制方法的代码部分。
本领域技术人员在考虑说明书及实践本公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
- 声音事件播放的控制方法、控制装置、存储介质与处理器
- 虚拟对象的控制方法、控制装置、存储介质和处理器
- 游戏中的显示控制方法、装置、存储介质、处理器及终端
- 一种机床自动关机的控制方法及装置、存储介质和处理器
- 温度控制方法、装置、设备、存储介质及处理器
- 锁频器的频率响应控制方法、装置、存储介质和处理器
- 锁频器的频率响应控制方法、装置、存储介质和处理器