• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

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

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

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

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

      1 相關(guān)研究

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

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

      2 壞塊管理及磨損均衡

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

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

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

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

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

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

      因此,可將1個物理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)采用輪流使用的方法,即每次使用后,計數(shù)值加1,下一次將使用下一個可供使用的交換塊,這樣,交換塊區(qū)的各塊使用頻率可實現(xiàn)均衡化[4-5].

      文件系統(tǒng)下的磨損均衡可以從2個方面進(jìn)行考慮:1)如果系統(tǒng)中的某文件需要頻繁的進(jìn)行擦寫,則將其搬移至另外一個磨損較小的簇(或某些簇)內(nèi);2)當(dāng)文件系統(tǒng)下某簇(或某些簇)的擦寫次數(shù)明顯高于其他簇時,則暫停這些小部分簇的使用.文件系統(tǒng)下的磨損均衡是從邏輯意義上的,簇由1個或多個扇區(qū)組成,扇區(qū)則直接映射到具體的物理塊上,所以對物理存儲的磨損均衡保護(hù)是有效的,但必須指出的是,文件的搬移將造成系統(tǒng)資源的額外消耗,且與文件的大小成正比.此外,為實現(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ù)時,進(jìn)行文件的搬移.當(dāng)某簇的擦寫次數(shù)S倍于所有簇的平均擦寫次數(shù)時,暫停使用;隨著文件系統(tǒng)的使用將增加,當(dāng)暫停使用簇的擦寫次數(shù)降低到T倍于所有簇的平均擦寫次數(shù)時,則恢復(fù)使用.

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

      在STM32F103ZE及NAND FLASH芯片HY27UF081G2A平臺上,實現(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)識該塊是否已壞,在HY27UF081G2A中每塊第1頁冗余信息區(qū)的第1個字節(jié)如果為非0xFF的值,則表示此塊已壞.在該平臺上實現(xiàn)的軟件系統(tǒng)框架如圖3所示.

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

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

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

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

      表1 性能測試表

      4 結(jié)束語

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

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

      [2]劉可嘉,梁阿磊.實現(xiàn)實時FAT文件系統(tǒng)的一種簡單方法[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ū)通行能力策略
      南北橋(2022年2期)2022-05-31 04:28:07
      上海實施“分區(qū)封控”
      試論工程造價管理機(jī)制的完善與創(chuàng)新
      建立有效的管理機(jī)制奠定堅實的人力資源基礎(chǔ)
      工電道岔結(jié)合部聯(lián)合管理機(jī)制的探討
      如何構(gòu)建醫(yī)院有效的績效管理機(jī)制
      浪莎 分區(qū)而治
      U盤故障排除經(jīng)驗談
      基于貝葉斯估計的短時空域扇區(qū)交通流量預(yù)測
      重建分區(qū)表與FAT32_DBR研究與實現(xiàn)
      高安市| 嵩明县| 奎屯市| 石泉县| 合水县| 龙胜| 洪江市| 镇巴县| 贵港市| 汝城县| 正蓝旗| 虞城县| 蓬溪县| 永德县| 星座| 桓台县| 铜陵市| 那曲县| 揭阳市| 聊城市| 高陵县| 庆元县| 策勒县| 花莲县| 越西县| 昌黎县| 右玉县| 马山县| 揭阳市| 谷城县| 安多县| 巍山| 大田县| 潮州市| 清徐县| 拉孜县| 蒙阴县| 安达市| 浦县| 定远县| 郑州市|