iT邦幫忙

2024 iThome 鐵人賽

DAY 17
0
IT 管理

Troubleshooting - 隔空抓藥的日常與實務技巧系列 第 17

Day 17 - Hardware 不穩,PSOD/BSOD頻發,CPU一直壞?你有聽過Microcode嗎?[上集]

  • 分享至 

  • xImage
  •  

因為不清楚其他CPU是不是適用以下內容,這裡以I牌CPU為例。

如果你曾經遇過系統死當,Windows的BSOD或是VMware的PSOD,將問題回報廠商後得到的結論是需要更換CPU。

通常我會建議你先把CPU留在身邊至少一個月比較保險。為什麼這麼說呢?其實實務上在廠商RD的分析過程中,要能得到換CPU的明確證據來支持換CPU的結論其實是非常有難度的。

BSOD & PSOD 其實都是作業系統在出錯時的回報畫面,背後真正和HW相關的問題其實通常還是由CPU回報出來。

我將我常見到的幾種CPU回報的HW錯誤列出如下:

    1. CATERR(Catastrophic Error)
      CATERR 是一個與主機過熱保護機制相結合的訊號源,當它被發出時代表系統遭遇嚴重錯誤而且無法繼續運作。在不可回復的IERR & MCERR發生時都會觸發這個訊號。由此可知CATERR出現時已經作為無法修復的IERR 和 MCERR的徵兆。
    1. MCERR(Machine Check Error)
      要講MCERR的話就要從源頭的MCA(Machine Check Architecture)說說,由於以往大部分的工作都是處理器在經手,因此這個架構主要就是來負責像系統BUS錯誤,Memory ECC error,CPU的同位元錯誤、快取錯誤以及TLB錯誤等。問題會在這裡被詳細的記錄在CPU的專門處理MCERR的暫存器(MSR, model-specific registers)中,通常RD也是根據暫存器裡頭的錯誤代碼做decode。
    1. IERR(Internal Error)
      雖然字面上寫著"Internal",但是其實是CPU的核心之外的周邊裝置或是核心互相溝通時發生的問題,例如記憶體和PCIE裝置。

雖然上頭將錯誤分為三種,但是實務上往往三個錯誤會一起看到。

log長得像下面的例子:

[100]06:00:38 [Critical] [CATERR] [Processor] IERR - Asserted
[99] 06:00:36 [Critical] [CATERR] [Processor] Machine Check Exception (MCERR) - Asserted

現代的系統中已經有BMC這樣的硬體設備在CPU回報問題時,來協助將CPU的暫存器做匯出,幫助事後的除錯與排除。

光講CPU的錯誤好像就已經扯的有點多了,microcode的部分以及其他後續就留待下次繼續介紹吧。

引用網址:
https://www.intel.com/content/www/us/en/support/articles/000097802/processors.html
https://www.intel.com/content/www/us/en/support/articles/000006043/server-products/server-boards.html
https://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-software-developer-vol-3b-part-2-manual.pdf


上一篇
Day 16 - PTSD of Live Troubleshooting - 除了技術以外實務上還需要注意的細節
下一篇
Day 18 - Hardware 不穩,PSOD/BSOD頻發,CPU一直壞?你有聽過Microcode嗎?[下集]
系列文
Troubleshooting - 隔空抓藥的日常與實務技巧30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言