專利名稱::內(nèi)存儲存空間管理方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種內(nèi)存儲存空間管理方法,特別是利用一常駐程序監(jiān)控儲存空間與文件系統(tǒng)分配使用情形,以適時釋放占用而未用的實(shí)體記憶區(qū)塊。
背景技術(shù):
:一般計算機(jī)相關(guān)的應(yīng)用系統(tǒng)常通過文件系統(tǒng)(filesystem)來存取儲存裝置,而文件系統(tǒng)的尋址方法通常是以容量為512字節(jié)(Byte)的扇區(qū)(Sector)為單位的邏輯區(qū)塊地址(LogicalBlockAddress,LBA)為主。儲存裝置實(shí)際記錄數(shù)據(jù)時,則須以能夠明確界定數(shù)據(jù)存放位置的實(shí)體地址進(jìn)行尋址,例如裝置(device)、記憶區(qū)塊、記憶頁等地址。在應(yīng)用系統(tǒng)要求讀取/寫入的邏輯地址與實(shí)際存放記錄數(shù)據(jù)的實(shí)體地址之間進(jìn)行轉(zhuǎn)換,就是邏輯/實(shí)體地址轉(zhuǎn)換功能,亦即Logical國to-PhysicalAddressTranslation。邏輯/實(shí)體區(qū)塊地址對應(yīng)關(guān)系如圖1所示,其中顯示有邏輯地址(logicaladdress,11),地址由0至2047999,此例中每個地址對應(yīng)512字節(jié)(byte)的記憶容量;內(nèi)存更區(qū)分有多個區(qū)段(segment),此例中有segment0至segment31,而邏輯地址0至63999形成一個區(qū)段。圖中另顯示邏輯區(qū)塊地址(LBA,12)與實(shí)體區(qū)塊地址(PBA,14),之間以一保存邏輯/實(shí)體對應(yīng)表(L2PMappingTable,13)對應(yīng)。上例中,每個區(qū)段區(qū)分有256的邏輯區(qū)塊地址(12),其中保留6個冗余區(qū)塊,在合計256個實(shí)體區(qū)塊(physicalblock)中,對應(yīng)250個邏輯區(qū)塊(logicalblock),其中保留6個記憶區(qū)塊作為冗余區(qū)塊(spareblock,freeblock),以備記錄控制數(shù)據(jù),例如保存邏輯/實(shí)體對應(yīng)表(13),或是用于取代不良區(qū)塊(badblock),或于更新數(shù)據(jù)時用于記錄更新數(shù)據(jù)。原本保存數(shù)據(jù)的實(shí)體區(qū)塊,于數(shù)據(jù)更新記錄到新的位置,經(jīng)刪除操作后則回復(fù)納入可用的冗余區(qū)塊。從邏輯尋址空間(LogicalAddress)來看,合計共32個區(qū)段(segment031),每個區(qū)段內(nèi)包含250個邏輯區(qū)塊,每個邏輯區(qū)塊通過對應(yīng)表(13)對應(yīng)到一個實(shí)體區(qū)塊,并可保存128KB的數(shù)據(jù);每個邏輯區(qū)塊中,配合實(shí)體區(qū)塊的記憶頁(memorypage)容量,劃分為64個連續(xù)的記憶頁,每個記憶頁可容納2KB,涵蓋4個連續(xù)扇區(qū)(sector),亦即每個4邏輯區(qū)塊涵蓋連續(xù)256個扇區(qū)的記錄空間。從實(shí)體尋址空間(PhysicalAddress)來看,每個區(qū)段內(nèi)包含256個實(shí)體區(qū)塊,每個實(shí)體記憶區(qū)塊包含64個記憶頁,可保存128KB的數(shù)據(jù);并可通過對應(yīng)表(13)對應(yīng)到一個邏輯區(qū)塊。其中未界定對應(yīng)關(guān)系者為可用的冗余區(qū)塊,或因其特性不良而為不良區(qū)塊(badblock,圖中未顯示),或用作啟動區(qū)塊(bootblock)等。在圖1所示的公知的邏輯尋址空間與實(shí)體地址的轉(zhuǎn)換關(guān)系中,邏輯地址(11)中的每一地址代表一個扇區(qū),可存放512字節(jié)的使用者數(shù)據(jù),直接除以單位區(qū)塊容量(每一邏輯區(qū)塊容量128KB相當(dāng)于256個扇區(qū),也就是128KB的使用者數(shù)據(jù)),取其整數(shù)部分為邏輯區(qū)塊地址(LogicalBlockAddress,12),取其余數(shù)除以單位記憶頁容量所代表扇區(qū)的數(shù)量。舉例來說,單位記憶頁容量2KB代表連續(xù)4個扇區(qū),即可算出邏輯頁地址,如邏輯尋址100/256=0,對應(yīng)的邏輯區(qū)塊地址(12)為0,對應(yīng)的記憶頁地址為100/4=25第25個記憶頁;邏輯尋址256/256=1,對應(yīng)的邏輯區(qū)塊地址(12)為1,對應(yīng)的記憶頁地址為0。所以應(yīng)用系統(tǒng)根據(jù)文件系統(tǒng)得知邏輯區(qū)塊地址(12)后,即需査找上述邏輯/實(shí)體地址轉(zhuǎn)換對應(yīng)表(13)并自表中查知該邏輯區(qū)塊所對應(yīng)的實(shí)體區(qū)塊地址(14)。公知為節(jié)省存放轉(zhuǎn)換對應(yīng)表所需空間,一般將對應(yīng)表(13)劃分為多個區(qū)段,每個區(qū)段由一個對應(yīng)表(13)進(jìn)行轉(zhuǎn)換。每一區(qū)段由一獨(dú)立的轉(zhuǎn)換對應(yīng)表記錄一連續(xù)的邏輯尋址空間與一連續(xù)的實(shí)體尋址空間之間的轉(zhuǎn)換關(guān)系。例如區(qū)段0(Segment0)記錄邏輯尋址0-63999,邏輯區(qū)塊尋址0~249合計250個邏輯區(qū)塊共32MB的使用者數(shù)據(jù)存放空間轉(zhuǎn)換至實(shí)體邏輯尋址0~255合計256個實(shí)體記憶區(qū)塊之間的轉(zhuǎn)換關(guān)系;依此類推至區(qū)段31(Segment31)記錄邏輯尋址19840002047999,邏輯區(qū)塊尋址7750-7999合計亦為250個邏輯區(qū)塊共32MB的使用者數(shù)據(jù)存放空間轉(zhuǎn)換至實(shí)體邏輯尋址7936~8191合計256個實(shí)體記憶區(qū)塊之間的轉(zhuǎn)換關(guān)系。由邏輯尋址至實(shí)體區(qū)塊尋址的轉(zhuǎn)換是采固定連續(xù)的轉(zhuǎn)換關(guān)系,借此通過邏輯區(qū)塊尋址除以單一區(qū)段代表的邏輯區(qū)塊數(shù)量,即可輕易轉(zhuǎn)換得知存放該邏輯區(qū)塊的區(qū)段編號,進(jìn)而加載與査找該一區(qū)段的轉(zhuǎn)換對應(yīng)表取得該實(shí)際存放該邏輯區(qū)塊使用者數(shù)據(jù)的實(shí)體區(qū)塊地址(14)。然而,一般應(yīng)用系統(tǒng)常用的文件系統(tǒng)是針對磁性儲存媒體(例如硬盤機(jī))所設(shè)計,例如微軟操作系統(tǒng)(Windows⑧)常用的FAT16、FAT32、NTFS等,或MacOS常用的HFS、HFS+等,于刪除文件時,其均直接在文件配置表(AllocationTable或AllocationBit-Map)中直接清除分配的注記,例如在FAT文件系統(tǒng)下,刪除文件操作僅將根目錄或子目錄中標(biāo)記該文件的文件名稱予以刪除,并將該文件原本占用的磁叢集鏈接結(jié)構(gòu)(ClusterChain)予以歸零。而這樣的操作對公知儲存裝置而言,均是針對特定邏輯地址(LogicalAddress)執(zhí)行更新數(shù)據(jù)的寫入操作,并無法據(jù)以得知相關(guān)實(shí)體地址上所儲存的數(shù)據(jù)己經(jīng)無效。對閃存而言也一樣,且更將導(dǎo)致在進(jìn)行有效數(shù)據(jù)的更新操作及進(jìn)行刪除平均化操作時,受到無效數(shù)據(jù)占用實(shí)體記憶區(qū)塊的影響,產(chǎn)生搬移無效數(shù)據(jù)的現(xiàn)象,進(jìn)而影響存取速度以及縮短儲存媒體壽命的現(xiàn)象。
發(fā)明內(nèi)容本發(fā)明要解決的技術(shù)問題在于,為克服公知技術(shù)文件系統(tǒng)的運(yùn)作可能造成無效數(shù)據(jù)占用實(shí)體記憶區(qū)塊的問題,本發(fā)明提出一種內(nèi)存儲存空間管理方法,通過加載操作系統(tǒng)的常駐程序周期性或是依照使用者指示監(jiān)控儲存裝置中的儲存空間與文件系統(tǒng)的資源分配情形,并于檢查到有刪除的無效數(shù)據(jù)的邏輯地址對應(yīng)到一完整的實(shí)體區(qū)塊時,先讀取邏輯/實(shí)體對應(yīng)表對應(yīng)到實(shí)體區(qū)塊地址,并接著產(chǎn)生數(shù)據(jù)刪除指令給儲存裝置的控制器,接著控制器執(zhí)行取消該實(shí)體區(qū)塊與邏輯區(qū)塊間的連接關(guān)系的步驟,并接著刪除該實(shí)體區(qū)塊以釋放儲存的空間。最后再儲存完成檢査文件系統(tǒng)的位置,或是接著根據(jù)上述的程序持續(xù)執(zhí)行文件系統(tǒng)下一個位置的檢查,釋放無效數(shù)據(jù)占有儲存裝置的空間。本發(fā)明接著將上述刪除數(shù)據(jù)的流程應(yīng)用于儲存空間的管理,利用上述監(jiān)控系統(tǒng)內(nèi)存與文件系統(tǒng)運(yùn)作的常駐程序,或是利用儲存裝置控制器直接執(zhí)行監(jiān)控,控制器在檢查文件系統(tǒng)前需先辨識分割表與其中的文件系統(tǒng),若符合支持的型態(tài)后,即著手檢查文件系統(tǒng),根據(jù)分割表、文件系統(tǒng)的形式檢査邏輯區(qū)塊/頁是否有未分配使用的實(shí)體記憶區(qū)塊。之后則通過修改L2P對應(yīng)表去解除邏輯區(qū)塊地址與實(shí)體區(qū)塊地址間的連結(jié)關(guān)系,并刪除該實(shí)體區(qū)塊,最后再儲存此次檢査的位置,借以能改善儲存裝置的存取速度,并延長儲存媒體的使用期限。換句話說,本發(fā)明提供了一種內(nèi)存儲存空間管理方法,所述的方法包括有監(jiān)控一儲存裝置中的儲存空間與文件系統(tǒng)的無效數(shù)據(jù)分配情形;當(dāng)無效數(shù)據(jù)的邏輯地址對應(yīng)到的實(shí)體區(qū)塊的容量為該儲存裝置的一預(yù)設(shè)單位容量時;修改該邏輯/實(shí)體地址對應(yīng)表,以取消該實(shí)體區(qū)塊與邏輯地址間的連接關(guān)系。本發(fā)明可釋放無效數(shù)據(jù)所占的儲存空間,減少數(shù)據(jù)更新及執(zhí)行刪除時搬移實(shí)體區(qū)塊中無效數(shù)據(jù)的情形,以延長記憶裝置的使用期限。圖1為公知技術(shù)的邏輯與實(shí)體區(qū)塊地址對應(yīng)關(guān)系圖;圖2為利用常駐程序檢査文件系統(tǒng)釋放可用實(shí)體記憶區(qū)塊的操作流程;圖3為完成檢查操作之后的系統(tǒng)程序;圖4為邏輯地址內(nèi)容示意圖;圖5為無效數(shù)據(jù)的邏輯地址對應(yīng)至實(shí)體區(qū)塊示意圖;圖6為無效數(shù)據(jù)的邏輯地址區(qū)塊對應(yīng)至實(shí)體區(qū)塊示意圖;圖7為本發(fā)明的內(nèi)存儲存空間管理方法中刪除數(shù)據(jù)的流程圖;圖8為本發(fā)明的內(nèi)存儲存空間管理方法流程圖。主要元件附圖標(biāo)記說明邏輯地址11L2P對應(yīng)表13系統(tǒng)區(qū)41有效數(shù)據(jù)51,55無效數(shù)據(jù)61邏輯區(qū)塊地址12實(shí)體區(qū)塊地址14數(shù)據(jù)區(qū)43無效數(shù)據(jù)53實(shí)體區(qū)塊63,具體實(shí)施方式在公知文件系統(tǒng)的運(yùn)作下,刪除文件的操作常常僅將目錄中標(biāo)記該文件的文件名稱刪除,并將該文件原本占用的磁叢集鏈接結(jié)構(gòu)歸零,而非實(shí)際刪除占用的實(shí)體記憶空間,但此方式將會使執(zhí)行數(shù)據(jù)更新與寫入時無法得知相關(guān)實(shí)體地址所儲存的數(shù)據(jù)的狀態(tài)。為避免或改善上述問題,本發(fā)明提出一種內(nèi)存儲存空間管理方法,主要是由應(yīng)用系統(tǒng)執(zhí)行一常駐程序,能循序檢査儲存裝置提供的儲存空間與文件系統(tǒng)分配使用的情形,并于發(fā)現(xiàn)未分配使用的空間,且該一連續(xù)空間的容量為儲存裝置分配使用的刪除單位容量時,下達(dá)專屬指令通知儲存裝置控制器釋放原本分配給該邏輯區(qū)塊的實(shí)體記憶區(qū)塊。上述常駐程序是在應(yīng)用系統(tǒng)開機(jī)后自動加載,隨時監(jiān)控儲存空間與文件系統(tǒng)間的資源分配,以適時釋放占用而未用的實(shí)體記憶區(qū)塊,而利用此常駐程序檢査文件系統(tǒng)釋放可用實(shí)體記憶區(qū)塊的操作流程如圖2所示。當(dāng)系統(tǒng)(如計算機(jī)系統(tǒng))啟動后(步驟S201),即加載一用于監(jiān)控系統(tǒng)內(nèi)存與文件系統(tǒng)運(yùn)作的常駐程序(步驟S203),能于一般運(yùn)作中能檢査文件系統(tǒng)釋放儲存裝置中可用實(shí)體記憶區(qū)塊,包括檢査文件配置表(AllocationTable)、各目錄下的文件標(biāo)記,或各磁叢集鏈接結(jié)構(gòu)(ClusterChain)的狀態(tài)。此常駐程序于啟動時將檢査是否有前次系統(tǒng)的記錄,若是第一次啟動系統(tǒng)執(zhí)行常駐程序,則加載默認(rèn)值來檢査文件系統(tǒng);若非第一次啟動系統(tǒng)執(zhí)行常駐程序,則加載上次完成的位置以繼續(xù)檢查文件系統(tǒng)。接著系統(tǒng)開始偵測系統(tǒng)內(nèi)建或外掛的儲存裝置(步驟S205),以確認(rèn)儲存裝置上的控制器是否有支持釋放實(shí)體記憶區(qū)塊的功能(步驟S207),若不支持即結(jié)束操作(步驟S209)。若偵測后有支持該功能,則接著擷取儲存裝置的參數(shù)(步驟S211),包括儲存裝置的區(qū)塊大小、區(qū)塊中記憶頁的數(shù)目、記憶頁的大小、制造商或裝置的信息等。然后,由文件系統(tǒng)中下一個位置(因為前一個檢查流程已經(jīng)完成,接著進(jìn)行下一個位置的檢查)開始檢查(步驟S213),并根據(jù)分割表(partitiontable)、文件系統(tǒng)的形式檢査邏輯區(qū)塊/頁是否有未分配使用(free)的實(shí)體記憶區(qū)塊(步驟S215),若是沒有任何未分配使用的實(shí)體記憶區(qū)塊,則儲存本次檢査記錄(步驟S219),如檢查的位置。而若是存在有未分配使用的實(shí)體記憶區(qū)塊,且有連續(xù)空間的容量為儲存裝置分配使用的刪除單位容量時,則下達(dá)指令釋放其中被無效數(shù)據(jù)占用的空間(步驟S217),并同樣儲存本次檢査記錄(步驟S219)。即完成檢查操作完成,此常駐程序接著即依據(jù)設(shè)定,在一定時間內(nèi)進(jìn)行下一次檢查是否有未分配使用的實(shí)體記憶區(qū)塊的操作。圖3顯示在完成前次檢查操作之后的系統(tǒng)程序,上述的常駐程序?qū)⑦M(jìn)行一般的判斷規(guī)則,包括經(jīng)過一定時間的延遲或是操作暫停的指令(步驟S301),判斷此計算機(jī)系統(tǒng)是否關(guān)閉?(步驟S303),作將關(guān)閉,則結(jié)束操作(步驟S309),若不關(guān)閉,此常駐程序則接著判斷是否繼續(xù)操作?(步驟S305),若不繼續(xù)操作,則結(jié)束(步驟S309),若繼續(xù)則進(jìn)行下一次檢查操作(步驟S307)。依據(jù)上述流程,本發(fā)明所述的內(nèi)存儲存空間管理方法將涉及文件系統(tǒng)中的尋址方法,包括利用其中的邏輯地址(LA)、實(shí)體區(qū)塊地址(PBA)、對應(yīng)邏輯區(qū)塊地址(LBA)與實(shí)體區(qū)塊地址的邏輯/實(shí)體對應(yīng)表(L2Pmappingtable),其中,如圖4所示的邏輯地址內(nèi)容示意圖。邏輯地址中的每一地址代表一個扇區(qū),除了對應(yīng)到保留的區(qū)域之外的部分,另主要包括有系統(tǒng)區(qū)(systemarea)41與數(shù)據(jù)區(qū)(dataarea)43兩個扇區(qū)的地址,其中系統(tǒng)區(qū)中是對應(yīng)包括分割表、基本輸出入系統(tǒng)參數(shù)區(qū)塊(BIOSParameterBlock,BPB)、文件系統(tǒng)(如FAT)等的扇區(qū);而數(shù)據(jù)區(qū)則記錄對應(yīng)儲存數(shù)據(jù)的扇區(qū),數(shù)據(jù)是可以叢集(cluster,假設(shè)為4K的大小)為單位來尋址。本發(fā)明利用檢査邏輯區(qū)塊/頁判斷是否未分配使用的方法需要考慮邏輯地址的數(shù)據(jù)區(qū)上無效數(shù)據(jù)的大小,及邏輯與實(shí)體地址的對應(yīng)關(guān)系。再請參考圖5所示的無效數(shù)據(jù)的邏輯地址對應(yīng)至實(shí)體區(qū)塊示意圖,其中包括實(shí)體區(qū)塊上的有效數(shù)據(jù)51,55,無效數(shù)據(jù)53。此例中,根據(jù)文件系統(tǒng)的信息發(fā)現(xiàn)邏輯地址數(shù)據(jù)區(qū)中的無效數(shù)據(jù)(53)大小為2個叢集(duster),有8K的大小,其邏輯地址經(jīng)上述L2P轉(zhuǎn)換表對應(yīng)至一實(shí)體區(qū)塊地址,即占有4個記憶頁(即圖中記憶頁pagen,pagen+l,pagen+2,pagen+3,每個記憶頁2K)的空間,表示實(shí)體區(qū)塊中的4個記憶頁為無效數(shù)據(jù),但該實(shí)體區(qū)塊中其它記憶頁仍為有效數(shù)據(jù)。另外,以閃存為例,其中刪除數(shù)據(jù)的單位為區(qū)塊,而邏輯地址上無效數(shù)據(jù)的大小可能未滿儲存裝置中一個實(shí)體區(qū)塊大小,所以不能將還存有有效數(shù)據(jù)的實(shí)體區(qū)塊刪除。接著,再參閱圖6所示的無效數(shù)據(jù)的邏輯地址區(qū)塊對應(yīng)至實(shí)體區(qū)塊示意圖,圖中顯示有三個部分,包括有邏輯區(qū)塊地址(LBA)、邏輯/實(shí)體對應(yīng)表(L2P)與實(shí)體區(qū)塊地址(PBA),此邏輯/實(shí)體對應(yīng)表即用于對應(yīng)邏輯區(qū)塊地址與實(shí)體區(qū)塊地址。圖中顯示邏輯地址數(shù)據(jù)區(qū)中的無效數(shù)據(jù)(61,斜線部分)大小有32個叢集,共128K的大小,但此段邏輯區(qū)塊地址經(jīng)L2P對應(yīng)表轉(zhuǎn)換對應(yīng)至實(shí)體區(qū)塊地址,分配到儲存裝置中兩個實(shí)體區(qū)塊63,65,此例中,兩個實(shí)體區(qū)塊63,65中分別包含有有效數(shù)據(jù)及無效數(shù)據(jù)(斜線部分),由于刪除數(shù)據(jù)的最小單位為區(qū)塊(如FAT文件系統(tǒng)中為128K),因此仍不可刪除上述同時存有有效數(shù)據(jù)與無效數(shù)據(jù)的實(shí)體區(qū)塊。上述方法顯示出,若無效數(shù)據(jù)與有效數(shù)據(jù)位于同一實(shí)體區(qū)塊(block)中,則仍無法刪除數(shù)據(jù),所以釋放實(shí)體區(qū)塊的空間的條件,必須在檢査邏輯地址上無效數(shù)據(jù)的大小外,還需考慮其對應(yīng)的實(shí)體區(qū)塊地址。本發(fā)明所提供的內(nèi)存儲存空間管理方法中刪除數(shù)據(jù)的流程如圖7所示,主要是利用上述常駐程序周期性或是依照使用者指示監(jiān)控儲存裝置中的儲存空間與文件系統(tǒng)的資源分配情形,包括檢査一文件配置表、各目錄下的文件標(biāo)記,或各磁叢集鏈接結(jié)構(gòu)的狀態(tài),以得知該儲存裝置的儲存空間與文件系統(tǒng)的資源分配情形。當(dāng)有刪除的無效數(shù)據(jù)的邏輯地址對應(yīng)到一完整的實(shí)體區(qū)塊時,即有連續(xù)空間的容量為儲存裝置分配使用的刪除單位容量時(步驟S701),表示該區(qū)塊可被刪除,即產(chǎn)生一專屬的數(shù)據(jù)刪除指令給儲存裝置的控制器(步驟S703),當(dāng)控制器接收到此數(shù)據(jù)刪除指令后,便執(zhí)行相關(guān)步驟,包括取消該實(shí)體區(qū)塊與邏輯區(qū)塊間的連接關(guān)系,并刪除該實(shí)體區(qū)塊以釋放儲存的空間,如以下詳細(xì)內(nèi)容。接著,儲存裝置控制器則在收到應(yīng)用系統(tǒng)執(zhí)行常駐程序下達(dá)的數(shù)據(jù)刪除指令時,檢查該指令所指定的邏輯區(qū)塊(步驟S705),并讀取邏輯/實(shí)體對應(yīng)表(步驟S707),借以對應(yīng)到實(shí)體區(qū)塊地址,并判斷是否有分配實(shí)體記憶區(qū)塊,而其仍保存已被刪除無效的數(shù)據(jù)(步驟S709),若指令參數(shù)所指定的邏輯區(qū)塊并沒有分配實(shí)體記憶區(qū)塊,則此操作結(jié)束,而會等到下一次檢査到有無效數(shù)據(jù)的邏輯地址對應(yīng)到一實(shí)體區(qū)塊時,進(jìn)行下一次流程;若上述指令參數(shù)所指定的邏輯區(qū)塊有分配實(shí)體記憶區(qū)塊,則控制器通過更新/修改邏輯/實(shí)體對應(yīng)表來解除該邏輯區(qū)塊與該實(shí)體區(qū)塊的連結(jié)關(guān)系(步驟S711)。控制器可在上述對應(yīng)表中修改該邏輯區(qū)塊對應(yīng)實(shí)體區(qū)塊關(guān)系的記錄,以表示該邏輯區(qū)塊并未分配實(shí)體記憶區(qū)塊,也未記錄保存有效的數(shù)據(jù),并將該實(shí)體記憶區(qū)塊予以刪除(步驟S713)。并且,儲存完成檢查文件系統(tǒng)的位置(步驟S715),或是接著根據(jù)上述的程序持續(xù)執(zhí)行文件系統(tǒng)下一個位置的檢查,以釋放無效數(shù)據(jù)占有儲存裝置的空間。借此流程可釋放無效數(shù)據(jù)所占的儲存空間,減少數(shù)據(jù)更新及執(zhí)行刪除時搬移實(shí)體區(qū)塊中無效數(shù)據(jù)的情形,以延長記憶裝置的使用期限。之后,本發(fā)明更將圖7所示刪除數(shù)據(jù)的流程應(yīng)用于內(nèi)存儲存空間管理流程,如圖8所示的步驟。當(dāng)系統(tǒng)啟動后,即加載本發(fā)明用于監(jiān)控系統(tǒng)內(nèi)存與文件系統(tǒng)運(yùn)作的常駐程序,此常駐程序用以檢査文件系統(tǒng)分配使用狀況的操作,但是除此常駐程序以外,亦可由系統(tǒng)的儲存裝置控制器自動執(zhí)行進(jìn)行辨識檢查,但是在此儲存裝置上執(zhí)行辨識的操作則須限于應(yīng)用系統(tǒng)使用該儲存裝置進(jìn)行格式化時所采用的文件系統(tǒng),換言之,該文件系統(tǒng)為儲存裝置內(nèi)的控制器能夠辨識使用區(qū)間是否記錄有效數(shù)據(jù)(包括是否被分配用于記錄文件數(shù)據(jù),以及文件是否被刪除)的文件系統(tǒng)。所以,于啟動連接至系統(tǒng)的儲存裝置(步驟S801)后,將檢查是否有前次檢査的記錄,若有,則加載默認(rèn)值來檢查文件系統(tǒng);若非第一次啟動,則可加載上次完成的位置。之后,其中的控制器在檢査文件系統(tǒng)前需先辨識分割表(步驟S803),識別出儲存裝置的配置之后,再辨識其中文件系統(tǒng)(步驟S805),并判斷是否為控制器所支持的文件系統(tǒng)(步驟S807),若并非控制器所支持的文件系統(tǒng)(否),則結(jié)束操作;但是若確認(rèn)為支持的文件系統(tǒng)格式(是),則接著擷取儲存裝置的參數(shù),包括儲存裝置的區(qū)塊大小、區(qū)塊中記憶頁的數(shù)目、記憶頁的大小、制造商或裝置的信息等。再接著開始檢査文件系統(tǒng)的使用狀態(tài),由次一位置開始(步驟S809),包括檢査文件配置表、各目錄下的文件標(biāo)記,或/與各磁叢集鏈接結(jié)構(gòu)的狀態(tài)。其中因此次檢查流程之前可能10己儲存了前次的檢査結(jié)果,故須由下一個內(nèi)存地址開始檢査。接著根據(jù)分割表、文件系統(tǒng)的形式檢査邏輯區(qū)塊與當(dāng)中記憶頁是否有未分配使用的實(shí)體記憶區(qū)塊(步驟S811),若是沒有任何未分配使用的實(shí)體記憶區(qū)塊(否),則至步驟S821,儲存本次檢查記錄,如檢査的位置;若是邏輯區(qū)塊/頁有未分配使用的實(shí)體記憶區(qū)塊(是),則讀取邏輯/實(shí)體對應(yīng)表(步驟S813),借以對應(yīng)邏輯區(qū)塊地址與實(shí)體區(qū)塊地址,判斷是否有已刪除文件的邏輯區(qū)塊分配實(shí)體記憶區(qū)塊,其仍保存己被刪除無效的數(shù)據(jù)(步驟S815)。于步驟S815的判斷步驟中,若所指定的邏輯區(qū)塊并沒有分配實(shí)體記憶區(qū)塊,則進(jìn)行步驟S821儲存步驟并操作結(jié)束,直到檢査流程發(fā)現(xiàn)有未分配使用的實(shí)體記憶區(qū)塊時進(jìn)行下一次流程。但是于步驟S815的步驟中判斷出己刪除文件的邏輯區(qū)塊仍有分配實(shí)體記憶區(qū)塊,若有且占一整個實(shí)體區(qū)塊,則通過修改L2P對應(yīng)表去解除邏輯區(qū)塊地址與實(shí)體區(qū)塊地址間的連結(jié)關(guān)系(步驟S817),并刪除該實(shí)體區(qū)塊(步驟S819)。最后,步驟將接著進(jìn)行儲存此次檢查的位置(步驟S821),并可經(jīng)一段時間的延遲后(步驟S823),再檢查文件系統(tǒng)之下一位置(步驟S809),繼續(xù)下一階段的內(nèi)存管理流程。本發(fā)明中,所述刪除單位容量不限為記憶體本身的刪除單位容量,亦可為用戶自行定義預(yù)設(shè)的容量。綜上所述,本發(fā)明為一種內(nèi)存儲存空間管理方法,可利用加載操作系統(tǒng)的常駐程序監(jiān)控儲存空間與文件系統(tǒng)分配使用情形,通過修改文件系統(tǒng)中邏輯區(qū)塊與實(shí)體區(qū)塊的對應(yīng)表,釋放占用而未用的實(shí)體記憶區(qū)塊,能改善儲存裝置的存取速度,并延長儲存媒體的使用期限。以上所述僅為本發(fā)明的較佳可行實(shí)施例,并非因此局限本發(fā)明的權(quán)利范圍,所以凡運(yùn)用本發(fā)明說明書及附圖內(nèi)容所做的等效結(jié)構(gòu)變化,均同理包含于本發(fā)明范圍之內(nèi),特此說明。權(quán)利要求1.一種內(nèi)存儲存空間管理方法,其特征在于所述的方法包括有監(jiān)控一儲存裝置中的儲存空間與文件系統(tǒng)的無效數(shù)據(jù)分配情形;當(dāng)無效數(shù)據(jù)的邏輯地址對應(yīng)到的實(shí)體區(qū)塊的容量為該儲存裝置的一預(yù)設(shè)單位容量時;修改該邏輯/實(shí)體地址對應(yīng)表,以取消該實(shí)體區(qū)塊與邏輯地址間的連接關(guān)系。2.如權(quán)利要求1所述的內(nèi)存儲存空間管理方法,其特征在于,更包括加載操作系統(tǒng)的常駐程序;檢査一文件配置表;以及檢查各目錄下的文件標(biāo)記,或各磁叢集鏈接結(jié)構(gòu)的狀態(tài)。3.如權(quán)利要求1所述的內(nèi)存儲存空間管理方法,其特征在于,利用一該儲存裝置的控制器執(zhí)行該內(nèi)存儲存空間管理方法的各步驟。4.如權(quán)利要求1所述的內(nèi)存儲存空間管理方法,其特征在于所述修改該邏輯/實(shí)體地址對應(yīng)表的步驟前,判斷該邏輯地址是否有分配實(shí)體區(qū)塊;若邏輯地址有分配實(shí)體區(qū)塊,則該控制器執(zhí)行該修改邏輯/實(shí)體地址對應(yīng)表的步驟,以取消邏輯地址與該實(shí)體區(qū)塊的對應(yīng)關(guān)系,并刪除該實(shí)體區(qū)塊以釋放區(qū)間;若邏輯地址沒有分配實(shí)體區(qū)塊,則操作結(jié)束。5.如權(quán)利要求1所述的內(nèi)存儲存空間管理方法,其特征在于最后儲存完成該次檢査的位置。6.如權(quán)利要求3所述的儲存裝置的控制器,其特征在于所述的辨識儲存裝置的文件系統(tǒng)的步驟包括啟動儲存裝置;判斷該文件系統(tǒng)是否為控制器所支持的文件系統(tǒng);若并非該控制器所支持的文件系統(tǒng),則結(jié)束操作;若確認(rèn)為支持的文件系統(tǒng)格式,則進(jìn)行該擷取儲存裝置參數(shù)的步驟。7.如權(quán)利要求6所述的內(nèi)存儲存空間管理方法,其特征在于所述的儲存裝置的參數(shù)包括該儲存裝置的區(qū)塊大小、區(qū)塊中記憶頁的數(shù)目、記憶頁的大小。8.如權(quán)利要求6所述的內(nèi)存儲存空間管理方法,其特征在于,在啟動該儲存裝置后,判斷包括若是第一次啟動,則加載一默認(rèn)值來檢査該文件系統(tǒng);若非第一次啟動,則加載上次完成的位置以繼續(xù)檢查該文件系統(tǒng)。全文摘要一種內(nèi)存儲存空間管理方法,利用一加載操作系統(tǒng)的常駐程序或是儲存裝置內(nèi)控制器監(jiān)控儲存裝置中的儲存空間與文件系統(tǒng)的資源分配情形,通過一邏輯/實(shí)體地址對應(yīng)表檢查刪除的無效數(shù)據(jù)的邏輯地址與其對應(yīng)的實(shí)體區(qū)塊的狀態(tài),利用特定數(shù)據(jù)刪除指令,控制器將修正此對應(yīng)關(guān)系,取消該實(shí)體區(qū)塊與邏輯地址間的連接關(guān)系,并接著刪除該實(shí)體區(qū)塊以釋放儲存的空間,最后再儲存此次檢查的位置,提供下一次檢查的依據(jù),借此儲存空間的管理步驟改善儲存裝置的存取速度,并延長儲存媒體的使用期限。文檔編號G06F12/02GK101609430SQ20081011146公開日2009年12月23日申請日期2008年6月19日優(yōu)先權(quán)日2008年6月19日發(fā)明者謝祥安,陳明達(dá)申請人:威剛科技股份有限公司