首页> 中国专利> 利用位线电压逐步增加来对非易失性存储器进行编程

利用位线电压逐步增加来对非易失性存储器进行编程

摘要

使用下述编程技术来收窄非易失性存储器装置(196)中的阈值电压分布(A、B、C),并且/或者减少编程时间,在该编程技术中:以与编程电压的逐步增加步伐一致的方式,逐步增加具有目标数据状态(402、404、406)的存储元件的位线电压。对于存储元件的不同子集,根据其目标数据状态(402、404、406),在编程通过中的不同时间执行位线电压的逐步增加。可以基于固定的编程脉冲编号或适应性地基于编程处理来设置位线电压(Vbc)的逐步增加的开始和结束。变型包括使用固定的位线步、变化的位线步、依赖数据状态的位线步、针对一个或更多个数据状态不逐步增加位线的选项、以及增加附加的位线偏压的选项。

著录项

  • 公开/公告号CN103081015A

    专利类型发明专利

  • 公开/公告日2013-05-01

    原文格式PDF

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

    申请/专利号CN201180035485.2

  • 发明设计人 迪潘舒·杜塔;杰弗里·W·卢策;

    申请日2011-07-14

  • 分类号G11C11/56(20060101);G11C16/34(20060101);G11C16/24(20060101);G11C16/12(20060101);

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

  • 代理人陈炜;李德山

  • 地址 美国德克萨斯州

  • 入库时间 2024-02-19 19:15:47

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-08-17

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G11C11/56 变更前: 变更后: 申请日:20110714

    专利权人的姓名或者名称、地址的变更

  • 2016-01-20

    授权

    授权

  • 2013-08-21

    实质审查的生效 IPC(主分类):G11C11/56 申请日:20110714

    实质审查的生效

  • 2013-05-01

    公开

    公开

说明书

技术领域

本技术涉及非易失性存储器。

背景技术

半导体存储器已日益盛行地应用在各种电子装置中。例如,非易失性 半导体存储器被用于蜂窝电话、数字照相机、个人数字助理、移动计算装 置、非移动计算装置和其他装置中。电可擦除可编程只读存储器 (EEPROM)和快闪存储器属于最普及的非易失性半导体存储器。与传 统的全功能EEPROM相比,利用同样作为EEPROM的一种类型的快闪 存储器,可以在一步中擦除整个存储器阵列的内容或存储器的一部分的内 容。

传统的EEPROM和快闪存储器两者都利用了下述浮动栅极(floating gate):该浮动栅极位于半导体衬底中的沟道区域上方并且与该沟道区域 绝缘。浮动栅极位于源极区域和漏极区域之间。控制栅极设置在该浮动栅 极之上,并且与该浮动栅极绝缘。如此形成的晶体管的阈值电压(Vth) 由保留在浮动栅极上的电荷量来控制。也就是说,由浮动栅极上的电荷等 级来控制在接通晶体管前必须施加到控制栅极、以允许在晶体管的源极和 漏极之间导通的最小电压量。

一些EEPROM和快闪存储器装置具有用于存储两个范围的电荷的 浮动栅极,因此,存储器元件可以在两个状态(如擦除状态和编程状态) 之间被编程/被擦除。这样的快闪存储器装置有时被称为二进制快闪存储 器装置,这是因为每个存储器元件可以存储一位(bit)数据。

通过识别多个不同的允许的/有效的编程阈值电压范围来实现多状态 (也称为多级)快闪存储器装置。每个不同的阈值电压范围与编码在存储 器装置中的一组数据位的预定值对应。例如,当存储器元件可以被置于与 四个不同的阈值电压范围相对应的四个离散电荷带中的一个离散电荷带 中时,每个存储器元件可以存储两位数据。

特别地,随着存储器装置成比例地减小,需要用于对阈值电压范围精 确地编程同时减少编程时间的技术。

附图说明

图1是使用单行/列解码器和读/写电路的非易失性存储器系统的框 图。

图2是描绘图1的感测块100的一个实施例的框图。

图3描绘了图1的存储器阵列155中的NAND快闪存储器单元块。

图4A描绘了示例阈值电压分布和称为“一次通过写入(one-pass write)”编程技术的一次通过编程。

图4B和图4C描绘了示例阈值电压分布和称为“二次通过写入”编 程技术的二次通过编程。

图5A描绘了示例阈值电压分布和一次通过写入编程,其中在“快速 通过写入(quick pass write)”(QPW)编程选项中可以使用多达两种编 程速度。

图5B描绘了在二次通过编程期间的A状态的示例阈值电压分布,其 中在第一次编程通过(first programming pass)中,可以在QPW编程选 项中使用多达两种编程速度。

图5C描绘了在二次通过编程期间的A状态的示例阈值电压分布,其 中在第二次编程通过中,可以在QPW编程选项中使用多达两种编程速 度。

图6A、图6B和图6C分别描绘了称为“三次通过写入”编程技术的 三次通过编程操作的第一次编程通过、第二次编程通过和第三次编程通 过,其中使用中间校验电压或中等偏低(lower-middle)(LM)校验电压。

图6D描绘了称为“二次通过写入”编程技术的二次通过编程操作的 第二次编程通过,其中图6A描绘了第一次编程通过,并且其中可以在 QPW编程选项中使用多达两种编程速度。

图7A描绘了一组存储元件的以来回字线(back-and-forth word line) 顺序进行的二次通过编程操作。

图7B描绘了一组存储元件的以来回字线顺序进行的三次通过编程操 作。

图8描绘了对存储元件进行编程所需的最高Vpgm与存储元件的位 线电压之间的关系。

图9A描绘了位线电压逐步增加的编程技术。

图9B作为图9A的编程技术的示例而描绘了经历作为编程脉冲编号 的函数的校验操作的数据状态。

图10描绘了针对图9B的序列960的、作为编程脉冲编号的函数的 编程-校验操作。

图11A描绘了针对不同数据状态的、作为编程脉冲编号的函数的位 线电压的逐步增加,其中将公共步长用于所有数据状态。

图11B描绘了针对A状态存储元件的、用于开始位线逐步增加循环 的触发条件。

图11C描绘了针对A状态存储元件的、用于停止位线逐步增加循环 的触发条件。

图12A描绘了与图11A相符的、针对A状态存储元件的作为编程脉 冲编号的函数的编程速率。

图12B描绘了与图11A相符的、针对B状态存储元件的作为编程脉 冲编号的函数的编程速率。

图12C描绘了与图11A相符的、针对C状态存储元件的作为编程脉 冲编号的函数的编程速率。

图13描绘了针对不同数据状态的、作为编程脉冲编号的函数的位线 电压的逐步增加,其中使用如下步长用于所有的数据状态:较小步长、然 后是较大步长、然后是较小步长。

图14描绘了针对不同数据状态的、作为编程脉冲编号的函数的位线 电压的逐步增加,其中使用较大步长用于较低数据状态,而使用较小步长 用于最高数据状态。

图15描绘了针对不同数据状态的、作为编程脉冲编号的函数的位线 电压的逐步增加,其中将公共的步长用于所有数据状态,并且基于阈值电 压电平来增加附加位线电压。

具体实施方式

提供了用于对阈值电压范围精确地编程、同时减少编程时间的方法和 非易失性存储系统。

在编程操作期间,在减少编程时间与实现不同数据状态的窄的阈值电 压范围之间存在权衡。通过使用较大的编程脉冲步长可以提高编程速度。 然而,这会导致超过校验电平的很大过冲,从而导致宽的阈值电压(Vth) 范围。另一方面,如果使用较小的编程脉冲步长,则以增加编程时间为代 价来实现窄的Vth范围。另一种方法是在双校验方案中,针对每个状态以 两个单独的校验电平来校验存储元件。当存储元件的Vth超过较低校验电 平时,通过施加位线偏压(bit line bias)而减慢其编程速度。在没有位线 偏压的情况下,存储元件的Vth随着每个编程脉冲以大致等于编程脉冲的 的步长的量增加。在有位线偏压的情况下,存储元件的Vth随着每个编程 脉冲以比编程脉冲的步长小的量增加。因此,当存储元件的Vth超过目标 数据状态的较低校验电平时,可以以减小的速度对存储元件编程,并且当 Vth超过目标数据状态的较高校验电平时,可以将存储元件锁定为不进一 步编程。

在双校验方案中,在硅上优化每个状态的较低校验电平与较高校验电 平之间的距离,并且将该距离设置在Vth分布为最窄的点处。如果较低校 验电平与较高校验电平之间的间隙太高,则存储元件的Vth增长将转变回 稳定状态值(例如,与编程脉冲步长相同的值),并且因此不会实现双校 验方案的益处。另一方面,如果较低校验电平与较高校验电平之间的间隙 太小,那么很多存储元件的Vth可在一个编程脉冲中跳过该间隙,并且因 此不会减慢这些存储元件的编程速度。通常,最优的间隙是编程脉冲步长 的函数。较大的编程脉冲步长趋向于增大最优间隙,这是因为Vth随着每 个编程脉冲进行较大的跳变,从而需要较大的间隙来确保Vth不会随着仅 一个编程脉冲就正好跳过间隙并超过较高校验电平。

此外,对于双校验方案,随着存储器装置成比例地缩小,编程噪音变 得更糟。在一定的编程脉冲处,尽管大多数存储元件的Vth以大致等于编 程脉冲步长的量跳变,但是也具有其Vth跳变地显著更高的很多存储元 件。结果,对于不同存储元件来说最优间隙不同并且难以优化。

为了克服这些问题,提供如下编程技术:该编程技术确保将大多数存 储元件的编程减慢,以使得Vth分布宽度为窄。在此方法中,具有特定目 标数据状态的存储元件的位线电压(Vbl)针对一定范围的多个连续编程 脉冲而随着顺序的编程脉冲来逐步增加。针对每个目标数据状态可以使用 不同范围的编程脉冲,但是这些范围可以重叠。可以如下时间段内进行位 线电压逐步增加:在该时间段,大多数存储元件接近完成到其目标数据状 态的编程。在此时段期间,有效地降低了这些存储元件的Vth的增长速率, 从而导致了较窄的Vth分布。此外,因为被编程到特定目标数据状态的所 有存储元件的位线电压是逐步增加的,所以尚未被锁定的、属于该目标状 态的所有存储元件减慢了编程。

该编程技术的变型包括使用:固定的位线步;变化的位线步;依赖数 据状态的位线步;针对一个或更多个数据状态不逐步增加位线的选项;以 及将附加的位线偏压增加到位线步的选项。

接下来,讨论可与该编程技术一起使用示例存储器系统。图1是使用 单行/列解码器和读/写电路的非易失性存储器系统的框图。该图示出了根 据一个实施例的存储器装置196,其具有用于并行地对存储元件的页 (page)进行读取和编程的读/写电路。存储器装置196可以包括一个或 更多个存储器芯片(die)198。存储器芯片198包括存储元件的二维存储 器阵列155、控制电路110和读/写电路165。结合图3进一步讨论存储器 阵列155。

在一些实施例中,存储元件的阵列可以是三维的。存储器阵列155 可经由行解码器130通过字线(word line)、并经由列解码器160通过位 线(bit line)来寻址。读/写电路165包括多个感测块100并且允许并行 地对存储元件的页进行读取或编程。通常,控制器150与一个或多个存储 器芯片198包括在同一存储器装置196(例如,可移除存储卡)中。命令 和数据通过线120而在主机与控制器150之间进行传递,并且通过线118 而在控制器与一个或更多个存储器芯片198之间进行传递。

控制电路110与读/写电路165协作,以在存储器阵列155上执行存 储器操作,并且控制电路110包括状态机112、片上地址解码器114和功 率控制模块116。状态机112提供存储器操作的芯片级控制。片上地址解 码器114提供由主机或存储器控制器使用的地址到由解码器130和160使 用的硬件地址之间的地址接口。功率控制模块116控制在存储器操作期间 向字线和位线提供的功率和电压。

在一些实施方式中,图1的一些部件可以进行组合。在各种设计中, 可以将除存储器阵列115以外的一个或更多个部件(单独地或组合地)认 为是管理或控制电路。例如,一个或更多个控制电路可以包括控制电路 110、状态机112、解码器114/160、功率控制116、感测块100(包括图2 中的处理器192)、读/写电路165和控制器150等中的任何一个或其组合。 结合图2进一步讨论感测块100。

在另一个实施例中,非易失性存储器系统使用双行/列解码器和读/写 电路。在存储器阵列155的相对侧上,以对称方式来实现由各种外围电路 对存储器阵列155的访问,使得在每侧的访问线的密度和电路系统的密度 都减少一半。因此,行解码器被拆分成两个行解码器,并且列解码器被拆 分成两个列解码器。类似地,读/写电路被拆分成从阵列155的底部连接 到位线的读/写电路以及与从阵列155的顶部连接到位线的读/写电路。以 此方式,读/写模块的密度基本上减小一半。

图2是描绘了感测块的一个实施例的框图。各个感测块100被划分为 称为感测模块180或感测放大器的一个或更多个核心部分、以及称为管理 电路190的公共部分。在一个实施例中,针对每个位线将有单独的感测模 块180,并且针对一组多个(如四个或八个)感测模块180将有一个公共 管理电路190。群组中的每个感测模块经由数据总线172与相关联的管理 电路通信。因此,存在与一组存储元件的感测模块通信的一个或更多个管 理电路。

感测模块180包括感测电路170,感测电路170通过确定在所连接的 位线中的传导电流是高于还是低于预定的阈值等级来执行感测。感测模块 180还包括位线锁存器182,位线锁存器182用于在所连接的位线上设置 电压条件。例如,在位线锁存器182中锁存的预定状态将导致所连接的位 线被拉到指定禁止编程的状态(例如1.5V至3V)。例如,flag=0可以禁 止编程,而flag=1不禁止编程。

管理电路190包括:处理器192;四组示例数据锁存器194至197; 以及耦接在一组数据锁存器194与数据总线120之间的I/O接口196。可 以针对每个感测模块提供一组数据锁存器,并且可以针对每个组提供由 QDL、UDL和LDL标识的三个数据锁存器。处理器192执行计算,例如 以确定在所感测的存储元件中存储的数据并将所确定的数据存储在一组 数据锁存器中。每组数据锁存器194至197用于存储由处理器192在读取 操作期间确定的数据位,并且用于存储在编程操作期间从数据总线120 导入的数据位,这些数据位表示打算要编程到存储器中的写入数据。I/O 接口196提供在数据锁存器194至197与数据总线120之间的接口。

在读取期间,系统的操作处于状态机112的控制之下,该状态机112 控制向所寻址的存储元件提供不同的控制栅极电压。由于其逐步通过与由 存储器支持的各种存储器状态相对应的各种预定义控制栅极电压,因此感 测模块180可能在这些电压中的一个电压处断路(trip),并且将经由总线 172把对应的输出从感测模块180提供到处理器192。在该点处,处理器 192通过考虑感测模块的断路事件以及经由输入线193来自状态机的关于 所施加的控制栅极电压的信息,来确定所导致的存储器状态。然后,处理 器192计算存储器状态的二进制编码,并且将生成的数据位存储到数据锁 存器194至197中。在管理电路190的另一实施例中,位线锁存器182服 务于双重任务,既作为用于对感测模块180的输出进行锁存的锁存器,也 作为上述的位线锁存器。

一些实施方式可以包括多个处理器192。在一个实施例中,每个处理 器192将包括输出线(未绘出),以使得输出线中的每根输出线是在一起 的有线-或(wired-OR)。在一些实施例中,输出线在被连接到有线-或线 (wired-OR line)之前先被反转。由于接收有线-或的状态机可以确定被 编程的所有位何时已达到期望电平,因此该配置使得能够在编程校验处理 期间快速确定编程处理何时已经完成。例如,当每个位已经达到其期望电 平时,用于该位的逻辑零将被发送到该有线-或线(或数据1被反转)。当 所有的位输出数据0(或反转的数据1)时,则状态机知道要结束编程处 理。因为每个处理器与八个感测模块通信,所以状态机需要读八次有线- 或线,或者向处理器192添加逻辑以累计相关联的位线的结果,以使得状 态机只需要读一次有线-或线。类似地,通过正确地选择逻辑电平,全局 状态机可以检测第一位何时改变其状态,并相应地改变算法。

在编程操作或校验操作期间,从数据总线120将待编程的数据(写入 数据)存储在数据锁存器194至197的组中。处于状态机控制下的该编程 操作包括施加到寻址存储元件的控制栅极的一系列编程电压脉冲。每个编 程脉冲都跟随有读回(read back)(校验),以确定存储元件是否已被编 程到期望的存储器状态。在一些情况下,处理器192监视与期望存储器状 态相关的读回存储器状态。当两者一致时,处理器192设置位线锁存器 182,以使得位线被拉到指定禁止编程的状态。这禁止了耦接至该位线的 存储元件进一步编程,即使在该存储元件的控制栅极上出现编程脉冲也是 如此。在其它实施例中,处理器最初加载位线锁存器182,并且在校验处 理期间,感测电路将该位线锁存器182设置为禁止值。

每组数据锁存器194至197可以被实施为用于每个感测模块的数据锁 存器的堆栈。在一个实施例中,针对每个感测模块180有三个数据锁存器。 在一些实施方式中,数据锁存器被实施为移位寄存器,以使得将存储在其 中的并行数据转换成针对数据总线120的串行数据,并且反之亦然。与M 个存储元件的读/写块对应的所有数据锁存器可以被链接到一起以形成块 移位寄存器,以使得可以通过串行传输来输入或输出数据块。特别地,使 读/写模块的库(bank)进行适应,以使得其数据锁存器组中的每一个将 数据按次序地移入或移出数据总线,就好像它们是用于整个读/写块的移 位寄存器的一部分那样。

数据锁存器识别相关联的存储元件在编程操作中何时已达到特定里 程标志。例如,锁存器可以识别:(a)在快速编程模式中,存储元件的 Vth低于较低校验电平(例如图4中的VvaL、VvbL或VvcL);(b)在 慢速编程模式中,存储元件的Vth高于较低校验电平但低于较高目标检验 电平(例如图4中的Vva、Vvb或Vvc);或(c)在禁止或锁定模式中, 存储元件的Vth高于较高目标校验电平。数据锁存器指示存储元件当前是 否存储了来自数据页的一个或更多个位。例如,LDL锁存器可以用于存 储数据的较低页。当较低页位存储在相关联的存储元件中时,LDL锁存 器翻转(例如,从0到1)。UDL锁存器可以用于存储例如数据的较高页。 当较高页位存储在相关联的存储元件中时,UDL锁存器翻转。这发生在 相关联的存储元件完成编程时,例如当其Vth超过诸如Vva、Vvb或Vvc 的目标校验电平时。当相关联的存储元件处于慢速编程模式时,QDL锁 存器可以翻转。

图3描绘了图1的存储器阵列155中的NAND快闪存储器单元的块。 存储器阵列可以包括很多块。每个示例块300、310包括若干NAND串和 相应的位线,例如在块之间共享的BL0、BL1、…。每个NAND串在其 一端连接到漏极选择栅极(drain select gate)(SGD),并且漏极选择栅极 的控制栅极通过公共SGD线而连接。NAND串在其另一端连接到源极选 择栅极(source select gate),而源极选择栅极转而连接至公共源极线320。 六十四条字线(如WL0至WL63)在源极选择栅极与漏极选择栅极之间 延伸。

也可以使用除了NAND快闪存储器之外的其他类型非易失性存储 器。例如,在闪速EEPROM系统中有用的另一类型的存储器单元利用非 传导性电介质材料来替代传导性浮动栅极,以便以非易失性方式存储电 荷。将由氧化硅、氮化硅和氧化硅形成的三层电介质(“ONO”)夹在位 于存储器单元沟道上方的半传导性衬底的表面与传导性控制栅极之间。通 过将电子从单元沟道注入到氮化物中(其中电子被捕获并被存储在有限区 域中)来对单元进行编程。然后,该存储电荷以可检测的方式来改变该单 元的沟道的一部分的Vth。通过将热空穴注入氮化物中来擦除单元。类似 的单元可以设置在分裂栅极(split-gate)配置中,在该分裂栅极配置中掺 杂多晶硅栅极在存储器单元沟道的一部分之上延伸,以形成单独的选择晶 体管。

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

图4A描绘了示例Vth分布和称为“一次通过写入”编程技术的一次 通过编程。编程通过通常意指包括如下的多个编程-校验操作的序列:从 初始Vpgm电平开始、并且进行到最终Vpgm电平来执行该多个编程校 验操作,直到针对一组存储元件达到一个或更多个相应的校验电平为止。 针对每个存储元件存储两位数据的情况来提供存储元件阵列的示例Vth 分布。针对擦除的(E状态)存储元件提供第一Vth分布400。三个Vth 分布402、404和406分别表示编程状态A、编程状态B和编程状态C。 在一个实施例中,E状态分布中的阈值电压为负,并且A状态、B状态和 C状态分布中的阈值电压为正。

可以通过保持对Vth被确定为超过对应的校验电平的那些存储元件 的计数,来确定处于特定状态的存储元件的数目。

每个不同的Vth范围均对应于一组数据位的预定值。编程到存储元 件中的数据与存储元件的Vth电平之间的具体关系取决于为存储元件采 用的数据编码方案。在一个实施例中,使用格雷码赋值法(gray code assignment)将数据值赋给Vth范围,使得如果浮动栅极的Vth错误地移 位到其邻近的物理状态,则只有一位会被影响。一个示例将“11”赋值给 Vth范围E(状态E),将“10”赋值给Vth范围A(状态A),将“00” 赋值给Vth范围B(状态B),并将“01”赋值给Vth范围C(状态C)。 然而,在其他实施例中没有使用格雷码。尽管示出了四个状态,但是也可 以使用其他多状态结构,包含包括多于或少于四个状态的多状态结构。

还设置了三个读取参考电压Vra、Vrb和Vrc,以用于从存储元件读 数据。通过测试给定存储元件的Vth是高于还是低于Vra、Vrb和Vrc, 系统可以确定该存储元件所处的状态,例如编程条件。

此外,设置三个目标校验参考电压Vva、Vvb和Vvc。当将存储元件 编程到状态A时,系统将测试这些存储元件是否具有大于或等于Vva的 Vth。当将存储元件编程到状态B时,系统将测试这些存储元件的是否具 有大于或等于Vvb的阈值电压。当将存储元件编程到状态C时,系统将 确定这些存储元件的Vth是否大于或等于Vvc。

在称为全序列编程的一个实施例中,可以将存储元件从E状态直接 编程到编程状态A、B或C中的任何一个。例如,首先可以将待编程的一 群存储元件擦除,使得该群中的所有存储元件处于擦除状态E。然后,如 图10所描绘的一系列编程脉冲将被用于将存储元件直接编程到状态A、 状态B或状态C。尽管一些存储元件被从状态E编程到状态A,但是其 他存储元件被从状态E编程到状态B以及/或者从状态E编程到状态C。

图4B和图4C描绘了示例阈值电压分布和称为“二次通过写入”编 程技术的二次通过编程。在此方法中,较低校验电平和较高校验电平被用 于一个或更多个数据状态。例如,VvaL和Vva分别是A状态的较低校验 电平和较高校验电平,VvbL和Vvb分别是B状态的较低校验电平和较 高校验电平,并且VvcL和Vvc分别是C状态的较低校验电平和较高校 验电平。较低校验电平从较高校验电平偏移。校验电平可以表示电压或电 流。

在编程期间,当A状态存储元件(其意在编程到作为目标状态的A 状态)的Vth小于或等于VvaL时,该存储元件以快速编程模式进行编程。 这可以通过将位线接地来实现。当Vva≥Vth>VvaL时,该存储元件以慢 速编程模式进行编程,例如通过将相关联的位线电压增加到处于接地与完 全禁止或锁定电平之间的电平来进行。这提供了更高的精确度,并且因此 通过避免Vth的大的步增加而提供了更窄的Vth分布。当Vth>Vva时, 存储元件被锁定为不进一步编程。类似地,B状态存储元件(其意在编程 到B状态)可以具有快速编程模式和慢速编程模式。注意,在一种方法 中,对于诸如C状态的最高状态不使用慢速编程模式,这是因为其不如 针对其他状态使用慢速编程模式那么有益。描绘了允许针对C状态进行 慢速编程模式的VvcL。

例如,在具有擦除状态和七个编程状态A至状态G的八状态编程的 示例中,快速编程模式和慢速编程模式可以用于状态A至状态F。

在第一次编程通过中(图4B),A状态存储元件、B状态存储元件和 C状态存储元件被分别从E状态400编程到A状态、B状态和C状态各 自的较低校验电平VvaL、VvbL和VvcL(分别是较低分布401、较低分 布403和较低分布405)。在第二次编程通过中(图4C),A状态存储元 件、B状态存储元件和C状态存储元件被分别从较低分布401、较低分布 403和较低分布405分别编程到分别使用校验电平Vva、Vvb和Vvc的最 终分布402、最终分布404和最终分布406。

图5A描绘了示例阈值电压分布和一次通过写入编程,其中在QPW 编程选项中可以使用多达两种编程速度。通常,对于每个目标状态,可以 限定如下校验电平:当该校验电平被超过时,该校验电平触发针对存储元 件的较慢编程速度。此校验电平可以与用于发信号通知编程通过结束的校 验电平是不同的。在这个示例中,使用单编程通过将A状态存储元件从E 状态分布500编程到A状态分布502,由此超过了校验电平Vva-speed, 该校验电平Vva-speed用作检查点,以通过例如增加相关联的位线电压来 触发Vva≥Vth>Vva-speed的每个A状态存储元件的较慢编程速度。 Vth≤Vva-speed的A状态存储元件通过例如将其位线电压保持接地而以 较快速度编程。其Vth达到Vva(形成分布502)的所有A状态存储元件 被锁定为不进一步编程。

类似地,使用单编程通过将B状态存储元件从E状态分布500编程 到B状态分布504,由此超过了校验电平Vvb-speed,该校验电平 Vvb-speed用作检查点,以触发Vvb≥Vth>Vvb-speed的每个B状态存储 元件的较慢编程速度。Vth≤Vvb-speed的B状态存储元件以较快速度编 程。其Vth达到Vvb(形成分布504)的所有B状态存储元件被锁定为不 进一步编程。

此外,使用单编程通过将C状态存储元件从E状态分布500编程到 C状态分布506,由此超过了校验电平Vvc-speed,该校验电平Vvc-speed 用作检查点,以触发Vvc≥Vth>Vvc-speed的每个C状态存储元件的较慢 编程速度。Vth≤Vvc-speed的C状态存储元件以较快速度编程。其Vth 达到Vvc(形成分布506)的所有C状态存储元件被锁定为不进一步编程。

关于在此编程选项中所提及的多达两种编程速度,相较而言,在图 4A至图4C的技术中,使用了“二次通过写入”技术中的两次编程通过。 这样做是为了减小来自邻近存储元件的干扰效应的影响。在第一次通过 中,将所有的存储元件编程为接近其最终目标Vth。然后,在第二次通过 期间,将存储元件编程以达到最终目标Vth。所以,第一次通过与第二次 通过之间的总的Vth移位较小,因此对邻近存储元件的相应干扰效应也较 小。例如,可以以下文进一步讨论的图7A和图7B所示的顺序来编程。 在第二次通过期间,因为存储元件已经被编程为接近其目标,所以,当对 这些存储元件编程时,由于其Vth比其稳定状态值高,因此这些存储元件 最初自然较慢地编程。该“通过写入效应”有助于收紧最终的Vth分布。

可以使用多达两种编程速度的编程选项可以被称为“快速通过写入” (QPW)技术。QPW可以独立地用在二次通过技术的第一次通过或第二 次通过中,或者用在两者中。对于使用QPW的每次通过,使用低于在其 处发生编程通过结束和锁定的那个校验电平的较低校验电平(Vva-speed、 Vvb-speed、Vvc-speed)。此较低校验电平用作检查点以减慢编程,但并 不触发存储元件的锁定。在QPW中,通过将位线偏压施加到存储元件的 相关联的沟道区域,来人工地减慢存储元件的编程速度。此外,注意, QPW校验电平(Vva-speed、Vvb-speed、Vvc-speed)可以被独立地优化。 在Vva-speed与Vva之间存在下述最优间隙:在该最优间隙处,获得QPW 在收紧Vth分布方面的最大益处。QPW校验电平不取决于先前编程通过 的校验电平。针对每个目标状态,所提及的最优间隙可以相同或不同。还 要注意,在QPW中可存在只能以一种速度而不是两种速度来编程的一些 存储元件,例如其Vth随着一个编程脉冲跳变正好超过Vva-speed并达到 Vva的A状态存储元件。这样的存储元件在不经历慢速编程的情况下达 到其目标电平。所以,在QPW中不是所有的存储元件都以两种速度编程。 然而,通常大部分存储元件以两种速度编程。

图5B描绘了在二次通过编程期间A状态的示例阈值电压分布,其中 在第一次编程通过期间,可以在QPW编程选项中使用多达两种编程速 度。尽管为了清楚起见,仅考察A状态,但是其他目标数据状态可以类 似地处理。在此情况下,在第一次编程通过中A状态存储元件超过了 Vva-speed,使得其编程对于第一次编程通过的第一部分为快,而对于第 一次编程通过的第二部分为慢。因此,在第一次编程通过中,A状态存储 元件从E状态分布500转变到由VvaL限定的较低A状态分布501,从而 超过用作检查点以触发每个A状态存储元件的较慢编程速度的Vva- speed。因此,随着A状态存储元件转变到较低A状态分布501,A状态 存储元件的速度降低,发信号通知Vth>Vval的每个A状态存储元件的第 一次编程通过结束。在第二次编程通过中,A状态存储元件被从分布501 编程到由Vva限定的分布502,发信号通知Vth>Vva的每个A状态存储 元件的第二次编程通过结束。可选地,如接下来所讨论的那样,第二次编 程通过也可以使用QPW。

图5C描绘了在二次通过编程期间A状态的示例阈值电压分布,其中 在第二次编程通过期间可以在QPW编程选项中使用多达两种编程速度。 再次地,尽管为了清楚起见,仅考察A状态,但是其他目标数据状态可 以类似地处理。在此情况下,A状态存储元件在第二次编程通过中超过校 验电平Vva-speed1,该校验电平Vva-speed1可以与图5B中的Vva-speed 不同。首先,A状态存储元件从E状态分布500转变到由VvaL限定的较 低A状态分布501,发信号通知Vth>VvaL的每个A状态存储元件的第 一次编程通过结束。可选地,第一次编程通过可以使用图5B中所描述的 QPW。在第二次编程通过中,A状态存储元件最初在Vth≤Vva-speed1时 以快的速度、然后在Vth>Vva-speed1时以慢的速度从分布501转变到分 布502。针对Vth>Vva的每个A状态存储元件发信号通知第二次编程通 过的结束。

图6A、图6B和图6C分别描绘了称为“三次通过写入”编程技术的 三次通过编程操作的第一次编程通过、第二次编程通过和第三次编程通 过,其中使用了中间或中等偏低(lower-middle,LM)状态。此编程技 术通过如下方式来减小浮动栅极与浮动栅极耦合的效应:对于任何特定存 储元件,在针对先前页对邻近存储元件进行写入之后,关于特定页对该特 定存储元件进行写入。在一个示例实施方式中,非易失性存储元件使用四 个数据状态在每个存储元件中存储两位数据。例如,E状态是擦除状态, 并且状态A、状态B和状态C是编程状态。和前面一样,E状态存储数 据11,状态A存储数据01,状态B存储数据00,而状态C存储数据10。 还可以使用数据到物理数据状态的其他编码。每个存储元件存储两页数 据。为了引用的目的,将这些数据页称为较高页和较低页;然而,也可以 给这些数据页其他标签。

在第一次编程通过中,针对所选择的字线WLn来编程较低页。例如, 这可以对应于图7B中的步骤“1”(后面讨论)。如果较低页要保持数据1, 则存储元件状态保持在状态E(分布600)。如果数据要编程为0,则WLn 上的存储元件的阈值电压被增加,以使得存储元件被编程到中间(LM或 中等偏低)状态(分布606)。因此,图6A示出存储元件从E状态到LM 状态的编程。

在一个实施例中,在存储元件从E状态编程到LM状态之后,然后, 该存储元件在NAND串中的处于邻近字线WLn+1上的邻近存储元件将 被关于其较低页进行编程。对于WLn上的存储元件的状态LM而言这将 具有增宽Vth分布606的效应。当对较高页进行编程时将会纠正Vth分 布606的这种明显增宽。E状态分布600也将增宽。在执行针对WLn的 第一次编程通过之后,可以如图7B中由步骤“2”所表示的那样,针对 WLn执行类似的第一次编程通过。

图6B描绘了使用较低校验电平VvaL、VvaB和VvaC对较高页进行 编程。例如,这可以对应于图7B的步骤“3”。此外,在一个实施例中, 在较高页编程之前,执行读取操作以确定哪些存储元件属于E状态及哪 些存储元件属于LM状态。可以以读电平Vra或在E状态与LM状态Vth 分布之间的某一其他合适电压电平来进行此读取操作。在一个实施中执行 此步骤,其中在在WLn上对较低页进行编程之后移除锁存器中的较低页 数据,以使得锁存器可以用于WLn+1的较低页数据。在此情况下,在在 WLn上对较高页数据编程之前,进行读取以确定较低页数据。在其他实 施方式中,不需要此读取步骤,例如如下情况:使用二进制缓存,该二进 制缓存能够贯穿字线的不同编程通过而保存字线的所有页的数据。

如果存储元件处于E状态且较高页是1,则存储元件将保持在E状态 (分布600)。如果存储元件处于E状态且其较高页数据是0,则存储元 件的Vth将被增加到VvaL以上,(分布602)。如果存储元件处于LM状 态606且较高页数据是0,则存储元件的Vth将被编程到VvbL以上(分 布608)。如果存储元件处于LM状态606且较高页数据是1,则存储元件 的Vth将被增加到VvcL以上(分布612)。所描绘的处理减小了浮动栅 极与浮动栅极耦合的效应,这是因为只有邻近存储元件的较高页编程将对 给定存储元件的表观Vth具有影响。一个可替代的状态编码示例为:当较 高页数据是0时,从分布606移动到状态C,并且当较高页数据是1时, 移动到B状态。在执行针对WLn的第二次编程通过之后,可以如图7B 中由步骤“4”所表示的那样对WLn+2执行第一次编程通过,并且可以 如图7B中由步骤“5”所示的那样对WLn+1执行第二次编程通过。

图6C描绘了使用较高校验电平Vva、Vvb和Vvc对较高页进行编程 以提供针对A状态从分布602到分布604、针对B状态从分布608到分 布610,以及针对C状态从分布612到分布614的转变。例如,这可以对 应于图7B中的步骤“6”。

尽管此三次通过编程示例提供了四个数据状态和两页数据,但是所教 示的构思可以应用于具有多于或少于四个状态以及比多于或少于两页的 其他实施方式。例如,目前正在计划或制造每存储元件具有八个或十六个 状态的存储器装置。

通常,可以针对图6A至图6C的编程通过中的任意编程通过来调整 编程速度。例如,在图6B的第二次编程通过中,可以设置在图5B中所 描绘的Vva-speed<VvaL。类似地,可以设置Vvb-speed<VvbL和 Vvc-speed<VvcL。在此情况下,在第二次编程通过中,A状态存储元件 在Vth≤Vva-speed时以快的速度编程,而在Vva-speed<Vth≤VvaL时以慢 的速度编程。类似地,B状态存储元件在Vth≤Vvb-speed时以快的速度编 程,而在Vvb-speed<Vth≤VvbL时以慢的速度编程。类似地,C状态存储 元件在Vth≤Vvc-speed时以快的速度编程,而在Vvc-speed<Vth≤VvcL时 以慢的速度编程。

在图6C的第三次编程通过的示例中,可以设置如图5C所描绘的 VvaL<Vva-speed<Vva。类似地,可以设置VvbL<Vvb-speed<Vvb和 VvcL<Vvc-speed<Vvc。在此情况下,在第三次编程通过中,A状态存储 元件在VvaL<Vth≤Vva-speed时以快的速度编程,而在Vva-speed<Vth ≤Vva时以慢的速度编程。类似地,B状态存储元件在VvbL<Vth≤ Vvb-speed时以快的速度编程,而在Vvb-speed<Vth≤Vvb时以慢的速度 编程。类似地,C状态存储元件在VvcL<Vth≤Vvc-speed时以快的速度编 程,而在Vvc-speed<Vth≤Vvc时以慢的速度编程。

前面的针对第二次编程通过和第三次编程通过的示例可以单独使用 或者组合使用。

图6D描绘了称为“二次通过写入”编程技术的二次通过编程操作的 第二次编程通过,其中图6A描绘了第一次编程通过,并且其中在QPW 编程选项中可以使用多达两种编程速度。在这个另外的可替换方式中,使 用在图5A至图5C中所讨论的校验电平Vva-speed、Vvb-speed和 Vvc-speed以触发编程速度减慢。具体地,A状态存储元件将在其 Vth≤Vva-speed时以快的速度编程,而在Vva>Vth>Vva-speed时以慢的 速度编程。Vth>Vva触发编程锁定条件。B状态存储元件将在其 Vth≤Vvb-speed时以快的速度编程,而在Vvb>Vth>Vvb-speed时以慢的 速度编程。Vth>Vvb触发编程锁定条件。C状态存储元件将在其 Vth≤Vvc-speed时以快的速度编程,而在Vvc>Vth>Vvc-speed时以慢的速 度编程。Vth>Vvc触发编程锁定条件。

图7A描绘了一组存储元件的以来回字线顺序进行的二次通过编程操 作。所描绘的部件可以是存储元件、字线和位线的显著更大的集合的子集。 在一个可能的编程操作中,在第一次编程通过中对在WLn上的存储元件 (描绘为方块)进行编程,如由圆圈“1”所表示的。接下来(“2”),在 针对字线WLn+1的第一次编程通过中对WLn+1上的存储元件进行编程。 在此示例中,当选择用于编程的字线时,在每个编程脉冲后发生校验操作。 在所选择的字线上的校验操作期间,将校验电压施加到未选择的字线以开 启(使其导通)未选择的存储元件,以使得所选择的字线可以发生感测操 作如校验操作。接下来(“3”),在第二次编程通过中对WLn上的存储元 件进行编程。接下来(“4”),在针对字线WLn+2的第一次编程通过中对 WLn+2上的存储元件进行编程。接下来(“5”),在第二次编程通过中将 WLn+1上的存储元件编程到其最终的相应状态。

通过以来回方式在多次编程通过中对字线进行编程,而减小了趋于增 加并加宽其Vth分布的由电容耦合导致的干扰效应。相较之下,在单次通 过编程中,每条字线都在移动到下一字线之前完全编程。

第一次编程通过和第二次编程通过可以使用此处描述的编程方案中 的任何一种编程方案。图7B描绘了一组存储元件的以来回字线顺序进行 的三次通过编程操作。在较高页的第一次编程通过和第二次编程通过之前 执行较低页的初始编程通过。第一次编程通过对数据的较低页进行编程, 第二次编程通过对第一次编程通过中的数据的较高页进行编程,并且第三 次编程通过完成第二次编程通过中的数据的较高页的编程。在“1”处对 WLn执行第一次编程通过,在“2”处对WLn+1执行第一次编程通过, 在“3”处对WLn执行第二次编程通过,在“4”处对WLn+2执行第一 次编程通过,在“5”处对WLn+1执行第二次编程通过,在“6”处对 WLn执行第三次编程通过,在“7”处对WLn+3执行第一次编程通过, 在“8”处对WLn+2执行第二次编程通过,在“9”处对WLn+1执行第 三次编程通过,并且以此类推。

在一种可能的方法中,第一次编程通过使用如图6A中所描绘的校验 电平VvLM,第二次编程通过使用如图6B中所描绘的一组较低校验电平 VvaL、VvbL和VvcL,并且第三次编程通过使用如图6C中所描绘的一 组较高校验电平Vva、Vvb和Vvc。第二次编程通过的一组较低校验电平 与第三次编程通过的一组较高校验电平之间的差可以在硅上优化,以实现 一组最紧密的Vth分布。

第一次编程通过、第二次编程通过和第三次编程通过可以使用此处讨 论的编程方案中的任何编程方案。

图8描绘了对存储元件进行编程所需的最高Vpgm与存储元件的位 线电压之间的关系。x轴描绘了增加的位线电压(Vbl),而y轴描绘了完 成存储元件的编程所需要的最高Vpgm电压。

随着Vbl增加,完成存储元件的编程所需的最高Vpgm也增加。通 常,存储元件的编程速度减缓的程度与Vbl乘以常数k成比例,该常数k 是所描绘直线的斜率。该常数通常大于1,这是因为Vbl增加1V(如△Vbl= 1V的位线步长),就需要Vpgm增加大于1V(如△Vpgm=1V的编程脉 冲步长)以进行抵消。因此,增加Vbl是控制编程速度并且收窄Vth分 布的宽度的有力工具。然而,不能使Vbl太高,这是因为其主要受Vsgd (漏极侧选择栅极)余裕窗(margin-window)的限制。当Vbl更高时, 开启用于对存储元件进行编程的漏极侧选择栅极所需的Vsgd电压也更 高。但是较高的Vsgd值具有提升来自禁止的存储元件的沟道的潜在泄露 的风险,这可能导致编程紊乱。

存储元件的编程速度取决于跨其氧化物遂道的电场,该电场与浮动栅 极的电压和位于浮动栅极下方的衬底中的沟道的电压之间的差成比例。通 常,控制栅极电压Vpgm以阶梯形式逐步增加,而Vbl固定在0V。为了 减慢编程(以收紧Vth分布),可以使用较小的Vpgm步长。然而,这导 致校验操作和编程脉冲的数目增加,从而增加总的编程时间。取代改变 Vpgm步长,可以以阶梯形式、与Vpgm脉冲的步步伐一致地增加Vbl, 来减小有效的Vpgm步长△Vpgm-effective。可以写成: △Vpgm-effective=△Vpgm-(k×△Vbl),其中k>1且△Vpgm-effective< △Vpgm。通常,k的值可以为约1.4。较大的△Vbl导致较小的△Vpgm- effective。此技术的优点是Vbl可以在不同时间针对存储元件的不同子集 逐步增加,其中每个子集具有不同的目标数据状态。因此,可以针对属于 不同目标数据状态的一组存储元件实现不同编程速度。另一方面,如果减 小Vpgm步长,则其会影响所有编程存储元件的编程速度。与使用均等的 较小的Vpgm步长相比,通过每次针对特定目标数据状态逐步增加Vbl, 可以保持校验操作的数目相同,同时减小完成编程所需的编程脉冲的总数 目,并且因此通过减少总的编程时间来提高性能。

Vbl的步伐一致的增加例如是指如下事实:对于具有共同目标数据状 态并且尚未被锁定为不编程的存储元件的给定子集,Vbl可以随着每个编 程脉冲逐步增加。被锁定为不编程的存储元件的Vbl被设置为 Vbl-lockout。

图9A描绘了位线电压逐步增加的编程技术。在步骤900处开始所有 目标数据状态的存储元件的编程通过。对于所有目标数据状态的存储元 件,步骤902至步骤912独立地执行并且部分地同时进行。步骤902包括 在编程期间不使位线逐步增加的情况下执行一个或更多个编程-校验操 作。在步骤904处,第一触发条件被满足。这可以基于Vpgm电平、预定 的编程脉冲编号或位扫描,例如下面进一步讨论的那样。第一触发条件表 示具有共同的目标数据状态的存储元件的子集开始位线逐步增加循环的 条件。步骤906包括在编程期间使位线逐步增加的情况下执行一个或更多 个编程-校验操作。在步骤908处,第二触发条件被满足。这可以基于Vpgm 电平、预定的编程脉冲编号或位扫描,例如下面进一步讨论的那样。第二 触发条件表示具有共同的目标数据状态的存储元件的子集停止位线逐步 增加循环的条件。步骤910包括在编程期间不使位线逐步增加的情况下执 行一个或更多个编程-校验操作。在此情况下,位线可以固定在比锁定电 平小的最大允许电平处。在步骤912处,结束相关联的目标数据状态的存 储元件的编程-校验操作。实际上,达到校验电平的存储元件被锁定为不 进一步编程,所以具有特定目标数据状态的一些存储元件可以被锁定为不 进一步编程,同时具有特定目标数据状态的其他存储元件继续编程。在一 些情况下,例如当在步骤906中相关联的目标数据状态的所有存储元件均 被锁定时,不执行步骤910。下面进一步详细讨论图9A的编程技术。

图9B作为图9A的编程技术的示例而描绘了经历作为编程脉冲编号 的函数的校验操作的数据状态。在编程期间,所有的存储元件一起编程, 但是因为A状态校验电平比B状态校验电平低,且B状态校验电平比C 状态校验电平低,所以属于较低目标状态的存储元件比属于较高目标状态 的存储元件更快地达到其目标电平。因此,为了节省编程时间,较高目标 状态的校验操作不需要从第一个编程脉冲自身开始。通常,B状态校验操 作可以跳过初始的几个编程脉冲,而C状态校验操作可以跳过更多的编 程脉冲。

当Vbl在编程期间没有如本文中所描述的那样逐步增加却固定在 0V、且△Vpgm=△Vpgm-effective=0.3V(作为示例)时,发生序列950。 首先,校验A状态存储元件,然后校验A状态存储元件和B状态存储元 件,然后校验B状态存储元件和C状态存储元件,并且最后校验C状态 存储元件。此序列消耗了所提供的三个序列950、960和970当中最长的 编程时间。注意,在这个特定的示例中,碰巧发生的是没有校验A状态 存储元件、B状态存储元件和C状态存储元件的一组编程脉冲。对于不 同的Vpgm步长或其他装置参数的一些变化,则可能不是这种情况。也就 是说,可以存在用于校验A状态存储元件、B状态存储元件和C状态存 储元件的一个或更多个编程脉冲,如序列960和序列970所描绘的。

当Vbl在编程期间针对所有目标数据状态如本文中所描述的那样逐 步增加时,发生序列960,此处,作为示例,△Vpgm=0.4V且△Vbl被 选择为使得△Vpgm-effective=0.3V。首先,校验A状态存储元件,然后 校验A状态存储元件和B状态存储元件,然后校验A状态存储元件、B 状态存储元件和C状态存储元件,然后校验B状态存储元件和C状态存 储元件,并且最后校验C状态存储元件。与序列950相比,此序列减少 了编程时间。因为与△Vpgm=△Vpgm-effective=0.3V贯穿序列950相比, 在序列960中在位线逐步增加之前和之后均有△Vpgm=△ Vpgm-effective=0.4V,所以序列960中比序列950中存储元件编程地更快。 然而,因为在序列950和序列960两者中,在对具有共同目标数据状态的 存储元件进行编程期间都是△Vpgm-effective=0.3V,所以可以在两个序列 中实现相同的Vth分布宽度。

当Vbl在编程期间针对除了例如C状态的最高目标数据状态以外的 所有目标数据状态均如本文中所描述的那样逐步增加时,发生序列970, 此处,△Vpgm=0.4V且△Vbl被选择为使得△Vpgm-effective=0.3V。首 先,校验A状态存储元件,然后校验A状态存储元件和B状态存储元件, 然后校验A状态存储元件、B状态存储元件和C状态存储元件,然后校 验B状态存储元件和C状态存储元件,并且最后校验C状态存储元件。 因为对于C状态存储元件而言贯穿其编程均有△Vpgm=△ Vpgm-effective=0.4V,使得C状态存储元件的编程时间减少,所以该序 列与序列960相比进一步减少了编程时间。整体上,在对给定编程脉冲执 行更多校验操作的情况下编程时间减少了,这是由于编程脉冲的数目以及 相关联的逐步增加时间减少了。

如所提到的那样,通常针对最高目标数据状态可以容许较宽的Vth 分布,使得可以通过针对最高目标数据状态不使Vbl逐步增加来进一步减 少编程时间。具体地,当Vbl没有逐步增加时,Vth分布的较高尾部会更 高。然而,这从Vth窗的角度来说并不那么关键,该Vth窗被限定为在 最低状态较高尾部与最高状态较低尾部之间的间隙。针对最高目标数据状 态不使Vbl逐步增加的另一优点在于:与Vbl逐步增加的情况相比,对最 高状态存储元件进行编程所需的最高Vpgm更低。较高的Vpgm可以导 致E状态存储元件的增加的编程紊乱。因此,从编程紊乱的角度讲,期 望禁用最高位线逐步增加。

注意,此示例涉及四个状态的存储器装置,但是此构思可以扩展到增 加的状态,例如八个状态或十六个状态。

图10描绘了针对图9B的序列960的、作为编程脉冲编号的函数的 编程-校验操作。通常,编程操作可以包括将脉冲列(pulse train)施加到 所选择的字线,其中脉冲列包括跟随有一个或更多个校验脉冲的编程脉 冲。跟随有一个或更多个校验脉冲的编程脉冲的每个组合形成编程-校验 操作或迭代。注意,编程脉冲可以具有任意数量的不同波形形状。描绘出 方形波形,然而其他形状如多级形状或斜坡形状也是可以的。脉冲列通常 包括幅值阶梯状增加的编程脉冲,通常使用固定的步长,然而也可以使用 变化的步长。在多次通过编程操作的每个编程通过中可以施加新的脉冲 列,其于初始Vpgm电平处开始,并于低于最大允许Vpgm电平的最终 Vpgm电平处结束。在不同的编程通过中,初始Vpgm电平可以相同或不 同。在不同的编程通过中,最终Vpgm电平也可以相同或不同。在不同的 编程通过中,步长可以相同或不同。在一些情况下,在最后的编程通过中 使用较小的步长以减小Vth分布宽度。

脉冲列1000包括一系列编程脉冲1005、1010、1015、1020、1025、 1030、1035、1040、1045、1050、1055、1060、1065、1070和1075,这 些编程脉冲被施加到为编程而选择的字线以及相关联的一组非易失性存 储元件。作为示例,基于正被校验的目标数据状态,在每个编程脉冲之后 提供一个、两个或三个校验电平。可以在编程脉冲和校验脉冲之间向WLn 施加0V。例如,可以分别在第一编程脉冲1005、第二编程脉冲1010和 第三编程脉冲1015中的每个编程脉冲之后施加A状态校验脉冲(例如, 波形1006)。可以分别在第四编程脉冲1020、第五编程脉冲1025和第六 编程脉冲1030中的每个编程脉冲之后施加A状态和B状态校验脉冲(例 如,波形1021)。可以分别在第七编程脉冲1035和第八编程脉冲1040中 的每个编程脉冲之后施加A状态、B状态和C状态校验脉冲(例如,波 形1036)。可以分别在第九编程脉冲1045、第十编程脉冲1050和第十一 编程脉冲1055中的每个编程脉冲之后施加B状态和C状态校验脉冲(例 如,波形1046)。最后,可以分别在第十二编程脉冲1060、第十三编程脉 冲1065、第十四编程脉冲1070和第十五编程脉冲1075中的每个编程脉 冲之后施加C状态校验脉冲(例如,波形1061)。

图11A描绘了针对不同数据状态的、作为编程脉冲编号的函数的位 线电压的逐步增加,其中针对属于所有数据状态的存储元件使用公共的步 长。波形1100、波形1102和波形1104分别表示A状态、B状态和C状 态的位线电压。在此示例中,Vbl使用固定的步长△Vbl来逐步增加到V1、 V2、V3、V4、V5和最大允许电平Vbl-max。Vbl-lockout表示高于Vbl-max 的锁定位线电压。在一些情况下,特定目标状态的所有存储元件可能在达 到Vbl-max之前就被锁定,因而Vbl-max是可以被达到或不可以被达到 的保护措施。

对于每个目标数据状态的存储元件,可以基于不同的触发条件来设置 位线逐步增加的开始和/或位线逐步增加的结束。在一种非适应性的方法 中,针对每个目标数据状态的位线逐步增加控制循环的开始和结束来设置 固定的Vpgm脉冲编号。例如,可以以诸如BL-ramp-start-A和 BL-ramp-end-A的参数为A状态的开始编程脉冲编号和结束编程脉冲编 号,来设置存储器装置中的ROM保险丝参数,并且对其他数据状态进行 类似设置。在此示例中,BL-ramp-start-A=2,BL-ramp-end-A=7, BL-ramp-start-B=5,BL-ramp-end-B=10,BL-ramp-start-C=8,而 BL-ramp-end=13。每个数据状态具有其自身的位线逐步增加控制循环。 在此示例中,因为每个数据状态的期望Vth分布宽度相同,所以在每个位 线逐步增加控制循环中编程脉冲的数目是相同的。如果较宽的Vth分布宽 度是可接受的,则位线逐步增加控制循环可以由于更少的编程脉冲而更 小。

注意,可以选择用于位线逐步增加开始和结束的Vpgm脉冲编号, 以使得数据状态的相对少的存储元件将在该数据状态的位线逐步增加控 制循环之前或之后达到校验电平并锁定,同时绝大多数存储元件将在位线 逐步增加控制循环期间达到校验电平并锁定。允许少量的存储元件在位线 逐步增加控制循环之前或之后达到校验电平并锁定不会显著地加宽Vth 分布。但是,这减少了△Vpgm-effective被降低的时间,使得总的编程时 间没有被不必要地延长。

图11B描绘了针对A状态存储元件的、用于开始位线逐步增加循环 的触发条件。在一个示例编程通过中,A状态存储元件使用VvaL从E状 态分布1110开始编程。在一个或更多个编程脉冲之后,分布1112表示A 状态存储元件。分布1112的1114部分表示Vth>VvaL的A状态存储元件。

图11C描绘了针对A状态存储元件的、用于停止位线逐步增加循环 的触发条件。在一个或更多个另外的编程脉冲之后,分布1120表示A状 态存储元件。分布1120的1116部分表示Vth<VvaL的A状态存储元件。 没有绘出可以同时编程的、其他目标状态的存储元件的Vth分布。

作为上述非适应性方法的替换,可以使用适应性方法来设置位线逐步 增加循环的开始和/或结束。这允许对于同一存储器装置中(例如,在不 同字线上)的不同组存储元件以及不同存储器装置中的不同组存储元件而 言开始和/或结束时间可以不同。此外,对于同一组存储元件而言开始和/ 或结束时间可以不同,例如基于随着编程-擦除循环累积而随时间变化的 性能改变,或基于不同的环境条件如变化的温度。

例如,替代使用固定的编程脉冲编号,可以基于高于或低于指定校验 电平的存储元件的最小数目来开始和/或结束位线逐步增加循环。例如, 由区域1114所表示的存储元件可以由下述位扫描过程来检测,在该位扫 描过程中,读取每个位线的感测放大器以确定相关联的存储元件是否 Vth>VvaL。当检测到某个最小数目的位(如A状态存储元件)高于VvaL 时,可以开始A状态的位线逐步增加循环。类似地,当Vth低于VvaL 的A状态位的数目小于指定数目(或Vth>VvaL的A状态位的数目高于 指定数目)时,可以停止该位线逐步增加循环。在位-扫描期间用来做出 位线逐步增加开始或结束的确定的、指定的位数目可以由另外的ROM保 险丝参数来控制。针对其他状态,可以通过在其相应的校验电平处执行位 扫描来做出类似的确定。

还可以实施最大允许Vbl(例如,图11A中的Vbl-max),以使得当 尚未满足用于停止位线逐步增加的另一个触发条件时Vbl不会逐步增加 到过高的电平。

在另一种方法中,对于每个数据状态,可以在位扫描通过之后并且在 一定数目的另外的编程脉冲完成时,开始位线逐步增加循环。类似地,针 对每个数据状态,可以在位扫描通过之后并且在一定数目的另外的编程脉 冲完成时,结束位线逐步增加。

在另一个方法中,可以在另一较低数据状态的位扫描通过之后并且在 一定数目的另外的编程脉冲完成时,对于一个数据状态开始位线逐步增加 循环。例如,可以在A状态存储元件以VvaL通过位扫描之后并且在一定 数目的另外的编程脉冲(例如与图11A一致的三个编程脉冲)完成时, 对于B状态存储元件开始位线逐步增加循环。可以使用类似的方法来停 止位线逐步增加。使用这种方法,通过仅仅在最低状态上进行位扫描操作 就可以使位线逐步增加的开始和停止适应于所有数据状态。

也可以使用以上方法的任意组合来针对任意的具体目标数据状态来 确定何时开始和/或结束位线逐步增加循环。

在所提供的示例中,描绘了每存储元件四个状态、两位的存储器装置 的实施方式。然而,构思还可以例如与八个状态或十六个状态的装置一起 采用。然而,可能需要同时生成额外的位线电压。

图12A描绘了与图11A相符的、针对A状态存储元件的、作为编程 脉冲编号的函数的编程速率。如所提到的那样,在存储元件的每脉冲Vth 改变方面的编程速度或编程速率△Vth/脉冲是Vbl的函数。如果不施加位 线偏压(Vbl=0V),则△Vth/脉冲=R2,为较高的速率。如果与Vpgm逐 步增加步伐一致地施加持续位线逐步增加,则△Vth/脉冲=R1<R2,其中 R1是较低的速率。在图11A的示例中,属于A状态存储元件的位线在第 二编程脉冲处开始逐步增加;因此,A状态存储元件从R2到R1的转变 发生在第二编程脉冲处。类似地,A状态存储元件的位线逐步增加在第八 编程脉冲处停止(最后的逐步增加在第七编程脉冲处);因此,A状态存 储元件从R1返回到R2的转变发生在第八编程脉冲处。实际上,△Vth/ 脉冲可以随着一个或更多个编程脉冲逐步地转变,而不是呈现出为了简便 而描绘的一步变化。在第九编程脉冲处,A状态存储元件被锁定,并且因 此编程速度降到零。

图12B描绘了与图11A相符的、针对B状态存储元件的作为编程脉 冲编号的函数的编程速率。在图11A的示例中,对于B状态存储元件, 在第五编程脉冲处发生从R2到R1的转变,并且稍后在第十一编程脉冲 处发生从R2到R1的转变。在第十二编程脉冲处,B状态存储元件被锁 定,并且因此编程速度降到零。

图12C描绘了与图11A相符的、针对C状态存储元件的作为编程脉 冲编号的函数的编程速率。在图11A的示例中,对于C状态存储元件, 在第八编程脉冲处发生从R2到R1的转变,并且稍后在第十四编程脉冲 处发生从R2到R1的转变。在第十五编程脉冲之后,编程完成并且因此 C状态存储元件的编程速度降到零。

图13描绘了针对不同数据状态的、作为编程脉冲编号的函数的位线 电压的逐步增加,其中,针对所有数据状态,使用较小步长,然后使用较 大步长,然后使用较小步长。在图11A的示例中,Vbl使用固定步长即以 固定速率来逐步增加。在此方法中,使用不同的位线逐步增加速率。使用 第一较小位线逐步增加速率、之后第二较大位线逐步增加速率、之后第三 较小位线逐步增加速率可以是有益的。第三位线逐步增加速率小于第二位 线逐步增加速率,并且可以等于第一位线逐步增加速率。当根据高斯分布 (Gaussian distribution),大多数存储元件达到目标校验电平和锁定条件 时,此方法最大程度地减慢编程。在给定字线上的存储元件的自然编程 Vth分布实质上通常是高斯分布,使得大多数存储元件的Vth出现在分布 的中心附近,而较少单元的Vth处于高斯分布的较低尾部和较高尾部。

因此,对于给定的目标数据状态,大多数存储元件将在接近同一编程 脉冲编号处——在高斯分布的顶部——锁定,所以可以通过以最高位线逐 步增加速率来在此时最大程度地减慢编程而实现最高的效益与代价的比 率。效益是Vth分布的收窄,而代价是编程时间的增加。处于高斯分布的 较低尾部和较高尾部的存储元件将会在如下的特定编程脉冲编号处锁定: 这些特定编程脉冲编号比大多数存储元件将被锁定的编程脉冲更远。在此 情况下,可以通过在这些特定编程脉冲期间使用较低的但非零的位线逐步 增加速率来实现最高的效益与代价的比率。处于高斯分布的更低尾部和更 高尾部的存储元件将在比大多数存储元件将被锁定的编程脉冲甚至更远 的其他编程脉冲编号处锁定。在此情况下,可以通过在这些其他编程脉冲 期间不使位线逐步增加来实现最高的效益与代价的比率。

例如,波形1300、波形1302和波形1304分别表示A状态存储元件、 B状态存储元件和C状态存储元件的Vbl。每个波形均包括位线电平V1′、 V2′、V3′、V4′、V5′和Vbl-max。当Vbl被设置为V1′和V2′时的逐步增 加速率或步长是相对小的。类似地,当Vbl被设置为V5′和Vbl-max时的 逐步增加速率或步长也是相对(并且可选地,相同地)小的。当Vbl被设 置为V3′和V4′时的逐步增加速率或步长是相对大的。

图14描述了针对不同的数据状态的、作为编程脉冲编号的函数的位 线电压的逐步增加,其中使用较大步长用于较低数据状态,而使用较小步 长用于最高数据状态。此示例与图11A的示例相似,除了在此示例中将 较小Vbl步长用于最高状态C状态。在此情况下,Vbl使用与相应目标数 据状态相关联的步长逐步增加,其中不同的相应步长与一组可能的目标数 据状态中的至少两个不同的相应目标数据状态相关联。例如,一个Vbl 逐步增加速率可以用于A状态存储元件和B状态存储元件,而另一较低 的Vbl逐步增加速率可以用于C状态存储元件。使用较小的Vbl逐步增 加速率会以更宽的Vth分布为代价而导致更快的编程。

波形1400、波形1402和波形1404分别表示A状态存储元件、B状 态存储元件和C状态存储元件的Vbl。此处,C状态的波形1404中的V1、 V2、V3、V4和V5的Vbl电平可以与图11A中相同。V1〞、V2〞、V3 〞和V4〞的Vbl电平被分别用于A状态的波形1400和B状态的波形1402 中。如所提到的那样,不使位线逐步增加会导致最高状态的较宽Vth分布, 而这通常是减少编程时间的可接受的折衷。另一方面,较大的Vbl逐步增 加速率会导致更紧密的Vth分布但会导致更长的编程时间。本示例在针对 最高状态不使用位线逐步增加与使用被用于较低状态(如A状态、B状 态和C状态)的较大位线逐步增加之间提供了折中。这导致了一种平衡, 该平衡在于:与不使用位线逐步增加的情况相比,提供了最高状态的稍微 更窄的Vth分布。编程时间比针对最高状态不使用Vbl逐步增加的情况 更长,但是比针对最高状态使用较大的Vbl逐步增加情况更短。

图15描绘了针对不同数据状态的、作为编程脉冲编号的函数的位线 电压的逐步增加,其中针对所有数据状态使用公共的步长,并且基于Vth 电平来增加附加的位线电压。在一些编程技术中,通常对于除了最高状态 外的所有状态,附加的位线电压(△)用于减慢编程。该附加的位线电压 可以被用于尚未被锁定为不编程的、且其Vth在相应目标数据状态的第一 校验电平和第二校验电平之间的存储元件。例如,例如参照如图4,对于 A状态,第一校验电平和第二校验电平可以分别是VvaL和Vva;对于B 状态,第一校验电平和第二校验电平可以分别是VvbL和Vvb;而对于C 状态,第一校验电平和第二校验电平可以分别是VvcL和Vvc。在一个可 能的实施方式中,在一个编程脉冲处开始位线逐步增加,而在不同的编程 脉冲处开始增加附加的位线电压。类似地,可以在一个编程脉冲处停止位 线逐步增加,而在不同的编程脉冲处停止附加的位线电压。位线逐步增加 可以同时施加于具有共同的目标数据状态的存储元件的子集,同时,在不 考虑该子集的编程处理的情况下,附加的位线电压通过单独存储元件的位 线施加到该单独存储元件。通过在当前的逐步增加电平之外将Vbl提高附 加的固定量来实现施加附加的位线电压。该方式会增加在给定时间所需的 位线电压的数目。

例如,对于A状态存储元件,波形1500和波形1502分别描绘了不 具有和具有增加的附加位线电压的位线逐步增加电平。注意,也可以在位 线逐步增加之前或之后施加所增加的附加位线电压。对于B状态存储元 件,波形1504和波形1506分别描绘了不具有和具有增加的附加位线电压 的位线逐步增加电平。对于C状态存储元件,波形1508和波形1510分 别描绘了不具有和具有增加的附加位线电压的位线逐步增加电平。 Vbl-max-new代表可以允许的、新的较高Vbl。可替换地,可以实施 Vbl-max,使得位线逐步增加提早终止以避免超过Vbl-max。也就是说, 可以就位线逐步增加电平与附加位线电压的总和来实施最大允许Vbl。

在一个实施例中,用于对一组非易失性存储元件进行编程的方法包括 将一组编程脉冲施加到该组非易失性存储元件,其中该组非易失性存储元 件中的每个非易失性存储元件与相应的位线相关联,并且该组非易失性存 储元件包括非易失性存储元件的不同子集。每个子集被编程到多个目标数 据状态当中的相应目标数据状态的相应校验电平(Vva、Vvb、Vvc),包 括被编程到一个相应目标数据状态的一个相应校验电平的、非易失性存储 元件的一个子集。该方法还包括在该组编程脉冲期间针对非易失性存储元 件的该一个子集确定何时满足第一触发条件。该方法还包括,当满足第一 触发条件时,以与该组编程脉冲中的多个连续编程脉冲中的每个编程脉冲 步伐一致的方式,逐步增加该一个子集中的尚未被锁定为不编程的非易失 性存储元件的相应位线的电压。

在另一实施例中,对应的非易失性存储系统包括:一组非易失性存储 元件,其中该组非易失性存储元件包括非易失性存储元件的不同子集,并 且每个子集被编程到多个目标数据状态当中的相应目标数据状态的相应 校验电平,包括被编程到一个相应目标数据状态的一个相应校验电平的、 非易失性存储元件的一个子集;与每个非易失性存储元件相关联的相应位 线;至少一个控制电路,用于:(a)将一组编程脉冲施加到该组非易失性 存储元件;(b)在该组编程脉冲期间,针对非易失性存储元件的该一个子 集确定何时满足第一触发条件;以及(c)当满足第一触发条件时,以与 该组编程脉冲中的多个连续编程脉冲中的每个编程脉冲步伐一致的方式, 逐步增加该一个子集中的尚未被锁定为不编程的非易失性存储元件的相 应位线的电压。

在另一实施例中,非易失性存储系统包括用于将一组编程脉冲施加到 一组非易失性存储元件的装置,其中该组非易失性存储元件中的每个非易 失性存储元件与相应的位线相关联,并且该组非易失性存储元件包括非易 失性存储元件的不同子集。每个子集被编程到多个目标数据状态当中的相 应目标数据状态的相应校验电平(Vva、Vvb、Vvc),包括被编程到一个 相应目标数据状态的一个相应校验电平的、非易失性存储元件的一个子 集。该非易失性存储系统还包括用于在该组编程脉冲期间针对非易失性存 储元件的该一个子集来确定何时满足第一触发条件的装置。该非易失性存 储系统还包括下述装置,该装置用于当满足第一触发条件时,以与该组编 程脉冲中的多个连续编程脉冲中的每个编程脉冲步伐一致的方式,逐步增 加该一个子集中的尚未被锁定为不编程的非易失性存储元件的相应位线 的电压。

在另一实施例中,用于对一组非易失性存储元件进行编程的方法包括 将一组编程脉冲施加到该组非易失性存储元件,其中该组非易失性存储元 件中的每个非易失性存储元件与相应的位线相关联,该组非易失性存储元 件包括非易失性存储元件的不同子集,并且每个子集被编程到多个目标数 据状态当中的相应目标数据状态的相应校验电平,包括被编程到一个相应 目标数据状态的一个相应校验电平的、非易失性存储元件的一个子集。该 方法还包括:以与该编程脉冲组中的多个连续编程脉冲中的每个编程脉冲 步伐一致的方式,逐步增加该一个子集中的尚未被锁定为不编程的非易失 性存储元件的相应位线的电压;在该组编程脉冲期间,针对非易失性存储 元件的该一个子集确定何时满足触发条件;以及当满足该触发条件时,在 该组编程脉冲中的一个或更多个另外的编程脉冲中的每个编程脉冲期间 来固定电压。

在另一实施例中,对应的非易失性存储系统包括:一组非易失性存储 元件,该组非易失性存储元件包括非易失性存储元件的不同子集,其中每 个子集被编程到多个目标数据状态当中的相应目标数据状态的相应校验 电平,包括被编程到一个相应目标数据状态的一个相应校验电平的、非易 失性存储元件的一个子集;与每个非易失性存储元件相关联的相应位线; 至少一个控制电路,用于:(a)将一组编程脉冲施加到该组非易失性存储 元件,(b)以与该组编程脉冲中的多个连续编程脉冲中的每个编程脉冲步 伐一致的方式,逐步增加该一个子集中的尚未被锁定为不编程的非易失性 存储元件的相应位线的电压,(c)在该组编程脉冲期间,针对非易失性存 储元件的该一个子集确定何时满足触发条件,以及(d)当满足该触发条 件时,在该组编程脉冲中的一个或更多个另外的编程脉冲中的每个编程脉 冲期间来固定该电压。

提供了相应的方法、用于执行本文中所提供的方法的系统和计算机可 读或处理器可读的存储装置。

出于示例和描述的目的而给出了前文的详细描述。该描述并非意在穷 举或限于所公开的精确形式。鉴于以上教示,很多修改和变型都是可能的。 为了最好地解释本技术和其实际应用的原理而选择了所描述的实施例,从 而可以使本领域的其他技术人员在各种实施例中,在具有适于所构思的特 定用途的各种修改的情况下,最好地利用本技术。本技术的范围意在由所 附权利要求限定。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号