首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 单元电路介绍 > 电源电路
在μC/OS—II上实现动态电压调节技术
来源:本站整理  作者:佚名  2009-05-08 10:29:27




2 DVS系统模型
2.1 DVS任务调度模型
    由1.2可知,当系统中任务之间存在松弛时间的时候,降低处理器的频率可以缩短任务之间的松弛时间,同时由于频率下降导致电压下降,进而可以减少处理器的能量开销。然而,什么时候进行DVS的调度,处理器最低运行在哪个频率上都需要进一步分析,为此,需要了解每个任务的相关信息。本文用一个五元组表示一个任务,τi=(Si,PTi,ETi,LETi,NPTi)。其中,Si表示第i个任务的状态,是就绪还是阻塞;PTi表示第i个任务的执行周期;ETi表示第i个任务的执行时间,LETi表示第i个任务在当前周期内完成剩余指令所需要的时间;NPTi表示第i个任务距离下一个周期任务所需的时间。
    根据上述定义,系统处理器的利用率Uτ可以表示为:

   
    当且仅当Uτ<1时任务集可调度,任务间存在松弛时间。这是启用DVS功能的前提。
2.2 判断是否需要进行DVS调度
    为了计算松弛时间存在时处理器最低可以运行在哪个频率上,引入“变压因子”这个概念。假设DVS模块被调用时所有就绪任务需要的执行时间为TAllReady,距离下一个等待任务恢复的时间为TleastWaiting,那么定义变压因子FlexibleRatio为:


    当FlexibleRatio>1时,表示当前就绪的任务可以在下一个任务从等待中恢复之前执行完毕,这时可以适当降低CPU的电压和频率,减慢任务的执行速度;当FlexibleRatio<1时,表示当前就绪的任务在下一个任务恢复之前都不能执行完毕,所以这个时候可以提高CPU的电压和频率,使当前就绪的任务尽快执行完毕,从而使下一个恢复的任务可以得到尽快的执行;当FlexibleRatio=1时,不需要调整电压和频率。
2.3 计算可运行的最低频率
    处理器的频率厂是和完成任务需要的时间T成正比的。它们之间遵循如下关系:


    假设当前处理器的运行频率为fcur,完成已经就绪任务需要的时间为Tcur,使任务集可调度的最低频率为fnew,以及在新的频率下完成就绪任务的时间为Tnew,则它们有如下关系:

   
    即在某一时刻,满足系统任务可调度的情况下,处理器频率最低可以运行在FlexibleRatio·fcur。


3 DVS在μC/OS—II上的详细实现
3.1 DVS在μC/OS—II上实现的整体结构
    根据第2节的分析,一个完整的DVS模块应包括两大部分:一部分是更新DVS任务控制信息,另外一部分是可调度的最低频率的计算。其中,第二个部分又可以分为两个层次,即最低频率的计算和频率的硬件设置部分,这样分层之后有助于改进后μC/OS—II的移植。DVS功能在μC/0S—II的实现总体结构如图3所示,下面详细描述各个部分的实现过程。

3.2 更新DVS任务控制信息
    为了让系统知道每个任务的详细情况,实现过程中建立如下结构体保存任务的信息:


    该结构体作为任务控制块的一部分,在任务创建时,将μC/OS—II自身预留的任务扩展指针OSTCBExtPtr指向该结构体。这些信息必须在每一个时钟节拍之后都有变化,因此它们必须在每一个时钟节拍进行更新。更新这部分信息的代码被放在OSTimeTickHook()函数中。
3.3 计算可运行的最低电压和频率
    计算可运行的最低电压和频率的算法是DVS功能的核心部分。算法的基本思想是,将所有任务产生的松弛时间给当前任务使用,使当前就绪的任务集以尽量低的电压和频率运行。系统最开始运行在最高频率和电压下。该算法的伪代码如下:

上一页  [1] [2] [3] 

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:314,234.40000 毫秒