固態(tài)存儲(chǔ)裝置中垃圾搜集動(dòng)作的控制方法
【專(zhuān)利摘要】本發(fā)明提供了一種固態(tài)儲(chǔ)存裝置中垃圾搜集動(dòng)作的控制方法。該控制方法包括下列步驟:(a)在該固態(tài)儲(chǔ)存裝置執(zhí)行一垃圾搜集動(dòng)作時(shí),判斷一主機(jī)發(fā)出的一寫(xiě)入指令;(b)當(dāng)該寫(xiě)入指令不是一連續(xù)寫(xiě)入指令時(shí),執(zhí)行一第一類(lèi)型的垃圾搜集動(dòng)作,用以釋放出一閃存中小于一空白區(qū)塊的釋放空間后,執(zhí)行該寫(xiě)入指令并將一寫(xiě)入數(shù)據(jù)存儲(chǔ)于該閃存;以及(c)當(dāng)該寫(xiě)入指令是該連續(xù)寫(xiě)入指令時(shí),執(zhí)行一第二類(lèi)型的垃圾搜集動(dòng)作,用以釋放出該閃存中大于該空白區(qū)塊的釋放空間后,執(zhí)行該寫(xiě)入指令并將該寫(xiě)入數(shù)據(jù)存儲(chǔ)于該閃存。
【專(zhuān)利說(shuō)明】固態(tài)存儲(chǔ)裝置中垃圾搜集動(dòng)作的控制方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明是有關(guān)于一種固態(tài)存儲(chǔ)裝置的控制方法,且特別是有關(guān)于一種固態(tài)存儲(chǔ)裝置中垃圾搜集動(dòng)作(garbage collect1n)的控制方法。
【背景技術(shù)】
[0002]眾所周知,固態(tài)存儲(chǔ)裝置(Solid State Drive, SSD)使用與非門(mén)閃存(NAND flashmemory)為主要存儲(chǔ)元件,而此類(lèi)的存儲(chǔ)裝置為一種非揮發(fā)性(non-volatile)的存儲(chǔ)器元件。也就是說(shuō),當(dāng)數(shù)據(jù)寫(xiě)入閃存后,一旦系統(tǒng)電源關(guān)閉,數(shù)據(jù)仍保存在固態(tài)存儲(chǔ)裝置中。
[0003]請(qǐng)參照?qǐng)D1,其所繪示為現(xiàn)有固態(tài)存儲(chǔ)裝置的示意圖。固態(tài)存儲(chǔ)裝置10中包括一控制單元101與一閃存105??刂茊卧?01與閃存105之間利用一內(nèi)部總線107進(jìn)行數(shù)據(jù)的存取,而控制單元101利用一外部總線20與主機(jī)(host) 12之間進(jìn)行指令與數(shù)據(jù)的傳遞。此外,外部總線20可為USB總線、IEEE 1394總線或SATA總線等等。
[0004]一般來(lái)說(shuō),閃存中105包括許多區(qū)塊(block),而每個(gè)區(qū)塊中又包括多個(gè)頁(yè)(page)。例如,一個(gè)區(qū)塊中有64頁(yè),而每個(gè)頁(yè)的容量為4K bytes。此外,由于閃存105的特性,每次數(shù)據(jù)寫(xiě)入時(shí)是以頁(yè)為最小單位,而每次抹除(erase)時(shí)則是以區(qū)塊為單位進(jìn)行數(shù)據(jù)抹除。
[0005]基本上,尚未存儲(chǔ)數(shù)據(jù)的區(qū)塊稱(chēng)為空白區(qū)塊(free block);而已經(jīng)存儲(chǔ)數(shù)據(jù)的區(qū)塊則稱(chēng)為使用區(qū)塊(used block)。當(dāng)使用區(qū)塊中的數(shù)據(jù)全部都是無(wú)效數(shù)據(jù)時(shí),該使用區(qū)塊即可被抹除并成為空白區(qū)塊。而空白區(qū)塊即可再次被用來(lái)存儲(chǔ)數(shù)據(jù)。
[0006]由于閃存105經(jīng)過(guò)長(zhǎng)時(shí)間的存取之后,幾乎每個(gè)使用區(qū)塊中都會(huì)有剩下一些有效數(shù)據(jù)以及一些無(wú)效數(shù)據(jù)。然而,只要使用區(qū)塊中還存在有效數(shù)據(jù)時(shí),該使用區(qū)塊即無(wú)法被抹除為空白區(qū)塊。因此,會(huì)造成太多的無(wú)效數(shù)據(jù)占據(jù)閃存105的空間,使得閃存105的可寫(xiě)入空間變少。
[0007]當(dāng)閃存105中的使用區(qū)塊越來(lái)越多而空白區(qū)塊越來(lái)越少時(shí),就必須要進(jìn)行垃圾搜集動(dòng)作(garbage collect1n)。一般來(lái)說(shuō),當(dāng)閃存105中空白區(qū)塊的數(shù)目下降到達(dá)一臨界數(shù)目(threshold number)時(shí),控制單元101即啟動(dòng)垃圾搜集動(dòng)作。垃圾搜集動(dòng)作主要的目的在于釋放出使用區(qū)塊中無(wú)效數(shù)據(jù)的存儲(chǔ)空間,讓閃存105可以繼續(xù)存儲(chǔ)主機(jī)12輸入的寫(xiě)入數(shù)據(jù)。
[0008]請(qǐng)參照?qǐng)D2,其所繪示為現(xiàn)有垃圾搜集動(dòng)作示意圖。假設(shè)使用區(qū)塊C(Bl0Ck_C)中的數(shù)據(jù)Dl為有效數(shù)據(jù),數(shù)據(jù)D2為無(wú)效數(shù)據(jù),而區(qū)塊d(Block_d)為空白區(qū)塊。當(dāng)控制單元101針對(duì)使用區(qū)塊c (Block_c)進(jìn)行垃圾搜集動(dòng)作時(shí),使用區(qū)塊c (Block_c)中的有效數(shù)據(jù)Dl會(huì)先被搬移至空白區(qū)塊d(Block_d)中成為有效數(shù)據(jù)D1’。在寫(xiě)入有效數(shù)據(jù)D1’后,空白區(qū)塊d (Block_d)轉(zhuǎn)變?yōu)橐皇褂脜^(qū)塊d (Block_d),接著,將使用區(qū)塊c (Block_c)中的所有數(shù)據(jù)設(shè)定為無(wú)效數(shù)據(jù)。最后,將使用區(qū)塊c(Bl0ck_c)抹除成為一個(gè)新的空白區(qū)塊c(Block_c),即完成一次垃圾搜集動(dòng)作。
[0009]換句話說(shuō),在垃圾搜集動(dòng)作后,區(qū)塊C(Bl0Ck_C)將成為一個(gè)新的空白區(qū)塊,而使用區(qū)塊d(Block_d)中尚有其他空白空間B (free space)可以用來(lái)存儲(chǔ)數(shù)據(jù)。也就是說(shuō),進(jìn)行垃圾搜集動(dòng)作后,空白空間B即為一釋放空間,供主機(jī)12來(lái)繼續(xù)存儲(chǔ)數(shù)據(jù),該空白空間B的大小是小于一空白區(qū)塊的大小。
[0010]然而,上述的垃圾搜集動(dòng)作后,使用區(qū)塊中無(wú)效數(shù)據(jù)所獲得的空白空間(釋放空間)小于一個(gè)區(qū)塊的空間。當(dāng)主機(jī)12寫(xiě)入閃存105的數(shù)據(jù)量很大時(shí),需要提出效率更好的垃圾搜集動(dòng)作的控制方法。
【發(fā)明內(nèi)容】
[0011]本發(fā)明是有關(guān)于一種固態(tài)存儲(chǔ)裝置中垃圾搜集動(dòng)作的控制方法,包括下列步驟:(a)在該固態(tài)存儲(chǔ)裝置執(zhí)行一垃圾搜集動(dòng)作時(shí),判斷一主機(jī)發(fā)出的一寫(xiě)入指令;(b)當(dāng)該寫(xiě)入指令不是一連續(xù)寫(xiě)入指令時(shí),執(zhí)行一第一類(lèi)型的垃圾搜集動(dòng)作,用以釋放出該閃存中小于一空白區(qū)塊的釋放空間后,執(zhí)行該寫(xiě)入指令并將一寫(xiě)入數(shù)據(jù)存儲(chǔ)于該閃存;以及(C)當(dāng)該寫(xiě)入指令是該連續(xù)寫(xiě)入指令時(shí),執(zhí)行一第二類(lèi)型的垃圾搜集動(dòng)作,用以釋放出該閃存中大于該空白區(qū)塊的釋放空間后,執(zhí)行該寫(xiě)入指令并將該寫(xiě)入數(shù)據(jù)存儲(chǔ)于該閃存。
[0012]本發(fā)明是有關(guān)于一種固態(tài)存儲(chǔ)裝置,連接至一主機(jī),包括:一閃存,具有多個(gè)區(qū)塊;以及一控制單元,接收該主機(jī)的一寫(xiě)入指令并將一寫(xiě)入數(shù)據(jù)存儲(chǔ)于該閃存;其中,在執(zhí)行一垃圾搜集動(dòng)作時(shí),該控制單元判斷該寫(xiě)入指令;當(dāng)該寫(xiě)入指令不是一連續(xù)寫(xiě)入指令時(shí),執(zhí)行一第一類(lèi)型的垃圾搜集動(dòng)作,用以釋放出該閃存中小于一空白區(qū)塊的釋放空間后,將該寫(xiě)入數(shù)據(jù)存儲(chǔ)于該閃存;以及,當(dāng)該寫(xiě)入指令是該連續(xù)寫(xiě)入指令時(shí),執(zhí)行一第二類(lèi)型的垃圾搜集動(dòng)作,用以釋放出該閃存中大于該空白區(qū)塊的釋放空間后,將該寫(xiě)入數(shù)據(jù)存儲(chǔ)于該閃存。
[0013]為了對(duì)本發(fā)明的上述及其他方面有更好的了解,下文特舉優(yōu)選實(shí)施例,并配合所附附圖,作詳細(xì)說(shuō)明如下:
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0014]圖1所繪示為現(xiàn)有固態(tài)存儲(chǔ)裝置的示意圖。
[0015]圖2所繪示為現(xiàn)有垃圾搜集動(dòng)作示意圖。
[0016]圖3所繪示為本發(fā)明樣式的垃圾搜集動(dòng)作示意圖。
[0017]圖4所繪示為本發(fā)明固態(tài)存儲(chǔ)裝置中垃圾搜集動(dòng)作的控制方法。
[0018]【符號(hào)說(shuō)明】
[0019]10:固態(tài)存儲(chǔ)裝置;
[0020]12:主機(jī);
[0021]20:外部總線;
[0022]101:控制單元;
[0023]105:閃存;
[0024]107:內(nèi)部總線;
[0025]步驟S401?S409:步驟流程。
【具體實(shí)施方式】
[0026]本發(fā)明最主要的目的是提出一種固態(tài)存儲(chǔ)裝置中垃圾搜集動(dòng)作的控制方法,其運(yùn)用于圖1的固態(tài)存儲(chǔ)裝置10。而以下的范例都以圖1的固態(tài)存儲(chǔ)裝來(lái)進(jìn)說(shuō)明,但并不限定于此。
[0027]由于現(xiàn)有樣式的垃圾搜集動(dòng)作,所獲得的釋放空間會(huì)小于一個(gè)區(qū)塊的空間。當(dāng)主機(jī)12寫(xiě)入閃存105的數(shù)據(jù)量少時(shí),現(xiàn)有樣式的垃圾搜集動(dòng)作后所獲得的釋放空間尚可用來(lái)存儲(chǔ)主機(jī)12的數(shù)據(jù)。然而,當(dāng)主機(jī)12寫(xiě)入閃存105的數(shù)據(jù)量大時(shí)(例如大于一個(gè)空白區(qū)塊的空間),現(xiàn)有樣式的垃圾搜集動(dòng)作后所獲得的釋放空間將不足以存儲(chǔ)主機(jī)12的數(shù)據(jù)。此時(shí),控制單元101可能需要多次進(jìn)行現(xiàn)有樣式的垃圾搜集動(dòng)作,并獲得更多釋放空間來(lái)存儲(chǔ)主機(jī)12輸出的寫(xiě)入數(shù)據(jù)量。如此,將造成固態(tài)存儲(chǔ)裝置10寫(xiě)入時(shí)間增加,寫(xiě)入效率變低。
[0028]請(qǐng)參照?qǐng)D3,其所繪示為本發(fā)明樣式的垃圾搜集動(dòng)作示意圖。假設(shè)使用區(qū)塊e(Block_e)中的數(shù)據(jù)Dl為有效數(shù)據(jù),數(shù)據(jù)D2為無(wú)效數(shù)據(jù);使用區(qū)塊f (Block_f)中的數(shù)據(jù)D3為有效數(shù)據(jù),數(shù)據(jù)D4為無(wú)效數(shù)據(jù);且區(qū)塊g(Block_g為空白區(qū)塊。
[0029]當(dāng)控制單元101進(jìn)行本發(fā)明樣式的垃圾搜集動(dòng)作時(shí),使用區(qū)塊e(Bl0Ck_e)中的有效數(shù)據(jù)Dl以及使用區(qū)塊f(Block_f)中的有效數(shù)據(jù)D3會(huì)先被搬移至空白區(qū)塊g(Block_g)中成為有效數(shù)據(jù)D1’與D3’。接著,將使用區(qū)塊e(Block_e)以及使用區(qū)塊f (Block_f)中的所有數(shù)據(jù)設(shè)定為無(wú)效數(shù)據(jù)。最后,將使用區(qū)塊e(Block_e)與使用區(qū)塊f(BloCk_f)抹除成為二個(gè)新的空白區(qū)塊e(Block_e)與空白區(qū)塊f(Block_f),即完成一次本發(fā)明樣式的垃圾搜集動(dòng)作。
[0030]換句話說(shuō),在本發(fā)明樣式的垃圾搜集動(dòng)作后,區(qū)塊e(Bl0Ck_e)與區(qū)塊f (Block_f)將成為二個(gè)新的空白區(qū)塊,且使用區(qū)塊g(Block_g)中尚有其他空白空間B可以用來(lái)存儲(chǔ)數(shù)據(jù)。也就是說(shuō),進(jìn)行本發(fā)明樣式的垃圾搜集動(dòng)作后,其釋放空間將包括完整的一個(gè)區(qū)塊以及空白空間B供主機(jī)12來(lái)繼續(xù)存儲(chǔ)數(shù)據(jù),該釋放空間是大于一空白區(qū)塊的大小。
[0031]當(dāng)然,上述本發(fā)明樣式的垃圾搜集動(dòng)作,是將二個(gè)使用區(qū)塊中的有效數(shù)據(jù)轉(zhuǎn)存至一個(gè)空白區(qū)塊后,抹除二個(gè)使用區(qū)塊。因此,與傳統(tǒng)垃圾搜集動(dòng)作相比,至少可釋放出完整的一個(gè)區(qū)塊作為釋放空間。當(dāng)然,控制單元101也可以搜尋閃存105中,M個(gè)有效數(shù)據(jù)較少的使用區(qū)塊,并將M個(gè)使用區(qū)塊中的有效數(shù)據(jù)轉(zhuǎn)存至一空白區(qū)塊后,抹除M個(gè)使用區(qū)塊成為M個(gè)空白區(qū)塊。此時(shí),本發(fā)明樣式的垃圾搜集動(dòng)作至少可釋放出完整的(M-1)個(gè)區(qū)塊供主機(jī)12來(lái)繼續(xù)存儲(chǔ)數(shù)據(jù)。
[0032]很明顯地,相比于現(xiàn)有樣式的垃圾搜集動(dòng)作,本發(fā)明樣式的垃圾搜集動(dòng)作可一次獲得更大的空間供主機(jī)12來(lái)繼續(xù)存儲(chǔ)數(shù)據(jù)。
[0033]然而,由于控制單元101執(zhí)行本發(fā)明樣式的垃圾搜集動(dòng)作時(shí),需要搜尋更多使用區(qū)塊中有效數(shù)據(jù)的信息,并且搬移多個(gè)使用區(qū)塊中的有效數(shù)據(jù)。因此,本發(fā)明樣式的垃圾搜集動(dòng)作所耗費(fèi)的時(shí)間會(huì)比現(xiàn)有樣式的垃圾搜集動(dòng)作還要長(zhǎng)。
[0034]本發(fā)明根據(jù)上述二種類(lèi)型的垃圾搜集動(dòng)作的特性,進(jìn)一步提出一種固態(tài)存儲(chǔ)裝置中垃圾搜集動(dòng)作的控制方法。以下的說(shuō)明將現(xiàn)有樣式的垃圾搜集動(dòng)作稱(chēng)為第一類(lèi)型的垃圾搜集動(dòng)作(first type of garbage collect1n),本發(fā)明樣式的垃圾搜集動(dòng)作稱(chēng)為第二類(lèi)型的垃圾搜集動(dòng)作(second type of garbage collect1n)。
[0035]請(qǐng)參照?qǐng)D4,其所繪示為本發(fā)明固態(tài)存儲(chǔ)裝置中垃圾搜集動(dòng)作的控制方法。當(dāng)固態(tài)存儲(chǔ)裝置10在正常操作時(shí),控制單元101會(huì)根據(jù)主機(jī)12發(fā)出的寫(xiě)入指令將寫(xiě)入數(shù)據(jù)存儲(chǔ)于閃存105。因此,使用區(qū)塊會(huì)越來(lái)越多,而空白區(qū)塊越來(lái)越少。
[0036]當(dāng)閃存105中空白區(qū)塊的數(shù)目下降到達(dá)一臨界數(shù)目時(shí),控制單元101即執(zhí)行垃圾搜集動(dòng)作(步驟S401)。否則,固態(tài)存儲(chǔ)裝置10繼續(xù)等待執(zhí)行垃圾搜集動(dòng)作的時(shí)機(jī)。當(dāng)然,本發(fā)明并不限定控制單元101執(zhí)行垃圾搜集動(dòng)作的時(shí)機(jī),控制單元101也可以在滿足特定條件下執(zhí)行垃圾搜集動(dòng)作。例如,閃存105中使用區(qū)塊與空白區(qū)塊的比例到達(dá)一臨界比例時(shí),控制單元101執(zhí)行垃圾搜集動(dòng)作。
[0037]—般來(lái)說(shuō),當(dāng)主機(jī)12發(fā)出寫(xiě)入指令時(shí),根據(jù)主機(jī)12發(fā)的邏輯區(qū)塊地址(logicalblock address,簡(jiǎn)稱(chēng)LBA),即可決定寫(xiě)入指令為連續(xù)寫(xiě)入指令(sequential writecommand)或者為隨機(jī)寫(xiě)入指令(random write command)。舉例來(lái)說(shuō),當(dāng)主機(jī)12發(fā)出寫(xiě)入指令將一寫(xiě)入數(shù)據(jù)存儲(chǔ)于k個(gè)連續(xù)LBA (例如LBA_1?LBA_k)中且該寫(xiě)入數(shù)據(jù)超過(guò)一個(gè)特定數(shù)據(jù)量時(shí),則視為主機(jī)12發(fā)出連續(xù)寫(xiě)入指令。反之,則視為主機(jī)12發(fā)出隨機(jī)寫(xiě)入指令。當(dāng)然,上述特定數(shù)據(jù)量可以根據(jù)實(shí)際的需求來(lái)設(shè)定,可設(shè)定為一個(gè)空白區(qū)塊的空間,或者一個(gè)空白區(qū)塊80%的空間。
[0038]根據(jù)本發(fā)明的實(shí)施例,當(dāng)控制單元101判斷出主機(jī)12發(fā)出連續(xù)寫(xiě)入指令(步驟S403)時(shí),則執(zhí)行第二類(lèi)型的垃圾搜集動(dòng)作(步驟S405)。并且,在完成第二類(lèi)型的垃圾搜集動(dòng)作后,執(zhí)行主機(jī)12發(fā)出的寫(xiě)入指令(步驟S409)。
[0039]或者,當(dāng)控制單元101判斷出主機(jī)12不是發(fā)出連續(xù)寫(xiě)入指令(步驟S403)時(shí),則執(zhí)行第一類(lèi)型的垃圾搜集動(dòng)作(步驟S407)。并且,在完成第一類(lèi)型的垃圾搜集動(dòng)作后,執(zhí)行主機(jī)12發(fā)出的寫(xiě)入指令(步驟S409)。
[0040]由以上的說(shuō)明可知,當(dāng)主機(jī)12發(fā)出隨機(jī)寫(xiě)入指令時(shí),由于寫(xiě)入數(shù)據(jù)量不大。因此,控制單元101執(zhí)行第一類(lèi)型的垃圾搜集動(dòng)作,并釋放少于一個(gè)空白區(qū)塊的空間來(lái)存儲(chǔ)寫(xiě)入數(shù)據(jù)即可。此時(shí),控制單元101執(zhí)行該寫(xiě)入指令時(shí),即可將寫(xiě)入數(shù)據(jù)存儲(chǔ)于該閃存105的釋放空間。如此,將可以快速地完成該寫(xiě)入指令。
[0041]反之,假設(shè)主機(jī)12發(fā)出連續(xù)寫(xiě)入指令,其寫(xiě)入數(shù)據(jù)量大于一個(gè)空白區(qū)塊的空間時(shí),控制單元101利用第二類(lèi)型的垃圾搜集動(dòng)作,并釋放出至少一個(gè)完整的空白區(qū)塊作為釋放空間來(lái)繼續(xù)存儲(chǔ)數(shù)據(jù)。也就是,控制單元101執(zhí)行該寫(xiě)入指令時(shí),即可將寫(xiě)入數(shù)據(jù)存儲(chǔ)于該固態(tài)存儲(chǔ)裝置的釋放空間。也就是,至少有一個(gè)空白區(qū)塊被用來(lái)存儲(chǔ)寫(xiě)入數(shù)據(jù)中的一部分,而形成第一使用區(qū)塊。當(dāng)該連續(xù)寫(xiě)入的寫(xiě)入數(shù)據(jù)被更新時(shí),先前的該第一使用區(qū)塊中的數(shù)據(jù)將全部被設(shè)定為無(wú)效數(shù)據(jù)。此時(shí),控制單元101僅需抹除該第一使用區(qū)塊即可,而不需要針對(duì)該第一使用區(qū)塊去執(zhí)行垃圾搜集動(dòng)作。因此,可以省去控制單元101執(zhí)行垃圾搜集動(dòng)作所需的時(shí)間。
[0042]由以上的說(shuō)明可知,本發(fā)明提出一種固態(tài)存儲(chǔ)裝置中垃圾搜集動(dòng)作的控制方法。根據(jù)主機(jī)12發(fā)出寫(xiě)入指令為連續(xù)寫(xiě)入指令或者隨機(jī)寫(xiě)入指令來(lái)決定垃圾搜集動(dòng)作的樣式。讓控制單元101更有效率的管理閃存105。
[0043]綜上所述,雖然本發(fā)明已以?xún)?yōu)選實(shí)施例揭露如上,然其并非用以限定本發(fā)明。本發(fā)明所屬【技術(shù)領(lǐng)域】中普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作各種的更改與修飾。因此,本發(fā)明的保護(hù)范圍當(dāng)視權(quán)利要求所界定者為準(zhǔn)。
【權(quán)利要求】
1.一種固態(tài)存儲(chǔ)裝置中垃圾搜集動(dòng)作的控制方法,其特征在于,包括下列步驟: (a)在該固態(tài)存儲(chǔ)裝置執(zhí)行一垃圾搜集動(dòng)作時(shí),判斷一主機(jī)發(fā)出的一寫(xiě)入指令; (b)當(dāng)該寫(xiě)入指令不是一連續(xù)寫(xiě)入指令時(shí),執(zhí)行一第一類(lèi)型的垃圾搜集動(dòng)作,用以釋放出一閃存中小于一空白區(qū)塊的釋放空間后,執(zhí)行該寫(xiě)入指令并將一寫(xiě)入數(shù)據(jù)存儲(chǔ)于該閃存;以及 (C)當(dāng)該寫(xiě)入指令是該連續(xù)寫(xiě)入指令時(shí),執(zhí)行一第二類(lèi)型的垃圾搜集動(dòng)作,用以釋放出該閃存中大于該空白區(qū)塊的釋放空間后,執(zhí)行該寫(xiě)入指令并將該寫(xiě)入數(shù)據(jù)存儲(chǔ)于該閃存。
2.根據(jù)權(quán)利要求1所述的控制方法,其中當(dāng)該閃存中該空白區(qū)塊的數(shù)目下降到達(dá)一臨界數(shù)目時(shí),執(zhí)行該垃圾搜集動(dòng)作。
3.根據(jù)權(quán)利要求1所述的控制方法,其中該主機(jī)發(fā)出該寫(xiě)入指令將該寫(xiě)入數(shù)據(jù)存儲(chǔ)于多個(gè)連續(xù)邏輯區(qū)塊地址中,且該寫(xiě)入數(shù)據(jù)超過(guò)一個(gè)特定數(shù)據(jù)量時(shí),則該寫(xiě)入指令為該連續(xù)寫(xiě)入指令。
4.根據(jù)權(quán)利要求1所述的控制方法,其中執(zhí)行該第一類(lèi)型的垃圾搜集動(dòng)作包括下列步驟: (bl)搜尋該閃存中的多個(gè)區(qū)塊,獲得一第一使用區(qū)塊,其中該第一使用區(qū)塊中存儲(chǔ)的數(shù)據(jù)包括一第一部分的一有效數(shù)據(jù)以及一第二部分的一無(wú)效數(shù)據(jù); (b2)將該第一使用區(qū)塊中該第一部分的該有效數(shù)據(jù)存儲(chǔ)于該閃存中的一空白區(qū)塊;以及 (b3)抹除該第一使用區(qū)塊。
5.根據(jù)權(quán)利要求1所述的控制方法,其中執(zhí)行該第二類(lèi)型的垃圾搜集動(dòng)作包括下列步驟: (Cl)搜尋該閃存中的多個(gè)區(qū)塊,獲得一第一使用區(qū)塊以及一第二使用區(qū)塊,其中該第一使用區(qū)塊中存儲(chǔ)的數(shù)據(jù)包括一第一部分的一有效數(shù)據(jù)以及一第二部分的一無(wú)效數(shù)據(jù),該第二使用區(qū)塊中存儲(chǔ)的數(shù)據(jù)包括一第一部分的一有效數(shù)據(jù)以及一第二部分的一無(wú)效數(shù)據(jù); (c2)將該第一使用區(qū)塊中該第一部分的該有效數(shù)據(jù)以及該第二使用區(qū)塊中該第一部分的該有效數(shù)據(jù)存儲(chǔ)于該閃存中的一空白區(qū)塊;以及(c3)抹除該第一使用區(qū)塊與該第二使用區(qū)塊。
6.一種固態(tài)存儲(chǔ)裝置,其特征在于,連接至一主機(jī),包括: 一閃存,具有多個(gè)區(qū)塊;以及 一控制單元,接收該主機(jī)的一寫(xiě)入指令并將一寫(xiě)入數(shù)據(jù)存儲(chǔ)于該閃存; 其中,在執(zhí)行一垃圾搜集動(dòng)作時(shí),該控制單元判斷該寫(xiě)入指令;當(dāng)該寫(xiě)入指令不是一連續(xù)寫(xiě)入指令時(shí),執(zhí)行一第一類(lèi)型的垃圾搜集動(dòng)作,用以釋放出該閃存中小于一空白區(qū)塊的釋放空間后,將該寫(xiě)入數(shù)據(jù)存儲(chǔ)于該閃存;以及,當(dāng)該寫(xiě)入指令是該連續(xù)寫(xiě)入指令時(shí),執(zhí)行一第二類(lèi)型的垃圾搜集動(dòng)作,用以釋放出該閃存中大于該空白區(qū)塊的釋放空間后,將該寫(xiě)入數(shù)據(jù)存儲(chǔ)于該閃存。
7.根據(jù)權(quán)利要求6所述的固態(tài)存儲(chǔ)裝置,其中當(dāng)該閃存中該空白區(qū)塊的數(shù)目下降到達(dá)一臨界數(shù)目時(shí),該控制單元執(zhí)行該垃圾搜集動(dòng)作。
8.根據(jù)權(quán)利要求6所述的固態(tài)存儲(chǔ)裝置,其中該主機(jī)發(fā)出該寫(xiě)入指令將該寫(xiě)入數(shù)據(jù)存儲(chǔ)于多個(gè)連續(xù)邏輯區(qū)塊地址中,且該寫(xiě)入數(shù)據(jù)超過(guò)一個(gè)特定數(shù)據(jù)量時(shí),則控制單元決定該寫(xiě)入指令為該連續(xù)寫(xiě)入指令。
9.根據(jù)權(quán)利要求6所述的固態(tài)存儲(chǔ)裝置,其中該控制單元執(zhí)行該第一類(lèi)型的垃圾搜集動(dòng)作時(shí),搜尋該閃存中的多個(gè)區(qū)塊,獲得一第一使用區(qū)塊,其中該第一使用區(qū)塊中存儲(chǔ)的數(shù)據(jù)包括一第一部分的一有效數(shù)據(jù)以及一第二部分的一無(wú)效數(shù)據(jù);將該第一使用區(qū)塊中該第一部分的該有效數(shù)據(jù)存儲(chǔ)于該閃存中的一空白區(qū)塊;以及,抹除該第一使用區(qū)塊。
10.根據(jù)權(quán)利要求6所述的固態(tài)存儲(chǔ)裝置,其中該控制單元執(zhí)行該第二類(lèi)型的垃圾搜集動(dòng)作時(shí),搜尋該閃存中的多個(gè)區(qū)塊,獲得一第一使用區(qū)塊以及一第二使用區(qū)塊,其中該第一使用區(qū)塊中存儲(chǔ)的數(shù)據(jù)包括一第一部分的一有效數(shù)據(jù)以及一第二部分的一無(wú)效數(shù)據(jù),該第二使用區(qū)塊中存儲(chǔ)的數(shù)據(jù)包括一第一部分的一有效數(shù)據(jù)以及一第二部分的一無(wú)效數(shù)據(jù);將該第一使用區(qū)塊中該第一部分的該有效數(shù)據(jù)以及該第二使用區(qū)塊中該第一部分的該有效數(shù)據(jù)存儲(chǔ)于該閃存中的一空白區(qū)塊;以及抹除該第一使用區(qū)塊與該第二使用區(qū)塊。
【文檔編號(hào)】G06F12/02GK104298606SQ201310300464
【公開(kāi)日】2015年1月21日 申請(qǐng)日期:2013年7月17日 優(yōu)先權(quán)日:2013年7月17日
【發(fā)明者】李嘉倫 申請(qǐng)人:光寶科技股份有限公司