ChipKill是IBM近年來在PC伺服器推廣的記憶體資料可靠性技術,效果遠比既有的ECC更好。基本上,就IBM的定義,ChipKill僅為一個抽象的觀念,並沒有專屬的實作方式。

目前最常使用的方法,稱為Bit Scattering,其觀念相當的簡單:既然目前常用的ECC演算法無法對超過1位元的錯誤進行糾正,那麼我們為何不索性「分而治之」,讓超過1位元的錯誤不會出現?假設今天有4條記憶體模組,而記憶體模組上的顆粒資料匯流排寬度為4位元,我們就可以將存放ECC偵錯碼的額外顆粒上那4條資料線各自分開,和另外3條模組的資料線組成4位元寬度,這樣就可以避免超過1位元的錯誤發生。目前不少PC平臺的高階系統晶片組,如ServerWorks和英特爾的部分產品,就已經支援ChipKill,也讓x86伺服器擁有更好的資料可靠性。

而IBM在X3架構中,更進一步的導入了Memory ProteXion技術。簡而言之,一條64位元的記憶體模組採用額外的8位元進行ECC偵錯,IBM可以僅用6位元實作ECC,騰出多餘的2位元作為變相的「備用4位元記憶體模組」,其原理就和熱備援硬碟相同。如果偵測到一顆記憶體顆粒已經損壞,就可以透過這2位元,將損壞顆粒的資料轉移到正常的顆粒上。這樣一來,毋須採用昂貴的特殊記憶體模組,即可達成IBM對ChipKill的嚴謹定義:平時可修正多達4位元的錯誤,而當一個記憶體顆粒發生損壞時,亦可承受1位元的錯誤。

因為在過去的EXA架構中,如果需要ChipKill,就需要另外採購昂貴的IBM專屬規格ChipKill記憶體模組,X3直接整合該功能,就可大幅降低購買成本。文⊙劉人豪

熱門新聞

Advertisement