基于DSP应用系统中的低功耗设计
随着电池供电系统应用的日趋广泛,许多系统特别是便携式产品都面临低功耗设计的问题,以DSP为核心的应用系统当然也不例外。本文就TMS320系列定点DSP器件为例,介绍一些行之有效的降低功耗的设计方法。
一、合理选择DSP器件
应根据系统要求来选择合适的DSP器件。在典型的DSP应用系统中,通常其核心是由一片或多片DSP构成数据处理模块,由于系统运算量大且速度要求高,因此DSP内部的部件开关状态转换十分频繁,这使得DSP器件的功耗在应用系统的功耗中占有相当的比例,所以设计人员在进行电路低功耗设计时要熟悉DSP及其相关产品的情况。DSP器件的功耗与该系统的电源电压有关,同一系列的产品,其供电电压也可能不同,如TMS320C2XX系列中供电电压就有5V和3.3V两种,在系统功耗是系统设计首要目标的情况下,应尽可能地选择低电压供电的DSP器件。选择3.3V低电压供电的DSP除了能减小DSP本身的功耗以降低系统的总功耗外,还可以使外部逻辑电路功耗降低,这对实现系统低功耗有着重要的作用。DSP生产厂家也比较注重系统功耗的问题,德州仪器公司(TI)为实现低功耗应用系统而设计了一批新型的DSP器件,以其中的TMS320C55X为例, C55X可以在0.9V和0.05mW/MIPS环境下运行,传输速率可达800MIPS,其功耗相当于TI上一代芯片C54X功耗的15%左右,非常适合应用于电池供电系统。此外,TI公司还充分考虑 DSP电源供电设计的问题,为支持DSP设计的TPS767D3XX将两个1-A线性稳压器和两个上电复位开关封装在一起,它不仅降低组件数量和电路板大小,使系统的成本降低,对于系统降低功耗也有重要的作用。
TPS767D3XX在全部1-A输出范围内提供极快的瞬态响应、低压差和几乎恒定的低静态电流(典型值为85μA),压差在1A时的典型值为350mV。可以说,选择何种器件基本上就决定了系统功耗的大小。
二、让DSP以适当的速度运行
TMS320系列的DSP一般采用CMOS工艺,CMOS电路的静态功耗极小,而其动态功耗的大小与该电路改变逻辑状态的频率和速度密切相关。TMS320系列应用系统的功耗与工作频率即系统时钟(CLKOUT1)成正比。在不需要DSP的全部运算能力时,可以适当地降低TMS320的系统时钟频率令DSP适速运行以降低系统功耗。当时钟频率增加时,电流也相应地增加,执行同样程序代码的时间会相应缩短。例如,以1.2mA/MHz运行一段500个时钟周期代码,当CLKOUT1为10MHz时,DSP执行该段代码用时50μs,所需电流为12mA;当CLKOUT1增加到20MHz时,所需电流增加到24mA,执行时间缩短为25μs。TMS320系列执行一段用户程序所耗能量与器件执行快慢无关,因为该能量仅仅取决于DSP器件内部逻辑状态转换的数目。如此看来,似乎DSP的功耗并未降低,那为什么不让DSP全速运行呢?原来,DSP以全速运行完代码后使用IDLE指令,进入降功耗模式后,仍然是要消耗能量的。尽管DSP全速运行和适速运行该段代码所耗电能是相同的,但是在前一种情况下,DSP在空闲状态还要消耗能量,而后一种情况,将节省这部分的能量。因此,在实际应用系统中并不需要DSP的最高MIPS运算能力时,适当降低系统的时钟频率能有效地降低系统功耗。
三、在软件设计中降低功耗
CPU内部执行不同的指令时所消耗的电流是不同的,在软件编程时如果能充分考虑到这一因素,在允许的情况下尽可能多使用低功耗指令,可以降低系统功耗。TMS320C55X有几种降功耗模式,这些降功耗模式中最常用的是IDLE和IDLE2指令。IDLE指令将CPU内部操作挂起,但是仍保留内部各部件逻辑的时钟,允许串口等片内外设继续工作。在使用20MHz的系统时钟时,使用IDLE指令所需电流的典型值为10mA。在相同的系统时钟下,执行IDLE2指令只需要3mA的电流;若关闭内部部件的输入时钟时执行IDLE2指令,这时电流值不超过5μA,CPU所消耗的电能将大大降低。
对诸如NOP(空操作)这类简单的指令而言,使用RTP(重复指令)将节省约12mA的电流;但是对MACD(相乘、累加及数据块移动指令)这类比较复杂而且所需电流较大的指令来说,使用重复指令反而会增加大约14mA的电流,达到90mA,这个数值是在所有数据并行处理的时候得到的,这里的并行处理是指MACD的操作数存放在不同的数据块中,对它们进行操作的时候,两块数据将被同时选中。因此为了降低系统功耗,在软件设计时应尽可能地将所要操作的数据存储在同一个数据块中,比如TMS320C209可将MACD的操作数一同存储在其片内4K的SARAM中。
四、存储器类型对功耗的影响
前文已经提到,在DSP器件按某一算法对数据进行处理时,DSP片内的CPU将消耗大部分的能量。但是,数据
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- FPGA的DSP性能揭秘(06-16)
- 用CPLD实现DSP与PLX9054之间的连接(07-23)
- DSP+FPGA结构在雷达模拟系统中的应用(01-02)