对非易失性存储器器件进行编程的方法 相关申请的交叉引用
本申请要求在 2009 年 6 月 29 日提交的韩国专利申请号 10-2009-0058488 的优先 权, 其全部公开内容通过引用并入本文。
技术领域
示例性实施例涉及一种对非易失性存储器器件进行编程的方法。 背景技术 存在对能够被电编程和电擦除并且在即使没有供电的情况下也能够保持其数据 的非易失性存储器器件的日益增加的需要。此外, 期望高度集成的并且能够存储大量数据 的高容量存储器器件。 该非易失性存储器器件可以例如是串行耦合在一起以形成一个单元 串的多个存储器单元, 其中每个存储器单元阵列包括多个单元串。
非易失性存储器器件的每个单元串具有如下结构, 其中多个存储器单元耦合在位 线和源线之间。通过该串结构, 可以减少位线和源线之间的接触的数量并且可以使存储器 单元的尺寸是小的, 由此实现高容量存储器。然而, 该串结构带来了如下顾虑, 其中由于存 储器单元的单元电流随着存储器单元的尺寸的减小而变得更小, 因此访问速度是低的。
在多电平单元中, 不同于典型的存储器器件, 非易失性存储器器件的一个存储器 单元可以存储 2 位或更多位的数据 ( 即, 多电平形式 )。即, 存储器单元可以通过控制在存 储器单元的浮栅处捕获的电荷量而具有阈值电压的多个分布, 使得存储各种状态的数据。 由于该多电平单元 (MLC) 编程方法可以使存储器单元的存储器容量显著增加, 因此正被广 泛使用。在多电平单元 (MLC) 编程方法中, 两个或更多个逻辑页的数据被编程到一个物理 页中。 然而, 由于数个逻辑页的数据被编程到一个物理页中, 因此为执行编程操作而花费的 时间是相对长的并且执行编程操作的过程是相对复杂的。此外, 随着阈值电压分布的数量 的增加, 阈值电压的分布之间的宽度变窄。因此, 减少了读取裕量, 这带来了关于准确读取 数据的顾虑。
发明内容 示例性实施例涉及一种对非易失性存储器器件进行编程的方法, 其通过在被编程 为具有高阈值电压的存储器单元中, 在编程电压上升到某个电压电平之前不提供编程电 压, 能够减少因编程操作期间的位线放电而出现的电流消耗、 编程验证操作次数、 以及总编 程时间。
根据本公开的方面, 提供了一种对非易失性存储器器件进行编程的方法, 使得存 储器单元具有第一和第二阈值电压分布中的一个。 该方法包括 : 初始数据设定步骤, 向将被 编程为具有第二阈值电压分布的存储器单元所耦合的页缓冲器的第一锁存器输入用于禁 止编程的数据 ; 第一编程和验证步骤, 执行编程和验证操作 ; 第一数据设定步骤, 当编程脉 冲被提供了超过 N 次 ( 其中 N 是自然数 ) 时, 向将被编程为具有第二阈值电压分布的存储
器单元所耦合的页缓冲器的第一锁存器输入用于执行编程操作的数据 ; 以及第二编程和验 证步骤, 执行编程和验证操作。
根据本公开的另一方面, 提供了一种对非易失性存储器器件进行编程的方法, 其 中非易失性存储器器件具有存储器单元并且每个存储器单元具有第一至第四阈值电压分 布中的一个。 该方法包括 : 初始数据设定步骤, 向将被编程为具有第三和第四阈值电压分布 的存储器单元所耦合的页缓冲器的第一锁存器输入用于禁止编程的数据 ; 第一编程和验证 步骤, 执行编程和验证操作 ; 第一数据设定步骤, 当编程脉冲被提供了超过 N 次 ( 其中 N 是 自然数 ) 时, 向将被编程为具有第三阈值电压分布的存储器单元所耦合的页缓冲器的第一 锁存器输入用于执行编程操作的数据 ; 第二编程和验证步骤, 执行编程和验证操作 ; 第二 数据设定步骤, 当编程脉冲被提供了超过 M 次 ( 其中 M > N 且 M 是自然数 ) 时, 向将被编程 为具有第四阈值电压分布的存储器单元所耦合的页缓冲器的第一锁存器输入用于执行编 程操作的数据 ; 以及第三编程和验证步骤, 执行编程和验证操作。
根据本公开的又一方面, 提供了一种对非易失性存储器器件进行编程的方法, 其 中非易失性存储器器件具有耦合到位线和字线的存储器单元并且进一步具有页缓冲器, 这 些页缓冲器各自耦合到位线中的一个或更多个。 该方法包括 : 初始数据设定步骤, 向页缓冲 器中的所选择的页缓冲器的第一至第三锁存器输入数据, 使得存储器单元中的所选择的存 储器单元被编程为各自具有第一至第四阈值电压分布中的一个, 并且改变第一锁存器的数 据, 使得将被编程为具有第三和第四阈值电压分布的存储器单元被禁止编程 ; 第一编程和 验证步骤, 响应于第一锁存器的数据状态执行编程和验证操作 ; 第二编程和验证步骤, 当编 程脉冲被提供了超过 N 次 ( 其中 N 是自然数 ) 时, 设定第一数据以改变第一锁存器的数据, 使得可以对将被编程为具有第三阈值电压分布的存储器单元进行编程, 并且响应于第一锁 存器的数据状态执行编程和验证操作 ; 以及第三编程和验证步骤, 当编程脉冲被提供了超 过 M 次 ( 其中 M 是大于 N 的自然数 ) 时, 设定第二数据以改变第一锁存器的数据, 使得可以 对将被编程为具有第四阈值电压分布的存储器单元进行编程, 并且响应于第一锁存器的数 据状态执行编程和验证操作。
根据本公开的再一方面, 提供了一种对非易失性存储器器件进行编程的方法, 其 中擦除单元被编程为具有 N 个阈值电压分布中的一个并且 N 是自然数。该方法包括如下步 骤: 设定不同的编程脉冲, 用于对将被编程为具有阈值电压分布的存储器单元的每个组执 行编程操作, 在提供了某个数量的编程脉冲之前禁止对存储器单元进行编程, 并且当达到 某个数量的编程脉冲时执行编程操作。在该情况中, 对于将被编程为具有比用于所执行的 编程操作的阈值电压分布更高的阈值电压分布的存储器单元, 设定更大数量的编程脉冲。 附图说明
图 1A 示出了根据本公开的示例性实施例的非易失性存储器器件 ;
图 1B 是示出图 1A 中示出的存储器单元阵列的存储器块中的一个的详细示图 ;
图 1C 是图 1A 中示出的页缓冲器的电路图 ;
图 2 是示出根据本公开的示例性实施例的、 已被执行编程操作的存储器单元的阈 值电压分布的示图 ;
图 3 是图示根据本公开的示例性实施例的非易失性存储器器件的编程操作的时序图 ; 图 4A 至 4C 是示出根据将被编程的存储器单元的数量的位线放电电流量的示图 ;
图 5A 是图示根据本公开的示例性实施例的编程操作的流程图 ;
图 5B 是图示图 5A 中示出的数据设定过程的流程图 ;
图 5C 是图示图 5A 中示出的第一数据设定过程的流程图 ;
图 5D 是图示图 5A 中示出的第二数据设定过程的流程图 ; 并且
图 6A 和 6B 是示出其中执行根据本公开的示例性实施例的编程操作的时间期间的 电流量的示图。
具体实施方式
下面将参照附图详细描述本公开的示例性实施例。 附图被提供用于允许本领域的 普通技术人员理解本公开的实施例的范围。
图 1A 示出了根据本公开的示例性实施例的非易失性存储器器件。
参照图 1A, 非易失性存储器器件 100 包括存储器单元阵列 110、 页缓冲器部件 120、 Y 解码器 130、 X 解码器 140、 电压提供部件 150 和控制部件 160。 存储器单元阵列 110 包括多个存储器块 BK( 未示出 )。每个存储器块 BK 包括耦合 到位线 BL 和字线 WL 的多个存储器单元。假设根据本公开的示例性实施例的非易失性存储 器器件 100 的存储器单元是能够存储 2 位数据的多电平单元 (MLC)。 然而, 也考虑了使用各 自能够存储超过 2 位的数据的多电平单元。
对应于各个物理页的字线中的每一个包括最低有效位 (LSB) 页和最高有效位 (MSB) 页的逻辑页。
页缓冲器部件 120 包括各自耦合到一个或更多个位线 BL 的页缓冲器 PB。在如图 1A 中示出的本公开的示例性实施例中, 一个页缓冲器 PB 耦合到包括偶位线 BLe 和奇位线 BLo 的一对位线 BL。
页缓冲器 PB 用于编程和数据读取操作并且被配置为根据锁存数据状态执行编程 验证操作。
Y 解码器 130 用于响应于控制部件 160 的控制信号而实现针对页缓冲器 PB 的数据 输入和输出路径。
X 解码器 140 被配置为响应于控制部件 160 的控制信号选择字线, 并且 X 解码器 140 耦合到用于提供操作电压的全局线。
电压提供部件 150 生成用于编程和验证操作以及数据读取或擦除操作的电压并 且将所生成的电压提供给全局线。
控制部件 160 输出用于编程、 编程验证、 数据读取、 以及擦除的操作的控制信号。
图 1B 是示出图 1A 中示出的存储器单元阵列的存储器块 BK 中的一个的详细示图。
参照图 1B, 存储器单元阵列 110 包括多个存储器块 BK。每个存储器块 BK 包括多 个单元串 CS。每个单元串 CS 包括第一至第三十二存储器单元 C0 至 C31、 漏极选择晶体管 DST 和源极选择晶体管 SST。
单元串 CS 的漏极选择晶体管 DST 的漏极耦合到各个位线 BL, 并且其源极选择晶体 管 SST 的源极耦合到公共源线 SL。
漏极选择晶体管 DST 的栅极耦合到共有的漏极选择线 DSL, 并且源极选择晶体管 SST 的栅极耦合到共有的源极选择线 SSL。
第一至第三十二存储器单元 C0 至 C31 的栅极分别耦合到第一至第三十二字线 WL0 至 WL31。
耦合到一个或更多个位线 BL 的页缓冲器 PB 被构造如下。
图 1C 是图 1A 中示出的页缓冲器 PB 的电路图。
参照图 1C, 页缓冲器 PB 包括第一感测部件 121、 预充电部件 122、 第一至第三锁存 器部件 123 至 125、 和第二感测部件 126。
第一感测部件 121 耦合在位线 BL 和第一感测节点 SO1 之间并且被配置为感测位 线 BL 的电压以改变第一感测节点 SO1 的电压电平。
预充电部件 122 对第一感测节点 SO1 预充电。第一锁存器部件 123 被配置为存储 将被编程的并且用于数据编程操作的数据。第二和第三锁存器部件 124 和 125 用于存储标 志信息。第二和第三锁存器部件 124 和 125 用于识别将用于对存储器单元进行编程并且控 制验证操作的阈值电压分布中的一个。
第二感测部件 126 感测第一感测节点 SO1 的电压电平并且将第二感测节点 SO2 耦 合到地节点。
页缓冲器 PB 进一步包括用于缓存程序的缓存锁存器和用于数据输入和输出的数 据输入和输出电路。然而, 图 1B 仅示出了那些与说明本公开的示例性实施例相关的组件。
下面更详细地描述页缓冲器 PB 的电路配置。
第一感测部件 121 包括第一 NMOS(N 型金属氧化物半导体 ) 晶体管 N1。预充电部 件 122 包括第一 PMOS(P 型金属氧化物半导体 ) 晶体管 P1。
第一至第三锁存器部件 123 至 125 包括第二至第十六 NMOS 晶体管 N2 至 N16 以及 第一至第三锁存器 L1 至 L3。第二感测部件 126 包括第十七 NMOS 晶体管 N17。
第一 NMOS 晶体管 N1 耦合在位线 BL 和第一感测节点 SO1 之间。感测控制信号 PBSENSE 被输入到第一 NMOS 晶体管 N1 的栅极。
第一 PMOS 晶体管 P1 耦合在电源输入端子和第一感测节点 SO1 之间。预充电控制 信号 PRECHSO_NO 被输入到第一 PMOS 晶体管 P1 的栅极。
第二 NMOS 晶体管 N2 耦合在第一感测节点 SO1 和节点 MB_N 之间。第一数据传输 信号 MTRAN 被输入到第二 NMOS 晶体管 N2 的栅极。
第一锁存器 L1 耦合在节点 MB 和节点 MB_N 之间。第一锁存器 L1 是具有两个交叉 耦合的反相器的锁存器电路。
第三 NMOS 晶体管 N3 耦合在节点 MB 和第二感测节点 SO2 之间。第四 NMOS 晶体管 N4 耦合在节点 MB_N 和第二感测节点 SO2 之间。
第一重置信号 MRST 被输入到第三 NMOS 晶体管 N3 的栅极。第一设定信号 MSET 被 输入到第四 NMOS 晶体管 N4 的栅极。
第五和第六 NMOS 晶体管 N5 和 N6 耦合在第一感测节点 SO1 和地节点之间。第二 数据传输信号 F1SOSET_N 被输入到第五 NMOS 晶体管 N5 的栅极。节点 F1 耦合到第六 NMOS 晶体管 N6 的栅极。
第七和第八 NMOS 晶体管 N7 和 N8 耦合在第一感测节点 SO1 和地节点之间。第三数据传输信号 F1SOSET 被输入到第七 NMOS 晶体管 N7 的栅极。节点 F1_N 耦合到第八 NMOS 晶体管 N8 的栅极。
第二锁存器 L2 耦合在节点 F1 和节点 F1_N 之间。第二锁存器 L2 包括两个交叉耦 合的反相器。
第九 NMOS 晶体管 N9 耦合在节点 F1 和第二感测节点 SO2 之间。第十 NMOS 晶体管 N10 耦合在节点 F1_N 和第二感测节点 SO2 之间。第二重置信号 F1RST 被输入到第九 NMOS 晶体管 N9 的栅极。第二设定信号 F1SET 被输入到第十 NMOS 晶体管 N10 的栅极。
第十一和第十二 NMOS 晶体管 N11 和 N12 耦合在第一感测节点 SO1 和地节点之间。 第四数据传输信号 F2SOSET_N 被输入到第十一 NMOS 晶体管 N11 的栅极。第十二 NMOS 晶体 管 N12 的栅极耦合到节点 F2。
第十三和第十四 NMOS 晶体管 N13 和 N14 耦合在第一感测节点 SO1 和节点 F2_N 之 间。第五数据传输信号 F2SOSET 被输入到第十三 NMOS 晶体管 N13 的栅极。第十四 NMOS 晶 体管 N14 的栅极耦合到节点 F2_N。
第三锁存器 L3 耦合在节点 F2 和节点 F2_N 之间。第三锁存器 L3 包括两个交叉耦 合的反相器。 第十五 NMOS 晶体管 N15 耦合在节点 F2 和第二感测节点 SO2 之间。第十六 NMOS 晶体管 N16 耦合在节点 F2_N 和第二感测节点 SO2 之间。
第三重置信号 F2RST 被输入到第十五 NMOS 晶体管 N15 的栅极。第三设定信号 F2SET 被输入到第十六 NMOS 晶体管 N16 的栅极。
第十七 NMOS 晶体管 N17 耦合在第二感测节点 SO2 和地节点之间。第十七 NMOS 晶 体管 N17 的栅极耦合到第一感测节点 SO1。
作为使用上述页缓冲器 PB 执行编程操作的结果, 存储器单元阵列 110 的存储器单 元具有如下阈值电压分布。
图 2 是示出根据本公开的示例性实施例的已被执行编程操作的存储器单元的阈 值电压分布的示图。
参照图 2, 在完成关于最低有效位 (LSB) 页和最高有效位 (MSB) 页的编程操作之 后, 最初处于第一阈值电压分布 210( 即, 擦除单元状态 ) 的存储器单元的阈值电压可以保 持在第一阈值电压分布 210, 或者转变到第二至第四阈值电压分布 220 至 240 中的任何一 个。
下面, 仅说明在对最低有效位 (LSB) 页进行编程之后对最高有效位 (MSB) 页进行 编程的方法作为示例。
下面针对例如具有上述电路配置的页缓冲器 PB, 描述根据本公开的示例性实施例 的编程操作。
图 3 是图示根据示例性实施例的非易失性存储器器件的编程操作的时序图。
参照图 3, 为了执行编程操作, 非易失性存储器器件 100 首先对所有位线 BL 进行预 充电。接着, 根据耦合到所选择的位线的页缓冲器 PB 中存储的数据状态, 维持所选择的位 线的预充电状态或者使所选择的位线放电。
通过向相应的字线提供编程电压逐页地执行编程操作。因此, 非易失性存储器器 件 100 对包括耦合到应被禁止编程的存储器单元的位线的所有位线进行预充电以防止 / 减
少沟道升压。
因此, 位线放电时间期间消耗的电流量根据一页中的将被编程的存储器单元的数 量而变化。 换言之, 随着将被编程的存储器单元的数量增加, 预充电的位线中的经历放电的 位线的数量也增加。因此, 总放电电流增加。
图 4A 至 4C 是示出根据将被编程的存储器单元的数量的放电电流量的示图。
从图 4A 可见, 放电电流随着将被编程的存储器单元的数量的增加而升高。
此外, 从图 4B 和 4C 可见, 编程电压随着编程脉冲的每次重复而升高, 并且放电电 流随着编程操作的进行而下降。 这是因为, 随着编程操作的进行, 被完全编程且变为禁止编 程状态的存储器单元的数量增加。
特别地, 在能够存储 2 位或更多位的数据的多电平单元 (MLC) 中, 借助关于每个阈 值电压分布的编程, 看到放电电流随着编程操作的进行而下降。
在关于图 2 中示出的每个阈值电压分布的编程中的电流放电中, 将被编程为具有 第二阈值电压分布 220 的存储器单元在初始编程操作之后被禁止编程, 这是因为它们在最 初提供编程电压 Vpgm 时被编程了。
可以看到, 对于对第三和第四阈值电压分布 230 和 240 进行编程而言, 用于电流放 电的时间较长。这是因为, 当编程电压 Vpgm 上升到某个电平时, 将被编程为具有第三和第 四阈值电压分布 230 和 240 的存储器单元达到编程通过 (program pass) 状态。
因此, 可以看到, 总放电电流量随着编程电压 Vpgm 的上升或者随着编程脉冲而下降。 在本公开的示例性实施例中, 应被编程为具有高阈值电压的存储器单元在编程电 压 Vpgm 上升到某个电平之前不会达到编程通过状态。这里, 在其中以从低电压开始到高电 压的方式提供编程电压 Vpgm 的情况和其中立刻提供高编程电压 Vpgm 的情况之间, 将被编 程为具有高阈值电压的存储器单元的编程速度不会明显不同。出于该原因, 使用禁止对存 储器单元编程的方法, 其中在到达某个编程脉冲或者某个编程电压之前, 将被编程为具有 高阈值电压分布的存储器单元被禁止编程。
图 5A 是图示根据本公开的示例性实施例的编程操作的流程图。
在本公开的示例性实施例中, 描述了其中对各自能够存储 2 位的数据的多电平单 元 (MLC) 进行编程的示例。假设例如, 通过同一方法已完成对最低有效位 (LSB) 页的编程 操作, 下面仅描述对最高有效位 (MSB) 页的编程操作。
通过关于最高有效位 (MSB) 页的编程操作, 相应的存储器单元的阈值电压被设定 为第一至第四阈值电压分布 210 至 240。这里, A、 B、 C 和 D 分别表示其中相应的存储器单 元将被编程为具有第一至第四阈值电压分布 210 至 240 的四种情况。
出于 MSB 页编程操作的目的, 在步骤 S501 中设定存储在页缓冲器 PB 的第一至第 三锁存器 L1 至 L3 中的数据状态。
下面的表 1 示出了其中根据情况 A、 B、 C 和 D 将数据输入到第一至第三锁存器 L1 至 L3 的示例。
表1
11101937707 A CN 101937708说A MB_N F1_N F2_N 1 0 1明B 0 1 1书C 0 1 0 D 0 0 07/12 页在如上所述输入 MB_N、 F1_N 和 F2_N 的初始数据之后, 防止 / 禁止对应于情况 C 和 D 的存储器单元而非对应于情况 B 的存储器单元被编程。针对该目的设定初始数据。
图 5B 是图示图 5A 中示出的数据设定过程的流程图。
对于初始数据设定 S501, 在步骤 S551 中加载如表 1 中示出的数据。
接着, 在步骤 S553 中对第一感测节点 SO1 进行预充电。在第一感测节点 SO1 已被 预充电的情况下, 在步骤 S557 中提供高电平的第二数据传输信号 F1SOSET_N, 并且在步骤 S559 中提供高电平的第五数据传输信号 F2SOSET, 由此改变第一感测节点 SO1 的电压。接 着, 在步骤 S561 中向第一锁存器部件 123 提供高电平的第一重置信号 MRST, 因此改变第一 锁存器 L1 的数据状态。
在步骤 S553 至 S561 之后, 在例如关于将存储器单元编程为具有第三阈值电压分 布的情况 C 中, 节点 MB_N 的数据状态从状态 “0” 变为状态 “1” 。
接着, 在步骤 S563 中再次对第一感测节点 SO1 进行预充电。在步骤 S565 中提供 高电平的第三数据传输信号 F1SOSET, 并且在步骤 S567 中提供高电平的第五数据传输信号 F2SOSET, 由此改变第一感测节点 SO1 的电压。
接着, 在步骤 S569 中提供高电平的第一重置信号 MRST, 因此改变节点 MB_N 的数据 状态。
更具体地, 下面描述根据数据设定过程的 A、 B、 C 和 D 的情况中的节点 MB_N 的数据 状态的改变。
首先, 在情况 A 中, 节点 MB_N 的数据状态是 “1” , 节点 F1N 的数据状态是 “0” , 并且 节点 F2_N 的数据状态是 “1” 。
当对第一感测节点 SO1 进行预充电并且随后提供高电平的第二数据传输信号 F1SOSET_N 时, 第五 NMOS 晶体管 N5 导通。由于节点 F1_N 的数据具有状态 “0” , 节点 F1 的 数据具有状态 “1” , 因此第六 NMOS 晶体管 N6 也导通。即, 第一感测节点 SO1 被放电。如果 第一感测节点 SO1 被放电, 则当随后提供高电平的第五数据传输信号 F2SOSET 时, 第一感测 节点 SO1 维持放电状态而与节点 F2_N 的数据状态无关。
此外, 如果第一感测节点 SO1 被放电, 则节点 MB_N 的数据状态不改变。因此, 在情 况 A 中, 节点 MB_N 处的数据状态 “1” 保持原样。
同时, 在情况 A 中, 当再次对第一感测节点 SO1 进行预充电并且随后提供高电平的 第三数据传输信号 F1SOSET 时, 第七 NMOS 晶体管 N7 导通。然而, 由于节点 F1_N 具有数据 状态 “0” , 因此第一感测节点 SO1 未被放电。
接着, 当提供高电平的第五数据传输信号 F2SOSET 时, 第十三 NMOS 晶体管 N13 导 通。在该情况中, 由于节点 F2_N 具有数据状态 “1” , 因此第十四 NMOS 晶体管 N14 也导通。
因此, 第一感测节点 SO1 被放电, 并且节点 MB_N 的数据不改变。在情况 A 中, 作为执行步骤 S551 至 S569 的结果, 在图 5A 中的初始数据设定步骤 S501 之后维持初始加载状态 ( 节点 MB_N 处的 “1” )。
下面描述对应于将存储器单元编程为具有第二阈值电压分布的情况 B。
首先, 在其中对第一感测节点 SO1 进行预充电的状态下, 提供高电平的第二数据 传输信号 F1SOSET_N。在该情况中, 由于节点 F1 具有数据状态 “0” , 因此第一感测节点 SO1 未被放电。当提供高电平的第五数据传输信号 F2SOSET 时, 第十三 NMOS 晶体管 N13 导通。 这里, 节点 F2_N 具有数据状态 “1” 。因此, 由于第一感测节点 SO1 被放电, 所以节点 MB_N 的 数据状态不改变。
接着, 当再次对第一感测节点 SO1 进行预充电并且随后提供高电平的第三数据传 输信号 F1SOSET 时, 第七 NMOS 晶体管 N7 导通。在该情况中, 由于节点 F1_N 具有数据状态 “1” , 因此第一感测节点 SO1 被放电。即, 节点 MB_N 的数据状态不改变。在情况 B 中, 作为 执行步骤 S551 至 S569 的结果, 初始数据加载状态 ( 节点 MB_N 处的 “0” ) 不改变。
下面描述对应于将存储器单元编程为具有第三阈值电压分布的情况 C。
当在第一感测节点 SO1 已预充电的情况下提供高电平的第二数据传输信号 F1SOSET_N 时, 第五 NMOS 晶体管 N5 导通。在该情况中, 由于节点 F1 具有数据状态 “0” , 因 此第一感测节点 SO1 未被放电。
接着, 当提供高电平的第五数据传输信号 F2SOSET 时, 第十三 NMOS 晶体管 N13 导 通。然而, 由于节点 F2_N 具有数据状态 “0” , 因此第一感测节点 SO1 维持在预充电状态。因 此, 第十七 NMOS 晶体管 N17 保持导通, 并且第二感测节点 SO2 耦合到地节点。
当提供高电平的第一重置信号 MRST 时, 第三 NMOS 晶体管 N3 导通。因此, 由于节 点 MB 耦合到地节点, 所以节点 MB_N 的数据状态变为 “1” 。
在节点 MB_N 的数据状态已变为 “1” 的状态下, 当对第一感测节点 SO1 进行预充电 并且提供高电平的第三数据传输信号 F1SOSET 时, 第七 NMOS 晶体管 N7 导通。在该情况中, 由于节点 F1_N 具有数据状态 “1” , 因此第一感测节点 SO1 被放电。因此, 节点 MB_N 维持数 据状态 “1” 。
作为初始数据设定的结果, 在对应于将存储器单元编程为具有第三阈值电压分布 的情况 C 中, 节点 MB_N 的数据状态从 “0” 变为 “1” , 并且因此设定了禁止编程。
下面描述对应于将存储器单元编程为具有第四阈值电压分布的情况 D。
当对第一感测节点 SO1 进行预充电并且随后提供高电平的第二数据传输信号 F1SOSET_N 时, 第五 NMOS 晶体管 N5 导通。这里, 节点 F1 具有数据状态 “1” 。因此, 第一感 测节点 SO1 被放电, 并且因此节点 MB_N 的数据状态不改变。
接着, 当对第一感测节点 SO1 进行预充电并且随后提供高电平的第三数据传输信 号 F1SOSET 时, 第七 NMOS 晶体管 N7 导通。在该情况中, 由于节点 F1_N 具有数据状态 “0” , 因此第一感测节点 SO1 维持预充电状态。
接着, 当提供高电平的第五数据传输信号 F2SOSET 时, 第十三 NMOS 晶体管 N13 导 通。然而, 由于节点 F2_N 具有数据状态 “0” , 因此第一感测节点 SO1 维持预充电状态。
因此, 当提供高电平的第一重置信号 MRST 时, 在情况 D 中的节点 MB_N 的数据状态 从 “0” 变为 “1” 。换言之, 在对应于将存储器单元编程为具有第四阈值电压分布的情况 D中, 设定了禁止编程。
通过针对表 1 中的上述数据执行图 5B 的步骤, 如表 2 中所示, 设定关于每种情况 A、 B、 C 和 D 的第一至第三锁存器的数据。
表2
A MB_N F1_N F2_N
B X 1 1C 1 1 0D 1 0 01 0 1在表 2 中, 标记 “x” 指示当对应于情况 B 的存储器单元变为编程通过时, 情况 B 变 为数据状态 “1” 。 在如上文所述完成初始数据设定过程之后, 在步骤 S503 中执行编程和验证操作。 在步骤 S503 中执行编程和验证操作时, 由于仅执行对于对应于将存储器单元编程为具有 第二阈值电压分布的情况 B 的编程操作, 并且对于情况 C 和 D 已设定了禁止编程 ( 其中被 编程为具有情况 C 和 D 的存储器单元被禁止编程 ), 因此仅需要使用第一验证电压 PV1 来执 行编程验证操作。因此, 由于可以减少正在放电的位线的数量, 因此可以减少电流消耗。
随后在步骤 S505 中确定对应于情况 B 而进行编程的存储器单元是否是编程通过。 如果作为确定结果, 相应的存储器单元被确定为是编程通过, 则认为完成了针对对应于情 况 B 而被编程为具有第二阈值电压分布的所有存储器单元的编程操作。接着, 在步骤 S511 中执行第一数据设定过程。此外, 在该编程通过中, 被编程为具有第二阈值电压分布 ( 情况 B) 的所有存储器单元处于编程状态。 因此, 在随后的编程验证操作中, 禁止使用第一验证电 压 PV1 的验证操作, 由此减少用于执行编程验证操作的时间。
然而, 如果作为步骤 S505 中的确定结果, 相应的存储器单元被确定为不是编程通 过, 则再次提供编程脉冲。在步骤 S507 中确定编程脉冲是否已被提供了超过 N 次。如果作 为确定结果, 确定编程脉冲仍未被提供超过 N 次, 则在步骤 S509 中按步长电压使编程电压 Vpgm 上升, 在步骤 S503 中再次执行编程和验证操作。
然而, 如果作为步骤 S507 中的确定结果, 确定编程脉冲已被提供了超过 N 次, 则在 步骤 S511 中执行第一数据设定过程。因此, 在将被编程为具有情况 B 的所有存储器单元已 被编程之后或者在编程脉冲被提供了超过 N 次之后, 执行编程操作, 用于对应于情况 C 将存 储器单元编程为具有第三阈值电压分布。
为此, 执行第一数据设定过程。
下面参照图 5C 详细描述步骤 S511 中的第一数据设定过程。
图 5C 是图示图 5A 中示出的第一数据设定过程的流程图。 参照图 5C, 首先, 在步骤 S571 中对第一感测节点 SO1 进行预充电。接着, 在步骤 S573 中提供高电平的第二数据传输信号 F1SOSET_N 并且在步骤 S575 中提供高电平的第五 数据传输信号 F2SOSET, 由此改变第一感测节点 SO1 的电压电平。 接着, 在步骤 S577 中提供
高电平的第一设定信号 MSET, 因此改变节点 MB_N 的数据状态。
更具体地, 在对应于将存储器单元编程为具有第一阈值电压分布的情况 A 中, 当 对第一感测节点 SO1 进行预充电并且随后提供高电平的第二数据传输信号 F1SOSET_N 时, 第五 NMOS 晶体管 N5 导通。在该情况中, 节点 F1 具有数据状态 “1” 。由于第一感测节点 SO1 被放电, 因此节点 MB_N 的数据状态 ( 如表 2 中关于情况 A 示出的, 先前是 “1” ) 不改变。
在对应于将存储器单元编程为具有第二阈值电压分布的情况 B 中, 当对第一感测 节点 SO1 进行预充电并且随后提供高电平的第二数据传输信号 F1SOSET_N 时, 第五 NMOS 晶 体管 N5 导通。此外, 由于节点 F1 具有数据状态 “0” , 因此第一感测节点 SO1 维持预充电状 态。
接着, 当提供高电平的第五数据传输信号 F2SOSET 时, 第十三 NMOS 晶体管 N13 导 通。由于节点 F2_N 具有数据状态 “1” , 因此第一感测节点 SO1 被放电。因此, 节点 MB_N 的 数据状态不改变。
在对应于将存储器单元编程为具有第三阈值电压分布的情况 C 中, 当对第一感测 节点 SO1 进行预充电并且随后提供高电平的第二数据传输信号 F1SOSET_N 时, 第五 NMOS 晶 体管 N5 导通。由于节点 F1 具有数据状态 “0” , 因此第一感测节点 SO1 维持预充电状态。 接着, 当提供高电平的第五数据传输信号 F2SOSET 时, 第十三 NMOS 晶体管 N13 导 通。因此, 由于节点 F2_N 具有数据状态 “0” , 所以第一感测节点 SO1 维持预充电状态, 并且 第十七 NMOS 晶体管 N17 也保持导通。
当提供高电平的第一设定信号 MSET 时, 由于第 NMOS 晶体管 N4 导通, 因此节点 MB_ N 的数据状态 ( 如表 2 中关于情况 C 示出的, 先前是 “1” ) 变为 “0” 。因此, 可以执行随后的 编程操作。
在对应于将存储器单元编程为具有第四阈值电压分布的情况 D 中, 当对第一感测 节点 SO1 进行预充电并且随后提供高电平的第二数据传输信号 F1SOSET_N 时, 第五 NMOS 晶 体管 N5 导通。在该情况中, 由于节点 F1 具有数据状态 “1” , 因此第一感测节点 SO1 被放电, 并且节点 MB_N 的数据状态 ( 如表 2 中关于情况 D 示出的, 先前是 “1” ) 不改变。
如果如图 5C 中所示执行第一数据设定过程, 则在情况 C 中, 节点 MB_N 的数据状态 变为 “0” 。 因此, 当执行随后的编程操作时, 可以执行位线放电操作, 用于对应于情况 C 将存 储器单元编程为第三阈值电压分布。当位线被放电时, 完成编程操作。
即, 在第一数据设定过程之后, 在步骤 S513 中执行编程和验证操作。随后在步骤 S515 中确定分别对应于情况 B 和 C 而被编程为具有第二阈值电压分布 ( 如果在步骤 S503 至 S509 中, 将被编程为具有第二阈值电压分布的一些存储器单元未被成功编程 ) 和第三阈 值电压分布的存储器单元是否是编程通过。如果作为确定结果, 相应的存储器单元被确定 为是编程通过, 则认为完成了针对对应于情况 B 和 C 而被编程为具有第二或第三阈值电压 分布的所有存储器单元的编程操作。接着, 在步骤 S521 中执行第二数据设定过程。第二数 据设定过程是改变对应于情况 D 而将被编程为具有第四阈值电压分布的存储器单元所耦 合的页缓冲器 PB 的节点 MB_N 的数据状态, 以便具有数据状态 “0” 的操作。
然而, 如果作为步骤 S515 中的确定结果, 相应的存储器单元被确定为不是编程通 过, 则再次提供编程脉冲。在步骤 S517 中确定编程脉冲是否已被提供了超过 M 次。这里, “M” 是大于 “N” 的自然数。即, 在编程脉冲被提供 N 次之后, 执行第一数据设定过程, 使得可
以针对对应于情况 C 而将被编程为具有第三阈值电压分布的存储器单元执行编程操作。接 着, 通过提供 M 次编程脉冲, 仅对分别对应于情况 B 和 C 而将被编程为具有第二和第三阈值 电压分布的存储器单元执行编程操作。
如果作为步骤 S517 中的确定结果, 确定编程脉冲仍未被提供超过 M 次, 则在步骤 S519 中按步长电压使编程电压 Vpgm 上升, 并且该过程返回其中重复编程和验证操作的步 骤 S513。
然而, 如果作为步骤 S517 中的确定结果, 确定编程脉冲已被提供了超过 M 次, 则在 步骤 S521 中执行第二数据设定过程。
图 5D 是图示图 5A 中示出的第二数据设定过程的流程图。
参照图 5D, 首先, 在步骤 S581 中对第一感测节点 SO1 进行预充电。接着, 在步骤 S583 中提供高电平的第三数据传输信号 F1SOSET 并且在步骤 S585 中提供高电平的第五数 据传输信号 F2SOSET, 由此改变第一感测节点 SO1 的电压。
接着, 提供高电平的第一设定信号 MSET, 因此改变节点 MB_N 的数据状态。
更具体地, 在情况 A 中, 当对第一感测节点 SO1 进行预充电并且随后提供高电平的 第三数据传输信号 F1SOSET 时, 第七 NMOS 晶体管 N7 导通。节点 F1_N 具有数据状态 “0” , 并 且第一感测节点 SO1 维持预充电状态。 当提供高电平的第五数据传输信号 F2SOSET 时, 第十三 NMOS 晶体管 N13 导通。因 此, 由于节点 F2_N 具有数据状态 “1” , 所以第一感测节点 SO1 被放电, 并且节点 MB_N 的数据 状态不改变。
在情况 B 中, 当对第一感测节点 SO1 进行预充电并且随后提供高电平的第三数据 传输信号 F1SOSET 时, 第七 NMOS 晶体管 N7 导通。由于节点 F1_N 具有数据状态 “1” , 因此第 一感测节点 SO1 被放电。因此, 节点 MB_N 的数据状态不改变。
在情况 C 中, 由于节点 F1_N 具有数据状态 “1” , 因此第一感测节点 SO1 被放电, 并 且因此节点 MB_N 的数据状态不改变。
在情况 D 中, 节点 F1_N 具有数据状态 “0” 。因此, 即使第七 NMOS 晶体管 N7 导通, 第一感测节点 SO1 仍维持预充电状态。接着, 当提供高电平的第五数据传输信号 F2SOSET 时, 第十三 NMOS 晶体管 N13 导通。
由于节点 F2_N 具有数据状态 “0” , 因此第一感测节点 SO1 维持预充电状态, 并且第 十七 NMOS 晶体管 N17 保持导通。当提供高电平的第一设定信号 MSET 时, 第四 NMOS 晶体管 N4 导通, 并且节点 MB_N 具有数据状态 “0” 。
因此, 仅在情况 D 中, 节点 MB_N 的数据状态通过第二数据设定过程而改变。
在完成第二数据设定过程之后, 在步骤 S523 中执行编程和验证操作。随后在步骤 S525 中确定编程验证操作是否是通过。 如果作为确定结果, 编程验证操作被确定为是通过, 则在步骤 S531 中完成编程操作。
然而, 如果作为步骤 S525 中的确定结果, 编程验证操作被确定为不是通过, 则在 步骤 S527 中确定编程脉冲是否已被提供了超过 P 次。这里, “P” 是大于 “M” 的自然数并且 其指示可以提供的编程脉冲的最大数量。
如果作为步骤 S527 中的确定结果, 确定编程脉冲已被提供了超过 P 次, 则在步骤 S533 中不执行进一步的编程操作, 将编程状态信息指示为失败, 并且结束编程操作。
然而, 如果作为步骤 S527 中的确定结果, 确定编程脉冲仍未被提供超过 P 次, 则在 步骤 S529 中再次使编程电压 Vpgm 上升, 并且该过程返回步骤 S523。
根据示例性实施例, 在所施加的编程脉冲的数量达到某个次数或更大之前, 可以 禁止关于将被编程为具有高阈值电压的存储器单元的编程操作。因此, 可以减少位线被放 电时消耗的电流。
图 6A 和 6B 是示出其中执行根据本公开的示例性实施例的编程操作的时间期间的 放电电流的示图。
参照图 6A, 尽管响应于编程脉冲提供了编程电压 Vpgm, 但是防止 / 禁止关于分别 对应于情况 B、 C 和 D 而将被编程为具有第二、 第三和第四阈值电压分布的适当的存储器单 元的编程操作。因此, 可以减少电流消耗。
因此, 较之图 4B 中示出的总电流消耗, 可以显著减少总电流消耗。
此外, 根据示例, 在执行禁止编程操作的时间期间, 还可以禁止 / 防止关于相应的 阈值电压分布的禁止编程操作的验证操作。 因此, 由于减少了验证操作的次数, 因此可以减 少为执行整个编程操作而花费的时间。
如上文所述, 按照根据本公开的对非易失性存储器器件进行编程的方法, 当执行 编程验证操作时, 在编程电压上升到某个电压之前, 将被编程为具有高阈值电压分布的存 储器单元被禁止编程。因此, 在编程操作中, 可以减少来自正在放电的位线的电流消耗。此 外, 通过不执行对应于被禁止的编程操作的验证操作, 可以减少为执行整个编程操作而花 费的时间。