CN101529522B - 从闪速存储器中的错误恢复的方法 - Google Patents
从闪速存储器中的错误恢复的方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1072—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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/5642—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
- G11C16/28—Sensing 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的设备,其中所述控制器被用以将至少一个所述读取参考电压存储在所述控制器中。
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)
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)
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)
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)
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 |
-
2006
- 2006-04-05 US US11/397,609 patent/US7954037B2/en active Active
- 2006-10-24 EP EP06809781A patent/EP1946210A2/en not_active Withdrawn
- 2006-10-24 JP JP2008537310A patent/JP5123196B2/ja not_active Expired - Fee Related
- 2006-10-24 KR KR1020087012350A patent/KR100976989B1/ko active IP Right Grant
- 2006-10-24 WO PCT/IL2006/001220 patent/WO2007049272A2/en active Application Filing
- 2006-10-24 CN CN200680047669XA patent/CN101529522B/zh active Active
-
2011
- 2011-05-27 US US13/117,975 patent/US20110231740A1/en not_active Abandoned
Patent Citations (5)
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)
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. |