消費(fèi)者對(duì)采用多媒體嵌入式處理器產(chǎn)品的需求迅速增長(zhǎng),這既要求提高性能又要求降低功耗。但是高性能處理必須增加計(jì)算復(fù)雜度并加快時(shí)鐘速率,,如果采用權(quán)宜之計(jì)的節(jié)省功耗設(shè)計(jì)方案,是很難實(shí)現(xiàn)的。我們需要的是一種具有戰(zhàn)略意義的方法來(lái)管理功耗,,以便在具體的嵌入式應(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)整性能。下面我們先來(lái)看看嵌入式系統(tǒng)中的幾個(gè)關(guān)鍵的功耗問(wèn)題考慮,,再看看Blackfin處理器系列如何采樣動(dòng)態(tài)電源管理功能來(lái)解決這些問(wèn)題,。
1. 改變頻率和電壓
現(xiàn)代DSP通常適合用于采用CMOS 場(chǎng)效應(yīng)管(FET)開(kāi)關(guān)的一種處理過(guò)程,在穩(wěn)定的狀態(tài)期間要么完全導(dǎo)通,,要么完全關(guān)斷(漏電流除外),。靜態(tài)功耗(處理器空閑時(shí)的靜態(tài)功耗)通常要比動(dòng)態(tài)功耗低得多,動(dòng)態(tài)功耗是當(dāng)器件頻繁地開(kāi)關(guān)并且電壓擺動(dòng)時(shí)由于FET負(fù)載電容以極高的開(kāi)關(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ù)地降低功耗(見(jiàn)圖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)可能是將壓縮視頻流送出串行端口的過(guò)程,。
當(dāng)DSP長(zhǎng)時(shí)間處于監(jiān)視活動(dòng)中時(shí),,僅僅改變頻率(不改變電壓)對(duì)功耗敏感的應(yīng)用中是很有用的。也就是說(shuō),,如果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é)省凈功耗,。
另一方面,,通過(guò)降低電壓和頻率可以節(jié)省相當(dāng)大的功耗。節(jié)省的功耗可以用下式來(lái)表征:
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)然,,重要的是記住,開(kāi)發(fā)商必需保證在任何系統(tǒng)時(shí)鐘改變期間與外部系統(tǒng)連接的外圍通道的完整性,。
一個(gè)視頻電話應(yīng)用示出了如何通過(guò)改變工作頻率和工作電壓來(lái)顯著延長(zhǎng)電池壽命的能力,。例如,如果僅僅在視頻連接期間需要最高性能(最大內(nèi)核時(shí)鐘頻率),,那么在使用電話僅用于語(yǔ)音處理的時(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)頻率,。控制邏輯保證系統(tǒng)時(shí)鐘頻率不會(huì)超過(guò)內(nèi)核時(shí)鐘頻率,。
采用本方法的最大優(yōu)勢(shì)在于CCLK和SCLK在工作期間可以改變,,幾乎沒(méi)有什么時(shí)間周期開(kāi)銷。因此,,設(shè)計(jì)工程師無(wú)需兩次考慮改變時(shí)鐘頻率以便滿足其代碼不同部分的不同性能需求,。從設(shè)計(jì)工程師的角度來(lái)看,結(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,,以便在沒(méi)有傳感器信號(hào)和不需要處理時(shí)提供超低功耗。
Blackfin DSP具有四種不同的工作模式(對(duì)應(yīng)于四種不同的功耗分析),,提供可選的性能和功耗特性,。表1總結(jié)了每種模式的工作特性。
全速工作模式
全速工作模式是Blackfin處理器的最高性能模式,。在這種工作狀態(tài)下,,處理器和所有允許的外圍設(shè)備都以全速運(yùn)行。PLL是允許的,,所以CCLK以CLKIN的倍頻運(yùn)行,。
有效工作模式
在有效工作模式下,,PLL允許,但是被旁路,,所以CCLK直接來(lái)自于CLKIN,。因?yàn)镃LKIN源自外部振蕩器輸入,不會(huì)超過(guò)33 MHz,,所以這種模式可以顯著節(jié)省功耗,。此時(shí)系統(tǒng)時(shí)鐘(SCLK)頻率也會(huì)降低,,因?yàn)樗肋h(yuǎn)不會(huì)超過(guò)CCLK,。在這種模式下PLL被繞開(kāi),所以改變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輸出引腳是可用的,以便允許外部功耗模式控制,。深度休眠模式只能通過(guò)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)核電壓,,無(wú)需中斷與外部器件的連接,。這是一個(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)過(guò)優(yōu)化,它就會(huì)執(zhí)行較少的指令,。完成算法所有步驟的速度越快,,內(nèi)核電壓和頻率就會(huì)降低得越快。
在支持可以選擇禁止無(wú)用功能單元(例如片內(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)它們被訪問(wèn)時(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開(kāi)始,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è)引腳來(lái)控制由ADP3053提供的功率水平,。ADP3053允許100 mV的內(nèi)核電壓步長(zhǎng)增量,,從0.9 V增加到1.5 V。另外,,ADP3053還為PLL提供低噪聲電源,。
結(jié)論
使用DSP的設(shè)計(jì)工程師無(wú)須為了性能而犧牲功耗,。有很多方法幫助他們來(lái)平衡這些經(jīng)常會(huì)發(fā)生沖突的要求,。通過(guò)從戰(zhàn)略上研究電源管理,而非權(quán)宜性的,,就可以顯著節(jié)省功耗,。Blackfin DSP系統(tǒng)為實(shí)現(xiàn)低功耗、高性能的嵌入式應(yīng)用提供了一種優(yōu)良的平臺(tái),。