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