更正錯誤記憶體
![本頁使用了標題或全文手工轉換](http://upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
![]() | 此條目可能包含原創研究。 |
更正錯誤記憶體(英語:Error-Correcting Code memory,縮寫:ECC memory或ECC)指能夠實現錯誤檢查和糾正錯誤技術的主記憶體。
技術原理
[編輯]在ECC技術出現之前,主記憶體中應用最多的另外一種錯誤檢查技術,是奇偶校驗位技術。
在數位電路中,最小的資料單位是「位元(bit)」,也叫「位元」。「位元」也是主記憶體中的最小單位,它是通過「1」和「0」來表示資料高、低電頻訊號。在數字電路中8個連續的位元是一位元組,不帶「奇偶校驗」的主記憶體中的每個位元組只有8位元,若它的某一位儲存出了錯誤,就會使其中儲存的相應資料發生改變而導致應用程式發生錯誤。
而帶有「奇偶校驗」的主記憶體在每一位元組(8位元)外又額外增加了一位用來進行錯誤檢測。比如一個位元組中儲存了某一數值(1、0、1、0、1、0、1、1),把這每一位相加起來(1+0+1+0+1+0+1+1=5)。對於偶校驗,若其結果是奇數,校驗位就定義為1,反之則為0;對於奇校驗則相反。當CPU返回讀取儲存的資料時,它會再次相加前8位元中儲存的資料,計算結果是否與校驗位相一致。當CPU發現二者不同時就會試圖糾正這些錯誤。
但奇偶校驗位技術有個缺點,當主記憶體查到某個資料位有錯誤時,由於不一定能確定錯誤在哪一個位,也就不一定能修正錯誤。所以帶有奇偶校驗的主記憶體的主要功能僅僅是「發現錯誤」,並不能糾正錯誤。
此外,奇偶校驗技術是通過在原來資料位的基礎上增加一個資料位來檢查當前8位元資料的正確性,但隨著資料位的增加,用來檢驗的資料位也成倍增加,就是說當資料位為16位元時它需要增加2位用於檢查,當資料位為32位元時則需增加4位元,依此類推。特別是當資料量非常大時,資料出錯的機率也就越大,對於只能糾正簡單錯誤的奇偶檢驗的方法就顯得力不從心了。正是基於這樣一種情況,錯誤檢查和糾正(Error Checking and Correcting)應運而生了。
ECC與奇偶校驗不同的是,如果資料位是8位元,則需要增加5位來進行ECC錯誤檢查和糾正。資料位每增加一倍,ECC只增加一位核對位元。也就是說當資料位為16位元時ECC位為6位,32位元時ECC位為7位,資料位為64位元時ECC位為8位元,依此類推。在主記憶體中ECC能夠容許錯誤,並可以將錯誤自動更正,使系統得以正常的操作,不致因錯誤而中斷。
誤解
[編輯]部份人認為伺服器必須使用ECC主記憶體,認為ECC主記憶體效能較高,其實是一種謬誤。ECC主記憶體之所以廣泛應用於伺服器領域,並非其效能,而是因為ECC主記憶體的糾錯能力,使伺服器保持穩定。
ECC本身並不是一種主記憶體型號,也不是一種主記憶體專用技術,它是一種廣泛應用於各種領域的電腦中的糾錯技術。
備註
[編輯]截止到2020年8月9日,帶ECC校驗的主記憶體還得要電腦其他部件支援才能正常使用,例如主機板和CPU[1](並且可能要在BIOS中進行相應的設定),應用在大多數伺服器CPU和主機板上(一些非伺服器CPU和主機板也支援)。還有,在購買ECC主記憶體時,需注意是ECC UDIMM、ECC RDIMM、ECC LRDIMM、ECC 3DS RDIMM還是其他,因為你的電腦其他部件可能不支援某些種類。
參考文獻
[編輯]- ^ Server Memory: Types and Performance | Crucial.com. Crucial. [2020-08-09] (美國英語).
外部連結
[編輯]- SoftECC: A System for Software Memory Integrity Checking (頁面存檔備份,存於網際網路檔案館)
- A Tunable, Software-based DRAM Error Detection and Correction Library for HPC (頁面存檔備份,存於網際網路檔案館)
- Detection and Correction of Silent Data Corruption for Large-Scale High-Performance Computing (頁面存檔備份,存於網際網路檔案館)
- Single-Bit Errors: A Memory Module Supplier’s perspective on cause, impact and detection (頁面存檔備份,存於網際網路檔案館)
- Intel Xeon Processor E3 - 1200 Product Family Memory Configuration Guide
- Linus Torvalds On The Importance Of ECC RAM, Calls Out Intel's "Bad Policies" Over ECC (頁面存檔備份,存於網際網路檔案館)