消費(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)頻率??刂七壿嫳WC系統(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)。