power state由于aarch64架構(gòu)有多種不用的電源狀態(tài),不同電源狀態(tài)的功耗和喚醒延遲不同。
如standby狀態(tài)會關(guān)閉power domain的clock,但并不關(guān)閉電源。因此它雖然消除了門電路翻轉(zhuǎn)引起的動態(tài)功耗,但依然存在漏電流等引起的靜態(tài)功耗。故其功耗相對較大,但相應(yīng)地喚醒延遲就比較低。
而對于power down狀態(tài),會斷開對應(yīng)power domain的電源,因此其不僅消除了動態(tài)功耗,還消除了靜態(tài)功耗,相應(yīng)地其喚醒延遲就比較高了。
psci一共為power domain定義了四種power state:
(1)run:電源和時鐘都打開,該domain正常工作
(2)standby:關(guān)閉時鐘,但電源處于打開狀態(tài)。其寄存器狀態(tài)得到保存,打開時鐘后就可繼續(xù)運行。功耗相對較大,但喚醒延遲較低。arm執(zhí)行wfi或wfe指令會進入該狀態(tài)。
(3)retention:它將core的狀態(tài),包括調(diào)試設(shè)置都保存在低功耗結(jié)構(gòu)中,并使其部分關(guān)閉。其狀態(tài)在從低功耗變?yōu)檫\行時能自動恢復(fù)。從操作系統(tǒng)角度看,除了進入方法、延遲等有區(qū)別外,其它都與standby相同。它的功耗和喚醒延遲都介于standby和power down之間。
(4)power down:關(guān)閉時鐘和電源。power domain掉電后,所有狀態(tài)都丟失,上電以后軟件必須重新恢復(fù)其狀態(tài)。它的功耗最低,但喚醒延遲也相應(yīng)地最高。
(這里我很好奇怎么和linux的s3、s4對應(yīng)的。當(dāng)時測試s3的時候,對應(yīng)的是suspend。這里的對于cpu的有off、on、suspend三種,我覺得這里應(yīng)該就是對于的standby,因為有wfi或wfe這些指令。那s4就是CPU off了?可以看一下這個有點認識,突然想到psci里面的狀態(tài)是對于的cpu為對象,但是linux的電源管理應(yīng)該是對整個設(shè)備。)
顯然,power state的睡眠程度從run到power down逐步加深。而高層級power domain的power
state不應(yīng)低于低層級power domain。
如以上例子中core 0 – core 2都為power down狀態(tài),而core 3為standby狀態(tài),則cluster 0不能為retention或power down狀態(tài)。同樣若cluster 0為standby狀態(tài),而cluster 1為run狀態(tài),則整個系統(tǒng)必須為run狀態(tài)。
為了達到上述約束,不同power domain之間的power state具有以下關(guān)系:
這里解釋了psci那個源碼文檔里電源樹的概念。
psci實現(xiàn)了父leve與子level之間的電源關(guān)系協(xié)調(diào),如cluster 0中最后一個core被設(shè)置為power
down狀態(tài)后,psci就會將該cluster也設(shè)置為power donw狀態(tài)。若其某一個core被設(shè)置為run狀態(tài),則psci會先將其對應(yīng)cluster的狀態(tài)設(shè)置為run,然后再設(shè)置對應(yīng)core的電源狀態(tài),這也是psci名字的由來(power state coordinate interface)
-
電源
+關(guān)注
關(guān)注
185文章
18181瀏覽量
254423 -
cpu
+關(guān)注
關(guān)注
68文章
11013瀏覽量
215295 -
Linux
+關(guān)注
關(guān)注
87文章
11425瀏覽量
212398 -
SMP
+關(guān)注
關(guān)注
0文章
76瀏覽量
20106
發(fā)布評論請先 登錄
介紹關(guān)于編程的基礎(chǔ)知識
ARM電源管理中的PSCI是什么意思呢
電源管理基礎(chǔ)知識電源管理基礎(chǔ)知識電源管理基礎(chǔ)知識

DC-DC電源基礎(chǔ)知識

開關(guān)電源基礎(chǔ)知識

評論