Computer science 当我们点击关机选项时,计算机如何在内部关机?也有二进制的东西吗?
例如,打印机如何打印页面? CPU将二进制8位代码传输到打印机,而不是。。。就像这样,当我们启动或关闭计算机时,计算机内部会发生什么情况?最初使用的是,它只有一个机械开关来打开和关闭电源: 早期的微机电源要么完全打开,要么完全关闭,由机械线路电压开关[…]控制。这些电源通常不具备待机或“软关闭”或定时开启电源控制等节能模式 因此没有被软件关闭 在1994年,PSU开始流行,例如引入了一个称为Power ON(此后为PWON)的引脚,该引脚被拉至+5V,并且必须由主板拉下才能激活PSU1 由于PWON是一个电信号,主板可以实现不同类型的逻辑来打开和关闭电源 首先引入了前面板开关,这是打开/关闭电脑的唯一方法 然后引入了“软关闭”模式,该模式使一些低功耗的导轨保持开启状态,以便不同的设备保持活动状态,并通过向下拉动PWON触发唤醒。Computer science 当我们点击关机选项时,计算机如何在内部关机?也有二进制的东西吗?,computer-science,Computer Science,例如,打印机如何打印页面? CPU将二进制8位代码传输到打印机,而不是。。。就像这样,当我们启动或关闭计算机时,计算机内部会发生什么情况?最初使用的是,它只有一个机械开关来打开和关闭电源: 早期的微机电源要么完全打开,要么完全关闭,由机械线路电压开关[…]控制。这些电源通常不具备待机或“软关闭”或定时开启电源控制等节能模式 因此没有被软件关闭 在1994年,PSU开始流行,例如引入了一个称为Power ON(此后为PWON)的引脚,该引脚被拉至+5V,并且必须由主板拉下才能激活PSU1 由于PW
例如: 在该软件推出之前,无法以标准方式关闭电脑 然而,APM最近被一个非常复杂的系统所取代 不难想象,由于PWON信号,关闭PC需要什么,所需的只是告诉连接到它的芯片将其释放回+5V。
目前还没有一种标准的方法可以做到这一点,但ACPI的真正目的是克服制造商之间的差异 特别是,ACPI规定,为了关闭系统电源,使其进入状态S5,软件需要执行固定的步骤序列。
所有信息都可以在和ACPI公开的表中找到 第一步是调用名为
\\u S5.\u PTS
的方法,该方法在我的系统中不起任何作用:
Method (PTS, 1, NotSerialized)
{
If (Arg0) {}
}
这使主板设计者有机会执行复杂的操作,因为这个方法是由他们编写的
另一个步骤是固定的,它是关闭PC的实际步骤,它包括将值写入寄存器感兴趣的寄存器(实际上有两个,但我们这里不讨论它)是
PM1a\u CNT
,在我的系统中,它被宣传为
[0ACh 0172 12] PM1A Control Block : [Generic Address Structure]
[0ACh 0172 1] Space ID : 01 [SystemIO]
[0ADh 0173 1] Bit Width : 10
[0AEh 0174 1] Bit Offset : 00
[0AFh 0175 1] Encoded Access Width : 02 [Word Access:16]
[0B0h 0176 8] Address : 0000000000001804
这告诉我们它位于IO空间2中的1804h
写入该寄存器的值称为SLP\u TYPa
,它位于\u S5
对象中,对于我的系统:
Name (_S5, Package (0x04) // _S5_: S5 System State
{
0x07,
Zero,
Zero,
Zero
})
SLP\u TYPa
是第一个数字,07h
在将该数字写入
PM1a\u CNT
之前,我们需要将其左移10并设置其位13,因此实际写入值为3c00h
要关闭电源,我只需将3c00h
写入端口1804h
3:
1您可以使用回形针将PWON(绿色)短接至GND(黑色),并在未连接到PC时打开PSU。
2我的系统是x86,x86有两个地址空间:IO和内存。
3已启用已授予的ACPI(将0a0h写入0b2h将在我的系统中启用ACPI) 神奇的回答。那个“安全关机”屏幕唤起了扫雷舰和局域网各方(以及扫雷舰各方)的许多记忆。。谢谢你的怀旧之情!您的代码实际上将2007h写入端口1804h,而不是如描述所述的3c00h。2007包含未移位的值7。
mov ax, 3c00h
mov dx, 1804h
out dx, ax