用于基于阈值电压降档量的存储器单元的刷新编程的方法和设备与流程

文档序号:11451871阅读:585来源:国知局
用于基于阈值电压降档量的存储器单元的刷新编程的方法和设备与流程



背景技术:

本技术涉及存储器器件的操作。

电荷捕获材料可以被用于在存储器器件中存储表示数据状态的电荷。电荷捕获材料可以垂直布置在三维(3d)堆叠的存储器结构中,或者水平地布置在二维(2d)存储器结构中。3d存储器结构的一个示例是比特成本可缩放(bitcostscalable,bics)架构,其包括交替导电层和电介质层的堆叠。在堆叠中形成存储器孔,然后通过用包括电荷捕获层的材料填充存储器孔来形成nand串。直的nand串在一个存储器孔中延伸,而管状或u形的nand串(p-bics)包括一对在两个存储器孔中延伸的并由底部栅极连接的存储器单元的垂直列。存储器单元的控制栅极由导电层提供。

然而,在操作这种存储器件中呈现出各种挑战。

附图说明

类似编号的元件指向不同图中的共同的组件。

图1a是3d堆叠的非易失性存储器器件的透视图。

图1b是诸如图1a的3d堆叠非易失性存储器器件100的存储器器件的功能框图。

图1c描绘了图1b的温度感测电路115的示例。

图1d描绘了可以由处理器执行的代码。

图1e是描绘图1b的感测块sb1的一个实施例的框图。

图2a描绘了u形nand实施例中的示例字线层202和204的顶视图,作为图1a中的blk0的示例实现方式。

图2b描绘了与图2a一致的示例选择栅级层部分的顶视图。

图2c描绘了堆叠231的实施例,其示出了沿着线220的图2a的部分209的横截面图,其中提供三个选择栅极层sgl1、sgl2和sgl3。

图2d描绘了图2c的堆叠231的选择栅极层和字线层的可替换的视图。

图3a描绘了在直的nand串实施例中图1a的块blk0的示例字线层304的顶视图。

图3b描绘了与图3a一致的示例sgd层362的顶视图。

图3c1描绘了堆叠376的实施例,示出了沿着线305的图3a的部分307的横截面图,其中提供三个sgd层、三个sgs层和虚拟字线层dwll1和dwll2。

图3c2描绘了沿其高度的存储器孔的宽度的变化。

图3d描绘了图3c的堆叠376的选择栅极层和字线层的可替换的视图。

图4a描绘了图3c1的区域246的视图,示出了虚拟存储器单元(dummymemorycell,dmc)和数据储存存储器单元(mc)之上的sgd晶体管dla(与图3c1一致的)、d1al和dla2。

图4b1描绘了沿线444的图4a的区域246的横截面视图。

图4b2描绘了图4b1的隧道层404的特写视图,示出了氧化物404a、氮化物404b、氧化物404c配置。

图4c描绘了图3c2的nand串的区域410的放大视图。

图5a描绘了包含平坦(flat)控制栅极和电荷捕获区域的存储器单元的字线方向的横截面图,作为图1b的存储器结构126中的存储器单元的2d示例。

图5b描绘了图5a中的沿线559的横截面图,示出了具有平坦控制栅极和电荷捕获层的nand串530。

图5c描绘了图5b的nand串的部分540的放大视图。

图6a和6b描绘了具有四个数据状态的一次通过(onepass)完整编程操作,作为图5c的编程通过的示例。

图6a描绘了用于操作存储器件的过程,其中完整编程操作之后是刷新编程操作。

图6b描绘了用于进行与图6a的步骤603一致的感测操作的过程。

图6c描绘了基于对较高目标数据状态的存储器单元的vth降档的测量来确定是否对目标数据状态的存储器单元进行刷新编程的过程。

图7a和7b描绘了与图6a的步骤600一致的具有四个数据状态的一次通过完整编程操作。

图7c描绘了图7b的vth分布,其具有由于电荷损失引起的vth降档,以及用于感测存储器单元的不同子集的vth范围的控制栅极电压,与图6a的步骤603一致。

图7d描绘了图7c的具有由与图6a的步骤604一致的刷新编程引起的vth升档的vth分布。

图8a和8b描绘了与图6a的步骤600一致的具有八个数据状态的一次通过完整编程操作。

图8c描绘了图8b的具有由电荷损失引起的vth降档的vth分布,以及用于感测存储器单元的不同子集的vth范围的控制栅极电压,与图6a的步骤603一致。

图9描绘了根据存储器单元的目标数据状态和vth降档量分类的存储器单元的示例子集。

图10a描绘了与图6a的步骤600一致的在完整编程操作期间的数据锁存器中的位组合的示例。

图10b描绘了在将存储器单元分类成子集的感测操作之后并且在刷新编程操作之前的数据锁存器中的位组合的示例,与图6a一致。

图11a描绘了在与图6a的步骤600一致的示例完整编程操作中施加到字线的电压。

图11b描绘了在与图6a的步骤604a一致的示例刷新编程操作中施加到字线的电压,其中施加一个或多个编程脉冲,直到通过对于c状态存储器单元的不同子集的验证测试。

图11c描绘了在与图6a的步骤604a一致的示例刷新编程操作中施加到字线的电压,其中施加一个或多个编程脉冲,直到通过对于b状态存储器单元的不同子集的验证测试。

图11d描绘了在与图6a的步骤604a一致的示例刷新编程操作中施加到字线的电压,其中施加一个或多个编程脉冲,直到通过对于a状态存储器单元的子集的验证测试。

图12a1描绘了在与图6a的步骤604b一致的示例刷新编程操作中施加到字线的电压,其中施加固定数量的编程脉冲来刷新编程c状态存储器单元的子集。

图12a2描绘了在与图6a的步骤604a和604b一致的示例刷新编程操作中施加到字线的电压,其中施加固定数量的编程脉冲来刷新c状态存储器单元的子集csub2和csub3,并且施加一个或多个编程脉冲,直到通过对于c状态存储器单元的子集csub3的验证测试。

图12b描绘了在与图6a的步骤604b一致的示例刷新编程操作中施加到字线的电压,其中施加固定数量的编程脉冲来刷新编程b状态存储器单元的子集。

图12c描绘了在与图6a的步骤604b一致的示例刷新编程操作中施加到字线的电压,其中施加固定数量的编程脉冲来刷新编程a状态存储器单元的子集。

图13a描绘了示出当在完成完整编程操作之后作为时间的函数进行数据保留检查的时间的时间线。

图13b描绘了示出当在作为高于阈值温度的累积时间的函数进行数据保留检查的时间的时间线。

图13c描绘了示出当在完成完整编程操作之后作为时间的函数进行数据保留检查的时间的时间线,其中在不同的刷新编程操作中对不同目标数据状态的存储器单元进行刷新编程。

图14a是示出了直到下一个数据保留检查的时间作为vth中的降档的度量的函数的曲线图,与图6a的判定步骤601一致。

图14b是示出了直到下一个数据保留检查的时间作为目标数据状态的函数的曲线图,与图6a的判定步骤601以及图13c一致。

图14c是示出了刷新编程期间的对于存储器单元的示例子集的作为感测到的vth降档的函数的vth升档的图,与图6a的步骤604一致。

图14d是示出了对于不同的目标数据状态在刷新编程期间验证电压作为感测到的vth降档的函数的曲线图,其中每个目标数据状态具有三个被刷新编程的子集,与图6a的步骤604a一致。

图14e是示出了对于不同的目标数据状态在刷新编程期间验证电压作为感测到的vth降档的函数的曲线图,其中c状态具有三个被编程刷新的子集,b状态具有两个被编程刷新的子集,并且a状态具有一个被刷新编程的子集,与图6a的步骤604a以及图7d一致。

图14f是示出与图14d和14e一致的在没有刷新编程的情况下可允许的vth中的降档的曲线图。

图14g是示出与图14e一致的经受刷新编程的子集的数量的曲线图。

图14h是示出与图6a的步骤604b一致的在刷新编程期间作为目标数据状态的函数的编程脉冲的数量的图。

图14i是示出与图6a的步骤604a或604b一致的在刷新编程期间作为目标数据状态的函数的初始vpgm的曲线图。

图15a描绘了与图2c和3c1的存储器器件一致的nand串的电路图。

图15b描绘了图15a的存储器单元1506的电路图。

图16a描绘了在擦除状态和c状态的存储器单元组的测试数据,示出了紧接在编程之后的初始vth分布1600、完整序列重新编程之后的降档vth分布1601和vth分布1602。

图16b描绘了在擦除状态和c状态中的存储器单元组的测试数据,示出了紧接在编程之后的初始vth分布1610、在使用单个编程脉冲刷新编程之后的降档vth分布1611和vth分布1612。

图16c描绘了在擦除状态和c状态中的存储器单元组的测试数据,示出了紧接在编程之后的初始vth分布1620、使用一个编程脉冲刷新编程之后的的降档vth分布1621、vth分布1622以及使用两个编程脉冲刷新编程之后的vth分布1623。

具体实施方式

提供了用于监视和调整电荷捕获存储器中的存储器单元的阈值电压电平的技术。

电荷捕获存储器器件可以使用诸如氮化硅或其它氮化物的电荷捕获材料,或者使用诸如氧化物-氮化物-氧化物(oxide-nitride-oxide,o-n-o)配置的多层配置中的电荷捕获材料。电荷捕获材料通过隧道层与沟道层分离。例如,电荷捕获存储器器件可以是3d存储器器件,其中形成交替导电和电介质层的堆叠。在堆叠中蚀刻存储器孔,并且将膜沉积在孔中,使得形成存储器单元或选择栅极晶体管,其中导电层与存储器孔相交。这些膜包括沿单个单元或整个nand串垂直延伸的电荷捕获层、隧道层和沟道层。导电层中的一些被用作用于存储器单元的控制栅极,并且其它导电层被用作用于选择栅极晶体管的控制栅极,例如nand串中的漏极或源极侧晶体管。电荷捕获存储器器件的另一示例是2d存储器器件,其中电荷捕获层沿nand串水平延伸。

然而,这些存储器单元在其被编程之后的电荷损失可以是重大的。这种损耗是由存储器单元的隧道ono层中的浅陷阱的电荷逃逸引起的。与浮置栅极存储器单元相比,电荷捕获存储器单元特别容易受到电荷损失的影响。作为电荷损失的结果,存储器单元的阈值电压(vth)可以降低到其数据状态不能被准确地读回的程度。这与需要提供可靠的长期数据存储相冲突。

一个选择是周期性地进行存储器单元的完全重新编程。在这种方法中,存储器单元被读取以获得原始写入数据,存储器单元被从擦除状态擦除并编程为对应于写入数据的多个目标数据状态。然而,这种方法基本上重复了原始编程,并且涉及许多编程循环,这些循环使存储器单元暴露于额外的编程干扰,特别是擦除状态到a状态干扰。此外,该过程是耗时的。

一种解决方案是进行就地刷新编程。在该方法中,进行数据保留检查,其中存储器单元被读取以识别经历了vth降档的单元。存储器单元根据vth降档的量被分类成不同的子集(例如,相邻和非重叠的子集)。然后发生刷新编程,其中vth被升高成与vth降档成正比的量。在这种方法中,基于vth降档的量,刷新编程的量被调整到存储器单元的不同子集。对于每个数据状态的子集数量可以相对较小,从而使复杂度最小化。当数据在冷储存应用编程中存储相对长的时间时,例如数月或数年,该方法特别合适。这样的数据被存储一次,并且在一段时间内被读取多次,其中电荷损失可能是重大的。可以对存储器单元的任何单位——例如,单个单元、字线的一部分、整个字线或块——进行刷新编程。刷新编程可以使用每个子集的固定的或自适应的编程脉冲数。此外,一些单元将没有可检测到的vth降档或少量的可以被忽略的vth降档。这些单元不需要被刷新编程。

可以对于不同的数据状态对要被刷新编程的子集不同地进行配置。例如,在一些情况下,具有相对较高的数据状态的存储器单元将经历相对较大的vth降档。可以为每个数据状态定制每个数据状态的子集数量以及子集的大小。另外,可以对于每个数据状态来定制被认为是次要且不经受刷新编程的vth降档的大小。此外,在一个选择中,对于通过误差校正码(errorcorrectioncode,ecc)解码而校正的数据状态的存储器单元定义子集。

在一个方面,当满足准则时,启动数据保留检查(包括读取和刷新编程)。例如,该准则可以包括自存储器单元被编程起通过特定的时间段。该准则可以包括其中存储器器件的温度超过阈值温度的时间量。该准则可以例如包括存储器件是否达到如由pe计数器跟踪的编程-擦除(pe)循环的指定数量。

另一个选择是基于指示先前的数据保留检查中vth降档量的度量来设置对于后续数据保留检查的时间,其中当vth降档量相对较大时,时间相对较快。另一个选择是基于在较高数据状态的单元中看到的vth降档量决定是否对较低数据状态的存储器单元进行数据保留检查。另一个选择是对在不同时间和/或频率上的不同数据状态进行数据保留检查。各种其它选择也是可能的。

这些解决方案可以避免编程干扰,从而允许更频繁地进行数据保留检查。这可以增加存储器器件的耐久性。此外,可以将vth分布变窄以减少不可校正的读取错误的可能性。

以下讨论提供了解决上述和其它问题的示例存储器器件和相关技术的构造的细节。

图1a是3d堆叠的非易失性存储器器件的透视图。存储器器件100包括衬底101。在衬底上是存储器单元的示例块blk0和blk1以及具有由块使用的电路的外围区域104。衬底101还可以在块下方承载电路以及在导电路径中图案化以承载电路的信号的一个或多个较下部的金属层。在存储器器件的中间区域102中形成这些块。在存储器器件的上部区域103中,一个或多个上部金属层在导电路径中图案化以承载电路的信号。每个块包括存储器单元的堆叠区域,其中堆叠的交替电平表示字线。在一种可能的方法中,每个块具有相对的分层侧面,垂直接触从该侧面向上延伸到上部金属层以形成到导电路径的连接。尽管以两个块为例,可以使用在x和/或y方向上延伸的其它块。

在一种可能的方法中,平面在x方向上的长度表示信号路径到字线在一层或多层上部金属层中延伸的方向(字线或sgd线方向),并且平面在y方向上的宽度表示信号路径到位线在一个或多个上部金属层中延伸的方向(位线方向)。z方向表示存储器器件的高度。

图1b是诸如图1a的3d堆叠非易失性存储器器件100的存储器器件的功能框图。存储器件100可以包括一个或多个存储器裸芯108。存储器裸芯108包括存储器单元的存储器结构126,诸如存储器单元阵列、控制电路110和读取/写入电路128。在3d配置中,存储器结构可以包括图1a的块blk0和blk1。存储器结构126可以经由行解码器124的字线和经由列解码器132的位线来寻址。读取/写入电路128包括多个感测块sb1、sb2、...、sbp(感测电路),并允许一页存储器单元被并行读取或编程。通常,控制器122包括在与一个或多个存储器裸芯108相同的存储器件100(例如,可移动存储卡)中。命令和数据经由数据总线120在主机140和控制器122之间以及经由线118在控制器与一个或多个存储器裸芯108之间传送。

存储器结构可以是2d或3d的。存储器结构可以包含一个或多个包括3d阵列的存储器单元阵列。存储器结构可以包含单片三维存储器结构,其中多个存储器电平在单个衬底(例如晶片)上方(而不是在其中)形成,而没有中间衬底。存储器结构可以包括在具有布置在硅衬底上方的有源区的存储器单元的阵列的一个或多个物理层中,单片地形成的任何类型的非易失性存储器。存储器结构可以在具有与存储器单元的操作相关联的电路的非易失性存储器器件中,无论相关联的电路是在衬底之上还是在衬底内。

控制电路110与读取/写入电路128协作以对存储器结构126进行存储器操作,并且该控制电路110包括状态机112、片上地址解码器114和功率控制模块116。状态机112提供存储器操作的芯片级控制。可以为如本文所述的刷新编程操作的参数提供存储区域113。

控制器122还可以包括温度感测电路115,其被处理器122c用来提供存储器器件的环境温度。例如,如下面进一步讨论的,可以使用温度来确定是否满足准则以进行刷新编程过程。还可参见图13b。

图1c描绘了图1b的温度感测电路115的示例。电路包括pmosfet131a、131b和134、双极晶体管133a和133b以及电阻器r1、r2和r3。i1、i2和i3表示电流。voutput是提供给模拟到数字(adc)转换器129的基于温度的输出电压。vbg是与温度无关的电压。电压电平生成电路135使用vbg来设定电压电平的数量。例如,参考电压可以通过电阻分压器电路分成几个电平。

adc将voutput与电压电平进行比较,并选择电压电平当中最接近的匹配值,将相应的数字值(vtemp)输出到处理器。这是指示存储器器件的温度的数据。在一种方法中,rom熔丝123存储将匹配电压电平与温度关联的数据。然后,处理器使用温度来设置存储器器件中的基于温度的参数。

通过将在晶体管131b之上的基极-发射极电压(vbe)和在电阻器r2之上的电压降相加来获得vbg。双极晶体管133a具有比双极晶体管133b大的面积(乘以因子n)。pmosfet131a和131b在尺寸上相等并且被布置成电流镜配置,使得电流i1和i2基本相等。我们有vbg=vbe+r2xi2和il=ve/r1,使得i2=ve/r1。作为结果,vbg=vbe+r2xktln(n)/rlxq,其中t是温度,k是玻尔兹曼常数,q是电荷的单位。pmosfet134的源极连接到功率电压vdd,并且晶体管漏极和电阻r3之间的节点是输出电压voutput。晶体管134的栅极连接到与pmosfet131a和131b的栅极相同的端口,并且通过pmosfet134的电流与通过pmosfet131a和131b的电流成镜像。

再次参考图1b,片上地址解码器114在由主机或存储器控制器使用的硬件地址和由解码器124和132使用的硬件地址之间提供地址接口。功率控制模块116在存储器操作期间控制提供给字线和位线的功率和电压。它可以包括对于3d配置中的字线层(wll)、sgs晶体管和sgd晶体管以及源极线的驱动器。在一种方法中,感测块可以包括位线驱动器。sgs晶体管是在nand串的源极端处的选择栅极晶体管,sgd晶体管是在nand串的漏极端处的选择栅极晶体管。

在一些实现方式中,可以组合一些组件。在各种设计中,除了存储器结构126之外,组件中的一个或多个(单独或组合)可以被认为是被配置为进行本文所述动作的至少一个控制电路。例如,控制电路可以包括控制电路110、状态机112、解码器114/132、功率控制模块116、感测块sb1、sb2、...、sbp(包括图1e中的处理器192和管理电路mc0)、读取/写入电路128和控制器122等中的任何一个或其组合。结合图1e进一步讨论感测块sb1。

片下(off-chip)控制器122可以包括处理器122c和诸如rom122a和ram122b的储存器件(存储器)。储存器件包括诸如一组指令的代码,并且处理器可操作以执行该组指令以提供本文所描述的功能。或者或另外,处理器可以从存储器结构的储存器件126a——诸如一个或多个字线中的存储器单元的保留区域中访问代码。

例如,图1d描绘了可以由处理器122c执行的代码。代码150被控制器用来访问存储器结构,例如用于编程、读取和擦除操作。代码可以包括启动代码151和控制代码(指令组)160。启动代码是在启动或开启过程中初始化控制器的软件以使控制器可以访问存储器结构的软件。控制器可以使用该代码来控制一个或多个存储器结构。当上电时,处理器122c从rom122a或储存器件126a取出启动代码用于进行,并且启动代码初始化系统组件,并将控制代码加载到ram122b中。一旦控制代码被加载到ram中,则由处理器执行。控制代码包括进行基本任务的驱动程序,诸如控制和分配内存、指令的优先处理、以及控制输入和输出端口。

控制代码还包括用于将存储器单元组编程为多个目标数据状态的指令(161),以及用于在所述编程之后以及在存储器单元组未被擦除时间段期间感测和刷新编程存储器单元组的指令(162)。通常,控制代码可以包括进行本文描述的功能(包括图6a、6b和6c的处理的步骤)的指令。

除了nand闪速存储器之外,还可以使用其它类型的非易失性存储器。

半导体存储器器件包括,易失性存储器器件——诸如动态的随机存取存储器(“dram”)或静态的随机存取存储器(“sram”)器件;非易失性存储器器件——诸如电阻式随机存取存储器(“reram”)、电可擦除可编程只读存储器(“eeprom”)、闪速存储器(也可以被认为是eeprom的子集)、铁电的随机存取存储器(“fram”)以及磁阻的随机存取存储器(“mram”);以及其它可以储存信息的半导体元件。每种类型的存储器器件可以具有不同的配置。例如,闪速存储器器件可以配置在nand或nor配置中。

存储器器件可以以任何组合由无源和/或有源元件构成。以非限制性示例的方式,无源半导体存储器元件包括reram器件元件,其在一些实施例中包括电阻率切换储存元件——诸如反熔丝或变相材料,以及可选地控制元件——诸如二极管或晶体管。进一步以非限制性示例的方式,有源半导体存储器元件包括eeprom和闪速存储器器件元件,其在一些实施例中包括包含电荷储存区域的元件——诸如浮置栅极、传导的纳米粒子或电荷储存电介质材料。

多个存储器元件可以被配置为使得它们串联连接或者使得每个元件可被独立地访问。以非限制性示例的方式,在nand配置(nand存储器)中的闪速存储器器件通常包含串联连接的存储器元件。nand串是包括存储器单元和选择栅极晶体管的串联连接的晶体管的组的示例。

nand存储器阵列可以被配置为使得阵列由多个存储器串构成,其中串由共享单个位线并作为一组存取的多个存储器元件构成。可替换地,存储器元件可以被配置为使得每个元件可被独立地访问,例如nor存储器阵列。nand和nor存储器的配置是示例的,并且可以以其它方式配置存储器元件。

位于衬底中和/或衬底上的半导体存储器元件可以以二维或者三维布置,诸如二维存储器结构或三维存储器结构。

在二维存储器结构中,半导体存储器元件被布置在单个平面或者单个存储器器件级中。典型地,在二维存储器结构中,存储器元件被布置在基本上平行于支撑存储器元件的衬底的主表面而延伸的平面中(例如,在x-y方向平面中)。衬底可以是在其上或其中形成存储器元件的层的晶片,或者它可以是在存储器元件形成之后附接到存储器元件的载体衬底。作为非限制性示例,衬底可以包括诸如硅的半导体。

存储器元件可以布置在有序的阵列中的单个存储器器件级中——诸如在多个行和/或列中。但是,存储器元件在不规则或者非正交的配置中形成阵列。存储器元件的每一个具有两个或多个电极或接触线——诸如位线和字线。

三维存储器阵列被布置为使得存储器元件占据多个平面或多个存储器器件级,从而在三维中形成结构(即,在x、y和z方向中,其中z方向基本上垂直于衬底的主表面,并且x和y方向基本上平行于衬底的主表面)。

作为非限制性示例,三维存储器结构可以被垂直地布置为多个二维存储器器件级的堆栈。作为另一非限制性示例,三维存储器阵列可以被布置为多个垂直的列(例如,基本上垂直地延伸到衬底的主表面的列,即,在y方向中),其中每个列具有多个存储器元件。列可以布置在二维配置中,例如,在x-y平面中,产生具有元件在多个垂直地堆栈的存储器平面上的存储器元件的三维布置。存储器元件在三维中的其它配置也可以组成三维存储器阵列。

以非限制性示例的方式,在三维nand存储器阵列中,存储器元件可以耦接在一起以在单个水平的(例如,x-y)存储器器件级中形成nand串。可替换地,存储器元件可以耦接在一起以形成横穿多个水平的存储器器件级的垂直的nand串。可以设想其它三维配置,其中一些nand串在单个存储器级中包含存储器元件,而其它串包含跨过多个存储器级的存储器元件。三维存储器阵列也可以设计在nor配置中和在reram配置中。

典型地,在单片三维存储器阵列中,一个或多个存储器器件级形成在单个衬底上。可选地,单片三维存储器阵列也可以具有至少部分在单个衬底中的一个或多个存储器层。作为非限制性示例,衬底可以包括诸如硅的半导体。在单片三维阵列中,组成阵列的存储器器件级的层通常形成在阵列的在下面的存储器器件级的层上。但是,单片三维存储器阵列的相邻存储器器件级的层可以被共享或者具有在存储器器件级之间相互介入的层。

其次,二维阵列可以单独地形成并且然后封装在一起以形成具有存储器的多个层的非单片存储器器件。例如,非单片堆栈的存储器可以通过在单独的衬底上形成存储器级并且然后在彼此上堆栈存储器级来形成。可以在堆栈之前将衬底减薄或者从存储器器件级移除,但是由于存储器器件级初始形成在单独的衬底之上,所以所产生的存储器阵列不是单片三维存储器阵列。此外,多个二维存储器阵列或三维存储器阵列(单片或非单片)可以形成在单独的芯片上并且然后封装在一起以形成叠层芯片存储器器件。

存储器元件的操作以及与存储器元件的通信通常需要相关联的电路。作为非限制性示例,存储器器件可以具有用于控制和驱动存储器元件以实现诸如编程和读取的功能的电路。该相关联的电路可以在与存储器元件相同的衬底上和/或在单独的衬底上。例如,用于存储器读取-写入操作的控制器可以位于单独的控制器芯片上和/或在与存储器元件相同的衬底上。

本领域技术人员应认识到的是,该技术不限于所描述的二维和三维示例结构,而是涵盖了本文所述的技术的精神和范围内以及如本领域技术人员所理解的所有相关的存储器结构。

图1e是描绘图1b的感测块sb1的一个实施例的框图。感测块被划分成称为感测模块(例如,sm0)或感测放大器的一个或多个核心部分,以及被称为管理电路(例如,mc0)的公共部分。在一个实施例中,存在对于每个位线的单独的感测模块和用于一组感测模块的公共管理电路,例如smo、smi、sm2和sm3。在组中的感测模块中的每一个经由数据总线172与相关联的管理电路通信。因此,存在与存储器单元组的感测模块通信的一个或多个管理电路。

每个感测模块smo、smi、sm2和sm3分别包括感测电路sco、sci、sc2和sc3,通过分别确定在连接的位线bl0、bl1、bl2和bl3中的导通电流是否高于或低于预定阈值电压(验证电压)来进行感测。每个感测块smo、smi、sm2和sm3还分别包括位线锁存器bll0、bll1、bll2和bll3,其用于设置所连接的位线上的电压状态。例如,在编程电压期间,锁存在位线锁存器中的预定状态将导致所连接的位线被拉至锁定状态(例如,1.5-3v)、缓慢编程状态(例如,0.5-1v)或正常编程状态(例如,0v)。

管理电路mc0包括处理器192,数据锁存器194、195、196和197的四个示例组以及耦合在所述数据锁存器组和数据总线120之间的i/o接口198。可以为每个感测块提供一组数据锁存器,并且可以包括由ldl、udl、rlsb和rmsb识别的数据锁存器。在每个存储器单元中存储两位数据的存储器中,ldl存储用于写入数据的低页(lp)的位,并且udl存储用于写入数据的高页(up)的位。rlsb存储识别用于刷新编程操作的子集的最低有效位,并且rmsb存储识别用于刷新编程操作的子集的最高有效位。rlsb和rmsb一起定义了四个可能的位组合(00、01、10和11),它们可以为数据状态识别多达四个子集。还参见图10a和10b。

也可以使用额外的数据锁存器。例如,在每存储器单元三位的实现方式中,可以使用一个额外的数据锁存器来存储数据的中间页(mp)。每个存储器单元四位的实现方式可以使用低-中和高-中数据锁存器。本文提供的技术意在包含这些变体。在另外的选择中,当其vth在其目标数据状态的验证电压的特定裕度内时,另一锁存器用于识别存储器单元是否处于缓慢编程模式。

处理器192在读取和编程期间进行计算。为了读取,处理器确定存储在所感测的存储器单元中的数据状态,并将数据存储在数据锁存器组中。对于完整编程和刷新编程,处理器读取锁存器以确定要写入存储器单元的数据状态。

在读取期间,系统的操作在状态机112的控制下,状态机112控制向寻址的存储器单元供应的不同的控制栅极电压。当该状态机步进通过与存储器支持的各种存储器状态(例如,状态a、b和c)相对应的各种预定义的控制栅极电压(例如,图7b中的vrer/a,vra/b和vrb/c)时,感测模块可以以这些电压之一跳闸,并且将从感测模块经由数据总线172提供相应的输出给处理器192。此时,处理器192通过考虑感测模块的跳闸事件和关于来自状态机的经由输入线193的所施加的控制栅极电压的信息来确定存储器状态。然后,该处理器计算对于存储器状态的二进制编码,并将结果数据位存储到数据锁存器194-197的组中。在管理电路mc0的另一个实施例中,位线锁存器既用作锁存感测块的输出的锁存器,也用作如上所述的位线锁存器。

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

在编程或验证操作期间,要编程的数据(写入数据)从数据总线120被存储在数据锁存器194-197的组中,在lp和up数据锁存器中。在状态机的控制下的编程操作包括施加到所寻址的存储器单元的控制栅极的一系列编程电压脉冲。每个编程电压之后是回读(验证),以确定所述存储器单元是否已被编程到期望的存储器状态。在某些情况下,处理器相对于所需的存储器状态来监视回读存储器状态。当两个状态一致时,处理器设置位线锁存器以使位线被拉至指定编程禁止的状态(例如,2-3v)。这样即使编程电压出现在其控制栅级上,也禁止耦合到位线的存储器单元进一步编程。在其它实施例中,处理器最初加载位线锁存器,并且感测电路在验证过程期间将其设置为禁止值。

数据锁存器194-197中的每一组可以被实现为用于每个感测块的数据锁存器的堆叠。在一个实施例中,每个感测模块有三个数据锁存器。在一些实现方式中,数据锁存器被实现为移位寄存器,使得存储在其中的并行数据被转换为用于数据总线120的串行数据,反之亦然。与存储器单元的读取/写入块相对应的所有数据锁存器可以链接在一起以形成块状移位寄存器,使得可以通过串行传送来输入或输出数据块。具体地,读取/写入模块堆被适配为使得它的数据锁存器组中的每一个将数据顺序地移入或移出数据总线,如同它们是对于整个读取/写入块的移位寄存器的一部分。

图2a描绘了u形nand实施例中的示例字线层202和204的顶视图,作为图1a中的blk0的示例实现方式。在3d堆叠存储器器件中,沿着通过在堆叠中的交替的导电和电介质层延伸的存储器孔形成存储器单元。存储器单元通常被布置在nand串中。每个导电层可以包括一个或多个字线层。字线层是字线的示例。

视图是堆叠中多个wll之间的代表层。还参考图2c,堆叠包括交替的电介质层和导电层。电介质层包括dl0至dl25,并且可以由例如二氧化硅(sio2)制成。导电层包括背栅极层(bgl)、数据存储字线层wll0至wll19、虚拟(非数据存储)字线层dwlla和dwllb以及选择栅级层sgl1、sgl2和sgl3。字线层是控制层上的存储器单元的栅极的导电路径。此外,每个选择栅极层可以包含到选择栅极晶体管(例如,sgd和/或sgs晶体管)的导电线。

图2a的字线层可以表示图2c中的字线层中的任何一个。这些导电层可以包括例如掺杂的多晶硅——诸如钨或金属硅化物的金属。可以向背栅极施加5-10v的示例电压,以保持连接漏极侧和源极侧的列的导电状态。

对于每个块,每个导电层可以被划分为两个字线层202和204,两个字线层202和204通过狭缝206彼此绝缘。通过蚀刻在堆叠中垂直延伸的空隙形成狭缝,通常从底部的蚀刻停止层直到至少堆叠的顶层,然后用绝缘材料填充狭缝。这是可能导致堆叠的顶部导电层中的电荷积累的蚀刻类型的示例。狭缝206是在块中以锯齿形图案延伸的单个连续狭缝。这种方法可以提供更大的灵活性来控制存储器单元,因为wll可以被独立地驱动。

每个块包括在堆叠中垂直延伸的存储器孔或垂直延伸的柱,并且包括诸如nand串中的一列存储器单元。每个圆圈表示与字线层相关联的存储器孔或存储器单元。沿着线220的存储器单元的示例列包括c0到c11。列c0、c3、c4、c7、c8和c11表示各个nand串的漏极侧列。列c1、c2、c5、c6、c9和c10表示各个nand串的源级侧列。该图表示简化,通常将使用更多行的存储器孔,在图中向右和向左延伸。此外,这些图不一定是按比例的。存储器单元的列可以被布置在诸如子块的子集中。

另外,以组合布置nand串,其中组中的每个nand串具有拥有公共控制栅极电压的sgd晶体管。另参见图2b。区域201、203、205、207、208和210各自表示一组nand串或字线层中的一组存储器单元。例如,区域210包括nand串ns0、...、ns0-14。编程操作可以涉及一组nand串。组中的每个nand串可以与独立控制的相应位线相关联,以允许或禁止编程。

附图并不是按比例的,并且没有示出所有存储器列。例如,如图所示更实际的块可能在y方向上具有十二个存储器列,但是在x方向上具有非常大的数量,例如32k个存储器列,块中总共有384,000个存储器列。使用u形nand串,本例中提供了192k个nand串。使用直的nand串,在该示例中提供了384,000个nand串。假设每列有二十四个存储器单元,组中有384,000x24=9,216,000个存储器单元。

图2b描绘了与图2a一致的示例选择栅级层部分的顶视图。在一种方法中,选择栅极层215不同于wll在于,选择栅极层为nand串中的每一组提供单独的sgd层部分或线。也就是说,沿x方向延伸的sgd晶体管中的每一个被分别地控制。换句话说,nand串中的每一组的sgd晶体管的控制栅极被共同地控制。

另外,在一个方法中,为在x方向上延伸的一对sgs晶体管(对于相邻的nand串组)提供sgs层部分或线。可选地,使用额外的狭缝,使得为在x方向上延伸的单行sgs晶体管提供单独的sgs层部分。因此,一对sgs晶体管或单行sgs晶体管中的sgs晶体管的控制栅极也被共同地控制。

sgs和sgd层部分由于狭缝239、240、241、242、243、245、247和248而产生。如图2c中的示例狭缝241所描绘,狭缝沿堆叠部分向下延伸。区域227、228、229、232、233和237分别表示sgd线216、218、219、223、224和226中的sgd晶体管。区域253和254、255和257以及258和259分别表示sgs线217、221和225中的sgs晶体管。区域255和257、258和259分别表示sgs层部分221和225中的sgs晶体管。来自图2a的部分209被重复以用作参考。

选择栅极晶体管与nand串ns0-ns5相关联。

图2c描绘了堆叠231的实施例,其示出了图2a的沿着线220的部分209的横截面图,其中提供三个选择栅极层sgl1、sgl2和sgl3。在这种情况下,狭缝向下延伸至dl22,使得在每个nand串的每列中形成三个单独的选择栅极晶体管层。堆叠具有顶部287和底部238。

在一种方法中,选择栅极的导电层可以具有与存储器单元的导电层相同的高度(沟道长度)。这有助于存储器器件的制造。在列中,单独的选择栅极晶体管一起等效于具有是单独的选择栅极晶体管的沟道长度之和的沟道长度的一个选择栅极晶体管。另外,在一种方法中,列中(例如,层sgl1,sgl2和sgl3中)的选择栅极晶体管在操作期间被连接并接收公共电压。sgs晶体管可以具有与sgd晶体管类似的结构。另外,sgs和sgd晶体管可以具有与存储器单元晶体管类似的结构。

在一种方法中,衬底可以是p型,并且可以提供连接到顶部选择栅极层的接地。通孔(via)244将c0和ns0的漏极侧连接到位线288。通孔262将c1和ns0的源级侧连接到源极线289。背栅极263、264、265和266分别在nso、ns1、ns2和ns3中提供。

区域d1、d2、d3和d4表示sgd晶体管,并且区域s1、s2、s3和s4表示sgl1中的sgs晶体管。

图2d描绘了图2c的堆叠231的选择栅极层和字线层的可替换的视图。sgl层sgl1、sgl2和sgl3的每一个包括与一组nand串的漏极侧(由实线示出)或源极(由虚线示出)相关联的选择栅极线的平行的行。例如,sgl1包括与图2b一致的漏极侧选择栅极线216、218、219、223、224和226以及源极侧选择栅极线217、221和225。在一种方法中,可以独立地控制每个选择栅极线。

以下,sgl层是字线层。每个字线层包括连接到nand串的漏极侧上的存储器单元(背栅极和漏极端之间的nand串的一半)的漏极侧字线和连接到nand串的源极侧上的存储器单元(背栅极和源极之间的nand串的一半)的源级侧字线。例如,dwll1、dwll2、wll19、wll18和wll17分别包括漏极侧字线270d、271d、272d、273d和274d以及源极侧字线270s、271s、272s、273s和274s。

wll3、wll2、wll1和wll0分别包括漏极侧字线275d、276d、277d和278d,并且分别包括源极侧字线275s、276s、277s和278s。在一种方法中,可以独立地控制每个字线。

在示例编程操作中,源级侧字线272s是块中的第一编程字线,并且漏极侧字线272d是块中的最终编程字线。

图3a描绘了在直的nand串实施例中图1a的块blk0的示例字线层304的顶视图。在这种配置中,nand串只有一列,如在u形nand串中,源极侧选择栅极位于列的底部,而不是在顶部。另外,块的给定层具有连接到该层的存储器单元中的每一个的一个wll。绝缘材料填充的狭缝346、347、348、349和350也可用于制造工艺中,以便在通过湿蚀刻去除未掺杂的多晶硅层并沉积电介质以形成交替的电介质层时,为堆叠提供结构的支撑。虚线305延伸穿过列c12-c17。图3c1中示出了沿着部分307的线305的横截面视图。

区域340、341、342、343、344和345表示各组nand串的存储器单元(如圆圈)。例如,区域340表示nand串ns0a、…、nsoa-14中的存储器单元。额外的nand串包括ns1a、ns2a、ns3a、ns4a和ns5a。

或者,层304表示sgs层,在这种情况下,每个圆圈代表sgs晶体管。

图3b描绘了与图3a一致的示例sgd层362的顶视图。狭缝357、358、359、360和361将sgd层划分成部分363、364、365、366、367和368。每个部分连接一组nand串中的sgd晶体管。例如,sgd层部分363或线连接nand串ns0a至ns0a-14组中的sgd晶体管。区域351、352、353、354、355和356分别表示sgd层部分363、364、365、336、367和368中的各组nand串的sgd晶体管(如圆圈)。来自图3a的部分307也被重复。选择栅极晶体管与nand串ns0a-ns5a相关联。

图3c1描绘了图3a的沿着线305的部分307的横截面图的堆叠376的实施例,其中提供三个sgd层,三个sgs层和虚拟字线层dwll1和dwll2。对应于nand串ns0a-ns3a的存储器单元的列被描绘在多层堆叠中。堆叠包括衬底101、衬底上的绝缘膜250以及源极线sl0a的部分。sgd线子集中的额外的直的nand串延伸(例如沿着x轴)在横截面中所描绘的nand串之后。ns0a具有源极端sea和漏极端dea。还描绘了来自图3a的狭缝346、347和348。还描绘了位线bl0a的部分。导电通孔373将dea连接到bl0a。这些列形成在存储器孔mh0-mh4中。存储器孔是柱形的,并且至少从堆叠的顶部370到底部371延伸。

源极线sl0a连接到每个nand串的源极端。sl0a也连接到在x方向上位于这些nand串之后的其它存储器串组的组。

字线层——例如wll0-wll23,以及电介质层——例如dl0-dl24,被交替布置在堆叠中。sgs晶体管369、372、374和375形成在sgs1层中。

在图4a中更详细地示出了堆叠的区域246。在图4c中更详细地示出了堆叠的区域410。区域dla、d2a、d3a和d4a表示sgd晶体管。

图3c2描绘了沿存储器孔高度的其宽度的变化。由于用于创建记忆孔的蚀刻工艺,存储器孔的横截面宽度(例如直径)可以沿其高度变化。这是由于非常高的纵横比(aspectratio)。例如,约25-30的深度与直径比是常见的。通常,直径从存储器孔的顶部到底部逐渐变小。在一些情况下,如图所示,在孔的顶部发生轻微的变窄,使得直径在从存储器孔的顶部到底部逐渐变小之前变得稍微变宽。

由于存储器孔的宽度和形成在存储器孔中的垂直柱的宽度的不均匀,存储器单元的编程和擦除速度可以基于它们沿存储器孔的位置而变化。具有较小直径的存储器孔,跨隧道层的电场较强,使得编程和擦除速度更高。

在这种情况下,存储器单元沿着存储器器件中的垂直延伸的存储器孔(mh0-mh7)布置,并且垂直延伸的存储器孔的宽度沿存储器器件的高度变化。

图3d描绘了图3c的堆叠376的选择栅极层和字线层的可替换的视图。sgd层sgd1和sgd2各自包括与nand串组的漏极侧相关联的选择栅极线的平行的行。例如,sgd1包括与图3b一致的漏级侧选择栅极线363、364、365、366、367和368。一种方法中,可以独立地控制每个选择栅极线。

sgd层以下是字线层。在一种方法中,每个字线层表示字线,并且其连接到堆叠中给定高度的存储器单元组。例如,dwll3、dwll4、wll22、wll21、wll20和wll19分别表示字线399、398、397、396、395和394。wll2、wll1、wll0和dwll5分别表示字线393、392、391和390。在一种方法中,可以独立地控制每个字线。

字线层下方是sgs层。sgs层sgs1和sgs2各自包括与nand串组的源极侧相关联的选择栅极线的平行的行。例如,sgs1包括源极选择栅极线380、381、382、383、384和385。在一种方法中,可以独立地控制每个选择栅极线。

在示例编程操作中,源级侧字线391是块中的第一编程字线,漏极侧字线397是块中的最终编程字线。

图4a描绘了图3c1的区域246的视图,其示出了虚拟存储器单元(dmc)和数据储存存储器单元(mc)之上的sgd晶体管dla、d1al和dla2。可以沿着列的侧壁并在每个字线层内沉积多个层。这些层可以包括例如使用原子层沉积被沉积的氧化物-氮化物-氧化物(o-n-o)和多晶硅层。例如,该列包括诸如氮化硅(sin)或其它氮化物的电荷捕获层或膜(ctl)403、隧道层(tl)404、多晶硅体或沟道(ch)405和介电核心(dc)406。字线层包括块状氧化物(box)402、块状高k材料401、阻挡金属400以及诸如w399的导电金属作为控制栅极。例如,分别为sgd晶体管dla、dlal和dla2,虚拟存储器单元dmc和存储器单元mc提供控制栅极cg1a、cglal、cgla2、cgla3和cgla4。在另一种方法中,除了金属之外的所有这些层都提供在列中。在整个列中类似地形成其它存储器单元。存储器孔中的层形成nand串的柱状有源区(aa)。

在选择栅极晶体管和数据储存存储器单元之间使用一个或多个虚拟存储器单元是有用的,因为对于与选择栅极晶体管相邻或接近的存储器单元的编程干扰可以是较大的。这些边缘单元由于对禁止的nand串的选择栅极晶体管的电压的限制而具有较低的沟道升压量。具体地,为了提供非导电状态的选择栅极晶体管,相对较低的电压被施加到它们的控制栅极,导致在这些选择栅极晶体管旁边的沟道区域中相对较低的沟道升压量。因此,边缘单元旁边的沟道的区域因此也具有相对较低的沟道升压量。相反,非边缘单元旁边的存储器单元可以接收相对高的通过电压,因为这些单元被提供在导电状态,会导致相对较高的沟道升压量。

当存储器单元被编程时,电子被存储在与存储器单元相关联的ctl的一部分中。这些电子从沟道被吸入到ctl中,并通过隧道层(tl)。存储器单元的vth与存储的电荷的量成比例地增加。在擦除操作期间,电子返回到沟道。

存储器孔中的每一个可以被填充多个包含块状氧化物层、电荷俘获层、隧道层和沟道层的环形层。存储器孔中的每一个的核心区域填充有主体材料,并且多个环形层位于存储器孔中的每一个中的核心区域和wll之间。

图4b1描绘了图4a的沿线444的区域246的横截面视图。在一种可能的方法中,除了作为圆柱体的核心填料之外,每个层都是环形的。

图4b2描绘了图4b1的隧道层404的特写视图,其示出了氧化物404a、氮化物404b、氧化物404c配置。

图4c描绘了图3c2的nand串的区域410的放大视图。当通过相应字线将编程电压施加到存储器单元的控制栅极时,产生电场。在mc0中,电场使电子从沟道405隧穿到电荷捕获层403的区域470中。类似地,对于mc1,电场使电子从沟道405隧穿到电荷捕获层403的区域460中。电子进入电荷捕获层的移动由指向左侧的箭头表示。电子用圆圈表示,其中圆圈内有破折号。

当随后回读所选字线上的存储器单元时,在感测电路确定存储器单元是否处于导电状态时,控制栅极读取被施加到存储器单元的电压如vre/a、vra/b和vrb/c。同时,读通电压vread(例如,8-9v)被施加到剩余的字线上。

然而,如一开始所述,回读操作的准确性可以因存储器单元中的电荷损失而受损。电荷损失的一种类型涉及从电荷捕获层逃逸(de-trapping)。例如,电子452是从电荷捕获区域470逃逸的电荷的示例,降低了mc0的vth。电子453是保留在电荷捕获区域470中的电荷的示例。另一种类型的电荷损失涉及从隧道层逃逸。例如,电子452a是从隧道层404逃逸的电荷的示例。

mc1具有漏极drlb、源极sr1b和控制栅极cg1。

图5a描绘了包含平坦的控制栅极和电荷捕获区域的存储器单元的字线方向的横截面图,作为图1b的存储器结构126中的存储器单元的2d示例。电荷捕获存储器可以用于nor和nand闪速存储器器件。与使用诸如掺杂的多晶硅的导体存储电子的浮置栅极mosfet技术相反,该技术使用诸如氮化硅膜的绝缘体来存储电子。作为示例,字线(wl)524跨越包括相应沟道区域506、516和526的nand串延伸。字线的部分提供控制栅极502、512和522。字线下方是多晶硅介电(ipd)层528、电荷俘获层504、514和521、多晶硅层505、515和525以及隧道层(tl)层509、507和508。每个电荷捕获层在相应的nand串中连续延伸。

存储器单元500包括控制栅极502、电荷捕获层504、多晶硅层505和沟道区域506的部分。存储器单元510包括控制栅极512、电荷捕获层514、多晶硅层515和沟道区域516的部分。存储器单元520包括控制栅极522、电荷俘获层521、多晶硅层525和沟道区域526的部分。

另外,可以使用平坦的控制栅极来代替围绕浮置栅极的控制栅极。一个优点是相比于浮置栅极电荷捕获层可以被制成更薄。此外,存储器单元可以被放置得更靠近在一起。

图5b描绘了图5a中的沿线559的横截面图,其示出了具有平坦控制栅极和电荷捕获层的nand串530。nand串530包括sgs晶体管531、示例存储元件500、532、...、533和534以及sgd晶体管535。在一个选择中,如主要结合3d存储器件所讨论的,sgd晶体管可以被偏置以在擦除操作期间产生gidl。在另一种选择中,可以将衬底直接偏置以提供沟道电压,而字线被偏置在负电压。

nand串可以形成在包括p型衬底区域555、n型阱556和p型阱557的衬底上。n型源极/漏极扩散区域sd1、sd2、sd3、sd4、sd5、sd6和sd7形成在p型阱557中。沟道电压vch可以被直接施加到衬底的沟道区域。存储器单元500包括控制栅极502和在电荷俘获层504、多晶硅层505、隧道层509和沟道区域506之上的ipd部分528。存储器单元532包括在电荷俘获层504、多晶硅层505、隧道层509和沟道区域506之上的控制栅极536和ipd部分537。

例如,控制栅极层可以是多晶硅,并且隧道层可以是氧化硅。ipd层可以是诸如alox(氧化铝)或hfox(氧化铪)的高k电介质的堆叠,这有助于增加控制栅极层和电荷俘获或电荷存储层之间的耦合比。例如,电荷捕获层可以是氮化硅和氧化物的混合物。浮置栅极存储器单元和平坦的存储器单元之间的差异是电荷存储层的高度。通常的浮置栅级高度可以是约100nm,而电荷捕获层可以小至3nm,并且多晶硅层可以为约5nm。

sgd和sgs晶体管具有与存储元件相同的配置,但是具有较长的沟道长度以确保电流在禁止的nand串中截止。

在该示例中,层504、505和509在nand串中连续延伸。在另一种方法中,可以去除位于控制门502、512和522之间的层504、505和509的部分,暴露沟道506的顶表面。

图5c描绘了图5b的nand串的部分540的放大视图。电荷俘获层504包括分别直接位于存储器单元500和532的下方和存储器单元500和532的旁边的区域541和543。电荷损失可以以与3d存储器器件中类似的方式在2d存储器器件中发生。电子551是从电荷捕获区域541去捕获的电荷的示例,降低了存储器单元500的vth。电子552是保留在电荷捕获区域541中的电荷的示例。电子551a是从隧道层509逃逸的电荷的示例。

图6a描绘了用于操作存储器器件的过程,其中完整编程操作之后是刷新编程操作。步骤600包括对存储器单元组进行完整的编程操作以将写入数据存储到该组存储器单元中。可以在一个或多个编程通过中将存储器单元从擦除状态编程到不同的目标数据状态。例如,编程通过可以涉及从初始编程脉冲开始,并且在多个编程循环的每个循环中递增编程脉冲,将一系列编程脉冲施加到存储器单元组。通常,在每个编程循环中进行验证测试。当存储器单元的vth超过连接到该组存储器单元的字线上的控制栅极电压时,通过验证测试。当要编程到目标数据状态的所有或几乎所有的存储器单元都通过相应的验证测试时,完成完整的编程操作。例如,参见图7a、7b、8a和8b。

在完成完整编程操作之后,判定步骤601确定是否满足准则以检查该组存储器单元的数据保留。例如,该准则可以包括通过特定的时间量,例如数天、数周或数月。在一种方法中,由图13a的时间线中的虚线方格描述,数据保留检查在完成完整编程操作后以均匀的时间间隔发生。例如,数据保留检查对于所有目标数据状态发生。

当存储器单元组随后被擦除并用于存储新数据时,在另一个完整编程中,时间线被重置为零。在另一种方法中,由图13a的时间线中的实线方格描述,数据保留检查在完成完整编程操作后以逐渐缩短的时间间隔发生。这是基于这样的理论,在完成完整编程操作后电荷损失以与时间成比例的更快的速率发生,从而随着时间的推移,数据保留的检查应该更加频繁地发生。这避免了过度的电荷损失,其可能导致不可校正的读取错误。

在另一种方法中,由图13b的时间线描述,每当存储器器件中的温度超过阈值温度达特定的时间累积量时,数据保留检查就会发生。这是基于这样的理论,即电荷损失主要发生在温度高于阈值温度的时候,因此对于数据保留检查的时间应该基于温度超过阈值温度的时间的测量。

在另一种方法中,由图13c的时间线1310、1312和1314描述,数据保留检查对于不同数据状态在不同时间和频率上发生。例如,数据保留检查对于c状态在时间线1310中发生四次,对于b状态在时间线1312中发生两次,对于a状态在时间线1314中发生一次。这三个时间线覆盖同一时间段id。对于a和b状态的数据保留检查可选地与对于c状态的数据保留检查对齐。这是基于对于较高数据状态的电荷损失较高的理论,使得对于较高数据状态的数据保留检查的时间应早于对于较低数据状态的数据保留检查的时间。

如果判定步骤601为假,则到达等待步骤602,之后可以再次评估判定步骤601。如果判定步骤601为真,则到达步骤603。该步骤涉及进行感测操作以识别组中的存储器单元的数据状态,并且基于vth中的降档量将存储器单元分类到对于每个目标数据状态的子集。感测操作可以包括ecc解码。例如,参见图7c和8c。对于一个或多个目标数据状态,步骤603a包括识别不被刷新编程的存储器单元的第一子集,以及识别将以不同量被刷新编程的其它子集(例如,第二、第三...)。步骤604包括基于目标数据状态和vth中的降档量进行不同量的对于子集的刷新编程。例如,参见图7d。用于子集的刷新编程可以涉及施加一个或多个编程脉冲,直到对于该子集的验证测试通过(步骤604a)。这是一种自适应方法,其确保子集的存储器单元的vth已经超过验证电压。或者,对于子集的刷新编程可以涉及施加固定数量的一个或多个编程脉冲,而不对子集进行验证测试(步骤604b)。这是一种非自适应方法,其中编程脉冲的数量、大小和/或持续时间被设置为在vth中提供期望的升档。这种方法可以节省时间,因为避免了验证操作。可以分别为每个子集选择步骤604a或604b。

许多变化是可能的。例如,可能使用步骤604a来刷新编程一个目标数据状态的所有子集,并且使用步骤604a来刷新编程另一个目标数据状态的所有子集。还可能使用步骤604a来刷新编程一个目标数据状态的一个或多个子集,并且使用步骤604b来刷新编程一个目标数据状态的一个或多个其它子集。另外,当刷新编程目标数据状态的子集时,步骤604a中使用的编程脉冲可以与步骤604b中使用的编程脉冲分开或相同。

图6b描绘了用于进行与图6a的步骤603一致的感测操作的处理。步骤610包括进行读取操作以识别组中的存储器单元的数据状态,以及基于读取结果更新与存储器单元相关联的锁存器。例如,参见图7c、8d和10b。在图7b中,可以通过使用vrer/a、vra/b和vrb/c的控制栅极电压来读取存储器单元以识别数据状态er、a、b和c。例如,具有vth<vrer/a的存储器单元处于e状态;具有vrer/a<vth<vra/b的存储器单元处于a状态;具有vra/b<vth<vrb/c的存储器单元处于b状态;并且具有vth>vrb/c的存储器单元处于c状态。在一些情况中,识别使用ecc解码校正的存储器单元的子集。由于ecc解码而校正(例如翻转)一个或多个位的存储器单元是校正的存储器单元。

即使当存储器单元被读取为处于另一数据状态时,ecc解码也可以确定存储器单元应该处于某个数据状态。例如,指示b状态存储器单元的vth<vrb/c的存储器单元可以被校正为表示c状态。ecc代码可以具有允许检测和纠正有限数量的错误的冗余。ecc技术的示例包括低密度奇偶校验(low-densityparitycheck,ldpc)码、turbo码和级联码。ldpc码是由许多单个奇偶校验(spc)码制成的高效线性块码。turbo码使用迭代软解码,并组合两个或多个相对简单的卷积码和交织器以产生块码。级联代码组合代数块代码和卷积码。

状态机或控制器可以基于读取结果来评估存储器单元,进行ecc解码,并且更新对于具有确定的数据状态的每个存储器单元的锁存器。

作为步骤610的另一示例,在图8c中,可以通过使用vrer/a、vra/b、vrb/c、vrc/d、vrd/e,vre/f和vrf/g的控制栅极电压读取存储器单元来识别数据状态er、a、b、c、d、e、f和g。

步骤611包括进行附加读取操作以识别对于每个目标数据状态的存储器单元的子集。例如,在图7c中,附加读取操作使用控制栅极电压vral,vrb1,vrb2、vrcl、vrc2和vrc3。在图8c中,附加读取操作使用控制栅极电压vrcs1、vrdsl、vresl、vres2、vrfs1、vrfs2、vrgsl和vrgs2。对于某些数据状态,可能不会使用额外的读取操作。例如,在图8c中,在er和a状态之间以及a和b状态之间不使用额外的读取操作。在某些情况中,对于目标数据状态的附加读取操作可以使用状态的验证电压。例如,图7c中对于c状态的附加读取操作可以使用vvc。然后将具有vth>vvc的c状态单元分类到不需要刷新编程的子集,并且将具有vth<vvc的c状态单元分类到需要刷新编程的子集。在其它情况下,对于目标数据状态的附加读取操作的最高控制栅极电压以一定裕度(例如,图14d或14e中的δva,δvb或δvc)低于状态的验证电压。作为结果,例如,vvc-δvc<vth<vvc的c状态单元被认为具有较少量vth降档并且不被刷新编程。这些c状态单元与vvc<vth的c状态单元处于共同子集中,其中这个子集不被刷新编程。

图6c描绘了基于对较高目标数据状态的存储器单元的vth降档的测量来确定是否对目标数据状态的存储器单元进行刷新编程的过程。这是基于在较高数据状态的单元中看到的vth降档的量来决定是否对于较低数据状态的存储器单元进行刷新编程的示例。在某些情况中,对于较高数据状态的存储器单元,存在比对于较低数据状态的存储器单元较多的vth降档,使得对于较低的数据状态可以跳过刷新编程。此外,可以使用较高数据状态的存储器单元中的降档量的度量来预测较低数据状态的存储器单元中的降档量。如果在较低数据状态的存储器单元中预测的降档量相对较小,则可以决定对于较低数据状态的存储器单元跳过刷新编程。这节省了存储器器件中的时间和功耗。

此外,当通过图6b中的读取操作为在vth邻近范围中的多个子集被定义用于较高目标数据状态时,多个子集中的最低子集中的存储器单元的计数是对较低数据状态的存储器单元中的降档量的最高预测,因为该计数表示较高的目标数据状态的vth分布的下尾的大小。可选地,多个子集中的另一子集(除了最低子集之外)中的存储器单元的计数可以预测较低数据状态的存储器单元中的降档量。通常,多个子集中的一个或多个子集中的存储器单元的计数可以预测较低数据状态的存储器单元中的降档量。该计数或多个计数指示下尾部的形状。例如,在四状态存储器器件中,较高的目标数据状态可以是c状态,以及较低的目标数据状态可以是a状态。作为另一示例,在八状态存储器器件中,较高的目标数据状态可以是g状态,并且较低的目标数据状态可以是a状态。

此外,与一个目标数据状态相关联的一个或多个计数可以用于决定是否在低于一个目标数据状态的多个其它目标数据状态中进行刷新编程。当数据状态的验证电压低于另一数据状态的验证电压时,该数据状态低于另一数据状态。例如,在四状态存储器器件中,可以使用c状态的计数来决定是否对a和b状态进行刷新编程。在另一示例中,在八状态存储器器件中,可以使用g状态的计数来决定是否对a和b状态进行刷新编程。

此外,可以使用与多个目标数据状态相关联的一个或多个计数来决定是否在低于多个目标数据状态的一个目标数据状态或多个其它目标数据状态中进行刷新编程。例如,在四状态存储器器件中,可以使用b状态和c状态的计数来决定是否对a状态进行刷新编程。在另一示例中,在八状态存储器器件中,可以使用f和g状态的计数来决定是否对a状态进行刷新编程。

根据上述,例如,步骤620包括获得一个目标数据状态的一个或多个子集中的存储器单元的计数。判定步骤621确定计数是否超过阈值。可以进行测试以提供最佳阈值,其指示何时可以跳过特定较低数据的刷新编程。阈值可以对于子集和相关联的数据状态进行调整。因此,如果与一个目标数据状态相关联的计数相对较高,则对于一个目标数据状态的电荷损失的大小相对较高,并且预期对于另一个目标数据状态的电荷损失的大小相对较高,使得数据保留检查应该涉及另一个目标数据状态。或者,如果与一个目标数据状态相关联的计数相对较低,则一个目标数据状态的电荷损失的大小相对较低,并且预期另一个目标数据状态的电荷损失的大小相对较低,使得数据保留检查可以跳过另一个目标数据状态。

这个方法假设在对较低目标数据状态进行数据保留检查的决定之前,对较高目标数据状态进行附加读取操作。如果判定步骤621为真,则到达步骤622。这个步骤包括对另一(较低)目标数据状态的存储器单元进行刷新编程。如果判定步骤621为假,则到达步骤623。这个步骤包括不对另一(较低)目标数据状态的存储器单元进行刷新编程。

在图7a-8c中,横轴表示vth,并且纵轴表示对数和尺度上的存储器单元的数量。为了清楚起见,以简化的形式示出了vth分布。

图7a和7b描绘了与图6a的步骤600一致的具有四个数据状态的一次通过完整编程操作。一个编程通过操作,也称为完整序列编程,其(仅)涉及多个编程验证操作(或编程循环)的一个序列,该操作从初始vpgm电平开始进行,并且进行到最终vpgm电平,直到所选定的存储器单元的组的阈值电压达到各个目标数据状态的一个或多个相应的验证电压。所有的存储器单元可以在编程通过开始时处于擦除状态。

对于其中每个存储器单元以四个可能的vth范围之一存储两位数据的情况,提供了存储器单元阵列的示例vth分布。一位表示lp数据,另一位表示up数据。位组合可以由up位后接lp位来表示,例如,11表示up=1,lp=1;01表示up=0,lp=1;00表示up=0,lp=0;10表示up=1,lp=0。位组合存储在诸如图1e中的一组锁存器中。例如,lp位可以被存储在ldl中,up位可以被存储在udl中。

为擦除(er)状态存储器单元提供第一vth分布700。三个vth分布710、720和730分别表示当存储器单元的vth超过验证电压vva、vvb或vvc时存储器单元达到的目标数据状态a、b和c。

在完成编程通过之后,可以使用在vth分布之间的读取参考电压vrer/a、vra/b和vrb/c从存储器单元读取数据。通过测试给定存储器单元的vth是否高于或低于读取参考电压中的一个或多个,系统可以确定由存储器单元表示的数据状态。

图7c描绘了与图6a的步骤603一致的图7b的vth分布,其中由于电荷损失引起的vth降档,以及用于感测存储器单元的不同子集的vth范围的控制栅极电压。a、b和c状态分别由vth分布710d、720d和730d表示。通常,电荷损失降低目标数据状态的存储器单元的包括上下尾部的vth分布。还参见图16a-16c。

如果vth>vrc1,则c状态的存储器单元在第一子集(csub1)中,如果vrc2<vth<vrc1,则在第二子集(csub2)中,如果vrb/c<vth<vrc2,则在第三子集(csub3)中,或者如果vth<vrb/c,则在第四子集(csub4)中。

注意,在相邻数据状态之间区分的读取电平也可以可选地用作子集的边界,如这里所做的那样。例如,vrb/c是csub4的上边界和csub3的下边界。在一种方法中,vth分布730d的部分731表示其中这些单元未被刷新编程的vrcl<vth<vvc的存储器单元。可选地,图7c可以通过将vrcl与vvc融合来修改图7c。其它状态也可能会出现类似的融合。

如果vrb1<vth<vrb/c,则b状态的存储器单元在第一子集(bsubl)中,如果vrb2<vth<vrb1,则在第二子集(bsub2),或如果vra/b<vth<vrb2则在第三子集(bsub3)。也可以为其中vth<vra/b的b状态单元定义第四子集。在一种方法中,vth分布720d的部分721表示其中vrb1<vth<vvb的存储器单元,其中这些单元未被刷新编程。

如果vral<vth<vra/b,则a状态的存储器单元在第一子集(asubl)中,或如果vre/a<vth<vra1,则在第二子集(asub2)。也可以为vth<vre/a的a状态单元定义第三子集。在一种方法中,vth分布710d的部分711表示其中vra1<vth<vva的存储器单元,其中这些单元未被刷新编程。er状态单元不被刷新编程。

对于一个目标数据状态(例如c),感测操作在存储器单元组中识别存储器单元的至少第一、第二和第三子集,其中存储器单元的第一子集处于第一阈值电压范围(vrcl或更高),其包括初始验证电压(vvc)和低于初始验证电压的电压范围(vrcl-vvc),存储器单元的第二子集是处于低于第一阈值电压范围(vrc2-vrcl)的第二阈值电压范围,并且存储器单元的第三子集处于低于第二阈值电压范围的第三阈值电压范围(vrb/c-vrc2)。在这种情况中,对存储器单元的第二和第三子集进行刷新编程,而不对存储器单元的第一子集进行刷新编程。存储器单元的第四子集可以处于低于第三阈值电压范围的第四阈值电压范围(低于vrb/c),其中存储器单元的第四子集使用误差校正码解码而被校正并且被刷新编程。

图7d描绘了与图6a的步骤604一致的图7c的具有由刷新编程引起的vth升档的vth分布。在一种方法中,对于每个目标数据状态,第一子集不被刷新编程,以及其它子集被刷新编程。对于c状态,vth分布732、733、734和735分别表示第一、第二、第三和第四子集csubl、csub2、csub3和csub4的存储器单元。对于b状态,vth分布722、723和724分别表示第一、第二和第三子集bsubl、bsub2和bsub3的存储器单元。对于a状态,vth分布712和713分别表示第一和第二子集asub和asub2的存储器单元。

可以以不同的方式表征存储器单元的子集的阈值电压(vth)升档。例如,vth可以升档,其可以通过与刷新编程相关联的vth(例如,用于刷新编程的验证电压,或刷新编程之后的vth分布的平均或中点)和与刷新编程之前的子集相关联的vth(例如,作为子集的vth范围的下边界或上边界的读取电压,或vth范围的中点或平均值)之间的差异来表征。

例如,对于c状态的存储器单元,由对存储器单元的第三子集的刷新编程引起的存储器单元的第三子集的阈值电压升档(例如,vvc3-vrb/c)大于由对存储器单元的第二子集的刷新编程引起的存储器单元的第二子集的阈值电压升档(例如,vvc2-vrc2)。用于子集的阈值电压升档是由于刷新编程而使子集中的存储器单元的vth增加的量。即使第二和第三子集的刷新编程使用相同的验证电压,例如vvc2,由对存储器单元的第三子集的刷新编程引起的存储器单元的第三子集的阈值电压升档(例如,vvc2-vrb/c)大于由对存储器单元的第二子集的刷新编程引起的存储器单元的第二子集的阈值电压升档(例如,vvc2-vrc2)。。

对于c状态的存储器单元,由对存储器单元的第四子集的刷新编程引起的存储器单元的第四子集的阈值电压升档(例如,vvc4-vrb/c+delta,其中delta是非零的)大于由对存储器单元的第三子集的刷新编程引起的存储器单元的第三子集的阈值电压升档。

对于b状态的存储器单元,由对存储器单元的第三子集的刷新编程引起的存储器单元的第三子集的阈值电压升档(例如,vvb3-vra/b)大于由对存储器单元的第二子集的刷新编程引起的存储器单元的第二子集的阈值电压升档(例如,vvb2-vrb2)。

图7d的示例示出了与图6a的步骤604a一致的刷新编程使用验证电压的情况。此外,不同的验证电压与每个子集相关联。对于c状态,验证电压vvc2、vvc3和vvc4分别用于子集csub2、csub3和csub4的刷新编程。因此,当子集的vth范围相对较低时,验证电压可以相对较高。这种方法为最可能具有相对大量的电荷损失的存储器单元提供额外的vth增加,使得它们在下次数据保留检查时不会过大地降档。此外,与对于最可能具有相对大量的电荷损失的存储器单元没有额外的vth增加的情况相比,直到下一次数据保留检查的时间可以被延迟。

可以优化对于每个子集的验证电压。其不应该太高,以导致vth分布的上尾部变宽,或者太低,导致在下次数据保留检查之前允许过量的电荷损失。或者,可以对目标数据状态的子集使用公共验证电压。例如,vvc2可以用于csub2、csub3和csub4的刷新编程。在这个示例中,vvc2超过了编程期间使用的初始验证电压vvc。这有助于在下一次数据保留检查时减少vvc以下的vth降档量。由于刷新编程,可以实现更窄的vth分布,并且可以减少由于vth分布的较长下尾部引起的不可校正误差的可能性。

或者,刷新编程不使用验证电压,以及与图6a的步骤604b一致。在这种情况下,编程脉冲的优化也提供了窄的vth分布。

图8a和8b描绘了与图6a的步骤600一致的具有八个数据状态的一次通过完整编程操作。在图8a中,vth分布800表示er状态。图8b描绘了一次通过完整编程操作的最终阈值分布。er、a、b、c、d、e、f和g状态分别由vth分布800、810、812、814、816、818、820和822表示。还为每个状态描绘了一系列位,其格式为:高页位/中间页位/低页位。

图8c描绘了与图6a的步骤603一致的图8b的具有由电荷损失引起的vth降档的vth分布,以及用于感测存储器单元的不同子集的vth范围的控制栅极电压。降档的a、b、c、d、e、f和g状态分别由vth分布811、813、815、817、819、821和823表示。区分数据状态的读取电压为vrer/a、vra/b、vrb/c、vrc/d、vrd/e、vre/f和vrf/g。在该示例中,额外的读取电压是用于g状态的vrgsl和vrgs2、用于f状态的vrfs1和vrfs2、用于e状态的vresl和vres2、用于d状态的vrdsl和用于c状态的vrc1。在这个示例中,不对a和b状态使用额外的读取电压。基于读取电压,可以识别多个子集。例如,g状态对于具有vth>vrgsl、vrgs2<vth<vrgsl、vrf/g<vth<vrgs2和vth<vvf/g的存储器单元分别具有第一、第二、第三和第四子集。f状态对于具有vth>vrfs1、vrfs2<vth<vrfs1、vre/f<vth<vrfs2和vth<vre/f的存储器单元分别具有第一、第二、第三和第四子集。e状态对于具有vth>vresl、vres2<vth<vresl、vrd/e<vth<vres2和vth<vrd/e的存储器单元分别具有第一,第二,第三和第四子集。d状态对于具有vth>vrdsl、vrc/d<vth<vrdsl和vth<vrc/d的存储器单元分别具有第一、第二和第三子集。c状态对于具有vth>vrcsl、vrb/c<vth<vrcs1和vth<vrb/c的存储器单元分别具有第一、第二和第三子集。b状态对于具有vth>vvb、vra/b<vth<vvb和vth<vra/b的存储器单元分别具有第一、第二和第三子集。a状态对于具有vth>vva、vrer/a<vth<vva和vth<vrer/a的存储器单元分别具有第一、第二和第三子集。

在这个示例中,初始验证电压vva和vvb分别用作a和b状态的子集边界,而初始验证电压vvc、vvd、vve、vvf和vvg分别不用作c、d、e、f和g状态的子集边界。

刷新编程可以使用或可以不使用与四状态存储器器件相关而讨论的验证测试。

图9描绘了根据存储器单元的目标数据状态和vth降档量分类的存储器单元的示例子集。组950分别包括存储器单元900-915和相关联的位线920-935。在简化的示例中,各种子集(“sub”)彼此相邻,并且与图7c一致地被标记。存储器单元900-903位于esub中,该子集包括所有擦除状态的存储器单元。存储器单元904和905在a状态的第一子集asub1中。存储器单元906和907在a状态的第二子集aub2中。存储器单元908和909在b状态的第一子集bsub1中。存储器单元910在b状态的第二子集bsub2中。存储器单元911在b状态的第三子集bsub3中。存储器单元912、913、914和915分别在c状态的第一、第二、第三和第四子集csub1、csub2、csub3和csub4中。

如所提到的,存储器单元的一部分(第一子集)将不进行刷新编程,而其它子集将进行刷新编程。

图10a描绘了与图6a的步骤600一致的在完整编程操作期间的数据锁存器中的位组合的示例。如所提到的,例如结合图1e,数据锁存器组可以与每个位线相关联,因此与连接到字线的存储器单元组中的每个存储器单元相关联。在完整编程期间,apgm、bpgm和cpgm分别表示要被编程为a、b或c状态的存储器单元的位组合。此时,锁存器ldl和udl分别存储识别目标数据状态的较低页位和较高页位。ainh,binh和cinh分别表示已经完成对a、b或c状态的编程的存储器单元的位组合,并且在编程操作中被禁止进一步编程。此时,无论目标数据状态如何,锁存器ldl和udl分别为1和1。e表示对于擦除状态存储器单元的位组合。x表示其值不重要的位。

图10b描绘了与图6a一致的在感测操作之后的数据锁存器中的位组合的示例,该感测操作在刷新编程操作之前将存储器单元分类成子集。当结合数据保留检查来感测存储器单元组时,锁存器ldl和udl被更新以识别存储器单元的目标数据状态。例如,对于asubl和asub2中的a状态单元,ldl和udl分别为1和0。对于bsubl、bsub2和bsub3中的b状态单元,ldl和udl分别为0和0。对于csubl,csub2,csub3和csub4中的c状态单元,ldl和udl分别为0和1。此外,锁存器rlsb和rmsb存储两个数据位,用于识别目标数据状态的多达四个子集。在这个示例中,rlsb和rmsb分别为0和0,以识别目标数据状态的第一子集(例如,asubl、bsubl和csubl)。rlsb和rmsb分别为1和0,以识别目标数据状态的第二子集(例如,asub2、bsub2和csub2)。rlsb和rmsb分别为0和1,以标识目标数据状态的第三子集(例如,bsub3和csub3)。rlsb和rmsb分别为1和1,以识别目标数据状态的第四子集(例如,csub4)。

在图11a-12c中,横轴描绘了时间或编程循环,以及纵轴描绘了vcg,即被选择用于完整编程或刷新编程的字线上的电压。

图11a描绘了在与图6a的步骤600一致的示例完整编程操作中施加到字线的电压。完整的编程操作将存储器单元从擦除状态编程到不同的目标数据状态,而刷新编程操作从由于随时间发生的电荷损耗稍微低于目标数据状态,但是高于擦除状态的vth电平,来编程存储器单元。编程操作包括一系列波形1100。对每个目标数据状态进行增量步进脉冲编程。这个示例还基于编程循环进行验证测试。例如,分别在循环1-4、3-7和5-9中验证a,b和c状态单元。示例验证波形1110包括vva处的a状态验证电压。示例验证波形1111分别包括vva和vvb处的a和b状态验证电压。示例验证波形1113分别包括vvb和vvc处的b和c状态验证电压。示例验证波形1114包括vvc处的c状态验证电压。还描绘了编程脉冲1101-1109。初始编程脉冲具有vpgm_init的大小。编程脉冲通常是以一个或多个步阶从初始值(例如0v)增加到峰值,并且然后回到初始值的波形。

图11b描绘了在与图6a的步骤604a一致的示例刷新编程操作中施加到字线的电压,其中施加一个或多个编程脉冲直到通过对于c状态存储器单元的不同子集的验证测试。在一种方法中,单独刷新编程具有不同目标数据状态的存储器单元。例如,可以刷新编程c状态单元,接着是b状态存储器单元,然后是a状态存储器单元。可以对于每个目标数据状态优化初始编程脉冲的大小和步阶以及持续时间。通常,当目标数据状态相对较高时,初始编程脉冲的大小相对较高。用于c状态的刷新编程操作包含一系列波形1120。进行增量步进脉冲编程。波形包括编程脉冲1121-1124。示例验证波形1130分别包含对于c状态的第二、第三和第四子集的验证电压vvc2、vvc3和vvc4。

图11c描绘了在与图6a的步骤604a一致的示例刷新编程操作中施加到字线的电压,其中施加一个或多个编程脉冲直到通过对于b状态存储器单元的不同子集的验证测试。b状态的刷新编程操作包含一系列波形1140。进行增量步进脉冲编程。波形包括编程脉冲1141-1143。示例验证波形1150分别包含对于b状态的第二和第三子集的验证电压vvb2和vvb3。

图11d描绘了在与图6a的步骤604a一致的示例刷新编程操作中施加到字线的电压,其中施加一个或多个编程脉冲直到通过对于a状态存储器单元的子集的验证测试。对于a状态的刷新编程操作包含一系列波形1160。进行增量步进脉冲编程。波形包括编程脉冲1161和1162。示例验证波形1170包含用于a状态的第二子集的验证电压vva2。

注意,可以基于数据状态的单元的vth分布来自适应地设置对于该数据状态的子集的数量。例如,图7c示出了a状态vth分布的下尾的底部高于vrer/a,使得没有单元具有vth<vrer/a。因此,不需要用于其中vth<vrer的a状态的存储器单元的子集,并且用于a状态的刷新编程的波形不需要使用特定于这样的子集的验证电压。然而,另一个数据保留检查可以示出a状态vth分布的下尾低于vrer/a,使得应当对具有vth<vrer/a的a状态的存储器单元定义(第三)子集,并且用于刷新编程的波形可以使用特定于该第三子集的验证电压。

图12a1描绘了在与图6a的步骤604b一致的示例刷新编程操作中施加到字线的电压,其中施加固定数量的编程脉冲来刷新编程c状态存储器单元的子集。如所提到的,可以设置编程脉冲的数量、大小和/或持续时间来为目标数据状态的存储器单元提供期望的vth的升档。如果编程脉冲的数量、大小和/或持续时间太小,则存储器单元的vth的升档可能太小,使得vth分布具有非常较下的尾部。如果编程脉冲的数量、大小和/或持续时间太大,则存储器单元的vth的升档可能过大,因此vth分布的上尾增加,并且vth分布将变宽。可以进行测试以优化对于每个目标数据状态的编程脉冲的数量、幅度和/或持续时间。

波形1200分别包括第一、第二和第三编程脉冲1201、1202和1203。在每个编程脉冲期间对c状态的不同组的子集进行编程。例如,在第一编程脉冲期间对csub2、csub3和csub4进行编程,在第二编程脉冲期间对csub3和csub4进行编程,在第三个编程脉冲期间对csub4进行编程。换句话说,在第一个编程脉冲期间,禁止(例如通过提高相关联的位线电压)csubl被编程,在第二个编程脉冲期间禁止csub和csub2被编程,并且在第三个编程脉冲期间禁止csub1、csub2和csub3被编程。

此外,在这个示例中以及图12a2和12b中,编程脉冲具有相同的大小,例如彼此+/-5-10%以内。通过避免编程脉冲大小的步阶增加,编程干扰的可能性被降低,因为编程干扰与编程脉冲大小成正比。或者,编程脉冲可以随着每个连续的编程循环而在大小上增加。一般来说,编程脉冲数将很小。

在刷新编程期间避免验证电压的使用可节省时间并降低功耗。如果编程脉冲的数量、大小和/或持续时间被优化设置,则用于刷新编程的总时间可以小于用于完整序列编程的时间。

在该示例中,对存储器单元(csub2)的第二子集进行刷新编程包含使用第一编程脉冲1201来对存储器单元的第二子集的每个存储器单元进行编程,并且不进行对存储器单元的第二子集的相关联的验证测试或进一步编程,并且对存储器单元的第三子集(csub3)进行刷新编程包括使用第一编程脉冲1201和第二编程脉冲1202来对存储器单元的第三子集的每个存储器单元进行编程,并且不进行对存储器单元的第三子集的相关联的验证测试或进一步编程。

图12a2描绘了在与图6a的步骤604a和604b一致的示例刷新编程操作中施加到字线的电压,其中施加固定数量的编程脉冲来刷新c状态存储器单元的子集csub2和csub3,并且施加一个或多个编程脉冲,直到通过对于c状态存储器单元的子集csub3的验证测试。对刷新编程期间经历相对小的vth升档的一个或多个子集(例如,csub2和csub3),这种方法使用不具有验证测试的固定数量的编程脉冲,并且对在刷新编程期间经历相对较大的vth升档的一个或多个其它子集(例如,csub4),这种方法使用具有验证测试的自适应数量的编程脉冲。当vth中的升档相对较大时,当应用编程脉冲时,存在存储器单元可能达到的vth电平的相对较宽的范围。在对于这些存储器单元的刷新编程之后,对于这些存储器单元的验证测试的使用可能导致较窄的vth电平范围。与对所有被刷新编程的子集使用验证测试的情况相比,这种混合方法节省时间并且降低功耗。

波形1210分别包括第一、第二、第三和第四编程脉冲1204、1205、1206和1207,并且分别包括在vvc4处的相关联的验证电压脉冲1211、1212、1213和1214。在每个编程脉冲期间对c状态的子集的不同组进行编程。例如,在第一个编程脉冲期间对csub2、csub3和csub4进行编程,在第二个编程脉冲期间对csub3和csub4进行编程,在第三和第四编程脉冲期间对csub4进行编程。可能需要第四编程脉冲,例如,以对在csub4中的相对较慢编程的存储器单元进行编程。

图12b描绘了在与图6a的步骤604b一致的示例刷新编程操作中施加到字线的电压,其中施加固定数量的编程脉冲来刷新编程b状态存储器单元的子集。波形1220分别包括第一和第二编程脉冲1221和1222。在每个编程脉冲期间对b状态的子集的不同组进行编程。例如,在第一个编程脉冲期间对bsub2和bsub3进行编程,并在第二个编程脉冲期间对bsub3进行编程。换句话说,在第一个编程脉冲期间禁止bsubl被编程,并且在第二个编程脉冲期间禁止bsubl和bsub2被编程。

图12c描绘了在与图6a的步骤604b一致的示例刷新编程操作中施加到字线的电压,其中施加固定数量的编程脉冲来刷新编程a状态存储器单元的子集。这个示例使用单个编程脉冲1240来对asub2中的存储器单元进行编程,同时抑禁止asubl中的存储器单元的编程。

图13a-13c示出了时间通过向右移动而行进的时间线。

图13a描绘了示出当在完成完整编程操作之后作为时间的函数进行数据保留检查的时间的时间线。例如,可以在相同的刷新编程操作中刷新所有目标数据状态的存储器单元。数据保留检查包含感测操作和刷新编程操作。在由虚线方框描述的一种方法中,在完成完整编程操作之后,以均匀的时间间隔发生数据保留检查。在由实线方框描述的另一种方法中,在完成完整编程操作之后,数据保留检查以逐渐更短的时间间隔处发生。

图13b描绘了示出作为高于阈值温度的累积时间的函数进行数据保留检查的时间的时间线。在这种方法中,每当存储器器件中的温度超过对于特定累积时间量的阈值温度时,就会发生数据保留检查。电荷损失量可以随温度升高而增加,因此超过阈值温度的累积时间量是何时应该进行数据保留检查的良好指示。

图13c描绘了示出当在完成完整编程操作之后作为时间的函数进行数据保留检查的时间的时间线,其中在不同的刷新编程操作中对不同目标数据状态的存储器单元进行刷新编程。对于相对较高数据状态的存储器单元,电荷损失量可能更大,从而可以以较高的频率对这些存储器单元进行数据保留检查。例如,在由时间线表示的给定时间段中,对于c状态数据保留检查在时间线1310中发生四次,对于b状态在时间线1312中发生两次,并且对于a状态在时间线1314中发生一次。

可以提供一组可执行指令来实现时间线1310、1312和1314。所述指令组可以包括用于确定满足用于检查多个目标数据状态当中相对较高的目标数据状态(例如,c状态)的数据保留的第一准则的指令;用于当满足第一准则时,识别被编程为相对较高的目标数据状态的存储器单元并进行刷新编程的指令;用于确定满足用于检查多个目标数据状态当中相对较低的目标数据状态(例如,a状态)的数据保留的第二准则的指令,其中满足第二准则比满足第一准则的频率较低;以及用于当满足第二准则时,识别被编程为相对低的目标数据状态的存储器单元并进行刷新编程的指令。例如,在时间线的时间段期间,第一准则可以被满足四次,而第二准则仅被满足一次。

图14a是示出了与图6a的判定步骤601一致的直到下一次数据保留检查的作为vth中的降档的度量的函数的时间的曲线图。例如,vth中的降档的度量可以基于包含对于目标数据状态的存储器单元的vth分布的下尾的一个或多个子集中的存储器单元的计数。当计数越大时,降档越大。因此,当降档较大时,直到下一次数据保留检查的时间可以较小。这允许在vth降档之前发生刷新编程会导致不可校正的错误。因此,该方法包括确定直到对存储器单元组的下一次数据保留检查为止的时间,其中当例如存储器单元的第三子集的多个存储器单元相对较小时,时间相对较长。

图14b是示出了与图6a的判定步骤601以及图13c一致的直到下一次数据保留检查的作为目标数据状态的函数的时间的曲线图。对于较高的数据状态,vth降档可以较大,使得当目标数据状态相对较高时,对于目标数据状态的直到下一次数据保留检查的时间可以相对较小。

图14c是示出了与图6a的步骤604一致的刷新编程期间的对于存储器单元的示例子集的作为感测到的vth降档的函数的vth升档的曲线图。如所提到的,存储器单元的vth降档量可以根据其被分类到的子集的vth范围来定义。当降档量相对较大时,刷新编程期间的vth升档量可以相对较大。这有助于在刷新编程之后为目标数据状态提供窄的vth分布。

图14d是示出了与图6a的步骤604a一致的刷新编程期间对于三个不同子集作为感测到的vth降档的函数的验证电压的曲线图,其中每个目标数据状态具有三个被刷新编程的子集。在图14d和14e中,横轴表示对于存储器单元的vth降档量,例如根据其被分类到的子集的vth范围所定义。δva、δvb和δvc分别是低于vva、vvb和vvc的电压裕度,其分别被包括为不经受刷新编程的a、b和c状态的存储器单元的第一子集的一部分。如所提到的,提供这样的非零裕度避免了具有少量vth降档的存储器单元的刷新编程。这样减少了刷新编程过程中的时间和功耗。此外,由于较高数据状态的存储器单元可能会经历较大量的vth降档,因此对于较高数据状态(例如δvc>δvb>δva),该裕度可能较大。这种方法可以导致每个目标数据状态中大致相等的存储器单元部分不进行刷新编程。

在图14d和14e中,纵轴表示刷新编程期间的验证电压。在完整编程期间的初始验证电压vva、vvb和vvc被描述以作参考。

在图14d中,每个目标数据状态具有使用相应的验证电压刷新编程的三个存储器单元的子集。例如,a状态具有验证电压vva2(例如,如图7d所描绘的),vva3和vva4(图7d中未描绘)。b状态具有验证电压vvb2和vvb3(例如,如图7d所描绘的)和vvb4(图7d中未描绘)。c状态具有验证电压vvc2,vvc3和vvc4(例如,如图7d所描绘的)。如所提到的,在刷新编程期间使用高于初始验证电压的验证电压可以是有所帮助的。例如,刷新编程期间的最低验证电压可以超过对于每个目标数据状态的初始验证电压(例如,vva2>vva,vvb2>vvb和vvc2>vvc)。可选地,刷新编程期间的最低验证电压超过对于每个目标数据状态的初始验证电压的量可以是目标数据状态的函数。例如,当目标数据状态相对较高(例如,vvc2-vvc>vvb2-vvb>vva2-vva)时,刷新编程期间的最低验证电压超过初始验证电压的量可以相对较大。这有助于为更可能经历电荷损失的较高状态的存储器单元提供额外的升档。

可选地,刷新编程期间的最低验证电压超过初始验证电压的量对于所有目标数据状态是相同的。

图14e是示出了在刷新编程期间对于不同目标数据状态作为感测到的vth降档的函数的验证电压的曲线图,其中c状态具有三个被编程刷新的子集,b状态具有两个被编程刷新的子集,并且a状态具有一个被刷新编程的子集,与图6a的步骤604a以及图7d一致。因此,被刷新编程的子集的数量是目标数据状态的函数。具体地,对于相对较高的目标数据状态,刷新编程的子集的数量相对较高。还参见图14g。a状态具有验证电压vva2,b状态具有验证电压vvb2和vvb3,c状态具有验证电压vvc2、vvc3和vvc4。

图14e指示控制电路可以被配置为:(a)进行涉及存储器单元组的完整编程操作,将存储器单元编程为多个目标数据状态(a、b、c)的完整编程操作,多个目标数据状态包含具有相关联的验证电压(vvc)的相对高的目标数据状态和具有相关联的验证电压(vva)的相对低的目标数据状态;(b)确定满足用于检查存储器单元组的数据保留的准则;(c)当满足准则时:(a)识别存储器单元的子集的数量n1>1,其中该存储器单元被编程为相对高的目标数据状态并且具有低于相对高的目标数据状态的验证电压的阈值电压,n1个子集中的每一个子集与nl个相邻阈值电压范围当中的不同阈值电压范围相关联,并且(a)识别存储器单元的子集的数量n2>=1,其中该存储器单元被编程为相对低的目标数据状态的以及具有低于相对低的目标数据状态的验证电压的阈值电压,其中n2<n1;(d)对存储器单元的n2个子集进行刷新编程;以及(e)对已被编程为相对高的目标数据状态的存储器单元的n1个子集的每个子集进行刷新编程。

例如,c状态可以是相对高的目标数据状态,其中nl=3,并且a状态可以是相对低的目标数据状态,其中n2=1。

此外,被编程为相对高的目标数据状态的存储器单元的子集的数量n1与多个目标数据状态中相对高的目标数据状态的相对位置成比例。例如,c状态是四状态存储器器件中的最高状态,因此n1相对较高(例如3)。a状态是四状态存储器器件中最低编程状态,因此n1相对较小(例如1)。另外,对于被编程为相对高的目标数据状态的存储器单元的n1个子集的最低子集(例如,csub4)的刷新编程使用验证电压(例如,vvc4),其以某量(vvc4-vvc)高于相对较高的目标数据状态的验证电压(vvc);并且该量与多个目标数据状态当中相对高的目标数据状态的相对位置成比例。例如,c状态是四状态存储器器件中最高的编程状态,因此vvc4-vvc相对较高。a状态是四状态存储器器件中最低的编程状态,因此vva2-vva相对较小。

图14f是示出与图14d和14e一致的在没有刷新编程的情况下可允许的vth中的降档的曲线图。如所提到的,当目标数据状态相对较高(例如,δvc>δvb>δva)时,在没有刷新编程的情况下允许的vth中的降档可以相对较大。

图14g是示出与图14e一致的要进行刷新编程的子集的数量的曲线图。如在图14e中所示,当目标数据状态相对较高时,被刷新编程的子集的数量可以相对较高。

图14h是示出与图6a的步骤604b一致的在刷新编程期间作为目标数据状态的函数的编程脉冲的数量的曲线图。如在图12a1,12b和12c中所示,相对较高数量的编程脉冲可以被用于相对较高的目标数据状态。

图14i是示出与图6a的步骤604a或604b一致的在刷新编程期间作为目标数据状态的函数的初始vpgm的曲线图。如图12a1、12b和12c所示,对于相对较高的目标数据状态,初始编程脉冲的大小可以相对较高。或者,当在对于目标数据状态的刷新编程期间所有编程脉冲具有相同的大小时,对于较高的目标数据状态,编程脉冲的大小可以相对较高。

图15a描绘了与图2c和3c1的存储器器件一致的nand串的电路图。与图3c1一致的示例nand串ns0a(或与图2c一致的ns0)包括sgd晶体管1501、1502和1503、漏极侧的虚拟存储器单元1504、数据储存存储器单元1505、...、1506、源极侧虚拟存储器单元1507和sgs晶体管1508、1509和1510。位线1512将nand串的漏极端连接到感测电路1500,感测电路1500用于在涉及选择栅级晶体管和存储器单元的操作期间感测nand串。源极线1511连接到nand串的源极端。电压驱动器可以用于提供所描绘的电压。例如,将vsg施加到可选地彼此连接的sgd晶体管的控制栅极,并将vsg施加到可选地彼此连接的sgs晶体管的控制栅极。vsg也可以被施加到虚拟存储器单元1504和1507。此外,假设要进行数据保留检查的存储器单元组被连接到wll22。存储器单元1504是组中的示例存储器单元。在对于该组的感测操作期间,将控制栅极电压vcgr施加到wll22,并且将通过电压vpass施加到诸如连接到wll0的存储器单元1506的剩余存储器单元。vcgr可以具有不同的值,例如结合图7c、7d和8c所讨论的。vbl是位线电压,vsl是源极线电压。i_nand是nand串中感测到的电流。在验证测试期间可以感测该电流。

图15b描绘了图15a的存储器单元1506的电路图。存储器单元包括多个端,该多个端包括可以具有电压vbl的漏极(d)端,可以具有电压vs1的源极(s)端,可以具有电压vcg的控制栅极(cg)端并且可以具有电压vch的(ch)端。

在图16a-16c中,横轴表示vth,纵轴表示对数尺度上的存储器单元的数量。

图16a描绘了在擦除状态和c状态的存储器单元组的测试数据,示出了在紧接编程之后的初始vth分布1600、完整序列重新编程之后的降档vth分布1601和vth分布1602。与vth分布1600相比,vth分布1601的上下尾部较低。此外,完整序列重新编程导致e状态存储器单元的大量的编程干扰,如擦除状态的vth分布的上尾的增量所示(参见箭头1603)。

图16b描绘了在擦除状态和c状态中的存储器单元组的测试数据,其示出了在紧接编程之后的初始vth分布1610、在使用单个编程脉冲刷新编程之后的降档vth分布1611和vth分布1612。单个编程脉冲提供了最佳的vth升档量。有利的是,由于擦除状态的vth分布的上尾没有增加,所以不存在e状态存储器单元的编程干扰。图16b中的降档量大约是图16a的降档量一半。

图16c描绘了擦除状态和c状态中的存储器单元组的测试数据,示出了在紧接编程之后的初始vth分布1620、使用一个编程脉冲刷新编程之后的降档vth分布1621、vth分布1622,以及使用两个编程脉冲刷新编程之后的vth分布1623。两个编程脉冲具有相同的大小并提供最佳的vth升档量。有利的是,由于擦除状态的vth分布的上尾没有增加,所以不存在e状态存储器单元的编程干扰。图16c中的降档量与图16a相同。

图16a-16c的示例都具有以下优点:由于由电荷损失引起的上尾的降低结合由刷新编程引起的上尾的升高导致vth分布变窄。然而,与完整编程相比,刷新编程避免了编程干扰并且消耗更少的时间。

因此,可以看出,在一个实施例中,一种用于操作存储器器件(100)的方法包括:进行涉及存储器单元(900-915)的组(950)的完整编程操作(1100),完整编程操作使用一个目标数据状态(a、b、c)的初始验证电压(vva、vvb、vvc)来操作对存储器单元编程;在完成完整编程操作之后,作出是否满足用于检查该组存储器单元的数据保留的准则的确定;响应于满足准则的确定,对一个目标数据状态的存储器单元进行感测操作,以在该组存储器单元中识别存储器单元的多个子集,所述存储器单元的多个子集包括存储器单元的第一(asubl、bsubl、csubl)、第二(asub2、bsub2、csub2)和第三(bsub3、csub3)子集的存储器单元的多个子集,存储器单元的第一子集处于包含初始验证电压(vvc)的第一阈值电压范围(vth>vrcl;vrb1<vth<vrb/c;vra1<vth<vra/b)中,存储器单元的第二子集处于低于第一阈值电压范围的第二阈值电压范围(vrc2<vth<vrcl;vrb2<vth<vrb1;vre/a<vth<vra1),并且存储器单元的第三子集处于低于第二阈值电压范围的第三阈值电压范围(vrb/c<vth<vrc2;vra/b<vth<vrb2;vth<vre/a);以及对存储器单元的第二子集进行刷新编程,并对存储器单元的第三子集进行刷新编程,而不对存储器单元的第一子集进行刷新编程,其中,由对存储器单元的第三子集的刷新编程引起的存储器单元的第三子集的阈值电压升档(vvc3-vrb/c;vvb3-vra/b)大于由对存储器单元的第二子集的刷新编程引起的存储器单元的第二子集的阈值电压升档(vvc2-vrc2;vvb2-vrb2)。

在另一实施例中,存储器器件(100)包含:存储器单元组(950);以及控制电路(110、112、114、132、116、122、128、192,mc0、sb1、sb2、...、sbp)。控制电路被配置为:进行涉及存储器单元组的完整编程操作(1100),完整编程操作将存储器单元编程为多个目标数据状态(a、b、c),多个目标数据状态包含具有相关联的验证电压(vvc)的相对高的目标数据状态(c)和具有相关联的验证电压(vva)的相对低的目标数据状态(a);确定满足用于检查该组存储器单元的数据保留的准则;当满足准则时:(a)识别存储器单元的子集(csub2、csub3、csub4)的数量n1>1,其中该存储器单元被编程为相对高的目标数据状态并且具有低于相对较高的目标数据状态的验证电压的阈值电压(vth<vvc),,n1个子集中的每一个子集与nl个相邻阈值电压范围当中的不同阈值电压范围(vrc2<vth<vrcl,vrb/c<vth<vrc2,vth<vrb/c)相关联,并且(a)识别存储器单元的子集(asub2)的数量n2>1,其中该存储器单元被编程为相对低的目标数据状态的以及具有低于相对低的目标数据状态的验证电压的阈值电压(vre/a<vth<vra1),其中n2<n1;对存储器单元的n2个子集进行刷新编程;以及对已被编程为相对高的目标数据状态的存储器单元的n1个子集的每个子集进行刷新编程。

在另一个实施例中,存储器控制器(122)包含:包含指令组(160)的储存器件(122a,122b),和可操作以执行所述指令组的处理器(122c)。所述指令组包含:用于将存储器单元的组(950)编程为多个目标数据状态(a、b、c)的指令(161);以及用于在编程之后和在该组存储器单元未被擦除的时间段期间感测并且刷新编程该组存储器单元的指令(162)。用于感测并且刷新编程的指令包含:用于确定满足用于多个目标数据状态中相对较高的目标数据状态的数据保留的第一准则的指令;当满足第一准则时,识别被编程为相对较高的目标数据状态的存储器单元并进行刷新编程的指令;用于确定满足用于检查多个目标数据状态当中相对较低的目标数据状态的数据保留的第二准则的指令,其中满足第二准则比满足第一准则频率更低;以及用于当满足第二准则时,识别被编程为相对低的目标数据状态的存储器单元并进行刷新编程的指令。

在另一个实施例中,存储器器件包含:存储器单元(900-915)的组(950);以及控制电路(110、112、114、132、116、122、128、192、mc0、sb1、sb2、...、sbp)。控制电路被配置为:进行涉及该组存储器单元的完整编程操作(1100),完整编程操作使用一个目标数据状态(a、b、c)的初始验证电压(vva、vvb、vvc)对存储器单元编程;在完成完整的编程操作之后,作出满足用于检查该组存储器单元的数据保留的准则的确定;响应于满足准则的确定,对一个目标数据状态的存储器单元进行感测操作,以在该组存储器单元中识别存储器单元的第一(asubl、bsubl、csubl)、第二(asub2、bsub2、csub2)和第三(bsub3、csub3)子集,存储器单元的第一子集处于包含初始验证电压(vvc)的第一阈值电压范围(vth>vrcl;vrb1<vth<vrb/c;vra1<vth<vra/b)中,存储器单元的第二子集处于低于第一阈值电压范围的第二阈值电压范围(vrc2<vth<vrcl;vrb2<vth<vrb1;vre/a<vth<vra1),并且存储器单元的第三子集处于低于第二阈值电压范围的第三阈值电压范围(vrb/c<vth<vrc2;vra/b<vth<vrb2;vth<vre/a);以及对存储器单元的第二子集进行刷新编程,并对存储器单元的第三子集进行刷新编程,而不对存储器单元的第一子集进行刷新编程,其中,由对存储器单元的第三子集的刷新编程引起的存储器单元的第三子集的阈值电压升档(vvc3-vrb/c;vvb3-vra/b)大于由对存储器单元的第二子集的由刷新编程引起的存储器单元的第二子集的阈值电压升档(vvc2-vrc2;vvb2-vrb2)。

为了说明和描述的目的,已经提出了本发明的前面的详细描述。它不是穷举的或将本发明限制为所公开的精确形式。鉴于上述教导,许多修改和变化是可能的。选择所描述的实施例以便最好地解释本发明的原理及其实际应用,从而使得本领域的其它技术人员可以在各种实施例中以及使用适合于预期的特定用途的各种修改来最佳地使用本发明。目的是本发明的范围由所附权利要求限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1