μC/OS—II作为一个源码公开的嵌入式实时 *** 作系统,可以支持64个任务,同时支持信号量、消息队列、邮箱等多种常用的进程间通信方式。该 *** 作系统用ANSI C语言书写,程序可读性强,移植性好,可裁减,并已在通信、电子、自动化等领域的嵌入式设备中获得了广泛的应用,但是它的内核并不支持DVS(Dynamic Voltage Scaling)管理。本文在遵循可移植、可裁减的前提下,对其进行了改进,使其可以支持动态的离散电压管理,保证μC/OS—II在新要求下的应用,使嵌入式设备的电量能够得到充分的使用。
1 DVS在μC/OS—II上应用的理论基础
1.1 DVS应用的硬件基础
动态电压调节技术(DVS)是这样一种技术:在保证系统任务完成的情况下,使处理器运行在尽可能低的电压上。它的基本思想是,当系统需要完成大量计算任务时,提高处理器的电压以增加其处理速度;而当系统任务较少或处于空闲状态时,降低处理器的电压,这样既可以保证系统任务的按时完成,同时又可降低处理器的能量消耗。该节能技术的理论依据来自于对处理器功耗的定义:
其中:E为处理器的功耗,V为处理器的电压,fclk为处理器的频率,lLcak为漏电流;α和C为常数,分别表示门电路的电能转换效率和门电路在整个设备中所占的比例;tTask表示系统中任务的个数。根据式(1)可知,通过降低处理器的电压和频率,可以减少处理器对电能的消耗。由于在实际应用中,程序能够直接控制的是处理器的频率,处理器的电压会根据处理器频率的变化自动变化。一般来说,处理器的电压会随着频率的降低而降低,因此,动态电压技术实际上是对频率的调整。本文中如不作特别声明,调整频率即意味调整电压。
1. 2 DVS应用的软件基础
由于μC/OS—II是一个基于优先级的抢占式任务调度内核,为了保证低优先级任务能够得到处理器的执行,本文假定系统中用户定义的所有任务都遵循如下的结构:
假设系统里有两个任务:一个任务的执行时间为0.5 s,周期为10 s;另一个任务的执行时间为1 s,周期为5 s。这两个任务的调度过程如图l所示,这时系统中存在大量的松弛时间。
如果在程序运行过程中降低处理器的频率,处理器的运行电压也会因此变低。当处理器的频率变化为最高频率的1/4时,其任务调度过程如图2所示。
由图2可以知道,当处理器的频率变化为正常的1/4时,系统任务仍然可以正常运行。这时,处理器的电压下降了,根据式(1),处理器的功耗也降低了。
从上面的分析可以看出,正是由于μC/OS—II采用了基于优先级抢占的调度策略,每个任务执行一段时间之后,都会主动放弃CPU的使用,从而使低优先级的任务能够得到执行。同时,由于任务放弃CPU进行延时 *** 作,任务间会因此而产生松弛时间,而DVS功能就是利用这段松弛时问,降低处理器的执行速度而完成任务的。本文研究的重点就是改进μC/OS—II,使它能够根据系统中任务运行产生的松弛时间的情况,自动设置处理器的频率,降低电压,从而降低处理器的功耗。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)