基本概況
CHIPKILL記憶體技術最初是由20年前的IBM大型機發展過來的,是IBM公司為了解決目前伺服器記憶體中ECC技術的不足而開發的,是在ECC技術基礎上的改進成為一種新的ECC記憶體保護標準。需要提醒的是,Chipkill記憶體只是一種記憶體技術,並不是一種特殊的記憶體類型,只需採用
普通的記憶體即可,比如SD記憶體、DDR記憶體均可。這樣就可大大節省用戶的投資,適應範圍更廣。Chipkill記憶體控制器所提供的存儲保護在概念上和具有校驗功能的磁碟陣列類似,在寫數據的時候,把數據寫到多個DIMM記憶體晶片上。這樣,每個DIMM所起的作用和存儲陣列相同。如果其中任何一個晶片失效了,它只影響到一個數據位元組的某一比特,因為其他比特存儲在另外的晶片上。出現錯誤後,記憶體控制器能夠從失效的晶片重新構造“失去”的數據,使得伺服器可以繼續正常工作。
採用這種Chipkill記憶體技術的記憶體可以同時檢查並修復4個錯誤數據位,進一步提高伺服器的實用性。Chipkill記憶體技術不僅在IBM的x系列伺服器廣泛採用,而且通過授權許多國內外品牌伺服器中使用,如寶德公司的64位新至強機架式伺服器都有該技術的套用。
工作原理
Chipkill記憶體技術支持下,每個ECC單元可單獨用一個數據位來保存的,通過識別碼分別保存在不同的記憶體空間中。即使整個記憶體晶片出了故障,每個ECC單元也將最多出現一比特壞數據,從而保證記憶體子系統的容錯性,保證了伺服器在出現故障時,有強大的自我恢復能力。
另外,Chipkill記憶體控制器具有類似存儲陣列保護模式。即使出現錯誤,記憶體控制器能夠從失效的晶片重新構造“失去”的數據,使得伺服器可以繼續正常工作。而這種Chipkill記憶體技術可以同時檢查並修復4個錯誤數據位,提高伺服器實用性。
支持Chipkill記憶體技術伺服器
支持Chipkill記憶體技術的不僅是IBM伺服器,許多國內的伺服器,如寶德公司的64位新至強機架式伺服器PR2520,該公司還有許多其他伺服器也支持這一記憶體技術,如PT4050R和PR2520等、方正公司的方正圓明MT500等也開始支持這一技術。當然實際套用這一技術的伺服器廠商遠不止這些,可以說Chipkill得到了廣泛套用,主要是在中、低端伺服器中。
新型的第三代Chipkill記憶體技術已經集成到了IBM的X架構的晶片組中,不必另外定製。最初IBM公司在主機系統中開發了這一技術,到現在已具有20多年的歷史。這種新的功能既可以檢測,又可以糾正多比特記憶體錯誤,可進一步提高伺服器的實用性。同時伺服器中只需採用便宜的、工業標準的ECC存儲器,而不必另外購買專門的記憶體,所以IBM的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記憶體上實現,並且對於作業系統是透明的。