本發明專利技術適用于糾錯碼技術領域,提供了一種內存糾錯方法及系統,所述方法包括:如果傳輸數據的兩個鏡像通道都有錯誤位,鏡像管理器向所述第一鏡像通道的錯誤位中,填充修正數據集合中的修正數據,所述第一鏡像通道為所述兩個鏡像通道中的任一鏡像通道;所述鏡像管理器校驗填充后的所述第一鏡像通道的錯誤位,如果校驗正確,所述第一鏡像通道糾錯成功,如果校驗錯誤,繼續在所述修正數據集合中按照預設順序選擇修正數據填充入所述第一鏡像通道的錯誤位,直到所述第一鏡像通道校驗正確。本發明專利技術,通過向錯誤位填充修正數據進行錯誤糾正,同時,鏡像通道只需要保留CRC校驗碼,進一步提高存儲器的空間利用率。
【技術實現步驟摘要】
本專利技術屬于糾錯碼
,尤其涉及一種內存糾錯方法及系統。
技術介紹
在容錯計算機領域,數據可靠性對整個系統的性能至關重要,特別是系統核心數據或重要的應用程序數據,其數據的可靠性直接影響整個系統的運行,由于動態隨機訪問存儲器(Dynamic random access memory,DRAM)存儲數據易出錯,所以對于重要數據,經常采用內存鏡像的方法進行1+1的數據備份。具體的,內存鏡像的方法在一個內存鏡像系統中,通常指定某兩個雙倍數據率(Dual data rate,DDR)通道互為鏡像,任何的數據寫操作,都同時寫入兩個通道,這樣互為鏡像的兩個通道總是保存相同的數據內容;讀操作則可以同時讀取兩個通道,也可以選取任意一個讀取。采用上述內存鏡像的方法進行1+1的數據備份,鏡像內存系統常見的結構如圖1所示,主控制器發起內存讀寫,在鏡像模式下,兩個DDR通道之間通過鏡像管理模塊管理,主控器發起寫操作時,鏡像管理模塊將同時向兩個通道發起寫內存的操作,保證兩個通道總是擁有相同的數據鏡像。其中,主控器發起讀操作后有兩種方式處理,一種是同時讀取兩個通道,任何一個先返回數據,或者任意一個返回的數據校驗正確,則將其讀數據返回主控器;另一種方法是采用負載均衡的方法,首先只讀取其中一個通道,如果其返回數據校驗錯誤,且錯誤不可糾正,則讀取其鏡像通道,完成讀操作。現有糾錯方法有以下兩種,第一情況是可靠性內存系統中通常采用帶錯誤糾正碼(Error Correction Code, ECC)的雙列直插式存儲模塊(Dual in-line memory module,DMM),其數據寬度為72位,通道有效數據為64位,另外8位可以用于存儲數據的校驗碼。最簡單的采用64位數據+8位ECC校驗碼,實現糾I檢2的方案,其中糾I為糾正I位錯誤,檢2為檢測2位錯誤。這種方法數據存儲,如圖2所示。如果兩個互為鏡像的通道都產生了不可糾正的錯誤數據,則鏡像系統中的數據錯誤亦不可糾正。比如圖2中所示的糾錯誤方案中,如果一組數據的兩個通道都發生了 2位錯誤,則主控器將不能得到正確的數據。另外一種常見的方式是將多組64位的數據聯合起來形成檢錯和糾錯能力更強的校驗碼,比如N組64位數據加N組8位校驗碼,從而實現更多位錯誤的檢測和糾正。這種方法數據存儲,如圖3所示。但是,一組數據的兩個通道都獨立的采用相同的校驗方案,通道冗余備份,存儲器的空間利用率不高。綜上所述,現有鏡像系統中只是通道數據的冗余備份增加了數據的可靠性,并沒有將兩個通道的數據進行有效的組織,相對來說兩個通道還是獨立的進行數據存儲和校驗的,存在一組數據的兩個通道都發生了 2位錯誤,主控器不能得到正確的數據,和存儲器的空間利用率不高的問題,因此,需要一種更有效解決校驗和存儲空間利用率不高的問題的方法。
技術實現思路
本專利技術實施例提供了一種內存糾錯方法及系統,旨在解決現有鏡像系統中一組數據的兩個鏡像通道都發生了不可糾正的錯誤時,主控器不能得到正確的數據,和存儲器的空間利用率不聞的問題。第一方面,提供一種內存糾錯方法,所述內存糾錯方法包括如果傳輸數據的兩個鏡像通道都有錯誤位,鏡像管理器向所述第一鏡像通道的錯誤位中,填充修正數據集合中的修正數據,所述第一鏡像通道為所述兩個鏡像通道中的任一鏡像通道;所述鏡像管理器校驗填充后的所述第一鏡像通道的錯誤位,如果校驗正確,所述第一鏡像通道糾錯成功,如果校驗錯誤,繼續在所述修正數據集合中按照預設順序選擇修正數據填充入所述第一鏡像通道的錯誤位,直到所述第一鏡像通道校驗正確。進一步的,所述內存糾錯方法還包括所述修正數據集合為的窮舉數據集合。進一步的,所述內存糾錯方法還包括所述鏡像管理器對比所述兩個鏡像通道,將所述兩個鏡像通道中不同的位標記為所述錯誤位。進一步的,所述內存糾錯方法還包括所述鏡像管理器根據所述數據的校驗方案,獲取校驗碼。進一步的,所述內存糾錯方法具體包括如果所述數據為一組獨立校驗數據,所述鏡像管理器讀取所述第一鏡像通道的循環冗余校驗碼,作為校驗碼;如果所述數據為多組聯合校驗數據,所述鏡像管理器按照預設規則,組合多個鏡像通道的循環冗余校驗碼,生成校驗碼。進一步的,所述內存糾錯方法還包括當所述第一鏡像通道校驗正確之后,所述鏡像管理器根據所述第一鏡像通道,對所述兩個鏡像通道中的另一個鏡像通道進行糾正。第二方面,提供一種鏡像管理器,所述鏡像管理器包括糾錯單元,用于如果傳輸數據的兩個鏡像通道都有錯誤位,向所述第一鏡像通道的錯誤位中,填充修正數據集合中的修正數據,所述第一鏡像通道為所述兩個鏡像通道中的任一鏡像通道;校驗單元,用于校驗填充后的所述第一鏡像通道的錯誤位,如果校驗正確,所述第一鏡像通道糾錯成功,如果校驗錯誤,繼續在所述修正數據集合中按照預設順序選擇修正數據填充入所述第一鏡像通道的錯誤位,直到所述第一鏡像通道校驗正確。進一步的,所述鏡像管理器還包括錯誤位獲取單元,用于對比所述兩個鏡像通道,將所述兩個鏡像通道中不同的位標記為所述錯誤位。進一步的,所述鏡像管理器還包括校驗碼獲取單元,用于根據所述數據的校驗方案,獲取校驗碼。進一步的,所述校驗碼獲取單元包括獨立校驗碼獲取模塊,用于如果所述數據為一組獨立校驗數據,讀取所述第一鏡像通道的循環冗余校驗碼,作為校驗碼;聯合校驗碼獲取模塊,用于如果所述數據為多組聯合校驗數據,按照預設規則,組合多個鏡像通道的循環冗余校驗碼,生成校驗碼。進一步的,所述鏡像管理器還包括鏡像通道恢復單元,用于當所述第一鏡像通道校驗正確之后,根據所述第一鏡像通道,對所述兩個鏡像通道中的另一個鏡像通道進行糾正。第三方面,提供一種鏡像管理器,所述鏡像管理器包括微處理器,用于如果傳輸數據的兩個鏡像通道都有錯誤位,向所述第一鏡像通道的錯誤位中,填充修正數據集合中的修正數據,所述第一鏡像通道為所述兩個鏡像通道中的任一鏡像通道;校驗填充后的所述第一鏡像通道的錯誤位,如果校驗正確,所述第一鏡像通道糾錯成功,如果校驗錯誤,繼續在所述修正數據集合中按照預設順序選擇修正數據填充入所述第一鏡像通道的錯誤位,直到所述第一鏡像通道校驗正確。進一步的,所述微處理器還用于對比所述兩個鏡像通道,將所述兩個鏡像通道中不同的位標記為所述錯誤位。進一步的,所述微處理器還用于根據所述數據的校驗方案,獲取校驗碼。進一步的,所述微處理器具體用于如果所述數據為一組獨立校驗數據,讀取所述第一鏡像通道的循環冗余校驗碼,作為校驗碼;如果所述數據為多組聯合校驗數據,按照預設規則,組合多個鏡像通道的循環冗余校驗碼,生成校驗碼。進一步的,所述微處理器還用于當所述第一鏡像通道校驗正確之后,根據所述第一鏡像通道,對所述兩個鏡像通道中的另一個鏡像通道進行糾正。第四方面,提供一種內存糾錯系統,所述內存糾錯系統包括所述鏡像管理器。在本專利技術實施例,利用數據的鏡像通道的冗余數據,實現現有方案下鏡像通道都存在不可糾正錯誤時,通過向錯誤位填充修正數據進行錯誤糾正,同時,鏡像通道只需要保留CRC校驗碼,進一步提聞存儲器的空間利用率。附圖說明圖1是
技術介紹
提供的鏡像內存系統常見的結構的示意圖;圖2是
技術介紹
提供的64位數據+8位ECC的數據存儲示意圖;圖3是
技術介紹
提供的N組64位數據+N組8位ECC的數據存儲示意圖;圖4本文檔來自技高網...
【技術保護點】
一種內存糾錯方法,其特征在于,所述內存糾錯方法包括:如果傳輸數據的兩個鏡像通道都有錯誤位,鏡像管理器向所述第一鏡像通道的錯誤位中,填充修正數據集合中的修正數據,所述第一鏡像通道為所述兩個鏡像通道中的任一鏡像通道;所述鏡像管理器校驗填充后的所述第一鏡像通道的錯誤位,如果校驗正確,所述第一鏡像通道糾錯成功,如果校驗錯誤,繼續在所述修正數據集合中按照預設順序選擇修正數據填充入所述第一鏡像通道的錯誤位,直到所述第一鏡像通道校驗正確。
【技術特征摘要】
1.一種內存糾錯方法,其特征在于,所述內存糾錯方法包括 如果傳輸數據的兩個鏡像通道都有錯誤位,鏡像管理器向所述第一鏡像通道的錯誤位中,填充修正數據集合中的修正數據,所述第一鏡像通道為所述兩個鏡像通道中的任一鏡像通道; 所述鏡像管理器校驗填充后的所述第一鏡像通道的錯誤位,如果校驗正確,所述第一鏡像通道糾錯成功,如果校驗錯誤,繼續在所述修正數據集合中按照預設順序選擇修正數據填充入所述第一鏡像通道的錯誤位,直到所述第一鏡像通道校驗正確。2.如權利要求1所述的內存糾錯方法,其特征在于,所述修正數據集合為的窮舉數據集合。3.如權利要求2所述的內存糾錯方法,其特征在于,在所述鏡像管理器向所述第一鏡像通道的錯誤位中,填充修正數據集合中的修正數據,所述第一鏡像通道為所述兩個鏡像通道中的任一鏡像通道之前,還包括 所述鏡像管理器對比所述兩個鏡像通道,將所述兩個鏡像通道中不同的位標記為所述錯誤位。4.如權利要求2或3所述的內存糾錯方法,其特征在于,在所述校驗填充后的所述第一鏡像通道的錯誤位之前,還包括 所述鏡像管理器根據所述數據的校驗方案,獲取校驗碼。5.如權利要求4所述的內存糾錯方法,其特征在于,所述鏡像管理器根據所述數據的校驗方案,獲取校驗碼,具體為 如果所述數據為一組獨立校驗數據,所述鏡像管理器讀取所述第一鏡像通道的循環冗余校驗碼,作為校驗碼; 如果所述數據為多組聯合校驗數據,所述鏡像管理器按照預設規則,組合多個鏡像通道的循環冗余校驗碼,生成校驗碼。6.如權利要求4所述的內存糾錯方法,所述方法還包括 當所述第一鏡像通道校驗正確之后,所述鏡像管理器根據所述第一鏡像通道,對所述兩個鏡像通道中的另一個鏡像通道進行糾正。7.一種鏡像管理器,其特征在于,所述鏡像管理器包括 糾錯單元,用于如果傳輸數據的兩個鏡像通道都有錯誤位,向所述第一鏡像通道的錯誤位中,填充修正數據集合中的修正數據,所述第一鏡像通道為所述兩個鏡像通道中的任一鏡像通道; 校驗單元,用于校驗填充后的所述第一鏡像通道的錯誤位,如果校驗正確,所述第一鏡像通道糾錯成功,如果校驗錯誤,繼續在所述修正數據集合中按照預設順序選擇修正數據填充入所述第一鏡像通道的錯誤位,直到所述第一鏡像通道校驗正確。8.如權利要求7所述的鏡像管理器,其特征在于,所述鏡像管理器還包括 ...
【專利技術屬性】
技術研發人員:程永波,賀成洪,蘭可嘉,
申請(專利權)人:華為技術有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。