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