CN1720590A - 非易失性存储系统中的自动磨损平衡 - Google Patents

非易失性存储系统中的自动磨损平衡 Download PDF

Info

Publication number
CN1720590A
CN1720590A CNA2003801047151A CN200380104715A CN1720590A CN 1720590 A CN1720590 A CN 1720590A CN A2003801047151 A CNA2003801047151 A CN A2003801047151A CN 200380104715 A CN200380104715 A CN 200380104715A CN 1720590 A CN1720590 A CN 1720590A
Authority
CN
China
Prior art keywords
district
physical
unit
address
block
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
CNA2003801047151A
Other languages
English (en)
Other versions
CN100483552C (zh
Inventor
卡洛斯·J·冈萨雷斯
凯文·M·康利
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=32230329&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CN1720590(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by SanDisk Corp filed Critical SanDisk Corp
Publication of CN1720590A publication Critical patent/CN1720590A/zh
Application granted granted Critical
Publication of CN100483552C publication Critical patent/CN100483552C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications
    • 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
    • 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/08Address circuits; Decoders; Word-line control circuits
    • 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
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • 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
    • 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

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)
  • Moulds For Moulding Plastics Or The Like (AREA)
  • Processing And Handling Of Plastics And Other Materials For Molding In General (AREA)
  • Automatic Assembly (AREA)
  • Safety Devices In Control Systems (AREA)
  • Investigating Or Analyzing Materials By The Use Of Electric Means (AREA)
  • Ventilation (AREA)

Abstract

本发明揭示数种在一非易失性存储系统中执行磨损平衡的方法和装置。本发明包括一种在一存储系统中执行磨损平衡的方法,所述存储系统包括一具有一包含内容的第一存储元件的第一区和一第二区,所述方法包括:识别所述第一存储元件;并将所述第一存储元件的内容与所述第二区相关联;同时使所述第一存储元件的所述内容与所述第一区不相关联。在一个实施例中,将所述第一存储元件的内容与所述第二存储元件相关联包括:将一第二存储元件的内容移动到一第三存储元件中,然后将所述第一存储元件的所述内容复制到所述第二存储元件中。

Description

非易失性存储系统中的自动磨损平衡
技术领域
本发明大体上涉及大容量数字数据存储系统,且更明确而言,本发明涉及一种用于自动允许将与非易失性存储系统中的存储区域相关的磨损分布遍及其存储区域的系统及方法。
背景技术
归因于如闪存存储系统的非易失性存储系统的紧凑物理大小和非易失性存储器的可被反复再编程的能力,所述存储系统的应用日益增加。闪存存储系统的紧凑物理大小促进了所述存储系统在变得逐渐流行的装置中使用。使用闪存存储系统的装置包括(但不限于)数码相机、数码摄像机、数码音乐播放器、手提个人计算机和全球定位装置。对包括在闪存存储系统中的非易失性存储器进行反复再编程的能力能够使得闪存存储系统被使用且再使用。
尽管闪存系统内的非易失性存储器或更具体而言为非易失性存储器存储单元可经反复地编程并擦除,但是在每一单元或物理位置被磨坏之前,只能对其进行一定次数的擦除。在某些系统中,在单元被认定为不可用之前,可对其进行约一万次的擦除。在其它系统中,在认为单元被磨坏之前,可对单元进行约十万次或甚至高达一百万次的擦除。当单元被磨坏时,进而导致闪存系统整个存储容量的一部分无法使用或其性能的重大降级,由于(例如)丢失已存储数据或无法存储数据,因而闪存系统的用户会受到不利影响。
闪存系统内的单元或物理位置上的磨损依据每个单元被编程的频率而变化。如果对一个单元或一般而言为一个存储元件进行一次编程且然后实际上永不对其进行再编程,那么与所述单元相关的磨损一般相对较低。然而,如果对一单元反复地进行写入及擦除,那么与所述单元相关的磨损一般相对较高。如所属领域技术人员所了解,由于逻辑块地址(LBA)被主机(例如,访问或使用一闪存系统的系统)用来访问存储于闪存系统中的数据,因而如果主机反复地使用相同的LBA来写入并重写数据,那么便对闪存系统内相同的物理位置或单元进行反复地写入及擦除。
当某些单元实际上被磨坏而其它单元相对未被磨损时,磨坏单元的存在通常使闪存系统的总性能受损。除了与磨坏单元本身相关的性能降级之外,当不足数量的未被磨坏单元可用来存储所要的数据时,闪存系统的总体性能可受到不利影响。通常,当闪存系统中存在相当多的磨坏单元时,即使闪存系统中的许多其它单元相对未磨损,仍可认为所述闪存系统为不可用。
为了增大闪存系统内的单元相当均匀地经磨损的可能性,通常执行磨损平衡操作。通常对磨损平衡操作进行配置以允许改变与特定LBA相关的单元,从而使得相同的LBA并非总是与相同的单元相关。通过改变与LBA相关的单元,从而一个特定单元在其它单元被磨坏之前很久便被磨坏的可能性很小。
一常规磨损平衡处理涉及交换物理位置,其中客户机或主机LBA的两个相对大的部分映射到所述物理位置。即,交换与存储单元相对大的部分相关的LBA。所述交换是通过来自客户机的手动命令(例如)通过使用一主机来启动,且结果所述交换对客户机而言是不透明的。另外,涉及在存储单元的两个相对大的部分之间移动数据的交换操作耗费时间且因此效率低。此外,由于相对长的持续期的交换操作消耗与整个闪存系统相关的重要资源,如(例如)时间和处理功率,因而使得整个闪存存储系统的性能受到不利影响。从一第一位置移动数据通常涉及将数据复制到另一位置中且将所述数据从第一位置擦除。
通过简单的允许单元磨损可免于进行磨损平衡。一旦单元实际上被磨坏,那么指派给所述单元的扇区可通过将与所述扇区相关的地址映射到备用区来重新分配。由于备用区或单元的数量有限且十分重要,因而无法总是存在用于与不可用单元相关的扇区形成映射的备用区。另外,实际上仅在单元已变得不可用之后进行重新映射的扇区通常使得整个闪存系统的性能降级。
因此,需要一种用于在闪存存储系统内有效地且透明地执行磨损平衡的方法和装置。即,需要一种自动磨损平衡处理,其在促进与闪存存储系统相关的物理位置中的更均匀磨损的同时,不会不利地影响闪存存储系统的性能。
发明内容
本发明涉及一种用于在非易失性存储系统中执行自动磨损平衡的系统和方法。根据本发明的一方面,用于在一非易失性存储系统中执行自动磨损平衡的方法,其中所述非易失性存储系统包括一具有包含内容的一第一存储元件的第一区和一第二区,所述方法包括:识别所述第一存储元件;并将所述第一存储元件的内容与所述第二区相关联;同时使所述第一存储元件的所述内容与所述第一区不相关联。在一实施例中,将所述第一存储元件的内容与所述第二存储元件相关联的步骤涉及将一第二存储元件的内容复制到一第三存储元件中,然后将所述第一存储元件的所述内容移动到所述第二存储元件中。
在一实施例中,由于与时常被写入并擦除的逻辑块地址相关联的存储元件可以在与时常被写入并擦除的逻辑块地址相关联之前,被并非时常经写入并擦除的存储元件所代替,因而在磨损平衡处理期间,通过使用渐进的自动磨损平衡处理将相对少量的数据移动到不同的存储元件(例如,物理块)中,可实现存储装置内存储元件的更均匀磨损。同样,可由与时常被写入并擦除的逻辑块地址相关联的存储元件代替与很少被写入并擦除的逻辑块地址相关联的存储元件,进而也使得存储元件的磨损变得更均匀。当将相对少量数据移动到不同存储元件时,可显著减少与执行磨损平衡相关的性能损失。
根据本发明的另一方面,用于在一存储系统中执行自动磨损平衡的方法涉及一直接寻址方案,所述直接寻址方案包括一第一存储元件和一第二存储元件,所述直接寻址方案包括:将所述第一存储元件中所含有的一第一组信息提供至所述第二存储元件,且将所述第二存储元件中所含有的一第二组信息提供至所述第一存储元件。当需要(例如)从访问所述存储系统的主机系统访问所述第一组信息时,可访问所述第二存储元件,且当需要访问所述第二组信息时,可访问所述第一存储元件。在一实施例中,将与存储系统相关的映射信息更新以指示第一组信息包含于第二存储元件中,且指示第二组信息包含于第一存储元件中。
根据本发明的又一方面,在一区迁移方案(zone migration scheme)中,一存储信息的存储系统包括一具有一第一存储元件的第一区和一具有一第二存储元件的第二区。将所述第一存储元件配置为包括如数据信息的内容。将所述存储系统的磨损平衡处理器配置为用于识别所述第一存储元件并将所述第一存储元件的内容与所述第二存储元件相关联。在一实施例中,所述第二区包括一第三存储元件,且所述磨损平衡处理器将第二存储元件的内容复制到第三存储元件中,擦除第二存储元件且将第一存储元件的内容复制到第二存储元件中。在所述实施例中,所述存储系统可包括由所述磨损平衡处理器更新的映射信息以指示第二存储元件与第一区相关联且指示第一存储元件与第一区相关联。
根据本发明的另一方面,用于在一存储系统中执行自动磨损平衡的方法涉及一区交换方案(zone swapping scheme),其包括识别一与所述存储系统相关的第一区并识别一同样与所述存储系统相关的第二区。所述第一区包括一含有第一内容的第一存储元件,且所述第二区包括一包括第二内容的第二存储元件。所述方法同样包括将所述第一内容存储到所述第二存储元件中且将所述第二内容存储到所述第一存储元件中。一旦将所述内容加以存储,当访问第一内容时,便在第二存储元件中访问第一内容,且当访问第二内容时,便在第一存储元件中访问第二内容。在一实施例中,第一区中的存储元件的大体所有原始内容均被存储到第二区中的存储元件中,且第二区中的存储元件的大体所有原始内容均被存储到第一区中的存储元件中。
本发明的额外的方面、优点和特征包括于随后对其示例性实施例的描述中。因此,出于以上所有目的,将本文所引用的所有专利案、专利申请案、文章、专利公开案和其它公开案的全文并入本文。
附图说明
参考以下结合随附图示的描述可最好地理解本发明,其中:
图1a为包括一非易失性存储装置的一般主机系统的图解表示。
图1b为一如图1a的存储装置120的存储系统的图解表示。
图2为一非易失性存储系统的一实施例的图解表示,其中所述非易失性存储系统上可实施直接寻址磨损平衡方案。
图3a为一包括物理位置及扇区组的非易失性存储系统的一实施例的图解表示。
图3b为一包括物理位置及扇区组的非易失性存储系统(例如,图3a的非易失性存储器304)在已交换扇区组之后的一实施例的图解表示。
图4为说明与识别一待进行磨损平衡处理的非易失性存储器内的扇区组相关的步骤的处理流程图。
图5为说明与一磨损平衡处理相关的步骤(即,图4的步骤428)的处理流程图。
图6为一包括区的非易失性存储系统的一实施例的图解表示。
图7为说明在内部区擦除-汇集情形中与一般的磨损平衡处理相关的步骤的处理流程图。
图8为说明在区交换的情况下与执行磨损平衡的一方法相关的步骤的处理流程图。
图9为说明与一使用一区边界迁移的磨损平衡的方法相关的步骤的处理流程图。
图10为在一区边界迁移处理或若干区边界迁移处理(例如图9的处理过程900)之后的存储装置的初始状态及所述存储装置的状态的图解表示。
图11a为一存储装置在一区边界迁移处理之前的初始状态的图解表示。
图11b为一存储装置(即,图11a的装置1100)在初始区边界迁移步骤期间的图解表示。
图11c为一存储装置(即,图11a的装置1100)在初始区边界迁移步骤已发生之后的图解表示。
图12a为一包括物理块的区在一内部区磨损平衡处理之前的图解表示。
图12b为一包括物理块的区(即,图12a的区1200)在一内部区磨损平衡处理之后的图解表示。
图13a包括物理块的区在一区交换磨损平衡处理之前的图解表示。
图13b为包括物理块的区(即,图13a的区1300)在一区交换磨损平衡处理之后的图解表示。
具体实施方式
A.存储组织和基本定义
本发明涉及存储系统中的磨损平衡处理,在所述存储系统中,擦除和写入循环数量增大能够使存储系统的性能逐渐恶化。尽管本文所描述的实施例描述基于非易失性EEPROM的存储系统,但是本发明的各方面可适用于与任何类型的易受“磨损”的存储介质。例如,非易失性存储器技术的新兴类型为相变存储器。通过改变给定材料的相位来存储信息。所述系统可同样易于“磨损”,随着媒体被循环次数的增加,存储介质便无法存储信息。本发明可易于应用于所述技术。
在一实施例中,闪存存储系统内的非易失性存储单元可被反复地进行编程和擦除,尽管在每个单元磨坏之前仅可进行一定次数的擦除。当一单元被磨坏时,与闪存存储系统整个存储容量的包括所述经磨坏单元的所述部分相关的性能产生显著降级,且存储于所述部分中的数据可能丢失,或变得无法将数据存储于所述部分中。不会不利地影响闪存存储系统性能的自动磨损平衡处理显著地允许有效地且大体上规则地产生磨损平衡。结果,与闪存存储系统相关的单元可更均匀地磨损,即,通常某些单元将不会比其它单元更快地磨损。因此,可延长闪存存储系统的寿命而无显著的性能损失。另外,由于磨损平衡基本上自动地发生,因而用户不必记着启动磨损平衡处理。
首先参看图1a,下文将描述一个包括(例如)如压缩闪存卡的存储卡的非易失性存储装置的一般主机系统。一主机或计算机系统100通常包括一系统总线104,其允许一微处理器108、一随机存取存储器(RAM)112和输入/输出电路116相互通信。应了解,主机系统100通常可包括其它组件,例如,显示装置和连网装置;出于说明的目的而未加以展示。
一般而言,主机系统100能够捕获或存储信息,所述信息包括(但不限于)静态图像信息、音频信息和视频图像信息。所述信息可被实时捕获,且可以以无线方式传输到主机系统100。尽管主机系统100基本上可为任何系统,但是主机系统100通常为诸如数码相机、摄影机、蜂窝通信装置、便携式计算装置、音频播放器或视频播放器的系统。然而应了解,主机系统100基本上通常可为任何存储数据或信息且检索数据或信息的系统。其同样可为仅捕获数据或仅检索数据的系统。即,主机系统100可为用于存储数据的专用系统,或者主机系统100可为用于读取数据的专用系统。举例而言,主机系统100可为被配置以仅写入或存储数据的存储写入器。或者,主机系统100可为如MP3播放器的装置,其通常被配置以读取或检索数据,但不捕获数据。
一非易失性存储装置120经配置为与总线104相对接以存储信息。一可选的接口电路块130可允许非易失性存储装置120与总线104通信。当接口电路块130(例如,接口)存在时,其用来减少总线104上的加载。非易失性存储装置120包括非易失性存储器124和存储控制系统128。在一实施例中,可在单一芯片或晶粒上实施非易失性存储装置120。或者,可基于一多芯片模块或基于多个分散式组件而实施非易失性存储装置120。下文将相对于图1b更详细地描述非易失性存储装置120的一实施例。非易失性存储装置120基本上可为任何适宜的非易失性存储装置,例如,可移动式存储卡或嵌入式子系统。
将非易失性存储器124配置为用来存储数据,以便可按需要访问并读取数据。存储数据、读取数据和擦除数据的处理通常由存储控制系统128来控制。在一实施例中,存储控制系统128管理非易失性存储器124的操作,以便通过使得非易失性存储器124的部分基本上大体均匀地磨损,从而大体上使其使用寿命最大化。
通常将非易失性存储装置120描述为包括一存储控制系统128,即,控制器。具体而言,非易失性存储装置120可包括数个单独芯片,以充当非易失性存储器124和控制器128的功能。举例而言,尽管包括(但不限于)PC卡、压缩闪存卡、多媒体卡和安全数字卡的非易失性存储装置包括可于一单独芯片上实施的控制器,但其它非易失性存储装置可以不包括于单独芯片上实施的控制器。在非易失性存储装置120不包括单独的存储器和控制器芯片的一实施例中,存储器和控制器的功能可集成到一个单一芯片中。另外,控制器可位于主机系统上,并将非易失性存储装置120通过连接器或任何其它类型的接口而连接到主机上的控制器。无论如何,本发明的范畴涵盖一存储系统的所有不同形式及组合,其中存储器媒体内的磨损平衡状况由一控制系统来控制。例如,可于主机系统的微处理器上的软件内实施所述控制器。
参看图1b,根据本发明的一实施例更详细地描述非易失性存储装置120。应了解,图1b展示包括一单一闪存芯片124和一单独控制器128的非易失性存储装置120的一实施例。存储器124可为一存储单元阵列连同形成于半导体基板上的适宜的寻址和控制电路,其中,通过将电荷的两个或两个以上的级或分布中的一个存储于存储单元的个别存储元件中而将一或一位以上的数据存储于个别存储单元中。非易失性闪存电可擦除可编程只读存储器(EEPROM)为所述系统的常见类型存储器的一个实例。
在所描述的实施例中,控制器128经由总线15与主机计算机或其它使用所述存储系统来存储数据的系统进行通信。总线15通常为图1a的总线104的一部分。控制系统128也控制存储器124的操作,其可包括一存储单元阵列11以在操作存储器124过程中写入主机所提供的数据、读取主机所请求的数据并执行各种内务处理功能。控制系统128可包括一具有相关存储器、各种逻辑电路及其类似物的通用微处理器或微控制器。通常还包括一或一个以上的状态机以控制特定例行程序的性能。
通常由控制系统128通过地址解码器17来对存储单元阵列11进行寻址。解码器17可将合适的电压施加到阵列11的字线和位线以将数据编程到一组经由控制系统128寻址的存储单元、从所述存储单元中读取数据或执行擦除。额外电路19可包括:数据寄存器;其用于暂时存储正被读取或写入的数据;编程驱动器,其根据编程到一寻址单元组中的数据而控制施加到阵列元素的电压;和状态机,其用以控制各种电压的定序并控制信号。电路19也可包括读出放大器和从存储单元的寻址组读取数据所必需的其它电路。通常将待编程到阵列11中的数据或最近从阵列11读取的数据存储于控制系统128内的缓冲存储器21中。控制系统128通常也含有用于暂时存储命令和状态数据及其类似物的各种寄存器。
在一特定实施例中,将阵列11划分成大量的块0-N存储单元。在优选实施例中,一个块为一擦除单元,即,存储单元可被同时擦除的最小量。通常将每个块划分成大量页面,又如图1b所说明。一个页面为编程的最小单元,且用户数据的一或一个以上扇区通常被存储于每个页面内。一个扇区为主机寻址或转移到非易失性存储器或从非易失性存储器所转移的逻辑数据的最小单元。在磁盘驱动应用程序中,此通常为512个字节。某些非易失性存储器允许部分页面编程,其中,第一次编程之后保持于擦除状态的所述个别位可在随后的页面编程操作中被编程而不需首先擦除所述页面。某些多状态存储器甚至可允许在较低编程状态中已被编程的位在随后的页面编程操作中被编程到较高状态。在这些存储器中,扇区或甚至扇区的部分可在不同的时间被编程。尽管如此,一个页面仍然是编程的基本单位;消除某些位且后来对其进行编程是合理的。本发明可应用于任何适宜的存储系统,无论擦除、读取和/或写入单元的物理实施情况如何。
如描述实施例的图1b所示,一个页面可包括用户数据和开销数据(overhead data)。开销数据通常包括一从页面中所含有的用户数据计算得到的误差校正码(ECC),且ECC可包括某些或全部开销数据。当数据已被编程到阵列11中时,控制系统128的一个部分23计算ECC,且当从阵列11读取数据时,控制系统128的一个部分23也核对ECC。开销数据也可包括用户数据的逻辑地址、页面和/或块的物理地址、地址映射信息、物理块所经历擦除循环的数量、加密信息和/或其它统计资料或数据。如图1b中所说明,可将部分或全部开销数据存储于每个页面中。或者,可将部分或全部开销数据存储于每一块内的特定位置中,或甚至可将其存储于一个与所述用户数据相分离的块中。
一个数据扇区最通常被包括于每个页面中,但是两个或两个以上的扇区却可形成一个页面,或者一个页面可小于一个扇区。例如,美国专利5,890,192和5,430,859描述了以字节片为单位编程并读取数据,其中一个字节片为一扇区的一小部分,所述专利案的全文以引用方式并入本文中。在某些存储系统中,一个扇区被包括于一个页面中,且一个页面可形成一个块。更通常而言,在NAND存储系统中,每一页面中包括一或一个以上的扇区,且8、16或32个页面形成一个块。在其它存储系统中,相对大数量的页面(诸如512个、1024个或更多个页面)形成块。选择块的数量以提供存储系统所需的数据存储能力。通常将阵列11划分成若干个子阵列(未图示),每一子阵列含有一定比例的块,所述块彼此独立操作以增加各种存储操作执行中的并行度。在先前所引用的美国专利第5,890,192号中描述了多个子阵列的用途的一实例。
当非易失性存储器124的一特定部分(例如,一组存储元件)被反复地编程并擦除时,所述特定部分通常比未被连续编程的部分磨损得更快。为了有效地“均匀”非易失性存储器124内不同区域的磨损,可自动执行磨损平衡,以减少对被反复编程的部分的编程,同时可利用不经常被编程的部分,而非过度循环被反复编程的部分。
一般而言,为了执行磨损平衡,可使与已被编程一给定次数的物理位置(例如一或一个以上单元或存储元件)的一或一个以上物理位置相关联的逻辑地址(例如,逻辑块地址和/或柱面-磁头-扇区地址)再次与一未被反复编程的不同物理位置相关联。例如,可将被最多编程的物理位置的内容与被最少编程的物理位置的内容相交换,以致使物理位置的磨损基本上均匀。所述处理可在一直接映射寻址磨损平衡方案中进行,其中一给定逻辑地址与一特定物理位置相关联且持续一“长”时间段,直到通过诸如磨损平衡等某一特定事件被重新指派。此方案有时被称为(静态)关联映射。
也可在使用间接寻址以将逻辑地址映射到物理地址的系统中执行磨损平衡。在所述系统中,一给定逻辑地址在不同的时间映射到不同的物理位置,通常随每一次逻辑更新而改变。暂时不使用但在物理上被擦除的块的集合通常形成一擦除池(erase pool)。在擦除-汇集磨损平衡方案中,可将一区中的受磨损最多的物理位置的内容移动到所述相同区中被擦除的物理位置,以减缓受磨损最多的物理位置磨损的速率,或可交换或重新界定所述区以防止某些物理位置以比其它物理位置高得多的速率被磨损。
可进一步在使用物理存储器的区的系统中实施本发明。区可为物理存储器或存储系统的任何分割的子集,特定范围的逻辑块被映射到所述区。包括于一区中的物理块的数量比映射到所述区的逻辑块的数量更多,以提供额外的预擦除的块。例如,可将能够存储64兆字节数据的存储系统分割成四个区,每个区存储16兆字节数据。然后,同样将逻辑块的范围划分成四个组,每一组对应四个区中每个区的物理块。在典型的实施过程中,对逻辑块加以限制以使得每一逻辑块的数据决不会被写入到逻辑块所映射到的单一物理区之外。在被划分成平面(子阵列)的存储单元阵列中,每一平面具有其自身的寻址、编程和读取电路,每一区优选地包括来自多个平面的块,通常包括来自每一平面的相同数量的块。区主要用于简化如逻辑到物理的转换的寻址管理,从而致使产生较小的转换表、保存所述表所需的较小的RAM存储器和寻址存储器的当前活性区的较快的访问时间,但是由于其限制性性质,可致使产生小于最佳磨损平衡的磨损平衡。
随着存储系统大小的增加(现今存储器超过1千兆字节),整个物理存储器上的磨损平衡可为棘手的、耗时的且需要过多的存储空间来维持磨损统计。然而,可通过以下方式执行磨损平衡:在一区内(区内部)通过使一区内擦除单元的磨损平衡,或在区之间(区间)通过使区之间的擦除单元磨损平衡,或交换整个区,其中一区比另一区具有更多的磨损。在另一变型中,可实施动态或偏移区的磨损平衡。在所述实施例中,区的大小和/或位置并非静态的。例如,将一或一个以上的擦除单元从第一区分配到第二区可为有利的,以致使第二区大于第一区。另外,一区的物理位置可最初开始于存储器的一个物理部分中,但是在磨损平衡操作之后,所述区可在存储器内移动一偏移量或完全地移动。此可要求其它区类似地移动一偏移量或某些其它增量以允许物理存储器的完全利用。
以下将相对于图2至图5来描述一直接映射寻址方案,同时以下将参看图6至图10来描述一擦除-汇集方案。
B.直接映射磨损平衡
在一直接映射寻址方案中,通常将与特定主机逻辑地址(例如,逻辑块地址或LBA)相关联的数据存储于特定物理位置中,甚至在反复写入/擦除循环工作之后也是如此。所描述实施例参考逻辑块地址加以论述,但是任何类型的逻辑地址均为可利用。当主机系统写入或再写相同的逻辑块地址时,数据被写入相同的物理地址中。通常,位于物理地址处的物理存储器被擦除,且然后被再写入与LBA相关联的新数据和/或更新的数据。通常保持逻辑地址与物理地址之间的关联,直到由于(例如)磨损平衡过程而改变与LBA相关联的映射。由于某些LBA可被反复地编程,因而与所述LBA相关联的物理位置可相对较快地被磨坏。通过将被反复编程的LBA重新映射到一先前与很少被编程且因此很少被擦除的物理位置相关联的物理位置,可均匀所述两个物理位置上的磨损。
图2为其上可实施直接寻址磨损平衡方案的非易失性存储系统的图解表示。一非易失性存储系统200包括一由一存储控制器208控制(例如,分配)的非易失性存储器204。可包括磨损平衡功能的韧件211或一磨损平衡处理器212与存储控制器208相配合以在非易失性存储器204上执行磨损平衡处理。或者,可由电路、韧件、软件或其任何组合来执行磨损平衡。存储控制器208使用映射信息214以将LBA映射到非易失性存储器204内的物理位置。
通常将非易失性存储器204划分成平面218a-218d。每个平面可包含任何数量的含有物理页面的擦除单元(例如,块)。块226a为与平面218a相关的若干块中的一个块。类似地,块226b为与平面218b相关的若干块中的一个块。每个块包含一或一个以上的页面:页面222a和页面222b为与平面218a的顶部块相关的两个页面。可将来自两个或两个以上的不同平面中每个平面的一个块加以组合以形成一元数据块(metablock)。例如,可将块226a、226b、226c和226d加以组合以形成元数据块226。在所描述的实施例中,将与磨损平衡处理器212相配合的存储控制器208加以配置以有效地交换块或元数据块。交换块需要交换块内的数据内容,以使得块和(在某些情况下)元数据块的物理位置相对于与扇区、块或元数据块相关的LBA而变化。通常在某些或非(NOR)存储器中使用直接映射,在所述NOR存储器中一单一页面形成一块且写入和擦除两者的基本单元为一个页面。
图3a为一包括物理位置和扇区组的非易失性存储器实施例的图解表示。一非易失性存储器304包括物理位置306,所述物理位置306将数据包含于扇区组310中。尽管基本上任何扇区组310均被交换或否则被调换,但是通常将位于具有最多磨损或具有最高循环计数的物理位置306中的扇区组310与位于具有最少磨损的另一物理位置306中的扇区组310相交换。应了解,在没有循环计数信息的情况下,可随机或按算法选择位置。
出于论述的目的,物理位置“0”306a具有最多磨损,而物理位置“N”306c具有最少磨损。即,物理位置“0”306a内所含有的数据时常被擦除,而物理位置“N”306c内所含有的数据很少被擦除。因此,为了均匀与非易失性存储器304内的物理位置306相关的磨损,可在磨损平衡处理中将物理位置“0”306a的内容与物理位置“N”306c的内容相交换。换句话说,扇区组“A”310a可与扇区组“B”310c相交换,以使得扇区组“A”310a被存储于物理位置“N”306c中,且扇区组“B”310c被存储于物理位置“0”306a中,如图3b中所示,其与同样被交换的主机逻辑块地址相关。因此,下一次扇区组“A”310a待擦除时,所述擦除程序将相对于物理位置“N”306c而发生。因此,由于循环计数通常追踪与特定物理位置306相关联的擦除和写入循环的数量,因而与物理位置“N”306c相关联的循环计数随之增加。
一般而言,在直接寻址方案内,当满足一触发条件时,可自动启动一磨损平衡处理。所述触发条件可为:预定时间段的末端,或当一或一个以上物理位置的循环计数达到一个相对或绝对的临限级,或当一或一个以上的物理位置被判定为展示出性能的显著降级时。其可当发生特定数量的主机写入操作时被触发。用于启动磨损平衡处理的其它方法包括(但不限于):追踪主机操作的数量且当主机操作数量达到一特定数量时启动磨损平衡;及产生用于开始磨损平衡处理的随机数或伪随机数。
参看图4,下文将描述与识别非易失性存储器内的待经历磨损平衡处理的一或一个以上的扇区相关的步骤。识别一或一个以上的待交换扇区的处理过程400在步骤404中开始,在所述步骤中确定是否已满足触发条件。即,判定是否启动一磨损平衡处理过程。所述判定可由控制非易失性存储器的存储控制器来做出。在所述实施例中,判定是否已满足触发条件即为判定(例如)从上次磨损平衡处理之后是否经过一预定时间段。或者,主机系统可判定何时启动磨损平衡操作。在另一实施例中,用户可具有启动磨损平衡的选择权,且在所述实施例中,存储控制器或主机系统可向用户提示有关启动磨损平衡操作的适宜时间。
如果判定尚未经过一预定时间段,那么可(例如)在稍后的时间做出另一判定以判定是否已经过所述预定时间。或者,如果判定已经过一预定时间段,那么在步骤408中,获得非易失性存储器内每一物理位置或处于某范围内的每一物理位置的热计数(hot count)或循环计数,以限制搜索时间。一旦获得了热计数,便在步骤412中识别出具有指示最多已知磨损的最高值的热计数。类似地,在步骤416中识别出具有最低值或最低已知磨损的热计数。当然,可使用最高或最低热计数(如,足够高或足够低)的近似值,尤其当使用搜索算法时,可使用所述近似值。
在步骤420中,将存储于具有最高热计数的物理位置中的一或一个以上的扇区识别为一扇区组“A”,而在步骤424中,将存储于具有最低热计数的物理位置中的一或一个以上的扇区识别为一扇区组“B”。一旦识别出扇区组“A”和扇区组“B”,便可在步骤428中相对于具有最高和最低热计数的物理位置而执行磨损平衡处理。下文将相对于图5论述一个适宜的磨损平衡处理。在执行磨损平衡处理之后,便完成了待经历磨损平衡处理的扇区组的识别处理。
图5为说明与磨损平衡处理相关的步骤的一实例的处理流程图,即,图4实施例的步骤428。磨损平衡处理428在步骤504中开始,在所述步骤中,将扇区组“A”(例如)从具有最高热计数的物理区域复制到备用区或复制到非易失性存储器内的当前大体上未存储任何信息的区域中。一旦将扇区组“A”复制到备用区,就在步骤508中将与原扇区组“A”相关联的物理位置进行擦除。在步骤512中,将扇区组“B”复制到先前由扇区组“A”所占据的物理位置中。一旦将扇区组“B”加以复制,就可在步骤516中擦除从其中复制扇区组“B”的物理位置。在擦除从其中复制扇区组“B”的物理位置之后,在步骤520中将存储于备用区中的扇区组“A”复制到先前由扇区组“B”所占据的物理位置中。然后,在步骤524中,可擦除所述备用区。
为了使访问非易失性存储器的主机系统或(更具体而言)主机计算机系统能够在发生磨损平衡之后使得所请求的信息位于非易失性存储器内,在步骤528中将允许存储控制器访问正确信息的映射信息加以更新。将映射信息加以更新,以使得用于访问存储于扇区组“A”和“B”中的信息的主机LBA可访问扇区组“A”和“B”在发生磨损平衡处理之后被存储的新物理位置。一旦映射信息被更新,就完成了执行磨损平衡程序的处理。映射信息可被存储于如图2中易失性RAM中的表214中,且/或可部分或全部地包含于非易失性存储器中。
尽管直接寻址情况中的磨损平衡处理已被描述为交换两组扇区组,但是所述磨损平衡处理通常可包括交换任何数量的扇区组。例如,除了将与最高热计数相关联的物理位置中的扇区组和与最低热计数相关联的物理位置中的扇区组相交换之外,也可将与第二高热计数相关联的物理位置中的扇区组和与第二低热计数相关联的物理位置中的扇区组相交换。即,可并行地或串行地执行磨损平衡处理的若干重复操作。此外,替代在磨损平衡处理期间将与最高热计数相关联的物理位置中的扇区组和与最低热计数相关联的物理位置中的扇区组相交换,可将大体上任何两个扇区组加以交换且可随机地或基于某个确定性方法来选择所述扇区组。
C.擦除汇集(erase pooline)
如先前所提及,除了将一磨损平衡处理并入直接处理方案中之外,可将一磨损平衡处理替代地并入擦除汇集方案中。在一擦除-汇集方案中,通常将扇区分组到与物理块并非静态相关联的逻辑块中。逻辑块通常含有一主机LBA范围内的数据,但是所述数据在每次将数据写入或更新到所述LBA时被存储于闪存系统中的不同物理位置。每个物理块可含有逻辑地址域或其物理内容的某些其它识别。将所述映射信息保存于可由控制器所便利地访问的易失性区域中的表中通常是很便利的。在某些实施例中,在每次向闪存系统通电时形成所述表,以减少访问不同的LBA时连续搜索不同的逻辑块的需要。建构所述表所必须的信息也可被存储于非易失性存储器中,其可与实际用户数据一同存储或与实际用户数据相分离。
在一种类型的非易失性存储系统中,所述阵列被组织成区。图6为包括所述区的非易失性存储系统的图解表示。一非易失性存储系统600包括可由一存储控制器608控制的一非易失性存储器604。存储控制器608使用磨损平衡处理器610以在非易失性存储器204上执行磨损平衡处理。可由存储控制器608访问的易失性存储器612可含有如逻辑地址到物理地址的映射的映射信息。非易失性存储器604被划分成区614。区614的大小以及区614的数量可依据非易失性存储器604的大小和非易失性存储系统600的要求而变化。区614通常被划分成物理块618,在一实施例中,所述物理块618可如先前所述地分组成元数据块。每个块或元数据块含有一或一个以上数据扇区中每个数据扇区的一或一个以上的组(页面)622。在存储单元阵列区的一典型应用中,将一特定非重叠范围的主机逻辑块地址(LBA)映射到每个物理区中,且此映射不改变。可以此方式界定一区以包括来自利用多个平面的存储架构中的两个或两个以上平面的块,每个区通常包括在各自区内具有相同的相对物理地址的相同数量的块。一物理区被界定为一块,其中分散范围的主机LBA中的一个被映射至所述块,且同样的,可在逻辑上重新配置所述物理区。对于每个区而言,通常可对物理块地址加以选择以使其邻接,但此并非一项要求。
在擦除-汇集方案中,磨损平衡可发生于一区614内或若干区614之间。举例而言,在一区614内,一组扇区622可于物理块618之间移动,以使得没有单一的物理块618比相同区614内其它物理块618磨损得更快。以下将参看图7描述所述区内的擦除-汇集方案。当磨损平衡发生在两个区614之间时,可移动区614的位置以基本上防止个别区614比其它区614磨损得更快,以下将相对于图8和图9加以论述。
1.区内的磨损平衡
在区内的磨损平衡处理期间,逻辑块通常保持与单一区内,且结果,用于界定区的区边界实际上无法移动。然而,与区内的物理地址相关联的逻辑关联被移动。图12a为在区内磨损平衡处理发生之前包括有物理块的一区的图解表示。在一区1200内,物理块1202可包括逻辑内容或与逻辑块1206相关联的内容。初始地,物理块1202a可包括与逻辑块1206a相关联的数据,而物理块1202b可有效地为一擦除块,即,逻辑块1206b可基本上不含有内容。区内磨损平衡可允许逻辑块1206在区1200内有效地移动,如图12b所示。如所展示,一旦发生区内磨损平衡,就已将逻辑块1206a的内容移动到物理块1202b中,进而致使物理块1202a待擦除。经擦除的物理块1202a有效地包括基本上不含内容的逻辑块1206b。因此,物理块1202a为一经擦除的块,而物理块1202b与逻辑块1206a相关联。应了解,可更新含有与区1200相关联的映射信息的数据结构以保存与逻辑块1206a相关联的数据的新位置。
参看图7,下文将描述与区内擦除-汇集情况下的示例性一般磨损平衡处理相关的步骤。处理过程700在步骤702中开始,在此步骤中做出是否执行一磨损平衡处理的判定。尽管可使用各种不同的方法或触发事件,其中包括先前在直接寻址磨损平衡处理中所描述的方法和触发事件而做出所述判定,但在所描述的实施例中,通过使用随机或伪随机数来做出所述判定。在一实施例中,一个区可涵盖整个装置或若干装置。
在步骤703中做出是否将要执行磨损平衡的判定。在所描述的实施例中,所述判定可包括使用一掩码以减少实际上响应所述触发事件的可能性。例如,如果将一含有“1”与“0”的某些组合的数用作一掩码来与用于触发的随机数进行逻辑与(AND),那么将忽略某些触发事件且将不执行磨损平衡。然后,处理过程流程返回步骤702,以做出有关是否适宜执行磨损平衡的另一判定。或者,如果在步骤703中判定执行磨损平衡,那么接着磨损平衡过程在步骤704中开始,其中,扇区组“A”被复制到位于与扇区组“A”相同的区内的一擦除池中。所述擦除池为区内的所有其它擦除块。通常可大体上使用任何方法来选择扇区组“A”。例如,可随机地选择扇区组“A”或可确定性地选择扇区组“A”。
将扇区组“A”复制到擦除池中之后,在步骤708中,先前含有扇区组“A”的物理位置被擦除。同样地,经擦除的物理位置或块有效地变成擦除池的一部分。一旦先前含有扇区组“A”的物理位置被擦除,就完成了执行作为擦除汇集方案的一部分的磨损平衡处理的处理过程。应了解,通常更新含有映射信息的任何数据结构以反映扇区组“A”的新位置。
区内磨损平衡通常使磨损能够在一给定区内基本上均匀地分布。然而,当一给定区比其它区更频繁地被编程或擦除时,在磨损平衡处理期间所述磨损可被分布于不同的区上。因为逻辑区通常含有固定范围的主机LBA,所以将磨损分布于不同的区上可包括移动所述区的物理边界。
同样应注意,本文所描述的区内磨损平衡技术可应用于具有单一区的存储系统。另外,下文第4部分中描述单一或区内磨损平衡的另一实例。
2.区交换
当物理块的磨损为此类情形,即一个装置的大体上仅一个部分预计为频繁地被使用时,可有利地使用一涉及将磨损频繁的区与磨损较少的区相交换的磨损平衡处理过程。使用区交换的磨损平衡处理允许将两个区的物理位置相交换。一旦启动了磨损平衡处理或操作,每个区中的块的内容就被复制到其它区中。由于含有相对大量数据的区通常耗费大量的时间来进行交换,所以应了解,区的交换可在涉及非易失性存储装置的标准活动的后台执行。
为了大体上防止访问正被移动的数据,且此外为了大体上防止非易失性存储装置在磨损平衡操作中间过程中断电,以致使非易失性存储装置的内容不可访问,可实施各种数据结构。例如,数据结构可指示磨损平衡处理处于哪一阶段,以使得可大体上依据磨损平衡处理的当前阶段而限制对数据的访问。各种数据结构也能够判定出交换操作何时处于进行过程中,且含有可用于使一中断的交换操作持续进行的信息。
当在磨损平衡期间随机或确定性地选择两个区以调换位置时,可将每个区的块复制到另一区中。在区交换期间,可替代地将块从一个区的开始复制到另一个区中,以使得在区交换期间每个区的物理开始含有与另一区相关的块。图13a为区交换磨损平衡处理之前包括物理块的示例性区的图解表示。物理区1300包括物理块1310、1320。具体而言,区“A”1300a包括物理块1310,而区“B”1300b包括物理块1320。在一初始状态中,一包括一逻辑块1314a的第一逻辑区基本上整个处于区“A”1300a内,而一包括逻辑块1314b-d的第二逻辑区基本上整个处于区“B”1300b内。如所展示,物理块1320c初始地为一擦除块。
在区交换期间,将逻辑块1314的内容在区1300之间移动。在一特定实例中,可将存储于物理块1320a中的与逻辑块1314b相关联的内容移动到相同的区内如物理块1320c的可利用擦除块中,从而为开始交换腾出空间。然后,将物理块1320a擦除。然后,将与逻辑块1314a相关联的内容在区之间移动,从物理块1310a移动到经擦除的物理块1320a中,且将逻辑块1314c的内容在区之间移动,从物理块1320c移动到物理块1310a中。然后,可将物理块1310c擦除,且使其变为可用于下一轮区之间的数据交换。图13b描绘在涉及于区1300a与1300b之间交换两个逻辑数据块1314a和1314c的所述初始步骤之后的图13a的区1300。如所展示,逻辑块1314c与区“A”1300a相关联,同时逻辑块1314a与区“B”1300b相关联。在区交换处理之后,尽管逻辑块1314b、1314d包含于不同的物理块1320内,但是逻辑块1314b、1314d保持与区“B”1300b相关联。
一般而言,在区交换过程中,交换边界发生移动。所述交换边界为一给定区中的一个块,所述块划定边界以使得基本上所有先前包含数据的块均具有已从另一区复制得来的数据。在与区交换相关的初始步骤之前,如图13a中所示,区“A”1300a中的交换边界为物理块1310a且区“B”1300b中的交换边界为物理块1320a。然而,在与区交换相关的初始步骤之后,如图13b中所示,区“A”1300a中的交换边界为物理块1310b,而区“B”1300b中的交换边界为物理块1320b。
接着参看图8,下文将描述与执行包括区交换的磨损平衡的示例性方法相关的步骤。处理过程800在步骤802中开始,在该步骤中确定是否执行磨损平衡处理过程。如上文所述,尽管可使用各种不同方法来做出所述判定,但是在所描述的实施例中,通过使用随机数或伪随机数来做出所述判定。在步骤803中,基于步骤802中所研究的信息来做出关于是否将要执行磨损平衡的判定。如果判定将不执行磨损平衡,那么处理流程返回步骤802,在该步骤中,做出有关是否适宜执行磨损平衡的另一判定。所述随后的判定可在某段时间之后做出。
或者,如果在步骤803中做出将要执行磨损平衡的判定,那么,磨损平衡程序在步骤804中开始,在该步骤中,在与区“B”相关的一交换边界处的一第一区(例如,区“B”)中的一物理块的内容复制到区“B”中的一擦除块。如果区边界处的物理块已擦除,那么无需此步骤。在处理过程800开始之前,交换边界可为区“B”的第一物理块。一旦在步骤804中将物理块的内容加以复制,就在步骤808中将区“B”中交换边界处的物理块擦除。将区“B”中交换边界处的物理块擦除有效地在区“B”开始处清理出一空间。在擦除区“B”中交换边界处的物理块之后,在步骤812中,在交换边界处将第二区(例如区“A”)中交换边界处的物理块的内容复制到区“B”中交换边界处的已擦除物理块中。也就是说,将一“源块”的内容复制到一“目的块”中。一旦将区“A”中交换边界处的物理块的内容加以复制,就在步骤816中将区“A”中交换边界处的物理块擦除。然后,在步骤820中,更新映射信息。一般而言,更新映射信息包括更新任何含有映射信息的数据结构,其中所述映射信息包含其中已复制有数据的块的信息以及已被擦除的块的擦除状态信息。所述映射信息可被存储于控制器的非易失性存储器中或易失性存储器中。
一旦更新映射信息,就在步骤824中将与区“B”相关的交换边界处的物理块的内容复制到区“A”中交换边界处的经擦除块中。应了解,步骤824中与区“B”相关的交换边界与步骤804中与区“B”相关的交换边界是不同的,这是因为当将与区“A”相关的内容复制到与区“B”相关的原交换边界处的物理块中时,交换边界已被有效地移动。类似地,当将与区“B”相关的内容复制到一先前为区“A”的一部分的物理块中时,与区“A”相关的交换边界同样已被有效移动。
在步骤828中,将与区“B”相关的交换边界处的物理块擦除,即,将在步骤824中从其中复制内容的源块擦除。然后,在步骤832中,更新映射信息以识别特定信息(例如,经复制的内容)所处的物理位置,并识别与已被擦除的物理块相关的擦除状态。然后,在步骤836中,判定是否已将区“A”与区“B”完全地相交换。即,判定是否已将先前在区“A”中的所有内容复制到区“B”中且是否已将先前在区“B”中的所有内容复制到区“A”中。
当在步骤836中判定已完全交换区“A”与区“B”时,就完成了在交换区的情况下执行磨损平衡的处理。或者,如果在步骤836中判定区“A”与区“B”尚未完全交换,那么处理流程返回步骤812,其中,将区A交换边界处的物理块的内容复制到区“B”中交换边界处的经擦除块中。在磨损平衡处理期间,必须维持用于记录进行情况的非易失性表,以使得在断电或如果磨损平衡处理被主机访问临时中断之后仍可继续处理。
区交换发生的速率可广泛的变化。在一实施例中,可调整块内容被交换的速率,以使得所述交换在许多主机操作上逐渐发生。应了解,如果交换操作在主机操作的后台下进行,那么可在区被交换过程的同时发生主机操作。在所述状况下,存储装置的操作为此类情况,即:区内容的非邻接物理位置对于存储装置的操作几乎没有影响。换句话说,一区暂时涵盖两个分开的物理区域,但是负责区管理的算法可以相同方式操作。
区交换已被描述为将两个区的位置相调换,以使得将来自一个区的逻辑块复制到另一区中。一般而言,区交换可涉及将多于两个区的位置相调换。例如,可将第一区的内容复制到第二区中,可将第二区的内容复制到第三区中,且可将第三区的内容复制到第一区中。尽管基本上任何数量的区位置都可以有效地加以调换,但是应理解可基于被认为是可接受的性能损失来判定区的数量。即,一次交换多于两个区的位置在某些状况下可导致被认为无法接受的性能损失。
类似地,在整个区交换处理期间,可在区之间交换多于一个块的内容。换句话说,尽管区交换处理已被描述为在区之间一次交换一个块的内容,但是应了解可替代地在区之间一次交换两个或两个以上的块。
3.区边界迁移
在区交换磨损平衡处理期间,除了完全交换区,例如,将最多磨损区与最少磨损区相交换之外,可替代地作为区迁移磨损平衡处理的一部分而将区有效地迁移。即,可转移与区相关的边界,以使得原为一区的一部分的一物理块或若干物理块变成另一区的一部分。通过转移区边界,与先前被反复编程并擦除的物理区相关的物理块可变成很少被编程并擦除的物理块。因此,存储装置中物理块的磨损可在装置上更为均匀地分布。当卡的若干区域被期望相对频繁地加以使用时,使物理块的磨损分布在装置上是尤其有用的。如果移动周期足够短,那么可基本上保证最小量的磨损平衡。
一使用区边界迁移或有效地移动逻辑区边界的磨损平衡处理允许逐渐改变逻辑区的物理位置。可通过以基本上等于一区大小的一段距离为间隔读取来自块的扇区从而定位区边界。与每个块相关的标头可展示区的域。一旦来自一区的一个块已被定位,就可通过在每一方向上至少读取邻接块的标头直到找出来自每一相邻区的块,从而可找出边界。或者,基本上所有的映射信息均可被存储于非易失性存储器内的表中。当已知一个区的区边界且已知一个固定区的大小时,通常可判定出与其它区相关的区边界,而无需以基本上等于区的固定大小的一段距离为间隔而读取来自块的扇区。即,如果已知区的大小和顺序,那么读取一个块的内容即能够定位区边界,所述块具有一含有逻辑块号及与一逻辑区相关的区信息的标头。一般而言,块的标头可包括:一绝对逻辑块号,以能够判定所述块的位置或一相对逻辑块号,其可与区信息一同使用,以有助于判定区的物理位置。
参看图9,下文将描述与使用区边界迁移的磨损平衡的示例性方法相关的步骤。处理过程900在步骤902中开始,在所述步骤中判定是否将要执行磨损平衡处理。尽管可使用各种不同的方法(例如,确定性方法)来做出所述判定,但在所描述的实施例中,通过使用随机数或伪随机数而做出所述判定。
在步骤903中判定是否将要执行磨损平衡。如果判定不执行磨损平衡,那么处理流程返回步骤902,在此步骤中,做出有关是否适宜执行磨损平衡的另一判定。或者,如果步骤903判定执行磨损平衡,那么磨损平衡程序从步骤904有效地开始,在此步骤中判定位于逻辑区“X”中的第一物理块是否被擦除。即,判定逻辑区“X”开始处,即区“X”的较低区边界处的第一物理块是否被擦除。
如果判定区“X”中第一物理块尚未被擦除,那么接着指示出区“X”中第一物理块含有信息。因此,处理流程进行到步骤908,在此步骤中将逻辑区“X”开始处的物理块的内容复制到区“X”内任何大体上可用的块中。一旦将所述物理块的内容复制到区“X”中的擦除块中,就在步骤912中将区“X”开始处的物理块擦除。
在于步骤912中将区“X”开始处的物理块擦除之后,将逻辑区“X-1”开始处的第一物理块的内容复制到区“X”中新近被擦除的块中。举例而言,参看图6,在将区“0”614a开始处的物理块擦除之后,区“N”614c开始处的第一物理块的内容被复制到经擦除的块中。结果,经由一个物理块而有效地将逻辑区“X”与逻辑区“X-1”各自转移。然后在步骤920中将LBA到特定区中物理块的映射加以更新,以指示出原来在步骤908中处于区“X”的第一物理块的内容已被移动,并指示出区“X-1”开始处的第一物理块的内容也已被移动。
一旦将物理位置的映射加以更新,就在步骤924中做出有关是否存在其它待转移区的判定。如果判定不存在其它待转移的区,那么指示出已由一物理块和转移区的处理而将所有区加以转移,从而基本上完成区边界的迁移。或者,如果判定存在额外的待转移区,那么在步骤928中识别新的区“X”和新的区“X-1”。然后,处理流程返回步骤904,在此步骤中判定是否区“X”中的第一物理块是否被擦除。
返回步骤904,如果判定区“X”中的第一物理块被擦除,那么指示出可将内容复制到区“X”中的第一物理块中。同样地,处理流程从步骤904继续进行到步骤916,在此步骤中将区“X-1”开始处的第一物理块的内容复制到区“X”中的第一物理块中。
图10为存储器装置的初始状态和在示例性区边界迁移处理或若干示例性区边界迁移处理(例如,图9的处理过程900)之后存储器装置状态的图解表示。装置1000′初始地被划分成任何数量的区1004′,例如,五个区。在完成区边界迁移的一或一个以上的循环或反复操作之后,例如,在每个区被至少一个物理块有效地转移之后,区边界已迁移,以使得装置1000″中区1004″基本上移动了一或一个以上的物理块。如所展示,区边界迁移致使区“4”1004e′转移到非邻接的物理块中以形成区“4”1004e″和1004e。
一般而言,区边界迁移处理可重复进行,以使得在区边界迁移处理的多个反复操作之后,没有任何初始地在一给定区中的物理块仍保持于所述区中。即,区的物理位置可被逐渐移动以遍及整个存储装置,一次移动一个物理块。区边界也可以迁移,以使得在区边界迁移处理的多个反复操作之后的某一点处,区的物理位置与启动区边界迁移处理之前区的物理位置相同。
连续的区边界迁移处理之间的时间量可依据整个系统的需要而变化。在一实施例中,可调整使用区边界迁移处理而转移区的速率,以使得直到存储装置的寿命末期时,一给定区将基本上横过整个装置且到此为止。在另一实施例中,所述速率可尽可能得被降低,以基本上最小化与磨损平衡相关的性能损失,且有效地最小化归因于区边界迁移处理本身的任何额外磨损。然而应了解,可归因于性能考虑而调整区的转移速率,或可任意设定所述速率。
参看图11a-c,将描述在区边界迁移处理期间区边界的移动的实例。如图11a中所示,一物理装置1100初始地被划分成任何数量的逻辑区1104。尽管区1104的数量可广泛地变化,但是在所述实施例中装置1100包括三个逻辑区。每一逻辑区1104通常由具有由区边界间隔的邻接物理地址的复数个块形成,除了归因于对某些存储系统信息的块的分配、对擦除池的分配和损坏的块的存在,而散布于整个区中的额外的块。每个逻辑区1104被界定为包括某些经识别的物理块1106。通常将主机数据逻辑块地址(LBA)的整个范围划分成邻接的LBA的许多段,所述段的数量等于物理存储区的数量,每个LBA段被映射到逻辑区1104中不同的一个逻辑区中。
图11b为根据所描述的实施例,在初始的区边界迁移步骤执行期间的图11a的装置110的图解表示。初始地,如箭头1124所指示的步骤(1),将块1106a的内容移动到擦除的块1106c中,其中块1106a为位于交换边界1108c处的区1104a的第一物理块。如果在区1104a内不存在可利用的擦除块,那么而后首先在整个区上执行合并处理,以将有效数据的页面压缩到较少的块中,且因此释放一或一个以上的块且而后将所述块擦除。在无法产生一经擦除的块的不太可能的事件中那么而后必须将区内一被使用的块移动到另一区中,或将区边界延伸以包括额外的块,从而可从中找出经擦除的块。如步骤(2),如由箭头1126所指示将块1106e的内容移动到块1106a中,其中块1106e为位于交换边界1108b处与区1104c相关的第一物理块,且然后将区1104c的第一物理块1106e擦除。
如步骤(3),将块1106d的内容移动到与区1104c相关的第一物理块中,其中块1106d为位于交换边界1108a处区1104b的第一物理块,进而使得区1104d的第一物理块被有效地擦除,如箭头1128所指示。一旦移动了与交换边界1108a处的物理块相关的块1106d的内容,步骤(4)就将块1106b的内容移动到区1104b的第一物理块1106d中,如箭头1130所指示。
如图11c所示,一旦已移动或复制并擦除块1106的内容,就可将逻辑区边界有效地转移。每一逻辑区1104的物理区边界已由一个物理块有效地加以转移。例如,逻辑区边界1108c和1108a已转移或迁移,以使得区11 04a被转移。同样地,归因于逻辑区边界1108a、1108b和1108c的迁移,区1104b、1104c也各自转移。通过将数据在块之间移动(如所描述),加上通过将每一区的LBA的范围重新映射到一组块中,其中所述一组块包括增加到区的块但是删去从区移除的块,从而完成此转移或迁移。尽管已将区边界迁移描述为通过一次移动一个物理块而移动区边界,但是可使得区边界一次移动多于一个块,但是仅能为一区中块的数量的小部分,如小于10%、5%或甚至2%。在主机未请求编程或读取数据且控制器未另外执行更高权限的操作期间,所述目标为一次执行少量的块的边界迁移。因此,执行磨损平衡而不会不利地影响区的总体性能。
另外,对于区边界迁移而言,如果与存储装置相关的经擦除块被维持于单独的池中,例如,并未被维持于个别区中,那么可在区边界迁移期间将经擦除块的池处理为一区。
4.单个区磨损平衡
也可将类似于相对于图9-11c所描述的磨损平衡处理的磨损平衡处理应用于具有单个区的存储系统中。上文所描述的转移逻辑边界为物理指针,其识别与它们直接相邻的块以进行磨损平衡处理。由于为单个区,因而所述指针以某种确定性方式经由存储单元块而循环,如按照所述块的物理地址的顺序经由所述块一次递增一个块。当满足执行磨损平衡操作的标准时,处理过程从当前所指向的块启动。如果所述块未被擦除,那么将其内容复制到区内处于经擦除状态的一块中,即一擦除池内的一块。然后将地址表更新以反映被复制数据的位置变化并反映原始的块已被擦除。然后,将指针移动到下一个块以等待下一轮磨损平衡循环的启动,此时将以所述的下一个块来重复所述处理过程。如果所指的块初始地处于经擦除状态,那么指针仅继续移动到下一个块上而无法进行磨损平衡。一旦在存储系统寿命的末期之前所述指针已步进区中所有的块,然后,指针就可重复其循环。
应注意,可执行此磨损平衡处理而无需参考个别块已被擦除并重新编程的次数(热计数)。执行磨损平衡操作的临界条件可为从上一次磨损平衡操作之后对擦除池内的块进行预定次数的编程。即,在所指的块上以一预定次数的块编程操作为间隔而执行磨损平衡操作。且并非一次处理单个块,而是可替代地在个别磨损平衡操作中包括两个或两个以上的块。
此部分的前述段落中所描述的处理过程也可应用于多区系统,其中磨损平衡发生在每一区内而不会改变区边界。
5.热计数
应了解,并非在物理块基础上维持热计数,而是相对于逻辑块而维持热计数。为逻辑块维持热计数(例如,维持相对热计数)能够使得最近移动的逻辑块和最早移动的逻辑块被追踪。在一个实施例中,可基于逻辑块被移动的时间上的靠近程度而将所述块有效地分成集合。可给予一区内的所有块一初始相对热计数值,且每次一块被移动时,就将相对热计数更新到最近移动的集合或组的值中,所述值通常为基础值加1。一旦某一数量的块处于最近移动的组中,最近移动的组的值便递增,且可将任何随后被移动的块更新到所述新的组值中。结果,可以最近移动的块与最早移动的块之间的相对清晰的区别来创建逻辑或物理块的不同组或库(bin)。一般而言,允许块的相对热计数值翻转以允许使用相对少量的域。可对所述值加以管理以使得在最近使用的值与最早使用的值之间大体上总是存在大量未使用的值的集合,以允许在最近翻转的数字域中在指示最早移动的块的低值与指示最近移动的块的低值之间加以区别。
当实施相对热计数时,当存在八个可能的值,例如,在一特定实例中为值“0”到“7”时,大体上所有的块可以从基础值“0”开始。八个值中的七个值可被使用,同时保留一个值,以在用于表示最近被编程的块的值与用于识别含有最旧的数据的块的值之间提供间隙。在此实例中,被写入的块接收到一个新的值“1”以指示其为最近被重新编程的块。一旦某一预定数量的块已被更新到所述新的值“1”,正被重新编程的块就可接收一新的值“2”。一旦相同或不同的预定数量的块具有值“2”,就可最终将值“3”指派给被最近重新编程的块。此过程持续进行,在每一预定数量的块被重新编程之后,就将下一个库号(bin number)指派给正被重新编程的块。在某点处,计数将翻转以使得最早使用的块具有值“2”,最近移动的块具有值“0”,且值“1”提供所述两个值之间的间隙,以使得可清晰地识别具有最旧的数据和最新的数据的块的值。
最终,将最旧的库中所有块加以重写。如果未通过主机写入、擦拭或某些其它机制,那么通过磨损平衡而实现。在以上实例中,然后含有最旧的块的库“2”将为空,且所述值可用作间隙,同时库“1”可用于识别最近被写入的块。在所使用的值(库)的范围之间的大于1的间隙可由以下状况产生:通过主机或某些比一磨损平衡操作移动最早经移动的块的速度更快的其它机制来更新来自最近适度被移动的组的块。在可利用绝对热计数的情形下,系统可优选地使用逻辑或物理块使用信息来驱动判断。
在区内磨损平衡方案中,可将一块选择地移动到一经擦除的块中。当实施相对逻辑热计数时,区内磨损平衡方案可从最早移动的组或从具有最低值的组中选择一逻辑块。一旦所选的块被移动,所选的块就接收最近被移动的组的值。通常,最频繁地被主机所访问的逻辑块将具有一值,所述值指示出所述块最近已被移动,且因此可不会被磨损平衡系统所选择为移动所述块。同时,最不频繁地被主机所访问的逻辑块往往具有一较低值,所述值最终指示出所述块已最早地被移动。通常具有最早被移动值的逻辑块在一段时间内未被访问,且结果,在此时间段期间其它块将达到较高水平的磨损。一旦将较不频繁地被访问的逻辑块移动到经擦除的物理块中,较不频繁地被访问的逻辑块将保持于其当前物理位置中,直到再次被磨损平衡所移动。即,较不频繁地被访问的逻辑块所在的物理块通常不被访问,同时可将先前被占据的物理块转移到擦除池以备将来使用,且因此接收较多的磨损。
通常将经擦除物理块的擦除池描述为被包括于一区内。在一个实施例中,可维持经擦除块的池与存储装置内的区相分离。可以所需为基础从存储装置上的物理上邻接的块组中分配所述经擦除的块。
D.总结
尽管已关于扇区组简要地描述了本发明的多种方面,但是扇区组中扇区的数量可为任何大于或等于1的适宜数量。然而,扇区组内扇区的最有效的数量通常取决于擦除单元内扇区的数量和物理存储阵列内擦除单元的数量。
多种磨损平衡处理已被描述为适合于相对于如闪存卡的非易失性擦除系统而实施。一般而言,磨损平衡处理可应用于大体上任何合适的非易失性存储系统。合适的非易失性存储系统包括(但不限于)嵌入式存储器和存储驱动器。在一个实施例中,所述非易失性存储系统可移动地耦接到主机系统,且在另一实施例中,所述易失性存储系统可为主机系统内的一嵌入式系统。另外,磨损平衡处理可应用于各种易失性存储系统。
尽管非易失性存储系统已被描述为包括存储控制器,但是应了解,磨损平衡处理可应用于不包括存储控制器的非易失性存储系统。使用控制器的合适的存储系统包括(但不限于):PC卡、压缩闪存卡、多媒体卡和安全数字卡。可使用上文所描述的磨损平衡处理且并不使用与存储系统相关的控制器的存储系统可使用与主机(例如,主机计算机系统)相关的控制器来实施磨损平衡,如智能卡(SmartMedia card)和记忆棒卡(MemoryStick card)。换句话说,主机可直接寻址并管理发生磨损平衡的存储器。此外,无论存储系统是否含有控制器,处于主机系统上的主处理器都可用作存储系统的存储控制器。
尽管仅描述了本发明的少数实施例,但是应了解,在不背离本发明的精神或范畴的前提下,可以许多其它特定形式来实施本发明。举例而言,尽管在直接寻址和擦除汇集的情况下磨损平衡大体上已被描述为自动处理,但是应了解,磨损平衡可为一用户驱动处理过程。换句话说,用户可决定何时通过主机界面发出一个命令来启动磨损平衡处理。
一般而言,与磨损平衡的多种处理和方法相关的步骤可广泛地变化。通常在不脱离本发明的范畴和精神的前提下,可将所述步骤增加、移除、改变并重新排序。举例而言,当迁移区边界或交换区时可无需更新映射信息。如果个别物理块具有有关物理块属于哪一逻辑区的某个指示符,那么可无需有效地记录交换或迁移的进度。在不脱离本发明的精神或范畴的情况下,也可在多种方法及处理中增加步骤以调节数据结构的更新或映射,从而有助于各种逻辑块的定位。此外,一特定实施过程可并入复数个实施例。
因此,本发明的所述实例被认为是说明性而非限制性的,且本发明不限制于本文中所给出的细节,但是可在前述权利要求书的范畴内对本发明加以修改。

Claims (27)

1.一种在一存储系统中进行操作的方法,所述存储系统包括复数个可擦除并可重新编程非易失性存储单元,所述可擦除并可再编程非易失性存储单元具有组织成多个其之间具有地址边界的区的多个邻接物理地址单元,且其中一特定范围的逻辑地址被映射到所述区的每一个区中,所述方法包括:
重新指派所述边界地址,以从所述区的每个区中删除至少一个单元并将所述至少一个单元添加到一相邻的区中,而无需改变所述个别区中单元的数量;
其后,根据数据的逻辑地址访问所述区,以将所述数据编程到所述经重新指派的存储单元中或从所述经重新指派的存储单元中读取所述数据;和
反复地重新指派所述边界地址并访问所述区,至少直到已将所述存储单元从其自身的区全部移动到相邻的区,进而将经由所述逻辑地址访问的所述单元的使用分散开。
2.根据权利要求1所述的方法,其中重新指派所述边界地址包括从所述区的每个区中删除数量少于所述区内所述单元的10%的数个单元,并将所述数量的单元添加到一相邻的区中。
3.根据权利要求1所述的方法,其中所述区是由个别复数个存储平面中其存储单元的数个部分所形成,且其中重新指派所述边界地址包括:从所述存储平面的每个存储平面中的所述区的每个部分中删除至少一个单元,并将所述至少一个单元添加到所述相同平面内的另一区的一相邻部分中。
4.根据权利要求1所述的方法,其中所述存储单元各自包括复数个同时可擦除的存储单元。
5.根据权利要求4所述的方法,其中所述存储单元各自包括复数个可个别地以数据编程的页面。
6.根据权利要求1所述的方法,其中重新指派所述边界地址包括:将存储于来自所述区的每个区的所述至少一个单元中的任何数据复制到所述相邻区的所述经添加的单元中。
7.一种操作一可擦除并可重新编程的非易失性存储单元系统的方法,所述非易失性存储单元在物理上被组织成数个由可同时擦除的最小数量的存储单元组成的单元,所述方法包括:
将在三个或三个以上非重叠范围的逻辑存储地址的一个逻辑存储地址范围内编程或读取数据的主机访问请求指引到一相应数量的存储单元擦除单元逻辑组的一独特逻辑组中;
将访问请求从所述逻辑组映射到复数个擦除单元的多个特定物理组中;和
在由主机访问请求所引起的数据编程或读取操作之间,以在所述个别物理组中维持一均一数量的擦除单元的方式,一次移除包括至少一个擦除单元的所述个别物理组的一部分,并将所述经移除的擦除单元添加到所述物理组的相邻物理组中,通过此方式反复地将所述逻辑组重新映射到所述物理组中,进而使所述系统上的所述擦除单元的使用逐渐平衡。
8.一种操作一闪存单元阵列的方法,所述闪存单元被组织成复数个平面内最小数量的可同时擦除的存储单元的复数个块,所述方法包括:
界定复数个区以使其各自包括来自复数个平面中每个平面的所述复数个块的一部分;
将一范围内的逻辑地址的一不同部分映射到所述区中的每个区;和
以在所述复数个平面的每个平面中维持具有规定复数个块的复数个区的方式,从每个平面中移除至少一个块并将所述经移除的块添加到其相同平面中所述区的其它区中,通过此方式反复重新界定所述个别区,进而将各范围的逻辑地址处所述块的使用及时地分散于所述阵列上。
9.一种操作一包括复数个区的存储系统的方法,所述复数个区各自包括可一起擦除的可重新编程的非易失性存储单元的复数个单元,其中由所述存储系统所接收的一特定范围的逻辑地址被映射到所述个别区中,所述方法包括:
接收所述区的一个区的所述特定逻辑地址范围内的一逻辑地址;和
将所述接收到的逻辑地址转换成所述一个区内所述复数个存储单元擦除单元的至少一个的一物理地址,此有助于使所述一个区内擦除和重新编程所述擦除单元的使用周期的数量均匀。
10.根据权利要求9所述的方法,其中将所述逻辑地址转换成所述物理地址包括:参照对应的逻辑地址和物理地址的一个表,且其额外地包含改变逻辑与物理擦除单元地址之间的对应关系,从而有助于使所述一个区内的所述擦除单元的使用频率均匀。
11.根据权利要求10所述的方法,其中改变逻辑与物理擦除单元地址之间的所述对应关系包括:将所述一个区内具有最高积累数量的使用周期的所述擦除单元的物理地址与具有最低积累数量的使用周期的所述擦除单元的物理地址相交换。
12.根据权利要求10所述的方法,其中所述存储单元具有所述存储单元将要经历的最大数量使用周期的一目标持续时间限制,且其中,改变逻辑与物理擦除单元地址之间的所述对应关系发生在一其对应地址被改变的一擦除单元的使用周期的数量达到所述目标最大数量之前。
13.一种操作一包括复数个区的存储系统的方法,所述复数个区各自包括可一起擦除的可重新编程非易失性存储单元的复数个单元,其中由所述存储系统所接收到的一特定范围的逻辑地址被映射到所述个别区中,所述方法包括:
将存储于所述复数个区的一第一区中的数据与存储于所述复数个区的一第二区中的数据相调换;和
其后,将访问所述第一与第二区中的一个区内的所述存储系统的地址转换成访问所述第一与第二区中的另一个区内的所述存储系统的地址。
14.根据权利要求13所述的方法,其中调换数据包括:
将数据从所述第二区中具有一与所述第二区的物理地址的一边界相邻的物理地址的一第一擦除单元移动到所述第二区中被擦除的一第二擦除单元中;和
将数据从所述第一区中具有一与所述第一区的物理地址的一边界相邻的物理地址的一第一擦除单元移动到所述第一单元中。
15.一种操作一可擦除并可重新编程的非易失性存储单元系统的方法,所述非易失性存储单元被组织成可同时擦除的最小数量存储单元的复数个物理块,且其中将进入的数据编程到复数个物理块中被维持为一擦除块池的那些物理块中,所述方法包括:
通过以一预定顺序循环经过所述复数个物理块的地址来一次识别除所述擦除块池中用于磨损平衡调换的所述块之外的所述复数个物理块的至少一个物理块;和
将所述复数个物理块中所述经识别的至少一个物理块与所述擦除块池内一相应数量的所述复数个物理块中的至少一个物理块相调换。
16.根据权利要求15所述的方法,其中调换所述经识别的块包括:将数据从所述复数个物理块中所述经识别的至少一个物理块复制到所述擦除块池内相应数量的所述物理块中的至少一个物理块中,且将至少一个逻辑块地址的映射从所述复数个物理块中的所述至少一个物理块改变到所述擦除块池内所述相应数量的所述物理块中的至少一个物理块。
17.根据权利要求16所述的方法,其额外包含:在复制所述数据之后,将所述复数个物理块中的所述经识别的至少一个物理块擦除且将所述经擦除的至少一个块放置于所述擦除池中。
18.根据权利要求15所述的方法,其中完成用于一磨损平衡调换的复数个物理块中至少一个物理块的识别,而无需参考所述个别物理块所经历的擦除循环次数。
19.根据权利要求15所述的方法,其中一次识别所述复数个物理块中的至少一个包括以所述经擦除块池内以数据编程的一预定数量的所述复数个物理块为间隔进行所述识别。
20.一种操作一可擦除并可重新编程的非易失性存储单元系统的方法,所述非易失性存储单元被组织成可同时擦除的最小数量存储单元的复数个物理块,所述方法包括:
将一个范围的逻辑块地址映射到所述复数个物理块的一部分的地址中,以留下额外数量的物理块来提供一擦除块池;
响应将数据存储于所述范围的逻辑块地址的至少一个逻辑块地址中的请求,将所述至少一个逻辑块地址转换成处于所述擦除块池中的至少一个物理块的一地址,且尔后将所述数据写入到所述擦除块池的所述至少一个物理块中;
识别用于一磨损平衡调换的复数个物理块中的一个物理块;
在一给定数量的存储器编程操作之后,将所述复数个物理块中所述经识别的一个物理块与处于所述擦除块池中所述数个物理块中的一个物理块相调换;和
以一预定顺序对所述复数个物理块的其它物理块进行重复识别和调换。
21.根据权利要求20所述的方法,其中识别物理块包括:确定所述经识别的物理块是否处于所述擦除块池内或是否经历一等待状态的编程操作,在任一状况下,所述经识别的物理块不被调换。
22.根据权利要求20所述的方法,其中调换所述经识别的块包括:将来自所述复数个物理块中的所述经识别的一个物理块的数据复制到所述擦除块池内所述相应数量的物理块中,且将至少一个逻辑块地址的映射从所述复数个物理块中的所述至少一个物理块改变到所述擦除块池内所述相应数量的一或一个以上的物理块。
23.根据权利要求22所述的方法,其额外包含:在复制所述数据之后,将所述复数个物理块中的所述经识别的一个物理块擦除且将所述经擦除的至少一个块放置于所述擦除池中。
24.一种管理可擦除并电可编程的存储单元组的方法,其包括:
一旦将数据编程到各单元组中,关联并存储用于所述个别经编程单元组的复数个指示值中的一个指示值,所述一个指示值是通过在已发生一预定数量的编程实例之后递增所述指示值而选择的,所述经关联及存储的指示值以一预定的顺序被反复地递增经过所述复数个指示值,其中所述经存储的指示值提供所述相应的单元组的相对编程时间;和
根据所述存储单元被指派的相对数量,对所述存储单元组执行一操作。
25.根据权利要求24所述的方法,其中关联并存储所述指示值包括:将复数个指示值的一第一指示值与所述正被编程的单元组相关联,直到所述第一指示值已被指派给一预定数量的经编程单元组,其后,将复数个指示值的一第二指示值指派给正被编程的所述组,直到所述第二复数个指示值已被指派给一预定数量的单元组,且其后将复数个指示值的一第三指示值指派给正被编程的所述组,直到所述第三复数个指示值已与一预定数量的单元组相关联。
26.根据权利要求24所述的方法,其中所述复数个指示值包括复数个序号。
27.根据权利要求24所述的方法,其中对所述存储单元组执行的所述操作包括:以有助于使所述组所经历的编程循环数量均匀的方式,根据施加到所述组的所述相对指示值来选择所述单元组中的那些单元组来进行编程。
CNB2003801047151A 2002-10-28 2003-10-09 在非易失性存储系统中执行自动磨损平衡的方法 Expired - Fee Related CN100483552C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US42217302P 2002-10-28 2002-10-28
US60/422,173 2002-10-28

Publications (2)

Publication Number Publication Date
CN1720590A true CN1720590A (zh) 2006-01-11
CN100483552C CN100483552C (zh) 2009-04-29

Family

ID=32230329

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2003801047151A Expired - Fee Related CN100483552C (zh) 2002-10-28 2003-10-09 在非易失性存储系统中执行自动磨损平衡的方法

Country Status (9)

Country Link
US (2) US7120729B2 (zh)
EP (1) EP1556868B1 (zh)
JP (1) JP4518951B2 (zh)
KR (2) KR101122511B1 (zh)
CN (1) CN100483552C (zh)
AT (1) ATE372578T1 (zh)
AU (1) AU2003282544A1 (zh)
DE (1) DE60316171T2 (zh)
WO (1) WO2004040586A1 (zh)

Cited By (24)

* 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
CN101640069A (zh) * 2008-08-01 2010-02-03 群联电子股份有限公司 用于闪速存储器的平均磨损方法、储存系统与控制器
CN101419834B (zh) * 2007-10-22 2011-03-30 群联电子股份有限公司 平均磨损方法及使用此方法的控制器
CN101409108B (zh) * 2007-10-09 2011-04-13 群联电子股份有限公司 平均磨损方法及使用此方法的控制器
CN102341793A (zh) * 2009-03-04 2012-02-01 美光科技公司 存储器块选择
CN102375693A (zh) * 2010-08-16 2012-03-14 成都市华为赛门铁克科技有限公司 损耗均衡处理方法和系统以及固态硬盘
CN102446071A (zh) * 2010-09-30 2012-05-09 环鸿科技股份有限公司 取得一存储器状态资讯的接取方法、电子装置及程序产品
CN102610613A (zh) * 2011-01-18 2012-07-25 旺宏电子股份有限公司 三维存储器结构
CN102955743A (zh) * 2011-08-25 2013-03-06 建兴电子科技股份有限公司 固态储存装置及其损耗平均控制方法
CN101645041B (zh) * 2006-03-29 2013-03-13 株式会社日立制作所 使用闪存的存储系统
CN103502960A (zh) * 2011-04-05 2014-01-08 迈克菲股份有限公司 带损耗均衡的存储器设备的加密
CN103914409A (zh) * 2013-01-06 2014-07-09 北京忆恒创源科技有限公司 用于具有多处理器的存储设备的方法
CN103914401A (zh) * 2013-01-06 2014-07-09 北京忆恒创源科技有限公司 具有多处理器的存储设备
CN104115130A (zh) * 2011-12-20 2014-10-22 桑迪士克科技股份有限公司 存储器设备的损耗均匀化
CN102047341B (zh) * 2008-02-29 2014-11-19 马维尔国际贸易有限公司 用于混合非易失性固态存储系统的疲劳管理系统和方法
CN101794256B (zh) * 2009-02-04 2015-11-25 格林莱安特有限责任公司 非易失性存储器子系统及其存储器控制器
CN107918530A (zh) * 2018-01-12 2018-04-17 江苏华存电子科技有限公司 一种非易失性存储器的磨损均衡方法和装置
CN107924334A (zh) * 2015-08-05 2018-04-17 华为技术有限公司 弹性命名分布式循环缓冲区的重新平衡和弹性存储方案
CN109923514A (zh) * 2016-11-08 2019-06-21 美光科技公司 对数据的存储器操作
CN111639041A (zh) * 2020-05-29 2020-09-08 深圳宏芯宇电子股份有限公司 存储器控制方法、存储器存储装置及存储器控制器
CN112204533A (zh) * 2018-05-31 2021-01-08 美光科技公司 具有两个数据部分的存储器中的数据重定位
CN112558878A (zh) * 2020-12-16 2021-03-26 北京华弘集成电路设计有限责任公司 一种基于不同类型存储机制的空间调换方法
CN112740189A (zh) * 2018-08-23 2021-04-30 美光科技公司 非易失性存储器的多级损耗均衡
CN112740189B (zh) * 2018-08-23 2024-05-31 美光科技公司 非易失性存储器的多级损耗均衡

Families Citing this family (244)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8171203B2 (en) * 1995-07-31 2012-05-01 Micron Technology, Inc. Faster write operations to nonvolatile memory using FSInfo sector manipulation
US6901498B2 (en) * 2002-12-09 2005-05-31 Sandisk Corporation Zone boundary adjustment for defects in non-volatile memories
TWI243303B (en) * 2003-11-14 2005-11-11 Hon Hai Prec Ind Co Ltd System and method for managing flash file stored in a flash memory
JP4347707B2 (ja) * 2004-01-09 2009-10-21 パナソニック株式会社 情報記録媒体のフォーマット方法および情報記録媒体
JP2006024024A (ja) * 2004-07-08 2006-01-26 Toshiba Corp 論理ディスク管理方法及び装置
JP4561246B2 (ja) * 2004-08-31 2010-10-13 ソニー株式会社 メモリ装置
US7590918B2 (en) * 2004-09-10 2009-09-15 Ovonyx, Inc. Using a phase change memory as a high volume memory
US7509526B2 (en) * 2004-09-24 2009-03-24 Seiko Epson Corporation Method of correcting NAND memory blocks and to a printing device employing the method
US7441067B2 (en) * 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US7315916B2 (en) * 2004-12-16 2008-01-01 Sandisk Corporation Scratch pad block
US7366826B2 (en) * 2004-12-16 2008-04-29 Sandisk Corporation Non-volatile memory and method with multi-stream update tracking
US7386655B2 (en) 2004-12-16 2008-06-10 Sandisk Corporation Non-volatile memory and method with improved indexing for scratch pad and update blocks
US7395404B2 (en) * 2004-12-16 2008-07-01 Sandisk Corporation Cluster auto-alignment for storing addressable data packets in a non-volatile memory array
US7315917B2 (en) 2005-01-20 2008-01-01 Sandisk Corporation Scheduling of housekeeping operations in flash memory systems
JP4665539B2 (ja) * 2005-01-31 2011-04-06 ソニー株式会社 メモリ制御装置、メモリ制御方法、プログラム
US8108691B2 (en) 2005-02-07 2012-01-31 Sandisk Technologies Inc. Methods used in a secure memory card with life cycle phases
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
US20060236025A1 (en) * 2005-04-18 2006-10-19 Intel Corporation Method and apparatus to control number of erasures of nonvolatile memory
US7916421B1 (en) * 2005-05-05 2011-03-29 Seagate Technology Llc Methods and structure for recovery of write fault errors in a dynamically mapped mass storage device
US7685360B1 (en) 2005-05-05 2010-03-23 Seagate Technology Llc Methods and structure for dynamic appended metadata in a dynamically mapped mass storage device
US7748031B2 (en) 2005-07-08 2010-06-29 Sandisk Corporation Mass storage device with automated credentials loading
JP4679581B2 (ja) * 2005-07-29 2011-04-27 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム及び不揮発性メモリのアドレス管理方法
US7680980B2 (en) * 2005-08-12 2010-03-16 Kabushiki Kaisha Toshiba Image forming apparatus
JP4891324B2 (ja) * 2005-09-14 2012-03-07 サンディスク コーポレイション 大容量フラッシュメモリを備える高信頼性デバイスのための、セキュアでありながらフレキシブルなシステムアーキテクチャ
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
US8291295B2 (en) 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US7631245B2 (en) 2005-09-26 2009-12-08 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
KR100848315B1 (ko) * 2005-12-08 2008-07-24 한국전자통신연구원 이중 저널링을 이용한 데이터 저장 공간 확보 방법
JP2007164318A (ja) * 2005-12-12 2007-06-28 Renesas Technology Corp 記憶装置
US20070150644A1 (en) * 2005-12-28 2007-06-28 Yosi Pinto System for writing non-volatile memories for increased endurance
US7245556B1 (en) * 2005-12-28 2007-07-17 Sandisk Corporation Methods for writing non-volatile memories for increased endurance
US7599261B2 (en) * 2006-01-18 2009-10-06 International Business Machines Corporation Removable storage media with improved data integrity
US20070174549A1 (en) * 2006-01-24 2007-07-26 Yevgen Gyl Method for utilizing a memory interface to control partitioning of a memory module
US8756399B2 (en) * 2006-01-25 2014-06-17 Seagate Technology Llc Mutable association of a set of logical block addresses to a band of physical storage blocks
US20070208904A1 (en) * 2006-03-03 2007-09-06 Wu-Han Hsieh Wear leveling method and apparatus for nonvolatile memory
US8296497B2 (en) * 2006-03-14 2012-10-23 Stmicroelectronics Pvt. Ltd. Self-updating memory controller
US20070255889A1 (en) * 2006-03-22 2007-11-01 Yoav Yogev Non-volatile memory device and method of operating the device
KR101185617B1 (ko) 2006-04-04 2012-09-24 삼성전자주식회사 외부 메모리의 부하를 줄일 수 있는 웨어 레벨링 기법에의한 플래시 파일 시스템의 동작 방법
US7451264B2 (en) * 2006-04-13 2008-11-11 Sandisk Corporation Cycle count storage methods
US7467253B2 (en) * 2006-04-13 2008-12-16 Sandisk Corporation Cycle count storage systems
JP4804218B2 (ja) * 2006-05-11 2011-11-02 株式会社日立製作所 記憶媒体への書き込み回数を管理する計算機システム及びその制御方法
FR2901035B1 (fr) * 2006-05-11 2008-07-11 St Microelectronics Sa Procede et dispositif de gestion d'une table de correspondance d'acces a une memoire
JP5016027B2 (ja) 2006-05-15 2012-09-05 サンディスク コーポレイション 最終期を計算する不揮発性メモリシステム
US7523013B2 (en) * 2006-05-15 2009-04-21 Sandisk Corporation Methods of end of life calculation for non-volatile memories
US7778077B2 (en) * 2006-05-15 2010-08-17 Sandisk Corporation Non-volatile memory system with end of life calculation
US7349254B2 (en) * 2006-05-31 2008-03-25 Qimonda Flash Gmbh & Co. Kg Charge-trapping memory device and methods for its manufacturing and operation
US20080046630A1 (en) * 2006-08-21 2008-02-21 Sandisk Il Ltd. NAND flash memory controller exporting a logical sector-based interface
US20080046641A1 (en) * 2006-08-21 2008-02-21 Sandisk Il Ltd. NAND flash memory controller exporting a logical sector-based interface
US20080072058A1 (en) * 2006-08-24 2008-03-20 Yoram Cedar Methods in a reader for one time password generating device
US20080052524A1 (en) * 2006-08-24 2008-02-28 Yoram Cedar Reader for one time password generating device
US20080091901A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Method for non-volatile memory with worst-case control data management
US20080091871A1 (en) * 2006-10-12 2008-04-17 Alan David Bennett Non-volatile memory with worst-case control data management
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
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
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
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
US7904672B2 (en) * 2006-12-08 2011-03-08 Sandforce, Inc. System and method for providing data redundancy after reducing memory writes
KR100881669B1 (ko) * 2006-12-18 2009-02-06 삼성전자주식회사 비휘발성 데이터 저장장치의 정적 데이터 영역 검출 방법,마모도 평준화 방법 및 데이터 유닛 병합 방법과 그 장치
US7710777B1 (en) 2006-12-20 2010-05-04 Marvell International Ltd. Semi-volatile NAND flash memory
WO2008077284A1 (en) * 2006-12-27 2008-07-03 Intel Corporation Initiative wear leveling for non-volatile 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
TW200828320A (en) * 2006-12-28 2008-07-01 Genesys Logic Inc Method for performing static wear leveling on flash memory
CN100504814C (zh) * 2007-01-17 2009-06-24 忆正存储技术(深圳)有限公司 闪存的区块管理方法
KR20080072201A (ko) 2007-02-01 2008-08-06 삼성전자주식회사 메모리 포맷이 가능한 디지털 전자기기, 메모리 포맷 방법,그리고, 저장기능을 가지는 디지털 전자기기 및 저장방법
KR100882740B1 (ko) * 2007-02-22 2009-02-09 삼성전자주식회사 맵 히스토리 기반의 불휘발성 메모리의 매핑 방법 및 저장장치
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 삼성전자주식회사 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법
JP5039463B2 (ja) * 2007-07-12 2012-10-03 株式会社日立製作所 記録装置および記録方法
KR101447188B1 (ko) * 2007-07-31 2014-10-08 삼성전자주식회사 플래시 메모리에 최적화된 입출력 제어 방법 및 장치
TWI373772B (en) * 2007-10-04 2012-10-01 Phison Electronics Corp Wear leveling method and controller using the same
US20090106522A1 (en) * 2007-10-18 2009-04-23 Sony Corporation Electronic system with dynamic selection of multiple computing device
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
EP2220430A4 (en) * 2007-11-19 2010-12-22 Nexxus Lighting Inc APPARATUS AND METHODS FOR THE THERMAL MANAGEMENT OF LIGHT EMITTING DIODES
AU2008326434B2 (en) 2007-11-19 2014-03-20 Revolution Lighting Technologies, Inc. Apparatus and method for thermal dissipation in a light
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
US7636258B2 (en) * 2007-12-12 2009-12-22 Qimonda Flash Gmbh Integrated circuits, memory controller, and memory modules
US8656083B2 (en) * 2007-12-21 2014-02-18 Spansion Llc Frequency distributed flash memory allocation based on free page tables
US8332572B2 (en) * 2008-02-05 2012-12-11 Spansion Llc Wear leveling mechanism using a DRAM buffer
US8275945B2 (en) 2008-02-05 2012-09-25 Spansion Llc Mitigation of flash memory latency and bandwidth limitations via a write activity log and buffer
US8095724B2 (en) * 2008-02-05 2012-01-10 Skymedi Corporation Method of wear leveling for non-volatile memory and apparatus using via shifting windows
US8209463B2 (en) * 2008-02-05 2012-06-26 Spansion Llc Expansion slots for flash memory based random access memory subsystem
US8352671B2 (en) 2008-02-05 2013-01-08 Spansion Llc Partial allocate paging mechanism using a controller and a buffer
US8914340B2 (en) * 2008-02-06 2014-12-16 International Business Machines Corporation Apparatus, system, and method for relocating storage pool hot spots
US8423739B2 (en) * 2008-02-06 2013-04-16 International Business Machines Corporation Apparatus, system, and method for relocating logical array hot spots
DE102008009768B4 (de) * 2008-02-19 2011-04-07 Texas Instruments Deutschland Gmbh Inkrementierender Zähler mit verlängerter Schreiblebensdauer
JP5010505B2 (ja) * 2008-03-01 2012-08-29 株式会社東芝 メモリシステム
US8560761B2 (en) * 2008-03-31 2013-10-15 Spansion Llc Memory resource management for a flash aware kernel
KR101437123B1 (ko) * 2008-04-01 2014-09-02 삼성전자 주식회사 메모리 시스템 및 그것의 마모도 관리 방법
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 株式会社東芝 メモリシステム
US8082385B2 (en) * 2008-05-02 2011-12-20 Sony Corporation Systematic memory shift for pre-segmented memory
US8055835B2 (en) * 2008-06-23 2011-11-08 International Business Machines Corporation Apparatus, system, and method for migrating wear spots
US8843691B2 (en) * 2008-06-25 2014-09-23 Stec, Inc. Prioritized erasure of data blocks in a flash storage device
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
US20100017807A1 (en) * 2008-07-15 2010-01-21 Radoslav Danilak System, method, and computer program product for transparent communication between a storage device and an application
TWI389125B (zh) * 2008-07-18 2013-03-11 A Data Technology Co Ltd 記憶體儲存裝置及其控制方法
KR20100013485A (ko) 2008-07-31 2010-02-10 삼성전자주식회사 메모리 장치 및 웨어 레벨링 방법
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
CA2737046A1 (en) * 2008-09-11 2010-03-18 Nexxus Lighting, Inc. Light and process of manufacturing a light
TWI364661B (en) * 2008-09-25 2012-05-21 Silicon Motion Inc Access methods for a flash memory and memory devices
KR100974215B1 (ko) * 2008-10-02 2010-08-06 주식회사 하이닉스반도체 반도체 스토리지 시스템 및 그 제어 방법
TWI470428B (zh) * 2008-10-03 2015-01-21 Phison Electronics Corp 用於非揮發性記憶體的資料程式規劃系統、記憶體管理方法及其控制器
US9128821B2 (en) * 2008-10-10 2015-09-08 Seagate Technology Llc Data updating in non-volatile memory
US8219781B2 (en) 2008-11-06 2012-07-10 Silicon Motion Inc. Method for managing a memory apparatus, and associated memory apparatus thereof
US8275933B2 (en) 2008-11-10 2012-09-25 Fusion-10, Inc Apparatus, system, and method for managing physical regions in a solid-state storage device
US20100125696A1 (en) * 2008-11-17 2010-05-20 Prasanth Kumar Memory Controller For Controlling The Wear In A Non-volatile Memory Device And A Method Of Operation Therefor
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
WO2010067361A1 (en) 2008-12-10 2010-06-17 Amir Ban Method and device of managing a reduced wear memory
US8316201B2 (en) * 2008-12-18 2012-11-20 Sandisk Il Ltd. Methods for executing a command to write data from a source location to a destination location in a memory device
US7940568B1 (en) 2008-12-30 2011-05-10 Micron Technology, Inc. Dynamic polarization for reducing stress induced leakage current
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
US8040744B2 (en) 2009-01-05 2011-10-18 Sandisk Technologies Inc. Spare block management of non-volatile memories
US20100174845A1 (en) * 2009-01-05 2010-07-08 Sergey Anatolievich Gorobets Wear Leveling for Non-Volatile Memories: Maintenance of Experience Count and Passive Techniques
US8094500B2 (en) 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning
US8250293B2 (en) * 2009-01-19 2012-08-21 Qimonda Ag Data exchange in resistance changing memory for improved endurance
KR20100091544A (ko) * 2009-02-10 2010-08-19 삼성전자주식회사 메모리 시스템 및 그 마모도 관리 방법
JP5185156B2 (ja) * 2009-02-24 2013-04-17 株式会社東芝 メモリコントローラおよび半導体記憶装置
US8090899B1 (en) 2009-03-04 2012-01-03 Western Digital Technologies, Inc. Solid state drive power safe wear-leveling
KR101038991B1 (ko) * 2009-03-10 2011-06-03 주식회사 하이닉스반도체 메모리 영역의 균등한 사용을 위한 반도체 스토리지 시스템및 그 제어 방법
KR101586047B1 (ko) 2009-03-25 2016-01-18 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
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
US8065469B2 (en) * 2009-04-20 2011-11-22 Imation Corp. Static wear leveling
US8176295B2 (en) 2009-04-20 2012-05-08 Imation Corp. Logical-to-physical address translation for a removable data storage device
US8250282B2 (en) * 2009-05-14 2012-08-21 Micron Technology, Inc. PCM memories for storage bus interfaces
US20100318719A1 (en) * 2009-06-12 2010-12-16 Micron Technology, Inc. Methods, memory controllers and devices for wear leveling a memory
US8639877B2 (en) * 2009-06-30 2014-01-28 International Business Machines Corporation Wear leveling of solid state disks distributed in a plurality of redundant array of independent disk ranks
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
US20110004720A1 (en) * 2009-07-02 2011-01-06 Chun-Ying Chiang Method and apparatus for performing full range random writing on a non-volatile 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
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
US8601202B1 (en) * 2009-08-26 2013-12-03 Micron Technology, Inc. Full chip wear leveling in memory device
US8036016B2 (en) * 2009-09-01 2011-10-11 Micron Technology, Inc. Maintenance process to enhance memory endurance
US8234520B2 (en) 2009-09-16 2012-07-31 International Business Machines Corporation Wear leveling of solid state disks based on usage information of data and parity received from a raid controller
US8169833B2 (en) * 2009-10-01 2012-05-01 Micron Technology, Inc. Partitioning process to improve memory cell retention
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
US8526605B2 (en) * 2009-10-09 2013-09-03 Seagate Technology Llc Data encryption to provide data security and memory cell bit wear leveling
EP2317443A1 (en) * 2009-10-29 2011-05-04 Incard SA Method for executing data updates in an IC Card
US8013762B2 (en) * 2009-11-03 2011-09-06 Seagate Technology Llc Evaluating alternative encoding solutions during data compression
US8560770B2 (en) * 2009-11-13 2013-10-15 Seagate Technology Llc Non-volatile write cache for a data storage system
US8495281B2 (en) * 2009-12-04 2013-07-23 International Business Machines Corporation Intra-block memory wear leveling
US8285946B2 (en) 2009-12-15 2012-10-09 International Business Machines Corporation Reducing access contention in flash-based memory systems
TWI484334B (zh) * 2009-12-24 2015-05-11 Univ Nat Taiwan 非揮發記憶體的區域式管理方法
US8443263B2 (en) * 2009-12-30 2013-05-14 Sandisk Technologies Inc. Method and controller for performing a copy-back operation
US8595411B2 (en) * 2009-12-30 2013-11-26 Sandisk Technologies Inc. Method and controller for performing a sequence of commands
TWI447735B (zh) * 2010-02-05 2014-08-01 Phison Electronics Corp 記憶體管理與寫入方法及其可複寫式非揮發性記憶體控制器與儲存系統
JP2011164994A (ja) 2010-02-10 2011-08-25 Toshiba Corp メモリシステム
US8856488B2 (en) 2010-02-11 2014-10-07 Memory Technologies Llc Method for utilizing a memory interface to control partitioning of a memory module
JP5130313B2 (ja) * 2010-04-02 2013-01-30 株式会社日立製作所 管理システム及び計算機システムの管理方法
WO2012065112A2 (en) * 2010-11-12 2012-05-18 Apple Inc. Apparatus and methods for recordation of device history across multiple software emulations
EP2672389B1 (en) * 2011-01-31 2019-02-27 Mitsubishi Electric Corporation Memory controller
WO2012106362A2 (en) 2011-01-31 2012-08-09 Fusion-Io, Inc. Apparatus, system, and method for managing eviction of data
CN102081576B (zh) * 2011-03-01 2012-07-11 华中科技大学 一种闪存的磨损平衡方法
US8732538B2 (en) 2011-03-10 2014-05-20 Icform, Inc. Programmable data storage management
JP2012203443A (ja) 2011-03-23 2012-10-22 Toshiba Corp メモリシステムおよびメモリシステムの制御方法
US8762625B2 (en) * 2011-04-14 2014-06-24 Apple Inc. Stochastic block allocation for improved wear leveling
US8862902B2 (en) * 2011-04-29 2014-10-14 Seagate Technology Llc Cascaded data encryption dependent on attributes of physical memory
US8806171B2 (en) * 2011-05-24 2014-08-12 Georgia Tech Research Corporation Systems and methods providing wear leveling using dynamic randomization for non-volatile memory
US20120303878A1 (en) * 2011-05-26 2012-11-29 International Business Machines Corporation Method and Controller for Identifying a Unit in a Solid State Memory Device for Writing Data to
US9514838B2 (en) * 2011-05-31 2016-12-06 Micron Technology, Inc. Apparatus including memory system controllers and related methods for memory management using block tables
KR20120136197A (ko) * 2011-06-08 2012-12-18 삼성전자주식회사 비휘발성 메모리에 대한 웨어 레벨링 방법
CN102841852B (zh) 2011-06-24 2015-06-17 华为技术有限公司 磨损均衡方法、存储装置及信息系统
US8626991B1 (en) * 2011-06-30 2014-01-07 Emc Corporation Multi-LUN SSD optimization system and method
JP5673396B2 (ja) * 2011-07-04 2015-02-18 富士通株式会社 情報処理システム、情報処理プログラム、情報処理方法
CN102439572B (zh) * 2011-10-27 2014-04-02 华为技术有限公司 控制缓存映射的方法及缓存系统
US9268686B2 (en) 2011-12-05 2016-02-23 Intel Corporation Background reordering—a preventive wear-out control mechanism with limited overhead
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
JP5952036B2 (ja) * 2012-03-13 2016-07-13 株式会社メガチップス 半導体メモリのリユース処理装置、及び半導体メモリ
JP5956791B2 (ja) * 2012-03-13 2016-07-27 株式会社メガチップス 半導体メモリのリユース処理装置、及び半導体メモリ
US11024352B2 (en) 2012-04-10 2021-06-01 Samsung Electronics Co., Ltd. Memory system for access concentration decrease management and access concentration decrease method
US8750045B2 (en) 2012-07-27 2014-06-10 Sandisk Technologies Inc. Experience count dependent program algorithm for flash memory
TWI509615B (zh) * 2012-08-03 2015-11-21 Phison Electronics Corp 資料儲存方法、記憶體控制器與記憶體儲存裝置
KR20140031688A (ko) * 2012-09-05 2014-03-13 삼성전자주식회사 스토리지 시스템을 위한 마모 관리 장치 및 방법
US20140129758A1 (en) * 2012-11-06 2014-05-08 Spansion Llc Wear leveling in flash memory devices with trim commands
US8954694B2 (en) 2012-11-15 2015-02-10 Western Digital Technologies, Inc. Methods, data storage devices and systems for fragmented firmware table rebuild in a solid state drive
US9430339B1 (en) 2012-12-27 2016-08-30 Marvell International Ltd. Method and apparatus for using wear-out blocks in nonvolatile memory
US10445229B1 (en) 2013-01-28 2019-10-15 Radian Memory Systems, Inc. Memory controller with at least one address segment defined for which data is striped across flash memory dies, with a common address offset being used to obtain physical addresses for the data in each of the dies
US11249652B1 (en) 2013-01-28 2022-02-15 Radian Memory Systems, Inc. Maintenance of nonvolatile memory on host selected namespaces by a common memory controller
US9465732B2 (en) * 2013-03-15 2016-10-11 Sandisk Technologies Llc Binning of blocks for dynamic linking
US9195590B2 (en) * 2013-08-29 2015-11-24 Micron Technology, Inc. Sub-sector wear leveling in memories
US10019352B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for adaptive reserve storage
GB201322075D0 (en) 2013-12-13 2014-01-29 Ibm Device for selecting a level for at least one read voltage
KR20150095360A (ko) * 2014-02-13 2015-08-21 에스케이하이닉스 주식회사 저항성 메모리 장치 및 동작 방법
TWI548991B (zh) * 2014-02-14 2016-09-11 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元與記憶體儲存裝置
US9230689B2 (en) 2014-03-17 2016-01-05 Sandisk Technologies Inc. Finding read disturbs on non-volatile memories
US10068639B2 (en) 2014-04-29 2018-09-04 International Business Machines Corporation Out-of-place presetting based on indirection table
US9471428B2 (en) 2014-05-06 2016-10-18 International Business Machines Corporation Using spare capacity in solid state drives
US20150339223A1 (en) * 2014-05-22 2015-11-26 Kabushiki Kaisha Toshiba Memory system and method
US9471451B2 (en) 2014-06-18 2016-10-18 International Business Machines Corporation Implementing enhanced wear leveling in 3D flash memories
US10261899B2 (en) * 2014-09-03 2019-04-16 Infineon Technologies Ag Method, device and system for data processing using dedicated mapping between logical and physical addresses
US9542118B1 (en) 2014-09-09 2017-01-10 Radian Memory Systems, Inc. Expositive flash memory control
US9875039B2 (en) 2014-09-30 2018-01-23 Sandisk Technologies Llc Method and apparatus for wear-leveling non-volatile memory
US9563373B2 (en) 2014-10-21 2017-02-07 International Business Machines Corporation Detecting error count deviations for non-volatile memory blocks for advanced non-volatile memory block management
US10365859B2 (en) * 2014-10-21 2019-07-30 International Business Machines Corporation Storage array management employing a merged background management process
US9830087B2 (en) * 2014-11-13 2017-11-28 Micron Technology, Inc. Memory wear leveling
WO2016083865A1 (zh) 2014-11-25 2016-06-02 三星电子株式会社 基于概率信息检测半导体存储器的被最频繁存取的地址的方法
US10339048B2 (en) 2014-12-23 2019-07-02 International Business Machines Corporation Endurance enhancement scheme using memory re-evaluation
US9990279B2 (en) 2014-12-23 2018-06-05 International Business Machines Corporation Page-level health equalization
US10055267B2 (en) * 2015-03-04 2018-08-21 Sandisk Technologies Llc Block management scheme to handle cluster failures in non-volatile memory
US10013177B2 (en) * 2015-04-20 2018-07-03 Hewlett Packard Enterprise Development Lp Low write amplification in solid state drive
US9760437B2 (en) 2015-07-01 2017-09-12 International Business Machines Corporation Error correction based on thermal profile of flash memory device
KR102513491B1 (ko) * 2015-07-15 2023-03-27 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
WO2017058184A1 (en) * 2015-09-30 2017-04-06 Hewlett Packard Enterprise Development Lp Remapping operations
US10031845B2 (en) * 2016-04-01 2018-07-24 Intel Corporation Method and apparatus for processing sequential writes to a block group of physical blocks in a memory device
US9971685B2 (en) * 2016-04-01 2018-05-15 Intel Corporation Wear leveling based on a swapping operation between sets of physical block addresses of a non-volatile memory
US9842059B2 (en) * 2016-04-14 2017-12-12 Western Digital Technologies, Inc. Wear leveling in storage devices
US10121555B2 (en) * 2016-05-26 2018-11-06 Advanced Micro Devices, Inc. Wear-limiting non-volatile memory
US10248571B2 (en) * 2016-08-11 2019-04-02 Hewlett Packard Enterprise Development Lp Saving position of a wear level rotation
US11556462B2 (en) 2016-08-24 2023-01-17 Futurewei Technologies, Inc. Wear-leveling method for cross-point memory for multiple data temperature zones
US10261876B2 (en) 2016-11-08 2019-04-16 Micron Technology, Inc. Memory management
US10248333B1 (en) * 2017-02-07 2019-04-02 Crossbar, Inc. Write distribution techniques for two-terminal memory wear leveling
US10409714B1 (en) 2017-02-09 2019-09-10 Crossbar, Inc. Logical to physical translation for two-terminal memory
US10019332B1 (en) * 2017-03-10 2018-07-10 Western Digital Technologies, Inc. Non-volatile memory with program failure recovery
US10198195B1 (en) * 2017-08-04 2019-02-05 Micron Technology, Inc. Wear leveling
US10642727B1 (en) 2017-09-27 2020-05-05 Amazon Technologies, Inc. Managing migration events performed by a memory controller
US10459662B1 (en) 2017-09-27 2019-10-29 Amazon Technologies, Inc. Write failure handling for a memory controller to non-volatile memory
US20190129627A1 (en) * 2017-10-31 2019-05-02 EMC IP Holding Company LLC Method and system for wear-leveling using a multi-gap progress field
US10606743B2 (en) * 2017-12-05 2020-03-31 Micron Technology, Inc. Data movement operations in non-volatile memory
US11048644B1 (en) 2017-12-11 2021-06-29 Amazon Technologies, Inc. Memory mapping in an access device for non-volatile memory
US10635327B2 (en) * 2018-01-31 2020-04-28 Western Digital Technologies, Inc. Data availability during memory inaccessibility
CN108920386B (zh) * 2018-07-20 2020-06-26 中兴通讯股份有限公司 面向非易失性内存的磨损均衡及访问方法、设备和存储介质
US11537307B2 (en) * 2018-08-23 2022-12-27 Micron Technology, Inc. Hybrid wear leveling for in-place data replacement media
KR102545189B1 (ko) 2018-09-07 2023-06-19 삼성전자주식회사 스토리지 장치, 스토리지 시스템 및 스토리지 장치의 동작 방법
US10902929B1 (en) * 2019-08-29 2021-01-26 Micron Technology, Inc. Zone swapping for wear leveling memory
US11402999B2 (en) 2019-12-03 2022-08-02 Burlywood, Inc. Adaptive wear leveling using multiple partitions
US11429543B2 (en) * 2020-10-22 2022-08-30 Micron Technology, Inc. Managed NAND flash memory region control against endurance hacking
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 (119)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4093985A (en) 1976-11-05 1978-06-06 North Electric Company Memory sparing arrangement
DE2840305C3 (de) 1978-09-15 1981-03-26 Siemens AG, 1000 Berlin und 8000 München Verfahren zum Programmieren von wiederholt beschreibbaren Festwertspeichern
JPS5580164A (en) 1978-12-13 1980-06-17 Fujitsu Ltd Main memory constitution control system
JPS5764383A (en) 1980-10-03 1982-04-19 Toshiba Corp Address converting method and its device
DE3123444A1 (de) 1981-06-12 1983-01-05 Siemens AG, 1000 Berlin und 8000 München Verfahren und anordnung zum nichtfluechtigen speichern des zaehlerstandes einer elektronischen zaehlschaltung
DE3123654A1 (de) 1981-06-15 1983-01-20 Vdo Adolf Schindling Ag, 6000 Frankfurt Schaltungsanordnung zur speicherung eines mehrstelligen dekadischen zaehlwerts einer von einem fahrzeug zurueckgelegten wegstrecke
US4430727A (en) 1981-11-10 1984-02-07 International Business Machines Corp. Storage element reconfiguration
DE3200872A1 (de) 1982-01-14 1983-07-21 Sartorius GmbH, 3400 Göttingen Elektronische waage
US4530054A (en) 1982-03-03 1985-07-16 Sperry Corporation Processor-addressable timestamp for indicating oldest written-to cache entry not copied back to bulk memory
JPS58189890A (ja) 1982-04-30 1983-11-05 Hitachi Ltd 階層記憶装置
JPS58215794A (ja) 1982-06-08 1983-12-15 Toshiba Corp 不揮発性メモリ装置
JPS58215795A (ja) 1982-06-08 1983-12-15 Toshiba Corp 不揮発性メモリ装置
NL8202365A (nl) 1982-06-11 1984-01-02 Philips Nv Serie-parallel-serie schuifregistergeheugen, hetwelk redundante parallelgeschakelde opslagregisters bevat, en afbeeldtoestel, voorzien van een zodanig georganiseerd beeldgeheugen.
JPS5945695A (ja) 1982-09-07 1984-03-14 Fujitsu Ltd Icメモリ
JPS59162695A (ja) 1983-03-07 1984-09-13 Nec Corp 記憶装置
JPS6049218A (ja) 1983-08-30 1985-03-18 Nippon Denso Co Ltd 車両用走行距離計
US4612640A (en) 1984-02-21 1986-09-16 Seeq Technology, Inc. Error checking and correction circuitry for use with an electrically-programmable and electrically-erasable memory array
JPS60179857A (ja) 1984-02-28 1985-09-13 Fujitsu Ltd キヤツシユ装置の制御方式
GB2171543B (en) 1985-02-27 1988-04-20 Hughes Microelectronics Ltd Counting circuit which provides for extended counter life
US4718041A (en) 1986-01-09 1988-01-05 Texas Instruments Incorporated EEPROM memory having extended life
US4953073A (en) 1986-02-06 1990-08-28 Mips Computer Systems, Inc. Cup chip having tag comparator and address translation unit on chip and connected to off-chip cache and main memories
JPH07109717B2 (ja) 1986-05-31 1995-11-22 キヤノン株式会社 メモリ書き込み制御方法
JP2685173B2 (ja) 1986-05-31 1997-12-03 キヤノン株式会社 メモリ書き込み制御方法
JPS63183700A (ja) 1987-01-26 1988-07-29 Mitsubishi Electric Corp Eepromアクセス方法
US4899272A (en) 1987-10-23 1990-02-06 Chips & Technologies, Inc. Addressing multiple types of memory devices
US4924375A (en) 1987-10-23 1990-05-08 Chips And Technologies, Inc. Page interleaved memory access
JPH0778997B2 (ja) 1987-10-30 1995-08-23 株式会社東芝 不揮発性半導体メモリ
US4803707A (en) 1987-12-21 1989-02-07 Ncr Corporation Nonvolatile electronic odometer with excess write cycle protection
JPH0793823B2 (ja) * 1988-02-01 1995-10-09 株式会社日立製作所 電圧形インバータのpwm制御装置
US5053990A (en) 1988-02-17 1991-10-01 Intel Corporation Program/erase selection for flash memory
JPH01235075A (ja) 1988-03-14 1989-09-20 Fuji Xerox Co Ltd ディスクメモリ制御装置
US4922456A (en) 1988-04-29 1990-05-01 Scientific-Atlanta, Inc. Method of reducing wearout in a non-volatile memory with double buffer
US5043940A (en) 1988-06-08 1991-08-27 Eliyahou Harari Flash EEPROM memory systems having multistate storage cells
US5168465A (en) 1988-06-08 1992-12-01 Eliyahou Harari Highly compact EPROM and flash EEPROM devices
US5095344A (en) 1988-06-08 1992-03-10 Eliyahou Harari Highly compact eprom and flash eeprom devices
US5268870A (en) 1988-06-08 1993-12-07 Eliyahou Harari Flash EEPROM system and intelligent programming and erasing methods therefor
JP2685825B2 (ja) 1988-08-12 1997-12-03 株式会社東芝 不揮発性半導体メモリ
JPH0283892A (ja) 1988-09-20 1990-03-23 Fujitsu Ltd 半導体記憶装置
US5193071A (en) 1988-12-22 1993-03-09 Digital Equipment Corporation Memory apparatus for multiple processor systems
JPH02189790A (ja) 1989-01-18 1990-07-25 Mitsubishi Electric Corp ダイナミック形半導体記憶装置
US4947410A (en) 1989-02-23 1990-08-07 General Motors Corporation Method and apparatus for counting with a nonvolatile memory
EP1031992B1 (en) 1989-04-13 2006-06-21 SanDisk Corporation Flash EEPROM system
US5172338B1 (en) 1989-04-13 1997-07-08 Sandisk Corp Multi-state eeprom read and write circuits and techniques
US5163021A (en) 1989-04-13 1992-11-10 Sundisk Corporation Multi-state EEprom read and write circuits and techniques
WO1994027382A1 (en) 1993-05-11 1994-11-24 Norand Corporation Premises, peripheral and vehicular local area networking
JPH0373496A (ja) 1989-05-16 1991-03-28 Seiko Epson Corp Eeprom書込装置
JPH0692898B2 (ja) 1989-05-31 1994-11-16 日本精機株式会社 電子式オドメータ
FR2647941B1 (fr) 1989-06-06 1991-08-30 Gemplus Card Int Procede d'effacement de points memoire, dispositif destine a sa mise en oeuvre, et son utilisation dans un dispositif a memoire non alimente
JPH0325798A (ja) 1989-06-23 1991-02-04 Ricoh Co Ltd Eepromを使用した記憶装置
JPH0330034A (ja) 1989-06-28 1991-02-08 Hitachi Ltd 光デイスクフアイル管理方法
JPH0748320B2 (ja) 1989-07-24 1995-05-24 セイコー電子工業株式会社 半導体不揮発性メモリ
US5065364A (en) 1989-09-15 1991-11-12 Intel Corporation Apparatus for providing block erasing in a flash EPROM
US5200959A (en) 1989-10-17 1993-04-06 Sundisk Corporation Device and method for defect handling in semi-conductor memory
US5134589A (en) 1989-10-30 1992-07-28 Mitsubishi Denki Kabushiki Kaisha Semiconductor memory device having a flash write function
JPH03283094A (ja) 1990-03-29 1991-12-13 Nec Corp 半導体メモリ
JPH0498342A (ja) 1990-08-09 1992-03-31 Mitsubishi Electric Corp 半導体記憶装置
JPH04123243A (ja) 1990-09-14 1992-04-23 Toshiba Corp データ書込装置
US5303198A (en) 1990-09-28 1994-04-12 Fuji Photo Film Co., Ltd. Method of recording data in memory card having EEPROM and memory card system using the same
US5222193A (en) * 1990-12-26 1993-06-22 Intel Corporation Training system for neural networks and the like
US5222109A (en) 1990-12-28 1993-06-22 Ibm Corporation Endurance management for solid state files
GB2251324B (en) 1990-12-31 1995-05-10 Intel Corp File structure for a non-volatile semiconductor memory
GB2251323B (en) 1990-12-31 1994-10-12 Intel Corp Disk emulation for a non-volatile semiconductor memory
JP3137993B2 (ja) 1991-01-16 2001-02-26 富士通株式会社 不揮発性半導体記憶装置
US5272669A (en) 1991-02-20 1993-12-21 Sundisk Corporation Method and structure for programming floating gate memory cells
US5295255A (en) 1991-02-22 1994-03-15 Electronic Professional Services, Inc. Method and apparatus for programming a solid state processor with overleaved array memory modules
US5270979A (en) 1991-03-15 1993-12-14 Sundisk Corporation Method for optimum erasing of EEPROM
US5663901A (en) 1991-04-11 1997-09-02 Sandisk Corporation Computer memory cards using flash EEPROM integrated circuit chips and memory-controller systems
FR2675287B1 (fr) 1991-04-15 1993-06-18 Bull Sa Circuit coupleur et son utilisation dans une carte et procede.
DE4215063C2 (de) 1991-05-10 1999-11-25 Intel Corp Einrichtung und Verfahren zum Seitenwechsel bei einem nicht-flüchtigen Speicher
JP2582487B2 (ja) 1991-07-12 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション 半導体メモリを用いた外部記憶システム及びその制御方法
JP2549034B2 (ja) 1991-07-22 1996-10-30 株式会社メルコ 記憶装置
US5430859A (en) 1991-07-26 1995-07-04 Sundisk Corporation Solid state memory system including plural memory chips and a serialized bus
US5245572A (en) 1991-07-30 1993-09-14 Intel Corporation Floating gate nonvolatile memory with reading while writing capability
US6230233B1 (en) * 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
US5263003A (en) 1991-11-12 1993-11-16 Allen-Bradley Company, Inc. Flash memory circuit and method of operation
JP3231832B2 (ja) 1991-11-26 2001-11-26 株式会社日立製作所 フラッシュメモリを記憶媒体とした半導体ディスク
JPH05151097A (ja) 1991-11-28 1993-06-18 Fujitsu Ltd 書換回数制限型メモリのデータ管理方式
JP3122201B2 (ja) 1991-11-30 2001-01-09 株式会社東芝 メモリカード装置
JPH05176564A (ja) * 1991-12-26 1993-07-13 Aisin Seiki Co Ltd 放射圧を利用したアクチュエータ
US5267218A (en) 1992-03-31 1993-11-30 Intel Corporation Nonvolatile memory card with a single power supply input
US5341489A (en) 1992-04-14 1994-08-23 Eastman Kodak Company Memory card with programmable interleaving
KR0121800B1 (ko) 1992-05-08 1997-11-22 사또오 후미오 메모리 카드장치
US5280447A (en) 1992-06-19 1994-01-18 Intel Corporation Floating gate nonvolatile memory with configurable erasure blocks
JP3105092B2 (ja) * 1992-10-06 2000-10-30 株式会社東芝 半導体メモリ装置
JP3177015B2 (ja) * 1992-10-14 2001-06-18 株式会社東芝 半導体メモリ装置の制御方法
WO1994017474A1 (en) * 1993-01-21 1994-08-04 Apple Computer, Inc. Apparatus and method for backing up data from networked computer storage devices
US5388083A (en) 1993-03-26 1995-02-07 Cirrus Logic, Inc. Flash memory mass storage architecture
EP0661636B1 (en) 1993-12-29 1998-09-23 STMicroelectronics S.r.l. Integrated programming circuitry for an electrically programmable semiconductor memory device with redundancy
US5726937A (en) 1994-01-31 1998-03-10 Norand Corporation Flash memory system having memory cache
JP3507132B2 (ja) * 1994-06-29 2004-03-15 株式会社日立製作所 フラッシュメモリを用いた記憶装置およびその記憶制御方法
JP3219699B2 (ja) * 1996-09-17 2001-10-15 三洋電機株式会社 半導体メモリ装置
GB2317721B (en) * 1996-09-30 2001-09-12 Nokia Mobile Phones Ltd Memory device
JP3130258B2 (ja) * 1996-10-25 2001-01-31 インターナショナル・ビジネス・マシーンズ・コーポレ−ション ディスク装置及びデータ・リアサイン方法
US5890192A (en) 1996-11-05 1999-03-30 Sandisk Corporation Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM
US6034897A (en) * 1999-04-01 2000-03-07 Lexar Media, Inc. Space management for managing high capacity nonvolatile memory
DE19718479C1 (de) * 1997-04-30 1998-09-24 Siemens Ag Chipkarte mit Speicherzugriffsmaximierung und Protokollierung
US5930167A (en) 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
JP4079506B2 (ja) * 1997-08-08 2008-04-23 株式会社東芝 不揮発性半導体メモリシステムの制御方法
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
US6085102A (en) * 1997-08-29 2000-07-04 Motorola, Inc. Method and apparatus for providing coverage in a selective messaging system
JP3544859B2 (ja) 1998-05-11 2004-07-21 富士通株式会社 不揮発性半導体メモリを使用した2次記憶装置
FR2787601A1 (fr) * 1998-12-22 2000-06-23 Gemplus Card Int Systeme de memorisation comprenant des moyens de gestion d'une memoire avec anti-usure et procede de gestion anti-usure d'une memoire
JP2000285688A (ja) 1999-04-01 2000-10-13 Mitsubishi Electric Corp 不揮発性半導体記憶装置
JP2001067258A (ja) * 1999-08-25 2001-03-16 Mitsubishi Electric Corp フラッシュメモリ内蔵半導体装置及びフラッシュメモリアドレス変換方法
US6141251A (en) * 2000-01-28 2000-10-31 Silicon Storage Technology, Inc. Non-volatile memory array having an index used in programming and erasing
US6535851B1 (en) * 2000-03-24 2003-03-18 Speechworks, International, Inc. Segmentation approach for speech recognition systems
KR100644602B1 (ko) * 2000-10-11 2006-11-10 삼성전자주식회사 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조
US6763424B2 (en) 2001-01-19 2004-07-13 Sandisk Corporation Partial block data programming and reading operations in a non-volatile memory
US6676281B2 (en) * 2001-05-23 2004-01-13 Sea Gull Lighting Products, Inc. Rail lighting system
US6675281B1 (en) * 2002-01-22 2004-01-06 Icreate Technologies Corporation Distributed mapping scheme for mass storage system
US7035967B2 (en) 2002-10-28 2006-04-25 Sandisk Corporation Maintaining an average erase count in a non-volatile storage system
US6831865B2 (en) 2002-10-28 2004-12-14 Sandisk Corporation Maintaining erase counts in non-volatile storage systems
US7039788B1 (en) 2002-10-28 2006-05-02 Sandisk Corporation Method and apparatus for splitting a logical block
US6973531B1 (en) 2002-10-28 2005-12-06 Sandisk Corporation Tracking the most frequently erased blocks in non-volatile memory systems
US7254668B1 (en) 2002-10-28 2007-08-07 Sandisk Corporation Method and apparatus for grouping pages within a block
US7234036B1 (en) 2002-10-28 2007-06-19 Sandisk Corporation Method and apparatus for resolving physical blocks associated with a common logical block
US6985992B1 (en) 2002-10-28 2006-01-10 Sandisk Corporation Wear-leveling in non-volatile storage systems
US7103732B1 (en) 2002-10-28 2006-09-05 Sandisk Corporation Method and apparatus for managing an erase count block
US7096313B1 (en) 2002-10-28 2006-08-22 Sandisk Corporation Tracking the least frequently erased blocks in non-volatile memory systems

Cited By (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101645041B (zh) * 2006-03-29 2013-03-13 株式会社日立制作所 使用闪存的存储系统
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
CN101409108B (zh) * 2007-10-09 2011-04-13 群联电子股份有限公司 平均磨损方法及使用此方法的控制器
CN101419834B (zh) * 2007-10-22 2011-03-30 群联电子股份有限公司 平均磨损方法及使用此方法的控制器
CN102047341B (zh) * 2008-02-29 2014-11-19 马维尔国际贸易有限公司 用于混合非易失性固态存储系统的疲劳管理系统和方法
CN101640069A (zh) * 2008-08-01 2010-02-03 群联电子股份有限公司 用于闪速存储器的平均磨损方法、储存系统与控制器
CN101794256B (zh) * 2009-02-04 2015-11-25 格林莱安特有限责任公司 非易失性存储器子系统及其存储器控制器
CN102341793A (zh) * 2009-03-04 2012-02-01 美光科技公司 存储器块选择
US8751731B2 (en) 2009-03-04 2014-06-10 Micron Technology, Inc. Memory super block allocation
CN102341793B (zh) * 2009-03-04 2015-02-04 美光科技公司 存储器块选择
CN102375693A (zh) * 2010-08-16 2012-03-14 成都市华为赛门铁克科技有限公司 损耗均衡处理方法和系统以及固态硬盘
CN102446071A (zh) * 2010-09-30 2012-05-09 环鸿科技股份有限公司 取得一存储器状态资讯的接取方法、电子装置及程序产品
CN102446071B (zh) * 2010-09-30 2014-10-08 环鸿科技股份有限公司 取得一存储器状态资讯的接取方法、电子装置及程序产品
CN102610613A (zh) * 2011-01-18 2012-07-25 旺宏电子股份有限公司 三维存储器结构
CN103502960A (zh) * 2011-04-05 2014-01-08 迈克菲股份有限公司 带损耗均衡的存储器设备的加密
CN103502960B (zh) * 2011-04-05 2017-02-15 迈克菲股份有限公司 用于加密存储器设备的方法和系统
CN102955743A (zh) * 2011-08-25 2013-03-06 建兴电子科技股份有限公司 固态储存装置及其损耗平均控制方法
CN104115130A (zh) * 2011-12-20 2014-10-22 桑迪士克科技股份有限公司 存储器设备的损耗均匀化
CN103914401A (zh) * 2013-01-06 2014-07-09 北京忆恒创源科技有限公司 具有多处理器的存储设备
CN103914409A (zh) * 2013-01-06 2014-07-09 北京忆恒创源科技有限公司 用于具有多处理器的存储设备的方法
CN103914401B (zh) * 2013-01-06 2017-05-10 北京忆恒创源科技有限公司 具有多处理器的存储设备
CN103914409B (zh) * 2013-01-06 2017-05-10 北京忆恒创源科技有限公司 用于具有多处理器的存储设备的方法
CN107924334A (zh) * 2015-08-05 2018-04-17 华为技术有限公司 弹性命名分布式循环缓冲区的重新平衡和弹性存储方案
US11209986B2 (en) 2016-11-08 2021-12-28 Micron Technology, Inc. Memory operations on data
CN109923514A (zh) * 2016-11-08 2019-06-21 美光科技公司 对数据的存储器操作
CN109923514B (zh) * 2016-11-08 2022-05-17 美光科技公司 对数据的存储器操作
US11886710B2 (en) 2016-11-08 2024-01-30 Micron Technology, Inc. Memory operations on data
CN107918530A (zh) * 2018-01-12 2018-04-17 江苏华存电子科技有限公司 一种非易失性存储器的磨损均衡方法和装置
CN112204533A (zh) * 2018-05-31 2021-01-08 美光科技公司 具有两个数据部分的存储器中的数据重定位
CN112740189A (zh) * 2018-08-23 2021-04-30 美光科技公司 非易失性存储器的多级损耗均衡
CN112740189B (zh) * 2018-08-23 2024-05-31 美光科技公司 非易失性存储器的多级损耗均衡
CN111639041A (zh) * 2020-05-29 2020-09-08 深圳宏芯宇电子股份有限公司 存储器控制方法、存储器存储装置及存储器控制器
CN111639041B (zh) * 2020-05-29 2022-04-08 深圳宏芯宇电子股份有限公司 存储器控制方法、存储器存储装置及存储器控制器
CN112558878A (zh) * 2020-12-16 2021-03-26 北京华弘集成电路设计有限责任公司 一种基于不同类型存储机制的空间调换方法
CN112558878B (zh) * 2020-12-16 2023-07-04 北京华弘集成电路设计有限责任公司 一种基于不同类型存储机制的空间调换方法

Also Published As

Publication number Publication date
US20070083698A1 (en) 2007-04-12
DE60316171D1 (de) 2007-10-18
US20040083335A1 (en) 2004-04-29
US7552272B2 (en) 2009-06-23
AU2003282544A1 (en) 2004-05-25
EP1556868B1 (en) 2007-09-05
CN100483552C (zh) 2009-04-29
JP2006504201A (ja) 2006-02-02
JP4518951B2 (ja) 2010-08-04
EP1556868A1 (en) 2005-07-27
US7120729B2 (en) 2006-10-10
WO2004040586A1 (en) 2004-05-13
KR101122511B1 (ko) 2012-03-15
KR20110093916A (ko) 2011-08-18
ATE372578T1 (de) 2007-09-15
KR101174308B1 (ko) 2012-08-16
DE60316171T2 (de) 2008-05-29
KR20050083850A (ko) 2005-08-26

Similar Documents

Publication Publication Date Title
CN1720590A (zh) 非易失性存储系统中的自动磨损平衡
CN1701390A (zh) 跟踪非易失性存储器系统中最频繁擦除区块
CN1701308A (zh) 维护非易失性存储系统中的擦除计数
US6985992B1 (en) Wear-leveling in non-volatile storage systems
CN1698036A (zh) 跟踪非易失性存储器系统中最不频繁擦除区块
CN1701307A (zh) 管理擦除计数区块的方法和设备
CN1295622C (zh) 地址映射方法和映射信息管理方法及其闪速存储器
US7254668B1 (en) Method and apparatus for grouping pages within a block
CN1701389A (zh) 维持非易失性存储系统中的平均擦除计数
JP5005171B2 (ja) 論理ブロックをスプリットする方法および装置
CN1918552A (zh) 基于主机使用特性的快闪存储器地址映射的适应性模式切换
US20050144363A1 (en) Data boundary management
US20070150694A1 (en) Hybrid Mapping Implementation Within a Non-Volatile Memory System
CN1745433A (zh) 对非易失性存储器中缺陷的区界调整
CN1441440A (zh) 在闪存设备中获得均匀的磨损调整的系统和方法
JP2015503798A (ja) Slc−mlc消耗バランシング
CN101075211A (zh) 基于sector访问的flash存储器的存储管理
CN1801119A (zh) 用于时间敏感复制的装置、系统和方法
CN1538456A (zh) 闪存存取装置及方法
EP1713085A1 (en) Automated wear leveling in non-volatile storage systems
CN1703678A (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: 20120427

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

Effective date of registration: 20120427

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: 20131016

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

Effective date of registration: 20131016

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: JINGDUKUAI FLASH MEMORY SYSTEM COMPANY

Free format text: FORMER OWNER: PS2 LIHAO COMPANY

Effective date: 20150226

Owner name: PS3 LIHAO COMPANY

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

Effective date: 20150226

Owner name: PS2 LIHAO COMPANY

Free format text: FORMER OWNER: PS3 LIHAO COMPANY

Effective date: 20150226

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

Effective date of registration: 20150226

Address after: Luxemburg Luxemburg

Patentee after: PS3 ho Co.

Address before: Delaware

Patentee before: Intelligent intellectual property holdings LLC

Effective date of registration: 20150226

Address after: Luxemburg Luxemburg

Patentee after: Longitude Flash Storage Systems Inc.

Address before: Luxemburg Luxemburg

Patentee before: PS2 ho Co.

Effective date of registration: 20150226

Address after: Luxemburg Luxemburg

Patentee after: PS2 ho Co.

Address before: Luxemburg Luxemburg

Patentee before: PS3 ho Co.

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: 20160817

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: 20090429

Termination date: 20211009

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