我的计算机如何能够自动重新启动?

今天的问答环节是由超级用户提供的,这是Stack Exchange的一个分支,Stack Exchange是一个社区驱动的问答网站群。

问题

超级用户读者塞斯·卡内基(Seth Carnegie)对计算机电源管理感到好奇:

到底是怎么回事?什么样的软件/硬件魔力组合才能实现这一目标?

答案

超级用户贡献者JCrafordor对这个问题提供了简明扼要的回答和详细的回答,充分解决了这个问题:

Too Long;Not Read It答案:您计算机中的电源状态由ACPI(高级配置和电源接口)的实现控制。在关机过程结束时,您的操作系统会设置一个ACPI命令,指示计算机应该重新启动。作为响应,主板使用其各自的重置命令或线路重置所有组件,然后遵循引导过程。主板实际上永远不会关闭,它只重置各种组件,然后就像刚按下电源按钮一样工作。

冗长而杂乱无章,但(在我看来)更有趣的答案:

软实力及其运作机制

在过去(嗯,好吧,对于像我这样的大学生来说,90年代是很久以前的事了),我们有AT(高级技术)主板,带有AT电源管理。AT的电力系统非常非常简单。您计算机上的电源按钮是一个硬件开关(可能在机箱后面),您的120VAC输入直接穿过它。它会在物理上打开和关闭电源,当此开关处于关闭位置时,计算机中的所有东西都会完全断电(这使得CMOS电池非常重要,因为如果没有它,就没有电源来保持硬件时钟滴答作响)。因为电源开关是一种物理机制,所以没有软件方法来打开和关闭电源。Windows会显示著名的“现在可以安全地关闭您的计算机了”的消息,因为尽管所有东西都已停好并准备关闭,但操作系统不可能真正触发电源开关。这种配置有时被称为硬实力,因为它都是硬件。

如今情况不同了,因为ATX主板和ATX POWER的奇迹(如果你在跟踪的话,这是先进技术的扩展)。随着其他一些进步(迷你DIN PS/2,有人吗?),ATX带来了软实力。软实力意味着计算机的电源可以由软件控制。这带来了一些重要的更改:

备用电源:您可能已经看到电源引脚中标有“5V SB”或“5V STANDBY”的接头。备用电源是连接到主板的5V线路,即使计算机关闭,它也始终处于打开状态。这就是为什么在维修现代计算机时拔下或关闭PSU硬开关(如果有)很重要,因为即使当它关闭时,您也可能使5v SB短路并损坏主板。这也是为什么CMOS电池不再那么重要的原因-只要电源有主电源,就用5V SB来更换CMOS电池,所以只有在完全拔下计算机插头时才使用CMOS电池。5V SB系列重要地允许您的计算机的组件(最重要的是BIOS和网络适配器)即使在计算机关机时也能保持运行一些简单的软件。 智能电源控制。如果您查看电源主板(P1)连接器的引脚引脚,您会注意到两个引脚,通常标记为PS_ON和PPS_RDY。这些表示“电源打开”和“电源就绪”。如果您喜欢进行实验,请使用不在计算机中的电源,将其插入,并小心地将接地线(其中一条黑线)短接到PS_ON线(绿线)。风扇旋转时,电源将明显打开。通过将电源连接到PS_ON引脚,+5V SB接通的主板组件实际上会打开和关闭您的电源。由于电源中有一些电容器和其他组件需要一段时间才能充满电,因此电源主输出的电压在PSU打开后可能不会立即稳定。这就是PS_RDY引脚的用途,当电源的内部逻辑确定电源“就绪”并将提供稳定电源时,它就会亮起。主板等待PS_RDY打开后才能继续引导。

因此,您的电源开关不再“打开”计算机。相反,它连接到主板的基本控制器,这些控制器检测到按钮已被按下,并执行一系列步骤来准备系统,包括点亮PS_ON以使电源可用。电源按钮不是触发启动过程的唯一方式,扩展总线上的设备也可以这样做。这一点很重要,因为当您的计算机关闭时,您的以太网适配器实际上会保持打开状态,并查找通常称为“Magic Packet”的非常特定的数据包。如果它们检测到寻址到其MAC地址的此数据包,它们将触发启动过程。这就是“局域网唤醒”(WOL)的工作方式。时钟还可以启动启动(大多数BIOS允许您设置计算机每天应该启动的时间),USB和FireWire设备可以触发启动,尽管我不知道这方面的任何实现。

了解电源控制

嗯,我解释软实力这件事既是因为我认为它很有趣(我解释事情总是一个关键原因),也是因为它让你了解计算机的电源和运行/关闭状态都是由软件控制的。在大多数当前的计算机中,此软件系统是高级配置和电源接口(ACPI)的实现。ACPI是一个标准化的统一系统,允许软件控制计算机的电源系统。你可能已经听说过ACPI的电力状态。电源控制的基本机制是这些“电源状态”,您的操作系统通过准备切换(在电源实际关闭之前发生的关机/休眠过程)在电源模式之间切换,然后命令主板切换电源状态。电源状态如下所示:

G0:工作中(您的计算机处于“打开”状态)。 G1:休眠(您的计算机的待机状态,分为S个子状态)。 S1:CPU和RAM的电源保持打开,但CPU没有执行指令。外围设备已关闭电源。 S2:CPU断电,RAM保持不变。 S3:除RAM和将触发恢复的设备(键盘)外,所有组件均已断电。当您告诉操作系统“休眠”时,它将停止进程,然后进入此模式。 S4:冬眠。绝对所有的东西都被关掉了。当您告诉操作系统休眠时,它会停止进程,将RAM的内容保存到磁盘,然后进入此模式。 G2:柔和一点。这是您的计算机的“关闭”状态。除可能触发引导的设备外,所有设备都已断电。 G3:机械关闭。

重置实际上是如何进行的

您会注意到,重新启动不是这些状态之一。那么,当您的计算机重新启动时,实际会发生什么情况呢?答案可能令人惊讶,因为从权力管理的角度来看,它几乎什么都没有。有一个ACPI重置命令。当您告诉您的操作系统重新启动时,它会遵循其正常的关闭过程(停止所有进程、执行一些维护、卸载您的文件系统等),然后作为最后一步,它不会将机器发送到电源状态G2(如果您只是简单地告诉它关机就会这样),而是设置重置命令。这通常被称为“复位寄存器”,因为与大多数ACPI接口一样,它只是一个地址,为了请求复位,应该写入一个特定值。关于它的功能,我将引用2.0规范:

因此,设置复位寄存器时,会按顺序发生几件事。

所有逻辑均已重置。这意味着将各自的重置命令发送到硬件的各个位,包括CPU、内存控制器、外围控制器等。在大多数情况下,这仅仅意味着点亮物理RST线路,如AndrejaKo上面所示。 然后启动计算机。这是“以类似于冷启动的方式执行操作”部分。主板执行的步骤与按下电源按钮后电源刚刚就绪时执行的步骤相同。

这两个步骤(实际上分解成更多的步骤)的最终效果是,它看起来就像计算机刚刚启动一样,但实际上电源一直开着。这意味着关闭和启动所需的时间更少(因为您不必等待电源准备就绪),而且重要的是允许通过关闭操作系统来启动引导。这意味着不需要使用另一个启动触发器(wol等),并允许您在无法触发启动的情况下使用重新启动作为远程重置系统的有效方法。

这是一个很长的回答。但是,嘿,希望你现在对计算机电源管理有了更多的了解。我在研究这方面确实学到了一些东西。

相关文章