非易失性存储器和用于预测编程的方法

文档序号:6746581阅读:218来源:国知局
专利名称:非易失性存储器和用于预测编程的方法
技术领域
本发明一般涉及诸如电可擦除可编程只读存储器(EEPR0M)和快闪EEPROM之类的 非易失性半导体存储器,特别涉及其中最小化编程验证操作的次数的存储器和编程操作。
背景技术
能够非易失地存储电荷的、特别是以被封装为小形状因素卡(form factorcard) 的EEPROM和快闪EEPROM形式的固态存储器近来已经变成各种移动和手持设备、新颖的信 息装置和消费者电子产品中选择的存储器。不像也是固态存储器的RAM(随机存取存储器) 那样,闪存(flash memory)是非易失性的,并且即使在断电后也保存其存储的数据。尽管 成本更高,但是闪存被越来越多地用于海量存储应用中。基于诸如硬盘驱动器和软盘之类 的旋转磁介质的传统海量存储器不适合于移动和手持环境。这是因为趋于大容量的硬盘驱 动器易出现机械故障,并具有高等待时间和高功率需求。这些所不期望的属性使得基于盘 的存储器在大多数移动和便携应用中不实用。另一方面,嵌入式且以可移除卡的形式的闪 存由于其小尺寸、低功耗、高速度和高可靠性的特征,在理想地适合于移动和手持环境。
EEPROM和电可编程只读存储器(EPR0M)是可以被擦除的并将新的数据写到或"编 程"到其存储器单元中的非易失性存储器。两者都利用在源极区和漏极区之间的、位于半导 体衬底的沟道区上方的场效应晶体管结构的浮置(未连接的)导电栅极。然后在该浮置栅 极上方提供控制栅极。通过在浮置栅极上保持的电荷量来控制晶体管的阈值电压特性。即, 对于浮置栅极上的给定水平的电荷,存在在晶体管被导通以允许在其源极区和漏极区之间 的导电之前必需施加到控制栅极的相应电压(阈值)。 浮置栅极可以保持一定范围的电荷,因此可以被编程为在阈值电压窗口内的任意 阈值电压电平。阈值电压窗口的大小由器件的最小和最大阈值电平界定,该器件的最小和 最大阈值电平又对应于可以被编程到浮置栅极上的电荷的范围。阈值窗口一般取决于存储 器器件的特性、操作条件和历史。窗口内的每个不同的、可分辨的(resolvable)阈值电压 电平范围原则上可以用于指定该单元的明确存储器状态。当该阈值电压被划分成两个不同 的区域时,每个存储器单元将能够存储一位数据。类似地,当阈值电压窗口被划分成多于两 个不同的区域时,每个存储器单元将能够存储多于一位的数据。 在通常的两状态EEPR0M单元中,建立至少一个电流断点(breakpoint)水平以便 将导电窗口分成两个区域。当通过施加预定的固定电压来读取单元时,通过与断点水平 (或参考电流IREF)比较,其源极/漏极电流被分辨为存储器状态。如果读取的电流高于断 点水平的电流,则确定该单元处于一个逻辑状态(例如"0"状态)。另一方面,如果该电流 小于断点水平的电流,则确定该单元处于另一逻辑状态(例如"l"状态)。因此,这种两状 态单元存储一位的数字信息。通常提供可外部编程的参考电流源作为用于产生断点水平电 流的存储器系统的部分。 为了增加存储器容量,随着半导体技术的状态的发展,密度越来越高地制造快闪 EEPR0M器件。用于增加存储器容量的另一方法是使每个存储器单元存储多于两个状态。
5
对于多状态或多电平EEPR0M存储器单元,通过多于一个断点将导电窗口划分成 多于两个区域,使得每个单元能够存储多于一位的数据。因此给定的EEPROM阵列可以存储 的信息随着每个单元可以存储的状态的数量增加。在美国专利No. 5172338中描述了具有 多状态或多电平存储器单元的EEPROM或快闪EEPROM。 通过两种机制之一典型地将用作存储器单元的晶体管编程为"被编程的"状态。 在"热电子注入"中,施加到漏极的高电压加速电子穿过衬底沟道区。同时,施加到控制栅 极的高电压拉动热电子经过薄栅极电介质到达浮置栅极。在"隧道效应注入(tunneling injection)"中,高电压被施加到相对于该衬底的控制栅极。以此方式,将电子从衬底拉到 居间的浮置栅极。 可以通过许多机制擦除该存储器器件。对于EPROM,通过紫外照射从浮置栅极移除 电荷可体(bulk)擦除该存储器。对于EEPROM,通过相对于控制栅极将高电压施加到衬底 以便诱导浮置栅极中的电子隧道穿过薄氧化物到衬底沟道区(即Fowler-Nordheim隧道效 应),存储器单元是电可擦除的。典型地,可以逐字节擦除EEPROM。对于快闪EEPROM,可以 一次全部或一次一个或多个块地电擦除该存储器,其中块可以由存储器的512字节或更多 构成。 存储器器件典型地包括可以安装在卡上的一个或多个存储器芯片。每个存储器芯 片包括由诸如解码器和擦除、写入和读取电路之类的外围电路支持的存储器单元的阵列。 更复杂的存储器器件利用执行智能的更高级别的存储器操作和接口对接(interfacing) 的外部存储器控制器来操作。 存在许多如今正在使用的商业上成功的非易失性固态存储器器件。这些存储 器器件可以是快闪EEPROM或者可以采用其他类型的非易失性存储器单元。在美国专利 No. 5070032、5095344、5315541、5343063和5661053、5313421和6222762中给出了闪存和制 造闪存的系统和方法的例子。具体地,在美国专利No. 5570315、5903495、6046935中描述了 具有NAND串结构的闪存器件。而且还从具有用于存储电荷的介电层的存储器单元制造非 易失性存储器器件。代替之前描述的导电浮置栅极元件,使用介电层(dielectric)。利用 电介质存储元件的这种存储器器件已经由Eitan等人在IEEE ElectronDevice Letters, 第21巻,2000年11月第11号,543-545页"NROM:A NovelLocalized Tr即ping, 2_Bit Nonvolatile Memory Cell"中描述。0N0介电层延伸穿过源极和漏极扩散区(diffusion) 之间的沟道。用于一个数据位的电荷位于与漏极相邻的介电层中,并且用于另一数据位的 电荷位于与源极相邻的介电层中。例如,美国专利No. 5768192和6011725公开了具有夹在 两个二氧化硅层之间的俘获(trapping)电介质的非易失性存储器单元。通过分别读取在 电介质内的空间分离的电荷存储区的二进制状态来实现多状态数据存储。
为了改善读取和编程性能,并行读取或编程在阵列中的多个电荷存储元件或存储 器晶体管。因此一起读取或编程一"页"存储器元件。在现有的存储器结构中,一行典型地 包含几个交织(interleaved)的页或它可以构成一页。将一起读取或编程一页的所有存储 器元件。 使用一系列交替编程/验证循环的传统编程技术用于应对编程处理中的不确定 性,在该编程处理中,响应于V皿中相对较大的变化,该单元的阈值电压最初迅速增长。然 而,随着被编程到浮置栅极中的电荷起屏蔽作用,减小了用于进一步将电子隧道进入浮置栅极的有效电场,该增长放慢并最终停止。该过程看起来是高度非线性的,因此采用了反复 试验(trial-and-error)方式。 该编程/验证编程技术的缺点是,验证循环花费时间并影响性能。通过实现能够 存储多个位的存储器单元,加剧了该问题。本质上,需要对存储器单元的多个可能状态的每 个执行验证。对于具有16个可能的存储器状态的存储器,这意味着每个验证步骤将引起 至少16个感测操作。在一些其他方案中,甚至是几倍更多。因此,随着多电平存储器单元 ("MLC")中的可区分的状态电平的数量增加,编程/验证方案的验证循环变得越来越耗时。
由Loc Tu等人在2006年9月12日提交的题为"Method for Non-volatileMemory with Linear Estimation of Initial Programming Voltage"的美国专禾U申请序歹lj号 11/531227公开了通过线性估计来估计初始编程电压的方法。为了实现对于非易失性存储 器的良好编程性能,必须在出厂时最优地选择初始编程电压V皿。和步长(st印)大小。这通 过测试每页存储器单元实现。通过具有在脉冲之间的验证的阶梯波形的一系列电压脉冲来 对耦接到所选页的字线连续编程,直到验证该页为指定的样式(pattern)。在该页被编程验 证时的编程电压将用于通过线性縮放(scaling)回到对于该页的开始编程电压的初始值 来估计。通过在第二遍(pass)时使用来自第一遍的估计,进一步精确估计。因此,传统的 交替编程和验证用于建立用于成功编程一页的最终编程电压。然后,将最终编程电压线性 地縮放回到对于该页的估计的初始编程电压。这种类型的縮放是在页级上的粗略尺度上, 并且没有解决传统的基于逐单元编程和验证在该场中的存储器的缺点。
因此,存在对于高容量和高性能非易失性存储器的普遍需要。具体地,存在对于最 小化了前述缺点的具有改善的编程性能的高容量非易失性存储器的普遍需要。

发明内容
根据本发明的一个一般方面,在具有存储器单元的阵列的非易失性存储器中, 其中可将存储器单元分别编程到阈值电压电平的范围之一,提供了预测需要施加多大 的编程电压电平以便将给定的存储器单元编程到给定的目标阈值电压电平的预定函数 (function)。以此方式,不需要执行验证操作,由此极大地改善了编程操作的性能。
在一个实施例中,通过对于给定的目标阈值电压电平成比例地产生编程电压电 平的线性函数来近似该预定函数。该线性函数具有由可施加到存储器阵列的全体单元 (population of cells)的预定平均值所给定的斜率。通过对于给定的存储器单元预定在 线性函数上的检查点(checkpoint),来对于给定的存储器单元唯一地确定该线性函数。该 检查点是基于将存储器单元编程到指定的阈值电压电平的实际编程电压。优选地,该检查 点对应于存储器单元的最低编程状态之一。通过例如传统的编程/验证编程技术来将存储 器单元初始地编程到该检查点并进行验证。以此方式,确定将存储器单元编程到指定的存 储器状态所需的实际编程电压的检查点值。因此在预定函数被用于确定用于将存储器单元 编程到目标阈值电压电平的编程电压值之前,当在检查点阈值电压电平处被估计时,该预 定函数被校准以产生检查点编程电压值。 在另一实施例中,可以在存储器单元所支持的可能的阈值电压电平的范围内指定 多个检查点。每个检查点将被用于校准在每个检查点附近的局部预定函数。该局部预定函 数被用于预测用于编程到在相关的检查点附近的目标阈值电压电平的编程电压电平。
7
预测编程技术的优点在于,编程到目标状态不需要验证操作。仅需要验证操作用 于确定检查点,这在数量上通常比可能的存储器状态的数量少得多。 将存在致使预测编程产生错误结果的偏差,不过这些将是在统计上可预测的误 差,其可通过适当的误差校正码("ECC")来处理。 从以下本发明的优选实施例的描述中,将理解本发明的另外的特征和优点,其中 该描述应该与附图相结合。


图1示意性地图示了可以实现本发明的非易失性存储器芯片的功能块。
图2示意性地图示了非易失性存储器单元。 图3图示了对于浮置栅极可以在任意一个时刻选择性地存储的四个不同的电荷
Ql-Q4的、在源极_漏极电流ID和控制栅极电压Vra之间的关系。 图4图示了存储器单元的NOR阵列的例子。 图5A示意性地图示了被组织成NAND串的存储器单元的串。 图5B图示了由诸如图5A所示的串之类的NAND串50构成的存储器单元的NAND 阵列200的例子。 图6图示了用于将存储器单元编程到目标存储器状态的传统技术。 图7图示了对在给定的存储器器件中的各个存储器单元进行编程的实例
(sample)和在被施加的编程电压和阈值电压电平之间的观测到的关系。 图8示意性地图示了对于在给定的存储器器件中的存储器单元的实例的如图7所
示的斜率的分布。 图9图示了用于提供将存储器单元编程到目标阈值电压电平所需的编程电压的 预定函数的优选实施例。 图10是图示了根据本发明的一般实施例的预测编程的流程图。 图11图示了在校准图9所示的预定函数之后在预测编程模式中应用该预定函数
的情况下的时序上的编程电压。 图12示意性地图示了在图ll所示的编程处理期间一页存储器单元的各个存储器 状态的分布。 图13是图示了包括使用检查点来校准用于存储器单元的预定函数的如图10所示 的步骤300的流程图。 图14图示了使用多于一个检查点的预测编程的实施例的第一例子。 图15图示了图14所示的检查点被用于校准这些检查点局部的各种相关预定函数
的方式。 图16图示了使用多于一个检查点的预测编程的实施例的第二例子。
具体实施方式

存储器系统 图1到图5图示了可以实现本发明的各个方面的示例存储器系统。
图6图示了传统的编程技术。
图7到图16图示了本发明的各个方面和实施例。 图i示意性地图示了可以实现本发明的非易失性存储器芯片的功能块。该存储器 芯片100包括存储器单元的二维阵列200、控制电路210和诸如解码器、读/写电路和多路 复用器的外围电路。 存储器阵列200可由字线经由行解码器230(分裂成230A、230B)以及由位线经由 列解码器260 (分成260A、260B)寻址(还参见图4和图5)。读/写电路270 (分裂成270A、 270B)允许并行地读取或编程一页存储器单元。数据I/O总线231被耦接到读/写电路 270。 在优选实施例中,页由共享相同字线的相邻行的存储器单元构成。在另一实施例 中,在一行存储器单元被划分成多个页的情况下,提供块多路复用器250 (分裂成250A和 250B)以将读/写电路270多路复用到各个页。例如,分别由奇数列和偶数列的存储器单元 形成的两个页被复用到读/写电路。 图1图示了如下优选布置,其中以对称方式在存储器阵列200的相对侧上实现由 各种外围电路对该存储器阵列200的访问,使得在每侧上的访问线(access line)和电路 的密度减少一半。因此,行解码器被分为行解码器230A和230B,列解码器被分为列解码器 260A和260B。在一行存储器单元被划分成多个页的实施例中,页多路复用器250被分裂成 页多路复用器250A和250B。类似地,读/写电路270被分裂成从阵列200的底部连接到位 线的读/写电路270A和从阵列200的顶部连接到位线的读/写电路270B。以此方式,读/ 写模块的密度以及由此的感测模块380的密度实质上减少了一半。 控制电路110是与读/写电路270合作以对存储器阵列200执行存储器操作的芯 片上(on-chip)控制器。控制电路110典型地包括状态机112和诸如芯片上地址解码器和 功率控制模块之类的其他电路(未明确示出)。状态机112提供对存储器操作的芯片级控 制。控制电路经由外部存储器控制器与主机通信。 存储器阵列200典型地被组织为以行和列排列的并且可由字线和位线寻址的存
储器单元的二维阵列。可以根据NOR型或NAND型体系结构来形成该阵列。 图2示意性地图示了非易失性存储器单元。可以通过具有诸如浮置栅极或介电层
之类的电荷存储单元20的场效应晶体管来实现存储器单元10。存储器单元10还包括源极
14、漏极16和控制栅极30。 存在许多如今正在使用的商业上成功的非易失性固态存储器器件。这些存储器器 件可以采用不同类型的存储器单元,每种类型具有一个或多个电荷存储元件。
典型的非易失性存储器单元包括EEPROM和快闪EEPROM。 EEPROM单元的例子以 及制造该单元的方法在美国专利No. 5595024中给出。快闪EEPROM单元的例子、其在存储 器系统中的使用以及制造其的方法在美国专利No. 5070032、5095344、5315541、5343063、 5661053、5313421和6222762中给出。具体地,具有NAND单元结构的存储器器件的例子在 美国专利No. 5570315、5903495、6046953中描述。而且,利用电介质存储元件的存储器器件 的例子已经由Eitan等人在IEEE Electron Device Letters,第21巻,2000年11月第11 期,543-545页"N匪A Novel Localized Trapping, 2-BitNonvolatile Memory Cell,,中 以及在美国专利No. 5768192和No. 6011725中描述。 实践中,通常通过当参考电压被施加到控制栅极时感测经过单元的源极和漏极的导电电流来读取该单元的存储器状态。因此,对于在单元的浮置栅极上的每个给定的电荷, 可以检测到相对于固定的参考控制栅极电压的相应的导电电流。类似地,可编程到浮置栅 极上的电荷的范围定义了相应的阈值电压窗口或相应的导电电流窗口。 可替换地,代替检测在划分的电流窗口之中的导电电流,能够在控制栅极处对于 在测试下的给定存储器状态设置阈值电压,并检测导电电流低于还是高于阈值电流。在一 个实施方式中,通过检查导电电流通过位线的电容而放电的速率来完成导电电流相对于阈 值电流的检测。 图3图示了对于在浮置栅极可以在任意一个时刻选择性地存储的四个不同的电 荷Ql到Q4的源极_漏极电流ID和控制栅极电压Vra之间的关系。四个实线的ID相对Vra 曲线代表了可以被编程到存储器单元的浮置栅极上的四个可能的电荷水平,分别对应于四 个可能的存储器状态。作为例子,全体单元的阈值电压窗口可以从O. 5V到3.5V。可以通过 以每个0. 5V的间隔将阈值窗口划分成5个区域来对分别代表一个可擦除的和六个编程的 状态的七个可能的存储器状态"0"、"1"、"2"、"3"、"4"、"5"、"6"划界。例如,如果如所示地 使用2 A的参考电流IREF,则可以认为用Ql编程的单元处于存储器状态"l",因为其曲线 与I,相交在由VCG = 0.5V和l.OV划界的阈值窗口的区域中的。类似地,Q4处于存储器 状态"5"。 如从以上描述可见,使得存储器单元存储的状态越多,其阈值窗口划分得越精细。 例如,存储器器件可以具有如下存储器单元,该存储器单元具有范围从-1. 5V到5V的阈值 窗口。这提供了6.5V的最大宽度。如果存储器单元要存储16个状态,则每个状态可能占 据阈值窗口中的200mV到300mV。这将要求编程和读取操作中的更高精度,以便能够实现要 求的分辨率。 图4图示了存储器单元的NOR阵列的例子。在存储器阵列200中,每行存储器单 元通过其源极14和漏极16以菊花链(daisy-chain)方式连接。该设计有时称作虚拟接地 设计。 一行中的单元10具有连接到诸如字线42之类的字线的其控制栅极30。 一列中的单 元具有分别连接到诸如位线34和36之类的所选位线的其源极和漏极。
图5A示意性地图示了被组织成NAND串的存储器单元的串。NAND串50包括通过
其源极和漏极而菊花链连接的一系列存储器晶体管Ml、 M2.......Mn (例如n = 4、8、 16或
更高)。 一对选择晶体管S1、S2控制存储器晶体管链分别经由NAND串的源极端54和漏极 端56与外部的连接。在存储器阵列中,当源极选择晶体管Sl导通时,源极端被耦接到源极 线(见图5B)。类似地,当漏极选择晶体管S2导通时,NAND串的漏极端被耦接到存储器阵 列的位线。该链中的每个存储器晶体管10用作存储器单元。其具有用于存储给定量的电 荷以便表示意图的存储器状态的电荷存储元件20。每个存储器晶体管的控制栅极30允许 对读和写操作的控制。如将从图5B中看到的,一行NAND串的相应存储器晶体管的控制栅 极30全部被连接到相同的字线。类似地,每个选择晶体管Sl、 S2的控制栅极32提供了分 别经由其源极端54和56对NAND串的控制访问。同样, 一行NAND串的相应的选择晶体管 的控制栅极32全部被连接到相同的选择线。 当在编程期间读取或验证NAND串内的被寻址的存储器晶体管10时,向其控制栅 极30供应适当的电压。同时,NAND串50中的剩余未被寻址的存储器晶体管通过在其控制 栅极上施加足够的电压而完全导通。以此方式,有效地建立从各个存储器晶体管的源极到NAND串的源极端54以及同样对于各个存储器晶体管的漏极到该单元的漏极端56的导电通 路。在美国专利No. 5570315 、5903495 、6046935中描述了具有这种NAND串结构的存储器器 件。 图5B图示了由诸如图5A所示的NAND串的NAND串50构成的存储器单元的NAND 阵列200的例子。沿着NAND串的每列,诸如位线36的位线耦接到每个NAND串的漏极端 56。沿着NAND串的每排(bank),诸如源极线34的源极线被耦接到每个NAND串的源极端 54。而且,沿着NAND串的排中的一行存储器单元的控制栅极被连接到诸如字线42的字线。 沿着NAND串的排中的一行选择晶体管的控制栅极被连接到诸如选择线44的选择线。可以 通过对NAND串的排的字线和选择线上的适当的电压来对NAND串的排中的整个行的存储器 单元寻址。当NAND串内的存储器晶体管正被读取时,该串中剩余的存储器晶体管经由其关 联的字线而艰难地导通,使得流经该串的电流基本上取决于正被读取的单元中存储的电荷 的水平。 图6图示了用于将存储器单元编程到目标存储器状态的传统技术。经由耦接的字 线将编程电压VreM施加到存储器单元的控制栅极。VreM是以从初始电压电平VreM。开始的阶 梯形波形的形式的一系列编程电压脉冲。正在被编程的单元经历该一系列编程电压脉冲, 每次试图将增量的电荷添加到该浮置栅极。在编程脉冲之间,回读(read back)或验证该 单元以确定相对于断点水平的其源极-漏极电流。该回读处理可以包含一个或多个感测操 作。当已经验证了达到目标状态时,对于单元停止编程。使用的编程脉冲串可以具有增加 的周期或幅值,以便抵消被编程到存储器单元的电荷存储单元中的累积的电子。编程电路 通常将一系列编程脉冲施加到所选择的字线。以此方式,可以对其控制栅极被耦接到该字 线的一页存储器单元一起编程。无论何时已经将该页的存储器单元编程到其目标状态,则 其被禁止编程,同时其他单元继续经历编程,直到该页的所有单元都已经被编程验证。
使用一系列交替的编程/验证循环的传统编程技术用于应对如下编程处理中的 不确定性,在该编程处理中响应于VreM的相对较大的变化,该单元的阈值电压初始地迅速增 长。然而,随着被编程到浮置栅极中电荷用作用于减小使得电子进一步穿越进入浮置栅极 的有效电场的屏蔽,该增长放慢并最终停止。该过程看起来是高度非线性的,因此采用了反 复试验(trial-and-error)方式。 该编程/验证编程技术的缺点是,验证循环花费时间并影响性能。通过实现能够 存储多个位的存储器单元,加剧了该问题。本质上,需要对存储器单元的多个可能状态的每 个执行验证。对于具有16个可能的存储器状态的存储器,这意味着每个验证步骤将引起 至少16个感测操作。在一些其他方案中,其甚至是几倍多。因此,随着多电平存储器单元 ("MLC")中的状态电平的数量增加,编程/验证方案的验证循环变得越来越耗时。
因此,存在对于最小化前述缺点的、具有改善的编程性能的存储器器件的需要。
预测编程技术 根据本发明的一个一般方面,在具有存储器单元的阵列的非易失性存储器中,其 中可将存储器单元分别编程到阈值电压电平的范围之一,提供了预测需要施加多大的编程 电压电平以便将给定的存储器单元编程到给定的目标阈值电压电平的预定函数。以此方 式,不需要执行验证操作,由此极大地改善了编程操作的性能。 在一个实施例中,通过对于给定的目标阈值电压电平按比例地产生编程电压电平
11的线性函数来近似该预定函数。线性函数具有由可施加到存储器阵列的全体单元的预定平 均值给定的斜率。通过对于给定的存储器单元预定在线性函数上的检查点,对于给定的存 储器单元唯一地确定该线性函数。该检查点是基于将存储器单元编程到指定的阈值电压电 平的实际编程电压。优选地,该检查点对应于存储器单元的最低编程状态之一。通过例如传 统的编程/验证编程技术来将存储器单元初始地编程到该检查点并进行验证。以此方式, 确定将存储器单元编程到指定的存储器状态所需的实际编程电压的检查点值。因此在预定 函数被用于确定用于将存储器单元编程到目标阈值电压电平的编程电压值之前,当在检查 点阈值电压电平处被估计时,该预定函数被校准以产生检查点编程电压值。
在另一实施例中,可以在存储器单元所支持的可能的阈值电压电平的范围内指定 多个检查点。每个检查点将被用于校准在每个检查点附近的局部预定函数。该局部预定函 数被用于预测用于编程到在相关的检查点附近的目标阈值电压电平的编程电压电平。
预测编程技术的优点在于,编程到目标状态不需要验证操作。仅需要验证操作用 于确定检查点,这在数量上通常比可能的存储器状态的数量少得多。 将存在致使预测编程产生错误结果的偏差,不过这些将是在统计上可预测的误 差,其可通过适当的误差校正码("ECC")来处理。 图7图示了对给定的存储器器件中的各种存储器单元编程的实例以及在施加的 编程电压和阈值电压电平之间的观测到的关系。可以看出,即使跨越阈值窗口的实际范围, 各个存储器单元的编程行为不可思议地是线性的。在阵列内的各个单元或多或少表现如 下相同的方式,其中被编程的阈值电压的变化与编程电压电平的变化基本成比例。由于各 个单元被擦除得有多深以及其他因素,各个单元可能相差几个编程脉冲以到达指定的检查 点,但是各个单元的每个的预定函数具有基本类似的斜率。图7示出了慢编程单元、快编程 单元的每个的例子以及中间速率编程单元的一些例子(实线)。可以看出,不同例子间的斜 率的变化很小。 图8示意性地图示了对于在给定的存储器器件中的存储器单元的实例的、如图7 所示的斜率的分布。该分布基本呈现出平均斜率在0.9左右并且标准偏差接近0. 1的正态 分布。实际的编程采用了两个不同的编程电压步幅大小。已经观测到,这两个步幅大小产 生了类似的分布和平均的斜率。 图9图示了用于提供将存储器单元编程到目标阈值电压电平所需的编程电压的
预定函数的优选实施例。通过如下关系来用其中给定目标阈值电平VT为编程电压VreM的函
数的线性函数来近似预定函数<formula>formula see original document page 12</formula> 式(1) (其中〈slope〉 = AVT/AVPGM) 相反, <formula>formula see original document page 12</formula> 在优选实施例中,平均〈slope (斜率) > 可以通过在从类似产品批次中的工厂抽样 时测试来预定。例如,该测试可以得到〈slope〉是0.9。 VT(0)是取决于单元的并且在每个 单元的预测编程之前通过来自每个存储器单元的检查点来预定。 一旦〈slope〉和VT(0)已 知,就定义了用于该存储器单元的预定函数,并且等式(2)可以用于获得编程到目标阈值 电压电平所需的编程电压电平。
图10是图示了根据本发明的一般实施例的预测编程的流程图。 步骤300 :提供用于编程下的存储器单元的预定函数,该函数产生编程电压值作 为存储器单元将被作为目标编程到的阈值电压电平的函数。 步骤310 :利用具有增加的幅值的编程电压将存储器单元编程到目标阈值电压电 平。编程电压经由耦接的字线被施加到存储器单元的控制栅极。 步骤320 :在编程电压基本达到如由在目标阈值电压电平处所估计的预定函数所 确定的值后,停止存储器单元的编程。典型地,耦接到相同字线的一页存储器单元同时被编 程。当正讨论的存储器单元已经接收到由在目标阈值电压电平处所估计的预定函数所确定 的值时,不管对于该页的其他存储器单元的在字线上的可能的另外的编程脉冲,仍禁止进 一步的编程。 通常,不需要通过线性函数来近似预定函数。如果该预定函数要准确地覆盖宽范 围的阈值电压电平,则它可以通过在工厂时测试产品批次以及通过某种适当的函数建模来 确定。 通常,正被编程的存储器单元是同时处于编程下的一页类似的存储器单元之一。 将存在为该页的每个存储器单元而提供的预定函数。由于该页的所有存储器单元共享相同 的字线,因此一旦已经通过预测编程电压将该页的存储器单元编程,则禁止对其进一步编 程。 优选地在控制存储器阵列200的存储器操作的控制电路110中的状态机112中
(见图1)实现图io所示的预测编程模式。 图11图示了在校准图9所示的预定函数之后在预测编程模式中应用该预测函数 的情况下的时序上的编程电压。 在初始阶段中,对于存储器单元的检查点(0) (checkpoint (O))被指定为处于稍 微高于被认为与擦除状态相关联的电压电平的阈值电压电平(检查点阈值电压电平)处。 施加一系列增加的编程电压脉冲以将该存储器单元朝检查点阈值电压电平编程。该编程模 式可以是交替地编程和验证直到检查点阈值电压电平被编程验证的传统编程模式。 一旦已 知用于checkpoint (0)的坐标集[VreM, VT]chedtp。int(。),则可以对于VT (0)来求解以等式(2)为 形式的预定函数(见图9)并将其完整地表示。 在表示了以等式(2)为形式的预定函数后,随后可以使用该预定函数在编程模式 中对存储器单元编程,以对于目标阈值电压电平或者对于目标存储器状态提供估计的编程 电压电平。在优选实施例中,调整编程电压步幅大小,使得每个增加脉冲(addition pulse) 将把存储器单元编程到下一存储器状态。对于具有16个可能的存储器状态的存储器单元 的例子,脉冲大小可以是300mV。以此方式,一个增加的脉冲将把存储器编程到状态(l),另 一增加的脉冲将把存储器编程到状态(2)等等。因此,可以将编程到给定的存储器状态的 步骤减少为从状态(0)起对状态的数量计数并供应相同数量的脉冲。例如,可以每次在状 态(0)中设置标记,其后,可以通过与目标状态距状态(0)的状态数量相同的数量的脉冲对 存储器单元编程。 其他编程脉冲大小也是可能的。例如,对于具有16个可能的存储器状态的存储器 单元,脉冲大小可以是150mV。在该情况下,将用两个脉冲来从一个存储器状态编程到下一 相邻的存储器状态。这将在编程中提供更精细的分辨率,这在采用了距目标阈值的余量的
13某些实施方式中是有用的。 图12示意性地图示了在图ll所示的编程处理期间一页存储器单元的各种存储器状态的分布。该页存储器单元以所有存储器单元处于被擦除状态开始,其可能处于任何一个低阈值电压电平。在初始的编程阶段期间,一系列编程/验证循环(例如总共x个编程脉冲加上n朽个验证步骤(st印))将把存储器单元从擦除状态编程到状态(0)。通常,对于每个存储器单元的x彼此独立。 一旦存储器单元处于状态(O),预测编程模式开始,并且每个增加的脉冲将把存储器单元编程到下一存储器状态。 图13是图示了包括使用检查点校准用于存储器单元的预定函数的图10中所示的步骤300的流程图。 步骤302 :指定所述函数的检查点作为可由相应的检查点编程电压值编程的、指定的检查点阈值电压电平。 步骤304 :通过交替地编程和验证直到该检查点阈值电压电平被编程验证,确定相应的检查点编程电压值。 步骤306 :在预定函数被用于确定将存储器单元编程到目标阈值电压电平的编程电压值之前,当在检查点阈值电压电平处被估计时,校准该预定函数以产生检查点编程电压值。 图14图示了使用多于一个检查点的预测编程的实施例的第一例子。在第一例子中,在检查点模式下被编程的存储器状态在要通过预测模式编程的每个存储器状态之前。在图13中在步骤302和步骤304中描述了检查点模式。如果存储器单元可以逐步地被编
程为状态(0)、状态(1)、状态(2),......,则可以指定偶数状态,状态(0)、状态(2)、状态
(4),......为检查点。通过编程/验证编程模式(见图6)从前一状态到达这些状态。从
每个检查点,可以校准预测函数,并将其用于预测性地编程下一存储器状态,例如奇数状态(D、状态(3)、状态(5),...... 图14所示的实施例允许预测模式下的编程最准确,这是因为每隔一个存储器状态来重新校准该预定函数,并且在这种短间隔中,单元编程行为呈现出良好的线性。由于仅每隔一个存储器状态在检查点模式下被编程,因此避免了传统编程(见图6)中的至少一半的验证操作。 图15图示了图14所示的检查点用于校正在这些检查点局部的各种相关的预定函数的方式。将看出,所有的局部预定函数都是线性的,且具有相同的预定平均斜率。检查点(0)被用于设置用于局部预定函数400的边界条件。类似地,检查点(2)被用于设置用于局
部预定函数420的边界条件,且检查点(4)被用于设置用于局部预定函数440的边界条件,
坐坐寸寸。 —旦设置了局部预定函数,其可以被用于产生用于下一存储器状态的编程电压电平。因此,局部预定函数400被用于产生将该单元编程到状态(1)的编程电压电平,局部预定函数420被用于产生将该单元编程到状态(3)的编程电压电平,且局部预定函数440被用于产生将该单元编程到状态(5)的编程电压电平,等等。 图16图示了使用多于一个检查点的预测编程的实施例的第二例子。与图14和图15中所示的第一例子相反,第二例子每四个(every four)存储器状态指定一个检查点。因此,在状态(0)、在状态(4)、在状态(8)等处指定检查点(0)。由检查点(0)设置的局部预定函数将被用于预测分别用于下三个存储器状态、即状态a)、状态(2)和状态(3)的编程
电压。类似地,由检查点(4)设置的局部预定函数将被用于预测分别用于下三个状态、即状 态(5)、状态(6)、状态(7)等等的编程电压。从第二例子得到的预测的编程电压将不如第 一例子那样准确,但是在很多应用中也可能是足够的。其具有进一步减少编程验证操作的 次数的优点。 在存储器单元的阈值窗口中的阈值的范围内的指定的检查点的其他变化是可能 的。可以根据性能和准确性之间的平衡做出选择。 例如,在某些编程算法中,第一遍将该页存储器单元都编程为靠近其各自的目标 状态。然后,第二遍编程将完成到各自目标状态的编程。两遍的方法被用于减轻在相邻存储 器单元的浮置栅极之间的编程干扰。由于第一遍编程没有要求像第二遍那样高的精确度, 因此可以使用预测编程模式进行这第一遍以节省时间。在一些实施方式中,也将第二遍编 程也构思为优选地适当地利用多个检查点来采用预测编程模式。 预测编程模式不排除越过(overshoot)目标阈值电压电平的极小的可能性(估计 为小于O. 1% )。在目标存储器状态被越过的情况下,可以通过实施的误差校正码来校正误差。 当可用两个检查点时,能够独立地设置预定函数的斜率。 一旦如此规定了预定函 数,就可以将其用于产生用于随后的存储器状态的编程电压电平。 为了所有目的,将在此参考的所有专利、专利申请、文章、书目、规范、其他公开、文 件和事物通过对其全部的此引用而合并于此。对于在并入的任何出版物、文件或事物与本 发明的文本之间的术语的定义和使用不一致或相矛盾的地方,将以本文中的术语的定义或 使用为准。 尽管已经针对某些实施例描述了本发明的各个方面,应理解,本发明的权利在于 在所附权利要求的完全范围内的保护。
权利要求
一种在具有存储器单元的阵列的非易失性存储器中,其中存储器单元各自可被编程到阈值电压电平的范围之一,将存储器单元编程到目标阈值电压电平的方法包括为处在编程下的存储器单元提供预定函数,该函数产生编程电压值作为存储器单元被作为目标编程到的阈值电压电平的函数;利用具有增加的幅值的编程电压,将存储器单元编程到目标阈值电压电平;以及在所述编程电压基本达到由在所述目标阈值电压电平处估计的预定函数所确定的值后,停止存储器单元的编程。
2. 如权利要求1所述的方法,其中所述具有增加的幅值的编程电压是一系列电压脉冲。
3. 如权利要求1所述的方法,其中所述预定函数基本上是线性函数。
4. 如权利要求1所述的方法,其中所述提供预定函数包括指定所述函数的检查点作为可由相应的检查点编程电压值编程的指定的检查点阈值 电压电平;通过交替地编程和验证直到该检查点阈值电压电平被编程验证,来确定该相应的检查 点编程电压值;以及在预定函数被用于确定将存储器单元编程到目标阈值电压电平的编程电压值之前,当 在检查点阈值电压电平处估计时,校准所述预定函数以产生检查点编程电压值。
5. 如权利要求4所述的方法,其中目标阈值电压电平小于来自检查点阈值电压电平的 预定电压。
6. 如权利要求4所述的方法,其中在阈值电压电平的范围内指定一个或多个检查点阈 值电压电平。
7. 如权利要求4所述的方法,其中所述预定函数是线性的,并由估计的斜率和检查点 来定义。
8. 如权利要求4所述的方法,其中所述预定函数基本是线性的,并由至少两个检查点 来定义。
9. 如权利要求1所述的方法,其中所述非易失性存储器具有各自存储多于一位的数据 的存储器单元。
10. 如权利要求1所述的方法,其中所述非易失性存储器具有各自存储作为被编程到 电荷存储元件中的电荷量的数据的存储器单元。
11. 如权利要求10所述的方法,其中所述电荷存储元件是场效应晶体管的浮置栅极。
12. 如权利要求10所述的方法,其中所述电荷存储元件是场效应晶体管中的介电层。
13. 如权利要求1所述的方法,其中所述非易失性存储器具有NAND结构的存储器单元。
14. 如权利要求1所述的方法,其中所述非易失性存储器是快闪EEPR0M。
15. 如权利要求1所述的方法,其中所述非易失性存储器被实现在存储卡中。
16. 如权利要求1所述的方法,其中所述非易失性存储器被嵌入在计算设备中。
17. 如权利要求l-16任意一项所述的方法,其中所述存储器单元是被一起编程的一组 存储器单元中的一个。
18. —种非易失性存储器,包括存储器单元的阵列,其中所述存储器单元各自可被编程到阈值电压电平的范围之一;读/写电路,用于并行读取并编程一页存储器单元;状态机,用于控制包括所述读/写电路的所述非易失性存储器的操作,所述状态机 为处在编程下的存储器单元提供预定函数,该函数产生编程电压值作为存储器单元被 作为目标编程到的阈值电压电平的函数;利用具有增加的幅值的编程电压,控制将存储器单元编程到所述目标阈值电压电平;以及在所述编程电压基本达到由在所述目标阈值电压电平处估计的预定函数所确定的值 后,停止存储器单元的编程。
19. 如权利要求18所述的非易失性存储器,其中所述具有增加的幅值的编程电压是一 系列电压脉冲。
20. 如权利要求18所述的非易失性存储器,其中所述预定函数基本上是线性函数。
21. 如权利要求18的非易失性存储器,其中提供预定函数的所述状态机还包括 指定所述函数的检查点作为可由相应的检查点编程电压值编程的指定的检查点阈值电压电平;通过交替地编程和验证直到检查点阈值电压电平被编程验证,确定相应的检查点编程 电压值;以及在预定函数被用于确定将存储器单元编程到目标阈值电压电平的编程电压值之前,当 在检查点阈值电压电平处估计时,校准预定函数以产生检查点编程电压值。
22. 如权利要求21所述的非易失性存储器,其中所述目标阈值电压电平小于来自检查 点阈值电压电平的预定电压。
23. 如权利要求21所述的非易失性存储器,其中在阈值电压电平的范围内指定一个或 多个检查点阈值电压电平。
24. 如权利要求21所述的非易失性存储器,其中所述预定函数是线性的,并且由估计 的斜率和检查点来定义。
25. 如权利要求21所述的非易失性存储器,其中所述预定函数基本是线性的,并且由 至少两个检查点来定义。
26. 如权利要求18所述的非易失性存储器,其中所述非易失性存储器具有各自存储多 于一位的数据的存储器单元。
27. 如权利要求18所述的非易失性存储器,其中所述非易失性存储器具有各自存储作 为被编程到电荷存储元件中的电荷量的数据的存储器单元。
28. 如权利要求27所述的非易失性存储器,其中所述电荷存储元件是场效应晶体管的 浮置栅极。
29. 如权利要求27所述的非易失性存储器,其中所述电荷存储元件是场效应晶体管中 的介电层。
30. 如权利要求18所述的非易失性存储器,其中所述非易失性存储器具有NAND结构的 存储器单元。
31. 如权利要求18所述的非易失性存储器,其中所述非易失性存储器是快闪EEPR0M。
32. 如权利要求18所述的非易失性存储器,其中所述非易失性存储器被实现在存储卡中。
33. 如权利要求18所述的非易失性存储器,其中所述非易失性存储器被嵌入在计算设 备中。
34. —种非易失性存储器,包括存储器单元的阵列,其中所述存储器单元各自可被编程到阈值电压电平的范围之一; 用于为处在编程下的存储器单元提供预定函数的部件,该函数产生编程电压值作为存储器单元被作为目标编程到的阈值电压电平的函数;用于利用具有增加的幅值的编程电压来控制将存储器单元编程到所述目标阈值电压电平的部件;以及用于在所述编程电压基本达到由在所述目标阈值电压电平处估计的预定函数所确定 的值后,停止存储器单元的编程的部件。
35. 如权利要求34所述的非易失性存储器,还包括用于指定所述函数的检查点作为可由相应的检查点编程电压值编程的指定的检查点 阈值电压电平的部件;用于通过交替地编程和验证直到检查点阈值电压电平被编程验证来确定相应的检查 点编程电压值的部件;以及用于在预定函数被用于确定将存储器单元编程到目标阈值电压电平的编程电压值之 前,当在检查点阈值电压电平处估计时,校准预定函数以产生检查点编程电压值的部件。
36. 如权利要求18-36中的任意一项所述的非易失性存储器,其中所述存储器单元是 被一起编程的一组存储器单元中的一个。
全文摘要
在具有存储器单元的阵列的非易失性存储器中,其中这些存储器单元各自可编程到阈值电压电平的范围之一,提供了一种预测编程模式,其中预定函数预测需要施加什么编程电压电平以便将给定的存储器单元编程到给定的目标阈值电压电平。以此方式,不需要进行验证操作,由此极大地改善了编程操作的性能。在优选实施例中,该预定函数是线性的,并且通过一个或多个检查点对于处在编程下的每个存储器单元校准该预定函数。该检查点是将讨论的存储器单元编程到被验证的指定阈值电压电平的实际编程电压。
文档编号G11C16/10GK101711414SQ200880019574
公开日2010年5月19日 申请日期2008年4月9日 优先权日2007年4月10日
发明者劳尔-阿德里安·塞尔尼亚 申请人:桑迪士克公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1