CN115512747A - 用于具有相邻平面干扰检测的智能验证的设备和方法 - Google Patents

用于具有相邻平面干扰检测的智能验证的设备和方法 Download PDF

Info

Publication number
CN115512747A
CN115512747A CN202110699678.3A CN202110699678A CN115512747A CN 115512747 A CN115512747 A CN 115512747A CN 202110699678 A CN202110699678 A CN 202110699678A CN 115512747 A CN115512747 A CN 115512747A
Authority
CN
China
Prior art keywords
programming
plane
memory cells
word line
program
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.)
Pending
Application number
CN202110699678.3A
Other languages
English (en)
Inventor
田璇
殷冠华
李靓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SanDisk Technologies LLC
Original Assignee
SanDisk Technologies LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by SanDisk Technologies LLC filed Critical SanDisk Technologies LLC
Priority to CN202110699678.3A priority Critical patent/CN115512747A/zh
Priority to US17/360,184 priority patent/US11538538B1/en
Publication of CN115512747A publication Critical patent/CN115512747A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3431Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3468Prevention of overerasure or overprogramming, e.g. by verifying whilst erasing or writing
    • G11C16/3481Circuits or methods to verify correct programming of nonvolatile memory cells whilst programming is in progress, e.g. by detecting onset or cessation of current flow in cells and using the detector output to terminate programming
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/08Address circuits; Decoders; Word-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/30Power supply circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series

Abstract

提供了一种设备,该设备包括多个非易失性存储器单元和耦接到非易失性存储器单元的控制电路。该控制电路被配置为对耦接到第一字线的第一组非易失性存储器单元执行第一编程‑验证迭代,以确定将第一组非易失性存储器单元编程到第一编程状态的第一起始编程电压,并且仅当不存在缺陷条件时才以第一起始编程电压开始编程耦接到第一字线的第二组非易失性存储器单元。

Description

用于具有相邻平面干扰检测的智能验证的设备和方法
技术领域
本申请涉及一种存储器装置及其操作方法,并且更具体地,用于具有相邻平面干扰检测的智能验证的设备和方法。
背景技术
半导体存储器广泛用于各种电子装置,诸如蜂窝电话、数码相机、个人数字助理、医疗电子、移动计算装置、服务器、固态驱动器、非移动计算装置和其他装置。半导体存储器可以包括非易失性存储器或易失性存储器。即使在非易失性存储器未连接到电源(例如,电池)时,非易失性存储器也允许存储和保留信息。非易失性存储器的示例包括闪速存储器(例如,NAND型和NOR型闪速存储器)。
存储器系统可用于存储由主机装置(或其他客户端)提供的数据。然而,在操作此类存储器系统时存在各种挑战。特别是,随着存储器单元尺寸的减小以及存储器阵列密度的增加,保持所存储数据的完整性变得更具挑战性。
发明内容
一个实施例包含设备,其包含多个非易失性存储器单元和耦接到非易失性存储器单元的控制电路。控制电路配置为在耦接到第一字线的第一组非易失性存储器单元上执行第一编程-验证迭代,以确定将第一组非易失性存储器单元编程到第一编程状态的第一开始编程电压,并且仅如果缺陷条件不存在,才将耦接到第一字线的第二组非易失性存储器单元以第一开始编程电压开始编程。
一个实施例包含一种设备,其包含多个非易失性存储器单元和耦接到非易失性存储器单元的控制电路。控制电路配置为编程并验证耦接到第一平面和第二平面上的第一字线的第一组存储器单元,以确定将第一组存储器单元编程到特定编程状态所需的第一开始编程电压,确定第一平面的编程比第二平面更慢预定的量,编程并验证耦接到第二平面上的第一字线的第二组存储器单元,以确定将第二组存储器单元编程到特定编程状态所需的第二开始编程电压,终止编程耦接到第一平面上的第一字线的存储器单元,并且以第二编程电压开始编程耦接到第二平面上的第一字线的第三组存储器单元。
一个实施例包含一种方法,其包含同时地编程耦接到第一平面和第二平面上的第一字线的非易失性存储器单元,确定第一平面的编程比第二平面更慢预定的量,终止编程耦接到第一平面上的第一字线的非易失性存储器单元,并且在耦接到第二平面上的第一字线的第一组非易失性存储器单元上执行编程-验证迭代,以确定将第一组非易失性存储器单元编程到第一编程状态的开始编程电压。
附图说明
相同编号的元件指的是不同图中的共同部件。
图1是描绘存储器系统的一个实施例的框图;
图2是存储器裸芯的一个实施例的框图;
图3是三维存储器结构的一个实施例的部分的立体图;
图4A是具有两个平面的存储器结构的框图;
图4B描绘了存储器单元的块的部分的顶视图;
图4C描绘了存储器单元的块的部分的截面图;
图4D描绘了选择栅极层和字线层的图;
图4E是存储器单元的存储器孔的截面图;
图4F是多个NAND串的示意图;
图5描绘了阈值电压分布;
图6是描述将数据值分配到数据状态的一个示例的表;
图7A-7E描绘了各种阈值电压分布并且描述了用于编程非易失性存储器的过程;
图8是描述用于编程非易失性存储器的过程的实施例的流程图;
图9描绘了编程和验证操作期间的字线电压;
图10是描述用于编程非易失性存储器的另一过程的实施例的流程图;
图11是具有两个平面的存储器结构的框图;
图12A-12C描绘了各种阈值电压分布;
图13A-13C描绘了各种阈值电压分布;
图14A-14B描绘了各种阈值电压分布;
图15是描述用于编程非易失性存储器的另一过程的实施例的流程图。
具体实施方式
一些非易失性存储器装置用于存储电荷的两个范围,因此可以在两个数据状态之间编程/擦除存储器单元:擦除状态和编程状态(对应于数据“1”和数据“0”)。这样的装置被称为二进制装置或单级单元(SLC)并且数据为二进制数据。
相比之下,多状态闪速存储器单元(存储多状态数据)是通过标识多个不同的允许阈值电压范围来实现。每个不同的阈值电压范围对应于该组数据比特的预定值。例如,一些存储器单元可以存储两个或更多个比特。编程到存储器单元中的数据与存储器单元的阈值电压范围之间的具体关系取决于存储器单元所采用的数据编码方案。
除了由多状态存储器架构导致的容量增益之外,存储器技术的显著优势还源于存储器单元的物理维度的稳步缩小。较小的存储器单元可以在给定的裸芯区域上更密集地封装,从而以与较早的存储器技术相同的价格来提供更高的存储器容量。然而,缩放存储器单元的尺寸会带来一定的风险。
实际上,密集封装这种较小的存储器单元可能导致制造缺陷增加,诸如相邻字线之间的短路、字线和互连之间的短路、字线和衬底之间的短路以及断开的字线。这种制造缺陷常常导致存储在正被编程的字线上和附近的字线上的数据的破坏。
在一些情况下,在制造期间和在封装和运输存储器装置之前进行的测试期间未发现这些制造缺陷。相反,这种潜在的制造缺陷可能仅在端用户开始编程和擦除这类存储器设备中的存储器单元之后才开始破坏数据。
一些存储器技术通过在编程之后读取编程数据或在完成编程之后评估性能来寻求对抗潜在的制造缺陷。然而,到已完成编程时,该编程过程可能已经损坏存储在其他附近存储器单元中的数据。
此外,一些非易失性存储器装置包括多平面存储器结构组织,并且多个平面中连接到相同字线的存储器单元可以被同时编程。尽管多平面编程可以提高编程速度,但是诸如在一个平面上的上述字线缺陷的任何缺陷都可能干扰在同时编程平面上的存储器单元的编程。在实现某些字线跳过智能-验证算法时,一种这样的干扰机制会导致对较低编程状态的过编程。
描述了实现字线跳过智能-验证算法的技术,该算法在编程期间检测如果其中一个平面上存在缺陷条件,则终止在包括检测到的缺陷的平面上的编程,以减少或消除对其他平面的编程干扰。
图1是实现所述技术的存储器系统100的实施例的框图。在一个实施例中,存储器系统100是固态驱动器(“SSD”)。存储系统100还可以是存储卡、USB驱动器或其他类型的存储系统。所提出的技术不限于任何一种类型的存储器系统。存储器系统100连接到主机102,主机102可以是计算机、服务器、电子装置(例如,智能电话、平板电脑或其他移动装置)、器具或使用存储器并具有数据处理能力的另一设备。在一些实施例中,主机102与存储器系统100分离但连接到存储器系统100。在其他实施例中,存储器系统100嵌入在主机102内。
图1中描绘的存储器系统100的部件是电路。存储器系统100包括连接到一个或多个存储器裸芯106和本地高速易失性存储器108(例如,DRAM)的控制器104。一个或多个存储器裸芯106均包括多个非易失性存储器单元。下面提供了关于每个存储器裸芯106的结构的更多信息。控制器104使用本地高速易失性存储器108来执行某些功能。例如,本地高速易失性存储器108存储逻辑到物理地址转换表(“L2P表”)
控制器104包括连接到主机102并与主机102通信的主机接口110。在一个实施例中,主机接口110提供PCIe接口。也可以使用其他接口,诸如SCSI、SATA等。主机接口110还连接到片上网络(NOC)112,NOC 112是集成电路上的通信子系统。在其他实施例中,NOC 112可以由总线代替。
NOC可以跨越同步和异步时钟域或使用非时钟异步逻辑。NOC技术将网络理论和方法应用于片上通信,并在传统的总线和交叉梁互连上带来显著改善。与其他设计相比,NOC提高了片上系统(SoC)的可规模化性和复杂SoC的功率效率。在实施例中,NOC的电线和链路由许多信号共用。由于NOC中的所有链路可以同时在不同的数据分组上运行,因此实现了高水平的并行度。因此,随着集成子系统的复杂性不断增加,与以前的通信架构(例如,专用点对点信号线、共用总线或带桥接器的分段总线)相比,NOC提供了增强的性能(诸如通量)和可规模化性。
连接到NOC 112并与之通信的是处理器114、ECC引擎116、存储器接口118和DRAM控制器120。DRAM控制器120用于运行本地高速易失性存储器108(例如,DRAM)并与其通信。在其他实施例中,本地高速易失性存储器108可以是SRAM或另一种类型的易失性存储器。
ECC引擎116执行纠错服务。例如,ECC引擎116根据实现的ECC技术执行数据编码和解码。在一个实施例中,ECC引擎116是由软件编程的电路。例如,ECC引擎116可以是可被编程的处理器。在其他实施例中,ECC引擎116是没有任何软件的定制和专用硬件电路。在另一个实施例中,ECC引擎116的功能由处理器114实现。
处理器114执行各种控制器存储器操作,诸如编程、擦除、读取以及存储器管理过程。在实施例中,处理器114由固件编程。在其他实施例中,处理器114是没有任何软件的定制和专用硬件电路。在一个实施例中,处理器114还实现转换模块,作为软件/固件过程或作为专用硬件电路。
在许多系统中,非易失性存储器使用与一个或多个存储器裸芯相关联的物理地址在内部寻址到储存系统。然而,主机系统将使用逻辑地址来寻址各个内存位置。这使得主机能够将数据分配到连续的逻辑地址,而储存系统可以根据需要在一个或多个存储器裸芯的位置之间自由存储数据。为了启用该系统,控制器(例如,转换模块)在主机使用的逻辑地址和存储器裸芯使用的物理地址之间执行地址转换。
一种示例性实现方式是维护标识逻辑地址和物理地址之间的转换的表(例如,上述的L2P表)。L2P表中的条目可以包括逻辑地址和对应物理地址的标识。尽管物理地址表(或L2P表)的逻辑地址包括“表”一词,但它们不一定是字面上的表。相反,物理地址表(或L2P表)的逻辑地址可以是任何类型的数据结构。在一些示例中,储存系统的存储器空间太大,以致本地存储器108不能保存所有L2P表。在这种情况下,整组L2P表被存储在存储器裸芯106中,并且L2P表的子组被缓存(L2P缓存)在本地高速易失性存储器108中。
在一个实施例中,存储器接口118与一个或多个存储器裸芯106通信。在一个实施例中,存储器接口118提供触发模式接口。也可以使用其他接口。在一些示例性实现方式中,存储器接口118(或控制器104的另一部分)实施调度器和缓冲器,以用于向一个或多个存储器裸芯发送数据并且从一个或多个存储器裸芯接收数据。
图2是存储器裸芯200的一个实施例的功能框图。图1的一个或多个存储器裸芯106中的每一个可以实现为图2的存储器裸芯200。图2中描绘的部件是电路。在一个实施例中,每个存储器裸芯200包括存储器结构202、控制电路204和读/写电路206。存储器结构202可由字线经由行解码器208以及由位线经由列解码器210寻址。
在一个实施例中,读/写电路206包括多个感测块212,多个感测块212包括SB1、SB2、...、SBp(感测电路)并允许要并行读取或编程(写入)的多个存储器单元中的数据的页(或多页)。在一个实施例中,每个感测块212包括感测放大器和连接到位线的一组锁存器。锁存器存储要写入的数据和/或已读取的数据。在一个实施例中,每个感测放大器212包括位线驱动器。在实施例中,经由线214在控制器104和存储器裸芯200之间传输命令和数据。在实施例中,存储器裸芯200包括一组连接到线214的输入和/或输出(I/O)引脚。
在一个实施例中,控制电路204与读/写电路206协作以在存储器结构202上执行存储器操作(例如,写入、读取、擦除和其他操作)。在一个实施例中,控制电路204包括状态机216、片上地址解码器218和电源控制电路220。在一个实施例中,状态机216提供存储器操作的裸芯级控制。在一个实施例中,状态机216可由软件编程。在其他实施例中,状态机216不使用软件并且完全在硬件(例如,电路)中实现。在一些实施例中,状态机216可由微控制器或微处理器代替。在一个实施例中,控制电路204包括缓冲器,诸如寄存器、ROM熔丝以及用于存储默认值(诸如基准电压和其他参数)的其他储存设备。
片上地址解码器218提供控制器104使用的地址与行解码器208和列解码器210使用的硬件地址之间的地址接口。功率控制模块220控制在存储器运行期间供应给字线和位线的功率和电压。功率控制模块220可以包括用于创建电压的电荷泵。
就本文档而言,控制电路204、读/写电路206、行解码器208和列解码器210包括存储器结构202的控制电路。在其他实施例中,在存储器结构202上支持和运行的其他电路可以称为控制电路。例如,在一些实施例中,控制器104可以作为控制电路运行或者可以是控制电路的部分。控制电路也可以实现为微处理器或其他类型的处理器,微处理器或其他类型的处理器被硬连线或编程以执行这里描述的功能。
就本文档而言,控制电路204、读/写电路206、行解码器208和列解码器210包括存储器结构202的外围电路,因为它们不是存储器结构202的部分,但与存储器结构202在同一裸芯上,并用于运行存储器结构202。
在一个实施例中,存储器结构202是非易失性存储器单元的三维存储器阵列。在一个实施例中,存储器结构202是单片三维存储器阵列,在单片三维存储器阵列中多个存储器级形成在单个衬底(诸如晶片)上方。存储器结构可以是在具有在硅(或其他类型的)衬底之上设置的有源区的存储器单元的阵列的一个或多个物理级中形成的任何类型的非易失性存储器。在一个示例中,存储器结构202的非易失性存储器单元包括具有诸如所描述的电荷捕获材料的垂直NAND串。NAND串包括由沟道连接的存储器单元。
在另一实施例中,存储器结构202包括非易失性存储器单元的二维存储器阵列。在一个示例中,非易失性存储器单元是利用浮置栅极的NAND闪速存储器单元。也可以使用其他类型的存储器单元(例如,NOR型闪速存储器)。
存储器结构202中包括的存储器阵列架构或存储器单元的确切类型不限于以上示例。许多不同类型的存储器阵列架构或存储器单元技术可用于形成存储器结构202。这里描述的新技术不需要特定的非易失性存储器技术。
用于存储器结构202的存储器单元的合适技术的其他示例包括ReRAM存储器、磁阻存储器(MRAM)、相变存储器(PCM)等。用于存储器结构202的架构的合适技术的示例包括二维阵列、三维阵列、交叉点阵列、堆叠二维阵列、垂直位线阵列等。
一个示例中,交叉点存储器包括可逆电阻切换元件,可逆电阻切换元件布置在由X线和Y线(例如字线和位线)访问的交叉点阵列中。在另一个实施例中,存储器单元可以包括导电桥式存储器元件。导电桥式存储器元件也可称为可编程金属化单元。
基于离子在固体电解质中的物理重新定位,导电桥式存储器元件可以用作状态改变元件。在一些情况下,导电桥式存储器元件可以包括两个固体金属电极,其中一个相对惰性(例如钨),另一个具有电化学活性(例如银或铜),两个电极之间具有固体电解质薄膜。
MRAM使用磁性储存元件来存储数据。磁性储存元件由两个铁磁板形成,每个铁磁板都可以保持磁化,并由薄绝缘层隔开。两块板中的一个设置为特定极性的永磁体;另一个板的磁化可以改变,以匹配储存存储器的外部场的磁化。存储设备由这种存储器单元的网格构成。在用于编程的一个实施例中,每个存储单元位于一对彼此成直角布置的写入线之间,并与单元平行,其中一个在单元上方,另一个在单元下方。当电流通过它们时,会产生感应磁场。
相变存储器(PCM)利用了硫系玻璃的独特行为。一个实施例中,使用GeTe-Sb2Te3超晶格,通过用激光脉冲(或来自另一来源的光脉冲)简单地改变锗原子的配位状态来实现非热相变。因此,编程的剂量是激光脉冲。可以通过阻止存储单元接收光来禁止存储单元编程。
本领域的普通技术人员将认识到,这里描述的技术不限于单个特定的存储器结构,而是涵盖了这里描述的技术范围内的许多相关存储器结构,并且被本领域的普通技术人员所理解。
图3是包括存储器结构202的三维存储器阵列的一个实施例的部分的立体图。在实施例中,存储器结构202包括多个非易失性存储器单元。例如,图3示出了一个存储单元的块的部分。所示的结构包括位于交替的电介质层和导电层的堆叠结构之上的一组位线BL。作为示例,一个电介质层被标记为D,一个导电层(也称为字线层)被标记为W。
交替的电介质层和导电层的数量可以根据具体的实施要求而变化。一组实施例包括108-300个交替的电介质层和导电层。一个示例包括96个数据字线层、8个选择层、6个虚设字线层和110个电介质层。也可以使用多于或少于108-300层。在实施例中,交替的电介质层和导电层被局域互连体LI分成四个区域。图3描绘了两个区域和两个局域互连体LI。图3描绘了两个区域和两个局域互连体LI。
源极线层SL位于交替的电介质层和字线层下方。存储器孔形成在交替的电介质层和导电层的叠层中。例如,存储器孔之一被标记为MH。应注意,在图3中,电介质层被描绘为透视的,以便读者可以看到位于交替的电介质层和导电层的叠层中的存储器孔。
在实施例中,通过采用包括电荷捕捉材料的材料填充存储器孔以创建存储器单元的垂直列(也称为存储器列)来形成NAND串。在实施例中,每个存储单元可以存储一个或多个比特数据。在一个实施例中,每个存储器孔MH与位线BL中的对应的一条位线BL相关联并耦接到对应的位线BL。在一个实施例中,每条位线BL耦接到一个或多个存储器孔MH。下面参考图4A-4F提供关于包括存储器结构202的三维存储器阵列的更多细节。
图4A是解释存储器结构202的一个示例性组织的框图,其被分成两个平面400a和400b。两个平面都在同一个存储器裸芯200上(图2)。然后将每个平面分成M个块。在一个示例中,每个平面有大约2000个块。然而,也可以使用不同数量的块和平面。图4A中以虚线示出了存储器结构的平面400a的块2的部分402。
在实施例中,存储器单元的块是擦除的单位。也就是说,一个块的所有存储器单元被一起擦除。在其他实施例中,可以出于其他原因,可以将存储器单元分组为块,例如组织存储器结构202以启用信令和选择电路。在一些实施例中,块表示一组连接的存储器单元,因为块的存储器单元共用一组公共字线。尽管图4A描绘了同一裸芯上的两个平面,但是在其他实施例中,可以实现多于两个平面。例如,存储器结构202可以包括2-8个(或更多)平面。
图4B-4F描绘了对应于图3的结构的示例性三维(“3D”)NAND结构。图4B是描绘存储器结构202的部分402(图4A)的顶视图的框图。从图4B可以看出,部分402在方向404和方向406上延伸。在一个实施例中,存储器阵列具有许多层,然而,图4B仅示出了顶层。
图4B描绘了表示存储器孔的多个圆,它们也被称为存储器列。例如,图4B描绘了存储器孔408、410、412和414。每个存储器孔包括多个选择晶体管(也称为选择栅极)和多个存储器单元。在一个实施例中,每个存储器孔实现NAND串。因为部分402在方向404和406上延伸,所以该块包括比图4B示出的更多的存储器孔。
图4B还描绘了一组位线424,包括位线426、428、430、432、……434。
在一个实施例中,每个存储器孔与对应的一条位线相关联并耦接到该位线。
在一个实施例中,每条位线耦接到一个或多个存储器孔。图4B示出了24条位线,因为仅描绘了块的部分。可以设想将多于24条的位线连接到块的存储器孔。表示存储器孔的每个圆都有一个“x”来指示存储器孔与一条位线的连接。例如,位线432连接到存储器孔408、410、412和414。
图4B中描绘的部分402包括一组局域互连体436、438、440、442和444,这些局域互连体将各个层连接到存储器孔下方的源极线。局域互连体436、438、440、442和444也起到将块的每一层分成四个区域的作用。例如,图4B中描绘的顶层分为四个区域,表示为String0、String1、Sting2和String3。在实现存储器单元的块的层中,String0、String1、Sting2和String3也可以称为由局域互连体分开的字线指(word line finger)。
在实施例中,块的公共级上的字线指连接在一起以形成单个字线。在另一个实施例中,同一层的字线指不连接在一起。在示例性实现方式中,位线连接到String0、String1、Sting2和String3中的每个的单个存储器孔。在该实现中,每个块具有十六行有效列并且每条位线连接到每个块中的四行。
在实施例中,连接到公共位线的所有四行都连接到相同的字线(经由同级上的连接在一起的不同字线指)。因此,系统使用源极侧选择线和漏极侧选择线来选择四者中的一者(或另一个子组)以进行存储器操作(编程、验证、读取和/或擦除)。
虽然图4B描绘了四个区域String0、String1、Sting2和String3,每个区域具有四行存储器孔且一个块中具有十六行存储器孔,但是这些确切数字是示例性实现方式。在其他实施例中,可以每块具有更多或更少的区域,每个区域具有更多或更少行的存储器孔,并且每块具有更多或更少行的存储器孔。图4B还描绘了交错的存储器孔。在其他实施例中,可以使用不同的交错模式。在一些实施例中,存储器孔不交错。
图4C描绘了三维存储器结构202的一个实施例的部分,示出了了沿图4B的线AA的截面图。该横截面图截过String1的存储器孔410和454(见图4B)。图4C的结构包括四个漏极侧选择层SGD0、SGD1、SGD2和SGD3,四个源极侧选择层SGS0、SGS1、SGS2和SGS3,六个虚设字线层DD0、DD1、DS0、DS1、WLDL、WLDU和128个用于连接到存储器单元的数据字线层WLL0-WLL127。其他实施例可以实现多于或少于四个漏极侧选择层、多于或少于四个源极侧选择层、多于或少于六个虚设字线层以及多于或少于128个字线。
将存储器孔410和454描绘为突出穿过漏极侧选择层、源极侧选择层、虚设字线层和字线层。在一个实施例中,每个存储器孔包括垂直NAND串。在存储器孔和下面列出的层的下方是衬底456、衬底上的绝缘膜458和源极线SL。存储器孔410的NAND串具有位于堆叠体底部的源极端和位于堆叠体顶部的漏极端。与图4B一致,图4C描绘了经由连接器460连接到位线432的存储器孔410,图4C还描绘了局域互连体438和440。
为便于参考,漏极侧选择层SGD0、SGD1、SGD2和SGD3,源极侧选择层SGS0、SGS1、SGS2和SGS3,虚设字线层DD0、DD1、DS0、DS1、WLDL和WLDU,以及字线层WLL0-WLL127统称为导电层。在实施例中,导电层由TiN和钨的组合制成。在其他实施例中,可以使用其他材料来形成导电层,例如掺杂的多晶硅、诸如钨的金属或金属硅化物。在一些实施例中,不同的导电层可以由不同的材料形成。
导电层之间是介电层DL0-DL143。例如,介电层DL136在字线层WLL126上方以及在字线层WLL127下方。在实施例中,介电层由SiO2制成。在其他实施例中,可以使用其他介电材料来形成介电层。
非易失性存储器单元沿着存储器孔形成,该存储器孔延伸穿过堆叠体中的交替的导电层和介电层。在实施例中,存储器单元被布置在NAND串中。字线层WLL0-WLL127连接到存储器单元(也称为数据存储器单元)。虚设字线层DD0、DD1、DS0、DS1、WLDL和WLDU连接到虚设存储器单元。虚设存储器单元不储存并且没有资格储存主机数据(从主机提供的数据,诸如来自主机的用户的数据),而数据存储器单元有资格储存主机数据。
在一些实施例中,数据存储器单元和虚设存储器单元可以具有相同的结构。虚设字线连接到虚设存储器单元。漏极侧选择层SGD0、SGD1、SGD2和SGD3用于将NAND串从位线电连接和断开。源极侧选择层SGS0、SGS1、SGS2和SGS3用于将NAND串从源极线SL电连接和断开。
图4C示出了“接合区域”。在实施例中,蚀刻与介电层混合的一百二十八个字线层是昂贵的和/或具有挑战性的。为了减轻这种负担,一个实施例包括铺设与介电层交替的六十四个字线层的第一堆叠体,铺设接合区域,以及铺设与介电层交替的六十四个字线层的第二堆叠体。接合区域定位在第一堆叠体与第二堆叠体之间。接合区域用于将第一堆叠体连接到第二堆叠体。
在图4C中,第一堆叠体被标记为“下组字线”,第二堆叠体被标记为“上组字线”。在实施例中,接合区域由与字线层相同的材料制成。在一组示例性实现方式中,多个字线(控制线)包括交替字线层和介电层的第一堆叠体、交替字线层和介电层的第二堆叠体,以及第一堆叠体与第二堆叠体之间的接合区域,如图4C所描绘。
图4D描绘了图4C中部分描绘的块的导电层(SGD0、SGD1、SGD2、SGD3、SGS0、SGS1、SGS2、SGS3、DD0、DD1、DS0、DS1和WLL0-WLL127)的逻辑表示。如上关于图4B所述,在实施例中,局部互连体436、438、440、442和444将导电层打断成四个区/指状物。
例如,字线层WLL126被划分为区域String0W126、String1W126、String2W126和String3W126。在实施例中,相同级上的字线指状物连接在一起。在另一个实施例中,每个字线指状物作为分离的字线操作。
同样,漏极侧选择栅极层SGD0(顶层)划分为区域Strin0SGD0、String1SGD0、String2SGD0和String3SGD0,也称为指状物或选择线指状物。在实施例中,相同级上的四个选择线指状物连接在一起。在另一个实施例中,每个选择线指状物作为分离的字线操作。
图4E描绘了图4C的String1的截面图,其包括存储器孔410的一部分。在实施例中,存储器孔(例如,存储器孔410)成形为圆柱体。然而,在其他实施例中,存储器孔可以具有其他形状。在实施例中,存储器孔410包括内核层480、围绕内核层480的沟道482、围绕沟道482的隧穿电介质484和围绕隧穿电介质484的电荷俘获层486。在实施例中,内核层480是介电材料(例如SiO2),沟道482是多晶硅,隧穿电介质484具有ONO结构,并且电荷俘获层486是硅氮化物。还可以使用其他存储器材料和结构。在本文中描述的技术不限于任何特殊材料或结构。
图4E描绘了介电层DLL137、DLL136、DLL135、DLL134和DLL133,以及字线层WLL127、WLL126、WLL125、WLL124和WLL123。在实施例中,每个字线层包括由铝氧化物层490围绕的字线区488,该铝氧化物层490由阻挡氧化物(SiO2)层492围绕。字线层与存储器孔的物理相互作用形成存储器单元。因此,在实施例中存储器单元包括沟道482、隧穿电介质484、电荷俘获层486、阻挡氧化物层492、铝氧化物层490和字线区488。
例如,字线层WLL127和存储器孔410的一部分包括存储器单元MC1。字线层WLL126和存储器孔410的一部分包括存储器单元MC2。字线层WLL125和存储器孔410的一部分包括存储器单元MC3。字线层WLL124和存储器孔410的一部分包括存储器单元MC4。字线层WLL123和存储器孔410的一部分包括存储器单元MC5。在其他架构中,存储器单元可以具有不同结构,然而存储器单元将仍是储存单元。
在实施例中,当编程存储器单元时,电子被储存在与存储器单元相关联的电荷俘获层486的一部分中。响应于在字线区488上适当的电压,这些电子从沟道482穿过隧穿电介质484进入电荷俘获层486。存储器单元的阈值电压(Vth)与储存的电荷的量成比例地增加。
在实施例中,通过电子的Fowler-Nordheim隧穿到电荷俘获层486中实现编程存储器单元。在擦除操作期间,电子回到沟道482或者将空穴注入到电荷俘获层中以与电子复合。在实施例中,经由诸如栅极致漏极泄漏(GIDL)的物理机制,使用空穴注入到电荷俘获层中来实现擦除。
图4F是对应于图4A-E的块2中的部分402的示意图,包括位线426、428、430、432、…434和字线WLL0-WLL127。在块内,每个位线连接到四个NAND串。漏极侧选择线SGD0、SGD1、SGD2和SGD3用于确定四个NAND串中的哪一个连接到相关联的(多个)位线。源极侧选择线SGS0、SGS1、SGS2和SGS3用于确定四个NAND串中的哪一个连接到公共源极线。
在任何给定的存储器操作期间,存储器单元的子组将被标识为经受存储器操作的一个或多个部分。被标识为经受存储器操作的这些存储器单元被称为选择的存储器单元。未被标识为经受存储器操作的存储器单元被称为未选择的存储器单元。取决于存储器架构、存储器类型和存储器操作,可以主动或被动地将未选择的存储器单元排除在经受存储器操作以外。
在存储器操作期间,一些字线被称为选择的字线,因为它们连接到选择的存储器单元。未选择的字线不连接到选择的存储器单元。类似地,选择的位线连接到选择的存储器单元,而未选择的位线不连接到选择的存储器单元。
尽管图3和图4A-4F的示例存储器系统为包括具有电荷俘获材料的垂直NAND串的三维存储器结构,但是还可以通过在此描述的技术使用其他(2D和3D)存储器结构。
上面讨论的存储系统可以被擦除、编程和读取。在成功的编程过程(验证)结束时,存储器单元的阈值电压应该在编程的存储器单元的一个或多个阈值电压的分布内或在擦除的存储器单元的阈值电压的分布内(如合适的话)。图5图示了当每个存储器单元储存三比特数据时存储器阵列的示例阈值电压分布。然而,其他实施例可以使用每存储器单元的其他数据容量(例如,每存储器单元的一比特、二比特、四比特或五比特数据)。
图5示出了对应于八个数据状态的八个阈值电压分布。第一阈值电压分布(数据状态)S0代表擦除的存储器单元。其他七个阈值电压分布(数据状态)S1-S7代表编程的存储器单元,因此也称为编程状态。
每个阈值电压分布(数据状态)对应于该组数据比特的预定的值。在编程到存储器单元中的数据和存储器单元的阈值电压电平之间的指定关系取决于为单元采用的数据编码方案。在实施例中,使用格雷码分配将数据值分配到阈值电压范围,使得如果存储器单元的阈值电压错误地偏移到其邻近的物理状态,则仅一比特会受到影响。
图5示出了用于从存储器单元读取数据的七个读取参考电压Vr1、Vr2、Vr3、Vr4、Vr5、Vr6和Vr7。通过测试(例如,执行感测操作)给定的存储器单元的阈值电压是高于还是低于七个读取参考电压,系统可以确定存储器单元是在什么数据状态(S0、S1、S2、S3、...、S7)。
图5还示出了七个验证参考电压Vv1、Vv2、Vv3、Vv4、Vv5、Vv6和Vv7。当将存储器单元编程到数据状态S1时,系统将测试那些存储器单元是否具有大于或等于Vv1的阈值电压。当将存储器单元编程到数据状态S2时,系统将测试该存储器单元是否具有大于或等于Vv2的阈值电压。当将存储器单元编程到数据状态S3时,系统将确定存储器单元是否具有它们的大于或等于Vv3的阈值电压。当将存储器单元编程到数据状态S4时,系统将测试那些存储器单元是否具有大于或等于Vv4的阈值电压。当将存储器单元编程到数据状态S5时,系统将测试那些存储器单元是否具有大于或等于Vv5的阈值电压。当将存储器单元编程到数据状态S6时,系统将测试那些存储器单元是否具有大于或等于Vv6的阈值电压。当将存储器单元编程到数据状态S7时,系统将测试那些存储器单元是否具有大于或等于Vv7的阈值电压。
在实施例中,称为全序列编程,存储器单元可以从擦除数据状态S0直接地编程到任何编程状态S1-S7。例如,要被编程的一群存储器单元可以首先被擦除,使得该群中的所有存储器单元是在擦除数据状态S0。然后,使用编程过程将存储器单元直接编程为数据状态S1、S2、S3、S4、S5、S6和/或S7。例如,当一些存储器单元从数据状态S0被编程到数据状态S1时,其他存储器单元从数据状态S0被编程到数据状态S2和/或从数据状态S0被编程到数据状态S3等等。图5的箭头代表全序列编程。
除了全序列编程(包括但不限于多阶/阶段编程)以外,在此描述的技术还可以与其他类型的编程一起使用。在一些实施例中,编程状态S1-S7可以重叠,其中控制器104(图1)依靠错误校正来标识正在储存的正确数据。
图6是描述了数据值示例分配到数据状态的表。在图6的表中,S0=111、S1=110、S2=100、S3=000、S4=010、S5=011、S6=001和S7=101。还可以使用其他数据的编码。在此公开的技术不需要特定的数据编码。在实施例中,当块经受擦除操作时,所有存储器单元都被移动到数据状态S0,即擦除状态。在图6的实施例中,当存储器单元被擦除时(例如,在数据状态S0),存储在存储器单元中的所有比特都是“1”。
图7A-7E图示了多阶段编程方法。在该实施例中,编程过程包括三个阶段。在编程之前,存储器单元被擦除,使得连接到公共字线的所有存储器单元处于擦除阈值电压分布E中,如图7A所描绘的。
在第一编程阶段期间,目标(由于要存储在那些存储器单元中的数据)是数据状态S4、S5、S6或S7的那些存储器单元被编程为中间阈值电压分布IM。目标是数据状态S0、S1、S2或S3的那些存储器单元保持在擦除阈值电压分布E中。第一阶段在图7B中以图形方式描绘。被编程为中间阈值电压分布IM的存储器单元被编程为VvIM的目标阈值电压。
在第二编程阶段,在擦除阈值电压分布E中的那些存储器单元被编程到它们的目标数据状态。例如,要被编程到数据状态S3的那些存储器单元被从擦除阈值电压分布E编程到数据状态S3,要被编程到数据状态S2的那些存储器单元被从擦除阈值电压分布E编程到数据状态S2,要被编程到数据状态S1的那些存储器单元被从擦除阈值电压分布E编程到数据状态S1,并且要在数据状态S0的那些存储器单元在编程过程的第二阶段期间不被编程。因此,擦除阈值电压分布E变为数据状态S0。
此外,在第二编程阶段,在中间状态阈值电压分布IM的那些存储器单元被编程到它们的目标数据状态。例如,要被编程到数据状态S7的那些存储器单元被从中间阈值电压分布IM编程到数据状态S7,要被编程到数据状态S6的那些存储器单元被从中间阈值电压分布IM编程到数据状态S6,要被编程到数据状态S5的那些存储器单元被从中间阈值电压分布IM编程到数据状态S5,并且在数据状态S4的那些存储器单元被从中间阈值电压分布IM编程到数据状态S4。该第二编程阶段在图7C中图示。
如图7C中可以看到,在第二编程阶段结束时数据状态S1-S7与邻近数据状态重叠。例如,数据状态S1与数据状态S2重叠,数据状态S2与数据状态S1和S3重叠,数据状态S3与数据状态S2和S4重叠,数据状态S4与数据状态S3和S5重叠,数据状态S5与数据状态S4和S6重叠,并且数据状态S6与数据状态S5和S7重叠。在一些实施例中,所有或一些数据状态不重叠。
在第三编程阶段,数据状态S1-S7中的每一个都缩紧,使得它们不再与邻近状态重叠。这由图7D以图形方式描绘。三阶段编程过程的最终结果在图7E中描绘,图7E示出了数据状态S0-S7。在一些实施例中,数据状态S0比数据状态S1-S7更宽。在实施例中,图7A-7E的数据状态可以根据图6的表来编码。
在一些实施例中,要被编程到数据状态S4的那些存储器单元在第二阶段期间未被编程,并且因此保持在中间阈值电压分布IM中。在第三编程阶段期间,存储器单元被从中间阈值电压分布IM编程到S4。在其他实施例中,去往其他状态的存储器单元也可以在第二阶段期间保持在中间阈值电压分布IM或擦除阈值电压分布E中。
图8是描述用于编程存储器单元的过程800的实施例的流程图。在示例实施例中,使用上面讨论的控制电路对存储器裸芯106(图1)执行过程800。例如,过程800可以在状态机216(图2)的指导下进行。过程800还可用于实现上述全序列编程。附加地,过程800可以用于实现多阶段编程过程的每个阶段。
典型地,在编程操作期间,编程电压作为一系列编程脉冲(经由选择的字线)被施加到控制栅极。在编程脉冲之间的是一组验证脉冲以执行验证。在许多实现方式中,编程脉冲的幅度随着每个连续编程脉冲增加预定的编程步长。在过程800的步骤802中,编程电压(VP)被初始化为起始编程电压Vpinit(例如,在约12V到约16V之间,或一些其他值),并且由状态机216维护的程序计数器PC以1初始化。
在步骤804中,将具有幅度VP的编程脉冲施加到所选择的字线(被选择用于编程的字线)。在实施例中,被同时编程的存储器单元的群组被全部连接到同一字线(所选择的字线)。如果要对存储器单元进行编程,则耦接到该存储器单元的对应位线接地。如果存储器单元应该保持在其当前阈值电压,则耦接到该存储器单元的对应位线连接到Vdd以禁止编程。在实施例中,未选择的字线接收一个或多个升压电压(例如,在约7V到大约11V之间,或者一些其他值)来执行本领域已知的升压方案。
在步骤804中,将编程脉冲施加到连接到所选择的字线的所有存储器单元,使得所有连接的存储器单元被同时编程。换言之,它们在同一时间或在重叠时间期间被编程(这两者都被认为是同时的)。以这种方式,连接到所选择的字线的所有存储器单元将同时改变它们的阈值电压,除非它们已经被编程锁定。
在步骤806中,使用一组适当的验证参考电压来执行一个或多个验证操作,以验证存储器单元。在实施例中,通过测试被选择用于编程的存储器单元的阈值电压是否已达到适当的验证参考电压来执行验证过程。
在步骤808中,存储器系统计数尚未达到它们相应的目标阈值电压分布的存储器单元的数目。换言之,系统计数到目前为止验证过程已经失败的存储器单元的数目。这个计数可以由状态机216(图2)、控制器104(图1)或者其他逻辑来完成。在其余的讨论中,术语“控制器设备”可以是以下中的一者或多者:图1的控制器104、图2的控制电路204、图2的状态机216或其他类似的控制器设备。
在实施例中,每个感测块212(图2)储存它们相应的存储器单元的状况(通过/失败)。在实施例中,一个总计数反映了当前正被编程但最后一个验证步骤失败的存储器单元的总数。在另一个实施例中,为每个数据状态保持单独的计数。
在步骤810中,确定来自步骤808的计数是否小于或等于预定限制。在实施例中,预定限制是在存储器单元的页的读取过程期间可以由错误校正码(ECC)校正的位数。如果失败的单元的数目小于或等于预定限制,则编程过程可以停止,并且在步骤812中报告状况为“通过”。在这种情况下,足够的存储器单元被正确编程,使得在读取过程期间可以使用ECC来校正未完全编程的其余的少量存储器单元。
在一些实施例中,在步骤810中使用的预定限制低于在读取过程期间可以由错误校正码(ECC)校正的位数,以允许未来/附加的错误。当对少于页的全部存储器单元进行编程时,或者比较仅一个数据状态(或者少于所有状态)的计数时,则预定限制可以是在存储器单元的页的读取过程期间可以由ECC校正的位数的一部分(按比例或者不按比例)。在一些实施例中,该限制不是预定的。代替地,该限制基于已经为该页计数的错误的数目、执行的编程-擦除循环的数目或其他标准而改变。
如果失败的存储器单元的数目不小于预定限制,则编程过程在步骤814处继续,并且对照编程限制值(PLV)检查编程计数器PC。编程限制值的示例包括6、12、16、20和30,尽管也可以使用其他值。如果编程计数器PC大于或等于编程限制值PLV,则认为编程过程失败,并在步骤816中报告状况为失败。
如果编程计数器PC不大于或等于编程限制值PLV,则该过程在步骤820处继续,其中编程计数器PC增量1,并且编程电压VP步进到下一个幅度。例如,下一个编程脉冲将具有比前一个脉冲大编程步长尺寸ΔVP(例如,在约0.1V至约1.0V之间的步长尺寸或一些其他值)的幅度。该过程循环回到步骤804,并且将另一编程脉冲施加到所选择的字线使得执行编程过程800的另一迭代(步骤804-818)。每次通过步骤804-818在本文中被称为“编程循环”。
一般而言,在验证操作和读取操作期间,所选择的字线连接到电压(参考信号的一个示例),该电压的电平针对每个读取操作指定(例如,图5的读取比较电平Vr1、Vr2、Vr3、Vr4、Vr5、Vr6和Vr7)或针对每个验证操作指定(例如,图5的验证目标电平Vv1、Vv2、Vv3、Vv4、Vv5、Vv6和Vv7)以确定所选择的存储器单元的阈值电压是否已经达到这样的电平。
在实施例中,在将适当的读取或验证电压施加到所选择的字线之后,测量存储器单元的传导电流,以确定存储器单元是否响应于施加到字线的电压而导通(传导电流)。如果传导电流被测量为大于某个值,则假设存储器单元导通,并且施加到字线的电压大于存储器单元的阈值电压。
如果传导电流被测量为不大于某个值,则存储器单元不导通,并且施加到字线的电压不大于存储器单元的阈值电压。在读取或验证过程期间,未选择的存储器单元在其控制栅极处被提供一个或多个读取通过电压(也称为旁路电压),使得这些存储器单元将作为通过栅极来操作(例如,传导电流,而不管它们是被编程还是被擦除)。
在读取或验证操作期间,存在许多方法来测量存储器单元的传导电流。在一个示例中,通过存储器单元对感测放大器中的专用电容器放电或充电的速率来测量存储器单元的传导电流。在另一示例中,所选择的存储器单元的传导电流允许(或不允许)包括该存储器单元的NAND串对对应的位线放电。一段时间后测量位线上的电压,以查看位线是否已经放电。注意到,本文描述的技术可以与本领域已知的用于验证/读取的不同方法一起使用。也可以使用本领域已知的其他读取和验证技术。
如上所述,在步骤804处,将编程脉冲施加到所选择的字线,并且在步骤806处,使用一组适当的验证参考电压来执行一个或多个验证操作,以验证耦接到所选择的字线的存储器单元。步骤804和806是迭代循环的部分,其中编程脉冲作为一系列幅度步进的编程脉冲施加,其中在连续编程脉冲之间插入验证参考脉冲。这种迭代循环在本文中被称为“编程验证迭代”。
图9图示了施加到所选择的字线的这样的编程验证脉冲的示例。特别地,图9描绘了在图8的步骤804的三次连续迭代期间施加到所选择的字线的编程脉冲900、902和904。在图8的步骤804-806的三次连续编程验证迭代期间,在编程脉冲900、902和904之间验证脉冲被施加到所选择的字线,来确定存储器单元的阈值电压是否大于相应的验证参考电压。
图9示出了编程脉冲900、902和904中的每一个之间的每个编程状态S1-S7的验证脉冲。这些验证脉冲消耗了编程操作的很大一部分。随着每个存储器单元储存的编程状态的数目增加,这种情况变得更糟,限制了编程速度。图9对应于每个单元储存3位并需要7个验证电平的存储器单元。在每个单元4位的实施例中,所有未擦除状态的验证在编程脉冲之间需要15个验证操作。
为了提高性能,可以在编程操作期间通过使用智能验证算法来省略一些验证操作,以减少编程时间。例如,字线WLn的智能验证操作的实施例对耦接到字线WLn的String0的存储器单元执行编程验证迭代。
在实施例中,该编程验证迭代确定将String0的存储器单元编程到特定编程状态(例如,图5或7E中的最低编程状态S1)所需的最小编程循环数(本文被称为“智能验证循环计数”)。确定智能验证循环计数的过程在本文也被称为“智能验证获取”,并且所确定的智能验证循环计数在本文也被称为获取的智能验证循环计数。
然后,使用获取的智能验证循环计数来确定用于对耦接到字线WLn的String1-String3的存储器单元进行编程的智能验证起始编程电压。特别地,用于耦接到字线WLn的String1-String3的存储器单元的智能验证起始编程电压VPSn是:
VPS=VPinit+SVloopn×ΔVPS (1)
其中SVloopn是字线WLn的获取的智能验证循环计数,而ΔVPS是智能验证的编程步长尺寸(例如,在约0.1V至约1.0V之间的步长尺寸或一些其他值)。换言之,确定的耦接到字线WLn的String1-String3的存储器单元的智能验证起始编程电压VPSn是初始编程电压VPinit加上获取的智能验证循环计数乘以智能验证的编程步长尺寸ΔVPS。在一些实施例中,智能验证的编程步长尺寸ΔVPS可以具有与编程步长尺寸ΔVP相同或不同的值。例如,在一个实施例中,智能验证的编程步长尺寸ΔVPS小于编程步长尺寸ΔVP
对于每个后续字线(例如,字线WLn+1、WLn+2、……)重复相同的过程,首先对耦接到字线的String0的存储器单元执行编程验证迭代,以获取那些存储器单元的智能验证循环计数,然后使用获取的智能验证循环计数来确定用于对耦接到字线的String1-String3的存储器单元进行编程的智能验证起始编程电压VPSn
因为相邻字线在物理上彼此靠近地位于存储器裸芯上,所以相邻字线上的存储器单元通常具有相似的编程特性。因此,可以通过以下来来实现附加的编程时间减少:对每k个字线中的1个执行智能验证操作,跳过对接下来k-1个连续字线的智能验证操作,并代替地使用针对一个字线获取的智能验证循环计数来确定用于对耦接到接下来k-1个连续字线的存储器单元进行编程的智能验证起始编程电压。这种技术在本文中被称为“WLk跳过智能验证”。
例如,如果k=4,则对每4个字线中的1个执行智能验证操作。换言之,对字线WL0、WL4、WL8、……执行智能验证操作,并且对字线WL1、WL2、WL3、WL5、WL6、WL7、WL9、WL10、WL11等跳过智能验证操作。
特别地,使用针对字线WL0获取的智能验证循环计数SVloop0来确定用于对耦接到字线WL0的String1-String3的存储器单元和耦接到字线WL1、WL2和WL3的String0-String3的存储器单元进行编程的智能验证起始编程编电压VPS0。类似地,使用针对字线WL4获取的智能验证循环计数SVloop4来确定用于对耦接到字线WL4的String1-String3的存储器单元和耦接到字线WL5、WL6和WL7的String0-String3的存储器单元进行编程的智能验证起始编程编电压VPS4。同样,使用针对字线WL8获取的智能验证循环计数SVloop8来确定用于对耦接到字线WL8的String1-String3的存储器单元和耦接到字线WL9、WL10和WL11的String0-String3的存储器单元进行编程的智能验证起始编程编电压VPS8,等等。
图10是描述用于使用WLk跳过智能验证算法来对存储器单元进行编程的过程1000的实施例的流程图。在示例实施例中,使用上述控制器装置对存储器裸芯106(图1)执行过程1000。例如,可以在状态机216(图2)的指导下执行过程1000。
从步骤1002开始,选择字线WLn进行编程,其中n是整数字线计数器(例如,n=0,1,2,……)。例如,如果字线计数器n=0,则选择字线WL0进行编程。
在步骤1004处,将跳过计数器j设置为等于字线计数器n,并且选择值k,其中k是从执行智能验证操作跳过的字线的整数数目(例如,k=2,3,4,……)。在上述示例中,如果字线计数器n=0,则跳过计数器j=0。如果k=4,则针对每四个字线将执行一次智能验证操作(例如,字线WL0、WL4、WL8、……)。在步骤1006处,将编程电压VP设置为初始值VPinit(例如,在约12V至约16V之间,或者一些其他值)。
在步骤1008处,对耦接到字线WLn的String0的存储器单元执行编程验证迭代。编程验证操作包括将编程电压VP施加到耦接到字线WLn的String0的存储器单元,并在针对一个或多个数据状态执行验证步骤时将验证信号(例如,电压波形)施加到那些存储器单元。例如,可以针对最低编程状态(例如,图5或7E中的编程状态S1)执行验证步骤。
在步骤1010处,基于步骤1008的验证测试的结果,确定是否已经获取了智能验证循环计数。在实施例中,如果耦接到字线WLn的String0的全部或几乎全部存储器单元已经达到目标阈值电压(例如,最低编程状态的验证电压),则智能验证获取完成。也可以使用其他目标阈值电压。
如果在步骤1010处确定耦接到字线WLn的String0的不是全部或几乎全部存储器单元已经达到目标阈值电压,则在步骤1012处,编程电压VP通过编程步长尺寸ΔVP步进到下一个幅度。例如,编程步长尺寸ΔVP可以在约0.1V至约1.0V之间,或者一些其他值。接下来,编程操作返回到步骤1008以执行下一步编程验证迭代。该步骤1008-1012的循环继续,直到在步骤1010处确定智能验证获取完成。
如果在步骤1010处确定智能验证获取完成(例如,耦接到字线WLn的String0的全部或几乎全部存储器单元已经达到目标阈值电压),则在步骤1014处,使用针对字线WLn获取的智能验证循环计数SVloopn来确定用于字线WLn的智能验证起始编程电压VPSj
在步骤1016处,以确定的智能验证起始编程电压VPSj开始对耦接到字线WLn的String1-String3的存储器单元进行编程。因此,例如,如果字线计数器n=0,跳过计数器j=0,则以确定的智能验证起始电压VPS0开始对耦接到字线WL0的String1-String3的存储器单元进行编程。
在步骤1018处,确定是否有任何附加的字线要被编程。如果在步骤1018处确定没有附加的字线要被编程,则在步骤1020处,过程1000完成。然而,如果在步骤1018处确定有附加的字线要被编程,则在步骤1022处字线计数器n增量1。继续前面的示例,字线计数器n=1。
在步骤1024处,确定字线计数器n和跳过计数器j之间的差值是否等于跳过值k。如果确定字线计数器n和跳过计数器j之间的差值不等于跳过值k,则在步骤1026处,以确定的智能验证起始电压VPSj开始来对耦接到字线WLn的String0-String3的存储器单元进行编程。因此,例如,如果字线计数器n=1,跳过计数器j=0,并且跳过值k=4,则以确定的智能验证起始电压VPS0开始来对耦接到字线WL1的String0-String3的存储器单元进行编程。
过程1000然后循环回到步骤1018,以确定是否要对任何附加的字线进行编程。如果有附加的字线要编程,则重复步骤1018-1026,直到差异(n-j)等于跳过值k。因此,继续上一示例,从确定的智能-验证起始电压VPS0开始,对耦接到字线WL2和WL3的String0-String3的存储器单元进行编程。由于避免了字线WL1、WL2和WL3的智能验证获取,因此减少了对耦接到字线WL1、WL2和WL3的存储器单元进行编程所需的时间。
如果在步骤1024确定字线计数器n和跳过计数器j之间的差等于跳过值k,则在步骤1028,编程电压VP被设置为确定的起始编程电压VPSj减去编程步长ΔVP,跳过计数器j设置为等于字线计数器n。过程1000然后循环回到步骤1008以对耦接到字线WLn的String0的存储器单元执行编程验证。
例如,如果字线计数器n=4,则编程电压VP设置为确定的起始电压VPS0减去编程步长ΔVP,跳过计数器j=4,并且在步骤1008,对耦接到字线WL4的String0的存储器单元执行编程验证。就此而言,耦接到字线WL4的String0的存储器单元的编程可以使用刚好低于所确定的智能-验证起始编程电压VPS0的编程电压VP开始。或者,在步骤1028,可将编程电压VP重置为初始值VPinit
包括步骤1008-1012的循环重复,直到在步骤1010确定智能-验证获取完成(例如,耦接到字线WL4的String0的全部或几乎全部存储器单元都已达到目标阈值电压),并且在步骤1014,所获取的字线WL4的智能-验证循环计数SVloop4用于确定字线WL4的智能-验证起始编程电压VPS4
过程1000以这种方式继续,直到在步骤1016没有更多的字线要被编程,对每k个字线中的1个执行智能-验证操作,并跳过对下k-1个连续字线的智能-验证操作。下表1描述了从字线WL0开始的十个连续字线的编程操作,其中k=4:
表1
Figure BDA0003129759480000231
在一些实施例中,特定字线可以是“特殊”字线,这些字线总是要进行编程验证操作,并且不包括在WLk跳过智能-验证算法中。例如,在某些实现方式中,字线WL0是一特殊的字线,不包括在跳过智能-验证过程中。相反,在这种实现方式中,跳过智能-验证过程从字线WL1开始。下表2描述了以字线WL0开始的十个连续字线的编程操作,其中k=4,其中WL0是一特殊字线:
表2
Figure BDA0003129759480000232
Figure BDA0003129759480000241
如上所述,存储器技术的重大进步源于存储器单元的物理尺寸的稳步减小,而存储器单元又可以更密集地封装在给定的裸芯区域上。然而,这样做可能会导致更多的制造缺陷,例如字线和其他部件之间的短路(例如相邻字线之间的短路、字线和互连件之间的短路、字线和基板之间的短路)以及断开的字线。
在许多情况下,这种制造缺陷在存储器系统被用于一个或多个程序擦除周期之前不会影响存储器系统的性能,并且可能只有在端用户开始编程和擦除这种存储器装置中的存储器单元之后才开始损坏数据。解决这种潜在制造缺陷的一种技术在本文中称为早期程序终止(EPT)。
具体而言,当存在缺陷条件时,实现EPT的控制器装置提前终止编程过程。控制器装置在编程过程中测试缺陷条件,而不是等到编程过程结束后才确定是否存在缺陷条件。如果识别出缺陷条件(在本文中称为“EPT状态失败”),则控制器装置在完成编程之前停止编程过程。控制器装置可以在“多平面编程”期间实现EPT的实施例,其中存储器结构被划分为多个平面,并且连接到相同字线的多个平面中的存储器单元可以被同时编程。
图11是描述存储器结构202(图2)的简化多平面组织的框图,存储器结构202(图2)被划分为位于相同存储器裸芯200(图2)上的第一平面11000和第二平面11001。第一平面11000包括八个字线WL00、WL10、WL20……WL70,第二平面11001包括八个字线WL01、WL11、WL21……WL71。在其它实施例中,第一平面11000和第二平面11001各自可以包括多于或少于八个字线。
开关S0、S1……S7可用于选择性地将在第一平面11000上的字线WL00、WL10……WL70耦接至第二平面11001上对应的字线WL01、WL21……WL71。在多平面编程中,开关S0闭合以耦接字线WL00和WL01,开关S1闭合以耦接字线WL10和WL11,开关S2闭合以选择性地耦接字线WL20和WL21,依此类推。
在所示的示例中,由于制造缺陷,在字线WL00和字线WL10之间存在第一字线到字线短路1104,在字线WL10和字线WL20之间存在第二字线到字线短路1106。在本例中,制造缺陷仅存在于第一平面11000中的字线上。在第二平面11001上不存在字线到字线短路。在其他情况下,制造缺陷可能仅存在于第二平面11001中,或者存在于第一平面11000和第二平面11001两者中。
在编程期间,一个或多个编程脉冲应用于字线WL00和WL01,一个或多个编程脉冲应用于字线WL10和WL11,一个或多个编程脉冲应用于字线WL20和WL21,依此类推。由于第一字线到字线短路1104和第二字线到字线短路1106,耦接到字线WL00的存储器单元的编程失败,因为字线WL00的电压被短路的字线WL10和WL20拉低。
特别地,字线WL00在达到最大程序循环数之前无法达到足够高的电压电平以成功地编程耦接到字线WL00的存储器单元(例如,图8中的步骤816=是)。第一字线到字线短路1104和第二字线到字线短路1106导致在试图编程耦接到字线WL10和WL20的存储器单元时发生相同的失败。
尽管在第二平面11001中不存在字线到字线短路,但是开关S0、S1……S7耦接在第一平面11000和第二平面11001上的相应字线。因此,由于WL00的电压被短接字线WL10和WL20拉低,耦接的字线WL01也不能在达到最大编程循环数之前达到足够高的电压电平以成功地编程耦接到字线WL01的存储器单元(例如,图8中的步骤816=是)。同样,在试图对耦接到字线WL11和WL21的存储器单元进行编程时会发生同样的失败。
这种现象有时被称为“相邻平面干扰”或“NPD”。在这种情况下,第一平面11000有时被称为“攻击块”,并且第二平面11001有时被称为“受害块”,因为第一平面11000上的字线缺陷干扰第二平面11001的耦接的字线的编程。EPT技术,如上述技术,可用于减轻NPD的影响。因此,EPT技术有时被称为“NPD对策”
图12A-12C描绘在第二平面11001的字线WL01、WL11和WL21上的编程状态S1-S7的示例阈值电压分布。特别地,每个图中的实曲线描绘在双平面模式下编程第一平面11000和第二平面11001时的示例阈值电压分布,在第一平面上有短路的字线WL10和WL20。每个图中的虚曲线描绘了在单平面模式下编程第二平面11001时的示例阈值电压分布(即,没有在第一平面11000上的短路的字线WL10和WL20的影响)。
在图12A-12C示出的示例中,尽管被第一平面11000上的短路的字线WL10和WL20拉底,但在两个平面模式下的字线WL01、WL11和WL21中的每一个的电压都足够高,以在达到最大编程循环数之前编程较低的编程状态S1-S4。相反,在双平面模式下,字线WL01、WL11和WL21中的每个字线的下拉电压太低,在达到最大编程循环数之前,无法正确地编程较高的编程状态S5-S7。结果,耦接到字线WL01、WL11和WL21的存储器单元的双平面模式编程失败。
如上所述,控制器装置可以在多平面编程模式(这里称为“启用EPT”)中实现EPT的实施例,例如上面描述的和图11和12A-12C中所示的双平面编程过程。在示例性实施例中,控制器装置确定完成两个平面的特定编程状态(例如,编程状态S1或其他编程状态)的编程所需的编程循环的数目之间的差。如果所确定的差异超过预定量(例如,4个循环),则控制器装置确定发生了EPT状态失败并且在较慢的平面上存在缺陷。然后,控制器终止较慢平面的编程,并以单平面编程模式继续编程较快平面上的剩余编程状态(例如,编程状态S2-S7)。
图13A-13C描绘启用EPT的情况下的第二平面11001的字线WL01、WL11和WL21上编程状态S1-S7的示例阈值电压分布。具体地,在确定第一平面11000和第二平面11001之间用于编程状态S1的编程循环的数目的差超过特定量之后,控制器装置确定发生了EPT状态失败,终止第一平面11000的编程,并且以单平面编程模式继续编程第二平面11001上的剩余编程状态S2-S7。
每个图中的实曲线描绘了当编程第一平面11000和第二平面11001以双平面模式开始,但当控制器装置检测到EPT状态失败时切换到单平面模式时的阈值电压分布示例。每个图中的虚曲线描绘了当仅在单平面模式下编程第二平面11001时的示例阈值电压分布。如可在图13A-13C中所见,阈值电压分布在两种不同的情况下几乎不可区分,并且EPT导致耦接到第二平面11001的字线WL01、WL11和WL21的存储器单元的成功编程。
尽管如上所述的EPT技术可以减轻NPD对第二平面11001的字线WL01、WL11和WL21上的更高编程状态S5-S7的影响,但单独的EPT技术并不能减轻由字线缺陷引起的问题的影响,例如第一平面11000上的短路的字线WL10和WL20,当控制器装置使用WLk跳过智能-验证算法来减少编程时间时,就会发生这种情况。
特别地,当根据上述表1的示例使用k=4的WLk跳过智能-验证算法时,针对最低编程状态(例如,编程状态S1),对耦接到第一平面11000的字线WL00的String0(或第二平面11001的字线WL01)上的存储器单元执行编程验证迭代,以获取智能-验证循环计数SVloop0,其然后用于确定智能-验证起始编程电压VPS0。如果控制器装置检测到由第一平面11000上的短路的字线WL10和WL20引起的EPT状态失败,则控制器装置终止第一平面11000的编程,并以单平面编程模式继续编程第二平面11001
特别地,控制器装置从确定的智能-验证起始编程电压VPS0开始在第二平面11001上编程耦接到字线WL01的String1-String3的存储器单元和耦接到字线WL11-WL31的String0-String3的存储器单元。然而,确定的智能-验证起始编程电压VPS0可导致在第二平面11001上耦接到字线WL01的String1-String3的存储器单元和耦接到字线WL11-WL31的String0-String3的存储器单元的较低编程状态(例如,编程状态S1和S2)的过编程。
特别地,上述WLk跳过智能-验证算法基于在控制器检测到EPT状态失败之前对耦接到字线WL00的String0的存储器单元执行的编程验证迭代来确定智能-验证起始编程电压VPS0。由于短路的字线WL10和WL20拉低字线WL00的电压,因此需要更高的编程循环计数和更高的编程电压VP来对耦接到字线WL00的String0的存储器单元进行编程以获得编程状态S1。因此,确定的智能-验证起始编程电压VPS0高于没有字线到字线短路时的电压。
当控制器装置检测EPT状态失败并切换到单平面模式,并且继续编程第二平面11001上的耦接到字线WL01的String1-String3的存储器单元和耦接到字线WL11-WL31的String0-String3的存储器单元,编程开始于高于通常确定的智能-验证开始编程电压VPS0以编程这些存储器单元(见表1,上)。因此,确定的智能-验证开始编程电压VPS0可能导致第二平面11001上的耦接到字线WL01的String1-String3的存储器单元和耦接到字线WL11-WL31的String0-String3的存储器单元的较低编程状态(例如,编程状态S1-S3)的过编程。
例如,图14A图示了第二平面11001的字线WL11上的编程状态S1-S7的示例性阈值电压分布。特别地,实曲线绘示了当控制器装置使用根据表1的示例的WLk跳过智能-验证算法且EPT启用(其中k=4)时得到的示例性阈值电压分布。虚线曲线绘示了当以单平面模式编程第二平面11001(即,没有第一平面11000的短路字线WL10和WL20的影响)时的示例性阈值电压分布。如图14A中可见,高于通常确定的智能-验证开始编程电压VP0导致过编程较低编程状态S1-S3。
描述了实现WLk跳过智能-验证算法的技术,其防止或降低由于NPD造成的这样的较低编程状态的过编程。特别地,描述了修改的WLk跳过智能-验证算法,其与EPT功能组合以避免NPD对策的数据丢失。
图15是描述用于使用WLk跳过智能-验证算法编程多个平面上的存储器单元的过程1500的实施例的流程图。在示例性实施例中,使用上述控制器装置在存储器裸芯106(图1)上进行过程1500。例如,过程1500可以在状态机216(图2)指导下进行。为了简明,以下描述了用于以两平面模式同时地编程图11的第一平面11000和第二平面11001的实施例。
开始在步骤1502,选择字线WLn以编程,其中n是整数字线计数器(例如,n=0,1,2,…)。例如,如果字线计数器n=0,选择第一平面的字线WL00和第二平面11001的字线WL01以编程。
在步骤1504,跳过计数器j被设定为等于字线计数器n,并且选择值k,其中k是被跳过执行智能-验证操作的字线的整数(例如,k=2,3,4,…)。在以上示例中,如果字线计数器n=0,则跳过计数器j=0。如果k=4,则智能-验证操作将每四个字线执行一次(例如,字线WL0,WL4,WL8,…)。在步骤1506,编程电压VP被设定为初始值VPinit(例如,在约12V至约16V之间,或一些其他值)。
在步骤1508,在耦接到字线WLn的第一组存储器单元(例如,String0的存储器单元)上执行编程-验证迭代。编程-验证操作包含将编程电压VP应用于耦接到字线WLn的第一组存储器单元,并且将验证信号(例如,电压波形)应用于所述存储器单元,同时对一个或多个数据状态执行验证步骤。例如,可以对最低编程状态(例如,图5或7E中的编程状态S1)执行验证步骤。
在步骤1510,基于步骤1508的验证测试的结果,确定是否已经取得智能-验证循环计数。在实施例中,如果耦接到字线WLn的第一组存储器单元的全部或接近全部已经达到目标阈值电压(例如,最低编程状态的验证电压),则智能-验证取得完成。还可以使用其他目标阈值电压。
如果在步骤1510确定不是耦接到字线WLn的第一组存储器单元的全部或接近全部已经达到目标阈值电压,则在步骤1512,编程电压VP以编程步长△VP.步进到下一强度。例如,编程步长△VP.可以在约0.1V至约1.0V之间,或一些其他值。接下来,编程操作返回到步骤1508,以执行下一编程-验证迭代。步骤1508-1512的该循环继续,直到在步骤1510确定智能-验证取得完成。
如果在步骤1510确定智能-验证取得完成(例如,耦接到字线WLn的第一组存储器单元的全部或接近全部已经达到目标阈值电压),在步骤1514,确定是否已经发生EPT状态失败。
例如,如上所述,如果控制器装置确定两个平面的完成特定编程状态(例如,编程状态S1或其他编程状态)的编程需要的编程循环的数目之间的差异超出特定量(例如,4循环),控制器装置确定EPT状态失败已经发生且缺陷存在于较慢平面(例如,图11的第一平面11000)。
如果在步骤1514确定EPT状态失败已经发生,则在步骤1516,较慢平面的编程终止并切换到较快平面上的单平面编程(例如,图11的第二平面11001)。附加地,编程电压VP被重置到初始值VPinit
在步骤1518,在耦接到字线WLn的第二组存储器单元(例如,String1的存储器单元)上执行编程-验证迭代。编程-验证操作包含将编程电压VP应用于耦接到字线WLn的第二组存储器单元,并且将验证信号(例如,电压波形)应用于所述存储器单元,同时执行一个或多个数据状态的验证步骤。例如,可以对最低编程状态(例如,图5或7E中的编程状态S1)执行验证步骤。
在步骤1520,基于步骤1518的验证测试的结果,确定智能-验证取得是否完成。例如,如果耦接到字线WLn的第二组存储器单元的全部或接近全部已经达到目标阈值电压(例如,最低编程状态的验证电压),则智能-验证取得可以完成。还可以使用其他目标阈值电压。
如果在步骤1520确定智能-验证取得未完成(例如,不是耦接到字线WLn的第二组存储器单元的全部或接近全部已经达到目标阈值电压),则在步骤1522编程电压VP以编程步长△VP.步进到下一强度。例如,编程步长△VP.可以在约0.1V至约1.0V之间,或一些其他值。接下来,编程操作返回到步骤1518以执行下一编程-验证迭代。步骤1518-1522的该循环继续,直到确定在步骤1520完成智能-验证取得。
如果在步骤1520确定完成智能-验证取得(例如,耦接到字线WLn的第二组存储器单元的全部或接近全部已经达到目标阈值电压),则在步骤1524,取得的字线WLn的智能-验证循环计数SVloopn被用于确定智能-验证开始编程电压VPSj。例如,VPS0是字线WL0的确定的智能-验证开始编程电压。在该实例中,确定的智能-验证开始编程电压VPSj是基于在耦接到字线WLn的第二组存储器单元上执行的编程-验证迭代。
参考回到步骤1514,如果确定EPT状态失败尚未发生,则在步骤1524,取得的字线WLn的智能-验证循环计数SVloopn被用于确定智能-验证开始编程电压VPSj。即,如果EPT状态失败尚未发生,则确定的智能-验证开始编程电压VPSj是仅基于在耦接到字线WLn的第一组存储器单元上执行的编程-验证迭代。
在步骤1526,以确定的智能-验证开始编程电压VPSj开始编程耦接到字线WLn的String1-String3的存储器单元。因此,例如,如果字线计数器n=0,跳过计数器j=0,则耦接到字线WL0的String1-String3的存储器单元被以确定的智能-验证开始编程电压VPS0开始编程。
如果在步骤1514尚未检测到EPT状态失败,则步骤1526的编程操作为两平面编程(例如,图11的第一平面11000和第二平面11001)。如果在步骤1514已经检测到EPT状态失败,则步骤1526的编程操作是较快平面(例如,图11的第二平面11001)的单平面编程。
在步骤1528,确定是否有任何附加的字线要编程。如果在步骤1528确定没有附加的字线要编程,则在步骤1530,过程1500完成。然而,如果在步骤1528确定附加的字线要编程,则在步骤1532,字线计数器n递增1。因此继续前面的示例,字线计数器n=1。附加地,如果编程已经在步骤1516切换到单平面模式,则在步骤1532编程可以可选地返回两平面模式。
在步骤1534,确定字线计数器n与跳过计数器j之间的差异是否等于跳过值k。如果确定字线计数器n与跳过计数器j之间的差异不等于跳过值k,则在步骤1536,耦接到字线WLn的String0-String3的存储器单元被使用确定的智能-验证开始编程电压VPSj编程。
例如,如果字线计数器n=1,跳过计数器j=0,且跳过值k=4,则差异(n-j)不等于跳过值k。相应地,在步骤1536,耦接到字线WL1的String0-String3的存储器单元被以确定的智能-验证开始编程电压VPS0开始编程。过程1500然后循环返回到步骤1528,以确定是否有任何附加的字线要编程。如果存在要编程的附加的字线,则步骤1528-1536重复,直到差异(n-j)等于跳过值k。从而,继续之前的示例,耦接到字线WL2和WL3的String0-String3的存储器单元被以确定的智能-验证开始编程电压VPS0开始编程。
如果在步骤1534确定字线计数器n与跳过计数器j之间的差异等于跳过值k,则在步骤1538,编程电压VP被设定为确定的智能-验证开始编程电压VPSj减去编程步长△VP,并且跳过计数器j被设定为等于字线计数器n。过程1500然后循环返回到步骤1508,以在耦接到字线WLn的String0的存储器单元上执行编程-验证。
例如,如果字线计数器n=4,编程电压VP被设定为确定的智能-验证开始编程电压VPS0减去编程步长△VP,跳过计数器j=4,且在步骤1508在耦接到字线WL4的String0的存储器单元上执行编程-验证。就此而言,耦接到字线WL4的String0的存储器单元的编程可以使用恰在确定的智能-验证开始编程电压VPS0以下的编程电压VP开始。替代地,在步骤1538,编程电压VP可以被重置到初始值VPinit
过程1500以此方式继续,直到在步骤1528没有更多字线要编程。就此而言,过程1500对每k字线执行1个智能-验证操作,并且在下k-1个连续字线上跳过智能-验证操作。附加地,过程1500监测EPT状态失败。仅如果EPT状态失败尚未发生,过程1500基于在耦接到字线WLn的String0的存储器单元上执行的编程-验证迭代确定智能-验证开始编程电压VPSj。然而,如果EPT状态失败已经发生,则过程1500重新取得智能-验证循环计数SVloopn并基于在耦接到字线WLn的String1的存储器单元上执行的编程-验证迭代确定智能-验证开始编程电压VPSj
图14B绘示了在根据图15的示例性过程1500的编程之后的第二平面11001的字线WL11上的编程状态S1-S7的示例性阈值电压分布。特别地,在确定EPT状态失败已经发生(作为图11的第一平面11001上的短路字线WL10和WL20的结果)之后,过程1500重新取得智能-验证循环计数SVloop0且基于在耦接到字线WL0的String1的存储器单元上执行的编程-验证迭代确定开始智能-验证编程电压VPS0,并且使用确定的智能-验证开始编程电压VPS0以单平面模式编程耦接到字线WL1的String0-String3的存储器单元。比较图14A和图14B,示例性WLk跳过智能-验证过程1500消除或实质上降低较低编程状态S1-S3的过编程。
就本文档而言,本说明书对“实施例”、“一个实施例”、“一些实施例”或“另一实施例”的参考可以用于描述不同的实施例或相同的实施例。
就本文档而言,连接可以是直接连接或间接连接(例如,通过一个或多个其他部分)。在某些情况下,当元件被称为被连接或耦接到另一个元件时,元件可以直接连接到另一个元件,也可以通过中间元件间接连接到另一个元件。当一个元件被称为直接连接到另一个元件时,则该元件和另一个元件之间没有中间元件。如果直接或间接连接,则两个设备“处于通信”,使得它们可以在它们之间传输电子信号。
出于本文档的目的,术语“基于”可以被理解为“至少部分基于”。
出于本文档的目的,在没有附加上下文的情况下,诸如“第一”对象、“第二”对象和“第三”对象之类的数字术语的使用可能并不暗示对象的排序,而是可以改为使用用于识别目的来识别不同的对象。
出于本文档的目的,术语对象的“组”可以指一个或多个对象的“组”。
已经出于说明和描述的目的呈现了上述详细描述。并不旨在穷举或限制所公开的精确形式。根据上述教导,许多修改和变化是可能的。描述的实施例选择是为了最好地解释所提议的技术及其实际应用的原理,从而使本领域的其他技术人员能够在各种示例实施例中最好地利用它,并进行各种修改以适合预期的特定用途。旨在由所附权利要求限定范围。

Claims (20)

1.一种设备,包括:
多个非易失性存储器单元;以及
耦接到所述非易失性存储单元的控制电路,所述控制电路配置为:
对耦接到第一字线的第一组非易失性存储器单元执行第一编程-验证迭代,以确定将所述第一组非易失性存储器单元编程到第一编程状态的第一起始编程电压;并且
仅当不存在缺陷条件时才以所述第一起始编程电压开始编程耦接到所述第一字线的第二组非易失性存储器单元。
2.根据权利要求1所述的设备,其中所述控制电路还配置为确定是否存在所述缺陷条件。
3.根据权利要求1所述的设备,其中所述控制电路还配置为,如果存在所述缺陷条件,则在完成编程所述非易失性存储器单元之前终止编程所述非易失性存储器单元。
4.根据权利要求1所述的设备,其中所述控制电路还配置为:
编程所述非易失性存储器单元的第一平面和第二平面;以及
如果编程所述第一平面比编程所述第二平面更慢第一量,则确定存在所述缺陷条件。
5.根据权利要求4所述的设备,其中所述第一量是编程过程的预定迭代次数。
6.根据权利要求4所述的设备,其中所述控制电路还配置为,在确定存在所述缺陷条件之后,在完成编程所述第一平面之前终止编程所述第一平面。
7.根据权利要求4所述的设备,其中所述控制电路还配置为,在确定存在所述缺陷条件之后继续编程所述第二平面。
8.根据权利要求1所述的设备,其中所述控制电路还被配置为,仅当不存在所述缺陷条件时才以所述第一起始编程电压开始编程耦接到第二字线的第三组非易失性存储器单元。
9.根据权利要求1所述的设备,其中所述控制电路还配置为:
对耦接到所述第一字线的第三组非易失性存储器单元执行第二编程-验证迭代,以确定将所述第三组非易失性存储器单元编程到所述第一编程状态的第二起始编程电压;以及
如果存在所述缺陷条件,则以所述第二起始编程电压开始编程耦接到所述第一字线的所述第二组非易失性存储器单元。
10.根据权利要求9所述的设备,其中所述控制电路还配置为,如果存在所述缺陷条件,则以所述第二起始编程电压开始编程耦接到第二字线的第四组非易失性存储器单元。
11.根据权利要求9所述的设备,其中所述控制电路还配置为:
编程所述非易失性存储器单元的第一平面和第二平面;
如果编程所述第一平面比编程所述第二平面更慢第一量,则确定存在所述缺陷条件;
在确定存在所述缺陷条件后,在完成编程所述第一平面之前终止编程所述第一平面;以及
在以所述第二起始编程电压开始编程耦接到所述第一字线的所述第二组非易失性存储器单元之后,恢复编程所述第一平面和所述第二平面。
12.根据权利要求1所述的设备,其中以三维结构布置所述多个非易失性存储器单元。
13.一种设备,包括:
多个非易失性存储器单元;以及
耦接到所述非易失性存储器单元的控制电路,所述控制电路配置为:
编程和验证耦接到第一平面和第二平面上的第一字线的第一组存储器单元,以确定将所述第一组存储器单元编程到特定编程状态所需的第一起始编程电压;
确定编程所述第一平面比编程所述第二平面更慢预定量;
编程和验证耦接到所述第二平面上的所述第一字线的第二组存储器单元,以确定将所述第二组存储器单元编程到所述特定编程状态所需的第二起始编程电压;
终止编程耦接到所述第一平面上的所述第一字线的存储器单元;以及
以所述第二起始编程电压开始编程耦接到所述第二平面上的所述第一字线的第三组存储器单元。
14.根据权利要求13所述的设备,其中在所述第一平面上的所述第一字线上的缺陷使编程所述第一平面比编程所述第二平面更慢预定量。
15.根据权利要求13所述的设备,其中所述第一平面上的所述第二字线与所述第一字线之间的短路使编程所述第一平面比编程所述第二平面更慢所述预定量。
16.根据权利要求13所述的设备,其中所述控制器在完成编程所述第一平面之前终止编程所述第一平面。
17.根据权利要求13所述的设备,其中所述控制器还配置为,以所述第二起始编程电压开始编程耦接到所述第一平面和所述第二平面上的第二字线的第四组存储器单元。
18.根据权利要求13所述的设备,其中以三维结构布置所述多个非易失性存储器单元。
19.一种方法,包括:
同时编程耦接到第一平面和第二平面上的第一字线的非易失性存储器单元;
确定编程所述第一平面比编程所述第二平面更慢预定量;
终止编程耦接到所述第一平面上的所述第一字线的所述非易失性存储器单元;以及
对耦接到所述第二平面上的所述第一字线的第一组非易失性存储器单元执行编程-验证迭代,以确定将所述第一组非易失性存储器单元编程到第一编程状态的起始编程电压。
20.根据权利要求19所述的方法,进一步包括:以所确定的起始编程电压开始同时编程耦接至所述第一平面和所述第二平面上的第二字线的第二组非易失性存储器单元。
CN202110699678.3A 2021-06-23 2021-06-23 用于具有相邻平面干扰检测的智能验证的设备和方法 Pending CN115512747A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110699678.3A CN115512747A (zh) 2021-06-23 2021-06-23 用于具有相邻平面干扰检测的智能验证的设备和方法
US17/360,184 US11538538B1 (en) 2021-06-23 2021-06-28 Apparatus and methods for smart verify with neighbor plane disturb detection

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110699678.3A CN115512747A (zh) 2021-06-23 2021-06-23 用于具有相邻平面干扰检测的智能验证的设备和方法

Publications (1)

Publication Number Publication Date
CN115512747A true CN115512747A (zh) 2022-12-23

Family

ID=84499480

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110699678.3A Pending CN115512747A (zh) 2021-06-23 2021-06-23 用于具有相邻平面干扰检测的智能验证的设备和方法

Country Status (2)

Country Link
US (1) US11538538B1 (zh)
CN (1) CN115512747A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11862256B2 (en) * 2022-02-22 2024-01-02 Sandisk Technologies Llc Non-volatile memory with plane independent screening

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7073103B2 (en) 2002-12-05 2006-07-04 Sandisk Corporation Smart verify for multi-state memories
US7366022B2 (en) 2005-10-27 2008-04-29 Sandisk Corporation Apparatus for programming of multi-state non-volatile memory using smart verify
US7301817B2 (en) 2005-10-27 2007-11-27 Sandisk Corporation Method for programming of multi-state non-volatile memory using smart verify
US7564711B2 (en) 2007-02-20 2009-07-21 Sandisk Corporation Multiple pass write sequence for non-volatile storage
US7688638B2 (en) 2007-12-07 2010-03-30 Sandisk Corporation Faster programming of multi-level non-volatile storage through reduced verify operations
US8174895B2 (en) 2009-12-15 2012-05-08 Sandisk Technologies Inc. Programming non-volatile storage with fast bit detection and verify skip
US8379454B2 (en) 2011-05-05 2013-02-19 Sandisk Technologies Inc. Detection of broken word-lines in memory arrays
US9142298B2 (en) 2013-02-11 2015-09-22 Sandisk Technologies Inc. Efficient smart verify method for programming 3D non-volatile memory
US9570160B1 (en) * 2015-10-29 2017-02-14 Sandisk Technologies Llc Non-volatile storage system with defect detetction and early programming termination
US9564226B1 (en) 2015-10-30 2017-02-07 Sandisk Technologies Llc Smart verify for programming non-volatile memory
US10014063B2 (en) 2015-10-30 2018-07-03 Sandisk Technologies Llc Smart skip verify mode for programming a memory device
US10141064B1 (en) 2017-05-03 2018-11-27 Sandisk Technologies Llc Prevention of neighboring plane disturb in non-volatile memory
US10249382B2 (en) 2017-08-22 2019-04-02 Sandisk Technologies Llc Determination of fast to program word lines in non-volatile memory
US10224107B1 (en) * 2017-09-29 2019-03-05 Intel Corporation Method and apparatus for dynamically determining start program voltages for a memory device
US10529435B2 (en) 2018-01-05 2020-01-07 Sandisk Technologies Llc Fast detection of defective memory block to prevent neighbor plane disturb
US10541038B2 (en) 2018-06-12 2020-01-21 Sandisk Technologies Llc Subgroup selection for verification
US10910075B2 (en) 2018-11-13 2021-02-02 Sandisk Technologies Llc Programming process combining adaptive verify with normal and slow programming speeds in a memory device
US10811109B2 (en) 2018-12-27 2020-10-20 Sandisk Technologies Llc Multi-pass programming process for memory device which omits verify test in first program pass
US10770165B1 (en) 2019-09-16 2020-09-08 Sandisk Technologies Llc No-verify programming followed by short circuit test in memory device
US10971240B1 (en) 2019-12-24 2021-04-06 Sandisk Technologies Llc Wordline smart tracking verify
US11049578B1 (en) 2020-02-19 2021-06-29 Sandisk Technologies Llc Non-volatile memory with program verify skip

Also Published As

Publication number Publication date
US20220415421A1 (en) 2022-12-29
US11538538B1 (en) 2022-12-27

Similar Documents

Publication Publication Date Title
CN111386571B (zh) 具有多平面混合子块编程的非易失性存储器
CN109427396B (zh) 在非易失性存储器中确定快速编程字线
US10580504B2 (en) Non-volatile memory with countermeasure for program disturb including spike during boosting
US10553298B1 (en) Non-volatile memory with countermeasure for select gate disturb
US9704588B1 (en) Apparatus and method for preconditioning currents to reduce errors in sensing for non-volatile memory
US9570160B1 (en) Non-volatile storage system with defect detetction and early programming termination
US11049578B1 (en) Non-volatile memory with program verify skip
US10346266B2 (en) Non-volatile storage system that reclaims bad blocks
US10839928B1 (en) Non-volatile memory with countermeasure for over programming
US11081198B2 (en) Non-volatile memory with countermeasure for over programming
US10872671B1 (en) Dynamic read voltages in non-volatile memory
WO2021096555A1 (en) Adaptive vpass for 3d flash memory with pair string structure
US11538538B1 (en) Apparatus and methods for smart verify with neighbor plane disturb detection
US11915769B2 (en) Non-volatile memory with isolation latch shared between data latch groups
US11798625B2 (en) Program dependent biasing of unselected sub-blocks
US20220383965A1 (en) Non-volatile memory with fast multi-level program verify
US20240038315A1 (en) Early detection of programming failure for non-volatile memory
US11942157B2 (en) Variable bit line bias for nonvolatile memory
US20240029804A1 (en) Adaptive fail bits threshold number for erasing non-volatile memory
US11482292B1 (en) Non-volatile storage with processive writes
US20210319833A1 (en) Apparatus and methods for quarter bit line sensing
US20240071533A1 (en) Adaptive gidl voltage for erasing non-volatile memory
CN115497547A (zh) 用于非易失性存储器的字线分区自适应初始编程电压

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination