欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

存儲器模塊上的數(shù)據(jù)管理的制作方法

文檔序號:10694046閱讀:537來源:國知局
存儲器模塊上的數(shù)據(jù)管理的制作方法
【專利摘要】示例實(shí)施方式涉及到管理存儲器模塊上的數(shù)據(jù)??梢栽诖鎯ζ髂K上的第一NVM和第二NVM之間傳遞數(shù)據(jù)。第二NVM可以具有比第一NVM更高的存儲器容量和更長的存取延遲。第一地址和第二地址之間的映射可以被存儲在存儲器模塊上的NVM中。第一地址可以指代數(shù)據(jù)存儲在第一NVM中所處的位置。第二地址可以指代從其復(fù)制了數(shù)據(jù)的第二NVM中的位置。
【專利說明】
存儲器模塊上的數(shù)據(jù)管理
【背景技術(shù)】
[0001]可以包括非易失性存儲器(NVM)以及易失性存儲器的混合存儲器模塊可以存儲比其存儲器所有都是易失性存儲器的存儲器模塊更多的數(shù)據(jù)。存儲器模塊可以經(jīng)由雙倍數(shù)據(jù)速率(DDR)接口與外部部件進(jìn)行通信。混合存儲器模塊上的高速緩沖存儲器可以使存儲器模塊能夠符合DDR接口時(shí)序要求,以及保護(hù)存儲器模塊上的低耐久NVM免于可能耗損NVM的大量寫入操作。
【附圖說明】
[0002]下面詳細(xì)的描述參考附圖,其中:
圖1是包括管理存儲器模塊上的數(shù)據(jù)的存儲器控制器的示例存儲器模塊的框圖;
圖2是包括在存儲器模塊上的非易失性存儲器(NVM)之間傳遞數(shù)據(jù)和保持跟蹤數(shù)據(jù)在NVM中被存儲在何處的存儲器控制器的示例存儲器模塊的框圖;
圖3是包括用啟用對存儲器模塊上的數(shù)據(jù)的管理的指令編碼的機(jī)器可讀存儲介質(zhì)的示例存儲器模塊的框圖;
圖4是包括用移動和跟蹤存儲器模塊上的數(shù)據(jù)的指令編碼的機(jī)器可讀存儲介質(zhì)的示例存儲器模塊的框圖;
圖5是用于管理存儲器模塊上數(shù)據(jù)的示例方法的流程圖;以及圖6是用于維持與存儲在存儲器模塊上的數(shù)據(jù)相關(guān)的細(xì)節(jié)的示例方法的流程圖。
【具體實(shí)施方式】
[0003]易失性存儲器可用作混合存儲器模塊上的高速緩沖存儲器。如果存儲器模塊失電,則易失性高速緩沖存儲器中的數(shù)據(jù)可能丟失。如果易失性高速緩沖存儲器中的數(shù)據(jù)在從存儲器模塊上的非易失性存儲器(NVM)被復(fù)制后已被修改,則NVM可能不能獲得修改的數(shù)據(jù),如果功率在易失性高速緩沖存儲器中的修改的數(shù)據(jù)被復(fù)制回到NVM之前失去的話。
[0004]鑒于上文,本公開提供具有非易失性高速緩沖存儲器的存儲器模塊,非易失性高速緩沖存儲器的存取時(shí)間接近易失性高速緩沖存儲器的存取時(shí)間。如果從這種存儲器模塊去除功率,則高速緩沖存儲器中的數(shù)據(jù)不丟失,并且存儲器模塊上的另一 NVM可以能夠在恢復(fù)功率后獲得存儲在非易失性高速緩沖存儲器中的修改的數(shù)據(jù)。具有非易失性高速緩沖存儲器的存儲器模塊也可以消耗比具有易失性高速緩沖存儲器的存儲器模塊更少功率。
[0005]現(xiàn)在參考附圖,圖1是包括管理存儲器模塊上的數(shù)據(jù)的存儲器控制器的示例存儲器模塊100的框圖。存儲器模塊100可以是直插式存儲器模塊,諸如單直插式存儲器模塊(SMM)或雙直插式存儲器模塊(DMM)或適合于安裝存儲器集成電路(IC)的任何存儲器模塊。在圖1中,存儲器模塊100包括非易失性存儲器(NVM) 102,NVM 104和存儲器控制器106。
[0006]NVM 102和104中的每個(gè)可以包括電阻隨機(jī)存取存儲器(ReRAM)、閃速存儲器、電可擦除可編程只讀存儲器(EEPROM)、磁阻隨機(jī)存取存儲器(MRAM)、相變隨機(jī)存取存儲器(PCRAM)或適合于存儲可執(zhí)行指令和/或數(shù)據(jù)的任何其他非易失性存儲器。如本文中使用的術(shù)語“非易失性存儲器”或“NVM”指代能夠甚至未通電時(shí)保留存儲的指令/數(shù)據(jù)的存儲器。NVM 102和104可在存儲器模塊100上的IC中。
[0007]NVM 102可以具有比NVM 104更高的存儲器容量和更長的存取延遲。如本文中關(guān)于存儲器使用的術(shù)語“存取延遲”指代從存儲器讀取數(shù)據(jù)或?qū)懭霐?shù)據(jù)到存儲器中花費(fèi)的時(shí)間長度。在一些實(shí)施方式中,NVM 102可以是閃速存儲器,并且NVM 104可以是ReRAMAVM 104可以為請求存取存儲在NVM 102中的數(shù)據(jù)的應(yīng)用程序啟用活動數(shù)據(jù)的緩存,并可以允許以NVM 102可能不能實(shí)現(xiàn)的速度存取數(shù)據(jù)。充當(dāng)快速高速緩沖存儲器的NVM 104可以對在存儲器模塊100的外部的部件是透明的。
[0008]存儲器控制器106可以通信地耦合到存儲器模塊100上的NVM 102和104。在一些實(shí)施方式中,存儲器控制器106可以是數(shù)字電路。如圖1中圖示并在下面詳細(xì)描述的,存儲器控制器106可以包括模塊108和110。模塊可以包括編碼在機(jī)器可讀存儲介質(zhì)上和由存儲器控制器106的處理器可執(zhí)行的指令集。此外或作為替代方案,模塊可以包括硬件設(shè)備,其包括用于實(shí)施以下描述的功能的電子電路。
[0009]傳遞數(shù)據(jù)模塊108可以在NVM 102和104之間傳遞數(shù)據(jù)。在一些實(shí)施方式中,傳遞數(shù)據(jù)模塊108可以包括用于控制NVM 102和104之間的傳遞的直接存儲器存取(DMA)控制器。傳遞數(shù)據(jù)模塊108可以包括用于將數(shù)據(jù)傳遞到NVM 102和104并且從NVM 102和104接收數(shù)據(jù)的接口,并且可以包括用于存儲從NVM 102和104讀取的數(shù)據(jù)的緩沖器。
[0010]如以上討論的,NVM 104可以充當(dāng)快速高速緩沖存儲器,并且NVM 102可以是更慢、更高容量的存儲器。傳遞數(shù)據(jù)模塊108可以接收信息(例如,經(jīng)由存儲器控制器106上的操作系統(tǒng)接口),其指示由在存儲器模塊100的外部的部件請求的數(shù)據(jù)(這樣的數(shù)據(jù)可以在本文中被稱為“請求的數(shù)據(jù)”)不存在于NVM 104中。傳遞數(shù)據(jù)模塊108可以從操作系統(tǒng)(OS)頁故障處理程序接收這樣的信息,或可以以其它方式檢測沒有請求的數(shù)據(jù)。例如,當(dāng)存儲器控制器106接收存取存儲在指代在NVM 102中的位置的虛擬地址處的數(shù)據(jù)的請求并且該虛擬地址在OS頁表中沒有有效條目時(shí),可以調(diào)用頁故障處理程序。響應(yīng)于接收的信息,傳遞數(shù)據(jù)模塊108可以將請求的數(shù)據(jù)從NVM 102復(fù)制到NVM 104。
[0011]應(yīng)該理解的是,可以以與發(fā)送到外部部件的數(shù)據(jù)塊的大小不同大小的塊在NVM102和104之間傳遞數(shù)據(jù)。例如,傳遞數(shù)據(jù)模塊108可以逐頁(例如,一頁可以是大約4千字節(jié))將數(shù)據(jù)從NVM 102復(fù)制到NVM 104,并且存儲器控制器106可以輸出在高速緩存行(例如,大約64字節(jié))中從NVM 104讀取的數(shù)據(jù)(例如,請求的數(shù)據(jù))到外部部件。
[0012]維持映射模塊110可以在存儲器模塊100上的NVM上維持可以指代NVM 104中的位置的第一多個(gè)地址和可以指代NVM 102中的位置的第二多個(gè)地址之間的多個(gè)映射。可以在第一多個(gè)地址和第二多個(gè)地址之間傳遞數(shù)據(jù)。如本文中關(guān)于映射和指示使用的術(shù)語“維持”指代生成和/或存儲新的映射/指示,更新現(xiàn)有映射/指示以及刪除現(xiàn)有映射/指示。例如,當(dāng)將數(shù)據(jù)從NVM 102復(fù)制到NVM 104時(shí)可以存儲新的映射,當(dāng)存儲在NVM 104中的數(shù)據(jù)被修改時(shí)可以更新指示(關(guān)于圖2進(jìn)一步討論指示),并且當(dāng)在NVM 104上執(zhí)行高速緩存沖洗功能時(shí)可以刪除映射。應(yīng)該理解的是,存儲器模塊100可以包括除了 NVM 102和104以外的NVM,并且映射可能被維持在其他NVM中的一個(gè)NVM中。
[0013]如本文中關(guān)于地址使用的術(shù)語“映射”指代指示在其之間傳遞數(shù)據(jù)的兩個(gè)地址之間的關(guān)系的信息。在一些實(shí)施方式中,映射可以是用于跟蹤在NVM 102中的哪些數(shù)據(jù)頁當(dāng)前緩存在NVM 104中的表中的條目。條目可以包括指代存儲數(shù)據(jù)的特定頁所處的NVM 102中的位置的物理地址,其緊挨指代存儲數(shù)據(jù)的該特定頁所處的NVM 104中的位置的虛擬地址。在一些實(shí)施方式中,映射可以包括指代NVM 104中的位置的地址和指向NVM 102中的相應(yīng)位置的指針。
[0014]維持映射模塊110可以響應(yīng)于請求的數(shù)據(jù)從NVM104被復(fù)制到NVM 102存儲第一地址和第二地址之間的映射。第一地址可以是第一多個(gè)地址中的一個(gè),并且可以指代在NVM104中存儲請求的數(shù)據(jù)所處的位置。第二地址可以是第二多個(gè)地址中的一個(gè),并且可以指代從其復(fù)制請求的數(shù)據(jù)的在NVM 102中的位置??梢詫⒂成浯鎯缭贜VM 102中,在NVM 104中,或在存儲器控制器106中的NVM中。
[0015]當(dāng)將映射存儲在存儲器模塊100上的NVM中時(shí),映射可以保持在NVM中,即使存儲器模塊100不具有功率。當(dāng)存儲器模塊100上電時(shí)(例如,在失去功率或掉電后),傳遞數(shù)據(jù)模塊108可以讀取映射并且將存儲在NVM 104中的第一多個(gè)地址的數(shù)據(jù)復(fù)制到NVM 102中的第二多個(gè)地址的相應(yīng)地址。因此,如果在去除至存儲器模塊100的功率之前NVM 104中的數(shù)據(jù)已被修改(例如,通過在存儲器模塊100的外部的部件),則NVM 102可以在恢復(fù)功率后存儲數(shù)據(jù)的最新版本。在一些實(shí)施方式中,OS可以使用存儲的映射來初始化頁表,例如,當(dāng)在功率失去后恢復(fù)至存儲器模塊100的功率時(shí)。第一多個(gè)地址可以是頁表中的虛擬地址,并且第二多個(gè)地址可以是映射到頁表中的相應(yīng)虛擬地址的物理地址。
[0016]圖2是包括在存儲器模塊上的NVM之間傳遞數(shù)據(jù)和保持跟蹤數(shù)據(jù)在NVM中被存儲在何處的存儲器控制器的示例存儲器模塊200的框圖。存儲器模塊200可以是直插式存儲器模塊,諸如SHM或DHM,或適合于安裝存儲器IC的任何存儲器模塊。在圖2中,存儲器模塊200包括NVM 202,NVM 204和存儲器控制器206AVM 202和204可以分別類似(例如,具有類似功能和/或部件)于圖1的NVM 102和104。
[0017]存儲器控制器206可以通信地耦合到存儲器模塊200上的NVM 202和204。在一些實(shí)施方式中,存儲器控制器206可以是數(shù)字電路。如圖2中圖示并在下面詳細(xì)描述的,存儲器控制器206可以包括模塊208、210、212、214和216。模塊可以包括編碼在機(jī)器可讀存儲介質(zhì)上和由存儲器控制器206的處理器可執(zhí)行的指令集。此外或作為替代方案,模塊可以包括硬件設(shè)備,其包括用于實(shí)施以下描述的功能的電子電路。
[0018]存儲器控制器206的模塊208和210可以類似于存儲器控制器106的模塊108和110。監(jiān)控修改模塊212可以監(jiān)控存儲器模塊200上的快速高速緩沖存儲器(例如,NVM 204)中的數(shù)據(jù)頁的修改。監(jiān)控修改模塊212可以檢測快速高速緩沖存儲器接收的寫入命令和/或檢測在快速高速緩沖存儲器中執(zhí)行的寫入操作。在一些實(shí)施方式中,監(jiān)控修改模塊212可以確定有效數(shù)據(jù)是否存儲在快速高速緩沖存儲器中的特定地址處。
[0019]維持指示模塊214可以在存儲器模塊200上的NVM中維持存儲器模塊200上的快速高速緩沖存儲器中的數(shù)據(jù)頁是否已被修改的指示。例如,可以將這樣的指示存儲在NVM 202中,在NVM 204中,或在存儲器控制器206中的NVM中。如本文中使用的術(shù)語“指示”指代環(huán)境是否存在的標(biāo)志。響應(yīng)于監(jiān)控修改模塊212檢測到在快速高速緩沖存儲器中的數(shù)據(jù)頁的修改,維持指示模塊214可以存儲已修改數(shù)據(jù)頁的指示。例如,維持指示模塊214可以設(shè)置與數(shù)據(jù)頁關(guān)聯(lián)的臟比特。
[0020]在一些實(shí)施方式中,當(dāng)在功率失去后恢復(fù)至存儲器模塊200的功率時(shí),傳遞數(shù)據(jù)模塊2 O 8可以將具有它們已被修改的指示的頁(例如,其各自的臟比特已被設(shè)置的頁)從N V M204復(fù)制到NVM 202。傳遞數(shù)據(jù)模塊208可以不復(fù)制沒有它們已被修改的指示的頁,或者具有它們尚未被修改的指示的頁(例如,其各自的臟比特尚未被設(shè)置的頁)。在一些實(shí)施方式中,頁是否已被修改的指示可以用于確定在NVM 204上執(zhí)行取消分配或高速緩存沖洗操作之前哪些頁從NVM 204復(fù)制到NVM 202。已被修改的NVM 204中的數(shù)據(jù)頁可以在執(zhí)行取消分配/高速緩存沖洗操作之前被復(fù)制到NVM 202,從而修改的數(shù)據(jù)可以保留在存儲器模塊200中。尚未被修改的NVM 204中的數(shù)據(jù)頁可以被無效且不被復(fù)制,因此節(jié)省將花費(fèi)來寫入未修改的數(shù)據(jù)到NVM 202的延遲時(shí)間和資源。
[0021]在一些實(shí)施方式中,維持指示模塊214可以在存儲器模塊200上的NVM中維持NVM202中的相應(yīng)數(shù)據(jù)頁是否存儲在NVM 204中的指示。這樣的指示可以用于跟蹤在NVM 204中的活動頁和數(shù)據(jù)的可用性。NVM 202中的相應(yīng)數(shù)據(jù)頁是否存儲在NVM 204中的指示可以被存儲,例如在NVM 202中,在NVM 204中或在存儲器控制器206中的NVM中,并且可以被存儲在與用于存儲頁是否已被修改的指示的NVM相同的NVM或不同的NVM中。
[0022]在一些實(shí)施方式中,維持指示模塊214可以在存儲器模塊200上的NVM中維持有效數(shù)據(jù)是否被存儲在指代存儲器模塊200的快速高速緩沖存儲器(例如,NVM 204)中的位置的相應(yīng)地址處的指示。這樣的指示可以用于確定向其可以寫入數(shù)據(jù)的快速高速緩沖存儲器中的地址,并且多少自由存儲空間存在于快速高速緩沖存儲器中。有效數(shù)據(jù)是否存儲在相應(yīng)地址處的指示可以被存儲,例如在NVM 202中,在NVM 204中或在存儲器控制器206中的NVM中,并且可以被存儲在與用于存儲先前討論的指示的(一個(gè)或多個(gè))NVM相同的NVM或不同的NVM 中。
[0023]輸出數(shù)據(jù)模塊216可以傳送從NVM202和/或204讀取的數(shù)據(jù)到在存儲器模塊200的外部的部件。輸出數(shù)據(jù)模塊216可以傳送請求的數(shù)據(jù)到請求了該數(shù)據(jù)的外部部件。該數(shù)據(jù)可以在高速緩存行中被輸出。
[0024]圖3是包括用啟用對存儲器模塊上的數(shù)據(jù)的管理的指令編碼的機(jī)器可讀存儲介質(zhì)的示例存儲器模塊300的框圖。存儲器模塊300可以是直插式存儲器模塊,諸如SIMM或DIMM,或適合于安裝存儲器IC的任何存儲器模塊。在圖3中,存儲器模塊300包括處理器302和機(jī)器可讀存儲介質(zhì)304。
[0025]處理器302可以包括中央處理單元(CPU)、微處理器(例如,基于半導(dǎo)體的微處理器)和/或適合于檢索和/或執(zhí)行存儲在機(jī)器可讀存儲介質(zhì)304中的指令的其他硬件設(shè)備。處理器302可以取得、解碼和/或執(zhí)行指令306、308和310,以啟用對存儲器模塊300上的數(shù)據(jù)的管理,如以下描述的。作為對檢索和/或執(zhí)行指令的替代方案或除了檢索和/或執(zhí)行指令以夕卜,處理器302可以包括包含用于執(zhí)行指令306、308和/或310的功能的許多電子部件的電子電路。
[0026]機(jī)器可讀存儲介質(zhì)304可以是任何適合電子、磁性、光學(xué)、或其它物理存儲設(shè)備,其包含或存儲可執(zhí)行指令。因此,機(jī)器可讀存儲介質(zhì)304可以例如包括隨機(jī)存取存儲器(RAM)、EEPR0M、存儲設(shè)備、光學(xué)盤等。在一些實(shí)施方式中,機(jī)器可讀存儲介質(zhì)304可以包括非臨時(shí)性存儲介質(zhì),其中術(shù)語“非臨時(shí)性”不涵蓋臨時(shí)傳播信號。如以下詳細(xì)描述的,可以用一組可執(zhí)行指令306、308和310來編碼機(jī)器可讀存儲介質(zhì)304。
[0027]指令306可以檢測在存儲器模塊300上的第一NVM中沒有請求的數(shù)據(jù)。第一 NVM可以是快速高速緩沖存儲器(例如,NVM 104),如以上關(guān)于圖1討論的。在一些實(shí)施方式中,指令306可以接收來自O(shè)S頁故障處理程序的信息,其指示請求的數(shù)據(jù)未被存儲在第一NVM中。例如,當(dāng)期望在沒有OS頁表中的有效條目的虛擬地址處存取存儲在存儲器模塊300中的數(shù)據(jù)時(shí),可以調(diào)用頁故障處理程序。
[0028]指令308可以將請求的數(shù)據(jù)從在存儲器模塊300上的第二NVM(例如,NVM 102)復(fù)制到第一 NVM。第二 NVM可以具有比第一 NVM更高的存儲器容量和更長的存取延遲,如以上關(guān)于圖1討論的。可以響應(yīng)于檢測到在第一 NVM中沒有請求的數(shù)據(jù),將請求的數(shù)據(jù)從第二 NVM復(fù)制到第一NVM。例如,當(dāng)OS頁故障處理程序被調(diào)用時(shí),可以復(fù)制請求的數(shù)據(jù)。在一些實(shí)施方式中,數(shù)據(jù)可以從第二NVM被逐頁復(fù)制到第一NVM。
[0029]指令310可以在存儲器模塊300上的NVM中存儲第一地址和第二地址之間的映射。第一地址可以指代請求的數(shù)據(jù)被存儲在第一 NVM中所處的位置。第二地址可以指代從其復(fù)制了請求的數(shù)據(jù)的第二NVM中的位置。在一些實(shí)施方式中,映射可以包括在表中的物理和虛擬地址的條目和/或指針,如以上關(guān)于圖1討論的??梢皂憫?yīng)于請求的數(shù)據(jù)從存儲器模塊300上的NVM復(fù)制到存儲器模塊300上的另一 NVM(例如,從第二 NVM到第一 NVM)而存儲映射。映射可以被存儲例如在第一 NVM中,在第二 NVM中或在存儲器模塊300上的存儲器控制器中的NVM中。
[0030]圖4是包括用移動和跟蹤存儲器模塊上的數(shù)據(jù)的指令編碼的機(jī)器可讀存儲介質(zhì)的示例存儲器模塊400的框圖。存儲器模塊400可以是直插式存儲器模塊,諸如SHM或DIMM,或適合于安裝存儲器IC的任何存儲器模塊。在圖4中,存儲器模塊400包括處理器402和機(jī)器可讀存儲介質(zhì)404。
[0031]如同圖3的處理器302—樣,處理器402可以包括CPU、微處理器(例如,基于半導(dǎo)體的微處理器)和/或適合于檢索和/或執(zhí)行存儲在機(jī)器可讀存儲介質(zhì)404中的指令的其他硬件設(shè)備。處理器402可以取得、解碼和/或執(zhí)行指令406、408、410、412、414和416,以啟用對存儲器模塊400上的數(shù)據(jù)的移動和跟蹤,如以下描述的。作為對檢索和/或執(zhí)行指令的替代方案或除了檢索和/或執(zhí)行指令以外,處理器402可以包括包含用于執(zhí)行指令406、408、410、412、414和/或416的功能的許多電子部件的電子電路。
[0032]如同圖3的機(jī)器可讀存儲介質(zhì)304—樣,機(jī)器可讀存儲介質(zhì)404可以是任何適合物理存儲設(shè)備,其存儲可執(zhí)行指令。機(jī)器可讀存儲介質(zhì)404上的指令406、408、和410可以類似于機(jī)器可讀存儲介質(zhì)304上的指令306、308和310。指令412可以從存儲器模塊400上的存儲器讀取存儲的映射。例如,可以從快速高速緩存NVM(例如NVM 204)、高容量和慢存取時(shí)間NVM(例如NVM 202)或在存儲器模塊400上的存儲器控制器中的NVM讀取存儲的映射。在一些實(shí)施方式中,存儲的映射可以當(dāng)存儲器模塊400在功率失去后上電時(shí)被讀取,和/或可以通過OS使用以初始化頁表,如以上關(guān)于圖1討論的。
[0033]指令414可以復(fù)制存儲在第一地址處的數(shù)據(jù)到存儲器模塊400中的第二地址。第一地址可以指代數(shù)據(jù)在存儲器模塊400上的快速高速緩存NVM中的位置。第二地址可以指代在存儲器模塊400上的更高的容量/更長的存取延遲NVM中的從其復(fù)制了數(shù)據(jù)的位置。在一些實(shí)施方式中,第一地址可以是虛擬地址,并且第二地址可以是在存儲的映射中的物理地址,并且可以在存儲器模塊400上電時(shí)讀取存儲的映射之后復(fù)制數(shù)據(jù)。因此,較慢的NVM可以存儲最新的數(shù)據(jù),如以上關(guān)于圖1討論的。
[0034]指令416可以從存儲器模塊400輸出請求的數(shù)據(jù)。例如,存儲器模塊400上的存儲器控制器(例如,存儲器控制器206 )可以輸出從存儲器模塊400上的存儲器(例如,快速高速緩沖存儲器)讀取的請求的數(shù)據(jù)到在存儲器模塊400的外部的部件。請求的數(shù)據(jù)可以在高速緩存行中被輸出,如以上關(guān)于圖1討論的。
[0035]圖5是用于管理存儲器模塊上數(shù)據(jù)的示例方法500的流程圖。雖然以下參考圖3的處理器302描述方法500的執(zhí)行,但是應(yīng)該理解的是方法500的執(zhí)行可以由其他適合設(shè)備(諸如,圖4的處理器402)執(zhí)行。可以以存儲在機(jī)器可讀存儲介質(zhì)(例如,存儲介質(zhì)304)上的可執(zhí)行指令的形式和/或以電子電路的形式來實(shí)施方法500。
[0036]方法500可以在塊502中開始,其中處理器302可以從OS頁故障處理程序接收信息,其指示請求的數(shù)據(jù)未被存儲在存儲器模塊上的多個(gè)NVM的第一NVM中。第一NVM可以是快速高速緩沖存儲器,諸如圖1的NVM 104。例如,當(dāng)期望在指代第一 NVM中的位置的虛擬地址處存取存儲在存儲器模塊上的存儲器控制器中的數(shù)據(jù)并且該虛擬地址在OS頁表中沒有有效條目時(shí),可以調(diào)用頁故障處理程序。
[0037]接下來,在塊504中,處理器302可以響應(yīng)于接收到的信息將請求的數(shù)據(jù)從多個(gè)NVM的第二 NVM復(fù)制到第一 NVM。第二 NVM可以具有比第一 NVM更高的存儲器容量和更長的存取延遲。例如,第一NVM可以是ReRAM,并且第二NVM可以是閃速存儲器。請求的數(shù)據(jù)可以從第二NVM被逐頁復(fù)制到第一NVM。
[0038]最后,在塊506中,處理器302可以在存儲器模塊上的多個(gè)NVM中的一個(gè)NVM中存儲第一地址和第二地址之間的映射。第一地址可以指代請求的數(shù)據(jù)存儲在第一 NVM中所處的位置。第二地址可以指代在第二 NVM中的從其復(fù)制了請求的數(shù)據(jù)的位置。映射可以包括表中的物理和虛擬地址的條目和/或指針,如以上關(guān)于圖1討論的。在一些實(shí)施方式中,可以響應(yīng)于請求的數(shù)據(jù)從第二 NVM復(fù)制到存儲器模塊上的第一 NVM而存儲映射。映射可以被存儲,例如在第一NVM中,在第二NVM中,或在存儲器模塊上的存儲器控制器中的NVM中。
[0039]圖6是用于維持與存儲在存儲器模塊上的數(shù)據(jù)相關(guān)的細(xì)節(jié)的示例方法600的流程圖。雖然以下參考圖4的處理器402描述方法600的執(zhí)行,但是應(yīng)理解的是,方法600的執(zhí)行可以由其他適合設(shè)備(諸如圖3的處理器302)執(zhí)行??梢砸源鎯υ跈C(jī)器可讀存儲介質(zhì)(例如,存儲介質(zhì)404)上的可執(zhí)行指令的形式和/或以電子電路的形式來實(shí)施方法600。
[0040]方法600可以在塊602中開始,其中處理器402可以在存儲器模塊上電時(shí)讀取存儲的映射。可以從存儲器模塊上的NVM讀取映射。例如,可以從快速高速緩存NVM、高容量/慢存取時(shí)間NVM或存儲器模塊上的存儲器控制器中的NVM讀取映射。映射可以包括第一地址和第二地址。第一地址可以指代數(shù)據(jù)存儲在存儲器模塊上的第一NVM(例如,快速高速緩存NVM)中所處的位置。第二地址可以指代從其復(fù)制了數(shù)據(jù)的在存儲器模塊上的第二NVM(例如,高容量/慢存取時(shí)間NVM)中的位置。在一些實(shí)施方式中,可以使用映射來初始化OS頁表,如以上關(guān)于圖1討論的。在這樣的實(shí)施方式中,第一地址可以是頁表中的虛擬地址,并且第二地址可以是映射到頁表中的虛擬地址的物理地址。
[0041 ]接下來,在塊604中,處理器402可以復(fù)制存儲在第一 NVM中的第一地址處的數(shù)據(jù)到第二 NVM中的第二地址。在其中第一 NVM相對于第二 NVM充當(dāng)快速高速緩沖存儲器的實(shí)施方式中,這樣的復(fù)制可以允許第二NVM在恢復(fù)至存儲器模塊的功率后存儲數(shù)據(jù)的最新版本,SP使在去除至存儲器模塊的功率之前第一 NVM中的數(shù)據(jù)已被修改,如以上關(guān)于圖1討論的。數(shù)據(jù)可以從第一 NVM被逐頁復(fù)制到第二 NVM。
[0042]在塊606中,處理器402可以指示第一 NVM中的存儲的數(shù)據(jù)頁是否已被修改。處理器402可以響應(yīng)于檢測到寫入命令被發(fā)送到第一 NVM或?qū)懭氩僮髟诘谝?NVM上被執(zhí)行而指示修改。在一些實(shí)施方式中,處理器402可以設(shè)置與數(shù)據(jù)頁關(guān)聯(lián)的臟比特,以指示數(shù)據(jù)頁已被修改,如以上關(guān)于圖2討論的。
[0043]在塊608中,處理器402可以在高速緩存行中輸出請求的數(shù)據(jù)。請求的數(shù)據(jù)可以從第一 NVM被讀取并被傳送到在存儲器模塊的外部的部件。雖然塊608在圖6中被示出在塊606下面,但是應(yīng)該理解的是處理器402可以在指示存儲的數(shù)據(jù)是否已被修改之前或與指示存儲的數(shù)據(jù)是否已被修改并行輸出請求的數(shù)據(jù)。
[0044]前述公開描述具有非易失性快速高速緩沖存儲器和更高的容量、更慢的存取時(shí)間NVM的存儲器模塊。本文中描述的示例實(shí)施方式使存儲器模塊能夠在功率失去后保留數(shù)據(jù),并且跟蹤數(shù)據(jù)的位置,而不必依賴于OS。
【主權(quán)項(xiàng)】
1.一種用于管理存儲器模塊上的數(shù)據(jù)的方法,所述方法包括: 從操作系統(tǒng)(OS)頁故障處理程序接收信息,其指示請求的數(shù)據(jù)未被存儲在存儲器模塊上的多個(gè)非易失性存儲器(NVM)的第一NVM中; 響應(yīng)于接收到的信息,將請求的數(shù)據(jù)從多個(gè)NVM的第二NVM復(fù)制到第一NVM,其中第二NVM具有比第一NVM更高的存儲器容量和更長的存取延遲;以及 在多個(gè)NVM中的一個(gè)NVM中存儲第一地址和第二地址之間的映射,其中第一地址指代請求的數(shù)據(jù)存儲在第一 NVM中所處的位置,并且其中第二地址指代從其復(fù)制了請求的數(shù)據(jù)的第二 NVM中的位置。2.權(quán)利要求1的方法,其中第一NVM包括電阻隨機(jī)存取存儲器(ReRAM)、磁阻隨機(jī)存取存儲器(MRAM)或相變隨機(jī)存取存儲器(PCRAM)。3.權(quán)利要求1的方法,其中數(shù)據(jù)從第二NVM被逐頁復(fù)制到第一 NVM,所述方法進(jìn)一步包括在高速緩存行中輸出請求的數(shù)據(jù)。4.權(quán)利要求1的方法,進(jìn)一步包括: 當(dāng)存儲器模塊上電時(shí)讀取存儲的映射;以及 將存儲在第一 NVM中的第一地址處的數(shù)據(jù)復(fù)制到第二 NVM中的第二地址。5.權(quán)利要求1的方法,進(jìn)一步包括指示第一NVM中的存儲的數(shù)據(jù)頁是否已被修改。6.權(quán)利要求1的方法,其中: OS使用存儲的映射來初始化頁表; 第一地址是頁表中的虛擬地址;以及 第二地址是映射到頁表中的虛擬地址的物理地址。7.—種用于管理存儲器模塊上的數(shù)據(jù)的用由存儲器模塊的處理器可執(zhí)行的指令編碼的機(jī)器可讀存儲介質(zhì),所述機(jī)器可讀存儲介質(zhì)包括: 用于檢測在存儲器模塊上的多個(gè)非易失性存儲器(NVM)中的第一NVM中沒有請求的數(shù)據(jù)的指令; 用于將請求的數(shù)據(jù)從多個(gè)NVM的第二 NVM復(fù)制到第一 NVM的指令,其中第二 NVM具有比第一NVM更高的存儲器容量和更長的存取延遲;以及 用于在多個(gè)NVM中的一個(gè)NVM中存儲第一地址和第二地址之間的映射的指令,其中第一地址指代請求的數(shù)據(jù)存儲在第一 NVM中所處的位置并且其中第二地址指代從其復(fù)制了請求的數(shù)據(jù)的第二 NVM中的位置。8.權(quán)利要求7的機(jī)器可讀存儲介質(zhì),進(jìn)一步包括: 用于將數(shù)據(jù)從第二NVM逐頁復(fù)制到第一NVM的指令;以及 用于在高速緩存行中輸出請求的數(shù)據(jù)的指令。9.權(quán)利要求7的機(jī)器可讀存儲介質(zhì),進(jìn)一步包括: 用于讀取存儲的映射的指令;以及 用于將存儲在第一 NVM中的第一地址處的數(shù)據(jù)復(fù)制到第二 NVM中的第二地址的指令。10.一種存儲器模塊,包括: 多個(gè)非易失性存儲器(NVM ),其中多個(gè)NVM包括: 第一非易失性存儲器(NVM);以及 具有比第一NVM更高的存儲器容量和更長的存取延遲的第二NVM;以及 存儲器控制器,用于: 在第一NVM和第二NVM之間傳遞數(shù)據(jù);以及 在多個(gè)NVM中的一個(gè)NVM中維持指代第一 NVM中的位置的第一多個(gè)地址和指代第二 NVM中的位置的第二多個(gè)地址之間的多個(gè)映射,其中在第一多個(gè)地址和第二多個(gè)地址之間傳遞數(shù)據(jù)。11.權(quán)利要求1O的存儲器模塊,其中第一NVM包括電阻隨機(jī)存取存儲器(ReRAM)、磁阻隨機(jī)存取存儲器(MRAM)或相變隨機(jī)存取存儲器(PCRAM)。12.權(quán)利要求10的存儲器模塊,其中所述存儲器控制器進(jìn)一步用于: 監(jiān)控第一NVM中的數(shù)據(jù)頁的修改;以及 響應(yīng)于檢測到第一 NVM中的數(shù)據(jù)頁的修改,存儲數(shù)據(jù)頁已被修改的指示。13.權(quán)利要求10的存儲器模塊,其中所述存儲器控制器進(jìn)一步用于: 在第二NVM和第一NVM之間逐頁傳遞數(shù)據(jù);以及 在高速緩存行中輸出從第一 NVM讀取的數(shù)據(jù)。14.權(quán)利要求10的存儲器模塊,其中所述存儲器控制器進(jìn)一步用于: 當(dāng)存儲器模塊上電時(shí)讀取多個(gè)映射;以及 將存儲在第一 NVM中的第一多個(gè)地址處的數(shù)據(jù)復(fù)制到第二 NVM中的第二多個(gè)地址的相應(yīng)地址。15.權(quán)利要求1O的存儲器模塊,其中所述存儲器控制器進(jìn)一步用于在多個(gè)NVM中的一個(gè)NVM上維持: 第二NVM中的相應(yīng)的數(shù)據(jù)頁是否被存儲在第一NVM中的第一多個(gè)指示;以及 有效數(shù)據(jù)是否被存儲在指代第一 NVM中的位置的相應(yīng)地址處的第二多個(gè)指示。
【文檔編號】G06F12/08GK106062724SQ201380079786
【公開日】2016年10月26日
【申請日】2013年9月27日
【發(fā)明人】G.B.萊薩特雷, A.R.惠勒
【申請人】慧與發(fā)展有限責(zé)任合伙企業(yè)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
乐东| 陇西县| 高尔夫| 乌鲁木齐市| 屯门区| 华安县| 阳东县| 邵阳市| 临桂县| 枞阳县| 油尖旺区| 渝北区| 罗田县| 新兴县| 太谷县| 刚察县| 锡林郭勒盟| 红安县| 凤阳县| 印江| 洮南市| 清远市| 大兴区| 万源市| 木兰县| 上犹县| 卢湾区| 阿鲁科尔沁旗| 博兴县| 军事| 乌恰县| 永顺县| 邵武市| 湘潭市| 炎陵县| 和龙市| 永和县| 寻乌县| 班玛县| 曲麻莱县| 任丘市|