存储器模块上的数据管理的制作方法

文档序号:10694046阅读:447来源:国知局
存储器模块上的数据管理的制作方法
【专利摘要】示例实施方式涉及到管理存储器模块上的数据。可以在存储器模块上的第一NVM和第二NVM之间传递数据。第二NVM可以具有比第一NVM更高的存储器容量和更长的存取延迟。第一地址和第二地址之间的映射可以被存储在存储器模块上的NVM中。第一地址可以指代数据存储在第一NVM中所处的位置。第二地址可以指代从其复制了数据的第二NVM中的位置。
【专利说明】
存储器模块上的数据管理
【背景技术】
[0001]可以包括非易失性存储器(NVM)以及易失性存储器的混合存储器模块可以存储比其存储器所有都是易失性存储器的存储器模块更多的数据。存储器模块可以经由双倍数据速率(DDR)接口与外部部件进行通信。混合存储器模块上的高速缓冲存储器可以使存储器模块能够符合DDR接口时序要求,以及保护存储器模块上的低耐久NVM免于可能耗损NVM的大量写入操作。
【附图说明】
[0002]下面详细的描述参考附图,其中:
图1是包括管理存储器模块上的数据的存储器控制器的示例存储器模块的框图;
图2是包括在存储器模块上的非易失性存储器(NVM)之间传递数据和保持跟踪数据在NVM中被存储在何处的存储器控制器的示例存储器模块的框图;
图3是包括用启用对存储器模块上的数据的管理的指令编码的机器可读存储介质的示例存储器模块的框图;
图4是包括用移动和跟踪存储器模块上的数据的指令编码的机器可读存储介质的示例存储器模块的框图;
图5是用于管理存储器模块上数据的示例方法的流程图;以及图6是用于维持与存储在存储器模块上的数据相关的细节的示例方法的流程图。
【具体实施方式】
[0003]易失性存储器可用作混合存储器模块上的高速缓冲存储器。如果存储器模块失电,则易失性高速缓冲存储器中的数据可能丢失。如果易失性高速缓冲存储器中的数据在从存储器模块上的非易失性存储器(NVM)被复制后已被修改,则NVM可能不能获得修改的数据,如果功率在易失性高速缓冲存储器中的修改的数据被复制回到NVM之前失去的话。
[0004]鉴于上文,本公开提供具有非易失性高速缓冲存储器的存储器模块,非易失性高速缓冲存储器的存取时间接近易失性高速缓冲存储器的存取时间。如果从这种存储器模块去除功率,则高速缓冲存储器中的数据不丢失,并且存储器模块上的另一 NVM可以能够在恢复功率后获得存储在非易失性高速缓冲存储器中的修改的数据。具有非易失性高速缓冲存储器的存储器模块也可以消耗比具有易失性高速缓冲存储器的存储器模块更少功率。
[0005]现在参考附图,图1是包括管理存储器模块上的数据的存储器控制器的示例存储器模块100的框图。存储器模块100可以是直插式存储器模块,诸如单直插式存储器模块(SMM)或双直插式存储器模块(DMM)或适合于安装存储器集成电路(IC)的任何存储器模块。在图1中,存储器模块100包括非易失性存储器(NVM) 102,NVM 104和存储器控制器106。
[0006]NVM 102和104中的每个可以包括电阻随机存取存储器(ReRAM)、闪速存储器、电可擦除可编程只读存储器(EEPROM)、磁阻随机存取存储器(MRAM)、相变随机存取存储器(PCRAM)或适合于存储可执行指令和/或数据的任何其他非易失性存储器。如本文中使用的术语“非易失性存储器”或“NVM”指代能够甚至未通电时保留存储的指令/数据的存储器。NVM 102和104可在存储器模块100上的IC中。
[0007]NVM 102可以具有比NVM 104更高的存储器容量和更长的存取延迟。如本文中关于存储器使用的术语“存取延迟”指代从存储器读取数据或写入数据到存储器中花费的时间长度。在一些实施方式中,NVM 102可以是闪速存储器,并且NVM 104可以是ReRAMAVM 104可以为请求存取存储在NVM 102中的数据的应用程序启用活动数据的缓存,并可以允许以NVM 102可能不能实现的速度存取数据。充当快速高速缓冲存储器的NVM 104可以对在存储器模块100的外部的部件是透明的。
[0008]存储器控制器106可以通信地耦合到存储器模块100上的NVM 102和104。在一些实施方式中,存储器控制器106可以是数字电路。如图1中图示并在下面详细描述的,存储器控制器106可以包括模块108和110。模块可以包括编码在机器可读存储介质上和由存储器控制器106的处理器可执行的指令集。此外或作为替代方案,模块可以包括硬件设备,其包括用于实施以下描述的功能的电子电路。
[0009]传递数据模块108可以在NVM 102和104之间传递数据。在一些实施方式中,传递数据模块108可以包括用于控制NVM 102和104之间的传递的直接存储器存取(DMA)控制器。传递数据模块108可以包括用于将数据传递到NVM 102和104并且从NVM 102和104接收数据的接口,并且可以包括用于存储从NVM 102和104读取的数据的缓冲器。
[0010]如以上讨论的,NVM 104可以充当快速高速缓冲存储器,并且NVM 102可以是更慢、更高容量的存储器。传递数据模块108可以接收信息(例如,经由存储器控制器106上的操作系统接口),其指示由在存储器模块100的外部的部件请求的数据(这样的数据可以在本文中被称为“请求的数据”)不存在于NVM 104中。传递数据模块108可以从操作系统(OS)页故障处理程序接收这样的信息,或可以以其它方式检测没有请求的数据。例如,当存储器控制器106接收存取存储在指代在NVM 102中的位置的虚拟地址处的数据的请求并且该虚拟地址在OS页表中没有有效条目时,可以调用页故障处理程序。响应于接收的信息,传递数据模块108可以将请求的数据从NVM 102复制到NVM 104。
[0011]应该理解的是,可以以与发送到外部部件的数据块的大小不同大小的块在NVM102和104之间传递数据。例如,传递数据模块108可以逐页(例如,一页可以是大约4千字节)将数据从NVM 102复制到NVM 104,并且存储器控制器106可以输出在高速缓存行(例如,大约64字节)中从NVM 104读取的数据(例如,请求的数据)到外部部件。
[0012]维持映射模块110可以在存储器模块100上的NVM上维持可以指代NVM 104中的位置的第一多个地址和可以指代NVM 102中的位置的第二多个地址之间的多个映射。可以在第一多个地址和第二多个地址之间传递数据。如本文中关于映射和指示使用的术语“维持”指代生成和/或存储新的映射/指示,更新现有映射/指示以及删除现有映射/指示。例如,当将数据从NVM 102复制到NVM 104时可以存储新的映射,当存储在NVM 104中的数据被修改时可以更新指示(关于图2进一步讨论指示),并且当在NVM 104上执行高速缓存冲洗功能时可以删除映射。应该理解的是,存储器模块100可以包括除了 NVM 102和104以外的NVM,并且映射可能被维持在其他NVM中的一个NVM中。
[0013]如本文中关于地址使用的术语“映射”指代指示在其之间传递数据的两个地址之间的关系的信息。在一些实施方式中,映射可以是用于跟踪在NVM 102中的哪些数据页当前缓存在NVM 104中的表中的条目。条目可以包括指代存储数据的特定页所处的NVM 102中的位置的物理地址,其紧挨指代存储数据的该特定页所处的NVM 104中的位置的虚拟地址。在一些实施方式中,映射可以包括指代NVM 104中的位置的地址和指向NVM 102中的相应位置的指针。
[0014]维持映射模块110可以响应于请求的数据从NVM104被复制到NVM 102存储第一地址和第二地址之间的映射。第一地址可以是第一多个地址中的一个,并且可以指代在NVM104中存储请求的数据所处的位置。第二地址可以是第二多个地址中的一个,并且可以指代从其复制请求的数据的在NVM 102中的位置。可以将映射存储例如在NVM 102中,在NVM 104中,或在存储器控制器106中的NVM中。
[0015]当将映射存储在存储器模块100上的NVM中时,映射可以保持在NVM中,即使存储器模块100不具有功率。当存储器模块100上电时(例如,在失去功率或掉电后),传递数据模块108可以读取映射并且将存储在NVM 104中的第一多个地址的数据复制到NVM 102中的第二多个地址的相应地址。因此,如果在去除至存储器模块100的功率之前NVM 104中的数据已被修改(例如,通过在存储器模块100的外部的部件),则NVM 102可以在恢复功率后存储数据的最新版本。在一些实施方式中,OS可以使用存储的映射来初始化页表,例如,当在功率失去后恢复至存储器模块100的功率时。第一多个地址可以是页表中的虚拟地址,并且第二多个地址可以是映射到页表中的相应虚拟地址的物理地址。
[0016]图2是包括在存储器模块上的NVM之间传递数据和保持跟踪数据在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。在一些实施方式中,存储器控制器206可以是数字电路。如图2中图示并在下面详细描述的,存储器控制器206可以包括模块208、210、212、214和216。模块可以包括编码在机器可读存储介质上和由存储器控制器206的处理器可执行的指令集。此外或作为替代方案,模块可以包括硬件设备,其包括用于实施以下描述的功能的电子电路。
[0018]存储器控制器206的模块208和210可以类似于存储器控制器106的模块108和110。监控修改模块212可以监控存储器模块200上的快速高速缓冲存储器(例如,NVM 204)中的数据页的修改。监控修改模块212可以检测快速高速缓冲存储器接收的写入命令和/或检测在快速高速缓冲存储器中执行的写入操作。在一些实施方式中,监控修改模块212可以确定有效数据是否存储在快速高速缓冲存储器中的特定地址处。
[0019]维持指示模块214可以在存储器模块200上的NVM中维持存储器模块200上的快速高速缓冲存储器中的数据页是否已被修改的指示。例如,可以将这样的指示存储在NVM 202中,在NVM 204中,或在存储器控制器206中的NVM中。如本文中使用的术语“指示”指代环境是否存在的标志。响应于监控修改模块212检测到在快速高速缓冲存储器中的数据页的修改,维持指示模块214可以存储已修改数据页的指示。例如,维持指示模块214可以设置与数据页关联的脏比特。
[0020]在一些实施方式中,当在功率失去后恢复至存储器模块200的功率时,传递数据模块2 O 8可以将具有它们已被修改的指示的页(例如,其各自的脏比特已被设置的页)从N V M204复制到NVM 202。传递数据模块208可以不复制没有它们已被修改的指示的页,或者具有它们尚未被修改的指示的页(例如,其各自的脏比特尚未被设置的页)。在一些实施方式中,页是否已被修改的指示可以用于确定在NVM 204上执行取消分配或高速缓存冲洗操作之前哪些页从NVM 204复制到NVM 202。已被修改的NVM 204中的数据页可以在执行取消分配/高速缓存冲洗操作之前被复制到NVM 202,从而修改的数据可以保留在存储器模块200中。尚未被修改的NVM 204中的数据页可以被无效且不被复制,因此节省将花费来写入未修改的数据到NVM 202的延迟时间和资源。
[0021]在一些实施方式中,维持指示模块214可以在存储器模块200上的NVM中维持NVM202中的相应数据页是否存储在NVM 204中的指示。这样的指示可以用于跟踪在NVM 204中的活动页和数据的可用性。NVM 202中的相应数据页是否存储在NVM 204中的指示可以被存储,例如在NVM 202中,在NVM 204中或在存储器控制器206中的NVM中,并且可以被存储在与用于存储页是否已被修改的指示的NVM相同的NVM或不同的NVM中。
[0022]在一些实施方式中,维持指示模块214可以在存储器模块200上的NVM中维持有效数据是否被存储在指代存储器模块200的快速高速缓冲存储器(例如,NVM 204)中的位置的相应地址处的指示。这样的指示可以用于确定向其可以写入数据的快速高速缓冲存储器中的地址,并且多少自由存储空间存在于快速高速缓冲存储器中。有效数据是否存储在相应地址处的指示可以被存储,例如在NVM 202中,在NVM 204中或在存储器控制器206中的NVM中,并且可以被存储在与用于存储先前讨论的指示的(一个或多个)NVM相同的NVM或不同的NVM 中。
[0023]输出数据模块216可以传送从NVM202和/或204读取的数据到在存储器模块200的外部的部件。输出数据模块216可以传送请求的数据到请求了该数据的外部部件。该数据可以在高速缓存行中被输出。
[0024]图3是包括用启用对存储器模块上的数据的管理的指令编码的机器可读存储介质的示例存储器模块300的框图。存储器模块300可以是直插式存储器模块,诸如SIMM或DIMM,或适合于安装存储器IC的任何存储器模块。在图3中,存储器模块300包括处理器302和机器可读存储介质304。
[0025]处理器302可以包括中央处理单元(CPU)、微处理器(例如,基于半导体的微处理器)和/或适合于检索和/或执行存储在机器可读存储介质304中的指令的其他硬件设备。处理器302可以取得、解码和/或执行指令306、308和310,以启用对存储器模块300上的数据的管理,如以下描述的。作为对检索和/或执行指令的替代方案或除了检索和/或执行指令以夕卜,处理器302可以包括包含用于执行指令306、308和/或310的功能的许多电子部件的电子电路。
[0026]机器可读存储介质304可以是任何适合电子、磁性、光学、或其它物理存储设备,其包含或存储可执行指令。因此,机器可读存储介质304可以例如包括随机存取存储器(RAM)、EEPR0M、存储设备、光学盘等。在一些实施方式中,机器可读存储介质304可以包括非临时性存储介质,其中术语“非临时性”不涵盖临时传播信号。如以下详细描述的,可以用一组可执行指令306、308和310来编码机器可读存储介质304。
[0027]指令306可以检测在存储器模块300上的第一NVM中没有请求的数据。第一 NVM可以是快速高速缓冲存储器(例如,NVM 104),如以上关于图1讨论的。在一些实施方式中,指令306可以接收来自OS页故障处理程序的信息,其指示请求的数据未被存储在第一NVM中。例如,当期望在没有OS页表中的有效条目的虚拟地址处存取存储在存储器模块300中的数据时,可以调用页故障处理程序。
[0028]指令308可以将请求的数据从在存储器模块300上的第二NVM(例如,NVM 102)复制到第一 NVM。第二 NVM可以具有比第一 NVM更高的存储器容量和更长的存取延迟,如以上关于图1讨论的。可以响应于检测到在第一 NVM中没有请求的数据,将请求的数据从第二 NVM复制到第一NVM。例如,当OS页故障处理程序被调用时,可以复制请求的数据。在一些实施方式中,数据可以从第二NVM被逐页复制到第一NVM。
[0029]指令310可以在存储器模块300上的NVM中存储第一地址和第二地址之间的映射。第一地址可以指代请求的数据被存储在第一 NVM中所处的位置。第二地址可以指代从其复制了请求的数据的第二NVM中的位置。在一些实施方式中,映射可以包括在表中的物理和虚拟地址的条目和/或指针,如以上关于图1讨论的。可以响应于请求的数据从存储器模块300上的NVM复制到存储器模块300上的另一 NVM(例如,从第二 NVM到第一 NVM)而存储映射。映射可以被存储例如在第一 NVM中,在第二 NVM中或在存储器模块300上的存储器控制器中的NVM中。
[0030]图4是包括用移动和跟踪存储器模块上的数据的指令编码的机器可读存储介质的示例存储器模块400的框图。存储器模块400可以是直插式存储器模块,诸如SHM或DIMM,或适合于安装存储器IC的任何存储器模块。在图4中,存储器模块400包括处理器402和机器可读存储介质404。
[0031]如同图3的处理器302—样,处理器402可以包括CPU、微处理器(例如,基于半导体的微处理器)和/或适合于检索和/或执行存储在机器可读存储介质404中的指令的其他硬件设备。处理器402可以取得、解码和/或执行指令406、408、410、412、414和416,以启用对存储器模块400上的数据的移动和跟踪,如以下描述的。作为对检索和/或执行指令的替代方案或除了检索和/或执行指令以外,处理器402可以包括包含用于执行指令406、408、410、412、414和/或416的功能的许多电子部件的电子电路。
[0032]如同图3的机器可读存储介质304—样,机器可读存储介质404可以是任何适合物理存储设备,其存储可执行指令。机器可读存储介质404上的指令406、408、和410可以类似于机器可读存储介质304上的指令306、308和310。指令412可以从存储器模块400上的存储器读取存储的映射。例如,可以从快速高速缓存NVM(例如NVM 204)、高容量和慢存取时间NVM(例如NVM 202)或在存储器模块400上的存储器控制器中的NVM读取存储的映射。在一些实施方式中,存储的映射可以当存储器模块400在功率失去后上电时被读取,和/或可以通过OS使用以初始化页表,如以上关于图1讨论的。
[0033]指令414可以复制存储在第一地址处的数据到存储器模块400中的第二地址。第一地址可以指代数据在存储器模块400上的快速高速缓存NVM中的位置。第二地址可以指代在存储器模块400上的更高的容量/更长的存取延迟NVM中的从其复制了数据的位置。在一些实施方式中,第一地址可以是虚拟地址,并且第二地址可以是在存储的映射中的物理地址,并且可以在存储器模块400上电时读取存储的映射之后复制数据。因此,较慢的NVM可以存储最新的数据,如以上关于图1讨论的。
[0034]指令416可以从存储器模块400输出请求的数据。例如,存储器模块400上的存储器控制器(例如,存储器控制器206 )可以输出从存储器模块400上的存储器(例如,快速高速缓冲存储器)读取的请求的数据到在存储器模块400的外部的部件。请求的数据可以在高速缓存行中被输出,如以上关于图1讨论的。
[0035]图5是用于管理存储器模块上数据的示例方法500的流程图。虽然以下参考图3的处理器302描述方法500的执行,但是应该理解的是方法500的执行可以由其他适合设备(诸如,图4的处理器402)执行。可以以存储在机器可读存储介质(例如,存储介质304)上的可执行指令的形式和/或以电子电路的形式来实施方法500。
[0036]方法500可以在块502中开始,其中处理器302可以从OS页故障处理程序接收信息,其指示请求的数据未被存储在存储器模块上的多个NVM的第一NVM中。第一NVM可以是快速高速缓冲存储器,诸如图1的NVM 104。例如,当期望在指代第一 NVM中的位置的虚拟地址处存取存储在存储器模块上的存储器控制器中的数据并且该虚拟地址在OS页表中没有有效条目时,可以调用页故障处理程序。
[0037]接下来,在块504中,处理器302可以响应于接收到的信息将请求的数据从多个NVM的第二 NVM复制到第一 NVM。第二 NVM可以具有比第一 NVM更高的存储器容量和更长的存取延迟。例如,第一NVM可以是ReRAM,并且第二NVM可以是闪速存储器。请求的数据可以从第二NVM被逐页复制到第一NVM。
[0038]最后,在块506中,处理器302可以在存储器模块上的多个NVM中的一个NVM中存储第一地址和第二地址之间的映射。第一地址可以指代请求的数据存储在第一 NVM中所处的位置。第二地址可以指代在第二 NVM中的从其复制了请求的数据的位置。映射可以包括表中的物理和虚拟地址的条目和/或指针,如以上关于图1讨论的。在一些实施方式中,可以响应于请求的数据从第二 NVM复制到存储器模块上的第一 NVM而存储映射。映射可以被存储,例如在第一NVM中,在第二NVM中,或在存储器模块上的存储器控制器中的NVM中。
[0039]图6是用于维持与存储在存储器模块上的数据相关的细节的示例方法600的流程图。虽然以下参考图4的处理器402描述方法600的执行,但是应理解的是,方法600的执行可以由其他适合设备(诸如图3的处理器302)执行。可以以存储在机器可读存储介质(例如,存储介质404)上的可执行指令的形式和/或以电子电路的形式来实施方法600。
[0040]方法600可以在块602中开始,其中处理器402可以在存储器模块上电时读取存储的映射。可以从存储器模块上的NVM读取映射。例如,可以从快速高速缓存NVM、高容量/慢存取时间NVM或存储器模块上的存储器控制器中的NVM读取映射。映射可以包括第一地址和第二地址。第一地址可以指代数据存储在存储器模块上的第一NVM(例如,快速高速缓存NVM)中所处的位置。第二地址可以指代从其复制了数据的在存储器模块上的第二NVM(例如,高容量/慢存取时间NVM)中的位置。在一些实施方式中,可以使用映射来初始化OS页表,如以上关于图1讨论的。在这样的实施方式中,第一地址可以是页表中的虚拟地址,并且第二地址可以是映射到页表中的虚拟地址的物理地址。
[0041 ]接下来,在块604中,处理器402可以复制存储在第一 NVM中的第一地址处的数据到第二 NVM中的第二地址。在其中第一 NVM相对于第二 NVM充当快速高速缓冲存储器的实施方式中,这样的复制可以允许第二NVM在恢复至存储器模块的功率后存储数据的最新版本,SP使在去除至存储器模块的功率之前第一 NVM中的数据已被修改,如以上关于图1讨论的。数据可以从第一 NVM被逐页复制到第二 NVM。
[0042]在块606中,处理器402可以指示第一 NVM中的存储的数据页是否已被修改。处理器402可以响应于检测到写入命令被发送到第一 NVM或写入操作在第一 NVM上被执行而指示修改。在一些实施方式中,处理器402可以设置与数据页关联的脏比特,以指示数据页已被修改,如以上关于图2讨论的。
[0043]在块608中,处理器402可以在高速缓存行中输出请求的数据。请求的数据可以从第一 NVM被读取并被传送到在存储器模块的外部的部件。虽然块608在图6中被示出在块606下面,但是应该理解的是处理器402可以在指示存储的数据是否已被修改之前或与指示存储的数据是否已被修改并行输出请求的数据。
[0044]前述公开描述具有非易失性快速高速缓冲存储器和更高的容量、更慢的存取时间NVM的存储器模块。本文中描述的示例实施方式使存储器模块能够在功率失去后保留数据,并且跟踪数据的位置,而不必依赖于OS。
【主权项】
1.一种用于管理存储器模块上的数据的方法,所述方法包括: 从操作系统(OS)页故障处理程序接收信息,其指示请求的数据未被存储在存储器模块上的多个非易失性存储器(NVM)的第一NVM中; 响应于接收到的信息,将请求的数据从多个NVM的第二NVM复制到第一NVM,其中第二NVM具有比第一NVM更高的存储器容量和更长的存取延迟;以及 在多个NVM中的一个NVM中存储第一地址和第二地址之间的映射,其中第一地址指代请求的数据存储在第一 NVM中所处的位置,并且其中第二地址指代从其复制了请求的数据的第二 NVM中的位置。2.权利要求1的方法,其中第一NVM包括电阻随机存取存储器(ReRAM)、磁阻随机存取存储器(MRAM)或相变随机存取存储器(PCRAM)。3.权利要求1的方法,其中数据从第二NVM被逐页复制到第一 NVM,所述方法进一步包括在高速缓存行中输出请求的数据。4.权利要求1的方法,进一步包括: 当存储器模块上电时读取存储的映射;以及 将存储在第一 NVM中的第一地址处的数据复制到第二 NVM中的第二地址。5.权利要求1的方法,进一步包括指示第一NVM中的存储的数据页是否已被修改。6.权利要求1的方法,其中: OS使用存储的映射来初始化页表; 第一地址是页表中的虚拟地址;以及 第二地址是映射到页表中的虚拟地址的物理地址。7.—种用于管理存储器模块上的数据的用由存储器模块的处理器可执行的指令编码的机器可读存储介质,所述机器可读存储介质包括: 用于检测在存储器模块上的多个非易失性存储器(NVM)中的第一NVM中没有请求的数据的指令; 用于将请求的数据从多个NVM的第二 NVM复制到第一 NVM的指令,其中第二 NVM具有比第一NVM更高的存储器容量和更长的存取延迟;以及 用于在多个NVM中的一个NVM中存储第一地址和第二地址之间的映射的指令,其中第一地址指代请求的数据存储在第一 NVM中所处的位置并且其中第二地址指代从其复制了请求的数据的第二 NVM中的位置。8.权利要求7的机器可读存储介质,进一步包括: 用于将数据从第二NVM逐页复制到第一NVM的指令;以及 用于在高速缓存行中输出请求的数据的指令。9.权利要求7的机器可读存储介质,进一步包括: 用于读取存储的映射的指令;以及 用于将存储在第一 NVM中的第一地址处的数据复制到第二 NVM中的第二地址的指令。10.一种存储器模块,包括: 多个非易失性存储器(NVM ),其中多个NVM包括: 第一非易失性存储器(NVM);以及 具有比第一NVM更高的存储器容量和更长的存取延迟的第二NVM;以及 存储器控制器,用于: 在第一NVM和第二NVM之间传递数据;以及 在多个NVM中的一个NVM中维持指代第一 NVM中的位置的第一多个地址和指代第二 NVM中的位置的第二多个地址之间的多个映射,其中在第一多个地址和第二多个地址之间传递数据。11.权利要求1O的存储器模块,其中第一NVM包括电阻随机存取存储器(ReRAM)、磁阻随机存取存储器(MRAM)或相变随机存取存储器(PCRAM)。12.权利要求10的存储器模块,其中所述存储器控制器进一步用于: 监控第一NVM中的数据页的修改;以及 响应于检测到第一 NVM中的数据页的修改,存储数据页已被修改的指示。13.权利要求10的存储器模块,其中所述存储器控制器进一步用于: 在第二NVM和第一NVM之间逐页传递数据;以及 在高速缓存行中输出从第一 NVM读取的数据。14.权利要求10的存储器模块,其中所述存储器控制器进一步用于: 当存储器模块上电时读取多个映射;以及 将存储在第一 NVM中的第一多个地址处的数据复制到第二 NVM中的第二多个地址的相应地址。15.权利要求1O的存储器模块,其中所述存储器控制器进一步用于在多个NVM中的一个NVM上维持: 第二NVM中的相应的数据页是否被存储在第一NVM中的第一多个指示;以及 有效数据是否被存储在指代第一 NVM中的位置的相应地址处的第二多个指示。
【文档编号】G06F12/08GK106062724SQ201380079786
【公开日】2016年10月26日
【申请日】2013年9月27日
【发明人】G.B.莱萨特雷, A.R.惠勒
【申请人】慧与发展有限责任合伙企业
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1