為什么需要ECC內(nèi)存?因為硬盤的速度遠(yuǎn)遠(yuǎn)比不上CPU的速度,所以電腦在程序運行時CPU都會先把要執(zhí)行的代碼和各種數(shù)據(jù)從硬盤讀取到內(nèi)存(單片機(jī)這種小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)致軟件報錯或者閃退,重則藍(lán)屏死機(jī)或hardfault,對于普通PC來說還算能接受,畢竟概率很小,但是對于服務(wù)器來講,一次宕機(jī)可能會造成災(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é)來說就是奇偶校驗+交集排除,奇偶校驗負(fù)責(zé)檢測錯誤,交集排除負(fù)責(zé)定位錯誤的位置。奇偶校驗:根據(jù)被傳輸?shù)囊唤M二進(jìn)制代碼的數(shù)位中“1”的個數(shù)是奇數(shù)或偶數(shù)來進(jìn)行校驗。以偶校驗為例,在每組數(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ù)舉例說明。
1.為了使用交集排除,先把4*4的數(shù)據(jù)分成下圖4個區(qū):
2.在1區(qū)使用偶校驗得出沒有錯誤:
3.在2區(qū)使用偶校驗得出有錯誤:
4.在3區(qū)使用偶校驗得出有錯誤:
5.在4區(qū)使用偶校驗得出沒有錯誤:
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ù)。

總結(jié)
以上就是漢明碼最基礎(chǔ)的原理,但這并不是漢明碼被廣泛運用在內(nèi)存糾錯的全部原因,因為單純比糾錯能力,它遠(yuǎn)遠(yuǎn)沒有LDPC低密度校驗碼強,能被廣泛運用的原因是漢明碼能用極少的硬件電路實現(xiàn)(4*4的數(shù)據(jù)只需要5級異或門),而且有效數(shù)據(jù)比很高(一組數(shù)據(jù)只需要在2的整數(shù)次方的比特位置插入一個比特的校驗位,有效數(shù)據(jù)比成指數(shù)級提高,當(dāng)然一組數(shù)據(jù)越長超過2比特錯誤的概率也就越大),具體原理后面再分析。
-
內(nèi)存
+關(guān)注
關(guān)注
9文章
3229瀏覽量
76493 -
ECC
+關(guān)注
關(guān)注
0文章
104瀏覽量
21749
發(fā)布評論請先 登錄
LuatOS的內(nèi)存分配機(jī)制
德明利推出CKD DDR5內(nèi)存條 為AI PC提供穩(wěn)定高頻內(nèi)存解決方案
內(nèi)存崩盤 高端連接器成了“硬通貨”
保障量產(chǎn)穩(wěn)定!觸覺智能完成多款產(chǎn)品LPDDR5內(nèi)存適配
內(nèi)存持續(xù)漲價,多重信號預(yù)警成本壓力#內(nèi)存芯片#漲價#行業(yè)#消費電子#AI#
rk基于linux/android內(nèi)存管理
內(nèi)存與數(shù)據(jù)處理優(yōu)化藝術(shù)
行業(yè)資訊 I 火爆的“內(nèi)存接口芯片”
WebGL/Canvas 內(nèi)存泄露分析
干貨|ECC內(nèi)存為什么比普通內(nèi)存更穩(wěn)定?
評論