在最近的一個有關(guān)糾錯碼(ECC:error correction code )內(nèi)存的談?wù)撝校?a class="innerlink" href="http://ihrv.cn/tags/Linux" target="_blank">Linux的創(chuàng)建者Linus Torvalds公開批評英特爾沒有將ECC RAM主流化到消費平臺上,同時贊揚AMD在Ryzen平臺上支持它。
他強調(diào),ECC絕對重要,但英特爾正在倚仗其極其糟糕的市場細(xì)分來殺死整個ECC行業(yè)。
他進(jìn)一步表示,現(xiàn)在走出去尋找ECC DIMM,卻很難找到,最近由于AMD,可能情況有所好轉(zhuǎn),但這正式他所關(guān)注的。在他看來,英特爾一直對整個行業(yè)和用戶不利,因為他認(rèn)為他們使用ECC的政策是錯誤的和誤導(dǎo)的……
Linus Torvalds在論壇中說道,如果您不相信我,那么只要看看多代的rowhammer,每次Intel和內(nèi)存制造商都會為下次的修復(fù)方法感到困惑。
Torvald認(rèn)為英特爾應(yīng)該為消費者領(lǐng)域缺乏廣泛的ECC采用負(fù)責(zé)。Torvalds說,這是由于英特爾完全鎖定了其消費類芯片組和處理器對ECC的支持,并聲稱僅此一項就無濟(jì)于事了內(nèi)存制造商為消費者創(chuàng)建臺式ECC內(nèi)存的任何動力。
Linus還譴責(zé)可以通過ECC內(nèi)存輕松解決的Rowhammer問題。DRAM存儲單元可能會將自己的電荷泄漏到其他存儲單元中。通常,這只是可能導(dǎo)致內(nèi)存錯誤的系統(tǒng)RAM中的缺陷,但Rowhammer攻擊將這種趨勢用作獲取提升的系統(tǒng)權(quán)限的機(jī)制。
Torvalds還說,為操作系統(tǒng)內(nèi)核開發(fā)代碼時,標(biāo)準(zhǔn)內(nèi)存是一場噩夢。Linus概述了嘗試查找無法解釋的內(nèi)核錯誤發(fā)生的地方的麻煩,并聲稱這些錯誤通常可能是硬件問題而不是代碼問題的結(jié)果,而所有這些都可以通過ECC解決。
Torvalds還稱贊AMD非官方支持ECC。即使是非官方的支持,Linus仍然很高興AMD甚至在主流的消費者Ryzen平臺上擴(kuò)展了該選項,使消費者可以選擇使用ECC而不必為服務(wù)器級硬件支付大量費用?!胺枪俜街С帧笔欠袷窃黾硬捎肊CC的最佳策略,尚有待商榷通常無法正常工作),但Torvalds顯然認(rèn)為這是朝正確方向邁出的一步。
Torvalds認(rèn)為ECC有許多優(yōu)點,他希望ECC內(nèi)存至少可以成為所有DIY PC和預(yù)制件的選擇,尤其是對于那些重視系統(tǒng)穩(wěn)定性的專業(yè)人員。內(nèi)存對于計算機(jī)的穩(wěn)定性至關(guān)重要,因為即使是最少量的錯誤也可能導(dǎo)致崩潰或數(shù)據(jù)丟失。不幸的是,即使標(biāo)準(zhǔn)的非ECC內(nèi)存的風(fēng)險通常非常低,它也總是有出錯的風(fēng)險,并且永遠(yuǎn)不會100%穩(wěn)定。希望我們會看到推動ECC RAM成為消費者領(lǐng)域中更可行的選擇的動力。
什么是ECC?
ECC 是一種指令糾錯技術(shù),能夠檢測并糾正常見的各種內(nèi)存數(shù)據(jù)損壞情況,即Error Checking and Correcting。
內(nèi)存錯誤是電腦內(nèi)部的電磁干擾造成的。這種干擾會導(dǎo)致 DRAM(動態(tài)隨機(jī)存取內(nèi)存)的單位自發(fā)地變成相反的狀態(tài)。電磁干擾以背景輻射的形式存在,海拔越高,干擾越大。宇宙飛船尤其容易有很高的錯誤率。
單位錯誤可能是隱性的,也就是說,它們不會對數(shù)據(jù)造成嚴(yán)重影響;但是,內(nèi)存單元是相互關(guān)聯(lián)的,因此單位變化可能會影響整個系統(tǒng),從而導(dǎo)致系統(tǒng)出錯,尤其是在需要嚴(yán)密運行的系統(tǒng)中。
ECC 內(nèi)存包含附加內(nèi)存位和內(nèi)存控制器,這些控制器用于控制模塊上附加芯片中的附加位。在將數(shù)據(jù)寫入到內(nèi)存時,ECC 內(nèi)存使用附加位來存儲加密代碼,同時存儲糾錯碼。讀取數(shù)據(jù)時,會將存儲的糾錯碼與讀取數(shù)據(jù)時生成的糾錯碼進(jìn)行比較。如果讀取的代碼與存儲的代碼不匹配,會用奇偶校驗位對前者進(jìn)行解密,以確定哪個位出錯,然后立即糾正該位。癥狀表是一種可以識別并糾正位錯誤的數(shù)學(xué)方法。
在數(shù)據(jù)處理過程中,ECC 內(nèi)存會使用特殊算法不斷掃描代碼,以檢測并糾正單位內(nèi)存錯誤。
在金融等行業(yè)以及科學(xué)界,ECC 內(nèi)存對于維持?jǐn)?shù)據(jù)完整性至關(guān)重要。大多數(shù)服務(wù)器內(nèi)存也是 ECC 內(nèi)存。ECC 內(nèi)存進(jìn)一步減少了數(shù)據(jù)崩潰情況,這對于多用戶服務(wù)器應(yīng)用程序非常重要。
與非 ECC 內(nèi)存相比,ECC 內(nèi)存通常更昂貴,速度可能稍慢。其他系統(tǒng)組件(例如,CPU 和主板)也必須支持 ECC 內(nèi)存。如果您的系統(tǒng)要求數(shù)據(jù)完整性和較高可用性,Crucial 英睿達(dá) ECC 內(nèi)存或許是個不錯的選擇。