電源管理策略

版權:

© 2017 英特爾公司

作者:

Rafael J. Wysocki <rafael.j.wysocki@intel.com>

Linux 核心支援兩種主要的、高層級的電源管理策略。

其中一種策略是基於使用整個系統的全域性低功耗狀態,在這種狀態下,使用者空間程式碼無法執行,並且系統整體活動顯著減少,這被稱為睡眠狀態。當用戶空間請求時,核心會將系統置於其中一種狀態,系統會保持在該狀態,直到從指定裝置之一接收到特殊訊號,觸發系統轉換為工作狀態,使用者空間程式碼可以在此狀態下執行。由於睡眠狀態是全域性的,並且整個系統都會受到狀態變化的影響,因此這種策略被稱為系統級電源管理

另一種策略被稱為工作狀態電源管理,它基於在工作狀態下根據需要調整系統單個硬體元件的電源狀態。因此,如果採用此策略,系統的工作狀態通常不對應任何特定的物理配置,而可以被視為一個元狀態(metastate),涵蓋了系統一系列不同的電源狀態,其中其各個元件可以是活動(正在使用)或非活動(空閒)。如果它們是活動的,它們必須處於允許其處理資料並被軟體訪問的電源狀態。反之,如果它們是非活動的,理想情況下,它們應該處於可能無法訪問的低功耗狀態。

如果所有系統元件都處於活動狀態,則整個系統被視為“執行時活動”,這種情況通常對應其最大功耗(或最大能耗)。如果所有元件都處於非活動狀態,則整個系統被視為“執行時空閒”,這從物理系統配置和功耗角度來看可能非常接近睡眠狀態,但與處於睡眠狀態的同一系統相比,啟動執行使用者空間程式碼所需的時間和精力要少得多。然而,從睡眠狀態轉換回工作狀態只能由有限的裝置集啟動,因此通常系統在睡眠狀態下停留的時間比一次性處於執行時空閒狀態的時間要長得多。因此,系統在睡眠狀態下通常比大部分時間處於執行時空閒狀態時使用的能量更少。

此外,這兩種電源管理策略適用於不同的使用場景。具體來說,如果使用者表示系統將不再使用,例如透過合上筆記型電腦的蓋子(如果系統是筆記型電腦),那麼此時系統很可能應該進入睡眠狀態。另一方面,如果使用者只是離開筆記型電腦鍵盤,系統可能應該保持在工作狀態,並在空閒時使用工作狀態電源管理,因為使用者可能隨時返回並希望系統立即可用。