一种应对软错误的温度感知的实时任务调度方法

文档序号:10724229阅读:361来源:国知局
一种应对软错误的温度感知的实时任务调度方法
【专利摘要】本发明公开了一种应对软错误的温度感知的实时任务调度方法,包括以下步骤:为变量α在区间[0,1]之间随机地选取一个值;为每个任务选取最优的操作频率,使得以该操作频率执行任务时,能耗最低;确定任务的调度序列;求出系统的当前可靠性Rcurr;判断系统当前的可靠性Rcurr与给定的目标Rgoal之间的大小关系;当Rcurr≥Rgoal时,返回任务的调度序列,并按照确定的任务工作频率来调度任务;否则,采用二分查找法更新变量α的值,重新确定任务的工作频率以及任务的调度顺序。使用本发明提出的任务调度和频率选择策略能够使得系统在满足可靠性约束、峰值温度约束,以及时间约束的条件下,最小化系统的能耗。
【专利说明】
一种应对软错误的温度感知的实时任务调度方法
技术领域
[0001] 本发明涉及嵌入式实时系统中任务调度领域,尤其涉及一种在满足系统可靠性和 峰值温度保证的前提下,通过为任务选择最优的操作频率来尽可能减少系统能耗的方法。
【背景技术】
[0002] 随着处理器芯片体积的不断缩小,处理器的能耗密度也在以指数的形式增长。如 此快速增长的处理器功耗密度必然会导致能耗的增加以及芯片温度的升高。当芯片的温度 超过某个阈值时,系统可能会产生一些无法预估的功能错误和硬件错误,这样会使系统的 可靠性大大降低。因此,能量和温度管理已经成为一个非常重要的研究课题。
[0003] 动态电压和频率调节技术(DVFS)已经被广泛地用于对处理器进行能耗和温度管 理。通过动态地降低处理器的工作电压和操作频率来减少处理器的能耗,并降低处理器的 温度。已经要很多学者在DVFS技术的基础上,通过设计一些能量和温度有效的策略来对处 理器的能耗和温度进行管理。这些研究的关注点都是集中在减少处理器的能耗以及降低芯 片的温度。但是,他们都忽略掉了系统操作频率对系统可靠性的影响。Zhu等人在他们的研 究中发现,当处理器的操作频率降低时,系统发生短暂性错误的概率会增大,因此,会使系 统的可靠性降低。所以,在使用DVFS技术来减少能耗和降低温度时,需要能够容忍软错误的 发生,以此来保证系统的可靠性。
[0004] 在大部分有关容错系统的研究中,系统的松弛时间都是用于减少系统能耗和保证 系统的可靠性。但是,却忽略了系统的温度。而且,目前,几乎没有研究同时考虑到系统的能 耗、可靠性,以及温度。

【发明内容】

[0005] 本发明的目的是提供一种应对软错误的温度感知的实时任务调度方法,该方法在 保证实现系统可靠性要求,以及满足系统峰值温度和时间约束的条件下,通过为每个任务 选择合适的工作频率,以及确定任务的调度顺序的方式,来最小化系统的能耗。
[0006] 实现本发明目的的具体技术方案是:
[0007] -种应对软错误的温度感知的实时任务调度方法,包括以下步骤:
[0008] 步骤1:在区间[0,1 ]中为变量α随机地选取一个值;
[0009] 步骤2 :为每个任务选取最优的操作频率,使得以该操作频率执行任务时,能耗最 低;
[0010]步骤3:确定任务的调度序列;
[0011] 步骤4:使用蒙特卡洛模拟法求出系统的当前可靠性Rm
[0012] 步骤5:判断系统当前的可靠性R?rr是否大于或等于给定的目标Rgcial,如果满足,则 调度结束;若系统当前的可靠性小于给定的目标R g〇ai,更新变量α的值,并转步骤2。
[0013] 所述步骤2中的为每个任务选择最优的操作频率,具体包括:
[0014] 步骤Α1:初始化系统的松弛时间SreAD - ΣΓ=1巧,并选取任务集Γ中的第一个任 务为当前任务;其中,D是任务集中所有任务共孚的截止时间;ei是任务以最尚频率工作时, 最坏情况下的执行时间。
[0015] 步骤A2:计算出当前任务^以频率操作时,所对应的最优检查点个数Ν〇ρΜ;
[0016] 步骤A3:计算出当前任务以频率5操作时,所对应的能量有效因子SJfO ;
[0017]步骤A4:令6應=6办1)41呢=1;其中』應变量是用来保存当前最大的能量有效 因子,初始值设置表示当前任务以频率h操作时,所对应的能量有效因子; flag变量用来保存当前最大的能量有效因子所对应的频率等级。
[0018] 步骤A5:令变量1 = 2;
[0019] 步骤A6:计算出当前任务^以频率fi操作时,所对应的最优检查点个数Ν〇ρΜ;
[0020] 步骤Α7:计算出当前任务以频率fi操作时,所对应的能量有效因子SJfO ;
[0021] 步骤A8:判断条件31(丨1)>3_\是否成立;如果成立,则执行步骤A9;否则,执行步骤 A10;其中,δ_χ变量中始终保存当前最大的能量有效因子。
[0022]步骤Α9:令δΜΧ zSiaOJlagrl;其中,δΜΧ变量是用来保存当前最大的能量有效 因子;Si(f〇表示当前任务以频率fh操作时,所对应的能量有效因子;flag变量用来保存当 前最大的能量有效因子所对应的频率等级。
[0023]步骤A10:判断变量1是否满足条件1>L;如果满足,则执行步骤All;否则,更新1 = 1+1,并返回步骤A6;其中,L是最高频率fmax的等级,也就是说最多有L种离散的频率。
[0024] 步骤All:计算出Δ Si(flag)的值,并判断条件Δ Si(flagXSrem是否成立;如果成 立,贝|1执行步骤六12;否则,令;^1^)=;^ £?,并执行步骤415;其中,么5办]^)是表示当频率由 fmax降低到&1#时,所消耗的松弛时间;Sre*是系统的松弛时间。
[0025] 步骤 A12:令 f(Ti) = fflag;
[0026] 步骤A13:为任务L分配松弛时间Δ Si(f (τ〇);
[0027] 步骤A14:更新系统剩余的松弛时间Srem_= Δ Si(f(Ti));
[0028] 步骤A15:判断任务集中的任务是否已经都处理完,如果全部处理完成,则调度结 束;否则,选取下一个任务为当前任务,并返回步骤A2。
[0029] 所述步骤3确定任务的调度序列,具体包括:
[0030] 步骤B1:将任务集Γ中的所有任务都移到队列Qtgt中;
[0031]步骤B2:计算出第一个任务的稳定状态下温度Tstd;
[0032] 步骤B3:根据该任务的温度状态下温度对该任务进行冷热划分;如果该任务为热 任务,将该任务插入队列Qh〇t;如果为冷任务,则插入队列Q?ca;
[0033] 步骤Μ:判断队列Qtgt是否为空;如果为空,则执行步骤B5;否则,返回步骤B2;
[0034] 步骤B5:判断队列Qh〇t或Q-是否不为空;如果满足,则执行步骤B6;否则,执行步 骤B9;
[0035] 步骤B6:判断队列Qh〇t和Q-是否都不为空;如果满足,则执行步骤B7;否则,执行 步骤B8;
[0036]步骤B7:将队列Qhcit和的第一个任务取出,按照"热-冷"顺序配对成一个新任 务,并将该任务插入队列Qtgt;返回步骤B6;
[0037] 步骤B8:将非空队列Qh〇t或Q-中的任务全部插入队列Qtgt,并返回步骤B5;
[0038] 步骤B9:判断队列仏扣中是否只有一个任务;如果满足,则执行步骤B10;否则,返回 步骤B2;
[0039] 步骤BIO:将剩余的松弛时间Srem分配给队列Qtgt中的任务;
[0040] 步骤B11:将队列Qtgt的初始温度Tinit设置为环境温度T amb;
[00411步骤B12:计算出队列Qtgt的峰值温度Tpeak;
[0042]步骤B13:判断条件Tpe3ak彡Tmax是否满足;如果满足,则执行步骤B14;否则,执行步 骤B15;其中,Tpeak是系统的峰值温度;Tmax是给定的系统所能达到的温度的最高值。
[0043]步骤B14:返回队列Qtgt中的任务序列;
[0044]步骤B15:确定任务调度序列失败。
[0045] 所述步骤5更新变量α的值使用的是二分查找法。
[0046] 本发明通过为任务集中的每个任务选择合适的工作频率,以及确定任务的调度顺 序的方式来最小化系统的能耗。在实现最小化能耗的目标下,本发明同时能够保证实现系 统的可靠性要求,并且能够满足系统的峰值温度和时间约束。本发明对于嵌入式实时系统 具有很高的应用价值。
【附图说明】
[0047] 图1为本发明流程图;
[0048] 图2为任务为合成任务时,本发明所提出的算法与基准算法在降低峰值温度方面 的比较图;
[0049] 图3为任务为真实任务时,本发明所提出的算法与基准算法在降低峰值温度方面 的比较图。
【具体实施方式】
[0050] 结合以下具体实施例和附图,对本发明作进一步的详细说明。实施本发明的过程、 条件以及实验方法等,除以下专门提及的内容以外,均为本领域的普遍知识和公知常识,本 发明并没有特别限制的内容。
[0051] 本发明中所使用的处理器支持DVFS技术。每个处理器具有L种离散的操作频率 {负力,'",红},且满足0〈^11=负《2〈'"〈乜=^\=1.0。其中,^ 11表示处理器的最低操作频 率,fmax表示处理器的最高操作频率。处理器频率的切换只能发生在任务开始执行之前,或 者任务执行完成之后。因此,每个任务在其执行过程中,只能出现一种频率。令〇sw表示处理 器的频率切换开销。
[0052] 在本发明中所使用的任务模型中,任务集Γ由N个实时任务组成,即Γ ={τι, τ2,…,τΝ}。所有的任务共享一个截止时间D。同时,本发明中的任务之间是相互独立的,没有 依赖关系。令 ei表示任务^(1<1^^)以最大频率fmax执行时,最坏情况下的执行时间。因此 任务^以频率f(h)执行时,所产生的时间开销
,其中〇sw表示处理器的频率切 换开销。
[0053]本发明中所使用的容错模型为检查点模型,且所有检查点之间的距离是相等的。 每个检查点都会以安全的方式记录系统的状态,以便当系统发生错误时,能够回到检查点 处对系统的状态进行恢复。令h表示任务^以频率f(n)执行时,最坏情况下可能发生的瞬 时错误的次数,因此,该情况下,为任务^所设置的最优检查点个数为Ν〇ρ?>1,且
。:其中,〇c;k为设置一个检查点时所需的时间开销,OSW表不 处理器的频率切换开销,ei表示任务11(1<<?以最大频率fmax执行时,最坏情况下的执行 时间。令WtesM表示任务^以频率f(L)工作,且不发生任务错误时,所产生的包括检查点在内 的时间开销。Ψ best, i可以表不为:
。相似的,令Wwo:rst,i表 示任务^以频率f(h)工作,且任务执行过程中发生h次瞬时错误时,所产生的包括检查点 在内的时间开销。Ψ worst,i 可以表示为:
其中
1表示发生1^次瞬时错误时,为了恢复系统所产生的时间开销。 2kiOck表示保持ki个检查点和系统状态所需的时间开销。
[0054] 当Ν〇ρμ和f(Ti)固定时,Wbest,i和WwcirsM也就固定下来了。Ν〇 ρΜ由f(Ti)和ki决定, 又因为匕是固定的,所以,▽^*,1和*_^1最终由以11)决定。任务在执行过程中,由于发生 瞬时错误的不确定性,所以,任务的执行时间是不确定的,本发明中,引入变量α来适应错误 发生次数的不确定性,称之为错误适应因子。因此,任务的执行时间Ψ:可以表示为: X Ψ?^4+(1-α) X Wbest,i。当a为〇时,任务Ti的执行时间为Wbest,i;当a为1时,任务Ti的执 行时间为Wwcxrst,i。
[0055]
表示任务1,以频率fh)工作时,发生X次瞬时故障的概率。其中, % = Axe-m表示在频率&下的平均错误发生率,λ和ξ为常数。因此,任务τι以频率f( Tl)工作, 且最多能够容忍1^次故障时,任务能够达到的可靠性为
当错误发生的次数超过1^次时,任务执行失败。所以,整个系统的可靠性可以表示为 Rc^rr = Uli
[0056] 本发明所使用的功耗模型中,当任务^以频率f(L)工作时所产生的功耗= Ceff (τi) 3+Cif (τi) +C2f (Ti)。其中,Cef、Ci,以及C2都为常数。
[0057] 本发明所用的温度模型中,处理器在t时刻的温度为: 其中Tstd为任务稳定状态下的温度,且Tstd = PR+Tamb,Tint为初始温度,Tamb为环境温度。
[0058] 本发明的目的是通过为任务选择合适的操作频率,以及确定任务的执行顺序的方 式,在系统可靠性、峰值温度,以及时间约束的条件下最小化系统的能耗。
[0059] 本发明的目标函数可以表示为:
[0064] 其中,Etclt表示整个系统的能耗,Ei表示执行任务^所产生的能耗。Rg〇ai是系统所需 保证的可靠性。
[0065] 实施例
[0066] 任务集定为Γ ={>1,12,13},在标准频率€=1.〇时,任务的执行时间 61分别为1〇, 20,30,假定每个任务^能容忍的故障个数匕为1,任务集中任务的共同截止时间为D=1.4X g =1巧=84;处理器可用的频率集为f = {0.5,0.8,1.0},系统的可靠性目标Rgrai = 0.87。这 些参数作为调度方法的输入。
[0067] 步骤1:在区间[0,1 ]中为变量α随机地选取一个值,刚开始变量α = 0;
[0068] 步骤2:为每个任务选取最优的操作频率;
[0069] 首先初始化系统的松弛时间= D _ ei_,并选取任务集中的第一个任务为 当前任务。其中,D是所有任务的截止时间,ei是任务^^二^广^⑴最坏情况下的截止时 间。接下来便是为任务确定最优的操作频率。
[0070] 在为每个任务选择最优的工作频率时,使用遍历的方式,从处理器的最低的工作 频率开始遍历,以此遍历处理器的每个工作频率fr(r = 1,2,…,M)。
[0071] 在遍历到频率fr,计算出当前任务以频率fr操作时,所对应的最优检查点个数
,以及所对应的能量有效因子
当所有的频率都遍历完成以后,从中选择出能量有效因子Sdfbi))最大时所对应的频率f (Ti),记为fflag。
[0072] 接下来,判断八3办出8)=屯办出8)节与3_之间的关系,如果八3办1 &8)^^(?, 贝1J令当前任务Ti的最优操作频率为ffl ag。否则,令当前任务Ti的最优操作频率为fmax。
[0073] 确定完当前任务的最优操作频率以后,更新系统的松弛时间Srem = Srem- Δ Si (fflag) 〇
[0074] 接下来将任务集中的下一个任务选择为当前任务,同样,采用遍历的方式确定该 任务的最优操作频率。
[0075] 最终确定任务τι,τ2,τ3的操作频率分别为0.5,1.0,1.0。
[0076]步骤3:确定任务的调度序列;
[0077] 在确定任务调度序列的时候,使用的是热冷交错法。将所有的任务划分为冷任务 或者热任务,然后将任务按照热冷的方式进行配对,使其形成一个新任务,再对该新任务进 行冷热划分。按照这种热冷配对的方式,使最终只有一个合成的任务。这样,该合成的任务 中的组成部分就会形成一种任务调度顺序。下面给出具体的实施步骤。
[0078] 首先将任务集Γ中的所有任务都移到队列Qtgt中。然后,计算出第一个任务的温度 状态下温度Tstd = PR+Tamb。判断Tstd与Tmax之间的关系,如果KTmax,则当前任务为冷任务, 将其移到队列Q_i中;否则,该任务为热任务,将其移到队列Qh。冲。
[0079]当队列Qtgt中的任务都处理完以后,接下来进行冷热配对。
[0080]分别将队列仏。*和仏。。1中的第一个任务取出,按照"热-冷"的顺序进行配对,令配 对好的任务为一个新任务,并将该任务插入队列Qtgt。按照此方式,直到Qh〇t或者Qcw中有一 方为空时,停止。接下来,将Qh〇t或者Q_i中非空的队列中任务全部取出,插入到队列Qtg冲。 [0081 ]接下来,按照之前的方法来接着处理Qtgt、Qhot以及1。。1中的任务。直到,所有的任 务合成为一个任务时,结束。这时候,最终的合成任务就决定了任务的调度顺序。
[0082] 下面计算出最终的任务调度队列Qtgt的峰值温度Tpeak=max{T(t)},Vt e [0,0],其
在实施过程中,我们令Tint = Tamb。
[0083] 判断Tpe3ak与约束条件Tmax之间的关系,如果T pe3ak<Tmax,则返回确定好的任务调度序 列;否则,确定任务调度序列失败。
[0084] 返回任务调度序列为1^41241:3。
[0085] 步骤4:求出系统的当前可靠性Rcurr;
[0086] 屯财=Π?=ιβ?,其中,具体的细节参照 上面容错模型的介绍。
[0087] 算出系统当前可靠性Rcurr = 0.868。
[0088] 步骤5:判断系统当前的可靠性R?rr是否大于或等于给定的目标Rgral;
[0089] 这一步主要是判断按照当前确定的任务执行频率以及任务执行顺序来调度任务 时,系统所能达到的可靠性是否能够保证达到规定的系统可靠性R g〇ai。如果能够达到, 则调度就结束;否则,更新变量α的值,转步骤2,重新开始确定任务执行频率以及任务执行 顺序,在实施过程中,使用二分查找法来更新变量α的值。
[0090] 比较当前可靠性Rcurr和目标可靠性Rg〇ai,因为0.868〈0.87,不满足系统可靠性要 求。根据二分查找更新α的值,α更新为0.5,并转步骤2,重新开始确定任务执行频率以及任 务执行顺序,结果如下:
[0091 ]根据步骤2,确定任务τι,τ2,τ3的操作频率分别为1.0,1.0,1.0;
[0092] 根据步骤3,确定任务·^,τ2,τ3的执行顺序,g|3 η-τ2-τ3;
[0093] 根据步骤4,算出系统当前可靠性Rcurr = 0.879;
[0094] 根据步骤5,比较当前可靠性Rcurr和目标可靠性RgQai,因为0.879>0.87,满足系统 可靠性要求,调度结束。
[0095] 表1: α = 〇,Rgcial = 〇 · 87,Rcurr = 0 · 868,不满足可靠性约束
[0096]
[0097] 表2: α = 〇 · 5,Rg〇ai = 0 · 87,Rcurr = 0 · 879,满足可靠性约束
[0099]下面通过实验来验证本发明中所提出的策略在减少系统能耗和降低峰值温度方 面的效果。为了使实验数据更加充分,分两种环境来验证。第一种环境下,任务是合成的。第 二中环境下,任务是现实生活中任务。下面来分别验证。
[0100] 1)任务为合成任务
[0101] 实施过程中,假设处理器支持五种工作频率,即{〇. 5,0.65,0.8,0.9,1.0}。处理器 频率切换额度开销设置为l〇〇us。任务集中的每个任务最坏情况下的执行时间^随机地从 区间[1 0,40 ]内选择,单位为毫秒。任务的截止时间设置为β = 1.4 Ef=1印。本组实验中有四 个任务集,任务集的大小分别设置为5,10,20,40。检查点数据存储在DRAM中,检查点的大小 设置为5KB。检查点的时间开销和功耗分别设置为0.4ms和400mV。对于本发明中所使用的温 度模型,实施过程中,将热电阻R设置为1.83 °C /W,热电容C设置为0.0084J/°C。
[0102] 令Ebe3St表示一个任务集在最好情况下的能量消耗,也就是在该情况下,错误发生 次数为〇,即α = 0;令Ewcirst表示一个任务集在最坏情况下的能量消耗,也就是在该情况下,错 误发生次数达到最大值,即a = 1;令Epr_sed表示处于上述两种情况之间的能量消耗,即0〈α〈 1〇
[0103] 表3给出了四组任务集在上述三种情况下面对不同可靠性要求时,所产生的能耗 情况,
表示本发明与最坏情况下所产生的能耗之间的关 系。由表3可知,本发明与最坏情况下的能耗对比,能够节省能耗达到17%。尤其,当任务集 的大小为20,系统可靠性要求为0.7时,本发明与最坏情况下的能耗对比,节省的能耗达到 17.8%〇
[0104] 表3
[0106] 下面验证本发明在减少系统峰值温度方面的效果。将本发明分别与三个基准算法 N0TM、VSTM,以及SEQ进行比较。其中,Ν0ΤΜ算法不使用任何温度管理策略;VSTM算法使用贪 婪的DVFS来对温度进行管理;SEQ算法首先计算出任务序列的最优开始温度,然后利用任务 的冷热特性来管理温度。
[0107] 图2给出了四组任务集分别使用NOTM、VSTM、SEQ,以及本发明在降低处理器峰值温 度方面的实验结果。四组任务集Γ 1; Γ2, Γ 3, Γ 4中都包含40个任务,系统能够容忍的最大 的峰值温度Tmax设置为70°C。环境温度Tamb设置为40°C。在该组试验中,系统的可靠性目标设 置为 Rg〇ai = 0.99。
[0108] 由图2可以看出,使用本发明所达到的峰值温度要比使用N0TM、VSTM、SEQ最后达到 的峰值温度低很多。例如,对于任务集Γ 4,本发明与N 0 T Μ相比,能够使峰值温度降低 14.8%;与VSTM相比,降低了7.5%;与SEQ相比,降低了3.4%。
[0109] 2)任务为现实生活中真实的任务
[0110] 实施过程中,使用的处理器是ARM Cortex Α7处理器。该处理器支持五种工作频 率,最大工作频率为1.6GHz,最低工作频率为800MHz。本组试验中,将热电阻R设置为1.85 °C/W,热电容C设置为0.12J/°C。四个任务集总共包含15种真实的任务,如表4所示。这些任 务的时钟周期所处的范围为[4X10 7,6X108]。
[0111]表4
[0113] 首先比较本发明与TSVS、N0EM算法在减少系统能耗方面的效率。TSVS算法将电压 调节和任务执行顺序结合起来对系统能耗和温度进行管理。Ν0ΕΜ算法不使用任务策略来对 系统的能耗进行管理,使用该算法时,处理器始终以最高的频率工作。令分别表示 任务集使用NOEM、TSVS以及本发明所提出的算法时所产生的能耗。
[0114] 表5给出了在系统可靠性约束RgQal = 0.99下,四种任务集分别调用上述三种算法 所产生的能耗情况。根据任务执行期间最坏情况下可能出现的瞬时错误的最大次数,每个 任务集分三种情况去执行,即k=l,2,3,k表示任务最坏情况下可能出现的瞬时错误的最大 次数。
[0115]表5
[0118] 如表5所示,本发明所提出的算法与N0EM、TSVS算法在减少系统能耗方面相比,具 有更好的性能。与N0EM、TSVS算法相比,能够节省能耗分别达17%和7 %。例如,对于任务集 Γ 3,当k = 1时,与Ν0ΕΜ算法相比,本发明能够节省能耗17.5%。
[0119] 下面验证真实环境下,本发明在减少系统峰值温度方面的效果。将本发明分别与 三个基准算法N0TM、VSTM以及SEQ进行比较。
[0120]图3给出了四组任务集分别使用N0TM、VSTM、SEQ以及本发明在降低处理器峰值温 度方面的实验结果。系统能够容忍的最大的峰值温度Tmax设置为70°C。环境温度Tamb设置为 40°C。在该组试验中,系统的可靠性目标设置为R g〇al = 0.99。
[0121] 由图3所示,使用本发明所达到的峰值温度要比使用N0TM、VSTM、SEQ最后达到的峰 值温度低很多。例如,对于任务集Γ 2,本发明与Ν0ΤΜ相比,能够使峰值温度降低13 % ;与 VSTM相比,降低了6·2%;与SEQ相比,降低了2·3%。
[0122] 通过上述两种环境下的实验数据,能够很清楚的看出本发明无论是在减少系统能 耗方面,还是在降低系统峰值温度方面,都具有很好的性能。
【主权项】
1. 一种应对软错误的溫度感知的实时任务调度方法,其特征在于,该方法包括W下步 骤: 步骤1:在区间[0,1 ]中为变量α随机地选取一个值; 步骤2:为每个任务选取最优的操作频率,使得W该操作频率执行任务时,能耗最低; 步骤3:确定任务的调度序列; 步骤4 :使用蒙特卡洛模拟法求出系统的当前可靠性Rcurr ; 步骤5 :判断系统当前的可靠性Rcurr是否大于或等于给定的目标Rgoal,如果满足,则调度 结束;若系统当前的可靠性Rcurr小于给定的目标Rgoal,更新变量α的值,并转步骤2。2. 如权利要求1所述的方法,其特征在于,所述步骤2中的为每个任务选择最优的操作 频率,具体包括: 步骤Α1 :初始化系统的松弛时间Srem巧并选取任务集Γ中的第一个任务为 当前任务;其中,D是任务集中所有任务共享的截止时间;ei是任务W最高频率工作时,最坏 情况下的执行时间; 步骤A2:计算出当前任务Ti W频率f 1操作时,所对应的最优检查点个数Ndpm ; 步骤A3:计算出当前任务W频率fi操作时,所对应的能量有效因子Si(fi); 步骤A4:令Smax=Si(fl),flag=l;其中,Smax变量是用来保存当前最大的能量有效因子, 初始值设置为Si化);Si(fi)表示当前任务队频率fi操作时,所对应的能量有效因子;flag变 量用来保存当前最大的能量有效因子所对应的频率等级; 步骤A5:令变量1 = 2; 步骤A6:计算出当前任务Ti W频率f 1操作时,所对应的最优检查点个数Ndpm ; 步骤A7:计算出当前任务W频率f 1操作时,所对应的能量有效因子Si(f 1); 步骤A8:判断条件Si(fi)〉Smax是否成立;如果成立,则执行步骤A9;否则,执行步骤AlO; 其中,Smax变量中始终保存当前最大的能量有效因子; 步骤A9:令Smax=Si(fl),flag=l;其中,Smax变量是用来保存当前最大的能量有效因子; Si(fi)表示当前任务W频率fi操作时,所对应的能量有效因子;flag变量用来保存当前最大 的能量有效因子所对应的频率等级; 步骤A10:判断变量1是否满足条件l〉レ如果满足,则执行步骤All;否则,更新1 = 1 + 1, 并返回步骤A6 ;其中,L是最局频率fmax的等级,也就是说最多有L种罔散的频率; 步骤All:计算出Δ Si(flag)的值,并判断条件Δ Si(flag)《Srem是否成立;如果成立,贝リ 执行步骤A12;否则,令f(Ti) = fmax,并执行步骤A15;其中,Δ Si(flag)是表示当频率由fmax降 低到fflag时,所消耗的松弛时间;Srem是系统的松弛时间; 步骤A12:令f (Ti) =fflag; 步骤A13:为任务τι分配松弛时间ASi(f(Ti)); 步骤A14:更新系统剩余的松弛时间Srem-= A Si(f (Ti)); 步骤A15:判断任务集中的任务是否已经都处理完,如果全部处理完成,则调度结束;否 贝1J,选取下一个任务为当前任务,并返回步骤A2。3. 如权利要求1所述的方法,其特征在于,所述步骤3确定任务的调度序列,具体包括: 步骤B1:将任务集Γ中的所有任务都移到队列Qtgt中; 步骤B2:计算出第一个任务的稳定状态下溫度Tstd; 步骤B3:根据该任务的溫度状态下溫度对该任务进行冷热划分;如果该任务为热任务, 将该任务插入队列QhDt;如果为冷任务,则插入队列9。。。1; 步骤B4:判断队列Qtgt是否为空;如果为空,则执行步骤B5;否则,返回步骤B2; 步骤B5:判断队列Qhet或9。。。1是否不为空;如果满足,则执行步骤B6;否则,执行步骤B9; 步骤B6:判断队列Qhet和9。。。1是否都不为空;如果满足,则执行步骤B7 ;否则,执行步骤 B8; 步骤B7:将队列Qhet和9。。。1的第一个任务取出,按照"热-7令'顺序配对成一个新任务,并 将该任务插入队列Qtgt;返回步骤B6; 步骤B8:将非空队列Qhot或Qc。。冲的任务全部插入队列Qtgt,并返回步骤B5; 步骤B9:判断队列Qtgt中是否只有一个任务;如果满足,则执行步骤B10;否则,返回步骤 B2; 步骤B10 :将剩余的松弛时间Srem分配给队列Qtgt中的任务; 步骤B11 :将队列Qtgt的初始溫度Tinit设置为环境溫度Tamb ; 步骤B12 :计算出队列Qtgt的峰值溫度Tpeak ; 步骤B13 :判断条件Tpeak《Tmax是否满足;如果满足,则执行步骤B14 ;否则,执行步骤B15 ; 其中,Tpeak是系统的峰值溫度;Tmax是给定的系统所能达到的溫度的最高值; 步骤B14:返回队列Qtgt中的任务序列; 步骤B15:确定任务调度序列失败。4.如权利要求1所述的方法,其特征在于,所述步骤5更新变量α的值使用的是二分查找 法。
【文档编号】G06F1/32GK106095058SQ201610404578
【公开日】2016年11月9日
【申请日】2016年6月8日
【发明人】魏同权, 周俊龙
【申请人】华东师范大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1