本申請(qǐng)案是基于以下申請(qǐng)案且主張所述申請(qǐng)案的優(yōu)先權(quán)權(quán)益:2014年12月29日提出申請(qǐng)的第62/097,530號(hào)美國(guó)臨時(shí)申請(qǐng)案;2015年2月27日提出申請(qǐng)的第2015-038997號(hào)日本專利申請(qǐng)案;及2015年3月12日提出申請(qǐng)的第14/656,559號(hào)美國(guó)非臨時(shí)申請(qǐng)案,所有這些申請(qǐng)案的全部?jī)?nèi)容以引用方式并入本文中。
技術(shù)領(lǐng)域
本文中所描述的實(shí)施例大體來說涉及一種高速緩沖存儲(chǔ)器裝置。
背景技術(shù):
固態(tài)驅(qū)動(dòng)器(SSD)包含例如NAND快閃存儲(chǔ)器等非易失性半導(dǎo)體存儲(chǔ)器。所述NAND快閃存儲(chǔ)器包含多個(gè)塊(物理塊)。所述多個(gè)塊包含布置于字線與位線的交叉點(diǎn)處的多個(gè)存儲(chǔ)器單元。
技術(shù)實(shí)現(xiàn)要素:
一般來說,根據(jù)一個(gè)實(shí)施例,一種高速緩沖存儲(chǔ)器裝置包含非易失性高速緩沖存儲(chǔ)器、寫入單元、確定單元、選擇單元及擦除單元。所述非易失性高速緩沖存儲(chǔ)器包含多個(gè)擦除單位區(qū)域。所述擦除單位區(qū)域中的每一者均包含多個(gè)寫入單位區(qū)域。所述寫入單元將數(shù)據(jù)寫入到所述非易失性高速緩沖存儲(chǔ)器。所述確定單元確定所述多個(gè)擦除單位區(qū)域是否滿足擦除條件。所述選擇單元在所述多個(gè)擦除單位區(qū)域滿足所述擦除條件時(shí)從所述多個(gè)擦除單位區(qū)域選擇待擦除區(qū)域。所述擦除單元擦除寫入到所述待擦除區(qū)域的所述數(shù)據(jù)。
附圖說明
圖1是展示根據(jù)第一實(shí)施例包含高速緩沖存儲(chǔ)器裝置的信息處理裝置的配置實(shí)例的 框圖;
圖2是展示第一實(shí)施例的第一高速緩存控制的實(shí)例的流程圖;
圖3是展示第一實(shí)施例的第二高速緩存控制的實(shí)例的流程圖;
圖4是展示第一實(shí)施例的第三高速緩存控制的實(shí)例的流程圖;
圖5是展示第一實(shí)施例的第四高速緩存控制的實(shí)例的流程圖;
圖6是展示根據(jù)第二實(shí)施例的信息處理系統(tǒng)的配置實(shí)例的框圖;
圖7是展示根據(jù)第二實(shí)施例由信息處理系統(tǒng)執(zhí)行的過程的實(shí)例的流程圖;
圖8是展示根據(jù)第三實(shí)施例的信息處理系統(tǒng)的詳細(xì)配置的實(shí)例的框圖;及
圖9是展示根據(jù)第三實(shí)施例的存儲(chǔ)系統(tǒng)的實(shí)例的透視圖。
具體實(shí)施方式
下文將參考圖式來描述實(shí)施例。在以下描述中,相同參考編號(hào)表示具有幾乎相同功能及布置之組件,且在必要時(shí),將對(duì)所述組件給出重復(fù)描述。
[第一實(shí)施例]
在本實(shí)施例中描述包含非易失性高速緩沖存儲(chǔ)器的高速緩沖存儲(chǔ)器裝置。
在本實(shí)施例中,在所述非易失性高速緩沖存儲(chǔ)器中每擦除單位區(qū)域地共同擦除數(shù)據(jù)。所述擦除單位區(qū)域包含多個(gè)寫入單位區(qū)域及多個(gè)讀取單位區(qū)域。
在本實(shí)施例中,使用NAND快閃存儲(chǔ)器作為非易失性高速緩沖存儲(chǔ)器及非易失性存儲(chǔ)器。然而,所述非易失性高速緩沖存儲(chǔ)器及所述非易失性存儲(chǔ)器中的每一者均可為除NAND快閃存儲(chǔ)器之外的存儲(chǔ)器,前提是所述存儲(chǔ)器滿足所述擦除單位區(qū)域、所述寫入單位區(qū)域及所述讀取單位區(qū)域當(dāng)中的上述關(guān)系。
當(dāng)所述非易失性高速緩沖存儲(chǔ)器及所述非易失性存儲(chǔ)器為NAND快閃存儲(chǔ)器時(shí),所述擦除單位區(qū)域?qū)?yīng)于一塊。所述寫入單位區(qū)域及所述讀取單位區(qū)域?qū)?yīng)于一頁。
在本實(shí)施例中,舉例來說,可以例如兩個(gè)塊的另一單位來控制所述擦除單位區(qū)域,這允許共同地擦除數(shù)據(jù)。
在本實(shí)施例中,存取指示將數(shù)據(jù)寫入到存儲(chǔ)器裝置及從存儲(chǔ)器裝置讀取數(shù)據(jù)兩者。
圖1是展示根據(jù)本實(shí)施例包含高速緩沖存儲(chǔ)器裝置的信息處理裝置的配置實(shí)例的框圖。
信息處理系統(tǒng)35包含信息處理裝置17及SSD 5。信息處理裝置17可為對(duì)應(yīng)于SSD5的主機(jī)裝置。
信息處理裝置17包含處理器2、存儲(chǔ)器3及非易失性高速緩沖存儲(chǔ)器4。SSD 5可 包含于信息處理裝置17中,或可連接到信息處理裝置17以便經(jīng)由網(wǎng)絡(luò)等發(fā)射及接收數(shù)據(jù)。代替SSD 5,可使用例如硬盤驅(qū)動(dòng)器(HDD)等另一非易失性存儲(chǔ)器裝置。
信息處理裝置17包含高速緩沖存儲(chǔ)器裝置,所述高速緩沖存儲(chǔ)器裝置包含高速緩存控制單元9、存儲(chǔ)管理信息61到64的存儲(chǔ)器3及非易失性高速緩沖存儲(chǔ)器4。然而,可在信息處理裝置17之外提供高速緩存控制單元9、管理信息61到64、存儲(chǔ)器3及非易失性高速緩沖存儲(chǔ)器4的全部或一部分。
非易失性高速緩沖存儲(chǔ)器4包含塊群組BG1到BG4。非易失性高速緩沖存儲(chǔ)器4具有比SSD 5的存取速度高的存取速度。
塊群組(第一群組)BG1包含塊(第一擦除單位區(qū)域)B1,1到B1,K。塊群組BG1存儲(chǔ)由處理器2存取的數(shù)據(jù)(即,由處理器2使用的數(shù)據(jù))。
在本實(shí)施例中,當(dāng)塊群組BG1滿足擦除條件(第一擦除條件)時(shí),基于先進(jìn)先出(FIFO)而從塊群組BG1中的塊B1,1到B1,K選擇待擦除塊(待丟棄或推出塊)(第一待擦除區(qū)域)。
舉例來說,當(dāng)塊群組BG1的塊B1,1到B1,K中的每一者的數(shù)據(jù)量超過預(yù)定值時(shí),滿足擦除條件。舉例來說,當(dāng)寫入到塊群組BG1的塊B1,1到B1,K中的每一者的頁數(shù)目超過預(yù)定數(shù)目時(shí),可滿足擦除條件。
當(dāng)寫入到基于FIFO而選自塊B1,1到B1,K的待擦除塊的數(shù)據(jù)處于第一低使用狀態(tài)時(shí)(舉例來說,當(dāng)所述數(shù)據(jù)被存取達(dá)少于所設(shè)定第一次數(shù)或以小于所設(shè)定第一頻率被存取時(shí)),將所述數(shù)據(jù)寫入到塊群組BG2。相比之下,當(dāng)寫入到選自塊B1,1到B1,K的待擦除塊的數(shù)據(jù)處于第一高使用狀態(tài)時(shí)(舉例來說,當(dāng)所述數(shù)據(jù)被存取達(dá)第一次數(shù)或更多或以第一頻率或更大被存取時(shí)),將所述數(shù)據(jù)寫入到塊群組BG3。寫入到選自塊B1,1到B1,K的待擦除塊的數(shù)據(jù)是每塊地被擦除(即,丟棄或推出)。
塊群組(第二群組)BG2包含塊(第二擦除單位區(qū)域)B2,1到B2,L。塊群組BG2存儲(chǔ)寫入到選自塊群組BG1的待擦除塊的數(shù)據(jù)中的處于第一低使用狀態(tài)的數(shù)據(jù)。
在本實(shí)施例中,當(dāng)塊群組BG2滿足擦除條件(第三擦除條件)時(shí),基于FIFO而從塊群組BG2中的塊B2,1到B2,L選擇待擦除塊(第三待擦除區(qū)域)。
當(dāng)寫入到依據(jù)FIFO而選自塊B2,1到B2,L的待擦除塊的數(shù)據(jù)處于第三低使用狀態(tài)時(shí)(舉例來說,當(dāng)所述數(shù)據(jù)被存取達(dá)少于所設(shè)定第三次數(shù)或以小于所設(shè)定第三頻率被存取時(shí)),擦除所述數(shù)據(jù)。相比之下,當(dāng)寫入到選自塊B2,1到B2,L的待擦除塊的數(shù)據(jù)處于第三高使用狀態(tài)時(shí)(舉例來說,當(dāng)所述數(shù)據(jù)被存取達(dá)第三次數(shù)或更多或以第三頻率或更大被 存取時(shí)),將所述數(shù)據(jù)寫入到塊群組BG3。隨后,寫入到選自塊B2,1到B2,L的待擦除塊的數(shù)據(jù)被每塊地擦除。
塊群組(第三群組)BG3包含塊(第三擦除單位區(qū)域)B3,1到B3,M。塊群組BG3存儲(chǔ)寫入到選自塊群組BG1的待擦除塊的數(shù)據(jù)中的處于第一低使用狀態(tài)的數(shù)據(jù)。塊群組BG3還存儲(chǔ)寫入到選自塊群組BG2的待擦除塊的數(shù)據(jù)中的處于第三高使用狀態(tài)的數(shù)據(jù)。
在本實(shí)施例中,當(dāng)塊群組BG3滿足擦除條件(第二擦除條件)時(shí),基于FIFO而從塊群組BG3中的塊B3,1到B3,M選擇待擦除塊(第二待擦除區(qū)域)。
當(dāng)寫入到依據(jù)FIFO而選自塊B3,1到B3,M的待擦除塊的數(shù)據(jù)處于第二低使用狀態(tài)時(shí)(舉例來說,當(dāng)所述數(shù)據(jù)被存取達(dá)少于所設(shè)定第二次數(shù)或以小于所設(shè)定第二頻率被存取時(shí)),將所述數(shù)據(jù)寫入到塊群組BG4。相比之下,當(dāng)寫入到選自塊B3,1到B3,M的待擦除塊的數(shù)據(jù)處于第二高使用狀態(tài)時(shí)(舉例來說,當(dāng)所述數(shù)據(jù)被存取達(dá)第二次數(shù)或更多或以第二頻率或更大被存取時(shí)),再次將所述數(shù)據(jù)寫入到塊群組BG3中的另一塊。隨后,寫入到選自塊B3,1到B3,M的待擦除塊的數(shù)據(jù)被每塊地擦除。
塊群組(第四群組)BG4包含塊(第四擦除單位區(qū)域)B4,1到B4,N,塊群組BG4存儲(chǔ)寫入到選自塊群組BG3的待擦除塊的數(shù)據(jù)中的處于第二低使用狀態(tài)的數(shù)據(jù)。
在本實(shí)施例中,當(dāng)塊群組BG4滿足擦除條件(第四擦除條件)時(shí),基于FIFO而從塊群組BG4中的塊B4,1到B4,N選擇待擦除塊(第四待擦除區(qū)域)。
擦除寫入到依據(jù)FIFO而選自塊B4,1到B4,N的待擦除塊的數(shù)據(jù)。
在本實(shí)施例中,F(xiàn)IFO用作用于從塊群組BG1到BG4中的每一者選擇待擦除塊的方法。通過依據(jù)FIFO選擇待擦除塊,在塊群組BG1到BG4中的每一者中從具有與最舊寫入時(shí)間及寫入次序的塊開始循序地執(zhí)行擦除。然而,舉例來說,可隨機(jī)地或基于最近最少使用(LRU)或最不經(jīng)常使用(LFU)來選擇待擦除塊。舉例來說,管理信息61到64包含數(shù)據(jù)的識(shí)別信息、指示數(shù)據(jù)是否為待刪除數(shù)據(jù)的信息及數(shù)據(jù)的使用狀態(tài)信息??苫诠芾硇畔?1到64而選擇具有最大無效數(shù)據(jù)量的塊或具有大于預(yù)定量的無效數(shù)據(jù)量的塊作為待擦除塊。舉例來說,可基于管理信息61到64而選擇具有最大無效數(shù)據(jù)及待刪除數(shù)據(jù)(刪除目標(biāo)數(shù)據(jù))量的塊或具有大于預(yù)定量的無效數(shù)據(jù)及待刪除數(shù)據(jù)量的塊作為待擦除塊。
存儲(chǔ)器3存儲(chǔ)各種類型的控制數(shù)據(jù),例如管理信息(列表)61到64及地址轉(zhuǎn)換信息7。存儲(chǔ)器3可為例如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)或靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)等易 失性存儲(chǔ)器,或者可為非易失性存儲(chǔ)器。存儲(chǔ)器3可包含于非易失性高速緩沖存儲(chǔ)器4中。
在本實(shí)施例中,高速緩存控制單元9可基于管理信息61到64及地址轉(zhuǎn)換信息7而辨識(shí)經(jīng)高速緩存數(shù)據(jù)的識(shí)別信息(舉例來說,從主機(jī)提供的邏輯地址(舉例來說,邏輯塊尋址))、所述數(shù)據(jù)被寫入到的位置及所述數(shù)據(jù)的使用狀態(tài)。舉例來說,高速緩存控制單元9可基于管理信息61到64及地址轉(zhuǎn)換信息7而選擇高速緩存到塊群組BG1到BG4中的每一者的數(shù)據(jù)及依據(jù)FIFO擦除的塊。
管理信息61到64分別是寫入到塊群組BG1到BG4的數(shù)據(jù)的元數(shù)據(jù)。舉例來說,管理信息61到64包含指示處理器2對(duì)相應(yīng)數(shù)據(jù)的使用狀態(tài)的信息。舉例來說,管理信息61到64包含相應(yīng)數(shù)據(jù)的識(shí)別信息、指示數(shù)據(jù)是否為待刪除數(shù)據(jù)的刪除信息、指示數(shù)據(jù)是否為有效數(shù)據(jù)的有效/無效信息及用以確定是否滿足用于擦除塊的擦除條件的高速緩存確定信息。
所述刪除信息是指示發(fā)布對(duì)數(shù)據(jù)的刪除命令的信息。更具體來說,所述刪除信息是指示從由處理器2執(zhí)行的應(yīng)用程序或操作系統(tǒng)(OS)接收到對(duì)數(shù)據(jù)的刪除命令的信息等。在本實(shí)施例中,舉例來說,所述刪除信息包含使每一塊的識(shí)別信息與指示寫入到每一塊的待刪除數(shù)據(jù)的邏輯地址相關(guān)的信息。
所述有效/無效信息是指示例如當(dāng)將相同數(shù)據(jù)寫入到多個(gè)位置時(shí)最新數(shù)據(jù)是有效數(shù)據(jù)且除最新數(shù)據(jù)之外的數(shù)據(jù)是無效數(shù)據(jù)的信息。換句話說,例如,在執(zhí)行對(duì)寫入到非易失性高速緩沖存儲(chǔ)器4的數(shù)據(jù)的更新的情況中,有效數(shù)據(jù)是經(jīng)更新數(shù)據(jù)。舉例來說,在執(zhí)行更新的情況中,無效數(shù)據(jù)是未經(jīng)更新的數(shù)據(jù)。在本實(shí)施例中,舉例來說,所述有效/無效信息包含使每一塊的識(shí)別信息與指示寫入到每一塊的有效數(shù)據(jù)或無效數(shù)據(jù)的邏輯地址相關(guān)的信息。
所述高速緩存確定信息是例如包含每數(shù)據(jù)的寫入信息及讀取信息中的至少一者或每塊的寫入信息及讀取信息中的至少一者的信息等。
舉例來說,寫入信息包含寫入時(shí)間、寫入次數(shù)、寫入頻率及寫入次序中的至少一者。
舉例來說,讀取信息包含讀取時(shí)間、讀取次數(shù)、讀取頻率及讀取次序中的至少一者。
舉例來說,地址轉(zhuǎn)換信息7使數(shù)據(jù)的邏輯地址與非易失性高速緩沖存儲(chǔ)器4的對(duì)應(yīng)于所述邏輯地址的物理地址相關(guān)(舉例來說,物理塊尋址)。舉例來說,地址轉(zhuǎn)換信息7是以表形式來管理的。
處理器2通過執(zhí)行存儲(chǔ)于處理器2的存儲(chǔ)器、存儲(chǔ)器3、非易失性高速緩沖存儲(chǔ)器4或SSD 5中的程序而充當(dāng)?shù)刂忿D(zhuǎn)換單元8及高速緩存控制單元9。
在本實(shí)施例中,舉例來說,用以致使處理器2充當(dāng)?shù)刂忿D(zhuǎn)換單元8及高速緩存控制單元9的程序可為OS、中間件或固件。在本實(shí)施例中,可通過硬件來實(shí)施地址轉(zhuǎn)換單元8的全部或一部分或者高速緩存控制單元9的全部或一部分。
地址轉(zhuǎn)換單元8產(chǎn)生使寫入數(shù)據(jù)的邏輯地址與指示非易失性高速緩沖存儲(chǔ)器4中的存儲(chǔ)所述寫入數(shù)據(jù)的位置的物理地址相關(guān)的信息,且將所產(chǎn)生信息寄存到地址轉(zhuǎn)換信息7。
當(dāng)從處理器2接收到讀取數(shù)據(jù)的邏輯地址時(shí),地址轉(zhuǎn)換單元8基于地址轉(zhuǎn)換信息7而將邏輯地址轉(zhuǎn)換為物理地址。
高速緩存控制單元9為存取速度高于SSD 5的存取速度的非易失性高速緩沖存儲(chǔ)器4執(zhí)行高速緩存控制。舉例來說,高速緩存控制單元9通過透寫方法或回寫方法來管理數(shù)據(jù)以及指示所述數(shù)據(jù)的邏輯地址及物理地址。
在透寫方法中,數(shù)據(jù)是存儲(chǔ)于非易失性高速緩沖存儲(chǔ)器4中且也存儲(chǔ)于SSD 5中。
在回寫方法中,存儲(chǔ)于非易失性高速緩沖存儲(chǔ)器4中的數(shù)據(jù)并非一起存儲(chǔ)于SSD 5中。首先將所述數(shù)據(jù)存儲(chǔ)于非易失性高速緩沖存儲(chǔ)器4中,且隨后將從非易失性高速緩沖存儲(chǔ)器4推出的數(shù)據(jù)存儲(chǔ)于SSD 5中。
高速緩存控制單元9包含產(chǎn)生單元10、控制單元11到14以及變化單元15及16。
產(chǎn)生單元10產(chǎn)生對(duì)應(yīng)于塊群組BG1到BG4的管理信息61到64并將管理信息61到64寫入到存儲(chǔ)器3。
控制單元11到14分別為塊群組BG1到BG4控制數(shù)據(jù)寫入及塊擦除。
控制單元11包含寫入單元111、確定單元112、選擇單元113、確定單元114及擦除單元115。
寫入單元(第一寫入單元)111將由處理器2存取的數(shù)據(jù)寫入到塊群組BG1。
確定單元(第一確定單元)112確定塊群組BG1是否滿足擦除條件(第一擦除條件)。
當(dāng)塊群組BG1滿足擦除條件時(shí),選擇單元(第一選擇單元)113從塊群組BG1選擇待擦除塊(第一待擦除區(qū)域)。
確定單元(第二確定單元)114基于管理信息61而確定寫入到待擦除塊的每一數(shù)據(jù)項(xiàng)是處于第一高使用狀態(tài)還是第一低使用狀態(tài)及所述數(shù)據(jù)的每一項(xiàng)是否為待刪除數(shù)據(jù)。
當(dāng)寫入到待擦除塊的每一數(shù)據(jù)項(xiàng)可因每一數(shù)據(jù)項(xiàng)被寫入到塊群組BG2到BG3或是待刪除數(shù)據(jù)而被丟棄時(shí),擦除單元(第一擦除單元)115擦除待擦除塊。
控制單元12包含寫入單元121、確定單元122、選擇單元123、確定單元124及擦 除單元125。
當(dāng)確定單元114確定寫入到塊群組BG1的待擦除塊的數(shù)據(jù)處于第一低使用狀態(tài)且并非待刪除數(shù)據(jù)時(shí),寫入單元(第二寫入單元)121將所述數(shù)據(jù)寫入到塊群組BG2。
確定單元(第五確定單元)122確定塊群組BG2是否滿足擦除條件(第三擦除條件)。
當(dāng)塊群組BG2滿足擦除條件時(shí),選擇單元(第三選擇單元)123從塊群組BG2選擇待擦除塊(第三待擦除區(qū)域)。
確定單元124基于管理信息62而確定寫入到待擦除塊的每一數(shù)據(jù)項(xiàng)是處于第三高使用狀態(tài)還是第三低使用狀態(tài)及所述數(shù)據(jù)的每一項(xiàng)是否為待刪除數(shù)據(jù)。
當(dāng)處于第三高使用狀態(tài)且并非待刪除數(shù)據(jù)的寫入到待擦除塊的數(shù)據(jù)被寫入到塊群組BG3時(shí),擦除單元(第二擦除單元)125擦除寫入到待擦除塊的數(shù)據(jù)。
控制單元13包含寫入單元131、確定單元132、選擇單元133、確定單元134、寫入單元135、擦除單元136及寫入單元137。
當(dāng)確定單元114確定寫入到塊群組BG1的待擦除塊的數(shù)據(jù)處于第一高使用狀態(tài)且并非待刪除數(shù)據(jù)時(shí),寫入單元(第三寫入單元)131將所述數(shù)據(jù)寫入到塊群組BG3。
當(dāng)寫入到塊群組BG2的數(shù)據(jù)處于第三高使用狀態(tài)且并非待刪除數(shù)據(jù)時(shí),寫入單元(第六寫入單元)137將所述數(shù)據(jù)寫入到塊群組BG3。舉例來說,當(dāng)寫入到塊群組BG2的數(shù)據(jù)是待由處理器2存取的數(shù)據(jù)時(shí),寫入單元137可將塊群組BG2的待存取數(shù)據(jù)寫入到塊群組BG3。
確定單元(第三確定單元)132確定塊群組BG3是否滿足擦除條件(第二擦除條件)。
當(dāng)塊群組BG3滿足擦除條件時(shí),選擇單元(第二選擇單元)133從塊群組BG3選擇待擦除塊(第二待擦除區(qū)域)。
確定單元(第四確定單元)134基于管理信息63而確定寫入到待擦除塊的每一數(shù)據(jù)項(xiàng)是處于第二高使用狀態(tài)還是第二低使用狀態(tài)及所述數(shù)據(jù)的每一項(xiàng)是否為待刪除數(shù)據(jù)。
當(dāng)寫入到塊群組BG3的待擦除塊的數(shù)據(jù)被確定為處于第二高使用狀態(tài)且并非待刪除數(shù)據(jù)時(shí),寫入單元(第五寫入單元)135再次將所述數(shù)據(jù)寫入到塊群組BG3中的另一可寫入塊。
當(dāng)寫入到待擦除塊的數(shù)據(jù)的每一項(xiàng)可因每一數(shù)據(jù)項(xiàng)被寫入到塊群組BG4、再次被寫入到塊群組BG3或是待刪除數(shù)據(jù)而被丟棄時(shí),擦除單元(第三擦除單元)136擦除待擦除塊。
控制單元14包含寫入單元141、確定單元142、選擇單元143及擦除單元144。
當(dāng)確定單元134確定寫入到塊群組BG3的待擦除塊的數(shù)據(jù)處于第二低使用狀態(tài)且并非待刪除數(shù)據(jù)時(shí),寫入單元(第四寫入單元)141將所述數(shù)據(jù)寫入到塊群組BG4。
確定單元(第六確定單元)142確定塊群組BG4是否滿足擦除條件(第四擦除條件)。
當(dāng)塊群組BG4滿足擦除條件(第四擦除條件)時(shí),選擇單元(第四選擇單元)143從塊群組BG4選擇待擦除塊(第四待擦除區(qū)域)。
擦除單元(第四擦除單元)144擦除寫入到塊群組BG4的待擦除塊的數(shù)據(jù)。
當(dāng)寫入到塊群組BG2的數(shù)據(jù)達(dá)到第三高使用狀態(tài)時(shí),變化單元(第一變化單元)15增加塊群組BG1中所包含的塊的數(shù)目且減少塊群組BG3中所包含的塊的數(shù)目。舉例來說,當(dāng)寫入到塊群組BG2的數(shù)據(jù)由處理器2存取時(shí),變化單元15增加塊群組BG1中所包含的塊的數(shù)目且減少塊群組BG3中所包含的塊的數(shù)目。
當(dāng)寫入到塊群組BG4的數(shù)據(jù)達(dá)到第四高使用狀態(tài)時(shí),變化單元(第二變化單元)16增加塊群組BG3中所包含的塊的數(shù)目且減少塊群組BG1中所包含的塊的數(shù)目。舉例來說,當(dāng)寫入到塊群組BG4的數(shù)據(jù)由處理器2存取時(shí),變化單元16增加塊群組BG3中所包含的塊的數(shù)目且減少塊群組BG1中所包含的塊的數(shù)目。
圖2是展示根據(jù)本實(shí)施例的第一高速緩存控制的實(shí)例的流程圖。圖2示范性地展示其中將數(shù)據(jù)寫入到塊群組BG1、將數(shù)據(jù)寫入到塊群組BG2或BG3并擦除塊群組BG1中的待擦除塊的過程。
在步驟S201中,寫入單元111將由處理器2存取的數(shù)據(jù)寫入到塊群組BG1。
在步驟202中,確定單元112確定塊群組BG1是否滿足擦除條件。
當(dāng)塊群組BG1不滿足擦除條件時(shí),所述過程繼續(xù)進(jìn)行到步驟S206。
當(dāng)塊群組BG1滿足擦除條件時(shí),在步驟S203中,選擇單元113從塊群組BG1選擇待擦除塊。
在步驟S204中,確定單元114基于管理信息61而確定寫入到待擦除塊的每一數(shù)據(jù)項(xiàng)是處于第一高使用狀態(tài)還是第一低使用狀態(tài)及所述數(shù)據(jù)的每一項(xiàng)是否為待擦除數(shù)據(jù)(刪除目標(biāo)數(shù)據(jù))。
當(dāng)數(shù)據(jù)項(xiàng)處于第一低使用狀態(tài)且數(shù)據(jù)并非待刪除數(shù)據(jù)(非刪除目標(biāo)數(shù)據(jù))時(shí),在步驟S301中,寫入單元121將所述數(shù)據(jù)項(xiàng)寫入到塊群組BG2。
當(dāng)數(shù)據(jù)項(xiàng)處于第一高使用狀態(tài)且數(shù)據(jù)并非待刪除數(shù)據(jù)時(shí),在步驟S401中,寫入單 元131將所述數(shù)據(jù)項(xiàng)寫入到塊群組BG3。
當(dāng)寫入到待擦除塊的數(shù)據(jù)的每一項(xiàng)可因數(shù)據(jù)的每一項(xiàng)被寫入到塊群組BG2或塊群組BG3或是待刪除數(shù)據(jù)而被丟棄時(shí),在步驟S205中,擦除單元115擦除待擦除塊。
在步驟S206中,高速緩存控制單元9確定是否將結(jié)束所述過程。
當(dāng)高速緩存控制單元9不結(jié)束所述過程時(shí),所述過程返回到步驟S201。
當(dāng)高速緩存控制單元9結(jié)束所述過程時(shí),所述過程便結(jié)束。
圖3是展示根據(jù)本實(shí)施例的第二高速緩存控制的實(shí)例的流程圖。圖3示范性地展示其中將數(shù)據(jù)寫入到塊群組BG2并擦除塊群組BG2中的待擦除塊的過程。
當(dāng)在步驟S204中,寫入到塊群組BG1的待擦除塊的數(shù)據(jù)被確定為處于第一低使用狀態(tài)且并非待刪除數(shù)據(jù)時(shí),在步驟S301中,寫入單元121將所述數(shù)據(jù)寫入到塊群組BG2。
在步驟S302中,確定單元122確定塊群組BG2是否滿足擦除條件。
當(dāng)塊群組BG2不滿足擦除條件時(shí),所述過程繼續(xù)進(jìn)行到步驟S306。
當(dāng)塊群組BG2滿足擦除條件時(shí),在步驟S303中,選擇單元123從塊群組BG2選擇待擦除塊。
在步驟S304中,確定單元124基于管理信息62而確定寫入到待擦除塊的每一數(shù)據(jù)項(xiàng)是處于第三高使用狀態(tài)還是第三低使用狀態(tài)及所述數(shù)據(jù)的每一項(xiàng)是否為待刪除數(shù)據(jù)。
當(dāng)數(shù)據(jù)項(xiàng)處于第三低使用狀態(tài)或是待刪除數(shù)據(jù)時(shí),所述過程繼續(xù)進(jìn)行到步驟S305。
當(dāng)數(shù)據(jù)項(xiàng)處于第三高使用狀態(tài)且并非待刪除數(shù)據(jù)時(shí),在步驟S401中,寫入單元137將所述數(shù)據(jù)項(xiàng)寫入到塊群組BG3。
在步驟S305中,擦除單元125擦除寫入到塊群組BG2的待擦除塊的數(shù)據(jù)。
在步驟S306中,高速緩存控制單元9確定是否將結(jié)束所述過程。
當(dāng)高速緩存控制單元9不結(jié)束所述過程時(shí),所述過程返回到步驟S301。
當(dāng)高速緩存控制單元9結(jié)束所述過程時(shí),所述過程便結(jié)束。
圖4是展示根據(jù)本實(shí)施例的第三高速緩存控制的實(shí)例的流程圖。圖4示范性地展示從將數(shù)據(jù)寫入到塊群組BG3到擦除塊群組BG3中的數(shù)據(jù)的過程。
當(dāng)在步驟S204中,寫入到塊群組BG1的待擦除塊的數(shù)據(jù)被確定為處于第一高使用狀態(tài)且并非待刪除數(shù)據(jù)時(shí),在步驟S401中,寫入單元131將所述數(shù)據(jù)寫入到塊群組BG3。當(dāng)在步驟S304中,寫入到塊群組BG2的數(shù)據(jù)被確定為處于第三高使用狀態(tài)(舉例來說,所述數(shù)據(jù)由處理器2存取)且并非待刪除數(shù)據(jù)時(shí),寫入單元137將塊群組BG2的數(shù)據(jù)寫 入到塊群組BG3。
在步驟S402中,確定單元132確定塊群組BG3是否滿足擦除條件。
當(dāng)塊群組BG3不滿足擦除條件時(shí),所述過程繼續(xù)進(jìn)行到步驟S407。
當(dāng)塊群組BG3滿足擦除條件時(shí),在步驟S403中,選擇單元133從塊群組BG3選擇待擦除塊。
在步驟S404中,確定單元134基于管理信息63而確定寫入到待擦除塊的每一數(shù)據(jù)項(xiàng)是處于第二高使用狀態(tài)還是第二低使用狀態(tài)及所述數(shù)據(jù)的每一項(xiàng)是否為待刪除數(shù)據(jù)。
當(dāng)數(shù)據(jù)項(xiàng)處于第二低使用狀態(tài)且并非待刪除數(shù)據(jù)時(shí),在步驟S501中,寫入單元141將所述數(shù)據(jù)寫入到塊群組BG4。
當(dāng)數(shù)據(jù)處于第二高使用狀態(tài)且并非待刪除數(shù)據(jù)時(shí),在步驟S405中,寫入單元135再次將寫入到塊群組BG3的待擦除塊的數(shù)據(jù)寫入到塊群組BG3中的另一塊。
在步驟S406中,當(dāng)寫入到待擦除塊的數(shù)據(jù)的每一項(xiàng)可因每一數(shù)據(jù)項(xiàng)被寫入到塊群組BG4、再次寫入到塊群組BG3或是待刪除數(shù)據(jù)而被丟棄時(shí),擦除單元136擦除待擦除塊。
在步驟S407中,高速緩存控制單元9確定是否將結(jié)束所述過程。
當(dāng)高速緩存控制單元9不結(jié)束所述過程時(shí),所述過程返回到步驟S401。
當(dāng)高速緩存控制單元9結(jié)束所述過程時(shí),所述過程便結(jié)束。
圖5是展示根據(jù)本實(shí)施例的第四高速緩存控制的實(shí)例的流程圖。圖5示范性地展示其中將數(shù)據(jù)寫入到塊群組BG4并擦除塊群組BG4中的數(shù)據(jù)的過程。
當(dāng)在步驟S404中,寫入到塊群組BG3的待擦除塊的數(shù)據(jù)被確定為處于第二低狀態(tài)且并非待刪除數(shù)據(jù)時(shí),在步驟S501中,寫入單元141將所述數(shù)據(jù)寫入到塊群組BG4。
在步驟S502中,確定單元142確定塊群組BG4是否滿足擦除條件。
當(dāng)塊群組BG4不滿足擦除條件時(shí),所述過程繼續(xù)進(jìn)行到步驟S505。
當(dāng)塊群組BG4滿足擦除條件時(shí),在步驟S503中,選擇單元143從塊群組BG4選擇待擦除塊。
在步驟S504中,擦除單元144擦除寫入到塊群組BG4中的待擦除塊的數(shù)據(jù)。
在步驟S505中,高速緩存控制單元9確定是否將結(jié)束所述過程。
當(dāng)高速緩存控制單元9不結(jié)束所述過程時(shí),所述過程返回到步驟S501。
當(dāng)高速緩存控制單元9結(jié)束所述過程時(shí),所述過程便結(jié)束。
在本實(shí)施例的塊群組BG1中,舉例來說,數(shù)據(jù)是首先寫入到塊B1,1、接下來循序?qū)懭氲綁KB1,2,且隨后類似地寫入到塊B1,3到B1,K。當(dāng)塊群組BG1中所包含的塊B1,1到B1,K的數(shù)據(jù)量超過預(yù)定數(shù)據(jù)量時(shí),其中依據(jù)FIFO而擦除寫入首先完成的塊B1,1,且再次將數(shù)據(jù)循序?qū)懭氲浇?jīng)擦除塊B1,1。在完成向塊B1,1的寫入之后,依據(jù)FIFO而擦除塊B1,2。隨后,再次將數(shù)據(jù)循序?qū)懭氲浇?jīng)擦除塊B1,2。重復(fù)相同控制。
在塊群組BG1中,基于管理信息61而確定寫入到塊群組BG1中的待擦除塊的數(shù)據(jù)是否(例如)被存取達(dá)少于第一次數(shù)或以小于第一頻率被存取。當(dāng)寫入到塊群組BG1中的待擦除塊的數(shù)據(jù)被存取達(dá)少于第一次數(shù)或以小于第一頻率被存取時(shí),選擇塊群組BG2作為數(shù)據(jù)的寫入目的地。
相比之下,當(dāng)寫入到塊群組BG1中的待擦除塊的數(shù)據(jù)被存取達(dá)第一次數(shù)或更多或以第一頻率或更大被存取時(shí),選擇塊群組BG3作為數(shù)據(jù)的寫入目的地。
當(dāng)寫入到塊群組BG1中的待擦除塊的數(shù)據(jù)是待刪除數(shù)據(jù)時(shí),丟棄所述數(shù)據(jù)。
在本實(shí)施例的塊群組BG2中,來自塊群組BG1的處于第一低使用狀態(tài)的數(shù)據(jù)被首先循序?qū)懭氲綁KB2,1、接下來循序?qū)懭氲綁KB2,2,且隨后類似地寫入到塊B2,3到B2,L。當(dāng)塊群組BG2中所包含的塊B2,1到B2,L的數(shù)據(jù)量超過預(yù)定數(shù)據(jù)量時(shí),依據(jù)FIFO而擦除其中寫入首先完成的塊B2,1且再次將數(shù)據(jù)循序?qū)懭氲浇?jīng)擦除塊B2,1。在完成向塊B2,1的寫入之后,依據(jù)FIFO而擦除塊B2,2。隨后,將數(shù)據(jù)循序?qū)懭氲浇?jīng)擦除塊B2,2。重復(fù)相同控制。
在塊群組BG2中,基于管理信息62而確定寫入到塊群組BG2中的待擦除塊的數(shù)據(jù)是否(例如)被存取達(dá)少于第三次數(shù)或以小于第三頻率被存取。當(dāng)寫入到塊群組BG2中的待擦除塊的數(shù)據(jù)被存取達(dá)少于第三次數(shù)或以小于第三頻率被存取時(shí),擦除所述數(shù)據(jù)。
相比之下,當(dāng)寫入到塊群組BG2中的待擦除塊的數(shù)據(jù)被存取達(dá)第三次數(shù)或更多或以第三頻率或更大被存取時(shí),選擇塊群組BG3作為數(shù)據(jù)的寫入目的地。
當(dāng)寫入到塊群組BG2中的待擦除塊的數(shù)據(jù)是待刪除數(shù)據(jù)時(shí),丟棄所述數(shù)據(jù)。
在本實(shí)施例的塊群組BG3中,來自塊群組BG1的處于第一高使用狀態(tài)的數(shù)據(jù)、來自塊群組BG2的處于第三高使用狀態(tài)的數(shù)據(jù)或來自塊群組BG3的重新寫入數(shù)據(jù)被首先循序?qū)懭氲綁KB3,1、接下來循序?qū)懭氲綁KB3,2,且隨后類似地寫入到塊B3,3到B3,M。當(dāng)塊群組BG3中所包含的塊B3,1到B3,M的數(shù)據(jù)量超過預(yù)定數(shù)據(jù)量時(shí),依據(jù)FIFO而擦 除其中寫入首先完成的塊B3,1且再次將數(shù)據(jù)循序?qū)懭氲浇?jīng)擦除塊B3,1。在完成向塊B3,1的寫入之后,依據(jù)FIFO而擦除塊B3,2。隨后,再次將數(shù)據(jù)循序?qū)懭氲浇?jīng)擦除塊B3,2。重復(fù)相同控制。
在塊群組BG3中,基于管理信息63而確定寫入到塊群組BG3中的待擦除塊的數(shù)據(jù)是否(例如)被存取達(dá)少于第二次數(shù)或以小于第二頻率被存取。當(dāng)寫入到塊群組BG3中的待擦除塊的數(shù)據(jù)被存取達(dá)少于第二次數(shù)或以小于第二頻率被存取時(shí),選擇塊群組BG4作為數(shù)據(jù)的寫入目的地。
相比之下,當(dāng)寫入到塊群組BG3中的待擦除塊的數(shù)據(jù)被存取達(dá)第二次數(shù)或更多或以第二頻率或更大被存取時(shí),再次將數(shù)據(jù)寫入到塊群組BG3。
當(dāng)寫入到塊群組BG3中的待擦除塊的數(shù)據(jù)是待刪除數(shù)據(jù)時(shí),丟棄所述數(shù)據(jù)。
在本實(shí)施例的塊群組BG4中,來自塊群組BG3的處于第二低使用狀態(tài)的數(shù)據(jù)被首先循序?qū)懭氲綁KB4,1、接下來循序?qū)懭氲綁KB4,2,且隨后類似地寫入到塊B4,3到B4,N。當(dāng)塊群組BG4中所包含的塊B4,1到B4,N的數(shù)據(jù)量超過預(yù)定數(shù)據(jù)量時(shí),依據(jù)FIFO而擦除其中寫入首先完成的塊B4,1且再次將數(shù)據(jù)循序?qū)懭氲浇?jīng)擦除塊B4,1。在完成向塊B4,1的寫入之后,依據(jù)FIFO而擦除塊B4,2。隨后,將數(shù)據(jù)循序?qū)懭氲浇?jīng)擦除塊B4,2。重復(fù)相同控制。
在本實(shí)施例中,控制單元14可確定寫入到塊群組BG4的待擦除塊的數(shù)據(jù)是否處于第五高使用狀態(tài)。當(dāng)寫入到塊群組BG4的待擦除塊的數(shù)據(jù)被確定為處于第五高使用狀態(tài)時(shí),就將所述數(shù)據(jù)維持于非易失性高速緩沖存儲(chǔ)器4中來說,控制單元13可將所述數(shù)據(jù)寫入到塊群組BG3的可寫入目的地塊。在此情況中,處理器2可減小塊群組BG1的大小。
在本實(shí)施例中,基于四個(gè)塊群組BG1到BG4而管理數(shù)據(jù)。
舉例來說,在塊群組BG1中管理由處理器2存取一次的第一數(shù)據(jù)(經(jīng)一次存取數(shù)據(jù))。
舉例來說,如果塊群組BG1中的第二數(shù)據(jù)由處理器2存取兩次或更多次且基于FIFO而被從塊群組BG1推出,那么將第二數(shù)據(jù)從塊群組BG1移動(dòng)到塊群組BG3。
應(yīng)注意,在本實(shí)施例中,塊群組BG1的大小大于塊群組BG3的大小。
舉例來說,當(dāng)塊群組BG1中的第三數(shù)據(jù)在未由處理器2存取的情況下基于FIFO而被從塊群組BG1推出時(shí),將第三數(shù)據(jù)從塊群組BG1移動(dòng)到塊群組BG2。
舉例來說,如果塊群組BG3中的第四數(shù)據(jù)在未由處理器2存取的情況下基于FIFO 而被從塊群組BG3清除,那么將第四數(shù)據(jù)從塊群組BG3移動(dòng)到塊群組BG4。
舉例來說,在塊群組BG2及BG4中,可高速緩存元數(shù)據(jù)而非高速緩存數(shù)據(jù)。元數(shù)據(jù)包含與數(shù)據(jù)相關(guān)的信息。換句話說,元數(shù)據(jù)是關(guān)于數(shù)據(jù)的高度抽象且額外的數(shù)據(jù)且被附加到所述數(shù)據(jù)。
在本實(shí)施例中,舉例來說,當(dāng)?shù)谖鍞?shù)據(jù)存儲(chǔ)于塊群組BG1中時(shí),可基于FIFO而推出塊群組BG2中的第六數(shù)據(jù)。
舉例來說,當(dāng)塊群組BG1中的第七數(shù)據(jù)被存取且基于FIFO而被從塊群組BG1推出時(shí),可將第七數(shù)據(jù)從塊群組BG1移動(dòng)到塊群組BG3,可基于FIFO而將塊群組BG3中的第八數(shù)據(jù)從塊群組BG3移動(dòng)到塊群組BG4,且可基于FIFO而從塊群組BG4推出塊群組BG4中的第九數(shù)據(jù)。
舉例來說,當(dāng)存取塊群組BG2中的第十?dāng)?shù)據(jù)時(shí),會(huì)增加塊群組BG1的大小。如果塊群組BG1的大小增加,那么基于FIFO而將塊群組BG3中的第十一數(shù)據(jù)移動(dòng)到塊群組BG4。
舉例來說,當(dāng)塊群組BG4中的第十二數(shù)據(jù)被存取且基于FIFO而被從塊群組BG4推出時(shí),將第十二數(shù)據(jù)移動(dòng)到塊群組BG3,且會(huì)減小塊群組BG1的大小。
在上文所述的本實(shí)施例中,維持確定對(duì)是否將維持塊單位的數(shù)據(jù)進(jìn)行確定,傳送寫入將待維持的塊數(shù)據(jù)寫入到目的地塊,且寫入到非易失性高速緩沖存儲(chǔ)器4的數(shù)據(jù)是每塊地予以擦除。
在本實(shí)施例中,可增加有效高速緩存容量,可提升非易失性高速緩沖存儲(chǔ)器4的位速率,且可增加信息處理裝置17的速度。
在本實(shí)施例中,在不為非易失性高速緩沖存儲(chǔ)器4執(zhí)行無用單元收集(garbage collection)的情況下,可避免性能的降低。由于無用單元收集并非是必需的,因此可減少向非易失性高速緩沖存儲(chǔ)器4的寫入次數(shù)且可增加非易失性高速緩沖存儲(chǔ)器4的壽命。此外,由于無用單元收集并非是必需的,因此不需要保證有設(shè)置區(qū)域(provisioning area)。因此,可增加可用作高速緩沖存儲(chǔ)器的數(shù)據(jù)容量,且可提高使用效率。
舉例來說,當(dāng)使用非易失性存儲(chǔ)器作為高速緩沖存儲(chǔ)器且無論塊的邊界如何都丟棄數(shù)據(jù)時(shí),可頻繁地執(zhí)行無用單元收集以將非易失性存儲(chǔ)器的塊中的有效數(shù)據(jù)移動(dòng)到另一塊。在本實(shí)施例中,不需要在非易失性高速緩沖存儲(chǔ)器4中執(zhí)行無用單元收集。因此,如上文所描述,在本實(shí)施例中,可增加非易失性高速緩沖存儲(chǔ)器4的壽命。
[第二實(shí)施例]
本實(shí)施例是第一實(shí)施例的經(jīng)修改實(shí)例。在本實(shí)施例中,描述在包含高速緩存控制單元9的信息處理裝置17與SSD 5之間的數(shù)據(jù)及信息發(fā)射及接收。
在本實(shí)施例中,使用邏輯地址作為數(shù)據(jù)的識(shí)別信息。然而,可通過其它信息來識(shí)別數(shù)據(jù)。
圖6是展示根據(jù)本實(shí)施例的信息處理系統(tǒng)35的配置實(shí)例的框圖。
除第一實(shí)施例中所描述的組成要素以外,高速緩存控制單元9進(jìn)一步包含發(fā)射單元18、接收單元19、寫入單元20及發(fā)射單元21。
發(fā)射單元18向SSD 5發(fā)射用于SSD 5的寫入數(shù)據(jù)及所述寫入數(shù)據(jù)的地址。在本實(shí)施例中,舉例來說,從發(fā)射單元18發(fā)射到SSD 5的地址為邏輯地址。
接收單元19從SSD 5接收包含指示寫入到待經(jīng)受無用單元收集的塊的有效數(shù)據(jù)的邏輯地址的塊信息。
在本實(shí)施例中,所述塊信息可包含使SSD 5中的每一塊的識(shí)別信息與寫入到每一塊的數(shù)據(jù)的識(shí)別信息相關(guān)的信息。
寫入單元20基于從SSD 5接收的塊信息及管理信息61到64而將由塊信息中所包含的邏輯地址指示的有效數(shù)據(jù)的全部或一部分寫入(轉(zhuǎn)錄)到除非易失性存儲(chǔ)器24之外的存儲(chǔ)器。舉例來說,另一存儲(chǔ)器可為非易失性高速緩沖存儲(chǔ)器4。
舉例來說,在接收到刪除命令的情況下,寫入單元20將指示是待刪除數(shù)據(jù)(刪除候選者)的數(shù)據(jù)的邏輯地址從塊信息中所包含的指示有效數(shù)據(jù)的邏輯地址排除。因此,可選擇寫入到待經(jīng)受無用單元收集的塊且并非待刪除數(shù)據(jù)的有效數(shù)據(jù)。寫入單元20將選定數(shù)據(jù)寫入到另一存儲(chǔ)器。
發(fā)射單元21產(chǎn)生包含指示待刪除數(shù)據(jù)的邏輯地址的刪除信息并將所述刪除信息發(fā)射到SSD 5。舉例來說,所述刪除信息可包含指示塊信息中所包含的有效數(shù)據(jù)的邏輯地址中指示是未被寫入單元20寫入到另一存儲(chǔ)器的刪除目標(biāo)的數(shù)據(jù)的邏輯地址。代替刪除信息,可將包含待維持?jǐn)?shù)據(jù)的邏輯地址的維持信息從發(fā)射單元21發(fā)射到SSD 5。
SSD 5包含處理器22、存儲(chǔ)器23及非易失性存儲(chǔ)器24。
舉例來說,存儲(chǔ)器23存儲(chǔ)各種類型的控制數(shù)據(jù),例如地址轉(zhuǎn)換信息32、有效/無效信息33及刪除信息34。存儲(chǔ)器23可為例如DRAM或SRAM等易失性存儲(chǔ)器,或者可為非易失性存儲(chǔ)器。存儲(chǔ)器23可包含于非易失性存儲(chǔ)器24中。
處理器22通過執(zhí)行存儲(chǔ)于處理器22中的存儲(chǔ)器中的程序、存儲(chǔ)于存儲(chǔ)器23中的程序或存儲(chǔ)于非易失性存儲(chǔ)器24中的程序而充當(dāng)?shù)刂忿D(zhuǎn)換單元25、寫入單元26、有效/無效產(chǎn)生單元27、選擇單元28、發(fā)射單元29、接收單元30及無用單元收集單元31。
在本實(shí)施例中,舉例來說,用以致使處理器22充當(dāng)?shù)刂忿D(zhuǎn)換單元25、寫入單元26、有效/無效產(chǎn)生單元27、選擇單元28、發(fā)射單元29、接收單元30及無用單元收集單元31的程序可為OS、中間件或固件。在本實(shí)施例中,可通過硬件來實(shí)施地址轉(zhuǎn)換單元25、寫入單元26、有效/無效產(chǎn)生單元27、選擇單元28、發(fā)射單元29、接收單元30及無用單元收集單元31的全部或一部分。
當(dāng)從高速緩存控制單元9接收到寫入數(shù)據(jù)及所述寫入數(shù)據(jù)的邏輯地址時(shí),地址轉(zhuǎn)換單元25產(chǎn)生使寫入數(shù)據(jù)的邏輯地址與指示非易失性存儲(chǔ)器24中的存儲(chǔ)所述寫入數(shù)據(jù)的位置的物理地址相關(guān)的信息,且將所述信息寄存到地址轉(zhuǎn)換信息32。
在本實(shí)施例中,地址轉(zhuǎn)換單元25由處理器22實(shí)施。然而,地址轉(zhuǎn)換單元25可與處理器22分開而配置。
地址轉(zhuǎn)換單元25基于(例如)表形式地址轉(zhuǎn)換信息32而轉(zhuǎn)換地址。代替地,可通過關(guān)鍵字-值檢索來轉(zhuǎn)換地址。舉例來說,可通過使用邏輯地址作為關(guān)鍵字并使用物理地址作為值而借助于關(guān)鍵字-值檢索來實(shí)施地址轉(zhuǎn)換。
寫入單元26將寫入數(shù)據(jù)寫入到由地址轉(zhuǎn)換單元25獲得的物理地址所指示的位置。
有效/無效產(chǎn)生單元27基于例如地址轉(zhuǎn)換信息32而產(chǎn)生指示寫入到非易失性存儲(chǔ)器24的數(shù)據(jù)的每一項(xiàng)是有效數(shù)據(jù)還是無效數(shù)據(jù)的有效/無效信息33。隨后,有效/無效產(chǎn)生單元27將有效/無效信息33存儲(chǔ)于存儲(chǔ)器23中。
選擇單元28選擇待經(jīng)受無用單元收集的塊。
舉例來說,選擇單元28可從非易失性存儲(chǔ)器24中的塊選擇具有最舊寫入時(shí)間的塊來作為待經(jīng)受無用單元收集的塊。
舉例來說,選擇單元28可隨機(jī)地從非易失性存儲(chǔ)器24中的塊選擇待經(jīng)受無用單元收集的塊。
舉例來說,選擇單元28可基于有效/無效信息33而選擇具有最大無效數(shù)據(jù)量或具有大于預(yù)定量的無效數(shù)據(jù)量作為待經(jīng)受無用單元收集的塊。
舉例來說,選擇單元28可基于有效/無效信息33及刪除信息34而選擇具有最大無效數(shù)據(jù)及待刪除數(shù)據(jù)量或具有大于預(yù)定量的無效數(shù)據(jù)及待刪除數(shù)據(jù)量的塊作為待經(jīng)受無用單元收集的塊。
發(fā)射單元29通過將指示由有效/無效信息33確定為無效的無效數(shù)據(jù)的邏輯地址從指示寫入到待經(jīng)受無用單元收集的塊的數(shù)據(jù)的邏輯地址刪除而產(chǎn)生塊信息。換句話說,所述塊信息包含使待經(jīng)受無用單元收集的塊的識(shí)別信息與指示寫入到所述塊的有效數(shù)據(jù)的邏輯地址相關(guān)的信息。發(fā)射單元29將所述塊信息發(fā)射到高速緩沖存儲(chǔ)器控制單元9。
接收單元30從高速緩沖存儲(chǔ)器控制單元9接收刪除信息并將刪除信息34存儲(chǔ)于非易失性存儲(chǔ)器24中。
無用單元收集單元31基于有效/無效信息33及存儲(chǔ)于非易失性存儲(chǔ)器24中的刪除信息34而將無效數(shù)據(jù)及待刪除數(shù)據(jù)從寫入到待經(jīng)受無用單元收集的塊的數(shù)據(jù)排除,且僅為并非待刪除數(shù)據(jù)的有效數(shù)據(jù)執(zhí)行無用單元收集。
圖7是展示根據(jù)本實(shí)施例由信息處理系統(tǒng)執(zhí)行的過程的實(shí)例的流程圖。
在步驟S701中,發(fā)射單元18將寫入數(shù)據(jù)及邏輯地址發(fā)射到SSD 5。
在步驟S702中,地址轉(zhuǎn)換單元25接收寫入數(shù)據(jù)及邏輯地址,并將使寫入數(shù)據(jù)的邏輯地址與物理地址相關(guān)的信息寄存到地址轉(zhuǎn)換信息32。
在步驟S703中,寫入單元26將寫入數(shù)據(jù)寫入到非易失性存儲(chǔ)器24中的由所述物理地址指示的位置。
在步驟S704中,有效/無效產(chǎn)生單元27產(chǎn)生指示寫入到非易失性存儲(chǔ)器24的每一數(shù)據(jù)項(xiàng)是有效數(shù)據(jù)還是無效數(shù)據(jù)的有效/無效信息33并將有效/無效信息33存儲(chǔ)于存儲(chǔ)器23中。
在步驟S705中,選擇單元28選擇待經(jīng)受無用單元收集的塊。
在步驟S706中,發(fā)射單元29通過將指示由有效/無效信息33指示為無效的無效數(shù)據(jù)的邏輯地址從指示寫入到待經(jīng)受無用單元收集的塊的數(shù)據(jù)的邏輯地址刪除而產(chǎn)生塊信息,并將所述塊信息發(fā)射到高速緩存控制單元9。
在步驟S707中,接收單元19從SSD 5接收塊信息。
在步驟S708中,寫入單元20基于從SSD 5接收的塊信息以及管理信息61到64而將由塊信息中所包含的邏輯地址指示的數(shù)據(jù)的全部或一部分寫入到除SSD 5的非易失性存儲(chǔ)器24之外的存儲(chǔ)器。
舉例來說,在接收到刪除命令的情況下,寫入單元20將指示待刪除數(shù)據(jù)的邏輯地址從塊信息中所包含的邏輯地址排除,并將由所述邏輯地址指示的待維持?jǐn)?shù)據(jù)寫入到另一存儲(chǔ)器。
在步驟S709中,發(fā)射單元21將包含待刪除數(shù)據(jù)的邏輯地址的刪除信息發(fā)射到SSD5。
在步驟S710中,接收單元30從高速緩存控制單元9接收刪除信息并將刪除信息34存儲(chǔ)于存儲(chǔ)器23中。
在步驟S711中,無用單元收集單元31基于有效/無效信息33及刪除信息34而將無效數(shù)據(jù)及待刪除數(shù)據(jù)數(shù)據(jù)從寫入到待經(jīng)受無用單元收集的塊的數(shù)據(jù)排除,且針對(duì)并非待 刪除數(shù)據(jù)的有效數(shù)據(jù)執(zhí)行無用單元收集。
在上文所描述的本實(shí)施例中,高速緩存控制單元9可從SSD 5獲取關(guān)于寫入到非易失性存儲(chǔ)器24的塊的數(shù)據(jù)的信息。高速緩存控制單元9可借此辨識(shí)數(shù)據(jù)在非易失性存儲(chǔ)器24的塊中的寫入狀態(tài)。舉例來說,在本實(shí)施例中,可辨識(shí)寫入到非易失性存儲(chǔ)器24的塊的數(shù)據(jù)是有效數(shù)據(jù)還是無效數(shù)據(jù)及是否可刪除所述數(shù)據(jù)。
在本實(shí)施例中,SSD 5包含用以確定數(shù)據(jù)是有效數(shù)據(jù)還是無效數(shù)據(jù)的有效/無效信息33及用以確定是否可刪除數(shù)據(jù)的刪除信息34。借此,可在于SSD 5中執(zhí)行無用單元收集時(shí)確定是否將擦除寫入到待經(jīng)受無用單元收集的塊的數(shù)據(jù)。因此,可避免非必需數(shù)據(jù)寫入且可增加非易失性存儲(chǔ)器24的壽命。
在本實(shí)施例中,高速緩存控制單元9可防止由從SSD 5接收的塊信息中所包含的邏輯地址指示的有效數(shù)據(jù)當(dāng)中的刪除目標(biāo)數(shù)據(jù)被從非易失性存儲(chǔ)器24轉(zhuǎn)錄到另一存儲(chǔ)器。在本實(shí)施例中,SSD 5可將并未從高速緩存控制單元9轉(zhuǎn)錄到另一存儲(chǔ)器的數(shù)據(jù)(舉例來說,可刪除的無效數(shù)據(jù)或有效數(shù)據(jù))從SSD 5刪除。
在上文所描述的本實(shí)施例中,將與待擦除塊相關(guān)的塊信息從SSD 5發(fā)射到信息處理裝置17。然而,舉例來說,所述塊信息可包含使非易失性存儲(chǔ)器24中的每一塊與寫入到每一塊的數(shù)據(jù)的識(shí)別信息相關(guān)的信息。信息處理裝置17可通過從SSD 5接收關(guān)系信息來辨識(shí)SSD 5中的塊與數(shù)據(jù)之間的存儲(chǔ)關(guān)系。
[第三實(shí)施例]
在本實(shí)施例中,進(jìn)一步詳細(xì)地解釋包含第一實(shí)施例及第二實(shí)施例中所解釋的信息處理系統(tǒng)17及SSD 5的信息處理系統(tǒng)35。
圖8是展示根據(jù)本實(shí)施例的信息處理系統(tǒng)35的詳細(xì)結(jié)構(gòu)的實(shí)例的框圖。
信息處理系統(tǒng)35包含信息處理裝置17及存儲(chǔ)器系統(tǒng)37。
根據(jù)第一實(shí)施例及第二實(shí)施例的SSD 5對(duì)應(yīng)于存儲(chǔ)器系統(tǒng)37。
SSD 5的處理器22對(duì)應(yīng)于CPU 43B。
地址轉(zhuǎn)換信息32對(duì)應(yīng)于LUT(查找表)45。
存儲(chǔ)器23對(duì)應(yīng)于DRAM 47。
信息處理裝置17充當(dāng)主機(jī)裝置。
存儲(chǔ)器系統(tǒng)37的控制器36包含前端4F及后端4B。
前端(主機(jī)通信單元)4F包含主機(jī)接口41、主機(jī)接口控制器42、編碼/解碼單元(高級(jí)加密標(biāo)準(zhǔn)(AES))44及CPU 43F。
主機(jī)接口41與信息處理裝置17通信以交換請(qǐng)求(寫入命令、讀取命令、擦除命令)、 LBA(邏輯塊尋址)及數(shù)據(jù)。
主機(jī)接口控制器(控制單元)42基于CPU 43F的控制而控制主機(jī)接口41的通信。
編碼/解碼單元44對(duì)在數(shù)據(jù)寫入操作中從主機(jī)接口控制器42發(fā)射的寫入數(shù)據(jù)(明文)進(jìn)行編碼。編碼/解碼單元44對(duì)在數(shù)據(jù)讀取操作中從后端4B的讀取緩沖器RB發(fā)射的經(jīng)編碼讀取數(shù)據(jù)進(jìn)行解碼。應(yīng)注意,可按照臨時(shí)命令而在不使用編碼/解碼單元44的情況下執(zhí)行寫入數(shù)據(jù)及讀取數(shù)據(jù)的發(fā)射。
CPU 43F控制前端4F的以上組件41、42及44,以控制前端4F的整個(gè)功能。
后端(存儲(chǔ)器通信單元)4B包含寫入緩沖器WB、讀取緩沖器RB、LUT 45、DDRC 46、DRAM 47、DMAC 48、ECC 49、隨機(jī)函數(shù)發(fā)生器RZ、NANDC 50及CPU 43B。
寫入緩沖器(寫入數(shù)據(jù)傳送單元)WB暫時(shí)地存儲(chǔ)從信息處理裝置17發(fā)射的寫入數(shù)據(jù)。具體來說,寫入緩沖器WB暫時(shí)地存儲(chǔ)所述數(shù)據(jù)直到其達(dá)到適合于非易失性存儲(chǔ)器24的預(yù)定數(shù)據(jù)大小為止。
讀取緩沖器(讀取數(shù)據(jù)傳送單元)RB暫時(shí)地存儲(chǔ)從非易失性存儲(chǔ)器24讀取的讀取數(shù)據(jù)。具體來說,讀取緩沖器RB將讀取數(shù)據(jù)重新布置為適合于信息處理裝置17的次序(由信息處理裝置17指定的邏輯地址LBA的次序)。
LUT 45是用以將邏輯地址LBA轉(zhuǎn)換成物理地址PBA(物理塊尋址)的數(shù)據(jù)。
DDRC 46控制DRAM 47中的雙倍數(shù)據(jù)速率(DDR)。
DRAM 47是存儲(chǔ)例如LUT 45的非易失性存儲(chǔ)器。
直接存儲(chǔ)器存取控制器(DMAC)48經(jīng)由內(nèi)部總線IB傳送寫入數(shù)據(jù)及讀取數(shù)據(jù)。在圖8中,展示了僅單個(gè)DMAC 48;然而,控制器36可包含兩個(gè)或兩個(gè)以上DMAC 48。DMAC 48可設(shè)定于控制器36內(nèi)部的各種位置中。
ECC(錯(cuò)誤校正單元)49給從寫入緩沖器WB發(fā)射的寫入數(shù)據(jù)添加錯(cuò)誤校正碼(ECC)。當(dāng)將讀取數(shù)據(jù)發(fā)射到讀取緩沖器RB時(shí),如必要,則ECC 49使用所添加ECC來校正從非易失性存儲(chǔ)器24讀取的讀取數(shù)據(jù)。
在數(shù)據(jù)寫入操作中,隨機(jī)函數(shù)發(fā)生器RZ(或置亂器)以一方式散布寫入數(shù)據(jù),使得所述寫入數(shù)據(jù)不被偏置于某一頁中或不被偏置于非易失性存儲(chǔ)器24的字線方向上。通過以此方式散布寫入數(shù)據(jù),可使寫入次數(shù)標(biāo)準(zhǔn)化且可延長(zhǎng)非易失性存儲(chǔ)器24的存儲(chǔ)器單元MC的單元壽命。因此,可提高非易失性存儲(chǔ)器24的可靠性。此外,在數(shù)據(jù)讀取操作中,從非易失性存儲(chǔ)器24讀取的讀取數(shù)據(jù)會(huì)通過隨機(jī)函數(shù)發(fā)生器RZ。
NAND控制器(NANDC)50使用多個(gè)通道(圖中展示了四個(gè)通道CH0到CH3)來并行地存取非易失性存儲(chǔ)器24以滿足對(duì)某一速度的需求。
CPU 43B控制后端4B的以上每一組件(45到50及RZ),以控制后端4B的整個(gè)功能。
應(yīng)注意,控制器36的結(jié)構(gòu)僅為實(shí)例且并不打算由其進(jìn)行限制。
圖9是展示根據(jù)本實(shí)施例的存儲(chǔ)系統(tǒng)的實(shí)例的透視圖。
存儲(chǔ)系統(tǒng)100包含存儲(chǔ)器系統(tǒng)37來作為SSD。
舉例來說,存儲(chǔ)器系統(tǒng)37是外部大小將為大約20mm×30mm的相對(duì)小的模塊。應(yīng)注意,存儲(chǔ)器系統(tǒng)37的大小及尺度并不限于此且可任意地改變成各種大小。
此外,存儲(chǔ)器系統(tǒng)37可適用于信息處理裝置17,以作為用于在公司(企業(yè))等中所采用的數(shù)據(jù)中心或云計(jì)算系統(tǒng)中的服務(wù)器。因此,存儲(chǔ)器系統(tǒng)37可為企業(yè)SSD(eSSD)。
舉例來說,存儲(chǔ)器系統(tǒng)37包含向上開口的多個(gè)連接器(舉例來說,插槽)38。每一連接器38均為串行附接SCSI(SAS)連接器等。借助SAS連接器,可經(jīng)由6Gbps的雙端口在信息處理裝置17與每一存儲(chǔ)器系統(tǒng)37之間建立高速相互通信。應(yīng)注意,連接器38可為快速PCI(PCIe)或快速NVM(NVMe)。
多個(gè)存儲(chǔ)器系統(tǒng)37個(gè)別地附接到信息處理裝置17的連接器38且被以一種布置形式支撐使得其沿大致垂直方向站立。使用此結(jié)構(gòu),多個(gè)存儲(chǔ)器系統(tǒng)37可被共同地安裝成緊湊大小,且可使存儲(chǔ)器系統(tǒng)37小型化。此外,本實(shí)施例的每一存儲(chǔ)器系統(tǒng)37的形狀為2.5英寸的小形狀因子(SFF)。由于此形狀,存儲(chǔ)器系統(tǒng)37可與企業(yè)HDD(eHDD)兼容且可實(shí)現(xiàn)與eHDD的簡(jiǎn)單系統(tǒng)兼容性。
應(yīng)注意,存儲(chǔ)器系統(tǒng)37并不限于在企業(yè)HDD中使用。舉例來說,存儲(chǔ)器系統(tǒng)37可用作消費(fèi)型電子裝置(例如筆記型便攜式計(jì)算機(jī)或平板計(jì)算機(jī)終端)的存儲(chǔ)器媒體。
如從上文可理解,具有本實(shí)施例的結(jié)構(gòu)的信息處理系統(tǒng)35及存儲(chǔ)系統(tǒng)100可在具有第二實(shí)施例的相同優(yōu)點(diǎn)的情況下實(shí)現(xiàn)大容量存儲(chǔ)優(yōu)點(diǎn)。
根據(jù)本實(shí)施例的存儲(chǔ)器系統(tǒng)37的結(jié)構(gòu)可應(yīng)用于根據(jù)第一實(shí)施例的信息處理裝置17。舉例來說,根據(jù)第一實(shí)施例的處理器2可對(duì)應(yīng)于CPU 43B。地址轉(zhuǎn)換信息7可對(duì)應(yīng)于LUT 45。存儲(chǔ)器3對(duì)應(yīng)于DRAM 47。非易失性高速緩沖存儲(chǔ)器4可對(duì)應(yīng)于非易失性存儲(chǔ)器24。
盡管已描述了某些實(shí)施例,但這些實(shí)施例是僅以實(shí)例方式呈現(xiàn)的且并不打算限制本發(fā)明的范圍。實(shí)際上,本文中所描述的新穎實(shí)施例可以多種其它形式來體現(xiàn);此外,可在不背離本發(fā)明的精神的情況下對(duì)本文中所描述的實(shí)施例的形式做出各種省略、替代及改變。打算使所附權(quán)利要求書及其等效內(nèi)容涵蓋此類將歸屬于本發(fā)明范圍及精神內(nèi)的形式或修改。