更多个较低数据状态变窄但不使最高数据状态变窄(步骤526)的编程模式,例如在图9C、图9E以及图13A至图13C中所描绘的。在步骤529中使用相对大的dVpgm来逐步增加Vpgm并且将Vbl设置成使对一个或更多个较低数据状态的编程减慢。Vbl可以被设置成最高数据状态的正常电平,使得其编程不被减慢以及整个编程时间不增加。
[0112]第三条路线是涉及使所有编程数据状态变窄的编程模式(步骤527),例如在图9D中所描绘的。在步骤530中,使用较小或零dVpgm和/或通过将Vbl设置成使对所有数据状态的编程减慢来逐步增加Vpgm。
[0113]第四条路线是涉及不使编程数据状态变窄的编程模式(步骤527),例如在图9A中所描绘的。使用较大的dVpgm来逐步增加Vpgm并且正常地设置Vbl。
[0114]图5E描绘了用于根据图5C的步骤517来执行感测操作的过程的示例。步骤540经由一个字线层向NAND串中的存储器单元集合施加感测电压(例如读取电压或验证电压)。步骤541基于剩余的字线层在堆叠中的相对位置来向剩余的字线层施加不同的读通电压(Vrp)。步骤542对NAND串的导电性进行感测。决策步骤543确定是否存在下一感测操作,如果不存在,则过程在步骤544处完成。否则,在步骤540处施加下一感测电压。
[0115]图6A和图6B描绘了具有四种数据状态的一遍编程操作。一遍编程也被称为“一遍写入”编程,该“一遍写入”编程涉及一系列的多个编程验证操作,所述多个编程验证操作从初始Vpgm电平开始执行并且继续进行至直到被选择的存储单元集合的阈值电压达到相应目标数据状态的一个或更多个相对应的验证电平为止的最终Vpgm电平。在一遍编程中,所有的存储器单元最初处于擦除状态。存储器单元中的一些存储器单元未被编程并且保留处于擦除状态,而其他存储器单元被编程至较高目标数据状态。
[0116]针对每个存储器单元存储两位数据的情况提供了用于存储器单元阵列的示例Vth分布。每个曲线图在水平轴上描绘Vth并且在垂直轴上描绘Vth分布中的许多或大量存储器单元。一个位表示LP数据,以及另一个位表示UP数据。位组合可以通过LP位跟随UP位来表示,例如,11表示UP= I并且LP = I,01表示UP = O并且LP = I,00表示UP = O并且LP = O以及10是UP= I并且LP = 0。第一 Vth分布600被设置成用于擦除(Er)状态存储单元。三个Vth分布604、606和608分别表示在存储器单元的Vth超过较高验证电平VvAH、VvBH或VvCH时存储器单元分别达到的目标数据状态A、B和C。在该情况下,每个存储器单元可以按照称为状态Er(或E)、A、B和C的四个可能的Vth范围之一来存储两位数据。使用慢速编程模式的编程选项可以被称为“快速遍写入”(QPW)技术。QPW可以在多遍编程技术的一遍或更多遍中独立地使用。然而,通常当精度最重要时,在最后遍编程中使用QPW已足够。QPW模式和慢速编程模式在本文中可以互换地使用。
[0117]当使用QPW时,较低验证电平(VvAL、VvBL或VvCL)可以被限定成使得存储器单元在其Vth处于相应的目标数据状态的较低验证电平与较高验证电平之间时进入慢速编程模式或区段(例如通过升高在编程期间施加的关联的位线电压)。在一种实现中,较低验证电平被偏移到相应的校验验证电平以下。具体地,当验证测试确定存储器单元的Vth超过与存储器单元的目标数据状态关联的较低验证电平,慢速编程模式开始用于该存储器单元。随后,当验证测试确定存储器单元的Vth超过与存储器单元的目标数据状态关联的较高验证电平时,存储器单元被禁止进一步编程。在一些情况下,对少于所有目标数据状态的目标数据状态使用QPW。
[0118]被编程到存储器单元中的数据与存储器单元的Vth电平之间的具体关系取决于针对存储器单元所采用的数据编码方案。在一个实施方式中,在一个实现中,使用格雷码分配来将数据值分配至Vth范围,使得在浮栅的Vth错误地转变成其相邻物理状态的情况下,仅一位将受到影响。一个示例将“11”、“01”、“00”和“10”分配给E、A、B和C状态。处于分布之间的读取参考电压用于从存储器单元读取数据。通过测试给定存储器单元的Vth是高于还是低于读取参考电压中的一个或更多个读取参考电压,系统可以确定存储器单元所表示的数据状态。
[0119]图7A至图7C描绘了具有四个数据状态的两遍编程操作。每遍可以用于对一页数据进行编程。例如,提供了对两位、四层存储器单元中的低页或高页的编程。一次可以对一个逻辑页执行编程,其中高页在低页之后。最初,所有存储器单元处于Er状态,在图7A中Er状态由分布700来表不。
[0120]图7B描绘了对低页数据的编程。如果低页位=1,则关联的存储器单元保持处于分布700中并且该数据由xl来表示。其中,X是尚未获知的高页位。如果较低页位=0,则将存储器单元编程至如使用验证电平Vvl的分布702所表示的较高Vth,其中分布702是过渡分布(INT)。这些存储器单元的数据由xO来表示。要指出的是,由于过渡分布不是最终分布并且不表示最终数据状态,所以过渡分布可以相对较宽。
[0121]图7C描绘了对高页数据的编程。如果UP/LP= 11,则分布700中的关联的存储器单元保持处于分布700中并且存储数据位11。如果UP/LP = 01,则分布700中的存储器单元被编程至分布704(状态A)并且当Vth处于VvAL与VvAH之间时使用慢速编程模式。如果UP/LP =10,则分布702中的存储器单元被编程至分布708(状态C)并且当Vth处于VvCL与VvCH之间时使用慢速编程模式。如果UP/LP = 00,分布702中的存储器单元被编程至分布706 (状态B)并且当Vth位于VvBL与VvBH之间时使用慢速编程模式。
[0122]编程可以被类似地扩展至每个存储器单元三位或更多位。例如,图8A至图8D描绘了具有在第三遍时使用正常编程模式和慢速编程模式以及八位数据状态的三遍编程操作。描绘了对三位、八层存储器单元中的低页、中页和高页的编程。除了 Er以外,还使用七个编程数据状态(A至G),以用于总共八个状态。最初,所有存储器单元处于Er状态,Er状态由分布800来表示。在图SB中,对低页进行编程。如果LP=1,则分布800中的存储器单元保持处于该分布中。如果LP = O,则将分布800中的存储器单元编程至使用Vvl的过渡分布802。在图8C中对中页(MP)进行编程,如果MP=I,则分布800中的存储器单元保持处于该分布中,并且将分布802中的存储器单元编程至使用验证电平Vv2的过渡分布808。如果MP = O,则将分布800中的存储器单元编程至使用验证电平Vv2的过渡分布804,并且将分布802中的存储器单元编程至使用验证电平Vv3的过渡分布806。
[0123]在图8D中对高页进行编程。QPW可用于这一遍。如果UP = I,则分布800中的存储器单元保持处于该分布中,将分布804中的存储器单元编程至分布814(状态C),将分布806中的存储器单元编程至分布816(状态D)以及将分布808中的存储器单元编程至分布822(状态G)。如果UP = O,则将分布900中的存储器单元被编程至分布810(状态A),将分布804中的存储器单元编程至分布812(状态B),将分布806中的存储器单元编程至分布818(状态E)以及分布808中的存储器单元编程至分布820 (状态F)。
[0124]使每个单元四位(16个层)的编程可以类似地涉及四页。另外,当对多页数据进行编程时,可以使用回字线顺序来减小来自电容性耦合的潜在干扰。
[0125]图9A描绘了具有四个数据状态的Vth分布900,其示出了根据擦除状态分布的上尾从Vv_er增加至Vut1、增加至Vut2,读取窗分别从Vrwd减小至Vrdwl,减小至Vrdw2。通过四个数据状态的示例所示出的构思也可以被应用于使用另外的数据状态(例如8或16个数据状态)的存储器设备。Vth分布901是在擦除操作之后获得的。擦除操作可以使用验证电平Vv_er。如所讨论的,由于读取干扰,擦除状态的上尾可能增加,以使得看到被重复读取之后Vth分布902或903。对于具有相对多的编程擦除循环并且在存储器孔的相对较窄部分处的存储器单元集合,上尾相对较高。
[0126]Vth分布904、905和906分别表示用于A状态、B状态和C状态的正常的、相对宽的分布,其分别具有宽度Vaw、Vbw和Vcw以及分别具有验证电平VvA、VvB和VvC。读取电平是VrA、VrB和VrC。VvA、VvB和VvC可以分别与前面所讨论的VvAH,VvBH和VvCH相同。读取窗可以被定义为擦除状态的上尾与最高状态的验证电平之间的差。例如,Vrdw是Vv_er与VvC之间的读取窗,Vrdwl是Vutl与VvC之间的读取窗以及Vrdw2是Vut2与VvC之间的读取窗,其中Vrdw2〈VrdwKVrdw。上尾的增大(或读取窗的减小)可以导致E至A状态读取故障。例如,Vth阈值分布903的超过VrA的一部分表示将被不正确地读取为处于A状态而非E状态的存储器单元。图1OA还指示了读取窗如何随着Dmh减小而减小。
[0127]Vrp_max是最大读通电压以及Vum是最高数据状态的上尾Vut3与Vrp_max之间的余裕。该余裕应当被保持,以使得C状态存储器元件在感测器件处于强导电。
[0128]图9B描绘了具有四个数据状态的Vth分布910,其示出了与图9A相比较窄的Vcm。该方法使得在Vum与图9A中的Vum相同时能够使用较低的Vrp。该情况下的Vrp是Vrp_min,Vrp_min是可以用于与存储器孔的最窄部分相邻的字线层的Vrp最低电平。Vrp_max-Vrp_min =dVrp。在图1OB至1D中提供了用于根据Dmh来设置Vrp的示例方法。VvA、VvB和VvC可以与图9A中的VvA、VvB和VvC相同。
[0129]该方法使最高数据状态的Vth分布911变窄而不使(擦除数据状态与最高数据状态之间的)较低数据状态的Vth分布变窄。变窄导致较低的Vut3。这是期望的,原因是Vum被保持并且Vrp被降低使得读取干扰降低。如所提及的,较高的读通电压导致在感测操作期间未选择的存储器单元的擦除状态Vth分布的上尾较大地增大。作为结果,读通窗口减小。然而,由于余裕Vum,所以在不修改最高状态Vth分布的情况下无法降低读通电压。一种解决方案是控制编程过程,使得对于C状态实现较窄的Vth分布。由于C状态通常是完成编程的最后状态,所以这可能导致较长的编程时间,但这是对减小读取干扰的可接受的折衷。此外,所调整的编程可能被限制于与较窄的存储器孔关联的选择的字线层,使得折衷较小或者在其他字线层看不到。
[0130]—种方法是在C状态编程期间使用较小的dVpgm。可以在编程的中间(例如在编程进行至诸如在A状态结束编程时或者在已经施加了一定数目的编程脉冲时的里程碑之后)将dVpgm改变成较小的值。参见图12A至12C。另一方法是在编程达到里程碑之后停止增加Vpgm。因而,在完成对C状态的编程时,Vpgm达到最大电平,然后保持固定。
[0131]另一方法是如图12C所描绘的那样针对C状态使用快速遍写入。也可以对各种方法进行组合。
[0132]通常,通过降低dVpgm和/或升高Vbl来使对存储器单元的编程减慢,从而使Vth分布变窄。使编程减慢避免存储器单元的Vth的大幅突升,所述大幅突升导致较宽Vth分布。
[0133]这是当一个字线层的位置与存储器孔的相对较窄部分相邻时调整编程以提供多个编程数据状态中的最高编程数据状态(例如C)的相对较低Vth分布上尾(Vut3)的示例。
[0134]图9C描绘了具有四个数据状态的Vth分布920,其示出了与图9A相比较窄的Vaw和Vbw以及下移的C状态Vth分布。该方法也是在Vum与图9A中的Vum相同时能够使用较低的Vrp Jrp是Vrp_min JvC低于图9A或图9B中的VvC。该方法使较低数据状态(921和922)的Vth分布变窄而不使最高数据状态的Vth分布923变窄。这是期望的,原因是Vum被保持并且Vrp被降低使得读取干扰降低。此外,因为对C状态的编程未被调整,所以编程时间未增加。通过如所示出的相对于图9A降低VvA和VvB以使VvC能够偏移得甚至更低,可以使Vrp进一步降低。也可以如此处所示出的那样以及如在图1OF中进一步详细描绘的那样使VrA、VrB和VrC降低。针对不同的字线层保持另外的验证电压设置可能稍微地增加复杂度。在一种方法中,规则可以被设置成在保持相同的V