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