CN103870322B - 控制任务转移的方法、非暂时性计算机可读介质、异构多核系统 - Google Patents

控制任务转移的方法、非暂时性计算机可读介质、异构多核系统 Download PDF

Info

Publication number
CN103870322B
CN103870322B CN201310259498.9A CN201310259498A CN103870322B CN 103870322 B CN103870322 B CN 103870322B CN 201310259498 A CN201310259498 A CN 201310259498A CN 103870322 B CN103870322 B CN 103870322B
Authority
CN
China
Prior art keywords
task
cluster
core
threshold value
transfer
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.)
Expired - Fee Related
Application number
CN201310259498.9A
Other languages
English (en)
Other versions
CN103870322A (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.)
MediaTek Inc
Original Assignee
MediaTek Inc
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
Priority claimed from US13/850,281 external-priority patent/US20140173623A1/en
Application filed by MediaTek Inc filed Critical MediaTek Inc
Publication of CN103870322A publication Critical patent/CN103870322A/zh
Application granted granted Critical
Publication of CN103870322B publication Critical patent/CN103870322B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Power Sources (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明公开一种控制任务转移的方法、非暂时性计算机可读介质以及异构多核系统。所述任务为至少具有第一集群和第二集群的异构多核系统中的任务,所述控制任务转移的方法包括:动态地调整转移阈值;比较在所述第一集群中的一个核上运行的所述任务的负载与所述转移阈值,并相应地产生比较结果;以及至少根据所述比较结果,选择性地控制将所述任务转移至所述第二集群,其中所述第一集群中的每个核都具有第一处理器结构,以及所述第二集群中的每个核都具有第二处理器结构,所述第一处理器结构不同于所述第二处理器结构。本发明所公开的控制任务转移的方法能够大大提高系统性能。

Description

控制任务转移的方法、非暂时性计算机可读介质、异构多核 系统
技术领域
本发明有关于一种任务转移控制方案,特别是有关于一种控制任务转移的方法、非暂时性计算机可读介质以及异构多核系统。
背景技术
由于半导体工艺的发展,当今多核系统(multi-core system)变得越来越流行。因此,多核系统的操作系统(operating system,OS)经常需要决定是否需要将在当前核(current core)运行的任务转移到另一个不同的核,以保持良好的负载均衡和/或高的系统资源利用率。对于异构多核系统(heterogeneous multi-core system),它具有多个不同的核。例如,异构多核系统包括至少一第一核和至少一第二核,其中,每个第一核具有第一处理器结构,以及每个第二核具有第二处理器结构,其中第二处理器结构不同于第一处理器结构。因此,如果在第一核和第二核运行相同的任务,则第一核执行的指令与第二核执行的指令是不同的。
通常情况下,由于异构多核系统中的第一核和第二核具有不同的处理器结构,因此第一核和第二核具有不同的计算能力(computing power)。例如,第一核是性能导向(performance oriented)的处理核,而第二核是省电导向(power-saving oriented)的处理核。因此,第一核的计算能力(power/capability)大于第二核的计算能力。当具有较重负载(load)及高优先级的任务被分派给具有低计算能力的第二核来执行时,这将导致系统性能较差。相反地,当具有较轻负载或低优先级的任务被分派给具有高计算能力的第一核来执行时,这将导致效率不佳。此外,为了达到更好的系统性能,应该保持异构多核系统中的多个核都在处理任务,然而,这将导致较高的功率消耗。相反地,为了达到更好的省电性能,应使用异构多核系统中较少的核来处理任务,然而,这将导致系统性能较差。
因此,有必要寻求一种新的任务转移(task migration)控制机制,其能够适当地将任务分派至异构多核系统中不同的核。
发明内容
有鉴于此,本发明提供一种控制任务转移的方法、非暂时性计算机可读介质以及异构多核系统。
依据本发明一实施方式,提供一种控制任务转移的方法,所述任务为至少具有第一集群和第二集群的异构多核系统中的任务,所述方法包括:动态地调整转移阈值;比较在所述第一集群中的一个核上运行的所述任务的负载与所述转移阈值,并相应地产生比较结果;以及至少根据所述比较结果,选择性地控制将所述任务转移至所述第二集群,其中所述第一集群中的每个核都具有第一处理器结构,以及所述第二集群中的每个核都具有第二处理器结构,所述第一处理器结构不同于所述第二处理器结构。
依据本发明另一实施方式,提供一种控制任务转移的方法,所述任务为至少具有第一集群和第二集群的异构多核系统中的任务,所述方法包括:估计所述第二集群的当前可用容量;以及至少根据估计的所述当前可用容量,选择性地控制将在所述第一集群中的一个核上运行的所述任务转移至所述第二集群,其中所述第一集群中的每个核都具有第一处理器结构,以及所述第二集群中的每个核都具有第二处理器结构,所述第一处理器结构不同于所述第二处理器结构。
依据本发明一实施方式,提供一种非暂时性计算机可读介质,用于存储程序代码,其特征在于,所述程序代码被至少具有第一集群和第二集群的异构多核系统执行,所述程序代码被运行以执行任务转移控制方法,所述任务转移控制方法包括:动态地调整转移阈值;以及比较在所述第一集群中的一个核上运行的任务的负载与所述转移阈值,并相应地产生比较结果;以及至少根据所述比较结果,选择性地控制将所述任务转移至所述第二集群,其中所述第一集群中的每个核都具有第一处理器结构,以及所述第二集群中的每个核都具有第二处理器结构,所述第一处理器结构不同于所述第二处理器结构。
依据本发明另一实施方式,提供一种非暂时性计算机可读介质,用于存储程序代码,其特征在于,所述程序代码被至少具有第一集群和第二集群的异构多核系统执行,所述程序代码被运行以执行任务转移控制方法,所述任务转移控制方法包括:估计所述第二集群的当前可用容量;以及至少根据估计的所述当前可用容量,选择性地控制在所述第一集群中的一个核上运行的所述任务转移至所述第二集群,其中所述第一集群中的每个核都具有第一处理器结构,以及所述第二集群中的每个核都具有第二处理器结构,所述第一处理器结构不同于所述第二处理器结构。
依据本发明一实施方式,提供一种异构多核系统,包括:至少第一集群和第二集群、阈值调整单元以及转移控制单元。阈值调整单元用于动态地调整转移阈值。转移控制单元,用于比较在所述第一集群中的一个核上运行的任务的负载与所述转移阈值,并相应地产生比较结果;以及至少根据所述比较结果,选择性地控制将所述任务转移至所述第二集群,其中所述第一集群中的每个核都具有第一处理器结构,以及所述第二集群中的每个核都具有第二处理器结构,所述第一处理器结构不同于所述第二处理器结构。
依据本发明另一实施方式,提供一种异构多核系统,包括:至少第一集群和第二集群、以及转移控制单元。转移控制单元用于估计所述第二集群的当前可用容量;以及至少根据估计的所述当前可用容量,选择性地控制将在所述第一集群中的一个核上运行的所述任务转移至所述第二集群,其中所述第一集群中的每个核都具有第一处理器结构,以及所述第二集群中的每个核都具有第二处理器结构,所述第一处理器结构不同于所述第二处理器结构。
本发明所提供的控制任务转移的方法、非暂时性计算机可读介质以及异构多核系统,能够大大地提高系统性能。
对于已经阅读后续由各附图及内容所显示的较佳实施方式的本领域的技术人员来说,本发明的各目的是明显的。
附图说明
图1为根据本发明一实施例的异构多核系统的示意图。
图2为根据本发明一实施例的图1所示的转移控制单元执行任务转移控制的示意图。
图3为根据本发明一实施例的应用于一个任务的任务转移控制的示意图。
图4为根据本发明一实施例的调整第二转移阈值而导致的任务转移的示意图。
图5为根据本发明一实施例的调整第一转移阈值而导致的任务转移的示意图。
图6为根据本发明一实施例的中央处理器(central processing unit,CPU)容量检查机制(capacity check mechanism)的示意图。
图7为根据本发明一实施例的转移稳定机制的示意图。
图8为根据本发明一实施例的总的(overall)任务转移控制的流程图。
具体实施方式
在权利要求书及说明书中使用了某些词汇来指称特定的组件。所属领域中的技术人员应可理解,硬件制造商可能会用不同的名词来称呼同样的组件。本权利要求书及说明书并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。在权利要求书及说明书中所提及的「包括」为开放式的用语,故应解释成「包括但不限定于」。另外,「耦接」一词在此包括任何直接及间接的电气连接手段。因此,若文中描述第一装置耦接于第二装置,则代表所述第一装置可直接电连接于所述第二装置,或通过其他装置或连接手段间接地电连接至所述第二装置。
图1为根据本发明一实施例的异构多核系统的示意图。异构多核系统10可实施于便携式设备(例如移动电话)中,但这仅是做说明用,并非用于限制本发明。也就是说,采用本发明所提出的任务转移控制方法的任何电子设备均落入本发明的范围内。在本实施例中,异构多核系统10包括任务转移控制模块100以及多个集群(cluster),其中多个集群包括第一集群112和第二集群114。任务转移控制模块100耦接于第一集群112和第二集群114,并用于执行所述任务转移控制方法,所述任务转移控制方法用于控制任务在第一集群112和第二集群114之间的转移。举例来说,任务转移控制模块100可以是在包含有不同集群的异构多核系统10中执行的软件模块。如图1所示,异构多核系统10包括计算机可读媒介(computer readable medium)12,例如存储装置。计算机可读媒介12存储程序代码(PROG)14。当程序代码14被异构多核系统10执行时,任务转移控制模块100被使能以执行上述任务转移控制方法,详述如下。
关于第一集群112和第二集群114,每个集群包括一组中央处理器核心(CPUcores)。也就是说,第一集群112可包括一个或多个第一核113,每个第一核113都具有相同的第一处理器结构;以及第二集群114可包括一个或多个第二核115,每个第二核115都具有相同的第二处理器结构,其中第二处理器结构不同于第一处理器结构。为了清楚简要起见,图1中仅绘示了一个第一核113和一个第二核115。值得注意的是,第一集群112中的核的数量与第二集群114中的核的数量可以相同,也可以不相同。
任务转移控制模块100可以是调度器(scheduler)的一部分,用于使能软件栈(software stack)中的任务,所述任务被分布在集群112和集群114的中央处理器核心中。因此,至少一第一核113和至少一第二核115可被允许同时操作。在一种较为极端的情况下,所有的中央处理器核心都可以同时操作,从而达到最佳的系统性能。此外,借助本发明提出的至少基于动态转移阈值(migration threshold)的任务转移控制方法,任务可以从一个集群的核转移到不同集群的另一个核。本发明提出的由任务转移控制模块100执行的任务转移控制方法的功能和操作将详述如下。
如图1所示,任务转移控制模块100包括阈值调整单元102和转移控制单元104。阈值调整单元102用于动态地调整第一转移阈值(例如,上限阈值(up threshold))TH_H以及第二转移阈值(例如,下限阈值(down threshold))TH_L。第一转移阈值TH_H和第二转移阈值TH_L作为转移控制单元104的参数。在异构多核系统10上执行的应用程序(例如,游戏应用程序、网页浏览应用程序、或电话应用程序)可包括多个任务。因此,转移控制单元104根据上述动态阈值(例如,TH_H和TH_L)和每个任务的任务负载(task load),来控制任务在第一集群112和第二集群114之间转移。值得注意的是,本发明中的任务负载与任务最近需要的CPU时间相关。因此,任务负载是一个动态的值,其取决于CPU核上运行的任务的瞬时执行状态(instant execution status)。
请参照图2,图2为根据本发明一实施例的图1所示的转移控制单元104执行任务转移控制的示意图。任务转移具有滞后性(hysteresis characteristic)。假设具有低优先级的任务最初被分派至第二集群114中的第二核115。当在第二核115上运行的任务的任务负载没有上升到第一转移阈值TH_H的瞬时值(instant value)时,第二核115将保持继续处理该任务,其中第一转移阈值TH_H是动态调整的。然而,当决定在第二核115上运行的任务的任务负载上升到第一转移阈值TH_H的瞬时值时,转移控制单元104会将任务从第二核115转移至第一集群112。简单来说,在开始时或任务从第一核113转移至第二核115之后,任务是在第二核115上运行的情况下,任务不会从一个集群(特别是,第二集群114中的第二核115)转移到另一个集群(特别是,第一集群112中的第一核113),除非其任务负载达到第一转移阈值TH_H的瞬时值。
类似地,假设任务最初被分派至第一集群112中的第一核113。当在第一核113上运行的任务的任务负载没有下降到第二转移阈值TH_L的瞬时值时,第一核113将保持继续处理该任务,其中第二转移阈值TH_L是动态调整的。然而,当决定在第一核113上运行的任务的任务负载下降到第二转移阈值TH_L的瞬时值时,转移控制单元104会将任务从第一核113转移至第二集群114。简单来说,在开始时或任务从第二核115转移至第一核113之后,任务是在第一核113上运行的情况下,任务不会从一个集群(特别是,第一集群112中的第一核113)转移到另一个集群(特别是,第二集群114中的第二核115),除非其任务负载达到第二转移阈值TH_L的瞬时值。
本发明提出了一种基于动态阈值的任务转移控制,从而允许应用程序的任务在不同的集群(即,异构核组)之间以更灵活的方式转移。为了更好地理解本发明的技术特征,基于动态阈值的任务转移控制和基于固定阈值(fixed threshold)的任务转移控制之间的比较,详述如下。
请参照图3,图3为根据本发明一实施例的应用于一个任务的任务转移控制的示意图。在第一种情况下,第一转移阈值TH_H固定为TH_H1,并且任务目前在第二核115上运行,则在T0到T5的时间段中,任务不会转移至第一核113来执行。在第二种情况下,第二转移阈值TH_L是固定为TH_L1,并且任务目前在第一核113上运行,则在T0到T5的时间段中,任务不会转移至第二核115来执行。因此,采用固定阈值可能会使任务始终在一个核/集群上运行,而无论实际的系统资源利用率(即当前的系统状态(system situation))如何。在最坏的情况下,所有的任务都是在一个集群上运行,而没有任务在其他集群上运行。系统性能将大大降低。为了避免这种情况,本发明的转移控制单元104配置为使用动态阈值以代替固定阈值。如图3所示,阈值调整单元102可在T3时刻将第一转移阈值TH_H从TH_H1降低至TH_H2(其中,TH_H2<TH_H1)。因此,在第三种情况下,第一转移阈值TH_H是动态调整的,并且任务目前在第二核115/第二集群114上运行,则在T4时刻,任务将会转移至第一核113/第一集群112。此外,如图3所示,阈值调整单元102可在T1时刻将第二转移阈值TH_L从TH_L1上升至TH_L2(其中,TH_L2>TH_L1)。因此,在第四种情况下,第二转移阈值TH_L是动态调整的,并且任务目前在第一核113/第一集群112上运行,则在T2时刻,任务将会转移至第二核115/第二集群114。在上述任务转移控制机制的帮助下,异构多核系统10(例如,异构多核嵌入式系统(system on chip,SoC))的系统性能可以大大地提高。
图4为根据本发明一实施例的调整第二转移阈值TH_L而导致的任务转移的示意图。如果有多个任务在第一集群112的第一核113上争夺资源,提高第二转移阈值TH_L,则能够允许将在第一集群112的第一核113上运行的一个或多个任务转移至第二集群114的第二核115。如图4所示,当第二转移阈值(即,下限阈值)TH_L的瞬时值等于256时,任务负载为900的第一任务、任务负载为700的第二任务、以及任务负载为300的第三任务在第一核113上运行,而没有任务在第二核115上运行。然而,当第二转移阈值(即,下限阈值)TH_L的瞬时值上升至350时,第三任务会转移至第二核115,因为第三任务的任务负载(300)低于第二转移阈值TH_L(350)。
图5为根据本发明一实施例的调整第一转移阈值TH_H而导致的任务转移的示意图。如果第一核113未被充分利用(即,第一核113的负载不重),降低第一转移阈值TH_H,则能够允许将在第二集群114的第二核115上运行的一个或多个任务转移至第一集群112的第一核113。如图5所示,当第一转移阈值(即,上限阈值)TH_H的瞬时值等于512时,任务负载为200的第一任务、任务负载为300的第二任务、以及任务负载为400的第三任务在第二核115上运行,而没有任务在第一核113上运行。然而,当第一转移阈值(即,上限阈值)TH_H的瞬时值下降至380时,第三任务会转移至第一核113,因为第三任务的任务负载(400)高于第一转移阈值TH_H(380)。
如上所述,阈值调整单元102用于动态地调整转移阈值。在一个设计范例中,阈值调整单元102可参考异构多核系统10的系统状态来设置上述第一转移阈值TH_H和第二转移阈值TH_L。例如,系统状态可包括与性能相关的因数(performance-related factor),例如,每个核/集群的CPU利用率(例如,每个核/集群的CPU负载和/或CPU特性/比率)、每个核/集群的预测CPU利用率(例如,每个核/集群的预测CPU负载和/或预测CPU特性/比率)、每个核/集群的任务数量(例如,每个核/集群正在处理的任务的数量和/或每个核/集群的待处理任务的数量)、和/或核/集群之间的负载差别。由于第一集群112中的第一核113和第二集群114中的第二核114具有不同的硬件设计,并且使用不同的指令,因此,第一集群112在执行某些任务类型时会有更高的效率,以及第二集群114在执行另一些任务类型时会有更高的效率。因此,第一集群112和第二集群114的CPU特性/比率可以用来作为CPU利用率的衡量指标。值得注意的是,在第一集群112和第二集群114被设计/制作后,CPU特性/比率是一个已知的参数。此外,当一个集群包括一个以上的核时,分派到一个集群中的任务可适当地分配给多个核以达到负载均衡。因此,与性能相关的因数中,基于核的值(例如,每个核的CPU利用率)以及基于集群的值(例如,每个集群的CPU利用率)中的一个或两个,可用于计算动态转移阈值。
阈值调整单元102可检查上述与性能相关的因数中的一个或多个,以动态设置第一转移阈值TH_H和第二转移阈值TH_L。如此一来,本发明所提出的任务转移控制方法能够使异构多核系统10具有优化的系统性能。
在另一个设计范例中,异构多核系统10的系统状态可包括与功率相关的因数(power-related factor),例如,每个核/集群的功率预算(power budget)、每个核/集群的功率消耗(power consumption)、以及每个核/集群的功率约束(power constraint)(例如,热约束)。类似地,当一个集群包括一个以上的核时,分派到一个集群中的任务可适当地分配给多个核以达到负载均衡。因此,与功率相关的因数中,基于核的值(例如,每个核的功率预算)和基于集群的值(例如,每个集群的功率预算)中的一个或两个,都可用于计算动态转移阈值。值得注意的是,阈值调整单元102可检查上述与功率相关的因数中的一个或多个,以动态设置第一转移阈值TH_H和第二转移阈值TH_L。如此一来,本发明所提出的任务转移控制方法能够使异构多核系统10具有优化的省电性能。
在又一个设计范例中,阈值调整单元102可以同时检查上述与功率相关的因数中的至少一个以及上述与性能相关的因数中的至少一个,以动态设置第一转移阈值TH_H和第二转移阈值TH_L。如此一来,本发明所提出的任务转移控制方法能够使异构多核系统10同时具有任务处理和省电的均衡性能。
此外,转移控制单元104还可以根据任务的任务优先级来决定是否需要转移任务。换句话说,分配给每个任务的任务优先级是影响转移判断的一个因数。举例来说,当决定在第一核113上运行的任务的任务负载降低到动态调整的第二转移阈值TH_L的瞬时值、以及任务优先级允许将任务从第一集群112转移至第二集群114时,转移控制单元104就会决定将任务转移到第二集群114来执行。类似地,当决定在第二核115上运行的任务的任务负载上升至动态调整的第一转移阈值TH_H的瞬时值、以及任务优先级允许将任务从第二集群114转移至第一集群112时,转移控制单元104就会决定将任务转移到第一集群112来执行。具体而言,在一个设计范例中,具有低优先级的任务必须转移到低功率的集群(即,第二集群114),尽管其任务负载不低于第二转移阈值TH_L的瞬时值。
简而言之,影响转移阈值设定的因数可至少包括系统状态(例如,与性能相关的因数和/或与功率相关的因数),影响转移判断的因数可至少包括任务优先级。
在上述实施例中,阈值调整单元102动态地调整上限阈值(即,第一转移阈值TH_H)和下限阈值(即,第二转移阈值TH_L)。在一个替代设计中,阈值调整单元102可被设置为参考系统状态以动态调整上限阈值和下限阈值中的一个,而不改变(即,固定)上限阈值与下限阈值中的另一个。这也落入本发明的范围中。
除了由阈值调整单元102提供动态阈值之外,转移控制单元104还可以采用其它的机制来进一步提高整体的任务转移性能。图6为根据本发明一实施例的CPU容量检查机制的示意图。基本上,每个核都有容量的限制。例如,第一核113有容量限制C1,第二核115有容量限制C2。由于第一核113的计算能力高于第二核115的计算能力,那么容量限制C1会高于容量限制C2。具体而言,当一个核是满载(fully loaded)或具有额定最大功率消耗(ratedmaximum power consumption)时,即达到了该核的容量限制。在不考虑每个核的当前可用CPU容量的情况下,任务可被转移至一个几乎满载的核。结果是,更多的任务会竞争该核的有限的资源,在该核上运行的所有任务的性能就会受到影响。请参照图6所示的实施例,在第一核113上运行的第二任务的任务负载为1000,在第二核115上运行的第一任务的任务负载为800。当启用CPU容量检查机制时,在任务实际转移至候选集群(candidate cluster)之前,转移控制单元104会检查该候选集群中的每个核的当前负载状况(current loadstatus)或功率消耗,以估计该候选集群的当前可用容量。举例来说,第一集群112具有一个第一核113,并且第一核113的容量限制C1为1200,由于第一集群112当前的可用容量CA仅为200,转移控制单元104会发现第一集群112的当前可用容量不足以接受任务负载为800的第一任务。因此,转移控制单元104会阻止将第一任务转移至第一核113/第一集群112。换句话说,为了减少将任务转移至错误集群的几率,在将任何任务从一个集群转移至另一个集群之前,转移控制单元104可检查CPU的可用容量,以获得集群的可用容量。
上述CPU容量检查和动态阈值计算很大程度上依赖于任务负载的准确性(preciseness)。当任务刚刚转移到选定集群中的一个新核时,转移的任务还未被新核执行。因此,新核的任务负载可能是不正确的。然而,在此时,新核可能有非零的负载。如果在转移的任务在新核上实际运行之前,转移的任务的任务负载就已经被考虑到了,由于转移的任务尚未稳定,任务转移控制可能会有错误的CPU/集群容量检查结果和动态阈值计算结果。因此,为了提高估计任务负载的准确性,在新核上运行的转移的任务的任务负载的历史贡献也应该要考虑。因此,转移的任务在新核上运行一个时间段之后,再计算新核的任务负载,并将此任务负载用于转移控制单元104和阈值调整单元102。如图7所示,为了提高估计任务负载的准确性,本发明一实施例包括转移稳定机制。在T0时刻,第一任务是在第二集群114的第二核115上执行,第三任务是在第一集群112的第一核113上执行。在T1时刻,第二任务转移至第二集群114的第二核115来执行。在T1时刻完成任务转移后,转移控制单元104在时间段P中停止进一步的任务转移,因为转移的第二任务在新的CPU核(即,第二核115)上要运行一个时间段P后,才重新计算第二核115的负载。也就是说,转移控制单元104增加下一个向上/向下的转移延迟,以等待最新转移的任务(即,第二任务)在新的CPU核上达到稳定状态,因此,可以在延迟过期前防止任何任务转移。从图7中可以看出,在时间段P中的每一个时间点(例如,T2),第一核113和第二核115之间的任何任务转移都是不被允许的。当从第二任务转移至第二核115开始的时间段P过去后,在T3刻不再阻止第一核113和第二核115之间的任务转移。在本实施例中,在T3时刻,转移控制单元104控制第二任务进一步转移至第一集群112的第一核113。
图8为根据本发明一实施例的总的任务转移控制的流程图。在本实施例中,在检查转移延迟是否结束(即转移稳定机制)(步骤802)后,检查CPU的当前可用容量/集群的当前可用容量(即CPU容量检查)(步骤804);在CPU容量检查(步骤804)完成后,检查动态转移阈值(即动态转移阈值计算)(步骤806)。值得注意的是,图8所示的转移稳定机制、CPU容量检查以及动态转移阈值计算的执行顺序,仅作为说明用,并非用于限制本发明。在实践中,转移稳定机制、CPU容量检查以及动态转移阈值计算的执行顺序可以根据实际设计需求进行调整。
此外,使用上述所有的机制,包括转移稳定机制、CPU容量检查以及动态转移阈值计算,以控制任务转移,仅仅是本发明的一个可行的实施例。使用转移稳定机制、CPU容量检查以及动态转移阈值计算中至少一个的任何任务转移控制设计均落入本发明的范围。
以上所述仅为本发明的较佳实施方式,凡依本发明权利要求所做的均等变化和修饰,均应属本发明的涵盖范围。

Claims (11)

1.一种控制任务转移的方法,所述任务为至少具有第一集群和第二集群的异构多核系统中的任务,其特征在于,所述控制任务转移的方法包括:
当多个任务在所述第一集群中运行时,动态地调整第一转移阈值;
比较在所述第一集群中的一个核上运行的所述任务的负载与所述第一转移阈值,并相应地产生比较结果;
至少根据所述比较结果,选择性地控制所述任务转移至所述第二集群,其中所述第一集群中的每个核都具有第一处理器结构,以及所述第二集群中的每个核都具有第二处理器结构,所述第一处理器结构不同于所述第二处理器结构;以及
在所述任务转移至所述第二集群后,动态地调整第二转移阈值,所述第二转移阈值不同于第一所述转移阈值;比较在所述第二集群中的一个核上运行的所述任务的负载与所述第二转移阈值,并相应地产生第二比较结果;至少根据所述比较结果选择性地控制所述任务转移至所述第一集群。
2.如权利要求1所述的控制任务转移的方法,其特征在于,所述动态地调整转移阈值的步骤包括:
根据所述异构多核系统的系统状态动态地调整所述第一转移阈值。
3.如权利要求2所述的控制任务转移的方法,其特征在于,所述系统状态包括至少一个与性能相关的因数。
4.如权利要求3所述的控制任务转移的方法,其特征在于,所述至少一个与性能相关的因数包括:每个所述核/集群的CPU利用率、每个所述核/集群的预测CPU利用率、每个所述核/集群的任务数量、以及所述核/集群之间的负载差别中的至少一个。
5.如权利要求2所述的控制任务转移的方法,其特征在于,所述系统状态包括至少一个与功率相关的因数。
6.如权利要求5所述的控制任务转移的方法,其特征在于,所述至少一个与功率相关的因数包括:每个所述核/集群的功率预算、每个所述核/集群的功率消耗、以及每个所述核/集群的功率约束中的至少一个。
7.如权利要求1所述的控制任务转移的方法,其特征在于,所述选择性地控制所述任务转移至所述第二集群的步骤包括:
参考所述比较结果以及所述任务的任务优先级设定,选择性地控制所述任务转移至所述第二集群。
8.如权利要求1所述的控制任务转移的方法,其特征在于,进一步包括:
估计所述第二集群的当前可用容量;
其中所述选择性地控制所述任务转移至所述第二集群的步骤包括:
参考所述比较结果以及估计的所述第二集群的所述当前可用容量,选择性地控制将所述任务转移至所述第二集群。
9.如权利要求8所述的控制任务转移的方法,其特征在于,当估计的所述第二集群的所述当前可用容量不足以用于所述任务,阻止所述任务转移至所述第二集群。
10.如权利要求1所述的控制任务转移的方法,其特征在于,进一步包括:
控制所述任务转移至所述第一集群;以及
从所述任务转移至所述第一集群开始,在预定的时间段内停止所述异构多核系统内的任务转移。
11.一种异构多核系统,其特征在于,包括:
至少第一集群和第二集群;
阈值调整单元,用于动态地调整第一转移阈值和第二转移阈值,所述第二转移阈值不同于第一所述转移阈值;以及
转移控制单元,用于比较在所述第一集群中的一个核上运行的任务的负载与所述第一转移阈值,并相应地产生比较结果;以及至少根据所述比较结果,选择性地控制所述任务转移至所述第二集群,其中所述第一集群中的每个核都具有第一处理器结构,以及所述第二集群中的每个核都具有第二处理器结构,所述第一处理器结构不同于所述第二处理器结构;以及在所述任务转移至所述第二集群后,比较在所述第二集群中的一个核上运行的所述任务的负载与所述第二转移阈值,并相应地产生第二比较结果;至少根据所述比较结果选择性地控制所述任务转移至所述第一集群。
CN201310259498.9A 2012-12-17 2013-06-26 控制任务转移的方法、非暂时性计算机可读介质、异构多核系统 Expired - Fee Related CN103870322B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201261737834P 2012-12-17 2012-12-17
US61/737,834 2012-12-17
US13/850,281 US20140173623A1 (en) 2012-12-17 2013-03-25 Method for controlling task migration of task in heterogeneous multi-core system based on dynamic migration threshold and related computer readable medium
US13/850,281 2013-03-25

Publications (2)

Publication Number Publication Date
CN103870322A CN103870322A (zh) 2014-06-18
CN103870322B true CN103870322B (zh) 2017-06-30

Family

ID=50908889

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310259498.9A Expired - Fee Related CN103870322B (zh) 2012-12-17 2013-06-26 控制任务转移的方法、非暂时性计算机可读介质、异构多核系统

Country Status (1)

Country Link
CN (1) CN103870322B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104156271B (zh) * 2014-08-01 2017-12-08 浪潮(北京)电子信息产业有限公司 一种协同计算集群负载均衡的方法及系统
CN105045670A (zh) * 2015-09-01 2015-11-11 浪潮(北京)电子信息产业有限公司 中央处理器和图形处理器负载均衡的方法和系统
CN107621973B (zh) * 2016-07-13 2021-10-26 阿里巴巴集团控股有限公司 一种跨集群的任务调度方法及装置
WO2018018427A1 (zh) * 2016-07-26 2018-02-01 张升泽 基于多内核芯片的多任务调度方法及系统
WO2018018426A1 (zh) * 2016-07-26 2018-02-01 张升泽 负载在多核芯片之间的分配方法及系统
TWI693548B (zh) * 2016-12-07 2020-05-11 聯發科技股份有限公司 動態調整多核心處理器的任務負載配置的裝置以及方法
CN109086128B (zh) * 2018-08-28 2021-06-18 迈普通信技术股份有限公司 任务调度方法及装置
CN111400045B (zh) * 2020-03-16 2023-09-05 杭州海康威视系统技术有限公司 一种负载均衡方法及装置
CN114546631A (zh) * 2020-11-24 2022-05-27 北京灵汐科技有限公司 任务调度方法、控制方法、核心、电子设备、可读介质
CN113391902B (zh) * 2021-06-22 2023-03-31 未鲲(上海)科技服务有限公司 一种任务调度方法及设备、存储介质
CN116048740A (zh) * 2021-10-28 2023-05-02 北京灵汐科技有限公司 基于众核系统的任务调度方法、系统、电子设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101057217A (zh) * 2004-11-13 2007-10-17 摩托罗拉公司 高效多处理器系统及其方法
CN101105711A (zh) * 2006-07-13 2008-01-16 国际商业机器公司 用于在主处理器与副处理器间分配处理功能的系统和方法
CN101741912A (zh) * 2009-12-30 2010-06-16 中兴通讯股份有限公司 一种处理计算任务的方法、网络设备及分布式网络系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101057217A (zh) * 2004-11-13 2007-10-17 摩托罗拉公司 高效多处理器系统及其方法
CN101105711A (zh) * 2006-07-13 2008-01-16 国际商业机器公司 用于在主处理器与副处理器间分配处理功能的系统和方法
CN101741912A (zh) * 2009-12-30 2010-06-16 中兴通讯股份有限公司 一种处理计算任务的方法、网络设备及分布式网络系统

Also Published As

Publication number Publication date
CN103870322A (zh) 2014-06-18

Similar Documents

Publication Publication Date Title
CN103870322B (zh) 控制任务转移的方法、非暂时性计算机可读介质、异构多核系统
CN105830035B (zh) 多核动态工作负荷管理
US20140173623A1 (en) Method for controlling task migration of task in heterogeneous multi-core system based on dynamic migration threshold and related computer readable medium
CN107534189B (zh) 具有多个电池的设备中的电池管理
CN105528330B (zh) 负载均衡的方法、装置、丛集和众核处理器
US9442773B2 (en) Thermally driven workload scheduling in a heterogeneous multi-processor system on a chip
US20140115363A1 (en) Modal workload scheduling in a heterogeneous multi-processor system on a chip
US9939862B2 (en) Latency-based energy storage device selection
US20190123648A1 (en) Setting Operating Points for Circuits in an Integrated Circuit Chip
CN105893141A (zh) 一种多核处理器调控方法及装置及使用该方法的移动终端
TWI454898B (zh) 用於電壓調整器功率模式介面之裝置及電腦系統
KR20160055220A (ko) 프로세서의 코어 처리 방법, 장치 및 단말
CN101819459A (zh) 一种基于异构对象存储系统的功耗控制方法
CN106462456B (zh) 基于对生产者/消费者工作负载序列化的检测的处理器状态控制
CN112380012A (zh) 资源调节方法、装置、终端设备以及存储介质
US9904582B2 (en) Method and apparatus for executing software in electronic device
US11372464B2 (en) Adaptive parameterization for maximum current protection
CN103543982B (zh) 一种时钟频率管理方法及移动设备
JP2015022671A (ja) サーバ仮想化環境における予備系装置の配備装置およびその配備方法
US8302063B2 (en) Method and system to optimize semiconductor products for power, performance, noise, and cost through use of variable power supply voltage compression
US20130318370A1 (en) Middleware power management
CN101458811A (zh) 处理数据的装置和方法
CN101221528B (zh) 一种嵌入式操作系统调度性能的测试方法
CN105700665B (zh) 基于嵌入式系统功耗模式的选择方法及系统,嵌入式系统
CN104246704B (zh) 热优先计算应用调度

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170630

Termination date: 20200626

CF01 Termination of patent right due to non-payment of annual fee