什么是 ECC 內存?ECC 存儲器或糾錯碼存儲器是一種RAM(隨機存取存儲器),它利用糾錯碼來檢測和糾正RAM 上的潛在數據損壞。與只能檢測常見內存錯誤的非ECC RAM 相比,ECC RAM可以在內存錯誤導致數據損壞或事件系統崩潰之前立即檢測并修復它們。這就是為什么ECC 內存被用于眾多企業應用程序,尤其是任務關鍵型應用程序的原因。 是什么導致 RAM 中的內存數據損壞? 像 RAM 這樣的易失性閃存中的最小部分稱為單元。存儲單元是一種電子電路,它存儲電荷以產生表示1 或0 的一位二進制信息。多個存儲單元的值被轉換為二進制序列,并在計算機上轉換為數據。每個由多位1 和0 組成的序列都有其自己的唯一值,該值將轉換為數據。例如,二進制序列1001011 代表數字75。 當這些存儲單元中的一個不準確時,就會出現數據損壞問題,在 8 位數據的一個字節內突然將它們的狀態從0 更改為1 或反之亦然。這種存儲單元中的位錯誤表示被稱為單位錯誤。單個位錯誤導致的內存翻轉可能對計算機無害,但也可能導致系統運行錯誤代碼甚至系統關閉。下面是一個簡單的單比特錯誤示例,以及它們是如何微妙或具有破壞性的。 假設內存的正確信息應該是數字 75,二進制序列為1001011。 從 1001011 (75) 到1001010 的單個內存翻轉代表數字74,它仍然非常接近75,并且對某些應用程序非常無害。 但是,從 1001011 (75) 到1101011 的單次內存翻轉代表數字107,與75 相差甚遠,可能對某些應用程序有害。 什么會觸發單位錯誤? 有兩種類型的單位內存錯誤,硬錯誤和軟錯誤。不幸的是,其中一些觸發器非常常見,尤其是對于工業計算應用程序。這就是為什么在使用 8 GB 內存的一小時內,RAM 很容易遇到大約五個單位錯誤。 硬單比特錯誤(由物理因素引起): 電壓應力 極端溫度 沖擊和振動影響 制造缺陷 軟單比特錯誤(難以檢測的因素): 不正確的讀/寫過程 電磁干擾 (EMI) 電干擾 磁干擾 阿爾法粒子 宇宙射線 糾錯碼 (ECC) 如何修復位翻轉? 糾錯碼存儲器可以檢測損壞的數據并使用糾錯碼 (ECC) 恢復數據,實時修復錯誤。ECC 使用高級形式的奇偶校驗在數據上創建一段加密代碼,其中它使用非二進制循環糾錯碼為每64 位數據添加一個7 位奇偶校驗碼。與ECC 的7 位奇偶校驗碼相比,基本奇偶校驗通常只對每8 位數據使用一個奇偶校驗位。為二進制字符串的每64 位添加7 位允許ECC RAM 不僅可以檢測而且可以恢復正確的數據。 高級奇偶校驗執行 ECC,例如單錯誤碼和雙錯誤檢測(SECDED) 漢明碼,這是最常見的糾錯碼之一。后一種更快的ECC 使用比Hamming 糾錯系統更快的三重模塊化冗余(TMR) — 具有來自加密的額外數據需要ECC RAM 在RAM 卡上包含一個額外的芯片來存儲和計算所有這些加密代碼記憶。這就是ECC 內存有9 個內存芯片的原因,而非ECC 內存只有8 個內存芯片。 解密和加密過程從 ECC RAM 創建了可靠的計算,但與非ECC RAM 相比,速度也稍慢,減少速度約為1% -2%,與ECC RAM 的優勢相比,損失并不大優惠。 |