今天來學(xué)習(xí)一下ARM的“智能功率分配”(Intelligent Power Allocation)技術(shù),下文中簡(jiǎn)稱IPA。大家不要與地址轉(zhuǎn)換中的“中間物理地址”(Intermediate PhysicalAddress)混淆了。
IPA是一個(gè)跟芯片功耗相關(guān)的方案。前面講過芯片低功耗設(shè)計(jì)方法,比如動(dòng)態(tài)調(diào)壓調(diào)頻(DVFS),時(shí)鐘門控等等,基于的是功耗控制角度。今天我們從芯片熱管理(Thermal Management)角度看一下。
為了提高芯片的性能,可以對(duì)于CPU等組件采取加壓升頻的辦法。
這時(shí),我們可能忽略了一點(diǎn),就是芯片的散熱問題。芯片的工作電壓越高,頻率越快,單位時(shí)間內(nèi)消耗的能量越多,其中一部分電能轉(zhuǎn)化成熱能。
這部分熱能累積在芯片內(nèi)部,如果不能即時(shí)的散發(fā)出去,將會(huì)對(duì)芯片產(chǎn)生很大的危害,可能會(huì)造成芯片的使用壽命變短,工作異常,甚至是芯片被毀壞。
對(duì)于某些芯片的工作環(huán)境來說,可以增加一些必要的散熱手段,雖然會(huì)增加整體系統(tǒng)的成本,比如我們可以在設(shè)備中增加風(fēng)扇,散熱片,散熱管,水冷等設(shè)施。
但是有些芯片的工作環(huán)境受限,比如手機(jī)芯片,就沒辦法增加散熱設(shè)施。這就要求芯片主動(dòng)進(jìn)行熱管理,軟件可以通過芯片中的硬件組件(比如傳感器)來感知芯片中的溫度,結(jié)合算法來調(diào)整硬件的供電電壓和工作頻率。
在Linux內(nèi)核中,控制芯片內(nèi)部溫度的機(jī)制叫做“熱框架(Thermal Framework)”。在這套體系下,芯片中有一個(gè)熱管理組件(governor),芯片內(nèi)部可以劃分成多個(gè)“熱區(qū)(Thermal Zone)”,每個(gè)熱區(qū)中有溫度傳感器和冷卻設(shè)備(Cooling Device)。這里的冷卻設(shè)備指的是產(chǎn)生熱能的組件,也就是功能模塊,比如CPU和GPU。
這也好理解,因?yàn)樾酒瑑?nèi)的降溫手段只能是被動(dòng)的(passive),即讓功能模塊在單位時(shí)間內(nèi)少產(chǎn)生熱能。 IPA就是熱管理組件。IPA的基本原理是基于一個(gè)比例積分微分(Proportional Integral Derivative,PID)控制器和一套功率分配算法,并且要求冷卻設(shè)備提供功率模型(Power Model)。
IPA通過比例積分微分控制器來感知芯片的溫度控制需求,然后通過算法來動(dòng)態(tài)確定每個(gè)組件的功率上限(Power Budget),最后通過組件的功率模型來調(diào)整其工作環(huán)境。接下里一一介紹。 下圖展示了IPA如何工作。IPA通過溫度傳感器探測(cè)芯片中的溫度,確定SoC的功率上限,結(jié)合組件的功率需求,動(dòng)態(tài)分配每個(gè)組件的功率值。
從硬件組成上來看,首先IPA需要有一個(gè)功率仲裁(Power Arbiter)單元。功率仲裁器內(nèi)要實(shí)現(xiàn)一個(gè)PID控制器,其控制輸入是溫度傳感器,功率策略(Power Policy)和設(shè)備的功率請(qǐng)求,控制輸出是各個(gè)設(shè)備的功率/性能限定。
PID控制器是一個(gè)閉環(huán)控制系統(tǒng)(closed-loop control system),廣泛應(yīng)用于工業(yè)控制中。所謂的閉環(huán)控制系統(tǒng),指的是被控對(duì)象的輸出會(huì)反送回來影響控制器的輸出。閉環(huán)控制系統(tǒng)有正反饋和負(fù)反饋之分,若反饋信號(hào)與系統(tǒng)給定值信號(hào)相反,則稱為負(fù)反饋(Negative Feedback),若極性相同,則稱為正反饋(positivefeedback)。
PID的這三個(gè)單詞分別代表的是比例控制,積分控制和微分控制。其中,P是控制器的輸出與輸入誤差信號(hào)成比例關(guān)系;I與誤差積分成正比,表示過去錯(cuò)誤的累積值;D與誤差的倒數(shù)成正比關(guān)系,根據(jù)D當(dāng)前變化率進(jìn)行線性外推,預(yù)測(cè)未來誤差。PID控制器的數(shù)學(xué)表達(dá)參考下圖。
功率模型代表了冷卻設(shè)備的功率特性。功率模型包含了設(shè)備的頻率限制,性能與功率的相對(duì)關(guān)系等。功率模型的質(zhì)量決定了應(yīng)用IPA的質(zhì)量,如果功率模型偏差太大,那么IPA的效果肯定好不到哪去。功率模型不是一個(gè)完全的設(shè)計(jì)值,應(yīng)該是通過芯片測(cè)試加以校對(duì)得出的。
所以,無論模型有多精確,實(shí)際功耗仍與功率模型預(yù)測(cè)有偏差。 功率分配策略(power allocation policy)是在軟件中定義的。如果一個(gè)設(shè)備被分配的功率值小于其最大性能所需要的功率值,那么設(shè)備將工作在分配的功率值,也就是此設(shè)備性能受限,工作在對(duì)應(yīng)的電壓/頻率點(diǎn);如果設(shè)備被分配的功率值大于其最大性能所需要的功率值,那么多余的功率會(huì)被分配給其它的設(shè)備。
功率分配策略也是一個(gè)通過測(cè)試和調(diào)教,迭代出來的。功率分配策略和功率模型會(huì)共同影響IPA的執(zhí)行效果。
下面是一個(gè)了IPA運(yùn)行測(cè)試案例。SoC系統(tǒng)中有大核處理器,小核處理器和GPU。圖中的橫坐標(biāo)是時(shí)間,縱坐標(biāo)是頻率。紅線表示的是GPU模塊的頻率隨時(shí)間變化;綠線表示的是小核的頻率隨時(shí)間變化;藍(lán)線表示的是大核的頻率隨時(shí)間變化。 在芯片啟動(dòng)階段,也就是圖中的“Period 1”階段,由于其內(nèi)部溫度低,IPA沒有啟動(dòng),所以三個(gè)模塊均工作在最高頻率。
在“Period 2”和“Period 4”階段,GPU的負(fù)載大,CPU的負(fù)載小,所以分配給GPU的功率多,GPU工作在較高的頻率,而CPU工作在較低的頻率。
在“Period 3”階段,GPU的負(fù)載小,CPU的負(fù)載大,這時(shí)分配給CPU的功率多,CPU工作在較高的頻率。
芯片工作了一段時(shí)間后,其內(nèi)部溫度上升。在“Period 5”階段,IPA對(duì)所有的模塊進(jìn)行了功率限制,GPU和CPU都工作在了較低的頻率。
最后總結(jié)一下,IPA是一個(gè)軟硬件相結(jié)合的SoC功耗/熱解決方案。在硬件方面,SoC需要實(shí)現(xiàn)調(diào)壓調(diào)頻的機(jī)制,溫度傳感器等,并且在設(shè)計(jì)初期劃定好需要管理的“熱區(qū)”;在軟件方面,需要實(shí)現(xiàn)硬件驅(qū)動(dòng)程序,上層的分配算法等等。采用IPA技術(shù)的往往是復(fù)雜的SoC,通常在這些SoC上需要運(yùn)行操作系統(tǒng)。目前,IPA已經(jīng)集成在Linux 4.2及以上版本中。?
審核編輯:劉清
學(xué)習(xí)一下ARM的智能功率分配技術(shù)
- 處理器(221450)
- ARM(361233)
- 控制器(170262)
- SoC系統(tǒng)(10562)
- DVFS(11920)
相關(guān)推薦
ARM和安卓開發(fā)學(xué)習(xí)
師兄師姐們你們好,我以前學(xué)過單片機(jī),并且用單片機(jī)做過一些項(xiàng)目,比如關(guān)于單片機(jī)對(duì)220V白熾燈的智能光照控制系統(tǒng),走迷宮的機(jī)器人等。現(xiàn)在只學(xué)習(xí)單片機(jī)已經(jīng)不能滿足社會(huì)前進(jìn)的需求了,所以,后面我想學(xué)習(xí)一下
2013-11-24 00:54:29
ARM匯編學(xué)習(xí)
以前用ARM的IDE工具,使用的是ARM標(biāo)準(zhǔn)的匯編語言。現(xiàn)在要使用GNU的工具,當(dāng)然要了解一點(diǎn)GNU ARM匯編的不同之處。其實(shí)非常的簡(jiǎn)單,瀏覽一下文檔然后再看看程序就完全可以搞定了,或者你硬著頭皮
2017-11-24 10:52:41
arm學(xué)習(xí)遇到分離點(diǎn),希望學(xué)習(xí)過來的給點(diǎn)建議
,挺有趣的。看了之后,覺得如何想對(duì)編程掌握更好的話,很有必要看c的數(shù)據(jù)結(jié)構(gòu)和算法分析,接著也有朋友建議要看程序的堆棧分配和管理,學(xué)一下如何裁剪linux內(nèi)核,ubootfileSystem的制作所以希望學(xué)習(xí)過來的燒友們給予適當(dāng)建議~~謝謝
2012-12-29 19:25:23
arm技術(shù)是哪個(gè)國(guó)家的
ARM是一家成立于1990年的芯片設(shè)計(jì)公司,總部仍位于英國(guó)劍橋。 ARM公司本身并不生產(chǎn)處理器,而是將其技術(shù)授權(quán)給世界上許多著名的半導(dǎo)體、軟件和OEM廠商。全世界有超過95%的智能手機(jī)和平
2020-06-22 09:33:58
arm該如何學(xué)習(xí)呢
本人剛開始接觸arm11開發(fā)板,現(xiàn)在感覺沒法下手,各位大俠有沒有什么好的學(xué)習(xí)經(jīng)驗(yàn)麻煩介紹一下吧,謝謝
2014-02-20 17:11:38
一個(gè)學(xué)習(xí)ARM菜鳥的學(xué)習(xí)歷程
高大上,但是一直不知道該怎么入門,于是隨便在百度上搜了一下,剛好看到朱老師的零基礎(chǔ)帶你學(xué)Linux,說實(shí)話也沒太在意,畢竟這種標(biāo)題的課件太多了。點(diǎn)開看了一下,他先講了一下嵌入式這個(gè)行業(yè)的發(fā)展,然后講了
2016-01-03 09:49:25
功率源校準(zhǔn)智能空開的問題
功率源校準(zhǔn)智能空開的問題1.功率源面板為何有IA和Ia?怎么有兩個(gè)電流端口?2.為何使用功率源校準(zhǔn)智能空開時(shí),UA和IA要短接起來?誰搞過智能空開的,討論下
2018-06-28 09:58:57
功率分配器
依舊是涼風(fēng)習(xí)習(xí)的天氣,不過踏青正好。葉子都長(zhǎng)很茂盛了,夏天的腳步來了。今天我們來了解下功率分配器吧。分配嘛,自然就有分擔(dān)的意思在里邊,這么長(zhǎng)的名字,我們就簡(jiǎn)稱為功分器了,它是一種將一路輸入信號(hào)能量
2014-05-07 18:30:48
學(xué)習(xí)ARM流程的討論
最近在學(xué)習(xí)ARM,我的方法是1、學(xué)習(xí)51單片機(jī)的開發(fā);2、ARM裸機(jī)開發(fā);3、然后再打算學(xué)習(xí)Linux??墒俏覜]有Linux的任何基礎(chǔ),不知道怎么做?有沒有高手,指導(dǎo)一下怎么學(xué)習(xí)Linux啊?或者推薦一些Linux的好書或資料??
2013-04-08 12:00:23
評(píng)論