机器检查异常

机器检查异常（，简称MCE）是计算机的中央处理器检测到一个硬件问题发生的计算机硬件错误。

现代版本的Microsoft Windows通过处理机器检查异常。当该架构检测到机器检查异常（MCE）时，它会以蓝屏死机显示该错误，附以下列参数（数值可能变化，但机器检查异常导致的首个参数始终为0x0）：
  *** STOP: 0x00000124 (0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000) 
在Linux上，进程（例如klogd）会向内核日志和/或控制台屏幕写入消息（通常仅在错误不可恢复且机器因此崩溃时，消息才会发送到控制台）：
 CPU 0: Machine Check Exception: 0000000000000004
 Bank 2: f200200000000863
 Kernel panic: CPU context corrupt
该错误通常是由于硬件组件的故障或过负载而发生，其中的错误不能用更具体的错误消息来识别。诊断其错误消息可能很困难，尽管英特尔奔騰处理器确实生成更具体的代码，可以联系制造商进行解码。

大多数机器检查异常需要重启系统才能继续为用户正常运行。

 问题类型 
。其他处理器上也可能出现类似的错误以及导致类似的问题。

导致机器检查异常的一些主要的硬件问题包括：
 系統匯流排错误：（处理器与主板之间的通信错误）。
 内存错误：奇偶校验位检测到发生内存错误。前向錯誤更正（ECC）可以纠正有限的内存错误以继续正常运行。
 CPU缓存错误。

 可能的原因 
机器检查异常的一般原因包括系统过热、硬件安装不正确。具体的因操作引起的原因有：
 超頻（增加了热量输出）。
 错误安装散热片/散热风扇（CPU风扇灰尘过多或故障也可能导致）
 内部或外部电源过载（可通过升级电源解决）
计算机软件也可能导致机器检查异常错误（通常因为程序读取或写入了损坏的数据）。例如，软件读或写不存在的内存区域可能导致处理器或系统总线的失措。访问被UEFI标记为限制的内存也可能机器检查异常错误。

 解码MCE 
如前所述，机器检查错误的准确解码存在难度。通常来说，制造商（尤其是中央处理器的制造商）能够提供有关特定代码的信息。参阅“Intel 64和IA-32架构软件开发人员手册”第14章（机器检查架构），或微软知识库文章 - Windows 异常。

 解码MCE的程序 
 mcat：AMD的一个Windows命令行程序，可解码AMD K8，家族0x10和0x11的处理器的MCE。
 mcelog：Andi Kleen制作的一个Linux守护进程，它处理现代x86处理器的MCE。mcelog也可解码机器检查。
 parsemce：Dave Jones制作的一个Linux程序，解码AMD K7处理器的MCE。
 mced：Tim Hockin制作的一个Linux程序，从内核收集MCE并提醒感兴趣的应用程序。它不会尝试解释MCE数据，只是提醒其他程序。

 参见 


 参考资料 

 外部链接 
 mcelog: Advanced hardware error handling for x86 Linux 
 parsemce: Linux Machine check exception handler parser 
Category:计算机错误