首页> 中国专利> 使用多个门限读取存储单元的方法

使用多个门限读取存储单元的方法

摘要

一种操作存储器(28)的方法,包括通过将选自标称值集的各个模拟输入值写入存储器的模拟存储单元(32),把数据存储在存储器的模拟存储单元中,所述数据以纠错码(ECC)编码。通过执行多次读取操作读取存储的数据,所述读取操作将所述模拟存储单元的模拟输出值和各个不同的读取门限相比较,从而为每个模拟存储单元生成多个比较结果,其中,至少有两个读取门限被置于标称值集内的一对彼此相邻的标称值之间。根据多个比较结果计算软度量。使用软度量解码ECC,从而提取被存储在模拟存储单元中的数据。

著录项

  • 公开/公告号CN101601094A

    专利类型发明专利

  • 公开/公告日2009-12-09

    原文格式PDF

  • 申请/专利权人 爱诺彼得技术有限责任公司;

    申请/专利号CN200780040493.X

  • 发明设计人 N·萨莫;O·沙尔维;D·索科洛夫;

    申请日2007-10-30

  • 分类号G11C11/34(20060101);G11C16/04(20060101);G11C16/06(20060101);G11C29/00(20060101);

  • 代理机构11285 北京北翔知识产权代理有限公司;

  • 代理人谢静;杨勇

  • 地址 以色列赫兹利亚

  • 入库时间 2023-12-17 23:10:12

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-03-27

    授权

    授权

  • 2013-01-30

    专利申请权的转移 IPC(主分类):G11C11/34 变更前: 变更后: 登记生效日:20130105 申请日:20071030

    专利申请权、专利权的转移

  • 2010-02-03

    实质审查的生效

    实质审查的生效

  • 2009-12-09

    公开

    公开

说明书

相关申请的交叉引用

本申请要求下列专利申请的权益:2006年10月30日提交的美国 临时专利申请60/863,506、2006年11月28日提交的美国临时专利申请 60/867,399、2007年2月8日提交的美国临时专利申请60/888,828、2007 年2月11日提交的美国临时专利申请60/889,277、2007年3月4日提交 的美国临时专利申请60/892,869、2007年3月13日提交的美国临时专利 申请60/894,456、2007年5月12日提交的美国临时专利申请60/917,653、 2007年7月20日提交的美国临时专利申请60/950,884和2007年7月22 日提交的美国临时专利申请60/951,215,各项专利申请的公开内容在此 以援引的方式纳入本说明书。

发明领域

本发明总体涉及存储器件,具体涉及从一些存储单元中读取数据 的方法和系统。

背景技术

几种类型的存储器件,如闪速存储器,使用模拟存储单元阵列存 储数据。每个模拟存储单元存储一个模拟值的量(如电荷或电压),如 电荷或电压,它们代表存储在单元中的信息。例如,在闪速存储器中, 每个模拟存储单元存放一定量的电荷。可能的模拟值的范围通常被分 成多个区,每个区对应一个或多个数据比特值。通过写入一个对应于 所需比特的标称模拟值而将数据写入模拟存储单元。可被存储在模拟 存储单元中的可能比特值也称为该单元的存储状态。

一些通常也被称为单层单元(SLC)器件的存储器件,在每个存 储单元中存储1比特信息,即存储单元均可被编程以承担两种可能的 存储状态。通常被称为多层单元(MLC)器件的更高密度的器件,在每个 存储单元中存储两个或多个比特信息,即可被编程以承担两种以上可能 的存储状态。

闪速存储器,例如如2003年4月在proceedings of the IEEE (volume91,number 4)第489-502页由Bez等人发表的“Introduction to Flash Memory”中所述,该文献在此处以援引方式全部纳入本文。 例如,在纽约州纽约市举办的1996年的国际电子器件大会(IEDM)的 学报(Proceeding of the 1996 IEEE International Electron Devices Meeting)的第169-172页上由Eitan等人发表的“Multilevel Flash Cells and their Trade-Offs”,描述了多层闪速存储单元和器件,该文献在此 以援引方式全部纳入本文。该文对比了几类多层闪速存储单元,如共 地型、DINOR、AND、NOR和NAND存储单元。

在1999年9月21日-24日在日本东京举办的固态器件与材料国 际会议(SSDM)的学报的(Proceedings of the 1999International Conference on Solid State Devices and Materials)第522-524页上由 Eitan等人发表的“Can NROM,a 2-bit,Trapping Storage NVM Cell, Give a Real Challenge to Floating Gate Cells?”描述了另一种模拟存 储设备,称为氮化物只读存储器(NROM),该文献在此以援引方式全部 纳入本文。在2002年2月3日~7日在美国加州旧金山市举办的IEEE 国际固体电路技术会议(ISSCC 2002)的学报(Proceedings of the 2002 IEEE International Solid-State Circuits Conference)的第100-101页 由Maayan等人发表的“A 512Mb NROM Flash Data Storage Memory with 8MB/s Data Rate”中,描述了NROM单元,其在此处 以援引方式全部纳入本文。模拟存储单元的其它范例类型有:浮置栅 极(FG)单元,铁电RAM(FRAM)单元,磁RAM(MRAM)单元,电荷 捕获闪速存储(CTF)和相变RAM(PRAM,也称为相变存储器-PCM) 单元。例如,在2004年5月16~19日在塞尔维亚和黑山(Serbia and Montenegro)的Nis举办的第24届微电子国际学会(MIEL) (Proceedings of the 24th international Conference on Microelectronics)的学报第一卷的第377-484页上由Kim和Koh发 表的“Future Memory Technology including Emerging New Memories”中,描述了FRAM、MRAM和PRAM单元,其在此处以 援引方式全部纳入本文。

从模拟存储单元读出的模拟值有时失真。失真可能有多种原因, 如来自相邻存储单元的电场耦合、阵列中其它存储单元的访问操作产 生的扰动噪声,以及器件老化引起的门限电压漂移。一些常见的失真 机理,在如上文所引Bez等人的文中描述。在2002年5月的IEEE电 子器件快报(IEEE Electron Device Letters)(23:5)第264-266页上发 表的“Effects of Floating Gate Interference on NAND Flash Memory Cell Operation”中,Lee等人还描述了失真效应,其在此处以援引方式 全部纳入本文。

从模拟存储单元读取数据常包括把存储在单元中的模拟值与一 个或多个门限或参考电平进行对比。已知本技术领域几种确定适当门 限值的方法。例如U.S.Patent 5,657,332描述了从固态存储系统中的硬 错误得以恢复的方法,该专利的公开内容在此以引用的方式纳入本说 明书。硬错误可能产生于其门限电压从其预期电平漂移而引起读取错 误的单元处发生。存储系统包括存储单元阵列,每个单元都能让其门 限电压被编程或擦除到预期电平。对众多单元组中的每一个都提供检 错方案,用于识别其中的读取错误。在每一次对包含读取错误的个别 单元组进行读取操作之前,调整读取参考电平,每一次该读取参考电 平都从正常读取的参考电平偏置一个预定步长,直至错误检查装置不 再指示读取错误。各存储单元的与读取错误关联的漂移门限电压被重 新写为其预期电平。

U.S.Patent 7,023,735描述了读取闪速存储单元的方法,其不仅比 较闪速存储单元的门限电压和整体参考电压,还比较门限电压和部分 参考电压,该专利公开的内容在此以引用的方式纳入本说明书。

美国专利申请公开2007/0091677,描述了从一个或多个闪速存储 单元中读取数据和从读取错误中恢复的方法、器件和计算机可读码, 该申请公开的内容在此以引用的方式纳入本说明书。一些实施方案中, 错误检查和校正模块纠错失败时,就使用一个或多个修正参考电压对 闪速存储单元重新读取至少一次,直到能够实施成功纠错。一些实施 方案中,成功纠错后,即处理后续的读请求,而期间不用将数据重新 写入到闪速存储单元。

U.S.Patent 6,963,505描述了确定参考电压的方法、电路和系统, 该专利公开的内容在此以引用的方式纳入本说明书。在一些实施方案 中,建立了一组操作参考单元用于对非易失性存储(NVM)块或阵列中 的单元的操作中。NVM块或阵列中的至少一个单元子组可以使用两组 或多组测试参考单元中的每一组来读取,其中每一组测试参考单元可 以产生或提供至少稍微偏离于每一个其它测试参考单元组的参考电 压。对于用于读取NVM块的至少一个子组的每一组测试参考单元, 可以计算或者确定读误差率。可以选择与相对低的读取误差率相关的 一组测试参考单元作为用于操作NVM块或阵列中的所述单元子组之 外的其它单元的操作参考单元组。

U.S.Patent 7,196,928和美国专利申请公开2006/0221692, 2007/0103986,2007/0109845及2007/0109849中描述了几种读存储单元 的方法,其中考虑了相邻的存储单元的编程状态,各专利申请公开的 内容在此以引用的方式纳入本说明书。

在从存储单元中读取数据时,一些已知的方法使用与所存储数据的 品质相关的信息。例如U.S.Patent 6,751,766描述了几种方法用于估计存 储系统中存储的数据的品质,并根据估计的品质操作存储系统,该专利 公开的内容在此以引用的方式纳入本说明书。数据品质有时在读取操作 过程中被加以估计。随后通过使用纠错码(ECC),可以利用品质指示更加 有效地检查和重构数据。或者,可以构造数据品质统计量,以及可以以 一种修正方式关联数字化数据值,以防止数据损坏。

发明内容

本发明的实施方案提供了一种操作存储器的方法,包括:

通过将选自标称值集的各个模拟输入值写入存储器的模拟存储单 元,把数据存储在存储器的模拟存储单元中,所述数据以纠错码(ECC) 编码;

通过执行多次读取操作读取存储的数据,所述读取操作将所述模 拟存储单元的模拟输出值和各个不同的读取门限相比较,从而为每个 模拟存储单元生成多个比较结果,其中,至少有两个读取门限被置于 标称值集内的一对彼此相邻的标称值之间;

根据多个比较结果计算软度量;和

使用软度量解码ECC,从而提取被存储在模拟存储单元中的数据。

在一些实施方案中,每个模拟存储单元存储该数据的一个或多个 比特,并且每个软度量对应于其中的一个比特。在一个实施方案中, 至少一些模拟存储单元中的每个模拟存储单元存储该数据的两个或多 个比特,其中读取数据包括,对于所述至少一些模拟存储单元中的每 个模拟存储单元,分别在两个或多个解码阶段,读取两个或多个数据 比特,且其中计算软度量包括,根据在先于第一解码阶段的第二解码 阶段读取的第二比特值,修改在第一解码阶段读取的第一比特的软度 量。修改软度量可包括根据第二比特的值对第一比特的软度量进行条 件反转。

在另一实施方案中,该方法包括进行一次初始尝试:使用初始读 取门限集解码ECC,使初始集中不超过一个读取门限被置于每对彼此 相邻的标称值之间,一旦初始尝试失败,将模拟输出值和多个读取门 限进行比较。

在又一实施方案中,每个比较结果都具有第一和第二可能值中的 一个,并且其中计算软度量包括确定分别具有第一和第二可能值的比 较结果所对应的第一和第二计数,以及根据所述第一和第二计数计算 软度量。

在又一实施方案中,所述方法还包括一旦解码ECC失败,增添一 个或多个另加的读取门限到所述多个读取门限,根据另加的读取门限 重新计算软度量,并使用重新计算的软度量解码ECC。增添另加的门 限包括渐进地增加多个读取门限直至满足预定的条件。

在一公开的实施方案中,从第一组模拟存储单元中读取数据进一 步包括估计由第二组模拟存储单元对第一组所造成的干扰和消除所估 计的干扰。消除所估计的干扰包括根据所估计的干扰对第一组所关联 的软度量进行修改。在一些实施方案中,该方法包括,一旦第一组内 的ECC解码失败,选择是否执行下列之一:

重新读取第二组中的数据,从而重新估计和消除干扰;

通过读取第三组存储单元中的数据重新估计干扰;

增添一个或多个另加的读取门限,使用另加的读取门限重新读取 第一组中的数据。

在一个实施方案中,计算软度量包括将软度量标准化以使不依赖 于读取门限的数量。执行多次读取操作可包括设置以彼此不同的非均 匀间隔间隔开的读取门限。

本发明另外还提供了一种数据存储设备,包括:

一个接口,其可操作地与包含众多模拟存储单元的存储器进行通 信;和

一个存储器信号处理器(MSP)器件,其与该接口相连并被结合,用 以通过将选自标称值集的各个模拟输入值写入模拟存储单元,把数据 存储在模拟存储单元中,所述数据以纠错码(ECC)编码;用以通过执行 多次读取操作读取所存储的数据,所述读取操作将所述模拟存储单元 的模拟输出值和各个不同的读取门限相比较,从而对每个模拟存储单 元生成多个比较结果,其中,至少有两个读取门限被置于标称值集内 的一对彼此相邻的标称值之间;用以根据多个比较结果计算软度量; 和使用软度量解码ECC,从而提取被存储在模拟存储单元中的数据。

本发明的实施方案还提供了一种数据存储设备,包括:

一个存储器件,包括:

多个模拟存储单元,其被配置以存储数据,所述数据被以纠错码 (ECC)编码且作为选自标称值集的各模拟输入值而被写入模拟存储单 元;以及

读取电路,该电路被结合以通过执行多次读取操作读取所存储的 数据,所述读取操作将所述模拟存储单元的模拟输出值和各个不同的 读取门限相比较,从而对每个模拟存储单元生成多个比较结果,其中, 至少有两个读取门限被置于标称值集内的一对彼此相邻的标称值之 间;用以根据多个比较结果计算软度量;和使用软度量解码ECC,以 及输出计算出的软度量;和

一个存储器信号处理器(MSP)器件,其连接到存储器件并被结合用 于接收读取电路所计算出来的软度量,以及使用软度量解码ECC。

根据本发明的一个实施方案,还提供了一种操作存储器的方法, 包括:

通过将各模拟输入值写入存储器的模拟存储单元,把数据存储在 存储器的模拟存储单元中,所述数据以纠错码(ECC)编码;

通过执行多次读取操作读取存储的数据,所述读取操作将所述模 拟存储单元的模拟输出值和读取门限集相比较,从而为每个模拟存储 单元生成多个比较结果;

根据多个比较结果计算软度量;和

使用软度量解码ECC,从而提取被存储在模拟存储单元中的数据; 以及

一旦未能成功提取数据,通过增添一个或多个新的读取门限到读 取门限集来扩展该集,根据扩展的读取门限集,更新多个比较结果, 重新计算软软度量,并重新解码ECC,从而提取数据。

在一个实施方案中,扩展读取门限集包括根据模拟存储单元的输 出模拟值选择一个或多个新的读取门限。选择一个或多个新的读取门 限包括确定至少一个选自如下属性组的属性,所述属性组由所述多个 新的读取门限和所述新的读取门限的值组成。

本发明将以其下列包含附图的实施方案的详细说明更加完全地被 理解:

附图简要说明

图1示意性地示出了一种根据本发明一个实施方案的用于存储器 信号处理的系统的框图;

图2是一根据本发明一个实施方案的存储单元阵列的示意图;

图3是根据本发明一个实施方案的单层单元(SLC)中的读取门限的 示意图;

图4是根据本发明一个实施方案的多层单元(MLC)中的读取门限 的示意图;

图5是根据本发明一个实施方案的从模拟存储单元读取数据的方 法的流程示意图;

图6是根据本发明一个实施方案的计算软度量的方法的流程示意 图;

图7是根据本发明一个实施方案的计算软度量的电路的示意框图;

图8是根据本发明另一个实施方案的从模拟存储单元读取数据方 法的流程示意图;

图9是根据本发明又一个实施方案的从模拟存储单元读取数据的 过程的示意图;

图10是根据本发明再一个实施方案的从模拟存储单元读取数据的 方法的流程示意图;和

图11是根据本发明替代实施方案的存储器信号处理系统的示意框 图;

具体实施方式

概述

本发明实施方案提供改进的用于从模拟存储单元,如闪速存储单元 中,读取数据的方法和系统。在本文下述一些实施方案中,存储器信号 处理器(MSP)把以纠错码(ECC)编码的数据存储在模拟存储单元阵列中。 MSP通过把各自的模拟值写入模拟存储单元,来存储经编码的数据。模 拟值选自一组标称模拟值(nominal analog value)集,这些标称模拟 值代表数据。

MSP通过执行多个读取操作从模拟存储单元中读取数据,读取操 作将写入存储单元的模拟值与多个读取门限进行比较。读取门限被设定 为至少有两个读取门限置于一对相邻的标称值之间。所述多个门限比较 为每个模拟存储单元生成多个比较结果。MSP根据多个比较结果计算软 度量。软度量提供与读取自存储单元的值或存储单元中的单个比特的值 相关的可信度或确定度的量化测量。MSP使用软度量对ECC解码。在 一些实施方案中,MSP以迭代方式增加读取门限的个数,直至实现成功 解码。

一些已知的读取方法在任一给定时间使用单个门限以区分相邻的 存储状态。不同于这些已知方法,此处描述的方法和系统使用多个门限 执行多个读取操作,所述多个门限位于相邻存储状态间。通常,多个门 限位于相邻标称值之间的边界区域,以使多个比较结果传递和这些区域 内的模拟值统计分布相关的有价值信息。从而,基于此信息的软度量使 ECC解码过程中能够纠正更多的读取错误,并提供改进的整体错误概 率。

一些已知的读取方法为了改善解码性能而修改门限值。不同于这些 已知方法,本发明所描述的方法和系统不修改门限值,而是增添新的门 限到已有集合中,通过提高软度量的精确度来增进解码性能。

本发明公开的方法和系统实现的增强的解码性能提高了数据存储 的可靠性、存储密度和存储器件的数据保持时间,使给定性能级别的存 储器件成本和复杂度降低。

系统描述

图1示意性地示出了一种根据本发明一个实施方案的用于存储器 信号处理的系统20的框图;系统20可用于各种主机系统和器件中,如 计算器、移动电话或其它通讯终端、可移除式存储模块(U盘 (“disk-on-key”)器件)、数码相机、音乐及其它媒体播放器、和/或任 何其它存储与取出数据的系统或器件。

系统20包含一个存储器件24,其将数据存储在存储单元阵列28 中。存储阵列包含多个模拟存储单元32。在本发明专利申请的语境和权 利要求中,术语“模拟存储单元”(analog memory cell)用来描述任何保 存一个物理参数的连续模拟值(如电压或电荷)的存储单元。阵列28可 包含任何类型的模拟存储单元,例如NAND、NOR和CTF型闪速存储 单元,PCM、NROM、FRAM、MRAM和DRAM单元。存储在单元 中的电荷电位,和/或单元中写入与读出的模拟电压或电流,在本文中总 称为模拟值。

通过对单元编程使承担各自的存储状态,系统20把数据存储在模 拟存储单元中。存储状态选自一有限的可能状态集,并且每个状态对应 一定的标称模拟值。例如,通过把四种可能的标称模拟值之一写入该单 元,2比特每单元的多层单元可被编程而承担四种可能的存储状态之一。

要存储在存储器件24中的数据被提供给该器件并缓存在数据缓冲 器36中。然后借助于读写(R/W)单元40,该数据被转化成模拟电压并被 写入存储单元32中,读写单元40的功能在下文具体说明。当从阵列28 读出数据时,读写单元40将电荷,并由此而将存储单元32的模拟电压, 转换成具有1比特或多比特分辨率的数字采样(sample)。采样缓存在 缓冲器36中。存储器件24的操作和定时由控制逻辑单元48管理。

存储器信号处理器(MSP)52执行存储器件24中的数据的存入和取 出。存储器信号处理器(MSP)52包含一个信号处理单元60,其处理写入 存储器件24中的和从该存储器件中读出的数据。单元60使用纠错码 (ECC)对要写入存储单元的数据进行编码,对取出的数据进行ECC解码。

特别地,MSP52通过把读取自存储单元的值与多个读取门限进行 比较,从存储单元32中读出数据。单元60所使用的ECC解码方案基于 软度量,软度量是根据多个门限比较结果计算得到的。读取数据和计算 软度量的范例方法在下文具体说明。

许多已知的ECC解码方案能接受已编码比特或符号的软度量作为 输入。例如,单元60可以采用分块码,如 Bose-Chaudhuri-Hocquenghem(BCH)码、低密度奇偶校验(LDPC)码或 Reed-Solomon(RS)码、格码、turbo码或其它任何适用的能运作在软度 量上的ECC和解码方案。本文所描述的方法和系统不限于分块码,而是 也能与卷积码连用。

MSP 52包含数据缓冲器72,其被单元60用于存储数据和与存储 器件24接口。MSP 52也包含输入/输出(I/O)缓冲器56,其形成MSP与 主机系统间的接口。控制器76管理MSP 52的操作和定时。信号处理单 元60和控制器76可以以硬件实现。或者,单元60和/或控制器76可包 含运行适用软件的微处理器,或者软件和硬件要素的组合。

图1的配置为一种范例系统配置,其仅为概念清晰之用。也可采用 任何其它适用的配置。为清楚起见,非理解本发明原理所必需的元件, 如各种接口、寻址电路、定时和时序电路、以及调试电路,都从附图中 略去。

在图1所示示例性系统配置中,存储器件24和MSP 52以两个独 立的集成电路(IC)实现。然而,在替代实施方案中,存储器件和MSP可 以集成在单个多芯片封装(MCP)或系统级芯片(SoC)中的分离的半导体 裸片(die)上。又或者,部分或全部MSP电路可驻留于存储阵列28 所在的同一裸片中。下文图11描述了这种范例配置。又或者,MSP 52 的部分或全部功能以软件实现,并由主机系统的处理器或其它部件执行。 在一些实施方式中,单个MSP 52可以连接到多个存储器件24。系统20 的某些实施方案的附加构造方面如前面引用的美国临时专利申请 60/867,399中所述。

在通常的写操作中,从主机接受要被写入存储器件24的数据,并 将该数据缓存在I/O缓冲器56中。此数据,通过数据缓冲器72,传送 到存储器件24。这些数据可在被传送到存储器件进行编程之前被MSP 52预处理。例如,单元60可以使用ECC对数据编码,可以增加供内部 使用的某些数据,和/或可以使数据混杂(scramble)。在器件24中数 据临时存储在缓冲器36中。读写(R/W)单元40将数据转换为标称模拟 值并把这些标称值写入阵列28的适当单元32中。

在通常的读取操作中,读/写(R/W)单元40从适当的存储单元32中 读出模拟值并将它们转化为软数字采样。该采样缓存在缓冲器36中并传 送给MSP 52的缓冲器72。在一些实施方案中,MSP 52的单元60将这 些采样转换为数据比特。如前所述,可能的模拟值范围分为两个或多个 区,每个区代表一个或多个数据比特的一定组合。

下文还将更具体说明,通过把这些存储单元的模拟值与多个读取门 限集进行比较来读取存储单元。对每个单元,MSP根据多个比较结果计 算出一个软度量。软度量被MSP在解码ECC时使用。编码数据通过输 入/输出(I/O)缓冲器56传送到主机系统。

存储阵列结构

图2是本发明一种实施方案的存储单元阵列28的示意图;尽管图 2涉及连接到特殊阵列配置中的闪速存储单元,本发明的原理同样适用 于其它类型的存储单元和其它阵列配置。一些范例单元类型和阵列配置 如前文背景部分所引的文献中所述。

阵列28的存储单元32被配置在具有多个行和多个列的栅格中。每 个单元32包含一个浮置栅极金属氧化物半导体(MOS)晶体管。可以通过 给晶体管栅极、源极和漏极加适当电压电平,把一定量的电荷(电子或 空穴)存储在一个特定单元中。存储在单元中的值可以通过测量该单元 的门限电压读出,门限电压被限定为,为使晶体管导通而需要加载到晶 体管栅极上的最小电压。读取门限电压指示存储在该单元中的电荷。

在图2的范例配置中,每行晶体管的栅极由字线(word line)80 连接。每列晶体管的源极由位线84连接。在一些实施方案中,如在一些 NOR单元器件中,源极直接与位线相连。在替代实施方案中,如在一些 NAND单元器件中,位线连接到浮置栅极单元串(string)。

通常,读写(R/W)单元40通过加载变化的电压电平到一特定单元 32的栅极(即加载到该单元连接其上的字线上)和检查该单元的漏极电 流是否超出一定门限(即晶体管是否导通)来读取该特定单元的门限电 压。单元40常加载一序列不同的电压值到该单元连接至其上的字线上, 并确定使漏极电流超出门限的最小栅极电压值。通常,单元40同时读一 组单元,也称为一页。或者,读/写(R/W)单元可以使用其它任何技术 或电路来对阵列28的存储单元32进行读取和向其中写入值。

存储单元阵列通常分为多页,即多个其中多个存储单元被同时编程 和读取的组。在一些实施方案中,每页包含阵列的一整行。在替代实施 方案中,每行(字线)可分为两页或多页。例如,在一些单层单元(SLC) 器件中每行分为两页,一页包含奇序单元,另一页包含偶序单元。通常 但不必需,一个2比特每单元存储器件通常每行有四页,3比特每单元 存储器件每行有六页,4比特每单元存储器件每行有八页。

这些单元的擦除通常在包含多个页的块中进行。通常的存储器件可 以包含几千个擦除块。在通常的2比特每单元MLC器件中,每个擦除 块具有32条字线的数量级,其包含几千个单元。每条字线通常分为四页 (奇/偶序单元,单元的最低/最高有效位)。或者,也可采用其它块尺寸 和配置。3比特每单元器件通常每个擦除块有192页,4比特每单元器件 通常每个块有256页。

一些存储器件包含两个或多个独立的存储单元阵列(常称为面 (plane))。由于每个面在连续的写操作之间有一个“忙碌”时段,为 增进编程速度,可以交替地将数据写入不同的面。

存储单元失真机理

存储在存储单元32中的模拟值(如门限电压)可能含有各种类型 的失真,其由阵列28中不同的失真机理引起。例如,阵列中相邻单元 间的电交叉耦合可能改变一个特定单元的门限电压。又例如,电荷可能 随时间从单元中泄漏。作为此老化效应的后果,单元的门限电压可能随 时间从初始写入值发生漂移。另一类的失真,通常称为扰动噪声,是由 对阵列中某些单元的存储访问操作(例如读,写或擦除操作)引起的, 所述对阵列中某些单元的存储访问操作导致其它单元中意外的电荷改 变。另外一个例子,通过一种被称为背景图案相关(Back Pattern Dependency)(BPD)效应,一个特定单元的源极-漏极电流可能受相邻单 元的电荷的影响,例如受同一NAND单元串中的其它单元的电荷的影 响。

存储单元32中的失真使存储器件的性能退化,例如使在重构数据 时的错误概率、可达到的存储容量和/或可达到的数据保持时间方面。 MLC器件中的性能下降尤其严重,在该MLC器件中,表示数据的不同电 压电平之间的差相对要小。

使用多个门限读取存储单元

本发明实施方案,通过使用多个读取门限,提供了改进的用于从阵 列28的模拟存储单元32中读取数据的方法和系统。此处所描述的方法 对SLC器件(如下面图3所示)和MLC器件(如下面图4所示)都适 用。

图3是示意性地示出了根据本发明一种实施方案的在单层单元 (SLC)器件中的读取门限的示意图;图中显示一组(例如一页)模拟存储 单元中的两个门限电压统计分布。对于一特定页,该图代表了存储在该 页存储单元中的门限电压的分布图。在图3示例中,每个存储单元可被 编程至两个可能标称电平中的一个,即每个单元存储单个数据比特。由 于单元间的各种失真变化和各种损坏机理,从存储单元中读取的实际门 限电压可能相对标称电平有统计上的变化。此示例中,曲线90A显示被 编程为存储值“1”的单元的门限电压分布。曲线90B显示被编程为存 储值”0”的单元的门限电压分布。

如图可见,曲线90A和90B有重叠。这即是说,存在一种这样的 可能性,被编程为某一比特值的存储单元将被错误地解释为被编程至其 它比特值。用来区分″1″和″0″的读取门限的位置对这一错误概率有相 当的影响。在本发明一些实施方案中,MSP 52通过组合在借助于多个 读取门限下获得的信息来重构存储在存储单元中的数据,来减小错误概 率。

图3显示五个门限,标记为T1到T5。在一些实施方案中,MSP 52 运用每一个门限去读每个存储单元。每个读取操作产生一个比较结果, 即产生一个该读取门限电压是大于还是小于操作中使用的门限的指示。 在图3的范例实施方案中,MSP应用门限T1...T5对每个存储单元读五 次,以生成5个相应的比较结果。MSP可按任意适当顺序遍历这些不同 的门限。例如,MSP可以从位于所需区域的中间位置的门限开始,并通 过增添初始门限任一边上的门限而逐渐由此点移开。下面进一步描述逐 渐增加门限个数的示例性迭代方法。

对于每一个正被读取的存储单元,MSP使用多个比较结果计算出 一个软度量。软度量指示与从读取自存储单元的值相关联的可信度或确 定度量值。在一些实施方案中,软度量指示了读取值与某数据值相对应 的可能性(例如,一个非常低的软度量值可以指示读取值与”1”相对应的 高确定度,一个非常高的软度量值指示读取值可能代表”0”,中间的度量 值指示较低的可信度)。在其它实施方案中,度量值指示读取值的可靠 性,不指示特定比特值(例如,低度量值代表低可信度,高度量值代表高 可信度)。

在本发明专利申请语境和权利要求中,术语”软度量”是指任何类型 的传递了单个比特以上信息,即两个以上可能值,的定量测量。例如,软度 量可包含一个用2比特或多比特表示的定点或浮点数值。另一种软度量 示例类型,有时被称为“擦除”,分配给每个存储单元三个可能值—— ″0″,″1″或″不确定″中的一个。又或者,可以采用任何其它适用形式 的软度量。

注意,当每个单元存储多个数据比特时,软度量值可被计算出并分 配给每一单个的比特。例如,在一个4层MLC中,为最低有效位(LSB) 计算一个度量值,为最高有效位(MSB)计算另一个度量值。应用于SLC 和MLC两者的度量计算方法的具体示例将在下面进一步说明。

MSP 52可采用任何适用的、基于多个比较结果来计算软度量值的 方法。在一些实施方案中,MSP可以使用一种与比较结果的不同组合相 关联的度量值的表。例如,下表可与图3中的五个门限的配置连用。

上表提供了32个软度量值,记为M1...M32,其对应门限T1...T5 的5个比较结果的32个可能组合。按照图3的记法,比较结果″0″表示 读取值高于使用的门限,比较结果″1″表示读取值低于此门限。

通常,M1和M32指示高可信度,因为这些度量值对应的状态为: 采用5个门限的读取操作生成相同的比较结果。比较结果的其它组合将 通常被分配以指示较低可信度的度量。

一些比较结果集可能被认为不一致或自相矛盾。例如,假定 T1<T2<T3<T4<T5,门限T1...T5生成的5个比较结果分别记为C1...C5。 尽管T4>T3,但是某存储单元的结果集′1,1,1,0,1′却指示模拟值大于T4 小于T3,所以结果集不一致。这样的结果集可能这样引起的,例如当该 单元在至少一次读取操作中具有高的读取噪声时。另一方面,诸如 ′1,1,1,1,0′,′1,1,1,0,0′,或′1,0,0,0,0′,的结果集是一致的。

通过给不一致的比较结果集分配不同的软度量值,MSP可以以不 同的方式处理不一致的比较结果集。例如,MSP可以视不一致的结果集 为不确定,并向ECC解码过程标记它们为擦除。或者,MSP可无视或 者另行尝试解决一些不一致。例如,假定T3的比较结果″0″是由读取噪 声引起时,MSP可以将′1,1,0,1,1,′类似地看做′1,1,1,1,1′集。

作为使用表的替代,MSP 52可估计一个基于多个比较结果的函数, 并生成相应的软度量值。例如,MSP可以估计每个存储单元中单独的比 特的对数似然比(Log Likelihood Ratios)(LLRs),其定义为:

[1],LLRA(Xi)=log[p(Xi=1|r)p(Xi=0|r)]

其中,Xi表示所讨论的存储单元中存储的特定数据比特,r表示从 该单元中读取的模拟值。采用LLR作为提供给ECC解码过程的度量, 如2007年5月10日提交的PCT专利申请PCT/IL2007/000580,名 为”Combined Distortion Estimation and Error Correction Coding For Memory Devices”的文中所述,其公开的内容在此以引用的方式纳入本说 明。

为计算LLR,MSP可为每个存储单元保留两个值:(1)被发现为低于 单元的模拟值的最大读取门限,记为Va,(2)被发现为高于单元的模拟值 的最小读取门限,记为Vb。单元的LLR可近似表示为

A(Xi)log[Q{Va-T1σ}-Q{Vb-T1σ}]

[2]-log[Q{Va-T0σ}-Q{Vb-T0σ}]

其中,T1表示″1″为其数据比特的最接近的分布的中心模拟值,T0表示 以″0″为其数据比特的最接近的分布的中心值。r的分布假定为方差是σ 2的高斯分布。

随着存储单元在增加的读取门限个数下被读取,MSP更新Va和 Vb。在每一阶段,单元的实际模拟值已知在区间[Va,Vb]中。随着门限 个数的增加,区间缩小,不确定性变小,估计的LLR变得更精确。

又或者,MSP 52可采用任何其他适用的基于多个比较结果而计算 软度量值的方法或机制。

解码ECC时MSP使用软度量。在通常应用中,存储在一组存储单 元(例如一个存储页)中的数据,形成单个码字。在对某一个ECC码字 解码时,MSP的信号处理单元60使用该组存储单元的软度量值。结果, 被认为具有高可信度级别的存储单元在ECC解码过程中被赋予更高权 值,亦或反之。

图4是根据本发明一种实施方案在多层单元(MLC)器件中的读取门 限的示意图;在图4的示例中,每个存储单元可被编程至四个可能标称 电平中的一个,因此每个单元存储2比特数据。曲线94A...94D分别显示 被编程至存储″11″,″01″,″00″和″10″数据的存储单元的门限电压分 布。在本例中,MSP 52使用5个门限集去读存储单元。每个门限集包含 三个门限,其通常位于各对相邻分布曲线间的三个边界区域内。门限集 列表如下:

  门限集   门限   1   T11,T21,T31   2   T12,T22,T32   3   T13,T23,T33   4   T14,T24,T34   5   T15,T25,T35

在一些实施方案中,MSP 52使用15个门限的每一个去读取单元的 门限电压,并基于15个比较结果计算出软度量。MSP可采用任何类型 的软度量和任何基于多个比较结果的计算度量值的方法。如上所述,MSP 使用软度量作为对ECC解码过程的输入。

在替代实施方案中,在两个阶段中读取存储单元,对应于单元中 存储的两个比特。例如,在图4的配置中,读/写(R/W)单元使用五个门 限T21、T22、T23、T24和T25,即曲线94B和94C之间的位于电压轴 中部的门限,执行第一组比较。MSP根据使用这5个门限获得的5个比 较结果计算出第一个软度量。注意到位于门限T21...T25之上的两个标 称电平都有一个最低有效位值″0″,位于门限T21...T25之下的两个标称 电平都有一个最低有效位值″1″。因此,第一软度量对应于最低有效位 (LSB)。一旦LSB解码,读/写(R/W)单元立即执行第二组比较。在第二 阶段,读/写(R/W)单元根据LSB的解码值,使用门限T11...T15或 T31...T35。如果LSB被确定为″1″,即读取值被确定为位于电压范围的较 低部分,在第二阶段中将使用门限T11...T15对MSB解码。如果LSB 被解码为″0″,就使用门限T31...T35对MSB解码。MSP根据第二比较阶 段获得的5个比较结果计算第二个度量,其对应最高有效位MSB。

类似的多阶段比较过程可在存储更高比特数目的多层单元中执行。 例如,在8层(3比特每单元)单元中,MSP和读写(R/W)单元可能执 行三步比较法来解码每个比特。除第一阶段外,每阶段中门限的选用通 常都取决于之前比特的解码值。

在替代的多阶段读取方法中,每个比特的读取都不依赖于其他比 特。例如,参考图4,可使用门限T21...T25读LSB。MSB的读取是通 过随后使用门限T11...T15和T31...T35来读取该单元。如果比较结果指 示模拟值介于T11...T15和T31...T35之间,则确定该比特为″0″。另一 方面,如果比较结果指示模拟值大于T31...T35或小于T11...T15,则确 定该比特为″1″。在本例中,关于门限T21...T25的比较结果,其用于读 取LSB,但不用于读取MSB。类似的过程可用于其它类型MLC,如每单元 存储3比特的8层单元。

图3和图4所示的门限配置为示例配置,仅出于概念的明晰目的而 选择了它们。在替代实施方案中,系统20可以采用任意所需数目的标称 电平、任意其他从比特值到标称电平的映射方式、以及任意所需数目的 门限集。尽管图3和图4显示了以恒定增量间隔开的门限,此处所描述 的方法和系统也可用于不均匀间隔的门限。在多层单元(MLC)器件中, 电压区与电压区之间的门限间隔可以变化。例如,图4中,门限T11...T15 的间隔可能不同于门限T21...T25。也可使用不同的门限间隔,例如当不 同的模拟值分布具有不同的形状或其彼此间的间隔不同时。MSP可改变 门限间隔,或者选取要使用的门限,例如根据对模拟值分布的估计。

图5是示意性示出根据本发明一个实施方案的用于从模拟存储单元 32读取数据的方法的流程图;对某一个存储单元,本方法始于:系统20 在读取步骤100使用多个门限分别执行多个读取操作。多个读取操作生 成各自的多个比较结果,即生成多个关于该单元的门限电压是小于还是 大于这些不同门限的指示。在度量计算步骤104,MSP 52根据多个比较 结果计算出该存储单元的一个软度量。

MSP通常对一组存储单元重复上述步骤100和104的过程,这一 组存储单元的数据形成单个ECC码字。在通常操作中,读/写(R/W)单元 40使用特定门限值对存储器件的一整页单元同时读取。一旦这些存储某 个码字的单元的软度量计算出来,MSP就在解码步骤108使用这些度量 解码该码字。MSP在数据提取步骤112提取解码数据。解码数据通常被 输出给主机系统。

本发明描述的多门限读取方法也可视为一种有效的在使用较少的 读取操作次数下获取精确的关于所存储的模拟值的信息的方法。理论上, 如过存储在存储单元中的确切的模拟值已为MSP所知,(例如,采用高 分辨率模-数转换),则该信息可用来提取关于所存储的数据的概率测量。 然而,诸如闪速存储器的模拟存储器件的基本读取操作通常包含比较操 作,其把存储在单元中的模拟值与单个门限进行比较。为了以给定分辨 率获得模拟值,可对整个可能的电压范围以所需的分辨率搜索或扫描。 例如,如果可能模拟值的范围是0-4V,所需的分辨率是10mV,则将需要 400次读取操作。然而,实际中,很多有用的统计信息可通过执行次数 少得多的读取操作来获得,例如通过把一个区间中的读取门限设在各分 布之间的中点附近。因此,此处描述的方法和系统在使用次数较少的读 取操作下,提供了一种有效的考察此类模拟值的统计的方法。

在很多实例中,在存储单元上执行很多次读取操作是一项高强度计 算任务,其复杂化了和减慢了数据取出过程。并且,ECC通常强到足以 用于成功解码绝大多数码字,甚至在使用单个门限集来读取存储单元时。 因此,在一些实施方案中,MSP初始使用单个门限集读取存储单元。只 有当ECC解码过程失败时,MSP才会使用此处描述的多门限方法回复 读取与某一码字对应的存储单元。

可迭代地使用上面图3-5的方法,其中逐渐增加所用门限的个数。 例如,MSP可尝试使用基于两个门限集的软度量重构数据。如果数据不 能被重构(即如果ECC失败),则MSP可使用第三个门限集重新读取 该存储单元。迭代可一直持续到ECC解码成功,或者直到达到一个预定 的最大门限集个数。注意在迭代过程的每一阶段,MSP基于其当前可用 的多个比较结果计算软度量。在一些情况下,MSP可使用诸如度量值等 的信息,所述度量值为之前迭代中计算而得的。迭代过程能够使计算次 数逐渐增加,仅可增加至为实现成功解码而所需的次数。

基于对计算结果的计数的软度量

在一些实施方案中,MSP根据落在门限任一边上的计算结果的数 目来计算软度量值。(在后面的描述中,比较结果″0″表示读取值高于门 限,亦或反之。然而,这个约定仅为方便起见,也可采用相反的约定。) 考虑前面图3的SLC范例实施方案。在此实施方案中,在五个比较结果 中,如果比较结果“0”的个数远高于结果“1”的个数,则可能的是, 该单元被编程为“0”。类似地,如果比较结果“1”的个数远高于结果 “0”的个数,则这个被编程的比特可能为“1”。类似的逻辑也可用于 多阶段比较过程中解码MLC单独的比特的每一个阶段中,如前面图4 所述。

图6是本发明一种实施方案的计算软度量的流程示意图;此方法的 描述指向SLC应用并参考前面图3。然而,这样选择仅为简化解释之用。 该方法也可类似地用于MLC。

此方法始于:在门限限定步骤116,MSP限定多个门限。通常但不 必需的是,门限被限定在电压分布之间的边界区域。图3中,五个门限 被限定在曲线90A与90B重叠的区域。例如,假定曲线90A和90B 之间的中点为1伏,门限可以20mv分辨率来表示,则可以以20mV间 隔来限定门限集,以覆盖电压范围1V±40mV。

在读取步骤120,MSP使用多个门限读取存储单元。在计数步骤 124,MSP对落在门限任一边的比较结果的数目进行计数。换言之,MSP 从总的门限比较的数目中,确定比较结果″0″的个数和/或结果″1″的个 数。

在度量计算步骤128,MSP基于对比较结果的计数计算与单元(或 单元中的单独的比特)相关的软度量。例如,假定有前面图3的五个门 限的配置和4比特的度量值,MSP可以根据下表计算软度量:

 计算结果″0″  的个数  计算结果″1″  的个数   软度量值   0   5   ″1111″=15   1   4   ″1100″=12   2   3   ″1001″=9   3   2   ″0110″=6   4   1   ″0011″=3

  5   0   ″0000″=0

上表中,如果所有五个计算结果都是″1″,存储的数据极有可能是 ″1″,因此赋予最大度量值″1111″。另一极端,如果所有五个计算结果都 是″0″,存储的比特可能是″0″,因此赋予最小度量值″0000″。如果一些 比较结果是″0″,另一些是″1″,度量值就被设置为中间值,其随总数中 结果″1″的个数的增加而单调增大。

或者,可以采用其它任何适用的基于比较结果的计数而确定软度 量值的方法。度量计算可以通过查询一张表而实现,该表存放度量值并 通过所述比较结果的计数来索引,也可以通过评估一基于该比较结果的 计数的函数来实现,或使用任何其它适用机制来实现。

MLC度量计算的硬件实现范例

如前面所注意的,计算多层单元中各比特的软度量时,门限的选择 取决于先前解码的比特值。并且,先前解码的比特值可能在某些情况下 影响度量值自身。

例如考虑上面图4的4层单元的配置。当在一个两阶段的方法中从 这种单元读取数据时,通过确定单元读取值落在门限T21...T25左边还是 落在右边首先解码LSB。注意在图4的示例中,位于这些门限之下的两 个标称电平有值为″1″的LSB,位于这些门限之上的两个标称电平有值 为″0″的LSB。

第二解码阶段(解码MSB)依赖第一阶段的结果。当LSB为″0″ 时,对MSB的解码包含确定读取值是可能属于曲线94C还是属于曲线 94D。当LSB为″1″时,对MSB的解码包含确定读取值是可能属于曲线 94A还是属于曲线94B。

然而,注意当比较曲线94A和94B时(即当LSB=″l″时),高门限电 压对应MSB=″0″,低门限电压对应MSB=″1″。当比较曲线94C和94D 时(即当LSB=″0″时),情况就相反,高门限电压对应MSB=″1″,低门限 电压对应MSB=″0″。在这种情形下,依赖比较结果的计数的软度量值有 时应当被反转,从而维持高度量值对应数据″0″这一常规。决定是否反转 度量值取决于前一比特值。同等地,也可以反转当前读取的比特的值而 不反转度量值。仅当先前值等于″1″时才对一个值进行反转的条件操作可 以通过在当前和先前比特值之间执行异或(XOR)操作而实现。

图7是本发明一种实施方案的用于多层单元软度量计算的示例电 路的示意框图;尽管后续描述涉及硬件或固件实施方式,类似的机制可 以以软件、或软件与硬件的组合来实现。

图7的电路计算一组4层单元的LSB和MSB的软度量,假定LSB 代表某一存储页,MSB代表另一页。LSB页首先被读取,并被称为前一 页。MSB接着被读取,并被称为当前页。根据前一页的比特值,当前页 的度量的计算过程进行条件反转(XOR)操作。

此电路包含XOR电路134,其在当前页硬比特决定(hard bit decision)的字节130(MSB)和从前一页的先前解码的数据比特的字节 132(LSB)之间执行按位异或(XOR)操作。这样,对特定单元,当之前解 码的LSB为″1″时,当前读取的MSB就被反转。加法器136累加异或 (XOR)操作的结果。加法器的输出被累积作为MSB的软度量140。向 量138存放不同单元的MSB的累积度量。相同电路也可用于计算LSB 的软度量,其不取决于任何先前值。为了计算LSB软度量,以0填充字 节132,从而使异或(XOR)操作被绕过,字节130不变地被提供给加法器。

图7的电路涉及4层2比特每单元MLC。然而,类似电路可被用 于计算其它类型多层单元的软度量,如计算8层3比特每单元MLC的 软度量。

在替代实施方案中,对多层单元的单独的比特的软度量的计算可以 独立于其它不同的比特。在这样的时候:当读取某一比特值时,先前的 比特读取值不可获得的情况下,这些方法可能特别有利。参见上面图4 的2比特每单元例子,MSB软度量可在不知道LSB的情况下计算。如 前面所述,如果模拟值落在门限T11...T15和T31...T35之间,则MSB 值可假定为″0″,否则为″1″。为了对这种读取过程计算软度量,MSP可 将门限分组成一些逐渐向内移入MSB=″0″的区域的对。MSP使用不同 的门限对,对落在MSB=″0″间隔以内和/或以外的比较结果进行计数。

在本例中,MSP形成了(T14,T35),(T12,T33),(T 1l,T31),(T13, T32)和(T15,T34)等对。对每一对,MSP执行两次读取操作并检查读 取值是否落在门限之间的间隔内或者间隔之外。MSP对其中模拟值落在 两个门限之间(指示MSB=″0″)的门限对的数目和/或其中模拟值落在 两个门限之间的间隔之外的(指示MSB=″1″)门限对的数目进行计数。 MSP根据计数来计算软度量。

类似方法可用于8层3比特每单元MLC。例如假定一个8层MLC 器件,其8个电平表示为L1...L8,并分别映射到三连比特(bit triplet) ′111′,′011′,′001′,′101′,′100′,′000′,′010′,′110′。MSP可独立于其它比特 计算这种单元的MSB(三连比特中的最左边一个比特)的软度量——通 过使用4个多门限集进行比较。每个门限集都位于具有不同MSB值的相 邻电平之间。在本例中,一个集合位于电平L 1和L2之间,另一集合 位于L3和L4之间,第三集合位于L5和L6之间,第四集合位于L7 和L8之间。四个门限集将模拟值轴分为5个间隔,记为I1...I5,这样 每个间隔中MSB具有相同值。

使用此划分,当读自该单元的读取模拟值落在间隔I2或I4以内时, MSP确定MSB为″0″,如果模拟值落在间隔I1、I3或I5以内,MSP 确定MSB为″1″。为计算MSB的软度量,MSP形成4个门限组,每组 包含来自每个集的一个门限。从一组移动到另一组,每个门限都以MSB 值从″1″到″0″转变的方向移动。对每个门限组,MSP执行四次读取操 作,检查读取值是落在相应于“1”的间隔内还是落在相应于“0”的间 隔内。MSP对模拟值落在相应于MSB=″0″的间隔内的门限组的数目, 和/或模拟值落在相应于MSB=″1″的间隔内的门限组的数目进行计数。 MSP根据计数来计算软度量。

通常但不必需的是,基于对一给定类型的比较结果的计数的软度量 假定读取门限围绕分布之间的中点对称地分布。

逐渐增加门限数量

上述的比较和度量计算操作既花费时间又消耗计算资源,且随门限 数量的增大而更甚。因此,仅使用为成功重构数据而所需的数量的门限 有时是有利的。在一些实施方案中,MSP首先尝试使用相对少量的门限 来计算软度量和解码数据,仅在需要时才增加门限的个数。

例如,起初MSP可首先尝试使用一个其中只有单个门限位于每对 相邻标称值(存储状态)之间的初始读取门限集来解码ECC。在一些实 施方案中,一旦初始解码尝试失败,MSP就转向多个门限解码。

图8是根据本发明另一种实施方案的通过逐渐增加门限数目而从 模拟存储单元读取数据的范例方法的流程示意图。起初,假定MSP尝试 过使用在借助一定数量的门限下获得的软度量来解码存储在一组存储单 元中的一个特定码字,且ECC解码已失败。所述度量被假定是基于比较 结果的计数,如前面所述。

此方法始于:在门限增添步骤142,MSP增加一个或多个另加的门 限到所使用的门限的集中,使用增加的门限读取存储单元组。

在计数更新步骤144,MSP更新比较结果的计数(即,总数中″0″ 和/或″1″的个数)。更新后的计数反映了先前门限以及新增门限的比较 结果。在度量更新步骤146,MSP然后根据比较结果的更新的累积计数 计算软度量。

在一些情况下,MSP可在每个迭代处都重新计算度量。或者,MSP 可存储来自先前迭代的度量值和/或比较结果计数,并更新它们以考虑新 增的比较结果。通常,在一给定的迭代处计算的软度量可取决于当前比 较结果计数、先前计数和先前的度量值。

在度量计算步骤146,MSP根据比较结果的累积计数计算软度量。 任何适用的度量计算方法都可采用,比如前面所述的范例方法。在ECC 解码步骤148,MSP尝试使用软度量解码码字。在ECC检查步骤150, MSP检查ECC解码是否成功。如果成功,在数据提取步骤152,MSP 提取并输出数据,该方法终止。

另一方面,如果ECC解码失败,该方法循环回到前面的门限增添 步骤142。MSP增加一个或多个另加的门限到门限集,并根据扩展的集 计算软度量,并再次尝试解码ECC。

图8的方法使MSP能够使用仅仅所需的门限个数来成功解码 ECC。当失真不严重时,使用少量门限可以对大部分码字解码,从而提 高整体和平均的读取速度。

除了持续迭代直到成功解码之外,或者作为持续迭代直到成功解码 的替代,MSP可估计其它任何适用的条件,当条件满足时停止迭代过程。 例如,MSP可能持续增添门限,直到达到最大门限数目或者达到最大迭 代次数。

在一些实施方案中,ECC解码过程可能包含一个迭代过程。迭代 解码过程通常用于解码诸如LDPC和turbo码的码。在一些实施方案中, 迭代解码过程被提供了逐渐改良的度量,其基于逐渐增多的读取门限的 数量。换言之,迭代解码过程使用基于特定的初始门限个数的度量开始 解码。迭代解码过程的后续迭代则被提供了基于增加的读取门限的数量 的度量,直到迭代解码过程收敛到一个有效码字。

补充或者替代图8方法中的ECC的使用,MSP可能采用检错码, 比如循环冗余校验码(CRC)或检验和。在这种实施方案中,MSP迭代地 增加读取门限直到检错码检查到没有错误。这样,在本发明专利申请的 语境和权利要求中,术语“ECC”也用来指不同类型的检错码。在一些 实施方案中,尽管数据是用ECC编码的,MSP也可使用检错码确定何 时停止增添门限。这种方案可能是有利的,例如,当ECC不再提供一可 靠的关于解码是成功还是失败的指示时。

MSP可使用各种方法和标准来选择每次迭代增添几个门限个数, 以及以何次序。例如,门限可能一次增加两个,从初始门限位置往两个 方向逐渐移开。换言之,假定MSP初始尝试使用一个标记为T的门限, 门限之间以规则的间隔Δ间隔开,最初4次迭代中的门限集为:

{T,T+Δ,T-Δ}

{T,T+Δ,T-Δ,T+2Δ,T-2Δ}

{T,T+Δ,T-Δ,T+2Δ,T-2Δ,T+3Δ,T-3Δ}

{T,T+Δ,T-Δ,T+2Δ,T-2Δ,T+3Δ,T-3Δ,T+4Δ,T-4Δ}

度量标准化和干扰消除

当计算基于变化数量的门限的软度量时,如前面图8中的方法,度 量值的可能范围可随使用的门限的个数而变化。例如,当软度量包含比 较结果计数时,基于三个门限的度量值将在[0...3]范围内,而基于五个门 限的度量值将在[0...5]范围内。此效应通常不是理想的。换言之,通常理 想的是提供度量给ECC解码器,其使用相同动态范围来量化可信度或 确定度,不管度量所基于的门限比较的个数。

在一些实施方案中,MSP根据门限的个数对读取自存储单元的软 值标准化。例如,MSP可对值采用位扩充来达到某一固定比特数,例如 5比特。例如,位扩充的值(Extended Value)可能定为如下:

[3],ExtendedValue=0Val=0MaxValVal=NVal+MaxVal-N20<Val<N

其中Val表示输入软值,N表示用于估计Val的门限个数。MaxVal 表示位扩充软值的最大值,例如,31对应5比特表示。或者,MSP可能 采用任何其它适用的数据缩放机制。

在一些实施方案中,MSP有存储单元中的失真度或干扰度方面的信 息。可以利用各种方法来估计存储单元中的干扰程度。范例方法如前面 引用的PCT专利申请PCT/IL2007/000580,以及如2007年5月10日提 交的PCT专利申请PCT/IL2007/000576名为″Distortion Estimation and Cancellation in Memory Devices,″,以及2007年8月27日提交的PCT 专利申请PCT/IL2007/001059,名为″Estimation of Non-Linear Distortion in Memory Devices,″文中所述,其公开的内容在此以引用的方式纳入本 说明书。

当MSP可获得干扰估计时,MSP可在将这些软值提供给ECC解 码器之前,将干扰的效应增加到软值上,或者根据估计的干扰对软值进 行修改。

图9是本发明另一种实施方案的从模拟存储单元读取数据的过程 的示意图,其包括数据缩放和干扰消除;尽管图9的配置用于演示干扰 消除和缩放两者,每一项机制的实现都可在有或没有另一项的情况下实 现。

在图9的过程中,缩放模块154接收从存储单元读取的(例如,前 面图7的异或电路134的输出)经过条件反转的软值。模块154也接收 迭代次数和/或当前被使用的门限的个数的指示。模块154可对输入软值 应用比特扩充或其它缩放。缩放量取决于输入迭代次数。

缩放的软值被提供给干扰消除模块156,其也接收对各存储单元中 的干扰程度的估计。模块156减去或消除从相应软值估计的干扰,产生 经过适当缩放并包含程度减少的干扰的软值。这些软值被提供给度量计 算模块158,其计算软度量并将它们提供给ECC解码器。

门限比较和干扰估计的折中

以增加的门限对单元重新读取和估计来自相邻存储单元的干扰,这 两个操作,一方面改善了读取性能,另一方面耗费时间和计算量。在一 些实施方案中,MSP可能组合两个操作并在其间折中。例如,MSP可 能在每次迭代时确定哪种操作更可取:是通过使用另外的门限来重新读 取当前页来增强解码精确度,还是通过读取(或重新读取)一组干扰单 元来增强干扰估计。

图10是根据本发明又一种实施方案的从模拟存储单元读取数据的 方法的示意流程图,其包括在进行重新读取和进行干扰估计进行折中。

此方法始于:在读取步骤160,MSP读取一页存储单元。在此过 程的每次循环,MSP可选择要么(1)使用另加的门限重新读取需要的页, 要么(2)读一页干扰单元。MSP在确定每次循环要采取两种操作中的哪一 种时可以应用各种策略或试探法。MSP可在不同的循环中读取不同的干 扰单元组。

例如,MSP可交替两种操作,从而每两次循环增加一个门限,且 每两次循环估计干扰。或者,MSP可基于估计的失真程度来选择要采取 哪种操作。例如,如果最近的干扰估计指示干扰电平低,MSP可优先增 加门限比较,并完善在较大间隔下的干扰估计。又或者,这决定可取决 于被读取页的类型。例如,奇序和偶序页可能遭遇不同的干扰程度,MSP 可对不同页类型采用不同的判决逻辑。位于一个块中最后一条字线上的 页也可能在遭遇不同的干扰程度,以及可以被不同地处理。由于干扰可 能与页面被写入的顺序有关,不同的折中可应用于一条字线里的页码更 高的页和页码更低的页。

在一些情况下,所需页中的存储单元之间可能引起相互干扰。如此, 受干扰的单元组和产生干扰的单元组有时可能重叠。

在干扰消除步骤162,基于更新的信息,MSP从读取的软值中减去 干扰估计,并在度量计算步骤164计算软度量。然后在解码步骤166, MSP解码ECC,并在成功检查步骤168处,检查ECC解码是否成功。

如果ECC解码成功,在成功终止步骤170,该方法终止,并且MSP 通常提取和输出数据。否则,在迭代次数检查步骤172,MSP检查迭代(循 环)次数是否超过预定最大数。如果超出迭代最大次数,在错误终止步骤 174,该方法在未成功读取数据下终止。否则,方法循环回到前面的读取 步骤160,MSP重又确定是否增加另一门限或在下一循环中完善干扰估 计。

前面图8和10的迭代方法中,MSP可以——根据从单元读取的值 或这些值所代表的数据——选择在某一特定迭代时要增加的新门限的个 数。例如,当MSP检测到严重的ECC失败或意外高干扰程度时,它可 决定增加大量门限。MSP也可根据所读取的值或所读取的数据来确定新 门限的值(即位置)。例如,响应于ECC的失败而被增加的新门限的值 可不同于响应高干扰电平时所增加的门限的值。

在存储器件内部执行多次读取操作

当使用上述方法和系统时,与多个门限关联的多个比较结果通常从 存储器件24传送到MSP52。相应的,存储器件与MSP之间的通讯带宽 变得惊人,特别是当使用了大量门限集和/或当每单元的标称电平的数目 很大时。在一些实际情况中,MSP和存储器件之间的接口上的通讯带宽 可能成为决定系统20的存储访问速度的限制因素。当单一MSP 52与多 个存储器件24连接时这一影响变得尤为严重。

在本发明替代实施方案中,一些重新读取功能是在存储器件内部实 现的,从而减小存储器件与MSP之间的通讯带宽。

图11是根据本发明替代实施方案的用于存储器信号处理的系统 200的示意框图;在图11的范例实施方案中,多个存储器件204通过一 条外部总线212连接到一个MSP 208。每个存储器件204包含一个存储 单元阵列216和一个读/写(R/W)单元220,其分别类似于前面图1的阵列 28和读/写(R/W)单元220。

与图1所示的实施方案不同,每个存储器件204包含一个门限设置 和度量计算单元224,也简称为“度量计算单元”。单元224通过内部 总线228连接到读/写(R/W)单元220。当存储器件接收到从一组存储单元 (例如,一页)中取出数据的请求时,单元224控制读/写(R/W)单元220 用诸如前述的任何方法来设置适当的门限值和读取该存储单元。读/写 (R/W)单元执行多次比较操作并发送相应比较结果给单元224。单元224 根据比较结果计算软度量,通过外部总线212发送度量值到MSP 208。

MSP 208包含一个ECC解码器232。该ECC解码器接收被发送自 存储器件204的单元224的软度量并基于该度量解码ECC。MSP通常输 出解码数据给主机系统。当MSP 208控制多个存储器件204,一单个 ECC解码器可解码从所有存储器件发送的数据。或者,可使用多个ECC 解码器。

当使用图11的配置时,相比前面图1的配置,由于单独的比较结 果不传送到MSP,MSP与存储器件之间的通讯带宽显著减小。相反, 单元224发送软度量值,对于每个读取存储单元,其通常包括一单个的 值。传送多个比较结果所需的高通讯带宽被限于内部总线228,即存储 器件内部。这类高通讯带宽在存储器件内部实现比在独立器件之间实现 简单许多。并且,内部总线的通讯仅包含由特定存储器件产生的通讯, 与被MSP控制的存储器件的数量无关。

读/写(R/W)单元220和度量计算单元224之间的功能划分是一种 范例划分,其仅为概念清晰之目的。在替代实施方案中,读、门限比较、 门限设置和度量计算功能可按需以其它任何方式划分。这样,读/写 (R/W)单元220、内部总线228和度量计算单元224也可以总体视为 一个读取电路,其读取模拟存储单元并产生软度量。

如前所述,软度量计算有时要考虑读取存储单元中的干扰的估计和 消除。在一些实施方案中,干扰估计和消除功能也可通过存储器件204 内部的读取电路实现,例如,通过单元224。在这些实施方案中,单元 224发送其中已考虑了干扰的软度量给MSP。实现存储器件内部信号处 理功能的一些方面在前面引用的美国临时专利申请60/917,653中得以描 述。

尽管此描述的实施方案主要解决从固态存储器中取出数据,本发明 的原理也可用于在硬盘驱动器(HDD)和其它数据存储媒体和器件中存储 和取出数据。

因此前述的实施方案在此以示例方式引用,并且本发明不限于本文 前面特别展示和描述的内容。相反,本发明的范围包括前述各种特征的 组合和子组合,以及本领域技术人员从前述说明中领会的各种更改和变 化,这些都没有被现有技术公开。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号