Chipkill

Chipkill是為美國航空航天局(NASA)的"探路者"探測器赴火星探險而研製的ECC記憶體保護技術。它是IBM公司為了彌補目前伺服器記憶體中ECC技術的不足而開發的。ECC記憶體技術雖然可以同時檢測和糾正單一比特錯誤,但如果同時檢測出兩個以上比特的數據錯誤,則無能為力。但基於Intel處理器架構的伺服器CPU性能以幾何級的倍數提高,而硬碟驅動器的性能同期只提高了5倍,因此為了保證正常運行,伺服器需要大量的記憶體來臨時保存從硬碟驅動器上讀取的數據。

簡介,對比舊ECC記憶體技術的優點,設計原理,發展,

簡介

Chipkill記憶體最初是由20年前的IBM大型機發展過來的,Chipkill是為美國航空航天局(NASA)的"探路者"探測器赴火星探險而研製的。它是IBM公司為了彌補目前伺服器記憶體中ECC技術的不足而開發的,是一種新的ECC記憶體保護技術。

對比舊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個錯誤數據位,進一步提高了伺服器的實用性。

發展

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

相關詞條

熱門詞條

聯絡我們