[发明专利]一种对异构多核处理器温度-调度长度感知的实时任务调度方法有效
申请号: | 201610608598.1 | 申请日: | 2016-07-29 |
公开(公告)号: | CN106293909B | 公开(公告)日: | 2019-06-14 |
发明(设计)人: | 魏同权;曹坤;周俊龙 | 申请(专利权)人: | 华东师范大学 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 上海蓝迪专利商标事务所(普通合伙) 31215 | 代理人: | 徐筱梅;张翔 |
地址: | 200241 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种对异构多核处理器温度‑调度长度感知的实时任务调度方法,包括以下步骤:读取系统默认的权重因子α;将任务队列里存储的任务分配到最优的处理器;对每个处理器任务队列里的任务选取最优频率;确定每个处理器任务队列里任务的执行顺序;对超过温度约束的任务进行切分;判断系统当前调度长度是否小于或等于给定的所有任务共享的截止时间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<Tpeak是否成立;若成立,转步骤A10;否则,转步骤A11;其中,Tpeak 是处理器的峰值温度;步骤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:对超过温度约束的任务进行切分结束,退出。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华东师范大学,未经华东师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610608598.1/,转载请声明来源钻瓜专利网。
- 上一篇:一种电机定子测温与加热器共用接线盒
- 下一篇:一种进程清理方法及移动终端