影响高性能DSP功耗的因素及其优化方法
德州仪器DSP技术应用工程师 冯华亮
摘要
本文讨论影响高性能DSP功耗的因素,介绍一些DSP功耗的优化方法。 随着嵌入式应用需求的不断提高,DSP的速度也不断提高。现在常见的高性能DSP速度已达到1GHz,TI(Texas Instruments)的TMS320C6455最高速度已达到1.2GHz。然而,DSP的功耗也随着DSP的速度提升而快速增加。DSP功耗越来越成为DSP工程师关注的重要问题。 另外,1.2GHz目前几乎是DSP速度的上限,主要原因还是功耗的限制。更高速度DSP所带来的高功耗的负面影响已超过了其在性能方面带来的好处。基于这个原因,现在普遍采用的提高DSP性能的技术是在单芯片内集成更多的核,而不是单纯提高单核的运行速度。
影响DSP功耗的因素
数字电路的功耗不外乎两种:一种是动态功耗,消耗于逻辑的转换;另一种是静态功耗,由于CMOS晶体管存在的各种泄漏造成。对于较老的DSP,或者说基于大于130nm工艺的DSP,静态功耗可以忽略不计;但随着工艺不断精微,静态功耗所占的比例越来越大。
静态功耗
TI在DSP功耗方面一直处于业界领先的地位,下表列出了TI一些基于不同工艺的DSP的典型静态功耗在总功耗中所占的比例。
DSP
工艺
静态功耗所占比例
TMS320C6201
180nm
<1%
TMS320C6416
130nm
11%
TMS320C6455
90nm
24%
对于最新的基于65nm工艺的DSP,静态功耗所占的比例达到50%左右。另外,静态功耗也受DSP工作温度的影响,下图列出TMS320C6455在不同温度下的静态功耗。
从上图可以看出,随着工作温度上升,静态功耗呈指数级上升,这使得静态功耗在总功耗中所占的比例进一步提高。另外,值得注意的是,温度升高会增加功耗,而功耗增加又使芯片温度进一步升高,温度和功耗这种互相助长的特性使得DSP散热系统的设计显得更为重要。
动态功耗
当门发生逻辑状态转换并产生内部结点充电所需的开关电流以及P通道及N通道同时暂态开启引起直通电流时,就会出现动态功耗。通过以下公式可以估算其近似值:
其中,Cpd为动态电容,F为开关频率,Vcc为电源电压。上述关系中包含两个重要概念:动态功耗与开关频率呈线性关系,与电源电压呈二次关系。下图列出了TMS320C6455在不同工作频率下的典型功耗。
另外,最大安全开关频率往往取决于电源电压,所以这两者是相互关联的。以TMS320C6455为例,当工作频率小于或等于850MHz时,其要求的核电压为1.2V;而当工作频率大于850MHz时,其核电压必须为1.25V。
DSP功耗优化方法
静态功耗主要取决于芯片的设计和工艺。而实际应用中可采取的主要优化方法是控制温度。常见的散热方法包括散热片和风扇。对于高功耗DSP,散热片是低成本而且有效的散热方式;而风扇的使用则需要仔细考虑更多的因素,如风扇的尺寸,位置,成本及可靠性等等。
优化动态功耗的方法则比较多。在不影响系统性能的前提下,通过降低电压和频率就可能大大降低动态功耗。不过,降低CPU时钟速率也会成比例地延长执行该任务集的时间,因此必须仔细分析应用以确保满足其实时需求。
电压的调节需要特殊的可配置电源的支持,这可能会增加系统的成本;频率的调节则可利用DSP内部自带的可编程PLL来实现,配置不同的倍频系数即可得到不同的频率。为了实现电压/频率的调节,DSP上的软件需要实时监控DSP的负载,根据负载选择功耗最小而又能满足实时处理要求的电压/频率配置。
在DSP电压/频率一定的情况下,DSP动态功耗还受DSP使用率的影响。通常可采用以下方法来降低DSP使用率:
1. 关闭不需要或暂时不使用的外设。例如,TMS320C6455 DSP上,所以的外设模块的时钟都可以通过软件关闭或打开。
2. 空闲时,将DSP置于低功耗或睡眠模式。例如,在TMS320C6455 DSP上可以通过执行IDLE指令来实现。处于IDLE状态的DSP可被任何中断事件唤醒。因此,在等待处理数据时,为了节省功耗,应避免采用查询方式,而采用IDLE与中断结合的方式。
3. 不访问存储器时将其置于低功耗或睡眠模式。例如,TMS320C6455 DSP上,所有片内存储器都可通过软件使其处于低功耗模式,而任何对内存的访问又可使其自动恢复到正常工作模式。外部扩展SDRAM也支持自刷新模式以节省功耗。
为了更进一步降低DSP功耗,还有一些细节值得注意:
1. 充分利用Cache或其它技术减少存储器的访问。例如,TMS320C6455的SPLOOP Buffer和16-bit压缩指令可以减少代码的大小及访问频率。访问外部扩展存储器的功耗往往比访问内部存储器高得多,尽量将频繁访问的数据放在片内,以减少外部存储器的访问。另外,外部SDRAM往往基于突发(Burst)的方式访问,即使你只需要一个字节,存储器也可能会存取8个字,所以对SDRAM的要尽量采用连续大块的访问方式。
2. 优化软件,减小程序大小从而减少存储器的访问,减少代码执行时间从而降低DSP使用率。
3. 某些不用的DSP管脚允许被悬空,但通过合适的上拉或下拉将其置于确定的电平可减少由于状态不确定而导致的漏电流。
4. 某些用于调试目地的信号管脚,如TMS320C6455的输出时钟,在调试完成后可将其关闭。