中文字幕无码日韩视频无码三区

一種容忍dram顆粒失效的內存存取方法

文檔序號:9750663閱讀:1085來源:國知局
一種容忍dram顆粒失效的內存存取方法
【技術領域】
[0001 ]本發明涉及計算機內存技術領域,具體涉及一種容忍DRAM顆粒失效的內存存取方法。
【背景技術】
[0002]內存是計算機中重要的部件之一,計算機中所有程序的運行都是在內存中進行的,其作用是用于暫時存放CPU中的運算數據,以及與硬盤等外部存儲器交換的數據。只要計算機在運行中,CPU就會把需要運算的數據調到內存中進行運算,當運算完成后CPU再將結果傳送出來。
[0003]一般服務器內存條物理組成包括DRAM顆粒和Regi ster芯片,信號接口包括Command命令、Control控制、Address地址、64bit數據和8bit ECC。傳統的內存存取方式是,將64bit數據信息按順序存放在數據顆粒里面,Sbit校驗信息存放在ECC顆粒里面,ECC可以糾正單bit的內存錯誤。
[0004]內存通常使用的技術包括Parity(奇偶校驗)和ECC(Error Correcting Code,錯誤檢查和糾正);但是Parity有一個缺點,當計算機查到某個Byte有錯誤時,并不能確定錯誤在哪一個bit,也就無法修正錯誤。ECC比Parity技術先進的地方在于它不僅能發現錯誤,而且能糾正這個單bit的錯誤,錯誤糾正之后計算機才能正確執行下面的任務,確保服務器的正常運行。隨著計算機規模的不斷擴大,使用的內存數量越來越多,出錯的概率也越來越大,傳統ECC只能糾正單bit的內存錯誤,當單顆DRAM失效時ECC就無法解決,系統就有宕機的風險。
[0005]如圖2所示,內存控制器和內存條之間的任一筆傳輸數據(64bit數據位和SbitECC校驗),傳統內存的存取方式是按順序存放的。假設DRAM的位寬是x8、64bit中第I個byte數據為10101010,所以10101010存放在第一顆x8 DRAM中,其他剩余數據位依次存放在第2-8顆DRAM中,ECC校驗位存在第9顆ECC x8 DRAM中。當發生單bit錯誤時,通過ECC糾正可以保證系統正常運行,但是但單顆DRAM實效時(8bit同時失效),ECC則無法糾正該錯誤。

【發明內容】

[0006]本發明要解決的技術問題是:為了解決上述問題,本發明提出了一種在服務器上容忍DRAM顆粒失效的內存存取方法,將每個Byte的數據存放到不同的DRAM中,每個Byte對應CRC存放到ECC顆粒中,利用CRC糾錯技術,當發生單顆DRAM失效時也能將錯誤糾正過來保證系統可正常運行。
[0007]本發明所采用的技術方案為:
一種容忍DRAM顆粒失效的內存存取方法,所述方法通過將內存控制器和內存條之間的任一筆傳輸數據,由64bit數據位和8bit ECC位組成,以字節Byte為單位,組成8 Byte數據和I Byte ECC;
然后將每個Byte的8 bit數據分散存放到不同DRAM顆粒,并對每個Byte進行單獨的CRC(Cyclic Redundancy Check,循環冗余校驗),并將CRC校驗碼存儲到內存條的ECC顆粒;從而能夠將失效顆粒中的數據還原出來,所以即使單顆DRAM失效,系統也可以正常運行。
[0008]所述傳輸數據每個Byte的8 bit數據存放到不同DRAM顆粒的方式如下:第I顆DRAM中第I個bit存放第一個Byte的第I bit,第2顆DRAM中第一個bit存放第一個Byte的第2bit,以此類推;
第2-8個Byte的8bit也按上述方法處理,分別存放到8顆DRAM中。
[0009]所述傳輸數據每個Byte進行單獨的CRC循環冗余校驗計算,并將CRC校驗碼存儲到內存條的第9顆ECC DRAM中。
[0010]當任意一顆DRAM失效時,也只相當于每個Byte的只有I個bit失效,利用第9顆DRAM中的CRC數據可糾正單bit的錯誤,將失效顆粒中的數據還原出來,系統也可以正常運行。
[0011]本發明的有益效果為:
本發明提供了一種可顯著降低內存故障的方法,提高了公司布局服務器內存設計,減少了因為內存原因引起的故障,提高了產品競爭力。
【附圖說明】
[0012]圖1為內存條組成示意圖;
圖2為傳統內存數據順序存放示意圖;
圖3為本發明內存數據分散存放示意圖。
【具體實施方式】
[0013]下面根據說明書附圖,結合【具體實施方式】對本發明進一步說明:
實施例1:
一種容忍DRAM顆粒失效的內存存取方法,所述方法通過將內存控制器和內存條之間的任一筆傳輸數據,由64bit數據位和8bit ECC位組成,以字節Byte為單位,組成8 Byte數據和I Byte ECC;
然后將每個Byte的8 bit數據分散存放到不同DRAM顆粒,并對每個Byte進行單獨的CRC(Cyclic Redundancy Check,循環冗余校驗),并將CRC校驗碼存儲到內存條的ECC顆粒;從而能夠將失效顆粒中的數據還原出來,所以即使單顆DRAM失效,系統也可以正常運行。
[0014]實施例2:
如圖1所示,為服務器內存條物理組成,一般包括DRAM顆粒和Register芯片,以x8的顆粒組成的內存條為例進行說明,其中8顆x8 DRAM用于存放64bit數據,I顆x8 DRAM用于存放8bit ECC位。
[0015]在實施例1的基礎上,本實施例所述傳輸數據每個Byte的8bit數據存放到不同DRAM顆粒的方式如下:
第I顆DRAM中第I個bit存放第一個Byte的第I bit,第2顆DRAM中第一個bit存放第一個Byte的第2 bit,以此類推;
第2-8個Byte的8bit也按上述方法處理,分別存放到8顆DRAM中。
[0016]如圖3所示,假設第I個Byte數據為10101010,那么第I顆DRAM中第I個bit存放I,第2顆DRAM中第一個bit存放O,以此類推; 第2個Byte的8bit也按上述方法處理,分別存放到8顆DRAM中。
[0017]實施例3:
在實施例2的基礎上,本實施例所述傳輸數據每個Byte進行單獨的CRC循環冗余校驗計算,并將CRC校驗碼存儲到內存條的第9顆ECC DRAM中。
[0018]實施例4:
在實施例3的基礎上,本實施例當任意一顆DRAM失效時,也只相當于每個Byte的只有I個bit失效,利用第9顆DRAM中的CRC數據可糾正單bit的錯誤,將失效顆粒中的數據還原出來,系統也可以正常運行。
[0019]以上實施方式僅用于說明本發明,而并非對本發明的限制,有關技術領域的普通技術人員,在不脫離本發明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術方案也屬于本發明的范疇,本發明的專利保護范圍應由權利要求限定。
【主權項】
1.一種容忍DRAM顆粒失效的內存存取方法,其特征在于:所述方法通過將內存控制器和內存條之間的任一筆傳輸數據,由64bit數據位和8bit ECC位組成,以字節Byte為單位,組成8 Byte數據和I Byte ECC ; 然后將每個Byte的8 bit數據分散存放到不同DRAM顆粒,并對每個Byte進行單獨的CRC,并將CRC校驗碼存儲到內存條的ECC顆粒;從而能夠將失效顆粒中的數據還原出來。2.根據權利要求1所述的一種容忍DRAM顆粒失效的內存存取方法,其特征在于:所述傳輸數據每個Byte的8 bit數據存放到不同DRAM顆粒的方式如下:第I顆DRAM中第I個bit存放第一個Byte的第I bit,第2顆DRAM中第一個bit存放第一個Byte的第2 bit,以此類推; 第2-8個Byte的8bit也按上述方法處理,分別存放到8顆DRAM中。3.根據權利要求2所述的一種容忍DRAM顆粒失效的內存存取方法,其特征在于:所述傳輸數據每個Byte進行單獨的CRC循環冗余校驗計算,并將CRC校驗碼存儲到內存條的第9顆ECC DRAM 中。4.根據權利要求2所述的一種容忍DRAM顆粒失效的內存存取方法,其特征在于:當任意一顆DRAM失效時,利用第9顆DRAM中的CRC數據可糾正單bit的錯誤,將失效顆粒中的數據還原出來。
【專利摘要】本發明公開了一種容忍DRAM顆粒失效的內存存取方法,所述方法通過將內存控制器和內存條之間的任一筆傳輸數據,由64bit數據位和8bit?ECC位組成,以字節Byte為單位,組成8?Byte數據和1?Byte?ECC;然后將每個Byte的8?bit數據分散存放到不同DRAM顆粒,并對每個Byte進行單獨的CRC,并將CRC校驗碼存儲到內存條的ECC顆粒;從而能夠將失效顆粒中的數據還原出來。本發明提供了一種可顯著降低內存故障的方法,提高了公司布局服務器內存設計,減少了因為內存原因引起的故障,提高了產品競爭力。
【IPC分類】G06F11/10
【公開號】CN105511982
【申請號】CN201510949032
【發明人】貢維, 李鵬翀, 林楷智
【申請人】山東海量信息技術研究院
【公開日】2016年4月20日
【申請日】2015年12月18日
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1