固態(tài)儲存裝置的地址對應(yīng)表建立方法
【專利摘要】本發(fā)明為一種固態(tài)儲存裝置的地址對應(yīng)表建立方法,包括下列步驟:于固態(tài)儲存裝置啟動時,接收主機(jī)所發(fā)出的指令;根據(jù)該指令所伴隨的邏輯區(qū)塊地址,計算為邏輯配置地址;以計算的邏輯配置地址為一起始地址,并將對應(yīng)表中由起始地址開始的第一部分的該對應(yīng)表建立于高速緩沖存儲器;以及根據(jù)該第一部份的對應(yīng)表來響應(yīng)該指令。
【專利說明】固態(tài)儲存裝置的地址對應(yīng)表建立方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明是有關(guān)于一種固態(tài)儲存裝置的地址對應(yīng)表建立方法,且特別是有關(guān)于一種固態(tài)儲存裝置及其邏輯至實體地址對應(yīng)表(L2P Table)建立方法。
【背景技術(shù)】
[0002]眾所周知,固態(tài)儲存裝置(Solid State Drive, SSD)使用非揮發(fā)性存儲器(non-volatile memory)為主要儲存元件。也就是說,當(dāng)數(shù)據(jù)寫入非揮發(fā)性存儲器后,一旦系統(tǒng)電源關(guān)閉,數(shù)據(jù)仍保存在固態(tài)儲存裝置中。
[0003]請參照圖1,其所繪示為固態(tài)儲存裝置的示意圖。固態(tài)儲存裝置10中包括一控制單元101、高速緩沖存儲器(cache memory) 107與一非揮發(fā)性存儲器105。而在固態(tài)儲存裝置10外部,控制單元101透過一外部總線20與主機(jī)(host) 12之間進(jìn)行指令與數(shù)據(jù)的傳遞。其中,外部總線20可為USB總線、IEEE 1394總線或SATA總線等等。
[0004]基本上,主機(jī)12利用邏輯區(qū)塊地址(Logical Block Address,以下簡稱LBA)來存取數(shù)據(jù),而每一個LBA的數(shù)據(jù)量為512byte。再者,在非揮發(fā)性存儲器15中則利用實體配置地址(Physical Allocation Address,以下簡稱PAA)來存取數(shù)據(jù),而每一個PAA的數(shù)據(jù)量為例如2Kbyte。所以,每一個PAA中的數(shù)據(jù)量為每一個LBA中的數(shù)據(jù)量的4倍(2Kbyte/512Byte = 4)。
[0005]再者,固態(tài)儲存裝置10另行定義一邏輯配置地址(Logical Allocation Address,以下簡稱LAA),而每一個LAA的數(shù)據(jù)量與PAA相同,例如2Kbyte。
[0006]每當(dāng)控制單元101接收到主機(jī)12發(fā)出的寫入指令或者讀取指令時,其皆會伴隨著LBA,以表示所欲讀取或?qū)懭氲臄?shù)據(jù)地址。而控制單元101在接收到LBA后,會先將LBA換算成為LAA。舉例來說,當(dāng)主機(jī)12發(fā)出LBA(X)的地址時,控制單元101會先將X除以12,而根據(jù)計算出的商數(shù)及余數(shù)可推知其所對應(yīng)的LAA位置,以及對應(yīng)在該LAA中特定位置的512Bytes數(shù)據(jù)。以每一個LAA的數(shù)據(jù)量為2Kbyte的例子來說,假設(shè)主機(jī)發(fā)出LBA (6)時,經(jīng)由控制單元101的換算可得知該筆數(shù)據(jù)為位于LAA(I)的位置中的第二筆512Byte的數(shù)據(jù)。
[0007]再者,為了讓LAA與PAA之間能夠相互對應(yīng),固態(tài)儲存裝置10中還有一邏輯至實體地址對應(yīng)表(Logical to Physical Address Table,以下簡稱L2P表)。換句話說,當(dāng)主機(jī)發(fā)出讀取指令以讀取非揮發(fā)性存儲器15中特定LBA的數(shù)據(jù)時,控制單元101將LBA換算為LAA之后,即可根據(jù)L2P表得知該數(shù)據(jù)在非揮發(fā)性存儲器105中的PAA,并由非揮發(fā)性存儲器105取出數(shù)據(jù)并回傳至主機(jī)。
[0008]以一個128Gbyte的非揮發(fā)性存儲器105為例,共計有64M個PAA (128G/2K = 64M),而每個PAA的地址長度為4byte。因此,L2P表的大小為256Mbyte (64MX4byte)。如圖2所示,其繪示為為一 L2P表的示意圖。該L2P表的地址長度為32bit(4byte),而每個地址中的數(shù)據(jù)量也為32bit(4byte)。其中,LAA由0?01FFFFFF,代表由小到大共計64M個LAA。以每一個LAA的數(shù)據(jù)量為2Kbyte的例子來說,當(dāng)主機(jī)發(fā)出讀取LBA(029ECFE0)的數(shù)據(jù)時,控制單元101即可換算出為LAA(00A7B3F8)后,并根據(jù)L2P表得知該數(shù)據(jù)在非揮發(fā)性存儲器105中的PAA(012EC390),因此即可由非揮發(fā)性存儲器105取出數(shù)據(jù)并回傳至主機(jī)。
[0009]一般來說,當(dāng)固態(tài)儲存裝置10在電源正常供應(yīng)時,會將L2P表儲存在高速緩沖存儲器107中,以便于快速讀取及儲存地址數(shù)據(jù)。而當(dāng)固態(tài)儲存裝置10的供電即將停止之前,控制單元101會將L2P表寫入非揮發(fā)性存儲器105中。而在停止供電后,儲存在高速緩沖存儲器107中的L2P表將會消失。
[0010]由于在停止供電之前,L2P表已經(jīng)儲存于非揮發(fā)性存儲器中,因此當(dāng)固態(tài)儲存裝置10再次接收電源啟動時,控制單元101會先將非揮發(fā)性存儲器105中的L2P表再次儲存至高速緩沖存儲器107中。之后,固態(tài)儲存裝置10才可以正常動作。
[0011]請參照圖3,其所繪示為固態(tài)儲存裝置供電啟動時的動作流程。在固態(tài)儲存裝置10被供電啟動時(步驟S302),當(dāng)控制單元101接收到主機(jī)12所發(fā)出的指令(步驟S306)時,由于L2P表尚未加載高速緩沖存儲器107,因此,固態(tài)儲存裝置10無法響應(yīng)主機(jī)的指令。
[0012]此時,控制單元101需先將非揮發(fā)性存儲器105中的L2P表完全加載高速緩沖存儲器107(步驟S304)。當(dāng)L2P表尚未加載完成時(步驟S306),控制單元101持續(xù)將非揮發(fā)性存儲器105中的L2P表加載高速緩沖存儲器107 (步驟S304);反之,當(dāng)L2P表加載完成時(步驟S306),控制單元101即可根據(jù)高速緩沖存儲器107中的L2P表來響應(yīng)先前所收到的指令(步驟S310)。
[0013]也就是說,于固態(tài)儲存裝置10供電后,控制單元101需要先將非揮發(fā)性存儲器105中的L2P表完全加載高速緩沖存儲器107后,固態(tài)儲存裝置10才可正常地進(jìn)行數(shù)據(jù)讀取或?qū)懭氲膭幼?。在加載L2P表的過程中,固態(tài)儲存裝置10處于忙碌狀態(tài)(busy)。而在忙碌狀態(tài)時,就算固態(tài)儲存裝置10接收到主機(jī)12的指令,固態(tài)儲存裝置10也無法響應(yīng)該指令。需等到L2P表加載完成后,控制單元101才可執(zhí)行該指令。并且,根據(jù)該指令所伴隨的LBA換算出LAA,并根據(jù)高速緩沖存儲器107中的L2P表得知PAA。
[0014]然而,由于L2P表的數(shù)據(jù)量很大,于固態(tài)儲存裝置10供電后,由非揮發(fā)性存儲器105將L2P表完全加載高速緩沖存儲器107所需耗費(fèi)的時間太長,使得主機(jī)12需要等待較長的時間才可收到該指令的響應(yīng),如此,將使固態(tài)儲存裝置的存取效率降低。
【發(fā)明內(nèi)容】
[0015]本發(fā)明提出一種固態(tài)儲存裝置及其邏輯至實體地址對應(yīng)表(L2PTable)的建立方法,其可因應(yīng)主機(jī)發(fā)出的指令來快速的加載一部份L2P表,使得固態(tài)儲存裝置于供電啟動時能夠快速地執(zhí)行并響應(yīng)指令,并在主機(jī)與固態(tài)儲存裝置之間沒有數(shù)據(jù)傳輸時,再繼續(xù)加載其它部份的L2P表。
[0016]本發(fā)明提出一種固態(tài)儲存裝置,其特征在于,包括:一非揮發(fā)性存儲器,該非揮發(fā)性存儲器中具有多個實體配置地址,且該非揮發(fā)性存儲器中儲存一對應(yīng)表;一高速緩沖存儲器;以及,一控制單元,連接于該非揮發(fā)性存儲器以及該高速緩沖存儲器;其中,于該固態(tài)儲存裝置啟動時,該控制單元根據(jù)一主機(jī)發(fā)出的一指令及其伴隨的一邏輯區(qū)塊地址,計算一邏輯配置地址;且該控制單元根據(jù)計算的該邏輯配置地址將一第一部份的該對應(yīng)表建立于該高速緩沖存儲器。
[0017]本發(fā)明提出一種固態(tài)儲存裝置的一對應(yīng)表建立方法,其中該固態(tài)儲存裝置具有一非揮發(fā)性存儲器,且該非揮發(fā)性存儲器儲存有一對應(yīng)表,該方法包括下列步驟:于該固態(tài)儲存裝置啟動后,接收一主機(jī)所發(fā)出的一指令;根據(jù)該指令所伴隨的一邏輯區(qū)塊地址,計算為一邏輯配置地址;以計算的該邏輯配置地址為一起始地址,并將該對應(yīng)表中由該起始地址開始的連續(xù)一特定數(shù)目的邏輯配置地址及其對應(yīng)的實體配置地址加載一高速緩沖存儲器中,以建立一第一部分的該對應(yīng)表于該高速緩沖存儲器;以及,根據(jù)該第一部份的對應(yīng)表來響應(yīng)該指令。
[0018]為了對本發(fā)明的上述及其它方面有更佳的了解,下文特舉較佳實施例,并配合所附圖式,作詳細(xì)說明如下:
【專利附圖】
【附圖說明】
[0019]圖1所繪示為固態(tài)儲存裝置的示意圖。
[0020]圖2所示為一 L2P表的示意圖。
[0021]圖3所繪示為固態(tài)儲存裝置供電啟動時的動作流程。
[0022]圖4所繪示為本發(fā)明固態(tài)儲存裝置供電啟動時的動作流程。
[0023]圖5所繪示為本發(fā)明L2P表建立示意圖。
【具體實施方式】
[0024]由于現(xiàn)有固態(tài)儲存裝置被供電啟動時,需要耗費(fèi)長時間來加載完整的L2P表至高速緩沖存儲器,因此將耗費(fèi)較長的時間來響應(yīng)主機(jī)的指令。而本發(fā)明則提出一種固態(tài)儲存裝置及其L2P表的建立方法,于固態(tài)儲存裝置被供電啟動時,可快速地響應(yīng)主機(jī)的指令,以提升固態(tài)儲存裝置的存取效率。
[0025]由于本發(fā)明的主要特征在于改善控制單元101建立L2P表的方法,并未改變圖1固態(tài)儲存裝置的硬件架構(gòu)。因此,固態(tài)儲存裝置的硬件架構(gòu)不再贅述。
[0026]根據(jù)本發(fā)明的實施例,當(dāng)固態(tài)儲存裝置10被供電啟動時,可因應(yīng)主機(jī)發(fā)出的指令來快速的加載一部份L2P表,使固態(tài)儲存裝置根據(jù)加載的部份L2P表來響應(yīng)指令。并且,于主機(jī)與固態(tài)儲存裝置之間沒有指令以及數(shù)據(jù)傳遞時,再繼續(xù)加載其它部份的L2P表。
[0027]請參照圖4,其所繪示為本發(fā)明固態(tài)儲存裝置供電啟動時的動作流程。在固態(tài)儲存裝置10被供電啟動時(步驟S402),當(dāng)控制單元101接收到主機(jī)12所發(fā)出的指令(步驟S406)時,控制單元101會將指令中的LBA換算為LAA (步驟S408)。
[0028]接著,以計算出的LAA為起始地址,由非揮發(fā)性存儲器105中連續(xù)加載Z筆數(shù)據(jù)至高速緩沖存儲器107以建立部份的L2P表(步驟S410)。在此步驟中,控制單元101加載非揮發(fā)性存儲器105中L2P表中由計算出的LAA開始連續(xù)的Z筆數(shù)據(jù)至高速緩沖存儲器107,以將一部分的L2P表先建立在高速緩沖存儲器107中。此時,部份的L2P表中僅有Z筆LAA可以對應(yīng)至PAA。
[0029]接著,控制單元101即根據(jù)高速緩沖存儲器107中的部份L2P表來響應(yīng)先前所收到的指令(步驟S412)。而在指令響應(yīng)完成后,當(dāng)主機(jī)12與固態(tài)儲存裝置10之間沒有指令以及數(shù)據(jù)傳遞時,控制單元101繼續(xù)建立其它部份的L2P表(步驟S414)至高速緩沖存儲器107中。當(dāng)主機(jī)的指令已經(jīng)響應(yīng)完成,且主機(jī)12與固態(tài)儲存裝置10之間沒有指令以及數(shù)據(jù)傳遞時,代表此時固態(tài)儲存裝置10并沒有與主機(jī)12進(jìn)行任何溝通。此時,控制單元101即自行建立其它部份的L2P表。[0030]請參照圖5,其所繪示為本發(fā)明L2P表建立示意圖。以每一個LAA的數(shù)據(jù)量為2Kbyte為例,假設(shè),在固態(tài)儲存裝置10接收電源啟動時,固態(tài)儲存裝置10收到主機(jī)12所發(fā)出讀取LBA(029ECFE0)的數(shù)據(jù),控制單元101即換算出為LAA(00A7B3F8)。之后,控制單元101以LAA(00A7B3F8)為起始地址,由非揮發(fā)性存儲器105中連續(xù)將Z筆LAA所對應(yīng)的PAA數(shù)據(jù)加載高速緩沖存儲器107中,以建立一部分的L2P表。在Z = 1M,即1000000筆的LAA數(shù)據(jù),的情況下,LAA(00A7B3F8)~LAA (00B7B3F8)連續(xù)IM筆數(shù)據(jù)皆會加載高速緩沖存儲器107內(nèi);而12?表的其它部份(斜線區(qū)域)尚未加載高速緩沖存儲器107中,仍舊儲存在非揮發(fā)性存儲器105。
[0031]根據(jù)本發(fā)明的實施例,雖然L2P表尚未完整的加載高速緩沖存儲器107,但是根據(jù)此部份的L2P表已經(jīng)有足夠的信息響應(yīng)該指令。因此,控制單元101即可根據(jù)此高速緩沖存儲器107中的部份L2P表來響應(yīng)指令。也就是說,由在非揮發(fā)性存儲器105中的PAA(012EC390)取出數(shù)據(jù)并回傳至主機(jī)。
[0032]當(dāng)主機(jī)的指令已經(jīng)響應(yīng)完成,且主機(jī)12與固態(tài)儲存裝置10之間沒有指令以及數(shù)據(jù)傳遞時,代表此時固態(tài)儲存裝置10并沒有與主機(jī)12進(jìn)行任何溝通。此時,控制單元101即自行由非揮發(fā)性存儲器105中建立其它部份的L2P表,也就是圖5中的斜線部份區(qū)域,并于高速緩沖存儲器107中將完整的L2P表建立完成。當(dāng)然,上述的Z值并不限定于1M,可視情況修改Z的數(shù)值,例如512K~16M。亦即,邏輯配置地址總數(shù)的1/64~1/2之間的其中之一。再者,每一個LAA的數(shù)據(jù)量大小并不限制為2Kbyte,可由實際應(yīng)用的數(shù)值來作為LBA與LAA之間的轉(zhuǎn)換依據(jù)。
[0033]由以上的說明可知,本發(fā)明的優(yōu)點在于提出一種固態(tài)儲存裝置及其L2P表的建立方法,其可因應(yīng)主機(jī)發(fā)出的指令來快速的加載一部份L2P表,使得固態(tài)儲存裝置于供電啟動時能夠快速地執(zhí)行并響應(yīng)指令,并在主機(jī)與固態(tài)儲存裝置之間沒有數(shù)據(jù)傳輸時,再繼續(xù)加載其它部份的L2P表。如此,于固態(tài)儲存裝置被供電啟動時,可快速地響應(yīng)主機(jī)的指令,以提升固態(tài)儲存裝置的存取效率。`
[0034]綜上所述,雖然本發(fā)明已以較佳實施例揭露如上,然其并非用以限定本發(fā)明。本發(fā)明所屬【技術(shù)領(lǐng)域】中具有通常知識者,在不脫離本發(fā)明之精神和范圍內(nèi),當(dāng)可作各種的更動與潤飾。因此,本發(fā)明的保護(hù)范圍當(dāng)視申請專利范圍所界定為準(zhǔn)。
【權(quán)利要求】
1.一種固態(tài)儲存裝置,其特征在于,包括: 一非揮發(fā)性存儲器,該非揮發(fā)性存儲器中具有多個實體配置地址,且該非揮發(fā)性存儲器中儲存一對應(yīng)表; 一高速緩沖存儲器;以及 一控制單元,連接于該非揮發(fā)性存儲器以及該高速緩沖存儲器; 其中,于該固態(tài)儲存裝置啟動時,該控制單元根據(jù)一主機(jī)發(fā)出的一指令及其伴隨的一邏輯區(qū)塊地址,計算一邏輯配置地址;且該控制單元根據(jù)計算的該邏輯配置地址將一第一部份的該對應(yīng)表建立于該高速緩沖存儲器。
2.如權(quán)利要求1所述的固態(tài)儲存裝置,其特征在于,其中在該主機(jī)以及該固態(tài)儲存裝置之間沒有其它數(shù)據(jù)以及其它指令傳輸時,該控制單元將該非揮發(fā)性存儲器中一第二部份的該對應(yīng)表加載該高速緩沖存儲器中。
3.如權(quán)利要求1所述的固態(tài)儲存裝置,其特征在于,其中該控制單元以計算的該邏輯配置地址為一起始地址,并將該對應(yīng)表中由該起始地址開始的連續(xù)一特定數(shù)目的邏輯配置地址及其對應(yīng)的實體配置地址加載該高速緩沖存儲器中,以作為該第一部份的該對應(yīng)表。
4.如權(quán)利要求3所述的固態(tài)儲存裝置,其特征在于,其中該特定數(shù)目為該對應(yīng)表中邏輯配置地址總數(shù)的1/64?1/2其中之一。
5.如權(quán)利要求1所述的固態(tài)儲存裝置,其特征在于,其中該對應(yīng)表為一邏輯至實體地址對應(yīng)表。
6.如權(quán)利要求1所述的固態(tài)儲存裝置,其特征在于,其中該控制單元根據(jù)該邏輯配置地址以及該第一部份的對應(yīng)表來獲得一對應(yīng)實體配置地址,并據(jù)以響應(yīng)該指令。
7.一種固態(tài)儲存裝置的一對應(yīng)表建立方法,其中該固態(tài)儲存裝置具有一非揮發(fā)性存儲器,且該非揮發(fā)性存儲器儲存有一對應(yīng)表,其特征在于,該方法包括下列步驟: 于該固態(tài)儲存裝置啟動時,接收一主機(jī)所發(fā)出的一指令; 根據(jù)該指令所伴隨的一邏輯區(qū)塊地址,計算一邏輯配置地址; 以計算的該邏輯配置地址為一起始地址,并將該對應(yīng)表中由該起始地址開始的連續(xù)一特定數(shù)目的邏輯配置地址及其對應(yīng)的實體配置地址加載一高速緩沖存儲器中,以建立一第一部分的該對應(yīng)表于該高速緩沖存儲器;以及 根據(jù)該第一部份的對應(yīng)表來響應(yīng)該指令。
8.如權(quán)利要求7所述的方法,其特征在于,其中在該主機(jī)以及該固態(tài)儲存裝置之間沒有其它數(shù)據(jù)以及其它指令傳輸時,將該非揮發(fā)性存儲器中一第二部份的該對應(yīng)表加載該高速緩沖存儲器中。
9.如權(quán)利要求7所述的方法,其特征在于,其中該對應(yīng)表為一邏輯至實體地址對應(yīng)表。
10.如權(quán)利要求7所述的方法,其特征在于,其中該特定數(shù)目為該對應(yīng)表中邏輯配置地址總數(shù)的1/64?1/2之間的其中之一。
【文檔編號】G06F12/08GK103488580SQ201210196424
【公開日】2014年1月1日 申請日期:2012年6月14日 優(yōu)先權(quán)日:2012年6月14日
【發(fā)明者】劉其鎧, 陳彥衡 申請人:建興電子科技股份有限公司