固態(tài)存儲回收系統(tǒng)及固態(tài)存儲回收方法
【專利摘要】本發(fā)明提供了一種固態(tài)存儲回收系統(tǒng)和方法,該系統(tǒng)包括:固態(tài)存儲陣列、接口模塊、存儲控制模塊以及固件模塊,其中,如果待寫入的數(shù)據(jù)不屬于設(shè)定的數(shù)據(jù)類型,存儲控制模塊設(shè)置成將待寫入的數(shù)據(jù)寫入到固態(tài)存儲陣列,如果待寫入的數(shù)據(jù)屬于設(shè)定的數(shù)據(jù)類型,則存儲控制模塊設(shè)置成將待寫入的數(shù)據(jù)寫入到固件模塊,并將固態(tài)存儲陣列中與待寫入的數(shù)據(jù)相匹配的物理存儲單元回收,以用于損耗均衡。利用本發(fā)明所提供的系統(tǒng)和方法促進(jìn)固態(tài)存儲空間回收。
【專利說明】
固態(tài)存儲回收系統(tǒng)及固態(tài)存儲回收方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及固態(tài)存儲技術(shù)。具體的,涉及用于回收固態(tài)存儲設(shè)備的物理空間的系統(tǒng)和方法。
【背景技術(shù)】
[0002]固態(tài)存儲設(shè)備通常使用存儲單元數(shù)組來創(chuàng)建非易失性存儲。在閃存設(shè)備中,無論是單層單元或多層單元都可以作為長期的存儲設(shè)備來實(shí)現(xiàn)。單層單元(SLC)中僅有一個比特長度,以當(dāng)前的可用技術(shù)而言,支持大約10萬次的編程或擦除循環(huán)操作。多層單元(MLC)擁有可變電荷和更多信息,但與SLC相比故障率更高。對于MLC而言,一個典型的編程/擦除規(guī)范目前是10000個循環(huán)操作。在這兩種情況中,損耗均衡算法均被實(shí)施,以防止在同一存儲單元塊中執(zhí)行重復(fù)的寫操作。
[0003]通過在少量已使用或未使用的單元中分配寫操作,損耗均衡算法可以改善存儲設(shè)備的寫入處理能力。當(dāng)存儲設(shè)備中大量可用單元未被利用時,損耗均衡算法運(yùn)行的更加有效率。在這種條件下,損耗均衡算法能夠顯著減少在每個單元上寫操作的平均次數(shù),從而提高固態(tài)存儲設(shè)備的使用時間。
【發(fā)明內(nèi)容】
[0004]以當(dāng)前已有的固態(tài)存儲空間回收方法而言,尚無能完全解決本類問題并滿足領(lǐng)域需求的最佳方法。發(fā)明人提出本發(fā)明的技術(shù)方案用于解決現(xiàn)有技術(shù)中的問題至少一個方面,從而克服了上述缺點(diǎn)以促進(jìn)固態(tài)存儲空間的回收。
[0005]根據(jù)本發(fā)明所提供的固態(tài)存儲回收系統(tǒng),其包括:固態(tài)存儲陣列,所述固態(tài)存儲陣列具有用于寫入和讀取數(shù)據(jù)的固態(tài)存儲物理單元;接口模塊,所述接口模塊被設(shè)置為接收寫命令以及待寫入的數(shù)據(jù);存儲控制模塊,所述存儲控制模塊被設(shè)置為控制對所述固態(tài)存儲陣列的寫入或讀取;固件模塊,所述固件模塊用于存儲與設(shè)定的數(shù)據(jù)類型相同的數(shù)據(jù);其中,如果所述待寫入的數(shù)據(jù)不屬于設(shè)定的數(shù)據(jù)類型,所述存儲控制模塊設(shè)置成將待寫入的數(shù)據(jù)寫入到所述固態(tài)存儲陣列;如果所述待寫入的數(shù)據(jù)屬于設(shè)定的數(shù)據(jù)類型,則存儲控制模塊設(shè)置成將待寫入的數(shù)據(jù)寫入到所述固件模塊,并將固態(tài)存儲陣列中與待寫入的數(shù)據(jù)相匹配的物理存儲單元回收,以用于損耗均衡。
[0006]在本發(fā)明的實(shí)施方式中,固態(tài)存儲回收系統(tǒng)還包括映射模塊,所述映射模塊設(shè)置成管理一個或多個映射表,所述映射表中記錄固態(tài)存儲陣列中邏輯存儲地址到物理存儲地址映射。
[0007]在本發(fā)明的實(shí)施方式中,所述映射模塊能夠從所述固態(tài)存儲陣列中讀取數(shù)據(jù),從而對映射模塊中的映射表進(jìn)行更新。
[0008]在本發(fā)明的實(shí)施方式中,所述存儲控制模塊讀取所述映射模塊中的映射表,以確定所述待寫入數(shù)據(jù)的邏輯存儲地址和物理存儲地址。
[0009]在本發(fā)明的實(shí)施方式中,所述映射模塊存儲于所述固態(tài)存儲陣列內(nèi),若待寫入的數(shù)據(jù)屬于設(shè)定的數(shù)據(jù)類型,則存儲在所述固態(tài)存儲陣列內(nèi)的與所述待寫入的數(shù)據(jù)相配匹的映射表的條目被刪除,并回收存儲該條目的物理存儲地址。
[0010]根據(jù)本發(fā)明還提供的一種固態(tài)存儲回收方法,其包括如下步驟:接收寫入命令以及待寫入的數(shù)據(jù);識別待寫入數(shù)據(jù)是否屬于設(shè)定的數(shù)據(jù)類型;
[0011 ]如果待寫入數(shù)據(jù)不屬于設(shè)定的數(shù)據(jù)類型,則將待寫入的數(shù)據(jù)寫入到所述固態(tài)存儲陣列;如果待寫入數(shù)據(jù)屬于設(shè)定的數(shù)據(jù)類型,則將待寫入的數(shù)據(jù)寫入到固件模塊,并將固態(tài)存儲陣列中與待寫入的數(shù)據(jù)相匹配的物理存儲單元回收,以用于損耗均衡。
[0012]在本發(fā)明的實(shí)施方式中,其中,將待寫入的數(shù)據(jù)寫入固態(tài)存儲陣列的步驟,其通過映射表來實(shí)現(xiàn),所述映射表中記錄固態(tài)存儲陣列中邏輯存儲地址到物理存儲地址的映射。
[0013]在本發(fā)明的實(shí)施方式中,其中,所述映射表能夠根據(jù)固態(tài)存儲陣列中的數(shù)據(jù)進(jìn)行更新。
[0014]在本發(fā)明的實(shí)施方式中,其中,利用所述映射表中的數(shù)據(jù),以確定所述待寫入數(shù)據(jù)的邏輯存儲地址和物理存儲地址。
[0015]在本發(fā)明的實(shí)施方式中,所述映射表存儲于固態(tài)存儲陣列內(nèi),若待寫入的數(shù)據(jù)屬于設(shè)定的數(shù)據(jù)類型,則存儲在所述固態(tài)存儲陣列內(nèi)的與所述待寫入的數(shù)據(jù)相配匹的映射表的條目被刪除,并回收存儲該條目的物理存儲地址。
【附圖說明】
[0016]從隨后結(jié)合附圖對實(shí)施例的描述中,本發(fā)明的示例性實(shí)施例的這些和/或其他方面和優(yōu)點(diǎn)將變得顯而易見并更容易理解,在附圖中:,其中:
[0017]圖1示出了根據(jù)本發(fā)明的固態(tài)存儲回收系統(tǒng)的實(shí)施例;
[0018]圖2示出了根據(jù)本發(fā)明的固態(tài)存儲回收系統(tǒng)的又一實(shí)施例;
[0019]圖3示出了根據(jù)本發(fā)明的固態(tài)存儲回收系統(tǒng)的再一實(shí)施例;
[0020]圖4示出了根據(jù)本發(fā)明的固態(tài)存儲回收方法的流程圖;
[0021]圖5示出了根據(jù)本發(fā)明的地址映射情景的示意圖。
【具體實(shí)施方式】
[0022]在本說明書中描述的功能單元已經(jīng)被標(biāo)記為模塊,以便更具體地強(qiáng)調(diào)它們的實(shí)現(xiàn)。例如,模塊可以被實(shí)現(xiàn)為硬件電路,包括定制VLSI電路或門陣列,現(xiàn)成的,貨架半導(dǎo)體諸如邏輯芯片,晶體管或其他分立元件;同樣,模塊也可以在可編程的硬件設(shè)備(如:門陣列、可編程的陣列邏輯、固態(tài)存儲器、可編程邏輯設(shè)備等)來實(shí)現(xiàn)。
[0023]模塊也可通過不同類型的處理器來實(shí)現(xiàn),用于在軟件中執(zhí)行。可執(zhí)行代碼的確定模塊可以包含一個或多個計(jì)算機(jī)指令的邏輯或物理塊,如:被組織的對象、過程或功能。盡管如此,確定模塊的可執(zhí)行文件不必放在同一物理地址上,而是可由同一存儲的不同存儲單元中的內(nèi)容組成,僅需在需要的時候?qū)⒃撃K完全不同的指令在邏輯上結(jié)合在一起時,應(yīng)以實(shí)現(xiàn)該模塊的既定用途。
[0024]事實(shí)上,包含可執(zhí)行代碼的模塊可以是一條指令,也可是多條指令,甚至可以分布到不同的代碼段、存在于不同的程序間,也可跨多個存儲設(shè)備。同樣,模塊中的操作數(shù)據(jù)可被識別和解釋,并且可以在任何適當(dāng)類型的數(shù)據(jù)結(jié)構(gòu)中,以適合的形式顯示和結(jié)合。執(zhí)行數(shù)據(jù)可以作為單一的數(shù)據(jù)集被采集,或者被分布到不同存儲設(shè)備的不同地方,或者僅有部分作為系統(tǒng)或網(wǎng)絡(luò)上的電子信號存在也是可以的。
[0025]貫穿本說明書中對“一個實(shí)施例”,“實(shí)施例”,或類似語言的參考意味著至少包括在本發(fā)明的應(yīng)用實(shí)例的一個特定的特征、結(jié)構(gòu)或與該實(shí)施例描述的特征。同樣的,本說明書中采用的“在應(yīng)用實(shí)例中”或“在一個應(yīng)用實(shí)例”和類似的語言可以但不一定指的是同一個應(yīng)用實(shí)例。
[0026]此外,本發(fā)明中所描述的特征、結(jié)構(gòu)或特性可以任何合適的方式在一個或多個應(yīng)用實(shí)例中被組合使用。隨后的描述中,諸如編程實(shí)例、軟件模塊、用戶選擇、網(wǎng)絡(luò)交易、數(shù)據(jù)庫查詢、硬件芯片、硬件模塊、硬件電路等等提供了許多具體細(xì)節(jié),用于支持徹底理解本發(fā)明的應(yīng)用實(shí)例。在替他實(shí)例中,眾所周知的結(jié)構(gòu)、材料或者操作將不再詳細(xì)描述或出示,以避免本發(fā)明相關(guān)環(huán)節(jié)被混淆。
[0027]以下通過附圖結(jié)合【具體實(shí)施方式】對本發(fā)明進(jìn)行進(jìn)一步的說明和闡述,但是請注意,附圖中所示的特征不表明本發(fā)明的技術(shù)方案必須包括該特征,本領(lǐng)域技術(shù)人員可以根據(jù)實(shí)際情況進(jìn)行刪除和增加以及相互結(jié)合。
[0028]如圖1-3所示,其示出了本發(fā)明的固態(tài)存儲回收系統(tǒng)的三種不同的實(shí)施方式。
[0029]具體的,如圖1所示,其示出了固態(tài)存儲回收系統(tǒng)130,其包括:固態(tài)存儲陣列140,所述固態(tài)存儲陣列具有用于寫入和讀取數(shù)據(jù)的固態(tài)存儲物理單元;接口模塊,所述接口模塊被設(shè)置為接收寫命令以及待寫入的數(shù)據(jù);存儲控制模塊142,所述存儲控制模塊被設(shè)置為控制對所述固態(tài)存儲陣列的寫入或讀取;固件模塊138,所述固件模塊用于存儲與設(shè)定的數(shù)據(jù)類型相同的數(shù)據(jù);其中,如果所述待寫入的數(shù)據(jù)不屬于設(shè)定的數(shù)據(jù)類型,所述存儲控制模塊設(shè)置成將待寫入的數(shù)據(jù)寫入到所述固態(tài)存儲陣列140;如果所述待寫入的數(shù)據(jù)屬于設(shè)定的數(shù)據(jù)類型,則存儲控制模塊設(shè)置成將待寫入的數(shù)據(jù)寫入到所述固件模塊,并將固態(tài)存儲陣列中與待寫入的數(shù)據(jù)相匹配的物理存儲單元回收,以用于損耗均衡。
[0030]圖1還示出了與本發(fā)明進(jìn)行交互的計(jì)算機(jī)設(shè)備110,該計(jì)算機(jī)設(shè)備110向固態(tài)存儲回收系統(tǒng)130進(jìn)行讀寫,同時對固態(tài)存儲陣列140的訪問進(jìn)行管控。根據(jù)圖1所示的實(shí)施方式,本發(fā)明的固態(tài)存儲回收系統(tǒng)通過對固態(tài)存儲陣列140讀寫次數(shù)的最小化,使得該系統(tǒng)能夠提供更快的訪問速度,對固態(tài)存儲陣列的損耗最小。
[0031]此外,計(jì)算機(jī)設(shè)備110與固態(tài)存儲回收系統(tǒng)分離設(shè)置,在圖1所示出的實(shí)施方式中,固態(tài)存儲回收系統(tǒng)設(shè)置在計(jì)算機(jī)設(shè)備110的外部,然而,本領(lǐng)域技術(shù)人員也可以將固態(tài)存儲回收系統(tǒng)設(shè)置在計(jì)算機(jī)設(shè)備110的內(nèi)部或者將計(jì)算機(jī)設(shè)備110設(shè)置在固態(tài)存儲回收系統(tǒng)130的內(nèi)部。換而言之,本領(lǐng)域技術(shù)人員可以根據(jù)實(shí)際需要對上述部件進(jìn)行合適的設(shè)置。
[0032]如圖1所示,固件模塊138與固態(tài)存儲陣列140分離設(shè)置,然而,本領(lǐng)域技術(shù)人員也可以采用其他的設(shè)置方式,例如,在固態(tài)存儲陣列140中劃分出一定的存儲空間來作為固件模塊138。
[0033]在本發(fā)明的實(shí)施方式中,計(jì)算機(jī)設(shè)備110也可作為主要或次要存儲模塊應(yīng)用到固態(tài)存儲回收系統(tǒng)130中。計(jì)算機(jī)設(shè)備110能夠產(chǎn)生包含讀寫指令的數(shù)據(jù)包120,從而數(shù)據(jù)包120能夠被讀寫。固態(tài)存儲回收系統(tǒng)130通過一個接口模塊接收數(shù)據(jù)包120。
[0034]參見附圖2所示,根據(jù)本發(fā)明的又一實(shí)施方式,接口模塊可以包括接口控制模塊132和接口緩存134。當(dāng)然本領(lǐng)域技術(shù)人員也可以設(shè)置其他的模塊用于接口模塊。
[0035]接口控制模塊132可被配置用作處理設(shè)備協(xié)議、報(bào)告計(jì)算機(jī)設(shè)備110或固態(tài)存儲回收系統(tǒng)130的傳輸錯誤。另外,接口控制模塊132可負(fù)責(zé)傳輸數(shù)據(jù)包到計(jì)算機(jī)設(shè)備。
[0036]數(shù)據(jù)包流可通過接口緩存134進(jìn)行管理和控制。接口緩存可以臨時存儲信息,當(dāng)需要的時候?qū)?shù)據(jù)包傳遞到存儲控制模塊142。
[0037]如圖3所示,其示出了本發(fā)明的又一實(shí)施方式,固態(tài)存儲回收系統(tǒng)130還包括映射模塊136,所述映射模塊136設(shè)置成管理一個或多個映射表,映射表中記錄固態(tài)存儲陣列140中邏輯存儲地址到物理存儲地址的映射。映射模塊能夠從固態(tài)存儲陣列中讀取數(shù)據(jù),從而對映射模塊中的映射表進(jìn)行更新。存儲控制模塊142讀取所述映射模塊中的映射表,以確定所述待寫入數(shù)據(jù)的邏輯存儲地址和物理存儲地址。
[0038]映射模塊136可以存儲于固態(tài)存儲陣列140內(nèi),若待寫入的數(shù)據(jù)屬于設(shè)定的數(shù)據(jù)類型,則存儲在所述固態(tài)存儲陣列內(nèi)的與所述待寫入的數(shù)據(jù)相配匹的映射表的條目被刪除,并回收存儲該條目的物理存儲地址。
[0039]這里的“設(shè)定的數(shù)據(jù)類型”是預(yù)先定義的數(shù)據(jù)類型,例如,通用數(shù)據(jù)類型,S卩,技術(shù)人員可以根據(jù)不同的系統(tǒng)或者不同的操作方式來對數(shù)據(jù)類型進(jìn)行設(shè)定,以使其作為設(shè)定的數(shù)據(jù)類型在本發(fā)明中的固態(tài)存儲回收系統(tǒng)中使用。
[0040]根據(jù)圖3所示出的實(shí)施方式,存儲控制模塊142可以允許訪問映射模塊136、固件模塊138和固態(tài)存儲陣列140,從而向計(jì)算機(jī)設(shè)備110提供讀寫功能。在具體的實(shí)施方式中,映射模塊136可以存儲在固態(tài)存儲陣列140中,映射模塊136包括訪問存儲數(shù)據(jù)的邏輯地址。映射模塊136管理一個或多個映射表,這些映射表中記錄了固態(tài)存儲陣列中邏輯存儲地址到物理存儲地址映射。
[0041]在本發(fā)明所提供的實(shí)施方式中,例如,在執(zhí)行寫入操作的情況下,固態(tài)存儲控制模塊142與映射模塊136進(jìn)行通信,以確定所述固態(tài)存儲陣列140中可用的物理寫入地址。從而待寫入的數(shù)據(jù)能被寫入該固態(tài)存儲設(shè)備陣列140,以及邏輯存儲地址到物理存儲地址的映射通過映射模塊136采集。
[0042]在本發(fā)明的實(shí)施例中,該存儲控制模塊142從該固態(tài)存儲陣列140讀取映射表信息,當(dāng)在操作過程中需要設(shè)備初始化、存儲和更新信息、并寫入或啟動寫操作將映射表寫入固態(tài)存儲陣列140中長期存儲。該映射模塊能夠?qū)崿F(xiàn)損耗均衡算法每次在向映射表中寫入內(nèi)容時,能根據(jù)需要在固態(tài)存儲陣列140中分配不同的位置。
[0043]當(dāng)將寫入固態(tài)存儲陣列的數(shù)據(jù)匹配為設(shè)定的數(shù)據(jù)模式,存儲控制模塊142可以避免將數(shù)據(jù)重復(fù)寫入到固態(tài)存儲陣列140中,僅將該存儲的邏輯單元簡單地映射到該設(shè)定的數(shù)據(jù)模式的存儲位置上,例如固件模塊上,也可以是其他方法。
[0044]在本發(fā)明的實(shí)施方式中,對存儲的邏輯單元進(jìn)行映射到一個或多個存儲位置可以通過各種手段和方法來實(shí)現(xiàn)。例如,對應(yīng)于該設(shè)定的數(shù)據(jù)類型的特定代碼或物理存儲都可以被插入到映射表中。同樣的,存儲邏輯單元的條目也能從映射表中刪除;該映射表明確指出該存儲的邏輯單元包含了該設(shè)定的數(shù)據(jù)類型的模式。
[0045]根據(jù)本發(fā)明的實(shí)施方式,該設(shè)定的數(shù)據(jù)類型的模式可以被存于固態(tài)存儲陣列140的設(shè)定的數(shù)據(jù)類型的模式區(qū)中,也可以存儲在固件模塊138中。在應(yīng)用中,任何類型的存儲配置都能提供設(shè)定的數(shù)據(jù)類型的模式存儲。SDRAM就是典型應(yīng)用。在存儲陣列之外存儲或生成設(shè)定的數(shù)據(jù)類型模式從而減輕來自固態(tài)存儲陣列140的輸入輸出負(fù)載。
[0046]根據(jù)本發(fā)明的實(shí)施方式,引入備用位置用于存儲或生成的設(shè)定的數(shù)據(jù)類型的模式能提供顯著優(yōu)于現(xiàn)有技術(shù)的實(shí)現(xiàn)方式。例如,當(dāng)涉及的數(shù)據(jù)使用的是設(shè)定的數(shù)據(jù)類型,那么在讀寫操作執(zhí)行時固態(tài)存儲陣列140不需要被訪問。在另外一個應(yīng)用實(shí)例中,在讀操作過程中,如果所需映射不存在于映射表中時,設(shè)定的數(shù)據(jù)類型模式將被返回,從而減少訪問(潛在的高等待時間)固態(tài)存儲陣列140和減少映射表所需的空間。
[0047]此外,該映射模塊136能夠包含指向同一物理地址的多重邏輯地址。指向同一物理地址能夠消除固態(tài)存儲陣列140中含有相同數(shù)據(jù)模式的存儲單元。在所需空間最小前提下,該固態(tài)存儲設(shè)備能夠提供額外的空間用于損耗均衡算法或類似。
[0048]此外,本發(fā)明還提供了一種固態(tài)存儲回收方法,其包括如下步驟:接收寫入命令以及待寫入的數(shù)據(jù);識別待寫入數(shù)據(jù)是否屬于設(shè)定的數(shù)據(jù)類型;如果待寫入數(shù)據(jù)不屬于設(shè)定的數(shù)據(jù)類型,則將待寫入的數(shù)據(jù)寫入到所述固態(tài)存儲陣列;如果待寫入數(shù)據(jù)屬于設(shè)定的數(shù)據(jù)類型,則將待寫入的數(shù)據(jù)寫入到固件模塊,并將固態(tài)存儲陣列中與待寫入的數(shù)據(jù)相匹配的物理存儲單元回收,以用于損耗均衡。
[0049]其中,將待寫入的數(shù)據(jù)寫入固態(tài)存儲陣列的步驟,其通過映射表來實(shí)現(xiàn),所述映射表中記錄固態(tài)存儲陣列中邏輯存儲地址到物理存儲地址映射。
[0050]其中,所述映射表能夠根據(jù)固態(tài)存儲陣列中的數(shù)據(jù)進(jìn)行更新。
[0051]其中,利用所述映射表中的數(shù)據(jù),以確定所述待寫入數(shù)據(jù)的邏輯存儲地址和物理存儲地址。
[0052]所述映射表存儲于固態(tài)存儲陣列內(nèi),若待寫入的數(shù)據(jù)屬于設(shè)定的數(shù)據(jù)類型,則存儲在所述固態(tài)存儲陣列內(nèi)的與所述待寫入的數(shù)據(jù)相配匹的映射表的條目被刪除,并回收存儲該條目的物理存儲地址。
[0053]如圖4所示,其示出了根據(jù)本發(fā)明所提供的方法的一種實(shí)施方式的流程圖。
[0054]其中,根據(jù)本發(fā)明所提供的方法,如圖4所示,固態(tài)存儲回收方法,其包括如下步驟:接收寫入命令以及待寫入的數(shù)據(jù)210;識別待寫入數(shù)據(jù)是否屬于設(shè)定的數(shù)據(jù)類型220;如果待寫入數(shù)據(jù)不屬于設(shè)定的數(shù)據(jù)類型,則將待寫入的數(shù)據(jù)寫入到所述固態(tài)存儲陣列250;如果待寫入數(shù)據(jù)屬于設(shè)定的數(shù)據(jù)類型,則將待寫入的數(shù)據(jù)寫入到固件模塊230,并將固態(tài)存儲陣列中與待寫入的數(shù)據(jù)相匹配的物理存儲單元回收,以用于損耗均衡。
[0055]其中,將待寫入的數(shù)據(jù)寫入固態(tài)存儲陣列的步驟,其通過映射表來實(shí)現(xiàn),所述映射表中記錄固態(tài)存儲陣列中邏輯存儲地址到物理存儲地址映射。
[0056]其中,所述映射表能夠根據(jù)固態(tài)存儲陣列中的數(shù)據(jù)進(jìn)行更新280。
[0057]其中,利用所述映射表中的數(shù)據(jù),以確定所述待寫入數(shù)據(jù)的邏輯存儲地址和物理存儲地址260。
[0058]所述映射表存儲于固態(tài)存儲陣列內(nèi),若待寫入的數(shù)據(jù)屬于設(shè)定的數(shù)據(jù)類型,則存儲在所述固態(tài)存儲陣列內(nèi)的與所述待寫入的數(shù)據(jù)相配匹的映射表的條目被刪除,并回收存儲該條目的物理存儲地址240。
[0059]根據(jù)本發(fā)明的方法還可以包括添加邏輯映射290的步驟,如果與寫入數(shù)據(jù)相匹配的映射不存在,則將邏輯映射添加到映射表內(nèi)。
[0060]根據(jù)本發(fā)明所提供的方法,在寫操作期間通過識別設(shè)定的數(shù)據(jù)類型的模式和已存在的映射,該方法能夠使固態(tài)存儲空間被回收和重用。在一個應(yīng)用實(shí)例中,該設(shè)定的數(shù)據(jù)類型的模式在系統(tǒng)模式或者整個數(shù)據(jù)存儲模式的零層;在另一應(yīng)用實(shí)例中,該設(shè)定的數(shù)據(jù)類型的模式也可以包含的數(shù)據(jù)和來自低層級的格式化算法一致。
[0061]如果這些待寫入的數(shù)據(jù)包含了設(shè)定的數(shù)據(jù)類型,這些邏輯存儲地址應(yīng)映射到設(shè)定的數(shù)據(jù)類型的模式。
[0062]上述步驟可以通過多種方式來實(shí)現(xiàn)。例如,將對應(yīng)設(shè)定的數(shù)據(jù)類型模式的指令或物理存儲地址被插入到映射表中。另外,存儲的邏輯單元的條目可以從映射表中刪除,這表明它包含了設(shè)定的數(shù)據(jù)類型模式。特別是,在一個應(yīng)用實(shí)例中,該固態(tài)存儲設(shè)備確認(rèn)邏輯地址到物理地址的映射,并將之從映射表中移除。當(dāng)邏輯存儲地址被移除,存儲控制模塊142將與之相對性的物理空間視之為可用。
[0063]隨后映射到設(shè)定的數(shù)據(jù)類型模式的存儲物理單元對應(yīng)的映射地址可被回收用于包括隨后實(shí)現(xiàn)損耗均衡算法時的使用。根據(jù)本發(fā)明所提供的實(shí)施方式,上述回收可以不依賴于任何來自外部設(shè)備、設(shè)備驅(qū)動或外部接口的回收命令發(fā)生。設(shè)備內(nèi)部處理回收的能力提供了一個顯著優(yōu)勢,這種情況在即插即用方案中尤為明顯。
[0064]如果設(shè)定的數(shù)據(jù)類型模式未被識別,則將這些數(shù)據(jù)寫入物理固態(tài)存儲單元(塊或扇區(qū))。在應(yīng)用實(shí)例中,映射表將被檢查,對于該邏輯單元的映射是否存在。如果邏輯地址到物理地址的映射存在,從而能夠確認(rèn)邏輯和物理寫入位置,該邏輯映射將被更新,以反映該寫入數(shù)據(jù)的物理地址。如果映射不存在,則邏輯映射將被加入映射表中,以便為新寫入的數(shù)據(jù)建立邏輯地址到物理地址的映射。
[0065]特別的,
【申請人】指出,上述方法中的步驟不是必須的,本領(lǐng)域技術(shù)人員可以根據(jù)實(shí)際需要選取上述方法中的步驟的全部,也可以選擇一部分進(jìn)行使用,圖4示出了的流程圖是本發(fā)明的一個優(yōu)選的實(shí)施方式,其不構(gòu)成對本發(fā)明的限定。
[0066]為了更好的理解本發(fā)明的映射的原理以及實(shí)現(xiàn)的過程,圖5給出了本發(fā)明的地址映射示意圖。通過該示意圖,本領(lǐng)域技術(shù)人員可以對本發(fā)明有更清楚的了解。
[0067]如圖5所示,映射情景包含映射表305、邏輯地址映射310、固態(tài)存儲物理單元320以及帶有對設(shè)定的數(shù)據(jù)類型進(jìn)行存儲的固件330。映射多重邏輯存儲地址到同一物理地址或/和替代存儲地址可以減少在存儲陣列中為數(shù)據(jù)存儲分配的物理存儲數(shù)量。
[0068]在圖5示出的實(shí)例中,邏輯地址映射310a和310b同時關(guān)聯(lián)到同一物理固態(tài)存儲單元320a,邏輯地址映射可以指向存儲替代源,例如固件330。在本例中,邏輯地址映射310c和310d作為設(shè)定的數(shù)據(jù)類型模式存儲或代碼332指向固件地址。舉例來說,該模式能夠?yàn)橹T如存儲控制模塊140之類生成通用模式。在物理固態(tài)塊之外存儲或生成設(shè)定的數(shù)據(jù)類型模式,能夠在未來為寫操作和損耗均衡進(jìn)程提供更多的可用空間。
[0069]如上所述,所描述的應(yīng)用實(shí)例,僅供本領(lǐng)域相關(guān)人員理解使用。故而,本系統(tǒng)及方法不限制于文中所舉用例。
【主權(quán)項(xiàng)】
1.一種固態(tài)存儲回收系統(tǒng),其包括: 固態(tài)存儲陣列,所述固態(tài)存儲陣列具有用于寫入和讀取數(shù)據(jù)的固態(tài)存儲物理單元; 接口模塊,所述接口模塊被設(shè)置為接收寫命令以及待寫入的數(shù)據(jù); 存儲控制模塊,所述存儲控制模塊被設(shè)置為控制對所述固態(tài)存儲陣列的寫入或讀?。?固件模塊,所述固件模塊用于存儲與設(shè)定的數(shù)據(jù)類型相同的數(shù)據(jù); 其中,如果所述待寫入的數(shù)據(jù)不屬于設(shè)定的數(shù)據(jù)類型,所述存儲控制模塊設(shè)置成將待寫入的數(shù)據(jù)寫入到所述固態(tài)存儲陣列; 如果所述待寫入的數(shù)據(jù)屬于設(shè)定的數(shù)據(jù)類型,則存儲控制模塊設(shè)置成將待寫入的數(shù)據(jù)寫入到所述固件模塊,并將固態(tài)存儲陣列中與待寫入的數(shù)據(jù)相匹配的物理存儲單元回收,以用于損耗均衡。2.根據(jù)權(quán)利要求1所述的系統(tǒng),其還包括映射模塊,所述映射模塊設(shè)置成管理一個或多個映射表,所述映射表中記錄固態(tài)存儲陣列中邏輯存儲地址到物理存儲地址的映射。3.根據(jù)前述任一項(xiàng)權(quán)利要求所述的系統(tǒng),其中,所述映射模塊能夠從所述固態(tài)存儲陣列中讀取數(shù)據(jù),從而對映射模塊中的映射表進(jìn)行更新。4.根據(jù)前述任一項(xiàng)權(quán)利要求所述的系統(tǒng),所述存儲控制模塊讀取所述映射模塊中的映射表,以確定所述待寫入數(shù)據(jù)的邏輯存儲地址和物理存儲地址。5.根據(jù)前述任一項(xiàng)權(quán)利要求所述的系統(tǒng),所述映射模塊存儲于所述固態(tài)存儲陣列內(nèi),若待寫入的數(shù)據(jù)屬于設(shè)定的數(shù)據(jù)類型,則存儲在所述固態(tài)存儲陣列內(nèi)的與所述待寫入的數(shù)據(jù)相配匹的映射表的條目被刪除,并回收存儲該條目的物理存儲地址。6.一種固態(tài)存儲回收方法,其包括如下步驟: 接收寫入命令以及待寫入的數(shù)據(jù); 識別待寫入數(shù)據(jù)是否屬于設(shè)定的數(shù)據(jù)類型; 如果待寫入數(shù)據(jù)不屬于設(shè)定的數(shù)據(jù)類型,則將待寫入的數(shù)據(jù)寫入到所述固態(tài)存儲陣列; 如果待寫入數(shù)據(jù)屬于設(shè)定的數(shù)據(jù)類型,則將待寫入的數(shù)據(jù)寫入到固件模塊,并將固態(tài)存儲陣列中與待寫入的數(shù)據(jù)相匹配的物理存儲單元回收,以用于損耗均衡。7.根據(jù)權(quán)利要求6所述的方法,其中,將待寫入的數(shù)據(jù)寫入固態(tài)存儲陣列的步驟,其通過映射表來實(shí)現(xiàn),所述映射表中記錄固態(tài)存儲陣列中邏輯存儲地址到物理存儲地址的映射。8.根據(jù)前述任一項(xiàng)權(quán)利要求所述的方法,其中,所述映射表能夠根據(jù)固態(tài)存儲陣列中的數(shù)據(jù)進(jìn)行更新。9.根據(jù)前述任一項(xiàng)權(quán)利要求所述的方法,其中,利用所述映射表中的數(shù)據(jù),以確定所述待寫入數(shù)據(jù)的邏輯存儲地址和物理存儲地址。10.根據(jù)前述任一項(xiàng)權(quán)利要求所述的方法,所述映射表存儲于固態(tài)存儲陣列內(nèi),若待寫入的數(shù)據(jù)屬于設(shè)定的數(shù)據(jù)類型,則存儲在所述固態(tài)存儲陣列內(nèi)的與所述待寫入的數(shù)據(jù)相配匹的映射表的條目被刪除,并回收存儲該條目的物理存儲地址。
【文檔編號】G06F3/06GK105912279SQ201610333032
【公開日】2016年8月31日
【申請日】2016年5月19日
【發(fā)明人】王軍輝, 霍小四
【申請人】河南中天億科電子科技有限公司