CN103186490A - 模拟存储单元中的优化的阈值搜索 - Google Patents
模拟存储单元中的优化的阈值搜索 Download PDFInfo
- Publication number
- CN103186490A CN103186490A CN2012105836010A CN201210583601A CN103186490A CN 103186490 A CN103186490 A CN 103186490A CN 2012105836010 A CN2012105836010 A CN 2012105836010A CN 201210583601 A CN201210583601 A CN 201210583601A CN 103186490 A CN103186490 A CN 103186490A
- Authority
- CN
- China
- Prior art keywords
- read
- result
- reading
- storage unit
- threshold
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/40—Data acquisition and logging
-
- 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/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- 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
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/021—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
本发明涉及模拟存储单元中的优化的阈值搜索。一种方法,包括把数据保存在一组模拟存储单元中。利用第一读取阈值读取所述组中的存储单元从而产生第一读出结果,并利用第二读取阈值重新读取所述组中的存储单元从而产生第二读出结果。定义包括第一读取阈值至少之一和第二读取阈值至少之一的第三读取阈值。根据第一读出结果和第二读出结果,评估第一、第二和第三读取阈值的读出性能。根据评估的读出性能,选择第一、第二或第三读取阈值,以及利用选择的读取阈值进行数据恢复。
Description
技术领域
本发明一般涉及存储设备,尤其涉及设定读取模拟存储单元的阈值的方法和系统。
背景技术
几种存储设备,比如闪速存储器利用模拟存储单元的阵列来保存数据。每个模拟存储单元保持代表保存在该存储单元中的数据的一定水平的给定物理量,比如电荷或电压。所述物理量的水平也被称为模拟存储值或者模拟值。在闪速存储器中,例如,每个模拟存储单元保持一定量的电荷。可能模拟值的范围一般被分成多个区域,每个区域对应于代表一个或多个数据比特值的编程状态或编程层次。通过写入对应于一个或多个期望比特的标称模拟值,把数据写入模拟存储单元中。
通常称为单阶存储单元(SLC)设备的一些存储设备在每个存储单元中保存单一比特的信息,即,每个存储单元可被编程呈现两种可能的存储状态。通常称为多阶存储单元的更高密度的设备每个存储单元保存两个或者更多的比特,即,可被编程呈现两种以上的可能的存储状态。
例如在Bez等的“Introduction to Flash Memory”(Proceedings ofthe IEEE,volume91,number4,2003年4月,第489-502页)中描述了闪速存储设备,该论文在此引为参考。例如在Eitan等的“MultilevelFlash Cells and their Trade-Offs”(Proceedings of the1996IEEEInternational Electron Devices Meeting(IEDM),New York,NewYork,第169-172页)中描述了多阶闪速存储单元和设备,该论文在此引为参考。该论文比较了几种多阶闪速存储单元,比如commonground,DINOR,AND,NOR和NAND单元。
Eitan等在“Can NROM,a2-bit,Trapping Storage NVM Cell,Give a Real Challenge to Floating Gate Cells?”(Proceedings of the1999International Conference on Solid State Devices and Materials(SSDM),Tokyo,Japan,1999年9月21-24日,第522-524页)中描述了另一种称为氮化物只读存储器(NROM)的模拟存储单元,该论文在此引为参考。Maayan等在“A512Mb NROM Flash Data StorageMemory with8MB/s Data Rate”(Proceedings of the2002IEEEInternational Solid-State Circuits Conference(ISSCC2002),SanFrancisco,California,2002年2月3-7日,第100-101页)中,也披露了NROM单元,该论文在此引为参考。其它例证类型的模拟存储单元是浮栅(FG)单元、铁电RAM(FRAM)单元、磁性RAM(MRAM)单元、电荷捕获闪速(CTF)和相变RAM(PRAM,也称为相变存储器-PCM)单元。例如,在Kim和Koh的“Future Memory Technologyincluding Emerging New Memories”(Proceedings of the24thInternational Conference on Microelectronics(MIEL),Nis,Serbiaand Montenegro,2004年5月16-19日,volume1,第377-384页)中描述了FRAM、MRAM和PRAM单元,该论文在此引为参考。
本领域中已知设定读取模拟存储单元的读取阈值和其它读取参数的各种技术。例如,其公开内容在此引为参考的美国专利申请公开2009/0199074披露了一种操作包括模拟存储单元的存储器的方法。该方法包括用可用多个方程表示的纠错码(ECC)对数据编码。通过把相应的输入存储值写入一组模拟存储单元中的各个存储单元中,把编码数据保存在所述一组模拟存储单元中。通过把一个或多个不同的相应读取参数用于每组输出存储值,从所述一组模拟存储单元中的各个存储单元中,读取多组输出存储值。确定由相应各组输出存储值满足的方程的数目。响应满足的方程的相应数目,识别读取参数的优选设定。利用读取参数的优选设定,对存储器进行操作。
发明内容
这里说明的本发明的实施例提供一种包括把数据保存在一组模拟存储单元中的方法。利用第一读取阈值读取所述组中的存储单元,从而产生第一读出结果,并利用第二读取阈值重新读取所述组中的存储单元,从而产生第二读出结果。定义包括第一读取阈值至少之一和第二读取阈值至少之一的第三读取阈值。根据第一读出结果和第二读出结果,评估第一、第二和第三读取阈值的读出性能。根据评估的读出性能,选择第一、第二或第三读取阈值,以及利用选择的读取阈值进行数据恢复。
在一些实施例中,进行数据恢复包括恢复保存在所述一组存储单元中的数据,或者恢复保存在不同的一组存储单元中的数据。在一个实施例中,评估读出性能包括根据第一读出结果和第二读出结果,获得通过利用第三读取阈值读取所述组中的存储单元理应产生的第三读出结果,并根据第三读出结果估计读出性能。
在一个公开的实施例中,获得第三读出结果包括:根据利用一个或多个辅助读取阈值从所述组的读出,把所述组中的存储单元分成第一子集和第二子集,以及通过选择从第一子集中的存储单元读取的第一读出结果,和从第二子集中的存储单元读出的第二读出结果,形成第三读出结果。在一个实施例中,辅助读取阈值包括读取阈值的第一集合或第二集合。
在另一个实施例中,利用纠错码(ECC)编码保存的数据,以及评估读出性能包括:把所述组中的存储单元分成第一子集和第二子集,根据从第一子集中的存储单元读取的第一读出结果,计算ECC的第一局部校正子,同时使从第二子集中的存储单元读取的第一读出结果为零,根据从第二子集中的存储单元读出的第二读出结果,计算ECC的第二局部校正子,同时使从第一子集中的存储单元读取的第二读出结果为零,通过相加第一和第二局部校正子,计算与通过利用第三读取阈值读取所述组中的存储单元理应产生的第三读出结果对应的ECC的第三校正子,和通过比较关于第一读出结果计算的第一校正子、关于第二读出结果计算的第二校正子、和第三校正子,评估读出性能。在一个实施例中,把所述组中的存储单元分成第一子集和第二子集包括根据利用一个或多个辅助读取阈值从所述组的读出,定义第一子集和第二子集。
在另一个实施例中,利用由一组奇偶校验方程定义的ECC来编码保存的数据,以及评估读出性能包括计算由第一读出结果、第二读出结果、和如果利用第三读取阈值读取所述组中的存储单元理应产生的第三读出结果满足的奇偶校验方程的相应计数。在另一个实施例中,利用ECC来编码保存的数据,以及评估读出性能包括评估根据第一、第二和第三读取阈值解码ECC的成功或失败。
在一个公开的实施例中,利用ECC来编码保存的数据,以及评估读出性能包括评估根据第一、第二和第三读取阈值解码ECC的解码处理的中间结果。评估中间结果可包括计算ECC的错误定位多项式的秩。
在一个实施例中,ECC包括包含多个辅助ECC的合成ECC,以及评估中间结果包括只评估辅助ECC的子集的解码结果。在另一个实施例中,模拟存储单元包含在存储设备中,以及读取和重新读取存储单元包括接收并在存储设备中进行利用第一和第二读取阈值读取存储单元的单一读取命令。
按照本发明的实施例,另外提供包括存储器和存储电路的设备。存储器包括多个模拟存储单元。存储电路被配置成把数据保存在一组模拟存储单元中,利用第一读取阈值读取所述组中的存储单元从而产生第一读出结果,利用第二读取阈值重新读取所述组中的存储单元从而产生第二读出结果,定义包括第一读取阈值至少之一和第二读取阈值至少之一的第三读取阈值,根据第一读出结果和第二读出结果,评估第一、第二和第三读取阈值的读出性能,根据评估的读出性能,选择第一、第二或第三读取阈值,以及利用选择的读取阈值进行数据恢复。
按照本发明的实施例,另外提供包括接口和存储电路的设备。所述接口被配置成与包括多个模拟存储单元的存储器通信。存储电路被配置成把数据保存在一组模拟存储单元中,利用第一读取阈值读取所述组中的存储单元从而产生第一读出结果,利用第二读取阈值重新读取所述组中的存储单元从而产生第二读出结果,定义包括第一读取阈值至少之一和第二读取阈值至少之一的第三读取阈值,根据第一读出结果和第二读出结果,评估第一、第二和第三读取阈值的读出性能,根据评估的读出性能选择第一、第二或第三读取阈值,和利用选择的读取阈值进行数据恢复。
附图说明
根据结合附图进行的本发明的实施例的以下详细说明,将更充分地理解本发明,其中:
图1是按照本发明的实施例,示意图解说明存储系统的方框图;
图2和3是按照本发明的实施例,示意图解说明选择最佳读取阈值的方案的示图;和
图4和5是按照本发明的实施例,示意图解说明选择最佳读取阈值的方法的流程图。
具体实施方式
概述
一般通过把代表数据的相应模拟存储值写入模拟存储单元中,把数据保存在模拟存储单元中。模拟存储值的范围一般被分成代表可能的数据值的多个区域(称为编程层次)。一般通过比较模拟存储单元的模拟存储值和置于相邻编程层次之间的边界的某些读取阈值,读取模拟存储单元。
在许多实际情况下,存储单元的模拟存储值随时间变化,并且因存储单元组而异。于是,重要的是高精度地跟踪和布置读取阈值。读取阈值的精确布置对读取错误的概率有相当大的影响。
另一方面,多组读取阈值的评估会招致相当大的等待时间和功耗,例如因为该任务涉及从存储单元的大量读取操作。当利用每个单元保存大量比特的高阶MLC时,读取阈值的评估变得特别复杂。
这里说明的本发明的实施例提供改进的评估读取阈值的方法和系统。公开的技术在只利用读取阈值的多个集合的较小子集实际读取存储单元的时候,评估这些集合的读出性能。利用计算评估剩余各组读取阈值的读出性能,而不实际读取存储单元。结果,显著降低由阈值评估处理招致的等待时间和功耗。随后把表现最好的读取阈值集合用于恢复保存的数据。
在一些实施例中,利用读取阈值的第一集合和第二集合,读取一组模拟存储单元,以分别产生第一和第二读出结果。通过选择第一集合中的至少一个读取阈值,和第二集合中的至少一个读取阈值,形成读取阈值的第三集合,称为混合集合。根据第一和第二读出结果,评估第一、第二和第三集合的读出性能,并选择表现最好的读取阈值集合用于解码保存的数据。另一方面,表现最好的读取阈值集合用于解码另一组存储单元中的数据。
特别地,在不利用混合集合读取阈值读取存储单元的情况下,评估混合集合的读出性能。这种方案可用于评估从少量的初始集合中选择的读取阈值的所有可能组合。
这里说明评估这种混合集合的读出性能的几种例证方案。在一个实施例中,通过逐个单元地从第一或第二读出结果中,选择对应的读出结果,再现混合集合的读出结果(利用计算,而不读取存储单元)。是否从第一或第二读出结果中选择读出结果的决定是取决于利用一个或多个辅助阈值的辅助读取操作的相应结果,逐个单元地作出的。
在备选实施例中,用纠错码(ECC),比如低密度奇偶校验(LDPC)码,编码保存在所述一组存储单元中的数据。根据辅助读取操作的结果或者其它适当标准,把所述一组存储单元分成多个子集。在利用读取阈值的第一集合,读取存储单元之后,关于存储单元的每个子集,计算ECC的相应局部校正子。对利用读取阈值的第二集合获得的读出结果,重复该处理,以同样产生该集合的局部校正子。
通过合计(模2,即异或)局部校正子的适当组合,评估读取阈值的第一、第二和第三(混合)集合的读出性能。在一些实施例中,只保留与读取阈值的各个集合相关的局部校正子,原始的读出结果被丢弃。从而,显著降低了阈值评估处理所需的存储空间。
系统描述
图1是按照本发明的实施例,示意地图解说明存储系统20的方框图。系统20可以用作各种主机系统和设备中,比如用在计算设备、蜂窝电话机或其它通信终端、可拆卸存储模块(有时称为“USB闪速驱动器”)、固态磁盘(SSD)、数字照相机、音乐和其它媒体播放器、和/或其中保存和取回数据的任何其它系统或设备中。
系统20包含把数据保存在存储单元阵列28中的存储设备24。存储阵列包含多个存储块34。每个存储块34包含多个模拟存储单元32。在本专利申请的上下文中和在权利要求中,术语“模拟存储单元”用于描述保持物理参数,比如电压或电荷的连续模拟值的任何存储单元。阵列28可包含任何类型的模拟存储单元,比如NAN,NOR和电荷捕获闪速(CTF)闪速单元,相变RAM(PRAM,也称为相变存储器-PCM),氮化物只读存储器(NROM),铁电RAM(FRAM),磁性RAM(MRAM)和/或动态RAM(DRAM)单元。
这里,把保存在单元中的电荷电平和/或写入单元和从单元读出的模拟电压或电流共同称为模拟值、模拟存储值或存储值。存储值可包含例如阈值电压或者任何其它适当类型的存储值。通过对存储单元编程,以呈现相应的编程状态(也称为编程层次),系统20把数据保存在模拟存储单元中。编程状态选自可能状态的有限集合,并且每个编程状态对应于某个标称存储值。例如,通过把8个可能的标称存储值之一写入存储单元中,3比特/单元MLC可被编程,以呈现8种可能的编程状态之一。
存储设备24包含读/写(R/W)单元36,R/W单元36把用于保存在存储设备中的数据转换成模拟存储值,然后把它们写入存储单元32中。在备选实施例中,R/W单元不进行转换,而是被提供电压样本,即,被提供用于保存在单元中的存储值。当从阵列28读出数据时,R/W单元36把存储单元32的存储值转换成具有一个或多个比特的分辨率的数字样本。数据一般是以组(称为页)为单位,写入存储单元和从存储单元读取的。在一些实施例中,通过对存储单元32施加一个或多个负擦除脉冲,R/W单元可以擦除一组存储单元32。一般在整个存储块中进行擦除。
数据在存储设备24中的存储和从存储设备24的取回由存储器控制器40进行。存储器控制器包含与存储设备24通信的接口44,和实现各种存储器管理功能的处理器48。存储器控制器40与主机52通信,以便接受用于存储在存储设备中的数据,和输出从存储设备取回的数据。存储器控制器40,特别是处理器48可用硬件实现。另一方面,存储器控制器可包含运行适当软件的微处理器,或者硬件元件和软件元件的组合。
图1的结构是例证的系统结构,表示该例证系统结构只是为了概念的明晰性起见。也可使用任何其它适当的存储系统结构。为了清楚起见,图中省略了不是为理解本发明的原理必需的元件,比如各种接口、寻址电路、定时和排序电路、和调试电路。
虽然图1的例子表示单个存储设备24,不过系统20可包含由存储器控制器40控制的多个存储设备。在图1中所示的例证系统结构中,存储设备24和存储器控制器40被实现成两个独立的集成电路(IC)。不过在备选实施例中,存储设备和存储器控制器可以集成在单个多芯片封装(MCP)或片上系统(SoC)中的独立半导体小片上,并由内部总线互连。另一方面,一些或者全部的存储器控制器电路可以存在于其上布置有存储器阵列的相同小片上。另一方面,存储器控制器40的一些或者所有功能可用软件实现,并由处主机系统的处理器或者其它元件执行。在一些实施例中,可以在相同小片上,或者在相同设备封装中的独立小片上制备主机44和存储器控制器40。
在一些实施例中,存储器控制器40包括通用处理器,所述通用处理器可用软件编程,以实现这里说明的功能。软件可以通过网络,以电子形式下载到处理器,或者另一方面或另外地,可在非临时性有形介质,比如磁、光或电存储器上提供和/或保存所述软件。
在阵列28的例证结构中,存储单元32被排列成多行和多列,每个存储单元包含浮栅晶体管。每一行中的晶体管的栅极由字线连接,每一列中的晶体管的源极由位线连接。存储器阵列一般被分成多页,即,同时编程和读取的多组存储单元。页有时被细分成扇区。在一些实施例中,每一页包含阵列的一个整行。在备选实施例中,每一行(字线)可被分成两页或者更多页。例如,在一些设备中,每一行被分成两页,一页包含奇数阶单元,另一页包含偶数阶单元。
一般,存储器控制器40以页为单位对数据编程,不过擦除整个存储块34。一般(尽管不一定),一个存储块在约为106个存储单元的量级上,而一页在约为103-104个存储单元的量级上。
下面的说明描述用于选择读取保存在存储单元32中的数据的读取阈值的几种例证技术。公开的技术可由存储器控制器40和/或由R/W单元36实现。为了清楚起见,下面的说明涉及各种功能在存储设备中的R/W单元36和存储器控制器40中的处理器48之间的特定划分。不过,构成所公开的技术的各种任务一般可按照任何适当的方式,在存储器控制器和R/W电路之间划分,或者由这些元件任意之一执行。从而,在本专利申请的上下文中和在权利要求中,存储器控制器40和R/W电路36被共同称为实现所公开的技术的存储电路。
图2是按照本发明的实施例,示意地图解说明选择最佳读取阈值的方案的示图。在本实施例中,存储单元32包含4级MLC,每一级保持两个数据比特。在备选实施例中,公开的技术可用于选择读取任何其它适当类型的MLC,比如8级或16级MLC的读取阈值。
在图2的例子中,一般沿着给定字线的一组存储单元保持两个数据页-所述一组存储单元中的各个存储单元的第一比特中的称为最低有效位(LSB)页的一页,和所述一组存储单元中的各个存储单元的第二比特中的称为最高有效位(MSB)页的另一页。
图2表示所述一组存储单元中的各个存储单元之中的阈值电压(VTH)分布。在这个例子中,阈值电压是按与4种相应的编程层次对应的4种分布60A…60D分布的。每个编程层次代表两个比特-LSB和MSB的相应组合:
编程层次 | LSB | MSB |
60A | 1 | 1 |
60B | 1 | 0 |
60C | 0 | 0 |
60D | 0 | 1 |
表1:LSB和MSB到编程层次的例证映射
这种映射利用Gray编码,其中任何两个相邻的编程层次彼此区别仅仅在于单个比特值。此外,在这种映射中,最低的两个编程层次对应于LSB=“1”,而最高的两个编程层次对应于LSB=“0”。
一般来说,R/W单元36通过比较存储单元阈值电压和LSB读取阈值64,读取LSB页。其阈值电压低于阈值64的存储单元被视为保持LSB=“1”,而其阈值电压高于阈值64的存储单元被视为保持LSB=“0”。
R/W单元36一般通过比较存储单元阈值电压和一对MSB读取阈值V1A和V2A,或者一对MSB读取阈值V1B和V2B,读取MSB页。其阈值电压在V1A和V2A之间(或者在V1B和V2B)之间的存储单元被视为保持MSB=“0”,而其阈值电压低于阈值V1A或者高于阈值V2A(或者另一方面,低于阈值V1B或者高于阈值V2B)的存储单元被视为保持MSB=“1”。
实际上,分布60A…60D的形状和位置会随时间变化,并且从一组存储单元到另一组存储单元各不相同。读取阈值的精确布置对读取差错的概率有相当大的影响,尤其是当编程层次分布密置或者甚至部分重叠时更是如此。由于分布之间的边界区域随时间变化,并且在各组存储单元之间变化,因此一般应自适应地调整读取阈值位置。
读取操作数目减少的读取阈值搜索
如图2中所示,每个MSB读出操作涉及与一对读取阈值的比较。为了找出MSB读取阈值的最佳位置,一般必须评估多对候选的读取阈值,然后选择表现最好的一对读取阈值。
关于多对阈值的穷举搜索涉及其中感测存储单元阈值电压,并与每对阈值比较的大量读出操作,于是会招致相当大的等待时间和功耗。在这里说明的一些实施例中,在只进行少量的从存储单元32的读取操作的时候,存储器控制器40评估读取阈值的多个集合的读出性能。结果,减少了处理时间和功耗。
在本例中,存储器控制器-利用读取阈值对{V1A,V2A},和利用读取阈值对{V1B,V2B}-两次读取所述一组存储单元中的各个存储单元。根据这两个读出操作的结果,存储器控制器评估另外两对读取阈值-{V1A,V2B}和{V1B,V2A}的读出性能,而不利用这些读取阈值对,读取存储单元。从而,与{V1A,V2A},{V1B,V2B},{V1A,V2B}和{V1B,V2A}的常规读出相比,读出操作的数目减半。
这里把实际用于读取存储单元的读取阈值的集合(本例中,读取阈值对{V1A,V2A}和{V1B,V2B})称为阈值的显式集合,或者简称为显式阈值。这里把根据显式阈值计算的另外的阈值集合(本例中,读取阈值对{V1A,V2B}和{V1B,V2A})称为读取阈值的混合集合,或者简称为混合阈值。
在评估各个读取阈值对,包括显式阈值和混合阈值的读出性能之后,存储器控制器选择表现出最佳读出性能的一对读取阈值。选择的一对读取阈值(显式阈值或者混合阈值)被用于恢复保存在所述一组存储单元中的数据。
对2比特/单元存储器来说,公开的技术可以利用N次读取操作(显式阈值的N个集合)的读出结果来估计N2对读取阈值组合(混合阈值的N2个集合)的读出性能。当估计大量的阈值对时,或者当利用高阶MLC时,读取操作的数目的减少明显更高。
图2的例子证明这种技术的有效性。在这个例子中,两对显式阈值({V1A,V2A}和{V1B,V2B})未被最佳地布置在阈值电压分布之间的边界中。不过,混合对{V1B,V2A}的定位要好得多。即使实际上从未利用混合对{V1B,V2A}读取存储单元,存储器控制器也可根据显式阈值对{V1A,V2A}和{V1B,V2B}的读出结果,评估混合对{V1B,V2A}的读出性能。存储器控制器从而能够选择混合对{V1B,V2A}用于后续数据恢复。
在图2的例子中,存储器控制器40利用显式对({V1A,V2A}和{V1B,V2B})的读出结果来人为构成混合对({V1A,V2B}和{V1B,V2A})的读出结果,而不实际利用所述混合对读取存储单元。为此,存储器控制器利用一个或多个辅助阈值,读取存储单元。
在一些实施例中,LSB阈值64用作辅助阈值。辅助阈值64的读出结果(“0”或“1”)在图中被表示成LSB_PAGE,并被表示成存储单元阈值电压落入其中的VTH区间的函数。
显式对{V1A,V2A}的MSB读出结果被表示在下一行MSB_PAGE_A上。下一行MSB_PAGE_B表示显式对{V1B,V2B}的读出结果。注意在两个区间(V1A<VTH<V1B和V2A<VTH<V2B)中,在显式对的读出结果之间存在不一致。
在这个实施例中,存储器控制器利用辅助阈值64的读出结果,根据两对显式读取阈值的读出结果,构成混合对{V1B,V2A}的人为读出结果。混合对{V1B,V2A}的人为读出结果示于图2的底部,标记为MSB_PAGE_OPT。当显式对的相应读出结果一致(即,都为“0”或者都为“1”)时,存储器控制器把混合对的对应读出结果设定为该值。当显式对的相应读出结果不一致时,存储器控制器根据辅助阈值的对应读出结果,把混合对的对应读出结果设定为这些值之一。
由于比特到编程层次的映射(上面的表1),LSB_PAGE的比特指示哪些存储单元具有落在阈值64的左手侧((LSB_PAGE=“1”)的阈值电压,和哪些存储单元具有落在阈值64的右手侧((LSB_PAGE=“0”)的阈值电压。
从而,为了重新产生{V1B,V2A}的读出结果,如果对应的LSB_PAGE读出结果为“0”,那么存储器控制器把MSB_PAGE_OPT的读出结果设定为MSB_PAGE_A的对应读出结果(模仿与V2A的比较)。另一方面,如果LSB_PAGE读出结果为“1”,那么存储器控制器把MSB_PAGE_OPT的读出结果设定为MSB_PAGE_B的对应读出结果(模仿与V1B的比较)。
上述逻辑重构通过利用混合阈值{V1B,V2A},读取所述一组存储单元中的各个存储单元,会产生的准确读出结果(除了读取噪声的可能影响之外),而不利用该混合对,实际读取存储单元。可按照类似方式,构成第二混合对{V1A,V2B}的人为读出结果。
注意这种技术对定位LSB阈值64的精度不敏感,因为接近LSB阈值64的阈值电压远离任意MSB阈值(于是,它们的比特值在MSB_PAGE_A和MSB_PAGE_B中相同)。从该图中可以看出,阈值64未被最佳地布置在编程层次60B和60C之间。然而,人为MSB_PAGE_OPT读出结果的构成仍然精确。
公开的技术可以按照类似方式,和不止两个读取阈值的集合一起使用。例如,考虑利用以下比特映射和读取阈值配置,保存LSB页,中间有效位(CSB)页和MSB页的一组3比特/单元存储单元:
表2:例证的3比特/单元配置
在这个例子中,利用表示为{RV31,RV33,RV35,RV37}的4个MSB阈值的集合,读取MSB页。假定利用阈值的两个显式集合{V1A,V2A,V3A,V4A}和{V1B,V2B,V3B,V4B},两次读取MSB页。为了构成混合集合{V1A,V2B,V3A,V4B}的读出结果,存储器控制器可首先读取LSB页和CSB页(其中如上所述,读取阈值的低精度就足够了)。随后,LSB和CSB的值(辅助阈值)确定对每个存储单元来说,哪一个是相关的MSB阈值(V1,V2,V3或V4)。
按照LSB和CSB比特的值,存储器控制器选择源于第一MSB读取操作的比特,或者源于第二MSB读取操作的比特。例如,如果存储单元具有为“0”的LSB和CSB比特,那么相关阈值为RV35→V3。由于为了使用V3A,存储器控制器需要人为读出结果,因此存储器控制器选择第一读出的结果。如果存储单元具有为“0”的LSB比特和为“1”的CSB比特,那么相关阈值为RV37→V4。由于为了使用V4B,存储器控制器需要人为读出结果,因此选择第二读出的结果。
在一些实施例中,各个显式集合中的读取阈值是唯一的。不过,在备选实施例中,多个显式和/或混合集合可以使用给定的阈值。
注意,在许多实际情况下,辅助读取阈值不需要额外的读取操作。例如在图2的结构中,用于恢复LSB页数据的正常LSB读出可被重新用作辅助阈值读出。在3比特/单元例子中,正常LSB和CSB读出操作也可被重新用作辅助阈值读出。
图3是按照本发明的备选实施例,示意地图解说明选择最佳读取阈值的方案的示图。在上面的图2的方案中,存储器控制器利用一个或多个辅助阈值,产生混合阈值集合的人为读出结果。另一方面,在图3的方案中,读取阈值的显式集合之一充当辅助阈值。
在图3的例子中,存储器控制器40利用表示为{V1_0,V2_0},{V1A,V2A}和{V1B,V2B}的读取阈值的3个显式集合,读取所述一组存储单元,以分别产生表示为PAGE_0,PAGE_A和PAGE_B的3页。根据这3个读取操作的读出结果,存储器控制器重新产生阈值对的所有9种可能组合的人为读出结果(即,产生6个混合阈值对的6种人为读出结果)。
在这个实施例中,存储器控制器利用显式对之一(在这个例子中,{V1_0,V2_0})作为辅助阈值。例如,如果不能获得LSB页,那么可以使用这种技术。这种技术的一个优点在于它利用辅助阈值,消除了对专用读取操作的需要,而是改为重新使用显式对之一的读出结果。结果,能够获得更好的吞吐量。
下面的说明假定选择显式阈值之中的最低者作为辅助阈值,即,V1_0≤V1A,V1_0≤V1B,V2_0≤V2A和V2_0≤V2B。不过在备选实施例中,可以选择显式阈值之中的最高者作为辅助阈值。
在一个实施例中,为了人为产生混合对{V1B,V2A}的读出结果(图中表示的PAGE_OPT),存储器控制器应用以下逻辑:
·对其中PAGE_0=“0”的存储单元来说,把PAGE_OPT中的对应读出结果设定为PAGE_B的读出结果。
·对其中PAGE_0=“1”的存储单元来说,把PAGE_OPT中的对应读出结果设定为PAGE_A的读出结果。
为了人为产生混合出自{V1_0,V2_0}的阈值和出自{V1A,V2A}的阈值的混合对的读出结果,存储器控制器可仍然利用PAGE_0({V1_0,V2_0}的读出结果)作为辅助阈值。从而,可以使用3个读出操作{V1_0,V2_0},{V1A,V2A}和{V1B,V2B}产生读出结果的总共9个集合。
作为另一个例子,考虑其中存储器控制器产生4种可能组合的2个显式读取操作的情况。存储器控制器可利用{V1_0,V2_0}和{V1A,V2A},读取所述一组存储单元,并利用PAGE_0作为辅助阈值。在这种情况下,阈值应被排序(不失一般性),使得V1_0≤V1A和V2_0≤V2A。
图4是按照本发明的实施例,示意地图解说明选择最佳读取阈值的方法的流程图。该方法始于在第一读出步骤70,存储器控制器40利用第一显式读取阈值,读取一组模拟存储单元32。在第二读出步骤74,存储器控制器利用第二显式读取阈值,重新读取相同的一组存储单元。
在辅助读出步骤78,存储器控制器利用一个或多个辅助阈值,读取所述一组存储单元。如上所述,存储器控制器可以重新使用显式读出操作(例如在步骤70或74)之一作为辅助读出操作。
在混合结果生成步骤82,存储器控制器利用显式读取阈值的读出结果,和辅助阈值的对应读出结果,人为产生读取阈值的一个或多个混合集合的读出结果。阈值的每个混合集合包含选自第一读取阈值的至少一个阈值,和选自第二读取阈值的至少一个阈值。
在最佳阈值选择步骤86,通过利用多个读出结果,存储器控制器40评估读取阈值的各个显式集合和混合集合的读出性能。通常,存储器控制器选择具有最佳读出性能的读取阈值集合(显式或混合),并把该集合用于恢复保存在所述一组存储单元中的数据。
在各个实施例中,存储器控制器40可以用不同的方式,评估读出性能,并利用不同的标准选择表现最佳的读取阈值集合。在一些实施例中,用由一组奇偶校验方程定义的纠错码(ECC),编码保存在所述一组存储单元中的数据。ECC可包含例如低密度奇偶检验(LDPC)码,或者任何其它适当类型的ECC。
在一些实施例中,对于读出结果的每个集合,存储器控制器计算满足的奇偶检验方程的数目(计数)。产生具有最大计数的满足奇偶校验方程的读出结果的读取阈值集合(显式或混合)被视为表现最佳的集合。在上面引用的美国专利申请公开2009/0199074中论述了根据满足的奇偶检验方程的数目,设定读取阈值的其它方面,这种标准也称为“校正子和”(校正子向量的权重,即,校正子等于1而不是等于0的位置之和)。使校正子和最小化等同于找出具有最大数目的满足奇偶校验方程的读出结果。
在备选实施例中,存储器控制器可尝试解码读取阈值的每个集合(显式或混合集合)的读出结果(读取的或者人为再生的读出结果)的ECC。解码读出结果的给定集合的ECC的成功或失败用作对应读取阈值集合的读出性能的指示。在例证的流程中,存储器控制器进行测试读取阈值的额外集合,包括显式和混合集合的迭代处理,直到成功解码ECC为止。
在其它实施例中,存储器控制器可开始解码读取阈值的每个集合(显式或混合集合)的读出结果(读取的或者人为再生的读出结果)的ECC。当解码给定读取阈值集合的ECC时,存储器控制器可以利用ECC解码处理的某个中间结果,作为对应读取阈值集合的读出性能的指示。
例如,考虑其中用Bose-Chaudhuri-Hocquenghem(BCH)码,编码保存的数据的结构。在典型的BCH解码处理中,解码器计算错误定位多项式(ELP),随后通过求出ELP的根,确定错误的位置。可在BCH解码处理中提早获得的ELP的秩指示代码字中的差错数。在这样的实施例中,存储器控制器可以利用ELP的秩作为读取阈值的读出性能的指示。存储器控制器可以从该阶段出发。另一方面,存储器控制器可以继续评估读取阈值的另一个集合,而不结束解码处理,即使先前的读出结果可解码。
作为另一个例子,ECC可包含Turbo乘积码(TPC),其中数据被排列成矩阵,每行和每列用诸如Hamming码之类的某个辅助ECC单独编码。在这些实施例中,存储器控制器可以只对矩阵的各行和各列的子集解码辅助码,并利用解码结果作为读取阈值的读出性能的指示。
替代TPC,其它各种ECC也可被看作包含多个分量ECC的合成ECC。加以必要的变更,公开的技术可以和任何这样的ECC一起使用。例如,可以不止二维地,例如三维地定义乘积码。在例证的三维码中,数据被排列成k·k·k比特的立方体,利用分量码,把每一维中的每k比特编码成n比特,从而产生n·n·n-比特代码字。二维乘积码的另一种可能的普遍化是除了对各行和各列编码之外,对作为虚拟第三维的数据矩阵的对角线编码。作为另一个例子,通过制止传送或保存部分的数据比特,可缩短乘积码。
在另一个实施例中,公开的技术可以和广义低密度奇偶校验(G-LDPC)码一起使用,G-LDPC码也可被看作由分量码构成的合成ECC。G-LDPC码可用Tanner图描述。Tanner图的每个校验节点代表ECC(比如Hamming、BCH、RS、或者卷积码),而不是代表简单的奇偶校验方程。乘积码可被看作G-LDPC的特殊情况-例如,这种情况下的“广义检验码”是Hamming码奇偶校验矩阵。这种G-LDPC码的Tanner图具有在一侧的所有n2比特节点,和在相反一侧的2n个校验节点。每个校验节点对应于矩阵代码字的一行或一列。例如,row1的所有比特可以连接到广义校验节点,意味它们都是有效的Hamming代码字。
公开的技术可以和G-LDPC码一起使用:根据对广义校验节点的一部分的解码,能够进行参数估计。
另一方面,存储器控制器40可通过估计相关存储单元的存储值的累积分布函数(CDF),评估读取阈值的给定集合的性能。例如,存储器控制器可以计数给定一组存储单元中的“1”读出结果的数目,并选择使该数目最接近于预定参考数目的读取阈值。在例如美国专利申请公开2010/0091535中,披露了基于CDF的读取阈值调整方法的例子,该申请在此引为参考。
另一方面,存储器控制器40可以利用任何其它适当的标准,评估读取阈值的各个集合的读出性能,并选择表现最佳的读取阈值集合。
当使用利用校正子计算解码的ECC时,存储器控制器可尝试根据读取阈值的某个混合集合,解码ECC,并利用校正子,计算差错向量。如果成功,那么存储器控制器可重新生成读出结果,并使它们和差错向量相结合,从而产生纠错后的读出结果。
通常,即使可根据读出结果的前一集合来解码数据,存储器控制器也可继续评估另外的读取阈值集合(显式或混合集合),以便找出表现最佳的读取阈值集合。在一个例证实施例中,可以利用未必最佳的读取阈值集合,读取和解码当前页,而最佳的读取阈值将用于未来的读取操作。
在各个实施例中,一旦存储器控制器识别出表现最佳的读取阈值集合,它将尝试根据利用该集合获得的读出结果,解码ECC。存储器控制器使用的解码处理可包括硬解码处理或者软解码处理。在一些实施例中,软解码处理可涉及利用布置在表现最佳的集合附近的读取阈值的额外读取操作。不过另一方面,软解码处理可以仅仅利用表现最佳的阈值集合,对硬输入操作,例如,对硬读出结果操作。
在各个实施例中,一旦找出表现最佳的读取阈值集合,存储器控制器就可根据利用这些阈值获得的读出结果来恢复数据,如果它们存在的话。另一方面,存储器控制器可利用表现最佳的读取阈值,读取存储单元,随后根据读出结果恢复数据。此外,存储器控制器可以利用布置在表现最佳的读取阈值附近的读取阈值,进行一个或多个额外的读取操作,并利用所述额外的读取操作的读出结果,恢复数据。
通过组合来自不同读取操作的局部ECC校正子的有效读取阈值搜索
下面的说明给出根据显式读取操作的读出结果,产生读取阈值的混合集合的人为读出结果的备选技术。所公开的技术有时好于上面的图2-4的技术,例如因为它不需要保存利用各个显式读取阈值而获得的读出结果的完全集合。在其中显式读取阈值的数目(从而,读出结果的数目)较高的高阶MLC(例如,3或4比特/单元)中,存储空间的这种减少尤其重要。
公开的技术适合于和评估每个阈值集合的读出性能的各种标准一起使用。在一些实施例中,公开的技术可以和以数据比特的线性函数的非线性处理为基础的标准一起使用。例如,上面说明的校正子和标准就是这样的标准,因为ECC校正子是数据比特的线性函数,但是校正子中的“1”值的数目是校正子的非线性函数。
上面的段落中的术语“线性”指的是:利用有限域代数,进行校正子计算,在两个向量之和(在有限域内)的校正子等于各个向量的校正子之和的意义上,校正子在有限域中是线性的。另一方面,利用自然数的代数计算校正子和,其中有限域的二进制符号被看作自然数(0或1)。在关于两个比特向量之和(在有限域内),计算校正子并不等同于相加这两个单独向量的校正子和的意义上,校正子和是非线性的。这里的加法和乘法的符号酌情指的是有限域代数,或者指的是自然代数或实代数。
考虑诸如上面在图2和3中所示的具有4个编程层次的一组2比特/单元存储单元,并假定存储器控制器40利用MSB读取阈值的各个显式集合,读取所述一组存储单元。在一些实施例中,代替保存显式读取阈值的每个集合的读出结果的整个向量,存储器控制器40只计算和保存两个局部ECC校正子。
令H表示用于编码保存在所述一组存储单元中的数据的ECC的奇偶校验矩阵,令x表示利用读取阈值的某个显式集合的MSB读出结果的向量。x的完整校正子被定义为s=H·x。如果x是有效ECC代码字,那么s=H·x=0。否则,s的值表示由x满足的奇偶校验方程的数目。一般,校正子中的非零比特的数目指示未被满足的方程的数目。
读出结果x的两个局部校正子被定义为s1=H·x1和s2=H·x2,其中x1表示其LSB=“0”同时使剩余比特为零的存储单元的MSB值的向量,x2表示其LSB=“1”同时使剩余比特为零的存储单元的MSB值的向量。可以证明局部校正子之和等于完整校正子,因为s=H·x=H·x1+H·x2。
一般来说,对于利用读取阈值的某个显式集合产生的读出结果的每个向量x,存储器控制器40把所述一组存储单元中的各个存储单元分成两个子集-对其来说LSB=“0”的一个子集,和对其来说LSB=“1”的另一个子集。存储器控制器可通过用LSB阈值,比如上面图2中的阈值64,读取所述一组存储单元,来划分存储单元。另一方面,存储器控制器可利用与上面图3的方案相应的MSB读取操作,或者利用任何其它适当的方法,把存储单元分成两个子集。
利用这种划分,存储器控制器产生向量x1和x2,随后计算局部校正子s1=H·x1和s2=H·x2。在这个阶段,存储器控制器可以丢弃原始读出结果(x,x1和x2),而只保留局部校正子。一般对于读取阈值的每个显式集合,重复该处理。
存储器控制器可以利用保存的局部校正子来评估读取阈值的各个混合集合的完整校正子,所述混合集合是利用出自不同显式集合的读取阈值的组合形成的。
例如,考虑两个显式MSB读取操作,利用读取阈值{V1A,V2A}的第一读取操作和利用读取阈值{V1B,V2B}的第二读取操作。对于第一读取操作,存储器控制器计算和保存表示为s1A和s2A的两个局部校正子。对于第二读取操作,存储器控制器计算和保存表示为s1B和s2B的两个局部校正子。存储器控制器随后通过计算s1A+s2B,计算混合集合{V1A,V2B}的完整校正子。类似地,混合集合{V1B,V2A}的完整校正子由s1B+s2A给出。
由于完整校正子(局部校正子之和)表示满足的奇偶检验方程的数目,因此通过计算与这些读取阈值相关的相应完整校正子,存储器控制器可评估读取阈值的各个(显式或混合)集合的读出性能。通过合计关于显式读取阈值计算的适当局部校正子,可以计算这些完整校正子。一般来说,存储器控制器选择具有最小的完整校正子和的读取阈值的(显式或混合)集合。选择的读取阈值集合随后用于解码保存的数据。
保存局部校正子,而不是原始读出结果可显著节省存储空间。因为校正子长度可以与ECC冗余大小相比,它一般约为数据页大小的3-10%。
虽然关于2比特/单元存储器中的MSB读出的情况,说明了公开的技术,不过作出这种选择只是为了概念的明晰性起见。在备选实施例中,该技术可以和任何其它适当的存储器配置一起使用。例如,对于3比特/单元存储器,对于读取阈值的每个显式集合,计算和保存4个局部校正子。
图5是按照本发明的实施例,示意地图解说明选择最佳读取阈值的方法的流程图。虽然这里说明的实施例涉及局部校正子,不过这种相加读取操作直到满足某种标准为止的技术并不局限于用在局部校正子上,它可类似地应用于基于校正子和的方法和上面说明的其它方法。
该方法始于在命令输入步骤90,存储器控制器40从主机52接受MSB读取命令。MSB读取命令请求从指定的一组存储单元读出MSB页。
在LSB读出步骤94,存储器控制器从指定的一组存储单元中读取LSB页。如上所述,存储器控制器利用LSB页的读出结果把所述一组存储单元中的各个存储单元分成两个子集。
在图5的每遍循环中,在MSB读出步骤98,存储器控制器40利用MSB读取阈值的另外的显式集合,读取所述一组存储单元。存储器控制器计算并保存显式读取阈值的新集合的局部校正子。
在校正子和最小化步骤102,存储器控制器找出读取阈值的具有最小的完整校正子和(局部校正子之和)的(显式或混合)集合。该集合是利用到目前为止获得的显式读出结果,能够实现的表现最佳的集合。
在标准检查步骤106,存储器控制器检查具有到目前为止获得的最小校正子和的完整校正子是否满足预定标准。例如,存储器控制器可以比较获得的最小校正子和与容许的上限,并核实表现最佳的校正子的校正子和是否小于该上限。
如果(完整)校正子的最小校正子和足够小,那么在输出步骤110,存储器控制器输出表现最佳的读取阈值集合(具有最小校正子和的相关的读取阈值集合),然后该方法终止。
否则,在终止检查步骤114,存储器控制器检查是否达到读取操作的最大容许数(显式读取阈值集合的最大容许数)。如果达到了读取操作的最大容许数,那么在步骤110,存储器控制器输出表现最佳的读取阈值集合,然后该方法终止。否则,该方法返回上面的步骤98,在步骤98,存储器控制器利用读取阈值的另外的显式集合,重新读取所述一组存储单元。
在各个备选实施例中,存储器控制器可以决定要使用多少个显式集合,和应评估哪些混合集合(出自显式集合的读取阈值的组合)。不一定需要测试所有可能的组合。
公开的技术并不局限于LDPC码或者任何特定类型的ECC。例如,当用利用校正子计算解码的其它类型的ECC,例如Bose-Chaudhuri-Hocquenghem(BCH),Reed-Solomon(RS)或者Hamming码编码保存的数据时,可以使用这里说明的方法和系统。
当执行这里说明的方法任意之一时,存储器控制器40可把利用读取阈值的多个显式集合的从存储单元的读出结合在单个读取命令中。例如,考虑3比特/单元存储设备,它支持利用4个读取阈值,读取一组存储单元的MSB读取命令。存储器控制器可以利用单个MSB读取命令,评估CSB读取阈值的两个显式集合(每个需要两个阈值)。在转让给本专利申请的受让人,并且其公开内容在此引为参考的美国专利8,068,360中论述了利用多阈值命令的读出的其它方面。
虽然这里说明的实施例主要致力于数据存储应用和存储设备,不过这里说明的方法和系统也可用在其它应用中,比如用在数字通信系统的接收器中。
从而要理解上面说明的实施例只是作为例子列举的,本发明并不局限于上面特别表示和说明的内容。相反,本发明的范围包括上面说明的各个特征的组合和子组合,以及当阅读上面的说明时,本领域的技术人员会想到的,和现有技术中未公开的所述各个特征的各种变化和修改。除了以与在本说明书中明确或隐含地作出的定义抵触的方式,在这些引用的文献中定义的任何术语之外,本专利申请中引为参考的文献应被视为本申请的组成部分,只应考虑本说明书中的定义。
Claims (20)
1.一种方法,包括:
把数据保存在一组模拟存储单元中;
利用第一读取阈值读取所述组中的存储单元从而产生第一读出结果;
利用第二读取阈值重新读取所述组中的存储单元从而产生第二读出结果;
定义包括第一读取阈值至少之一和第二读取阈值至少之一的第三读取阈值;
根据第一读出结果和第二读出结果,评估第一、第二和第三读取阈值的读出性能;和
根据评估的读出性能,选择第一、第二或第三读取阈值,以及利用选择的读取阈值进行数据恢复。
2.按照权利要求1所述的方法,其中进行数据恢复包括下述至少之一:
恢复保存在所述一组存储单元中的数据;和
恢复保存在不同的一组存储单元中的数据。
3.按照权利要求1所述的方法,其中评估读出性能包括根据第一读出结果和第二读出结果,获得通过利用第三读取阈值读取所述组中的存储单元理应产生的第三读出结果,并根据第三读出结果估计读出性能。
4.按照权利要求3所述的方法,其中获得第三读出结果包括:
根据利用一个或多个辅助读取阈值从所述组的读出,把所述组中的存储单元分成第一子集和第二子集;以及
通过选择从第一子集中的存储单元读取的第一读出结果,和从第二子集中的存储单元读取的第二读出结果,形成第三读出结果。
5.按照权利要求4所述的方法,其中辅助读取阈值包括读取阈值的第一集合或第二集合。
6.按照权利要求1所述的方法,其中利用纠错码(ECC)编码保存的数据,其中评估读出性能包括:
把所述组中的存储单元分成第一子集和第二子集;
根据从第一子集中的存储单元读取的第一读出结果,计算ECC的第一局部校正子,同时使从第二子集中的存储单元读取的第一读出结果为零;
根据从第二子集中的存储单元读取的第二读出结果,计算ECC的第二局部校正子,同时使从第一子集中的存储单元读取的第二读出结果为零;
通过相加第一和第二局部校正子,计算与通过利用第三读取阈值读取所述组中的存储单元理应产生的第三读出结果对应的ECC的第三校正子;和
通过比较关于第一读出结果计算的第一校正子、关于第二读出结果计算的第二校正子、和第三校正子,评估读出性能。
7.按照权利要求6所述的方法,其中把所述组中的存储单元分成第一子集和第二子集包括根据利用一个或多个辅助读取阈值从所述组的读出,定义第一子集和第二子集。
8.按照权利要求1所述的方法,其中利用由一组奇偶校验方程定义的纠错码(ECC)来编码保存的数据,以及其中评估读出性能包括计算由第一读出结果、第二读出结果、和通过利用第三读取阈值读取所述组中的存储单元理应产生的第三读出结果满足的奇偶校验方程的相应计数。
9.按照权利要求1所述的方法,其中利用纠错码(ECC)来编码保存的数据,以及其中评估读出性能包括评估根据第一、第二和第三读取阈值解码ECC的成功或失败。
10.按照权利要求1所述的方法,其中利用纠错码(ECC)来编码保存的数据,以及其中评估读出性能包括评估根据第一、第二和第三读取阈值解码ECC的解码处理的中间结果。
11.一种设备,包括:
存储器,所述存储器包括多个模拟存储单元;和
存储电路,所述存储电路被配置成:把数据保存在一组模拟存储单元中;利用第一读取阈值读取所述组中的存储单元从而产生第一读出结果;利用第二读取阈值重新读取所述组中的存储单元从而产生第二读出结果;定义包括第一读取阈值至少之一和第二读取阈值至少之一的第三读取阈值;根据第一读出结果和第二读出结果,评估第一、第二和第三读取阈值的读出性能;根据评估的读出性能,选择第一、第二或第三读取阈值,以及利用选择的读取阈值进行数据恢复。
12.按照权利要求11所述的设备,其中存储电路被配置成通过执行下述至少之一,进行数据恢复:
恢复保存在所述一组存储单元中的数据;和
恢复保存在不同的一组存储单元中的数据。
13.按照权利要求11所述的设备,其中存储电路被配置成根据第一读出结果和第二读出结果,获得通过利用第三读取阈值读取所述组中的存储单元理应产生的第三读出结果,并根据第三读出结果估计读出性能。
14.按照权利要求13所述的设备,其中存储电路被配置成根据利用一个或多个辅助读取阈值从所述组的读出,把所述组中的存储单元分成第一子集和第二子集,和通过选择从第一子集中的存储单元读取的第一读出结果,和从第二子集中的存储单元读取的第二读出结果,形成第三读出结果。
15.按照权利要求14所述的设备,其中辅助读取阈值包括读取阈值的第一集合或第二集合。
16.按照权利要求11所述的设备,其中利用纠错码(ECC)编码保存的数据,以及其中存储电路被配置成:把所述组中的存储单元分成第一子集和第二子集;根据从第一子集中的存储单元读取的第一读出结果,计算ECC的第一局部校正子,同时使从第二子集中的存储单元读取的第一读出结果为零;根据从第二子集中的存储单元读取的第二读出结果,计算ECC的第二局部校正子,同时使从第一子集中的存储单元读取的第二读出结果为零;通过相加第一和第二局部校正子,计算与通过利用第三读取阈值读取所述组中的存储单元理应产生的第三读出结果对应的ECC的第三校正子;和通过比较关于第一读出结果计算的第一校正子、关于第二读出结果计算的第二校正子、和第三校正子,评估读出性能。
17.按照权利要求16所述的设备,其中存储电路被配置成根据利用一个或多个辅助读取阈值从所述组的读出,定义第一子集和第二子集。
18.按照权利要求11所述的设备,其中利用由一组奇偶校验方程定义的纠错码(ECC)来编码保存的数据,以及其中存储电路被配置成通过计算由第一读出结果、第二读出结果、和通过利用第三读取阈值读取所述组中的存储单元理应产生的第三读出结果满足的奇偶校验方程的相应计数,来评估读出性能。
19.按照权利要求11所述的设备,其中利用纠错码(ECC)来编码保存的数据,以及其中存储电路被配置成通过评估根据第一、第二和第三读取阈值解码ECC的成功或失败,来评估读出性能。
20.按照权利要求11所述的设备,其中利用纠错码(ECC)来编码保存的数据,以及其中存储电路被配置成通过评估根据第一、第二和第三读取阈值解码ECC的解码处理的中间结果,来评估读出性能。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161580673P | 2011-12-28 | 2011-12-28 | |
US61/580,673 | 2011-12-28 | ||
US13/595,571 | 2012-08-27 | ||
US13/595,571 US8773904B2 (en) | 2011-12-28 | 2012-08-27 | Optimized threshold search in analog memory cells |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103186490A true CN103186490A (zh) | 2013-07-03 |
CN103186490B CN103186490B (zh) | 2015-12-23 |
Family
ID=47522270
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210583601.0A Expired - Fee Related CN103186490B (zh) | 2011-12-28 | 2012-12-28 | 模拟存储单元中的优化的阈值搜索 |
Country Status (8)
Country | Link |
---|---|
US (1) | US8773904B2 (zh) |
EP (1) | EP2610874A1 (zh) |
JP (1) | JP5620973B2 (zh) |
KR (1) | KR101428891B1 (zh) |
CN (1) | CN103186490B (zh) |
BR (1) | BR102012033346A2 (zh) |
TW (1) | TWI511146B (zh) |
WO (1) | WO2013101363A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106484318A (zh) * | 2015-09-01 | 2017-03-08 | Hgst荷兰公司 | 存储系统的基于服务级的控制 |
CN109716439A (zh) * | 2016-09-16 | 2019-05-03 | 美光科技公司 | 用于以电流积分感测产生概率信息的设备及方法 |
CN110321071A (zh) * | 2018-03-28 | 2019-10-11 | 爱思开海力士有限公司 | 存储器系统、其操作方法和包括该存储器系统的计算系统 |
CN110797069A (zh) * | 2018-08-01 | 2020-02-14 | 群联电子股份有限公司 | 电压调整方法、存储器控制电路单元以及存储器存储装置 |
CN114724602A (zh) * | 2022-03-07 | 2022-07-08 | 北京得瑞领新科技有限公司 | 低密度校验码解码能力的验证方法、装置及计算机设备 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8358542B2 (en) | 2011-01-14 | 2013-01-22 | Micron Technology, Inc. | Methods, devices, and systems for adjusting sensing voltages in devices |
US9530515B2 (en) | 2013-03-13 | 2016-12-27 | Sandisk Technologies Llc | Determining read voltages for reading memory |
US9342402B1 (en) | 2014-01-28 | 2016-05-17 | Altera Corporation | Memory interface with hybrid error detection circuitry for modular designs |
US9911477B1 (en) | 2014-04-18 | 2018-03-06 | Altera Corporation | Memory controller architecture with improved memory scheduling efficiency |
US20170046224A1 (en) * | 2014-04-25 | 2017-02-16 | Empire Technology Development Llc | Storing data in storage devices |
US9811263B1 (en) | 2014-06-30 | 2017-11-07 | Altera Corporation | Memory controller architecture with improved memory scheduling efficiency |
KR101590725B1 (ko) | 2014-10-13 | 2016-02-02 | 포항공과대학교 산학협력단 | 멀티 레벨 상 변화 메모리의 데이터 코딩 장치 및 방법 |
US20180054807A1 (en) | 2014-12-30 | 2018-02-22 | Lg Electronics Inc. | Method and apparatus for allocating recources for bi-directional transmission in wireless communication system |
CN107646178A (zh) * | 2015-03-10 | 2018-01-30 | 科锐安特股份有限公司 | 用于管理数据帧传送的方法和设备 |
US9779818B2 (en) | 2015-07-09 | 2017-10-03 | Apple Inc. | Adaptation of high-order read thresholds |
US9697075B2 (en) | 2015-09-08 | 2017-07-04 | Apple Inc. | Efficient search for optimal read thresholds in flash memory |
US10193574B1 (en) * | 2016-05-19 | 2019-01-29 | Apple Inc. | Efficient syndrome calculation in processing a GLDPC code |
JP6673021B2 (ja) * | 2016-05-31 | 2020-03-25 | 富士通株式会社 | メモリおよび情報処理装置 |
US10388394B2 (en) | 2017-07-25 | 2019-08-20 | Apple Inc. | Syndrome weight based evaluation of memory cells performance using multiple sense operations |
US10908986B2 (en) | 2018-04-02 | 2021-02-02 | Sandisk Technologies Llc | Multi-level recovery reads for memory |
JP2020107376A (ja) | 2018-12-27 | 2020-07-09 | キオクシア株式会社 | メモリシステム |
TWI701674B (zh) * | 2019-12-30 | 2020-08-11 | 華邦電子股份有限公司 | 記憶體裝置及其資料讀取方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090043951A1 (en) * | 2007-08-06 | 2009-02-12 | Anobit Technologies Ltd. | Programming schemes for multi-level analog memory cells |
CN101536108A (zh) * | 2006-11-06 | 2009-09-16 | 马维尔国际贸易有限公司 | 用于存储单元的自适应读写系统和方法 |
US7697326B2 (en) * | 2006-05-12 | 2010-04-13 | Anobit Technologies Ltd. | Reducing programming error in memory devices |
US20100091535A1 (en) * | 2007-03-12 | 2010-04-15 | Anobit Technologies Ltd | Adaptive estimation of memory cell read thresholds |
US20110161775A1 (en) * | 2009-12-24 | 2011-06-30 | Hanan Weingarten | System and method for setting a flash memory cell read threshold |
US8000135B1 (en) * | 2008-09-14 | 2011-08-16 | Anobit Technologies Ltd. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3976839B2 (ja) | 1996-07-09 | 2007-09-19 | 株式会社ルネサステクノロジ | 不揮発性メモリシステムおよび不揮発性半導体メモリ |
US7821826B2 (en) * | 2006-10-30 | 2010-10-26 | Anobit Technologies, Ltd. | Memory cell readout using successive approximation |
WO2008053472A2 (en) | 2006-10-30 | 2008-05-08 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
US7900102B2 (en) | 2006-12-17 | 2011-03-01 | Anobit Technologies Ltd. | High-speed programming of memory devices |
US7782674B2 (en) * | 2007-10-18 | 2010-08-24 | Micron Technology, Inc. | Sensing of memory cells in NAND flash |
US8068360B2 (en) | 2007-10-19 | 2011-11-29 | Anobit Technologies Ltd. | Reading analog memory cells using built-in multi-threshold commands |
US8000141B1 (en) * | 2007-10-19 | 2011-08-16 | Anobit Technologies Ltd. | Compensation for voltage drifts in analog memory cells |
US8527819B2 (en) * | 2007-10-19 | 2013-09-03 | Apple Inc. | Data storage in analog memory cell arrays having erase failures |
US8156398B2 (en) | 2008-02-05 | 2012-04-10 | Anobit Technologies Ltd. | Parameter estimation based on error correction code parity check equations |
JP5349256B2 (ja) | 2009-11-06 | 2013-11-20 | 株式会社東芝 | メモリシステム |
KR101618311B1 (ko) | 2010-02-08 | 2016-05-04 | 삼성전자주식회사 | 플래시 메모리 장치 및 그것의 읽기 방법 |
TWI447733B (zh) | 2010-04-14 | 2014-08-01 | Phison Electronics Corp | 計算補償電壓與調整門檻值電壓之方法及記憶體裝置與控制器 |
-
2012
- 2012-08-27 US US13/595,571 patent/US8773904B2/en not_active Expired - Fee Related
- 2012-11-19 WO PCT/US2012/065765 patent/WO2013101363A1/en active Application Filing
- 2012-11-22 EP EP12193775.9A patent/EP2610874A1/en not_active Withdrawn
- 2012-12-27 JP JP2012289484A patent/JP5620973B2/ja not_active Expired - Fee Related
- 2012-12-27 BR BR102012033346-5A patent/BR102012033346A2/pt not_active IP Right Cessation
- 2012-12-27 TW TW101150660A patent/TWI511146B/zh not_active IP Right Cessation
- 2012-12-27 KR KR1020120154383A patent/KR101428891B1/ko active IP Right Grant
- 2012-12-28 CN CN201210583601.0A patent/CN103186490B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7697326B2 (en) * | 2006-05-12 | 2010-04-13 | Anobit Technologies Ltd. | Reducing programming error in memory devices |
CN101536108A (zh) * | 2006-11-06 | 2009-09-16 | 马维尔国际贸易有限公司 | 用于存储单元的自适应读写系统和方法 |
US20100091535A1 (en) * | 2007-03-12 | 2010-04-15 | Anobit Technologies Ltd | Adaptive estimation of memory cell read thresholds |
US20090043951A1 (en) * | 2007-08-06 | 2009-02-12 | Anobit Technologies Ltd. | Programming schemes for multi-level analog memory cells |
US8000135B1 (en) * | 2008-09-14 | 2011-08-16 | Anobit Technologies Ltd. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US20110161775A1 (en) * | 2009-12-24 | 2011-06-30 | Hanan Weingarten | System and method for setting a flash memory cell read threshold |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106484318A (zh) * | 2015-09-01 | 2017-03-08 | Hgst荷兰公司 | 存储系统的基于服务级的控制 |
CN109716439A (zh) * | 2016-09-16 | 2019-05-03 | 美光科技公司 | 用于以电流积分感测产生概率信息的设备及方法 |
CN109716439B (zh) * | 2016-09-16 | 2023-04-28 | 美光科技公司 | 用于以电流积分感测产生概率信息的设备及方法 |
CN110321071A (zh) * | 2018-03-28 | 2019-10-11 | 爱思开海力士有限公司 | 存储器系统、其操作方法和包括该存储器系统的计算系统 |
CN110321071B (zh) * | 2018-03-28 | 2023-07-04 | 爱思开海力士有限公司 | 存储器系统、其操作方法和包括该存储器系统的计算系统 |
CN110797069A (zh) * | 2018-08-01 | 2020-02-14 | 群联电子股份有限公司 | 电压调整方法、存储器控制电路单元以及存储器存储装置 |
CN110797069B (zh) * | 2018-08-01 | 2021-10-22 | 群联电子股份有限公司 | 电压调整方法、存储器控制电路单元以及存储器存储装置 |
CN114724602A (zh) * | 2022-03-07 | 2022-07-08 | 北京得瑞领新科技有限公司 | 低密度校验码解码能力的验证方法、装置及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
EP2610874A1 (en) | 2013-07-03 |
US20130170272A1 (en) | 2013-07-04 |
KR20130077914A (ko) | 2013-07-09 |
US8773904B2 (en) | 2014-07-08 |
JP2013145625A (ja) | 2013-07-25 |
JP5620973B2 (ja) | 2014-11-05 |
TW201342383A (zh) | 2013-10-16 |
TWI511146B (zh) | 2015-12-01 |
BR102012033346A2 (pt) | 2013-10-08 |
CN103186490B (zh) | 2015-12-23 |
KR101428891B1 (ko) | 2014-08-08 |
WO2013101363A1 (en) | 2013-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103186490B (zh) | 模拟存储单元中的优化的阈值搜索 | |
US8830746B2 (en) | Optimized threshold search in analog memory cells using separator pages of the same type as read pages | |
KR101674339B1 (ko) | 분류 코드를 사용한 소프트 데이터의 결정 | |
US9136879B2 (en) | Error correction coding over multiple memory pages | |
US8869008B2 (en) | Adaptation of analog memory cell read thresholds using partial ECC syndromes | |
US10388394B2 (en) | Syndrome weight based evaluation of memory cells performance using multiple sense operations | |
US9136001B2 (en) | Signal-to-Noise Ratio (SNR) estimation in analog memory cells based on optimal read thresholds | |
CN101601094A (zh) | 使用多个门限读取存储单元的方法 | |
US9159407B2 (en) | Soft readout from analog memory cells in the presence of read threshold errors | |
CN104750570B (zh) | 数据储存装置及其错误校正方法 | |
CN105793927B (zh) | 用于对数据进行编码和存储的方法和装置 | |
US10998920B1 (en) | Overcoming saturated syndrome condition in estimating number of readout errors | |
US9021334B2 (en) | Calculation of analog memory cell readout parameters using code words stored over multiple memory dies | |
US10635524B1 (en) | Soft-decision input generation for data storage systems | |
US9268629B2 (en) | Dual mapping between program states and data patterns | |
US11914887B2 (en) | Storage device and data accessing method using multi-level cell | |
US10560122B2 (en) | Memory system and method of controlling nonvolatile memory |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20151223 Termination date: 20211228 |
|
CF01 | Termination of patent right due to non-payment of annual fee |