掌桥专利:专业的专利平台
掌桥专利
首页

处理器频率的调整方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 11:55:48


处理器频率的调整方法、装置、电子设备及存储介质

技术领域

本申请涉及调频技术领域,更具体地,涉及一种处理器频率的调整方法、装置、电子设备及存储介质。

背景技术

在相关技术中,Android生态的电池能耗效率较低。占据移动设备的,能耗消耗占比比较大的是图像生成管道,因为其需要中央处理器(Central Processing Unit,CPU)和图形处理器(Graphics Processing Unit,GPU)的计算资源来大量生成显示图像。而当前Android系统,基于渲染任务计算量,分别提高CPU和GPU的计算频率,如此,虽然可以满足对图像渲染的性能要求,但是可能会造成功耗消耗较大,并且功耗效率较低。

发明内容

有鉴于此,本申请提出了一种处理器频率的调整方法、装置、电子设备及存储介质。

第一方面,本申请实施例提供了一种处理器频率的调整方法,应用于电子设备,所述电子设备包括中央处理器CPU以及图形处理器GPU,所述方法包括:在渲染完成当前帧图像时,获取所述CPU以及所述GPU在当前工作频率下渲染下一帧图像的渲染时长;若所述渲染时长满足预设渲染时长条件,对所述CPU以及所述GPU的当前工作频率进行指定调整,所述指定调整包括降低所述CPU的当前工作频率,并提升所述GPU的当前工作频率;若进行所述指定调整后的所述CPU以及所述GPU的功耗总和降低,且所述渲染时长仍满足所述预设渲染时长条件,重复所述对所述CPU以及所述GPU的当前工作频率进行指定调整,直至所述渲染时长不满足预设渲染时长条件,或者所述降低当前工作频率后的所述CPU以及提升当前工作频率后的所述GPU的功耗总和不再降低;将所述CPU的当前工作频率调整为在最后一次进行所述指定调整前的工作频率,以及将所述GPU的当前工作频率调整为在最后一次进行所述指定调整前的工作频率。

第二方面,本申请实施例提供了一种处理器频率的调整装置,应用于电子设备,所述电子设备包括中央处理器CPU以及图形处理器GPU,所述装置包括:渲染时长获取模块、第一条件判断模块、第二条件判断模块以及频率调整模块。渲染时长获取模块,用于在渲染完成当前帧图像时,获取所述CPU以及所述GPU在当前工作频率下渲染下一帧图像的渲染时长;第一条件判断模块,用于若所述渲染时长满足预设渲染时长条件,对所述CPU以及所述GPU的当前工作频率进行指定调整,所述指定调整包括降低所述CPU的当前工作频率,并提升所述GPU的当前工作频率;第二条件判断模块,用于若进行所述指定调整后的所述CPU以及所述GPU的功耗总和降低,且所述渲染时长仍满足所述预设渲染时长条件,重复所述对所述CPU以及所述GPU的当前工作频率进行指定调整,直至所述渲染时长不满足预设渲染时长条件,或者所述降低当前工作频率后的所述CPU以及提升当前工作频率后的所述GPU的功耗总和不再降低;频率调整模块,用于将所述CPU的当前工作频率调整为在最后一次进行所述指定调整前的工作频率,以及将所述GPU的当前工作频率调整为在最后一次进行所述指定调整前的工作频率。

第三方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器;存储器;一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行第一方面提供的处理器频率的调整方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,所述程序代码可被处理器调用执行第一方面提供的处理器频率的调整方法。

本申请提供的方案中,在渲染完成当前帧图像时,获取CPU以及GPU在当前工作频率下渲染下一帧图像的渲染时长;若渲染时长满足预设渲染时长条件,对CPU以及GPU的当前工作频率进行指定调整;若进行指定调整后的CPU以及GPU的功耗总和降低,且渲染时长仍满足预设渲染时长条件,重复对CPU以及GPU的当前工作频率进行指定调整,直至所述渲染时长不满足预设渲染时长条件,或者降低当前工作频率后的CPU以及提升当前工作频率后的GPU的功耗总和不再降低;将CPU的当前工作频率调整为在最后一次进行指定调整前的工作频率,以及将GPU的当前工作频率调整为在最后一次进行指定调整前的工作频率。如此,结合CPU和GPU的功耗总和,对CPU和GPU的当前工作频率进行整体联动调整,实现频率设置的整体最优,并且在保证性能的基础上,降低CPU频率以及提高GPU频率,可以减少功耗损失,平衡最优的功耗效率。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了本申请实施例提供的处理器频率的调整方法的原理示意图。

图2示出了本申请一实施例提供的处理器频率的调整方法的流程示意图。

图3示出了本申请实施例提供的CPU以及GPU的功耗的示意图。

图4示出了本申请实施例提供的调整频率前的渲染时间的示意图。

图5示出了本申请实施例提供的调整频率后的渲染时间的示意图。

图6示出了本申请另一实施例提供的处理器频率的调整方法的流程示意图。

图7是根据本申请一实施例提供的一种处理器频率的调整装置的框图。

图8是本申请实施例的用于执行根据本申请实施例的处理器频率的调整方法的电子设备的框图。

图9是本申请实施例的用于保存或者携带实现根据本申请实施例的处理器频率的调整方法的程序代码的存储单元。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。

当前Android系统,CPU频率和GPU频率各自独立,根据当前的计算任务设置最优的频率。为达到流畅的用户体验,Android采用了一种图像管道的技术方案来渲染显示帧Frame,在显示帧率为60帧/秒时,要求每秒渲染60帧,这样也就意味着每一帧至少得在16.7ms内完成渲染。如果未内在16.7ms内完成渲染,移动计算设备界面可能会出现卡顿,丢帧的现象。Android系统为了帧渲染而分别提升CPU和GPU的计算频率,增加了额外的硬件电源消耗。因为设备开机亮屏后就一直不停止的渲染显示帧,如此,对电源的消耗较大,导致损失,因而功耗效率较低。

针对上述问题,发明人提出一种处理器频率的调整方法、装置、电子设备及存储介质,可以根据CPU和GPU的功耗总和,对CPU和GPU的当前工作频率进行整体联动调整,实现频率设置的整体最优,以提高功耗效率。下面对该内容进行详细描述。

请参照图1,图1为本申请一实施例提供的一种处理器频率的调整方法的原理示意图,应用于电子设备,所述电子设备包括中央处理器CPU以及图形处理器GPU。下面将结合图1对本申请实施例提供的处理器频率的调整方法的原理示意图进行详细阐述。

在本实施例中,电子设备可以是Android系统的手机、电视、虚拟现实(VirtualReality,VR)设备,增强现实(Augmented Reality,AR)设备,物联网(Internet of Things,IOT)设备等,本实施例对此不作限制。CPU和GPU在接收到垂直同步(VerticalSynchronization,VSync)信号时,开始对下一帧图像开始渲染。在对当前帧图像的渲染进程完成后至下一个VSync信号到来之前,可以通过渲染预测机制对基于CPU和GPU的当前工作频率是渲染下一帧图像的渲染时间进行预测,并将预测得到的渲染时间反馈给动态电压频率(Dynamic voltage and frequency scaling,DV FS)调节机制,DVFS调节机制可以根据渲染时间对CPU和GPU的当前工作频率进行调整,并将调整后的CPU的当前工作频率的相关参数发送至CPU管理模块,以及将调整后的GPU的当前工作频率的相关参数发送至GPU管理模块,对应地,CPU管理模块基于相关参数调整CPU的当前工作频率,GPU管理模块基于相关参数调整GPU的当前工作频率。另外,图像渲染的相关线程可以设置于CPU小核上运行。如此,可以实现对CPU和GPU的当前工作频率进行整体联动调整,实现频率设置的整体最优,并且在保证性能的基础上,降低CPU频率以及提高GPU频率,可以减少功耗损失,提高功耗效率。

请参照图2,图2为本申请一实施例提供的一种处理器频率的调整方法的流程示意图,应用于电子设备,所述电子设备包括中央处理器CPU以及图形处理器GPU。下面将结合图2对本申请实施例提供的处理器频率的调整方法进行详细阐述。该处理器频率的调整方法可以包括以下步骤:

步骤S110:在渲染完成当前帧图像时,获取所述CPU以及所述GPU在当前工作频率下渲染下一帧图像的渲染时长。

在本实施例中,在渲染每一帧图像时,通过CPU对图像进行逻辑处理,例如,CPU可以确定图像中的哪些对象需要被绘制以及如何绘制;在完成逻辑处理后,CPU向GPU发送渲染指示,对应地,GPU接收该渲染指示,并根据渲染指示完成对待处理图像的绘制(即渲染),显示器可以对应显示渲染后的图像。显示器在显示完每一帧图像后,会进入短暂的刷新空白期,此时,VSync信号产生,显示器向CPU和GPU发送VSync信号,CPU和GPU在接收到VSync信号后才会开始对下一帧图像进行渲染。因此,可以在渲染完成当前帧图像后至接收到VSync信号之前的时间内,对渲染下一帧图像的渲染时长进行预测,以便根据预测得到的渲染时长调整CPU和GPU的当前工作频率,以满足能在指定时间内完成对下一帧图像的渲染。

其中,对图像帧进行渲染的渲染时长可以由CPU和GPU的当前工作频率确定,CPU和GPU的当前工作频率越高,代表其处理速度越快,对应的渲染时长也更短;CPU和GPU的当前工作频率越低,代表其处理速度越慢,对应的渲染时长则更长。

基于此,渲染时长还与图像的图像参数有关,如图像分辨率、图像大小以及图像颜色等图像参数。其中,对于同一幅图像,图像分辨率越高,对图像的描述就越精细,待处理数据量就越大,对应的渲染时长就越长;分辨越低,图像越粗糙,待处理数据量越小,渲染时长也就越短。图像大小指整幅图像所包含的总像素数,图像大小越大,代表图像的总像素数越多,对应的渲染时长就越长;图像大小越小,代表图像的总像素数越少,对应的渲染时长就越短。图像颜色包含得越多,数据量越大,渲染时长越长;图像颜色包含的越少。数据量越小,渲染时长越短。,因此,可以基于CPU和GPU的当前工作频率,以及下一帧图像的图像参数,预测渲染下一帧图像的渲染时长。

步骤S120:若所述渲染时长满足预设渲染时长条件,对所述CPU以及所述GPU的当前工作频率进行指定调整,所述指定调整包括降低所述CPU的当前工作频率,并提升所述GPU的当前工作频率。

在本实施例中,在基于CPU和GPU的当前工作频率获取到渲染下一帧图像的渲染时长后,还需要判断渲染时长是否满足预设渲染时长条件,在满足预设渲染时长条件的情况下,代表在CPU和GPU的当前工作频率下对下一帧图像进行渲染,可以在规定时间内完成,不会导致设备显示界面卡顿。基于此,在能流畅完成对下一帧图像的渲染与显示的情况下,可以对CPU和GPU的当前工作频率进行调整,以使电子设备能在满足性能的基础上,减小功耗损失,提高功耗效率。

因此,可以通过调整CPU和GPU的当前工作频率来降低CPU和GPU的功耗,由于CPU的耗能较大,因此,可以首先考虑降低CPU的频率,以降低CPU的功耗,对应为了保证性能,可以提升GPU的当前工作频率;由于提升了GPU的当前工作频率,也同时提高了GPU的运行计算速度,并且提高的运行速度的倍数远大于提高的功率的倍数,功耗可以看作是功率与时间的乘积,因此,在时间缩小倍数远大于功率的扩大倍数时,GPU的功耗其实是降低的。即,在渲染时间满足预设时长条件下,可以通过降低CPU的当前工作频率,并提升GPU的当前工作频率,来降低CPU和GPU的总体功耗。

在本实施例中,可以通过DVFS调节策略来对CPU和GPU的当前工作频率进行调整。其中,DVFS调节策略可以根据获取得到的CPU和GPU在当前工作频率下渲染下一帧图像的渲染时间,并统计当前的负载,根据当前的负载以及预测的下一帧图像的渲染时间,预测系统下一段时间需要的性能,并将预测的性能转化为需要的频率,从而调整CPU和GPU芯片中的时钟设置,进而调整CPU和GPU的当前工作频率。例如,若预测的渲染时间较长,则代表在渲染下一帧图像是需要的性能较大,对应地,提升CPU和GPU的当前工作频率;若预测的渲染时间较短,则代表在渲染下一帧图像是需要的性能较小,对应地,降低CPU和GPU的当前工作频率。

在一些实施方式中,预设渲染时长条件可以包括渲染时长与预设时长的差值小于时长阈值,预设时长基于当前的显示帧率设置。其中,设备基于当前的显示帧率对渲染后的图像进行显示,提前将当前的显示帧率设置为用户观看基于当前的显示帧率显示画面不会感觉到卡顿的数值,对应地基于当前的显示帧率,也会存在一个对应的预设时长,即,CPU和GPU在预设时长内完成对下一帧图像的渲染,则不会造成画面卡顿。

在实际应用中,为了尽快完成计算任务,会尽可能提高CPU和GPU的频率,渲染时间远远小于预设时长,如此,造成了计算资源的浪费。既然在预设时长内完成对下一帧图像的渲染就不会造成画面卡顿,因此,在本实施例中,可以使渲染下一帧图像的渲染时长尽可能的接近预设时长,即保证渲染时长与预设时长的差值小于时长阈值,以实现合理控制CPU和GPU的当前工作频率,减少计算资源的浪费,提高功耗效率。其中,时长阈值可以是预先设置的,如1毫秒或2毫秒,本实施例对此不作限制。

在另一些实施方式中,预设渲染时长条件也可以是渲染时长等于预设时长,即,使渲染每一帧图像的渲染时长均为预设时长,预设时长基于当前的显示帧率设置。

步骤S130:若进行所述指定调整后的所述CPU以及所述GPU的功耗总和降低,且所述渲染时长仍满足所述预设渲染时长条件,重复所述对所述CPU以及所述GPU的当前工作频率进行指定调整,直至所述渲染时长不满足预设渲染时长条件,或者降低当前工作频率后的所述CPU以及所述提高当前工作频率后的GPU的功耗总和不再降低。

在本实施例中,在对CPU和GPU的当前工作频率进行指定调整后,还可以对进行指定调整后的CPU和GPU的功耗总和进行判断,考虑是否还需要再次对CPU和GPU的当前工作频率进行调整。可以将进行指定调整后的CPU以及GPU的功耗总和与未调整之前的CPU以及GPU的功耗总和进行比较,若进行指定调整后的CPU以及GPU的功耗总和比未调整之前的CPU以及GPU的功耗总和小,并且渲染时长仍满足预设渲染时长条件,代表在调整后的CPU以及GPU的当前工作频率下,既可以实现相同的性能,同时也减少了功耗,提高了功耗效率。因此,可以再次对CPU和GPU的当前工作频率进行指定调整,来提高渲染的功耗效率。可以重复执行对CPU以及GPU的当前工作频率进行指定调整的步骤,并且在每次执行完该步骤后,均判断渲染时长是否满足预设渲染时长条件,以及降低当前工作频率后的CPU以及提高当前工作频率后的GPU的功耗总和是否仍在降低,直到确定渲染时长不满足预设渲染时长条件,或者降低当前工作频率后的CPU以及提高当前工作频率后的GPU的功耗总和不再降低后,则执行步骤S140。

步骤S140:将所述CPU的当前工作频率调整为在最后一次进行所述指定调整前的工作频率,以及将所述GPU的当前工作频率调整为在最后一次进行所述指定调整前的工作频率。

在本实施例中,若在最后一次进行指定调整后的渲染时长不满足预设渲染时长条件,或者降低当前工作频率后的CPU以及提高当前工作频率后的GPU的功耗总和并未降低,代表在最后一次进行指定调整后的CPU和GPU的当前工作频率下,无法在保证画面不卡顿的情况下完成对下一帧图像的渲染,或者无法降低CPU和GPU的功耗总和。由此可见,在最后一次调整前的CPU和GPU的当前工作频率才为最佳工作频率,因此,可以将CPU的当前工作频率调整为在最后一次进行指定调整前的工作频率,以及将GPU的当前工作频率调整为在最后一次进行指定调整前的工作频率。请参阅图3,图3中横坐标代表GPU的功耗,纵坐标代表CPU的功耗,图3中的每个点表示了不同的CPU和GPU的频率组合下对应的功耗组合,曲线Y以及曲线Y右边区域中的坐标集合包括渲染时间满足预设渲染时长条件的所有CPU和GPU频率组合对应的功耗组合,点A即为在最后一次进行指定调整前的CPU和GPU频率组合点的所对应的功耗组合。即,使用A点的功耗组合所对应的CPU和GPU的当前工作频率对下一帧图像进行渲染,可以实现在最接近预设时长内完成渲染,并且同时保证功耗损失最少,提高了功耗效率。

示例性地,在渲染完成当前帧图像后,对CPU和GPU的当前频率一共进行了三次指定调整。进行第三次指定调整(即最后一次指定调整)后CPU的当前工作频率为1.8MHZ,GPU的当前工作频为5MHZ,进行第二次指定调整后CPU的当前工作频率为2MHZ,GPU的当前工作频率为4MHZ。当CPU的当前工作频率为1.8MHZ,GPU的当前工作频为5MHZ时,渲染时长不满足预设渲染时长条件,或者此时CPU和GPU的功耗总和不小于在CPU的当前工作频率为2MHZ,GPU的当前工作频为4MHZ时的功耗总和,则将CPU的当前工作频率调整为进行了第二次指定调整后的工作频率2MHZ,以及将GPU的当前工作频率调整为进行了第二次指定调整后的工作频率4MHZ。

请参阅图4,图4中横坐标代表帧数,纵坐标代表渲染时间,在显示帧率为60帧/秒时,在未采用本申请实施例提供的处理器频率的调整方法,对CPU和GPU的当前工作频率进行调整之前,每一帧图像的渲染时间差异较大,有些图像渲染时间较快,大约只有3毫秒。在实际应用中,只要渲染时间小于16.7毫秒,则不会导致画面卡顿,因此,若以较高的CPU和GPU的当前工作频率对图像进行渲染,虽然满足了性能,但是会造成功耗损失较大,进而导致功耗效率低。在采用本申请实施例提供的处理器频率的调整方法,对CPU和GPU的当前工作频率进行调整后,如图5所示,每一帧图像的渲染时间均接近与16.7毫秒。如此,既实现了以较低的功耗对图像进行渲染,提高了功耗效率,同时也满足了性能要求,在预设时间(如16.7毫秒)内完成对下一帧图像的渲染。

在本实施例中,在渲染完成当前帧图像时,获取CPU以及GPU在当前工作频率下渲染下一帧图像的渲染时长;若渲染时长满足预设渲染时长条件,对CPU以及GPU的当前工作频率进行指定调整;若进行指定调整后的CPU以及GPU的功耗总和降低,且渲染时长仍满足预设渲染时长条件,重复对CPU以及GPU的当前工作频率进行指定调整,直至所述渲染时长不满足预设渲染时长条件,或者降低当前工作频率后的CPU以及提升当前工作频率后的GPU的功耗总和不再降低;将CPU的当前工作频率调整为在最后一次进行指定调整前的工作频率,以及将GPU的当前工作频率调整为在最后一次进行指定调整前的工作频率。如此,结合CPU和GPU的功耗总和,对CPU和GPU的当前工作频率进行整体联动调整,实现频率设置的整体最优,并且在保证性能的基础上,降低CPU频率以及提高GPU频率,可以减少功耗损失,平衡最优的功耗效率。

请参照图6,图为本申请另一实施例提供的一种处理器频率的调整方法的流程示意图,应用于电子设备,所述电子设备包括中央处理器CPU以及图形处理器GPU。下面将结合图6对本申请实施例提供的处理器频率的调整方法进行详细阐述。该处理器频率的调整方法可以包括以下步骤:

步骤S210:在渲染完成当前帧图像时,获取所述CPU以及所述GPU在当前工作频率下渲染下一帧图像的渲染时长。

在本申请实施例中,步骤S210可以参阅前述实施例中步骤S110的内容,在此不再赘述。

步骤S220:若所述渲染时长不满足所述预设渲染时长条件,且所述渲染时长大于预设时长,提升所述CPU及所述GPU的当前工作频率,直至所述渲染时长满足所述预设渲染时长条件,所述预设时长基于当前的显示帧率设置。

在本实施例中,若所述渲染时长不满足所述预设渲染时长条件,可以对CPU以及GPU的当前工作频率进行调整,直至渲染时长满足所述预设渲染时长条件。

基于此,在渲染时长不满足预设渲染时长条件的基础上,判断渲染时长与预设时长的大小关系,若渲染时长大于预设时长,则代表基于CPU以及GPU的当前工作频率下,无法在保证画面不卡顿的情况下完成对下一帧图像的渲染,即,此时的渲染速度较慢。基于此,可以适当提升CPU及GPU的当前工作频率,以加快渲染速度,减少渲染时长。在每次提升完CPU及GPU的当前工作频率后,都要对渲染时长进行判断,判断其是否满足预设渲染时长条件,若不满足,则继续执行提升所述CPU及所述GPU的当前工作频率的步骤,直至渲染时长满足所述预设渲染时长条件。

步骤S230:若所述渲染时长不满足所述预设渲染时长条件,且所述渲染时长小于所述预设时长,降低所述CPU及所述GPU的当前工作频率,直至所述渲染时长满足所述预设渲染时长条件。

在本实施例中,在渲染时长不满足预设渲染时长条件的基础上,判断渲染时长与预设时长的大小关系,若渲染时长小于预设时长,则代表基于CPU以及GPU的当前工作频率下,可以保证画面不卡顿的情况下完成对下一帧图像的渲染,但是基于CPU和GPU的当前工作频率进行渲染会导致性能过剩,进而导致功耗效率低,即,此时的渲染速度太快了。基于此,可以适当降低CPU及GPU的当前工作频率,以降低渲染速度,增加渲染时长。在每次降低完CPU及GPU的当前工作频率后,都要对渲染时长进行判断,判断其是否满足预设渲染时长条件,若不满足,则继续执行提升所述CPU及所述GPU的当前工作频率的步骤,直至渲染时长满足所述预设渲染时长条件。

在一些实施方式中,当渲染时长与预设时长的差值小于预设阈值时,按照预设频率间隔值,对CPU以及GPU的当前工作频率进行调整,直至渲染时长满足所述预设渲染时长条件。

其中,预设阈值可以是预先设置的时间,例如1.5毫秒,本实施例对此不作限制。当渲染时长与预设时长的差值小于预设阈值时,代表在CPU和GPU的当前工作频率下渲染时间与预设时长比较接近。基于此,可以对CPU和GPU的当前工作频率按照预设频率间隔值进行细微调整,其中,预设频率间隔值可以为一个预先设置的数值,按照预先设置的数值分别对CPU和GPU的当前工作频率进行调整;或者,也可以根据上述差值的大小,确定调整等级,不同调整等级对应发的预设频率间隔值不同,根据调整等级对应的预设频率间隔值对CPU以及GPU的当前工作频率进行调整。其中,上述差值越大,调整等级越高,对应的预设频率间隔值越大。每调整一次,均会再对渲染时长与预设时长的差值与预设阈值进行判断,若该差值仍小于预设阈值,则继续对CPU以及GPU的当前工作频率进行调整,直至渲染时长满足所述预设渲染时长条件。

在另一些实施方式中,当渲染时长与预设时长的差值大于预设阈值时,将CPU的当前工作频率调整至第一工作频率以及将GPU的当前工作频率调整至第二工作频率,CPU在第一工作频率,且GPU在第二工作频率时渲染下一帧图像的渲染时长满足预设渲染时长条件。

在本实施例中,当渲染时长与预设时长的差值大于预设阈值时,代表当前渲染时长远大于预设时长,可以确定在CPU和GPU的当前工作频率下渲染速度太慢,CPU和GPU的当前工作频率远未达到在预设时长内完成渲染的工作频率,如果仍按照预设频率间隔值逐步对CPU以及GPU的当前工作频率进行调整,可能会造成调整时间过长,导致在接收到VSync信号时,还未完成对CPU和GPU的当前工作频率的调整,进而导致无法在预设时长内完成对下一帧图像的渲染。因此,可以直接将CPU的当前工作频率调整至第一工作频率以及将GPU的当前工作频率调整至第二工作频率,其中,第一工作频率以及第二工作频率可以是根据经验数据设置的能在预设时长内完成对下一帧图像渲染的频率数值。

在又一些实施方式中,当渲染时长与预设时长的差值大于预设阈值时,将CPU的当前工作频率调整至第一工作频率以及将GPU的当前工作频率调整至第二工作频率,可以通过按照预设频率间隔值调整频率的方式,再次对第一工作频率以及第二工作频率进行微调,直至渲染时长满足预设渲染时长条件。

步骤S240:当所述渲染时长满足预设渲染时长条件时,对所述CPU以及所述GPU的当前工作频率进行指定调整,所述指定调整包括降低所述CPU的当前工作频率,并提升所述GPU的当前工作频率。

在本申请实施例中,步骤S240可以参阅前述实施例中步骤S120的内容,在此不再赘述。

步骤S250:通过能效模型获取所述CPU的当前工作频率对应的功耗以及所述GPU的当前工作频率对应的功耗。

在本实施例中,可以通过功耗感知调度(Energy Aware Scheduling,EAS)中的能量模型中查找Device Tree Source文件,该文件中存储有CPU及GPU处于不同工作频率时对应的功耗,因此,可以通过该文件获取CPU的当前工作频率对应的功耗以及GPU的当前工作频率对应的功耗。

在一些实施方式中,也可以通过获取GPU和CPU的负载、电压及预测的渲染时间,基于负载与电压分别确定出GPU和CPU的功率,再获取分别获取GPU和CPU的功率与预测的渲染时间的乘积,得到CPU的当前工作频率对应的功耗以及所述GPU的当前工作频率对应的功耗。

步骤S260:获取所述CPU的当前工作频率对应的功耗与所述GPU的当前工作频率对应的功耗的和值,得到所述功耗总和。

基于此,在获取到CPU的当前工作频率对应的功耗以及GPU的当前工作频率对应的功耗之后,对CPU和GPU的功耗求和,得到功耗总和。

步骤S270:若进行所述指定调整后的所述CPU以及所述GPU的功耗总和降低,且所述渲染时长仍满足所述预设渲染时长条件,重复所述对所述CPU以及所述GPU的当前工作频率进行指定调整,直至所述渲染时长不满足预设渲染时长条件,或者所述降低当前工作频率后的所述CPU以及提升当前工作频率后的所述GPU的功耗总和不再降低。

步骤S280:将所述CPU的当前工作频率调整为在最后一次进行所述指定调整前的工作频率,以及将所述GPU的当前工作频率调整为在最后一次进行所述指定调整前的工作频率。

在本申请实施例中,步骤S270-S280可以参阅前述实施例中步骤S130-S140的内容,在此不再赘述。

在本实施例中,还可以设置渲染线程(如:RenderThread,SurfaceFlinger,UIThread,HW Composer)的相关参数,将渲染线程的亲和性设置于CPU小核,即,使渲染线程在CPU小核上运行,如此,也可以实现节省功耗。

在本实施例中,在渲染完成当前帧图像时,获取CPU以及GPU在当前工作频率下渲染下一帧图像的渲染时长;若渲染时长不满足预设渲染时长条件,且渲染时长大于预设时长,提升CPU及GPU的当前工作频率,直至渲染时长满足所述预设渲染时长条件;当渲染时长满足预设渲染时长条件后,对CPU以及GPU的当前工作频率进行指定调整;若进行指定调整后的CPU以及GPU的功耗总和降低,且渲染时长仍满足预设渲染时长条件,重复对CPU以及GPU的当前工作频率进行指定调整,直至所述渲染时长不满足预设渲染时长条件,或者降低当前工作频率后的CPU以及提升当前工作频率后的GPU的功耗总和不再降低;将CPU的当前工作频率调整为在最后一次进行指定调整前的工作频率,以及将GPU的当前工作频率调整为在最后一次进行指定调整前的工作频率。如此,结合CPU和GPU的功耗总和,对CPU和GPU的当前工作频率进行整体联动调整,实现频率设置的整体最优,并且在保证性能的基础上,降低CPU频率以及提高GPU频率,可以减少功耗损失,平衡最优的功耗效率。

请参照图7,其中示出了本申请实施例提供的一种处理器频率的调整装置300的结构框图,应用于电子设备,所述电子设备包括中央处理器CPU以及图形处理器GPU。该装置300可以包括:渲染时长获取模块310、第一条件判断模块320、第二条件判断模块330和频率调整模块340。

渲染时长获取模块310用于在渲染完成当前帧图像时,获取所述CPU以及所述GPU在当前工作频率下渲染下一帧图像的渲染时长。

第一条件判断模块320用于若所述渲染时长满足预设渲染时长条件,对所述CPU以及所述GPU的当前工作频率进行指定调整,所述指定调整包括降低所述CPU的当前工作频率,并提升所述GPU的当前工作频率。

第二条件判断模块330用于若进行所述指定调整后的所述CPU以及所述GPU的功耗总和降低,且所述渲染时长仍满足所述预设渲染时长条件,重复所述对所述CPU以及所述GPU的当前工作频率进行指定调整,直至所述渲染时长不满足预设渲染时长条件,或者所述降低当前工作频率后的所述CPU以及提升当前工作频率后的所述GPU的功耗总和不再降低。

频率调整模块340用于将所述CPU的当前工作频率调整为在最后一次进行所述指定调整前的工作频率,以及将所述GPU的当前工作频率调整为在最后一次进行所述指定调整前的工作频率。

在一些实施方式中,第一条件判断模块320还可以用于若所述渲染时长不满足所述预设渲染时长条件,对所述CPU以及所述GPU的当前工作频率进行调整,直至所述渲染时长满足所述预设渲染时长条件;执行所述若所述渲染时长满足预设渲染时长条件,对所述CPU以及所述GPU的当前工作频率进行指定调整的步骤,至所述将所述CPU的当前工作频率调整为在最后一次进行所述指定调整前的工作频率,以及将所述GPU的当前工作频率调整为在最后一次进行所述指定调整前的工作频率的步骤。

在一些实施方式中,第一条件判断模块320包括:频率调整单元。频率调整单元可以用于若所述渲染时长大于预设时长,提升所述CPU及所述GPU的当前工作频率,直至所述渲染时长满足所述预设渲染时长条件,所述预设时长基于当前的显示帧率设置;若所述渲染时长小于所述预设时长,降低所述CPU及所述GPU的当前工作频率,直至所述渲染时长满足所述预设渲染时长条件,其中,所述预设渲染时长条件包括:所述渲染时长与预设时长的差值小于时长阈值,所述预设时长基于当前的显示帧率设置。

在一些实施方式中,频率调整单元可以具体用于当所述渲染时长与预设时长的差值大于预设阈值时,将所述CPU的当前工作频率调整至第一工作频率以及将所述GPU的当前工作频率调整至第二工作频率,所述CPU在所述第一工作频率,且所述GPU在所述第二工作频率时渲染下一帧图像的渲染时长满足所述预设渲染时长条件。

在另一些实施方式中,频率调整单元还可以具体用于当所述渲染时长与预设时长的差值小于预设阈值时,按照预设频率间隔值,对所述CPU以及所述GPU的当前工作频率进行调整,直至所述渲染时长满足所述预设渲染时长条件。

在一些实施方式中,渲染时长获取模块310可以具体用于基于所述CPU和所述GPU的当前工作频率,以及所述下一帧图像的图像参数,预测渲染所述渲染下一帧图像的渲染时长。

在一些实施方式中,处理器频率的调整装置300包括:功耗获取模块以及功耗求和模块。功耗获取模块可以用于通过能效模型获取所述CPU的当前工作频率对应的功耗以及所述GPU的当前工作频率对应的功耗。功耗求和模块可以用于获取所述CPU的当前工作频率对应的功耗与所述GPU的当前工作频率对应的功耗的和值,得到所述功耗总和。

在一些实施方式中,处理器频率的调整装置300包括:线程设置模块。线程设置模块可以用于将所述CPU的渲染线程设置于所述CPU的小核上运行。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,模块相互之间的耦合可以是电性,机械或其它形式的耦合。

另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

综上所述,本申请实施例提供的方案中,在渲染完成当前帧图像时,获取CPU以及GPU在当前工作频率下渲染下一帧图像的渲染时长;若渲染时长满足预设渲染时长条件,对CPU以及GPU的当前工作频率进行指定调整;若进行指定调整后的CPU以及GPU的功耗总和降低,且渲染时长仍满足预设渲染时长条件,重复对CPU以及GPU的当前工作频率进行指定调整,直至所述渲染时长不满足预设渲染时长条件,或者降低当前工作频率后的CPU以及提升当前工作频率后的GPU的功耗总和不再降低;将CPU的当前工作频率调整为在最后一次进行指定调整前的工作频率,以及将GPU的当前工作频率调整为在最后一次进行指定调整前的工作频率。如此,结合CPU和GPU的功耗总和,对CPU和GPU的当前工作频率进行整体联动调整,实现频率设置的整体最优,并且在保证性能的基础上,降低CPU频率以及提高GPU频率,可以减少功耗损失,平衡最优的功耗效率。

下面将结合图对本申请提供的一种电子设备进行说明。

参照图8,图8示出了本申请实施例提供的一种电子设备400的结构框图,本申请实施例提供的处理器频率的调整方法可以由该电子设备400执行。

本申请实施例中的电子设备400可以包括一个或多个如下部件:处理器401、存储器402、以及一个或多个应用程序,其中一个或多个应用程序可以被存储在存储器402中并被配置为由一个或多个处理器401执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。

处理器401可以包括一个或者多个处理核。处理器401利用各种接口和线路连接整个电子设备400内的各个部分,通过运行或执行存储在存储器402内的指令、程序、代码集或指令集,以及调用存储在存储器402内的数据,执行电子设备400的各种功能和处理数据。可选地,处理器401可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器401可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以集成到处理器401中,单独通过一块通信芯片进行实现。

存储器402可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器402可用于存储指令、程序、代码、代码集或指令集。存储器402可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储电子设备400在使用中所创建的数据(比如上述的各种对应关系)等。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,所显示或讨论的模块相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

请参考图9,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读介质500中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。

计算机可读存储介质500可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质500包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质500具有执行上述方法中的任何方法步骤的程序代码510的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码510可以例如以适当形式进行压缩。

最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

相关技术
  • 处理器频率的调整方法、装置、电子设备及存储介质
  • 处理器频率的调整方法、装置、存储介质及电子设备
技术分类

06120113099045