CN104011689B - 非易失性存储器损耗管理 - Google Patents
非易失性存储器损耗管理 Download PDFInfo
- Publication number
- CN104011689B CN104011689B CN201180074632.7A CN201180074632A CN104011689B CN 104011689 B CN104011689 B CN 104011689B CN 201180074632 A CN201180074632 A CN 201180074632A CN 104011689 B CN104011689 B CN 104011689B
- Authority
- CN
- China
- Prior art keywords
- memory cell
- memory
- metadata
- behalf
- status
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/349—Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开的实施例公开了用于存储器损耗管理的装置。装置包括:非易失性存储器阵列;以及与所述非易失性存储器阵列耦合的存储器控制器。所述存储器控制器被配置用来:从主机接收存储器访问请求,所述存储器访问请求被指向所述非易失性存储器阵列的存储单元;访问在所述存储单元中的元数据,所述元数据包括与所述存储单元有关的状态信息;以及基于所述状态信息确定是否关于所述存储单元执行所述存储器访问请求的存储器访问。本公开的其它实施例还公开了用于存储器损耗管理的方法和系统。
Description
技术领域
本公开的实施例一般地涉及存储器管理领域,并且更具体地,涉及非易失性存储器中的损耗管理。
背景技术
损耗均衡是一种用于防止非易失性存储器特定区域过度循环的存储器管理技术。损耗均衡通常包括在存储器访问中使用的逻辑至物理地址映射中被引用的在动态随机存取存储器(DRAM)中的大间接寻址表(indirection table)的建立和维护。尽管这种类型的存储器管理可以有效地防止过度循环,其也需要相当大的固件复杂性。
发明内容
在一个实施例中,公开了用于存储器损耗管理的装置。装置包括:非易失性存储器阵列;以及与所述非易失性存储器阵列耦合的存储器控制器。所述存储器控制器被配置用来:从主机接收存储器访问请求,所述存储器访问请求被指向所述非易失性存储器阵列的存储单元;访问在所述存储单元中的元数据,所述元数据包括与所述存储单元有关的状态信息;以及基于所述状态信息确定是否关于所述存储单元执行所述存储器访问请求的存储器访问。
在另一实施例中,公开了用于存储器损耗管理的方法。方法包括以下操作:确定非易失性存储器阵列的存储单元的循环计数超出预定的阈值;以及在存储单元处存储的元数据中写入指示所述存储单元的代理状态的状态信息以及指针,所述指针提供对所述非易失性存储器阵列的代理存储单元的引用,所述写基于所述确定所述循环计数超出所述预定的阈值。
在又一实施例中,公开了用于存储器损耗管理的系统。系统包括:非易失性存储器阵列;被配置用来发出包括逻辑地址和访问命令的存储器访问请求的主机;与所述主机和所述非易失性存储器阵列耦合的存储器控制器。所述存储器控制器被配置用来:映射所述逻辑地址至所述非易失性存储器阵列的第一存储单元的物理地址;访问存储在所述第一存储单元的元数据;以及基于所述元数据,确定是否关于所述第一存储单元执行所述访问命令。
附图说明
结合附图通过以下详细描述,实施例将容易理解。为了便于这种描述,类似的附图标记代表类似的结构元素。实施例通过示例而不通过限制在附图的图中来描述。
图1描述了依照某些实施例的设备。
图2(a) – 2(c)描述了依照某些实施例的多种存储格式。
图3是依照某些实施例描述存储器访问操作的流程图。
图4是依照某些实施例描述维护操作的流程图。
图5描述了依照某些实施例的系统。
具体实施方式
在以下详细描述中参考附图,附图构成本文的一部分,遍及附图中类似的附图标记代表类似的部件,并且在附图中通过示例示出可以被实施的实施例。要明白的是,其它实施例也可以被利用并且结构或逻辑可以被改变而不背离本公开的范围。因此,以下详细描述不应当被理解成限制的意思,并且实施例的范围由所附的权利要求书及其等同物定义。
各种操作可以用最容易帮助理解所要求保护主题的方式被描述为多个离散的动作或依次的操作。但是,描述的顺序不应该被解释为暗示这些操作必须依赖于顺序。特别地,这些操作可以不按照介绍的顺序执行。所描述的操作可以用与所述实施例不同的顺序执行。各种额外操作可以被执行和/或描述的操作可以在额外实施例中被省略。
为了本公开的目的,短语“A和/或B”意味着(A)、(B)、或(A和B)。为了本公开的目的,短语“A、B和/或C”意味着(A)、(B)、(C)、(A和B)、(A和C)、(B和C)、或(A、B和C)。
说明书可以使用短语“在一个实施例中”、或“在多个实施例中”,其可以每个指向一个或多个相同或不同实施例。此外,术语“包括”、“包含”、“具有”以及类似,如结合本公开实施例所使用的,是同义的。
各种实体可以被引入并结合它们执行的操作被描述。要明白的是这些实体可以包括被合作配置以提供所述操作的硬件、软件和/或固件元素。
本公开的实施例描述了用于非易失性存储器的损耗管理,其提供非易失性存储器的高利用区域的有针对性的管理。如将要被展示的,这种有针对性的管理可以被提供而不须维护DRAM中的大间接寻址表。在某些实施例中,该有针对性的管理可以通过在每个存储单元中存储元数据而被提供,该元数据指示存储单元是处于代理状态还是非代理状态。
图1描述了依照某些实施例的设备100。设备100可以包括与存储器控制器108耦合的主机104,存储器控制器108又与非易失性存储器112耦合。
非易失性存储器112可以包括,例如相变存储器阵列,其可以包括相变存储器和开关(PCMS)阵列。PCMS存储器,具体地,具有高写循环耐久性,其平均损耗相对低于其它类型的非易失性存储器。但是,仍然有存储器特定区域过度循环的实例,例如,由恶意软件导致。因此,利用有针对性的损耗管理,而不是在DRAM中提供利用大间接寻址表的一般损耗均衡管理,可能对PCMS存储器系统特别有用。
尽管所描述的实施例可讨论如PCMS存储器的非易失性存储器112,在其它实施例中,该非易失性存储器112可以是其它类型的非易失性存储器,例如,NAND闪速存储器。
主机104可以是实体,例如,应用、操作系统等,其生成存储器访问请求并且传送该存储器访问请求至存储器控制器108。如在此所用,存储器访问请求可以是用于存储器访问的请求,例如,读、写等,通过存储器控制器108引导该请求至该非易失性存储器112。
基于该存储器访问请求,存储器控制器108可以访问该非易失性存储器112。该存储器控制器108可以如将要描述的那样使非易失性存储器112的高利用区域管理与非易失性存储112的访问集成。
图2(a) – 2(c)描述了依照某些实施例的存储格式,其可以促进非易失性存储器112的高利用区域的有针对性管理。图2(a)描述了被划分成多个相邻用户存储单元的非易失性存储器阵列112的部分204,该多个相邻用户存储单元例如用户1、用户2、...、用户N。图2(b)描述了用户存储单元208例如用户1的存储格式。存储单元208包括元数据212和批量数据216。在某些实施例中,该元数据212和批量数据216可以被独立地编码为单独错误校正码(ECC)码字。
图2(c)描述了依照某些实施例的元数据212的格式。该元数据212可以包括状态信息220、指针(PTR)224、循环计数(CC)228、以及ECC 232。状态信息220可以指示存储单元208的存储状态。在某些实施例中,由状态信息220标识的存储状态可以包括空状态、在场状态、离开状态、以及交换状态。
空状态可以指示在这个位置没有直接映射的存储单元,例如,存储单元的物理地址没有被映射至任何逻辑地址。该空状态可以被用于备用位置,其对用户逻辑空间是不可见的。
在场状态可以指示该存储单元存储(或将要存储)数据,如预计要被存储的批量数据。预计数据可以是主机104与直接映射到存储单元的物理地址的逻辑地址关联的数据。在时间零时,所有的直接映射的存储单元都可以处于这种在场状态。
离开状态可以指示存储单元的预计数据已经被重定位至另一个存储单元。因此,因此在存储单元中处于离开状态的批量数据是无效的。
交换状态可以指示存储单元的预计数据已经与另一个存储单元的预计数据相互交换。
离开状态和交换状态可以被看作代理状态,而在场状态可以被看作非代理状态。
在状态信息220指示该存储单元208处于代理状态的事件中,指针224可以引用存储(或者要存储)该存储单元208的预计数据的另一个存储单元。指针224可以是另一存储单元的物理地址或可以被用于确定物理地址的某些其它信息。
循环计数228可以指示存储单元208已经经历的写循环数量。这可以被用于标识如将要在下面描述的高利用以及低利用存储单元。
ECC 232可以是被用于保护元数据212的信息的错误校正码的检查位(或校验位)。
图3是依照某些实施例的描述可以由例如存储器控制器108执行的访问操作的流程图300。在块304,该访问操作可以包括例如从主机104接收存储器访问请求。该存储器访问请求可以是读请求或写请求。该存储器访问请求可以包括存储器访问请求被指向的逻辑地址。
在块308,该访问操作可以包括映射逻辑地址至物理地址。在某些实施例中,块308的逻辑至物理映射可以是包括逻辑地址和常数乘法器的计算,尽管其它实施例可以使用其它映射技术。逻辑地址至物理地址的直接映射可以在设备100的整个操作过程中被保留,从而避免否则在逻辑至物理映射期间需要被引用的DRAM中的间接寻址表的建立和维护。
在块312,访问操作可以包括访问由物理地址标识的存储单元的元数据,该物理地址可以被引用为目标存储单元。访问元数据可以包括从目标存储单元中检索元数据以及,如果该元数据被编码,则解码该元数据。
在块316,访问操作可以包括确定是否执行关于目标存储单元的访问操作。这可以涉及例如通过存储器控制器108引用所访问元数据的状态信息,确定该目标存储单元是处于代理状态还是非代理状态。
在块316,如果确定该目标存储单元处于非代理状态,则访问操作可以继续在块320中执行关于目标存储单元的访问操作。如果存储器访问请求是读请求,则访问操作可以包括目标存储单元的批量数据的读,其可以接着被返回至请求实体,例如主机104,以完成该访问操作。如果存储器访问请求是写请求,则该访问操作可以包括数据的写,数据的写与该写请求包括在一起,作为目标存储单元的批量数据。如果该访问操作包括数据的写,则其还可以包括对元数据的重写以例如增加循环计数。
在块316,如果确定该目标存储单元处于代理状态,则访问操作可以继续在块324中执行关于代理存储单元的访问操作。该代理存储单元可以是由元数据中的指针引用的存储单元。如果该存储访问请求是读请求,则访问操作可以包括代理存储单元的批量数据的读,其可以接着被返回至请求实体,例如主机104,以完成该访问操作。如果存储访问请求是写请求,则访问操作可以包括数据的写,数据的写与该写请求包括在一起,作为代理存储单元的批量数据,以及访问操作可以包括在代理存储单元的元数据内的循环计数的重写。
在存储器访问请求是读请求的实施例中,目标存储单元的元数据的访问以及批量数据的访问可以是独立的操作并且如果首先确定目标存储单元处于非代理状态则仅仅后者被执行。例如,当元数据和批量数据被存储为独立码字时,这可以是有利的。但是,在某些实施例中,批量数据的访问可以与元数据的访问同时进行。在如下这些实施例中这是有利的:其中与对元数据和批量数据的连续访问相比仅仅相对小部分的存储单元处于代理状态和/或同时访问元数据以及批量数据节省了时间/资源。在元数据和批量数据被同时访问的事件中,在随后确定目标存储单元处于代理状态的事件中批量数据可以被忽略。
图4是依照某些实施例描述的存储单元维护操作的流程图400。该维护操作可以由存储器控制器108与存储单元写访问同时进行,该存储单元或者是目标存储单元或者是代理存储单元。
在块404,该维护操作可以包括确定在循环计数228中发现的循环计数是否大于预定的阈值。该预定的阈值可以对应于高利用存储单元的指示。
在某些实施例中,该预定的阈值可以是由非易失性存储器112的所有存储单元共享的公共值或其可以对于特定存储单元或一组存储单元个别化。这个值可以在设备100的整个使用寿命中是静态的或其可以基于一个或多个操作条件、过去的阈值等被动态地调整。在预定的阈值对于特定存储单元个别化的实施例中,该阈值可以被包括在存储单元的元数据中。
在块404,如果确定循环计数不大于该预定的阈值,则维护操作可以在块408结束。
在块404,如果确定循环计数大于该预定的阈值,则维护操作可以继续至块412。
在块412,通过引用存储单元的元数据的状态信息可以确定存储单元是否处于非代理状态。
在块412,如果确定存储单元不处于非代理状态,例如,处于例如离开状态或交换状态的代理状态,则维护操作可以前进至在块416中调度和执行非代理事件。在确定存储单元在写访问期间处于代理状态的事件中,该存储单元将会是与目标存储单元关联的数据被写入的代理存储单元。非代理事件可以接着包括重写代理存储单元和目标存储单元的元数据以设置状态信息来指示该存储单元处于非代理状态。非代理事件还包括拷贝代理存储单元的批量数据至目标存储单元。在之后的时间,例如,到目标存储单元的随后的写,该目标存储单元可以例如通过下面要描述的块420由低利用存储单元重新代理。
如上所述,将高利用代理存储单元非代理,以及随后重新代理该目标存储单元,可以允许维护单级间接寻址从而目标存储单元中的指针指向存储预计数据的代理存储单元。由于预计数据会在存储单元的第一或第二访问中被发现,其又可以促进遍及操作保留逻辑至物理映射。
在块412,如果确定该存储单元处于非代理状态,即在场状态,则维护操作可以前进至块420的调度和执行代理事件。代理事件可以包括重写目标存储单元和代理存储单元的元数据以将该状态信息设置为代理状态,即,离开状态或交换状态,并且指针用来引用该代理存储单元。该代理事件还包括从目标存储单元拷贝批量数据至代理存储单元。如果代理事件是设置存储单元为交换状态,则某些实施例可以使用临时存储单元以促进在正被交换的两个存储单元之间数据的互相转移。
可以通过存储器控制器维护存储单元的利用列表而促进选择存储单元以充当代理存储单元。例如,该利用列表可以包括存储单元的低利用列表,这些存储单元的循环计数小于预定阈值并且因此是充当代理存储单元的候选。在代理事件期间,代理存储单元可以从低利用列表中选择并且与目标存储单元关联。
在某些实施例中代理/非代理事件可以首先被调度并且接着在批处理过程中与为一组存储单元同时重写元数据一起被执行。为了在调度代理/非代理事件和执行代理/非代理事件之间为定时提供某些灵活性,期望将预定的阈值设置为安全地低于存储单元的最大循环计数的值。
在其它的实施例中,为存储单元调度代理/非代理事件之后可以直接是代理/非代理事件执行。
在块420中调度和执行代理事件之后,在块424维护操作可以结束。
本公开的实施例可以被实现成一种使用任何按所需配置的合适硬件和/或软件的系统。对于一个实施例,图5描述了一种示例系统500,其包括处理器504、耦合至至少一个处理器504或与至少一个处理器504集成的系统控制逻辑508、耦合至系统控制逻辑508的系统存储器512、耦合至系统控制逻辑508的非易失性存储器设备516、耦合至系统控制逻辑508的网络接口520、以及耦合至系统控制逻辑508的输入/输出设备524。
处理器504可以包括一个或多个单核或多核处理器。处理器504可以包括通用处理器和专用处理器(例如,图形处理器、应用处理器、等)的任意组合。在处理器504上执行的应用、操作系统等可以类似于主机104并且可以发出指向非易失性存储器设备516的存储器访问请求,类似于以上关于图1描述的。
用于一个实施例的系统控制逻辑508可以包括提供任何合适的接口控制器,提供该接口控制器用于到至少一个处理器504和/或到与系统控制逻辑508进行通信的任何合适的设备或组件的任何合适的接口。
用于一个实施例的系统控制逻辑508可以包括一个或多个存储器控制器,例如,存储器控制器528,以提供至系统存储器512和非易失性存储器设备516的接口。系统存储器512可被用于加载和存储数据和/或指令,例如以用于系统500。用于一个实施例的系统存储器512可以包括任何合适的易失性存储器,例如像合适的动态随机存取存储器(DRAM)。
例如,该非易失性存储器设备516可以包括一个或多个被用于存储数据和/或指令的有形、非短暂性计算机可读介质。例如,非易失性存储器设备516可以包括类似于可以以固态驱动器(SSD)方式实施的非易失性存储器112的非易失性存储器。非易失性存储器设备516还包括任何合适的非易失存储器设备,例如像一个或多个硬盘驱动器(HDD)、压缩盘(CD)驱动器和/或数字多功能盘(DVD)驱动器。
该非易失性存储器设备516可以包括物理上是设备的一部分的存储资源,系统500在该设备上被安装或者可以由该设备访问而不一定是该设备的一部分。例如,非易失性存储器设备516的一部分可以经由网络接口520在互联网上被访问。
存储器控制器528可以包括执行在本文中所述的存储器访问和维护操作的控制逻辑532。该控制逻辑532可以包括由至少一个处理器504执行以执行上述操作的指令。
用于一个实施例的系统控制逻辑508可以包括一个或多个输入/输出(I/O)控制器以提供至网络接口520和I/O设备524的接口。
网络接口520可以为系统500提供一个或多个接口以通过一个或多个网络和/或与任何其它合适的设备进行通信。网络接口520可以包括任何合适的硬件和/或固件。用于一个实施例的网络接口520可以包括,例如网络适配器、无线网络适配器、电话调制解调器和/或无线调制解调器。对于无线通信,网络接口520可以使用一个或多个天线。
对于一个实施例,至少一个处理器504可以与用于系统控制逻辑508的一个或多个控制器的逻辑封装在一起。对于一个实施例,至少一个处理器504可以与用于系统控制逻辑508的一个或多个控制器的逻辑封装在一起以形成封装中系统(SiP)。对于一个实施例,至少一个处理器504可以与用于系统控制逻辑508的一个或多个控制器的逻辑一起被集成在相同裸晶上。对于一个实施例,至少一个处理器504可以与用于系统控制逻辑508的一个或多个控制器(例如存储器控制器528)的逻辑(例如控制逻辑532)一起被集成在相同裸晶上以形成一种片上系统(SoC)封装。
I/O设备524可以包括被设计用来使用户能够与系统500交互的用户接口、被设计用来使外围部件能够与系统500交互的外围部件接口和/或被设计用来确定与系统500相关的环境条件和/或位置信息的传感器。在各种实施例中,用户接口可以包括但是不限制于,例如液晶显示器、触摸屏显示器等的显示器、扬声器、麦克风、静态照相机、视频摄影机、闪光灯(例如,发光二极管闪光灯)以及键盘。在各种实施例中,外围部件接口可以包括但是不限制于,非易失性存储器端口、音频插孔以及供电接口。在各种实施例中,传感器可以包括但是不限制于,陀螺传感器、加速度计、接近传感器、环境光传感器以及定位单元。该定位单元也可以是网络接口520的部分、或与网络接口520交互以与定位网络的部件进行通信,该定位网络例如全球定位系统(GPS)卫星。
在各种实施例中,系统500可以是移动计算设备,例如但是不限制于,膝上型计算设备、平板计算设备、上网本、智能电话等。在各种实施例中,系统500可以有或多或少的部件,和/或不同结构。
尽管为了说明的目的在此已经阐明和描述了特定实施例,但是被计算用来获得相同目的的各种广泛的备选和/或等同实施例或实施方式可用来替代示出和描述的实施例而不脱离本公开的范围。本申请意在覆盖本文中讨论的实施例的任何修改和变化。因此,明确地表示本文中描述的实施例仅由权利要求书及等同物限定。
Claims (30)
1.一种用于存储器损耗管理的装置,包括:
非易失性存储器阵列;以及
存储器控制器,与所述非易失性存储器阵列耦合并且被配置用来:
从主机接收存储器访问请求,所述存储器访问请求被指向所述非易失性存储器阵列的第一存储单元;
访问在所述第一存储单元中的元数据,所述元数据包括与所述第一存储单元有关的状态信息以及提供对第二存储单元的引用的指针;以及
基于所述状态信息确定是否关于所述第一存储单元执行所述存储器访问请求的存储器访问,
并且所述存储器控制器还被配置用来:
确定所述状态信息指示所述第一存储单元的代理状态;以及
基于所述状态信息指示代理状态的确定和所述指针,访问所述第二存储单元,
基于来自所述第二存储单元的元数据,确定所述第二存储单元的循环计数大于预定的阈值;
拷贝所述第二存储单元的批量数据至所述第一存储单元;以及
重写所述第一存储单元的元数据以包括指示所述第一存储单元的非代理状态的状态信息。
2.如权利要求1所述的装置,其中所述代理状态是:
交换状态,以指示所述第二存储单元作为用于所述第一存储单元的代理存储单元并且所述第一存储单元作为用于所述第二存储单元的代理存储单元;或
离开状态,以指示所述第二存储单元作为用于所述第一存储单元的代理存储单元。
3.如权利要求1所述的装置,其中所述存储器访问请求包括第一逻辑地址并且所述存储器控制器还被配置用来:
执行逻辑至物理映射以映射第一逻辑地址至所述第一存储单元的第一物理地址。
4.如权利要求1-3中任一项所述的装置,其中所述状态信息指示所述第一存储单元的非代理状态,并且所述存储器控制器还配置成基于所述状态信息和所述存储器访问请求来访问存储在所述第一存储单元中的批量数据。
5.如权利要求4所述的装置,其中所述元数据被存储在所述第一存储单元中的第一码字中而所述批量数据存储在所述第一存储单元中的第二码字中,并且所述存储器控制器被配置用来:
解码所述第一码字;
确定所述第一存储单元有所述非代理状态;以及
基于所述第一存储单元具有所述非代理状态的所述确定来解码所述第二码字。
6.如权利要求1-3中任一项所述的装置,其中所述状态信息指示非代理状态,并且所述存储器控制器还被配置用来:
确定与所述第一存储单元关联的循环计数大于预定的阈值;
重写所述元数据以包括指示所述第一存储单元的代理状态的状态信息,以及提供对第二存储单元的引用的指针;以及
拷贝所述第一存储单元的批量数据至所述第二存储单元。
7.如权利要求6所述的装置,其中所述存储器控制器还被配置用来:
维持循环计数小于预定阈值的存储单元的列表;以及
从所述列表中选择所述第二存储单元。
8.如权利要求6所述的装置,其中所述存储器控制器还被配置用来:
基于所述循环计数大于预定阈值的所述确定来调度所述元数据的重写和所述批量数据的拷贝;以及
同时重写存储在相应多个存储单元中的多个元数据。
9.如权利要求6所述的装置,其中所述存储器控制器还被配置用来基于所述元数据确定所述预定的阈值。
10.如权利要求1-3中任一项所述的装置,其中所述非易失性存储器阵列是相变存储器阵列。
11.一种用于存储器损耗管理的方法,包括以下操作:
确定非易失性存储器阵列的存储单元的循环计数超出预定的阈值以及所述存储单元处于非代理状态;以及
在存储单元处存储的元数据中写入指示所述存储单元的代理状态的状态信息以及指针,并将批量数据从所述存储单元拷贝到代理存储单元,所述指针提供对所述非易失性存储器阵列的所述代理存储单元的引用,所述写基于所述确定所述循环计数超出所述预定的阈值。
12.如权利要求11所述的方法,其中所述代理状态是交换状态并且所述操作还包括:
在所述代理存储单元处存储的元数据中写入指示所述代理存储单元的交换状态的状态信息以及提供对所述存储单元的引用的另一个指针。
13.如权利要求11所述的方法,其中所述操作还包括:
接收被指向所述存储单元的存储器访问请求;
从所述存储单元中检索元数据,所述元数据包括指示所述存储单元的所述代理状态的所述状态信息和所述指针;以及
基于所述存储器访问请求、所述状态信息、和所述指针访问所述代理存储单元。
14.如权利要求13所述的方法,其中所述存储器访问请求包括逻辑地址并且所述操作还包括:
映射所述逻辑地址至所述存储单元的物理地址。
15.如权利要求14所述的方法,其中所述映射是发生在所述元数据的所述写以指示所述存储单元的所述代理状态之后。
16.如权利要求13所述的方法,其中所述访问所述代理存储单元包括写数据至所述代理存储单元并且所述操作还包括:
确定所述代理存储单元的循环计数大于预定的阈值;
拷贝所述代理存储单元的数据至所述存储单元;以及
重写所述存储单元的元数据以包括指示所述存储单元的非代理状态的状态信息。
17.如权利要求11-16中任一项所述的方法,其中所述操作还包括:
从循环计数小于预定阈值的存储单元的列表中选择所述代理存储单元。
18.如权利要求11-16中任一项所述的方法,其中所述非易失性存储器阵列是相变存储器阵列。
19.一种用于存储器损耗管理的系统,包括:
非易失性存储器阵列;
主机,被配置用来发出包括逻辑地址和访问命令的存储器访问请求;
存储器控制器,与所述主机和所述非易失性存储器阵列耦合并且被配置用来:
映射所述逻辑地址至所述非易失性存储器阵列的第一存储单元的物理地址;
访问存储在所述第一存储单元的元数据,其中所述元数据包括与所述第一存储单元有关的状态信息以及提供对第二存储单元的引用的指针;以及
基于所述元数据,确定是否关于所述第一存储单元执行所述访问命令,
并且所述存储器控制器还被配置用来:
确定所述状态信息指示所述第一存储单元的代理状态;以及
基于所述状态信息指示代理状态的确定和所述指针,访问所述第二存储单元,
基于来自所述第二存储单元的元数据,确定所述第二存储单元的循环计数大于预定的阈值;
拷贝所述第二存储单元的批量数据至所述第一存储单元;以及
重写所述第一存储单元的元数据以包括指示所述第一存储单元的非代理状态的状态信息。
20.如权利要求19所述的系统,其中所述非易失性存储器阵列是相变存储器阵列。
21.如权利要求19-20中任一项所述的系统,其中所述存储器控制器的控制逻辑与片上系统(SOC)封装中的系统的处理器集成在一起。
22.一种具有关联指令的机器可读介质,所述指令在由机器执行时,导致执行根据权利要求11-18的任一项的方法。
23.一种用于存储器损耗管理的装置,包括:
用于确定非易失性存储器阵列的存储单元的循环计数超出预定的阈值以及所述存储单元处于非代理状态的部件;以及
用于在存储单元处存储的元数据中写入指示所述存储单元的代理状态的状态信息以及指针,并将批量数据从所述存储单元拷贝到代理存储单元的部件,所述指针提供对所述非易失性存储器阵列的所述代理存储单元的引用,所述写基于所述确定所述循环计数超出所述预定的阈值。
24.如权利要求23所述的装置,其中所述代理状态是交换状态并且所述装置还包括:
用于在所述代理存储单元处存储的元数据中写入指示所述代理存储单元的交换状态的状态信息以及提供对所述存储单元的引用的另一个指针的部件。
25.如权利要求23所述的装置,其中所述装置还包括:
用于接收被指向所述存储单元的存储器访问请求的部件;
用于从所述存储单元中检索元数据的部件,所述元数据包括指示所述存储单元的所述代理状态的所述状态信息和所述指针;以及
用于基于所述存储器访问请求、所述状态信息、和所述指针访问所述代理存储单元的部件。
26.如权利要求25所述的装置,其中所述存储器访问请求包括逻辑地址并且所述装置还包括:
用于映射所述逻辑地址至所述存储单元的物理地址的部件。
27.如权利要求26所述的装置,其中所述映射是发生在所述元数据的所述写以指示所述存储单元的所述代理状态之后。
28.如权利要求25所述的装置,其中所述访问所述代理存储单元包括写数据至所述代理存储单元并且所述装置还包括:
用于确定所述代理存储单元的循环计数大于预定的阈值的部件;
用于拷贝所述代理存储单元的数据至所述存储单元的部件;以及
用于重写所述存储单元的元数据以包括指示所述存储单元的非代理状态的状态信息的部件。
29.如权利要求23-28中任一项所述的装置,其中所述装置还包括:
用于从循环计数小于预定阈值的存储单元的列表中选择所述代理存储单元的部件。
30.如权利要求23-28中任一项所述的装置,其中所述非易失性存储器阵列是相变存储器阵列。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2011/059464 WO2013066357A1 (en) | 2011-11-04 | 2011-11-04 | Nonvolatile memory wear management |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104011689A CN104011689A (zh) | 2014-08-27 |
CN104011689B true CN104011689B (zh) | 2017-12-15 |
Family
ID=48192539
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180074632.7A Active CN104011689B (zh) | 2011-11-04 | 2011-11-04 | 非易失性存储器损耗管理 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9141536B2 (zh) |
CN (1) | CN104011689B (zh) |
WO (1) | WO2013066357A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013095465A1 (en) * | 2011-12-21 | 2013-06-27 | Intel Corporation | High-performance storage structures and systems featuring multiple non-volatile memories |
WO2013095530A1 (en) | 2011-12-22 | 2013-06-27 | Intel Corporation | Efficient pcms refresh mechanism background |
US9418700B2 (en) | 2012-06-29 | 2016-08-16 | Intel Corporation | Bad block management mechanism |
JP2014211849A (ja) * | 2013-04-22 | 2014-11-13 | 富士通株式会社 | ストレージ制御装置、ストレージ装置、および制御プログラム |
US20160335198A1 (en) * | 2015-05-12 | 2016-11-17 | Apple Inc. | Methods and system for maintaining an indirection system for a mass storage device |
CN107526695B (zh) * | 2016-06-20 | 2021-03-02 | 北京忆芯科技有限公司 | NVMe配置空间实现方法与装置 |
CN107291625B (zh) * | 2017-06-19 | 2020-06-09 | 济南浪潮高新科技投资发展有限公司 | 一种用于Nand Flash的指针式逻辑地址映射表实现方法 |
US10585625B2 (en) | 2018-07-12 | 2020-03-10 | Micron Technology, Inc. | Determination of data integrity based on sentinel cells |
KR102610821B1 (ko) | 2018-11-15 | 2023-12-06 | 삼성전자주식회사 | 내구성 저하를 판단하는 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법 |
KR20200071916A (ko) | 2018-12-11 | 2020-06-22 | 삼성전자주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102169727A (zh) * | 2010-12-07 | 2011-08-31 | 清华大学 | 基于随机游走的固态硬盘磨损均衡方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7366825B2 (en) * | 2005-04-26 | 2008-04-29 | Microsoft Corporation | NAND flash memory management |
KR20070034762A (ko) * | 2005-09-26 | 2007-03-29 | 삼성전자주식회사 | 유동위치 메타정보테이블을 가지는 파일시스템에서파일억세스방법 |
US7594067B2 (en) * | 2005-10-20 | 2009-09-22 | Stec, Inc. | Enhanced data access in a storage device |
TWI366828B (en) | 2007-09-27 | 2012-06-21 | Phison Electronics Corp | Wear leveling method and controller using the same |
US8239611B2 (en) * | 2007-12-28 | 2012-08-07 | Spansion Llc | Relocating data in a memory device |
US8171205B2 (en) * | 2008-05-05 | 2012-05-01 | Intel Corporation | Wrap-around sequence numbers for recovering from power-fall in non-volatile memory |
US8001318B1 (en) * | 2008-10-28 | 2011-08-16 | Netapp, Inc. | Wear leveling for low-wear areas of low-latency random read memory |
KR20110014923A (ko) * | 2009-08-06 | 2011-02-14 | 삼성전자주식회사 | 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템 |
US8838877B2 (en) * | 2009-09-16 | 2014-09-16 | Apple Inc. | File system derived metadata for management of non-volatile memory |
US9063886B2 (en) | 2009-09-18 | 2015-06-23 | Apple Inc. | Metadata redundancy schemes for non-volatile memories |
TWI399644B (zh) * | 2009-12-24 | 2013-06-21 | Univ Nat Taiwan | 非揮發記憶體區塊管理方法 |
US8954647B2 (en) * | 2011-01-28 | 2015-02-10 | Apple Inc. | Systems and methods for redundantly storing metadata for non-volatile memory |
-
2011
- 2011-11-04 US US13/991,392 patent/US9141536B2/en active Active
- 2011-11-04 WO PCT/US2011/059464 patent/WO2013066357A1/en active Application Filing
- 2011-11-04 CN CN201180074632.7A patent/CN104011689B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102169727A (zh) * | 2010-12-07 | 2011-08-31 | 清华大学 | 基于随机游走的固态硬盘磨损均衡方法 |
Also Published As
Publication number | Publication date |
---|---|
US20130268725A1 (en) | 2013-10-10 |
US9141536B2 (en) | 2015-09-22 |
CN104011689A (zh) | 2014-08-27 |
WO2013066357A1 (en) | 2013-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104011689B (zh) | 非易失性存储器损耗管理 | |
US9910786B2 (en) | Efficient redundant array of independent disks (RAID) write hole solutions | |
CN103988183B (zh) | 2级存储器分级结构中的存储器侧高速缓存的动态部分断电 | |
CN102681952B (zh) | 将数据写入存储设备的方法与存储设备 | |
CN103999038B (zh) | 用于在易失性存储器与非易失性存储器之间分布代码和数据存储的方法和设备 | |
CN103366801B (zh) | 存储器装置及其操作方法 | |
CN103946811B (zh) | 用于实现具有不同操作模式的多级存储器分级结构的设备和方法 | |
JP2019067417A (ja) | 最終レベルキャッシュシステム及び対応する方法 | |
US8281072B2 (en) | Data processing system, controller, and method thereof for searching for specific memory area | |
CN107391397A (zh) | 支持近存储器和远存储器访问的存储器通道 | |
KR101511972B1 (ko) | 계층적 캐싱 설계에서 캐시들 간 효율적 통신을 위한 방법 및 장치 | |
KR20160022226A (ko) | 이종 통합 메모리부 및 그것의 확장 통합 메모리 스페이스 관리 방법 | |
CN107533442A (zh) | 用于对异构系统存储器中的存储器功率消耗进行优化的系统和方法 | |
CN108694135A (zh) | 用于在页高速缓存中持久性地高速缓存存储数据的方法和设备 | |
KR20170012935A (ko) | 데이터 저장 장치의 작동 방법과 상기 데이터 저장 장치를 포함하는 시스템의 작동 방법 | |
US9268681B2 (en) | Heterogeneous data paths for systems having tiered memories | |
CN105408875B (zh) | 在存储器接口上的分布式过程执行和文件系统 | |
US8429339B2 (en) | Storage device utilizing free pages in compressed blocks | |
CN107408018A (zh) | 用于在固态驱动器中适应垃圾收集资源分配的机制 | |
US11347420B2 (en) | Attribute mapping in multiprotocol devices | |
US10318418B2 (en) | Data storage in a mobile device with embedded mass storage device | |
JP2013016148A (ja) | メモリコントローラ、不揮発性記憶装置 | |
CN100520736C (zh) | 在虚拟机中管理栈的设备和方法 | |
US11835992B2 (en) | Hybrid memory system interface | |
KR20170132483A (ko) | 메모리 장치의 구동 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |