亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

可丟棄文件的基于卡的管理的制作方法

文檔序號:6361986閱讀:189來源:國知局
專利名稱:可丟棄文件的基于卡的管理的制作方法
技術領域
本發(fā)明總體涉及存儲器件,且更具體地涉及管理在存儲器件中的文件的方法和設備。
背景技術
因為非易失性的存儲器件便攜且它們具有小的物理大小和大的存儲容量,近年來已經快速地增加了非易失性的存儲器件的使用。存儲器件以各種設計出現(xiàn)。一些存儲器件被視為“嵌入式”,意味著它們不能且不意圖由用戶從與其一起工作的主機設備上移除。其他存儲器件是可移除的,這意味著用戶可以從一個主機設備(例如,從數(shù)碼相機)移除它們到另一設備,或用另一個存儲器件來替換一個存儲器件。在存儲器件中存儲的數(shù)字內容可以來源于存儲器件的主機。例如,數(shù)碼相機(一種示例的主機)捕獲圖像且將它們翻譯為對應的數(shù)字數(shù)據(jù)。然后,數(shù)據(jù)相機在與其一起操作的存儲器件中存儲數(shù)字數(shù)據(jù)。在存儲器件中存儲的數(shù)字內容還可以來源于遠程源:其可以例如通過數(shù)據(jù)網(wǎng)絡(例如,因特網(wǎng))或通信網(wǎng)絡(例如,蜂窩電話網(wǎng)絡)向存儲器件的主機發(fā)送,且然后由該主機下載到存儲器件。遠程源可以是例如服務提供者或內容提供者。服務提供者和內容提供者以下統(tǒng)稱為“發(fā)行商(publishers)”。隨著移動手持機內的存儲器件在大小和容量上增長,出現(xiàn)了活躍的用于內容獲取和消費的新場景。通常,可以使用手持機來消費從操作員控制的服務器諸如蘋果(Apple)的iTunes服務的市場應用下載的和自諸如SanDisk的slotMedia卡的源側裝載(side-loaded)的電影和音樂。但是,在所有這些應用中,用戶必須主動搜尋他想要消費的內容,指示并授權該內容的獲取,獲取該內容,然后消費它。這減少了內容所有者提供用于瞬時消費的內容的能力、和用戶立即看到他獲取的東西而不用等待其下載的能力。已圍繞向用戶預先載入內容創(chuàng)建了若干產品開端,但是他們都有一個共同的缺陷:用戶必須犧牲其自己的存儲容量來存儲內容,但直至在購買它之后才能訪問該內容。必須購買該容量的用戶通常不想看到該容量的很大部分被分配給他們不能實際使用的內容。存儲器件的用戶可以自愿通過從發(fā)行商請求媒體內容或廣告來下載媒體內容和廣告。但是,有時,想要提高他們收入的發(fā)行商在不征求用戶的許可的情況下,向用戶發(fā)送內容,且有時甚至用戶不知道這種內容已被下載到他們的存儲器件了。發(fā)行商在未得到用戶同意的情況下向用戶發(fā)送的內容在此被稱為“主動提供的內容”。通常,主動提供的內容意圖由用戶在支付之后、或在承諾給發(fā)行商支付費用之后消費。通過將主動提供的內容下載至用戶的存儲器件,發(fā)行商希望用戶將最終以付費方式消費該主動提供的內容以獲得費用,由此增加他們的收益。發(fā)行商在不征求用戶同意的情況下將主動提供的內容存儲在存儲器件上從而希望該用戶以付費方式消費這些內容,該發(fā)行商的這種行為在媒體發(fā)布領域中稱為“預測寄售(predictive consignment)”。但是,主動提供的內容可以仍然存儲在存儲器件中,而不需要存儲器件的用戶得知其存在或想要消費它。在存儲器件中存儲主動提供的內容減少了在存儲器件上的可用(即,空閑)用戶存儲空間,這從用戶的角度是不期望的。用戶可能發(fā)現(xiàn)在存儲器件中存在更少空間來用于用戶自己的內容(例如,音樂文件),因為其他人(即,一些發(fā)行商)已經占據(jù)了存儲器件上的部分存儲空間,或用戶可能必須通過刪除主動提供的內容來收回(recIaim)如此占用的存儲空間。對占據(jù)用戶的部分存儲空間的該問題的一個部分解決方案包括阻止發(fā)行商對存儲器件的訪問,諸如通過阻止發(fā)行商的網(wǎng)站。該解決方案可能對用戶是可接受的,但是其從發(fā)行商的角度來說是有問題的,這是因為發(fā)行商將得到更少的銷售額且損失潛在的收益源。對該問題的另一部分解決方案包括向主機發(fā)布內容(即,將內容文件存儲在這些主機的存儲器件中),且當內容變得不相關時移除該內容。換句話說,產生了該內容的發(fā)行商當該內容變得不相關時從存儲器件移除所存儲的主動提供的內容。如果已經經過了用于消費的時間,或當存在該用戶不可能消費它的指示時,主動提供的內容被視為無關。因此,需要一種新技術,其智能地管理手持存儲器、以便用戶在無損失的情況下自由地使用他們的存儲器、同時仍然使得內容所有者能夠向手持機推送內容。換句話說,存在解決主動提供的文件帶來的問題的需要。具體地,雖然應該允許發(fā)行商在進行其商業(yè)的過程中向存儲器件下載主動提供的內容時,但這些下載不應該對用戶體驗產生本質上阻礙的影響。

發(fā)明內容
因此,以下情形將有益:只要用戶文件不需要在存儲器件中容納它們所需的存儲空間即能夠在存儲器件存儲主動提供的文件,以及能夠從存儲器件移除主動提供的文件以便為用戶文件保證最小的空閑存儲空間。各種實施例被設計來實現(xiàn)這種文件管理,在此提供其例子。在一個實施方式中,提供用于在不需要修改主機操作系統(tǒng)的情況下實現(xiàn)主動提供的文件在存儲器件上的存儲和移除的機制將是有益的。為了解決上述問題,在存儲器件中的存儲的文件或要存儲的文件是不可丟棄的且與存儲設備中維持的主機文件系統(tǒng)數(shù)據(jù)結構相關聯(lián),或標記為是可丟棄的且在存儲設備中的可丟棄文件系統(tǒng)數(shù)據(jù)結構中相關聯(lián)。每個可丟棄的文件與丟棄優(yōu)先級相關。只有在將新發(fā)行商的文件(即,主動提供的文件)存儲在存儲器件中不使保留用于用戶文件的存儲使用安全余量變窄超過所期望余量時,才允許將其存儲在存儲器件中。另一方面,即使用戶文件的存儲使存儲使用安全余量變窄超過期望寬度的情況下也允許將其存儲在存儲器件中。但是,在這種情況下,通過從存儲器件移除一個或多個可丟棄文件來恢復存儲安全余量的期望寬度。如果可丟棄文件的丟棄優(yōu)先級等于或高于(或,低于,如在此描述的)預定丟棄閾值,則將該可丟棄文件從存儲器件移除。根據(jù)一個方面,為了解決對于在不需要改變主機操作系統(tǒng)的情況下允許存儲設備管理可丟棄文件的機制的需要,公開了用存儲設備管理文件的方法,該方法由操作性地耦合于主機的存儲設備實現(xiàn),存儲設備具有含有用戶文件、空閑空間和可丟棄文件的存儲區(qū)域。該方法包括:存儲設備在可丟棄文件系統(tǒng)數(shù)據(jù)結構中標識空閑簇和與可丟棄文件相關的簇的記錄;從主機接收在存儲區(qū)域中存儲用戶文件的請求;確定與請求中的數(shù)據(jù)相關聯(lián)的邏輯塊地址(LBA)是否處于與可丟棄文件系統(tǒng)數(shù)據(jù)結構中的記錄中的簇相關聯(lián)的邏輯塊地址的范圍中;以及當LBA處于該范圍且在該范圍中存在可用的空閑空間時,將用戶文件的LBA映射到可丟棄文件系統(tǒng)數(shù)據(jù)結構中標識的空閑簇;以及隨后,從所述可丟棄文件系統(tǒng)數(shù)據(jù)結構中,移除映射到用戶文件的LBA的簇。在本方法的另一方面,當LBA處于該范圍且在該范圍中不存在可用的空閑空間時,該存儲設備可以執(zhí)行以下步驟:丟棄至少一個可丟棄文件以創(chuàng)建空閑簇;將用戶文件的LBA映射到通過丟棄至少一個可丟棄文件而創(chuàng)建的空閑簇;以及隨后,從所述可丟棄文件系統(tǒng)數(shù)據(jù)結構中,移除映射到用戶文件的LBA的簇。該方法還可以包括:在所述存儲設備的存儲區(qū)域中維持主機文件系統(tǒng)數(shù)據(jù)結構、和與主機文件系統(tǒng)數(shù)據(jù)結構獨立地維持所述可丟棄文件系統(tǒng)數(shù)據(jù)結構,所述可丟棄文件系統(tǒng)數(shù)據(jù)結構包括存儲區(qū)域中對應于存儲區(qū)域中的至少一個可丟棄文件的簇列表,且其中在主機文件系統(tǒng)數(shù)據(jù)結構中將所述至少一個可丟棄文件標識為空閑空間。所述可丟棄文件系統(tǒng)數(shù)據(jù)結構可以以表格、哈希映射、二進制樹、陣列或列表的形式。在另一方面中,公開了與主機可移除地連接的存儲設備。該存儲設備包括具有用戶文件、空閑空間和可丟棄文件的存儲區(qū)域。該存儲設備還包括與存儲區(qū)域通信的控制器。該控制器被配置以在可丟棄文件系統(tǒng)數(shù)據(jù)結構中標識空閑簇和與可丟棄文件相關的簇的記錄。該控制器還被配置以從主機接收在存儲區(qū)域中存儲用戶文件的請求,并確定與請求中的數(shù)據(jù)相關聯(lián)的邏輯塊地址(LBA)是否處于與可丟棄文件系統(tǒng)數(shù)據(jù)結構中的記錄中的簇相關聯(lián)的邏輯塊地址的范圍中。當LBA處于該范圍且在該范圍中存在可用的空閑空間時該控制器被配置以將用戶文件的LBA映射到可丟棄文件系統(tǒng)數(shù)據(jù)結構中標識的空閑簇,以及隨后從可丟棄文件系統(tǒng)數(shù)據(jù)結構中移除被映射到用戶文件的LBA的簇。


在附圖中圖示各種示例實施例,意圖這些例子不是限制性的。應理解,為了圖示的簡化和清楚,以下引用的圖中所示的元件不一定被畫成成比例的。而且,在認為適當時,可以在附圖之間重復使用附圖標記來指示相同的、對應的或類似的元件。在附圖中:圖1是根據(jù)示例實施例的存儲系統(tǒng)的方框圖。圖2是根據(jù)另一示例實施例的存儲系統(tǒng)的方框圖。圖3是根據(jù)示例實施例的存儲分配器的方框圖。圖4是根據(jù)示例實施例的用于管理文件的方法。圖5是根據(jù)示例實施例的用于管理在存儲器件中的可丟棄文件的存儲的方法。圖6是用于根據(jù)示例實施例的用于在FAT32結構的文件系統(tǒng)中標記一個或多個主動提供的文件的方法。圖7是與FAT32表相關聯(lián)的示例目錄區(qū)域。圖8是根據(jù)示例實施例的FAT32表。圖9是根據(jù)示例實施例的NTFS表。圖10是根據(jù)示例實施例的基于FAT的文件系統(tǒng)的邏輯映像。
圖11示范了根據(jù)該公開的文件的存儲管理方法。圖12a圖示示例的主FAT。圖12b圖示示例的可丟棄FAT。圖13是用于使用主FAT和可丟棄FAT來管理存儲器件的方法的流程圖。圖14是用于使用FAT和數(shù)據(jù)庫來管理存儲器件的方法的流程圖。圖15是用于使用FAT和位置文件來管理存儲器件的方法的流程圖。圖16圖示了包括簇鏈的示例FAT,其中,組成該簇鏈的兩個或多個簇的順序已經被打亂。圖17圖示了示例FAT和相關位置文件,其中,F(xiàn)AT包括簇鏈,其中,組成該簇鏈的兩個或更多簇的順序已經被打亂。圖18是用于使用FAT管理存儲器件的方法的流程圖,其中,組成簇鏈的兩個或更多簇的順序被打亂。圖19是用于使用轉換鎖(conversion lock)來防止當可丟棄文件在實現(xiàn)主FAT和可丟棄FAT的文件系統(tǒng)中打開時轉換可丟棄文件。圖20圖示在文件系統(tǒng)中的示例位掩碼(mask)用戶ID。圖21圖示智能高速緩存的客戶端側組件。圖22示出如為智能高速緩存HD修改的可丟棄文件的文件系統(tǒng)結構。圖23是用于在智能高速緩存HD系統(tǒng)中使用的大文件管理器的方框圖。圖24描述大可丟棄文件的轉換流程。圖25是圖示用大文件管理器來處理轉換請求的方法的流程圖。圖26描述作為可以被分裂的文件的例子的Matroska文件結構。圖27描述分裂的Matroska文件。圖28是根據(jù)另一示例實施例的存儲系統(tǒng)的方框圖。圖29是用于實現(xiàn)可丟棄文件的基于卡的管理的方法的流程圖。圖30是用于管理向存儲器件的存儲區(qū)域下載可丟棄文件的方法的流程圖。
具體實施例方式以下的描述提供示例實施例的各種細節(jié)。但是,該描述不意圖限制權利要求的范圍,而是用于本發(fā)明的各種原理和實踐它的方式。為了解決主動提供的內容和相關問題,向用戶文件給定超出其他文件的存儲優(yōu)先級,且維持存儲使用安全余量以保證該優(yōu)先級。“用戶文件”是存儲器件的用戶自愿存儲或已經同意其在存儲器件中存儲的文件。例如,用戶向她/他的存儲器件下載的音樂文件被視為用戶文件。被用戶請求或同意存儲,用戶文件被視為“索求的”文件?!捌渌募痹诖酥浮鞍l(fā)行商文件”和“主動提供的文件”?!鞍l(fā)行商文件”是在用戶未請求它或未意識到它(至少一段時間還沒有)的情形下在存儲器件中存儲的文件。用戶可能不想要使用主動提供的文件。未使用的主動提供的文件趨于消費在用戶的存儲器件上的昂貴存儲空間。因此,根據(jù)在此公開的原理,只有存儲這種文件不致縮小存儲使用安全余量才允許將此文件存儲在存儲器件中。通過維持將被保留用于未來的用戶的文件的空閑存儲空間(即,存儲使用安全余量)來向用戶文件呈現(xiàn)存儲優(yōu)先級。必須維持存儲使用安全余量以便保證無論何時需要或期望時都可以在存儲器件中存儲用戶文件。如果出于一些原因,存儲使用安全余量變得比期望的窄,則將從存儲器件移除(SP刪除)一個或多個主動提供的文件以便恢復存儲使用安全余量。維持存儲使用安全余量保證在附加的用戶文件被下載到存儲器件的情況下用于這種文件的存儲空間。為此將在存儲文件系統(tǒng)的結構中主動提供的文件標記為“可丟棄的”,且如果需要,稍后將其移除來至少收回維持存儲使用安全余量所需的空閑存儲空間。因為用戶使用各種可丟棄文件的概率在一個可丟棄文件和另一個之間可能不同,因此,根據(jù)一個或多個標準,諸如使用文件的概率、與使用文件相關聯(lián)的可能收益、文件的大小、文件的類型、文件的位置、文件的年代等,預先給每個主動提供的文件(即,每個可丟棄文件)分配丟棄優(yōu)先級。例如,可以通過收益的潛在可能來確定丟棄優(yōu)先級。根據(jù)另一例子,電影宣傳片或廣告將具有比實際電影更高的丟棄優(yōu)先級,這是因為用戶通常不喜歡看宣傳片和廣告。根據(jù)另一例子,最可能被用戶使用的一個或多個可丟棄文件將被分配最低丟棄優(yōu)先級,這意味著這種文件將是從存儲器件移除的最后的(一個或多個)文件。換句話說,可丟棄文件的使用概率越高,被分配給該文件的丟棄優(yōu)先級的級別越低。如果即使一個或多個可丟棄文件被移除了,期望的存儲使用安全余量也不完全恢復,則將從存儲器件移除另外的可丟棄文件,直到恢復期望的存儲使用安全余量。簡言之,諸如文件系統(tǒng)的數(shù)據(jù)結構實現(xiàn)用于了存儲和組織計算機文件的方法。文件系統(tǒng)包括針對存儲、層次地組織、操縱、導航、訪問和提取數(shù)據(jù)而實施的抽象數(shù)據(jù)類型和元數(shù)據(jù)的集合。抽象的數(shù)據(jù)類型和元數(shù)據(jù)形成“目錄樹”,通過該“目錄樹”,可以訪問、操縱和啟動計算機文件(在此也簡稱為“數(shù)據(jù)文件”或“文件”)?!澳夸洏洹蓖ǔ0ǜ夸浐涂蛇x的子目錄。目錄樹被存儲在文件系統(tǒng)中作為一個或多個“目錄文件”。在文件系統(tǒng)中包括的元數(shù)據(jù)和目錄文件的集合在此被稱為“文件系統(tǒng)結構”。因此,文件系統(tǒng)包括數(shù)據(jù)文件和有助于訪問、操縱、更新、刪除和啟動該數(shù)據(jù)文件的文件系統(tǒng)結構。文件分配表(“FAT”)是示例的文件系統(tǒng)架構。FAT文件系統(tǒng)與包括DR-DOS,OpenDOS, MS-DOS, Linux, Windows等的各種操作系統(tǒng)一起使用。FAT結構的文件系統(tǒng)使用集中了存儲關于哪些存儲區(qū)域是空閑或被分配的和每個文件被存儲在存儲器件上哪里的信息的表。為了限制該表的大小,按稱為“簇”的連續(xù)扇區(qū)的組向文件分配存儲空間。由于存儲器件已經演化,因此簇的最大數(shù)量已經增加且用于標識簇的位的數(shù)量已經增長了。FAT格式的版本來源于表位的數(shù)量:FAT12使用12位;FAT16使用16位,且FAT32使用32位。另一文件系統(tǒng)架構已知為新技術文件系統(tǒng)(“NTFS”)。目前,NTFS是Windows NT、包括其稍后的版本 Windows2000, Windows XP, Windows Server2003, Windows Server2008,和Windows Vista的標準文件系統(tǒng)。FAT32和NTFS是可以向存儲器件100提供的示例文件系統(tǒng)。圖1示出了典型的存儲器件100。存儲器件100包括存儲各種文件(例如,音樂文件、視頻文件等)的存儲區(qū)域110,各種文件中的一些可以是用戶文件,且其他可以是發(fā)行商文件。存儲器件100還包括經由數(shù)據(jù)和控制線130來管理存儲區(qū)域110的存儲控制器120。存儲控制器120還經由主機接口 150與主機設備140通信。主機設備140可以是專用硬件或通用計算平臺。存儲區(qū)域110可以是例如NAND閃存類型的。存儲控制器120通過控制例如“讀”,“寫”和“擦除”操作、損耗平衡等且通過控制與主機140的通信來控制所有去往/來自存儲區(qū)域110的數(shù)據(jù)傳輸和去往/來自主機設備140的數(shù)據(jù)傳輸。存儲區(qū)域110可以包含例如用戶文件和發(fā)行商的文件、被允許僅由授權主機設備使用的受保護數(shù)據(jù)、和僅由存儲控制器120內部使用的安全數(shù)據(jù)。主機(例如主機140)不能直接訪問存儲區(qū)域110。也就是說,如果主機140要求或需要來自存儲器件100的數(shù)據(jù),主機140必須向存儲控制器120請求它。為了有助于容易地訪問在存儲設備100中存儲的數(shù)據(jù)文件,給存儲設備100提供文件系統(tǒng)160。存儲區(qū)域110在功能地被劃分為三個部分:用戶區(qū)域170、發(fā)行者區(qū)域180和空閑存儲空間190。用戶區(qū)域170是其中存儲了用戶文件的存儲區(qū)域110內的存儲空間。發(fā)行商區(qū)域180是其中存儲了發(fā)行商文件的存儲區(qū)域110內的存儲空間。空閑的存儲空間190是存儲區(qū)域110內的空的存儲空間??梢允褂每臻e的存儲空間190來保存用戶文件或發(fā)行者文件。當在空閑存儲空間190中存儲用戶文件時,將保存用戶文件的存儲空間從空閑存儲空間190中減去并添加到用戶區(qū)域170。類似地,當在空閑存儲空間190中存儲用戶文件時,保存發(fā)行商文件的存儲空間從空閑存儲空間190中減去并添加到發(fā)行商區(qū)域180。如果從存儲區(qū)域110移除(S卩、刪除)用戶文件或發(fā)行商文件,空閑了的存儲空間添加到(其返回至Ij)空閑存儲空間190。如果空閑存儲空間190的大小允許,則存儲器件100的用戶可以從主機140下載用戶文件到存儲區(qū)域110。下載的用戶文件將被存儲在空閑存儲空間190中,且如以上所述,保存該文件的存儲空間將從空閑的存儲空間190減去且被添加到用戶區(qū)域170。如上所述,用戶文件具有高于其他(例如,發(fā)行商)文件的優(yōu)先級,且為了保證該優(yōu)先級,設置期望的存儲使用安全余量,且如果需要,以以下描述的方式恢復期望的存儲使用安全余量。主機140包括存儲分配器144,其有助于恢復空閑存儲空間190。存儲分配器144可以是硬件、固件、軟件或其組合。通常,存儲分配器144確定向主機140通信的文件(例如文件142)是用戶文件還是發(fā)行商文件,且然后相應地標記所通信的文件(B卩,作為不可丟棄的文件或作為可丟棄的文件)。如果存儲分配器114確定向主機140通信的文件(例如,文件142)是不可丟棄的,例如,因為該文件是用戶文件,則存儲分配器144以常規(guī)的方式在存儲區(qū)域110中存儲該文件。如上所述,存儲區(qū)域100內的保存不可丟棄文件的存儲空間將被添加到用戶區(qū)域170或是用戶區(qū)域170的一部分。但是,如果存儲分配器144確定向主機140傳送的文件是可丟棄的,例如因為其是發(fā)行商文件,則存儲分配器144標記該文件為可丟棄的。應理解,在一些實施方式中,為了將文件標記為可丟棄的,存儲分配器144標記在文件系統(tǒng)160中的文件系統(tǒng)結構以指示該文件是可丟棄文件。在其他實施方式中,為了標記該文件為可丟棄的,存儲分配器144將文件本身標記為可丟棄文件。如果空閑存儲空間190大于期望的存儲使用安全余量,則存儲分配器144還在空閑存儲空間190中存儲標記的可丟棄文件,且如上所述,將保持可丟棄文件的空閑存儲空間190內的存儲空間從空閑存儲空間190中減去(SP,減小空閑存儲空間),且添加至發(fā)行商區(qū)域180 (該添加在邏輯上示為可丟棄文件182)。如上所述,發(fā)行商文件可以被用戶使用的概率在不同發(fā)行商文件之間可能不同,這使得具有最小使用概率的發(fā)行商文件成為從存儲區(qū)域110移除的第一候選。因此,除了標記文件為不可丟棄的或可丟棄的以外,存儲分配器144在可丟棄文件被存儲在存儲區(qū)域110中之前、同時或之后還給每個可丟棄文件分配丟棄優(yōu)先級。存儲分配器144藉由向每個可丟棄文件分配的丟棄級別還知道可以或應該丟棄(即從存儲區(qū)域110刪除或移除)可丟棄文件的以便恢復為未來的用戶文件而原始預留的空閑存儲空間(即,恢復期望的存儲使用安全余量)的順序。因此,如果用戶想要在存儲區(qū)域110中存儲新用戶文件,但是沒有足夠的空閑存儲空間來容納該用戶文件(這意味著存儲使用安全余量比期望的窄),存儲分配器144使用被分配給可丟棄文件的丟棄優(yōu)先級來一個接一個迭代地刪除可丟棄文件,來收回更多的空閑存儲空間(即,擴展空閑的存儲空間190),直到期望的存儲使用安全余量被完全恢復。如上所述,完全恢復的存儲使用安全余量高概率地保證足夠的空閑存儲空間被預留用于未來的用戶文件。僅響應于接收到存儲新用戶文件的請求時,才從存儲器件100移除或刪除可丟棄文件,這是因為考慮用戶可能有時想要使用存儲的可丟棄文件,且因此,只有新用戶文件需要容納該文件的存儲空間時,才從存儲器件移除可丟棄文件。存儲分配器144可以被嵌入或并入到主機140中,或其可以駐留在主機140和存儲器件100的外部(被示出為虛線框144’)。存儲分配器144具有存儲器件100的、或與其相關聯(lián)的文件系統(tǒng)的代表性映像。存儲分配器144使用存儲器件的文件系統(tǒng)映像來將文件標記為不可丟棄的或為可丟棄的,且向每個可丟棄文件分配丟棄級別。在一個例子中,文件系統(tǒng)包括FAT,且在該情況下,在與該文件相關的FAT條目的未使用部分中,通過設置一個或多個未使用的位來進行該標記。因為不同的文件系統(tǒng)具有不同的結構,標記文件(即為不可丟棄或可丟棄的)且分配丟棄級別適用于使用的文件系統(tǒng)結構,如在圖6到10中所詳述以及結合這些圖所描述的。圖2是根據(jù)另一示例實施例的便攜存儲器件200的方框圖。存儲控制器220類似于存儲控制器120 —樣運作,且存儲分配器244類似于存儲分配器144 一樣運作。存儲分配器244可以是硬件、固件、軟件或其任意組合。存儲分配器244內部地與存儲控制器220合作。無論何時存儲控制器220從主機240接收在存儲區(qū)域210中存儲文件的存儲請求,該請求包括該文件是否是可丟棄文件的指示,存儲控制器220都通知存儲分配器244該存儲請求和該文件是否是可丟棄的。然后,存儲分配器244在與存儲器件200相關的文件系統(tǒng)的結構中標記該文件為不可丟棄或可丟棄。通常,在主機240上運行的應用確定文件是可丟棄文件,并向存儲控制器220發(fā)送標記或其他指示來指示該文件是可丟棄文件。在主機240上運行的應用發(fā)送標記或其他指示作為用于請求在存儲器件上存儲文件的存儲協(xié)議的部分。這種存儲協(xié)議的例子包括POSIX文件系統(tǒng)功能或java.1o類樹的使用。如果存儲分配器244確定該新文件是可丟棄的,存儲分配器244根據(jù)文件的使用概率向新文件分配丟棄優(yōu)先級。然后,存儲分配器244評估空閑存儲空間290的當前大小,且決定是否應該從存儲區(qū)域210移除(即,刪除)一個或多個可丟棄文件以便為新文件制造空間。如果應該從存儲器件移除可丟棄的一個文件或多個文件,則存儲分配器244決定哪個(些)文件是用于移除的當前候選文件。然后,存儲分配器244通知存儲控制器220應該從存儲區(qū)域210移除的可丟棄文件,且響應于該通知,存儲控制器220移除由存儲分配器244指示的可丟棄的一個文件或多個文件。在便攜存儲器件200的一些配置中,存儲分配器244可以被功能性地放置在存儲控制器220和存儲區(qū)域210之間。在其中存儲分配器244被功能性地放置在存儲控制器220和存儲區(qū)域210之間的配置中,存儲分配器244或存儲區(qū)域210必須承擔存儲控制器220的一些功能。在這種配置中,存儲區(qū)域210由以高于快閃NAND協(xié)議的級別來通信的存儲器單元構成。圖3是根據(jù)示例實施例的存儲分配器300的方框圖。存儲分配器300包括存儲器單元310、處理器320和接口 330。存儲器單元310可以保持與存儲器件(例如,圖2的存儲器件200)相關聯(lián)的文件系統(tǒng)結構或文件系統(tǒng)結構的映像。處理器320管理與該存儲器件相關聯(lián)的文件系統(tǒng)。接口 330可以適用于與主機和與存儲器件的存儲控制器合作,如圖1中所示的,或僅與存儲器件的存儲控制器合作,如在圖2中所示的。處理器320被配置為或適用于經由接口 330接收請求,來在存儲器件的存儲區(qū)域中存儲文件、且在與存儲分配器300 —起操作的存儲器件相關聯(lián)的文件系統(tǒng)的結構中標記該文件為可丟棄的或為不可丟棄的。如果接口 330功能地附接于圖2的存儲控制器220(且因此接收例如SCSI或打包的(wrapped)USB/MSC命令,而不是文件級別的命令),所接收的請求處于比文件級別低得多的級別。也就是說,所接收的請求將是在邏輯塊地址處存儲扇區(qū)的請求,當由主機適當?shù)胤g時,該邏輯塊地址將對應于一個文件。如果存儲控制器220支持NVMHCI協(xié)議或諸如NFS或類似協(xié)議的聯(lián)網(wǎng)文件系統(tǒng)協(xié)議,存儲控制器220可以得到文件級別的請求。因此,在諸如存儲控制器220的存儲控制器和諸如接口 330的接口之間的通信不限于NVMHCI或類似于NVMHCI的實施方式。通信接口 330可以與存儲分配器300是一體的,如圖3所示。處理器320還被配置為或適用于向存儲器件發(fā)送標記文件,標記該文件為可丟棄的步驟包括向該文件分配丟棄優(yōu)先級的步驟。如果由存儲器件使用的文件系統(tǒng)是基于FAT的,處理器320通過在對應于標記的文件的FAT中向m個最高(即,最高有效)位(例如,m=4)設置對應的值,向標記的文件分配丟棄優(yōu)先級。設置給在FAT條目中的最高有效位的對應值、或設置給NTFS目錄條目的值可以是文件的屬性(attribute),或可以與文件的屬性相關。“屬性”意味著在FAT表或NTFS表的頭部中的元數(shù)據(jù)標簽或某種數(shù)據(jù)結構,該FAT表或NTFS表包含關于該表內存儲的內容的類型的信息?!皬V告”、“獎勵內容”和“推廣(空閑)內容”是可以在FAT表或在NTFS表中存儲的示例類型的內容。設置丟棄級別的替換標準是例如最后訪問的文件、文件大小、文件類型等。專用于標記文件的FAT32條目的最高位的數(shù)量m可以是四個或少于四個,這是因為不使用這些位。另外,所使用的位越多,則可以使用的丟棄優(yōu)先級越多。例如,使用三個位(即,m=3)提供八個(23=8)丟棄優(yōu)先級且使用四個位(即,m=4)提供十六個(24=16)丟棄優(yōu)先級(即,包括被分配給不可丟棄的文件的丟棄優(yōu)先級“O”)。換句話說,如果標記的文件是不可丟棄的,所述處理器將m個最高位的值設置為0,或如果標記的文件是可丟棄的,m個最高位的值則設置為在I和2m-l之間的值。丟棄優(yōu)先級指示標記文件可以或應該從存儲器件丟棄的優(yōu)先級。例如,取決于實施方式,值“I”可以表示以最低優(yōu)先級或以最高優(yōu)先級可丟棄的文件,且值“2m_l”可以分別表示以最高優(yōu)先級或以最低優(yōu)先級可丟棄的文件。處理器320可以根據(jù)文件的預期使用,如上文結合要由存儲器件的用戶使用主動提供的文件的概率或可能性所解釋的,來向標記文件分配丟棄優(yōu)先級。處理器320可以憑借或響應于接收存儲器件中存儲新文件的每個請求,更新標記文件的丟棄優(yōu)先級。處理器320可以與在存儲器件中存儲文件的一個或多個新請求獨立地更新給定的標記文件的丟棄優(yōu)先級。例如,先前是高優(yōu)先級的文件可以在特定時間間隔之后降低其優(yōu)先級。如果在存儲器件中存儲的文件與等于或大于預定丟棄閾值的丟棄優(yōu)先級相關聯(lián)則處理器320刪除該文件。處理器320可以基于文件寫或添加的數(shù)量,或取決于對存儲器件上的空閑存儲空間的預期使用或新發(fā)行商文件的可用性,來(重新)設置丟棄閾值。存儲器單元310可以保存包含處理器320向在存儲器件中存儲的文件分配的丟棄優(yōu)先級的分配表340。另外,分配表340可以保存文件的標識符和將文件與被分配給文件的丟棄優(yōu)先級相關聯(lián)的信息。分配表340可以另外保存丟棄閾值。在分配表340中保存的信息允許處理器320標識可以從存儲器件移除哪個或哪些文件來恢復期望的存儲使用安全余量。響應于接收在存儲器件中存儲新文件的請求,處理器320評估在存儲器件上的空閑存儲空間的大小,且如果存儲器件上的空閑存儲空間(f)的評估大小大于預定大小,則在存儲器件中存儲該新文件,或如果其不大于預定大小,處理器320在存儲器件內搜索可以刪除的一個或多個可丟棄文件,且在找到這樣的一種或多種文件時,處理器320刪除該一個文件或多個文件來擴展當前空閑的存儲空間(f),以便擴展空閑存儲空間的總大小等于或大于預定大小。如果與可丟棄文件相關聯(lián)的丟棄優(yōu)先級等于或大于預定丟棄閾值(例如,在I和15之間(包含本數(shù)),例如15),則可以從存儲器件刪除該可丟棄的一個文件或多個文件。在空閑存儲空間擴展為足夠之后,處理器320允許在擴展的空閑存儲空間中存儲該新文件。“空閑存儲空間被擴展為足夠”意味著,通過一個接一個地釋放占用的存儲空間來擴展空閑存儲空間,直到總空閑存儲卡可以容納新文件,而沒有縮小上述期望的存儲使用安全余量,或最終直到擴展的空閑存儲空間的總大小等于或大于預定大小,或直到移除了所有可丟棄文件??刂破?20可以是標準的現(xiàn)貨芯片上系統(tǒng)(“SoC”)器件或包裝中系統(tǒng)(“SiP”)器件或通用處理單元,其具有當被執(zhí)行時進行在此描述的步驟、操作和評估的特定軟件。或者,處理器320可以是通過使用硬件來實施在此描述的步驟、操作和評估的專用集成電路(“ASIC”)。圖4是根據(jù)一個示例實施例的用于存儲可丟棄的文件的方法。圖4將結合圖1描述。在步驟410中,主機140接收在存儲器件100中存儲文件142的請求。在步驟420中,存儲分配器144將該文件標記為“可丟棄”或為“不可丟棄的”,且在步驟430中,如果空閑存儲空間190足夠大,則向存儲器件100的存儲控制器120發(fā)送標記的文件(即,用于在存儲區(qū)域110中存儲)。也在向該文件分配丟棄優(yōu)先級的意義上標記該文件。在步驟440,存儲分配器144基于該標記的文件、且可選地基于已經被標記的一個或多個文件來(通過與存儲控制器120通信)管理存儲區(qū)域110或在存儲區(qū)域110中存儲的文件。圖5是根據(jù)一個示例實施例的用于管理在存儲器件中的可丟棄文件的存儲的方法。將與圖1相關聯(lián)地描述圖5。新文件是用于在存儲器件100存儲的候選者。在知曉存儲器件100的文件系統(tǒng)160的當前映像的情況下,存儲分配器144在步驟510評估空閑存儲空間190的當前大小“f”來查看其當前大小是f的空閑存儲空間190是否能夠容納該新文件(即,該作為用于存儲的候選者的文件)。通常,存儲分配器144取決于新文件是用戶文件還是發(fā)行商文件來處理該新文件。因此,存儲分配器144首先確定該新文件是用戶文件還是發(fā)行商文件。該新文件是用戶文件
在步驟520,存儲分配器144檢查空閑存儲空間190是否能夠容納該新用戶文件。如果空閑存儲空間190能夠容納該新用戶文件(在步驟520中示出為“Y”),存儲分配器144在步驟560中在空閑存儲空間190中存儲該新用戶文件,而不考慮期望的存儲使用安全余量是否由于存儲新用戶文件而被縮小。如果期望的存儲使用安全余量在存儲分配器144在空閑存儲空間190中存儲新用戶文件之后變窄(即,相對于期望的存儲使用安全余量),則存儲分配器144不針對新用戶文件的存儲采取進一步的動作。但是,如果期望的存儲使用安全余量在存儲分配器144在空閑存儲空間190中存儲新用戶文件之后變窄,步驟550包括另外的步驟,其中,存儲分配器144確定哪個所存儲的可丟棄文件應該首先被刪除,哪個可丟棄文件應該其次被刪除,等等,以便維持期望的存儲使用安全余量。存儲分配器144基于存儲分配器144分配給所存儲的可丟棄文件的丟棄級別來確定哪個可丟棄文件應該首先被刪除,哪個可丟棄文件應該其次被刪除,等等。如果在步驟520存儲分配器144確定空閑存儲空間190不能容納該新用戶文件(在步驟520中示出為“N”),則存儲分配器144在步驟530中確定空閑存儲空間190和由可丟棄文件消耗的存儲空間當組合時是否足夠用于存儲該新用戶文件。如果組合的存儲空間不夠(在步驟530中示出為“N”),這意味著不管將刪除多少可丟棄文件,新用戶文件由于其較大的大小都不能被存儲在“非用戶的”儲存區(qū)域。如果組合的存儲空間足夠(在步驟530中示出為“Y”),存儲分配器144在步驟540中在所存儲的可丟棄文件中搜索哪個可丟棄文件可以被刪除以便釋放用于新用戶文件的足夠存儲空間。存儲分配器144通過使用存儲器件100的文件系統(tǒng)來搜索這些可丟棄文件,因為如上所述的,存儲分配器144在存儲器件的文件系統(tǒng)中標記文件為不可丟棄的或可丟棄的。另外,由存儲分配器144向標記的文件分配的丟棄級別也被嵌入到存儲器件的文件系統(tǒng)中,以便每個丟棄級別與對應的標記的文件相關聯(lián)。在找到應該首先被丟棄的可丟棄文件(“DF”)(該文件以下被稱為“DF1”)時,存儲分配器144刪除文件DFl以便添加或返回其存儲空間(該存儲空間以下被稱為“SP1”)到存儲空間190。然后,在步驟550中,存儲分配器144檢查擴展的空閑存儲空間190(S卩,空閑存儲空間190加上最后返回的存儲空間,或f+SPl)是否能夠容納新用戶文件。如果擴展的空閑存儲空間190 (S卩,f+SPl)仍然不能容納新用戶文件(在步驟550中示出為“N”),則存儲分配器144迭代地重復步驟550 (該迭代在555處示出)以便返回附加的存儲空間到空閑存儲空間190 (即,通過找到并刪除應該被刪除的下一可丟棄文件)。在找到具有次高的丟棄優(yōu)先級的下一可丟棄文件(該下一可丟棄文件以下被稱為“DF2”)時,存儲分配器144刪除文件DF2以便釋放并添加附加的存儲空間(該附加的存儲空間以下稱為“SP2”)來釋放存儲空間190。然后,在步驟550中,存儲分配器144再次檢查擴展的空閑存儲空間190 (即,空閑存儲空間190加上兩個最后釋放的存儲空間,或f+SPl+SP2)是否能夠容納該新文件。如果擴展空閑存儲空間190 (即f+SPl+SP2)仍然不能容納該新文件(在步驟550中示出為“N”),則存儲分配器144重復步驟540再一次以便找到應該被刪除的下一可丟棄文件。存儲分配器144迭代步驟540和550直到累積的空閑存儲空間190能夠容納該新用戶文件(在步驟550中示出為“Y”)。然后,在步驟560中,存儲分配器144在存儲區(qū)域110中存儲該新用戶文件。
如上所述,如果實際的存儲使用安全余量在存儲分配器144在空閑存儲空間190中存儲新用戶文件之后變得比期望的存儲使用安全余量窄,則步驟560可以包括附加的步驟,其中,存儲分配器144確定哪個所存儲的可丟棄文件應該首先被刪除,哪個可丟棄文件應該其次被刪除,等等,以便恢復期望的存儲使用安全余量。新文件是發(fā)行商文件如果新文件是發(fā)行商文件,只有空閑存儲空間190能夠容納該新發(fā)行商文件而不縮窄期望的存儲使用安全余量時,存儲分配器144才在存儲區(qū)域110中存儲(在步驟560中)該新發(fā)行商文件。也就是說,如果存儲新發(fā)行商文件將導致縮小期望的存儲使用安全余量,則存儲分配器144可以決定不在存儲區(qū)域I中存儲該新發(fā)行商文件。在這種情況下,存儲分配器144可以抑制對該文件采取任何動作,且不從存儲器件中刪除文件來釋放用于新發(fā)行商文件的存儲空間?;蛘撸鎯Ψ峙淦?44可以在步驟540中刪除一個或多個更高優(yōu)先級的可丟棄文件以便為具有較低丟棄優(yōu)先級的可丟棄文件釋放存儲空間。如上所述,文件被標記到且丟棄級別被嵌入到存儲器件100的文件系統(tǒng)中,且文件被標記的方式和被嵌入到文件系統(tǒng)中的丟棄級別取決于或可以適用于所使用的文件系統(tǒng)。圖6是用于根據(jù)一個示例實施例的用于在FAT32結構的文件系統(tǒng)中標記主動提供的文件的方法。FAT32結構的文件系統(tǒng)使用簇。如上結合FAT32結構的文件系統(tǒng)所述,用于標識FAT32簇的位的數(shù)量是32。圖6將與圖1相關聯(lián)地描述。在步驟610中,F(xiàn)AT32的每個簇的32位中的m個最高有效位(其中m〈4)被分配或專用于標記文件作為不可丟棄的或作為可丟棄的(視情況而定),以及用于為每個可丟棄文件保持對應的丟棄級別。向文件分配丟棄級別通過對對應于標記的文件的所分配的m位設置對應值來進行。在步驟620中,存儲分配器144評估存儲器件100的用戶將使用該主動提供的文件的可能性級別。使用該文件的可能性的評估可以以寄售文件領域的技術人員已知的各種方式來實現(xiàn)。例如,使用該文件的可能性的評估可以基于監(jiān)視使用存儲器件的人的位置,和/所的或監(jiān)視用戶的先前體驗和偏好。使用該文件的可能性的評估還可以基于例如在FAT表或NTFS表內存儲的內容的類型(例如,“廣告內容”,“獎勵內容”,“促銷(免費)內容”等)。存儲分配器144可以使用替換的或附加的標準來評估該文件將被使用的可能性。例如,它可以使用文件的屬性或特性,這可以是、或關聯(lián)于最后訪問的文件、文件大小、文件類型等。在存儲分配器144評估用戶將使用主動提供的文件的可能性的級別之后,存儲分配器144在步驟630中分配與該主動提供的文件的使用的評估的可能性級別對應的丟棄優(yōu)先級。主動提供的文件由存儲器件100的用戶使用的可能性越大,丟棄級別越低。如果m等于四位,這意味著丟棄范圍提供從I (即0001)到15 (即1111)的15個丟棄級別。也就是說,向每個不可丟棄的文件分配丟棄級別0,向具有最低丟棄優(yōu)先級的可丟棄文件分配優(yōu)先級1,且向具有最高丟棄優(yōu)先級的可丟棄文件分配丟棄級別15。在存儲分配器144向主動提供的文件分配對應的丟棄級別之后,存儲分配器144在步驟640中向與主動提供的文件相關聯(lián)的簇的四個最高位分配在I和15之間的對應值。如果主動提供的文件具有與其相關聯(lián)的兩個或多個簇,在每個簇中的四個最高位被設置為相同值。在步驟650中,檢查主動提供的文件是否是需要評估的最后的文件。如果主動提供的文件不是需要評估的最后的文件(在步驟650中示出為“N”),以上述方式評估另一文件。如果主動提供的文件是需要評估的最后的文件(在步驟650中示出為“Y”),主動提供的文件被發(fā)送到存儲器件,且其中在步驟640中設置了 m位的每個的值。圖7是與FAT32表相關聯(lián)的示例目錄區(qū)域700。目錄表700僅是用于圖示的部分表,且如此,表700并未示出FAT目錄條目的所有字段。目錄區(qū)域700保存在相關文件系統(tǒng)中存儲的文件的細節(jié),諸如文件名稱、文件大小以及每個文件在相關存儲空間中何處開始。文件的細節(jié)被保存在以下字段中。字段710保存在相關文件系統(tǒng)中存儲的文件的盤操作系統(tǒng)(“DOS”)文件名,字段720保存文件的擴展名,字段730保存文件的各種屬性,字段740保存文件的第一簇號(“FCN”)的高16位字(bitword),字段750保存文件的第一簇號(“FCN” )的低部分,且字段760保存文件的大小。每個FCN號指示其中可找到文件的第一邏輯簇。目錄區(qū)域700的第一條目保持用于稱為“REALFILE”的示例文件的信息(在770處示出)。REALFILE770具有文件擴展名“DAT”,其FCN是“00000002” (在755處示出)且其大小是“0000 24E4”。在表700中的數(shù)字以十六進制值示出。作為標準的一部分,屬性值“00”(在780處示出)和“20”(未在圖7中示出)指的是“常規(guī)”文件,而屬性值“02”指的是在文件系統(tǒng)中隱藏的文件。文件名“\xE5Consign”指示刪除的文件,而“\xE5”意味著文件名的第一字節(jié)的值在十六進制中是E5。通過示例,F(xiàn)CN號0000 0002 (在755處示出)指定文件REALFILE的第一簇。圖8是根據(jù)示例實施例的示例性部分FAT32表800。FAT32表800被示出為雙字(“DWORD”)陣列,且值是十六進制的值。參考數(shù)字810指示保存FAT32表800的設備的類型,其中“F8”指的是硬盤。FAT32表800包括被指定為簇#1 (在820處示出)、簇#2 (在825處示出),...、和簇#23 (在830處示出)的23個簇。圖8將與圖7相關聯(lián)地描述。FAT32表800中的簇可以是文件的第一簇,或其可以指向文件的下一鏈接的簇,或其可以是文件末尾(“EOF”)指示。再次參考目錄區(qū)域700,文件REALFILE (在770處示出)的第一 FCN是“00000002”(在755處示出),其指向圖8的表800中的簇#2處。如圖8所示,簇#2的值(SP,值“000 0003”)指向(在840處示出)簇#3處,其是下一文件的簇。類似地,簇#3的值(SP“0000 0004”)指向簇#4處,其是下一文件的簇。簇#4具有值“OFFF FFFF" (“F”是表示十進制值“15”的十六進制數(shù)字),其中“OFFF FFFF”(在850處示出)表示文件的EOF指示,且零值(在860處示出)表示丟棄級別O。因此,文件REALFILE與三個簇(即,簇#2,簇#3,和簇#4)相關聯(lián)。如上所述,丟棄級別O被分配給不可丟棄文件。注意,具體文件的每個簇的最高十六進制數(shù)字被設置為所分配給該文件的相同丟棄優(yōu)先級。例如,文件REALFILE已經被分配了丟棄級別“0”,且因此,簇#2,#3,和#4的最高有效十六進制數(shù)字中的每個具有該值(即,值“ O ”,“ O ”值被加了下劃線)。根據(jù)另一例子,其FCN是“ 0000 0005 ”文件的“E5Consign”(如在圖7中示出的)被分配了丟棄優(yōu)先級“I”。因此,屬于該文件的簇#5到12的每個的最高有效十六進制數(shù)字具有值“I”(例如在870處示出)。換句話說,根據(jù)本公開,最高有效十六進制數(shù)字(或,等同地,與具體可丟棄文件相關聯(lián)的簇的四個最高位)被設置為與所分配給該具體文件的丟棄優(yōu)先級對應的相同值。如上所述,用于指示丟棄優(yōu)先級的最高位的數(shù)量m可以不同于四(S卩,m彡4)。圖9是根據(jù)示例實施例的示例部分NTFS表900。NTFS表900保存文件的細節(jié),諸如文件名稱、文件大小等。NTFS表900包括用于保存根據(jù)“正常”數(shù)據(jù)流而改變的文件的“常規(guī)”數(shù)據(jù)(例如數(shù)據(jù)920)的數(shù)據(jù)字段910。根據(jù)本公開,NTFS表900還包括“丟棄信息”字段915用于保存每個評估的文件的丟棄信息(例如,丟棄信息930)。丟棄信息字段915還可以包括除了丟棄優(yōu)先級以外的信息。例如,丟棄信息字段915可以包括關于供應該文件的服務器的信息和其文件必須被丟棄的過期時間。不像基于FAT的文件系統(tǒng),在基于NTFS的文件系統(tǒng)中,所分配給可丟棄文件的丟棄值不限于由一組位規(guī)定的最大數(shù)。這意味著丟棄值的范圍可以自由地選擇。例如,丟棄值的范圍可以從I到25。NTFS是示例的非FAT文件系統(tǒng)。通常,可以將對應的丟棄值設置在對應于標記的文件的基于非FAT的文件系統(tǒng)條目中的數(shù)據(jù)字段。圖10是根據(jù)示例實施例的存儲器件的文件系統(tǒng)1000的邏輯布置。存儲分配器(例如,圖1的存儲分配器144)可以保存與其一起操作的存儲器件的文件系統(tǒng)1000或文件系統(tǒng)1000的映像,或者存儲分配器可以具有對文件系統(tǒng)1000的訪問。文件系統(tǒng)1000包括引導部分1010、與文件系統(tǒng)1000相關聯(lián)的FAT1020、目錄表1030、文件區(qū)域1040和可丟棄文件區(qū)域1050。FAT1020包括可丟棄文件分配區(qū)域1025,其包含可丟棄文件的丟棄優(yōu)先級。目錄表1030包括用于訪問在存儲器件中存儲的任何文件(即,可丟棄文件和/或不可丟棄文件)的訪問信息。文件區(qū)域1040包含不可丟棄文件。索引和數(shù)據(jù)庫區(qū)域1045保存可丟棄文件的索引、以及還保存與可丟棄文件相關聯(lián)的元數(shù)據(jù)。在索引和數(shù)據(jù)庫區(qū)域1045中保存的索引和元數(shù)據(jù)用于計算丟棄級別,但是在實際的丟棄處理期間不需要它們。可丟棄文件區(qū)域1050保存可丟棄文件。圖11示范了根據(jù)本 公開的文件管理方法。圖11將與圖1相關聯(lián)地描述。假設,在時間TO處,兩個用戶文件(B卩,文件“F1”和“F2”)初始地被存儲在存儲區(qū)域110中。因為文件“F1”和“F2”是用戶文件,因此它們被存儲在用戶區(qū)域170中,且由存儲分配器144向它們分配的丟棄級別是零。因為存儲區(qū)域100的總存儲容量是T (在1110處示出),且文件Fl和F2被存儲在存儲器件100中,剩余空閑存儲空間190 (見圖1)的大小是f (在1120處示出)。假設發(fā)行商想要在存儲區(qū)域110中存儲三個主動提供的文件。如上所述,存儲分配器14評估在存儲器件100中的空閑存儲空間190的大小(或在1120處的f)以便確定在存儲區(qū)域110中存儲發(fā)行商的三個主動提供的文件是否將不會縮窄為未來的用戶文件預留的期望存儲使用安全余量(在1130處示出)。如果存儲發(fā)行商的三個主動提供的文件將縮窄存儲使用安全余量1130 (即,期望的存儲使用安全余量),存儲分配器144將抑制存儲這些文件。在該例子中,存儲分配器144確定發(fā)行商的三個主動提供的文件可以被存儲在存儲區(qū)域110中而不減少存儲使用安全余量1130。因此,在時間Tl處,存儲分配器144允許存儲控制器120在存儲區(qū)域110中存儲發(fā)行商的三個主動提供的文件。這三個發(fā)行商的主動提供的文件被指定為“Pl”,“P2”,和“P3”。存儲分配器144還確定文件P1,P2,和P3將被存儲器件100的用戶使用的概率,且向這些文件中的每個分配對應的丟棄級別。然后,存儲分配器144在FAT表,如在圖8中示范的,或在NTFS表中,如在圖9中示范的,存儲所分配給文件的丟棄級別。
在時間T2處,存儲器件100的用戶想要在存儲區(qū)域110中存儲另外兩個文件(即,文件“F3”和“F4”)。存儲分配器144重新評估在存儲器件中的空閑存儲空間190的大小(或在1120處的f),以便確定在存儲區(qū)域110中是否存在足夠的存儲空間來存儲這些另外的文件(即,文件F3和F4)。在該例子中,存儲分配器144確定當前的空閑存儲空間能夠容納文件F3和F4。因此,在時間T2處,存儲分配器144允許存儲控制器120在存儲區(qū)域110中存儲文件F3和F4。因為文件F3和F4是用戶文件,因此文件F3和F4將由存儲器件100的用戶使用的概率是無關的,這是因為用戶文件具有比發(fā)行商文件高的存儲優(yōu)先級,而不管用戶使用文件F3和F4多少次,甚至即使用戶從未使用文件F3和F4。因此,存儲分配器144向文件F3和F4分配丟棄級別“0”,且在FAT表,如在圖8中示范的,或在NTFS表中,如在圖9中示范的,存儲所分配的丟棄級別。在時間T3處,存儲器件100的用戶想要在存儲區(qū)域110中存儲另外一文件(即,文件“F5”)。存儲分配器144重新評估在存儲器件100中的空閑存儲卡190的大小(或在1120處的f),以便確定在存儲區(qū)域110中是否存在足夠的存儲空間來存儲該另一文件(即,文件F5)。在該例子中,存儲分配器144確定當前的空閑存儲空間能夠容納文件F5。因此,在時間T3處,存儲分配器144允許存儲控制器120在存儲區(qū)域110中存儲文件F5。如圖11所示,存儲用戶文件F5縮小了存儲使用安全余量。也就是說,在文件Fl到F5和Pl到P3被存儲在存儲區(qū)域110中之后剩余的在存儲區(qū)域110中的空閑存儲空間f小于存儲使用安全余量1130。因此,存儲分配器144通過移除發(fā)行商的文件(S卩,P1,P2,和P3)之一來復原(reinstate)或恢復存儲使用安全余量。通過移除(即刪除)一個或多個發(fā)行商文件來復原或恢復存儲使用安全余量是因為,如上所述,用戶文件具有最大的存儲優(yōu)先級。如上所述,由存儲分配器144基于存儲分配器144分配給每個存儲的可丟棄文件的丟棄優(yōu)先級,來作出應該從存儲區(qū)域110移除哪個發(fā)行商文件或哪些發(fā)行商文件的決定。返回到圖11,假設在存儲的發(fā)行商文件Pl到P3中,發(fā)行商文件P3被分配了最高丟棄優(yōu)先級(例如,13)。因此,在時間T4處,從存儲區(qū)域110移除文件P3,因此擴大空閑存儲空間190。因為在時間T4處的空閑存儲空間190的大小(在1120處的f)大于存儲使用安全余量1130,因此不需要移除任何更多的發(fā)行商文件。存儲器件100的用戶可能想要移除一個或多個用戶文件。在時間T5處,用戶移除了他的兩個文件(即,文件F4和F5),因此進一步擴大了空閑存儲空間190。文件F4和F5的移除與空閑存儲空間190的大小或存儲使用安全余量無關,這是因為如在此陳述的,重新獲得空閑存儲空間或恢復存儲使用安全余量通過移除需要的數(shù)量的可丟棄文件來進行。假設,發(fā)行商想要在存儲區(qū)域110中存儲另一主動提供的文件。如上所述,存儲分配器144評估空閑存儲空間190的大小(在1120處的f)以便確定在存儲區(qū)域110中存儲發(fā)行商的主動提供的文件是否將不縮小存儲使用安全余量1130。如果存儲發(fā)行商的新主動提供的文件將縮窄存儲使用安全余量1130,則存儲分配器144將抑制存儲該文件。在該例子中,存儲分配器144確定發(fā)行商的新主動提供的文件(B卩,文件“P4”)可以被存儲在存儲區(qū)域Iio中而不減少存儲使用安全余量1130。因此,在時間T6處,存儲分配器144允許存儲控制器120在存儲區(qū)域110中存儲發(fā)行商的文件P4。存儲分配器144還確定文件P4將被存儲器件100的用戶使用的概率,并向該文件分配對應的丟棄級別。然后,存儲分配器144在FAT表,如在圖8中示范的,或在NTFS表中,如在圖9中示范的,存儲所分配給文件P4的丟棄級別.存儲新發(fā)行商的文件和新用戶文件和移除所存儲的文件的處理可以繼續(xù)同時每次向存儲器件110添加新文件時,存儲分配器144評估空閑存儲空間190的當前大小,并確定必須從存儲區(qū)域110移除哪個發(fā)行商文件或哪些發(fā)行商文件(如果移除的話)。假設向可丟棄文件分配丟棄級別可以基于例如用戶體驗或偏好、基于用戶的全球定位系統(tǒng)(“GPS”)位置和/或其他標準。例如,如果存儲器件的用戶好像(基于先前的用戶體驗)喜歡特定類型的音樂,則如果發(fā)行商的文件包含用戶最喜歡的音樂類型之一的音樂,存儲分配器可以向該文件分配相對低的丟棄優(yōu)先級(例如,在I到15的范圍內的3)。但是,如果用戶(即,基于先前用戶體驗)不喜歡發(fā)行商的音樂,存儲分配器可以向相關發(fā)行商的文件分配較高的丟棄優(yōu)先級(例如,在I到15的范圍內的12).用于向可丟棄文件分配丟棄級別的標準可以包括文件的預期使用、與使用該文件相關聯(lián)的預期收益、文件的類型、文件的大小、文件在存儲器件中的位置、文件的年代和在此指定的其他標準或參數(shù)。其他標準、無論單獨或結合在此描述的任意標準,可以類似地使用,且可以使用一個或多個標準來進行丟棄級別的分配。另外,可以使用不同標準來向不同可丟棄文件分配丟棄級別。在另一例子中,如果發(fā)行商想要向用戶發(fā)送與位置有關的廣告(即,與具體位置內呈現(xiàn)的產品或服務相關的廣告),則存儲分配器可以向發(fā)行商的廣告分配根據(jù)用戶的變化的位置而改變的丟棄優(yōu)先級。也就是說,用戶離具體位置越遠,丟棄級別將越高,這是因為依據(jù)變得遠離具體位置,可假設用戶對消費在該具體位置處呈現(xiàn)的產品或服務不敢興趣。如上所述,在FAT中記錄可丟棄文件的簇鏈,其中一標志將與FAT32條目相關的文件標識為可丟棄文件。通常,該標志在每個FAT32條目的四個最高有效位中。因為簇鏈可以分配給可丟棄文件,但不與不可丟棄的文件相關聯(lián),因此有可能諸如chkdsk或fsck.vfat的工具(utility)將把可丟棄文件轉變?yōu)椴豢蓙G棄文件(也稱為“真實”文件),由此降低文件系統(tǒng)160的安全性。另外,存在風險:一些FAT回復工具將復位在FAT32條目中的可丟棄文件的標志。FAT32文件系統(tǒng)檢查和修復工具通常遍歷(step through)文件系統(tǒng),且應用規(guī)則以便修正通常錯誤。通常,這些工具可以在FAT中查找在目錄表內的第一簇號(FCN)列中的不具有對應的條目的簇鏈。這些工具將在FAT中的不具有任何目錄或文件條目的簇分配視為未說明的(unaccounted)數(shù)據(jù)脆片(也稱為孤簇(orphan clusters)),且這些工具可以刪除這些孤簇或在目錄表中建立對應的文件條目。因為在此描述的可丟棄文件系統(tǒng)可能利用原本將被認為是孤簇的簇,因此這些工具可能不適當?shù)貙⒖蓙G棄文件轉變?yōu)椴豢蓙G棄文件,或整個移除可丟棄文件。為了解決這些問題,在一些實施方式中,存儲分配器144可以將可丟棄文件與主FAT中的簇鏈相關聯(lián),其中,該簇鏈隱藏可丟棄文件的物理位置,且存儲分配器144在可丟棄FAT、數(shù)據(jù)庫或一個或多個位置文件中存儲該文件的物理位置。通常,可丟棄FAT、數(shù)據(jù)庫或一個或多個位置文件對主FAT來說不可見,且在一些實施方式中,與可丟棄FAT、數(shù)據(jù)庫、或一個或多個位置文件相關聯(lián)的屬性可以被使能以防止主機操作系統(tǒng)訪問該可丟棄FAT、數(shù)據(jù)庫或一個或多個位置文件。
如之前注意的,F(xiàn)AT32中的每個條目是32位,但僅使用較低的28位。通常,較高的四位被預留且被設置為零。(需要FAT32的兼容實施方式來在較高的四位被設置在分配的簇上的情況下忽略較高的四位,且當寫新的FAT條目時將較高的四位設置為零。)用與可丟棄文件相關聯(lián)的每個簇鏈的FAT條目的較高(upper)四位內的標志來區(qū)分可丟棄文件與不可丟棄文件。標準FAT32驅動器將可丟棄文件看作已分配的空間,且不會寫在它們上。但是,存儲分配器144可以周期性地進行諸如參考圖5所描述的那些操作,以便在存儲器件110中維持空閑空間分配,且可以恢復分配給可丟棄文件的空間。通過使用主FAT和可丟棄FAT、數(shù)據(jù)庫和一個或多個位置文件中的至少一個,可以擴展主FAT。當結合在文件分配表查找邏輯中的分支使用擴展的主FAT時,使得如果FAT條目的較高四位非零,則替代在主FAT中的FAT條目,使用在可丟棄FAT、數(shù)據(jù)庫或一個或多個文件中的反映可丟棄文件的物理位置的信息。由于在可丟棄FAT、數(shù)據(jù)庫或一個或多個位置文件中的信息覆寫主FAT的FAT條目中的值,因此諸如chkdsk和fsck.vfat的工具將不把可丟棄文件轉變?yōu)椴豢蓙G棄文件,這是因為這些工具將可丟棄文件的簇視為與可丟棄FAT、數(shù)據(jù)庫或一個或多個位置文件中的目錄或文件條目相關聯(lián)。而且,F(xiàn)AT恢復工具將不復位FAT32中的指示一個文件是可丟棄文件的標志,這是因為諸如chkdsk和fsck.vfat的工具將與可丟棄文件相關的簇視為與可丟棄FAT、數(shù)據(jù)庫或一個或多個位置文件中的目錄或文件條目相關聯(lián),而不是作為空閑空間。當文件系統(tǒng)160利用主FAT1200和可丟棄FAT1201時,為了存儲已經被標記為可丟棄文件的文件,存儲分配器144更新如圖12a所示的主FAT1200來將分配給可丟棄文件的簇鏈1202與該文件相關聯(lián)。通常,簇鏈1202可以與相關聯(lián)于簇鏈1201的可丟棄文件相同大小或大于該可丟棄文件。在一些實施方式中,簇鏈1202在主FAT中遮蔽可丟棄文件的物理位置。通常,如上參考圖7和8描述的,開始于條目1204的簇鏈中的每個簇指向簇鏈1202的下一順序的簇,直到如條目1206中示出的諸如IFFF FFFF的值指示簇鏈1202的結尾。但是,在其他實施方式中,簇鏈的每個簇可以具有諸如IFFF FFFF的值,指示該簇是個別分配的簇,而不是指向簇鏈的下一順序。簇鏈1202的第一條目1204指向可丟棄FAT1201中的對應條目1208,如圖12b所示。如以上參考圖7和8描述的,對于每個文件,在可丟棄FAT1201內的簇鏈1202中的每個簇指向該文件的下一順序的簇,直到諸如條目1210中示出的IFFF FFFF的值指示文件的EOF。應該理解,一個簇鏈1202可以與多于一個文件相關聯(lián)。例如,如圖12b所示,簇鏈1202包括用于第一文件1212的從簇#6 (元素1208)到簇#9 (元素1210)的第一組簇,且包括用于第二文件1214的從簇#10到簇#11的第二組簇。另外,應該理解,主FAT1200和對應的可丟棄FAT1201可以包括多于一個簇鏈。例如,如圖12a和12b所示,主FAT可以包括簇#6到簇#11的簇鏈1202,且可以包括簇#20到簇#22的第二簇鏈1216。在其他實施方式中,不使用主FAT1200和可丟棄FAT1201,文件系統(tǒng)可以使用主FAT1200來將一個或多個文件與如上所述的簇鏈相關聯(lián)且利用數(shù)據(jù)庫或一個或多個分開的位置文件代替可丟棄FAT,來存儲與簇鏈相關的一個或多個可丟棄文件的物理位置。數(shù)據(jù)庫或位置文件可以是存儲在文件系統(tǒng)的不可丟棄區(qū)域中的文本文件或二進制文件。
圖13是用于使用FAT和可丟棄FAT來管理存儲器件的方法。圖13將與圖1相關聯(lián)地描述。在步驟1310,主機1410接收在存儲器件100中存儲文件142的請求。在一些實施方式中,存儲分配器144基于與該文件相關的一個或多個寫請求來得出在存儲器件100中存儲文件142的請求。在步驟1320,存儲分配器144在與上述存儲器件100相關的文件系統(tǒng)結構中標記該文件為“可丟棄”或為“不可丟棄”。在步驟1320中,也在給文件分配丟棄優(yōu)先級的意義上標記文件。在步驟1330,當該文件是可丟棄文件時,存儲分配器144更新主FAT來將分配給該文件的簇鏈與該文件相關聯(lián)。在步驟1340,存儲分配器144更新可丟棄FAT來反映該文件在存儲器件100中的物理位置。在步驟1350中,存儲分配器144 (通過與存儲控制器120通信)基于標記的文件且根據(jù)可丟棄FAT來管理存儲器件100的存儲區(qū)域,或管理被存儲在存儲區(qū)域110中的文件。存儲區(qū)域的管理類似于以上參考圖5所描述的。圖14是用于使用FAT和數(shù)據(jù)庫來管理存儲器件的方法。圖14將與圖1相關聯(lián)地描述。在步驟1410,主機140接收在存儲器件100中存儲文件142的請求。在步驟1420中,如上所述,存儲分配器144在與上述存儲器件100相關聯(lián)的文件系統(tǒng)結構中標記該文件為“可丟棄”或為“不可丟棄”。在步驟1420中,也在給該文件分配丟棄優(yōu)先級的意義上標記該文件。在步驟1430,當該文件是可丟棄文件時,存儲分配器144更新FAT來將分配給該文件的簇鏈與該文件相關聯(lián)。在步驟1440,存儲分配器144更新數(shù)據(jù)庫來反映該文件在存儲器件100中的物理位置。在步驟1450中,存儲分配器144基于FAT和數(shù)據(jù)庫來(通過與存儲控制器120的通信)管理存儲器件100的存儲區(qū)域,或管理被存儲在存儲區(qū)域110中的文件。圖15是用于使用FAT和位置文件來管理存儲器件的方法。圖15將與圖1相關聯(lián)地描述。在步驟1510,主機140接收在存儲器件100中存儲文件142的請求。在步驟1520中,如上所述,存儲分配器144在與上述存儲器件100相關聯(lián)的文件系統(tǒng)結構中標記該文件為“可丟棄”或為“不可丟棄”。在步驟1520中,也在給向該文件分配丟棄優(yōu)先級。在步驟1530,當該文件是可丟棄文件時,存儲分配器144更新FAT來將被分配給該文件的簇鏈與該文件相關聯(lián)。在步驟1540,存儲分配器144更新位置文件來反映該文件在存儲器件100中的物理位置。在步驟1550中,存儲分配器144基于FAT和位置文件來(通過與存儲控制器120通信)管理存儲器件100的存儲區(qū)域,或管理存儲在存儲區(qū)域I中的文件。在其他實施方式中,為了增強安全性,且為了防止文件系統(tǒng)被諸如dosf sck (也已知為fsck.vfat)或chkdsk的文件系統(tǒng)集成工具破壞或損毀,存儲分配器144在可丟棄文件區(qū)域中不按順序向簇鏈分配簇,以保證在不讀存儲可丟棄文件的物理位置的可丟棄FAT、數(shù)據(jù)庫、或一個或多個位置文件的情況下不能重建簇鏈。另外,在FAT中生成與簇鏈的打亂的簇中的一個或多個相關聯(lián)的范圍文件,以便諸如dosf sck的工具將不把可丟棄文件轉變?yōu)椴豢蓙G棄文件,或復位該文件的較高位中的指示該文件是可丟棄的標志。在一些實施方式中,可以使能諸如隱藏、系統(tǒng)、目錄或卷屬性的與范圍文件相關的屬性,來防止主機操作系統(tǒng)訪問這些范圍文件。
圖16是圖示了包括簇鏈的FAT的圖,其中,組成該簇鏈的兩個或多個簇的順序已經被打亂。如圖16所示,構成在條目1602處開始的簇鏈的簇不連續(xù)。例如,在條目1602處開始的簇鏈的順序是簇#13、簇#9、簇#7、簇# 18、和簇#21。在FAT中,每個簇的值指向簇鏈中的下一簇,如以上圖7和8描述的。除了打亂構成與一個或多個文件相關聯(lián)的簇鏈的簇的順序以外,還可以在FAT中建立包括與該文件相關聯(lián)的簇鏈的一個或多個簇的一個或多個范圍文件。在一些實施方式中,每個范圍文件可以表示在作為簇鏈的一部分的簇的一范圍內的所有簇。由于在范圍文件和構成簇鏈的簇之間的關聯(lián),因此諸如chkdsk或fsck.vfat的工具將不把可丟棄文件轉變?yōu)椴豢蓙G棄文件,且FAT恢復工具將不復位FAT32條目中的指示該文件是可丟棄文件的圖17是圖示在FAT中建立的一個或多個范圍文件的圖表,每個范圍文件存儲在條目1602處開始的簇鏈的至少一個簇。例如,第一范圍文件1604存儲來自在條目1602處開始的簇鏈的簇#7和簇#9,且第二范圍文件1606存儲來自在條目1602處開始的簇鏈的簇#13、簇 #18、和簇 #21。范圍文件可以存儲來自多于一個簇鏈的簇。例如,除了以上所列的來自開始于條目1602處的簇鏈的簇以外,第一范圍文件1604可以存儲來自開始于條目1608處的簇鏈的簇#5和簇#10。類似地,除了以上所列的來自開始于條目1602處的簇鏈的簇以外,第二范圍文件1606可以存儲來自開始于條目1608處的簇鏈的簇#16、簇#17、和簇#22。圖18是用于使用FAT管理存儲器件的方法的流程圖,其中,組成簇鏈的兩個或更多簇的順序被打亂。圖18將與圖1相關聯(lián)地描述。在步驟1810,主機140接收在存儲器件100中存儲文件142的請求。在步驟1820中,如上所述,存儲分配器144在與存儲器件100相關聯(lián)的文件系統(tǒng)結構中標記該文件為“可`丟棄”或為“不可丟棄”。在步驟1820中,也在給該文件分配丟棄優(yōu)先級的意義上標記該文件。在步驟1830,當該文件是可丟棄文件時,存儲分配器144更新FAT來將分配給該文件的簇鏈與該文件相關聯(lián)。在步驟1840,在FAT內,基于以下來打亂與該文件相關的簇鏈的兩個或更多簇的順序:諸如存儲器件100內的存儲器的量、簇鏈的總大小、在簇鏈的兩個順序簇之間的簇的數(shù)量、和/或閃存管理算法,該閃存管理算法可以考慮擦除塊大小、在分配的塊中每個邏輯地址的物理塊地址、和/或與物理塊地址相關聯(lián)的每個頁的損耗平衡數(shù)據(jù)的閃存管理算法。在一些實施方式中,使用提供在先前沒有被分配的每個簇的范圍內的偏移量的偽隨機數(shù)生成器或熵隨機數(shù)生成器來打亂簇鏈的兩個或多個簇的順序。在一些實施方式中,使用考慮來自主機系統(tǒng)140和/或存儲器件100的不確定值的單向哈希函數(shù)(one-way hash function)來打亂簇鏈的兩個或多個簇的順序。在步驟1850,在FAT中建立第一范圍文件,該第一范圍文件包括與第一文件相關聯(lián)的簇鏈的至少一個簇。在步驟I860,存儲分配器144 (通過與存儲分配器120通信)基于FAT和范圍文件來管理存儲器件100的存儲區(qū)域110,或管理在存儲區(qū)域110中存儲的文件。在其他實施方式中,該文件系統(tǒng)可以實現(xiàn)轉換鎖,來保證當可丟棄文件打開時該可丟棄文件不被轉換為不可丟棄文件。舉例而言,一可放棄文件在以下時間段期間可以是打開的:在例如向存儲器件100下載可丟棄文件期間或在與可丟棄文件相關的數(shù)據(jù)被發(fā)表給公眾之前的時間段期間、諸如當在與關于可丟棄文件的電影、歌曲或節(jié)目相關的發(fā)表日期之前向存儲器件100下載可丟棄文件時。通常,這些轉換鎖工作以便使得當設置了轉換鎖時可丟棄文件不能被轉換為不可丟棄文件。圖19是用于在實現(xiàn)主FAT和可丟棄FAT的文件系統(tǒng)中使用轉換鎖(conversionlock)來防止當可丟棄文件打開時轉換可丟棄文件的方法。圖19將與圖1相關聯(lián)地描述。在步驟1910,存儲分配器144接收將可丟棄文件轉換為不可丟棄文件的請求。在步驟1920,存儲分配器144標識與可丟棄文件相關的轉換鎖標識符的值。在步驟1930,存儲分配器144基于轉換鎖標識符的值來確定是否可以將可丟棄文件轉換為不可丟棄文件。通常,存儲分配器144當轉換鎖標識符的值指示可丟棄文件打開時確定可丟棄文件不可轉換,且存儲分配器144當轉換鎖標識符的值指示可丟棄文件未打開時確定可丟棄文件可以被轉換。如果存儲分配器144在步驟1930確定可丟棄文件不可轉換為不可丟棄文件,則存儲分配器144在步驟1940禁止標記可丟棄文件為不可丟棄的。但是,如果存儲分配器144在步驟1930確定可丟棄文件可以被轉換為不可丟棄文件,存儲分配器144在步驟1950繼續(xù)在與存儲器件100相關的文件系統(tǒng)結構中標記該文件為不可丟棄的文件;在步驟1960更新主FAT來反映該文件的物理位置;以及在步驟1970更新可丟棄FAT來移除該文件的物理位置。將理解,當代替可丟棄FAT將數(shù)據(jù)庫或位置文件與主FAT —起使用時,如上所述,用轉換鎖來實現(xiàn)類似方法。在一些實施方式中,基于與應用相關聯(lián)的標識符可以允許該應用進行諸如將可丟棄文件轉換為不可丟棄文件、或檢查轉換鎖標識符的值的操作。通常,建立或下載可丟棄文件的應用可以將用戶標識符(ID)與可丟棄文件相關聯(lián)。用戶ID可以是標識建立了可丟棄文件的應用或用戶的所有者用戶ID。在一些實施方式中,所有者用戶ID是4字節(jié)值。文件系統(tǒng)160向所有者用戶ID提供界定何種與其他用戶或應用相關聯(lián)的附加用戶ID可以訪問可丟棄文件以及這些附加的用戶ID可以針對可丟棄文件采取何種動作的能力。將理解,取決于可丟棄文件的使用,附加的用戶ID可以與單個應用或單個用戶相關聯(lián),或者附加的用戶ID可以是與多個應用或多個用戶相關聯(lián)的共享用戶ID。在一些實施方式中,所有者用戶ID可以允許與附加用戶ID相關的應用來訪問與可丟棄文件相關的預覽數(shù)據(jù)。預覽數(shù)據(jù)可以是可丟棄文件的一部分,其中,在其他實施方式中,預覽數(shù)據(jù)不同于該可丟棄文件、但與該可丟棄文件相關聯(lián)。在一些示例實施方式中,可丟棄文件可以是電影,且預覽數(shù)據(jù)可以包括與電影相關聯(lián)的電影預告片;可丟棄文件可以是電視節(jié)目,且預覽數(shù)據(jù)可以包括電視節(jié)目的一部分;可丟棄文件可以是音樂數(shù)據(jù),且預覽數(shù)據(jù)可以包括音樂數(shù)據(jù)的一部分;或可丟棄文件可以是軟件程序,且預覽數(shù)據(jù)可以包括軟件程序的演示版本。在其他示例實施方式中,可以使用預覽數(shù)據(jù)以便在與可丟棄文件相關聯(lián)的發(fā)表日期之前,可丟棄文件不可訪問,但可以訪問與可丟棄文件相關聯(lián)的預覽數(shù)據(jù),且然后在發(fā)表日期之后,可丟棄文件和預覽數(shù)據(jù)兩者皆可訪問。在另一例子中,所有者用戶ID可以允許與附加用戶ID相關聯(lián)的應用基于與可丟棄文件相關聯(lián)的用戶ID來向可丟棄文件與。在一些實施方式中,該文件系統(tǒng)可以為所有者用戶ID提供許可位掩碼,來定義與附加用戶ID相關的應用可以針對可丟棄文件進行什么操作。典型的使用情景的許可位掩碼的一個例子在圖20中示出。但是,應該理解,所有者用戶ID可以覆寫(override)圖20所示的許可,且向附加用戶ID分配任何許可。參考圖20所不的許可,設置了性質寫入許可位(properties write permissionbit)2002的應用可以修改屬性,諸如使能或禁用轉換鎖、設置時間戳、或寫入消費意向通用資源指示符(“URI”),且具有性質讀取許可位2004組的應用可以讀取屬性,諸如轉換鎖、時間戳或消費意圖的URI。設置了優(yōu)先級許可位2006的應用可以修改可丟棄文件的優(yōu)先級。設置了預覽讀取許可位2008的應用可以讀與可丟棄文件相關聯(lián)的預覽數(shù)據(jù),且設置了預覽寫入許可位2010的應用可以寫入與可丟棄文件相關聯(lián)的預覽數(shù)據(jù)。設置了讀取許可位2012的應用可以讀取可丟棄文件,且設置了寫入許可位2014的應用可以向可丟棄文件寫入。通常,僅與關聯(lián)于可丟棄文件的所有者用戶ID相關聯(lián)的應用將具有這些許可。設置了轉換許可位2016的應用可以將可丟棄文件轉換為不可丟棄文件。注意,在此公開的在相關聯(lián)的文件系統(tǒng)中標記文件并向它們分配丟棄級別的方法可以具有許多有用的應用,其中之一是恢復存儲使用安全余量來保證用戶文件的足夠存儲空間。例如,被分配給文件的丟棄級別可以被用于將文件簇重新映射到較低性能的閃存模塊,或用于在請求時清除這些簇。用于大文件的智能高速緩存繼管理數(shù)據(jù)的方法(也稱為智能高速緩存)以及在2008年12月16日提交的待審的美國專利N0.12/336,089中和在2009年3月10日提交的待審美國臨時申請N0.61/159,034(兩者被引用附于此)中描述的智能高速緩存的描述和特征進一步而言,提供用于大(large)可丟棄文件的智能高速緩存技術。該大文件智能高速緩存、也在此稱為智能高速緩存HD包括自以上公開的各種改變和擴展。智能高速緩存HD不同于智能高速緩存之處在于其通過添加大文件管理器而支持大于4GB的文件,該大文件管理器在轉換時智能地處理這種文件的分裂(split),同時在它們是可丟棄的時維持它們的大(MGB)狀態(tài)。具體地,這允許這些文件的管理和檢索以及其作為單個單元而不是一系列更小的文件的它們的丟棄。組件在圖21的方框圖中描述了智能高速緩存組件。智能高速緩存組件2100可以結合多個操作系統(tǒng)(諸如ANDROID, WINDOWS或LINUX)中任一來操作?;蛘?,在此討論的智能高速緩存技術可以在存儲介質、諸如沒有操作系統(tǒng)的存儲卡上實現(xiàn)。為智能高速緩存HD添加的新組件是大文件管理器2102,其處理在大小上大于4GB的文件。以下更詳細地描述大文
件管理器。大的可丟棄文件包含可丟棄文件的文件系統(tǒng)在概念上被組織為如圖22的文件系統(tǒng)結構所示。文件系統(tǒng)在結構上類似于在SD-HC (和對應的高容量μ SD)卡中建立的標準FAT32文件系統(tǒng)。在可丟棄文件HD實施方式中,可丟棄文件被存儲在陰影FAT (shadow FAT)中。陰影FAT原始的兩個FAT表使用指示文件的優(yōu)先級而不是其實際鏈的OxpFFFFFFF (EOF)或0χρ00000000(未分配)來分配可丟棄簇。如果最高位元是非零,咨詢第三FAT表以確定實際的族鏈序列。不像在原始的兩個FAT表中,可丟棄FAT(DFAT)可以包含長于4GB的族鏈。目錄表
可丟棄文件的目錄條目具有以下元素。將可以加密的元素表示為在系統(tǒng)的加密變體中的blob (binarylarge objects, 二進制大對象),其可以被統(tǒng)一到單個blob中。在此描述這些字段:
權利要求
1.一種用存儲設備管理文件的方法,該方法包括:在操作性地耦合于主機的存儲設備中,所述存儲設備具有包括用戶文件、空閑空間和可丟棄文件的存儲區(qū)域,所述存儲設備: 在可丟棄文件系統(tǒng)數(shù)據(jù)結構中標識空閑簇的記錄; 從主機接收在存儲區(qū)域中存儲用戶文件的請求; 確定與請求中的數(shù)據(jù)相關聯(lián)的邏輯塊地址(LBA)是否處于與可丟棄文件系統(tǒng)數(shù)據(jù)結構中的該記錄中的簇相關聯(lián)的邏輯塊地址的范圍中;以及 當LBA處于該范圍中且在該范圍中存在可用空閑空間時: 將用戶文件的LBA映射到在可丟棄文件系統(tǒng)數(shù)據(jù)結構中標識的空閑簇;以及 隨后,從所述可丟棄文件系統(tǒng)數(shù)據(jù)結構中,移除映射到用戶文件的LBA的簇。
2.根據(jù)權利要求1的方法,還包括: 當LBA處于該范圍中且在該范圍中不存在可用的空閑的空間時: 丟棄至少一個可丟棄文件以創(chuàng)建空閑簇; 將用戶文件的LBA映射到通過丟棄該至少一個可丟棄文件而創(chuàng)建的空閑簇;以及 隨后,從所述可丟棄文件系統(tǒng)數(shù)據(jù)結構中,移除映射到用戶文件的LBA的簇。
3.根據(jù)權利要求2所述的方法,其中所述簇包括邏輯簇。
4.根據(jù)權利要求2所述的方法,還包括在所述存儲設備的存儲區(qū)域中維持主機文件系統(tǒng)數(shù)據(jù)結構、和與主機文件 系統(tǒng)數(shù)據(jù)結構獨立地維持所述可丟棄文件系統(tǒng)數(shù)據(jù)結構,所述可丟棄文件系統(tǒng)數(shù)據(jù)結構包括對應于存儲區(qū)域中的至少一個可丟棄文件的存儲區(qū)域中簇的列表,其中,在主機文件系統(tǒng)數(shù)據(jù)結構中將所述至少一個可丟棄文件標識為空閑空間。
5.根據(jù)權利要求4所述的方法,其中,所述可丟棄文件系統(tǒng)數(shù)據(jù)結構包括表格、哈希映射、二進制樹、陣列或列表中的一種。
6.根據(jù)權利要求2所述的方法,其中,丟棄所述至少一個可丟棄文件包括所述存儲設備獨立于主機操作系統(tǒng)地標識最低優(yōu)先級的可丟棄文件且丟棄所標識的最低優(yōu)先級的可丟棄文件。
7.根據(jù)權利要求4所述的方法,其中當LBA在該范圍之外時: 將所述LBA與存儲區(qū)域中的空閑物理扇區(qū)相關聯(lián);以及 更新所述主機文件系統(tǒng)數(shù)據(jù)結構以反映所述關聯(lián)。
8.根據(jù)權利要求1所述的方法,還包括所述存儲設備通過讀取所述主機文件系統(tǒng)數(shù)據(jù)結構以標識空閑簇、且更新所述可丟棄文件系統(tǒng)數(shù)據(jù)結構以包括所述存儲器區(qū)域中的該空閑簇的至少一部分,來檢測當前空閑簇。
9.根據(jù)權利要求8所述的方法,其中,更新所述可丟棄文件系統(tǒng)數(shù)據(jù)結構包括僅將在至少N個空閑簇的連續(xù)系列中布置的空閑簇包括在所述可丟棄文件系統(tǒng)數(shù)據(jù)結構中,其中,N是等于存儲設備中的擦除塊大小的簇的倍數(shù)。
10.根據(jù)權利要求8所述的方法,其中,所述存儲設備響應于觸發(fā)事件而開始檢測當前空閑族的步驟。
11.根據(jù)權利要求10所述的方法,其中,所述觸發(fā)事件包括所述存儲設備檢測到在可丟棄文件系統(tǒng)數(shù)據(jù)結構中包括的空閑簇的數(shù)量小于閾值空閑簇量。
12.根據(jù)權利要求10所述的方法,其中,所述觸發(fā)事件包括檢測到對主機文件系統(tǒng)數(shù)據(jù)結構的主機寫。
13.根據(jù)權利要求10所述的方法,其中,所述觸發(fā)事件包括所述存儲設備從主機接收指示已經刪除了用戶文件的通知信號。
14.一種用于與主機可移除地連接的存儲器件,該存儲器件包括: 具有用戶文件、空閑空間和可丟棄文件的存儲區(qū)域;以及 控制器,與所述存儲區(qū)域通信,其中,所述控制器被配置以: 在可丟棄文件系統(tǒng)數(shù)據(jù)結構中標識空閑簇的記錄; 從主機接收在存儲區(qū)域中存儲用戶文件的請求; 確定與請求中的數(shù)據(jù)相關聯(lián)的邏輯塊地址(LBA)是否處于與可丟棄文件系統(tǒng)數(shù)據(jù)結構中的該記錄中的簇相關聯(lián)的邏輯塊地址的范圍中;以及 當LBA處于該范圍中且在該范圍中存在可用的空閑空間時: 將用戶文件的LBA映射到在可丟棄文件系統(tǒng)數(shù)據(jù)結構中標識的空閑簇;以及 隨后,從所述可丟棄文件系統(tǒng)數(shù)據(jù)結構中,移除映射到用戶文件的LBA的簇。
15.根據(jù)權利要求14所述的存儲設備,其中,所述控制器還被配置以當LBA處于該范圍中且在該范圍中不存在可用的空閑空間時: 丟棄至少一個可丟 棄文件以創(chuàng)建空閑簇; 將用戶文件的LBA映射到通過丟棄至少一個可丟棄文件而創(chuàng)建的空閑簇;以及 隨后,從所述可丟棄文件系統(tǒng)數(shù)據(jù)結構中,移除映射到用戶文件的LBA的簇。
16.根據(jù)權利要求15所述的存儲設備,其中所述簇包括邏輯簇。
17.根據(jù)權利要求15所述的存儲設備,其中,所述控制器還被配置以維持主機文件系統(tǒng)數(shù)據(jù)結構、和與主機文件系統(tǒng)數(shù)據(jù)結構獨立地維持所述可丟棄文件系統(tǒng)數(shù)據(jù)結構,所述可丟棄文件系統(tǒng)數(shù)據(jù)結構包括對應于存儲區(qū)域中的至少一個可丟棄文件的存儲區(qū)域中簇的列表,其中,在主機文件系統(tǒng)數(shù)據(jù)結構中將所述至少一個可丟棄文件標識為空閑空間。
18.根據(jù)權利要求17所述的存儲設備,其中,所述可丟棄文件系統(tǒng)數(shù)據(jù)結構包括表格、哈希映射、二進制樹、陣列或列表中的一種。
19.根據(jù)權利要求17所述的存儲設備,其中,所述控制器被配置以通過獨立于主機操作系統(tǒng)地標識最低優(yōu)先級的可丟棄文件且丟棄所標識的最低優(yōu)先級的可丟棄文件,來丟棄所述至少一個可丟棄文件。
20.根據(jù)權利要求17所述的存儲設備,其中,所述控制器還被配置以響應于確定LBA處于該范圍之外: 將所述LBA與存儲區(qū)域中的空閑物理扇區(qū)相關聯(lián);以及 更新所述主機文件系統(tǒng)數(shù)據(jù)結構以反映所述關聯(lián)。
21.根據(jù)權利要求17所述的存儲設備,其中,所述控制器被配置以通過讀取所述主機文件系統(tǒng)數(shù)據(jù)結構以標識空閑簇、且更新所述可丟棄文件系統(tǒng)數(shù)據(jù)結構以包括所述存儲器區(qū)域中的該空閑簇的至少一部分,來檢測當前空閑簇。
22.根據(jù)權利要求21所述的存儲設備,其中,所述控制器被配置以更新所述可丟棄文件系統(tǒng)數(shù)據(jù)結構包括僅將在至少N個空閑簇的連續(xù)系列中布置的空閑簇包括在所述可丟棄文件系統(tǒng)數(shù)據(jù)結構中,其中,N是等于存儲設備中的擦除塊大小的簇的倍數(shù)。
23.根據(jù)權利要求21所述的存儲設備,其中,所述控制器被配置以響應于觸發(fā)事件而開始檢測當前空閑簇的步驟。
24.根據(jù)權利要求23所述的存儲設備,其中,所述觸發(fā)事件包括通過控制器檢測到在可丟棄文件系統(tǒng)數(shù)據(jù)結構中包括的空閑簇的數(shù)量小于閾值空閑簇量。
25.根據(jù)權利要求23所述的存儲設備,其中,所述觸發(fā)事件包括對主機文件系統(tǒng)數(shù)據(jù)結構的主機寫。
26.根據(jù)權利要求23所述的存儲設備,其中,所述觸發(fā)事件包括通過控制器從主機接收指示已經刪除了用戶文件的 通知信號。
全文摘要
公開了用于基于卡地管理可丟棄文件的方法和存儲設備,其中,在存儲設備上的可丟棄文件系統(tǒng)中跟蹤可丟棄文件,且這些可丟棄文件對主機文件系統(tǒng)不可見,該主機文件系統(tǒng)僅跟蹤用戶文件和空閑空間。該方法包括該存儲設備檢測對應于存儲區(qū)域中的至少一部分空閑空間的當前空閑的邏輯簇,且確定與隨后的用戶文件寫入請求相關聯(lián)的地址是否處于由存儲設備在可丟棄文件系統(tǒng)中管理的空閑簇的范圍。當在主機寫入請求中的地址與由可丟棄文件系統(tǒng)管理的空間的地址重疊時,該存儲設備必要時丟棄可丟棄文件,且從可丟棄文件系統(tǒng)中移除新釋放的簇,以便當需要用于用戶文件的空間時重新調整可丟棄文件系統(tǒng)數(shù)據(jù)結構的大小。
文檔編號G06F17/30GK103154948SQ201180048994
公開日2013年6月12日 申請日期2011年8月10日 優(yōu)先權日2010年8月19日
發(fā)明者J.T.林, J.G.哈恩 申請人:桑迪士克以色列有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1