CN101529522B - 从闪速存储器中的错误恢复的方法 - Google Patents

从闪速存储器中的错误恢复的方法 Download PDF

Info

Publication number
CN101529522B
CN101529522B CN200680047669XA CN200680047669A CN101529522B CN 101529522 B CN101529522 B CN 101529522B CN 200680047669X A CN200680047669X A CN 200680047669XA CN 200680047669 A CN200680047669 A CN 200680047669A CN 101529522 B CN101529522 B CN 101529522B
Authority
CN
China
Prior art keywords
read
flash memory
data bit
reference voltage
error
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.)
Active
Application number
CN200680047669XA
Other languages
English (en)
Other versions
CN101529522A (zh
Inventor
M·拉塞尔
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.)
Western data Israel Limited
Original Assignee
Milsys 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 Milsys Ltd filed Critical Milsys Ltd
Publication of CN101529522A publication Critical patent/CN101529522A/zh
Application granted granted Critical
Publication of CN101529522B publication Critical patent/CN101529522B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1072Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in multilevel memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output 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
    • 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/26Sensing or reading circuits; Data output circuits
    • G11C16/28Sensing or reading circuits; Data output circuits using differential sensing or reference cells, e.g. dummy cells

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

公开了用于从一个或多个闪速存储单元中读取数据并且用于从读取错误中恢复的方法、设备和计算机可读代码。在一些实施方案中,如果错误检测和校正模块的错误校正失败,使用一个或多个修改参考电压至少一次重新读取闪速存储单元,例如,直到可以执行成功的错误校正。在一些实施方案中,在成功的错误校正之后,处理随后的读取请求而不在其间将数据(例如读取数据的可靠值)重写到闪速存储单元。在一些实施方案中,与错误被校正的读取相关联的参考电压可以存储在存储器中,并且在响应随后的读取请求时取回。

Description

从闪速存储器中的错误恢复的方法
技术领域
本发明涉及在读取错误可能发生的系统中从闪速存储器中读取数据。
背景技术
单位和多位闪速存储单元
闪速存储设备已经存在许多年。典型地,闪速存储设备内的每个存储单元存储一位的信息。在闪速存储单元中存储一位的传统方法是通过支持存储单元的两种状态。一种状态表示逻辑“0”而另一种状态表示逻辑“1”。
在闪速存储单元中,两种状态通过使浮动栅极位于单元通道(连接单元晶体管的源极和漏极元件的区域)上,以及使电荷量的两种有效状态存储在该浮动栅极内而实现。典型地,一种状态是在浮动栅极中具有零电荷并且是擦除之后单元的初始未写入状态(通常定义为表示“1”状态),而另一种状态是在浮动栅极中具有一定量的负电荷(通常定义为表示“0”状态)。在栅极中具有负电荷使得单元晶体管的阈值电压(也就是必须施加到晶体管的控制栅极以便使得晶体管传导的电压)增加。现在,通过检查单元的阈值电压读取存储位是可能的-如果阈值电压处于较高状态则位值为“0”,并且如果阈值电压处于较低状态则位值为“1”。实际上,不需要准确地读取单元的阈值电压-需要的是正确地识别单元当前处于两种状态的哪种。为了这个目的,相对于处于两种状态之间中间的参考电压值进行比较,从而确定单元的阈值电压低于还是高于该参考值是足够的。
图1A图示显示这如何工作。具体地,图1A显示大量单元的阈值电压的分布。因为闪存设备中的单元在它们的特性和行为方面并不完全相同(例如因为杂质浓度的小偏差或硅结构中的缺陷),将相同的编程操作应用于所有单元不会使得所有单元具有完全相同的阈值电压。(注意,由于历史原因,将数据写入闪速存储器通常称作“编程”闪速存储器)。代替地,阈值电压类似于图1A中显示的方式分布。存储“1”值的单元典型地具有负的阈值电压,使得大多数单元具有与由图1A的左峰值显示的值接近的阈值电压,一些较少数目的单元具有较低或较高的阈值电压。类似地,存储“0”值的单元典型地具有正的阈值电压,使得大多数单元具有与由图1A的右峰值显示的值接近的阈值电压,一些较少数目的单元具有较低或较高的阈值电压。
近年来,一种使用常规称作“多级单元”或缩写MLC技术的新的闪存设备已经在市场上出现。(该名称令人误解,因为先前类型的闪存单元也具有多于一级;它们具有两级,如上所述。因此,两种闪存单元在这里称作“单位单元”(SBC)和“多位单元”(MBC)。)由MBC闪存带来的改进在于每个单元中存储两位。(原则上,MBC也包括每个单元多于两位的存储,但是这种单元当前还没有存在于市场上。为了简化说明,这里着重于两位的情况。但是应当理解,本发明可同等地适用于支持每个单元任意位数的闪速存储设备)。为了使得单个单元存储两位信息,单元必须能够处于四种不同状态的一种。因为单元的“状态”由它的阈值电压表示,显然MBC单元应当支持阈值电压的四种不同有效范围。图1B显示典型MBC单元的阈值电压分布。如期望的,图1B具有四个峰值,每个对应一种状态。如对于SBC情况一样,每种状态实际上是一个范围而不是单个数值。当读取单元的内容时,必须保证的是正确地识别单元的阈值电压所处的范围。对于MBC闪存设备的现有技术实例,参看Harari的美国专利5,434,825号,在此以引用方式将该专利完全并入本文中。
当经由四种状态编码MBC单元中的两位时,通常使得图1B中的最左侧状态(典型地具有负的阈值电压)表示两位都具有“1”值的情况。(在下面的讨论中,使用下面的表示-单元的两位称作“低位”和“高位”。位的确切值写作[“高位”“低位”]的形式,低位值在右侧。所以低位为“0”且高位为“1”的情况写作“10”。必须理解,该术语和表示法的选择是任意的,并且其他名称和编码是可能的)。使用这种表示法,最左侧状态表示“11”的情况。其他三种状态典型地从左到右由下面的次序指定:“10”,“00”,“01”。在Chen的美国专利6,522,580号中可以看到使用这种编码的MBC NAND闪存设备的实现实例,在此以引用方式将该专利完全并入本文中。特别地参考Chen专利的图8。应当注意,虽然关于状态的该指定没有限制,并且可以使用任何其他的排序。当读取MBC单元的内容时,必须正确地识别单元的阈值电压所处的范围;仅在该情况下,这不能总是通过与仅一个参考电压比较而实现,并且几次比较可能是必需的。例如,在图1B中说明的情况下,读取低位的一种方法是首先将单元的阈值电压与参考比较电压V1比较,然后取决于比较的结果,将单元的阈值电压与零参考比较电压或参考比较电压V2比较。读取低位的另一种方法是将单元的阈值电压与零参考电压和V2无条件比较。在任一情况下,需要两次比较。
MBC器件提供极大的成本优势-使用类似尺寸的单元一个存储两位而不是一位。但是,使用MBC闪存也存在一些缺点-MBC存储器的平均读写时间比SBC存储器长,导致较低的性能。而且,MBC的可靠性低于SBC。这可以容易地理解-MBC中阈值电压范围之间的差比SBC中小得多。因此,在SBC中因为两种状态之间的大间隙而可能未引起注意的阈值电压中的干扰(例如引起阈值电压漂移的存储电荷的泄漏,来自相邻单元上操作的干扰等),可能使得MBC单元从一种状态移至另一种状态,导致错误位。最后结果是MBC单元对于许多写入/擦除周期在数据保持时间或设备持久性方面的较低质量规范。因此,取决于应用的需求,使用MBC单元和SBC单元都可能是有利的。
虽然上面的说明涉及浮动栅极闪速存储单元,存在其他类型的闪速存储技术。例如,在NROM闪速存储技术中,不存在导电的浮动栅极而是存在捕获电荷的绝缘层。本发明即使描述在浮动栅极技术的上下文中给出也可同等地适用于所有闪速存储器类型。
当从闪存单元中读取数据时的错误校正
如上所述,闪存单元,特别是MBC闪存单元可能被错误地读取,如果它们的阈值电压漂移远离它们的初始值。如果阈值电压漂移的量足够大,读取过程可能发现单元处于用作单元两种状态之间的边界线的读取参考电压的错误一侧。即使通常使用纠错码(ECC)校正从闪速存储器中读取的数据中的错误,校正能力典型地局限于读取的数据页内的错误的某个固定数目,并且最终错误的累积数目可能超出ECC机制的校正能力。
Auclair等人的标题为“EEPROM器件中的软错误处理”的美国专利5,657,332(在下文称“Auclair”)解决由阈值电压漂移引起的闪速存储器错误的该问题。在此以引用方式将该专利完全并入本文中。Auclair提供错误问题的两种解决方法。第一种通过检测接近越过边界线的单元,并且通过将它们的内容重写回存储器“固定”它们,从而将阈值电压“复位”到它们的正确初始值来消除错误的产生。Auclair的第二种解决方法接受漂移错误的存在作为给定事实,并且在错误已经存在之后尝试提高存储系统的坚固性。该第二解决方法在Auclair中13栏14-27行中讨论。
用于从闪速存储器中读取数据的Auclair的方法首先尝试使用读取参考电压(或在MBC闪速存储器的情况下多个读取参考电压)的默认值进行常规读取。假设该首次读取尝试导致如此多的错误以至于ECC机制不能校正它们,Auclair使用两个阶段的恢复计划:
A.读取参考电压从它们的默认值变成另一组预先确定的值,并且使用该组新的预先确定参考值尝试读取。典型地,新值将稍微低于默认值。预期单元的阈值电压随着时间漂移到较低值是合理的(也就是,在图1A和1B中向左移动),因为漂移是电荷泄漏出浮动栅极的结果。因此,向左移动比较“边界”具有将漂移后的状态彼此分离的良好机会。如果在使用校正后的参考值的读取结果中仍然存在错误,它们由ECC机制处理。如果仍然存在太多错误以至于不能校正,过程重复-选择另一组预先确定的读取参考值并且进行另一次读取和校正。有希望地,该重复过程以成功校正并可以假设不具有错误的数据结束。一旦我们到达该点,我们移至第二阶段。
B.从第一阶段获得的数据写回到单元,使得下一次使用默认读取参考值读取它时,它将不提供像当前读取情况一样如此多的错误。
图2提供描述根据Auclair中公开的现有技术由具有控制器和闪速存储器(也就是包括闪速存储单元)的闪存设备处理读取请求的流程图。在接收到110读取请求之后,闪存控制器使用默认参考电压从闪速存储器212中读取112A数据位。尝试114使用ECC实现读取数据位的校正。如果错误校正成功116,设备可以通过发送校正后的读取数据(例如通过发送数据到主机设备)响应118读取请求。在响应118读取请求之后,设备准备处理另一个读取请求。
如果错误校正不成功116,设备使用包括至少一个预先确定的修改119参考电压的一组参考电压从闪速存储器中重新读取112B数据位。在使用一个或多个“新的”预先确定参考电压(也就是使用至少预先确定的修改119参考电压)重新读取112B数据位之后,尝试114另一次错误校正。如果另一次错误校正116失败,重复使用不同的预先修改119参考电压并且重新读取112B数据位的该过程,直到ECC可以成功地执行116数据位的错误校正。
在该点,存储单元“复原”以便减小当随后读取该单元(使用它们的“正常”默认参考电压)时错误校正失败的可能性。这通过利用在成功的错误校正之后,正常数据现在可用并且可以重写到124存储单元中的事实实现。因此,根据Auclair的讲授,假设在数据重写之后,下一次使用默认的读取参考值读取112A该数据时(也就是在另一个数据请求110之后),闪速存储单元将更可能提供具有较少错误的数据(也就是因为已经校正了参考电压“漂移”),提供可以使用ECC校正的读取数据。
注意Auclair的前述恢复方法遭受一个大的缺点。每当使用恢复过程时,数据再次写入。在闪速存储器中,写入操作比读取操作慢得多。例如在SBC NAND闪速存储器中,一个数据页的写入花费大约200微秒,而一个数据页的读取花费大约15微秒。在MBC NAND闪速存储器中情况更糟,其中一页的写入可能花费800微秒而一页的读取可能花费30微秒。该事实意味着使用Auclair的恢复数据页的方法可能是非常慢的操作。典型地,发起读取请求并等待数据的软件应用程序期望数据在几十微秒内可获得,而它可能实际上不得不等待更长的数量级。对于实时软件应用程序,这可能是不可接受的。即使Auclair的写入阶段延迟到随后的时间,使得一旦数据可用软件应用程序就接收到它,而不等待恢复过程完成,仍然存在因额外的写入操作而引起的存储系统吞吐量的降低。
因此需要在错误存在的情况下从闪速存储器中恢复数据,同时在相对短的时间内实现恢复的方法。
发明内容
前述需求的一些或全部,以及其他需求由本发明的几个方面满足。
现在首次公开一种在包括多个闪速存储单元以及错误检测和校正模块的系统中读取数据的方法。当前公开的方法包括步骤(a)从多个闪速存储单元中读取数据位;(b)尝试使用错误检测和校正模块校正读取数据位的错误;(c)如果错误检测和校正模块的错误校正失败,使用至少一个修改参考电压从多个闪速存储单元中至少一次重新读取数据位,直到模块成功地校正错误;以及(d)对于数据位重复步骤(a)、(b)和(c)而不在其间(也就是,在使用至少修改参考电压的步骤(c)的成功错误校正之后,以及在步骤(a)的读取之前)将数据位重写到存储单元。
根据一些实施方案,重复之前的初始读取是响应第一读取请求,并且与重复相关联的随后读取是响应随后的读取请求。
现在首次公开一种在包括多个闪速存储单元以及错误检测和校正模块的系统中读取数据的方法。当前公开的方法包括步骤(a)从多个闪速存储单元中读取数据位;(b)尝试使用错误检测和校正模块校正读取数据位的错误;(c)如果错误检测和校正模块的错误校正失败,使用至少一个修改参考电压从多个闪速存储单元中至少一次重新读取数据位,直到模块成功地校正错误;(d)在校正之后,存储模块成功校正错误的至少一个读取参考电压;(e)在存储之后,取回存储的至少一个读取参考电压;以及g)在取回之后,使用取回的至少一个读取参考电压从多个闪速存储单元中读取数据位。
该至少一个读取参考电压可以存储在易失性和/或非易失性存储器的任何组合中。
根据一些实施方案,至少一个读取参考电压存储在闪速存储单元的一个或多个中。
根据一些实施方案,读取数据位使用闪存控制器读取,并且至少一个读取参考电压存储在闪存控制器中(也就是在闪存控制器的易失性和/或非易失性存储器的任何组合中)。
根据一些实施方案,存储之前的初始读取是响应第一读取请求,并且使用取回的至少一个读取参考电压的随后读取是响应随后的读取请求。
现在首次公开一种在包括多个闪速存储单元以及错误检测和校正模块的系统中读取数据的方法。当前公开的方法包括步骤(a)从多个闪速存储单元中读取数据位;b)尝试使用错误检测和校正模块校正读取数据位的错误;c)如果错误检测和校正模块的错误校正失败并且在读取之后,导出至少一个新的读取参考电压;以及d)使用导出的至少一个新的读取参考电压从多个闪速存储单元中读取数据位。
根据一些实施方案,该导出的至少一个新的电压至少部分地根据由错误检测和校正模块提供的信息确定。
根据一些实施方案,该导出的至少一个新的电压至少部分地随机确定。
现在首次公开一种在包括多个闪速存储单元以及错误检测和校正模块的系统中读取数据的方法。当前公开的方法包括步骤(a)从多个闪速存储单元中读取数据位;b)使用错误检测和校正模块校正读取数据位的错误;以及c)在校正之后,使用至少一个修改参考电压从多个闪速存储单元中读取数据位。
根据一些实施方案,即使在其间(也就是,在步骤(a)的数据位的读取之后以及在使用至少一个修改参考电压重新读取之前)不存在错误校正检测和校正模块的错误校正失败,执行使用至少一个修改参考电压的数据位的随后读取。
根据一些实施方案,在校正之后和在使用至少一个修改参考电压读取之前,不写入多个存储单元。
根据一些实施方案,至少一个修改参考电压至少部分地根据由错误检测和校正模块提供的信息(例如指示许多错误的信息)而导出。
根据一些实施方案,校正之前的初始读取是响应第一读取请求,并且校正之后的随后读取是响应随后的读取请求。
现在首次公开一种数据存储器的闪速存储设备,包括a)用于存储数据位的多个闪速存储单元;b)用于检测和校正数据位中错误的错误检测和校正模块;以及c)用于从存储单元中读取数据位的控制器,其中:(i)控制器操作以通过从多个闪速存储单元中读取数据位来响应第一读取请求,并且如果错误检测和校正模块不能校正数据位,使用至少一个修改参考电压重新读取数据位直到模块成功地校正错误;以及ii)控制器进一步操作以对于随后的读取请求重复该响应,而不在其间(也就是,在与第一读取请求的数据位的重新读取相关联的成功错误校正之后,以及在与第一个随后的读取请求相关联的数据位的首次读取之前)将数据位重写到存储单元。
现在首次公开一种数据存储器的闪速存储设备,包括a)用于存储数据位的多个闪速存储单元;b)用于检测和校正数据位中错误的错误检测和校正模块;以及c)用于从存储单元中读取数据位的控制器,其中:(I)控制器操作以响应第一读取请求,通过:i)从多个闪速存储单元中读取数据位;ii)尝试使用错误检测和校正模块校正读取数据位的错误;iii)如果错误检测和校正模块的错误校正失败,使用至少一个修改参考电压从多个闪速存储单元中至少一次重新读取数据位,直到模块成功地校正错误;以及iv)在校正之后,存储(例如,在控制器的辅助存储器中,或者在任何其他存储器中)模块成功校正错误的至少一个读取参考电压;以及,在存储之后,(II)控制器进一步操作以响应随后的读取请求,通过i)取回存储的至少一个读取参考电压;以及ii)在取回之后,使用取回的至少一个读取参考电压从多个闪速存储单元中读取数据位。
根据一些实施方案,控制器操作以将至少一个读取参考电压存储在易失性存储器中。
根据一些实施方案,控制器操作以将至少一个读取参考电压存储在非易失性存储器中。
根据一些实施方案,控制器操作以将至少一个读取参考电压存储在闪速存储单元的一个或多个中。
根据一些实施方案,控制器操作以将至少一个读取参考电压存储在控制器(例如闪存控制器的易失性和/或非易失性存储器)中。
现在首次公开一种数据存储器的闪速存储设备,包括a)用于存储数据位的多个闪速存储单元;b)用于检测数据位中错误的错误检测和校正模块;以及c)用于从闪速存储单元中读取数据位的控制器,其中控制器操作以响应读取请求,通过:(i)从多个闪速存储单元中读取数据位;(ii)尝试使用错误检测和校正模块校正读取数据位的错误;(iii)如果错误检测和校正模块的错误校正失败并且在读取之后,导出至少一个新的读取参考电压;以及(iv)使用导出的至少一个新的读取参考电压从多个闪速存储单元中读取数据位。
根据一些实施方案,控制器操作以至少部分地根据由错误检测和校正模块提供的信息导出该至少一个新的电压。
根据一些实施方案,控制器操作以至少部分地随机导出该至少一个新的电压。
现在首次公开一种数据存储器的闪速存储设备,包括a)用于存储数据位的多个闪速存储单元;b)用于检测数据位中错误的错误检测和校正模块;以及c)用于从闪速存储单元中读取数据位的控制器,其中(I)控制器操作以响应第一读取请求,通过:i)从多个闪速存储单元中读取数据位;以及ii)使用所述错误检测和校正模块校正所述读取数据位的错误,以及(II)控制器进一步操作以响应随后的读取请求,通过:iii)使用至少一个修改参考电压从多个闪速存储单元中读取数据位。
根据一些实施方案,控制器操作以响应第一和随后的读取请求,而不在校正之后和使用该至少一个修改参考电压读取之前写入多个存储单元。
根据一些实施方案,控制器操作以至少部分地根据由错误检测和校正模块提供的信息导出至少一个修改参考电压。
一种计算机可读存储介质,具有包含在计算机可读存储介质中的计算机可读代码,该计算机可读代码包括用于在包括多个闪速存储单元以及错误检测和校正模块的系统中读取数据的指令,其中指令包括指令:a)从多个闪速存储单元中读取数据位;b)尝试使用错误检测和校正模块校正读取数据位的错误;c)如果错误检测和校正模块的错误校正失败,使用至少一个修改参考电压从多个闪速存储单元中至少一次重新读取数据位,直到模块成功地校正错误;以及d)重复步骤(a)、(b)和(c)而不在其间(也就是,在使用至少修改参考电压的步骤(c)的成功错误校正之后,以及在步骤(a)的读取之前)将数据位重写到存储单元。
现在首次公开一种计算机可读存储介质,具有包含在计算机可读存储介质中的计算机可读代码,该计算机可读代码包括用于在包括多个闪速存储单元以及错误检测和校正模块的系统中读取数据的指令,其中指令包括指令:a)从多个闪速存储单元中读取数据位;b)尝试使用错误检测和校正模块校正读取数据位的错误;c)如果错误检测和校正模块的错误校正失败,使用至少一个修改参考电压从多个闪速存储单元中至少一次重新读取数据位,直到模块成功地校正错误;d)在校正之后,存储模块成功校正错误的至少一个读取参考电压;e)在存储之后,取回存储的至少一个读取参考电压;以及g)在取回之后,使用取回的至少一个读取参考电压从多个闪速存储单元中读取数据位。
现在首次公开一种计算机可读存储介质,具有包含在计算机可读存储介质中的计算机可读代码,该计算机可读代码包括用于在包括多个闪速存储单元以及错误检测和校正模块的系统中读取数据的指令,其中指令包括指令:a)从多个闪速存储单元中读取数据位;b)尝试使用错误检测和校正模块校正读取数据位的错误;c)如果错误检测和校正模块的错误校正失败并且在读取之后,导出至少一个新的读取参考电压;以及d)使用导出的至少一个新的读取参考电压从多个闪速存储单元中读取数据位。
一种计算机可读存储介质,具有包含在计算机可读存储介质中的计算机可读代码,该计算机可读代码包括用于在包括多个闪速存储单元以及错误检测和校正模块的系统中读取数据的指令,其中指令包括指令:a)从多个闪速存储单元中读取数据位;b)使用错误检测和校正模块校正读取数据位的错误;以及c)在校正之后,使用至少一个修改参考电压从多个闪速存储单元中读取数据位。
这些和更多实施方案将从下面的详细描述和实例中明白。
附图说明
图1A-1B提供大量存储单元的阈值电压分布的图解说明(现有技术)。
图2提供描述现有技术错误恢复方案的流程图;
图3提供根据本发明实例实施方案的闪速存储设备的框图。
图4-7每个提供描述根据本发明一些实施方案由闪存设备处理一个或多个读取请求的流程图。
具体实施方式
现在根据具体的实例实施方案描述本发明。应当理解,本发明并不局限于公开的实例实施方案。同样应当理解,并不是当前公开的用于从闪速存储器中的错误恢复的方法、设备和计算机可读代码的每个特征对于实现本发明都是必需的,如附加权利要求书中任何特定一个要求的。描述了设备的各种元件和特征以能够充分实现本发明。同样应当理解,遍及显示或描述过程或方法的该公开内容,方法的步骤可以任何次序或同时地执行,除非从上下文中显然一个步骤依赖于另一个步骤首先执行。
图3的闪速存储设备
图3提供根据本发明实例实施方案的闪速存储设备50的框图。闪速存储设备50包括具有多个闪速存储单元的闪速存储器30,以及闪存控制器10。闪存控制器10操作以从闪速存储单元30中读取数据,并且可选地,也操作以将数据写入闪速存储单元30中。闪存设备50也包括错误检测和校正电路系统20,或者作为闪存控制器10的一部分(如图3中所示),或者独立地。闪存控制器10可以根据从闪存设备50的外部接收的,例如来自主机设备(没有显示)的指令存取闪速存储器30。
图4的描述
图4提供描述根据本发明一些实施方案由闪存设备50处理一个或多个读取请求的流程图。在接收到110读取请求之后,闪存控制器10使用一组参考电压(例如,默认的参考电压,或者任何其他组参考电压-因此每个存储单元使用各自的参考电压被读取)从闪速存储器30中读取112C数据位。进行尝试114使用ECC实现读取数据位的校正。如果错误校正成功116,控制器10可以通过发送校正后的数据(例如到主机设备)来响应118读取请求。在响应118读取请求之后,设备50准备处理另一个读取请求。
如果错误校正不成功116,控制器10可以使用至少一个修改120参考电压(也就是,至少一个各自电压与在先前读取-112C中使用的不同)从闪速存储器中重新读取112B数据位。在重新读取112B之后,再次尝试114另一次错误校正。如果该错误校正不成功116,控制器10可以使用至少一个修改参考电压(也就是,至少一个各自电压与先前读取-112B中使用的不同)再次从存储单元30中读取112B数据位。使用修改电压重新读取112B和尝试错误校114重复,直到存在成功的错误校正116。
此时,响应118可以发送到读取请求,并且控制器准备响应另一个读取请求110。注意根据图4中描述的实施方案,在成功的错误校正之后,数据不重写到闪速存储单元中。
注意在图4中,错误恢复过程包括使用修改120参考电压至少一次重新读取112B闪速存储单元。虽然不是图4的要求,在一些实施方案中,可以预先确定修改参考电压的序列,并且对于每次重复,可以使用一组不同的预先确定参考电压。作为选择,可以例如使用闪存控制器10的微处理器计算一个或多个修改参考电压。
与图4相关的讨论
因为不重写数据,当处理第一读取请求时遇到的相同数据错误可能在处理随后的读取请求时再次遇到(也就是,因为存储单元没有使用重写数据复原以减小当使用默认参考电压时错误校正失败的可能性)。因此,当处理随后的读取请求时,设备将需要再次调用错误恢复程序,例如图4中描述的程序。
本发明者现在首次公开,在许多情况下,与消除重写数据到闪速存储器中(参看图2的124)的耗时步骤相关联的速度获益(也就是通过调用更快的恢复程序)可能超过与多次读取重复相关联的效率损失,以及更频繁地从读取错误中恢复的需求。因此,本发明者公开存在图4的程序平均比图2的程序更快的许多情况。
图5的描述
图5提供描述根据本发明一些实施方案由闪存设备50处理一个或多个读取请求的流程图。在接收到110读取请求之后,闪存控制器10使用一组参考电压(例如,默认的参考电压,或者任何其他组参考电压-因此每个存储单元使用各自的参考电压被读取)从闪速存储器30中读取112C数据位。尝试114使用ECC实现读取数据位的校正。如果错误校正成功116,控制器10可以通过发送校正后的数据(例如到主机设备)来响应118读取请求。在响应118读取请求之后,设备50准备处理另一个读取请求。
如果错误校正不成功116,控制器10可以使用至少一个修改120参考电压(也就是,至少一个各自电压与在先前读取-112C中使用的不同)从闪速存储器中重新读取112B数据位。在重新读取112B之后,再次尝试114另一次错误校正。如果该错误校正不成功116,控制器10可以使用至少一个修改参考电压(也就是,至少一个各自电压与先前读取-112B中使用的不同)再次从存储单元30中读取112B数据位。使用修改电压重新读取112B和尝试错误校正114重复,直到存在成功的错误校正116。
此时,响应118可以发送到读取请求。
根据图5中描绘的实施方案,在成功的错误校正116之后(也就是在成功恢复之后),“成功的”参考电压130的一个或多个可以存储在存储器中,供随后使用。
当接收到随后的读取请求110时,可以取回132这些存储的参考电压的一个或多个(也就是当处理前一个读取请求时在成功恢复之后存储130的),并且在读取112D闪速存储器以处理随后的读取请求时使用。
虽然图5中没有显式地写入并且不是图5的限制,但是应当理解,在一些实施方案中,像图4中一样,从闪存单元中取回的实际数据不需要重写到闪存单元中。
图5的讨论
虽然不是限制,图5可以看作当描述图4时上面公开内容的“改进”。在上面图4的描述中,应当注意,因为数据没有重写到闪速存储单元(也就是,为了避免耗时的闪存写入操作),在处理随后的请求时可能遇到相同的错误(也就是,因为存储单元没有使用重写数据复原以减小当使用默认参考电压时错误校正失败的可能性)。
图5的程序可以用于减少在错误恢复之后当响应随后的读取请求时所需读取重复的次数。更具体地,在许多情况下,存储的成功参考电压(也就是,来自前一个读取请求)可能在随后的读取请求中提供适当参考电压的良好第一近似。因此,通过在错误恢复之后存储这些参考电压并且随后取回这些电压,可以获得速度的再次净增益。
例如,假设在SBC闪存中(其中仅存在一个读取参考值)一个特定闪存单元的读取参考在每次连续重复中修改(也就是步骤120)25毫伏。如果单元的阈值电压已经漂移的实际漂移为100毫伏,那么读取数据的首次尝试(也就是步骤112C)将在5次读取重复之后成功(假设为了简单,默认的读取参考值非常接近分布边缘而没有安全裕度,这典型地不是闪速存储设备的情况)。在成功读取之后,存储100毫伏的值供随后使用。
在接收到随后的读取请求之后,当该数据被再次读取112D时,取回并使用100毫伏的存储值。根据一种实施方案(也就是如图5中说明的),可以调过默认读取并且读取可以从远离默认值100毫伏的参考开始。作为选择,当接收到随后的读取请求时,可以尝试使用默认参考电压的初始读取,并且仅当不能校正数据时,将尝试使用100毫伏漂移值的读取。这样,仅发生一次或两次读取重复的开销,而不是五次。
注意,闪速存储器的各个页(读取的块)的成功参考值可以存储130在易失性存储器、非易失性存储器或其任何组合中。例如,成功参考值可以存储130在闪存控制器内的RAM中的表格中,或者闪存设备内。RAM中的存储快速且有效,因此用于加速过程的目的。缺点在于一旦电源关闭,存储的参考丢失。但是,这仍然是可接受的,因为存储的值可能对于存储系统操作不是必要的。如果数据块的存储参考值丢失,那么在该块数据的下次读取时,可以初始地使用较慢的完全重复过程(例如图4中所示),但是仍然可以正确地取回数据。
图6的描述和讨论
在图4中,注意对于可以如何修改120参考电压没有限制。在图6中,公开至少一个电压可以某种方法导出140或计算(例如,使用闪存控制器10的微处理器)。在该部分中,将描述用于导出或计算140一个或多个参考电压的两种实例程序。第一种程序涉及根据由ECC模块提供的信息计算140参考电压,并且第二种程序涉及使用随机选择的电压导出140参考电压。虽然图5或6中没有显式地写入,注意典型地,在数据恢复之后数据不重写到闪速存储单元。
导出140参考电压的第一种程序
在一些实施方案中(并且如图6中说明的),当它不能校正数据时利用由ECC模块提供的信息是可能的。例如,可以配置一些ECC模块以提供它们不能校正的数据中错误严重性的指示。该环境中错误的严重性典型地表示数据中错误的数目。所以即使ECC模块可能不知道确切的错误(并且甚至可能不知道它们的确切数目),仍然可以存在指示错误数目高还是低的信息。当使用可以提供这种信息的ECC模块时,这可以用于减小读取重复的次数。预期大量错误与阈值电压的大的漂移相关是合理的,而少量错误与较小的漂移相关。
以最简单的形式,仅当二元“大量/少量错误”指示由ECC模块提供时,该实施方案如下操作。当基于第一默认值的读取失败时,向ECC模块询问错误的严重性。然后使用基于该严重性确定的参考值进行下一次读取尝试。如果存在许多错误可以使用参考值的大的漂移,而如果存在错误可以使用较小的漂移。这样,下一次读取尝试将成功的概率较高,并且每个读取操作的读取重复的平均次数将减小。
注意,通过导出用于每个重复的参考电压(例如,根据由ECC模块提供的信息),可以提供参考电压不预先确定的错误恢复方案。因此,参考电压的序列可能对于不同的数据页而不同,并且甚至可能对于相同页的两个读取操作而不同。
显然,如果结果我们对于参考电压的预测失败,返回到图4或图5中描述的方案,或者任何其他方案总是可能的。
导出140参考电压的第二种程序
存在错误恢复期间期望随机地导出140至少一个参考电压,而不是使用预先确定值的许多情况。例如,如果ECC模块不能提供关于错误严重性的信息,像许多简单的ECC方案例如BCH或汉明码的情况,根据从数据位获得的信息选择读取参考电压或许是不可能的。因此,可以期望使用随机值。当在不同页之间存在可能漂移量的大变化时,随机选择可以具有优于预先确定选择的优点。使用随机选择可以提供每个读取操作的读取重复次数的平均,因此可以提供较少依赖于安装在系统中的具体闪存设备的更稳定性能。
图7的描述和讨论
已经描述了使用修改电压(也就是预先确定的修改电压,或者“重新”计算的电压)重新读取数据单元的错误恢复程序。
然而,注意本发明也提供即使在数据的初始读取成功的情况下仍然从闪速存储单元中读取数据的程序。
参考图7,注意在接收到第一读取请求110A之后,使用一组给定的参考电压(例如默认参考电压)读取112C闪存数据单元。读取数据使用ECC成功地校正150,并且可以提供118响应到第一读取请求。
虽然数据响应第一读取请求110A成功地读取和校正(也就是不存在对错误恢复例程的需要),然而,响应第二读取请求110B,修改参考电压。
典型地,在校正第一读取请求的读取数据之后根据由ECC提供的信息修改参考电压,虽然这不是限制。特别地,注意大多数ECC方案,如果在校正数据时成功,可以提供关于校正的错误数目的信息。因此,存在校正错误的严重性的可用指示,即使在“成功错误校正”的情况下严重性可能不是非常高,因为否则校正已经失败。基于该指示,可以确定严重性是否足够高以至于需要调节读取参考电压,其将作为相同数据的下一次读取请求的开始点。从调节后的值开始可以在下一次读取时节省一次或多次读取重复。如图5中描述的实施方案中,可以在易失性(例如RAM)和/或非易失性存储器(例如闪速存储器)的任何组合中存储用于各个数据页的参考电压供随后使用。
因此,应当注意,即使在数据位的初始读取112C之后不存在错误检测和校正模块的错误校正失败,仍然可以执行使用修改参考电压的读取112B。
实例实施方案的一般讨论
如上所述,本发明的实施方案涉及从闪速存储设备中读取数据的方法。一些实施方案提供根据这里描述的方法的任何一种操作以从闪速存储单元阵列中读取的闪速存储控制器。本发明的一些实施方案提供闪速存储设备,其组合闪速存储单元阵列和根据任何当前公开方法从阵列中读取的闪速存储控制器。
应当理解,本发明可同等地适用于SBC和MBC闪速存储器。在SBC单元中,仅存在一个读取参考电压,而在MBC中存在多个读取参考电压。当前公开的用于读取闪速存储单元的程序适用于两种情况,其中在MBC的情况下,参考的偏移可能并行地应用于所有参考或者独立地应用于每个参考电压。
错误校正失败的讨论
在一些实施方案中,如果设备指示ECC失败(例如,如果每个给定大小的数据块存在多于预先确定数目的错误),“ECC失败”事件发生。然而,这不是本发明的限制。例如,可以确定,即使当ECC模块指示成功的错误校正时,根据与读取的数据块中错误的数目和/或类型相关的备选预先确定“错误校正失败”标准,“错误校正失败”事件实际上已经发生。
因此,本发明的实施方案(特别地,参考图3-6描述的实施方案)涉及与ECC模块的那些不同的定义“错误校正失败事件”的预先确定标准由闪速存储控制器10使用的情况。
根据一个实例,如果ECC模块操作接近它的最大错误校正能力,依赖于ECC模块是不期望的。假设例如ECC模块可以校正从闪速存储器中读取的一个数据块中至多四个错误。根据该实例,可以假设当校正三个或更少错误为高度可靠的,校正四个错误不可靠(也就是,这是错误校正失败事件的“预先确定标准”的一个实例-每个数据块的错误数目超出预先确定的值)。这是因为当存在四个错误时,存在真实数据不是ECC模块返回的数据的某种非零概率,但是有些不同。因此,可以选择将四个错误的情况看作校正失败并且使用由本发明的一些实施方案提供的错误恢复技术(例如图4-6中公开的那些)获得更可靠的读取,即使ECC或许能够实际地提供校正的事实。因此,实例情况适用于这里描述的任何实施方案,并且应当理解,术语“不能校正错误”也包括“不能校正错误或者根据其他预先确定的错误标准校正被认为是不可靠的”。
在本申请的描述和权利要求中,动词“包括”、“包含”和“具有”的每个,及其组合用来指示动词的一个或多个宾语不一定是动词的一个或多个主语的成员、组件、元件或部分的完整列表。
这里陈述的所有参考文献在此以引用方式并入本文中。参考文献的引用不构成参考文献是现有技术的认可。
冠词“一”和“一个”在这里用来表示冠词的符合语法的宾语的一个或多于一个(也就是至少一个)。作为实例,“一个元件”意味着一个元件或多于一个元件。
术语“包括”在这里用来表示短语“包括但不局限于”,并且可互换地使用。
术语“或者”在这里用来表示术语“和/或”,并且可互换地使用,除非上下文另外清晰地指示。
术语“例如”在这里用来表示短语“例如但不局限于”,并且可互换地使用。
已经使用作为实例提供但不打算限制本发明范围的实施方案的详细描述而描述了本发明。描述的实施方案包括不同的特征,并不是全部特征在本发明的所有实施方案中都是必需的。本发明的一些实施方案仅使用特征的一些或者特征的可能组合。描述的本发明的实施方案的变化以及包括在描述的实施方案中陈述的特征的不同组合的本发明的实施方案将由本领域技术人员想到。

Claims (17)

1.一种在包括多个闪速存储单元以及错误检测和校正模块的系统中读取数据的方法,该方法包括:
a)从多个闪速存储单元中读取数据位;
b)尝试使用错误检测和校正模块校正所述读取数据位的错误;
c)如果错误检测和校正模块的错误校正失败,使用至少一个修改参考电压从所述多个闪速存储单元中至少一次重新读取所述数据位,直到该模块成功地校正所述错误;以及
d)对于所述数据位的随后读取,对于所述数据位重复步骤(a)、(b)和(c)而不将所述数据位重写到所述存储单元。
2.根据权利要求1的方法,其中所述重复之前的初始的所述读取是响应第一读取请求,并且与所述重复相关联的随后读取是响应随后的读取请求。
3.根据权利要求1的方法,还包括:
e)在所述校正之后,存储该模块成功地校正所述错误的至少一个读取参考电压;
f)在所述存储之后,取回所述存储的至少一个读取参考电压;以及
g)在所述取回之后,使用所述取回的至少一个读取参考电压从所述多个闪速存储单元中读取数据位。
4.根据权利要求3的方法,其中至少一个所述读取参考电压存储在易失性存储器中。
5.根据权利要求3的方法,其中至少一个所述读取参考电压存储在非易失性存储器中。
6.根据权利要求3的方法,其中至少一个所述读取参考电压存储在所述闪速存储单元的一个或多个中。
7.根据权利要求3的方法,其中所述读取数据位使用闪存控制器读取,并且至少一个所述读取参考电压存储在所述闪存控制器中。
8.根据权利要求3的方法,其中所述存储之前的初始的所述读取是响应第一读取请求,并且使用所述取回的至少一个读取参考电压的随后读取是响应随后的读取请求。
9.根据权利要求1的方法,还包括:
e)在所述步骤a)的从多个闪速存储单元中读取数据位之后,如果错误检测和校正模块的错误校正失败,导出至少一个新的读取参考电压,以及
其中,所述步骤c)的重新读取所述数据位使用所述导出的至少一个新的读取参考电压作为所述至少一个修改参考电压,从所述多个闪速存储单元中重新读取所述数据位。
10.根据权利要求9的方法,其中所述导出的至少一个新的电压至少部分地根据由所述错误检测和校正模块提供的信息确定。
11.根据权利要求9的方法,其中所述导出的至少一个新的电压至少部分地随机确定。
12.一种用于数据存储的闪速存储设备,该设备包括:
a)用于存储数据位的多个闪速存储单元;
b)用于检测和校正所述数据位中的错误的错误检测和校正模块;以及
c)用于从所述存储单元中读取所述数据位的控制器,其中:
i)所述控制器被用以通过从所述多个闪速存储单元中读取数据位来响应第一读取请求,并且如果所述错误检测和校正模块校正所述数据位失败,使用至少一个修改参考电压重新读取数据位直到所述模块成功地校正所述错误;以及
ii)所述控制器进一步被用以对于随后的读取请求重复所述响应,对于所述数据位的随后读取,不将所述数据位重写到所述存储单元。
13.一种用于数据存储的闪速存储设备,该设备包括:
a)用于存储数据位的多个闪速存储单元;
b)用于检测和校正所述数据位中的错误的错误检测和校正模块;以及
c)用于从所述闪速存储单元中读取所述数据位的控制器,其中所述控制器被用以通过以下处理响应第一读取请求:
i)从所述多个闪速存储单元中读取数据位;
ii)尝试使用所述错误检测和校正模块校正所述读取数据位的错误;
iii)如果错误检测和校正模块的错误校正失败,使用至少一个修改参考电压从所述多个闪速存储单元中至少一次重新读取数据位,直到所述模块成功地校正所述错误;以及
iv)在所述校正之后,存储该模块成功地校正所述错误的至少一个读取参考电压;
以及,在所述存储之后,所述控制器进一步被用以通过以下处理响应随后的读取请求而不将所述数据位重写到存储单元:
v)取回所述存储的至少一个读取参考电压;以及
vi)在所述取回之后,使用所述取回的至少一个读取参考电压从所述多个闪速存储单元中读取数据位。
14.根据权利要求13的设备,其中所述控制器被用以将至少一个所述读取参考电压存储在易失性存储器中。
15.根据权利要求13的设备,其中所述控制器被用以将至少一个所述读取参考电压存储在非易失性存储器中。
16.根据权利要求13的设备,其中所述控制器被用以将至少一个所述读取参考电压存储在所述闪速存储单元的一个或多个中。
17.根据权利要求13的设备,其中所述控制器被用以将至少一个所述读取参考电压存储在所述控制器中。
CN200680047669XA 2005-10-25 2006-10-24 从闪速存储器中的错误恢复的方法 Active CN101529522B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US72960805P 2005-10-25 2005-10-25
US60/729,608 2005-10-25
US11/397,609 US7954037B2 (en) 2005-10-25 2006-04-05 Method for recovering from errors in flash memory
US11/397,609 2006-04-05
PCT/IL2006/001220 WO2007049272A2 (en) 2005-10-25 2006-10-24 A method for recovering from errors in flash memory

Publications (2)

Publication Number Publication Date
CN101529522A CN101529522A (zh) 2009-09-09
CN101529522B true CN101529522B (zh) 2012-08-29

Family

ID=37968211

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200680047669XA Active CN101529522B (zh) 2005-10-25 2006-10-24 从闪速存储器中的错误恢复的方法

Country Status (6)

Country Link
US (2) US7954037B2 (zh)
EP (1) EP1946210A2 (zh)
JP (1) JP5123196B2 (zh)
KR (1) KR100976989B1 (zh)
CN (1) CN101529522B (zh)
WO (1) WO2007049272A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102831026A (zh) * 2012-08-13 2012-12-19 忆正科技(武汉)有限公司 多层单元闪存及其软信息位读取电压阈值动态调整方法
CN105229592A (zh) * 2013-03-15 2016-01-06 马维尔国际贸易有限公司 用于生成用以由于错误而重新访问存储驱动器的非易失性半导体存储器的描述符的装置和方法
CN108717385A (zh) * 2018-05-23 2018-10-30 中国科学院微电子研究所 一种用于闪存的数据恢复方法及系统

Families Citing this family (268)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080043366A1 (en) * 2003-06-26 2008-02-21 Spectra Logic Corporation Tape cartridge auxiliary memeory based library
WO2007132456A2 (en) * 2006-05-12 2007-11-22 Anobit Technologies Ltd. Memory device with adaptive capacity
CN103258572B (zh) 2006-05-12 2016-12-07 苹果公司 存储设备中的失真估计和消除
US7697326B2 (en) * 2006-05-12 2010-04-13 Anobit Technologies Ltd. Reducing programming error in memory devices
US8156403B2 (en) 2006-05-12 2012-04-10 Anobit Technologies Ltd. Combined distortion estimation and error correction coding for memory devices
US7568135B2 (en) * 2006-05-15 2009-07-28 Apple Inc. Use of alternative value in cell detection
US7911834B2 (en) * 2006-05-15 2011-03-22 Apple Inc. Analog interface for a flash memory die
US7551486B2 (en) * 2006-05-15 2009-06-23 Apple Inc. Iterative memory cell charging based on reference cell value
US7639542B2 (en) * 2006-05-15 2009-12-29 Apple Inc. Maintenance operations for multi-level data storage cells
US7852690B2 (en) * 2006-05-15 2010-12-14 Apple Inc. Multi-chip package for a flash memory
US7701797B2 (en) * 2006-05-15 2010-04-20 Apple Inc. Two levels of voltage regulation supplied for logic and data programming voltage of a memory device
US8000134B2 (en) 2006-05-15 2011-08-16 Apple Inc. Off-die charge pump that supplies multiple flash devices
US7639531B2 (en) * 2006-05-15 2009-12-29 Apple Inc. Dynamic cell bit resolution
US7613043B2 (en) * 2006-05-15 2009-11-03 Apple Inc. Shifting reference values to account for voltage sag
US7511646B2 (en) * 2006-05-15 2009-03-31 Apple Inc. Use of 8-bit or higher A/D for NAND cell value
WO2008026203A2 (en) 2006-08-27 2008-03-06 Anobit Technologies Estimation of non-linear distortion in memory devices
US7821826B2 (en) 2006-10-30 2010-10-26 Anobit Technologies, Ltd. Memory cell readout using successive approximation
US7975192B2 (en) * 2006-10-30 2011-07-05 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US7924648B2 (en) 2006-11-28 2011-04-12 Anobit Technologies Ltd. Memory power and performance management
WO2008068747A2 (en) 2006-12-03 2008-06-12 Anobit Technologies Ltd. Automatic defect management in memory devices
US7593263B2 (en) * 2006-12-17 2009-09-22 Anobit Technologies Ltd. Memory device with reduced reading latency
US7900102B2 (en) * 2006-12-17 2011-03-01 Anobit Technologies Ltd. High-speed programming of memory devices
KR100799018B1 (ko) * 2006-12-27 2008-01-28 주식회사 하이닉스반도체 불휘발성 메모리 소자 및 자기 보상 방법
US7751240B2 (en) 2007-01-24 2010-07-06 Anobit Technologies Ltd. Memory device with negative thresholds
US8151166B2 (en) 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
KR100871700B1 (ko) * 2007-02-13 2008-12-08 삼성전자주식회사 불휘발성 메모리 장치에서 전하 손실에 기인한 오류 데이터정정 방법
KR100865830B1 (ko) * 2007-02-22 2008-10-28 주식회사 하이닉스반도체 메모리 소자의 독출 방법
WO2008111058A2 (en) 2007-03-12 2008-09-18 Anobit Technologies Ltd. Adaptive estimation of memory cell read thresholds
US7975209B2 (en) * 2007-03-31 2011-07-05 Sandisk Technologies Inc. Non-volatile memory with guided simulated annealing error correction control
US7971127B2 (en) * 2007-03-31 2011-06-28 Sandisk Technologies Inc. Guided simulated annealing in non-volatile memory error correction control
US7966546B2 (en) * 2007-03-31 2011-06-21 Sandisk Technologies Inc. Non-volatile memory with soft bit data transmission for error correction control
US7966550B2 (en) 2007-03-31 2011-06-21 Sandisk Technologies Inc. Soft bit data transmission for error correction control in non-volatile memory
US8001320B2 (en) * 2007-04-22 2011-08-16 Anobit Technologies Ltd. Command interface for memory devices
US7876621B2 (en) * 2007-04-23 2011-01-25 Sandisk Il Ltd. Adaptive dynamic reading of flash memories
US8234545B2 (en) * 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
US8429493B2 (en) 2007-05-12 2013-04-23 Apple Inc. Memory device with internal signap processing unit
US7849383B2 (en) 2007-06-25 2010-12-07 Sandisk Corporation Systems and methods for reading nonvolatile memory using multiple reading schemes
WO2009002940A2 (en) * 2007-06-25 2008-12-31 Sandisk Corporation Systems and methods of reading nonvolatile memory
US7925936B1 (en) 2007-07-13 2011-04-12 Anobit Technologies Ltd. Memory device with non-uniform programming levels
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US8174905B2 (en) 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US7751237B2 (en) * 2007-09-25 2010-07-06 Sandisk Il, Ltd. Post-facto correction for cross coupling in a flash memory
US7773413B2 (en) 2007-10-08 2010-08-10 Anobit Technologies Ltd. Reliable data storage in analog memory cells in the presence of temperature variations
KR101379820B1 (ko) * 2007-10-17 2014-04-01 삼성전자주식회사 멀티-비트 프로그래밍 장치와 메모리 데이터 검출 장치
US8527819B2 (en) * 2007-10-19 2013-09-03 Apple Inc. Data storage in analog memory cell arrays having erase failures
US8000141B1 (en) 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
US8068360B2 (en) * 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
US7853841B2 (en) * 2007-10-29 2010-12-14 Micron Technology, Inc. Memory cell programming
US8270246B2 (en) 2007-11-13 2012-09-18 Apple Inc. Optimized selection of memory chips in multi-chips memory devices
US8225181B2 (en) 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
US8209588B2 (en) * 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8456905B2 (en) 2007-12-16 2013-06-04 Apple Inc. Efficient data storage in multi-plane memory devices
US7934052B2 (en) 2007-12-27 2011-04-26 Pliant Technology, Inc. System and method for performing host initiated mass storage commands using a hierarchy of data structures
US8085586B2 (en) 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
US8156398B2 (en) * 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
KR101515122B1 (ko) 2008-02-15 2015-04-27 삼성전자주식회사 저장된 데이터의 오류에 기반하여 기준 전압을 제어하는 방법과 메모리 데이터 검출 장치
US7924587B2 (en) 2008-02-21 2011-04-12 Anobit Technologies Ltd. Programming of analog memory cells using a single programming pulse per state transition
US7864573B2 (en) 2008-02-24 2011-01-04 Anobit Technologies Ltd. Programming analog memory cells for reduced variance after retention
US8230300B2 (en) * 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
KR101378365B1 (ko) * 2008-03-12 2014-03-28 삼성전자주식회사 하이브리드 메모리 데이터 검출 장치 및 방법
KR101414494B1 (ko) * 2008-03-17 2014-07-04 삼성전자주식회사 메모리 장치 및 메모리 데이터 읽기 방법
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
US8059457B2 (en) * 2008-03-18 2011-11-15 Anobit Technologies Ltd. Memory device with multiple-accuracy read commands
KR101506655B1 (ko) * 2008-05-15 2015-03-30 삼성전자주식회사 메모리 장치 및 메모리 데이터 오류 관리 방법
KR101423052B1 (ko) * 2008-06-12 2014-07-25 삼성전자주식회사 메모리 장치 및 읽기 레벨 제어 방법
US8458563B2 (en) * 2008-06-23 2013-06-04 Ramot At Tel Aviv University Ltd. Reading a flash memory by joint decoding and cell voltage distribution tracking
US8464131B2 (en) * 2008-06-23 2013-06-11 Ramot At Tel Aviv University Ltd. Reading a flash memory by constrained decoding
US7808831B2 (en) * 2008-06-30 2010-10-05 Sandisk Corporation Read disturb mitigation in non-volatile memory
US7995388B1 (en) 2008-08-05 2011-08-09 Anobit Technologies Ltd. Data storage using modified voltages
US7924613B1 (en) 2008-08-05 2011-04-12 Anobit Technologies Ltd. Data storage in analog memory cells with protection against programming interruption
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
US8482978B1 (en) 2008-09-14 2013-07-09 Apple Inc. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8000135B1 (en) 2008-09-14 2011-08-16 Anobit Technologies Ltd. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
TW201019327A (en) * 2008-09-30 2010-05-16 Lsi Corp Methods and apparatus for soft data generation for memory devices using reference cells
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
KR101486980B1 (ko) * 2008-10-27 2015-01-30 삼성전자주식회사 불휘발성 메모리의 문턱 전압 산포의 분석 방법
US8713330B1 (en) 2008-10-30 2014-04-29 Apple Inc. Data scrambling in memory devices
CN101740123B (zh) * 2008-11-10 2012-04-04 扬智科技股份有限公司 存储器的数据保护方法
US8208304B2 (en) 2008-11-16 2012-06-26 Anobit Technologies Ltd. Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
KR101642465B1 (ko) * 2008-12-12 2016-07-25 삼성전자주식회사 불휘발성 메모리 장치의 액세스 방법
US8174857B1 (en) 2008-12-31 2012-05-08 Anobit Technologies Ltd. Efficient readout schemes for analog memory cell devices using multiple read threshold sets
US8248831B2 (en) 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
KR101588293B1 (ko) 2009-02-17 2016-01-26 삼성전자주식회사 비휘발성 메모리 장치의 읽기 방법
US8228701B2 (en) 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
US8027195B2 (en) * 2009-06-05 2011-09-27 SanDisk Technologies, Inc. Folding data stored in binary format into multi-state format within non-volatile memory devices
US8102705B2 (en) 2009-06-05 2012-01-24 Sandisk Technologies Inc. Structure and method for shuffling data within non-volatile memory devices
KR101626528B1 (ko) * 2009-06-19 2016-06-01 삼성전자주식회사 플래시 메모리 장치 및 이의 데이터 독출 방법
US20110002169A1 (en) 2009-07-06 2011-01-06 Yan Li Bad Column Management with Bit Information in Non-Volatile Memory Systems
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8407564B2 (en) * 2009-07-15 2013-03-26 Intel Corporation Prediction and cancellation of systematic noise sources in non-volatile memory
US8077515B2 (en) * 2009-08-25 2011-12-13 Micron Technology, Inc. Methods, devices, and systems for dealing with threshold voltage change in memory devices
KR101678909B1 (ko) * 2009-09-17 2016-11-23 삼성전자주식회사 플래시 메모리 시스템 및 그것의 소거 리프레쉬 방법
US8243525B1 (en) 2009-09-30 2012-08-14 Western Digital Technologies, Inc. Refreshing non-volatile semiconductor memory by reading without rewriting
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8725935B2 (en) 2009-12-18 2014-05-13 Sandisk Technologies Inc. Balanced performance for on-chip folding of non-volatile memories
US8144512B2 (en) 2009-12-18 2012-03-27 Sandisk Technologies Inc. Data transfer flows for on-chip folding
US20110153912A1 (en) 2009-12-18 2011-06-23 Sergey Anatolievich Gorobets Maintaining Updates of Multi-Level Non-Volatile Memory in Binary Non-Volatile Memory
US8468294B2 (en) 2009-12-18 2013-06-18 Sandisk Technologies Inc. Non-volatile memory with multi-gear control using on-chip folding of data
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8677203B1 (en) 2010-01-11 2014-03-18 Apple Inc. Redundant data storage schemes for multi-die memory systems
KR20120137354A (ko) 2010-01-28 2012-12-20 샌디스크 아이엘 엘티디 슬라이딩-윈도우 에러 정정
US8365041B2 (en) * 2010-03-17 2013-01-29 Sandisk Enterprise Ip Llc MLC self-raid flash data protection scheme
TWI455142B (zh) * 2010-04-08 2014-10-01 Silicon Motion Inc 快閃記憶體之資料讀取的方法以及資料儲存裝置
US9570162B2 (en) * 2010-04-08 2017-02-14 Silicon Motion, Inc. Data read method for flash memory
US8576625B1 (en) 2010-04-20 2013-11-05 Marvell International Ltd. Decoder parameter estimation using multiple memory reads
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
US8451664B2 (en) 2010-05-12 2013-05-28 Micron Technology, Inc. Determining and using soft data in memory devices and systems
US8370719B2 (en) * 2010-05-21 2013-02-05 Intel Corporation Persistent moving read reference
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
US8417876B2 (en) 2010-06-23 2013-04-09 Sandisk Technologies Inc. Use of guard bands and phased maintenance operations to avoid exceeding maximum latency requirements in non-volatile memory systems
US9135168B2 (en) 2010-07-07 2015-09-15 Marvell World Trade Ltd. Apparatus and method for generating descriptors to reaccess a non-volatile semiconductor memory of a storage drive due to an error
US9141538B2 (en) 2010-07-07 2015-09-22 Marvell World Trade Ltd. Apparatus and method for generating descriptors to transfer data to and from non-volatile semiconductor memory of a storage drive
US8868852B2 (en) 2010-07-07 2014-10-21 Marvell World Trade Ltd. Interface management control systems and methods for non-volatile semiconductor memory
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
CN107093464A (zh) 2010-07-13 2017-08-25 桑迪士克科技有限责任公司 后台存储器系统接口的动态优化
US9069688B2 (en) 2011-04-15 2015-06-30 Sandisk Technologies Inc. Dynamic optimization of back-end memory system interface
US8464135B2 (en) 2010-07-13 2013-06-11 Sandisk Technologies Inc. Adaptive flash interface
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8645794B1 (en) 2010-07-31 2014-02-04 Apple Inc. Data storage in analog memory cells using a non-integer number of bits per cell
US8856475B1 (en) 2010-08-01 2014-10-07 Apple Inc. Efficient selection of memory blocks for compaction
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
KR101727704B1 (ko) * 2010-10-04 2017-04-18 삼성전자주식회사 리드 성능을 향상시킬 수 있는 리드 파라미터 변경 방법과 상기 방법을 수행할 수 있는 장치들
US8358542B2 (en) 2011-01-14 2013-01-22 Micron Technology, Inc. Methods, devices, and systems for adjusting sensing voltages in devices
US8665650B2 (en) * 2011-02-18 2014-03-04 Marvell World Trade Ltd. Reliability metrics management for soft decoding
US8472274B2 (en) * 2011-03-02 2013-06-25 Apple Inc. Using temperature sensors with a memory device
US8631288B2 (en) * 2011-03-14 2014-01-14 Micron Technology, Inc. Methods, devices, and systems for data sensing in a memory system
US9342446B2 (en) 2011-03-29 2016-05-17 SanDisk Technologies, Inc. Non-volatile memory system allowing reverse eviction of data updates to non-volatile binary cache
US8510636B2 (en) * 2011-04-01 2013-08-13 Intel Corporation Dynamic read channel calibration for non-volatile memory devices
US8713380B2 (en) 2011-05-03 2014-04-29 SanDisk Technologies, Inc. Non-volatile memory and method having efficient on-chip block-copying with controlled error rate
US20130006896A1 (en) * 2011-06-28 2013-01-03 Seagate Technology Llc Training Datasets for Memory Devices
US8775901B2 (en) 2011-07-28 2014-07-08 SanDisk Technologies, Inc. Data recovery for defective word lines during programming of non-volatile memory arrays
US9047210B2 (en) * 2011-09-15 2015-06-02 Sandisk Technologies Inc. Data storage device and method to correct bit values using multiple read voltages
US8793543B2 (en) 2011-11-07 2014-07-29 Sandisk Enterprise Ip Llc Adaptive read comparison signal generation for memory systems
US8954822B2 (en) 2011-11-18 2015-02-10 Sandisk Enterprise Ip Llc Data encoder and decoder using memory-specific parity-check matrix
KR101892038B1 (ko) 2012-01-30 2018-08-27 삼성전자주식회사 비휘발성 메모리 장치의 데이터 독출 방법
US9299455B2 (en) 2012-03-06 2016-03-29 Hitachi, Ltd. Semiconductor storage device having nonvolatile semiconductor memory
US8842473B2 (en) 2012-03-15 2014-09-23 Sandisk Technologies Inc. Techniques for accessing column selecting shift register with skipped entries in non-volatile memories
KR20160062214A (ko) * 2012-03-29 2016-06-01 인텔 코포레이션 메모리 셀을 위한 적응적 판독 기준 이동
US8681548B2 (en) 2012-05-03 2014-03-25 Sandisk Technologies Inc. Column redundancy circuitry for non-volatile memory
US8514646B1 (en) * 2012-05-09 2013-08-20 Storart Technology Co. Ltd. Method for improving performance when flash memory storage device works in wide temperature range
KR101939234B1 (ko) 2012-07-23 2019-01-16 삼성전자 주식회사 메모리 장치, 메모리 시스템 및 상기 메모리 장치의 독출 전압의 제어 방법
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US8793558B2 (en) * 2012-08-27 2014-07-29 Freescale Semiconductor, Inc. Adaptive error correction for non-volatile memories
KR20140029582A (ko) * 2012-08-28 2014-03-11 에스케이하이닉스 주식회사 반도체 장치 및 이의 동작 방법
KR101961318B1 (ko) 2012-09-07 2019-07-17 삼성전자주식회사 중앙처리장치에서의 점유시간을 최소화하는 방어코드 운영 방법 및 그에 따른 메모리 시스템
EP2709041B1 (en) * 2012-09-17 2014-11-12 Nxp B.V. Method and System for Monitoring the State of Health of an Electronic Data Carrier
US9490035B2 (en) 2012-09-28 2016-11-08 SanDisk Technologies, Inc. Centralized variable rate serializer and deserializer for bad column management
US9076506B2 (en) 2012-09-28 2015-07-07 Sandisk Technologies Inc. Variable rate parallel to serial shift register
US8897080B2 (en) 2012-09-28 2014-11-25 Sandisk Technologies Inc. Variable rate serial to parallel shift register
KR20140045168A (ko) * 2012-10-08 2014-04-16 삼성전자주식회사 불휘발성 메모리 장치, 메모리 시스템 및 불휘발성 메모리 장치의 동작방법
US9225356B2 (en) * 2012-11-12 2015-12-29 Freescale Semiconductor, Inc. Programming a non-volatile memory (NVM) system having error correction code (ECC)
US9466382B2 (en) 2012-11-14 2016-10-11 Sandisk Technologies Llc Compensation for sub-block erase
KR102002385B1 (ko) * 2012-11-14 2019-07-23 에스케이하이닉스 주식회사 데이터 저장 장치의 동작 방법
US9021339B2 (en) 2012-11-29 2015-04-28 Western Digital Technologies, Inc. Data reliability schemes for data storage systems
US9257203B2 (en) 2012-12-06 2016-02-09 Micron Technology, Inc. Setting a default read signal based on error correction
US9032271B2 (en) * 2012-12-07 2015-05-12 Western Digital Technologies, Inc. System and method for lower page data recovery in a solid state drive
US9104591B2 (en) 2012-12-11 2015-08-11 Sandisk Technologies Inc. Data recovery on cluster failures and ECC enhancements with code word interleaving
US8988941B2 (en) 2012-12-18 2015-03-24 SanDisk Tehcnologies Inc. Select transistor tuning
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
KR102123946B1 (ko) 2012-12-28 2020-06-17 삼성전자주식회사 멀티 레벨 셀 메모리 장치 및 그것의 동작방법
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9003264B1 (en) 2012-12-31 2015-04-07 Sandisk Enterprise Ip Llc Systems, methods, and devices for multi-dimensional flash RAID data protection
US9349489B2 (en) 2013-01-11 2016-05-24 Sandisk Technologies Inc. Systems and methods to update reference voltages in response to data retention in non-volatile memory
US9070479B2 (en) 2013-01-21 2015-06-30 Sandisk Technologies Inc. Systems and methods of updating read voltages
US9318215B2 (en) * 2013-02-14 2016-04-19 Sandisk Technologies Inc. Systems and methods to update reference voltages of non-volatile memory
US9195587B2 (en) 2013-03-07 2015-11-24 Sandisk Technologies Inc. Enhanced dynamic read process with single-level cell segmentation
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9367246B2 (en) * 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
KR102131802B1 (ko) * 2013-03-15 2020-07-08 삼성전자주식회사 비휘발성 메모리 장치의 데이터 독출 방법, 비휘발성 메모리 장치, 및 메모리 시스템의 구동 방법
US9367391B2 (en) * 2013-03-15 2016-06-14 Micron Technology, Inc. Error correction operations in a memory device
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9728263B2 (en) 2013-05-31 2017-08-08 Sandisk Technologies Llc Method and device for iteratively updating read voltages
US9697905B2 (en) 2013-05-31 2017-07-04 Sandisk Technologies Llc Updating read voltages using syndrome weight comparisons
CN104217761B (zh) * 2013-05-31 2018-12-14 慧荣科技股份有限公司 数据储存装置及其错误校正方法
US10475523B2 (en) 2013-05-31 2019-11-12 Western Digital Technologies, Inc. Updating read voltages triggered by the rate of temperature change
US9218890B2 (en) 2013-06-03 2015-12-22 Sandisk Technologies Inc. Adaptive operation of three dimensional memory
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
KR102076231B1 (ko) * 2013-07-09 2020-02-12 에스케이하이닉스 주식회사 데이터 저장 장치, 그것의 동작 방법 및 그것을 포함하는 데이터 처리 시스템
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9043517B1 (en) 2013-07-25 2015-05-26 Sandisk Enterprise Ip Llc Multipass programming in buffers implemented in non-volatile data storage systems
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9235509B1 (en) 2013-08-26 2016-01-12 Sandisk Enterprise Ip Llc Write amplification reduction by delaying read access to data written during garbage collection
US9442670B2 (en) 2013-09-03 2016-09-13 Sandisk Technologies Llc Method and system for rebalancing data stored in flash memory devices
US9142324B2 (en) 2013-09-03 2015-09-22 Sandisk Technologies Inc. Bad block reconfiguration in nonvolatile memory
US9519577B2 (en) 2013-09-03 2016-12-13 Sandisk Technologies Llc Method and system for migrating data between flash memory devices
KR102192910B1 (ko) * 2013-09-10 2020-12-18 에스케이하이닉스 주식회사 반도체 장치, 메모리 시스템 및 이의 동작 방법
JP2015056198A (ja) 2013-09-13 2015-03-23 株式会社東芝 メモリチップ、記憶装置および読み出し方法
US9158349B2 (en) 2013-10-04 2015-10-13 Sandisk Enterprise Ip Llc System and method for heat dissipation
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9218886B2 (en) 2013-12-10 2015-12-22 SanDisk Technologies, Inc. String dependent parameter setup
US9129665B2 (en) 2013-12-17 2015-09-08 Sandisk Enterprise Ip Llc Dynamic brownout adjustment in a storage device
US9430328B2 (en) 2014-01-24 2016-08-30 Stmicroelectronics S.R.L. Error correction in memory devices by multiple readings with different references
US9349490B2 (en) 2014-01-24 2016-05-24 Stmicroelectronics S.R.L. Error correction in differential memory devices with reading in single-ended mode in addition to reading in differential mode
US9549457B2 (en) 2014-02-12 2017-01-17 Sandisk Technologies Llc System and method for redirecting airflow across an electronic assembly
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
WO2015145552A1 (ja) 2014-03-24 2015-10-01 株式会社日立製作所 不揮発メモリデバイス、及び、不揮発メモリデバイスを有するストレージ装置
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US9384128B2 (en) 2014-04-18 2016-07-05 SanDisk Technologies, Inc. Multi-level redundancy code for non-volatile memory controller
KR102174030B1 (ko) 2014-05-13 2020-11-05 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 읽기 방법
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US9070481B1 (en) 2014-05-30 2015-06-30 Sandisk Technologies Inc. Internal current measurement for age measurements
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US9093160B1 (en) 2014-05-30 2015-07-28 Sandisk Technologies Inc. Methods and systems for staggered memory operations
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
TWI562158B (en) 2014-10-13 2016-12-11 Silicon Motion Inc Non-volatile memory device and controller
US9934872B2 (en) 2014-10-30 2018-04-03 Sandisk Technologies Llc Erase stress and delta erase loop count methods for various fail modes in non-volatile memory
US9224502B1 (en) 2015-01-14 2015-12-29 Sandisk Technologies Inc. Techniques for detection and treating memory hole to local interconnect marginality defects
US9558065B2 (en) * 2015-02-02 2017-01-31 Kabushiki Kaisha Toshiba Memory system including cache
US9959067B2 (en) 2015-02-04 2018-05-01 Sandisk Technologies Llc Memory block allocation by block health
US10032524B2 (en) 2015-02-09 2018-07-24 Sandisk Technologies Llc Techniques for determining local interconnect defects
US9928138B2 (en) * 2015-02-17 2018-03-27 Toshiba Memory Corporation Memory system
US10055267B2 (en) 2015-03-04 2018-08-21 Sandisk Technologies Llc Block management scheme to handle cluster failures in non-volatile memory
US9564219B2 (en) 2015-04-08 2017-02-07 Sandisk Technologies Llc Current based detection and recording of memory hole-interconnect spacing defects
US9269446B1 (en) 2015-04-08 2016-02-23 Sandisk Technologies Inc. Methods to improve programming of slow cells
US9502123B2 (en) 2015-04-21 2016-11-22 Sandisk Technologies Llc Adaptive block parameters
US9691473B2 (en) 2015-09-22 2017-06-27 Sandisk Technologies Llc Adaptive operation of 3D memory
US9401216B1 (en) 2015-09-22 2016-07-26 Sandisk Technologies Llc Adaptive operation of 3D NAND memory
US10284232B2 (en) * 2015-10-28 2019-05-07 Pure Storage, Inc. Dynamic error processing in a storage device
CN107153507A (zh) * 2016-03-03 2017-09-12 北京兆易创新科技股份有限公司 一种基于NAND Flash的数据读取装置和方法
US9691492B1 (en) * 2016-09-29 2017-06-27 Intel Corporation Determination of demarcation voltage for managing drift in non-volatile memory devices
US10418097B2 (en) 2017-11-27 2019-09-17 Western Digital Technologies, Inc. Non-volatile storage system with read calibration
US11068186B2 (en) 2018-02-09 2021-07-20 Micron Technology, Inc. Providing recovered data to a new memory cell at a memory sub-system based on an unsuccessful error correction operation
US10811091B2 (en) 2018-10-12 2020-10-20 Western Digital Technologies, Inc. Adaptive processing for read threshold voltage calibration
US10553290B1 (en) 2018-10-30 2020-02-04 Micron Technology, Inc. Read disturb scan consolidation
US11204828B2 (en) * 2018-12-10 2021-12-21 Micron Technology, Inc. Management of corruptive read in memory systems
CN113316770B (zh) * 2019-01-25 2023-08-22 华为技术有限公司 数据修复方法和装置
CN112289365B (zh) * 2019-07-24 2024-02-23 华邦电子股份有限公司 半导体存储器装置
TWI766462B (zh) 2019-12-23 2022-06-01 美商美光科技公司 在記憶體裝置中基於計數器之讀取
CN113129993B (zh) * 2020-01-16 2024-06-11 华邦电子股份有限公司 内存装置及其数据读取方法
CN113517018B (zh) * 2020-04-10 2024-04-12 华邦电子股份有限公司 存储器装置的测试方法
US10991444B1 (en) * 2020-05-28 2021-04-27 Western Digital Technologies, Inc. Tiered read reference calibration
US11488682B2 (en) 2020-06-24 2022-11-01 Sandisk Technologies Llc Calibration for integrated memory assembly
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory
CN114360628B (zh) * 2022-03-07 2022-08-16 阿里巴巴(中国)有限公司 闪存的检测方法以及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5434825A (en) * 1988-06-08 1995-07-18 Harari; Eliyahou Flash EEPROM system cell array with more than two storage states per memory cell
US5657332A (en) * 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
JP2003140980A (ja) * 2001-10-31 2003-05-16 Hitachi Ltd 記録装置
JP2003248631A (ja) * 2002-02-26 2003-09-05 Nec Microsystems Ltd メモリ制御回路及びメモリ制御方法
WO2005036401A2 (en) * 2003-10-03 2005-04-21 Sandisk Corporation Flash memory data correction and scrub techniques

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04337857A (ja) 1991-05-15 1992-11-25 Yokogawa Electric Corp マイクロプロセッサ装置
JPH07122087A (ja) * 1993-10-25 1995-05-12 Hitachi Ltd Eepromエラーチェック方式
JPH09244961A (ja) 1996-03-08 1997-09-19 Mitsubishi Electric Corp フラッシュata−pcカード
US7031214B2 (en) * 1999-01-14 2006-04-18 Silicon Storage Technology, Inc. Digital multilevel memory system having multistage autozero sensing
US6522580B2 (en) 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
US6751766B2 (en) 2002-05-20 2004-06-15 Sandisk Corporation Increasing the effectiveness of error correction codes and operating multi-level memory systems by using information about the quality of the stored data
US20040199786A1 (en) * 2002-12-02 2004-10-07 Walmsley Simon Robert Randomisation of the location of secret information on each of a series of integrated circuits
US7320100B2 (en) * 2003-05-20 2008-01-15 Cray Inc. Apparatus and method for memory with bit swapping on the fly and testing
JP4408696B2 (ja) 2003-12-26 2010-02-03 パナソニック株式会社 不揮発性半導体記憶装置
US7590918B2 (en) * 2004-09-10 2009-09-15 Ovonyx, Inc. Using a phase change memory as a high volume memory
US7581154B2 (en) * 2005-06-30 2009-08-25 Intel Corporation Method and apparatus to lower operating voltages for memory arrays using error correcting codes
US7975192B2 (en) * 2006-10-30 2011-07-05 Anobit Technologies Ltd. Reading memory cells using multiple thresholds

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5434825A (en) * 1988-06-08 1995-07-18 Harari; Eliyahou Flash EEPROM system cell array with more than two storage states per memory cell
US5657332A (en) * 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
JP2003140980A (ja) * 2001-10-31 2003-05-16 Hitachi Ltd 記録装置
JP2003248631A (ja) * 2002-02-26 2003-09-05 Nec Microsystems Ltd メモリ制御回路及びメモリ制御方法
WO2005036401A2 (en) * 2003-10-03 2005-04-21 Sandisk Corporation Flash memory data correction and scrub techniques

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102831026A (zh) * 2012-08-13 2012-12-19 忆正科技(武汉)有限公司 多层单元闪存及其软信息位读取电压阈值动态调整方法
CN105229592A (zh) * 2013-03-15 2016-01-06 马维尔国际贸易有限公司 用于生成用以由于错误而重新访问存储驱动器的非易失性半导体存储器的描述符的装置和方法
CN105229592B (zh) * 2013-03-15 2018-04-10 马维尔国际贸易有限公司 用于生成用以由于错误而重新访问存储驱动器的非易失性半导体存储器的描述符的装置和方法
CN108717385A (zh) * 2018-05-23 2018-10-30 中国科学院微电子研究所 一种用于闪存的数据恢复方法及系统
CN108717385B (zh) * 2018-05-23 2020-09-29 中国科学院微电子研究所 一种用于闪存的数据恢复方法及系统

Also Published As

Publication number Publication date
JP2009515281A (ja) 2009-04-09
US20070091677A1 (en) 2007-04-26
US20110231740A1 (en) 2011-09-22
WO2007049272A3 (en) 2009-04-09
US7954037B2 (en) 2011-05-31
KR100976989B1 (ko) 2010-08-19
EP1946210A2 (en) 2008-07-23
WO2007049272A2 (en) 2007-05-03
KR20080059461A (ko) 2008-06-27
CN101529522A (zh) 2009-09-09
JP5123196B2 (ja) 2013-01-16

Similar Documents

Publication Publication Date Title
CN101529522B (zh) 从闪速存储器中的错误恢复的方法
US9952939B1 (en) System and method for lower page data recovery in a solid state drive
CN101339526B (zh) 检测由于读干扰而造成的位错误的存储系统及其方法
CN101246738B (zh) 具有备份电路的存储系统及编程方法
JP5138319B2 (ja) メモリーシステム及び該動作方法。
US7616484B2 (en) Soft errors handling in EEPROM devices
CN100545817C (zh) 用于提高数据可靠性的数据管理技术
US5532962A (en) Soft errors handling in EEPROM devices
EP2471069B1 (en) Methods, devices, and systems for dealing with threshold voltage change in memory devices
CN100589206C (zh) 确定存储器数据单元是否被擦除及处理存储器数据单元的方法
US20090034328A1 (en) Memory system protected from errors due to read disturbance and reading method thereof
US9471418B2 (en) Memory system that detects bit errors due to read disturbance and methods thereof
KR20140061265A (ko) 에러 정정 코드(ecc)를 가진 비-휘발성 메모리(nvm) 시스템을 프로그래밍하는 방법
US9490024B1 (en) Solid state storage device and reading control method thereof
JP2011238346A (ja) フラッシュメモリ内のエラーから復旧するための方法
CN104900270A (zh) 半导体器件及其操作方法
US11119854B2 (en) Method of controlling verification operations for error correction of non-volatile memory device, and non-volatile memory device

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
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Israel Kfar Saba

Patentee after: Western data Israel Limited

Address before: Israel saaba

Patentee before: SanDisk IL Ltd.