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

Chipkill

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

Chipkill簡介

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

Chipkill對比舊ECC內存技術的優點

ECC內存技術雖然可以同時檢測和糾正單一比特錯誤,但如果同時檢測出兩個以上比特的數據錯誤,則無能為力。但基於Intel處理器架構的服務器CPU性能以幾何級的倍數提高,而硬盤驅動器的性能同期只提高了5倍,因此為了保證正常運行,服務器需要大量的內存來臨時保存從CPU上讀取的數據。這樣大的數據訪問量就導致單一內存芯片在每次訪問時通常要提供4(32位)或8(64位)字節以上的數據。一次性讀取這麼多數據,出現多位數據錯誤的可能性會大大提高,而ECC又不能糾正雙比特以上的錯誤,這樣就很可能造成全部比特數據的丟失,系統就會很快崩潰。IBM的Chipkill技術是利用內存的子結構方法來解決這一難題的。

Chipkill設計原理

Chipkill內存子系統的設計原理是這樣的:在Chipkill技術支持下,單一內存芯片無論數據寬度是多少,只有一個給定的ECC識別碼,它的影響最多為一比特。舉個例子來説明,如果使用4比特寬的SDRAM,4比特中的每一位的奇偶性將分別組成不同的ECC識別碼,每個ECC單元可單獨用一個數據位來保存,也就是説這些識別碼分別保存在不同的內存空間中。因此,即使整個內存芯片出了故障,每個ECC單元也將最多出現一比特壞數據。出現這種情況完全可以通過ECC進行邏輯修復,從而保證了內存子系統的容錯性,保證了服務器在出現故障時,有強大的自我恢復能力。Chipkill內存控制器所提供的存儲保護在概念上和具有校驗功能的磁盤陣列類似。在寫數據的時候,把數據寫到多個DIMM內存芯片上。這樣,每個DIMM所起的作用和存儲陣列相同。如果其中任何一個芯片失效了,它隻影響到一個數據字節的某一比特,因為其他比特存儲在另外的芯片上。出現錯誤後,內存控制器能夠從失效的芯片重新構造"失去"的數據,使得服務器可以繼續正常工作。採用這種Chipkill內存技術的內存可以同時檢查並修復4個錯誤數據位,進一步提高了服務器的實用性。

Chipkill發展

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