專利名稱:存儲裝置管理裝置及用于管理存儲裝置的方法
技術(shù)領(lǐng)域:
在此描述的實施例涉及配置為管理大量存儲裝置的存儲狀態(tài)的存儲裝置管理設(shè)備及管理存儲裝置的方法。
背景技術(shù):
計算機通常包括多個類型的存儲器,例如,高速緩沖存儲器(cache memory),主存儲器和二級存儲裝置(硬盤驅(qū)動器或類似的)。能夠執(zhí)行更快訪問的存儲器具有更小的容量并且更貴。在上述例子中,以高速緩沖存儲器,主存儲器和二級存儲裝置的順序增加訪問速度和存儲容量。換句話說,高速緩沖存儲器具有在它們中最高的訪問速度和最小的存儲容量,以及二級存儲裝置具有在它們中最低的訪問速度和最大的存儲容量。因此,存儲器是層級式的。具體地,具有高使用頻率的數(shù)據(jù)存儲到高速緩沖存儲器中,具有中使用頻率的數(shù)據(jù)存儲到主存儲裝置中,以及具有低使用頻率的數(shù)據(jù)存儲到二級存儲裝置中。在這種方式中,取決于存儲器的特性,選擇在其上存儲數(shù)據(jù)的存儲器,產(chǎn)生通過計算機的存儲器的有效使用。例如,公開號為2008-242944的日本專利申請描述了一種在計算機中提供的集成的存儲器管理設(shè)備來以集成的方式管理到高速緩沖存儲器和主存儲器的訪問。另外,公開號為2009-151603的日本專利申請描述了一種使用MRAM作為主存儲裝置并且使用其他非易失性的存儲器作為備份的技術(shù)。
圖I是根據(jù)本發(fā)明的實施例的存儲器系統(tǒng)的方塊圖;圖2示出根據(jù)實施例的由存儲器控制器使用的頁面表;圖3示出根據(jù)實施例的由存儲器控制器使用的RAM物理頁面管理表;圖4示出根據(jù)實施例的由存儲器控制器使用的SLC類型的NAND閃存物理頁面管
理表;圖5示出根據(jù)實施例的由存儲器控制器使用的MLC類型的NAND閃存物理頁面管
理表;圖6示出根據(jù)實施例的由存儲器控制器分配存儲器區(qū)域的流程圖;圖7示出根據(jù)實施例的由存儲器控制器執(zhí)行的在SLC類型的NAND閃存中的無用單元收集(garbage collection)的流程圖;圖8示出根據(jù)實施例的由存儲器控制器執(zhí)行的在MLC類型的NAND閃存中的無用單元收集的流程圖9示出根據(jù)響應在存儲器系統(tǒng)中數(shù)據(jù)的更新請求的實施例的由存儲器控制器執(zhí)行的過程的流程圖10示出根據(jù)響應在存儲器系統(tǒng)中數(shù)據(jù)的讀取請求的實施例的由存儲器控制器執(zhí)行的過程的流程圖;圖11示出根據(jù)關(guān)于在存儲器系統(tǒng)中數(shù)據(jù)的更新請求的實施例的由存儲器控制器執(zhí)行的過程的流程圖;圖12示出根據(jù)本發(fā)明另一實施例的存儲器系統(tǒng)的方塊圖。
具體實施例方式通常,根據(jù)一個實施例,公開了一種存儲裝置管理裝置。該管理裝置連接到隨機存取存儲器(Random Access Memory, RAM),具有比隨機存取存儲器更低的重寫計數(shù)上限的第一存儲裝置,和處理器。當隨機存取存儲器包括足夠的空閑區(qū)域以存儲作為來自處理器的寫入請求的目標的寫入數(shù)據(jù)時,將該寫入數(shù)據(jù)存儲到隨機存取存儲器上。以自從上次訪問經(jīng)過時間的降序的順序選擇的隨機存取存儲器上的數(shù)據(jù)順序地復制到第一存儲裝置上,并且釋放在先前已存儲復制數(shù)據(jù)的隨機存取存儲器中的區(qū)域。當作為來自處理器的讀取請求的目標的讀取數(shù)據(jù)存儲到隨機存取存儲器上時,讀取數(shù)據(jù)從隨機存取存儲器中讀取到處理器。當讀取數(shù)據(jù)存儲到第一存儲裝置時,將讀取數(shù)據(jù)復制到隨機存取存儲器上并從隨機存取存儲器讀出到處理器。以下將參考附圖描述實施例。在下面的描述中,具有實質(zhì)上相同功能的元件和配置由相同的附圖數(shù)字表示。僅在需要時給出重復的描述。每一個功能塊可作為硬件,軟件,或硬件和軟件的結(jié)合來實現(xiàn)。因此,一般地,將按照它的功能來描述每一個塊以致清楚地指出功能塊所具有的上述配置。這些功能能否由硬件或軟件執(zhí)行取決于施加在具體實施例或整個系統(tǒng)的設(shè)計限制。對于每一個具體實施例本領(lǐng)域技術(shù)人員能夠通過任何不同的方法實現(xiàn)該功能。但是,所有的實現(xiàn)技術(shù)包括在實施例的范疇中。另外,在具體的例子中如下所述的功能塊相互不同并不重要。例如,某些功能可通過不同于下面說明的那些功能塊執(zhí)行。此外,所示的功能塊可分為功能子塊。實施例不會由的特定功能塊的說明限制。圖I是示出根據(jù)一個實施例的存儲器系統(tǒng)和處理器的方塊圖。如圖I所示,存儲器系統(tǒng)2連接到處理器I (信息處理裝置)I。所述存儲器系統(tǒng)2包括存儲器控制器3和多個存儲裝置4a到4c。處理器I經(jīng)由總線連接到存儲器控制器(存儲器管理裝置)3。所述存儲器控制器3連接到多個存儲器。在圖I中,描述了三個存儲裝置4a到4c。存儲器控制器3和存儲裝置4a到4c構(gòu)成存儲器系統(tǒng)2。存儲裝置4a到4c構(gòu)成用于存儲器系統(tǒng)2的主存儲器?,F(xiàn)在,將進一步在細節(jié)上描述每一個元件的配置和操作。處理器I包括高速緩沖存儲器11。高速緩沖存儲器11用作正常數(shù)據(jù)高速緩存或指令高速緩存。處理器I讀取存儲在存儲裝置4a到4c或二級存儲裝置(在圖中未示出)上的數(shù)據(jù)(包括程序和命令)以經(jīng)由與數(shù)據(jù)或使用數(shù)據(jù)一致的應用(包括操作系統(tǒng))執(zhí)行由用戶請求的處理。存儲器控制器3讀取存儲在存儲裝置4a到4c或二級存儲裝置(在圖中未示出)上的數(shù)據(jù)(包括程序和命令)以管理如何在存儲設(shè)備4a到4c上存儲與數(shù)據(jù)或使用數(shù)據(jù)(稍后討論)一致地存儲數(shù)據(jù)。存儲器控制器3執(zhí)行由處理器I請求的數(shù)據(jù)讀取和數(shù)據(jù)寫入。存儲器控制器3包括多個功能塊(子單元)。功能塊實際上由存儲器控制器3執(zhí)行不同操作中的一個或多個。具體地,功能塊包括未使用的頁面準備部31,存儲器操作控制部32,表參考部33,表管理(更新)部34,和標記檢查部35。存儲器控制器3的操作(包括功能塊的操作)將在下面詳細描述。存儲裝置4a到4c包括不同類型和特性的存儲器。按照存儲裝置4a,4b和4c的順序,存儲裝置可讀取和寫入數(shù)據(jù)的速度下降,存儲裝置的容量增加,并且重寫計數(shù)上限增力口。即存儲裝置4a可比存儲裝置4b更快地寫入和讀取數(shù)據(jù)并且具有比存儲裝置4b更小的容量和更高的重寫計數(shù)上限。相似的,存儲裝置4b可比存儲裝置4c更快地寫入和讀取數(shù)據(jù)并且具有比存儲裝置4c更小的容量和更高的重寫計數(shù)上限。存儲裝置4a的一個具體的實施例為任意RAM和典型符合在通用計算機中作為主 存儲器使用的所需規(guī)格的存儲器。存儲裝置4a的更多具體的實施例包括磁阻隨機存取存儲器(MRAM),動態(tài)隨機存取存儲器(DRAM),鐵電隨機存取存儲器(FeRAM),相變隨機存取存儲器(PCRAM),和電阻式隨機存取存儲器(ReRAM)。其他例子為每個都在通用計算機中作為主存儲器使用的FPM-DRAM,ED0-DRAM,和SDRAM。但是,因為除了 DRAM之外的這些存儲器是非易失性的,而MRAM和FeRAM可以與DRAM相似的高速度寫入和讀取數(shù)據(jù),因此MRAM和FeRAM是優(yōu)選的。例如,使用非易失性存儲器減少了供電恢復后從二級存儲裝置加載到主存儲器所需的數(shù)據(jù),從而減少了主存儲器準備好之前所需的時間。存儲裝置4b的一個具體的例子是非易失性的半導體存儲器。存儲裝置4b更多具體的例子包括單級單元(SLC)型NAND快閃存儲器。NAND快閃存儲器在頁面單元中讀取或?qū)懭霐?shù)據(jù)并在塊單元中擦除數(shù)據(jù)。頁面包括串行連接的存儲器單元。塊包括連續(xù)的頁面。SLC NAND快閃存儲器的一個單元存儲I位(bit)數(shù)據(jù)。通常,SLC NAND快閃存儲器能夠比多極單元(MLC)型NAND快閃存儲器(將在下面介紹)更快地讀取和寫入數(shù)據(jù),并具有更高的重寫計數(shù)上限。但是,SLC NAND快閃存儲器比MLC NAND快閃存儲器具有更低的比特密度并且不太利于增加容量。存儲裝置4c的一個具體的例子是非易失性的半導體存儲器。存儲裝置4b的更多具體的例子包括MLC NAND快閃存儲器。MLC NAND快閃存儲器的一個單元存儲至少兩位(bits)的數(shù)據(jù)。通常,MLC NAND快閃存儲器比SLC NAND快閃存儲器更慢地讀取和寫入數(shù)據(jù),并且具有更低的重寫計數(shù)上限。但是,MLC NAND快閃存儲器具有比SLC NAND快閃存儲器更高的比特密度并且因此更適合容量的增加。例如通過存儲裝置4c使用一個單元存儲兩位(2-bit)數(shù)據(jù)的方式。存儲裝置4a到4c不限于上述例子。存儲器的數(shù)量也不限于上述例子。例如,可提供存儲裝置4d (在圖中未示出)。存儲裝置4c可比存儲裝置4d更快地寫入和讀取數(shù)據(jù)并具有更小的容量和更高的重寫計數(shù)上限??商峁┚哂邢嗨脐P(guān)系的額外的存儲器。根據(jù)上面描述的例子,存儲裝置4d的一個例子是配置為使用一個單元存儲三位數(shù)據(jù)的MLC NAND快閃存儲器??蛇x擇地,存儲裝置4d可以是硬盤驅(qū)動器。現(xiàn)在,將描述根據(jù)本實施例的存儲器系統(tǒng)的操作。在下面的描述中,存儲裝置4a到4c以舉例的方式分別為RAM,SLC NAND快閃存儲器,和MLC NAND快閃存儲器,因此它們可以分別稱為RAM,SLC NAND快閃存儲器,和MLC NAND快閃存儲器。
在圖2到圖5中示出存儲器控制器3使用表來管理在RAM 4a,SLC NAND快閃存儲器4b,和MLC NAND快閃存儲器4c中的數(shù)據(jù)的存儲。例如,在存儲器系統(tǒng)2上電后,存儲器控制器3 (表管理部34)從例如二級存儲裝置讀取用于存儲器控制器3的控制程序到RAM4a上。存儲器控制器3依照控制程序操作??蓪⒖刂瞥绦蜃x取到存儲器控制器3專用的RAM36 上。在上電之后,存儲器控制器3 (表管理部34)依照控制程序在RAM 4a中創(chuàng)建如圖
2到5中所示的被配置的表??稍诖鎯ζ骺刂破?6專用的RAM36上創(chuàng)建表。 圖2示出了頁面表(邏輯頁面地址到物理頁面地址的轉(zhuǎn)換表)。圖3示出了存儲裝置4a (RAM)的物理頁面管理表。圖4示出存儲裝置4b (SLC NAND快閃存儲器)的物理頁面管理表。圖5示出了存儲裝置4c (MLC NAND快閃存儲器)的物理頁面管理表。如圖2所示,頁面表包括各自的邏輯頁面地址的條目(entry)。頁面表示出在每一個邏輯頁面中數(shù)據(jù)的狀態(tài)。條目與在SLC NAND快閃存儲器4b或MLC NAND快閃存儲器4c中各自的頁面相關(guān)聯(lián)地彼此獨立。通常,SLC NAND快閃存儲器4b和MLC NAND快閃存儲器4c兩者都包括相同大小(例如4kB)的頁面。因此,邏輯頁面地址被分配給每一個物理頁面大小(在上述例子中為4kB)。相對的,在與在NAND閃存4b或4c中的物理頁面大小相等的單元中也管理存儲裝置4a (RAM)的狀態(tài)。每一個條目包括標記域,RAM地址域和NAND地址域。標記域指示相應邏輯頁面地址的數(shù)據(jù)的大致位置。標記包括E, M, NS,匪,MS,和MM,并且這些標記之一進入標記域。E指示相應邏輯頁面地址的數(shù)據(jù)沒有存儲在RAM 4a,SLC NAND快閃存儲器4b和MLC NAND快閃存儲器4c中任一個上。M指示相應邏輯頁面地址的數(shù)據(jù)存儲在RAM4a上。NS指示相應邏輯頁面地址的數(shù)據(jù)存儲在SLC NAND快閃存儲器4b上。匪指示相應邏輯頁面地址的數(shù)據(jù)存儲在MLC NAND快閃存儲器4c上。MS指示相應邏輯頁面地址的數(shù)據(jù)存儲在RAM 4a和SLC NAND快閃存儲器4b兩者上。MM指示相應邏輯頁面地址的數(shù)據(jù)存儲在RAM 4a和MLCNAND快閃存儲器4c兩者上。當相應標記為M或MS或MM時,RAM地址域示出存儲相應邏輯頁面地址的數(shù)據(jù)的RAM 4a中的物理頁面。當相應標記為NS或匪或MS或MM時,NAND地址域指示存儲相應邏輯頁面地址的數(shù)據(jù)的SLC或MLC NAND快閃存儲器4b或4c中的物理頁面。如圖3所示,RAM (存儲裝置4a)物理頁面管理表包括在RAM 4a中各自的物理頁面的條目。每一個條目包括有效/無效的指示域和上次訪問時間域(last access timefield)。有效/無效指示域指示在RAM 4a中的相應物理頁面是否存儲了有效數(shù)據(jù)。例如,“ I ”指示相應物理頁面存儲有效數(shù)據(jù)?!?O ”指示相應物理頁面沒有存儲有效數(shù)據(jù)。上次訪問時間域指示訪問相應物理頁面的上次時間。所述時間用從存儲器系統(tǒng)2的上電后的預定時間點起的經(jīng)過時間來描述。可選擇地,所述時間可以是具有任意代替精確值的適當單元的近似值。如圖4所示,SLC NAND閃存(存儲裝置4b)的物理頁面管理表包括在SLC NAND快閃存儲器4b中的各自的塊的條目。每一個條目包括每一個頁面的讀取計數(shù)域,寫入計數(shù)域,上次訪問時間域和有效/無效域。讀取計數(shù)域指示從所述塊的擦除以來在相應塊中的任何物理頁面被讀取的次數(shù)的數(shù)量。寫入計數(shù)域指示相應塊被擦除和用新數(shù)據(jù)重寫的次數(shù)的數(shù)量。每個頁面的有效/無效指示域包括在相應塊中各自頁面的指示域。每個指示域指示相應頁面是否存儲有效數(shù)據(jù)。例如,“I”指示相應物理頁面存儲有效數(shù)據(jù)?!癘”指示相應物理頁面沒有存儲有效數(shù)據(jù)。上次訪問時間域指示在所述塊的擦除后在相應塊中寫入新數(shù)據(jù)的時間。所述時間例如是從相應塊的擦除或存儲器系統(tǒng)2上電后的預定時間點起的經(jīng)過時間??蛇x擇地,所述時間可以是具有任意適當單元的代替精確值的近似值。在圖示的實施例中,上次訪問時間域用作用于尋找經(jīng)歷擦除和最早寫入的塊的信息??蛇x擇地,不使用該域和可使用該規(guī)則需要塊的擦除和頁面的寫入必須遵循物理頁面的地址。該方法確保用最低級(lowermost)的地址塊和最高級的地址塊順序地排列所述塊,所述最低級的地址塊具有經(jīng)歷的數(shù)據(jù)擦除和最早寫入,所述最高級的地址塊具有經(jīng)歷的數(shù)據(jù)擦除和最晚寫入。因此,如果存儲了該塊的識別,可輕易找到遭到數(shù)據(jù)擦除和和最早寫入的塊。如圖5所示,MLC NAND快閃(存儲裝置4c)的物理頁面管理表包括在MLC NAND快閃存儲器4c中的各自的塊的條目。每一個條目包括每一個頁面的讀取計數(shù)域,寫入計數(shù)域,上次訪問時間域和有效/無效域。在這些域中的數(shù)據(jù)的特征與在SLC NAND閃存物理頁面管理表(圖4)中的相同。 現(xiàn)在,將詳細描述存儲器系統(tǒng)2 (存儲器控制器3)的操作。首先,參考圖6,將描述通過存儲器控制器3的新存儲器區(qū)域的分配。圖6是示出由存儲器控制器3的新的存儲器區(qū)域分配的流程圖。如圖6所示,例如,用戶經(jīng)由處理器I發(fā)出請求到存儲器系統(tǒng)2用于保護將存儲新數(shù)據(jù)的存儲器區(qū)域。一在從處理器I接收存儲器分配請求時,存儲器控制器3就執(zhí)行以下步驟。為了簡化的目的,下面的描述假設(shè)處理器I作為一個自治的實體執(zhí)行由處理器I執(zhí)行的操作以經(jīng)由應用程序或操作系統(tǒng)依照簡化的程序由用戶實現(xiàn)對處理器I生成的請求。類似地,假設(shè)存儲器控制器3作為自治的實體執(zhí)行由存儲器控制器3執(zhí)行的操作以依照用于控制存儲器控制器3的程序?qū)崿F(xiàn)來自處理器I的請求。在接收存儲器分配請求(步驟SI)后,存儲器控制器3嘗試分配所述分配請求區(qū)域到最高級的存儲器,例如具有最高的重寫計數(shù)上限的存儲器(RAM)4a。為此,存儲器控制器
3(未使用的頁面準備部31)首先參考在頁面表中的標記。存儲器控制器3 (未使用的頁面準備部31),基于所述標記,搜索連續(xù)的足夠多以滿足分配請求(步驟S2)的未使用的頁面(沒有分配有效數(shù)據(jù)的邏輯頁面)。存儲器控制器3 (未使用的頁面準備部31)參考在RAM物理頁面管理表中有效/無效指示域以確定是否可能保留足夠數(shù)量的未使用的RAM物理頁面來存儲分配的目標數(shù)據(jù)(步驟S3)。如果所需的RAM物理頁面能夠保留,過程轉(zhuǎn)移到步驟S4。在步驟S4中,存儲器控制器3 (未使用的頁面準備部31)確定分配保留在步驟S3中的RAM物理頁面到在步驟S2中找到的未使用的邏輯頁面。存儲器控制器3 (表管理部34)更新該表以反映由在步驟S4中的分配產(chǎn)生的狀態(tài)(步驟S5)。即,首先,在對應分配數(shù)據(jù)的頁面表的條目中,存儲器控制器3在標記域中寫入M,并且寫入在RAM地址域中分配的RAM物理頁面地址。第二,存儲器控制器3在存儲有分配數(shù)據(jù)的RAM物理頁面管理表的條目中的有效/無效指示域中寫入“ I ”,并且在上次訪問時間域中寫入時間。
如果在步驟S3中的確定為否(false),則該過程轉(zhuǎn)移到步驟S6。經(jīng)由在步驟S6開始的一系列步驟,存儲器控制器3在RAM 4a中保留一個區(qū)域。首先,在步驟6中,存儲器控制器3 (表參考部33)參考在RAM物理頁面管理表中的上次訪問時間域以找到具有最早的上次訪問時間的條目(例如,RAM物理頁面)。存儲器控制器3(存儲器操作控制部32)控制RAM 4a和較低級的存儲器(SLC NAND快閃存儲器)4b以在最早的RAM物理頁面中復制數(shù)據(jù)到在SLC NAND快閃存儲器4b中的被擦除頁面(步驟S7)。因此,存儲器操作控制部32在存儲器4a到4c中控制數(shù)據(jù)讀取,數(shù)據(jù)寫入,數(shù)據(jù)擦除和類似的操作。存儲器控制器3 (表管理部34)更新該表以反映由在步驟S7中的復制產(chǎn)生的狀態(tài)(步驟S8 )。S卩,首先,在對應復制目標數(shù)據(jù)的頁面表中的條目中,存儲器控制器3在標記域中寫入NS并且在NAND地址域中寫入現(xiàn)在存儲有被復制的數(shù)據(jù)的SLC-NAND-閃存物理頁面。第二,存儲器控制器3在先前已存儲復制目標數(shù)據(jù)的相應物理頁面的RAM物理頁面管理表中的條目中的有效/無效指示域中寫入“O”。第三,存儲器控制器3在現(xiàn)在存儲被復制的數(shù)據(jù)的頁面的SLC NAND閃存物理頁面管理表中的有效/無效指示域中寫入“1”,并且在 對應于包含最近存儲被復制的數(shù)據(jù)的頁面的塊的條目中的上次訪問時間域中寫入時間。因此,存儲器控制器3在RAM 4a中保留足夠存儲分配目標數(shù)據(jù)的區(qū)域。所述過程返回到步驟S3,在其中存儲器控制器3 (未使用的頁面準備部31)確定所需的RAM物理頁面是否能夠保留。如果所需的RAM物理頁面能夠保留,該過程進行到步驟S4。否則,步驟S6到S8被重復直到所需的RAM物理頁面被保留。步驟S6到S8可不僅在當被需要來存儲寫入目標數(shù)據(jù)的物理頁面不能被保留時執(zhí)行,還在當未使用的頁面準備部31確定特定的條件已符合時執(zhí)行。在RAM 4a中的數(shù)據(jù)到SLC NAND快閃存儲器4b中的這種移動可發(fā)生。例如,當RAM 4a的預定的容量(例如總?cè)萘康?0%)被充滿時,該在RAM 4a的數(shù)據(jù)移動到SLC NAND存儲器4b可發(fā)生。在圖示的實施例中,當從處理器I接收存儲器分配請求時,存儲器控制器3執(zhí)行存儲器分配。在另一個實施例中,存儲器控制器3在接收來自處理器I的存儲器寫入請求時,可參考圖2中的頁面表(邏輯-物理轉(zhuǎn)換表),并且如果用于寫入目標邏輯頁面的標記為“E”,該標記指示所述頁面沒有被分配,則存儲器區(qū)域按照在圖6中的程序被分配給目標頁面,該程序遵循由依照存儲器控制器(存儲器操作控制部32)在頁面上的寫入過程(將在下面描述)。當滿足特定條件時,存儲器控制器3在SLC NAND閃存4b中執(zhí)行數(shù)據(jù)的無用單元收集?,F(xiàn)在參考圖7的描述,存儲器控制器3移動收集到的數(shù)據(jù)到更低級的存儲器(MLC NAND閃存)4c。圖7為示出由存儲器控制器3在SLC NAND閃存4b上執(zhí)行的無用單元收集的流程圖。例如當SLC NAND閃存4b的特定容量(總例如容量的80%)被充滿時,可發(fā)生該在SLC NAND閃存4b中到MLC NAND快閃存儲器4a內(nèi)的數(shù)據(jù)移動??蛇x擇地,當在圖6中的步驟S7中將存儲從RAM 4a復制的數(shù)據(jù)的SLC-NAND-閃存的擦除頁面不足時,在圖7中的步驟發(fā)生。未使用的頁面準備部31確定是否執(zhí)行無用單元收集。如圖7中所示,存儲器控制器3 (未使用的頁面準備部31)參考在SLCNAND閃存的物理頁面管理表中的上次訪問時間域。然后,從最早的條目(SLC NAND閃存4b中的塊)以時序的順序存儲器控制器3順序地參考在一個或多個塊中的有效/無效指示域以找到存儲有效數(shù)據(jù)的頁面。然后,存儲器控制器3 (存儲器操作控制部32)控制SLC和MLC NAND閃存4b和4c來復制在找到的有效頁面中的數(shù)據(jù)到在MLC NAND閃存4c中的被擦除頁面(步驟S11)。例如,從具有以沒有跳過一個頁面的地址的升序的順序的最低級物理地址的塊中順序地寫入復制的數(shù)據(jù)到MLC-NAND-閃存的已擦除塊中。存儲器控制器3 (表管理部34)更新所述表以反映由步驟Sll中的復制產(chǎn)生的狀態(tài)(步驟S12)。即,第一,在對應于復制目標數(shù)據(jù)的頁面表中的條目中,存儲器控制器3在標記域中寫入NM,并且在NAND地址域中寫入現(xiàn)在存儲被復制的數(shù)據(jù)的MLC-NAND-閃存物理頁面。第二,存儲器控制器3在對應先前已存儲復制目標數(shù)據(jù)的物理頁面的SLC NAND閃存物理頁面管理表的條目中的有效/無效指示域中寫入“O”。第三,存儲器控制器3在現(xiàn)在存儲復制的數(shù)據(jù)的頁面的MLC NAND閃存物理頁面管理表中的有效/無效指示域中寫入“1”,并 且在包括最新存儲被復制的數(shù)據(jù)的頁面的相應塊的條目中的上次訪問時間域中寫入時間。存儲器控制器3 (存儲器操作控制部32)擦除在僅包含由到MLC NAND閃存4c中的復制產(chǎn)生的無效數(shù)據(jù)的SLC-NAND-閃存塊中的數(shù)據(jù)(步驟S13)。因此,新的擦除塊被創(chuàng)建。當滿足現(xiàn)在參考圖8描述的特定條件時,存儲器控制器3執(zhí)行在MLC NAND閃存4c中的數(shù)據(jù)的無用單元收集。圖8為示出由存儲器控制器3在MLC NAND閃存4c上執(zhí)行無用單元收集的流程圖。例如,當MLC NAND閃存4c的特定容量(例如總?cè)萘康?0% )被充滿時,在MLC NAND閃存4c上的該無用單元收集可發(fā)生。如圖8中所示,存儲器控制器3 (未使用的頁面準備部31)參考在MLC NAND閃存物理頁面管理表中的上次訪問時間域。然后,存儲器控制器3參考在最早的條目(MLC NAND閃存物理塊)中的有效/無效指示域以找到存儲有效數(shù)據(jù)的頁面(步驟S21)。然后,存儲器控制器3 (存儲器操作控制部32)以沒有跳過一個頁面的地址的升序的順序從具有最低級物理地址的頁面,控制MLC NAND閃存4c以順序地在已找到的有效頁面中寫入數(shù)據(jù)到MLC-NAND-閃存擦除塊(步驟S22)。存儲器控制器3 (表管理部34)更新所述表格以反映由步驟S22中的復制產(chǎn)生的狀態(tài)(步驟S23 )。即,首先,在對應于復制目標數(shù)據(jù)的頁面表中的條目中,存儲器控制器3在NAND地址域中寫入現(xiàn)在存儲有被復制數(shù)據(jù)的MLC-NAND-閃存物理頁面。第二,存儲器控制器3在先前已存儲復制目標數(shù)據(jù)的相應的物理頁面的MLC NAND閃存物理頁面管理表的條目中的有效/無效指示域中寫入“O”。第三,存儲器控制器3在現(xiàn)在存儲被復制的數(shù)據(jù)的頁面的MLC NAND閃存物理頁面管理表中的有效/無效指示域中寫入“1”,并且在包括最新存儲復制的數(shù)據(jù)的頁面的相應塊的條目中的上次訪問時間域中寫入時間。存儲器控制器3 (存儲器操作控制部32)擦除在僅包含由復制產(chǎn)生的無效的數(shù)據(jù)的MLC-NAND-閃存塊中的數(shù)據(jù)(步驟S24)。因此,新的擦除塊被創(chuàng)建。如果在存儲器4c下還提供額外的存儲器,從MLC NAND閃存4c收集的有效頁面被復制到該更低級的存儲器。這個過程與復制從SLC NAND閃存4b收集的數(shù)據(jù)到MLC NAND閃存4c類似相同(圖7)。然后,以類似相同的方式,在確定存儲器中的數(shù)據(jù)被按照表更新通過無用單元收集被復制到更低級的存儲器中。現(xiàn)在將參考圖9描述在存儲器系統(tǒng)2中響應于來自處理器I的數(shù)據(jù)的更新請求(寫入請求)被執(zhí)行的步驟。圖9是存儲器系統(tǒng)2中響應于數(shù)據(jù)的更新請求的由存儲器控制器3執(zhí)行的過程的流程圖。如圖9中所示,當從處理器I接收數(shù)據(jù)更新請求時,存儲器控制器3檢查更新目標數(shù)據(jù)是否存儲在RAM 4a中。具體的,存儲器控制器3 (標記檢查部35)檢查對應于更新目標數(shù)據(jù)的頁面表中的條目中的標記(步驟S31)。如果在步驟S31中的確定指示標記為M,則過程轉(zhuǎn)移到步驟S32。在步驟S32中,存儲器控制器3 (存儲器操作控制部32)對應于更新請求控制RAM 4a以更新數(shù)據(jù)。存儲器控制器3也在對應于更新目標數(shù)據(jù)的RAM物理頁面管理表的條目中的上次訪問時間域中更新時間。下面將參考圖11描述指示標記為MS或MN的在步驟S31中的確定步驟。當在步驟S31中的確定指示標記為NS或匪時,過程轉(zhuǎn)換到步驟S33。存儲器控制 器3執(zhí)行步驟S33開始的一系列步驟以復制在NAND閃存4b或4c中的數(shù)據(jù)到RAM 4a。具體地,存儲器控制器3 (表參考部33)參考對應更新目標數(shù)據(jù)的頁面表的條目中的NAND地址域以識別存儲有更新目標數(shù)據(jù)的SLC或MLC NAND閃存物理頁面(步驟S33).存儲器控制器3 (存儲器操作控制部32)控制RAM 4a和NAND閃存4b或4c以復制更新目標數(shù)據(jù)到RAM 4a中未使用的頁面(步驟S34)。然后,存儲器控制器3 (存儲器操作控制部32)控制RAM 4a以依照更新請求來更新被復制的數(shù)據(jù)(步驟S35)。存儲器控制器3 (表管理部34)更新表以反映由在步驟S34中的復制產(chǎn)生的狀態(tài)(步驟S36)。即,首先,在對應于更新目標數(shù)據(jù)的頁面表的條目中,存儲器控制器3從NS或NM到M更新標記域,并且在現(xiàn)在存有更新數(shù)據(jù)的RAM地址域RAM物理頁面中寫入。第二,存儲器控制器3在現(xiàn)在存儲有被更新數(shù)據(jù)的相應的物理頁面的RAM物理頁面管理表的條目中的有效/無效指示域中寫入“1”,并向上次訪問時間域中寫入時間。第三,存儲器控制器3在先前已存儲更新目標數(shù)據(jù)的SLC或MLC NAND閃存物理頁面管理表中的頁面的有效/無效指示域中寫入“O”。通過涉及不包含有效數(shù)據(jù)的塊的擦除的無用單元收集擦除在NAND閃存4b或4c中的無效數(shù)據(jù)?,F(xiàn)在將參考圖10描述在存儲器系統(tǒng)2中響應來自處理器I的數(shù)據(jù)讀取請求執(zhí)行的步驟。圖10是在存儲器系統(tǒng)2中由存儲器控制器3執(zhí)行的響應數(shù)據(jù)的讀取請求的過程的流程圖。如圖10所示,當接收來自處理器I的數(shù)據(jù)讀取請求時,存儲器控制器3檢查在RAM 4a中是否存儲有讀取目標數(shù)據(jù)。具體地,存儲器控制器3 (標記檢查部35)檢查對應于讀取目標數(shù)據(jù)的頁面表的條目中的標記是否是M,MS和MN之一(步驟S41)。如果在步驟S41中的確定為是(true),則過程轉(zhuǎn)換到步驟S42。在步驟S42中,存儲器控制器3 (存儲器操作控制部32)控制RAM 4a以讀取目標數(shù)據(jù)到處理器I中,并更新在對應于讀取目標數(shù)據(jù)的RAM物理頁面管理表的條目中的上次訪問時間域的時間。當步驟S41的確定為否時,過程轉(zhuǎn)移到步驟S43。存儲器控制器3執(zhí)行步驟S43以及后面的與用于復制在NAND閃存4b或4c中的數(shù)據(jù)到RAM4a的更新請求(圖9)的相應步驟相似的步驟。具體地,存儲器控制器3 (表參考部33)參考對應于讀取目標數(shù)據(jù)的頁面表的條目中的NAND地址域來識別存儲讀取目標數(shù)據(jù)的SLC或MLC NAND閃存物理頁面(步驟S43)。存儲器控制器3 (存儲器操作控制部32)控制RAM 4a和NAND閃存4b或4c以復制讀取目標數(shù)據(jù)到RAM 4a中未使用的頁面(步驟S44)。然后,存儲器控制器3 (存儲器操作控制部32)控制RAM 4a以讀取所述讀取目標數(shù)據(jù)到處理器I (步驟S45)。
存儲器控制器3 (表管理部34)更新表以反映由在步驟S44中的復制產(chǎn)生的狀態(tài)(步驟S46)。即,首先,在對應于讀取目標數(shù)據(jù)的頁面表的條目中,存儲器控制器3從NS到MS或從匪到MM更新標記域,并且在現(xiàn)在存儲讀取目標數(shù)據(jù)的RAM地址域RAM物理頁面中寫入。第二,存儲器控制器3在現(xiàn)在存儲讀取數(shù)據(jù)的對應的物理頁面的RAM物理頁面管理表的條目中的有效/無效指示域中寫入“1”,并在上次訪問時間域中寫入時間。在對應于在圖9的步驟S31中標記被確定為MS或麗的步驟S46之后,在RAM 4a和NAND閃存4b或4c上均有效存在數(shù)據(jù)的更新請求。參考圖11將描述響應該更新請求執(zhí)行的步驟。圖11是在存儲器系統(tǒng)2中響應數(shù)據(jù)的更新請求由存儲器控制器3執(zhí)行的一部分過程的流程圖。如圖11所示,如果對應更新目標數(shù)據(jù)的頁面表中的條目中的標記為MS或麗,該過程轉(zhuǎn)移到步驟S51。存儲器控制器3 (表參考部33)參考對應更新目標數(shù)據(jù)的頁面表中的條目中的RAM地址域來識別存儲更新目標數(shù)據(jù)的RAM物理頁面(步驟S51)。
存儲器控制器3 (存儲器操作控制部32)控制RAM 4a按照更新請求來更新數(shù)據(jù)(步驟S52)。存儲器控制器3 (表管理部34)然后更新表以反映由步驟S52中的更新產(chǎn)生的狀態(tài)(步驟S53 )。S卩,首先,在對應更新目標數(shù)據(jù)的頁面表中的條目中,因為存儲在NAND閃存4b或4c中的更新目標數(shù)據(jù)不再有效,所以存儲器控制器3從MS或麗到M更新標記域。第二,存儲器控制器3在先前已存儲更新目標數(shù)據(jù)的SLC或MLCNAND閃存物理頁面管理表中的頁面的有效/無效指示域中寫入“O”。第三,儲器控制器3在對應被更新的數(shù)據(jù)的RAM物理頁面管理表的條目中的上次訪問時間域中寫入時間。在圖I中的配置中,獨立于處理器I提供存儲器控制器3。但是,本實施例不限于該配置。例如圖12所示,處理器I可按照用于實現(xiàn)存儲器控制器3的功能的控制程序?qū)崿F(xiàn)存儲器控制器3的功能。在這個例子中,RAM 4a通過總線6直接連接到處理器I。NAND閃存4b經(jīng)由被配置為控制NAND閃存4b的NAND控制器連接到處理器I。NAND閃存4c經(jīng)由被配置為控制NAND閃存4c的NAND控制器連接到處理器I。如上所述,根據(jù)本實施例的存儲器控制器以使用分級的集成方式管理存儲器。響應于寫入請求,存儲器控制器首先嘗試在具有最高的重寫計數(shù)上限的最高級存儲器中存儲寫入目標數(shù)據(jù)。存儲器控制器以非訪問的持續(xù)時間的降序順序適當?shù)卦诖鎯ζ髦许樞虻匾苿訑?shù)據(jù)到低級的存儲器。在除了最高級的存儲器中響應于數(shù)據(jù)的讀取請求或更新請求,存儲器控制器復制讀取或更新目標數(shù)據(jù)到最高級存儲器。該存儲位置的管理允許具有短暫非訪問持續(xù)時間的數(shù)據(jù)保留在具有高重寫計數(shù)上限的存儲器中,同時允許具有長非訪問持續(xù)時間的數(shù)據(jù)移動到具有較低重寫計數(shù)上限的存儲器中。根據(jù)本實施例避免了由存儲器控制器管理的特定的一個或更多個存儲器的降級。注意可依照數(shù)據(jù)的特性選擇存儲數(shù)據(jù)的存儲裝置;但是許多過程需要精確地確定數(shù)據(jù)的特性,并且性質(zhì)經(jīng)常不能精確地確定。此外,可以使用數(shù)據(jù)文件的文件名擴展(例如,.doc, . txt, . jpg);但是在其他方式中可以使用具有確定的文件名擴展的數(shù)據(jù)文件,并且一些數(shù)據(jù)文件甚至沒有文件名擴展。相反地,根據(jù)本實施例,依照非訪問持續(xù)時間移動數(shù)據(jù),允許將被消除的這樣的問題。此外,基于數(shù)據(jù)的非訪問持續(xù)時間自動地確定數(shù)據(jù)的移動,是一個容易管理的標準。因此,根據(jù)存儲器控制器的包括存儲器控制器的存儲器系統(tǒng)的用戶不被提示以輸入用于確定數(shù)據(jù)移動的信息,并且在使用數(shù)據(jù)特性的情況下將發(fā)生的數(shù)據(jù)移動的確定的故障不會發(fā)生。雖然已經(jīng)描述了某些實施例,這些實施例僅以示例的方式提出并不將限制發(fā)明的范圍。實際上,在此描述的新的方法和系統(tǒng)可以其他形式的變化體現(xiàn);此外,在此描述的以 方法和系統(tǒng)形式的各種省略,替代和改變將以不偏離發(fā)明的精神作出。附屬的權(quán)利要求及其等同將覆蓋將落入發(fā)明的范圍的該形式或修改。
權(quán)利要求
1.一種存儲裝置管理裝置,所述存儲裝置管理裝置連接到隨機存取存儲器、具有比所述隨機存取存儲器更低的重寫計數(shù)上限的第一存儲裝置和處理器,其中; 當所述隨機存取存儲器包括足夠的空閑區(qū)域以存儲作為來自所述處理器的寫入請求的目標的寫入數(shù)據(jù)時,將所述寫入數(shù)據(jù)存儲在所述隨機存取存儲器上; 將以自從上次訪問經(jīng)過時間的降序的順序選擇的所述隨機存取存儲器上的數(shù)據(jù)順序地復制到所述第一存儲裝置上,并且將在先前已存儲所述復制的數(shù)據(jù)的所述隨機存取存儲器中的區(qū)域釋放; 當作為來自所述處理器的讀取請求的目標的讀取數(shù)據(jù)存儲在所述隨機存取存儲器上時,將所述讀取數(shù)據(jù)從所述隨機存取存儲器讀取到所述處理器;并且 當所述讀取數(shù)據(jù)存儲在所述第一存儲裝置上時,將所述讀取數(shù)據(jù)復制到所述隨機存取存儲器并且從所述隨機存取存儲器讀取到所述處理器。
2.根據(jù)權(quán)利要求I的管理裝置,其中當所述隨機存取存儲器無法包括足夠的空閑區(qū)域來存儲所述寫入數(shù)據(jù)時,所述管理裝置順序地復制以自從上次訪問經(jīng)過時間降序的順序選擇的所述隨機存取存儲器上的所述數(shù)據(jù)到所述第一存儲裝置上,并且釋放在先前已存儲所述復制數(shù)據(jù)的所述隨機存取存儲器中的所述區(qū)域。
3.根據(jù)權(quán)利要求I的管理裝置,其中 所述管理裝置接收數(shù)據(jù)更新請求; 當作為更新請求目標的更新數(shù)據(jù)存儲在所述隨機存取存儲器上時,所述管理裝置更新所述隨機存取存儲器上的所述更新數(shù)據(jù);并且 當所述更新數(shù)據(jù)存儲在所述第一存儲裝置上時,所述管理裝置復制所述更新數(shù)據(jù)到所述隨機存取存儲器上并且更新所述隨機存取存儲器上的所述更新數(shù)據(jù)。
4.根據(jù)權(quán)利要求I所述的管理裝置,其中 所述第一存儲裝置包括在其中數(shù)據(jù)重寫是不可行的存儲區(qū)域,以及擦除包括連續(xù)存儲區(qū)域的擦除區(qū)域的單元中的數(shù)據(jù);并且 所述隨機存取存儲器或其它存儲器保持 第一表,為每一個邏輯地址,指示用于指示用相應的邏輯地址分配的數(shù)據(jù)的狀態(tài)的狀態(tài)標記、存儲用相應的邏輯地址分配的所述數(shù)據(jù)的所述隨機存取存儲器中的區(qū)域的地址和存儲用相應的邏輯地址分配的所述數(shù)據(jù)的所述第一存儲裝置中的區(qū)域的地址; 第二表,為所述隨機存取存儲器中每一個所述存儲區(qū)域,指示用于指示相應的存儲區(qū)域是否存儲有效數(shù)據(jù)的有效標記和到所述相應的存儲區(qū)域的所述上次訪問的所述時間;以及 第三表,為在所述第一存儲裝置中的所述擦除區(qū)域的每一個地址,指示到所述相應的擦除區(qū)域中的存儲區(qū)域的所述上次訪問的所述時間。
5.根據(jù)權(quán)利要求I的管理裝置,其中 所述管理裝置連接到具有比所述第一存儲裝置更低的重寫計數(shù)上限的第二存儲裝置; 所述管理裝置順序地復制以自從上次訪問經(jīng)過時間的降序的順序選擇的所述第一存儲裝置上的有效數(shù)據(jù)到所述第二存儲裝置上;并且 當所述讀取數(shù)據(jù)存儲在所述第二存儲裝置上時,所述管理裝置復制所述讀取數(shù)據(jù)到所述隨機存取存儲器上并且從所述隨機存取存儲器讀取所述讀取數(shù)據(jù)到所述處理器。
6.根據(jù)權(quán)利要求5的管理裝置,其中當所述隨機存取存儲器無法包括足夠的空閑區(qū)域來存儲所述寫入數(shù)據(jù)時,所述管理裝置順序地復制以自從上次訪問經(jīng)過時間的降序的順序選擇的所述隨機存取存儲器上的數(shù)據(jù)到所述第一存儲裝置,并且釋放先前已存儲所述復制數(shù)據(jù)的所述隨機存取存儲器中的所述區(qū)域。
7.根據(jù)權(quán)利要求5的管理裝置,其中 所述管理裝置接收數(shù)據(jù)更新請求; 當作為更新請求目標的更新數(shù)據(jù)存儲在所述隨機存取存儲器上時,所述管理裝置更新所述隨機存取存儲器上的所述更新數(shù)據(jù);并且 當所述更新數(shù)據(jù)存儲在所述第一或第二存儲裝置上時,所述管理裝置復制所述更新數(shù)據(jù)到所述隨機存取存儲器上并且更新所述隨機存取存儲器上的所述更新數(shù)據(jù)。
8.根據(jù)權(quán)利要求5的管理裝置,其中 所述第二存儲裝置包括在其中數(shù)據(jù)重寫是不可行的存儲區(qū)域,并且擦除包括連續(xù)存儲區(qū)域的擦除區(qū)域的單元中的數(shù)據(jù);并且 所述管理裝置復制以自從上次訪問經(jīng)過時間的降序的順序選擇的所述第二存儲裝置上的有效數(shù)據(jù)到以所述存儲區(qū)域地址的升序的順序選擇的所述第二存儲裝置中的已擦除的擦除區(qū)域中的存儲區(qū)域上,并且釋放先前已存儲所述復制數(shù)據(jù)的所述第二存儲裝置中的所述存儲區(qū)域。
9.根據(jù)權(quán)利要求5的管理裝置,其中 所述第一和第二存儲裝置每一個都包括在其中數(shù)據(jù)重寫是不可行的存儲區(qū)域,并且擦除包括連續(xù)存儲區(qū)域的擦除區(qū)域的單元中的數(shù)據(jù);并且所述隨機存取存儲器或其它存儲器保持 第一表,為每一個邏輯地址,指示用于指示用相應的邏輯地址分配的數(shù)據(jù)的狀態(tài)的狀態(tài)標記、存儲用相應邏輯地址分配的數(shù)據(jù)的所述隨機存取存儲器中的區(qū)域的地址和存儲用相應邏輯地址分配的數(shù)據(jù)的所述第一或第二存儲裝置中的區(qū)域的地址; 第二表,為所述隨機存取存儲器中每一個存儲區(qū)域,指示用于指示相應的存儲區(qū)域是否存儲有效數(shù)據(jù)的有效標記和到所述相應存儲區(qū)域的所述上次訪問的所述時間;和 第三表,為在所述第一存儲裝置中的所述擦除區(qū)域的每一個地址,指示在所述相應擦除區(qū)域中的存儲區(qū)域的所述上次訪問的所述時間;和 第四表,為所述第二存儲裝置中的所述擦除區(qū)域的每一個地址,指示在所述相應擦除區(qū)域的存儲區(qū)域的所述上次訪問的所述時間。
10.根據(jù)權(quán)利要求5的管理裝置,其中 所述第一存儲裝置是使用一個存儲單元以存儲一位的NAND快閃存儲器;和 所述第二存儲裝置是使用一個存儲單元存儲至少兩位的NAND快閃存儲器。
11.一種隨機存取存儲器和具有比所述隨機存取存儲器更低的重寫計數(shù)上限的第一存儲裝置的管理方法,所述方法包括 當所述隨機存取存儲器包括足夠的空閑區(qū)域以存儲作為來自所述處理器的寫入請求目標的寫入數(shù)據(jù)時,存儲所述寫入數(shù)據(jù)到所述隨機存取存儲器上; 順序地復制以自從上次訪問經(jīng)過時間的降序的順序選擇的所述隨機存取存儲器上的數(shù)據(jù)到所述第一存儲裝置上,并且釋放先前已存儲所述復制數(shù)據(jù)的所述隨機存取存儲器中的區(qū)域; 當作為來自所述處理器的讀取請求的目標的讀取數(shù)據(jù)存儲在所述隨機存取存儲器上時,從所述隨機存取存儲器中讀取所述讀取數(shù)據(jù)到所述處理器;并且 當所述讀取數(shù)據(jù)存儲在所述第一存儲裝置上時,復制所述讀取數(shù)據(jù)到所述隨機存取存儲器上并且從所述隨機存取存儲器讀取所述讀取數(shù)據(jù)到所述處理器。
12.根據(jù)權(quán)利要求11的方法,進一步包括,當所述隨機存取存儲器無法包括足夠的空閑區(qū)域以存儲所述寫入數(shù)據(jù)時, 順序地復制以自從上次訪問經(jīng)過時間的降序的順序選擇的所述隨機存取存儲器上的數(shù)據(jù)到所述第一存儲裝置上,并且 釋放先前已存儲所述復制數(shù)據(jù)的所述隨機存取存儲器中的所述區(qū)域。
13.根據(jù)權(quán)利要求11的方法,進一步包括 接收數(shù)據(jù)更新請求; 當作為更新請求目標的更新數(shù)據(jù)存儲在所述隨機存取存儲器上時,更新所述隨機存取存儲器上的所述更新數(shù)據(jù);并且 當所述更新數(shù)據(jù)存儲在所述第一存儲裝置上時,復制所述更新數(shù)據(jù)到所述隨機存取存儲器上并且更新所述隨機存取存儲器上的所述更新數(shù)據(jù)。
14.根據(jù)權(quán)利要求11的方法,其中所述第一存儲裝置包括在其中數(shù)據(jù)重寫是不可行的存儲區(qū)域,并且擦除包括連續(xù)存儲區(qū)域的擦除區(qū)域的單元中的數(shù)據(jù),并且所述方法進一步包括 創(chuàng)建第一表,所述第一表為每一個邏輯地址,指示用于指示用所述相應的邏輯地址分配的數(shù)據(jù)的狀態(tài)的狀態(tài)標記、存儲用所述相應邏輯地址分配的所述數(shù)據(jù)的所述隨機存取存儲器中的區(qū)域的地址和存儲用所述相應邏輯地址分配的所述數(shù)據(jù)的所述第一存儲裝置中的區(qū)域的地址; 創(chuàng)建第二表,所述第二表為所述隨機存取存儲器中每一個所述存儲區(qū)域,指示用于指示所述相應的存儲區(qū)域是否存儲有效數(shù)據(jù)的有效標記和到所述相應存儲區(qū)域的所述上次訪問的所述時間;以及 創(chuàng)建第三表,所述第三表為所述第一存儲裝置中的所述擦除區(qū)域的每一個地址,指示到所述相應擦除區(qū)域的存儲區(qū)域的所述上次訪問的所述時間。
15.根據(jù)權(quán)利要求11的方法,進一步包括 順序地復制以自從上次訪問經(jīng)過時間的降序的順序選擇的所述第一存儲裝置上的有效數(shù)據(jù)到第二存儲裝置上,所述第二存儲裝置具有比所述第一存儲裝置更低的重寫計數(shù)上限;并且 當所述讀取數(shù)據(jù)存儲在所述第二存儲裝置上時,復制所述讀取數(shù)據(jù)到所述隨機存取存儲器上并且從所述隨機存取存儲器讀取所述讀取數(shù)據(jù)到所述處理器。
16.根據(jù)權(quán)利要求15的方法,進一步包括,當所述隨機存取存儲器無法包括足夠的空閑區(qū)域來存儲所述寫入數(shù)據(jù)時, 順序地復制以自從上次訪問經(jīng)過時間的降序的順序選擇的所述隨機存取存儲器上的所述數(shù)據(jù)到所述第一存儲裝置,并且釋放先前已存儲所述復制數(shù)據(jù)的所述隨機存取存儲器中的所述區(qū)域。
17.根據(jù)權(quán)利要求15的方法,進一步包括 接收數(shù)據(jù)更新請求; 當作為更新請求目標的更新數(shù)據(jù)存儲在所述隨機存取存儲器上時,更新所述隨機存取存儲器上的所述更新數(shù)據(jù);并且 當所述更新數(shù)據(jù)存儲在所述第一或第二存儲裝置上時,復制所述更新數(shù)據(jù)到所述隨機存取存儲器上并且更新所述隨機存取存儲器上的所述更新數(shù)據(jù)。
18.根據(jù)權(quán)利要求15所述的方法,其中所述第二存儲裝置包括在其中數(shù)據(jù)重寫是不可行的存儲區(qū)域,并且擦除包括連續(xù)存儲區(qū)域的擦除區(qū)域的單元中的數(shù)據(jù);并且所述方法進一步包括 復制以自從上次訪問經(jīng)過時間的降序的順序選擇的所述第二存儲裝置上的有效數(shù)據(jù)到以所述存儲區(qū)域地址的升序的順序選擇的所述第二存儲裝置中的已擦除的擦除區(qū)域中的存儲區(qū)域上,并且釋放先前已存儲所述復制數(shù)據(jù)的所述第二存儲裝置中的所述存儲區(qū)域。
19.根據(jù)權(quán)利要求15的方法,其中所述第一和第二存儲裝置每一個都包括在其中數(shù)據(jù)重寫是不可行的存儲區(qū)域,并且擦除包括連續(xù)存儲區(qū)域的擦除區(qū)域的單元中的數(shù)據(jù),并且所述方法進一步包括 創(chuàng)建第一表,所述第一表為每一個邏輯地址,指示用于指示用所述相應邏輯地址分配的數(shù)據(jù)的狀態(tài)的狀態(tài)標記、存儲用所述相應邏輯地址分配的所述數(shù)據(jù)的所述隨機存取存儲器中的區(qū)域的地址和存儲用所述相應邏輯地址分配的所述數(shù)據(jù)的所述第一或第二存儲裝置中的區(qū)域的地址; 創(chuàng)建第二表,所述第二表為所述隨機存取存儲器中每一個所述存儲區(qū)域,指示用于指示所述相應的存儲標記是否存儲有效數(shù)據(jù)的有效標記和到所述相應存儲區(qū)域的所述上次訪問的所述時間;以及 創(chuàng)建第三表,所述第三表為所述第一存儲裝置中的所述擦除區(qū)域的每一個地址,指示到所述相應擦除區(qū)域的存儲區(qū)域的所述上次訪問的所述時間;以及 創(chuàng)建第四表,所述第四表為所述第二存儲裝置中的所述擦除區(qū)域的每一個地址,指示到所述相應擦除區(qū)域中的存儲區(qū)域的所述上次訪問的所述時間。
20.根據(jù)權(quán)利要求15的方法,其中 所述第一存儲裝置是使用一個存儲單元以存儲一位的NAND快閃存儲器;和 所述第二存儲裝置是使用一個存儲單元以存儲至少兩位的NAND快閃存儲器。
全文摘要
根據(jù)一個實施例,存儲裝置管理裝置連接到隨機存取存儲器,并且第一存儲裝置具有更低的重寫計數(shù)上限。當隨機存取存儲器包括一個足夠的空閑區(qū)域以存儲寫入數(shù)據(jù)時,所述寫入數(shù)據(jù)存儲到所述隨機存取存儲器上。以自從上次訪問經(jīng)過時間的降序的順序選擇的隨機存取存儲器上的數(shù)據(jù)順序地復制到第一存儲裝置,并且在隨機存取存儲器中先前存儲的該復制數(shù)據(jù)的區(qū)域被釋放。當讀取數(shù)據(jù)存儲到隨機存取存儲器上時,讀取數(shù)據(jù)從隨機存取存儲器中讀取到處理器。當讀取數(shù)據(jù)存儲到第一存儲裝置時,讀取數(shù)據(jù)復制到隨機存取存儲器上并從隨機存取存儲器讀取到處理器。
文檔編號G06F12/00GK102667739SQ20108005743
公開日2012年9月12日 申請日期2010年9月15日 優(yōu)先權(quán)日2010年1月13日
發(fā)明者中井弘人, 金井達德 申請人:株式會社 東芝