0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

電源管理入門-芯片設(shè)計中的電源管理介紹

yzcdx ? 來源:OS與AUTOSAR研究 ? 2023-12-06 09:16 ? 次閱讀

1. 關(guān)于PCSA和SCP

9a48dfe8-93c6-11ee-939d-92fbcf53809c.png

SCP直接控制SoC的電源時鐘,而AP通過硬件和軟件接口協(xié)同管理。

芯片設(shè)計,要完成整個芯片的電源管理,需要軟硬件結(jié)合。一般上層軟件部分交給操作系統(tǒng)LinuxAndroid等);下層軟件SCP固件(Firmware)實現(xiàn),其由MHU,PPU這些模塊構(gòu)成,當(dāng)然Core也需要有相關(guān)的硬件支持。這也就是所謂的分層管理機制。

在PCSA里面,主要規(guī)范的是邏輯實現(xiàn),物理實現(xiàn)部分并沒有在文檔中過多的體現(xiàn)。換句話說,PCSA是給芯片架構(gòu)師前端設(shè)計師看的。至于物理實現(xiàn),遵循S家和C家的流程。

在SCP中完成SoC的功耗管理(當(dāng)然,SCP不僅僅完成這個工作)。為此,ARM又定義了一大堆的接口,組件和協(xié)議來配合,統(tǒng)稱為“功耗控制框架(power control framework,以下簡稱PCF)”。

9a61e7d6-93c6-11ee-939d-92fbcf53809c.png

上層的應(yīng)用處理器(application processor,簡稱AP)可以通過軟件來給SCP發(fā)起服務(wù)(service)請求,左邊Agent我們可以理解為其它子系統(tǒng)或者IP。作為中間層的SCP是由一個M系列的處理器構(gòu)成的子系統(tǒng),負責(zé)運行固件軟件(firmware),向上可與AP通過設(shè)定好的接口/協(xié)議通信,接收服務(wù)請求,向下控制硬件單元,監(jiān)控傳感器,控制時鐘和復(fù)位,管理電源等等。有了SCP,就能把一些任務(wù)從OSPM中抽離出來,更好的把軟件和硬件隔離,增加了靈活性和安全性。

9a836bb8-93c6-11ee-939d-92fbcf53809c.png

上圖中的電源管理軟件協(xié)議棧主要分為兩部分,AP的功耗管理設(shè)備的功耗管理。其中AP的功耗管理又分為idle管理DVFS兩部分。首先看idle管理,當(dāng)AP處于idle狀態(tài)時,OSPM可以根據(jù)需要關(guān)斷時鐘,下電且retention,或完全斷電等多種操作。

此時要保證斷電的內(nèi)核仍然可由操作系統(tǒng)進行調(diào)度,并且可以被中斷喚醒。還有另外一種技術(shù)hot-plug。在這種情況下,AP核心將從操作系統(tǒng)可用于調(diào)度的池中移除。通過這種技術(shù),內(nèi)核被關(guān)閉,所有中斷和軟件線程被遷移到其它內(nèi)核。這種技術(shù)既可以按需求比例使用,也可以在計算能力因功耗或散熱受到限制的情況下使用。

9a9d049c-93c6-11ee-939d-92fbcf53809c.png

根據(jù)ARM的定義,功耗控制框架(PCF)是標(biāo)準(zhǔn)基礎(chǔ)設(shè)施組件、接口和相關(guān)方法的集合,可用于構(gòu)建SoC功耗管理所需的基礎(chǔ)設(shè)施。標(biāo)準(zhǔn)的基礎(chǔ)設(shè)施組件包括電源、時鐘和接口組件。上圖中的LPI(low power interface)主要是指ARM的Q-channel和P-channel,PPU(power policy unit)是一個硬件組件,支持SCP通過軟件接口編程。

對于不同的設(shè)備,可能需要的電源控制場景不盡相同,比如有的模塊可能只做時鐘關(guān)斷(clock gating),有的模塊需要實現(xiàn)電源關(guān)斷(power gating),在關(guān)閉設(shè)備電源的情況下,又可以區(qū)分多種細分需求,比如是不是要做邏輯或者存儲的狀態(tài)保留(retention);邏輯和存儲是不是可以分別關(guān)斷等等。各種條件做一下排列組合,可能會有很多種需求。

舉個例子,拿CMN中的系統(tǒng)緩存(HN-F)來說,邏輯部分,snoop filter(SF)部分,SLC RAM部分的電源可以分別控制;SLC RAM部分支持ON/OFF/RET三種電源狀態(tài),而且SLC RAM在物理上分為兩個bank,可以選擇開一個bank,也可以選擇兩個bank全開;SF部分也支持MEM_RET。

9ab88cf8-93c6-11ee-939d-92fbcf53809c.png

從上圖可以看出,SCP是一個完整的小系統(tǒng),該有的組件一個都不少。首先,SCP里面要有一個處理器,并且要具備足夠的處理能力。比如要能夠管理AP在idle狀態(tài)下的功耗;要能支持中斷,以及中斷優(yōu)先級排序;要支持調(diào)試功能;要能夠可信操作,等等。既然有了處理器,那就要有ROM,用于安全啟動,還要有RAM,運行固件時需要。

如果要支持DVS,就要有圖中的Voltage Regulator Control單元。為了配合DFS,還要有時鐘控制單元,用于管理PLL以及輸出時鐘信號。Messaging interface適用于OSPM和SCP之間通信的接口,常用的有mailbox和doorbell兩種方式。關(guān)于AP與SCP通信,有一套完整的協(xié)議來支持

9ade46be-93c6-11ee-939d-92fbcf53809c.png

PPU是為了控制SoC電源域用的,具體的數(shù)量和位置可以根據(jù)實際需要來定,比如可以做成分級式的或者分布式的。首先,PPU要提供一個配置接口給SCP,用于功耗策略控制和配置,目前用的是APB。其次,PPU與設(shè)備之間的控制接口,包括低功耗接口(low power interface,簡稱LPI),若干組Q-channel和一組P-channel,還有時鐘/復(fù)位控制。最后,還有一個與功耗狀態(tài)機之間的接口,P-channel。

PPU支持的power mode如下,其中ON/OFF/Warm Reset是必須支持的,其它備選。各種mode之間的切換,PPU配置,寄存器說明等細節(jié)請參考PPU的文檔。

9af38e3e-93c6-11ee-939d-92fbcf53809c.png

9b177ff6-93c6-11ee-939d-92fbcf53809c.png

電源控制部分和時鐘部分類似,就是多了一個上面提到的PPU。多提一句,PPU可以與被控制部分放在一起,也就是分布式設(shè)計。

9b281c58-93c6-11ee-939d-92fbcf53809c.png

Cluster的上電過程如下上圖,圖中的delay取決于具體設(shè)計需要:

SCP發(fā)出喚醒;

SCP拉低ACINACTM或SINACT;

SCP對PPU操作:

1)PPU打開cluster的電源開關(guān)

2)PPU拉高ISOLATEn,無效isolation cell

3)PPU拉高CLKEN,使能clock gating

4)PPU拉低RESETn,使cluster進入復(fù)位

5)PPU發(fā)出Q-channel靜止退出的請求

6)PPU拉高RESETn

7)PPU等待Q-channel握手返回

8)PPU發(fā)中斷給SCP9)SCP拉低AINACTS

關(guān)于SCP的系統(tǒng)啟動:

9b3f52f6-93c6-11ee-939d-92fbcf53809c.png9b6c2c04-93c6-11ee-939d-92fbcf53809c.png

2. 關(guān)于PSCI和SCMI

9b903608-93c6-11ee-939d-92fbcf53809c.png

PSCI(Power State Coordination Interface),翻譯一下就是“電源狀態(tài)協(xié)作接口”。從名字就能直觀看出來,PSCI是一套電源管理的標(biāo)準(zhǔn)接口,可用于操作系統(tǒng)在ARM設(shè)備上以不同權(quán)限級別監(jiān)控管理電源。

PSCI提供一套API來協(xié)調(diào)電源管理,如下:

PSCI_VERSION:可以調(diào)用此API得到當(dāng)前PSCI的版本信息;

CPU_SUSPEND:OSPM調(diào)用此API使處理器核進入低功耗模式;

CPU_OFF:此API用于hotplug,從系統(tǒng)中動態(tài)移除某個處理器核。被CPU_OFF移除的處理器核只能通過CPU_ON再次加載。與CPU_SUSPEND不同的是,這個接口函數(shù)不需要返回值;

CPU_ON:此API用于動態(tài)加載處理器核;

AFFINITY_INFO:此API允許調(diào)度方查詢親和實體(affinity instance)的狀態(tài);

MIGRATE:用于將受信任的操作系統(tǒng)(trusted OS)遷移到另一個處理器核,從而原處理器核可以調(diào)用CPU_OFF關(guān)閉電源;

MIGRATE_INFO_TYPE:允許調(diào)用方識別受信任操作系統(tǒng)中存在的多核支持級別,通過返回值可以判定受信任操作系統(tǒng)是否必須運行在單一處理器上,是否支持遷移;

MIGRATE_INFO_UP_CPU:指示受信任的操作系統(tǒng)當(dāng)前的位置;

SYSTEM_OFF:系統(tǒng)關(guān)閉;

SYSTEM_RESET:系統(tǒng)冷復(fù)位;

SYSTEM_RESET2:此API是對SYSTEM_RESET的擴展;

MEM_PROTECT:此API確保內(nèi)存在交給操作系統(tǒng)加載程序之前被重寫,從而提供防止冷重啟攻擊的保護;

MEM_PROTECT_CHECK_RANGE:此API用于檢查某段內(nèi)存范圍是否受MEM_PROTECT保護;

PSCI_FEATURES:此API允許調(diào)用方檢測已實現(xiàn)的PSCI函數(shù)及其屬性;

CPU_FREEZE:此API將處理器核設(shè)置于低功耗狀態(tài)(依賴具體設(shè)計實現(xiàn))。與CPU_SUSPEND和CPU_DEFAULT_SUSPEND不同,中斷不能喚醒該處理器;與CPU_OFF也不同,不需要遷移;

CPU_DEFAULT_SUSPEND:此API將處理器核設(shè)置于低功耗狀態(tài)(依賴具體設(shè)計實現(xiàn)),與CPU_FREEZE的調(diào)用參數(shù)不同;

NODE_HW_STATE:此API允許直接從電源控制器或電源控制邏輯確定節(jié)點的電源狀態(tài)。與AFFINITY_INFO不同,此API返回電源狀態(tài)的物理視圖;

SYSTEM_SUSPEND:此API相當(dāng)于CPU_SUSPEND到最深的低功耗狀態(tài),但實際系統(tǒng)中有可能實現(xiàn)比CPU_SUSPEND更深的低功耗狀態(tài),比如支持RAM掛起;

PSCI_SET_ SUSPEND_MODE:此API允許設(shè)置CPU_SUSPEND用于協(xié)調(diào)電源狀態(tài)的模式;

PSCI_STAT_RESIDENCY:此API返回自冷啟動后平臺處于某個電源狀態(tài)的時間;

PSCI_STAT_COUNT:此API返回自冷啟動后平臺使用某個電源狀態(tài)的次數(shù);

9ba3cc0e-93c6-11ee-939d-92fbcf53809c.png

SCP和AP之間有一個通信接口。這個通信接口在硬件上可以通過共享存儲和MHU(Message Handling Unit)實現(xiàn);在軟件上,通過定義一組通信協(xié)議來實現(xiàn)。關(guān)于MHU需要查硬件寄存器手冊。

9bc80204-93c6-11ee-939d-92fbcf53809c.png

SCMI(System Control and Management Interface)。SCMI是用于系統(tǒng)管理的一組獨立于操作系統(tǒng)的軟件接口,包括以下幾個方面:

電源域管理

性能管理

時鐘管理

傳感器管理

復(fù)位管理

電壓域管理

9bdc40de-93c6-11ee-939d-92fbcf53809c.png

關(guān)于傳輸,可以用共享存儲方式來保存AP與SCP之間的消息。通信的流程可以采用中斷,doorbell的方式,也可以采用輪詢的方式去主動查詢消息通道的狀態(tài)。采用中斷方式的通信流程如下圖:

9bf93432-93c6-11ee-939d-92fbcf53809c.pngimage.png

3. 關(guān)于芯片SoC設(shè)計中的一些要點

SCP子系統(tǒng)一般是在Always-on區(qū)域,也就是休眠的時候不下電,除非整機關(guān)機才下電。

SCP有獨立的M核硬件,所以需要設(shè)計中斷RAM內(nèi)存映射區(qū)域的使用

SCP會通過I2C連接PMIC硬件對系統(tǒng)中其他硬件模塊上電,一般按照電源域為單位,按一定順序上電

SCP通過Mailbox跟AP或者其他異構(gòu)核子系統(tǒng)通信,軟件上使用SCMI+SMT協(xié)議,硬件上使用MHU或者PL320,主要就是為了觸發(fā)中斷+共享內(nèi)存

設(shè)計SCP的硬件接口,例如I2C四根線,占四個接口

低功耗主要就是休眠和省電模式的設(shè)計,需要分析出來耗電多的子系統(tǒng)進行關(guān)閉,一般通過PMIC電源開關(guān),clock的開關(guān),硬件模塊自己支持的低功耗模式設(shè)置等

對于A核的休眠需要注意DDR中的數(shù)據(jù),可以有DDR PHY硬件控制進入retention mode,一些開機DDR訓(xùn)練參數(shù)輸出保存到Always-on的RAM中去。







審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19100

    瀏覽量

    228815
  • 電源管理
    +關(guān)注

    關(guān)注

    115

    文章

    6140

    瀏覽量

    144106
  • RAM
    RAM
    +關(guān)注

    關(guān)注

    8

    文章

    1354

    瀏覽量

    114444
  • 芯片設(shè)計
    +關(guān)注

    關(guān)注

    15

    文章

    993

    瀏覽量

    54773
  • PCF
    PCF
    +關(guān)注

    關(guān)注

    0

    文章

    32

    瀏覽量

    20865

原文標(biāo)題:電源管理入門-21 芯片設(shè)計中的電源管理

文章出處:【微信號:OS與AUTOSAR研究,微信公眾號:OS與AUTOSAR研究】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    電源管理入門-Regulator驅(qū)動是什么?Regulator的作用是什么?

    Regulator是Linux系統(tǒng)電源管理的基礎(chǔ)設(shè)施之一,用于穩(wěn)壓電源管理,是各種驅(qū)動子系統(tǒng)
    的頭像 發(fā)表于 11-16 16:51 ?9265次閱讀
    <b class='flag-5'>電源</b><b class='flag-5'>管理入門</b>-Regulator驅(qū)動是什么?Regulator的作用是什么?

    電源管理入門:驅(qū)動Runtime PM管理

    Runtime PM管理也就是設(shè)備驅(qū)動里面的電源管理,即設(shè)備驅(qū)動結(jié)構(gòu)體里面的struct dev_pm_ops,只控制設(shè)備自己的電源。這樣可以在設(shè)備不需要工作的時候可以進入到低功耗狀態(tài)
    的頭像 發(fā)表于 11-29 10:13 ?2596次閱讀
    <b class='flag-5'>電源</b><b class='flag-5'>管理入門</b>:驅(qū)動Runtime PM<b class='flag-5'>管理</b>

    電源管理入門:Power Domain管理

    SoC通常有很多IP,按邏輯可以把幾個相關(guān)功能的IP劃為一個電源域。一個電源域內(nèi)的IP,通常按相同的方式由同一個硬件模塊PMIC供電,電壓一樣并且電源
    的頭像 發(fā)表于 11-29 10:16 ?3067次閱讀
    <b class='flag-5'>電源</b><b class='flag-5'>管理入門</b>:Power Domain<b class='flag-5'>管理</b>

    電源管理入門:Hypervisor電源管理

    很多時候聽說Hypervisor,但是對底層軟件技術(shù)不了解的人感覺挺神秘。本篇文章簡單介紹下Hypervisor的基本概念,另外介紹電源管理在Hypervisor之上多OS間怎么應(yīng)用
    的頭像 發(fā)表于 12-06 09:27 ?1321次閱讀
    <b class='flag-5'>電源</b><b class='flag-5'>管理入門</b>:Hypervisor<b class='flag-5'>中</b>的<b class='flag-5'>電源</b><b class='flag-5'>管理</b>

    介紹電源管理技術(shù)的主要分類

    在日常生活,人們對電子設(shè)備的依賴越來越嚴(yán)重,電子技術(shù)的更新?lián)Q代,也同時意味著人們對電源的技術(shù)發(fā)展寄予厚望,下面就為大家介紹電源管理技術(shù)的主
    發(fā)表于 11-12 06:52

    電源管理芯片是什么_電源管理芯片介紹

    電源管理芯片(Power Management Integrated Circuits),是在電子設(shè)備系統(tǒng)擔(dān)負起對電能的變換、分配、檢測及其他電能
    發(fā)表于 11-02 09:16 ?1.6w次閱讀

    電源管理芯片引腳說明_電源管理芯片的應(yīng)用

    本文開始介紹電源管理芯片基本類型和電源管理芯片使用
    發(fā)表于 04-11 15:11 ?8.1w次閱讀

    如何選擇電源管理芯片

    電源管理芯片是電路設(shè)計不可缺少的器件,本文就如何選擇電源管理
    發(fā)表于 01-05 14:37 ?61次下載
    如何選擇<b class='flag-5'>電源</b><b class='flag-5'>管理</b><b class='flag-5'>芯片</b>

    nxp電源管理芯片電源管理芯片的約束與分辯

    nxp電源管理芯片電源管理芯片代理商的制約與區(qū)別寄予厚望,下面將
    發(fā)表于 06-24 11:57 ?1135次閱讀

    電源管理ic芯片是什么

    電源管理ic芯片是什么 電源管理ic芯片主要管理電子
    發(fā)表于 02-16 15:47 ?2716次閱讀

    電源管理IC芯片使用的特性

    電源管理半導(dǎo)體從所包含的器件來說,明確強調(diào)電源管理集成電路(電源管理IC,簡稱
    發(fā)表于 02-21 16:27 ?778次閱讀

    電源管理芯片的作用

    來保證設(shè)備正常運行。電源管理芯片通過監(jiān)測電池電量的狀態(tài)來準(zhǔn)確控制電流和電壓,從而實現(xiàn)對電池的充電、放電和狀態(tài)監(jiān)測。 故障保護:電源管理
    的頭像 發(fā)表于 09-06 16:05 ?4068次閱讀

    介紹八種常見的電源管理IC芯片

    電源管理IC是電子系統(tǒng)中非常重要的組成部分,它們負責(zé)管理電源供應(yīng)、功率輸出、電源濾波和電壓調(diào)節(jié)等功能。隨著越來越多的人依賴電子設(shè)備,對
    的頭像 發(fā)表于 12-26 17:21 ?3788次閱讀

    模擬芯片電源管理芯片介紹

    電源管理芯片(PowerManagementIntegratedCircuits),是在電子設(shè)備系統(tǒng)擔(dān)負起對電能的變換、分配、檢測及其他電能管理
    的頭像 發(fā)表于 04-30 08:34 ?1654次閱讀
    模擬<b class='flag-5'>芯片</b>之<b class='flag-5'>電源</b><b class='flag-5'>管理</b><b class='flag-5'>芯片</b><b class='flag-5'>介紹</b>

    電源管理芯片怎么測好壞

    電源管理芯片(Power Management Integrated Circuit,簡稱PMIC)是電子設(shè)備中非常重要的組成部分,它負責(zé)對電源進行
    的頭像 發(fā)表于 08-02 09:23 ?1456次閱讀