消費(fèi)者對(duì)采用多媒體嵌入式處理器產(chǎn)品的需求迅速增長(zhǎng),,這既要求提高性能又要求降低功耗,。但是高性能處理必須增加計(jì)算復(fù)雜度并加快時(shí)鐘速率,,如果采用權(quán)宜之計(jì)的節(jié)省功耗設(shè)計(jì)方案,是很難實(shí)現(xiàn)的,。我們需要的是一種具有戰(zhàn)略意義的方法來管理功耗,,以便在具體的嵌入式應(yīng)用中優(yōu)化性能與功耗的關(guān)系。利用Blackfin數(shù)字信號(hào)處理器(DSP)系列產(chǎn)品固有的動(dòng)態(tài)電源管理能力,,可以實(shí)現(xiàn)這樣的方法,。
Blackfin DSP是定點(diǎn)、雙16位MAC或雙40位ALU數(shù)字信號(hào)處理器,。它們非常適合于對(duì)功耗敏感的多媒體應(yīng)用,,因?yàn)樗鼈冎С忠环N多級(jí)的電源管理方法,可以根據(jù)系統(tǒng)的需求調(diào)整性能,。下面我們先來看看嵌入式系統(tǒng)中的幾個(gè)關(guān)鍵的功耗問題考慮,,再看看Blackfin處理器系列如何采樣動(dòng)態(tài)電源管理功能來解決這些問題。
1. 改變頻率和電壓
現(xiàn)代DSP通常適合用于采用CMOS 場(chǎng)效應(yīng)管(FET)開關(guān)的一種處理過程,,在穩(wěn)定的狀態(tài)期間要么完全導(dǎo)通,,要么完全關(guān)斷(漏電流除外)。靜態(tài)功耗(處理器空閑時(shí)的靜態(tài)功耗)通常要比動(dòng)態(tài)功耗低得多,,動(dòng)態(tài)功耗是當(dāng)器件頻繁地開關(guān)并且電壓擺動(dòng)時(shí)由于FET負(fù)載電容以極高的開關(guān)頻率充放電引起的,。
在
器件的等效負(fù)載電容中存儲(chǔ)的電荷量(Q)等于電容乘以其兩端所存儲(chǔ)的電壓(也就是DSP的內(nèi)核電源電壓,Vcore),,
Q = CVcore,,
因?yàn)榻o此電容充電的器件電流定義為電荷對(duì)時(shí)間的變化率,,即動(dòng)態(tài)電流(Idyn),由下式給出
Idyn = dQ/dt = C(dVcore/dt)
電容器電壓隨時(shí)間的變化率dVcore/dt是電容充電速度或放電速度的一種度量,。對(duì)于給定的時(shí)鐘頻率(F),,因?yàn)樽羁焱瓿梢淮纬潆娀蚍烹姂?yīng)發(fā)生在一個(gè)時(shí)鐘周期內(nèi)。因此
dVcore/dt = Vcore(F)
Idyn = C(dVcore/dt) = CVcoreF
最后,,動(dòng)態(tài)功耗與Vcore×Idyn成正比,,或者
Pdyn ∝ CVcore2F
因此很顯然,動(dòng)態(tài)功耗與工作電壓的平方成正比,,與工作頻率成正比,。所以,如果降低F可以線性地降低動(dòng)態(tài)功耗,,而降低Vcore可以呈指數(shù)地降低功耗(見圖1)。
考慮圖1中的應(yīng)用組合了三種不同的DSP功能,,所以它們具有完全不同的性能需求:
F0(x) 1.5 V 300 MHz
F1(y) 1.0 V 100 MHz
F2(z) 1.3 V 225 MHz
例如,,F(xiàn)0(x)可能是一種視頻處理算法,F(xiàn)1(y)可能是某種監(jiān)視模式(其中DSP采集數(shù)據(jù)并進(jìn)行很少的處理),,而F2(z)可能是將壓縮視頻流送出串行端口的過程,。
當(dāng)DSP長(zhǎng)時(shí)間處于監(jiān)視活動(dòng)中時(shí),僅僅改變頻率(不改變電壓)對(duì)功耗敏感的應(yīng)用中是很有用的,。也就是說,,如果DSP正在等待一個(gè)外部觸發(fā),它就不需要以最高頻率運(yùn)行,。
但是,,在某些電池供電應(yīng)用中,簡(jiǎn)單地改變頻率對(duì)于節(jié)省功耗可能還不夠,。例如,,如果某應(yīng)用運(yùn)行了三部分的代碼,降低其中任何一部分的工作頻率都意味著這部分代碼會(huì)花更長(zhǎng)的時(shí)間去運(yùn)行,。但是如果DSP運(yùn)行時(shí)間加長(zhǎng)的話,,當(dāng)三部分代碼都完成時(shí),消耗的總功率是一樣的,。例如,,如果頻率降低二分之一,代碼會(huì)執(zhí)行兩倍長(zhǎng)的時(shí)間,,所以就不能節(jié)省凈功耗,。
另一方面,通過降低電壓和頻率可以節(jié)省相當(dāng)大的功耗,。節(jié)省的功耗可以用下式來表征:
PR/PN=(FCR/FCN)(VDDR/VDDN)2(TFR/TFN)
其中:
* PR/PN表示降低功耗與標(biāo)稱功耗的比率
* FCN表示標(biāo)稱內(nèi)核的時(shí)鐘頻率
* FCR表示降低內(nèi)核的時(shí)鐘頻率
* VDDN表示標(biāo)稱內(nèi)部電源電壓
* VDDR表示降低內(nèi)部電源電壓
* TFR/表示以FCR頻率運(yùn)行的持續(xù)時(shí)間
* TFN表示以FCN頻率運(yùn)行的持續(xù)時(shí)間
例如,,圖2示出了具有如下特性的一種情況:
* FCN = 300 MHz
* FCR = 100 MHz
* VDDN = 1.5 V
* VDDR = 1.0 V
* TFR = 3
* TFN = 1
因此
(PR/PN) = (100/300)(1.0/1.5)2 ×(3/1) = 0.44(功耗節(jié)省了56%)
G1和G2是在DSP上運(yùn)行的函數(shù),。
例2用了雙倍運(yùn)行時(shí)間,但是節(jié)省了功耗56%,。
兩例中的G1工作條件相同,,但是G2的工作電壓分別為1V和1.5V,因此功耗下降比率為 (1.0/1.5)2,。
因?yàn)锽lackfin DSP不僅具有可設(shè)置的工作頻率,,而且允許內(nèi)核電壓根據(jù)頻率變化而變化,所以以降低的頻率和降低的電壓運(yùn)行某一部分代碼時(shí)可以節(jié)省功耗,,即使執(zhí)行時(shí)間會(huì)變長(zhǎng),。在ADSP-21532上可以自動(dòng)進(jìn)行電 壓頻率的轉(zhuǎn)變,而對(duì)于ADSP-21535,需要遵循一種簡(jiǎn)單的順序,。當(dāng)然,,重要的是記住,開發(fā)商必需保證在任何系統(tǒng)時(shí)鐘改變期間與外部系統(tǒng)連接的外圍通道的完整性,。
一個(gè)視頻電話應(yīng)用示出了如何通過改變工作頻率和工作電壓來顯著延長(zhǎng)電池壽命的能力,。例如,如果僅僅在視頻連接期間需要最高性能(最大內(nèi)核時(shí)鐘頻率),,那么在使用電話僅用于語音處理的時(shí)候可以將內(nèi)核頻率降低到某個(gè)預(yù)先設(shè)定值,。對(duì)于僅注重附加功能而對(duì)時(shí)間不敏感的操作(例如,個(gè)人管理器),,可以進(jìn)一步降低頻率,。在Blackfin DSP上每一次改變PLL頻率都在40ms內(nèi)完成。
Blackfin 時(shí)鐘產(chǎn)生單元
時(shí)鐘產(chǎn)生單元包括鎖相環(huán)路(PLL)和相關(guān)的控制電路,,是Blackfin DSP中動(dòng)態(tài)電源管理的一個(gè)完整單元,。其中的PLL是高度可編程的,從而允許用戶動(dòng)態(tài)地控制處理器的特性和功耗,。
圖3示出ADSP-21532時(shí)鐘產(chǎn)生單元的簡(jiǎn)單框圖,。輸入晶體或振蕩器信號(hào)(10MHz~33MHz)施加到CLKIN引腳。用一個(gè)可選的1倍~31倍倍頻器作用這個(gè)信號(hào)以便產(chǎn)生VCO頻率,。然后,,獨(dú)立的A驅(qū)動(dòng)器和B驅(qū)動(dòng)器各自產(chǎn)生內(nèi)核時(shí)鐘(CCLK)和系統(tǒng)或
外圍設(shè)備時(shí)鐘(SCLK)頻率??刂七壿嫳WC系統(tǒng)時(shí)鐘頻率不會(huì)超過內(nèi)核時(shí)鐘頻率,。
采用本方法的最大優(yōu)勢(shì)在于CCLK和SCLK在工作期間可以改變,幾乎沒有什么時(shí)間周期開銷,。因此,,設(shè)計(jì)工程師無需兩次考慮改變時(shí)鐘頻率以便滿足其代碼不同部分的不同性能需求。從設(shè)計(jì)工程師的角度來看,結(jié)果可以線性地節(jié)省動(dòng)態(tài)功耗,,不會(huì)增加任何實(shí)現(xiàn)上的成本,。
時(shí)鐘產(chǎn)生單元的另一個(gè)特點(diǎn)就是它可以被旁路以便允許CLKIN信號(hào)直接連接到CCLK。這種能力允許在不頻繁地工作期間采用很低頻率的CCLK,,以便進(jìn)一步降低總功耗,。
2. 靈活的電源管理模式
許多應(yīng)用都包含一組工作模式,其顯著區(qū)別在于不同的處理需求,??紤]圖4所示的系統(tǒng),其中電池供電的傳感器包含一個(gè)DSP,,用作中央處理器,。DSP的其中某個(gè)外圍設(shè)備可能用于采樣周圍環(huán)境的參數(shù)。在這種需要極低處理功耗的模式A中,,該DSP可能只是讀取零星的遙測(cè)數(shù)據(jù)分組,。當(dāng)它已經(jīng)讀取了足夠的數(shù)據(jù)可以調(diào)用某種計(jì)算的算法時(shí),該DSP隨后就進(jìn)入模式B——需要大量處理的計(jì)算模式,。還有可能同時(shí)存在模式C,,以便在沒有傳感器信號(hào)和不需要處理時(shí)提供超低功耗。
Blackfin DSP具有四種不同的工作模式(對(duì)應(yīng)于四種不同的功耗分析),,提供可選的性能和功耗特性。表1總結(jié)了每種模式的工作特性,。
全速工作模式
全速工作模式是Blackfin處理器的最高性能模式,。在這種工作狀態(tài)下,處理器和所有允許的外圍設(shè)備都以全速運(yùn)行,。PLL是允許的,,所以CCLK以CLKIN的倍頻運(yùn)行。
有效工作模式
在有效工作模式下,,PLL允許,,但是被旁路,所以CCLK直接來自于CLKIN,。因?yàn)镃LKIN源自外部振蕩器輸入,,不會(huì)超過33 MHz,所以這種模式可以顯著節(jié)省功耗,。此時(shí)系統(tǒng)時(shí)鐘(SCLK)頻率也會(huì)降低,,因?yàn)樗肋h(yuǎn)不會(huì)超過CCLK。在這種模式下PLL被繞開,,所以改變PLL的倍頻系數(shù)是很安全的,;但是,這種改變要直到DSP回到全速工作模式下才能奏效。在有效工作模式下,, PLL不僅可以被旁路——它也可以被禁止,,以便進(jìn)一步節(jié)省功耗。
休眠模式
休眠模式由于禁止CCLK使得DSP內(nèi)核空閑,,所以顯著降低了功耗,。但是,SCLK仍然是允許的,,因此二級(jí)存儲(chǔ)器L2和外圍設(shè)備中仍然可以進(jìn)行數(shù)據(jù)轉(zhuǎn)移,。為了從休眠模式中退出,Blackfin提供一種DSP內(nèi)核喚醒功能,,其工作獨(dú)立于內(nèi)核的事件控制器,。
深度休眠模式
深度休眠模式由于禁止PLL, CCLK和SCLK,所以最大地節(jié)省功耗,。在這種模式下,,處理器內(nèi)核和所有的外圍設(shè)備都被禁止,除了實(shí)時(shí)時(shí)鐘(RTC)以外,。在深度休眠模式下,,DEEP_SLEEP輸出引腳是可用的,以便允許外部功耗模式控制,。深度休眠模式只能通過RTC中斷或者硬件復(fù)位事件才能退出,。RTC中斷使得處理器轉(zhuǎn)變?yōu)橛行Чぷ髂J剑挥布?fù)位起動(dòng)硬件復(fù)位時(shí)序,。
3. 獨(dú)立的功耗域
Blackfin DSP支持多種功耗域,,包括專用的鎖相環(huán)功耗域,可用很小的鈕扣電池供電的實(shí)時(shí)時(shí)鐘(RTC),,以及用于各種外圍設(shè)備的獨(dú)立域,。內(nèi)核處理器也有自己的功耗域。采用多種功耗域提供最大的靈活性,,同時(shí)保證與市場(chǎng)上可提供的多種器件之間的直接連通性,,例如SDRAM和SRAM存儲(chǔ)器。如圖5所示,,獨(dú)立的功耗域允許改變Blackfin DSP的內(nèi)核電壓,,無需中斷與外部器件的連接。這是一個(gè)很重要的優(yōu)勢(shì),,因?yàn)?mdash;—如上面提到的——處理器消耗的功率與其工作電壓的平方成正比,。
4. 采用高效的處理器體系結(jié)構(gòu)
對(duì)于給定應(yīng)用降低功耗的另外一種經(jīng)常被忽視的方法是為該應(yīng)用選擇一種高效的處理器體系結(jié)構(gòu)。 這種結(jié)構(gòu)特性,,例如特殊指令和快速的存儲(chǔ)器結(jié)構(gòu),,由于減少總的算法執(zhí)行時(shí)間而顯著降低功耗。另外,注重功耗的應(yīng)用使高效的結(jié)構(gòu)化算法極為重要,,從而利用固有的體系結(jié)構(gòu)特點(diǎn),,例如硬件環(huán)路緩沖和指令數(shù)據(jù)高速緩存。重要的是應(yīng)該認(rèn)識(shí)到復(fù)雜的算法通常會(huì)增加功耗,,因?yàn)樗鼈儠?huì)占用較多的資源,。如果算法經(jīng)過優(yōu)化,它就會(huì)執(zhí)行較少的指令,。完成算法所有步驟的速度越快,,內(nèi)核電壓和頻率就會(huì)降低得越快。
在支持可以選擇禁止無用功能單元(例如片內(nèi)存儲(chǔ)器,、外圍設(shè)備,、時(shí)鐘等)的體系結(jié)構(gòu)中,可以進(jìn)一步降低功耗,。
Blackfin DSP允許動(dòng)態(tài)安排每個(gè)外圍設(shè)備的時(shí)鐘輸入時(shí)序,,從而提供附加的功率控制能力。這樣就允許更加精細(xì)地控制功耗,。而且,,內(nèi)部時(shí)鐘僅僅連接到器件的允許工作部分。例如,,在ADSP-21535中,,256kB的片內(nèi)二級(jí)存儲(chǔ)器L2由8個(gè)32kB的存儲(chǔ)器組構(gòu)成。這些存儲(chǔ)器組僅當(dāng)它們被訪問時(shí)才提供時(shí)鐘,,這個(gè)特性可以顯著節(jié)省功耗,。
5. 分析工具
還有另外一種優(yōu)化功耗的方法,Blackfin VisualDSP++工具套件可以分析應(yīng)用程序以便確定一種算法每個(gè)部分的精確處理需求,。這種分析工具允許系統(tǒng)設(shè)計(jì)工程師實(shí)時(shí)地定量分
析任何給定代碼段需要消耗的時(shí)間。如果在電池供電應(yīng)用中采用這種方法,,那么其內(nèi)核和系統(tǒng)頻率,,以及內(nèi)核電壓,都可以進(jìn)行修改以便達(dá)到完成該任務(wù)所需最小功耗的最佳匹配,。
6. 智能電壓調(diào)節(jié)
從ADSP-21532開始,,Blackfin DSP提供內(nèi)置內(nèi)核電壓調(diào)節(jié)。首款Blackfin DSP器件ADSP-21535需要一片外部電源管理芯片才允許動(dòng)態(tài)控制內(nèi)核電壓,。ADP3053是一種支持ADSP-21535的電源管理的輔助芯片,。該DSP使用3個(gè)引腳來控制由ADP3053提供的功率水平。ADP3053允許100 mV的內(nèi)核電壓步長(zhǎng)增量,,從0.9 V增加到1.5 V,。另外,ADP3053還為PLL提供低噪聲電源。
結(jié)論
使用DSP的設(shè)計(jì)工程師無須為了性能而犧牲功耗,。有很多方法幫助他們來平衡這些經(jīng)常會(huì)發(fā)生沖突的要求,。通過從戰(zhàn)略上研究電源管理,而非權(quán)宜性的,,就可以顯著節(jié)省功耗,。Blackfin DSP系統(tǒng)為實(shí)現(xiàn)低功耗、高性能的嵌入式應(yīng)用提供了一種優(yōu)良的平臺(tái),。