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