一種嵌入式設備中NAND Flash 存儲系統解決方案
0 引言
本文引用地址:http://dyxdggzs.com/article/257206.htm嵌入式系統主要由微處理器、存儲設備、總線(xiàn)標準、I/O外設等幾大部分構成。隨著(zhù)制造工藝的成熟和體系結構的不斷優(yōu)化,如今無(wú)論面向低端應用還是高端應用,從8 位到64 位,都有很大的選擇范圍,能夠很好的完成復雜的數據信息處理?,F在需要的更多的是如何有效的存儲和管理越來(lái)越多的數據,隨著(zhù)對大容量存儲需求的日益迫切,NAND Flash因為其自身的特點(diǎn)成為了嵌入式設備,特別是消費類(lèi)手持嵌入式設備的最主要存儲解決方案。目前針對NAND Flash 的研究主要集中在硬件和軟件兩大塊,硬件方面的研究主要希望盡一步加大存儲容量,提高讀寫(xiě)速度及數據可靠性,降低制造成本,統一各廠(chǎng)家的標準等;軟件方面的研究主要集中在如何實(shí)現一個(gè)更優(yōu)秀NAND Flash 的驅動(dòng)程序。NAND Flash的驅動(dòng)程序中牽涉到很多問(wèn)題,比如如何更好的進(jìn)行垃圾收集,負載均衡,壞塊管理等等。本文主要介紹我們的NANDFlash 存儲系統的驅動(dòng)程序設計,主要是基于Linux 操作系統。
1 NAND Flash 存儲系統的總體設計
1 NAND Flash 存儲系統的總體設計
NAND Flash 存儲系統的分層結構如圖1 所示。它由用戶(hù)層、內核層與硬件層組成:用戶(hù)層就是直接與用戶(hù)聯(lián)系,實(shí)際對存儲器提出讀寫(xiě)請求的應用程序,比如cp、rm 等命令,比如對存儲器有讀寫(xiě)請求的應用程序;內核層主要包括文件系統,比如EXT3、EXT2、FAT32 等文件系統,由于我們在接下來(lái)的塊設備層中實(shí)現了閃存翻譯層(FTL),所以文件系統可以采用任
何通用的文件系統,而不需要采用特殊的針對NAND Flash 的文件系統,比如JFFS2 等,塊設備驅動(dòng)層,主要實(shí)現統一的Linux 塊設備驅動(dòng),主要完成塊設備注冊、定義塊設備操作、請
求處理等工作,NAND Flash 設備驅動(dòng)層,在這里NAND Flash設備驅動(dòng)又分為FTL(flash translation layer)層與LLD(low leveldriver)層,由于NAND Flash 是一個(gè)特殊的存儲設備,具有自身的特點(diǎn),不同于一般的塊設備,所以需要FTL層來(lái)進(jìn)行一個(gè)轉換和翻譯的功能,使得上層可以像對一般塊設備進(jìn)行操作那樣來(lái)對NAND Flash 進(jìn)行操作,使得NAND Flash 的特殊性對于FTL 層以上是透明的不可見(jiàn)的,LLD 層主要用來(lái)直接驅動(dòng)控制器來(lái)完成底層的具體操作,例如最基本的頁(yè)讀、頁(yè)寫(xiě)、塊擦除等操作;硬件層由NAND Flash 控制器和具體的NAND Flash 芯片構成。
嵌入式設備NANDFlash存儲系統的設計與實(shí)現.pdf
嵌入式設備NANDFlash存儲系統的設計與實(shí)現.pdf
評論