固態儲存裝置中高速緩存的管理方法
【專利摘要】一種運用于固態儲存裝置中高速緩存的管理方法,包括下列步驟:于該固態儲存裝置決定執行一垃圾搜集操作時,將一高速緩存的儲存空間區分為多個部分;設定該高速緩存中一第一部分儲存空間作為一垃圾搜集用途;以及設定該高速緩存中一第二部分儲存空間作為一寫入用途。
【專利說明】固態儲存裝置中高速緩存的管理方法
【技術領域】
[0001]本發明是有關于一種固態儲存裝置的控制方法,且特別是有關于一種固態儲存裝置中高速緩存的管理方法。
【背景技術】
[0002]請參照圖1,其所繪示為已知儲存裝置(81:01'叫6 (16^106)示意圖。儲存裝置10連接至主機(1100) 12,可接收主機10發出的讀取指令或者寫入指令。其中,主機12可為計算機主機,儲存裝置10可為硬式磁盤驅動器(他!^ (1180或者光驅⑴的丨⑶丨(^;!^^)。
[0003]儲存裝置10中包括一控制單元101、一高速緩存103與一儲存元件105。其中,控制單元101利用一外部總線20與主機12之間進行指令與數據的傳遞。而控制單元101根據主機的指令,以存取儲存元件105中的數據。再者,高速緩存111011101-7) 103連接至控制單元101用以暫時儲存主機20輸入的寫入數據、以及主機20要求的讀取數據。
[0004]另外,外部總線20可為…8總線、12221394總線或5八7八總線等等。而儲存元件105可為光盤片或者磁盤片。
[0005]眾所周知,高速緩存103可用來暫時儲存主機20輸入的寫入數據、以及主機20要求的讀取數據。舉例來說,當主機12發出寫入指令以及對應的寫入數據至儲存裝置10時,控制單元101會先將寫入數據暫存于高速緩存103中。之后,控制單元101會處理寫入數據(例如產生2(1:碼),并且將寫入數據儲存于儲存元件105。或者,當主機12發出讀取指令至儲存裝置10時,控制單元101會將儲存元件105中的讀取數據先暫存于高速緩存103中。之后,控制單元101再將讀取數據輸出至主機12。
[0006]由以上的說明可知,當主機12發出寫入指令時,高速緩存103是作為寫入用途用以暫存寫入數據。當主機12發出讀取指令時,高速緩存103是作為讀取用途用以暫存讀取數據。
[0007]近幾年來,一種新的固態儲存裝置(3011(1 81:81:6簡稱330)逐漸流行,其可取代已知硬式磁盤驅動器(他!^ (1180 或者光驅⑴的丨⑶丨(^;!^^)。
[0008]固態儲存裝置(3011(1義01~叫6 1)6^106)內部使用與非門閃存(嫩冊打已吐111611101-7)為儲存元件,而此類的儲存元件為一種非易失性16)的存儲器元件。也就是說,當數據寫入閃存后,一旦系統電源關閉,數據仍保存在固態儲存裝置中。
[0009]由于儲存元件的差異,固態儲存裝置中的高速緩存需要有另外的管理方式,以提高固態儲存裝置的效率。
【發明內容】
[0010]本發明是有關于一種運用于固態儲存裝置中高速緩存的管理方法,包括下列步驟:于該固態儲存裝置決定執行一垃圾搜集操作時,將一高速緩存的儲存空間區分為多個部分;設定該高速緩存中一第一部分儲存空間作為一垃圾搜集用途;以及設定該高速緩存中一第二部分儲存空間作為一寫入用途。
[0011]本發明是有關于一種運用于固態儲存裝置中高速緩存的管理方法,包括下列步驟:(a)于該固態儲存裝置尚未執行一垃圾搜集操作時,根據一主機的一存取指令將一高速緩存作為一寫入用途或者一讀取用途;(b)于該固態儲存裝置決定執行一垃圾搜集操作時,設定該高速緩存中一第一部分儲存空間作為一垃圾搜集用途,以及設定該高速緩存中一第二部分儲存空間作為該寫入用途;以及(c)當該固態儲存裝置完成該垃圾搜集操作時,回到步驟(a)。
[0012]本發明是有關于一種固態儲存裝置,連接至一主機,該固態儲存裝置包括:一控制單元,連接至該主機用以接收該主機發出的一存取指令;一閃存,連接至該控制單元;以及一高速緩存,連接至該控制單元;其中,當該控制單元決定執行一垃圾搜集操作時,設定該高速緩存中一第一部分儲存空間作為一垃圾搜集用途,并設定該高速緩存中一第二部分儲存空間作為一寫入用途。
[0013]為了對本發明的上述及其它方面有更佳的了解,下文特舉較佳實施例,并配合所附圖式,作詳細說明如下。
【專利附圖】
【附圖說明】
[0014]圖1所繪示為已知儲存裝置示意圖。
[0015]圖2所繪示為固態儲存裝置的示意圖。
[0016]圖3所繪示為垃圾搜集操作示意圖。
[0017]圖4所繪示為固態儲存裝置在執行寫入指令時進行垃圾搜集操作時的寫入速度示意圖。
[0018]圖5A所繪示為本發明運用于固態儲存裝置中高速緩存的管理方法。
[0019]圖5B所繪示為根據本發明實施例的固態儲存裝置在執行寫入指令時進行垃圾搜集操作時的寫入速度示意圖。
[0020]圖6所繪示為本發明固態儲存裝置運作時高速緩存的管理方法。
[0021][標號說明]
[0022]10:儲存裝置12:主機
[0023]20:外部總線101:控制單元
[0024]103:高速緩存105:儲存元件
[0025]210:固態儲存裝置212:主機
[0026]220:外部總線201:控制單元
[0027]203:高速緩存205:閃存
[0028]S502?S508:步驟流程S601?S612:步驟流程
【具體實施方式】
[0029]請參照圖2,其所繪示為固態儲存裝置的示意圖。固態儲存裝置210中包括一控制單元201、一高速緩存203與一閃存205。控制單元201與閃存205之間利用一內部總線207進行數據的存取,而控制單元201利用一外部總線220與主機212之間進行指令與數據的傳遞。再者,高速緩存103連接至控制單元101用以暫時儲存主機220輸入的寫入數據、以及主機220要求的讀取數據。其中,外部總線220可為USB總線、IEEE1394總線或SATA> H1、-rf* -rf* o
[0030]由于固態儲存裝置210與傳統的硬式磁盤驅動器或者光驅中的儲存元件的材料特性差異,其數據儲存方式也有極大的不同。
[0031]固態儲存裝置210中的閃存205包括許多區塊(block),而每個區塊中又包括多個頁(page)。例如,一個區塊中有64頁,而每個頁的容量為4K bytes。再者,由于閃存205的特性,每次數據寫入時是以頁為最小單位,而每次抹除(erase)時則是以區塊為單位進行數據抹除。
[0032]基本上,在閃存205中,尚未儲存數據的區塊稱為空白區塊(free block);而已經儲存數據的區塊則稱為使用區塊(used block)。當使用區塊中的數據全部都是無效數據時,該使用區塊即可被抹除并成為空白區塊。而空白區塊即可再次被用來儲存數據。
[0033]由于閃存205經過長時間的存取之后,幾乎每個使用區塊中都會涵蓋著有效數據以及無效數據。然而,只要使用區塊中還存在有效數據時,該使用區塊即無法被抹除為空白區塊。因此,會造成太多的無效數據占據閃存205的空間,使得閃存205的可寫入空間變少。
[0034]當閃存205中的使用區塊越來越多而空白區塊越來越少時,就必須要進行垃圾搜集動作(garbage collect1n)。一般來說,當閃存205中空白區塊的數目下降到達一臨限數目(threshold number)時,控制單元201即啟動垃圾搜集動作。垃圾搜集動作主要的目的在于釋放出使用區塊中無效數據的儲存空間,讓閃存205可以繼續儲存主機212輸入的寫入數據。
[0035]請參照圖3,其所繪示為垃圾搜集動作示意圖。假設使用區塊C(Bl0Ck_C)中的數據D1為有效數據,數據D2為無效數據,而區塊d(Block_d)為空白區塊。如步驟l(st印1)所示,假設控制單元101經過搜尋后,決定針對使用區塊c(Bl0Ck_C)進行垃圾搜集動作。此時,如步驟2(st印2)所示,控制單元201會將使用區塊C(Bl0Ck_C)中的有效數據D1寫入空白區塊d(Block_d)中成為有效數據D1’。在寫入有效數據D1’后,空白區塊d(Block_d)轉變為一使用區塊d(Block_d)。接著,將使用區塊C(Bl0Ck_C)中的所有數據設定為無效數據。最后,如步驟3(st印3)所示,將使用區塊C(Bl0Ck_C)抹除成為一個新的空白區塊c (Block_c),即完成一次垃圾搜集動作。
[0036]換句話說,于垃圾搜集動作后,區塊C(Bl0Ck_C)將成為一個新的空白區塊,而使用區塊d(Block_d)中尚有其它空白空間B (free space)可以用來儲存數據。也就是說,進行垃圾搜集動作后,空白空間B即為一釋放空間,供主機12來繼續儲存數據,該空白空間B的大小是小于一空白區塊的大小。
[0037]在上述的垃圾搜集動作過程的步驟2(step2)中,控制單元201將使用區塊c (Block_c)中的有效數據D1寫入空白區塊d(Block_d)中成為有效數據D1’。在此步驟的過程中,控制單元201需要先將使用區塊C(Bl0Ck_C)中的有效數據D1暫時儲存于高速緩存203。之后,再讀取高速緩存203中的有效數據D1,并寫入空白區塊d(Block_d)中成為有效數據D1’。
[0038]由上述的說明可知,固態儲存裝置210中的高速緩存203可作為寫入用途用以暫存寫入數據、作為讀取用途用以暫存讀取數據、以及作為垃圾搜集用途用以暫存閃存205中的搬移數據。
[0039]請參照圖4,其所繪示為固態儲存裝置在執行寫入指令時進行垃圾搜集動作時的寫入速度示意圖。當固態儲存裝置210在執行寫入指令時,高速緩存203是作為寫入用途,用以暫存寫入數據。此時的寫入速度幾乎維持在一個最高速度(11)。上述的最高速度(11)是相關于高速緩存203的容量以及控制單元201的操作速度。
[0040]然而,于時間點時,閃存205中空白區塊的數目下降到達一臨限數目(1:111-681101(1 11111111361-)時,控制單元201必須啟動垃圾搜集動作。換句話說,于時間點1: 1時,控制單元201暫時無法執行主機的寫入指令,并且必須執行垃圾搜集動作用以釋放出使用區塊中無效數據的儲存空間,讓閃存205可以繼續執行寫入指令,并且儲存主機212輸入的寫入數據。
[0041]于時間點至〖2之間,控制單元201執行垃圾搜集動作,此時的高速緩存203是作為垃圾搜集用途,用以暫存閃存205中的搬移數據。因此,固態儲存裝置210的寫入速度下降至(12),例如8600
[0042]于時間點12,控制單元201完成垃圾搜集動作,并且釋放出儲存空間用以繼續執行寫入指令。因此,時間點12至13之間,高速緩存203是作為寫入用途,而此時的寫入速度會回到最高速度(11)。
[0043]同理,時間點1:3至1:4之間、時間點1:5至1:6之間、以及時間點1:7至1:8之間,控制單元201執行垃圾搜集動作。因此,固態儲存裝置210的寫入速度會再次下降至(12),例如087^6/8600而控制單元201在執行寫入指令時,固態儲存裝置210的寫入速度會再次上升至(11)。
[0044]由以上的說明可知,當固態儲存裝置210的控制單元201在執行寫入指令時進行垃圾搜集動作時,將會造成寫入速度斷斷續續的現象發生。而在使用者端,會覺得固態儲存裝置210耗費很長的時間執行部分寫入指令。因此,造成固態儲存裝置210的效能在單位時間內急遽降低。
[0045]同理,當固態儲存裝置210的控制單元201在執行讀取指令時進行垃圾搜集動作時,也會造成讀取速度斷斷續續的現象發生,造成固態儲存裝置210的效能在單位時間內急遽降低。
[0046]請參照圖5八,其所繪示為本發明運用于固態儲存裝置中高速緩存的管理方法。請參照圖58,其所繪示為根據本發明實施例的固態儲存裝置在執行寫入指令時進行垃圾搜集動作時的寫入速度示意圖。而運用本發明可以維持固態儲存裝置210維持在較平穩的效倉泛。
[0047]如圖5八所示,當固態儲存裝置210的控制單元201決定執行垃圾搜集動作(步驟8502)時,將高速緩存203的儲存空間區分為多個部分(步驟3504)。接著,設定高速緩存203第一部分的儲存空間作為垃圾搜集用途(步驟3506);以及,設定高速緩存203第二部分的儲存空間作為寫入用途(步驟3506)。
[0048]根據上述方式來區分高速緩存203。當固態儲存裝置210的控制單元201在進行垃圾搜集動作時,可以利用第一部分的儲存空間來暫存閃存205中的搬移數據。同時,如果固態儲存裝置210的控制單元201收到主機212所發出的寫入指令時,亦可以利用高速緩存203第二部分的儲存空間來暫存寫入數據。因此,在固態儲存裝置210的控制單元201在進行垃圾搜集動作時,控制單元201仍舊可以利用第二部分的儲存空間來暫存寫入數據并執行寫入指令。
[0049]因此,如圖58所示,當固態儲存裝置210在執行寫入指令時,高速緩存203是作為寫入用途,用以暫存寫入數據。此時的寫入速度幾乎維持在一個最高速度(11)。
[0050]于時間點仏時,閃存205中空白區塊的數目下降到達一臨限數目“1^681101(111111111361-)時,控制單元201必須啟動垃圾搜集動作。由于本發明設定高速緩存203的第二部分的儲存空間來暫存寫入數據。因此,控制單元201仍可以執行寫入指令,而其寫入速度降至13。
[0051]換句話說,利用本發明高速緩存的管理方法,可以讓固態儲存裝置210進行垃圾搜集動作時,仍可以執行主機212所發出的寫入指令。讓固態儲存裝置210維持在較佳效倉泛。
[0052]當然,固態儲存裝置210也可設定高速緩存203第三部分的儲存空間作為讀取用途用以暫存讀取數據。因此,可以讓固態儲存裝置210進行垃圾搜集動作時,亦可以執行主機212所發出的寫入指令與讀取指令。讓固態儲存裝置210維持在較佳效能。
[0053]請參照圖6,其所繪示為本發明固態儲存裝置運作時高速緩存的管理方法。當固態儲存裝置210的控制單元201開始動作時,根據主機212的存取指令將高速緩存203分作為寫入/讀取用途和垃圾搜集用途(步驟3602)。
[0054]當固態儲存裝置210的控制單元201執行寫入、讀取、垃圾搜集動作(步驟3604)時,設定高速緩存203第一部分的儲存空間作為垃圾搜集用途(步驟3610);設定高速緩存203第二部分的儲存空間作為寫入用途(步驟3612);以及設定高速緩存203第三部分的儲存空間作為讀取用途(步驟3614〉。接著,執行寫入、讀取、垃圾搜集動作(步驟3616)后回到步驟3602。
[0055]反之,當固態儲存裝置210的控制單元201不執行寫入、讀取、垃圾搜集動作(步驟3604)時,即結束此流程。
[0056]由以上的說明可知,本發明是提出一種運用于固態儲存裝置中高速緩存的管理方法。可以讓固態儲存裝置210在執行垃圾搜集動作時,仍可以執行主機212發出的存取指令,使得固態儲存裝置210維持在較佳的效能。
[0057]綜上所述,雖然本發明已以較佳實施例揭露如上,然其并非用以限定本發明。本發明所屬【技術領域】中具有通常知識者,在不脫離本發明的精神和范圍內,當可作各種的更動與潤飾。因此,本發明的保護范圍當視所附的權利要求范圍所界定者為準。
【權利要求】
1.一種用于固態儲存裝置中高速緩存的管理方法,包括下列步驟: 于該固態儲存裝置決定執行一垃圾搜集操作時,將一高速緩存的儲存空間區分為多個部分; 設定該高速緩存中一第一部分儲存空間作為一垃圾搜集用途;以及 設定該高速緩存中一第二部分儲存空間作為一寫入用途。
2.根據權利要求1所述的管理方法,其中,當該固態儲存裝置收到一寫入指令時,利用該第二部分儲存空間來暫存一寫入數據并執行該寫入指令。
3.根據權利要求1所述的管理方法,其中,該固態儲存裝置利用該第一部分儲存空間來暫存一閃存的一搬移數據。
4.根據權利要求1所述的管理方法,其中還包括:設定該高速緩存中一第三部分儲存空間作為一讀取用途;以及,于該固態儲存裝置收到一讀取指令時,利用該第三部分儲存空間來暫存一讀取數據并執行該讀取指令。
5.一種用于固態儲存裝置中高速緩存的管理方法,包括下列步驟: (a)于該固態儲存裝置尚未執行一垃圾搜集操作時,根據一主機的一存取指令將一高速緩存作為一寫入用途或者一讀取用途; (b)于該固態儲存裝置決定執行一垃圾搜集操作時,設定該高速緩存中一第一部分儲存空間作為一垃圾搜集用途,以及設定該高速緩存中一第二部分儲存空間作為該寫入用途;以及 (C)當該固態儲存裝置完成該垃圾搜集操作時,回到步驟(a)。
6.根據權利要求5所述的管理方法,其中,當該固態儲存裝置收到一寫入指令時,利用該第二部分儲存空間來暫存一寫入數據并執行該寫入指令。
7.根據權利要求5所述的管理方法,其中,該固態儲存裝置利用該第一部分儲存空間來暫存一閃存的一搬移數據。
8.根據權利要求5所述的管理方法,其中步驟(b)還包括:設定該高速緩存中一第三部分儲存空間作為一讀取用途;以及,于該固態儲存裝置收到一讀取指令時,利用該第三部分儲存空間來暫存一讀取數據并執行該讀取指令。
9.一種固態儲存裝置,連接至一主機,該固態儲存裝置包括: 一控制單元,連接至該主機用以接收該主機發出的一存取指令; 一閃存,連接至該控制單元;以及 一高速緩存,連接至該控制單元; 其中,當該控制單元決定執行一垃圾搜集操作時,設定該高速緩存中一第一部分儲存空間作為一垃圾搜集用途,并設定該高速緩存中一第二部分儲存空間作為一寫入用途。
10.根據權利要求9所述的固態儲存裝置,其中,當該存取指令為一寫入指令時,利用該第二部分儲存空間來暫存一寫入數據并執行該寫入指令。
11.根據權利要求9所述的固態儲存裝置,其中,該固態儲存裝置利用該第一部分儲存空間來暫存一閃存的一搬移數據。
12.根據權利要求9所述的固態儲存裝置,其中還包括:設定該高速緩存中一第三部分儲存空間作為一讀取用途;以及,該存取指令為一讀取指令時,利用該第三部分儲存空間來暫存一讀取數據并執行該讀取指令。
13.根據權利要求9所述的固態儲存裝置,其中,當該控制單元未執行該垃圾搜集操作時,根據該存取指令將該高速緩存作為該寫入用途或者該讀取用途。
【文檔編號】G06F12/08GK104424103SQ201310365417
【公開日】2015年3月18日 申請日期:2013年8月21日 優先權日:2013年8月21日
【發明者】林信宇 申請人:光寶科技股份有限公司