0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ECC內(nèi)存為什么比普通內(nèi)存更穩(wěn)定?

kae1_cdebyte ? 來源:億佰特物聯(lián)網(wǎng)應(yīng)用專家 ? 2023-03-08 13:53 ? 次閱讀

為什么需要ECC內(nèi)存?

因為硬盤的速度遠遠比不上CPU的速度,所以電腦在程序運行時CPU都會先把要執(zhí)行的代碼和各種數(shù)據(jù)從硬盤讀取到內(nèi)存(單片機這種小CPU除外),之后和內(nèi)存交互數(shù)據(jù),所以內(nèi)存的穩(wěn)定性很大程度上決定了電腦的穩(wěn)定性。

但是在電腦的運行環(huán)境中,存在著各式各樣的干擾,包括EMI電磁干擾、電源紋波干擾等,這些干擾會導(dǎo)致內(nèi)存在和CPU交互數(shù)據(jù)時發(fā)生比特翻轉(zhuǎn)(某個0變成1),如果比特翻轉(zhuǎn)發(fā)生在某些不重要的位置上,比如某張圖片或者某個視頻流里面,使用者很有可能會感受不到。

但是一旦發(fā)生在某個代碼里面,輕則導(dǎo)致軟件報錯或者閃退,重則藍屏死機或hardfault,對于普通PC來說還算能接受,畢竟概率很小,但是對于服務(wù)器來講,一次宕機可能會造成災(zāi)難性的損失,所以服務(wù)器往往會使用穩(wěn)定性更高的ECC內(nèi)存。

漢明碼原理

為什么ECC內(nèi)存能糾錯呢?就是因為使用了漢明碼編碼。更準(zhǔn)確來說,目前絕大多數(shù)ECC內(nèi)存都是使用的漢明碼來發(fā)現(xiàn)并糾錯的。漢明碼在一組數(shù)據(jù)中最多只能糾錯1個比特或者最多發(fā)現(xiàn)2個比特的錯誤,超過2個比特的錯誤就有概率通過漢明碼校驗,這是前提,只有在這個基礎(chǔ)上我們才能推出后面的結(jié)論。

漢明碼原理總結(jié)來說就是奇偶校驗+交集排除,奇偶校驗負責(zé)檢測錯誤,交集排除負責(zé)定位錯誤的位置。

奇偶校驗:根據(jù)被傳輸?shù)囊唤M二進制代碼的數(shù)位中“1”的個數(shù)是奇數(shù)或偶數(shù)來進行校驗。以偶校驗為例,在每組數(shù)據(jù)中增加一個奇偶校驗位,若原始數(shù)據(jù)1的個數(shù)為奇數(shù),那奇偶校驗位就補1,若原始數(shù)據(jù)1的個數(shù)本身就是偶數(shù)那奇偶校驗位就不用補1,用0代替。奇偶校驗有個巧妙的地方,就是奇偶校驗位本身也能被校驗,這也是奇偶校驗?zāi)芎徒患懦浜鲜褂玫囊粋€必要前提。

交集排除:簡單來說就是元素A若同時在集合B和集合C中,如果A、B、C都存在的話,那A一定在B∩C中。下面以一個4*4的數(shù)據(jù)舉例說明。

bd8ebd16-baa4-11ed-bfe3-dac502259ad0.png

1.為了使用交集排除,先把4*4的數(shù)據(jù)分成下圖4個區(qū):

bd9d1172-baa4-11ed-bfe3-dac502259ad0.png

2.在1區(qū)使用偶校驗得出沒有錯誤:

bdaf6c50-baa4-11ed-bfe3-dac502259ad0.png

3.在2區(qū)使用偶校驗得出有錯誤:

bdbe3a50-baa4-11ed-bfe3-dac502259ad0.png

4.在3區(qū)使用偶校驗得出有錯誤:

bdca2b4e-baa4-11ed-bfe3-dac502259ad0.png

5.在4區(qū)使用偶校驗得出沒有錯誤:

bddf92cc-baa4-11ed-bfe3-dac502259ad0.png

6.綜合2、3、4、5的結(jié)論就可以得出,錯誤數(shù)據(jù)同時在2區(qū)和3區(qū),并且1區(qū)和4區(qū)沒有錯誤,所以錯誤數(shù)據(jù)一定在如下(2,3)的位置,所以把(2,3)的1改為0就能得到正確的一組數(shù)據(jù)。

bdedaefc-baa4-11ed-bfe3-dac502259ad0.png

總結(jié)

以上就是漢明碼最基礎(chǔ)的原理,但這并不是漢明碼被廣泛運用在內(nèi)存糾錯的全部原因,因為單純比糾錯能力,它遠遠沒有LDPC低密度校驗碼強,能被廣泛運用的原因是漢明碼能用極少的硬件電路實現(xiàn)(4*4的數(shù)據(jù)只需要5級異或門),而且有效數(shù)據(jù)比很高(一組數(shù)據(jù)只需要在2的整數(shù)次方的比特位置插入一個比特的校驗位,有效數(shù)據(jù)比成指數(shù)級提高,當(dāng)然一組數(shù)據(jù)越長超過2比特錯誤的概率也就越大),具體原理后面再分析。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6037

    文章

    44558

    瀏覽量

    635349
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    10863

    瀏覽量

    211778
  • 硬盤
    +關(guān)注

    關(guān)注

    3

    文章

    1310

    瀏覽量

    57314
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3025

    瀏覽量

    74054
  • ECC
    ECC
    +關(guān)注

    關(guān)注

    0

    文章

    97

    瀏覽量

    20569

原文標(biāo)題:干貨|ECC內(nèi)存為什么比普通內(nèi)存更穩(wěn)定?

文章出處:【微信號:cdebyte,微信公眾號:億佰特物聯(lián)網(wǎng)應(yīng)用專家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    怎么為RAM和閃存區(qū)啟用ECC來檢查內(nèi)存損壞

    大家好,我正在使用SPC560B54L5板和SPC studio V5.2.1。 我想為RAM和閃存區(qū)啟用ECC來檢查內(nèi)存損壞。我在ECR寄存器中啟用了1位和2位ECC的相應(yīng)位,但是我無法啟用相應(yīng)
    發(fā)表于 05-24 13:59

    服務(wù)器內(nèi)存ECC和RECC之間能否兼容?

    內(nèi)存ECC到底是什么意思?服務(wù)器內(nèi)存ECC和RECC之間能否兼容?服務(wù)器內(nèi)存ECC和RECC之間
    發(fā)表于 06-18 09:34

    SIMM ECC 72線內(nèi)存條引腳定義

    SIMM ECC 72線內(nèi)存條引腳定義 SIMM 是 Single Inline Memory Module (單列直插) 的縮寫,ECC 是 Error Correcting Code (糾錯碼) 的縮寫,外觀為: &n
    發(fā)表于 11-21 12:48 ?1237次閱讀
    SIMM <b class='flag-5'>ECC</b> 72線<b class='flag-5'>內(nèi)存</b>條引腳定義

    什么是內(nèi)存ECC校驗

    什么是內(nèi)存ECC校驗   
    發(fā)表于 12-25 14:28 ?2107次閱讀

    什么是ECC內(nèi)存

    什么是ECC內(nèi)存 ECC是“Error Checking and Correcting”的簡寫,中文名稱是“錯誤檢查和糾正”。ECC是一種能夠?qū)崿F(xiàn)“錯誤檢查和糾正”的技術(shù),
    發(fā)表于 01-12 15:42 ?886次閱讀

    如何提高內(nèi)存穩(wěn)定

    如何提高內(nèi)存穩(wěn)定性    問:在升級內(nèi)存、對內(nèi)存做了優(yōu)化設(shè)置之后,我感覺系統(tǒng)有些不穩(wěn)定,主要表現(xiàn)為長時間下載偶爾會死
    發(fā)表于 02-25 11:35 ?1622次閱讀

    有必要買ECC內(nèi)存

    ECC內(nèi)存其實用于大規(guī)模計算的云服務(wù)和虛擬機應(yīng)用越來越廣泛,也就意味著服務(wù)器不僅僅只對大公司,對普通的消費者來說也是很重要的。
    的頭像 發(fā)表于 01-09 16:10 ?1.5w次閱讀

    科普一些服務(wù)器內(nèi)存ECC和RECC的相關(guān)小知識

    有不少用戶不清楚如何選購服務(wù)器內(nèi)存,與臺式機電腦普通內(nèi)存型號相比較起來,服務(wù)器內(nèi)存是帶有ECC或者RECC標(biāo)注的,那么
    發(fā)表于 10-14 10:34 ?1.1w次閱讀

    低電壓內(nèi)存普通內(nèi)存的區(qū)別有哪些

    在選購筆記本的時候,有的型號會標(biāo)注為低電壓的內(nèi)存條或者是后綴帶有L,那么低電壓內(nèi)存普通內(nèi)存的區(qū)別有哪些,下面就為大家?guī)硐嚓P(guān)的介紹。
    發(fā)表于 05-25 10:14 ?4400次閱讀

    企業(yè)級內(nèi)存條的Memory ECC

    一個Channel由一個或者多個Rank組成,其寬度由控制器決定。當(dāng)前主流的個人電腦和服務(wù)器中,一個Channel的寬度為64bit,可根據(jù)內(nèi)存控制器是否支持ECC而擴展額外的8bit。也就是說如果
    的頭像 發(fā)表于 08-21 16:36 ?6207次閱讀
    企業(yè)級<b class='flag-5'>內(nèi)存</b>條的Memory <b class='flag-5'>ECC</b>

    Linux 系統(tǒng)抨擊英特爾目前禁止消費級平臺使用 ECC 自動糾錯內(nèi)存的政策

    1月4日消息 據(jù)外媒 techradar 消息,Linux 系統(tǒng)的發(fā)明人 Linus Torvalds 在參加一場活動時發(fā)表講話,抨擊英特爾目前禁止消費級平臺使用 ECC 自動糾錯內(nèi)存的政策
    的頭像 發(fā)表于 01-05 11:06 ?2631次閱讀

    nonecc內(nèi)存ecc內(nèi)存的區(qū)別

     ecc內(nèi)存就是能夠?qū)崿F(xiàn)錯誤檢查和糾正技術(shù)的內(nèi)存條,多應(yīng)用于服務(wù)器和圖形工作站上。
    的頭像 發(fā)表于 09-19 16:18 ?1.4w次閱讀

    干貨|ECC內(nèi)存為什么普通內(nèi)存更穩(wěn)定?

    為什么需要ECC內(nèi)存?因為硬盤的速度遠遠比不上CPU的速度,所以電腦在程序運行時CPU都會先把要執(zhí)行的代碼和各種數(shù)據(jù)從硬盤讀取到內(nèi)存(單片機這種小CPU除外),之后和內(nèi)存交互數(shù)據(jù),所以
    的頭像 發(fā)表于 03-06 10:59 ?1830次閱讀
    干貨|<b class='flag-5'>ECC</b><b class='flag-5'>內(nèi)存為</b>什么<b class='flag-5'>比</b><b class='flag-5'>普通</b><b class='flag-5'>內(nèi)存</b><b class='flag-5'>更穩(wěn)定</b>?

    RK358支持全鏈路ECC的DDR和普通內(nèi)存有何區(qū)別?

    ECC內(nèi)存(ErrorCorrection Code Memory)和普通內(nèi)存是計算機存儲技術(shù)中常見的兩種類型的內(nèi)存。它們在設(shè)計和功能上有一
    的頭像 發(fā)表于 09-22 16:57 ?1764次閱讀
    RK358支持全鏈路<b class='flag-5'>ECC</b>的DDR和<b class='flag-5'>普通</b><b class='flag-5'>內(nèi)存</b>有何區(qū)別?

    服務(wù)器內(nèi)存條和普通內(nèi)存條的區(qū)別

    內(nèi)存條一般采用ECC DIMM封裝形式。ECC DIMM具有額外的錯誤檢測和糾正功能,可以提供更高的數(shù)據(jù)可靠性,減少硬件故障的風(fēng)險。 此外,服務(wù)器內(nèi)存條通常具有更多的插槽和更大的容量支
    的頭像 發(fā)表于 02-19 10:19 ?8843次閱讀