• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > NAND Flash的壞塊管理設計

    NAND Flash的壞塊管理設計

    作者: 時間:2010-11-15 來源:網絡 收藏

    摘要:主要介紹了基于嵌入式Linux的 壞塊和實現方案,詳細闡述了壞塊映射表的建立、維護及其相關算法,同時分析了此壞塊算法在Linux內核及Bootloader中的具體應用。測試結果表明該算法能夠處理的相關壞塊問題,具有較高的穩定性。
    關鍵詞: ;嵌入式IAnux;映射表;壞塊

    本文引用地址:http://www.czjhyjcfj.com/article/151348.htm

    在擁有諸多優點的同時,NAND Flash由于生產工藝的問題,其在出廠時可能存在一定的壞塊。這些固有壞塊不能用于存儲數據,已被產家標識好。另外,使用過程中由于讀寫次數增多,好塊也會變得不穩定或失效,成為壞塊,這就是出廠后產生的壞塊。
    NAND Flash在生產及使用過程中都有可能產生壞塊,這將使得系統變得不穩定。應用中一般采用跳塊策略來壞塊,但它不能解決系統運行中產生的壞塊情況。針對此情形,本文提出基于嵌入式Linux系統平臺下的一種基于壞塊映射的NAND Flash壞塊管理的方案,并詳細介紹其相關映射算法和整套系統的相關壞塊管理流程。

    1 壞塊管理層次結構
    Linux下的MTD(Memory Technology Device)是用于管理ROM、Flash等內存設備的一層子系統,它使編寫管理內存設備驅動變得更加簡單。
    MTD子系統將Flash設備或其分區抽象為MTD設備,使底層驅動只需實現MTD設備,而向上層文件系統提供標準的接口,如MTD字符設備、MTD塊設備。
    如圖1所示,本方案中,將壞塊管理層(BBMlayer)緊靠在驅動層之上MTD層之下,從而使得MTD層對壞塊不可見,并使壞塊的管理是基于整個芯片而不是某個分區,便于上層文件系統實現損耗平衡。

    a.JPG
    BBM層基于驅動層提供的讀、寫、擦除相關操作實現接口read()、write()、erase()、read_oob()、write_oob()、isbad()、mark_bad()。對于其上層MTD子系統而言,關于壞塊的相關接口將不存在,物理介質類似于NORFlash。其中read_oob()、write_oob()接口為文件系統提供相關用途,如JFFS2的cleanmarker相關載體。

    2 壞塊管理模塊的實現
    2.1 壞塊管理原理
    本文的設計的壞塊管理是基于壞塊映射原理的一種實現。在本壞塊映射的設計中,NAND Flash被劃分為基本空間和預留空間。基本空間為用戶看到的NANDFlash的總的存儲空間。基本空間中的壞塊被映射到預留空間中的相應好塊。基本映射關系如圖2所示。映射管理信息記錄在壞塊映射表中,它存儲在預留空間。

    b.JPG


    上一頁 1 2 3 4 下一頁

    關鍵詞: 設計 管理 Flash NAND

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 莆田市| 新绛县| 伊金霍洛旗| 绥中县| 垣曲县| 平湖市| 新化县| 黄大仙区| 东方市| 仙桃市| 漾濞| 永定县| 巴青县| 德令哈市| 铁岭县| 宣威市| 越西县| 裕民县| 娄烦县| 习水县| 孟连| 泽普县| 阳曲县| 徐州市| 马边| 舒城县| 芒康县| 清新县| 卢氏县| 霍山县| 青川县| 温州市| 沧源| 奉化市| 宁河县| 南江县| 阳城县| 阿坝县| 隆子县| 温宿县| 昆明市|