關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 基于固態存儲器的ECC算法分析及實現

        基于固態存儲器的ECC算法分析及實現

        作者: 時間:2009-11-27 來源:網絡 收藏

        列校驗碼生成用數學表達式表示為

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


        行校驗碼生成用數學表達式表示為


        這里xor表示異或操作。
        因為發生錯誤的數據位在該數據塊中的字節的偏移量為

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

        3 ECC算法的實現
        3.1 C語言實現ECC算法
        以一頁數據2 048個字節作為測試數據產生ECC校驗碼,數據是0x00~0xFF,循環8次產生2048個數據,數據序列,如圖3所示。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 玉龙| 曲阜市| 融水| 威远县| 获嘉县| 张北县| 会同县| 涿鹿县| 龙游县| 荣成市| 武隆县| 丹凤县| 大荔县| 民勤县| 乐都县| 鹤庆县| 托克逊县| 吐鲁番市| 阿拉尔市| 丹巴县| 水富县| 县级市| 醴陵市| 丹阳市| 孟村| 来凤县| 芷江| 大悟县| 巴林左旗| 博罗县| 张北县| 孟州市| 宜川县| 滨海县| 揭西县| 兴安县| 临沧市| 靖远县| 富平县| 壤塘县| 临湘市|