專利名稱:存儲系統(tǒng)、數據存儲設備、用戶設備及其數據管理方法
技術領域:
本公開涉及存儲系統(tǒng)及其數據管理方法,并且更具體來說,涉及閃存系統(tǒng)及其數據管理方法。
背景技術:
因為閃存(flash memory)不同于硬盤,其不支持覆蓋寫入(overwriting),所以為了再次寫入(rewriting)需要首先執(zhí)行擦除操作。閃存的擦除操作以存儲塊為單位執(zhí)行。由于閃存的這些特征,所以難以將硬盤的文件系統(tǒng)照原樣應用于閃存。在硬盤的文件系統(tǒng)與閃存之間使用中間件閃存轉換層(FlashTranslation Layer,FTL) 0 FTL使得能夠像在現有的硬盤中那樣在閃存中自由讀/寫。在FTL中用于管理文件系統(tǒng)中的文件的單位與用于管理閃存中存儲的數據的單位不同。管理單位之間的不匹配會導致閃存的不必要的數據復制操作以及大規(guī)模的合并操作。復制和合并操作會縮短閃存的服務壽命。
發(fā)明內容
根據示范性實施例,提供了一種具有不同于用戶設備的數據管理單位的數據管理單位的數據存儲設備的數據管理方法。從用戶設備接收關于將被刪除的文件的存儲區(qū)域的信息。從將被刪除的文件的存儲區(qū)域當中選擇與所述數據存儲設備的數據管理單位匹配的存儲區(qū)域。對所選擇的與所述數據管理單位匹配的存儲區(qū)域執(zhí)行擦除操作??梢詥为毠芾黻P于將被刪除的文件的存儲區(qū)域當中與所述數據存儲設備的數據管理單位不匹配的存儲區(qū)域的信息。所述用戶設備可以將關于將被刪除的文件的元數據的信息改變?yōu)楸硎緦⒈粍h除的文件已從高層刪除。所述數據管理方法還包括當從所述用戶設備提供關于將被刪除的至少兩個文件的存儲區(qū)域的信息時,由所述數據存儲設備將關于將被刪除的至少兩個文件的存儲區(qū)域的信息存儲在緩存中。所述選擇存儲區(qū)域的步驟可以從存儲在所述緩存中的、所述至少兩個將被刪除的文件的存儲區(qū)域當中選擇與所述數據存儲設備的數據管理單位匹配的存儲區(qū)域。所述用戶設備可以以扇區(qū)為單位管理數據。所述數據存儲設備可以以頁為單位管理數據。每個頁可以劃分為多個扇區(qū)。根據示范性實施例,提供了一種用于使用不同于用戶設備的數據管理單位的數據管理單位的數據存儲設備的數據管理方法。從用戶設備接收關于將被刪除的文件的存儲區(qū)域的信息。與所述數據存儲設備的管理單位匹配的存儲區(qū)域被標記為無效。所述數據存儲設備包括被配置為存儲數據的數據存儲單元以及被配置為臨時存儲將寫入所述數據存儲單元中的數據的緩存。存儲在所述緩存中的數據當中關于被標記為無效的存儲區(qū)域的數據不寫入所述存儲單元中。所述數據管理方法還可以包括將將被刪除的文件的存儲區(qū)域當中與所述數據存儲設備的管理單位不匹配的存儲區(qū)域標記為有效。存儲在所述緩存中的數據當中關于被標記為有效的存儲區(qū)域的數據可以寫入所述存儲單元中。所述數據管理方法還可以包括創(chuàng)建TRIM (整理)管理表,該TRIM管理表被配置為管理將被刪除的文件的存儲區(qū)域當中與所述數據存儲設備的管理單位不匹配的存儲區(qū)域。所述TRIM管理表可以存儲在所述緩存中,并且可以通過推送方案控制所述TRIM
管理表的信息。所述數據管理方法還可以包括當從所述用戶設備提供關于將被刪除的至少兩個文件的存儲區(qū)域的信息時,由所述數據存儲設備將關于將被刪除的至少兩個文件的存儲區(qū)域的信息存儲在緩存中。所述標記存儲區(qū)域為無效的步驟可以將與所述數據存儲設備的數據管理單位匹配的存儲區(qū)域標記為無效。根據示范性實施例,存儲系統(tǒng)包括被配置為生成TRIM命令的主機以及被配置為響應于來自主機的TRIM命令執(zhí)行擦除操作的數據存儲設備。所述數據存儲設備可以根據所述TRIM命令,對已經被指定為將被刪除的區(qū)域的存儲區(qū)域當中與所述數據存儲設備的數據管理單位匹配的區(qū)域執(zhí)行擦除操作。所述數據存儲設備可以根據所述TRIM命令,單獨管理關于已經被指定為將被刪除的區(qū)域的存儲區(qū)域當中與所述數據存儲設備的數據管理單位不匹配的區(qū)域的信息。所述數據存儲設備可以以頁為單位管理數據。所述主機可以以扇區(qū)為單位管理數據。每個頁可以劃分為多個扇區(qū)。所述數據存儲設備可以包括映射表,其被配置為將從主機提供的邏輯地址改變?yōu)樗鰯祿鎯υO備的物理地址,并且在映射表中,已經被指定為將被刪除的區(qū)域的存儲區(qū)域當中與所述數據存儲設備的數據管理單位匹配的存儲區(qū)域可以被標記為無效。在所述映射表中,被指定為將被刪除的區(qū)域的存儲區(qū)域當中與所述數據存儲設備的數據管理單位不匹配的存儲區(qū)域的可以被標記為有效。所述數據存儲設備還可以包括TRIM管理表,其被配置為管理關于被指定為將被刪除的區(qū)域的存儲區(qū)域當中與所述數據存儲設備的數據管理單位不匹配的存儲區(qū)域的信肩、ο當所述TRIM管理表中管理的存儲區(qū)域與所述數據存儲設備的數據管理單位匹配時,根據來自所述主機的另一 TRIM命令,所述映射表可以基于TRIM管理表更新寫狀態(tài)信息 (WSI)??梢愿滤鲇成浔碇械腤SI,并且可以從所述TRIM管理表刪除關于與所述數據存儲設備的數據管理單位匹配的存儲區(qū)域且在所述TRIM管理表中管理的信息。所述數據存儲設備還可以包括緩存,其被配置為存儲所述TRIM管理表以及通過推送方案管理存儲在所述TRIM管理表中的信息。所述數據存儲設備可以包括緩存,其被配置為存儲關于從所述主機傳送的至少兩個TRIM命令的信息。所述數據存儲設備還可以包括被配置為存儲數據的至少兩個閃存以及被配置為控制所述至少兩個閃存的控制單元。所述控制單元可以控制存儲在所述緩存中的至少兩個 TRIM命令的處理次序,以使所述至少兩個閃存并行操作。根據示范性實施例,提供了一種連接到用戶設備的數據存儲設備。存儲單元被配置為存儲數據。緩存被配置為臨時存儲將寫入所述存儲單元的數據??刂茊卧慌渲脼榭刂扑龃鎯卧退鼍彺?。根據從所述用戶設備傳送的TRIM命令,被指定為將被刪除的區(qū)域的存儲區(qū)域當中與所述存儲單元的數據管理單位匹配的存儲區(qū)域的數據不被寫入所述存儲單元中。被指定為將被刪除的存儲區(qū)域當中與所述數據存儲設備的數據管理單位不匹配的存儲區(qū)域的數據可以被寫入所述存儲單元中。所述的數據存儲設備還可以包括映射表,其被配置為將從所述用戶設備提供的邏輯地址改變?yōu)樗鰯祿鎯υO備的物理地址。在所述映射表中,指定為將被刪除的區(qū)域的存儲區(qū)域當中與所述存儲單元的數據管理單位匹配的存儲區(qū)域的寫狀態(tài)信息(WSI)可以被標記為無效。在所述映射表中,被指定為將被刪除的區(qū)域的存儲區(qū)域當中與所述存儲單元的數據管理單位不匹配的存儲區(qū)域的WSI可以被標記為有效。所述數據存儲設備還可以包括TRIM管理表,其被配置為管理與所述數據存儲設備的數據管理單位不匹配并且在所述映射表中被標記為有效的存儲區(qū)域。當所述TRIM管理表中管理的存儲區(qū)域與所述數據存儲設備的數據管理單位匹配時,根據來自所述用戶設備的另一 TRIM命令,所述映射表可以基于TRIM管理表更新寫狀態(tài)信息(WSI)。所述數據存儲設備還可以包括緩存,其被配置為當從所述用戶設備傳送至少兩個 TRIM命令時存儲關于所述至少兩個TRIM命令的信息。所述存儲單元可以包括至少兩個閃存,并且所述控制單元可以控制存儲在所述緩存中的至少兩個TRIM命令的處理次序,以使所述至少兩個閃存并行操作。根據示范性實施例,提供了一種用于將文件的數據存儲在數據存儲設備中并且具有不同于所述數據存儲設備的數據管理單位的數據管理單位的用戶設備的數據管理方法。 響應于文件刪除請求改變被請求刪除的文件的元數據。針對關于被請求刪除的文件的存儲區(qū)域的信息是否對應于所述數據存儲設備的數據管理單位進行確定。將關于被請求刪除的文件的存儲區(qū)域的信息當中關于與所述數據存儲設備的數據管理單位對應的區(qū)域的信息發(fā)送給所述數據存儲設備。所述改變被請求刪除的文件的元數據的步驟可以表示在高層已刪除被請求刪除的文件。可以生成TRIM管理表,其被配置為管理關于所述被請求刪除的文件的存儲區(qū)域的信息當中關于與所述數據存儲設備的數據管理單位不對應的區(qū)域的信息??梢詮乃鰯祿鎯υO備的映射表提供所述關于被請求刪除的文件的存儲區(qū)域的信息。
根據示范性實施例,提供了一種將文件的數據存儲在數據存儲設備中的用戶設備。文件系統(tǒng)被配置為以不同于所述數據存儲設備的數據管理單位的單位來管理文件以及改變關于被請求刪除的文件的元數據的信息。TRIM管理模塊被配置為提供關于被請求刪除的文件的存儲區(qū)域的信息當中關于與所述數據存儲設備的數據管理單位相應的存儲區(qū)域的信息。改變關于被請求刪除的文件的元數據的信息的步驟可以表示在高層已刪除被請求刪除的文件。所述用戶設備還可以包括TRIM管理表,其被配置為管理關于所述被請求刪除的文件的存儲區(qū)域的信息當中關于與所述數據存儲設備的數據管理單位不對應的區(qū)域的信肩、ο所述用戶設備還可以包括主機存儲器,其被配置為存儲TRIM管理表,其中通過推送方法管理存儲在所述主機存儲器中的TRIM管理表。所述用戶設備還可以包括主機存儲器,其被配置為存儲關于被請求刪除的至少兩個文件的存儲區(qū)域的信息。所述TRIM管理模塊可以提供關于存儲在所述主機存儲器中的、所述被請求刪除的至少兩個文件的存儲區(qū)域的信息當中關于與所述數據存儲設備的數據管理單位相應的區(qū)域的信息??梢詮乃鰯祿鎯υO備的映射表提供關于所述被請求刪除的至少兩個文件的存儲區(qū)域的信息。根據示范性實施例,一種存儲系統(tǒng)包括被配置為支持TRIM操作的主機以及被配置為響應于來自主機的TRIM命令執(zhí)行擦除操作的數據存儲設備。所述主機僅提供關于被請求刪除的文件的存儲區(qū)域的信息當中關于與所述數據存儲設備的數據管理單位對應的存儲區(qū)域的信息。所述主機可以單獨管理關于所述被請求刪除的文件的存儲區(qū)域的信息當中關于與所述數據存儲設備的數據管理單位不對應的區(qū)域的信息。所述主機可以以扇區(qū)為單位管理文件。所述數據存儲設備可以以頁為單位管理文件的數據。每個頁可以劃分為多個扇區(qū)。所述主機可以包括被配置為以扇區(qū)為單位管理文件并且改變關于被請求刪除的文件的元數據的信息的文件系統(tǒng),以及被配置為選擇關于被請求刪除的文件的扇區(qū)當中關于與所述數據存儲設備的頁單位相應的扇區(qū)的信息的TRIM管理模塊。所述改變關于被請求刪除的文件的元數據的信息的步驟可以表示在高層刪除被請求刪除的文件。所述主機還可以包括TRIM管理表,該TRIM管理表管理關于所述被請求刪除的文件的扇區(qū)當中關于與所述頁單位不對應的部分扇區(qū)的信息。所述TRIM管理表可以管理關于所述部分扇區(qū)的信息以及關于與所述部分扇區(qū)在同一頁中的扇區(qū)的信息。所述主機還可以包括主機存儲器,其被配置為存儲關于分別在不同時間被請求刪除的至少兩個文件的扇區(qū)的信息。所述TRIM管理模塊可以從存儲在所述主機存儲器中的、關于所述分別在不同時
10間被請求刪除的至少兩個文件的扇區(qū)的信息當中選擇與所述數據存儲設備的管理單位相應的扇區(qū)地址的信息。根據示范性實施例,提供一種用于閃存系統(tǒng)的數據管理擦除方法,該閃存系統(tǒng)具有被配置為與閃存存儲設備通信的主機文件系統(tǒng)。由所述主機文件系統(tǒng)向所述閃存存儲設備提供通知閃存存儲設備哪些數據塊不再考慮使用的TRIM命令。所述TRIM命令包括用于指定已經請求將其刪除的文件的扇區(qū)地址。所述閃存存儲設備接收所述TRIM命令,將所述扇區(qū)地址轉換為頁地址,以及將將被刪除的所述閃存存儲設備的頁標記為無效。由所述閃存設備對所述標記為無效的頁執(zhí)行擦除操作??梢栽跊]有從所述主機文件系統(tǒng)到所述閃存存儲設備的請求存在的空閑時間執(zhí)行擦除操作。當由所述主機文件系統(tǒng)接收到文件刪除請求時,所述主機文件系統(tǒng)可以改變已經請求將其刪除的文件的元數據,以使得當應用隨后訪問所述主機文件系統(tǒng)的相應文件時, 將向所述應用提供表示相應文件已經被刪除的信息。
附圖被包括在內以提供對本發(fā)明構思的更進一步理解,并且附圖被并入且組成本說明書的一部分。附圖連同描述一起示出本發(fā)明構思的示范性實施例,用來解釋本發(fā)明構思的原理。附圖中類似的的元素被分配相同的參考標記。圖1和圖2是示出根據本發(fā)明構思的實施例的存儲系統(tǒng)的框圖;圖3是示出根據本發(fā)明構思的實施例的存儲系統(tǒng)的框圖;圖4是示出根據本發(fā)明構思的實施例的閃存系統(tǒng)的框圖;圖5示出為由圖4的文件系統(tǒng)管理文件而創(chuàng)建的目錄項結構的示范性實施例;圖6是示出圖4中的閃存系統(tǒng)的軟件層級結構的框圖;圖7是詳細示出閃存轉換層的地址轉換操作的框圖;圖8是示出利用映射表的地址轉換的示范性實施例的框圖;圖9是示出在沒有TRIM管理表的條件下僅使用映射表來處理TRIM命令的本發(fā)明構思的實施例的示意圖;圖10和圖11是示出使用映射表和TRIM管理表來處理TRIM命令的本發(fā)明構思的實施例的示意圖;圖12是示出圖4的閃存設備在低層的擦除操作的流程圖;圖13是示出當在低層執(zhí)行刪除操作時閃存轉換層的操作的流程圖;圖14至圖16是描述當閃存設備支持清洗(flush)功能時閃存設備的TRIM命令處理方法的示意圖;圖17是示出根據本發(fā)明構思的實施例的閃存設備的不寫(imwriting)操作的流程圖;圖18至圖20是描述收集在不同時間提供的TRIM命令并且在同一時間處理收集的TRIM命令的閃存設備的示意圖;圖21至圖25是描述當閃存設備包括多個閃存時閃存設備的TRIM命令處理方法的示意圖沈是示出根據本發(fā)明構思的實施例的存儲系統(tǒng)的框圖;圖27是示出根據本發(fā)明構思的實施例的閃存系統(tǒng)的框圖;圖觀是示出圖27的文件系統(tǒng)生成的用于管理文件的目錄項結構的視圖;圖四是示出圖27中的閃存系統(tǒng)的軟件層結構的框圖;圖30是更詳細地示出圖27的TRIM管理模塊的操作的框圖;圖31是更詳細地示出圖27的FTL的地址轉換操作的框圖;圖32是示出通過映射表的地址轉換的框圖;圖33是當閃存系統(tǒng)在沒有圖27的TRIM管理模塊的條件下處理TRIM命令的閃存系統(tǒng)時的視圖;圖34至圖36是示出通過使用圖27的TRIM管理模塊生成對齊的扇區(qū)地址Al igned Sector ADDR并且處理包括對齊的扇區(qū)地址的TRIM命令的閃存系統(tǒng)的視圖;圖37是當從閃存設備的映射表傳遞到主機的組信息的流程圖;圖38是示出圖27的TRIM管理模塊的操作的流程圖;圖39是主機收集有關分別在不同時間提供的扇區(qū)地址的信息并且處理有關收集的扇區(qū)地址的信息的視圖;圖40是示出當在圖39的扇區(qū)收集區(qū)域收集中收集有關各個不同文件的扇區(qū)地址時的操作的流程圖;圖41是示出當在空閑時間期間處理收集在圖39的扇區(qū)收集區(qū)域中的扇區(qū)地址時的操作的流程圖;圖42是當根據本發(fā)明構思的實施例的閃存系統(tǒng)被應用于存儲卡時的視圖;圖43是當根據本發(fā)明構思的實施例的閃存系統(tǒng)被應用于SSD時的視圖;圖44是示出圖43的SSD控制器的配置的框圖;以及圖45是當根據本發(fā)明構思的實施例的閃存系統(tǒng)在閃存模塊中實現時的框圖。
具體實施例方式下面將參考附圖更詳細地描述本發(fā)明構思的示范性實施例。然而,本發(fā)明構思可以以不同形式具體實現而且不應當將本發(fā)明構思理解為限于這里闡述的實施例。I.支持TRIM(整理)操作的存儲系統(tǒng)在計算中,TRIM(整理)命令允許操作系統(tǒng)通知固態(tài)設備(SSD)哪些數據塊將不再考慮使用并且能夠被內部地擦去。盡管TRIM(整理)經常以大寫字母來拼寫,但它并不是一個首字母縮拼詞。它僅僅是一個命令名稱。TRIM是在SSD開始變?yōu)閭鹘y(tǒng)硬盤的人們負擔得起的替換物之后不久引入的。因為SSD的低層操作與傳統(tǒng)硬盤的低層操作顯著不同, 因此操作系統(tǒng)處理像刪除和格式化這樣的操作的典型方式(不顯式(explictly)地將所牽涉的扇區(qū)/頁傳達給底層存儲介質)導致SSD上的寫操作的性能意想不到地逐漸變差。圖1和圖2是根據本發(fā)明構思的實施例的存儲系統(tǒng)10、20的框圖。參考圖1和圖2,存儲設備12存儲由主機11寫入的數據。存儲設備12將數據提供給主機11,這些數據由主機11讀取。在這種情況下,主機11中用于管理文件的單位可能不同于存儲設備12中用于管理數據的單位。主機11和存儲設備12中的管理單位之間的這種不匹配會使存儲系統(tǒng)10的性能惡化。
根據本發(fā)明構思的示范性實施例的存儲系統(tǒng)包括用于單獨管理不匹配區(qū)域的元素。在一個示范性實施例中,存儲設備12可以包括如圖1中所示的TRIM管理表13。在一個示范性實施例中,主機11可以包括如圖2所示的TRIM管理模塊14。在圖1中,存儲設備10包括TRIM管理表13,將在下面參考圖3至圖25對其更詳細地描述。在圖2中,主機11包括TRIM管理模塊14,將在下面參考圖沈至圖41對其更詳細地描述。圖3是示出根據本發(fā)明構思的實施例的存儲系統(tǒng)100的框圖。參考圖3,存儲系統(tǒng)100包括主機110和存儲設備120。存儲設備120包括控制單元121和存儲單元122。主機110支持TRIM操作。TRIM操作表示當從用戶輸入對特定文件的刪除請求時主機110僅處理用于相應文件的元數據。在這種情況下,因為僅僅處理主機110的元數據而實質上沒有刪除存儲在存儲單元122中的數據,所以用戶可能認為對相應文件的刪除操作被迅速地執(zhí)行。為了實質上刪除存儲在存儲單元122中的數據,主機110向存儲設備120提供 TRIM命令。TRIM命令包括用于存儲實質上將被刪除的區(qū)域的信息(舉例來說,地址信息)。 響應于TRIM命令,控制單元121對存儲在存儲單元121中的數據執(zhí)行擦除操作。TRIM命令也可以用其它名稱描述,諸如解除分配命令、不寫(unwrite)命令、刪除命令和文件刪除命令。主機110中用于管理文件的單位可能不同于存儲設備120中用于管理存儲在存儲單元122中的數據的單位。舉例來說,主機110可以以硬盤中的扇區(qū)為單位來管理文件。在計算機硬盤存儲器中,扇區(qū)是磁盤或者光盤上軌道的細分。每個扇區(qū)存儲固定量的用戶數據。另一方面,存儲設備120可以以閃存中的頁和/或塊為單位來管理存儲在存儲單元122 中的數據。主機110和存儲設備120中的管理單位(management unit)之間的不匹配會使存儲系統(tǒng)100的性能變差。舉例來說,當響應于來自主機110的TRIM命令執(zhí)行了對存儲在存儲單元122中的數據的擦除操作時,管理單位之間的不匹配可能導致有效數據的復制以及組合或者聯(lián)合數據集合的大規(guī)模合并操作。因此,存儲設備120的服務壽命被縮短,并且存儲設備120的性能降低。根據本發(fā)明構思的示范性實施例的存儲設備120包括TRIM管理模塊123。TRIM管理模塊123單獨管理被指定為實質上將根據來自主機110的TRIM命令被刪除的存儲單元 122的區(qū)域當中、與存儲設備120的管理單位不匹配的區(qū)域。通過利用TRIM管理模塊123 來關注主機110與存儲設備120之間的管理單位不匹配,根據本發(fā)明構思的實施例的存儲系統(tǒng)100能夠防止存儲設備120的服務壽命被縮短以及存儲設備120的性能變差。II.用于處理TRIM命令的閃存系統(tǒng)的閃存設備(flash storage device)圖4是示出根據本發(fā)明構思的示范性實施例的閃存系統(tǒng)1000的框圖。在圖4中, 存儲設備1200被示出為圖3中的存儲設備120的示范性實施例。參考圖4,閃存系統(tǒng)1000包括主機1100和閃存設備1200。在示范性實施例中,主機1100以扇區(qū)為單位管理文件,而閃存設備1200以頁為單位管理存儲在閃存1210中的數據。閃存設備1200通過利用閃存轉換層(FTL) 1232的TRIM管理表,來關注主機1100和閃存設備1200之間的管理單位不匹配。主機1100包括處理單元1110和驅動單元1120。處理單元1110(舉例來說,中央處理單元(CPU))控制主機1100的整體操作,并且驅動單元1120根據處理單元1110的控制驅動閃存設備1200。驅動單元1120可以被配置為具有用于驅動主機1100的軟件程序的
主存儲器。驅動單元1120包括應用1121、文件系統(tǒng)1122、設備驅動器1123和主機存儲器 1124。應用1121是在操作系統(tǒng)(OS)上運行的應用軟件程序。舉例來說,應用1121被編程為支持生成和刪除文件。文件系統(tǒng)1122管理由主機1100管理的文件。在一個示范性實施例中,文件系統(tǒng) 1122以硬盤中的扇區(qū)為單位管理主機1100中使用的文件,該扇區(qū)是應用1121可訪問的最小數據管理單位,并且在一個示范性實施例中,其大小為512B (字節(jié))。當應用1121請求刪除特定文件時,文件系統(tǒng)1122改變已經請求將其刪除的文件的元數據。隨后,當應用1121訪問相應文件時,文件系統(tǒng)1122基于改變的元數據提供指示 “相應文件已經刪除”的信息。相應于存儲在閃存1210中并且已經請求將其刪除的文件的數據沒有被刪除,這是因為文件系統(tǒng)1122僅僅改變了文件的元數據(舉例來說,文件名,等等)。因此,處理單元1110向閃存設備1200提供TRIM命令,以便實質上刪除存儲在閃存1210中的數據。將在下面參考圖5更詳細地描述文件系統(tǒng)1122及其目錄項(directory entry)結構.設備驅動器1123是使閃存設備1200能夠與主機1100通信的程序。為了使用閃存設備1200,適用于閃存設備1200的設備驅動器1123安裝在主機1100中。主機存儲器 IlM可以臨時存儲寫入閃存設備1200或者從閃存設備1200讀出的數據。而且,主機存儲器IlM可以用作驅動應用1121、文件系統(tǒng)1122和設備驅動器1123的工作存儲器。在本發(fā)明構思的一個實施例中,閃存設備1200從主機1100接收TRIM命令。TRIM 命令包括用于指定將刪除的區(qū)域的信息(舉例來說,已經請求將其刪除的文件的扇區(qū)地址)。閃存設備1200將閃存1210的區(qū)域當中已經請求將其刪除的區(qū)域標記為無效。閃存設備1200在空閑時間(舉例來說,當沒有來自主機的請求時獲取的控制單元 1230的空閑時間)對標記為無效的區(qū)域執(zhí)行擦除操作。仍然參考圖4,閃存設備1200包括閃存1210、緩存1220和控制單元1230。閃存1210根據控制單元1230的控制來執(zhí)行擦除操作、讀操作或者寫操作。閃存 1210被配置為具有多個存儲塊。存儲塊中的每一個都被配置為具有多個頁。如圖4的示范性實施例中所示,存在三個存儲塊1211、1212、1213,每個存儲塊具有四個頁。每一頁的大小大于扇區(qū)的大小。也就是說,每個頁可以劃分為多個扇區(qū)。在示范性實施例中,每個頁大小可以為大約2KB (字節(jié)),而扇區(qū)的大小為512B (字節(jié))。閃存1210 以存儲塊為單位執(zhí)行擦除操作,并且以頁為單位執(zhí)行寫操作或者讀操作。一個或者更多比特的數據可以存儲在閃存1210的一個存儲單元中。存儲1比特數據的存儲單元被稱作單級單元(Single Level Cell,SLC)或者單比特單元。存儲2比特或者更多比特數據的存儲單元被稱作多級單元(Multilevel Cell, MLC)或者多比特單元。緩存1220可以臨時存儲從閃存1210讀取的或者由主機1100提供的數據。而且,緩存1220可以用于驅動諸如FTL之類的固件。緩存1220可以由動態(tài)隨機存取存儲器(DRAM)、靜態(tài)隨機存取存儲器(SRAM)、磁阻隨機存取存儲器(MRAM)和相變隨機存取存儲器 (PRAM)實現。仍然參考圖4,控制單元1230包括CPU 1231、FTL 1232、閃存控制器1233和緩存控制器1234。CPU 1231分析并且處理從主機1100輸入的信號。CPU 1231控制閃存設備 1200的整體操作。閃存轉換層1232將從主機1100提供的邏輯地址(LA)轉換為閃存1210中的物理地址(PA)。舉例來說,閃存轉換層1232將從主機接收到的扇區(qū)地址轉換為閃存1210中的頁地址。而且,舉例來說,FTL 1232以頁為單位管理存儲在閃存1210中的數據。當通過來自主機1100的TRIM命令請求刪除存儲在某頁中的全部數據時,FTL 1232將相應頁標記為無效。當通過來自主機1100的TRIM命令請求僅刪除存儲在某頁中的一部分數據時,FTL 1232將映射表的相應頁標記為有效。在這種情況下,FTL 1232可以單獨管理該相應頁。為此,FTL 1232可以包括TRIM管理表。TRIM管理表對這樣的頁進行管理已經請求僅刪除存儲在該頁中的一部分數據。TRIM管理表可以存儲在緩存1220中。在這種情況下,緩存1220的區(qū)域當中分配給TRIM管理表的區(qū)域的大小可以變化。舉例來說,分配給TRIM管理表的區(qū)域的大小可以限定為某一大小,以便基于頁管理來降低控制單元1230的開銷。當分配給TRIM管理表的區(qū)域的大小限定為某一大小時,有關TRIM管理表管理的頁的信息的大小可能超出所分配的區(qū)域的大小。在這種情況下,有關TRIM管理表的頁的信息可以通過推送方案(push scheme)管理,其中可以將有關在TRIM管理表中管理的頁的信息當中最舊的頁的信息刪除,并且可以管理新請求的頁的信息。將在下面參考圖7至圖11更詳細地描述FTL 1232及其頁管理方法。圖5示出為由圖4的文件系統(tǒng)1122管理文件而創(chuàng)建的目錄項結構的示范性實施例。參考圖5,目錄項結構可以包括文件名、擴展名、屬性、創(chuàng)建日期、創(chuàng)建時間、開始扇區(qū)的信息以及文件大小的信息。當由應用1121(參見圖4)請求刪除特定文件時,文件系統(tǒng)1122(參見圖4)改變已經請求將其刪除的文件的元數據。舉例來說,文件系統(tǒng)1122將十六進制字節(jié)代碼 ^’ 排列在已經請求將其刪除的文件中。另舉一例,文件系統(tǒng)1122將已經請求將其刪除的文件的屬性值改變?yōu)椤?χΕ5’。作為一個特定標簽的‘0χΕ5’表示“此文件已經刪除”。隨后,當應用1121訪問相應文件時,文件系統(tǒng)1122提供指示相應文件已經刪除的信息。有關文件系統(tǒng)1122的信息可以周期性地或者利用空閑時間存儲在非易失性存儲器(舉例來說,閃存 1210)中??梢愿鶕W存系統(tǒng)1000(參見圖4)的OS選擇文件系統(tǒng)1122。舉例來說,當閃存系統(tǒng)1000的OS是盤OS (disk OS, DOS)或者基于視窗(windows)的OS時,可以使用諸如文件分配表(FAT)文件系統(tǒng)、虛擬FAT(VFAT)文件系統(tǒng)、擴展的FAT (exFAT)文件系統(tǒng)或者新技術文件系統(tǒng)(NTFS)這樣的文件系統(tǒng)。根據示范性實施例,當閃存設備1000的OS是基于UNIX的OS時,可以使用UNIX文件系統(tǒng)(UFS)。當閃存設備1000的OS是基于LINUX的OS時,可以使用針對LINUX的文件系統(tǒng)。當閃存設備1000的OS是移動OS—例如iOS操作系統(tǒng)(也即,針對iPhone/il^ad 以及android OS的OS)時,可以使用針對移動OS的文件系統(tǒng)。UNIX是工業(yè)標準協(xié)會The OpenGroup 白勺示。IJNUXiLirius Torvalds 白勺示。iOSi Cisco System 白勺示。iPhone 是Cisco System以及Apple公司之間協(xié)議之下的商標。iPad是Apple公司的商標。圖6是示出圖4中的閃存系統(tǒng)1000的軟件層級結構的框圖。參考圖6,閃存系統(tǒng)1000的軟件層級結構被配置為具有應用1121、文件系統(tǒng)1122、 FTL 1232和閃存1210。主機1100(參見圖4)的應用1121和文件系統(tǒng)1122可以稱作高層。 閃存設備1200(參見圖4)的FTL 1232和閃存1210可以稱作低層。應用1121傳送文件刪除請求到文件系統(tǒng)1122。文件系統(tǒng)1122改變已經請求將其刪除的文件的元數據。例如,文件系統(tǒng)1122將 ^’排列在文件名(參見圖5)中。隨后, 當應用1121訪問相應文件時,文件系統(tǒng)1122提供指示相應文件已經刪除的信息。來自應用1121的文件刪除請求和按照請求對文件系統(tǒng)1122的元數據的改變可以稱作在高層的刪除操作。文件系統(tǒng)1122提供TRIM命令到FTL 1232,以便實質上刪除存儲在閃存1210中的數據。TRIM命令包括用于指定已經請求將其刪除的文件的扇區(qū)地址信息。FTL 1232將扇區(qū)地址轉換為頁地址,并且將閃存1210的將被刪除的頁標記為無效。閃存1210在空閑時間對標記為無效的頁執(zhí)行擦除操作。例如,空閑時間表示當沒有從主機1100(參見圖4)到控制單元1230(參見圖4)的請求時的時間。眾所周知,因為閃存1210以塊為單位來執(zhí)行擦除操作,所以對于閃存1210的頁的擦除操作可以伴隨數據的復制和合并以及塊擦除操作。FTL 1232的標記操作以及閃存1210的擦除操作可以稱作在低層的刪除操作。圖7是詳細示出FTL 1232的地址轉換操作的框圖。參考圖7,FTL 1232接收扇區(qū)地址一其是一個邏輯地址,并且將扇區(qū)地址轉換為閃存1210中的頁地址一其是一個物理地址。FTL 1232的地址轉換可以利用映射表執(zhí)行。映射方案(mapping scheme)典型地被分類為頁映射方案和塊映射方案。頁映射方案以頁為單位(例如,2KB)執(zhí)行地址轉換,塊映射方案以塊為單位(例如,1MB)執(zhí)行地址轉換。當從相應于高層的應用1121或者文件系統(tǒng)1122看時,FTL 1232的地址轉換使閃存1210中執(zhí)行的讀、寫和擦除操作能夠顯示為硬盤的讀、寫和擦除操作。也就是說,FTL 1232執(zhí)行仿真功能。仍然參考圖7,FTL 1232可以包括TRIM管理表。當已經請求了僅刪除存儲在頁中的一部分數據時,TRIM管理表單獨管理相應頁。將在下面參考圖9至圖11更詳細地描述使用映射表和TRIM管理表的在低層的刪除操作。圖8是示出利用映射表的地址轉換的示范性實施例的框圖。在圖8中,依照示范性實施例,通過頁映射方案執(zhí)行地址轉換。參考圖8,映射表將扇區(qū)地址(其是邏輯地址)映射到頁地址(其是物理地址)。 依照示范性實施例,四個扇區(qū)被映射到一頁。例如,如圖8中所示,第一到第四扇區(qū)(扇區(qū) 1到扇區(qū)4)被映射到頁3。
映射表利用寫狀態(tài)信息(WSI)示出存儲為頁的數據是否是有效數據。例如,WSI中的標記‘V’指示存儲在頁中的數據是有效數據。在示范性實施例中,閃存1210的塊1211中的頁(頁0到頁3)中的每一頁都被劃分為四個子頁(子頁0到子頁3)。依照示范性實施例,每個子頁和每個扇區(qū)大小相同,每個子頁相應于每個扇區(qū)。例如,如圖8所示,依照示范性實施例,第三頁(頁3)被劃分為四個子頁(子頁0到子頁3),子頁中的每一個相應于第一到第四扇區(qū)(扇區(qū)1到扇區(qū)4)。在圖9至圖11中,并且也在圖8中示出,在示范性實施例中,作為有效數據的三個文件(文件1到文件幻被存儲在塊1211的第一到第三頁(頁1到頁3)。圖9是示出在沒有TRIM管理表的條件下僅使用映射表來處理TRIM命令的發(fā)明構思的實施例的圖。依照示范性實施例,提供了包括圖8中第一文件(文件1)的地址信息的 TRIM命令。也就是說,在低層請求刪除第一文件(文件1)。參考圖9,從主機1100提供TRIM命令。TRIM命令包括將被刪除的文件的扇區(qū)地址。有關扇區(qū)地址的信息可以提供為開始扇區(qū)號以及扇區(qū)的數目。例如,因為第一文件(文件1)相應于第一至第五扇區(qū)(扇區(qū)1至扇區(qū)5),所以開始扇區(qū)號可以是1并且扇區(qū)的數目可以是5。當從主機1100提供TRIM命令時,FTL 1232 (參見圖4)更新映射表的WSI。也就是說,相應于接收到的扇區(qū)地址的頁的WSI被標記為無效。在示范性實施例中,圖9的WSI 中的標記‘X’表示存儲在相應頁中的數據是無效數據。在圖9中,第一文件(文件1)相應于第一至第五扇區(qū)(扇區(qū)1至扇區(qū)5)。在這種情況下,因為第一文件(文件1)的第一至第四扇區(qū)(扇區(qū)1至扇區(qū)4)相應于第三頁(頁 3),所以關于映射表的第三頁(頁幻的WSI被標記為無效。而且,因為第一文件(文件1) 的第五扇區(qū)(扇區(qū)5)相應于第二頁(頁2),所以第二頁(頁2)的WSI被標記為無效。例如,在控制單元1230(參見圖4)的空閑時間期間執(zhí)行對標記為無效的第二頁和第三頁(頁 2和頁3)的擦除操作。與第一文件(文件5)的第五扇區(qū)(扇區(qū)5)相應的數據存儲在第二頁(頁2)的子頁(0)中,與第二文件(文件2)的第六至第八扇區(qū)(扇區(qū)6至扇區(qū)8)相應的數據存儲在第二頁(頁幻的子頁(1至幻中。因此,當根據針對第一文件(文件1)的TRIM命令將第二頁(頁2)更新為無效時, 第二文件(文件幻的有效數據可能被一起刪除。為了防止第二文件(文件幻的數據被刪除,閃存1210將存儲在第二頁(頁幻的子頁(1至幻中的數據復制到另一頁(例如,其它塊1212(參見圖4)的頁)。由于寫次數的增加而造成這些復制操作會縮短閃存1210的服務壽命。而且,存儲通過復制操作而生成的有效數據的新頁會增加生成自由塊(free block)的合并操作。 因此,根據本發(fā)明構思的示范性實施例的閃存設備1200通過TRIM管理表單獨管理第二頁 (頁幻。這將在下面參考圖10和圖11更詳細地描述。圖10和圖11是示出使用映射表和TRIM管理表來處理TRIM命令的發(fā)明構思的實施例的圖。如圖9中所示,依照示范性實施例,提供了包括第一文件(文件1)的地址信息的TRIM命令。參考圖10,閃存設備1200通過使用映射表和TRIM管理表處理來自主機1100的TRIM命令。當從主機1100接收到的扇區(qū)地址與閃存1210的頁單位匹配時,映射表管理相應頁。當從主機1100接收到的扇區(qū)地址與閃存1210的頁單位不匹配時,TRIM管理表管理相應頁。包括第一文件(文件1)的扇區(qū)地址的TRIM命令被提供給閃存設備1200。在這種情況下,第一文件(文件1)的第一至第四扇區(qū)(扇區(qū)1至扇區(qū)4)與閃存1210的頁單位匹配。也就是說,第一至第四扇區(qū)(扇區(qū)1至扇區(qū)4)與第三頁(頁3)匹配。因此,FTL 1232(參見圖4)將關于映射表的第三頁(頁幻的WSI更新為無效。第一文件(文件1)的第五扇區(qū)(扇區(qū)5)與閃存1210的頁單位不匹配。也就是說,第五扇區(qū)(扇區(qū)幻僅相應于第二頁(頁幻中的子頁(0到幻的子頁(0)。換句話說, 存儲在第二頁(頁幻的子頁(0到;3)中的數據當中只有存儲在子頁(0)中的數據是無效數據。在這種情況下,FTL 1232將關于映射表的第二頁(頁2)的WSI保持為有效。因此在空閑時間(例如,控制單元1230的空閑時間)不執(zhí)行對于標記為有效的第二頁(頁2) 的擦除操作,僅執(zhí)行對于標記為無效的第三頁(頁3)的擦除操作。利用TRIM管理表來單獨管理第二頁(頁2)。TRIM管理表單獨管理第二頁(頁2)。也就是說,當從主機1100接收到的扇區(qū)地址與閃存1210的頁單位不匹配時TRIM管理表管理相應頁。換句話說,TRIM管理表管理多頁當中包括一部分無效數據的頁。仍然參考圖10,例如,因為第五扇區(qū)(扇區(qū)5)相應于第二頁(頁2)的子頁(0), 所以存儲在第二頁(頁幻的子頁(0)中的數據是無效數據。因此,TRIM管理表將第二頁 (頁2)的子頁(0到3)當中的子頁(0)的WSI標記為無效。當由TRIM管理表管理的頁的全部子頁都更新為無效時,FTL 1232將映射表的相應頁更新為無效。在這種情況下,相應頁的信息被從TRIM管理表中刪除。這將在下面參考圖11更詳細地描述。在圖11中,依照示范性實施例,包括第二文件(文件2)的扇區(qū)地址的TRIM命令被提供給閃存設備1200。也就是說,依照示范性實施例,在低層提供對第二文件(文件2) 的刪除請求。在這種情況下,因為第二文件(文件幻相應于第六至第八扇區(qū)(扇區(qū)6至扇區(qū)8),所以開始扇區(qū)號可以是6并且扇區(qū)的數目可以是3。當提供對于第二文件(文件2)的TRIM命令時,第二文件(文件2)的第六至第八扇區(qū)(扇區(qū)6至扇區(qū)8)與閃存1210的頁單位不匹配。也就是說,第六至第八扇區(qū)(扇區(qū) 6至扇區(qū)8)僅相應于第二頁(頁2)的子頁(0至3)當中的子頁(1至3)。因此,FTL 1232 將映射表的第二頁(頁幻保持為有效。在這種情況下,由TRIM管理表單獨管理第二頁(頁 2)。因為第二文件(文件2)的第六至第八扇區(qū)(扇區(qū)6至扇區(qū)8)相應于第二頁(頁 2)的子頁(1至3),所以TRIM管理表將關于第二頁(頁2)的子頁(1至3)的WSI更新為無效。在這種情況下,存儲在第二頁(頁幻的子頁(0)中的數據已經根據對第一文件(文件1)的TRIM命令被置為無效狀態(tài)。因此,存儲在第二頁(頁幻中的所有數據根據對第一和第二文件(文件1和文件2、的TRIM命令都被置為無效狀態(tài)。因為存儲在第二頁(頁2)中的全部數據都處于無效狀態(tài),所以FTL 1232將關于
18映射表的第二頁(頁2)的WSI更新為無效。因此,在隨后的空閑時間(例如,控制單元1230 的空閑時間)執(zhí)行對于第二頁(頁2)的擦除操作。然而,第二頁(頁2)的信息被從TRIM
管理表中刪除。如上所述,映射表將包括一部分無效數據的頁的WSI保持為有效。因此,不執(zhí)行對于將存儲在相應頁中的數據復制到另一塊的頁的操作。這表示可以防止由于有效數據的復制操作而造成的合并操作。在這種情況下,TRIM管理表管理包括一部分無效數據的頁。當存儲在由TRIM管理表管理的頁中的全部數據都處于無效狀態(tài)時,映射表中針對相應頁的WSI被更新為無效。 因此,閃存1210可以在低層僅對于從主機1100接收到的扇區(qū)地址當中與頁單位匹配的扇區(qū)地址執(zhí)行擦除操作??梢赃x擇限制緩存1220(參見圖4)當中分配給TRIM管理表的存儲器的大小。 在這種情況下,關于在TRIM管理表中管理的頁地址的信息的大小可以不超出分配給緩存 1220的大小。當關于在TRIM管理表中管理的頁的信息的大小超出分配給緩存1220的大小時, 可以通過推送方案管理關于在TRIM管理表中管理的頁的信息的大小。例如,依照示范性實施例,在TRIM管理表中管理第一至第三頁(頁1至頁3)的信息。而且,屬于另一塊的第四頁(頁4)的信息需要在TRIM管理表中進行管理,并且當第四頁(頁4)的信息被管理時,依照示范性實施例,關于在TRIM管理表中受到管理的頁的信息的大小超出分配給TRIM管理表的區(qū)域的大小。在這種情況下,FTL 1232可以從TRIM管理表中刪除最舊的第一頁的信息,并且在TRIM管理表中管理第四頁(頁4)的信息。圖12是示出圖4的閃存設備在低層的擦除操作的流程圖。在操作Sll中,主機1100(參見圖4)提供TRIM命令給閃存設備1200。TRIM命令包括指定閃存1210(參見圖4)的區(qū)域當中將被執(zhí)行擦除操作的區(qū)域的信息(例如,扇區(qū)地址信息)。在操作S12中,FTL 1232(參見圖4)的映射表和TRIM管理表被更新。例如,當從主機1100接收到的扇區(qū)地址與閃存1210的頁單位匹配時,映射表中針對相應頁的WSI被標記為無效。另舉一例,當從主機1100接收到的扇區(qū)地址與閃存1210的頁單位不匹配時, 映射表中針對相應頁的WSI被標記為有效,并且該相應頁由TRIM管理表管理。在操作S13中,執(zhí)行依照映射表的擦除操作。也就是說,當映射表中的WSI處于無效狀態(tài)時,執(zhí)行對于相應頁的擦除操作。眾所周知,閃存1210的擦除操作是以塊為單位執(zhí)行的,因此閃存1210可以伴隨對于相應頁的復制和/或合并操作。圖13是示出當在低層執(zhí)行刪除操作時FTL 1232(參見圖4)的操作的流程圖。在操作SllOO中,將被刪除的文件的扇區(qū)地址被傳送到FTL 1232。例如,扇區(qū)地址被提供為開始扇區(qū)號和扇區(qū)的數目。在操作S1200中,對于傳送的扇區(qū)地址是否是部分扇區(qū)地址進行確定。這里,部分扇區(qū)地址表示與閃存1210(參見圖4)的頁單位不匹配的扇區(qū)地址。當傳送的扇區(qū)地址不是部分扇區(qū)地址(也即,傳送的扇區(qū)地址與頁單位匹配)時, FTL 1232在操作S1300中更新映射表的WSI。也就是說,與傳送的扇區(qū)地址相應的頁的WSI 被更新為無效。當傳送的扇區(qū)地址是部分扇區(qū)地址(也即,傳送的扇區(qū)地址與頁單位不匹配)時,執(zhí)行操作S1400。在操作S1400中,對于與部分扇區(qū)地址相應的TRIM管理表是否存在進行確定。當 TRIM管理表不存在時,FTL 1232在操作S1500中創(chuàng)建TRIM管理表,其管理與部分扇區(qū)地址相應的頁。當TRIM管理表存在時,FTL 1232在操作S1600中更新TRIM管理表中的WSI。也就是說,與部分扇區(qū)地址相應的子頁的WSI被更新為無效。在操作S1700中,對于TRIM管理表中的全部WSI是否都被更新進行確定。也就是說,確定關于某頁的子頁的全部WSI都被更新為無效。當全部WSI都被更新為無效時,FTL 1232在操作S1800中更新映射表中的WSI。也就是說,映射表中與相應頁對應的WSI被更新為無效。如上所述,根據本發(fā)明構思的實施例的閃存系統(tǒng)1000支持TRIM操作。也就是說, 當請求刪除某文件時,主機1100改變文件系統(tǒng)1122的元數據并且通知用戶相應文件已經被刪除,并且根據TRIM命令在閃存設備1200中執(zhí)行實質刪除操作。在這種情況下,閃存設備1200利用TRIM管理表解決主機1100和閃存設備1200 之間的管理單位不匹配的問題。因此,閃存設備1200能夠防止由于管理單位不匹配而發(fā)生的存儲在頁中的數據的復制操作。結果,能夠防止閃存設備1200的服務壽命縮短以及性能降低。如上所述,依照示范性實施例,文件(文件1到文件3)的數據存儲在閃存1210的頁中。當閃存設備1200不支持清洗操作時,文件(文件1到文件幻的數據可以存儲在緩存1220(參見圖4)中。在下文中,當閃存設備1200支持清洗操作時,將詳細描述根據本發(fā)明構思的示范性實施例的TRIM命令的處理方法。III.支持清洗(flush)功能的閃存設備典型地,將存儲在緩存的扇區(qū)中的全部或者部分數據分別寫入閃存的頁中的操作稱作清洗操作。圖14至圖16是描述當閃存設備支持清洗功能時閃存設備的TRIM命令處理方法的示意圖。除了支持清洗操作之外,將在下面描述的閃存設備類似于圖4的閃存設備1200。 因此,在下文中,同樣的參考標號指代同樣的元素。圖14是示出利用映射表的緩存1220和閃存1210之間的地址轉換的圖。依照示范性實施例,緩存1220的每個扇區(qū)的大小都與文件系統(tǒng)1122(參見圖4)的管理單位的扇區(qū)的大小相同。參考圖14,緩存1220包括多個扇區(qū)。緩存1220的扇區(qū)臨時存儲數據。存儲在緩存1220的扇區(qū)中的數據根據控制單元1230 (參見圖5)的控制分別寫入閃存1210的塊1211 的頁中。存儲在緩存1220的扇區(qū)中的全部或者部分數據被分別寫入閃存1210的頁中的操作可以稱作清洗操作。例如,當緩存1220的自由空間(free space)不夠時,存儲在緩存1220的扇區(qū)中的全部或者部分數據可以被分別寫入閃存1210的頁中。另舉一例,在控制單元1230(參見圖4)的空閑時間(當沒有來自主機1100的請求時獲取的時間),存儲在緩存1220的扇區(qū)中的全部或者部分數據可以被分別寫入閃存1210的頁中。閃存1210的塊1211中的每一頁(頁0到頁3)都被劃分為四個子頁(子頁0到子頁3)。依照示范性實施例,閃存1210的每個子頁的大小與緩存1220的扇區(qū)的大小相同。 也就是說,依照示范性實施例,四個扇區(qū)相應于一頁。映射表將緩存1220的扇區(qū)地址映射到閃存1210的頁地址。圖14中映射表中的標記‘BSA’表示緩存1220的扇區(qū)地址。例如,緩存1220的第一到第四扇區(qū)(扇區(qū)Sl到扇區(qū)S4)被映射到閃存1210的第三頁(頁3)。依照示范性實施例,三個文件(文件1到文件 3)作為有效數據存儲在緩存1220的扇區(qū)Sl到S12。當從主機1100提供TRIM命令時,根據本發(fā)明構思的實施例的閃存設備1200使已經請求將其刪除的文件的數據被從緩存1220寫到閃存1210無效。也就是說,閃存設備 1200更新映射表中的WSI,并且由此防止存儲在緩存1220中的數據被寫入閃存1210中。防止數據從緩存1220寫到閃存1210的操作可以稱作不寫操作(unwriting operation)。在這種情況下,包括在TRIM命令中的地址信息指定將被不寫的區(qū)域。因此, TRIM命令可以稱作不寫命令。將在下面參考圖15和圖16更詳細地描述執(zhí)行不寫操作的本發(fā)明構思的實施例。圖15是示出在沒有TRIM管理表的條件下僅使用映射表來處理TRIM命令的發(fā)明構思的實施例的示意圖。依照示范性實施例,提供了包括第一文件(文件1)的扇區(qū)地址信息的TRIM命令。而且,依照示范性實施例,從主機1100提供的扇區(qū)地址等于緩存1220的扇區(qū)地址。參考圖15,從主機1100提供TRIM命令。TRIM命令包括將被刪除的文件的扇區(qū)地址。關于扇區(qū)地址的信息可以提供為開始扇區(qū)號以及扇區(qū)的數目。例如,因為第一文件(文件1)的數據存儲在緩存1220的第一至第五扇區(qū)(扇區(qū)1至扇區(qū)5),所以開始扇區(qū)號可以是1,并且扇區(qū)的數目可以是5。當由主機1100提供TRIM命令時,FTL 1232 (參見圖4)更新映射表的WSI。也就是說,FTL 1232將與已經請求對其不寫的緩存1220的扇區(qū)對應的頁的WSI標記為無效。例如,因為第一文件(文件1)的數據存儲在緩存1220的第一到第五扇區(qū)(扇區(qū)1到扇區(qū)5) 中,所以FTL 1232將映射表中與第一到第五扇區(qū)(扇區(qū)1到扇區(qū)5)對應的WSI標記為無效。在這種情況下,緩存1220的第一到第四扇區(qū)Sl到S4相應于第三頁(頁3),第五扇區(qū)S5相應于第二頁(頁幻。因此,映射表中關于第二和第三頁(頁2和頁幻的WSI被標記為無效。隨后不對被標記為無效的第二和第三頁(頁2和頁幻執(zhí)行清洗操作。也就是說,存儲在緩存1220的第一到第八扇區(qū)Sl到S8的數據不被寫入閃存1210的第二和第三頁(頁2和頁幻中。第二文件(文件2、的數據存儲在緩存1220的第六到第八扇區(qū)S6到S8中。因此,當根據對于第一文件(文件1)的TRIM命令將第二頁(頁幻標記為無效時,第二文件 (文件幻的有效數據可能未被寫入閃存1210中。這表示第二文件(文件2)的數據在緩存 1220是易失性存儲器(例如,DRAM)時可能會丟失。根據本發(fā)明構思的示范性實施例的閃存設備1200通過TRIM管理表單獨管理第二頁(頁幻。這將在下面參考圖16更詳細地描述。圖16是示出僅使用映射表和TRIM管理表來處理TRIM命令的本發(fā)明構思的實施例的示意圖。如圖15中所示,依照示范性實施例,提供了包括第一文件(文件1)的地址信息的TRIM命令。參考圖16,閃存設備1200通過映射表和TRIM管理表處理來自主機1100的TRIM 命令。包括第一文件(文件1)的扇區(qū)地址的TRIM命令被提供給閃存設備1200。也就是說,對于存儲在緩存1220的第一到第五扇區(qū)(扇區(qū)1到扇區(qū)5)中的數據的不寫命令被提供給閃存設備1200。在這種情況下,第一至第四扇區(qū)Sl至S4與閃存1210的頁單位匹配。也就是說, 第一至第四扇區(qū)Sl至S4與第三頁(頁3)匹配。因此,FTL 1232(參見圖4)將關于映射表的第三頁(頁3)的WSI更新為無效。第五扇區(qū)S5與閃存1210的頁單位不匹配。也就是說,第五扇區(qū)S5僅相應于第二頁(頁2)中的子頁(0到3)當中的子頁(0)。在這種情況下,FTL 1232將映射表中關于第二頁(頁幻的WSI保持為有效。因此存儲在第五至第八扇區(qū)S5至S8中的被標記為有效的數據在空閑時間期間被寫入第二頁(頁幻中。因為第二頁(頁幻包括一部分無效數據,所以TRIM管理表單獨管理第二頁(頁2)。仍然參考圖16,TRIM管理表管理第二頁和第二頁的子頁。也就是說,因為存儲在第二頁(頁2)的子頁(0到3)當中的子頁(0)中的數據是無效數據,所以TRIM管理表將子頁(0)的WSI標記為無效。在對存儲在第一到第四扇區(qū)Sl到S4中的數據執(zhí)行清洗操作之前可以提供對于第二文件(文件2)的TRIM命令。參考圖14,第二文件(文件2)存儲在緩存1220的第六到第八扇區(qū)S6到S8,并且第六到第八扇區(qū)S6到S8相應于第二頁(頁2)的子頁(1至3)。因此,當提供了對于第二文件(文件2)的TRIM命令時,TRIM管理表中的第二頁 (頁2)的子頁(1到3)被更新為無效。此時,FTL 1232將映射表中關于第二頁(頁2)的 WSI更新為無效。結果,當隨后執(zhí)行清洗操作時,存儲在第一到第八扇區(qū)Sl到S8中的數據可以不被寫入閃存1210中。圖17是示出根據本發(fā)明構思的實施例的、閃存設備1200的不寫操作的流程圖。在操作S21中,從主機1100提供TRIM命令給閃存設備1200。TRIM命令包括緩存 1220的扇區(qū)當中將不被寫入閃存1210中的扇區(qū)的地址信息。因此,TRIM命令可以稱作不寫命令。在操作S22中,FTL 1232的映射表和TRIM管理表被更新。例如,當包括在TRIM命令中的扇區(qū)地址與閃存1210的頁單位匹配時,映射表中針對相應頁的WSI被標記為無效。 另舉一例,當包括在TRIM命令中的扇區(qū)地址與閃存1210的頁單位不匹配時,映射表中針對相應頁的WSI被標記為有效,并且相應頁由TRIM管理表管理。在操作S23中,執(zhí)行基于映射表的不寫操作。也就是說,當映射表中的WSI處于無效狀態(tài)時,存儲在相應緩存的扇區(qū)中的數據不被寫入閃存1210的頁中。被更新的映射表和 TRIM管理表中的WSI類似于對圖13的描述,并且由此將不提供對其的詳細說明。如上所述,根據本發(fā)明構思的實施例的閃存系統(tǒng)1000支持不寫操作。在這種情況下,閃存設備1200通過使用TRIM管理表解決主機1100和閃存設備1200之間的管理單位不匹配的問題。因此,閃存設備1200能夠防止由于管理單位不匹配而造成的緩存1220的有效數據不被寫。
閃存設備1200可以利用時間差從主機1100接收多個TRIM命令。在這種情況下, 閃存設備1200可以收集TRIM命令并且在空閑時間在同一時間(at one time)處理收集到的TRIM命令。這將在下面參考圖18至圖20更詳細地描述。IV.收集TRIM命令的閃存設備圖18至圖20是描述收集在不同時間提供的TRIM命令并且在同一時間處理所收集的TRIM命令的閃存設備的圖。除了收集TRIM命令之外,將在下面描述的閃存設備類似于圖4的閃存設備1200。因此,以下的描述將集中在與圖4的閃存設備1200的差異上。而且,同樣的參考標記指代同樣的元素。參考圖18,第一至第三 TRIM 命令 TRIM cmd_l、TRIM cmd_2、TRIMcmd_3 被提供給閃存設備1200的控制單元1230。依照示范性實施例,第一至第三TRIM命令TRIM cmd_U TRIM cmd_2、TRIM cmd_3在不同時間被提供給控制單元1230。緩存1220包括用于收集所提供的TRIM命令的TRIM收集區(qū)域??刂茊卧?230將第一至第三TRIM命令TRIM cmd_l、TRIM cmd_2、TRIM cmd_3臨時存儲在緩存1220的TRIM 收集區(qū)域中,并且之后在控制單元1230的空閑時間(例如,當沒有來自主機1100的請求時的時間)處理已經收集的第一到第三TRIM命令TRIM cmd_l、TRIM cmd_2、TRIM cmd_3。控制單元1230的CPU 1231分析接收到的命令。當接收到的命令是TRIM命令時, CPU 1231將包括在TRIM命令中的信息(例如,開始扇區(qū)號)以及扇區(qū)的數目傳送給緩存控制器1234。緩存控制器1234將包括在TRIM命令中的信息存儲在緩存1220的TRIM收集區(qū)域中。隨后,閃存設備1232基于存儲在TRIM收集區(qū)域中的信息,在空閑時間更新映射表和 TRIM管理表。圖19是示出將多個TRIM命令存儲在緩存中的操作的流程圖。在操作S31中,控制單元1230(參見圖18)接收TRIM命令TRIM cmd。在操作S32 中,控制單元1230將接收到的TRIM命令的信息存儲在緩存1220的TRIM收集區(qū)域中。隨后, 當接收到另一 TRIM命令時,控制單元1230將包括在TRIM命令中的信息連續(xù)存儲在TRIM 收集區(qū)域中。圖20是示出在空閑時間處理收集到的TRIM命令的操作的流程圖。在操作S41中,生成TRIM命令處理信號(TCP)。例如,當在一定時間內沒有來自主機1100(參見圖4)的命令時,控制單元1230的CPU 1231生成TRIM命令處理信號(TCP)。在操作S42中,更新映射表和TRIM管理表。例如,FTL 1232(參見圖4)響應于 TRIM命令處理信號(TCP)向緩存控制器1234(參見圖4)請求在TRIM收集區(qū)域中收集到的 fn息ο緩存控制器1234將在緩存1220的TRIM收集區(qū)域中收集到的關于TRIM命令的信息傳送給FTL 1232。FTL 1232基于傳送的信息更新映射表和TRIM管理表。更新的映射表和TRIM管理表中的WSI類似于圖13的描述,并且因此將不提供對其的詳細說明。如上所述,根據本發(fā)明構思的實施例的閃存設備1200可以收集緩存1220中TRIM 命令的信息,并且在空閑時間在同一時間處理所收集的信息。在圖4至圖20,假定閃存設備1200包括一個閃存。然而,這僅僅是一個例子,本發(fā)明構思不局限于此。例如,閃存設備1200可以包括多個閃存。在圖21至圖25中,將在下面更詳細地描述包括多個閃存的閃存設備。
V.具有多個閃存的閃存設備圖21至圖25是描述當閃存設備包括多個閃存時閃存設備的TRIM命令處理方法的圖。將在下面描述的閃存設備類似于圖4和圖18的閃存設備1200。因此,以下的描述將集中在與圖4和圖18的閃存設備1200的差異上。而且,同樣的參考標記指代同樣的元素。閃存設備1200可以包括多個閃存。而且,如上參考圖18所述,閃存設備1200可以收集TRIM命令的信息。根據本發(fā)明構思的實施例的閃存設備1200可以將收集的TRIM 命令的次序重置,并且根據重置后的次序處理TRIM命令。因此,閃存設備1200可以針對閃存并行地處理TRIM命令。圖21是示出具有多個閃存的閃存設備1200的示范性實施例的示意圖。在圖21 中,在示范性實施例中,依照示范性實施例,閃存設備1200包括兩個閃存1210、1M0。參考圖21,第一閃存1210通過第一通道CHl連接到控制單元1230,第二閃存1240 通過第二通道CH2連接到控制單元1230。依照示范性實施例,閃存中的每一個都包括四個頁。如上參考圖18所述,緩存1220包括TRIM收集區(qū)域。多個TRIM命令的信息存儲在TRIM收集區(qū)域中。也就是說,當提供TRIM命令時,控制單元1230將TRIM命令的信息存儲在TRIM收集區(qū)域。這已經在上面參考圖18至圖20詳細進行了描述,因此將不提供詳細說明??刂茊卧?230包括TRIM重新排序模塊1235。TRIM重新排序模塊1235將存儲在 TRIM收集區(qū)域中的TRIM命令的處理次序重置。也就是說,TRIM重新排序模塊1235控制存儲在TRIM收集區(qū)域中的TRIM命令的處理次序,使得針對第一閃存1210和第二閃存1240 并行地執(zhí)行TRIM命令。通過重置TRIM命令的處理次序,閃存設備1200能夠縮短處理TRIM 命令花費的時間??刂茊卧?230包括CPU 1231、FTL 1232、閃存控制器1233和緩存控制器12;34。 這已經在上面參考圖4詳細進行了描述,因此將不提供詳細說明。圖22至圖M是用于描述TRIM命令的重新排序以及TRIM命令的并行處理的圖。 依照示范性實施例,順序地提供第一至第四TRIM命令TRIMcmd_l、TRIM cmd_2、TRIM cmd_3、 TRIM cmd_4。而且,依照示范性實施例,包括在每一個TRIM命令中的扇區(qū)地址都與閃存的頁單位匹配。參考圖22,包括在第一至第四 TRIM 命令 TRIM cmd_l、TRIM cmd_2、TRIM cmd_3、 TRIM cmd_4中的信息(例如,開始扇區(qū)號以及扇區(qū)的數目)存儲在緩存1220的TRIM收集區(qū)域中。在這種情況下,TRIM命令的處理次序也一起存儲在TRIM收集區(qū)域中。如圖22中所示,依照示范性實施例,TRIM命令的初始處理次序是提供TRIM命令的次序。仍然參考圖22,第一命令TRIM cmd_l和第二 TRIM命令TRIM cmd_2相應于第二閃存1240的頁(頁7和頁幻,第三命令cmd_3和第四TRIM命令cmd_4相應于第一閃存1210 的頁(頁3和頁1)。因此,當順序地提供第一至第四TRIM命令TRIM cmd_U TRIM cmd_2、 TRIM cmd_3、TRIM cmd_4時,處理針對第二閃存1240的第一 TRIM命令TRIM cmd_l和第二 TRIM命令TRIM cmd_2,并且之后,處理針對第一閃存1210的第三TRIM命令TRIM cmd_3和第四 TRIM 命令 TRIM cmd_4。TRIM命令的該處理會降低閃存設備1200的性能。例如,在第二閃存1240對第五頁和第七頁(頁5和頁7)執(zhí)行擦除操作時,第一閃存1210可以不執(zhí)行任何操作。這表示 TRIM處理時間被延長了。為了防止TRIM命令處理效率低,根據本發(fā)明構思的實施例的閃存設備1200重置TRIM命令的處理次序(POT)以使得TRIM命令將被并行處理。也就是說,如圖23中所示,TRIM重新排序模塊1235基于映射表以第一 TRIM命令 TRIM cmd_l、第三 TRIM 命令 TRIM cmd_3、第二 TRIM 命令 TRIM cmd_2 和第四 TRIM 命令 TRIM cmd_4的次序重置TRIM命令的處理次序(POT)。因此,如圖24中所示,在針對第二閃存1240執(zhí)行對于第一 TRIM命令TRIM cmd_l 的處理的同時,可以針對第一閃存1210執(zhí)行對于第三TRIM命令TRIM cmd_3的處理。例如, 在對第二閃存1240的第七頁(頁7)執(zhí)行擦除操作的同時,可以并行地執(zhí)行針對第一閃存 1210的第三頁(頁3)的擦除操作。同樣地,在針對第二閃存1240執(zhí)行對于第二TRIM命令TRIM cmd_2的處理的同時, 可以針對第一閃存1210執(zhí)行對于第四TRIM命令TRIMcmd_4的處理。上面描述的確定TRIM命令的處理次序(POT)的方法僅僅是一個例子,并且本發(fā)明構思不局限于此。例如,可以考慮每個閃存的操作狀態(tài)來確定TRIM命令的處理次序(POT)。 舉例來說,當執(zhí)行針對第二閃存1240的寫操作(或者讀操作)時,可以確定TRIM命令的處理次序(POT)以使得針對第一閃存1210執(zhí)行TRIM命令的處理。圖25是示出具有多個閃存的閃存設備1200的TRIM命令處理方法的流程圖。在操作S51中,生成TRIM命令處理信號(TCP)。例如,當在一定時間內沒有來自主機1100(參見圖4)的請求時,控制單元1230的CPU 1231生成TRIM命令處理信號(TCP)。在操作S52中,重置TRIM命令(存儲在TRIM收集區(qū)域中)的處理次序(POT)。例如,TRIM重新排序模塊1235(參見圖21)重置TRIM命令的處理次序(POT)以使得將對于閃存并行地執(zhí)行TRIM命令。在這種情況下,例如,TRIM重新排序模塊1235可以基于映射表重置TRIM命令的處理次序(POT)。另舉一例,TRIM重新排序模塊1235可以考慮每個閃存的操作狀態(tài)來重置TRIM命令的處理次序(POT)。在這種情況下,例如,TRIM重新排序模塊 1235可以確定TRIM命令的處理次序(POT)以使得當在第二閃存1240中執(zhí)行寫操作(或者讀操作)的同時處理與第一閃存1210相應的TRIM命令。在操作S53中,更新FTL 1232 (參見圖21)的映射表和TRIM管理表。例如,FTL 1232響應于TRIM命令處理信號(TCP)向緩存控制器1234(參見圖4)請求收集在TRIM收集區(qū)域中的信息。緩存控制器1234將收集在緩存1220的TRIM收集區(qū)域中的TRIM命令的信息傳送給FTL 1232。FTL 1232基于傳送的信息更新映射表和TRIM管理表。更新的映射表和TRIM 管理表中的WSI類似于圖13的描述,并且由此將不提供對其的詳細說明。在操作S54中,根據TRIM命令請求對閃存來說并行的、對于被標記為無效的區(qū)域的擦除操作。例如,閃存控制器1233(參見圖21)根據重置后的TRIM命令的處理次序 (POT)和更新后的映射表請求對閃存的擦除操作。在這種情況下,因為TRIM命令的處理次序(POT)被重置,所以可以并行地對閃存執(zhí)行擦除操作。如上所述,當根據本發(fā)明構思的實施例的閃存設備1200包括多個閃存時,可以重置TRIM命令的處理次序。因此,可以對多個閃存并行地執(zhí)行TRIM命令的處理。結果,能夠縮短TRIM命令的處理花費的時間。
VI.支持TRIM操作的主機圖沈是示出根據本發(fā)明構思的實施例的存儲系統(tǒng)200的框圖。參考圖沈,存儲系統(tǒng)200包括主機210和存儲設備220并且存儲設備220包括控制單元221和存儲單元222。主機210包括處理單元211和驅動單元212。處理單元211控制主機210的整體操作,而驅動單元212根據處理單元211的控制驅動存儲設備220。主機100支持TRIM操作。當存在來自用戶的關于特定文件的刪除請求時,TRIM操作僅處理主機210中關于相應文件的元數據。在這種情況下,因為僅僅處理主機210中的元數據而沒有實質刪除存儲在存儲單元222中的數據,所以用戶可能認為關于相應文件的刪除操作被迅速執(zhí)行。為了實質上刪除存儲在存儲單元222中的數據,主機210向存儲設備120提供 TRIM命令。TRIM命令包括用于指定實質上將被刪除的區(qū)域的信息(例如,地址信息)。控制單元221響應于TRIM命令對存儲在存儲單元222中的數據執(zhí)行擦除操作。此TRIM命令被定義為具有各種名稱,諸如解除分配命令、不寫命令、刪除命令和文件刪除命令。此外,管理主機210中的文件的單位可以不同于管理存儲在存儲設備220的存儲單元222中的數據的單位。例如,主機210可以以就硬盤而言的扇區(qū)為單位管理文件,而存儲設備220可以以就閃存而言的頁和/或塊為單位來管理存儲在存儲單元222中的數據。主機210和存儲設備220的管理單位的不匹配可能使存儲系統(tǒng)200的性能惡化。 例如,當響應于來自主機210的TRIM命令對存儲在存儲單元222中的數據執(zhí)行擦除操作時,管理單位的不匹配會導致大量的數據復制和合并操作。因此,存儲設備220的壽命周期被縮短并且其性能惡化。主機210包括TRIM管理模塊213。當提供TRIM命令給存儲設備220時,TRIM管理模塊213僅提供用于指定將被刪除的區(qū)域的信息(例如,扇區(qū)地址)當中與存儲設備220 的管理單位(例如,頁單位)相應的信息。因為TRIM管理模塊213解決主機210與存儲設備220之間的管理單位的不匹配問題,所以存儲系統(tǒng)200可以防止存儲設備220的壽命縮短及其性能惡化。VII.用于解決管理單位的不匹配問題的閃存系統(tǒng)的主機圖27是示出根據本發(fā)明構思的實施例的閃存系統(tǒng)2000的框圖。作為圖沈的存儲設備220的例子在圖27中閃存設備2200。參考圖27,閃存系統(tǒng)2000包括主機2100和閃存設備2200。依照示范性實施例, 主機2100以扇區(qū)為單位管理文件,而閃存設備2200以頁為單位管理存儲在閃存2210中的數據。主機2100包括TRIM管理模塊2124。主機2100通過使用TRIM管理模塊1123解決主機2100與閃存設備2200之間管理單位的不匹配問題。參考圖27,主機2100包括處理單元2110和驅動單元2120。處理單元(例如,中央處理單元(CPU) )2110控制主機2100的整體操作,而驅動單元2120根據處理單元2110的控制驅動存儲設備2200。驅動單元2120可以包括用于驅動主機2100的軟件程序的存儲器。驅動單元2120包括應用2121、文件系統(tǒng)2122、設備驅動器2123、TRIM管理模塊 21M和主機存儲器2125。應用2121也可以稱作應用程序,其是在操作系統(tǒng)(OS)上運行的軟件。例如,應用2121被編程為支持文件的創(chuàng)建和擦除操作。文件系統(tǒng)2122管理在主機2100中使用的文件。文件系統(tǒng)2122可以以就硬盤而言的扇區(qū)或者簇為單位來管理文件。在下文中,依照示范性實施例,文件系統(tǒng)2122以就硬盤而言的扇區(qū)為單位管理主機2100中使用的文件。這里,扇區(qū)是應用2121可以訪問的最小數據管理單位,并且典型地大小為512字節(jié)(B)。當存在來自應用2121的關于特定文件的刪除請求時,文件系統(tǒng)2122改變被請求刪除的文件的元數據。之后,當應用2121訪問相應文件時,參考文件系統(tǒng)2122參考改變的元數據提供“相應文件已經刪除”的信息。另外,文件系統(tǒng)2122將關于被請求刪除的文件的扇區(qū)地址遞送到TRIM管理模塊21M。將參考圖觀更詳細地描述文件系統(tǒng)2122及其目錄項結構。TRIM管理模塊21M從文件系統(tǒng)2122接收關于被請求刪除的文件的扇區(qū)地址。 TRIM管理模塊21M將遞送的扇區(qū)地址與閃存的頁單位相對應。也就是說,TRIM管理模塊 21M僅從遞送的扇區(qū)地址中選擇與閃存設備2200的頁單位相對應的扇區(qū)地址。為了實質上刪除存儲在閃存2210中的數據,TRIM管理模塊21M提供與頁單位相應的扇區(qū)地址以及 TRIM命令到閃存設備2200。而且,TRIM管理模塊2IM可以單獨管理遞送的扇區(qū)地址當中與閃存設備2200的頁單位不對應的扇區(qū)地址。設備驅動器2123是使閃存設備2200能夠與主機2100通信的程序。為了使用閃存設備2200,適合于閃存設備2200的設備驅動器2123需要被安裝在主機2100上。參考圖27,TRIM管理模塊21M和設備驅動器2123分別利用單獨的模塊實現。然而,這只是示范性實施例并且TRIM管理模塊21 可以內建到設備驅動器2123中。主機存儲器2125可以臨時存儲將寫在閃存設備2200上的數據或者從閃存設備 2200讀取的數據。另外,主機存儲器2125可以用作用于驅動應用2121、文件系統(tǒng)2122、設備驅動器2123和TRIM管理模塊21 的工作存儲器。而且,閃存設備2200從主機2100接收TRIM命令。TRIM命令包括用于指定將被刪除的區(qū)域的信息(例如,關于被請求刪除的扇區(qū)地址的信息)。在這種情況下,可以由主機2100的TRIM管理模塊21M將所述被提供給閃存設備2200的、用于指定將被刪除的區(qū)域的信息與閃存設備2200的管理單位(例如,頁單位)相對應。閃存設備2200響應于TRIM命令,將閃存2210的區(qū)域當中被請求刪除的區(qū)域標記為無效。閃存設備2200在空閑時間(舉例來說,沒有來自主機的請求時出現的、控制單元 1230的空閑時間)期間對被標記為無效的區(qū)域執(zhí)行擦除操作。參考圖27,閃存設備2200 包括閃存2210、緩存1220和控制單元2230。閃存2210根據控制單元2230的控制來執(zhí)行擦除操作、讀操作和寫操作。閃存2210 包括多個存儲塊。每個存儲塊包括多個頁。在示范性實施例中,在圖27中示出三個存儲塊 2211、2212、2213。在示范性實施例中,每個存儲塊包括四個頁。每個頁的大小大于扇區(qū)的大小。例如,每個頁大小大約I字節(jié)(KB),每個扇區(qū)大小大約512B。閃存2210以存儲塊為單位執(zhí)行擦除操作,并且以頁為單位執(zhí)行寫或者讀操作。而且,一個比特或者多于兩個比特的數據可以存儲在閃存2210的一個存儲單元中。其中一個比特數據可以存儲在一個存儲單元的存儲單元結構可以稱作單級單元(SLC)或者單比特單元。其中多于兩個比特的數據存儲在一個存儲單元的存儲單元結構稱作多級單元(MLC)或者多比特單元。緩存2220可以臨時存儲從閃存2210讀取的或者由主機2100提供的數據。另外, 緩存2220可以用于驅動諸如FTL之類的固件。緩存2220可以利用DRAM、SRAM、MRAM或者 PRAM實現??刂茊卧?230包括CPU 223UFTL 2232、閃存控制器2233和緩存2234。CPU 2231 分析并且處理從主機2100輸入的信號。另外,CPU控制閃存設備2200的整體操作。FTL 2232將從主機2100提供的邏輯地址(LA)轉換為閃存2210中的物理地址 (PA)。舉例來說,FTL 2232將從主機2100接收的扇區(qū)地址轉換為閃存2210中的頁地址。而且,例如,FTL 1232以頁為單位管理存儲在閃存2210中的數據。當通過TRIM命令請求刪除存儲在預定頁中的全部數據中時,FTL 2232將相應頁標記為無效。閃存控制器2233控制閃存2210的讀、寫和擦除操作。例如,在控制單元2230的空閑時間期間,閃存控制器2233控制閃存2210執(zhí)行關于被標記為無效的頁的擦除操作。而且,緩存控制器2234控制緩存2220的讀和寫操作。圖觀是示出圖27的文件系統(tǒng)生成的用于管理文件的目錄項結構的示意圖。參考圖28,目錄項結構包括文件名、擴展名、屬性、創(chuàng)建日期與時間、開始扇區(qū)和文件大小。當存在來自圖27的應用2121的關于特定文件的刪除請求時,圖27的文件系統(tǒng) 2122改變被請求刪除的文件的元數據。例如,文件系統(tǒng)2122在被請求刪除的文件的文件名上放置十六進制字節(jié)的‘E5h’。另舉一例,該文件系統(tǒng)將被請求刪除的文件的屬性值改變?yōu)?‘0xE5’。這是一個特殊標記并且意思是“此文件已刪除”。因此,當應用2121以后訪問相應文件時,文件系統(tǒng)2122提供信息相應文件先前已經刪除。關于文件系統(tǒng)2122的信息可以周期性地或者在空閑時間期間存儲在非易失性存儲器(例如,閃存2210)中。此外,可以根據圖27的閃存系統(tǒng)2000的OS選擇可供選擇的文件系統(tǒng)2122。例如,當閃存系統(tǒng)2000具有盤操作系統(tǒng)(DOS)或者基于視窗(Windows)的OS時,其文件系統(tǒng)包括文件分配表(FAT)文件系統(tǒng)、虛擬FAT(VFAT)文件系統(tǒng)、擴展的FAT (exFAT)文件系統(tǒng)和新技術文件系統(tǒng)(NTFS)。Windows是微軟公司的商標。另舉一例,當閃存設備1000具有基于UNIX的OS時,可以使用UNIX文件系統(tǒng) (UFS)。當閃存設備1000具有基于LINUX的OS時,可以使用針對LINUX的文件系統(tǒng)。當閃存設備1000具有移動OS (例如iOS (也即,針對iPhone和iPad的OS)以及android OS)時, 可以使用針對移動OS的文件系統(tǒng)。UNIX是工業(yè)標準協(xié)會The Open Group的商標。LINUX 是 LinusTorvalds 的商標。iOS 是 Cisco Systems 商標。iPhone 是 Cisco Systems 以及 Apple公司之間協(xié)議之下的商標。iPad是Apple公司的商標。圖四是示出圖27的閃存系統(tǒng)2000的軟件層結構的框圖。參考圖29,閃存系統(tǒng) 2000的軟件層結構包括應用2121、文件系統(tǒng)2122、TRIM管理模塊2124、FTL 2232和閃存 2210??梢詫D27的主機2100上的應用2121、文件系統(tǒng)2122和TRIM管理模塊21 指定為高層??梢詫D27的閃存設備2200上的FTL 2232和閃存2210指定為低層。應用2121遞送文件刪除請求到文件系統(tǒng)2122。文件系統(tǒng)2122改變被請求刪除的文件的元數據。例如,文件系統(tǒng)2122在圖觀的文件名上放置卞證’。因此,當應用2121 訪問相應文件時,文件系統(tǒng)2122可以提供信息相應文件已被刪除??梢詫?121的文件刪除請求和文件系統(tǒng)2122的元數據變化指定為‘高層中的擦除操作’。TRIM管理模塊21M從文件系統(tǒng)2122接收關于被請求刪除的文件的扇區(qū)地址 ADDR0 TRIM管理模塊21 從接收到的扇區(qū)地址kctor ADDR中選擇與閃存2210的頁單位相對應的扇區(qū)地址??梢詫⑴c閃存2210的頁單位相對應的扇區(qū)地址指定為對齊的扇區(qū)地址 Aligned SectorADDR0而且,TRIM管理模塊21M可以通過使用TRIM管理表單獨管理接收到的扇區(qū)地址中不與圖27的閃存設備2200的頁單位相對應的扇區(qū)地址。而且,為了實質上刪除存儲在閃存2210中的數據,TRIM管理模塊21M提供TRIM 命令TRIM cmd到FTL 2232。TRIM命令TRIM cmd包括用于指定被請求刪除的文件的對齊的扇區(qū)地址Aligned Sector ADDR0 FTL 2232將對齊的扇區(qū)地址Aligned Sector ADDR轉換為頁地址I^age ADDR并且將閃存2210的將被刪除的頁標記為無效。例如,閃存2210在空閑時間期間對標記為無效的頁執(zhí)行擦除操作??臻e時間意指當沒有從圖27的主機2100到圖27的控制單元2230的請求時的時間。眾所周知,因為閃存2210以塊為單位執(zhí)行擦除操作,所以關于閃存2210的頁的擦除操作可能伴隨有數據的復制、合并和塊擦除操作??梢詫TL 2232的標記操作和閃存2210的擦除操作指定為‘低層中的擦除操作’。圖30是更詳細地示出圖27的TRIM管理模塊2IM的操作的框圖。參考圖30,TRIM 管理模塊21 接收扇區(qū)地址kctor ADDR并且輸出與頁單位相對應的扇區(qū)地址(也即, 對齊的扇區(qū)地址Aligned SectorADDR)。關于扇區(qū)地址kctor ADDR以及對齊的扇區(qū)地址 Aligned Sector ADDR的信息可以包括Mart Sector No(開始扇區(qū)號)和#of Sectors(扇區(qū)的數目)。更詳細地說,TRIM管理模塊21 參考組信息(group information),選擇扇區(qū)地 akctor ADDR當中與頁單位相對應的扇區(qū)地址(也即,對齊的扇區(qū)地址Aligned Sector ADDR)。這里,組信息意指與一個頁相對應的扇區(qū)的地址信息。TRIM管理模塊21 從FTL 2232的映射表接收組信息。將參考圖34更詳細地描述組信息和映射表。另外,TRIM管理模塊21 可以單獨管理接收到的扇區(qū)地址kctorADDR當中與頁單位不對應的扇區(qū)地址。為此,TRIM管理模塊21 包括TRIM管理表。而且,關于TRIM管理表的信息可以存儲在圖27的主機存儲器2125中。在這種情況下,可以選擇主機存儲器2125的區(qū)域中分配給TRIM管理表的區(qū)域的各種大小。例如,為了根據扇區(qū)地址管理降低圖27的處理單元2110的開銷,分配給TRIM管理表的區(qū)域可以被限定為預定大小。當分配給TRIM管理表的區(qū)域被限定為預定大小時,關于TRIM管理表管理的扇區(qū)地址的信息的大小可能超出分配給主機存儲器2125的區(qū)域。在這種情況下,可以通過推送方法管理關于TRIM管理表的扇區(qū)地址的信息。將參考圖34至圖36描述TRIM管理模塊 21 和TRIM管理模塊2124的操作。圖31是更詳細地示出圖27的FTL 2232的地址轉換操作的框圖。參考圖31, FTL 2232將對齊的扇區(qū)地址Al igned SectorADDR (也即,邏輯地址)轉換為頁地址 PageADDR(也即,閃存2210的物理地址)。FTL 2232的地址轉換可以通過映射表執(zhí)行。典型地,映射方法包括頁映射方法和塊映射方法。頁映射以頁為單位(例如,2KB)執(zhí)行地址轉換,塊映射方法以塊為單位(例如,1MB)執(zhí)行地址轉換。將在下面參考圖32更詳細地描述通過映射表的地址轉換。FTL 2232的地址轉換是高層的應用2121,但是使在實際閃存2210中執(zhí)行的讀、寫和擦除操作能夠看起來像從文件系統(tǒng)2122看到的硬盤設備的讀和寫操作。也就是說,FTL 2232執(zhí)行仿真功能。圖32是示出通過映射表的地址轉換的框圖。為了簡要描述起見,在下文中,依照示范性實施例,通過頁映射方法執(zhí)行地址轉換。參考圖32,映射表將扇區(qū)地址kctorADDR—也即邏輯地址,映射到頁地址I^age ADDR-也即物理地址。依照示范性實施例,四個扇區(qū)被映射到一個頁。例如,如圖32中所示,第一到第四扇區(qū)即扇區(qū)1、扇區(qū)2、扇區(qū)3、扇區(qū)4可以映射到第三頁即頁3。映射表通過寫狀態(tài)信息(WSI)顯示存儲在頁中的數據是否有效。例如,WSI是‘V’ 表示存儲在頁中的數據是有效的。閃存2210中的存儲塊2211的第零到第三頁即頁0到頁3中的每一頁都被劃分為四個子頁即子頁0到子頁3。依照示范性實施例,每個子頁的大小與每個扇區(qū)的大小相同, 并且每個子頁對應于每個扇區(qū)。例如,如圖32所示,第三頁即頁3被劃分為四個子頁即子頁0到子頁3。第三頁即頁3的四個子頁即子頁0到子頁3分別對應于第一到第四扇區(qū)即扇區(qū)1到扇區(qū)4。而且,為了描述的方便起見,像圖32那樣,依照示范性實施例,第一到第三文件即文件1、文件2、文件3被作為有效數據存儲在圖33到圖36中塊2211的第一到第三頁即頁
I、頁2、頁3中。在這種情況下,依照示范性實施例,第一文件即文件1對應于第一到第五扇區(qū)即扇區(qū)1、扇區(qū)2、扇區(qū)3、扇區(qū)4、扇區(qū)5,第二文件即文件2相應于第六到第八扇區(qū)即扇區(qū) 6、扇區(qū)7、扇區(qū)8,并且第三文件即文件3相應于第九到第十二扇區(qū)即扇區(qū)9、扇區(qū)10、扇區(qū)
II、扇區(qū)12。圖33是當閃存系統(tǒng)2000在沒有圖27的TRIM管理模塊21M的條件下處理TRIM 命令時的視圖。也就是說,在示范性實施例中,在圖33中與頁單位不對應的扇區(qū)地址被提供給閃存設備2200。依照示范性實施例,提供包括關于文件即文件1的扇區(qū)地址的信息的 TRIM 命令 TRIM cmd。參考圖33,從主機2100提供TRIM命令TRIM cmd。TRIM命令TRIMcmd包括用于指定閃存2210中將被刪除的區(qū)域的扇區(qū)地址。如圖33中所示,關于扇區(qū)地址的信息可以提供為Mart Sector No (開始扇區(qū)號)和#of kctors (扇區(qū)的數目)。例如,因為第一文件即文件1對應于第一至第五扇區(qū)即扇區(qū)1到扇區(qū)5,所以Mart Sector No是1并且#of Sectors 是 5。一旦從主機2100提供TRIM命令TRIM cmd時,圖27的FTL 2232更新映射表中的 WSIo也就是說,與接收到的扇區(qū)地址相對應的頁的WSI被標記為無效。在示范性實施例中, 圖33中的WSI為‘X’表示存儲在相應頁中的數據是無效的。更詳細地說,第一文件即文件1對應于第一到第五扇區(qū)即扇區(qū)1、扇區(qū)2、扇區(qū)3、 扇區(qū)4、扇區(qū)5。在這種情況下,第一文件即文件1的第一到第四扇區(qū)即扇區(qū)1、扇區(qū)2、扇區(qū) 3、扇區(qū)4對應于第三頁即頁3。因此,映射表中關于第三頁即頁3的WSI被標記為無效。第一文件即文件1的第五扇區(qū)即扇區(qū)5對應于第二頁即頁2。因此,第三頁即頁3的WSI被標
30記為無效。在圖27的控制單元2230的空閑時間期間執(zhí)行對被標記為無效的第二頁即頁2 和第三頁即頁3的擦除操作。而且,與第一文件即文件1的第五扇區(qū)即扇區(qū)5相對應的數據存儲在第二頁即頁2 的子頁即子頁0中,與第二文件即文件2的第六至第八扇區(qū)即扇區(qū)6到扇區(qū)8相對應的數據存儲在第二頁即頁2的子頁1到3中。因此,根據關于第一文件即文件1的TRIM命令TRIM cmd將第二頁即頁2標記為無效,第二文件即文件2的有效數據可能被一起刪除。因此,為了防止第二文件即文件2的有效數據被刪除,閃存2210需要將第二頁即頁2的子頁1到3中存儲的數據復制到另一頁 (例如,圖27的另一個塊2212的頁)中。由于寫操作的數目增加,該復制操作會縮短閃存2210的生命周期。另外,存儲通過復制操作而生成的有效數據的新頁會導致生成自由塊的合并操作的增加。主機2100包括圖27的TRIM管理模塊2124。因為TRIM管理模塊21 將與閃存設備2200的管理單位相對應的扇區(qū)地址提供給閃存設備2200,所以不發(fā)生上述的復制操作。這將在下面參考圖34至圖36更詳細地描述。圖34至圖36是示出根據本發(fā)明構思的實施例的、使用圖27的TRIM管理模塊 2124生成對齊的扇區(qū)地址Aligned SectorADDR并且處理包括對齊的扇區(qū)地址Aligned SectorADDR的TRIM命令的閃存系統(tǒng)2000的視圖。根據本發(fā)明構思的實施例,主機2100將對齊的扇區(qū)地址Aligned SectorADDR提供給閃存設備2200。為此,主機2100向閃存設備2200請求組信息。閃存設備2200從映射表獲取組信息并且將其提供給主機2100。以后,當存在關于預定文件的刪除請求時,主機 2100的TRIM管理模塊21M參考組信息確定接收到的扇區(qū)地址是否對應于頁單位。TRIM 管理模塊21M將與頁單位相對應的扇區(qū)地址以及TRIM命令提供給閃存設備2200。更詳細地說,圖34示出組信息從閃存設備2200的映射表發(fā)送到主機2100的過程。參考圖34,首先,主機2100向閃存設備2200請求組信息。例如,圖27的主機2100的 TRIM管理模塊21M或者處理單元2110可以在加電(power up)期間向閃存設備2200請求組信息。閃存設備2200響應于主機2100的組信息請求提供組信息給主機2100。這里,組信息意指與一個頁相對應的扇區(qū)的地址信息。例如,閃存設備2200可以從映射表獲取組信肩、ο例如,參考映射表,四個扇區(qū)對應于一頁。也就是說,第一到第四扇區(qū)即扇區(qū)1、扇區(qū)2、扇區(qū)3、扇區(qū)4對應于第三頁即頁3,第五到第八扇區(qū)即扇區(qū)5、扇區(qū)6、扇區(qū)7、扇區(qū)8 對應于第二頁即頁2,并且第九到第十二扇區(qū)即扇區(qū)9、扇區(qū)10、扇區(qū)11、扇區(qū)12對應于第一頁即頁1。因此,相對于閃存設備2200,第一到第四扇區(qū)、第五到第八扇區(qū)以及第九到第十二扇區(qū)構成各個組,并且各個組中的扇區(qū)提供與一頁相對應的信息(也即,組信息)到主機 2100。遞送到主機2100的組信息可以存儲在圖27的主機存儲器2125中。圖35和圖36示出當存在關于預定文件的刪除請求時TRIM管理模塊21 以及 FTL 2232的操作。參考圖35,依照示范性實施例,TRIM管理模塊21 接收關于第一文件的扇區(qū)地akctor ADDR0也就是說,依照示范性實施例,當在高層對第一文件即文件1執(zhí)行擦除操作之后,從圖27的文件系統(tǒng)2122提供第一文件即文件1的扇區(qū)地址kctor ADDR。TRIM管理模塊21 從文件系統(tǒng)2122接收關于第一文件即文件1的扇區(qū)地址 Sector ADDR。因為第一文件即文件1對應于第一到第五扇區(qū)即扇區(qū)1、扇區(qū)2、扇區(qū)3、扇區(qū) 4、扇區(qū)5,所以Mart Sector No是1并且#of Sectors是5。TRIM管理模塊2124參考存儲在主機存儲器2125中的組信息確定接收到的扇區(qū)地址是否對應于頁單位。更詳細地說,參考圖34的組信息,第一到第四扇區(qū)即扇區(qū)1、扇區(qū)2、扇區(qū)3、扇區(qū)4 構成一個組。也就是說,第一到第四扇區(qū)即扇區(qū)1、扇區(qū)2、扇區(qū)3、扇區(qū)4對應于頁單位,也即閃存設備2200的管理單位。另一方面,第五扇區(qū)即扇區(qū)5與頁單位不對應。在這種情況下,TRIM管理模塊21 生成用于管理與頁單位不對應的第五扇區(qū)即扇區(qū)5的TRIM管理表。如圖35中所示,TRIM管理表包括關于第五扇區(qū)即扇區(qū)5的組信息和WSI。因為與第五扇區(qū)即扇區(qū)5對應的數據在高層已被刪除,所以TRIM管理模塊21M將關于TRIM管理表的第五扇區(qū)即扇區(qū)5的WSI標記為無效。而且,第一到第四扇區(qū)即扇區(qū)1、扇區(qū)2、扇區(qū)3、扇區(qū)4對應于頁單位。因此,TRIM 管理模塊21 向閃存設備2200提供關于第一到第四扇區(qū)即扇區(qū)1、扇區(qū)2、扇區(qū)3、扇區(qū)4的扇區(qū)地址(也即,Start Sector No是1并且#of Sectors是4)以及TRIM命令TRIM cmd。因為第一到第四扇區(qū)即扇區(qū)1、扇區(qū)2、扇區(qū)3、扇區(qū)4被映射到第三頁即頁3,所以 FTL 2232將關于映射表的第三頁即頁3的WSI標記為無效。例如,在圖27的控制單元2230 的空閑時間期間執(zhí)行對標記為無效的第三頁即頁3的擦除操作。在這種情況下,因為在擦除操作期間存儲在第三頁即頁3中的全部數據是無效的,所以不執(zhí)行圖33中的復制操作。而且,響應于隨后的關于另一文件的刪除請求,可以將TRIM管理表中所管理的組的WSI更新為無效。在這種情況下,因為相應組的扇區(qū)對應于頁單位,所以TRIM管理模塊 21M可以提供關于相應扇區(qū)的扇區(qū)地址到閃存設備。這將在下面參考圖36更詳細地描述。參考圖36,依照示范性實施例,TRIM管理模塊21 接收關于第二文件即文件2的扇區(qū)地址kctorADDR。也就是說,在對第二文件即文件2執(zhí)行了高層的擦除操作之后,依照示范性實施例,從文件系統(tǒng)2122提供第二文件即文件2的扇區(qū)地址。TRIM管理模塊21 從文件系統(tǒng)2122接收關于第二文件即文件2的扇區(qū)地址 Sector ADDR。因為第二文件即文件2相應于第六到第八扇區(qū)即扇區(qū)6、扇區(qū)7、扇區(qū)8,所 WMart Sector No是6并且#of Sectors是3。TRIM管理模塊21 參考存儲在主機存儲器2125中的組信息確定接收到的扇區(qū)地址是否對應于頁單位。更具體地說,參考圖34,第六到第八扇區(qū)即扇區(qū)6、扇區(qū)7、扇區(qū)8與頁單位不對應。 因此,TRIM管理模塊21 通過使用TRIM管理表單獨管理第六到第八扇區(qū)即扇區(qū)6、扇區(qū)7、 扇區(qū)8。在這種情況下,通過關于第一文件即文件1的刪除請求事先生成關于第五到第八扇區(qū)即扇區(qū)5、扇區(qū)6、扇區(qū)7、扇區(qū)8的TRIM管理表。因此,如圖36中所示,TRIM管理模塊 2124將關于第六到第八扇區(qū)即扇區(qū)6到扇區(qū)8的WSI更新為無效。在這種情況下,關于同一組中的第五到第八扇區(qū)即扇區(qū)5、扇區(qū)6、扇區(qū)7、扇區(qū)8的 WSI全部是無效的。也就是說,第五到第八扇區(qū)即扇區(qū)5、扇區(qū)6、扇區(qū)7、扇區(qū)8對應于頁單位并且對應于在高層中刪除的文件。因此,TRIM管理模塊21M向閃存設備220提供關于第五到第八扇區(qū)即扇區(qū)5、扇區(qū)6、扇區(qū)7、扇區(qū)8的扇區(qū)地址(也即,Start Sector No是5 并且#of Sectors是4)以及TRIM命令TRIM cmd。在這種情況下,在TRIM管理表中刪除關于第五到第八扇區(qū)即扇區(qū)5、扇區(qū)6、扇區(qū)7、扇區(qū)8的信息。而且,因為第五到第八扇區(qū)即扇區(qū)5、扇區(qū)6、扇區(qū)7、扇區(qū)8被映射到第二頁即頁 2,所以FTL 2232將映射表中關于第二頁即頁2的WSI標記為無效。例如,在圖27的控制單元2230的空閑時間期間執(zhí)行對被標記為無效的第二頁即頁2的擦除操作。因此,從現在起在空閑時間期間(例如,圖27的控制單元2230的空閑時間)執(zhí)行對第二頁即頁2的擦除操作。如上所述,主機2100的TRIM管理模塊21 僅提供從文件系統(tǒng)2122遞送到閃存設備2200的扇區(qū)地址當中與頁單位對應的扇區(qū)地址。因此,閃存設備2200不執(zhí)行像圖33 那樣的不必要的復制操作。這意味著可以防止由不必要的復制操作所引起合并操作。也就是說,使用主機2100的TRIM管理模塊21M解決主機1110與閃存設備1120之間的管理單位的不匹配問題,由此防止閃存設備1120的壽命縮短及其性能惡化。而且,分配給TRIM管理表的存儲器(例如,圖27的主機存儲器2125)可以被限定為預定大小。在這種情況下,關于在TRIM管理表中管理的扇區(qū)地址的信息的大小可能超出分配給主機存儲器2125的大小。當關于在TRIM管理表中管理的扇區(qū)地址的信息的大小超出分配給主機存儲器 2125的大小時,可以通過推送方法刪除關于在TRIM管理表中管理的扇區(qū)的信息。也就是說,刪除關于在TRIM管理表管理的扇區(qū)的信息當中關于最舊扇區(qū)的信息并且可以管理關于新請求的扇區(qū)的信息。例如,依照示范性實施例,在TRIM管理表中管理關于各個不同組中的第一扇區(qū)即扇區(qū)1、第五扇區(qū)即扇區(qū)5和第九扇區(qū)即扇區(qū)9的信息另外,需要在TRIM管理表中管理關于另一組中第十三扇區(qū)即扇區(qū)13的信息,并且依照示范性實施例,如果管理關于第十三扇區(qū)即扇區(qū)13的信息,則關于TRIM管理表中管理的扇區(qū)地址的信息的大小超出TRIM管理表中分配的區(qū)域的大小。在這種情況下,TRIM管理模塊21 可以從TRIM管理表中刪除關于最老的第一扇區(qū)即扇區(qū)1的信息,并且可以在TRIM管理表中管理關于第十三扇區(qū)即扇區(qū)13 的信息。圖37是當從閃存設備2200的映射表遞送到主機2100的組信息的流程圖。在操作SllO中,主機2100向閃存設備2200請求組信息。例如,主機2100可以在加電期間向閃存設備2200請求組信息。閃存設備2200響應于主機2100的請求從映射表中獲得用于每個扇區(qū)的組信息。在操作S120中,組信息存儲在主機2100的主機存儲器2125中。也就是說,閃存設備2200向主機2100提供從映射表獲得的組信息,并且主機2100將遞送的組信息存儲在主機存儲器2125中。圖38是示出圖27的TRIM管理模塊2IM的操作的流程圖。在操作S210中,TRIM管理模塊21M從圖27的文件系統(tǒng)2122接收扇區(qū)地址 SectorADDR0也就是說,在高層中對預定文件執(zhí)行了擦除操作之后,文件系統(tǒng)2122向TRIM 管理模塊21 提供關于相應文件的扇區(qū)地址kctorADDR。在操作S220中,TRIM管理模塊21 參考組信息確定遞送的扇區(qū)地址是否是部分扇區(qū)地址Partial Sector ADDR0這里,部分扇區(qū)地址Partial SectorADDR指的是與圖27 的閃存2210的頁單位不對應的扇區(qū)地址。
如果遞送的扇區(qū)地址不是部分扇區(qū)地址(也即,遞送的扇區(qū)地址與頁單位對應), 則TRIM管理模塊21M向閃存設備2200提供與頁單位對應的扇區(qū)地址信息(也即,對齊的扇區(qū)地址Aligned Sector ADDR)。如果遞送的扇區(qū)地址是部分扇區(qū)地址(也即,遞送的扇區(qū)地址與頁單位不對應),則執(zhí)行操作S240。在操作S240中,確定是否存在與部分扇區(qū)地址Partial Sector ADDR對應的TRIM 管理表。如果不存在TRIM管理表,則TRIM管理模塊21M在操作S250中生成用于管理部分扇區(qū)地址的TRIM管理表。如果存在TRIM管理表,則TRIM管理模塊21 在操作S260中更新TRIM管理表中的WSI。在操作S270中,確定TRIM管理表中的全部WSI是否都被更新。也就是說,TRIM管理模塊21 確定關于同一組中的扇區(qū)的WSI是否全部被更新為無效。如果全部WSI都被更新為無效,則TRIM管理模塊21M在操作S280中向閃存設備2200提供相應組的扇區(qū)地址(也即,對齊的扇區(qū)地址Aligned Sector ADDR)和TRIM命令TRIM cmd。如上所述,閃存系統(tǒng)2000支持TRIM操作。也就是說,當存在對于預定文件的刪除請求時,主機2100改變文件系統(tǒng)2122的元數據并且通知用戶相應文件已經被擦除,并且閃存設備2200根據TRIM命令TRIM cmd執(zhí)行其實質的擦除操作。在這種情況下,主機2100 通過使用TRIM管理模塊21M解決主機2100和閃存設備2200之間的管理單位不匹配的問題。此外,當在高層對多個文件執(zhí)行擦除操作時,TRIM管理模塊21 可以利用時間差來接收扇區(qū)地址。在這種情況下,TRIM管理模塊21M收集關于被請求刪除的扇區(qū)的地址信息并且可以在空閑時間期間同時處理所收集的地址信息。這將在下面參考圖四和圖30 更詳細地描述。VIII.收集被請求刪除的扇區(qū)的地址信息圖39是主機收集分別在不同時間提供的關于扇區(qū)地址的信息并且處理所收集的關于扇區(qū)地址的信息的視圖。除收集關于扇區(qū)地址的信息之外,在下面描述的主機2100類似于圖27的主機2100。因此,在下文中,將討論與圖27的主機2100的差異。而且,同樣的參考標記指代同樣的元素。參考圖39,第一至第三扇區(qū)地址扇區(qū)SectorADDR_l、SectorADDR_2、 SectorADDR_3被提供至TRIM管理模塊21M。這里,第一至第三扇區(qū)地址kctorADDR_l、 SectorADDR_2、SectorADDR_3意指關于在高層刪除的各個不同文件的扇區(qū)地址。另外、依照示范性實施例,第一至第三扇區(qū)地址kctorADDR_l、SectorADDR_2、SectorADDR_3分別在不同時間被提供給TRIM管理模塊21M。主機存儲器2125包括用于收集所提供的扇區(qū)地址的扇區(qū)收集區(qū)域。TRIM管理模塊21M在主機存儲器2125的扇區(qū)收集區(qū)域中臨時存儲第一至第三扇區(qū)地akctor ADDR_USector ADDR_2,Sector ADDR_3。在空閑時間期間(例如,在圖27的處理單元2110 的空閑時間期間),TRIM管理模塊21M將所收集的第一至第三扇區(qū)地址kctor ADDR_1、 Sector ADDR_2, Sector ADDR_3當中與頁單位對應的扇區(qū)地址提供給圖27的閃存設備 2200。為了描述的方便起見,如圖32中所示,依照示范性實施例,第一至第三扇區(qū)地址 SectorADDR_l、SectorADDR_2、SectorADDR_3分別相應于第一至第三文件即文件1至文件CN 3。在這種情況下、因為第一至第三文件即文件1至文件3相應于第一至第十二扇區(qū)即扇區(qū) 1、扇區(qū)2、扇區(qū)3、扇區(qū)4、扇區(qū)5、扇區(qū)6、扇區(qū)7、扇區(qū)8、扇區(qū)9、扇區(qū)10、扇區(qū)11、扇區(qū)12,所以關于第一至第十二扇區(qū)扇區(qū)1、扇區(qū)2、扇區(qū)3、扇區(qū)4、扇區(qū)5、扇區(qū)6、扇區(qū)7、扇區(qū)8、扇區(qū) 9、扇區(qū)10、扇區(qū)11、扇區(qū)12的地址信息被存儲在扇區(qū)收集區(qū)域中。而且,第一至第十二扇區(qū)即扇區(qū)1、扇區(qū)2、扇區(qū)3、扇區(qū)4、扇區(qū)5、扇區(qū)6、扇區(qū)7、扇區(qū)8、扇區(qū)9、扇區(qū)10、扇區(qū)11、扇區(qū)12對應于頁單位。也就是說,第一至第四扇區(qū)即扇區(qū)1、 扇區(qū)2、扇區(qū)3、扇區(qū)4、第五至第八扇區(qū)即扇區(qū)5、扇區(qū)6、扇區(qū)7、扇區(qū)8以及第九至第十二扇區(qū)即扇區(qū)9、扇區(qū)10、扇區(qū)11、扇區(qū)12分別構成對應于每頁的組。因此、在空閑時間期間,TRIM管理模塊21 可以向閃存設備2200提供第一至第十二扇區(qū)即扇區(qū)1、扇區(qū)2、扇區(qū)3、扇區(qū)4、扇區(qū)5、扇區(qū)6、扇區(qū)7、扇區(qū)8、扇區(qū)9、扇區(qū)10、扇區(qū)11、扇區(qū)12的扇區(qū)地址(也即,StartSector No是1并且#of Sectors是12)以及TRIM 命令 TRIM cmd。因為第一至第三扇區(qū)地址 kctorADDR_UectorADDR_2、kctorADDR_3 被同時處理,所以與SectorADDR_l、kctorADDR_2、SectorADDR_3被分別處理的情況相比,可以縮短TRIM命令從主機2100到閃存設備2200的傳輸時間。圖40是示出當分別在圖39的扇區(qū)收集區(qū)域收集有關各個不同文件的扇區(qū)地址時的操作的流程圖。在操作S310中,扇區(qū)地址kctorADDR被提供給TRIM管理模塊2124。在操作S320 中,TRIM管理模塊21M將接收到的扇區(qū)地址kctorADDR存儲在圖39的主機存儲器2125 的扇區(qū)收集區(qū)域中。當以后接收到另一扇區(qū)地址時,TRIM管理模塊21M可以將扇區(qū)地址連續(xù)存儲在扇區(qū)收集區(qū)域中。圖41是示出當在空閑時間期間處理收集在圖39的扇區(qū)收集區(qū)域中的扇區(qū)地址時的操作的流程圖。在操作S410中,出現扇區(qū)地址處理(SAP)信號。例如,如果在預定時間(也即,圖 27的處理單元1000的空閑時間)期間沒有來自用戶的請求,則處理單元2110生成SAP信號。在操作S420中,TRIM管理模塊21 向圖27的閃存設備2200提供所收集的扇區(qū)地址當中與頁單位對應的扇區(qū)地址(也即,對齊的扇區(qū)地址Aligned SectorADDR)以及 TRIM命令。因為收集的扇區(qū)地址被同時處理,所以可以縮短TRIM命令從主機2100到閃存設備2200的傳輸時間。因為TRIM管理模塊21M的處理扇區(qū)地址的方法類似于圖38的方法,所以其詳細說明將省去。如上所述,當在高層對多個文件執(zhí)行擦除操作時,關于刪除的文件的扇區(qū)地址可以被收集在主機存儲器IlM的扇區(qū)收集區(qū)域中。因為TRIM管理模塊21M同時處理收集的扇區(qū)地址,所以可以縮短TRIM命令從主機2100到閃存設備2200的傳輸時間。IX.處理TRIM命令的閃存系統(tǒng)的應用例子根據本發(fā)明構思的實施例的存儲系統(tǒng)100,200以及閃存系統(tǒng)1000、2000可以應用于各種產品。主機2100包括計算機、數碼相機、移動電話、MP3播放器、點到多點(PMP)通信設備和游戲控制臺。閃存設備2200可以包括基于閃存的固態(tài)驅動器(SSD)、閃存卡或者閃存模塊。主機2100以及閃存設備2200可以通過標準化接口彼此連接,標準化接口諸如高級技術附加裝置(ATA)、串行ATA(SATA)、并行ATA(PATA)、通用串行總線(USB)、小型計算
35機小型接口(SCSI)、增強小型盤接口(ESDI)、高速外圍組件互連(PCI express)或者集成驅動電子設備(IDE)接口。圖42是當根據本發(fā)明構思的實施例的主機被應用于存儲卡時的視圖。存儲卡系統(tǒng)3000包括主機3100以及存儲卡2200。主機3100包括主機控制器3110以及主機連接單元3120。存儲卡2200包括卡連接單元3210、卡控制器3220以及閃存3230。主機連接單元3120以及卡連接單元3210包括多個管腳(pin)。多個管腳包括命令管腳、數據管腳、時鐘管腳和電源管腳。管腳的數量可以根據存儲卡2200的種類而變化。 舉例來說,SD卡包括九個管腳。主機3100向存儲卡2200中寫數據或者讀取存儲在存儲卡2200中的數據。主機控制器3110通過主機連接單元3120向存儲卡2200發(fā)送命令(例如,寫命令)、發(fā)生在主機 3100的時鐘發(fā)生器(未示出)中的時鐘信號CLK以及數據DAT。響應于通過卡連接單元3210接收到的寫命令,卡控制器3220與發(fā)生在卡控制器 3220的時鐘發(fā)生器(未示出)中的時鐘信號同步地將數據存儲在存儲器3230中。存儲器 3230存儲從主機3100發(fā)送的數據。例如,如果主機3100是數碼相機,則它存儲圖像數據。在圖42中,主機控制器3110可以包括應用程序以及支持TRIM操作和TRIM管理模塊的文件系統(tǒng)。卡控制器3220可以通過FTL處理存儲卡2200中的TRIM命令。圖42中示出的存儲卡系統(tǒng)可以支持TRIM操作以及與TRIM管理模塊的操作匹配的管理單位。圖43是當根據本發(fā)明構思的實施例的閃存系統(tǒng)應用于SSD時的視圖。參考圖 43,SSD系統(tǒng)4000包括主機4100以及SSD 4200。SSD 4200通過信號連接器3231與主機 4100交換信號,并且通過電源連接器3221接收電力。SSD 4200包括多個非易失性存儲器件 4201,4202, · · ·、420n、SSD 控制器 4210 和輔助電源 4220。多個非易失性存儲器件4201、4202.....420η被用作存儲介質。多個非易失性存
儲器件4201、4202.....420η可以通過具有大容量存儲能力的閃存設備來實現。在一個示
范性實施例中,SSD 4200使用閃存。多個非易失性存儲器件4201,4202, · · ·、420η可以通過多個通道CHU CH2、· · ·、 CHn連接至SSD控制器4210。至少一個存儲器件可以連接至一個通道。連接至一個通道的存儲器件可以連接至相同的數據總線。這時,可以以超級塊(super block)的形式(即,將多個存儲塊連接為一個塊,或者以超級頁(super page)的形式(即,將多個頁連接為一個頁),來執(zhí)行閃存碎片重組(flash defragmentation)(也即,將用于存儲文件的海量存儲設備的內容在物理上組織為最小數目的連續(xù)區(qū)域)。SSD控制器4210通過信號連接器3231與主機4100交換信號SGL。這里,信號SGL 可以包括命令、地址和數據。SSD控制器4210根據主機4100的命令,將數據寫入相應的存儲器件中或者從相應的存儲器件讀取數據。將參考圖44更詳細的描述SSD控制器4210的內部構造。如圖43中看到的那樣,輔助電源4220通過電源連接器連接到主機4100??梢栽趶闹鳈C4100接收電力PWR時對輔助電源4220充電。而且,輔助電源4220可以放置在SSD 4200中或者SSD 4200外部。例如,輔助電源4220可以放置在主板上并且可以給SSD 4200 提供輔助電力。圖44是示出圖43的SSD控制器4210的構造的框圖。參考圖44,SSD控制器4210包括非易失性存儲器(NVM)接口 4211、主機接口 4212、糾錯碼(ECC)單元4213、中央處理單元(CPU) 4214 和緩存 4215。NVM接口 4211將從緩存4215遞送的數據分散到通道CH1、CH2.....CHn中的每一
個。而且,NVM接口 4211將從非易失性存儲器件4201、4202.....420η讀取的數據遞送到
緩存4215中。這里,NVM接口 4211可以使用NAND閃存的接口方法。也就是說,SSD控制器 4210可以根據NAND閃存接口方法執(zhí)行編程、讀或者擦除操作。主機接口 4212提供主機4100與SSD 4200之間的符合主機4100的協(xié)議的接口。 主機接口 4212可以通過通用串行總線(USB)、小型計算機系統(tǒng)接口(SCSI)、高速外圍組件互連(PCI express)、高級技術附加裝置(ATA)接口、并行AT附加裝置接口(PATA)、串行AT 附加裝置接口(SATA)和串行附接的SCSI (SAQ,與主機4100通信。而且,主機接口 4212可以執(zhí)行使SSD 4200能夠被識別為硬盤驅動器(HDD)的盤仿真功能。CPU 4214分析并處理從圖44的主機4100輸入的信號SGL。CPU 4214通過主機接口 4212或NVM接口 4211控制主機4100或者非易失性存儲器件4201、4202、. · ·、420n。CPU
4214根據用于驅動SSD 4200的固件來控制非易失性存儲器件4201、4202.....420η的操作。緩存4215臨時存儲從主機4100提供的數據或者從非易失性存儲器件讀取的數據。另外,緩存4215可以存儲將被存儲在非易失性存儲器件4201至420η中的元數據或者高速緩存數據。在突然的斷電操作期間,存儲在緩存4215中的元數據或者高速緩存數據被存儲在非易失性存儲器件4201、4202、. . .、420η中。緩存4215可以包括DRAM和SRAM。圖 43和圖44的SSD可以應用于上述主機。圖45是當根據本發(fā)明構思的實施例的閃存系統(tǒng)在閃存模塊中實現時的框圖。這里,諸如個人計算機(PC)、移動電話、個人數字助理(PDA)和相機這樣的主機可以連接至閃存模塊5000,然后可以被使用。參考圖45,閃存模塊5000可以包括存儲系統(tǒng)(memory system) 5100、電源5200、輔助電源5250、CPU 5300,RAM MOO和用戶界面5500。圖45的閃存模塊5100可以連接至上述主機,然后可以被使用。而且,如上所述,依照示范性實施例,圖27的主機2100以扇區(qū)為單位管理文件,圖 27的閃存設備2200以頁為單位管理存儲在閃存2210中的數據。然而,這應當僅僅被理解為一個示范性實施例。例如,主機2100可以以簇(cluster)為單位來管理文件,而閃存設備2200可以以塊為單位或者以包括多個頁的集合的超級頁為單位來管理存儲在閃存2210中的數據。主機2100和閃存設備2200的管理單位可以根據系統(tǒng)設計者的期望或者依照特定數據管理協(xié)議以各種方式實現。而且,如上所述,依照示范性實施例,TRIM管理表可以存儲在圖27的主機存儲器 2125中。如果主機存儲器2125用易失性存儲器(例如,DRAM)實現,則關于TRIM管理表的信息可能在突然斷電期間丟失。在這種情況下,因為關于TRIM管理表的信息在高層已被刪除,所以不管關于TRIM管理表的信息是否丟失,用戶都會接收到‘相應數據被刪除’的信息。而且,很明顯,TRIM管理表可以存儲在非易失性存儲器(例如,閃存)中。根據本發(fā)明構思的實施例的存儲系統(tǒng)關注對硬盤來說的管理單位和對閃存來說的管理單位之間的不匹配,因此它防止由數據管理單位的不匹配所引起的、有效數據的海量復制和合并操作。因此,依照本發(fā)明構思的示范性實施例的存儲系統(tǒng)關注閃存的壽命縮短以及存儲系統(tǒng)的整體性能。而且該存儲系統(tǒng)支持TRIM操作,TRIM操作依照主機的命令關注閃存系統(tǒng)的響應速度。 上面公開的示范性實施例應當被視為說明性的而非限制性的,并且所附權利要求意圖是覆蓋所有這些示范性實施例以及對其的修改和改進,以及其它示范性實施例。
權利要求
1.一種數據存儲設備的數據管理方法,該數據存儲設備具有不同于用戶設備的數據管理單位的數據管理單位,所述數據管理方法包括從用戶設備接收關于將被刪除的文件的存儲區(qū)域的信息;從將被刪除的文件的存儲區(qū)域當中選擇與所述數據存儲設備的數據管理單位匹配的存儲區(qū)域;以及對所選擇的與所述數據管理單位匹配的存儲區(qū)域執(zhí)行擦除操作。
2.如權利要求1所述的數據管理方法,其中,單獨管理關于將被刪除的文件的存儲區(qū)域當中與所述數據存儲設備的數據管理單位不匹配的存儲區(qū)域的信息。
3.如權利要求1所述的數據管理方法,其中,所述用戶設備改變關于將被刪除的文件的元數據的信息,以使其指示將被刪除的文件已從高層刪除。
4.如權利要求1所述的數據管理方法,還包括當從所述用戶設備提供關于將被刪除的至少兩個文件的存儲區(qū)域的信息時,由所述數據存儲設備將所述關于將被刪除的至少兩個文件的存儲區(qū)域的信息存儲在緩存中。
5.如權利要求4所述的數據管理方法,其中選擇存儲區(qū)域的步驟從存儲在所述緩存中的所述將被刪除的至少兩個文件的存儲區(qū)域當中選擇與所述數據存儲設備的數據管理單位匹配的存儲區(qū)域。
6.如權利要求1所述的數據管理方法,其中所述用戶設備以扇區(qū)為單位管理數據,所述數據存儲設備以頁為單位管理數據,以及每個頁被劃分為多個扇區(qū)。
7.一種用于數據存儲設備的數據管理方法,該數據存儲設備使用不同于用戶設備的數據管理單位的數據管理單位,所述數據管理方法包括從用戶設備接收關于將被刪除的文件的存儲區(qū)域的信息;以及將與所述數據存儲設備的數據管理單位匹配的存儲區(qū)域標記為無效,其中所述數據存儲設備包括被配置為存儲數據的數據存儲單元以及被配置為臨時存儲將被寫入所述數據存儲單元中的數據的緩存,以及存儲在所述緩存中的數據當中關于被標記為無效的存儲區(qū)域的數據不被寫入所述數據存儲單元中。
8.如權利要求7所述的數據管理方法,還包括將將被刪除的文件的存儲區(qū)域當中與所述數據存儲設備的數據管理單位不匹配的存儲區(qū)域標記為有效,其中,存儲在所述緩存中的數據當中關于被標記為有效的存儲區(qū)域的數據被寫入所述數據存儲單元中。
9.如權利要求7所述的數據管理方法,還包括創(chuàng)建TRIM管理表,該TRIM管理表被配置為管理將被刪除的文件的存儲區(qū)域當中與所述數據存儲設備的數據管理單位不匹配的存儲區(qū)域。
10.如權利要求9所述的數據管理方法,其中,所述TRIM管理表存儲在所述緩存中,并且通過推送方案控制所述TRIM管理表的信息。
11.如權利要求7所述的數據管理方法,還包括當從所述用戶設備提供關于將被刪除的至少兩個文件的存儲區(qū)域的信息時,由所述數據存儲設備將關于將被刪除的至少兩個文件的存儲區(qū)域的信息存儲在緩存中。
12.如權利要求11所述的數據管理方法,其中,標記存儲區(qū)域的步驟將與所述數據存儲設備的數據管理單位匹配的存儲區(qū)域標記為無效。
13.一種存儲系統(tǒng),包括主機,被配置為生成TRIM命令;以及數據存儲設備,被配置為響應于來自主機的TRIM命令執(zhí)行擦除操作,其中,所述數據存儲設備根據所述TRIM命令,對已經被指定為將被刪除的區(qū)域的存儲區(qū)域當中與所述數據存儲設備的數據管理單位匹配的區(qū)域執(zhí)行擦除操作。
14.如權利要求13所述的存儲系統(tǒng),其中,所述數據存儲設備根據所述TRIM命令,單獨管理關于已經被指定為將被刪除的區(qū)域的存儲區(qū)域當中與所述數據存儲設備的數據管理單位不匹配的區(qū)域的信息。
15.如權利要求13所述的存儲系統(tǒng),其中所述數據存儲設備以頁為單位管理數據,所述主機以扇區(qū)為單位管理數據,以及每個頁被劃分為多個扇區(qū)。
16.如權利要求13所述的存儲系統(tǒng),其中所述數據存儲設備包括映射表,所述映射表被配置為將從所述主機提供的邏輯地址改變?yōu)樗鰯祿鎯υO備的物理地址,以及在所述映射表中,被指定為將被刪除的區(qū)域的存儲區(qū)域當中與所述數據存儲設備的數據管理單位匹配的存儲區(qū)域被標記為無效。
17.如權利要求16所述的存儲系統(tǒng),其中,在所述映射表中,被指定為將被刪除的區(qū)域的存儲區(qū)域當中與所述數據存儲設備的數據管理單位不匹配的存儲區(qū)域被標記為有效。
18.如權利要求17所述的存儲系統(tǒng),其中,所述數據存儲設備還包括TRIM管理表,該 TRIM管理表被配置為管理關于被指定為將被刪除的區(qū)域的存儲區(qū)域當中與所述數據存儲設備的數據管理單位不匹配的存儲區(qū)域的信息。
19.如權利要求18所述的存儲系統(tǒng),其中,當所述TRIM管理表中管理的存儲區(qū)域與所述數據存儲設備的數據管理單位匹配時,所述映射表根據來自所述主機的另一 TRIM命令, 基于所述TRIM管理表更新寫狀態(tài)信息(WSI)。
20.如權利要求19所述的存儲系統(tǒng),其中,所述映射表的WSI被更新,并且關于與所述數據存儲設備的數據管理單位匹配的存儲區(qū)域并且在所述TRIM管理表中管理的信息被從所述TRIM管理表刪除。
21.如權利要求18所述的存儲系統(tǒng),其中,所述數據存儲設備還包括緩存,所述緩存被配置為存儲所述TRIM管理表以及通過推送方案管理存儲在所述TRIM管理表中的信息。
22.如權利要求13所述的存儲系統(tǒng),其中,所述數據存儲設備包括緩存,所述緩存被配置為存儲關于從所述主機傳送的至少兩個TRIM命令的信息。
23.如權利要求22所述的存儲系統(tǒng),其中所述數據存儲設備還包括被配置為存儲數據的至少兩個閃存以及被配置為控制所述至少兩個閃存的控制單元,以及所述控制單元控制存儲在所述緩存中的至少兩個TRIM命令的處理次序,以使所述至少兩個閃存并行操作。
24.一種連接到用戶設備的數據存儲設備,該數據存儲設備包括存儲單元,其被配置為存儲數據;緩存,其被配置為臨時存儲將被寫入所述存儲單元的數據;以及控制單元,其被配置為控制所述存儲單元和所述緩存,其中,根據從所述用戶設備傳送的TRIM命令,被指定為將被刪除的區(qū)域的存儲區(qū)域當中與所述存儲單元的數據管理單位匹配的存儲區(qū)域的數據不被寫入所述存儲單元中。
25.如權利要求M所述的數據存儲設備,其中,被指定為將被刪除的區(qū)域的存儲區(qū)域當中與所述數據存儲設備的數據管理單位不匹配的存儲區(qū)域的數據被寫入所述存儲單元中。
26.如權利要求M所述的數據存儲設備,還包括映射表,該映射表被配置為將從所述用戶設備提供的邏輯地址改變?yōu)樗鰯祿鎯υO備的物理地址,其中在所述映射表中,被指定為將被刪除的區(qū)域的存儲區(qū)域當中與所述存儲單元的數據管理單位匹配的存儲區(qū)域的寫狀態(tài)信息(WSI)被標記為無效,并且在所述映射表中,被指定為將被刪除的區(qū)域的存儲區(qū)域當中與所述存儲單元的數據管理單位不匹配的存儲區(qū)域的WSI被標記為有效。
27.如權利要求沈所述的數據存儲設備,其中,所述數據存儲設備還包括TRIM管理表, 該TRIM管理表被配置為管理與所述數據存儲設備的數據管理單位不匹配并且在所述映射表中被標記為有效的存儲區(qū)域。
28.如權利要求27所述的數據存儲設備,其中,當所述TRIM管理表中管理的存儲區(qū)域與所述數據存儲設備的數據管理單位匹配時,所述映射表根據從所述用戶設備傳送的另一 TRIM命令,基于所述TRIM管理表更新WSI。
29.如權利要求M所述的數據存儲設備,還包括緩存,其被配置為當從所述用戶設備傳送至少兩個TRIM命令時存儲關于所述至少兩個TRIM命令的信息。
30.如權利要求四所述的數據存儲設備,其中所述存儲單元包括至少兩個閃存,并且所述控制單元控制存儲在所述緩存中的至少兩個TRIM命令的處理次序,以使所述至少兩個閃存并行操作。
31.一種用戶設備的數據管理方法,該用戶設備將文件的數據存儲在數據存儲設備中并且具有不同于所述數據存儲設備的數據管理單位的數據管理單位,所述方法包括響應于文件刪除請求改變被請求刪除的文件的元數據;確定關于被請求刪除的文件的存儲區(qū)域的信息是否對應于所述數據存儲設備的數據管理單位;以及將關于被請求刪除的文件的存儲區(qū)域的信息當中關于與所述數據存儲設備的數據管理單位對應的區(qū)域的信息發(fā)送給所述數據存儲設備。
32.如權利要求31所述的方法,其中,所述改變被請求刪除的文件的元數據表示所述被請求刪除的文件在高層已被刪除。
33.如權利要求31所述的方法,還包括生成TRIM管理表,其被配置為管理關于所述被請求刪除的文件的存儲區(qū)域的信息當中關于與所述數據存儲設備的數據管理單位不對應的區(qū)域的信息。
34.如權利要求31所述的方法,其中,從所述數據存儲設備的映射表提供所述關于被請求刪除的文件的存儲區(qū)域的信息。
35.一種將文件的數據存儲在數據存儲設備中的用戶設備,該用戶設備包括文件系統(tǒng),其被配置為以不同于所述數據存儲設備的數據管理單位的單位來管理文件以及改變關于被請求刪除的文件的元數據的信息;以及TRIM管理模塊,其被配置為提供關于被請求刪除的文件的存儲區(qū)域的信息當中關于與所述數據存儲設備的數據管理單位對應的存儲區(qū)域的信息。
36.如權利要求35所述的用戶設備,其中,改變關于被請求刪除的文件的元數據的信息表示所述被請求刪除的文件在高層已被刪除。
37.如權利要求35所述的用戶設備,還包括TRIM管理表,其被配置為管理關于所述被請求刪除的文件的存儲區(qū)域的信息當中關于與所述數據存儲設備的數據管理單位不對應的區(qū)域的信息。
38.如權利要求37所述的用戶設備,還包括主機存儲器,其被配置為存儲TRIM管理表, 其中通過推送方法管理存儲在所述主機存儲器中的TRIM管理表。
39.如權利要求35所述的用戶設備,還包括主機存儲器,其被配置為存儲關于至少兩個被請求刪除的文件的存儲區(qū)域的信息。
40.如權利要求39所述的用戶設備,其中所述TRIM管理模塊提供存儲在所述主機存儲器中的關于所述至少兩個被請求刪除的文件的存儲區(qū)域的信息當中關于與所述數據存儲設備的數據管理單位對應的區(qū)域的信息。
41.如權利要求35所述的用戶設備,其中,從所述數據存儲設備的映射表提供所述關于所述至少兩個被請求刪除的文件的存儲區(qū)域的信息。
42.一種存儲系統(tǒng),包括主機,其被配置為支持TRIM操作;以及數據存儲設備,其被配置為響應于來自主機的TRIM命令執(zhí)行擦除操作,其中,所述主機僅提供關于被請求刪除的文件的存儲區(qū)域的信息當中關于與所述數據存儲設備的數據管理單位對應的存儲區(qū)域的信息。
43.如權利要求42所述的存儲系統(tǒng),其中,所述主機單獨管理關于所述被請求刪除的文件的存儲區(qū)域的信息當中關于與所述數據存儲設備的數據管理單位不對應的區(qū)域的信肩、ο
44.如權利要求42所述的存儲系統(tǒng),其中,所述主機以扇區(qū)為單位管理文件;所述數據存儲設備以頁為單位管理文件的數據;以及每個頁被劃分為多個扇區(qū)。
45.如權利要求42所述的存儲系統(tǒng),其中所述主機包括文件系統(tǒng),其被配置為以扇區(qū)為單位管理文件以及改變關于被請求刪除的文件的元數據的信息;以及TRIM管理模塊,其被配置為選擇關于被請求刪除的文件的扇區(qū)當中與所述數據存儲設備的頁單位對應的扇區(qū)的信息。
46.如權利要求45所述的存儲系統(tǒng),其中,所述改變關于被請求刪除的文件的元數據的信息表示所述被請求刪除的文件在高層已被刪除。
47.如權利要求45所述的存儲系統(tǒng),其中,所述主機還包括TRIM管理表,該TRIM管理表管理關于所述被請求刪除的文件的扇區(qū)當中與所述頁單位不對應的部分扇區(qū)的信息。
48.如權利要求47所述的存儲系統(tǒng),其中,所述TRIM管理表管理關于所述部分扇區(qū)的信息以及關于與所述部分扇區(qū)在同一頁中的扇區(qū)的信息。
49.如權利要求45所述的存儲系統(tǒng),其中,所述主機還包括主機存儲器,其被配置為存儲關于分別在不同時間被請求刪除的至少兩個文件的扇區(qū)的信息。
50.如權利要求49所述的存儲系統(tǒng),其中,所述TRIM管理模塊從存儲在所述主機存儲器中的所述關于分別在不同時間被請求刪除的至少兩個文件的扇區(qū)的信息當中選擇關于與所述數據存儲設備的數據管理單位對應的扇區(qū)地址的信息。
51.一種用于閃存系統(tǒng)的數據管理擦除方法,所述閃存系統(tǒng)具有被配置為與閃存存儲設備通信的主機文件系統(tǒng),所述數據管理擦除方法包括由所述主機文件系統(tǒng)向所述閃存存儲設備提供通知所述閃存存儲設備哪些數據塊將不再考慮使用的TRIM命令,其中所述TRIM命令包括用于指定已經請求將其刪除的文件的扇區(qū)地址;由所述閃存存儲設備接收所述TRIM命令,將所述扇區(qū)地址轉換為頁地址,以及將所述閃存存儲設備的將被刪除的頁標記為無效;以及由所述閃存存儲設備對所述標記為無效的頁執(zhí)行擦除操作。
52.如權利要求51所述的數據管理擦除方法,其中,在當沒有從所述主機文件系統(tǒng)到所述閃存存儲設備的請求時的空閑時間執(zhí)行所述擦除操作。
53.如權利要求51所述的數據管理擦除方法,其中,當由所述主機文件系統(tǒng)接收到文件刪除請求時,所述主機文件系統(tǒng)改變已經請求將其刪除的文件的元數據,以使得當應用隨后訪問所述主機文件系統(tǒng)的相應文件時,將向所述應用提供指示相應文件已經被刪除的 fn息ο
全文摘要
本申請?zhí)峁┮环N數據存儲設備的數據管理方法,該數據存儲設備具有不同于用戶設備的數據管理單位的數據管理單位,該方法包括從所述用戶設備接收關于將被刪除的文件的存儲區(qū)域的信息,從所述被刪除文件的存儲區(qū)域當中選擇與所述數據存儲設備的數據管理單位匹配的存儲區(qū)域,以及對所選擇的與所述數據管理單位匹配的存儲區(qū)域執(zhí)行擦除操作。
文檔編號G06F12/02GK102467455SQ201110338409
公開日2012年5月23日 申請日期2011年10月31日 優(yōu)先權日2010年10月29日
發(fā)明者崔永準, 朱宰賢, 李晟熏, 鄭曉真 申請人:三星電子株式會社