首页> 中国专利> 使用动态验证电平对选择栅极晶体管和存储器单元进行编程

使用动态验证电平对选择栅极晶体管和存储器单元进行编程

摘要

通过使用动态验证电压(Vv)来提高对选择栅极晶体管和存储器单元的编程准确度,该动态验证电压(Vv)在编程操作期间从初始电平(Vvinit)增大到最终电平(Vvmx)。快速编程晶体管在慢速编程晶体管之前被锁定以防止被编程,但是快速编程晶体管经历编程干扰,编程干扰使快速编程晶体管的阈值电压在编程操作结束时增大到与慢速编程晶体管相同的电平。为了将存储器单元编程至不同的目标数据状态,初始验证电平(Vvinit)和最终验证电平(Vvmx)之间的偏移可以对于每个数据状态不同。在一种方法中,目标数据状态越低,该偏移越大。动态验证电压(Vv)的增大可以随编程操作的每个随后的编程验证迭代而逐步地更小。该增大可以适应于编程进度而开始或者可以在预定编程验证迭代中开始。

著录项

  • 公开/公告号CN105164755A

    专利类型发明专利

  • 公开/公告日2015-12-16

    原文格式PDF

  • 申请/专利权人 桑迪士克技术有限公司;

    申请/专利号CN201480007201.2

  • 申请日2014-01-29

  • 分类号G11C16/34(20060101);

  • 代理机构11227 北京集佳知识产权代理有限公司;

  • 代理人王萍;陈炜

  • 地址 美国德克萨斯州

  • 入库时间 2023-12-18 12:54:53

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-06-04

    授权

    授权

  • 2016-08-03

    著录事项变更 IPC(主分类):G11C16/34 变更前: 变更后: 申请日:20140129

    著录事项变更

  • 2016-01-13

    实质审查的生效 IPC(主分类):G11C16/34 申请日:20140129

    实质审查的生效

  • 2015-12-16

    公开

    公开

说明书

技术领域

本技术涉及用于对非易失性存储器设备中的晶体管进行编程的技术。

背景技术

在各种电子设备中使用半导体存储器已变得日益普遍。例如,在蜂窝 电话、数字摄影机、个人数字助理、移动计算设备、非移动计算设备以及 其他设备中使用非易失性半导体存储器。闪存存储器属于最普遍形式的非 易失性半导体存储器。使用闪存存储器,可以在一个步骤中擦除整个存储 器阵列的内容。

例如,2DNAND存储器设备是下述一种类型的闪存存储器,在该种 类型的闪存存储器中浮栅位于半导体衬底中的沟道区之上并且与该沟道 区绝缘。该浮栅位于源极区与漏极区之间。控制栅极设置在浮栅之上并且 与浮栅绝缘。由此形成的晶体管的阈值电压(Vth)由浮栅上所保留的电 荷量来控制。亦即,由浮栅上的电荷电平来控制在晶体管被接通之前必须 施加给控制栅极的用于允许该晶体管的源极与漏极之间进行传导的最小 电压量。

近来,已经提出了使用3DNAND堆叠式存储结构的超高密度存储设 备。一个示例是位成本可扩展(BiCS)架构,在BiCS架构中,存储器设 备由交替的导电层和介电层的阵列形成。在这些层中钻有存储器孔以同时 限定很多存储层。然后通过使用适当的材料填充存储器孔来形成NAND 串。直的NAND串在一个存储器孔中延伸,而管状或U形NAND串 (P-BiCS)包括存储器单元的一对竖直列,所述竖直列在两个存储器孔 中延伸并且通过底部背栅而被接合。存储器单元的控制栅极由导电层提 供。

特别是当缩小存储器设备时,需要用于对阈值电压范围进行准确编程 的技术。

附图说明

在不同的附图中,具有相似附图标记的元件指代共同部件。

图1是非易失性存储器设备的功能框图。

图2A描绘了在图1的存储器阵列155中的NAND串的块以及关联 的感测块。

图2B描绘了在包括扁平控制栅极的2D存储器设备实施方式中的图 2A的NAND串的横截面图。

图2C描绘了沿图2B中的线227的横截面图,其示出了具有扁平控 制栅极的实施方式的NAND串。

图3A是描绘了图1的感测块SB0的一个实施方式的框图。

图3B描绘了在示例3D存储器设备中的图2A的NAND串的横截面 图。

图3C描绘了图3B的NAND串沿线294的横截面图。

图3D描绘了在包括图3B的NAND串NS0的3D存储器设备中的示 例电路。

图4A和图4B描绘了同时地写入低页数据和高页数据的示例性一遍 编程操作。

图5A至图5C描绘了在第一遍中写入低页数据而在第二遍中写入高 页数据的两遍编程操作。

图6A至图6D描绘了在第一遍中写入低页数据、在第二遍中写入中 页数据以及在第三遍中写入高页数据的三遍编程操作。

图7A至图7C描绘了在使用固定锁定验证电平的编程操作期间晶体 管的集合的阈值电压分布的变化。

图8A至图8K描绘了在使用动态验证电平的编程操作期间晶体管的 集合的阈值电压分布的变化。

图9A描绘了随编程操作中的编程验证(PV)迭代而变化的位线相邻 的存储器单元具有编程状态的可能性。

图9B描绘了使用动态验证电平的编程操作的流程图。

图10A描绘了根据图9B的步骤922的用于确定晶体管的集合的固有 Vth分布宽度的处理的流程图。

图10B至图10D描绘了在图10A的用于确定固有Vth分布宽度的处 理期间晶体管的集合的阈值电压分布的变化。

图11A描绘了例如在图4A和图4B中描绘的一遍编程操作中使用的 电压。

图11B描绘了随图11A的编程操作中的编程验证迭代而变化的具有 锁定状态的存储器单元的数量。

图11C描绘了随图11A的编程操作中的编程验证迭代而变化的针对 A状态存储器单元、B状态存储器单元和C状态存储器单元的示例动态验 证电压。

图12A描绘了例如在图5A至图5C中描绘的两遍编程操作的第一遍 中使用的电压。

图12B描绘了随图12A的编程操作的第一遍中的编程验证迭代而变 化的具有锁定状态的存储器单元的数量。

图12C描绘了在验证电压逐步更小地增大的情况下随图12A的编程 操作的第一遍中的编程验证迭代而变化的针对A状态存储器单元的示例 动态验证电压。

图12D描绘了在对使用慢速编程模式和快速编程模式的每个编程验 证迭代针对验证电压使用固定步长的情况下,随图12A的编程操作的第 一遍中的编程验证迭代而变化的针对A状态存储器单元的示例动态验证 电压。

图12E描绘了随图12A的编程操作的第一遍中的编程验证迭代而变 化的针对A状态存储器单元的示例动态验证电压,其中,初始验证电平 随固有Vth分布宽度而变化。

图13A描绘了例如在图5A至图5C中描绘的两遍编程操作的第二遍 中使用的电压。

图13B描绘了随图13A的编程操作的第二遍中的编程验证迭代而变 化的具有锁定状态的存储器单元的数量。

图13C描绘了在验证电压逐步更小地增大的情况下,随图13A的编 程操作的第二遍中的编程验证迭代而变化的针对B状态存储器单元和C 状态存储器单元的示例动态验证电压。

图14A描绘了在擦除操作期间选择栅极晶体管的集合的Vth分布的 变化。

图14B描绘了在使用动态验证电平的编程操作期间选择栅极晶体管 的集合的Vth分布的变化。

图15A描绘了用于评估选择栅极晶体管的处理的流程图。

图15B描绘了根据图15A的步骤1508的用于擦除选择栅极晶体管的 处理的流程图。

图16A描绘了在图15B的擦除处理中使用的擦除电压。

图16B描绘了在图15B的擦除处理中使用的验证电压。

图16C描绘了根据图15A的步骤1508的在对SG晶体管的编程操作 中使用的编程电压。

图16D描绘了随图16C的编程操作中的编程验证迭代而变化的具有 锁定状态的SG晶体管的数量。

图16E描绘了在图16C的编程操作中使用的动态验证电压。

具体实施方式

提供了一种用于在非易失性存储器设备中更准确地对选择栅极晶体 管和存储器单元晶体管进行编程的技术。

NAND串通常在每一端处包括选择栅极(SG)晶体管。例如,漏极 侧选择栅极(SGD)晶体管位于NAND串的漏极端,而源极侧选择栅极 (SGS)晶体管位于NAND串的相对的源极端。SG晶体管的阈值电压 (Vth)必须在指定范围内以使存储器设备正确地工作。偶尔,当SG晶 体管是具有存储电荷的能力而因此其Vth能够被调节的类型时,理想地是 对Vth进行评估和调节。例如,例如在3DNAND存储器设备或2D扁平 单元NAND存储器设备中,一些SG晶体管具有电荷捕获层。3DNAND 存储器设备或2D扁平单元NAND存储器设备是电荷捕获SG晶体管的示 例。可以通过对SG晶体管进行擦除然后进行编程来调节Vth。

然而,在编程期间,由于可获得的最大位线电压(Vbl),导致难以完 全地阻止对已达到理想Vth电平的SG晶体管的编程。在编程期间,对于 要从编程状态转换成阻止SG晶体管被进一步编程的锁定状态的SG晶体 管,通过将Vbl设定为存储器设备的电源电平(Vdd)(锁定电平)例如 2V至3V来施加编程脉冲。然而,继续向SG晶体管的集合施加了高于该 电平的编程电压例如10V或更高电压以继续对其余SG晶体管进行编程。 因此,所有SG晶体管处于导电状态,使得不能够使锁定的SG晶体管的 沟道区升压。因为阻止进一步对锁定的SG晶体管编程的能力被限制,所 以锁定的SG晶体管继续被微弱地编程并且其Vth可能继续增大而超过理 想Vth电平。这是下述类型的编程干扰,其通过对Vth分布提供上尾而 使SG晶体管的集合的Vth分布变宽。

在例如对2DNAND的存储器单元进行编程期间发生类似情形。由于 与其Vth在编程期间继续增大的位线相邻单元的浮栅的电容耦合,导致已 达到理想Vth的存储器单元的Vth可能在编程操作的剩余部分中继续增 大。这也是一种类型的编程干扰。在存储器单元被锁定的时刻与编程操作 完成的时刻之间,更早锁定的存储器单元会经历更多电容耦合并且因此经 历更大的Vth上移。更迟锁定的存储器单元会经历更少电容耦合并且因此 经历更小的Vth上移。

本文中提供的技术通过使用动态验证电平使得能够对电荷存储晶体 管例如SG晶体管和存储器单元进行更准确地编程。动态验证电平是在编 程操作期间例如通过从初始电平逐步地增大到最终电平而变化的验证电 平。验证电平的变化使得经受最多编程干扰的快速编程晶体管能够锁定在 与慢速编程晶体管相比更低的Vth。快速编程晶体管经历的编程干扰使得 在编程操作完成时其Vth达到与慢速编程晶体管相同的电平。

通过对验证电平的增大以及对初始电平进行最优化,可以实现更窄的 Vth分布。增大的验证电平是锁定验证电平,例如,用于确定是否锁定晶 体管以防止被进一步编程的验证电平。该技术可以与慢速编程模式和快速 编程模式兼容,在这种情况下,锁定验证电平是慢速编程模式的验证电平, 作为比锁定验证电平向下偏移了例如固定电压的验证电平是快速编程模 式的验证电平。此外,与例如通过使用小编程脉冲步长来收紧Vth分布的 其他方法相比,未减少编程时间。

接下来论述可以使用该编程技术的示例存储器设备。

图1是非易失性存储器设备的功能框图。图1是使用单行/列解码器 和读/写电路的非易失性存储系统的框图。根据一个实施方式,存储器设 备190具有用于对一页存储器单元(例如,非易失性存储元件)并行地读 取和编程的读/写电路。存储器管芯198包括存储器单元的二维(2D)存 储器阵列155、控制电路110以及读/写电路165。

在一些实施方式中,存储器单元的阵列可以是三维(3D)的。存储 器阵列155通过字线经由行解码器130以及通过位线经由列解码器160可 寻址。读/写电路165包括多个感测块SB0、SB1、……、SBn-1并且使得 能够对一页存储器单元并行地读取或编程。通常,控制器150与一个或更 多个存储器管芯198包括在同一存储器设备190(例如,可移除存储卡) 中。命令和数据经由总线120在主机与控制器150之间以及经由线路118 在控制器与一个或更多个存储器管芯198之间传输。

控制电路110与读/写电路165配合以对存储器阵列155执行存储操 作,并且控制电路110包括状态机112、片上地址解码器114以及电力控 制模块116。状态机112提供对存储操作的芯片级控制。片上地址解码器 114提供由主机或存储器控制器使用的地址与由解码器130和160使用的 硬件地址之间的地址接口。电力控制模块116控制在存储操作期间被供应 至字线和位线的电力和电压。如以下进一步论述的那样,存储器113可以 存储用于由状态机使用的原始写入数据、经修改的写入数据以及状态位。

在一些实现方式中,可以将图1的部件中的一些部件进行组合。在各 种设计中,可以将除存储器阵列155以外的部件中的一个或更多个部件 (单独地或组合地)视作管理或控制电路。例如,一个或更多个控制电路 可以包括下述中的任一项或其组合:控制电路110、状态机112、解码器 114/160、电力控制模块116、感测块SB0、SB1、……、SBn-1(包括图3 中的处理器192和管理电路MC0)、读/写电路165、控制器150等。结合 图3A进一步论述了感测块SB0。

在另一实施方式中,非易失性存储系统使用双行/列解码器以及读/写 电路。各个外围电路对存储器阵列155的访问是在阵列的相对侧以对称方 式进行,以使得每侧的访问线路和电路的密度降低一半。从而,将行解码 器分成两个行解码器,将列解码器分成两个列解码器。类似地,将读/写 电路分成从阵列155的底部连接至位线的读/写电路以及从阵列155的顶 部连接至位线的读/写电路。以这种方式,将读/写模块的密度基本降低一 半。

该图可以适用于包括2DNAND存储器设备和3DNAND存储器设备 的不同类型的存储器。

图2A描绘了在图1的存储器阵列155中的NAND串的块以及关联 的感测块SB0至SB2。存储器阵列可以包括许多块。示例块200包括多 个NAND串NS0至NS11以及在块之间共享的相应的位线例如BL0至 BL11。每个NAND串在一端处连接至漏极选择栅极(SGD)晶体管,并 且SGD晶体管的控制栅极经由公共SGD线连接。每个NAND串在其另 一端处连接至源极选择栅极(SGS)晶体管,SGS晶体管又连接至公共源 极线220。例如,NS0包括SGS晶体管206和SGD晶体管208。示例存 储器单元230、240和250分别位于NS0至NS2中并且连接至WL3。作 为示例,存储器单元230和250是存储器单元240的位线相邻的存储器单 元。沿WL3的其他示例存储器单元是分别位于N3至NS11中的211至 219。例如,WL3可以是被选中用于编程的选中的字线,上述示例存储器 单元可以是被选中用于编程的选中的存储器单元。连接至WL3的其他存 储器单元也可以是选中的存储器单元。64条字线例如WL0至WL63在源 极侧选择栅极与漏极侧选择栅极之间延伸。

在一种方法中,针对一组NAND串例如四个NAND串提供一个感测 块。例如,SB0与BL0至BL3关联,SB1与BL4至BL7关联,以及SB2 与BL8至BL11关联。每个感测块包括存储器控制器,例如分别位于SB0、 SB1和SB2中的MC0、MC1和MC2。每个感测块还包括用于每个NAND 串的感测模块。分别在SB0、SB1和SB2中描绘了代表性感测模块SM0、 SM1和SM2。结合图3A进一步论述了SB0和MC0。

除NAND闪存存储器以外,还可以使用其他类型的非易失性存储器。 例如,在闪存EEPROM系统中使用的另一种类型的存储器单元利用非导 电介电材料代替导电的浮栅,以便以非易失方式存储电荷。由氧化硅、氮 化硅以及氧化硅(“ONO”)形成的三层介电层在存储器单元的沟道之上, 并且夹在导电的控制栅极与半导体衬底表面之间。通过将电子从单元沟道 注入到氮化物中来对该单元编程,在氮化物中,这些电子被俘获并且被存 储在受限区域中。然后这里所存储的电荷以可检测的方式改变该单元沟道 的一部分的Vth。通过将热空穴注入到氮化物中来擦除该单元。可以以下 述分裂栅配置来设置类似的单元,在所述分裂栅配置中,掺杂的多晶硅栅 极在存储器单元沟道的一部分之上延伸以形成分离的选择晶体管。另一种 类型的存储器在NAND架构中使用金属(导电)电荷存储器单元。

在另一方法中,使用NROM单元。例如,在每个NROM单元中存 储两位,其中ONO介电层延伸跨越源极扩散与漏极扩散之间的沟道。一 个数据位的电荷位于与漏极相邻的介电层中,并且其他数据位的电荷位于 与源极相邻的介电层中。通过分别读取在电介质中空间上分离的电荷存储 区域的二进制状态来获得多状态的数据存储。还已知其他类型的非易失性 存储器。

图2B描绘了在包括扁平控制栅极的2D存储器设备实施方式中的图 2A的NAND串的横截面图。位线或NAND串方向进入页面,字线方向 从左向右。作为示例,字线228例如WL3延伸跨越NAND串NS0、NS1 和NS2,NS0、NS1和NS2包括相应的沟道区238、248和258。描绘了 IPD层229。NS0中的存储器单元234包括控制栅极235、电荷捕获层236、 多晶硅层237以及沟道区238。NS1中的存储器单元244包括控制栅极 245、电荷捕获层246、多晶硅层247以及沟道区248。NS2中的存储器单 元254包括控制栅极255、电荷捕获层256、多晶硅层257以及沟道区258。 控制栅极是字线的部分。在图2C中提供了沿线227的横截面图。

图2C描绘了沿图2B中的线227的横截面图,其示出了具有扁平控 制栅极的实施方式的NAND串。NAND串280例如可以表示图2A中的 NS0。NAND串280包括SGS晶体管281、示例存储器单元282、283、……、 284和285以及SGD晶体管286。控制栅极层287、IPD层288、电荷捕 获层289、多晶硅层290和隧道氧化物层291可以存在于选择栅极晶体管 和存储器单元中的每一个中。例如,控制栅极层可以是多晶硅,而隧道氧 化物层可以是氧化硅。IPD层可以是高k介电材料例如AlOx或HfOx的 堆叠,这些材料辅助增大控制栅极层与电荷捕获层或控制栅极层与电荷存 储层之间的耦合率。例如,电荷捕获层可以是氮化硅和氧化硅的混合。浮 栅存储器单元与扁平存储器单元之间的差异在于电荷存储层的高度。典型 浮栅高度可以是大约100nm,而电荷捕获层可以小到3nm,多晶硅层可 以是大约5nm。

图3A是描绘了图1的感测块SB0的一个实施方式的框图。单独的感 测块SB0被分割成称为感测模块(例如,SM0)或者感测放大器的一个 或更多个核心部分以及称为管理电路(例如,MC0)的公共部分。在一 个实施方式中,存在针对每个位线的单独的感测模块以及针对多个例如四 个或八个感测模块的集合的公共管理电路。组中的感测模块中的每个感测 模块经由数据总线172与关联的管理电路通信。从而,存在与存储器单元 的集合的感测模块通信的一个或更多个管理电路。

感测模块SM0包括感测电路170,该感测电路170通过确定连接的 位线中的传导电流高于还是低于预定阈值电平来进行感测。SM0包括位 线锁存器182,该位线锁存器182用于对连接的位线设定电压条件。例如, 锁存在位线锁存器182中的预定状态会导致连接的位线被拉到指定编程 阻止(例如,1.5V至3V)的状态。作为示例,标记=0可以阻止编程(状 态=锁定)。而标记=1允许编程(状态=编程)。

管理电路MC0包括处理器192、数据锁存器的四个示例集合194至 197以及耦接在数据锁存器的集合与数据总线120之间的I/O接口196。 可以针对每个感测模块提供数据锁存器的一个集合,并且可以针对每个集 合提供由LP、UP和QPW1标识的数据锁存器。在一些情况下,可以使 用附加的数据锁存器。在另外的情况下,可以使用更少的数据锁存器。 LP存储针对低页数据的位,而UP存储针对高页数据的位。这一点是在 每存储器单元四级或两位的存储器设备中。当存储器单元的Vth处于低验 证电平与高验证电平之间时,例如,当存储器单元经历慢速编程时,在锁 存器的每个集合中,可以提供其中每个数据锁存器存储一位数据的一个或 更多个附加数据锁存器来保持对施加至存储器单元的编程脉冲的计数。

处理器192进行计算,例如以确定存储在感测的存储器单元中的数据 并且将所确定的数据存储在数据锁存器的集合中。数据锁存器194至197 的每个集合用于存储在读取操作期间处理器192确定的数据位,并且用于 存储在编程操作期间从数据总线120输入的数据位,所述输入的数据位表 示要编程到存储器中的写入数据。I/O接口196提供数据锁存器194至197 与数据总线120之间的接口。

在读取期间,系统的操作在状态机112的控制下,状态机112控制对 寻址的存储器单元供应不同的控制栅极电压。随着控制栅极电压在与存储 器支持的各种存储器状态对应的各预定控制栅极电压间进行阶跃,感测模 块可以在这些电压之一处跳闸,并且对应的输出从感测模块经由总线172 被提供给处理器192。就此,通过考虑感测模块的一个或更多个跳闸事件 以及关于从状态机经由输入线193施加的控制栅极电压的信息,处理器 192确定作为结果的存储器状态。然后处理器192计算针对该存储器状态 的二进制编码,并且将作为结果的数据位存储到数据锁存器194至197 中。在管理电路MC0的另一实施方式中,位线锁存器182充当双重用途, 既充当用于锁存感测模块的输出的锁存器,又充当如上所述的位线锁存 器。

一些实现方式可以包括多个处理器192。在一个实施方式中,每个处 理器192包括输出线(未描绘),输出线中的每个输出线被一起有线“或”。 在一些实施方式中,输出线在连接到有线“或”线之前被反相。这样的配 置使得在编程验证处理期间快速确定编程处理何时完成,这是因为接收有 线“或”的状态机可以确定正被编程的所有位何时都达到期望电平。例如, 当每个位达到其期望电平时,该位的逻辑0将被发送到有线“或”线(或 者数据1被反相)。当所有位输出数据0(或者数据1被反相)时,那么 状态机就知道要终止编程处理。因为每个处理器与八个感测模块通信,所 以状态机需要读取八次有线“或”线,或者将逻辑添加至处理器192以累 积关联的位线的结果,以使得状态机只需读取一次有线“或”线。类似地, 通过正确地选择逻辑电平,全局状态机可以检测第一位线何时改变其状态 并且可以相应地改变算法。

在编程或验证操作中,待被编程的数据(写入数据)从数据总线120 存储在数据锁存器194至197的集合中。在状态机控制下的编程操作包括 施加至寻址的存储器单元的控制栅极的一系列编程电压脉冲。每个编程脉 冲之后是读回(验证),以确定存储器单元是否已被编程至理想存储器状 态。在一些情况下,处理器192监测相对于理想存储器状态的读回存储器 状态。当两个状态一致时,处理器192将位线锁存器182设定为使位线被 拉到指定编程阻止的状态。这阻止了被耦接至位线的存储器单元被进一步 编程,即使在该存储器单元的控制栅极上出现编程脉冲也是如此。在其他 实施方式中,处理器最初加载位线锁存器182并且在验证处理期间感测电 路将其设定为阻止值。

数据锁存器194至197的每个集合可以实现为针对每个感测模块的数 据锁存器的堆叠。在一个实施方式中,每个感测模块具有三个数据锁存器。 在一些实现方式中,将数据锁存器实现为移位寄存器,以使得将存储在其 中的并行数据转换成针对数据总线120的串行数据,以及将针对数据总线 120的串行数据转换成存储在其中的并行数据。与存储器单元的读/写块对 应的所有数据锁存器可以链接在一起以形成块移位寄存器,以使得可以通 过串行传输来输入或输出数据块。特定地,将成排的读/写模块适配成使 得其数据锁存器的集合中的每个数据锁存器依次将数据移入或移出数据 总线,如同它们是整个读/写块的移位寄存器的一部分一样。

数据锁存器识别在编程操作中关联的存储器单元何时达到特定里程 碑(milepost)。例如,锁存器可以识别存储器单元的Vth低于特定验证 电平。数据锁存器指示存储器单元当前是否存储来自一页数据中的一个或 更多个位。当使用低页位和高页位时(例如,在每个存储器单元两位的情 况下),LP锁存器可以用于存储低页数据,并且当低页位存储在关联存储 器单元中时LP锁存器翻转(例如,从0至1)。UP锁存器可以用于存储 高页数据,并且当高页位存储在关联的存储器单元中时UP锁存器翻转。 当关联的存储器单元完成编程例如当其Vth超过目标或锁定验证电平 Vv_lo时发生位的翻转。当使用低页位、中页位和高页位时(例如,在每 个存储器单元三位的存储器的情况下),还使用MP(中页)数据。当中 页位存储在关联的存储器单元中时MP翻转。例如,在图6B至图6D中, 第一位(从右到左)是低页位,第二位是中页位以及第三位是高页位。

图3B描绘了在示例3D存储器设备中的图2A的NAND串的横截面 图。堆叠式3D非易失性存储器设备包括交替的导电层和绝缘层,在交替 的导电层和绝缘层中形成选择栅极和存储器单元。导电层是漏极侧的 WL0D、WL3D和SGS以及源极侧的WL0S、WL3S和SGD,绝缘层是 D0至D5。这样的存储器设备的块通常划分成多个子块用于擦除和编程操 作,其中所有子块共享相同的字线(WL)偏压、位线(BL)偏压和源极 线(SL)偏压,但是具有单独的选择栅极(SGS和SGD)偏压。此外, NAND串可以是直的或者可以如所描绘的那样是U形。作为示例,NAND 串NS0可以表示图2A的NAND串中之一。

NAND串具有漏极侧(DS)和源极侧(SS),漏极侧(DS)和源极 侧(SS)被填充绝缘材料的缝隙207隔开并且通过背栅(BG)连接,背 栅(BG)可以是绝缘层292中的导电膜。NAND串的漏极端(DE)与位 线通信,NAND串的源极端(SE)与源极线通信。

NAND串的每侧具有列,每列包括沿列的侧壁沉积的多个层。这些 层可以包括例如使用原子层沉积技术而沉积的氧化物-氮化物-氧化物层 和多晶硅层。例如,可以沉积块氧化物(BOX)作为层296,可以沉积作 为电荷俘获层(CTL)的氮化物例如SiN作为层297,可以沉积隧道氧化 物(TNL)作为层298,可以沉积多晶硅体或沟道(CH)作为层299,以 及可以沉积型芯填料电介质作为区域300。

选择栅极SGD0和SGS0分别形成在SGD层和SGS层中。存储器单 元M00和M10分别形成在WL0D和WL0S中,存储器单元M01和M11 分别形成在WL1D和WL1S中,存储器单元M02和M12分别形成在 WL2D和WL2S中,以及存储器单元M03和M13分别形成在WL3D和 WL3S中。

在对存储器单元进行编程时,将电子存储在CTL的与存储器单元关 联的部分中。例如,在CTL297中用“-”符号表示电子。这些电子从沟 道通过TNL被汲取到CTL中。存储器单元的阈值电压与存储的电荷量成 比例地增大。可以以类似方式对选择栅极晶体管进行编程。

在擦除操作中,由于SGD晶体管的漏极侧处的栅极感应漏极泄漏 (GIDL)导致NAND串的沟道中的电压升高。然后将存储器单元层的电 压压低至低电平例如0V以产生使得空穴从存储器单元的本体注入到 CTL的跨TNL的电场,从而导致朝向擦除验证电平Vv-er的大的Vth下 移。这一过程可以以连续的擦除验证迭代被重复。未选中的字线保持在高 电平以使得跨TNL的电场相对较小,并且不发生或发生很小的空穴隧穿。 因此,未选中的字线的存储器单元不会被擦除。可以以类似方式对选择栅 极晶体管进行擦除。

图3C描绘了图3B的NAND串沿线294的横截面图。在一种可能的 方法中,除呈圆柱形的型芯填料之外的每层都是环形的。

图3D描绘了在包括图3B的NAND串NS0的3D存储器设备中的示 例电路。NAND串NS0、NS1、NS2和NS3与BL-SB0(位线子块)中的 位线BL0(一条位线)连通,以及NAND串NS0A、NS1A、NS2A和NS3A 与BL-SB1(另一位线子块)中的位线BL1(另一位线)连通。填满的圆 圈表示在NAND串的漏极侧上的SG晶体管的控制栅极和存储器单元。 未填充的圆圈表示在NAND串的源极侧上的SG晶体管的控制栅极和存 储器单元。

例如,NS0具有:包括存储器单元M00、M01、M02和M03以及SGD 晶体管SGD0的漏极侧;以及包括存储器单元M10、M11、M12和M13 以及SGS晶体管SGS0的源极侧。NS1具有:包括存储器单元M30、M31、 M32和M33以及SGD晶体管SGD1的漏极侧;以及包括存储器单元M20、 M21、M22和M23以及SGS晶体管SGS1的源极侧。NS2具有:包括存 储器单元M40、M41、M42和M43以及SGD晶体管SGD2的漏极侧; 以及包括存储器单元M50、M51、M52和M53以及SGS晶体管SGS2 的源极侧。NS3具有:包括存储器单元M70、M71、M72和M73以及SGD 晶体管SGD3的漏极侧;以及包括存储器单元M60、M61、M62和M63 以及SGS晶体管SGS3的源极侧。

类似地,NS0A具有:包括存储器单元M00A、M01A、M02A和M03A 以及SGD晶体管SGD0A的漏极侧;以及包括存储器单元M10A、M11A、 M12A和M13A以及SGS晶体管SGS0A的源极侧。NS1A具有:包括存 储器单元M30A、M31A、M32A和M33A以及SGD晶体管SGD1A的漏 极侧;以及包括存储器单元M20A、M21A、M22A和M23A以及SGS晶 体管SGS1A的源极侧。NS2A具有:包括存储器单元M40A、M41A、 M42A和M43A以及SGD晶体管SGD2A的漏极侧;以及包括存储器单 元M50A、M51A、M52A和M53A以及SGS晶体管SGS2A的源极侧。 NS3A具有:包括存储器单元M70A、M71A、M72A和M73A以及SGD 晶体管SGD3A的漏极侧;以及包括存储器单元M60A、M61A、M62A 和M63A以及SGS晶体管SGS3A的源极侧。

每个NAND串具有背栅(用于NS0的BG0、用于NS1的BG1、用 于NS2的BG2、用于NS3的BG3、用于NS0A的BG0A、用于NS1A的 BG1A、用于NS2A的BG2A、用于NS3A的BG3A)。在电路302中的所 有背栅中的控制栅极可以彼此连接。

在一种方法中,每个SGS晶体管的源极侧连接至电路302的公共源 极线。

在电路302的每级,漏极侧存储器单元的控制栅极通过公共字线层彼 此连接。例如,M03、M03A、M33、M33A、M43、M43A、M73和M73A 的控制栅极通过与图3B一致的字线层WL3D连接。M13、M13A、M23、 M23A、M53、M53A、M63和M63A的控制栅极通过字线层WL3S连接。

M02、M02A、M32、M32A、M42、M42A、M72和M72A的控制 栅极通过字线层WL2D连接。M12、M12A、M22、M22A、M52、M52A、 M62和M62A的控制栅极通过字线层WL2S连接。

M01、M01A、M31、M31A、M41、M41A、M71和M71A的控制 栅极通过字线层WL1D连接。M11、M11A、M21、M21A、M51、M51A、 M61和M61A的控制栅极通过字线层WL1S连接。

M00、M00A、M30、M30A、M40、M40A、M70和M70A的控制 栅极通过字线层WL0D连接。M10、M10A、M20、M20A、M50、M50A、 M60和M60A的控制栅极通过字线层WL0S连接。

此外,SGD晶体管的控制栅极在相应的SGD线子集中彼此连接。例 如,SGD0的控制栅极与SGD0A的控制栅极相连接,SGD1的控制栅极 与SGD1A的控制栅极相连接,SGD2的控制栅极与SGD2A的控制栅极 相连接,以及SGD3的控制栅极与SGD3A的控制栅极相连接。

SGS晶体管的控制栅极在x方向上彼此连接。例如,SGS0的控制栅 极与SGS0A的控制栅极相连接,SGS1的控制栅极与SGS1A的控制栅极 相连接,SGS2的控制栅极与SGS2A的控制栅极相连接,以及SGS3的控 制栅极与SGS3A的控制栅极相连接。在编程操作中,可以以不同方式对 存储器单元进行编程。在一种方法中,可以在公共编程操作中对位线子集 (或多个位线子集)中的存储器单元进行编程。类似地,可以在SGD线 子集中单独地或同时地对SG晶体管进行编程。

图4A和图4B描绘了同时地写入低页数据和高页数据的示例性一遍 编程操作。一遍编程或者编程操作通常意在包括下述编程验证操作的序 列,所述编程验证操作的序列被进行直到选中的存储器单元的集合的阈值 电压达到相应的目标数据状态的一个或更多个相应的验证电平为止。存储 器单元中的一些存储器单元未被编程并且保持处于擦除状态,而其他存储 器单元被编程至更高目标数据状态。

针对每个存储器单元存储两位数据的情况提供了示例Vth分布。每 个图在x轴上描绘Vth并且在y轴上描绘Vth分布中的存储器单元的数 量或存储器单元群体。一位表示LP数据,另一位表示UP数据。例如, 11指代UP=1并且LP=1,01指代UP=0并且LP=1,00指代UP=0并且 LP=0,以及10指代UP=1并且LP=0。针对擦除(Er)状态存储器单元 提供了第一Vth分布400。Vth分布404表示当存储器单元的Vth超过验 证电平Vva_mx时存储器单元达到的目标数据状态A,Vth分布406表示 当存储器单元的Vth超过验证电平Vvb_mx时存储器单元达到的目标数 据状态B,以及Vth分布408表示当存储器单元的Vth超过验证电平 Vvc_mx时存储器单元达到的目标数据状态C。

使用慢速编程模式的编程选择可以称为“快速遍写入”(QPW)技术。 在多遍编程技术的一遍或更多遍中可以独立地使用QPW。尽管如此,通 常当准确度最重要时在最后遍编程中使用QPW已足够。当使用QPW时, 低验证电平(VvaL、VvbL或VvcL)被定义为使得存储器单元在其Vth 处于相应的目标数据状态的低验证电平与高锁定验证电平之间时(例如, 通过升高在编程脉冲期间施加的关联的位线电压)进入慢速编程模式。具 体地,当验证测试确定出存储器单元的Vth超过与存储器单元的目标数据 状态关联的低验证电平时,针对该存储器单元开始慢速编程模式。随后, 当验证测试确定出存储器单元的Vth超过与存储器单元的目标数据状态 关联的高验证电平时,该存储器单元被锁定以防止进一步编程。低验证电 平可以与动态锁定验证电平一致地动态变化。示例参见图12D。

在一些情况下,对少于所有目标数据状态的目标数据状态使用QPW。 例如,对于最高数据状态(例如,该示例中的C状态)来说可以接受较 宽Vth分布。可以通过避免对最高数据状态使用QPW来减小总编程时间, 这是因为可以节省感测Vth是否超过VvcL所花费的时间。通常,可以基 于下述测试来将QPW用于选中的目标数据状态,该测试识别针对其 QPW产生最大收益的目标数据状态。

处于分布之间的读取参考电压用于从存储器单元读取数据。通过测试 给定存储器单元的Vth高于还是低于读取参考电压中的一个或更多个读 取参考电压,系统可以确定存储器单元代表的数据状态。

图5A至图5C描绘了使用两位四级存储器单元在第一遍中写入低页 数据而在第二遍中写入高页数据的两遍编程操作。可以一次一个逻辑页来 进行编程,其中低页之后是高页。最初,所有存储器单元处于Er状态, 由图5A中的分布500表示。

图5B描绘了对低页数据的编程。如果低页位=1,则关联的存储器单 元保持处于分布500中并且用x1表示该数据,其中,x是尚未获知的高 页位。如果低页位=0,则使用验证电平Vv1_int将该存储器单元编程至分 布502所表示的较高Vth,其中,分布502是过渡分布(INT)。用x0表 示这些存储器单元的数据。过渡分布可以相对较宽,这是因为过渡分布并 不表示数据状态。

图5C描绘了对高页数据的编程。如果UP/LP=11,则处于分布500 中的关联的存储器单元保持处于分布500并且存储数据位11。如果 UP/LP=01,则将处于分布500中的存储器单元编程至分布504(状态A), 并且当Vth处于VvaL与Vva_mx之间时可以使用慢速编程模式。如果 UP/LP=10,则将处于分布502中的存储器单元编程至分布508(状态C) 并且当Vth处于VvcL与Vvc_mx之间时可以使用慢速编程模式。如果 UP/LP=00,则将处于分布502中的存储器单元编程至分布506(状态B) 并且当Vth处于VvbL与Vvb_mx之间时可以使用慢速编程模式。

编程可以类似地扩展到每个存储器单元三位或更多位。例如,图6A 至图6D描绘了在第一遍中写入低页数据、在第二遍中写入中页数据以及 在第三遍中写入高页数据的三遍编程操作。

描绘了对三位八级存储器单元的低页、中页和高页的编程。除Er以 外,还使用了七个编程数据状态A至G,以用于一共八个状态。最初, 所有存储器单元处于Er状态,用分布600表示。在图6B中对低页进行 编程。如果LP=1,则处于分布600中的存储器单元保持处于该分布。如 果LP=0,则使用Vv1将处于分布600中的存储器单元编程至过渡分布 602。在图6C中对中页进行编程。如果MP=1,则处于分布600中的存储 器单元保持处于该分布,并且使用验证电平Vv4将处于分布602中的存 储器单元编程至过渡分布608。如果MP=0,则使用验证电平Vv2将处于 分布600中的存储器单元编程至过渡分布604,并且使用验证电平Vv3将 处于分布602中的存储器单元编程至过渡分布606。

在图6D中对高页进行编程。这遍使用QPW。如果UP=1,则处于分 布600中的存储器单元保持处于该分布,将处于分布604中的存储器单元 编程至分布614(状态C),将处于分布606中的存储器单元编程至分布 616(状态D),以及将处于分布608中的存储器单元编程至分布622(状 态G)。如果UP=0,则将处于分布600中的存储器单元编程至分布610 (状态A),将处于分布604中的存储器单元编程至分布612(状态B), 将处于分布606中的存储器单元编程至分布618(状态E),将处于分布 608中的存储器单元编程至分布620(状态F)。

使用每个单元四位(16级)进行编程可以类似地涉及四页。此外, 当对多页数据进行编程时,可以使用来回字线顺序来减小源自电容耦合的 潜在干扰。

图7A至图7C描绘了在使用固定锁定验证电平的编程操作期间晶体 管的集合的阈值电压分布的变化。晶体管的集合具有初始分布700(例如 图5B中的Er状态或INT状态或者图6C中的状态604、606和608)。在 编程操作期间,Vth分布增大到分布701,分布701表示晶体管的集合的 固有Vth分布。如分布702(图7B)所表示,Vth分布进一步增大直到 最快速晶体管中的一些晶体管达到锁定验证电平Vvv_lo为止,Vvv_lo在 该示例中固定。Vth分布进一步增大直到晶体管中的所有或几乎所有晶体 管达到Vvv_lo为止(图7C中的分布703)。如所提及的那样,由于编程 干扰,快速编程晶体管的阈值电压可能在晶体管被锁定以防止被进一步编 程之后增大,由此使最终Vth分布变宽。为了解决该问题,可以使用动态 或可调节验证电平。

图8A至图8K描绘了在使用动态验证电平的编程操作期间晶体管的 集合的阈值电压分布的变化。在图8A中,晶体管的集合具有初始分布800 (例如图5B中的Er状态或INT状态或者图6C中的状态604、606和 608)。在编程操作期间,进行一个或更多个初始编程验证迭代,使得Vth 分布800增大到分布801,分布801表示晶体管的集合的固有Vth分布。 Vth分布低于初始验证电平Vv_init和最大容许验证电平Vv_mx。在对SG 晶体管进行编程时,Vv_init=Vvsg_init并且Vv_mx=Vvsg_mx(参见图 16E)。在对存储器单元晶体管进行编程时,Vv_init和Vv_mx可以针对不 同目标数据状态具有不同值。对于A状态、B状态和C状态,Vv_init分 别等于Vva_init,Vvb_init和Vvc_init,并且Vv_mx分别等于Vva_mx、 Vvb_mx和Vvc_mx(参见图11C和图12C)。Vv_lo表示在编程操作期间 从Vv_init增大到Vv_mx的动态验证电平。

在一种方法中,对于编程操作的一个或更多个初始编程验证迭代 Vv_lo=Vv_init。随后,在编程操作的数个编程验证迭代中Vv_lo被阶跃 式升高。随后,所述数个编程验证迭代终结,并且其中Vv_lo被设定为 Vv_mx的一个或更多个最终编程验证迭代开始。例如,在图8B中,达到 具有分布部分802和803的Vth分布。部分803表示其Vth达到了Vv_lo 的当前值的最快速编程晶体管。这些晶体管的状态在其余编程操作/遍中 从编程状态改变成锁定状态。如图8G中所示,部分803经历编程干扰, 从而在编程操作结束时部分803增大到分布804。分布部分802表示其 Vth尚未达到Vv_lo的当前值的其余晶体管并且这些晶体管继续用编程状 态进行编程。

一种选择是当正被编程至公共验证电平(Vv_mx)的晶体管的指定部 分(例如,10%)达到关联的初始验证电平(Vv_init)时开始对Vv_lo 阶跃式升高。在一种方法中,可以在编程操作的每个连续的编程验证迭代 中对Vv_lo阶跃式升高。此外,阶跃式升高的量可以固定或变化。在一种 方法中,使用逐步更小的步长。

在图8C中,分布802增大到提供了分布部分805和806。部分806 表示其Vth达到Vv_lo的当前值的晶体管。这些晶体管的状态在其余编程 操作/遍中从编程状态改变成锁定状态。如图8H中所示,部分806经历编 程干扰,从而在编程操作结束时增大到分布807。分布部分805表示其 Vth尚未达到Vv_lo的当前值的其余晶体管并且这些晶体管使用编程状态 继续编程。

在图8D中,分布805增大到提供了分布部分808和809。部分809 表示其Vth达到Vv_lo的当前值的晶体管。这些晶体管的状态在其余编程 操作/遍中从编程状态改变成锁定状态。如图8I中所示,部分809经历编 程干扰,从而在编程操作结束时增大到分布810。分布部分808表示其 Vth尚未达到Vv_lo的当前值的其余晶体管并且这些晶体管使用编程状态 继续编程。

在图8E中,分布808增大到提供了分布部分811和812。部分812 表示其Vth达到Vv_lo的当前值的晶体管。这些晶体管的状态在其余编程 操作/遍中从编程状态改变成锁定状态。如图8J中所示,部分812可能经 历少量编程干扰,从而在编程操作结束时增大到分布813。分布部分811 表示其Vth尚未达到Vv_lo的当前值的其余晶体管并且这些晶体管使用编 程状态继续编程。

在图8F中,分布811增大到提供了分布813,分布813表示其Vth 达到Vv_lo的当前值的晶体管。这些其余晶体管的状态在其余编程操作/ 遍中从编程状态改变成锁定状态。

图8K表示最终Vth分布815,最终Vth分布815是图8F的分布814、 图8G的分布804、图8H的分布807、图8I的分布810以及图8J的分布 813的合并。由于使用了动态验证电平,导致最终Vth分布815与图7C 中的分布相比更窄,动态验证电平抵消了编程干扰的影响。事实上,编程 干扰被用作实现理想窄Vth分布的工具。从而,对于晶体管中的至少一些 晶体管,在将编程状态改变成锁定状态之后阈值电压增大,使得晶体管的 集合的快速编程晶体管的阈值电压更接近晶体管的集合的慢速编程晶体 管的阈值电压。

图9A描绘了随编程操作中的编程验证(PV)迭代而变化的位线相邻 的存储器单元具有编程状态的可能性。在给定编程验证迭代中,一些存储 器单元具有编程状态而另外的存储器单元具有锁定状态。此外,当使用慢 速编程模式时,例如,将Vbl升高以放慢编程速率,编程状态还可以指示 慢速编程模式在起作用。或者,在Vbl=0V的情况下,编程状态可以指示 快速编程模式在起作用。如果考虑被编程至相同Vth电平(相同目标数据 状态)的存储器单元中的编程干扰,则与慢速编程存储器单元相比,快速 编程存储器单元相对更早达到锁定状态并且随后更可能经历源自位线相 邻的存储器单元(在相邻位线上并且与对象存储器单元位于相同字线上的 存储器单元)的编程干扰。例如,在图2A中,存储器单元230和250是 存储器单元240的位线相邻的存储器单元。

实际上,在编程操作中可以将存储器单元编程至不同Vth电平,在 这种情况下,对于被编程至更低数据状态的存储器单元,电容耦合的可能 性以及电容耦合的量会更大。

例如,图9A示出了对数形式的可能性对于低编程验证迭代处于最大 级,然后在更高编程验证迭代处降低。如所提及的那样,具有锁定状态的 存储器单元经历了来自具有该编程状态的位线相邻的存储器单元的为电 容耦合形式的编程干扰,并且因此具有增大的Vth。给定编程验证迭代中 的电容耦合的量随位线相邻的存储器单元的Vth的增加量和耦合率而变 化。通常,存储器单元的集合的目标数据状态被随机地分布。在存在擦除 状态和编程状态的二进制编程的情况下,对数形式的可能性的最大级为 0.50。当使用四个数据状态时,对数形式的可能性的最大级为0.25。

例如参照图5C的编程,与B状态存储器单元和C状态存储器单元 同时地对A状态存储器单元进行编程。此外,A状态存储器单元通常在B 状态存储器单元和C状态存储器单元之前达到锁定状态,并且B状态存 储器单元通常在C状态存储器单元之前达到锁定状态。从而,A状态存 储器单元会接收最多的电容耦合,B状态存储器单元会接收较少电容耦 合,而C状态存储器单元会接收最少的电容耦合。

图9B描绘了使用动态验证电平的编程操作的流程图。该处理适用于 SG晶体管或存储器单元晶体管。对于存储器单元,可以针对不同目标数 据状态来提供不同的动态验证电平。步骤920开始对晶体管的编程操作。 如以下结合图10A至图10D论述的那样,步骤922可选地地确定晶体管 的集合的固有Vth分布宽度。步骤924针对每个晶体管设定:状态=编程。 步骤926对锁定验证电平Vv_lo进行初始化。例如,参照图5C的编程, 可以将针对A状态、B状态和C状态的锁定验证电平初始化为 Vva_lo=Vva_init、Vvb_lo=Vvb_init和Vvc_lo=Vvc_init。注意,锁定验 证电平可以针对一些目标数据状态为动态而针对其他目标数据状态并非 为动态。例如,在一些情况下能够接受:最高目标数据状态(例如,C状 态)具有较宽分布,在这种情况下锁定验证电平可以针对C状态固定以 提供更简单的实现方式。对于SG晶体管的编程,将锁定验证电平Vvsg_lo 初始化为Vvsg_init(参见图14B)。

步骤928表示编程验证迭代的编程部分,在编程部分中对晶体管的控 制栅极施加编程电压。编程电压(Vpgm)可以在每次编程验证迭代中以 步长ΔVpgm来阶跃式升高。例如可以将该编程电压施加至晶体管的控制 栅极。对于存储器单元,可以经由相应的字线来施加编程电压。在针对晶 体管的集合的编程验证迭代中的每个编程验证迭代的编程脉冲期间,针对 具有锁定状态的晶体管将晶体管的相应的漏极电压(例如,Vbl)设定为 处于锁定电平(Vdd),并且针对具有编程状态的晶体管将晶体管的相应 的漏极电压(例如Vbl)设定为处于编程电平(0V或Vqpw)。存储器单 元的编程电压和步长可以与SG晶体管的编程电压和步长不同。

步骤930表示编程验证迭代的验证部分,在验证部分中对晶体管进行 感测以确定Vth是否大于锁定验证电平。在对存储器单元进行编程的情况 下,可以针对不同目标数据状态中的每个目标数据状态进行上述感测。用 于确定Vth是否大于锁定验证电平的一种方法是对晶体管的控制栅极施 加处于锁定验证电平的电压,并且确定晶体管是否处于非导电状态。如果 晶体管处于非导电状态,则Vth大于锁定验证电平。用于确定Vth是否 大于锁定验证电平的另一方法是对晶体管的控制栅极施加指定电压(不同 于锁定验证电平)并且确定流经晶体管的电流量。如果该电流量小于指定 级,则Vth大于锁定验证电平。步骤932针对其Vth大于锁定验证电平 的每个晶体管即针对通过验证测试的每个晶体管设定锁定状态。

判定步骤934确定编程是否完成。在正被编程的晶体管中的所有或几 乎所有晶体管具有锁定状态时判定步骤934会为真。如果编程完成,则编 程操作在步骤942处结束。如果判定步骤934为假,则判定步骤936确定 是否满足开始阶跃式升高锁定验证电平的条件。例如,在指定数量或指定 部分Ns的晶体管的Vth大于初始验证电平或另一验证电平时可以满足该 条件。例如,Ns可以是正被编程至目标数据状态的存储器单元的数量 Ncells的10%至20%(还参见图11B、图12B和图13B)。可以针对每个 目标数据状态分开地进行是否阶跃式升高锁定验证电平的判定。可以对晶 体管的满足指定准则的部分提供计数并且当该计数超过指定值时可以声 明判定步骤936为真。

因为该方法直到编程前进至特定程度为止才开始对锁定验证电平的 阶跃式升高,所以该方法是自适应的。该方法是基于晶体管的集合的编程 进度来自适应地确定何时开始在其中阶跃式升高锁定验证电平的数个编 程验证迭代的示例。当晶体管为相对快速编程时该阶跃式升高在编程操作 中相对较早开始,在晶体管为相对慢速编程时该阶跃式升高在编程操作中 相对较迟开始。该方法可以使得获得最优Vth分布,这是因为该方法基于 正被编程的特定晶体管的编程进度来调整该阶跃式升高。另一选择是当进 行了预定数量的编程验证迭代时声明步骤936为真。该方法避免了复杂 性。

如果判定步骤936为真,则判定步骤938确定当前锁定验证电平是否 小于最大容许电平(例如,针对A状态的Vva_mx、针对B状态的Vvb_mx 或针对C状态的Vvc_mx,或者针对SG晶体管的Vvsgd_mx)。如果判定 步骤938为真,则在步骤940中针对下一个编程验证迭代阶跃式升高锁定 验证电平。如所提及的那样,该阶跃式升高可以是例如线性的或者随每个 连续的编程验证迭代逐步更小。通常,可以针对存储器设备对初始电平和 阶跃式升高速率进行最优化。该最优化可以指定在其中验证电平被阶跃式 升高的编程验证迭代的数量(例如,步数)以及每次编程验证迭代中阶跃 式升高的量。步数可以是二、三、四或更多。此外,阶跃式升高可以在连 续的编程验证迭代中以及/或者非连续的编程验证迭代中进行。

如果判定步骤938为假,则锁定验证电平处于最大值并且因此在下一 个编程验证迭代中不被阶跃式升高。在步骤940或936之后,在步骤928 处再次进行下一编程验证迭代的编程部分。可以对编程验证迭代的数量加 以限制以使得如果在最大数量的编程验证迭代内未完成编程操作则编程 操作失败。

图10A描绘了根据图9B的步骤922的用于确定晶体管的集合的固有 Vth分布宽度的处理的流程图。一组晶体管具有下述固有Vth分布,该 Vth分布随晶体管的较小变化而改变。在一种方法中,在制造时确定固有 Vth分布的宽度并且用存储器设备例如状态机中存储的数据来表示固有 Vth分布的宽度。在编程操作之前,可以访问该数据并且将其用于调节编 程操作。固有Vth分布宽度还可以由存储器设备不时地确定。在一种方法 中,根据晶体管的子集来确定晶体管的集合的固有Vth分布宽度。例如, 可以确定存储器单元的一条字线的固有Vth分布宽度并且将其用于表示 存储器单元的块的固有Vth分布宽度。通过考虑固有Vth分布宽度,可 以使针对晶体管的集合的锁定验证电平的阶跃式升高最优。

步骤1000开始用于确定晶体管的集合的固有Vth分布宽度(ND)的 操作。在步骤1002处,对晶体管施加编程电压。该编程电压(Vpgm)可 以在每次编程验证迭代中以步长ΔVpgm来阶跃式升高。在步骤1004处, 对晶体管进行感测以确定Vth是否大于Vch,其中Vch是如图10B至图 10D中所示的检查点验证电平。步骤1006提供了对其Vth大于Vch的晶 体管的数量(#)的计数。判定步骤1008确定该数量是否大于Nd,其中 Nd是表示正被编程的晶体管的数量的指定部分例如10%的数量。如果判 定步骤1008为假,则重复步骤1002。如果判定步骤1008为真,则步骤 1010指示晶体管已经达到第一检查点,并且将当前编程验证迭代数量 (PV#)记录为值PV1。图10C描绘了判定步骤1008为真的情况。

在步骤1012中,对晶体管施加下一编程电压。在步骤1014中,对晶 体管进行感测以确定Vth是否小于Vch。步骤1016对其Vth小于Vch的 晶体管的数量(#)提供了计数。判定步骤1018确定该数量是否小于Nd, 其中Nd的值与步骤1008中的值相同。如果判定步骤1018为假,则重复 步骤1012。编程电压(Vpgm)可以在每次编程验证迭代中以步长ΔVpgm 来阶跃式升高。如果判定步骤1018为真,则步骤1020指示晶体管已经达 到第二检查点,并且将当前编程验证迭代数量(PV#)记录为值PV2。步 骤1022将固有Vth分布宽度确定为(PV2-PV1)×ΔVpgm。

图10B至图10D描绘了在图10A的用于确定固有Vth分布宽度的处 理期间晶体管的集合的阈值电压分布的变化。图10B描绘了初始Vth分 布1030,其中,初始Vth分布1030转换至固有Vth分布1031。固有Vth 分布是可以看出不同晶体管的不同编程速度的分布。随着进一步编程,分 布1031转换成表示其Vth小于Vch的晶体管的分布部分1032以及表示 其Vth大于Vch的晶体管的分布部分1033。在该处理中晶体管未被锁定。 随着进一步编程,分布部分1032和1033转换成表示其Vth小于Vch的 晶体管的分布部分1034以及表示其Vth大于Vch的晶体管的分布部分 1035。

图11A描绘了例如在图4A和图4B中描绘的一遍编程操作中使用的 电压。横轴描绘了编程验证迭代数量(PV),也称为编程脉冲数量,纵轴 描绘了控制栅极电压或字线电压。通常,编程操作包括连续的编程验证迭 代。每个编程验证迭代具有编程部分,在编程部分中经由选中的字线对存 储器单元的控制栅极施加编程脉冲(PP),编程部分之后是验证部分,在 验证部分中对存储器单元的控制栅极施加一个或更多个验证脉冲(VP), 同时对存储器单元中的至少一些存储器单元进行感测。

电压波形1100描绘了一系列编程脉冲PP1至PP15以及验证脉冲。 作为示例,基于正被验证的目标数据状态在每个编程脉冲之后提供了一 个、两个或三个验证电平。可以对编程脉冲与验证脉冲之间的选中的字线 施加0V。例如,可以在PP1至PP3中的每个脉冲之后施加处于电平Vva_lo 的A状态验证脉冲(例如,VPa)。可以在PP4至PP6中的每个脉冲之后 施加分别处于电平Vva_lo和Vvb_lo的A状态验证脉冲和B状态验证脉 冲(例如,VPab)。可以在PP7和PP8中的每个脉冲之后施加分别处于 电平Vva_lo、Vvb_lo和Vvc_lo的A状态验证脉冲、B状态验证脉冲和C 状态验证脉冲(例如,VPabc)。可以在PP10至PP12中的每个脉冲之后 施加分别处于Vvb_lo和Vvc_lo的B状态验证脉冲和C状态验证脉冲(例 如,VPbc)。最后可以在PP12至PP15中的每个脉冲之后施加处于电平 Vvc_lo的C状态验证脉冲(例如,VPc)。该方法减小了所进行的验证操 作的数量。

图11B描绘了随图11A的编程操作中的编程验证迭代而变化的具有 锁定状态的存储器单元的数量(Nlockout)。x轴描绘了PV#并且与图11A 成列对齐。y轴描绘了在当前编程验证迭代之后具有锁定状态的存储器单 元的数量(Nlockout)。每个圆圈表示数据点并且与PV迭代的对应验证 脉冲成列对齐。曲线1112、1114和1116包括分别针对A状态存储器单元、 B状态存储器单元和C状态存储器单元的数据点。Nlockout最初为零并 且随后朝向Ncells过渡,Ncells是针对每个目标数据状态正被编程的存储 器单元的数量。针对每个数据状态,具有编程状态的存储器单元的数量为 Ncells至Nlockout。

每条曲线的形状是针对给定数据状态的正态Vth分布,使得较小数 量的存储器单元会在少数几个PV迭代之后最初地转换成锁定状态,然后 较大数量的存储器单元会在再多几个PV迭代之后转换成锁定状态,并且 最终较小数量的存储器单元会在再多几个PV迭代之后转换至锁定状态。

图11C描绘了随图11A的编程操作中的编程验证迭代而变化的针对 A状态存储器单元、B状态存储器单元和C状态存储器单元的示例动态验 证电压。曲线1122、1124和1126包括表示Vva_lo、Vvb_lo和Vvc_lo的 数据点。根据曲线1122,在PV1至PV3期间Vva_lo处于Vva_init。PV1 至PV3是针对A状态晶体管的集合的一个或更多个初始编程验证迭代。 在PV3期间,针对A状态(曲线1112)的Nlockout(图11B)过渡到 Ns以上以触发在随后的编程验证迭代中阶跃式升高Vva_lo,直到Vva_lo 达到Vva_mx为止,在Vva_lo达到Vva_mx的时刻处在针对A状态的其 余编程验证迭代中Vva_lo被保持处于Vva_mx。特定地,Vva_lo在PV4 至PV7中在从Vva_init至Vva_mx的电压范围(ΔVva的范围)内被阶跃 式升高,并且在PV8中保持处于Vva_mx。PV4至PV7是其中锁定验证 电压被阶跃式升高的数个编程验证迭代。当锁定验证电压被阶跃式升高至 最大容许电平(Vva_mx)时,所述数个编程验证迭代终结并且针对A状 态晶体管的集合开始一个或更多个最终编程脉冲迭代(PV8)。

根据曲线1124,在PV4至PV6期间Vvb_lo处于Vvb_init。PV4至 PV6是针对B状态晶体管的集合的一个或更多个初始编程验证迭代。在 PV6期间,针对B状态(曲线1114)的Nlockout(图11B)过渡到Ns 以上以触发在随后的编程验证迭代中阶跃式升高Vvb_lo,直到Vvb_lo达 到Vvb_mx为止,在Vvb_lo达到Vvb_mx的时刻处在针对B状态的其余 编程验证迭代中Vvb_lo被保持处于Vvb_mx。特定地,Vvb_lo在PV7 至PV10中在从Vvb_init至Vvb_mx的电压范围(ΔVvb的范围)中被阶 跃式升高,并且在PV11中保持处于Vvb_mx。PV7至PV10是其中锁定 验证电压被阶跃式升高的数个编程验证迭代。当锁定验证电压被阶跃式升 高至最大容许电平(Vvb_mx)时,所述数个编程验证迭代终结并且针对 B状态晶体管的集合开始一个或更多个最终编程脉冲迭代(PV11)。

根据曲线1126,在PV7至PV9期间Vvc_lo处于Vvc_init。PV7至 PV9是针对C状态晶体管的集合的一个或更多个初始编程验证迭代。在 PV9期间,针对C状态(曲线1116)的Nlockout(图11B)过渡到Ns 以上以触发在随后的编程验证迭代中阶跃式升高Vvc_lo,直到Vvc_lo达 到Vvc_mx为止,在Vvc_lo达到Vvc_mx的时刻处在针对C状态的其余 编程验证迭代中Vvc_lo被保持处于Vvc_mx。特定地,Vvc_lo在PV10 至PV13中在从Vvc_init至Vvc_mx的电压范围(ΔVvc的范围)内被阶 跃式升高,并且在PV14和PV15中保持处于Vvc_mx。PV10至PV13是 其中锁定验证电压被阶跃式升高的数个编程验证迭代。当锁定验证电压被 阶跃式升高至最大容许电平(Vvb_mx)时,所述数个编程验证迭代终结 并且针对C状态晶体管的集合的一个或更多个最终编程脉冲迭代(PV14 和PV15)开始。在该示例中,ΔVva>ΔVvb>ΔVvc。注意,Ns可以针对不 同数据状态而不同。

如所论述的那样,当一个或两个位线相邻的存储器单元继续编程时, 达到锁定状态的A状态单元可能经历Vth上移。目标数据状态通常在存 储器单元中随机分配使得存在下述可能性:给定锁定存储器单元的位线相 邻的存储器单元(处于A状态或其他状态)在给定编程验证迭代中正被 编程。对于给定存储器单元,在其锁定之后预期的Vth上移与下述相关: 编程操作中每个其余编程验证迭代中位线相邻的存储器单元正被编程的 可能性。编程电压逐步更小的增大会是最优的,这是因为编程干扰的可能 性最初在低编程验证迭代中最大并且在高编程验证迭代中变得逐步更小。 此外,由于Vth分布的正态形状,其速度在最快速编程晶体管与最慢速编 程晶体管之间的中间范围的晶体管会在最快速编程晶体管锁定之后相对 较早锁定。从而,在最快速编程晶体管锁定之后,通过使用逐步更小的步 长,编程干扰的可能性相对较早变得更小并且Vv_lo可以相对较快地阶跃 式升高。

再次参照图2A,考虑下述示例,该示例中,存储器单元230、212 和216要保持在擦除状态,存储器单元230、212和216要被编程至A状 态,存储器单元240、213和217要被编程至B状态,以及存储器单元250、 215和219要被编程至C状态。A状态存储器单元可以是晶体管的多个集 合中的晶体管的一个集合(例如,晶体管230、212和216),其中,所述 晶体管的一个集合在编程操作中使用锁定验证电压(Vva_lo)被编程至一 个目标数据状态(A状态)。所述晶体管的多个集合包括使用另一锁定验 证电压(Vvb_lo)被编程至另一目标数据状态(B)的晶体管的另一集合 (例如,晶体管240、213和217),其中,所述另一目标数据状态高于所 述一个目标数据状态,例如,Vvb_mx>Vva_mx。所述晶体管的多个集合 可以包括使用附加锁定验证电压(Vvc_lo)被编程至附加目标数据状态 (C)的晶体管的附加集合(例如,晶体管250、215和219)。附加目标 数据状态高于所述另一目标数据状态,例如,Vvc_mx>Vvb_mx。

图12A描绘了例如在图5A至图5C中描绘的两遍编程操作的第一遍 中使用的电压。电压波形1200描绘了施加至被选中用于编程的字线并且 施加至关联的存储器单元的集合的一系列编程脉冲PP1至PP8以及验证 脉冲。在每个编程脉冲之后提供了一个动态锁定验证电平Vva_lo。例如, 可以在PP1至PP8中的每个脉冲之后施加处于电平Vva_lo的A状态验 证脉冲(例如,VPa)。

图12B描绘了随图12A的编程操作的第一遍中的编程验证迭代而变 化的具有锁定状态的存储器单元的数量。曲线1212包括针对A状态存储 器单元的数据点。y轴描绘了在当前编程验证迭代之后具有锁定状态的存 储器单元的数量(Nlockout)。每个圆圈表示数据点并且与PV迭代的对 应验证脉冲成列对齐。Nlockout最初为零并且随后朝向Ncells过渡,Ncells 是正被编程的A状态存储器单元的数量。

图12C描绘了在对每个编程验证迭代验证电压逐步更小地增大的情 况下,随图12A的编程操作的第一遍中的编程验证迭代而变化的针对A 状态存储器单元的示例动态验证电压。曲线1222包括表示Vva_lo的数据 点。在PV1至PV3期间Vva_lo处于Vva_init。在PV3期间,针对A状 态(曲线1212)的Nlockout(图12B)过渡到Ns以上以触发在随后的编 程验证迭代中阶跃式升高Vva_lo,直到Vva_lo达到Vva_mx为止,在 Vva_lo达到Vva_mx的时刻处在针对A状态的其余编程验证迭代中 Vva_lo被保持处于Vva_mx。特定地,Vva_lo在PV4至PV6中在从 Vva_init至Vva_mx的电压范围(ΔVva的范围)内被阶跃式升高,并且 在PV7和PV8中保持处于Vva_mx。该示例提供了对验证电压逐步更小 地增大。例如,Vva_lo在PV4中从Vva_init增大到Vva_1、在PV5中从 Vva_1增大到Vva_2、以及在PV6中从Vva_2增大到Vva_mx,其中: (Vva_1-Vva_init)>(Vva_2-Vva_1)>(Vva_mx-Vva_2)。

另一变型是在至少两个连续的编程验证迭代中使用动态锁定验证电 平的相同阶跃式升高电平。例如,Vva_lo可以在PV4和PV5中被阶跃式 升高并且保持为Vva_1,然后在PV6中被阶跃式升高到Vva_2,然后在 PV7中被阶跃式升高到Vva_mx。

图12D描绘了在对使用慢速编程模式和快速编程模式的每个编程验 证迭代针对验证电压使用固定步长的情况下,随图12A的编程操作的第 一遍中的编程验证迭代而变化的针对A状态存储器单元的示例动态验证 电压。y轴描绘了针对A状态存储器单元的验证电平。曲线1232描绘了 动态锁定验证电平Vva_lo,其以固定步长从Vva_init增大到Vva_mx。 曲线1233描绘了用于确定从快速编程模式转换成慢速编程模式的验证电 平VvaL_lo,其以固定步长从VvaL_init增大到VvaL_mx。在一种方法 中,VvaL_lo比Vva_lo小固定裕量ΔV。曲线1234描绘了示例A状态存 储器单元的Vth。在PV1和PV2中,Vth小于VvaL_lo以使得存储器单 元处于快速编程模式(例如,其中Vbl=0V)。在PV3中,Vth大于VvaL_lo 以使得存储器单元在随后的PV迭代中处于慢速编程模式,其中 Vbl=0.8V。在PV5中,Vth大于Vva_lo以使得存储器单元在随后的PV 迭代中处于锁定状态,其中,Vbl=Vdd。可以以类似方式针对其他数据状 态提供慢速编程模式和快速编程模式。

图12E描绘了随图12A的编程操作的第一遍中的编程验证迭代而变 化的针对A状态存储器单元的示例动态验证电压,其中,初始验证电平 随固有Vth分布宽度而变化。当固有Vth分布的宽度相对更大时,最快 速编程存储器单元与最慢速编程存储器单元之间存在更大差异。因此,需 要相对更多的编程验证迭代来对存储器单元进行编程,并且最快速编程存 储器单元将经受更多编程干扰。为了进行补偿,可以减小验证电平的初始 值以使得锁定验证电平的值的范围增大。例如,针对A状态,可以将初 始验证电平从额定值Vva_init减小到降低的电平Vva_init-以使得锁定验 证电平的值的范围从ΔVva增大到ΔVva-(曲线1224)。

类似地,当固有Vth分布的宽度相对更小时,最快速编程存储器单 元与最慢速编程存储器单元之间存在更小差异。因此,需要相对更少的编 程验证迭代来对存储器单元进行编程,并且最快速编程存储器单元将经受 更少编程干扰。为了进行补偿,可以增大验证电平的初始值以使得锁定验 证电平的值的范围减小。例如,针对A状态,可以将初始验证电平从额 定值Vva_init增大到升高的电平Vva_init+以使得锁定验证电平的值的范 围从ΔVva减小到ΔVva+(曲线1223)。

将类似的推理应用于对选择栅极晶体管的编程,使得当固有Vth分 布的宽度相对更大或更小时可以分别地增大或减小锁定验证电平的值的 范围。

图13A描绘了例如在图5A至图5C中描绘的两遍编程操作的第二遍 中使用的电压。电压波形1300描绘了施加至被选中用于编程的字线并且 施加至关联的存储器单元的集合的一系列编程脉冲PP1至PP14以及验证 脉冲。可以在PP1至PP6中的每个脉冲之后施加处于电平Vvb_lo的B 状态验证脉冲(例如,VPb)。可以在PP7至PP9中的每个脉冲之后施加 分别处于电平Vvb_lo和Vvc_lo的B状态验证脉冲和C状态验证脉冲(例 如,VPbc)。可以在PP10至PP14中的每个脉冲之后施加处于电平Vvc_lo 的C状态验证脉冲(例如,VPc)。

图13B描绘了随图13A的编程操作的第二遍中的编程验证迭代而变 化的具有锁定状态的存储器单元的数量。x轴描绘了PV#并且与图13A成 列对齐。y轴描绘了在当前编程验证迭代之后具有锁定状态的存储器单元 的数量(Nlockout)。每个圆圈表示数据点并且与PV迭代的对应验证脉 冲成列对齐。曲线1312包括针对B状态存储器单元的数据点。曲线1314 包括针对C状态存储器单元的数据点。Nprog最初为零并且然后朝向 Ncells过渡,Ncells是正被编程的B状态存储器单元的数量和正被编程的 C状态存储器单元的数量。曲线1312包括针对B状态存储器单元的数据 点。曲线1314包括针对C状态存储器单元的数据点。

图13C描绘了在验证电压逐步更小地增大的情况下,随图13A的编 程操作的第二遍中的编程验证迭代而变化的针对B状态存储器单元和C 状态存储器单元的示例动态验证电压。曲线1322和1332包括分别表示B 状态存储器单元的Vvb_lo和C状态存储器单元的Vvc_lo的数据点。根 据曲线1322,在PV1至PV3期间Vvb_lo处于Vvb_init。在PV3期间, 针对B状态(曲线1312)的Nlockout(图13B)过渡到Ns以上以触发在 随后的编程验证迭代中阶跃式升高Vvb_lo,直到Vvb_lo达到Vvb_mx为 止,在Vvb_lo达到Vvb_mx的时刻处在针对B状态的其余编程验证迭代 中Vvb_lo被保持处于Vvb_mx。特定地,Vvb_lo在PV4至PV7中在从 Vvb_init至Vvb_mx的电压范围(ΔVvb的范围)中被阶跃式升高,并且 在PV8和PV9中保持处于Vvb_mx。

根据曲线1332,在PV7至PV9期间Vvc_lo处于Vvc_init。在PV9 期间,针对C状态(曲线1314)的Nlockout(图13B)过渡到Ns以上以 触发在随后的编程验证脉冲迭代中阶跃式升高Vvc_lo,直到Vvc_lo达到 Vvc_mx为止,在Vvc_lo达到Vvc_mx的时刻处在针对C状态的其余编 程验证迭代中Vvc_lo被保持处于Vvc_mx。特定地,Vvc_lo在PV10至 PV13中在从Vvc_init至Vvc_mx的电压范围(ΔVvc的范围)中被阶跃 式升高,并且在PV14中保持处于Vvc_mx。

图14A描绘了在擦除操作期间选择栅极晶体管的集合的Vth分布的 变化。如所提及的那样,选择栅极晶体管的Vth应该在被描绘为Vsg_lb (下界)至Vsg_ub(上界)的范围内。特别地,对存储器设备的适当操 作取决于SGD晶体管。对于对存储器单元进行编程来说,限制条件是对 于慢速编程模式,在该限制条件中,对于要处于导电状态的SGD晶体管, Vsgd>Vsg_ub+0.8V以允许编程。在该示例中Vbl=0.8V。另一限制条件是 对于阻止的存储器单元,在该限制条件中,Vsgd<2.5V+Vsg_lb。在该示 例中Vbl=2.5V。为了满足这两个条件,Vsgd窗口是 2.5-0.8-(Vsg_ub-Vsg_lb)。如果进一步允许0.4V作为SG晶体管的接通电 压和关断电压之间的裕量,则Vsgd窗口是1.3V-(Vsg_ub-Vsg_lb)。因此, 可用的Vsgd窗口很大程度上取决于SG晶体管的Vth分布: Vsg_ub-Vsg_lb,因此控制Vth分布很重要。

然而,Vth可能随时间偏离该范围。例如,在读取或编程操作中,如 果未选中的NAND串(例如在未选中的块)中的SGD晶体管的Vth太低, 则使用Vsgd=0V不能将关联的NAND串从位线切断。此外,在编程操作 期间,如果SGD晶体管的Vth太高,则不能将待被编程的关联的NAND 串连接至位线。

在BiCS结构中,由于缺少沟道和单元源极/漏极注入导致难以控制 SG晶体管的Vth。此外,由于普通的加工偏差导致Vth可能针对不同SGD 晶体管而不同。不同SGD晶体管的Vth通常具有在中间值周围的分布。 为了使Vsgd窗口最大化,Vth分布应该尽可能窄。可以在制造期间通过 加工偏差来调节Vth,加工偏差例如是物理尺寸例如凹部高度、体厚度和 半径的偏差以及漏极注入/掺杂的偏差。然而,这些加工偏差的有效性是 有限的并且这些加工偏差难以控制且花费很大。此外,在存储器设备经历 附加的编程擦除周期时Vth分布可能随时间变化。

编程之前进行擦除可以使Vth返回到可接受范围。在擦除操作中, 使用擦除验证电平Vv_er使Vth从分布1400减小到分布1401。这提供了 晶体管的处于已知电平的Vth。随后,如图14B中描绘的那样,可以对晶 体管进行编程。

由于例如BiCS结构以及扁平单元2DNAND结构中的SG晶体管的 电荷捕获层,导致可以发生编程和擦除。如果对SG晶体管进行编程,则 控制最终Vth分布很重要,这是因为最终Vth确定编程期间的Vsgd窗口 (对于Vsgd的可接受的值的范围)并且使得能够成功地实现对存储器单 元的编程和阻止。

图14B描绘了在使用动态验证电平的编程操作期间选择栅极晶体管 的集合的Vth分布的变化。使用锁定编程验证电平Vvsg_lo使Vth从分布 1401增大到分布1402,该锁定编程验证电平Vvsg_lo从固定初始值 Vvsg_init动态地增大到固定的最终最大电平Vvsg_mx。Vvsg_mx可以略 微大于Vsg_lb以提供裕量。类似于图8A至图8K中描绘的对存储器单元 进行编程的情形,快速编程选择栅极晶体管会在慢速编程选择栅极晶体管 之前达到锁定状态,并且编程干扰会使快速编程选择栅极晶体管的Vth 在编程操作完成时增大到与慢速编程选择栅极晶体管相同的电平,以实现 窄的Vth分布1402。接下来提供对选择栅极晶体管进行擦除和编程的进 一步细节。

图15A描绘了用于评估选择栅极晶体管的处理的流程图。步骤1500 开始对SG晶体管的评估。可以通过各种准则来触发该评估,例如经过多 个编程擦除周期或者检测出较大数量的编程错误。可以在每个第n编程操 作之前进行该评估,其中n≥1。在步骤1502中,读取处于下界(Vsg_lb) 和上界(Vsg_ub)的SG晶体管。步骤1504确定出在理想范围外的SG 晶体管的数量Nsg。判定步骤1506确定Nsg是否大于极限,其中极限≥1。 如果判定步骤1506为真,则进行步骤1508以擦除SG晶体管并且然后对 SG晶体管进行编程(分别参照图15B和图9B)。在一种方法中,对SG 晶体管的集合一起进行擦除和编程。如果判定步骤1506为假,则步骤1510 结束评估。

图15B描绘了根据图15A的步骤1508的用于擦除选择栅极晶体管的 处理的流程图。步骤1520开始针对SG晶体管的擦除操作。在步骤1522 中,在擦除验证迭代的擦除部分(参照图16A)中对SG晶体管施加擦除 电压(例如,Vbl)。该擦除电压可以在每个擦除验证迭代中以ΔVerase来 阶跃式升高。在步骤1524中,在擦除验证迭代的验证部分(参照图16B) 中,对SG晶体管进行感测以确定其Vth是否小于验证电平(Vv_er)。判 定步骤1526确定擦除操作是否完成。如果判定步骤1526为真(例如,SG 晶体管中的所有或几乎所有晶体管的Vth小于Vv_er),则在步骤1528中 结束擦除操作。如果判定步骤1526为假,则在步骤1522中开始下一擦除 验证迭代的擦除部分。

对SG晶体管的编程操作可以如结合图9B论述的那样进行。对于图 9B的步骤928和编程电压,参照图16C。对于图9B的步骤930和验证电 压,参照图16E。

图16A描绘了在图15B的擦除处理中使用的擦除电压。x轴描绘了 擦除验证(EV)迭代的数量,y轴描绘了Vbl。电压波形1000例如包括 擦除脉冲EP1至EP5。擦除操作的一种实现方式使用SGD晶体管生成栅 极感应漏极泄漏(GIDL)电流来在SGD控制栅极电压Vsgd浮动时对 NAND串的浮体充电。在这种情况下,经由位线对SG晶体管的漏极端子 施加擦除电压。GIDL与SGD晶体管的漏极-栅极电压(Vdg)成比例地 增大。然后快速地将Vsgd压低至低电平例如0V以产生跨隧道氧化物的 电场,该电场使得空穴从SG晶体管的体注入到电荷捕获层,从而导致朝 向擦除验证电平Vv_er的大的Vth下移。在连续迭代中重复该处理直到 通过验证测试为止。还可以以类似方式来擦除存储器单元晶体管。

图16B描绘了在图15B的擦除处理中使用的验证电压。x轴描绘了与 图16A一致的擦除验证(EV)迭代的数量,y轴描绘了Vsgd。该波形描 绘了擦除操作中处于电平Vv_er的一系列擦除验证脉冲EVP1至EVP。

图16C描绘了根据图15A的步骤1508的针对SG晶体管的编程操作 中使用的编程电压。x轴描绘了编程验证(PVsg)迭代的数量,y轴描绘 了Vsgd。示例波形1050包括一系列编程脉冲PPsg1至PPsg7。

图16D描绘了随图16C的编程操作中的编程验证迭代而变化的具有 锁定状态的SG晶体管的数量。锁定晶体管的数量(Nlockout)初始为零, 然后增大到阈值电平Ns以上,这触发在随后的编程验证迭代中阶跃式升 高Vvsg_lo。锁定晶体管的数量最终接近正被编程的SG晶体管的数量 Ntran。

图16E描绘了在图16C的编程操作中使用的动态验证电压。x轴描 绘了与图16C和图16D一致的擦除验证(EV)迭代的数量,y轴描绘了 对于SG晶体管的锁定验证电压Vvsg_lo。动态验证电压是VPsg1至VPsg7 并且在从初始电平Vvsg_init到最终值Vvsg_mx的范围即ΔVvsg的范围内 变化。

因此,可以看出,在一个实施方式中,提供了一种用于对存储器设备 中的晶体管进行编程的方法。该方法包括:进行多个编程验证迭代中的每 个编程验证迭代,所述多个编程验证迭代包括针对在编程操作中待被编程 的晶体管的集合的编程验证迭代,每个晶体管最初具有指示该晶体管待被 编程的编程状态,进行每个编程验证迭代包括:向晶体管的集合施加编程 脉冲,确定具有编程状态的晶体管中的至少一些晶体管的阈值电压是否超 过锁定验证电压,以及针对其阈值电压被确定为超过锁定验证电压的晶体 管中的每个晶体管,在编程操作的剩余部分中将编程状态改变成锁定状 态,在针对晶体管的集合的编程验证迭代中的数个编程验证迭代中,锁定 验证电压被阶跃式升高。

在另一实施方式中,一种非易失性存储系统包括在编程操作中待被编 程的晶体管的集合以及控制电路。控制电路进行编程操作的多个编程验证 迭代中的每个编程验证迭代,所述多个编程验证迭代包括针对晶体管的集 合的编程验证迭代,每个晶体管最初具有指示该晶体管待被编程的编程状 态,每个编程验证迭代包括:向晶体管的集合施加编程脉冲,确定具有编 程状态的晶体管中的至少一些晶体管的阈值电压是否超过锁定验证电压, 以及针对其阈值电压被确定为超过锁定验证电压的晶体管中的每个晶体 管,在编程操作的剩余部分中将编程状态改变成锁定状态,在针对晶体管 的集合的编程验证迭代中的数个编程验证迭代中,锁定验证电压被阶跃式 升高。

在另一实施方式中,一种用于对存储器设备中的存储器单元进行编程 的方法包括:进行多个编程验证迭代中的每个编程验证迭代,所述多个编 程验证迭代包括针对在编程操作中待被使用一个目标数据状态的锁定验 证电压编程至所述一个目标数据状态的存储器单元的一个集合的编程验 证迭代,以及针对在编程操作中待被使用另一目标数据状态的锁定验证电 压编程至另一目标数据状态的存储器单元的另一集合的编程验证迭代,存 储器单元的所述一个集合和存储器单元的所述另一集合中的每个存储器 单元最初具有指示该存储器单元待被编程的编程状态。进行每个编程验证 迭代包括:向存储器单元的所述一个集合和存储器单元的所述另一集合施 加编程脉冲,确定所述存储器单元的所述一个集合中的具有编程状态的存 储器单元中的至少一些存储器单元的阈值电压是否超过所述一个目标数 据状态的锁定验证电压,以及针对存储器单元的所述一个集合中的其阈值 电压被确定为超过所述一个目标数据状态的锁定验证电压的存储器单元 中的每个存储器单元,在编程操作的剩余部分中将编程状态改变成的锁定 状态;以及确定所述存储器单元的所述另一集合中的具有编程状态的存储 器单元中的至少一些存储器单元的阈值电压是否超过所述另一目标数据 状态的锁定验证电压,以及针对存储器单元的所述另一集合中的其阈值电 压被确定为超过所述另一目标数据状态的锁定验证电压的存储器单元中 的每个存储器单元,在编程操作的剩余部分中将编程状态改变成锁定状 态,所述一个目标数据状态的锁定验证电压在针对存储器单元的所述一个 集合的编程验证迭代中以与下述速率不同的速率被阶跃式升高,所述速率 为所述另一目标数据状态的锁定验证电压在针对存储器单元的所述另一 集合的编程验证迭代中被阶跃式升高的速率。

已经出于说明和描述的目的呈现了对本发明的以上详细描述。并非意 在穷举或将本发明限制为所公开的确切形式。根据以上教示可以进行很多 修改和变型。选择所描述的实施方式以最佳地解释本发明的原理及其实际 应用,从而使得本领域普通技术人员能够适合所构思的特定应用而在各种 实施方式中与各种修改一起最佳地利用本发明。意在由所附权利要求来限 定本发明的范围。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号