動態(tài)電源管理技術優(yōu)化嵌入式應用性能與功耗比
消費者對采用多媒體嵌入式處理器產(chǎn)品的需求迅速增長,這既要求提高性能又要求降低功耗。但是高性能處理必須增加計算復雜度并加快時鐘速率,如果采用權宜之計的節(jié)省功耗設計方案,是很難實現(xiàn)的。我們需要的是一種具有戰(zhàn)略意義的方法來管理功耗,以便在具體的嵌入式應用中優(yōu)化性能與功耗的關系。利用Blackfin數(shù)字信號處理器(DSP)系列產(chǎn)品固有的動態(tài)電源管理能力,可以實現(xiàn)這樣的方法。
Blackfin DSP是定點、雙16位MAC或雙40位ALU數(shù)字信號處理器。它們非常適合于對功耗敏感的多媒體應用,因為它們支持一種多級的電源管理方法,可以根據(jù)系統(tǒng)的需求調(diào)整性能。下面我們先來看看嵌入式系統(tǒng)中的幾個關鍵的功耗問題考慮,再看看Blackfin處理器系列如何采樣動態(tài)電源管理功能來解決這些問題。
1. 改變頻率和電壓
現(xiàn)代DSP通常適合用于采用CMOS 場效應管(FET)開關的一種處理過程,在穩(wěn)定的狀態(tài)期間要么完全導通,要么完全關斷(漏電流除外)。靜態(tài)功耗(處理器空閑時的靜態(tài)功耗)通常要比動態(tài)功耗低得多,動態(tài)功耗是當器件頻繁地開關并且電壓擺動時由于FET負載電容以極高的開關頻率充放電引起的。
在
器件的等效負載電容中存儲的電荷量(Q)等于電容乘以其兩端所存儲的電壓(也就是DSP的內(nèi)核電源電壓,Vcore),
Q = CVcore,
因為給此電容充電的器件電流定義為電荷對時間的變化率,即動態(tài)電流(Idyn),由下式給出
Idyn = dQ/dt = C(dVcore/dt)
電容器電壓隨時間的變化率dVcore/dt是電容充電速度或放電速度的一種度量。對于給定的時鐘頻率(F),因為最快完成一次充電或放電應發(fā)生在一個時鐘周期內(nèi)。因此
dVcore/dt = Vcore(F)
Idyn = C(dVcore/dt) = CVcoreF
最后,動態(tài)功耗與Vcore×Idyn成正比,或者
Pdyn ∝ CVcore2F
因此很顯然,動態(tài)功耗與工作電壓的平方成正比,與工作頻率成正比。所以,如果降低F可以線性地降低動態(tài)功耗,而降低Vcore可以呈指數(shù)地降低功耗。
考慮圖1中的應用組合了三種不同的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ù)并進行很少的處理),而F2(z)可能是將壓縮視頻流送出串行端口的過程。
當DSP長時間處于監(jiān)視活動中時,僅僅改變頻率(不改變電壓)對功耗敏感的應用中是很有用的。也就是說,如果DSP正在等待一個外部觸發(fā),它就不需要以最高頻率運行。
但是,在某些電池供電應用中,簡單地改變頻率對于節(jié)省功耗可能還不夠。例如,如果某應用運行了三部分的代碼,降低其中任何一部分的工作頻率都意味著這部分代碼會花更長的時間去運行。但是如果DSP運行時間加長的話,當三部分代碼都完成時,消耗的總功率是一樣的。例如,如果頻率降低二分之一,代碼會執(zhí)行兩倍長的時間,所以就不能節(jié)省凈功耗。
另一方面,通過降低電壓和頻率可以節(jié)省相當大的功耗。節(jié)省的功耗可以用下式來表征:
PR/PN=(FCR/FCN)(VDDR/VDDN)2(TFR/TFN)
其中:
* PR/PN表示降低功耗與標稱功耗的比率
* FCN表示標稱內(nèi)核的時鐘頻率
* FCR表示降低內(nèi)核的時鐘頻率
* VDDN表示標稱內(nèi)部電源電壓
* VDDR表示降低內(nèi)部電源電壓
* TFR/表示以FCR頻率運行的持續(xù)時間
* TFN表示以FCN頻率運行的持續(xù)時間
例如,圖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上運行的函數(shù)。
例2用了雙倍運行時間,但是節(jié)省了功耗56%。
兩例中的G1工作條件相同,但是G2的工作電壓分別為1V和1.5V,因此功耗下降比率為 (1.0/1.5)2。
因為Blackfin DSP不僅具有可設置的工作頻率,而且允許內(nèi)核電壓根據(jù)頻率變化而變化,所以以降低的頻率和降低的電壓運行某一部分代碼時可以節(jié)省功耗,即使執(zhí)行時間會變長。在ADSP-21532上可以自動進行電 壓頻率的轉(zhuǎn)變,而對于ADSP-21535,需要遵循一種簡單的順序。當然,重要的是記住,開發(fā)商必需保證在任何系統(tǒng)時鐘改變期間與外部系統(tǒng)連接的外圍通道的完整性。
一個視頻電話應用示出了如何通過改變工作頻率和工作電壓來顯著延長電池壽命的能力。例如,如果僅僅在視頻連接期間需要最高性能(最大內(nèi)核時鐘頻率),那么在使用電話僅用于語音處理的時候可以將內(nèi)核頻率降低到某個預先設定值。對于僅注重附加功能而對時間不敏感的操作(例如,個人管理器),可以進一步降低頻率。在Blackfin DSP上每一次改變PLL頻率都在40ms內(nèi)完成。
Blackfin 時鐘產(chǎn)生單元
時鐘產(chǎn)生單元包括鎖相環(huán)路(PLL)和相關的控制電路,是Blackfin DSP中動態(tài)電源管理的一個完整單元。其中的PLL是高度可編程的,從而允許用戶動態(tài)地控制處理器的特性和功耗。
圖3示出ADSP-21532時鐘產(chǎn)生單元的簡單框圖。輸入晶體或振蕩器信號(10MHz~33MHz)施加到CLKIN引腳。用一個可選的1倍~31倍倍頻器作用這個信號以便產(chǎn)生VCO頻率。然后,獨立的A驅(qū)動器和B驅(qū)動器各自產(chǎn)生內(nèi)核時鐘(CCLK)和系統(tǒng)或
外圍設備時鐘(SCLK)頻率??刂七壿嫳WC系統(tǒng)時鐘頻率不會超過內(nèi)核時鐘頻率。
采用本方法的最大優(yōu)勢在于CCLK和SCLK在工作期間可以改變,幾乎沒有什么時間周期開銷。因此,設計工程師無需兩次考慮改變時鐘頻率以便滿足其代碼不同部分的不同性能需求。從設計工程師的角度來看,結(jié)果可以線性地節(jié)省動態(tài)功耗,不會增加任何實現(xiàn)上的成本。
時鐘產(chǎn)生單元的另一個特點就是它可以被旁路以便允許CLKIN信號直接連接到CCLK。這種能力允許在不頻繁地工作期間采用很低頻率的CCLK,以便進一步降低總功耗。
2. 靈活的電源管理模式
許多應用都包含一組工作模式,其顯著區(qū)別在于不同的處理需求。考慮圖4所示的系統(tǒng),其中電池供電的傳感器包含一個DSP,用作中央處理器。DSP的其中某個外圍設備可能用于采樣周圍環(huán)境的參數(shù)。在這種需要極低處理功耗的模式A中,該DSP可能只是讀取零星的遙測數(shù)據(jù)分組。當它已經(jīng)讀取了足夠的數(shù)據(jù)可以調(diào)用某種計算的算法時,該DSP隨后就進入模式B——需要大量處理的計算模式。還有可能同時存在模式C,以便在沒有傳感器信號和不需要處理時提供超低功耗。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論