專利名稱:用于修剪在非易失性閃速介質上的數據的方法
技術領域:
本發明的實施例總體上涉及數據存儲領域,并且更具體地,涉及用于修剪(trim) 在非易失性閃速介質上的數據的方法。
背景技術:
閃速存儲器正在被更頻繁地用于在計算設備中的數據存儲,并且在一些情況下正 在替代傳統的硬盤驅動器。操作系統(OS) “刪除”并且考慮可用空間的在閃速存儲器中存 儲的數據可能實際上被維持在閃速存儲器中會潛在地降低性能。修剪操作已經被技術委員 會T13標準化,以提供一種方式來向閃速存儲器設備指示對于哪些邏輯地址它不再必須維 持有效的邏輯到物理地址映射。
在附圖中通過示例而不是限定的方式來說明本發明,在附圖中,相似的標號表示 類似的部件,并且其中圖1是根據本發明的一個示例性實施例的示例性閃速存儲器的說明;圖2是根據本發明的一個示例性實施例的適合于實現所公開的方法的示例性電 子裝置的框圖;圖3是根據本發明的一個示例性實施例的用于修剪在非易失性閃速介質上的數 據的示例性方法的流程圖;以及圖4是包括內容的示例性制品的框圖,當被設備訪問時所述內容使得該設備實現 本發明的一個或多個實施例的一個或多個方案。
具體實施例方式在下面的描述中,出于解釋的目的給出了許多具體細節,以提供對本發明的透徹 理解。然而,對于本領域技術人員將顯而易見的是,可以在沒有這些具體細節的情況下實踐 本發明的實施例。在其他實例中,以框圖形式示出結構和設備,以免模糊本發明。在整個本說明書中對“一個實施例”、“實施例”的引用表示結合這些實施例描述的 特定特征、結構或特性被包括在本發明的至少一個實施例中。因此,在整個本說明書各處出 現的短語“在一個實施例中”、“在實施例中”不必然都指的是相同的實施例。此外,在一個 或多個實施例中,可以以任何適當的方式來組合這些特定特征、結構或特性。圖1是根據本發明的一個示例性實施例的示例性閃速存儲器的說明。根據所說明 的示例性實施例,文件系統存儲器100可以包括一個或多個邏輯塊102。雖然被示出為包括 64個邏輯塊102,但是文件系統存儲器100可以具有任何數量的塊。如所示出的,文件系統 存儲器100可以包括已分配的文件系統塊104(其可以包含有效數據)、已刪除的文件系統 塊106(其可以包含已經刪除的數據)和未分配的文件系統塊108(其可以不包含數據)。 在一個實施例中,文件系統存儲器100包括例如在固態盤或硬盤驅動器高速緩存中的NAND閃速存儲器。在一個實施例中,文件系統存儲器100的可用自由空間包括已刪除的文件系 統塊106和未分配的文件系統塊108 二者。雖然被示出為連續區域,但是已分配的文件系 統塊104、已刪除的文件系統塊106和未分配的文件系統塊108可以是不連續的。作為例如關于圖3所描述的用于修剪在文件系統存儲器100上的數據的方法的一 部分,可以在文件系統存儲器100中創建臨時文件110并向其分配空間。作為例如關于圖3所描述的用于確認邏輯塊102未被重新映射的方法的一部分, 可以創建測試文件112。測試文件112可以包括唯一標識符(ID) 114。圖2是根據本發明的一個示例性實施例的適合于實現所公開的方法的示例性電 子裝置的框圖。電子裝置200意在表示各種各樣的傳統和非傳統電子裝置、膝上型計算機、 臺式計算機、蜂窩電話、無線通信用戶單元、無線通信電話基礎結構部件、個人數字助理、機 頂盒或將受益于本發明的教導的任何電子裝置中的任何一種。根據所說明的示例性實施 例,電子裝置200可以包括如圖2中所示耦合的處理器202、存儲器控制器204、系統存儲器 206、輸入/輸出控制器208、網絡控制器210、輸入/輸出設備212、固態盤214、總線216和 修剪代理218中的一個或多個。在一個實施例中,固態盤214包括閃速存儲器,諸如文件系 統存儲器100。在一個實施例中,作為參照圖3更詳細描述的用于修剪在非易失性閃速介質 上的數據的方法的一部分,修剪代理218產生臨時文件110和測試文件112。處理器202可以表示各種各樣的控制邏輯中的任何一種,包括但是不限于微處 理器、可編程邏輯器件(PLD)、可編程邏輯陣列(PLA)、專用集成電路(ASIC)、微控制器等中 的一個或多個,但是本發明并不限于此。在一個實施例中,處理器202是Intel 兼容處理 器。處理器202可以具有指令集,該指令集包含例如可以被應用或操作系統調用的多個機 器級指令。存儲器控制器204可以表示將系統存儲器206與電子裝置200的其他組件進行接 口連接的任何類型的芯片組或控制邏輯。在一個實施例中,在處理器202和存儲器控制器 204之間的連接可以是點到點的串行鏈路。在另一個實施例中,存儲器控制器204可以被稱 為北橋。系統存儲器206可以表示用于存儲可能已經被或將被處理器202使用的數據和指 令的任何類型的存儲器設備。通常,系統存儲器206將由動態隨機存取存儲器(DRAM)構成, 但是本發明并不限于此。在一個實施例中,系統存儲器206可以由Rambus DRAM (RDRAM)構 成。在另一個實施例中,系統存儲器206可以由雙倍數據率同步DRAM(DDRSDRAM)構成。輸入/輸出(I/O)控制器208可以表示將I/O設備212與電子裝置200的其他組 件進行接口連接的任何類型的芯片組或控制邏輯。在一個實施例中,I/O控制器208可以 被稱為南橋。在另一個實施例中,I/O控制器208可以符合外圍組件互連(PCI)專業組在 2003年4月15日發布的快速PCI 基本規范的修訂版1.0a。網絡控制器210可以表示允許電子裝置200與其他電子裝置或設備進行通信 的任何類型的設備。在一個實施例中,網絡控制器210可以符合電氣與電子工程師協會 (IEEE) 802. Ilb標準(在1999年9月16日被批準,其是對ANSI/IEEE標準802. 11的1999 版本的補充)。在另一個實施例中,網絡控制器210可以是以太網網絡接口卡。輸入/輸出(I/O)設備212可以表示向電子裝置200提供輸入或處理來自電子裝 置200的輸出的任何類型的設備、外設或組件。
總線216被示出為將固態盤214與I/O控制器208耦合,然而,固態盤214可以耦 合到電子裝置200的其他組件。在一個實施例中,總線216表示串行高級技術附件(SATA) 總線。雖然被示出為固態盤214的一部分,但是可以將修剪代理218并入電子裝置200 的另一組件(諸如I/O控制器208)內。在一個實施例中,修剪代理218可以是軟件或軟件 和硬件的組合。在一個實施例中,修剪代理218表示在用戶模式中運行的操作系統(OS)應用。圖3是根據本發明的一個示例性實施例的用于修剪在非易失性閃速介質上的數 據的示例性方法的流程圖。對于本領域技術人員將顯而易見的是,雖然下面的操作可以被 描述為順序處理,但是事實上可以并行或并發地執行這些操作中的許多操作。另外,在不偏 離本發明的實施例的精神的情況下,可以重新安排這些操作的順序。在一個實施例中,方法300從確認(30 文件系統存儲器100的邏輯存儲器塊102 未被重新映射開始。在一個示例性實施例中,創建包含ID 114的測試文件112。測試文件 112然后被寫入文件系統存儲器100。然后確定測試文件112占用的特定文件系統邏輯塊 102,并且讀取對應的SSD邏輯塊(或最后塊)的原始內容以確定ID 114是否被存儲為被寫 入而沒有進行重新映射。在一個實施例中,該確認步驟被執行一次,以保證方法300不會疏 忽地修剪錯誤的邏輯塊地址(LBA)和在重新映射(例如RAID)的情況下可能有效的數據。 在其他實施例中,可以跳過或以其他方式來完成該步驟。接下來是分配(304)臨時文件110以占用文件系統存儲器100的自由空間。在一 個實施例中,臨時文件110被分配到基本上所有的已刪除的文件系統塊106和未分配的文 件系統塊108。在另一個實施例中,例如通過查詢OS來確定在文件系統存儲器100上的自 由空間的量。在一個實施例中,臨時文件110被分配對文件系統存儲器100上的自由空間 的專有權利。方法300繼續確定(306)文件系統存儲器100的由臨時文件110占用的特定邏輯 塊。在一個實施例中,產生分區管理器查詢,以返回臨時文件110占用的卷偏移和文件系統簇。接下來是產生(308)針對特定塊的修剪命令。在一個示例性實施例中,在OS不知 曉或不支持TRIM的情況下,在用戶模式小應用程序中產生修剪命令。在一個實施例中,經 由ATA穿透(pass through)將修剪命令直接地傳送到文件系統存儲器100。然后,方法300可以以下述操作為結束在從介質清理了空間后,刪除(310)臨時 文件110以使得該空間對于文件系統為可用。可以間歇地或按照定期重發調度來執行方法 300。圖4說明了包括內容的示例性存儲介質的框圖,當被訪問時所述內容使得電子裝 置實現所公開的方法300的一個或多個方案。在此方面,存儲介質400包括內容402 (例如, 指令、數據或其任何組合),當被執行時內容402使得所述裝置實現上文描述的方法的一個 或多個方案。機器可讀(存儲)介質400可以包括但是不限于軟盤、光盤、⑶-ROM和磁光盤、 ROM、RAM、EPROM、EEPR0M、磁卡或光卡、閃速存儲器或適合于存儲電子指令的其他類型的介 質/機器可讀介質。此外,本發明也可以被下載為計算機程序產品,其中,所述程序可以經
6由通信鏈路(例如,調制解調器、無線電或網絡連接)通過實施在載波或其他傳播介質中的 數據信號的方式從遠程計算機被傳送到請求計算機。在上面的描述中,出于解釋的目的給出了許多具體細節,以提供對本發明的透徹 理解。然而,對于本領域技術人員將顯而易見的是,可以在沒有這些具體細節中的一些的情 況下實踐本發明。在其他實例中,以框圖形式示出公知結構和設備。可以在各種應用中使用本發明的實施例。但是本發明并不限于此,本文公開的本 發明可以用在微控制器、通用微處理器、數字信號處理器(DSP)、精簡指令集計算(RISC)、 復雜指令集計算(CISC)以及其他電子組件中。然而,應當理解,本發明的范圍不限于這些 示例。本發明的實施例也可以被包括在稱為核心存儲器、高速緩沖存儲器的集成電路塊 中,或者被包括在存儲由微處理器執行的電子指令或存儲可以在算術運算中使用的數據的 其他類型的存儲器中。通常,根據所要求保護的主題的使用多級多米諾邏輯的實施例可以 向微處理器提供益處,并且具體地說,可以被并入存儲器設備的地址解碼器中。注意,可以 將這些實施例集成到無線電系統或手持便攜設備內,特別是當設備依賴于降低的功耗時可 以進行該集成。因此,意欲將膝上型計算機、蜂窩無線電話通信系統、雙向無線電通信系統、 單向尋呼機、雙向尋呼機、個人通信系統(PCS)、個人數字助理(PDA)、照相機和其他產品包 括在本發明的范圍內。本發明包括各種操作。本發明的操作可以由硬件組件執行,或可以被實施在機器 可執行內容(例如,指令)內,所述機器可執行內容可以用于使得用所述指令編程的通用或 專用處理器或邏輯電路執行這些操作。可替代地,可以通過硬件和軟件的組合來執行這些 操作。此外,雖然已經在計算裝置的環境中描述了本發明,但是本領域技術人員將意識到, 這些功能可以被良好地實施在多個替代實施例中的任何一個中,例如集成在通信裝置(例 如,蜂窩電話)內。雖然以其最基本的形式來描述這些方法中的許多方法,但是在不偏離本發明的基 本范圍的情況下,可以為任何這些方法添加或刪除操作,并且可以為所描述的任何消息添 加或減去信息。本發明的思想的任何數量的變型預期在本發明的范圍和精神內。在此方面, 具體說明的示例性實施例并非被提供來限制本發明,而僅是說明本發明。因此,本發明的范 圍不是由上文所提供的示例確定,而是由所附權利要求的明語確定。
權利要求
1.一種包括內容的存儲介質,當被訪問機器執行時所述內容使得所述訪問機器 分配占用在文件系統中的自由空間的臨時文件;確定所述文件系統的由所述臨時文件占用的邏輯塊地址(LBA); 產生針對特定的所述LBA的TRIM命令;以及 刪除所述臨時文件。
2.根據權利要求1所述的存儲介質,還包括當被訪問機器執行時使得所述訪問機器確 認所述文件系統未重新映射LBA的內容。
3.根據權利要求2所述的存儲介質,其中,用于確認所述文件系統未重新映射LBA的所 述內容包括用于進行下述操作的內容創建包含唯一標識符的測試文件;將所述測試文件寫入所述文件系統;確定所述文件系統中由所述測試文件占用的特定塊;以及從至少一個閃速存儲器塊讀取原始內容,以確定所述唯一標識符是否被存儲而未重新 映射。
4.根據權利要求1所述的存儲介質,其中,所述文件系統包括NAND閃速存儲器。
5.根據權利要求4所述的存儲介質,其中,所述NAND閃速存儲器包括固態盤。
6.根據權利要求4所述的存儲介質,其中,所述NAND閃速存儲器包括硬盤驅動器高速緩存。
7.根據權利要求1所述的存儲介質,其中,用于確定所述文件系統的由所述臨時文件 占用的LBA的所述內容包括用于向分區管理器查詢所述臨時文件占用的卷偏移和文件系 統簇的內容。
8.根據權利要求1所述的存儲介質,其中,用于分配占用在文件系統中的自由空間的 臨時文件的所述內容包括用于進行下述操作的內容確定所述文件系統中的自由空間的量;以及分配占用所述文件系統中的基本上所有的所述自由空間的專有權利文件。
9.一種系統,包括 處理器;網絡控制器;以及存儲設備,其中,所述存儲設備包括閃速存儲器和修剪引擎,所述修剪引擎用于 分配占用在閃速存儲器上的自由空間的臨時文件; 確定所述閃速存儲器的由所述臨時文件占用的特定塊; 產生針對所述特定塊的TRIM命令;以及 刪除所述臨時文件。
10.根據權利要求9所述的系統,還包括所述修剪引擎用于確認所述閃速存儲器的邏 輯塊地址未被重新映射。
11.根據權利要求10所述的系統,其中,所述修剪引擎用于確認所述閃速存儲器的邏 輯塊地址未被重新映射包括所述修剪引擎用于創建包含唯一標識符的測試文件; 將所述測試文件寫入所述閃速存儲器;確定所述閃速存儲器的由所述測試文件占用的特定塊;以及從至少一個閃速存儲器塊讀取原始內容,以確定所述唯一標識符是否被存儲而未重新 映射。
12.根據權利要求9所述的系統,其中,所述閃速存儲器包括NAND閃速存儲器。
13.根據權利要求9所述的系統,其中,所述修剪引擎用于確定所述閃速存儲器的由所 述臨時文件占用的特定塊包括所述修剪引擎用于向分區管理器查詢所述臨時文件占用的 卷偏移和文件系統簇。
14.根據權利要求9所述的系統,其中,所述修剪引擎用于分配占用在閃速存儲器上的 自由空間的臨時文件包括所述修剪引擎用于確定在所述閃速存儲器上的自由空間的量;以及分配占用在所述閃速存儲器上的基本上所有的所述自由空間的專有權利文件。
15.一種方法,包括分配占用在文件系統中的自由空間的臨時文件;確定固態驅動器(SSD)的由所述臨時文件占用的特定邏輯塊地址(LBA)產生針對所述特定LBA的TRIM命令;以及刪除所述臨時文件。
16.根據權利要求15所述的方法,還包括確認所述文件系統的LBA未被重新映射。
17.根據權利要求16所述的方法,其中,確認所述文件系統的LBA未被重新映射包括創建包含唯一標識符的測試文件;將所述測試文件寫入閃速存儲器;確定所述閃速存儲器的由所述測試文件占用的特定塊;以及從至少一個閃速存儲器塊讀取原始內容,以確定所述唯一標識符是否被存儲而未重新 映射。
18.根據權利要求15所述的方法,其中,確定所述SSD的由所述臨時文件占用的特定 LBA包括向分區管理器查詢所述臨時文件占用的卷偏移和文件系統簇。
19.根據權利要求15所述的方法,其中,分配占用在文件系統中的自由空間的臨時文 件包括確定在所述文件系統中的自由空間的量;以及分配占用所述文件系統中的基本上所有的所述自由空間的專有權利文件。
20.根據權利要求15所述的方法,其中,所述文件系統包括NAND閃速存儲器。
全文摘要
總地闡述了用于修剪在非易失性閃速介質上的數據的方法。在此方面,在一個實施例中,介紹了一種方法,包括分配占用在閃速存儲器上的自由空間的臨時文件;確定所述閃速存儲器的由所述臨時文件占用的特定塊;產生針對所述特定塊的修剪命令;以及刪除所述臨時文件。描述了并要求保護其他實施例。
文檔編號G06F12/02GK102096639SQ201010588429
公開日2011年6月15日 申請日期2010年12月10日 優先權日2009年12月15日
發明者J·A·博伊德, K·S·格里姆斯魯德 申請人:英特爾公司