新聞中心

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

NAND Flash的壞塊管理設計

作者: 時間:2010-11-15 來源:網(wǎng)絡 收藏

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

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

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

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

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

2 壞塊管理模塊的實現(xiàn)
2.1 壞塊管理原理
本文的設計的壞塊管理是基于壞塊映射原理的一種實現(xiàn)。在本壞塊映射的設計中,NAND Flash被劃分為基本空間和預留空間?;究臻g為用戶看到的NANDFlash的總的存儲空間。基本空間中的壞塊被映射到預留空間中的相應好塊?;居成潢P系如圖2所示。映射管理信息記錄在壞塊映射表中,它存儲在預留空間。

b.JPG


上一頁 1 2 3 4 下一頁

關鍵詞: 設計 管理 Flash NAND

評論


相關推薦

技術專區(qū)

關閉