在睡眠期间,Windows 会定期将 SoC 平台从空闲模式转换为活动模式,以执行增值活动(如接收电子邮件通知或执行维护任务)。 此外,按需转换到活动模式可能会响应用户输入、网络设备中断和其他硬件事件。
SoC 进入 DRIPS 状态后,平台通常处于最低功率模式。 在睡眠期间,平台将定期在此空闲(DRIPS)模式与活动模式之间切换。 在睡眠中,通过在 DRIPS 模式下花费大部分时间,并在主动模式下花费极少的时间,从而实现低功耗。
从空闲过渡到活动
Windows 将出于以下原因将 SoC 转换为活动模式:
- 由于网络设备(Wi-Fi、移动宽带或以太网)的中断引发的按需求唤醒事件。 当检测到匹配的 WoL 模式或媒体或连接状态发生更改时,网络设备将生成中断。 此中断使用带外 GPIO、带内 USB 恢复信号或 PCI PME 中断唤醒 SoC。
- 由于某个源(如电池电量计、电池充电控制器或热传感器)发出的平台设备中断导致的按需唤醒事件。
- 由于某个中断导致的按需唤醒事件,由用户在键盘、触摸板、外部 USB 外围设备、电源按钮或机盖开关上进行输入导致。
SoC 唤醒且平台退出 DRIPS 状态后,CPU 将再次开始运行代码。 但是,屏幕保持关闭状态,除非中断是用户输入或连接到电源的结果。 导致中断的设备驱动程序负责将用户状态报告给 OS(如果中断对应于用户输入)。 Windows 电源管理器决定是否应打开屏幕;系统设计人员只需确保来自每个设备的中断都已连接并进行编程以将 SoC 从 DRIPS 状态唤醒。
系统设计人员必须与 SoC 供应商紧密合作,以便连设备中断进行 SoC 唤醒。 某些 SoC 设备要求将设备中断连接到特殊的“支持唤醒”的输入,或配置为使用系统固件进行唤醒。
从活跃状态过渡到空闲状态
Windows 将所有软件活动停止后,SoC 平台从主动模式转换为空闲模式,SoC 芯片上的设备进入低功率状态。
SoC 根据上一部分中介绍的触发器在睡眠期间空闲模式和活动模式之间切换。 每当 SoC 处于活动状态时,Windows 都会主动尝试将其返回到空闲(DRIPS)状态,以减少能耗。
当系统退出新式待机状态以响应用户输入(例如电源按钮按下)时,SoC 也将处于活动状态。 如果以下所有条件都符合,SoC 将自动恢复到空闲(DRIPS)状态:
- SoC 之外的所有设备都已断电。
- 所有网络和无线电设备都已进入低功耗状态,以等待与 WoL 模式或唤醒中断匹配的数据包。
- SoC 上的所有主机控制器都已关闭。
- 所有应用后台任务都已完成。
- 所有 CPU 和 GPU 活动已停止,所有 CPU 都处于空闲状态。
几乎所有现代待机电源问题都与确保满足这五个条件有关。 Windows 包含一个名为 SleepStudy 的内置诊断工具,以帮助发现当阻止 SoC 进入空闲(DRIPS)状态时,无法满足其中哪些条件。