CN101496110B - 存储设备中的失真估计和消除 - Google Patents
存储设备中的失真估计和消除 Download PDFInfo
- Publication number
- CN101496110B CN101496110B CN2007800261211A CN200780026121A CN101496110B CN 101496110 B CN101496110 B CN 101496110B CN 2007800261211 A CN2007800261211 A CN 2007800261211A CN 200780026121 A CN200780026121 A CN 200780026121A CN 101496110 B CN101496110 B CN 101496110B
- Authority
- CN
- China
- Prior art keywords
- voltage level
- cross
- memory cell
- analog memory
- data
- 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
- 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/5657—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 ferroelectric storage elements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Semiconductor Memories (AREA)
Abstract
一种用于操作存储器(28)的方法,包括将数据作为相应的第一电压电平存储在存储器的一组模拟存储单元(32)中。在存储所述数据之后,从相应的模拟存储单元读取第二电压电平。第二电压电平受到交叉耦合干扰的影响,该交叉耦合干扰导致第二电压电平不同于相应的第一电压电平。通过处理第二电压电平来估计对模拟存储单元之间的交叉耦合干扰进行量化的交叉耦合系数。使用所估计的交叉耦合系数,从所读取的第二电压电平重构存储在该组模拟存储单元中的数据。
Description
相关申请的交叉引用
本申请要求享有下列专利申请的权益:提交于2006年5月12日的美国临时专利申请60/747,106、提交于2006年11月28日的美国临时专利申请60/867,399、提交于2006年7月4日的美国临时专利申请60/806,533、提交于2006年9月27日的美国临时专利申请60/827,067、提交于2007年1月16日的美国临时专利申请60/885,024和提交于2007年1月24日的美国临时专利申请60/886,429,上述申请的公开内容在此以援引方式全部纳入本文中。
技术领域
本申请主要涉及存储设备,具体涉及用于对存储设备中的失真进行估计和补偿的方法和***。
背景技术
多种存储设备,例如闪存和动态随机存取存储器(DRAM),使用模拟存储单元阵列来存储数据。例如,在2003年4月在IEEE学报91卷第4期第489-502页由Bez等人发表的“Introduction to FlashMemory”中,描述了闪存设备,该文献在此处以援引方式全部纳入本文。
在此类存储设备中,每个模拟存储单元通常包括一个晶体管,该晶体管保持了一定数量的电荷,所述电荷表示存储在所述存储单元中的信息。写入一特定存储单元的电荷影响所述存储单元的“门限电压”,也即,需要施加电压到存储单元以使得所述存储单元传导一定数量的电流。
一些存储设备,通常称为“单层单元”(SLC)设备,在每个存储单元中存储单比特信息。通常,所述存储单元的可能的门限电压的范围被分为两个区域。落入这两个区域中的一个区域的电压值代表比特值“0”,而属于另一个区域的电压值代表“1”。更高密度的设备,通常称为“多层单元”(MLC)设备,每个存储单元存储两个或更多个比特。在多层单元中,门限电压的范围被分为多于两个区域,其中每个区域代表多于一个比特。
例如,在纽约州纽约市举办的1996年IEEE国际电子器件大会(IEDM)的学报上的第169-172页上由Eitan等人发表的“MultilevelFlash Cells and their Trade-Offs”,描述了多层闪存单元和设备,该文献在此以援引方式全部纳入本文。该文献对数种多层闪存单元进行比较,例如共地型、DINOR型、AND型、NOR型和NAND型存储单元。
Eitan等人在1999年9月21至24日在日本东京举行的固态器件与材料国际会议(SSDM)的学报的第522至524页发表的“Can NROM,a2-bit,Trapping Storage NVM Cell,Give a Real Challenge toFloating Gate Cells?”描述了另一种模拟存储单元,称为氮化物只读存储器(NROM),该文献在此以援引方式纳入本文。在2002年2月3日~7日在美国加州旧金山市举办的IEEE国际固态电子器件学会(ISSCC 2002)的学报的第100-101页由Maayan等人发表的“A 512 MbNROM Flash Data Storage Memory with 8 MB/s Data Rate”中,描述了NROM存储单元,其在此处以援引方式纳入本文。
模拟存储单元的其他示例性类型为,铁电RAM(FRAM)单元、磁RAM(MRAM)单元、电荷捕获闪存(CTF)和相变RAM(PRAM,也称为相变存储器PCM)单元。例如,在2004年5月16日至19日在塞尔维亚和黑山的Nis举办的第24届微电子国际学会(MIEL)学报第一卷第377-384页上由Kim和Koh发表的“Future Memory Technologyincluding Emerging New Memories”中,描述了FRAM、MRAM和PRAM单元,其在此处以援引方式全部纳入本文。
读取自模拟存储单元的门限电压值有时会失真。这种失真有各种不同的原因,例如耦合自相邻存储单元的电场、由阵列中其他存储单元上的存储存取操作而导致的干扰噪声、以及由于设备老化导致的门限电压漂移。一些常见的失真机制已由Bez等人在上文所引用的文章中进行了描述。在2002年5月的IEEE电子器件快报(23:5)第264-266页上发表的“Effects of Floating Gate Interference on NAND FlashMemory Cell Operation”中,Lee等人还描述了在失真效应,其在此处以援引方式全部纳入本文。
美国专利5,867,429,描述了一种用于对在高密度闪速可电擦除可编程只读存储(EEPROM)单元阵列中的浮置栅极之间耦合的电场进行补偿的方法,其公开内容在此以援引方式全部纳入本文。根据所公开的方法,对一个存储单元的读取是通过首先读取所有与正被读取的存储单元场耦合的存储单元的状态来补偿。然后将与每个耦合的存储单元的状态或浮置栅极电压相关的数目,乘以存储单元之间的耦合比。在每个存储单元的各状态之间的断点电平是由一个补偿了耦合自相邻存储单元的电压的量来调整的。
发明内容
本发明的实施方案提供了一种用于操作存储器的方法,包括:
将数据作为相应的第一电压电平存储在所述存储器的一组模拟存储单元中,所述第一电压电平选自可能的值的集合;
在存储所述数据之后,从所述模拟存储单元读取相应的第二电压电平,该第二电压电平受到交叉耦合干扰的影响,该交叉耦合干扰导致所述第二电压电平不同于所述相应的第一电压电平;
处理所述第二电压电平以获得相应的硬判决,每个硬判决均对应于所述第一电压电平的可能的值中的相应值;
基于所述第二电压电平和所述相应的硬判决估计交叉耦合系数,该交叉耦合系数量化所述模拟存储单元之间的交叉耦合干扰;以及
使用所估计的交叉耦合系数,从所读取的第二电压电平重构存储在该组模拟存储单元中的数据。
在一些实施方案中,估计交叉耦合系数包括使用块估计过程处理所述第二电压电平和所述相应的硬判决。替代地,估计交叉耦合系数包括使用收敛到所述交叉耦合系数的序列估计过程以循序扫描所述第二电压电平以及所述相应的硬判决。估计交叉耦合系数可以包括采用一个减少在所述所读取的第二电压电平和所述相应的硬判决之间的距离度量的估计过程。
在一个实施方案中,所述方法包括既基于读取自第一模拟存储单元的第二电压电平又基于读取自第二模拟存储单元的第二电压电平,估算在所述存储器中由所述第一模拟存储单元导致的针对所述第二模拟存储单元的交叉耦合干扰。
在另一个实施方案中,重构数据包括使用如下过程之一将所述交叉耦合干扰从所述第二电压电平中除去,所述过程为:线性均衡过程、判决反馈均衡(DFE)过程、最大后验(MAP)估计过程以及最大似然序列估计(MLSE)过程。在又一个实施方案中,估计交叉耦合系数与重构数据包括在第一处理阶段中估计所述交叉耦合系数,并且在后继于所述第一处理阶段的第二处理阶段中消除所估计的交叉耦合干扰。在又一个实施方案中,估计交叉耦合系数与重构数据包括将所估计的交叉耦合系数用于所述第二处理阶段的后继情况,并且仅当未能重构所述数据时才重复所述第一处理阶段。
在一个公开的实施方案中,存储数据包括使用纠错码(ECC)编码所述数据,重构数据包括基于所估计的交叉耦合系数计算纠错度量并且使用所述纠错度量解码所述ECC。
根据本发明的一个实施方案,还提供了一种用于操作存储器的方法,包括:
将数据作为相应的第一电压电平存储在所述存储器的模拟存储单元中,其中所述模拟存储单元的子集具有相关失真;
在存储所述数据之后,从所述子集中的一个或多个模拟存储单元读取相应的第二电压电平,该第二电压电平由于所述相关失真而不同于所述第一电压电平;
处理读取自所述一个或多个模拟存储单元的第二电压电平,以便估计在所述第二电压电平中的相应失真度(distortion level);
从所述子集中的其他模拟存储单元读取一个第二电压电平;
基于所估计的所述子集中的一个或多个模拟存储单元的相应失真度,预测读取自所述其他模拟存储单元的第二电压电平中的失真度;
使用预测的失真度,校正读取自所述其他模拟存储单元的第二电压电平;以及
基于所校正的第二电压电平,重构在所述其他模拟存储单元中存储的数据。
在一些实施方案中,存储单元的子集包括选自下列一组子集类型中的至少一个子集类型:位于公共位线上的存储单元、位于公共字线上的存储单元、具有公共电路的存储单元和彼此位置接近的存储单元。
在一个实施方案中,处理第二电压电平包括仅缓存单个值,该值指示从所述子集中的一个或多个模拟存储单元中读取的第二电压电平的失真度,且其中预测失真度包括基于缓存的所述单个值计算预测的失真度。在另一个实施方案中,预测失真包括追踪对于所述模拟存储单元的子集为共有的失真参数,并且将所述失真参数存储在数据结构中。
根据本发明的一个实施方案,还提供了一种用于操作存储器的方法,包括:
将数据作为相应的第一电压电平存储在所述存储器的一组模拟存储单元中;
在所述存储器中的第一模拟存储单元上执行存储器存取操作;
响应于执行的存储器存取操作,从所述存储器中的第二模拟存储单元读取第二电压电平;
处理所述第二电压电平,从而估计在所述第二电压电平中的扰动电平(level of disturbance),该扰动电平是由在所述第一模拟存储单元上执行的存储器存取操作所导致;
使用所估计的扰动电平,校正所述第二电压电平;以及
基于所校正的第二电压电平,重构在所述第二模拟存储单元中存储的数据。
在一些实施方案中,存储器存取操作包括选自下列一组操作中的至少一种操作:编程操作、读操作和擦除操作。处理和校正第二电压电平可以包括将所估计的扰动电平与预定义电平作比较,且仅当所估计的扰动电平超过所述预定义电平时才校正所述第二电压电平。在一个实施方案中,校正第二电压电平包括对所述第二模拟存储单元中存储的数据重新编程。在另一个实施方案中,校正第二电压电平包括将存储在所述第二模拟存储单元中的数据复制到不同于所述第二模拟存储单元的其他模拟存储单元中。替代地,校正第二电压电平可包括增大用于将数据存储在所述第二模拟存储单元中的第一电压电平。可以在不对所述数据作存储和读取的空闲时段期间执行对第二电压电平的处理。
在一个公开的实施方案中,读取第二电压电平包括从相应的多个第二模拟存储单元读取多个第二电压电平,且处理第二电压电平包括对多个由于存储器存取操作而从已擦除电平转换到已编程电平的第二模拟存储单元进行评估。在另一个实施方案中,存储数据包括将所述数据循序存储在所述模拟存储单元的多个组中,读取第二电压电平包括以逆序读取所述模拟存储单元的多个组,且处理第二电压电平包括估计响应于在所述第一模拟存储单元之前读取的所述组中的模拟存储单元的第二电压对所述第一模拟存储单元导致的扰动电平。
根据本发明的一个实施方案,还提供了一种用于操作存储器的方法,包括:
将数据作为相应的第一电压电平存储在所述存储器的一组模拟存储单元中;
在存储所述数据之后,从所述模拟存储单元读取相应的第二电压电平,所述第二电压电平中的至少一些不同于所述相应的第一电压电平;
识别潜在地导致针对读取自目标模拟存储单元的第二电压电平的失真的模拟存储单元的子集;
基于数据被存储在所述模拟存储单元中的相应时间和数据被存储在所述目标模拟存储单元中的时间之间的关系,将所述子集中的模拟存储单元分成多个类;
为所述类的每一个估计由该类中的模拟存储单元针对所述目标模拟存储单元中的第二电压电平所导致的相应失真;
使用为所述类中的一个或多个类中的每一个所估计的相应失真,校正读取自所述目标模拟存储单元的第二电压电平;以及
基于所校正的第二电压电平,重构在所述目标模拟存储单元中存储的数据。
在一些实施方案中,存储数据和读取第二电压电平包括应用编程与验证(P&V)过程。在一个实施方案中,分类模拟存储单元包括识别所述子集中的比所述目标模拟存储单元更为新近地将数据存储在其中的模拟存储单元,且其中校正第二电压电平包括基于仅在所识别的模拟存储单元中的失真来校正读取自所述目标模拟存储单元的第二电压电平。在一个替代性的实施方案中,分类模拟存储单元包括:定义第一类,其包括在所述子集中的比所述目标模拟存储单元更为新近地将数据存储在其中的模拟存储单元;第二类,其包括在所述子集中的比所述目标模拟存储单元更早地将数据存储在其中的模拟存储单元;和第三类,其包括在所述子集中的与所述目标模拟存储单元并发地将数据存储在其中的模拟存储单元。
在另一个实施方案中,读取第二电压电平、估计失真和校正第二电压电平包括,以第一分辨率处理读取自所述目标模拟存储单元的第二电压电平,并且以比所述第一分辨率更不精确的第二分辨率处理读取自所述子集中的模拟存储单元的第二电压电平。在又一个实施方案中,存储数据包括存储所述数据被存储在所述模拟存储单元时的时间标记,且分类模拟存储单元包括查询所存储的标记。在另一个实施方案中,估计失真包括响应于选自下列一组参数中的至少一个参数来估计失真度,所述参数包括:所述模拟存储单元的编程次数、存储在所述模拟存储单元中的数据、所述模拟存储单元相对于所述目标模拟存储单元的位置以及所述目标存储单元最近已经经历的编程-擦除循环的次数。
根据本发明的一个实施方案,还提供了一种用于操作存储器的方法,包括:
接受用于存储在所述存储器中的数据;
确定相应的第一电压电平,用于对所述存储器的一组模拟存储单元编程,从而使得所述模拟存储单元存储表示所述数据的物理量的相应值;
使用确定的第一电压电平对所述组中的模拟存储单元编程;
在对所述模拟存储单元编程之后,从相应的模拟存储单元读取第二电压电平并且从所述第二电压电平重构数据。
在一些实施方案中,确定第一电压电平包括当将所述数据存储在目标模拟存储单元中时,对由存储在一个或多个其他模拟存储单元中的物理量的值所导致的针对存储在所述目标模拟存储单元中的物理量的值的失真进行估计,并且响应于所估计的失真预先校正用于所述目标模拟存储单元编程的第一电压电平。在另一个实施方案中,重构数据包括:当读取所述第二电压电平时,基于所读取的第二电压电平对由存储在一个或多个其他模拟存储单元中的物理量的值所导致的针对存储在目标模拟存储单元中的物理量的值的失真进行估计;使用所估计的失真校正读取自所述目标模拟存储单元的第二电压电平;并且基于所校正的第二电压电平重构存储在所述目标模拟存储单元中的数据。
编程模拟存储单元可以包括验证已编程的第一电压电平。在一些实施方案中,物理量包括电荷。
根据本发明的一个实施方案,还提供了一种用于操作存储器的方法,包括:
将数据作为相应的第一电压电平存储在所述存储器的一组模拟存储单元中;
在存储所述数据之后,从所述组中的模拟存储单元读取第二电压电平,所述第二电压电平中的至少一些不同于所述相应的第一电压电平;
估计读取自所述模拟存储单元中的第二电压电平中的失真度;以及
当所估计的失真度违反了预定的失真判据时,将所述数据重新编程到所述存储器的模拟存储单元中。
在一些实施方案中,预定的失真判据包括一个定义最大可容忍的失真度的门限。
根据本发明的一个实施方案,还提供了一种用于操作存储器的方法,包括:
将数据作为相应的第一电压电平存储在所述存储器的一组模拟存储单元中;
在存储所述数据之后,从所述模拟存储单元读取相应的第二电压电平,所述第二电压电平中的至少一些不同于所述相应的第一电压电平;
识别潜在地导致针对读取自目标模拟存储单元的第二电压电平的失真的模拟存储单元的子集;
估计在所述目标模拟存储单元被编程的第一瞬时由在所述子集中的模拟存储单元导致的针对所述目标模拟存储单元的第一失真度与所述目标模拟存储单元被读取的第二瞬时由在所述子集中的模拟存储单元导致的针对所述目标模拟存储单元的第二失真度之间的差;以及
使用所估计的差,校正读取自所述目标模拟存储单元的第二电压电平。
根据本发明的一个实施方案,还提供了一种用于操作存储器的方法,包括:
将数据作为相应的第一电压电平存储在所述存储器的一组模拟存储单元中;
在存储所述数据之后,从所述模拟存储单元读取相应的第二电压电平,该第二电压电平受到交叉耦合干扰的影响,该交叉耦合干扰导致所述第二电压电平不同于所述相应的第一电压电平;
估计交叉耦合系数,其通过处理所述第二电压电平而将所述模拟存储单元之间的交叉耦合干扰量化;以及
使用所估计的交叉耦合系数,从所读取的第二电压电平重构存储在该组模拟存储单元中的数据。
在一些实施方案中,既基于读取自第一模拟存储单元的第二电压电平又基于读取自第二模拟存储单元的第二电压电平,评估由第一模拟存储单元针对存储器中第二模拟存储单元导致的交叉耦合干扰。
根据本发明的一个实施方案,还提供了一种数据存储装置,包括:
接口,其操作性地与包含多个模拟存储单元的存储器通信;以及
存储器信号处理器(MSP),其被耦合到所述接口并且被布置为:将数据作为选自可能的值的集合的相应的第一电压电平存储在一组模拟存储单元中;在存储所述数据之后,从所述模拟存储单元读取相应的第二电压电平,该第二电压电平受到交叉耦合干扰的影响,该交叉耦合干扰导致所述第二电压电平不同于所述相应的第一电压电平;处理所述第二电压电平以获得相应的硬判决,每个硬判决均对应于所述第一电压电平的可能的值中的相应值;基于所述第二电压电平和所述相应的硬判决估计交叉耦合系数,该交叉耦合系数量化所述模拟存储单元之间的交叉耦合干扰;以及使用所估计的交叉耦合系数,从所述第二电压电平重构存储在该组模拟存储单元中的数据。
根据本发明的一个实施方案,还提供了一种数据存储装置,包括:
接口,其操作性地与包含多个模拟存储单元的存储器通信,所述存储器的模拟存储单元的子集具有相关失真;以及
存储器信号处理器(MSP),其被耦合到所述接口并且被布置为:将数据作为相应的第一电压电平存储在所述模拟存储单元中;在存储所述数据之后,从所述子集中的一个或多个模拟存储单元读取相应的第二电压电平,该第二电压电平由于所述相关失真而不同于所述第一电压电平;处理读取自所述一个或多个模拟存储单元的第二电压电平,以便估计在所述第二电压电平中的相应失真度;从所述子集中的其他模拟存储单元读取一个第二电压电平;基于所估计的所述子集中的一个或多个模拟存储单元的相应失真度,预测读取自所述其他模拟存储单元的第二电压电平中的失真度;使用预测的失真度,校正读取自所述其他模拟存储单元的第二电压电平;以及基于所校正的第二电压电平,重构在所述其他模拟存储单元中存储的数据。
根据本发明的一个实施方案,还提供了一种数据存储装置,包括:
接口,其操作性地与包含多个模拟存储单元的存储器通信;以及
存储器信号处理器(MSP),其被耦合到所述接口并且被布置为:将数据作为相应的第一电压电平存储在一组模拟存储单元中;在所述存储器中的第一模拟存储单元上执行存储器存取操作;响应于执行的存储器存取操作,从所述存储器中的第二模拟存储单元读取第二电压电平;处理所述第二电压电平,从而估计在所述第二电压电平中的扰动电平,该扰动电平是由在所述第一模拟存储单元上执行的存储器存取操作所导致;使用所估计的扰动电平,校正所述第二电压电平;以及基于所校正的第二电压电平,重构在所述第二模拟存储单元中存储的数据。
根据本发明的一个实施方案,还提供了一种数据存储装置,包括:
接口,其操作性地与包含多个模拟存储单元的存储器通信;以及
存储器信号处理器(MSP),其被耦合到所述接口并且被布置为:将数据作为相应的第一电压电平存储在一组模拟存储单元中;在存储所述数据之后,从所述模拟存储单元读取相应的第二电压电平,所述第二电压电平中的至少一些不同于所述相应的第一电压电平;识别潜在地导致针对读取自目标模拟存储单元的第二电压电平的失真的模拟存储单元的子集;基于数据被存储在所述模拟存储单元中的相应时间和数据被存储在所述目标模拟存储单元中的时间之间的关系,将所述子集中的模拟存储单元分成多个类;为所述类的每一个估计由该类中的模拟存储单元针对所述目标模拟存储单元中的第二电压电平所导致的相应失真;使用为所述类中的一个或多个类中的每一个所估计的相应失真,校正读取自所述目标模拟存储单元的第二电压电平;以及基于所校正的第二电压电平,重构在所述目标模拟存储单元中存储的数据。
根据本发明的一个实施方案,还提供了一种数据存储装置,包括:
接口,其操作性地与包含多个模拟存储单元的存储器通信;以及
存储器信号处理器(MSP),其被耦合到所述接口并且被布置为:接受用于存储在所述存储器中的数据;确定相应的第一电压电平,用于对一组模拟存储单元编程,从而使得所述模拟存储单元存储表示所述数据的物理量的相应值;使用所述第一电压电平对所述组中的模拟存储单元编程;在对所述模拟存储单元编程之后,从相应的模拟存储单元读取第二电压电平;并且从所述第二电压电平重构数据。
根据本发明的一个实施方案,还提供了一种数据存储装置,包括:
接口,其操作性地与包含多个模拟存储单元的存储器通信;以及
存储器信号处理器(MSP),其被耦合到所述接口并且被布置为:将数据作为相应的第一电压电平存储在一组模拟存储单元中;在存储所述数据之后,从所述组中的模拟存储单元读取第二电压电平,所述第二电压电平中的至少一些不同于所述相应的第一电压电平;估计读取自所述模拟存储单元中的第二电压电平中的失真度;以及当所估计的失真度违反了预定的失真判据时,将所述数据重新编程到所述组中的模拟存储单元中。
根据本发明的一个实施方案,还提供了一种数据存储装置,包括:
接口,其操作性地与包含多个模拟存储单元的存储器通信;以及
存储器信号处理器(MSP),其被耦合到所述接口并且被布置为:将数据作为相应的第一电压电平存储在所述存储器的一组模拟存储单元中;在存储所述数据之后,从所述模拟存储单元读取相应的第二电压电平,所述第二电压电平中的至少一些不同于所述相应的第一电压电平;识别潜在地导致针对读取自目标模拟存储单元的第二电压电平的失真的模拟存储单元的子集;估计在所述目标模拟存储单元被编程的第一瞬时由在所述子集中的模拟存储单元导致的针对所述目标模拟存储单元的第一失真度与所述目标模拟存储单元被读取的第二瞬时由在所述子集中的模拟存储单元导致的针对所述目标模拟存储单元的第二失真度之间的差;以及使用所估计的差,校正读取自所述目标模拟存储单元的第二电压电平。
根据本发明的一个实施方案,还提供了一种数据存储装置,包括:
接口,其操作性地与包含多个模拟存储单元的存储器通信;以及
存储器信号处理器(MSP),其被耦合到所述接口并且被布置为:将数据作为相应的第一电压电平存储在所述存储器的一组模拟存储单元中;在存储所述数据之后,从所述模拟存储单元读取相应的第二电压电平,该第二电压电平受到交叉耦合干扰的影响,该交叉耦合干扰导致所述第二电压电平不同于所述相应的第一电压电平;估计交叉耦合系数,其通过处理所述第二电压电平而将所述模拟存储单元之间的交叉耦合干扰量化;以及使用所估计的交叉耦合系数,从所读取的第二电压电平重构存储在该组模拟存储单元中的数据。
根据本发明的一个实施方案,还提供了一种数据存储装置,包括:
存储器,其包含多个模拟存储单元;以及
存储器信号处理器(MSP),其被耦合到所述存储器并且被布置为:将数据作为选自可能的值的集合的相应的第一电压电平存储在一组模拟存储单元中;在存储所述数据之后,从所述模拟存储单元读取相应的第二电压电平,该第二电压电平受到交叉耦合干扰的影响,该交叉耦合干扰导致所述第二电压电平不同于所述相应的第一电压电平;处理所述第二电压电平以获得相应的硬判决,每个硬判决都对应于所述第一电压电平的可能的值中的相应值;估计交叉耦合系数,其基于所述第二电压电平和所述相应的硬判决,对所述模拟存储单元之间的交叉耦合干扰进行量化;以及使用所述交叉耦合系数,从所述第二电压电平重构存储在该组模拟存储单元中的数据。
根据本发明的一个实施方案,还提供了一种数据存储装置,包括:
存储器,其包含多个模拟存储单元,其中所述存储单元的子集具有相关失真;以及
存储器信号处理器(MSP),其被耦合到所述存储器并且被布置为:将数据作为相应的第一电压电平存储在一组模拟存储单元中;在存储所述数据之后,从阵列的一列中的一个或多个模拟存储单元读取相应的第二电压电平,该第二电压电平由于失真而不同于所述第一电压电平;处理读取自所述一个或多个模拟存储单元的第二电压电平,以便估计在所述第二电压电平中的相应失真度;从所述列中的其他模拟存储单元读取一个第二电压电平;基于所估计的所述列中的一个或多个模拟存储单元的相应失真度,预测读取自所述其他模拟存储单元的第二电压电平中的失真度;使用所预测的失真度,校正读取自所述其他模拟存储单元的第二电压电平;以及基于所校正的第二电压电平,重构在所述其他模拟存储单元中存储的数据。
根据本发明的一个实施方案,还提供了一种数据存储装置,包括:
存储器,其包含多个模拟存储单元;以及
存储器信号处理器(MSP),其被耦合到所述存储器并且被布置为:将数据作为相应的第一电压电平存储在一组模拟存储单元中;在所述存储器中的第一模拟存储单元上执行存储器存取操作;响应于执行的存储器存取操作,从所述存储器中的第二模拟存储单元读取第二电压电平;处理所述第二电压电平,从而估计在所述第二电压电平中的扰动电平,该扰动电平是由在所述第一模拟存储单元上执行的存储器存取操作所导致;使用所估计的扰动电平,校正所述第二电压电平;以及基于所校正的第二电压电平,重构在所述第二模拟存储单元中存储的数据。
根据本发明的一个实施方案,还提供了一种数据存储装置,包括:
存储器,其包含多个模拟存储单元;以及
存储器信号处理器(MSP),其被耦合到所述存储器并且被布置为:将数据作为相应的第一电压电平存储在一组模拟存储单元中;在存储所述数据之后,从所述模拟存储单元读取相应的第二电压电平,所述第二电压电平中的至少一些不同于所述相应的第一电压电平;识别潜在地导致针对读取自目标模拟存储单元的第二电压电平的失真的模拟存储单元的子集;基于数据被存储在所述模拟存储单元中的相对时间和数据被存储在所述目标模拟存储单元中的时间之间的关系,将所述子集中的模拟存储单元分成多个类;为所述类的每一个估计由该类中的模拟存储单元针对所述目标模拟存储单元中的第二电压电平所导致的相应失真;使用为所述类中的一个或多个类中的每一个所估计的相应失真,校正读取自所述目标模拟存储单元的第二电压电平;以及基于所校正的第二电压电平,重构在所述目标模拟存储单元中存储的数据。
根据本发明的一个实施方案,还提供了一种数据存储装置,包括:
存储器,其包含多个模拟存储单元;以及
存储器信号处理器(MSP),其被耦合到所述存储器并且被布置为:接受用于存储在所述存储器中的数据;确定相应的第一电压电平,用于对一组模拟存储单元编程,从而使得所述模拟存储单元存储表示所述数据的物理量的相应值;使用所述第一电压电平对所述组中的模拟存储单元编程;在对所述模拟存储单元编程之后,从相应的模拟存储单元读取第二电压电平;并且从所述第二电压电平重构数据。
根据本发明的一个实施方案,还提供了一种数据存储装置,包括:
存储器,其包含多个模拟存储单元;以及
存储器信号处理器(MSP),其被耦合到所述存储器并且被布置为:将数据作为相应的第一电压电平存储在一组模拟存储单元中;在存储所述数据之后,从所述组中的模拟存储单元读取第二电压电平,所述第二电压电平中的至少一些不同于所述相应的第一电压电平;估计读取自所述模拟存储单元中的第二电压电平中的失真度;以及当所估计的失真度违反了预定的失真判据时,将所述数据重新编程到所述组的模拟存储单元中。
根据本发明的一个实施方案,还提供了一种数据存储装置,包括:
存储器,其包含多个模拟存储单元;以及
存储器信号处理器(MSP),其被耦合到所述存储器并且被布置为:将数据作为相应的第一电压电平存储在所述存储器的一组模拟存储单元中;在存储所述数据之后,从所述模拟存储单元读取相应的第二电压电平,所述第二电压电平中的至少一些不同于所述相应的第一电压电平;识别潜在地导致针对读取自目标模拟存储单元的第二电压电平的失真的模拟存储单元的子集;估计在所述目标模拟存储单元被编程的第一瞬时由在所述子集中的模拟存储单元导致的针对所述目标模拟存储单元的第一失真度与所述目标模拟存储单元被读取的第二瞬时由在所述子集中的模拟存储单元导致的针对所述目标模拟存储单元的第二失真度之间的差;以及使用所估计的差,校正读取自所述目标模拟存储单元的第二电压电平。
根据本发明的一个实施方案,还提供了一种数据存储装置,包括:
存储器,其包含多个模拟存储单元;以及
存储器信号处理器(MSP),其被耦合到所述存储器并且被布置为:将数据作为相应的第一电压电平存储在所述存储器的一组模拟存储单元中;在存储所述数据之后,从所述模拟存储单元读取相应的第二电压电平,该第二电压电平受到交叉耦合干扰的影响,该交叉耦合干扰导致所述第二电压电平不同于所述相应的第一电压电平;估计交叉耦合系数,其通过处理所述第二电压电平而将所述模拟存储单元之间的交叉耦合干扰量化;以及使用所估计的交叉耦合系数,从所读取的第二电压电平重构存储在该组模拟存储单元中的数据。
从下文对本发明的实施方案的详述,结合如下附图,将可更完整地理解本发明。
附图说明
图1是示意性地示出了根据本发明的一个实施方案的用于存储器信号处理的***的框图;
图2是示意性地示出了根据本发明的一个实施方案的存储单元阵列的示意图;
图3至图8是示意性地示出了根据本发明的实施方案的用于估计和消除存储单元阵列中的失真的方法的流程图,以及
图9是示意性地示出了根据本发明的实施方案的用于在存储单元阵列中刷新数据的方法的流程图。
具体实施方式
概述
本发明的实施方案提供了用于估计和补偿在模拟存储单元中的失真的方法和***。在下文描述的实施方案中,数据被存储为电荷电平,其被写入模拟存储单元阵列。电荷电平确定存储单元的相应的门限电压。存储器信号处理器(MSP)从存储单元读取电压电平,并且自适应地估计包含在其中的失真度。MSP通常产生所校正的电压,以此校正、消除抑或补偿失真。使用所校正的电压重构存储在存储单元中的数据。
本文描述了几种示例性的失真估计和消除方法。一些方法是判决导向的,也即,使用硬判决分割过程的输出。在一些情况下,失真估计过程考虑的是,相对于被干扰存储单元被编程的时刻,潜在干扰存储单元被编程的时刻。其他方法是基于位于存储单元阵列中的同一列(位线)中的其他存储单元的失真,来预测在某个存储单元中的失真。一些公开的方法校正了在失真形成时由阵列中的其他存储单元的操作所导致的扰动噪声。
在一些实施方案中,使用编程和验证(P&V)过程对存储单元进行编程,且MSP对在编程时的失真做补偿,或者既对在编程时也对在读存储单元时的失真做补偿。
作为对失真进行补偿的补充或替代,MSP可以响应于所估计的失真而执行其他种类的动作。例如,当所估计的失真超过最大的可容忍的失真度时,MSP可以刷新(即,重新编程)数据。
本文所描述的失真估计和补偿方法可被用于以几种途径改进存储设备的数据存储性能。例如,可以降低当重构数据时达到的误差概率,可以增大可达到的存储容量,和/或可以延长可达到的数据保持期。改进的性能可以接着用于降低存储设备的成本和复杂度和/或增大它们的编程速度。这些改进在对失真特别敏感的MLC设备中尤其重要。
***描述
图1是示意性地示出了根据本发明的一个实施方案的用于存储器信号处理的***20的框图。***20可用于不同的主机***和设备中,例如用于计算设备、蜂窝电话或其他通信终端、可移除存储器模块(“U盘”设备)、数码相机、音乐和其他媒体播放器、和/或任何其他存储和取出数据的***或设备。
***20包括存储设备24,其将数据存储在存储单元阵列28中。存储阵列28包括多个模拟存储单元32。在本专利申请的上下文中以及在权利要求书中,术语“模拟存储单元”用于描述保持诸如电压或电荷之类的物理参数的连续模拟值的任意的存储单元。阵列28可以包括任何种类的模拟存储单元,举例而言,例如,NAND、NOR和CTF闪存单元、PCM、NROM、FRAM、MRAM和DRAM单元。存储在存储单元中的电荷电平和/或写入与读出存储单元的模拟电压在本文中统称为模拟值。
用于存储在存储设备24中的数据被提供给所述设备并且缓存在数据缓冲器36中。然后所述数据被转换成模拟电压并且使用读/写(R/W)单元40写入存储单元32中,该读/写单元40的功能将在下文中进一步详述。当从阵列28读出数据时,读/写单元40将电荷以及由此的存储单元32的模拟电压转换成数字样本。每个数字样本具有一个或多个比特的分辨率。这些样本被缓存在缓冲器36中。存储设备24的操作和时序均由控制逻辑48所管理。
数据进出存储设备24的存储和取出,由存储器信号处理器(MSP)52执行。如下文将详示,MSP 52使用新颖的方法,以用于估计和降低在存储单元阵列28中的各种不同的失真效应。
在一些实施方案中,MSP 52包括编码器/解码器64,该编码器/解码器64使用ECC对将要写到设备24的数据进行编码,而当把数据从设备24读出时对所述ECC进行解码。信号处理单元60处理被写入设备24和从设备24取出的数据。具体地,信号处理单元60估计对从存储单元32读出的电压有影响的失真。信号处理单元60可以补偿抑或减少所估计的失真的效应。替代地,信号处理单元60可以基于所估计的失真而采取其他种类的行动,在下文将详述。
MSP 52包括数据缓冲器72,该数据缓冲器72由信号处理单元60用于存储数据以及用于与存储设备24交互。MSP 52还包括输入/输出(I/O)缓冲器56,该输入/输出(I/O)缓冲器56在所述MSP和所述主机之间形成接口。控制器76管理MSP 52的操作和定时。信号处理单元60和控制器76可以用硬件实现。替代地,信号处理单元60和/或控制器76可以包括运行合适的软件的微处理器,或者硬件和软件元素的组合。
图1中的配置是示例性的***配置,其纯粹是为概念清楚而示出的。也可以使用任意其他合适的配置。为清楚起见,对于理解本发明的原理并非必要的元件,例如各种接口、寻址电路、定时和定序电路、数据置乱电路和调试电路,均从附图中省略。
在图1中所示的示例性***配置中,存储设备24和MSP 52被实现为两个单独的集成电路(IC)。然而,在替代的实施方案中,所述存储设备和MSP可被集成在单一IC中或片上***(SoC)中。在一些实施方式中,单个MSP 52可被连接到多个存储设备24。进一步作为替代,MSP 52的某些或全部功能可以用软件实现,并且由主机***的处理器或其他元件来执行。实现***20的某些实施方案的另外的架构性的方面,在上文所引用的美国临时专利申请60/867,399中,并且在以援引方式全部纳入本文中的提交于2007年5月10日的题为“CombinedDistortion Estimation and Error Correction Coding for MemoryDevices”的PCT专利申请中,得以更详细地描述。
在典型的写操作中,从主机接收待要写入存储设备24的数据,并将所述数据缓存在I/O缓冲器56中。编码器/解码器64编码所述数据,且所编码的数据通过数据缓冲器72传送到存储设备24。在将数据传送到存储设备用于编程之前,MSP 52可以预处理该数据。在设备24中,数据临时存储在缓冲器36中。读/写单元40将数据转换成模拟电压值,并且将数据写入阵列28的适当的存储单元32中。
在典型的读操作中,读/写单元40从适当的存储单元32读出模拟电压值并且将所述电压转换为软数字样本。所述样本被缓存在缓冲器36中,并且传送到MSP 52的缓冲器72。在一些实施方案中,MSP 52的信号处理单元60将电压样本转换为数据位。如上所述,可能的门限电压的范围被分为两个或更多个区域,其中每个区域表示一个或多个数据位的某一组合。当读取存储单元时,信号处理单元60典型地将读取的电压样本的幅度与一组判决门限相比较,以便确定读取的电压所落入的区域,且从而确定存储在存储单元中的数据位。数据块从缓冲器72传送到信号处理单元60,而编码器/解码器64对这些块的ECC进行解码。已解码的数据通过I/O缓冲器56传送到主机。在一些实施方案中,ECC解码器包括软解码器,而信号处理单元60将电压样本转换成用于解码ECC的软解码度量。
另外,信号处理单元60使用下文描述的方法估计在所读取的样本中存在的失真。在一些实施方案中,MSP 52在数据被写入存储单元之前将其置乱,并且将从存储单元读取的数据反置乱,以便改进失真估计的性能。
存储阵列结构和失真机制
图2是示意性地示出了根据本发明的一个实施方案的存储单元阵列28的示意图。虽然图2涉及连接在特定阵列配置中的闪存单元,但本发明的原理也可应用于其他类型的存储单元和其他阵列配置。在上文背景技术部分中所引用的参考文献中,描述了一些示例性的存储单元类型和阵列配置。
阵列28的存储单元32被布置在具有多个行和多个列的栅格中。每个存储单元32包括浮置栅极金属氧化物半导体(MOS)晶体管。通过向晶体管的栅极、源极和漏极施加适当的电压电平,可以将一定数量的电荷(电子或空穴)存储在一特定的存储单元中。存储在所述存储单元中的值可通过测量所述存储单元的门限电压来读取,所述门限电压被定义为使所述晶体管导通而需要向所述晶体管的栅极施加的最小电压。所读取的门限电压与存储在所述存储单元中的电荷成比例。
在图2的示例性配置中,每一行中的晶体管的栅极由字线80连接。每一列中的晶体管的源极由位线84连接。在一些实施方案中,例如在一些NOR单元设备中,源极直接连接到位线。在替代的实施方案中,例如在一些NAND单元设备中,位线被连接到多串浮置栅极单元。
通常,读/写单元40,通过将变化的电压电平施加到特定的存储单元32的栅极(也即,施加到所述存储单元所连接到的字线),并且检查所述存储单元的漏极电流是否超过了某一门限(也即,所述晶体管是否导通),来读取该特定的存储单元32的门限电压。读/写单元40通常向所述存储单元所连接到的字线施加一系列的不同的电压值,并且确定为使漏极电流超过所述门限的最低栅极电压值。通常,读/写单元40同时读取一整行的存储单元,这一整行的存储单元也被称为页。
在一些实施方案中,读/写单元40通过将所述存储单元的位线预充电到某一电压电平来测量漏极电流。一旦栅极电压被设定到期望值,漏极电流就使得位线电压经存储单元放电。在施加栅极电压之后的几毫秒,读/写单元40测量位线电压,并且将位线电压与门限进行比较。在一些实施方案中,每个位线84被连接到相应的读出放大器,该读出放大器将位线电流放大并且将该电流转换为电压。使用比较器将被放大的电压与门限进行比较。
上文所描述的电压读取方法是一种示例性方法。作为替代,读/写单元40可以使用任何其他适合的方法来用于读取存储单元32的门限电压。例如,读/写单元40可以包括一个或多个模数转换器(ADC),该模数转换器将位线电压转换成数字样本。
存储单元阵列通常被分为多个页,也即,多组同时编程和读取的存储单元。在一些实施方案中,每个页包括阵列的一整行。在替代性的实施方案中,每个行可被分为两个或更多个页。对存储单元的擦除通常在包含多个页的块中执行。典型的存储设备可以包括数千个擦除块。尽管也可以使用其它块尺寸,典型的擦除块是128页的数量级,每个擦除块包括数千个存储单元。
存储在存储单元中的电荷电平和读取自存储单元的电压可能包含多种类型的失真,这些失真是由阵列28中的不同的失真机制所导致的。一些失真机制影响了存储在存储单元中的实际电荷,而其他机制使得所读出的电压失真。例如,阵列中的相邻存储单元之间的电交叉耦合会修改特定存储单元中的门限电压。此效应被称为交叉耦合失真。又例如,电荷会随着时间的推移而从存储单元中泄漏。这种老化效应的结果是,所述存储单元的门限电压将随着时间的推移而从最初写入的值漂移。
另一种类的失真,通常被称为扰动噪声,是由阵列中的某些存储单元上的存储器存取操作(例如,读、写或擦除操作)而导致的,这引起了对其他存储单元中的非预期的电荷改变。作为又一实例,可以由相邻存储单元(例如在同一NAND存储单元串中的其他存储单元)中的电荷,通过一种称为背景图案相关性(BPD)的效应,来影响特定存储单元的源极-漏极电流。
失真估计和消除方法
存储单元32中的失真降低了存储设备的性能,例如重构数据时的误差概率、可达到的存储容量以及可达到的数据保持期。性能降低在MLC设备中尤其严重,因为在MLC设备中表示数据的不同电压电平之间的差相对较小。在许多情况下,失真度随着时间的推移而变化,且在一个存储单元和另一个存储单元之间也有所不同。从而,以自适应的方式估计失真并且基于所估计的失真采取行动是很有好处的。
MSP 52可以采用各种不同的方法来估计存储单元32中的失真,并且使用所估计的失真度来消除或补偿失真。作为对失真进行补偿的补充或替代,MSP可以基于所估计的失真执行其他种类的动作。
例如,MSP可以使用所估计的失真来执行数据刷新判决。在一种典型的实现中,MSP估计各个不同的存储单元组(例如存储页)的失真度。当在一特定页中的失真超过某一可容忍的门限时,MSP对数据进行刷新(也即,重新编程)。
又例如,MSP可以使用所估计的失真来评估在某一存储单元或某组存储单元中的可达到的存储容量。基于可达到的容量,MSP可以修改用于在相应的存储单元中存储数据的电压电平的数量和/或ECC。从而,MSP可以自适应地修改存储单元中存储数据的密度,以匹配它们的存储容量,因为它们的存储容量随着时间的推移而改变。使用失真估计用于适配存储设备的存储密度的一些方面在提交于2007年5月10日的题为“Memory Device with Adaptive Capacity”的PCT专利申请中得以描述,该文献以援引方式全部纳入本文。
再例如,MSP可以基于所估计的失真而修改判决门限,也即将存储单元的可能的电压的范围分成判决区域的门限。MSP可以调整判决门限值以最小化失真度,以最小化解码误差概率或满足任何其他适合的性能条件。MSP也可以修改ECC解码度量,例如对数似然比(LLR),该解码度量由ECC解码器使用以解码ECC。这样的方法例如在上文所引用的PCT申请“Combined Distortion Estimation and ErrorCorrection Coding for Memory Devices”中得以描述。
图3至8是示意性地示出了根据本发明的实施方案的用于估计和消除存储单元阵列28中的失真的方法的流程图。在下文的说明中,假设MSP逐页地读取存储单元并估计失真度。然而,在替代性的实施方案中,MSP可以读取并处理任意其他存储单元组。例如,MSP可以处理整个擦除块或甚至单独的存储单元。
图3是示意性地示出了根据本发明的一个实施方案的一种用于估计和消除交叉耦合失真的方法的流程图。在一些情况下,例如在闪存中,交叉耦合失真是由存储在邻近存储单元的电荷产生的电场的电磁耦合所导致的。在其他情况下,例如在NROM存储单元中,交叉耦合失真可由其他原因导致,例如由于共享地线导致的存储单元的源电压的上升。
读取自受交叉耦合影响的某一存储单元i的电压一般可写为:
vi=g(ci)+f(ci,Ci)
其中g(ci)表示当所有潜在干扰存储单元均被擦除时从所述存储单元读取的电压,ci表示在存储单元i中的电荷电平,f(ci,Ci)表示当存储单元电荷是ci时的耦合效应,而Ci表示相邻存储单元的电荷电平的集合,j≠i。
在一些实际情况下,交叉耦合可以用线性函数来建模,以使得
其中kji表示交叉耦合系数,也即,从存储单元j到存储单元i的交叉耦合幅度。系数值有时可以取决于存储单元的电荷电平。
在其他情况下,由某一干扰存储单元导致的交叉耦合既取决于干扰存储单元的电荷电平,也取决于被干扰存储单元的电荷电平。在这些情况下,公式[2]可被写为
vi=k0·ci+f({ci,cj},j≠i)
交叉耦合系数值通常可以从一个单元到另一个单元而变化,也可以随着温度、电源电压和其他条件的变化而变化。
在读取步骤90,图3的方法始于MSP 52从一存储单元页读取电压。每个读取电压由软样本所表示,也即具有两个或更多个位的分辨率的数字化值。所述MSP从读取的电压值生成硬判决。换句话说,所述MSP逐个存储单元确定最有可能已被写到存储单元中的标称电压电平。MSP可以将每个读取电压和表示不同比特组合的不同标称电压值作比较,并且确定最接近于读取电压的标称电压电平。这种操作通常称为硬分割。
在系数估计步骤94,MSP基于读取的电压样本并基于对应的硬判决,估计交叉耦合系数。在大多数实际情况下,大多数硬判决反映了写入存储单元的正确比特组合,只有很少的硬判决是错误的。虽然硬判决的错误概率不足以用于可靠地重构数据,但其通常足以用于可靠地估计系数。
MSP可以使用任何适当的估计方法用于估计交叉耦合系数的值。在许多实际情况下,耦合系数值在整个已处理的存储单元组中基本恒定。在这些情况下,MSP可以使用本领域公知的各种不同的块估计技术,这些块估计技术使用软电压样本的整个集合和对应的硬判决来估计交叉耦合系数。
替代地,所述MSP可以使用本领域公知的各种不同的循序估计方法,其循序地(例如逐个样本地)处理电压样本和硬判决,并且收敛成交叉耦合系数的期望值。循序估计方法可以包括,例如最小均方(LMS)过程、递归最小二乘(RLS)过程、Kalman过滤过程或者任何其他适合的过程。
在一些实施方案下,估计过程试图减少在读取电压和对应的硬判决之间的距离度量(例如欧几里得距离)。
例如,当使用LMS过程时,MSP可以迭代地估算下述表达式
其中t表示根据已处理的样本和硬判决而递增的增量指数(例如,样本指数)。kji (t)表示在第t次迭代的交叉耦合系数kji的估计值。μ表示预定义的迭代步长,vj (t)表示在第t次迭代读取自存储单元j的电压样本。ei (t)被定义为 也即,第t次迭代的读取电压和对应的硬判决(标称电压)的差。注意,不同于上述公式[2]中交叉耦合系数与存储单元的电荷电平相乘,公式[4]中交叉耦合系数与存储单元电压相乘。
在一些实施方案中,在对存储单元编程期间,可以通过测量由对存储单元j编程而在存储单元电压vi中导致的变化,来估计kji的值。
在交叉耦合补偿步骤98,MSP基于所估计的交叉耦合系数补偿读取电压中的交叉耦合失真。MSP通常产生校正的电压,其中交叉耦合失真度被降低。例如,MSP可以将所估计的交叉耦合失真分量求和,并且从存储单元电压中减去该和,所述交叉耦合失真分量源自不同的干扰存储单元并且影响某一读取电压。这种操作有时称为线性均衡。
如本领域所公知,MSP可以替代地通过施加判决反馈均衡(DFE)来消除交叉耦合失真。在替代性的实施方案中,所述MSP可以使用减少状态最大似然序列估计(MLSE)过程,例如使用众所周知的Viterbi算法,来消除交叉耦合失真。此外作为替代,所述MSP可以使用最大后验(MAP)估计过程或任何其他适合的方法以基于所估计的交叉耦合系数来补偿交叉耦合失真。
所述MSP使用校正的电压来重构存储单元中存储的数据。在一些实施方案中,所述MSP分两步处理读取的电压(也即,两次扫描读取的电压值)。在第一步,MSP估计交叉耦合系数。在第二步,MSP使用所估计的系数来校正读取电压并且重构数据。两步处理可以是有利的,举例而言,例如由于在不同温度、电源电压或其他条件下写存储单元,而存储单元的不同的块或页具有不同的交叉耦合系数值时。在替代性的实施方案中,MSP可以在一步之内执行系数估计、失真补偿和数据重构。
在一个替代性的实施方案中,MSP起初在一步之内执行系数估计和数据重构。然后MSP估计重构的数据的质量(例如通过检测未被ECC校正的错误),并且若数据重构质量过低则执行第二步。这种技术不会显著地改变平均的处理时延或处理功率,在系数随着时间的推移而改变的情况下是有利的。
如上所述,在一些实施方案中,MSP在将数据写到存储单元之前将数据置乱,以便防止非随机数据使估计精确度降低。
在一些失真机制中,特定存储单元中的失真度和沿同一位线而处的其他存储单元的失真度是相关的。例如,在一些NAND闪存中,沿着每条位线的存储单元彼此相连构成十六个或三十二个存储单元组成的组,称为串。读取自特定存储单元的电压通常取决于串中的其他存储单元的电压。此效应通常称为背景图案相关性(BPD)。又例如,由读出放大器导致的参数变化和其他失真也可以在沿着一条位线的不同存储单元中相关联。
在其他情况下,具体存储单元中的失真度可以和沿同一字线而处的其他存储单元的失真度相关联。例如,考虑和同一页中的其他存储单元相比需要明显更长的编程时间的某一存储单元。当所涉及的页正在被编程时,在一定次数的P&V迭代之后,大多数存储单元达到它们的预期电荷电平,但是在“慢”存储单元中的电荷电平仍然远不达期望电平。因此,在慢存储单元中的源极-漏极电流就因此而较低。使用另外的P&V迭代过程继续对该慢存储单元进行编程,而其电流增大。增大的电流增大了落在地线上的电压以及页中其他存储单元的源极-漏极电压。作为结果,页中的其他存储单元的门限电压下降。
虽然下文对图4的说明涉及沿着位线的相关失真,然而图4的方法也可以用于预测和补偿沿着字线的相关失真。此外作为替代,所述方法可被用于预测和校正任何其他在某一组中的存储单元的失真度彼此相关的失真机制,这样的存储单元例如为在阵列中彼此极为接近的存储单元,以及具有相同电源电压(Vcc)线、地线或功率供应电路的存储单元。
当沿着某一位线的存储单元的失真度相关时,有时可将失真度建模为
其中e(n,m)表示在列(位线)m和行(页)n处的存储单元的失真度。c(i,m)表示从第i页的第m位线处的存储单元读取的电压。fi和gi分别表示定义在第i页的一个存储单元的电压与沿着同一位线在先前页中和后继页中的存储单元的依赖关系的函数。公式[5]假设页被循序处理。
图4是示意性地示出了根据本发明的一个实施方案的用于预测和消除位线相关失真的一种迭代方法的流程图。在失真记录步骤102,所述方法始于MSP记录先前读取的存储单元的失真度。可能在ECC解码之后,MSP可以用任何适当的方法计算失真度,例如通过将读取电压与期望的标称电压相比较。
在目标读取步骤106,MSP读取特定存储单元的电压,这个存储单元被称为目标存储单元。然后在预测步骤110,MSP基于记录的沿同一位线的其他存储单元的失真度值,并基于从这些存储单元读取的电压,预测在目标存储单元之中的失真度。例如,MSP可以使用上述公式[5]预测失真度。
在校正步骤114,MSP使用所估计的失真度来校正从目标存储单元读取的电压.然后在解码步骤118,MSP基于校正的电压,对存储在目标存储单元中的数据进行解码。当ECC解码器包括软解码器时,MSP可以替代地基于所估计的失真度,校正存储在存储单元中的比特的软ECC度量(例如,LLR)。此类校正办法,例如在上述PCT申请“CombinedDistortion Estimation and Error Correction Coding for MemoryDevices”中得以描述。
虽然图4的描述为清楚起见注重于单个目标存储单元,但是随着从存储器读取页,预测和校正过程通常并行地在多个存储单元中执行。
为了改进存储效率,MSP可以仅为每个位线存储单个失真值,而不是记录并存储每个先前读取的存储单元的失真度。存储的值,标注为表示在读取第n页之后的e(n,m)的估计值。对于读取的第一页,通常被初始化为0。
其中δn表示用于第n页的预定步长。c(n,m)表示从第n页的第m位线的存储单元读取的电压,而表示该存储单元的基于解码器输出的标称电压。当读取第n+1页时,MSP可以通过估算 来基于预测失真。校正电压(例如,被用来解码数据。
上述方法在预测和校正读出放大器的变化的增益、偏差或其他变化的参数时会尤其有效。此类参数还可以包括对特定电压电平的分布或所有电压电平的联合分布的可变的偏差或展宽。
当此方法用于校正NAND闪存存储单元阵列中的BPD失真时,可能存在一个贡献了大部分失真的特定单元,例如因为它被过编程。在这种情况下,迭代方法可以在NAND存储单元上重复,直到这个存储单元被识别,在这时刻的值被重置。不同于通常在每个NAND存储单元串执行的对BPD失真的校正,通常是在每条完整位线上追踪和执行读出放大器的变化。
在一些实施方案中,MSP 52维持保持每条位线、字线或其他相关存储单元组的所追踪的参数的表格或其他数据结构。
如上所述,一些存储单元可能受扰动噪声影响,扰动噪声也就是由阵列中的其他存储单元上执行的操作所导致的失真。在一些实施方案中,MSP 52校正扰动噪声是在形成扰动噪声之时,而不是在读取被干扰存储单元时。
图5是示意性地示出了根据本发明的一个实施方案的一种用于校正扰动噪声的方法的流程图。在扰动创建操作步骤122,所述方法始于MSP 52执行存储器存取操作,该存储器存取操作可对一些存储单元贡献扰动噪声。存储器存取操作可以包括,例如,编程、读或擦除操作。在读取潜在被扰动存储单元的步骤126,MSP从可能被存储器存取操作所扰动的存储单元读取电压。
在扰动估计步骤130,MSP评估在潜在被扰动存储单元中的扰动噪声的电平。为此目的,MSP可以使用任何适合的失真估计方法。例如,所述MSP可以使用判决导向方法,其中将读取自存储单元的电压和由硬分割所确定的相应标称电压电平相比较,或者与通过将ECC解码运用于读取自存储单元的电压而确定的标称电压电平作比较。
在一些情况下,扰动噪声可以增加在相邻页中的一些已擦除存储单元中的电荷电平。在这样的情况下,MSP可以通过对潜在被扰动页中的已擦除存储单元(也即,其电压低于某一门限电平的存储单元,该门限电平可以不同于通常用于检测已擦除存储单元的门限电平)的数量进行计数,来评估扰动电平。MSP可以将潜在扰动存储器存取操作之前和之后的已擦除存储单元的数量进行比较,并且从这两个结果之间的差来评估扰动电平。
在高扰动检查步骤134,MSP检查所估计的失真度是否超过一预定义的门限。在扰动校正步骤138,如果扰动电平被视为高,则MSP校正在潜在被扰动存储单元中的扰动噪声。例如,MSP可以刷新在同一存储单元中的数据,重新编程在其他存储单元中(也即,在另一页中)的数据,或对现有的已编程的存储单元增加电荷。MSP也可以使用更强的ECC来编码数据,并且将新编码的数据存储在另一页中。否则,也即,如果扰动电平被认为可容忍,则在终止步骤142终止该方法。
在一些情况下,在每次读、写和擦除操作之后执行图5的方法,会显著地增加处理时间。因此,在一些实施方案中,MSP仅仅在***空闲的时间段期间执行图5的方法。
图6是根据本发明的一个替代性的实施方案,示意性地示出了用于校正扰动噪声的另一种方法的流程图。所述方法基于扰动噪声是由比目标存储单元更新近地编程的存储单元贡献到该目标存储单元的事实。为简洁起见,比目标存储单元更为新近地编程的存储单元被称为与目标单元相比“较年轻”。比目标存储单元更早编程的存储单元被称为“较老”存储单元。
在潜在干扰存储单元识别步骤146,上述方法始于MSP 52识别潜在地对目标存储单元引发扰动噪声的存储单元。在较年轻存储单元识别步骤150,MSP识别并标记哪些潜在干扰存储单元比目标存储单元较年轻。在一些实施方案中,MSP存储每个页被编程的时间标记,其通常作为页的一部分和数据一起存储。所述MSP查询所存储的标记,以便确定哪些存储单元比目标存储单元较年轻。
当循序写存储器页时,MSP可以把在较大编号的页中的存储单元视为相比目标单元较年轻。替代地,当未循序写存储器页时,MSP可以在每个页中存储一个变量,该变量指示该页与相邻页相比的相对年龄。当此页被编程时,上述变量被设置并存储。例如,所述变量可以包括如下计数值,其对迄今为止在擦除块中被编程的页的数量进行计数。替代地,上述变量可以为每个相邻页包含一个布尔标志,其指示在当前页被编程时,相邻页是已编程还是已擦除。此外作为替代,MSP可以使用任何其他适合的方法以确定与目标存储单元相比较年轻的潜在干扰存储单元。
在干扰存储单元读取步骤154,MSP 52读取被标记的存储单元(也即,比目标存储单元较年轻的潜在干扰存储单元)的电压。所述MSP可以重新读取干扰存储单元和/或使用ECC解码器对存储在潜在干扰存储单元中的数据进行可靠地解码。在目标存储单元读取步骤158,所述MSP也读取目标存储单元的电压。在一些实施方案中,目标存储单元的电压以高分辨率读取,例如使用具有位数高于存储在每个存储单元中的数据位数的ADC。被标记的存储单元的电压有时可以用降低的分辨率读取。
在扰动贡献估计步骤162,所述MSP估计由较年轻潜在干扰存储单元贡献到目标存储单元的扰动噪声的电平。所估计的扰动电平可以取决于:潜在被干扰存储单元的相对年龄、存储在潜在干扰存储单元中的电压值和/或数据、潜在干扰存储单元相对于目标存储单元的位置(例如,它们是否位于一相邻页、第二相邻页,等等)、被干扰存储单元的最近的编程-擦除循环的次数和/或其他信息或判据。对扰动电平的一种有效估计,是该扰动电平以上述参数为条件的平均值。
在扰动消除步骤166,所述MSP对所估计的扰动电平进行补偿。例如,所述MSP可以从读取自目标存储单元的电压中减去所估计的扰动电平,以产生校正的电压。校正的电压被用于对存储在目标存储单元中的数据解码,或者用于修改ECC解码器度量。
虽然上述说明为清楚起见注重于单个目标存储单元,但是图6的过程也可以随着从存储器读取页,而并行地针对多个目标存储单元执行。
在一些实施方案中,使用编程与验证(P&V)过程对存储单元编程,而当对存储单元编程时,MSP 52采用失真补偿。在一些实施方案中,MSP在对存储单元的编程和读取期间均采用失真补偿。
P&V过程通常用于对存储单元编程。在一典型的P&V过程,通过施加一系列电压脉冲而对一存储单元编程,该一系列电压脉冲的电压电平逐个脉冲增加。在每个脉冲之后,读取(“验证”)已编程的电压电平,且迭代继续进行直到达到期望的电平。P&V过程,例如,由Jung等人于1996年11月在IEEE Journal of Solid State Circuits(11:31)的1575页-1583页上发表的“A 117mm2 3.3V Only 128Mb MultilevelNAND Flash Memory for Mass Storage Applications”中描述,以及由Lee等人于2002年5月在IEEE Electron Device Letters(23:5)的264页-266页发表的“Effects of Floating Gate Interference onNAND Flash Memory Cell Operation”中描述,上述文献均在此处以援引方式纳入本文。
图7是示意性地示出了根据本发明的另一实施方案的用于在存储单元阵列28之中估计和消除失真的方法的流程图。与一些已知的验证读取自存储单元的电压达到期望值的P&V过程不同,图7的方法使得存储在存储单元中的电荷达到期望的电荷,这个电荷表示所存储的数据。
验证存储在存储单元中的电荷电平而不是读取电压,是有好处的,因为在写时和读时的失真度可能是不同的。此方法可以用于补偿任何失真类型或者机制。
所述方法始于MSP 52意欲对某页编程之时。在潜在干扰存储单元读取步骤170,对于页中一将要编程的给定目标存储单元,MSP读取潜在地导致该目标存储单元失真的存储单元。(在一些情况下,MSP已经处理了这些值,因为它们刚被编程,在这种情况下没有必要读取这些存储单元。)在失真计算步骤174,所述MSP估计由潜在干扰存储单元导致的对目标存储单元的失真。所述MSP可以使用任何适当的方法,例如上述的各种不同的估计过程,用于估计失真度。
基于所估计的失真,MSP计算一预先校正的电压值以便编程目标存储单元。通常,MSP通过从意图在所述存储单元中存储的标称电压电平中减去所估计的失真度,来产生校正的电压。
在预校正编程步骤178,所述MSP使用P&V过程,以预校正的电压对目标存储单元编程。作为结果,存储在目标存储单元中的电荷电平真实地反映了写到存储单元中的数据,因为它被预先校正以移除在写的时候存在的失真。
在存储单元读取步骤182,对存储单元的读取可能在对该存储单元编程之后很久才发生,当读取存储单元时,MSP读取目标存储单元以及潜在干扰存储单元。在失真重新估计步骤186,MSP重新估计在读取时由潜在干扰存储单元对目标存储单元导致的失真。MSP可以使用任何适合的方法,例如上述的各种不同的估计过程,用于重新估计所述失真度。
如上所述,目标存储单元可能在很久以前已被编程,而诸如温度和电源电压之类的操作条件可能已经改变。此外,在目标存储单元被编程之后,另外的潜在干扰存储单元可能已经被读、编程或擦除。从而,在步骤186计算的失真度可能与在上述步骤174计算的失真度大相径庭。
在校正步骤190,MSP基于重新估计的失真,校正读取自目标存储单元的电压。校正的电压被用于解码自目标存储单元的数据。为了在读取干扰存储单元的电压时减少失真,以判决导向方式迭代地执行对存储单元数据的解码。
在图7的方法中,在写存储单元的时候和读存储单元的时候都校正失真,且每次校正均使用当前存在的实际失真度。从而,相对于已知的P&V过程,本方法更具鲁棒性,并且更容忍对操作条件和随后的编程操作进行的改变。
在一些实施方案中,仅仅在编程期间采用失真校正,且不经过二次失真校正即对存储单元进行读取。在这些实施方案中,图7的方法的步骤182至190被略去,而MSP应该将来自未经编程的存储单元的干扰纳入考虑。
图8是示意性地示出了根据本发明的一个实施方案用于估计目标存储单元中的失真的又一种方法的流程图。图8的方法利用如下事实,即由在目标存储单元之前编程的存储单元导致的失真可不同于在目标存储单元之后编程的存储单元导致的失真。
另一种假设是,所述阵列使用P&V过程编程,如上所述。在一些已知的P&V过程中,例如在上文引用的由Jung等人所著的文献中,在某一页中的每个存储单元都被编程为标注以0至M-1的M个电压电平中的一个,其中电平0是已擦除电平。所述P&V过程分M个阶段对所述页编程。在阶段i,一系列电压脉冲被施加到编程电平应该为i或更高的存储单元。在每个脉冲之后,所述过程读取不同存储单元的电压,并且停止向已经达到其期望电平的存储单元施加脉冲。
在一些实施方案中,对于一给定的目标存储单元,MSP根据编程时间对潜在干扰存储单元分类。(如上所述,MSP可以存储每个页的被编程的时间标记,并且将存储的标记用于分类过程。)存储单元的一子集,标注为D1,包括潜在干扰存储单元,其在目标存储单元被编程时并未被所述P&V过程完全编程。当目标存储单元被编程时,类D1中的存储单元处于已擦除电平或是被部分编程,但是可能从那时起已被编程。
在一些编程方案中,分数个阶段对存储单元编程。例如,在一些4电平存储单元编程方法中,最低有效位(LSB)和最高有效位(MSB)被在两个单独的步骤中写入。一种示例性的方法由Takeuchi等人于1998年8月在IEEE Journal of Solid-State Circuits(33:8)的1228页-1238页发表的“A Multipage Cell Architecture for High-SpeedProgramming Multilevel NAND Flash Memories”中描述,该文献在此处以援引方式纳入本文。在此类方法中,在某一时间点可将存储单元编程到中间电平,而未来编程步骤将所述存储单元编程到其最终编程值。当使用此类编程方法时,类D1被扩展而包括如下存储单元,该存储单元在目标存储单元被编程时处于已擦除电平或处于中间编程电平,但可以自那时起编程到其最终值。
存储单元32的另一子集,标注为D2,包括潜在干扰存储单元,其在目标存储单元被编程时已被编程。因为当目标存储单元被编程时,从这些存储单元到该目标存储单元的干扰已经存在,故所述P&V过程已经至少部分地对此干扰进行补偿。第三类存储单元,标注为D3,包括与所述目标存储单元并发编程的潜在干扰存储单元,例如,与所述目标存储单元处于同一页上的存储单元。
MSP 52可以根据不同类的潜在干扰存储单元,估计针对目标存储单元的失真。设n和m各自表示阵列28中目标存储单元的行号和列号。则xn,m表示在使用所述P&V过程写目标存储单元之后此目标存储单元的电压。xi,j表示在上次编程迭代之后的目标存储单元电压被验证时的位于i行和j列的存储单元的电压。yn,m表示读取自目标存储单元的存储单元电压值,由于失真,它不同于xn,m。
在yn,m中存在的总失真可被写为
其中hn,m,i,j表示从位于i行j列的干扰存储单元到位于n行m列的目标存储单元的交叉耦合干扰系数。b表示常数偏项。虽然上述公式[7]涉及线性失真模型,但也可以使用非线性模型。
类D1中的存储单元包括在目标存储单元被编程之后而被编程的存储单元。因此,由于该编程操作而添加到这些存储单元的电荷所导致的干扰在那时并不存在,并且所述P&V过程也不可能已经对此失真做补偿。
当目标存储单元被编程时,类D2中的存储单元已经被编程,并且当所述P&V过程对所述目标存储单元编程时,这些存储单元所导致的失真已经存在。因此,当目标存储单元被编程时,所述P&V过程已经(至少部分地)补偿所述失真。然而,在目标存储单元被编程时这种补偿是正确的,并且不考虑在那一时刻和所述目标存储单元被读取时之间所发生的老化、电荷泄漏和其他效应。在以上公式[7]的第二项中的是对电压的估计,其在目标存储单元被编程时存在于干扰存储单元之中。
在一些实施方案中,可通过将所述ECC解码运用到这些存储单元的输出来估计。通过恢复写到存储单元中的比特集,所述ECC可以帮助校正严重的错误,例如由严重泄漏导致的错误。替代地,公式[7]的第二项中的可以用yi,j的无记忆函数或的无记忆函数来估计,例如α·yi,j(或),其为电压电平为yi,j的存储单元估计泄漏错误。
上述公式[7]中的第三项,涉及类D3中的存储单元,假定使用P&V过程,其固有地对由被编程到小于或等于目标存储单元的电平的D3存储单元所导致的失真进行补偿。在目标存储单元已经被完全编程之后,当在与该目标存储单元相同的页上的潜在干扰存储单元被编程到较高电平时,此编程通常在P&V过程的较晚步骤中执行。从而,由具有比目标存储单元更高电平的D3存储单元所导致的失真的有效部分在目标存储单元被编程时将不存在,并且P&V过程将不能补偿此部分失真。当使用在一次操作中对给定存储单元的所有位编程的P&V过程(例如由Jung等人所著的文献中描述的过程)时,上述公式[7]的第三项尤其有效。当使用在多个阶段中对存储单元编程不同的数据位的P&V过程(例如由Takeuchi等人所著的文献中描述的过程)时,上述公式[7]的第三项可被略去。
在电压读取步骤194,图8的方法始于MSP 52从阵列28的存储单元32读取电压。所述电压既包括目标存储单元的电压,也包括潜在地导致对目标存储单元干扰的存储单元的电压。在当前实例中,阵列28的页被循序读取,也即,逐行读取,虽然也可以使用其他读取配置。
在编程时间估计步骤196,在目标存储单元被编程时,MSP估计目标存储单元和潜在干扰存储单元的值(例如,电荷电平)。所述估计可以将一些因素纳入考虑,例如读取自目标存储单元和潜在干扰存储单元的电压、目标存储单元和潜在干扰存储单元的编程顺序、自先前的编程和擦除循环以来经过的时间、存储单元已经经历的擦除循环的数量、诸如电源电压和温度之类的环境参数,等等。
在写-读差估计步骤198,MSP然后估计在目标存储单元被编程时和目标存储单元被读取时产生的所估计的失真度之间的差。MSP可以使用上述公式[7]来估计这个差。在校正步骤200,MSP使用所估计的差来补偿失真(例如,从读取自目标存储单元的电压减去所述差或调整ECC度量)。
在一些P&V过程中,从较小编号的页到较大编号的页循序地将页写到存储器中。从而,当存储单元xn,m被编程时,在i≤n的页中的存储单元已被编程,且可以假设P&V过程补偿了由这些存储单元贡献的失真。
在一些实施方案中,MSP 52以与写这些页的顺序相反的顺序(也即,从较高编号的页到较低编号的页)读取这些页。当读取第n页时,MSP为每个存储单元列m计算失真度量Mm(n):
其中N表示擦除块中的行(字线)的数量,而Xi,j表示从在i行和j列处的存储单元读取的电压。假设失真仅影响所涉及的擦除块中的存储单元。所述MSP通过计算 从读取自当前页的电压去除失真度量。可被用作函数f的示例性函数,可以包括或者
在替代性的实施方案中,MSP并发处理一整块的存储单元。使用待要被编程的数据和交叉耦合系数hn,m,i,j,MSP计算编程值和读取值之间的误差,并且补偿此误差。
虽然图8的示例性方法涉及某些P&V处理实现,但所述方法经必要的修改后,可以和任意其他适合的P&V过程一起使用。本领域技术人员将理解,可以基于所公开的实施方案对本方法进行适应性修改,以与其他种类的P&V过程一起使用。
基于失真估计的数据刷新
在一些实施方案中,MSP 52基于所估计的失真度,刷新(也即,重新编程)存储在存储单元阵列28中的数据。
图9是根据本发明的实施方案示意性地示出了刷新存储单元阵列中的数据的方法的流程图。在页读取步骤210,该方法始于MSP 52从阵列28读取存储器页。在页失真估计步骤214,MSP估计所读取的页中的失真度。为此目的,MSP可以使用任何适当的失真估计方法,例如上文所描述的方法。
在失真度检查步骤218,MSP检查失真度是否可容忍。例如,MSP可以将所估计的失真度与指示最大可容忍的失真度的预定的门限作比较。最大可容忍的失真度通常被选择为使得当达到门限时解码数据仍然有很大可能是无错误的。这种情况保证了刷新的数据有可能是无错误的。
如果失真度是可容忍的,所述方法循环回到上述页读取步骤210,且MSP继续读取并检查存储器页。
另一方面,如果MSP确定在所读取的存储页中的失真度高于可容忍的失真度,则在重新编程步骤222,所述MSP对页的数据重新编程。然后该方法循环回到上述的页读取步骤210。
不同于一些周期性地执行重新编程的公知的存储器刷新方法,不论失真度如何,图9的方法仅在必要时才重新编程数据。从而,与这些公知的方法相比,再编程操作的频率降低。通常,图9的方法结合了***20的常规操作。也即,MSP使用常规的页读和/或失真估计操作,来评估是否需要刷新,而不执行专门的读操作。
虽然此处描述的实施方案主要着重于从多层单元(MLC)取出数据,但是本发明的原理也可用于单层单元(SLC)。虽然此处描述的实施方案主要着重于从固态存储设备取出数据,但是本发明的原理也可以用于在硬盘驱动器(HDD)和其他数据存储介质和设备中存储和取出数据。
因此应该理解,此处所描述的实施方案仅以举例方式引用,且本发明不限于上文中已经具体示出和描述的内容。与此相反,本发明的范围涵盖上述各个特征的组合和子组合,以及其中本领域技术人员在阅读前述说明之后即可作出的未在现有技术中公开的变化和修改。
Claims (24)
1.一种用于操作存储器的方法,包括:
将数据作为相应的第一电压电平存储在所述存储器的一组模拟存储单元中,所述第一电压电平选自可能的值的集合;
在存储所述数据之后,从所述模拟存储单元读取相应的第二电压电平,该第二电压电平受到交叉耦合干扰的影响,该交叉耦合干扰导致所述第二电压电平不同于所述相应的第一电压电平;
处理所述第二电压电平以获得相应的硬判决,每个硬判决均对应于所述第一电压电平的可能的值中的相应值;
基于所述第二电压电平和所述相应的硬判决估计交叉耦合系数,该交叉耦合系数量化所述模拟存储单元之间的交叉耦合干扰;以及
使用所估计的交叉耦合系数,从所读取的第二电压电平重构存储在该组模拟存储单元中的数据。
2.根据权利要求1所述的方法,其中估计交叉耦合系数包括使用块估计过程处理所述第二电压电平和所述相应的硬判决。
3.根据权利要求1所述的方法,其中估计交叉耦合系数包括使用收敛到所述交叉耦合系数的序列估计过程以循序扫描所述第二电压电平以及所述相应的硬判决。
4.根据权利要求1所述的方法,其中估计交叉耦合系数包括采用一个减少在所述所读取的第二电压电平和所述相应的硬判决之间的距离度量的估计过程。
5.根据权利要求1所述的方法,还包括既基于读取自第一模拟存储单元的第二电压电平又基于读取自第二模拟存储单元的第二电压电平,估算在所述存储器中由所述第一模拟存储单元导致的针对所述第二模拟存储单元的交叉耦合干扰。
6.根据权利要求1所述的方法,其中重构数据包括使用如下过程之一将所述交叉耦合干扰从所述第二电压电平中除去,所述过程为:线性均衡过程、判决反馈均衡(DFE)过程、最大后验(MAP)估计过程以及最大似然序列估计(MLSE)过程。
7.根据权利要求1所述的方法,其中估计交叉耦合系数与重构数据包括在第一处理阶段中估计所述交叉耦合系数,并且在后继于所述第一处理阶段的第二处理阶段中消除所估计的交叉耦合干扰。
8.根据权利要求7所述的方法,其中估计交叉耦合系数与重构数据包括将所估计的交叉耦合系数用于所述第二处理阶段的后继情况,并且仅当未能重构所述数据时才重复所述第一处理阶段。
9.根据权利要求1所述的方法,其中存储数据包括使用纠错码(ECC)编码所述数据,其中重构数据包括基于所估计的交叉耦合系数计算纠错度量并且使用所述纠错度量解码所述ECC。
10.一种用于操作存储器的方法,包括:
将数据作为相应的第一电压电平存储在所述存储器的一组模拟存储单元中;
在存储所述数据之后,从所述模拟存储单元读取相应的第二电压电平,该第二电压电平受到交叉耦合干扰的影响,该交叉耦合干扰导致所述第二电压电平不同于所述相应的第一电压电平;
估计交叉耦合系数,其通过处理所述第二电压电平而将所述模拟存储单元之间的交叉耦合干扰量化;以及
使用所估计的交叉耦合系数,从所读取的第二电压电平重构存储在该组模拟存储单元中的数据。
11.根据权利要求10所述的方法,还包括既基于读取自第一模拟存储单元的第二电压电平又基于读取自第二模拟存储单元的第二电压电平,估算在所述存储器中由所述第一模拟存储单元导致的针对所述第二模拟存储单元的交叉耦合干扰。
12.一种数据存储装置,包括:
接口,其操作性地与包含多个模拟存储单元的存储器通信;以及
存储器信号处理器(MSP),其被耦合到所述接口并且被布置为:将数据作为选自可能的值的集合的相应的第一电压电平存储在一组模拟存储单元中;在存储所述数据之后,从所述模拟存储单元读取相应的第二电压电平,该第二电压电平受到交叉耦合干扰的影响,该交叉耦合干扰导致所述第二电压电平不同于所述相应的第一电压电平;处理所述第二电压电平以获得相应的硬判决,每个硬判决均对应于所述第一电压电平的可能的值中的相应值;基于所述第二电压电平和所述相应的硬判决估计交叉耦合系数,该交叉耦合系数量化所述模拟存储单元之间的交叉耦合干扰;以及使用所估计的交叉耦合系数,从所述第二电压电平重构存储在该组模拟存储单元中的数据。
13.根据权利要求12所述的装置,其中所述MSP被布置为:估计交叉耦合系数,包括使用块估计过程处理所述第二电压电平和所述相应的硬判决。
14.根据权利要求12所述的装置,其中所述MSP被布置为:估计交叉耦合系数,包括使用收敛到所述交叉耦合系数的序列估计过程以循序扫描所述第二电压电平以及所述相应的硬判决。
15.根据权利要求12所述的装置,其中所述MSP被布置为:采用减少在所读取的第二电压电平和所述相应的硬判决之间的距离度量的估计过程。
16.根据权利要求12所述的装置,其中所述MSP被布置为:既基于读取自第一模拟存储单元的第二电压电平,又基于读取自第二模拟存储单元的第二电压电平,估算在所述存储器中由所述第一模拟存储单元导致的针对所述第二模拟存储单元的交叉耦合干扰。
17.根据权利要求12所述的装置,其中所述MSP被布置为:使用如下过程之一将所述交叉耦合干扰从所述第二电压电平中除去,所述过程为:线性均衡过程、判决反馈均衡(DFE)过程、最大后验(MAP)估计过程以及最大似然序列估计(MLSE)过程。
18.根据权利要求12所述的装置,其中所述MSP被布置为:在第一处理阶段中估计所述交叉耦合系数,并且在后继于所述第一处理阶段的第二处理阶段中消除所估计的交叉耦合干扰。
19.根据权利要求18所述的装置,其中所述MSP被布置为:将所估计的交叉耦合系数用于所述第二处理阶段的后继情况,并且仅当未能重构所述数据时才重复所述第一处理阶段。
20.根据权利要求12所述的装置,其中所述MSP被布置为:在存储所述数据之前使用纠错码(ECC)编码所述数据,基于所估计的交叉耦合系数计算纠错度量,以及通过使用所述纠错度量解码所述ECC以重构所述数据。
21.一种数据存储装置,包括:
接口,其操作性地与包含多个模拟存储单元的存储器通信;以及
存储器信号处理器(MSP),其被耦合到所述接口并且被布置为:将数据作为相应的第一电压电平存储在所述存储器的一组模拟存储单元中;在存储所述数据之后,从所述模拟存储单元读取相应的第二电压电平,该第二电压电平受到交叉耦合干扰的影响,该交叉耦合干扰导致所述第二电压电平不同于所述相应的第一电压电平;估计交叉耦合系数,其通过处理所述第二电压电平而将所述模拟存储单元之间的交叉耦合干扰量化;以及使用所估计的交叉耦合系数,从所读取的第二电压电平重构存储在该组模拟存储单元中的数据。
22.根据权利要求21所述的装置,其中所述MSP被布置为:既基于读取自第一模拟存储单元的第二电压电平又基于读取自第二模拟存储单元的第二电压电平,估算在所述存储器中由所述第一模拟存储单元导致的针对所述第二模拟存储单元的交叉耦合干扰。
23.一种数据存储装置,包括:
存储器,其包含多个模拟存储单元;以及
存储器信号处理器(MSP),其被耦合到所述存储器并且被布置为:将数据作为选自可能的值的集合的相应的第一电压电平存储在一组模拟存储单元中;在存储所述数据之后,从所述模拟存储单元读取相应的第二电压电平,该第二电压电平受到交叉耦合干扰的影响,该交叉耦合干扰导致所述第二电压电平不同于所述相应的第一电压电平;处理所述第二电压电平以获得相应的硬判决,每个硬判决都对应于所述第一电压电平的可能的值中的相应值;估计交叉耦合系数,其基于所述第二电压电平和所述相应的硬判决,对所述模拟存储单元之间的交叉耦合干扰进行量化;以及使用所述交叉耦合系数,从所述第二电压电平重构存储在该组模拟存储单元中的数据。
24.一种数据存储装置,包括:
存储器,其包含多个模拟存储单元;以及
存储器信号处理器(MSP),其被耦合到所述存储器并且被布置为:将数据作为相应的第一电压电平存储在所述存储器的一组模拟存储单元中;在存储所述数据之后,从所述模拟存储单元读取相应的第二电压电平,该第二电压电平受到交叉耦合干扰的影响,该交叉耦合干扰导致所述第二电压电平不同于所述相应的第一电压电平;估计交叉耦合系数,其通过处理所述第二电压电平而将所述模拟存储单元之间的交叉耦合干扰量化;以及使用所估计的交叉耦合系数,从所读取的第二电压电平重构存储在该组模拟存储单元中的数据。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210303689.6A CN103208309B (zh) | 2006-05-12 | 2007-05-10 | 存储设备中的失真估计和消除 |
CN201210303094.0A CN103258572B (zh) | 2006-05-12 | 2007-05-10 | 存储设备中的失真估计和消除 |
CN201210303215.1A CN103280239B (zh) | 2006-05-12 | 2007-05-10 | 存储设备中的失真估计和消除 |
Applications Claiming Priority (13)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US74710606P | 2006-05-12 | 2006-05-12 | |
US60/747,106 | 2006-05-12 | ||
US80653306P | 2006-07-04 | 2006-07-04 | |
US60/806,533 | 2006-07-04 | ||
US82706706P | 2006-09-27 | 2006-09-27 | |
US60/827,067 | 2006-09-27 | ||
US86739906P | 2006-11-28 | 2006-11-28 | |
US60/867,399 | 2006-11-28 | ||
US88502407P | 2007-01-16 | 2007-01-16 | |
US60/885,024 | 2007-01-16 | ||
US88642907P | 2007-01-24 | 2007-01-24 | |
US60/886,429 | 2007-01-24 | ||
PCT/IL2007/000576 WO2007132453A2 (en) | 2006-05-12 | 2007-05-10 | Distortion estimation and cancellation in memory devices |
Related Child Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210303215.1A Division CN103280239B (zh) | 2006-05-12 | 2007-05-10 | 存储设备中的失真估计和消除 |
CN201210303094.0A Division CN103258572B (zh) | 2006-05-12 | 2007-05-10 | 存储设备中的失真估计和消除 |
CN201210303689.6A Division CN103208309B (zh) | 2006-05-12 | 2007-05-10 | 存储设备中的失真估计和消除 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101496110A CN101496110A (zh) | 2009-07-29 |
CN101496110B true CN101496110B (zh) | 2013-02-13 |
Family
ID=40925468
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800261813A Active CN101512661B (zh) | 2006-05-12 | 2007-05-10 | 用于存储设备的失真估计与纠错编码的组合 |
CN2007800260948A Active CN101501779B (zh) | 2006-05-12 | 2007-05-10 | 具有自适应容量的存储设备 |
CN2007800261211A Active CN101496110B (zh) | 2006-05-12 | 2007-05-10 | 存储设备中的失真估计和消除 |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800261813A Active CN101512661B (zh) | 2006-05-12 | 2007-05-10 | 用于存储设备的失真估计与纠错编码的组合 |
CN2007800260948A Active CN101501779B (zh) | 2006-05-12 | 2007-05-10 | 具有自适应容量的存储设备 |
Country Status (1)
Country | Link |
---|---|
CN (3) | CN101512661B (zh) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8499227B2 (en) * | 2010-09-23 | 2013-07-30 | Micron Technology, Inc. | Memory quality monitor based compensation method and apparatus |
CN102831932B (zh) * | 2011-06-14 | 2015-11-18 | 群联电子股份有限公司 | 数据读取方法、存储器控制器及存储器储存装置 |
US9032269B2 (en) * | 2011-07-22 | 2015-05-12 | Sandisk Technologies Inc. | Systems and methods of storing data |
US20140164869A1 (en) * | 2011-07-27 | 2014-06-12 | Erik Ordentlich | Efficient data-storage devices that include memory elements characterized by potentially large switching latencies |
CN104025193A (zh) * | 2011-07-27 | 2014-09-03 | 惠普发展公司,有限责任合伙企业 | 用于在基于忆阻器的数据存储设备内减少写缓冲器容量的方法和*** |
US8793463B2 (en) * | 2011-09-12 | 2014-07-29 | Microsoft Corporation | Allocation strategies for storage device sets |
CN103946811B (zh) | 2011-09-30 | 2017-08-11 | 英特尔公司 | 用于实现具有不同操作模式的多级存储器分级结构的设备和方法 |
EP2761467B1 (en) * | 2011-09-30 | 2019-10-23 | Intel Corporation | Generation of far memory access signals based on usage statistic tracking |
US9600416B2 (en) | 2011-09-30 | 2017-03-21 | Intel Corporation | Apparatus and method for implementing a multi-level memory hierarchy |
EP3382556A1 (en) | 2011-09-30 | 2018-10-03 | INTEL Corporation | Memory channel that supports near memory and far memory access |
US9317429B2 (en) | 2011-09-30 | 2016-04-19 | Intel Corporation | Apparatus and method for implementing a multi-level memory hierarchy over common memory channels |
KR20130060791A (ko) * | 2011-11-30 | 2013-06-10 | 삼성전자주식회사 | 마모도 제어 로직을 포함하는 메모리 시스템, 데이터 저장 장치, 메모리 카드, 그리고 솔리드 스테이트 드라이브 |
CN107240419B (zh) * | 2012-02-22 | 2020-04-07 | 慧荣科技股份有限公司 | 读取快闪存储器中所储存的数据的方法、存储器控制器与*** |
US9286972B2 (en) | 2012-02-22 | 2016-03-15 | Silicon Motion, Inc. | Method, memory controller and system for reading data stored in flash memory |
US9177664B2 (en) | 2012-02-22 | 2015-11-03 | Silicon Motion, Inc. | Method, memory controller and system for reading data stored in flash memory |
CN103295631B (zh) * | 2012-02-22 | 2016-05-18 | 慧荣科技股份有限公司 | 读取快闪存储器中所储存的数据的方法、存储器控制器与*** |
JP5862359B2 (ja) * | 2012-02-23 | 2016-02-16 | 日本電気株式会社 | シンクライアントシステム、接続管理サーバ、接続管理方法、及び接続管理プログラム |
US9026391B2 (en) | 2012-02-29 | 2015-05-05 | Intel Mobile Commnications GmbH | Distortion estimation apparatus and method |
WO2014006147A1 (de) * | 2012-07-04 | 2014-01-09 | Hexagon Technology Center Gmbh | Optischer positionsgeber mit analogem speicher |
US9037670B2 (en) * | 2012-09-18 | 2015-05-19 | Cisco Technology, Inc. | Ultra low latency network buffer storage |
CN102982849B (zh) * | 2012-12-05 | 2015-10-28 | 清华大学 | 用于数据存储的ecc解码控制方法 |
US9098445B2 (en) * | 2013-03-14 | 2015-08-04 | Apple Inc. | Selection of redundant storage configuration based on available memory space |
CN105304143B (zh) * | 2014-07-21 | 2018-10-02 | 群联电子股份有限公司 | 解码方法、存储器控制电路单元及存储器存储装置 |
KR20160102738A (ko) * | 2015-02-23 | 2016-08-31 | 에스케이하이닉스 주식회사 | 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법 |
US9653176B2 (en) * | 2015-06-16 | 2017-05-16 | Sk Hynix Memory Solutions Inc. | Read disturb reclaim policy |
KR102500616B1 (ko) * | 2016-02-26 | 2023-02-17 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
US10277427B1 (en) * | 2018-01-15 | 2019-04-30 | Micron Technology, Inc. | Voltage correction computations for memory decision feedback equalizers |
US10872009B2 (en) * | 2018-02-08 | 2020-12-22 | Micron Technology, Inc. | Mitigating a voltage condition of a memory cell in a memory sub-system |
KR102648618B1 (ko) * | 2018-03-28 | 2024-03-19 | 에스케이하이닉스 주식회사 | 컨트롤러, 그것의 동작방법 및 컨트롤러를 포함하는 메모리 시스템 |
CN110377538B (zh) * | 2018-04-13 | 2021-03-02 | 深圳大心电子科技有限公司 | 存储器管理方法以及存储控制器 |
CN110908826B (zh) * | 2019-10-16 | 2021-04-20 | 长江存储科技有限责任公司 | 数据处理方法及相关产品 |
CN113674777B (zh) * | 2021-10-21 | 2022-03-15 | 北京紫光青藤微***有限公司 | 数据存储装置和用于调用存储数据的方法 |
CN116705089A (zh) * | 2022-02-25 | 2023-09-05 | 长鑫存储技术有限公司 | 读写转换电路及存储器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6209113B1 (en) * | 1996-10-18 | 2001-03-27 | Micron Technology, Inc. | Method and apparatus for performing error correction on data read from a multistate memory |
US6363008B1 (en) * | 2000-02-17 | 2002-03-26 | Multi Level Memory Technology | Multi-bit-cell non-volatile memory with maximized data capacity |
CN1437721A (zh) * | 2000-02-17 | 2003-08-20 | 三因迪斯克公司 | 多数据区段同时编程和在其它指定块中存储物理块特征的闪速eeprom*** |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US7301807B2 (en) * | 2003-10-23 | 2007-11-27 | Sandisk Corporation | Writable tracking cells |
-
2007
- 2007-05-10 CN CN2007800261813A patent/CN101512661B/zh active Active
- 2007-05-10 CN CN2007800260948A patent/CN101501779B/zh active Active
- 2007-05-10 CN CN2007800261211A patent/CN101496110B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6209113B1 (en) * | 1996-10-18 | 2001-03-27 | Micron Technology, Inc. | Method and apparatus for performing error correction on data read from a multistate memory |
US6363008B1 (en) * | 2000-02-17 | 2002-03-26 | Multi Level Memory Technology | Multi-bit-cell non-volatile memory with maximized data capacity |
CN1437721A (zh) * | 2000-02-17 | 2003-08-20 | 三因迪斯克公司 | 多数据区段同时编程和在其它指定块中存储物理块特征的闪速eeprom*** |
Also Published As
Publication number | Publication date |
---|---|
CN101512661A (zh) | 2009-08-19 |
CN101501779B (zh) | 2013-09-11 |
CN101512661B (zh) | 2013-04-24 |
CN101496110A (zh) | 2009-07-29 |
CN101501779A (zh) | 2009-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101496110B (zh) | 存储设备中的失真估计和消除 | |
CN103280239B (zh) | 存储设备中的失真估计和消除 | |
US8547740B2 (en) | Adaptive estimation of memory cell read thresholds | |
US8151166B2 (en) | Reduction of back pattern dependency effects in memory devices | |
US8060806B2 (en) | Estimation of non-linear distortion in memory devices | |
US8156403B2 (en) | Combined distortion estimation and error correction coding for memory devices | |
CN101601094B (zh) | 使用多个门限读取存储单元的方法 | |
US7697326B2 (en) | Reducing programming error in memory devices | |
KR101274950B1 (ko) | 조절가능한 용량을 가진 메모리 디바이스 | |
JP4999921B2 (ja) | メモリ素子用の歪み推定と誤り訂正符号化の組み合せ | |
Dong et al. | Using lifetime-aware progressive programming to improve SLC NAND flash memory write endurance | |
Zedaka et al. | Neural modulation for flash memory: an unsupervised learning framework for improved reliability |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
ASS | Succession or assignment of patent right |
Owner name: APPLE INC. Free format text: FORMER OWNER: ANOBIT TECHNOLOGIES LTD. Effective date: 20130105 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20130105 Address after: American California Applicant after: Apple Computer, Inc. Address before: Israel Hertz Leah Applicant before: Anobit Technologies Ltd. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |