代碼糾錯

代碼糾錯

ECC(“代碼糾錯[或糾正]”或“錯誤檢驗和糾正”)允許被讀取和傳送的數據進行錯誤檢驗,併當需要時進行不工作糾正。

目錄


ECC(“代碼糾錯[或糾正]”(error correction [or correcting] code)或“錯誤檢驗和糾正”(error checking and correcting))允許被讀取和傳送的數據進行錯誤檢驗,併當需要時進行不工作糾正。這不同於奇偶檢驗,因為錯誤不僅能被發現而且可以得到改正。當數據傳輸速度(因此出錯率)增加的情況下,ECC是逐步被設計進行數據存儲和輸送硬體的。
以下是如何進行數據存儲的工作:
如果代碼符合,則說明數據沒有錯誤並且得到傳送。
如果代碼不匹配,丟失或者錯誤的比特將被通過代碼比較確定幾個比特特或者幾個比特將被需要提供或者改正。
不嘗試改正依然在內存中的數據。最終,它將被新數據覆蓋,並認為錯誤是短暫的,錯誤的比特將會“離開”。
1.
當一單位數據(或“單詞”)被儲存在RAM或者外部存儲器里時,描述單詞中位次序的代碼被計算並且跟數據的單位一起儲於對於64位的話來說,額外的7位需要儲存這條代碼。
2.
什麼時候數據的單位需要讀取,儲存和將要讀取的詞語的一條代碼使用原先的演演算法再次被計算。當詞語被儲存時,將新近合成碼與產生的代碼相比較。
3.
如果代碼符合,則說明數據沒有錯誤並且得到傳送。
4.
如果代碼不匹配,丟失或者錯誤的比特將被通過代碼比較確認幾個比特比幾個比特者幾個比特將被需要提供或者改正。
5.
不嘗試改正依然在內存中的數據。最終,它將被新數據覆蓋,並認為錯誤是短暫的,錯誤的比特將會“離開”。
6.
在系統已經關閉之後倉庫里相同地方重複出現的任何錯誤,再次顯示某一永久硬體錯誤和消息被存入日誌或發給系統管理員,表明經常出現錯誤的位置。
在64位的單詞水平上,奇偶檢驗和ECC需要相同數目的額外比特。通常,ECC增加任何計算的可靠性或者電信系統(或者一個系統的部分)而沒有增加更多的花費。里德-索洛蒙代碼常被執行;它可發現並恢復“比特以”比特以特及錯誤的比特。