當前位置:編程學習大全網 - 編程語言 - ECC是什麽

ECC是什麽

ECC校驗是什麽:

ECC內存即糾錯內存,簡單的說,其具有發現錯誤,糾正錯誤的功能,壹般多應用在高檔臺式電腦/服務器及圖形工作站上,這將使整個電腦系統在工作時更趨於安全穩定。

內存是壹種電子器件,在其工作過程中難免會出現錯誤,而對於穩定性要求高的用戶來說,內存錯誤可能會引起致命性的問題。內存錯誤根據其原因還可分為硬錯誤和軟錯誤。硬件錯誤是由於硬件的損害或缺陷造成的,因此數據總是不正確,此類錯誤是無法糾正的;軟錯誤是隨機出現的,例如在內存附近突然出現電子幹擾等因素都可能造成內存軟錯誤的發生。

為了能檢測和糾正內存軟錯誤,首先出現的是內存“奇偶校驗”。內存中最小的單位是比特,也稱為“位”,位有只有兩種狀態分別以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位中存儲的數據相加,計算結果是否與校驗位相壹致。從而壹定程度上能檢測出內存錯誤,奇偶校驗只能檢測出錯誤而無法對其進行修正,同時雖然雙位同時發生錯誤的概率相當低,但奇偶校驗卻無法檢測出雙位錯誤。

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

使用ECC校驗的內存,會對系統的性能造成不小的影響,不過這種糾錯對服務器等應用而言是十分重要的,帶ECC校驗的內存價格比普通內存要昂貴許多。

  • 上一篇:人工智能技術有哪些
  • 下一篇:現在的興趣班越來越多,有必要給孩子多報幾樣培養能力嗎?
  • copyright 2024編程學習大全網