數(shù)字信號處理(DSP)應(yīng)用系統(tǒng)中的低功耗設(shè)計
——
一、合理選擇DSP器件
應(yīng)根據(jù)系統(tǒng)要求來選擇合適的DSP器件。在典型的DSP應(yīng)用系統(tǒng)中,通常其核心是由一片或多片DSP構(gòu)成數(shù)據(jù)處理模塊,由于系統(tǒng)運算量大且速度要求高,因此DSP內(nèi)部的部件開關(guān)狀態(tài)轉(zhuǎn)換十分頻繁,這使得DSP器件的功耗在應(yīng)用系統(tǒng)的功耗中占有相當?shù)谋壤?,所以設(shè)計人員在進行電路低功耗設(shè)計時要熟悉DSP及其相關(guān)產(chǎn)品的情況。DSP器件的功耗與該系統(tǒng)的電源電壓有關(guān),同一系列的產(chǎn)品,其供電電壓也可能不同,如TMS320C2XX系列中供電電壓就有5V和3.3V兩種,在系統(tǒng)功耗是系統(tǒng)設(shè)計首要目標的情況下,應(yīng)盡可能地選擇低電壓供電的DSP器件。選擇3.3V低電壓供電的DSP除了能減小DSP本身的功耗以降低系統(tǒng)的總功耗外,還可以使外部邏輯電路功耗降低,這對實現(xiàn)系統(tǒng)低功耗有著重要的作用。DSP生產(chǎn)廠家也比較注重系統(tǒng)功耗的問題,德州儀器公司(TI)為實現(xiàn)低功耗應(yīng)用系統(tǒng)而設(shè)計了一批新型的DSP器件,以其中的TMS320C55X為例, C55X可以在0.9V和0.05mW/MIPS環(huán)境下運行,傳輸速率可達800MIPS,其功耗相當于TI上一代芯片C54X功耗的15%左右,非常適合應(yīng)用于電池供電系統(tǒng)。此外,TI公司還充分考慮 DSP電源供電設(shè)計的問題,為支持DSP設(shè)計的TPS767D3XX將兩個1-A線性穩(wěn)壓器和兩個上電復(fù)位開關(guān)封裝在一起,它不僅降低組件數(shù)量和電路板大小,使系統(tǒng)的成本降低,對于系統(tǒng)降低功耗也有重要的作用。
TPS767D3XX在全部1-A輸出范圍內(nèi)提供極快的瞬態(tài)響應(yīng)、低壓差和幾乎恒定的低靜態(tài)電流(典型值為85μA),壓差在1A時的典型值為350mV。可以說,選擇何種器件基本上就決定了系統(tǒng)功耗的大小。
二、讓DSP以適當?shù)乃俣冗\行
TMS320系列的DSP一般采用CMOS工藝,CMOS電路的靜態(tài)功耗極小,而其動態(tài)功耗的大小與該電路改變邏輯狀態(tài)的頻率和速度密切相關(guān)。TMS320系列應(yīng)用系統(tǒng)的功耗與工作頻率即系統(tǒng)時鐘(CLKOUT1)成正比。在不需要DSP的全部運算能力時,可以適當?shù)亟档蚑MS320的系統(tǒng)時鐘頻率令DSP適速運行以降低系統(tǒng)功耗。當時鐘頻率增加時,電流也相應(yīng)地增加,執(zhí)行同樣程序代碼的時間會相應(yīng)縮短。例如,以1.2mA/MHz運行一段500個時鐘周期代碼,當CLKOUT1為10MHz時,DSP執(zhí)行該段代碼用時50μs,所需電流為12mA;當CLKOUT1增加到20MHz時,所需電流增加到24mA,執(zhí)行時間縮短為25μs。TMS320系列執(zhí)行一段用戶程序所耗能量與器件執(zhí)行快慢無關(guān),因為該能量僅僅取決于DSP器件內(nèi)部邏輯狀態(tài)轉(zhuǎn)換的數(shù)目。如此看來,似乎DSP的功耗并未降低,那為什么不讓DSP全速運行呢?原來,DSP以全速運行完代碼后使用IDLE指令,進入降功耗模式后,仍然是要消耗能量的。盡管DSP全速運行和適速運行該段代碼所耗電能是相同的,但是在前一種情況下,DSP在空閑狀態(tài)還要消耗能量,而后一種情況,將節(jié)省這部分的能量。因此,在實際應(yīng)用系統(tǒng)中并不需要DSP的最高MIPS運算能力時,適當降低系統(tǒng)的時鐘頻率能有效地降低系統(tǒng)功耗。
三、在軟件設(shè)計中降低功耗
CPU內(nèi)部執(zhí)行不同的指令時所消耗的電流是不同的,在軟件編程時如果能充分考慮到這一因素,在允許的情況下盡可能多使用低功耗指令,可以降低系統(tǒng)功耗。TMS320C55X有幾種降功耗模式,這些降功耗模式中最常用的是IDLE和IDLE2指令。IDLE指令將CPU內(nèi)部操作掛起,但是仍保留內(nèi)部各部件邏輯的時鐘,允許串口等片內(nèi)外設(shè)繼續(xù)工作。在使用20MHz的系統(tǒng)時鐘時,使用IDLE指令所需電流的典型值為10mA。在相同的系統(tǒng)時鐘下,執(zhí)行IDLE2指令只需要3mA的電流;若關(guān)閉內(nèi)部部件的輸入時鐘時執(zhí)行IDLE2指令,這時電流值不超過5μA,CPU所消耗的電能將大大降低。
對諸如NOP(空操作)這類簡單的指令而言,使用RTP(重復(fù)指令)將節(jié)省約12mA的電流;但是對MACD(相乘、累加及數(shù)據(jù)塊移動指令)這類比較復(fù)雜而且所需電流較大的指令來說,使用重復(fù)指令反而會增加大約14mA的電流,達到90mA,這個數(shù)值是在所有數(shù)據(jù)并行處理的時候得到的,這里的并行處理是指MACD的操作數(shù)存放在不同的數(shù)據(jù)塊中,對它們進行操作的時候,兩塊數(shù)據(jù)將被同時選中。因此為了降低系統(tǒng)功耗,在軟件設(shè)計時應(yīng)盡可能地將所要操作的數(shù)據(jù)存儲在同一個數(shù)據(jù)塊中,比如TMS320C209可將MACD的操作數(shù)一同存儲在其片內(nèi)4K的SARAM中。
四、存儲器類型對功耗的影響
前文已經(jīng)提到,在DSP器件按某一算法對數(shù)據(jù)進行處理時,DSP片內(nèi)的CPU將消耗大部分的能量。但是,數(shù)據(jù)處理所在的存儲環(huán)境也就是存儲器的類型對系統(tǒng)功耗有著較大的影響。以TMS320C2XX為例,片內(nèi)的存儲器有單訪問RAM(SARAM),雙訪問RAM(DARAM)和ROM三種,TMS320C206還有閃速存儲器。DSP應(yīng)用系統(tǒng)可用片內(nèi)的SARAM、DARAM、ROM或片外擴展的ROM來存儲用戶指令代碼,由于DARAM僅有256字節(jié)的容量,因此在一般情況下它被設(shè)置為數(shù)據(jù)RAM。在相同的條件下執(zhí)行一段測試代碼,程序在片內(nèi)的ROM運行要比在SARAM中運行節(jié)省10%的能量。這是因為SARAM不能存儲用戶代碼,斷電后程序丟失,它只能將程序從ROM中加載后運行。在將代碼用BLPD(從程序存儲器到數(shù)據(jù)存儲器的塊移動)、TBLR(表讀)和RPT(重復(fù)下一條指令)等指令從程序區(qū)傳送到數(shù)據(jù)區(qū)的過程中要消耗部分能量,而在片內(nèi)的ROM中運行代碼則可節(jié)省這部分能量。執(zhí)行存放在片內(nèi)存儲器的用戶代碼所耗能量要比執(zhí)行存放在片外的存儲器低,其原因是程序在片內(nèi)ROM中運行可省去驅(qū)動外部程序存儲器接口電路所需要的電流。
五、正確處理外圍電路
外圍電路包括輸入和輸出兩部分。從輸出部分來看,外圍電路的驅(qū)動要消耗一部分能量,除在DSP系統(tǒng)中使用的邏輯電路采用CMOS器件外,應(yīng)盡可能地選用低功耗的外圍器件,例如系統(tǒng)的顯示部分應(yīng)選用LCD(液晶顯示器)等。當外部接口中邏輯電路所用的門電路較多時,應(yīng)使用單片的PAL或ASIC來完成。從輸入部分來看,DSP芯片中未使用的輸入引腳應(yīng)接地或接電源電壓,若將這些引腳懸空,在引腳上很容易積累電荷,產(chǎn)生較大的感應(yīng)電動勢,使輸入引腳電位處于0與1間的過渡區(qū)域。這時反相器上、下兩個場效應(yīng)管都會導(dǎo)通,使系統(tǒng)功耗大大增加。
結(jié)束語
除前面所提影響DSP應(yīng)用系統(tǒng)功耗的幾個因素以外,還有很多其他因素,比如DSP應(yīng)用系統(tǒng)所處環(huán)境的溫度等。具體到任何一個實際的應(yīng)用系統(tǒng),在達到設(shè)計指標的前提下應(yīng)細致地對硬件、軟件進行多方面的優(yōu)化,從而有效地降低系統(tǒng)功耗。
評論