新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA的NAND Flash ECC校驗

        基于FPGA的NAND Flash ECC校驗

        作者: 時間:2011-07-13 來源:網絡 收藏

        圖9給出了數據包發生1 bit錯誤的校驗情況。其中,DATAin表示待讀取的數據,HammingCALC表示在寫入 頁時計算好的原始,HAMMINGout表示后面在讀取DATAin數據時計算的新的,errSTATUS為出錯狀態,ERRIoc為計算所得出錯的位置。為滿足1 bit錯誤的條件且易于觀察,將256 Byte數據(0~255)的最后一個Byte由“11110110”變為“11111110”,如圖9中陰影部分所示。此時,errSTATUS結果為01”,表明程序檢測出了該1 bit錯誤,且ERRloc輸出為“111111111O11”,即出錯位置為第255 Byte的比特3發生了錯誤。為糾正該錯誤,此時,只要將該位置的比特取反輸出即可。

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

        f.JPG


        在原來1 bit錯誤的情況下,將其相鄰的第254 bit的數據由“11110101”變為“01110101”,如圖10陰影部分所示,整個數據包有2 bit發生了變化。此時,errSTATUS結果顯示為“10”,即檢測出了有2 bit錯誤。但此時的ERRloe無效,不能表征出兩個出錯的位置,也就是為什么校驗只能檢測出2 bit錯誤而不能對其進行更正的原因。

        c.JPG


        當然,如果數據包沒有發生任何錯誤,也就是若讀出的數據與先前寫入的數據完全一致,ECC校驗也是能夠保證檢測出來的。如圖11所示,當未發生任何錯誤時,errSTATUS為“00”,驗證了數據的一致性。此時,ERPloe無意義。

        d.JPG


        值得說明的是,如果數據包發生的錯誤多于2 bit,該算法并不適宜。測定了更多比特(≥3)出錯的情況,結果證明,errSTATUS的結果可能為“00”、“01”、“10”中的任何一個,也就是說在這種情況下,該算法很可能出現誤檢。因此,在這里,可以得出與ECC校驗原理相符的結論:ECC能夠保證糾正1 bit錯誤和檢測2 bit錯誤,但對于1 bit以上的錯誤無法糾正,對2 bit以上的錯誤不保證能檢測。

        4 結束語
        本文將ECC校驗算法通過硬件編程語言VHDL在Ahera QuanusⅡ7.0開發環境下進行了后仿真測試,實現了 的ECC校驗功能。本程序可實現每256 Byte數據生成3 Byte ECC校驗數據,且通過與原始ECC數據對比,能夠保證檢測出1 bit的錯誤及其出錯位置,進一步結合對此錯誤的糾正,可應用于 讀寫控制器的設計,實現對數據的ECC校驗,確保數據準備有效地傳輸。經硬件實驗結果反饋,該算法硬件適應性良好。
        ECC是一種在NAND Flash處理中比較專用的校驗,其原理簡便、易于執行、計算速度快并且數據量越大,其算法越有效。但這樣一個高效的算法仍存在缺陷,那就是其有限的糾錯能力。本文也驗證了其對于2 bit以上錯誤是無效的,盡管這種情況在Flash中發生的幾率很低,但就校驗原理來說,是否存在一種改進的算法可用于多比特錯誤的糾正還有待進一步研究和驗證。


        上一頁 1 2 3 4 下一頁

        關鍵詞: Flash FPGA NAND ECC

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 二手房| 怀仁县| 和静县| 井陉县| 车险| 芦山县| 巴林右旗| 咸阳市| 赤城县| 邹平县| 陈巴尔虎旗| 桑植县| 云阳县| 大洼县| 正定县| 奇台县| 玉溪市| 桑植县| 无为县| 马鞍山市| 监利县| 成武县| 鄂托克旗| 禄丰县| 三明市| 鄂托克前旗| 财经| 仁怀市| 郯城县| 额尔古纳市| 尚义县| 吉安县| 美姑县| 临江市| 桐柏县| 长武县| 台南市| 奈曼旗| 泰宁县| 景德镇市| 阳东县|