嵌入式系统外部设备带有等待超时判断的节能切换方法

文档序号:6556475阅读:192来源:国知局
专利名称:嵌入式系统外部设备带有等待超时判断的节能切换方法
技术领域
本发明涉及嵌入式系统应用领域,能耗管理领域,外部设备管理领域,特别是涉及一种嵌入式系统外部设备带有等待超时判断的节能切换方法。
背景技术
从电子游戏机到数字电视机顶盒到各种数码家电,嵌入式系统应用越来越多地参与到我们的生活中来。其实,嵌入式产品不仅应用于各种消费类电子产品中,其在移动计算,教育科研,医疗保健,工业控制等众多领域,也有广阔的施展空间。
尽管电池技术一直在不断进步,如更长的寿命及更小的体积,但这种发展仍然无法赶上下一代芯片设计快速增长的功率需求。要在新产品中将电池寿命延长到用户可以接受的水平,普通的电源管理方法已经不能胜任了。
在实际的嵌入式应用中,电源管理已经成为一个日益重要的课题,当前主流的电源管理技术主要是基于动态电压调节和动态电源管理,系统或设备不同的电压对应了不同的运行状态,动态电源管理是上层策略,通过使用底层的动态电压调节技术实现。动态电源管理通过在系统的部分组件不工作时将其关断或降低运行频率,并在有任务到来时给其正常工作电压以减少系统级功耗,动态电源管理广泛应用于大多数便携式电子系统,但普遍比较简单,并不能发挥其全部潜力,更复杂,更先进的动态电源管理方法也在研究中不断产生。
目前国际上动态电源管理方法分为三大类基于阈值的方法,基于预测的方法和随机最优方法。其中基于阈值的方法是最基本也是应用最为广泛的方法,其它两种方法的普及程度还不高。
经典的基于阈值的方法综合考虑了设备状态切换的延迟时间,状态切换带来的峰值功耗损失。设Pw是设备处于满负荷状态时的功率,Ps是设备处于空闲状态时的功率;Tsd,Twu分别是从满负荷状态切换到空闲状态的时间和从空闲状态切换到满负荷状态的时间;Esd,Ewu分别是执行上述切换时消耗的能量。上述参数都是跟具体设备相关的。关断阈值Tbe满足的方程如下Pw·Tbe=Esd+Ewu+Ps·(Tbe-Tsd-Twu)由此解出,Tbe=(Esd+Ewu-Ps(Tsd+Twu))/(Pw-Ps)研究者以往的焦点主要集中在CPU的节能管理上,因为当时对于整个系统而言CPU是能耗最大的,也是容易入手研究的。但是随着研究的深入和硬件技术的提高,对CPU节能机制已经有了一些成型,有效的方法。CPU在系统中的功耗已不完全占据主导地位;而嵌入式系统的组成越来越复杂,众多的外部设备已成为新的能源消耗大户,这就需要对当前的外部设备做软硬件全方位的改进,努力从驱动程序的层面加强对外部设备的节能管理。
现实中任务的到来是杂乱无序而且不可预测的,在这种情况下,研究者建立了很多模型来匹配真实环境下的访问情况分布,但实际上使用这些模型的预测算法本身就有很多计算量,其复杂性带来的时间延迟也是不可忽略的,而且这些模型本身没有通用性,用在另一种设备上很可能效果不明显或根本无效,这就呼唤通用节能方法的出现。

发明内容
本发明的目的在于提供一种用于嵌入式系统外部设备带有等待超时判断的节能切换方法。
本发明为解决其技术问题,采用的技术方案如下嵌入式系统对外部设备的访问有不同的执行时间,不同任务也有不同的优先级,在任务各特定参数已明确的前提下,可以兼顾系统响应性能和节能要求。使用带有等待超时判断的节能切换方法可能出现以下六种情况1)执行分派任务的设备有两种不同的工作状态,分别是满负荷状态B和空闲状态I,状态B功率大,能耗高,状态I功率小,能耗低,操作系统根据应用程序对外部设备的读写请求生成具体的任务,根据任务类型预测该任务的最长等待时间Tw,Tw连同任务一起发送给相应设备,设备从状态B切换到状态I需要经过阈值Ts时长,任务排队长度为可预设值N;2)接收到新的任务时,如果设备正处于状态B,设备驱动程序将该任务加入设备的运行队列,同时设定该任务的定时器,任务的Tw值作为定时器的初始值,定时器随系统时间流逝定时减少Tw的值,直到该值被减为零,定时器向驱动程序发出中断请求;3)接收到新的任务时,如果设备正处于状态I,且该任务的到来不能满足在设备上排队等待的任务个数达到预设值N,则将任务加入设备的等待队列,同时启动该任务的定时器,定时器执行方法同2)所述;4)接收到新的任务时,如果设备正处于状态I,且该任务的到来正好满足在设备上排队等待的任务个数达到预设值N,启动该任务的定时器,定时器执行方法同2),比较等待队列中所有任务当前的Tw值,按照从小到大的顺序重新排序,保证Tw值小者优先获得设备使用权,将等待队列中的所有任务转入运行队列,设备状态从I切换到B,按照顺序执行运行队列中的任务;5)当有定时器向驱动程序发出中断请求时,如果设备正处于状态B,则驱动程序按照4)中所述方法对除了当前正在运行的任务之外的运行队列中的所有任务进行排序,Tw值最小者获得当前任务执行完毕之后的设备使用权;如果设备正处于状态I,按照4)中所述方法对等待队列中的所有任务进行排序,将等待队列中的所有任务转入运行队列,设备状态从I切换到B,按照顺序执行运行队列中的任务;6)当设备处于状态B且运行队列中所有任务执行完毕时,设备等待Ts长的时间,在此期间如果有新的任务进入运行队列,停止计时,如果没有新任务进入,在时间Ts过后,设备状态从B切换到I。
本发明与背景技术相比,具有的有益效果是它集中了设备处理任务的时间和空闲时间,减少了设备状态频繁切换带来的能耗增加;超时判断机制考虑了系统实时性要求;保留了阈值关断方法的优点。


图1是本方法的流程图;图2是设备两种状态互相转换的条件图;图3对应具体实施方式
中的情况3;图4对应具体实施方式
中的情况4。
具体实施例方式
操作系统传送给设备的任务包括访问细节和前面所述的最长等待时间Tw。一旦任务提交给对应设备的驱动程序,对应的定时器就会启动,随着系统时间逐步减少更新,处于B状态的设备只可能在运行队列为空并等待Ts时间后转入I状态;处于I状态的设备有两种触发方式转入B状态,即等待队列个数等于N或者等待队列中有定时器超时,同时对等待队列根据当前Tw排序,确定执行优先级。
用几个例子来说明如何用本发明解决外部设备处理任务请求的情况情况1应用程序App要求对外部设备微硬盘Dev进行读写操作,操作系统根据该程序特点和请求的实时性要求估计其可以在等待队列中等待的最长时间Tw,该特定设备Dev的任务排队长度预设值为N=3,Dev对应两种工作状态,分别是高功耗状态B和空闲状态I,从状态B切换到状态I的延迟时间为Ts=1.2s,任务派发时将Tw与任务细节一起发送给Dev的驱动程序(见图1)。
情况2应用程序App的任务请求发送给Dev的驱动程序,Dev当前处于状态B,即正在处理其它任务请求Task1,同时运行队列中有另外一个任务Task2正等待获得Dev的使用权,将该任务直接放入设备的运行队列中并命名为Task3,启动Task3对应的定时器,其初始值为App发送给Dev的任务中的Tw值,驱动程序完成对这次任务请求的响应(见图1)。
情况3应用程序App的任务请求发送给Dev的驱动程序,Dev当前处于状态I,即运行队列为空,等待队列中此时有一个任务即Task1,其当前Tw值为0.8s,并没有超时,新来的任务命名为Task2,其Tw值为0.6s,启动Task2的定时器,初始值设为0.6s,将Task2放入等待队列中。当前等待队列中排队的任务个数为2,小于Dev的预设任务排队长度(N=3),所以不能将系统从状态I切换到状态B,驱动程序完成对这次任务请求的响应(见图3)。
情况4应用程序App的任务请求发送给Dev的驱动程序,Dev当前处于状态I,即运行队列为空,等待队列中此时有两个任务Task1,其当前Tw值为1.5s,没有超时;Task2,其当前Tw值为0.4s,也没有超时。新来的任务命名为Task3,其Tw值为0.6s,启动Task3的定时器,初始值设为0.6s,将Task3放入等待队列中。当前等待队列中排队的任务个数为3,等于Dev的预设任务排队长度(N=3),符合将Dev从状态I转换到状态B的要求。将等待队列中的全部3个任务转入运行队列,根据Tw值对任务运行次序排列,原Task2标记为Task1,原Task3标记为Task2,原Task1标记为Task3。在没有超时中断请求的情况下,按照Task值从小到大的顺序执行,Dev从状态I切换为状态B,驱动程序完成对这次任务请求的响应(见图4)。
情况51)驱动程序检测到有定时器发出超时中断请求,Dev当前处于状态B,运行队列中此时有三个任务Task1正在执行;Task2当前Tw值为1.3s,没有超时;Task3当前Tw值为0,超时中断请求就是它发出的。根据当前Tw值重新对运行队列进行排队,Task1正在运行,不能抢占,原Task3标记为Task2,原Task2标记为Task3。在没有新的超时中断请求的情况下,按照Task值从小到大的顺序执行,驱动程序完成对这次任务请求的响应。2)驱动程序检测到有定时器发出超时中断请求,Dev当前处于状态I,运行队列为空,等待队列中有两个任务在排队Task1当前Tw值为0.4s,没有超时;Task2当前Tw值为0,超时中断请求就是它发出的。当前情况符合状态转换条件,将等待队列中的全部任务转入运行队列,根据当前Tw值重新对运行队列进行排队,原Task2标记为Task1,原Task1标记为Task2,Dev从状态I切换为状态B,按照Task值从小到大的顺序执行,驱动程序完成对这次任务请求的响应。
情况6Dev处于状态B,运行队列和等待队列均为空,为避免频繁的状态切换发生,Dev并不立即转入状态I,当运行队列中最后一个任务执行完毕后,驱动程序启动定时器,其初始值设为Ts值,在该定时器运行期间,新的任务Task1到来,驱动程序自动取消该定时器,同时开始按照情况1所述步骤执行。若在该定时器超时之前并没有新的任务到来,系统在定时器超时后将状态B切换为状态I。
权利要求
1.一种嵌入式系统外部设备带有等待超时判断的节能切换方法,其特征在于1)执行分派任务的设备有两种不同的工作状态,分别是满负荷状态B和空闲状态I,状态B功率大,能耗高,状态I功率小,能耗低,操作系统根据应用程序对外部设备的读写请求生成具体的任务,根据任务类型预测该任务的最长等待时间Tw,Tw连同任务一起发送给相应设备,设备从状态B切换到状态I需要经过阈值Ts时长,任务排队长度为可预设值N;2)接收到新的任务时,如果设备正处于状态B,设备驱动程序将该任务加入设备的运行队列,同时设定该任务的定时器,任务的Tw值作为定时器的初始值,定时器随系统时间流逝定时减少Tw的值,直到该值被减为零,定时器向驱动程序发出中断请求;3)接收到新的任务时,如果设备正处于状态I,且该任务的到来不能满足在设备上排队等待的任务个数达到预设值N,则将任务加入设备的等待队列,同时启动该任务的定时器,定时器执行方法同2)所述;4)接收到新的任务时,如果设备正处于状态I,且该任务的到来正好满足在设备上排队等待的任务个数达到预设值N,启动该任务的定时器,定时器执行方法同2),比较等待队列中所有任务当前的Tw值,按照从小到大的顺序重新排序,保证Tw值小者优先获得设备使用权,将等待队列中的所有任务转入运行队列,设备状态从I切换到B,按照顺序执行运行队列中的任务;5)当有定时器向驱动程序发出中断请求时,如果设备正处于状态B,则驱动程序按照4)中所述方法对除了当前正在运行的任务之外的运行队列中的所有任务进行排序,Tw值最小者获得当前任务执行完毕之后的设备使用权;如果设备正处于状态I,按照4)中所述方法对等待队列中的所有任务进行排序,将等待队列中的所有任务转入运行队列,设备状态从I切换到B,按照顺序执行运行队列中的任务;6)当设备处于状态B且运行队列中所有任务执行完毕时,设备等待Ts长的时间,在此期间如果有新的任务进入运行队列,停止计时,如果没有新任务进入,在时间Ts过后,设备状态从B切换到I。
全文摘要
本发明公开了一种嵌入式系统外部设备带有等待超时判断的节能切换方法。本发明的方法通过操作系统将待处理任务的最长等待时间与任务一起发送给相应设备并由该设备驱动程序中的仲裁部分根据当前设备等待队列和运行队列的状况判定设备将要进入的状态,在实际的待处理任务到来分布情况下,本发明可以有效集中设备处于工作状态的时间和空闲时间,减少由于频繁切换工作状态带来的能量消耗,超时判断机制可以有效预防过度等待带来的系统性能下降,因而在可以接受的性能表现下节省设备能耗。
文档编号G06F9/00GK1828481SQ200610049770
公开日2006年9月6日 申请日期2006年3月10日 优先权日2006年3月10日
发明者陈天洲, 吴心亮, 黄江伟, 钱杰, 梁晓 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1