几种实时嵌入式系统DVS策略的分类比较
查看最近90天中添加的最新产品 最新电子元器件资料免费下载 派睿电子TI有奖问答 - 送3D汽车鼠标 IR推出采用焊前金属的汽车级绝缘栅双极晶体管 全球电子连接器生产商—samtec 最新断路器保护套
随着CMOS制造工艺技术的不断提升以及嵌入式系统软硬件构架的不断更新,各种嵌入式设备如移动电话,MP4播放器, 数码相机 等性能都获得了大幅的增长。然而,伴随着性能的改善,能耗问题越来越成为关注的焦点。 电池 技术相对落后性能增长的实际情况要求我们不得不将注意力集中到在移动嵌入式设备有限的电池电量条件下,如何最大限度地降低系统功耗以延长有效使用时间,并且在有实时性要求的设备中,如何满足任务截止时间限。
在所有移动终端中,处理器是整个系统的核心部件,它的性能与功耗情况直接影响到嵌入式设备的运行状况。目前,两种主流的降低系统功耗的方法是: ①设备关闭,也就是通常我们所说的动态 电源 管理(DynamIC power Management—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倍,因而降低漏电流功耗就变得越为重要。
本文关键字:嵌入式 嵌入式系统-技术,单片机-工控设备 - 嵌入式系统-技术