CN105955827B - 处理器计算资源的分配方法及装置 - Google Patents

处理器计算资源的分配方法及装置 Download PDF

Info

Publication number
CN105955827B
CN105955827B CN201610380703.0A CN201610380703A CN105955827B CN 105955827 B CN105955827 B CN 105955827B CN 201610380703 A CN201610380703 A CN 201610380703A CN 105955827 B CN105955827 B CN 105955827B
Authority
CN
China
Prior art keywords
processor
processor core
core
frequency
load
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.)
Active
Application number
CN201610380703.0A
Other languages
English (en)
Other versions
CN105955827A (zh
Inventor
曾元清
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Jinsheng Communication Technology Co ltd
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN201610380703.0A priority Critical patent/CN105955827B/zh
Publication of CN105955827A publication Critical patent/CN105955827A/zh
Priority to EP17805797.2A priority patent/EP3467651B1/en
Priority to PCT/CN2017/086447 priority patent/WO2017206852A1/zh
Application granted granted Critical
Publication of CN105955827B publication Critical patent/CN105955827B/zh
Priority to US16/110,319 priority patent/US10740154B2/en
Priority to US16/245,236 priority patent/US10664318B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明实施例公开了一种处理器计算资源的分配方法,包括:检测当前的处理器负载;根据所述处理器负载确定所需的计算资源,所述计算资源包括每个处理器核心的频率值之和;获取先验的处理器核心在特定频率值的功率值,根据所述先验的处理器核心在特定频率值的功率值确定处理器核心的数量以及每个处理器核心的频率值,使得每个处理器核心的频率值之和符合所述计算资源,且使得所述每个处理器核心的功率值之和最小。此外,本发明实施例还公开了一种处理器计算资源的分配装置。采用本发明,可降低终端的功耗。

Description

处理器计算资源的分配方法及装置
技术领域
本发明涉及终端领域,尤其涉及一种处理器计算资源的分配方法及装置。
背景技术
随着处理器技术的不断发展,多核技术成为当今处理器发展的重要方向。相比传统的单核芯片,多核处理器技术通过多个处理核互相协助的方式实现了保持频率不变的情况下,大幅度地提升系统的性能。
在实践过程技术人员发现,不同的应用场景下,处理器的实际负载其实并不相同,例如,不同的前景应用所对应的负载差异会非常大,比如非常轻量级的播放音乐、中度负载的拍照、浏览网页,以及重度负载的大型游戏,其所需要的CPU或者GPU的数量以及频率资源都存在较大的差异;另外,在终端中还运行了大量的后台应用,同样也需要占用一定的处理器资源。而在操作系统中处理核控制中,频率调节器负责内核的跳频调压操作,热插拔控制模块负责多个处理核的开关,处理方法主要是周期性的根据当前处理和的运行频率和变化方向来预设负载,或者根据单位时间内运行的任务数来确定每一个处理核的开关;也就是说,频率调节器以及热插拔控制模块难以区分前后径的应用的不同负载需求,不能精确的根据负载来控制处理器资源的分配。
也就是说,在现有技术中多核处理器的控制方案中,处理器并不能区分前后径的应用的不同负载需求,不能精确的根据负载来控制处理器资源的分配,这就使得处理器的负载可能出现负载过重的问题,处理器的处理能力不足而导致出现卡顿等现象,或者,处理器的负载可能过轻,处理器的一些内核可能会处于“空转”状态而导致出现不必要的电量浪费。
发明内容
基于此,本发明为解决传统技术中因不能区分前后景应用对于处理器核心负载的不同需求而不能精确的根据负载来控制处理器的数量和频率导致的功耗过大的技术问题,特提出了一种处理器计算资源的分配方法。
一种处理器计算资源的分配方法,包括:
检测当前的处理器负载;
根据所述处理器负载确定所需的计算资源,所述计算资源包括每个处理器核心的频率值之和;
获取先验的处理器核心在特定频率值的功率值,根据所述先验的处理器核心在特定频率值的功率值确定处理器核心的数量以及每个处理器核心的频率值,使得每个处理器核心的频率值之和符合所述计算资源,且使得所述每个处理器核心的功率值之和最小。
可选的,在其中一个实施例中,所述检测当前的处理器负载之后还包括:
根据所述当前的处理器负载确定所需处理器核心的最小数目;
获取系统中处理器核心的最大数目,根据所述处理器核心的最小数目和最大数目确定处理器核心数量的可选范围;
根据公式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核心。
实施本发明实施例,将具有如下有益效果:
采用了上述处理器计算资源的分配方法和装置之后,根据终端当前的处理器负载情况以及当前需要的最小计算资源,在系统允许的处理器资源的范围内,对运行的处理器核心的数量以及频率进行优化,即按照不同的处理器数量和频率的组合对应不同的功耗参数,以求在满足性能要求的前提下,得到功耗最优的结果,即确定运行的处理器数量以及频率;也就是说,采用上述处理器计算资源的分配方法及装置之后,在保证了显示线程的性能的前提下,降低了终端的功耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
其中:
图1为一个实施例中一种处理器计算资源的分配方法的流程示意图;
图2为一个实施例中一种处理器计算资源的分配装置的结构示意图;
图3为一个实施例中运行前述处理器计算资源的分配方法的计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
为解决传统技术中因不能区分前后景应用对于处理器核心负载的不同需求而不能精确的根据负载来控制处理器的数量和频率导致的功耗过大的技术问题,在本实施例中,特提出了一种处理器计算资源的分配方法,该方法的实现可依赖于计算机程序,该计算机程序可运行于基于冯诺依曼体系的计算机系统之上,该计算机程序可以是多核处理器的终端的处理器控制应用程序。该计算机系统可以是运行上述计算机程序的例如智能手机、平板电脑、个人电脑等终端设备。
本发明实施例中提及的终端可以是智能手机(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进行输出。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (8)

1.一种处理器计算资源的分配方法,其特征在于,包括:
针对终端中的多个处理器核心,分别获取每一个处理器核心在当前状态下的处理器负载,所述处理器负载为正在处理以及等待处理器处理的进程数和任务量;
根据所述处理器负载确定所需的计算资源,所述计算资源包括每个处理器负载对应的运行频率值之和;
根据公式Nc_min=[(Lc+100)/100]以及所述当前的处理器负载确定所需处理器核心的最小数目,Lc表示处理器负载;
获取系统中处理器核心的最大数目,根据所述处理器核心的最小数目和最大数目确定处理器核心数量的可选范围;
根据公式Nc_x*Fx=Nc_min*Fmax获取多种频率分配策略,其中Nc_x取值为[Nc_min,Nc_max],所述Nc_min表示所述所需处理器核心的最小数目,所述Nc_max表示所述系统中处理器核心的最大数目,Fmax为单个处理器核心的最大频率值,所述Fx表示给处理器核心分配的频率值;
获取处理器的运行频率值与功率值之间的对应关系,根据所述处理器的运行频率值与功率值之间的对应关系确定频率分配策略,使得每个处理器核心的频率值之和符合所述计算资源,且使得所述频率分配策略对应的每个处理器核心的功率值之和最小。
2.根据权利要求1所述的处理器计算资源的分配方法,其特征在于,所述针对终端中的多个处理器核心,分别获取每一个处理器核心在当前状态下的处理器负载之后还包括:
在所述当前的处理器负载确定的所需处理器核心的最小数目为1时,若没有前景用户操作,则将所述负载设置到单一的处理器核心上。
3.根据权利要求1所述的处理器计算资源的分配方法,其特征在于,所述根据所述处理器的运行频率值与功率值之间的对应关系确定频率分配策略之后还包括:
通过调用频率调节器和热拔插模块的接口将所述处理器核心的数量以及每个处理器核心的频率值的配置应用到处理器核心上。
4.根据权利要求1至3任一所述的处理器计算资源的分配方法,其特征在于,所述处理器核心包括CPU核心和GPU核心。
5.一种处理器计算资源的分配装置,其特征在于,包括:
处理器负载检测模块,用于针对终端中的多个处理器核心,分别获取每一个处理器核心在当前状态下的处理器负载,所述处理器负载为正在处理以及等待处理器处理的进程数和任务量;
所需计算资源计算模块,用于根据所述处理器负载确定所需的计算资源,所述计算资源包括每个处理器负载对应的运行频率值之和;
频率分配策略确定模块,用于根据公式Nc_min=[(Lc+100)/100]以及所述当前的处理器负载确定所需处理器核心的最小数目,Lc表示处理器负载;获取系统中处理器核心的最大数目,根据所述处理器核心的最小数目和最大数目确定处理器核心数量的可选范围;根据公式Nc_x*Fx=Nc_min*Fmax获取多种频率分配策略,其中Nc_x取值为[Nc_min,Nc_max],所述Nc_min表示所述所需处理器核心的最小数目,所述Nc_max表示所述系统中处理器核心的最大数目,Fmax为单个处理器核心的最大频率值,所述Fx表示给处理器核心分配的频率值;
处理器核心组合确定模块,用于获取处理器的运行频率值与功率值之间的对应关系,根据所述处理器的运行频率值与功率值之间的对应关系确定频率分配策略,使得每个处理器核心的频率值之和符合所述计算资源,且使得所述频率分配策略对应的每个处理器核心的功率值之和最小。
6.根据权利要求5所述的处理器计算资源的分配装置,其特征在于,所述装置还包括单一处理器核心设置模块,用于在所述当前的处理器负载确定的所需处理器核心的最小数目为1时,若没有前景用户操作,则将所述负载设置到单一的处理器核心上。
7.根据权利要求5所述的处理器计算资源的分配装置,其特征在于,所述装置还包括处理器配置应用模块,用于通过调用频率调节器和热拔插模块的接口将所述处理器核心的数量以及每个处理器核心的频率值的配置应用到处理器核心上。
8.根据权利要求5至7任一所述的处理器计算资源的分配装置,其特征在于,所述处理器核心包括CPU核心和GPU核心。
CN201610380703.0A 2016-05-31 2016-05-31 处理器计算资源的分配方法及装置 Active CN105955827B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201610380703.0A CN105955827B (zh) 2016-05-31 2016-05-31 处理器计算资源的分配方法及装置
EP17805797.2A EP3467651B1 (en) 2016-05-31 2017-05-27 Method, device and terminal for allocating computational resources of processor
PCT/CN2017/086447 WO2017206852A1 (zh) 2016-05-31 2017-05-27 处理器计算资源的分配方法、装置及终端
US16/110,319 US10740154B2 (en) 2016-05-31 2018-08-23 Method and apparatus for allocating computing resources of processor based on processor load, and terminal
US16/245,236 US10664318B2 (en) 2016-05-31 2019-01-10 Method and apparatus for allocating computing resources of processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610380703.0A CN105955827B (zh) 2016-05-31 2016-05-31 处理器计算资源的分配方法及装置

Publications (2)

Publication Number Publication Date
CN105955827A CN105955827A (zh) 2016-09-21
CN105955827B true CN105955827B (zh) 2017-11-24

Family

ID=56907307

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610380703.0A Active CN105955827B (zh) 2016-05-31 2016-05-31 处理器计算资源的分配方法及装置

Country Status (4)

Country Link
US (2) US10740154B2 (zh)
EP (1) EP3467651B1 (zh)
CN (1) CN105955827B (zh)
WO (1) WO2017206852A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106341231A (zh) * 2016-08-22 2017-01-18 北京信安世纪科技有限公司 一种信息处理方法及电子设备

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10445850B2 (en) * 2015-08-26 2019-10-15 Intel Corporation Technologies for offloading network packet processing to a GPU
CN105955827B (zh) * 2016-05-31 2017-11-24 广东欧珀移动通信有限公司 处理器计算资源的分配方法及装置
CN106776004A (zh) * 2016-11-18 2017-05-31 努比亚技术有限公司 Cpu资源分配装置及方法
CN109101073B (zh) * 2017-06-20 2023-01-10 深圳市中兴微电子技术有限公司 一种总线动态调频方法和总线动态调频装置
CN109117262B (zh) * 2017-06-22 2022-01-11 深圳市中兴微电子技术有限公司 一种基带处理芯片cpu动态调频方法及无线终端
CN107729145A (zh) * 2017-10-11 2018-02-23 广东欧珀移动通信有限公司 应用程序运行控制方法及装置
CN112912820A (zh) * 2018-10-26 2021-06-04 华为技术有限公司 Cpu调节器的能效调整
CN112068690B (zh) * 2020-09-04 2022-09-20 龙芯中科技术股份有限公司 处理器调频方法及装置
CN112799838A (zh) * 2021-01-27 2021-05-14 Oppo广东移动通信有限公司 任务处理方法、多核处理器及计算机设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101446856A (zh) * 2007-11-15 2009-06-03 英特尔公司 优化多管芯微处理器中的频率和性能的方法、设备和系统
CN103838353A (zh) * 2014-01-02 2014-06-04 深圳市金立通信设备有限公司 一种控制处理器运行的方法及终端
CN104820618A (zh) * 2015-04-24 2015-08-05 华为技术有限公司 一种任务调度方法、任务调度装置及多核系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7249268B2 (en) * 2004-06-29 2007-07-24 Intel Corporation Method for performing performance optimization operations for a processor having a plurality of processor cores in response to a stall condition
US7992015B2 (en) * 2008-02-05 2011-08-02 Dell Products L.P. Processor performance state optimization
EP2362297B1 (en) 2010-02-25 2014-05-14 Telefonaktiebolaget L M Ericsson (publ) Technique for selecting a frequency of operation in a processor system
US9137848B2 (en) * 2012-01-31 2015-09-15 Lg Electronics Inc. Mobile terminal, controlling method thereof and recording medium thereof
US9075556B2 (en) 2012-12-21 2015-07-07 Intel Corporation Controlling configurable peak performance limits of a processor
US10642652B2 (en) 2016-01-29 2020-05-05 Peter P. Nghiem Best trade-off point on an elbow curve for optimal resource provisioning and performance efficiency
CN105955827B (zh) 2016-05-31 2017-11-24 广东欧珀移动通信有限公司 处理器计算资源的分配方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101446856A (zh) * 2007-11-15 2009-06-03 英特尔公司 优化多管芯微处理器中的频率和性能的方法、设备和系统
CN103838353A (zh) * 2014-01-02 2014-06-04 深圳市金立通信设备有限公司 一种控制处理器运行的方法及终端
CN104820618A (zh) * 2015-04-24 2015-08-05 华为技术有限公司 一种任务调度方法、任务调度装置及多核系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106341231A (zh) * 2016-08-22 2017-01-18 北京信安世纪科技有限公司 一种信息处理方法及电子设备

Also Published As

Publication number Publication date
EP3467651A1 (en) 2019-04-10
US20180365066A1 (en) 2018-12-20
WO2017206852A1 (zh) 2017-12-07
US20190146842A1 (en) 2019-05-16
CN105955827A (zh) 2016-09-21
US10664318B2 (en) 2020-05-26
EP3467651A4 (en) 2019-05-22
US10740154B2 (en) 2020-08-11
EP3467651B1 (en) 2021-12-15

Similar Documents

Publication Publication Date Title
CN105955827B (zh) 处理器计算资源的分配方法及装置
US20190171941A1 (en) Electronic device, accelerator, and accelerating method applicable to convolutional neural network computation
CN106293914B (zh) 一种任务调度的方法及终端
Sun et al. Enabling task-level scheduling on heterogeneous platforms
CN107533354A (zh) 控制处理器的处理引擎的性能状态
CN109783232A (zh) 视频数据处理方法、装置及存储介质
CN111191777B (zh) 一种神经网络处理器及其控制方法
CN110300959A (zh) 动态运行时任务管理
Min et al. Pytorch-direct: Enabling gpu centric data access for very large graph neural network training with irregular accesses
CN112799726A (zh) 数据处理装置、方法及相关产品
CN108369495A (zh) 用于浮点操作的硬件消除监视器
US20230195310A1 (en) Fpga board memory data reading method and apparatus, and medium
CN114564435A (zh) 异构多核芯片的核间通信方法、装置及介质
CN107066326A (zh) 一种调度任务的方法及终端
CN108366091A (zh) 网络请求处理方法、终端及计算机可读介质
CN110445558A (zh) 性能测试方法、装置及终端设备
Strumpen et al. Exploiting communication latency hiding for parallel network computing: Model and analysis
CN113918221A (zh) 运算模块、流水优化方法及相关产品
CN112084023A (zh) 数据并行处理的方法、电子设备及计算机可读存储介质
CN113469337B (zh) 用于优化神经网络模型的编译方法及其相关产品
CN109544587A (zh) 一种抠图处理方法、装置及终端设备
CN109408225A (zh) 资源扩容方法、装置、计算机设备以及存储介质
CN108694154A (zh) 用于选择数据元素的硬件加速器
CN115373646A (zh) 扩展信息方法、装置和相关产品
US9805440B2 (en) Method and apparatus to improve performance of chained tasks on a graphics processing unit

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 523860 No. 18, Wu Sha Beach Road, Changan Town, Dongguan, Guangdong

Patentee after: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd.

Address before: 523860 No. 18, Wu Sha Beach Road, Changan Town, Dongguan, Guangdong

Patentee before: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190102

Address after: Room 2101, 600 Longhuazhong Road, Xuhui District, Shanghai 200030

Patentee after: SHANGHAI JINSHENG COMMUNICATION TECHNOLOGY Co.,Ltd.

Address before: 523860 No. 18, Wu Sha Beach Road, Changan Town, Dongguan, Guangdong

Patentee before: GUANGDONG OPPO MOBILE TELECOMMUNICATIONS Corp.,Ltd.