功耗管理方法、装置及电子设备与流程

文档序号:14036211阅读:166来源:国知局
功耗管理方法、装置及电子设备与流程

本发明涉及功耗控制技术领域,尤其涉及一种功耗管理方法、装置及电子设备。



背景技术:

在嵌入式平台中,对于功耗控制有着严格的要求,尤其在智能设备中,每一个应用程序都有可能因为程序的设计不一样,且未对cpu(centralprocessingunit,中央处理器)和gpu(graphicsprocessingunit,图形处理器)的频率进行调整,而导致非常严重的功耗。即使有一些嵌入式平台已经针对cpu进行了动态功耗管理,可以在一定阶段进行降频,甚至休眠待机,但做的还严重不够。在新的电池技术出现之前,只能通过对功耗进行更合理的管理,以使系统整体的功耗降低。

目前,通常通过设置阈值对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为本发明功耗管理装置实施例一的结构示意图;

图4为本发明功耗管理装置实施例二的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面介绍一下应用程序、进程和线程的概念以及三者之间的关系。

应用程序是一组指令的有序集合。进程是具有一定独立功能的应用程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是cpu调度和分派的基本单位,它是比进程更小的能独立运行的基本单位;线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源,如程序计数器、一组寄存器和栈,但是它可与同属一个进程的其他线程共享进程所拥有的全部资源。

总的来说,一个应用程序至少有一个进程,一个进程至少有一个线程。同一应用程序同时运行于若干个数据集合上,它将属于若干个不同的进程,也就是说,同一应用程序可以对应多个进程。在传统的操作系统中,应用程序并不能独立运行,作为资源分配和独立运行的基本单元都是进程。通常,在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源,在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位。

本发明提供一种功耗管理方法,图1为本发明功耗管理方法实施例一的流程图,如图1所示,本实施例的方法包括:

s11、获取当前系统所运行的进程中各个线程的状态。

具体地,可以在系统内核层设置状态机,对各应用程序对应的进程中的各个线程进行监控,获取各个线程的状态。

其中,线程的状态通常包括运行、休眠、停止等。

s12、根据所述当前系统所运行的进程中各个线程的状态判断cpu和gpu当前的负载情况。

其中,当所述当前系统所运行的进程中各个线程所处的状态不同时,对应的cpu和gpu当前的负载情况也会有所不同,通过获取当前系统所运行的进程中各个线程的状态,可以判断出cpu和gpu当前的负载情况。具体地,对于某个应用程序来说,在第一次运行该应用程序的时候,也就是初始化的时候,该应用程序所在的电子设备自动监测该应用程序下所运行的进程中各个线程的状态,并根据各个线程的状态确定该应用程序所处的阶段,并获取该应用程序所处的不同阶段所对应的gpu、cpu的负载情况,进而建立各应用程序所处阶段与cpu和gpu的负载情况的对应关系表;或者,由人为统计应用程序所处的不同阶段所对应的gpu、cpu的负载情况,并在电子设备上建立各应用程序所处阶段与cpu和gpu的负载情况的对应关系表。在后续应用程序运行过程中,通过预先建立的各应用程序所处阶段与cpu和gpu的负载情况的对应关系表,查找与各应用程序当前所处的阶段对应的cpu和gpu当前的负载情况。

若当前运行的应用程序有多个时,结合查找得到的每个应用程序当前所处的阶段对应的cpu和gpu当前的负载情况,确定cpu和gpu当前的总负载情况。例如:可以将每个应用程序当前所处的阶段对应的cpu当前的负载情况相加,得到cpu当前的总负载情况,将每个应用程序当前所处的阶段对应的gpu当前的负载情况相加,得到gpu当前的总负载情况。

s13、根据所述cpu和gpu当前的负载情况对cpu和/或gpu的频率进行动态调整。

具体地,当gpu当前的负载情况为高时,提高gpu的频率,降低cpu的频率;当cpu当前的负载情况为高时,提高cpu的频率,降低gpu的频率;当gpu和cpu当前的负载情况均为高时,同时提高gpu和cpu的频率。

其中,当gpu接口调用频繁,例如:超过预设的调用频率阈值时,表明gpu当前的负载情况为高;或者,当gpu单位时间内的计算量较大,例如:超过预设的单位时间计算量阈值时,表明gpu当前的负载情况为高。

类似地,当cpu接口调用频繁,例如:超过预设的调用频率阈值时,表明cpu当前的负载情况为高;或者,当cpu单位时间内的计算量较大,例如:超过预设的单位时间计算量阈值时,表明cpu当前的负载情况为高。

可选地,可以仅根据gpu当前的负载情况对cpu和/或gpu的频率进行动态调整。例如:当gpu当前的负载情况为高时,提高gpu的频率,降低cpu的频率;当gpu当前的负载情况为低时,提高cpu的频率,降低gpu的频率。

本发明实施例提供的功耗管理方法,根据获取到的当前系统所运行的进程中各个线程的状态,判断cpu和gpu当前的负载情况,并据此对cpu和/或gpu的频率进行动态调整。与现有技术相比,本发明能够根据线程状态准确地判断cpu和gpu的负载情况,从而调整cpu和/或gpu的频率,准确性和稳定性更高;此外,由于应用程序的线程在各平台上是兼容的,因此,根据线程状态来对cpu和/或gpu的频率进行调整,对于各平台之间的可移植性高。

本发明提供另一种功耗管理方法,图2为本发明功耗管理方法实施例二的流程图,如图2所示,本实施例的方法包括:

s21、获取当前系统所运行的进程中各个线程的状态。

具体地,可以在系统内核层设置状态机,对各应用程序对应的进程中的各个线程进行监控,获取各个线程的状态。

其中,线程的状态通常包括运行、休眠、停止等。

s22、根据所述当前系统所运行的进程中各个线程的状态,判断系统中各应用程序当前所处的阶段。

其中,应用程序包括初始化、运行等阶段,对于一个应用程序来说,可以根据该应用程序对应的进程中的各个线程的状态判断该应用程序当前所处的阶段。

例如:一个应用程序对应的进程中包括三个线程,当线程1处于运行状态、线程2和线程3处于休眠状态时,该应用程序当前处于初始化阶段;当线程1和线程2处于运行状态、线程3处于休眠状态时,该应用程序当前处于运行阶段。

s23、根据所述系统中各应用程序当前所处的阶段,判断cpu和gpu当前的负载情况。

具体地,对于某个应用程序来说,在第一次运行该应用程序的时候,也就是初始化的时候,该应用程序所在的电子设备自动监测该应用程序下所运行的进程中各个线程的状态,并根据各个线程的状态确定该应用程序所处的阶段,并获取该应用程序所处的不同阶段所对应的gpu、cpu的负载情况,进而建立各应用程序所处阶段与cpu和gpu的负载情况的对应关系表;或者,由人为统计应用程序所处的不同阶段所对应的gpu、cpu的负载情况,并在电子设备上建立各应用程序所处阶段与cpu和gpu的负载情况的对应关系表。在后续应用程序运行过程中,通过预先建立的各应用程序所处阶段与cpu和gpu的负载情况的对应关系表,查找与各应用程序当前所处的阶段对应的cpu和gpu当前的负载情况。

若当前运行的应用程序有多个时,结合查找得到的每个应用程序当前所处的阶段对应的cpu和gpu当前的负载情况,确定cpu和gpu当前的总负载情况。例如:可以将每个应用程序当前所处的阶段对应的cpu当前的负载情况相加,得到cpu当前的总负载情况,将每个应用程序当前所处的阶段对应的gpu当前的负载情况相加,得到gpu当前的总负载情况。

可选地,对于不同的应用程序来说,其所处阶段对应的cpu和gpu的负载情况可能也有所不同,也就是说,对应不同的应用程序来说,其应用程序所处阶段与cpu和gpu的负载情况的对应关系表可能也不相同。

s24、根据所述cpu和gpu当前的负载情况对cpu和/或gpu的频率进行动态调整。

具体地,当gpu当前的负载情况为高时,提高gpu的频率,降低cpu的频率;当cpu当前的负载情况为高时,提高cpu的频率,降低gpu的频率;当gpu和cpu当前的负载情况均为高时,同时提高gpu和cpu的频率。

其中,当gpu接口调用频繁,例如:超过预设的调用频率阈值时,表明gpu当前的负载情况为高;或者,当gpu单位时间内的计算量较大,例如:超过预设的单位时间计算量阈值时,表明gpu当前的负载情况为高。

类似地,当cpu接口调用频繁,例如:超过预设的调用频率阈值时,表明cpu当前的负载情况为高;或者,当cpu单位时间内的计算量较大,例如:超过预设的单位时间计算量阈值时,表明cpu当前的负载情况为高。

进一步地,当所述当前系统所运行的进程中各个线程均进入休眠状态时,同时降低cpu和gpu的频率。

本发明实施例提供的功耗管理方法,根据获取到的当前系统所运行的进程中各个线程的状态,判断系统中各应用程序当前所处的阶段,进而判断cpu和gpu当前的负载情况,并据此对cpu和/或gpu的频率进行动态调整。与现有技术相比,本发明能够根据线程状态准确地判断cpu和gpu的负载情况,从而调整cpu和/或gpu的频率,准确性和稳定性更高;此外,由于应用程序的线程在各平台上是兼容的,因此,根据线程状态来对cpu和/或gpu的频率进行调整,对于各平台之间的可移植性高。

本发明实施例提供一种功耗管理装置,图3为本发明功耗管理装置实施例一的结构示意图,如图3所示,本实施例的装置包括:

获取单元11,用于获取当前系统所运行的进程中各个线程的状态;

其中,线程的状态通常包括运行、休眠、停止等。

判断单元12,用于根据所述当前系统所运行的进程中各个线程的状态判断cpu和gpu当前的负载情况;

第一调整单元13,用于根据所述cpu和gpu当前的负载情况对cpu和/或gpu的频率进行动态调整。

本发明实施例提供的功耗管理装置,根据获取到的当前系统所运行的进程中各个线程的状态,判断cpu和gpu当前的负载情况,并据此对cpu和/或gpu的频率进行动态调整。与现有技术相比,本发明能够根据线程状态准确地判断cpu和gpu的负载情况,从而调整cpu和/或gpu的频率,准确性和稳定性更高;此外,由于应用程序的线程在各平台上是兼容的,因此,根据线程状态来对cpu和/或gpu的频率进行调整,对于各平台之间的可移植性高。

图4为本发明功耗管理装置实施例二的结构示意图,如图4所示,可选地,所述获取单元11,用于在系统内核层对各应用程序对应的进程中的各个线程进行监控,获取各个线程的状态。

进一步地,如图4所示,所述判断单元12包括:

第一判断子单元121,用于根据所述当前系统所运行的进程中各个线程的状态,判断系统中各应用程序当前所处的阶段;

第二判断子单元122,用于根据所述系统中各应用程序当前所处的阶段,判断cpu和gpu当前的负载情况。

其中,应用程序包括初始化、运行等阶段,对于一个应用程序来说,可以根据该应用程序对应的进程中的各个线程的状态判断该应用程序当前所处的阶段。

例如:一个应用程序对应的进程中包括三个线程,当线程1处于运行状态、线程2和线程3处于休眠状态时,该应用程序当前处于初始化阶段;当线程1和线程2处于运行状态、线程3处于休眠状态时,该应用程序当前处于运行阶段。

第一判断子单元121确定系统中各应用程序当前所处的阶段之后,第二判断子单元122确定各应用程序当前所处的阶段对应的cpu和gpu当前的负载情况。

具体地,对于某个应用程序来说,在第一次运行该应用程序的时候,也就是初始化的时候,该应用程序所在的电子设备自动监测该应用程序下所运行的进程中各个线程的状态,并根据各个线程的状态确定该应用程序所处的阶段,并获取该应用程序所处的不同阶段所对应的gpu、cpu的负载情况,进而建立各应用程序所处阶段与cpu和gpu的负载情况的对应关系表;或者,由人为统计应用程序所处的不同阶段所对应的gpu、cpu的负载情况,并在电子设备上建立各应用程序所处阶段与cpu和gpu的负载情况的对应关系表。在后续应用程序运行过程中,通过预先建立的各应用程序所处阶段与cpu和gpu的负载情况的对应关系表,查找与各应用程序当前所处的阶段对应的cpu和gpu当前的负载情况。

若当前运行的应用程序有多个时,结合查找得到的每个应用程序当前所处的阶段对应的cpu和gpu当前的负载情况,确定cpu和gpu当前的总负载情况。例如:可以将每个应用程序当前所处的阶段对应的cpu当前的负载情况相加,得到cpu当前的总负载情况,将每个应用程序当前所处的阶段对应的gpu当前的负载情况相加,得到gpu当前的总负载情况。

可选地,对于不同的应用程序来说,其所处阶段对应的cpu和gpu的负载情况可能也有所不同,也就是说,对应不同的应用程序来说,其应用程序所处阶段与cpu和gpu的负载情况的对应关系表可能也不相同。

进一步地,如图4所示,所述装置还包括:

监测单元14,用于在所述获取单元11获取当前系统所运行的进程中各个线程的状态之前,在各应用程序首次运行的过程中,监测各应用程序在不同阶段对应的gpu和cpu的负载情况;

建立单元15,用于建立各应用程序所处阶段与cpu和gpu的负载情况的对应关系表。

可选地,所述第二判断子单元122,用于通过所述建立单元15建立的所述各应用程序所处阶段与cpu和gpu的负载情况的对应关系表,查找与各应用程序当前所处的阶段对应的cpu和gpu当前的负载情况。

可选地,所述第一调整单元13,用于当gpu当前的负载情况为高时,提高gpu的频率,降低cpu的频率;当cpu当前的负载情况为高时,提高cpu的频率,降低gpu的频率;当gpu和cpu当前的负载情况均为高时,同时提高gpu和cpu的频率。

其中,当gpu接口调用频繁,例如:超过预设的调用频率阈值时,表明gpu当前的负载情况为高;或者,当gpu单位时间内的计算量较大,例如:超过预设的单位时间计算量阈值时,表明gpu当前的负载情况为高。

类似地,当cpu接口调用频繁,例如:超过预设的调用频率阈值时,表明cpu当前的负载情况为高;或者,当cpu单位时间内的计算量较大,例如:超过预设的单位时间计算量阈值时,表明cpu当前的负载情况为高。

进一步地,如图4所示,所述装置还包括:

第二调整单元16,用于当所述当前系统所运行的进程中各个线程均进入休眠状态时,同时降低cpu和gpu的频率。

本发明实施例提供的功耗管理装置,根据获取到的当前系统所运行的进程中各个线程的状态,判断系统中各应用程序当前所处的阶段,进而判断cpu和gpu当前的负载情况,并据此对cpu和/或gpu的频率进行动态调整。与现有技术相比,本发明能够根据线程状态准确地判断cpu和gpu的负载情况,从而调整cpu和/或gpu的频率,准确性和稳定性更高;此外,由于应用程序的线程在各平台上是兼容的,因此,根据线程状态来对cpu和/或gpu的频率进行调整,对于各平台之间的可移植性高。

本发明实施例还提供一种电子设备,所述电子设备包括上述功耗管理装置。

所述电子设备可以为台式计算机、笔记本电脑、手机、pad等,但不仅限于此。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1