在閒置和作用中狀態之間轉換
在睡眠期間,Windows 會定期將 SoC 平臺從閒置模式轉換為使用中模式,以執行值新增活動,例如接收電子郵件通知或執行維護工作。 此外,隨選轉換至使用中模式可能會因應使用者輸入、中斷網路裝置和其他硬體事件。
SoC 進入 DRIPS 狀態之後,平臺通常會處於最低電源模式。 在睡眠期間,平臺會在此閒置 (DRIPS) 模式與使用中模式之間定期切換。 在睡眠中,耗用大部分時間在 DRIPS 模式中,且在作用中模式中花費非常少量的時間,以達到睡眠狀態。
從閒置轉換到使用中
Windows 會基於下列原因將 SoC 轉換為使用中模式:
- 隨選喚醒事件,因為網路裝置中斷 (Wi-Fi、行動寬頻或乙太網路) 。 當偵測到相符的 WoL 模式或媒體或線上狀態變更時,網路裝置會產生中斷。 中斷會使用頻外 GPIO、頻內 USB 繼續訊號或 PCI PME 中斷來喚醒 SoC。
- 隨選喚醒事件,因為平臺裝置中斷來源,例如電池燃料量測計、電池計量控制器或熱感應器。
- 隨選喚醒事件,因為使用者輸入鍵盤、觸控板、外部 USB 周邊、電源按鈕或 lid 開關所造成的中斷。
當 SoC 喚醒且平臺結束 DRIPS 狀態時,CPU 就會再次開始執行程式碼。 不過,除非中斷是使用者輸入或連接到電源的結果,否則螢幕會保持關閉電源。 造成中斷之裝置的驅動程式會負責在中斷對應至使用者輸入時向 OS 回報使用者目前狀態。 Windows 電源管理員會判斷是否應該開啟畫面;系統設計工具只需要確保來自每個裝置的中斷都已連線並程式設計,以從 DRIPS 狀態喚醒 SoC。
系統設計工具必須與 SoC 廠商密切合作,才能連接 SoC 喚醒的裝置中斷。 某些 SoC 裝置需要裝置中斷連線到特殊的「喚醒功能」輸入,或使用系統韌體設定喚醒。
從使用中轉換到閒置
Windows 會在停止所有軟體活動之後,將 SoC 平臺從作用中模式轉換為閒置模式,而 SoC 晶片上的和關閉裝置進入低電源狀態。
SoC 會根據上一節所述的觸發程式,在睡眠期間閒置和作用中模式之間轉換。 每當 SoC 作用中時,Windows 會積極嘗試將它傳回閒置 (DRIPS) 狀態,以減少耗電量。
當系統結束新式待命以回應使用者輸入時,SoC 也會處於作用中狀態,例如電源按鈕按下。 當下列所有條件都成立時,SoC 會自動回到閒置 (DRIPS) 狀態:
- SoC 以外的所有裝置都已關閉電源。
- 所有網路和無線電裝置都已進入其低電源狀態,以等候符合 WoL 模式或喚醒中斷的封包。
- SoC 上的所有主機控制器都已關閉電源。
- 所有應用程式背景工作都已完成。
- 所有 CPU 和 GPU 活動都已停止,且所有 CPU 都處於閒置狀態。
幾乎所有新式待命電源問題都與確定這五個條件都已符合相關。 Windows 包含稱為 SleepStudy 的內建診斷工具,可協助探索當 SoC 無法進入閒置 (DRIPS) 狀態時,不符合這些條件。