CN1701309A - 非易失性存储系统中的损耗平衡 - Google Patents

非易失性存储系统中的损耗平衡 Download PDF

Info

Publication number
CN1701309A
CN1701309A CNA038247860A CN03824786A CN1701309A CN 1701309 A CN1701309 A CN 1701309A CN A038247860 A CNA038247860 A CN A038247860A CN 03824786 A CN03824786 A CN 03824786A CN 1701309 A CN1701309 A CN 1701309A
Authority
CN
China
Prior art keywords
memory element
group
erase count
data structure
memory
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
Application number
CNA038247860A
Other languages
English (en)
Other versions
CN100492322C (zh
Inventor
罗伯特·张
巴赫曼·卡瓦迈
法施德·萨伯特-沙吉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SanDisk Technologies LLC
Original Assignee
SanDisk Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SanDisk Corp filed Critical SanDisk Corp
Publication of CN1701309A publication Critical patent/CN1701309A/zh
Application granted granted Critical
Publication of CN100492322C publication Critical patent/CN100492322C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear 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)
  • Read Only Memory (AREA)

Abstract

本发明揭示在一个非易失性存储器系统中执行损耗平衡的方法和设备。根据本发明的一个方面,一种用于分配一划分为多个元件的非易失性存储器的方法包括将该等元件分为一第一组、一第二组和一第三组。所述第一组包括具有相对低损耗的擦除元件且所述第二组包括具有相对高损耗的擦除元件。所述方法还包括判定何时包括于所述第一组中的一第二元件取代包括于所述第三组中的一第一元件。将所述第一元件的内容复制到从所述第一组获得的所述第二元件中。然后擦除所述第一元件中的内容,且使所述第二元件与所述第三组相关联。使该第二元件与该第三组相关联包括基本上解除所述第一组与所述第二元件的关联。

Description

非易失性存储系统中的损耗平衡
相关申请案的交叉参考
本发明涉及标题是“AUTOMATED WEAR LEVELING INNON-VOLATILE STORAGE SYSTEMS”的共同待决的美国专利申请案第(代理人档案号码SANDP005/SDK0278.000US)号、2002年10月28日提交的标题是“TRACKING THE MOST FREQUENTLY ERASED BLOCKS INNON-VOLATILE MEMORY SYSTEMS”的共同待决的美国专利申请案第10/281,670(代理人档案号码SANDP025/SDK0366.002US)号、2002年10月28日提交的标题是“TRACKING THE LEAST FREQUENTLY ERASEDBLOCKS IN NON-VOLATILE MEMORY SYSTEMS”的共同待决的美国专利申请案第10/281,824(代理人档案号码SANDP026/SDK0366.003)号、2002年10月28日提交的标题是“METHOD AND APPARATUS FOR SPLITTING ALOGICAL BLOCK”的共同待决的美国专利申请案第10/281,631(代理人档案号码SANDP028/SDK0371.000US)号、2002年10月28日提交的标题是“METHOD AND APPARATUS FOR GROUPING PAGES WITHIN ABLOCK”的共同待决的美国专利申请案第10/281,855(代理人档案号码SANDP029/DSK0410.000US)号、2002年10月28日提交的标题是“METHODAND APPARATUS FOR RESOLVING PHYSICAL BLOCKS ASSOCIATEDWITH A COMMON LOGICAL BLOCK”的共同待决的美国专利申请案第10/281,762(代理人档案号码SANDP030/SDK0416.000US)号、美国专利第6,081,447号和美国专利第6,230,233号,其每个的全文都以引用的方式并入本文中。
技术领域
本发明通常涉及大量数字数据存储系统。更明确地说,本发明涉及允许与非易失性存储系统中的存储区域关联的损耗在大体上所有存储区域中扩展的系统和方法。
背景技术
归因于存储器系统压缩的物理尺寸和非易失性存储器可反复重编程的能力,如闪存存储系统的非易失性存储器系统的使用量在日渐增长。闪存存储系统的压缩的物理尺寸促进了这些存储系统在越来越流行的装置中的应用。使用闪存存储系统的装置包括(但不限于)数字相机、数字摄像机、数字音乐播放器、手提式个人计算机和全球定位装置。反复重编程包括于闪存存储系统中的非易失性存储器的能力使得可以使用和再使用闪存存储系统。
一般来说,闪存存储系统可包括闪存卡和闪存芯片组。闪存芯片组一般包括闪存组件和控制器组件。通常可配置闪存芯片组以装配在一个嵌入式系统中。这些装配件或主机系统的制造商通常要求组件形式的闪存(flashmemory)和其它组件,然后将闪存和其它组件装配成一个主机系统。
尽管非易失性存储器,或更具体地说,闪存系统中的闪存存储区块可以反复地进行编程和擦除,但是该区块损坏之前(即在存储器开始变小之前)每个区块或物理位置仅可擦除一定的次数。也就是说,每个区块具有一个编程和擦除循环极限。在某些存储器中,在认为区块不能使用之前可以将区块擦除接近一万次。在其他存储器中,在认为区块损坏之前可以将该区块擦除高达约十万次或者甚至一百万次。当一个区块损坏,从而导致闪存系统的整个存储容量的一部分使用量损失或性能显著下降时,闪存系统的使用者可能受到不利影响,例如丢失存储数据或不能存储数据。
在闪存系统内的区块或物理位置的损耗取决于每个区块编程的次数。如果将一个区块,更一般地说一个存储元件编程一次,然后实际上永不重编程,那么与所述区块相关联的编程和擦除循环的次数且因此损耗通常相对低些。然而,如果反复写入和擦除一个区块(例如,循环地),那么与所述区块相关联的损耗通常相对高些。因为主机(例如访问或使用闪存系统的系统)使用逻辑区块地址(LBA)访问存储在闪存系统中的数据,所以如果主机反复使用相同LBA写入和重写数据,那么闪存系统内的相同的物理位置或区块就被反复写入和擦除,其应为所属领域的技术人员所了解。
当某些区块已经实际损坏而其它区块相对未损坏时,已经损坏的区块的存在通常使闪存系统的整体性能大打折扣。除了与损坏的区块自身相关联的性能降级之外,当未损坏的不足数目的区块用于存储所要的数据时,闪存系统的整体性能也会大打折扣。通常,当闪存系统中存在有临界数目的已经损坏的区块时,即使当闪存系统中的许多其它单元相对未损坏时,就认为闪存系统已经不可用了。当认为包括相当数目的相对未损坏的区块的闪存系统已经不可用时,与该闪存系统相关联的许多资源实际上就浪费掉了。
为了增加闪存系统中的区块发生相对平均的损耗的可能性,通常执行损耗平衡操作。如所属领域的技术人员将会了解的,一般安排损耗平衡操作以允许与特定LBA相关联的物理位置或区块发生改变,使得相同的LBA不一直与相同的物理位置或区块关联。通过改变LBA的区块关联,就会使一个特定区块在其它区块损坏前而完全损坏的可能性降低。
一种常规的损耗平衡处理涉及交换用户或主机LBA的两个相对大的部分所映射到的物理位置。也就是说,交换与存储单元的相对大的区关联的LBA。通过用户的手动命令起始这个交换,例如,通过使用主机,结果使得这个交换对用户并不透明。并且,涉及在存储单元的两个相对大的区之间移动数据的交换操作耗时且因此效率低下。此外,由于消耗与整个闪存系统相关的有效资源的相对长的持续时间的交换操作而对整个闪存系统的性能产生不利影响。如所属领域的技术人员应了解,从第一位置移动数据通常涉及将所述数据复制到另一位置和从第一位置擦除所述数据。
另一常规的损耗平衡处理涉及允许区块损耗。一旦区块已实际损坏,那么一旦存储有区段的区块已经损坏或已经变得不可用,指派给这些区块的区段会通过将与这些区段相关联的地址映射到备用区域而被重新指派。因为备用区域或区块的数目有限且贵重,所以并不是一直都有备用区域,使与不可用的区块相关联的区段映射到这里。另外,仅在区块变得不可用时才实际重新映射区段通常使整个闪存系统的性能降级。
因此,所需要的是用于有效地且大体上“透明地”在闪存存储系统中执行损耗平衡的一种方法和一种设备。也就是说,所需要的是一种损耗平衡处理,其促进与闪存存储系统相关联的物理位置中更为平均的损耗,而不需要显著使用计算资源。
发明内容
本发明涉及用于在非易失性存储器系统中执行损耗平衡的系统和方法。根据本发明的一个方面,一种用于分配经划分为多个元件的非易失性存储器的方法包括使该等元件分组成一个第一组、一个第二组和一个第三组。第一组包括具有相对低的损耗的元件且第二组包括具有相对高的损耗的元件。所述方法还包括判定何时由包括于第一组中的一个第二元件取代包括于第三组中的一个第一元件。将与第一元件相关联的内容复制到从第一组所获得的第二元件中。然后从第一元件擦除第一元件的内容,且第二元件与第三组产生关联。使第二元件和第三组产生关联包括大体上从第一组分离第二元件。在一个实施例中,基于与每个元件相关联的擦除计数对元件进行分组。
在另一个实施例中,第一元件包括擦除计数,且该方法包括在从第一元件擦除内容后递增第一元件的擦除计数。在该实施例中,第一元件的擦除计数可用于判定是否使第一元件与第一组产生关联,且该方法还可包括当第一元件的擦除计数指示第一元件将与第一组产生关联时使第一元件和第一组产生关联。一般来说,使第一元件和第一组产生关联包括从第三组分离第一元件。
通过维护组或表格中的非易失性存储器的元件(例如区块),根据元件擦除的次数,可有效管理元件的损耗。该等组或表格可用于实际跟踪具有最多损耗的元件或区块和具有最少损耗的元件或区块,使得可容易识别所述区块。当一个普通区块(例如含有数据内容且正在使用中的区块)将被具有较少擦除的区块取代时,可从具有最少损耗的该组区块有效获得取代区块。同样,整个非易失性存储器(例如嵌入式NAND闪存)的寿命会实际增加。
根据本发明的另一个方面,用于分配经划分为多个元件的非易失性存储器的方法包括将该等元件分组为至少一个第一组,其包括具有小于平均擦除计数的擦除计数的擦除元件;一个第二组,其包括具有大于平均擦除计数的擦除计数的擦除元件;和一个第三组。作出一个关于是否由包括于第二组中的一个第二元件取代包括于第三组中的第一元件的决定。如果决定为第一元件将被取代,那么将与第一元件相关联的内容复制到从第二组获得的第二元件中。所述方法还包括从第一元件擦除第一元件的内容,和使第二元件与第三组产生关联。使第二元件和第三组产生关联包括大体上从第二组分离第二元件。在一个实施例中,所述方法还包括使第一元件和第一组产生关联且从第三组分离第一元件。
仍是根据本发明的另一个方面,管理非易失性存储元件的分配的存储器管理系统包括用于维护一个第一数据结构的构件,该第一数据结构与擦除次数大体上小于一个特定量的存储元件相关联;和用于维护一个第二数据结构的构件,该第二数据结构与擦除次数大体上大于一个特定量的存储元件相关联。所述系统还包括用于维护一个第三数据结构的构件,该第三数据结构通常包括不与第一数据结构或第二数据结构产生关联的存储元件。至少某些和第三数据结构相关联的存储元件含有数据。用于判定何时取代第三数据结构的第一存储元件的构件也包括在所述系统中,同样用于在判定第三数据结构的第一存储元件将被取代时,将选自第一数据结构和第二数据结构之一的第二存储元件与第三数据结构产生关联的构件也包括在所述系统中。
通过阅读以下详细描述及学习图式的各种图,本发明的这些和其它优点将会变得显而易见。
附图说明
通过参考与随附图式相结合的以下描述可最佳理解本发明,其中:
图1a是根据本发明的一个实施例的包括一个非易失性存储器装置的通常的主机系统的图解表示。
图1b是根据本发明的一个实施例的存储器装置(例如是图1a的存储器装置120)的图解表示。
图2是根据本发明的一个实施例的一部分闪存的图解表示。
图3是根据本发明的一个实施例的一个处理流程图,其说明与处理一个和一个闪存系统相关的初始化请求相关联的步骤。
图4是根据本发明的一个实施例的处理流程图,其说明与处理静态区块的一种方法相关联的步骤。
图5a是根据本发明的一个实施例的系统存储器的图解结构图表示。
图5b是根据本发明的一个实施例的普通区块、最不频繁擦除区块和最频繁擦除区块的图解表示。
图6是根据本发明的一个实施例的一种在整个存储器系统的系统存储器中执行区块交换/更新以允许区块更为平均的损耗的方法的图解表示。
图7是根据本发明的一个实施例的系统架构的图解结构图表示。
具体实施方式
闪存存储系统中的非易失性存储器存储区块可以反复编程和擦除,但在区块损坏前每个区决通常仅可被擦除有限次,当区块损坏时,与包括损坏区块的闪存存储系统的总存储量的部分相关联的性能会发生相对显著的降级,而且存储在该部分的数据可能会丢失,或会不可能在该部分存储数据。
为了增加区块在闪存存储系统中较为平均损坏的可能性,可以更为平均地利用区块。通过跟踪每个区块擦除的次数(例如通过利用擦除计数),可以更平均地使用系统中的存储器。一种擦除计数管理技术可以在与区块相关联的冗余区域中存储擦除计数,其跟踪特定区块的擦除次数。可在系统存储器中建立表格,其大体上使在使用中的区块与具有相对高的擦除计数的区块和具有相对低的擦除计数的区块有效分开。当擦除使用中的区块时,该区块可适当地被“添加”到具有相对高的擦除计数的区块表或具有相对低的擦除计数的区块表中。同样,可从具有相对高的擦除计数的区块表或从具有相对低的擦除计数的区块表将区块“移动”到区块映射表中,以大体上取代从区块映射表重新指派的任何区块,区块映射表即使用中的一组区块表。
通过对区块进行分类,因为可以更有效地管理每个区块的使用而平均化与区块相关联的损耗,所以可以更平均地利用区块。另外,将区块分类为表使得能容易识别具有低擦除计数的区块和具有高擦除计数的区块,而且因此不必利用大量的计算资源。因此,损耗平衡相对有效的进行。结果可大体上延长了闪存系统的寿命而没有显著影响闪存系统的性能。
闪存系统或更为普遍的非易失性存储器装置一般包括闪存卡和芯片组。通常闪存系统和一个主机系统结合使用,使得主机系统可以将数据写入闪存系统或从闪存系统读取数据。然而,某些闪存系统包括嵌入式闪存系统和软件,该软件在主机上执行来大体上充当嵌入式闪存的控制器。先参考图1a,将描述包括一个非易失性存储器装置(例如,压缩闪存卡或嵌入式系统)的通常的主机系统。主机或计算机系统100通常包括系统总线104,其允许微处理器108、随机访问存储器(RAM)112和输入/输出电路116进行通信。应了解,主机系统100可通常包括其它组件,例如显示装置和连网装置,其出于说明目的而并没有显示。
一般来说,主机系统100可以获取以下信息,其包括(但不限于)静态图像信息、音频信息和视频图像信息。这些信息可以实时获取,且可以以无线方式传输到主机系统100。虽然主机系统100大体上可以是任何系统,但主机系统100一般是如数字相机、摄像机、蜂巢式通信装置、音频播放器或视频播放器的系统。然而,应了解,主机系统100通常大体上可以是存储数据或信息且检索数据或信息的任何系统。
应了解,主机系统100也可以是只能获取数据或只能检索数据的系统。也就是说,主机系统100可以是存储数据的专用系统,或主机系统100可以是读取数据的专用系统。举例而言,主机系统100可以是经配置仅用于写入或存储数据的存储记录器。或者,主机系统100可以是如MP3播放器的装置,其通常经配置来读取或检索数据,且不获取数据。
非易失性存储器装置120(在一个实施例中是一个可移除非易失性存储器装置)经配置而与总线104连接来存储信息。一种可选的输入/输出电路区块130可以允许非易失性存储器装置120直接和总线104连接。当存在时,输入/输出电路区块132用于减少总线104上的负载,如所属领域的技术人员将会了解的。非易失性存储器装置120包括非易失性存储器124和一个可选的存储器控制系统128。在一个实施例中,非易失性存储器装置120可实施于单个芯片或电路小片上。或者,可在一个多芯片模块上实施非易失性存储器装置120或在多个离散组件上实施,该等离散组件可以形成一个芯片组且可以一起用作非易失性存储器装置120。下文将关于图1b更详细地描述非易失性存储器装置120的一个实施例。
非易失性存储器124(例如,如NAND闪存的闪存)经配置以存储数据,使得在需要时可以访问和读取数据。适当时也可以擦除存储在非易失性存储器124中的数据,但应了解非易失性存储器124中的某些数据可以是不可擦除的。一般可通过存储器控制系统128控制存储数据,读取数据和擦除数据的过程,或当没有存储器控制系统128时,可通过由微处理器108执行的软件来控制。可以管理非易失性存储器124的运作,使得通过实质促使非易失性存储器124的区产生大体平均的损坏而大体上最大化非易失性存储器124的寿命。
通常将非易失性存储器装置120描述为包括一个可选的存储器控制系统128,也就是一个控制器。通常,非易失性存储器装置120可包括独立的芯片用于非易失性存储器124和存储器控制系统128(即控制器)功能。举例而言,当包括(但不限于)PC卡、压缩快闪卡、多媒体卡和安全数字卡的非易失性存储器装置包括可实施于一个独立的芯片上的控制器时,其它非易失性存储器装置可不包括实施于一个独立的芯片上的控制器。在一个实施例中,其中非易失性存储器装置120不包括独立的存储器和控制器芯片,可将存储器和控制器功能集成在单个芯片中,如所属领域的技术人员将会了解的。或者,可由微处理器108提供存储器控制系统128的功能,例如在一个实施例中,其中非易失性存储器装置120不包括存储器控制器128,正如上所讨论的。
参考图1b,根据本发明的一个实施例将更详细地描述非易失性存储器装置120。如上所述,非易失性存储器装置120包括非易失性存储器124且可包括存储器控制系统128。存储器124和控制系统128或控制器可以是非易失性存储器装置120的主要组件,但是(例如)当存储器124是一个嵌入式NAND装置时,非易失性存储器装置120可不包括控制系统128。存储器124可以是形成于半导体基板上的存储器单元的阵列,其中通过在存储器单元的个别存储元件上存储两个或两个以上电荷电平之一,将一个或一个以上的数据位存储在该等个别的存储器单元上。对于该等系统来说,非易失性快闪电可擦除可编程只读存储器(EEPROM)是普通类型存储器的一个实例。
当存在时,控制系统128通过总线15与正在使用存储器系统来存储数据的主计算机或其它系统通信。总线15通常是图1的总线104的一部分。控制系统128还控制存储器124(其可包括存储器单元阵列11)的运作来写入主机提供的数据,读取主机请求的数据且执行操作存储器124的各种内务处理功能。控制系统128通常包括一个通用微处理器,其具有关联的非易失性软件存储器、各种逻辑电路等。一般还包括一个或一个以上状态机用于控制特定例行程序的性能。
一般由控制系统128或微处理器108通过地址解码器17定址存储器单元阵列11。解码器17对门极和阵列11的位线施加校正电压以将数据编程到由控制系统128定址的一组存储器单元中,从其中读取数据或对其进行擦除操作。额外的电路19包括控制施加到阵列元件的电压的编程驱动器,其取决于待编程入一组定址的单元的数据。电路19还包括感应放大器和必要用于从一组定址的存储器单元读取数据的其它电路。通常将编程入阵列11的数据或最近从阵列11读取的数据存储在控制系统128内的缓冲存储器21中。控制系统128通常还含有用于临时存储命令和状态数据等的各种寄存器。
阵列11被划分为许多区块0-N个存储器单元。对于快闪EEPROM系统来说,普遍将区块作为擦除的最小单元。也就是说,每个区块含有最小数目的一起擦除的存储器单元。每个区块通常被划分为许多页,如图2中说明。页通常是编程的最小单元。也就是说,一个基本的编程操作将数据写入存储器单元的最小值:一个页中或从其中读取数据。数据的一个或一个以上区段通常存储在每个页内。如图1b所示,一个区段包括使用者数据和耗用数据。耗用数据通常包括错误校正代码(ECC),其从区段的使用者数据计算而得。当将数据编程入阵列11时,控制系统128的一部分23计算ECC,且当从阵列11读取数据时也会检查ECC。或者,将ECC存储在与其所属的使用者数据不同的页或不同的区块中。
使用者数据的区段通常是512个字节,对应于磁盘驱动器中的扇区的大小。耗用数据通常是附加的16个字节。数据的一个区段最一般包括于每个页中,但两个或两个以上的区段可形成一个页。通常任何数目的页都可形成一个区块。举例而言,可由八个到512,1024个页或更多页形成一个区块。选择区块数目来为存储器系统提供所要的数据存储容量。阵列11通常被划分为一些子阵列(未图示),每个子阵列含有一定比例的区块,其在某种程度上相互独立运作以增加执行各种存储器操作的并行度。在美国专利第5,890,192号中描述了使用多个子阵列的实例,其全文以引用的方式并入本文中。
当连续对非易失性存储器124的一个特定区(例如存储元件)编程时(例如反复写入和擦除),这个特定区域通常比不连续编程的区域损坏得快。为了有效地“平均化”非易失性存储器124中的不同的区域的损耗,可大体上自动地执行损耗平衡,使得连续编程的区域进行较少的编程,而不连续编程的区域进行较多的编程。
通常,为了执行损耗平衡,一个区块,例如与反复编程的物理位置相关联的一组区段可以和与不反复编程的物理位置相关联的一个区块进行交换。也就是说,经过反复编程且随之擦除的物理区块可以与不经常编程和擦除的物理区块进行交换。
在本发明的一个实施例中,为了易于判定一个特定的物理区块是不是经过反复编程和擦除,而使用区块存储一个擦除计数。也就是说,维护一个跟踪区块发生多少次擦除的计数器且在区块每次擦除时加1。这样的擦除计数可以用来便于判定一个特定的区块是否应该和另一个不经常擦除的区块进行交换。图2是根据本发明的一个实施例的一部分闪存的图解表示。闪存200可被划分为多个页204。通常含有约512个字节使用者数据的每个页204实际上包括一个冗余区域206,例如,页204a包括冗余区域206a。每个冗余区域206或耗用区域可包括高达约16个字节的信息,该信息通常包括(但不限于)一个组识别符216、一个更新索引212和一个擦除计数214。
一般来说,区块210中包括任何数目的页204。为了便于说明,区块210中显示为包括页204a、204b,但应了解,区块210中所包括的页204的数目可以作很大的变化。在所述实施例中,区块210可经配置以包括约32个页。举例而言,当闪存200包括约512兆位(Mb)时,闪存200可实际被划分为约4096个区块,每个区块具有32个页。
如先前所提到的,每次从一关联的区块擦除使用者数据时擦除计数214会递增。举例而言,每次从区块210擦除数据时擦除计数214(其与区块210相关联)会递增。因为区块210中所包括的每个页面204a、204b通常具有擦除计数214,所以在擦除区块210时与每个页面204a、204b相关联的擦除计数214会递增。
一般来说,当擦除含有数据的区块时,区块的数据区域和冗余区域都被擦除或清空。通常将擦除区块添加到备用区块池,该池含有具有比其它擦除区块(例如,其它表的擦除区块)的擦除计数小的擦除计数的擦除区块。备用区块表实质上可以是最不频繁擦除区块表,在下文会有描述。在本发明的一个实施例中,将具有大擦除计数的擦除区块添加到与其它表的擦除区块相比含有大擦除计数的擦除区块的池内。含有具有大擦除计数的擦除区块的池可以是最频繁擦除区块表,其在下文也有描述。一个刚被擦除的区块的擦除计数会递加1,且取决于计数值被保存在最不频繁擦除区块表或最频繁擦除区块表中。
回到图2,在初始化请求期间可访问擦除计数,例如擦除计数214。举例而言,当向一个系统(例如,一包括嵌入式闪存的系统)供电时,当系统内的备用区块运行减慢时,当使用者发出平衡区块分配的请求时,和当使用者发出使区块使用更平均的请求时,可发出初始化请求。图3是根据本发明的一个实施例的一处理流程图,其说明与处理一个和一闪存系统相关的初始化请求相关联的步骤。一般来说,可通过使用者起始初始化请求或(例如)周期性地或当满足触发条件时通过与闪存系统相关联的控制器基本上自动起始初始化请求。响应初始化请求的程序300开始于步骤304,在此步骤中实际接收初始化请求。可通过与待初始化的闪存通信的控制器或处理器来接收初始化请求。例如,可由使用者通过主机在供电时或当平衡区块分配时提出这个请求。
一旦接收到初始化请求,就在步骤306中获得平均擦除计数。在一个实施例中,将平均擦除计数存储于一被写入与该系统相关联的NAND存储器中的一擦除计数区块中。含有平均擦除计数和每一区块的擦除计数所述擦除计数区块(ECB)被存储于闪存的一个区块中。应了解,当创建一个擦除计数区块时(例如当最初格式化所述系统时),通常将表中的平均擦除计数和每个区块的擦除计数初始化为零值。获得平均擦除计数之后,便获得了该系统中基本上所有区块的擦除计数。如上文参照图2所述,一含有数据的特定区块的擦除计数可存储在与该区块相关联的冗余区域中。因此,获得基本上所有含有数据的区块的擦除计数可以包括访问与每个区块相关联的冗余区域,并将每个擦除计数存储在该擦除计数区块中。
在初始化请求时,从擦除计数区块获得擦除区块的擦除计数。因为区块的冗余区域已被擦除,所以擦除计数区块通常保持其值。当关闭整个系统时,通常产生一个终止请求,使得擦除计数表经更新而含有大体上所有的区块的最新的擦除计数。在任何给定时刻,一个区块属于最频繁擦除区块表、最不频繁擦除区块表、擦除计数区块或属于区块映射表。属于擦除计数区块的区块的擦除计数存储在区块的冗余区域中。含有数据的区块的擦除计数通常属于区块映射表且存储在冗余区域中。属于区块映射表的擦除区块的擦除计数具有零擦除计数,这是因为该区块实际从未使用。从最不频繁擦除区块表或最频繁擦除区块表中的区块获得擦除计数涉及从该表中得到值,这是因为该等表的每一项通常含有擦除区块的区块号与其擦除计数。当完成初始化请求的处理时,通常使用所有区块的当前擦除计数更新擦除计数区块。
在步骤320中,在系统存储器(例如主机系统存储器)中分配区块映射表。所属领域的技术人员应了解,区块映射表可经配置来提供逻辑区块地址(LBA)和物理区块地址(PBA)之间的映射。另外,在步骤320中也分配最频繁擦除区块表和最不频繁擦除区块表。
通常确定最频繁擦除区块表的大小或另外配置最频繁擦除区块表以有效地保持与经过最频繁擦除的擦除区块相关的信息。也就是说,最频繁擦除区块经配置以保持与系统中的具有最高擦除计数的擦除区块相关的信息,例如擦除计数和映射信息。类似地,通常确定最不频繁擦除区块表的大小或另外配置最不频繁擦除区块表以容纳与具有最低擦除计数的擦除区块相关的信息。尽管最频繁擦除区块表的大小和最不频繁擦除区块表的大小会有很大变化,但是该等大小取决于待指派为最频繁擦除的区块的数目和待指派为最不频繁擦除的区块的数目。通常,一般确定最频繁擦除区块表的大小以容纳比最不频繁擦除区块表少的擦除区块的信息。
举例而言,可确定最频繁擦除区块表的大小以容纳约十八个擦除区块的信息,而可确定最不频繁擦除区块表的大小以容纳与约七十个擦除区块相关的信息。或者,可确定最频繁擦除区块表的大小以容纳约十个擦除区块的信息,而可确定最不频繁擦除区块表的大小以容纳约五十个擦除区块的信息。
在步骤320分配表之后,在步骤324识别擦除区块。接着,在步骤328中,可将“N”擦除区块指派为最频繁擦除区块并实质上指派给最频繁擦除表。在一个实施例中,“N”擦除区块可以是由比较所有的擦除计数而判定的具有最高的擦除计数的“N”擦除区块。或者,可基于与在步骤306所获得的平均擦除计数的比较而判定存储在最频繁擦除区块表中的“N”擦除区块。举例而言,“N”擦除区块可以是具有至少比平均擦除计数高一个给定的百分比(例如约25%)的擦除计数的“N”擦除区块。
一旦实际填充最频繁擦除区块表,就可以识别“M”擦除区块且实际上在步骤332中将其指派给最不频繁擦除区块表。该等“M”擦除区块一般可以是具有与该系统相关联的所有擦除区块的最低擦除计数的“M”擦除区块,或该等“M”擦除区块可以是具有至少比平均擦除计数低一个给定百分比的擦除计数的“M”擦除区块。该等“M”擦除区块实际上是适当时将指派给区块映射表的备用区块。
在步骤336中将剩余擦除区块(即,没有指派给最不频繁擦除区块表或最频繁擦除区块表的擦除区块)和“未擦除”区块一起指派给区块映射表。换句话说,使剩余擦除区块和含有非相关冗余区域中的数据的区块与区块映射表产生关联。
在(例如)用与对应的区块相关的擦除计数和映射信息有效填充区块映射表、最不频繁擦除区块表和最频繁擦除区块表之后,在步骤338中可判定平均擦除计数。判定平均擦除计数通常涉及对在步骤308中获得的个别区块的擦除计数求和,并用区块总数除该总和。
将在步骤338中计算出的平均擦除计数存储在与该系统相关联的擦除计数区块中。如先前所提到的,将该平均擦除计数存储在一个擦除计数区块中,该平均擦除计数被写入与该系统相关联的NAND存储器中。在将平均擦除计数存储在该擦除计数区块中后,可以在步骤342处理静态区块或含有数据并具有相对低的关联的擦除计数的区块。下文将相关图4描述与处理静态区块的一种方法相关联的步骤。一旦处理了静态区块,就完成处理初始化请求的过程。
在与闪存相关联的一组区块内,通常在任何给定的时间具有已擦除的区块和含有数据(即使用者数据)的区块。含有数据的某些区块可认为是“普通”区块,而其他区块可认为是静态区块。静态区块是含有很少改变的数据的区块。换句话说,静态区块很少被擦除。通常,静态区块可以与存储在闪存中的相对旧的文献、与存储在闪存中的可执行程序或与存储在闪存中的操作系统相关联。静态区块一般具有大体上比在闪存内的大部分区块的擦除计数低的擦除计数。在一个实施例中,如果区块的擦除计数低于与闪存系统相关联的平均擦除计数一定百分比(例如约20%),那么认为含有数据的区块是静态区块。
因为静态区块含有很少改变的数据,所以可以将静态区块中含有的数据复制到具有相对高的擦除计数的区块中。也就是说,当特定物理区块的内容是相对静态的且因此一般不发生改变时,实际上可以将该等内容重新指派给具有相对高的擦除计数的不同物理区块以便使得具有相对低的擦除计数的原物理区块用于存储较频繁改变的内容。将参考图4,根据本发明的一个实施例描述与处理静态区块相关联的步骤,即,图3的步骤342。在步骤404开始处理系统的静态区块的过程342,在步骤404中访问未擦除区块(例如,区块“A”)的擦除计数。一旦访问了区块“A”的擦除计数,就在步骤408中作出有关未擦除区块“A”的擦除计数和与该系统相关联的平均擦除计数相比是否很低的判定。
尽管可以基于大体上任何适当的标准判定未擦除区块“A”的擦除计数与平均擦除计数相比是否低,但是在一个实施例中,基于区块“A”的擦除计数是否具有比与平均擦除计数的几分之一相关联的值低的值作出该判定。举例而言,当擦除计数小于平均擦除计数的预定百分比时,可以认为区块“A”的擦除计数低。
如果在步骤408中判定区块“A”的擦除计数与平均擦除计数相比不是很低,就指示该区块“A”很可能不是静态区块。
应了解,尽管即使不认为区块“A”的擦除计数很低,区块“A”也可以是静态区块,但是在这种情况下的区块“A”的擦除计数实际上不触发区块“A”与另一区块的交换。从而完成静态区块的处理过程。
或者,如果在步骤408中判定区块“A”的擦除计数与平均擦除计数相比很低,就暗示可以将区块“A”的内容写入具有相对高的擦除计数的区块中,使得具有其低擦除计数的区块“A”可以自由的用于存储相对频繁改变的数据。换句话说,当与平均擦除计数相比区块“A”的擦除计数很低时指示该区块“A”是静态区块。同样,处理流程从步骤408移到步骤412,其中将区块“A”识别为静态区块。一旦将区块“A”识别为静态区块,在步骤416中,可从由最频繁擦除区块表识别的一组最频繁擦除区块中获得一个区块,即区块“B”。
获得区块“B”之后,在步骤420中将区块“A”的内容复制到区块“B”中。也就是说,在步骤420中将区块“A”中含有的使用者数据复制到区块“B”中。一旦将区块“A”的内容复制到区块“B”中,就在步骤424擦除区块“A”。通常,当擦除区块“A”时,与区块“A”相关联的擦除计数递增。在步骤428中,将一个区块(例如区块“C”)从最不频繁擦除区块组移到最频繁擦除区块组中,使得区块“C”的关联从最不频繁擦除区块表变为最频繁擦除区块表。换句话说,从最不频繁擦除区块表分离区块“C”且使其与最频繁擦除区块表产生关联。此移动允许有效地打开最不频繁擦除区块表中的空间以容纳区块“A”,其具有低擦除计数并因此是该系统中最不频繁擦除区块之一。通常,区块“C”是最不频繁擦除区块表中的具有最高擦除计数的区块。
在将区块“C”从最不频繁擦除区块组中移出或另外将区块“C”从最不频繁擦除区块表中分离后,处理流程从步骤428移到步骤432,其中在步骤432中实际上将区块“A”从区块映射表移到最不频繁擦除区块表中。接着,在步骤434中,使包括先前在区块“A”中含有的内容的区块“B”与区块映射表产生关联。所属领域的技术人员应了解,将区块“B”“移动”到区块映射表通常包括将与区块“A”相关联的逻辑区块地址映射更新为目前与区块“B”相关联。当在最频繁擦除区块表中出现有关区块“C”的信息,在区块映射表中出现有关区块“B”的信息,且在最不频繁擦除区块表中出现有关区块“A”的信息时,就完成了处理静态区块的过程。应了解,可以重复过程342直到已识别并处理完与系统相关联的大体上所有的静态区块。
一般来说,当将初始化请求发送到整个闪存系统时,在系统存储器(例如图1a的RAM 112)中可创建区块映射表、最不频繁擦除区块表和最频繁擦除区块表。为了建立表,可以首先在系统存储器中分配空间以容纳该等表。
如上所提到的,在系统存储器中创建区块映射表、最不频繁擦除区块表和最频繁擦除区块表,以及平均擦除计数。平均擦除计数和每个区块的擦除计数也会写入擦除计数区块。图5a是根据本发明的一个实施例的系统存储器的图解结构图表示。系统存储器454和闪存460包括在整个系统中,且(例如)实际上可以是存储卡的组件或如NAND存储器的闪存460嵌入的主机装置的组件。系统存储器454经配置以存储区块可能相关联的区块映射表462。通常,可使用区块映射表462以使LBA与和闪存460相关联的物理区块产生关联。
系统存储器454还保持有最不频繁擦除区块表466和最频繁擦除区块表470,该等表和区块映射表462一样,一般响应初始化请求而形成。当格式化整个闪存系统时创建平均擦除计数474,其经配置以保持闪存460中的区块的平均擦除计数。在一个实施例中,擦除计数区块480经配置以含有在闪存460中的大体上所有区块465的擦除计数。每发出一次初始化请求,可计算出更新的平均擦除计数,并将其存储在擦除计数区块480中。
图5b是根据本发明的一个实施例的一组“普通”区块、一组最不频繁擦除区块和一组最频繁擦除区块的图解表示。一组区块502包括区块514,其可以是通常含有使用者数据的普通或静态区块,或其可以被擦除但不是最频繁擦除区块或最不频繁擦除区块。一组最不频繁擦除区块506通常包括具有整个系统中的擦除区块的最低的擦除计数的区块518,而一组最频繁擦除区块510通常包括具有整个系统中的擦除区块的最高的擦除计数的区块522。一般来说,区块518实际用作备用区块。
当擦除区块514时,可判定擦除区块514是具有相对低的关联的擦除计数或相对高的关联的擦除计数。当擦除区块514具有相对低的关联的擦除计数时,可将擦除区块514添加到最不频繁擦除区块组506。另一方面,当擦除区块514具有相对高的关联的擦除计数时,可将擦除区块514重新指派给最频繁擦除区块组510。
可大体上具有任何大小的最不频繁擦除区块组506可以是一个排序组。也就是说,可基于擦除计数来大体上对区块518排序。通常在一个对应的最不频繁擦除区块表中(未图示)反映该排序,该表中含有和区块518相关联的项。举例而言,每次一个新的区块518被移到最不频繁擦除区块组506或经添加到其中或另外与其相关联时,可基于擦除计数实质上对区块518排序,使得在最不频繁擦除区块组506中的最不频繁擦除区块518可以是将被重新指派给(例如)组502的下一个区块518。换句话说,当需要将复制入数据的一个新区块时,使用最不频繁擦除区块表识别区块518的擦除最少的区块518,且将其从最不频繁擦除区块组506中取出。通常,当擦除含有不需要的数据的区块514时,该区块514可存储在最不频繁擦除区块组506中,且因此可更新最不频繁擦除区块表,也就是说,对应于添加区块的一项会包括在最不频繁擦除区块表中。
和存储在最不频繁擦除区块组506中的区块518类似的最频繁擦除区块组510中的区块522也可基于擦除计数而进行大体上排序。通常可通过对用于识别区块522的最频繁擦除区块表中的项(未图示)进行排序而实施排序。在一个实施例中,可计算出与区块522相关联的平均擦除计数,即可判定最频繁擦除区块组510的平均擦除计数。当擦除组502的区块514,且发现擦除区块514的擦除计数超过最频繁擦除区块组510的平均擦除计数一个给定的百分比(例如大于约20%)时,可将擦除区块514添加到最频繁擦除区块组510。当新区块522被实际添加到最频繁擦除区块组510中时,可将具有最低擦除计数的频繁擦除的区块组510中的区块522重新指派给组502中。通常可通过更新关联区块映射表、最不频繁擦除区块表和最频繁擦除区块表(未图示)而反应该等重新指派。
当擦除或更新组502中所包括的区块514时,通常发生组502、最不频繁擦除区块组506和最频繁擦除区块组510之间的区块的交换或更新。或者,对于将经分配而用于组502中的备用区块来说,可大体上在任何需要的时候发生区块的交换或更新。下面参考图6,将根据本发明的一个实施例描述在整个存储器系统中(例如具有嵌入式闪存的主机系统)执行区块交换或更新以允许区块的更为平均的损耗的一种方法。在步骤604开始执行区块交换或更新的过程600,在步骤604中,从区块映射表“获得”一个区块(例如区块“Y”)或另外使用区块映射表进行识别。所获得的区块是将被实际上从区块映射表中交换出用于复制或更新其内容的区块。
一旦获得区块“Y”,在步骤608中,从最不频繁擦除区块表有效获得一个区块(例如区块“X”)。也就是说,使用最不频繁擦除区块表来识别适当的备用区块以从最不频繁擦除区块组中获得备用区块。一般来说,区块“X”是在最不频繁擦除区块组中具有最低擦除计数的区块,但应了解,区块“X”可以大体上是和最不频繁擦除区块组且随之的最不频繁擦除区块表相关联的任何区块。在步骤612中,将存储在区块“Y”中的数据内容或即将取代区块“Y”的原内容的新内容复制到区块“X”中。
在步骤616中,在将区块“Y”的内容复制到区块“X”中之后,将区块“X”实际上移到区块映射表中或与其相关联。换句话说,有效更新与区块“Y”和区块“X”相关联的映射,使得先前映射到区块“Y”的LBA重新映射到区块“X”。当区块“X”被实际上移到区块映射表中时,在步骤620中擦除区块“Y”。详细来说,可使用大体上任何适合的技术擦除存储在区块“Y”中的数据内容(例如,使用者内容)。在步骤624中存储在与区块“Y”相关联的冗余区域中的与区块“Y”相关联的擦除计数加1以指示区块“Y”已再一次被擦除。应了解,在一个实施例中,实际存储在擦除计数区块中的“Y”的擦除计数可以更新。
在步骤628中,识别在最频繁擦除区块表中具有最低擦除计数的区块。如上所述,在一个实施例中,在最频繁擦除区块表中参考的区块根据其各自的擦除计数进行排序。对区块排序可包括在最频繁擦除区块表中根据区块的擦除计数定位区块的参考。因此,识别具有最低擦除计数的区块通常涉及访问经配置以容纳具有最低擦除计数的区块参考的最频繁擦除区块表中的位置的区块参考。
一旦识别出在最频繁擦除区块表中参考的具有最低擦除计数的区块,处理流程从步骤628移到步骤632,在该步骤中,判定区块“Y”的擦除计数是否大于在最频繁擦除区块表中参考的具有最低擦除计数的区块的擦除计数。如果判定区块“Y”的擦除计数不大于在最频繁擦除区块表中参考的具有最低擦除计数的区块的擦除计数,则表示区块“Y”不能被认为是频繁擦除的。因此,处理流程从步骤632进行到步骤636,在步骤636中,将区块块“Y”移到最不频繁擦除区块组中且实际上移到最不频繁擦除区块表中,即,将对应于区块“Y”的一项添加到最不频繁擦除区块表中。应了解,在一个实施例中,将区块“Y”移到最不频繁擦除区块组中可包括使用每个区块的擦除计数基本上重新对最不频繁擦除区块表中的所有的区块参考进行排序。在将区块“Y”实际上移到最不频繁擦除区块表中之后,便完成了交换或更新区块的过程。
回到步骤632,如果步骤632的判定是区块“Y”的擦除计数超过了与最频繁擦除区块表相关联的最低擦除计数,则表示区块“Y”应该被移到最频繁擦除区块组中且实际上移到最频繁擦除区块表中。为了给最频繁擦除区块表中待参考的区块“Y”留出空间,实际上需要从最频繁擦除区块表中移除一个区块,例如最频繁擦除区块表中参考的具有最低擦除计数的区块。同样,在步骤640中,在最频繁擦除区块表中参考的具有最低擦除计数的区块被移到最不频繁擦除区块组中,且实际上被移到最不频繁擦除区块表中。将区块移到最不频繁擦除区块组中可包括根据每个区块的擦除计数对最不频繁擦除区块表中的区块参考重新排序。
在将最频繁擦除区块表中的具有最低擦除计数的区块移出最频繁擦除区块表之后,在步骤644中,将区块“Y”实际上移到最频繁擦除区块表中。在一个实施例中,将区块“Y”移到最频繁擦除区块组中且因此实际上移到最频繁擦除区块表中可包括根据每个区块的擦除计数对最频繁擦除区块重新排序,包括区块“Y”。当区块“Y”实际上被移到最频繁擦除区块表中时,便完成了交换或更新区块的过程。
一般来说,以软件形式提供与维护表、处理初始化请求和执行损耗平衡相关联的功能(例如,响应交换或更新区块的请求)作为(例如)程序代码装置或作为主机系统的固件。图7显示与提供到一个主机系统以进行损耗平衡的软件或固件相关联的一个合适的系统架构的一个实施例。一个系统架构700通常包括各种模块,该等模块可包括(但不限于)应用接口模块704、系统管理器模块708、数据管理器模块712、数据完整性管理器716和装置管理器和接口模块720。一般来说,可使用可由处理器(例如图1a的处理器108)访问的软件代码装置或固件来实施系统架构700。Δ
一般来说,应用接口模块704经配置以与主机、操作系统或使用者直接进行通信。应用接口模块704还与系统管理器模块708和数据管理器模块712进行通信。当使用者要读取、写入或格式化闪存时,使用者发送请求到操作系统,该等请求传到应用接口模块704。应用接口模块704依据请求而将请求引导到系统管理器模块708或数据管理器模块712。
系统管理器模块708包括系统初始化子模块724、擦除计数区块管理子模块726和电源管理区块子模块730。系统初始化子模块724通常经配置以能处理初始化请求,且通常与擦除计数区块管理子模块726进行通信。在一个实施例中,系统初始化子模块724允许更新区块的擦除计数,且大体上负责创建最不频繁使用区块表和最频繁使用区块表。
擦除计数区块管理子模块726包括促使存储区块的擦除计数的功能和促使计算平均的擦除计数的功能和使用个别的擦除计数进行更新的功能。换句话说,擦除计数区块管理子模块726实际上允许维持一个平均的擦除计数。另外,在一个实施例中,擦除计数区块管理子模块726还大体上在整个系统的初始化请求期间使擦除计数区块中的大体上所有区块的擦除计数同步。虽然擦除计数区块管理子模块726可经配置以使平均的擦除计数存储在擦除计数区块中,但是应了解可使用电源管理区块子模块730作为替代来存储平均擦除计数。
除了与应用接口模块704通信之外,系统管理器模块708还与数据管理器模块712和装置管理器和接口模块720进行通信。与系统管理器模块708和应用接口模块704通信的数据管理器模块712可包括提供页或区块映射的功能。数据管理器模块712还可包括与操作系统和文件系统接口层相关联的功能。
装置管理器和接口模块720通常提供一个闪存存储器接口,且包括与硬件提取相关联的功能,例如I/O接口,所述装置管理器和接口模块与系统管理器模块708、数据管理器712和数据完整性管理器716进行通信。数据完整性管理器模块716提供ECC处理及其它功能。
虽然仅描述了本发明的一些实施例,但是应了解在不偏离本发明的精神或范畴的情况下可以许多其它具体形式来体现本发明。举例而言,代替基于将每个区块和平均擦除计数作比较而将区块指派给最频繁擦除区块表和最不频繁擦除区块表,而是分别基于大体上绝对判定哪些区块具有最高的擦除计数且哪些区块具有最低的擦除计数而将区块指派给最频繁擦除区块表和最不频繁擦除区块表。换句话说,不用将个别区块的擦除计数和平均擦除计数作比较,区块擦除计数可实际上相互比较来判定区块可以插入的适当的表。
通常将最不频繁擦除区块表描述成保持具有和备用区块一样的相对低的擦除计数的区块的参考。实际分配备用区块以通过使用区块映射表而使用,使得大体上任何时候需要备用区块时,提供在最不频繁擦除区块表中参考的具有最低擦除计数的区块用于使用。换句话说,当区块映射表中识别出的区块将被交换出时,将最不频繁擦除区块组中的具有最低擦除计数的区块的参考移到区块映射表中。然而,应了解,在区块交换过程期间,通常可从最不频繁擦除区块组中取出大体上任何的区块。使用最不频繁擦除区块表从最不频繁擦除区块中选择大体上任何的区块以移到区块映射表中可减少与整个系统相关联的耗用,因为最不频繁擦除区块表中的区块没有必要进行排序。
识别和处理静态区块通常提高使整个存储器系统内的区块产生平均损耗的能力。然而,在一个实施例中,没有必要识别和处理静态区块。举例而言,如果系统内预期相对少量的静态区块,那么在不偏离本发明的精神或范畴的情况下可大体上取消静态区块的识别和处理。
虽然将非易失性存储器系统描述为通过关联存储器控制器来控制或使用与主机系统相关联的软件或固件来控制,但是应了解包括擦除计数管理的损耗平衡处理可应用于下述非易失性存储器系统,其与大体上位于非易失性存储器系统外部的控制器进行通信。使用控制器的合适的存储器系统包括(但不限于)PC卡、压缩快闪卡、多媒体卡、安全数字卡和包括闪存和闪存控制器的嵌入式芯片组。通过使用加载到主机系统上的软件或固件来控制的存储器系统包括嵌入式存储器装置。在一个实施例中,可使用上文所述的擦除管理技术而不使用与存储器系统相关联的控制器的存储器系统可使用与主机(例如主计算机系统)相关联的控制器来实施损耗平衡。也就是说,主机可直接定址和管理存储器,其中通过使用主机上的控制器来实现损耗平衡。
一般来说,与损耗平衡的各种不同的处理和方法相关联的步骤也大不相同。在不偏离本发明的范畴的精神下,通常可添加、移除、改变和重新排序步骤。举例而言,处理静态区块可没有必要包括在处理起始请求中。而且,在一个实施例中,判定是否有效地将新擦除的区块放入最频繁擦除区块表中是基于代替基于擦除区块是否具有大于与最频繁擦除区块表相关联的最低擦除计数的其它标准。举例而言,这样的判定可以基于擦除区块的擦除计数是否超过与最频繁擦除区块表相关联的大体上所有的区块的平均擦除计数一定的百分比,例如约20%。当擦除区块的擦除计数超过平均擦除计数大于特定百分比时,就将在最频繁擦除区块表中参考的具有最低擦除计数的区块移到最不频繁擦除区块表中,同时将所述擦除区块移到最频繁擦除区块表中。因此,应认识到本发明的实例仅具有说明性而不具有限制性,而且本发明并不限于本文给出的详细描述,且在附加权利要求范围的范畴内可对本发明进行修改。

Claims (64)

1.一种用于分配非易失性存储器的方法,所述非易失性存储器基本上被划分成多个元件,所述方法包括:
将所述元件分组为至少一第一组、一第二组和一第三组,其中所述第一组包括具有相对低损耗的擦除元件且所述第二组包括具有相对高损耗的擦除元件;
判定何时包括于所述第一组中的一第二元件基本上取代包括于所述第三组中的一第一元件;
当判定所述第一元件将基本上被所述第二元件取代时,将与所述第一元件相关联的内容复制到从所述第一组获得的所述第二元件中;
从所述第一元件中擦除所述第一元件的内容;和
使所述第二元件与所述第三组产生关联,其中使所述第二元件与所述第三组产生关联包括基本上解除所述第一组与所述第二元件的关联。
2.根据权利要求1所述的方法,其中将所述元件分为所述第一组、所述第二组和所述第三组包括基于与每个元件相关联的一个擦除计数来分组所述元件。
3.根据权利要求1所述的方法,其中,所述第一元件包括一个擦除计数,所述方法进一步包括:
在擦除所述第一元件的所述内容后,递增所述第一元件的所述擦除计数。
4.根据权利要求3所述的方法,其进一步包括:
使用所述第一元件的所述擦除计数来判定是否使所述第一元件与所述第一组产生关联;和
当所述第一元件的所述擦除计数指示所述第一元件与所述第一组产生关联时,使所述第一元件与所述第一组产生关联,其中使所述第一元件与所述第一组产生关联包括解除所述第三组与所述第一元件的关联。
5.根据权利要求3所述的方法,其进一步包括:
使用所述第一元件的所述擦除计数来判定是否使所述第一元件与所述第二组产生关联;和
当所述第一元件的所述擦除计数指示所述第一元件与所述第二组产生关联时,使所述第一元件与所述第二组产生关联,其中使所述第一元件与所述第二组产生关联包括解除所述第三组与所述第一元件的关联。
6.根据权利要求5所述的方法,其中所述第二组中的所述元件具有擦除计数,所述第二组中的所述擦除计数包括一个最低擦除计数,所述最低擦除计数与包括于所述第二组中的所述元件中的一第三元件相关联,且其中使用所述第一元件的所述擦除计数来判定是否使所述第一元件与所述第二组产生关联包括判定何时所述第一元件的所述擦除计数大于所述的最低擦除计数。
7.根据权利要求6所述的方法,其进一步包括:
当所述第一元件的所述擦除计数指示所述第一元件将与所述第二组产生关联时,使所述第三元件与所述第一组产生关联,其中使所述第三元件与所述第一组产生关联包括解除所述第二组与所述第三元件的关联。
8.根据权利要求1所述的方法,其中所述非易失性存储器是一个NAND闪存且所述元件是区块。
9.根据权利要求1所述的方法,其中与所述第一元件相关联的所述内容是所述第一元件的所述内容与经配置用以取代所述第一元件的至少某些所述内容的基本新的内容之一。
10.一种用于分配非易失性存储器的方法,所述非易失性存储器大体上被划分成多个元件,该方法包括:
将所述元件分组为至少一第一组、一第二组和一第三组,其中所述第一组包括具有约小于一个平均擦除计数的擦除计数的擦除元件且所述第二组包括具有约大于所述平均擦除计数的擦除计数的擦除元件;
判定何时包括于所述第二组中的一第二元件基本上取代包括于所述第三组中的一第一元件;
当判定所述第一元件将基本上被所述第二元件取代时,将与所述第一元件相关联的内容复制到从所述第二组获得的所述第二元件中;
从所述第一元件中擦除所述第一元件的内容;和
使所述第二元件与所述第三组产生关联,其中使所述第二元件与所述第三组产生关联包括基本上解除所述第二组与所述第二元件的关联。
11.根据权利要求10所述的方法,其中所述第一元件是一个静态元件,且判定何时包括于所述第二组中的所述第二元件基本上取代包括于所述第三组中的所述第一元件包括:
判定何时与所述第一元件相关联的一个擦除计数与所述平均擦除计数的比较指示包括于所述第二组中的所述第二元件基本上取代包括于所述第三组中的所述第一元件。
12.根据权利要求11所述的方法,其中判定何时与所述第一元件相关联的一个擦除计数与所述平均擦除计数的比较指示包括于所述第二组中的所述第二元件基本上取代包括于所述第三组中的所述第一元件包括判断何时与所述第一元件相关联的所述擦除计数基本上小于所述平均擦除计数。
13.根据权利要求10所述的方法,其进一步包括:
使所述第一元件与所述第一组产生关联,其中使所述第一元件与所述第一组产生关联包括解除所述第三组与所述第一元件的关联。
14.根据权利要求10所述的方法,其中所述非易失性存储器是一个NAND闪存且所述元件是区块。
15.根据权利要求10所述的方法,其中与所述第一元件相关联的所述内容是所述第一元件的所述内容与经配置用以取代所述第一元件的至少某些所述内容的基本新的内容之一。
16.一种存储器管理系统,所述存储器管理系统被配置给非易失性存储器,所述非易失性存储器基本上被划分为多个元件,所述存储器管理系统包括:
一第一管理器,所述第一管理器经配置以将所述元件分组为至少一第一组、一第二组和一第三组,其中所述第一组包括具有相对低损耗的元件且所述第二组包括具有相对高损耗的元件,和
一第二管理器,所述第二管理器经配置以判定何时包括于所述第一组中的一第二元件基本上取代包括于所述第三组中的一第一元件,所述第二管理器进一步经配置以将与所述第一元件相关联的内容复制到从所述第一组获得的所述第二元件中,且从所述第一元件中擦除所述第一元件的内容,其中所述第二管理器仍进一步经配置以使所述第二元件与所述第三组产生关联且基本上解除所述第一组与所述第二元件的关联。
17.根据权利要求16所述的存储器管理系统,其中所述第一管理器经配置用以通过基于与每个元件相关联的一个擦除计数分组所述元件而将所述元件分组为所述第一组、所述第二组和所述第三组。
18.根据权利要求16所述的存储器管理系统,其中所述第一元件包括一个擦除计数且所述第二管理器进一步经配置用以在从所述第一元件中擦除所述第一元件的所述内容之后递增所述第一元件的所述擦除计数。
19.根据权利要求18所述的存储器管理系统,其中所述第二管理器使用所述第一元件的所述擦除计数来判定是否使所述第一元件与所述第一组产生关联,且当所述第一元件的所述擦除计数指示所述第一元件将与所述第一组产生关联时,使所述第一元件与所述第一组产生关联。
20.根据权利要求18所述的存储器管理系统,其中所述第二管理器还进一步经配置以使用所述第一元件的所述擦除计数来判定是否使所述第一元件与所述第二组产生关联,且在所述第一元件的所述擦除计数指示所述第一元件将与所述第二组产生关联时,使所述第一元件与所述第二组产生关联。
21.根据权利要求20所述的存储器管理系统,其中所述第二组中的所述元件具有擦除计数,所述第二组中的所述擦除计数包括一个最低擦除计数,所述最低擦除计数与包括于所述第二组中的所述元件中的一第三元件相关联,且其中所述第二管理器经配置以使用所述第一元件的所述擦除计数来通过判定何时所述第一元件的所述擦除计数大于所述最低擦除计数来判断是否使所述第一元件与所述第二组产生关联。
22.根据权利要求16所述的存储器管理系统,其中所述非易失性存储器是一个NAND闪存且所述元件是区块。
23.根据权利要求16所述的存储器管理系统,其中与所述第一元件相关联的所述内容是所述第一元件的所述内容与经配置用以取代所述第一元件的至少某些所述内容的基本新的内容之一。
24.一种用于分配非易失性存储器的存储器管理系统,所述非易失性存储器被基本上划分为多个元件,所述存储器管理系统包括:
一第一管理器,所述第一管理器经配置以将所述擦除元件分组为至少一第一组、一第二组和一第三组,其中所述第一组包括具有约小于一个平均擦除计数的擦除计数的元件且所述第二组包括具有约大于所述平均擦除计数的擦除计数的擦除元件;和
一第二管理器,所述第二管理器经配置以判定何时包括于所述第二组中的一第二元件基本上取代包括于所述第三组中的一第一元件,所述第二管理器进一步经配置以将与所述第一元件相关联的内容复制到从所述第二组获得的所述第二元件中且从所述第一元件中擦除所述第一元件的内容,所述第二管理器仍进一步经配置以使所述第二元件与所述第三组产生关联且基本上解除所述第二组与所述第二元件的关联。
25.根据权利要求24所述的存储器管理系统,其中所述第二管理器经配置以通过判定何时与所述第一元件相关联的一个擦除计数与所述平均擦除计数的比较指示包括于所述第二组中的所述第二元件基本上取代包括于所述第三组中的所述第一元件来判定何时包括于所述第二组中的所述第二元件基本上取代包括于所述第三组中的所述第一元件。
26.根据权利要求24所述的存储器管理系统,其中所述第二管理器经配置以使所述第一元件与所述第二组产生关联且解除所述第三组与所述第一元件的关联。
27.根据权利要求24所述的存储器管理系统,其中所述非易失性存储器是一个NAND闪存且所述元件是区块。
28.根据权利要求24所述的存储器管理系统,其中与所述第一元件相关联的所述内容是所述第一元件的所述内容与经配置用以取代所述第一元件的至少某些所述内容的基本新的内容之一。
29.一种用于在一包括一非易失性存储器的系统中执行损耗平衡的方法,所述方法包括:
将与一第一存储元件相关联的内容与经配置用以取代与所述第一存储元件相关联的所述内容的新内容之一复制到一第二存储元件中,所述第二存储元件具有一个小于与所述第一存储元件相关联的一擦除计数的擦除计数,所述第二存储元件与一第一数据结构相关联,所述第一数据结构经配置含有一第一组存储元件;
使所述第二存储元件与一第二数据结构产生关联,所述第二数据结构经配置含有一第二组存储元件,其中使所述第二存储元件与所述第二数据结构产生关联包括解除所述第一数据结构与所述第二存储元件的关联;
从所述第一存储元件中擦除与所述第一存储元件相关联的所述内容;
判定何时使所述第一存储元件与所述第一数据结构产生关联;
当判定所述第一存储元件将与所述第一数据结构产生关联时,使所述第一存储元件与所述第一数据结构产生关联,其中使所述第一存储元件与所述第一数据结构产生关联包括解除所述第二数据结构与所述第一存储元件的关联;和
当判定所述第一存储元件将不与所述第一数据结构产生关联时,使所述第一存储元件与一个第三数据结构产生关联,所述第三数据结构经配置含有一第三组存储元件。
30.根据权利要求29所述的方法,其进一步包括:
判定与所述存储元件相关联的一平均擦除计数,其中与包括于所述第一组存储元件中的所述存储元件相关联的擦除计数基本上低于所述平均擦除计数,与包括于所述第三组存储元件中的所述存储元件相关联的擦除计数基本上高于所述平均擦除计数。
31.根据权利要求29所述的方法,其进一步包括:
在擦除所述第一存储元件的所述内容之后递增所述第一存储元件的述擦除计数。
32.根据权利要求31所述的方法,其中判定何时使所述第一存储元件与所述第一数据结构产生关联包括:
比较所述第一存储元件的所述擦除计数及与所述第三组存储元件相关联的存储元件的擦除计数。
33.根据权利要求32所述的方法,其中当判定所述第一存储元件的所述擦除计数小于与所述第三组存储元件相关联的存储元件的擦除计数时,判定所述第一存储元件将与所述第一数据结构产生关联。
34.根据权利要求32所述的方法,其中当判定所述第一存储元件的所述擦除计数大于与所述第三组存储元件相关联的至少一个存储元件的擦除计数时,判定所述第一存储元件将不与所述第一数据结构产生关联。
35.根据权利要求34所述的方法,其中使所述第一存储元件与所述第三数据结构产生关联包括:
获得一第三存储元件,所述第三存储元件与所述第三组存储元件产生关联,所述第三元件具有一个小于所述第一存储元件的所述擦除计数的擦除计数;和
使所述第三存储元件与所述第一数据结构产生关联,其中使所述第三存储元件与所述第一数据结构产生关联包括解除所述第三数据结构与所述第三存储元件的关联。
36.根据权利要求29所述的方法,其进一步包括:
从所述第二数据结构获得所述第一存储元件。
37.根据权利要求29所述的方法,其中所述非易失性存储器是一个NAND闪存。
38.一种用于在一包括一非易失性存储器的系统中执行损耗平衡的方法,所述方法包括:
将与一第一存储元件相关联的内容与经配置以基本上取代与所述第一存储元件相关联的所述内容的新内容中至少之一复制到一第二存储元件中,所述第二存储元件具有一个大于与所述第一存储元件相关联的一擦除计数的擦除计数,所述第二存储元件与一第一数据结构相关联,所述第一数据结构经配置含有一第一组存储元件;
使所述第二存储元件与一第二数据结构产生关联,所述第二数据结构经配置含有一第二组存储元件,其中使所述第二存储元件与所述第一数据结构产生关联包括解除所述第一数据结构与所述第二存储元件的关联;
从所述第一存储元件中擦除与所述第一存储元件相关联的所述内容;
使所述第一存储元件与一第三数据结构产生关联,所述第三数据结构经配置含有第三组存储元件;
从所述第三数据结构获得一第三存储元件;和
使所述第三存储元件与所述第一数据结构产生关联,其中使所述第三存储元件与所述第一数据结构产生关联包括解除所述第三数据结构与所述第三存储元件的关联。
39.根据权利要求38所述的方法,其中所述第一组存储元件包括多个存储元件,每个存储元件具有一个大于一平均擦除计数的擦除计数且所述第三组存储元件包括多个存储元件,每个存储元件具有一个小于所述平均擦除计数的擦除计数,且其中与所述第一存储元件相关联的所述内容基本上是静态的。
40.根据权利要求38所述的方法,其进一步包括:
比较与所述第一存储元件相关联的所述擦除计数和与所述非易失性存储器相关联的一个平均擦除计数;和
判定何时与所述第一存储元件相关联的所述擦除计数基本上小于所述平均擦除计数,其中当判定与所述第一存储元件相关联的所述擦除计数基本上小于所述平均擦除计数时,将与所述第一存储元件相关联的内容复制到所述第二存储元件中。
41.根据权利要求38所述的方法,其中所述非易失性存储器是一个NAND闪存。
42.一种存储器管理系统,所述存储器管理系统经配置以管理非易失性存储元件的分配,所述存储器管理系统包括:
用于维护一第一数据结构的构件,所述第一数据结构与擦除次数基本上小于一特定量的多个存储元件产生关联;
用于维护一第二数据结构的构件,所述第二数据结构与擦除次数基本上大于一特定量的多个存储元件产生关联;
用于维护一第三数据结构的构件,所述第三数据结构与不与所述第一数据结构或所述第二数据结构相关联的存储元件产生关联,其中至少复数个与所述第三数据结构相关联的所述存储元件含有数据;
用于判定何时取代所述第三数据结构的一第一存储元件的构件;和用于在判定所述第三数据结构的所述第一存储元件将被取代时使选自所述第一数据结构与所述第二数据结构之一的一第二存储元件与所述第三数据结构产生关联的构件。
43.根据权利要求42所述的存储器管理系统,其进一步包括:
用于判定所述特定量的构件,其中所述特定量是与所述第一数据结构的存储元件、所述第二数据结构的存储元件和所述第三数据结构的存储元件相关联的一平均擦除计数。
44.根据权利要求43所述的存储器管理系统,其进一步包括:
用于维持所述平均擦除计数的构件。
45.根据权利要求44所述的存储器管理系统,其进一步包括:
用于初始化所述第一数据结构的构件;
用于初始化所述第二数据结构的构件;和
用于初始化所述第三数据结构的构件。
46.根据权利要求44所述的存储器管理系统,其进一步包括:
用于将擦除次数基本上小于一特定量的所述存储元件的一第三存储元件从所述第一数据结构移到所述第二数据结构的构件。
47.根据权利要求44所述的存储器管理系统,其进一步包括:
用于将擦除次数基本上大于一特定量的所述存储元件的一第三存储元件从所述第二数据结构移到所述第一数据结构的构件。
48.根据权利要求42所述的存储器管理系统,其进一步包括:
用于将所述第一存储元件的内容和经配置用以取代与所述第一存储元件相关联的至少某些所述内容的新内容之一复制到所述第二存储元件的构件;
用于擦除所述第一存储元件的构件;和
用于递增与所述第一存储元件相关联的一擦除计数的构件。
49.根据权利要求44所述的存储器管理系统,其中所述存储元件是非易失性存储器中的区块。
50.根据权利要求49所述的存储器管理系统,其中所述非易失性存储器是一个NAND闪存。
51.一种存储器管理系统,所述存储器管理系统经配置以管理非易失性存储元件的分配,所述存储器管理系统包括:
用于将与一第一存储元件相关联的内容与经配置用以取代与所述第一存储元件相关联的所述内容的新内容之一复制到一第二存储元件中的代码装置,所述第二存储元件具有一个小于与所述第一存储元件相关联的一擦除计数的擦除计数,所述第二存储元件与一第一数据结构相关联,所述第一数据结构经配置含有一第一组存储元件;
用于使所述第二存储元件与一第二数据结构产生关联的代码装置,所述第二数据结构经配置含有一第二组存储元件,其中用于使所述第二存储元件与所述第一数据结构产生关联的所述代码装置包括用于解除所述第一数据结构与所述第二存储元件的关联的代码装置;
用于从所述第一存储元件中擦除与所述第一存储元件相关联的所述内容的代码装置;
用于判定何时使所述第一存储元件与所述第一数据结构产生关联的代码装置;
用于在判定所述第一存储元件将与所述第一数据结构产生关联时使所述第一存储元件与所述第一数据结构产生关联的代码装置,其中用于使所述第一存储元件与所述第一数据结构产生关联的所述代码装置包括用于解除所述第二数据结构与所述第一存储元件的关联的代码装置;
用于在判定所述第一存储元件将不与所述第一数据结构产生关联时使所述第一存储元件与一第三数据结构产生关联的代码装置,所述第三数据结构经配置含有一第三组存储元件;
一用于存储所述代码装置的存储器;和
一经配置以访问所述代码装置的处理器。
52.根据权利要求51所述的存储器管理系统,其进一步包括:
用于判定与所述存储元件相关联的一平均擦除计数的代码装置,其中与包括于所述第一组存储元件中的所述存储元件相关联的擦除计数基本上低于所述平均擦除计数,与包括于所述第三组存储元件中的所述存储元件相关联的擦除计数基本上高于所述平均擦除计数。
53.根据权利要求51所述的存储器管理系统,其进一步包括:
用于在擦除所述第一存储元件的所述内容之后递增所述第一存储元件的所述擦除计数的代码装置。
54.根据权利要求53所述的存储器管理系统,其中用于判定何时使所述第一存储元件与所述第一数据结构产生关联的所述代码装置包括:
用于比较所述第一存储元件的所述擦除计数及与所述第三组存储元件相关联的存储元件的擦除计数的代码装置。
55.根据权利要求54所述的存储器管理系统,其中当判定所述第一存储元件的所述擦除计数小于与所述第三组存储元件相关联的存储元件的擦除计数时,判定所述第一存储元件将与所述第一数据结构产生关联。
56.根据权利要求54所述的存储器管理系统,其中当判定所述第一存储元件的所述擦除计数大于与所述第三组存储元件相关联的至少一个存储元件的擦除计数时,判定所述第一存储元件将不与所述第一数据结构产生关联。
57.根据权利要求56所述的存储器管理系统,其中用于使所述第一存储元件与所述第三数据结构产生关联的所述代码装置包括:
用于获得一第三存储元件的代码装置,所述第三存储元件与所述第三组存储元件产生关联,所述第三元件具有一个小于所述第一存储元件的所述擦除计数的擦除计数;和
用于使所述第三存储元件与所述第一数据结构产生关联的代码装置,其中使所述第三存储元件与所述第一数据结构产生关联的所述代码装置包括用于解除所述第三数据结构与所述第三存储元件的关联的代码装置。
58.根据权利要求51所述的存储器管理系统,其进一步包括:
用于从所述第二数据结构获得所述第一存储元件的代码装置。
59.根据权利要求51所述的存储器管理系统,其中所述非易失性存储器是一个NAND闪存。
60.一种存储器管理系统,所述存储器管理系统经配置以管理非易失性存储元件的分配,所述存储器管理系统包括:
用于将与一第一存储元件相关联的内容复制到一第二存储元件中的代码装置,所述第二存储元件具有一个大于与所述第一存储元件相关联的一擦除计数的擦除计数,所述第二存储元件与一第一数据结构相关联,所述第一数据结构经配置含有一第一组存储元件;
用于使所述第二存储元件与一第二数据结构产生关联的代码装置,所述第二数据结构经配置含有一第二组存储元件,其中用于使所述第二存储元件与所述第一数据结构产生关联的所述代码装置包括用于解除所述第一数据结构与所述第二存储元件的关联的代码装置;
用于从所述第一存储元件中擦除与所述第一存储元件相关联的所述内容的代码装置;
用于使所述第一存储元件与一第三数据结构产生关联的代码装置,所述第三数据结构经配置含有一第三组存储元件;
用于从所述第三数据结构获得一第三存储元件的代码装置;
用于使所述第三存储元件与所述第一数据结构产生关联的代码装置,其中使所述第三存储元件与所述第一数据结构产生关联的所述代码装置包括用于解除所述第三数据结构与所述第三存储元件的关联的代码装置;
一用于存储所述代码装置的存储区域;和
一用于访问所述代码装置的处理器。
61.根据权利要求60所述的存储器管理系统,其中所述第一组存储元件包括多个存储元件,每个存储元件具有一个大于一平均擦除计数的擦除计数且所述第三组存储元件包括多个存储元件,每个存储元件具有一个小于所述平均擦除计数的擦除计数,且其中与所述第一存储元件相关联的所述内容基本上是静态的。
62.根据权利要求60所述的存储器管理系统,其进一步包括:
用于比较与所述第一存储元件相关联的所述擦除计数及与所述非易失性存储器相关联的一平均擦除计数的代码装置;和
用于判定何时与所述第一存储元件相关联的所述擦除计数基本上小于所述平均擦除计数的代码装置,其中用于复制与所述第一存储元件相关联的内容的所述代码装置包括用于在判定与所述第一存储元件相关联的所述擦除计数基本上小于所述平均擦除计数时将与所述第一存储元件相关联的所述内容复制到所述第二存储元件中的代码装置。
63.根据权利要求60所述的存储器管理系统,其中所述非易失性存储器是一个NAND闪存。
64.根据权利要求60所述的存储器管理系统,其中与所述第一元件相关联的所述内容是所述第一元件的所述内容与经配置用以取代所述第一元件的至少某些所述内容的基本新的内容之一。
CNB038247860A 2002-10-28 2003-09-10 非易失性存储系统中的损耗平衡 Expired - Fee Related CN100492322C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/281,739 US6985992B1 (en) 2002-10-28 2002-10-28 Wear-leveling in non-volatile storage systems
US10/281,739 2002-10-28

Publications (2)

Publication Number Publication Date
CN1701309A true CN1701309A (zh) 2005-11-23
CN100492322C CN100492322C (zh) 2009-05-27

Family

ID=32228772

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038247860A Expired - Fee Related CN100492322C (zh) 2002-10-28 2003-09-10 非易失性存储系统中的损耗平衡

Country Status (8)

Country Link
US (1) US6985992B1 (zh)
EP (1) EP1559018B1 (zh)
JP (1) JP4456486B2 (zh)
KR (2) KR20110056424A (zh)
CN (1) CN100492322C (zh)
AU (1) AU2003266007A1 (zh)
TW (1) TWI236019B (zh)
WO (1) WO2004040578A2 (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009006803A1 (fr) * 2007-07-05 2009-01-15 Actions Semiconductor Co., Ltd. Procédé et appareil pour effectuer un nivellement d'usure en mémoire
CN102365644A (zh) * 2009-03-31 2012-02-29 高通股份有限公司 用于保护具有磨损均衡的存储设备上的敏感数据的方法
CN101169751B (zh) * 2006-10-25 2012-07-04 三星电子株式会社 具有闪存设备的系统及其数据恢复方法
CN101739344B (zh) * 2008-11-17 2013-03-13 格林莱安特有限责任公司 控制非易失性存储装置中损耗的存储器控制器及操作方法
CN103425588A (zh) * 2012-05-18 2013-12-04 慧荣科技股份有限公司 数据储存装置和快闪存储器的区块管理方法
CN101640069B (zh) * 2008-08-01 2013-12-18 群联电子股份有限公司 用于闪速存储器的平均磨损方法与平均磨损系统
CN105934748A (zh) * 2013-10-18 2016-09-07 桑迪士克科技有限责任公司 用于储存系统中的损耗均衡的偏置
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions

Families Citing this family (115)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60316171T2 (de) * 2002-10-28 2008-05-29 SanDisk Corp., Milpitas Automatischer abnutzungsausgleich in einem nicht-flüchtigen speichersystem
US7328301B2 (en) * 2003-04-07 2008-02-05 Intel Corporation Dynamically mapping block-alterable memories
US7383375B2 (en) 2003-12-30 2008-06-03 Sandisk Corporation Data run programming
US7433993B2 (en) 2003-12-30 2008-10-07 San Disk Corportion Adaptive metablocks
KR20070007265A (ko) * 2003-12-30 2007-01-15 쌘디스크 코포레이션 제어 데이터 관리를 구비한 비휘발성 메모리 및 방법
US7139864B2 (en) 2003-12-30 2006-11-21 Sandisk Corporation Non-volatile memory and method with block management system
US7441067B2 (en) 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling
US8122193B2 (en) 2004-12-21 2012-02-21 Samsung Electronics Co., Ltd. Storage device and user device including the same
KR100684887B1 (ko) * 2005-02-04 2007-02-20 삼성전자주식회사 플래시 메모리를 포함한 데이터 저장 장치 및 그것의 머지방법
US20090172269A1 (en) * 2005-02-04 2009-07-02 Samsung Electronics Co., Ltd. Nonvolatile memory device and associated data merge method
US7315917B2 (en) 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
US8321686B2 (en) 2005-02-07 2012-11-27 Sandisk Technologies Inc. Secure memory card with life cycle phases
US8423788B2 (en) 2005-02-07 2013-04-16 Sandisk Technologies Inc. Secure memory card with life cycle phases
US8108691B2 (en) 2005-02-07 2012-01-31 Sandisk Technologies Inc. Methods used in a secure memory card with life cycle phases
US7224604B2 (en) * 2005-03-14 2007-05-29 Sandisk Il Ltd. Method of achieving wear leveling in flash memory using relative grades
US20060236025A1 (en) * 2005-04-18 2006-10-19 Intel Corporation Method and apparatus to control number of erasures of nonvolatile memory
US20060282610A1 (en) * 2005-06-08 2006-12-14 M-Systems Flash Disk Pioneers Ltd. Flash memory with programmable endurance
US7748031B2 (en) 2005-07-08 2010-06-29 Sandisk Corporation Mass storage device with automated credentials loading
US20070061597A1 (en) 2005-09-14 2007-03-15 Micky Holtzman Secure yet flexible system architecture for secure devices with flash mass storage memory
US8966284B2 (en) 2005-09-14 2015-02-24 Sandisk Technologies Inc. Hardware driver integrity check of memory card controller firmware
KR101185617B1 (ko) * 2006-04-04 2012-09-24 삼성전자주식회사 외부 메모리의 부하를 줄일 수 있는 웨어 레벨링 기법에의한 플래시 파일 시스템의 동작 방법
EP2024839B1 (en) 2006-05-15 2014-07-02 SanDisk Technologies Inc. Non-volatile memory system with end of life calculation
US8060718B2 (en) * 2006-06-20 2011-11-15 International Business Machines Updating a memory to maintain even wear
TW200814088A (en) * 2006-09-05 2008-03-16 Genesys Logic Inc Method for increasing read/write lifespan of flash memory
KR100771519B1 (ko) * 2006-10-23 2007-10-30 삼성전자주식회사 플래시 메모리를 포함한 메모리 시스템 및 그것의 머지방법
US20080126685A1 (en) * 2006-11-24 2008-05-29 Radoslav Danilak System, method, and computer program product for reducing memory write operations using an instruction set
US7904764B2 (en) * 2006-11-24 2011-03-08 Sandforce, Inc. Memory lifetime gauging system, method and computer program product
US7747813B2 (en) * 2006-11-24 2010-06-29 Sandforce, Inc. Multi-memory device system and method for managing a lifetime thereof
US7809900B2 (en) * 2006-11-24 2010-10-05 Sandforce, Inc. System, method, and computer program product for delaying an operation that reduces a lifetime of memory
US7904619B2 (en) 2006-11-24 2011-03-08 Sandforce, Inc. System, method, and computer program product for reducing memory write operations using difference information
US7904672B2 (en) 2006-12-08 2011-03-08 Sandforce, Inc. System and method for providing data redundancy after reducing memory writes
US8090980B2 (en) * 2006-12-08 2012-01-03 Sandforce, Inc. System, method, and computer program product for providing data redundancy in a plurality of storage devices
DE112006004187B4 (de) * 2006-12-27 2015-09-10 Intel Corporation Verfahren, nicht-flüchtige Speichervorrichtung und Computersystem zum initiativen Abnutzungsausgleich für einen nicht-flüchtigen Speicher
TW200828320A (en) * 2006-12-28 2008-07-01 Genesys Logic Inc Method for performing static wear leveling on flash memory
US8423794B2 (en) 2006-12-28 2013-04-16 Sandisk Technologies Inc. Method and apparatus for upgrading a memory card that has security mechanisms for preventing copying of secure content and applications
US20080172519A1 (en) * 2007-01-11 2008-07-17 Sandisk Il Ltd. Methods For Supporting Readydrive And Readyboost Accelerators In A Single Flash-Memory Storage Device
TWI368224B (en) 2007-03-19 2012-07-11 A Data Technology Co Ltd Wear-leveling management and file distribution management of hybrid density memory
US7731365B2 (en) * 2007-03-19 2010-06-08 Johnson&Johnson Vision Care, Inc. Method of fitting contact lenses
US7689762B2 (en) * 2007-05-03 2010-03-30 Atmel Corporation Storage device wear leveling
US20080294814A1 (en) * 2007-05-24 2008-11-27 Sergey Anatolievich Gorobets Flash Memory System with Management of Housekeeping Operations
US20080294813A1 (en) * 2007-05-24 2008-11-27 Sergey Anatolievich Gorobets Managing Housekeeping Operations in Flash Memory
JP4444314B2 (ja) 2007-07-13 2010-03-31 株式会社東芝 半導体メモリ情報蓄積装置とその書き込み制御方法
KR100857761B1 (ko) 2007-06-14 2008-09-10 삼성전자주식회사 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법
US8239612B2 (en) * 2007-09-27 2012-08-07 Tdk Corporation Memory controller, flash memory system with memory controller, and control method of flash memory
US7876616B2 (en) * 2007-11-12 2011-01-25 Cadence Design Systems, Inc. System and method for wear leveling utilizing a relative wear counter
US8296498B2 (en) * 2007-11-13 2012-10-23 Sandisk Technologies Inc. Method and system for virtual fast access non-volatile RAM
US7903486B2 (en) 2007-11-19 2011-03-08 Sandforce, Inc. System, method, and computer program product for increasing a lifetime of a plurality of blocks of memory
US7849275B2 (en) * 2007-11-19 2010-12-07 Sandforce, Inc. System, method and a computer program product for writing data to different storage devices based on write frequency
US9183133B2 (en) 2007-11-28 2015-11-10 Seagate Technology Llc System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory
KR101401560B1 (ko) * 2007-12-13 2014-06-03 삼성전자주식회사 반도체 메모리 시스템 및 그것의 마모도 관리 방법
KR100982591B1 (ko) * 2008-03-17 2010-09-15 한양대학교 산학협력단 단계적 인덱싱을 위한 파일 시스템, 메인 기억장치 및플래시 기억장치 그리고 상기 단계적 인덱싱을 통한 데이터관리 방법
US20090254729A1 (en) * 2008-04-07 2009-10-08 Skymedi Corporation Method of wear leveling for a non-volatile memory
US20090259819A1 (en) * 2008-04-09 2009-10-15 Skymedi Corporation Method of wear leveling for non-volatile memory
JP4439569B2 (ja) * 2008-04-24 2010-03-24 株式会社東芝 メモリシステム
JP2009266349A (ja) 2008-04-28 2009-11-12 Toshiba Corp 不揮発性半導体記憶装置
WO2009140700A1 (en) 2008-05-16 2009-11-19 Fusion Multisystems, Inc. Apparatus, system, and method for detecting and replacing failed data storage
KR101466585B1 (ko) 2008-07-10 2014-11-28 삼성전자주식회사 메모리 장치 및 메모리 장치의 관리 방법
US20100017566A1 (en) * 2008-07-15 2010-01-21 Radoslav Danilak System, method, and computer program product for interfacing computing device hardware of a computing device and an operating system utilizing a virtualization layer
US20100017588A1 (en) * 2008-07-15 2010-01-21 Radoslav Danilak System, method, and computer program product for providing an extended capability to a system
TWI385669B (zh) * 2008-07-23 2013-02-11 Phison Electronics Corp 用於快閃記憶體的平均磨損方法、儲存系統與控制器
KR101103061B1 (ko) * 2008-07-28 2012-01-06 주식회사 팍스디스크 반도체 스토리지 시스템 및 그 제어 방법
KR20100013485A (ko) 2008-07-31 2010-02-10 삼성전자주식회사 메모리 장치 및 웨어 레벨링 방법
JP2010055247A (ja) * 2008-08-27 2010-03-11 Hitachi Ltd ストレージシステム及び構成管理方法
US20100064093A1 (en) * 2008-09-09 2010-03-11 Radoslav Danilak System, method, and computer program product for converting data in a binary representation to a non-power of two representation
KR100974215B1 (ko) * 2008-10-02 2010-08-06 주식회사 하이닉스반도체 반도체 스토리지 시스템 및 그 제어 방법
CN101419842B (zh) * 2008-11-07 2012-04-04 成都市华为赛门铁克科技有限公司 硬盘的损耗均衡方法、装置及系统
US20100146236A1 (en) * 2008-12-08 2010-06-10 Radoslav Danilak System, method, and computer program product for rendering at least a portion of data useless in immediate response to a delete command
US8244960B2 (en) 2009-01-05 2012-08-14 Sandisk Technologies Inc. Non-volatile memory and method with write cache partition management methods
US8700840B2 (en) 2009-01-05 2014-04-15 SanDisk Technologies, Inc. Nonvolatile memory with write cache having flush/eviction methods
US8094500B2 (en) 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
TWI379194B (en) * 2009-01-15 2012-12-11 Phison Electronics Corp Block management method for flash memory, and storage system and controller using the same
JP4666080B2 (ja) * 2009-02-09 2011-04-06 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4666081B2 (ja) * 2009-02-09 2011-04-06 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4844639B2 (ja) * 2009-02-19 2011-12-28 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
TWI409819B (zh) * 2009-03-03 2013-09-21 Silicon Motion Inc 平均地使用一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器
KR101038991B1 (ko) * 2009-03-10 2011-06-03 주식회사 하이닉스반도체 메모리 영역의 균등한 사용을 위한 반도체 스토리지 시스템및 그 제어 방법
US8671258B2 (en) 2009-03-27 2014-03-11 Lsi Corporation Storage system logical block address de-allocation management
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
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
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
JP4952741B2 (ja) * 2009-04-15 2012-06-13 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US8281227B2 (en) * 2009-05-18 2012-10-02 Fusion-10, Inc. Apparatus, system, and method to increase data integrity in a redundant storage system
US8307258B2 (en) 2009-05-18 2012-11-06 Fusion-10, Inc Apparatus, system, and method for reconfiguring an array to operate with less storage elements
US20110004718A1 (en) 2009-07-02 2011-01-06 Ross John Stenfort System, method, and computer program product for ordering a plurality of write commands associated with a storage device
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
US8140712B2 (en) * 2009-07-17 2012-03-20 Sandforce, Inc. System, method, and computer program product for inserting a gap in information sent from a drive to a host device
US8516166B2 (en) * 2009-07-20 2013-08-20 Lsi Corporation System, method, and computer program product for reducing a rate of data transfer to at least a portion of memory
US8108737B2 (en) * 2009-10-05 2012-01-31 Sandforce, Inc. System, method, and computer program product for sending failure information from a serial ATA (SATA) solid state drive (SSD) to a host device
KR101097438B1 (ko) * 2009-10-29 2011-12-23 주식회사 하이닉스반도체 웨어 레벨링을 유동적으로 제어하는 반도체 스토리지 시스템 및 그 제어 방법
US8285946B2 (en) 2009-12-15 2012-10-09 International Business Machines Corporation Reducing access contention in flash-based memory systems
KR101090394B1 (ko) * 2009-12-24 2011-12-07 주식회사 하이닉스반도체 예비 영역을 유동적으로 관리하는 반도체 스토리지 시스템 및 그 제어 방법
US8621141B2 (en) 2010-04-01 2013-12-31 Intel Corporations Method and system for wear leveling in a solid state drive
KR20120001405A (ko) * 2010-06-29 2012-01-04 삼성전자주식회사 메모리 시스템 및 그것의 웨어 레벨링 방법
JP5296763B2 (ja) * 2010-11-11 2013-09-25 株式会社バッファロー 記憶装置、記憶プログラム及び制御方法
WO2012106362A2 (en) 2011-01-31 2012-08-09 Fusion-Io, Inc. Apparatus, system, and method for managing eviction of data
TWI443512B (zh) * 2011-07-13 2014-07-01 Phison Electronics Corp 區塊管理方法、記憶體控制器與記憶體儲存裝置
TWI585586B (zh) * 2011-10-31 2017-06-01 Data acquisition device and method thereof
JP5299493B2 (ja) * 2011-11-04 2013-09-25 ソニー株式会社 メモリシステム
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
US8750045B2 (en) 2012-07-27 2014-06-10 Sandisk Technologies Inc. Experience count dependent program algorithm for flash memory
US9032137B2 (en) 2012-11-21 2015-05-12 Intel Corporation Flexible wear management for non-volatile memory
US20140181368A1 (en) * 2012-12-26 2014-06-26 Unisys Corporation Equalizing wear on storage devices with write counters
US10019352B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for adaptive reserve storage
US10114562B2 (en) 2014-09-16 2018-10-30 Sandisk Technologies Llc Adaptive block allocation in nonvolatile memory
US9875039B2 (en) 2014-09-30 2018-01-23 Sandisk Technologies Llc Method and apparatus for wear-leveling non-volatile memory
US9830087B2 (en) * 2014-11-13 2017-11-28 Micron Technology, Inc. Memory wear leveling
US10338817B2 (en) 2014-12-30 2019-07-02 Sandisk Technologies Llc Systems and methods for storage recovery
KR102258126B1 (ko) 2015-03-19 2021-05-28 삼성전자주식회사 메모리 컨트롤러의 작동 방법, 이를 포함하는 데이터 저장 장치, 및 이를 포함하는 데이터 처리 시스템
US9817593B1 (en) 2016-07-11 2017-11-14 Sandisk Technologies Llc Block management in non-volatile memory system with non-blocking control sync system
KR20180045091A (ko) 2016-10-24 2018-05-04 에스케이하이닉스 주식회사 메모리 시스템 및 이를 이용한 웨어-레벨링 방법
US10976936B2 (en) * 2017-08-23 2021-04-13 Micron Technology, Inc. Sensing operations in memory
US10552145B2 (en) * 2017-12-12 2020-02-04 Cypress Semiconductor Corporation Memory devices, systems, and methods for updating firmware with single memory device
CN108089994B (zh) * 2018-01-04 2021-06-01 威盛电子股份有限公司 存储装置以及数据保存方法
CN108763099B (zh) 2018-04-18 2020-05-08 华为技术有限公司 系统的启动方法、装置、电子设备和存储介质
US11842062B2 (en) 2022-02-09 2023-12-12 Western Digital Technologies, Inc. Method of handling irregular MetaBlock wear leveling and UGSD boot time improvement

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2685173B2 (ja) 1986-05-31 1997-12-03 キヤノン株式会社 メモリ書き込み制御方法
JPH07109717B2 (ja) 1986-05-31 1995-11-22 キヤノン株式会社 メモリ書き込み制御方法
US5268870A (en) 1988-06-08 1993-12-07 Eliyahou Harari Flash EEPROM system and intelligent programming and erasing methods therefor
EP0392895B1 (en) 1989-04-13 1995-12-13 Sundisk Corporation Flash EEprom system
US5222109A (en) 1990-12-28 1993-06-22 Ibm Corporation Endurance management for solid state files
US6230233B1 (en) 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
US5438573A (en) 1991-09-13 1995-08-01 Sundisk Corporation Flash EEPROM array data and header file structure
TW261687B (zh) * 1991-11-26 1995-11-01 Hitachi Seisakusyo Kk
JP2856621B2 (ja) 1993-02-24 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
US5485595A (en) 1993-03-26 1996-01-16 Cirrus Logic, Inc. Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
US5388083A (en) 1993-03-26 1995-02-07 Cirrus Logic, Inc. Flash memory mass storage architecture
JP3507132B2 (ja) * 1994-06-29 2004-03-15 株式会社日立製作所 フラッシュメモリを用いた記憶装置およびその記憶制御方法
US5568423A (en) 1995-04-14 1996-10-22 Unisys Corporation Flash memory wear leveling system providing immediate direct access to microprocessor
US5907856A (en) 1995-07-31 1999-05-25 Lexar Media, Inc. Moving sectors within a block of information in a flash memory mass storage architecture
US5845313A (en) 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
US6125435A (en) 1995-09-13 2000-09-26 Lexar Media, Inc. Alignment of cluster address to block addresses within a semiconductor non-volatile mass storage memory
US5835935A (en) 1995-09-13 1998-11-10 Lexar Media, Inc. Method of and architecture for controlling system data with automatic wear leveling in a semiconductor non-volatile mass storage memory
US5860082A (en) 1996-03-28 1999-01-12 Datalight, Inc. Method and apparatus for allocating storage in a flash memory
US5715193A (en) 1996-05-23 1998-02-03 Micron Quantum Devices, Inc. Flash memory system and method for monitoring the disturb effect on memory cell blocks due to high voltage conditions of other memory cell blocks
US5956473A (en) 1996-11-25 1999-09-21 Macronix International Co., Ltd. Method and system for managing a flash memory mass storage system
US5832493A (en) 1997-04-24 1998-11-03 Trimble Navigation Limited Flash file management system
KR100297986B1 (ko) 1998-03-13 2001-10-25 김영환 플래쉬 메모리 셀 어레이의 웨어 레벨링 시스템 및 웨어 레벨링 방법
US6226759B1 (en) * 1998-09-28 2001-05-01 International Business Machines Corporation Method and apparatus for immediate data backup by duplicating pointers and freezing pointer/data counterparts
US6260156B1 (en) 1998-12-04 2001-07-10 Datalight, Inc. Method and system for managing bad areas in flash memory
US6426893B1 (en) 2000-02-17 2002-07-30 Sandisk Corporation Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks
US6732221B2 (en) 2001-06-01 2004-05-04 M-Systems Flash Disk Pioneers Ltd Wear leveling of static areas in flash memory

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101169751B (zh) * 2006-10-25 2012-07-04 三星电子株式会社 具有闪存设备的系统及其数据恢复方法
US8296539B2 (en) 2007-07-05 2012-10-23 Actions Semiconductor Co., Ltd. Method and apparatus for performing wear leveling in memory
WO2009006803A1 (fr) * 2007-07-05 2009-01-15 Actions Semiconductor Co., Ltd. Procédé et appareil pour effectuer un nivellement d'usure en mémoire
CN101640069B (zh) * 2008-08-01 2013-12-18 群联电子股份有限公司 用于闪速存储器的平均磨损方法与平均磨损系统
CN101739344B (zh) * 2008-11-17 2013-03-13 格林莱安特有限责任公司 控制非易失性存储装置中损耗的存储器控制器及操作方法
CN102365644A (zh) * 2009-03-31 2012-02-29 高通股份有限公司 用于保护具有磨损均衡的存储设备上的敏感数据的方法
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 慧荣科技股份有限公司 数据储存装置和快闪存储器的区块管理方法
CN105934748A (zh) * 2013-10-18 2016-09-07 桑迪士克科技有限责任公司 用于储存系统中的损耗均衡的偏置
CN105934748B (zh) * 2013-10-18 2019-03-01 桑迪士克科技有限责任公司 用于储存系统中的损耗均衡的偏置
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions

Also Published As

Publication number Publication date
KR101110901B1 (ko) 2012-04-06
CN100492322C (zh) 2009-05-27
US6985992B1 (en) 2006-01-10
TW200406771A (en) 2004-05-01
WO2004040578A3 (en) 2004-07-15
WO2004040578A2 (en) 2004-05-13
JP4456486B2 (ja) 2010-04-28
EP1559018A2 (en) 2005-08-03
AU2003266007A8 (en) 2004-05-25
AU2003266007A1 (en) 2004-05-25
EP1559018B1 (en) 2016-01-06
KR20110056424A (ko) 2011-05-27
TWI236019B (en) 2005-07-11
JP2006504195A (ja) 2006-02-02
KR20050050148A (ko) 2005-05-27

Similar Documents

Publication Publication Date Title
CN100492322C (zh) 非易失性存储系统中的损耗平衡
CN1701389A (zh) 维持非易失性存储系统中的平均擦除计数
CN100538660C (zh) 管理擦除计数区块的方法和设备
CN1698036A (zh) 跟踪非易失性存储器系统中最不频繁擦除区块
CN100385415C (zh) 用于维护擦除计数的非易失性存储器系统、数据结构和区块
CN1701390A (zh) 跟踪非易失性存储器系统中最频繁擦除区块
US7254668B1 (en) Method and apparatus for grouping pages within a block
US8537613B2 (en) Multi-layer memory system
CN1705936A (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
ASS Succession or assignment of patent right

Owner name: SANDISK TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: SANDISK CORP.

Effective date: 20120322

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120322

Address after: Texas, USA

Patentee after: Sanindisco Technology Co.,Ltd.

Address before: California, USA

Patentee before: Sandisk Corp.

C56 Change in the name or address of the patentee

Owner name: SANDISK TECHNOLOGY CO., LTD.

Free format text: FORMER NAME: SANDISK TECHNOLOGIES, INC.

CP01 Change in the name or title of a patent holder

Address after: Texas, USA

Patentee after: Sandy Technology Corp.

Address before: Texas, USA

Patentee before: Sanindisco Technology Co.,Ltd.

ASS Succession or assignment of patent right

Owner name: INTELLECTUAL PROPERTY HOLDING CO., LTD.

Free format text: FORMER OWNER: SANDISK TECHNOLOGY CO., LTD.

Effective date: 20131011

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20131011

Address after: Delaware

Patentee after: Intelligent intellectual property holdings LLC

Address before: Texas, USA

Patentee before: Sandy Technology Corp.

ASS Succession or assignment of patent right

Owner name: PS3 LIHAO COMPANY

Free format text: FORMER OWNER: INTELLECTUAL PROPERTY HOLDING CO., LTD.

Effective date: 20150216

Owner name: PS2 LIHAO COMPANY

Free format text: FORMER OWNER: PS3 LIHAO COMPANY

Effective date: 20150216

C41 Transfer of patent application or patent right or utility model
C56 Change in the name or address of the patentee

Owner name: JINGDUKUAI FLASH MEMORY SYSTEM COMPANY

Free format text: FORMER NAME: PS2 LIHAO COMPANY

CP01 Change in the name or title of a patent holder

Address after: Luxemburg Luxemburg

Patentee after: Longitude Flash Storage Systems Inc.

Address before: Luxemburg Luxemburg

Patentee before: PS2 ho Co.

TR01 Transfer of patent right

Effective date of registration: 20150216

Address after: Luxemburg Luxemburg

Patentee after: PS2 ho Co.

Address before: Luxemburg Luxemburg

Patentee before: PS3 ho Co.

Effective date of registration: 20150216

Address after: Luxemburg Luxemburg

Patentee after: PS3 ho Co.

Address before: Delaware

Patentee before: Intelligent intellectual property holdings LLC

C41 Transfer of patent application or patent right or utility model
C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: Texas, USA

Patentee after: SANDISK TECHNOLOGIES LLC

Address before: Texas, USA

Patentee before: SANDISK TECHNOLOGIES Inc.

TR01 Transfer of patent right

Effective date of registration: 20160719

Address after: Texas, USA

Patentee after: SANDISK TECHNOLOGIES Inc.

Address before: Luxemburg Luxemburg

Patentee before: Longitude Flash Storage Systems Inc.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090527

CF01 Termination of patent right due to non-payment of annual fee