機器檢查異常
外觀
![本頁使用了標題或全文手工轉換](http://upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
![]() | 此條目翻譯自其他語言維基百科,需要相關領域的編者協助校對翻譯。 |
機器檢查異常(英語:Machine Check Exception,簡稱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
該錯誤通常是由於硬件組件的故障或過負載而發生,其中的錯誤不能用更具體的錯誤訊息來辨識。診斷其錯誤訊息可能很困難,儘管英特爾奔騰處理器確實生成更具體的代碼,可以聯絡製造商進行解碼。[來源請求]
大多數機器檢查異常需要重新啟動系統才能繼續為用戶正常執行。[來源請求]
問題類型
[編輯]這些錯誤大多明確與奔騰處理器家族有關[來源請求]。其他處理器上也可能出現類似的錯誤以及導致類似的問題。
導致機器檢查異常的一些主要的硬件問題包括:
可能的原因
[編輯]機器檢查異常的一般原因包括系統過熱、硬件安裝不正確。具體的因操作引起的原因有:
電腦軟件也可能導致機器檢查異常錯誤(通常因為程式讀取或寫入了損壞的數據)。例如,軟件讀或寫不存在的主記憶體區域可能導致處理器或系統匯流排的失措。[來源請求]訪問被UEFI標記為限制的主記憶體也可能機器檢查異常錯誤。[3]
解碼MCE
[編輯]如前所述,機器檢查錯誤的準確解碼存在難度。通常來說,製造商(尤其是中央處理器的製造商)能夠提供有關特定代碼的資訊。參閱「Intel 64和IA-32架構軟件開發人員手冊」[4]第14章(機器檢查架構),或微軟知識庫文章 - Windows 異常。[5]
解碼MCE的程式
[編輯]- mcat:AMD的一個Windows命令列程式,可解碼AMD K8,家族0x10和0x11的處理器的MCE。
- mcelog[6]:Andi Kleen製作的一個Linux守護行程,它處理現代x86處理器的MCE。mcelog也可解碼機器檢查。
- parsemce[7]:Dave Jones製作的一個Linux程式,解碼AMD K7處理器的MCE。
- mced[8]:Tim Hockin製作的一個Linux程式,從內核收集MCE並提醒感興趣的應用程式。它不會嘗試解釋MCE數據,只是提醒其他程式。
參見
[編輯]參考資料
[編輯]- ^ Bug Check 0x124: WHEA_UNCORRECTABLE_ERROR. MSDN. 2016-09-29 [2016-10-26]. (原始內容存檔於2016-12-23).
- ^ Steve Lord, Greg Wettstein. klogd(8) - Linux man page. [2016-10-26]. (原始內容存檔於2019-10-24).
klogd is a system daemon which intercepts and logs Linux kernel messages.
- ^ Bug 47121: UEFI boot panics on a new Samsung Series 9 laptop throwing a machine check exception. Linux kernel bug tracker. 2012-10-13 [2016-10-26]. (原始內容存檔於2019-04-04).
- ^ Intel 64 and IA-32 Architectures Software Developer's Manual: Volume 3A: System Programming Guide, Part 1 (PDF). Intel. May 2011 [2016-10-26]. (原始內容 (PDF)存檔於2008-12-21).
- ^ Stop error message in Windows XP that you may receive: "0x0000009C (0x00000004, 0x00000000, 0xb2000000, 0x00020151)". MSDN. 2015-12-07 [2016-10-26]. (原始內容存檔於2017-01-08).
- ^ mcelog: Advanced hardware error handling for x86 Linux. 2015-04-20 [2016-10-26]. (原始內容存檔於2021-02-25).
- ^ parsemce: Linux Machine check exception handler parser.. 2003-07-22 [2016-10-26]. (原始內容存檔於2013-06-22).
- ^ GitHub上的mcedaemon頁面