一種故障檢測的方法和裝置的制造方法
【技術領域】
[0001] 本發明涉及通信技術領域,尤其涉及一種故障檢測的方法和裝置。
【背景技術】
[0002] CPU(Central Processing Unit,中央處理器)與內存(即內存條或者內存顆粒) 之間通過線路(即數據線或者地址線)連接起來,而用于連接CPU與內存的線路可能存在 三種故障,這三種故障分別為:1、短路:兩個線路的引腳短接在一起,使得這兩個線路的電 平相同,如果最終電平被高電平主導,則稱這種短路類型為1支配型短路,如果最終電平被 低電平主導,則稱這種短路類型為0支配型短路。2、開路:有線路的部分引腳出現斷路。3、 固定邏輯:有線路的部分引腳被固定地拉到固定電平,如與地短接等。
[0003] 目前,可以采用走步法檢測線路是否存在短路、開路、固定邏輯等故障,如通過地 址線走步算法檢測地址線是否存在短路、開路、固定邏輯等故障,并通過數據線走步算法檢 測數據線是否存在短路、開路、固定邏輯等故障。
[0004] 在上述處理過程中,走步法需要檢測的地址是CPU能夠處理的物理地址,因此, CPU可以直接在該地址內寫入數據,并從該地址中讀取數據。
[0005] 針對需要檢測的地址不是CPU能夠處理的物理地址的應用場景,CPU無法采用走 步法檢測線路是否存在短路、開路、固定邏輯等故障。
【發明內容】
[0006] 本發明提供一種故障檢測的方法,所述方法包括以下步驟:
[0007] 獲取待檢測的線路所在的內存區塊Rank對應的物理Rank地址;
[0008] 將所述物理Rank地址轉換成中央處理器能夠處理的系統物理地址;
[0009] 向所述系統物理地址中寫入數據,并從所述系統物理地址中讀取數據;
[0010] 利用向所述系統物理地址中寫入的數據,以及從所述系統物理地址中讀取的數 據,確定所述待檢測的線路是否發生故障。
[0011] 所述待檢測的線路具體包括:待檢測的地址線;
[0012] 所述向所述系統物理地址中寫入數據,并從所述系統物理地址中讀取數據,具體 包括:基于地址線走步算法,向所述系統物理地址中寫入數據,并從所述系統物理地址中讀 取數據;
[0013] 所述利用向所述系統物理地址中寫入的數據,以及從所述系統物理地址中讀取的 數據,確定所述待檢測的線路是否發生故障,具體包括:利用向所述系統物理地址中寫入的 數據,以及從所述系統物理地址中讀取的數據,確定所述待檢測的地址線是否發生故障。
[0014] 所述待檢測的線路具體包括:待檢測的數據線;
[0015] 所述向所述系統物理地址中寫入數據,并從所述系統物理地址中讀取數據,具體 包括:基于數據線走步算法,向所述系統物理地址中寫入數據,并從所述系統物理地址中讀 取數據;
[0016] 所述利用向所述系統物理地址中寫入的數據,以及從所述系統物理地址中讀取的 數據,確定所述待檢測的線路是否發生故障,具體包括:利用向所述系統物理地址中寫入的 數據,以及從所述系統物理地址中讀取的數據,確定所述待檢測的數據線是否發生故障。
[0017] 向所述系統物理地址中寫入數據,并從所述系統物理地址中讀取數據之前,所述 方法進一步包括:獲取內存映射表,所述內存映射表中包含不能訪問的系統物理地址區間; 如果所述系統物理地址位于所述系統物理地址區間,則跳過向所述系統物理地址中寫入數 據,并從所述系統物理地址中讀取數據的過程;如果所述系統物理地址不位于所述系統物 理地址區間,則執行向所述系統物理地址中寫入數據,并從所述系統物理地址中讀取數據 的過程。
[0018] 將包含地址線走步算法、數據線走步算法、以及內存映射表的測試程序,存儲在統 一可擴展固件接口 UEFI固件中,并在系統管理中斷SMI中運行所述測試程序。
[0019] 在獲取待檢測的線路所在的Rank對應的物理Rank地址之前,所述方法進一步包 括:關閉內存的鏡像功能和幾余功能;
[0020] 在利用向所述系統物理地址中寫入的數據,以及從所述系統物理地址中讀取的數 據,確定所述待檢測的線路是否發生故障之后,所述方法進一步包括:
[0021] 恢復內存的鏡像功能和冗余功能。
[0022] 本發明提供一種故障檢測的裝置,所述裝置具體包括:
[0023] 獲取模塊,用于獲取待檢測的線路所在的內存區塊Rank對應的物理Rank地址; 轉換模塊,用于將所述物理Rank地址轉換成中央處理器能夠處理的系統物理地址;檢測模 塊,用于向所述系統物理地址中寫入數據,并從所述系統物理地址中讀取數據,并利用向所 述系統物理地址中寫入的數據,以及從所述系統物理地址中讀取的數據,確定所述待檢測 的線路是否發生故障。
[0024] 所述待檢測的線路具體包括:待檢測的地址線;所述檢測模塊,具體用于基于地 址線走步算法,向所述系統物理地址中寫入數據,并從所述系統物理地址中讀取數據,并利 用向所述系統物理地址中寫入的數據,以及從所述系統物理地址中讀取的數據,確定所述 待檢測的地址線是否發生故障。
[0025] 所述待檢測的線路具體包括:待檢測的數據線;所述檢測模塊,具體用于基于數 據線走步算法,向所述系統物理地址中寫入數據,并從所述系統物理地址中讀取數據,并利 用向所述系統物理地址中寫入的數據,以及從所述系統物理地址中讀取的數據,確定所述 待檢測的數據線是否發生故障。
[0026] 所述獲取模塊,進一步用于在所述檢測模塊向所述系統物理地址中寫入數據,并 從所述系統物理地址中讀取數據之前,獲取內存映射表,其中,所述內存映射表中包含不能 訪問的系統物理地址區間;
[0027] 如果所述轉換模塊得到的所述系統物理地址位于所述系統物理地址區間,則由所 述檢測模塊跳過向所述系統物理地址中寫入數據,并從所述系統物理地址中讀取數據的過 程;如果所述轉換模塊得到的所述系統物理地址不位于所述系統物理地址區間,則由所述 檢測模塊執行向所述系統物理地址中寫入數據,并從所述系統物理地址中讀取數據的過 程。
[0028] 將包含地址線走步算法、數據線走步算法、以及內存映射表的測試程序,存儲在統 一可擴展固件接口 UEFI固件中,并在系統管理中斷SMI中運行所述測試程序。
[0029] 還包括:處理模塊,用于在所述獲取模塊獲取待檢測的線路所在的Rank對應的物 理Rank地址之前,關閉內存的鏡像功能和冗余功能;在所述檢測模塊利用向所述系統物理 地址中寫入的數據,以及從所述系統物理地址中讀取的數據,確定所述待檢測的線路是否 發生故障之后,恢復內存的鏡像功能和冗余功能。
[0030] 基于上述技術方案,本發明實施例中,在需要檢測的地址不是中央處理器能夠處 理的物理地址的應用場景(如Rank(內存區塊)的應用場景)下,中央處理器通過將待檢 測的線路對應的地址轉換為本中央處理器能夠處理的物理地址,從而使得中央處理器能夠 采用走步法檢測線路是否存在短路、開路、固定邏輯等故障,提供更高的故障定位精度,并 減少故障檢測的時間。
【附圖說明】
[0031] 圖1是本發明一種實施方式中故障檢測的方法的流程圖;
[0032] 圖2是本發明一種實施方式中包含故障檢測的裝置的設備的邏輯結構圖;
[0033] 圖3是本發明一種實施方式中故障檢測的裝置的邏輯結構圖。
【具體實施方式】
[0034] 為了提升內存的訪問帶寬,通常會將連續的物理地址塊交替地分配給不同的 Rank,這種分配過程即為交織。Rank是指一組連接在同一芯片的選通線上,能夠同步操作 的DRAM (Dynamic Random Access Memory,動態隨機存儲器)芯片,一個Rank的數據位寬可 以為64比特。在將連續的物理地址塊交替地分配給不同的Rank時,存在三種類型的地址。 1、系統物理地址,即中央處理器能夠處理的物理地址;2、內存通道地址,即中央處理器內存 通道(Channel)內的地址;3、物理Rank地址,即內存的單個Rank上的地址。
[0035] 在上述應用場景下,走步法需要檢測的地址是物理Rank地址,而中央處理器能夠 執行寫入和讀取操作的地址是系統物理地址,因此,中央處理器無法直接在物理Rank地址 內寫入數