CN101601094A - 使用多个门限读取存储单元的方法 - Google Patents

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

Info

Publication number
CN101601094A
CN101601094A CNA200780040493XA CN200780040493A CN101601094A CN 101601094 A CN101601094 A CN 101601094A CN A200780040493X A CNA200780040493X A CN A200780040493XA CN 200780040493 A CN200780040493 A CN 200780040493A CN 101601094 A CN101601094 A CN 101601094A
Authority
CN
China
Prior art keywords
thresholding
read
data
memory cell
soft metric
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA200780040493XA
Other languages
English (en)
Other versions
CN101601094B (zh
Inventor
N·萨莫
O·沙尔维
D·索科洛夫
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Anobit Technologies Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Anobit Technologies Ltd filed Critical Anobit Technologies Ltd
Priority claimed from PCT/IL2007/001315 external-priority patent/WO2008053472A2/en
Publication of CN101601094A publication Critical patent/CN101601094A/zh
Application granted granted Critical
Publication of CN101601094B publication Critical patent/CN101601094B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital 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/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/24Bit-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C27/00Electric analogue stores, e.g. for storing instantaneous values
    • G11C27/005Electric analogue stores, e.g. for storing instantaneous values with non-volatile charge storage, e.g. on floating gate or MNOS
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/16Storage of analogue signals in digital stores using an arrangement comprising analogue/digital [A/D] converters, digital memories and digital/analogue [D/A] converters 

Abstract

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

Description

使用多个门限读取存储单元的方法
相关申请的交叉引用
本申请要求下列专利申请的权益: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等人发表的“Introductionto Flash Memory”中所述,该文献在此处以援引方式全部纳入本文。例如,在纽约州纽约市举办的1996年的国际电子器件大会(IEDM)的学报(Proceeding of the 1996 IEEE International Electron DevicesMeeting)的第169-172页上由Eitan等人发表的“Multilevel Flash Cellsand their Trade-Offs”,描述了多层闪速存储单元和器件,该文献在此以援引方式全部纳入本文。该文对比了几类多层闪速存储单元,如共地型、DINOR、AND、NOR和NAND存储单元。
在1999年9月21日-24日在日本东京举办的固态器件与材料国际会议(SSDM)的学报的(Proceedings of the 1999InternationalConference 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 2002IEEE International Solid-State Circuits Conference)的第100-101页由Maayan等人发表的“A 512Mb NROM Flash Data StorageMemory with 8MB/s Data Rate”中,描述了NROM单元,其在此处以援引方式全部纳入本文。模拟存储单元的其它范例类型有:浮置栅极(FG)单元,铁电RAM(FRAM)单元,磁RAM(MRAM)单元,电荷捕获闪速存储(CTF)和相变RAM(PRAM,也称为相变存储器-PCM)单元。例如,在2004年5月16~19日在塞尔维亚和黑山(Serbia andMontenegro)的Nis举办的第24届微电子国际学会(MIEL)(Proceedings of the 24th international Conference onMicroelectronics)的学报第一卷的第377-484页上由Kim和Koh发表的“Future Memory Technology including Emerging NewMemories”中,描述了FRAM、MRAM和PRAM单元,其在此处以援引方式全部纳入本文。
从模拟存储单元读出的模拟值有时失真。失真可能有多种原因,如来自相邻存储单元的电场耦合、阵列中其它存储单元的访问操作产生的扰动噪声,以及器件老化引起的门限电压漂移。一些常见的失真机理,在如上文所引Bez等人的文中描述。在2002年5月的IEEE电子器件快报(IEEE Electron Device Letters)(23:5)第264-266页上发表的“Effects of Floating Gate Interference on NAND Flash MemoryCell 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。这些数据可在被传送到存储器件进行编程之前被MSP52预处理。例如,单元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 PatternDependency)(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中的五个门限的配置连用。
Figure A20078004049300211
上表提供了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 ] , LLR ≡ A ( X i ) = log [ p ( X i = 1 | r ) p ( X i = 0 | r ) ]
其中,Xi表示所讨论的存储单元中存储的特定数据比特,r表示从该单元中读取的模拟值。采用LLR作为提供给ECC解码过程的度量,如2007年5月10日提交的PCT专利申请PCT/IL2007/000580,名为”Combined Distortion Estimation and Error Correction Coding ForMemory Devices”的文中所述,其公开的内容在此以引用的方式纳入本说明。
为计算LLR,MSP可为每个存储单元保留两个值:(1)被发现为低于单元的模拟值的最大读取门限,记为Va,(2)被发现为高于单元的模拟值的最小读取门限,记为Vb。单元的LLR可近似表示为
A ( X i ) ≈ log [ Q { V a - T 1 σ } - Q { V b - T 1 σ } ]
[2] - log [ Q { V a - T 0 σ } - Q { V b - T 0 σ } ]
其中,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 bitdecision)的字节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 = 0 Val = 0 MaxVal Val = N Val + MaxVal - N 2 0 < Val < N
其中Val表示输入软值,N表示用于估计Val的门限个数。MaxVal表示位扩充软值的最大值,例如,31对应5比特表示。或者,MSP可能采用任何其它适用的数据缩放机制。
在一些实施方案中,MSP有存储单元中的失真度或干扰度方面的信息。可以利用各种方法来估计存储单元中的干扰程度。范例方法如前面引用的PCT专利申请PCT/IL2007/000580,以及如2007年5月10日提交的PCT专利申请PCT/IL2007/000576名为″Distortion Estimation andCancellation in Memory Devices,″,以及2007年8月27日提交的PCT专利申请PCT/IL2007/001059,名为″Estimation of Non-Linear Distortionin 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)和其它数据存储媒体和器件中存储和取出数据。
因此前述的实施方案在此以示例方式引用,并且本发明不限于本文前面特别展示和描述的内容。相反,本发明的范围包括前述各种特征的组合和子组合,以及本领域技术人员从前述说明中领会的各种更改和变化,这些都没有被现有技术公开。

Claims (30)

1.一种操作存储器的方法,包括:
通过将选自标称值集的各个模拟输入值写入存储器的模拟存储单元,把数据存储在存储器的模拟存储单元中,所述数据以纠错码(ECC)编码;
通过执行多次读取操作读取存储的数据,所述读取操作将所述模拟存储单元的模拟输出值和各个不同的读取门限相比较,从而为每个模拟存储单元生成多个比较结果,其中,至少有两个读取门限被置于标称值集内的一对彼此相邻的标称值之间;
根据多个比较结果计算软度量;和
使用软度量解码ECC,从而提取被存储在模拟存储单元中的数据。
2.如权利要求1所述的方法,其中每个模拟存储单元存储该数据的一个或多个比特,并且每个软度量对应于其中的一个比特。
3.如权利要求2所述的方法,至少一些模拟存储单元中的每个模拟存储单元存储该数据的两个或多个比特,其中读取数据包括,对于所述至少一些模拟存储单元中的每个模拟存储单元,分别在两个或多个解码阶段,读取两个或多个数据比特,且其中计算软度量包括,根据在先于第一解码阶段的第二解码阶段读取的第二比特值,修改在第一解码阶段读取的第一比特的软度量。
4.如权利要求3所述的方法,其中修改软度量包括根据第二比特的值对第一比特的软度量进行条件反转。
5.如权利要求1所述的方法,还包括进行一次初始尝试:使用初始读取门限集解码ECC,使初始集中不超过一个读取门限被置于每对彼此相邻的标称值之间,一旦初始尝试失败,将模拟输出值和多个读取门限进行比较。
6.如权利要求1-5之一所述的方法,其中每个比较结果都具有第一和第二可能值中的一个,并且其中计算软度量包括确定分别具有第一和第二可能值的比较结果所对应的第一和第二计数,以及根据所述第一和第二计数计算软度量。
7.如权利要求1-5之一所述的方法,包含,一旦解码ECC失败,增添一个或多个另加的读取门限到所述多个读取门限,根据另加的读取门限重新计算软度量,并使用重新计算的软度量解码ECC。
8.如权利要求7所述的方法,其中增添另加的门限包括渐进地增加多个读取门限直至满足预定的条件。
9.如权利要求1-5之一所述的方法,其中从第一组模拟存储单元中读取数据进一步包括估计由第二组模拟存储单元对第一组所造成的干扰和消除所估计的干扰。
10.如权利要求9所述的方法,其中消除所估计的干扰包括根据所估计的干扰对第一组所关联的软度量进行修改。
11.如权利要求9所述的方法,包括,一旦第一组内的ECC解码失败,选择是否执行下列之一:
重新读取第二组中的数据,从而重新估计和消除干扰;
通过读取第三组存储单元中的数据重新估计干扰;
增添一个或多个另加的读取门限,使用另加的读取门限重新读取第一组中的数据。
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所述的方法,其中选择一个或多个新的读取门限包括确定至少一个选自如下属性组的属性,所述属性组由所述多个新的读取门限和所述新的读取门限的值组成。
CN200780040493XA 2006-10-30 2007-10-30 使用多个门限读取存储单元的方法 Active CN101601094B (zh)

Applications Claiming Priority (19)

Application Number Priority Date Filing Date Title
US86350606P 2006-10-30 2006-10-30
US60/863,506 2006-10-30
US86739906P 2006-11-28 2006-11-28
US60/867,399 2006-11-28
US88882807P 2007-02-08 2007-02-08
US60/888,828 2007-02-08
US88927707P 2007-02-11 2007-02-11
US60/889,277 2007-02-11
US89286907P 2007-03-04 2007-03-04
US60/892,869 2007-03-04
US89445607P 2007-03-13 2007-03-13
US60/894,456 2007-03-13
US91765307P 2007-05-12 2007-05-12
US60/917,653 2007-05-12
US95088407P 2007-07-20 2007-07-20
US60/950,884 2007-07-20
US95121507P 2007-07-22 2007-07-22
US60/951,215 2007-07-22
PCT/IL2007/001315 WO2008053472A2 (en) 2006-10-30 2007-10-30 Reading memory cells using multiple thresholds

Publications (2)

Publication Number Publication Date
CN101601094A true CN101601094A (zh) 2009-12-09
CN101601094B CN101601094B (zh) 2013-03-27

Family

ID=39344693

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200780040493XA Active CN101601094B (zh) 2006-10-30 2007-10-30 使用多个门限读取存储单元的方法

Country Status (3)

Country Link
US (1) US7821826B2 (zh)
CN (1) CN101601094B (zh)
WO (1) WO2008053473A2 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102655021A (zh) * 2011-03-02 2012-09-05 株式会社东芝 半导体存储装置以及解码方法
CN102141944B (zh) * 2010-02-02 2012-12-12 慧荣科技股份有限公司 用来减少无法更正的错误的方法以及记忆装置及其控制器
US8516354B2 (en) 2009-12-08 2013-08-20 Silicon Motion Inc. Method for reducing uncorrectable errors of a memory device regarding error correction code, and associated memory device and controller thereof
CN105144302A (zh) * 2013-03-15 2015-12-09 美光科技公司 存储器装置中的错误校正操作
CN105895156A (zh) * 2016-03-30 2016-08-24 联想(北京)有限公司 一种信息处理方法及电子设备
US9842023B2 (en) 2012-01-27 2017-12-12 Sk Hynix Memory Solutions Inc. Generating soft read values using multiple reads and/or bins
CN110119636A (zh) * 2019-05-21 2019-08-13 浙江齐治科技股份有限公司 一种数字电路、数据存储方法及装置
CN117558307A (zh) * 2024-01-11 2024-02-13 联和存储科技(江苏)有限公司 存储芯片的门限电压调节方法、装置、设备及存储介质
CN117558307B (zh) * 2024-01-11 2024-03-15 联和存储科技(江苏)有限公司 存储芯片的门限电压调节方法、装置、设备及存储介质

Families Citing this family (157)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101202537B1 (ko) 2006-05-12 2012-11-19 애플 인크. 메모리 디바이스를 위한 결합된 왜곡 추정 및 에러 보정 코딩
CN103280239B (zh) 2006-05-12 2016-04-06 苹果公司 存储设备中的失真估计和消除
WO2007132456A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Memory device with adaptive capacity
US7697326B2 (en) 2006-05-12 2010-04-13 Anobit Technologies Ltd. Reducing programming error in memory devices
US8060806B2 (en) 2006-08-27 2011-11-15 Anobit Technologies Ltd. Estimation of non-linear distortion in memory devices
US7975192B2 (en) 2006-10-30 2011-07-05 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US7821826B2 (en) 2006-10-30 2010-10-26 Anobit Technologies, Ltd. Memory cell readout using successive approximation
US7924648B2 (en) 2006-11-28 2011-04-12 Anobit Technologies Ltd. Memory power and performance management
WO2008068747A2 (en) 2006-12-03 2008-06-12 Anobit Technologies Ltd. Automatic defect management in memory devices
US7706182B2 (en) 2006-12-03 2010-04-27 Anobit Technologies Ltd. Adaptive programming of analog memory cells using statistical characteristics
US7900102B2 (en) 2006-12-17 2011-03-01 Anobit Technologies Ltd. High-speed programming of memory devices
US8151166B2 (en) 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
US7751240B2 (en) 2007-01-24 2010-07-06 Anobit Technologies Ltd. Memory device with negative thresholds
US8369141B2 (en) 2007-03-12 2013-02-05 Apple Inc. Adaptive estimation of memory cell read thresholds
US8001320B2 (en) 2007-04-22 2011-08-16 Anobit Technologies Ltd. Command interface for memory devices
WO2008139441A2 (en) 2007-05-12 2008-11-20 Anobit Technologies Ltd. Memory device with internal signal processing unit
US8234545B2 (en) 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
US7925936B1 (en) 2007-07-13 2011-04-12 Anobit Technologies Ltd. Memory device with non-uniform programming levels
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US8174905B2 (en) 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US8365040B2 (en) 2007-09-20 2013-01-29 Densbits Technologies Ltd. Systems and methods for handling immediate data errors in flash memory
WO2009037697A2 (en) * 2007-09-20 2009-03-26 Densbits Technologies Ltd. Improved systems and methods for determining logical values of coupled flash memory cells
US7773413B2 (en) 2007-10-08 2010-08-10 Anobit Technologies Ltd. Reliable data storage in analog memory cells in the presence of temperature variations
US8068360B2 (en) 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
US8527819B2 (en) 2007-10-19 2013-09-03 Apple Inc. Data storage in analog memory cell arrays having erase failures
US8000141B1 (en) 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
US8427867B2 (en) * 2007-10-22 2013-04-23 Densbits Technologies Ltd. Systems and methods for averaging error rates in non-volatile devices and storage systems
US8694715B2 (en) * 2007-10-22 2014-04-08 Densbits Technologies Ltd. Methods for adaptively programming flash memory devices and flash memory systems incorporating same
WO2009053961A2 (en) * 2007-10-25 2009-04-30 Densbits Technologies Ltd. Systems and methods for multiple coding rates in flash devices
WO2009063450A2 (en) 2007-11-13 2009-05-22 Anobit Technologies Optimized selection of memory units in multi-unit memory devices
US8225181B2 (en) 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
WO2009072103A2 (en) 2007-12-05 2009-06-11 Densbits Technologies Ltd. Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated bch codes and/or designation of 'first below' cells
WO2009072105A2 (en) * 2007-12-05 2009-06-11 Densbits Technologies Ltd. A low power chien-search based bch/rs decoding system for flash memory, mobile communications devices and other applications
US8751726B2 (en) 2007-12-05 2014-06-10 Densbits Technologies Ltd. System and methods employing mock thresholds to generate actual reading thresholds in flash memory devices
US8209588B2 (en) 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
WO2009074978A2 (en) * 2007-12-12 2009-06-18 Densbits Technologies Ltd. Systems and methods for error correction and decoding on multi-level physical media
US8276051B2 (en) * 2007-12-12 2012-09-25 Densbits Technologies Ltd. Chien-search system employing a clock-gating scheme to save power for error correction decoder and other applications
US8456905B2 (en) 2007-12-16 2013-06-04 Apple Inc. Efficient data storage in multi-plane memory devices
WO2009078006A2 (en) * 2007-12-18 2009-06-25 Densbits Technologies Ltd. Apparatus for coding at a plurality of rates in multi-level flash memory systems, and methods useful in conjunction therewith
US8085586B2 (en) 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
US8156398B2 (en) 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
US7924587B2 (en) 2008-02-21 2011-04-12 Anobit Technologies Ltd. Programming of analog memory cells using a single programming pulse per state transition
US7864573B2 (en) 2008-02-24 2011-01-04 Anobit Technologies Ltd. Programming analog memory cells for reduced variance after retention
US8230300B2 (en) 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
US8059457B2 (en) 2008-03-18 2011-11-15 Anobit Technologies Ltd. Memory device with multiple-accuracy read commands
WO2009118720A2 (en) * 2008-03-25 2009-10-01 Densbits Technologies Ltd. Apparatus and methods for hardware-efficient unbiased rounding
US8144510B1 (en) 2008-03-27 2012-03-27 Marvell International Ltd. Method and system for programming multi-state memory
US8498151B1 (en) 2008-08-05 2013-07-30 Apple Inc. Data storage in analog memory cells using modified pass voltages
US7924613B1 (en) 2008-08-05 2011-04-12 Anobit Technologies Ltd. Data storage in analog memory cells with protection against programming interruption
US8332725B2 (en) * 2008-08-20 2012-12-11 Densbits Technologies Ltd. Reprogramming non volatile memory portions
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
US8482978B1 (en) 2008-09-14 2013-07-09 Apple Inc. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8000135B1 (en) 2008-09-14 2011-08-16 Anobit Technologies Ltd. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
US8713330B1 (en) 2008-10-30 2014-04-29 Apple Inc. Data scrambling in memory devices
US8208304B2 (en) 2008-11-16 2012-06-26 Anobit Technologies Ltd. Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
US8248831B2 (en) 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8397131B1 (en) 2008-12-31 2013-03-12 Apple Inc. Efficient readout schemes for analog memory cell devices
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
US7929338B2 (en) * 2009-02-24 2011-04-19 International Business Machines Corporation Memory reading method for resistance drift mitigation
US8228701B2 (en) 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8261158B2 (en) * 2009-03-13 2012-09-04 Fusion-Io, Inc. Apparatus, system, and method for using multi-level cell solid-state storage as single level cell solid-state storage
US8266503B2 (en) 2009-03-13 2012-09-11 Fusion-Io Apparatus, system, and method for using multi-level cell storage in a single-level cell mode
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8458574B2 (en) * 2009-04-06 2013-06-04 Densbits Technologies Ltd. Compact chien-search based decoding apparatus and method
US8819385B2 (en) * 2009-04-06 2014-08-26 Densbits Technologies Ltd. Device and method for managing a flash memory
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
US8566510B2 (en) * 2009-05-12 2013-10-22 Densbits Technologies Ltd. Systems and method for flash memory management
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8995197B1 (en) 2009-08-26 2015-03-31 Densbits Technologies Ltd. System and methods for dynamic erase and program control for flash memory device memories
US9330767B1 (en) 2009-08-26 2016-05-03 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory module and method for programming a page of flash memory cells
US8868821B2 (en) * 2009-08-26 2014-10-21 Densbits Technologies Ltd. Systems and methods for pre-equalization and code design for a flash memory
US8305812B2 (en) * 2009-08-26 2012-11-06 Densbits Technologies Ltd. Flash memory module and method for programming a page of flash memory cells
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US8730729B2 (en) 2009-10-15 2014-05-20 Densbits Technologies Ltd. Systems and methods for averaging error rates in non-volatile devices and storage systems
US8724387B2 (en) * 2009-10-22 2014-05-13 Densbits Technologies Ltd. Method, system, and computer readable medium for reading and programming flash memory cells using multiple bias voltages
US8626988B2 (en) * 2009-11-19 2014-01-07 Densbits Technologies Ltd. System and method for uncoded bit error rate equalization via interleaving
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US9037777B2 (en) 2009-12-22 2015-05-19 Densbits Technologies Ltd. Device, system, and method for reducing program/read disturb in flash arrays
US8607124B2 (en) * 2009-12-24 2013-12-10 Densbits Technologies Ltd. System and method for setting a flash memory cell read threshold
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8572311B1 (en) 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in multi-die memory systems
US8380915B2 (en) 2010-01-27 2013-02-19 Fusion-Io, Inc. Apparatus, system, and method for managing solid-state storage media
US8315092B2 (en) 2010-01-27 2012-11-20 Fusion-Io, Inc. Apparatus, system, and method for determining a read voltage threshold for solid-state storage media
US8661184B2 (en) 2010-01-27 2014-02-25 Fusion-Io, Inc. Managing non-volatile media
US8854882B2 (en) 2010-01-27 2014-10-07 Intelligent Intellectual Property Holdings 2 Llc Configuring storage cells
US8341502B2 (en) * 2010-02-28 2012-12-25 Densbits Technologies Ltd. System and method for multi-dimensional decoding
US9245653B2 (en) 2010-03-15 2016-01-26 Intelligent Intellectual Property Holdings 2 Llc Reduced level cell mode for non-volatile memory
US8527840B2 (en) 2010-04-06 2013-09-03 Densbits Technologies Ltd. System and method for restoring damaged data programmed on a flash device
US9104610B2 (en) 2010-04-06 2015-08-11 Densbits Technologies Ltd. Method, system and medium for analog encryption in a flash memory
US8745317B2 (en) 2010-04-07 2014-06-03 Densbits Technologies Ltd. System and method for storing information in a multi-level cell memory
US9099169B1 (en) 2010-04-27 2015-08-04 Tagmatech, Llc Memory device and method thereof
US8339873B1 (en) 2010-04-27 2012-12-25 Bruce Lee Morton Memory device and method thereof
US9021177B2 (en) 2010-04-29 2015-04-28 Densbits Technologies Ltd. System and method for allocating and using spare blocks in a flash memory
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
US8539311B2 (en) 2010-07-01 2013-09-17 Densbits Technologies Ltd. System and method for data recovery in multi-level cell memories
US8621321B2 (en) 2010-07-01 2013-12-31 Densbits Technologies Ltd. System and method for multi-dimensional encoding and decoding
US8467249B2 (en) 2010-07-06 2013-06-18 Densbits Technologies Ltd. Systems and methods for storing, retrieving, and adjusting read thresholds in flash memory storage system
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8767459B1 (en) 2010-07-31 2014-07-01 Apple Inc. Data storage in analog memory cells across word lines using a non-integer number of bits per cell
US8856475B1 (en) 2010-08-01 2014-10-07 Apple Inc. Efficient selection of memory blocks for compaction
US8493781B1 (en) 2010-08-12 2013-07-23 Apple Inc. Interference mitigation using individual word line erasure operations
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
US8964464B2 (en) 2010-08-24 2015-02-24 Densbits Technologies Ltd. System and method for accelerated sampling
US8508995B2 (en) 2010-09-15 2013-08-13 Densbits Technologies Ltd. System and method for adjusting read voltage thresholds in memories
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
US9063878B2 (en) 2010-11-03 2015-06-23 Densbits Technologies Ltd. Method, system and computer readable medium for copy back
US8850100B2 (en) 2010-12-07 2014-09-30 Densbits Technologies Ltd. Interleaving codeword portions between multiple planes and/or dies of a flash memory device
US10079068B2 (en) 2011-02-23 2018-09-18 Avago Technologies General Ip (Singapore) Pte. Ltd. Devices and method for wear estimation based memory management
US8693258B2 (en) 2011-03-17 2014-04-08 Densbits Technologies Ltd. Obtaining soft information using a hard interface
US8990665B1 (en) 2011-04-06 2015-03-24 Densbits Technologies Ltd. System, method and computer program product for joint search of a read threshold and soft decoding
US9195592B1 (en) 2011-05-12 2015-11-24 Densbits Technologies Ltd. Advanced management of a non-volatile memory
US9372792B1 (en) 2011-05-12 2016-06-21 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US8996790B1 (en) 2011-05-12 2015-03-31 Densbits Technologies Ltd. System and method for flash memory management
US9396106B2 (en) 2011-05-12 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Advanced management of a non-volatile memory
US9501392B1 (en) 2011-05-12 2016-11-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of a non-volatile memory module
US9110785B1 (en) 2011-05-12 2015-08-18 Densbits Technologies Ltd. Ordered merge of data sectors that belong to memory space portions
US8667211B2 (en) 2011-06-01 2014-03-04 Densbits Technologies Ltd. System and method for managing a non-volatile memory
US8588003B1 (en) 2011-08-01 2013-11-19 Densbits Technologies Ltd. System, method and computer program product for programming and for recovering from a power failure
US8743605B2 (en) 2011-09-14 2014-06-03 Apple Inc. High-resolution readout of analog memory cells
US8553468B2 (en) 2011-09-21 2013-10-08 Densbits Technologies Ltd. System and method for managing erase operations in a non-volatile memory
US8773904B2 (en) * 2011-12-28 2014-07-08 Apple Inc. Optimized threshold search in analog memory cells
US8996788B2 (en) 2012-02-09 2015-03-31 Densbits Technologies Ltd. Configurable flash interface
US8947941B2 (en) 2012-02-09 2015-02-03 Densbits Technologies Ltd. State responsive operations relating to flash memory cells
US8996793B1 (en) 2012-04-24 2015-03-31 Densbits Technologies Ltd. System, method and computer readable medium for generating soft information
US8838937B1 (en) 2012-05-23 2014-09-16 Densbits Technologies Ltd. Methods, systems and computer readable medium for writing and reading data
US8879325B1 (en) 2012-05-30 2014-11-04 Densbits Technologies Ltd. System, method and computer program product for processing read threshold information and for reading a flash memory module
US8804415B2 (en) 2012-06-19 2014-08-12 Fusion-Io, Inc. Adaptive voltage range management in non-volatile memory
US9921954B1 (en) 2012-08-27 2018-03-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for split flash memory management between host and storage controller
US9368225B1 (en) 2012-11-21 2016-06-14 Avago Technologies General Ip (Singapore) Pte. Ltd. Determining read thresholds based upon read error direction statistics
US9069659B1 (en) 2013-01-03 2015-06-30 Densbits Technologies Ltd. Read threshold determination using reference read threshold
US9136876B1 (en) 2013-06-13 2015-09-15 Densbits Technologies Ltd. Size limited multi-dimensional decoding
US9413491B1 (en) 2013-10-08 2016-08-09 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for multiple dimension decoding and encoding a message
US9786388B1 (en) 2013-10-09 2017-10-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9348694B1 (en) 2013-10-09 2016-05-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Detecting and managing bad columns
US9397706B1 (en) 2013-10-09 2016-07-19 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for irregular multiple dimension decoding and encoding
US9536612B1 (en) 2014-01-23 2017-01-03 Avago Technologies General Ip (Singapore) Pte. Ltd Digital signaling processing for three dimensional flash memory arrays
US10120792B1 (en) 2014-01-29 2018-11-06 Avago Technologies General Ip (Singapore) Pte. Ltd. Programming an embedded flash storage device
US9542262B1 (en) 2014-05-29 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Error correction
US9892033B1 (en) 2014-06-24 2018-02-13 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of memory units
US9584159B1 (en) 2014-07-03 2017-02-28 Avago Technologies General Ip (Singapore) Pte. Ltd. Interleaved encoding
US9972393B1 (en) 2014-07-03 2018-05-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Accelerating programming of a flash memory module
US9449702B1 (en) 2014-07-08 2016-09-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Power management
KR20160057186A (ko) * 2014-11-13 2016-05-23 에스케이하이닉스 주식회사 반도체 메모리 시스템 및 그것의 동작 방법
US9524211B1 (en) 2014-11-18 2016-12-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Codeword management
US10305515B1 (en) 2015-02-02 2019-05-28 Avago Technologies International Sales Pte. Limited System and method for encoding using multiple linear feedback shift registers
US10628255B1 (en) 2015-06-11 2020-04-21 Avago Technologies International Sales Pte. Limited Multi-dimensional decoding
US9851921B1 (en) 2015-07-05 2017-12-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Flash memory chip processing
US9954558B1 (en) 2016-03-03 2018-04-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Fast decoding of data stored in a flash memory
US10636504B2 (en) * 2017-10-31 2020-04-28 Sandisk Technologies Llc Read verify for improved soft bit information for non-volatile memories with residual resistance
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory

Family Cites Families (319)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4910706A (en) 1972-09-11 1990-03-20 Hyatt Gilbert P Analog memory for storing digital information
US4556961A (en) 1981-05-26 1985-12-03 Tokyo Shibaura Denki Kabushiki Kaisha Semiconductor memory with delay means to reduce peak currents
JPS59106152A (ja) 1982-12-10 1984-06-19 Nec Corp 半導体装置
EP0148488B1 (en) 1983-12-23 1992-03-18 Hitachi, Ltd. Semiconductor memory having multiple level storage structure
DE3587082T2 (de) 1984-04-02 1993-06-03 Univ Leland Stanford Junior Speichersystem fuer analoge daten.
JPS618796A (ja) 1984-06-20 1986-01-16 Nec Corp ダイナミツクメモリ
US4899342A (en) 1988-02-01 1990-02-06 Thinking Machines Corporation Method and apparatus for operating multi-unit array of memories
JPH01201736A (ja) 1988-02-08 1989-08-14 Mitsubishi Electric Corp マイクロコンピュータ
US5077722A (en) 1989-01-06 1991-12-31 Convex Computer Corporation Disk drive insertion and removal interlock
US4993029A (en) 1989-03-13 1991-02-12 International Business Machines Corporation Method and apparatus for randomizing data in a direct access storage device
US5276649A (en) 1989-03-16 1994-01-04 Mitsubishi Denki Kabushiki Kaisha Dynamic-type semiconductor memory device having staggered activation of column groups
EP1031992B1 (en) 1989-04-13 2006-06-21 SanDisk Corporation Flash EEPROM system
US5172338B1 (en) 1989-04-13 1997-07-08 Sandisk Corp Multi-state eeprom read and write circuits and techniques
US5200959A (en) 1989-10-17 1993-04-06 Sundisk Corporation Device and method for defect handling in semi-conductor memory
US5218569A (en) 1991-02-08 1993-06-08 Banks Gerald J Electrically alterable non-volatile memory with n-bits per memory cell
US5191584A (en) 1991-02-20 1993-03-02 Micropolis Corporation Mass storage array with efficient parity calculation
US5272669A (en) 1991-02-20 1993-12-21 Sundisk Corporation Method and structure for programming floating gate memory cells
GB2256735B (en) 1991-06-12 1995-06-21 Intel Corp Non-volatile disk cache
US6230233B1 (en) 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
US5237535A (en) 1991-10-09 1993-08-17 Intel Corporation Method of repairing overerased cells in a flash memory
US5388064A (en) 1991-11-26 1995-02-07 Information Storage Devices, Inc. Programmable non-volatile analog voltage source devices and methods
US6222762B1 (en) 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US5657332A (en) * 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
US5479170A (en) 1992-10-16 1995-12-26 California Institute Of Technology Method and apparatus for long-term multi-valued storage in dynamic analog memory
US5473753A (en) 1992-10-30 1995-12-05 Intel Corporation Method of managing defects in flash disk memories
US5416782A (en) 1992-10-30 1995-05-16 Intel Corporation Method and apparatus for improving data failure rate testing for memory arrays
US5761402A (en) 1993-03-08 1998-06-02 Hitachi, Ltd. Array type disk system updating redundant data asynchronously with data access
US5784377A (en) 1993-03-09 1998-07-21 Hubbell Incorporated Integrated digital loop carrier system with virtual tributary mapper circuit
US6091639A (en) 1993-08-27 2000-07-18 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device and data programming method
GB2289779B (en) 1994-05-24 1999-04-28 Intel Corp Method and apparatus for automatically scrubbing ECC errors in memory via hardware
US5583889A (en) 1994-07-08 1996-12-10 Zenith Electronics Corporation Trellis coded modulation system for HDTV
JPH0877694A (ja) 1994-09-05 1996-03-22 Yamaha Corp 操作子装置
US5508958A (en) 1994-09-29 1996-04-16 Intel Corporation Method and apparatus for sensing the state of floating gate memory cells by applying a variable gate voltage
EP0709776B1 (en) 1994-10-31 2000-02-23 STMicroelectronics S.r.l. Method for detecting and correcting an error in a multilevel memory and memory device implementing the method
US5541886A (en) 1994-12-27 1996-07-30 Intel Corporation Method and apparatus for storing control information in multi-bit non-volatile memory arrays
US5838832A (en) 1995-04-03 1998-11-17 Iterated Systems, Inc. Method and system for representing a data set with a data transforming function and data mask
JP3807744B2 (ja) 1995-06-07 2006-08-09 マクロニクス インターナショナル カンパニイ リミテッド 可変プログラムパルス高及びパルス幅によるページモードフラッシュメモリ用自動プログラミングアルゴリズム
US5860106A (en) 1995-07-13 1999-01-12 Intel Corporation Method and apparatus for dynamically adjusting power/performance characteristics of a memory subsystem
US5801985A (en) 1995-07-28 1998-09-01 Micron Technology, Inc. Memory system having programmable control parameters
KR0169412B1 (ko) 1995-10-16 1999-02-01 김광호 불휘발성 반도체 메모리 장치
US5742752A (en) 1995-12-29 1998-04-21 Symbios Logic Inc. Method for performing a RAID stripe write operation using a drive XOR command set
US5675540A (en) 1996-01-22 1997-10-07 Micron Quantum Devices, Inc. Non-volatile memory system having internal data verification test mode
US6073204A (en) 1997-04-23 2000-06-06 Micron Technology, Inc. Memory system having flexible architecture and method
US5815439A (en) 1996-04-30 1998-09-29 Agate Semiconductor, Inc. Stabilization circuits and techniques for storage and retrieval of single or multiple digital bits per memory cell
US6134631A (en) 1996-08-19 2000-10-17 Hyundai Electronics America, Inc. Non-volatile memory with embedded programmable controller
US5864569A (en) 1996-10-18 1999-01-26 Micron Technology, Inc. Method and apparatus for performing error correction on data read from a multistate memory
AU4996697A (en) 1996-12-20 1998-07-17 Intel Corporation Nonvolatile writeable memory with fast programming capability
US6279069B1 (en) 1996-12-26 2001-08-21 Intel Corporation Interface for flash EEPROM memory arrays
KR100213094B1 (ko) 1997-02-21 1999-08-02 윤종용 영상 개선장치를 위한 히스토그램 및 cdf 추출방법 및 그 회로
KR100323554B1 (ko) 1997-05-14 2002-03-08 니시무로 타이죠 불휘발성반도체메모리장치
US5912906A (en) 1997-06-23 1999-06-15 Sun Microsystems, Inc. Method and apparatus for recovering from correctable ECC errors
US6212654B1 (en) 1997-07-22 2001-04-03 Lucent Technologies Inc. Coded modulation for digital storage in analog memory devices
US5930167A (en) 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
US6360346B1 (en) 1997-08-27 2002-03-19 Sony Corporation Storage unit, method of checking storage unit, reading and writing method
US5909449A (en) 1997-09-08 1999-06-01 Invox Technology Multibit-per-cell non-volatile memory with error detection and correction
US6041430A (en) 1997-11-03 2000-03-21 Sun Microsystems, Inc. Error detection and correction code for data and check code fields
US5867429A (en) 1997-11-19 1999-02-02 Sandisk Corporation High density non-volatile flash memory without adverse effects of electric field coupling between adjacent floating gates
US6442585B1 (en) 1997-11-26 2002-08-27 Compaq Computer Corporation Method for scheduling contexts based on statistics of memory system interactions in a computer system
US6034891A (en) 1997-12-01 2000-03-07 Micron Technology, Inc. Multi-state flash memory defect management
US6467062B1 (en) 1997-12-10 2002-10-15 Mordecai Barkan Digital data (multi-bit) storage with discrete analog memory cells
US6040993A (en) 1998-02-23 2000-03-21 Macronix International Co., Ltd. Method for programming an analog/multi-level flash EEPROM
US6026042A (en) 1998-04-10 2000-02-15 Micron Technology, Inc. Method and apparatus for enhancing the performance of semiconductor memory devices
US6397364B1 (en) 1998-04-20 2002-05-28 Mordecai Barkan Digital data representation for multi-bit data storage and transmission
US6009014A (en) 1998-06-03 1999-12-28 Advanced Micro Devices, Inc. Erase verify scheme for NAND flash
US6208542B1 (en) 1998-06-30 2001-03-27 Sandisk Corporation Techniques for storing digital data in an analog or multilevel memory
US6490200B2 (en) 2000-03-27 2002-12-03 Sandisk Corporation Non-volatile memory with improved sensing and method therefor
JP2000173289A (ja) 1998-12-10 2000-06-23 Toshiba Corp エラー訂正可能なフラッシュメモリシステム
US6975539B2 (en) 1999-01-14 2005-12-13 Silicon Storage Technology, Inc. Digital multilevel non-volatile memory system
US7031214B2 (en) 1999-01-14 2006-04-18 Silicon Storage Technology, Inc. Digital multilevel memory system having multistage autozero sensing
US6282145B1 (en) 1999-01-14 2001-08-28 Silicon Storage Technology, Inc. Array architecture and operating methods for digital multilevel nonvolatile memory integrated circuit system
US6956779B2 (en) 1999-01-14 2005-10-18 Silicon Storage Technology, Inc. Multistage autozero sensing for a multilevel non-volatile memory integrated circuit system
US6405323B1 (en) 1999-03-30 2002-06-11 Silicon Storage Technology, Inc. Defect management for interface to electrically-erasable programmable read-only memory
JP3620992B2 (ja) 1999-04-23 2005-02-16 株式会社 沖マイクロデザイン 半導体記憶装置
US6166962A (en) 1999-06-24 2000-12-26 Amic Technology, Inc. Circuit and method for conditioning flash memory array
US6708257B2 (en) 1999-07-12 2004-03-16 Koninklijke Philips Electronics N.V. Buffering system bus for external-memory access
ES2293916T3 (es) 1999-07-28 2008-04-01 Sony Corporation Sistema de registro, dispositivo de registro de datos, dispositivo de memoria, y metodo de registro de datos.
JP3888808B2 (ja) 1999-08-16 2007-03-07 富士通株式会社 Nand型不揮発性メモリ
US6141261A (en) 1999-12-31 2000-10-31 Patti; Robert DRAM that stores multiple bits per storage cell
US6304486B1 (en) 1999-12-20 2001-10-16 Fujitsu Limited Sensing time control device and method
JP2001184881A (ja) 1999-12-28 2001-07-06 Toshiba Corp 不揮発性半導体メモリの読み出し回路
US6532556B1 (en) 2000-01-27 2003-03-11 Multi Level Memory Technology Data management for multi-bit-per-cell memories
US6363008B1 (en) 2000-02-17 2002-03-26 Multi Level Memory Technology Multi-bit-cell non-volatile memory with maximized data capacity
US6219276B1 (en) 2000-02-25 2001-04-17 Advanced Micro Devices, Inc. Multilevel cell programming
US6615307B1 (en) 2000-05-10 2003-09-02 Micron Technology, Inc. Flash with consistent latency for read operations
US6774808B1 (en) 2000-05-17 2004-08-10 Dell Products L.P. Electromechanical lock for components
US6292394B1 (en) 2000-06-29 2001-09-18 Saifun Semiconductors Ltd. Method for programming of a semiconductor memory cell
US7065147B2 (en) 2000-07-12 2006-06-20 Texas Instruments Incorporated System and method of data communication using turbo trellis coded modulation combined with constellation shaping with or without precoding
JP2002042495A (ja) 2000-07-21 2002-02-08 Mitsubishi Electric Corp 冗長救済回路、方法および半導体装置
US6396742B1 (en) 2000-07-28 2002-05-28 Silicon Storage Technology, Inc. Testing of multilevel semiconductor memory
US6301151B1 (en) 2000-08-09 2001-10-09 Information Storage Devices, Inc. Adaptive programming method and apparatus for flash memory analog storage
US7113432B2 (en) 2000-09-14 2006-09-26 Sandisk Corporation Compressed event counting technique and application to a flash memory system
US6538922B1 (en) 2000-09-27 2003-03-25 Sandisk Corporation Writable tracking cells
US7107480B1 (en) 2000-12-22 2006-09-12 Simpletech, Inc. System and method for preventing data corruption in solid-state memory devices after a power failure
US6349056B1 (en) 2000-12-28 2002-02-19 Sandisk Corporation Method and structure for efficient data verification operation for non-volatile memories
US6469931B1 (en) 2001-01-04 2002-10-22 M-Systems Flash Disk Pioneers Ltd. Method for increasing information content in a computer memory
US6687155B2 (en) 2001-01-11 2004-02-03 Oki Electric Industry Co., Ltd. Analog storage semiconductor memory that uses plural write voltages and plural read voltages having different voltage levels
US6466476B1 (en) 2001-01-18 2002-10-15 Multi Level Memory Technology Data coding for multi-bit-per-cell memories having variable numbers of bits per memory cell
US20020174295A1 (en) 2001-01-29 2002-11-21 Ulrich Thomas R. Enhanced file system failure tolerance
US6738289B2 (en) 2001-02-26 2004-05-18 Sandisk Corporation Non-volatile memory with improved programming and method therefor
DE60238602D1 (de) 2001-04-04 2011-01-27 Quellan Inc Verfahren und system zum decodieren von mehrpegelsignalen
US6757193B2 (en) 2001-05-31 2004-06-29 Macronix International Co., Ltd. Coding method of multi-level memory cell
US6731557B2 (en) 2001-06-21 2004-05-04 Stmicroelectronics S.R.L. Method of refreshing an electrically erasable and programmable non-volatile memory
US6522580B2 (en) 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
US6456528B1 (en) 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US6717847B2 (en) 2001-09-17 2004-04-06 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US7170802B2 (en) 2003-12-31 2007-01-30 Sandisk Corporation Flexible and area efficient column redundancy for non-volatile memories
US6643169B2 (en) 2001-09-18 2003-11-04 Intel Corporation Variable level memory
US6560152B1 (en) 2001-11-02 2003-05-06 Sandisk Corporation Non-volatile memory with temperature-compensated data read
US6678192B2 (en) 2001-11-02 2004-01-13 Sandisk Corporation Error management for writable tracking storage units
US7139325B1 (en) 2001-12-07 2006-11-21 Applied Micro Circuits Corporation System and method for five-level non-causal channel equalization
US6870770B2 (en) 2001-12-12 2005-03-22 Micron Technology, Inc. Method and architecture to calibrate read operations in synchronous flash memory
US6907497B2 (en) 2001-12-20 2005-06-14 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
US6418060B1 (en) 2002-01-03 2002-07-09 Ememory Technology Inc. Method of programming and erasing non-volatile memory cells
US6621739B2 (en) 2002-01-18 2003-09-16 Sandisk Corporation Reducing the effects of noise in non-volatile memories through multiple reads
US6542407B1 (en) 2002-01-18 2003-04-01 Sandisk Corporation Techniques of recovering data from memory cells affected by field coupling with adjacent memory cells
US6851018B2 (en) 2002-03-27 2005-02-01 Hewlett-Packard Development Company, L.P. Exchanging operation parameters between a data storage device and a controller
KR100476888B1 (ko) 2002-04-04 2005-03-17 삼성전자주식회사 온도보상기능을 가진 멀티비트 플래쉬메모리
US6707748B2 (en) 2002-05-07 2004-03-16 Ritek Corporation Back up power embodied non-volatile memory device
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
FR2842344A1 (fr) 2002-07-11 2004-01-16 St Microelectronics Sa Procede de commande d'une memoire electronique non volatile et dispositif associe
US6941412B2 (en) 2002-08-29 2005-09-06 Sandisk Corporation Symbol frequency leveling in a storage system
US6781877B2 (en) 2002-09-06 2004-08-24 Sandisk Corporation Techniques for reducing effects of coupling between storage elements of adjacent rows of memory cells
US6987693B2 (en) 2002-09-24 2006-01-17 Sandisk Corporation Non-volatile memory and method with reduced neighboring field errors
US20040083334A1 (en) 2002-10-28 2004-04-29 Sandisk Corporation Method and apparatus for managing the integrity of data in non-volatile memory system
US8412879B2 (en) 2002-10-28 2013-04-02 Sandisk Technologies Inc. Hybrid implementation for error correction codes within a non-volatile memory system
US6992932B2 (en) 2002-10-29 2006-01-31 Saifun Semiconductors Ltd Method circuit and system for read error detection in a non-volatile memory array
US6963505B2 (en) 2002-10-29 2005-11-08 Aifun Semiconductors Ltd. Method circuit and system for determining a reference voltage
US7073103B2 (en) 2002-12-05 2006-07-04 Sandisk Corporation Smart verify for multi-state memories
US6882567B1 (en) 2002-12-06 2005-04-19 Multi Level Memory Technology Parallel programming of multiple-bit-per-cell memory cells on a continuous word line
US6829167B2 (en) 2002-12-12 2004-12-07 Sandisk Corporation Error recovery for nonvolatile memory
US6836435B2 (en) 2002-12-13 2004-12-28 Freescale Semiconductor, Inc. Compaction scheme in NVM
DE10300781B4 (de) 2003-01-11 2014-02-06 Qimonda Ag Speicherbaustein, Testsystem und Verfahren zum Testen eines oder mehrerer Speicherbausteine
JP2004253038A (ja) 2003-02-19 2004-09-09 Renesas Technology Corp 半導体記憶装置
AU2003213430A1 (en) 2003-03-19 2004-10-11 Fujitsu Limited Semiconductor device, process for producing the same and imaging device
US7002821B2 (en) 2003-04-11 2006-02-21 Gerpheide George E Zero drift analog memory cell, array and method of operation
CN100394571C (zh) 2003-05-20 2008-06-11 富士通株式会社 Lsi插件及lsi元件的试验方法和半导体器件的制造方法
US6845052B1 (en) 2003-05-30 2005-01-18 Macronix International Co., Ltd. Dual reference cell sensing scheme for non-volatile memory
US7254690B2 (en) 2003-06-02 2007-08-07 S. Aqua Semiconductor Llc Pipelined semiconductor memories and systems
US7023735B2 (en) * 2003-06-17 2006-04-04 Ramot At Tel-Aviv University Ltd. Methods of increasing the reliability of a flash memory
US7372731B2 (en) 2003-06-17 2008-05-13 Sandisk Il Ltd. Flash memories with adaptive reference voltages
US6988175B2 (en) 2003-06-30 2006-01-17 M-Systems Flash Disk Pioneers Ltd. Flash memory management method that is resistant to data corruption by power loss
EP2113844A1 (en) 2003-07-30 2009-11-04 SanDisk IL Ltd. Method and system for optimizing reliability and performance of programming data in non-volatile memory devices
US6903972B2 (en) 2003-07-30 2005-06-07 M-Systems Flash Disk Pioneers Ltd. Different methods applied for archiving data according to their desired lifetime
US7197594B2 (en) 2003-09-23 2007-03-27 Infineon Technologies Flash Gmbh & Co. Kg Circuit, system and method for encoding data to be stored on a non-volatile memory array
US7057958B2 (en) 2003-09-30 2006-06-06 Sandisk Corporation Method and system for temperature compensation for memory cells with temperature-dependent behavior
US7012835B2 (en) 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US7356755B2 (en) 2003-10-16 2008-04-08 Intel Corporation Error correction for multi-level cell memory with overwrite capability
US7177199B2 (en) 2003-10-20 2007-02-13 Sandisk Corporation Behavior based programming of non-volatile memory
US7301807B2 (en) 2003-10-23 2007-11-27 Sandisk Corporation Writable tracking cells
KR100542701B1 (ko) 2003-11-18 2006-01-11 주식회사 하이닉스반도체 낸드 플래시 메모리 소자의 문턱전압 측정 방법
US20090204872A1 (en) 2003-12-02 2009-08-13 Super Talent Electronics Inc. Command Queuing Smart Storage Transfer Manager for Striping Data to Raw-NAND Flash Modules
JP4319532B2 (ja) 2003-12-03 2009-08-26 富士フイルム株式会社 帯状体の加熱方法および帯状体加熱装置
KR100646940B1 (ko) 2003-12-15 2006-11-17 주식회사 하이닉스반도체 낮은 첨두 전류치를 가지는 리프레시 제어기
US7363420B2 (en) 2003-12-15 2008-04-22 Nortel Networks Limited Method and file structures for managing data on a flash disk
US7657706B2 (en) 2003-12-18 2010-02-02 Cisco Technology, Inc. High speed memory and input/output processor subsystem for efficiently allocating and using high-speed memory and slower-speed memory
US7372730B2 (en) 2004-01-26 2008-05-13 Sandisk Corporation Method of reading NAND memory to compensate for coupling between storage elements
US7002843B2 (en) 2004-01-27 2006-02-21 Sandisk Corporation Variable current sinking for coarse/fine programming of non-volatile memory
US7068539B2 (en) 2004-01-27 2006-06-27 Sandisk Corporation Charge packet metering for coarse/fine programming of non-volatile memory
US7139198B2 (en) 2004-01-27 2006-11-21 Sandisk Corporation Efficient verification for coarse/fine programming of non-volatile memory
US7177200B2 (en) 2004-02-10 2007-02-13 Msystems Ltd. Two-phase programming of a flash memory
US7716413B2 (en) 2004-02-15 2010-05-11 Sandisk Il Ltd. Method of making a multi-bit-cell flash memory
US20050213393A1 (en) 2004-03-14 2005-09-29 M-Systems Flash Disk Pioneers, Ltd. States encoding in multi-bit flash cells for optimizing error rate
US7020017B2 (en) 2004-04-06 2006-03-28 Sandisk Corporation Variable programming of non-volatile memory
US7325090B2 (en) 2004-04-29 2008-01-29 Sandisk Il Ltd. Refreshing data stored in a flash memory
JP4722839B2 (ja) 2004-05-19 2011-07-13 パナソニック株式会社 メモリ制御回路、不揮発性記憶装置及びメモリ制御方法
US7231474B1 (en) 2004-06-01 2007-06-12 Advanced Micro Devices, Inc. Serial interface having a read temperature command
KR100546415B1 (ko) 2004-06-25 2006-01-26 삼성전자주식회사 메모리 장치의 파워 노이즈를 방지하는 직렬 웨이크 업 회로
US7817469B2 (en) 2004-07-26 2010-10-19 Sandisk Il Ltd. Drift compensation in a flash memory
US7180775B2 (en) 2004-08-05 2007-02-20 Msystems Ltd. Different numbers of bits per cell in non-volatile memory devices
US7200062B2 (en) 2004-08-31 2007-04-03 Micron Technology, Inc. Method and system for reducing the peak current in refreshing dynamic random access memory devices
US7493457B2 (en) 2004-11-08 2009-02-17 Sandisk Il. Ltd States encoding in multi-bit flash cells for optimizing error rate
JP4410188B2 (ja) 2004-11-12 2010-02-03 株式会社東芝 半導体記憶装置のデータ書き込み方法
KR100694418B1 (ko) 2004-11-15 2007-03-12 주식회사 하이닉스반도체 메모리 장치의 병렬 압축 테스트 회로
US7441067B2 (en) 2004-11-15 2008-10-21 Sandisk Corporation Cyclic flash memory wear leveling
US7173859B2 (en) 2004-11-16 2007-02-06 Sandisk Corporation Faster programming of higher level states in multi-level cell flash memory
US7420847B2 (en) 2004-12-14 2008-09-02 Sandisk Corporation Multi-state memory having data recovery after program fail
US7120051B2 (en) 2004-12-14 2006-10-10 Sandisk Corporation Pipelined programming of non-volatile memories using early data
KR100664933B1 (ko) 2004-12-15 2007-01-04 삼성전자주식회사 비휘발성 저장장치에 멀티미디어 데이터를 블록 단위로저장하는 방법 및 장치
US7849381B2 (en) 2004-12-21 2010-12-07 Sandisk Corporation Method for copying data in reprogrammable non-volatile memory
US7409473B2 (en) 2004-12-21 2008-08-05 Sandisk Corporation Off-chip data relocation
US7437653B2 (en) 2004-12-22 2008-10-14 Sandisk Corporation Erased sector detection mechanisms
US7308525B2 (en) 2005-01-10 2007-12-11 Sandisk Il Ltd. Method of managing a multi-bit cell flash memory with improved reliablility and performance
US7130210B2 (en) 2005-01-13 2006-10-31 Spansion Llc Multi-level ONO flash program algorithm for threshold width control
US7421598B2 (en) 2005-02-09 2008-09-02 International Business Machines Corporation Dynamic power management via DIMM read operation limiter
US7221592B2 (en) 2005-02-25 2007-05-22 Micron Technology, Inc. Multiple level programming in a non-volatile memory device
US7224604B2 (en) 2005-03-14 2007-05-29 Sandisk Il Ltd. Method of achieving wear leveling in flash memory using relative grades
US7627712B2 (en) 2005-03-22 2009-12-01 Sigmatel, Inc. Method and system for managing multi-plane memory devices
US7400537B2 (en) 2005-03-31 2008-07-15 Sandisk Corporation Systems for erasing non-volatile memory using individual verification and additional erasing of subsets of memory cells
US7196928B2 (en) 2005-04-05 2007-03-27 Sandisk Corporation Compensating for coupling during read operations of non-volatile memory
US7196946B2 (en) 2005-04-05 2007-03-27 Sandisk Corporation Compensating for coupling in non-volatile storage
KR100754894B1 (ko) 2005-04-20 2007-09-04 삼성전자주식회사 더미 메모리 셀을 가지는 낸드 플래시 메모리 장치
US7370261B2 (en) 2005-05-09 2008-05-06 International Business Machines Corporation Convolution-encoded raid with trellis-decode-rebuild
US7269066B2 (en) 2005-05-11 2007-09-11 Micron Technology, Inc. Programming memory devices
US7793037B2 (en) 2005-05-31 2010-09-07 Intel Corporation Partial page scheme for memory technologies
ITRM20050310A1 (it) 2005-06-15 2006-12-16 Micron Technology Inc Convergenza a programmazione selettiva lenta in un dispositivo di memoria flash.
US7239557B2 (en) 2005-06-17 2007-07-03 Micron Technology, Inc. Program method with optimized voltage level for flash memory
US7193898B2 (en) 2005-06-20 2007-03-20 Sandisk Corporation Compensation currents in non-volatile memory read operations
KR100719368B1 (ko) 2005-06-27 2007-05-17 삼성전자주식회사 플래시 메모리 장치의 적응적 프로그램 방법 및 장치
KR100694968B1 (ko) 2005-06-30 2007-03-14 주식회사 하이닉스반도체 비휘발성 메모리 장치와 그것의 멀티-페이지 프로그램,독출 및 카피백 프로그램 방법
KR100609621B1 (ko) 2005-07-19 2006-08-08 삼성전자주식회사 메모리 블락별로 레이턴시 제어가 가능한 동기식 반도체메모리 장치
US7502921B2 (en) 2005-08-02 2009-03-10 Sandisk Corporation Situation sensitive memory performance
JP2007059024A (ja) 2005-08-26 2007-03-08 Micron Technol Inc 温度補償された読み出し・検証動作をフラッシュ・メモリにおいて生成するための方法及び装置
US7292476B2 (en) 2005-08-31 2007-11-06 Micron Technology, Inc. Programming method for NAND EEPROM
US7853749B2 (en) 2005-09-01 2010-12-14 Cypress Semiconductor Corporation Flash drive fast wear leveling
US7752382B2 (en) 2005-09-09 2010-07-06 Sandisk Il Ltd Flash memory storage system and method
KR100705220B1 (ko) 2005-09-15 2007-04-06 주식회사 하이닉스반도체 프로그램 속도를 증가시키기 위한 플래시 메모리 장치의소거 및 프로그램 방법
JP4410178B2 (ja) 2005-09-22 2010-02-03 富士通株式会社 Raid装置におけるライトバック方法
US7631245B2 (en) 2005-09-26 2009-12-08 Sandisk Il Ltd. NAND flash memory controller exporting a NAND interface
US7681109B2 (en) 2005-10-13 2010-03-16 Ramot At Tel Aviv University Ltd. Method of error correction in MBC flash memory
US7529905B2 (en) 2005-10-13 2009-05-05 Sandisk Corporation Method of storing transformed units of data in a memory system having fixed sized storage blocks
US7526715B2 (en) 2005-10-17 2009-04-28 Ramot At Tel Aviv University Ltd. Probabilistic error correction in multi-bit-per-cell flash memory
ATE534999T1 (de) 2005-10-17 2011-12-15 Univ Ramot Probabilistische fehlerkorrektur in einem mehrbit-pro-zelle-flash-speicher
US7954037B2 (en) 2005-10-25 2011-05-31 Sandisk Il Ltd Method for recovering from errors in flash memory
KR100660544B1 (ko) 2005-10-25 2006-12-22 삼성전자주식회사 신뢰성을 향상시킬 수 있는 플래시 메모리 장치
US7447066B2 (en) 2005-11-08 2008-11-04 Sandisk Corporation Memory with retargetable memory cell redundancy
US7289344B2 (en) 2005-11-10 2007-10-30 Sandisk Corporation Reverse coupling effect with timing information for non-volatile memory
US7739472B2 (en) 2005-11-22 2010-06-15 Sandisk Corporation Memory system for legacy hosts
US7497181B2 (en) 2005-11-30 2009-03-03 Autotether, Inc Sailboat safety system for a person falling overboard
US20070143531A1 (en) 2005-12-15 2007-06-21 Atri Sunil R Power loss recovery for bit alterable memory
US20070143378A1 (en) 2005-12-21 2007-06-21 Gorobets Sergey A Non-volatile memories with adaptive file handling in a directly mapped file storage system
US7349260B2 (en) 2005-12-29 2008-03-25 Sandisk Corporation Alternate row-based reading and writing for non-volatile memory
US7310255B2 (en) 2005-12-29 2007-12-18 Sandisk Corporation Non-volatile memory with improved program-verify operations
KR100684907B1 (ko) 2006-01-09 2007-02-22 삼성전자주식회사 파워 업 시에 피크 전류를 줄이는 멀티 칩 패키지
KR100683858B1 (ko) 2006-01-12 2007-02-15 삼성전자주식회사 고온 스트레스로 인한 읽기 마진의 감소를 보상할 수 있는플래시 메모리의 프로그램 방법
KR100683856B1 (ko) 2006-01-12 2007-02-15 삼성전자주식회사 고온 스트레스로 인한 읽기 마진의 감소를 보상할 수 있는플래시 메모리의 프로그램 방법
US7783955B2 (en) 2006-01-18 2010-08-24 Sandisk Il Ltd. Method for implementing error-correction codes in flash memory
US8055979B2 (en) 2006-01-20 2011-11-08 Marvell World Trade Ltd. Flash memory with coding and signal processing
KR100732631B1 (ko) 2006-02-01 2007-06-27 삼성전자주식회사 전하 손실로 인해 감소된 읽기 마진을 보상할 수 있는플래시 메모리 장치의 프로그램 방법
US7400532B2 (en) 2006-02-16 2008-07-15 Micron Technology, Inc. Programming method to reduce gate coupling interference for non-volatile memory
US7436733B2 (en) 2006-03-03 2008-10-14 Sandisk Corporation System for performing read operation on non-volatile storage with compensation for coupling
US20070208904A1 (en) 2006-03-03 2007-09-06 Wu-Han Hsieh Wear leveling method and apparatus for nonvolatile memory
US8091009B2 (en) 2006-03-23 2012-01-03 Broadcom Corporation Symbol by symbol map detection for signals corrupted by colored and/or signal dependent noise
US7561469B2 (en) 2006-03-28 2009-07-14 Micron Technology, Inc. Programming method to reduce word line to word line breakdown for NAND flash
US7433231B2 (en) 2006-04-26 2008-10-07 Micron Technology, Inc. Multiple select gates with non-volatile memory cells
KR100763353B1 (ko) 2006-04-26 2007-10-04 삼성전자주식회사 인접하는 메모리셀과의 커플링 노이즈를 저감시키는불휘발성 반도체 메모리 장치
US8560829B2 (en) 2006-05-09 2013-10-15 Broadcom Corporation Method and system for command interface protection to achieve a secure interface
DE102006021731B4 (de) 2006-05-10 2015-07-30 Peri Gmbh Verfahren zur Herstellung eines Gitterträgers aus Holz für den Baubereich
WO2007132458A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Memory device programming using combined shaping and linear spreading
KR101202537B1 (ko) 2006-05-12 2012-11-19 애플 인크. 메모리 디바이스를 위한 결합된 왜곡 추정 및 에러 보정 코딩
WO2007132456A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Memory device with adaptive capacity
CN103280239B (zh) 2006-05-12 2016-04-06 苹果公司 存储设备中的失真估计和消除
US7697326B2 (en) 2006-05-12 2010-04-13 Anobit Technologies Ltd. Reducing programming error in memory devices
US8185711B2 (en) 2006-05-16 2012-05-22 Samsung Electronics Co., Ltd. Memory module, a memory system including a memory controller and a memory module and methods thereof
US7882320B2 (en) 2006-05-23 2011-02-01 Dataram, Inc. Multi-processor flash memory storage device and management system
US7310272B1 (en) 2006-06-02 2007-12-18 Sandisk Corporation System for performing data pattern sensitivity compensation using different voltage
US7952922B2 (en) 2006-06-06 2011-05-31 Micron Technology, Inc. Method for programming a non-volatile memory device to reduce floating-gate-to-floating-gate coupling effect
US7342831B2 (en) 2006-06-16 2008-03-11 Sandisk Corporation System for operating non-volatile memory using temperature compensation of voltages of unselected word lines and select gates
US7486561B2 (en) 2006-06-22 2009-02-03 Sandisk Corporation Method for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages
US7742351B2 (en) * 2006-06-30 2010-06-22 Semiconductor Energy Laboratory Co., Ltd. Semiconductor device and electronic device
US7721059B2 (en) 2006-07-06 2010-05-18 Nokia Corporation Performance optimization in solid-state media
US7567461B2 (en) 2006-08-18 2009-07-28 Micron Technology, Inc. Method and system for minimizing number of programming pulses used to program rows of non-volatile memory cells
US8060806B2 (en) 2006-08-27 2011-11-15 Anobit Technologies Ltd. Estimation of non-linear distortion in memory devices
US7280398B1 (en) 2006-08-31 2007-10-09 Micron Technology, Inc. System and memory for sequential multi-plane page memory operations
US7593259B2 (en) 2006-09-13 2009-09-22 Mosaid Technologies Incorporated Flash multi-level threshold distribution scheme
US7573744B2 (en) 2006-09-29 2009-08-11 Kabushiki Kaisha Toshiba Semiconductor memory device having different capacity areas
KR100764749B1 (ko) 2006-10-03 2007-10-08 삼성전자주식회사 멀티-칩 패키지 플래시 메모리 장치 및 그것의 카피 백방법
US7821826B2 (en) 2006-10-30 2010-10-26 Anobit Technologies, Ltd. Memory cell readout using successive approximation
KR100771521B1 (ko) 2006-10-30 2007-10-30 삼성전자주식회사 멀티 레벨 셀을 포함하는 플래시 메모리 장치 및 그것의데이터 쓰기 방법
US7975192B2 (en) 2006-10-30 2011-07-05 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US8145941B2 (en) 2006-10-31 2012-03-27 Hewlett-Packard Development Company, L.P. Detection and correction of block-level data corruption in fault-tolerant data-storage systems
US7468911B2 (en) 2006-11-02 2008-12-23 Sandisk Corporation Non-volatile memory using multiple boosting modes for reduced program disturb
US7558109B2 (en) 2006-11-03 2009-07-07 Sandisk Corporation Nonvolatile memory with variable read threshold
KR100789406B1 (ko) 2006-11-03 2007-12-28 삼성전자주식회사 플래시 메모리 시스템 및 그것의 가비지 컬렉션 방법
US7508710B2 (en) 2006-11-13 2009-03-24 Sandisk Corporation Operating non-volatile memory with boost structures
US7924648B2 (en) 2006-11-28 2011-04-12 Anobit Technologies Ltd. Memory power and performance management
US7706182B2 (en) 2006-12-03 2010-04-27 Anobit Technologies Ltd. Adaptive programming of analog memory cells using statistical characteristics
WO2008068747A2 (en) 2006-12-03 2008-06-12 Anobit Technologies Ltd. Automatic defect management in memory devices
US7900102B2 (en) 2006-12-17 2011-03-01 Anobit Technologies Ltd. High-speed programming of memory devices
US7593263B2 (en) 2006-12-17 2009-09-22 Anobit Technologies Ltd. Memory device with reduced reading latency
US7539062B2 (en) 2006-12-20 2009-05-26 Micron Technology, Inc. Interleaved memory program and verify method, device and system
US8370561B2 (en) 2006-12-24 2013-02-05 Sandisk Il Ltd. Randomizing for suppressing errors in a flash memory
US7570520B2 (en) 2006-12-27 2009-08-04 Sandisk Corporation Non-volatile storage system with initial programming voltage based on trial
DE112006004187B4 (de) 2006-12-27 2015-09-10 Intel Corporation Verfahren, nicht-flüchtige Speichervorrichtung und Computersystem zum initiativen Abnutzungsausgleich für einen nicht-flüchtigen Speicher
WO2008083131A2 (en) 2006-12-27 2008-07-10 Sandisk Corporation Method for programming with initial programming voltage based on trial
US8151166B2 (en) 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
US7751240B2 (en) 2007-01-24 2010-07-06 Anobit Technologies Ltd. Memory device with negative thresholds
JP4498370B2 (ja) 2007-02-14 2010-07-07 株式会社東芝 データ書き込み方法
US8369141B2 (en) 2007-03-12 2013-02-05 Apple Inc. Adaptive estimation of memory cell read thresholds
JP2008251138A (ja) 2007-03-30 2008-10-16 Toshiba Corp 不揮発性半導体メモリ、不揮発性半導体メモリの制御方法、不揮発性半導体メモリシステム、及びメモリカード
WO2008124760A2 (en) 2007-04-10 2008-10-16 Sandisk Corporation Non-volatile memory and method for predictive programming
US8001320B2 (en) 2007-04-22 2011-08-16 Anobit Technologies Ltd. Command interface for memory devices
WO2008139441A2 (en) 2007-05-12 2008-11-20 Anobit Technologies Ltd. Memory device with internal signal processing unit
US8234545B2 (en) 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US20090043831A1 (en) 2007-08-11 2009-02-12 Mcm Portfolio Llc Smart Solid State Drive And Method For Handling Critical Files
KR101498673B1 (ko) 2007-08-14 2015-03-09 삼성전자주식회사 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템
ES2425174T3 (es) 2007-08-31 2013-10-11 Nitrochemie Aschau Gmbh Endurecedor para masas de caucho de silicona
WO2009037691A2 (en) 2007-09-19 2009-03-26 Anobit Technologies Programming orders for reducing distortion in arrays of multi-level analog memory cells
WO2009037697A2 (en) 2007-09-20 2009-03-26 Densbits Technologies Ltd. Improved systems and methods for determining logical values of coupled flash memory cells
US8365040B2 (en) 2007-09-20 2013-01-29 Densbits Technologies Ltd. Systems and methods for handling immediate data errors in flash memory
TWI372396B (en) 2007-09-28 2012-09-11 Phison Electronics Corp Method of protecting data for power failure and controller using the same
US7894263B2 (en) * 2007-09-28 2011-02-22 Sandisk Corporation High voltage generation and control in source-side injection programming of non-volatile memory
US7773413B2 (en) 2007-10-08 2010-08-10 Anobit Technologies Ltd. Reliable data storage in analog memory cells in the presence of temperature variations
US8527819B2 (en) 2007-10-19 2013-09-03 Apple Inc. Data storage in analog memory cell arrays having erase failures
US8068360B2 (en) 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
WO2009053963A2 (en) 2007-10-22 2009-04-30 Densbits Technologies Ltd. Methods for adaptively programming flash memory devices and flash memory systems incorporating same
US8427867B2 (en) 2007-10-22 2013-04-23 Densbits Technologies Ltd. Systems and methods for averaging error rates in non-volatile devices and storage systems
WO2009053961A2 (en) 2007-10-25 2009-04-30 Densbits Technologies Ltd. Systems and methods for multiple coding rates in flash devices
WO2009063450A2 (en) 2007-11-13 2009-05-22 Anobit Technologies Optimized selection of memory units in multi-unit memory devices
US8046542B2 (en) 2007-11-21 2011-10-25 Micron Technology, Inc. Fault-tolerant non-volatile integrated circuit memory
US8225181B2 (en) 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
WO2009072105A2 (en) 2007-12-05 2009-06-11 Densbits Technologies Ltd. A low power chien-search based bch/rs decoding system for flash memory, mobile communications devices and other applications
US8751726B2 (en) 2007-12-05 2014-06-10 Densbits Technologies Ltd. System and methods employing mock thresholds to generate actual reading thresholds in flash memory devices
US20090150894A1 (en) 2007-12-10 2009-06-11 Ming Huang Nonvolatile memory (NVM) based solid-state disk (SSD) system for scaling and quality of service (QoS) by parallelizing command execution
US8276051B2 (en) 2007-12-12 2012-09-25 Densbits Technologies Ltd. Chien-search system employing a clock-gating scheme to save power for error correction decoder and other applications
US8209588B2 (en) 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
WO2009074978A2 (en) 2007-12-12 2009-06-18 Densbits Technologies Ltd. Systems and methods for error correction and decoding on multi-level physical media
US8456905B2 (en) 2007-12-16 2013-06-04 Apple Inc. Efficient data storage in multi-plane memory devices
WO2009078006A2 (en) 2007-12-18 2009-06-25 Densbits Technologies Ltd. Apparatus for coding at a plurality of rates in multi-level flash memory systems, and methods useful in conjunction therewith
US7934052B2 (en) 2007-12-27 2011-04-26 Pliant Technology, Inc. System and method for performing host initiated mass storage commands using a hierarchy of data structures
US8085586B2 (en) 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
US8301912B2 (en) 2007-12-31 2012-10-30 Sandisk Technologies Inc. System, method and memory device providing data scrambling compatible with on-chip copy operation
US7877522B2 (en) 2008-05-27 2011-01-25 Sandisk Il Ltd. Method of monitoring host activity
US8621144B2 (en) 2008-06-26 2013-12-31 Intel Corporation Accelerated resume from hibernation in a cached disk system
US7808831B2 (en) 2008-06-30 2010-10-05 Sandisk Corporation Read disturb mitigation in non-volatile memory
US20100017650A1 (en) 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management
US20100057976A1 (en) 2008-08-26 2010-03-04 Menahem Lasser Multiple performance mode memory system
US8130552B2 (en) 2008-09-11 2012-03-06 Sandisk Technologies Inc. Multi-pass programming for memory with reduced data storage requirement
KR101066746B1 (ko) * 2008-12-08 2011-09-22 주식회사 하이닉스반도체 페이지 버퍼 회로 및 이를 구비한 불휘발성 메모리 소자와 그 동작 방법

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8516354B2 (en) 2009-12-08 2013-08-20 Silicon Motion Inc. Method for reducing uncorrectable errors of a memory device regarding error correction code, and associated memory device and controller thereof
US8631310B2 (en) 2009-12-08 2014-01-14 Silicon Motion Inc. Method for reducing uncorrectable errors of a memory device regarding error correction code, and associated memory device and controller thereof
CN102141944B (zh) * 2010-02-02 2012-12-12 慧荣科技股份有限公司 用来减少无法更正的错误的方法以及记忆装置及其控制器
CN102655021B (zh) * 2011-03-02 2015-05-06 株式会社东芝 半导体存储装置以及解码方法
CN102655021A (zh) * 2011-03-02 2012-09-05 株式会社东芝 半导体存储装置以及解码方法
US9842023B2 (en) 2012-01-27 2017-12-12 Sk Hynix Memory Solutions Inc. Generating soft read values using multiple reads and/or bins
CN104205225B (zh) * 2012-01-27 2018-01-05 Sk 海尼克斯存储技术公司 使用多次读取和/或仓来生成软读取值
CN105144302B (zh) * 2013-03-15 2018-01-12 美光科技公司 存储器装置中的错误校正操作
CN105144302A (zh) * 2013-03-15 2015-12-09 美光科技公司 存储器装置中的错误校正操作
CN105895156A (zh) * 2016-03-30 2016-08-24 联想(北京)有限公司 一种信息处理方法及电子设备
CN110119636A (zh) * 2019-05-21 2019-08-13 浙江齐治科技股份有限公司 一种数字电路、数据存储方法及装置
CN110119636B (zh) * 2019-05-21 2020-12-08 浙江齐治科技股份有限公司 一种数字电路、数据存储方法及装置
CN117558307A (zh) * 2024-01-11 2024-02-13 联和存储科技(江苏)有限公司 存储芯片的门限电压调节方法、装置、设备及存储介质
CN117558307B (zh) * 2024-01-11 2024-03-15 联和存储科技(江苏)有限公司 存储芯片的门限电压调节方法、装置、设备及存储介质

Also Published As

Publication number Publication date
US7821826B2 (en) 2010-10-26
US20100110787A1 (en) 2010-05-06
CN101601094B (zh) 2013-03-27
WO2008053473A2 (en) 2008-05-08
WO2008053473A3 (en) 2009-05-14

Similar Documents

Publication Publication Date Title
CN101601094B (zh) 使用多个门限读取存储单元的方法
USRE46346E1 (en) Reading memory cells using multiple thresholds
US8830746B2 (en) Optimized threshold search in analog memory cells using separator pages of the same type as read pages
US8793543B2 (en) Adaptive read comparison signal generation for memory systems
CN101512661B (zh) 用于存储设备的失真估计与纠错编码的组合
CN103208309B (zh) 存储设备中的失真估计和消除
US9990247B2 (en) Write mapping to mitigate hard errors via soft-decision decoding
JP5620973B2 (ja) アナログメモリセルにおける最適スレッシュホールドのサーチ
JP4999921B2 (ja) メモリ素子用の歪み推定と誤り訂正符号化の組み合せ
US20080151617A1 (en) Soft decoding of hard and soft bits read from a flash memory
US9984752B2 (en) Memory system and data encoding and decoding method to mitigate inter-cell interference
US8996793B1 (en) System, method and computer readable medium for generating soft information
CN102203875A (zh) 使用参考单元的用于存储器器件的软数据生成的方法和装置
JP2009537055A (ja) 適応能力を有するメモリ素子
US8990668B2 (en) Decoding data stored in solid-state memory
JP2021111826A (ja) 復号装置及び復号方法
US10157097B2 (en) Redundant bytes utilization in error correction code
US20140331106A1 (en) Calculation of analog memory cell readout parameters using code words stored over multiple memory dies
CN109660263B (zh) 一种适用于mlc nand闪存的ldpc码译码方法
US9779818B2 (en) Adaptation of high-order read thresholds
US11874736B2 (en) Calculating soft metrics depending on threshold voltages of memory cells in multiple neighbor word lines
US11204831B2 (en) Memory system

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