什么固件/硬件机制支持强制关机?

use*_*605 41 firmware shutdown

虽然我不确定这一点,但我很确定按住所有计算机上的电源按钮将迫使它们在不同的时间长度后关机。如果计算机死机或某些其他错误需要完全重新启动,这将特别有用。

我感兴趣的是这种强制关机机制是否硬编码到计算机底层固件中?或者这是否是在硬件级别上内置到计算机中的。如果该机制是固件,那么假设 CPU 级错误会阻止该机制正确触发是合乎逻辑的,这让我相信这是一个硬件功能。

总结一下:通用(我假设)强制关机机制是在硬件还是固件级别内置的?有人可以详细说明机制的性质、变体和一般历史。

Dav*_*ill 45

通用强制关机机制是内置在硬件还是固件级别?

主板(硬件)和 BIOS(固件)都参与了这个过程。

电源的实际切换(开和关)是由主板上的电路完成的。通过电路中两点的瞬时短路触发电路改变状态。这是通过前面板按钮完成的。该按钮的短期连接就足够了。主板电路还有第二个和第三个功能。

BIOS 通常设置为,如果电路已经处于 ON 状态并且瞬时触点保持闭合至少 4 秒,则将执行两个操作之一。要么系统立即关闭(如关闭开关),要么主板进入“睡眠”状态,等待重新唤醒。完成这两个选项中的哪一个是您在 BIOS 设置屏幕中设置的内容。**

这就是主板在大多数操作情况下永远不会完全“关闭”的原因。即使它处于“关闭”状态,它也有一小部分用于检查来自几个来源(如前按钮、一些 USB 设备和调制解调器)的输入,以便它可以通过打开电源来响应整个系统。真正关闭所有电源的方法是拔掉电源线,或者使用安装在 PSU 背面的物理开关将其关闭。

来源(电源按钮)如何工作?


现代开关不包含任何魔法。事实上,它们 比真正的物理开/关开关更简单、更便宜。

这些开关只是微控制器的输入。微控制器可以告诉你什么时候按下按钮,剩下的就是固件中编码的策略来决定如何处理它。电源通常用晶体管切换。这意味着按钮本身不必处理高电压或高电流,因此有更多的选择可以使它变小。例如,它可能是一个薄膜开关,您永远不会用它来切换墙壁电源。

这确实意味着设备的一小部分通常处于开启状态,至少足以为微控制器供电。然而,现代微控制器在等待开关信号时可能会消耗如此微量的功率,以至于在大多数情况下该功率无关紧要。

在某些情况下,该按钮实际上会在按下时使微控制器通电,然后打开一些晶体管或继电器或其他东西以保持通电。当您按下按钮关闭设备时,微型会关闭所有东西,包括它自己。

来源如何在设备上工作,这些现代电力按钮的答案奥林莱思罗普

  • 我相信两者兼而有之:按下按钮会为 CPU 生成一个 ACPI 事件,但还有一个非主 CPU 监视它以实现真正的强制关机,如果它被按住而 CPU 没有响应。否则,您可能会遇到中断关闭和 ACPI 被禁用的情况,并且无法强制关机。 (3认同)

Ano*_*noE 6

通用(我假设)强制关机机制是否内置于硬件或固件级别?

无需查找参考资料,这里有一个非常简单的逻辑:它们必须在硬件级别上工作,因为它们在套接字中没有 CPU 的情况下工作。

当然,那时 PC 不会做那么多事情,但从技术上讲,您仍然可以打开它;如果您的主板能够向您发送消息(通过蜂鸣声或一个小的 2 位数代码),您可能会得到“坏 CPU/无 CPU”代码。您还可以通过长按关闭电源,这是这里的重要部分。

另外,请记住,在系统处于极度不健全状态的所有情况下(即,在单用户模式 ​​/ linux 内核恐慌 / BSOD 等),并且出于所有意图和目的,在死胡同中,电源按钮仍然有效(至少长按)。

请注意,“硬件级别”已经是一个相当宽泛的术语;即,可以很容易地存在从几个晶体管到带有几位 NVRAM 的小型专用 µC(这将保留 BIOS 配置的值,例如关于短按行为的值),大多数人仍然会称为“硬件”。