1, 介紹
隨著芯片的集成化程度提升,很多模塊都做到芯片的內(nèi)部,比如isp、dsp、gpu,這樣做成片上系統(tǒng)(System on Chip,簡稱SoC),好處是整個系統(tǒng)功能更內(nèi)聚,板級面積會減少,但是芯片的體積卻越來越大。為了減少芯片面積、降低芯片成本、減少芯片功耗,逐漸地提升了芯片的工藝,從而降低了功耗,提升了能耗比。光靠工藝的提升來減少功耗,還不夠。為了更好地功耗管理,ARM提出了功耗控制系統(tǒng)架構(gòu)(power control system architecture,簡稱PCSA),用來規(guī)范芯片功耗控制的邏輯實現(xiàn)。
PCSA基于ARM的組件實現(xiàn),規(guī)范包括:電壓、電源和時鐘的劃分;電源的狀態(tài)和模式;ARM電源控制框架和集成規(guī)范;ARM特定組件的電源和時鐘集成;帶有低功耗Q-channel和P-channel接口的IP。
前面的文章講述了linux側(cè)的功耗軟件管理框架(詳見前面的文章《一文搞懂linux電源管理(合集)》),但是這些軟件功耗管理都是基于芯片的相應(yīng)功能實現(xiàn)的,接下來我們看一看這個PCSA具體由哪些部分組成,通過這些組成與整個功耗控制框架的學(xué)習(xí),了解芯片上的低功耗是如何設(shè)計的。
2, 框架
2.1 基于ARM的軟硬件管理框架
基于ARM的功耗軟、硬件管理框圖:
首先用戶發(fā)起的一些操作,通過用戶空間的各service處理,會經(jīng)過內(nèi)核提供的sysfs,操作cpu hotplug、device pm、EAS、IPA等。在linux內(nèi)核中,EAS(energy aware scheduling)通過感知到當前的負載及相應(yīng)的功耗,經(jīng)過cpu idle、cpu dvfs及調(diào)度選擇idle等級、cpu頻率及大核或者小核上運行。IPA(intrlligent power allocation)經(jīng)過與EAS的交互,做熱相關(guān)的管理。
Linux kernel中發(fā)起的操作,會經(jīng)過電源狀態(tài)協(xié)調(diào)接口(Power State Coordination Interface,簡稱PSCI),由操作系統(tǒng)無關(guān)的framework(ARM Trusted Firmware,簡稱ATF)做相關(guān)的處理后,通過系統(tǒng)控制與管理接口(System Control and Management Interface,簡稱SCMI),向系統(tǒng)控制處理器(system control processor,簡稱SCP)發(fā)起低功耗操作。SCP最終會控制芯片上的sensor、clock、power domain、及板級的pmic做低功耗相關(guān)的處理。
2.2 功耗控制框架
在SoC設(shè)計中,需要一個硬件模塊能夠配合操作系統(tǒng)的功耗管理軟件或驅(qū)動,來完成頂層的功耗控制,這個硬件模塊可以是硬件電路,也可以是一個低功耗的處理器??紤]到靈活性,這個硬件模塊一般是一個微處理器核(比如cortex-M0)加上一些外圍邏輯電路做成的功耗控制單元(SCP)。為了SCP能夠完成SoC的功耗管理,又定義了一個功耗控制框架(power control framework,簡稱PCF),PCF包含了一些接口、組件、協(xié)議來配合SCP做整個SoC的功耗管理。
PCF是用于構(gòu)建SoC功耗管理所需的標準基礎(chǔ)設(shè)施組件、接口和相關(guān)操作方法集合。其中,標準基礎(chǔ)設(shè)計組件包括電源、時鐘和接口組件。比如:支持SCP通過軟件接口編程的電源策略單元(power policy unit,簡稱PPU),用于低功耗控制的低功耗接口(low power interface,簡稱LPI)。
1) PPU
PPU實現(xiàn)了軟件控制power domain開關(guān)控制的功能,SCP向PPU發(fā)起對power domain的開、關(guān)操作,其中PPU會通過LPI向power domain發(fā)起復(fù)位/解復(fù)位、時鐘開/關(guān)、電源隔離開/關(guān)的操作,然后PPU經(jīng)由電源控制系統(tǒng)狀態(tài)機(power control state machine,簡稱PCSM)控制power domain電的開、關(guān)。
2) LPI
LPI主要是指ARM的Q-channel和P-channel。Q-channel是ARM公司定義的一個低功耗接口,接口很簡單,只有四根線。從AXI的低功耗接口演變過來的,其用處是控制設(shè)備靜止狀態(tài)時的時鐘和電源。
控制器可以根據(jù)設(shè)備的工作狀態(tài)或系統(tǒng)狀態(tài),發(fā)起低功耗請求。設(shè)備可以根據(jù)自己的工作狀態(tài),從而決定是否接受請求。相比Q-channel,P-channel把PACTIVE信號加寬了,不再是一根信號,設(shè)備可以傳遞更多的工作狀態(tài)給控制器。控制器會額外多發(fā)出一組PSTATE信號,描述切換power狀態(tài)的請求。
2.3 電源域和電壓域
為了更好地對電進行控制,ARM劃分了兩個電相關(guān)的概念:電源域(power domain)和電壓域(voltage domain)。電壓域指使用同一個電壓源的模塊合集,如果幾個模塊使用相同的電壓源,就認為這幾個模塊屬于同一個電壓域。電源域指的是在同一個電壓域內(nèi),共享相同電源開關(guān)邏輯的模塊合集。即在同一個電源域的模塊被相同的電源開關(guān)邏輯控制,同時上、下電。一個電壓域內(nèi)的模塊,可以根據(jù)設(shè)計需求,拆分到不同電源域。因此,電壓域?qū)?yīng)的是功能是dvfs,而電源域的概念對應(yīng)的是power gating。
如下圖,不同顏色表示不同的電壓域,VBIG是大核處理器的電源供電,VLITTLE是小核處理器的電源供電,VGPU是圖形處理器的電源供電,VSYS是系統(tǒng)電源。虛線框包圍的模塊表示可以做電源開關(guān)處理,比如處理器核。實線框包圍的模塊表示不能做電源開關(guān),比如SCP。
審核編輯:湯梓紅
-
ARM
+關(guān)注
關(guān)注
134文章
8966瀏覽量
364999 -
soc
+關(guān)注
關(guān)注
38文章
4021瀏覽量
217012 -
Linux
+關(guān)注
關(guān)注
87文章
11123瀏覽量
207891
原文標題:一文搞懂ARM SoC功耗控制架構(gòu)
文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論