專利名稱::存儲(chǔ)器裝置及其損耗平均方法
技術(shù)領(lǐng)域:
:下面的描述涉及一種存儲(chǔ)器裝置及其損耗平均(wearleveling)方法。
背景技術(shù):
:非易失性隨機(jī)存取存儲(chǔ)器(NVRAM)是這樣一種RAM,其中,存儲(chǔ)在NVRAM上的數(shù)據(jù)在電源斷開(kāi)時(shí)不丟失。NVRAM可被用于存儲(chǔ)文件或執(zhí)行程序。由于存儲(chǔ)在NVRAM中的信息在電源斷開(kāi)時(shí)不丟失,因此在電源突然斷開(kāi)的情況下,系統(tǒng)可迅速恢復(fù)到其初始狀態(tài)。當(dāng)使用者隨意斷開(kāi)電源或電源失效發(fā)生時(shí),NVRAM容易地使數(shù)據(jù)恢復(fù)。NVRAM的例子包括相變RAM(PRAM)、鐵電RAM(FeRAM)、磁性RAM等。此外,因?yàn)榕c動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)相比,NVRAM通常具有較低的功耗,當(dāng)用NVRAM替換DRAM時(shí),可顯著降低系統(tǒng)功耗。此外,在對(duì)特定位置進(jìn)行新寫(xiě)入之前,NVRAM不需要存儲(chǔ)器來(lái)擦除先前存儲(chǔ)的存儲(chǔ)器。因而,NVRAM支持用新的數(shù)據(jù)覆寫(xiě)先前存儲(chǔ)的數(shù)據(jù)。然而,當(dāng)與DRAM相比時(shí),NVRAM只能提供有限次數(shù)的寫(xiě)入操作。
發(fā)明內(nèi)容根據(jù)本發(fā)明的一方面,一種存儲(chǔ)器裝置包括存儲(chǔ)器,包括非易失性隨機(jī)存取存儲(chǔ)器(NVRAM);控制器,控制所述存儲(chǔ)器,其中,控制器管理頁(yè)表,所述頁(yè)表包括將NVRAM的虛擬地址映射到NVRAM的物理地址的映射信息,所述頁(yè)表的項(xiàng)包括指示NVRAM的對(duì)應(yīng)頁(yè)的損耗的年齡信息。年齡信息可以指示對(duì)應(yīng)頁(yè)允許的寫(xiě)入操作的剩余次數(shù),每當(dāng)在對(duì)應(yīng)頁(yè)上寫(xiě)入數(shù)據(jù)時(shí),控制器將對(duì)應(yīng)頁(yè)允許的寫(xiě)入操作的剩余次數(shù)減小1。所述存儲(chǔ)器裝置還可包括由控制器控制的非易失性存儲(chǔ)器,其中,當(dāng)電源斷開(kāi)時(shí),控制器將每頁(yè)的年齡信息存儲(chǔ)在所述非易失性存儲(chǔ)器中,在啟動(dòng)時(shí)恢復(fù)存儲(chǔ)在所述非易失性存儲(chǔ)器中的每頁(yè)的寫(xiě)入操作的剩余次數(shù),并根據(jù)每頁(yè)的年齡信息對(duì)存儲(chǔ)器執(zhí)行存儲(chǔ)器分配??刂破骺勺?cè)并管理黑名單,黑名單包括作為不再使用的頁(yè)的一個(gè)或一個(gè)以上的損耗頁(yè)的信息,在電源斷開(kāi)時(shí)控制器將黑名單存儲(chǔ)在所述非易失性存儲(chǔ)器中,并在啟動(dòng)時(shí)恢復(fù)存儲(chǔ)在非易失性存儲(chǔ)器中的黑名單。如果對(duì)已經(jīng)在頁(yè)上執(zhí)行的寫(xiě)入操作的次數(shù)等于或超過(guò)閾值的所述頁(yè)執(zhí)行寫(xiě)入操作,則控制器可產(chǎn)生頁(yè)失效,可將該頁(yè)的內(nèi)容復(fù)制到自由頁(yè),并可修改對(duì)應(yīng)于該頁(yè)的頁(yè)表,從而使該頁(yè)的虛擬地址映射到該自由頁(yè)的物理地址。如果對(duì)已經(jīng)在頁(yè)上執(zhí)行的寫(xiě)入操作的次數(shù)等于或超過(guò)閾值的所述頁(yè)執(zhí)行寫(xiě)入操作,則控制器可產(chǎn)生頁(yè)失效,并可防止對(duì)該頁(yè)執(zhí)行存儲(chǔ)器分配。控制器可根據(jù)基于二元樹(shù)數(shù)據(jù)結(jié)構(gòu)的伙伴分配算法來(lái)執(zhí)行存儲(chǔ)器分配,如果在存儲(chǔ)器分配過(guò)程中在二元樹(shù)數(shù)據(jù)結(jié)構(gòu)上的節(jié)點(diǎn)處發(fā)生頁(yè)失效,則控制器可標(biāo)記該節(jié)點(diǎn)和至少一個(gè)該節(jié)點(diǎn)上面的節(jié)點(diǎn)。如果基于至少一個(gè)節(jié)點(diǎn)的大小請(qǐng)求頁(yè)分配并需要分配連續(xù)空間,則控制器可防止對(duì)應(yīng)于標(biāo)記的節(jié)點(diǎn)的頁(yè)被分配。頁(yè)表可包括層1頁(yè)表和層2頁(yè)表,層1頁(yè)表可以以比頁(yè)單位大的超級(jí)扇區(qū)為單位來(lái)管理對(duì)應(yīng)于虛擬地址的物理地址,層2頁(yè)表可以以頁(yè)為單位管理對(duì)應(yīng)于虛擬地址的物理地址。層1頁(yè)表可包括關(guān)于每個(gè)超級(jí)扇區(qū)允許的寫(xiě)入操作的剩余次數(shù)的信息,層2頁(yè)表可包括關(guān)于每個(gè)頁(yè)允許的寫(xiě)入操作的剩余次數(shù)的信息。頁(yè)表可包括以頁(yè)為單位映射虛擬地址和物理地址的層2頁(yè)表及指示層2頁(yè)表的位置的層1頁(yè)表,其中,層2頁(yè)表包括關(guān)于每個(gè)頁(yè)允許的寫(xiě)入操作的剩余次數(shù)的信息。頁(yè)表的項(xiàng)可包括指示頁(yè)表是否包括指示存儲(chǔ)年齡信息的存儲(chǔ)器的位置的指針信息的標(biāo)識(shí)符信息。如果頁(yè)由兩個(gè)或兩個(gè)以上的程序共享,則頁(yè)表的項(xiàng)可包括指示存儲(chǔ)該共享的頁(yè)的年齡信息的存儲(chǔ)器的位置的指針信息,如果頁(yè)僅由一個(gè)程序使用,則頁(yè)表的項(xiàng)可包括該由一個(gè)程序使用的頁(yè)的年齡信息。當(dāng)被兩個(gè)或兩個(gè)以上程序共享的頁(yè)停止被共享時(shí),存儲(chǔ)在存儲(chǔ)器中的對(duì)應(yīng)該頁(yè)的年齡信息可被復(fù)制到該頁(yè)的年齡字段。如果先前沒(méi)有被共享的頁(yè)變?yōu)橛蓛蓚€(gè)或兩個(gè)以上的程序共享,則該頁(yè)的年齡字段的值可被復(fù)制到存儲(chǔ)器的位置,指示該位置的指針信息可被存儲(chǔ)到該頁(yè)的年齡字段中。根據(jù)另一方面,一種存儲(chǔ)器裝置的損耗平均方法,存儲(chǔ)器裝置包括包含非易失性隨機(jī)存取存儲(chǔ)器(NVRAM)的存儲(chǔ)器和用于控制該存儲(chǔ)器的控制器,其中,對(duì)應(yīng)于NVRAM的頁(yè)表包括將NVRAM的虛擬地址映射到NVRAM的物理地址的映射信息,頁(yè)表的項(xiàng)包括指示對(duì)應(yīng)頁(yè)的損耗的年齡信息,所述方法包括如下步驟在頁(yè)上寫(xiě)入數(shù)據(jù);響應(yīng)于在頁(yè)上的寫(xiě)入步驟而將寫(xiě)入操作的剩余次數(shù)減小1,寫(xiě)入操作的剩余次數(shù)由對(duì)應(yīng)于該頁(yè)的頁(yè)表的項(xiàng)中提供的年齡信息來(lái)指示。所述方法還可包括如下步驟當(dāng)電源斷開(kāi)時(shí),將每個(gè)頁(yè)的年齡信息存儲(chǔ)在非易失性存儲(chǔ)器中;在啟動(dòng)時(shí)恢復(fù)存儲(chǔ)在非易失性存儲(chǔ)器中的每個(gè)頁(yè)的寫(xiě)入操作的剩余次數(shù);基于被恢復(fù)的寫(xiě)入操作的剩余次數(shù)來(lái)執(zhí)行存儲(chǔ)器分配。所述方法還可包括如下步驟將寫(xiě)入操作的剩余次數(shù)已達(dá)閾值的損耗頁(yè)注冊(cè)在黑名單中,并管理該黑名單。當(dāng)在頁(yè)上執(zhí)行的寫(xiě)入操作的次數(shù)超過(guò)閾值時(shí),所述方法還可包括如下步驟產(chǎn)生頁(yè)失效;將該頁(yè)的內(nèi)容復(fù)制到自由頁(yè)中;修改頁(yè)表,從而該頁(yè)的虛擬地址被映射到該自由頁(yè)的物理地址。所述方法還包括基于年齡信息來(lái)執(zhí)行存儲(chǔ)器分配的步驟,其中,存儲(chǔ)器分配的執(zhí)行包括如下步驟如果對(duì)頁(yè)上允許的寫(xiě)入操作的次數(shù)已達(dá)閾值的頁(yè)執(zhí)行寫(xiě)入操作,則產(chǎn)生頁(yè)失效并防止該頁(yè)被分配。存儲(chǔ)器分配的執(zhí)行可包括根據(jù)伙伴分配算法執(zhí)行存儲(chǔ)器分配,所述伙伴分配算法根據(jù)二元樹(shù)數(shù)據(jù)結(jié)構(gòu)執(zhí)行頁(yè)分配,如果在執(zhí)行存儲(chǔ)器分配時(shí)在二元樹(shù)數(shù)據(jù)結(jié)構(gòu)的節(jié)點(diǎn)上產(chǎn)生頁(yè)失效,則所述方法還可包括如下步驟標(biāo)記該節(jié)點(diǎn)和該節(jié)點(diǎn)的至少一個(gè)上面的節(jié)點(diǎn);確定是否需要基于所述至少一個(gè)上面的節(jié)點(diǎn)的大小的頁(yè)分配及是否需要連續(xù)空間的分配,其中,如果需要基于所述至少一個(gè)上面的節(jié)點(diǎn)的大小的頁(yè)分配且需要連續(xù)空間的分配,則對(duì)應(yīng)于標(biāo)記的節(jié)點(diǎn)的頁(yè)被從存儲(chǔ)器分配中排除。頁(yè)表可包括指示頁(yè)表的項(xiàng)是否包括指示存儲(chǔ)年齡信息的存儲(chǔ)器的位置的指針信息或頁(yè)表的項(xiàng)是否包括年齡信息的標(biāo)識(shí)符信息。如果頁(yè)由兩個(gè)或兩個(gè)以上的程序共享,則頁(yè)表的項(xiàng)可包括指示存儲(chǔ)共享頁(yè)的年齡信息的存儲(chǔ)器的位置的指針信息,如果頁(yè)僅由一個(gè)程序使用,則頁(yè)表的項(xiàng)包括該頁(yè)的年齡fn息ο通過(guò)下述具體描述、附圖及權(quán)利要求,其它特征和方面將是清楚的。圖1是示出示例性存儲(chǔ)器裝置的框圖;圖2示出了示例性頁(yè)表的結(jié)構(gòu);圖3A示出了當(dāng)不共享頁(yè)時(shí)的示例性年齡字段,圖3B示出了當(dāng)多個(gè)程序共享頁(yè)時(shí)的示例性年齡字段;圖4是示出存儲(chǔ)器裝置的示例性損耗平均方法的流程圖;圖5是示出處理由存儲(chǔ)器分配產(chǎn)生的頁(yè)失效的示例性方法的流程圖。在全部的附圖和詳細(xì)描述中,除非另行描述,否則相同的標(biāo)號(hào)應(yīng)被理解為表示相同的元件、特征和結(jié)構(gòu)。為清楚、示出和方便,會(huì)夸大這些元件的相對(duì)尺寸和描述。具體實(shí)施例方式提供下面的詳細(xì)描述以幫助讀者獲得這里描述的方法、裝置和/或系統(tǒng)的全面理解。因而,將向本領(lǐng)域普通技術(shù)人員建議這里描述的系統(tǒng)、裝置和/或方法的各種改變、修改和等同物。此外,為更清楚和簡(jiǎn)潔,會(huì)省略公知的功能和構(gòu)造的描述。圖1示出了示例性存儲(chǔ)器裝置100。存儲(chǔ)器裝置100包括控制器110、主存儲(chǔ)器120和非易失性存儲(chǔ)器130。圖1中的直線表示系統(tǒng)總線,可通過(guò)系統(tǒng)總線傳輸數(shù)據(jù)和指令??刂破?10可以是CPU或微控制器。主存儲(chǔ)器120為可以直接與控制器110交換數(shù)據(jù)的存儲(chǔ)器,當(dāng)執(zhí)行操作系統(tǒng)(OS)或應(yīng)用程序時(shí),主存儲(chǔ)器120可被控制器110利用。主存儲(chǔ)器120包括,例如,非易失性隨機(jī)存取存儲(chǔ)器(NVRAM)122和動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)124。控制器110把將被OS使用的數(shù)據(jù)存儲(chǔ)在DRAM124中。用于NVRAM122的存儲(chǔ)器分配的頁(yè)表和數(shù)據(jù)可被OS使用,且可將它們存儲(chǔ)在DRAM124中。用于NVRAM122的存儲(chǔ)器分配的數(shù)據(jù)可包括,例如,二元樹(shù)(binarytree)。當(dāng)執(zhí)行諸如伙伴分配算法時(shí),可使用和訪問(wèn)二元樹(shù)。在確定普通用戶應(yīng)用程序的程序是否向DRAM124或向NVRAM122要求存儲(chǔ)器分配之后,該程序可向OS要求存儲(chǔ)器分配。在電源斷開(kāi)時(shí),存儲(chǔ)在非易失性存儲(chǔ)器130中的數(shù)據(jù)不丟失。存儲(chǔ)在非易失性存儲(chǔ)器130中的數(shù)據(jù)加載到主存儲(chǔ)器120中,然后由控制器110處理。非易失性存儲(chǔ)器130的例子包括閃存、硬盤(pán)等??刂破?10包括存儲(chǔ)器管理單元(MMU)112、存儲(chǔ)器分配單元114和年齡頁(yè)失效(APFagingpagefault)處理器(handler)116??刂破?10還可以包括一個(gè)或更多的其它功能單元,可通過(guò)一個(gè)或更多的其它功能單元來(lái)執(zhí)行MMU112、存儲(chǔ)器分配單元114和APF處理器116的功能。換句話說(shuō),可以以多種方式實(shí)現(xiàn)控制器110。MMU112將控制器110指示的存儲(chǔ)器區(qū)域的虛擬地址轉(zhuǎn)換成物理地址。例如,MMU112通過(guò)參照指示哪個(gè)物理存儲(chǔ)器頁(yè)映射哪個(gè)虛擬存儲(chǔ)器頁(yè)的頁(yè)表來(lái)將虛擬地址轉(zhuǎn)換為物理地址。根據(jù)一方面,頁(yè)表的項(xiàng)包括指示頁(yè)損耗的年齡信息。頁(yè)表的項(xiàng)可包括年齡信息或指示存儲(chǔ)年齡信息的存儲(chǔ)器的位置的指針信息。可以以頁(yè)為單位管理年齡。頁(yè)上的所有字節(jié)(byte)具有相同的年齡。頁(yè)表的項(xiàng)可包括含有年齡信息的年齡字段(field)。頁(yè)表的項(xiàng)的年齡信息可指示在頁(yè)達(dá)到耐久極限(endurancelimit)之前,在該頁(yè)上允許的寫(xiě)入操作的剩余次數(shù)。MMU112根據(jù)在存儲(chǔ)器區(qū)域上執(zhí)行的寫(xiě)入來(lái)管理存儲(chǔ)器區(qū)域的年齡信息。每在特定頁(yè)上寫(xiě)入數(shù)據(jù)時(shí),MMU112通過(guò)減小包括在該頁(yè)的頁(yè)表的項(xiàng)中的年齡信息的值(例如,將所述值減小1)來(lái)更新年齡信息。當(dāng)將對(duì)應(yīng)的頁(yè)表的項(xiàng)初始化時(shí),設(shè)置年齡字段的初始值??蓪⒛挲g字段的初始值設(shè)置為α,α可以是NVRAM122的耐久極限。例如,α值是由OS設(shè)置的常數(shù),α值被用于防止在已經(jīng)達(dá)到耐久極限的損耗的頁(yè)上執(zhí)行寫(xiě)入操作。每頁(yè)的頁(yè)表的項(xiàng)包括寫(xiě)入操作剩余次數(shù)的值α。每當(dāng)數(shù)據(jù)被寫(xiě)入到頁(yè)上時(shí),控制器將α值減小1,保持追蹤(track)α值,使存儲(chǔ)器裝置獲知α值何時(shí)變?yōu)榛蚪咏?。作為示例,MMU112不是每當(dāng)執(zhí)行存儲(chǔ)指令時(shí)都更新包括在頁(yè)的年齡字段中的年齡信息,而是當(dāng)在對(duì)應(yīng)的存儲(chǔ)器上實(shí)際執(zhí)行寫(xiě)入操作時(shí)將年齡信息的值減小1。即,即使控制器110執(zhí)行存儲(chǔ)指令,但如果數(shù)據(jù)緩存在CPU高速緩存中,則不發(fā)生年齡信息的更新??梢砸宰止?jié)、字(word)、多字(multiple-word)等為單位來(lái)執(zhí)行存儲(chǔ)指令。當(dāng)電源斷開(kāi)時(shí),控制器110將每頁(yè)的年齡信息存儲(chǔ)在非易失性存儲(chǔ)器130中,在啟動(dòng)(booting)時(shí),控制器110恢復(fù)存儲(chǔ)在非易失性存儲(chǔ)器130中的每頁(yè)的寫(xiě)入操作的剩余次數(shù),并根據(jù)每個(gè)頁(yè)的年齡信息在主存儲(chǔ)器120上執(zhí)行存儲(chǔ)器分配??刂破?10可產(chǎn)生并管理包括關(guān)于損耗頁(yè)的信息的黑名單,該損耗頁(yè)的剩余寫(xiě)入操作的值α為例如0。因?yàn)椴辉试S在損耗頁(yè)上執(zhí)行其余的寫(xiě)入操作,所以損耗頁(yè)不再被使用。在電源斷開(kāi)時(shí),控制器110可將黑名單存儲(chǔ)在非易失性存儲(chǔ)器130中,并在啟動(dòng)時(shí)恢復(fù)存儲(chǔ)在非易失性存儲(chǔ)器130中的黑名單。存儲(chǔ)器分配單元114執(zhí)行用于執(zhí)行計(jì)算機(jī)程序的存儲(chǔ)器分配。存儲(chǔ)器分配單元114可根據(jù)如伙伴分配算法來(lái)將存儲(chǔ)器分配到NVRAM122。當(dāng)在寫(xiě)入操作的剩余次數(shù)α等于或超過(guò)閾值的頁(yè)上執(zhí)行寫(xiě)入操作時(shí),控制器110為所述頁(yè)產(chǎn)生年齡頁(yè)失效(APF)并防止所述頁(yè)被使用。MMU112使APF處理器116在寫(xiě)入操作的剩余次數(shù)為0的頁(yè)上執(zhí)行失效處理。例如,每當(dāng)在頁(yè)中寫(xiě)入數(shù)據(jù)時(shí),MMU112將頁(yè)的年齡信息的值減小1,并當(dāng)年齡信息的值達(dá)到O時(shí)產(chǎn)生年齡頁(yè)失效。當(dāng)產(chǎn)生年齡頁(yè)失效時(shí),APF處理器116對(duì)已產(chǎn)生年齡頁(yè)失效的頁(yè)執(zhí)行失效處理。APF處理器116可包括在OS中。APF處理器116復(fù)制已產(chǎn)生頁(yè)失效的頁(yè)的內(nèi)容,并將所述內(nèi)容傳輸?shù)阶杂身?yè)。MMU112可修改對(duì)應(yīng)的頁(yè)表,使得整個(gè)頁(yè)的初始映射物理地址的虛擬地址現(xiàn)在映射到所述自由頁(yè)的物理地址。這里提供的是示例性方法,其中,存儲(chǔ)器分配單元114根據(jù)伙伴分配算法分配存儲(chǔ)器?;锇榉峙渌惴▽⒋鎯?chǔ)器區(qū)域劃分成均具有2η個(gè)頁(yè)的扇區(qū)(section)并進(jìn)行管理。伙伴分配算法通過(guò)將整個(gè)存儲(chǔ)器劃分成兩個(gè)相等的塊來(lái)搜索需要的存儲(chǔ)器的塊的大小,并確定劃分的存儲(chǔ)器的塊的大小是否為需要的存儲(chǔ)器的塊的大小的合適的大小。如果劃分的存儲(chǔ)器的塊的大小不是合適的存儲(chǔ)器的大小,算法再次劃分塊。重復(fù)這樣的操作直至劃分的塊的大小為需要的存儲(chǔ)器的塊的合適的大小。在被分配給搜索到的塊的存儲(chǔ)器被釋放后,劃分的塊被合并成一個(gè)塊。伙伴分配算法可根據(jù)二元樹(shù)數(shù)據(jù)結(jié)構(gòu)或哈希表(hashtable)數(shù)據(jù)結(jié)構(gòu)來(lái)執(zhí)行頁(yè)分配。這里,將在釋放了分配的存儲(chǔ)器之后將被合并的兩個(gè)相等的塊可被認(rèn)為彼此互為伙伴。作為示例,下面提供了根據(jù)二元樹(shù)數(shù)據(jù)結(jié)構(gòu)的伙伴分配算法。在二元樹(shù)數(shù)據(jù)結(jié)構(gòu)中,樹(shù)的每個(gè)節(jié)點(diǎn)對(duì)應(yīng)2n個(gè)頁(yè)。如果預(yù)定的父節(jié)點(diǎn)對(duì)應(yīng)2k個(gè)頁(yè),則該父節(jié)點(diǎn)的子節(jié)點(diǎn)對(duì)應(yīng)2H個(gè)頁(yè)。因此,子節(jié)點(diǎn)的大小是父節(jié)點(diǎn)的大小的一半。此外,伙伴指與伙伴系統(tǒng)的樹(shù)上的兄弟對(duì)應(yīng)的節(jié)點(diǎn)。每個(gè)節(jié)點(diǎn)包括關(guān)于該節(jié)點(diǎn)的信息。節(jié)點(diǎn)的信息可包括包含在該節(jié)點(diǎn)中的頁(yè)數(shù)、對(duì)應(yīng)的伙伴節(jié)點(diǎn)的標(biāo)識(shí)符信息、在包含在該節(jié)點(diǎn)中的頁(yè)中發(fā)生頁(yè)失效的頁(yè)的數(shù)量、該節(jié)點(diǎn)的子節(jié)點(diǎn)的標(biāo)識(shí)符信息、對(duì)應(yīng)的節(jié)點(diǎn)的父節(jié)點(diǎn)的標(biāo)識(shí)符信息和指示在該節(jié)點(diǎn)上發(fā)生頁(yè)劃分的fn息ο當(dāng)執(zhí)行存儲(chǔ)器分配時(shí),接收關(guān)于是否需要將頁(yè)排列在物理連續(xù)的空間上的信息。存在需要連續(xù)空間分配的情況,例如用于與外部裝置接口連接的存儲(chǔ)器分配。在這種情況下,如果未準(zhǔn)備連續(xù)的存儲(chǔ)器空間,則存儲(chǔ)器分配會(huì)失敗。在分配2k個(gè)頁(yè)的情況下,在均具有2k個(gè)頁(yè)的節(jié)點(diǎn)中搜索自由節(jié)點(diǎn)。如果找到包括2k個(gè)頁(yè)的自由節(jié)點(diǎn),則對(duì)所述自由節(jié)點(diǎn)執(zhí)行存儲(chǔ)器分配。因?yàn)樾枰拇鎯?chǔ)器的塊的大小在2k個(gè)頁(yè)和2H+1個(gè)頁(yè)的大小之間,所以如果沒(méi)有具有2k個(gè)頁(yè)的節(jié)點(diǎn),則具有2H個(gè)頁(yè)的大小較小的節(jié)點(diǎn)由于在節(jié)點(diǎn)中沒(méi)有足夠的頁(yè)而可能會(huì)在存儲(chǔ)器分配過(guò)程中失敗。因此,如果沒(méi)有找到具有2k個(gè)頁(yè)的節(jié)點(diǎn),則搜索具有大于2k個(gè)頁(yè)(如2k+1個(gè)頁(yè))的大小的節(jié)點(diǎn),如果搜索到了,則與搜索到的節(jié)點(diǎn)對(duì)應(yīng)的頁(yè)被劃分并進(jìn)行存儲(chǔ)器分配。DRAM124的耐久極限可被初始化為可由年齡信息代表的最大值(如23°_1),耐久極限的初始化可在每次啟動(dòng)時(shí)發(fā)生。如果在存儲(chǔ)器分配單元114執(zhí)行存儲(chǔ)器分配期間在NVRAM122中發(fā)生頁(yè)失效,則APF處理器116標(biāo)記在二元樹(shù)上的包括發(fā)生頁(yè)失效的頁(yè)的所有節(jié)點(diǎn)。即,位于二元樹(shù)上的發(fā)生頁(yè)失效的節(jié)點(diǎn)及該節(jié)點(diǎn)的上面的節(jié)點(diǎn)或先輩(ancestor)均被標(biāo)記??赏ㄟ^(guò)將可包括在節(jié)點(diǎn)信息中的發(fā)生頁(yè)失效的頁(yè)的數(shù)量增加1來(lái)實(shí)現(xiàn)標(biāo)記操作。存儲(chǔ)器分配單元114防止發(fā)生頁(yè)失效的頁(yè)被分配。如果需要分配與特定大小對(duì)應(yīng)的連續(xù)存儲(chǔ)器空間,則存儲(chǔ)器分配單元114可防止被標(biāo)記的節(jié)點(diǎn)被分配。如果不需要分配連續(xù)存儲(chǔ)器空間,則搜索標(biāo)記的節(jié)點(diǎn)的下面的節(jié)點(diǎn),可將未被標(biāo)記的下面的節(jié)點(diǎn)用于存儲(chǔ)器分配。當(dāng)OS啟動(dòng)時(shí),可讀取存儲(chǔ)在非易失性存儲(chǔ)器130中的黑名單??捎纱鎯?chǔ)器分配單元114執(zhí)行所述讀取。例如,存儲(chǔ)器分配單元114可以以與在二元樹(shù)上標(biāo)記包括發(fā)生頁(yè)失效的頁(yè)的所有節(jié)點(diǎn)的方式相同的方式來(lái)標(biāo)記黑名單中注冊(cè)的頁(yè)及與所述頁(yè)的先輩對(duì)應(yīng)的二元節(jié)點(diǎn)。然后,當(dāng)對(duì)連續(xù)空間執(zhí)行存儲(chǔ)器分配時(shí),不使用標(biāo)記的節(jié)點(diǎn)。如上所述,根據(jù)示例性實(shí)施例,NVRAM122的頁(yè)表可包括指示每個(gè)頁(yè)的損耗的年齡信息,每當(dāng)在頁(yè)上寫(xiě)入數(shù)據(jù)時(shí),可更新每個(gè)頁(yè)的年齡信息。這可被用于防止在NVRAM122被用作主存儲(chǔ)器時(shí)出現(xiàn)壞頁(yè)和系統(tǒng)崩潰(systemcrash)。圖2示出了示例性頁(yè)表的結(jié)構(gòu)。頁(yè)表可以具有層級(jí)結(jié)構(gòu)(hierarchicalstructure),例如,一層、兩層、三層或更多。ARMv6CPU包括稱為頁(yè)目錄的層1頁(yè)表和稱為粗頁(yè)表(coarsepagetable)的層2頁(yè)表。在圖2中,層1頁(yè)表的項(xiàng)標(biāo)記為L(zhǎng)lpte,層2頁(yè)表的項(xiàng)標(biāo)記為L(zhǎng)2pte。例如,層1頁(yè)表的項(xiàng)可包括1MB大小的扇區(qū)和16MB大小的超級(jí)扇區(qū)(supersection)的管理信息。層1頁(yè)表的項(xiàng)可包括關(guān)于層2頁(yè)表的位置的信息,層2頁(yè)表的項(xiàng)可包括包含在層1頁(yè)表中的每個(gè)頁(yè)的管理信息。在傳統(tǒng)的32位處理器(其中,一pte為32位(bit))中,當(dāng)提供耐久極限為107的NVRAM時(shí),年齡字段需要最少24位。根據(jù)一方面,可通過(guò)增加32位的年齡字段,將每個(gè)頁(yè)表的項(xiàng)擴(kuò)展至64位,而無(wú)需修改現(xiàn)存的Llpte和L2pte的構(gòu)造。在這種情況下,由于向Llpte和L2pte中的每個(gè)添加了32位的年齡字段,因此與傳統(tǒng)方法相比,頁(yè)表的大小翻倍。例如,頁(yè)表結(jié)構(gòu)可包括層1頁(yè)表,層1頁(yè)表以超級(jí)扇區(qū)為單位管理對(duì)應(yīng)于虛擬地址的物理地址。超級(jí)扇區(qū)比頁(yè)單位大。層2頁(yè)表以頁(yè)為單位管理對(duì)應(yīng)于虛擬地址的物理地址。在這種情況下,層1頁(yè)表的項(xiàng)的年齡信息Llpte#lage可包括每個(gè)超級(jí)扇區(qū)允許的寫(xiě)入操作的剩余次數(shù)。屬于超級(jí)扇區(qū)的所有頁(yè)可具有相同的年齡信息。層2頁(yè)表的項(xiàng)的年齡信息(如L2pte#lage)可包括對(duì)應(yīng)的頁(yè)L2pte#l允許的寫(xiě)入操作的剩余次數(shù)。頁(yè)表結(jié)構(gòu)可包括層2頁(yè)表,所述層2頁(yè)表包括以頁(yè)為單位對(duì)應(yīng)于虛擬地址的物理地址的信息。層1頁(yè)表指示層2頁(yè)表的項(xiàng)的位置。在這種情況下,層2頁(yè)表的項(xiàng)可包括以頁(yè)為單位的寫(xiě)入操作的剩余次數(shù)。通過(guò)將指示NVRAM的壽命的值存儲(chǔ)到NVRAM的頁(yè)表的項(xiàng)中,并在每當(dāng)在NVRAM的頁(yè)上寫(xiě)入數(shù)據(jù)時(shí)減小所述值,當(dāng)NVRAM被用作需要允許更多次的寫(xiě)入操作的主存儲(chǔ)器時(shí),可以更有效地管理NVRAM的損耗。圖3A示出了當(dāng)不共享頁(yè)時(shí)的示例性年齡字段,圖3B示出了當(dāng)多個(gè)程序共享頁(yè)時(shí)的示例性年齡字段;圖3A示出當(dāng)頁(yè)A僅被程序“foo”使用時(shí)頁(yè)A的頁(yè)表的項(xiàng)。在圖3A中,包括在頁(yè)表的項(xiàng)中的年齡信息L2pte#lage代表頁(yè)A允許的寫(xiě)入操作的剩余次數(shù)。當(dāng)年齡信息被分配為32位時(shí),一些位可被分配給指示年齡信息自身的值的標(biāo)識(shí)符信息。在圖3A中,最低的2位“11”代表指示年齡信息自身的值的標(biāo)識(shí)符信息。圖3B示出了頁(yè)A的頁(yè)表的項(xiàng),其中,頁(yè)A被兩個(gè)程序“foo”和“bar”共享。當(dāng)頁(yè)被兩個(gè)或兩個(gè)以上的程序共享時(shí),該頁(yè)允許進(jìn)行的寫(xiě)入操作的剩余次數(shù)不是存儲(chǔ)在對(duì)應(yīng)的頁(yè)表的項(xiàng)中,而是存儲(chǔ)在存儲(chǔ)器的另一位置。在這種情況下,頁(yè)的年齡信息不指示該頁(yè)允許進(jìn)行的寫(xiě)入操作的剩余次數(shù),而是包括指示存儲(chǔ)器地址的指針信息,其中,寫(xiě)入操作的剩余次數(shù)存儲(chǔ)在所述存儲(chǔ)器地址中。在圖3B中,最低兩位“00”被用作標(biāo)識(shí)符信息。標(biāo)識(shí)符信息表示頁(yè)表的項(xiàng)的年齡信息是指示存儲(chǔ)器位置的指針,所述存儲(chǔ)器位置存儲(chǔ)對(duì)應(yīng)的頁(yè)A的寫(xiě)入操作的實(shí)際剩余次數(shù)。被程序“foo”和“bar”使用的頁(yè)表的項(xiàng)的年齡信息L2pte#lage為指示存儲(chǔ)器的指針信息,所述存儲(chǔ)器存儲(chǔ)頁(yè)A的寫(xiě)入操作的實(shí)際剩余次數(shù)。頁(yè)表的項(xiàng)可包括指示包括在頁(yè)表的項(xiàng)中的值的標(biāo)識(shí)符信息。標(biāo)識(shí)符信息用于區(qū)分頁(yè)表的項(xiàng)是否包括指示存儲(chǔ)年齡信息的另一存儲(chǔ)器的位置的指針信息,或用于區(qū)分年齡信息是否存儲(chǔ)于當(dāng)前頁(yè)。如圖3A和圖3B所示,標(biāo)識(shí)符信息的類(lèi)型可由年齡字段最低的兩位的值表示。年齡字段最低兩位的值指示年齡字段最高30位是否為指示存儲(chǔ)寫(xiě)入操作的剩余次數(shù)的指針信息,或最高30位是否包括寫(xiě)入操作的剩余次數(shù)。例如,如果最低兩位的值是00,這可用于指示寫(xiě)入操作的剩余次數(shù)存儲(chǔ)在頁(yè)上,或?qū)懭氩僮鞯氖S啻螖?shù)存儲(chǔ)在存儲(chǔ)器的另一位置。如果頁(yè)由兩個(gè)或兩個(gè)以上的程序共享,則頁(yè)的年齡信息可包括指示存儲(chǔ)年齡信息的另一存儲(chǔ)器的指針信息,如果頁(yè)由一個(gè)程序使用,則頁(yè)的年齡信息可為所述年齡信息本身。如果由兩個(gè)或兩個(gè)以上的程序共享的頁(yè)不再被共享,控制器110的MMU112可尋找存儲(chǔ)在由指針信息指示的另一存儲(chǔ)器中的年齡信息,并將所述信息復(fù)制到該頁(yè)的頁(yè)表的項(xiàng)的年齡字段中。此外,如果沒(méi)有被共享的頁(yè)被兩個(gè)或兩個(gè)以上的程序共享,則MMU112可將該頁(yè)的年齡字段的值復(fù)制到另一存儲(chǔ)器的預(yù)定位置中。MMU112可將指示被復(fù)制的位置的指針信息寫(xiě)入到該頁(yè)的年齡字段中。圖4示出了存儲(chǔ)器裝置的示例性損耗平均方法。在存儲(chǔ)器裝置中,頁(yè)表可包括映射N(xiāo)VRAM的虛擬地址和所述NVRAM的物理地址的映射信息。頁(yè)表可存儲(chǔ)關(guān)于每頁(yè)的損耗的信息。存儲(chǔ)器裝置可為圖1中的存儲(chǔ)器裝置100。在操作410中,數(shù)據(jù)通過(guò)存儲(chǔ)器分配而寫(xiě)入到預(yù)定的頁(yè)中。在操作420中,存儲(chǔ)在所述頁(yè)的年齡字段中的寫(xiě)入操作的剩余次數(shù)被減小1。在操作430中,確定寫(xiě)入操作的剩余次數(shù)是否為0。如果寫(xiě)入操作的剩余次數(shù)不為0,可將更多的數(shù)據(jù)寫(xiě)入該頁(yè)。如果在操作430中,確定寫(xiě)入操作的剩余次數(shù)為0,則該頁(yè)已達(dá)到耐久極限,因此,在操作440中,該頁(yè)被認(rèn)為并處理為失效頁(yè)。管理被認(rèn)為是失效頁(yè)的頁(yè),從而不再向其中寫(xiě)入數(shù)據(jù)。圖5是示出處理存儲(chǔ)器分配時(shí)產(chǎn)生的頁(yè)失效的示例性方法的流程圖。例如,可以通過(guò)圖1中的存儲(chǔ)器裝置100執(zhí)行所述方法。在操作510中,確定頁(yè)失效已發(fā)生,在操作512中,APF處理器116標(biāo)記所有發(fā)生頁(yè)失效的節(jié)點(diǎn),例如在二元樹(shù)上的先輩節(jié)點(diǎn)。在操作514中,確定處于頁(yè)失效的頁(yè)是否對(duì)應(yīng)于需要分配連續(xù)空間的頁(yè)。如果在操作514中,處于頁(yè)失效的頁(yè)與連續(xù)空間的頁(yè)對(duì)應(yīng),則在操作516中,APF處理器116搜索可以分配連續(xù)空間的另一自由節(jié)點(diǎn),在操作518中,將搜索并找到的自由節(jié)點(diǎn)的頁(yè)重新分配。包括任何發(fā)生年齡頁(yè)失效的頁(yè)的節(jié)點(diǎn)都被從存儲(chǔ)器分配中排除。發(fā)生年齡頁(yè)失效的頁(yè)和包括所述頁(yè)的節(jié)點(diǎn)被全部標(biāo)記,當(dāng)搜索自由節(jié)點(diǎn)時(shí),跳過(guò)被標(biāo)記的節(jié)點(diǎn),從而不選擇具有頁(yè)失效的頁(yè)。在操作520中,存儲(chǔ)在連續(xù)空間中的內(nèi)容被復(fù)制到重新分配的頁(yè)中。在失效頁(yè)的內(nèi)容被復(fù)制到重新分配的頁(yè)中并執(zhí)行頁(yè)的重新分配之后,在操作528中,MMU112修改對(duì)應(yīng)的頁(yè)表以指示重新分配的頁(yè)。如果在操作514中,處于頁(yè)失效的頁(yè)不與需要分配連續(xù)空間的頁(yè)對(duì)應(yīng),則在操作522中,APF處理器116搜索另一自由節(jié)點(diǎn),在操作524中,找到的自由頁(yè)被重新分配。在操作526中,失效頁(yè)的內(nèi)容被復(fù)制到對(duì)應(yīng)于找到的節(jié)點(diǎn)的自由頁(yè)中。在失效頁(yè)的內(nèi)容被復(fù)制到自由頁(yè)中并執(zhí)行頁(yè)的重新分配之后,在操作528中,MMU112修改對(duì)應(yīng)的頁(yè)表以指示重新分配的頁(yè)。根據(jù)上述示例,提供了一種用于非易失性隨機(jī)存取存儲(chǔ)器(NVRAM)的損耗補(bǔ)償方法。因?yàn)镹VRAM可提供有限次數(shù)的寫(xiě)入操作,例如,與DRAM相比,可使用損耗平均來(lái)防止存儲(chǔ)器失效并延長(zhǎng)NVRAM的工作壽命。上述方法可被記錄、存儲(chǔ)或固定在一個(gè)或一個(gè)以上的計(jì)算機(jī)可讀的存儲(chǔ)介質(zhì)中,所述介質(zhì)包括由計(jì)算機(jī)實(shí)現(xiàn)的程序指令以使處理器執(zhí)行或完成程序指令。所述介質(zhì)還可包括,單獨(dú)的或與程序指令結(jié)合的數(shù)據(jù)文件、數(shù)據(jù)結(jié)構(gòu)等。計(jì)算機(jī)可讀的介質(zhì)的例子包括磁介質(zhì)(如硬盤(pán)、軟盤(pán)和磁帶);光學(xué)介質(zhì)(如CDROM盤(pán)和DVD);磁光介質(zhì)(如光盤(pán));為存儲(chǔ)和執(zhí)行程序指令而特別構(gòu)造的硬件裝置,如只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)、閃存等。程序指令的例子包括機(jī)器代碼(如由編譯器產(chǎn)生的)和含有可由計(jì)算機(jī)利用解釋器執(zhí)行的更高級(jí)的代碼的文件。上述硬件裝置可被構(gòu)造為以一個(gè)或一個(gè)以上的軟件模塊運(yùn)行,以執(zhí)行上述操作和方法,或者反之亦然。此外,計(jì)算機(jī)可讀介質(zhì)可分散到通過(guò)網(wǎng)絡(luò)連接的計(jì)算機(jī)系統(tǒng)中,計(jì)算機(jī)可讀代碼或程序指令可以以分散方式存儲(chǔ)并執(zhí)行。存儲(chǔ)器裝置可包括閃存裝置和/或存儲(chǔ)器控制器。例如,可使用諸如層疊封裝(POP)、球柵陣列(BGA)、芯片級(jí)封裝(CPS)、塑料引線芯片載體(PLCC)、塑料雙列直插封裝(PDIP)、窩伏爾組件芯片(DieinWafflePack)、晶圓形式芯片、板上芯片(COB)、陶瓷雙列直插封裝(CERDIP)、塑料公制四方扁平封裝(MQFP)、四方扁平封裝(QFP)、小外形集成電路(SOIC)、縮小外形封裝(SSOP)、薄小外形封裝(TSOP)、薄型四方扁平封裝(TQFP)、系統(tǒng)級(jí)封裝(SIP)、多芯片封裝(MCP)、晶圓級(jí)制造封裝(WFP)、晶圓級(jí)堆疊封裝(WSP)等封裝件來(lái)實(shí)現(xiàn)閃存裝置和/或存儲(chǔ)器控制器。閃存裝置和/或存儲(chǔ)器控制器可包括存儲(chǔ)卡。在這種情況下,存儲(chǔ)器控制器可被構(gòu)造為與例如主機(jī)的外部裝置通信,例如使用諸如通用串行總線(USB)、多媒體卡(MMC)、外部組件互連擴(kuò)展(PCI-E)、串行高級(jí)技術(shù)附件(SATA)、并行高級(jí)技術(shù)附件(PATA)、小型計(jì)算機(jī)系統(tǒng)接口(SCSI)、增強(qiáng)小型裝置接口(ESDI)和集成驅(qū)動(dòng)電子設(shè)備(IDE)的各種類(lèi)型的接口協(xié)議中的任一種的主機(jī)。上面已經(jīng)描述了一些示例性實(shí)施例。然而,應(yīng)該理解的是,可以作出各種修改。例如,如果以不同的順序執(zhí)行所述技術(shù)和/或如果所述系統(tǒng)、構(gòu)造、裝置或電路中的組件以不同的方式結(jié)合和/或通過(guò)其它組件或它們的等同物來(lái)替換或增補(bǔ),則可以達(dá)到合適的結(jié)構(gòu)。因此,其它的實(shí)施在權(quán)利要求的范圍內(nèi)。權(quán)利要求一種存儲(chǔ)器裝置,包括存儲(chǔ)器,包括非易失性隨機(jī)存取存儲(chǔ)器;控制器,控制所述存儲(chǔ)器,其中,控制器管理頁(yè)表,所述頁(yè)表包括將非易失性隨機(jī)存取存儲(chǔ)器的虛擬地址映射到非易失性隨機(jī)存取存儲(chǔ)器的物理地址的映射信息,所述頁(yè)表的項(xiàng)包括指示非易失性隨機(jī)存取存儲(chǔ)器的對(duì)應(yīng)頁(yè)的損耗的年齡信息。2.如權(quán)利要求1所述的存儲(chǔ)器裝置,其中,年齡信息指示所述對(duì)應(yīng)頁(yè)允許的寫(xiě)入操作的剩余次數(shù),每當(dāng)在所述對(duì)應(yīng)頁(yè)上寫(xiě)入數(shù)據(jù)時(shí),控制器將該頁(yè)允許的寫(xiě)入操作的剩余次數(shù)減小1。3.如權(quán)利要求1所述的存儲(chǔ)器裝置,所述存儲(chǔ)器裝置還包括由控制器控制的非易失性存儲(chǔ)器,其中,當(dāng)電源斷開(kāi)時(shí),控制器將每頁(yè)的年齡信息存儲(chǔ)在所述非易失性存儲(chǔ)器中,在啟動(dòng)時(shí)恢復(fù)存儲(chǔ)在所述非易失性存儲(chǔ)器中的每個(gè)頁(yè)的年齡信息,并根據(jù)每個(gè)頁(yè)的年齡信息對(duì)存儲(chǔ)器執(zhí)行存儲(chǔ)器分配,其中,年齡信息指示對(duì)應(yīng)頁(yè)允許的寫(xiě)入操作的剩余次數(shù)。4.如權(quán)利要求3所述的存儲(chǔ)器裝置,其中,控制器注冊(cè)并管理黑名單,黑名單包括作為不再使用的頁(yè)的一個(gè)或一個(gè)以上的損耗頁(yè)的信息,在電源斷開(kāi)時(shí)控制器將黑名單存儲(chǔ)在所述非易失性存儲(chǔ)器中,并在啟動(dòng)時(shí)恢復(fù)存儲(chǔ)在所述非易失性存儲(chǔ)器中的黑名單,其中,損耗頁(yè)指已執(zhí)行的寫(xiě)入操作的次數(shù)等于或超過(guò)閾值的頁(yè)。5.如權(quán)利要求1所述的存儲(chǔ)器裝置,其中,如果對(duì)已經(jīng)在頁(yè)上執(zhí)行的寫(xiě)入操作的次數(shù)等于或超過(guò)閾值的所述頁(yè)執(zhí)行寫(xiě)入操作,則控制器產(chǎn)生頁(yè)失效,將該頁(yè)的內(nèi)容復(fù)制到自由頁(yè),修改對(duì)應(yīng)于該頁(yè)的頁(yè)表,從而使該頁(yè)的虛擬地址映射到該自由頁(yè)的物理地址。6.如權(quán)利要求1所述的存儲(chǔ)器裝置,其中,如果對(duì)已經(jīng)在頁(yè)上執(zhí)行的寫(xiě)入操作的次數(shù)等于或超過(guò)閾值的所述頁(yè)執(zhí)行寫(xiě)入操作,則控制器產(chǎn)生頁(yè)失效,并防止對(duì)該頁(yè)執(zhí)行存儲(chǔ)器分配。7.如權(quán)利要求6所述的存儲(chǔ)器裝置,其中,控制器根據(jù)基于二元樹(shù)數(shù)據(jù)結(jié)構(gòu)的伙伴分配算法來(lái)執(zhí)行存儲(chǔ)器分配,如果在存儲(chǔ)器分配過(guò)程中在二元樹(shù)數(shù)據(jù)結(jié)構(gòu)上的節(jié)點(diǎn)處發(fā)生頁(yè)失效,則控制器標(biāo)記該節(jié)點(diǎn)和該節(jié)點(diǎn)的至少一個(gè)上面的節(jié)點(diǎn)。8.如權(quán)利要求7所述的存儲(chǔ)器裝置,其中,如果基于至少一個(gè)節(jié)點(diǎn)的大小請(qǐng)求頁(yè)分配并需要分配連續(xù)空間,則控制器防止與標(biāo)記的節(jié)點(diǎn)對(duì)應(yīng)的頁(yè)被分配。9.如權(quán)利要求1所述的存儲(chǔ)器裝置,其中,頁(yè)表包括層1頁(yè)表和層2頁(yè)表,層1頁(yè)表以超級(jí)扇區(qū)為單位來(lái)管理與虛擬地址對(duì)應(yīng)的物理地址,層2頁(yè)表以頁(yè)為單位管理與虛擬地址對(duì)應(yīng)的物理地址,超級(jí)扇區(qū)單位大于頁(yè)單位。10.如權(quán)利要求9所述的存儲(chǔ)器裝置,其中,層1頁(yè)表包括關(guān)于每個(gè)超級(jí)扇區(qū)允許的寫(xiě)入操作的剩余次數(shù)的信息,層2頁(yè)表包括關(guān)于每個(gè)頁(yè)允許的寫(xiě)入操作的剩余次數(shù)的信息。11.如權(quán)利要求1所述的存儲(chǔ)器裝置,其中,頁(yè)表包括以頁(yè)為單位映射虛擬地址和物理地址的層2頁(yè)表及指示層2頁(yè)表的位置的層1頁(yè)表,其中,層2頁(yè)表包括關(guān)于每個(gè)頁(yè)允許的寫(xiě)入操作的剩余次數(shù)的信息。12.如權(quán)利要求1所述的存儲(chǔ)器裝置,其中,頁(yè)表的項(xiàng)包括標(biāo)識(shí)符信息,所述標(biāo)識(shí)符信息指示頁(yè)表是否包括指示存儲(chǔ)年齡信息的存儲(chǔ)器的位置的指針信息。13.如權(quán)利要求12所述的存儲(chǔ)器裝置,其中,如果頁(yè)由兩個(gè)或兩個(gè)以上的程序共享,則頁(yè)表的項(xiàng)包括指示存儲(chǔ)該共享的頁(yè)的年齡信息的存儲(chǔ)器位置的指針信息,如果頁(yè)僅由一個(gè)程序使用,則頁(yè)表的項(xiàng)包括由一個(gè)程序使用的頁(yè)的年齡信息。14.如權(quán)利要求13所述的存儲(chǔ)器裝置,其中,當(dāng)被兩個(gè)或兩個(gè)以上程序共享的頁(yè)停止被共享時(shí),存儲(chǔ)在存儲(chǔ)器中的對(duì)應(yīng)該頁(yè)的年齡信息被復(fù)制到該頁(yè)表的該頁(yè)的年齡字段。15.如權(quán)利要求12所述的存儲(chǔ)器裝置,其中,如果先前沒(méi)有被共享的頁(yè)變?yōu)橛蓛蓚€(gè)或兩個(gè)以上的程序共享,則該頁(yè)表的該頁(yè)的年齡字段的值被復(fù)制到存儲(chǔ)器的一定位置,指示該位置的指針信息被存儲(chǔ)到該頁(yè)的年齡字段中。16.一種存儲(chǔ)器裝置的損耗平均方法,所述存儲(chǔ)器裝置包括存儲(chǔ)器和控制器,所述存儲(chǔ)器包括非易失性隨機(jī)存取存儲(chǔ)器,控制器控制所述存儲(chǔ)器,其中,由與該非易失性隨機(jī)存取存儲(chǔ)器對(duì)應(yīng)的控制器管理的頁(yè)表包括映射非易失性隨機(jī)存取存儲(chǔ)器的虛擬地址和非易失性隨機(jī)存取存儲(chǔ)器的物理地址的映射信息,頁(yè)表的項(xiàng)包括指示對(duì)應(yīng)頁(yè)的損耗的年齡信息,所述方法包括如下步驟在頁(yè)上寫(xiě)入數(shù)據(jù);響應(yīng)于在頁(yè)上的寫(xiě)入步驟而將寫(xiě)入操作的剩余次數(shù)減小1,寫(xiě)入操作的剩余次數(shù)由與該頁(yè)對(duì)應(yīng)的頁(yè)表的項(xiàng)中提供的年齡信息來(lái)指示。17.如權(quán)利要求16所述的方法,所述方法還包括如下步驟當(dāng)電源斷開(kāi)時(shí),將每個(gè)頁(yè)的年齡信息存儲(chǔ)在非易失性存儲(chǔ)器中;在啟動(dòng)時(shí)恢復(fù)存儲(chǔ)在非易失性存儲(chǔ)器中的每個(gè)頁(yè)的寫(xiě)入操作的剩余次數(shù);基于被恢復(fù)的寫(xiě)入操作的剩余次數(shù)來(lái)執(zhí)行存儲(chǔ)器分配。18.如權(quán)利要求16所述的方法,所述方法還包括如下步驟將寫(xiě)入操作的剩余次數(shù)已達(dá)閾值的損耗頁(yè)注冊(cè)在黑名單中,并管理該黑名單。19.如權(quán)利要求16所述的方法,其中,當(dāng)對(duì)所述頁(yè)執(zhí)行的寫(xiě)入操作的次數(shù)等于或超過(guò)閾值時(shí),所述方法還包括如下步驟產(chǎn)生頁(yè)失效;將該頁(yè)的內(nèi)容復(fù)制到自由頁(yè)中;修改頁(yè)表,使得該頁(yè)的虛擬地址被映射到該自由頁(yè)的物理地址。20.如權(quán)利要求16所述的方法,其中,所述方法還包括基于年齡信息來(lái)執(zhí)行存儲(chǔ)器分配的步驟,其中,執(zhí)行存儲(chǔ)器分配的步驟包括如下步驟如果對(duì)頁(yè)上允許的寫(xiě)入操作次數(shù)已達(dá)到或超過(guò)閾值的頁(yè)執(zhí)行寫(xiě)入操作,則產(chǎn)生頁(yè)失效并防止該頁(yè)被分配。21.如權(quán)利要求20所述的方法,其中,執(zhí)行存儲(chǔ)器分配的步驟包括根據(jù)伙伴分配算法來(lái)執(zhí)行存儲(chǔ)器分配,所述伙伴分配算法根據(jù)二元樹(shù)數(shù)據(jù)結(jié)構(gòu)執(zhí)行頁(yè)分配,如果在執(zhí)行存儲(chǔ)器分配時(shí)在二元樹(shù)數(shù)據(jù)結(jié)構(gòu)上的節(jié)點(diǎn)處產(chǎn)生頁(yè)失效,則所述方法還包括如下步驟標(biāo)記該節(jié)點(diǎn)和該節(jié)點(diǎn)的至少一個(gè)上面的節(jié)點(diǎn);確定是否需要基于所述至少一個(gè)上面的節(jié)點(diǎn)的大小的頁(yè)分配及是否需要連續(xù)空間的分配,其中,如果需要基于所述至少一個(gè)上面的節(jié)點(diǎn)的大小的頁(yè)分配且需要連續(xù)空間的分配,則與所述標(biāo)記的節(jié)點(diǎn)對(duì)應(yīng)的頁(yè)被從存儲(chǔ)器分配中排除。22.如權(quán)利要求16所述的方法,其中,頁(yè)表包括指示頁(yè)表的項(xiàng)是否包括指示存儲(chǔ)年齡信息的存儲(chǔ)器的位置的指針信息或頁(yè)表的項(xiàng)是否包括年齡信息的標(biāo)識(shí)符信息。23.如權(quán)利要求22所述的方法,其中,如果頁(yè)由兩個(gè)或兩個(gè)以上的程序共享,則頁(yè)表的項(xiàng)包括指示存儲(chǔ)該共享頁(yè)的年齡信息的存儲(chǔ)器的位置的指針信息,如果頁(yè)僅由一個(gè)程序使用,則頁(yè)表的項(xiàng)包括該頁(yè)的年齡信息。全文摘要本發(fā)明公開(kāi)了一種包括NVRAM和頁(yè)表的存儲(chǔ)器裝置以及該裝置的損耗平均方法。頁(yè)表包括將NVRAM的虛擬地址映射到NVRAM的物理地址的映射信息。頁(yè)表的項(xiàng)包括指示對(duì)應(yīng)頁(yè)的損耗的年齡信息。年齡信息可為對(duì)應(yīng)的頁(yè)允許的寫(xiě)入操作的剩余次數(shù)。每當(dāng)在頁(yè)上寫(xiě)入數(shù)據(jù)時(shí),該頁(yè)允許的寫(xiě)入操作的剩余次數(shù)被減小。文檔編號(hào)G06F12/02GK101799784SQ20101010576公開(kāi)日2010年8月11日申請(qǐng)日期2010年2月4日優(yōu)先權(quán)日2009年2月10日發(fā)明者李美真,金弘國(guó),黃珠榮申請(qǐng)人:三星電子株式會(huì)社