內存錯誤處理方法及電子設備的制造方法
【專利摘要】本申請提供了一種內存錯誤處理方法,該方法在檢測到內存單元發生預設類型的錯誤后,首先確定使用該內存單元的對象,若該對象用戶應用,則執行針對該內存單元的錯誤處理操作,當然,該錯誤處理操作非重啟操作。本方法可以在錯誤內存的使用者為用戶應用的情況下,對該內存單元執行非重啟的錯誤處理操作,避免直接宕機或重啟對服務連續性的破壞。另外,本申請還提供了一種電子設備,以保證上述方法在實際中的應用及實現。
【專利說明】
內存錯誤處理方法及電子設備
技術領域
[0001 ]本申請涉及內存管理技術領域,更具體地,涉及內存錯誤處理技術。
【背景技術】
[0002]生產服務器,與開發服務器相對應,作為投入業務使用的服務器,時刻需要面臨大數據量的訪問需求。可以理解的是,高訪問量,會提高生產服務器內存出現錯誤的概率。
[0003]目前,生產服務器內存出現錯誤后,直接進行宕機或重啟處理。然而,該種簡單粗暴的處理方式,會破壞服務的連續性。
【發明內容】
[0004]有鑒于此,本申請提供了一種內存錯誤處理方法,以解決現有的處理方式破壞了服務的連續性,且不利于后續對錯誤原因的排查的技術問題。另外,本申請還提供了一種電子設備,用以保證所述方法在實際中的應用及實現。
[0005]為實現所述目的,本申請提供的技術方案如下:
[0006]—方面,本申請提供了一種內存錯誤處理方法,應用于中央處理器,該方法包括:
[0007]獲得內存單元發生預設類型錯誤的信息后,確定使用所述內存單元的對象;
[0008]在所述對象為用戶應用的情況下,執行針對所述內存單元的錯誤處理操作;其中,所述錯誤處理操作非重啟操作。
[0009]可選地,上述內存錯誤處理方法中,所述執行針對所述內存單元的錯誤處理操作,包括:
[0010]在本中央處理器為中央處理器集群中的一個中央處理器時,阻止所述中央處理器集群中所有的中央處理器對所述內存單元上的出錯內存空間的再使用操作;其中,所述中央處理器集群中的所有中央處理器以并發的方式訪問所述內存單元。
[0011]可選地,上述內存錯誤處理方法中,所述在本中央處理器為中央處理器集群中的一個中央處理器時,阻止所述中央處理器集群中所有的中央處理器對所述內存單元上的出錯內存空間的再使用操作,包括:
[0012]在本中央處理器為所述中央處理器集群中當前正使用所述內存單元的中央處理器的情況下,通過核間中斷方式,在所述中央處理器集群中廣播錯誤中斷,以使所述中央處理器集群中的所有中央處理器均停止對所述內存單元的再使用操作。
[0013]可選地,上述內存錯誤處理方法中,所述中央處理器集群中首個接收到所述錯誤中斷的中央處理器為主中央處理器,其他中央處理器為從屬中央處理器;
[0014]所述中央處理器集群中的所有中央處理器均停止對所述內存單元的再使用操作,包括:
[0015]在本中央處理器為主中央處理器的情況下,查詢使用所述內存單元的出錯內存空間的所有任務,并向所述中央處理器集群中運行所述任務的目標中央處理器發送錯誤信號,以使所述目標中央處理器觸發各自任務所對應的用戶應用執行針對所述內存單元的錯誤處理操作。
[0016]可選地,上述內存錯誤處理方法中,在查詢使用所述內存單元的出錯內存空間的所有任務之前,還包括:
[0017]確定所述內存單元的所述錯誤為預設的高等級錯誤。
[0018]可選地,上述內存錯誤處理方法還包括:
[0019]在本中央處理器為中央處理器集群中的一個中央處理器且所述對象為系統內核的情況下,保存與所述錯誤相關的系統信息,并在所述中央處理器集群中廣播重啟信號,以進行系統重啟。
[0020]可選地,上述內存錯誤處理方法還包括:
[0021]在本中央處理器為所述中央處理器集群中正使用所述內存單元的中央處理器的情況下,將本中央處理器的狀態信息記錄在擴展寄存器內;
[0022]相應地,所述對象為系統內核的具體確定步驟包括:
[0023]依據所述擴展寄存器中的狀態信息,確定所述對象為系統內核。
[0024]又一方面,本申請提供了一種電子設備,包括:
[0025]內存單元,所述內存單元上設置有ECC芯片;
[0026]中央處理器,通過擴展錯誤中斷連線與所述ECC芯片相連,用于獲得所述內存單元發生預設類型錯誤的信息后,確定使用所述內存單元的對象,并在所述對象為用戶應用的情況下,執行針對所述內存單元的錯誤處理操作;其中,所述錯誤處理操作非重啟操作。
[0027]可選地,所述電子設備包括中央處理器集群,所述中央處理器集群以并發的方式訪問所述內存單元,所述中央處理器為所述中央處理器集群中的一個中央處理器;
[0028]在所述執行針對所述內存單元的錯誤處理操作的方面,所述中央處理器用于:
[0029]阻止所述中央處理器集群中所有的中央處理器對所述內存單元上的出錯內存空間的再使用操作。
[0030]可選地,上述電子設備中,所述中央處理器為所述中央處理器集群中當前正使用所述內存單元的中央處理器;
[0031]在阻止所述中央處理器集群中所有的中央處理器對所述內存單元上的出錯內存空間的再使用操作的方面,所述中央處理器用于:
[0032]通過核間中斷方式,在所述中央處理器集群中廣播錯誤中斷,以使所述中央處理器集群中的所有中央處理器均停止對所述內存單元的再使用操作。
[0033]可選地,上述電子設備中,所述中央處理器為首個接收到所述錯誤中斷的中央處理器;
[0034]在所述中央處理器使所述中央處理器集群中的所有中央處理器均停止對所述內存單元的再使用操作的方面,所述中央處理器用于:
[0035]查詢使用所述內存單元的出錯內存空間的所有任務,并向所述中央處理器集群中運行所述任務的目標中央處理器發送錯誤信號,以使所述目標中央處理器觸發各自任務所對應的用戶應用執行針對所述內存單元的錯誤處理操作。
[0036]可選地,上述電子設備的所述中央處理器還用于:
[0037]在查詢使用所述內存單元的出錯內存空間的所有任務之前,確定所述內存單元的所述錯誤為預設的高等級錯誤。
[0038]可選地,上述電子設備中,所述中央處理器為中央處理器集群中的一個中央處理器且所述中央處理器確定的對象為系統內核;
[0039]所述中央處理器還用于:
[0040]保存與所述錯誤相關的系統信息,并在所述中央處理器集群中廣播重啟信號,以進行系統重啟。
[0041]可選地,上述電子設備中,所述中央處理器上設置有擴展寄存器,所述中央處理器為所述中央處理器集群中正使用所述內存單元的中央處理器;
[0042]所述中央處理器還用于:將本中央處理器的狀態信息記錄在所述擴展寄存器內;
[0043]相應地,在確定對象為系統內核的方面,所述中央處理器用于:
[0044]依據所述擴展寄存器中的狀態信息,確定所述對象為系統內核。
[0045]由以上技術方案可知,本申請提供了一種內存錯誤處理方法,該方法在檢測到內存單元發生預設類型的錯誤后,首先確定使用該內存單元的對象,若該對象用戶應用,則執行針對該內存單元的錯誤處理操作,當然,該錯誤處理操作非重啟操作。本方法可以在錯誤內存的使用者為用戶應用的情況下,對該內存單元執行非重啟的錯誤處理操作,避免直接宕機或重啟對服務連續性的破壞。
【附圖說明】
[0046]為了更清楚地說明本申請實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。
[0047]圖1為本申請提供的內存錯誤處理方法實施例1的流程圖;
[0048]圖2為本申請提供的電子設備的結構示例圖;
[0049]圖3為本申請提供的內存錯誤處理方法實施例2的流程圖;
[0050]圖4為本申請提供的對內存單元的不同使用對象而執行的不同處理操作流程圖;
[0051]圖5為本申請提供的擴展寄存器的結構示例圖。
【具體實施方式】
[0052]下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例。基于本申請中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本申請保護的范圍。
[0053]電子設備如生產服務器中,設置有內存單元及中央處理器CPU。內存單元如內存條中,存儲有可以被中央處理器訪問的數據。中央處理器在訪問內存單元時,若內存單元發生錯誤,則可能導致訪問失敗,進而導致電子設備的宕機或重啟。
[0054]對此,本申請提供了應用在中央處理器上的內存錯誤處理方法。參見圖1,其示出了內存錯誤處理方法實施例1的流程。如圖1所示,本實施例可以具體包括步驟SlOl?步驟S102o
[0055]步驟SlOl:獲得內存單元發生預設類型錯誤的信息后,確定使用內存單元的對象。
[0056]內存單元發生預設類型的錯誤后,可以向中央處理發送錯誤信息。具體地,內存單元上可以設置有ECC(Error Correcting Code,錯誤檢查和糾正)芯片,ECC芯片可以對內存單元進行監測,若發現內存單元發生多位錯誤,便向中央處理器發送錯誤消息。
[0057]當然,預設類型的錯誤包括但不限定于多位錯誤,還可以是其他形式的內存單元不可自恢復的錯誤。
[0058]中央處理器獲得內存單元的錯誤消息后,需要確定當前使用該內存單元的對象。可以理解的是,使用內存單元的對象可能是系統內核,也可能是用戶應用。對于不同的使用對象,錯誤處理操作也會不同。若使用對象為系統內核,則可以保存與錯誤相關的信息后并進行重啟,其中,保存的信息以供后續對錯誤的分析。若使用對象為用戶應用,則可以執行步驟S102。
[0059]步驟S102:在對象為用戶應用的情況下,執行針對內存單元的錯誤處理操作;其中,錯誤處理操作非重啟操作。
[0060]使用內存單元的對象為用戶應用,則中央處理器便執行針對該內存單元的錯誤處理操作。為了保證電子設備工作的連續性,尤其是在電子設備為生產服務器的場景中,為了保證服務器服務的連續性,該錯誤處理操作并非重啟操作。
[0061]需要說明的是,執行的錯誤處理操作,是針對出錯的該內存單元的錯誤處理操作,如阻止所有訪問者對內存單元的訪問、阻止內存單元的再分配等等。
[0062]由以上的技術方案可知,本申請提供的內存錯誤處理方法實施例,應用在中央處理器上,中央處理器接收到內存單元的錯誤信息后,首先確定內存單元的使用對象,若使用對象為用戶應用,便執行對該內存單元的非重啟的錯誤處理操作,從而避免直接宕機或重啟對服務連續性的破壞。
[0063]在一個具體示例中,對內存單元的錯誤處理操作可以是,阻止對內存單元上出錯內存空間的再使用操作。
[0064]具體地,可以在出錯內存空間對應的內存分頁(或稱為page結構)中,標記出錯內存空間為損壞狀態,進一步地,還可以將出錯內存空間對應的節點從內存分頁對應的內存結構樹上隔離出來。節點從內存結構樹上隔離出來,則該節點所對應的出錯內存空間便可以不再被分配使用。
[0065]其中,內存分頁為系統預設的管理出錯內存空間的頁結構,內存分頁中可以記錄內存空間的起始地址、內存空間是否出錯、內存空間關聯在內存結構樹的哪一節點上。
[0066]在另一具體示例中,對內存單元的錯誤處理操作可以是,向用戶應用發送錯誤信號,以觸發用戶應用調用預設的錯誤處理程序,如主備倒換、重啟進程等。當然,若用戶應用并未預先設置有錯誤處理程序,則操作系統殺死用戶應用中訪問出錯內存空間的進程。
[0067]在又一具體示例中,電子設備上可以設置有多個中央處理器,該多個中央處理器可以以并行(或者稱為備份)方式工作,例如,若某中央處理器出現不能正常工作的情況,則其他中央處理器可以作為備份,執行該中央處理器的工作。該多個中央處理器可以稱為中央處理器集群,中央處理器可以以并行方式工作。具體到本申請的應用場景中,中央集群可以以并行方式訪問內存單元。
[0068]參見圖2,其提供了電子設備的一個結構示例圖。如圖2所示,電子設備包括兩個中央處理器CPU及兩個內存單元,每個內存單元均通過擴展中斷連線與兩個中央處理器CPU相連。
[0069]在本具體示例中,若該中央處理器為中央處理器集群中的一個中央處理器,中央處理器執行的針對內存單元的錯誤處理操作可以是:
[0070]阻止中央處理器集群中所有的中央處理器對內存單元上的出錯內存空間的再使用操作,以防止其他中央處理器也訪問該出錯內存空間。
[0071 ]更具體地,若內存單元上的ECC芯片檢測到本內存單元發生預設類型的錯誤,則可以向當前正使用該內存單元的中央處理器發送錯誤中斷(如圖2中的NMI錯誤中斷)。中央處理器接收到該錯誤中斷后,便可以將該錯誤中斷通過核間中斷的方式,廣播到中央處理器集群中的所有中央處理器上。
[0072]這樣,在內存錯誤處理完成前,可以停止中央處理器集群中所有中央處理器對內存單元上出錯內存空間的訪問,從而防止內存錯誤的擴散。
[0073]中央處理器集群中所有的中央處理器都可以接收到廣播的錯誤中斷,但接收的先后順序并不一定。首個接收到該錯誤中斷的中央處理器為主中央處理器,其他中央處理器為從屬中央處理器。需要說明的是,主中央處理器并不一定是當前正在使用該內存單元的處理器。
[0074]具體地,操作系統可以傳遞該錯誤中斷到中央處理器集群中的所有中央處理器上,并調用每個中央處理器各自的中斷處理函數。首個接收到該錯誤終端的中央處理器,可以標記自身為主中央處理器,其他中央處理器標記自身為從屬中央處理器。
[0075]如圖2所示,每個中央處理器在原有寄存器基礎上,還設置有擴展寄存器。主中央處理器及從屬中央處理器將自身擴展寄存器內的數據讀取到全局內存中,該全局內存對于中央處理器集群中的所有中央處理器都是可見的。
[0076]參見圖3,其示了錯誤處理方法實施例2的流程圖。如圖3所示,當前正使用該內存單元的中央處理器(簡稱為當前CPU)接收到ECC芯片發送的錯誤中斷后,可以將與內存單元的錯誤相關的信息寫入到擴展寄存器中。
[0077]與內存單元的錯誤相關的信息可以具體包括,內存單元出錯內存空間的地址及中央處理器的狀態信息。其中,中央處理器的狀態信息可以是,內核態或應用態。內核態表示當前使用中央處理器的是系統內核,應用態表示當前使用中央處理器的是用戶應用。
[0078]因此,不論當前正使用該內存單元的中央處理器是主中央處理器,還是從屬中央處理器,待全部的中央處理器寫入全局內存的操作結束后,全局內存中必然包含與內存單元的錯誤相關的信息。
[0079]主中央處理器讀取全局內存中的數據,根據讀取到的數據中的中央處理器的狀態信息,確定出當前使用內存單元的對象是系統內核還是用戶應用,進而對不同的使用對象執行不同的處理操作。
[0080]參見圖4,其示出了對內存單元的不同使用對象而執行的不同處理操作流程圖。
[0081]步驟S401:主中央處理器根據全局內存中的數據,確定當前使用內存單元的對象。若對象為系統內核,則執行步驟S402 ο若對象為用戶應用,執行步驟S403。
[0082]步驟S402:主中央處理器將與錯誤相關的信息保存到磁盤文件中,并向中央處理器集群內所有中央處理器發送重啟信號,以進行重啟。
[0083]步驟S403:主中央處理器在出錯內存空間對應的內存分頁(或稱為page結構)中,標記出錯內存空間為損壞狀態,并將出錯內存空間對應的節點從內存分頁對應的內存結構樹上隔離出來。
[0084]步驟S404:主中央處理器查詢使用內存單元的出錯內存空間的所有任務,并向中央處理器集群中運行任務的目標中央處理器發送錯誤信號,以使目標中央處理器觸發各自任務所對應的用戶應用執行針對內存單元的錯誤處理操作。
[0085]其中,主中央處理器可以在查找到出錯內存空間的內存分頁后,進一步在內存結構樹中查找該出錯內存空間所對應的節點,該節點中記錄有所有使用該出錯內存空間的任務。在將該節點從內存結構上隔離出來之前,主中央處理器可以記錄所有的任務,例如將所有的任務加入到任務鏈表,進而,主中央處理器從任務鏈表中讀取到所有任務。
[0086]需要說明的是,任務是運行在中央處理器上的任務,讀取到的所有任務可能運行在中央處理器集群中的任何一個或多個中央處理器上。根據任務與運行所在的中央處理器之間的對應關系,確定該所有任務所對應的所有中央處理器,為了便于描述,可以將該中央處理器稱為目標中央處理器。主中央處理器向所有目標中央處理器發送錯誤信號后。
[0087]目標中央處理器接收到該錯誤信號后,觸發各自任務所對應的用戶應用執行針對內存單元的錯誤處理操作。
[0088]具體地,目標中央處理器查詢各自所運行的任務所對應的用戶應用,并向用戶應用發送錯誤信號,用戶應用接收到錯誤信號后,可以執行預設的針對該內存單元的錯誤處理操作,如主備倒換,重啟任務等。
[0089]當然,在步驟S404執行之前,還可以判斷內存單元的錯誤是否為預設的高等級錯誤。若是,才執行步驟S404。否則,向內存單元的錯誤事件加入通知鏈表,并通知系統重新加載錯誤內存頁,在通知鏈表被調用時,再執行步驟S404。這樣,只有在內存錯誤為高等級錯誤的情況下,才立即觸發用戶應用執行錯誤處理操作,若內存錯誤非高等級錯誤,則延后觸發用戶應用執行錯誤處理操作。
[0090]參見圖5,其示出了本申請提供的擴展寄存器的一個示例圖。如圖5所示,擴展寄存器可以記錄四項數據,分別為CTL、STATUS、ADDR及MI SC。
[0091]其中,CTL為功能開啟位。CTL寫入I,則表示設置該擴展寄存器的中央處理器開啟本申請提供的錯誤處理功能。
[0092]STATUS為錯誤處理狀態,若STATUS為O,則表示設置該擴展寄存器的中央處理器是受錯誤影響的中央處理器。
[0093]ADDR為內存單元出現錯誤時,中央處理器正在訪問的內存單元的物理地址。
[0094]MISC為內存單元出現錯誤時,中央處理器的狀態如CPSR,IP等。同時,其還可以記錄內存單元地址的類型如虛擬地址或物理地址、以及地址多少位有效等信息。
[0095]以下對本申請提供的電子設備進行介紹,需要說明的是,有關電子設備的說明可以參照上文提供的內存錯誤處理方法,以下并不贅述。
[0096]參見圖2所示的電子設備示例圖。如圖2所示,電子設備可以具體包括:內存單元及中央處理器。其中:
[0097]內存單元,內存單元上設置有ECC芯片;
[0098]中央處理器,通過擴展錯誤中斷連線與ECC芯片相連,用于獲得內存單元發生預設類型錯誤的信息后,確定使用內存單元的對象,并在對象為用戶應用的情況下,執行針對內存單元的錯誤處理操作;其中,錯誤處理操作非重啟操作。
[0099]電子設備可以包括中央處理器集群,中央處理器集群以并發的方式訪問內存單元,中央處理器為中央處理器集群中的一個中央處理器。
[0100]中央處理器執行針對內存單元的錯誤處理操作的具體步驟可以包括:
[0101]阻止中央處理器集群中所有的中央處理器對內存單元上的出錯內存空間的再使用操作。
[0102]在一個具體示例中,以上中央處理器為中央處理器集群中當前正使用內存單元的中央處理器;
[0103]中央處理器執行阻止中央處理器集群中所有的中央處理器對內存單元上的出錯內存空間的再使用操作的具體步驟可以包括:
[0104]通過核間中斷方式,在中央處理器集群中廣播錯誤中斷,以使中央處理器集群中的所有中央處理器均停止對內存單元的再使用操作。
[0105]其中,中央處理器為首個接收到錯誤中斷的中央處理器。中央處理器使中央處理器集群中的所有中央處理器均停止對內存單元的再使用操作的具體步驟可以包括:
[0106]查詢使用內存單元的出錯內存空間的所有任務,并向中央處理器集群中運行任務的目標中央處理器發送錯誤信號,以使目標中央處理器觸發各自任務所對應的用戶應用執行針對內存單元的錯誤處理操作。
[0107]在一個具體示例中,中央處理器還用于:在查詢使用內存單元的出錯內存空間的所有任務之前,確定內存單元的錯誤為預設的高等級錯誤。
[0108]在一個具體示例中,中央處理器為中央處理器集群中的一個中央處理器且中央處理器確定的使用內存單元的對象為系統內核,該中央處理器還用于:
[0109]保存與錯誤相關的系統信息,并在中央處理器集群中廣播重啟信號,以進行系統重啟。
[0110]在一個具體示例中,中央處理器上設置有擴展寄存器,中央處理器為中央處理器集群中正使用內存單元的中央處理器。中央處理器還用于:將本中央處理器的狀態信息記錄在擴展寄存器內。
[0111]其中,中央處理器確定對象為系統內核的具體步驟包括:依據擴展寄存器中的狀態信息,確定對象為系統內核。
[0112]需要說明的是,本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
[0113]還需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括上述要素的過程、方法、物品或者設備中還存在另外的相同要素。
[0114]對所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本申請。對這些實施例的多種修改對本領域的專業技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本申請的精神或范圍的情況下,在其它實施例中實現。因此,本申請將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。
【主權項】
1.一種內存錯誤處理方法,其特征在于,應用于中央處理器,該方法包括: 獲得內存單元發生預設類型錯誤的信息后,確定使用所述內存單元的對象; 在所述對象為用戶應用的情況下,執行針對所述內存單元的錯誤處理操作;其中,所述錯誤處理操作非重啟操作。2.根據權利要求1所述的內存錯誤處理方法,其特征在于,所述執行針對所述內存單元的錯誤處理操作,包括: 在本中央處理器為中央處理器集群中的一個中央處理器時,阻止所述中央處理器集群中所有的中央處理器對所述內存單元上的出錯內存空間的再使用操作;其中,所述中央處理器集群中的所有中央處理器以并發的方式訪問所述內存單元。3.根據權利要求2所述的內存錯誤處理方法,其特征在于,所述在本中央處理器為中央處理器集群中的一個中央處理器時,阻止所述中央處理器集群中所有的中央處理器對所述內存單元上的出錯內存空間的再使用操作,包括: 在本中央處理器為所述中央處理器集群中當前正使用所述內存單元的中央處理器的情況下,通過核間中斷方式,在所述中央處理器集群中廣播錯誤中斷,以使所述中央處理器集群中的所有中央處理器均停止對所述內存單元的再使用操作。4.根據權利要求3所述的內存錯誤處理方法,其特征在于,所述中央處理器集群中首個接收到所述錯誤中斷的中央處理器為主中央處理器,其他中央處理器為從屬中央處理器; 所述中央處理器集群中的所有中央處理器均停止對所述內存單元的再使用操作,包括: 在本中央處理器為主中央處理器的情況下,查詢使用所述內存單元的出錯內存空間的所有任務,并向所述中央處理器集群中運行所述任務的目標中央處理器發送錯誤信號,以使所述目標中央處理器觸發各自任務所對應的用戶應用執行針對所述內存單元的錯誤處理操作。5.根據權利要求4所述的內存錯誤處理方法,其特征在于,在查詢使用所述內存單元的出錯內存空間的所有任務之前,還包括: 確定所述內存單元的所述錯誤為預設的高等級錯誤。6.根據權利要求1所述的內存錯誤處理方法,其特征在于,還包括: 在本中央處理器為中央處理器集群中的一個中央處理器且所述對象為系統內核的情況下,保存與所述錯誤相關的系統信息,并在所述中央處理器集群中廣播重啟信號,以進行系統重啟。7.根據權利要求6所述的內存錯誤處理方法,其特征在于,還包括: 在本中央處理器為所述中央處理器集群中正使用所述內存單元的中央處理器的情況下,將本中央處理器的狀態信息記錄在擴展寄存器內; 相應地,所述對象為系統內核的具體確定步驟包括: 依據所述擴展寄存器中的狀態信息,確定所述對象為系統內核。8.一種電子設備,其特征在于,包括: 內存單元,所述內存單元上設置有ECC芯片; 中央處理器,通過擴展錯誤中斷連線與所述ECC芯片相連,用于獲得所述內存單元發生預設類型錯誤的信息后,確定使用所述內存單元的對象,并在所述對象為用戶應用的情況下,執行針對所述內存單元的錯誤處理操作;其中,所述錯誤處理操作非重啟操作。9.根據權利要求8所述的電子設備,其特征在于,所述電子設備包括中央處理器集群,所述中央處理器集群以并發的方式訪問所述內存單元,所述中央處理器為所述中央處理器集群中的一個中央處理器; 在所述執行針對所述內存單元的錯誤處理操作的方面,所述中央處理器用于: 阻止所述中央處理器集群中所有的中央處理器對所述內存單元上的出錯內存空間的再使用操作。10.根據權利要求9所述的電子設備,其特征在于,所述中央處理器為所述中央處理器集群中當前正使用所述內存單元的中央處理器; 在阻止所述中央處理器集群中所有的中央處理器對所述內存單元上的出錯內存空間的再使用操作的方面,所述中央處理器用于: 通過核間中斷方式,在所述中央處理器集群中廣播錯誤中斷,以使所述中央處理器集群中的所有中央處理器均停止對所述內存單元的再使用操作。11.根據權利要求10所述的電子設備,其特征在于,所述中央處理器為首個接收到所述錯誤中斷的中央處理器; 在所述中央處理器使所述中央處理器集群中的所有中央處理器均停止對所述內存單元的再使用操作的方面,所述中央處理器用于: 查詢使用所述內存單元的出錯內存空間的所有任務,并向所述中央處理器集群中運行所述任務的目標中央處理器發送錯誤信號,以使所述目標中央處理器觸發各自任務所對應的用戶應用執行針對所述內存單元的錯誤處理操作。12.根據權利要求11所述的電子設備,其特征在于,所述中央處理器還用于: 在查詢使用所述內存單元的出錯內存空間的所有任務之前,確定所述內存單元的所述錯誤為預設的高等級錯誤。13.根據權利要求8所述的電子設備,其特征在于,所述中央處理器為中央處理器集群中的一個中央處理器且所述中央處理器確定的對象為系統內核; 所述中央處理器還用于: 保存與所述錯誤相關的系統信息,并在所述中央處理器集群中廣播重啟信號,以進行系統重啟。14.根據權利要求13所述的電子設備,其特征在于,所述中央處理器上設置有擴展寄存器,所述中央處理器為所述中央處理器集群中正使用所述內存單元的中央處理器; 所述中央處理器還用于:將本中央處理器的狀態信息記錄在所述擴展寄存器內; 相應地,在確定對象為系統內核的方面,所述中央處理器用于: 依據所述擴展寄存器中的狀態信息,確定所述對象為系統內核。
【文檔編號】G06F11/07GK105868038SQ201610183532
【公開日】2016年8月17日
【申請日】2016年3月28日
【發明人】劉峰, 楊立中
【申請人】聯想(北京)有限公司