為什么需要ECC內(nèi)存?因?yàn)橛脖P的速度遠(yuǎn)遠(yuǎn)比不上CPU的速度,所以電腦在程序運(yùn)行時(shí)CPU都會先把要執(zhí)行的代碼和各種數(shù)據(jù)從硬盤讀取到內(nèi)存(單片機(jī)這種小CPU除外),之后和內(nèi)存交互數(shù)據(jù),所以內(nèi)存的穩(wěn)定性很大程度上決定了電腦的穩(wěn)定性。但是在電腦的運(yùn)行環(huán)境中,存在著各式各樣的干擾,包括EMI電磁干擾、電源紋波干擾等,這些干擾會導(dǎo)致內(nèi)存在和CPU交互數(shù)據(jù)時(shí)發(fā)生比特翻轉(zhuǎn)(某個(gè)0變成1),如果比特翻轉(zhuǎn)發(fā)生在某些不重要的位置上,比如某張圖片或者某個(gè)視頻流里面,使用者很有可能會感受不到。但是一旦發(fā)生在某個(gè)代碼里面,輕則導(dǎo)致軟件報(bào)錯(cuò)或者閃退,重則藍(lán)屏死機(jī)或hardfault,對于普通PC來說還算能接受,畢竟概率很小,但是對于服務(wù)器來講,一次宕機(jī)可能會造成災(zāi)難性的損失,所以服務(wù)器往往會使用穩(wěn)定性更高的ECC內(nèi)存。
漢明碼原理
為什么ECC內(nèi)存能糾錯(cuò)呢?就是因?yàn)槭褂昧藵h明碼編碼。更準(zhǔn)確來說,目前絕大多數(shù)ECC內(nèi)存都是使用的漢明碼來發(fā)現(xiàn)并糾錯(cuò)的。漢明碼在一組數(shù)據(jù)中最多只能糾錯(cuò)1個(gè)比特或者最多發(fā)現(xiàn)2個(gè)比特的錯(cuò)誤,超過2個(gè)比特的錯(cuò)誤就有概率通過漢明碼校驗(yàn),這是前提,只有在這個(gè)基礎(chǔ)上我們才能推出后面的結(jié)論。
漢明碼原理總結(jié)來說就是奇偶校驗(yàn)+交集排除,奇偶校驗(yàn)負(fù)責(zé)檢測錯(cuò)誤,交集排除負(fù)責(zé)定位錯(cuò)誤的位置。奇偶校驗(yàn):根據(jù)被傳輸?shù)囊唤M二進(jìn)制代碼的數(shù)位中“1”的個(gè)數(shù)是奇數(shù)或偶數(shù)來進(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è)必要前提。交集排除:簡單來說就是元素A若同時(shí)在集合B和集合C中,如果A、B、C都存在的話,那A一定在B∩C中。下面以一個(gè)4*4的數(shù)據(jù)舉例說明。1.為了使用交集排除,先把4*4的數(shù)據(jù)分成下圖4個(gè)區(qū):2.在1區(qū)使用偶校驗(yàn)得出沒有錯(cuò)誤:3.在2區(qū)使用偶校驗(yàn)得出有錯(cuò)誤:4.在3區(qū)使用偶校驗(yàn)得出有錯(cuò)誤:5.在4區(qū)使用偶校驗(yàn)得出沒有錯(cuò)誤:
6.綜合2、3、4、5的結(jié)論就可以得出,錯(cuò)誤數(shù)據(jù)同時(shí)在2區(qū)和3區(qū),并且1區(qū)和4區(qū)沒有錯(cuò)誤,所以錯(cuò)誤數(shù)據(jù)一定在如下(2,3)的位置,所以把(2,3)的1改為0就能得到正確的一組數(shù)據(jù)。
總結(jié)
以上就是漢明碼最基礎(chǔ)的原理,但這并不是漢明碼被廣泛運(yùn)用在內(nèi)存糾錯(cuò)的全部原因,因?yàn)閱渭儽燃m錯(cuò)能力,它遠(yuǎn)遠(yuǎn)沒有LDPC低密度校驗(yàn)碼強(qiáng),能被廣泛運(yùn)用的原因是漢明碼能用極少的硬件電路實(shí)現(xiàn)(4*4的數(shù)據(jù)只需要5級異或門),而且有效數(shù)據(jù)比很高(一組數(shù)據(jù)只需要在2的整數(shù)次方的比特位置插入一個(gè)比特的校驗(yàn)位,有效數(shù)據(jù)比成指數(shù)級提高,當(dāng)然一組數(shù)據(jù)越長超過2比特錯(cuò)誤的概率也就越大),具體原理后面再分析。
-
內(nèi)存
+關(guān)注
關(guān)注
8文章
2978瀏覽量
73818 -
ECC
+關(guān)注
關(guān)注
0文章
96瀏覽量
20519
發(fā)布評論請先 登錄
相關(guān)推薦
評論