DIY编程器网
标题:
DSP应用系统的低功耗探讨
[打印本页]
作者:
liyf
时间:
2012-1-27 14:04
标题:
DSP应用系统的低功耗探讨
DSP应用系统的低功耗探讨 [/td][/tr] 上海交通大学电子信息学院 邓勇 施文康 [/td][/tr] [td] 前言 随着电池供电系统的应用日趋广泛,许多应用系统都涉及低功耗设计的问题。数字信号处理器由于具有强大的数据处理能力,在诸如便携式仪器仪表等方面得到了广泛的应用,以DSP为核心的应用系统中也存在着低功耗设计的问题。有多种办法可以降低功耗,比如常用CMOS器件代替NMOS器件或双极器件等,这已经在许多场合得到应用。本文就TMS320系列定点DSP,介绍一些降低功耗的方法。 DSP应用系统低功耗设计的具体措施 1.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时的典型值为350mW。在设计时考虑这些问题往往能达到事半功倍的效果。 2.使DSP适速运行 TMS320系列的DSP一般采用CMOS工艺,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全速运行呢?可以用图1来解释这一问题:在图1(a)中,DSP以全速运行代码后进入降功耗模式(使用IDLE指令),而在图1(b)中,DSP在整个运行时间段上适速运行。如前文所指出的:DSP全速运行和适速运行该段代码所耗电能是相同的,但是,在(a)中,DSP在空闲状态还要消耗能量,而(b)中将节省这部分的能量。因此,在实际应用系统中并不需要DSP的最高MIPS运算能力时,适当降低系统的时钟频率能有效地降低系统功耗。
3.在软件设计中降低功耗 CPU内部执行不同的指令时所消耗的电流是不同的,在软件编程时如果能充分考虑到这一因素可以降低系统功耗。图2和表1给出了TMS320C5X的一些指令的功耗特性。 TMS320C5X有几种降功耗模式,这些降功耗模式中最常用的是使用IDLE和IDLE2指令。IDLE指令将CPU内部操作挂起(suspend activity),但是仍保留内部各部件逻辑的时钟,允许串口等片内外设继续工作。在20MHz的系统时钟时,执行IDLE指令所需电流的典型值为10mA。在相同的系统时钟下,执行IDLE2指令只需要3mA的电流;若关闭内部部件的输入时钟时执行IDLE2指令,这时电流值不超过5μA ,CPU所消耗的电能将大大降低。
从表1中可看到:对诸如NOP(空操作)这类简单的指令而言,使用RTP(重复指令)将节省约12mA的电流;但是对MACD(相乘、累加及数据块移动指令)这类CPU操作较复杂而且所需电流较大的指令来说,使用重复指令反而会增加大约14mA的电流,达到90mA。注意到这个电流值是在数据完全并行处理时得到的,在这里数据并行是指MACD指令的操作数存放在不同的数据存储块,对它们进行操作时,两个数据块中的数据将被同时选中。因此,为减低系统功耗,在软件设计时应尽可能地将所要操作的数据存储在同一个数据块中,比如TMS320C209可将MACD的操作数同存储在其片内4K字的SARAM中。 4.存储器类型对功耗的影响 前文已经提到,在DSP器件按某一算法对数据进行处理时,DSP片内的CPU将消耗大部分的能量。但是,数据处理所在的存储环境也就是存储器的类型对系统功耗有着较大的影响。以TMS320C2XX为例,在片的存储器有单访问RAM(SARAM),双访问RAM(DARAM)和ROM三种(TMS320C206还有闪速存储器)。DSP应用系统可用片内的SARAM、DARAM、ROM或片外扩展的ROM来存储用户指令代码,由于DARAM仅有256个字的容量,因此在一般情况下它被设置为数据RAM。参考文献[3]表明:(1)在相同的条件下执行一段测试代码,程序在片内的ROM运行要比在SARAM中运行节省10%的能量。这是因为:SARAM不能存储用户代码(断电后程序丢失),它只能将程序从ROM中加载后运行。在将代码用BLPD(从程序存储器到数据存储器的块移动)、TBLR(表读)和RPT(重复下一条指令)等指令从程序区传送到数据区的过程中要消耗部分能量,而在片内的ROM中运行则可节省这部分能量。(2)执行存放在片内存储器的用户代码所耗能量要比执行存放在片外的存储器低。其原因是程序在片内ROM中运行可省去驱动外部程序存储器接口电路所需要的电流。 5.正确处理外围电路 外围电路包括输入和输出两部分。从输出部分来看,外部电路的驱动要消耗一部分能量,除在DSP系统中使用的逻辑电路采用CMOS器件外,应尽可能地选用低功耗的外围器件,例如系统的显示部分应选用LCD(液晶显示器)等。当外部接口中逻辑电路所用的门电路较多时,应使用单片的PAL或ASIC来完成。从输入部分来看,DSP芯片中未使用的输入引脚应接地或接电源电压,若将这些引脚悬空,在引脚上很容易积累电荷,产生较大的感应电动势,使输入引脚电位处于0与1间的过渡区域。这时反相器上、下两个场效应管都会导通,使系统功耗大大增加。 结语 影响DSP应用系统功耗的因素除前面所提及的以外,还有很多因素:比如DSP应用系统所处环境的温度等。具体到任何一个实际的应用系统,在达到设计指标的前提下应对硬件、软件在多方面进行优化,尽可能地降低系统功耗。
[/td][/tr] [/td][/tr] [/table][/td][/tr]
欢迎光临 DIY编程器网 (http://diybcq.com/)
Powered by Discuz! X3.2