存储器装置及其损耗平均方法

文档序号:6597954阅读:191来源:国知局

专利名称::存储器装置及其损耗平均方法
技术领域
:下面的描述涉及一种存储器装置及其损耗平均(wearleveling)方法。
背景技术
:非易失性随机存取存储器(NVRAM)是这样一种RAM,其中,存储在NVRAM上的数据在电源断开时不丢失。NVRAM可被用于存储文件或执行程序。由于存储在NVRAM中的信息在电源断开时不丢失,因此在电源突然断开的情况下,系统可迅速恢复到其初始状态。当使用者随意断开电源或电源失效发生时,NVRAM容易地使数据恢复。NVRAM的例子包括相变RAM(PRAM)、铁电RAM(FeRAM)、磁性RAM等。此外,因为与动态随机存取存储器(DRAM)相比,NVRAM通常具有较低的功耗,当用NVRAM替换DRAM时,可显著降低系统功耗。此外,在对特定位置进行新写入之前,NVRAM不需要存储器来擦除先前存储的存储器。因而,NVRAM支持用新的数据覆写先前存储的数据。然而,当与DRAM相比时,NVRAM只能提供有限次数的写入操作。
发明内容根据本发明的一方面,一种存储器装置包括存储器,包括非易失性随机存取存储器(NVRAM);控制器,控制所述存储器,其中,控制器管理页表,所述页表包括将NVRAM的虚拟地址映射到NVRAM的物理地址的映射信息,所述页表的项包括指示NVRAM的对应页的损耗的年龄信息。年龄信息可以指示对应页允许的写入操作的剩余次数,每当在对应页上写入数据时,控制器将对应页允许的写入操作的剩余次数减小1。所述存储器装置还可包括由控制器控制的非易失性存储器,其中,当电源断开时,控制器将每页的年龄信息存储在所述非易失性存储器中,在启动时恢复存储在所述非易失性存储器中的每页的写入操作的剩余次数,并根据每页的年龄信息对存储器执行存储器分配。控制器可注册并管理黑名单,黑名单包括作为不再使用的页的一个或一个以上的损耗页的信息,在电源断开时控制器将黑名单存储在所述非易失性存储器中,并在启动时恢复存储在非易失性存储器中的黑名单。如果对已经在页上执行的写入操作的次数等于或超过阈值的所述页执行写入操作,则控制器可产生页失效,可将该页的内容复制到自由页,并可修改对应于该页的页表,从而使该页的虚拟地址映射到该自由页的物理地址。如果对已经在页上执行的写入操作的次数等于或超过阈值的所述页执行写入操作,则控制器可产生页失效,并可防止对该页执行存储器分配。控制器可根据基于二元树数据结构的伙伴分配算法来执行存储器分配,如果在存储器分配过程中在二元树数据结构上的节点处发生页失效,则控制器可标记该节点和至少一个该节点上面的节点。如果基于至少一个节点的大小请求页分配并需要分配连续空间,则控制器可防止对应于标记的节点的页被分配。页表可包括层1页表和层2页表,层1页表可以以比页单位大的超级扇区为单位来管理对应于虚拟地址的物理地址,层2页表可以以页为单位管理对应于虚拟地址的物理地址。层1页表可包括关于每个超级扇区允许的写入操作的剩余次数的信息,层2页表可包括关于每个页允许的写入操作的剩余次数的信息。页表可包括以页为单位映射虚拟地址和物理地址的层2页表及指示层2页表的位置的层1页表,其中,层2页表包括关于每个页允许的写入操作的剩余次数的信息。页表的项可包括指示页表是否包括指示存储年龄信息的存储器的位置的指针信息的标识符信息。如果页由两个或两个以上的程序共享,则页表的项可包括指示存储该共享的页的年龄信息的存储器的位置的指针信息,如果页仅由一个程序使用,则页表的项可包括该由一个程序使用的页的年龄信息。当被两个或两个以上程序共享的页停止被共享时,存储在存储器中的对应该页的年龄信息可被复制到该页的年龄字段。如果先前没有被共享的页变为由两个或两个以上的程序共享,则该页的年龄字段的值可被复制到存储器的位置,指示该位置的指针信息可被存储到该页的年龄字段中。根据另一方面,一种存储器装置的损耗平均方法,存储器装置包括包含非易失性随机存取存储器(NVRAM)的存储器和用于控制该存储器的控制器,其中,对应于NVRAM的页表包括将NVRAM的虚拟地址映射到NVRAM的物理地址的映射信息,页表的项包括指示对应页的损耗的年龄信息,所述方法包括如下步骤在页上写入数据;响应于在页上的写入步骤而将写入操作的剩余次数减小1,写入操作的剩余次数由对应于该页的页表的项中提供的年龄信息来指示。所述方法还可包括如下步骤当电源断开时,将每个页的年龄信息存储在非易失性存储器中;在启动时恢复存储在非易失性存储器中的每个页的写入操作的剩余次数;基于被恢复的写入操作的剩余次数来执行存储器分配。所述方法还可包括如下步骤将写入操作的剩余次数已达阈值的损耗页注册在黑名单中,并管理该黑名单。当在页上执行的写入操作的次数超过阈值时,所述方法还可包括如下步骤产生页失效;将该页的内容复制到自由页中;修改页表,从而该页的虚拟地址被映射到该自由页的物理地址。所述方法还包括基于年龄信息来执行存储器分配的步骤,其中,存储器分配的执行包括如下步骤如果对页上允许的写入操作的次数已达阈值的页执行写入操作,则产生页失效并防止该页被分配。存储器分配的执行可包括根据伙伴分配算法执行存储器分配,所述伙伴分配算法根据二元树数据结构执行页分配,如果在执行存储器分配时在二元树数据结构的节点上产生页失效,则所述方法还可包括如下步骤标记该节点和该节点的至少一个上面的节点;确定是否需要基于所述至少一个上面的节点的大小的页分配及是否需要连续空间的分配,其中,如果需要基于所述至少一个上面的节点的大小的页分配且需要连续空间的分配,则对应于标记的节点的页被从存储器分配中排除。页表可包括指示页表的项是否包括指示存储年龄信息的存储器的位置的指针信息或页表的项是否包括年龄信息的标识符信息。如果页由两个或两个以上的程序共享,则页表的项可包括指示存储共享页的年龄信息的存储器的位置的指针信息,如果页仅由一个程序使用,则页表的项包括该页的年龄fn息ο通过下述具体描述、附图及权利要求,其它特征和方面将是清楚的。图1是示出示例性存储器装置的框图;图2示出了示例性页表的结构;图3A示出了当不共享页时的示例性年龄字段,图3B示出了当多个程序共享页时的示例性年龄字段;图4是示出存储器装置的示例性损耗平均方法的流程图;图5是示出处理由存储器分配产生的页失效的示例性方法的流程图。在全部的附图和详细描述中,除非另行描述,否则相同的标号应被理解为表示相同的元件、特征和结构。为清楚、示出和方便,会夸大这些元件的相对尺寸和描述。具体实施例方式提供下面的详细描述以帮助读者获得这里描述的方法、装置和/或系统的全面理解。因而,将向本领域普通技术人员建议这里描述的系统、装置和/或方法的各种改变、修改和等同物。此外,为更清楚和简洁,会省略公知的功能和构造的描述。图1示出了示例性存储器装置100。存储器装置100包括控制器110、主存储器120和非易失性存储器130。图1中的直线表示系统总线,可通过系统总线传输数据和指令。控制器110可以是CPU或微控制器。主存储器120为可以直接与控制器110交换数据的存储器,当执行操作系统(OS)或应用程序时,主存储器120可被控制器110利用。主存储器120包括,例如,非易失性随机存取存储器(NVRAM)122和动态随机存取存储器(DRAM)124。控制器110把将被OS使用的数据存储在DRAM124中。用于NVRAM122的存储器分配的页表和数据可被OS使用,且可将它们存储在DRAM124中。用于NVRAM122的存储器分配的数据可包括,例如,二元树(binarytree)。当执行诸如伙伴分配算法时,可使用和访问二元树。在确定普通用户应用程序的程序是否向DRAM124或向NVRAM122要求存储器分配之后,该程序可向OS要求存储器分配。在电源断开时,存储在非易失性存储器130中的数据不丢失。存储在非易失性存储器130中的数据加载到主存储器120中,然后由控制器110处理。非易失性存储器130的例子包括闪存、硬盘等。控制器110包括存储器管理单元(MMU)112、存储器分配单元114和年龄页失效(APFagingpagefault)处理器(handler)116。控制器110还可以包括一个或更多的其它功能单元,可通过一个或更多的其它功能单元来执行MMU112、存储器分配单元114和APF处理器116的功能。换句话说,可以以多种方式实现控制器110。MMU112将控制器110指示的存储器区域的虚拟地址转换成物理地址。例如,MMU112通过参照指示哪个物理存储器页映射哪个虚拟存储器页的页表来将虚拟地址转换为物理地址。根据一方面,页表的项包括指示页损耗的年龄信息。页表的项可包括年龄信息或指示存储年龄信息的存储器的位置的指针信息。可以以页为单位管理年龄。页上的所有字节(byte)具有相同的年龄。页表的项可包括含有年龄信息的年龄字段(field)。页表的项的年龄信息可指示在页达到耐久极限(endurancelimit)之前,在该页上允许的写入操作的剩余次数。MMU112根据在存储器区域上执行的写入来管理存储器区域的年龄信息。每在特定页上写入数据时,MMU112通过减小包括在该页的页表的项中的年龄信息的值(例如,将所述值减小1)来更新年龄信息。当将对应的页表的项初始化时,设置年龄字段的初始值。可将年龄字段的初始值设置为α,α可以是NVRAM122的耐久极限。例如,α值是由OS设置的常数,α值被用于防止在已经达到耐久极限的损耗的页上执行写入操作。每页的页表的项包括写入操作剩余次数的值α。每当数据被写入到页上时,控制器将α值减小1,保持追踪(track)α值,使存储器装置获知α值何时变为或接近0。作为示例,MMU112不是每当执行存储指令时都更新包括在页的年龄字段中的年龄信息,而是当在对应的存储器上实际执行写入操作时将年龄信息的值减小1。即,即使控制器110执行存储指令,但如果数据缓存在CPU高速缓存中,则不发生年龄信息的更新。可以以字节、字(word)、多字(multiple-word)等为单位来执行存储指令。当电源断开时,控制器110将每页的年龄信息存储在非易失性存储器130中,在启动(booting)时,控制器110恢复存储在非易失性存储器130中的每页的写入操作的剩余次数,并根据每个页的年龄信息在主存储器120上执行存储器分配。控制器110可产生并管理包括关于损耗页的信息的黑名单,该损耗页的剩余写入操作的值α为例如0。因为不允许在损耗页上执行其余的写入操作,所以损耗页不再被使用。在电源断开时,控制器110可将黑名单存储在非易失性存储器130中,并在启动时恢复存储在非易失性存储器130中的黑名单。存储器分配单元114执行用于执行计算机程序的存储器分配。存储器分配单元114可根据如伙伴分配算法来将存储器分配到NVRAM122。当在写入操作的剩余次数α等于或超过阈值的页上执行写入操作时,控制器110为所述页产生年龄页失效(APF)并防止所述页被使用。MMU112使APF处理器116在写入操作的剩余次数为0的页上执行失效处理。例如,每当在页中写入数据时,MMU112将页的年龄信息的值减小1,并当年龄信息的值达到O时产生年龄页失效。当产生年龄页失效时,APF处理器116对已产生年龄页失效的页执行失效处理。APF处理器116可包括在OS中。APF处理器116复制已产生页失效的页的内容,并将所述内容传输到自由页。MMU112可修改对应的页表,使得整个页的初始映射物理地址的虚拟地址现在映射到所述自由页的物理地址。这里提供的是示例性方法,其中,存储器分配单元114根据伙伴分配算法分配存储器。伙伴分配算法将存储器区域划分成均具有2η个页的扇区(section)并进行管理。伙伴分配算法通过将整个存储器划分成两个相等的块来搜索需要的存储器的块的大小,并确定划分的存储器的块的大小是否为需要的存储器的块的大小的合适的大小。如果划分的存储器的块的大小不是合适的存储器的大小,算法再次划分块。重复这样的操作直至划分的块的大小为需要的存储器的块的合适的大小。在被分配给搜索到的块的存储器被释放后,划分的块被合并成一个块。伙伴分配算法可根据二元树数据结构或哈希表(hashtable)数据结构来执行页分配。这里,将在释放了分配的存储器之后将被合并的两个相等的块可被认为彼此互为伙伴。作为示例,下面提供了根据二元树数据结构的伙伴分配算法。在二元树数据结构中,树的每个节点对应2n个页。如果预定的父节点对应2k个页,则该父节点的子节点对应2H个页。因此,子节点的大小是父节点的大小的一半。此外,伙伴指与伙伴系统的树上的兄弟对应的节点。每个节点包括关于该节点的信息。节点的信息可包括包含在该节点中的页数、对应的伙伴节点的标识符信息、在包含在该节点中的页中发生页失效的页的数量、该节点的子节点的标识符信息、对应的节点的父节点的标识符信息和指示在该节点上发生页划分的fn息ο当执行存储器分配时,接收关于是否需要将页排列在物理连续的空间上的信息。存在需要连续空间分配的情况,例如用于与外部装置接口连接的存储器分配。在这种情况下,如果未准备连续的存储器空间,则存储器分配会失败。在分配2k个页的情况下,在均具有2k个页的节点中搜索自由节点。如果找到包括2k个页的自由节点,则对所述自由节点执行存储器分配。因为需要的存储器的块的大小在2k个页和2H+1个页的大小之间,所以如果没有具有2k个页的节点,则具有2H个页的大小较小的节点由于在节点中没有足够的页而可能会在存储器分配过程中失败。因此,如果没有找到具有2k个页的节点,则搜索具有大于2k个页(如2k+1个页)的大小的节点,如果搜索到了,则与搜索到的节点对应的页被划分并进行存储器分配。DRAM124的耐久极限可被初始化为可由年龄信息代表的最大值(如23°_1),耐久极限的初始化可在每次启动时发生。如果在存储器分配单元114执行存储器分配期间在NVRAM122中发生页失效,则APF处理器116标记在二元树上的包括发生页失效的页的所有节点。即,位于二元树上的发生页失效的节点及该节点的上面的节点或先辈(ancestor)均被标记。可通过将可包括在节点信息中的发生页失效的页的数量增加1来实现标记操作。存储器分配单元114防止发生页失效的页被分配。如果需要分配与特定大小对应的连续存储器空间,则存储器分配单元114可防止被标记的节点被分配。如果不需要分配连续存储器空间,则搜索标记的节点的下面的节点,可将未被标记的下面的节点用于存储器分配。当OS启动时,可读取存储在非易失性存储器130中的黑名单。可由存储器分配单元114执行所述读取。例如,存储器分配单元114可以以与在二元树上标记包括发生页失效的页的所有节点的方式相同的方式来标记黑名单中注册的页及与所述页的先辈对应的二元节点。然后,当对连续空间执行存储器分配时,不使用标记的节点。如上所述,根据示例性实施例,NVRAM122的页表可包括指示每个页的损耗的年龄信息,每当在页上写入数据时,可更新每个页的年龄信息。这可被用于防止在NVRAM122被用作主存储器时出现坏页和系统崩溃(systemcrash)。图2示出了示例性页表的结构。页表可以具有层级结构(hierarchicalstructure),例如,一层、两层、三层或更多。ARMv6CPU包括称为页目录的层1页表和称为粗页表(coarsepagetable)的层2页表。在图2中,层1页表的项标记为Llpte,层2页表的项标记为L2pte。例如,层1页表的项可包括1MB大小的扇区和16MB大小的超级扇区(supersection)的管理信息。层1页表的项可包括关于层2页表的位置的信息,层2页表的项可包括包含在层1页表中的每个页的管理信息。在传统的32位处理器(其中,一pte为32位(bit))中,当提供耐久极限为107的NVRAM时,年龄字段需要最少24位。根据一方面,可通过增加32位的年龄字段,将每个页表的项扩展至64位,而无需修改现存的Llpte和L2pte的构造。在这种情况下,由于向Llpte和L2pte中的每个添加了32位的年龄字段,因此与传统方法相比,页表的大小翻倍。例如,页表结构可包括层1页表,层1页表以超级扇区为单位管理对应于虚拟地址的物理地址。超级扇区比页单位大。层2页表以页为单位管理对应于虚拟地址的物理地址。在这种情况下,层1页表的项的年龄信息Llpte#lage可包括每个超级扇区允许的写入操作的剩余次数。属于超级扇区的所有页可具有相同的年龄信息。层2页表的项的年龄信息(如L2pte#lage)可包括对应的页L2pte#l允许的写入操作的剩余次数。页表结构可包括层2页表,所述层2页表包括以页为单位对应于虚拟地址的物理地址的信息。层1页表指示层2页表的项的位置。在这种情况下,层2页表的项可包括以页为单位的写入操作的剩余次数。通过将指示NVRAM的寿命的值存储到NVRAM的页表的项中,并在每当在NVRAM的页上写入数据时减小所述值,当NVRAM被用作需要允许更多次的写入操作的主存储器时,可以更有效地管理NVRAM的损耗。图3A示出了当不共享页时的示例性年龄字段,图3B示出了当多个程序共享页时的示例性年龄字段;图3A示出当页A仅被程序“foo”使用时页A的页表的项。在图3A中,包括在页表的项中的年龄信息L2pte#lage代表页A允许的写入操作的剩余次数。当年龄信息被分配为32位时,一些位可被分配给指示年龄信息自身的值的标识符信息。在图3A中,最低的2位“11”代表指示年龄信息自身的值的标识符信息。图3B示出了页A的页表的项,其中,页A被两个程序“foo”和“bar”共享。当页被两个或两个以上的程序共享时,该页允许进行的写入操作的剩余次数不是存储在对应的页表的项中,而是存储在存储器的另一位置。在这种情况下,页的年龄信息不指示该页允许进行的写入操作的剩余次数,而是包括指示存储器地址的指针信息,其中,写入操作的剩余次数存储在所述存储器地址中。在图3B中,最低两位“00”被用作标识符信息。标识符信息表示页表的项的年龄信息是指示存储器位置的指针,所述存储器位置存储对应的页A的写入操作的实际剩余次数。被程序“foo”和“bar”使用的页表的项的年龄信息L2pte#lage为指示存储器的指针信息,所述存储器存储页A的写入操作的实际剩余次数。页表的项可包括指示包括在页表的项中的值的标识符信息。标识符信息用于区分页表的项是否包括指示存储年龄信息的另一存储器的位置的指针信息,或用于区分年龄信息是否存储于当前页。如图3A和图3B所示,标识符信息的类型可由年龄字段最低的两位的值表示。年龄字段最低两位的值指示年龄字段最高30位是否为指示存储写入操作的剩余次数的指针信息,或最高30位是否包括写入操作的剩余次数。例如,如果最低两位的值是00,这可用于指示写入操作的剩余次数存储在页上,或写入操作的剩余次数存储在存储器的另一位置。如果页由两个或两个以上的程序共享,则页的年龄信息可包括指示存储年龄信息的另一存储器的指针信息,如果页由一个程序使用,则页的年龄信息可为所述年龄信息本身。如果由两个或两个以上的程序共享的页不再被共享,控制器110的MMU112可寻找存储在由指针信息指示的另一存储器中的年龄信息,并将所述信息复制到该页的页表的项的年龄字段中。此外,如果没有被共享的页被两个或两个以上的程序共享,则MMU112可将该页的年龄字段的值复制到另一存储器的预定位置中。MMU112可将指示被复制的位置的指针信息写入到该页的年龄字段中。图4示出了存储器装置的示例性损耗平均方法。在存储器装置中,页表可包括映射NVRAM的虚拟地址和所述NVRAM的物理地址的映射信息。页表可存储关于每页的损耗的信息。存储器装置可为图1中的存储器装置100。在操作410中,数据通过存储器分配而写入到预定的页中。在操作420中,存储在所述页的年龄字段中的写入操作的剩余次数被减小1。在操作430中,确定写入操作的剩余次数是否为0。如果写入操作的剩余次数不为0,可将更多的数据写入该页。如果在操作430中,确定写入操作的剩余次数为0,则该页已达到耐久极限,因此,在操作440中,该页被认为并处理为失效页。管理被认为是失效页的页,从而不再向其中写入数据。图5是示出处理存储器分配时产生的页失效的示例性方法的流程图。例如,可以通过图1中的存储器装置100执行所述方法。在操作510中,确定页失效已发生,在操作512中,APF处理器116标记所有发生页失效的节点,例如在二元树上的先辈节点。在操作514中,确定处于页失效的页是否对应于需要分配连续空间的页。如果在操作514中,处于页失效的页与连续空间的页对应,则在操作516中,APF处理器116搜索可以分配连续空间的另一自由节点,在操作518中,将搜索并找到的自由节点的页重新分配。包括任何发生年龄页失效的页的节点都被从存储器分配中排除。发生年龄页失效的页和包括所述页的节点被全部标记,当搜索自由节点时,跳过被标记的节点,从而不选择具有页失效的页。在操作520中,存储在连续空间中的内容被复制到重新分配的页中。在失效页的内容被复制到重新分配的页中并执行页的重新分配之后,在操作528中,MMU112修改对应的页表以指示重新分配的页。如果在操作514中,处于页失效的页不与需要分配连续空间的页对应,则在操作522中,APF处理器116搜索另一自由节点,在操作524中,找到的自由页被重新分配。在操作526中,失效页的内容被复制到对应于找到的节点的自由页中。在失效页的内容被复制到自由页中并执行页的重新分配之后,在操作528中,MMU112修改对应的页表以指示重新分配的页。根据上述示例,提供了一种用于非易失性随机存取存储器(NVRAM)的损耗补偿方法。因为NVRAM可提供有限次数的写入操作,例如,与DRAM相比,可使用损耗平均来防止存储器失效并延长NVRAM的工作寿命。上述方法可被记录、存储或固定在一个或一个以上的计算机可读的存储介质中,所述介质包括由计算机实现的程序指令以使处理器执行或完成程序指令。所述介质还可包括,单独的或与程序指令结合的数据文件、数据结构等。计算机可读的介质的例子包括磁介质(如硬盘、软盘和磁带);光学介质(如CDROM盘和DVD);磁光介质(如光盘);为存储和执行程序指令而特别构造的硬件装置,如只读存储器(ROM)、随机存取存储器(RAM)、闪存等。程序指令的例子包括机器代码(如由编译器产生的)和含有可由计算机利用解释器执行的更高级的代码的文件。上述硬件装置可被构造为以一个或一个以上的软件模块运行,以执行上述操作和方法,或者反之亦然。此外,计算机可读介质可分散到通过网络连接的计算机系统中,计算机可读代码或程序指令可以以分散方式存储并执行。存储器装置可包括闪存装置和/或存储器控制器。例如,可使用诸如层叠封装(POP)、球栅阵列(BGA)、芯片级封装(CPS)、塑料引线芯片载体(PLCC)、塑料双列直插封装(PDIP)、窝伏尔组件芯片(DieinWafflePack)、晶圆形式芯片、板上芯片(COB)、陶瓷双列直插封装(CERDIP)、塑料公制四方扁平封装(MQFP)、四方扁平封装(QFP)、小外形集成电路(SOIC)、缩小外形封装(SSOP)、薄小外形封装(TSOP)、薄型四方扁平封装(TQFP)、系统级封装(SIP)、多芯片封装(MCP)、晶圆级制造封装(WFP)、晶圆级堆叠封装(WSP)等封装件来实现闪存装置和/或存储器控制器。闪存装置和/或存储器控制器可包括存储卡。在这种情况下,存储器控制器可被构造为与例如主机的外部装置通信,例如使用诸如通用串行总线(USB)、多媒体卡(MMC)、外部组件互连扩展(PCI-E)、串行高级技术附件(SATA)、并行高级技术附件(PATA)、小型计算机系统接口(SCSI)、增强小型装置接口(ESDI)和集成驱动电子设备(IDE)的各种类型的接口协议中的任一种的主机。上面已经描述了一些示例性实施例。然而,应该理解的是,可以作出各种修改。例如,如果以不同的顺序执行所述技术和/或如果所述系统、构造、装置或电路中的组件以不同的方式结合和/或通过其它组件或它们的等同物来替换或增补,则可以达到合适的结构。因此,其它的实施在权利要求的范围内。权利要求一种存储器装置,包括存储器,包括非易失性随机存取存储器;控制器,控制所述存储器,其中,控制器管理页表,所述页表包括将非易失性随机存取存储器的虚拟地址映射到非易失性随机存取存储器的物理地址的映射信息,所述页表的项包括指示非易失性随机存取存储器的对应页的损耗的年龄信息。2.如权利要求1所述的存储器装置,其中,年龄信息指示所述对应页允许的写入操作的剩余次数,每当在所述对应页上写入数据时,控制器将该页允许的写入操作的剩余次数减小1。3.如权利要求1所述的存储器装置,所述存储器装置还包括由控制器控制的非易失性存储器,其中,当电源断开时,控制器将每页的年龄信息存储在所述非易失性存储器中,在启动时恢复存储在所述非易失性存储器中的每个页的年龄信息,并根据每个页的年龄信息对存储器执行存储器分配,其中,年龄信息指示对应页允许的写入操作的剩余次数。4.如权利要求3所述的存储器装置,其中,控制器注册并管理黑名单,黑名单包括作为不再使用的页的一个或一个以上的损耗页的信息,在电源断开时控制器将黑名单存储在所述非易失性存储器中,并在启动时恢复存储在所述非易失性存储器中的黑名单,其中,损耗页指已执行的写入操作的次数等于或超过阈值的页。5.如权利要求1所述的存储器装置,其中,如果对已经在页上执行的写入操作的次数等于或超过阈值的所述页执行写入操作,则控制器产生页失效,将该页的内容复制到自由页,修改对应于该页的页表,从而使该页的虚拟地址映射到该自由页的物理地址。6.如权利要求1所述的存储器装置,其中,如果对已经在页上执行的写入操作的次数等于或超过阈值的所述页执行写入操作,则控制器产生页失效,并防止对该页执行存储器分配。7.如权利要求6所述的存储器装置,其中,控制器根据基于二元树数据结构的伙伴分配算法来执行存储器分配,如果在存储器分配过程中在二元树数据结构上的节点处发生页失效,则控制器标记该节点和该节点的至少一个上面的节点。8.如权利要求7所述的存储器装置,其中,如果基于至少一个节点的大小请求页分配并需要分配连续空间,则控制器防止与标记的节点对应的页被分配。9.如权利要求1所述的存储器装置,其中,页表包括层1页表和层2页表,层1页表以超级扇区为单位来管理与虚拟地址对应的物理地址,层2页表以页为单位管理与虚拟地址对应的物理地址,超级扇区单位大于页单位。10.如权利要求9所述的存储器装置,其中,层1页表包括关于每个超级扇区允许的写入操作的剩余次数的信息,层2页表包括关于每个页允许的写入操作的剩余次数的信息。11.如权利要求1所述的存储器装置,其中,页表包括以页为单位映射虚拟地址和物理地址的层2页表及指示层2页表的位置的层1页表,其中,层2页表包括关于每个页允许的写入操作的剩余次数的信息。12.如权利要求1所述的存储器装置,其中,页表的项包括标识符信息,所述标识符信息指示页表是否包括指示存储年龄信息的存储器的位置的指针信息。13.如权利要求12所述的存储器装置,其中,如果页由两个或两个以上的程序共享,则页表的项包括指示存储该共享的页的年龄信息的存储器位置的指针信息,如果页仅由一个程序使用,则页表的项包括由一个程序使用的页的年龄信息。14.如权利要求13所述的存储器装置,其中,当被两个或两个以上程序共享的页停止被共享时,存储在存储器中的对应该页的年龄信息被复制到该页表的该页的年龄字段。15.如权利要求12所述的存储器装置,其中,如果先前没有被共享的页变为由两个或两个以上的程序共享,则该页表的该页的年龄字段的值被复制到存储器的一定位置,指示该位置的指针信息被存储到该页的年龄字段中。16.一种存储器装置的损耗平均方法,所述存储器装置包括存储器和控制器,所述存储器包括非易失性随机存取存储器,控制器控制所述存储器,其中,由与该非易失性随机存取存储器对应的控制器管理的页表包括映射非易失性随机存取存储器的虚拟地址和非易失性随机存取存储器的物理地址的映射信息,页表的项包括指示对应页的损耗的年龄信息,所述方法包括如下步骤在页上写入数据;响应于在页上的写入步骤而将写入操作的剩余次数减小1,写入操作的剩余次数由与该页对应的页表的项中提供的年龄信息来指示。17.如权利要求16所述的方法,所述方法还包括如下步骤当电源断开时,将每个页的年龄信息存储在非易失性存储器中;在启动时恢复存储在非易失性存储器中的每个页的写入操作的剩余次数;基于被恢复的写入操作的剩余次数来执行存储器分配。18.如权利要求16所述的方法,所述方法还包括如下步骤将写入操作的剩余次数已达阈值的损耗页注册在黑名单中,并管理该黑名单。19.如权利要求16所述的方法,其中,当对所述页执行的写入操作的次数等于或超过阈值时,所述方法还包括如下步骤产生页失效;将该页的内容复制到自由页中;修改页表,使得该页的虚拟地址被映射到该自由页的物理地址。20.如权利要求16所述的方法,其中,所述方法还包括基于年龄信息来执行存储器分配的步骤,其中,执行存储器分配的步骤包括如下步骤如果对页上允许的写入操作次数已达到或超过阈值的页执行写入操作,则产生页失效并防止该页被分配。21.如权利要求20所述的方法,其中,执行存储器分配的步骤包括根据伙伴分配算法来执行存储器分配,所述伙伴分配算法根据二元树数据结构执行页分配,如果在执行存储器分配时在二元树数据结构上的节点处产生页失效,则所述方法还包括如下步骤标记该节点和该节点的至少一个上面的节点;确定是否需要基于所述至少一个上面的节点的大小的页分配及是否需要连续空间的分配,其中,如果需要基于所述至少一个上面的节点的大小的页分配且需要连续空间的分配,则与所述标记的节点对应的页被从存储器分配中排除。22.如权利要求16所述的方法,其中,页表包括指示页表的项是否包括指示存储年龄信息的存储器的位置的指针信息或页表的项是否包括年龄信息的标识符信息。23.如权利要求22所述的方法,其中,如果页由两个或两个以上的程序共享,则页表的项包括指示存储该共享页的年龄信息的存储器的位置的指针信息,如果页仅由一个程序使用,则页表的项包括该页的年龄信息。全文摘要本发明公开了一种包括NVRAM和页表的存储器装置以及该装置的损耗平均方法。页表包括将NVRAM的虚拟地址映射到NVRAM的物理地址的映射信息。页表的项包括指示对应页的损耗的年龄信息。年龄信息可为对应的页允许的写入操作的剩余次数。每当在页上写入数据时,该页允许的写入操作的剩余次数被减小。文档编号G06F12/02GK101799784SQ20101010576公开日2010年8月11日申请日期2010年2月4日优先权日2009年2月10日发明者李美真,金弘国,黄珠荣申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1