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