虽然我对此并不确定,但我确信按住所有电脑上的电源按钮都会在不同时间后强制电脑关机。如果电脑死机,或者出现其他错误而需要完全重启,这个功能就特别有用。
我感兴趣的是,这种强制关机机制是否硬编码到计算机底层固件中?或者它是否内置在计算机硬件层面。如果该机制是固件,那么可以合理地假设 CPU 级错误会阻止该机制正确触发,这让我相信这是一个硬件功能。
总结一下:通用的强制关机机制(我假设)是内置在硬件或固件层面的吗?有人能详细说明一下该机制的性质、变体和一般历史吗?
答案1
通用强制关机机制是否内置于硬件或固件级别?
主板(硬件)和 BIOS(固件)都参与该过程。
电源的实际切换(打开和关闭)由主板上的电路完成。电路通过电路中两点的瞬时短路来触发改变状态。这是通过前面板按钮完成的。短暂连接该按钮就足够了。主板电路还可以执行第二和第三种功能。
BIOS 通常设置为,如果电路已经处于 ON 状态,并且瞬时触点保持闭合至少 4 秒,则将执行以下两个操作之一。要么系统立即关闭(如关闭开关),要么主板进入“睡眠”状态并等待重新唤醒。执行这两个选项中的哪一个取决于您在 BIOS 设置屏幕中的设置。**
这就是主板在大多数操作情况下从未完全“关闭”的原因。即使主板处于“关闭”状态,也有一小部分用于检查来自几个来源的输入(例如前按钮、一些 USB 设备以及调制解调器),以便它能够通过打开整个系统的电源做出响应。真正关闭所有电源的方法是拔掉电源线,或者使用安装在 PSU 背面的物理开关将其关闭。
现代的开关并不包含任何魔法。事实上,它们 较少的比真实的物理开/关开关更复杂且昂贵。
这些开关只是微控制器的输入。微控制器可以知道你什么时候按下按钮,其余的则由固件中编码的策略来决定如何处理。电源通常用晶体管切换。这意味着按钮本身不必处理高电压或高电流,因此有更多的选择来制造它并使其变小。例如,它可以是一个薄膜开关,你永远不会用它来切换墙上的电源。
这确实意味着设备有一小部分通常处于开启状态,至少足以为微控制器供电。但是,现代微控制器在等待开关信号时会消耗如此微小的电量,以至于在大多数情况下,这种电量无关紧要。
在某些情况下,按下按钮实际上会导致微机通电,然后打开一些晶体管或继电器或某种东西以保持通电。当您按下按钮关闭设备时,微机将关闭所有设备,包括其自身。
答案2
通用的(我认为)强制关机机制是否内置于硬件或固件级别?
不用寻找参考,这里有一个非常简单的逻辑:必须它们在硬件层面上工作,因为它们不需要插槽中的 CPU 就可以工作。
当然,那时 PC 不会做太多事情,但从技术上讲你仍然可以开机;如果你的主板能够给你发送消息(通过蜂鸣声或简短的 2 位代码),你可能会得到“坏 CPU/无 CPU”代码。你还可以通过长按关闭电源,这是这里最重要的部分。
此外,请记住,在系统处于极度不正常状态(即单用户模式/ Linux 内核崩溃/ BSOD 等)并且所有意图和目的都处于死胡同的情况下,电源按钮仍然有效(至少长按)。
请注意,“硬件级别”已经是一个相当宽泛的术语;也就是说,它可能是由几个晶体管组成的任何东西,甚至是一个带有几位 NVRAM 的小型专用 µC(它可以保存 BIOS 配置的值,例如短按的行为),而大多数人仍将其称为“硬件”。