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

技术编号:13965923 阅读:112 留言:0更新日期:2016-11-09 12:09
本发明专利技术公开了一种应对软错误的温度感知的实时任务调度方法,包括以下步骤:为变量α在区间[0,1]之间随机地选取一个值;为每个任务选取最优的操作频率,使得以该操作频率执行任务时,能耗最低;确定任务的调度序列;求出系统的当前可靠性Rcurr;判断系统当前的可靠性Rcurr与给定的目标Rgoal之间的大小关系;当Rcurr≥Rgoal时,返回任务的调度序列,并按照确定的任务工作频率来调度任务;否则,采用二分查找法更新变量α的值,重新确定任务的工作频率以及任务的调度顺序。使用本发明专利技术提出的任务调度和频率选择策略能够使得系统在满足可靠性约束、峰值温度约束,以及时间约束的条件下,最小化系统的能耗。

【技术实现步骤摘要】

本专利技术涉及嵌入式实时系统中任务调度领域,尤其涉及一种在满足系统可靠性和峰值温度保证的前提下,通过为任务选择最优的操作频率来尽可能减少系统能耗的方法。
技术介绍
随着处理器芯片体积的不断缩小,处理器的能耗密度也在以指数的形式增长。如此快速增长的处理器功耗密度必然会导致能耗的增加以及芯片温度的升高。当芯片的温度超过某个阈值时,系统可能会产生一些无法预估的功能错误和硬件错误,这样会使系统的可靠性大大降低。因此,能量和温度管理已经成为一个非常重要的研究课题。动态电压和频率调节技术(DVFS)已经被广泛地用于对处理器进行能耗和温度管理。通过动态地降低处理器的工作电压和操作频率来减少处理器的能耗,并降低处理器的温度。已经要很多学者在DVFS技术的基础上,通过设计一些能量和温度有效的策略来对处理器的能耗和温度进行管理。这些研究的关注点都是集中在减少处理器的能耗以及降低芯片的温度。但是,他们都忽略掉了系统操作频率对系统可靠性的影响。Zhu等人在他们的研究中发现,当处理器的操作频率降低时,系统发生短暂性错误的概率会增大,因此,会使系统的可靠性降低。所以,在使用DVFS技术来减少能耗和降低温度时,需要能够容忍软错误的发生,以此来保证系统的可靠性。在大部分有关容错系统的研究中,系统的松弛时间都是用于减少系统能耗和保证系统的可靠性。但是,却忽略了系统的温度。而且,目前,几乎没有研究同时考虑到系统的能耗、可靠性,以及温度。
技术实现思路
本专利技术的目的是提供一种应对软错误的温度感知的实时任务调度方法,该方法在保证实现系统可靠性要求,以及满足系统峰值温度和时间约束的条件下,通过为每个任务选择合适的工作频率,以及确定任务的调度顺序的方式,来最小化系统的能耗。实现本专利技术目的的具体技术方案是:一种应对软错误的温度感知的实时任务调度方法,包括以下步骤:步骤1:在区间[0,1]中为变量α随机地选取一个值;步骤2:为每个任务选取最优的操作频率,使得以该操作频率执行任务时,能耗最低;步骤3:确定任务的调度序列;步骤4:使用蒙特卡洛模拟法求出系统的当前可靠性Rcurr;步骤5:判断系统当前的可靠性Rcurr是否大于或等于给定的目标Rgoal,如果满足,则调度结束;若系统当前的可靠性Rcurr小于给定的目标Rgoal,更新变量α的值,并转步骤2。所述步骤2中的为每个任务选择最优的操作频率,具体包括:步骤A1:初始化系统的松弛时间Srem为并选取任务集Γ中的第一个任务为当前任务;其中,D是任务集中所有任务共享的截止时间;ei是任务以最高频率工作时,最坏情况下的执行时间。步骤A2:计算出当前任务τi以频率f1操作时,所对应的最优检查点个数Nopt,i;步骤A3:计算出当前任务以频率f1操作时,所对应的能量有效因子δi(f1);步骤A4:令δmax=δi(f1),flag=1;其中,δmax变量是用来保存当前最大的能量有效因子,初始值设置为δi(f1);δi(f1)表示当前任务以频率f1操作时,所对应的能量有效因子;flag变量用来保存当前最大的能量有效因子所对应的频率等级。步骤A5:令变量l=2;步骤A6:计算出当前任务τi以频率fl操作时,所对应的最优检查点个数Nopt,i;步骤A7:计算出当前任务以频率fl操作时,所对应的能量有效因子δi(fl);步骤A8:判断条件δi(fl)>δmax是否成立;如果成立,则执行步骤A9;否则,执行步骤A10;其中,δmax变量中始终保存当前最大的能量有效因子。步骤A9:令δmax=δi(fl),flag=l;其中,δmax变量是用来保存当前最大的能量有效因子;δi(fl)表示当前任务以频率fll操作时,所对应的能量有效因子;flag变量用来保存当前最大的能量有效因子所对应的频率等级。步骤A10:判断变量l是否满足条件l>L;如果满足,则执行步骤A11;否则,更新l=l+1,并返回步骤A6;其中,L是最高频率fmax的等级,也就是说最多有L种离散的频率。步骤A11:计算出ΔSi(flag)的值,并判断条件ΔSi(flag)≤Srem是否成立;如果成立,则执行步骤A12;否则,令f(τi)=fmax,并执行步骤A15;其中,ΔSi(flag)是表示当频率由fmax降低到fflag时,所消耗的松弛时间;Srem是系统的松弛时间。步骤A12:令f(τi)=fflag;步骤A13:为任务τi分配松弛时间ΔSi(f(τi));步骤A14:更新系统剩余的松弛时间Srem-=ΔSi(f(τi));步骤A15:判断任务集中的任务是否已经都处理完,如果全部处理完成,则调度结束;否则,选取下一个任务为当前任务,并返回步骤A2。所述步骤3确定任务的调度序列,具体包括:步骤B1:将任务集Γ中的所有任务都移到队列Qtgt中;步骤B2:计算出第一个任务的稳定状态下温度Tstd;步骤B3:根据该任务的温度状态下温度对该任务进行冷热划分;如果该任务为热任务,将该任务插入队列Qhot;如果为冷任务,则插入队列Qcool;步骤B4:判断队列Qtgt是否为空;如果为空,则执行步骤B5;否则,返回步骤B2;步骤B5:判断队列Qhot或Qcool是否不为空;如果满足,则执行步骤B6;否则,执行步骤B9;步骤B6:判断队列Qhot和Qcool是否都不为空;如果满足,则执行步骤B7;否则,执行步骤B8;步骤B7:将队列Qhot和Qcool的第一个任务取出,按照“热-冷”顺序配对成一个新任务,并将该任务插入队列Qtgt;返回步骤B6;步骤B8:将非空队列Qhot或Qcool中的任务全部插入队列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:确定任务调度序列失败。所述步骤5更新变量α的值使用的是二分查找法。本专利技术通过为任务集中的每个任务选择合适的工作频率,以及确定任务的调度顺序的方式来最小化系统的能耗。在实现最小化能耗的目标下,本专利技术同时能够保证实现系统的可靠性要求,并且能够满足系统的峰值温度和时间约束。本专利技术对于嵌入式实时系统具有很高的应用价值。附图说明图1为本专利技术流程图;图2为任务为合成任务时,本专利技术所提出的算法与基准算法在降低峰值温度方面的比较图;图3为任务为真实任务时,本专利技术所提出的算法与基准算法在降低峰值温度方面的比较图。具体实施方式结合以下具体实施例和附图,对本专利技术作进一步的详细说明。实施本专利技术的过程、条件以及实验方法等,除以下专门提及的内容以外,均为本领域的普遍知识和公知常识,本专利技术并没有特别限制的内容。本专利技术中所使用的处理器支持DVFS技术。每个处理器具有L种离散的操作频率{f1,f2,…,fL本文档来自技高网...

【技术保护点】
一种应对软错误的温度感知的实时任务调度方法,其特征在于,该方法包括以下步骤:步骤1:在区间[0,1]中为变量α随机地选取一个值;步骤2:为每个任务选取最优的操作频率,使得以该操作频率执行任务时,能耗最低;步骤3:确定任务的调度序列;步骤4:使用蒙特卡洛模拟法求出系统的当前可靠性Rcurr;步骤5:判断系统当前的可靠性Rcurr是否大于或等于给定的目标Rgoal,如果满足,则调度结束;若系统当前的可靠性Rcurr小于给定的目标Rgoal,更新变量α的值,并转步骤2。

【技术特征摘要】
1.一种应对软错误的温度感知的实时任务调度方法,其特征在于,该方法包括以下步骤:步骤1:在区间[0,1]中为变量α随机地选取一个值;步骤2:为每个任务选取最优的操作频率,使得以该操作频率执行任务时,能耗最低;步骤3:确定任务的调度序列;步骤4:使用蒙特卡洛模拟法求出系统的当前可靠性Rcurr;步骤5:判断系统当前的可靠性Rcurr是否大于或等于给定的目标Rgoal,如果满足,则调度结束;若系统当前的可靠性Rcurr小于给定的目标Rgoal,更新变量α的值,并转步骤2。2.如权利要求1所述的方法,其特征在于,所述步骤2中的为每个任务选择最优的操作频率,具体包括:步骤A1:初始化系统的松弛时间Srem为并选取任务集Γ中的第一个任务为当前任务;其中,D是任务集中所有任务共享的截止时间;ei是任务以最高频率工作时,最坏情况下的执行时间;步骤A2:计算出当前任务τi以频率f1操作时,所对应的最优检查点个数Nopt,i;步骤A3:计算出当前任务以频率f1操作时,所对应的能量有效因子δi(f1);步骤A4:令δmax=δi(f1),flag=1;其中,δmax变量是用来保存当前最大的能量有效因子,初始值设置为δi(f1);δi(f1)表示当前任务以频率f1操作时,所对应的能量有效因子;flag变量用来保存当前最大的能量有效因子所对应的频率等级;步骤A5:令变量l=2;步骤A6:计算出当前任务τi以频率fl操作时,所对应的最优检查点个数Nopt,i;步骤A7:计算出当前任务以频率fl操作时,所对应的能量有效因子δi(fl);步骤A8:判断条件δi(fl)>δmax是否成立;如果成立,则执行步骤A9;否则,执行步骤A10;其中,δmax变量中始终保存当前最大的能量有效因子;步骤A9:令δmax=δi(fl),flag=l;其中,δmax变量是用来保存当前最大的能量有效因子;δi(fl)表示当前任务以频率fl操作时,所对应的能量有效因子;flag变量用来保存当前最大的能量有效因子所对应的频率等级;步骤A10:判断变量l是否满足条件l>L;如果满足,则执行步骤A11;否则,更新l=l+1,并返回步骤A6;其中,L是最高频率fmax的等级,也就是说最多有L种离散的频率;步骤A11:计算出ΔSi(flag)的值,并判断条件ΔS...

【专利技术属性】
技术研发人员:魏同权周俊龙
申请(专利权)人:华东师范大学
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1