几种实时嵌入式系统DVS策略的分类比较

时间:2011-02-10

     随着CMOS制造工艺技术的不断提升以及嵌入式系统软硬件构架的不断更新,各种嵌入式设备如移动电话,MP4播放器,数码相机等性能都获得了大幅的增长。然而,伴随着性能的改善,能耗问题越来越成为关注的焦点。电池技术相对落后性能增长的实际情况要求我们不得不将注意力集中到在移动嵌入式设备有限的电池电量条件下,如何限度地降低系统功耗以延长有效使用时间,并且在有实时性要求的设备中,如何满足任务截止时间限。

  在所有移动终端中,处理器是整个系统的部件,它的性能与功耗情况直接影响到嵌入式设备的运行状况。目前,两种主流的降低系统功耗的方法是: ①设备关闭,也就是通常我们所说的动态电源管理(Dynamic PowerManagement—DPM)和②设备减速,也就是我们将要分析的动态电压调节(Dy2namic Voltage Scaling—DVS)。通过处理器调度关闭闲置设备,如内存、硬盘、显示器、I/O接口等可以有效的降低系统功耗,然而大部分情况下,我们很难实现对这些设备的频繁操作,并且考虑关断开销更让DPM技术只存在理论价值。然而,DVS技术则根据电压和功耗之间的关系,运用处理器动态调节特性,既满足任务截止时间限,又通过调节电压和频率实现系统功耗的降低。

  本文中,我们将在第1部分中引入DVS策略的模型基础,介绍DVS技术实现功耗降低的基本原理。在第2部分中,将根据第1部分中提到的策略模型,对关键DVS算法进行分类比较。相关算法的仿真将在第3部分中进行描述。,第4部分对实时嵌入式系统DVS策略进行总结。

  1、实时DVS策略模型

  纵观实时系统下DVS策略,不难发现绝大多数策略都基于两大影响因素,其一,动态电流功耗,其二,结合漏电流功耗的总功耗。前者是早期大部分文章研究的重点,而后者则在近几年DVS策略的研究中占有越来越重要的位置。

  根据CMOS晶体管特性,动态电流产生的功耗PAC可有下式表示:


  其中, CL 表示负载电容, Vdd表示供电电压, f表示系统频率。

  而供电电压Vdd与电路延迟τ的关系可由下式表示:


  其中, VT 表示CMOS晶体管的阈值电压, VG 表示输入门电压。

  从上述等式我们可以看出, 动态电流功耗PAC与供电电压Vdd成二次方关系,而电路延迟限制了系统频率,所以供电电压Vdd也与频率f相关。因而,考虑动态电流作用的DVS策略将根据电压,频率与功耗之间的关系,以降低系统动态功耗为主,并且要求满足任务截止时间限。

  然而,随着工艺技术的不断提升,从微米工艺到深亚微米,再到如今的纳米级工艺,单个芯片的集成度越来越高,单个CMOS晶体管的阈值电压呈指数下降趋势,以至于过去在功耗方面并不起主导作用的漏电流不断增大。伴随着越来越大的旁路电流,漏电流所产生的功耗PDC成为整个系统功耗的重要组成部分,其功耗计算由下列等式表示:


  其中, Isubn表示子阈值电流, Ij 表示反向偏置节点电流, Vbs表示体偏置电压。可看出漏电流功耗PDC与供电电压Vdd也相互关联。

  系统的总功耗P可以由下式表示:


  其中, Pon表示系统工作内部电压功耗。根据漏电流产生的功耗对总功耗的影响,采用计算关键点(CriticalPoint)的方法,寻求可能功耗。因而,区分动态电流功耗与漏电流功耗将成为我们分类的重要标准。

  2、实时DVS策略分类比较

  我们分析研究的对象主要是实时系统下周期性任务的动态电压调节(DVS)策略。在本文中,我们将DVS策略分为两大类:动态功耗DVS策略和静态功耗DVS策略。动态功耗DVS策略将根据动态功耗模型进行分析,又可以细化成三类子策略:任务间DVS( InterDVS)策略,任务中DVS ( IntraDVS)策略和混合DVS(HybridDVS)策略。而静态功耗DVS策略将根据漏电流功耗模型进行分析,更加注重漏电流在系统功耗中的作用,同时考虑整个系统部件功耗,不仅包括处理器以及外围设备如内存和I/O等。

  2. 1 动态功耗DVS策略

  动态功耗的DVS策略利用功耗与电压,频率之间的关系,以及实时系统下任务调度策略,如单调速率调度(RM)和早截止时间优先调度( EDF) ,来降低系统功耗。实时系统下动态功耗DVS策略的计算将通过减速因子( slowdown factor)的取值来决定运行时处理器的速度,进而达到满足任务时限要求的同时降低功耗。减速因子( slowdown factor)则根据系统是否运行时更新状态又分别对应离线(Off2Line)算法和在线(On2L ine)算法。

  由于减速因子对任务执行速率的影响,任务会余留一定的空闲时间( slack time) 。它是任务实际执行时间和坏运行时间之间的差值。无论任务间DVS策略还是任务中DVS策略都是探求空闲时间进而修正处理器速度。对于任务间DVS策略而言,一般都是采用运行- 计算- 分配- 再运行的步骤。

  任务间DVS策略又细分为两部分: 空闲时间评估( slack estimation) 与空闲时间分配( slack distribu2tion) ,后者大多采用贪心算法,即所有的空闲时间都默认全部分配给下一个处于激活状态的任务。本文DVS策略主要集中在空闲时间评估上,根据减速因子的特性决定分类,又可分为动态空闲评估和静态空闲评估。动态空闲评估是一种在线算法,我们将给出三种动态空闲评估算法类别:

  (1)基于优先级的空闲时间获取算法

  该类算法基于EDF与RM的调度特性,若高优先级任务完成时间早于坏运行时间 ,后续的低优先级任务能够使用已完成的高优先级任务所余留的空闲时间。当然,也可能出现相反的情况,只不过那样往往需要更大的运行开销。

  (2)处理器利用率更新算法

  该类算法通过已完成任务的实际执行时间重新计算坏处理器利用率来评估所需处理器性能。一旦处理器利用率进行了更新,时钟速率也要进行相应地修正。该类算法的优点在于执行简单,仅在单个调度点根据已完成任务的处理器利用率进行更新。

  (3)任务到达时间算法

  该类算法使用下一任务到达时间(NTA)来评估动态空闲时间,如果调度点时间t与坏运行时间的和小于NTA,任务则按更低的速率运行以满足当前任务完成时间是下一任务到达时间。

  该类算法相对前一算法计算开销较大,但考虑到任务到达的阈值时间,具有更好的实时性。

  相对于动态空闲评估而言,静态空闲评估算法较为简单,因为算法静态确定下一任务所能获得的空闲时间,而动态空闲时间则是来自于任务执行期间的运行时变量。静态空闲评估是一种离线算法,下面我们给出一种静态空闲评估算法:

  (4)恒速率算法

  该类算法是一种为普遍使用的静态空闲评估方法。恒速率被定义为能够保证任务有效调度的时钟频率。例如在EDF调度中,任务的处理器利用率U小于1时(对应于处理器速度fmax ) ,则采用f′ max =U·fmax来计算新速率。

  相比较任务间DVS策略,任务中DVS策略大多比较简单,因为是根据单个任务运行状态来决定任务的执行速率。因而任务中DVS策略大多采用一种离线算法。下面给出两类任务中DVS策略:

  (1)基于路径算法

  该类算法基于预测参考执行路径来进行调度,例如坏执行路径(WCEP) 。当实际执行与预测执行路径不同时就对系统时钟频率进行调整。如果新路径要比预测执行路径花费更长的执行时间,则调高时钟频率。反之,降低时钟频率。具体有Shin D等人提出的intraShin算法。

  (2)随机算法

  该类算法采用相对保守的策略,认为系统以低速开始运行后提速的方法在功耗节省上优于以高速开始若出现空闲时间而降速的策略。该类算法中,时钟速度会在特定时间点提升而无论采用何种执行路径。因为采用了相对保守的策略,不像前一策略能够充分利用所有空闲时间,通过功耗节省来弥补性能的损失。

  混合DVS策略则根据空闲时间,可以工作在任务间和任务中两种模式下。它不同于纯的任务间或任务中DVS策略,从理论上比后两者能够降低更多功耗。

  2. 2 集成静态功耗DVS策略

  上述的DVS策略大都通过频率调节来进行减速,然而这样的策略虽然降低动态功耗却导致漏电流功耗的增长。特别是近年来,随着每一代CMOS工艺技术提升,漏电流功耗出现大幅增长,过去的130 nm工艺对应亚阈值漏电流为0. 01μA /μm,而如今的45 nm工艺相应的亚阈值电流则为3 μA /μm,仅电流就提高了30倍,因而降低漏电流功耗就变得越为重要。

  基于能耗和减速因子成比例的前提,如inputvector control和power supp ly gating等用来降低漏电流功耗,以及通过控制体偏置电压进而调节阈值电压的方法和基于自适应体偏置的调度技术也是降低静态功耗的方法。这些方法在只考虑处理器功耗时能够获得不错的效果,但当涉及如内存、I/O等设备时,上述方法往往不能起到很好的降低系统总功耗的效果。这就产生了将减速因子( slowdown)与关断因子( shutdown)组合考虑的新方法来降低功耗。这里,处于关断( shutdown)状态被认为是几乎没有漏电流功耗的状态。

  在早期研究中, Irani等人[ 15 ]考虑了DVS与关断因子的组合问题,作者基于连续电压范围和功耗凸函数( convex power consump tion function)的假设提出了一种竞争性离线算法。Lee Y等人[ 16 ]提出了实时周期系统下的一种延迟调度( p rocrastinationscheduling)策略以及Leakage Control EDF (LC2EDF)和Leakage Control Dual Priority (LC2DP)调度算法。

  单个设备的延迟算法将决定系统何时进入或离开关断状态。延迟算法通过延长睡眠间隔能够有效地减少唤醒次数,能够带来更高效的系统性能同时满足任务的截止时间限。

  整合延迟算法和动态电压调节技术是一种有效的降低系统功耗的方法。Jejurikar R等人评估了在EDF调度策略下的延迟算法的使用情况,并测试了固定优先级( fixed p riority) 和竞争优先级( dualp riority)系统调度性能。他们认为Lee的LC2DP算法中延迟会导致任务不能满足截止时间限,进而修正了该延迟算法存在的问题。在随后的研究中,他们计算了两种优先级调度策略下的任务延迟间隔,指出竞争优先级调度比固定优先级调度在延迟间隔中能更有效地降低系统功耗。

  集成静态功耗的DVS策略因为需要考虑漏电流功耗对总功耗的影响,所以在结合动态功耗条件下,计算系统的关键点(Critical Point)来确定总功耗时系统的关键速度(Critical Speed) ,继而给出系统的低功耗调度策略, 于是有相应的CriticalSpeed DVS(CS2DVS)和Critical Speed DVS with Pro2crastination (CS2DVS2P);后者引入延迟算法,通过增加任务之间的空闲时间,进一步降低功耗。

  3、实时DVS策略仿真

  我们的实时DVS策略仿真是根据Pering T等人和Shin D等人提出的仿真与评估方法加以改进。该方法以U I、Real2Time Audio和MPEG De2comp ression等作为基准测试程序,硬件平台也使用具有能够进行连续电压调节的如Intel PXA系列处理器,并且系统搭载一定的外设,如内存、I/O和硬盘等。仿真器将一组任务序列作为输入,该序列包含每个任务的周期和运行开销以及相应的一些系统参数。输出为处理器利用率与功耗的关系模型。在仿真中我们将坏截止时间对应处理器速率为执行速率,任务序列为随机序列,并定义其周期的取值范围。

  在动态功耗DVS策略中具体算法可能是由一种或几种空闲评估算法组成。我们列出主要的算法组合,如表1。

表1 动态DVS策略算法组合


  针对上述DVS算法,我们通过标准化评估模型分析他们的平均功耗情况与不使用DVS策略模型的功耗比,如图1。

动态功耗DVS策略的功耗比较

图1 动态功耗DVS策略的功耗比较

  对于考虑静态功耗的DVS算法而言,在处理器利用率较小的时候, CS2DVS2P算法能获得的功耗,随着处理器利用的上升,一般DVS以及CS2DVS算法都能与CS2DVS2P获得大致相同的功耗,如图2。

漏电流功耗DVS策略功耗比较

图2 漏电流功耗DVS策略功耗比较。

  图2中的功耗是相对于没有采用DVS策略的功耗而得到的标准化功耗。CS2DVS相对于普通DVS策略能够减少5 %的系统功耗,而CS2DVS2P通过延长睡眠间隔时间而进一步减少了关断开销,从而能够获得了比CS2DVS多达18 %的功耗节省。

  4、总结

  实时嵌入式系统的DVS策略在仿真环境下往往能达到10 %~40 %的功耗节省。然而在实际应用中往往因为现实环境的复杂性和多样性而无法达到令人满意的功耗降低。我们看到多数理论都基于贪心算法,即从理论上满足任务时限的条件下可能地降低功耗。后续研究将把重点放在DVS策略与DPM策略相结合以及针对混合DVS策略研究的拓展。

  我们认为从近些年实时DVS策略发展的角度来看,漏电流功耗对整个系统功耗影响的研究将占更大的比重,特别是在考虑漏电流与动态电流之间相互关系的研究上有望进一步深入。同时,在实际工程领域的应用也会是未来一段时间的研究重点。

  此外,我们认为结合VLSI等相关芯片制造领域技术的发展,将DVS策略集成到芯片制造中也会成为未来DVS策略研究的一个重要方向。


  
上一篇:MAX2062 :双通道模拟/数字VGA
下一篇:DS3645:具有4096字节SRAM的安全监控电路

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料