CN106293909A - 一种对异构多核处理器温度‑调度长度感知的实时任务调度方法 - Google Patents

一种对异构多核处理器温度‑调度长度感知的实时任务调度方法 Download PDF

Info

Publication number
CN106293909A
CN106293909A CN201610608598.1A CN201610608598A CN106293909A CN 106293909 A CN106293909 A CN 106293909A CN 201610608598 A CN201610608598 A CN 201610608598A CN 106293909 A CN106293909 A CN 106293909A
Authority
CN
China
Prior art keywords
task
processor
head
calculate
temperature
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.)
Granted
Application number
CN201610608598.1A
Other languages
English (en)
Other versions
CN106293909B (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.)
East China Normal University
Original Assignee
East China Normal University
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 East China Normal University filed Critical East China Normal University
Priority to CN201610608598.1A priority Critical patent/CN106293909B/zh
Publication of CN106293909A publication Critical patent/CN106293909A/zh
Application granted granted Critical
Publication of CN106293909B publication Critical patent/CN106293909B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明公开了一种对异构多核处理器温度‑调度长度感知的实时任务调度方法,包括以下步骤:读取系统默认的权重因子α;将任务队列里存储的任务分配到最优的处理器;对每个处理器任务队列里的任务选取最优频率;确定每个处理器任务队列里任务的执行顺序;对超过温度约束的任务进行切分;判断系统当前调度长度是否小于或等于给定的所有任务共享的截止时间D,如果满足,任务执行,调度结束;如果不满足,返回调度失败,任务不能执行,调度结束。使用本发明能够使得系统在满足峰值温度约束,以及时间约束的条件下,最小化系统的调度长度。

Description

一种对异构多核处理器温度-调度长度感知的实时任务调度 方法
技术领域
本发明涉及嵌入式实时系统中任务调度技术领域,尤其涉及一种在满足系统峰值温度保证的前提下,通过为任务选择最优的处理器、操作频率、执行顺序,减少系统调度长度的方法。
背景技术
随着对计算机性能要求的日益提高,多核处理器已经逐步取代了传统的单核处理器,成为当代和下一代处理器的设计规范。多核处理器最大的优点在于能够对任务进行并行处理,因而缩短了多个任务总的执行时间,使得系统的效率显著提高。与此同时,随着处理器芯片体积的不断缩小,处理器的能耗密度也在以指数的形式增长。如此快速增长的处理器功耗密度必然会导致芯片温度的升高。当芯片的温度超过某个阈值时,系统可能会产生一些无法预估的功能错误和硬件错误,这样会使系统的可靠性大大降低。因此,在系统峰值温度限制条件下,最大程度地提高系统的效率,即最小化任务总的完成时间(调度长度),已经成为一个非常重要的研究课题。
动态热量管理技术(DTM)已经被广泛地用于对处理器进行温度管理。它主要包括动态电压和频率调节(DVFS)、调度优先级自适应、任务迁移等温度控制方法。很多学者在DTM技术的基础上,设计了一些温度感知的策略来对处理器的温度进行管理。这些研究的关注点大都是集中在对同构多核处理器的温度控制。但是,Hyari在他的研究中发现,异构多核处理器的计算性能明显优于同构多核处理器。目前,几乎没有对异构多核处理器的研究同时考虑到温度控制和最小化调度长度。因此,迫切需要对异构多核处理器进行温度控制研究,充分发挥异构多核处理器的优越性,最大限度地提高系统的性能,即在温度约束条件下,最小化系统调度长度。
发明内容
本发明的目的是提供一种对异构多核处理器温度-调度长度感知的实时任务调度方法,该方法在满足系统峰值温度和时间约束的条件下,通过为每个任务选择最优的处理器、工作频率、执行顺序,来最小化调度长度。
实现本发明目的的具体技术方案是:
一种对异构多核处理器温度-调度长度感知的实时任务调度方法,包括以下步骤:
步骤1:读取系统默认的权重因子α;
步骤2:将任务队列里存储的任务分配到最优的处理器;
步骤3:对每个处理器任务队列里的任务选取最优频率;
步骤4:确定每个处理器任务队列里的任务的执行顺序;
步骤5:对超过温度约束的任务进行切分;
步骤6:判断系统当前调度长度是否小于或等于给定的所有任务共享的截止时间D,如果满足,任务执行,调度结束;如果不满足,返回调度失败,任务不能执行,调度结束。
所述步骤2中的将任务队列里存储的任务分配到最优的处理器,具体包括:
步骤A1:初始化L1=L2=…=Lk=…=LN;其中,Lk为处理器PEk上任务指令的条数,N为处理器的个数。
步骤A2:从任务队列Qglobal取出队头任务τhead
步骤A3:将标志位k赋值为1,即:k←1;
步骤A4:假设τhead分配到PEk,计算出处理器PEk以最大频率执行τhead后的调度长度其中,WChead为任务τhead最坏情况下执行周期,为处理器PEk的处于最大活性模式下的频率。
步骤A5:计算分配到除PEk外,τhead在其他处理器的时间;
步骤A6:计算出N个处理器调度长度的和tsum=(t1+t2+…+tN);
步骤A7:计算出在只考虑调度长度下,τhead分配到处理器PEk的概率λk,w=1-tk/tsum
步骤A8:计算τhead以最大频率在处理器PEk上执行后,结束时的温度Tend,k
步骤A9:判断Tend,k<Tpeak是否成立。若成立,转步骤A10;否则,转步骤A11。
步骤A10:利用公式λk,t=1-Tend,k/Tpeak计算出只考虑温度条件下分配τhead到PEk的概率λk,t
步骤A11:将0赋值给λk,t,即λk,t=0;
步骤A12:计算在考虑温度和调度长度下,τhead分配到PEk的概率,计算公式为:λk=α*λk,t+(1-α)*λk,w
步骤A13:更新k,公式为:k←k+1;
步骤A14:判断k≤N是否成立,若成立,转步骤A4;否则,转步骤A15;
步骤A15:从λ1至λN中选取最大值,并将其对应的处理器编号赋值给flag;
步骤A16:将τhead分配给处理器PEflag,将其插入到PEflag任务存储队列Qflag
步骤A17:将τhead从Qgtobal中删除,更新队头任务;
步骤A18:更新Lflag=Lflag+WChead
步骤A19:判断Qglobal是否为空,不为空,转步骤A2;否则,转步骤A20;
步骤A20:所有任务分配完成,退出。
所述步骤3确定任务的最优频率,具体包括:
步骤B1:将k赋值为1,即:k←1;
步骤B2:计算出PEk的调度长度tf(PEk);
步骤B3:k←k+1;
步骤B4:判断k≤N是否成立,若成立,转步骤B2;否则,转步骤B5;
步骤B5:计算N个调度长度的最大值,将其赋值给tf,即:
tf=max(tf(PE1),tf(PE2),...,tf(PEN));
步骤B6:将k重新赋值为1,即:k←1;
步骤B7:计算出处理器PEk可用的松弛时间slk,公式为:slk=tf-tf(PEk);
步骤B8:从Qk中取出队头任务τhead
步骤B9:计算τhead稳定状态下温度Tstd
步骤B10:根据Tstd对τhead进行冷热划分;如果该任务为热任务,将该任务插入队列Qk,h;如果为冷任务,则插入队列Qk,c
步骤B11:将τhead从Qk中删除,更新队头任务τhead
步骤B12:判断Qk是否为空,若不为空,转步骤B9;否则,转步骤B13;
步骤B13:将所有在Qk,c中的冷任务频率设为PEk的最大频率
步骤B14:对Qk,h中的热任务按照稳定状态下温度降序排序;
步骤B15:将l赋值为处理器PEk的最大活性模式即:
步骤B16:将i赋值为1,即:i←1;
步骤B17:判断slk>0是否成立,若成立,转步骤B18,否则,转步骤B27;步骤B18:对在Qk,h中的任务τi,判断是否成立,若成立,转步骤B19;否则,转步骤B25;
步骤B19:将τi的频率设置为Fk,l-1
步骤B20:更新slk,公式为:
步骤B21:更新l,公式为:l=l-1;
步骤B22:判断l==1是否成立,如果成立,转步骤B23;否则,转步骤17;
步骤B23:更新i,公式为:i←i+1;
步骤B24:判断i≤sizeof(Qk,h)是否成立,若成立,转步骤B17;否则,转步骤B25;其中,sizeof(Qk,h)为Qk,h中的任务个数。
步骤B25:将slk作为空任务插入到Qk,c
步骤B26:更新Qk,h与Qk,c
步骤B27:更新k,公式为:k←k+1;
步骤B28:判断k≤N,若成立,转步骤B7;否则,转步骤B29;
步骤B29:确定任务的最优频率结束,退出。
所述步骤4确定每个处理器任务队列里的任务的执行顺序,具体包括:
步骤C1:将k赋值为1,即:k←1;
步骤C2:对Qk,h中的热任务按照稳定状态下温度降序排序;
步骤C3:对Qk,c中的冷任务按照稳定状态下温度升序排序;
步骤C4:将Qk,h和Qk,c中任务个数最小值赋值给sizemin,公式为:
sizemin=min(sizeof(Qk,h),sizeof(Qk,c));
步骤C5:将i赋值为1,即:i←1;
步骤C6:将Qk,h[i]插入到目标队列Qk(2*i-1);
步骤C7:从Qk,h中删除Qk,h[i];
步骤C8:将Qk,c[i]插入到目标队列Qk(2*i);
步骤C9:从Qk,c中删除Qk,c[i];
步骤C10:更新i,公式为:i←i+1;
步骤C11:判断i≤sizemin是否成立,若成立,转步骤C6;否则,转步骤C12;
步骤C12:将剩余的Qk,h或Qk,c中的任务插入到Qk中;
步骤C13:更新k,公式为:k←k+1;
步骤C14:判断k≤N,若成立,转步骤C2;否则,转步骤C15;
步骤C15:确定每个处理器任务队列里的任务的执行顺序结束,退出。
所述步骤5为对超过温度约束的任务进行切分,具体包括:
步骤D1:将k赋值为1,即:k←1;
步骤D2:将i赋值为1,即:i←1;
步骤D3:计算任务QK(i)的结束温度Tend,i
步骤D4:判断Tend,i>Tmax是否成立,若成立,转步骤D5;否则,转步骤D10;
步骤D5:用上下文转换开销tsw,i初始化最优空闲时间即:
步骤D6:计算插入的最优空闲时间的结束温度
步骤D7:计算在活性模式下,子任务的执行时间tactive,i
步骤D8:计算最优的子任务个数公式为:其中,fi为任务QK,h(i)的频率。
步骤D9:计算出最优空闲时间公式为:其中,Tinit,i为任务QK(i)执行时的初始温度,Rk和Ck分别为处理器PEk热阻和热容。
步骤D10:更新i,公式为:i←i+1;
步骤D11:判断i≤sizeof(QK,h)是否成立,若成立,转步骤D3;否则,转步骤D12;
步骤D12:更新k,公式为:k←k+1;
步骤D13:判断k≤N,若成立,转步骤D2;否则,转步骤D14:
步骤D14:对超过温度约束的任务进行切分结束,退出。
本发明通过为任务集中的每个任务选择合适的处理器、工作频率,以及确定任务的调度顺序,对超过温度限制的任务进行切分的方式来实现在温度约束条件下最小化系统的调度长度。本发明对于嵌入式实时系统具有很高的应用价值。
附图说明
图1为本发明流程图;
图2为在α=0.3条件下,本发明所提出的算法与基准算法在降低调度长度方面的比较图;
图3为在α=0.8条件下,本发明所提出的算法与基准算法在降低调度长度方面的比较图;
图4为在α=0.3条件下,本发明所提出的算法与基准算法在降低峰值温度方面的比较图;
图5为在α=0.8条件下,本发明所提出的算法与基准算法在降低峰值温度方面的比较图。
具体实施方式
结合以下具体实施例和附图,对本发明作进一步的详细说明。实施本发明的过程、条件以及实验方法等,除以下专门提及的内容以外,均为本领域的普遍知识和公知常识,本发明并没有特别限制的内容。
本发明中所使用的处理器支持DVFS技术。每个处理器具有L种离散的操作频率{f1,f2,…,fL},且满足fmin=f1<f2<…<fL=fmax。其中,fmin表示处理器的最低操作频率,fmax表示处理器的最高操作频率。处理器频率的切换只能发生在任务开始执行之前,或者任务执行完成之后。因此,每个任务在其执行过程中,只能出现一种频率。
在本发明中所使用的任务模型中,任务集Γ由γ个实时任务组成,即Γ={τ1,τ2,…,τγ}。所有的任务共享一个截止时间D。同时,本发明中的任务之间是相互独立的,没有依赖关系。
本发明所用的温度模型中,处理器在t时刻的温度为:其中Tstd为任务稳定状态下的温度,且Tstd=PR+Tamb,Tint为初始温度,Tamb为环境温度,R和C分别为处理器的热阻和热容。
本发明的目的是通过为任务选择合适的处理器和操作频率,并确定任务的执行顺序的方式,以及对超过温度约束的任务进行切分,在峰值温度和时间约束的条件下最小化系统的调度长度。
本发明的目标函数可以表示为:
最小化:
约束条件:Tpeak≤Tmax
tf≤D
其中,tf(PEk)为处理器PEk的调度长度,Tmax是最高温度限制,Tpeak是处理器的峰值温度,D为所有任务共享的截止时间。
实施例:
任务集定为Γ={τ1,τ2,τ3,τ4}。假设四个任务最坏情况下的执行周期分别为3×109,4×109,5×109,6×109;活性因子分别为0.8,0.4,0.6,0.5。系统包含两个异构处理器PE1和PE2。PE1支持的频率为{1.9GHz,2.3GHz},对应的功率为{16.8W,21W};PE2支持的频率为{2GHz,2.15GHz},对应的功率为{18W,19.5W}。由此计算出两个处理器的平均处理能力为2.0875GHz。任务共享截至时间其中,sizeof(Γ)为集合Γ中任务的个数,favg为异构多核处理器的平均频率,N为处理器的个数。据此计算,任务共享的截止时间D为5.1737。这些参数作为算法(调度方法)的输入。
步骤1:读取权重因子α值,假设系统默认值为α=0.8;
步骤2:将任务队列里存储的任务分配到最优的处理器;
初始化时,任务队列Qglobal存放的任务为{τ1,τ2,τ3,τ4},其中,τ1是队头任务。
首先计算只考虑调度长度下任务分配到PE1和PE2的概率。假设τ1分配到PE1,τ1在PE1上以最大频率执行,所需要的时间t1=1.3043;假设τ1分配到PE2,τ1在PE2上以最大频率执行,所需要的时间t2=1.3953。由此计算出只考虑调度长度下 下面计算只考虑峰值温度下,τ1分配到PE1和PE2的概率。假设τ1分配到PE1,则Tend,1=27.4505℃;假如τ1分配到PE2,则Tend,2=27.6135℃。由此计算出只考虑峰值温度下最后计算综合考虑调度长度和峰值温度下,τ1分配到PE1和PE2的概率。τ1分配到PE1的概率λ1,t=0.8*0.0850+(1-0.8)*0.5169=0.1714;τ1分配到PE2的概率λ2,t=0.8*0.0796+(1-0.8)*0.4831=0.1603。由于0.1714>0.1603,所以τ1应分配到处理器PE1。同理,完成τ2,τ3,τ4的分配。最终确定任务τ1,τ2,τ3,τ4分配的处理器为PE1,PE2,PE1,PE2
步骤3:对每个处理器的任务队列里的任务选取最优频率:
完成步骤2后,计算出PE1的调度长度tf(PE1)=3.4783,PE2的调度长度tf(PE2)=4.6512。因为系统的调度长度取值为两个处理器调度长度的最大值,所以系统的调度长度tf=tf(PE2)=4.6512。由于3.4783<4.6512,所以PE1存在松弛时间sl1=tf-tf(PE1)=1.1729,可以利用这个松弛时间,在不增加系统调度长度的条件下,对PE1上的任务进行降频操作。根据任务稳定状态下的温度Tstd和最高温度限制Tmax对任务进行冷热划分。若Tstd>Tmax,则任务为热任务;否则,为冷任务。因此处理器PE1热任务队列Q1,h={τ1,τ3},处理器PE2热任务队列Q2,h={τ2,τ4},处理器PE1和PE2的冷任务队列Q1,c和Q2,c为空。对Q1,h根据任务的稳定状态下温度Tstd进行降序排序,得到排序后的Q1,h={τ1,τ3}。首先,尝试对τ1进行降频操作。当τ1的频率有原来的2.3GHz降至1.9GHz时,需要额外的执行时间为1.5789-1.3043=0.2746。由于0.2746<1.1729,所以,τ1可以进行降频操作,由原来的2.3GHz降至1.9GHz。松弛时间更新为sl1=1.1729-0.2746=0.8983。其次,尝试对τ3进行降频操作。当τ3的频率有原来的2.3GHz降至1.9GHz时,需要额外的执行时间为2.6316-2.1739=0.4577。由于0.4577<0.8983,所以,τ3可以进行降频操作,由原来的2.3GHz降至1.9GHz。松弛时间更新为sl1=0.8983-0.4577=0.4406。剩余的松弛时间sl1可作为执行时间为0.4406的冷任务τ5,插入到Q1,c。最终确定任务τ1,τ2,τ3,τ4的操作频率分别为1.9GHz,2.15GHz,1.9GHz,2.15GHz。
步骤4:确定每个处理器任务队列里的任务的执行顺序;
由于任务τ1和τ3的操作频率改变,所以任务的稳定状态下的温度也随着改变。首先,根据公式Tstd=PR+Tamb,重新计算任务τ1和τ3稳定状态下温度;其次,将τ1和τ3按照稳定状态下温度降序排序;最后,按照“热-冷”任务的顺序确定处理器PE1任务执行队列Q1={τ1,τ5,τ3}。同理,处理器PE1任务执行队列Q2={τ4,τ2}。
步骤5:对超过温度约束的任务进行切分;
首先,对处理器PE1的任务队列Q1进行结束温度计算。τ1在执行后,它的结束温度Tend=27.3538。由于Tend<Tmax,所以不需要对任务τ1进行切分。空任务τ5在执行后,它的结束温度Tend=27.2922。τ3在执行后,它的结束温度Tend=29.8085。由于Tend<Tmax,所以不需要对任务τ3进行切分。
其次,对处理器PE1的任务队列Q2进行结束温度计算。τ4在执行后,它的结束温度Tend=27.6135。由于Tend<Tmax,所以不需要对任务τ4进行切分。τ2在执行后,它的结束温度Tend=29.0648。由于Tend<Tmax,所以不需要对任务τ2进行切分。
步骤6:判断系统当前调度长度是否小于或等于给定的所有任务共享的截止时间D,如果满足,则调度结束;如果不满足,返回调度失败,调度结束。
通过步骤5,计算得到系统实际的调度长度tf=4.6512。任务共享的截止时间D作为算法的输入已经给出,为5.1737。由于tf<D,所以此次调度满足系统要求,任务可以按照以上计算出的执行顺序进行执行,任务调度结束。
下面通过实验来验证本发明在减少系统能耗和降低峰值温度方面的效果。为了使实验数据更加充分,任务取现实生活中任务。
实施过程中,异构多核处理器有四个,频率设置参照ARM Cortex A7处理器,最大工作频率为2.5GHz。四个处理器的参数设置如表一所示。
表1
处理器 频率(GHZ) 功率(W) 热阻R(℃/W) 热容C(J/℃)
PE1 {1.9,2.3,2.4} {16.8,21,22} 1.93 0.0086
PE2 {2,2.15,2.5} {18,19.5,23} 2.15 0.0080
PE3 {2.15,2.3,2.5} {19.5,21,23} 2.05 0.0084
PE4 {2,2.15,2.3} {14.4,16.8,21} 2.13 0.0082
任务的截止时间设置为其中,sizeof(Γ)为集合Γ中任务的个数,favg为异构多核处理器的平均频率,N为处理器的个数。任务的异构性用活性因子来表现,取值范围[0,4,1]。本组实验中有六个任务集,六个任务集包含的真实的任务类型和任务总数,如表2所示。这些任务的时钟周期所处的范围为[4×107,6×108]。
表2
首先比较本发明与RATM、α-VSTM算法在减少调度长度方面的提升。
RATM算法将任务集合中的任务随机分配到处理器。在完成“任务-处理器”的分配后,RATM在温度控制方案和本发明相同,即采用任务降频、任务“热-冷”排序和任务切分。α-VSTM算法采用本发明提出的“任务-处理器”分配方案,但温度控制采用DVFS技术。
图2给出了在α=0.3的条件下,六组组任务集分别使用本发明与RATM、α-VSTM在降低调度长度(单位:秒)方面的实验结果。系统能够容忍的最大的峰值温度Tmax设置为50℃。环境温度Tamb设置为25℃。由图2所示,使用本发明得到的调度长度要比使用RATM、α-VSTM取得的调度长度低很多。例如,对于任务集Γ6,本发明与RATM相比,能够使调度长度降低21.62%;与α-VSTM相比,降低了19.63%。
图3给出了在α=0.8的条件下,六组组任务集分别使用本发明与RATM、α-VSTM在降低调度长度(单位:秒)方面的实验结果。系统能够容忍的最大的峰值温度Tmax设置为50℃。环境温度Tamb设置为25℃。由图3所示,使用本发明得到的调度长度要比使用RATM、α-VSTM取得的调度长度低很多。例如,对于任务集Γ6,本发明与RATM相比,能够使调度长度降低15.31%;与α-VSTM相比,降低了19.56%。
图4给出了在α=0.3的条件下,六组组任务集分别使用本发明与RATM、α-VSTM在降低峰值温度(单位:℃)方面的实验结果。系统能够容忍的最大的峰值温度Tmax设置为50℃。环境温度Tamb设置为25℃。由图4所示,使用本发明得到的峰值温度明显低于使用RATM、α-VSTM取得的峰值温度。例如,对于任务集Γ6,本发明与RATM相比,能够使峰值温度降低1.89%;与α-VSTM相比,降低了2.19%。
图5给出了在α=0.8的条件下,六组组任务集分别使用本发明与RATM、α-VSTM在降低峰值温度(单位:℃)方面的实验结果。系统能够容忍的最大的峰值温度Tmax设置为50℃。环境温度Tamb设置为25℃。由图5所示,使用本发明得到的峰值温度明显低于使用RATM、α-VSTM取得的峰值温度。例如,对于任务集Γ6,本发明与RATM相比,能够使峰值温度降低4.38%;与α-VSTM相比,降低了4.49%。
通过上述的实验数据,能够很清楚的看出本发明无论是在减少调度长度方面,还是在降低系统峰值温度方面,都具有很好的性能。

Claims (5)

1.一种对异构多核处理器温度-调度长度感知的实时任务调度方法,其特征在于,该方法包括以下步骤:
步骤1:读取系统默认的权重因子α;
步骤2:将任务队列里存储的任务分配到最优的处理器;
步骤3:对每个处理器任务队列里的任务选取最优频率;
步骤4:确定每个处理器任务队列里的任务的执行顺序;
步骤5:对超过温度约束的任务进行切分;
步骤6:判断系统当前调度长度是否小于或等于给定的所有任务共享的截止
时间D,如果满足,任务执行,调度结束;如果不满足,返回调度失败,任务不能执行,调度结束。
2.如权利要求1所述的方法,其特征在于,所述步骤2中的将任务队列里存储的任务分配到最优的处理器,具体包括:
步骤A1:初始化L1=L2=…=Lk=…=LN;其中,Lk为处理器PEk上任务指令的条数,N为处理器的个数;
步骤A2:从任务队列Qglobal取出队头任务τhead
步骤A3:将标志位k赋值为1,即:k←1;
步骤A4:假设τhead分配到PEk,计算出处理器PEk以最大频率执行τhead后的调度长度其中,WChead为任务τhead最坏情况下执行周期,为处理器PEk的处于最大活性模式下的频率;
步骤A5:计算分配到除PEk外,τhead在其他处理器的时间;
步骤A6:计算出N个处理器调度长度的和tsum=(t1+t2+…+tN);
步骤A7:计算出在只考虑调度长度下,τhead分配到处理器PEk的概率λk,w=1-tk/tsum
步骤A8:计算τhead以最大频率在处理器PEk上执行后,结束时的温度Tend,k
步骤A9:判断Tend,k<Tpeak是否成立;若成立,转步骤A10;否则,转步骤A11;
步骤A10:利用公式λk,t=1-Tend,k/Tpeak计算出只考虑温度条件下分配τhead到PEk的概率λk,t
步骤A11:将0赋值给λk,t,即λk,t=0;
步骤A12:计算在考虑温度和调度长度下,τhead分配到PEk的概率,计算公式为:λk=α*λk,t+(1-α)*λk,w
步骤A13:更新k,公式为:k←k+1;
步骤A14:判断k≤N是否成立,若成立,转步骤A4;否则,转步骤A15;
步骤A15:从λ1至λN中选取最大值,并将其对应的处理器编号赋值给flag;
步骤A16:将τhead分配给处理器PEflag,将其插入到PEflag任务存储队列Qflag
步骤A17:将τhead从Qglobal中删除,更新队头任务;
步骤A18:更新Lflag=Lflag+WChead
步骤A19:判断Qglobal是否为空,不为空,转步骤A2;否则,转步骤A20;
步骤A20:所有任务分配完成,退出。
3.如权利要求1所述的方法,其特征在于,所述步骤3对每个处理器任务队列里的任务选取最优频率,具体包括:
步骤B1:将k赋值为1,即:k←1;
步骤B2:计算出PEk的调度长度tf(PEk);
步骤B3:k←k+1;
步骤B4:判断k≤N是否成立,若成立,转步骤B2;否则,转步骤B5;
步骤B5:计算N个调度长度的最大值,将其赋值给tf,即:
tf=max(tf(PE1),tf(PE2),…,tf(PEN));
步骤B6:将k重新赋值为1,即:k←1;
步骤B7:计算出处理器PEk可用的松弛时间slk,公式为:slk=tf-tf(PEk);
步骤B8:从Qk中取出队头任务τhead
步骤B9:计算τhead稳定状态下温度Tstd
步骤B10:根据Tstd对τhead进行冷热划分;如果该任务为热任务,将该任务插入队列Qk,h;如果为冷任务,则插入队列Qk,c
步骤B11:将τhead从Qk中删除,更新队头任务τhead
步骤B12:判断Qk是否为空,若不为空,转步骤B9;否则,转步骤B13;
步骤B13:将所有在Qk,c中的冷任务频率设为PEk的最大频率
步骤B14:对Qk,h中的热任务按照稳定状态下温度降序排序;
步骤B15:将ι赋值为处理器PEk的最大活性模式即:
步骤B16:将i赋值为1,即:i←1;
步骤B17:判断slk>0是否成立,若成立,转步骤B18,否则,转步骤B27;步骤B18:对在Qk,h中的任务τi,判断是否成立,若成立,转
步骤B19,否则,转步骤B25;
步骤B19:将τi的频率设置为Fk,i-1
步骤B20:更新slk,公式为:
步骤B21:更新ι,公式为:ι=ι-1;
步骤B22:判断ι==1是否成立,如果成立,转步骤B23,否则,转步骤17;
步骤B23:更新i,公式为:i←i+1;
步骤B24:判断i≤sizeof(Qk,h)是否成立,若成立,转步骤B17;否则,转步骤B25;其中,sizeof(Qk,h)为Qk,h中的任务个数;
步骤B25:将slk作为空任务插入到Qk,c
步骤B26:更新Qk,h与Qk,c
步骤B27:更新k,公式为:k←k+1;
步骤B28:判断k≤N,若成立,转步骤B7;否则,转步骤B29;
步骤B29:确定任务的最优频率结束,退出。
4.如权利要求1所述的方法,其特征在于,所述步骤4确定每个处理器任务队列里的任务的执行顺序,具体包括:
步骤C1:将k赋值为1,即:k←1;
步骤C2:对Qk,h中的热任务按照稳定状态下温度降序排序;
步骤C3:对Qk,c中的冷任务按照稳定状态下温度升序排序;
步骤C4:将Qk,h和Qk,c中任务个数最小值赋值给sizemin,公式为:
sizemin=min(sizeof(Qk,h),sizeof(Qk,c));
步骤C5:将i赋值为1,即:i←1;
步骤C6:将Qk,h[i]插入到目标队列Qk(2*i-1);
步骤C7:从Qk,h中删除Qk,h[i];
步骤C8:将QK,c[i]插入到目标队列Qk(2*i);
步骤C9:从Qk,c中删除Qk,c[i];
步骤C10:更新i,公式为:i←i+1;
步骤C11:判断i≤sizemin是否成立,若成立,转步骤C6;否则,转步骤
C12;
步骤C12:将剩余的Qk,h或Qk,c中的任务插入到Qk中;
步骤C13:更新k,公式为:k←k+1;
步骤C14:判断k≤N,若成立,转步骤C2;否则,转步骤C15;
步骤C15:确定每个处理器任务队列里的任务的执行顺序结束,退出。
5.如权利要求1所述的方法,其特征在于,所述步骤5为对超过温度约束的任务进行切分,具体包括:
步骤D1:将k赋值为1,即:k←1;
步骤D2:将i赋值为1,即:i←1;
步骤D3:计算任务QK(i)的结束温度Tend,i
步骤D4:判断Tend,i>Tmax是否成立,若成立,转步骤D5;否则,转步骤D10;
步骤D5:用上下文转换开销tsw,i初始化最优空闲时间即:
步骤D6:计算插入的最优空闲时间的结束温度
步骤D7:计算在活性模式下,子任务的执行时间tactive,i
步骤D8:计算最优的子任务个数公式为:其中,fi为任务QK,h(i)的频率。
步骤D9:计算出最优空闲时间公式为:其中,Tinit,i为任务QK(i)执行时的初始温度,Rk和Ck分别为处理器PEk热阻和热容。
步骤D10:更新i,公式为:i←i+1;
步骤D11:判断i≤sizeof(QK,h)是否成立,若成立,转步骤D3;否则,转步骤D12;
步骤D12:更新k,公式为:k←k+1;
步骤D13:判断k≤N,若成立,转步骤D2;否则,转步骤D14:
步骤D14:对超过温度约束的任务进行切分结束,退出。
CN201610608598.1A 2016-07-29 2016-07-29 一种对异构多核处理器温度-调度长度感知的实时任务调度方法 Expired - Fee Related CN106293909B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610608598.1A CN106293909B (zh) 2016-07-29 2016-07-29 一种对异构多核处理器温度-调度长度感知的实时任务调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610608598.1A CN106293909B (zh) 2016-07-29 2016-07-29 一种对异构多核处理器温度-调度长度感知的实时任务调度方法

Publications (2)

Publication Number Publication Date
CN106293909A true CN106293909A (zh) 2017-01-04
CN106293909B CN106293909B (zh) 2019-06-14

Family

ID=57663115

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610608598.1A Expired - Fee Related CN106293909B (zh) 2016-07-29 2016-07-29 一种对异构多核处理器温度-调度长度感知的实时任务调度方法

Country Status (1)

Country Link
CN (1) CN106293909B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108647099A (zh) * 2018-05-18 2018-10-12 华东师范大学 一种受约束的面向吞吐量优化的异构MPSoC系统任务调度方法
CN108845659A (zh) * 2018-01-30 2018-11-20 武汉大学 一种功耗优先的嵌入式处理器实时任务分配方法
CN111158916A (zh) * 2019-12-31 2020-05-15 中国人民解放军国防科技大学 一种堆叠式多处理器中热量优化的任务调度方法及装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050120252A1 (en) * 2003-11-28 2005-06-02 Kabushiki Kaisha Toshiba Electric apparatus and processor speed control method
CN1755658A (zh) * 2004-09-30 2006-04-05 株式会社东芝 多处理器计算机和程序
CN102156666A (zh) * 2011-04-20 2011-08-17 上海交通大学 用于粗粒度可重构阵列处理器资源调度的温度优化方法
CN103164274A (zh) * 2013-02-18 2013-06-19 华东师范大学 一种基于温度约束的固定优先级实时任务静态调度方法
CN103902379A (zh) * 2012-12-25 2014-07-02 中国移动通信集团公司 一种任务调度方法、装置及服务器集群
CN104317654A (zh) * 2014-10-09 2015-01-28 南京大学镇江高新技术研究院 基于动态温度预测模型的数据中心任务调度方法
US9135063B1 (en) * 2009-07-21 2015-09-15 The Research Foundation For The State University Of New York Apparatus and method for efficient scheduling of tasks
CN104965756A (zh) * 2015-05-29 2015-10-07 华东师范大学 制程变异下温度感知的MPSoC任务分配及调度策略的评估方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050120252A1 (en) * 2003-11-28 2005-06-02 Kabushiki Kaisha Toshiba Electric apparatus and processor speed control method
CN1755658A (zh) * 2004-09-30 2006-04-05 株式会社东芝 多处理器计算机和程序
US9135063B1 (en) * 2009-07-21 2015-09-15 The Research Foundation For The State University Of New York Apparatus and method for efficient scheduling of tasks
CN102156666A (zh) * 2011-04-20 2011-08-17 上海交通大学 用于粗粒度可重构阵列处理器资源调度的温度优化方法
CN103902379A (zh) * 2012-12-25 2014-07-02 中国移动通信集团公司 一种任务调度方法、装置及服务器集群
CN103164274A (zh) * 2013-02-18 2013-06-19 华东师范大学 一种基于温度约束的固定优先级实时任务静态调度方法
CN104317654A (zh) * 2014-10-09 2015-01-28 南京大学镇江高新技术研究院 基于动态温度预测模型的数据中心任务调度方法
CN104965756A (zh) * 2015-05-29 2015-10-07 华东师范大学 制程变异下温度感知的MPSoC任务分配及调度策略的评估方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
王鲁光: "多处理器片上系统中温度感知的任务调度算法研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
高锋: "基于温度感知的多核系统任务调度策略研究", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108845659A (zh) * 2018-01-30 2018-11-20 武汉大学 一种功耗优先的嵌入式处理器实时任务分配方法
CN108845659B (zh) * 2018-01-30 2021-06-04 武汉大学 一种功耗优先的嵌入式处理器实时任务分配方法
CN108647099A (zh) * 2018-05-18 2018-10-12 华东师范大学 一种受约束的面向吞吐量优化的异构MPSoC系统任务调度方法
CN111158916A (zh) * 2019-12-31 2020-05-15 中国人民解放军国防科技大学 一种堆叠式多处理器中热量优化的任务调度方法及装置
CN111158916B (zh) * 2019-12-31 2023-04-11 中国人民解放军国防科技大学 一种堆叠式多处理器中热量优化的任务调度方法及装置

Also Published As

Publication number Publication date
CN106293909B (zh) 2019-06-14

Similar Documents

Publication Publication Date Title
US8266393B2 (en) Coordination among multiple memory controllers
KR102533930B1 (ko) 멀티 배터리 장치에서의 부하 스케줄링
CN109343904B (zh) 一种基于Lyapunov优化的雾计算动态卸载方法
CN106293909A (zh) 一种对异构多核处理器温度‑调度长度感知的实时任务调度方法
US8578381B2 (en) Apparatus, system and method for rapid resource scheduling in a compute farm
TW201600965A (zh) 熱調適服務品質等級
CN107045456A (zh) 一种资源分配方法及资源管理器
CN103906257A (zh) 基于gpp的lte宽带通信系统计算资源调度器及其调度方法
Niu et al. Energy minimization for real-time systems with (m, k)-guarantee
CN110308977B (zh) 一种动态利用率更新混合关键偶发任务低能耗方法
EP3278220B1 (en) Power aware scheduling and power manager
CN111209104A (zh) 一种异构集群下Spark应用的能量感知调度方法
CN104239135A (zh) 有向无环图的可重构系统的混合任务调度方法
CN117377923A (zh) 一种功耗调节方法及装置
Terzopoulos et al. Bag-of-task scheduling on power-aware clusters using a dvfs-based mechanism
Yue et al. Cloud server job selection and scheduling in mobile computation offloading
CN106487889B (zh) 一种面向云数据中心的任务与数据联合部署方法
CN110308991B (zh) 一种基于随机任务的数据中心节能优化方法及系统
Dabbagh et al. Online assignment and placement of cloud task requests with heterogeneous requirements
CN105094989B (zh) 基于模糊聚类的自适应QoS粒度划分方法
CN114650195B (zh) Can总线上帧的撞帧率计算方法及can总线资源最小化的方法
Huang et al. Wena: Deterministic run-time task mapping for performance improvement in many-core embedded systems
WO2016197621A1 (zh) 一种调整服务器的频率的方法及装置
CN114726726B (zh) 一种提高can总线通信效率的方法
CN109189205A (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: 20190614