掌桥专利:专业的专利平台
掌桥专利
首页

循环期间的编程电压调制

文献发布时间:2023-06-19 12:16:29


循环期间的编程电压调制

背景技术

便携式消费电子器件需求的增长推动了对高容量存储设备的需求。非易失性半导体存储器设备,诸如闪存存储卡,已广泛用于满足对数字信息存储和交换的日益增长的需求。它们的便携性、多功能性和坚固耐用的设计以及它们的高可靠性和大容量,使得此类存储器设备理想地用于多种电子设备中,包括例如数字相机、数字音乐播放器、视频游戏控制器、PDA、蜂窝电话和固态驱动器(SSD)。

半导体存储器设备可包括非易失性存储器或易失性存储器。即使当非易失性存储器未连接至电源(例如,电池)时,非易失性存储器也允许存储和保留信息。非易失性存储器的示例包括闪存(例如,NAND型闪存和NOR型闪存)和电可擦除可编程只读存储器(EEPROM)。闪存和EEPROM通常都使用浮栅晶体管。对于每个浮栅晶体管,浮栅位于浮栅晶体管的沟道区上方并与之绝缘。沟道区位于浮栅晶体管的源极区和漏极区之间。控制栅位于浮栅上方并与浮栅绝缘。浮栅晶体管的阈值电压可以通过设置存储在浮栅上的电荷量来控制。浮栅上的电荷量通常使用福勒-诺德海姆(F-N)隧穿或热电子注入来控制。调节阈值电压的能力允许浮栅晶体管能够充当非易失性存储元件或存储器单元。在一些情况下,通过编程和读取多个阈值电压或阈值电压范围,可以提供每个存储器单元(即,多电平或多态存储器单元)一个以上的数据位。

附图说明

类似编号的元件是指不同的图中的共同部件。

图1是描绘存储器系统的一个实施方案的框图。

图2是存储器管芯的一个实施方案的框图。

图3是单片三维存储器结构的一个实施方案的一部分的透视图。

图4A是具有两个平面的存储器结构的框图。

图4B描绘了存储器单元的块的一部分的顶视图。

图4C描绘了存储器单元的块的一部分的剖视图。

图4D描绘了选择栅极层和字线层的视图。

图4E是存储器单元的竖直列的剖视图。

图4F是多个NAND串的示意图,示出了多个子块。

图5描绘了阈值电压分布。

图6A是描述将数据值分配给数据状态的一个示例的表。

图6B描绘了在编程操作期间施加到所选择的字线的一系列编程和验证脉冲的一个实施方案。

图6C是描述由存储器管芯执行的用于编程的过程的一个实施方案的流程图。

图7A描绘了用于特定数据状态的阈值电压分布的一个实施方案。

图7B描绘了用于图7A中描绘的特定数据状态的阈值电压分布以及用于识别对应于两个阈值电压区域的两个位计数的读取电压的一个实施方案。

图7C描绘了用于图7A中描绘的特定数据状态的阈值电压分布以及用于识别对应于两个阈值电压区域的两个位计数的读取电压的一个实施方案。

图7D描绘了用于基于位计数比来计算对编程电压的调整的表的一个实施方案。

图7E描绘了用于图7C中描绘的特定数据状态的阈值电压分布以及用于识别对应于两个阈值电压区域的两个位计数的读取电压的一个实施方案。

图7F描绘了用于图7C中描绘的特定数据状态的阈值电压分布以及用于识别对应于三个阈值电压区域(区域-1、区域-2和区域-3)的三个位计数的读取电压的一个实施方案。

图7G描绘了用于基于位计数比和一组存储器单元或存储器块经历的写入/擦除循环数来计算编程电压调整的表的一个实施方案。

图7H描绘了用于基于位计数比来计算编程电压调整间隔(或WE间隔)的表的一个实施方案。

图8A是描述用于对存储器块内的存储器单元进行编程的过程的一个实施方案的流程图。

图8B是描述用于对存储器块内的存储器单元进行编程的过程的另一个实施方案的流程图。

图8C是描述用于对存储器块内的存储器单元进行编程的过程的另选实施方案的流程图。

具体实施方式

描述了技术,该技术通过随着编程/擦除循环数增加而随时间推移调制施加到非易失性存储器单元的编程电压来增加循环耐久性并且使非易失性存储器单元的过编程最小化。非易失性存储器单元可对应于浮栅晶体管或电荷捕集晶体管。非易失性存储器单元可为包括一个或多个NAND串的存储器块的一部分。在一些情况下,基于两个阈值电压区域内的位计数的位计数比可用于确定在后续编程操作期间施加的编程电压中的电压减小量。两个阈值电压区域内的位计数可使用两个或更多个验证电平(例如,对应于B状态的特定阈值电压分布的上尾部处的两个验证电平)来确定。第一位计数可对应于特定阈值电压分布内的存储器单元数目,其中阈值电压介于第一验证电平(例如1.7V)和大于第一验证电平的第二验证电平(例如1.9V)之间。第二位计数可对应于特定阈值电压分布内的存储器单元数目,其中阈值电压大于第二验证电平。位计数比可包括第二位计数除以第一位计数与第二位计数之和。在一个示例中,如果位计数比介于0.02和0.05之间,则编程电压的减小可为100mV;如果位计数比介于0.05和0.10之间,则编程电压的减小可为200mV。

在一些实施方案中,可根据用于存储器块的编程/擦除循环总数和/或位计数比,以变化的循环间隔来执行编程电压的调制(例如,减小)。例如,如果存储器块经历的编程/擦除循环数介于50K个和100K个循环之间并且位计数比小于0.02,则用于编程电压调制的循环间隔可设置为10K个循环;然而,如果存储器块经历的编程/擦除循环数大于100K个循环或者位计数比大于0.1,则用于编程电压调制的循环间隔可设置为5K个循环。调制编程电压的频率或分辨率可随着编程/擦除循环数的增加而增加。例如,如果存储器块经历的编程/擦除循环数小于100K个循环,则更新频率可对应于10K个编程/擦除循环;然而,如果存储器块经历的编程/擦除循环数大于100K个循环,则更新频率可对应于5K个编程/擦除循环。

实现大数量的耐久性循环(例如,超过500K个编程/擦除循环)的一个技术问题是应力引起的存储器单元过编程可能导致存储器单元阈值电压分布的增加或加宽以及位错误数量的增加。存储器单元阈值电压分布的加宽可能减小读取电压裕度并且需要更高的读取电压,以便在读取操作期间打开NAND串沟道。随着编程/擦除循环数的增加而随时间推移自适应地减小施加到非易失性存储器单元的编程电压的一个有益效果是,可使存储器单元过编程最小化,这可能在较大数量的耐久性循环下维持较低读取电压裕度。此外,使用较低读取电压的能力可导致读取操作期间功耗降低。

在一些实施方案中,可根据针对多个数据状态的阈值电压分布的位计数比单独地调整用于编程多个数据状态的多个编程电压。在一个示例中,可计算以1.5V的阈值电压为中心的B状态的位计数比,具体方式是:确定阈值电压介于1.6V和1.65V之间的第一存储器单元数目,确定阈值电压介于1.65V和1.7V之间的第二存储器单元数目,并且将B状态分布的位计数比计算为第二数目除以第一数目与第二数目之和。在一些情况下,如果位计数比超过阈值比(例如,超过0.20),则可增大用于确定位计数比的验证电压电平(例如,增大100mV)。在验证电压电平增大之后,第一存储器单元数目可对应于阈值电压介于1.7V和1.75V之间的存储器单元,并且第二存储器单元数目可对应于阈值电压介于1.75V和1.8V之间的存储器单元。

在一些实施方案中,如果位计数比超过阈值比(例如,超过0.25),则可朝向阈值电压分布的上尾部创建新的阈值电压区域,并且可基于该新的阈值电压区域内的位数来计算新的位计数比。如果新的位计数比超过阈值比,则可增大调整编程电压的频率。例如,如果新的位计数比超过0.20,则可将更新编程电压之间的循环数从每10K个编程/擦除循环减小到每5K个编程/擦除循环。

在一个实施方案中,非易失性存储系统可以包括一个或多个二维非易失性存储器单元阵列。二维存储器阵列内的存储器单元可以形成单层存储器单元,并且可以通过控制线(例如,字线和位线)在X和Y方向上选择。在另一个实施方案中,非易失性存储系统可以包括一个或多个单片三维存储器阵列,其中两层或更多层存储器单元可以形成在没有任何中间衬底的单个衬底之上。在一些情况下,三维存储器阵列可以包括一个或多个竖直列的存储器单元,这些存储器单元位于衬底上方并与衬底正交,或者基本上与衬底正交(例如,在与衬底正交的法向量的1-2度范围内)。在一个示例中,非易失性存储系统可以包括具有竖直位线或与半导体衬底正交布置的位线的存储器阵列。衬底可以包括硅衬底。存储器阵列可以包括各种存储器结构,包括平面NAND结构、竖直NAND结构、位成本可缩放(BiCS)NAND结构、3D NAND结构或3D ReRAM结构。

图1是实现本发明的技术的存储器系统100的一个实施方案的框图,该技术包括避免由于过编程而导致的不可恢复错误的对策。在一个实施方案中,存储器系统100是固态驱动器(“SSD”)。存储器系统100也可以是存储卡、USB驱动器或其他类型的存储系统。本发明的技术不限于任何一种类型的存储器系统。存储器系统100连接到主机102,主机可为计算机、服务器、电子设备(例如,智能电话、平板电脑或其他移动设备)、器具或使用存储器并具有数据处理能力的另一装置。在一些实施方案中,主机102与存储器系统100分离但连接到其上。在其他实施方案中,存储器系统100嵌入在主机102内。

图1中描绘的存储器系统100的部件为电子电路。存储器系统100包括连接到一个或多个存储器管芯130和本地高速易失性存储器140(例如,DRAM)的控制器120。一个或多个存储器管芯130各自包括多个非易失性存储器单元。下面提供关于每个存储器管芯130的结构的更多信息。控制器120使用本地高速易失性存储器140来执行某些功能。例如,本地高速易失性存储器140将逻辑存储在物理地址转换表(“L2P表”)中。

控制器120包括连接到主机102并与其通信的主机接口152。在一个实施方案中,主机接口152提供PCIe接口。也可使用其他接口,诸如SCSI、SATA等。主机接口152还连接到片上网络(NOC)154。NOC是集成电路上的通信子系统。NOC可跨越同步和异步时钟域,或者使用非时钟的异步逻辑。NOC技术将网络理论和方法应用于片上通信,并且与常规总线和交叉开关互连相比带来了显著的改善。与其他设计相比,NOC提高了片上系统(SoC)的可扩展性以及复杂SoC的电源效率。NOC的导线和链路由许多信号共享。由于NOC中的所有链路可在不同的数据分组上同时运行,因此实现了高度并行。因此,随着集成子系统的复杂性不断增大,与先前的通信架构(例如,专用的点对点信号线、共享总线或具有桥的分段总线)相比,NOC提供增强的性能(诸如吞吐量)和可扩展性。在其他实施方案中,NOC 154可由总线替换。处理器156、ECC引擎158、存储器接口160和DRAM控制器164连接到NOC 154并与其通信。DRAM控制器164用于操作本地高速易失性存储器140(例如,DRAM)并与其通信。在其他实施方案中,本地高速易失性存储器140可为SRAM或另一种类型的易失性存储器。

ECC引擎158执行错误校正服务。例如,ECC引擎158根据实现的ECC技术执行数据编码和解码。在一个实施方案中,ECC引擎158是由软件编程的电子电路。例如,ECC引擎158可为可编程的处理器。在其他实施方案中,ECC引擎158是不具有任何软件的定制的专用硬件电路。在另一个实施方案中,ECC引擎158的功能由处理器156实现。

处理器156执行各种控制器存储器操作,诸如编程、擦除、读取以及存储器管理过程。在一个实施方案中,处理器156由固件编程。在其他实施方案中,处理器156是不具有任何软件的定制的专用硬件电路。处理器156还实现转换模块,作为软件/固件过程或作为专用硬件电路。在许多系统中,使用与一个或多个存储器管芯相关联的物理地址将非易失性存储器向内寻址到存储系统。然而,主机系统将使用逻辑地址来寻址各种存储器位置。这使主机能够将数据分配给连续的逻辑地址,同时存储系统空闲下来按希望的那样在一个或多个存储器管芯的位置间存储数据。为了实现这种系统,控制器(例如,转换模块)在由主机使用的逻辑地址与由存储器管芯使用的物理地址之间执行地址转换。一个示例性具体实施是维护识别逻辑地址与物理地址之间的当前转换的表(即,上述L2P表)。L2P表中的条目可包括逻辑地址和对应物理地址的标识。虽然逻辑地址到物理地址表(或L2P表)包括字词“表”,但它们不必是字面意义上的表。而是,逻辑地址到物理地址表(或L2P表)可为任何类型的数据结构。在一些示例中,存储系统的存储器空间非常大,以致于本地存储器140不能保存所有L2P表。在这种情况下,将整组L2P表存储在存储器管芯130中,并且将L2P表的子集高速缓存(L2P高速缓存)在本地高速易失性存储器140中。

存储器接口160与一个或多个存储器管芯130通信。在一个实施方案中,存储器接口提供切换模式接口。也可使用其他接口。在一些示例性具体实施中,存储器接口160(或控制器120的另一部分)实现用于向一个或多个存储器管芯传输数据以及从一个或多个存储器管芯接收数据的调度器和缓冲器。

图2是存储器管芯300的一个实施方案的功能框图。图1的一个或多个存储器管芯130中的每一个都可以实现为图2的存储器管芯300。图2中描绘的部件为电子电路。在一个实施方案中,每个存储器管芯300包括存储器结构326、控制电路310和读/写电路328。存储器结构326能够经由行解码器324由字线来寻址,并且经由列解码器332由位线来寻址。读/写电路328包括多个感测块350(该多个感测块包括SB1、SB2、…、SBp(感测电路))并且允许多个存储器单元中的一个(或多个)数据页面被并行读取或并行编程(写入)。在一个实施方案中,每个感测块都包括感测放大器和连接到位线的一组锁存器。锁存器存储要写入的数据和/或已读取的数据。感测放大器包括位线驱动器。命令和数据经由线路319在控制器与存储器管芯300之间传输。在一个实施方案中,存储器管芯300包括连接到线路118的一组输入和/或输出(I/O)引脚。

控制电路310与读/写电路328协作以在存储器结构326上执行存储器操作(例如,写入、读取、擦除等)。在一个实施方案中,控制电路310包括状态机312、片上地址解码器314、功率控制电路316和温度传感器电路318。状态机312提供存储器操作的管芯级控制。在一个实施方案中,状态机312可由软件编程。在其他实施方案中,状态机312不使用软件并且完全地在硬件(例如,电子电路)中实现。在一些实施方案中,状态机312可以被可编程的微控制器或微处理器替换。在一个实施方案中,控制电路310包括缓冲器,诸如寄存器、ROM熔丝和用于存储默认值诸如基极电压和其他参数的其他存储设备。温度传感器电路318检测存储器管芯300处的当前温度。

在一些实施方案中,存储器管芯300内的一个或多个部件(单独地或组合地)可被称为管理或控制电路。例如,一个或多个管理或控制电路可包括控制电路310、状态机312、解码器314、功率控制316、感测块350或读/写电路328中的任何一者或组合。一个或多个管理电路或一个或多个控制电路可执行或促进一个或多个存储器阵列操作,包括擦除、编程或读取操作。

片上地址解码器314将控制器120使用的地址之间的地址接口提供给解码器324和解码器332所用的硬件地址。功率控制模块316控制在存储器操作期间提供给字线和位线的功率和电压。功率控制模块316可以包括用于产生电压的充电泵。

出于本文件的目的,控制电路310、读/写电路328和解码器324/332包括用于存储器结构326的控制电路的一个实施方案。在其他实施方案中,支持存储器结构326并在其上工作的其他电路可被称为控制电路。例如,在一些实施方案中,控制器可作为控制电路工作或者可为控制电路的一部分。在一些实施方案中,控制器与控制电路310、读/写电路328和解码器324/332相结合地包括控制电路的一个实施方案。在另一个实施方案中,状态机312包括控制电路。在另一个实施方案中,主机可提供控制电路。

在一个实施方案中,存储器结构326包括非易失性存储器单元的单片三维存储器阵列,其中多个存储器级形成在单个衬底诸如晶圆上方。存储器结构可以包括在存储器单元阵列的一个或多个物理层中单片地形成的任何类型的非易失性存储器,其具有设置在硅(或其他类型)衬底上方的有源区域。在一个示例中,存储器结构326的非易失性存储器单元包括具有电荷捕集材料的竖直NAND串,诸如例如在美国专利9,721,662中所述的,该专利全文以引用方式并入本文。NAND串包括由沟道连接的存储器单元。

在另一个实施方案中,存储器结构326包括非易失性存储器单元的二维存储器阵列。在一个示例中,非易失性存储器单元是利用浮栅的NAND闪存存储器单元,诸如例如在美国专利9,082,502中所述的,该专利全文以引用方式并入本文。也可使用其他类型的存储器单元(例如,NOR型闪存存储器)。

包括在存储器结构326中的存储器阵列架构或存储器单元的确切类型不限于上述示例。许多不同类型的存储器阵列架构或存储器单元技术可用于形成存储器结构326。实现本文提出的要求保护的新实施方案不需要特定的非易失性存储器技术。用于存储器结构326的存储器单元的合适技术的其他示例包括铁电存储器(FeRAM或FeFET)、ReRAM存储器、磁阻存储器(例如,MRAM、自旋转移扭矩MRAM、自旋轨道扭矩MRAM)、相变存储器(例如,PCM)等。用于存储器结构326的架构的合适技术的示例包括二维阵列、三维阵列、交叉点阵列、堆叠二维阵列、竖直位线阵列等。

ReRAM、或PCMRAM、交叉点存储器的一个示例包括可逆电阻切换元件,其布置在由X线和Y线(例如,字线和位线)访问的交叉点阵列中。在另一个实施方案中,存储器单元可包括导电桥存储器元件。导电桥存储器元件也可称为可编程金属化单元。基于固体电解质内的离子的物理重新定位,导电桥存储器元件可用作状态改变元件。在一些情况下,导电桥存储器元件可包括两个固体金属电极,一个是相对惰性的(例如,钨),而另一个是电化学活性的(例如,银或铜),在两个电极之间具有固体电解质的薄膜。随着温度升高,离子的迁移率也增加,这导致导电桥存储器单元的编程阈值降低。因此,导电桥存储器元件可在整个温度范围内具有宽范围的编程阈值。

磁阻存储器(MRAM)通过磁存储元件存储数据。元件由两个铁磁板形成,每个铁磁板可保持磁化,由薄的绝缘层隔开。两个板中的一个是设置为特定极性的永磁体;可以改变另一个板的磁化以匹配外磁场的磁化来存储内存。存储器设备由此类存储器单元的网格构建。在用于编程的一个实施方案中,每个存储器单元位于一对写入线之间,该对写入线被布置成彼此成直角,与单元平行,一个在单元上方并且一个在单元下方。当电流通过它们时,产生感应磁场。

相变存储器(PCM)利用了硫属化合物玻璃的独特性能。一个实施方案使用Ge2Sb2Te5合金以通过电加热相变材料来实现相变。编程剂量是不同幅值和/或长度的电脉冲,从而导致相变材料的不同电阻值。

本领域普通技术人员将认识到,本文所述的技术不限于单个特定存储器结构,但涵盖了在本文所述和如本领域普通技术人员所理解的技术实质与范围内的许多相关的存储器结构。

图3是可包括存储器结构326的单片三维存储器阵列的一个示例性实施方案的一部分的透视图,该存储器结构包括被布置为竖直NAND串的多个非易失性存储器单元。例如,图3示出了一个存储器块的一部分。所描绘的结构包括一组位线BL,其位于交替的介电层和导电层的堆叠上方。出于示例目的,将介电层中的一个标记为D,并且将导电层中的一个(也被称为字线层)标记为W。交替的介电层和导电层的数量可以基于特定具体实施要求而变化。一组实施方案包括108-300个交替的介电层和导电层。一个示例实施方案包括96个数据字线层、8个选择层、6个虚设字线层和110个介电层。也可以使用多于或少于108至300个层。如将在下面所说明,交替的介电层和导电层被局部互连LI分成四个“指状部”。图3示出了两个指状部和两个局部互连LI。源极线层SL位于交替的介电层和字线层下方。在交替的介电层和导电层的堆叠中形成存储器孔。例如,存储器孔被标记为MH。需注意,在图3中,介电层被描绘为透视图,使得读者可以看到位于交替的介电层和导电层的堆叠中的存储器孔。在一个实施方案中,通过用包括电荷捕集材料的材料填充存储器孔以形成存储器单元的竖直列来形成NAND串。每个存储器单元可以存储一个或多个数据位。下面关于图4A至图4F提供包括存储器结构126的三维单片存储器阵列的更多细节。

图4A是说明存储器结构326的一个示例性组织的框图,该存储器结构被分为两个平面302和304。然后,将每个平面分成M个块。在一个示例中,每个平面具有约2000个块。然而,也可以使用不同数量的块和平面。在一个实施方案中,存储器单元的块是擦除单位。即,一个块的所有存储器单元一起被擦除。在其他实施方案中,可以出于其他原因将存储器单元分组为块,诸如为了组织存储器结构126以启用信令和选择电路。在一些实施方案中,块表示一组连接的存储器单元,因为块的存储器单元共享一组公共的字线。在一些实施方案中,存储器块可包括一起擦除或共享公共阱连接的一组存储器单元。

图4B至图4F描绘了示例性三维(“3D”)NAND结构,其对应于图3的结构并且可用于实现图2的存储器结构326。图4B是描绘来自存储器结构326的一个块的一部分的顶视图的框图。图4B中描绘的框的部分对应于图4A的框2中的部分306。从图4B中可以看出,图4B中描绘的块沿332的方向延伸。在一个实施方案中,存储器阵列具有许多层;然而,图4B仅示出了顶层。

图4B描绘了表示竖直列的多个圆圈。竖直列中的每一个包括多个选择晶体管(也称为选择栅极或选取栅极)和多个存储器单元。在一个实施方案中,每个竖直列实现一个NAND串。例如,图4B描绘了竖直列422、432、442和452。竖直列422实现NAND串482。竖直列432实现NAND串484。竖直列442实现NAND串486。竖直列452实现NAND串488。下面提供了竖直列的更多细节。由于图4B中描绘的块在箭头330的方向上和在箭头332的方向上延伸,因此该块包括比图4B中描绘的更多的竖直列

图4B还描绘了一组位线415,包括位线411、412、413、414、……、419。图4B示出了二十四个位线,因为仅示出了该块的一部分。设想的是,多于二十四个位线连接到该块的竖直列。表示竖直列的每个圆圈都有一个“x”以指示其与一个位线连接。例如,位线414连接到竖直列422、432、442和452。

图4B中描绘的块包括一组局部互连402、404、406、408和410,该组局部互连将各个层连接到在竖直列下方的源极线。局部互连402、404、406、408和410还用于将块的每个层分为四个区域;例如,图4B中描绘的顶层被分为区域420、430、440和450,这些区域被称为指状部。在实现存储器单元的块的层中,这四个区域被称为字线指状部,它们被局部互连分开。在一个实施方案中,在块的公共级上的字线指状部连接在一起以形成单一字线。在另一个实施方案中,在同一级上的字线指状部不连接在一起。在一个示例性实施方式中,位线仅连接到区域420、430、440和450中的每个中的一个竖直列。在该实施方式中,每个块具有十六行活动列,并且每个位线连接到每个块中的四个行。在一个实施方案中,连接到公共位线的所有四个行都连接到同一字线(经由连接在一起的在同一级上的不同字线指状部);因此,系统使用源极侧选择线和漏极侧选择线来选择四个中的要进行存储器操作(编程、验证、读取和/或擦除)的一个(或另一个子集)。

尽管图4B示出了在一个块中每个区域具有四行竖直列,四个区域就有十六行竖直列,但是这些确切数字是示例性实施方式。其他实施方案可以包括每一块更多或更少的区域、每一区域更多行或更少行的竖直列、以及每一块更多行或更少行的竖直列。

图4B还示出了竖直列是交错的。在其他实施方案中,可以使用不同交错模式。在一些实施方案中,竖直列不交错。

图4C描绘了三维存储器结构326的一个实施方案的一部分,示出了沿图4B的线AA的剖视图。该剖视图切穿竖直列432和434以及区域430(参见图4B)。图4C的结构包括:四个漏极侧选择层SGD0、SGD1、SGD2和SGD3;四个源极侧选择层SGS0、SGS1、SGS2和SGS3;六个虚设字线层DD0、DD1、DS0、DS1、WLDL、WLDU;以及九十六个数据字线层WLL0至WLL95,这些数据字线层用于连接到数据存储器单元。其他实施方案可实现多于或少于四个漏极侧选择层、多于或少于四个源极侧选择层、多于或少于六个虚设字线层,以及多于或少于九十六个字线层。竖直列432和434被描绘为突出穿过漏极侧选择层、源极侧选择层、虚设字线层以及字线层。在一个实施方案中,每个竖直列都包括竖直NAND串。例如,竖直列432包括NAND串484。在竖直列和下面列出的层之下的是基板101、基板上的绝缘膜454以及源极线SL。竖直列432的NAND串在堆叠的底部处具有源极端并且在堆叠的顶部处具有漏极端。与图4B一致,图4C示出了经由连接器415连接到位线414的竖直列432。还描绘了局部互连404和406。

为了便于引用,漏极侧选择层SGD0、SGD1、SGD2和SGD3;源极侧选择层SGS0、SGS1、SGS2和SGS3;虚设字线层DD0、DD1、DS0、DS1、WLDL和WLDU;以及字线层WLL0至WLL95被统称为导电层。在一个实施方案中,导电层由TiN和钨的组合制成。在其他实施方案中,可以使用其他材料形成导电层,诸如掺杂的多晶硅、金属(诸如钨或金属硅化物)。在一些实施方案中,不同导电层可以由不同材料形成。在导电层之间的是介电层DL0至DL111。例如,介电层DL104在字线层WLL94上方并且在字线层WLL95下方。在一个实施方案中,介电层由SiO

非易失性存储器单元沿竖直列形成,该竖直列延伸穿过堆叠中的交替的导电层和介电层。在一个实施方案中,存储器单元布置在NAND串中。字线层WLL0至WLL95连接到存储器单元(也称为数据存储器单元)。虚设字线层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至WLL95)的逻辑表示。如上面关于图4B所述,在一个实施方案中,局部互连402、404、406、408和410将导电层分成四个区域/指状部(或子块)。例如,字线层WLL94被划分成区域460、462、464和466。对于字线层(WLL0至WLL127),这些区域被称为字线指状部;例如,字线层WLL126被划分成字线指状部460、462、464和466。例如,区域460是在一个字线层上的一个字线指状部。在一个实施方案中,在同一级上的四个字线指状部连接在一起。在另一个实施方案中,每个字线指状部作为单独的字线操作。

漏极侧选择栅极层SGD0(顶层)也被划分成区域420、430、440和450,也称为指状部或选择线指状部。在一个实施方案中,在同一级上的四个选择线指状部连接在一起。在另一个实施方案中,每个选择线指状部作为单独的字线操作。

图4E描绘了包括竖直列432(存储器孔)的一部分的图4C的区域429的剖视图。在一个实施方案中,竖直列是圆形的;然而,在其他实施方案中,可使用其他形状。在一个实施方案中,竖直列432包括由诸如SiO

图4E描绘了介电层DLL105、DLL104、DLL103、DLL102和DLL101,以及字线WLL95、WLL94、WLL93、WLL92和WLL91。字线层中的每个字线层包括由氧化铝层477包围的字线区域476,该氧化铝层由阻挡氧化物(SiO

当对存储器单元进行编程时,电子存储在与存储器单元相关联的电荷捕集层473的一部分中。响应于字线区域476上的适当电压,这些电子通过隧穿电介质472从沟道471被吸引到电荷捕集层473中。存储器单元的阈值电压(Vth)与所存储的电荷量成比例地增大。在一个实施方案中,通过电子的福勒-诺得海姆(Fowler-Nordheim)隧穿到电荷捕集层中来实现编程。在擦除操作期间,电子返回到沟道或空穴被注入到电荷捕集层中以与电子重组。在一个实施方案中,使用经由诸如栅极感应的漏极泄漏(GIDL)的物理机制的空穴注入到电荷捕集层中来实现擦除。

图4F是图3至图4E中描绘的存储器的一部分的示意图。图4F示出了跨整个块延伸的物理字线WLL0至WLL95。图4F的结构对应于图4A至图4E的块2中的部分306,包括位线411、412、413、414、……、419。在该块内,每个位线连接到四个NAND串。漏极侧选择线SGD0、SGD1、SGD2和SGD3用于确定四个NAND串中的哪一个连接到相关联的位线。源极侧选择线SGS0、SGS1、SGS2和SGS3用于确定四个NAND串中的哪一个连接到公共源极线。还可以考虑将该块划分成四个子块SB0、SB1、SB2和SB3。子块SB0对应于由SGD0和SGS0控制的竖直NAND串,子块SB1对应于由SGD1和SGS1控制的竖直NAND串,子块SB2对应于由SGD2和SGS2控制的竖直NAND串,并且子块SB3对应于由SGD3和SGS3控制的竖直NAND串。

虽然图3至图4F的示例性存储器系统是包括具有电荷捕集材料的竖直NAND串的三维存储器结构,但是其他(2D和3D)存储器结构也可与本文所述的技术一起使用。

上面讨论的存储器系统可以被擦除、编程和读取。在成功编程过程(具有验证)结束时,在适当时,存储器单元的阈值电压应当在用于经编程的存储器单元的阈值电压的一个或多个分布内或在经擦除的存储器单元的阈值电压的分布内。图5是阈值电压与存储器单元数目的曲线图,并且示出了当每个存储器单元存储三位数据时存储器阵列的示例性阈值电压分布。然而,其他实施方案可以使用每一存储器单元其他数据容量(例如,诸如每一存储器单元一位数据、二位数据、四位数据或五位数据)。图5示出了八个阈值电压分布,其对应于八个数据状态。对于数据状态N,该数据状态N具有比数据状态N-1更高的阈值电压和比数据状态N+1更低的阈值电压。第一阈值电压分布(数据状态)S0表示被擦除的存储器单元。其他七个阈值电压分布(数据状态)S1至S7表示被编程的存储器单元,并且因此也称为编程状态或编程数据状态。在一些实施方案中,数据状态S1-S7可重叠,其中控制器122依赖错误校正来识别正在存储的正确数据。

图5示出了七个读取参考电压Vr1、Vr2、Vr3、Vr4、Vr5、Vr6和Vr7,用于从存储器单元读取数据。通过测试(例如,执行感测操作)给定存储器单元的阈值电压是高于还是低于七个读取参考电压,系统可以确定存储器单元所处于的数据状态(即,S0、S1、S2、S3、……)。

图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的箭头表示全序列编程。除全序列编程之外,本文所述的技术还可与其他类型的编程(包括但不限于多级编程/多相编程)一起使用。

图5的每个阈值电压分布(数据状态)对应于存储在存储器单元中的一组数据位的预确定值。编程到存储器单元中的数据与存储器单元的阈值电压电平之间的具体关系取决于存储器单元采用的数据编码方案。在一个实施方案中,使用格雷码分配将数据值分配到阈值电压范围,使得如果存储器的阈值电压错误地移位到其相邻物理状态,那么将仅影响一个位。

图6A是描述将数据值分配给数据状态的一个示例的表。在图6A的表中,S0=111(擦除状态),S1=110,S2=100,S3=000,S4=010,S5=011,S6=001,并且S7=101。也可以使用数据的其他编码。本文所公开的技术不需要特定的数据编码。在一个实施方案中,当块经受擦除操作时,所有存储器单元被移动到数据状态S0,即擦除状态。

一般来讲,在验证操作和读取操作期间,将所选择的字线连接到电压(参考信号的一个示例),该电压的电平针对每个读取操作(例如,参见图5的读取参考电压Vr1、Vr2、Vr3、Vr4、Vr5、Vr6和Vr7)或验证操作(例如,参见图5的验证参考电压Vv1、Vv2、Vv3、Vv4、Vv5、Vv6和Vv7)指定,以便确定相关存储器单元的阈值电压是否已经达到这个电平。在施加字线电压之后,测量存储器单元的传导电流以确定该存储器单元是否响应于施加到字线的电压而接通(被传导电流)。如果传导电流被测量为大于特定值,那么假设存储器单元被接通并且施加到字线的电压大于存储器单元的阈值电压。如果传导电流未测量为大于特定值,那么假设存储器单元未接通并且施加到字线的电压不大于存储器单元的阈值电压。在读取或验证过程期间,未选择的存储器单元在其控制栅极处被提供有一个或多个读取通过电压(也称为旁路电压),使得这些存储器单元将作为通过栅极操作(例如,不管这些存储器单元是被编程还是被擦除都传导电流)。

有许多方法来在读取或验证操作期间测量存储器单元的传导电流。在一个示例中,以存储器单元对感测放大器中的专用电容器放电或充电的速率来测量该存储器单元的传导电流。在另一个示例中,所选择的存储器单元的传导电流允许(或不允许)包括存储器单元的NAND串对对应位线放电。在某时间段之后测量位线上的电压,以查看其是否已经放电。需注意,本文所述的技术可以与本领域中已知的用于验证/读取的不同方法一起使用。也可以使用本领域中已知的其他读取和验证技术。

如上所述,存储器单元可能变得过编程。例如,考虑旨在编程到数据状态S4的存储器单元的示例。编程过程被设计成将存储器单元的阈值电压从数据状态S0的阈值电压分布增加到数据S4的阈值电压分布,具体方式是:施加编程信号作为在幅值上增加步长大小的一组编程脉冲,并且在编程脉冲之间测试关于存储器单元的阈值电压是否达到Vv4。然而,由于编程/擦除循环导致的结构变化或编程速度提高,因此当存储器单元的阈值电压达到Vv4时,其也超过Vr5,这可能导致稍后读取存储器单元时出错。这是过编程的一个示例。如果少量存储器单元变得过编程,则读取期间的ECC过程可能能够校正错误。然而,如果太多存储器单元被过编程或出错,则ECC可能无法校正所有错误并且读取过程可能失败,从而导致数据丢失。

为了防止数据丢失,提出了非易失性存储系统包括在编程过程期间对过编程进行补偿的机制。即,在针对一组数据和目标存储器单元开始编程过程之后并且在针对该组数据和目标存储器单元完成编程过程之前,系统确定是否存在超过阈值数目的过编程存储器单元,如果是,则系统在编程过程的中途(例如,进行中)调整编程过程,以对到目前为止在当前正在执行的编程过程中发生的过编程进行补偿。

图6B描绘了在编程操作期间施加到所选择的字线的一系列编程和验证脉冲的一个实施方案。编程操作可包括多个编程验证迭代,其中每个迭代向所选择的字线施加一个或多个编程脉冲,然后施加一个或多个验证脉冲(例如,以验证或确定存储器单元的编程状态或编程电平)。在一个实施方案中,以连续迭代步进式提高编程脉冲。此外,每个编程脉冲可包括具有通过电压(Vpass)电平(例如6V至8V)的第一部分,其后是处于编程电压(Vpgm)电平(例如12V至25V)的第二最高幅值部分。例如,如图6B所示,第一编程脉冲800、第二编程脉冲802、第三编程脉冲804和第四编程脉冲806分别具有Vpgm1、Vpgm2、Vpgm3和Vpgm4的编程电压电平。可在每个编程脉冲之后提供一个或多个验证电压808,诸如验证电压Vva、Vvb和Vvc。在一些情况下,一个或多个初始编程脉冲之后没有验证脉冲,因为不期望任何存储元件可能已达到最低编程状态(例如,A状态)。随后,在一些情况下,编程迭代可对A状态验证脉冲,然后是对A状态和B状态使用验证脉冲的编程迭代,然后是对B状态和C状态使用验证脉冲的编程迭代。

图6C是描述由存储器管芯(诸如图2中的存储器管芯300)执行的用于编程的过程的一个实施方案的流程图。在一个示例性实施方案中,图6C的过程在图2中的状态机312的指引下使用控制电路在存储器管芯300上执行。可执行图6C的过程以实现图5的全序列编程以及包括多级编程的其他编程方案。当实施多级编程时,图6C的过程可用于实施多级编程过程的任何/每个阶段。

通常,在编程操作期间(经由所选择的字线)施加到控制栅极的编程电压被施加为一系列编程脉冲(电压脉冲)。在编程脉冲之间的是一组验证脉冲以执行验证。在许多具体实施中,编程脉冲的幅值随每个连续脉冲而增大预确定的步长。在图6C的步骤570中,将编程电压(Vpgm)初始化为起始幅值(例如,约12V至16V,或另一个合适的电平),并且将由状态机312维持的编程计数器PC初始化为1。在步骤572中,将编程信号Vpgm的编程脉冲施加到所选择的字线(被选择用于编程的字线)。在一个实施方案中,被同时地编程的一组存储器单元全部都连接到同一字线(所选择的字线)。未选择的字线接收一个或多个升压电压(例如,约7伏至11伏)以执行本领域中已知的升压方案。在一个实施方案中,如果存储器单元应进行编程,则对应位线接地。另一方面,如果存储器单元应当保持在其当前阈值电压,那么对应位线连接到Vdd以禁止编程。在步骤572中,将编程脉冲同时地施加到连接到所选择的字线的所有存储器单元,使得同时地对连接到所选择的字线的所有存储器单元进行编程。也就是说,它们在同一时间上或在重叠时间期间(两者都被视为是同时的)进行编程。以此方式,除非已经将它们锁定以阻止进行编程,否则连接到所选择的字线的所有存储器单元将同时地具有其阈值电压变化。

在步骤574中,使用一组适当验证参考电压以执行一个或多个验证操作来验证适当存储器单元。在一个实施方案中,通过测试被选择用于编程的存储器单元的阈值电压是否已经达到适当验证参考电压来执行验证过程。

在步骤576中,确定是否所有存储器单元都已经达到其目标阈值电压(通过)。若是如此,那么编程过程完成并是成功的,因为所有选择的存储器单元都被编程并验证了其目标状态。在步骤578中,报告“通过”(或成功)状态。如果在576中确定不是所有存储器单元都已经达到其目标阈值电压(失败),那么编程过程将继续到步骤580。

在步骤580中,该系统对尚未达到其相应的目标阈值电压分布的存储器单元的数量进行计数。即,该系统对目前为止验证过程已经失败的存储器单元的数量进行计数。该计数可以由状态机312、控制器120或其他逻辑部件来完成。在一个具体实施中,感测块中的每个感测块将存储其相应存储器单元的状态(通过/失败)。在一个实施方案中,存在一个总计数,其反映了最后一个验证步骤已经失败的当前正在编程的存储器单元的总数。在另一个实施方案中,为每个数据状态保留单独计数。

在步骤582中,确定来自步骤580的计数是否小于或等于预确定的极限。在一个实施方案中,预确定的极限是在存储器单元的页面的读取过程期间可通过纠错码(ECC)校正的位的数量。如果失败单元的数量小于或等于预确定的极限,则编程过程可以停止并且在步骤578中报告“通过”状态。在这种情况下,足够的存储器单元被正确地编程,使得可以在读取过程期间使用ECC来校正校正尚未完全地编程的剩余几个存储器单元。在一些实施方案中,步骤580将针对每个扇区、每个目标数据状态或其他单元计数失败单元的数量,并且在步骤582中将这些计数单独地或共同地与一个或多个阈值进行比较。

在一个实施方案中,预确定的极限可以小于在读取过程期间可由ECC校正的位的总数以考虑到未来错误。当对页面的少于所有的存储器单元进行编程、或比较仅一个数据状态(或少于所有的状态)的计数时,预确定的极限就可以是在存储器单元的页面的读取过程期间ECC可校正的位的数量的一部分(按比例或不按比例)。在一些实施方案中,该极限不是预确定的。相反,它基于已经为页面计数的错误数量、所执行的编程擦除周期数量或其他标准来改变。

如果失败的存储器单元的数量不小于预确定的极限,那么编程过程在步骤584处继续并对照编程极限值(PL)检查编程计数器PC。编程极限值的示例包括6、20和30;然而,可以使用其他值。如果编程计数器PC不小于编程极限值PL,则认为编程过程已经失败并且在步骤588中报告“失败”状态。如果编程计数器PC小于编程极限值PL,则过程在步骤586处继续,在此期间,编程计数器PC递增了1,并且编程电压Vpgm被步进到下一幅值。例如,下一脉冲将具有比前一脉冲大一个步长大小(例如,0.1伏至0.4伏的步长大小)的幅值。在步骤586之后,过程循环回到步骤572,并且另一个编程脉冲被施加到所选择的字线,使得执行图7的编程过程的另一个迭代(步骤572至586)。

由于在编程或读取时可能发生错误,并且在存储数据时可能发生错误(例如,由于电子漂移、数据保留问题或其他现象),因此错误校正与数据编程一起使用。存储器系统通常使用纠错码(ECC)来保护数据免于损坏。许多ECC编码方案是本领域熟知的。这些常规的纠错码在包括闪存(和其他非易失性)存储器的大容量存储器中尤其有用,因为此类编码方案可对制造产率和设备可靠性产生重大影响,从而使具有少量不可编程或有缺陷的单元的设备变得可用。当然,在产率节省和提供附加存储器单元以存储代码位(即,编码“速率”)的成本之间存在权衡。因此,一些ECC代码比其他ECC代码更适合闪存存储器设备。一般来讲,闪存存储器设备的ECC代码往往具有比数据通信应用中使用的代码(其可具有低至1/2的编码速率)更高的编码速率(即,更低的代码位/数据位比率)。通常与闪存存储器存储装置结合使用的熟知的ECC代码的示例包括里德-所罗门码、其他BCH码、汉明码等。有时,与闪存存储器存储装置结合使用的纠错码是“系统的”,因为最终码字的数据部分与被编码的实际数据没有变化,其中代码或奇偶校验位附加到数据位以形成完整的码字。

给定纠错码的特定参数包括代码的类型、从中导出码字的实际数据的块的大小以及编码之后码字的总长度。例如,如果使用至少60个ECC或奇偶校验位,则应用于512字节(4096位)数据扇区的典型BCH码可校正最多四个错误位。里德-所罗门码是BCH码的子集,并且也通常用于纠错。例如,典型的里德-所罗门码可使用约72个ECC位在512字节数据扇区中校正最多四个错误。在闪存存储器的情况下,纠错编码提供了制造产率以及闪存存储器随时间推移的可靠性的显著改进。

在一个实施方案中,编程用于将存储器单元的阈值电压升高到图5所示的编程数据状态S1至S7中的一者。擦除用于将存储器单元的阈值电压降低到擦除数据状态S0。

擦除一些存储器设备中的存储器单元的一种技术是将p阱偏置到高电压以对NAND沟道充电。将擦除使能电压施加到存储器单元的控制栅极,同时使NAND沟道处于高电压,以擦除非易失性存储元件(存储器单元)。擦除存储器单元的另一种方法是生成栅极感应的漏极泄漏(GIDL)电流以对NAND串沟道充电。将擦除使能电压施加到存储器单元的控制栅极,同时保持串沟道电势以擦除存储器单元。

图7A描绘了用于特定数据状态(例如,B状态或D状态)的阈值电压分布702以及用于识别对应于两个阈值电压区域区域-1和区域-2的两个位计数的读取电压Vr1 704和Vr2706的一个实施方案。在一个示例中,阈值电压分布702可对应于图5中的数据状态S1。参考图5,数据状态S0可对应于擦除的数据状态,数据状态S1可对应于A状态,数据状态S2可对应于B状态,数据状态S3可对应于C状态,并且数据状态S4可对应于D状态。通常,阈值电压在较高区域内的存储器单元的数目将小于阈值电压在较低区域的存储器单元的数目。

在存储器块经历阈值数目的编程/擦除循环之后(例如,在10K个编程/擦除循环之后),则可计算对应于两个阈值电压区域的位计数比,并且将其用于确定是否应降低用于特定数据状态的编程电压。为了确定位计数比,可确定向阈值电压介于读取电压Vr1 704与Vr2 706之间的特定数据状态分配的第一位数或第一存储器单元数目,可确定向阈值电压大于读取电压Vr2 706的特定数据状态分配的第二位数或第二存储器单元数目,然后可将第二位数除以第一位数与第二位数之和以计算位计数比。

在一些实施方案中,可计算并存储在第一时间点的区域区域-2的位数,然后将其与在第一时间点之后的第二时间点的区域区域-2的位数进行比较,以检测区域区域-2内的位数的增长。第一时间点可对应于存储器块仅经历10K个编程/擦除循环之后的存储器块,并且第二时间点可对应于存储器块经历20K个编程/擦除循环之后的存储器块。如果区域区域-2内的位数的增长在10K个编程/擦除循环之后超过50%,则可降低用于将单元编程到特定数据状态的编程电压。用于将单元编程到特定数据状态的编程电压中的电压降低量可经由查找表来确定,诸如图7D所示的表。

图7B描绘了用于图7A中描绘的特定数据状态的阈值电压分布712以及用于识别对应于两个阈值电压区域区域-1和区域-2的两个位计数的读取电压Vr1 704和Vr2 706的一个实施方案。阈值电压分布702可对应于经历第一编程/擦除循环数的存储器单元,并且阈值电压分布712可对应于经历大于第一编程/擦除循环数的第二编程/擦除循环数的存储器单元。在一个示例中,第一编程/擦除循环数可包括10K个编程/擦除循环(或写入/擦除WE循环),并且第二编程/擦除循环数可包括20K个编程/擦除循环。在已经执行了多个编程/擦除循环之后,用于特定数据状态的阈值电压分布的上尾部可能偏移得更高;在这种情况下,阈值电压分布712的上尾部可高于阈值电压分布702的上尾部。

在一个实施方案中,在阈值数目的编程/擦除循环之后(例如,在10K个编程/擦除循环之后),可计算位计数比,以相对于区域区域-1内的位数确定区域区域-2内的位数。位计数比可被计算为区域区域-2内的位数除以区域区域-1和区域-2内的总位数。如果位计数比大于阈值比(例如,大于0.2),则可将用于将存储器单元编程到特定数据状态的编程电压减小100mV或减小取决于位计数比本身的电压量。区域区域-1内的位数可通过检测被编程到特定数据状态的以读取电压Vr1传导而不以读取电压Vr2传导的存储器单元的数目来确定。

图7C描绘了用于图7A中描绘的特定数据状态的阈值电压分布718以及用于识别对应于两个阈值电压区域区域-1和区域-2的两个位计数的读取电压Vr1 704和Vr2 706的一个实施方案。阈值电压分布718可对应于经历第三编程/擦除循环数的存储器单元,该第三编程/擦除循环数大于对应于图7B中所描绘的阈值电压分布712和702的编程/擦除循环数。由于较大的位数对应于区域区域-2,可增大编程电压的减小量和/或可增大发生编程电压调制的频率。

图7D描绘了用于基于位计数比来计算对编程电压的调整的表的一个实施方案。如图所示,如果位计数比包括0.02,则编程电压的减小可包括100mV。如果位计数比包括0.05,则编程电压的减小可包括200mV。如果位计数比包括0.1,则编程电压的减小可包括300mV。如果位计数比包括0.15,则编程电压的减小可包括400mV。如果位计数比包括0.2,则编程电压的减小可包括500mV。如果位计数比包括0.25,则编程电压的减小可包括600mV。在一些情况下,位计数比每增大0.05,编程电压可能减小100mV。图7D中描绘的位计数比(BCR值)到适当编程电压调整(VPGM调整)的映射可对应于在给定第一编程/擦除循环数的情况下要进行的适当调整。可根据编程/擦除循环数来修改位计数比到适当编程电压调整的映射。例如,在大于第一编程/擦除循环数的第二编程/擦除循环数之后,编程电压的减小可增大100mV。在这种情况下,如果位计数比包括0.05,则编程电压的减小可包括300mV,并且如果位计数比包括0.1,则编程电压的减小可包括400mV。

图7E描绘了用于图7C中描绘的特定数据状态的阈值电压分布718以及用于识别对应于两个阈值电压区域区域-1和区域-2的两个位计数的读取电压Vr3 714和Vr4 716的一个实施方案。如图所示,读取电压Vr3 714和Vr4 716可对应于图7C所描绘的读取电压Vr1704和Vr2 706的偏移版本。在一个实施方案中,在检测到位计数比大于阈值比(例如,大于0.1)之后,可调整或增大用于确定阈值电压区域的读取电压。读取电压的增大可能取决于位计数比和/或用于存储器块的编程/擦除循环数。在一个示例中,响应于检测到位计数比大于0.1,与区域区域-1的下端相关联的读取电压可增大100mV。在一些情况下,响应于检测到位计数比大于0.1,与区域区域-1的下端相关联的读取电压以及与区域区域-1的上端相关联的读取电压均可增大100mV。

图7F描绘了用于图7C中描绘的特定数据状态的阈值电压分布718以及用于识别对应于三个阈值电压区域区域-1、区域-2和区域-3的三个位计数的读取电压Vr1 704、Vr2706和Vr5 715的一个实施方案。在这种情况下,第一位计数比可包括区域-2内的位数除以区域-1至区域-3内的总位数。第二位计数比可包括区域3内的位数除以区域-1至区域-3内的总位数。在一个实施方案中,如果第二位计数比大于阈值比(例如,大于0.1),则可将用于将存储器单元编程到特定数据状态的编程电压减小100mV。在另一个实施方案中,如果第一位计数比不大于第二位计数比至少两倍,则可将用于将存储器单元编程到特定数据状态的编程电压减小200mV。

在一些情况下,可将区域区域-3的位计数与区域区域-2的位计数进行比较,并且如果区域区域-3的位计数是区域区域-2的位计数的至少25%,则可将用于将存储器单元编程到特定数据状态的编程电压(Vpgm)减小100mV,并且可将用于确定区域区域-2的读取电压电平增大50mV。在其他情况下,可将区域区域-2的位计数与区域区域-1的位计数进行比较,并且如果区域区域-2的位计数是区域区域-1的位计数的至少20%,则可将用于将存储器单元编程到特定数据状态的编程电压(Vpgm)减小150mV。

图7G描绘了用于基于位计数比和一组存储器单元或存储器块经历的写入/擦除循环(或编程/擦除循环)数来计算编程电压调整的表的一个实施方案。如图所示,如果位计数比包括0.02并且写入/擦除循环数小于100K个循环,则编程电压减小包括100mV;然而,如果位计数比包括0.02并且写入/擦除循环数介于100K个循环和200K个循环之间,则编程电压减少包括200mV。如果位计数比包括0.1并且写入/擦除循环数小于100K个循环,则编程电压减小包括200mV;然而,如果位计数比包括0.1并且写入/擦除循环数介于100K个循环和200K个循环之间,则编程电压减少包括400mV。用于特定数据状态的编程电压的减小量值可取决于位计数比和/或写入/擦除循环(WE循环)数。

图7H描绘了用于基于位计数比来计算编程电压调整间隔(或WE间隔)的表的一个实施方案。编程电压调整间隔可确定位计数比计算与编程电压调整之间的编程/擦除循环数。如图所示,如果位计数比包括0.02,则编程电压调整间隔包括10K个循环。如果位计数比包括0.05,则编程电压调整间隔包括8.5K个循环。如果位计数比包括0.1,则编程电压调整间隔包括7K个循环。如果位计数比包括0.15,则编程电压调整间隔包括5.5K个循环。如果位计数比包括0.2,则编程电压调整间隔包括4K个循环。

在一些实施方案中,编程电压调整间隔可基于一组存储器单元经历的编程/擦除循环总数和位计数比来确定。该组存储器单元可以是存储器块诸如NAND存储器块的一部分。在一个示例中,如果编程/擦除循环总数小于100K个循环并且位计数比包括0.02,则编程电压调整间隔可包括10K个循环;然而,如果编程/擦除循环总数大于100K个循环并且位计数比包括0.02,则编程电压调整间隔可包括5K个循环。

图8A是描述用于对存储器块内的存储器单元进行编程的过程的一个实施方案的流程图。存储器块可对应于图2中的存储器结构326。在一个实施方案中,图8A的过程可由控制电路(诸如图2中描绘的控制电路310)来执行。在另一个实施方案中,图8A的过程可由一个或多个控制电路(诸如图1中的控制器120)来执行。

在步骤802中,识别存储器块。存储器块可包括NAND存储器块。存储器块可包括一个或多个NAND串。在一个示例中,存储器块可对应于图2中的存储器结构326的一部分。在步骤804中,确定用于存储器块的编程/擦除循环数。用于存储器块的编程/擦除循环数可包括在制造存储器块之后施加到存储器块的编程和擦除循环总数。在一些情况下,可将存储器块的擦除循环数的计数存储在非易失性存储器或查找表中,并且在对存储器块执行每个擦除循环之后进行更新。

在步骤806中,检测到用于存储器块的编程/擦除循环数等于或已超过第一循环数。第一循环数可对应于阈值数目的编程/擦除循环,在此之后应对存储器块的编程电压进行更新或调整。在步骤808中,响应于检测到用于存储器块的编程/擦除循环数等于或已超过第一循环数,确定与第一阈值电压分布相关联的位计数比。第一阈值电压分布可对应于特定数据状态(例如,B状态)。第一阈值电压分布可对应于图7A中的阈值电压分布702。

在一个实施方案中,可通过计算第一阈值电压区域内的第一位数和第二阈值电压区域内的第二位数来确定位计数比。第一阈值电压区域可包括在第一读取电压与第二读取电压之间的阈值电压范围。第二阈值电压区域可包括大于第二读取电压的阈值电压范围。在一个示例中,第一阈值电压区域可对应于图7B中的区域区域-1,并且第二阈值电压区域可对应于图7B中的区域区域-2。第一读取电压可对应于图7B中的读取电压Vr1 704,并且第二读取电压可对应于图7B中的读取电压Vr2 706。位计数比可包括第二位数除以第一阈值电压区域内的第一位数与第二阈值电压区域内的第二位数之和。

在步骤810中,基于位计数比来确定编程电压调整。查找表可用于将给定的位计数比映射到对应的编程电压调整。在一个示例中,查找表可对应于图7D中描绘的表。在一些情况下,只要位计数比小于0.02,就可以不对编程电压进行调整。在步骤812中,通过编程电压调整来调整用于存储器块的编程电压。在一个示例中,可通过编程电压调整来减小用于存储器块的编程电压。参考图7D中描绘的表,如果位计数比包括0.1,则可将用于存储器块的编程电压减小300mV。在步骤814中,经由将编程电压施加到存储器块内的一组存储器单元来对该组存储器单元进行编程。通过在编程操作期间将连接到该组存储器单元的字线偏置到编程电压,可将编程电压施加到该组存储器单元。在步骤816中,在步骤814中对该组存储器单元进行编程之后,从该组存储器单元中读取第一组数据。该第一组数据可存储在存储器缓冲器中。

图8B是描述用于对存储器块内的存储器单元进行编程的过程的另一个实施方案的流程图。存储器块可对应于图2中的存储器结构326。在一个实施方案中,图8B的过程可由控制电路(诸如图2中描绘的控制电路310)来执行。在另一个实施方案中,图8B的过程可由一个或多个控制电路(诸如图1中的控制器120)来执行。

在步骤832中,确定第一编程/擦除循环阈值。第一编程/擦除循环阈值可对应于在对编程电压进行更新之前必须经过的编程/擦除循环数。可经由查找表来获取第一编程/擦除循环阈值。在对编程电压进行下次更新之前必须经过的编程/擦除循环数可以是存储器块经历的编程/擦除循环总数的函数。在步骤834中,检测到存储器块已超过第一编程/擦除循环阈值。在一个示例中,可检测到自上次对编程电压进行更新以来,存储器块经受或经历了10K个编程/擦除循环。

在步骤836中,响应于检测到存储器块已超过第一编程/擦除循环阈值,确定用于第一阈值电压分布的第一位计数比。第一阈值电压分布可对应于特定数据状态,诸如B状态。第一位计数比可对应于第二区域(诸如图7B中的区域区域-2)内的位数与该第二区域和第一区域(诸如图7B中的区域区域-1)内的总位数之比。

在一个实施方案中,为了确定第一位计数比,可确定阈值电压介于第一读取电压和大于第一读取电压的第二读取电压之间的第一存储器单元数目,并且可确定阈值电压大于第二读取电压的第二存储器单元数目;第一位计数比可包括第二数目除以第一数目与第二数目之和。例如,如果阈值电压介于1.7V和1.9V之间的第二存储器单元数目包括100个存储器单元,并且阈值电压介于1.5V和1.7V之间的第一存储器单元数目包括900个存储器单元,则第一位计数比将包括100/(100+900)或0.1。

在步骤838中,通过基于第一位计数比的第一编程电压调整来调整用于存储器块的编程电压。第一编程电压调整可使用查找表诸如图7D中描绘的表来确定。在调整了编程电压之后,可使用经调整的编程电压对存储器块内的一组存储器单元进行编程。

在步骤840中,基于第一位计数比来设置第二编程/擦除循环阈值。例如,如果第一位计数比大于0.1,则第二编程/擦除循环阈值可被设置为5K个循环;否则,如果第一位计数比不大于0.1,则第二编程/擦除循环阈值可被设置为10K个循环。在步骤842中,检测到存储器块已超过第二编程/擦除循环阈值。可检测到自上次对编程电压进行更新以来,存储器块已超过5K个编程/擦除循环。在步骤846中,响应于检测到存储器块已超过第二编程/擦除循环阈值,确定用于第一阈值电压分布的第二位计数比。第二位计数比可类似于第一位计数比来确定,在第一位计数比中,可确定阈值电压介于第一读取电压和大于第一读取电压的第二读取电压之间的第一存储器单元数目,并且可确定阈值电压大于第二读取电压的第二存储器单元数目;第二位计数比于是可包括第二数目除以第一数目与第二数目之和。随时间推移,随着于对应于特定数据状态的第一阈值电压分布朝向更高的阈值电压偏移,位计数比将增大。在一个示例中,第一位计数比可包括0.1,并且第二位计数比可包括0.2。

在步骤848中,通过基于第二位计数比的第二编程电压调整来调整用于存储器块的编程电压。在通过第二编程电压调整来调整编程电压之后,使用编程电压对存储器块内的该组存储器单元进行编程。在一个实施方案中,第一编程电压调整可包括将编程电压从14V减小200mV至13.8V,并且第二编程电压调整可包括将编程电压从13.8V减小100mV至13.7V。

在一个实施方案中,调整编程电压的更新频率可取决于存储器块经历的编程/擦除循环总数。例如,如果编程/擦除循环总数超过100K个循环,则更新频率可对应于每10K个循环的调整;然而,如果编程/擦除循环总数小于100K个循环,则更新频率可对应于每20K个循环的调整。

在一些实施方案中,可根据存储器块经历的编程/擦除循环总数来调整用于计算位计数比的对应于两个区域的阈值电压范围。例如,如果编程/擦除循环总数超过100K个循环,则用于确定第一区域的读取电压可包括1.5V和1.7V;然而,如果编程/擦除循环总数小于100K个循环,则用于确定第一区域的读取电压可包括1.4V和1.6V。

图8C是描述用于对存储器块内的存储器单元进行编程的过程的另选实施方案的流程图。存储器块可对应于图2中的存储器结构326。在一个实施方案中,图8C的过程可由控制电路(诸如图2中描绘的控制电路310)来执行。在另一个实施方案中,图8C的过程可由一个或多个控制电路(诸如图1中的控制器120)来执行。

在步骤862中,检测到存储器块已超过第一编程/擦除循环数。存储器块可包括多个NAND串。在步骤864中,确定对应于第一阈值电压区域的第一读取电压。在步骤866中,确定对应于第二阈值电压区域的第二读取电压。第一读取电压和第二读取电压可经由查找表来确定,该查找表用于确定对应于两个区域的阈值电压范围以便计算位计数比。在步骤860中,确定与第一阈值电压区域和第二阈值电压区域相关联的位计数比。第一阈值电压区域可对应于图7B中的区域区域-1,并且第二阈值电压区域可对应于图7B中的区域区域-2。

在步骤870中,基于位计数比来确定编程电压调整。编程电压调整可经由查找表诸如图7D中描绘的表来确定。例如,如果位计数比包括0.15,则编程电压调整可包括将编程电压减小400mV。在步骤872中,基于编程电压调整来调整用于存储器块的编程电压。在步骤874中,调整对应于第一阈值电压区域的第一读取电压和对应于第二阈值电压区域的第二读取电压。在一个实施方案中,可根据存储器块经历的编程/擦除循环总数来调整第一读取电压和第二读取电压。在另一个实施方案中,可根据位计数比来调整第一读取电压和第二读取电压。例如,如果位计数比大于0.2,则可将第一读取电压和第二读取电压增大50mV;否则,第一读取电压和第二读取电压可保持不变。

在步骤876中,确定与第一阈值电压区域和第二阈值电压区域相关联的第二位计数比。在步骤878中,基于第二位计数比来确定第二编程电压调整。在步骤860中确定的位计数比可对应于图7C中具有读取电压Vr1和Vr2的区域区域-1和区域-2的位计数比。在步骤876中确定的第二位计数比可对应于图7D中具有读取电压Vr3和Vr4的区域区域-1和区域-2的位计数比。由于特定数据状态的阈值电压分布随着编程/擦除循环数的增加而偏离得更高,用于计算位计数比的读取电压可能增大。在步骤880中,基于第二编程电压调整来调整用于存储器块的编程电压。第二编程电压调整可经由查找表诸如图7D中描绘的表来确定。在对编程电压进行第二编程电压调整之后,可将编程电压施加到存储器块内的一组存储器单元。

本发明所公开的技术的一个实施方案包括存储器块以及与该存储器块通信的一个或多个控制电路。存储器块包括一组存储器单元。一个或多个控制电路被配置为确定存储器块经历的编程/擦除循环数并且检测存储器块经历的编程/擦除循环数是否已超过第一循环数。一个或多个控制电路被配置为响应于检测到存储器块经历的编程/擦除循环数已超过第一循环数来确定与第一数据状态分布相关联的位计数比。一个或多个控制电路被配置为基于位计数比确定编程电压调整并且通过编程电压调整来调整用于存储器块的编程电压。一个或多个控制电路被配置为使用经调整的编程电压对存储器块内的一组存储器单元进行编程。

本发明所公开的技术的一个实施方案包括:基于用于存储器块的编程/擦除循环总数来确定第一编程/擦除循环阈值;检测到存储器块已超过第一编程/擦除循环阈值;响应于检测到存储器块已超过第一编程/擦除循环阈值来确定用于第一阈值电压分布的第一位计数比;基于第一位计数比和用于存储器块的编程/擦除循环总数来确定针对要施加到存储器块内的一组存储器单元的编程电压的第一编程电压调整;通过第一编程电压调整来减小编程电压;以及使用所减小的编程电压来对存储器块内的该组存储器单元进行编程。

本发明所公开的技术的一个实施方案包括存储器块以及与该存储器块通信的一个或多个控制电路。存储器块包括多个存储器单元。一个或多个控制电路被配置为确定对应于第一阈值电压区域的第一读取电压并且确定对应于第二阈值电压区域的第二读取电压。一个或多个控制电路被配置为确定与第一阈值电压区域和第二阈值电压区域相关联的位计数比并且基于该位计数比来确定编程电压调整。一个或多个控制电路被配置为在使用所减小的编程电压对多个存储器单元进行编程之前,通过编程电压调整来减小用于多个存储器单元的编程电压。

出于本文的目的,如果零个、一个或多个中间层在第一层和第二层之间,则第一层可以在第二层之上或上方。

出于本文的目的,应当注意,附图中描绘的各种特征的尺寸不一定按比例绘制。

出于本文的目的,说明书中对“实施方案(an embodiment)”、“一个实施方案(oneembodiment)”、“一些实施方案(some embodiments)”或“另一实施方案(anotherembodiment)”的引用可用于描述不同的实施方案,并且不一定指相同的实施方案。

出于本文的目的,连接可以是直接连接或间接连接(例如,通过另一部分)。在一些情况下,当元件被提及连接或耦接到另一个元件时,该元件可直接连接至另一个元件,或者经由居间元件间接连接至另一个元件。当元件被提及直接连接至另一个元件时,则在该元件与另一个元件之间没有居间元件。

如果两个设备是直接连接或间接连接的,则两个设备可以是“通信”的,使得它们能够在它们之间进行电子信号通信。

出于本文档的目的,术语“基于”可理解为“至少部分地基于”。

出于本文档的目的,在没有附加上下文的情况下,诸如“第一”对象、“第二”对象和“第三”对象的数字术语的使用可能不意味着对象的排序,而是可用于识别目的以识别不同的对象。

出于本文档的目的,对象的术语“组”可指一个或多个对象的“组”。

尽管已经用特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,所附权利要求中定义的主题不一定限于上述特定特征或动作。相反,上面描述的特定特征和动作被公开作为实现权利要求的示例形式。

相关技术
  • 循环期间的编程电压调制
  • 非易失性存储器及用于在初始编程电压的修整期间减少擦除/写入循环的方法
技术分类

06120113238742