一种固定优先级IO设备能耗管理方法与流程

文档序号:12824031阅读:333来源:国知局
一种固定优先级IO设备能耗管理方法与流程

本发明涉及嵌入式系统io设备能耗管理技术领域,更具体地说,涉及一种固定优先级io设备能耗管理方法。



背景技术:

嵌入式系统在航空航天、通信、电力、机械制造等领域有着广泛的应用,实时性和可靠性是其基本特征。

目前大多数嵌入式系统都是采用电池供电,而电池的容量和体积是有限的,导致嵌入式设备的续航能力有限。随着嵌入式系统功能的逐渐增多,处理器技术的快速发展,嵌入式系统的能耗问题越来越凸显。因此,能耗问题成为制约嵌入式系统市场竞争力的一个重要因素。

动态功耗管理(dpm)技术是目前降低嵌入式系统能耗的常用技术。嵌入式系统的硬件通常由cpu、内存、io设备等组成,目前针对嵌入式系统能耗的研究主要是针对cpu,也就是通过动态调节处理器速度,而降低系统能耗。而针对io设备的研究比较少,仅有少数的研究主要针对相互独立的周期任务模型,且利用动态优先级调度策略任务,这些研究不能够适用于采用固定优先级调度任务的系统。

此外,在嵌入式系统,周期任务因为共享资源而存在相互依赖的关系。



技术实现要素:

本发明的目的在于克服现有技术的不足,提供一种考虑资源共享的周期任务模型,通过计算设备空闲时间,利用dpm技术降低设备能耗,能够适用于固定优先级系统的固定优先级io设备能耗管理方法。

本发明的技术方案如下:

一种固定优先级io设备能耗管理方法,步骤如下:

1)利用单调速率双优先级策略调度任务;

2)计算来自任务实例ti,j预算的空闲时间st(ti,j,t);

3)计算来自任务实例ti,j最近满足条件时间点的空闲时间lt(ti,j,t);

4)计算设备λk的设备空闲时间ds(λk,t);

5)当设备λk处于活跃状态,且其设备空闲时间ds(λk,t)大于设备临界时间b(λk),将设备λk切换到休眠状态,且设置其激活时间up(λk);

6)当设备处于休眠状态,且当前时间等于设备的激活时间up(λk),将设备切换到活跃状态。

作为优选,步骤1)具体为:

将所有就绪的资源受限周期任务按照其周期进行排序;

任务ti的初始优先级ipi按照单调速率策略分配,任务ti的周期越小,其初始优先级ipi就越高;任务ti的周期越大,其初始优先级ipi就越低;任务ti的执行优先级epi开始时设置为其初始优先级ipi;在任务ti开始执行时修改其执行优先级epi;

任务ti始终按照其执行优先级epi进行调度,在任务执行时,其执行优先级epi设置为共享同一资源任务的初始优先级中的最大值。

作为优选,步骤2)中,计算来自任务实例ti,j预算的空闲时间st(ti,j,t)的公式为:

st(ti,j,t)=art(ti,j,t)-rem(ti,j,t);

其中,art(ti,j,t)表示在当前时间t(t≥0),实时队列中任务实例ti,j以及初始优先级比其高的任务实例的执行时间之和,rem(ti,j,t)是任务实例ti,j在当前时间t最坏情况下剩余执行时间;

art(ti,j,t)的计算公式为:

其中,rti表示实时队列中第i的元素的初始执行时间,pr(rti)表示实时队列中第i的元素的初始优先级,rt(ti,j)表示任务实例ti,j的初始执行时间,pr(ti,j)表示任务实例ti,j的初始优先级。

作为优选,实时队列的更新规则如下:

释放任务实例ti,j,按照执行优先级从高到低的顺序使用初始执行时间将任务实例插入到实时队列中;任务实例ti,j的初始执行时间只能被初始优先级比其高且在其之前释放的任务实例使用,设置任务实例的最坏情况下剩余执行时间rem(ti,j,t)等于最坏情况下的执行时间w(ti);

当任务实例ti,j无阻塞地执行e个单位时间时,实时队列队头元素的初始执行时间进行相应的减少,当其队头元素的初始执行时间为0时,将其从实时队列中移除;实时队列的下一个元素循环上述过程,直到所执行的e个单位时间得到反映为止;并且,任务最坏情况下的剩余执行时间也做相应的减少rem(ti,j,t)=rem(ti,j,t)-e;当rem(ti,j,t)=0时,表示任务实例ti,j完成执行;

当任务实例ti,j执行时阻塞其他初始优先级更高的任务实例tk,l,提高任务实例ti,j的执行优先级,此时任务实例ti,j的初始执行时间被消耗;

当处理器处于空闲状态时,实时队列中队头元素的初始时间被消耗,当队头元素的初始执行时间被消耗殆尽,将其从实时队列移除,下个元素循环上述过程,直到此时的处理器空闲时间得到反映为止。

作为优选,当任务实例ti,j在执行过程中阻塞初始优先级更高的任务实例的执行,此时的来自任务实例ti,j预算的空闲时间st(ti,j,t)的计算公式为:

st(ti,j,t)=min(st(tx,y,t))(ipi<ipx<epi);

其中,任务实例tx,y的初始优先级比任务实例ti,j的初始优先级高,st(tx,y,t)表示来自任务实例tx,y预算的空闲时间,ipi表示任务ti的初始优先级,ipx表示任务tx的初始优先级,epi表示任务ti的执行优先级。

作为优选,步骤3)中,计算来自任务实例ti,j最近满足条件时间点的空闲时间lt(ti,j,t)的公式为:

lt(ti,j,t)=r(ti,j)+init_rt(ti,j)-w(ti,j)-t;

其中,t表示当前时间,r(ti,j)是任务实例ti,j的释放时间,init_rt(ti,j)是分配给任务实例ti,j的初始执行时间,w(ti,j)是任务实例ti,j的最坏情况下执行时间;

任务实例ti,j的初始执行时间init_rt(ti,j)的计算公式为:

其中,i和n是正整数,init_rt(ti,j)=init_rt(ti)、w(ti,j)=w(ti)、init_rt(ti)是任务ti的初始执行时间,w(ti)是任务ti最坏情况下执行时间,init_rt(tn)是任务tn的初始执行时间,pn是任务tn的周期,pi是任务ti的周期,llb(n)是单调速率策略调度周期任务的利用率上界,其值为

作为优选,步骤4)中,计算设备λk的设备空闲时间ds(λk,t)的公式为:

ds(λk,t)=min(d(curins(ti),t),t);

其中,d(curins(ti),t)表示设备当前可以利用的空闲时间,curins(ti)表示当前的任务实例,t表示当前时间;

d(curins(ti),t)的计算公式为:

d(curins(ti),t)=max(st(ti,j,t),lt(ti,j,t));

其中,st(ti,j,t)是来自任务实例ti,j预算的空闲时间,lt(ti,j,t)是来自任务实例ti,j最近满足条件时间点的空闲时间。

作为优选,步骤5)中,设备激活时间的计算公式为:

其中,t表示当前时间,ds(λk,t)表示设备λk的设备空闲时间,表示设备λk从休眠状态切换到活跃状态的时间开销;

设备λk的临界时间b(λk)的计算公式为:

其中,为设备λk状态转化的时间开销,为设备λk状态转化的能耗开销,为设备λk在活跃状态的功耗,为设备λk在休眠状态的功耗,max表示求最大值。

作为优选,步骤6)具体为:查找实时队列,找到处于休眠状态的设备,如果当前时间等于处于休眠状态设备的激活时间up(λk),则将设备切换到活跃状态。

本发明的有益效果如下:

本发明所述的方法能够确保资源受限周期任务在其截止期限内完成执行,且能够确保资源被互斥的使用;降低设备能耗,进而降低产品的生产成本,延长设备的使用时间,减少电池的更换周期。经实验验证,实施本发明所述的方法,能够比现有技术的方法节约大约33.28%能耗。

附图说明

图1是本发明的流程图;

图2为本发明的实施例归一化节约能耗与系统利用率的仿真实验结果图。

具体实施方式

以下结合附图及实施例对本发明进行进一步的详细说明。

为了解决现有技术存在的不足,本发明提供一种固定优先级io设备能耗管理方法,本发明考虑资源共享的周期任务模型,利用dpm技术降低设备能耗,能够适用于固定优先级系统。

如图1所示,本发明所述的方法包括如下步骤:

步骤1,利用单调速率双优先级策略调度任务。

将所有就绪的资源受限周期任务按照其周期进行排序;

任务ti的初始优先级ipi按照单调速率策略分配,任务ti的周期越小,其初始优先级ipi就越高;任务ti的周期越大,其初始优先级ipi就越低;任务ti的执行优先级epi开始时设置为其初始优先级ipi;在任务ti开始执行时修改其执行优先级epi;

任务ti始终按照其执行优先级epi进行调度,在任务执行时,其执行优先级epi设置为共享同一资源任务的初始优先级中的最大值。

步骤2,计算来自任务实例ti,j预算的空闲时间st(ti,j,t),具体计算公式为:

st(ti,j,t)=art(ti,j,t)-rem(ti,j,t);

其中,art(ti,j,t)表示在当前时间t(t≥0),实时队列中任务实例ti,j以及初始优先级比其高的任务实例的执行时间之和,rem(ti,j,t)是任务实例ti,j在当前时间t最坏情况下剩余执行时间;

art(ti,j,t)的计算公式为:

其中,rti表示实时队列中第i的元素的初始执行时间,pr(rti)表示实时队列中第i的元素的初始优先级,rt(ti,j)表示任务实例ti,j的初始执行时间,pr(ti,j)表示任务实例ti,j的初始优先级。

实时队列的更新规则如下:

1、释放任务实例ti,j,按照执行优先级从高到低的顺序使用初始执行时间将任务实例插入到实时队列中;任务实例ti,j的初始执行时间只能被初始优先级比其高且在其之前释放的任务实例使用,设置任务实例的最坏情况下剩余执行时间rem(ti,j,t)等于最坏情况下的执行时间w(ti)。

2、当任务实例ti,j无阻塞地执行e个单位时间时,实时队列队头元素的初始执行时间进行相应的减少,当其队头元素的初始执行时间为0时,将其从实时队列中移除;实时队列的下一个元素循环上述过程,直到所执行的e个单位时间得到反映为止;并且,任务最坏情况下的剩余执行时间也做相应的减少rem(ti,j,t)=rem(ti,j,t)-e;当rem(ti,j,t)=0时,表示任务实例ti,j完成执行。

3、当任务实例ti,j执行时阻塞其他初始优先级更高的任务实例tk,l,提高任务实例ti,j的执行优先级,此时任务实例ti,j的初始执行时间被消耗。

当任务实例ti,j在执行过程中阻塞初始优先级更高的任务实例的执行,此时的来自任务实例ti,j预算的空闲时间st(ti,j,t)的计算公式为:

st(ti,j,t)=min(st(tx,y,t))(ipi<ipx<epi);

其中,任务实例tx,y的初始优先级比任务实例ti,j的初始优先级高,st(tx,y,t)表示来自任务实例tx,y预算的空闲时间,ipi表示任务ti的初始优先级,ipx表示任务tx的初始优先级,epi表示任务ti的执行优先级。

4、当处理器处于空闲状态时,实时队列中队头元素的初始时间被消耗,当队头元素的初始执行时间被消耗殆尽,将其从实时队列移除,下个元素循环上述过程,直到此时的处理器空闲时间得到反映为止。

步骤3,计算来自任务实例ti,j最近满足条件时间点的空闲时间lt(ti,j,t),具体计算公式为:

lt(ti,j,t)=r(ti,j)+init_rt(ti,j)-w(ti,j)-t;

其中,t表示当前时间,r(ti,j)是任务实例ti,j的释放时间,init_rt(ti,j)是分配给任务实例ti,j的初始执行时间,w(ti,j)是任务实例ti,j的最坏情况下执行时间;

任务实例ti,j的初始执行时间init_rt(ti,j)的计算公式为:

其中,i和n是正整数,init_rt(ti,j)=init_rt(ti)、w(ti,j)=w(ti)、init_rt(ti)是任务ti的初始执行时间,w(ti)是任务ti最坏情况下执行时间,init_rt(tn)是任务tn的初始执行时间,pn是任务tn的周期,pi是任务ti的周期,llb(n)是单调速率策略调度周期任务的利用率上界,其值为

步骤4,计算设备λk的设备空闲时间ds(λk,t),具体公式为:

ds(λk,t)=min(d(curins(ti),t),t);

其中,d(curins(ti),t)表示设备当前可以利用的空闲时间,curins(ti)表示当前的任务实例,t表示当前时间;

d(curins(ti),t)的计算公式为:

d(curins(ti),t)=max(st(ti,j,t),lt(ti,j,t));

其中,st(ti,j,t)是来自任务实例ti,j预算的空闲时间,lt(ti,j,t)是来自任务实例ti,j最近满足条件时间点的空闲时间。

步骤5,当设备λk处于活跃状态,且其设备空闲时间ds(λk,t)大于设备临界时间b(λk),将设备λk切换到休眠状态,且设置其激活时间up(λk)。

设备激活时间的计算公式为:

其中,t表示当前时间,ds(λk,t)表示设备λk的设备空闲时间,表示设备λk从休眠状态切换到活跃状态的时间开销;

设备λk的临界时间b(λk)的计算公式为:

其中,为设备λk状态转化的时间开销,为设备λk状态转化的能耗开销,为设备λk在活跃状态的功耗,为设备λk在休眠状态的功耗,max表示求最大值。

步骤6,当设备处于休眠状态,且当前时间等于设备的激活时间up(λk),将设备切换到活跃状态。查找实时队列,找到处于休眠状态的设备,如果当前时间等于处于休眠状态设备的激活时间up(λk),则将设备切换到活跃状态。

本实施例中,每个周期任务集包含8个周期任务。在这8个任务中随机选取0~1个设备,设备在实验中被认为是共享资源。周期任务ti的最小释放间隔pi从[50,2000]ms中随机选择,其最坏情况下的执行时间(wcet)从区间[1,pi]ms中随机选择。实验中用到5个设备,设备分别标注为1,2,3,4,5。设备1,2,3,4,5处于活跃状态的功耗分别为0.19w,0.75w,1.3w,0.125w,0.225w;设备1,2,3,4,5处于休眠状态的功耗分别为0.085w,0.005w,0.1w,0.001w,0.02w;单位时间内设备1,2,3,4,5从休眠状态切换到活跃状态的能耗开销与其从活跃状态切换到休眠状态的能耗开销相等,且分别为0.125mj,0.1mj,0.5mj,0.05mj,0.1mj;设备1,2,3,4,5从休眠状态切换到活跃状态的时间开销与其从活跃状态切换到休眠状态的时间开销相等,且分别为10ms,40ms,12ms,1ms,2ms;考察系统利用率对归一化节约能耗的影响,系统利用率的范围为0.1到0.65,步长为0.05。

如图2所示,比较了两种方法。

一,最低限度(low_bound)方法,忽略设备状态转化的时间开销与能耗开销,在没有使用设备的时候,将设备切换到休眠状态。

二,本发明所述的方法,确保任务能够正确调度,通过计算设备空闲时间,以决定是否将设备切换到休眠状态。以low_bound在系统利用为0.1的节能比为基准进行归一化。

从图2可以看出,所有方法的归一化节约能耗都受到系统利用率的影响。当系统利用率增加时,所有方法归一化节约能耗下降。这是因为系统利用率增加,任务的执行时间变长,设备的使用时间增加,用来节约能耗的空闲时间减少。low_bound方法与本发明方法归一化节约能耗的差距减少,这是因为本发明方法可以利用更多的设备空闲时间降低设备能耗。本发明方法的节约能耗比值与low_bound相比大约少26.60%,但比没有使用节能技术的方法节约大约33.28%的能耗。

上述实施例仅是用来说明本发明,而并非用作对本发明的限定。只要是依据本发明的技术实质,对上述实施例进行变化、变型等都将落在本发明的权利要求的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1