CPU在睡眠模式下是否处于活动状态?


39

假设在Windows操作系统上,您将计算机切换为进入睡眠模式并将其收起。据我所知,将不会运行任何程序或进程。

但是处理器会以某种方式仍在运行或在后台处于活动状态并利用电源吗?

因为当您执行任何操作时,也许是在运行Windows 7 / 8.1 / 10的现代计算机(即打开机盖)的情况下,按下按钮并触摸鼠标后,它会立即自动打开,而无需按下电源按钮。那么,是否是因为CPU在低功耗状态下一直在积极等待这些事件?

Answers:


57

CPU在睡眠模式下是否处于活动状态?

这取决于。睡眠状态(S1至S4)不同,并且所有状态中的CPU状态都不相同。

  • CPU在睡眠状态S1中停止
  • 在睡眠状态S2或更高的状态下,CPU断电。

睡眠通常是睡眠状态S3,但有时可以将BIOS配置为使用睡眠状态S1(在从S3恢复时无法正常使用)。

powercfg -a 可用于查看PC支持的睡眠状态。

输出示例:

F:\test>powercfg -a
The following sleep states are available on this system: 
Standby (S3) Hibernate Hybrid Sleep
The following sleep states are not available on this system: 
Standby (S1)
    The system firmware does not support this standby state.
Standby (S2)
    The system firmware does not support this standby state.

系统睡眠状态

状态S1,S2,S3和S4是睡眠状态。处于这些状态之一的系统未执行任何计算任务,并且似乎已关闭。但是,与处于关机状态(S5)的系统不同,睡眠中的系统会在硬件或磁盘上保留内存状态。无需重新启动操作系统即可使计算机恢复工作状态。

某些事件发生时,例如调制解调器的传入呼叫,某些设备可以将系统从睡眠状态唤醒。此外,在某些计算机上,外部指示器会告诉用户系统仅在休眠。

在从S1到S4的每个连续睡眠状态下,将关闭更多计算机。所有兼容ACPI的计算机都会在S1处关闭处理器时钟,并在S4处失去系统硬件上下文(除非在关机之前已写入休眠文件),如以下各节所述。中间睡眠状态的详细信息可能会有所不同,具体取决于制造商如何设计机器。例如,在某些机器上,主板上的某些芯片可能会在S3断电,而在另一些机器上,此类芯片会在S4之前断电。此外,某些设备可能只能从S1唤醒系统,而不能从更深的睡眠状态唤醒系统。

系统电源状态S1

系统电源状态S1为休眠状态,具有以下特征:

能量消耗

  • 消耗比S0少,比其他睡眠状态大。处理器时钟关闭,总线时钟停止。恢复软件

  • 控件从上次中断处重新启动。

硬件延迟

  • 通常不超过两秒钟。

系统硬件环境

  • 所有上下文都由硬件保留和维护。

系统电源状态S2

系统电源状态S2与S1相似,除了CPU上下文和系统缓存的内容丢失是因为处理器掉电之外。状态S2具有以下特征:

能量消耗

  • 比状态S1少消耗,比状态S3大消耗。处理器已关闭。总线时钟停止;一些公共汽车可能会断电。恢复软件

  • 唤醒后,控制从处理器的复位向量开始。

硬件延迟

  • 两秒或更长时间;大于或等于S1的等待时间。

系统硬件环境

  • CPU上下文和系统缓存内容丢失。

系统电源状态S3

系统电源状态S3为休眠状态,具有以下特征:

能量消耗

  • 比状态S2消耗更少。处理器已关闭,主板上的某些芯片也可能已关闭。

恢复软件

  • 唤醒事件后,控制从处理器的复位向量开始。

硬件延迟

  • 与S2几乎没有区别。

系统硬件环境

  • 仅保留系统内存。CPU上下文,缓存内容和芯片集上下文丢失。

系统电源状态S4

系统电源状态S4(休眠状态)是功耗最低的睡眠状态,并且具有最长的唤醒延迟。为了将功耗降至最低,硬件会关闭所有设备的电源。但是,操作系统上下文保存在系统进入S4状态之前将其写入磁盘的休眠文件(内存映像)中。重新启动后,加载程序将读取此文件并跳至系统先前的休眠位置​​。

如果处于状态S1,S2或S3的计算机丢失了所有交流电或电池电源,则它将丢失系统硬件环境,因此必须重新启动才能返回到S0。但是,处于状态S4的计算机即使在失去电池或交流电源后也可以从其先前的位置重新启动,因为操作系统上下文保留在休眠文件中。处于休眠状态的计算机不使用任何电源(the流电流可能除外)。

状态S4具有以下特征:

能量消耗

  • 熄灭,电源按钮和类似设备的trick流电流除外。恢复软件

  • 系统从保存的休眠文件重启。如果无法加载休眠文件,则需要重启。在系统处于S4状态时重新配置硬件可能会导致更改,从而导致无法正确加载休眠文件。

硬件延迟

  • 长且不确定。只有物理交互才能使系统返回工作状态。此类交互可能包括用户按下ON开关,或者如果存在适当的硬件并且启用了唤醒,则是调制解调器或LAN上活动的传入振铃。如果硬件支持,机器也可以从恢复计时器中唤醒。系统硬件环境

  • 没有保留在硬件中。掉电前,系统会在休眠文件中写入内存映像。加载操作系统后,它将读取该文件并跳至其先前位置。

系统睡眠状态


进一步阅读


powercfg - a can be used...-和之间有多余的空格a
Ruslan 2015年

25

David的出色答案对传统机器和8之前的Windows版本都是正确的。但是,Windows 8为低功耗设备(基于Atom的平板电脑等)引入了新的睡眠模式,这称为InstantGo / Connected Standby。当您在具有支持的硬件的Windows平板电脑上关闭屏幕时,这是默认的“睡眠”模式。

Connected Standby不使用传统的ACPI睡眠状态。其目标是保持连接外围设备处于活动状态,从而允许OS响应通知,例如传入的电子邮件,即时消息等。此外,计算机每30秒“唤醒”几百毫秒。与传统的S3睡眠相比,CPU的响应(唤醒)速度更快。

[需要连接待机]在不到100毫秒的时间内可以在空闲和活动模式之间切换。活动模式允许代码在CPU上运行,但不一定允许访问存储设备或其他主机控制器或外围设备。空闲模式可以是时钟门控状态或电源门控状态,但应为SoC和DRAM功耗最低的状态。

资源

请注意,这要比为S1指定的最多2秒(或为S2 / S3指定的2秒或更长时间)要快得多,如David的回答。

为此,CPU处于特殊状态,Microsoft在支持的硬件上调用DRIPS(最深运行时空闲平台状态)。

在英特尔(x86)SoC上,这属于新的(非标准)S0ix状态之一,尤其是S0i3。在这种状态下,CPU不会执行任何代码,但是SoC总体上仍处于活动状态,足以保持连接到网络并响应任何事件。


就ACPI而言,这仍被视为S0(活动)状态。Windows使用该ACPI_S0_LOW_POWER_IDLE标志来确定是否支持DRIPS。的ACPI规范6.0。,2015年4月,§5.2.9,表5-35,第127页)定义该标志为:

一个通知OSPM,该平台能够在S0中实现与S3中通常实现的节能相似或更好的节能。实际上,当该位置1时,它指示系统将睡眠转换为S3,将无法获得任何功耗优势。

根据微软的说法

支持Modern Standby的系统不使用S1-S3。


5

由ACPI https://en.wikipedia.org/wiki/Advanced_Configuration_and_Power_Interface管理的待机模式有多种类型

尽管时钟频率较低,但CPU通常在待机模式下运行-它仅侦听特定的输入,而不会主动运行任何其他进程。我曾尝试通过运行procmon并将笔记本电脑设置为睡眠来对其进行测量,但是在此期间它根本没有运行。

共有4个全局状态,G0-G3,其中G0正在运行,G3是机械关闭。 根据链接的文章,G1子状态S2关闭CPU并将其缓存移至RAM。RAM是在所有类型的睡眠中均打开的电源-在休眠和标准关机时均关闭电源。在大多数睡眠状态下,所有外部输入设备都已打开电源,并将唤醒事件发送到计算机。计算机还可以自行唤醒以处理需要唤醒调用的例程。


2
“将其高速缓存移到RAM”既然高速缓存是高速缓存,难道不只是刷新脏的高速缓存行然后关闭电源就足够了吗?
–ζ

CPU已打开,但未运行。
ilkhd 2015年

0

对于这些已经很好的答案,我没有什么技术上的补充。但是,在您自己的计算机上测试睡眠模式效果的最简单方法(我假设您正在谈论一台笔记本电脑,因为您说“把它扔掉”)是将笔记本电脑置于睡眠模式并拔下电源插头(请注意电池)级别第一)。几个小时后恢复机器,看看在这段时间内电池电量是否耗尽。

我发现睡眠模式以相当快的速度耗尽电池电量的困难方式。出差之前,我关闭了笔记本电脑的盖子-认为我已经配置了“关闭盖子”以在高级电源设置中触发休眠状态-但它进入了睡眠模式。几个小时后,由于电池电量已完全耗尽(这是一个旧的弱电池),机器无法恢复。

相比之下,我可以使笔记本电脑休眠并无限期地拔下电源,并且它不会比几天内发生的自然trick流放电更快地耗尽电池电量。

但正如其他帖子所说:YMMV。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.