關(guān) 閉

        新聞中心

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

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

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

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

        本文引用地址:http://www.104case.com/article/202613.htm


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


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

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

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



        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 乐亭县| 临沧市| 巴东县| 哈尔滨市| 石门县| 安丘市| 和顺县| 旬阳县| 义乌市| 商洛市| 浑源县| 拜泉县| 明光市| 噶尔县| 临漳县| 正蓝旗| 汶上县| 永定县| 郴州市| 康平县| 阜康市| 吴忠市| 特克斯县| 册亨县| 枞阳县| 丹凤县| 闽清县| 手游| 通江县| 长阳| 贺州市| 七台河市| 盈江县| 土默特右旗| 许昌市| 柳州市| 河北区| 绥滨县| 遂昌县| 洞头县| 莱芜市|