机器检查异常(英语:Machine Check Exception,MCE)是计算机的中央处理器检测到一个硬件问题发生的计算机硬件错误。
现代版本的Microsoft Windows通过Windows硬件错误架构(英语:Windows Hardware Error Architecture)处理机器检查异常。当该架构检测到机器检查异常(MCE)时,它会以蓝屏死机显示该错误,附以下列参数(数值可能变化,但机器检查异常导致的首个参数始终为0x0):
*** STOP: 0x00000124 (0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000)
在Linux上,进程(例如klogd
)会向内核日志和/或控制台屏幕写入消息(通常仅在错误不可恢复且机器因此崩溃时,消息才会发送到控制台):
CPU 0: Machine Check Exception: 0000000000000004Bank 2: f200200000000863Kernel panic: CPU context corrupt
该错误通常是由于硬件组件的故障或过负载而发生,其中的错误不能用更具体的错误消息来识别。诊断其错误消息可能很困难,尽管英特尔奔腾处理器确实生成更具体的代码,可以联系制造商进行解码。
大多数机器检查异常需要重启系统才能继续为用户正常运行。
这些错误大多明确与奔腾处理器家族有关。其他处理器上也可能出现类似的错误以及导致类似的问题。
导致机器检查异常的一些主要的硬件问题包括:
机器检查异常的一般原因包括系统过热、硬件安装不正确。具体的因操作引起的原因有:
计算机软件也可能导致机器检查异常错误(通常因为程序读取或写入了损坏的数据)。例如,软件读或写不存在的内存区域可能导致处理器或系统总线的失措。访问被UEFI标记为限制的内存也可能机器检查异常错误。
如前所述,机器检查错误的准确解码存在难度。通常来说,制造商(尤其是中央处理器的制造商)能够提供有关特定代码的信息。参阅“Intel 64和IA-32架构软件开发人员手册”第15章(机器检查架构),或微软知识库文章 - Windows 异常。