会员体验
专利管家(专利管理)
工作空间(专利管理)
风险监控(情报监控)
数据分析(专利分析)
侵权分析(诉讼无效)
联系我们
交流群
官方交流:
QQ群: 891211   
微信请扫码    >>>
现在联系顾问~
首页 / 专利库 / 电脑零配件 / 多核处理器 / 一种对异构多核处理器温度-调度长度感知的实时任务调度方法

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

阅读:1062发布:2021-01-05

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

1.一种对异构多核处理器温度-调度长度感知的实时任务调度方法,其特征在于,该方法包括以下步骤:步骤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为任务τhrad最坏情况下执行周期, 为处理器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

步骤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对每个处理器任务队列里的任务选取最优频率,具体包括:步骤B1:将标志位k赋值为1,即:k←1;

步骤B2:计算出第k个PEk的调度长度tf(PEk);

步骤B3:k←k+1;

步骤B4:判断k≤N是否成立,若成立,转步骤B2;否则,转步骤B5;其中,N为处理器的个数;

步骤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,ι-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确定每个处理器任务队列里的任务的执行顺序,具体包括:步骤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中Qk,h[i]存储的任务插入到目标队列Qk(2*i-1);

步骤C7:从热任务队列Qk,h中删除Qk,h[i];

步骤C8:将冷任务队列Qk,c中Qk,c[i]存储的任务插入到目标队列Qk(2*i);

步骤C9:从冷任务队列Qk,c中删除Qk,c[i];

步骤C10:更新任务标记位i,公式为:i←i+1;

步骤C11:判断i≤sizemi-是否成立,若成立,转步骤C6;否则,转步骤C12;

步骤C12:将剩余的热任务队列Qk,h或冷任务队列Qk,c中的任务插入到任务队列Qk中;

步骤C13:更新标志位k,公式为:k←k+1;

步骤C14:判断k≤N,若成立,转步骤C2;否则,转步骤C15;其中,N为处理器的个数;

步骤C15:确定每个处理器任务队列里的任务的执行顺序结束,退出;

所述步骤5为对超过温度约束的任务进行切分,具体包括:步骤D1:将标志位k赋值为1,即:k←1;

步骤D2:将任务标记位i赋值为1,即:i←1;

步骤D3:计算任务队列QK中QK(i)存储的任务的结束温度Tend,i;

步骤D4:判断Tend,i>Tmax是否成立,若成立,转步骤D5;否则,转步骤D10;其中,Tmax是最高温度限制;

步骤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;其中,N为处理器的个数;

步骤D14:对超过温度约束的任务进行切分结束,退出。

说明书全文

一种对异构多核处理器温度-调度长度感知的实时任务调度

方法

技术领域

[0001] 本发明涉及嵌入式实时系统中任务调度技术领域,尤其涉及一种在满足系统峰值温度保证的前提下,通过为任务选择最优的处理器、操作频率、执行顺序,减少系统调度长度的方法。

背景技术

[0002] 随着对计算机性能要求的日益提高,多核处理器已经逐步取代了传统的单核处理器,成为当代和下一代处理器的设计规范。多核处理器最大的优点在于能够对任务进行并行处理,因而缩短了多个任务总的执行时间,使得系统的效率显著提高。与此同时,随着处理器芯片体积的不断缩小,处理器的能耗密度也在以指数的形式增长。如此快速增长的处理器功耗密度必然会导致芯片温度的升高。当芯片的温度超过某个阈值时,系统可能会产生一些无法预估的功能错误和硬件错误,这样会使系统的可靠性大大降低。因此,在系统峰值温度限制条件下,最大程度地提高系统的效率,即最小化任务总的完成时间(调度长度),已经成为一个非常重要的研究课题。
[0003] 动态热量管理技术(DTM)已经被广泛地用于对处理器进行温度管理。它主要包括动态电压和频率调节(DVFS)、调度优先级自适应、任务迁移等温度控制方法。很多学者在DTM技术的基础上,设计了一些温度感知的策略来对处理器的温度进行管理。这些研究的关注点大都是集中在对同构多核处理器的温度控制。但是,Hyari在他的研究中发现,异构多核处理器的计算性能明显优于同构多核处理器。目前,几乎没有对异构多核处理器的研究同时考虑到温度控制和最小化调度长度。因此,迫切需要对异构多核处理器进行温度控制研究,充分发挥异构多核处理器的优越性,最大限度地提高系统的性能,即在温度约束条件下,最小化系统调度长度。

发明内容

[0004] 本发明的目的是提供一种对异构多核处理器温度-调度长度感知的实时任务调度方法,该方法在满足系统峰值温度和时间约束的条件下,通过为每个任务选择最优的处理器、工作频率、执行顺序,来最小化调度长度。
[0005] 实现本发明目的的具体技术方案是:
[0006] 一种对异构多核处理器温度-调度长度感知的实时任务调度方法,包括以下步骤:
[0007] 步骤1:读取系统默认的权重因子α;
[0008] 步骤2:将任务队列里存储的任务分配到最优的处理器;
[0009] 步骤3:对每个处理器任务队列里的任务选取最优频率;
[0010] 步骤4:确定每个处理器任务队列里的任务的执行顺序;
[0011] 步骤5:对超过温度约束的任务进行切分;
[0012] 步骤6:判断系统当前调度长度是否小于或等于给定的所有任务共享的截止时间D,如果满足,任务执行,调度结束;如果不满足,返回调度失败,任务不能执行,调度结束。
[0013] 所述步骤2中的将任务队列里存储的任务分配到最优的处理器,具体包括:
[0014] 步骤A1:初始化L1=L2=…=Lk=…=LN;其中,Lk为处理器PEk上任务指令的条数,N为处理器的个数。
[0015] 步骤A2:从任务队列Qglobal取出队头任务τhead;
[0016] 步骤A3:将标志位k赋值为1,即:k←1;
[0017] 步骤A4:假设τhead分配到PEk,计算出处理器PEk以最大频率执行τhead后的调度长度其中,WChead为任务τhead最坏情况下执行周期, 为处理器PEk的处于最大活性模式 下的频率。
[0018] 步骤A5:计算分配到除PEk外,τhead在其他处理器的时间;
[0019] 步骤A6:计算出N个处理器调度长度的和tsum=(t1+t2+…+tN);
[0020] 步骤A7:计算出在只考虑调度长度下,τhead分配到处理器PEk的概率λk,w=1-tk/tsum;
[0021] 步骤A8:计算τhead以最大频率在处理器PEk上执行后,结束时的温度Tend,k;
[0022] 步骤A9:判断Tend,k<Tpeak是否成立。若成立,转步骤A10;否则,转步骤A11。
[0023] 步骤A10:利用公式λk,t=1-Tend,k/Tpeak计算出只考虑温度条件下分配τhead到PEk的概率λk,t;
[0024] 步骤A11:将0赋值给λk,t,即λk,t=0;
[0025] 步骤A12:计算在考虑温度和调度长度下,τhead分配到PEk的概率,计算公式为:λk=α*λk,t+(1-α)*λk,w;
[0026] 步骤A13:更新k,公式为:k←k+1;
[0027] 步骤A14:判断k≤N是否成立,若成立,转步骤A4;否则,转步骤A15;
[0028] 步骤A15:从λ1至λN中选取最大值,并将其对应的处理器编号赋值给flag;
[0029] 步骤A16:将τhead分配给处理器PEflag,将其插入到PEflag任务存储队列Qflag;
[0030] 步骤A17:将τhead从Qgtobal中删除,更新队头任务;
[0031] 步骤A18:更新Lflag=Lflag+WChead;
[0032] 步骤A19:判断Qglobal是否为空,不为空,转步骤A2;否则,转步骤A20;
[0033] 步骤A20:所有任务分配完成,退出。
[0034] 所述步骤3确定任务的最优频率,具体包括:
[0035] 步骤B1:将k赋值为1,即:k←1;
[0036] 步骤B2:计算出PEk的调度长度tf(PEk);
[0037] 步骤B3:k←k+1;
[0038] 步骤B4:判断k≤N是否成立,若成立,转步骤B2;否则,转步骤B5;
[0039] 步骤B5:计算N个调度长度的最大值,将其赋值给tf,即:
[0040] tf=max(tf(PE1),tf(PE2),...,tf(PEN));
[0041] 步骤B6:将k重新赋值为1,即:k←1;
[0042] 步骤B7:计算出处理器PEk可用的松弛时间slk,公式为:slk=tf-tf(PEk);
[0043] 步骤B8:从Qk中取出队头任务τhead;
[0044] 步骤B9:计算τhead稳定状态下温度Tstd;
[0045] 步骤B10:根据Tstd对τhead进行冷热划分;如果该任务为热任务,将该任务插入队列Qk,h;如果为冷任务,则插入队列Qk,c;
[0046] 步骤B11:将τhead从Qk中删除,更新队头任务τhead;
[0047] 步骤B12:判断Qk是否为空,若不为空,转步骤B9;否则,转步骤B13;
[0048] 步骤B13:将所有在Qk,c中的冷任务频率设为PEk的最大频率
[0049] 步骤B14:对Qk,h中的热任务按照稳定状态下温度降序排序;
[0050] 步骤B15:将l赋值为处理器PEk的最大活性模式 即:
[0051] 步骤B16:将i赋值为1,即:i←1;
[0052] 步骤B17:判断slk>0是否成立,若成立,转步骤B18,否则,转步骤B27;步骤B18:对在Qk,h中的任务τi,判断 是否成立,若成立,转步骤B19;否则,转步骤B25;
[0053] 步骤B19:将τi的频率设置为Fk,l-1;
[0054] 步骤B20:更新slk,公式为:
[0055] 步骤B21:更新l,公式为:l=l-1;
[0056] 步骤B22:判断l==1是否成立,如果成立,转步骤B23;否则,转步骤17;
[0057] 步骤B23:更新i,公式为:i←i+1;
[0058] 步骤B24:判断i≤sizeof(Qk,h)是否成立,若成立,转步骤B17;否则,转步骤B25;其中,sizeof(Qk,h)为Qk,h中的任务个数。
[0059] 步骤B25:将slk作为空任务插入到Qk,c;
[0060] 步骤B26:更新Qk,h与Qk,c;
[0061] 步骤B27:更新k,公式为:k←k+1;
[0062] 步骤B28:判断k≤N,若成立,转步骤B7;否则,转步骤B29;
[0063] 步骤B29:确定任务的最优频率结束,退出。
[0064] 所述步骤4确定每个处理器任务队列里的任务的执行顺序,具体包括:
[0065] 步骤C1:将k赋值为1,即:k←1;
[0066] 步骤C2:对Qk,h中的热任务按照稳定状态下温度降序排序;
[0067] 步骤C3:对Qk,c中的冷任务按照稳定状态下温度升序排序;
[0068] 步骤C4:将Qk,h和Qk,c中任务个数最小值赋值给sizemin,公式为:
[0069] sizemin=min(sizeof(Qk,h),sizeof(Qk,c));
[0070] 步骤C5:将i赋值为1,即:i←1;
[0071] 步骤C6:将Qk,h[i]插入到目标队列Qk(2*i-1);
[0072] 步骤C7:从Qk,h中删除Qk,h[i];
[0073] 步骤C8:将Qk,c[i]插入到目标队列Qk(2*i);
[0074] 步骤C9:从Qk,c中删除Qk,c[i];
[0075] 步骤C10:更新i,公式为:i←i+1;
[0076] 步骤C11:判断i≤sizemin是否成立,若成立,转步骤C6;否则,转步骤C12;
[0077] 步骤C12:将剩余的Qk,h或Qk,c中的任务插入到Qk中;
[0078] 步骤C13:更新k,公式为:k←k+1;
[0079] 步骤C14:判断k≤N,若成立,转步骤C2;否则,转步骤C15;
[0080] 步骤C15:确定每个处理器任务队列里的任务的执行顺序结束,退出。
[0081] 所述步骤5为对超过温度约束的任务进行切分,具体包括:
[0082] 步骤D1:将k赋值为1,即:k←1;
[0083] 步骤D2:将i赋值为1,即:i←1;
[0084] 步骤D3:计算任务QK(i)的结束温度Tend,i;
[0085] 步骤D4:判断Tend,i>Tmax是否成立,若成立,转步骤D5;否则,转步骤D10;
[0086] 步骤D5:用上下文转换开销tsw,i初始化最优空闲时间 即:
[0087] 步骤D6:计算插入的最优空闲时间的结束温度
[0088] 步骤D7:计算在活性模式下,子任务的执行时间tactive,i;
[0089] 步骤D8:计算最优的子任务个数 公式为: 其中,fi为任务QK,h(i)的频率。
[0090] 步骤D9:计算出最优空闲时间 公式为: 其中,Tinit,i为任务QK(i)执行时的初始温度,Rk和Ck分别为处理器PEk热阻和热容。
[0091] 步骤D10:更新i,公式为:i←i+1;
[0092] 步骤D11:判断i≤sizeof(QK,h)是否成立,若成立,转步骤D3;否则,转步骤D12;
[0093] 步骤D12:更新k,公式为:k←k+1;
[0094] 步骤D13:判断k≤N,若成立,转步骤D2;否则,转步骤D14:
[0095] 步骤D14:对超过温度约束的任务进行切分结束,退出。
[0096] 本发明通过为任务集中的每个任务选择合适的处理器、工作频率,以及确定任务的调度顺序,对超过温度限制的任务进行切分的方式来实现在温度约束条件下最小化系统的调度长度。本发明对于嵌入式实时系统具有很高的应用价值。

附图说明

[0097] 图1为本发明流程图;
[0098] 图2为在α=0.3条件下,本发明所提出的算法与基准算法在降低调度长度方面的比较图;
[0099] 图3为在α=0.8条件下,本发明所提出的算法与基准算法在降低调度长度方面的比较图;
[0100] 图4为在α=0.3条件下,本发明所提出的算法与基准算法在降低峰值温度方面的比较图;
[0101] 图5为在α=0.8条件下,本发明所提出的算法与基准算法在降低峰值温度方面的比较图。

具体实施方式

[0102] 结合以下具体实施例和附图,对本发明作进一步的详细说明。实施本发明的过程、条件以及实验方法等,除以下专门提及的内容以外,均为本领域的普遍知识和公知常识,本发明并没有特别限制的内容。
[0103] 本发明中所使用的处理器支持DVFS技术。每个处理器具有L种离散的操作频率{f1,f2,…,fL},且满足fmin=f1<f2<…<fL=fmax。其中,fmin表示处理器的最低操作频率,fmax表示处理器的最高操作频率。处理器频率的切换只能发生在任务开始执行之前,或者任务执行完成之后。因此,每个任务在其执行过程中,只能出现一种频率。
[0104] 在本发明中所使用的任务模型中,任务集Γ由γ个实时任务组成,即Γ={τ1,τ2,…,τγ}。所有的任务共享一个截止时间D。同时,本发明中的任务之间是相互独立的,没有依赖关系。
[0105] 本发明所用的温度模型中,处理器在t时刻的温度为:其中Tstd为任务稳定状态下的温度,且Tstd=PR+Tamb,Tint为初始温度,Tamb为环境温度,R和C分别为处理器的热阻和热容。
[0106] 本发明的目的是通过为任务选择合适的处理器和操作频率,并确定任务的执行顺序的方式,以及对超过温度约束的任务进行切分,在峰值温度和时间约束的条件下最小化系统的调度长度。
[0107] 本发明的目标函数可以表示为:
[0108] 最小化:
[0109] 约束条件:Tpeak≤Tmax
[0110] tf≤D
[0111] 其中,tf(PEk)为处理器PEk的调度长度,Tmax是最高温度限制,Tpeak是处理器的峰值温度,D为所有任务共享的截止时间。
[0112] 实施例:
[0113] 任务集定为Γ={τ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。这些参数作为算法(调度方法)的输入。
[0114] 步骤1:读取权重因子α值,假设系统默认值为α=0.8;
[0115] 步骤2:将任务队列里存储的任务分配到最优的处理器;
[0116] 初始化时,任务队列Qglobal存放的任务为{τ1,τ2,τ3,τ4},其中,τ1是队头任务。
[0117] 首先计算只考虑调度长度下任务分配到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。
[0118] 步骤3:对每个处理器的任务队列里的任务选取最优频率:
[0119] 完成步骤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。
[0120] 步骤4:确定每个处理器任务队列里的任务的执行顺序;
[0121] 由于任务τ1和τ3的操作频率改变,所以任务的稳定状态下的温度也随着改变。首先,根据公式Tstd=PR+Tamb,重新计算任务τ1和τ3稳定状态下温度;其次,将τ1和τ3按照稳定状态下温度降序排序;最后,按照“热-冷”任务的顺序确定处理器PE1任务执行队列Q1={τ1,τ5,τ3}。同理,处理器PE1任务执行队列Q2={τ4,τ2}。
[0122] 步骤5:对超过温度约束的任务进行切分;
[0123] 首先,对处理器PE1的任务队列Q1进行结束温度计算。τ1在执行后,它的结束温度Tend=27.3538。由于Tend<Tmax,所以不需要对任务τ1进行切分。空任务τ5在执行后,它的结束温度Tend=27.2922。τ3在执行后,它的结束温度Tend=29.8085。由于Tend<Tmax,所以不需要对任务τ3进行切分。
[0124] 其次,对处理器PE1的任务队列Q2进行结束温度计算。τ4在执行后,它的结束温度Tend=27.6135。由于Tend<Tmax,所以不需要对任务τ4进行切分。τ2在执行后,它的结束温度Tend=29.0648。由于Tend<Tmax,所以不需要对任务τ2进行切分。
[0125] 步骤6:判断系统当前调度长度是否小于或等于给定的所有任务共享的截止时间D,如果满足,则调度结束;如果不满足,返回调度失败,调度结束。
[0126] 通过步骤5,计算得到系统实际的调度长度tf=4.6512。任务共享的截止时间D作为算法的输入已经给出,为5.1737。由于tf<D,所以此次调度满足系统要求,任务可以按照以上计算出的执行顺序进行执行,任务调度结束。
[0127] 下面通过实验来验证本发明在减少系统能耗和降低峰值温度方面的效果。为了使实验数据更加充分,任务取现实生活中任务。
[0128] 实施过程中,异构多核处理器有四个,频率设置参照ARM Cortex A7处理器,最大工作频率为2.5GHz。四个处理器的参数设置如表一所示。
[0129] 表1
[0130]处理器 频率(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
[0131] 任务的截止时间设置为 其中,sizeof(Γ)为集合Γ中任务的个数,favg为异构多核处理器的平均频率,N为处理器的个数。任务的异构性用活性因子来表现,取值范围[0,4,1]。本组实验中有六个任务集,六个任务集包含的真实的任务类型
7 8
和任务总数,如表2所示。这些任务的时钟周期所处的范围为[4×10,6×10]。
[0132] 表2
[0133]
[0134] 首先比较本发明与RATM、α-VSTM算法在减少调度长度方面的提升。
[0135] RATM算法将任务集合中的任务随机分配到处理器。在完成“任务-处理器”的分配后,RATM在温度控制方案和本发明相同,即采用任务降频、任务“热-冷”排序和任务切分。α-VSTM算法采用本发明提出的“任务-处理器”分配方案,但温度控制采用DVFS技术。
[0136] 图2给出了在α=0.3的条件下,六组组任务集分别使用本发明与RATM、α-VSTM在降低调度长度(单位:秒)方面的实验结果。系统能够容忍的最大的峰值温度Tmax设置为50℃。环境温度Tamb设置为25℃。由图2所示,使用本发明得到的调度长度要比使用RATM、α-VSTM取得的调度长度低很多。例如,对于任务集Γ6,本发明与RATM相比,能够使调度长度降低
21.62%;与α-VSTM相比,降低了19.63%。
[0137] 图3给出了在α=0.8的条件下,六组组任务集分别使用本发明与RATM、α-VSTM在降低调度长度(单位:秒)方面的实验结果。系统能够容忍的最大的峰值温度Tmax设置为50℃。环境温度Tamb设置为25℃。由图3所示,使用本发明得到的调度长度要比使用RATM、α-VSTM取得的调度长度低很多。例如,对于任务集Γ6,本发明与RATM相比,能够使调度长度降低
15.31%;与α-VSTM相比,降低了19.56%。
[0138] 图4给出了在α=0.3的条件下,六组组任务集分别使用本发明与RATM、α-VSTM在降低峰值温度(单位:℃)方面的实验结果。系统能够容忍的最大的峰值温度Tmax设置为50℃。环境温度Tamb设置为25℃。由图4所示,使用本发明得到的峰值温度明显低于使用RATM、α-VSTM取得的峰值温度。例如,对于任务集Γ6,本发明与RATM相比,能够使峰值温度降低
1.89%;与α-VSTM相比,降低了2.19%。
[0139] 图5给出了在α=0.8的条件下,六组组任务集分别使用本发明与RATM、α-VSTM在降低峰值温度(单位:℃)方面的实验结果。系统能够容忍的最大的峰值温度Tmax设置为50℃。环境温度Tamb设置为25℃。由图5所示,使用本发明得到的峰值温度明显低于使用RATM、α-VSTM取得的峰值温度。例如,对于任务集Γ6,本发明与RATM相比,能够使峰值温度降低
4.38%;与α-VSTM相比,降低了4.49%。
[0140] 通过上述的实验数据,能够很清楚的看出本发明无论是在减少调度长度方面,还是在降低系统峰值温度方面,都具有很好的性能。
高效检索全球专利

IPRDB是专利检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,专利查询、专利分析

电话:13651749426

侵权分析

IPRDB的侵权分析产品是IPRDB结合多位一线专利维权律师和专利侵权分析师的智慧,开发出来的一款特色产品,也是市面上唯一一款帮助企业研发人员、科研工作者、专利律师、专利分析师快速定位侵权分析的产品,极大的减少了用户重复工作量,提升工作效率,降低无效或侵权分析的准入门槛。

立即试用