低功耗设计——DVS&AVS
低功耗设计——DVS&AVS
随着人们对便携电子设备功能需求的不断提高,低功耗设计成为了一个重要的研究方向。动态电压调节(DVS)和自适应电压缩放(AVS)作为两种主要的低功耗技术,通过动态调整芯片的工作电压和频率来实现节能。本文将详细介绍这两种技术的原理、工作流程以及它们之间的区别。
1. 背景
随着人们生活质量的提高,对各种便携电子产品的功能要求越来越高,而复杂的功能会导致设备的功耗大幅增加。提高系统供电效率、减少无谓的能量损耗的节电技术可以分为两类:动态技术和静态技术。
静态技术使用不同的低功耗模式,对芯片内部不同组件的时钟或电源实行按需开关等。例如,大多数处理器具有多种节电模式,在空闲与睡眠模式下可以关闭部分模块的时钟信号来禁用内部电路或模块,也可以在某些节电模式下通过切断或降低供电电压实现节能目的。又如,在某些多相供电的电路中,当负载较轻时,可以将其中某些供电的相回路关掉,这样既能提高电源效率,又能降低损耗,AMD公司的PSI技术就是这种原理。
动态技术则是根据芯片所运行的应用程序针对计算能力的不同需要,动态调节芯片的运行频率和电压,从而达到最大化节能的目的。对微处理器来说,内核电压可以根据内部时钟频率与“工作负载”调节到最低与最高电压之间的任何电压值,这种方法称为动态电压调节(DVS)。提供内核电压的转换器必须能够在运行过程中根据DVS规范调节输出电压。这种类型的转换器通常与处理器之间有可以互相通信的数字接口,例如数字电源管理芯片常用的I2C接口、PowerWise接口等等。未采用数字接口的设计无法实现更多种电压调节,但也有厂商推出了使用硬件管脚来设置输出电压的器件,例如TI公司的TPS65021、新产品TPS780xx。
2. DVS与AVS的原理
2.1 DVS的工作原理
DVS通常用在为处理器供电的DC/DC变换器中。处理器工作在全速状态下和空闲状态下所需要的电压是不同的,DVS使系统控制器可以在需要的时候改变DC/DC变换器的输出电压。在移动设备中,DVS显著延长了电池的寿命,但并不影响用户程序的运行时间。
现代的动态电压调节(DVS)技术与数字技术已经融合在一起,它将处理器与电源转换器连接在一起,通过I2C等数字总线动态地调节供电电压,同时调节处理器的频率。当然,简单的电源管理并不需要复杂管理总线,TI公司最新推出的TPS728xx系列LDO就是基于这种思想,它通过硬件管脚提供1~4种输出电压,可在运行时从中选择1个电压输出,实现简单的DVS。
和AVS相比,动态电压调节(DVS)基于对系统的负载预测,在一个开环电压控制系统中用多组不同能耗级别的频率、电压对来实现调节。因此,DVS的响应速度、调节精度较基于完全反馈的AVS还是稍逊一筹。
如果使用常规的DC/DC变换器实现DVS,在电路上需要增加一些额外的元器件进行反馈,增加的元件包括MOSFET及一些电阻。反馈源可以取自处理器的输出状态引脚,它能表明处理器当前是否处于低功耗模式。因此,实际上大多数电源芯片都可以实现DVS,一片可调输出电压的电源芯片和一个外部输入的控制信号就足够了。
2.2 AVS的工作原理
自适应电压缩放 (AVS) 作为有源电源管理技术,是以芯片制造过程中以及器件运行生命周期中产生的差异为基础的。该技术与所有处理器都采用相同预编程 OPP 的 DVFS 不同。可以想见,就大多数已经成熟的制造工艺而言,芯片的性能在既定频率要求下要遵循一定的分布情况。部分器件(所谓的“热”器件)相对于其他器件(所谓的“冷”器件)而言,能以较低的电压实现给定的频率,这就是 AVS 发挥作用的原理——处理器感应到自身的性能级别,并相应调整供电电压。专用的片上 AVS 硬件可实施反馈环路,无需处理器干预即可动态优化电压电平,以满足进程、温度以及硅芯片衰减等造成的差异要求。
软件可在工作中为每个 OPP (工作性能点)设置 AVS 硬件,而控制算法则通过 I2C 总线向外部稳压器发送指令,以逐步降低适当稳压器的输出,直至处理器刚好超过目标频率的要求为止。
例如,开发人员可首先设计一个能满足所有情况的电压,在 125 MHz 频率下为 0.95 伏特(在图 1 中的 V1 上方)。但是,如果系统中插入了采用 AVS 技术的“热”器件,那么片上反馈机制就会自动将 ARM 的电压降至 0.85 伏特或更低(图 1 中的 V2 上方)。
前两种有源电源管理技术可以最小的工作电压让器件的某部分工作在理想的速度上。相比之下,第三种方法 — 动态功率切换 (DPS) 先确定器件何时可完成当前的计算任务,如果暂时不需要,则让器件进入低功耗待机状态(图 2)。例如,处理器在等待 DMA 传输完成过程中会进入低功耗状态。处理器在唤醒后几微秒内就能返回正常工作状态。
CPU和DSP对数据处理速度的要求不断提高,对电源模块的供电要求也就相应地提高了,这主要体现在对电源的输出电流大小及其变化率和输出电压峰峰值的要求上。相对于使用精巧的电路、大容量低ESR电容等缺乏灵活性的纯硬件设计的缺点,AVS的引入不仅有利于电源模块的热设计,而且输出电压峰峰值小、恢复时间短,有效地改善了模块的动态响应,特别适用于低电压、大电流的场合。
自适应电压调整AVS基于跟踪系统处理器的性能变化,由嵌入式自适应先进电源控制器(APC)做出自适应电压调整。APC通过PowerWise接口将系统处理器的性能(频率)、温度变化准确地传递给外部自适应电源管理芯片。然后,该电源管理单元根据性能需求自动调整供给系统处理器的电压,使处理器运行在能确保应用软件正确运行的最低电压和频率下。DVS和AVS的核心是先进电源控制器(APC)。
2.3 DVS和AVS差别
DVS和AVS的核心目的都是通过调节芯片整体或者部分power domain的电源电压来实现降低功耗的目的。所不同的是,DVS会选取一个或者几个电压-频率的对应点来固定调节电压,AVS可以更精确地在一定范围内自由调节电压数值。
在DVS模式中,APC根据来自时钟管理单元CMU的频率请求,从内部的DVS表中取出相应的电压值,并传送给PMIC。然后使用一个定时器来延迟CMU对于频率的确认,直到电压稳定为止。
在AVS工作模式中,当CMU为一个新的工作状态请求一个新的频率,并为该状态设定一个新的HPM时钟时,AVS的频率就开始变化。随后APC环路控制器使用硬件性能监视器HPM数据来确定所需的调节频率。它反复调节电源电压,直到能满足新频率的要求(如图3所示)。这一过程听起来虽然比较复杂,但是具有补偿工艺和温度波动、时钟频率变化、电源变换器偏移等优点。与电压固定的系统相比,AVS模式实现的动态电压控制最多能降低70%的功耗。
目前许多处理器芯片支持动态电压、频率控制,比如InteI公司的芯片支持SpeedStep,AMD公司芯片支持的NCQ技术,ARM支持的IEM(Intelligent Energy Manager)和AVS(Adaptive Voltage Scaling)等。不过,要让动态电压频率调节发挥作用,真正实现节能,只有芯片的支持还是不够的,还需要软件与硬件的综合设计。
3. 工作流程
一个典型的动态电压频率调节系统的工作流程如下(主要部件及关系参见图3)。
采集与系统负载有关的信息,计算当前的系统负载。这个过程可以用软件实现,也可以用硬件实现。软件实现的过程是在操作系统的核心调用中安放钩子,根据核心函数调用的频度使用不同的算法来判断系统的负载。CPU负载跟踪与性能预测的工作也可以由硬件完成,如Freecscale的i.Mx31,通过采集一些核心信号中断线、Cache、内存总线的使用情况等,计算当前的系统负载。这样,一方面确保了负载计算的准确性;另一方面减轻了CPU用于负载跟踪与性能预测的负担。不过,硬件实现的缺点就是无法灵活地选择预测算法。
根据系统的当前负载,预测系统在下一时间段需要的性能。有多种预测算法可以选择,要根据具体的应用来决定。同样的,预测也可由软件或硬件实现。
将预测的性能转换成需要的频率,从而调整芯片的时钟设置。
根据新的频率计算相应的电压,并通知电源管理模块调整供给CPU的电压。这需要特别的电源管理芯片,比如Freescale公司的MC13783或者NS公司的支持PowerWise特性的系列电源管理芯片。它们能够支持微小的电压调整(25mV)并且能在极短的时间内(几十μs)完成电压的调整。
综上所述,支持闭环AVS功能的标准系统配置必须有以下的基本元件:内置于处理器的先进电源控制器APC、集成PWI从属器的电源管理芯片,以及将两者连接在一起的PWI串行总线。电源管理集成电路负责为处理器提供不同的电压,电压大小则由先进电源控制器内的PWI主控器负责调节,办法是由主控器将有关的命令传往PWI从属器,再由相关的电路进行调节。
先进电源控制器APC负责接收主处理器的命令,为电压控制过程提供一个不受处理器影响的操作环境,以及实时跟踪逻辑电路的操作速度。APC永远处于戒备状态,不断监测系统的一切参数,例如,系统温度、负载、瞬态、工艺及其他有关的变动,每当APC收到有关频率即将转变的消息,立刻分析判断,以确定若以新频率操作,系统最少需要多大供电电压才可保持稳定。整个过程由闭环电路负责监控。
4. 其他方案
4.1 动态功率切换 DPS
动态功率切换 (DPS) 先确定器件何时可完成当前的计算任务,如果暂时不需要,则让器件进入低功耗待机状态(图 2)。例如,处理器在等待 DMA 传输完成过程中会进入低功耗状态。处理器在唤醒后几微秒内就能返回正常工作状态。
4.2 静态漏电管理 SLM
虽然 DPS 可让多媒体片上系统 (SoC) 的一部分进入低功耗状态,不过在有些情况下,我们可让整个器件都进入低功耗模式 — 在没有应用运行时自动或通过用户请求进入低功耗模式。要实现这一目的,我们可应用静态漏电管理 (SLM) 技术,启动待机或器件关闭模式。这两种模式一个关键的不同之处在于:在待机模式下,器件仍然占用着内部存储器和逻辑,而在器件关闭模式下,所有系统状态都保存于外部存储器中。利用 SLM 技术,唤醒时间大大快于冷启动速度,因为程序已经载入到了外部存储器,用户无需等待操作系统 (OS) 完全重新启动。在采用 SLM 技术情况下,我们以媒体播放器为例,如果打开十秒钟后还没有得到处理指令或用户输入,就会关闭显示屏进入待机或器件关闭模式。
例如,TI 采用 ARM Cortex-A8 内核的 OMAP35x 单芯片处理器器件就支持器件关闭模式,即器件可自动唤醒的最低功耗模式。除了唤醒域之外,所有电源域均关闭,耗电的只有唤醒域与 I/O 漏电流。系统时钟关闭,在此情况下,唤醒域的时钟被单独设为 32 kHz。此外,OMAP35x 还可自动向外部稳压器发送信号,稳压器能够在深度睡眠状态下关闭。处理器内部不保存存储器或逻辑。在进器件关闭电模式前,系统状态存储在外部存储器中。经后唤醒复位后,微处理器单元 (MPU) 会启动用户定义的功能,SDRAM 控制器配置从高速暂存存储器 (SPM) 中恢复。
5. 其他需要考虑的问题
电压的降压将导致与外部芯片接口的管脚的阈值电平发生变化,当与外部逻辑相连时,必须使用电平变换逻辑进行转接,以适配接口两侧的阈值电平。例如一个电压为0.8~1.2V的AVS电路和一个固定电压1.2V的电路接口,则AVS电路的接口逻辑必须按照1.2V接口进行适配设计。类似的,由于DVS或AVS可能导致的频率变化,与外部的同步电路设计接口时,必须计算接口的时序余量,如果时序不能完全匹配,则还需要添加额外的同步或延时电路来进行时序调整。
在调整频率和电压时,要特别注意调整的顺序。当频率由高到低调整时,应该先降频率,再降电压;相反,当升高频率时,应该先升电压,再升频率。
输出电压范围及电压变化期间的斜率是必须考虑的两个参数。在电压发生变化的DVS周期中,必须控制输出电压的斜率,采用外部组件可以实现控制,也可以采用能够在内部降低参考电压变化的调速电容器,或者部署能够通过较小的步长(如25mV)将输出电压从初始值调节到目标值的数字计数器等。
不断降低的电压电平对输出电压的精度也提出了更高的要求。因此,一般很难找到合适的标准器件来满足相关需求。如果采用外部反馈分压器,则电阻器的容差会增加内部电路的总容差。此类系统中的整体精度始终低于采用内部固定输出电压的解决方案,尽管后者需要2个额外的外接组件。因此,对于采用在工作过程中能够微调的内部电阻分压器的转换器而言,需要定义一系列不同的电压,而且在-40~+85℃温度范围内达到±1%的整体DC精度。
为了在不同的负载情况下实现最佳的瞬态响应或较低的输出电压容差,还必须采取其他措施,除了内部设计之外,还必须优化外部元件。采用较低的电感值,电流能够以较快的速度提高,这尤其适合快速瞬态响应。在瞬态情况下,如果没有负载,则较低的电感值较为有利,因为它将按照较低的电压仅为输出电容器充电并且具有较低的电压过冲。
影响动态电压与频率调节技术得到广泛应用的另一个最关键因素是预测的可靠性。没有一种预测算法是100%准确的,也没有一种算法可以应用于所有的程序;而对于某些应用(如音频、视频等),预测失败的结果是不可接受的。但随着预测算法的进步,动态电压、频率控制技术必将得到广泛的应用,因为它能够节省很多能量。而节能对许多便携式设备来说,常常是第一要求。