机器检查异常

机器检查异常英語:,简称MCE)是计算机中央处理器检测到一个硬件问题发生的计算机硬件错误。

现代版本的Microsoft Windows通过Windows硬件错误架构处理机器检查异常。当该架构检测到机器检查异常(MCE)时,它会以蓝屏死机显示该错误,附以下列参数(数值可能变化,但机器检查异常导致的首个参数始终为0x0):[1]

 *** STOP: 0x00000124 (0x0000000000000000, 0x0000000000000000, 0x0000000000000000, 0x0000000000000000) 

Linux上,进程(例如klogd[2])会向内核日志和/或控制台屏幕写入消息(通常仅在错误不可恢复且机器因此崩溃时,消息才会发送到控制台):

CPU 0: Machine Check Exception: 0000000000000004
Bank 2: f200200000000863
Kernel panic: CPU context corrupt

该错误通常是由于硬件组件的故障或过负载而发生,其中的错误不能用更具体的错误消息来识别。诊断其错误消息可能很困难,尽管英特尔奔騰处理器确实生成更具体的代码,可以联系制造商进行解码。

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

问题类型

这些错误大多明确与奔騰处理器家族有关。其他处理器上也可能出现类似的错误以及导致类似的问题。

导致机器检查异常的一些主要的硬件问题包括:

可能的原因

机器检查异常的一般原因包括系统过热、硬件安装不正确。具体的因操作引起的原因有:

  • 超頻(增加了热量输出)。
  • 错误安装散热片/散热风扇(CPU风扇灰尘过多或故障也可能导致)
  • 内部或外部电源过载(可通过升级电源解决)

计算机软件也可能导致机器检查异常错误(通常因为程序读取或写入了损坏的数据)。例如,软件读或写不存在的内存区域可能导致处理器或系统总线的失措。访问被UEFI标记为限制的内存也可能机器检查异常错误。[3]

解码MCE

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

解码MCE的程序

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

参见

  • 机器检查架构

参考资料

  1. . MSDN. 2016-09-29 [2016-10-26]. (原始内容存档于2016-12-23).
  2. Steve Lord, Greg Wettstein. . [2016-10-26]. (原始内容存档于2019-10-24). klogd is a system daemon which intercepts and logs Linux kernel messages.
  3. . Linux kernel bug tracker. 2012-10-13 [2016-10-26]. (原始内容存档于2019-04-04).
  4. (PDF). Intel. May 2011 [2016-10-26]. (原始内容 (PDF)存档于2008-12-21).
  5. . MSDN. 2015-12-07 [2016-10-26]. (原始内容存档于2017-01-08).
  6. . 2015-04-20 [2016-10-26]. (原始内容存档于2021-02-25).
  7. . 2003-07-22 [2016-10-26]. (原始内容存档于2013-06-22).
  8. GitHub上的mcedaemon頁面

外部链接

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.