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

文档序号:6781315阅读:238来源:国知局

专利名称::使用多个门限读取存储单元的方法使用多个门限读取存储单元的方法相关申请的交叉引用本申请要求下列专利申请的权益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)器件的存储器件,在每个存储单元中存储l比特信息,即存储单元均可被编程以承担两种可能的存储状态。通常被称为多层单元(MLC)器件的更高密度的器件,在每个存储单元中存储两个或多个比特信息,即可被编程以承担两种以上可能的存储状态。闪速存储器,例如如2003年4月在proceedingsofthe(volume91,number4)第489-502页由Bez等人发表的"IntroductiontoFlashMemory,,中所述,该文献在此处以援引方式全部纳入本文。例如,在纽约州纽约市举办的1996年的国际电子器件大会(IEDM)的学报.(Proceedingofthe1996IEEEInternationalElectronDevicesMeeting)的第169-172页上由Eitan等人发表的"MultilevelFlashCellsandtheirTrade-Offs,,,描述了多层闪速存储单元和器件,该文献在此以援引方式全部纳入本文。该文对比了几类多层闪速存储单元,如共地型、DINOR、AND、NOR和NAND存储单元。在1999年9月21日-24日在日本东京举办的固态器件与材料国际会议(SSDM)的学报的(Proceedingsofthe1999InternationalConferenceonSolidStateDevicesandMaterials)第522-524页上由Eitan等人发表的"CanNROM,a2-bit,TrappingStorageNVMCell,GiveaRealChallengetoFloatingGateCells,,描述了另一种模拟存储设备,称为氮化物只读存储器(NROM),该文献在此以援引方式全部纳入本文。在2002年2月3日~7日在美国加州旧金山市举办的IEEE国际固体电路技术会议(ISSCC2002)的学报(Proceedingsofthe2002IEEEInternationalSolid-StateCircuitsConference)^/帛100-101$由Maayan等人发表的"A512MbNROMFlashDataStorageMemorywith8MB/sDataRate"中,描述了NROM单元,其在此处以援引方式全部纳入本文。模拟存储单元的其它范例类型有浮置栅极(FG)单元,铁电RAM(FRAM)单元,磁RAM(MRAM)单元,电荷捕获闪速存储(CTF)和相变RAM(PRAM,也称为相变存储器-PCM)单元。例如,在2004年5月16~19日在塞尔维亚和黑山(SerbiaandMontenegro)的Nis举办的第24届微电子国际学会(MIEL)(Proceedingsofthe24thinternationalConferenceonMicroelectronics)的学才艮第一巻的第377-484页上由Kim和Koh发表的"FutureMemoryTechnologyincludingEmergingNewMemories,,中,描述了FRAM、MRAM和PRAM单元,其在此处以援引方式全部纳入本文。从模拟存储单元读出的模拟值有时失真。失真可能有多种原因,如来自相邻存储单元的电场耦合、阵列中其它存储单元的访问操作产生的扰动噪声,以及器件老化引起的门限电压漂移。一些常见的失真8机理,在如上文所引Bez等人的文中描述。在2002年5月的IEEE电子器件快报(IEEEElectronDeviceLetters)(23:5)第264-266页上发表的"EffectsofFloatingGateInterferenceonNANDFlashMemoryCellOperation"中,Lee等人还描述了失真效应,其在此处以援引方式全部纳入本文。从模拟存储单元读取数据常包括把存储在单元中的模拟值与一个或多个门限或参考电平进行对比。已知本
技术领域
几种确定适当门限值的方法。例如U.S.Patent5,657,332描述了从固态存储系统中的硬错误得以恢复的方法,该专利的公开内容在此以引用的方式纳入本说明书。硬错误可能产生于其门限电压从其预期电平漂移而引起读取错误的单元处发生。存储系统包括存储单元阵列,每个单元都能让其门限电压被编程或擦除到预期电平。对众多单元组中的每一个都提供检错方案,用于识别其中的读取错误。在每一次对包含读取错误的个别单元组进行读取操作之前,调整读取参考电平,每一次该读取参考电平都从正常读取的参考电平偏置一个预定步长,直至错误检查装置不再指示读取错误。各存储单元的与读取错误关联的漂移门限电压被重新写为其预期电平。U.S.Patent7,023,735描述了读取闪速存储单元的方法,其不仅比较闪速存储单元的门限电压和整体参考电压,还比较门限电压和部分参考电压,该专利公开的内容在此以引用的方式纳入本说明书。美国专利申请/^开2007/0091677,描述了从一个或多个闪速存储单元中读取数据和从读取错误中恢复的方法、器件和计算机可读码,该申请乂>开的内容在此以引用的方式纳入本说明书。一些实施方案中,错误检查和校正模块纠错失败时,就使用一个或多个修正参考电压对闪速存储单元重新读取至少一次,直到能够实施成功纠错。一些实施方案中,成功纠错后,即处理后续的读请求,而期间不用将数据重新写入到闪速存储单元。U.S.Patent6,963,505描述了确定参考电压的方法、电路和系统,该专利公开的内容在此以引用的方式纳入本说明书。在一些实施方案中,建立了一组操作参考单元用于对非易失性存储(NVM)块或阵列中的单元的操作中。NVM块或阵列中的至少一个单元子组可以4吏用两组或多组测试参考单元中的每一组来读取,其中每一组测试参考单元可以产生或提供至少稍微偏离于每一个其它测试参考单元组的参考电压。对于用于读取NVM块的至少一个子组的每一组测试参考单元,可以计算或者确定读误差率。可以选择与相对低的读取误差率相关的一组测试参考单元作为用于操作NVM块或阵列中的所述单元子组之外的其它单元的操作参考单元组。U.S.Patent7,196,928和美国专利申请^>开2006/0221692,2007/0103986,2007/0109845及2007/0109849中描述了几种读存储单元的方法,其中考虑了相邻的存储单元的编程状态,各专利申请公开的内容在此以引用的方式纳入本说明书。在从存储单元中读取数据时,一些已知的方法使用与所存储数据的品质相关的信息。例如U.S.Patent6,751,766描述了几种方法用于估计存储系统中存储的数据的品质,并根据估计的品质操作存储系统,该专利公开的内容在此以引用的方式纳入本说明书。数据品质有时在读取操作过程中被加以估计。随后通过使用纠错码(ECC),可以利用品质指示更加有效地检查和重构数据。或者,可以构造数据品质统计量,以及可以以一种修正方式关联数字化数据值,以防止数据损坏。
发明内容本发明的实施方案提供了一种操作存储器的方法,包括通过将选自标称值集的各个模拟输入值写入存储器的模拟存储单元,把数据存储在存储器的模拟存储单元中,所述数据以纠错码(ECC)编码;通过执行多次读取操作读取存储的数据,所述读取操作将所述模拟存储单元的模拟输出值和各个不同的读取门限相比较,从而为每个模拟存储单元生成多个比较结果,其中,至少有两个读取门限被置于标称值集内的一对彼此相邻的标称值之间;根据多个比较结果计算软度量;和使用软度量解码ECC,从而提取被存储在模拟存储单元中的数据。在一些实施方案中,每个模拟存储单元存储该数据的一个或多个比特,并且每个软度量对应于其中的一个比特。在一个实施方案中,至少一些模拟存储单元中的每个模拟存储单元存储该数据的两个或多个比特,其中读取数据包括,对于所述至少一些模拟存储单元中的每个模拟存储单元,分别在两个或多个解码阶段,读取两个或多个数据比特,且其中计算软度量包括,根据在先于第一解码阶段的第二解码阶段读取的第二比特值,修改在第一解码阶段读取的第一比特的软度量。修改软度量可包括根据第二比特的值对第一比特的软度量进行条件反转。在另一实施方案中,该方法包括进行一次初始尝试使用初始读取门限集解码ECC,使初始集中不超过一个读取门限被置于每对彼此相邻的标称值之间,一旦初始尝试失败,将模拟输出值和多个读取门限进行比较。在又一实施方案中,每个比较结果都具有第一和第二可能值中的一个,并且其中计算软度量包括确定分别具有第一和第二可能值的比较结果所对应的第一和第二计数,以及根据所述第一和第二计数计算软度量。在又一实施方案中,所述方法还包括一旦解码ECC失败,增添一个或多个另加的读取门限到所述多个读取门限,根据另加的读取门限重新计算软度量,并使用重新计算的软度量解码ECC。增添另加的门限包括渐进地增加多个读取门限直至满足预定的条件。在一公开的实施方案中,从第一组模拟存储单元中读取数据进一步包括估计由第二组模拟存储单元对第一组所造成的干扰和消除所估计的干扰。消除所估计的干扰包括根据所估计的干扰对第一组所关联的软度量进行修改。在一些实施方案中,该方法包括,一旦第一组内的ECC解码失败,选择是否执行下列之一重新读取第二组中的数据,从而重新估计和消除干扰;通过读取第三组存储单元中的数据重新估计干扰;和增添一个或多个另加的读取门限,-使用另加的读取门限重新读取第一组中的数据。在一个实施方案中,计算软度量包括将软度量标准化以使不依赖于读取门限的数量。执行多次读取操作可包括设置以彼此不同的非均ii匀间隔间隔开的读取门限。本发明另外还提供了一种数据存储设备,包括一个接口,其可操作地与包含众多模拟存储单元的存储器进行通信;和一个存储器信号处理器(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通过把各自的模拟值写入模拟存储单元,来存储经编码的数据。模拟值选自一组标称模拟值(nominalanalogvalue)集,这些标称模拟值代表数据。MSP通过执行多个读取操作从模拟存储单元中读取数据,读取操作将写入存储单元的模拟值与多个读取门限进行比较。读取门限被设定为至少有两个读取门限置于一对相邻的标称值之间。所述多个门限比较为每个模拟存储单元生成多个比较结果。MSP根据多个比较结果计算软度量。软度量提供与读取自存储单元的值或存储单元中的单个比特的值相关的可信度或确定度的量化测量。MSP使用软度量对ECC解码。在一些实施方案中,MSP以迭代方式增加读取门限的个数,直至实现成功解码。一些已知的读取方法在任一给定时间使用单个门限以区分相邻的存储状态。不同于这些已知方法,此处描述的方法和系统使用多个门限执行多个读取操作,所述多个门限位于相邻存储状态间。通常,多个门限位于相邻标称值之间的边界区域,以使多个比较结果传递和这些区域内的模拟值统计分布相关的有价值信息。从而,基于此信息的软度量使ECC解码过程中能够纠正更多的读取错误,并提供改进的整体错误概率。一些已知的读取方法为了改善解码性能而修改门限值。不同于这些已知方法,本发明所描述的方法和系统不修改门限值,而是增添新的门跟到已有集合中,通过提高软度量的精确度来增进解码性能。本发明公开的方法和系统实现的增强的解码性能提高了数据存储的可靠性、存储密度和存储器件的数据保持时间,使给定性能级别的存储器件成本和复杂度降低。系统描述图1示意性地示出了一种根据本发明一个实施方案的用于存储器信号处理的系统20的框图;系统20可用于各种主机系统和器件中,如计算器、移动电话或其它通讯终端、可移除式存储模块(U盘("disk-on-key")器件)、数码相机、音乐及其它媒体播放器、和/或任何其它存储与取出数据的系统或器件。.系统20包含一个存储器件24,其将数据存储在存储单元阵列28中。存储阵列包含多个模拟存储单元32。在本发明专利申请的语境和权利要求中,术语"模拟存储单元,,(analogmemorycell)用来描述任何保存一个物理参数的连续模拟值(如电压或电荷)的存储单元。阵列28可包含任何类型的模拟存储单元,例如NAND、NOR和CTF型闪速存储单元,PCM、NROM、FRAM、MRAM和DRAM单元。存储在单元中的电荷电位,和/或单元中写入与读出的模拟电压或电流,在本文中总称为模拟值。通过对单元编程使承担各自的存储状态,系统20把数据存储在模拟存储单元中。存储状态选自一有限的可能状态集,并且每个状态对应一定的标称模拟值。例如,通过把四种可能的标称模拟值之一写入该单元,2比特每单元的多层单元可,皮编程而承担四种可能的存储状态之一。要存储在存储器件24中的数据被提供给该器件并緩存在数据緩冲器36中。然后借助于读写(R/W)单元40,该数据被转化成模拟电压并被写入存储单元32中,读写单元40的功能在下文具体说明。当从阵列28读出数据时,读写单元40将电荷,并由此而将存储单元32的^f莫拟电压,转换成具有1比特或多比特分辨率的数字采样(sample)。采样緩存在緩沖器36中。存储器件24的操作和定时由控制逻辑单元48管理。15存储器信号处理器(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和解码方案。本文所描述的方法和系统不限于分块码,而是也能与巻积码连用。MSP52包含数据緩冲器72,其被单元60用于存储数据和与存储器件24接口。MSP52也包含输入/输出(I/0)緩沖器56,其形成MSP与主机系统间的接口。控制器76管理MSP52的操作和定时。信号处理单元60和控制器76可以以硬件实现。或者,单元60和/或控制器76可包含运行适用软件的微处理器,或者软件和硬件要素的组合。图1的配置为一种范例系统配置,其仅为概念清晰之用。也可采用任何其它适用的配置。为清楚起见,非理解本发明原理所必需的元件,如各种接口、寻址电路、定时和时序电路、以及调试电路,都从附图中略去。在图l所示示例性系统配置中,存储器件24和MSP52以两个独立的集成电路(IC)实现。然而,在替代实施方案中,存储器件和MSP可以集成在单个多芯片封装(MCP)或系统级芯片(SoC)中的分离的半导体棵片(die)上。又或者,部分或全部MSP电路可驻留于存储阵列28所在的同一棵片中。下文图11描述了这种范例配置。又或者,MSP52的部分或全部功能以软件实现,并由主机系统的处理器或其它部件执行。在一些实施方式中,单个MSP52可以连接到多个存储器件24。系统20的某些实施方案的附加构造方面如前面引用的美国临时专利申请60/867,399中所述。在通常的写操作中,从主机接受要被写入存储器件24的数据,并将该数据緩存在I/O緩冲器56中。此数据,通过数据緩冲器72,传送到存储器件24。这些数据可在被传送到存储器件进行编程之前被MSP52预处理。例如,单元60可以使用ECC对数据编码,可以增加供内部使用的某些数据,和/或可以使数据混杂(scramble)。在器件24中数据临时存储在緩冲器36中。读写(R/W)单元40将数据转换为标称模拟值并把这些标称值写入阵列28的适当单元32中。在通常的读取操作中,读/写(R/W)单元40从适当的存储单元32中读出模拟值并将它们转化为软数字采样。该采样緩存在緩冲器36中并传送给MSP52的緩冲器72。在一些实施方案中,MSP52的单元60将这些采样转换为数据比特。如前所述,可能的模拟值范围分为两个或多个区,每个区代表一个或多个数据比特的一定组合。下文还将更具体说明,通过把这些存储单元的模拟值与多个读取门限集进行比较来读取存储单元。对每个单元,MSP根据多个比较结果计算出一个软度量。软度量被MSP在解码ECC时使用。编码数据通过输入/输出(I/0)緩冲器56传送到主机系统。存储阵列结构图2是本发明一种实施方案的存储单元阵列28的示意图;尽管图2涉及连接到特殊阵列配置中的闪速存储单元,本发明的原理同样适用于其它类型的存储单元和其它阵列配置。一些范例单元类型和阵列配置如前文背景部分所引的文献中所述。阵列28的存储单元32被配置在具有多个行和多个列的栅格中。每个单元32包含一个浮置栅极金属氧化物半导体(MOS)晶体管。可以通过给晶体管栅极、源极和漏极加适当电压电平,把一定量的电荷(电子或空穴)存储在一个特定单元中。存储在单元中的值可以通过测量该单元的门限电压读出,门限电压被限定为,为使晶体管导通而需要加载到晶体管栅极上的最小电压。读取门限电压指示存储在该单元中的电荷。在图2的范例配置中,每行晶体管的栅极由字线(wordline)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中不同的失真机理引起。例如,阵列中相邻单元间的电交叉耦合可能改变一个特定单元的门限电压。又例如,电荷可能随时间从单元中泄漏。作为此老化效应的后果,单元的门限电压可能随时间从初始写入值发生漂移。另一类的失真,通常称为扰动噪声,是由对阵列中某些单元的存储访问操作(例如读,写或擦除操作)引起的,所述对阵列中某些单元的存储访问操作导致其它单元中意外的电荷改变。另外一个例子,通过一种被称为背景图案相关(BackPatternDependency)(BPD)效应,一个特定单元的源极-漏极电流可能受相邻单元的电荷的影响,例如受同一NAND单元串中的其它单元的电荷的影响。存储单元32中的失真使存储器件的性能退化,例如使在重构数据时的错误概率、可达到的存储容量和/或可达到的数据保持时间方面。MLC器件中的性能下降尤其严重,在该MLC器件中,表示数据的不同电压电平之间的差相对要小。使用多个门限读取存储单元本发明实施方案,通过使用多个读取门限,提供了改进的用于从阵列28的模拟存储单元32中读取数据的方法和系统。此处所描述的方法对SLC器件(如下面图3所示)和MLC器件(如下面图4所示)都适用。图3是示意性地示出了根据本发明一种实施方案的在单层单元(SLC)器件中的读取门限的示意图;图中显示一组(例如一页)模拟存储单元中的两个门限电压统计分布。对于一特定页,该图代表了存储在该页存储单元中的门限电压的分布图。在图3示例中,每个存储单元可4皮编程至两个可能标称电平中的一个,即每个单元存储单个数据比特。由于单元间的各种失真变化和各种损坏机理,从存储单元中读取的实际门限电压可能相对标称电平有统计上的变化。此示例中,曲线90A显示被编程为存储值"1"的单元的门限电压分布。曲线90B显示^皮编程为存储值,,O,,的单元的门限电压分布。如图可见,曲线90A和90B有重叠。这即是说,存在一种这样的可能性,被编程为某一比特值的存储单元将被错误地解释为被编程至其它比特值。用来区分'T'和"O"的读取门限的位置对这一错误概率有相当的影响。在本发明一些实施方案中,MSP52通过组合在借助于多个读取门限下获得的信息来重构存储在存储单元中的数据,来减小错误概率。图3显示五个门限,标记为Tl到T5。在一些实施方案中,MSP52运用每一个门限去读每个存储单元。每个读取操作产生一个比较结果,即产生一个该读取门限电压是大于还是小于操作中使用的门限的指示。在图3的范例实施方案中,MSP应用门限T1…T5对每个存储单元读五次,以生成5个相应的比较结果。MSP可按任意适当顺序遍历这些不同的门限。例如,MSP可以从位于所需区域的中间位置的门限开始,并通过增添初始门限任一边上的门限而逐渐由此点移开。下面进一步描述逐渐增加门限个数的示例性迭代方法。对于每一个正被读取的存储单元,MSP使用多个比较结果计算出一个软度量。软度量指示与从读取自存储单元的值相关联的可信度或确定度量值。在一些实施方案中,软度量指示了读取值与某数据值相对应的可能性(例如,一个非常低的软度量值可以指示读取值与,T,相对应的高确定度,一个非常高的软度量值指示读取值可能代表"O",中间的度量值指示较低的可信度)。在其它实施方案中,度量值指示读取值的可靠性,不指示特定比特值(例如,低度量值代表低可信度,高度量值代表高可信度)。在本发明专利申请语境和权利要求中,术语"软度量"是指任何类型的传递了单个比特以上信息,即两个以上可能值,的定量测量。例如,软度量可包含一个用2比特或多比特表示的定点或浮点数值。另一种软度量示例类型,有时被称为"擦除,,,分配给每个存储单元三个可能值——"0","1"或"不确定"中的一个。又或者,可以采用4壬4可其它适用形式的软度量。注意,当每个单元存储多个数据比特时,软度量值可被计算出并分配给每一单个的比特。例如,在一个4层MLC中,为最低有效位(LSB)计算一个度量值,为最高有效位(MSB)计算另一个度量值。应用于SLC和MLC两者的度量计算方法的具体示例将在下面进一步说明。MSP52可采用任何适用的、基于多个比较结果来计算软度量值的方法。在一些实施方案中,MSP可以使用一种与比较结果的不同组合相关联的度量值的表。例如,下表可与图3中的五个门限的配置连用。<table>tableseeoriginaldocumentpage21</column></row><table>上表提供了32个软度量值,记为M1...M32,其对应门限T1…T5的5个比较结果的32个可能组合。按照图3的记法,比较结果"0"表示读取值高于使用的门限,比较结果"l"表示读取值低于此门限。通常,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',,l,l,l,O,O',或'1,0,0,0,0',的结果集是一致的。通过给不一致的比较结果集分配不同的软度量值,MSP可以以不同的方式处理不一致的比较结果集。例如,MSP可以视不一致的结果集为不确定,并向ECC解码过程标记它们为擦除。或者,MSP可无^L或者另行尝试解决一些不一致。例如,假定T3的比较结果"0"是由读取噪声引起时,MSP可以将,1,1,0,1,1,'类似地看做'1,1,1,1,1'集。作为使用表的替代,MSP52可估计一个基于多个比较结果的函数,并生成相应的软度量值。例如,MSP可以估计每个存储单元中单独的比特的对数似然比(LogLikelihoodRatios)(LLRs),其定义为<formula>formulaseeoriginaldocumentpage22</formula>其中,JV7表示所讨论的存储单元中存储的特定数据比特,r表示从该单元中读取的模拟值。采用LLR作为提供给ECC解码过程的度量,如2007年5月10日提交的PCT专利申请PCT/IL2007/000580,名为"CombinedDistortionEstimationandErrorCorrectionCodingForMemoryDevices"的文中所述,其公开的内容在此以引用的方式纳入本说明。为计算LLR,MSP可为每个存储单元保留两个值(l)被发现为低于单元的模拟值的最大读取门限,记为Va,(2)被发现为高于单元的模拟值的最小读取门限,记为Vb。单元的LLR可近似表示为<formula>formulaseeoriginaldocumentpage22</formula>其中,T1表示'T'为其数据比特的最接近的分布的中心模拟值,TO表示以"O"为其数据比特的最接近的分布的中心值。r的分布假定为方差是cr2的高斯分布。随着存储单元在增加的读取门限个数下^皮读取,MSP更新k和k。在每一阶段,单元的实际模拟值已知在区间[Va,Vbl中。随着门限个数的增加,区间缩小,不确定性变小,估计的LLR变得更精确。又或者,MSP52可采用任何其他适用的基于多个比较结果而计算软度量值的方法或才几制。解码ECC时MSP使用软度量。在通常应用中,存储在一组存储单元(例如一个存储页)中的数据,形成单个码字。在对某一个ECC码字解码时,MSP的信号处理单元60使用该组存储单元的软度量值。结果,被认为具有高可信度级别的存储单元在ECC解码过程中被赋予更高权值,亦或反之。图4是根据本发明一种实施方案在多层单元(MLC)器件中的读取门限的示意图;在图4的示例中,每个存储单元可被编程至四个可能标称电平中的一个,因此每个单元存储2比特数据。曲线94凡..940分别显示被编程至存储"ll","01","00"和"10"数据的存储单元的门限电压分布。在本例中,MSP52使用5个门限集去读存储单元。每个门限集包含三个门限,其通常位于各对相邻分布曲线间的三个边界区域内。门限集列表如下<table>tableseeoriginaldocumentpage23</column></row><table>在一些实施方案中,MSP524吏用15个门限的每一个去读取单元的门限电压,并基于15个比较结果计算出软度量。MSP可采用任何类型的软度量和任何基于多个比较结果的计算度量值的方法。如上所述,MSP使用软度量作为对ECC解码过程的输入。在替代实施方案中,在两个阶段中读取存储单元,对应于单元中存储的两个比特。例如,在图4的配置中,读/写(R/W)单元使用五个门限T21、T22、T23、T24和T25,即曲线94B和94C之间的位于电压轴中部的门限,执行第一组比较。MSP根据使用这5个门限获得的5个比较结果计算出第一个软度量。注意到位于门限T21…T25之上的两个标称电平都有一个最低有效位值"O",位于门限T21…T25之下的两个标称电平都有一个最低有效位值"l"。因此,第一软度量对应于最低有效位(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"。另一方面,如果比较结果指示模拟值大于131...135或小于T11...T15,则确定该比特为'T'。在本例中,关于门限121...125的比较结果,其用于读取LSB,但不用于读取MSB。类似的过程可用于其它类型MLC,如每单元存储3比特的8层单元。图3和图4所示的门限配置为示例配置,仅出于概念的明晰目的而选择了它们。在替代实施方案中,系统20可以采用任意所需数目的标称电平、任意其他从比特值到标称电平的映射方式、以及任意所需数目的门限集。尽管图3和图4显示了以恒定增量间隔开的门限,此处所描述的方法和系统也可用于不均匀间隔的门限。在多层单元(MLC)器件中,电压区与电压区之间的门限间隔可以变4匕。例如,图4中,门限T11…T15的间隔可能不同于门限T21.,.T25。也可使用不同的门限间隔,例如当不同的模拟值分布具有不同的形状或其彼此间的间隔不同时。MSP可改变门限间隔,或者选取要使用的门限,例如根据对模拟值分布的估计。图5是示意性示出根据本发明一个实施方案的用于从模拟存储单元32读取数据的方法的流程图;对某一个存储单元,本方法始于系统20在读取步骤100使用多个门限分别执行多个读取操作。多个读取操作生成各自的多个比较结果,即生成多个关于该单元的门限电压是小于还是大于这些不同门限的指示。在度量计算步骤104,MSP52根据多个比较结果计算出该存储单元的一个软度量。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根据落在门限任一边上的计算结果的数目来计算软度量值。(在后面的描述中,比较结果"O"表示读取值高于门限,亦或反之。然而,这个约定仅为方便起见,也可采用相反的约定。)考虑前面图3的SLC范例实施方案。在此实施方案中,在五个比较结果中,如果比较结果"0"的个数远高于结果"1"的个数,则可能的是,该单元被编程为"0"。类似地,如果比较结果'T,的个数远高于结果"0"的个数,则这个被编程的比特可能为"1"。类似的逻辑也可用于多阶段比较过程中解码MLC单独的比特的每一个阶段中,如前面图4所述。图6是本发明一种实施方案的计算软度量的流程示意图;此方法的描述指向SLC应用并参考前面图3。然而,这样选择仅为简化解释之用。该方法也可类似地用于MLC。此方法始于在门限限定步骤116,MSP限定多个门限。通常但不必需的是,门限被限定在电压分布之间的边界区域。图3中,五个门限被限定在曲线卯A与卯B重叠的区域。例如,假定曲线90A和卯B之间的中点为1伏,门限可以20mv分辨率来表示,则可以以20mV间隔来限定门限集,以覆盖电压范围1V士40mV。在读取步骤120,MSP使用多个门限读取存储单元。在计数步骤124,MSP对落在门限任一边的比较结果的数目进行计数。换言之,MSP从总的门限比较的数目中,确定比较结果"0"的个数和/或结果"l"的个数。在度量计算步骤128,MSP基于对比较结果的计数计算与单元(或单元中的单独的比特)相关的软度量。例如,假定有前面图3的五个门限的配置和4比特的度量值,MSP可以根据下表计算软度量<table>tableseeoriginaldocumentpage26</column></row><table>50"0000"=0上表中,如果所有五个计算结果都是"l",存储的数据极有可能是"1",因此赋予最大度量值"llll"。另一极端,如果所有五个计算结果都是"o",存储的比特可能是"o",因此赋予最小度量值"oooo"。如果一些比较结果是"0",另一些是"l",度量值就被设置为中间值,其随总数中结果"l,,的个数的增加而单调增大。或者,可以采用其它任何适用的基于比较结果的计数而确定软度量值的方法。度量计算可以通过查询一张表而实现,该表存放度量值并通过所述比较结果的计数来索引,也可以通过评估一基于该比较结果的计数的函数来实现,或使用任何其它适用机制来实现。MLC度量计算的硬件实现范例如前面所注意的,计算多层单元中各比特的软度量时,门限的选择取决于先前解码的比特值。并且,先前解码的比特值可能在某些情况下影响度量值自身。例如考虑上面图4的4层单元的配置。当在一个两阶段的方法中从这种单元读取数据时,通过确定单元读取值落在门限T21...T25左边还是落在右边首先解码LSB。注意在图4的示例中,位于这些门限之下的两个标称电平有值为'T'的LSB,位于这些门限之上的两个标称电平有值为"0"的LSB。第二解码阶段(解码MSB)依赖第一阶段的结果。当LSB为"0"时,对MSB的解码包含确定读取值是可能属于曲线94C还是属于曲线94D。当LSB为,T,时,对MSB的解码包含确定读取值是可能属于曲线94A还是属于曲线94B。然而,注意当比较曲线94A和94B时(即当LSB^'r,时),高门限电压对应MSB」'0",低门限电压对应MSB="1"。当比较曲线94C和94D时(即当LSB^,0"时),情况就相反,高门限电压对应MSB="1",低门限电压对应MSB="0"。在这种情形下,依赖比较结果的计数的软度量值有时应当被反转,从而维持高度量值对应数据"O"这一常规。决定是否反转度量值取决于前一比特值。同等地,也可以反转当前读取的比特的值而不反转度量值。仅当先前值等于'T'时才对一个值进行反转的条件操作可以通过在当前和先前比特值之间执行异或(XOR)操作而实现。图7是本发明一种实施方案的用于多层单元软度量计算的示例电路的示意框图;尽管后续描述涉及硬件或固件实施方式,类似的机制可以以软件、或软件与石更件的组合来实现。图7的电路计算一组4层单元的LSB和MSB的软度量,假定LSB代表某一存储页,MSB代表另一页。LSB页首先被读取,并被称为前一页。MSB接着被读取,并被称为当前页。根据前一页的比特值,当前页的度量的计算过程进行条件反转(XOR)操作。此电路包含XOR电路134,其在当前页硬比特决定(hardbitdecision)的字节130(MSB)和从前一页的先前解码的数据比特的字节132(LSB)之间执行按位异或(XOR)操作。这样,对特定单元,当之前解码的LSB为'T'时,当前读取的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",否则为'T'。为了对这种读取过程计算软度量,MSP可将门限分组成一些逐渐向内移入MSB-"0"的区域的对。MSP使用不同的门限对,对落在MSB="0"间隔以内和/或以外的比较结果进行计数。在本例中,MSP形成了(T14,T35),(T12,T33),(Tll,T31),(T13,T32)和(T15,T34)等对。对每一对,MSP执行两次读取操作并检查读取值是否落在门限之间的间隔内或者间隔之外。MSP对其中模拟值落在两个门限之间(指示MSB="0")的门限对的数目和/或其中模拟值落在两个门限之间的间隔之外的(指示MSB^T')门限对的数目进行计数。MSP根据计数来计算软度量。类似方法可用于8层3比特每单元MLC。例如假定一个8层MLC器件,其8个电平表示为LL.丄8,并分别映射到三连比特(bittriplet)'iii','oir,'ooi','ioi','ioo','ooo','oio',,iio'。msp可独立于其它比特计算这种单元的MSB(三连比特中的最左边一个比特)的软度量一一通过使用4个多门限集进行比较。每个门限集都位于具有不同MSB值的相邻电平之间。在本例中,一个集合位于电平Ll和L2之间,另一集合位于L3和L4之间,第三集合位于L5和L6之间,第四集合位于L7和L8之间。四个门限集将模拟值轴分为5个间隔,记为11…15,这样每个间隔中MSB具有相同值。使用此划分,当读自该单元的读取模拟值落在间隔I2或14以内时,MSP确定MSB为"0",如果模拟值落在间隔II、13或15以内,MSP确定MSB为'T'。为计算MSB的软度量,MSP形成4个门限组,每组包含来自每个集的一个门限。从一组移动到另一组,每个门限都以MSB值从"l"到"0"转变的方向移动。对每个门限组,MSP执4亍四次读取才喿作,检查读取值是落在相应于"1"的间隔内还是落在相应于"0"的间隔内。MSP对模拟值落在相应于MSB」'0"的间隔内的门限组的数目,和/或模拟值落在相应于MSB」T'的间隔内的门限组的数目进行计数。MSP根据计数来计算软度量。通常但不必需的是,基于对一给定类型的比较结果的计数的软度量假定读取门限围绕分布之间的中点对称地分布。逐渐增加门限数量上述的比较和度量计算操作既花费时间又消耗计算资源,且随门限数量的增大而更甚。因此,仅使用为成功重构数据而所需的数量的门限有时是有利的。在一些实施方案中,MSP首先尝试使用相对少量的门限来计算软度量和解码数据,仅在需要时才增加门限的个数。例如,起初MSP可首先尝试使用一个其中只有单个门限位于每对相邻标称值(存储状态)之间的初始读取门限集来解码ECC。在一些实施方案中,一旦初始解码尝试失败,MSP就转向多个门限解码。图8是根据本发明另一种实施方案的通过逐渐增加门限数目而从模拟存储单元读取数据的范例方法的流程示意图。起初,假定MSP尝试过使用在借助一定数量的门限下获得的软度量来解码存储在一组存储单元中的一个特定码字,且ECC解码已失败。所述度量被假定是基于比较结果的计数,如前面所述。此方法始于在门限增添步骤142,MSP增加一个或多个另加的门限到所使用的门限的集中,使用增加的门限读取存储单元组。在计数更新步骤144,MSP更新比较结果的计数(即,总数中"0"和/或"l"的个数)。更新后的计数反映了先前门限以及新增门限的比较结果。在度量更新步骤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次迭代中的门限集为{TsT+A,.《T,TH"A,T4T風T,{T,T+A,T-A,T+2A,T-2^T+3A,T-3A}{T,T+A,T-厶,T+2A,T-2人T+3A,T-3A,T+4A,T-4A}度量标准化和干扰消除当计算基于变化数量的门限的软度量时,如前面图8中的方法,度量值的可能范围可随使用的门限的个数而变化。例如,当软度量包含比较结果计数时,基于三个门限的度量值将在[0…31范围内,而基于五个门限的度量值将在[0…5范围内。此效应通常不是理想的。换言之,通常理想的是提供度量给ECC解码器,其使用相同动态范围来量化可信度或确定度,不管度量所基于的门限比较的个数。在一些实施方案中,MSP根据门限的个数对读取自存储单元的软值标准化。例如,MSP可对值采用位扩充来达到某一固定比特数,例如5比特。例如,位扩充的值(ExtendedValue)可能定为如下歸-iV^0<,H其中K"/表示输入软值,7V表示用于估计Ktf/的门限个数。MflxFfl/表示位扩充软值的最大值,例如,31对应5比特表示。或者,MSP可能釆用任何其它适用的数据缩放机制。在一些实施方案中,MSP有存储单元中的失真度或干扰度方面的信息。可以利用各种方法来估计存储单元中的干扰程度。范例方法如前面引用的PCT专利申请PCT/IL2007/000580,以及如2007年5月10日提交的PCT专利申请PCT/IL2007/000576名为"DistortionEstimationandCancellationinMemoryDevices,",以及2007年8月27日提交的PCT专利申请PCT/IL2007/001059,名为"EstimationofNon-LinearDistortioninMemoryDevices,"文中所述,其公开的内容在此以引用的方式纳入本说明书。当MSP可获得干扰估计时,MSP可在将这些软值提供给ECC解码器之前,将干扰的效应增加到软值上,或者根据估计的干扰对软值进行修改。图9是本发明另一种实施方案的从模拟存储单元读取数据的过程的示意图,其包括数据缩放和干扰消除;尽管图9的配置用于演示干扰消除和缩放两者,每一项机制的实现都可在有或没有另一项的情况下实现。在图9的过程中,缩放模块154接收从存储单元读取的(例如,前面图7的异或电路134的输出)经过条件反转的软值。模块154也接收35x紐nrfe,函e='2迭代次数和/或当前被使用的门限的个数的指示。模块154可对输入软值应用比特扩充或其它缩放。缩放量取决于输入迭代次数。缩放的软值被提供给干扰消除模块156,其也接收对各存储单元中的干扰程度的估计。模块156减去或消除从相应软值估计的干扰,产生经过适当缩放并包含程度减少的干扰的软值。这些软值被提供给度量计算模块158,其计算软度量并将它们提供给ECC解码器。门限比较和干扰估计的折中以增加的门限对单元重新读取和估计来自相邻存储单元的干扰,这两个操作,一方面改善了读取性能,另一方面耗费时间和计算量。在一些实施方案中,MSP可能组合两个操作并在其间折中。例如,MSP可能在每次迭代时确定哪种操作更可取是通过使用另外的门限来重新读取当前页来增强解码精确度,还是通过读取(或重新读取)一组干扰单元来增强干扰估计。图10是根据本发明又一种实施方案的从模拟存储单元读取数据的方法的示意流程图,其包括在进行重新读取和进行干扰估计进行折中。此方法始于在读取步骤160,MSP读取一页存储单元。在此过程的每次循环,MSP可选择要么(l)使用另加的门限重新读取需要的页,要么(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的存储访问速度的限制因素。当单一MSP52与多个存储器件24连接时这一影响变得尤为严重。在本发明替代实施方案中,一些重新读取功能是在存储器件内部实现的,从而减小存储器件与MSP之间的通讯带宽。图11是根据本发明替代实施方案的用于存储器信号处理的系统200的示意框图;在图11的范例实施方案中,多个存储器件204通过一条外部总线212连接到一个MSP208。每个存储器件204包含一个存储单元阵列216和一个读/写(R/W)单元220,其分别类似于前面图1的阵列28和读/写(R/W)单元220。与图1所示的实施方案不同,每个存储器件204包含一个门限设置和度量计算单元224,也简称为"度量计算单元"。单元224通过内部总线228连接到读/写(R/W)单元220。当存储器件接收到从一组存储单元(例如,一页)中取出数据的请求时,单元MA控制读/写(R/W)单元220用诸如前述的任何方法来设置适当的门限值和读取该存储单元。读/写(R/W)单元执行多次比较操作并发送相应比较结果给单元224。单元224根据比较结果计算软度量,通过外部总线212发送度量值到MSP208。MSP208包含一个ECC解码器232。该ECC解码器接收被发送自存储器件204的单元224的软度量并基于该度量解码ECC。MSP通常输出解码数据给主机系统。当MSP208控制多个存储器件204,一单个ECC解码器可解码从所有存储器件发送的数据。或者,可使用多个ECC解码器。当使用图11的配置时,相比前面图1的配置,由于单独的比较结果不传送到MSP,MSP与存储器件之间的通讯带宽显著减小。相反,单元224发送软度量值,对于每个读取存储单元,其通常包括一单个的值。传送多个比较结果所需的高通讯带宽被限于内部总线228,即存储器件内部。这类高通讯带宽在存储器件内部实现比在独立器件之间实现简单许多。并且,内部总线的通讯仅包含由特定存储器件产生的通讯,与被MSP控制的存储器件的数量无关。读/写(R/W)单元220和度量计算单元224之间的功能划分是一种范例划分,其仅为概念清晰之目的。在替代实施方案中,读、门限比较、门限设置和度量计算功能可按需以其它任何方式划分。这样,读/写(R/W)单元220、内部总线228和度量计算单元224也可以总体^L为一个读取电路,其读取模拟存储单元并产生软度量。如前所述,软度量计算有时要考虑读取存储单元中的干扰的估计和消除。在一些实施方案中,干扰估计和消除功能也可通过存储器件204内部的读取电路实现,例如,通过单元224。在这些实施方案中,单元224发送其中已考虑了干扰的软度量给MSP。实现存储器件内部信号处理功能的一些方面在前面引用的美国临时专利申请60/917,653中得以描述。尽管此描述的实施方案主要解决从固态存储器中取出数据,本发明的原理也可用于在硬盘驱动器(HDD)和其它数据存储媒体和器件中存储和取出数据。因此前述的实施方案在此以示例方式引用,并且本发明不限于本文前面特别展示和描述的内容。相反,本发明的范围包括前述各种特征的组合和子组合,以及本领域技术人员从前述说明中领会的各种更改和变化,这些都没有被现有技术公开。权利要求1.一种操作存储器的方法,包括通过将选自标称值集的各个模拟输入值写入存储器的模拟存储单元,把数据存储在存储器的模拟存储单元中,所述数据以纠错码(ECC)编码;通过执行多次读取操作读取存储的数据,所述读取操作将所述模拟存储单元的模拟输出值和各个不同的读取门限相比较,从而为每个模拟存储单元生成多个比较结果,其中,至少有两个读取门限被置于标称值集内的一对彼此相邻的标称值之间;根据多个比较结果计算软度量;和使用软度量解码ECC,从而提取被存储在模拟存储单元中的数据。2.如权利要求1所述的方法,其中每个模拟存储单元存储该数据的一个或多个比特,并且每个软度量对应于其中的一个比特。3.如权利要求2所述的方法,至少一些模拟存储单元中的每个模拟存储单元存储该数据的两个或多个比特,其中读取数据包括,对于所述至少一些模拟存储单元中的每个模拟存储单元,分别在两个或多个解码阶段,读取两个或多个数据比特,且其中计算软度量包括,根据在先于第一解码阶段的第二解码阶段读取的第二比特值,修改在第一解码阶段读取的第一比特的软度量。4.如权利要求3所述的方法,其中修改软度量包括根据第二比特的值对第一比特的软度量进行条件反转。5.如纟又利要求1所述的方法,还包括进4于一次初始尝试4吏用初始读取门限集解码ECC,使初始集中不超过一个读取门限被置于每对彼此相邻的标称值之间,一旦初始尝试失败,将模拟输出值和多个读取门限进行比较。6.如权利要求1-5之一所述的方法,其中每个比较结果都具有第一和第二可能值中的一个,并且其中计算软度量包括确定分别具有第一和第二可能值的比较结果所对应的第一和第二计数,以及根据所述第一和第二计数计算软度量。7.如权利要求1-5之一所述的方法,包含,一旦解码ECC失败,增添一个或多个另加的读取门限到所述多个读取门限,根据另加的读取门限重新计算软度量,并使用重新计算的软度量解码ECC。8.如权利要求7所述的方法,其中增添另加的门限包括渐进地增加多个读取门限直至满足预定的条件。9.如权利要求1-5之一所述的方法,其中从第一组模拟存储羊元中读取数据进一步包括估计由第二组模拟存储单元对第一组所造成的干扰和消除所估计的干扰。10.如权利要求9所述的方法,其中消除所估计的干扰包括根据所估计的干扰对第一组所关联的软度量进行修改。11.如权利要求9所述的方法,包括,一旦第一组内的ECC解码失败,选择是否执行下列之一重新读取第二组中的数据,从而重新估计和消除干扰;通过读取第三组存储单元中的数据重新估计干扰;和增添一个或多个另加的读取门限,4吏用另加的读取门限重新读取第一组中的数据。12.如权利要求1-5之一所述的方法,其中计算软度量包括将软度量标准化以使不依赖于读取门限的数量。13.如权利要求1-5之一所述的方法,其中执行多次读取操作包括设置以彼此不同的非均匀间隔间隔开的读取门限。14.一种数据存储设备,包括一个接口,其可操作地与包含众多模拟存储单元的存储器进行通信;和一个存储器信号处理器(MSP)器件,其与该接口相连并被结合,用以通过将选自标称值集的各个模拟输入值写入模拟存储单元,把数据存储在模拟存储单元中,所述数据以纠错码(ECC)编码;用以通过执行多次读取操作读取所存储的数据,所述读取操作将所述模拟存储单元的模拟输出值和各个不同的读取门限相比较,以对每个模拟存储单元生成多个比较结果,其中,至少有两个读取门限被置于标称值集内的一对彼此相邻的标称值之间;用以根据多个比较结果计算软度量;和使用软度量解码ECC,从而提取被存储在模拟存储单元中的数据。15.如权利要求14所述的设备,其中每个模拟存储单元存储该数据的一个或多个比特,并且其中每个软度量对应其中一个比特。16.如权利要求15所述的设备,其中至少一些模拟存储单元中的每个模拟存储单元存储该数据的两个或多个比特,其中MSP被结合,用以分别在两个或多个解码阶段,读取两个或多个数据比特;以及用以根据在先于第一解码阶段的第二解码阶段读取的第二比特值,修改在第一解码阶段读取的第一比特的软度量。17.如权利要求16所述的设备,其中MSP被结合以根据第二比特的值对第一比特的软度量进行条件反转。18.如权利要求14所述的设备,其中MSP被结合,用以进行一次初始尝试使用初始读取门限集解码ECC,使初始集中不超过一个读取门限被置于每对彼此相邻的标称值之间,以及用以一旦初始尝试失败,将模拟输出值和多个读取门限进行比较。19.如权利要求14-18之一所述的设备,其中每个比较结果都具有第一和第二可能值中的一个,并且其中计算软度量包括确定分别具有第一和第二可能值的比较结果所对应的第一和第二计数,以及根据所迷第一和第二计数计算软度量。20.如权利要求14-18之一所述的设备,其中,一旦解码ECC失败,所述MSP^皮结合,用以增添一个或多个另加的读取门限到所述多个读取门限;用以根据另加的读取门限重新计算软度量,以及使用重新计算的软度量解码ECC。21.如权利要求20所述的设备,其中MSP被结合以渐进地增加多个读取门限直至满足预定的条件。22.如权利要求14-18之一所述的设备,其中MSP被结合以估计由第二组模拟存储单元对第一组所造成的干扰和消除所估计的干扰。23.如权利要求22所述的设备,其中MSP被结合以根据所估计的干扰对第一组所关联的软度量进行修改。24.如权利要求22所述的设备,其中,一旦第一组内的ECC解码失败,选择是否执行下列之一重新读取第二组中的数据,从而重新估计和消除干扰;通过读取第三组存储单元中的数据重新估计干扰;和增添一个或多个另加的读取门限,使用另加的读取门限重新读取第一组中的数据。25.如权利要求14-18之一所述的设备,其中MSP被结合用于标准化软度量使其不依赖于读取门限的数量。26.如权利要求14-18之一所述的设备,其中MSP被结合用于设置以彼此不同的非均匀间隔间隔开的读取门限。27.—种数据存储设备,包括一个存储器件,包括多个模拟存储单元,其被配置以存储数据,所述数据被以纠错码(ECC)编码且作为选自标称值集的各模拟输入值而被写入模拟存储单元;以及读取电路,该电路被结合以通过执行多次读取操作读取所存储的数据,所述读取操作将所述模拟存储单元的模拟输出值和各个不同的读取门限相比较,以对每个模拟存储单元生成多个比较结果,其中,至少有两个读取门限被置于标称值集内的一对彼此相邻的标称值之间;用以根据多个比较结果计算软度量;和使用软度量解码ECC,以及输出计算出的软度量;和一个存储器信号处理器(MSP)器件,其连接到存储器件并被结合用于接收读取电路所计算出来的软度量,以及使用软度量解码ECC。28.—种操作存储器的方法,包括通过将各模拟输入值写入存储器的模拟存储单元,把数据存储在存储器的模拟存储单元中,所述数据以纠错码(ECC)编码;通过执行多次读取操作读取存储的数据,所述读取操作将所述模拟存储单元的模拟输出值和读取门限集相比较,从而为每个模拟存储单元生成多个比较结果;根据多个比较结果计算软度量;和使用软度量解码ECC,从而提取被存储在模拟存储单元中的数据;以及一旦未能成功提取数据,通过增添一个或多个新的读取门限到读取门限集来扩展该集,根据扩展的读取门限集,更新多个比较结果,重新计算软软度量,并重新解码ECC,从而提取数据。29.如权利要求28所述的方法,其中扩展读取门限集包括根据模拟存储单元的输出模拟值选择一个或多个新的读取门限。30.如权利要求29所述的方法,其中选择一个或多个新的读取门限包括确定至少一个选自如下属性组的属性,所述属性组由所述多个新的读取门限和所述新的读取门限的值组成。全文摘要一种操作存储器(28)的方法,包括通过将选自标称值集的各个模拟输入值写入存储器的模拟存储单元(32),把数据存储在存储器的模拟存储单元中,所述数据以纠错码(ECC)编码。通过执行多次读取操作读取存储的数据,所述读取操作将所述模拟存储单元的模拟输出值和各个不同的读取门限相比较,从而为每个模拟存储单元生成多个比较结果,其中,至少有两个读取门限被置于标称值集内的一对彼此相邻的标称值之间。根据多个比较结果计算软度量。使用软度量解码ECC,从而提取被存储在模拟存储单元中的数据。文档编号G11C16/04GK101601094SQ200780040493公开日2009年12月9日申请日期2007年10月30日优先权日2006年10月30日发明者D·索科洛夫,N·萨莫,O·沙尔维申请人:爱诺彼得技术有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1