发明内容
基于此,本发明为解决传统技术中因不能区分前后景应用对于处理器核心负载的不同需求而不能精确的根据负载来控制处理器的数量和频率导致的功耗过大的技术问题,特提出了一种处理器计算资源的分配方法。
一种处理器计算资源的分配方法,包括:
检测当前的处理器负载;
根据所述处理器负载确定所需的计算资源,所述计算资源包括每个处理器核心的频率值之和;
获取先验的处理器核心在特定频率值的功率值,根据所述先验的处理器核心在特定频率值的功率值确定处理器核心的数量以及每个处理器核心的频率值,使得每个处理器核心的频率值之和符合所述计算资源,且使得所述每个处理器核心的功率值之和最小。
可选的,在其中一个实施例中,所述检测当前的处理器负载之后还包括:
根据所述当前的处理器负载确定所需处理器核心的最小数目;
获取系统中处理器核心的最大数目,根据所述处理器核心的最小数目和最大数目确定处理器核心数量的可选范围;
根据公式Nc_x*Fx=Nc_min*Fmax获取多种频率分配策略,其中Nc_x取值为[Nc_min,Nc_max],所述Nc_min表示所述所需处理器核心的最小数目,所述Nc_max表示所述系统中处理器核心的最大数目,Fmax为单个处理器核心的最大频率值,所述Fx表示所述给处理器核心分配的频率值;
所述根据所述先验的处理器核心在特定频率值的功率值确定处理器核心的数量以及每个处理器核心的频率值还包括:
根据所述先验的处理器核心在特定频率值的功率值确定频率分配策略,使得所述频率分配策略对应的每个处理器核心的功率值之和最小。
可选的,在其中一个实施例中,所述检测当前的处理器负载之后还包括:
在所述当前的处理器负载确定的所需处理器核心的最小数目为1时,若没有前景用户操作,则将所述负载设置到单一的处理器核心上。
可选的,在其中一个实施例中,所述根据所述先验的处理器核心在特定频率值的功率值确定处理器核心的数量以及每个处理器核心的频率值之后还包括:
通过调用频率调节器和热拔插模块的接口将所述处理器核心的数量以及每个处理器核心的频率值的配置应用到处理器核心上。
可选的,在其中一个实施例中,所述处理器核心包括CPU核心和GPU核心。
此外,为解决传统技术中因不能区分前后景应用对于处理器核心负载的不同需求而不能精确的根据负载来控制处理器的数量和频率导致的功耗过大的技术问题,特提出了一种处理器计算资源的分配装置。
一种处理器计算资源的分配装置,包括:
处理器负载检测模块,用于检测当前的处理器负载;
所需计算资源计算模块,用于根据所述处理器负载确定所需的计算资源,所述计算资源包括每个处理器核心的频率值之和;
处理器核心组合确定模块,用于获取先验的处理器核心在特定频率值的功率值,根据所述先验的处理器核心在特定频率值的功率值确定处理器核心的数量以及每个处理器核心的频率值,使得每个处理器核心的频率值之和符合所述计算资源,且使得所述每个处理器核心的功率值之和最小。
可选的,在其中一个实施例中,所述装置还包括频率分配策略确定模块,用于根据所述当前的处理器负载确定所需处理器核心的最小数目;获取系统中处理器核心的最大数目,根据所述处理器核心的最小数目和最大数目确定处理器核心数量的可选范围;根据公式Nc_x*Fx=Nc_min*Fmax获取多种频率分配策略,其中Nc_x取值为[Nc_min,Nc_max],所述Nc_min表示所述所需处理器核心的最小数目,所述Nc_max表示所述系统中处理器核心的最大数目,Fmax为单个处理器核心的最大频率值,所述Fx表示所述给处理器核心分配的频率值;所述处理器核心组合确定模块还用于根据所述先验的处理器核心在特定频率值的功率值确定频率分配策略,使得所述频率分配策略对应的每个处理器核心的功率值之和最小。
可选的,在其中一个实施例中,所述装置还包括单一处理器核心设置模块,用于在所述当前的处理器负载确定的所需处理器核心的最小数目为1时,若没有前景用户操作,则将所述负载设置到单一的处理器核心上。
可选的,在其中一个实施例中,所述装置还包括处理器配置应用模块,用于通过调用频率调节器和热拔插模块的接口将所述处理器核心的数量以及每个处理器核心的频率值的配置应用到处理器核心上。
可选的,在其中一个实施例中,其特征在于,所述处理器核心包括CPU核心和GPU核心。
实施本发明实施例,将具有如下有益效果:
采用了上述处理器计算资源的分配方法和装置之后,根据终端当前的处理器负载情况以及当前需要的最小计算资源,在系统允许的处理器资源的范围内,对运行的处理器核心的数量以及频率进行优化,即按照不同的处理器数量和频率的组合对应不同的功耗参数,以求在满足性能要求的前提下,得到功耗最优的结果,即确定运行的处理器数量以及频率;也就是说,采用上述处理器计算资源的分配方法及装置之后,在保证了显示线程的性能的前提下,降低了终端的功耗。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
为解决传统技术中因不能区分前后景应用对于处理器核心负载的不同需求而不能精确的根据负载来控制处理器的数量和频率导致的功耗过大的技术问题,在本实施例中,特提出了一种处理器计算资源的分配方法,该方法的实现可依赖于计算机程序,该计算机程序可运行于基于冯诺依曼体系的计算机系统之上,该计算机程序可以是多核处理器的终端的处理器控制应用程序。该计算机系统可以是运行上述计算机程序的例如智能手机、平板电脑、个人电脑等终端设备。
本发明实施例中提及的终端可以是智能手机(smart phone)、平板电脑(TabletPersonal Computer)、车载终端、台式电脑(computer)等等。
具体的,如图1所示,上述处理器计算资源的分配方法包括如下步骤S102-S108,具体的:
步骤S102:检测当前的处理器负载。
需要说明的是,在本发明实施例中,所提及的处理器可以是中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)、微控制单元(Micro Controller Unit,MCU)中的一种或者多种的组合。而且,本实施例中的处理器可以是对称多核处理器(Symmetrical Multi-Processing,SMP),也可以是非对称多核处理器(Asymmetric Multi-Processing,AMP)。
处理器的负载取决于当前处理器正在处理以及等待处理器处理的进程数,一般来讲,负载越大,处理器中被占用的处理资源越多,也就是说,剩余的处理能力越小。在本实施例中,针对终端中的多个处理器核心,分别获取每一个处理器核心在当前状态下的处理器负载。
步骤S104:根据所述处理器负载确定所需的计算资源,所述计算资源包括每个处理器核心的频率值之和。
计算资源指的是处理器核心对应的运行频率,处理器核心的极限计算资源即为该处理器核心运行的最大运行频率值。为了支持处理器当前的负载,即正在处理以及等在处理器处理的进程数和任务量,就需要保证处理器核心的运行频率。
在本实施例中,根据每一个处理器负载确定与之对应的运行频率,然后计算所有的处理器的处理器负载对应的运行频率之和,该运行频率之和即为所有处理器负载所需要的计算资源,即处理终端当前的进程或任务所需要处理器核心分配给终端的计算资源。
步骤S106:获取先验的处理器核心在特定频率值的功率值,根据所述先验的处理器核心在特定频率值的功率值确定处理器核心的数量以及每个处理器核心的频率值,使得每个处理器核心的频率值之和符合所述计算资源,且使得所述每个处理器核心的功率值之和最小。
在本实施例中,需要预先获取处理器在不同的运行频率值上的功率值,即确定处理器的运行频率与功率值之间的对应关系,在本实施例中,该对应关系可以是处理器厂家提供的,也可以终端预先获取的实验值。一般来讲,处理器的运行频率与功率值之间并不是成正比例关系的,而比较接近于指数关系,即功率值随着运行频率的增加成指数倍增长。
在获取到处理器的运行频率与功率值之间的对应关系之后,就可以根据该对应关系确定处理器核心的数量以及每个处理器核心的频率值。例如,在于处理器负载对应的计算资源为4G、且可用的处理器核心的数量为4、每个处理器核心的最大计算量为4G时,针对上述4G的需求,可以给出以下4中处理器的组合方式:
第一种,单个处理器以4G的运行频率运行;
第二种,2个处理器分别以2G的运行频率运行;
第三种,3个处理器分别以4/3G的运行频率运行;
第四种,4个处理器分别以1G的运行频率运行。
上述4种处理器的运行数量以及运行频率都可以满足终端当前的负载,即处理器的总体处理能力是足够的,但是对于上述多种组合方式,选择哪一种取决于该种组合方式下的具体的功耗大小。最后选择的组合方式是在该组合方式下每个处理器核心的功率值的总和最小,也就是说,选择的是使得处理器功耗最小的处理器运行数量以及运行频率。
需要说明的是,在本实施例中,每个处理器的运行频率可以是一致的,也可以互相之间是不同的。
在一个具体的实施例中,上述根据所述先验的处理器核心在特定频率值的功率值确定处理器核心的数量以及每个处理器核心的频率值的过程可以是:所述检测当前的处理器负载之后还包括:根据所述当前的处理器负载确定所需处理器核心的最小数目;获取系统中处理器核心的最大数目,根据所述处理器核心的最小数目和最大数目确定处理器核心数量的可选范围;根据公式Nc_x*Fx=Nc_min*Fmax获取多种频率分配策略,其中Nc_x取值为[Nc_min,Nc_max],所述Nc_min表示所述所需处理器核心的最小数目,所述Nc_max表示所述系统中处理器核心的最大数目,Fmax为单个处理器核心的最大频率值,所述Fx表示所述给处理器核心分配的频率值;所述根据所述先验的处理器核心在特定频率值的功率值确定处理器核心的数量以及每个处理器核心的频率值还包括:根据所述先验的处理器核心在特定频率值的功率值确定频率分配策略,使得所述频率分配策略对应的每个处理器核心的功率值之和最小。
用Lc表示处理器的负载,则与该负载对应的最少的处理器个数可以根据如下公式进行计算:
Nc_min=[(Lc+100)/100]。
例如,Lc=20%,则需要的最少处理器数量为1,若Lc=120%,则需要的最少的处理器数量为2。
在终端中的处理器核心的数量总和即为终端中允许的或者可用的最大处理器核心的数量,在本实施例中,用Nc_max表示,例如,对于4核心CPU来讲,Nc_max=4,对于8核心的CPU来讲,Nc_max=8。
根据上述所需处理器核心的最小数目Nc_min以及系统中处理器核心的最大数目Nc_max,可以确定在本方法中可以选择的运行的处理器核心的数量。例如,Nc_min=1,Nc_max=8,则对应的可选的运行的处理器核心的数量Nc_x的取值可以是1,2,3,4,5,6,7,8,即[1,8]中的整数值,即Nc_x取值范围为[Nc_min,Nc_max]。
根据步骤S104中计算出来的计算资源的具体值,以及每个处理器对应的最大的频率值,就可以确定Nc_min,根据公式Nc_x*Fx=Nc_min*Fmax获取多种频率分配策略,其中Fmax为单个处理器核心的最大频率值,Fx表示所述给处理器核心分配的频率值,由Nc_x和Fx的取值就可以确定不同处理器与运行频率之间的组合。
进一步的,在上述根据所述先验的处理器核心在特定频率值的功率值确定处理器核心的数量以及每个处理器核心的频率值的过程中,可以根据先验的处理器核心在特定频率值的功率值,即根据处理器的特定频率值与功率值之间的对应关系,确定满足上述计算资源的频率分配策略,即所有处理器分配的运行频率之和满足上述步骤S104中计算得到的计算资源的具体值,且,在此基础上,选择功率值之和最小的频率分配策略。例如,可以计算每一种频率分配策略下的功率值之和,并根据计算得到的功率值之和确定其中的最小值,选择与该最小值对应的频率分配策略。这样得到的频率分配策略下的处理器运行数量以及运行频率,可以在满足系统当前的负载需求的前提下,得到最低功耗水平的频率分配策略。
在另一可选的实施例中,所述检测当前的处理器负载之后还包括:在所述当前的处理器负载确定的所需处理器核心的最小数目为1时,若没有前景用户操作,则将所述负载设置到单一的处理器核心上。
一般来讲,单核的处理器模式比双核、多核的处理器模式下的待机的电流要小,因此,在情况允许的情况下,可以将终端的负载设置到单一的处理器核心上。具体的,若确定的Nc_min=1,则说明单一的处理器核心已经足够承载当前的负载,并且,若用户当前并没有进行任何的前景操作,则说明用户对于终端也不会有较大的负载需求,即可以将当前的所有的处理器负载有单一的处理器进行,即进入到单一处理器核心模式,例如,在处理器为CPU时,进入到单一CPU模式。采用本实施例,可以显著的降低终端在待机状态下的电流。
需要说明的是,在本实施例中,根据上述的步骤确定了处理器中运行的处理器核心的数量以及频率,然后需要终端根据确定好的处理器中运行的处理器核心的数量以及频率对终端的处理器进行相关的设置。在本实施例中,在操作系统中处理核控制中,频率调节器(Frequency Governor)负责内核的跳频调压操作,热插拔控制模块(CPU/GPU hotplug)负责多个处理核的开关,也就是说,处理器核心的开关以及频率的调节需要通过频率调节器以及热插拔控制模块完成。具体的,所述根据所述先验的处理器核心在特定频率值的功率值确定处理器核心的数量以及每个处理器核心的频率值之后还包括:通过调用频率调节器和热拔插模块的接口将所述处理器核心的数量以及每个处理器核心的频率值的配置应用到处理器核心上。
此外,为解决传统技术中因不能区分前后景应用对于处理器核心负载的不同需求而不能精确的根据负载来控制处理器的数量和频率导致的功耗过大的技术问题,在一个实施例中,如图2所示,还提出了一种处理器计算资源的分配装置,包括处理器负载检测模块102、所需计算资源计算模块104以及处理器核心组合确定模块106,其中:
处理器负载检测模块102,用于检测当前的处理器负载。
需要说明的是,在本发明实施例中,所提及的处理器可以是中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)、微控制单元(Micro Controller Unit,MCU)中的一种或者多种的组合。而且,本实施例中的处理器可以是对称多核处理器(Symmetrical Multi-Processing,SMP),也可以是非对称多核处理器(Asymmetric Multi-Processing,AMP)。
处理器的负载取决于当前处理器正在处理以及等待处理器处理的进程数,一般来讲,负载越大,处理器中被占用的处理资源越多,也就是说,剩余的处理能力越小。在本实施例中,针对终端中的多个处理器核心,处理器负载检测模块102分别获取每一个处理器核心在当前状态下的处理器负载。
所需计算资源计算模块104,用于根据所述处理器负载确定所需的计算资源,所述计算资源包括每个处理器核心的频率值之和。
计算资源指的是处理器核心对应的运行频率,处理器核心的极限计算资源即为该处理器核心运行的最大运行频率值。为了支持处理器当前的负载,即正在处理以及等在处理器处理的进程数和任务量,就需要保证处理器核心的运行频率。
在本实施例中,所需计算资源计算模块104根据每一个处理器负载确定与之对应的运行频率,然后计算所有的处理器的处理器负载对应的运行频率之和,该运行频率之和即为所有处理器负载所需要的计算资源,即处理终端当前的进程或任务所需要处理器核心分配给终端的计算资源。
处理器核心组合确定模块106,用于获取先验的处理器核心在特定频率值的功率值,根据所述先验的处理器核心在特定频率值的功率值确定处理器核心的数量以及每个处理器核心的频率值,使得每个处理器核心的频率值之和符合所述计算资源,且使得所述每个处理器核心的功率值之和最小。
在本实施例中,处理器核心组合确定模块106需要预先获取处理器在不同的运行频率值上的功率值,即处理器核心组合确定模块106确定处理器的运行频率与功率值之间的对应关系,在本实施例中,该对应关系可以是处理器厂家提供的,也可以终端预先获取的实验值。一般来讲,处理器的运行频率与功率值之间并不是成正比例关系的,而比较接近于指数关系,即功率值随着运行频率的增加成指数倍增长。
在处理器核心组合确定模块106获取到处理器的运行频率与功率值之间的对应关系之后,就可以根据该对应关系确定处理器核心的数量以及每个处理器核心的频率值。例如,在于处理器负载对应的计算资源为4G、且可用的处理器核心的数量为4、每个处理器核心的最大计算量为4G时,针对上述4G的需求,可以给出以下4中处理器的组合方式:
第一种,单个处理器以4G的运行频率运行;
第二种,2个处理器分别以2G的运行频率运行;
第三种,3个处理器分别以4/3G的运行频率运行;
第四种,4个处理器分别以1G的运行频率运行。
上述4种处理器的运行数量以及运行频率都可以满足终端当前的负载,即处理器的总体处理能力是足够的,但是对于上述多种组合方式,选择哪一种取决于该种组合方式下的具体的功耗大小。最后选择的组合方式是在该组合方式下每个处理器核心的功率值的总和最小,也就是说,选择的是使得处理器功耗最小的处理器运行数量以及运行频率。
需要说明的是,在本实施例中,每个处理器的运行频率可以是一致的,也可以互相之间是不同的。
可选的,在其中一个实施例中,如图2所示,上述装置还包括频率分配策略确定模块108,用于根据所述当前的处理器负载确定所需处理器核心的最小数目;获取系统中处理器核心的最大数目,根据所述处理器核心的最小数目和最大数目确定处理器核心数量的可选范围;根据公式Nc_x*Fx=Nc_min*Fmax获取多种频率分配策略,其中Nc_x取值为[Nc_min,Nc_max],所述Nc_min表示所述所需处理器核心的最小数目,所述Nc_max表示所述系统中处理器核心的最大数目,Fmax为单个处理器核心的最大频率值,所述Fx表示所述给处理器核心分配的频率值;所述处理器核心组合确定模块106还用于根据所述先验的处理器核心在特定频率值的功率值确定频率分配策略,使得所述频率分配策略对应的每个处理器核心的功率值之和最小。
用Lc表示处理器的负载,则与该负载对应的最少的处理器个数可以根据如下公式进行计算:
Nc_min=[(Lc+100)/100]。
例如,Lc=20%,则需要的最少处理器数量为1,若Lc=120%,则需要的最少的处理器数量为2。
在终端中的处理器核心的数量总和即为终端中允许的或者可用的最大处理器核心的数量,在本实施例中,用Nc_max表示,例如,对于4核心CPU来讲,Nc_max=4,对于8核心的CPU来讲,Nc_max=8。
根据上述所需处理器核心的最小数目Nc_min以及系统中处理器核心的最大数目Nc_max,频率分配策略确定模块108可以确定在本方法中可以选择的运行的处理器核心的数量。例如,Nc_min=1,Nc_max=8,则对应的可选的运行的处理器核心的数量Nc_x的取值可以是1,2,3,4,5,6,7,8,即[1,8]中的整数值,即Nc_x取值范围为[Nc_min,Nc_max]。
根据所需计算资源计算模块104计算出来的计算资源的具体值,以及每个处理器对应的最大的频率值,频率分配策略确定模块108可以确定Nc_min,根据公式Nc_x*Fx=Nc_min*Fmax获取多种频率分配策略,其中Fmax为单个处理器核心的最大频率值,Fx表示所述给处理器核心分配的频率值,由Nc_x和Fx的取值就可以确定不同处理器与运行频率之间的组合。
进一步的,在上述频率分配策略确定模块108根据所述先验的处理器核心在特定频率值的功率值确定处理器核心的数量以及每个处理器核心的频率值的过程中,可以根据先验的处理器核心在特定频率值的功率值,即根据处理器的特定频率值与功率值之间的对应关系,确定满足上述计算资源的频率分配策略,即所有处理器分配的运行频率之和满足上述计算得到的计算资源的具体值,且,在此基础上,选择功率值之和最小的频率分配策略。例如,频率分配策略确定模块108计算每一种频率分配策略下的功率值之和,并根据计算得到的功率值之和确定其中的最小值,选择与该最小值对应的频率分配策略。这样得到的频率分配策略下的处理器运行数量以及运行频率,可以在满足系统当前的负载需求的前提下,得到最低功耗水平的频率分配策略。
可选的,在其中一个实施例中,如图2所示,上述装置还包括单一处理器核心设置模块110,用于在所述当前的处理器负载确定的所需处理器核心的最小数目为1时,若没有前景用户操作,则将所述负载设置到单一的处理器核心上。
一般来讲,单核的处理器模式比双核、多核的处理器模式下的待机的电流要小,因此,在情况允许的情况下,单一处理器核心设置模块110可以将终端的负载设置到单一的处理器核心上。具体的,若确定的Nc_min=1,则说明单一的处理器核心已经足够承载当前的负载,并且,若用户当前并没有进行任何的前景操作,则说明用户对于终端也不会有较大的负载需求,即单一处理器核心设置模块110可以将当前的所有的处理器负载有单一的处理器进行,即进入到单一处理器核心模式,例如,在处理器为CPU时,进入到单一CPU模式。采用本实施例,可以显著的降低终端在待机状态下的电流。
可选的,在其中一个实施例中,如图2所示,上述装置还包括处理器配置应用模块112,用于通过调用频率调节器和热拔插模块的接口将所述处理器核心的数量以及每个处理器核心的频率值的配置应用到处理器核心上。
需要说明的是,在本实施例中,根据确定了处理器中运行的处理器核心的数量以及频率,然后需要处理器配置应用模块112根据确定好的处理器中运行的处理器核心的数量以及频率对终端的处理器进行相关的设置。在本实施例中,在操作系统中处理核控制中,频率调节器(Frequency Governor)负责内核的跳频调压操作,热插拔控制模块(CPU/GPUhotplug)负责多个处理核的开关,也就是说,处理器核心的开关以及频率的调节需要通过频率调节器以及热插拔控制模块完成。
实施本发明实施例,将具有如下有益效果:
采用了上述处理器计算资源的分配方法和装置之后,根据终端当前的处理器负载情况以及当前需要的最小计算资源,在系统允许的处理器资源的范围内,对运行的处理器核心的数量以及频率进行优化,即按照不同的处理器数量和频率的组合对应不同的功耗参数,以求在满足性能要求的前提下,得到功耗最优的结果,即确定运行的处理器数量以及频率;也就是说,采用上述处理器计算资源的分配方法及装置之后,在保证了显示线程的性能的前提下,降低了终端的功耗。
在一个实施例中,如图3所示,图3展示了一种运行上述处理器计算资源的分配方法的基于冯诺依曼体系的计算机系统的终端。该计算机系统可以是智能手机、平板电脑、掌上电脑,笔记本电脑或个人电脑等终端设备。具体的,可包括通过系统总线连接的外部输入接口1001、处理器1002、存储器1003和输出接口1004。其中,外部输入接口1001可选的可至少包括网络接口10012。存储器1003可包括外存储器10032(例如硬盘、光盘或软盘等)和内存储器10034。输出接口1004可至少包括显示屏10042等设备。
在本实施例中,本方法的运行基于计算机程序,该计算机程序的程序文件存储于前述基于冯诺依曼体系的计算机系统的外存储器10032中,在运行时被加载到内存储器10034中,然后被编译为机器码之后传递至处理器1002中执行,从而使得基于冯诺依曼体系的计算机系统中形成逻辑上的处理器负载检测模块102、所需计算资源计算模块104以及处理器核心组合确定模块106。且在上述处理器计算资源的分配方法执行过程中,输入的参数均通过外部输入接口1001接收,并传递至存储器1003中缓存,然后输入到处理器1002中进行处理,处理的结果数据或缓存于存储器1003中进行后续地处理,或被传递至输出接口1004进行输出。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。