运算资源频率调整方法及系统的制作方法

文档序号:10569792阅读:252来源:国知局
运算资源频率调整方法及系统的制作方法
【专利摘要】本发明提供一种运算资源频率调整方法及系统。其中方法包括:当有线程需要迁移时,获取线程将要迁移出的源运算资源和线程将要迁移入的目标运算资源;计算线程在源运算资源的运算频率中所占的第一运算频率;获取第一运算频率,并根据第一运算频率调整目标运算资源的运算频率;将线程迁移至目标运算资源。由于其目标运算资源的运算频率是根据要迁移的线程在源运算资源的运算频率中所占的第一运算频率调整得到的,因此目标运算资源的运行频率能够很好的满足线程的频率需求,既不会出现效能溢出,造成不必要功耗浪费的现象,也不会出现效能不足,造成系统卡顿的现象。
【专利说明】
运算资源频率调整方法及系统
技术领域
[0001]本发明涉及计算机应用技术领域,特别是涉及一种运算资源频率调整方法及系统。
【背景技术】
[0002]在一些领域中,例如移动智能终端中,通常线程在从一个运算资源(源运算资源)迀移到另一个运算资源(目标运算资源)上时,如果目标运算资源的当前运算频率低于目标运算资源的运算频率,目标运算资源的运算频率会被调节为源运算资源的运算频率。上述的运算资源可以为CPU(Central Processing Unit,中央处理单元)、GPU(GraphicsProcessing Unit,图形处理单元)和VPU(Video Processing Unit,视频处理单元)。例如:如图1所示,运算资源O当前的运算频率为1.5GHz,运算资源3当前的运算频率为600MHz,当线程A从运算资源O迀移到运算资源3时,系统通常会根据运算资源O的运算频率直接将运算资源3的运算频率调整至1.5GHz。
[0003]本发明的发明人发现:将线程从源运算资源迀移到目标运算资源上时,将目标运算资源的运算频率调节为源运算资源的运算频率,不一定刚好满足目标运算资源上的所有线程的频率需求,调整后目标运算资源可能会出现运算频率过高,从而造成功耗较大、功耗浪费(效能溢出)的问题;也可能会出现目标运算资源的运算频率仍然不足,导致效能不足,即不能满足目标运算资源上所有的线程的效能需求,导致系统卡顿的问题。

【发明内容】

[0004]鉴于此,有必要针对前述的线程在运算资源之间迀移时易出现效能溢出或不足的问题,提供一种运算资源频率调整方法及系统,能够有效避免线程在运算资源之间迀移出现的效能溢出或不足的问题。
[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]第二调整单元,用于若所述目标运算资源上不存在所述已有线程正在被执行,则将所述目标运算资源的运算频率调整至所述第一运算频率。
[0031]在其中一个实施例中,还包括:
[0032]第二调整模块,用于根据所述第一运算频率调整所述源运算资源的运算频率。
[0033]在其中一个实施例中,所述第二调整模块包括:
[0034]第三调整单元,用于将所述源运算资源的运算频率的值调整为源运算资源的原运算频率与所述第一运算频率之差。
[0035]在其中一个实施例中,还包括:
[0036]判断模块,用于判断是否有至少两个运算资源处于开启状态,其中,至少两个所述运算资源中至少包括一个所述源运算资源和一个所述目标运算资源;若是,则进入所述获取模块,若否,则不迀移所述线程。
[0037]本发明的有益效果包括:
[0038]上述运算资源频率调整方法及系统,目标运算资源的运算频率是根据要迀移的线程在源运算资源的运算频率中所占的第一运算频率调整得到的,因此目标运算资源的运行频率能够很好的满足线程的频率需求,既不会出现效能溢出,造成不必要功耗的现象,也不会出现效能不足,造成系统卡顿的现象,这样既不影响使用者的使用体验,也不会有功耗上的浪费,提高了使用者的体验舒适度。
【附图说明】
[0039]图1为一个实施例中的传统运算资源频率调整状况的示意图;
[0040]图2为一个实施例中的运算资源频率调整状况的示意图;
[0041]图3为一个实施例中的运算资源频率调整方法的流程示意图;
[0042]图4为另一个实施例中的运算资源频率调整方法的流程示意图;
[0043]图5为又一个实施例中的运算资源频率调整方法的流程示意图;
[0044]图6为一个实施例中的运算资源频率调整系统的结构示意图。
【具体实施方式】
[0045]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明运算资源频率调整方法及系统进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0046]在一个实施例中,如图3所示,提供了一种运算资源频率调整方法,该方法包括以下步骤:
[0047]S100,当有线程需要迀移时,获取所述线程将要迀移出的源运算资源和线程将要迀移入的目标运算资源。
[0048]S200,计算所述线程在源运算资源的运算频率中所占的第一运算频率。
[0049]S300,获取所述第一运算频率,并根据所述第一运算频率调整所述目标运算资源的运算频率。
[0050]S400,将所述线程迀移至所述目标运算资源。
[0051 ]在一实施方式中,前述“根据所述第一运算频率调整目标运算资源的运算频率”指所述目标运算资源的调整后的运算频率为所述第一运算频率和所述目标运算资源的调整前的运算频率之和。
[0052]本实施例中,当有线程需要在运算资源之间迀移时,获取线程迀移的源运算资源和目标运算资源,源运算资源是指线程将要迀移出的运算资源,目标运算资源是指线程将要迀移入的运算资源,并获取线程在源运算资源的运算频率中所占的第一运算频率,根据第一运算频率动态调整目标运算资源的运算频率,最后将线程迀移到目标运算资源,以使目标运算资源的运算频率以最适合线程需求的运算频率运行,不仅不会出现效能溢出,功耗浪费的情况,还能将不必要功耗降至零,同时也不会出现由于效能不足而影响到系统散热、负载、运算资源等平衡的情况,提高使用者的体验舒适度。
[0053]在一实施方式中,运算资源包括CPU(Central Processing Unit,中央处理单元)、GPU(Graphics Processing Unit,图形处理单元)和VPU(Video Processing Unit,视频处理单元)。
[0054]需要说明的是,每个运算资源可以在多个运算频率下运行,在理想假设没有损耗的情况下,在高运算频率下运行的运算资源能提供更好的效能输出,但同时所需要的功耗也越大。线程是占用运算资源的基本单位,可以随时中断并随时再从中断点继续执行,也可以在运算资源间自由迀移,但同一时间只能在一个运算资源上执行。迀移是指线程从在一个运算资源执行改变为在另一个运算资源执行,迀移一般由调度器调度改变。
[0055]例如:图1中呈现了相同的四个运算资源,每个运算资源可以是开启或关闭的运行状态,其中运算资源O和3处于开启状态,运算资源I和2处于关闭状态,而线程可以在状态开启的运算资源O和3间迀移。当一个线程要迀移时,如线程A从运算资源O迀移到运算资源3时,虽然运算资源3当前的运算频率(效能)为600MHz,但该运算频率600MHz也只能满足线程D的需求。此时可以预见运算资源3是无法同时满足线程A和线程D的效能需求,因此,如果需要将线程A迀移到运算资源3,则需要调整运算资源3的运算频率。
[0056]现有的运算资源的频率调整技术直接将运算资源3的运算频率调整为运算资源O的运算频率,g卩1.5GHz,认为这样便能同时满足线程A和D的效能需求。但实际上由于不知道线程A、B、C分别占用运算资源O的1.5GHz的比例,所以运算资源3在频率调整后仍可能会出现效能不足或溢出。如:假设线程A占用的运算频率为800MHz时,将运算资源3的运算频率调整为1.5GHz,此时,运算资源3上的所有线程(即线程A和线程D)共需要1.4GHz的运算频率,此时,运算资源3多出了 10MHz效能资源没有被利用,造成了浪费。或者,若线程A占用的运算频率为IGHz,即使将运算资源3的运算频率调整为1.5GHz,也不能满足线程A和线程D的1.6GHz运算频率的需求,造成效能不足,从而产生系统卡顿的现象。
[0057]参见图2,在迀移线程A之前,先精确计算出运算资源上的每一个线程所需的运算频率,在由于散热、效能、耗电、负载平衡等原因需将线程A迀移至其他运算资源时,依据线程A本身所需的运算频率进行目标运算资源的运算频率调整。如:当要将线程A迀移至运算资源3时,计算线程A的运算频率需求为900MHz,计算运算资源3中已有线程D的运算频率需求为600MHz,为了让运算资源3可以同时满足线程A和线程的D的效能需求,将运算资源3的运算频率调高至1.5GHz,这样便能完美地避免能效的溢出和不足。同时将线程A从运算资源O迀出后,运算资源O的1.7GHz运算频率出现了900MHz效能溢出,所以将运算资源O的运算频率调整至800MHz,以此来避免运算资源O的能耗溢出。
[0058]在一个实施例中,参见图4,步骤S300包括:
[0059]S310,判断目标运算资源上是否存在已有线程正在被执行。
[0060]S320,若是,则获取目标运算资源中所述已有线程所占的第二运算频率,并将目标运算资源的运算频率的值调整为第一运算频率与第二运算频率之和。
[0061 ] S320,若否,则将所述目标运算资源的运算频率调整至所述第一运算频率
[0062]若线程将要迀移到的目标运算资源的上不存在已有线程正在被执行,则说明该目标运算资源刚从关闭状态中开启,此时目标运算资源的运行频率为0,若想要将线程迀移至目标运算资源时,需调整目标运算资源的运行频率满足线程的需求,最好是将目标运算资源的运算频率调整至第一运算频率,这样既不会有效能溢出,也不会有效能不足。
[0063]相似的,若线程将要迀移到的目标运算资源上存在已有线程正在被执行,则说明该目标运算资源的运算状态不是刚开启状态,此时若想要将线程迀移至目标运算资源时,需要调整目标运算资源的运行频率满足已有线程和该迀移线程的频率需求,最好是将目标运算资源的运算频率调整为第一运算频率与第二运算频率之和,这样便能完美地避免效能溢出或不足。。
[0064]在一个实施例中,参见图5,步骤S400之后,还包括:
[0065]S500,根据第一运算频率调整源运算资源的运算频率。
[0066]优选的,在一个实施例中,步骤S500包括:
[0067]S510,将源运算资源的运算频率的值调整为源运算资源的原运算频率与第一运算频率之差。
[0068]将线程迀移出源运算资源之后,由于源运算资源中满足迀移线程需求的运算频率空闲出来,这样造成了效能的溢出,根据第一运算频率按照一定的比例调整源运算资源,以降低源运算资源的效能溢出。优选的,将源运算资源的运算频率的值调整为源运算资源的原运算频率与第一运算频率之差,能够有效的避免源运算资源的效能溢出。
[0069]在一个实施例中,在步骤SlOO之前,还包括:
[0070]S010,判断是否有至少两个运算资源处于开启状态,其中,所述至少两个运算资源中至少包括一个源运算资源和一个目标运算资源;若是,则执行步骤SlOO;若否,则不执行线程迀移的步骤。
[0071]线程的迀移是指线程从一个状态为开启的运算资源上迀移到另一个状态为开启的运算资源上,即线程在状态开启的运算资源上迀移,若只有一个或没有运算资源的状态是开启的,则无法执行线程的迀移,因此也无需对运算资源的运算频率进行调整,简便了不必要的执行过程。
[0072]值得说明的是,若只有两个运算资源的状态为开启状态,则如果线程要执行迀移的步骤,则这两个运算资源中必定有一个为源运算资源,另一个为目标运算资源。若运算资源中有多个为开启状态(两个以上),这多个运算资源中也至少有一个为源运算资源,至少一个为目标运算资源。
[0073]本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
[0074]在一个实施例中,如图6所示,还提供了一种运算资源频率调整系统,该系统包括:获取模块100,用于当有线程需要迀移时,获取线程将要迀移出的源运算资源和所述线程将要迀移入的目标运算资源。计算模块200,用于计算所述线程在源运算资源的运算频率中所占的第一运算频率。第一调整模块300,用于获取第一运算频率,并根据第一运算频率调整目标运算资源的运算频率。迀移模块400,用于将线程迀移至目标运算资源。
[0075]本实施例中,目标运算资源的运算频率是根据要迀移的线程在源运算资源的运算频率中所占的第一运算频率调整得到的,因此目标运算资源的运行频率能够很好的满足线程的频率需求,既不会出现效能溢出,造成不必要功耗的现象,也不会出现效能不足,造成系统卡顿的现象。这样既不影响使用者的使用体验,也不会有功耗上的浪费,提高使用者的体验舒适度。
[0076]在一个实施例中,第一调整模块300包括:判断单元310,用于判断目标运算资源上是否存在已有线程正在被执行。第一调整单元320,用于若目标运算资源上存在已有线程正在被执行,则获取目标运算资源中所述已有线程所占的第二运算频率,并将所述目标运算资源的运算频率的值调整为所述第一运算频率与所述第二运算频率之和。第二调整单元330,用于若所述目标运算资源上不存在所述已有线程正在被执行,则将所述目标运算资源的运算频率调整至所述第一运算频率。
[0077]在一个实施例中,还包括:第二调整模块500,用于根据第一运算频率调整源运算资源的运算频率。
[0078]在一个实施例中,第二调整模块500包括第三调整单元510,用于将源运算资源的运算频率的值调整为源运算资源的原运算频率与所述第一运算频率之差。
[0079]在一个实施例中,还包括:判断模块010,用于判断是否有至少两个运算资源处于开启状态,其中,至少两个运算资源中至少包括一个源运算资源和一个目标运算资源;若是,则进入获取模块100,若否,则不迀移线程。
[0080]由于此系统解决问题的原理与前述一种运算资源频率调整方法相似,因此该系统的实施可以参见前述方法的实施,重复之处不再赘述。
[0081]以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0082]以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【主权项】
1.一种运算资源频率调整方法,其特征在于,所述方法包括: 当有线程需要迀移时,获取所述线程将要迀移出的源运算资源和所述线程将要迀移入的目标运算资源; 计算所述线程在所述源运算资源的运算频率中所占的第一运算频率; 获取所述第一运算频率,并根据所述第一运算频率调整所述目标运算资源的运算频率; 将所述线程迀移至所述目标运算资源。2.根据权利要求1所述的运算资源频率调整方法,其特征在于,所述获取所述第一运算频率,并根据所述第一运算频率调整所述目标运算资源的运算频率的步骤包括: 判断所述目标运算资源上是否存在已有线程正在被执行; 若是,则获取所述目标运算资源中所述已有线程所占的第二运算频率,并将所述目标运算资源的运算频率的值调整为所述第一运算频率与所述第二运算频率之和; 若否,则将所述目标运算资源的运算频率调整至所述第一运算频率。3.根据权利要求1或2所述的运算资源频率调整方法,其特征在于,在所述将所述线程迀移至所述目标运算资源的步骤之后,还包括; 根据所述第一运算频率调整所述源运算资源的运算频率。4.根据权利要求3所述的运算资源频率调整方法,其特征在于,所述根据所述第一运算频率调整所述源运算资源的运算频率的步骤包括: 将所述源运算资源的运算频率的值调整为源运算资源的原运算频率与所述第一运算频率之差。5.根据权利要求1所述的运算资源频率调整方法,其特征在于,在所述当有线程需要迀移时,获取所述线程将要迀移出的源运算资源和所述线程将要迀移入的目标运算资源的步骤之前,还包括: 判断是否有至少两个运算资源处于开启状态,其中,至少两个所述运算资源中至少包括一个所述源运算资源和一个所述目标运算资源; 若是,则执行所述有线程需要迀移时,获取所述线程将要迀移出的源运算资源和所述线程将要迀移入的目标运算资源的步骤; 若否,则不执行所述线程迀移的步骤。6.一种运算资源频率调整系统,其特征在于,所述系统包括: 获取模块,用于当有线程需要迀移时,获取所述线程将要迀移出的源运算资源和所述线程将要迀移入的目标运算资源; 计算模块,用于计算所述线程在所述源运算资源的运算频率中所占的第一运算频率;第一调整模块,用于获取所述第一运算频率,并根据所述第一运算频率调整所述目标运算资源的运算频率; 迀移模块,用于将所述线程迀移至所述目标运算资源。7.根据权利要求6所述的运算资源频率调整系统,其特征在于,所述第一调整模块包括: 判断单元,用于判断所述目标运算资源上是否存在已有线程正在被执行; 第一调整单元,用于若所述目标运算资源上存在所述已有线程正在被执行,则获取所述目标运算资源中所述已有线程所占的第二运算频率,并将所述目标运算资源的运算频率的值调整为所述第一运算频率与所述第二运算频率之和; 第二调整单元,用于若所述目标运算资源上不存在所述已有线程正在被执行,则将所述目标运算资源的运算频率调整至所述第一运算频率。8.根据权利要求6或7所述的运算资源频率调整系统,其特征在于,还包括: 第二调整模块,用于根据所述第一运算频率调整所述源运算资源的运算频率。9.根据权利要求8所述的运算资源频率调整系统,其特征在于,所述第二调整模块包括: 第三调整单元,用于将所述源运算资源的运算频率的值调整为源运算资源的原运算频率与所述第一运算频率之差。10.根据权利要求6所述的运算资源频率调整系统,其特征在于,还包括: 判断模块,用于判断是否有至少两个运算资源处于开启状态,其中,至少两个所述运算资源中至少包括一个所述源运算资源和一个所述目标运算资源;若是,则进入所述获取模块,若否,则不迀移所述线程。
【文档编号】G06F9/50GK105930218SQ201610242207
【公开日】2016年9月7日
【申请日】2016年4月18日
【发明人】陈奂彣, 张文彦
【申请人】深圳市万普拉斯科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1