隨著電池供電系統的應用日趨廣泛,許多應用系統都涉及低功耗設計的問題。數字信號處理器由于具有強大的數據處理能力,在諸如便攜式儀器儀表等方面得到了廣泛的應用,以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。參考文獻表明:(1)在相同的條件下執行一段測試代碼,程序在片內的ROM運行要比在SARAM中運行節省10%的能量。這是因為:SARAM不能存儲用戶代碼(斷電后程序丟失),它只能將程序從ROM中加載后運行。在將代碼用BLPD(從程序存儲器到數據存儲器的塊移動)、TBLR(表讀)和RPT(重復下一條指令)等指令從程序區傳送到數據區的過程中要消耗部分能量,而在片內的ROM中運行則可節省這部分能量。(2)執行存放在片內存儲器的用戶代碼所耗能量要比執行存放在片外的存儲器低。其原因是程序在片內ROM中運行可省去驅動外部程序存儲器接口電路所需要的電流。 5.正確處理外圍電路 外圍電路包括輸入和輸出兩部分。從輸出部分來看,外部電路的驅動要消耗一部分能量,除在DSP系統中使用的邏輯電路采用CMOS器件外,應盡可能地選用低功耗的外圍器件,例如系統的顯示部分應選用LCD(液晶顯示器)等。當外部接口中邏輯電路所用的門電路較多時,應使用單片的PAL或ASIC來完成。從輸入部分來看,DSP芯片中未使用的輸入引腳應接地或接電源電壓,若將這些引腳懸空,在引腳上很容易積累電荷,產生較大的感應電動勢,使輸入引腳電位處于0與1間的過渡區域。這時反相器上、下兩個場效應管都會導通,使系統功耗大大增加。 結語 影響DSP應用系統功耗的因素除前面所提及的以外,還有很多因素:比如DSP應用系統所處環境的溫度等。具體到任何一個實際的應用系統,在達到設計指標的前提下應對硬件、軟件在多方面進行優化,盡可能地降低系統功耗。 |