專利名稱:使用非易失性存儲器作為高速緩存器的存儲設備及其方法
技術領域:
本發(fā)明的各個方面涉及使用非易失性存儲器作為高速緩存器的存儲設備和管理所述設備的方法。更具體地說,本發(fā)明的各個方面涉及使用即使在電源中斷之后也保持數(shù)據(jù)的非易失性存儲器作為高速緩存器的存儲設備和管理所述設備的方法。
背景技術:
參照圖1,傳統(tǒng)的存儲設備10包括主機11、數(shù)據(jù)緩沖器12和主存儲介質13。主機11根據(jù)用戶的命令將數(shù)據(jù)發(fā)送到主存儲介質13或從主存儲介質13接收數(shù)據(jù)。數(shù)據(jù)緩沖器12緩沖主機11和主存儲介質13之間的速率的差異。
具體地說,從主機11發(fā)送的數(shù)據(jù)臨時存儲在數(shù)據(jù)緩沖器12中直到所述數(shù)據(jù)被記錄在主存儲介質13中,反之亦然。存儲設備10的數(shù)據(jù)緩沖器12通常包括易失性存儲器。也就是說,當中斷對主存儲裝置10的供電時,在數(shù)據(jù)緩沖器12中存在的所有數(shù)據(jù)都丟失。
為了增加訪問效率,存儲設備10使用高速緩存器,存儲將被存儲在主存儲介質13中的部分數(shù)據(jù)。當主機11讀取存儲在高速緩存器中的數(shù)據(jù)時,沒有必要訪問主存儲介質13。這樣增加了訪問效率。
然而,因為當中斷供電時數(shù)據(jù)緩沖器12丟失所有數(shù)據(jù),所以即使當增加數(shù)據(jù)緩沖器12的大小時,數(shù)據(jù)緩沖器12也不能用作高速緩存器。另外,必須一直向主存儲介質13供電是減少功耗的障礙。
因此,近來已經(jīng)提出使用非易失性存儲器作為存儲設備10的高速緩存器,從而,當主機11從非易失性存儲器讀取數(shù)據(jù)或向非易失性存儲器寫入數(shù)據(jù)時,中斷對主存儲介質13的供電,以減少功耗。
然而,使用非易失性存儲器作為存儲設備10的高速緩存器具有以下問題必須根據(jù)數(shù)據(jù)是否固定來有效管理數(shù)據(jù)。具體地說,非易失性存儲器具有固定區(qū)域和非固定區(qū)域,其中,在所述固定區(qū)域中數(shù)據(jù)位置一直固定,在所述非固定區(qū)域中數(shù)據(jù)位置頻繁改變。必須有效管理這些區(qū)域。另外,需要一種保護數(shù)據(jù)免受意外的電源中斷的影響的方法。也需要一種收集塊以最小化對主存儲介質13的供電的時間的方法,以及在考慮非易失性存儲器中各個物理塊的使用程度(wear level)的情況下增加非易失性存儲器的壽命的方法。
早期公開的第2003-256289號日本專利公開了一種系統(tǒng),所述系統(tǒng)根據(jù)環(huán)形序列(在物理扇區(qū)地址的底部和頂部發(fā)生記錄和刪除)通過周期性地刪除對在閃存中已經(jīng)被分組的塊的指定來保持閃存系統(tǒng)的使用程度的一致性,可按照期望指定所述閃存系統(tǒng)的地址。然而,第2003-256289號日本專利中公開的系統(tǒng)沒有提出有效地管理固定區(qū)域和非固定區(qū)域中的數(shù)據(jù)的方法,也沒有建議保護數(shù)據(jù)免受意外的電源中斷的影響,或者基于塊收集和使用程度調(diào)整來增加壽命。
發(fā)明內(nèi)容本發(fā)明的示例性實施例克服發(fā)生在現(xiàn)有技術中的上述缺點以及上面沒有描述的其它缺點。另外,沒有要求本發(fā)明克服上述缺點,本發(fā)明的示例性實施例可以不克服上面描述的任何問題。本發(fā)明的一方面提供一種以這樣一種方式使用非易失性存儲器作為其高速緩存器的存儲設備和管理所述設備的方法,在所述方式中,通過根據(jù)數(shù)據(jù)在區(qū)域中是否固定將非易失性存儲器分為固定區(qū)域和非固定區(qū)域來分別管理非易失性存儲器,并且收集塊以統(tǒng)一塊的使用程度。
本發(fā)明的另一方面提供一種使用非易失性存儲器作為其高速緩存器以容易地從意外電源中斷中恢復的存儲設備以及管理所述設備的方法。
為了實現(xiàn)上述目的和其它,提供一種使用非易失性存儲器作為高速緩存器的存儲設備,所述設備包括主存儲介質;用作主存儲介質的高速緩存器的非易失性存儲器,根據(jù)數(shù)據(jù)是否固定將非易失性存儲器的區(qū)域分成固定區(qū)域和非固定區(qū)域;以及塊管理單元,通過虛擬地址來管理物理塊,所述物理塊被分配給非易失性存儲器。
根據(jù)本發(fā)明的另一方面,提供一種管理使用非易失性存儲器作為高速緩存器的存儲設備的方法,所述方法包括根據(jù)數(shù)據(jù)是否固定將用作主存儲介質的高速緩存器的非易失性存儲器的區(qū)域分成固定區(qū)域和非固定區(qū)域;以及通過分配給物理塊的虛擬地址分別管理分配給固定區(qū)域和非固定區(qū)域的物理塊。
通過下面結合附圖進行的詳細描述,本發(fā)明的上述方面和其它將會變得更加清楚,其中圖1顯示傳統(tǒng)的存儲設備;圖2顯示根據(jù)本發(fā)明的示例性實施例的使用非易失性存儲器作為其高速緩存器的存儲設備;圖3顯示根據(jù)本發(fā)明的示例性實施例的虛擬塊地址空間;圖4顯示根據(jù)本發(fā)明的示例性實施例的分配塊列表和自由塊列表;圖5顯示根據(jù)本發(fā)明的示例性實施例的塊映射表;圖6顯示根據(jù)本發(fā)明的示例性實施例的收集塊之前的分配塊列表、自由塊列表和塊映射表;圖7顯示根據(jù)本發(fā)明的示例性實施例的收集塊之后的分配塊列表、自由塊列表和塊映射表;圖8顯示根據(jù)本發(fā)明的示例性實施例的處理壞塊之前的分配塊列表、自由塊列表和塊映射表;圖9顯示根據(jù)本發(fā)明的示例性實施例的處理壞塊之后的分配塊列表、自由塊列表和塊映射表;圖10顯示根據(jù)本發(fā)明的示例性實施例的分配塊的方法;圖11顯示根據(jù)本發(fā)明的示例性實施例的收集塊的方法;圖12顯示根據(jù)本發(fā)明的示例性實施例的處理壞塊的方法;以及圖13顯示根據(jù)本發(fā)明的示例性實施例的從電源中斷中恢復的方法。
具體實施方式以下,將參照附圖來描述本發(fā)明的示例性實施例。提供例如詳細的結構和部件的在說明書中定義的內(nèi)容僅是示例性的,以幫助全面理解本發(fā)明。因此,明顯的是,在沒有那些定義的內(nèi)容的情況下也可實施本發(fā)明。在本發(fā)明的示例性實施例的下面的描述中,即使出現(xiàn)在不同的附圖中,相同的附圖標號被用于相同的部件。另外,當合并于此的公知功能和結構可能使本發(fā)明的主題模糊時,將省略對其的詳細描述。
以下參照流程圖描述本發(fā)明的示例性實施例,所述流程圖涉及根據(jù)本發(fā)明的示例性實施例的使用非易失性存儲器作為高速緩存器的存儲設備以及管理所述設備的方法。應該理解,流程圖的每一個塊以及流程圖中的塊的組合可由計算機程序指令實現(xiàn)。這些計算機程序指令可被提供給通用計算機、專用計算機、或者其他可編程數(shù)據(jù)處理設備的處理器以產(chǎn)生設備,從而經(jīng)計算機或者其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令創(chuàng)建用于實現(xiàn)在一個流程圖塊或多個流程圖塊中指定的功能的裝置。
這些計算機程序指令也可被存儲在可指導計算機或者其他可編程數(shù)據(jù)處理設備以特定方式運行的計算機可用或計算機可讀存儲器中,從而存儲在計算機可用或計算機可讀存儲器中的指令產(chǎn)生包括實現(xiàn)在一個流程圖塊或多個流程圖塊中指定的功能的指令裝置的產(chǎn)品。
計算機程序指令也可被載入計算機或其他可編程數(shù)據(jù)處理設備,以使得一系列操作步驟在計算機或其他可編程設備上被執(zhí)行以產(chǎn)生計算機執(zhí)行的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在一個流程圖塊或多個流程圖塊中指定的功能的步驟。
流程圖的每塊可代表模塊、程序段或代碼的一部分,其包括一個或更多用于實現(xiàn)特定的邏輯功能的可執(zhí)行指令。應注意的是,在一些可選擇的實現(xiàn)中,在這些塊中標注的功能可不按所示順序發(fā)生。例如,連續(xù)顯示的兩個塊事實上可基本同時地被執(zhí)行,或者有時所述塊可以以相反的順序被執(zhí)行,這取決于涉及的功能。
圖2顯示根據(jù)本發(fā)明的示例性實施例的使用非易失性存儲器作為其高速緩存器的存儲設備。
如圖所述,根據(jù)本發(fā)明的示例性實施例的使用非易失性存儲器作為其高速緩存器的存儲設備100可包括主存儲介質110、用作主存儲介質110的高速緩存器的非易失性存儲器120、和通過虛擬地址的方式管理非易失性存儲器120的物理塊(PB)的塊管理單元130。
本領域的技術人員應該理解,根據(jù)本示例性實施例,主存儲介質110是大容量存儲介質,諸如硬盤驅動器,非易失性存儲器120是例如即使在電源中斷的情況下也能夠保持數(shù)據(jù)的閃存。根據(jù)本示例性實施例的使用非易失性存儲器作為其高速緩存器的存儲設備100可連接到主機140,所述主機140根據(jù)用戶的命令將數(shù)據(jù)發(fā)送到主存儲介質110或從主存儲介質110接收數(shù)據(jù)。依次,主機140可連接到塊管理單元130。
可將非易失性存儲器120分為數(shù)據(jù)固定的固定區(qū)域和數(shù)據(jù)頻繁改變的非固定區(qū)域。所述固定區(qū)域存儲應該永久駐留在非易失性存儲器120中的數(shù)據(jù),并且所述固定區(qū)域被用作主存儲介質110的高速緩存器。在非固定區(qū)域中,數(shù)據(jù)頻繁地移動到主存儲介質110中或從主存儲介質110移出。
塊管理單元130可包括塊分配單元131,用于將PB分配給非易失性存儲器120;塊收集單元132,用于收集分配的PB;壞塊管理單元133,用于管理壞塊;電源中斷恢復單元134,用于從電源中斷中恢復;塊映射表管理單元135,用于管理非易失性存儲器120的物理塊號(PBN)和虛擬塊號(VBN)之間的映射關系;以及列表存儲單元136,用于存儲分配塊列表和自由塊列表。
塊分配單元131適合于根據(jù)存儲在列表存儲單元136中的自由塊列表將PB分配給非易失性存儲器120的固定區(qū)域和非固定區(qū)域。自由塊列表包含不存在數(shù)據(jù)的空的PB??蓪⒆杂蓧K列表中的PB按PBN的順序存儲,所述PBN基于PB的使用程度(wear level)。具體地說,使用最少的PB的PBN位于自由塊列表的第一位置,并且使用最多的PB的PBN位于自由塊列表的末尾位置。自由塊列表通常被存儲在非易失性存儲器120的備用區(qū)域中。電源中斷恢復單元134適合于在意外電源中斷和重新啟動的情況下通過使用存儲在備用區(qū)域中的值來重建自由塊列表,如下面將進行的詳細描述。
圖3顯示根據(jù)本發(fā)明的示例性實施例的虛擬塊地址空間。
為了將PB分配給非易失性存儲器120的固定區(qū)域和非固定區(qū)域,如圖3所示,塊分配單元131可將虛擬塊地址空間的VBN分配給相應的PBN。虛擬塊地址空間的VBN可按相反方向連續(xù)映射到非易失性存儲器120的PBN,以將固定區(qū)域和非固定區(qū)域彼此區(qū)分。虛擬塊地址空間的各個VBN可包括多個頁,并且虛擬塊地址空間可比物理地址空間大。
然后,塊分配單元131將位于自由塊列表上的第一PB分配給固定區(qū)域或非固定區(qū)域。記錄分配的PB的PBN和VBN之間的映射關系的塊映射表可被存儲在塊映射表管理單元135中。如在虛擬塊地址空間的情況中一樣,類似地,塊映射表可基于固定區(qū)域和非固定區(qū)域具有沿相反方向的連續(xù)的分配。在將自由塊列表上的一些PB分配給固定區(qū)域或非固定區(qū)域之后,塊分配單元131更新存儲在列表存儲單元136中的分配塊列表和自由塊列表。具體地說,塊分配單元131從自由塊列表中去除已經(jīng)分配給固定區(qū)域或非固定區(qū)域的PB,并將所述分配的PB添加到分配塊列表的最后部分。
圖4顯示根據(jù)本發(fā)明的示例性實施例的分配塊列表和自由塊列表。
從圖中可以清楚的看到,根據(jù)本示例性實施例,分配塊列表210按照使用程度231增加的順序列舉分配的PB 230的PBN,并且自由塊列表220按照相同順序列舉未分配的PB 230的PBN。
圖5顯示塊映射表,其中,分別將圖4中顯示的分配塊列表上的PBN映射到VBN。
從圖中可以清楚的看到,在根據(jù)本示例性實施例的塊映射表240中,基于固定區(qū)域和非固定區(qū)域,以相反方向將PBN連續(xù)映射到VBN。
當將數(shù)據(jù)記錄在非易失性存儲器120中時,可將各種類型的元數(shù)據(jù)和數(shù)據(jù)一起存儲在備用區(qū)域中。根據(jù)本示例性實施例,可將元數(shù)據(jù)存儲在非易失性存儲器120的元數(shù)據(jù)存儲單元121中。存儲在元數(shù)據(jù)存儲單元121中的元數(shù)據(jù)可包括例如,邏輯塊地址(LBA)、固定區(qū)域和非固定區(qū)域數(shù)據(jù)指示符、塊的使用程度和恢復標記。
當LBA映射到分配塊列表的各個PB時,所述LBA可被用于意外電源中斷之后的恢復。固定區(qū)域和非固定區(qū)域數(shù)據(jù)指示符被用于區(qū)分固定區(qū)域和非固定區(qū)域以及電源中斷之后的恢復。使用程度提供創(chuàng)建自由塊列表的標準。恢復標記用于電源中斷之后的恢復。具體地說,當連接分配塊列表和自由塊列表,并將其一起存儲在非易失性存儲器120中時,可在自由塊列表的起始位置設置恢復標記,以與分配塊列表區(qū)分。本領域的技術人員可以理解,當連接分配塊列表和自由塊列表,并將其一起存儲時,它們實際上構成了單個列表,所述單個列表具有在自由塊列表的起始位置設置的恢復標記,所述恢復標記用于區(qū)分分配塊列表和自由塊列表。
塊收集單元132計算分配塊列表上的各個PB的有效頁。塊收集單元132可執(zhí)行從具有最少有效頁的PB的塊收集。當PB具有最少有效頁時,可以認為PB具有最少有效數(shù)據(jù)。這樣,塊收集從具有最少有效頁的PB開始。
塊收集單元132分配處于自由塊列表上第一位置的PB,以使所述PB被定位在分配塊列表的末端。塊收集單元132將由塊收集得到的PB中的有效頁移動到分配塊列表的末尾位置上的塊。在將所有有效頁都移動到分配塊列表的最后位置上的PB之后,塊收集單元132按照使用程度的順序將已經(jīng)經(jīng)受塊收集的PB添加到自由塊列表。
為了塊收集,塊分配單元131將虛擬塊地址空間的VBN分配給分配塊列表的末尾位置上的PB的PBN,從而更新虛擬塊地址空間。
圖6顯示根據(jù)本發(fā)明的示例性實施例的塊收集之前的PB。
從附圖可清楚地看到,分配塊列表310列舉PBN 5、PBN 0、PBN 7和PBN 2,其有效頁的數(shù)量311分別為5、4、6和4。自由塊列表320列舉PBN3、PBN 6、PBN 1和PBN 4。在塊映射表330中,基于固定區(qū)域和非固定區(qū)域,分配塊列表310的PBN沿相反方向映射到各個VBN。
圖7顯示根據(jù)本發(fā)明的示例性實施例的塊收集之后的PB。在參照圖7的下面的描述中將假設為了塊收集,將圖6所示的PBN 0的有效頁移動到PBN 6,并將PBN 2和PBN 5的有效頁移動到PBN 3。
從圖7可以清楚地看到,作為塊收集的結果,已經(jīng)從分配塊列表310中去除PBN 0、PBN 2和PBN 5(圖6所示),并且按照使用程度的順序將其添加到自由塊列表320。
如圖7所示,在塊映射表330中,因為PBN 7沒有經(jīng)受塊收集。所以,PBN 7保持其位置。相反,已經(jīng)經(jīng)受塊收集并從自由塊列表320移動到分配塊列表310的PBN 3和PBN 6映射到新的VBN。
當分配塊列表上的PB中出現(xiàn)壞塊時,壞塊管理單元133從分配塊列表中去除那個特定的PB,并將已經(jīng)記錄在去除的PB中的數(shù)據(jù)移動到從自由塊列表320新分配的PB。為了移動已經(jīng)記錄在壞塊中的數(shù)據(jù),壞塊管理單元133將從自由塊列表新分配的PB插入到去除的壞塊的位置。
圖8顯示根據(jù)本發(fā)明的示例性實施例的壞塊的出現(xiàn)。
如圖8所示,當在分配塊列表410的PBN 5中出現(xiàn)壞塊時,壞塊管理單元133接收從自由塊列表420新分配的PB,并且將已經(jīng)記錄在所述壞塊中的數(shù)據(jù)移動到新分配的PB。在去除壞塊之前,在塊映射列表430中PBN 5映射到VBN 7。在去除壞塊之后,新分配的PB映射到VBN 7。
圖9顯示根據(jù)本發(fā)明的示例性實施例的壞塊的去除。
如圖9所示,壞塊管理單元133將記錄在如圖8所示的具有壞塊的PBN5中的數(shù)據(jù)移動到從自由塊列表420新分配的PBN 6,并將PBN 6插入PBN 5的位置,其中,沒有將PBN 5添加到自由塊列表420,也沒有分配PBN 5。在塊映射列表430中,新分配的PBN 6映射到先前映射到具有壞塊的PBN 5的VBN 7。
電源中斷恢復單元134適合于通過分配塊列表和自由塊列表從意外電源中斷中恢復。為此,當由于對主存儲介質110進行塊收集或數(shù)據(jù)的移動而使分配塊列表和自由塊列表改變它們的順序時,電源中斷恢復單元134將分配塊列表和自由塊列表存儲在非易失性存儲器120的備用區(qū)域中。具體地說,一旦存儲了分配塊列表和自由塊列表,則即使在意外電源中斷的情況下,分配塊列表和自由塊列表也保持它們的順序。結果,PB的分配順序保持完整,并且基于備用區(qū)域中的LBA,可提取最新數(shù)據(jù)。這樣,僅在進行對主存儲介質110進行塊收集或數(shù)據(jù)移動的情況下,存儲分配塊列表和自由塊列表,以使在電源中斷之后容易恢復。在塊收集期間設置恢復標記,并且在重新分配期間刪除恢復標記,從而可區(qū)分分配塊列表和自由塊列表。也可通過使用分配塊列表恢復塊映射表。
圖10顯示根據(jù)本發(fā)明的示例性實施例的分配塊的方法。
參照附圖,在操作S110,塊分配單元131首先從自由塊列表中選擇將新分配給固定區(qū)域或非固定區(qū)域的PB。塊分配單元131新分配位于自由塊列表上的第一位置的PB。這是因為自由塊列表以使用程度增加的順序列舉PB,第一PB具有最低的使用程度。
在操作S120,塊分配單元131將VBN分配給選擇的PBN。具體地說,基于固定區(qū)域和非固定區(qū)域,以相反方向在虛擬塊地址空間中連續(xù)分配VBN。
在操作S130,塊分配單元131更新表示PBN和VBN之間的映射關系的塊映射表。
在操作S140,塊分配單元131將選擇的PBN添加到分配塊列表的最后,在操作S150,從自由塊列表中去除選擇的PBN。將新分配的PBN添加到分配塊列表的最后的原因是,當在非易失性存儲器120中更新數(shù)據(jù)的情況下,在不修改先前寫入的數(shù)據(jù)的條件下新分配并添加PB。當每次分配新PB時以這樣的方式將PBN添加到分配塊列表的最后時,后寫入的數(shù)據(jù)可證明是有效數(shù)據(jù)。如上所述,電源中斷恢復單元134可使用這樣的方法從電源中斷中恢復。
圖11顯示根據(jù)本發(fā)明的示例性實施例的收集塊的方法。
在操作S210,參照附圖,塊收集單元132首先計算包括在分配塊列表上的各個PB中的有效頁。這是為了收集包含至少預定數(shù)量的無效頁的PB,并重新分配所述PB。
在操作S220,塊收集單元132根據(jù)有效頁的數(shù)量確定PB的塊收集順序,在本示例性實施例的下面的描述中假設塊收集從具有最少有效頁的PB開始。另外,對具有少于預定數(shù)量的有效頁或空白頁的PB執(zhí)行塊收集。
在操作S230,為了以確定的順序收集具有最少有效頁的PB,塊收集單元132將自由塊列表上的第一PBN定位在分配塊列表的最后。
在操作S240,塊收集單元132將由塊收集得到的PB的有效頁移動到分配塊列表上的最后PB。在操作S250,塊收集單元132基于使用程度將PB添加到自由塊列表中,所述PB在其有效頁被移出之后為空。在操作S260,塊收集單元132將VBN分配給已經(jīng)新添加到分配塊列表中的PBN,從而更新了塊映射表。
在操作S270,塊收集單元132確定是否已經(jīng)收集了由塊收集得到的所有PB。如果沒有,則塊收集單元132執(zhí)行操作S280,接著重復上述操作S240、S250和S260,直到收集了由塊收集得到的所有PB。具體地說,在操作S280,為了下一PB的塊收集,塊收集單元1 32將自由塊列表上的第一PBN定位在分配塊列表的最后。接著,塊收集單元132將由塊收集得到的PB的有效頁移動到分配塊列表上的最后PB;基于使用程度將PB添加到自由塊列表中,所述PB在其有效頁被移出之后為空;將VBN分配給已經(jīng)新添加到分配塊列表中的PBN,從而更新了塊映射表。
圖12顯示根據(jù)本發(fā)明的示例性實施例的處理壞塊的方法。
參照圖12,在操作S310,壞塊管理單元133首先確定分配塊列表上的任何PB中是否存在壞塊。
如果是,則在操作S320中,壞塊管理單元133接收由塊分配單元131從自由塊列表新分配的PB。具體地說,在考慮PB的使用程度的情況下新分配自由塊列表上的第一PB。本領域的技術人員可以很容易地理解,盡管在本發(fā)明的本示例性實施例中分配自由塊列表上的第一PB,但是為了避免第一PB的頻繁改變,可分配第一PB的下一PB,在所述第一PB上設置了如上所述的恢復標記。
在分配新PB之后,在操作S330,壞塊管理單元133將具有壞塊的PB的數(shù)據(jù)移動到新分配的PB。
在數(shù)據(jù)移動之后,在操作S340,壞塊管理單元133將數(shù)據(jù)已經(jīng)移動到其中的PB插入到具有壞塊的PB的位置。
在操作S350,壞塊管理單元133將已經(jīng)被分配給具有壞塊的PBN的VBN分配給已插入到具有壞塊的PB的位置上的PBN。
圖13顯示根據(jù)本發(fā)明的示例性實施例的從電源中斷中恢復的方法。
參照圖13,在操作S410,當意外地發(fā)生電源中斷時,電源中斷恢復單元134提取分配塊列表和自由塊列表,所述分配塊列表和自由塊列表都已經(jīng)存儲在非易失性存儲器120的備用區(qū)域中。
在操作S420,電源中斷恢復單元134基于分配塊列表恢復PB分配的順序。當存在多于一個具有相同LBA的PB時,電源中斷恢復單元134確定最后寫入的PB有效。
在操作S430,電源中斷恢復單元134基于分配塊列表恢復塊映射表。
這里使用的術語“單元”的意思是,但不限于,軟件或硬件組件,諸如執(zhí)行特定任務的現(xiàn)場可編程門陣列(FPGA)或專用集成電路(ASIC)。單元可以方便地被配置以駐留在可尋址的存儲介質上,并且可被配置以在一個或多個處理器上執(zhí)行。因此,舉例來說,單元可以包括諸如軟件組件、面向對象的軟件組件、類組件和任務組件的組件、進程、函數(shù)、屬性、過程、子程序、程序代碼段、驅動程序、固件、微碼、電路、數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)結構、表、數(shù)組和變量。在組件和單元中提供的功能可被組合為更少的組件和單元,或者可進一步被分離成另外的組件和單元。
如上所述,與本發(fā)明的示例性實施例一致的使用非易失性存儲器作為高速緩存器的存儲設備和管理所述設備的方法具有下面的示例性優(yōu)點。
通過根據(jù)數(shù)據(jù)是否固定將非易失性存儲器分為固定區(qū)域和非固定區(qū)域來有效地管理非易失性存儲器。
通過非易失性存儲器中的塊收集使各個塊的使用程度統(tǒng)一。這樣增加了存儲器的壽命。另外,主存儲介質的使用程度的減少降低了其運行期間的功耗。
即使在意外電源中斷的情況下,也能夠從分配塊列表中恢復塊映射表,這樣保證了安全的數(shù)據(jù)恢復。
盡管上面為了示意性的目的描述了本發(fā)明的示例性實施例,但是本領域的技術人員應該理解,在不脫離權利要求
公開的本發(fā)明的精神和范圍的情況下,可以對其進行各種修改、添加和置換。
權利要求
1.一種存儲設備,包括主存儲介質;用作主存儲介質的高速緩存器的非易失性存儲器,其中,根據(jù)數(shù)據(jù)是否固定將非易失性存儲器的區(qū)域分成固定區(qū)域和非固定區(qū)域;以及塊管理單元,使用虛擬地址來管理物理塊,其中,所述物理塊被分配給非易失性存儲器。
2.如權利要求
1所述的存儲設備,其中,所述塊管理單元包括塊分配單元,將物理塊分配給非易失性存儲器;塊收集單元,收集分配給非易失性存儲器的物理塊;壞塊管理單元,管理壞塊;電源中斷恢復單元,在電源中斷的情況下恢復存儲設備;塊映射表管理單元,管理表示物理塊號和分配給物理塊號的虛擬塊號之間的映射關系的塊映射表;以及列表存儲單元,存儲列舉分配的物理塊的分配塊列表和列舉空物理塊的自由塊列表。
3.如權利要求
2所述的存儲設備,其中,所述塊分配單元適合于將自由塊列表上的第一物理塊分配給固定區(qū)域或非固定區(qū)域。
4.如權利要求
3所述的存儲設備,其中,所述自由快列表按照使用程度增加的順序列舉空物理塊。
5.如權利要求
3所述的存儲設備,其中,所述塊分配單元適合于將物理塊定位在分配塊列表的末尾。
6.如權利要求
5所述的存儲設備,其中,所述塊映射表管理單元適合于存儲具有虛擬塊號的塊映射表,所述虛擬塊號被分配給在分配塊列表中列舉的物理塊號,以及其中,所述塊映射表管理單元將虛擬塊號分配給分配塊列表上的末尾的物理塊號,從而更新塊映射表。
7.如權利要求
2所述的存儲設備,其中,所述塊收集單元適合于計算分配塊列表上的各個物理塊的有效頁,以及其中,所述塊收集單元執(zhí)行從具有最少有效頁的物理塊開始的塊收集。
8.如權利要求
7所述的存儲設備,其中,所述塊收集單元適合于將物理塊定位在分配塊列表的末尾,以及其中,塊收集單元將由塊收集得到的物理塊中的有效頁移動到分配塊列表的末尾的物理塊。
9.如權利要求
8所述的存儲設備,其中,所述塊收集單元適合于當在有效頁被移出之后由塊收集得到的物理塊為空時,根據(jù)使用程度將所述物理塊添加到自由塊列表中。
10.如權利要求
2所述的存儲設備,其中,所述壞塊管理單元適合于當分配塊列表上的物理塊包括壞塊時,將所述物理塊的數(shù)據(jù)移出到從自由塊列表新分配的物理塊,以及其中,所述包括壞塊的物理塊從分配中被免除。
11.如權利要求
10所述的存儲設備,其中,所述壞塊管理單元適合于將從自由塊列表新分配的物理塊插入到所述包括壞塊的物理塊的先前位置,以及其中,所述塊映射單元適合于將虛擬塊號分配給被插入的物理塊的物理塊號,其中,分配的虛擬塊號先前被分配給所述包括壞塊的物理塊。
12.如權利要求
2所述的存儲設備,其中,電源中斷恢復單元適合于提取分配塊列表,并在電源中斷的情況下恢復塊映射表。
13.一種管理存儲設備的方法,所述方法包括根據(jù)數(shù)據(jù)是固定的還是非固定的來將用作主存儲介質的高速緩存器的非易失性存儲器的區(qū)域分成固定區(qū)域和非固定區(qū)域;以及通過分配給物理塊的虛擬地址分別管理分配給固定區(qū)域和非固定區(qū)域的物理塊。
14.如權利要求
13所述的方法,其中,管理物理塊的步驟包括將物理塊分配給非易失性存儲器;收集分配給非易失性存儲器的物理塊;管理壞塊;從電源中斷中恢復;管理表示物理塊號和分配給物理塊號的虛擬塊號之間的映射關系的塊映射表;存儲列舉分配的物理塊的分配塊列表;以及存儲列舉空物理塊的自由塊列表。
15.如權利要求
14所述的方法,其中,分配物理塊的步驟包括將自由塊列表上的第一物理塊分配給固定區(qū)域或非固定區(qū)域。
16.如權利要求
15所述的方法,其中,所述自由快列表按照使用程度增加的順序列舉空物理塊。
17.如權利要求
15所述的方法,其中,分配物理塊的步驟包括將物理塊定位在分配塊列表的末尾。
18.如權利要求
17所述的方法,其中,管理塊映射表的步驟包括存儲具有虛擬塊號的塊映射表,所述虛擬塊號被分配給在分配塊列表中列舉的物理塊號;以及將虛擬塊號分配給分配塊列表上的末尾物理塊號,從而更新塊映射表。
19.如權利要求
14所述的方法,其中,收集物理塊的步驟包括計算分配塊列表上的各個物理塊的有效頁;以及執(zhí)行從具有最少有效頁的物理塊開始的塊收集。
20.如權利要求
19所述的方法,其中,收集物理塊的步驟包括將物理塊定位在分配塊列表的末尾;以及將由塊收集得到的物理塊中的有效頁移動到分配塊列表的末尾的物理塊。
21.如權利要求
20所述的方法,其中,收集物理塊的步驟包括當在有效頁被移出之后由塊收集得到的物理塊為空時,根據(jù)使用程度將所述物理塊添加到自由塊列表中。
22.如權利要求
14所述的方法,其中,管理壞塊的步驟包括當分配塊列表上的物理塊包括壞塊時,將所述物理塊的數(shù)據(jù)移出到從自由塊列表新分配的物理塊;以及將所述包括壞塊的物理塊從分配中免除。
23.如權利要求
22所述的方法,其中,管理壞塊的步驟包括將從自由塊列表新分配的物理塊插入到所述包括壞塊的物理塊的位置;以及將虛擬塊號分配給被插入的物理塊的物理塊號,其中,分配的虛擬塊號先前被分配給所述包括壞塊的物理塊。
24.如權利要求
14所述的方法,其中,從電源中斷中恢復的步驟包括提取分配塊列表;以及在電源中斷的情況下恢復塊映射表。
專利摘要
提供一種使用即使在電源中斷之后也保持數(shù)據(jù)的非易失性存儲器作為其高速緩存器的存儲設備以及管理所述設備的方法。所述存儲設備包括主存儲介質;用作主存儲介質的高速緩存器的非易失性存儲器,根據(jù)數(shù)據(jù)是否固定將非易失性存儲器的區(qū)域分成固定區(qū)域和非固定區(qū)域;以及塊管理單元,通過虛擬地址來管理物理塊,所述物理塊被分配給非易失性存儲器。
文檔編號G06F12/16GK1991790SQ200610168231
公開日2007年7月4日 申請日期2006年12月26日
發(fā)明者申東君, 李時潤, 金莊煥, 宋東顯 申請人:三星電子株式會社導出引文BiBTeX, EndNote, RefMan