ARMv8-A電源管理Power management

目錄

一、ARMv8-A電源管理概述

二、idle管理

2.1 電源和時鐘

Standby-待機

Retention-保持

Powerdown-關機

Dormant mode-休眠模式

Hotplug-熱插拔

三、動態電壓和頻率調節

四、匯編語言power指令

五、電源狀態協調接口


一、ARMv8-A電源管理概述

許多ARM系統是移動設備,并由電池供電。在這種系統中,優化功耗和總能量使用是關鍵的設計約束。程序員經常花費大量時間來嘗試在這些系統中節省電池壽命。ARM核心內置了許多旨在減少功耗的硬件設計方法。

即使在不使用電池的系統中,節能也可能是一個問題。例如,您可能希望最大限度地減少能源使用以減少消費者的電費、出于環保原因,或者為了最小化設備產生的熱量。

能源使用可以分為兩個組成部分:靜態功耗和動態功耗。

靜態功耗(通常稱為漏電)發生在核心邏輯或RAM塊通電時。一般來說,漏電電流與硅面積成正比,這意味著芯片越大,漏電越高。隨著制造幾何尺寸變小,漏電占功耗的比例會變得更高。

動態功耗是由于晶體管開關而產生的,是核心時鐘速度和每個周期改變狀態的晶體管數量的函數。顯然,更高的時鐘速度和更復雜的核心消耗更多功率。管理功耗感知的操作系統動態地改變核心的功耗狀態,平衡當前工作負載的可用計算容量,同時試圖使用最少的功耗。其中一些技術動態地開啟和關閉核心,或者將它們置于靜態狀態,不再執行計算。這意味著它們消耗的功耗很少。

【注意】:這里描述的功耗管理類型不是源自體系結構。這里描述的方法是軟件功耗管理的常見實踐示例。

二、idle管理

空閑管理通常由操作系統控制。在這種情況下,當一個核心處于空閑狀態時,操作系統功耗管理(OSPM)將其置于低功耗狀態。通常情況下,可供選擇的狀態有所不同,具有不同的進入和退出延遲,以及與每個狀態相關聯的不同功耗級別。通常使用的狀態取決于核心再次需要的速度。在任何時候可以使用的功耗狀態也可能取決于SoC中其他組件的活動,除了核心。每個狀態都由進入該狀態時時鐘門控或電源門控的組件集合定義。

從低功耗狀態轉換到運行狀態所需的時間,稱為喚醒延遲,在較深的狀態中較長。盡管空閑功耗管理受核心上線程行為的驅動,但OSPM可以將平臺置于影響核心之外許多其他組件的狀態。如果集群中的最后一個核心變為空閑狀態,OSPM可以針對影響整個集群的功耗狀態。同樣,如果SoC中的最后一個核心變為空閑狀態,OSPM可以針對影響整個SoC的功耗狀態。選擇也受到系統中其他組件的使用的影響。一個典型的例子是當所有核心和任何其他總線masters都處于空閑狀態時,將內存置于自刷新狀態。

OSPM必須提供必要的功耗管理軟件基礎設施來確定正確的狀態選擇。在空閑管理中,當一個核心或集群被置于低功耗狀態時,它可以通過核心喚醒事件隨時重新激活。也就是說,可以從低功耗狀態喚醒核心的事件,例如中斷。OSPM不需要明確的命令來將核心或集群重新置于操作狀態。即使它們當前處于低功耗狀態,OSPM也認為受影響的核心始終可用。

2.1 電源和時鐘

可以減少能源使用的一種方法是移除電源,這樣可以消除動態和靜態電流(有時稱為電源門控),或者停止核心的時鐘,只消除動態功耗,可以稱為時鐘門控。ARM核心通常支持幾個級別的功耗管理,如下所示:

  • Standby-待機。
  • Retention-保持
  • Powerdown-關機。
  • Dormant mode-休眠模式。
  • Hotplug-熱插拔。

對于某些操作,需要在移除電源之前和之后保存和恢復狀態。保存和恢復所需的時間,以及由此額外工作消耗的功耗,都可以成為軟件選擇適當的功耗管理活動的重要因素。

包含核心的SoC設備可以具有額外命名的低功耗狀態,例如STOP和深度睡眠。這些指的是硬件鎖相環(PLL)和電壓調節器可以由功耗管理軟件控制的能力。

Standby-待機

在待機模式下,核心保持通電,但大部分時鐘被停止或者時鐘門控。這意味著核心的幾乎所有部分都處于靜態狀態,唯一的功耗是由于漏電電流和用于監視喚醒條件的少量邏輯的時鐘。

進入此模式使用的是WFI(等待中斷)或WFE(等待事件)指令。ARM建議在執行WFI或WFE之前使用數據同步障礙(DSB)指令,以確保掛起的內存事務在更改狀態之前完成。

如果調試通道處于活動狀態,則保持活動狀態。核心停止執行直到檢測到喚醒事件。喚醒條件取決于進入指令。對于WFI,中斷或外部調試請求會喚醒核心。對于WFE,存在幾種指定的事件,包括集群中的另一個核心執行SEV指令。

Snoop Control Unit(SCU)的請求也可以喚醒集群中用于緩存一致性操作的時鐘。這意味著處于待機狀態的核心的緩存與其他核心的緩存保持一致(但是待機狀態的核心不一定會執行下一條指令)。核心復位始終會強制核心退出待機狀態。

各種形式的動態時鐘門控也可以在硬件中實現。例如,當檢測到空閑狀態時,SCU、GIC、定時器、指令流水線或NEON塊可以自動時鐘門控,以節省功耗。

待機模式可以快速進入和退出(通常在兩個時鐘周期內)。因此,它對核心的延遲和響應性幾乎沒有影響。

對于OSPM來說,待機狀態在大多數情況下與retention狀態幾乎沒有區別。但是對于外部調試器和硬件實現來說有所不同,但對于操作系統的空閑管理子系統來說則不明顯。

Retention-保持

核心狀態,包括調試設置,在低功耗結構中得到保留,使得核心至少可以部分關閉。從低功耗retention狀態切換到運行狀態不需要對核心進行復位。在從低功耗retention狀態切換到運行操作時,保存的核心狀態將被恢復。從操作系統的角度來看,除了進入方式、延遲和使用相關的約束外,retention狀態和待機狀態之間沒有區別。然而,從外部調試器的角度來看,這兩種狀態有所不同,因為retention狀態下,外部調試請求的調試事件仍然掛起,核心電源域中的調試寄存器無法訪問。

Powerdown-關機

在這種狀態下,正如其名稱所示,核心已關閉電源。設備上的軟件必須保存所有核心狀態,以便在斷電期間進行保留。從關機狀態切換到運行操作必須包括:

  • 在恢復電源后,對核心進行復位。
  • 恢復保存的核心狀態。

關機狀態的定義特征是它們會破壞上下文。這意味著所有數據、操作條件和操作狀態都會丟失。這會影響在給定狀態下關閉的所有組件,包括核心,以及在更深的狀態下系統中的其他組件,如GIC或特定于平臺的IP。根據調試和跟蹤電源域的組織方式,調試和跟蹤上下文中的一個或兩個可能會在某些關機狀態下丟失。必須提供機制,使操作系統能夠針對每個給定狀態執行相關的上下文保存和恢復。執行恢復從復位向量開始,之后每個操作系統必須恢復其上下文。

Dormant mode-休眠模式

休眠模式是關機狀態的一種實現。在休眠模式下,核心邏輯關閉電源,但cache RAMs保持通電。通常,RAM被保持在低功耗retention狀態,即它們保持其內容但沒有其他功能。這比完全關閉提供了更快的重新啟動速度,因為活動數據和代碼保留在緩存中。同樣,在cluster中,可以將單個核心置于休眠模式。

在允許單個核心進入休眠模式的cluster中,當核心斷電時沒有保持一致性的空間。因此,這些核心必須首先從一致性域中隔離出來。它們在執行此操作之前清除所有臟數據,并且通常是通過另一個核心發出信號,以通知外部邏輯重新應用電源來喚醒它們。

然后,喚醒的核心必須在重新加入一致性域之前恢復原始核心狀態。由于核心在休眠模式下時內存狀態可能已更改,因此可能仍然需要使緩存失效。因此,休眠模式更可能在單個核心環境中有用,而不是在cluster中。這是因為離開和重新加入一致性域的額外成本。在集群中,休眠模式通常只有在其他核心已經關閉時,最后一個核心才會使用。

Hotplug-熱插拔

熱插拔是一種動態開關核心的技術。OSPM可以利用熱插拔根據當前計算需求來改變可用的計算容量。有時,熱插拔也用于可靠性方面的考慮。

熱插拔和將核心置于關機狀態以節能的使用之間存在幾個不同之處:

  • 當一個核心被熱拔插時,監督軟件會停止所有對該核心的中斷和線程處理。該核心不再被調用的操作系統視為可用。
  • OSPM必須發出一個明確的命令將一個核心重新上線,即熱插拔一個核心。適當的監督軟件只有在此命令之后才開始對該核心進行調度或啟用中斷。

操作系統通常會在一個主核上執行大部分內核引導過程,并在稍后的階段將從核bringing up。Secondary boot的行為類似于將一個核心熱插入系統中。這兩種情況下的操作幾乎是相同的。

三、動態電壓和頻率調節

許多系統在其工作負載可變的條件下運行。因此,能夠降低或提高核心性能以匹配預期的核心工作負載是很有用的。降低核心的時鐘頻率可以減少動態功耗。動態電壓頻率調節(DVFS)是一種利用以下特性的節能技術:

  • 功耗與操作頻率之間的線性關系。
  • 功耗與操作電壓之間的二次方關系。該關系可表示為: P = C × V^2 × f

其中:

P 是動態功耗。

C 是相關邏輯電路的開關電容。

V 是操作電壓。

f 是操作頻率。

通過調整核心時鐘的頻率來實現節能。

在較低的頻率下,核心還可以以較低的電壓運行。降低供電電壓的優點是既降低了動態功耗,也降低了靜態功耗。

對于給定電路,操作電壓和電路可以安全運行的頻率范圍之間存在著具體的實現關系。操作頻率和相應的操作電壓組合成一個元組,稱為操作性能點(Operating Performance Point,OPP)。對于給定系統,可達到的OPP范圍總稱為系統DVFS曲線。

操作系統使用DVFS來節省能量,并在必要時保持在熱限制內。操作系統提供DVFS策略來管理所消耗的電力和所需的性能。針對高性能的策略選擇更高的頻率并使用更多的能量。而針對節能的策略選擇較低的頻率,因此使性能較低。

四、匯編語言power指令

ARM匯編語言包括可用于將核心置于低功耗狀態的指令。架構將這些指令定義為提示(hints),這意味著核心在執行它們時不需要采取任何特定的操作。然而,在Cortex-A處理器系列中,這些指令是以一種方式實現的,即關閉了幾乎所有核心部件的時鐘。這意味著核心的功耗被降低,以至于只有靜態漏電電流,而沒有動態功耗。使用WFI指令可以將執行暫停,直到核心被以下條件之一喚醒:

  • IRQ中斷,即使PSTATE I位被設置。
  • FIQ中斷,即使PSTATE F位被設置。
  • 異步abort。

如果核心在相應的PSTATE中斷標志被禁用時被中斷喚醒,則核心在WFI之后執行下一條指令。

WFI指令在電池供電的系統中被廣泛使用。例如,移動電話可以將核心置于待機模式,而在等待按下按鈕時可能會多次進行這樣的操作。

WFE與WFI類似。它暫停執行直到發生事件。這可以是列出的事件條件之一,也可以是cluster中另一個核心發出的事件。其他核心可以通過執行SEV指令來發出事件。SEV向所有核心發出事件信號。通用定時器也可以編程觸發周期性事件,從而喚醒核心離開WFE。

五、電源狀態協調接口

電源狀態協調接口(PSCI)提供了一種與操作系統無關的方法,用于實現核心的啟動或關閉的功耗管理用例。這包括:

  • 核心空閑管理。
  • 動態添加和移除核心(熱插拔),以及從核引導。
  • big.LITTLE 遷移。
  • 系統shutdown和reset。

通過這個接口發送的消息被所有相關執行級別接收。也就是說,如果EL2和EL3被實現,操作系統在虛擬機中執行的消息必須被一個hypervisor接收。如果hypervisor發送它,消息必須被安全固件接收,然后與一個可信操作系統進行協調。這使得每個操作系統可以確定是否需要進行上下文保存。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/716179.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/716179.shtml
英文地址,請注明出處:http://en.pswp.cn/news/716179.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

二維碼門樓牌管理系統:城市數字化管理的新里程碑

文章目錄 前言一、二維碼門樓牌管理系統的構成二、二維碼門樓牌管理系統的功能三、二維碼門樓牌管理系統的應用四、二維碼門樓牌管理系統的未來發展 前言 隨著城市管理的數字化、智能化水平不斷提升,二維碼門樓牌管理系統作為一種創新的城市管理方法,正…

JavaScript 學習總結(17)—— 前端開發規范之命名規范、html 規范、css 規范、js 規范

前言 一個好的程序員肯定是要能書寫可維護的代碼,而不是一次性的代碼,怎么能讓團隊當中其他人甚至一段時間時候你再看你某個時候寫的代碼也能看懂呢,這就需要規范你的代碼了。我是有一點強迫癥的人,上周我們后端給我了一個CanUsename的接口(該接口的目的是判斷輸入的目的…

Ubuntu20.04: UE4.27 中 Source Code 的編輯器下拉框沒有 Rider選項

問題描述 最近想用 Rider 作為 UE4 開發的 IDE,但安裝好 Rider 后,發現編輯器下拉框中沒有 Rider 的選項,我檢查了 UE4 的插件,發現 Rider Integration 插件已經安裝且啟用的。 環境:Ubuntu 20.04 UE4.27 Rider2023…

應急加電電源車-在航空航天、武器等多領域的應用

應急加電電源車是一種專門設計用于在緊急情況下為其他設備提供電力支持的車輛。它通常由電池或燃料電池驅動,可以在沒有外部電源的情況下為其他設備提供持續的電力供應。這種車輛在災難救援、野外作業、軍事行動等領域具有廣泛的應用。 應急加電電源車通常具有以下…

WordPress建站入門教程:如何在本地電腦搭建WordPress網站?

前面跟大家分享了『WordPress建站入門教程:如何安裝本地WordPress網站運行環境?』,接下來boke112百科就繼續跟大家分享本地電腦如何搭建WordPress網站。 小皮面板(phpstudy)的“軟件管理 – 網站程序”雖然可以一鍵部…

Springboot+vue的高校教師教研信息填報系統(有報告)。Javaee項目,springboot vue前后端分離項目。

演示視頻: Springbootvue的高校教師教研信息填報系統(有報告)。Javaee項目,springboot vue前后端分離項目。 項目介紹: 采用M(model)V(view)C(controller&am…

數據審計 -本福德定律 Benford‘s law (sample database classicmodels _No.6)

數據審計 -本福德定律 Benford’s law 準備工作,可以去下載 classicmodels 數據庫資源如下 [ 點擊:classicmodels] 也可以去我的博客資源下載 文章目錄 數據審計 -本福德定律 Benfords law 前言一、什么是 本福德定律?二、數學公式三、應用…

最新會聲會影2024旗艦版系統配置要求

大家好呀!小編今天給大家帶來了一個超級實用的信息,關于會聲會影2024旗艦版的系統配置要求! 會聲會影2023-安裝包: https://souurl.cn/gtyDFc 會聲會影2023-安裝包: https://souurl.cn/ZQ6QWp 會聲會影2022-安裝包&a…

Java零基礎-反序列化和序列化

哈嘍,各位小伙伴們,你們好呀,我是喵手。 今天我要給大家分享一些自己日常學習到的一些知識點,并以文字的形式跟大家一起交流,互相學習,一個人雖可以走的更快,但一群人可以走的更遠。 我是一名后…

回歸預測 | Matlab實現CPO-BiTCN-BiGRU冠豪豬算法優化雙向時間卷積門控循環單元多變量回歸預測

回歸預測 | Matlab實現CPO-BiTCN-BiGRU冠豪豬算法優化雙向時間卷積門控循環單元多變量回歸預測 目錄 回歸預測 | Matlab實現CPO-BiTCN-BiGRU冠豪豬算法優化雙向時間卷積門控循環單元多變量回歸預測效果一覽基本介紹程序設計參考資料 效果一覽 基本介紹 1.Matlab實現CPO-BiTCN-B…

mc生存插火把

題目描述 話說有一天 linyorson 在“我的世界”開了一個 nn 的方陣,現在他有 m 個火把和 k 個螢石,分別放在 (x1,y1)~(xm,ym) 和 (o1,p1)~(ok,pk)的位置,沒有光并且沒放東西的地方會生成怪物。請問在這個方陣中有幾個點會生成怪物&#xf…

Vue開發實例(六)實現左側菜單導航

左側菜單導航 一、一級菜單二、二級菜單三、三級菜單1、加入相關事件 四、菜單點擊跳轉1. 創建新頁面2. 配置路由3. 菜單中加入路由配置4、處理默認的Main窗口為空的情況 五、動態左側菜單導航1、動態實現一級菜單2、動態實現二級菜單 一、一級菜單 在之前的Aside.vue中去實現…

SRIO--IP講解及環回測試

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 前言一、IP例化文件二、SRIO環回工程搭建三、板級驗證3.1 板級驗證環節3.2 系統所需硬件3.3 ILA波形前言 本章將為大家介紹 “Serial RapidIO Gen2 ”IP 的使用以及配置方法。“Serial RapidIO Ge…

JavaScript入門學(Web APIs)

1.變量聲明 2 DOM介紹 2.1 什么是DOM 2.2 DOM樹 2.3 DOM對象&#xff08;重要&#xff09; 3.DOM&#xff08;文檔對象模型&#xff09;-獲取元素 3.1 獲取匹配的第一個元素 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8&…

Canvs的js庫:Fabric.js簡單強大,用于繪制各種圖形

Fabric.js是一個用于創建交互式的HTML5 Canvas應用程序的JavaScript庫。它提供了一個簡單而強大的API&#xff0c;用于在Web瀏覽器中繪制和操作圖形對象。Fabric.js可以用于創建各種圖形應用程序&#xff0c;例如繪圖編輯器、圖像編輯器、流程圖、地圖和數據可視化等。 官網文…

校企合作項目總結

校企合作總結 前言項目框架開發待辦水平越權總結 前言 寒假里小組給了校企合作的項目&#xff0c;分配給我的工作量總共也就兩三套crud&#xff0c;雖然工作很少&#xff0c;但還是從里面學到了很多東西&#xff0c;收獲了大量的實習經驗&#xff0c;在這里總結記錄一下。 項…

FreeRTOS學習筆記——FreeRTOS中斷管理

精華總結&#xff1a; 中斷優先級0為最高&#xff0c;任務優先級0為最低 中斷優先級分組中為方便rtos管理4bit全部設置成搶占優先級 32單片機的中斷管理是由3個寄存器完成&#xff08;名字忽略&#xff0c;具體功能忽略&#xff09;&#xff0c;三個寄存器都是32bit&#xff0c…

微信小程序云開發教程——墨刀原型工具入門(文件設置+編輯組件)

引言 作為一個小白&#xff0c;小北要怎么在短時間內快速學會微信小程序原型設計&#xff1f; “時間緊&#xff0c;任務重”&#xff0c;這意味著學習時必須把握微信小程序原型設計中的重點、難點&#xff0c;而非面面俱到。 要在短時間內理解、掌握一個工具的使用&#xf…

NOC2023軟件創意編程(學而思賽道)python小高組決賽真題

目錄 下載原文檔打印做題: 軟件創意編程 一、參賽范圍 1.參賽組別:小學低年級組(1-3 年級)、小學高年級組(4-6 年級)、初中組。 2.參賽人數:1 人。 3.指導教師:1 人(可空缺)。 4.每人限參加 1 個賽項。 組別確定:以地方教育行政主管部門(教委、教育廳、教育局) 認…

【風格遷移】StyTr2:引入 Transformer 解決 CNN 在長距離依賴性處理不足和細節丟失問題

StyTr2&#xff1a;引入 Transformer 解決 CNN 在長距離依賴性處理不足和細節丟失問題 提出背景StyTr2 組成StyTr2 架構 提出背景 論文&#xff1a;https://arxiv.org/pdf/2105.14576.pdf 代碼&#xff1a;https://github.com/diyiiyiii/StyTR-2 問題&#xff1a; 傳統的神經…