新四季網

適合嵌入式Flash文件系統的均衡擦寫實現方法

2023-10-09 15:03:49

專利名稱:適合嵌入式Flash文件系統的均衡擦寫實現方法
技術領域:
本發明涉及計算機領域,尤其涉及嵌入式系統中Flash (閃速電可擦除可編程只讀存 儲器)文件系統均衡擦寫機制的數據結構和算法。
背景技術:
目前在嵌入式領域巳經存在有嵌入式Linux中的JFFS2等針對嵌入式系統的Flash文 件系統,但是由於這些文件系統安全和可靠機制實現的複雜性,對一些存儲資源很少的嵌 入式系統並不適用;在這種情況下出現了一些簡化的Flash文件系統,這些簡化的Flash 文件系統提供了一種分配合理、使用靈活且節約存儲空間的文件管理方法,但欠缺的是普 遍未考慮到Flash的硬體特性。
Flash有一定的使用壽命, 一般可擦除的次數為10 100萬次,隨著使用次數的增加, 會有一些單元逐漸變得不穩定或損壞。因此,要儘量避免頻繁地對局部地址範圍的操作,
以免造成局部單元提前損壞,從而導致整個Flash的損壞,以及Flash的使用壽命縮短。
由於Flash在嵌入式系統中的普遍使用,人們迫切希望有一種簡單實用的Flash文件系 統均衡擦寫實現方法可以延長Flash的使用壽命,從而降低工程中由於Flash損壞而產生 的不必要成本。

發明內容
本發明要解決的技術問題是提供一種適合嵌入式Flash文件系統的均衡擦寫實現方法, 採用該方法能延長Flash的使用壽命,從而降低工程中由於Flash損壞而產生的不必要成 本。
為了解決上述技術問題,本發明提供一種適合嵌入式Flash文件系統的均衡擦寫實現 方法,將Flash存儲空間分為文件控制信息區和文件數據存儲區兩個區域文件控制信息 區用於保存文件系統的文件控制塊(File Control Block)信息和作為基本分配單元的文 件塊的分配信息;文件數據存儲區用於存儲文件的實際數據信息;文件控制信息區保存了 文件系統的文件控制塊和文件塊的相關控制信息,文件數據區用於保存文件系統中文件的實際數據信息;
文件系統在系統啟動時要將保存在Flash文件控制信息區的控制信息讀入內存中,在 系統關閉時要將內存中文件系統的控制信息從內存中寫入到Flash的文件控制信息區內; 整個過程包括如下步驟
1) 、將Flash地址空間按照指定的物理塊的大小,按地址遞增順序依次編號,指定物 理塊的大小應為偶數;然後為每一個物理塊分配一個對應的文件塊,編號相同的文件塊與
物理塊一一對應;
2) 、文件系統中維護了一個文件控制塊(FCB)靜態鍊表,用來記錄文件系統中所 有的文件控制塊(FCB)的信息, 一個文件控制塊對應一個文件;由於使用的是靜態鍊表, 因此鍊表的大小需要預先分配,故文件控制塊靜態鍊表將分成兩部分 一部分為已經被使 用的文件控制塊, 一部分為空閒的文件控制塊;
3) 、文件系統中維護了一個文件塊(FB)靜態鍊表,用來記錄文件系統中所有的文 件塊(FB)的信息, 一個文件塊對應一個物理塊;由於使用的是靜態鍊表,因此鍊表的大 小需要預先分配,故文件塊靜態鍊表將分成兩部分 一部分為已經被使用的文件塊, 一部 分為空閒的文件塊;
4) 、通過地址映射機制將文件塊(FB)靜態鍊表裡的每一個文件塊映射到Flash的地 址空間中的一個物理塊上,從而使文件塊與Flash上的物理塊形成一對一的映射關係,文件 塊記錄了與其對應物理塊的使用信息;
5) 、當需要創建一個文件時,若還有空閒的文件控制塊(FCB),即空閒的文件控制塊 靜態鍊表不為空,則從空閒的文件控制塊靜態鍊表的表頭取出一個文件控制塊(FCB)分配 給申請者;
6) 、當需要刪除一個文件時,則將該文件控制塊(FCB)插入到空閒的文件控制塊靜態 鍊表的尾部;
7) 、當一個文件需要申請一個文件塊(FB)時,若Flash上還有空閒空間,即空閒的 文件塊靜態鍊表不為空,則從空閒的文件塊靜態鍊表的表頭取出一個文件塊分配給申請文 件;
8) 、當文件系統需要釋放一個文件塊(FB)時,則將該文件塊插入到空閒的文件塊 靜態鍊表的尾部。
作為本發明的適合嵌入式Flash文件系統的均衡擦寫實現方法的改進靜態鍊表是用一維數組實現的鍊表。
作為本發明的適合嵌入式Flash文件系統的均衡擦寫實現方法的進一步改進通過文 件塊的編號將內存中文件塊靜態鍊表中的結點與Flash上的物理塊一一對應起來。
作為本發明的適合嵌入式Flash文件系統的均衡擦寫實現方法的進一步改進靜態鏈 表是一種FIFO(先進先出)的數據結構,即隊列;總是從鍊表頭分配資源,被釋放的資源放 在鍊表尾。
採用本發明的方法,每次從空閒塊鍊表中取出的都是最久未被使用過的Flash空閒塊。 從而在對Flash操作時,不會頻繁地對同一塊地址進行操作,實現了對Flash的均衡擦寫。 本發明適合嵌入式Flash文件系統的均衡擦寫實現方法的主要優點有
1. 均衡擦寫機制實現中所使用的數據結構以及算法的開銷小,包括用來存儲文件系 統控制信息的空間小且可根據實際情況調整,不需要排序等冗餘操作,節約了內存空間以 及CPU資源;
2. 文件系統中的鍊表使用的是靜態鍊表,解決了許多實時作業系統不支持動態內存 管理的問題。


下面結合附圖對本發明的具體實施方式
作進一步詳細說明。
圖1是本發明方法中實現所使用的Flash的地址空間以及存儲分配結構圖2是將內存中的每一個文件塊映射到Flash地址空間上一個物理塊的說明圖3是申請一個空閒塊的操作說明圖4是釋放一個空閒塊的操作說明圖。
具體實施例方式
在本發明中,文件系統相關數據結構如下-
文件控制塊(File Control Block,以下簡稱FCB)結構包括以下域
1. 文件名,
2. 文件所佔用的文件塊鍊表中第一個文件塊的編號,
3. 文件所佔用的文件塊總數,
4. 當前正在使用的文件塊編號,
5. 當前文件塊內偏移,
6. 文件的屬性信息(*),7. 文件的操作密碼(",
8. 下一個文件控制塊(FCB)的編號;
文件塊(File Block,以下簡稱FB)結構包括以下域
1. 文件塊的編號,
2. 文件塊已使用的字節數,
3. 文件塊的CRC碼(循環冗餘碼)(*),
4. 下一個文件塊的編號;
文件系統相關數據信息描述
文件控制塊(FCB):
文件控制塊中帶"*"的域是附加域,具體實現時可以不用,或者更換成其他用戶所 具體需要的域。文件控制塊是文件系統中用來記錄一個文件屬性的數據結構,它隨著文件 系統中文件的創建而創建,隨著文件的刪除而釋放,因此,文件與文件控制塊是一一對應 的。
文件塊(FB)
文件塊中帶"*"的域是附加域,具體實現時可以不用,或者更換成其他用戶所具體 需要的域。文件塊是文件系統中用來記錄Flash介質一個物理塊信息的數據結構,當文件塊 被一個文件使用時,它將被連結在該文件對應的文件控制塊的文件塊鍊表中。若文件塊沒 有被任何文件使用時,那麼這個文件塊將被連結在系統維護的空閒文件塊鍊表中。通過文 件塊的編號將文件塊映射到Flash可用地址空間上的一個物理塊上,通過映射,文件塊與物 理塊就一一對應了起來。
實施例l、 一種適合嵌入式Flash文件系統的均衡擦寫實現方法,其實現所用硬體平臺 如下所述實現時使用的是Motorola公司的HCS12開發板上的大小為256KB的Flash,該 Flash分為16個Page,每個Page大小為16KB。具體實現時我們取每個物理塊為512個字節, 即 一個Page包括了 32個物理塊。
如附圖1所示,將Flash存儲空間分為文件控制信息區和文件數據存儲區兩個區域文 件控制信息區用於保存文件系統的文件控制塊(FCB)信息和作為基本分配單元的文件塊 (FB)的分配信息;文件數據存儲區用於存儲文件的實際數據信息。總的來說,文件控制 信息區保存了文件系統的文件控制塊和文件塊的相關控制信息,文件數據區用於保存文件 系統中文件的實際數據信息。
7依次進行如下步驟
1) 如附圖2所示,將Flash地址空間按照指定的物理塊的大小512個字節,按地址遞增 順序依次編號0 31,然後為每一個物理塊分配一個對應的文件塊,編號相同的文件塊與物 理塊一一對應;
2) 如附圖2所示,文件系統中維護了一個文件控制塊(FCB)靜態鍊表FCBList,用 來記錄文件系統中所有的文件控制塊(FCB)的信息,文件控制塊靜態鍊表將分成兩部分: 一部分為已經被使用的文件控制塊(如FCBList[l]和FCBList[2]), 一部分為空閒的文件控 制塊(除FCBList[l]和FCBList[2]以外的文件控制塊);
3) 如附圖2所示,文件系統中維護了一個文件塊(FB)靜態鍊表FBList,用來記錄文 件系統中所有的文件塊(FB)的信息,文件塊靜態鍊表將分成兩部分 一部分為已經被使 用的文件塊(如FBList[l]、 FBList[2]、 FCList[3]和FBList[4]), 一部分為空閒的文件塊(除 FBList[l]、 FBList[2]、 FCList[3]和FBList[4]以外的文件塊);
4) 、通過地址映射機制將文件塊(FB)靜態鍊表裡的每一個文件塊映射到Flash的地 址空間中的一個物理塊上,從而使文件塊與Flash上的物理塊形成一對一的映射關係,文件 塊記錄了與其對應物理塊的使用信息。例如,在附圖2中,數組FBList中編號為O的文件塊 與頁號為0x30,編號為O的物理塊對應。由於Flash尋址的特點,我們可以利用頁號也物理 頁號建立文件塊與物理塊的一一對應關係,對應關係為文件塊編號=(所在頁號-0x30) *32+物理塊編號,即頁號為0x32,物理塊編號為5的物理塊與編號為69的文件塊相對應;
5) 、當需要創建一個文件時,若還有空閒的文件控制塊(FCB),即空閒的文件控制塊 靜態鍊表不為空,則從空閒的文件控制塊靜態鍊表的表頭取出一個文件控制塊(FCB)分配 給申請者,具體操作類似於步驟7;
6) 、當需要刪除一個文件時,則將該文件控制塊(FCB)插入到空閒的文件控制塊靜態 鍊表的尾部,具體操作類似於步驟8;
7) 、如附圖3所示,當一個文件需要申請一個文件塊(FB)時,若Flash上還有空閒 空間,即空閒的文件塊靜態鍊表不為空,則從空閒的文件塊靜態鍊表的表頭取出一個文件 塊分配給申請文件。如附圖3所示,假設,空閒文件塊鍊表頭為5號結點,空閒文件塊鍊表 尾為9號結點,此時需要分配一個新的文件塊,那麼就將鍊表頭所在的5號結點分配給用戶, 此時新的空閒文件塊鍊表頭變為6號結點;
8) 、如附圖4所示,當文件系統需要釋放一個文件塊(FB)時,則將該文件塊插入到空閒的文件塊靜態鍊表的尾部。如附圖4所示,假設,空閒文件塊鍊表頭為5號結點,空閒 文件塊鍊表尾為9號結點,此時需要釋放編號為3的文件塊,那麼就將3號結點插入到此時 空閒文件塊鍊表尾所在的9號結點之後,此時新的空閒文件塊鍊表尾變為3號結點。
最後,還需要注意的是,以上列舉的僅是本發明的一個具體實施例。顯然,本發明不 限於以上實施例,還可以有許多變形。本領域的普通技術人員能從本發明公開的內容直接 導出或聯想到的所有變形,均應認為是本發明的保護範圍。
權利要求
1、一種適合嵌入式Flash文件系統的均衡擦寫實現方法,其特徵是將Flash存儲空間分為文件控制信息區和文件數據存儲區兩個區域文件控制信息區用於保存文件系統的文件控制塊(File Control Block)信息和作為基本分配單元的文件塊的分配信息;文件數據存儲區用於存儲文件的實際數據信息;文件控制信息區保存了文件系統的文件控制塊和文件塊的相關控制信息,文件數據區用於保存文件系統中文件的實際數據信息;文件系統在系統啟動時要將保存在Flash文件控制信息區的控制信息讀入內存中,在系統關閉時要將內存中文件系統的控制信息從內存中寫入到Flash的文件控制信息區內;整個過程包括如下步驟1)、將Flash地址空間按照指定的物理塊的大小,按地址遞增順序依次編號,指定物理塊的大小應為偶數;然後為每一個物理塊分配一個對應的文件塊,編號相同的文件塊與物理塊一一對應;2)、文件系統中維護了一個文件控制塊(FCB)靜態鍊表,用來記錄文件系統中所有的文件控制塊(FCB)的信息,一個文件控制塊對應一個文件;由於使用的是靜態鍊表,因此鍊表的大小需要預先分配,故文件控制塊靜態鍊表將分成兩部分一部分為已經被使用的文件控制塊,一部分為空閒的文件控制塊;3)、文件系統中維護了一個文件塊(FB)靜態鍊表,用來記錄文件系統中所有的文件塊(FB)的信息,一個文件塊對應一個物理塊;由於使用的是靜態鍊表,因此鍊表的大小需要預先分配,故文件塊靜態鍊表將分成兩部分一部分為已經被使用的文件塊,一部分為空閒的文件塊;4)、通過地址映射機制將文件塊(FB)靜態鍊表裡的每一個文件塊映射到Flash的地址空間中的一個物理塊上,從而使文件塊與Flash上的物理塊形成一對一的映射關係,文件塊記錄了與其對應物理塊的使用信息;5)、當需要創建一個文件時,若還有空閒的文件控制塊(FCB),即空閒的文件控制塊靜態鍊表不為空,則從空閒的文件控制塊靜態鍊表的表頭取出一個文件控制塊(FCB)分配給申請者;6)、當需要刪除一個文件時,則將該文件控制塊(FCB)插入到空閒的文件控制塊靜態鍊表的尾部;7)、當一個文件需要申請一個文件塊(FB)時,若Flash上還有空閒空間,即空閒的文件塊靜態鍊表不為空,則從空閒的文件塊靜態鍊表的表頭取出一個文件塊分配給申請文件;8)、當文件系統需要釋放一個文件塊(FB)時,則將該文件塊插入到空閒的文件塊靜態鍊表的尾部。
2、 根據權利要求l所述的一種適合嵌入式Flash文件系統的均衡擦寫實現方法,其特徵是:所述靜態鍊表是用一維數組實現的鍊表。
3、 根據權利要求l所述的一種適合嵌入式Flash文件系統的均衡擦寫實現方法,其特徵是: 通過文件塊的編號將內存中文件塊靜態鍊表中的結點與Flash上的物理塊一一對應起來。
4、 根據權利要求l、 2或3所述的一種適合嵌入式Flash文件系統的均衡檫寫實現方法,其 特徵是所述靜態鍊表是一種FIFO的數據結構,即隊列;總是從鍊表頭分配資源,被釋放的 資源放在鍊表尾。
全文摘要
本發明公開了一種適合嵌入式Flash文件系統的均衡擦寫實現方法,將Flash存儲空間分為文件控制信息區和文件數據存儲區兩個區域文件控制信息區用於保存文件系統的文件控制塊(File Control Block)信息和作為基本分配單元的文件塊的分配信息;文件數據存儲區用於存儲文件的實際數據信息;文件控制信息區保存了文件系統的文件控制塊和文件塊的相關控制信息,文件數據區用於保存文件系統中文件的實際數據信息;文件系統在系統啟動時要將保存在Flash文件控制信息區的控制信息讀入內存中,在系統關閉時要將內存中文件系統的控制信息從內存中寫入到Flash的文件控制信息區內。採用該方法能延長Flash的使用壽命。
文檔編號G06F17/30GK101609464SQ20091009983
公開日2009年12月23日 申請日期2009年6月22日 優先權日2009年6月22日
發明者吳朝暉, 霖 周, 紅 李, 楊國青, 琦 胡, 魏城炯 申請人:浙江大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀