專(zhuān)利名稱(chēng):一種閃存文件的讀取和更新方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于存儲(chǔ)技術(shù)領(lǐng)域,尤其涉及一種閃存文件讀取和更新方法及系統(tǒng)。
背景技術(shù):
NOR FLASH和NAND FLASH是現(xiàn)在市場(chǎng)上兩種主要的非易失閃存技術(shù)。NOR FLASH適合存儲(chǔ)數(shù)據(jù)量較小的代碼、數(shù)據(jù)等,嵌入式程序可以以芯片內(nèi)執(zhí)行(Execute In Place,XIP)的方式執(zhí)行,使得應(yīng)用程序可以直接在閃存內(nèi)運(yùn)行,無(wú)須將代碼讀到系統(tǒng)內(nèi)存中執(zhí)行。目前現(xiàn)有閃存文件系統(tǒng)(例如FAT32、JFFS2等)功能比較齊全,然而現(xiàn)有閃存文件系統(tǒng)掉電恢復(fù)能力差,系統(tǒng)需要較大的內(nèi)存支持,其本身程序占用的空間大,導(dǎo)致閃存的空間利用率低,數(shù)據(jù)讀寫(xiě)操作繁瑣,數(shù)據(jù)安全性差。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例的目的在于提供一種閃存文件讀取和更新方法及系統(tǒng),旨在解決由于目前現(xiàn)有閃存文件系統(tǒng)掉電恢復(fù)能力差,系統(tǒng)需要較大的內(nèi)存支持,其本身程序占用的空間大,導(dǎo)致閃存的空間利用率低,數(shù)據(jù)讀寫(xiě)操作繁瑣,數(shù)據(jù)安全性差的問(wèn)題。本發(fā)明實(shí)施例是這樣實(shí)現(xiàn)的,一種閃存文件讀取方法,所述方法包括下述步驟將輸入的文件名與文件系統(tǒng)的文件控制信息中的文件名進(jìn)行匹配,所述文件控制信息中的文件狀態(tài)標(biāo)識(shí)信息為文件有效標(biāo)識(shí);從匹配的文件名所在的文件控制信息中獲取文件的簇地址信息;根據(jù)輸入的文件讀取方式返回文件的簇地址信息或所述簇地址信息對(duì)應(yīng)簇存儲(chǔ)的文件數(shù)據(jù)。本發(fā)明實(shí)施例的另一目的在于提供一種閃存文件讀取系統(tǒng),所述系統(tǒng)包括文件名匹配單元,用于將輸入的文件名與文件系統(tǒng)的文件控制信息中的文件名進(jìn)行匹配,所述文件控制信息中的文件狀態(tài)標(biāo)識(shí)信息為文件有效標(biāo)識(shí);信息獲取單元,用于從匹配的文件名所在的文件控制信息中獲取文件的簇地址信息;以及文件數(shù)據(jù)返回單元,用于根據(jù)輸入的文件讀取方式返回文件的簇地址信息或所述簇地址信息對(duì)應(yīng)簇存儲(chǔ)的文件數(shù)據(jù)。本發(fā)明實(shí)施例的另一目的在于提供一種閃存文件更新方法,所述方法包括下述步驟根據(jù)文件更新指令中待更新文件的文件名將文件系統(tǒng)中所述待更新文件的文件控制信息中的文件狀態(tài)標(biāo)識(shí)信息設(shè)置為文件操作標(biāo)識(shí);為所述待更 新文件重新分配簇,將所述文件狀態(tài)標(biāo)識(shí)信息設(shè)置為文件寫(xiě)入標(biāo)識(shí),將所述待更新文件的文件數(shù)據(jù)寫(xiě)入到重新分配的簇;更新文件系統(tǒng)中所述待更新文件的簇地址信息,所述簇地址信息位于文件系統(tǒng)中的文件控制信息中。
本發(fā)明實(shí)施例的另一目的在于提供一種閃存文件更新系統(tǒng),所述系統(tǒng)包括第二標(biāo)識(shí)設(shè)置子單元,用于根據(jù)文件更新指令中待更新文件的文件名將文件系統(tǒng)中所述待更新文件的文件控制信息中的文件狀態(tài)標(biāo)識(shí)信息設(shè)置為文件操作標(biāo)識(shí);數(shù)據(jù)寫(xiě)入單元,用于為所述待更新文件重新分配簇,將所述文件狀態(tài)標(biāo)識(shí)信息設(shè)置為文件寫(xiě)入標(biāo)識(shí),將所述待更新文件的文件數(shù)據(jù)寫(xiě)入到重新分配的簇;以及簇地址信息更新單元,用于更新文件系統(tǒng)中所述待更新文件的簇地址信息,所述簇地址信息位于文件系統(tǒng)中的文件控制信息中。
本發(fā)明實(shí)施例在讀取閃存文件時(shí),將輸入的文件名與文件系統(tǒng)的文件控制信息中的文件名進(jìn)行匹配,從匹配的文件名所在的文件控制信息中獲取文件的簇地址信息,根據(jù)輸入的文件讀取方式返回文件的簇地址信息或簇地址信息對(duì)應(yīng)簇存儲(chǔ)的文件數(shù)據(jù),當(dāng)更新閃存文件時(shí),將文件系統(tǒng)中待更新文件的文件控制信息中的文件狀態(tài)標(biāo)識(shí)信息設(shè)置為文件操作標(biāo)識(shí),為待更新文件重新分配簇,將文件狀態(tài)標(biāo)識(shí)信息設(shè)置為文件寫(xiě)入標(biāo)識(shí),將待更新文件的文件數(shù)據(jù)寫(xiě)入到重新分配的簇,更新文件系統(tǒng)中待更新文件的簇地址信息,本發(fā)明實(shí)施例根據(jù)文件讀取方式進(jìn)行文件的讀取,提高了文件系統(tǒng)存儲(chǔ)空間的利用率、以及文件的讀取效率,在更新文件時(shí),采用重新分配存儲(chǔ)空間的方式進(jìn)行文件的更新,不擦除原文件,從而為文件更新過(guò)程中的掉電恢復(fù)提供了保障,同進(jìn),提高了文件寫(xiě)入的速度。
圖I是本發(fā)明第一實(shí)施例提供的閃存文件讀取方法的實(shí)現(xiàn)流程圖;圖2是本發(fā)明第二實(shí)施例提供的閃存文件讀取系統(tǒng)的結(jié)構(gòu)圖;圖3是本發(fā)明第三實(shí)施例提供的閃存文件更新方法的實(shí)現(xiàn)流程圖;圖4是本發(fā)明第四實(shí)施例提供的閃存文件更新系統(tǒng)的結(jié)構(gòu)圖;圖5是本發(fā)明第五實(shí)施例提供的閃存文件系統(tǒng)的具體實(shí)例的結(jié)構(gòu)圖。
具體實(shí)施例方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。本發(fā)明實(shí)施例在讀取文件數(shù)據(jù)時(shí),根據(jù)輸入的文件讀取方式進(jìn)行文件的讀取,提高了文件系統(tǒng)存儲(chǔ)空間的利用率、以及文件的讀取效率,在更新文件時(shí),采用重新分配存儲(chǔ)空間的方式進(jìn)行文件的更新,不擦除原文件,從而為文件更新過(guò)程中的掉電恢復(fù)提供了保障,同進(jìn),提高了文件寫(xiě)入的速度。本發(fā)明實(shí)施例提供了一種閃存文件讀取方法,所述方法包括下述步驟將輸入的文件名與文件系統(tǒng)的文件控制信息中的文件名進(jìn)行匹配,所述文件控制信息中的文件狀態(tài)標(biāo)識(shí)信息為文件有效標(biāo)識(shí);從匹配的文件名所在的文件控制信息中獲取文件的簇地址信息;根據(jù)輸入的文件讀取方式返回文件的簇地址信息或所述簇地址信息對(duì)應(yīng)簇存儲(chǔ)的文件數(shù)據(jù)。本發(fā)明實(shí)施例還提供了一種閃存文件讀取系統(tǒng),所述系統(tǒng)包括
文件名匹配單元,用于將輸入的文件名與文件系統(tǒng)的文件控制信息中的文件名進(jìn)行匹配,所述文件控制信息中的文件狀態(tài)標(biāo)識(shí)信息為文件有效標(biāo)識(shí);信息獲取單元,用于從匹配的文件名所在的文件控制信息中獲取文件的簇地址信息;以及文件數(shù)據(jù)返回單元,用于根據(jù)輸入的文件讀取方式返回文件的簇地址信息或所述簇地址信息對(duì)應(yīng)簇存儲(chǔ)的文件數(shù)據(jù)。
本發(fā)明實(shí)施例還提供了一種閃存文件更新方法,所述方法包括下述步驟根據(jù)文件更新指令中待更新文件的文件名將文件系統(tǒng)中所述待更新文件的文件控制信息中的文件狀態(tài)標(biāo)識(shí)信息設(shè)置為文件操作標(biāo)識(shí);為所述待更新文件重新分配簇,將所述文件狀態(tài)標(biāo)識(shí)信息設(shè)置為文件寫(xiě)入標(biāo)識(shí),將所述待更新文件的文件數(shù)據(jù)寫(xiě)入到重新分配的簇;更新文件系統(tǒng)中所述待更新文件的簇地址信息,所述簇地址信息位于文件系統(tǒng)中的文件控制信息中。本發(fā)明實(shí)施例還提供了一種閃存文件更新系統(tǒng),所述系統(tǒng)包括第二標(biāo)識(shí)設(shè)置子單元,用于根據(jù)文件更新指令中待更新文件的文件名將文件系統(tǒng)中所述待更新文件的文件控制信息中的文件狀態(tài)標(biāo)識(shí)信息設(shè)置為文件操作標(biāo)識(shí);數(shù)據(jù)寫(xiě)入單元,用于為所述待更新文件重新分配簇,將所述文件狀態(tài)標(biāo)識(shí)信息設(shè)置為文件寫(xiě)入標(biāo)識(shí),將所述待更新文件的文件數(shù)據(jù)寫(xiě)入到重新分配的簇;以及簇地址信息更新單元,用于更新文件系統(tǒng)中所述待更新文件的簇地址信息,所述簇地址信息位于文件系統(tǒng)中的文件控制信息中。本發(fā)明實(shí)施例在讀取閃存文件時(shí),將輸入的文件名與文件系統(tǒng)的文件控制信息中的文件名進(jìn)行匹配,從匹配的文件名所在的文件控制信息中獲取文件的簇地址信息,根據(jù)輸入的文件讀取方式返回文件的簇地址信息或簇地址信息對(duì)應(yīng)簇存儲(chǔ)的文件數(shù)據(jù),當(dāng)更新閃存文件時(shí),將文件系統(tǒng)中待更新文件的文件控制信息中的文件狀態(tài)標(biāo)識(shí)信息設(shè)置為文件操作標(biāo)識(shí),為待更新文件重新分配簇,將文件狀態(tài)標(biāo)識(shí)信息設(shè)置為文件寫(xiě)入標(biāo)識(shí),將待更新文件的文件數(shù)據(jù)寫(xiě)入到重新分配的簇,更新文件系統(tǒng)中待更新文件的簇地址信息,本發(fā)明實(shí)施例根據(jù)文件讀取方式進(jìn)行文件的讀取,提高了文件系統(tǒng)存儲(chǔ)空間的利用率、以及文件的讀取效率,在更新文件時(shí),采用重新分配存儲(chǔ)空間的方式進(jìn)行文件的更新,不擦除原文件,從而為文件更新過(guò)程中的掉電恢復(fù)提供了保障,同進(jìn),提高了文件寫(xiě)入的速度。以下結(jié)合具體實(shí)施例對(duì)本發(fā)明的具體實(shí)現(xiàn)進(jìn)行詳細(xì)描述實(shí)施例一:閃存文件系統(tǒng)負(fù)責(zé)統(tǒng)一管理閃存存儲(chǔ)器的存儲(chǔ)空間,實(shí)施存儲(chǔ)空間的分配與回收,按名對(duì)文件進(jìn)行讀寫(xiě),并向用戶(hù)提供一個(gè)方便使用的接口。在本發(fā)明實(shí)施例中,通過(guò)在文件系統(tǒng)的文件控制信息中設(shè)置相應(yīng)的文件狀態(tài)標(biāo)識(shí)信息,根據(jù)該標(biāo)識(shí)信息,使得閃存文件的讀寫(xiě)過(guò)程更加簡(jiǎn)單,空間利用率更高。圖I示出了本發(fā)明第一實(shí)施例提供的閃存文件讀取方法的實(shí)現(xiàn)流程,詳述如下在步驟SlOl中,將輸入的文件名與文件系統(tǒng)的文件控制信息中的文件名進(jìn)行匹配,該文件控制信息中的文件狀態(tài)標(biāo)識(shí)信息為文件有效標(biāo)識(shí)。在本發(fā)明實(shí)施例中,文件系統(tǒng)的文件控制信息中設(shè)置有文件狀態(tài)標(biāo)識(shí),該文件狀態(tài)標(biāo)識(shí)包括文件使用的狀態(tài)信息,例如文件有效標(biāo)識(shí)、文件操作標(biāo)識(shí)、文件寫(xiě)入標(biāo)識(shí)等文件狀態(tài)信息,文件有效標(biāo)識(shí)表征文件控制信息對(duì)應(yīng)的文件是有效的,文件操作標(biāo)識(shí)表征文件控制信息對(duì)應(yīng)的文件正在被操作,例如讀操作、寫(xiě)操作,文件寫(xiě)入標(biāo)識(shí)表征文件控制信息對(duì)應(yīng)的文件正在執(zhí)行寫(xiě)入操作。在具體實(shí)施過(guò)程中,當(dāng)接收到系統(tǒng)發(fā)送的文件讀取指令時(shí),在文件系統(tǒng)中檢索文件狀態(tài)標(biāo)識(shí)信息為文件有效標(biāo)識(shí)的文件控制信息,將輸入的文件名與具有文件有效標(biāo)識(shí)的文件控制信息中的文件名進(jìn)行匹配。在步驟S102中,從匹配的文件名所在的文件控制信息中獲取文件的簇地址信息。在本發(fā)明實(shí)施例中,當(dāng)匹配到文件名后,實(shí)現(xiàn)文件的按名讀取,獲取存儲(chǔ)該文件的簇地址信息,并將該文件對(duì)應(yīng)的文件文件控制信息中的文件狀態(tài)信息設(shè)置為文件操作標(biāo)識(shí),以方便對(duì)該文件的管理,例如,互斥訪問(wèn)等。若不存在匹配的文件名,則返回相應(yīng)的提示信息。在步驟S103中,根據(jù)輸入的文件讀取方式返回文件的簇地址信息或該簇地址信息對(duì)應(yīng)簇存儲(chǔ)的文件數(shù)據(jù)。在本發(fā)明實(shí)施例中,在接收到的文件讀取指令中,可以設(shè)置該文件的讀取方式,例如直接讀取文件的內(nèi)容,或只讀取文件的地址信息(指針),在未指定的讀取方式的情況,可默認(rèn)直接讀取文件的內(nèi)容,從而為文件讀取提供不同的選擇,有利于對(duì)文件的快速操作,例如,建立對(duì)文件的軟鏈接的操作時(shí),則可以只讀取文件的地址信息。因此,當(dāng)輸入的文件讀取方式為讀取文件內(nèi)容信息時(shí),則根據(jù)獲取的文件簇地址信息,讀取簇地址信息對(duì)應(yīng)簇的文件數(shù)據(jù),當(dāng)輸入的文件讀取方式為讀取文件指針信息時(shí),則只返回文件的簇地址信息。在本發(fā)明實(shí)施例中,根據(jù)文件系統(tǒng)的文件狀態(tài)標(biāo)識(shí)、文件讀取方式,以及簇地址信息,實(shí)現(xiàn)了對(duì)文件的不同方式的讀取,提高了文件系統(tǒng)存儲(chǔ)空間的利用率、以及文件的讀取效率。實(shí)施例二 :圖2示出了本發(fā)明第二實(shí)施例提供的閃存文件讀取系統(tǒng)的結(jié)構(gòu),為了便于說(shuō)明,僅不出了與本發(fā)明實(shí)施例相關(guān)的部分。該閃存文件讀取系統(tǒng)可以是運(yùn)行于閃存內(nèi)的軟件單元,或作為獨(dú)立的掛件集成到基于閃存存儲(chǔ)系統(tǒng)的嵌入式系統(tǒng)中,其中文件名匹配單元21將輸入的文件名與文件系統(tǒng)的文件控制信息中的文件名進(jìn)行匹配,該文件控制信息中的文件狀態(tài)標(biāo)識(shí)信息為文件有效標(biāo)識(shí)。在本發(fā)明實(shí)施例中,文件系統(tǒng)的文件控制信息中設(shè)置有文件狀態(tài)標(biāo)識(shí),該文件狀態(tài)標(biāo)識(shí)包括文件使用的狀態(tài)信息,例如文件有效標(biāo)識(shí)、文件操作標(biāo)識(shí)、文件寫(xiě)入標(biāo)識(shí)等文件狀態(tài)信息,文件有效標(biāo)識(shí)表征文件控制信息對(duì)應(yīng)的文件是有效的,文件操作標(biāo)識(shí)表征文件控制信息對(duì)應(yīng)的文件正在被操作,例如讀操作、寫(xiě)操作,文件寫(xiě)入標(biāo)識(shí)表征文件控制信息對(duì)應(yīng)的文件正在執(zhí)行寫(xiě)入操作。在具體實(shí)施過(guò)程中,當(dāng)接收到系統(tǒng)發(fā)送的文件讀取指令時(shí),在文件系統(tǒng)中檢索文件狀態(tài)標(biāo)識(shí)信息為文件有效標(biāo)識(shí)的文件控制信息,將輸入的文件名與具有文件有效標(biāo)識(shí)的文件控制信息中的文件名進(jìn)行匹配。信 息獲取單元22從匹配的文件名所在的文件控制信息中獲取文件的簇地址信
肩、O第一標(biāo)識(shí)設(shè)置子單元23將文件系統(tǒng)的文件控制信息中文件狀態(tài)標(biāo)識(shí)信息設(shè)置為文件操作標(biāo)識(shí)。在本發(fā)明實(shí)施例中,當(dāng)匹配到文件名后,根據(jù)文件名獲取存儲(chǔ)該文件的簇地址信息,并將該文件對(duì)應(yīng)的文件文件控制信息中的文件狀態(tài)信息設(shè)置為文件操作標(biāo)識(shí),以方便對(duì)該文件的管理,例如,互斥訪問(wèn)等。若不存在匹配的文件名,則返回相應(yīng)的提示信息。文件數(shù)據(jù)返回單元24根據(jù)輸入的文件讀取方式返回文件的簇地址信息或該簇地址信息對(duì)應(yīng)簇存儲(chǔ)的文件數(shù)據(jù)。
在本發(fā)明實(shí)施例中,在接收到的文件讀取指令中,可以設(shè)置該文件的讀取方式,例如直接讀取文件的內(nèi)容,或只讀取文件的地址信息(指針),在未指定的讀取方式的情況,可默認(rèn)直接讀取文件的內(nèi)容,從而為文件讀取提供不同的選擇,有利于對(duì)文件的快速操作,例如,建立對(duì)文件的軟鏈接的操作時(shí),則可以只讀取文件的地址信息。因此,當(dāng)輸入的文件讀取方式為讀取文件內(nèi)容信息時(shí),則根據(jù)獲取的文件簇地址信息,讀取簇地址信息對(duì)應(yīng)簇的文件數(shù)據(jù),當(dāng)輸入的文件讀取方式為讀取文件指針信息時(shí),則只返回文件的簇地址信息。因此,在具體的實(shí)施過(guò)程中,文件數(shù)據(jù)返回單元24可以包括文件數(shù)據(jù)讀取單元241和地址信息讀取單元242,其中文件數(shù)據(jù)讀取單元241,用于當(dāng)輸入的文件讀取方式為讀取文件內(nèi)容信息時(shí),根據(jù)獲取的文件簇地址信息,讀取簇地址信息對(duì)應(yīng)簇的文件數(shù)據(jù);以及地址信息讀取單元242,用于當(dāng)輸入的文件讀取方式為讀取文件指針信息時(shí),返回文件的簇地址信息。實(shí)施例三:圖3示出了本發(fā)明第三實(shí)施例提供的閃存文件更新方法的實(shí)現(xiàn)流程,詳述如下在步驟S301中,根據(jù)文件更新指令中待更新文件的文件名將文件系統(tǒng)中所述待更新文件的文件控制信息中的文件狀態(tài)標(biāo)識(shí)信息設(shè)置為文件操作標(biāo)識(shí)。在本發(fā)明實(shí)施例中,文件系統(tǒng)的文件控制信息中設(shè)置有文件狀態(tài)標(biāo)識(shí),該文件狀態(tài)標(biāo)識(shí)包括文件使用的狀態(tài)信息,例如文件有效標(biāo)識(shí)、文件操作標(biāo)識(shí)、文件寫(xiě)入標(biāo)識(shí)等文件狀態(tài)信息,文件有效標(biāo)識(shí)表征文件控制信息對(duì)應(yīng)的文件是有效的,文件操作標(biāo)識(shí)表征文件控制信息對(duì)應(yīng)的文件正在被操作,例如讀操作、寫(xiě)操作,文件寫(xiě)入標(biāo)識(shí)表征文件控制信息對(duì)應(yīng)的文件正在執(zhí)行寫(xiě)入操作。在本發(fā)明實(shí)施例中,當(dāng)接收到對(duì)輸入的文件名對(duì)應(yīng)的閃存文件進(jìn)行更新操作時(shí),根據(jù)文件更新指令中待更新文件的文件名將文件系統(tǒng)中待更新文件的文件控制信息中的文件狀態(tài)標(biāo)識(shí)信息設(shè)置為文件操作標(biāo)識(shí)。在步驟S302中,為待更新文件重新分配簇,將文件狀態(tài)標(biāo)識(shí)信息設(shè)置為文件寫(xiě)入標(biāo)識(shí),將待更新文件的文件數(shù)據(jù)寫(xiě)入到重新分配的簇在本發(fā)明實(shí)施例中,根據(jù)可用的簇地址信息,為待更新文件分配新的簇空間,用于存儲(chǔ)寫(xiě)入的文件數(shù)據(jù),并將文件狀態(tài)標(biāo)識(shí)信息設(shè)置為文件寫(xiě)入標(biāo)識(shí),以防止其它進(jìn)程對(duì)該文件進(jìn)行操作,進(jìn)而將待更新文件的文件數(shù)據(jù)寫(xiě)入到重新分配的簇。在本發(fā)明實(shí)施例中,在將待更新文件的文件數(shù)據(jù)寫(xiě)入到重新分配的簇后,應(yīng)根據(jù)文件控制信息中的原文件的簇地址信息,獲取簇地址信息對(duì)應(yīng)的簇存儲(chǔ)的簇狀態(tài)標(biāo)識(shí)信息,將簇狀態(tài)標(biāo)識(shí)信息設(shè)置為簇?zé)o效標(biāo)識(shí),從而將原文件的內(nèi)容置于無(wú)效狀態(tài),簇狀態(tài)標(biāo)識(shí)用于表征該簇的狀態(tài),例如無(wú)效狀態(tài)、損壞狀態(tài)等,無(wú)效狀態(tài)表征該簇的文件數(shù)據(jù)已失效,損壞狀態(tài)表征該簇已經(jīng)被損壞。在步驟S303中,更新文件系統(tǒng)中待更新文件的簇地址信息,簇地址信息位于文件系統(tǒng)中的文件控制信息中。在本發(fā)明實(shí)施例中,當(dāng)完成文件的更新操作后,應(yīng)將文件控制信息中文件的簇地址信息進(jìn)行更新,從而實(shí)現(xiàn)文件的更新操作。
在本發(fā)明實(shí)施實(shí)施例中,對(duì)閃存文件進(jìn)行更新操作時(shí),根據(jù)閃存寫(xiě)入數(shù)據(jù)的特征,采用了重新分配存儲(chǔ)空間的方式進(jìn)行文件的更新,從而為文件更新過(guò)程中的掉電恢復(fù)提供了保障,提高了文件寫(xiě)入的速度。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,所述的存儲(chǔ)介質(zhì),如R0M/RAM、磁盤(pán)、光盤(pán)等。實(shí)施例四圖4示出了本發(fā)明第四實(shí)施例提供的閃存文件寫(xiě)入系統(tǒng)的結(jié)構(gòu),為了便于說(shuō)明,僅不出了與本發(fā)明實(shí)施例相關(guān)的部分。該閃存文件寫(xiě)入系統(tǒng)可以是運(yùn)行于閃存(例如NOR FLASH)內(nèi)的軟件單元,或作為獨(dú)立的掛件集成到基于閃存存儲(chǔ)系統(tǒng)的嵌入式系統(tǒng)中,其中第二標(biāo)識(shí)設(shè)置子單元41根據(jù)文件更新指令中待更新文件的文件名將文件系統(tǒng)中待更新文件的文件控制信息中的文件狀態(tài)標(biāo)識(shí)信息設(shè)置為文件操作標(biāo)識(shí)。在本發(fā)明實(shí)施例中,文件系統(tǒng)的文件控制信息中設(shè)置有文件狀態(tài)標(biāo)識(shí),該文件狀態(tài)標(biāo)識(shí)包括文件使用的狀態(tài)信息,例如文件有效標(biāo)識(shí)、文件操作標(biāo)識(shí)、文件寫(xiě)入標(biāo)識(shí)等文件狀態(tài)信息,文件有效標(biāo)識(shí)表征文件控制信息對(duì)應(yīng)的文件是有效的,文件操作標(biāo)識(shí)表征文件控制信息對(duì)應(yīng)的文件正在被操作,例如讀操作、寫(xiě)操作,文件寫(xiě)入標(biāo)識(shí)表征文件控制信息對(duì)應(yīng)的文件正在執(zhí)行寫(xiě)入操作。在本發(fā)明實(shí)施例中,當(dāng)接收到對(duì)輸入的文件名對(duì)應(yīng)的閃存文件進(jìn)行更新操作時(shí),根據(jù)文件更新指令中待更新文件的文件名將文件系統(tǒng)中待更新文件的文件控制信息中的文件狀態(tài)標(biāo)識(shí)信息設(shè)置為文件操作標(biāo)識(shí)。數(shù)據(jù)寫(xiě)入單元42為待更新文件重新分配簇,將文件狀態(tài)標(biāo)識(shí)信息設(shè)置為文件寫(xiě)入標(biāo)識(shí),將待更新文件的文件數(shù)據(jù)寫(xiě)入到重新分配的簇。在本發(fā)明實(shí)施例中,根據(jù)可用的簇地址信息,為待更新文件分配新的簇空間,用于存儲(chǔ)寫(xiě)入的文件數(shù)據(jù),并將文件狀態(tài)標(biāo)識(shí)信息設(shè)置為文件寫(xiě)入標(biāo)識(shí),以防止其它進(jìn)程對(duì)該文件進(jìn)行操作,進(jìn)而將待更新文件的文件數(shù)據(jù)寫(xiě)入到重新分配的簇。第三標(biāo)識(shí)設(shè)置子單元43獲取文件系統(tǒng)的文件控制信息中簇地址信息,獲取簇地址信息對(duì)應(yīng)的簇存儲(chǔ)的簇狀態(tài)標(biāo)識(shí)信息,將簇狀態(tài)標(biāo)識(shí)信息設(shè)置為簇?zé)o效標(biāo)識(shí)。在本發(fā)明實(shí)施例中,在將待更新文件的文件數(shù)據(jù)寫(xiě)入到重新分配的簇后,應(yīng)根據(jù)文件控制信息中的原文件的簇地址信息,獲取簇地址信息對(duì)應(yīng)的簇存儲(chǔ)的簇狀態(tài)標(biāo)識(shí)信息,將簇狀態(tài)標(biāo)識(shí)信息設(shè)置為簇?zé)o效標(biāo)識(shí),從而將原文件的內(nèi)容置于無(wú)效狀態(tài),簇狀態(tài)標(biāo)識(shí)用于表征該簇的狀態(tài),例如無(wú)效狀態(tài)、損壞狀態(tài)等,無(wú)效狀態(tài)表征該簇的文件數(shù)據(jù)已失效,損壞狀態(tài)表征該簇已經(jīng)被損壞。簇地址信息更新單元44更新文件系統(tǒng)中待更新文件的簇地址信息,簇地址信息位于文件系統(tǒng)中的文件控制信息中。在本發(fā)明實(shí)施例中,當(dāng)完成文件的更新操作后,應(yīng)將文件控制信息中文件的簇地址信息進(jìn)行更新,從而實(shí)現(xiàn)文件的更新操作。實(shí)施例五
圖5示出了本發(fā)明第五實(shí)施例提供的閃存文件系統(tǒng)的具體實(shí)例的結(jié)構(gòu),為了便于說(shuō)明,僅不出了與本發(fā)明實(shí)施例相關(guān)的部分。在本發(fā)明實(shí)施例中,該閃存文件系統(tǒng)包括文件控制信息和文件數(shù)據(jù)信息,文件控制信息包括有文件狀態(tài)標(biāo)識(shí)、用戶(hù)自定義文件屬性、文件名以及簇地址等字段,其中文件狀態(tài)標(biāo)識(shí)用于表征文件使用的狀態(tài)信息,例如文件有效標(biāo)識(shí)、文件操作標(biāo)識(shí)、文件寫(xiě)入標(biāo)識(shí)等文件狀態(tài)信息,用戶(hù)自定義屬性字段為用戶(hù)提供了自定義文件屬性的方法,用戶(hù)自定義屬性可以為自定義文件名,父文件,文件描述信息等;文件名字段,不支持長(zhǎng)文件名,可采用8. 3文件命名格式;簇地址字段用于保存文件保存的簇地址信息。文件控制信息部分的存儲(chǔ)容量可以根據(jù)閃存的不同應(yīng)用場(chǎng)景進(jìn)行設(shè)置,例如,可以將文件控制信息部分所占空間表示為64*X字節(jié),其中64表示一個(gè)扇區(qū)的大小為64字節(jié),X可以根據(jù)閃存的應(yīng)用場(chǎng)景進(jìn)行設(shè)置。文件數(shù)據(jù)信息包括文件數(shù)據(jù)字段以及簇狀態(tài)標(biāo)識(shí)字段,文件數(shù)據(jù)字段用于保存文件數(shù)據(jù),簇狀態(tài)標(biāo)識(shí),用于表征該簇的狀態(tài),例如無(wú)效狀態(tài)、損壞狀態(tài)等。文件數(shù)據(jù)信息部分的存儲(chǔ)容量可以根據(jù)閃存存儲(chǔ)的文件特征進(jìn)行設(shè)置,例如,可以將文件數(shù)據(jù)信息所占空間表示為64*Y字節(jié),其中64表示一個(gè)扇區(qū)的大小為64字節(jié),Y可以根據(jù)閃存存儲(chǔ)的文件特征進(jìn)行設(shè)置。本發(fā)明實(shí)施例在讀取閃存文件時(shí),根據(jù)輸入的文件讀取方式,將輸入的文件名與文件系統(tǒng)的文件控制信息中的文件名進(jìn)行匹配,返回與文件名匹配的文件名對(duì)應(yīng)的簇地址信息或簇地址信息對(duì)應(yīng)簇存儲(chǔ)的文件數(shù)據(jù),從而實(shí)現(xiàn)根據(jù)文件系統(tǒng)的文件狀態(tài)標(biāo)識(shí)、文件讀取方式,以及簇地址信息,完成對(duì)文件的不同方式的讀取,提高了文件系統(tǒng)存儲(chǔ)空間的利用率、以及文件的讀取效率,當(dāng)向閃存寫(xiě)入文件進(jìn)行文件的更新時(shí),采用了重新分配存儲(chǔ)空間的方式,從而為文件更新過(guò)程中的掉電恢復(fù)提供了保障,提高了文件寫(xiě)入的速度。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種閃存文件讀取方法,其特征在于,所述方法包括下述步驟 將輸入的文件名與文件系統(tǒng)的文件控制信息中的文件名進(jìn)行匹配,所述文件控制信息中的文件狀態(tài)標(biāo)識(shí)信息為文件有效標(biāo)識(shí); 從匹配的文件名所在的文件控制信息中獲取文件的簇地址信息; 根據(jù)輸入的文件讀取方式返回文件的簇地址信息或所述簇地址信息對(duì)應(yīng)簇存儲(chǔ)的文件數(shù)據(jù)。
2.如權(quán)利要求I所述的方法,其特征在于,所述文件狀態(tài)標(biāo)識(shí)信息包括文件有效標(biāo)識(shí)和文件操作標(biāo)識(shí)。
3.如權(quán)利要求2所述的方法,其特征在于,所述從匹配的文件名所在的文件控制信息中獲取文件的簇地址信息的步驟之后,所述根據(jù)輸入的文件讀取方式返回文件的簇地址信息或所述簇地址信息對(duì)應(yīng)簇存儲(chǔ)的文件數(shù)據(jù)的步驟之前,所述方法還包括下述步驟 將文件系統(tǒng)的文件控制信息中的文件狀態(tài)標(biāo)識(shí)信息設(shè)置為文件操作標(biāo)識(shí)。
4.如權(quán)利要求I所述的方法,其特征在于,所述根據(jù)輸入的文件讀取方式返回文件的簇地址信息或所述簇地址信息對(duì)應(yīng)簇存儲(chǔ)的文件數(shù)據(jù)的步驟具體包括下述步驟 當(dāng)輸入的文件讀取方式為讀取文件內(nèi)容信息時(shí),根據(jù)獲取的文件簇地址信息,讀取簇地址信息對(duì)應(yīng)簇的文件數(shù)據(jù); 當(dāng)輸入的文件讀取方式為讀取文件指針信息時(shí),返回文件的簇地址信息。
5.一種閃存文件讀取系統(tǒng),其特征在于,所述系統(tǒng)包括 文件名匹配単元,用于將輸入的文件名與文件系統(tǒng)的文件控制信息中的文件名進(jìn)行匹配,所述文件控制信息中的文件狀態(tài)標(biāo)識(shí)信息為文件有效標(biāo)識(shí); 信息獲取單元,用于從匹配的文件名所在的文件控制信息中獲取文件的簇地址信息;以及 文件數(shù)據(jù)返回単元,用于根據(jù)輸入的文件讀取方式返回文件的簇地址信息或所述簇地址信息對(duì)應(yīng)簇存儲(chǔ)的文件數(shù)據(jù)。
6.如權(quán)利要求5所述的系統(tǒng),其特征在干,所述文件狀態(tài)標(biāo)識(shí)信息包括文件有效標(biāo)識(shí)和文件操作標(biāo)識(shí)。
7.如權(quán)利要求5所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括 第一標(biāo)識(shí)設(shè)置子単元,用于將文件系統(tǒng)的文件控制信息中文件狀態(tài)標(biāo)識(shí)信息設(shè)置為文件操作標(biāo)識(shí)。
8.如權(quán)利要求5所述的系統(tǒng),其特征在于,所述文件數(shù)據(jù)返回単元具體包括 文件數(shù)據(jù)讀取単元,用于當(dāng)輸入的文件讀取方式為讀取文件內(nèi)容信息時(shí),根據(jù)獲取的文件簇地址信息,讀取簇地址信息對(duì)應(yīng)簇的文件數(shù)據(jù);以及 地址信息讀取單元,用于當(dāng)輸入的文件讀取方式為讀取文件指針信息時(shí),返回文件的簇地址信息。
9.一種閃存文件更新方法,其特征在于,所述方法包括下述步驟 根據(jù)文件更新指令中待更新文件的文件名將文件系統(tǒng)中所述待更新文件的文件控制信息中的文件狀態(tài)標(biāo)識(shí)信息設(shè)置為文件操作標(biāo)識(shí); 為所述待更新文件重新分配簇,將所述文件狀態(tài)標(biāo)識(shí)信息設(shè)置為文件寫(xiě)入標(biāo)識(shí),將所述待更新文件的文件數(shù)據(jù)寫(xiě)入到重新分配的簇;更新文件系統(tǒng)中所述待更新文件的簇地址信息,所述簇地址信息位于文件系統(tǒng)中的文件控制信息中。
10.如權(quán)利要求9所述的方法,其特征在于,所述為所述待更新文件重新分配簇,將所述文件狀態(tài)標(biāo)識(shí)信息設(shè)置為文件寫(xiě)入標(biāo)識(shí),將所述待更新文件的文件數(shù)據(jù)寫(xiě)入到重新分配的簇的步驟之后,所述更新文件系統(tǒng)中所述待更新文件的簇地址信息,所述簇地址信息位于文件系統(tǒng)中的文件控制信息中的步驟之前,所述方法還包括下述步驟 獲取文件系統(tǒng)的文件控制信息中簇 地址信息,獲取所述簇地址信息對(duì)應(yīng)的簇存儲(chǔ)的簇狀態(tài)標(biāo)識(shí)信息,將所述簇狀態(tài)標(biāo)識(shí)信息設(shè)置為簇?zé)o效標(biāo)識(shí)。
11.一種閃存文件更新系統(tǒng),其特征在于,所述系統(tǒng)包括 第二標(biāo)識(shí)設(shè)置子単元,用于根據(jù)文件更新指令中待更新文件的文件名將文件系統(tǒng)中所述待更新文件的文件控制信息中的文件狀態(tài)標(biāo)識(shí)信息設(shè)置為文件操作標(biāo)識(shí); 數(shù)據(jù)寫(xiě)入?yún)g元,用于為所述待更新文件重新分配簇,將所述文件狀態(tài)標(biāo)識(shí)信息設(shè)置為文件寫(xiě)入標(biāo)識(shí),將所述待更新文件的文件數(shù)據(jù)寫(xiě)入到重新分配的簇;以及 簇地址信息更新単元,用于更新文件系統(tǒng)中所述待更新文件的簇地址信息,所述簇地址信息位于文件系統(tǒng)中的文件控制信息中。
12.如權(quán)利要求11所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括 第三標(biāo)識(shí)設(shè)置子単元,用于獲取文件系統(tǒng)的文件控制信息中簇地址信息,獲取所述簇地址信息對(duì)應(yīng)的簇存儲(chǔ)的簇狀態(tài)標(biāo)識(shí)信息,將所述簇狀態(tài)標(biāo)識(shí)信息設(shè)置為簇?zé)o效標(biāo)識(shí)。
全文摘要
本發(fā)明適用于存儲(chǔ)技術(shù)領(lǐng)域,提供了一種閃存文件讀取和更新方法及系統(tǒng),所述方法包括下述步驟將輸入的文件名與文件系統(tǒng)的文件控制信息中的文件名進(jìn)行匹配,所述文件控制信息中的文件狀態(tài)標(biāo)識(shí)信息為文件有效標(biāo)識(shí);從匹配的文件名所在的文件控制信息中獲取文件的簇地址信息;根據(jù)輸入的文件讀取方式返回文件的簇地址信息或所述簇地址信息對(duì)應(yīng)簇存儲(chǔ)的文件數(shù)據(jù)。本發(fā)明根據(jù)文件讀取方式進(jìn)行文件的讀取,提高了文件系統(tǒng)存儲(chǔ)空間的利用率、以及文件的讀取效率,在更新文件時(shí),采用重新分配存儲(chǔ)空間的方式進(jìn)行文件的寫(xiě)入,不擦除原文件,從而為寫(xiě)入過(guò)程中的掉電恢復(fù)提供了保障,提高了文件寫(xiě)入的速度。
文檔編號(hào)G06F3/06GK102622301SQ20111003105
公開(kāi)日2012年8月1日 申請(qǐng)日期2011年1月28日 優(yōu)先權(quán)日2011年1月28日
發(fā)明者周軍, 袁蘭平 申請(qǐng)人:深圳兆日科技股份有限公司