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

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

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

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

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

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

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

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

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

漢明碼原理

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

漢明碼原理總結(jié)來(lái)說(shuō)就是奇偶校驗(yàn)+交集排除,奇偶校驗(yàn)負(fù)責(zé)檢測(cè)錯(cuò)誤,交集排除負(fù)責(zé)定位錯(cuò)誤的位置。

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

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

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

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

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

2.在1區(qū)使用偶校驗(yàn)得出沒(méi)有錯(cuò)誤:

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

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

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

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

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

5.在4區(qū)使用偶校驗(yàn)得出沒(méi)有錯(cuò)誤:

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

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

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

總結(jié)

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

審核編輯:湯梓紅

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

    關(guān)注

    6030

    文章

    44489

    瀏覽量

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

    關(guān)注

    68

    文章

    10805

    瀏覽量

    210847
  • 硬盤(pán)
    +關(guān)注

    關(guān)注

    3

    文章

    1283

    瀏覽量

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

    關(guān)注

    8

    文章

    2976

    瀏覽量

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

    關(guān)注

    0

    文章

    96

    瀏覽量

    20519

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    服務(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 (單列直插) 的縮寫(xiě),ECC 是 Error Correcting Code (糾錯(cuò)碼) 的縮寫(xiě),外觀為: &n
    發(fā)表于 11-21 12:48 ?1199次閱讀
    SIMM <b class='flag-5'>ECC</b> 72線<b class='flag-5'>內(nèi)存</b>條引腳定義

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

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

    什么是ECC內(nèi)存

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

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

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

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

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

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

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

    什么是ECC內(nèi)存 ECC內(nèi)存的工作原理

    ECC的英文全稱(chēng)是“ Error Checking and Correcting”(錯(cuò)誤檢查和糾正),從這個(gè)名稱(chēng)就可以看出它的主要功能就是“發(fā)現(xiàn)并糾正錯(cuò)誤”。
    發(fā)表于 03-22 13:39 ?5.1w次閱讀

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

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

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

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

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

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

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

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

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

    為什么需要ECC內(nèi)存?因?yàn)橛脖P(pán)的速度遠(yuǎn)遠(yuǎn)比不上CPU的速度,所以電腦在程序運(yùn)行時(shí)CPU都會(huì)先把要執(zhí)行的代碼和各種數(shù)據(jù)從硬盤(pán)讀取到內(nèi)存(單片機(jī)這種小CPU除外),之后和內(nèi)存交互數(shù)據(jù),所以
    的頭像 發(fā)表于 03-06 10:59 ?1719次閱讀
    干貨|<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)存是計(jì)算機(jī)存儲(chǔ)技術(shù)中常見(jiàn)的兩種類(lèi)型的內(nèi)存。它們?cè)谠O(shè)計(jì)和功能上有一
    的頭像 發(fā)表于 09-22 16:57 ?1680次閱讀
    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具有額外的錯(cuò)誤檢測(cè)和糾正功能,可以提供更高的數(shù)據(jù)可靠性,減少硬件故障的風(fēng)險(xiǎn)。 此外,服務(wù)器內(nèi)存條通常具有更多的插槽和更大的容量支
    的頭像 發(fā)表于 02-19 10:19 ?8585次閱讀