CN101675479A - 损耗均衡 - Google Patents
损耗均衡 Download PDFInfo
- Publication number
- CN101675479A CN101675479A CN200880014680.5A CN200880014680A CN101675479A CN 101675479 A CN101675479 A CN 101675479A CN 200880014680 A CN200880014680 A CN 200880014680A CN 101675479 A CN101675479 A CN 101675479A
- Authority
- CN
- China
- Prior art keywords
- memory
- memory location
- allocate
- relevant
- location
- 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.)
- Granted
Links
Images
Classifications
-
- 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
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
可在存储器装置中指定参考存储器位置。可响应于在所述存储器装置中存储数据而指定存储器位置。如果所识别的存储器位置与所述参考存储器位置相关联,则可将经分配存储器位置指定为与所述参考存储器位置相关,且可均衡所述经分配存储器位置。
Description
技术领域
本发明涉及损耗均衡。
背景技术
存储器装置(例如快闪存储器装置)的存储器单元最终可因重复编程及擦除而损耗。为延长存储器装置的总体寿命,可通过损耗均衡以相似速率对存储器装置的可寻址区段(例如块或页)进行编程及/或擦除。损耗均衡确保存储器装置的存储器单元均匀地损耗,例如,存储器单元的编程及/或擦除在存储器装置的整个寿命内针对所有存储器单元以相似速率发生。损耗均衡通常包含对不频繁地改变的存储器位置中所存储的数据与频繁改变的存储器位置中所存储的数据的交换,或不频繁地改变为未经分配存储器块的存储器块中所存储的数据的移动。因此,存储器单元的均匀损耗可防止存储器装置的过早故障。
发明内容
本文中揭示损耗均衡的系统及方法。在一个实施方案中,可在存储器装置中指定参考存储器位置,且可响应于在所述存储器装置中存储数据来识别存储器位置。如果所识别的存储器位置与所述参考存储器位置相关联,则识别与所述参考存储器位置相关的经分配存储器位置,且均衡所述经分配存储器位置。
在另一实施方案中,可做出关于是否均衡与所指定的参考存储器位置相关的经分配存储器位置的确定。如果确定均衡经分配存储器位置,则可分配与经分配存储器位置相关的未经分配存储器位置以存储经分配存储器位置中所存储的数据,且可将经分配存储器位置解除分配。可将经指定参考存储器位置重新指定为与经解除分配的存储器相关。
在另一实施方案中,可识别与参考存储器位置相关的第一经分配存储器位置,且还可识别与所述经分配存储器位置相关的未经分配存储器位置。可分配所述未经分配存储器位置以存储所述第一经分配存储器位置中所存储的数据,且可将所述第一经分配存储器位置解除分配。可识别与经解除分配的存储器位置相关的存储器位置,且可将所识别的存储器位置指定为参考存储器位置。
在另一实施方案中,存储器装置可包括:存储器阵列,其包括界定存储器块的存储器单元;及存储器驱动器,其经配置以界定均衡定位符及空闲块定位符。所述存储器驱动器还可经配置以参考由所述均衡定位符及空闲块定位符所指示的相应存储器块,且确定所述空闲块定位符是否与所述均衡定位符相关联。在得到肯定确定后,存储器驱动器可识别相应于均衡定位符的已利用存储器块,且均衡所述已利用存储器块。
附图说明
图1是实例性计算机装置的方块图。
图2到图6是实施损耗均衡的存储器装置架构的图表。
图7是用于损耗均衡的实例性过程的流程图。
图8是用于均衡经分配存储器的实例性过程的流程图。
图9是用于识别存储器位置以进行损耗均衡的实例性过程的流程图。
图10是用于确定是否损耗均衡存储器位置的实例性过程的流程图。
图11是损耗均衡的另一实例性过程的流程图。
具体实施方式
图1是实例性计算机系统100的方块图。系统100包含处理器102、数据存储系统104及通信系统106。举例来说,组件102、104及106中的每一者均可由系统总线108来连接。处理器102可处理数据存储系统104中所存储或经由通信系统106而接收的指令。可将各种不同的通用或专用计算系统配置实施为计算机系统100,例如个人计算机、服务器计算机、手持式或膝上型装置、便携式通信装置、可编程消费者电子装置、游戏系统、多媒体系统等等。
举例来说,数据存储系统104可包含易失性存储器装置,例如随机存取存储器(RAM),且/或可包含非易失性存储器装置,例如只读存储器(ROM)及/或快闪存储器。还可使用其它易失性及非易失性存储器装置。举例来说,数据存储系统104可存储操作系统及可由处理器102执行的一个或一个以上应用程序,以及与所述操作系统及/或所述应用程序相关联的数据。
通信系统106可经由有线或无线通信链路传输及接收数据。举例来说,通信子系统106可包含支持一个或一个以上通信协议(例如电气与电子工程师协会(IEEE)802.x系列协议(例如以太网、令牌网、无线局域网、无线个人局域网等等)或某一其它有线或无线通信协议)的通信装置。
数据存储系统104可包含存储器驱动器110及非易失性存储装置112,例如快闪存储器装置。举例来说,存储器驱动器110可包含用以促进对非易失性存储装置112的控制及存取的软件及/或硬件。举例来说,存储器驱动器110可利用逻辑到物理寻址转译以用于读取及写入操作。显示且针对以下的图2描述利用逻辑到物理映射的实例性存储器装置架构。
在一个实施方案中,存储器驱动器110与非易失性存储装置112可集成在同一衬底114或装置上。在另一实施方案中,存储器驱动器110与非易失性存储装置112可处在单独的衬底或装置上,例如,存储器驱动器110可实施于计算机系统100内的软件及/或硬件中,且与实施非易失性存储装置112的衬底或装置分离。
图2是存储器装置架构200的方块图。存储器装置架构200可包含逻辑阵列220、逻辑到物理映射阵列240及物理阵列260。映射阵列240可界定由逻辑阵列220所界定的逻辑地址到由物理阵列260所界定的物理地址的映射。举例来说,映射阵列240可将逻辑阵列220的m个块位置动态地映射到物理阵列260的n个块位置。在某些实施方案中,每一逻辑阵列240块(例如块Lx,其中x=0...m-1)一经分配则对应于经映射物理阵列块(例如块Py,其中y=0...n-1)。在某些实施方案中,m<n以确保用于损耗均衡的未经分配存储器位置在物理阵列260中可用。然而,还可使用其它实施方案,其中m=n或m>n。
在一个实施方案中,物理阵列260可由非易失性存储器装置(例如快闪存储器装置)来实现。然而,还可使用其它存储器装置。
映射阵列240及物理阵列260可分别具有相关联的存储器分配旗标242及262。举例来说,存储器分配旗标242及262可指示与每一存储器分配旗标相关联的每一块的内容是有效(例如所存储数据的当前分配的块)还是无效(例如可含有过期数据、经擦除数据或可另外识别为未经分配存储器块的当前未经分配块)。举例来说,如图2中所示,逻辑阵列220当前界定至少三个地址(例如块Lc、Ld及Le)中所存储的数据。将逻辑阵列220块Lc、Ld及Le映射到映射阵列240所界定的对应物理阵列260块P0、P1及P2。物理阵列260块P0、P1及P2中的每一者均存储由所抽取的数据符号d表示的数据。
物理阵列260的存储器单元最终可因重复编程及擦除而损耗。另外,物理阵列260的某些块可不是很经常地被编程或擦除,且因此物理阵列260中的其它块更经常地被编程及擦除。为延长物理阵列260的总体寿命,可通过损耗均衡以相似的速率对块P0...Pn-1进行编程及/或擦除。损耗均衡确保块P0...Pn-1均匀地损耗,例如对块P0...Pn-1的编程及/或擦除在物理阵列260的整个寿命内针对所有块以相似速率发生。
在实施方案中,可在物理阵列260中指定参考存储器位置。举例来说,所述参考存储器位置可由存储所述参考存储器位置的位置(例如块PO的地址PO)的均衡指针LP来指定。可在物理阵列260中指定另一所识别存储器位置,例如当前有资格接收供存储的数据(例如未经分配存储器位置)的存储器位置。举例来说,所识别存储器位置可由存储所识别存储器位置的地址的空闲块指针FBP来指定。举例来说,在存储器装置初始化(例如整个快闪存储器的清除)后,均衡指针LP及空闲块指针FBP可参考相同存储器位置,例如物理阵列260中的块PO。
当数据存储在物理阵列260中时,在空闲块指针FBP所参考的存储器块处开始存储所述数据。在存储数据之后,空闲块指针FBP递增以识别有资格接收供存储的数据的下一存储器位置。举例来说,如图2中所示,在初始化之后,将数据d写入到逻辑阵列220中的地址块Lc、Ld及Le所界定的逻辑地址。第一写入操作在逻辑地址Le处存储数据;由于空闲块指针FBP在物理阵列中参考存储器块PO以用于所述第一写入操作,因此将数据存储在物理阵列的块PO处,如标签“块P0:d”所指示。映射表240将块P0的地址存储在与逻辑地址Le相关联的表条目中,且分别将映射表240及物理阵列260的对应存储器分配旗标242及262设置为1。可将空闲块指针FBP递增到物理阵列260中的下一可用存储器块,例如块P1。
在又几次写入操作(例如分别到逻辑地址Lc及Ld的写入)之后,空闲块指针FBP参考物理层260中的存储器块P3。所述过程继续以进行每一随后的写入操作,且空闲块指针FBP遍及物理阵列260递增。最终,空闲块指针FBP遍历整个物理阵列260,此时空闲块指针FBP与均衡指针LP参考相同存储器位置,例如物理阵列260中的块P0。
在某些实施方案中,在空闲块指针FBP的每一递增之后,过程确定空闲块指针FBP所参考的所识别存储器位置是否与均衡指针LP所参考的参考存储器位置相关联。举例来说,过程可确定空闲块指针FBP是等于还是已递增超过均衡指针LP。举例来说,可由界定物理阵列260的存储器装置上的硬件及/或软件逻辑实施方案(例如闪存卡上的控制电路)或可由外部装置(例如存储器驱动器装置中的硬件及/或软件逻辑实施方案)来做出所述确定。
举例来说,如图3中所示,空闲块指针已被递增n倍且因此现在将第一块P0的地址存储在物理阵列260中,例如在初始化之后向物理阵列260的第n次存储器块写入之后,空闲块指针FBP中所存储的地址滚动到物理阵列260的初始地址P0。然而,应注意,在向物理阵列260的第n次存储器块写入之后,物理阵列260可能具有未经分配存储器块。举例来说,到物理阵列260的第n次写入与逻辑地址Le中数据的存储相关。如图2中所示,逻辑地址Le最初被映射到物理阵列260中的存储器块P0;然而,第n次写入导致逻辑地址Le被映射到物理阵列260中的存储器块Pn-1。因此,当块P0中所存储的数据不再被映射到逻辑地址时,将块P0解除分配。存储器块P0的经解除分配的状态由设置为0的对应存储器分配旗标262来指示。
在某些实施方案中,如果由空闲块指针FBP参考的所识别存储器位置与均衡指针LP参考的参考存储器位置相关联,则可执行损耗均衡操作。在一个实施方案中,损耗均衡包含识别与参考存储器位置相关的经分配存储器位置。举例来说,如图3中所示,可通过遍及物理阵列260递增均衡指针LP直到识别具有已设置分配旗标260的存储器块来识别经分配存储器位置。因此,图3中的均衡指针LP从参考存储器位置块P0递增到块P2,块P2是与参考存储器位置P0相关的第一经分配存储器位置。
可接着指定未经分配存储器位置以存储经分配存储器位置中所存储的数据。在某些实施方案中,可例示另一指针以识别未经分配存储器位置。举例来说,如图4中所示,例示空闲均衡指针FLP并将其设置为等于均衡指针LP。接着遍及物理阵列260递增空闲均衡指针FLP直到识别具有已清除的分配旗标260的存储器块。因此,图4中的空闲均衡指针FLP从经分配存储器位置块P2递增到块P4,块P4是与经分配存储器位置P2相关的第一未经分配存储器位置。
因此,均衡指针LP及空闲均衡指针FLP识别待均衡的存储器块(例如块P2)及待均衡的块中当前存储的数据的目的地(例如块P4)。图5描绘在将物理阵列260的存储器块P2中所存储的数据移动到存储器块P4之后的映射。归因于数据移动,存储器块P2的分配旗标262得以清除,且存储器块P4的分配旗标262得以设置。另外,以逻辑块P4的地址来更新映射阵列240中的逻辑块Lc的映射。
在一个实施方案中,在将经分配存储器位置(例如存储器块P2)中所存储的数据移动到未经分配存储器位置(例如存储器块P4)之后,可将均衡指针LP设置为空闲均衡指针FLP的值,如图5中所指示,且可将空闲均衡指针FLP解除分配。然而,还可将均衡指针LP设置为其它值。举例来说,在一个实施方案中,可将均衡点LP设置到在空闲均衡指针FLP所参考的存储器位置之后发生的第一未经分配存储器位置;在另一实施方案中,均衡点LP可保持设置到先前分配的存储器位置(例如图5中的块P2);或可设置为某一其它值。
一旦损耗均衡过程完成,系统即可如先前描述继续写入逻辑及物理块。在某些实施方案中,当空闲块指针FBP第二后续次等于或递增超过均衡指针LP时,将发生另一均衡操作,因为空闲块指针FBP值很有可能在损耗均衡操作之后的均衡指针LP值之后不远,且因此在相对小数目的写入操作之后可能再次相等。
在某些实施方案中,可在均衡指针LP的存储器位置参考之后将空闲块指针FBP设置到第一未经分配存储器位置。因此,损耗均衡可在空闲块指针FBP再次等于或递增超过均衡指针LP时发生。
在某些实施方案中,每当空闲块指针FBP的值等于或递增超过均衡指针LP的值时,过程即可确定是否要执行损耗均衡操作。举例来说,可由界定物理阵列260的存储器装置上的硬件及/或软件逻辑实施方案(例如闪存卡上的控制电路)或可由外部装置(例如存储器驱动器装置中的硬件及/或软件逻辑实施方案)来做出所述确定。
在一个实施方案中,损耗均衡条件的发生可引起损耗均衡操作。举例来说,在一个实施方案中,损耗均衡条件可在每次空闲块指针FBP值等于或递增超过均衡指针LP值时发生;在另一实施方案中,损耗均衡条件可在每m次空闲块指针FBP值等于或递增超过均衡指针LP值时发生。
还可使用其它损耗均衡条件,例如损耗均衡过程的延迟执行直到期间用户过程可不要求处理资源的时间,例如在关断或启动过程期间;等等。在一个实施方案中,如果均衡指针LP与空闲块指针FBP相等,则操作系统可标记用于交换的存储器块并反转所述存储器块直到执行均衡过程。在另一实施方案中,如果均衡指针LP与空闲块指针FBP相等,则操作系统可标记用于交换的存储器块;然而,如果在均衡过程开始之前已移动经标记以用于进行均衡的存储器块或将其标记为未经分配,则可取消均衡过程。
在某些实施方案中,均衡指针LP与空闲均衡指针FLP可组合为单个指针。还可使用其它存储器块分配及解除分配资源,例如可使用另一表(例如分配表)来代替上文描述的指针及分配旗标。
还可使用其它均衡实施方案。举例来说,在均衡操作期间可均衡数个存储器块。如图6中所示,空闲块指针FBP最初参考物理阵列260中的最后存储器块Pn-1;在执行写入操作且将数据存储在物理阵列260存储器块Pn-1中之后,将空闲块指针FBP递增到下一未经分配存储器块,例如存储器块P1,且因此递增超过均衡指针LP,从而触发均衡操作。然而,图6的均衡操作将存储器位置(例如存储器位置P2及P3)的相连块移动到两个未经分配存储器位置,例如存储器块P4及P5。
在某些实施方案中,在均衡操作期间可均衡数个非相连存储器块,例如可损耗均衡经分配存储器的下q个块,等等。在某些实施方案中,特定的存储器块可免于损耗均衡,例如识别为故障块的存储器块;或可用作系统数据的固定位置的存储器块P0。
图7是损耗均衡的实例性过程700的流程图。举例来说,实例性过程700可实施于非易失性存储装置112中或与非易失性存储装置112相关联的存储器驱动器110中或某一其它硬件及/或软件存储器资源中。
阶段702在存储器装置中指定参考存储器位置。举例来说,非易失性存储装置112或与非易失性存储装置112相关联的存储器驱动器110可将均衡指针LP与存储器位置相关联以将存储器位置指定为参考存储器位置。
阶段704响应于在存储器装置中存储数据来识别存储器位置。举例来说,非易失性存储装置112或与非易失性存储装置112相关联的存储器驱动器110可响应于在存储器装置中存储数据而将空闲块指针FBP与存储器位置相关联。
阶段706确定所识别存储器位置是否与参考存储器位置相关联。举例来说,非易失性存储装置112或与非易失性存储装置112相关联的存储器驱动器110可确定空闲块指针FBP是等于还是已递增超过均衡指针LP。
如果阶段706确定所识别存储器位置不与参考存储器位置相关联,则过程返回到阶段704。然而,如果阶段706确定所识别存储器位置与参考存储器位置相关联,则阶段708识别与参考存储器位置相关的经分配存储器位置。举例来说,非易失性存储装置112或与非易失性存储装置112相关联的存储器驱动器110可将均衡指针LP递增到第一经分配存储器位置,举例来说,例如图3的存储器块P2。
阶段708均衡经分配存储器位置。举例来说,非易失性存储装置112或与非易失性存储装置112相关联的存储器驱动器110可将第一经分配存储器位置中所存储的数据移动到未经分配存储器位置。
图8是均衡经分配存储器的实例性过程800的流程图。举例来说,实例性过程800可实施于非易失性存储装置112中或与非易失性存储装置112相关联的存储器驱动器110中或某一其它硬件及/或软件存储器资源中。
阶段802识别与经原始分配的存储器位置相关的第一未经分配存储器位置。举例来说,非易失性存储装置112或与非易失性存储装置112相关联的存储器驱动器110可从均衡指针LP的地址递增空闲均衡指针FLP以识别未经分配存储器位置。
阶段804分配第一未经分配存储器位置以存储所述经原始分配的存储器位置中所存储的数据。举例来说,非易失性存储装置112或与非易失性存储装置112相关联的存储器驱动器110可将数据存储在由空闲均衡指针指向的未经分配存储器位置中并将对应的分配旗标262设置为1,即,可将所述经原始分配的存储器位置中所存储的数据移动到未经分配存储器位置,且因此未经分配存储器位置的状态可变为经分配存储器位置。
阶段806将经原始分配的存储器位置解除分配。举例来说,非易失性存储装置112或与非易失性存储装置112相关联的存储器驱动器110可对在均衡过程期间将数据从其移动到0的经原始分配的存储器位置的对应分配旗标进行设置,从而将经原始分配的存储器位置解除分配。
阶段808指定与经解除分配的存储器位置相关的参考存储器位置。举例来说,非易失性存储装置112或与非易失性存储装置112相关联的存储器驱动器110可将均衡指针LP从经解除分配的存储器位置递增到另一存储器位置。
图9是用于识别存储器位置以用于损耗均衡的实例性过程900的流程图。举例来说,实例性过程900可实施于非易失性存储装置112中或与非易失性存储装置112相关联的存储器驱动器110中或某一其它硬件及/或软件存储器资源中。
阶段902使每一存储器位置与对应的存储器分配旗标相关联。举例来说,非易失性存储装置112或与非易失性存储装置112相关联的存储器驱动器110可使物理阵列260中的每一存储器位置与存储器分配旗标262相关联。
阶段904识别与指示经分配存储器位置的存储器分配旗标相关联的存储器位置。举例来说,非易失性存储装置112或与非易失性存储装置112相关联的存储器驱动器110可识别具有设置为1的分配旗标262的存储器位置并将均衡点LP设置为等于所识别存储器位置的地址。
阶段906识别与指示未经分配存储器位置的存储器分配旗标相关联的存储器位置。举例来说,非易失性存储装置112或与非易失性存储装置112相关联的存储器驱动器110可识别具有设置为0的分配旗标262的存储器位置并将空闲均衡点FLP设置为等于所识别存储器位置的地址。
图10是用于确定是否损耗均衡存储器位置的实例性过程1000的流程图。举例来说,实例性过程1000可实施于非易失性存储装置112中或与非易失性存储装置112相关联的存储器驱动器110中或某一其它硬件及/或软件存储器资源中。
阶段1002响应于在存储器装置中存储数据来识别存储器位置。举例来说,非易失性存储装置112或与非易失性存储装置112相关联的存储器驱动器110可响应于在存储器装置中存储数据而将空闲块指针与存储器位置相关联。
阶段1004确定所识别存储器位置是否与参考存储器位置相关联。举例来说,非易失性存储装置112或与非易失性存储装置112相关联的存储器驱动器110可确定空闲块指针FBP是等于还是已递增超过均衡指针LP。
如果阶段1004确定所识别存储器位置不与参考存储器位置相关联,则过程返回到阶段1002。然而,如果阶段1004确定所识别存储器位置与参考存储器位置相关联,则阶段1006确定是否满足损耗均衡条件。举例来说,非易失性存储装置112或与非易失性存储装置112相关联的存储器驱动器110可确定是否已发生上文描述的损耗均衡条件中的一者或一者以上。
如果阶段1006确定不满足损耗均衡条件,则过程返回到阶段1002。然而,如果阶段1006确定满足损耗均衡条件,则阶段1008执行损耗均衡过程。举例来说,非易失性存储装置112或与非易失性存储装置112相关联的存储器驱动器110可执行上文描述的损耗均衡过程中的一者。
图11是损耗均衡的实例性过程1100的流程图。举例来说,实例性过程1000可实施于非易失性存储装置112中或与非易失性存储装置112相关联的存储器驱动器110中或某一其它硬件及/或软件存储器资源中。
阶段1102识别与参考存储器位置相关的第一经分配存储器位置。举例来说,非易失性存储装置112或与非易失性存储装置112相关联的存储器驱动器110可从均衡指针LP的当前地址递增均衡指针LP以识别经分配存储器位置。阶段1104识别与第一经分配存储器位置相关的未经分配存储器位置。举例来说,非易失性存储装置112或与非易失性存储装置112相关联的存储器驱动器110可将空闲均衡指针FLP从经递增均衡指针LP的当前地址递增以识别未经分配存储器位置。
阶段1106分配未经分配存储器位置以存储第一经分配存储器位置中所存储的数据。举例来说,非易失性存储装置112或与非易失性存储装置112相关联的存储器驱动器110可将数据存储在由空闲均衡指针所指向的未经分配存储器位置中并将对应的分配旗标262设置为1。
阶段1108将第一经分配存储器位置解除分配。举例来说,非易失性存储装置112或与非易失性存储装置112相关联的存储器驱动器110可对在均衡过程期间将数据从其移动到0的存储器位置的对应分配旗标进行设置。
阶段1110识别与经解除分配的存储器位置相关的存储器位置。举例来说,非易失性存储装置112或与非易失性存储装置112相关联的存储器驱动器110可识别由空闲均衡指针FLP所参考的存储器位置或从空闲均衡指针FLP递增的第一未经分配存储器位置。
阶段1112将所识别存储器位置指定为参考存储器位置。举例来说,非易失性存储装置112或与非易失性存储装置112相关联的存储器驱动器110可将均衡指针LP设置到在阶段1110中所识别的存储器位置的地址。
上文的图2到图11描述块级处的均衡。对于其中以页为基础进行写入操作的存储器装置,可在写入操作递增到下一物理块上时更新映射表240和指针。类似地,上述过程可适于包含顺序寻址方案的任何存储器架构。
本专利文件中所描述的设备、方法、流程图及结构方块图可实施于包含程序代码的计算机处理系统中,所述程序代码包括可由计算机处理系统执行的程序指令。还可使用其它实施方案。另外,本专利文件中所描述的流程图及结构方块图描述支持所揭示的结构构件的步骤及对应功能的特定方法及/或对应行为,所述流程图及结构方块图还可用于实施对应的软件结构及算法及其等效结构及算法。
此书面说明阐述了本发明的最佳模式且提供了描述本发明且使所属领域的技术人员能够做出及使用本发明的实例。此书面说明不将本发明限于所阐述的确切术语。因此,尽管已参照上述实例详细描述了本发明,但所属领域的技术人员可在不背离本发明的范围的情况下,实现对所述实例的更改、修改及改变。
Claims (27)
1、一种方法,其包括:
在存储器装置中指定参考存储器位置;
响应于在所述存储器装置中存储数据来识别存储器位置;
确定所述所识别存储器位置是否与所述参考存储器位置相关联;
如果所述所识别存储器位置与所述参考存储器位置相关联,则:
识别与所述参考存储器位置相关的经分配存储器位置;及
均衡所述经分配存储器位置。
2、根据权利要求1所述的方法,其中均衡所述经分配存储器位置包括:
识别与所述经分配存储器位置相关的第一未经分配存储器位置;
分配所述第一未经分配存储器位置以存储所述经分配存储器位置中所存储的数据;及
将所述经分配存储器位置解除分配。
3、根据权利要求2所述的方法,其包括:
指定与所述经解除分配的存储器位置相关的所述参考存储器位置。
4、根据权利要求1所述的方法,其中识别存储器位置包括:
响应于在所述存储器装置中存储数据而顺序地识别存储器位置。
5、根据权利要求1所述的方法,其中确定所识别存储器位置是否与所述参考存储器位置相关联包括:
确定所述所识别存储器位置是否等于所述参考存储器位置。
6、根据权利要求1所述的方法,其中所述存储器装置包括快闪存储器装置。
7、根据权利要求3所述的方法,其中指定与所述经解除分配的存储器位置相关的所述参考存储器位置包括:
指定与所述经解除分配的存储器位置的位置相关的下一顺序的经分配存储器位置。
8、根据权利要求3所述的方法,其中指定与所述经解除分配的存储器位置相关的所述参考存储器位置包括:
指定与所述经解除分配的存储器位置的所述位置相关的下一顺序的未经分配存储器位置。
9、根据权利要求2所述的方法,其包括:
使每一存储器位置与对应的存储器分配旗标相关联。
10、根据权利要求9所述的方法,其中识别与所述参考存储器位置相关的经分配存储器位置包括:
识别与指示经分配存储器位置的存储器分配旗标相关联的存储器位置。
11、根据权利要求9所述的方法,其中识别与所述经分配存储器位置相关的第一未经分配存储器位置包括:
识别具有指示未经分配存储器位置的存储器分配旗标的存储器位置。
12、根据权利要求1所述的方法,其中识别与所述参考存储器位置相关的经分配存储器位置包括:
递增与所述参考存储器位置相关联的指针。
13、根据权利要求12所述的方法,其中均衡所述经分配存储器位置包括:
基于所述指针均衡分配存储器位置。
14、一种方法,其包括:
确定是否均衡经分配存储器位置,其中所述经分配存储器位置与经指定参考存储器位置相关;
如果确定要均衡所述经分配存储器位置,则:
分配与所述经分配存储器位置相关的未经分配存储器位置以存储所述经分配存储器位置中所存储的数据;
将所述经分配存储器位置解除分配;及
重新指定与所述经解除分配的存储器位置相关的所述经指定参考存储器位置。
15、根据权利要求14所述的方法,其中确定是否均衡经分配存储器位置包括:
响应于在所述存储器装置中存储数据来识别存储器位置;及
确定所识别存储器位置是否与所述经指定参考存储器位置相关联。
16、根据权利要求15所述的方法,其包括:
递增与所述经指定参考存储器位置相关联的计数器;及
基于所述计数器均衡分配存储器位置。
17、根据权利要求15所述的方法,其中确定所识别存储器位置是否与所述经指定参考存储器位置相关联包括:
确定所述所识别存储器位置是否等于所述经指定参考存储器位置。
18、一种方法,其包括:
识别与参考存储器位置相关的第一经分配存储器位置;
识别与第一经分配存储器位置相关的未经分配存储器位置;
分配所述未经分配存储器位置以存储所述第一经分配存储器位置中所存储的数据;
将所述第一经分配存储器位置解除分配;
识别与所述经解除分配的存储器位置相关的存储器位置;及
将所述所识别存储器位置指定为所述参考存储器位置。
19、根据权利要求18所述的方法,其中识别与所述经解除分配的存储器位置相关的存储器位置包括:
识别与所述经解除分配的存储器位置相关的未经分配存储器位置。
20、根据权利要求18所述的方法,其中识别与所述经解除分配的存储器位置相关的存储器位置包括:
识别与所述经解除分配的存储器位置相关的经分配存储器位置。
21、一种存储器装置,其包括:
存储器阵列,其包括界定存储器块的存储器单元;及
存储器控制电路,其经配置以:
界定均衡定位符及空闲块定位符;
参考所述均衡定位符及空闲块定位符所指示的相应存储器块;
确定所述空闲块定位符是否与所述均衡定位符相关联;及
在得到肯定确定后,识别相应于所述均衡定位符的已利用存储器块;及
均衡所述已利用存储器块。
22、根据权利要求21所述的存储器装置,其中所述存储器控制电路经配置以:
界定相应于所述已利用存储器块的空闲均衡定位符;及
分配与所述空闲均衡定位符相关联的所述存储器块以存储所述已利用存储器块中所存储的数据;及
将与所述已利用存储器块相关联的所述存储器块解除分配。
23、根据权利要求22所述的存储器装置,其中所述存储器控制电路经配置以:
重新界定关于所述经解除分配的存储器块的所述均衡定位符。
24、根据权利要求21所述的存储器装置,其中每一存储器单元与对应的存储器分配旗标相关联。
25、根据权利要求21所述的存储器装置,其中所述存储器装置包括快闪存储器。
26、根据权利要求21所述的存储器装置,其中所述存储器阵列与存储器驱动器处在同一衬底上。
27、一种系统,其包括:
用于识别与参考存储器位置相关的第一经分配存储器位置的构件;
用于识别与第一经分配存储器位置相关的未经分配存储器位置的构件;
用于分配所述未经分配存储器位置以存储所述第一经分配存储器位置中所存储的数据的构件;
用于将所述第一经分配存储器位置解除分配的构件;及
用于识别与所述经解除分配的存储器位置相关的存储器位置的构件;及
用于将所述所识别存储器位置指定为所述参考存储器位置的构件。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/743,974 US7689762B2 (en) | 2007-05-03 | 2007-05-03 | Storage device wear leveling |
US11/743,974 | 2007-05-03 | ||
PCT/US2008/062520 WO2008137755A1 (en) | 2007-05-03 | 2008-05-02 | Wear leveling |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101675479A true CN101675479A (zh) | 2010-03-17 |
CN101675479B CN101675479B (zh) | 2013-06-12 |
Family
ID=39940390
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880014680.5A Expired - Fee Related CN101675479B (zh) | 2007-05-03 | 2008-05-02 | 存储装置损耗均衡 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7689762B2 (zh) |
CN (1) | CN101675479B (zh) |
DE (1) | DE112008001126B4 (zh) |
TW (1) | TWI442228B (zh) |
WO (1) | WO2008137755A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102981971A (zh) * | 2012-12-25 | 2013-03-20 | 重庆大学 | 一种快速响应的相变存储器损耗均衡方法 |
CN103218177A (zh) * | 2013-04-19 | 2013-07-24 | 杭州电子科技大学 | 具有数据均衡处理功能的NAND Flash存储系统 |
CN103425588A (zh) * | 2012-05-18 | 2013-12-04 | 慧荣科技股份有限公司 | 数据储存装置和快闪存储器的区块管理方法 |
CN103902463A (zh) * | 2012-12-31 | 2014-07-02 | 杨威锋 | 基于闪存的存储设备的高速物理地址分配的技术 |
CN106601294A (zh) * | 2015-10-16 | 2017-04-26 | 爱思开海力士有限公司 | 数据储存设备及其操作方法 |
CN113906397A (zh) * | 2019-05-16 | 2022-01-07 | 美光科技公司 | 用于媒体码字的区域分组的码字轮换 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100185806A1 (en) * | 2009-01-16 | 2010-07-22 | Arvind Pruthi | Caching systems and methods using a solid state disk |
US8230159B2 (en) * | 2009-03-27 | 2012-07-24 | Lsi Corporation | System, method, and computer program product for sending logical block address de-allocation status information |
US20100250830A1 (en) * | 2009-03-27 | 2010-09-30 | Ross John Stenfort | System, method, and computer program product for hardening data stored on a solid state disk |
US8090905B2 (en) * | 2009-03-27 | 2012-01-03 | Sandforce, Inc. | System, method, and computer program product for converting logical block address de-allocation information in a first format to a second format |
US8671258B2 (en) | 2009-03-27 | 2014-03-11 | Lsi Corporation | Storage system logical block address de-allocation management |
US8051241B2 (en) * | 2009-05-07 | 2011-11-01 | Seagate Technology Llc | Wear leveling technique for storage devices |
US20100318719A1 (en) * | 2009-06-12 | 2010-12-16 | Micron Technology, Inc. | Methods, memory controllers and devices for wear leveling a memory |
US9792074B2 (en) * | 2009-07-06 | 2017-10-17 | Seagate Technology Llc | System, method, and computer program product for interfacing one or more storage devices with a plurality of bridge chips |
US8539139B1 (en) | 2010-12-17 | 2013-09-17 | Teradota Us, Inc. | Managing device wearout using I/O metering |
US9477590B2 (en) * | 2011-09-16 | 2016-10-25 | Apple Inc. | Weave sequence counter for non-volatile memory systems |
US20130097403A1 (en) * | 2011-10-18 | 2013-04-18 | Rambus Inc. | Address Mapping in Memory Systems |
JP6055544B2 (ja) * | 2013-06-03 | 2016-12-27 | 株式会社日立製作所 | ストレージ装置およびストレージ装置制御方法 |
WO2017048228A1 (en) | 2015-09-14 | 2017-03-23 | Hewlett Packard Enterprise Development Lp | Memory location remapping and wear-levelling |
US10157141B2 (en) | 2016-03-09 | 2018-12-18 | Toshiba Memory Corporation | Memory system and method of controlling nonvolatile memory |
US20170286311A1 (en) * | 2016-04-01 | 2017-10-05 | Dale J. Juenemann | Repetitive address indirection in a memory |
US10884889B2 (en) | 2018-06-22 | 2021-01-05 | Seagate Technology Llc | Allocating part of a raid stripe to repair a second raid stripe |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5537552A (en) * | 1990-11-27 | 1996-07-16 | Canon Kabushiki Kaisha | Apparatus for selectively comparing pointers to detect full or empty status of a circular buffer area in an input/output (I/O) buffer |
US6230233B1 (en) | 1991-09-13 | 2001-05-08 | Sandisk Corporation | Wear leveling techniques for flash EEPROM systems |
US5404485A (en) | 1993-03-08 | 1995-04-04 | M-Systems Flash Disk Pioneers Ltd. | Flash file system |
US5930815A (en) * | 1995-07-31 | 1999-07-27 | Lexar Media, Inc. | Moving sequential sectors within a block of information in a flash memory mass storage architecture |
GB2317720A (en) | 1996-09-30 | 1998-04-01 | Nokia Mobile Phones Ltd | Managing Flash memory |
US5956473A (en) | 1996-11-25 | 1999-09-21 | Macronix International Co., Ltd. | Method and system for managing a flash memory mass storage system |
US6000006A (en) | 1997-08-25 | 1999-12-07 | Bit Microsystems, Inc. | Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage |
US5937425A (en) | 1997-10-16 | 1999-08-10 | M-Systems Flash Disk Pioneers Ltd. | Flash file system optimized for page-mode flash technologies |
KR100297986B1 (ko) | 1998-03-13 | 2001-10-25 | 김영환 | 플래쉬 메모리 셀 어레이의 웨어 레벨링 시스템 및 웨어 레벨링 방법 |
GB9903490D0 (en) | 1999-02-17 | 1999-04-07 | Memory Corp Plc | Memory system |
US6427186B1 (en) | 1999-03-30 | 2002-07-30 | Frank (Fong-Long) Lin | Memory, interface system and method for mapping logical block numbers to physical sector numbers in a flash memory, using a master index table and a table of physical sector numbers |
US6732221B2 (en) | 2001-06-01 | 2004-05-04 | M-Systems Flash Disk Pioneers Ltd | Wear leveling of static areas in flash memory |
US6877088B2 (en) | 2001-08-08 | 2005-04-05 | Sun Microsystems, Inc. | Methods and apparatus for controlling speculative execution of instructions based on a multiaccess memory condition |
US20030058681A1 (en) | 2001-09-27 | 2003-03-27 | Intel Corporation | Mechanism for efficient wearout counters in destructive readout memory |
GB0123412D0 (en) * | 2001-09-28 | 2001-11-21 | Memquest Ltd | Memory system sectors |
US20030163633A1 (en) * | 2002-02-27 | 2003-08-28 | Aasheim Jered Donald | System and method for achieving uniform wear levels in a flash memory device |
US6862674B2 (en) | 2002-06-06 | 2005-03-01 | Sun Microsystems | Methods and apparatus for performing a memory management technique |
KR100453053B1 (ko) | 2002-06-10 | 2004-10-15 | 삼성전자주식회사 | 플래쉬 메모리용 파일 시스템 |
KR100484147B1 (ko) | 2002-07-26 | 2005-04-18 | 삼성전자주식회사 | 플래시 메모리 관리 방법 |
US7035967B2 (en) | 2002-10-28 | 2006-04-25 | Sandisk Corporation | Maintaining an average erase count in a non-volatile storage system |
US6973531B1 (en) | 2002-10-28 | 2005-12-06 | Sandisk Corporation | Tracking the most frequently erased blocks in non-volatile memory systems |
US7096313B1 (en) | 2002-10-28 | 2006-08-22 | Sandisk Corporation | Tracking the least frequently erased blocks in non-volatile memory systems |
ATE372578T1 (de) | 2002-10-28 | 2007-09-15 | Sandisk Corp | Automatischer abnutzungsausgleich in einem nicht- flüchtigen speichersystem |
US6985992B1 (en) | 2002-10-28 | 2006-01-10 | Sandisk Corporation | Wear-leveling in non-volatile storage systems |
CA2414632A1 (en) | 2002-12-18 | 2004-06-18 | Logicvision, Inc. | Method and circuit for collecting memory failure information |
US20050055495A1 (en) * | 2003-09-05 | 2005-03-10 | Nokia Corporation | Memory wear leveling |
US7139863B1 (en) | 2003-09-26 | 2006-11-21 | Storage Technology Corporation | Method and system for improving usable life of memory devices using vector processing |
US7441067B2 (en) * | 2004-11-15 | 2008-10-21 | Sandisk Corporation | Cyclic flash memory wear leveling |
US7315917B2 (en) * | 2005-01-20 | 2008-01-01 | Sandisk Corporation | Scheduling of housekeeping operations in flash memory systems |
US20060161724A1 (en) * | 2005-01-20 | 2006-07-20 | Bennett Alan D | Scheduling of housekeeping operations in flash memory systems |
US20060256623A1 (en) | 2005-05-12 | 2006-11-16 | Micron Technology, Inc. | Partial string erase scheme in a flash memory device |
JP4688584B2 (ja) | 2005-06-21 | 2011-05-25 | 株式会社日立製作所 | ストレージ装置 |
US7853749B2 (en) * | 2005-09-01 | 2010-12-14 | Cypress Semiconductor Corporation | Flash drive fast wear leveling |
JP2007133683A (ja) * | 2005-11-10 | 2007-05-31 | Sony Corp | メモリシステム |
US20070150644A1 (en) * | 2005-12-28 | 2007-06-28 | Yosi Pinto | System for writing non-volatile memories for increased endurance |
US20070208904A1 (en) * | 2006-03-03 | 2007-09-06 | Wu-Han Hsieh | Wear leveling method and apparatus for nonvolatile memory |
-
2007
- 2007-05-03 US US11/743,974 patent/US7689762B2/en active Active
-
2008
- 2008-05-02 CN CN200880014680.5A patent/CN101675479B/zh not_active Expired - Fee Related
- 2008-05-02 WO PCT/US2008/062520 patent/WO2008137755A1/en active Application Filing
- 2008-05-02 TW TW097116411A patent/TWI442228B/zh not_active IP Right Cessation
- 2008-05-02 DE DE112008001126.5T patent/DE112008001126B4/de not_active Expired - Fee Related
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103425588A (zh) * | 2012-05-18 | 2013-12-04 | 慧荣科技股份有限公司 | 数据储存装置和快闪存储器的区块管理方法 |
US9223691B2 (en) | 2012-05-18 | 2015-12-29 | Silicon Motion, Inc. | Data storage device and method for flash block management |
CN103425588B (zh) * | 2012-05-18 | 2017-03-01 | 慧荣科技股份有限公司 | 数据储存装置和快闪存储器的区块管理方法 |
CN102981971A (zh) * | 2012-12-25 | 2013-03-20 | 重庆大学 | 一种快速响应的相变存储器损耗均衡方法 |
CN102981971B (zh) * | 2012-12-25 | 2016-06-08 | 重庆大学 | 一种快速响应的相变存储器损耗均衡方法 |
CN103902463A (zh) * | 2012-12-31 | 2014-07-02 | 杨威锋 | 基于闪存的存储设备的高速物理地址分配的技术 |
CN103218177A (zh) * | 2013-04-19 | 2013-07-24 | 杭州电子科技大学 | 具有数据均衡处理功能的NAND Flash存储系统 |
CN106601294A (zh) * | 2015-10-16 | 2017-04-26 | 爱思开海力士有限公司 | 数据储存设备及其操作方法 |
CN113906397A (zh) * | 2019-05-16 | 2022-01-07 | 美光科技公司 | 用于媒体码字的区域分组的码字轮换 |
US11720502B2 (en) | 2019-05-16 | 2023-08-08 | Micron Technology, Inc. | Codeword rotation for zone grouping of media codewords |
Also Published As
Publication number | Publication date |
---|---|
WO2008137755A1 (en) | 2008-11-13 |
CN101675479B (zh) | 2013-06-12 |
DE112008001126B4 (de) | 2018-07-12 |
US7689762B2 (en) | 2010-03-30 |
TW200900927A (en) | 2009-01-01 |
US20080276035A1 (en) | 2008-11-06 |
DE112008001126T5 (de) | 2010-03-25 |
TWI442228B (zh) | 2014-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101675479B (zh) | 存储装置损耗均衡 | |
US20230048550A1 (en) | Method for managing a memory apparatus | |
US5568423A (en) | Flash memory wear leveling system providing immediate direct access to microprocessor | |
US8745618B2 (en) | Cache partitioning with a partition table to effect allocation of ways and rows of the cache to virtual machine in virtualized environments | |
CN106354656B (zh) | 用于存储管理的方法和系统 | |
CN102054533B (zh) | 隔离顺序、随机和系统数据以减少垃圾回收的针对基于页映射的非易失性半导体存储器 | |
KR102137761B1 (ko) | 이종 통합 메모리부 및 그것의 확장 통합 메모리 스페이스 관리 방법 | |
CN101923516B (zh) | 以区块为基础的快闪存储装置及其操作方法 | |
JP2021128582A (ja) | メモリシステムおよび制御方法 | |
CN101551780B (zh) | 一种电视机及其数据存储方法、装置 | |
US20110252215A1 (en) | Computer memory with dynamic cell density | |
CN101281493A (zh) | 与非闪存器及其管理方法 | |
CN104750559A (zh) | 跨多节点的存储器资源的池化 | |
WO2009096180A1 (ja) | メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム | |
CN105144120A (zh) | 基于存储器地址将来自高速缓存行的数据存储到主存储器 | |
US20170270050A1 (en) | Memory system including memory device and operation method thereof | |
CN108701024A (zh) | 用于在堆栈机器中分配虚拟寄存器堆栈的方法 | |
CN105988875A (zh) | 一种运行进程的方法及装置 | |
CN102203737B (zh) | 多线程访问多副本的方法和装置 | |
US7913003B2 (en) | Reclaim algorithm for fast edits in a nonvolatile file system | |
CN109634516B (zh) | 一种芯片存储器的读、写数据方法及系统 | |
CN115794417A (zh) | 内存管理方法及装置 | |
CN114327246B (zh) | 存储介质内数据存储方法、存储介质及计算机设备 | |
JP2023107418A (ja) | ストレージデバイスおよびストレージシステム | |
CN113778688A (zh) | 内存管理系统、内存管理方法、内存管理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130612 Termination date: 20180502 |