關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于固態(tài)存儲(chǔ)器的ECC算法分析及實(shí)現(xiàn)

基于固態(tài)存儲(chǔ)器的ECC算法分析及實(shí)現(xiàn)

作者: 時(shí)間:2009-11-27 來(lái)源:網(wǎng)絡(luò) 收藏

列校驗(yàn)碼生成用數(shù)學(xué)表達(dá)式表示為

本文引用地址:http://www.2s4d.com/article/202613.htm


行校驗(yàn)碼生成用數(shù)學(xué)表達(dá)式表示為


這里xor表示異或操作。
因?yàn)榘l(fā)生錯(cuò)誤的數(shù)據(jù)位在該數(shù)據(jù)塊中的字節(jié)的偏移量為

發(fā)生錯(cuò)誤的數(shù)據(jù)位在所處的字節(jié)中的位偏移量為P4_1,P2_1,P1_1
所以根據(jù)字節(jié)的偏移量和字節(jié)中的位的偏移量即可確定該頁(yè)數(shù)據(jù)中哪一位發(fā)生了變化。
2.2 校驗(yàn)流程
當(dāng)向NAND Flash的頁(yè)中寫(xiě)入數(shù)據(jù)的時(shí)候,每2 048 bit生成4 bit的校驗(yàn)碼,稱(chēng)之為寫(xiě)校驗(yàn)碼,保存到每一頁(yè)的空閑數(shù)據(jù)區(qū)中。
當(dāng)從NAND Flash中讀取數(shù)據(jù)的時(shí)候,每2 048 bit生成4 bit的ECC校驗(yàn)碼,稱(chēng)之為讀ECC校驗(yàn)碼。校驗(yàn)的時(shí)候,根據(jù)上述ECC生成原理不難推斷:將從頁(yè)空閑區(qū)中讀出的寫(xiě)ECC校驗(yàn)碼和讀ECC校驗(yàn)碼按位異或,若結(jié)果為0,則表示不存在錯(cuò);若4 bit的異或結(jié)果中存在14 bit為1,表示存在1 bit錯(cuò)誤,且可糾正;若4個(gè)bit的異或結(jié)果中只存在1 bit為1,表示空閑區(qū)中的校驗(yàn)碼出錯(cuò);其他情況均表示出現(xiàn)了無(wú)法糾正的錯(cuò)誤,校驗(yàn)流程圖,如圖2所示。

3 ECC算法的實(shí)現(xiàn)
3.1 C語(yǔ)言實(shí)現(xiàn)ECC算法
以一頁(yè)數(shù)據(jù)2 048個(gè)字節(jié)作為測(cè)試數(shù)據(jù)產(chǎn)生ECC校驗(yàn)碼,數(shù)據(jù)是0x00~0xFF,循環(huán)8次產(chǎn)生2048個(gè)數(shù)據(jù),數(shù)據(jù)序列,如圖3所示。



評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉