專利名稱:固態(tài)儲存裝置及其高速緩存的控制方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于ー種固態(tài)儲存裝置及其控制方法,且特別是有關(guān)于ー種固態(tài)儲存裝置及其高速緩存(cache memory)的控制方法。
背景技術(shù):
眾所周知,固態(tài)儲存裝置(Solid State Drive, SSD)使用與非門閃存(NAND flashmemory)為主要存儲元件,而此類的儲存裝置為ー種非揮發(fā)性(non-volatile)的存儲器元件。也就是說,當(dāng)資料寫入閃存后,一旦系統(tǒng)電源關(guān)閉,資料仍保存在固態(tài)儲存裝置中。請參照圖1,其所繪示為固態(tài)儲存裝置的示意圖。固態(tài)儲存裝置10中包括ー控制單元101、高速緩存(cache memory) 107與ー閃存105。在固態(tài)儲存裝置10內(nèi)部,控制單元101連接至與閃存105與高速緩存107,以控制閃存105與高速緩存107的資料存取。而在固態(tài)儲存裝置10外部,控制單元101利用一外部總線20與主機(jī)(host) 12之間進(jìn)行指令與資料的傳遞。其中,外部總線20可為USB總線、IEEE 1394總線或SATA總線等等。再者,高速緩存107為ー個緩沖單元(buffering unit)用以暫時地儲存寫入資料以及讀取資料。當(dāng)固態(tài)儲存裝置10未接受電源時,高速緩存107中的資料將被刪除,高速緩存107可為靜態(tài)隨機(jī)存取存儲器(SRAM)或動態(tài)隨機(jī)存取存儲器(DRAM)。一般來說,閃存105中包括許多區(qū)塊(block),而每個區(qū)塊中又包括多個頁(page)或稱為段(sector)。例如,一個區(qū)塊中有64頁,而姆個頁的容量為8K bytes。再者,由于閃存105的特性,每次資料寫入時是以頁為最小単位,而每次擦除(erase)時則是以區(qū)塊為単位進(jìn)行資料擦除。由于閃存105的特性,當(dāng)區(qū)塊中某一特定頁的資料需要被更改吋,控制單元101將無法直接修改該特定頁中的資料,因此控制単元101需要將修改后的資料寫在另一空白頁,而將原來的特定頁標(biāo)示為無效頁(invalid page),里面的資料則被視為無效資料(invalid data)。請參照圖2,其所繪示為已知固態(tài)儲裝置進(jìn)行資料更新時高速緩存的控制方法。其中,高速緩存中包括多個快取單元。當(dāng)主機(jī)12需要更新閃存105中一特定頁里的部分資料時,主機(jī)12會將更新資料傳遞至固態(tài)儲存裝置10,而控制單元101將更新資料暫存于高速緩存的第一快取單元中(步驟S210),其中更新資料對應(yīng)于上述特定頁里的部分原始資料。接著,控制單元101由閃存105中將儲存于特定頁里的原始資料暫存于高速緩存的第二快取単元(步驟S220)。接著,控制單元101組合第一快取單元內(nèi)的更新資料以及第ニ快取單元內(nèi)未被更新的原始資料,并將組合后的資料儲存于閃存105中的一空白頁(步驟S230)。接著,將第一快取單元與第二快取單元設(shè)定為無效快取單元(步驟S240)。以下以圖3A至圖3D的資料搬移范例來解釋圖2的控制流程。如圖3A所示,假設(shè)閃存中第一區(qū)塊(Block_l)中包括四個頁?1、?2、?3、?4,第ー頁?1中的資料包括D1、D2、D3,而第二頁P2、第三頁P3、第四頁P4為空白頁。再者,高速緩存107中至少包括ニ個空白的快取單元Cm、Cn。當(dāng)主機(jī)12需要更新第一區(qū)塊(Block_l)中第一頁Pl里的部分資料(例如D2)吋,主機(jī)12會將更新資料D2’傳遞至固態(tài)儲存裝置10。如圖3B的路徑I所示,控制單元101將更新資料D2’暫存于第m快取単元Cm,其中更新資料D2’對應(yīng)于第一頁Pl里的部分資料D2。接著,如圖3B的路徑II所示,控制單元101由第一區(qū)塊(Block_l)中將儲存于第一頁Pl中的原始資料D1、D2、D3暫存于第n快取單元Cn。接著,如圖3C的路徑III所示,控制單元101組合第m快取單元Cm內(nèi)的更新資料D2’以及第n快取單元Cn內(nèi)未被更新的資料01、03,并將組合后的資料01、02’、03儲存于第ー區(qū)塊(Block_l)中的一空白頁(例如P3)。接著,控制單元將第m快取單元Cm與第n快取單元Cn設(shè)定為無效快取單元(斜線部分)。當(dāng)然,控制單元101并不一定要寫入第一區(qū)塊(Block_l)中的第三頁P3,也可以寫到其它區(qū)塊的空白頁中。再者原第一頁Pl也被設(shè)定成無效頁(斜線部分)。由圖3D可知,當(dāng)控制單元101將組合后的資料Dl、D2’、D3寫入第一區(qū)塊(Block_l)的第三頁P3后,第m快取單元Cm與第n快取單元Cn中的資料與第三頁P3的資料并不相同,所以第m快取単元Cm與第n快取単元Cn中的資料無法再次被利用,因此將會被設(shè)定為無效資料。而控制単元101可適時地刪除第m快取単元Cm與第n快取単元Cn中的資料。之后,假設(shè)主機(jī)12發(fā)出讀取指令,欲讀取第一區(qū)塊(Block_l)的第三頁P3吋,由于快取未命中(cache miss),所以控制單元101會讀取第一區(qū)塊(Block_l)的第三頁P3資料D1、D2’、D3并暫存于快取單元中的另一空白快取單元(例如第p快取單元)中,接著將該第P快取單元中的資料D1、D2’、D3由快取單元傳遞至主機(jī)12。
發(fā)明內(nèi)容
本發(fā)明提出ー種固態(tài)儲存裝置及其高速緩存的控制方法,可在更新閃存中的ー特定頁時,控制高速緩存的資料配置方式,達(dá)成簡化已知高速緩存的控制方法并增加快取命中(cache hit)率。本發(fā)明提出ー種固態(tài)儲存裝置的高速緩存控制方法,其中固態(tài)儲存裝置具有ー閃存,閃存具有多個區(qū)塊,每一區(qū)塊中具有多個頁,其特征在于,包括下列步驟:接收一更新資料,并儲存于ー第一快取単元,其中更新資料對應(yīng)于閃存中ー特定頁的部分原始資料;讀取儲存于特定頁內(nèi)的原始資料,并將未被更新的原始資料儲存于第一快取單元,將欲被更新的原始資料儲存于ー第二快取單元;以及將第一快取單元內(nèi)的更新資料及未更新的原始資料儲存于閃存中的一空白頁。本發(fā)明提出ー種固態(tài)儲存裝置,其特征在于,該固態(tài)儲存裝置包含:ー閃存,該閃存中具有多個區(qū)塊,每ー該區(qū)塊中具有多個頁;一高速緩存,包括多個快取単元,每個快取単元的大小等于閃存中的一個頁的大?。灰约癌`控制單元,連接至該閃存與該高速緩存;其中,該控制單元接收一更新資料,該更新資料對應(yīng)于儲存于該閃存中的一特定頁內(nèi)的部分原始資料,并儲存該更新資料于一第一快取単元;該控制單元讀取該特定頁內(nèi)的該原始資料,并儲存未被更新的該原始資料于該第一快取単元,儲存欲被更新的該原始資料于一第二快取單元;以及該控制單元將該第一快取單元內(nèi)的該更新資料及該未被更新的原始資料儲存于該閃存中的一空白頁,作為該特定頁的一更新頁。本發(fā)明提出ー種固態(tài)儲存裝置的高速緩存控制方法,其中該固態(tài)儲存裝置具有一閃存,且該閃存具有多個區(qū)塊,每ー該區(qū)塊中具有多個頁,該高速緩存具有多個快取単元,其特征在于,包括下列步驟:接收一更新資料,并儲存該更新資料于該高速緩存的一第一1決取単元;讀取儲存于該閃存中的一特定頁內(nèi)的一第一資料及一第二資料,其中該更新資料對應(yīng)于該第二資料;儲存該第一資料于該高速緩存中的該第一快取単元,且儲存該第二資料于該高速緩存中的一第二快取単元;以及將該第一快取単元內(nèi)的該更新資料及該第一資料儲存于該閃存的一空白頁。
為了對本發(fā)明的上述及其它方面有更佳的了解,下文特舉較佳實施例并配合附圖,作詳細(xì)說明如下,其中:圖1所繪示為固態(tài)儲存裝置的示意圖。圖2所繪示為已知固態(tài)儲裝置進(jìn)行資料更新時高速緩存的控制方法。圖3A至圖3D所繪示為根據(jù)圖2的控制流程的資料搬移范例。圖4所繪示為本發(fā)明固態(tài)儲裝置進(jìn)行資料更新時高速緩存的控制方法。圖5A至圖5E所繪示為根據(jù)圖4的控制流程的資料搬移范例。
具體實施例方式請參照圖4,其所繪示為本發(fā)明固態(tài)儲裝置中進(jìn)行資料更新時的高速緩存控制方法。固態(tài)儲存裝置中包括一控制單元、一高速緩存與ー閃存,其中,閃存具有多個區(qū)塊,每ー該區(qū)塊中具有多個頁,而高速緩存具有多個快取単元。由于固態(tài)儲存裝置的構(gòu)造與第I圖相同,因而不再贅述。當(dāng)主機(jī)需要更新儲存于閃存中一個頁里的部分資料時,主機(jī)會將更新資料傳遞至固態(tài)儲存裝置,而控制単元則將更新資料暫存于高速緩存中的第一快取単元中,其中更新資料對應(yīng)于閃存中ー特定頁里的部分資料(步驟S410)。接著,控制單元由閃存中讀取儲存于特定頁中的原始資料,并將未被更新的原始資料儲存于第一快取單元中,而將欲被更新的原始資料儲存于第二快取單元(步驟S420)。接著,將第一快取單元內(nèi)的更新資料及未被更新的原始資料儲存于閃存中的一空白頁(步驟S430)。接著,將第二快取単元設(shè)定為無效快取単元,將第一快取単元設(shè)定為有效快取単元(步驟S440)。以下以圖5A至圖5E的資料搬移范例來解釋圖4的控制流程。如圖5A所示,假設(shè)閃存中第一區(qū)塊(Block_l)中包括四個頁?1、?2、?3、?4,第ー頁?1中的資料包括D1、D2、D3,而第二頁P2、第三頁P3、第四頁P4為空白頁。再者,高速緩存中至少包括ニ個空白的快取單元Cm、Cn。當(dāng)主機(jī)需要更新第一區(qū)塊(Block_l)中第一頁Pl里的部分資料(例如D2)時,主機(jī)會將更新資料D2’傳遞至固態(tài)儲存裝置。如圖5B的路徑I所示,控制單元將更新資料D2’暫存于第m快取単元Cm中。更新資料D2’對應(yīng)于第一頁Pl里的部分資料D2。接著,如圖5C的路徑II所示,控制單元由第一區(qū)塊(Block_l)中讀取儲存于第一頁Pl的原始資料D1、D2、D3,并將未被更新的原始資料D1、D3儲存于該第m快取單元Cm,將欲被更新的原始資料D2儲存于第n快取単元Cn。接著,如圖的路徑III所示,控制單元將第m快取單元Cm內(nèi)的更新資料D2’及未被更新的原始資料Dl、D3儲存于第一區(qū)塊(Block_l)中的一空白頁(例如P3)。接著,控制單元將第n快取單元Cn設(shè)定為無效快取單元(斜線部分),將第m快取単元Cm設(shè)定為有效快取単元。當(dāng)然,控制單元并不一定要將更新后的一頁資料寫入第一區(qū)塊(Block_l)中的第三頁,也可以寫到其它區(qū)塊的空白頁中,再者原第一頁Pl也被設(shè)定成無效頁(斜線部分)。由圖5E可知,當(dāng)控制單元將更新后的資料Dl、D2’、D3再次寫入第一區(qū)塊(Block_l)的第三頁P3后,第n快取単元Cn中的資料會被設(shè)定為無效資料,并且控制単元101可適時地刪除第n快取単元Cn中的資料。而由于第m快取単元Cm中的資料與第一區(qū)塊(Block_l)第三頁P3的內(nèi)容完全相同,因此第m快取単元Cm會被設(shè)定為有效資料。之后,當(dāng)主機(jī)發(fā)出讀取指令,欲讀取第一區(qū)塊(Block_l)的第三頁P3時,高速緩存即可發(fā)出快取命中(cache hit),并直接將該第m快取單元Cm中的資料Dl、D2’、D3由快取単元傳遞至主機(jī),所以控制單元不需讀取第一區(qū)塊(Block_l)的第三頁P3資料D1、D2’、D3。也就是說,根據(jù)本發(fā)明的高速緩存控制方法,控制單元不需再次由閃存中讀取資料所以可以提聞系統(tǒng)的效率。由以上的說明可知,本發(fā)明的高速緩存的控制方法,其在更新閃存的一特定頁時,將有效的資料(包含更新資料及未被更新的原始資料)集中儲存在同一個快取單元,并將無效的資料(包含欲被更新的原始資料)集中儲存在另ー快取單元中,因此可增加快取命中率,并提高系統(tǒng)的讀取速度。綜上所述,雖然本發(fā)明已以較佳實施例揭露如上,然其并非用以限定本發(fā)明。本發(fā)明所屬技術(shù)領(lǐng)域中具有通常知識者,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作各種的更動與潤飾。因此,本發(fā)明的保護(hù)范圍當(dāng)視權(quán)利要求范圍所界定的為準(zhǔn)。
權(quán)利要求
1.一種固態(tài)儲存裝置的高速緩存控制方法,其中該固態(tài)儲存裝置具有一閃存,該閃存具有多個區(qū)塊,每ー該區(qū)塊中具有多個頁,包括下列步驟: 接收一更新資料,并儲存于ー第一快取単元,其中該更新資料對應(yīng)于該閃存中一特定頁的部分原始資料; 讀取儲存于該特定頁內(nèi)的該原始資料,并將未被更新的該原始資料儲存于該第一快取單元,將欲被更新的該原始資料儲存于ー第二快取單元;以及 將該第一快取単元內(nèi)的該更新資料及該未更新的原始資料儲存于該閃存中的一空白頁。
2.按權(quán)利要求1所述的固態(tài)儲存裝置的高速緩存控制方法,其中還包括將該閃存中的該特定頁設(shè)定為ー無效頁。
3.按權(quán)利要求1所述的固態(tài)儲存裝置的高速緩存控制方法,其中還包括將該第二快取単元設(shè)定為一無效快取単元,且將該第一快取単元設(shè)定為一有效快取単元。
4.一種固態(tài)儲存裝置,該固態(tài)儲存裝置包含: ー閃存,該閃存中具有多個區(qū)塊,每ー該區(qū)塊中具有多個頁; 一高速緩存,包括多個快取単元;以及 一控制單元,連接至該閃存與該高速緩存; 其中,該控制單元接收一更新資料,該更新資料對應(yīng)于儲存于該閃存中的一特定頁內(nèi)的部分原始資料,并儲存該更新資料于一第一1決取單元;該控制單元讀取該特定頁內(nèi)的該原始資料,并儲存未被更新的該原始資料于該第一快取単元,儲存欲被更新的該原始資料于ー第二快取單元;以及該控制單元將該第一快取單元內(nèi)的該更新資料及該未被更新的原始資料儲存于該閃存中的一空白頁,作為該特定頁的一更新頁。
5.按權(quán)利要求4所述的固態(tài)儲存裝置,其中還包括:該控制單元將該閃存中的該特定頁設(shè)定為ー無效頁。
6.按權(quán)利要求4所述的固態(tài)儲存裝置,其中還包括:該控制単元將該第二快取單元設(shè)定為ー無效快取單元,且將該第一快取單元設(shè)定為一有效快取單元。
7.一種固態(tài)儲存裝置的高速緩存控制方法,其中該固態(tài)儲存裝置具有一閃存,且該閃存具有多個區(qū)塊,每ー該區(qū)塊中具有多個頁,該高速緩存具有多個快取単元,包括下列步驟: 接收一更新資料,并儲存該更新資料于該高速緩存的一第一1決取單元; 讀取儲存于該閃存中的一特定頁內(nèi)的一第一資料及一第二資料,其中該更新資料對應(yīng)于該第二資料; 儲存該第一資料于該高速緩存中的該第一快取単元,且儲存該第二資料于該高速緩存中的一第二快取單元;以及 將該第一快取単元內(nèi)的該更新資料及該第一資料儲存于該閃存的一空白頁。
8.按權(quán)利要求7所述的固態(tài)儲存裝置的高速緩存控制方法,其中還包括將該閃存中的該特定頁設(shè)定為ー無效頁。
9.按權(quán)利要求7所述的固態(tài)儲存裝置的高速緩存控制方法,其中還包括將該第二快取単元設(shè)定為一無效快取単元,且 將該第一快取単元設(shè)定為一有效快取単元。
10.按權(quán)利要求7所述的固態(tài)儲存裝置的高速緩存控制方法,其中該第一資料為儲存于該特定頁中未被更 新的原始資料,且該第二資料為儲存于該特定頁中欲被更新的資料。
全文摘要
本發(fā)明為一種固態(tài)儲存裝置及其高速緩存的控制方法,其中固態(tài)儲存裝置具有一閃存,閃存具有多個區(qū)塊,每一區(qū)塊中具有多個頁。此控制方法包括下列步驟接收一更新資料,并儲存于一第一快取單元,其中更新資料對應(yīng)于閃存中一特定頁的部分原始資料;讀取儲存于特定頁內(nèi)的原始資料,并將未被更新的原始資料儲存于第一快取單元,將欲被更新的原始資料儲存于一第二快取單元;以及將第一快取單元內(nèi)的更新資料及未更新的原始資料儲存于閃存中的一空白頁。
文檔編號G06F12/08GK103092771SQ20111033655
公開日2013年5月8日 申請日期2011年10月31日 優(yōu)先權(quán)日2011年10月31日
發(fā)明者陳奕任, 莊吉賢, 陳彥仲, 賴昀佐 申請人:建興電子科技股份有限公司