CN100589203C - 非易失存储器系统中不可用块的管理 - Google Patents

非易失存储器系统中不可用块的管理 Download PDF

Info

Publication number
CN100589203C
CN100589203C CN200310104634A CN200310104634A CN100589203C CN 100589203 C CN100589203 C CN 100589203C CN 200310104634 A CN200310104634 A CN 200310104634A CN 200310104634 A CN200310104634 A CN 200310104634A CN 100589203 C CN100589203 C CN 100589203C
Authority
CN
China
Prior art keywords
fault
block
physical
piece
memory element
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.)
Expired - Fee Related
Application number
CN200310104634A
Other languages
English (en)
Other versions
CN1512511A (zh
Inventor
张钦泽
B·卡瓦米
F·萨比特-沙希
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.)
Delphi International Operations Luxembourg SARL
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 CN1512511A publication Critical patent/CN1512511A/zh
Application granted granted Critical
Publication of CN100589203C publication Critical patent/CN100589203C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/18Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
    • G11C29/26Accessing multiple arrays
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

一种非易失存储器系统中不可用块的管理的方法和装置,揭示追踪故障块以使得当需要的时候可以马上标识至少部分故障块并检测其可用性。根据本发明的一个方面,在非易失存储器中标识空闲块的方法包括对至少一个和该非易失存储器关联的故障物理块进行检测以确定该故障物理块是否可用。该方法还包括确定该故障物理块何时通过检测,并当确定该故障物理块通过检测时标识故障物理块为可用物理块。

Description

非易失存储器系统中不可用块的管理
本专利申请请求2002年10月28日提交的美国专利临时申请No.60/421,965的优先权,在此完整引用将其合并。
相关申请的交叉引用
本发明和一起待批准的美国专利申请No.10/281,739,10/281,823,10/281,670,10/281,824,10/281,631,10/281,855,10/281,762,10/281,696,10/281,626和10/281,804,及一起待批准的美国专利预申请No.60/421,910,60/421,725,60/422,166,60/421,746和60/421,911相关,在此完整引用将其合并。
技术领域
本发明涉及大规模数字数据存储系统。更特别地,本发明涉及使故障或不可用物理块能够被管理以使得当需要空闲块时有故障增长的故障块可以被回收的系统和方法。
背景技术
由于其紧凑的物理尺寸,及能被反复地再编程的能力,非易失存储器系统如闪存存储系统的使用在增长。闪存存储系统的紧凑的物理尺寸帮助其使用在越来越流行的装置中。使用闪存存储系统的设备包括,但不仅限于,数码相机、数码摄像机、数码音乐播放器、手持个人计算机及全球定位系统。能够反复地再编程包括在闪存存储系统中的非易失存储器的能力使得闪存存储系统能够被使用并重用。
通常,闪存存储系统可以包括闪存卡和闪存芯片组。闪存芯片组通常包括闪存组件和一个控制器组件。通常,闪存芯片组可以被组装到一个嵌入系统中。这样的部件或主机系统的制造者通常以组件形式获取闪存和其他组件,然后组装闪存和其他组件到主机系统中。
当制造出闪存,制造或工厂故障通常由闪存的制造者标识出。通常,只要闪存包括少于一定数量或一定百分比的故障或不可用物理块,闪存可以被售出(例如)给闪存卡的生产者。例如,故障块可能未保持电荷并且未通过闪存的制造者进行的压力测试。当标识出工厂故障,闪存的制造者能够有效地标记包括工厂故障的块为有故障的。
当对闪存加电时,可以使用扫描处理标识出在包括工厂故障的闪存中的故障块。通常,扫描处理也标识包括有增长的故障的故障块,或曾经可用但已变为不可用的块。当扫描处理标识故障块,扫描处理通常并不区分有工厂故障的故障块和有增长的故障的故障块。故障块的标识对通过防止使用故障块确保整个闪存系统的完整性很重要。作为例子,当用不能保存数据的故障块来存储数据,数据将会丢失。
通常,在对闪存加电时,一旦由扫描处理标识出故障块,将创建一个临时的或易失的故障块列表。引用图1,说明和在存储器系统中汇编故障块列表的一种已有方法关联的步骤。汇编故障或不可用的块的列表的处理200开始于步骤204,对存储器系统加电。一旦存储器系统已加电,在步骤208扫描本质上所有的块,即,在存储器系统的非易失存储器中的物理块,以标识故障块。通常,当系统首先加电格式化时,故障块仅包括有工厂故障的块,或首先在和非易失存储器关联的制造处理中标识出的故障。在接下来的加电处理中,故障块可以包括有工厂故障的块和有增长的故障,或在使用存储器系统的过程中出现的故障的块。
在标识故障块后,在步骤212故障块的列表在缓冲中被创建出。列表通常在和存储器系统关联的易失的缓冲创建出,从而当存储器系统断电时,该列表丢失。同时,故障块的列表通常不区分有工厂故障的故障块和有增长的故障的故障块。相反,列表中的块仅被一般地标识为不可用。
在步骤216,防止故障或不可用块被使用。防止故障块被使用可以包括确保不将故障块列表中的块作为空闲块使用来访问。同样,在步骤220,未包括在列表中的块被用来存储数据或信息。不时地,未包含在故障块列表中的块可能不被成功地读取、成功地写入,或成功地删除。换句话说,未包含在故障块列表中的块也可能有故障,例如由于出现的增长的故障引起。因此,从步骤220,处理流继续到步骤224确定未包含在故障块列表中的块实际上是否有故障。
如果在步骤224确定该块没有故障,处理流返回步骤220,未包含在列表中的块继续被使用。替换地,如果在步骤224确定未包含在列表中的块有故障,那么该块在步骤228被加到故障块的列表中。一旦块被加到故障块的列表中,处理流返回步骤220,未包含在故障块列表中的块被使用。
虽然故障块的列表的创建通常有效地防止故障块被使用,通常,列表中至少部分被标识的块实际上是可用的。具体地,至少部分有增长的故障的故障块实际上可以通过有刚性模式的检测处理,即,实际上可以证明至少部分故障块是可用的。在一些情况下,在一些“极端”或少有的环境下表现为有故障的块实际上在“正常”或更加一般的环境下是没有故障的。结果,实际上可用的块可能未被使用,同时由于本质上不能使用所有可用的块,存储器系统会以更低效率工作。例如,如果一个NAND闪存用在大约为90摄氏度的环境中,其通常超出多数闪存的规格范围,通常会检测到很多增长的故障。很多在超出规格范围的环境中检测到不可用的增长的故障可能在存储器被带回到一个更加正常的温度,例如,在存储器规范声明的范围内时是可用的。
有时,在使用包含闪存组件的存储器系统的过程中,可能会在存储器系统中没有足够的可用空闲块可以用于存储数据。当没有足够的空闲块用于存储数据时,用户需要获取附加的闪存组件来用于存储数据。获取附加的闪存组件用到存储器系统中会很费时,同时也相对昂贵。当有被标识为不可用的可用块时,补偿在存储器系统中的可用的空闲块的缺乏会特别低效,因为部分潜在地可用的块实际上被浪费了。
因此,所需要的是一种方法和装置,使得能够将被标识为故障块的潜在可用的块作为空闲块使用。即,所需要的是一种方法和装置在这样的块实际上是可用的时,“再循环”或回收由于增长的故障标识为有故障的块。
发明内容
本发明涉及追踪故障块以使得当需要的时候可以马上标识至少部分故障块并检测其可用性的方法和装置。根据本发明的一个方面,在非易失存储器中标识空闲块的方法包括对至少一个和该非易失存储器关联的故障物理块进行检测以确定该故障物理块是否可用。该方法还包括确定该故障物理块何时通过检测,并当确定该故障物理块通过检测时标识故障物理块为可用物理块。在一个实例中,标识故障物理块为可用物理块包括标识故障物理块为第一个空闲块,并且加入第一个空闲块到和非易失存储器关联的空闲块的共享池(pool)中。
能够回收先前被标识为不可用的潜在可用的块来使用有效地使本质上在非易失存储器系统中的每个可用的块能够被用来存储数据,从而使存储器系统能够被使用并且,因此,更高效地工作。在一个实例中,有增长的故障的块,如不能被成功地删除,曾经为“好”却已变“坏”的块,可以潜在地在刚性的测试后被回收。通过使一些块能够被回收,存储器系统的自然可用被更高效地使用。
根据本发明的另一方面,管理非易失存储器中的不可用的物理存储元件的方法包括确定第一个物理存储元件何时被标识为有故障,并且当确定第一个物理存储元件被标识为有故障时,从不可用物理存储元件的共享池中本质上移除第一个物理存储元件。该方法还包括存储第一个签名到非易失存储器中标识第一个物理存储元件为有故障的数据结构中。这样的数据结构可以为删除计数块,如在美国专利申请No.10/281,626中所述。在一个实例中确定第一个物理存储元件何时有故障包括确定第一个物理存储元件何时不能被成功地读取、确定第一个物理存储元件何时不能被成功地写入,及确定第一个物理存储元件何时不能被成功地删除的至少一种情况。
根据本发明的另一方面,关联非易失存储器系统中的块的方法包括确定非易失存储器系统的非易失存储器中的第一个物理块何时有工厂故障,存储第一个签名到和当确定第一个物理块有工厂故障时标识第一个物理块为有工厂故障的非易失存储器关联的数据结构中。该方法还包括当确定第一个物理块有工厂故障时,本质上防止第一个物理块被用来存储信息,确定非易失存储器中的第二个物理块何时有增长的故障,并且当确定第二个物理块有增长的故障时,存储第二个签名在标识第二个物理块为有增长的故障的数据结构中。最后,该方法包括当确定第一个物理块有增长的故障时,本质上防止第二个物理块被用来存储信息。
本发明的这些和其他优点将在阅读后面详细说明并且研究附图中不同的图形时变得显而易见。
附图说明
通过引用下面的说明和附图一起,能够得到对本发明最好的理解。
图1为处理流图,展示和一种已有的在存储器系统中汇编故障块的列表的方法关联的步骤。
图2a为包含非易失存储器的通用主机系统的图形表示。
图2b为存储器设备,即,图2a的存储器设备120的图形表示。
图2c为包含嵌入非易失存储器的通用主机系统的图形表示。
图3a为对应于本发明的一个实例的删除计数块的图形表示。
图3b为对应于本发明的一个实例的删除计数块内的页,例如,图3a的删除计数块300的页310a的图形表示,页本质上划分为位置。
图3c为对应于本发明的一个实例的删除计数块内的页,例如,图3a的删除计数块300的页310a的图形表示,页本质上划分为字节。
图3d为对应于本发明的一个实例的删除计数块内的页,例如,其中包含删除计数和指示特定块为不可用的条目的图3a的删除计数块300的页310a的图形表示。
图4为对应于本发明的一个实例的删除计数块内的头,例如,图3a的删除计数块300的头320的图形表示。
图5为处理流图,根据本发明的一个实例展示和一种当非易失存储器系统的非易失存储器第一次被格式化时初始化删除计数块的方法关联的步骤。
图6为处理流图,根据本发明的一个实例展示和处理可能有增长的故障的块关联的步骤。
图7a和7b为处理流图,根据本发明的一个实例展示和一种实现在非易失存储器系统中回收不可用块的处理的方法关联的步骤。
图8为对应于本发明的一个实例的系统结构的的图形化的块图形表示。
具体实施方式
当包含非易失存储器的存储器系统的空闲物理块的共享池正被耗尽,即,用剩很少时,存储器系统的用户被迫补偿可用存储器的缺少。例如,用户可用获取附加的非易失存储器,其代价昂贵。有时,非易失存储器的在一些环境中被标识为不可用或有故障的物理块实际上可能适合晚些时候用在不同的环境中。例如,由于增长的故障被标识为不可用的物理块可能,当用刚性模式全面的测试处理实现时,被回收。当存在被标识为不可用的可用块时,一些潜在可用的块实际上被浪费了。
通过回收先前被标识为不可用的潜在可用的块来使用有效地使本质上在非易失存储器系统中的每个可用的块能够被用来存储数据,从而使整个存储器系统能够被使用并且,因此,更高效地工作。通常,有工厂故障的块,如不能维持电荷的存储水平,在它们被制造出时就有故障并且本质上一直时有故障的并且,因此,是不可回收的。然而,有增长的故障的块,如不能被成功地删除,曾经为“好”却已变“坏”,在一些情况下是可以回收的。同样,在一个实例中,可以检测有增长的故障的块来确定这些块实际上是否可用,然而却不能检测有工厂故障的块。
标识不可用的块是由于工厂故障还是由于增长的故障不可用使得整个块回收处理能够更加高效地进行,因为可以避免检测有工厂故障的块。换句话说,通过本质上只检测潜在地可回收的块,例如,有增长的故障的块,检测处理回收块可以被高效地实现,因为不可能被回收的块通常不被检测。当标识出不可用块时,标记不可用块为由于工厂故障不可用或由于增长的故障不可用使有增长的故障的不可用块能够被立即标识出。
通过追踪不可用块是包含工厂故障还是增长的故障来管理不可用块允许存储器系统的资源能被高效地使用。当有可能回收至少非易失存储器中的一些有增长的故障的不可用块时,至少可能延缓由于缺少可以块而替换非易失存储器的需要。
闪存系统,或更一般地,能够得益于管理不可用块一旦需要附加的空闲块时并回收先前被标识为不可用的块的能力的非易失存储器设备通常包括闪存,例如,NAND或MLC NAND,卡和芯片组。通常,闪存系统和主机系统一起使用以使得主机系统能够对闪存系统写数据或读取数据。然而,一些闪存系统包括嵌入闪存和在主机上执行本质上作为嵌入闪存的控制器的软件,如下面引用图2所述。引用图2a,说明包含非易失存储器设备的通用主机系统,例如,CF卡。主机或计算机系统100通常包括允许微处理器108、随机访问存储器(RAM)112,及输入/输出电路116通讯的系统总线104。应理解主机系统100通常可以包括其他组件,例如,显示设备和网络设备,为展示的目的并未标出它们。
通常,主机系统可以能够获取包括但不仅限于,静止图像信息、音频信息,和视频图像信息的信息。这样的信息可以实时获取,并且以无线方式发送到主机系统100。虽然主机系统100本质上可以为任何系统,主机系统100通常为这样的系统,如数码相机、摄像机、蜂窝通讯设备、音频播放器,或视频播放器。然而应理解主机系统100本质上通常可以为任何存储数据或信息并检索数据或信息的系统。
主机系统100也可以为仅获取数据,或仅检索数据的系统。即,主机系统100可以为,在一个实例中,存储数据的专用系统,或主机系统100可以为读取数据的专用系统。作为例子,主机系统100可以为仅用来写或存储数据的存储器写入器。替换地,主机系统100可以为如MP3播放器这样通常用来读取或检索数据,并且不获取数据的设备。
非易失存储器设备120在一个实例中为可移动非易失存储器设备,和总线104连接来存储信息。可选的接口块130可以允许非易失存储器设备120间接地和总线104连接。熟悉技术的人应理解,当存在时,输入/输出电路块116用来降低总线104的负担。非易失存储器设备120包括非易失存储器124和可选的存储器控制系统128。在一个实例中,非易失存储器设备120可以实现在单个芯片或电路小片(die)上。替换地,非易失存储器设备120可以实现在多芯片模块、或可以构成芯片组并一起作为非易失存储器设备120使用的多个离散组件上。下面引用图2b更详细地说明非易失存储器设备120的一个实例。
非易失存储器124,例如,闪存如NAND闪存或MLC NAND闪存,用来存储数据以使得数据在需要的时候能被访问或读取。存储在非易失存储器124中的数据在适当的时候也可以被删除,虽然应理解在非易失存储器124中的一些数据不能被删除。存储数据、读取数据和删除数据的处理通常由存储器控制系统128或当存储器控制系统128不存在时,由微处理器108执行的软件来控制。非易失存储器124的操作可以被管理以使得通过致使非易失存储器124的各部分平均地消耗,非易失存储器124的生命期本质上得到最大化。
非易失存储器设备120通常以包含可选的存储器控制系统128,即,控制器来说明。通常,非易失存储器设备120可以包括独立的芯片用于非易失存储器124和存储器控制器系统128,即,控制器,功能。作为例子,虽然非易失存储器设备包括,但不仅限于,包括实现在独立的芯片上的控制器的PC卡、CF卡、多媒体卡和安全数字卡,其他非易失存储器设备也可以不包括实现在独立芯片上的控制器。熟悉技术的人应理解,在非易失存储器设备120不包括独立的存储器和控制器芯片的一个实例中,存储器和控制器功能可以被集成到单个芯片中。替换地,存储器控制系统128的功能可以由微处理器108提供,例如上述在非易失存储器设备120不包括存储器控制器128的实例中。
参见图2b,根据本发明的一个实例更详细地说明非易失存储器设备120。如上所述,非易失存储器设备120包括非易失存储器124并且可以包括存储器控制系统128。存储器124和控制系统128,或控制器,可以为非易失存储器设备120的主要组件,虽然当存储器124为嵌入NAND设备,如嵌入MLCNAND存储器时,例如,非易失存储器设备120可以不包括控制系统128。存储器124可以为在半导体基片上构成的存储器单元阵列,其中通过在存储器单元的单独存储元件上存储一个或两个或多个水平的电荷存储一个或多个比特的数据在单独的存储器单元中。一个非易失的快闪电可擦除只读存储器(EEPROM)是这样的系统的存储器的普通类型的例子。
当存在时,控制系统128在总线15上和主机计算机或其他使用该存储器系统存储数据的系统通讯。总线15通常为图2a的总线104的一部分。控制系统128也控制存储器124的操作,它可以包括存储器单元阵列11,来写入由主机提供的数据,读取由主机请求的数据并且在操作存储器124中执行各种常用功能。控制系统128通常包括有关联的非易失软件存储器、各种逻辑电路和类似部分的通用微处理器。一个或多个状态机常被包括用来控制特定例行程序的性能。
存储器单元阵列11通常由控制系统128或微处理器108通过地址解码器17来寻址。解码器17加载正确的电压到阵列11的门和位线以写入数据、读取数据,或删除一组由控制系统128寻址的存储器单元。附加电路19包含根据被写入一组寻址的单元的数据控制加载到阵列的元件的电压的编程驱动器。电路19也包括传感放大器和从一组寻址的存储器单元读取数据所需的其他电路。被写出阵列11的数据,或最近从阵列11读取的数据,通常存储在控制系统128中的缓冲存储器21中。控制系统128通常也包括各种寄存器用来临时地存储命令和状态数据,和类似信息。
阵列11被划分为大量数目的块0到N存储器单元。如对快闪EEPROM系统很普通的那样,块通常时最小的删除单元。即,每个块包含一起删除的最小数量的存储器单元。每个块通常被划分为多个页。熟悉技术的人应理解,页可以是最小的编程单元。即,基本的程序操作对至少一个存储单元的页写数据或读取数据。一个或多个区段的数据通常被存储在每个页中。如图2b所示,一个区段包括用户数据和开销数据。开销数据通常包括从区段的用户数据计算出的纠错码(ECC)。控制系统128的部分23在写入数据到阵列11时计算ECC,并且在从阵列11读取数据时检验ECC。替换地,ECC被存储在包含用户数据的不同的页,或不同的块中。
用户数据的一个区段通常为512字节,对应于磁盘驱动器一个扇区的尺寸。开销数据,或冗余数据,通常为附加的16字节。一个区段的数据最常包含在每个页中但是两个或更多的区段相反可以构成一个页。任何数量的页可以构成一个块。作为例子,一个块可以由8到512、1024或更多页构成。选择块的数量以提供所需的存储器系统的数据存储容量。阵列11通常划分为几个字阵列(未标出),每个子阵列包含一部分块,它们独立于彼此操作以在各种存储器操作的执行中提高并行的程度。使用多个子阵列的一个例子在美国专利No.5,890,192中说明,通过完整引用将其内容合并于此。
在一个实施例中,非易失存储器如MLC NAND存储器被嵌入到一个系统,例如,主机系统。图2c为包含嵌入非易失存储器的主机系统的图形表示。主机或计算机系统150通常包括允许微处理器158、RAM 162,及输入/输出电路166,和主机系统150的其他组件(未标出)通讯的系统总线154。非易失存储器174,例如,闪存,允许信息被存储在主机系统150中。可以在非易失存储器174和总线154之间提供接口180来对非易失存储器174进行信息的读取和写入。
非易失存储器174可以由有效地执行用来控制非易失存储器174的软件或固件或两者的微处理器158管理。即,微处理器158可以运行允许控制非易失存储器174的编码设备,即,软件编码设备或固件编码设备。这样的编码设备,可以为和CPU一起包装在微处理器158内的闪存、独立的快闪ROM或在非易失存储器174内部,下面将对其说明,可以使非易失存储器174中的物理块能够被寻址,并且可以对物理块进行信息的存储、读取和删除。
为了能够区分不可用块,例如,使得可以马上标识有工厂故障的不可用块和有增长的故障的不可用块,第一个比特序列可以被用来标识有工厂故障的不可用块并且第二个比特序列可以被用来标识有增长的故障的不可用块。不同的比特序列,例如,签名或标记,可以被用来本质上唯一地标识有工厂故障的块和有增长的故障的块。
通常,标识有工厂故障的块和有增长的故障的块的签名可以被存储在和非易失存储器系统关联的数据结构中。这样的数据结构首选地存储在非易失存储器组件中的数据结构中以使得当整个系统断电时,该数据结构仍保持完整,它可以包括和存在于存储器组件中的每个物理块相关的比特。和不可用的物理块相关的比特可以作为本质上唯一地标识不可用块为有工厂故障或增长的故障的签名。
可以用来存储标识有工厂故障的不可用块和有增长的故障的不可用块的签名或标记可以为删除计数块,删除计数块为存储在和非易失存储器系统关联的存储器中,如,NAND存储器的保留的块,如美国专利申请No.10/281,626所述,通过完整引用将其内容合并于此。删除计数块可以在回收处理发生时被访问以使得有增长的故障的不可用块,例如,能够被标识。被用来有效地追踪非易失存储器系统中的物理块被删除的次数的删除计数,也可以被存储在删除计数块中。通常,在每个物理块的删除次数之外,删除计数块也包含一个平均删除计数,作为非易失存储器系统中的每个物理块被删除的平均次数的指示器。图3a为对应于本发明的一个实例的删除计数块的图形表示。删除计数块300通常在包含删除计数块300的整个非易失系统中有使得删除计数块300对每个块,即,物理块包含特定数量的比特的尺寸。有效地分配给每个块的该数量的比特可以被选择使得一个块的整个删除计数可以被所分配的比特容纳。在一个实例中,删除计数块300可以对每个块包含大约三个字节,因为三个字节通常在大约十万的尺度上足够容纳删除计数。当对每个块分配三个字节时,在一个包含大约2048块,每个块有大约64页的512Mb的系统,删除计数块300可以有大约包含12页的大小,例如,大约6000字节。
删除计数块300包含页310,熟悉技术的人应理解,页310通常包括可以被用来存储数据如删除计数的大约512字节。如所示,第一个页310a可以包含块‘0’到‘169’的删除计数条目,而第二个页310b可以包含块‘170’到‘339’的删除计数条目。当块‘1’,即,物理块‘1’,的删除计数被读写时,第一页310a的字节3到5被访问,因为第一页310a的字节3到5包含对应于块‘1’的删除计数条目,如下引用图3b和3c所述。
删除计数块300,除了包含页310,还包含通常本质上定位于删除计数块300中的任何地方的头320。如所示,头320位于删除计数块300的页310c、310d之间,虽然应理解头320通常位于删除计数块300的开始。头320,引用图4对其说明,可以为删除计数块300中包含有关包含和存储在页310中的删除计数关联的块的非易失闪存的信息的一个页。
图3b为对应于本发明的一个实例的删除计数块内的页,例如,图3a的删除计数块300的页310a的图形表示。页310a用来保存对应于大约170个物理块的条目330。如所示,条目330包含块的删除计数使得页310a中的第一个条目330a包含块‘0’的删除计数,并且第二个条目330b包含块‘1’的删除计数。页310a中的最后一个条目330e包含块‘169’的删除计数。
每个条目330本质上包含相同数量的字节。如图3c中所示,对应于块‘0’的条目330a可以为页310a中的字节0到2,而对应于块‘2’的条目330c可以为页310a中的字节6到8。如上所述,每个条目330可以包含大约三个字节,虽然应理解每个条目330中的字节数和,因此,页310a中的条目330的数量,可以是不同的。作为例子,在一个实例中,每个条目330可以包含大约四个字节。
虽然页310a中的每个条目330包含一个删除计数,或特定的条目330先前被删除的次数的指示,条目330不一定包含一个删除计数。例如,当特定块不可用并且不可读写时,例如,由于制造或工厂故障,通常该块将没有一个删除计数。同样,删除计数块如图3a的删除计数块300通常没有包含不可用块的删除计数的条目。相反,代替保存删除计数,不可用块的条目330可以保存用来标识块为不可用的指示器或标记。更确切地,条目330可以保存标识块为由于工厂或制造故障不可用,或由于增长的故障不可用的指示器。
图3d为对应于本发明的一个实例的删除计数块内的页,例如,其中包含删除计数和指示特定块为不可用的条目的图3a的删除计数块300的页310a的图形表示。当块为可用的,或可以被读写时,该块通常会有一个删除计数。例如,页310a的条目330a,它包含对应于块‘0’的删除计数,可以在块‘0’被删除100次时包含值‘100’。类似地,页310a的条目330b可以在块‘1’被删除30次时包含值‘30’。
如果块‘2’被标识为由于工厂故障不可用的块,例如通过存储在块‘2’中的标记或签名,那么页310a中对应于块‘2’的条目330c可以包含指示块‘2’由于工厂故障不可用的标记。在上述实例中,在条目330c中为‘FFFFFF’的标记或签名可以指示块2由于工厂故障不可用。应理解实质上任何标记都可以被用来至少块由于工厂故障或制造故障不可用。
当块‘3’被标识为由于增长的故障或除工厂故障之外的故障不可用的块,那么页310中对应于块‘3’的条目330d可以包含指示块‘3’由于增长的故障不可用的标记。如所示,在条目330d中为‘FFFFFF’的标记或签名可以指示块‘3’由于增长的故障不可用。可以被用来标识一个块由于增长的故障不可用的签名的另一个例子是如‘8XXXXX’这样的签名,其中‘XXXXX’可以为删除计数的大约20比特。使用删除计数可以被包含在增长的故障的标记中的签名能够使标识为有故障的块的删除计数在块中维护。
如上所述,删除计数块如图3a的删除计数块300通常包括头320,头320在一个实例中为包含通常有关在非易失存储器系统内的块信息的删除计数块300内的页。下面根据本发明的一个实例引用图4说明删除计数块的头,例如,图3a的删除计数块300的头320。头320,本质上可以位于删除计数块中的任何地方,可以包含可以被用来存储信息的大约512字节。存储在头320中的信息通常包含用于安全检查的签名350a。除了有关在NMV中的保留块的数量350d的信息350d,头320中也可以包含有关在非易失存储器中隐块的数量的信息350c。信息350f可以包含非易失存储器中包含的块的总数,同时平均删除计数作为信息350g存储在头320中。
应理解头320通常可以包含其他的内容。作为例子,头320可以包含有关或者在使用或者可以被使用的可用块总数的信息,以及分区信息。替换地,头320可以维护关于有工厂故障的块的数量和有增长的故障的块的数量的信息。
删除计数块通常在第一次加载电源到包含删除计数块的非易失存储器系统时被初始化,或创建。换句话说,删除计数块通常在非易失存储器系统的非易失存储器第一次被格式化,并且任何不可用块被标识出时被初始化。引用图5,根据本发明的一个实例说明和在非易失存储器系统的非易失存储器第一次被格式化时初始化删除计数块的一种方法相关的步骤。处理500开始于步骤504,非易失存储器系统中的所有块或,更确切地,所有的物理块被检查。故障扫描处理可以,在一个实例中,包括低级格式化的故障扫描处理。检查块可以包括检查块的内容来确定哪些块是可用的。通常,当第一次格式化系统时,不可用块本质上只包括由非易失存储器的制造者标识为不可用的块,即,有工厂故障的块。这样的块可以通过存储在块中的信息被标识为有工厂故障。相应地,在步骤508,非易失存储器中不可用的块被标识出。标识不可用的块可以包括标识每个包含比特或标记的块,例如,在块的预定页中的特定签名如‘0’,该签名已知被用来标识块为有或者包含工厂故障。
一旦本质上所有的不可用块被标识出,在步骤512,不可用块在删除计数块中被标记或标识为不可用。标记特定块为不可用可以包括放置特定的标记或代码在删除计数块为该块保留标识该块为不可用的部分。签名如‘FFFFFF’可以被放置在删除计数块的适当部分来指示特定块由于工厂故障不可用。应理解在删除计数块中标记不可用块通常页包括更新删除计数块的头来包括非易失存储器中不可用块的总数的计数。
当不可用块在删除计数块中被标记出后,不可用块,或没有工厂故障而未被删除的块的删除计数在步骤516被初始化。初始化删除计数可以包括设置每个被删除的块的删除计数为0。未被删除的块的删除计数通常存储在和该块关联的冗余的或开销区域其中之一。在步骤520,对应于可用块,已删除和未删除的可用块的删除计数可以被设置在删除计数块中。通常存储在删除计数块中的删除计数可以被设置或者初始化为0,或在未删除的块的情况下,使用和存储在它对应的未删除块中的删除计数同样的值。换句话说,未删除的块的删除计数通常和存储在对应于该块的位置的删除计数块中的删除计数相同。一旦删除计数被设置为删除计数块中的条目,然后平均删除计数可以在步骤524被设置在删除计数块中。如上所述,平均删除计数可以被存储在删除计数块的头中。当可用块的删除计数都被初始化为0,那么平均删除计数被初始化为0。格式化包含在非易失存储器系统中的非易失存储器的处理在设置平均删除计数后完成。
在使用非易失存储器系统中的物理块的过程中,一些块可以被标识为有增长的故障。当先前可用的块被确定为不再可用时,该块通常有增长的故障。引用图6,根据本发明的一个实例说明和处理有增长的故障的块关联的步骤。和有效地对块分类关联的处理550开始于步骤554,在步骤554尝试使用一个块。在所述的实例中,尝试使用一个块可以包括从空闲块共享池中获取块并且尝试写数据到该块。替换地,尝试使用一个块也可以包含尝试从该块读取数据或尝试删除该块。
在步骤558确定该块是否可用。换句话说,确定该块是否被成功地写入、成功地读出,或成功地删除。如果确定该块并非不可用,那么指示该块为一个可用块并且可用保持在可用块的整体共享池中。相应地,处理流继续到步骤562,在其中该块被使用。使用该块包括使用该块来存储数据并加入该块到空闲块共享池。一旦该块被使用并且有效地分类为可用的,对块分类的处理完成。
替换地,如果在步骤558确定该块不可用,那么在步骤566,该块被有效地从可用块的整体共享池中移除。例如,如果该块是从空闲块共享池中获取的并且在步骤554尝试使用该块包括尝试写该块,从可用块的整体共享池中移除该块可以包括从空闲块共享池中移除该块。通常,从可用块的整体共享池中移除该块可用包括标记该块来指示该块不可用。
在从可用块的整体共享池中移除该块后,增长的故障签名,例如,‘7FFFFF’签名,在步骤570可以被写到系统的一个删除计数块中来指示该块有增长的故障。这样的签名通常被写到删除计数块中对应于该块的一个位置。一旦增长的故障签名被写到删除计数块,在步骤574产生使用另一个块。例如,当在步骤570被标记为有增长的故障的块被用来存储数据时,那么不同的块将被获取来存储未能存储在标记为有增长的故障的块中的数据。当尝试使用另一个块时,处理流返回步骤558,在其中确定该块是否可用。
通过本质上区分有工厂故障的不可用块和有增长的故障的不可用块,当例如通过在一个删除计数块中使用不同的签名,可以回收至少部分有增长的故障的不可用块。即,通过能够立即区分本质上一直是坏的块,即,有工厂故障的不可用块,和曾经为“好”却已变“坏”的块,即,有增长的故障的不可用块,在需要附加的块时可以回收至少部分有增长的故障的不可用块。回收不可用块通常包括对不可用块执行相对完全的测试来标识任何可以再次可用的块。
图7a和7b为处理流图,根据本发明的一个实例展示和一种实现在非易失存储器系统中回收不可用块的处理的方法关联的步骤。操作整体非易失系统允许回收不可用块的处理600开始于步骤602,在其中确定存储器系统是否在加电的处理中。如果确定该系统不在加电的处理中,处理流移到步骤604,在其中维护删除计数块。维护删除计数块可用包括写签名到标识由于增长的故障不可用的不可用块的删除计数块。通常,作为被使用的系统中的块来维护删除计数块。
在系统工作过程中的一些点上,在步骤608可能确定何时空闲块共享池,或通常可用于存储数据的块的共享池,用剩很少。即,在步骤608确定是否有足够数量的空闲块可用。如果确定空闲块共享池并非用剩很少,当例如通过和非易失存储器系统关联的控制器或处理器,处理流返回步骤604,在其中继续维护删除计数块。
替换地,如果在步骤608确定空闲块共享池用剩很少,那么指示需要尝试回收一些有增长的故障的不可用块。换句话说,确定是否有任何标识为有增长的故障的块事实上可用是有益处的。相应地,处理流从步骤608移至步骤612,在其中扫描删除计数块的增长的故障签名。一旦删除计数块的扫描开始,在步骤616确定是否发现标识增长的故障的签名。
如果在步骤616确定未发现标识增长的故障的签名,那么在步骤618确定是否在删除计数块中有更多的条目来扫描标识增长的故障的签名。当确定有更多的条目来扫描,那么在步骤612扫描删除计数块的标识增长的故障签名。换句话说,当确定在删除计数块中没有更多的条目来扫描,处理流返回步骤604,在其中继续维护删除计数块。
回到步骤616,如果确定发现增长的故障签名,那么发现增长的故障签名的块在步骤620中被检测。检测块包括对块进行从块中删除信息或比特的删除测试、写比特到块中的写测试,和从块中读取信息的读测试的任何一种或它们的任何组合。如熟悉技术的人应理解,删除测试通常用来确定块是否被正确地删除,写测试通常用来确定块是否可以被写,及读测试通常用来确定块是否可以被读取。然而,通常本质上可以使用任何相对完全的、有刚性模式的块测试。
一旦发现增长的故障签名的块被检测,在步骤624确定该块是否通过测试。在一个实例中,确定该块是否通过检测可以包括确定该块是否成功地进行删除处理、写处理,和读处理中的至少一次。如果确定该块通过了对其进行的测试,那么指示该块不再不可用并且因此可以被回收来使用。相应地,处理流移到步骤632,在其中设置块的删除计数,例如,到和整个系统关联的平均删除计数。在设置块的删除计数后,块在步骤636被加到空闲块共享池。加入块到空闲块共享池使块在需要的时候能够被获取使用。
从步骤636,处理流继续到步骤628,在其中确定删除计数块的扫描是否完成。换句话说,在步骤628确定在删除计数块中是否有附加的条目来扫描其标识块为有增长的故障的签名。如果确定有附加的条目来扫描并且因此删除计数块的扫描并未完成,那么处理流返回步骤612,在其中扫描删除计数块的标识块为有增长的故障的签名。替换地,如果在步骤628确定删除计数块的扫描完成,那么处理流返回步骤604,在其中继续维护删除计数块。
回到步骤624,如果确定在步骤620进行测试的块未能通过测试,那么意味着该块仍然不可用。同样,不回收该块。在一个实例中,该块可以被认为永远不可用。当块未通过步骤624的测试,该块被确定为仍然不可用,并且处理流继续到步骤626,在步骤626标记该块为有工厂故障。应理解标记块为有工厂故障通常包括写该块的工厂故障签名到删除计数块中。在标记该块为有工厂故障后,在步骤628确定删除计数块的扫描是否完成。
回到步骤602,当确定系统正在进行加电处理,那么在一个实例中,有增长的故障的不可用块可以被测试以确定这样的块是否实际上是可用的。相应地,从步骤602,处理流移到步骤612,在其中扫描删除计数块的增长的故障签名。
和关联不可用块关联的功能通常在软件,例如,作为程序代码设备,或包含非易失存储器或非易失存储器组件的主机系统的固件中提供。图8展示和提供给主机系统以使得能够使用删除计数块中的签名有效地追踪不可用块,并使有增长的故障的块潜在地能够被回收的软件或固件关联的适合的系统架构的一个实例。系统架构700通常包括多种模块,包括但不仅限于,应用接口模块704、系统管理器模块708、数据管理器模块712、数据完整性管理器716,和设备管理器和接口模块720。通常,系统架构700可以用可以由处理器如图2a的处理器108访问的软件代码设备或固件实现。
通常,应用接口模块704可以和主机、操作系统或用户直接通讯。应用接口模块704也和系统管理器模块708和数据管理器模块712通讯。当用户请求读、写或格式化闪存时,用户通常发送请求到操作系统,然后操作系统传送该请求到应用接口模块704。取决于请求,应用接口模块704传递该请求到系统管理器模块708或数据管理器模块712。
系统管理器模块708包括系统初始化子模块724、删除计数块管理子模块726和电源管理块子模块730。系统初始化子模块724通常使初始化请求被处理,并通常和删除计数块管理子模块726通讯。
删除计数块管理子模块726包括使删除计数块被存储的功能,和使用单独的删除计数使平均删除计数被计算和更新的功能。换句话说,删除计数块管理子模块726有效地允许对删除计数分类并且有效地允许维护平均删除计数。进一步来说,在一个实例中,删除计数块管理子模块726本质上也在整个系统初始化请求的过程中同步本质上删除计数块中所有的块的删除计数。虽然删除计数块管理子模块726可以使平均删除计数存储在删除计数块中,应理解可以用电源管理块子模块730使平均删除计数被存储。
除了和应用接口模块704通讯,系统管理器模块708也和数据管理器模块712以及设备管理器和接口模块720通讯。数据管理器模块712,它和系统管理器模块708和应用接口模块704两者通讯,可以包含提供有效地转换逻辑区段为物理区段的区段映射的功能。即,数据管理器模块712映射逻辑块到物理块。数据管理器模块712也可以包含功能和关联存在系统和文件系统接口层,并使得块内的组能够被管理,如中所述一起待批准的美国专利申请No.10/281,855,在此完整引用合并其内容。在一个实例中,数据管理器模块712用来使本质上能够出现非顺序的写处理。
设备管理器和接口模块720,它和系统管理器模块708、数据管理器712,及数据完整性管理器716通讯,通常提供一个闪存接口,并包括和硬件抽象,例如,I/O接口关联的功能。数据完整性管理器模块716在其他功能之间提供ECC处理。
虽然只说明了本发明的几个实例,应理解本发明能够以很多其他具体的形式实现而不偏离本发明的精神或范围。作为例子,虽然由增长的故障的不可用块和有工厂故障的不可用块是作为使用删除计数块中的不同签名追踪来说明的,可以使用本质上任何适合的数据结构来追踪不同类型的不可用块。换句话说,代替在删除计数块中使用一种类型的标记或签名追踪有增长的故障的块并使用另一种类型的标记或签名追踪有工厂故障的块,这样的块可以在不同的数据结构中被追踪,不同的数据结构包括但不仅限于,本质上唯一地包含有关不可用块的信息的数据结构。用这样的数据结构,有增长的故障的块可以被标识出并且有工厂故障的块可以被标识出以使得可能立即标识出有增长的故障的块用于回收的目的。
通常,本质上可以用任何标记或签名来标识出现在块中的故障的类型。即,虽然为‘7FFFFF’的签名是作为适合用来标识有增长的故障的块来说明的并且为‘FFFFFF’的签名是作为适合用来标识有工厂故障的块来说明的,签名可以完全不同。
删除计数块的头的内容可以完全不同而不偏离本发明的精神或范围。例如,不可用块的总数不一定被存储在头中,并且相反,不存储和不可用块的数量有关的信息,或单独地存储有增长的故障的不可用块的数量和有工厂故障的不可用块的数量。替换地,分区信息本质上可以从头中去除。
虽然不可用块的再循环或回收是用本质上只检测有增长的故障的不可用块来确定是否有任何有增长的故障的不可用块可以回收来说明的,本质上可以相反地检测所有的不可用块以确定是否有任何适合回收的不可用块。在本质上检测所有不可用块的实例中,存储在删除计数块中以标识不可用块的签名可以和有增长的故障的块和有工厂故障的块两者的签名相同。即,在能够回收不可用块的系统中,删除计数块中的签名不一定区分和不可用块关联的故障的类型并且可以相反本质上仅标识一个块不可用。
和本发明的各种方法关联的步骤可以完全不同。通常,可以增加、删除、重排及变更步骤而不偏离本发明的精神或范围。作为例子,本质上可以在任何时间回收块,而不是在空闲块共享池用剩很少时尝试回收有增长的故障的块。另外,可能有增长的故障的块的处理可以包括当确定有内容的块有增长的故障时,复制或至少尝试复制一个块的任何内容到另一个块。因此,上述例子应被看作说明性的而非限制性的,并且本发明并不仅限于上述给出的细节,而是可以在后附的权利要求的范围内可以被修改。

Claims (26)

1.一种在非易失存储器中标识空闲块的方法,其特征在于,该方法包括:
对非易失存储器中的至少一个已标识为有故障的物理块进行测试,该测试被用来确定有故障的物理块是否是可用的;
确定已标识为有故障的物理块何时通过测试;及
当确定已标识为有故障的物理块通过测试时,将其标识为可用的物理块。
2.如权利要求1所述的方法,其特征在于,所述对至少一个已标识为有故障的物理块进行测试包括对已标识为有故障的物理块进行写比特到已标识为有故障的物理块的写处理、从已标识为有故障的物理块读取比特的读处理,和从已标识为有故障的物理块删除比特的删除处理中的至少一种。
3.如权利要求1所述的方法,其特征在于,所述标识物理块为可用的物理块包括:
将已标识为有故障的物理块标识为第一个空闲块;及
增加第一个空闲块到和非易失存储器关联的空闲块的共享池,所述第一个空闲块能够从空闲块的共享池中获取,以用于存储比特。
4.如权利要求1所述的方法,其特征在于,进一步包括:
确定何时在非易失存储器中需要至少一个附加的空闲块;及
对所述已标识为有故障的物理块进行测试,以确定其作为至少一个附加的空闲块的能力。
5.如权利要求4所述的方法,其特征在于,所述标识出已标识为有故障的物理块包括:
扫描和非易失存储器关联的数据结构,所述数据结构包括指示已标识为有故障的物理块是有故障的比特。
6.如权利要求5所述的方法,其特征在于,所述数据结构进一步包括标识已标识为有故障的物理块何时有工厂故障的第一组比特及标识已标识为有故障的物理块何时有增长的故障的第二组比特之一。
7.如权利要求4所述的方法,其特征在于,所述数据结构为删除计数块。
8.如权利要求1所述的方法,其特征在于,所述已标识为有故障的物理块包括增长的故障。
9.如权利要求1所述的方法,其特征在于,所述非易失存储器为闪存。
10.如权利要求9所述的方法,其特征在于,所述闪存为NAND闪存。
11.如权利要求10所述的方法,其特征在于,所述NAND闪存为MLCNAND闪存。
12.一种在非易失存储器中管理不可用的物理存储元件的方法,其特征在于,所述方法包括:
确定第一个物理存储元件何时被标识为有故障;
当确定第一个物理存储元件有故障时,从可用的物理存储元件的共享池移除第一个物理存储元件;及
存储第一个签名到非易失存储器中的一个数据结构,所述第一个签名被用来标识第一个物理存储元件为有故障的;
确定在所述非易失存储器中是否需要一空闲存储元件;
测试所述被标识的第一个物理存储元件以确定所述被标识的第一个物理存储元件是否可被用作所述空闲存储元件;及
当确定所述第一个物理存储元件已经通过所述测试时,改变所述被标识的第一个物理存储元件的所述第一个签名以使所述被标识的第一个物理存储元件可以被用作所述空闲存储元件。
13.如权利要求12所述的方法,其特征在于,所述确定第一个物理存储元件何时有故障包括确定何时不能成功地读取第一个物理存储元件、确定何时不能成功地写入第一个物理存储元件,及确定何时不能成功地删除第一个物理存储元件中的至少一种。
14.如权利要求13所述的方法,其特征在于,所述当确定第一个物理存储元件有故障时,第一个物理存储元件包括增长的故障,并且第一个签名用来标识第一个物理存储元件为有增长的故障。
15.如权利要求12所述的方法,其特征在于,所述确定第一个物理存储元件何时有故障包括读取包含在第一个物理存储元件中的比特来确定这些比特是否指示第一个物理存储元件有故障。
16.如权利要求15所述的方法,其特征在于,所述当确定第一个物理存储元件有故障时,第一个物理存储元件包括工厂故障,并且第一个签名用来标识第一个物理存储元件为有工厂故障。
17.如权利要求12所述的方法,其特征在于,所述数据结构进一步包含和可用的存储元件关联的比特。
18.如权利要求12所述的方法,其特征在于,进一步包括:
扫描非易失存储器中的所有物理存储元件来标识第一个物理存储元件。
19.如权利要求12所述的方法,其特征在于,所述第一个物理存储元件为第一个物理块,并且可用的物理存储元件为可用的物理块。
20.如权利要求12所述的方法,其特征在于,所述非易失存储器为闪存。
21.如权利要求20所述的方法,其特征在于,所述闪存为NAND闪存。
22.如权利要求21所述的方法,其特征在于,所述NAND闪存为MLCNAND闪存。
23.一种在非易失存储器系统中管理块的方法,其特征在于,所述方法包括:
确定非易失存储器系统的非易失存储器中的第一个物理块何时有工厂故障;
当确定第一个物理块有工厂故障时,在和非易失存储器关联的标识第一个物理块为有工厂故障的数据结构中存储第一个签名;
当确定第一个物理块有工厂故障时,防止第一个物理块被用来存储信息;
确定非易失存储器中的第二个物理块何时有增长的故障;
当确定第二个物理块有增长的故障时,在标识第二个物理块为有增长的故障的数据结构中存储第二个签名;
当确定第二个物理块有增长的故障时,防止第二个物理块被用来存储信息;
确定在所述非易失存储器中是否需要一空闲块;
测试所述第二个物理块以确定所述第二个物理块是否可用;及当确定所述第二个物理块可用时,指定所述第二个物理块作为所述空闲块。
24.如权利要求23所述的方法,其特征在于,进一步包括:
扫描数据结构,通过定位第二个签名来标识第二个物理块。
25.如权利要求23所述的方法,其特征在于,所述非易失存储器为NAND闪存。
26.如权利要求25所述的方法,其特征在于,所述NAND闪存为MLCNAND闪存。
CN200310104634A 2002-10-28 2003-10-27 非易失存储器系统中不可用块的管理 Expired - Fee Related CN100589203C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US42196502P 2002-10-28 2002-10-28
US60/421,965 2002-10-28

Publications (2)

Publication Number Publication Date
CN1512511A CN1512511A (zh) 2004-07-14
CN100589203C true CN100589203C (zh) 2010-02-10

Family

ID=32108157

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200310104634A Expired - Fee Related CN100589203C (zh) 2002-10-28 2003-10-27 非易失存储器系统中不可用块的管理

Country Status (5)

Country Link
US (1) US7171536B2 (zh)
EP (1) EP1418502A3 (zh)
JP (2) JP4361774B2 (zh)
KR (1) KR100906519B1 (zh)
CN (1) CN100589203C (zh)

Families Citing this family (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI235915B (en) * 2003-03-13 2005-07-11 Ritek Corp Device and method for recording the status of block of a nonvolatile memory
KR100526186B1 (ko) * 2003-04-04 2005-11-03 삼성전자주식회사 플래시 메모리의 오류블록 관리방법 및 장치
JP4570891B2 (ja) * 2004-03-30 2010-10-27 ルネサスエレクトロニクス株式会社 記憶装置
CN1728284B (zh) * 2004-07-26 2012-08-22 深圳市朗科科技股份有限公司 一种扫描闪存盘的闪存芯片的方法
US7464306B1 (en) * 2004-08-27 2008-12-09 Lexar Media, Inc. Status of overall health of nonvolatile memory
EP1630657A1 (en) * 2004-08-30 2006-03-01 STMicroelectronics S.r.l. Embedded storage device with integrated data-management functions and storage system incorporating it
JP4192129B2 (ja) * 2004-09-13 2008-12-03 株式会社東芝 メモリ管理装置
US7282374B1 (en) * 2004-11-03 2007-10-16 Advanced Micro Devices, Inc. Method and apparatus for comparing device and non-device structures
US7246195B2 (en) * 2004-12-30 2007-07-17 Intel Corporation Data storage management for flash memory devices
JP4843222B2 (ja) * 2005-01-11 2011-12-21 株式会社東芝 半導体記憶装置の制御方法、メモリカード、及びホスト機器
KR100746289B1 (ko) 2005-07-11 2007-08-03 삼성전자주식회사 메모리 용량 정보를 갱신하는 비휘발성 메모리 카드 장치및 방법
US7631245B2 (en) 2005-09-26 2009-12-08 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US8291295B2 (en) * 2005-09-26 2012-10-16 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US7500081B2 (en) * 2005-09-30 2009-03-03 Intel Corporation Power-up implementation for block-alterable memory with zero-second erase time
FR2894709A1 (fr) * 2005-12-13 2007-06-15 Gemplus Sa "detecteur de destruction anormale de secteur memoire"
US7441068B2 (en) * 2006-01-06 2008-10-21 Phison Electronics Corp. Flash memory and method for utilizing the same
US7971071B2 (en) * 2006-05-24 2011-06-28 Walkoe Wilbur J Integrated delivery and protection device for digital objects
US7466600B2 (en) 2006-08-03 2008-12-16 Micron Technology, Inc. System and method for initiating a bad block disable process in a non-volatile memory
US20080046641A1 (en) * 2006-08-21 2008-02-21 Sandisk Il Ltd. NAND flash memory controller exporting a logical sector-based interface
US20080046630A1 (en) * 2006-08-21 2008-02-21 Sandisk Il Ltd. NAND flash memory controller exporting a logical sector-based interface
US7561482B2 (en) * 2006-09-07 2009-07-14 Sandisk Corporation Defective block isolation in a non-volatile memory system
KR100781976B1 (ko) * 2006-11-02 2007-12-06 삼성전자주식회사 플래시 메모리를 구비하는 반도체 메모리 장치에서의 블록상태 정보 제공방법
US8706968B2 (en) 2007-12-06 2014-04-22 Fusion-Io, Inc. Apparatus, system, and method for redundant write caching
US9104599B2 (en) 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
US8443134B2 (en) 2006-12-06 2013-05-14 Fusion-Io, Inc. Apparatus, system, and method for graceful cache device degradation
US20080140724A1 (en) 2006-12-06 2008-06-12 David Flynn Apparatus, system, and method for servicing object requests within a storage controller
US8719501B2 (en) * 2009-09-08 2014-05-06 Fusion-Io Apparatus, system, and method for caching data on a solid-state storage device
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
DE602008002849D1 (de) * 2007-04-20 2010-11-18 St Microelectronics Sa Kontrolle der Integrität eines prozessorexternen Speichers
CN101369463B (zh) * 2007-08-17 2012-12-12 深圳芯邦科技股份有限公司 闪存检测分类方法
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
CN101527162A (zh) * 2008-03-07 2009-09-09 深圳市朗科科技股份有限公司 卡槽式闪存硬盘
US8156392B2 (en) 2008-04-05 2012-04-10 Fusion-Io, Inc. Apparatus, system, and method for bad block remapping
US8327066B2 (en) * 2008-09-30 2012-12-04 Samsung Electronics Co., Ltd. Method of managing a solid state drive, associated systems and implementations
US7996736B2 (en) * 2008-10-26 2011-08-09 Sandisk 3D Llc Bad page marking strategy for fast readout in 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
US8112682B2 (en) * 2009-04-23 2012-02-07 Sandisk Il Ltd Method and device for bad-block testing
KR101624969B1 (ko) * 2009-05-26 2016-05-31 삼성전자주식회사 메모리 시스템 및 그것의 배드 블록 관리 방법
US20110041005A1 (en) 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Providing Read Status and Spare Block Management Information in a Flash Memory System
US20110040924A1 (en) 2009-08-11 2011-02-17 Selinger Robert D Controller and Method for Detecting a Transmission Error Over a NAND Interface Using Error Detection Code
US20110041039A1 (en) * 2009-08-11 2011-02-17 Eliyahou Harari Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device
US9122579B2 (en) 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
WO2011031903A2 (en) * 2009-09-09 2011-03-17 Fusion-Io, Inc. Apparatus, system, and method for allocating storage
KR20110060493A (ko) * 2009-11-30 2011-06-08 삼성전자주식회사 메모리 장치의 소거 카운트 관리 방법 및 장치
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
US8429371B2 (en) * 2010-03-23 2013-04-23 Avaya Inc. System and method for robust and efficient free chain management
WO2012083308A2 (en) 2010-12-17 2012-06-21 Fusion-Io, Inc. Apparatus, system, and method for persistent data management on a non-volatile storage media
US8819328B2 (en) 2010-12-30 2014-08-26 Sandisk Technologies Inc. Controller and method for performing background operations
WO2012106362A2 (en) 2011-01-31 2012-08-09 Fusion-Io, Inc. Apparatus, system, and method for managing eviction of data
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US9141527B2 (en) 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
US8560922B2 (en) 2011-03-04 2013-10-15 International Business Machines Corporation Bad block management for flash memory
US9563555B2 (en) 2011-03-18 2017-02-07 Sandisk Technologies Llc Systems and methods for storage allocation
WO2012129191A2 (en) 2011-03-18 2012-09-27 Fusion-Io, Inc. Logical interfaces for contextual storage
US8694719B2 (en) 2011-06-24 2014-04-08 Sandisk Technologies Inc. Controller, storage device, and method for power throttling memory operations
TWI473103B (zh) * 2011-09-14 2015-02-11 威剛科技股份有限公司 快閃記憶體儲存裝置及其不良儲存區域的判定方法
US8959416B1 (en) * 2011-12-16 2015-02-17 Western Digital Technologies, Inc. Memory defect management using signature identification
US8700961B2 (en) 2011-12-20 2014-04-15 Sandisk Technologies Inc. Controller and method for virtual LUN assignment for improved memory bank mapping
US9274937B2 (en) 2011-12-22 2016-03-01 Longitude Enterprise Flash S.A.R.L. Systems, methods, and interfaces for vector input/output operations
US9251052B2 (en) 2012-01-12 2016-02-02 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
US10102117B2 (en) 2012-01-12 2018-10-16 Sandisk Technologies Llc Systems and methods for cache and storage device coordination
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US10019353B2 (en) 2012-03-02 2018-07-10 Longitude Enterprise Flash S.A.R.L. Systems and methods for referencing data on a storage medium
US9128822B2 (en) * 2012-06-22 2015-09-08 Winbond Electronics Corporation On-chip bad block management for NAND flash memory
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US10346095B2 (en) 2012-08-31 2019-07-09 Sandisk Technologies, Llc Systems, methods, and interfaces for adaptive cache persistence
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
CN102880554B (zh) * 2012-10-09 2013-12-25 邹粤林 提高闪存芯片存储效率的方法、闪存存储系统及其控制器
TWI501249B (zh) * 2012-11-14 2015-09-21 Winbond Electronics Corp 晶片上之反及閘快閃記憶體及其損壞區塊管理方法
CN103871447B (zh) * 2012-12-14 2017-03-01 华邦电子股份有限公司 与非门快闪存储器阵列及芯片及其存取、读取及管理方法
US9324450B2 (en) 2013-03-13 2016-04-26 Winbond Electronics Corporation NAND flash memory
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US10102144B2 (en) 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
US10558561B2 (en) 2013-04-16 2020-02-11 Sandisk Technologies Llc Systems and methods for storage metadata management
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
US10019320B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for distributed atomic storage operations
US10073630B2 (en) 2013-11-08 2018-09-11 Sandisk Technologies Llc Systems and methods for log coordination
US9804922B2 (en) 2014-07-21 2017-10-31 Sandisk Technologies Llc Partial bad block detection and re-use using EPWR for block based architectures
US9442798B2 (en) 2014-07-31 2016-09-13 Winbond Electronics Corporation NAND flash memory having an enhanced buffer read capability and method of operation thereof
US9367392B2 (en) 2014-08-01 2016-06-14 Winbond Electronics Corporation NAND flash memory having internal ECC processing and method of operation thereof
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management
US10146604B2 (en) * 2016-08-23 2018-12-04 Oracle International Corporation Bad block detection and predictive analytics in NAND flash storage devices
TWI687933B (zh) * 2017-03-03 2020-03-11 慧榮科技股份有限公司 資料儲存裝置及其區塊釋放方法
US10387281B2 (en) 2017-08-30 2019-08-20 Micron Technology, Inc. Flash memory block retirement policy
KR20220103205A (ko) 2017-12-29 2022-07-21 마이크론 테크놀로지, 인크. 정정 불가능 ecc
CN109343800B (zh) * 2018-09-30 2021-11-12 深圳市得一微电子有限责任公司 存储设备管理方法、装置及可读存储介质
US11183267B2 (en) 2019-07-12 2021-11-23 Micron Technology, Inc. Recovery management of retired super management units
CN111179997B (zh) * 2019-12-26 2021-09-14 武汉精鸿电子技术有限公司 一种半导体存储器测试数据的存储方法及装置
KR102227196B1 (ko) * 2020-08-14 2021-03-15 에스케이하이닉스 주식회사 데이터 저장 시스템 및 그것의 동작 방법
CN114968066A (zh) * 2021-02-19 2022-08-30 瑞昱半导体股份有限公司 用于快闪存储器中进行故障区块管理的方法与装置

Family Cites Families (31)

* 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
DE69033438T2 (de) * 1989-04-13 2000-07-06 Sandisk Corp., Santa Clara Austausch von fehlerhaften Speicherzellen einer EEprommatritze
US5222109A (en) * 1990-12-28 1993-06-22 Ibm Corporation Endurance management for solid state files
US5303219A (en) * 1991-09-09 1994-04-12 International Business Machines Corporation Reclamation of dust contaminated sectors in optical disk apparatus
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
US5459850A (en) * 1993-02-19 1995-10-17 Conner Peripherals, Inc. Flash solid state drive that emulates a disk drive and stores variable length and fixed lenth data blocks
JP2856621B2 (ja) * 1993-02-24 1999-02-10 インターナショナル・ビジネス・マシーンズ・コーポレイション 一括消去型不揮発性メモリおよびそれを用いる半導体ディスク装置
US5388083A (en) * 1993-03-26 1995-02-07 Cirrus Logic, Inc. Flash memory mass storage architecture
US5377146A (en) * 1993-07-23 1994-12-27 Alliance Semiconductor Corporation Hierarchical redundancy scheme for high density monolithic memories
JP3263250B2 (ja) * 1994-08-24 2002-03-04 株式会社東芝 液晶表示装置
US5845313A (en) * 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
US5838614A (en) * 1995-07-31 1998-11-17 Lexar Microsystems, Inc. Identification and verification of a sector within a block of mass storage flash memory
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
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
US5956473A (en) * 1996-11-25 1999-09-21 Macronix International Co., Ltd. Method and system for managing a flash memory mass storage system
KR100297986B1 (ko) * 1998-03-13 2001-10-25 김영환 플래쉬 메모리 셀 어레이의 웨어 레벨링 시스템 및 웨어 레벨링 방법
US6260156B1 (en) * 1998-12-04 2001-07-10 Datalight, Inc. Method and system for managing bad areas in flash memory
US6412089B1 (en) * 1999-02-26 2002-06-25 Compaq Computer Corporation Background read scanning with defect reallocation
JP2000285001A (ja) * 1999-03-31 2000-10-13 Seiko Epson Corp 半導体フラッシュメモリ装置及びその制御方法
KR20010003416A (ko) * 1999-06-23 2001-01-15 김영환 플래쉬 메모리의 프리프로그램 방법
JP4165990B2 (ja) * 1999-12-20 2008-10-15 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリへのデータの書き込み方法
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
JP4601119B2 (ja) 2000-05-02 2010-12-22 株式会社アドバンテスト メモリ試験方法・メモリ試験装置
KR100644602B1 (ko) * 2000-10-11 2006-11-10 삼성전자주식회사 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조
US6563732B2 (en) * 2001-08-02 2003-05-13 Stmicroelectronics, Inc. Redundancy circuit and method for flash memory devices
US6759257B2 (en) * 2001-11-13 2004-07-06 Fujitsu Limited Structure and method for embedding capacitors in z-connected multi-chip modules

Also Published As

Publication number Publication date
US7171536B2 (en) 2007-01-30
KR20040038713A (ko) 2004-05-08
JP4361774B2 (ja) 2009-11-11
US20040080998A1 (en) 2004-04-29
EP1418502A3 (en) 2009-12-09
JP2004152299A (ja) 2004-05-27
JP2009282991A (ja) 2009-12-03
EP1418502A2 (en) 2004-05-12
CN1512511A (zh) 2004-07-14
KR100906519B1 (ko) 2009-07-07

Similar Documents

Publication Publication Date Title
CN100589203C (zh) 非易失存储器系统中不可用块的管理
JP4429685B2 (ja) 不揮発性メモリシステム内のエラー訂正コードのためのハイブリッド実装
CN100385415C (zh) 用于维护擦除计数的非易失性存储器系统、数据结构和区块
US7616485B2 (en) Semiconductor memory device having faulty cells
CN100487672C (zh) 用于分割一逻辑块的方法及设备
EP2389631B1 (en) Solid state memory formatting
CN100454273C (zh) 用于块内页面分组的方法及设备
US6381176B1 (en) Method of driving remapping in flash memory and flash memory architecture suitable therefor
US8006030B2 (en) Memory controller for identifying the last valid page/segment in a physical block of a flash memory
JP3226042B2 (ja) フラッシュEEpromシステム
CN100555465C (zh) 操作非易失性存储系统的存储系统电路及方法
EP1548602B1 (en) Non-volatile storage device control method
KR101566849B1 (ko) 메모리 장치 관리 방법, 그 관련 메모리 장치 및 그 관련 제어기
US9305662B2 (en) Data storage device and flash memory control method
JP7214758B2 (ja) ストレージデバイスおよびストレージシステム
US10884652B2 (en) Trim command recording method, memory control circuit unit and memory storage device
KR20050062638A (ko) 공통의 논리적 블록과 연관된 물리적 블록들을 결정하기위한 방법 및 장치
US20200073701A1 (en) Data storage device, operation method thereof and storage system having the same
CN112711378B (zh) 数据储存方法及读写设备
CN102855943A (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: 20120417

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

Effective date of registration: 20120417

Address after: American Texas

Patentee after: Sandisk Corp.

Address before: American California

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: American Texas

Patentee after: Sandisk Corp.

Address before: American Texas

Patentee before: Sandisk Corp.

C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: American Texas

Patentee after: DELPHI INT OPERATIONS LUX SRL

Address before: American Texas

Patentee before: Sandisk Corp.

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

Granted publication date: 20100210

Termination date: 20191027

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