一种多核处理器调控方法及装置及使用该方法的移动终端的制作方法

文档序号:10534610阅读:410来源:国知局
一种多核处理器调控方法及装置及使用该方法的移动终端的制作方法
【专利摘要】本发明提供一种多核处理器的调控方法,获取当前工作的每个处理器内核的负载值;获取负载值的最高值和最低值;判断最低值是否小于预设最低阈值,若是,则判断最低值与最高值之和是否小于预设最高阈值,若是则对最低值对应的处理器内核进行关闭操作。该方案中,对多核处理器中的处理器内核进行调度时,不是按照现有技术中将序号最大的处理器内核关闭,而是根据当前的负载情况,当负载最低的处理器内核的负载值低于预设最低阈值,说明该处理器内核的负载已经很小,可以考虑进行优化操作,通过计算最低负载与最高负载之和是否能够超过预设最高阈值,可以避免重复开启和关闭新的处理器内核,造成系统资源浪费的问题,提高了系统资源的利用率。
【专利说明】
一种多核处理器调控方法及装置及使用该方法的移动终端
技术领域
[0001]本发明涉及处理器领域,具体涉及一种多核处理器的调控方法及装置。
【背景技术】
[0002]中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心(Control Unit),其主要功能是解释计算机指令以及处理计算机软件中的数据。随着所需处理的数据量日益增加,对处理器的要求也越来越高,多核处理器(多核CPU)应运而生。多核CPU就是基板上集成有多个单核CPU,多核CPU可以同时处理任务,提高了运算处理的速度。
[0003]随着现有的智能手机的性能越来强大,手机中CPU具有的内核数量也越来越多,频率也越来越高,但是使用多个CPU内核会消耗更多的电量,导致手机在保证性能的时候丧失了手机的电池寿命。为了在系统性能和电池寿命之间进行平衡,大多手机都采用CPUhotplug算法(CPU热插拔算法)来动态的对系统使用的CPU的内核数量进行调节,使得在各个场景下的CHJ内核的数量在合理的范围之内,既可以保证性能,又可以比较好的兼顾电池的续航能力。
[0004]现有技术中,手机的CPUhotplug算法通过以下方式实现:当系统负载重的时候,该算法会从序号为1、2、3、……N的CPU内核之间按照顺序和策略,将若干个CPU内核唤起,进行重任务的处理,保证用户体验。当系统负载较轻的时候,系统从序号最大的CPU内核开始进行卸载工作,由于序号最大的CPU内核的处理的任务也可能会比较多,这些处理任务的进程需要迀移到其他CPU内核,这样会导致进程多次迀移,也使得当前CPU内核使用的缓存丢失而不再可用,需要消耗时间重新获取进程或者线程,加剧了 CPU的负担。

【发明内容】

[0005]因此,本发明要解决的技术问题在于克服现有技术中的多核处理器进行没必要的进程迀移导致缓存不可用、占用资源、消耗能源的缺陷。
[0006]本发明提供一种多核处理器调控方法,包括如下步骤:
[0007]获取当前工作的每个处理器内核的负载值;
[0008]获取所述负载值中的最高值和最低值;
[0009]判断所述最低值是否小于预设最低阈值,若小于预设最低阈值,则判断所述最低值与所述最高值之和是否小于预设最高阈值,若小于预设最高阈值,则对所述最低值对应的处理器内核进行关闭操作。
[0010]优选地,还包括判断所述最高值是否大于预设最高阈值,若是则判断所述最低值是否大于预设中间阈值,若是则至少开启一个未工作的处理器内核。
[0011]优选地,所述获取当前工作的每个处理器内核的负载值的步骤,包括:
[0012]设置一个时间窗;
[0013]对于每个处理器内核,收集其在该时间窗内的工作时间所占的百分比作为处理器内核的负载值。
[0014]优选地,对所述最低值对应的处理器内核进行关闭操作的步骤,包括
[0015]将所述处理器内核的负载进行迀移;
[0016]判断迀移是否完成,若完成则对该处理器内核进行断电。
[0017]本发明还提供一种使用所述多核处理器调控方法的移动终端。
[0018]本发明还提供一种多核处理器调控装置,包括:
[0019]负载值获取单元,用于获取当前工作的每个处理器内核的负载值;
[0020]极值获取单元,用于获取所述负载值的最高值和最低值;
[0021]关闭操作单元,用于判断所述最低值是否小于预设最低阈值,若是,则判断所述最低值与所述最高值之和是否小于预设最高阈值,若是则对所述最低值对应的处理器内核进行关闭操作。
[0022]优选地,还包括开启单元,用于判断所述最高值是否大于预设最高阈值,若是则判断所述最低值是否大于预设中间阈值,若是则至少开启一个未工作的处理器内核。
[0023]优选地,所述负载值获取单元包括:
[0024]时间窗设置子单元,设置一个时间窗;
[0025]收集子单元,对于每个处理器内核,收集其在该时间窗内的工作时间所占的百分比作为处理器内核的负载值。
[0026]优选地,所述关闭操作单元包括:
[0027]迀移子单元,将所述处理器内核的负载进行迀移;
[0028]断电子单元,判断迀移是否完成,若完成则对该处理器内核进行断电。
[0029]本发明技术方案,具有如下优点:
[0030]1.本发明提供一种多核处理器的调控方法,获取当前工作的每个处理器内核的负载值;获取所述负载值的最高值和最低值;判断所述最低值是否小于预设最低阈值,若是,则判断所述最低值与所述最高值之和是否小于预设最高阈值,若是则对所述最低值对应的处理器内核进行关闭操作。该方案中,对多核处理器中的处理器内核进行调度时,不是按照现有技术中将序号最大的处理器内核关闭,而是根据当前的负载情况,当负载最低的处理器内核的负载值低于预设最低阈值,说明该处理器内核的负载已经很小,可以考虑进行优化操作,通过计算最低负载与最高负载之和是否能够超过预设最高阈值,可以避免重复开启和关闭新的处理器内核,造成系统资源浪费的问题,提高了系统资源的利用率。
[0031]2.本发明提供的多核处理器调控方法,还包括判断所述最高值是否大于预设最高阈值,若是则判断所述最低值是否大于预设中间阈值,若是则至少开启一个未工作的处理器内核。该方案考虑了增加新处理器内核的情况,当最高的负载超过最高阈值且最低的负载也超过一个中间阈值的时候,考虑增加新的处理器内核来提高系统性能,保证了系统的利用率。
【附图说明】
[0032]为了更清楚地说明本发明【具体实施方式】或现有技术中的技术方案,下面将对【具体实施方式】或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0033]图1为本发明实施例1中多核处理器调控方法的一个具体示例的流程图;
[0034]图2为本发明实施例2中多核处理器调控装置的一个具体示例的结构框图。
【具体实施方式】
[0035]下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0036]在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0037]在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,还可以是两个元件内部的连通,可以是无线连接,也可以是有线连接。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0038]此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
[0039]实施例1
[0040]本实施例中提供一种多核处理器调控方法,用于具有多核处理器的智能设备的操作系统中,如手机、电脑等设备中,其目的是对多核处理器中的多个处理器内核进行合理的开启和关闭,在保证系统性能的同时降低能耗。该方法包括如下步骤:
[0041]S1、获取当前工作的每个处理器内核的负载值。
[0042]该步骤中,在操作系统中设置有CPUfreq governor(动态调整CPU频率的模块)和CPU hotplug(CPU热插拔模板),CPUfreq governor用于动态地调整CPU的频率,CPUhotplug用于控制多个CPU内核的热插拔。本步骤中可以收集各个CPUfreq governor的loading值,将CPU hotplug和CPUfreq通用一个CPU loading收集算法,避免资源的重复使用,通过该loading值可以得到各个CPU内核的负载值。由于该loading值是根据采用周期一帧一帧来获得的,loading值可能存在一定的抖动性,出现短时内的loading值的剧烈变化,为了避免该抖动对多核处理器调控的影响,通过滑窗的方式获得一个时间长度内的loading值,然后计算其平均值作为每个处理器内核的负载值。
[0043]该获取当前工作的每个处理器内核的负载值的步骤,包括:
[0044]Sll、设置一个时间窗。
[0045]CPU hotp IUg接收到系统获得的负载值,为了更好的评估和防止系统性能的抖动性,需要在收集负载过程中进行平滑处理,处理的原则就是滑动平均,即设置一个滑动时间窗口,该时间窗的长度根据需要来选择,这个时间窗的大小其实是做出CPU内核(下文也称为CPU core)的热插拔动作的间隔,时间窗口对于判断CPU内核是否需要上电或下电操作是不同的,对于上电操作要快,必须保证用户体验,下电动作相对慢些,也可以防止性能的抖动,两者的时间比例关系不固定,需要多次重复试验确定最佳时间窗口数值。判断CPU是否需要上电时,滑动窗口的推荐数值为20毫秒,判断CPU内核是否需要下电时,滑动窗口的推荐数值为60?100毫秒之间。例如(PU的内核数量是5个,如果当前CPU内核使用的个数为3个,则设置两个时间窗分别为20毫秒和60毫秒,分别用于检测是否需要增加CPU内核或是否需要关闭CPU内核。
[0046]S12、对于每个处理器内核,收集其在该时间窗内的工作时间所占的百分比作为处理器内核的负载值。
[0047]当收集的负载达到滑动窗口设置的时间窗大小的时候,计算各个CPUloading的值。
[0048]根据时间窗长度内的工作时间和时间窗长度,来计算负载值m,即m= tbusy/t,其中t为时间窗的长度,tbusy为在该时间窗长度内的工作时间长度。如在20晕秒中,工作了 I O晕秒,10毫秒为空闲,则该处理器内核的负载值为50%。通过上述过程,获得了每个处理器内核的负载值为m。
[0049]S2、获取所述负载值的最高值和最低值。
[0050]根据步骤SI中计算出的每个处理器内核的负载值,将所述负载值升序排列,可以得到负载值的最高值和其对应的处理器内核以及负载值的最低值及其对应的处理器内核。
[0051]在负载较轻时,使用60毫秒的时间窗获得的负载值,负载值的最低值会触发预设的最低阈值,执行S3-S4关闭一个或多个CPU内核。在负载较重时,使用20毫秒的时间窗获得的负载值,负载值的最高值会触发预设的最高阈值,执行步骤S5,开启一个或多个CPU内核。
[0052]S3、判断负载值的所述最低值是否小于预设最低阈值,此处的预设最低阈值可以在10 % -20 %之间选择,若是,则执行S4,若否则继续监控负载值。
[0053]S4、判断所述最低值与所述最高值之和是否小于预设最高阈值,最高阈值可以设置为90%及以上,也可以根据需要对该阈值进行合理调整,若负载值中的所述最低值与所述最高值之和小于预设最高阈值,则对所述最低值对应的处理器内核进行关闭操作,若否则继续监控负载值。进行关闭操作时,会将待关闭的处理器内核上的任务进行迀移,迀移到其他的处理器内核上,判断迀移是否完成,若完成则对该处理器内核进行断电。
[0054]具体的一种方式为:负载较轻的时候,各个CPUloading值进行一个按照从小到大的排序,当最小loading的CPU core触发了最低门限,最高的loading的CPU core加上最小loading的数值没有触发最高门限阀值,那么就可以将其置于plutout状态,将负载最小的CPU core上的负载迀移后进行断电操作,通过两次阈值的计算的目的在于防止CPU core的数量抖动的太过于频繁,否则不利于省电。
[0055]该方案中,对多核处理器中的处理器内核进行调度时,不是按照现有技术中将序号最大的处理器内核关闭,而是根据当前的负载情况,当负载最低的处理器内核的负载值低于预设最低阈值,说明该处理器内核的负载已经很小,可以考虑进行优化操作,通过计算最低负载与最高负载之和是否能够超过预设最高阈值,可以避免重复开启和关闭新的处理器内核,造成系统资源浪费,提高了系统资源的利用率。
[0056]作为进一步的方案,还包括S5、判断所述负载值的最高值是否大于预设最高阈值,若是则判断所述最低值是否大于预设中间阈值,预设中间阈值可以根据需要设置为50%-70%之间的一个数值,若最低值大于该预设中间阈值,则至少开启一个未工作的处理器内核。
[0057]具体为:当系统负载较重时,获取CPUcore的最高的loading数值和获取CPUloading最小的数值,如果CPU loading最高值大于预设的最高阈值,CPU loading最小的数值大于预设的中间阀值,该预设中间阈值小于预设的最高阈值且大于预设的最低阈值,那么就可以触发CPU core的plugin操作,增加CPU core的数量来提升系统的性能。
[0058]该方案考虑了增加新处理器内核的情况,当最高的负载超过最高阈值且最低的负载也超过一个中间阈值的时候,考虑增加新的处理器内核来提高系统性能,保证了系统的利用率。
[0059]如果不满足上述触发条件,那么系统就会滑入下一个窗口来收集各个工作的CPUcore的loading数值,进入下一个收集周期。根据系统负载来决定系统中有多少个工作的CPU Core0
[0060]通过执行上述方法,与现有技术相比,就可以很好的保证当系统负载较轻时,如果一个CPU core的进程CPU占用率较高,并且靠后,并不会导致其因为CPU hotplug算法导致进程迀移,也不会导致这个进程在此CPU core上面的cache消失。且该方案保证了系统的性能,降低了能耗。
[0061]本实施例中还提供一种使用上述多核处理器调控方法的移动终端,如手机、ipad、笔记本电脑等。
[0062]实施例2
[0063]本施例提供一种多核处理器调控装置,包括:
[0064]负载值获取单元01,用于获取当前工作的每个处理器内核的负载值;
[0065]极值获取单元02,用于获取所述负载值的最高值和最低值;
[0066]关闭操作单元03,用于判断所述最低值是否小于预设最低阈值,若是,则判断所述最低值与所述最高值之和是否小于预设最高阈值,若是则对所述最低值对应的处理器内核进行关闭操作。
[0067]作为优化的方案,还包括开启单元04,用于判断所述最高值是否大于预设最高阈值,若是则判断所述最低值是否大于预设中间阈值,若是则至少开启一个未工作的处理器内核。
[0068]其中,所述负载值获取单元01包括:
[0069 ]时间窗设置子单元,设置一个时间窗;
[0070]收集子单元,对于每个处理器内核,收集其在该时间窗内的工作时间所占的百分比作为处理器内核的负载值。
[0071]其中,所述关闭操作单元03包括:
[0072]迀移子单元,将所述处理器内核的负载进行迀移;
[0073]断电子单元,判断迀移是否完成,若完成则对该处理器内核进行断电。
[0074]本实施例中的装置可以避免重复开启和关闭新的处理器内核,造成系统资源浪费的问题,提高了系统资源的利用率。
[0075]本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0076]本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0077]这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0078]这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0079]显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
【主权项】
1.一种多核处理器调控方法,其特征在于,包括如下步骤: 获取当前工作的每个处理器内核的负载值; 获取所述负载值中的最高值和最低值; 判断所述最低值是否小于预设最低阈值,若小于预设最低阈值,则判断所述最低值与所述最高值之和是否小于预设最高阈值,若小于预设最高阈值,则对所述最低值对应的处理器内核进行关闭操作。2.根据权利要求1所述的方法,其特征在于,还包括判断所述最高值是否大于预设最高阈值,若是则判断所述最低值是否大于预设中间阈值,若是则至少开启一个未工作的处理器内核。3.根据权利要求1或2所述的方法,其特征在于,所述获取当前工作的每个处理器内核的负载值的步骤,包括: 设置一个时间窗; 对于每个处理器内核,收集其在该时间窗内的工作时间所占的百分比作为处理器内核的负载值。4.根据权利要求1或2所述的方法,其特征在于,对所述最低值对应的处理器内核进行关闭操作的步骤,包括 将所述处理器内核的负载进行迀移; 判断迀移是否完成,若完成则对该处理器内核进行断电。5.—种使用权利要求1-4任一所述的方法的移动终端。6.一种多核处理器调控装置,其特征在于,包括: 负载值获取单元,用于获取当前工作的每个处理器内核的负载值; 极值获取单元,用于获取所述负载值的最高值和最低值; 关闭操作单元,用于判断所述最低值是否小于预设最低阈值,若是,则判断所述最低值与所述最高值之和是否小于预设最高阈值,若是则对所述最低值对应的处理器内核进行关闭操作。7.根据权利要求6所述的装置,其特征在于,还包括开启单元,用于判断所述最高值是否大于预设最高阈值,若是则判断所述最低值是否大于预设中间阈值,若是则至少开启一个未工作的处理器内核。8.根据权利要求6或7所述的装置,其特征在于,所述负载值获取单元包括: 时间窗设置子单兀,设置一个时间窗; 收集子单元,对于每个处理器内核,收集其在该时间窗内的工作时间所占的百分比作为处理器内核的负载值。9.根据权利要求6或7所述的装置,其特征在于,所述关闭操作单元包括: 迀移子单元,将所述处理器内核的负载进行迀移; 断电子单元,判断迀移是否完成,若完成则对该处理器内核进行断电。
【文档编号】G06F9/50GK105893141SQ201510957666
【公开日】2016年8月24日
【申请日】2015年12月17日
【发明人】谢国锋
【申请人】乐视致新电子科技(天津)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1