複製鏈接
請複製以下鏈接發送給好友

Chipkill內存技術

鎖定
Chipkill內存技術最初是由20年前的IBM大型機發展過來的,是IBM公司為了解決服務器內存中ECC技術的不足而開發的,是在ECC技術基礎上的改進成為一種新的ECC內存保護標準。需要提醒的是,Chipkill內存只是一種內存技術,並不是一種特殊的內存類型,只需採用普通的內存即可,比如SD內存、DDR內存均可。這樣就可大大節省用户的投資,適應範圍更廣。Chipkill內存控制器所提供的存儲保護在概念上和具有校驗功能的磁盤陣列類似,在寫數據的時候,把數據寫到多個DIMM內存芯片上。這樣,每個DIMM所起的作用和存儲陣列相同。如果其中任何一個芯片失效了,它隻影響到一個數據字節的某一比特,因為其他比特存儲在另外的芯片上。出現錯誤後,內存控制器能夠從失效的芯片重新構造“失去”的數據,使得服務器可以繼續正常工作
公司名稱
IBM公司
大概發展時間
20年
優    點
節省用户的投資,適應範圍更廣
原    因
其他比特存儲在另外的芯片上

Chipkill內存技術基本概況

採用這種Chipkill內存技術的內存可以同時檢查並修復4個錯誤數據位,進一步提高服務器的實用性。Chipkill內存技術不僅在IBM的x系列服務器廣泛採用,而且通過授權許多國內外品牌服務器中使用,如寶德公司的64位新至強機架式服務器都有該技術的應用。 [1] 

Chipkill內存技術工作原理

Chipkill內存技術支持下,每個ECC單元可單獨用一個數據位來保存的,通過識別碼分別保存在不同的內存空間中。即使整個內存芯片出了故障,每個ECC單元也將最多出現一比特壞數據,從而保證內存子系統的容錯性,保證了服務器在出現故障時,有強大的自我恢復能力。
另外,Chipkill內存控制器具有類似存儲陣列保護模式。即使出現錯誤,內存控制器能夠從失效的芯片重新構造“失去”的數據,使得服務器可以繼續正常工作。而這種Chipkill內存技術可以同時檢查並修復4個錯誤數據位,提高服務器實用性。 [2] 

Chipkill內存技術支持Chipkill內存技術服務器

支持Chipkill內存技術的不僅是IBM服務器,許多國內的服務器,如寶德公司的64位新至強機架式服務器PR2520,該公司還有許多其他服務器也支持這一內存技術,如PT4050R和PR2520等、方正公司的方正圓明MT500等也開始支持這一技術。當然實際應用這一技術的服務器廠商遠不止這些,可以説Chipkill得到了廣泛應用,主要是在中、低端服務器中。
新型的第三代Chipkill內存技術已經集成到了IBM的x架構的芯片組中,不必另外定製。最初IBM公司在主機系統中開發了這一技術,已具有20多年的歷史。這種新的功能既可以檢測,又可以糾正多比特內存錯誤,可進一步提高服務器的實用性。同時服務器中只需採用便宜的、工業標準的ECC存儲器,而不必另外購買專門的內存,所以IBM的Chipkill內存技術的應用非常廣。

Chipkill內存技術Chipkill內存技術與ECC技術區別

ECC內存技術雖然可以同時檢測和糾正單一比特錯誤,但如果同時檢測出兩個以上比特的數據錯誤,則無能為力。但基於Intel處理器架構的服務器的CPU性能以幾何級的倍數提高,而硬盤驅動器的性能同期只提高了5倍,因此為了保證正常運行,服務器需要大量的內存來臨時保存從CPU上讀取的數據。這樣大的數據訪問量就導致單一內存芯片在每次訪問時通常要提供4(32位)或8(64位)字節以上的數據。一次性讀取這麼多數據,出現多位數據錯誤的可能性會大大提高,而ECC又不能糾正雙比特以上的錯誤,這樣就很可能造成全部比特數據的丟失,系統就會很快崩潰。IBM的Chipkill技術是利用內存的子結構方法來解決這一難題的。
Chipkill內存子系統的設計原理是這樣的:在Chipkill技術支持下,單一內存芯片無論數據寬度是多少,只有一個給定的ECC識別碼,它的影響最多為一比特。舉個例子來説明,如果使用4比特寬的SDRAM,4比特中的每一位的奇偶性將分別組成不同的ECC識別碼,每個ECC單元可單獨用一個數據位來保存,也就是説這些識別碼分別保存在不同的內存空間中。因此,即使整個內存芯片出了故障,每個ECC單元也將最多出現一比特壞數據。出現這種情況完全可以通過ECC進行邏輯修復,從而保證了內存子系統的容錯性,保證了服務器在出現故障時,有強大的自我恢復能力。
Chipkill內存控制器所提供的存儲保護在概念上和具有校驗功能的磁盤陣列類似。在寫數據的時候,把數據寫到多個DIMM內存芯片上。這樣,每個DIMM所起的作用和存儲陣列相同。如果其中任何一個芯片失效了,它隻影響到一個數據字節的某一比特,因為其他比特存儲在另外的芯片上。出現錯誤後,內存控制器能夠從失效的芯片重新構造"失去"的數據,使得服務器可以繼續正常工作。採用這種Chipkill內存技術的內存可以同時檢查並修復4個錯誤數據位,進一步提高了服務器的實用性。
與ECC技術相比,Chipkill內存技術更加有效,提高效率幾乎達100倍,它提供對每個DIMM內存芯片糾正4比特錯誤的能力。如果內存發生錯誤,Chipkill將自動平穩地讓出錯的內存芯片離線,而服務器繼續保持正常工作。
Chipkill內存技術與ECC技術一樣,不僅原來的SD內存可以支持,主流的DDR內存也對它提供了支持。由於Chipkill內存技術是通過內存控制器提供的,所以可以在標準的ECC DIMM內存上實現,並且對於操作系統是透明的。 [3] 
參考資料