專利名稱:實(shí)現(xiàn)fat32文件系統(tǒng)的斷電保護(hù)方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及斷電保護(hù)領(lǐng)域,尤其涉及一種實(shí)現(xiàn)FAT32文件系統(tǒng)的斷電保護(hù)方法和
裝置ο
背景技術(shù):
目前,智能卡通常為微處理器卡,微處理器卡芯片的心臟是微處理器,它通常會(huì)有 四個(gè)附加模塊掩膜只讀存貯器(Read Only Memory,簡(jiǎn)稱ROM)、N0RFLASH、隨機(jī)存取存貯器 (Random Access Memory,簡(jiǎn)稱 RAM)禾口一個(gè) I/O 接口。高性能智能卡的一個(gè)最重要高性能就體現(xiàn)在“大容量存儲(chǔ)器”。高性能智能卡的大 容量存儲(chǔ)器除了包含RAM、NORFLASH等,還包括了 NANDFLASH,大容量卡由于引入NANDFLASH 作為數(shù)據(jù)的存儲(chǔ)介質(zhì),其存儲(chǔ)空間可以是上百兆或者更大。為了實(shí)現(xiàn)對(duì)大容量存儲(chǔ)器上數(shù) 據(jù)的安全管理,需要在大容量存儲(chǔ)器上實(shí)現(xiàn)文件系統(tǒng)來(lái)對(duì)數(shù)據(jù)進(jìn)行讀寫等操作,F(xiàn)AT文件系 統(tǒng)通過(guò)在NANDFLASH上定制FTL層的管理機(jī)制,屏蔽NANDFLASH操作的物理特性,對(duì)外實(shí)現(xiàn) 以扇區(qū)為操作的擦除讀寫操作,就可以利用標(biāo)準(zhǔn)的FAT32文件系統(tǒng)對(duì)NANDFLASH進(jìn)行數(shù)據(jù) 管理。由于智能卡寫操作必須保證其原子性,所謂寫操作原子性就是寫操作所涉及的操 作地址的若干數(shù)據(jù)要么全被更新,要么全部保持原狀態(tài)。因此對(duì)于NANDFLASH上的數(shù)據(jù)需 要做斷電保護(hù)。傳統(tǒng)FAT文件系統(tǒng)對(duì)外提供以文件為基本單位的操作接口,因此以文件為單位進(jìn) 行備份操作。即為修改的文件建立臨時(shí)文件,當(dāng)文件保存時(shí)再用臨時(shí)文件覆蓋原有文件。但 是這種操作會(huì)浪費(fèi)很多時(shí)間,因?yàn)楦略募r(shí)往往沒有被更新的地方的數(shù)據(jù)也被重新寫 了一遍。如果在臨時(shí)文件中只記錄哪些地方作了更新,以及更新的內(nèi)容,那么當(dāng)涉及到讀操 作時(shí),系統(tǒng)還要判斷當(dāng)前的操作地址的數(shù)據(jù)是不是已經(jīng)在臨時(shí)文件中被修改,當(dāng)某一個(gè)文 件被修改的數(shù)據(jù)很多時(shí),這種判斷所需的時(shí)間會(huì)越來(lái)越多。而且一個(gè)事務(wù)型的操作往往會(huì) 改很多文件,這種臨時(shí)文件的備份方法將很難滿足需求。較適宜的備份方法是在FTL層和文件系統(tǒng)之間實(shí)現(xiàn),文件系統(tǒng)層所有的寫操作最 終都會(huì)調(diào)用FTL層提供的接口,而這些接口都是以扇區(qū)為操作單位的。在存儲(chǔ)空間上開辟 一塊備份區(qū),那么一旦某一個(gè)事務(wù)操作需要做斷電保護(hù)就把所有需要被更新的扇區(qū)的原數(shù) 據(jù)備份到備份區(qū),同時(shí)作好日志,記錄好備份數(shù)據(jù)的對(duì)應(yīng)地址,當(dāng)事務(wù)操作結(jié)束時(shí)清除日 志。一旦在事務(wù)執(zhí)行過(guò)程中出現(xiàn)斷電,上電會(huì)把日志中的所有備份數(shù)據(jù)全部恢復(fù),這樣就保 證了操作的原子性。然而發(fā)明人在實(shí)現(xiàn)本發(fā)明技術(shù)方案時(shí)發(fā)現(xiàn),現(xiàn)有技術(shù)至少存在以下缺陷(1)寫操作由于要添加備份的原因速度很慢。理想狀態(tài)下,如果寫操作需要做備份,一共需要寫兩個(gè)扇區(qū)數(shù)據(jù)寫入地址所在扇 區(qū)和備份數(shù)據(jù)所在扇區(qū)。實(shí)際上每次備份都需要做日志,記錄備份數(shù)據(jù)的映射關(guān)系,這也是 需要寫到NANDFLASH上的。FTL層雖然屏蔽了 NANDFLASH的特性,實(shí)現(xiàn)了損耗均衡,為上層提供扇區(qū)操作接口,但物理上每次寫操作都要寫入1個(gè)BLOCK的數(shù)據(jù)(64K的字節(jié))。因此 每次添加的日志數(shù)據(jù)雖然可能只有幾個(gè)字節(jié),但實(shí)際上卻增加了 1次寫操作的時(shí)間。也就 是1次寫操作耗費(fèi)3次寫操作的時(shí)間。
(2)輪詢判斷時(shí)間長(zhǎng)。 添加備份時(shí)需要遍歷已經(jīng)添加過(guò)的所有日志項(xiàng)。這樣如果操作地址的原數(shù)據(jù)已經(jīng) 做過(guò)備份就無(wú)須再做備份,這樣可以節(jié)省2次寫操作的時(shí)間(日志和數(shù)據(jù)備份的操作)。但 是輪詢需要對(duì)NANDFLASH進(jìn)行讀操作。這個(gè)操作時(shí)間是不能忽略不計(jì)的,如果添加的備份 項(xiàng)過(guò)多,讀操作積累的時(shí)間也是很長(zhǎng)的,這樣整個(gè)寫操作同樣會(huì)很慢。(3)所需內(nèi)存大。如果在內(nèi)存中為備份日志開辟緩沖區(qū)用來(lái)做輪詢判斷可以節(jié)省時(shí)間,但是FAT文 件系統(tǒng)和FTL層已經(jīng)占用了很大的內(nèi)存,再增加內(nèi)存使用量對(duì)于只有幾十K內(nèi)存的智能卡 來(lái)說(shuō)是難以接受的。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問(wèn)題在于提供一種FAT32文件系統(tǒng)的斷電保護(hù)方法和裝 置,在保證斷電保護(hù)的前提下,加快了寫操作的速度,并且減少了每次寫操作的時(shí)間。為解決上述技術(shù)問(wèn)題,本發(fā)明實(shí)現(xiàn)FAT32文件系統(tǒng)的斷電保護(hù)方法和裝置采用如 下技術(shù)方案將寫操作的操作地址所在扇區(qū)的數(shù)據(jù)備份到NANDFLASH上FAT32的數(shù)據(jù)備份區(qū) 中;在存儲(chǔ)于N0RFLASH上的FAT32的備份信息區(qū)中添加備份項(xiàng)和備份信息扇區(qū)有效 標(biāo)志;進(jìn)行寫操作,將更新數(shù)據(jù)寫入所述操作地址。一種實(shí)現(xiàn)FAT32文件系統(tǒng)的斷電保護(hù)裝置,包括數(shù)據(jù)備份單元、備份信息單元和 寫操作單元,其中,所述數(shù)據(jù)備份單元用于將寫操作的操作地址所在扇區(qū)的數(shù)據(jù)備份到NANDFLASH 上FAT32的數(shù)據(jù)備份區(qū)中;所述備份信息單元用于在存儲(chǔ)于N0RFLASH上的FAT32的備份信息區(qū)中添加備份 項(xiàng)和備份信息扇區(qū)有效標(biāo)志;所述寫操作單元用于進(jìn)行寫操作,將更新數(shù)據(jù)寫入所述操作地址。本發(fā)明實(shí)施例提供的實(shí)現(xiàn)FAT32文件系統(tǒng)的斷電保護(hù)方法和裝置,通過(guò)將FAT32 的數(shù)據(jù)備份到NANDFLASH上,而將FAT32的備份項(xiàng)和備份信息扇區(qū)有效標(biāo)志添加到 N0RFLASH中,即將FAT32用于存放備份項(xiàng)的備份信息區(qū)由N0RFLASH實(shí)現(xiàn),而將FAT32用于 備份數(shù)據(jù)的數(shù)據(jù)備份區(qū)由NANDFLASH實(shí)現(xiàn),在保證斷電保護(hù)的前提下,加快了寫操作的速 度,并且減少了每次寫操作的時(shí)間。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例描述 中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附 圖獲得其他的附圖。圖1為本發(fā)明實(shí)施例一實(shí)現(xiàn)FAT32文件系統(tǒng)的斷電保護(hù)方法的流程示意圖;圖2為本發(fā)明實(shí)施例一 NANDFLASH上文件系統(tǒng)的分層結(jié)構(gòu)示意圖;圖3為本發(fā)明實(shí)施例一實(shí)現(xiàn)FAT32文件系統(tǒng)的斷電保護(hù)裝置結(jié)構(gòu)示意圖;圖4為本發(fā)明實(shí)施例二實(shí)現(xiàn)FAT32文件系統(tǒng)的斷電保護(hù)方法的流程示意圖;圖5為本發(fā)明實(shí)施例二實(shí)現(xiàn)FAT32文件系統(tǒng)的斷電保護(hù)裝置結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā) 明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施 例,都屬于本發(fā)明保護(hù)的范圍。扇區(qū)磁盤上最小可尋址存儲(chǔ)單元稱為扇區(qū),通常每個(gè)扇區(qū)為512個(gè)字節(jié)(或字 符)。DBR區(qū)即操作系統(tǒng)引導(dǎo)記錄區(qū)的意思,通常占用分區(qū)的第0扇區(qū)共512個(gè)字節(jié) (特殊情況也要占用其它保留扇區(qū),我們先說(shuō)第0扇)。在這512個(gè)字節(jié)中,其實(shí)又是由跳 轉(zhuǎn)指令,廠商標(biāo)志和操作系統(tǒng)版本號(hào),BPB (BIOS Parameter Block),擴(kuò)展BPB,os引導(dǎo)程序, 結(jié)束標(biāo)志幾部分組成。以用的最多的FAT32為例說(shuō)明分區(qū)DBR各字節(jié)的含義。簇磁盤上最小可尋址存儲(chǔ)單元稱為扇區(qū),通常每個(gè)扇區(qū)為512個(gè)字節(jié)(或字 符)。由于多數(shù)文件比扇區(qū)大得多,因此如果對(duì)一個(gè)文件分配最小的存儲(chǔ)空間,將使存儲(chǔ)器 能存儲(chǔ)更多數(shù)據(jù),這個(gè)最小存儲(chǔ)空間即稱為簇。根據(jù)存儲(chǔ)設(shè)備(磁盤、閃卡和硬盤)的容量, 簇的大小可以不同以使存儲(chǔ)空間得到最有效的應(yīng)用。文件配置表一個(gè)分區(qū)分成同等大小的簇,也就是連續(xù)空間的小塊。簇的大小隨著FAT文件系 統(tǒng)的類型以及分區(qū)大小而不同,典型的簇大小介于2KB到32KB之間。每個(gè)文件根據(jù)它的大 小可能占有一個(gè)或者多個(gè)簇;這樣,一個(gè)文件就由這些(稱為單鏈表)簇鏈表示。然而,這 些鏈并不一定一個(gè)接著一個(gè)在磁盤上存儲(chǔ),它們經(jīng)常是在整個(gè)數(shù)據(jù)區(qū)域零散的儲(chǔ)存。文件分配表(FAT)是映射到分區(qū)每個(gè)簇的條目列表。每個(gè)條目記錄下面五種信息 中的一種。鏈中下一個(gè)簇的地址一個(gè)特殊的文件結(jié)束符(EOF)符號(hào)指示鏈的結(jié)束一個(gè)特殊的符號(hào)標(biāo)示壞簇一個(gè)特殊的符號(hào)標(biāo)示保留簇0來(lái)表示空閑簇每個(gè)版本的FAT文件系統(tǒng)使用不同大小的FAT條目。這個(gè)大小已經(jīng)由名字表示出 來(lái),例如FAT16文件系統(tǒng)的每個(gè)條目使用16位表示,32位文件系統(tǒng)使用32位表示。這個(gè)不 同意味著FAT32系統(tǒng)的文件分配表能比FAT16映射更多的簇,它也允許FAT32有更大的分 區(qū)大小。這也使得FAT32比FAT16更能有效地利用磁盤空間,因?yàn)槊總€(gè)驅(qū)動(dòng)器能夠?qū)ぶ犯〉拇?,這也就意味著更少的空間浪費(fèi)。為了便于說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,首先介紹一下N0RFLASH的物理特性,N0RFLASH上的每一位(bit)可以被寫操作置成邏輯0。而把邏輯0置成邏輯1卻不能按位 (bit)來(lái)操作,只能按擦寫塊(erase block)為單位進(jìn)行擦寫操作。一般來(lái)說(shuō),“N0RFLASH 擦寫塊最小單位大小是256bytes。從上層來(lái)看,擦寫所完成的功能就是把擦寫塊內(nèi)的每一 位都重設(shè)置(reset)成邏輯1。N0RFLASH的寫操作的最小單位可以是1個(gè)字節(jié)或4個(gè)字節(jié),速度通常為微秒級(jí)。 而讀操作是可以直接尋址相當(dāng)于內(nèi)存中的讀操作,速度非???,時(shí)間可以忽略不計(jì)。正是由于N0RFLASH的物理特性,N0RFLASH在智能卡中往往既做程序存儲(chǔ)區(qū),又做 數(shù)據(jù)存儲(chǔ)區(qū),它是必然存在的。本發(fā)明實(shí)施例提供一種實(shí)現(xiàn)FAT32文件系統(tǒng)的斷電保護(hù)方法和裝置,在保證斷電 保護(hù)的前提下,加快了寫操作的速度,并且減少了每次寫操作的時(shí)間。實(shí)施例一本發(fā)明實(shí)施例提供一種實(shí)現(xiàn)FAT32文件系統(tǒng)的斷電保護(hù)方法,如圖1所示,該方法 包括步驟1、將寫操作的操作地址所在扇區(qū)的數(shù)據(jù)備份到NANDFLASH上的FAT32的數(shù)據(jù) 備份區(qū)中;單個(gè)應(yīng)用操作涉及文件系統(tǒng)的操作可能有很多,因此斷電保護(hù)要實(shí)現(xiàn)事務(wù)級(jí)。因 此,在作備份的時(shí)候,邏輯上會(huì)有很多扇區(qū)需要涉及寫操作,而往往這些扇區(qū)都要做備份。
如圖2所示,NANDFLASH經(jīng)過(guò)FTL層的處理對(duì)NANDFLASH訪問(wèn)的基本單位為扇區(qū), 無(wú)論操作的數(shù)據(jù)多少,至少要進(jìn)行一個(gè)扇區(qū)的操作,因此可以設(shè)定備份最小單位為扇區(qū)。由 于事務(wù)性的操作往往需要操作很多扇區(qū),這些扇區(qū)在事務(wù)操作過(guò)程中都是需要做備份的, 需要找一個(gè)固定的區(qū)域作為扇區(qū)備份區(qū)來(lái)放置。表 1 如表1所示,F(xiàn)AT32文件系統(tǒng)存放在NANDFLASH上,F(xiàn)AT32文件系統(tǒng)負(fù)責(zé)管理除了 保留區(qū)之外的其它區(qū)域,因此可以將保留區(qū)作為扇區(qū)備份區(qū)。在本發(fā)明實(shí)施例中,需要將 寫操作的操作地址所在扇區(qū)的數(shù)據(jù)備份到NANDFLASH中,因此,可以將NANDFLASH上FAT32 的保留區(qū)作為數(shù)據(jù)備份區(qū),保留區(qū)的大小可以通過(guò)引導(dǎo)扇區(qū)的BPB部分的參數(shù)指定,最大 65535個(gè)扇區(qū),這對(duì)卡片應(yīng)用來(lái)講是足夠大的,因此只需要實(shí)現(xiàn)根據(jù)需求設(shè)定保留區(qū)的大小 即可。步驟2、在存儲(chǔ)于N0RFLASH上的FAT32的備份信息區(qū)中添加備份項(xiàng)和備份信息扇 區(qū)有效標(biāo)志;
由于在備份過(guò)程需要添加日志,來(lái)指定備份區(qū)的扇區(qū)數(shù)據(jù)和源操作地址所在扇區(qū) 的對(duì)應(yīng)關(guān)系,這些日志稱為備份項(xiàng)。利用N0RFLASH的物理特性,可以在N0RFLASH開辟一塊 區(qū)域用來(lái)放置FAT32文件系統(tǒng)的備份項(xiàng),同樣地,可以利用N0RFLASH上的保留區(qū)放置備份 項(xiàng)和備份信息扇區(qū)有效標(biāo)志,即在N0RFLASH上指定一塊區(qū)域作為備份信息區(qū)。這種技術(shù)方 案至少具備三個(gè)優(yōu)點(diǎn)其一、備份項(xiàng)只有幾個(gè)字節(jié),一個(gè)事務(wù)級(jí)操作產(chǎn)生的備份項(xiàng)占用的區(qū)域不會(huì)很大, 對(duì)于容量為幾百K的N0RFLASH來(lái)講是可以接受的;其二、添加備份項(xiàng)只需要在N0RFLASH上進(jìn)行字節(jié)寫操作,操作速度很快,相對(duì)于 NANDFLASH的寫操作的時(shí)間可以忽略不計(jì);其三、添加備份項(xiàng)之前要判斷該備份項(xiàng)是否被添加過(guò)(操作扇區(qū)是否已經(jīng)有過(guò)備 份),這需要遍歷查找之前添加的所有備份項(xiàng),由于N0RFLASH的讀操作相當(dāng)于內(nèi)存上的讀 操作,因此速度會(huì)很快。步驟3、進(jìn)行寫操作,將更新數(shù)據(jù)寫入所述操作地址。本發(fā)明實(shí)施例還提供一種實(shí)現(xiàn)FAT32文件系統(tǒng)的斷電保護(hù)裝置,如圖3所示,該裝 置包括數(shù)據(jù)備份單元1、備份信息單元2和寫操作單元3,其中,所述數(shù)據(jù)備份單元1用于將寫操作的操作地址所在扇區(qū)的數(shù)據(jù)備份到NANDFLASH 上的FAT32的數(shù)據(jù)備份區(qū)中;所述備份信息單元2用于在存儲(chǔ)于N0RFLASH上的FAT32的備 份信息區(qū)中添加備份項(xiàng)和備份信息扇區(qū)有效標(biāo)志;所述寫操作單元3用于進(jìn)行寫操作,將 更新數(shù)據(jù)寫入所述操作地址。本發(fā)明實(shí)施例提供的實(shí)現(xiàn)FAT32文件系統(tǒng)的斷電保護(hù)方法和裝置,通過(guò)將FAT32 的數(shù)據(jù)備份到NANDFLASH上,而將FAT32的備份項(xiàng)和備份信息扇區(qū)有效標(biāo)志添加到 N0RFLASH中,即將FAT32用于存放備份項(xiàng)的備份信息區(qū)由N0RFLASH實(shí)現(xiàn),而將FAT32用于 備份數(shù)據(jù)的數(shù)據(jù)備份區(qū)由NANDFLASH實(shí)現(xiàn),在保證斷電保護(hù)的前提下,加快了寫操作的速 度,并且減少了每次寫操作的時(shí)間。實(shí)施例二本發(fā)明實(shí)施例提供一種實(shí)現(xiàn)FAT32文件系統(tǒng)的斷電保護(hù)方法,如圖4所示,該方法 包括步驟11、判斷寫操作的操作地址所在扇區(qū)是否添加過(guò)備份,若添加過(guò)備份,則執(zhí)行 步驟17 ;未添加過(guò)備份,則執(zhí)行步驟12 ;在事物開始時(shí),首先需要判斷是否有寫操作,若有寫操作,再繼續(xù)執(zhí)行下一步,若 沒有寫操作,則執(zhí)行寫操作以外的其他操作。在此之后,可以進(jìn)一步判斷是否還有其他寫操 作,若沒有其他寫操作,則擦除備份信息扇區(qū),若有其他寫操作,則執(zhí)行下一步。步驟12、在NANDFLASH上FAT32的保留區(qū)中找到一個(gè)可用的數(shù)據(jù)備份區(qū);數(shù)據(jù)備份區(qū)通過(guò)所述NANDFLASH上FAT32的保留區(qū)實(shí)現(xiàn)。FAT32文件系統(tǒng)負(fù)責(zé)管理除了保留區(qū)之外的其它區(qū)域,因此可以將保留區(qū)作為扇 區(qū)備份區(qū)。在本步驟中,需要將寫操作的操作地址所在扇區(qū)的數(shù)據(jù)備份到NANDFLASH中,因 此,可以將保留區(qū)作為數(shù)據(jù)備份區(qū),保留區(qū)的大小可以通過(guò)引導(dǎo)扇區(qū)的BPB部分的參數(shù)指 定,最大65535個(gè)扇區(qū),這對(duì)卡片應(yīng)用來(lái)講是足夠大的,因此只需要實(shí)現(xiàn)根據(jù)需求設(shè)定保留 區(qū)的大小即可。
步驟13、將寫操作的操作地址所在扇區(qū)的數(shù)據(jù)備份到NANDFLASH上FAT32的數(shù)據(jù) 備份區(qū)中;將寫操作的操作地址所在扇區(qū)的數(shù)據(jù)備份到NANDFLASH上FAT32的充當(dāng)數(shù)據(jù)備份 區(qū)的保留區(qū)中,即該數(shù)據(jù)備份區(qū)的功能通過(guò)NANDFLASH上FAT32的保留區(qū)實(shí)現(xiàn)。步驟14、在N0RFLASH的備份信息區(qū)中添加備份項(xiàng);對(duì)應(yīng)需要添加備份的寫操作來(lái)說(shuō),每次寫操作都要添加一個(gè)備份扇區(qū)和一個(gè)備份 項(xiàng)。備份信息區(qū)是由若干備份項(xiàng)和備份扇區(qū)有效標(biāo)志組成的,N0RFLASH每頁(yè)256字節(jié),將 備份信息區(qū)所占的頁(yè)叫做備份信息扇區(qū)。由于這個(gè)區(qū)域是不能由N0RFLASH的文件系統(tǒng) 操作的,因此需在N0RFLASH上指定一個(gè)保留區(qū)作為FAT32的備份信息區(qū),把備份項(xiàng)添加 在N0RFLASH上指定的作為FAT32備份信息區(qū)的一塊區(qū)域內(nèi),即將備份信息區(qū)的功能通過(guò) N0RFLASH上的保留區(qū)實(shí)現(xiàn)。每個(gè)備份項(xiàng)都由備份有效標(biāo)志和備份對(duì)應(yīng)關(guān)系組成,為了確保備份項(xiàng)的有效性還 對(duì)備份項(xiàng)添加了校驗(yàn)。每個(gè)備份項(xiàng)數(shù)據(jù)結(jié)構(gòu)如表2所示表2
名稱備份項(xiàng)有效標(biāo)志備份扇區(qū)地址目的操作扇區(qū)地址校驗(yàn)大小(字節(jié))1232步驟15、判斷在N0RFLASH上的FAT32的備份信息區(qū)是否已經(jīng)添加了所述備份信息 扇區(qū)有效標(biāo)志,若已經(jīng)添加了所述備份信息扇區(qū)有效標(biāo)志,則執(zhí)行步驟17 ;若未添加所述 備份信息扇區(qū)有效標(biāo)志,則執(zhí)行步驟16。步驟16、在N0RFLASH上的FAT32的備份信息區(qū)中添加備份信息扇區(qū)有效標(biāo)志;備份信息扇區(qū)有效標(biāo)志為整個(gè)FAT32文件系統(tǒng)層備份的有效標(biāo)志,位于備份信息 扇區(qū)的0地址處,也就是在所有備份項(xiàng)的前面,位置固定,OxAA表示有效。FAT32的備份信息扇區(qū)的數(shù)據(jù)結(jié)構(gòu)如表3所示表3 步驟17、進(jìn)行寫操作,將更新數(shù)據(jù)寫入所述操作地址。本發(fā)明實(shí)施例還提供一種實(shí)現(xiàn)FAT32文件系統(tǒng)的斷電保護(hù)裝置,如圖5所示,該裝 置包括數(shù)據(jù)備份單元1、備份信息單元2和寫操作單元3,其中,所述數(shù)據(jù)備份單元1用于將寫操作的操作地址所在扇區(qū)的數(shù)據(jù)備份到NANDFLASH 上FAT32的數(shù)據(jù)備份區(qū)中;所述備份信息單元2用于在存儲(chǔ)于N0RFLASH上的FAT32的備份 信息區(qū)中添加備份項(xiàng)和備份信息扇區(qū)有效標(biāo)志;所述寫操作單元3用于進(jìn)行寫操作,將更 新數(shù)據(jù)寫入所述操作地址。其中,所述數(shù)據(jù)備份區(qū)的功能通過(guò)所述NANDFLASH上FAT32的保留區(qū)實(shí)現(xiàn);所述備份信息區(qū)的功能通過(guò)所述N0RFLASH上的保留區(qū)實(shí)現(xiàn)。進(jìn)一步地,該裝置還包括數(shù)據(jù)備份區(qū)單元4和備份判斷單元5,其中,所述數(shù)據(jù)備份區(qū)單元4用于在NANDFLASH上FAT32的保留區(qū)中找到一個(gè)可用的數(shù) 據(jù)備份區(qū);所述備份判斷單元5用于判斷寫操作的操作地址所在扇區(qū)是否添加過(guò)備份,若 添加過(guò)備份,則調(diào)用所述寫操作單元3 ;若未添加過(guò)備份,則調(diào)用所述數(shù)據(jù)備份區(qū)單元1。再進(jìn)一步地,所述備份信息單元2包括備份項(xiàng)模塊21和有效標(biāo)志模塊22,其中,所述備份項(xiàng)模塊21用于在N0RFLASH上FAT32的備份信息區(qū)中添加備份項(xiàng);所述有效標(biāo)志模塊22用于在N0RFLASH上FAT32的備份信息區(qū)中添加備份信息扇 區(qū)有效標(biāo)志。本發(fā)明實(shí)施例提供的實(shí)現(xiàn)FAT32文件系統(tǒng)的斷電保護(hù)方法和裝置,通過(guò)將FAT32 的數(shù)據(jù)備份到NANDFLASH上,而將FAT32的備份項(xiàng)和備份信息扇區(qū)有效標(biāo)志添加到 N0RFLASH中,即將FAT32的備份信息區(qū)的功能由N0RFLASH的保留區(qū)實(shí)現(xiàn),而將FAT32的數(shù) 據(jù)備份區(qū)由NANDFLASH上FAT32的保留區(qū)實(shí)現(xiàn),在保證斷電保護(hù)的前提下,加快了寫操作的 速度,并且減少了每次寫操作的時(shí)間。本領(lǐng)域普通技術(shù)人員可以意識(shí)到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單 元及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來(lái)實(shí)現(xiàn),為了清楚地說(shuō)明硬件 和軟件的可互換性,在上述說(shuō)明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這 些功能究竟以硬件還是軟件方式來(lái)執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專 業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來(lái)使用不同方法來(lái)實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不 應(yīng)認(rèn)為超出本發(fā)明的范圍。結(jié)合本文中所公開的實(shí)施例描述的方法或算法的步驟可以用硬件、處理器執(zhí)行的 軟件模塊,或者二者的結(jié)合來(lái)實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(RAM)、內(nèi)存、只讀存儲(chǔ)器 (ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動(dòng)磁盤、CD-ROM、或技術(shù)領(lǐng)域 內(nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。以上所述,僅為本發(fā)明的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,任何 熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵 蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
一種實(shí)現(xiàn)FAT32文件系統(tǒng)的斷電保護(hù)方法,其特征在于,包括將寫操作的操作地址所在扇區(qū)的數(shù)據(jù)備份到NANDFLASH上FAT32的數(shù)據(jù)備份區(qū)中;在存儲(chǔ)于NORFLASH上的FAT32的備份信息區(qū)中添加備份項(xiàng)和備份信息扇區(qū)有效標(biāo)志;進(jìn)行寫操作,將更新數(shù)據(jù)寫入所述操作地址。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述數(shù)據(jù)備份區(qū)的功能通過(guò)所述 NANDFLASH上FAT32的保留區(qū)實(shí)現(xiàn);所述備份信息區(qū)的功能通過(guò)所述N0RFLASH上的保留區(qū) 實(shí)現(xiàn)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,在所述將寫操作的操作地址所在扇區(qū)的 數(shù)據(jù)備份到NANDFLASH上FAT32的數(shù)據(jù)備份區(qū)中之前還包括在NANDFLASH上FAT32的保留區(qū)中找到一個(gè)可用的數(shù)據(jù)備份區(qū)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,在所述在NANDFLASH上FAT32的保留區(qū)中 找到一個(gè)可用的數(shù)據(jù)備份區(qū)之前還包括判斷寫操作的操作地址所在扇區(qū)是否添加過(guò)備份; 若添加過(guò)備份,則執(zhí)行所述進(jìn)行寫操作,將更新數(shù)據(jù)寫入所述操作地址; 若未添加過(guò)備份,則執(zhí)行所述在NANDFLASH上FAT32的保留區(qū)中找到一個(gè)可用的數(shù)據(jù) 備份區(qū)。
5.根據(jù)權(quán)利要求2、3或4任一權(quán)利要求所述的方法,其特征在于,所述在存儲(chǔ)于 N0RFLASH上的FAT32的備份信息區(qū)中添加備份項(xiàng)和備份信息扇區(qū)有效標(biāo)志包括在N0RFLASH上的FAT32的備份信息區(qū)中添加備份項(xiàng); 在N0RFLASH上的FAT32的備份信息區(qū)中添加備份信息扇區(qū)有效標(biāo)志。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述在N0RFLASH上的FAT32的備份信息 區(qū)中添加備份信息扇區(qū)有效標(biāo)志包括判斷在N0RFLASH上的FAT32的備份信息區(qū)是否已經(jīng)添加了所述備份信息扇區(qū)有效標(biāo)志;若已經(jīng)添加了所述備份信息扇區(qū)有效標(biāo)志,則執(zhí)行所述進(jìn)行寫操作,將更新數(shù)據(jù)寫入 所述操作地址;若未添加所述備份信息扇區(qū)有效標(biāo)志,則在所述N0RFLASH上的FAT32的備份信息區(qū)中 添加所述備份信息扇區(qū)有效標(biāo)志。
7.一種實(shí)現(xiàn)FAT32文件系統(tǒng)的斷電保護(hù)裝置,其特征在于,包括數(shù)據(jù)備份單元、備份 信息單元和寫操作單元,其中,所述數(shù)據(jù)備份單元用于將寫操作的操作地址所在扇區(qū)的數(shù)據(jù)備份到NANDFLASH上 FAT32的數(shù)據(jù)備份區(qū)中;所述備份信息單元用于在存儲(chǔ)于N0RFLASH上的FAT32的備份信息區(qū)中添加備份項(xiàng)和 備份信息扇區(qū)有效標(biāo)志;所述寫操作單元用于進(jìn)行寫操作,將更新數(shù)據(jù)寫入所述操作地址。
8.根據(jù)所述權(quán)利要求7所述的裝置,其特征在于,所述數(shù)據(jù)備份區(qū)的功能通過(guò)所述 NANDFLASH上FAT32的保留區(qū)實(shí)現(xiàn);所述備份信息區(qū)的功能通過(guò)所述N0RFLASH上的保留區(qū) 實(shí)現(xiàn)。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,還包括數(shù)據(jù)備份區(qū)單元和備份判斷單 元,其中,所述數(shù)據(jù)備份區(qū)單元用于在NANDFLASH上FAT32的保留區(qū)中找到一個(gè)可用的數(shù)據(jù)備份區(qū);所述備份判斷單元用于判斷寫操作的操作地址所在扇區(qū)是否添加過(guò)備份,若添加過(guò)備 份,則調(diào)用所述寫操作單元;若未添加過(guò)備份,則調(diào)用所述數(shù)據(jù)備份區(qū)單元。
10.根據(jù)權(quán)利要求7或8所述的裝置,其特征在于,所述備份信息單元包括備份項(xiàng)模 塊和有效標(biāo)志模塊,其中,所述備份項(xiàng)模塊用于在N0RFLASH上的FAT32的備份信息區(qū)中添加備份項(xiàng); 所述有效標(biāo)志模塊用于在N0RFLASH上的FAT32的備份信息區(qū)中添加備份信息扇區(qū)有 效標(biāo)志。
全文摘要
本發(fā)明公開了一種實(shí)現(xiàn)FAT32文件系統(tǒng)的斷電保護(hù)方法和裝置,涉及斷電保護(hù)領(lǐng)域,在保證斷電保護(hù)的前提下,加快了寫操作的速度,并且減少了每次寫操作的時(shí)間。方法包括將寫操作的操作地址所在扇區(qū)的數(shù)據(jù)備份到NANDFLASH上FAT32的數(shù)據(jù)備份區(qū)中;在存儲(chǔ)于NORFLASH上的FAT32的備份信息區(qū)中添加備份項(xiàng)和備份信息扇區(qū)有效標(biāo)志;進(jìn)行寫操作,將更新數(shù)據(jù)寫入所述操作地址。本發(fā)明應(yīng)用于實(shí)現(xiàn)FAT32文件系統(tǒng)的斷電保護(hù)。
文檔編號(hào)G06F11/14GK101876927SQ20091023867
公開日2010年11月3日 申請(qǐng)日期2009年11月30日 優(yōu)先權(quán)日2009年11月30日
發(fā)明者張楠, 楊貴龍 申請(qǐng)人:北京握奇數(shù)據(jù)系統(tǒng)有限公司