消费者对采用多媒体嵌入式处理器产品的需求迅速增长,这既要求提高性能又要求降低功耗。但是高性能处理必须增加计算复杂度并加快时钟速率,如果采用权宜之计的节省功耗设计方案,是很难实现的。我们需要的是一种具有战略意义的方法来管理功耗,以便在具体的嵌入式应用中优化性能与功耗的关系。利用Blackfin数字信号处理器(DSP)系列产品固有的动态电源管理能力,可以实现这样的方法。
Blackfin DSP是定点、双16位MAC或双40位ALU数字信号处理器。它们非常适合于对功耗敏感的多媒体应用,因为它们支持一种多级的电源管理方法,可以根据系统的需求调整性能。下面我们先来看看嵌入式系统中的几个关键的功耗问题考虑,再看看Blackfin处理器系列如何采样动态电源管理功能来解决这些问题。
1. 改变频率和电压
现代DSP通常适合用于采用CMOS 场效应管(FET)开关的一种处理过程,在稳定的状态期间要么完全导通,要么完全关断(漏电流除外)。静态功耗(处理器空闲时的静态功耗)通常要比动态功耗低得多,动态功耗是当器件频繁地开关并且电压摆动时由于FET负载电容以极高的开关频率充放电引起的。
在
器件的等效负载电容中存储的电荷量(Q)等于电容乘以其两端所存储的电压(也就是DSP的内核电源电压,Vcore),
Q = CVcore,
因为给此电容充电的器件电流定义为电荷对时间的变化率,即动态电流(Idyn),由下式给出
Idyn = dQ/dt = C(dVcore/dt)
电容器电压随时间的变化率dVcore/dt是电容充电速度或放电速度的一种度量。对于给定的时钟频率(F),因为最快完成一次充电或放电应发生在一个时钟周期内。因此
dVcore/dt = Vcore(F)
Idyn = C(dVcore/dt) = CVcoreF
最后,动态功耗与Vcore×Idyn成正比,或者
Pdyn ∝ CVcore2F
因此很显然,动态功耗与工作电压的平方成正比,与工作频率成正比。所以,如果降低F可以线性地降低动态功耗,而降低Vcore可以呈指数地降低功耗(见图1)。
考虑图1中的应用组合了三种不同的DSP功能,所以它们具有完全不同的性能需求:
F0(x) 1.5 V 300 MHz
F1(y) 1.0 V 100 MHz
F2(z) 1.3 V 225 MHz
例如,F0(x)可能是一种视频处理算法,F1(y)可能是某种监视模式(其中DSP采集数据并进行很少的处理),而F2(z)可能是将压缩视频流送出串行端口的过程。
当DSP长时间处于监视活动中时,仅仅改变频率(不改变电压)对功耗敏感的应用中是很有用的。也就是说,如果DSP正在等待一个外部触发,它就不需要以最高频率运行。
但是,在某些电池供电应用中,简单地改变频率对于节省功耗可能还不够。例如,如果某应用运行了三部分的代码,降低其中任何一部分的工作频率都意味着这部分代码会花更长的时间去运行。但是如果DSP运行时间加长的话,当三部分代码都完成时,消耗的总功率是一样的。例如,如果频率降低二分之一,代码会执行两倍长的时间,所以就不能节省净功耗。
另一方面,通过降低电压和频率可以节省相当大的功耗。节省的功耗可以用下式来表征:
PR/PN=(FCR/FCN)(VDDR/VDDN)2(TFR/TFN)
其中:
* PR/PN表示降低功耗与标称功耗的比率
* FCN表示标称内核的时钟频率
* FCR表示降低内核的时钟频率
* VDDN表示标称内部电源电压
* VDDR表示降低内部电源电压
* TFR/表示以FCR频率运行的持续时间
* TFN表示以FCN频率运行的持续时间
例如,图2示出了具有如下特性的一种情况:
* FCN = 300 MHz
* FCR = 100 MHz
* VDDN = 1.5 V
* VDDR = 1.0 V
* TFR = 3
* TFN = 1
因此
(PR/PN) = (100/300)(1.0/1.5)2 ×(3/1) = 0.44(功耗节省了56%)
G1和G2是在DSP上运行的函数。
例2用了双倍运行时间,但是节省了功耗56%。
两例中的G1工作条件相同,但是G2的工作电压分别为1V和1.5V,因此功耗下降比率为 (1.0/1.5)2。
因为Blackfin DSP不仅具有可设置的工作频率,而且允许内核电压根据频率变化而变化,所以以降低的频率和降低的电压运行某一部分代码时可以节省功耗,即使执行时间会变长。在ADSP-21532上可以自动进行电 压频率的转变,而对于ADSP-21535,需要遵循一种简单的顺序。当然,重要的是记住,开发商必需保证在任何系统时钟改变期间与外部系统连接的外围通道的完整性。
一个视频电话应用示出了如何通过改变工作频率和工作电压来显著延长电池寿命的能力。例如,如果仅仅在视频连接期间需要最高性能(最大内核时钟频率),那么在使用电话仅用于语音处理的时候可以将内核频率降低到某个预先设定值。对于仅注重附加功能而对时间不敏感的操作(例如,个人管理器),可以进一步降低频率。在Blackfin DSP上每一次改变PLL频率都在40ms内完成。
Blackfin 时钟产生单元
时钟产生单元包括锁相环路(PLL)和相关的控制电路,是Blackfin DSP中动态电源管理的一个完整单元。其中的PLL是高度可编程的,从而允许用户动态地控制处理器的特性和功耗。
图3示出ADSP-21532时钟产生单元的简单框图。输入晶体或振荡器信号(10MHz~33MHz)施加到CLKIN引脚。用一个可选的1倍~31倍倍频器作用这个信号以便产生VCO频率。然后,独立的A驱动器和B驱动器各自产生内核时钟(CCLK)和系统或
外围设备时钟(SCLK)频率。控制逻辑保证系统时钟频率不会超过内核时钟频率。
采用本方法的最大优势在于CCLK和SCLK在工作期间可以改变,几乎没有什么时间周期开销。因此,设计工程师无需两次考虑改变时钟频率以便满足其代码不同部分的不同性能需求。从设计工程师的角度来看,结果可以线性地节省动态功耗,不会增加任何实现上的成本。
时钟产生单元的另一个特点就是它可以被旁路以便允许CLKIN信号直接连接到CCLK。这种能力允许在不频繁地工作期间采用很低频率的CCLK,以便进一步降低总功耗。
2. 灵活的电源管理模式
许多应用都包含一组工作模式,其显著区别在于不同的处理需求。考虑图4所示的系统,其中电池供电的传感器包含一个DSP,用作中央处理器。DSP的其中某个外围设备可能用于采样周围环境的参数。在这种需要极低处理功耗的模式A中,该DSP可能只是读取零星的遥测数据分组。当它已经读取了足够的数据可以调用某种计算的算法时,该DSP随后就进入模式B——需要大量处理的计算模式。还有可能同时存在模式C,以便在没有传感器信号和不需要处理时提供超低功耗。
Blackfin DSP具有四种不同的工作模式(对应于四种不同的功耗分析),提供可选的性能和功耗特性。表1总结了每种模式的工作特性。
全速工作模式
全速工作模式是Blackfin处理器的最高性能模式。在这种工作状态下,处理器和所有允许的外围设备都以全速运行。PLL是允许的,所以CCLK以CLKIN的倍频运行。
有效工作模式
在有效工作模式下,PLL允许,但是被旁路,所以CCLK直接来自于CLKIN。因为CLKIN源自外部振荡器输入,不会超过33 MHz,所以这种模式可以显著节省功耗。此时系统时钟(SCLK)频率也会降低,因为它永远不会超过CCLK。在这种模式下PLL被绕开,所以改变PLL的倍频系数是很安全的;但是,这种改变要直到DSP回到全速工作模式下才能奏效。在有效工作模式下, PLL不仅可以被旁路——它也可以被禁止,以便进一步节省功耗。
休眠模式
休眠模式由于禁止CCLK使得DSP内核空闲,所以显著降低了功耗。但是,SCLK仍然是允许的,因此二级存储器L2和外围设备中仍然可以进行数据转移。为了从休眠模式中退出,Blackfin提供一种DSP内核唤醒功能,其工作独立于内核的事件控制器。
深度休眠模式
深度休眠模式由于禁止PLL, CCLK和SCLK,所以最大地节省功耗。在这种模式下,处理器内核和所有的外围设备都被禁止,除了实时时钟(RTC)以外。在深度休眠模式下,DEEP_SLEEP输出引脚是可用的,以便允许外部功耗模式控制。深度休眠模式只能通过RTC中断或者硬件复位事件才能退出。RTC中断使得处理器转变为有效工作模式;硬件复位起动硬件复位时序。
3. 独立的功耗域
Blackfin DSP支持多种功耗域,包括专用的锁相环功耗域,可用很小的钮扣电池供电的实时时钟(RTC),以及用于各种外围设备的独立域。内核处理器也有自己的功耗域。采用多种功耗域提供最大的灵活性,同时保证与市场上可提供的多种器件之间的直接连通性,例如SDRAM和SRAM存储器。如图5所示,独立的功耗域允许改变Blackfin DSP的内核电压,无需中断与外部器件的连接。这是一个很重要的优势,因为——如上面提到的——处理器消耗的功率与其工作电压的平方成正比。
4. 采用高效的处理器体系结构
对于给定应用降低功耗的另外一种经常被忽视的方法是为该应用选择一种高效的处理器体系结构。 这种结构特性,例如特殊指令和快速的存储器结构,由于减少总的算法执行时间而显著降低功耗。另外,注重功耗的应用使高效的结构化算法极为重要,从而利用固有的体系结构特点,例如硬件环路缓冲和指令数据高速缓存。重要的是应该认识到复杂的算法通常会增加功耗,因为它们会占用较多的资源。如果算法经过优化,它就会执行较少的指令。完成算法所有步骤的速度越快,内核电压和频率就会降低得越快。
在支持可以选择禁止无用功能单元(例如片内存储器、外围设备、时钟等)的体系结构中,可以进一步降低功耗。
Blackfin DSP允许动态安排每个外围设备的时钟输入时序,从而提供附加的功率控制能力。这样就允许更加精细地控制功耗。而且,内部时钟仅仅连接到器件的允许工作部分。例如,在ADSP-21535中,256kB的片内二级存储器L2由8个32kB的存储器组构成。这些存储器组仅当它们被访问时才提供时钟,这个特性可以显著节省功耗。
5. 分析工具
还有另外一种优化功耗的方法,Blackfin VisualDSP++工具套件可以分析应用程序以便确定一种算法每个部分的精确处理需求。这种分析工具允许系统设计工程师实时地定量分
析任何给定代码段需要消耗的时间。如果在电池供电应用中采用这种方法,那么其内核和系统频率,以及内核电压,都可以进行修改以便达到完成该任务所需最小功耗的最佳匹配。
6. 智能电压调节
从ADSP-21532开始,Blackfin DSP提供内置内核电压调节。首款Blackfin DSP器件ADSP-21535需要一片外部电源管理芯片才允许动态控制内核电压。ADP3053是一种支持ADSP-21535的电源管理的辅助芯片。该DSP使用3个引脚来控制由ADP3053提供的功率水平。ADP3053允许100 mV的内核电压步长增量,从0.9 V增加到1.5 V。另外,ADP3053还为PLL提供低噪声电源。
结论
使用DSP的设计工程师无须为了性能而牺牲功耗。有很多方法帮助他们来平衡这些经常会发生冲突的要求。通过从战略上研究电源管理,而非权宜性的,就可以显著节省功耗。Blackfin DSP系统为实现低功耗、高性能的嵌入式应用提供了一种优良的平台。