用最小的额外时间损失来减少干扰的改进编程算法的制作方法

文档序号:6768245阅读:105来源:国知局
专利名称:用最小的额外时间损失来减少干扰的改进编程算法的制作方法
技术领域
本发明涉及非易失性存储器。
背景技术
半导体存储器已经变得越来越流行用于各种电子设备。例如,在蜂窝电话、数码相 机、个人数字助理、移动计算设备、非移动计算设备和其他设备中使用非易失性半导体存储 器。电可擦除可编程只读存储器(EEPROM)和闪存位列最流行的非易失性半导体存储器之 间。通过也是一种EEPROM的闪存,相比于传统的、全特征的EEPR0M,可以在一步中擦除整个 存储器阵列或该存储器的一部分的内容。传统的EEPROM和闪存两者都使用在半导体衬底中的沟道区域上方且与其绝缘的 浮置栅极。浮置栅极位于源极和漏极区域之间。控制栅极设置在浮置栅极之上且与其隔离 (insulated)开。如此形成的晶体管的阈值电压(Vth)受浮置栅极上保留的电荷量控制。也 就是说,在导通晶体管以允许其源极和漏极之间的导电之前必须被施加到控制栅极的最小 量的电压受浮置栅极上的电荷水平的控制。一些EEPROM和闪存器件具有用于擦除两个范围的电荷的浮置栅极,且因此,可以 在两个状态、例如擦除状态和已编程状态之间编程/擦除该存储器元件。这种闪存器件有 时被称为二进制闪存器件,因为每个存储器元件可以擦除一位数据。通过识别不同的已允许/有效的已编程阈值电压范围来实现多状态(也称为多电 平)闪存器件。每个不同的阈值范围对应于在存储器器件中编码的该组数据位的预定值。 例如,每个存储器元件当该元件可以位于对应于四个不同的阈值范围的四个离散的电荷带 之一中时可以擦除两位数据。典型地,在编程操作器件被施加到控制栅极的编程电压VreM被施加作为随时间量 值增加的一系列脉冲。在一个可能的方法中,通过预定步长、例如0. 2-0. 4V来随着每个连 续脉冲而增加脉冲的量值。可以向闪存元件的控制栅极施加VreM。在编程脉冲之间的时间 段中,进行验证操作。也就是说,在连续编程脉冲之间读取正被并行编程的一群元件的每个 元件的编程电平,以确定其是否等于或大于该元件正被编程到的验证电平。对于多状态闪 存元件的阵列,可以对元件的每个状态进行验证步骤,以确定该元件已经到达了其数据相 关的验证电平。例如,能够在四个状态中存储数据的多状态存储器元件可能需要进行对三 个比较点的验证操作。另外,当编程EEPROM或闪存器件、例如在NAND串中的NAND闪存器件时,典型地, VreM被施加到控制栅极,且位线接地,使得电子从单元或存储器元件、例如存储元件的沟道 注入到浮置栅极中。当电子在浮置栅极中累积时,浮置栅极变为充负电,且存储器元件的阈 值电压升高以便存储器元件被考虑为处于已编程状态中。关于这种编程的更多信息可以在 美国专利6,859,397和6,917,542中找到,两者整体被引用附于此。但是,继续有问题的一个问题是编程干扰。编程干扰可能发生在编程其它NAND串 期间的禁止的NAND串中,且有时发生在已编程NAND串本身中。编程干扰在未选非易失性存储元件的阈值电压由于其它非易失性存储元件的编程而漂移时发生。可能在先前已编程 的存储元件以及还没有编程的已擦除存储元件上发生编码干扰。多遍编程技术可以通过更 逐渐地编程存储元件来减少编程干扰。但是,编程时间增加了。

发明内容
本发明通过提供减少非易失性存储系统中的编程干扰同时也减少编程时间的编 程技术来解决了上述和其它问题。在一个实施例中,一种用于操作非易失性存储器的方法,包括使用第一验证电平 减去偏移量来对第一组存储器元件进行编程操作,以区分较慢和较快编程的存储器元件, 同时锁止至少第二组存储器元件以不被编程。该方法还包括锁止较快编程的存储元件,同 时使用第一验证电平来继续对较慢编程存储元件编程,且同时继续锁止至少第二组存储元 件。还方法还包括锁止较慢编程的存储元件,同时使用第一验证电平来恢复对较慢编程存 储元件编程,且同时使用小于第一验证电平减去偏移量的至少第二验证电平来对至少第二 组存储元件编程。在另一个实施例中,一种用于操作非易失性存储器的方法,包括编程意图被编 程到与第一验证电平相关的第一数据状态的存储元件,同时锁止意图被编程到与分别低于 第一验证电平的第二和第三验证电平相关的至少第二和第三数据状态的其它存储元件不 被编程。该方法还包括,在编程期间,在意图被编程到第一数据状态的存储元件之间区分 较低和较高编程的存储元件,且锁止较快编程的存储元件同时继续编程较低编程的存储元 件。该方法还包括随后编程至少第二组存储元件到至少第二和第三数据状态,同时恢复编 程较快编程的存储元件到第一数据状态,且施加用于继续编程较低编程的存储元件的编程 条件,其不同于用于恢复编程较快编程的存储元件的编程条件。在另一实施例中,一种操作非易失性存储器的方法,包括a)编程意图被编程到 与第一验证电平相关的第一数据状态的存储元件,同时锁止意图被编程到与分别低于第一 验证电平的第二和第三验证电平相关的至少第二和第三数据状态的其它存储元件不被编 程。该方法还包括b)随后编程至少第二组存储元件,其中,步骤b)使用不同于步骤b)的 编程条件的编程条件。在另一个实施例中,一种非易失性存储系统,包括第一组存储元件,和与所述第 一组存储元件通信的至少一个控制电路。该至少一个控制电路(a)使用第一验证电平减 去偏移量来对第一组存储器元件进行编程操作,以区分较慢和较快编程的存储器元件,同 时锁止至少第二组存储器元件以不被编程,(b)锁止较快编程的存储元件,同时使用第一 验证电平来继续对较慢编程存储元件编程,且同时继续锁止至少第二组存储元件,以及(C) 锁止较慢编程的存储元件,同时使用第一验证电平来恢复对较慢编程存储元件编程,且同 时使用小于第一验证电平减去偏移量的至少第二验证电平来对至少第二组存储元件编程。可以提供用于进行在此提供的方法的对应的方法、系统和计算机或处理器可读的 存储器件。


图1是NAND串的顶视图。
图2是图1的NAND串的等效电路图。图3是NAND闪存的阵列的方框图。图4描述在衬底上形成的NAND串的剖面图。图fe-e描述在多遍编程技术中的存储元件的阈值电压,其中,在较低状态之前编 程最高状态。图6a_g描述在修改的多遍编程技术中的存储元件的阈值电压,其中,在较低状态 之前编程最高状态。图7a描述了在对应于图fe-d的编程序列中的编程和验证电压。图7b描述了在对应于图k的编程序列中的编程和验证电压。图7c描述了在对应于图6a_d的编程序列中的编程和验证电压。图7d描述了在对应于图6e和6f的编程序列中的编程和验证电压。图fe和汕描述了对应于图6a_g的编程处理。图9a描述了其中在每遍中使用不同编程条件的多遍编程处理。图9b描述了其中在较低状态单元之前编程高状态单元的多遍编程处理。图10描述三个不同编程技术的编程脉冲数相对验证电平的表。图11是NAND闪存元件的阵列的方框图。图12是使用单行/列解码器和读/写电路的非易失性存储器系统的方框图。图13是使用双行/列解码器和读/写电路的非易失性存储器系统的方框图。图14是描述感测块的一个实施例的方框图。图15图示了将存储器阵列组织为对于所有位线存储器架构的块或用于奇偶存储 器架构的块的例子。图16描述了阈值电压分布和一遍(one-pass)编程的示例组。图17描述了阈值电压分布和两遍(two-pass)编程的示例组。图l&i-c示出了各种阈值电压分布并描述用于编程非易失性存储器的处理。
具体实施例方式本发明提供减少在非易失性存储系统中的编程干扰同时也减少编程时间的编程 技术。适用于实现本发明的存储器系统的一个例子使用NAND闪存结构,其包括在两个 选择门(select gate)之间串联地排列多个晶体管。串联的晶体管和选择门被称为NAND 串。图1是一个NAND串的顶视图。图2是其等效电路。在图1和2中描述的NAND串包括 串联且夹在第一选择门120和第二选择门122之间的四个晶体管、100,102,104和106。选 择门120选通NAND串与位线126的连接。选择门122选通NAND串与源极线128的连接。 通过向控制栅极120CG施加适当的电压来控制选择门120。通过向控制栅极122CG施加适 当的电压来控制选择门122。晶体管100,102,104和106的每个具有控制栅极和浮置栅极。 晶体管100具有控制栅极100CG和浮置栅极loore。晶体管102具有控制栅极102CG和浮 置栅极102TO。晶体管104具有控制栅极104CG和浮置栅极104TO。晶体管106具有控制 栅极106CG和浮置栅极106TO。控制栅极100CG连接到(或是)字线札3,控制栅极102CG 连接到字线WL2,控制栅极104CG连接到字线WL1,且控制栅极106CG连接到字线札0。在一个实施例中,晶体管100,102,104和106每个是存储元件,也称为存储器单元。在其他实施 例中,存储元件可以包括多个晶体管或可以不同于图1和2中描述的。选择门120连接到 选择线S⑶。选择门122连接到选择线SGS。图3是三个NAND串的电路图。使用NAND结构的闪存系统的典型架构将包括若 干NAND串。例如,在具有多得多的NAND串的存储器阵列中示出了三个NAND串320,340和 360。NAND串的每个包括两个选择门和四个存储元件。虽然图示了四个存储元件为了简化, 现代的NAND串可以具有高达例如三十二或六十四个存储元件。例如,NAND串320包括选择门322和327和存储元件323-326,NAND串340包括 选择门342和347和存储元件;343-;346,NAND串360包括选择门362和367和存储器元件 363-366。每个NAND串通过其选择门(例如选择门327,347或367)连接到源极线。选择 线SGS用于控制源极侧选择门。各个NAND串320,340和360通过选择门322、342、362等 中的选择晶体管而连接到各个位线321、341和361。这些选择晶体管受漏极选择线S⑶控 制。在其他实施例中,选择线不一定需要在NAND串中共同;也就是说,可以对不同的NAND 串提供不同的选择线。字线WL3连接到存储元件323、343和363的控制栅极。字线WL2连 接到存储元件324、344和364的控制栅极。字线连接到存储元件325、345和365的控 制栅极。字线Wi)连接到存储元件326、346和366的控制栅极。如可以看出的,每个位线 和各个NAND串包括该存储器元件的阵列或组的列。字线(WL3,WL2, WLl和Wi))包括该阵 列或组的行。每个字线连接该行中的每个存储元件的控制栅极。或者,可以通过字线它们 自己来提供控制栅极。例如,字线WL2提供存储元件324、344和364的控制栅极。实际上, 可能存在一个字线上的数千存储元件。每个存储元件可以存储数据。例如,当存储一位数字数据时,存储元件的可能的 阈值电压(Vth)的范围被划分为被分配了逻辑数据"1"和"0"的两个范围。在NAND类 闪存的一个例子中,Vth在存储元件被擦除之后是负的,且被定义为逻辑“1”。Vth在编程 操作之后是正的,且被定义为逻辑“0”。当Vth是负的且试图读取时,存储元件将导通以指 示正存储逻辑“1”。当Vth是正的且试图读取操作时,存储元件将不导通,指示存储了逻辑 “0”。存储元件还可以存储多电平的信息、例如多位数字数据。在该情况下,Vth值的范围 被划分为多个水平的数据。例如,如果存储了四个电平的信息,将存在被分配给数据值四 个"11〃,“ 10〃,“ 01",和〃 00〃的Vth范围。在NAND类闪存的一个例子中,Vth在 存储元件被擦除之后是负的,且被定义为“11。”正Vth值用于〃 10〃,“ 01",和〃 00〃 的状态。在被编程到存储元件中的数据和该元件的阈值电压范围之间的具体关系取决于适 用于存储元件的数据编码机制。例如,两个被整体引用附于此的美国专利US6,222,762和 US 7,237,074描述了用于多状态闪存元件的各种数据编码机制。NAND型闪存和其操作的相关例子在美国专利No. US5, 386,422,US5, 570,315, US5, 774,397,US6, 046, 935,US6, 456,528 和 US6, 522,580 中提供,其每个被引用附于此。当编程闪存元件时,向存储元件的控制栅极施加编程电压,且与存储元件相关联 的位线接地。来自该沟道的电子被注入浮置栅极。当电子在浮置栅极中累积时,浮置栅极变 为充负电,且存储元件的Vth升高。为了向正被编程的控制栅极施加编程电压,该编程电压 被施加到适当的字线的存储元件。如上所述,在每个NAND串中的存储元件共享相同字线。 例如,当编程图3的存储元件3M时,编程电压也将被施加到存储元件344和364的控制栅
7极。但是,编程干扰可能发生在编程其他NAND串期间的禁止的NAND串中,且有时发生 在已编程NAND串本身中。编程干扰在未选非易失性存储元件的阈值电压由于其他非易失 性存储元件的编程而漂移时发生。可能在先前已编程的存储元件以及还没有编程的已擦除 存储元件上发生编码干扰。各种编程干扰机制可以限制诸如NAND闪存的非易失性存储器 件的可用操作窗。例如,如果NAND串320被禁止(例如,其是不包括当前正被编程的存储元件的未 选NAND串)且NAND串340正被编程(例如,其是包括当前正被编程的存储元件的所选NAND 串),可能在NAND串320处编程干扰。例如,如果通过电压(pass voltage) Vpass低,禁止 NAND串的沟道未被很好地升压,且未选NAND串的已选字线可能无意地被编程。在另一可能 场景中,升压的电压可以被栅极感应漏极泄露(Gate Induced Drain Leakage) (GIDL)或其 他泄露机制降低,导致相同的问题。由于诸如与稍后被编程的其他相邻存储元件的电容性 耦合而导致的电荷存储元件的Vth的漂移的其他影响也可能有利于编程干扰。图4描述在衬底上形成的NAND串的剖面图。该视图被简化且不按比例。NAND串 400包括在衬底490上形成的源极侧选择门406、漏极侧选择门似4和八个存储元件408, 410,412,414,416,418,420和422。在每个存储元件和选择门406和424的任一侧上提供 其一个例子是源极漏极/区域430的多个源极/漏极区域。在一个方法中,衬底490使用 三阱技术,该三阱技术包括η-阱区域494内的ρ-阱区域492,该η-阱区域494又处于ρ型 衬底区域496中。可以在ρ-阱区域上至少部分地形成NAND串和其非易失性存储元件。除 了具有I的电势的位线426以外,还提供具有Vsquke的电势的源极供应线404。还可以经 由端子402向ρ-阱区域492施加和/或经由端子403向η-阱区域494施加诸如主体偏压 的电压。在编程操作期间,在所选字线、在该例子中与存储元件414相关联的WL3上提供控 制栅极电压VreM。另外,回忆(recall)存储元件的控制栅极可以被提供为字线的一部分。 例如,WLO, WLl, WL2, WL3, WL4, WLS, WL6 和 WL7 可以分别经由存储元件 408,410,412,414, 416,418,420和422的控制栅极延伸。在一个可能的升压机制中,通过电压、Vpass被施加到 与NAND串400相关联的剩余字线。一些升压机制向不同字线施加不同的通过电压。VSGS 和VS⑶分别被施加到选择门406和424。图fe-e描述在多遍编程技术中的存储元件的阈值电压,其中,在较低状态之前编 程最高状态。相反的编程序列可以减少干扰和相邻单元干涉效应的影响。这种编程技术的 一个例子是"C-first(C优先)",其中C状态表示在四个数据状态、多级实施方式中的最 高状态。该技术可以被扩展到八个、十六个或其它数量的状态。这种技术包括在将较低状 态单元编程到其预定0状态之前将所有最高状态单元编程到其预定状态。通常,进行两遍 或多遍,其中,在每个编程遍中重复编程一系列脉冲。例如,可以在每遍中施加逐步增加的 编程一系列脉冲。图fe描述了在擦除操作之后的一组非易失性存储元件的阈值电压分布。χ轴描述 以下四个不同状态的阈值电压(Vth)已擦除状态(E)、状态A、状态B和状态C。y轴指示在 每个状态中的单元或存储元件的数量。电压验证电平也指示每个状态,即用于状态A、B和 C的Vv_A,Vv_B and Vv_co这些附图不一定是有比例的,但是已擦除状态分布的最高量值意图指示所有单元都处于该状态。使用虚线来示出状态A、B和C以描述当前没有单元处于那些 状态。图如指示E、A、B和C单元处于已擦除状态。术语“A单元”、“B单元”或“C单元” 或类似的意图分别指的是意图被编程到状态A、B或C作为在编程完成时的其最终状态的单兀。在图恥-d中描述第一编程遍的第一部分。在图恥中,B和C单元从已擦除状态 被编程到称为“状态LM”(例如,中低(lower-middle))的中间或临时的状态。通常,LM状 态和其它状态的阈值电压分布将具有由于对编程准确性的过度和其它限制而产生的扩散。 E和A单元维持在已擦除状态。在该编程遍中,例如从初始脉冲电平开始、继续逐步到最终 脉冲电平地施加编程一系列脉冲。例如,参考图7a,其描述了在第一编程遍中的编程和验证 电压。χ轴指示时间,且y轴指示电压。编程脉冲逐步增加,且在量值上高于验证脉冲。在 第一编程遍的第一部分中,针对Vv.(在该符号中,大写V表示电压,且下方的V-LM表示“ 验证〃和〃 LM状态〃)来验证这些单元。已编程单元当其Vth被验证为已达到¥¥_ 时被锁 止以不被进一步编程。在图7a的例子中,在第七个编程脉冲之后,所有B和C单元都到达 来LM状态。此时,第一编程遍的第二部分开始。如图5c中所示,仅编程C单元、例如最高状态 单元。C单元从LM状态编程,且针对Vv_。来验证。LM状态上的减少的幅度意图指示越来越 少的单元处于LM状态。也就是说,随着C单元被编程得更高,B单元维持在LM状态。一些 单元将相对快地编程,而其它由于例如单元之间的差异特性、它们在存储器器件中的相对 位置和其它因素而相对慢地编程。因此,在编程期间,C单元将初始地在相对宽的阈值电压 分布510中展开(spread out)。随着第一编程遍的第二部分的编程继续,C单元将被编程 到C状态分布520,如图5d所示。在第二编程遍中,经由例如所选字线向要被编程的单元再次施加该编程一系列脉 冲,如图k和图7b所示。A单元从已擦除状态被编程到A状态,而B单元从LM状态被编程 到B状态。在一个方法中,在前六个编程脉冲的每个之后,仅对A单元进行验证,在接下来 的七个编程脉冲的每个之后,对A和B单元进行验证,且在剩余编程脉冲的每个之后,仅对 B单元进行验证。在该例子中,编程脉冲的总数是22。向完成了编程之后,实现图6f的阈 值电压分布。上述方法包括在各遍中重复整个编程一系列脉冲,如图7a和7b所示,其与例如结 合图16以下讨论的一遍编程技术相比消耗额外的时间。另一方面,减少编程干扰和相邻单 元干涉效应的影响。将期望维持这些益处同时减少编程时间。一个方法包括跳过许多重复的编程脉冲,且因此减少编程时间,同时保持多遍编 程技术的主要益处,如现在要详细说明的。图6a_g描述在修改的多遍编程技术中的存储元件的阈值电压,其中,在较低状态 之前编程最高状态。该提议如下地修改上述C-优先序列。在第一编程遍中,在已经将单元 编程到LM状态之后,施加初始的脉冲(或一系列脉冲)以将C单元编程高达最终状态。使 用Vv-皿验证电平来识别具有高Vth的每个单元,且临时地锁止它。通过适合于编程不曾被 锁止的慢C单元的大的量来递增下一编程脉冲(VreM)。通过将VreM递增大的量,我们可以跳 过脉冲且节省时间。然后,对慢C的编程继续,直到施加最高VreM。在第二编程遍中,被临时 锁止了的快C单元回到所选群体(population)。VPGM回到初始值,且再次通过最后的编程脉冲斜上升,一起编程A、B和快C单元。快C单元能够在该序列内快速地编程,且不需要额 外的时间。在具体实施方式
中,我们使用C-优先(或最后状态优先)编程。该技术可以适 用于使用比四个编程状态更少或更多的机制。而且,可以对一个或多个高状态进行快-慢 区分。图6a描述了起始的阈值电压分布,且所有单元处于已擦除状态。还参考图7c,其 描述了在对应于6a_d的编程技术中编程和验证电压。在第一编程遍的第一阶段中,所有 B和C单元使用Vv,的验证电平,从已擦除状态编程到LM状态,导致图6b的阈值电压分 布。在该阶段中,在一个可能的方法中,在最小电平开始施加编程电压,且每个脉冲递增步 长Mxo在一个可能的实施方式中,在该阶段中施加十一个编程脉冲。应该理解,提供的数 值例子可以被调整以最优化具体应用。通常,在编程和验证期间使用的所有电压电平和其 它参数可以被最优化用于具体应用。这包括初始和最终编程脉冲电平,各种步长和增量、在 每个阶段中的编程脉冲的数量和验证电平。在第一编程遍的第二阶段中,进行阈值电压检测以将快C单元与慢C单元分开。因 此,快和慢存储器单元被识别或分组。C单元从LM状态编程到值Va和\2之间的阈值电压 范围,如图6c所指示的。如图7c所示,在阶段2中的初始编程脉冲递进了 AV2,且在阶段 2中的每个连续编程脉冲递增了 Δν3。例如,八^和八^可以大于AV1,使得编程对C单 元相对快地进行。还在第二阶段期间,针对新的验证电平来验证C单元,以便能够确 定快和慢编程的C单元。(注意,相比于Vv_m,Vv_CL,如以下结合图6g所述,指示状态C的粗 糙模式验证电平)。等于Vv_。减去偏移量Δ,且可以被最优化用于具体应用。在示例 实施方式中,在阶段2中使用三个编程脉冲;但是,取决于存储器器件的特性,可以使用一 个或多个编程脉冲。使用的编程脉冲的数量应该足够用于将C单元编程到允许在快和慢编 程的单元之间区分的阈值电压分布。或者,可以根据C单元、或在一组C单元中、诸如在字线或块中的C单元的一部分 的数量,基于“每种情况(per-case) ”适应地确定结束阶段3的决定,其中Vth > Vv_皿。例 如,可以一旦第一 C单元到达Vth > Vv_CLL则结束阶段2。还可以在预定数量或部分的单元 到达Vth > Vv_CLL之后的某种固定数量的附加编程脉冲之后结束阶段2。在阶段2结束之后,慢C单元的阈值电压将处于Va和Vv_皿之间的范围610中,且 快C单元的阈值电压将处于在和\2之间的范围620中。注意,该例子指示慢和快C 单元的分布分别大约50%和50%。但是,快和慢C单元的数量不一定相等。另外,关于阈 值电压分布的范围,该例子指示Va处的分布的下端落入LM分布中。但是,这不一定,因为 在Va处的分布的下端可以在LM分布之上。另外,VC2处的C单元分布的上端被指示为处 于最终C状态分布的上端处,但是其也可以更低。在阶段2之后,第一编程遍的第三阶段发生,其中,在阶段2中识别了的快C单元 被临时锁止以不被编程,且对慢C单元的编程继续,如图6d所示。在该例子中,阶段3包括 四个附加编程脉冲和在Vv_。电平处的验证。在此,能够在编程一系列脉冲中向前跳过,以便 在阶段3的开始,施加显著步增的编程脉冲。通过跳过编程脉冲,我们节省了用于那些被跳 过的脉冲的对应时间。相比于图7a的方法,可以跳过脉冲15-18,以便图7c中的阶段3的 第一编程脉冲(整体的第十五个脉冲)处于与图7a的第十九个编程脉冲相同的电平处。然 后,在一个可能的方法中,图7c中的第二到第四个编程脉冲可以分别处于与图7a的第二十到第二十二个编程脉冲相同的电平处。因此,图7c的示例编程序列使用与使用二十二个编 程脉冲的图7a的示例编程序列相比的十八个编程脉冲,因此节省了大量的编程施加。另外,阶段3的第一编程脉冲可以比阶段2的最后编程脉冲超过AV4,同时AV5 的步长用于阶段3中的随后的脉冲。在一个方法中,AV4大于八^和Mxo八^可以大于 八力且与AV3相当。在一个方法中,ΔΜ等于或近似等于Vv_c-Vv_m,即在C状态验证电平 和低C状态验证电平之间的差。通常,编程脉冲电平可以在阶段3中比先前的脉冲更急剧 地步增,因为已知正编程慢单元。这种单元相对稳固,且因此需要经由所选字线向它们控制 栅极施加更高和/或跟更长持续施加的编程脉冲,以便继续将它们的阈值电压提升向最终 预定状态。因此,另一选择包括在阶段3中除了、或代替升高编程脉冲电平,而延长编程脉 冲的持续施加。在阶段3之后,第一编程遍结束,且随后进行第二编程遍。因此,第一编程遍的后 者部分包括施加一些编程脉冲,在其期间,仅选择目标为最后、最高状态的单元。起始和最 终VreM值以及增量和步长是在特征化期间被最优化的参数。结合图6e和6f和图7d来说明第二编程遍。图7d描述了在对应于6e和6f的编 程技术中的编程和验证电压。在一个可能的方法中,图7d的编程一系列脉冲是普通序列, 其中,在规律的步中逐渐递增编程脉冲。先前锁止的快C单元(由Vth分布630表示)被存储,以便它们与A和B单元一起 被编程,如图6e所示。A单元从已擦除状态编程,而B单元从LM状态编程。在图7d的编 程一系列脉冲中,可以定义扩展超过六个编程脉冲的第四阶段,其中,施加初始脉冲,然后 递增了 Δ V1,且使用Vv_A来进行A单元的验证。可以定义超过五个编程脉冲的第五阶段,其 中,分别使用Vv_A和Vv_B来进行A和B单元的验证。可以定义扩展超过两个编程脉冲的第六 阶段,其中,分别使用Vv_A,Vv_B和Vv_c来进行A、B和快C单元的验证。可以定义扩展超过六 个编程脉冲的第七阶段,其中,分别使用Vv_B和Vv_。来进行B和快C单元的验证。此时,完成 了第二编程遍和整个编程操作,导致图6f的阈值电压分布。由于不存在更长的任何慢C单元,且仅快C单元保持被编程,因此第二编程遍应该 比图7b的方法中更早地结束。另外,第二编程遍应该在大约到达图7c中的第三阶段的第 一编程脉冲的电平处的编程脉冲、例如图7d中的第九十个编程脉冲时之前结束。因此,第 二编程遍可以在九十编程脉冲之后、而不是在图7b的二十二个编程脉冲之后结束,因此节 省了大量的编程施加。在提供的例子中,时间的节省是在第一和第二编程遍上的总共七个 编程脉冲。更多细节见图10。可选地,在此提到的技术可以被修改以包括粗糙/精细的编程处理,如图6g所示。 粗糙/精细编程包括在粗糙模式中初始地对单元编程,其中,相对快地进行这些单元。例 如,这可以通过使用相对大或激进的编程脉冲步长或脉冲持续时间来实现。当在低于最终 意图的编程状态的验证电平的电平(分别用于状态A、B和C的粗糙模式验证电平νν_Λ,VVi and Vv_CLL)处验证单元时,该单元被切换为精细编程模式,其中,相对慢地编程该单元。这允 许该单元更准确地被编程,因为减少了过度。该精细编程模式可以包括例如施加具有更小 的步长和/或脉冲持续时间的编程脉冲和/或升高位线电压以减慢编程的速度。在粗糙模 式中到达的阈值电压分布被标记为AL,BL and CL,以将它们与在精细模式中到达的分别被 标记为A、B和C的阈值电压分布进行区分。向LM状态的编程不需要使用粗糙/精细编程,
11就像中间状态一样,因此准确性更不重要。例如,在第一编程遍中,其中慢C单元被编程到C状态(例如图6d),在Vv_a处验 证慢C单元,其被切换为精细编程模式,其中,随后施加Vv_。的精细验证电平。在第二编程遍 中,在粗糙模式中,初始地分别在VVi,VVi和νν_α处验证Α、Β和快C单元,且在精细模式中, 分别在Vv_A,Vv_B和Vv_。处。在一个选择中,可以以有限的方式使用粗糙/精细技术用于C单 元,以便其仅用于在第二编程遍期间被编程的快C单元。在在此被引用附于此的美国专利 7,088,621中讨论粗糙/精细编程技术的例子。还能够分别对相比于随后的"A" &" B" 遍(例如,阶段4-7)的“C-优先”遍(例如,阶段幻来最优化位线电压或脉冲数。这种最 优化可以包括设置被允许的“精细”脉冲的最大数,以便避免对编程时间的增加。另外,其它修改可用于上述技术之一,包括结合图7a_d讨论的那些。在一个方法 中,在编程遍的不同阶段或部分中和/或在不同编程遍中实现不同的编程条件。例如,第一 和第二编程遍可以具有不同的扫除(swe印)参数以分别对诸如性能、分布宽度和编程-干 扰属性的目标而最优化该两遍。一个例子是使用在第一编程遍相对第二编程遍期间的更大 编程脉冲步长,以便具有速度相对分布宽度的独立折衷。另一例子是使用被施加且分别对 两个编程遍最优化的不同编程-禁止参数。例如,可以经由在第一和第二编程遍中被施加 在未选字线上的不同通过电压来实现不同的沟道升压模式。不同的沟道升压模式的例子见 在此引用附于此的美国专利6,859,397。也见图4,其描述了在编程期间被施加到未选字线 的通过电压。还可以使用在粗糙编程模式之后的精细编程模式中的不同的最大被允许的数 量的编程脉冲。还可以使用不同位线电压,诸如在精细编程模式期间。各种其它选择是可 能的。事实上,可以对编程遍的不同的阶段或部分和/或整个编程处理的不同编程遍最优 化可以被设置以影响编程的任何参数。图和8b描述来对应于图6a_f的编程处理。所讨论的具体实施方式
包括四个 状态。但是,其它实施方式是可能的。在图8a中,编程在步骤800处开始。阶段1(也见图 7c)在步骤802处开始,其中,A单元被临时锁止以不编程。注意,意图维持在已擦除状态的 单元被锁止以不在整个编程处理中编程。步骤804包括施加在最低VreM电平处开始的编程 脉冲。步骤806包括在Vv.处进行验证,且临时锁止到达状态LM的B和C单元(例如,Vth > Vv_LM的单元)。术语“锁止”指的是通过升高相关位线的电压来防止单元的进一步编程, 同时其它单元继续被编程。决定步骤808确定所有B和C单元是否都已经被验证到状态 LM,或某种数量m的编程脉冲是否已经被施加了。如果没有情况成立,在步骤810处施加 下一编程脉冲,将先前脉冲递增然后,该处理循环回到步骤806。如果决定步骤808 为真,第一编程遍的阶段2在步骤812处开始。在此,所有单元被临时锁止以不编程,除了 C单元以外(例如,A和B单元被锁止)。C单元可以被考虑为第一组存储元件,同时A和B 单元分别是第二和第三组存储元件。步骤814包括施加从先前脉冲递增AV1的编程脉冲。步骤816包括在VV-CLL处进行验证,且临时锁止其Vth > Vv_CLL的C单元。这些锁 止的单元是最后的C单元。决定步骤818确定某种数量N2的编程脉冲是否已经被施加了, 或某种数量或部分N3的C单元是否已经到达了 Vv_u。另一选择是确定某种数量或部分的 C单元是否已经到达了 Vv_u,以及某种数量的附加编程脉冲是否已经被施加了。如果没有 情况成立,在步骤820处施加下一编程脉冲,将先前脉冲递增Δν3。然后,该处理循环回到 步骤816。如果决定步骤818为真,第一编程遍的阶段3在步骤822处开始。在此,所有单元被临时锁止以不编程,除了慢C单元以外(例如,A、B和快C单元被锁止)。步骤拟4包 括施加从先前脉冲递增△ V4的编程脉冲。 步骤拟6包括在VV-C处进行验证,且永久锁止其Vth > Vv_c的慢C单元。永久锁止 指的是延伸穿过当前编程操作的锁止。决定步骤拟8确定所有慢C单元都已经到达状态C, 或某种数量N4的编程脉冲已经被施加了。注意,可以按照在当前阶段的编程脉冲和/或在 当前编程遍中的总共多个编程脉冲来表述在此涉及的多个编程脉冲(例如,m-N8)。如果 在决定步骤828中没有情况成立,在步骤830处施加下一编程脉冲,将先前脉冲递增Δ V5。 然后,该处理循环回步骤826。如果决定步骤828为真,阶段4和第二编程遍在步骤832处 开始。在此,A、B和快C单元从其临时锁止恢复,以便它们可以被编程。该处理在图8b继 续。在图8b中,步骤840包括施加在最低VreM或其它初始VreM值处再次开始的编程脉 冲。步骤842包括进行在Vv_A处的验证,且永久锁止Vth > Vv_A的A单元。决定步骤844确 定所有A单元都已经到达状态A,或某种数量N5的编程脉冲已经被施加了。在一个可能的 方法中,如果没有情况成立,在步骤846处施加下一编程脉冲,将先前脉冲递增△%。然后, 该处理循环回步骤842。如果决定步骤844为真,阶段5在步骤848处开始,在该情况下,在 步骤850处施加使用增量AV1的下一编程脉冲。步骤852包括进行在Vv_A和Vv_B处的验证 操作,且永久地锁止分别Vth > Vv_A或Vth > Vv_B的A和B单元。决定步骤邪4确定所有A和 B单元是否都已经分别到达状态A和B,或某种数量N6的编程脉冲是否已经被施加了。如 果没有情况成立,在步骤856处施加下一编程脉冲,将先前脉冲递增△%。然后,该处理循 环回步骤852。如果决定步骤邪4为真,阶段6在步骤858处开始,在该情况下,在步骤860 处施加使用增量Mx的下一编程脉冲。步骤862包括进行在Vv_A,Vv_B和Vv_。处的验证操作,且永久地锁止到达其预定状 态(例如,分别Vth > Vv_A,Vth > Vv_B和Vth > Vv_c)的A、B和C单元。决定步骤864确定所 有A、B和C单元是否都已经分别到达预定状态A、B或C,或某种数量N7的编程脉冲是否已 经被施加了。如果没有情况成立,在步骤866处施加下一编程脉冲,将先前脉冲递增Mxo 然后,该处理循环回步骤862。如果决定步骤864为真,阶段7、第二编程遍的最终阶段在步 骤868处开始,在该情况下,在步骤870处施加使用增量AV1的下一编程脉冲。步骤872包 括进行在Vv_B和Vv_。处的验证操作,且永久地锁止到达其预定状态(例如,分别Vth > Vv_B以 及Vth > Vv_c)的B和C单元。决定步骤874确定所有B和C单元是否都已经分别到达状态 B和C,或某种数量N8的编程脉冲是否已经被施加了。如果没有情况成立,在步骤876处施 加下一编程脉冲,将先前脉冲递增然后,该处理循环回步骤872。如果决定步骤874 为真,则在步骤878处结束该编程。图9a描述来其中在每遍中使用不同编程条件的多遍编程处理。如所述,可以在编 程遍的不同阶段或部分中和/或在不同编程遍中实现不同的编程条件。这可以允许对于诸 如性能、分布宽度和编程干扰属性的目标而最优化两个编程遍或其部分。编程条件的例子 包括编程脉冲步长、编程脉冲持续时间、编程禁止参数、沟道升压模式、通过电压、在精细 编程模式中的最大允许的数量的编程脉冲和诸如在精细编程模式期间使用的位线电压。步 骤900包括开始第一编程遍。步骤902包括实施第一编程条件。步骤904包括编程C单元 且锁止快C单元。步骤906包括编程快C单元。步骤908包括开始第二编程遍。步骤910包括实施不同于第一编程条件的第二编程条件。步骤912包括编程A、B和快C单元。图9b描述了其中在较低状态单元之前编程高状态单元的多遍编程处理。虽然已 经提供了其中使用四个数据状态且状态C是最高数据状态的示例实施方式,但是其它实施 方式是可能的。例如,能够使用八个或十六个数据状态。而且,能够进行用于多于一个高状 态的快-慢技术。例如,通过八个数据状态,可以首先使用在此讨论的技术来编程两个最高 状态。在这种情况下,在第一编程遍中确定在两个最高状态中的快和慢单元,且锁止快单 元,同时慢单元完成编程。在第二编程遍中,所有其它单元与在两个最高状态中的快单元一 起被编程到其最终预定状态。各种其它方法也是可能的。步骤920包括开始第一编程遍。 步骤922包括将单元编程到中间状态(例如,LM状态)。步骤拟4包括编程高状态单元,且 在它们被检测之后锁止快高状态单元。步骤拟6包括编程慢高状态单元。步骤拟8包括开 始第二编程遍。步骤930包括编程包括快高状态单元的剩余单元。图10描述三个不同编程技术的编程脉冲数相对验证电平的表。情况#1指的是诸 如结合图16以下讨论的一遍编程技术。情况#2指的是诸如结合图7a和7b以上讨论的多 遍编程技术。情况#3指的是诸如结合图7c和7d以上讨论的多遍编程技术。最左列指示 从范围从1-22的编程脉冲数量。验证电平A,B和C分别指的是用于状态A、B和C的Vv_A, Vv-B和Vv_。。另外,当使用粗糙/精细编程时,粗糙验证电平A,BL和CL分别指的是用于状 态A、B和C的Vv_AL,Vv_BL和Vv_CL(见图6g),且Vv_A,Vv_B和Vv_c是精细验证电平。CLL指的是 验证电平Vv_皿。情况# 1涉及在Vv_A和/或νν_Λ处的13个验证操作、在Vv_B和/或VVi处的13个 验证操作和在Vv_。和/或Vv_a处的11个验证操作,用于总共63个验证操作。另外,施加22 个编程循环(例如编程脉冲)。因此,进行总共85个操作。情况#2涉及在Vv_。处的11个 验证操作、在Vv_A和/或VVi处的13个验证操作和在Vv_B和/或VVi处的13个验证操作, 用于总共63个验证操作。另外,施加30个编程脉冲(总共超过两个编程遍)。因此,进行 总共93个操作。情况#3涉及在处的4个验证操作、在Vv_A和/或νν_Λ处的13个验 证操作、在Vv_B和/或VVi处的13个验证操作、和在Vv_a和/或Vv_。处的8个验证操作,用 于总共65个验证操作。另外,施加M个编程脉冲(总共超过两个编程遍)。因此,进行总 共89个操作。因此,情况#3相比于情况#2,节省了在施加六个附加编程脉冲中涉及的时 间。该节省由两个附加验证操作的需要轻微地偏移,但总体益处仍显著。可以实现的该时 间节省可能在其它应用中甚至更大。图11图示NAND存储元件的阵列1100的例子,诸如图1和2所示的那些。沿着每 个列,位线1106被耦合到NAND串1150的漏极选择门的漏极端1126。沿着NAND串的每行, 源极线1104可以连接NAND串的源极选择门的所有源极端11观。作为存储器系统的部分 的NAND架构阵列和其操作的例子在美国专利号5,570,315 ;5, 774,397 ;和6,046,935中找 到。存储元件的阵列被划分为存储元件的大量块。如对于快闪EEPROM系统共同的,该 块是擦除的单位。即,每个块包含一起擦除的存储元件的最小数量。每个块通常被划分为大 量页。一页是编程的单位。在一个实施例中,各个页可以被划分为段(segment),且段可以包 含作为基本编程操作一次被写入的存储元件的最小数量。一页或多页数据通常被存储在一 行存储元件中。一页可以存储一个或多个扇区。扇区包括用户数据和开销数据(overheaddata)。开销数据通常包括已经从扇区的用户数据中计算的纠错码(ECC)。控制器的一部分 (以下描述)当数据正被编程到阵列中时计算ECC,还当正从该阵列中读取数据时检查它。 或者,ECC和/或其他开销数据被存储在与它们所属的用户数据不同的页或甚至不同的块 中。用户数据的扇区通常是512字节,对应于在磁盘中的扇区的尺寸。开销数据通常 是附加的16-20字节。大量页形成块,无论从例如8页直到32、64、1观或更多页。在一些 实施例中,NAND串的一行包括一个块。在一个实施例中,通过将ρ-阱升高到擦除电压(例如14-22V)达足够的时间段, 并将所选块的字线接地同时浮置源极和位线,来擦除存储器存储元件。由于电容性耦合,所 选字线、位线和C-源极也被升高擦除电压的大分数(significant fraction) 0因此,强电 场被施加到所选存储元件的隧道氧化物层,且随着通常通过i^owler-Nordheim遂穿机制将 浮置栅极的电子发射到衬底侧,所选存储元件的数据被擦除。随着电子从浮置栅极转移到 P-阱区域,所选存储元件的阈值电压被降低。可以对整个存储器阵列、分离的块或存储元件 的另一单位进行擦除。图12是使用单行/列解码器和读/写电路的非易失性存储器系统的方框图。该图 图示了根据本发明的一个实施例的具有用于并行读取和编程一页存储元件的读/写电路 的存储器器件1296。存储器器件1296可以包括一个或多个内存芯片(memory die) 12980 内存芯片1298包括存储元件的二维阵列1100、控制电路1210和读/写电路1265。在一些 实施例中,存储元件的阵列可以是三维的。该存储器阵列1100可由字线经由行解码器1230 且由位线经由列解码器1260来寻址。读/写电路1265包括多个感测块1200,并允许并行 读取或编程一页存储元件。通常,控制器1250被包括在与一个或多个内存芯片1298相同 的存储器器件1四6(例如,可移除存储卡)中。经由线1220在主机和控制器1250之间且 经由线1218在控制器和一个或多个内存芯片1298之间转移命令和数据。控制电路1210与读/写电路1265合作以对存储器阵列1100进行存储器操作。控 制电路1210包括状态机1212、芯片上地址解码器1214和功率控制模块1216。状态机1212 提供存储器操作的芯片级控制,包括控制预充电。芯片上地址解码器1214提供有主机或存 储器控制器使用的与有解码器1230和1260使用的硬件地址之间的地址接口。功率控制电 路1216控制在存储器操作期间供应给字线和位线的功率和电压。在一些实施方式中,可以组合图12的组件中的一些。在各种设计中,除了存储元 件阵列1100以外的一个或多个组件(单独或组合)可以被考虑为管理电路。例如,一个或 多个管理电路可以包括控制电路1210、状态机1212、解码器1214/U60、功率控制1216、感 测块1200、读/写电路1沈5、控制器1250等中的任何一个或组合。图13是使用双行/列解码器和读/写电路的非易失性存储器系统的方框图。在 此,提供图12所示的存储器器件1296的另一布置。以对称的方式在该阵列的相对侧上实 现由各种外围电路对存储器阵列1100的存取,以便在每个侧上的存取线和电路的密度减 少了一半。因此,行解码器被分裂为行解码器1230A和1230B,且列解码器被分裂为列解码 器U60A和1260B。类似地,读/写电路被分裂为从阵列1100的底部连接到位线的读/写 电路1265A和从阵列1100的顶部连接到位线的读/写电路1265B。以此方式,读/写模块 的密度实质上减少了一半。图13的器件还可以包括如上述对于图12的器件的控制器。
图14是描述感测块的一个实施例的方框图。诸如验证和读取的感测操作涉及感 测块。分离的感测块1200被分区为称为感测模块的核心部分1280和公共部分1290。在一 个实施例中,将存在对于每个位线的分离的感测模块1280和对于多个感测模块1280的一 组的一个公共部分1四0。在一个例子中,感测块将包括一个公共部分1290和八个感测模块 1280。在一个分组中的感测模块的每个将经由数据总线1272与相关公共部分通信。更多 细节参见美国专利申请公开号2006/0140007,其全部被引用附于此。感测模块1280包括确定在连接的位线中的导电电流高于还是低于预定阈值电平 的感测电路1270。感测模块1280还包括用于设置在连接的位线上的电压状况的位线锁存 器1观2。例如,在位线锁存器1282中锁存的预定状态将导致连接的位线被拉到指定编程禁 止的状态(例如1. 5-3V)。公共部分1290包括处理器1四2、一组数据锁存器1294和在该组数据锁存器1294 和数据总线1220之间耦合的I/O接口 1296。处理器1292进行计算。例如,其功能之一是 确定在感测的存储元件中存储的数据并在该组数据锁存器中存储确定的数据。该组数据锁 存器1294被用于存储在读取操作期间由处理器1292确定的数据位。其还用于存储在编程 操作期间从数据总线1220输入的数据位。输入的数据位表示意欲被编程到存储器中的写 数据。I/O接口 1296提供在数据锁存器1294和数据总线1220之间的接口。在读取或感测期间,该系统的操作在状态机1212的控制下,该状态机1212控制不 同的控制栅极电压向被寻址的存储元件的供应。随着其步经对应于由存储器支持的各种存 储器状态的预定的控制栅极电压,感测模块1280可以停留(trip at)在这些电压之一,且 将经由总线1272从感测模块1280向处理器1292提供输出。在该点上,处理器1292通过考 虑感测模块的停留事件(tripping event)和关于经由输入线1293从状态机的施加的控制 栅极电压的信息来确定得到的存储器状态。然后,其计算对于存储器状态的二进制编码,并 将得到的数据位存储到数据锁存器1四4。在核心部分的另一实施例中,位线锁存器1282用 于双重任务,作为用于锁存感测模块1280的输出的锁存器,还作为如上述的位线锁存器。预期,一些实施方式将包括多个处理器1292。在一个实施例中,每个处理器1292 将包括使得每个输出线被一起配线为逻辑或(wired-OR' d)的输出线(未示出)。在一些 实施例中,输出线在被连接到配线为逻辑或的线之前被反转(invert)。该配置使得能够在 编程确认处理期间快速确定何时完成了编程处理,因为接收配线为或的状态机可以确定正 被编程的所有位何时到达了期望的电平。例如,当每个位到达了其期望的电平时,该位的逻 辑零将被发送到配线为或的线(或数据一被反转)。当所有位输出数据0(或数据一被反 转)时,然后状态机知道确定编程处理。因为每个处理器与八个感测模块通信,因此,状态 机需要读取配线为或的线八次,或逻辑被添加到处理器1292以累积相关位线的结果以便 状态机仅需要读取配线为或的线一次。类似地,通过正确地选择逻辑电平,全局状态机可以 检测第一位何时改变其状态并因此改变算法。在编程或确认期间,要被编程的数据从数据总线1220被存储在该组数据锁存器 1294中。在状态机的控制下的编程操作包括施加到被寻到的存储元件的控制栅极的一系列 编程电压脉冲。每个编程脉冲之后是读回(确认)以确定存储元件已经被编程到期望的存 储器状态。处理器1292相对于期望的存储器状态来监视读回的存储器状态。当两者一致 时,处理器1292设置位线锁存器1282以便使得位线被拉到指定编程禁止的状态。这禁止与位线耦合的存储元件被进一步编程,即使编程脉冲出现在其控制栅极上。在其他实施例 中,处理器初始地加载位线锁存器1282,且感测电路在确认处理期间设置其到禁止值。数据锁存堆栈1294包含对应于感测模块的数据锁存器的堆栈。在一个实施例中, 存在每个感测模块1280的三个数据锁存器。在一些实施方式(但是不必要)中,数据锁存 器被实施为移位寄存器以便在其中存储的并行数据被转换为用于数据总线1220的串行数 据,且反之亦然。在优选实施例中,对应于m个存储元件的读/写块的所有数据锁存器可以 被链接到一起以形成块移位寄存器,以便数据的块可以通过串行转移来输入或输出。具体 地,读/写模块的库(bank)被适配以便其数据锁存器组的每个将顺序地偏移数据到数据总 线中或数据总线以外,就好像它们是移位寄存器的部分,用于整个读/写块。关于非易失性存储器件的各种实施例的结构和/或操作的其它信息可以在美国 专利 7,196,931,7,023,736,7,046,568,7,196,928 和 7,327,619 中找到。所有五个就在上 述列出的专利文档在此通过整体被引用附于此。图15图示了将存储器阵列组织为对于所有位线存储器架构的块或用于奇偶存 储器架构的块的例子。描述存储器阵列1100的示例结构。例如,描述被划分为IOM个 块的NAND快闪EEPR0M。可以同时擦除在每个块中存储的数据。在一个实施例中,该块 是同时被擦除的存储元件的最小单位。在每个块中,在该例子中,存在对应于位线BL0, BLl,. . . BL8511的8512个列。在称为全位线(ABL)架构(架构1510)的一个实施例中,可 以在读取和编程操作期间同时选择块的所有位线。沿着公共字线且被连接到任一位线的存 储元件可以同时被编程。在提供的示例中,串联连接四个存储元件以形成NAND串。虽然示出了四个存储元 件以被包括在每个NAND串中,但是可以使用比四个更多或更少(例如,16、32、64或另一数 量)。NAND串的一端经由(连接到选择门逻辑线SGD的)漏极选择门被连接到对应的位线, 且另一端经由(连接到选择门源极线SGS的)源极选择门连接到c源极。在称为奇偶架构(架构1500)的另一实施例中,位线被划分为偶数位线(BLe)和 奇数位线(BLo)。在奇数/偶数位线架构中,沿着公共字线且被连接到奇数位线的存储元件 在一个时间被编程,而沿着公共字线且连接到偶数位线的存储元件在另一时间编程。在每 个块中,在该例子中,存在被划分为偶数个列和奇数个列的8512个列。在该示例中,示出串 联连接的四个存储元件以形成NAND串。虽然示出四个存储元件被包括在每个NAND串中, 但是可以使用比四个更多或更少的存储元件。在读取和编程操作的一个配置期间,同时选择4256个存储元件。所选的存储元件 具有相同的字线和同种位线(例如,偶数或奇数)。因此,可以同时读取或编程形成逻辑页 的532字节的数据,且一块存储器可以存储至少八个逻辑页(四个字线,每个具有奇数和偶 数个页)。对于多状态存储元件,当每个存储元件存储两位数据时,在这两位的每个被存储 在不同页中的情况下,一个块存储十六个逻辑页。还可以使用其他尺寸的块和页。对于ABL或奇偶架构,可以通过升高ρ-阱到擦除电压(例如20V)且将所选块的 字线接地来擦除存储元件。源极和位线浮置。可以对整个存储器阵列、分离的块或作为存 储器器件的一部分的存储元件的另一单位进行擦除。电子从存储元件的浮置栅极被转移到 P-阱区域,以便存储元件的Vth变负。在读取和验证操作中,所选栅极(S⑶和SGS)被连接到2. 5-4. 5V的范围中的电
17压,且未选字线(例如mD,ffLl和WL3,当WL2是所选字线时)被升高到读取通过电压(read pass voltage),VKEAD(通常在4.5V到6V的范围中的电压)以使得晶体管操作为通过栅极。 所选字线WL2被连接到电压,其电平被指定给每个读取和确认操作以便确定所关心的存储 元件的Vth是高于还是低于这种电平。例如,在两电平存储元件的读取操作中,所选字线WL2 可以被接地,以便检测Vth是否高于0V。在对于两电平存储元件的确认操作中,所选字线WL2 被连接到例如0.8V,以便确认Vth是否达到了至少0.8V。源极和ρ-阱处于0V。假设为偶 数位线(Ble)的所选位线被预充电到例如0.7V的电平。如果Vth高于在字线上的读取或确 认电平,与感兴趣的存储元件相关的位线(Ble)的电势电平由于非导电存储元件而维持高 电平。另一方面,如果Vth低于读取或确认电平,关心的位线(BLe)的电势电平降低到例如 小于0.5V的低电平,因为导电的存储元件对位线放电。由此可以通过连接到位线的电压比 较器感测放大器来检测存储元件的状态。根据现有技术已知的技术来进行上述擦除、读取和确认操作。因此,可以通过本领 域技术任意来改变所说明的细节中的许多。还可以使用本领域技术中已知的其他擦除、读 取和确认技术。图16描述了阈值电压分布和一遍编程的示例组。对每个存储元件存储两位数据 的情况提供用于存储元件阵列的示例Vth分布。对擦除的存储元件提供第一阈值电压分布 E。还描述对于编程的存储元件的三个阈值电压分布、A、B和C。在一个实施例中,在E分布 中的阈值电压是负的,且在A、B和C分布中的阈值电压是正的。每个不同的阈值电压范围对应于该组数据位的预定值。在被编程到存储元件中的 数据和该存储元件的阈值电压电平之间的具体关系取决于适用于存储元件的数据编码机 制。例如,两个被整体引用附于此的美国专利6,222,762和7,237,074描述了用于多状态闪 存元件的各种数据编码机制。在一个实施例中,使用格雷码分配来将数据值分配给阈值电 压范围,以便如果浮置栅极的阈值电压错误地偏移到相邻的物理状态,仅将影响一个位。一 个例子向阈值电压范围E (状态E)分配"11",向阈值电压范围A(状态A)分配"10",向 阈值电压范围B(状态B)分配"00",且向阈值电压范围C(状态C)分配"01"。但是, 在其他实施例中,不使用格雷码。虽然示出了四个状态,但是还可以通过包括那些包括多于 或少于四个状态的其他多状态结构来使用本发明。还提供三个读取参考电压Vra,Vrb和Vrc用于从存储元件读取数据。通过测试给 定的存储元件的阈值电压高于还是低于Vra,Vrb和Vrc,该系统可以确定例如该存储元件 所处的编程状况的状态。另外,提供三个确认参考电压Vva,Vvb和Vvc。当将存储元件编程到状态A时,该 系统将测试那些存储元件是否具有大于或等于Vva的阈值电压。当将存储元件编程到状态 B时,该系统将测试这些存储元件是否具有大于或等于Vvb的阈值电压。当将存储元件编程 到状态C时,该系统将确定存储元件是否具有大于或等于Vvc的其阈值电压。在已知为全序列编程的一个实施例中,存储元件可以从擦除状态E直接编程到编 程的状态A、B或C中的任一。例如,要被编程的全体存储元件可以首先被擦除以便在该全 体中的所有存储元件处于擦除的状态E。然后,诸如由图20的控制栅极电压序列描述的一 系列编程脉冲将被用于将存储元件直接编程到状态A、B或C。当一些存储元件正被从状态 E编程到状态A时,其他存储元件正从状态E被编程到状态B和/或从状态E编程到状态C。当在WLn上从状态E编程到状态C时,耦合于在WLn-I之下的相邻的浮置栅极的寄生 (parasitic)的量到达最大值,因为当从状态E编程到状态A或从状态E编程到状态B时 在WLn下的浮置栅极上的电荷量中的变化与电荷的变化相比最大。当从状态E编程到状态 B时,耦合于相邻浮置栅极的量更小。当从状态E编程到状态A时,耦合的量甚至进一步减图17图示了编程存储两个不同的页下部页和上部页的数据的多状态存储元件 的两遍(two-pass)技术的例子。描述四个状态状态E (11),状态A (10),状态B (00)和状 态C(01)。对于状态E,两页存储“1”。对于状态A,下部页存储“0”,且上部页存储“1”。对 于状态B,两页存储_0。”对于状态C,下部页存储“_1 ”,且上部页存储“0”。注意,虽然具体 图案已经被分配给每个状态,但是还可以分配不同的位图案。在第一编程遍中,根据要被编程到下部逻辑页的位来设置存储元件的阈值电压电 平。如果该位是逻辑“1”,不改变阈值电压,因为其处于与已经较早被擦除的结果的适当的 状态中。但是,如果要被编程的位是逻辑“0”,存储元件的阈值电平被增加以成为状态々,如 由箭头1700示出。这结束了第一编程遍。在第二编程遍中,根据要被编程到上部逻辑页的位来设置存储元件的阈值电压电 平。如果上部逻辑页位要存储逻辑“1”,则不发生编程,因为存储元件取决于下部页位的编 程处于其两者携带上部页位“ 1 ”的状态E或A之一中。如果上部页位是逻辑“0 ”,则阈值电 压被偏移。如果第一遍导致维持在擦除状态E中的存储元件,然后在第二阶段中存储元件 被编程,以便阈值电压被增加到状态C中,如由箭头1720描述。如果作为第一编程遍的结 果,存储元件已经被编程到状态A中,则在第二遍中进一步编程存储元件,以便阈值电压被 增加到状态B内,如由箭头1710所示。第二遍的结果要将存储元件编程到被指定为存储上 部页的逻辑“0”的状态,而不改变下部页的数据。在图16和图17两者中,耦合于在相邻字 线上的浮置栅极的量取决于最终的状态。在一个实施例中,如果将足够的数据写入以填满整个页,系统可以被设置以进行 全序列写。如果不写入足够的数据用于全页,则编程处理可以编程用所接收的数据编程的 下部页。当接收随后的数据时,然后该系统将编程上部页。在另一实施例中,系统可以开始 写入编程下部页的模式,然后如果随后接收足够的数据以填满整个(或大多数)字线的存 储元件,转换到全序列编程模式。这种实施例的更多细节在美国专利7,120,051中公开,其 全部被引用附于此。图l&i-c公开用于通过相对于在写入先前页的相邻的存储元件之后的具体页、对 于任一具体存储元件写入该具体存储元件来编程减少浮置栅极与浮置栅极耦合的效应的 非易失性存储器的另一处理。在一个示例实施方式中,非易失性存储元件使用四个数据状 态来存储每个存储元件的两位数据。例如,假设状态E是擦除的状态,且状态A、B和C是编 程的状态。状态E存储数据11。状态A存储数据01。状态B存储数据10。状态C存储数 据00。这是非格雷编码的例子,因为两个位在相邻状态A和B之间改变。还可以使用数据 到物理数据状态的其他编码。每个存储元件存储两页数据。为了引用的目的,数据的这些 页将被称为上部页和下部页,但是可以给它们其他标记。参考状态A,上部页存储位0,且下 部页存储位1。参考状态B,上部页存储位1,且下部页存储位0。参考状态C,两页都存储位 数据0。
该编程处理是两步处理。在第一布中,下部页被编程。如果下部页维持数据1,则 存储元件状态维持在状态E。如果数据要被编程到0,则存储元件的电压的阈值被升高以便 该存储元件被编程到状态B'。因此,图18a示出存储元件从状态E编程到状态B'。状态 B'是中间的状态B;因此,确认点被描述为低于Vvb的Vvb'。在一个实施例中,在存储元件从状态E编程到状态B ‘之后,然后在NAND串中的其 相邻存储元件(WLn+Ι)将相对于其下部页而被编程。例如,往回看图2,在存储元件106的 下部页被编程之后,存储元件104的下部页将被编程。在编程存储元件104之后,如果存储 元件104具有从状态E升高到状态B'升高的阈值电压,浮置栅极与浮置栅极耦合效应将 升高存储元件106的明显阈值电压。这将具有扩宽状态B'的阈值电压分布到被描述为图 18b的阈值电压分布1850的效果。当编程上部页时,阈值电压分布的该明显的扩宽将被修 补。图18c描述了编程上部页的处理。如果存储元件处于擦除状态E且上部页要维持 在1,则存储元件将维持在状态E中。如果存储元件处于状态E且其上部页数据要被编程到 0,则存储元件的阈值电压将被升高以便存储元件处于状态A。如果存储元件过去处于中间 的阈值电压分布1850且上部页数据要维持在1,则存储元件将被编程到最终的状态B。如 果存储元件处于中间的阈值电压分布1850且上部页数据要变成数据0,则存储元件的阈值 电压将被升高以便存储元件处于状态C中。由18a-c描述的处理减少了浮置栅极与浮置栅 极耦合的效应,因为仅相邻存储元件的上部页编程将具有对给定的存储元件的明显阈值电 压的影响。替换的状态编码的例子当上部页数据是1时要从分布1850移动到状态C,且当 上部页数据是0时移动到状态B。虽然图l&i-c提供了针对四个数据状态和两页数据的例子,教导的概念可以被施 加到具有多于或少于四个状态和多于或少于两页的其他实施方式。已经为了例示和描述来呈现了前述的详细描述。不意图穷举或限制本发明到所公 开的精确的形式。在上述教导下,许多修改和变化是可能的。选择所描述的实施例以便最 佳地说明本发明的原理和其实际的应用,以从而使得本领域技术人员能够在各种实施例中 且具有适合于所构思的具体用途的各种修改地最佳地使用本发明。意图本发明的范围被附 于此的权利要求所定义。
权利要求
1.一种用于操作非易失性存储器的方法,包括a)使用第一验证电平(VV-C)减去偏移量(Δ= VV-C-VV-CLL)来对第一组存储元件 (C)进行编程操作,以区分较慢(610)和较快(620)编程的存储元件,同时锁止至少第二组 存储元件(A,B)以不被编程;b)锁止较快编程的存储元件,同时使用第一验证电平(VV-C)来继续对较慢编程存储 元件编程,且同时继续锁止至少第二组存储元件;以及c)锁止较慢编程的存储元件,同时恢复使用第一验证电平(VV-C)对较慢编程存储元 件的编程,且同时使用小于第一验证电平减去偏移量的至少第二验证电平(VV-B)来对至 少第二组存储元件编程。
2.根据权利要求1的方法,还包括根据公共阈值电压分布来编程所述第一组存储元件和所述至少第二组存储元件。
3.根据权利要求1或2的方法,还包括在步骤a)之前对第一和第二组存储元件进行编程操作,包括施加以第一步长(AVl) 递增的编程脉冲,步骤b)包括施加以更高的第二步长递增的编程脉冲。
4.根据权利要求3的方法,其中步骤a)包括施加以第一步长递增的第一组编程脉冲,以及步骤b)包括施加第 二组编程脉冲,所述第二组的第一编程脉冲从第一组编程脉冲的最后的编程脉冲递增多于 第一步长的(Δν4)。
5.根据权利要求4的方法,其中所述第二组的第一编程脉冲从第一组编程脉冲的最后的编程脉冲递增所述偏移量。
6.根据权利要求1-5中的任一的方法,其中所述第一验证电平用于最高数据状态 (C),且至少第二验证电平用于第二最高数据状态(B)。
7.根据权利要求1-6中的任一的方法,其中步骤c)包括使用小于第二验证电平(VV-B)的第三验证电平(VV-A)来编程第三组存 储元件。
8.根据权利要求1-7中的任一的方法,其中步骤a)和b)允许仅对意图被编程到与第一验证电平相关的数据状态(C)的存储元件 进行编程。
9.根据权利要求1-8中的任一的方法,其中当在第一验证电平减去偏移量处已验证了在第一组存储元件中的指定数量或一部分 的存储元件时结束步骤a)。
10.根据权利要求1-8中的任一的方法,其中步骤a)包括施加编程脉冲,所述方法还 包括当已经施加了指定数量的编程脉冲时结束步骤a)。
11.根据权利要求1-8中的任一的方法,其中步骤a)包括施加编程脉冲,所述方法还 包括当在在第一验证电平减去偏移量处已验证了在第一组存储元件中的指定数量或一部 分的存储元件之后施加了指定数量的附加编程脉冲时结束步骤a)。
12.—种非易失性存储器件,包括第一(C)和第二(A,B)组存储元件;以及与所述第一和第二组存储元件通信的至少一个控制电路(1210,1250),所述至少一个 控制电路a)使用第一验证电平(VV-C)减去偏移量(Δ = VV-C-VV-CLL)来对第一组存储 器元件进行编程操作,以区分较慢(610)和较快(620)编程的存储器元件,同时锁止至少第 二组存储器元件以不被编程,b)锁止较快编程的存储元件,同时使用第一验证电平(VV-C) 来继续对较慢编程的存储元件编程,且同时继续锁止至少第二组存储元件,以及c)锁止较 慢编程的存储元件,同时使用第一验证电平来恢复对较慢编程的存储元件编程,且同时使 用小于第一验证电平减去偏移量的至少第二验证电平(VV-B)来对至少第二组存储元件编 程。
13.根据权利要求12的非易失性存储器件,其中在使用第一验证电平减去偏移量来对第一组存储元件进行编程操作之前,所述至 少一个控制电路对第一和第二组存储元件进行编程操作,包括在a)之前施加以第一步 长(AVl)递增的编程脉冲,其中,锁止较快编程的存储元件包括施加由较高的第二步长 (AV5)递增的编程脉冲。
14.根据权利要求13的非易失性存储器件,其中使用第一验证电平减去偏移量来对第一组存储元件进行编程操作,所述至少一个控制 电路施加以第一步长(ΔΜ)递增的第一组编程脉冲,以及锁止较快编程的存储元件,所述 至少一个控制电路施加第二组编程脉冲,所述第二组的第一编程脉冲从第一组编程脉冲的 最后的编程脉冲递增多于第一步长的(AV4)。
15.根据权利要求14的非易失性存储器件,其中所述第二组的第一编程脉冲从第一 组编程脉冲的最后的编程脉冲递增所述偏移量。
全文摘要
在多遍编程处理中在非易失性存储器中减少编程时间。在第一编程遍中,通过编程一系列脉冲编程高状态单元以识别快和慢高状态单元,同时锁止较低状态单元以不被编程。一旦被识别,快高状态单元被临时锁止以不被编程,同时慢高状态单元继续被编程到其最终预定状态。另外,编程脉冲急剧地步增以编程慢高状态单元。在第二编程遍中,快高状态单元与其它较低状态单元一起被编程,直到它们所有都到达其各自的预定状态。相比于在第一编程遍中编程所有高状态单元的方法,实现了时间节省。
文档编号G11C16/10GK102138181SQ200980133552
公开日2011年7月27日 申请日期2009年6月23日 优先权日2008年6月27日
发明者董颖达, 达纳·李, 迪潘舒·达塔 申请人:桑迪士克公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1