一种任务调度方法、任务调度装置及多核系统的制作方法
【技术领域】
[0001] 本发明涉及计算机领域,尤其涉及一种任务调度方法、任务调度装置及多核系统。
【背景技术】
[0002] 调度子系统作为多核系统中的一个关键部分,主要负责任务的调度。当前,任务调 度的主要作用是在调度子系统满足吞吐率及实时性的性能要求下,决定何时选取何任务在 哪个处理器核上运行。
[0003] 随着个人手持终端、智能手机的大量普及,以及世界范围内节能减排的要求,操作 系统对低功耗的要求越来越高。为了满足要求,一些对功耗的控制技术随之产生,比如动态 调频调压(Dynamicvoltageandfrequencyscaling,简称:DVFS)技术就是根据处理器核 的负载,调节处理器核的电压频率,当处理器核上有较少任务运行时,处理器核负载变低, 相应的DVFS技术会使处理器核的频率降低,相应的功耗就会减少。
[0004] 然而,DVFS技术仅仅根据处理器核的负载判断如何调整功耗,其对在处理器核上 运行的任务并不感知。当处理器核上有较多任务运行时,处理器核负载变高,相应的DVFS 技术会使处理器核的频率升高,相应的功耗就会增大。
[0005] 因此,如何进行任务调度使得多核系统的能耗最小,成为目前亟待解决的问题。
【发明内容】
[0006] 本发明实施例提供一种任务调度方法、任务调度装置及多核系统,能够通过合理 的任务调度使得多核系统的能耗最小。
[0007] 为达到上述目的,本发明实施例提供如下技术方案:
[0008] 第一方面,提供一种任务调度方法,所述方法包括:
[0009] 计算第一待调度任务的绝对负载;
[0010] 计算多核系统中R个簇cluster管理的P个处理器核分别工作在相应运行频率下 运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,其中,所述多核系统的 系统能耗估算参数包括:第^个处理器核工作在第~个运行频率下运行所述第一待调度任 务时的所述多核系统的系统能耗估算参数,其中,所述第^个处理器核工作在所述第个 运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数是根据所述 第^个处理器核工作在所述第个运行频率下运行所述第一待调度任务时,所述第I个 处理器核的能耗、所述第r个cluster的能耗、所述多核系统中其它(P-1)个处理器核的能 耗以及其它(R-1)个cluster的能耗计算得到的,所述第^个处理器核的能耗是根据所述 第一待调度任务的绝对负载及所述第A个运行频率下的静态功耗参数和动态功耗参数计 算得到的;I表示所述R个cluster中第r个cluster管理的N/h处理器核中的第n个处 理器核,队表示所述第r个cluster管理的处理器核的个数,!^表示所述第r个cluster管 理的处理器核的凡个运行频率中第m个运行频率,表示所述第r个cluster管理的处理 器核的运行频率的个数,1彡r彡R,R彡1,1彡mr彡Mr,l彡Nr彡P,1彡nr彡Nr,Mr彡1, P> 1,r、R、Mr、Nr、mr、nr、N、P均为正整数;
[0011] 根据所述R个cluster管理的P个处理器核分别工作在相应运行频率下运行所述 第一待调度任务时的所述多核系统的系统能耗估算参数,从所述多核系统中的P个处理器 核和所述相应运行频率中,确定系统能耗估算参数最小的情况下运行所述第一待调度任务 的目标处理器核以及相应的目标运行频率;
[0012] 控制所述目标处理器核工作在所述目标运行频率下,并将所述第一待调度任务调 度在所述目标处理器核上运行。
[0013] 在第一方面第一种可能的实现方式中,结合第一方面,所述第&个处理器核工作 在所述第nv个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参 数是通过如下步骤得到的:
[0014] 根据所述第~个处理器核工作在所述第个运行频率下运行所述第一待调度任 务时,所述第n/h处理器核的能耗、所述第r个cluster的能耗、所述多核系统中其它(P-1) 处理器核的能耗以及其它(R-l)cluster的能耗,计算所述第n/h处理器核工作在所述第 个运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,其中, 所述系统能耗估算参数=第n/h处理器核的能耗+第r个cluster的能耗+多核系统中 其它(P-1)个处理器核的能耗+多核系统中其它(R-1)个cluster的能耗。
[0015] 在第一方面第二种可能的实现方式中,结合第一方面或第一方面第一种可能的实 现方式,所述第K个处理器核的能耗是通过如下步骤得到的:
[0016] 根据所述第一待调度任务的绝对负载及所述第nv个运行频率下的静态功耗参数 和动态功耗参数,计算所述第^个处理器核的能耗,其中,
[0017] E= (PL+PD)X(inst/CC),E表示所述第nr个处理器核的能耗;PL表示所述第mr 个运行频率下的静态功耗参数;表示所述第m/h运行频率下的动态功耗参数;inst表示 所述第K个处理器核的绝对负载,所述第&个处理器核的绝对负载包含所述第一待调度任 务的绝对负载和所述第^个处理器核上其它调度任务的绝对负载;CC表示所述第个运 行频率。
[0018] 在第一方面第三种可能的实现方式中,结合第一方面或第一方面第一种可能的实 现方式或第一方面第二种可能的实现方式,所述第r个cluster的能耗是通过如下步骤得 到的:
[0019] 根据所述第r个cluster的功耗值,以及所述N,个处理器核中运行时间最长的处 理器核的运行时间,计算所述第r个cluster的能耗,其中,第r个cluster的能耗=第r 个cluster的功耗值X所述队个处理器核中运行时间最长的处理器核的运行时间。
[0020] 在第一方面第四种可能的实现方式中,结合第一方面至第一方面第三种可能的实 现方式中任一种可能的实现方式,所述计算第一待调度任务的绝对负载,包括:
[0021] 根据所述第一待调度任务的运行时间、运行所述第一待调度任务的处理器核的运 行时间及运行频率计算所述第一待调度任务的绝对负载,其中,所述绝对负载=所述运行 频率X(任务的运行时间/处理器核的运行时间)。
[0022] 在第一方面第五种可能的实现方式中,结合第一方面至第一方面第四种可能的实 现方式中任一种可能的实现方式,所述方法还包括:
[0023] 计算第二待调度任务的绝对负载;
[0024] 在所述第二待调度任务的绝对负载与所述第一待调度任务的绝对负载相同的情 况下,根据所述第二待调度任务的绝对负载,以及存储的第一对应关系,确定所述第二待调 度任务对应的、系统能耗最小的情况下运行所述第二待调度任务的目标处理器核以及相应 的目标运行频率;
[0025] 控制所述目标处理器核工作在所述目标运行频率下,并将所述第二待调度任务调 度在所述目标处理器核上运行,其中,
[0026] 所述存储的第一对应关系包括:所述系统能耗估算参数最小的情况下运行所述第 一待调度任务的目标处理器核的标识、目标运行频率与该目标处理器核在所述系统能耗估 算参数最小的情况下调度的所述第一待调度任务的绝对负载的对应关系。
[0027] 第二方面,提供一种任务调度装置,所述任务调度装置包括:第一计算单元、第二 计算单元、第一确定单元、控制单元、以及调度单元;
[0028] 所述第一计算单元,用于计算第一待调度任务的绝对负载;
[0029] 所述第二计算单元,用于计算多核系统中R个簇cluster管理的P个处理器核分 别工作在相应运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参 数,其中,所述多核系统的系统能耗估算参数包括:第^个处理器核工作在第个运行频 率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,其中,所述第^个 处理器核工作在所述第叫个运行频率下运行所述第一待调度任务时的所述多核系统的系 统能耗估算参数是根据所述第^个处理器核工作在所述第个运行频率下运行所述第一 待调度任务时,所述第n/h处理器核的能耗、所述第r个cluster的能耗、所述多核系统中 其它(P-1)个处理器核的能耗以及其它(R-1)个cluster的能耗计算得到的,所述第n/h 处理器核的能耗是根据所述第一待调度任务的绝对负载及所述第叫个运行频率下的静态 功耗参数和动态功耗参数计算得到的;\表示所述R个cluster中第r个cluster管理的 队个处理器核中的第n个处理器核,N^表示所述第r个cluster管理的处理器核的个数, nv表示所述第r个cluster管理的处理器核的个运行频率中第m个运行频率,表示 所述第r个cluster管理的处理器核的运行频率的个数,1 <r<R,R彡1,1 < 1彡Nr彡P,1彡nr彡Nr,Mr彡1,P>
[0030] 所述第一确定单元,用于根据所述R个cluster管理的P个处理器核分别工作在 相应运行频率下运行所述第一待调度任务时的所述多核系统的系统能耗估算参数,从所述 多核系统中的P个处理器核和所述相应运行频率中,确定系统能耗估算参数最小的情况下 运行所述第一待调度任务的目标处理器核以及相应的目标运行频率;
[0031] 所述控制单元,用于控制所述目标处理器核工作在所述目标运行频率下;
[0032] 所述调度单元,用于将所述第一待调度任务调度在所述目标处理器核上运行。
[0033] 在第二方面第一种可能的实现方式中,结合第二方面,所述第二计算单元具体用 于:
[0034] 根据所述第~个处理器核工作在所述第个运行频率下运行所述第一待调度任 务时,所述第n/h处理器核的能耗、所述第r个cluster的能耗、所述多核系统中其它(P-1) 处理器