新四季網

在Flash存儲介質上的關於文件分配表的緩存實現方法

2023-07-12 01:47:11 1

專利名稱:在Flash存儲介質上的關於文件分配表的緩存實現方法
技術領域:
本發明為針對嵌入式設備FAT文件系統的一種FAT項緩存實現的方法。
背景技術:
嵌入式設備多以Flash作為存貯媒體,其RAM等資源都比較有限,且往往對掉電保護有嚴格要求。Flash存貯媒體的寫操作一般都比較耗時,且不能實現數據位由」0」-」1」的翻轉,這就要求儘可能減少Flash上的寫操作。因此嵌入式設備上的FAT文件系統在其實現上應具有一些特殊性。
對於FAT表,一般的文件系統實現方式是申請一塊很大內存空間,作為FAT表的內存映象。實際上一個文件的操作過程中需修改的FAT項個數往往並不多,有一個FAT項只有2個或4個字節。這些方法內存空間消耗較大,且不利於文件系統的掉電保護。
嵌入式設備文件系統要求緩存不能佔用較多的RAM資源,又要有較高的命中率,緩存效率較高。

發明內容
為了克服上述現有技術內存空間消耗較大、且不利於文件系統的掉電保護的缺點,提供一種在Flash存儲介質上關於文件分配表的緩存實現方法。
本發明的技術方案是提供一種在Flash存儲介質上關於文件分配表的緩存實現方法,其緩存針對單個的文件,當創建或打開文件時,就會創建一文件對象結構與之對應,在文件對象結構中有一個結構數組FatCache[FAT_CACHE_NUM],該數組的一個元素為一個FAT項緩存節點,該節點是一個包含了如下欄位的結構Age修改時間,該值越小,表明該項修改時間越早;ClusterNo簇號,FAT項對應簇的簇號;FatValFAT項的值;在文件系統的Disk被打開時,會申請一個位圖表,該表的每一位順序對應FAT區中的FAT項,如對應的FAT項被使用,則該項被置為『1』,否則為『0』;當文件系統修改FAT項時,就將要修改的FAT項對應的簇號、FAT項的值、當前時間寫到數組FatCache[]的一個節點中;如FatCache[]中沒有對應節點或沒有屬性為NULL的節點,則找出FatCache[]中的LRU節點,將其值回寫進Disk,再將要改寫的FAT項對應的簇號、FAT項的值、當前時間寫至LRU節點中,上述的LRU指最近最少使用的節點;在寫FAT項的值進入對應的FAT項緩存節點時,如FAT項的值不為FREE,則要置位圖表中的對應位為『1』,表示該FAT項已被佔用;
在回寫FAT項緩存節點中的FAT值到Disk中的FAT區的對應位置時,如FAT項的值為FREE,則要置位圖表中的對應位為『0』,表示該FAT項已被釋放,處於FREE狀態;當關閉或刷新文件時,文件系統會將FatCache[]中的有效內容寫入disk FAT區的對應位置。
所述的在Flash存儲介質上關於文件分配表的緩存實現方法,其FAT項緩存的實施方法包含以下三部分內容第一文件系統修改FAT項的實施方法;第二文件系統讀FAT項的實施方法;第三將FAT項緩存節點的FAT值寫入disk中FAT區的實施方法。
所述的在Flash存儲介質上關於文件分配表的緩存實現方法,所述的文件系統修改FAT項的實施方法如下步驟一,先查找要修改的FAT項是否在結構數組FatCache中,如果命中,直將FAT項的值寫入結構數組FatCache對應的FAT項緩存節點中;如果沒有命中,轉下一步;步驟二,結構數組FatCache中是否有空閒項,如存在,則以空閒項作為要修改FAT項的緩存節點,並將位圖中的對應位置為『1』;如果不存在,轉下一步;步驟三,在結構數組FatCache中找LRU項,將該項的值回寫入Disk,如回寫的FAT值為Free,還應將回寫項在位圖中的對應位置為『0』。然後將數組中的該項改為要修改FAT項的緩存節點,再將要修改的FAT項在位圖中的對應位置為『1』。
所述的在Flash存儲介質上關於文件分配表的緩存實現方法,所述的文件系統讀FAT項的實施方法如下查找要讀的FAT項是否在結構數組FatCache中,如果命中,則從結構數組FatCache對應的中讀出該FAT項的值;如果沒有命中,則從Disk的FAT表中讀出。
所述的在Flash存儲介質上關於文件分配表的緩存實現方法,所述的將FAT項緩存節點的FAT值寫入disk中FAT區的實施方法如下步驟一,找到緩存節點對應的FAT項所在的FAT區中扇區,為敘述方便,稱該扇區為扇區A;步驟二,將扇區A的內容讀入扇區Buffer中;步驟三,根據簇號將其要回寫緩存節點的FAT值寫入扇區緩衝區的對應位置中,如FAT值為FREE,則要將簇號記錄在一數組DeletedLisk中;步驟四,在FatCache[]中查找,是否還有緩存節點對應的目錄扇區為扇區A,若存在,則根據簇號將其FAT值寫入扇區緩衝區的對應位置中,如FAT值為FREE,則要將簇號記錄在數組DeletedLisk中;步驟五,將扇區緩衝區中的內容寫入扇區A中;步驟六,在DeletedLisk中逐個查找有效簇號,根據簇號將位圖中的對應位置為0,釋放該簇。
本發明的有益效果是本發明在Flash存儲介質上關於文件分配表的緩存實現方法,其所需的RAM資源較少,但緩存的命中率較高,並使文件系統能較好、較容易地解決掉電問題。


下面將參考附圖進行詳細的說明。
附圖1為本發明在Flash存儲介質上關於文件分配表的緩存實現方法的說明文件系統修改FAT項的步驟。
附圖2為本發明在Flash存儲介質上關於文件分配表的緩存實現方法的說明回寫FAT項緩存節點的步驟。
具體實施例方式
本發明在Flash存儲介質上關於文件分配表的緩存實現方法的緩存針對單個的文件,當創建或打開文件時,就會創建一文件對象結構與之對應,在文件對象結構中有一個結構數組FatCache[FAT_CACHE_NUM],該數組的一個元素我們在此稱之為一個FAT項緩存節點,該節點是一個包含了如下欄位的結構Age修改時間,該值越小,表明該項修改時間越早;ClusterNo簇號,FAT項對應簇的簇號;FatValFAT項的值;在文件系統的Disk被打開時,會申請一個位圖表,該表的每一位順序對應FAT區中的FAT項,如對應的FAT項被使用,則該項被置為『1』,否則為『0』;當文件系統修改FAT項時,就將要修改的FAT項對應的簇號、FAT項的值、當前時間寫到數組FatCache[]的一個節點中;如FatCache[]中沒有對應節點或沒有屬性為NULL的節點,則找出FatCache[]中的LRU節點,將其值回寫進Disk,再將要改寫的FAT項對應的簇號、FAT項的值、當前時間寫到LRU節點中,上述的LRU指最近最少使用的節點集合;在寫FAT項的值進入對應的FAT項緩存節點時,如FAT項的值不為FREE,則要置位圖表中的對應位為『1』,表示該FAT項已被佔用;在回寫FAT項緩存節點中的FAT值到Disk中的FAT區的對應位置時,如FAT項的值為FREE,則要置位圖表中的對應位為『0』,表示該FAT項已被釋放,處於FREE狀態;當關閉或刷新文件時,文件系統會將FatCache[]中的有效內容寫入disk FAT區的對應位置。
請一併參閱圖1和圖2,本發明在Flash存儲介質上關於文件分配表的緩存實現方法包括以下步驟1.文件系統修改FAT項的實施方法(參閱附圖1)步驟一,先查找要修改的FAT項是否在結構數組FatCache中,如果命中,直將FAT項的值寫入結構數組FatCache對應的FAT項緩存節點中;如果沒有命中,轉下一步;步驟二,結構數組FatCache中是否有空閒項,如存在,則以空閒項作為要修改FAT項的緩存節點,並將位圖中的對應位置為『1』;如果不存在,轉下一步;
步驟三,在結構數組FatCache中找LRU項,將該項的值回寫入Disk,如回寫的FAT值為Free,還應將回寫項在位圖中的對應位置為『0』。然後將數組中的該項改為要修改FAT項的緩存節點,再將要修改的FAT項在位圖中的對應位置置為『1』。
2.文件系統讀FAT項的實施方法查找要讀的FAT項是否在結構數組FatCache中,如果命中,則從結構數組FatCache對應的中讀出該FAT項的值;如果沒有命中,則從Disk的FAT表中讀出。
3.將FAT項緩存節點的FAT值寫入disk中FAT區的實施方法(參閱附圖2)步驟一,根據緩存節點的簇號確定對應的FAT項所在的目錄扇區及其在扇區中的位置(為敘述方便,稱該扇區為扇區A);步驟二,將扇區A的內容讀入扇區Buffer中;步驟三,根據簇號將其要回寫緩存節點的FAT值寫入扇區緩衝區的對應位置中。如FAT值為FREE,則要將簇號記錄在一數組DeletedLisk中;步驟四,在FatCache[]中查找,是否還有緩存節點對應的目錄扇區為扇區A,若存在,則根據簇號將其FAT值寫入扇區緩衝區的對應位置中,如FAT值為FREE,則要將簇號記錄在數組DeletedLisk中;步驟五,將扇區緩衝區中的內容寫入扇區A中;步驟六,在DeletedLisk中逐個查找有效簇號,根據簇號將位圖中的對應位置為0,釋放該簇。
權利要求
1.一種在Flash存儲介質上關於文件分配表的緩存實現方法,其特徵在於其緩存針對單個的文件,當創建或打開文件時,就會創建一文件對象結構與之對應,在文件對象結構中有一個結構數組FatCache[FAT_CACHE_NUM],該數組的一個元素為一個FAT項緩存節點,該節點是一個包含了如下欄位的結構Age修改時間,該值越小,表明該項修改時間越早;ClusterNo簇號,FAT項對應簇的簇號;FatValFAT項的值;在文件系統的Disk被打開時,會申請一個位圖表,該表的每一位順序對應FAT區中的FAT項,如對應的FAT項被使用,則該項被置為『1』,否則為『0』;當文件系統修改FAT項時,就將要修改的FAT項對應的簇號、FAT項的值、當前時間寫到數組FatCache[]的一個節點中;如FatCache[]中沒有對應節點或沒有屬性為NULL的節點,則找出FatCache[]中的LRU節點,將其值回寫進Disk,再將要改寫的FAT項對應的簇號、FAT項的值、當前時間寫到LRU節點中,上述的LRU指最近最少使用的節點;在寫FAT項的值進入對應的FAT項緩存節點時,如FAT項的值不為FREE,則要置位圖表中的對應位為『1』,表示該FAT項已被佔用;在回寫FAT項緩存節點中的FAT值到Disk中的FAT區的對應位置時,如FAT項的值為FREE,則要置位圖表中的對應位為『0』,表示該FAT項已被釋放,處於FREE狀態;當關閉或刷新文件時,文件系統會將FatCache[]中的有效內容寫入disk FAT區的對應位置。
2.按照權利要求1所述的在Flash存儲介質上關於文件分配表的緩存實現方法,其特徵在於FAT項緩存的實施方法包含以下三部分內容第一文件系統修改FAT項的實施方法;第二文件系統讀FAT項的實施方法;第三將FAT項緩存節點的FAT值寫入disk中FAT區的實施方法。
3.按照權利要求2所述的在Flash存儲介質上關於文件分配表的緩存實現方法,其特徵在於所述的文件系統修改FAT項的實施方法如下步驟一,先查找要修改的FAT項是否在結構數組FatCache中,如果命中,直將FAT項的值寫入結構數組FatCache對應的FAT項緩存節點中;如果沒有命中,轉下一步;步驟二,結構數組FatCache中是否有空閒項,如存在,則以空閒項作為要修改FAT項的緩存節點,並將位圖中的對應位置置為『1』;如果不存在,轉下一步;步驟三,在結構數組FatCache中找LRU項(Age最小),將該項的值回寫入Disk,如回寫的FAT值為Free,還應將回寫項在位圖中的對應位置為『0』。然後將數組中的該項改為要修改FAT項的緩存節點,再將要修改的FAT項在位圖中的對應位置為『1』。
4.按照權利要求2所述的在Flash存儲介質上關於文件分配表的緩存實現方法,其特徵在於所述的文件系統讀FAT項的實施方法如下查找要讀的FAT項是否在結構數組FatCache中,如果命中,則從結構數組FatCache對應的中讀出該FAT項的值;如果沒有命中,則從Disk的FAT表中讀出。
5.按照權利要求2所述的在Flash存儲介質上關於文件分配表的緩存實現方法,其特徵在於所述的將FAT項緩存節點的FAT值寫入disk中FAT區的實施方法如下步驟一,根據緩存節點的簇號確定對應的FAT項所在的目錄扇區及其在扇區中的位置,為敘述方便,稱該扇區為扇區A;步驟二,將扇區A的內容讀入扇區Buffer中;步驟三,根據簇號將其要回寫緩存節點的FAT值寫入扇區緩衝區的對應位置中,如FAT值為FREE,則要將簇號記錄在一數組DeletedLisk中;步驟四,在FatCache[]中查找,是否還有緩存節點對應的目錄扇區為扇區A,若存在,則根據簇號將其FAT值寫入扇區緩衝區的對應位置中,如FAT值為FREE,則要將簇號記錄在數組DeletedLisk中;步驟五,將扇區緩衝區中的內容寫入扇區A中;步驟六,在DeletedLisk中逐個查找有效簇號,根據簇號將位圖中的對應位置為0,釋放該簇。
全文摘要
本發明在Flash存儲介質上關於文件分配表的緩存實現方法發明的緩存針對單個的文件,當創建或打開文件時,就會創建一文件對象結構與之對應,在文件對象結構中有結構數組FatCache[FAT_CACHE_NUM]作為要修改的目錄項的緩存,FatCache數組中的每一項對應文件的一個FAT項,其結構包含簇號、簇對應的FAT項的值以及FAT項的修改時間,當文件系統修改FAT項時,就在FatCache[]找一節點,將要修改的FAT項對的簇號、FAT值、時間寫入對應的節點中,當關閉或刷新文件時,文件系統會將FatCache[]中的有效內容寫入disk FAT區的對應位置。本發明所需RAM資源較少,簡化了文件系統的掉電保護工作。
文檔編號G06F12/08GK1963810SQ200510117738
公開日2007年5月16日 申請日期2005年11月9日 優先權日2005年11月9日
發明者張學平 申請人:康佳集團股份有限公司

同类文章

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

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有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-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀