計算機系統錯誤偵測系統及方法
2023-07-31 06:46:46 1
專利名稱:計算機系統錯誤偵測系統及方法
技術領域:
本發明涉及一種計算機系統檢測系統及方法,特別是關於一種計算機系統錯誤偵測系統及方法。
背景技術:
目前,在高階的計算機系統(例如伺服器)中出現了集成北橋功能的中央處理器 (Central Processing Unit,CPU),將內存控制與連接的功能從北橋移到了 CPU內部。若是在這種類型的計算機系統發生錯誤時,例如CPU內部錯誤(Inter Error, IERR)和內存多位錯誤(Multi-Bit Error), CPU都會因此而停止工作。然而,這兩種類型的系統錯誤都是由 CPU用相同的一根管腳向外部設備傳遞信息,這樣會造成外部設備獲取CPU錯誤信號的混亂,而且會降低伺服器自我監測能力,使得用戶無法詳細的辨清錯誤根源,增加了維護的難度。
發明內容
鑑於以上內容,有必要提供一種計算機系統錯誤偵測系統及方法,利用基板管理控制器自動偵測出計算機系統發生的錯誤是CPU的內部錯誤還是內存的多位字節錯誤。所述的計算機系統錯誤偵測系統,安裝並運行於基板管理控制器中。該計算機系統包括CPU以及內存,該基板管理控制器通過CPU的GPIO埠與計算機系統相連接。所述的計算機系統錯誤偵測系統包括參數設置模塊,用於設置一個中斷全局標誌位,以及初始化該中斷全局標誌位為零;信號監測模塊,用於在計算機系統運行過程中實時地監測由 CPU通過GPIO埠輸出的GPIO信號,以及在一段延遲時間內檢測CPU輸出的GPIO信號是否由高電平信號轉化為低電平信號;中斷服務模塊,用於當所述GPIO信號由高電平信號轉化為低電平信號時,啟動中斷服務程式觸發一次中斷服務將中斷全局標誌位加一,以及在所述延遲時間後檢測中斷全局標誌位是否大於等於一;錯誤處理模塊,用於當中斷全局標誌位等於一時確定計算機系統發生的系統錯誤為CPU內部錯誤,以及當中斷全局標誌位大於一時確定計算機系統發生的系統錯誤為內存多位字節錯誤。所述的計算機系統錯誤偵測方法,該計算機系統包括CPU以及內存,並通過CPU的 GPIO埠與基板管理控制器相連接。該方法包括步驟設置一個中斷全局標誌位,並初始化該中斷全局標誌位為零;在計算機系統運行過程中實時地監測由CPU通過GPIO埠輸出的GPIO信號;判斷所述CPU輸出的GPIO信號是否為高電平信號;當所述CPU輸出的GPIO 信號為低電平信號時,啟動中斷服務程式觸發一次中斷服務將中斷全局標誌位加一;在一段延遲時間內檢測CPU輸出的GPIO信號是否由低電平信號轉化為高電平信號;當GPIO信號由低電平信號轉化為高電平信號時,啟動中斷服務程式觸發一次中斷服務將中斷全局標誌位加一;在延遲時間後判斷中斷全局標誌位是否大於等於一;若中斷全局標誌位等於一,則確定計算機系統發生的系統錯誤為CPU內部錯誤;若中斷全局標誌位大於一,則確定計算機系統發生的系統錯誤為內存多位字節錯誤。
相較於現有技術,本發明所述的計算機系統錯誤偵測系統及方法,利用基板管理控制器能夠自動偵測出計算機系統發生的錯誤是CPU的內部錯誤還是內存的多位字節錯誤,並提示用戶計算機系統發生的錯誤類型,從而使用戶方便對計算機系統發生的錯誤進行處理。
圖1是本發明計算機系統錯誤偵測系統較佳實施例的架構圖。圖2是本發明計算機系統錯誤偵測方法較佳實施例的流程圖。圖3是由計算機系統的CPU輸出的GPIO信號的示意圖。主要元件符號說明基板管理控制器1微處理器11存儲單元12參數設置模塊101信號監測模塊102中斷服務模塊103錯誤處理模塊104計算機系統2CPU20內存21顯示器2具體實施例方式如圖1所示,是本發明計算機系統錯誤偵測系統10較佳實施例的架構圖。在本實施例中,該計算機系統錯誤偵測系統10安裝並運行於基板管理控制器(Baseboard Management Controller, BMC) 1中,能夠在計算機系統2發生系統錯誤時,例如計算機系統2的中央處理器(CentralProcessing Unit, CPU) 20本身發生內部錯誤(Inter Error, IERR)或者計算機系統2的內存21發生多位字節錯誤(Multi-Bit Error),偵測出所述系統錯誤是CPU 20的內部錯誤還是內存21的多位字節錯誤。所述的CPU20內部錯誤包括, 但不僅限於,CPU 20處理數據時發生的數據運算錯誤或者是邏輯控制錯誤。所述的內存21 的多位字節錯誤包括,但不僅限於,內存21中的數據損壞錯誤或者是讀寫數據時發生字節錯位錯誤。所述的基板管理控制器1通過CPU 20的通用輸入輸出埠(GeneralPurpose Input Output,GPI0)與計算機系統2相連接。所述的計算機系統2可以為桌上型計算機、 筆記本計算機、伺服器或者工作站計算機之一種。在本實施例中,所述的基板管理控制器1 包括,但不僅限於,微處理器11以及存儲單元12。所述的計算機系統2包括,但不僅限於, CPU 20、內存21以及顯示器22。所述的計算機系統錯誤偵測系統10包括參數設置模塊101、信號監測模塊102、中斷服務模塊103以及錯誤處理模塊104。本發明所稱的模塊是一種能夠被微處理器11所執行並且能夠完成固定功能的一系列電腦程式段,其存儲在基板管理控制器1的存儲單元 12中。所述的參數設置模塊101用於設置一個中斷全局標誌位(例如標誌為tag),並初始化該中斷全局標誌位tag為零,即令中斷全局標誌位tag = 0。所述的中斷全局標誌位 tag用於標示微處理器11啟動中斷服務程式觸發中斷服務的次數,當微處理器11每啟動一次中斷服務,將中斷全局標誌位tag作加一運算,即作tag = tag+1運算。所述的信號監測模塊102用於在計算機系統1運行過程中實時地監測由CPU 20 通過GPIO埠輸出的GPIO信號,以及判斷GPIO信號是否為高電平信號。在本實施例中, 當計算機系統1正常運行時,CPU 20輸出的GPIO信號始終為高電平信號,其用二進位數字 「1」表示,參考圖3(a)所示。當計算機系統1運行時CPU 20本身發生內部錯誤,CPU 20 輸出的GPIO信號則由高電平信號「 1」變化為低電平信號,其用二進位數字「0」表示,而後 GPIO信號一直為低電平信號「0」,參考圖3(b)所示。當計算機系統1運行時內存21發生多位字節錯誤,則CPU 20輸出的GPIO信號在高低電平信號之間上下波動,亦即由高電平信號「 1」變化為低電平信號「0」,再由低電平信號「0」變化為高電平信號「 1」,而後一直為低電平信號「0」。參考圖3(c)所示。當內存21發生多位字節錯誤,GPIO信號一般經過18個 CPU時鐘周期的高低電平信號上下波動後,而後一直為低電平信號「0」。所述的信號監測模塊102還用於在一段延遲時間內判斷CPU 20輸出的GPIO信號是否由高電平信號轉化為低電平信號。在本實施例中,所述的延遲時間的長短取決於CPU 20的工作頻率,假如CPU 20的工作頻率為1000Hz,則所述的延遲時間為3秒鐘。所述的中斷服務模塊103用於當所述的延遲時間內GPIO信號由高電平信號「1」轉化為低電平信號「0」時,啟動中斷服務程式觸發一次中斷服務並將中斷全局標誌位tag加一,即作tag = tag+1運算。該中斷服務模塊103還用於在所述的延遲時間後檢測中斷全局標誌位tag並判斷該中斷全局標誌位tag是否等於一。所述的錯誤處理模塊104用於當中斷全局標誌位tag等於一時確定計算機系統1 發生的系統錯誤為CPU 20的內部錯誤,當中斷全局標誌位tag大於一時確定計算機1發生的系統錯誤為內存21的多位字節錯誤,例如內存21發生2,4,8,. . . 2n位字節錯誤,其中η 為大於1的自然數。所述的錯誤處理模塊104還用於判斷計算機系統1是否發生死機。當信號監測模塊102沒有監測到CPU 20輸出的GPIO信號時,即說明計算機系統1發生死機, 錯誤處理模塊104將中斷全局標誌位tag清零,並關閉或重起計算機系統1對發生的系統錯誤進行處理。在本實施例中,當計算機系統1發生系統錯誤,錯誤處理模塊104將系統錯誤(例如CPU 20的內部錯誤或者內存21的多位字節錯誤)顯示在計算機1的顯示器22中,以提示用戶計算機系統1發生的系統錯誤的類型,從而使用戶方便對計算機系統1發生的錯誤進行處理。如圖2所示,是本發明計算機系統錯誤偵測系統10方法較佳實施例的流程圖。在本實施例中,該方法能夠在計算機系統2發生系統錯誤時,利用基板管理控制器1偵測出該系統錯誤是計算機系統2的CPU 20的內部錯誤還是內存21的多位字節錯誤。步驟S20,參數設置模塊101設置一個中斷全局標誌位(例如標誌為tag),並初始化該中斷全局標誌位tag為零,即令中斷全局標誌位tag = 0。
步驟S21,信號監測模塊102在計算機系統1運行過程中實時地檢測由CPU 20通過GPIO埠輸出的GPIO信號。當計算機系統1正常運行時,則所述的GPIO信號始終為高電平信號「1」,參考圖3 (a)所示。當計算機系統1運行時CPU 20本身發生內部錯誤,所述的GPIO信號則由高電平信號「1」變化為低電平信號「0」,而後GPIO信號一直為低電平信號 「0」,參考圖3(b)所示。當計算機系統1運行時內存21發生多位字節錯誤,所述的GPIO信號則由高電平信號「1」變化為低電平信號「0」,再由低電平信號「0」變化為高電平信號「1」。 參考圖3(c)所示,當內存21發生多位字節錯誤時,GPIO信號一般經過18個CPU時鐘周期的高低電平信號上下波動後,而後一直為低電平信號「0」。步驟S22,信號監測模塊102判斷CPU 20輸出的GPIO信號是否為高電平信號「 1 」。 若所述的GPIO信號為高電平信號「1」,則返回步驟S21 ;若所述的GPIO信號為低電平信號 「0」,則執行步驟S23。步驟S23,中斷服務模塊103啟動中斷服務程式觸發一次中斷服務並將中斷全局標誌位tag加一,即作tag = tag+1運算。步驟S24,信號監測模塊102在一段延遲時間內判斷所述GPIO信號是否由低電平信號「0」轉化為高電平信號「1」。在本實施例中,所述的延遲時間的長短取決於CPU 20的工作頻率,假如CPU 20的工作頻率為1000Hz,則所述的延遲時間為3秒鐘。若在所述延遲時間內GPIO信號由低電平信號「0」轉化為高電平信號「 1 」,則返回步驟S23。若在所述延遲時間內GPIO信號沒有從低電平信號「0」轉化為高電平信號「1」, 步驟S25,中斷服務模塊103在所述延遲時間後判斷中斷全局標誌位tag是否等於一。若中斷全局標誌位tag等於一,步驟S26,錯誤處理模塊104則確定計算機系統1 發生的系統錯誤為CPU 20的內部錯誤;若中斷全局標誌位tag大於一,步驟S27,錯誤處理模塊104則確定計算機1發生的系統錯誤為內存21的多位字節錯誤。步驟S28,錯誤處理模塊104判斷計算機系統1是否發生死機。在本實施例中,當信號監測模塊102沒有監測到CPU 20輸出的GPIO信號時,錯誤處理模塊104判斷即計算機系統1發生死機。若計算機系統1沒有發生死機,則流程返回步驟S21,信號監測模塊102 則繼續監測CPU 20輸出的GPIO信號。若計算機系統1發生死機,步驟S29,錯誤處理模塊 104則將中斷全局標誌位tag清零,並關閉或重起計算機系統1對發生的系統錯誤進行處理。當計算機系統1發生系統錯誤,所述的錯誤處理模塊104將系統錯誤(例如CPU 20的內部錯誤或者內存21的多位字節錯誤)顯示在計算機1的顯示器22中,以提示用戶計算機系統1發生的系統錯誤的類型,從而使用戶方便對計算機系統1發生的錯誤進行處理。以上實施例僅用以說明本發明的技術方案而非限制,儘管參照以上較佳實施例對本發明進行了詳細說明,本領域的普通技術人員應當理解,可以對本發明的技術方案進行修改或等同替換都不應脫離本發明技術方案的精神和範圍。
權利要求
1.一種計算機系統錯誤偵測系統,安裝並運行於基板管理控制器中,該計算機系統包括CPU以及內存,該基板管理控制器通過CPU的GPIO埠與計算機系統相連接,其特徵在於,該計算機系統錯誤偵測系統包括參數設置模塊,用於設置一個中斷全局標誌位,以及初始化該中斷全局標誌位為零; 信號監測模塊,用於在計算機系統運行過程中實時地監測由CPU通過GPIO埠輸出的 GPIO信號,以及在一段延遲時間內檢測CPU輸出的GPIO信號是否由高電平信號轉化為低電平信號;中斷服務模塊,用於當所述GPIO信號由高電平信號轉化為低電平信號時,啟動中斷服務程式觸發一次中斷服務將中斷全局標誌位加一,以及在所述延遲時間後檢測中斷全局標誌位是否大於等於一;錯誤處理模塊,用於當中斷全局標誌位等於一時確定計算機系統發生的系統錯誤為 CPU內部錯誤,以及當中斷全局標誌位大於一時確定計算機系統發生的系統錯誤為內存多位字節錯誤。
2.如權利要求1所述的計算機系統錯誤偵測系統,其特徵在於,所述的錯誤處理模塊還用於當計算機系統發生系統錯誤時將所述系統錯誤顯示在計算機的顯示器上。
3.如權利要求1所述的計算機系統錯誤偵測系統,其特徵在於,所述的錯誤處理模塊還用於判斷計算機系統是否發生死機,當計算機系統發生死機時,將中斷全局標誌位清零, 並關閉或重起計算機系統對所述系統錯誤進行處理。
4.如權利要求1所述的計算機系統錯誤偵測系統,其特徵在於,當計算機系統正常運行時CPU輸出的GPIO信號始終為高電平信號,當CPU發生內部錯誤時CPU輸出的GPIO信號由高電平信號變化為低電平信號,而後一直為低電平信號,當內存發生多位字節錯誤時CPU 輸出的GPIO信號在高電平信號與低電平信號之間上下波動。
5.如權利要求1所述的計算機系統錯誤偵測系統,其特徵在於,所述的延遲時間長短取決於CPU的工作頻率。
6.一種計算機系統錯誤偵測方法,該計算機系統包括CPU以及內存,並通過CPU的 GPIO埠與基板管理控制器相連接,其特徵在於,該方法包括步驟設置一個中斷全局標誌位,並初始化該中斷全局標誌位為零;在計算機系統運行過程中實時地監測由CPU通過GPIO埠輸出的GPIO信號;判斷所述CPU輸出的GPIO信號是否為高電平信號;當所述CPU輸出的GPIO信號為低電平信號時,啟動中斷服務程式觸發一次中斷服務將中斷全局標誌位加一;在一段延遲時間內檢測CPU輸出的GPIO信號是否由低電平信號轉化為高電平信號; 當所述GPIO信號由低電平信號轉化為高電平信號時,啟動中斷服務程式觸發一次中斷服務將中斷全局標誌位加一;在所述延遲時間後判斷中斷全局標誌位是否大於等於一; 若中斷全局標誌位等於一,則確定計算機系統發生的系統錯誤為CPU內部錯誤; 若中斷全局標誌位大於一,則確定計算機系統發生的系統錯誤為內存多位字節錯誤。
7.如權利要求6所述的計算機系統錯誤偵測方法,其特徵在於,該方法還包括步驟當計算機系統發生系統錯誤時,將所述的系統錯誤顯示在計算機的顯示器上。
8.如權利要求6所述的計算機系統錯誤偵測方法,其特徵在於,該方法還包括步驟 判斷計算機系統是否發生死機;若計算機系統沒有發生死機,則繼續監測CPU輸出的GPIO信號; 若計算機系統發生死機,則將中斷全局標誌位清零並關閉或重起計算機系統對所述的系統錯誤進行處理。
9.如權利要求6所述的計算機系統錯誤偵測方法,其特徵在於,當計算機系統正常運行時CPU輸出的GPIO信號始終為高電平信號,當CPU發生內部錯誤時CPU輸出的GPIO信號由高電平信號變化為低電平信號,而後一直為低電平信號,當內存發生多位字節錯誤時CPU 輸出的GPIO信號在高電平信號與低電平信號之間上下波動。
10.如權利要求6所述的計算機系統錯誤偵測方法,其特徵在於,所述的延遲時間長短取決於CPU的工作頻率。
全文摘要
一種計算機系統錯誤偵測系統及方法,該方法包括步驟設置一個中斷全局標誌位,並初始化該中斷全局標誌位為零;在計算機系統運行過程中實時地監測由CPU通過GPIO埠輸出的GPIO信號;判斷GPIO信號是否為高電平信號;當在一段延遲時間內GPIO信號由高電平信號轉化為低電平信號時,啟動中斷服務程式觸發一次中斷服務並將中斷全局標誌位加一;在所述延遲時間後檢測中斷全局標誌位是否大於等於一;若中斷全局標誌位等於一,則確定計算機系統發生的錯誤為CPU內部錯誤;若中斷全局標誌位大於一,則確定計算機系統發生的錯誤為內存多位字節錯誤。實施本發明,能夠利用基板管理控制器自動偵測出計算機系統發生的錯誤類型。
文檔編號G06F11/32GK102567177SQ201010606848
公開日2012年7月11日 申請日期2010年12月25日 優先權日2010年12月25日
發明者張玉崗 申請人:鴻富錦精密工業(深圳)有限公司, 鴻海精密工業股份有限公司