CN101625903A - 对存储器进行监控 - Google Patents

对存储器进行监控 Download PDF

Info

Publication number
CN101625903A
CN101625903A CN200910149910A CN200910149910A CN101625903A CN 101625903 A CN101625903 A CN 101625903A CN 200910149910 A CN200910149910 A CN 200910149910A CN 200910149910 A CN200910149910 A CN 200910149910A CN 101625903 A CN101625903 A CN 101625903A
Authority
CN
China
Prior art keywords
data
flash memory
quality
logic
piece
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
CN200910149910A
Other languages
English (en)
Other versions
CN101625903B (zh
Inventor
杨雪石
吴子宁
帕恩塔斯·苏塔迪嘉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kaiwei International Co
Marvell Asia Pte Ltd
Original Assignee
Marvell International Ltd
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 Marvell International Ltd filed Critical Marvell International Ltd
Publication of CN101625903A publication Critical patent/CN101625903A/zh
Application granted granted Critical
Publication of CN101625903B publication Critical patent/CN101625903B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G11C16/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells

Abstract

描述了对存储器进行监控,尤其描述了与对存储器进行监控相关联的设备、系统、方法和其它实施例。在一个实施例中,一种方法确定与存储在快闪存储器中的数据组相关联的第一数据质量。至少部分地基于第一数据质量控制快闪存储器对该数据组进行校正,以产生经过校正的数据组。将经过校正的数据组重新编程到快闪存储器中。

Description

对存储器进行监控
相关申请的交叉引用
本申请要求于2008年6月20日提交的、序号为No.61/074,408的美国临时申请的优先权,并且该申请通过引用而被全部结合于此。
技术领域
本申请涉及对存储器进行监控的装置和方法。
背景技术
数字数据被存储在存储器中,并从其中被检索。快闪存储器(flashmemory)是一种能够将大量数据存储在单个芯片上的高密度存储器。快闪存储器由若干个存储单元实现,其中每个单元包括浮动晶体管栅极。每个存储单元被用于存储一个或多个比特的数据。
为了擦除存储单元上的数据,适当的偏压被施加于晶体管。在编程和擦除循环(program and erase cycle)的阈值数目之后,晶体管可能不再能够可靠地被编程或擦除,从而导致编程故障或数据丢失。传统上,损耗均衡算法(ware leveling algorithm)已经使擦除和编程循环均衡,从而延长了快闪存储器的使用期限。然而,当快闪存储器处于若干读操作的压力下时或者在从数据最后被写入开始的很长时间段之后,快闪存储器中的数据可能变得不可恢复。因此,仅仅依赖于编程和擦除循环的均衡可能不足以保证数据可靠性。希望一种更好的对存储器进行监控并对其情况进行评价的方式。
发明内容
一个实施例包括一种方法。该方法确定与存储在快闪存储器中的数据组相关联的第一数据质量。至少部分地基于第一数据质量,控制该快闪存储器对该数据组进行校正,以产生经过校正的数据组。将经过校正的数据组重新编程到该快闪存储器中。
另一实施例包括一种装置。该装置包括数据质量逻辑和快闪重编程逻辑。数据质量逻辑对快闪存储器的块的数据质量进行监控。在确定出快闪存储器的该块的数据质量已经达到第一阈值时,快闪重编程逻辑对快闪存储器的该块进行重新编程。
另一实施例包括一种装置。该装置追踪并存储针对存储器中的各个存储块校正的错误数目。如果针对所选存储块校正的错误数目达到阈值,则在所选存储块不能操作之前,对所选存储块加标签以进行校正动作。对于已经被加标签以进行校正动作的存储块,存储在被加标签的存储块中的数据被移动到新的存储位置。存储器被控制以禁止随后使用已被加标签的存储块。
附图说明
所结合的并且构成本说明书的一部分的附图示出了本发明的各个方面的各种示例系统、方法和其它示例实施例。将会理解,在图中所示出的元件边界(例如,框、框组或其它形状)表示边界的一种示例。本领域普通技术人员将会理解,在一些示例中,一个元件可以被设计成多个元件,或者多个元件可以被设计成一个元件。在一些示例中,所示出的作为另一元件的内部组件的元件可以被实现为外部组件,反之亦然。此外,元件可能不是按比例绘制的。
图1示出与对存储器进行监控相关联的装置的一个实施例。
图2示出与对存储器进行监控相关联的装置的另一实施例。
图3示出与对存储器进行监控相关联的方法的一个实施例。
图4示出与对存储器进行监控相关联的方法的另一实施例。
图5示出与对存储器进行监控相关联的方法的又一实施例。
图6示出与对存储器进行监控相关联的示例系统、方法以及其等同物可以在其中进行操作的计算环境的示例。
具体实施方式
这里描述的是与对存储器进行监控和/或对存储器进行控制相关联的示例系统、方法和其它实施例。在一个实施例中,一种装置被配置为对存储器进行监控并且提供早期数据故障检测和预防。在一个示例中,存储器为快闪存储器。预防措施被采用来防止任何特定数据块的数据质量达到第一质量阈值。将会理解,该装置可以被实现为可以通过多种方式达到或满足阈值。例如,达到阈值可以在数据质量小于阈值、小于或等于阈值、大于阈值或者大于或等于阈值时发生。实施方式可以依赖于所选择的用于阈值的值以及所执行的比较类型。当然,可以使用其它实施方式。
将会理解,“达到阈值”指示数据块的数据的质量已经恶化到了预先指定的不希望的警告值或水平(例如,等于、超过或低于)。例如,用于表示数据块中的一个或多个比特的电压电平可能已经偏离非理想值。一种预防措施包括当块的数据质量达到第一质量阈值时对存储器进行重新编程。通过这样的方式,重新编程校正了数据质量并且因此防止了任何特定数据块的数据质量恶化到可能的故障点。另外,当数据质量达到第一质量阈值时,擦除和/或编程循环的数目被追踪并被与第二阈值相比较。当检测到擦除和编程循环达到第二质量阈值时,数据块被标记为坏块。
在一个实施例中,当数据块被标记为坏时,该块被重新定位到新位置。在其它实施例中,在擦除和编程循环达到第二质量阈值之前或之后,该数据块可以被标记为坏并且被移动。数据重新定位是在存储位置不能操作之前执行的。通过在存储位置发生故障之前重新定位数据块,可以防止存储位置的故障和/或数据块的丢失。
在另一实施例中,该装置被配置为在确定出块的数据质量达到第一阈值时对存储块进行重新编程。另外,在确定出块已经经历了达到擦除循环和编程循环的第二阈值数量的擦除和编程循环的数目时,该装置将存储该块的快闪存储位置标记为坏。在确定出该块已经达到擦除循环和编程循环的第二阈值数量时,该装置将该数据块移动到不同位置。
下面包括对所选的这里采用的术语的定义。定义包括落入术语的范围并且可以用于实施的组件的各种示例和/或形式。示例并不旨在进行限制。单种或多种形式的术语可以在定义范围内。
对“一个实施例”、“实施例”、“一个示例”、“示例”等等的提及表明如此描述的(一个或多个)实施例或(一个或多个)示例可以包括特定特征、结构、特性、性质、元件或限制,但是并不是每个实施例或示例都必须包括特定特征、结构、特性、性质、元件或限制。此外,重复使用短语“在一个实施例中”并不一定涉及同一实施例,虽然可以涉及同一实施例。
这里所使用的“计算机可读介质”涉及用于存储信号、指令和/或数据的介质。计算机可读介质可采取以下形式,包括但不限于非易失性介质和易失性介质。非易失性介质可以包括例如光盘、磁盘等。易失性介质可以包括例如半导体存储器、动态存储器等。计算机可读介质的普通形式可以包括但不限于软盘、柔性盘、硬盘、磁带、其它磁介质、专用集成电路(ASIC)、可编程逻辑设备、压缩盘(CD)、其它光介质、随机存取存储器(RAM)、只读存储器(ROM)、存储芯片或卡、存储棒以及计算机、处理器或其它电子设备可读的其它介质。
这里所使用的“逻辑”包括但不限于用于执行(一个或多个)功能或(一个或多个)动作和/或促使来自另一逻辑、方法和/或系统的功能或动作的硬件、固件、存储在机器中或在机器中执行的软件和/或它们的组合。逻辑可以包括软件控制的微处理器、分立逻辑(例如ASIC)、模拟电路、数字电路、编程的逻辑设备、包含指令的存储器设备等等。逻辑可以包括至少一个电路、一个或多个门电路(gate)、门电路的组合或其它电路组件。在描述了多个逻辑性逻辑的情况中,可以将多个逻辑性逻辑结合到一个物理逻辑中。类似地,在描述了单个逻辑性逻辑的情况中,可以将该单个逻辑性逻辑分布在多个物理逻辑间。
这里所使用的“块”包括但不限于作为一个实体被编程或被擦除的单元组。例如,块可涉及NAND快闪存储器设备中的物理页。替代地,块可以包括一组快闪存储器页。如本领域普通技术人员所理解的,块还可以对应于其它存储器组件、结构和/或存储器架构单元。
图1示出与对存储器105进行监控和控制相关联的装置100的一个实施例。装置100被配置为通过监控存储器的各个块的数据质量来防止例如快闪存储器105中的数据丢失。当检测到块的数据质量已经达到阈值时,存储块被怀疑正在变坏。在一个实施例中,当数据质量落到阈值以下(例如,达到或者超过阈值)时,数据质量将达到阈值。在响应中,装置100重写该块中的数据。
在另一实施例中,装置100还追踪应用于各个块的擦除循环和/或编程循环的数目。当确定出对块的擦除循环和编程循环的数目达到第二阈值时,该块被抢先标记为坏。在一个示例中,当对块的擦除循环和编程循环的数目达到或者超过第二阈值时,第二阈值被达到。此情形发生在存储位置实际不能操作之前。在一个实施例中,块状态表被维护以指示各个块的状态。块状态表中的与存储器的一个块对应的状态比特可以被设置为指示该块是坏的。抢先在故障发生之前将数据从坏块移到新位置降低了数据丢失的风险,因为在存储位置中发生实际故障之后,数据可能不能恢复。
在一个实施例中,装置100包括数据质量逻辑110,数据质量逻辑110对来自快闪存储器105的块的数据质量进行监控。数据质量逻辑110对可以存储不止一个数据比特的一组快闪存储单元进行监控。例如,一组存储单元可以形成存储器设备中的页。在一个实施例中,数据质量是对快闪存储器的页上的比特错误数目的计数。数据质量可以包括其它量度。例如,数据质量可以是对电容器组如何表示一组多层单元(MLC)中的相应的两比特值的指示。数据质量逻辑110不限于对存储器的页进行监控。例如,数据质量逻辑110可以被配置为测量存储器的块、存储器的库(bank ofmemory)或者存储器的页以及其它尺寸和构成的存储器的数据质量。在这些实施例中,数据质量以其它方式被测量。例如,可以通过确定对于存储在存储器的块中的编码后的数据有多少奇偶违犯(parity violation)被检测到来测量数据质量。
装置100包括用于对块进行重新编程的快闪重编程逻辑120。当确定出块的数据质量达到第一阈值时,该块被重新编程。在一个实施例中,第一阈值对应于存储器的块中可接受的错误数目。第一阈值还可以表示MLC组中的不可接受的比特值的数目。第一阈值还可以被设定为表示与数据质量有关的其它值。
在一个实施例中,当数据质量达到第一阈值时,重编程逻辑120被配置为对数据块重新编程。数据块可以被本地重新编程到同一初始块或者被重新编程到另一块。如果重编程逻辑120对数据块进行本地重新编程,则初始块被利用经过校正的回读数据而擦除和重新编程。如果重编程逻辑120将数据块重新编程到替代块,则可用块被装置100指派用来存储经过校正的数据,并且初始数据块被标记为无效。重编程逻辑120然后将数据块重新编程到不同的替代块。通过对初始块进行擦除和重新编程,初始存储块随后仍可被使用。
装置100包括数据重定位逻辑,该数据重定位逻辑用于将存储块的快闪存储位置标记为坏。当确定块已经达到擦除循环和/或编程循环的第二阈值数量时,该快闪存储位置被标记为坏(例如,不应再被使用)。第二阈值被设定用于指示块可能正在接近故障点。因此,“坏”的情形意味着在存储位置处已经发生了一定数目的循环,这被用于预测故障可能发生,但是该存储位置还没有故障并且仍然可操作。将快闪存储位置标记为坏可以防止数据丢失,因为在快闪存储位置不能操作之前,快闪存储位置被标记为坏。装置100被配置为控制快闪存储器,从而使得没有其它数据可以被写或被编程到标记为坏的快闪存储位置。将块标记为坏抢先在块实际发生故障并且块中的数据被丢失之前将块从操作中移除。
在一个实施例中,在数据质量逻辑110确定已经达到第一阈值时,装置100确定是否已经达到第二阈值。装置100至少部分地基于是否已经达到第二阈值来确定当前块是否需要被标记为坏。如果也已经达到第二阈值,则装置100将该块标记为坏。在该块被标记为坏之后,装置100将不使用该块。装置100将按照如下所述来校正该数据块中的错误。在错误被校正之后,数据重定位逻辑将该数据块从坏位置移动到不同位置。当已经达到第二阈值时,数据将被编程到另一新块。例如,不同存储位置可以在同一快闪存储器中或者在该快闪存储器的外部。如果还没有达到第二阈值,则重编程逻辑120可以在擦除该块然后利用同一数据块对该块重新编程之后将该数据块重新编程到同一块。替代地,如果没有达到第二阈值,则重定位逻辑和重编程逻辑120仍可以将数据编程到另一块。
在一个实施例中,装置100被配置为对快闪存储器中的比特错误进行校正。数据质量逻辑110将第一阈值设置成小于装置100能够校正的比特错误数目的整数值。例如,如果装置100能够校正5个错误(这依赖于所使用的错误校正算法),则第一阈值被设定成4、3、2或1。当数据质量达到第一阈值时,装置100对错误进行校正。装置100实施适当的错误校正算法。例如,装置100可以实施基于BCH(Bose-Chaudhuri-Hocquenghem)码的错误校正算法和/或低密度奇偶校验(LDPC)算法。在不同的实施例中,数据质量逻辑100、快闪重编程逻辑120以及数据重定位逻辑被配置为执行错误校正动作。
在另一实施例中,装置100检测存储器中的错误。例如,快闪重编程逻辑120响应于装置100检测到错误而确定块的数据质量是否已经达到第一阈值。当数据质量被确定已经达到第一阈值时,该块被重新编程。在一个实施例中,错误被校正,而无需对该块进行重新编程。
在另一实施例中,数据质量逻辑110周期性地监控快闪存储器的块的数据质量。例如,数据质量逻辑110响应于软件程序、硬件传感器和/或用户来监控快闪存储器的块的数据质量。数据质量逻辑110还可以被配置为响应于其它指示符、存储器的情形、触发事件等来监控块的数据质量。
在一些实施例中,装置100可以包括或者实施其它有用特征。例如,第一阈值和第二阈值可以是可编程的。在另一实施例中,装置100被定位在芯片中。芯片是制造在半导体材料上的微型化电子电路组。芯片可以是快闪存储器芯片。
图2示出对存储器进行监控和控制的装置200的另一实施例。装置200类似于图1的装置100,但是另外包括校正逻辑210。校正逻辑210被配置为对快闪存储器的块中的比特错误进行校正。校正逻辑210对存储器的页、存储器的块或者存储器的其它单元中的错误进行校正。如上所述并且在一个实施例中,通过BCH码、LDPC和/或其它合适的校正方法来校正错误。
装置200还包括数据质量逻辑220、快闪重编程逻辑230和数据重定位逻辑240,其中,数据质量逻辑220类似于图1的数据质量逻辑110,快闪重编程逻辑230类似于图1的快闪重编程逻辑120,数据重定位逻辑240用于如上所述地对快闪存储器的块的数据质量进行监控。例如,数据质量逻辑220可以确定快闪存储器中的比特错误的数目。
在一个实施例中,当数据质量逻辑220确定块的数据质量已经达到第一阈值时,快闪重编程逻辑230对该块进行重新编程。在一个实施例中,第一阈值被预先指定为小于校正逻辑220能够校正的比特错误的数目的值。第一阈值可以是对块的数据质量的指示。例如,达到第一阈值表明数据质量正在变坏(例如,数据可能具有错误或者存储块可能不能适当地操作)。如上所述,第一阈值可以是错误的数目、MLC比特值被表示得如何的指示以及表示可接受的数据质量水平的其它值。该数据块可以被本地重新编程到相同的初始块或者被重新编程到另一块。如果重编程逻辑230对数据块进行本地重新编程,则初始块被利用经过校正的回读数据而擦除和重新编程。如果重编程逻辑230将数据块重新编程到替代块,则可用块被重定位逻辑240指派用来存储经过校正的数据,并且初始数据块被标记为无效。经过校正的数据被重编程逻辑230编程到可用块。通过对初始块进行擦除和重新编程,初始存储块随后仍可被使用。
在一个实施例中,在数据质量逻辑220确定已经达到第一阈值之后,装置200确定是否已经达到第二阈值。第二阈值是预先指定的指示块几乎达到故障点的警告值或水平。装置200至少部分地基于是否已经达到第二阈值来确定当前块是否应被标记为“坏”。如果也已经达到第二阈值,则该装置将该块标记为“坏”。将块标记为坏抢先在块发生故障并且块中的数据被丢失之前将块从操作中移除。在块被标记为坏之后,装置200将不使用该块。装置200按照如上所述对数据块中的错误进行校正。在错误被校正之后,数据重定位逻辑240将数据块从坏位置移动到不同位置。当达到第二阈值时,数据将被编程到另一新块。例如,不同存储位置可以在同一快闪存储器中,或者可以在该快闪存储器的外部。如果还没有达到第二阈值,则重编程逻辑230可以在擦除该块并利用同一数据块对该块进行重新编程之后将该数据块重新编程到同一块。替代地,如果未达到第二阈值,则重定位逻辑240和重编程逻辑230仍可将数据编程到另一块。
图3示出与对存储器进行监控和对早期故障检测进行处理相关联的示例方法300。方法300通过对存储器的数据质量进行监控并且在存储器的区域被确定为不可靠并在故障发生前将数据块移动到新位置来改善存储器的可靠性。
在310,方法300确定与存储在快闪存储器中的存储区域相关联的第一数据质量。存储区域可以是存储器的块、存储器的库、存储器的线、存储器的页或者存储器的其它区域。第一数据质量可以是错误数目的指示、MLC比特值被表示得如何的指示以及可以表明存储区域的数据在存储器中被存储得如何的其它值。在另一实施例中,确定块310包括检测与存储区域中的数据相关联的一个或多个错误,然后至少部分地基于来自所检测的错误的信息(例如,数据错误的数目、错误的类型等)来确定第一数据质量。
在一个实施例中,310处的确定动作被周期性地执行。在另一实施例中,310处的确定动作由软件程序、硬件传感器或用户来启动。
方法300在320处确定第一数据质量是否已经达到第一阈值。在一个实施例中,第一阈值被设定成校正算法能够校正的比特数目的值。如果数据质量的错误数目没有达到第一阈值,则方法300结束,因为数据质量良好。在一个实施例中,方法300可以周期性地再次开始并且在310处确定第一数据质量。在一个实施例中,当确定数据质量已经达到第一阈值时,存储区域的数据被重新编程。即使还没有检测到数据错误,重新编程也改善了数据质量。
在330,作出有关存储区域中的数据是否可由快闪存储器校正的确定。如果在330处的确定为是,则在340处控制快闪存储器对数据进行校正。如果数据质量达到第一阈值并且数据是不可校正的,则方法300结束,因为数据是不可校正的。在一些实施例中,当数据质量达到第一阈值时,生成了数据是不可校正的报告并且该报告被发送给将采取适当动作的设备。在一些实施例中,快闪存储器基于校正算法来对由存储区域表示的数据进行校正。校正算法可以包括BCH算法、低密度奇偶校验(LDPC)算法和/或其它校正算法。在数据被校正后,方法300在350处将数据重新编程到存储区域。如上所述,数据可以被重新编程到之前的存储区域,或者被重新编程到不同存储区域。
在一个实施例中,方法300确定擦除循环和编程循环的数目是否达到了循环阈值。如果擦除循环和编程循环达到循环阈值,则快闪存储器的存储区域被标记为坏,并且存储区域中的数据被移动到不同位置。在一个实施例中,当存储位置被标记为坏时,报告被发送给将采取适当动作的设备。将块标记为坏抢先在块发生故障以及块中的数据丢失之前将该块从操作中移除。在块被标记为坏之后,数据块则不被使用。擦除循环和编程循环的阈值数量可以指示块几乎达到了故障点。
在不同实施例中,存储区域的数据被存储在快闪存储器中的第二存储位置或者被存储到快闪存储器外部的第二存储位置。在一个实施例中,当确定存储区域中的数据达到擦除循环和编程循环的阈值数量时,同一存储区域中的数据被重新编程。在一个实施例中,禁止了将来访问快闪存储器的被标记部分。
在一个实施例中,芯片被配置为执行方法300。芯片包括制造在半导体材料上的至少一个电子电路。在一个实施例中,芯片是快闪存储器芯片。在一个示例中,快闪存储器芯片是多层单元(multiple level cell,MLC)快闪存储器。
图4示出与对存储器进行监控相关联的示例方法400。方法400包括在410处确定校正阈值。校正阈值与快闪存储器中的错误校正逻辑相关联。校正阈值是小于错误校正逻辑能够校正的错误数目的正数。本领域技术人员将会理解,可以采用其它确定是否超过阈值的方法。错误校正逻辑能够通过BCH、ECC算法、LDPC算法或者其它合适算法来对错误进行校正。
方法400在420处确定第一数据质量。第一数据质量与存储在快闪存储器中的数据块相关联。第一数据质量可以是第一数据块中的错误数目。在其它实施例中,数据块可以是数据线、页存储器或者存储器的其它单元。在一个实施例中,响应于错误校正逻辑正在检测存储器的块中的错误而发生确定第一数据质量。
方法400在430处确定第一数据质量是否达到校正阈值。在440,作出数据块是否包含错误的确定。当确定第一数据质量达到校正阈值并且数据块包含错误时,在450处控制快闪存储器对数据块进行校正。
方法400在460处确定数据块是否已经达到擦除循环和编程循环的阈值数量。擦除循环和编程循环的阈值数量可以指示该块几乎达到故障点。当确定数据块达到擦除循环和编程循环的阈值数量时,在470处数据块被移动到不同位置。当达到擦除循环和编程循环的阈值数量时,数据将被编程到另一新块。例如,不同存储位置可以在同一快闪存储器中,或者在该快闪存储器的外部。如果没有达到第二阈值,则可以在擦除该块并利用同一数据块对该块进行编程之后将数据块重新编程到同一块。替代地,如果没有达到第二阈值,则数据块可以被重新编程到不同块。
在480处,数据块被标记为坏,并且报告被发送给将采取适当动作的设备。将块标记为坏抢先在块发生故障以及块中的数据丢失之前将该块从操作中移除。在块被标记为坏之后,该数据块不被使用。
应当理解,在一个实施例中,这里的方法可以被实现为嵌入和存储在计算机可读介质上的计算机可执行指令。当这些指令被机器(例如,处理器、设备)执行时,使得机器执行这里的方法及其等同物。方法还可以利用电路来实现。
图5示出用于对存储器进行控制以提供早期故障检测和控制的方法500的另一实施例。该方法将参考把数据存储在存储块中的存储器(例如,快闪存储器)来描述。当存储器中发生错误并且错误被校正时,方法500追踪并存储针对存储器中的各个存储块校正的错误数目(块510)。如果针对所选存储块校正的错误数目达到阈值(块520),则所选存储块被加标签以进行校正动作(块530)。加标签是在所选存储块不能操作之前被确定和执行的。这样,该方法形成了存储块将可能在不久的将来会发生故障的预测,即使其当前仍可操作。对于已被加标签以进行校正动作的存储块,存储在被加标签的存储块中的数据被移动或者另外被重新定位到新存储位置(块540)。存储器然后被控制以禁止随后使用被加标签的存储块,从而使得数据不被写入这些存储块,而只存储块稍后发生故障。按照这种方式,抢先预防动作被采取以降低因存储器故障而引起的数据丢失。
在另一实施例中,追踪和存储块510还包括追踪和存储应用到各个存储块的擦除循环和编程需努汉的数目。这与先前的描述类似。然后在530处至少部分地基于为所选存储块校正的错误数目和擦除循环和编程循环的数目来执行加标签。这些数目可以如上所述与阈值相比较。
在另一实施例中,维护有用于指示各个存储块的状态的块状态表。对所选块加标签以进行校正动作(块530)还包括在块状态表中设定用于所选块的状态。在块540处,块状态表可以被读,以识别哪些块已经被加标签并且校正动作被应用。
图6示出实施这里所描述的示例系统和方法及其等同物的计算设备的示例实施例。示例计算设备是计算机600,计算机600包括可通过总线640可操作地连接的处理器610、存储器620以及输入/输出端口630。在一个示例中,计算机600包括用于监控和访问存储器的存储器监控逻辑650。
存储器监控逻辑650提供用于监控存储器的手段(例如,硬件、存储的软件、固件)。存储器监控逻辑650可以实现为类似装置100和200和/或它们的特征的组合。例如,所实现的类似装置100和200的存储器逻辑可监控存储器620或者连接到总线640的其它存储器。存储器监控逻辑650可包括实现为例如ASIC或其它类型的电路的逻辑。
一般地描述计算机600的示例构成,处理器610可以是包括单微处理器、双微处理器和其它多处理器架构的各种处理器。存储器620可以包括易失性存储器和/或非易失性存储器。非易失性存储器可以包括例如只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、相变存储器(PCM)等。易失性存储器可以包括例如随机存取存储器(RAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等。
盘660可以经由例如通过输入/输出接口(例如,卡、设备)670和输入/输出端口630可操作地连接到计算机600。盘660可以是例如磁盘驱动器、固态盘驱动器、软盘驱动器、磁带驱动器、Zip驱动器、快闪存储卡、存储棒等等。此外,盘660可以是压缩盘只读存储器(CD-ROM)驱动器、压缩盘可记录(CD-R)驱动器、压缩盘可重写(CD-RW)驱动器、数字视频盘只读存储器(DVD ROM)等。存储器620可以存储例如处理680和/或数据690。盘660和/或存储器620可以存储控制和分配计算机600的资源的操作系统。
总线640可以是单内部总线互连结构和/或其它总线或网状结构。虽然示出的是单总线,但是应当理解,计算机600可以使用其它总线(例如,周边部件互连扩展接口(peripheral component interconnect express,PCIE)、1394、通用串行总线(USB)、以太网)与各种设备、逻辑和周边设备通信。总线640可以是如下类型,例如包括存储器总线、存储器控制器、外围总线、外部总线、交叉开关和/或本地总线。
计算机600可以经由输入/输出(I/O)接口670与输入/输出设备交互,输入/输出(I/O)接口670包括存储器监控逻辑650和输入/输出端口630。输入/输出设备可以是例如键盘、麦克风、点选设备、照相机、视频卡、显示器、盘660、网络设备699等。输入/输出端口630可以包括例如串行端口、并行端口以及USB端口。
计算机600可以在网络环境中操作,并且因此可以经由I/O接口670和/或I/O端口630连接到网络设备699。通过网络设备699,计算机600可以与网络交互。通过网络,计算机600可以本地连接到远程计算机。计算机600可以与之交互的网络包括但不限于局域网(LAN)、无线局域网(WLAN)、广域网(WAN)和其它网络。
虽然通过描述示例描述了示例系统、方法等,并且虽然以相当多的细节描述了这些示例,但是本申请人的目的不在于将所附权利要求的范围限制或以任何方式限定为这些细节。当然,不可能为了描述这里所述的系统和方法而描述每个可能想到的组件和方法。因此,本发明不限于所示出和所描述的具体细节、代表性装置和说明性示例。因此,本申请旨在包括落入所附权利要求的范围内的替换、修改和变化。

Claims (20)

1.一种方法,包括:
确定与存储在快闪存储器中的数据组相关联的第一数据质量;
至少部分地基于所述第一数据质量控制所述快闪存储器对所述数据组进行校正,以产生经过校正的数据组;以及
将所述经过校正的数据组重新编程到所述快闪存储器中。
2.根据权利要求1所述的方法,其中,所述数据组被存储在所述快闪存储器的一个块中,并且其中所述经过校正的数据组被重新编程到所述快闪存储器的所述块中。
3.根据权利要求1所述的方法,还包括:
确定擦除循环和编程循环的数量;以及
至少部分地基于所确定的擦除循环和编程循环的数量,将所述快闪存储器的所述块标记为坏;以及
将所述数据组重新编程到所述快闪存储器中的不同位置。
4.根据权利要求3所述的方法,其中,在将所述快闪存储器的所述块标记为坏之后,所述数据组被重新编程到所述快闪存储器的不同块。
5.根据权利要求3所述的方法,还包括,禁止以后访问所述快闪存储器的被标记的块。
6.根据权利要求1所述的方法,还包括:
确定擦除循环和编程循环的数量;以及
至少部分地基于所确定的擦除循环和编程循环的数量来对所述数据组进行重新编程。
7.根据权利要求1所述的方法,其中,对所述数据组进行重新编程至少部分地基于达到阈值的擦除和编程循环的数量。
8.根据权利要求1所述的方法,其中,确定所述第一数据质量至少部分地基于对所述快闪存储器的块中的错误数目与小于错误校正算法能够校正的比特数目的值的比较。
9.根据权利要求1所述的方法,还包括:
将存储块标记为坏,并且禁止以后使用所述存储块。
10.根据权利要求1所述的方法,还包括:
当所述第一数据质量没有达到第一阈值时,确定所述数据组是可校正的。
11.根据权利要求1所述的方法,其中,确定与所述数据组相关联的所述第一数据质量被周期性地执行。
12.根据权利要求1所述的方法,其中,对所述数据组重新编程包括将所述数据组存储到快闪存储器的第二块中。
13.根据权利要求1所述的方法,其中,对所述数据组重新编程包括将所述数据组存储到所述快闪存储器的同一块中。
14.一种装置,包括:
数据质量逻辑,所述数据质量逻辑用于监控快闪存储器的块的数据质量;以及
快闪重编程逻辑,所述快闪重编程逻辑用于在确定出所述快闪存储器的块的数据质量达到第一阈值时对所述快闪存储器的所述块进行重新编程。
15.如权利要求14所述的装置,还包括:
数据重定位逻辑,所述数据重定位逻辑用于在确定出所述快闪存储器的所述块达到擦除循环和编程循环的第二阈值数量时将所述快闪存储器的所述块标记为坏。
16.如权利要求15所述的装置,其中,所述数据重定位逻辑将与所述快闪存储器的所述块相关联的数据移动到不同位置。
17.如权利要求14所述的装置,还包括:
校正逻辑,所述校正逻辑用于对所述快闪存储器的所述块中的比特错误进行校正,其中,所述数据质量逻辑将所述第一阈值设定成表示所述校正逻辑能够校正的比特错误数目的整数值,并且其中,在确定出所述数据质量达到所述第一阈值时,所述校正逻辑对错误进行校正。
18.一种方法,包括:
追踪并存储针对存储器中的各个存储块校正的错误数目;
如果针对所选存储块校正的错误数目达到阈值,则在所选存储块不能操作之前对所选存储块加标签以进行校正动作;以及
对于已被加标签以进行校正动作的存储块,将存储在被加标签的存储块中的数据移动到新存储位置,并且控制所述存储器以禁止随后使用被加标签的存储块。
19.如权利要求18所述的方法,其中,所述追踪和存储还包括:
追踪和存储应用于各个存储块的擦除循环和编程循环的数目;以及
其中,所述加标签是至少部分地基于针对所选存储块校正的错误数目和擦除循环和编程循环的数目而执行的。
20.如权利要求18所述的方法,还包括:
维护指示各个存储块的状态的块状态表;以及
其中,对所选块加标签以进行校正动作包括在所述块状态表中设定用于所选块的状态。
CN200910149910.5A 2008-06-20 2009-06-22 对存储器进行监控 Active CN101625903B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US7440808P 2008-06-20 2008-06-20
US61/074,408 2008-06-20
US12/476,683 US8407559B2 (en) 2008-06-20 2009-06-02 Monitoring memory
US12/476,683 2009-06-02

Publications (2)

Publication Number Publication Date
CN101625903A true CN101625903A (zh) 2010-01-13
CN101625903B CN101625903B (zh) 2014-06-11

Family

ID=41432496

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200910149910.5A Active CN101625903B (zh) 2008-06-20 2009-06-22 对存储器进行监控

Country Status (2)

Country Link
US (1) US8407559B2 (zh)
CN (1) CN101625903B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102831067A (zh) * 2011-06-14 2012-12-19 西部数据技术公司 用于执行包括环境条件的数据保持的系统和方法
CN103210376A (zh) * 2010-09-23 2013-07-17 美光科技公司 基于存储器质量监视器的补偿方法及设备
CN103257902A (zh) * 2013-04-10 2013-08-21 深圳市硅格半导体有限公司 Nvram控制方法及系统
CN104934066A (zh) * 2014-03-19 2015-09-23 Lsi公司 Nand闪存中的读取干扰处理
CN107203328A (zh) * 2016-03-17 2017-09-26 伊姆西公司 存储管理方法和存储设备

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE539403T1 (de) * 2008-06-24 2012-01-15 Sandisk Il Ltd Verfahren und vorrichtung zur fehlerkorrektur nach der löschanzahl eines festkörperspeichers
TWI389122B (zh) * 2008-10-30 2013-03-11 Silicon Motion Inc 用來存取一快閃記憶體之方法以及相關之記憶裝置及其控制器
US8370712B2 (en) * 2009-07-23 2013-02-05 International Business Machines Corporation Memory management in a non-volatile solid state memory device
US9104580B1 (en) * 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
KR101214285B1 (ko) * 2010-12-30 2012-12-20 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
US9305663B2 (en) * 2013-12-20 2016-04-05 Netapp, Inc. Techniques for assessing pass/fail status of non-volatile memory
US9811415B2 (en) 2014-03-31 2017-11-07 Symbol Technologies, Llc Apparatus and method for detecting and correcting read disturb errors on a flash memory
US9965181B2 (en) * 2015-04-08 2018-05-08 Kabushiki Kaisha Toshiba Hybrid-HDD with multiple caching modes
JP6358219B2 (ja) * 2015-10-02 2018-07-18 京セラドキュメントソリューションズ株式会社 記憶域管理プログラム及び電子機器
WO2017075747A1 (en) * 2015-11-02 2017-05-11 Shine Bright Technology Limited Methods, systems, and media for programming storage device
US9904594B2 (en) * 2016-04-15 2018-02-27 Micron Technology, Inc. Monitoring error correction operations performed in memory
US10761754B2 (en) 2018-08-07 2020-09-01 Micron Technology, Inc. Adjustment of a pre-read operation associated with a write operation

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080130364A1 (en) * 1997-08-07 2008-06-05 Guterman Daniel C Novel Multi-State Memory

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7941590B2 (en) * 2006-11-06 2011-05-10 Marvell World Trade Ltd. Adaptive read and write systems and methods for memory cells
US7573773B2 (en) * 2007-03-28 2009-08-11 Sandisk Corporation Flash memory with data refresh triggered by controlled scrub data reads
US8046524B2 (en) * 2007-08-08 2011-10-25 Sandisk Technologies Inc. Managing processing delays in an isochronous system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080130364A1 (en) * 1997-08-07 2008-06-05 Guterman Daniel C Novel Multi-State Memory

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103210376A (zh) * 2010-09-23 2013-07-17 美光科技公司 基于存储器质量监视器的补偿方法及设备
CN103210376B (zh) * 2010-09-23 2015-11-25 美光科技公司 基于存储器质量监视器的补偿方法及设备
CN102831067A (zh) * 2011-06-14 2012-12-19 西部数据技术公司 用于执行包括环境条件的数据保持的系统和方法
CN103257902A (zh) * 2013-04-10 2013-08-21 深圳市硅格半导体有限公司 Nvram控制方法及系统
CN103257902B (zh) * 2013-04-10 2017-02-08 深圳市硅格半导体有限公司 Nvram控制方法及系统
CN104934066A (zh) * 2014-03-19 2015-09-23 Lsi公司 Nand闪存中的读取干扰处理
CN104934066B (zh) * 2014-03-19 2018-03-27 安华高科技通用Ip(新加坡)公司 Nand闪存中的读取干扰处理
CN107203328A (zh) * 2016-03-17 2017-09-26 伊姆西公司 存储管理方法和存储设备

Also Published As

Publication number Publication date
US20090319825A1 (en) 2009-12-24
CN101625903B (zh) 2014-06-11
US8407559B2 (en) 2013-03-26

Similar Documents

Publication Publication Date Title
CN101625903B (zh) 对存储器进行监控
US8661318B2 (en) Memory management in a non-volatile solid state memory device
TWI569273B (zh) 非揮發性記憶體裝置讀取干擾管理方法
KR101002531B1 (ko) 반도체 기억 장치 관리 시스템, 반도체 기억 장치, 호스트 장치, 반도체 기억 장치의 관리 방법
US9251019B2 (en) Apparatus, system and method for managing solid-state retirement
US9799405B1 (en) Nonvolatile memory system with read circuit for performing reads using threshold voltage shift read instruction
KR101522744B1 (ko) 새로운 불량 블록 검출
KR101079502B1 (ko) 메모리 시스템
US8452913B2 (en) Semiconductor memory device and method of processing data for erase operation of semiconductor memory device
US8713381B2 (en) Systems and methods of using dynamic data for wear leveling in solid-state devices
TWI505277B (zh) 在一儲存元件內追蹤錯誤資料的系統與方法
US10453548B2 (en) Run-time flash die failure detection enhancement
US9330783B1 (en) Identifying word-line-to-substrate and word-line-to-word-line short-circuit events in a memory block
US8402204B2 (en) Methods for measuring usable lifespan and replacing an in-system programming code of a memory device, and data storage system using the same
KR20100102925A (ko) 리드 리클레임 신호를 발생하는 불휘발성 메모리 장치 및 이를 포함하는 메모리 시스템
US11688483B2 (en) Managing block retirement for temporary operational conditions
WO2014163952A1 (en) Tracking erase pulses for non-volatile memory
CN101751348A (zh) 存储器控制器和操作电可变非易失性存储装置的方法
CN108564981B (zh) 一种存储装置数据安全动态监控方法
US11231990B2 (en) Device and method for generating error correction information
JP2010204851A (ja) 記憶装置及び情報処理装置
US10475522B2 (en) Memory system including a delegate page and method of identifying a status of a memory system
JP6636930B2 (ja) フラッシュメモリ内蔵マイコン、マイコンに内蔵されたフラッシュメモリへのデータ書込み方法、および、フラッシュメモリへのデータを書込むプログラム
CN107577554B (zh) 检测使用中逻辑页面的数据储存装置与数据储存方法
US20100332898A1 (en) Nonvolatile memory device and copyback program method thereof

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
TR01 Transfer of patent right

Effective date of registration: 20200507

Address after: Singapore City

Patentee after: Marvell Asia Pte. Ltd.

Address before: Ford street, Grand Cayman, Cayman Islands

Patentee before: Kaiwei international Co.

Effective date of registration: 20200507

Address after: Ford street, Grand Cayman, Cayman Islands

Patentee after: Kaiwei international Co.

Address before: Hamilton, Bermuda Islands

Patentee before: Marvell International Ltd.

TR01 Transfer of patent right