精華區beta hardware 關於我們 聯絡資訊
文⊙劉人豪 雖然長期備受忽略,但已成為日益迫切的威脅 去年九月,美國維吉尼亞理工大學(Virginia Tech)與Apple、Cisco、L ieber、Mellanox等廠商合作,採用1100臺PowerMac G5構建Terascale Su percluster超級電腦,理論運算效能排名在Top 500中排名第三,僅次於N EC的Earth Simulator及Los Alamos國家實驗室的ASCI Q Alpha Cluster 。 不過,這臺超級電腦卻引起了相當大的爭議,因為 PowerMac G5並未提供 硬體 ECC等記憶體偵錯機制。維吉尼亞理工大學宣稱說,他們所採用的演 算法可以提供軟體容錯,但據信這對系統效能會有相當程度的負面影響。 日前國外媒體報導,維吉尼亞理工大學將採用Apple新推出的Xserve G5取 代既有的PowerMac G5,一般外界相信,記憶體ECC功能是決定更換的主要 因素。 另外一件值得注意的新聞,則是去年一位美國普林斯頓( Princeton)大 學的研究生,發現透過燈光、以能量改變記憶體資料、進而破解Java及.N ET虛擬機器的方法。他表示,當處理器和記憶體的速度越來越快,變更位 元的所需能量越小,所以這種方法也會越來越有用。當初設計虛擬機器的 人,卻都沒有想到這種破解方法。 那麼,這兩則新聞的背後,究竟隱藏了什麼被忽略的事實?答案就是:主 記憶體內的資料,並不是絕對的安全。事實上,出錯的機率是很高的,而 且高到難以置信的程度。這個問題,絕對值得企業重視。 水漲船高的記憶體容量所造成的問題 近年來,有一個潛在的難題一直困擾電子設備製造商,那就是所謂的「軟 錯誤」(Soft Error)。有別於硬體損壞的「硬錯誤」(Hard Error), 軟錯誤造成的主因,主要是構成地球低強度背景輻射的帶電粒子所引起, 這些帶電粒子有可能來自宇宙射線,也有可能來自大多數材料中的微量放 射性元素,這些都可能會干擾利用粒子工作的晶片以及電子設備,尤其是 半導體元件。如果帶電粒子撞擊儲存單元導致位元翻轉,就會造成資料錯 誤。 另外,由於半導體技術的持續發展,記憶體晶片的密度越來越高,而且為 了追求更高的效能,也有更高的運作時脈。換言之,記憶體發生軟錯誤的 機率隨著技術的發展而持續成長。根據 IBM過去的實驗結果顯示,在海平 面高度,記憶體因為宇宙射線而發生軟錯誤的錯誤率(SER,Soft Error Rate)約在5000FIT(Failures In Time,10億小時中發生錯誤的次數) ,但這是數年前的數據,現在的記憶體密度更高,問題可能更大。當然, 我們可能將電腦藏在50呎以下的地底,就可以解決這樣的問題,但是這在 現實中是幾乎不可能達成的。 現在,我們就可以計算維吉尼亞理工大學Terascale Supercluster超級電 腦發生軟錯誤的機率。根據 Infineon的研究數據,目前256Mbit記憶體顆 粒的SER約為500FIT,在最差狀況下,約為900FIT。每臺PowerMac G5都安 裝4GB主記憶體,皆為512Mbit顆粒,代表每臺電腦有64顆記憶體顆粒,11 00臺電腦就是70400顆記憶體。我們將512Mbit顆粒的SER估計為1000FIT, 就可以推估出每小時會發生0.0704次的軟錯誤,相當於每14.2小時就發生 一次,這不可謂不驚人。對超級電腦如此,那對終年不關機、持續運作的 伺服器而言,也是一體適用。 現有 ECC的不足 那麼,會有人這樣問:早期系統就開始支援Parity Check,而現在不少系 統都有支援記憶體 ECC機制,那不就沒問題了嗎?很遺憾,答案是否定的 。除了記憶體密度越來越高,記憶體的資料匯流排寬度也越來越寬,但是 既有的ECC演算法多半是Distance 4的Extended Hamming Code,可以修正 1位元錯誤、偵測2位元錯誤,如果發生多位元(Multibit)的錯誤,ECC 就力有未逮。 IBM認為目前採用ECC,效果還比十年前的Parity Check還糟。當然,也有 不少學者和廠商研究出改良的ECC演算法(如Compaq所提出的Bit Steerin g),不過,這些方法多半都遇到不易實作、成本過高的問題,也會對記 憶體的效能造成不利的影響。近年來,由於PC伺服器的逐漸普及,更讓問 題日趨嚴重,因為PC伺服器都以低成本作為訴求,很難導入昔日大型主機 (Main Frame)及超級電腦所使用的昂貴手段,加上無遠弗屆的網路成為 主要的運算環境,企業所使用的網路伺服器幾乎永不停機,更讓問題越趨 複雜。 改良的解決方案:導入 RAID的觀念 我們還有什麼解決方案?其實,既然硬碟陣列可以透過RAID來達成資料安 全性,那麼為何不把RAID的觀念導入於主記憶體系統的設計之中?這就產 生了RAID-M(Redundant Array of Inexpensive DRAM for Memory)的觀 念。 IBM近年來在PC伺服器所推廣的ChipKill,就是這樣的產物。基本上,就 創造者 IBM的定義,ChipKill僅為一個抽象的觀念,並沒有專屬的實作方 式。目前最常使用的方法,稱為Bit Scattering,其觀念相當的簡單:既 然目前常用的ECC演算法無法對超過1位元的錯誤進行糾正,那麼我們為何 不索性「分而治之」,讓超過1位元的錯誤不會出現?假設今天有4條記憶 體模組,而記憶體模組上的顆粒資料匯流排寬度為 4位元,我們就可以將 存放 ECC偵錯碼的額外顆粒上那4條資料線各自分開,和另外3條模組的資 料線組成4位元寬度,這樣就可以避免超過1位元的錯誤發生。目前不少PC 平臺的高階系統晶片組,如 ServerWorks和英特爾的部分產品,就已經支 援ChipKill,也讓PC伺服器有著更好的記憶體安全性。不過,由於目前支 援ChipKill的記憶體控制器成本依然相當高昂,要普及至工作站等級的系 統晶片組仍然需要一段時間。 更徹底的方法是:直接把記憶體系統實作成 RAID的型式。以Alpha 21364 (EV-7)為例,除了既有的4條記憶體通道外,第5條通道就做為Memory R AID之用。另外,部分伺服器廠商在中高階IA-32伺服器實作記憶體鏡射備 分機制(Memory Mirroring),如果記憶體發生損毀或錯誤就可直接切換 ,維持伺服器的正常運作,提供更好的資料安全性。當然,這種方式的成 本更高,雖然目前已經有高階PC系統晶片組支援(如ServerWorks的GC-HE ),但短期內很難普及至一般的 PC伺服器。 記憶體安全性將日益重要 從IBM發表ChipKill技術以來,記憶體安全性的議題已經逐漸被伺服器廠 商所注意,但是卻一直沒有引起市場足夠的重視。對於服務永不停頓的企 業網路伺服器而言,記憶體的資料安全性其實非常的重要,尤其對低成本 的PC伺服器而言,更是如此。在未來,相信除了ChipKill以外,會有以雨 後春筍之勢而誕生的新技術,替企業伺服器提供更高的可靠性及穩定性。