CN105164755A - 使用动态验证电平对选择栅极晶体管和存储器单元进行编程 - Google Patents
使用动态验证电平对选择栅极晶体管和存储器单元进行编程 Download PDFInfo
- Publication number
- CN105164755A CN105164755A CN201480007201.2A CN201480007201A CN105164755A CN 105164755 A CN105164755 A CN 105164755A CN 201480007201 A CN201480007201 A CN 201480007201A CN 105164755 A CN105164755 A CN 105164755A
- Authority
- CN
- China
- Prior art keywords
- transistor
- programming
- program verification
- verification iteration
- iteration
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
- G11C16/3427—Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0408—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors
- G11C16/0425—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors comprising cells containing a merged floating gate and select transistor
Landscapes
- Read Only Memory (AREA)
- Semiconductor Memories (AREA)
Abstract
通过使用动态验证电压(Vv)来提高对选择栅极晶体管和存储器单元的编程准确度,该动态验证电压(Vv)在编程操作期间从初始电平(Vvinit)增大到最终电平(Vvmx)。快速编程晶体管在慢速编程晶体管之前被锁定以防止被编程,但是快速编程晶体管经历编程干扰,编程干扰使快速编程晶体管的阈值电压在编程操作结束时增大到与慢速编程晶体管相同的电平。为了将存储器单元编程至不同的目标数据状态,初始验证电平(Vvinit)和最终验证电平(Vvmx)之间的偏移可以对于每个数据状态不同。在一种方法中,目标数据状态越低,该偏移越大。动态验证电压(Vv)的增大可以随编程操作的每个随后的编程验证迭代而逐步地更小。该增大可以适应于编程进度而开始或者可以在预定编程验证迭代中开始。
Description
技术领域
本技术涉及用于对非易失性存储器设备中的晶体管进行编程的技术。
背景技术
在各种电子设备中使用半导体存储器已变得日益普遍。例如,在蜂窝电话、数字摄影机、个人数字助理、移动计算设备、非移动计算设备以及其他设备中使用非易失性半导体存储器。闪存存储器属于最普遍形式的非易失性半导体存储器。使用闪存存储器,可以在一个步骤中擦除整个存储器阵列的内容。
例如,2DNAND存储器设备是下述一种类型的闪存存储器,在该种类型的闪存存储器中浮栅位于半导体衬底中的沟道区之上并且与该沟道区绝缘。该浮栅位于源极区与漏极区之间。控制栅极设置在浮栅之上并且与浮栅绝缘。由此形成的晶体管的阈值电压(Vth)由浮栅上所保留的电荷量来控制。亦即,由浮栅上的电荷电平来控制在晶体管被接通之前必须施加给控制栅极的用于允许该晶体管的源极与漏极之间进行传导的最小电压量。
近来,已经提出了使用3DNAND堆叠式存储结构的超高密度存储设备。一个示例是位成本可扩展(BiCS)架构,在BiCS架构中,存储器设备由交替的导电层和介电层的阵列形成。在这些层中钻有存储器孔以同时限定很多存储层。然后通过使用适当的材料填充存储器孔来形成NAND串。直的NAND串在一个存储器孔中延伸,而管状或U形NAND串(P-BiCS)包括存储器单元的一对竖直列,所述竖直列在两个存储器孔中延伸并且通过底部背栅而被接合。存储器单元的控制栅极由导电层提供。
特别是当缩小存储器设备时,需要用于对阈值电压范围进行准确编程的技术。
附图说明
在不同的附图中,具有相似附图标记的元件指代共同部件。
图1是非易失性存储器设备的功能框图。
图2A描绘了在图1的存储器阵列155中的NAND串的块以及关联的感测块。
图2B描绘了在包括扁平控制栅极的2D存储器设备实施方式中的图2A的NAND串的横截面图。
图2C描绘了沿图2B中的线227的横截面图,其示出了具有扁平控制栅极的实施方式的NAND串。
图3A是描绘了图1的感测块SB0的一个实施方式的框图。
图3B描绘了在示例3D存储器设备中的图2A的NAND串的横截面图。
图3C描绘了图3B的NAND串沿线294的横截面图。
图3D描绘了在包括图3B的NAND串NS0的3D存储器设备中的示例电路。
图4A和图4B描绘了同时地写入低页数据和高页数据的示例性一遍编程操作。
图5A至图5C描绘了在第一遍中写入低页数据而在第二遍中写入高页数据的两遍编程操作。
图6A至图6D描绘了在第一遍中写入低页数据、在第二遍中写入中页数据以及在第三遍中写入高页数据的三遍编程操作。
图7A至图7C描绘了在使用固定锁定验证电平的编程操作期间晶体管的集合的阈值电压分布的变化。
图8A至图8K描绘了在使用动态验证电平的编程操作期间晶体管的集合的阈值电压分布的变化。
图9A描绘了随编程操作中的编程验证(PV)迭代而变化的位线相邻的存储器单元具有编程状态的可能性。
图9B描绘了使用动态验证电平的编程操作的流程图。
图10A描绘了根据图9B的步骤922的用于确定晶体管的集合的固有Vth分布宽度的处理的流程图。
图10B至图10D描绘了在图10A的用于确定固有Vth分布宽度的处理期间晶体管的集合的阈值电压分布的变化。
图11A描绘了例如在图4A和图4B中描绘的一遍编程操作中使用的电压。
图11B描绘了随图11A的编程操作中的编程验证迭代而变化的具有锁定状态的存储器单元的数量。
图11C描绘了随图11A的编程操作中的编程验证迭代而变化的针对A状态存储器单元、B状态存储器单元和C状态存储器单元的示例动态验证电压。
图12A描绘了例如在图5A至图5C中描绘的两遍编程操作的第一遍中使用的电压。
图12B描绘了随图12A的编程操作的第一遍中的编程验证迭代而变化的具有锁定状态的存储器单元的数量。
图12C描绘了在验证电压逐步更小地增大的情况下随图12A的编程操作的第一遍中的编程验证迭代而变化的针对A状态存储器单元的示例动态验证电压。
图12D描绘了在对使用慢速编程模式和快速编程模式的每个编程验证迭代针对验证电压使用固定步长的情况下,随图12A的编程操作的第一遍中的编程验证迭代而变化的针对A状态存储器单元的示例动态验证电压。
图12E描绘了随图12A的编程操作的第一遍中的编程验证迭代而变化的针对A状态存储器单元的示例动态验证电压,其中,初始验证电平随固有Vth分布宽度而变化。
图13A描绘了例如在图5A至图5C中描绘的两遍编程操作的第二遍中使用的电压。
图13B描绘了随图13A的编程操作的第二遍中的编程验证迭代而变化的具有锁定状态的存储器单元的数量。
图13C描绘了在验证电压逐步更小地增大的情况下,随图13A的编程操作的第二遍中的编程验证迭代而变化的针对B状态存储器单元和C状态存储器单元的示例动态验证电压。
图14A描绘了在擦除操作期间选择栅极晶体管的集合的Vth分布的变化。
图14B描绘了在使用动态验证电平的编程操作期间选择栅极晶体管的集合的Vth分布的变化。
图15A描绘了用于评估选择栅极晶体管的处理的流程图。
图15B描绘了根据图15A的步骤1508的用于擦除选择栅极晶体管的处理的流程图。
图16A描绘了在图15B的擦除处理中使用的擦除电压。
图16B描绘了在图15B的擦除处理中使用的验证电压。
图16C描绘了根据图15A的步骤1508的在对SG晶体管的编程操作中使用的编程电压。
图16D描绘了随图16C的编程操作中的编程验证迭代而变化的具有锁定状态的SG晶体管的数量。
图16E描绘了在图16C的编程操作中使用的动态验证电压。
具体实施方式
提供了一种用于在非易失性存储器设备中更准确地对选择栅极晶体管和存储器单元晶体管进行编程的技术。
NAND串通常在每一端处包括选择栅极(SG)晶体管。例如,漏极侧选择栅极(SGD)晶体管位于NAND串的漏极端,而源极侧选择栅极(SGS)晶体管位于NAND串的相对的源极端。SG晶体管的阈值电压(Vth)必须在指定范围内以使存储器设备正确地工作。偶尔,当SG晶体管是具有存储电荷的能力而因此其Vth能够被调节的类型时,理想地是对Vth进行评估和调节。例如,例如在3DNAND存储器设备或2D扁平单元NAND存储器设备中,一些SG晶体管具有电荷捕获层。3DNAND存储器设备或2D扁平单元NAND存储器设备是电荷捕获SG晶体管的示例。可以通过对SG晶体管进行擦除然后进行编程来调节Vth。
然而,在编程期间,由于可获得的最大位线电压(Vbl),导致难以完全地阻止对已达到理想Vth电平的SG晶体管的编程。在编程期间,对于要从编程状态转换成阻止SG晶体管被进一步编程的锁定状态的SG晶体管,通过将Vbl设定为存储器设备的电源电平(Vdd)(锁定电平)例如2V至3V来施加编程脉冲。然而,继续向SG晶体管的集合施加了高于该电平的编程电压例如10V或更高电压以继续对其余SG晶体管进行编程。因此,所有SG晶体管处于导电状态,使得不能够使锁定的SG晶体管的沟道区升压。因为阻止进一步对锁定的SG晶体管编程的能力被限制,所以锁定的SG晶体管继续被微弱地编程并且其Vth可能继续增大而超过理想Vth电平。这是下述类型的编程干扰,其通过对Vth分布提供上尾而使SG晶体管的集合的Vth分布变宽。
在例如对2DNAND的存储器单元进行编程期间发生类似情形。由于与其Vth在编程期间继续增大的位线相邻单元的浮栅的电容耦合,导致已达到理想Vth的存储器单元的Vth可能在编程操作的剩余部分中继续增大。这也是一种类型的编程干扰。在存储器单元被锁定的时刻与编程操作完成的时刻之间,更早锁定的存储器单元会经历更多电容耦合并且因此经历更大的Vth上移。更迟锁定的存储器单元会经历更少电容耦合并且因此经历更小的Vth上移。
本文中提供的技术通过使用动态验证电平使得能够对电荷存储晶体管例如SG晶体管和存储器单元进行更准确地编程。动态验证电平是在编程操作期间例如通过从初始电平逐步地增大到最终电平而变化的验证电平。验证电平的变化使得经受最多编程干扰的快速编程晶体管能够锁定在与慢速编程晶体管相比更低的Vth。快速编程晶体管经历的编程干扰使得在编程操作完成时其Vth达到与慢速编程晶体管相同的电平。
通过对验证电平的增大以及对初始电平进行最优化,可以实现更窄的Vth分布。增大的验证电平是锁定验证电平,例如,用于确定是否锁定晶体管以防止被进一步编程的验证电平。该技术可以与慢速编程模式和快速编程模式兼容,在这种情况下,锁定验证电平是慢速编程模式的验证电平,作为比锁定验证电平向下偏移了例如固定电压的验证电平是快速编程模式的验证电平。此外,与例如通过使用小编程脉冲步长来收紧Vth分布的其他方法相比,未减少编程时间。
接下来论述可以使用该编程技术的示例存储器设备。
图1是非易失性存储器设备的功能框图。图1是使用单行/列解码器和读/写电路的非易失性存储系统的框图。根据一个实施方式,存储器设备190具有用于对一页存储器单元(例如,非易失性存储元件)并行地读取和编程的读/写电路。存储器管芯198包括存储器单元的二维(2D)存储器阵列155、控制电路110以及读/写电路165。
在一些实施方式中,存储器单元的阵列可以是三维(3D)的。存储器阵列155通过字线经由行解码器130以及通过位线经由列解码器160可寻址。读/写电路165包括多个感测块SB0、SB1、……、SBn-1并且使得能够对一页存储器单元并行地读取或编程。通常,控制器150与一个或更多个存储器管芯198包括在同一存储器设备190(例如,可移除存储卡)中。命令和数据经由总线120在主机与控制器150之间以及经由线路118在控制器与一个或更多个存储器管芯198之间传输。
控制电路110与读/写电路165配合以对存储器阵列155执行存储操作,并且控制电路110包括状态机112、片上地址解码器114以及电力控制模块116。状态机112提供对存储操作的芯片级控制。片上地址解码器114提供由主机或存储器控制器使用的地址与由解码器130和160使用的硬件地址之间的地址接口。电力控制模块116控制在存储操作期间被供应至字线和位线的电力和电压。如以下进一步论述的那样,存储器113可以存储用于由状态机使用的原始写入数据、经修改的写入数据以及状态位。
在一些实现方式中,可以将图1的部件中的一些部件进行组合。在各种设计中,可以将除存储器阵列155以外的部件中的一个或更多个部件(单独地或组合地)视作管理或控制电路。例如,一个或更多个控制电路可以包括下述中的任一项或其组合:控制电路110、状态机112、解码器114/160、电力控制模块116、感测块SB0、SB1、……、SBn-1(包括图3中的处理器192和管理电路MC0)、读/写电路165、控制器150等。结合图3A进一步论述了感测块SB0。
在另一实施方式中,非易失性存储系统使用双行/列解码器以及读/写电路。各个外围电路对存储器阵列155的访问是在阵列的相对侧以对称方式进行,以使得每侧的访问线路和电路的密度降低一半。从而,将行解码器分成两个行解码器,将列解码器分成两个列解码器。类似地,将读/写电路分成从阵列155的底部连接至位线的读/写电路以及从阵列155的顶部连接至位线的读/写电路。以这种方式,将读/写模块的密度基本降低一半。
该图可以适用于包括2DNAND存储器设备和3DNAND存储器设备的不同类型的存储器。
图2A描绘了在图1的存储器阵列155中的NAND串的块以及关联的感测块SB0至SB2。存储器阵列可以包括许多块。示例块200包括多个NAND串NS0至NS11以及在块之间共享的相应的位线例如BL0至BL11。每个NAND串在一端处连接至漏极选择栅极(SGD)晶体管,并且SGD晶体管的控制栅极经由公共SGD线连接。每个NAND串在其另一端处连接至源极选择栅极(SGS)晶体管,SGS晶体管又连接至公共源极线220。例如,NS0包括SGS晶体管206和SGD晶体管208。示例存储器单元230、240和250分别位于NS0至NS2中并且连接至WL3。作为示例,存储器单元230和250是存储器单元240的位线相邻的存储器单元。沿WL3的其他示例存储器单元是分别位于N3至NS11中的211至219。例如,WL3可以是被选中用于编程的选中的字线,上述示例存储器单元可以是被选中用于编程的选中的存储器单元。连接至WL3的其他存储器单元也可以是选中的存储器单元。64条字线例如WL0至WL63在源极侧选择栅极与漏极侧选择栅极之间延伸。
在一种方法中,针对一组NAND串例如四个NAND串提供一个感测块。例如,SB0与BL0至BL3关联,SB1与BL4至BL7关联,以及SB2与BL8至BL11关联。每个感测块包括存储器控制器,例如分别位于SB0、SB1和SB2中的MC0、MC1和MC2。每个感测块还包括用于每个NAND串的感测模块。分别在SB0、SB1和SB2中描绘了代表性感测模块SM0、SM1和SM2。结合图3A进一步论述了SB0和MC0。
除NAND闪存存储器以外,还可以使用其他类型的非易失性存储器。例如,在闪存EEPROM系统中使用的另一种类型的存储器单元利用非导电介电材料代替导电的浮栅,以便以非易失方式存储电荷。由氧化硅、氮化硅以及氧化硅(“ONO”)形成的三层介电层在存储器单元的沟道之上,并且夹在导电的控制栅极与半导体衬底表面之间。通过将电子从单元沟道注入到氮化物中来对该单元编程,在氮化物中,这些电子被俘获并且被存储在受限区域中。然后这里所存储的电荷以可检测的方式改变该单元沟道的一部分的Vth。通过将热空穴注入到氮化物中来擦除该单元。可以以下述分裂栅配置来设置类似的单元,在所述分裂栅配置中,掺杂的多晶硅栅极在存储器单元沟道的一部分之上延伸以形成分离的选择晶体管。另一种类型的存储器在NAND架构中使用金属(导电)电荷存储器单元。
在另一方法中,使用NROM单元。例如,在每个NROM单元中存储两位,其中ONO介电层延伸跨越源极扩散与漏极扩散之间的沟道。一个数据位的电荷位于与漏极相邻的介电层中,并且其他数据位的电荷位于与源极相邻的介电层中。通过分别读取在电介质中空间上分离的电荷存储区域的二进制状态来获得多状态的数据存储。还已知其他类型的非易失性存储器。
图2B描绘了在包括扁平控制栅极的2D存储器设备实施方式中的图2A的NAND串的横截面图。位线或NAND串方向进入页面,字线方向从左向右。作为示例,字线228例如WL3延伸跨越NAND串NS0、NS1和NS2,NS0、NS1和NS2包括相应的沟道区238、248和258。描绘了IPD层229。NS0中的存储器单元234包括控制栅极235、电荷捕获层236、多晶硅层237以及沟道区238。NS1中的存储器单元244包括控制栅极245、电荷捕获层246、多晶硅层247以及沟道区248。NS2中的存储器单元254包括控制栅极255、电荷捕获层256、多晶硅层257以及沟道区258。控制栅极是字线的部分。在图2C中提供了沿线227的横截面图。
图2C描绘了沿图2B中的线227的横截面图,其示出了具有扁平控制栅极的实施方式的NAND串。NAND串280例如可以表示图2A中的NS0。NAND串280包括SGS晶体管281、示例存储器单元282、283、……、284和285以及SGD晶体管286。控制栅极层287、IPD层288、电荷捕获层289、多晶硅层290和隧道氧化物层291可以存在于选择栅极晶体管和存储器单元中的每一个中。例如,控制栅极层可以是多晶硅,而隧道氧化物层可以是氧化硅。IPD层可以是高k介电材料例如AlOx或HfOx的堆叠,这些材料辅助增大控制栅极层与电荷捕获层或控制栅极层与电荷存储层之间的耦合率。例如,电荷捕获层可以是氮化硅和氧化硅的混合。浮栅存储器单元与扁平存储器单元之间的差异在于电荷存储层的高度。典型浮栅高度可以是大约100nm,而电荷捕获层可以小到3nm,多晶硅层可以是大约5nm。
图3A是描绘了图1的感测块SB0的一个实施方式的框图。单独的感测块SB0被分割成称为感测模块(例如,SM0)或者感测放大器的一个或更多个核心部分以及称为管理电路(例如,MC0)的公共部分。在一个实施方式中,存在针对每个位线的单独的感测模块以及针对多个例如四个或八个感测模块的集合的公共管理电路。组中的感测模块中的每个感测模块经由数据总线172与关联的管理电路通信。从而,存在与存储器单元的集合的感测模块通信的一个或更多个管理电路。
感测模块SM0包括感测电路170,该感测电路170通过确定连接的位线中的传导电流高于还是低于预定阈值电平来进行感测。SM0包括位线锁存器182,该位线锁存器182用于对连接的位线设定电压条件。例如,锁存在位线锁存器182中的预定状态会导致连接的位线被拉到指定编程阻止(例如,1.5V至3V)的状态。作为示例,标记=0可以阻止编程(状态=锁定)。而标记=1允许编程(状态=编程)。
管理电路MC0包括处理器192、数据锁存器的四个示例集合194至197以及耦接在数据锁存器的集合与数据总线120之间的I/O接口196。可以针对每个感测模块提供数据锁存器的一个集合,并且可以针对每个集合提供由LP、UP和QPW1标识的数据锁存器。在一些情况下,可以使用附加的数据锁存器。在另外的情况下,可以使用更少的数据锁存器。LP存储针对低页数据的位,而UP存储针对高页数据的位。这一点是在每存储器单元四级或两位的存储器设备中。当存储器单元的Vth处于低验证电平与高验证电平之间时,例如,当存储器单元经历慢速编程时,在锁存器的每个集合中,可以提供其中每个数据锁存器存储一位数据的一个或更多个附加数据锁存器来保持对施加至存储器单元的编程脉冲的计数。
处理器192进行计算,例如以确定存储在感测的存储器单元中的数据并且将所确定的数据存储在数据锁存器的集合中。数据锁存器194至197的每个集合用于存储在读取操作期间处理器192确定的数据位,并且用于存储在编程操作期间从数据总线120输入的数据位,所述输入的数据位表示要编程到存储器中的写入数据。I/O接口196提供数据锁存器194至197与数据总线120之间的接口。
在读取期间,系统的操作在状态机112的控制下,状态机112控制对寻址的存储器单元供应不同的控制栅极电压。随着控制栅极电压在与存储器支持的各种存储器状态对应的各预定控制栅极电压间进行阶跃,感测模块可以在这些电压之一处跳闸,并且对应的输出从感测模块经由总线172被提供给处理器192。就此,通过考虑感测模块的一个或更多个跳闸事件以及关于从状态机经由输入线193施加的控制栅极电压的信息,处理器192确定作为结果的存储器状态。然后处理器192计算针对该存储器状态的二进制编码,并且将作为结果的数据位存储到数据锁存器194至197中。在管理电路MC0的另一实施方式中,位线锁存器182充当双重用途,既充当用于锁存感测模块的输出的锁存器,又充当如上所述的位线锁存器。
一些实现方式可以包括多个处理器192。在一个实施方式中,每个处理器192包括输出线(未描绘),输出线中的每个输出线被一起有线“或”。在一些实施方式中,输出线在连接到有线“或”线之前被反相。这样的配置使得在编程验证处理期间快速确定编程处理何时完成,这是因为接收有线“或”的状态机可以确定正被编程的所有位何时都达到期望电平。例如,当每个位达到其期望电平时,该位的逻辑0将被发送到有线“或”线(或者数据1被反相)。当所有位输出数据0(或者数据1被反相)时,那么状态机就知道要终止编程处理。因为每个处理器与八个感测模块通信,所以状态机需要读取八次有线“或”线,或者将逻辑添加至处理器192以累积关联的位线的结果,以使得状态机只需读取一次有线“或”线。类似地,通过正确地选择逻辑电平,全局状态机可以检测第一位线何时改变其状态并且可以相应地改变算法。
在编程或验证操作中,待被编程的数据(写入数据)从数据总线120存储在数据锁存器194至197的集合中。在状态机控制下的编程操作包括施加至寻址的存储器单元的控制栅极的一系列编程电压脉冲。每个编程脉冲之后是读回(验证),以确定存储器单元是否已被编程至理想存储器状态。在一些情况下,处理器192监测相对于理想存储器状态的读回存储器状态。当两个状态一致时,处理器192将位线锁存器182设定为使位线被拉到指定编程阻止的状态。这阻止了被耦接至位线的存储器单元被进一步编程,即使在该存储器单元的控制栅极上出现编程脉冲也是如此。在其他实施方式中,处理器最初加载位线锁存器182并且在验证处理期间感测电路将其设定为阻止值。
数据锁存器194至197的每个集合可以实现为针对每个感测模块的数据锁存器的堆叠。在一个实施方式中,每个感测模块具有三个数据锁存器。在一些实现方式中,将数据锁存器实现为移位寄存器,以使得将存储在其中的并行数据转换成针对数据总线120的串行数据,以及将针对数据总线120的串行数据转换成存储在其中的并行数据。与存储器单元的读/写块对应的所有数据锁存器可以链接在一起以形成块移位寄存器,以使得可以通过串行传输来输入或输出数据块。特定地,将成排的读/写模块适配成使得其数据锁存器的集合中的每个数据锁存器依次将数据移入或移出数据总线,如同它们是整个读/写块的移位寄存器的一部分一样。
数据锁存器识别在编程操作中关联的存储器单元何时达到特定里程碑(milepost)。例如,锁存器可以识别存储器单元的Vth低于特定验证电平。数据锁存器指示存储器单元当前是否存储来自一页数据中的一个或更多个位。当使用低页位和高页位时(例如,在每个存储器单元两位的情况下),LP锁存器可以用于存储低页数据,并且当低页位存储在关联存储器单元中时LP锁存器翻转(例如,从0至1)。UP锁存器可以用于存储高页数据,并且当高页位存储在关联的存储器单元中时UP锁存器翻转。当关联的存储器单元完成编程例如当其Vth超过目标或锁定验证电平Vv_lo时发生位的翻转。当使用低页位、中页位和高页位时(例如,在每个存储器单元三位的存储器的情况下),还使用MP(中页)数据。当中页位存储在关联的存储器单元中时MP翻转。例如,在图6B至图6D中,第一位(从右到左)是低页位,第二位是中页位以及第三位是高页位。
图3B描绘了在示例3D存储器设备中的图2A的NAND串的横截面图。堆叠式3D非易失性存储器设备包括交替的导电层和绝缘层,在交替的导电层和绝缘层中形成选择栅极和存储器单元。导电层是漏极侧的WL0D、WL3D和SGS以及源极侧的WL0S、WL3S和SGD,绝缘层是D0至D5。这样的存储器设备的块通常划分成多个子块用于擦除和编程操作,其中所有子块共享相同的字线(WL)偏压、位线(BL)偏压和源极线(SL)偏压,但是具有单独的选择栅极(SGS和SGD)偏压。此外,NAND串可以是直的或者可以如所描绘的那样是U形。作为示例,NAND串NS0可以表示图2A的NAND串中之一。
NAND串具有漏极侧(DS)和源极侧(SS),漏极侧(DS)和源极侧(SS)被填充绝缘材料的缝隙207隔开并且通过背栅(BG)连接,背栅(BG)可以是绝缘层292中的导电膜。NAND串的漏极端(DE)与位线通信,NAND串的源极端(SE)与源极线通信。
NAND串的每侧具有列,每列包括沿列的侧壁沉积的多个层。这些层可以包括例如使用原子层沉积技术而沉积的氧化物-氮化物-氧化物层和多晶硅层。例如,可以沉积块氧化物(BOX)作为层296,可以沉积作为电荷俘获层(CTL)的氮化物例如SiN作为层297,可以沉积隧道氧化物(TNL)作为层298,可以沉积多晶硅体或沟道(CH)作为层299,以及可以沉积型芯填料电介质作为区域300。
选择栅极SGD0和SGS0分别形成在SGD层和SGS层中。存储器单元M00和M10分别形成在WL0D和WL0S中,存储器单元M01和M11分别形成在WL1D和WL1S中,存储器单元M02和M12分别形成在WL2D和WL2S中,以及存储器单元M03和M13分别形成在WL3D和WL3S中。
在对存储器单元进行编程时,将电子存储在CTL的与存储器单元关联的部分中。例如,在CTL297中用“-”符号表示电子。这些电子从沟道通过TNL被汲取到CTL中。存储器单元的阈值电压与存储的电荷量成比例地增大。可以以类似方式对选择栅极晶体管进行编程。
在擦除操作中,由于SGD晶体管的漏极侧处的栅极感应漏极泄漏(GIDL)导致NAND串的沟道中的电压升高。然后将存储器单元层的电压压低至低电平例如0V以产生使得空穴从存储器单元的本体注入到CTL的跨TNL的电场,从而导致朝向擦除验证电平Vv-er的大的Vth下移。这一过程可以以连续的擦除验证迭代被重复。未选中的字线保持在高电平以使得跨TNL的电场相对较小,并且不发生或发生很小的空穴隧穿。因此,未选中的字线的存储器单元不会被擦除。可以以类似方式对选择栅极晶体管进行擦除。
图3C描绘了图3B的NAND串沿线294的横截面图。在一种可能的方法中,除呈圆柱形的型芯填料之外的每层都是环形的。
图3D描绘了在包括图3B的NAND串NS0的3D存储器设备中的示例电路。NAND串NS0、NS1、NS2和NS3与BL-SB0(位线子块)中的位线BL0(一条位线)连通,以及NAND串NS0A、NS1A、NS2A和NS3A与BL-SB1(另一位线子块)中的位线BL1(另一位线)连通。填满的圆圈表示在NAND串的漏极侧上的SG晶体管的控制栅极和存储器单元。未填充的圆圈表示在NAND串的源极侧上的SG晶体管的控制栅极和存储器单元。
例如,NS0具有:包括存储器单元M00、M01、M02和M03以及SGD晶体管SGD0的漏极侧;以及包括存储器单元M10、M11、M12和M13以及SGS晶体管SGS0的源极侧。NS1具有:包括存储器单元M30、M31、M32和M33以及SGD晶体管SGD1的漏极侧;以及包括存储器单元M20、M21、M22和M23以及SGS晶体管SGS1的源极侧。NS2具有:包括存储器单元M40、M41、M42和M43以及SGD晶体管SGD2的漏极侧;以及包括存储器单元M50、M51、M52和M53以及SGS晶体管SGS2的源极侧。NS3具有:包括存储器单元M70、M71、M72和M73以及SGD晶体管SGD3的漏极侧;以及包括存储器单元M60、M61、M62和M63以及SGS晶体管SGS3的源极侧。
类似地,NS0A具有:包括存储器单元M00A、M01A、M02A和M03A以及SGD晶体管SGD0A的漏极侧;以及包括存储器单元M10A、M11A、M12A和M13A以及SGS晶体管SGS0A的源极侧。NS1A具有:包括存储器单元M30A、M31A、M32A和M33A以及SGD晶体管SGD1A的漏极侧;以及包括存储器单元M20A、M21A、M22A和M23A以及SGS晶体管SGS1A的源极侧。NS2A具有:包括存储器单元M40A、M41A、M42A和M43A以及SGD晶体管SGD2A的漏极侧;以及包括存储器单元M50A、M51A、M52A和M53A以及SGS晶体管SGS2A的源极侧。NS3A具有:包括存储器单元M70A、M71A、M72A和M73A以及SGD晶体管SGD3A的漏极侧;以及包括存储器单元M60A、M61A、M62A和M63A以及SGS晶体管SGS3A的源极侧。
每个NAND串具有背栅(用于NS0的BG0、用于NS1的BG1、用于NS2的BG2、用于NS3的BG3、用于NS0A的BG0A、用于NS1A的BG1A、用于NS2A的BG2A、用于NS3A的BG3A)。在电路302中的所有背栅中的控制栅极可以彼此连接。
在一种方法中,每个SGS晶体管的源极侧连接至电路302的公共源极线。
在电路302的每级,漏极侧存储器单元的控制栅极通过公共字线层彼此连接。例如,M03、M03A、M33、M33A、M43、M43A、M73和M73A的控制栅极通过与图3B一致的字线层WL3D连接。M13、M13A、M23、M23A、M53、M53A、M63和M63A的控制栅极通过字线层WL3S连接。
M02、M02A、M32、M32A、M42、M42A、M72和M72A的控制栅极通过字线层WL2D连接。M12、M12A、M22、M22A、M52、M52A、M62和M62A的控制栅极通过字线层WL2S连接。
M01、M01A、M31、M31A、M41、M41A、M71和M71A的控制栅极通过字线层WL1D连接。M11、M11A、M21、M21A、M51、M51A、M61和M61A的控制栅极通过字线层WL1S连接。
M00、M00A、M30、M30A、M40、M40A、M70和M70A的控制栅极通过字线层WL0D连接。M10、M10A、M20、M20A、M50、M50A、M60和M60A的控制栅极通过字线层WL0S连接。
此外,SGD晶体管的控制栅极在相应的SGD线子集中彼此连接。例如,SGD0的控制栅极与SGD0A的控制栅极相连接,SGD1的控制栅极与SGD1A的控制栅极相连接,SGD2的控制栅极与SGD2A的控制栅极相连接,以及SGD3的控制栅极与SGD3A的控制栅极相连接。
SGS晶体管的控制栅极在x方向上彼此连接。例如,SGS0的控制栅极与SGS0A的控制栅极相连接,SGS1的控制栅极与SGS1A的控制栅极相连接,SGS2的控制栅极与SGS2A的控制栅极相连接,以及SGS3的控制栅极与SGS3A的控制栅极相连接。在编程操作中,可以以不同方式对存储器单元进行编程。在一种方法中,可以在公共编程操作中对位线子集(或多个位线子集)中的存储器单元进行编程。类似地,可以在SGD线子集中单独地或同时地对SG晶体管进行编程。
图4A和图4B描绘了同时地写入低页数据和高页数据的示例性一遍编程操作。一遍编程或者编程操作通常意在包括下述编程验证操作的序列,所述编程验证操作的序列被进行直到选中的存储器单元的集合的阈值电压达到相应的目标数据状态的一个或更多个相应的验证电平为止。存储器单元中的一些存储器单元未被编程并且保持处于擦除状态,而其他存储器单元被编程至更高目标数据状态。
针对每个存储器单元存储两位数据的情况提供了示例Vth分布。每个图在x轴上描绘Vth并且在y轴上描绘Vth分布中的存储器单元的数量或存储器单元群体。一位表示LP数据,另一位表示UP数据。例如,11指代UP=1并且LP=1,01指代UP=0并且LP=1,00指代UP=0并且LP=0,以及10指代UP=1并且LP=0。针对擦除(Er)状态存储器单元提供了第一Vth分布400。Vth分布404表示当存储器单元的Vth超过验证电平Vva_mx时存储器单元达到的目标数据状态A,Vth分布406表示当存储器单元的Vth超过验证电平Vvb_mx时存储器单元达到的目标数据状态B,以及Vth分布408表示当存储器单元的Vth超过验证电平Vvc_mx时存储器单元达到的目标数据状态C。
使用慢速编程模式的编程选择可以称为“快速遍写入”(QPW)技术。在多遍编程技术的一遍或更多遍中可以独立地使用QPW。尽管如此,通常当准确度最重要时在最后遍编程中使用QPW已足够。当使用QPW时,低验证电平(VvaL、VvbL或VvcL)被定义为使得存储器单元在其Vth处于相应的目标数据状态的低验证电平与高锁定验证电平之间时(例如,通过升高在编程脉冲期间施加的关联的位线电压)进入慢速编程模式。具体地,当验证测试确定出存储器单元的Vth超过与存储器单元的目标数据状态关联的低验证电平时,针对该存储器单元开始慢速编程模式。随后,当验证测试确定出存储器单元的Vth超过与存储器单元的目标数据状态关联的高验证电平时,该存储器单元被锁定以防止进一步编程。低验证电平可以与动态锁定验证电平一致地动态变化。示例参见图12D。
在一些情况下,对少于所有目标数据状态的目标数据状态使用QPW。例如,对于最高数据状态(例如,该示例中的C状态)来说可以接受较宽Vth分布。可以通过避免对最高数据状态使用QPW来减小总编程时间,这是因为可以节省感测Vth是否超过VvcL所花费的时间。通常,可以基于下述测试来将QPW用于选中的目标数据状态,该测试识别针对其QPW产生最大收益的目标数据状态。
处于分布之间的读取参考电压用于从存储器单元读取数据。通过测试给定存储器单元的Vth高于还是低于读取参考电压中的一个或更多个读取参考电压,系统可以确定存储器单元代表的数据状态。
图5A至图5C描绘了使用两位四级存储器单元在第一遍中写入低页数据而在第二遍中写入高页数据的两遍编程操作。可以一次一个逻辑页来进行编程,其中低页之后是高页。最初,所有存储器单元处于Er状态,由图5A中的分布500表示。
图5B描绘了对低页数据的编程。如果低页位=1,则关联的存储器单元保持处于分布500中并且用x1表示该数据,其中,x是尚未获知的高页位。如果低页位=0,则使用验证电平Vv1_int将该存储器单元编程至分布502所表示的较高Vth,其中,分布502是过渡分布(INT)。用x0表示这些存储器单元的数据。过渡分布可以相对较宽,这是因为过渡分布并不表示数据状态。
图5C描绘了对高页数据的编程。如果UP/LP=11,则处于分布500中的关联的存储器单元保持处于分布500并且存储数据位11。如果UP/LP=01,则将处于分布500中的存储器单元编程至分布504(状态A),并且当Vth处于VvaL与Vva_mx之间时可以使用慢速编程模式。如果UP/LP=10,则将处于分布502中的存储器单元编程至分布508(状态C)并且当Vth处于VvcL与Vvc_mx之间时可以使用慢速编程模式。如果UP/LP=00,则将处于分布502中的存储器单元编程至分布506(状态B)并且当Vth处于VvbL与Vvb_mx之间时可以使用慢速编程模式。
编程可以类似地扩展到每个存储器单元三位或更多位。例如,图6A至图6D描绘了在第一遍中写入低页数据、在第二遍中写入中页数据以及在第三遍中写入高页数据的三遍编程操作。
描绘了对三位八级存储器单元的低页、中页和高页的编程。除Er以外,还使用了七个编程数据状态A至G,以用于一共八个状态。最初,所有存储器单元处于Er状态,用分布600表示。在图6B中对低页进行编程。如果LP=1,则处于分布600中的存储器单元保持处于该分布。如果LP=0,则使用Vv1将处于分布600中的存储器单元编程至过渡分布602。在图6C中对中页进行编程。如果MP=1,则处于分布600中的存储器单元保持处于该分布,并且使用验证电平Vv4将处于分布602中的存储器单元编程至过渡分布608。如果MP=0,则使用验证电平Vv2将处于分布600中的存储器单元编程至过渡分布604,并且使用验证电平Vv3将处于分布602中的存储器单元编程至过渡分布606。
在图6D中对高页进行编程。这遍使用QPW。如果UP=1,则处于分布600中的存储器单元保持处于该分布,将处于分布604中的存储器单元编程至分布614(状态C),将处于分布606中的存储器单元编程至分布616(状态D),以及将处于分布608中的存储器单元编程至分布622(状态G)。如果UP=0,则将处于分布600中的存储器单元编程至分布610(状态A),将处于分布604中的存储器单元编程至分布612(状态B),将处于分布606中的存储器单元编程至分布618(状态E),将处于分布608中的存储器单元编程至分布620(状态F)。
使用每个单元四位(16级)进行编程可以类似地涉及四页。此外,当对多页数据进行编程时,可以使用来回字线顺序来减小源自电容耦合的潜在干扰。
图7A至图7C描绘了在使用固定锁定验证电平的编程操作期间晶体管的集合的阈值电压分布的变化。晶体管的集合具有初始分布700(例如图5B中的Er状态或INT状态或者图6C中的状态604、606和608)。在编程操作期间,Vth分布增大到分布701,分布701表示晶体管的集合的固有Vth分布。如分布702(图7B)所表示,Vth分布进一步增大直到最快速晶体管中的一些晶体管达到锁定验证电平Vvv_lo为止,Vvv_lo在该示例中固定。Vth分布进一步增大直到晶体管中的所有或几乎所有晶体管达到Vvv_lo为止(图7C中的分布703)。如所提及的那样,由于编程干扰,快速编程晶体管的阈值电压可能在晶体管被锁定以防止被进一步编程之后增大,由此使最终Vth分布变宽。为了解决该问题,可以使用动态或可调节验证电平。
图8A至图8K描绘了在使用动态验证电平的编程操作期间晶体管的集合的阈值电压分布的变化。在图8A中,晶体管的集合具有初始分布800(例如图5B中的Er状态或INT状态或者图6C中的状态604、606和608)。在编程操作期间,进行一个或更多个初始编程验证迭代,使得Vth分布800增大到分布801,分布801表示晶体管的集合的固有Vth分布。Vth分布低于初始验证电平Vv_init和最大容许验证电平Vv_mx。在对SG晶体管进行编程时,Vv_init=Vvsg_init并且Vv_mx=Vvsg_mx(参见图16E)。在对存储器单元晶体管进行编程时,Vv_init和Vv_mx可以针对不同目标数据状态具有不同值。对于A状态、B状态和C状态,Vv_init分别等于Vva_init,Vvb_init和Vvc_init,并且Vv_mx分别等于Vva_mx、Vvb_mx和Vvc_mx(参见图11C和图12C)。Vv_lo表示在编程操作期间从Vv_init增大到Vv_mx的动态验证电平。
在一种方法中,对于编程操作的一个或更多个初始编程验证迭代Vv_lo=Vv_init。随后,在编程操作的数个编程验证迭代中Vv_lo被阶跃式升高。随后,所述数个编程验证迭代终结,并且其中Vv_lo被设定为Vv_mx的一个或更多个最终编程验证迭代开始。例如,在图8B中,达到具有分布部分802和803的Vth分布。部分803表示其Vth达到了Vv_lo的当前值的最快速编程晶体管。这些晶体管的状态在其余编程操作/遍中从编程状态改变成锁定状态。如图8G中所示,部分803经历编程干扰,从而在编程操作结束时部分803增大到分布804。分布部分802表示其Vth尚未达到Vv_lo的当前值的其余晶体管并且这些晶体管继续用编程状态进行编程。
一种选择是当正被编程至公共验证电平(Vv_mx)的晶体管的指定部分(例如,10%)达到关联的初始验证电平(Vv_init)时开始对Vv_lo阶跃式升高。在一种方法中,可以在编程操作的每个连续的编程验证迭代中对Vv_lo阶跃式升高。此外,阶跃式升高的量可以固定或变化。在一种方法中,使用逐步更小的步长。
在图8C中,分布802增大到提供了分布部分805和806。部分806表示其Vth达到Vv_lo的当前值的晶体管。这些晶体管的状态在其余编程操作/遍中从编程状态改变成锁定状态。如图8H中所示,部分806经历编程干扰,从而在编程操作结束时增大到分布807。分布部分805表示其Vth尚未达到Vv_lo的当前值的其余晶体管并且这些晶体管使用编程状态继续编程。
在图8D中,分布805增大到提供了分布部分808和809。部分809表示其Vth达到Vv_lo的当前值的晶体管。这些晶体管的状态在其余编程操作/遍中从编程状态改变成锁定状态。如图8I中所示,部分809经历编程干扰,从而在编程操作结束时增大到分布810。分布部分808表示其Vth尚未达到Vv_lo的当前值的其余晶体管并且这些晶体管使用编程状态继续编程。
在图8E中,分布808增大到提供了分布部分811和812。部分812表示其Vth达到Vv_lo的当前值的晶体管。这些晶体管的状态在其余编程操作/遍中从编程状态改变成锁定状态。如图8J中所示,部分812可能经历少量编程干扰,从而在编程操作结束时增大到分布813。分布部分811表示其Vth尚未达到Vv_lo的当前值的其余晶体管并且这些晶体管使用编程状态继续编程。
在图8F中,分布811增大到提供了分布813,分布813表示其Vth达到Vv_lo的当前值的晶体管。这些其余晶体管的状态在其余编程操作/遍中从编程状态改变成锁定状态。
图8K表示最终Vth分布815,最终Vth分布815是图8F的分布814、图8G的分布804、图8H的分布807、图8I的分布810以及图8J的分布813的合并。由于使用了动态验证电平,导致最终Vth分布815与图7C中的分布相比更窄,动态验证电平抵消了编程干扰的影响。事实上,编程干扰被用作实现理想窄Vth分布的工具。从而,对于晶体管中的至少一些晶体管,在将编程状态改变成锁定状态之后阈值电压增大,使得晶体管的集合的快速编程晶体管的阈值电压更接近晶体管的集合的慢速编程晶体管的阈值电压。
图9A描绘了随编程操作中的编程验证(PV)迭代而变化的位线相邻的存储器单元具有编程状态的可能性。在给定编程验证迭代中,一些存储器单元具有编程状态而另外的存储器单元具有锁定状态。此外,当使用慢速编程模式时,例如,将Vbl升高以放慢编程速率,编程状态还可以指示慢速编程模式在起作用。或者,在Vbl=0V的情况下,编程状态可以指示快速编程模式在起作用。如果考虑被编程至相同Vth电平(相同目标数据状态)的存储器单元中的编程干扰,则与慢速编程存储器单元相比,快速编程存储器单元相对更早达到锁定状态并且随后更可能经历源自位线相邻的存储器单元(在相邻位线上并且与对象存储器单元位于相同字线上的存储器单元)的编程干扰。例如,在图2A中,存储器单元230和250是存储器单元240的位线相邻的存储器单元。
实际上,在编程操作中可以将存储器单元编程至不同Vth电平,在这种情况下,对于被编程至更低数据状态的存储器单元,电容耦合的可能性以及电容耦合的量会更大。
例如,图9A示出了对数形式的可能性对于低编程验证迭代处于最大级,然后在更高编程验证迭代处降低。如所提及的那样,具有锁定状态的存储器单元经历了来自具有该编程状态的位线相邻的存储器单元的为电容耦合形式的编程干扰,并且因此具有增大的Vth。给定编程验证迭代中的电容耦合的量随位线相邻的存储器单元的Vth的增加量和耦合率而变化。通常,存储器单元的集合的目标数据状态被随机地分布。在存在擦除状态和编程状态的二进制编程的情况下,对数形式的可能性的最大级为0.50。当使用四个数据状态时,对数形式的可能性的最大级为0.25。
例如参照图5C的编程,与B状态存储器单元和C状态存储器单元同时地对A状态存储器单元进行编程。此外,A状态存储器单元通常在B状态存储器单元和C状态存储器单元之前达到锁定状态,并且B状态存储器单元通常在C状态存储器单元之前达到锁定状态。从而,A状态存储器单元会接收最多的电容耦合,B状态存储器单元会接收较少电容耦合,而C状态存储器单元会接收最少的电容耦合。
图9B描绘了使用动态验证电平的编程操作的流程图。该处理适用于SG晶体管或存储器单元晶体管。对于存储器单元,可以针对不同目标数据状态来提供不同的动态验证电平。步骤920开始对晶体管的编程操作。如以下结合图10A至图10D论述的那样,步骤922可选地地确定晶体管的集合的固有Vth分布宽度。步骤924针对每个晶体管设定:状态=编程。步骤926对锁定验证电平Vv_lo进行初始化。例如,参照图5C的编程,可以将针对A状态、B状态和C状态的锁定验证电平初始化为Vva_lo=Vva_init、Vvb_lo=Vvb_init和Vvc_lo=Vvc_init。注意,锁定验证电平可以针对一些目标数据状态为动态而针对其他目标数据状态并非为动态。例如,在一些情况下能够接受:最高目标数据状态(例如,C状态)具有较宽分布,在这种情况下锁定验证电平可以针对C状态固定以提供更简单的实现方式。对于SG晶体管的编程,将锁定验证电平Vvsg_lo初始化为Vvsg_init(参见图14B)。
步骤928表示编程验证迭代的编程部分,在编程部分中对晶体管的控制栅极施加编程电压。编程电压(Vpgm)可以在每次编程验证迭代中以步长ΔVpgm来阶跃式升高。例如可以将该编程电压施加至晶体管的控制栅极。对于存储器单元,可以经由相应的字线来施加编程电压。在针对晶体管的集合的编程验证迭代中的每个编程验证迭代的编程脉冲期间,针对具有锁定状态的晶体管将晶体管的相应的漏极电压(例如,Vbl)设定为处于锁定电平(Vdd),并且针对具有编程状态的晶体管将晶体管的相应的漏极电压(例如Vbl)设定为处于编程电平(0V或Vqpw)。存储器单元的编程电压和步长可以与SG晶体管的编程电压和步长不同。
步骤930表示编程验证迭代的验证部分,在验证部分中对晶体管进行感测以确定Vth是否大于锁定验证电平。在对存储器单元进行编程的情况下,可以针对不同目标数据状态中的每个目标数据状态进行上述感测。用于确定Vth是否大于锁定验证电平的一种方法是对晶体管的控制栅极施加处于锁定验证电平的电压,并且确定晶体管是否处于非导电状态。如果晶体管处于非导电状态,则Vth大于锁定验证电平。用于确定Vth是否大于锁定验证电平的另一方法是对晶体管的控制栅极施加指定电压(不同于锁定验证电平)并且确定流经晶体管的电流量。如果该电流量小于指定级,则Vth大于锁定验证电平。步骤932针对其Vth大于锁定验证电平的每个晶体管即针对通过验证测试的每个晶体管设定锁定状态。
判定步骤934确定编程是否完成。在正被编程的晶体管中的所有或几乎所有晶体管具有锁定状态时判定步骤934会为真。如果编程完成,则编程操作在步骤942处结束。如果判定步骤934为假,则判定步骤936确定是否满足开始阶跃式升高锁定验证电平的条件。例如,在指定数量或指定部分Ns的晶体管的Vth大于初始验证电平或另一验证电平时可以满足该条件。例如,Ns可以是正被编程至目标数据状态的存储器单元的数量Ncells的10%至20%(还参见图11B、图12B和图13B)。可以针对每个目标数据状态分开地进行是否阶跃式升高锁定验证电平的判定。可以对晶体管的满足指定准则的部分提供计数并且当该计数超过指定值时可以声明判定步骤936为真。
因为该方法直到编程前进至特定程度为止才开始对锁定验证电平的阶跃式升高,所以该方法是自适应的。该方法是基于晶体管的集合的编程进度来自适应地确定何时开始在其中阶跃式升高锁定验证电平的数个编程验证迭代的示例。当晶体管为相对快速编程时该阶跃式升高在编程操作中相对较早开始,在晶体管为相对慢速编程时该阶跃式升高在编程操作中相对较迟开始。该方法可以使得获得最优Vth分布,这是因为该方法基于正被编程的特定晶体管的编程进度来调整该阶跃式升高。另一选择是当进行了预定数量的编程验证迭代时声明步骤936为真。该方法避免了复杂性。
如果判定步骤936为真,则判定步骤938确定当前锁定验证电平是否小于最大容许电平(例如,针对A状态的Vva_mx、针对B状态的Vvb_mx或针对C状态的Vvc_mx,或者针对SG晶体管的Vvsgd_mx)。如果判定步骤938为真,则在步骤940中针对下一个编程验证迭代阶跃式升高锁定验证电平。如所提及的那样,该阶跃式升高可以是例如线性的或者随每个连续的编程验证迭代逐步更小。通常,可以针对存储器设备对初始电平和阶跃式升高速率进行最优化。该最优化可以指定在其中验证电平被阶跃式升高的编程验证迭代的数量(例如,步数)以及每次编程验证迭代中阶跃式升高的量。步数可以是二、三、四或更多。此外,阶跃式升高可以在连续的编程验证迭代中以及/或者非连续的编程验证迭代中进行。
如果判定步骤938为假,则锁定验证电平处于最大值并且因此在下一个编程验证迭代中不被阶跃式升高。在步骤940或936之后,在步骤928处再次进行下一编程验证迭代的编程部分。可以对编程验证迭代的数量加以限制以使得如果在最大数量的编程验证迭代内未完成编程操作则编程操作失败。
图10A描绘了根据图9B的步骤922的用于确定晶体管的集合的固有Vth分布宽度的处理的流程图。一组晶体管具有下述固有Vth分布,该Vth分布随晶体管的较小变化而改变。在一种方法中,在制造时确定固有Vth分布的宽度并且用存储器设备例如状态机中存储的数据来表示固有Vth分布的宽度。在编程操作之前,可以访问该数据并且将其用于调节编程操作。固有Vth分布宽度还可以由存储器设备不时地确定。在一种方法中,根据晶体管的子集来确定晶体管的集合的固有Vth分布宽度。例如,可以确定存储器单元的一条字线的固有Vth分布宽度并且将其用于表示存储器单元的块的固有Vth分布宽度。通过考虑固有Vth分布宽度,可以使针对晶体管的集合的锁定验证电平的阶跃式升高最优。
步骤1000开始用于确定晶体管的集合的固有Vth分布宽度(ND)的操作。在步骤1002处,对晶体管施加编程电压。该编程电压(Vpgm)可以在每次编程验证迭代中以步长ΔVpgm来阶跃式升高。在步骤1004处,对晶体管进行感测以确定Vth是否大于Vch,其中Vch是如图10B至图10D中所示的检查点验证电平。步骤1006提供了对其Vth大于Vch的晶体管的数量(#)的计数。判定步骤1008确定该数量是否大于Nd,其中Nd是表示正被编程的晶体管的数量的指定部分例如10%的数量。如果判定步骤1008为假,则重复步骤1002。如果判定步骤1008为真,则步骤1010指示晶体管已经达到第一检查点,并且将当前编程验证迭代数量(PV#)记录为值PV1。图10C描绘了判定步骤1008为真的情况。
在步骤1012中,对晶体管施加下一编程电压。在步骤1014中,对晶体管进行感测以确定Vth是否小于Vch。步骤1016对其Vth小于Vch的晶体管的数量(#)提供了计数。判定步骤1018确定该数量是否小于Nd,其中Nd的值与步骤1008中的值相同。如果判定步骤1018为假,则重复步骤1012。编程电压(Vpgm)可以在每次编程验证迭代中以步长ΔVpgm来阶跃式升高。如果判定步骤1018为真,则步骤1020指示晶体管已经达到第二检查点,并且将当前编程验证迭代数量(PV#)记录为值PV2。步骤1022将固有Vth分布宽度确定为(PV2-PV1)×ΔVpgm。
图10B至图10D描绘了在图10A的用于确定固有Vth分布宽度的处理期间晶体管的集合的阈值电压分布的变化。图10B描绘了初始Vth分布1030,其中,初始Vth分布1030转换至固有Vth分布1031。固有Vth分布是可以看出不同晶体管的不同编程速度的分布。随着进一步编程,分布1031转换成表示其Vth小于Vch的晶体管的分布部分1032以及表示其Vth大于Vch的晶体管的分布部分1033。在该处理中晶体管未被锁定。随着进一步编程,分布部分1032和1033转换成表示其Vth小于Vch的晶体管的分布部分1034以及表示其Vth大于Vch的晶体管的分布部分1035。
图11A描绘了例如在图4A和图4B中描绘的一遍编程操作中使用的电压。横轴描绘了编程验证迭代数量(PV),也称为编程脉冲数量,纵轴描绘了控制栅极电压或字线电压。通常,编程操作包括连续的编程验证迭代。每个编程验证迭代具有编程部分,在编程部分中经由选中的字线对存储器单元的控制栅极施加编程脉冲(PP),编程部分之后是验证部分,在验证部分中对存储器单元的控制栅极施加一个或更多个验证脉冲(VP),同时对存储器单元中的至少一些存储器单元进行感测。
电压波形1100描绘了一系列编程脉冲PP1至PP15以及验证脉冲。作为示例,基于正被验证的目标数据状态在每个编程脉冲之后提供了一个、两个或三个验证电平。可以对编程脉冲与验证脉冲之间的选中的字线施加0V。例如,可以在PP1至PP3中的每个脉冲之后施加处于电平Vva_lo的A状态验证脉冲(例如,VPa)。可以在PP4至PP6中的每个脉冲之后施加分别处于电平Vva_lo和Vvb_lo的A状态验证脉冲和B状态验证脉冲(例如,VPab)。可以在PP7和PP8中的每个脉冲之后施加分别处于电平Vva_lo、Vvb_lo和Vvc_lo的A状态验证脉冲、B状态验证脉冲和C状态验证脉冲(例如,VPabc)。可以在PP10至PP12中的每个脉冲之后施加分别处于Vvb_lo和Vvc_lo的B状态验证脉冲和C状态验证脉冲(例如,VPbc)。最后可以在PP12至PP15中的每个脉冲之后施加处于电平Vvc_lo的C状态验证脉冲(例如,VPc)。该方法减小了所进行的验证操作的数量。
图11B描绘了随图11A的编程操作中的编程验证迭代而变化的具有锁定状态的存储器单元的数量(Nlockout)。x轴描绘了PV#并且与图11A成列对齐。y轴描绘了在当前编程验证迭代之后具有锁定状态的存储器单元的数量(Nlockout)。每个圆圈表示数据点并且与PV迭代的对应验证脉冲成列对齐。曲线1112、1114和1116包括分别针对A状态存储器单元、B状态存储器单元和C状态存储器单元的数据点。Nlockout最初为零并且随后朝向Ncells过渡,Ncells是针对每个目标数据状态正被编程的存储器单元的数量。针对每个数据状态,具有编程状态的存储器单元的数量为Ncells至Nlockout。
每条曲线的形状是针对给定数据状态的正态Vth分布,使得较小数量的存储器单元会在少数几个PV迭代之后最初地转换成锁定状态,然后较大数量的存储器单元会在再多几个PV迭代之后转换成锁定状态,并且最终较小数量的存储器单元会在再多几个PV迭代之后转换至锁定状态。
图11C描绘了随图11A的编程操作中的编程验证迭代而变化的针对A状态存储器单元、B状态存储器单元和C状态存储器单元的示例动态验证电压。曲线1122、1124和1126包括表示Vva_lo、Vvb_lo和Vvc_lo的数据点。根据曲线1122,在PV1至PV3期间Vva_lo处于Vva_init。PV1至PV3是针对A状态晶体管的集合的一个或更多个初始编程验证迭代。在PV3期间,针对A状态(曲线1112)的Nlockout(图11B)过渡到Ns以上以触发在随后的编程验证迭代中阶跃式升高Vva_lo,直到Vva_lo达到Vva_mx为止,在Vva_lo达到Vva_mx的时刻处在针对A状态的其余编程验证迭代中Vva_lo被保持处于Vva_mx。特定地,Vva_lo在PV4至PV7中在从Vva_init至Vva_mx的电压范围(ΔVva的范围)内被阶跃式升高,并且在PV8中保持处于Vva_mx。PV4至PV7是其中锁定验证电压被阶跃式升高的数个编程验证迭代。当锁定验证电压被阶跃式升高至最大容许电平(Vva_mx)时,所述数个编程验证迭代终结并且针对A状态晶体管的集合开始一个或更多个最终编程脉冲迭代(PV8)。
根据曲线1124,在PV4至PV6期间Vvb_lo处于Vvb_init。PV4至PV6是针对B状态晶体管的集合的一个或更多个初始编程验证迭代。在PV6期间,针对B状态(曲线1114)的Nlockout(图11B)过渡到Ns以上以触发在随后的编程验证迭代中阶跃式升高Vvb_lo,直到Vvb_lo达到Vvb_mx为止,在Vvb_lo达到Vvb_mx的时刻处在针对B状态的其余编程验证迭代中Vvb_lo被保持处于Vvb_mx。特定地,Vvb_lo在PV7至PV10中在从Vvb_init至Vvb_mx的电压范围(ΔVvb的范围)中被阶跃式升高,并且在PV11中保持处于Vvb_mx。PV7至PV10是其中锁定验证电压被阶跃式升高的数个编程验证迭代。当锁定验证电压被阶跃式升高至最大容许电平(Vvb_mx)时,所述数个编程验证迭代终结并且针对B状态晶体管的集合开始一个或更多个最终编程脉冲迭代(PV11)。
根据曲线1126,在PV7至PV9期间Vvc_lo处于Vvc_init。PV7至PV9是针对C状态晶体管的集合的一个或更多个初始编程验证迭代。在PV9期间,针对C状态(曲线1116)的Nlockout(图11B)过渡到Ns以上以触发在随后的编程验证迭代中阶跃式升高Vvc_lo,直到Vvc_lo达到Vvc_mx为止,在Vvc_lo达到Vvc_mx的时刻处在针对C状态的其余编程验证迭代中Vvc_lo被保持处于Vvc_mx。特定地,Vvc_lo在PV10至PV13中在从Vvc_init至Vvc_mx的电压范围(ΔVvc的范围)内被阶跃式升高,并且在PV14和PV15中保持处于Vvc_mx。PV10至PV13是其中锁定验证电压被阶跃式升高的数个编程验证迭代。当锁定验证电压被阶跃式升高至最大容许电平(Vvb_mx)时,所述数个编程验证迭代终结并且针对C状态晶体管的集合的一个或更多个最终编程脉冲迭代(PV14和PV15)开始。在该示例中,ΔVva>ΔVvb>ΔVvc。注意,Ns可以针对不同数据状态而不同。
如所论述的那样,当一个或两个位线相邻的存储器单元继续编程时,达到锁定状态的A状态单元可能经历Vth上移。目标数据状态通常在存储器单元中随机分配使得存在下述可能性:给定锁定存储器单元的位线相邻的存储器单元(处于A状态或其他状态)在给定编程验证迭代中正被编程。对于给定存储器单元,在其锁定之后预期的Vth上移与下述相关:编程操作中每个其余编程验证迭代中位线相邻的存储器单元正被编程的可能性。编程电压逐步更小的增大会是最优的,这是因为编程干扰的可能性最初在低编程验证迭代中最大并且在高编程验证迭代中变得逐步更小。此外,由于Vth分布的正态形状,其速度在最快速编程晶体管与最慢速编程晶体管之间的中间范围的晶体管会在最快速编程晶体管锁定之后相对较早锁定。从而,在最快速编程晶体管锁定之后,通过使用逐步更小的步长,编程干扰的可能性相对较早变得更小并且Vv_lo可以相对较快地阶跃式升高。
再次参照图2A,考虑下述示例,该示例中,存储器单元230、212和216要保持在擦除状态,存储器单元230、212和216要被编程至A状态,存储器单元240、213和217要被编程至B状态,以及存储器单元250、215和219要被编程至C状态。A状态存储器单元可以是晶体管的多个集合中的晶体管的一个集合(例如,晶体管230、212和216),其中,所述晶体管的一个集合在编程操作中使用锁定验证电压(Vva_lo)被编程至一个目标数据状态(A状态)。所述晶体管的多个集合包括使用另一锁定验证电压(Vvb_lo)被编程至另一目标数据状态(B)的晶体管的另一集合(例如,晶体管240、213和217),其中,所述另一目标数据状态高于所述一个目标数据状态,例如,Vvb_mx>Vva_mx。所述晶体管的多个集合可以包括使用附加锁定验证电压(Vvc_lo)被编程至附加目标数据状态(C)的晶体管的附加集合(例如,晶体管250、215和219)。附加目标数据状态高于所述另一目标数据状态,例如,Vvc_mx>Vvb_mx。
图12A描绘了例如在图5A至图5C中描绘的两遍编程操作的第一遍中使用的电压。电压波形1200描绘了施加至被选中用于编程的字线并且施加至关联的存储器单元的集合的一系列编程脉冲PP1至PP8以及验证脉冲。在每个编程脉冲之后提供了一个动态锁定验证电平Vva_lo。例如,可以在PP1至PP8中的每个脉冲之后施加处于电平Vva_lo的A状态验证脉冲(例如,VPa)。
图12B描绘了随图12A的编程操作的第一遍中的编程验证迭代而变化的具有锁定状态的存储器单元的数量。曲线1212包括针对A状态存储器单元的数据点。y轴描绘了在当前编程验证迭代之后具有锁定状态的存储器单元的数量(Nlockout)。每个圆圈表示数据点并且与PV迭代的对应验证脉冲成列对齐。Nlockout最初为零并且随后朝向Ncells过渡,Ncells是正被编程的A状态存储器单元的数量。
图12C描绘了在对每个编程验证迭代验证电压逐步更小地增大的情况下,随图12A的编程操作的第一遍中的编程验证迭代而变化的针对A状态存储器单元的示例动态验证电压。曲线1222包括表示Vva_lo的数据点。在PV1至PV3期间Vva_lo处于Vva_init。在PV3期间,针对A状态(曲线1212)的Nlockout(图12B)过渡到Ns以上以触发在随后的编程验证迭代中阶跃式升高Vva_lo,直到Vva_lo达到Vva_mx为止,在Vva_lo达到Vva_mx的时刻处在针对A状态的其余编程验证迭代中Vva_lo被保持处于Vva_mx。特定地,Vva_lo在PV4至PV6中在从Vva_init至Vva_mx的电压范围(ΔVva的范围)内被阶跃式升高,并且在PV7和PV8中保持处于Vva_mx。该示例提供了对验证电压逐步更小地增大。例如,Vva_lo在PV4中从Vva_init增大到Vva_1、在PV5中从Vva_1增大到Vva_2、以及在PV6中从Vva_2增大到Vva_mx,其中:(Vva_1-Vva_init)>(Vva_2-Vva_1)>(Vva_mx-Vva_2)。
另一变型是在至少两个连续的编程验证迭代中使用动态锁定验证电平的相同阶跃式升高电平。例如,Vva_lo可以在PV4和PV5中被阶跃式升高并且保持为Vva_1,然后在PV6中被阶跃式升高到Vva_2,然后在PV7中被阶跃式升高到Vva_mx。
图12D描绘了在对使用慢速编程模式和快速编程模式的每个编程验证迭代针对验证电压使用固定步长的情况下,随图12A的编程操作的第一遍中的编程验证迭代而变化的针对A状态存储器单元的示例动态验证电压。y轴描绘了针对A状态存储器单元的验证电平。曲线1232描绘了动态锁定验证电平Vva_lo,其以固定步长从Vva_init增大到Vva_mx。曲线1233描绘了用于确定从快速编程模式转换成慢速编程模式的验证电平VvaL_lo,其以固定步长从VvaL_init增大到VvaL_mx。在一种方法中,VvaL_lo比Vva_lo小固定裕量ΔV。曲线1234描绘了示例A状态存储器单元的Vth。在PV1和PV2中,Vth小于VvaL_lo以使得存储器单元处于快速编程模式(例如,其中Vbl=0V)。在PV3中,Vth大于VvaL_lo以使得存储器单元在随后的PV迭代中处于慢速编程模式,其中Vbl=0.8V。在PV5中,Vth大于Vva_lo以使得存储器单元在随后的PV迭代中处于锁定状态,其中,Vbl=Vdd。可以以类似方式针对其他数据状态提供慢速编程模式和快速编程模式。
图12E描绘了随图12A的编程操作的第一遍中的编程验证迭代而变化的针对A状态存储器单元的示例动态验证电压,其中,初始验证电平随固有Vth分布宽度而变化。当固有Vth分布的宽度相对更大时,最快速编程存储器单元与最慢速编程存储器单元之间存在更大差异。因此,需要相对更多的编程验证迭代来对存储器单元进行编程,并且最快速编程存储器单元将经受更多编程干扰。为了进行补偿,可以减小验证电平的初始值以使得锁定验证电平的值的范围增大。例如,针对A状态,可以将初始验证电平从额定值Vva_init减小到降低的电平Vva_init-以使得锁定验证电平的值的范围从ΔVva增大到ΔVva-(曲线1224)。
类似地,当固有Vth分布的宽度相对更小时,最快速编程存储器单元与最慢速编程存储器单元之间存在更小差异。因此,需要相对更少的编程验证迭代来对存储器单元进行编程,并且最快速编程存储器单元将经受更少编程干扰。为了进行补偿,可以增大验证电平的初始值以使得锁定验证电平的值的范围减小。例如,针对A状态,可以将初始验证电平从额定值Vva_init增大到升高的电平Vva_init+以使得锁定验证电平的值的范围从ΔVva减小到ΔVva+(曲线1223)。
将类似的推理应用于对选择栅极晶体管的编程,使得当固有Vth分布的宽度相对更大或更小时可以分别地增大或减小锁定验证电平的值的范围。
图13A描绘了例如在图5A至图5C中描绘的两遍编程操作的第二遍中使用的电压。电压波形1300描绘了施加至被选中用于编程的字线并且施加至关联的存储器单元的集合的一系列编程脉冲PP1至PP14以及验证脉冲。可以在PP1至PP6中的每个脉冲之后施加处于电平Vvb_lo的B状态验证脉冲(例如,VPb)。可以在PP7至PP9中的每个脉冲之后施加分别处于电平Vvb_lo和Vvc_lo的B状态验证脉冲和C状态验证脉冲(例如,VPbc)。可以在PP10至PP14中的每个脉冲之后施加处于电平Vvc_lo的C状态验证脉冲(例如,VPc)。
图13B描绘了随图13A的编程操作的第二遍中的编程验证迭代而变化的具有锁定状态的存储器单元的数量。x轴描绘了PV#并且与图13A成列对齐。y轴描绘了在当前编程验证迭代之后具有锁定状态的存储器单元的数量(Nlockout)。每个圆圈表示数据点并且与PV迭代的对应验证脉冲成列对齐。曲线1312包括针对B状态存储器单元的数据点。曲线1314包括针对C状态存储器单元的数据点。Nprog最初为零并且然后朝向Ncells过渡,Ncells是正被编程的B状态存储器单元的数量和正被编程的C状态存储器单元的数量。曲线1312包括针对B状态存储器单元的数据点。曲线1314包括针对C状态存储器单元的数据点。
图13C描绘了在验证电压逐步更小地增大的情况下,随图13A的编程操作的第二遍中的编程验证迭代而变化的针对B状态存储器单元和C状态存储器单元的示例动态验证电压。曲线1322和1332包括分别表示B状态存储器单元的Vvb_lo和C状态存储器单元的Vvc_lo的数据点。根据曲线1322,在PV1至PV3期间Vvb_lo处于Vvb_init。在PV3期间,针对B状态(曲线1312)的Nlockout(图13B)过渡到Ns以上以触发在随后的编程验证迭代中阶跃式升高Vvb_lo,直到Vvb_lo达到Vvb_mx为止,在Vvb_lo达到Vvb_mx的时刻处在针对B状态的其余编程验证迭代中Vvb_lo被保持处于Vvb_mx。特定地,Vvb_lo在PV4至PV7中在从Vvb_init至Vvb_mx的电压范围(ΔVvb的范围)中被阶跃式升高,并且在PV8和PV9中保持处于Vvb_mx。
根据曲线1332,在PV7至PV9期间Vvc_lo处于Vvc_init。在PV9期间,针对C状态(曲线1314)的Nlockout(图13B)过渡到Ns以上以触发在随后的编程验证脉冲迭代中阶跃式升高Vvc_lo,直到Vvc_lo达到Vvc_mx为止,在Vvc_lo达到Vvc_mx的时刻处在针对C状态的其余编程验证迭代中Vvc_lo被保持处于Vvc_mx。特定地,Vvc_lo在PV10至PV13中在从Vvc_init至Vvc_mx的电压范围(ΔVvc的范围)中被阶跃式升高,并且在PV14中保持处于Vvc_mx。
图14A描绘了在擦除操作期间选择栅极晶体管的集合的Vth分布的变化。如所提及的那样,选择栅极晶体管的Vth应该在被描绘为Vsg_lb(下界)至Vsg_ub(上界)的范围内。特别地,对存储器设备的适当操作取决于SGD晶体管。对于对存储器单元进行编程来说,限制条件是对于慢速编程模式,在该限制条件中,对于要处于导电状态的SGD晶体管,Vsgd>Vsg_ub+0.8V以允许编程。在该示例中Vbl=0.8V。另一限制条件是对于阻止的存储器单元,在该限制条件中,Vsgd<2.5V+Vsg_lb。在该示例中Vbl=2.5V。为了满足这两个条件,Vsgd窗口是2.5-0.8-(Vsg_ub-Vsg_lb)。如果进一步允许0.4V作为SG晶体管的接通电压和关断电压之间的裕量,则Vsgd窗口是1.3V-(Vsg_ub-Vsg_lb)。因此,可用的Vsgd窗口很大程度上取决于SG晶体管的Vth分布:Vsg_ub-Vsg_lb,因此控制Vth分布很重要。
然而,Vth可能随时间偏离该范围。例如,在读取或编程操作中,如果未选中的NAND串(例如在未选中的块)中的SGD晶体管的Vth太低,则使用Vsgd=0V不能将关联的NAND串从位线切断。此外,在编程操作期间,如果SGD晶体管的Vth太高,则不能将待被编程的关联的NAND串连接至位线。
在BiCS结构中,由于缺少沟道和单元源极/漏极注入导致难以控制SG晶体管的Vth。此外,由于普通的加工偏差导致Vth可能针对不同SGD晶体管而不同。不同SGD晶体管的Vth通常具有在中间值周围的分布。为了使Vsgd窗口最大化,Vth分布应该尽可能窄。可以在制造期间通过加工偏差来调节Vth,加工偏差例如是物理尺寸例如凹部高度、体厚度和半径的偏差以及漏极注入/掺杂的偏差。然而,这些加工偏差的有效性是有限的并且这些加工偏差难以控制且花费很大。此外,在存储器设备经历附加的编程擦除周期时Vth分布可能随时间变化。
编程之前进行擦除可以使Vth返回到可接受范围。在擦除操作中,使用擦除验证电平Vv_er使Vth从分布1400减小到分布1401。这提供了晶体管的处于已知电平的Vth。随后,如图14B中描绘的那样,可以对晶体管进行编程。
由于例如BiCS结构以及扁平单元2DNAND结构中的SG晶体管的电荷捕获层,导致可以发生编程和擦除。如果对SG晶体管进行编程,则控制最终Vth分布很重要,这是因为最终Vth确定编程期间的Vsgd窗口(对于Vsgd的可接受的值的范围)并且使得能够成功地实现对存储器单元的编程和阻止。
图14B描绘了在使用动态验证电平的编程操作期间选择栅极晶体管的集合的Vth分布的变化。使用锁定编程验证电平Vvsg_lo使Vth从分布1401增大到分布1402,该锁定编程验证电平Vvsg_lo从固定初始值Vvsg_init动态地增大到固定的最终最大电平Vvsg_mx。Vvsg_mx可以略微大于Vsg_lb以提供裕量。类似于图8A至图8K中描绘的对存储器单元进行编程的情形,快速编程选择栅极晶体管会在慢速编程选择栅极晶体管之前达到锁定状态,并且编程干扰会使快速编程选择栅极晶体管的Vth在编程操作完成时增大到与慢速编程选择栅极晶体管相同的电平,以实现窄的Vth分布1402。接下来提供对选择栅极晶体管进行擦除和编程的进一步细节。
图15A描绘了用于评估选择栅极晶体管的处理的流程图。步骤1500开始对SG晶体管的评估。可以通过各种准则来触发该评估,例如经过多个编程擦除周期或者检测出较大数量的编程错误。可以在每个第n编程操作之前进行该评估,其中n≥1。在步骤1502中,读取处于下界(Vsg_lb)和上界(Vsg_ub)的SG晶体管。步骤1504确定出在理想范围外的SG晶体管的数量Nsg。判定步骤1506确定Nsg是否大于极限,其中极限≥1。如果判定步骤1506为真,则进行步骤1508以擦除SG晶体管并且然后对SG晶体管进行编程(分别参照图15B和图9B)。在一种方法中,对SG晶体管的集合一起进行擦除和编程。如果判定步骤1506为假,则步骤1510结束评估。
图15B描绘了根据图15A的步骤1508的用于擦除选择栅极晶体管的处理的流程图。步骤1520开始针对SG晶体管的擦除操作。在步骤1522中,在擦除验证迭代的擦除部分(参照图16A)中对SG晶体管施加擦除电压(例如,Vbl)。该擦除电压可以在每个擦除验证迭代中以ΔVerase来阶跃式升高。在步骤1524中,在擦除验证迭代的验证部分(参照图16B)中,对SG晶体管进行感测以确定其Vth是否小于验证电平(Vv_er)。判定步骤1526确定擦除操作是否完成。如果判定步骤1526为真(例如,SG晶体管中的所有或几乎所有晶体管的Vth小于Vv_er),则在步骤1528中结束擦除操作。如果判定步骤1526为假,则在步骤1522中开始下一擦除验证迭代的擦除部分。
对SG晶体管的编程操作可以如结合图9B论述的那样进行。对于图9B的步骤928和编程电压,参照图16C。对于图9B的步骤930和验证电压,参照图16E。
图16A描绘了在图15B的擦除处理中使用的擦除电压。x轴描绘了擦除验证(EV)迭代的数量,y轴描绘了Vbl。电压波形1000例如包括擦除脉冲EP1至EP5。擦除操作的一种实现方式使用SGD晶体管生成栅极感应漏极泄漏(GIDL)电流来在SGD控制栅极电压Vsgd浮动时对NAND串的浮体充电。在这种情况下,经由位线对SG晶体管的漏极端子施加擦除电压。GIDL与SGD晶体管的漏极-栅极电压(Vdg)成比例地增大。然后快速地将Vsgd压低至低电平例如0V以产生跨隧道氧化物的电场,该电场使得空穴从SG晶体管的体注入到电荷捕获层,从而导致朝向擦除验证电平Vv_er的大的Vth下移。在连续迭代中重复该处理直到通过验证测试为止。还可以以类似方式来擦除存储器单元晶体管。
图16B描绘了在图15B的擦除处理中使用的验证电压。x轴描绘了与图16A一致的擦除验证(EV)迭代的数量,y轴描绘了Vsgd。该波形描绘了擦除操作中处于电平Vv_er的一系列擦除验证脉冲EVP1至EVP。
图16C描绘了根据图15A的步骤1508的针对SG晶体管的编程操作中使用的编程电压。x轴描绘了编程验证(PVsg)迭代的数量,y轴描绘了Vsgd。示例波形1050包括一系列编程脉冲PPsg1至PPsg7。
图16D描绘了随图16C的编程操作中的编程验证迭代而变化的具有锁定状态的SG晶体管的数量。锁定晶体管的数量(Nlockout)初始为零,然后增大到阈值电平Ns以上,这触发在随后的编程验证迭代中阶跃式升高Vvsg_lo。锁定晶体管的数量最终接近正被编程的SG晶体管的数量Ntran。
图16E描绘了在图16C的编程操作中使用的动态验证电压。x轴描绘了与图16C和图16D一致的擦除验证(EV)迭代的数量,y轴描绘了对于SG晶体管的锁定验证电压Vvsg_lo。动态验证电压是VPsg1至VPsg7并且在从初始电平Vvsg_init到最终值Vvsg_mx的范围即ΔVvsg的范围内变化。
因此,可以看出,在一个实施方式中,提供了一种用于对存储器设备中的晶体管进行编程的方法。该方法包括:进行多个编程验证迭代中的每个编程验证迭代,所述多个编程验证迭代包括针对在编程操作中待被编程的晶体管的集合的编程验证迭代,每个晶体管最初具有指示该晶体管待被编程的编程状态,进行每个编程验证迭代包括:向晶体管的集合施加编程脉冲,确定具有编程状态的晶体管中的至少一些晶体管的阈值电压是否超过锁定验证电压,以及针对其阈值电压被确定为超过锁定验证电压的晶体管中的每个晶体管,在编程操作的剩余部分中将编程状态改变成锁定状态,在针对晶体管的集合的编程验证迭代中的数个编程验证迭代中,锁定验证电压被阶跃式升高。
在另一实施方式中,一种非易失性存储系统包括在编程操作中待被编程的晶体管的集合以及控制电路。控制电路进行编程操作的多个编程验证迭代中的每个编程验证迭代,所述多个编程验证迭代包括针对晶体管的集合的编程验证迭代,每个晶体管最初具有指示该晶体管待被编程的编程状态,每个编程验证迭代包括:向晶体管的集合施加编程脉冲,确定具有编程状态的晶体管中的至少一些晶体管的阈值电压是否超过锁定验证电压,以及针对其阈值电压被确定为超过锁定验证电压的晶体管中的每个晶体管,在编程操作的剩余部分中将编程状态改变成锁定状态,在针对晶体管的集合的编程验证迭代中的数个编程验证迭代中,锁定验证电压被阶跃式升高。
在另一实施方式中,一种用于对存储器设备中的存储器单元进行编程的方法包括:进行多个编程验证迭代中的每个编程验证迭代,所述多个编程验证迭代包括针对在编程操作中待被使用一个目标数据状态的锁定验证电压编程至所述一个目标数据状态的存储器单元的一个集合的编程验证迭代,以及针对在编程操作中待被使用另一目标数据状态的锁定验证电压编程至另一目标数据状态的存储器单元的另一集合的编程验证迭代,存储器单元的所述一个集合和存储器单元的所述另一集合中的每个存储器单元最初具有指示该存储器单元待被编程的编程状态。进行每个编程验证迭代包括:向存储器单元的所述一个集合和存储器单元的所述另一集合施加编程脉冲,确定所述存储器单元的所述一个集合中的具有编程状态的存储器单元中的至少一些存储器单元的阈值电压是否超过所述一个目标数据状态的锁定验证电压,以及针对存储器单元的所述一个集合中的其阈值电压被确定为超过所述一个目标数据状态的锁定验证电压的存储器单元中的每个存储器单元,在编程操作的剩余部分中将编程状态改变成的锁定状态;以及确定所述存储器单元的所述另一集合中的具有编程状态的存储器单元中的至少一些存储器单元的阈值电压是否超过所述另一目标数据状态的锁定验证电压,以及针对存储器单元的所述另一集合中的其阈值电压被确定为超过所述另一目标数据状态的锁定验证电压的存储器单元中的每个存储器单元,在编程操作的剩余部分中将编程状态改变成锁定状态,所述一个目标数据状态的锁定验证电压在针对存储器单元的所述一个集合的编程验证迭代中以与下述速率不同的速率被阶跃式升高,所述速率为所述另一目标数据状态的锁定验证电压在针对存储器单元的所述另一集合的编程验证迭代中被阶跃式升高的速率。
已经出于说明和描述的目的呈现了对本发明的以上详细描述。并非意在穷举或将本发明限制为所公开的确切形式。根据以上教示可以进行很多修改和变型。选择所描述的实施方式以最佳地解释本发明的原理及其实际应用,从而使得本领域普通技术人员能够适合所构思的特定应用而在各种实施方式中与各种修改一起最佳地利用本发明。意在由所附权利要求来限定本发明的范围。
Claims (15)
1.一种用于对存储器设备中的晶体管进行编程的方法,包括:
进行多个编程验证迭代(PV1至PV15)中的每个编程验证迭代,所述多个编程验证迭代包括针对在编程操作中待被编程的晶体管(211至219,230,240,250)的集合的编程验证迭代,每个晶体管最初具有指示所述晶体管待被编程的编程状态,进行每个编程验证迭代包括:向所述晶体管的集合施加编程脉冲(PP1至PP15),确定具有所述编程状态的所述晶体管中的至少一些晶体管的阈值电压是否超过锁定验证电压(Vva_lo,Vvb_lo,Vvc_lo),以及针对其阈值电压被确定为超过所述锁定验证电压的晶体管中的每个晶体管,在所述编程操作的剩余部分中将所述编程状态改变成锁定状态,在针对所述晶体管的集合的所述编程验证迭代中的数个编程验证迭代(PV4至PV7,PV7至PV10,PV10至PV13)中,所述锁定验证电压被阶跃式升高。
2.根据权利要求1所述的方法,其中,
在针对所述晶体管的集合的所述编程验证迭代中的在所述数个编程验证迭代之前的一个或更多个初始编程验证迭代中,所述锁定验证电压处于固定初始电平(Vva_init,Vvb_init,Vvc_init)。
3.根据权利要求2所述的方法,还包括:
在所述一个或更多个初始编程验证迭代之后,在所述编程操作的预定编程验证迭代处开始所述数个编程验证迭代。
4.根据权利要求2所述的方法,还包括:
在所述编程操作期间基于所述晶体管的集合的编程进度来自适应地确定何时开始所述数个编程验证迭代。
5.根据权利要求1至4中任一项所述的方法,还包括:
确定所述晶体管的集合的固有阈值电压分布;以及
当所述固有阈值电压分布相对较宽时将固定初始电平设定为相对较低,以及当所述固有阈值电压分布相对较窄时将所述固定初始电平设定为相对较高。
6.根据权利要求1至5中任一项所述的方法,还包括:
在所述锁定验证电压被阶跃式升高到最大容许电平时,终结所述数个编程验证迭代并且开始针对所述晶体管的集合的所述编程验证迭代中的一个或更多个最终编程验证迭代(PV8,PV11,PV14和PV15),
在所述一个或更多个最终编程验证迭代中,所述锁定验证电压处于所述最大容许电平(Vva_mx,Vvb_mx,Vvc_mx)。
7.根据权利要求1至6中任一项所述的方法,其中,
所述数个编程验证迭代是连续的编程验证迭代。
8.根据权利要求1至7中任一项所述的方法,还包括:
在针对所述晶体管的集合的所述编程验证迭代中的每个编程验证迭代的所述编程脉冲期间,针对具有所述锁定状态的晶体管将相应的漏极电压(Vbl)设定为处于锁定电平(Vdd),并且针对具有所述编程状态的晶体管将相应的漏极电压设定为处于编程电平(0V或Vqpw)。
9.根据权利要求1至8中任一项所述的方法,其中,
对于所述晶体管中的至少一些晶体管,在将所述编程状态改变成所述锁定状态之后阈值电压增大,从而使所述晶体管的集合中的快速编程晶体管的阈值电压更接近所述晶体管的集合中的慢速编程晶体管的阈值电压。
10.根据权利要求1至9中任一项所述的方法,其中,
在所述数个编程验证迭代中的每个编程验证迭代中,所述锁定验证电压使用固定的步长来阶跃式升高。
11.根据权利要求1至9中任一项所述的方法,其中,
在所述数个编程验证迭代中的每个编程验证迭代中,所述锁定验证电压以逐步更小的步长来阶跃式升高。
12.根据权利要求1至11中任一项所述的方法,其中,
所述晶体管的集合是晶体管的多个集合中的晶体管(212,216,230)的一个集合;
所述晶体管的一个集合在所述编程操作中被编程至一个目标数据状态(A);
所述锁定验证电压(Vva_lo)用于所述一个目标数据状态(A);
所述晶体管的多个集合包括在所述编程操作中被使用另一锁定验证电压(Vvb_lo)编程至另一目标数据状态(B)的晶体管(213,217,240)的另一集合,所述另一锁定验证电压(Vvb_lo)在所述多个编程验证迭代中的数个编程验证迭代中被阶跃式升高,所述另一目标数据状态高于所述一个目标数据状态;以及
所述另一锁定验证电压(Vvb)在下述电压范围(ΔVvb)内被阶跃式升高,所述电压范围(ΔVvb)小于针对所述一个目标数据状态(A)的所述锁定验证电压(Vva)被阶跃式升高的电压范围(ΔVva)。
13.一种非易失性存储系统,包括:
在编程操作中待被编程的晶体管(211至219,230,240,250)的集合;以及
控制电路(110,112,114,116,150,160,165SB0,SB1,……,SBn-1,192,MC0),所述控制电路进行所述编程操作的多个编程验证迭代(PV1至PV15)中的每个编程验证迭代,所述多个编程验证迭代包括针对所述晶体管的集合的编程验证迭代,每个晶体管最初具有指示所述晶体管待被编程的编程状态,每个编程验证迭代包括:向所述晶体管的集合施加编程脉冲(PP1至PP15),确定具有所述编程状态的所述晶体管中的至少一些晶体管的阈值电压是否超过锁定验证电压(Vva_lo,Vvb_lo,Vvc_lo),以及针对其阈值电压被确定为超过所述锁定验证电压的晶体管中的每个晶体管,在所述编程操作的剩余部分中将所述编程状态改变成锁定状态,在针对所述晶体管的集合的所述编程验证迭代中的数个编程验证迭代(PV4至PV7,PV7至PV10,PV10至PV13)中,所述锁定验证电压被阶跃式升高。
14.根据权利要求13所述的非易失性存储系统,其中,
在针对所述晶体管的集合的所述编程验证迭代中的在所述数个编程验证迭代之前的一个或更多个初始编程验证迭代中,所述锁定验证电压处于固定初始电平(Vva_init,Vvb_init,Vvc_init)。
15.根据权利要求13或14所述的非易失性存储系统,其中,
在所述锁定验证电压被阶跃式升高到最大容许电平时,所述控制电路终结所述数个编程验证迭代,并且开始针对所述晶体管的集合的所述编程验证迭代中的一个或更多个最终编程验证迭代(PV8,PV11,PV14和PV15),
在所述一个或更多个最终编程验证迭代中,所述锁定验证电压是所述最大容许电平(Vva_mx,Vvb_mx,Vvc_mx)。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/759,303 US8929142B2 (en) | 2013-02-05 | 2013-02-05 | Programming select gate transistors and memory cells using dynamic verify level |
US13/759,303 | 2013-02-05 | ||
PCT/US2014/013698 WO2014123739A1 (en) | 2013-02-05 | 2014-01-29 | Programming select gate transistors and memory cells using dynamic verify level |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105164755A true CN105164755A (zh) | 2015-12-16 |
CN105164755B CN105164755B (zh) | 2019-06-04 |
Family
ID=50102259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480007201.2A Active CN105164755B (zh) | 2013-02-05 | 2014-01-29 | 使用动态验证电平对选择栅极晶体管和存储器单元进行编程 |
Country Status (4)
Country | Link |
---|---|
US (2) | US8929142B2 (zh) |
EP (1) | EP2954529B1 (zh) |
CN (1) | CN105164755B (zh) |
WO (1) | WO2014123739A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111933201A (zh) * | 2020-08-13 | 2020-11-13 | 长江存储科技有限责任公司 | 用于对存储器系统进行编程的方法、装置及存储器系统 |
CN112270947A (zh) * | 2020-10-29 | 2021-01-26 | 长江存储科技有限责任公司 | 用于存储器的编程方法和装置 |
CN113870934A (zh) * | 2020-06-30 | 2021-12-31 | 闪迪技术有限公司 | 编程-验证技术之间的取决于循环的切换 |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9620238B2 (en) * | 2014-01-20 | 2017-04-11 | Sandisk Technologies Llc | Methods and systems that selectively inhibit and enable programming of non-volatile storage elements |
US9165659B1 (en) * | 2014-05-08 | 2015-10-20 | Sandisk Technologies Inc. | Efficient reprogramming method for tightening a threshold voltage distribution in a memory device |
CN105632554B (zh) * | 2014-11-03 | 2019-07-30 | 旺宏电子股份有限公司 | 存储装置的操作方法 |
US9595342B2 (en) * | 2015-01-20 | 2017-03-14 | Sandisk Technologies Llc | Method and apparatus for refresh programming of memory cells based on amount of threshold voltage downshift |
KR102333743B1 (ko) | 2015-01-21 | 2021-12-01 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 불휘발성 메모리 장치의 동작 방법 |
US9418751B1 (en) | 2015-01-23 | 2016-08-16 | Sandisk Technologies Llc | Pre-program detection of threshold voltages of select gate transistors in a memory device |
US9564213B2 (en) | 2015-02-26 | 2017-02-07 | Sandisk Technologies Llc | Program verify for non-volatile storage |
US9343156B1 (en) * | 2015-06-25 | 2016-05-17 | Sandisk Technologies Inc. | Balancing programming speeds of memory cells in a 3D stacked memory |
KR102294848B1 (ko) | 2015-06-30 | 2021-08-31 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 컨트롤러를 포함하는 스토리지 장치 |
US9715938B2 (en) | 2015-09-21 | 2017-07-25 | Sandisk Technologies Llc | Non-volatile memory with supplemental select gates |
US10014063B2 (en) | 2015-10-30 | 2018-07-03 | Sandisk Technologies Llc | Smart skip verify mode for programming a memory device |
JP6502880B2 (ja) | 2016-03-10 | 2019-04-17 | 東芝メモリ株式会社 | 半導体記憶装置 |
KR102650333B1 (ko) | 2016-08-10 | 2024-03-25 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 불휘발성 메모리 장치를 포함하는 스토리지 장치 |
US10153051B1 (en) | 2018-01-24 | 2018-12-11 | Sandisk Technologies Llc | Program-verify of select gate transistor with doped channel in NAND string |
US10573388B2 (en) | 2018-04-04 | 2020-02-25 | Western Digital Technologies, Inc. | Non-volatile storage system with adjustable select gates as a function of temperature |
US10424387B1 (en) | 2018-05-16 | 2019-09-24 | Sandisk Technologies Llc | Reducing widening of threshold voltage distributions in a memory device due to temperature change |
US10559353B2 (en) * | 2018-06-06 | 2020-02-11 | Micron Technology, Inc. | Weight storage using memory device |
KR20210066899A (ko) | 2019-02-20 | 2021-06-07 | 양쯔 메모리 테크놀로지스 씨오., 엘티디. | 메모리 시스템을 프로그래밍하기 위한 방법 |
JP2020150083A (ja) * | 2019-03-12 | 2020-09-17 | キオクシア株式会社 | 不揮発性半導体記憶装置 |
US10706941B1 (en) | 2019-04-01 | 2020-07-07 | Sandisk Technologies Llc | Multi-state programming in memory device with loop-dependent bit line voltage during verify |
US10978145B2 (en) | 2019-08-14 | 2021-04-13 | Sandisk Technologies Llc | Programming to minimize cross-temperature threshold voltage widening |
JP7476061B2 (ja) * | 2020-09-15 | 2024-04-30 | キオクシア株式会社 | 半導体記憶装置 |
US11636897B2 (en) | 2021-03-03 | 2023-04-25 | Sandisk Technologies Llc | Peak current and program time optimization through loop dependent voltage ramp target and timing control |
US11482289B2 (en) * | 2021-03-04 | 2022-10-25 | Sandisk Technologies Llc | Application based verify level offsets for non-volatile memory |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1131391A (ja) * | 1997-07-10 | 1999-02-02 | Sony Corp | 不揮発性半導体記憶装置 |
CN101847443A (zh) * | 2009-03-25 | 2010-09-29 | 三星电子株式会社 | 非易失性存储器器件和相关的编程方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6222762B1 (en) * | 1992-01-14 | 2001-04-24 | Sandisk Corporation | Multi-state memory |
US6967872B2 (en) | 2001-12-18 | 2005-11-22 | Sandisk Corporation | Method and system for programming and inhibiting multi-level, non-volatile memory cells |
US7073103B2 (en) | 2002-12-05 | 2006-07-04 | Sandisk Corporation | Smart verify for multi-state memories |
US8391070B2 (en) | 2008-12-02 | 2013-03-05 | Spansion Llc | Moving program verify level for programming of memory |
US7301817B2 (en) | 2005-10-27 | 2007-11-27 | Sandisk Corporation | Method for programming of multi-state non-volatile memory using smart verify |
US7403425B2 (en) | 2006-03-07 | 2008-07-22 | Micron Technology, Inc. | Programming a flash memory device |
KR100865552B1 (ko) | 2007-05-28 | 2008-10-28 | 주식회사 하이닉스반도체 | 플래시 메모리소자의 프로그램 검증방법 및 프로그램 방법 |
US8000150B2 (en) | 2007-06-19 | 2011-08-16 | Samsung Electronics Co., Ltd. | Method of programming memory device |
US7489543B1 (en) | 2007-07-25 | 2009-02-10 | Micron Technology, Inc. | Programming multilevel cell memory arrays |
US7649782B2 (en) | 2007-07-31 | 2010-01-19 | Freescale Semiconductor, Inc. | Non-volatile memory having a dynamically adjustable soft program verify voltage level and method therefor |
US7706190B2 (en) | 2007-11-29 | 2010-04-27 | Hynix Semiconductor Inc. | Method of program-verifying a nonvolatile memory device using subdivided verifications with increasing verify voltages |
US7800956B2 (en) | 2008-06-27 | 2010-09-21 | Sandisk Corporation | Programming algorithm to reduce disturb with minimal extra time penalty |
US8223551B2 (en) | 2009-02-19 | 2012-07-17 | Micron Technology, Inc. | Soft landing for desired program threshold voltage |
US8223555B2 (en) | 2009-05-07 | 2012-07-17 | Micron Technology, Inc. | Multiple level program verify in a memory device |
US8174895B2 (en) | 2009-12-15 | 2012-05-08 | Sandisk Technologies Inc. | Programming non-volatile storage with fast bit detection and verify skip |
US8369149B2 (en) | 2010-09-30 | 2013-02-05 | Sandisk Technologies Inc. | Multi-step channel boosting to reduce channel to floating gate coupling in memory |
-
2013
- 2013-02-05 US US13/759,303 patent/US8929142B2/en active Active
-
2014
- 2014-01-29 CN CN201480007201.2A patent/CN105164755B/zh active Active
- 2014-01-29 WO PCT/US2014/013698 patent/WO2014123739A1/en active Application Filing
- 2014-01-29 EP EP14704492.9A patent/EP2954529B1/en active Active
- 2014-05-23 US US14/285,878 patent/US8913432B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1131391A (ja) * | 1997-07-10 | 1999-02-02 | Sony Corp | 不揮発性半導体記憶装置 |
CN101847443A (zh) * | 2009-03-25 | 2010-09-29 | 三星电子株式会社 | 非易失性存储器器件和相关的编程方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113870934A (zh) * | 2020-06-30 | 2021-12-31 | 闪迪技术有限公司 | 编程-验证技术之间的取决于循环的切换 |
CN111933201A (zh) * | 2020-08-13 | 2020-11-13 | 长江存储科技有限责任公司 | 用于对存储器系统进行编程的方法、装置及存储器系统 |
CN111933201B (zh) * | 2020-08-13 | 2021-03-23 | 长江存储科技有限责任公司 | 用于对存储器系统进行编程的方法、装置及存储器系统 |
CN112270947A (zh) * | 2020-10-29 | 2021-01-26 | 长江存储科技有限责任公司 | 用于存储器的编程方法和装置 |
CN112270947B (zh) * | 2020-10-29 | 2023-08-04 | 长江存储科技有限责任公司 | 用于存储器的编程方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US8929142B2 (en) | 2015-01-06 |
US20140254283A1 (en) | 2014-09-11 |
US20140219027A1 (en) | 2014-08-07 |
CN105164755B (zh) | 2019-06-04 |
US8913432B2 (en) | 2014-12-16 |
EP2954529B1 (en) | 2016-11-23 |
WO2014123739A1 (en) | 2014-08-14 |
EP2954529A1 (en) | 2015-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105164755A (zh) | 使用动态验证电平对选择栅极晶体管和存储器单元进行编程 | |
US10157680B2 (en) | Sub-block mode for non-volatile memory | |
CN105453183B (zh) | 针对3d非易失性存储器的动态擦除电压步长选择 | |
US9563504B2 (en) | Partial block erase for data refreshing and open-block programming | |
CN105518796B (zh) | 基于存储器孔直径针对3d非易失性存储器的编程和读取操作 | |
US7688632B2 (en) | Nonvolatile semiconductor memory capable of trimming an initial program voltage for each word line | |
US9396808B2 (en) | Method and apparatus for program and erase of select gate transistors | |
US9530506B2 (en) | NAND boosting using dynamic ramping of word line voltages | |
KR100766241B1 (ko) | 플래쉬 메모리 소자의 프로그램 방법 | |
US10026492B2 (en) | Multi-die programming with die-jumping induced periodic delays | |
CN103081015B (zh) | 利用位线电压逐步增加来对非易失性存储器进行编程 | |
US7898872B2 (en) | Operating method used in read or verification method of nonvolatile memory device | |
CN107230498B (zh) | 非易失性半导体存储设备及其擦除方法 | |
US8902668B1 (en) | Double verify method with soft programming to suppress read noise | |
US8363471B2 (en) | Nonvolatile memory device and method of programming the same | |
JP2017111847A (ja) | 半導体記憶装置 | |
US8908441B1 (en) | Double verify method in multi-pass programming to suppress read noise | |
KR20130139598A (ko) | 반도체 메모리 장치 및 이의 동작 방법 | |
US20220093152A1 (en) | Memory device | |
KR20140026141A (ko) | 반도체 메모리 장치 및 이의 동작 방법 | |
US7596020B2 (en) | Multi-level nonvolatile semiconductor memory device capable of discretely controlling a charge storage layer potential based upon accumulated electrons | |
US12046267B2 (en) | Advanced window program-verify | |
KR101604857B1 (ko) | 반도체 메모리 장치의 프로그램 방법 | |
KR20100122344A (ko) | 불휘발성 메모리 소자의 프로그램 방법 | |
KR20100059422A (ko) | 플래쉬 메모리 소자의 구동 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: American Texas Applicant after: DELPHI INT OPERATIONS LUX SRL Address before: American Texas Applicant before: Sandisk Technologies, Inc |
|
COR | Change of bibliographic data | ||
GR01 | Patent grant | ||
GR01 | Patent grant |