操作系统协作下的嵌入式设备电源管理方法及系统的制作方法

文档序号:6631729阅读:161来源:国知局
专利名称:操作系统协作下的嵌入式设备电源管理方法及系统的制作方法
技术领域
本发明属于计算机技术领域,涉及一种在嵌入式操作系统中对设备进行动态电源管理的方法及系统。
背景技术
己有的嵌入式系统中的设备动态电源管理方法,是在硬件设备或设备驱动程序中实现,只关注设备被访问的信息,根据已有一段时间内设备访问的空闲时间的特征,在一次访问结束后预测下次设备的空闲时间长度,当大于某一阈值时将设备置于低功耗的状态。已有的方法将对设备的访问视为随机的事件建立数学模型进行统计,忽视了应用程序作为设备访问主动请求者的特点和操作系统对整个系统各种资源的管理控制作用,当应用程序的运行或者访问模式发生改变时,很容易造成预测错误。

发明内容
本发明克服现有嵌入式系统中设备电源管理方法的不足,在操作系统协作下,涉及应用程序、任务调度和驱动程序嵌入式软件各层次的设备电源管理方法,使得预测更加准确。
本发明的技术内容一种在嵌入式操作系统中对设备进行动态电源管理的方法,包括一种在嵌入式操作系统中对设备进行动态电源管理的方法,包括在系统运行时收集和监视系统及设备电源管理相关信息,包括获取系统和任务、CPU利用率信息、任务访问设备的信息、以及系统和设备的电源状态信息;通过系统级与设备级电源管理模块,根据信息收集与监视模块中获取的电源管理信息,响应和处理任务管理与调度事件、定时器到时事件、外设唤醒事件、电源紧急事件,按照一定规则进行决策;根据电源管理决策的结果,具体实现对系统、片内部件、外围设备的状态转换,能够屏蔽底层不同硬件的特性,并向上层提供统一的电源管理接口。
收集和监视系统及设备电源管理相关信息的具体实现步骤,包括系统初始化时,参加电源管理的设备调用注册函数,向系统级电源管理注册设备电源管理数据结构,并挂接各设备的控制接口;在任务管理和调度中插入监视模块,捕获任务的创建、撤销、最近一段时间内的CPU利用率、CPU上运行的任务总数以及访问该设备的优先级的信息;在设备驱动程序中,在设备访问操作的前、后插入监视模块,获取每次设备访问开始和结束时间、所访问设备以及发出访问请求的任务信息,作为设备访问的历史信息记录。
系统级电源管理模块进行决策的具体实施步骤,包括通过系统级电源管理模块的CPU、SRAM控制子模块,完成当系统空闲时间达到一定阈值,或输入设备空闲时间达到一定阈值时,检查设备电源管理信息表,查看是否有应用程序预留了某一设备,若没有,调用控制模块将系统置为低功耗状态。
设备级电源管理模块进行决策的具体实施步骤,包括当有任务访问该设备时,才开启该设备,并开始对该设备的监视和管理;当所有访问该设备的任务结束时,关闭该设备;当任务访问多个设备时,如访问顺序具有依赖性,根据该依赖性预测设备的未来使用情况。
在设备驱动程序中,根据设备访问的历史信息记录,预测未来的设备空闲时间,如预测设备下次的空闲时间大于某一阈值时,调用控制模块将设备关闭。
一种在嵌入式操作系统中对设备进行动态电源管理的系统,包括一个系统级电源管理模块和与之相链接的若干个设备级电源管理模块,每个电源管理模块都包括监视子模块、决策子模块和控制子模块,监视模块,获取系统和任务、CPU利用率信息、任务访问设备的信息、以及系统和设备的电源状态信息;决策模块,根据监视模块所获取的信息进行决策,同时负责处理和响应任务管理和调度事件、定时事件、外部设备的唤醒事件、以及电源紧急事件;控制模块,根据决策模块做出的决策结果,利用驱动程序或者硬件抽象层,分别对整个系统、片内部件和外围设备进行控制,完成状态的转换。
系统级电源管理模块还进一步包括电源事件处理子模块,当电源事件发生时,该子模块调用相应的设备及设备级子模块。电源管理应用接口,用于应用程序提供电源管理的约束,参与操作系统的电源管理决策,查询系统和设备的电源状态,为可感知电源的应用程序自适应调节自身行为提供支持。
设备级电源管理模块中的决策子模块还能够将设备电源状态的变化情况通知系统级电源管理模块,为系统级电源管理决策提供依据。
本发明的技术效果系统中任务对设备的访问模式是有规律的,引入对系统和任务的监视信息是的对设备访问的预测更加准确;当设备的访问模式发生突然改变时,真实空闲时间比重的动态调整使得预测值迅速接近真实值。在嵌入式操作系统电源管理机制的支持下,对设备电源管理的决策更准确有效。


下面结合附图,对本发明做出详细描述。
图1为嵌入式操作系统电源管理基本模型示意图图2为系统-设备两级电源管理模块示意图;图3为各模块间数据、控制流图;图4为嵌入式设备电源管理方法示意图;图5为添加电源管理前后,及与现有电源管理方法能耗对比图;图6为系统运行任务数对电源管理有效性的影响的示意图。
具体实施例方式
参考图1,本系统依据的嵌入式操作系统电源管理基本模型,分为监视、控制、决策三个模块。
监视模块,负责获取和收集应用程序的需求、CPU利用率信息、设备访问信息、以及设备和系统的电源状态信息决策模块,根据监视模块所获取的信息根据电源管理算法进行决策,同时负责处理和响应任务管理和调度事件、定时事件、外部设备的唤醒事件、以及电源紧急事件(电池电量低)控制模块,根据决策模块作出的决策结果,利用驱动程序或者硬件抽象层,分别对整个系统、片内部件和外围设备进行控制,完成状态的转换。
根据上述电源管理基本模型,本发明电源管理系统在嵌入式操作系统中的结构如图2所示,包括1、系统级电源管理,负责系统全局的能耗状态的转换控制,包括整个系统的电源状态转换、处理器电源状态转换、电量紧急情况下(电池电量低时)的系统状态控制,为应用程序提供接口;2、设备级电源管理,在确定的全局电源状态下,根据特定设备的特征和工作负载,相对独立地改变性能/能耗状态,并将状态变化通知系统级电源管理模块;3、信息收集和监视模块,负责收集运行时系统和任务的相关信息,包括运行的任务总数、任务状态、CPU利用率,以及设备的相关信息;4、电源事件响应模块,是指当收集和监视模块监视到需要改变电源状态的事件发生,引发相应的系统级或设备级电源管理进行决策,实施电源状态转换控制。
本发明嵌入式设备电源管理方法,实施具体电源管理方法如图4所示系统初始化时,参加电源管理的设备调用注册函数,向系统级电源管理注册设备电源管理数据结构,并挂接各设备的控制接口;
在设备驱动程序中,在设备访问操作的前、后插入监视函数,每次设备访问发生前、后由设备级监视模块记录此时时间、所访问设备以及发出访问请求的任务,作为设备访问的历史信息记录;系统运行时,应用程序向系统级电源管理模块提出需求;系统运行时,系统级电源管理模块通过操作系统进程调度模块,获取访问设备任务的CPU使用率,当前CPU上运行的进程总数,进程优先级的信息,作为系统运行时电源管理相关信息记录;设备级电源管理决策,获取设备级监视模块,与系统级电源管理所获取的系统和设备两方面的信息,在一次设备访问操作结束后,根据事先制定的电源管理策略,决策是否将设备置于低功耗的状态,并调用设备级控制模块实现最后的控制;系统级电源管理负责响应和处理电源管理相关事件及中断,当接收到电池电量低的中断时,调用各设备挂接的控制接口,将各设备置于低功耗的状态。
按照下面的步骤在嵌入式操作系统DeltaOS中实现本发明在嵌入式操作系统中对设备进行动态电源管理的方法,其中DeltaOS运行在Samsung S3C44b0x嵌入式处理器上,本具体实施例针对CPU、网卡、LCD进行电源管理。
(一)收集和监视系统及设备电源管理相关信息在系统运行时获取应用程序对设备的需求、CPU利用率信息、设备访问信息、以及系统和各个设备的电源状态信息。
具体实施步骤如下1、系统初始化时,接受操作系统电源管理的设备,通过系统级电源管理提供的设备管理数据结构及接口,调用注册函数向内存中设备电源管理信息表注册设备的初始状态、获取设备标识符、并挂接紧急状态下将设备置于低功耗状态的函数接口。
2、在操作系统进程调度模块中,插入用户扩展函数,监视进程的创建、运行、挂起、撤销的时刻,在进程切换时插入对空闲进程的监视,并获取进程在最近一段时间的CPU使用率信息、进程优先级,通过系统级电源管理提供的系统运行时信息子模块,将有关信息填入内存中任务管理信息表。
3、在设备驱动程序中,在对设备访问的前后插入监视函数,获取每次对设备访问的开始时间、结束时间、设备标识符、访问设备的任务标识符,通过设备级电源管理模块的监视子模块,将上述信息填入内存中维护的设备-任务访问信息表。当任务开始访问设备时,才在信息表中为该任务分配空间;当右任务访问设备时,开始对该设备的监视和管理。
4、在进程调度与键盘的中断处理函数中,插入定时器,通过系统级电源管理模块的电源事件及中断子模块,获取空闲进程的连续执行时间,与键盘无交互的持续时间5、增加应用程序预留设备的用户接口,当应用程序调用该接口时,通过系统级电源管理模块的应用程序需求子模块,修改设备电源管理信息表,标识应用程序运行时不希望关闭的设备(二)根据系统运行时信息与设备访问历史信息进行决策通过系统级与设备级电源管理决策模块,根据信息收集与监视模块中获取的电源管理信息,响应和处理任务管理与调度事件、定时器到时事件、外设唤醒事件、电源紧急事件,并依照事先制定的电源管理策略进行决策。
具体实施步骤如下1、在操作系统的定时器模块中,在监视系统空闲进程的定时器,与监视键盘空闲时间的定时器中挂接定时器到时的处理函数。通过系统级电源管理模块的CPU、SRAM控制子模块,完成当系统空闲时间达到一定阈值,或键盘空闲时间达到一定阈值时,将系统置为低功耗状态,并检查设备电源管理信息表,查看是否有应用程序预留了某一设备,若没有,再调用控制模块实现状态转换。
2、建立设备电源管理决策机制,具体包括(1)当有任务访问该设备时,才开启该设备,并开始对该设备的监视和管理;当所有访问该设备的任务结束时,关闭该设备;(2)当任务访问多个设备(例如交互式输入设备A和网络设备B),并且访问顺序具有依赖性(先A后B)时,根据该依赖性预测设备的未来使用情况;a)当任务长时间阻塞在设备A访问过程时,可以为关闭设备B提供依据b)当任务从设备A恢复时,可以作为唤醒设备B的依据(3)在上述条件的基础上,根据已有若干次的设备空闲时间,预测未来的设备空闲时间,当预测设备下次的空闲时间大于某一阈值时,即设备处于低功耗状态所节省的电能大于设备状态转换的能耗开销时,调用控制模块将设备关闭。预测原则如下a)越近的设备空闲时间占的比重越大b)当预测的设备空闲时间与实际空闲值相差很大时,说明设备的访问模式发生改变,动态调整增大实际空闲值的权重c)活动状态的任务数目越少,访问设备的任务执行机会越多,设备空闲时间越短任务优先级越高,执行机会越多,任务访问的设备空闲时间越短(三)实现电源管理状态转换控制根据电源管理决策的结果,具体实现对系统、片内部件、外围设备的状态转换,负责屏蔽底层不同硬件的特性,并向上层提供统一的电源管理接口。
具体实施步骤包括1、实现CPU从正常运行状态到空闲状态的状态转换函数;2、实现CPU从正常运行状态到关闭状态的状态转换函数,包括设置哪些中断可以唤醒CPU;2、实现LCD的打开、关闭函数;3、实现网卡的打开、关闭函数。
图5中,左1为添加电源管理前网卡应用程序总能耗,左2为本电源管理方法实施后应用程序的能耗,右1与右2为现有两种经典电源管理方法的电能消耗,本电源管理方法的节能效果越显著。
图6中,左1组的两个点显示系统上只运行一个网卡应用程序时的能耗,左1下的点位添加电源管理后系统能耗,左1上为添加电源管理前系统能耗。左2组点为同时运行两个应用程序,左3组点为同时运行三个应用程序的能耗对比情况。应用程序数目越多,访问设备的应用程序获得CPU的机会越少,设备空闲时间越多,本电源管理方法的节能效果越显著。
权利要求
1.一种在嵌入式操作系统中对设备进行动态电源管理的方法,包括在系统运行时收集和监视系统及设备电源管理相关信息,包括获取系统和任务、CPU利用率信息、任务访问设备的信息、以及系统和设备的电源状态信息;通过系统级与设备级电源管理模块,根据信息收集与监视模块中获取的电源管理信息,响应和处理任务管理与调度事件、定时器到时事件、外设唤醒事件、电源紧急事件,按照一定规则进行决策;根据电源管理决策的结果,具体实现对系统、片内部件、外围设备的状态转换,能够屏蔽底层不同硬件的特性,并向上层提供统一的电源管理接口。
2.如权利要求1所述的在嵌入式操作系统中对设备进行动态电源管理的方法,其特征在于收集和监视系统及设备电源管理相关信息的实现步骤,包括系统初始化时,参加电源管理的设备调用注册函数,向系统级电源管理注册设备电源管理数据结构,并挂接各设备的控制接口;在任务管理和调度中插入监视模块,捕获任务的创建、撤销、最近一段时间内的CPU利用率、CPU上运行的任务总数以及访问该设备的优先级的信息;在设备驱动程序中,在设备访问操作的前、后插入监视模块,获取每次设备访问开始和结束时间、所访问设备以及发出访问请求的任务信息,作为设备访问的历史信息记录。
3.如权利要求1所述的在嵌入式操作系统中对设备进行动态电源管理的方法,其特征在于系统级电源管理模块进行决策的实施步骤,包括通过系统级电源管理模块的CPU、SRAM控制子模块,当系统空闲时间达到一定阈值,或输入设备空闲时间达到一定阈值时,检查设备电源管理信息表,查看是否有应用程序预留了某一设备,若没有,调用控制模块将系统置为低功率状态。
4.如权利要求1或3所述的在嵌入式操作系统中对设备进行动态电源管理的方法,其特征在于设备级电源管理模块进行决策的实施步骤,包括当有任务访问该设备时,才开启该设备,并开始对该设备的监视和管理;当所有访问该设备的任务结束时,关闭该设备;当任务访问多个设备时,如访问顺序具有依赖性,根据该依赖性预测设备的未来使用情况。
5.如权利要求4所述的在嵌入式操作系统中对设备进行动态电源管理的方法,其特征在于设备级电源管理模块进行决策的实施步骤,还包括在设备驱动程序中,根据设备访问的历史信息记录,预测未来的设备空闲时间,如预测设备下次的空闲时间大于某一阈值时,调用控制模块将设备置于低功率状态。
6.一种在嵌入式操作系统中对设备进行动态电源管理的系统,包括一个系统级电源管理模块和与之相链接的若干个设备级电源管理模块,每个电源管理模块都包括监视子模块、决策子模块和控制子模块,监视模块,获取系统和任务、CPU利用率信息、任务访问设备的信息、以及系统和设备的电源状态信息;决策模块,根据监视模块所获取的信息进行决策,同时负责处理和响应任务管理和调度事件、定时事件、外部设备的唤醒事件、以及电源紧急事件;控制模块,根据决策模块做出的决策结果,利用驱动程序或者硬件抽象层,分别对整个系统、片内部件和外围设备进行控制,完成状态的转换。
7.如权利要求6所述的在嵌入式操作系统中对设备进行动态电源管理的系统,其特征在于系统级电源管理模块还包括电源事件处理子模块和电源管理应用接口,电源事件处理子模块,用于当电源事件发生时,该子模块调用相应的设备及设备级子模块;电源管理应用接口,用于应用程序提供电源管理的约束,查询系统和设备的电源状态,为可感知电源的应用程序自适应调节自身行为提供支持。
8.如权利要求6或7所述的在嵌入式操作系统中对设备进行动态电源管理的系统,其特征在于设备级电源管理模块中的决策子模块将设备电源状态的变化情况通知系统级电源管理模块,为系统级电源管理决策提供依据。
全文摘要
本发明提供一种在嵌入式操作系统中对设备进行动态电源管理的方法,该方法结合系统和任务的运行状态,以及设备的历史访问信息,在操作系统协作下,采用系统级和设备级两级决策,对整个系统及设备的电源进行管理。本发明还提出一种在嵌入式操作系统中对设备进行动态电源管理的系统,包括一个系统级电源管理模块和与之相链接的若干个设备级电源管理模块,每个电源管理模块都包括监视子模块、决策子模块和控制子模块。在该系统的支持下实现嵌入式操作系统的设备电源管理,可以节省设备和整个系统的能耗。
文档编号G06F1/32GK1752896SQ200510086809
公开日2006年3月29日 申请日期2005年11月8日 优先权日2005年11月8日
发明者陈向群, 赵霞, 王悦 申请人:北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1