国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

一種基于NAND FLASH的FAT文件系統(tǒng)的研究與實(shí)現(xiàn)

2012-09-30 09:29張小進(jìn)羅海波
關(guān)鍵詞:扇區(qū)管理機(jī)制分區(qū)

張小進(jìn),羅海波

(閩江學(xué)院 計(jì)算機(jī)科學(xué)系,福建 福州350108)

隨著嵌入式系統(tǒng)的發(fā)展,計(jì)算資源及存儲(chǔ)資源的不斷增加,F(xiàn)LASH在各種嵌入式設(shè)備包括智能終端中扮演了重要的角色,可用于存儲(chǔ)程序及大量的數(shù)據(jù).隨著FLASH技術(shù)的成熟和普及,單片機(jī)、ARM及DSP芯片已普遍采用FLASH取代過去常用的片內(nèi)ROM或EEPROM,F(xiàn)LASH作為一種安全快速的存儲(chǔ)體,以其體積小、容量大、成本低、掉電數(shù)據(jù)不丟失等一系列優(yōu)點(diǎn)成為了嵌入式系統(tǒng)中數(shù)據(jù)和程序的主要載體.但存儲(chǔ)中數(shù)據(jù)龐大,特別是多媒體數(shù)據(jù)龐大時(shí),必須使用一定的文件系統(tǒng)進(jìn)行組織和管理,本文研究了NAND FLASH上的FAT文件系統(tǒng),可使得所管理的文件與Windows平臺(tái)具有通用性,配合USB控制接口,可以直接在目標(biāo)系統(tǒng)和Windows系統(tǒng)之間進(jìn)行文件互通,具有較高的實(shí)用性及便利性.

1 相關(guān)研究

1.1 NAND FLASH的結(jié)構(gòu)及特點(diǎn) FLASH可分為NAND FLASH及NOR FLASH 2種.NOR FLASH的讀取速度快,寫入速度慢,適用于小容量程序的存儲(chǔ).NAND FLASH密度高,可低成本制造出更大容量的存儲(chǔ)器,適用于大數(shù)據(jù)量的程序和數(shù)據(jù)讀寫場(chǎng)合,是目前使用較多的一種FLASH存儲(chǔ)器結(jié)構(gòu).典型的NAND FLASH設(shè)備由若干個(gè)塊(Block)組成,塊與塊之間是相互獨(dú)立的,一個(gè)塊由若干個(gè)頁(Page)組成,一頁有若干個(gè)可供用戶使用的存儲(chǔ)單元及供系統(tǒng)維護(hù)使用的備用單元(Spare Area).NAND FLASH的讀操作可以以字節(jié)或頁為單位進(jìn)行,但由于NAND FLASH的寫操作只能從1寫成0,不能從0寫成1,所以在對(duì)存儲(chǔ)器進(jìn)行寫入之前必須進(jìn)行擦除操作,將所有位置為1,且擦除是以塊為單位進(jìn)行的,而不能擦除單個(gè)字節(jié)或頁[1].

1.2 FAT文件系統(tǒng) FAT文件系統(tǒng)應(yīng)用于桌面操作系統(tǒng),具有多個(gè)版本,目前常用的是FAT16和FAT32.FAT以簇鏈結(jié)構(gòu)來存儲(chǔ)文件,基本的存儲(chǔ)單元是簇.一個(gè)簇由2N(N>0)個(gè)扇區(qū)構(gòu)成.1個(gè)FAT文件系統(tǒng)包括4個(gè)不同的部分[2-3].1)啟動(dòng)扇區(qū)在具有FAT文件系統(tǒng)的存儲(chǔ)介質(zhì)中,介質(zhì)的第1個(gè)扇區(qū)為啟動(dòng)扇區(qū)(引導(dǎo)扇區(qū)),介質(zhì)不同,此啟動(dòng)扇區(qū)大小不同,至少為512 Byte,如FLASH存儲(chǔ)卡及硬盤即為512 Byte,軟盤為1 024 Byte.啟動(dòng)扇區(qū)存放FAT文件系統(tǒng)的基本信息.2)FAT區(qū)域存放文件分配表,是分區(qū)信息的映射表,指示簇是如何存儲(chǔ),并記錄文件的簇鏈結(jié)構(gòu).3)根目錄區(qū)域是在根目錄中存儲(chǔ)文件和目錄信息的目錄表,在FAT32下可以存在分區(qū)中的任何位置,但是在早期的版本中永遠(yuǎn)緊隨FAT區(qū)域之后.4)數(shù)據(jù)區(qū)域是實(shí)際的文件和目錄數(shù)據(jù)存儲(chǔ)的區(qū)域,占據(jù)了分區(qū)的絕大部分.簡單地在FAT中添加文件鏈接的個(gè)數(shù),就可以任意增加文件大小和子目錄個(gè)數(shù)(只要有空簇存在).

2 壞塊管理及磨損均衡

2.1 壞塊管理 有2個(gè)原因會(huì)不可避免的造成NAND FLASH中的壞塊:1)NAND FLASH由于生產(chǎn)工藝的問題,其在出廠時(shí)可能存在一定的壞塊.這些固有壞塊不能用于存儲(chǔ)數(shù)據(jù),已被產(chǎn)家進(jìn)行標(biāo)識(shí)(通常將壞塊的第1個(gè)Page的Spare Area的第6個(gè)Byte標(biāo)記為非0xFF值).2)使用過程中由于讀寫次數(shù)增多,好塊也會(huì)變得不穩(wěn)定或失效,成為壞塊,稱為使用壞塊.對(duì)壞塊進(jìn)行讀寫和擦除操作將不能保證數(shù)據(jù)的正確性,而壞塊不會(huì)影響正常塊的性能,因此,為了保證整個(gè)存儲(chǔ)器的正常有效使用,必須采取一定的壞塊管理機(jī)制,本系統(tǒng)采用的壞塊管理機(jī)制描述如下:

1)系統(tǒng)啟動(dòng)、第1次使用該FLASH或格式化時(shí),掃描所有的塊(設(shè)有An個(gè)),以確定當(dāng)前的壞塊數(shù)量(設(shè)有Bn個(gè))及位置;

2)建立壞塊映射表,預(yù)留Mn個(gè)塊用于進(jìn)行壞塊映射,當(dāng)正常用戶使用區(qū)出現(xiàn)壞塊時(shí),將其映射到預(yù)留待映射壞塊上;

3)預(yù)留Sn個(gè)塊用于交換塊,即對(duì)某塊進(jìn)行數(shù)據(jù)擦除時(shí),需要將其內(nèi)某些有效頁數(shù)據(jù)拷貝到交換塊的對(duì)應(yīng)頁上,以便重新寫入;

4)將壞塊映射表以雙份拷貝的形式保存在獨(dú)立的2個(gè)塊上;

5)系統(tǒng)初始建立時(shí),如果在映射區(qū)及交換區(qū)存在壞塊,將不計(jì)入其應(yīng)保留的數(shù)量內(nèi),即初始時(shí)保證映射塊為Mn、交換塊為Sn,但隨著系統(tǒng)的運(yùn)行,各分區(qū)壞塊的出現(xiàn),Mn和Sn中可用的空閑好塊將減少,而當(dāng)Mn或Sn為0時(shí),該NAND FLASH將需要進(jìn)行重新格式化或再次按照以上要求建立.

因此,可將1個(gè)物理NAND FLASH功能分區(qū)如圖1所示(假設(shè)總?cè)萘繛門n,映射區(qū)、交換區(qū)、映射表區(qū)均無壞塊).

圖1 壞塊管理機(jī)制下的NAND FLASH分區(qū)結(jié)構(gòu)示意圖

使用過程中的NAND FLASH操作流程圖如圖2所示(交換區(qū)操作省略).

圖2 壞塊管理機(jī)制流程圖

2.2 磨損均衡 FLASH的塊單元在頻繁擦寫的情況下,出現(xiàn)壞塊的概率將增加,為了增加FLASH的整體使用壽命,可將擦寫操作平衡到FLASH的各塊中.本系統(tǒng)采用輪流使用的方法,即每次使用后,計(jì)數(shù)值加1,下一次將使用下一個(gè)可供使用的交換塊,這樣,交換塊區(qū)的各塊使用頻率可實(shí)現(xiàn)均衡化[4-5].

文件系統(tǒng)下的磨損均衡可以從2個(gè)方面進(jìn)行考慮:1)如果系統(tǒng)中的某文件需要頻繁的進(jìn)行擦寫,則將其搬移至另外一個(gè)磨損較小的簇(或某些簇)內(nèi);2)當(dāng)文件系統(tǒng)下某簇(或某些簇)的擦寫次數(shù)明顯高于其他簇時(shí),則暫停這些小部分簇的使用.文件系統(tǒng)下的磨損均衡是從邏輯意義上的,簇由1個(gè)或多個(gè)扇區(qū)組成,扇區(qū)則直接映射到具體的物理塊上,所以對(duì)物理存儲(chǔ)的磨損均衡保護(hù)是有效的,但必須指出的是,文件的搬移將造成系統(tǒng)資源的額外消耗,且與文件的大小成正比.此外,為實(shí)現(xiàn)以上機(jī)制,需要在文件系統(tǒng)中額外維護(hù)2組信息:1)文件的擦寫次數(shù);2)簇的擦寫次數(shù).

進(jìn)行文件搬移的觸發(fā)條件為

暫停使用某些簇的觸發(fā)條件為

恢復(fù)使用的觸發(fā)條件為

其中,ENf為當(dāng)前文件的擦寫總次數(shù)為當(dāng)前文件所在簇的平均擦寫次數(shù)為文件系統(tǒng)下所有簇的平均擦寫次數(shù),M,N,S,T為設(shè)定閾值,各閾值均大于1且應(yīng)有S>T.

由式(1)~(3)可知,當(dāng)某文件的擦寫總次數(shù)高于值M且其所在簇的平均擦寫次數(shù)N倍于所有簇的平均擦寫次數(shù)時(shí),進(jìn)行文件的搬移.當(dāng)某簇的擦寫次數(shù)S倍于所有簇的平均擦寫次數(shù)時(shí),暫停使用;隨著文件系統(tǒng)的使用將增加,當(dāng)暫停使用簇的擦寫次數(shù)降低到T倍于所有簇的平均擦寫次數(shù)時(shí),則恢復(fù)使用.

3 系統(tǒng)實(shí)現(xiàn)與分析

在STM32F103ZE及NAND FLASH芯片HY27UF081G2A平臺(tái)上,實(shí)現(xiàn)了本文文件系統(tǒng).HY27UF081 G2A共1 Gbit,分為1 024塊,每塊為64頁,每頁為(2 K+64)Byte,其中2 KB為可用有效的數(shù)據(jù)空間,64 B為擴(kuò)展冗余空間,用于存放控制及標(biāo)志信息,如標(biāo)識(shí)該塊是否已壞,在HY27UF081G2A中每塊第1頁冗余信息區(qū)的第1個(gè)字節(jié)如果為非0xFF的值,則表示此塊已壞.在該平臺(tái)上實(shí)現(xiàn)的軟件系統(tǒng)框架如圖3所示.

圖3 軟件系統(tǒng)框架示意圖

如圖3所示,該系統(tǒng)實(shí)現(xiàn)了文件系統(tǒng)的掛載(f_mount)、打開文件(f_open)、讀文件(f_read)、寫文件(f_write)、關(guān)閉文件(f_close)等FAT文件系統(tǒng)所必須的API接口,在文件系統(tǒng)之下嵌入磨損均衡管理層,并基于HY27UF081G2A的物理存儲(chǔ)驅(qū)動(dòng)實(shí)現(xiàn)了壞塊管理算法.此外,為了測(cè)試該文件系統(tǒng),將USB驅(qū)動(dòng)嵌入到系統(tǒng)中,從而可以在PC上通過USB接口觀察調(diào)試.

為考證本系統(tǒng)的可行性,測(cè)試參數(shù)先行設(shè)置為M=1 000,N=5,S=10,T=4,系統(tǒng)隨機(jī)創(chuàng)建文件并讀寫文件,運(yùn)行24 h.性能測(cè)試結(jié)果如表1所示,其中磨損均方差用于反映各塊擦寫次數(shù)偏離平均擦寫次數(shù)的差值,則可定義為

其中,ENuci為各塊擦寫次數(shù),N取HY27UF081G2A總塊數(shù)1 024.從表1可知,該系統(tǒng)具有較好的FLASH存儲(chǔ)利用率和較快的文件讀寫速度,在上述參數(shù)設(shè)置下,均方差σ為37.3,可見各存儲(chǔ)塊具有較為平均的磨損率.

表1 性能測(cè)試表

4 結(jié)束語

本文基于NAND FLASH的存儲(chǔ)特性,在研究FAT文件系統(tǒng)的基礎(chǔ)上,對(duì)其進(jìn)行了實(shí)現(xiàn)并設(shè)計(jì)了物理存儲(chǔ)的壞塊管理機(jī)制及基于文件系統(tǒng)的磨損均衡機(jī)制,試驗(yàn)測(cè)試結(jié)果表明該系統(tǒng)穩(wěn)定可靠,對(duì)于構(gòu)建無操作系統(tǒng)下的嵌入式文件系統(tǒng)具有重要的借鑒及工程意義,且便于移植到其他硬件系統(tǒng)平臺(tái).本文所研究設(shè)計(jì)的FAT系統(tǒng)存在進(jìn)一步的研究空間,如對(duì)于文件系統(tǒng)中長文件名的支持,各參數(shù)的設(shè)定對(duì)系統(tǒng)性能影響的考察分析等,筆者將在此方面進(jìn)行深入的研究和探討.

[1]楊瑞霞.基于NAND FLASH的FAT文件系統(tǒng)的實(shí)現(xiàn)[J].山東輕工業(yè)學(xué)院學(xué)報(bào),2007,21(3):27-30.

[2]劉可嘉,梁阿磊.實(shí)現(xiàn)實(shí)時(shí)FAT文件系統(tǒng)的一種簡單方法[J].計(jì)算機(jī)工程與應(yīng)用,2008,44(16):70-72.

[3]Microsoft Corporation.Microsoft extensible firmware initiative FAT32 File system specification[M].北京:微軟公司,2000.

[4]CHOI In-hwan,SHIN Dong-kun.Wear Leveling for PCM using hot data identification[M]∥KIM Kui-nam J,AHN Seong Jin.Proceedings of the International Conference on IT Convergence and Security 2011,Dordrecht:Springer Netherlands,2012.

[5]WANG Xin-hua,WANG Jian-fen.A Wear-Leveling algorithm for NANDFLASH in embedded system Proceedings of the Fifth IEEE International Symposium on Embedded Computing,Beijing,October 6 -9,2008[C].[S.1]:IEEE Computer Society,2008:260-265.

猜你喜歡
扇區(qū)管理機(jī)制分區(qū)
分階段調(diào)整增加扇區(qū)通行能力策略
上海實(shí)施“分區(qū)封控”
試論工程造價(jià)管理機(jī)制的完善與創(chuàng)新
建立有效的管理機(jī)制奠定堅(jiān)實(shí)的人力資源基礎(chǔ)
關(guān)于軟科學(xué)質(zhì)量管理機(jī)制的問題探討
工電道岔結(jié)合部聯(lián)合管理機(jī)制的探討
浪莎 分區(qū)而治
U盤故障排除經(jīng)驗(yàn)談
基于貝葉斯估計(jì)的短時(shí)空域扇區(qū)交通流量預(yù)測(cè)
重建分區(qū)表與FAT32_DBR研究與實(shí)現(xiàn)
汶上县| 满洲里市| 永修县| 泾川县| 斗六市| 佛冈县| 牙克石市| 六枝特区| 南宁市| 准格尔旗| 广东省| 阿瓦提县| 上饶县| 繁峙县| 确山县| 桦甸市| 铜鼓县| 平昌县| 子洲县| 香港| 兖州市| 兰坪| 剑阁县| 江西省| 绩溪县| 栾城县| 尼木县| 濉溪县| 师宗县| 汶上县| 左云县| 西安市| 洮南市| 晋宁县| 顺平县| 望江县| 佛冈县| 台东县| 陕西省| 桐柏县| 齐齐哈尔市|