ECC校驗

ECC校驗

ECC記憶體即糾錯記憶體,簡單的說,其具有發現錯誤,糾正錯誤的功能,一般多套用在高檔桌上型電腦/伺服器及圖形工作站上,這將使整個電腦系統在工作時更趨於安全穩定

基本介紹

  • 中文名:ECC校驗
  • 套用領域:高檔桌上型電腦/伺服器
  • 功能:使電腦系統趨於安全穩定
  • 又名:ECC記憶體即糾錯記憶體
什麼是ECC校驗,定義,技術原理,示例,其它相關資料,ECC記憶體誤區,備註,

什麼是ECC校驗

定義

ECC校驗是一種記憶體糾錯原理,它是比較先進的記憶體錯誤檢查和更正的手段。ECC記憶體即糾錯記憶體,簡單的說,其具有發現錯誤,糾正錯誤的功能,一般多套用在高檔桌上型電腦/伺服器及圖形工作站上,這將使整個電腦系統在工作時更趨於安全穩定。

技術原理

記憶體是一種電子器件,在其工作過程中難免會出現錯誤,而對於穩定性要求高的用戶來說,記憶體錯誤可能會引起致命性的問題。記憶體錯誤根據其原因還可分為硬錯誤和軟錯誤。硬體錯誤是由於硬體的損害或缺陷造成的,因此數據總是不正確,此類錯誤是無法糾正的;軟錯誤是隨機出現的,例如在記憶體附近突然出現電子干擾等因素都可能造成記憶體軟錯誤的發生。
為了能檢測和糾正記憶體軟錯誤,在ECC技術出現之前,首先出現的是記憶體“奇偶校驗(Parity)”。記憶體中最小的單位是比特,也稱為“位(bit)”,位有隻有兩種狀態分別以1和0來標示,每8個連續的比特叫做一個位元組(byte)。不帶奇偶校驗的記憶體每個位元組只有8位,如果其某一位存儲了錯誤的值,就會導致其存儲的相應數據發生變化,進而導致應用程式發生錯誤。而奇偶校驗就是在每一位元組(8位)之外又增加了一位作為錯誤檢測位。在某位元組中存儲數據之後,在其8個位上存儲的數據是固定的,因為位只能有兩種狀態1或0,假設存儲的數據用位標示為1、1、1、0、0、1、0、1,那么把每個位相加(1+1+1+0+0+1+0+1=5),結果是奇數。對於偶校驗,校驗位就定義為1,反之則為0;對於奇校驗,則相反。當CPU讀取存儲的數據時,它會再次把前8位中存儲的數據相加,計算結果是否與校驗位相一致。從而一定程度上能檢測出記憶體錯誤,奇偶校驗只能檢測出錯誤而無法對其進行修正,同時雖然雙位同時發生錯誤的機率相當低,奇偶校驗卻無法檢測出雙位錯誤。
通過上面的分析我們知道Parity記憶體是通過在原來數據位的基礎上增加一個數據位來檢查當前8位數據的正確性,但隨著數據位的增加Parity用來檢驗的數據位也成倍增加,就是說當數據位為16位時它需要增加2位用於檢查,當數據位為32位時則需增加4位,依此類推。特別是當數據量非常大時,數據出錯的幾率也就越大,對於只能糾正簡單錯誤的奇偶檢驗的方法就顯得力不從心了,正是基於這樣一種情況,一種新的記憶體技術應允而生了,這就是ECC(錯誤檢查和糾正),這種技術也是在原來的數據位上外加校驗位來實現的。不同的是兩者增加的方法不一樣,這也就導致了兩者的主要功能不太一樣。它與Parity不同的是如果數據位是8位,則需要增加5位來進行ECC錯誤檢查和糾正,數據位每增加一倍,ECC只增加一位檢驗位,也就是說當數據位為16位時ECC位為6位,32位時ECC位為7位,數據位為64位時ECC位為8位,依此類推,數據位每增加一倍,ECC位只增加一位。總之,在記憶體中ECC能夠容許錯誤,並可以將錯誤更正,使系統得以持續正常的操作,不致因錯誤而中斷,且ECC具有自動更正的能力,可以將Parity無法檢查出來的錯誤位查出並將錯誤修正。

示例

ECC(Error Checking and Correcting,錯誤檢查和糾正)記憶體,它同樣也是在數據位上額外的位存儲一個用數據加密的代碼。當數據被寫入記憶體,相應的ECC代碼與此同時也被保存下來。當重新讀回剛才存儲的數據時,保存下來的ECC代碼就會和讀數據時產生的ECC代碼做比較。如果兩個代碼不相同,他們則會被解碼,以確定數據中的哪一位是不正確的。然後這一錯誤位會被拋棄,記憶體控制器則會釋放出正確的數據。被糾正的數據很少會被放回記憶體。假如相同的錯誤數據再次被讀出,則糾正過程再次被執行。重寫數據會增加處理過程的開銷,這樣則會導致系統性能的明顯降低。如果是隨機事件而非記憶體的缺點產生的錯誤,則這一記憶體地址的錯誤數據會被再次寫入的其他數據所取代。

其它相關資料

ECC記憶體誤區

一談到伺服器記憶體,大家都一致強調要買ECC記憶體,認為ECC記憶體速度快,其實是一種錯誤地認識,ECC記憶體成功之處並不是因為它速度快(速度方面根本不關它事只與記憶體類型有關),而是因為它有特殊的糾錯能力,使伺服器保持穩定。ECC本身並不是一種記憶體型號,也不是一種記憶體專用技術,它是一種廣泛套用於各種領域的計算機指令中,是一種指令糾錯技術。它的英文全稱是“Error Checking and Correcting”,對應的中文名稱就叫做“錯誤檢查和糾正”,從這個名稱我們就可以看出它的主要功能就是“發現並糾正錯誤”,它比奇偶校正技術更先進的方面主要在於它不僅能發現錯誤,而且能糾正這些錯誤,這些錯誤糾正之後計算機才能正確執行下面的任務,確保伺服器的正常運行。之所以說它並不是一種記憶體型號,那是因為並不是一種影響記憶體結構和存儲速度的技術,它可以套用到不同的記憶體類型之中,就象我們在前面講到的“奇偶校正”記憶體,它也不是一種記憶體,最開始套用這種技術的是EDO記憶體,SD仍有套用,而ECC記憶體主要是從SD記憶體開始得到廣泛套用,而新的DDRRDRAM也有相應的套用,主流的ECC記憶體其實是一種SD記憶體。

備註

1.帶ECC校驗的記憶體還得要主機板支持,並在BIOS中進行相應的設定,套用在大多數伺服器主機板。  2.現在廠商推出的入門級低端伺服器使用的記憶體也是有ECC功能。
3. 使用ECC校驗的記憶體,會對系統的性能會造成微弱的降低,但是這種糾錯對伺服器等套用而言是十分重要的,帶ECC校驗的記憶體價格比普通記憶體要昂貴許多。

相關詞條

熱門詞條

聯絡我們