CN114639425A - 存储器、存储系统以及操作方法 - Google Patents

存储器、存储系统以及操作方法 Download PDF

Info

Publication number
CN114639425A
CN114639425A CN202210137528.8A CN202210137528A CN114639425A CN 114639425 A CN114639425 A CN 114639425A CN 202210137528 A CN202210137528 A CN 202210137528A CN 114639425 A CN114639425 A CN 114639425A
Authority
CN
China
Prior art keywords
verify
sub
program
verification
operations
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
CN202210137528.8A
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.)
Yangtze Memory Technologies Co Ltd
Original Assignee
Yangtze Memory Technologies Co Ltd
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 Yangtze Memory Technologies Co Ltd filed Critical Yangtze Memory Technologies Co Ltd
Priority to CN202210137528.8A priority Critical patent/CN114639425A/zh
Publication of CN114639425A publication Critical patent/CN114639425A/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/10Programming or data input circuits

Landscapes

  • Read Only Memory (AREA)

Abstract

本申请公开了一种存储器、存储系统以及操作方法,属于存储技术领域。在本申请中,第一编程验证方式用于在第一验证子操作时对第一数量个编程态进行验证,第二编程验证方式用于在第二验证子操作时对第二数量个编程态进行验证,且第一数量和第二数量不同,第一验证子操作所需验证的编程态和第二验证子操作所需验证的编程态中存在相同的编程态。如此,在其中一种编程验证方式为逐个对每个编程态进行验证时,另一种编程验证方式中将存在某次验证子操作同时验证多个编程态,该编程验证方式所使用的时间也就相对较短,所以本申请将第一编程验证方式和第二编程验证方式进行结合,能够缩短整体的编程验证时间,从而提高整体编程速度。

Description

存储器、存储系统以及操作方法
技术领域
本申请涉及存储技术领域,特别涉及一种存储器、存储系统以及操作方法。
背景技术
近年来,为了进一步提高存储器的存储密度,三维存储器应运而生。通过对三维存储器中的存储单元进行编程来改变存储单元的阈值电压,从而实现将数据写入存储单元。由于存储单元的不同阈值电压对应不同的编程态,编程态指示存储单元中存储的数据状态(比如,数据值),因此在对存储单元进行编程后,需要验证该存储单元的阈值电压是否达到目标编程态所对应的阈值电压。
相关技术是基于ISPP(Incremental step pulse programming,增量脉冲编程)技术进行编程操作的。在ISPP技术中,对选定存储单元行施加编程脉冲后,依次对每个编程态进行验证,以验证该选定存储单元行中各个存储单元当前所达到的编程态。这种编程验证方式所用的时间较长,甚至可能会占据整个编程过程的至少一半以上,严重降低编程速度。
发明内容
本申请实施例提供了一种存储器、存储系统以及操作方法,可以降低编程过程中编程验证所需的时间,进而提高编程速度。所述技术方案如下:
一方面,提供了一种存储器,包括:
存储阵列,所述存储阵列包括多个存储单元行;
多个字线,所述多个字线分别耦合到所述多个存储单元行;以及
外围电路,所述外围电路耦合到所述多个字线并且被配置为:
基于选定字线对选定存储单元行施加多个编程脉冲;
在至少两个所述编程脉冲中的每个编程脉冲后,对所述选定存储单元行执行一个验证操作;
其中,至少两个所述验证操作包括至少一个第一验证操作和至少一个第二验证操作,所述选定存储单元行为待编程的存储单元行,在所述第一验证操作中,采用第一编程验证方式,在所述第二验证操作中,采用第二编程验证方式;
所述第一验证操作和所述第二验证操作均包括多次验证子操作,所述第一编程验证方式用于在第一验证子操作时对第一数量个编程态进行验证,所述第二编程验证方式用于在第二验证子操作时对第二数量个编程态进行验证,所述第一数量和所述第二数量不同,所述第一验证子操作所需验证的编程态,和所述第二验证子操作所需验证的编程态中存在相同的编程态。
可选地,所述第一验证操作和所述第二验证操作交替执行。
可选地,所述第一验证操作为奇数次验证操作,所述第二验证操作为偶数次验证操作。
可选地,所述至少两个验证操作包括交替的第一序列和第二序列,所述第一序列中的验证操作均为所述第一验证操作,所述第二序列中的验证操作均为所述第二验证操作。
可选地,所述至少两个验证操作中前m个验证操作均为所述第一验证操作,所述至少两个验证操作中后n个验证操作均为所述第二验证操作,所述m和所述n均为正整数。
可选地,所述第一数量大于或等于2,所述第二数量为1。
可选地,所述第一编程验证方式还用于在第三验证子操作时对第三数量个编程态进行验证,所述第一数量和所述第三数量不同,所述第一验证子操作和所述第三验证子操作为所述多次验证子操作中除第一次和最后一次验证子操作之外的验证子操作。
可选地,所述第一验证操作中所述多次验证子操作交替对所述第一数量个编程态和第三数量个编程态进行验证。
可选地,在所述第一验证操作中奇数次验证子操作时对所述第一数量个编程态进行验证,在所述第一验证操作中偶数次验证子操作时对所述第三数量个编程态进行验证。
可选地,所述第一验证操作中多次验证子操作包括交替的第三序列和第四序列,在所述第三序列中的每次验证子操作时对所述第一数量个编程态进行验证,在所述第四序列中的每次验证子操作时对所述第三数量个编程态进行验证。
可选地,所述第一验证操作在前w次验证子操作均对所述第一数量个编程态进行验证,后v次验证子操作均对第三数量个编程态进行验证,所述w和所述v均为正整数。
可选地,所述外围电路被配置为:
在第i个编程脉冲后,对所述选定存储单元行中的目标存储单元执行所述第一验证子操作,所述第一验证子操作用于验证第一编程态和第二编程态,所述第一编程态低于所述第二编程态,所述目标存储单元的目标编程态为所述第二编程态;
如果通过所述第一验证子操作确定所述目标存储单元的编程态达到所述第一编程态,则在第i+1个编程脉冲后,对所述目标存储单元执行所述第二验证子操作,所述第二验证子操作用于验证所述第二编程态;
如果通过所述第二验证子操作确定所述目标存储单元的编程态没有达到所述第二编程态,则在施加第i+2个编程脉冲后不对所述目标存储单元执行验证子操作。
可选地,所述多个验证子操作中先执行的验证子操作所需验证的编程态,高于后执行的验证子操作所需验证的编程态。
另一方面,提供了一种存储器,包括:
存储阵列,所述存储阵列包括多个存储单元行;
多个字线,所述多个字线分别耦合到所述多个存储单元行;以及
外围电路,所述外围电路耦合到所述多个字线并且被配置为:
基于选定字线对选定存储单元行施加编程脉冲;
在对所述选定存储单元行施加编程脉冲后,对所述选定存储单元行执行验证操作;
其中,所述选定存储单元行为待编程的存储单元行,所述验证操作包括多次验证子操作,所述多次验证子操作中至少两次验证子操作所需验证的编程态的数量不同,所述至少两次验证子操作为所述多次验证子操作中除第一次和最后一次验证子操作之外的验证子操作。
可选地,在所述多次验证子操中交替对第一数量个编程态和第三数量个编程态进行验证。
可选地,在奇数次验证子操时对所述第一数量个编程态进行验证,在偶数次验证子操时对所述第三数量个编程态进行验证。
可选地,所述多次验证子操作包括交替的第三序列和第四序列,在所述第三序列中的每次验证子操作时对所述第一数量个编程态进行验证,在所述第四序列中的每次验证子操作时对所述第三数量个编程态进行验证。
可选地,在所述多次验证子操作中的前w次验证子操作时分别对第一数量个编程态进行验证,在所述多次验证子操作中的后v次验证子操作时分别对第三数量个编程态进行验证。
另一方面,提供了一种存储系统,所述存储系统包括:
上述任一方面所述的存储器;
以及耦合到所述存储器并且被配置为控制所述存储器的控制器。
另一方面,提供了一种存储器的操作方法,所述方法包括:
基于选定字线对选定存储单元行施加多个编程脉冲;
在至少两个所述编程脉冲中的每个编程脉冲后,对所述选定存储单元行执行一个验证操作;
其中,至少两个所述验证操作包括至少一个第一验证操作和至少一个第二验证操作,所述选定存储单元行为待编程的存储单元行,在所述第一验证操作中,采用第一编程验证方式,在所述第二验证操作中,采用第二编程验证方式;
所述第一验证操作和所述第二验证操作均包括多次验证子操作,所述第一编程验证方式用于在第一验证子操作时对第一数量个编程态进行验证,所述第二编程验证方式用于在第二验证子操作时对第二数量个编程态进行验证,所述第一数量和所述第二数量不同,所述第一验证子操作所需验证的编程态,和所述第二验证子操作所需验证的编程态中存在相同的编程态。
可选地,所述第一验证操作和所述第二验证操作交替执行。
可选地,所述第一验证操作为奇数次验证操作,所述第二验证操作为偶数次验证操作。
可选地,至少两个所述验证操作包括交替的第一序列和第二序列,所述第一序列中的验证操作均为所述第一验证操作,所述第二序列中的验证操作均为所述第二验证操作。
可选地,至少两个所述验证操作中前m个验证操作均为所述第一验证操作,至少两个所述验证操作中后n个验证操作均为所述第二验证操作,所述m和所述n均为正整数。
可选地,所述第一数量大于或等于2,所述第二数量为1。
可选地,所述第一编程验证方式还用于在第三验证子操作时对第三数量个编程态进行验证;
所述第一数量和所述第三数量不同,所述第一验证子操作和所述第三验证子操作为所述多次验证子操作中除第一次和最后一次验证子操作之外的验证子操作。
可选地,所述在至少两个所述编程脉冲中的每个编程脉冲后,对所述选定存储单元行执行一个验证操作,包括:
在第i个编程脉冲后,对所述选定存储单元行中的目标存储单元执行所述第一验证子操作,所述第一验证子操作用于验证第一编程态和第二编程态,所述第一编程态低于所述第二编程态,所述目标存储单元的目标编程态为所述第二编程态;
如果通过所述第一验证子操作确定所述目标存储单元的编程态达到所述第一编程态,则在第i+1个编程脉冲后,对所述目标存储单元执行所述第二验证子操作,所述第二验证子操作用于验证所述第二编程态;
如果通过所述第二验证子操作确定所述目标存储单元的编程态没有达到所述第二编程态,则在施加第i+2个编程脉冲后不对所述目标存储单元执行验证子操作。
可选地,所述多次验证子操作中先执行的验证子操作所需验证的编程态,高于后执行的验证子操作所需验证的编程态。
另一方面,提供了一种存储器的操作方法,所述方法包括:
基于选定字线对选定存储单元行施加编程脉冲;
在对所述选定存储单元行施加编程脉冲后,对选定存储单元行执行验证操作;
其中,所述选定存储单元行为待编程的存储单元行,所述验证操作包括多次验证子操作,所述多次验证子操作中至少两次验证子操作所需验证的编程态的数量不同,所述至少两次验证子操作为所述多次验证子操作中除第一次和最后一次验证子操作之外的验证子操作。
由于第一编程验证方式用于在第一验证子操作时对第一数量个编程态进行验证,第二编程验证方式用于在第二验证子操作时对第二数量个编程态进行验证,且第一数量和第二数量不同,第一验证子操作所需验证的编程态和第二验证子操作所需验证的编程态中存在相同的编程态。如此,在其中一种编程验证方式为逐个对每个编程态进行验证的场景中,另一种编程验证方式中将存在某次验证子操作同时验证多个编程态,这样第一编程验证方式和第二编程验证方式各自所需执行的验证子操作的次数将不同。而且,当编程验证方式所需执行的验证子操作的次数较少时,该编程验证方式所使用的时间也就相对较短,所以本申请实施例将第一编程验证方式和第二编程验证方式进行结合,能够缩短整体的编程验证时间,从而提高整体编程速度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种存储系统的示意图;
图2是本申请实施例提供的一种存储卡的示意图;
图3是本申请实施例提供的另一种存储卡的示意图;
图4是本申请实施例提供的另一种存储卡的示意图;
图5是本申请实施例提供的一种包括存储串的存储阵列的截面示意图;
图6是本申请实施例提供的一种外围电路的示意图;
图7是本申请实施例提供的一种TLC的阈值电压分布示意图;
图8是本申请实施例提供的一种QLC的阈值电压分布示意图;
图9是本申请实施例提供的一种基于ISPP技术的编程流程示意图;
图10是本申请实施例提供的一种存储器的操作方法的流程图;
图11是本申请实施例提供的一种第一编程验证方式的示意图;
图12是本申请实施例提供的一种第二编程验证方式的示意图;
图13是本申请实施例提供的另一种编程验证方式的示意图;
图14是本申请实施例提供的另一种编程验证方式的示意图;
图15是本申请实施例提供的一种各个编程验证方案的对比示意图;
图16是针对图15中三个方案的详细流程图;
图17是本申请实施例提供的另一种存储器的操作方法流程图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1是本申请实施例提供的一种存储系统10的示意图。如图1所示,该存储系统10包括:一个或多个存储器100,以及耦合到存储器100并且被配置为控制存储器100的控制器200。
控制器200可以被配置为控制存储器100所执行的操作。比如读取、擦除和编程操作。控制器200还可以被配置为管理关于存储在或要存储在存储器100中的数据的各种功能,包括但不限于坏块管理、垃圾收集、逻辑地址到物理地址的转换、损耗均衡等。可选地,控制器200还可以被配置为处理关于从存储器100读取的或者被写入到存储器100的数据的纠错码(Error Correcting Code,ECC)。控制器200还可以执行任何其他合适的功能。比如,格式化存储器100。
控制器200还可以根据特定通信协议与外部设备通信。示例地,控制器200可以通过各种接口协议中的至少一种与外部设备通信。接口协议可以为通用串行总线(UniversalSerial Bus,USB)协议、多媒体卡(Multi-Media card,MMC)协议、外围部件互连(Peripheral Component Interconnect,PCI)协议、PCI高速(PCI-E)协议、高级技术附件(Advanced Technology Attachment,ATA)协议、串行ATA协议、并行ATA协议、小型计算机小型接口(Small Computer System Interface,SCSI)协议、增强型小型磁盘接口(EnhancedSmall Drive Interface,ESDI)协议、集成驱动电子设备(Integrated DevelopmentEnvironment,IDE)协议、火线(Fire wire)协议等。
在一些实施例中,控制器200,以及一个或多个存储器100可以集成到各种类型的电子设备中。该电子设备可以是移动电话、台式计算机、膝上型计算机、平板计算机、车辆计算机、游戏控制台、打印机、定位设备、可穿戴电子设备、智能传感器、虚拟现实(VirtualReality,VR)设备、增强现实(Augmented Reality,AR)设备或者其中具有储存器的任何其他合适的电子设备。这种场景下,如图1所示,存储系统10还包括主机300。控制器200耦合到主机300。控制器200可以管理存储在存储器100中的数据,并且与主机300通信,以实现前述电子设备的功能。
在另一些实施例中,控制器200,以及一个或多个存储器100可以集成到各种类型的存储设备中。
作为一种示例,如图2所示,控制器200和单个存储器100可以集成到存储卡400中。存储卡400可以包括个人计算机存储器卡国际协会(PCMCIA,PC)卡、紧凑闪存(CompactFlash,CF)卡、智能媒体(Smart Media,SM)卡、存储器棒、多媒体卡(Multi-Media Card,MMC)、超小型MMC(RS-MMC)、微型MMC(micro-MMC)、安全数码(Secure Digital,SD)卡、通用闪存存储(Universal Flash Storage,UFS)等。如图2所示,存储卡400还可以包括将存储卡400与主机耦合的连接器410。
作为另一种示例,如图3所示,控制器200和多个存储器100可以集成到固态驱动器(Solid State Disk,SSD)500中。固态驱动器500还可以包括将固态驱动器500与主机耦合的连接器510。其中,固态驱动器500的存储容量和/或操作速度大于存储卡400的存储容量和/或操作速度。
此外,图1至图3中的存储器100可以是本申请实施例涉及的任何存储器。比如,可以是3D NAND(与非门)存储器。下面对存储器100的结构进行解释说明。
图4是本申请实施例提供的一种存储器100的示意图。如图4所示,存储器100包括:
存储阵列110,存储阵列110包括多个存储单元行;
多个字线120,多个字线120分别耦合到多个存储单元行;
外围电路130,外围电路130耦合到多个字线120并且被配置为对多个存储单元行中的选定存储单元行执行验证操作或编程操作,选定存储单元行为选定字线所耦合的存储单元行,其中,为了执行验证操作或编程操作,外围电路130被配置为执行本申请实施例提供的存储器的操作方法。
存储阵列110可以是NAND闪存存储阵列。如图1所示,NAND闪存存储阵列包括多个存储串111,存储串111以阵列形式排布在衬底上,每个存储串111在衬底(未示出)上方垂直地延伸。在一些实施例中,每个存储串111包括串联耦合并且垂直堆叠的多个存储单元112。
如图4所示,每个存储串111还可以包括位于底部的源极选择栅(source selectgate,SSG)113和位于顶部的漏极选择栅(drain select gate,DSG)114。源极选择栅也称为下选择管、底部选择栅(bottom select gate,BSG)或源极选择管,漏极选择栅也称为上选择管、顶部选择栅(top select gate,TSG)或漏极选择管。源极选择栅113和漏极选择栅114可以被配置为在读取和编程操作期间激活选定的存储串111。
在一些实施例中,每个存储串111的漏极选择栅114耦合到相应的位线115,可以经由输出总线(未示出)从位线115读取或写入数据。
在一些实施例中,每个存储串111被配置为通过一个或多个DSG线116将选择电压(比如,高于具有漏极选择栅114的晶体管的阈值电压)或取消选择电压(比如,0V)施加到相应的漏极选择栅114。和/或,在一些实施例中,每个存储串111被配置为通过一个或多个SSG线117将选择电压(比如,高于具有源极选择栅113的晶体管的阈值电压)或取消选择电压(比如,0V)施加到相应的源极选择栅113而被选择或被取消选择。
如图4所示,存储串111可以被组织为多个块140,对于多个块140中的任一个块140,该块140可以具有一个源极线(source line,SL)118,该块140中的所有存储串111的源极通过该源极线118耦合,该源极线也称为公共源极线或阵列公共源极(array commonsource,ACS)。
需要说明的是,该源极线118用于接地,以实现后续在某些操作中将该块140中的存储串的各个存储单元的源极接地。
其中,每个块140是用于擦除操作的基本数据单位,也即同一块140上的所有存储单元112同时被擦除。为了擦除选定块中的存储单元112,可以用擦除电压(Vers)(比如,高正电压(20V或更高))偏置耦合到选定块的源极线。
应当理解,在另一些实施例中,可以在半块级、在四分之一块级或者在具有任何合适数量的块或块的任何合适的分数级执行擦除操作。
如图4所示,同一块140中相邻存储串111的同一层存储单元112可以通过字线120耦合,字线120用于选择块140中哪一层存储单元112受读取和编程操作的影响。
在一些实施例中,每个字线120耦合到存储单元112所属的页150,页150是用于编程操作的基本数据单位。以位(byte)为单位的一页150的大小,可以与一个块140中由字线120耦合的存储串111的数量相关。每个字线120可以耦合在相应页150中的每个存储单元112的控制栅极(也即栅极电极)上。可以理解的是,一个存储单元行即为位于同一页150的多个存储单元112。
需要说明的是,一个块140中的同一层存储单元对应同一个字线,但是同一层的存储单元可以划分为一个或多个页。也即一个字线可以耦合一个或多个页,比如对于SLC,一个字线耦合到一个页,对于MLC,一个字线耦合到两个页。
图5是本申请实施例提供的一种包括存储串111的存储阵列110的截面示意图。如图5所示,存储串111可以在衬底101上方垂直地延伸并穿过堆叠层102。衬底101可以包括硅(比如,单晶硅)、硅锗(SiGe)、砷化镓(GaAs)、锗(Ge)、绝缘体上硅(SOI)、绝缘体上锗(GOI)或者任何其他合适的材料。
堆叠层102可以包括交替的栅极导电层103和栅极到栅极电介质层104。堆叠层102中的栅极导电层103和栅极到栅极电介质层104的成对数量可以确定存储阵列110中的存储单元112的数量。
栅极导电层103可以包括导电材料,导电材料包括但不限于钨(W)、钴(Co)、铜(Cu)、铝(Al)、多晶硅、掺杂硅、硅化物或其任何组合。在一些实施例中,每个栅极导电层103包括金属层,比如,钨层。在另一些实施例中,每个栅极导电层103包括掺杂多晶硅层。此外,每个栅极导电层103可以包括围绕存储单元112的控制栅极,并且可以在堆叠层102的顶部处横向地延伸作为DSG线116、在堆叠层102的底部处横向地延伸作为SSG线117、或者在DSG线116与SSG线117之间横向地延伸作为字线120。
如图5所示,存储串111包括垂直地延伸并穿过堆叠层102的沟道结构105。在一些实施例中,沟道结构105包括填充有(一种或多种)半导体材料(比如,作为半导体沟道)和(一种或多种)电介质材料(比如,作为存储膜)的沟道孔。半导体沟道包括硅,比如多晶硅。存储膜是包括隧穿层、存储层(又称为“电荷捕获/存储层”)和阻挡层的复合电介质层。
在一些实施例中,沟道结构105具有圆柱形状(比如,柱形状)。半导体沟道和存储膜中的各层以此顺序从圆柱的中心朝向圆柱的外表面径向布置。
应当理解,尽管在图5中未示出,存储阵列110还可以包括其他的附加部件,附加部件包括但不限于栅极线缝隙/源极触点、局部触点、互连层等。
返回参考图4,外围电路130可以通过位线115、字线120、源极线118、SSG线117和DSG线116耦合到存储阵列110。外围电路130可以包括任何合适的模拟、数字以及混合信号电路,以用于通过经由位线115、字线120、源极线118、SSG线117和DSG线116将电压信号和/或电流信号施加到存储单元112以及从存储单元112感测电压信号和/或电流信号来促进存储阵列110的操作。
外围电路130可以包括使用金属-氧化物-半导体(MOS)技术形成的各种类型的外围电路。比如,图6示出了一些示例性外围电路130,外围电路130包括页缓冲器/感测放大器131、列解码器/位线(BL)驱动器132、行解码器/字线(WL)驱动器133、电压发生器134、控制逻辑单元135、寄存器136、接口137和数据总线138。应当理解,在一些示例中,还可以包括图6中未示出的附加外围电路。
页缓冲器/感测放大器131可以被配置为根据来自控制逻辑单元135的控制信号从存储阵列110读取数据以及向存储阵列110编程(写入)数据。比如,页缓冲器/感测放大器131可以存储要被编程到存储阵列110的一个页130中的一页编程数据(写入数据)。页缓冲器/感测放大器131还可以执行验证操作,以确保数据已经被正确地编程到选定字线120耦合的存储单元112中。页缓冲器/感测放大器131还可以感测来自位线115的低功率信号,该低功率信号表示存储在存储单元112中的数据位,并且在读取操作中将小电压摆幅放大到可识别的逻辑电平。
列解码器/位线驱动器132可以被配置为由控制逻辑单元135控制,并且通过施加从电压发生器134生成的位线电压来选择一个或多个存储串111。
行解码器/字线驱动器133可以被配置为由控制逻辑单元135控制,并且选择/取消选择存储阵列110的块140,并且选择/取消选择块140的字线120。行解码器/字线驱动器133还可以被配置为使用从电压发生器134生成的字线电压(VWL)来驱动字线120。在一些实施例中,行解码器/字线驱动器133还可以选择/取消选择并且驱动SSG线117和DSG线116。如下文详细描述的,行解码器/字线驱动器133被配置为对耦合到(一个或多个)选定字线120的存储单元112执行擦除操作。
电压发生器134可以被配置为由控制逻辑单元135控制,并且生成要被供应到存储阵列110的字线电压(比如,读取电压、编程电压、通过电压、局部电压、验证电压等)、位线电压和源极线电压。
控制逻辑单元135可以耦合到上文描述的外围电路中的各个电路,并且被配置为控制各个电路的操作。
寄存器136可以耦合到控制逻辑单元135,寄存器可以包括状态寄存器、命令寄存器和地址寄存器,以用于存储用于控制外围电路中每个电路的操作的状态信息、命令操作码(OP码)和命令地址。
接口(I/F)137可以耦合到控制逻辑单元135,并且充当控制缓冲器,以缓冲从主机(未示出)接收的控制命令并且并将其中继到控制逻辑单元135,以及缓冲从控制逻辑单元135接收的状态信息并且将其中继到主机。接口137还可以经由数据总线138耦合到列解码器/位线驱动器132,并且充当数据I/O接口和数据缓冲器,以缓冲数据,并且将其中继到存储阵列110或从存储阵列110中继或缓冲数据。
以上存储器相关硬件实施例的描述,具有同下述方法实施例相似的有益效果。对于存储器相关硬件实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
在上述图1至图6中,存储单元112可以为包括浮栅晶体管的浮栅型存储单元,也可以为包括电荷捕获晶体管的电荷捕获型存储单元。这些类型的存储单元中存储的数据不同时,存储单元中捕获的电子数量将不同,从而使得存储单元的阈值电压不同。基于此,后续便可通过确定存储单元的阈值电压来确定存储单元中存储的数据为多少。其中,在存储单元存储的数据不同时,存储单元处于不同的状态,也即,存储单元对应有不同的状态,不同的状态指示存储单元所存储的数据不同。
在一些实施例中,存储单元112可以为单级单元(Single-Level Cell,SLC)。SLC具有两种可能的状态,用于存储一位数据,分别为0、1。其中,将存储数据1对应的状态称为擦除态,将存储数据0对应的状态称为编程态。
在另一些实施例中,存储单元112可以为多级单元(Multi-Level Cell,MLC)。MLC具有四种可能的状态,用于存储两位数据,分别为00、01、10、11。其中,将存储数据11对应的状态称为擦除态,将存储数据00、01、10对应的状态称为编程态。也即,对于MLC,有一个擦除态和三个编程态。
在另一些实施例中,存储单2可以为三级单元(Triple-Level Cell,TLC)。TLC具有八种可能的状态,用于存储三位数据,分别为000、100、010、001、110、101、011、111。其中,将存储数据111对应的状态称为擦除态,将存储其他七个数据对应的状态称为编程态。也即,对于TLC,有一个擦除态和七个编程态。
在另一些实施例中,存储单元112可以为四级单元(Quad-Level Cell,QLC)。QLC具有十六种可能的状态,用于存储四位数据,存储的四位数据在此不再一一举例说明。其中,将存储数据1111对应的状态称为擦除态,将存储其他十五个数据对应的状态称为编程态。也即,对于QLC,有一个擦除态和十五个编程态。
图7是本申请实施例提供的一种TLC的阈值电压分布示意图。如图7所示,TLC包括从左到右的八个状态,这八个状态对应的数据分别如图7所示。其中,最左边的为擦除态,然后依次为7个编程态,标记为L1至L7。图8是本申请实施例提供的一种QLC的阈值电压分布示意图。如图8所示,QLC包括从左到右的16个状态。其中,最左边的为擦除态,然后依次为15个编程态,标记为L1至L15。
如图7和图8所示,每个编程态对应一个阈值电压范围,如果存储单元的阈值电压落入某个编程态对应的阈值电压范围内,则表明该存储单元当前达到该编程态。基于此,在对存储单元进行编程验证时,可以通过判断存储单元当前的阈值电压来验证存储单元是否达到目标编程态。
目前,对存储器的编程可以通过ISPP技术实现。图9是本申请实施例提供的一种基于ISPP技术的编程流程示意图。如图9所示,该编程流程包括:逐步向存储单元施加一系列幅值渐增的编程脉冲(program pulse,PP)。第一次施加的编程脉冲的电压幅值为VPGM-START,编程脉冲每次步进的增量为ΔISPP。其中,VPGM-START、ΔISPP以及单个编程脉冲的维持时长可以预先配置。在施加编程脉冲后,可以验证存储单元是否达到目标编程态,也即对该存储单元执行编程验证(program verify,PV)操作。如果存储单元没有达到目标编程态,则在下一次施加编程脉冲后,继续验证该存储单元,直至该存储单元达到目标编程态,然后终止对该存储单元进行编程。
目前在ISPP技术中,在施加编程脉冲后,依次对每个编程态执行验证操作,以验证该存储单元当前所达到的编程态。这种编程验证方式所需的时间较长。基于此,本申请实施例提供了一种存储器的操作方法,以减少施加编程脉冲后对存储单元行进行验证所需的时间。
图10是本申请实施例提供的一种存储器的操作方法的流程图。如图10所示,该方法包括如下几个步骤。
步骤1001:基于选定字线对选定存储单元行施加多个编程脉冲。
步骤1001:在至少两个编程脉冲中的每个编程脉冲后,对选定存储单元行执行一个验证操作,至少两个验证操作包括至少一个第一验证操作和至少一个第二验证操作,在第一验证操作中,采用第一编程验证方式,在第二验证操作中,采用第二编程验证方式。
其中,选定存储单元行为待编程的存储单元行,第一验证操作和第二验证操作均包括多次验证子操作,第一编程验证方式用于在第一验证子操作时对第一数量个编程态进行验证,第二编程验证方式用于在第二验证子操作时对第二数量个编程态进行验证,第一数量和第二数量不同,第一验证子操作所需验证的编程态,和第二验证子操作所需验证的编程态中存在相同的编程态。
其中,第一验证子操作所需验证的编程态,和第二验证子操作所需验证的编程态中存在相同的编程态,可以示例地理解为:第一验证子操作用于验证L7和L8时,第二验证子操作用于验证L7,或者,第二验证子操作用于验证L8。也即,第一验证子操作和第二验证子操作为所需验证编程态中存在交集的一对验证子操作。
需要说明的是,第一编程验证方式和第二编程验证方式中所需验证编程态中存在交集的验证子操作通常包括多对验证子操作,对于这多对验证子操作,可以在每对验证子操作上均满足第一验证子操作和第二验证子操作,也可以在这多对验证子操作的部分中满足第一验证子操作和第二验证子操作。
本申请实施例基于ISPP技术对选定存储单元行进行编程。具体为:通过选定字线,向选定存储单元行中存储单元的控制栅极施加一系列幅值渐增的编程脉冲,在每次施加一个编程脉冲后,可选地对选定存储单元行进行验证,以确定选定存储单元行中各个存储单元是否达到目标编程态。
示例地,可以在每个编程脉冲后对选定存储单元行执行一个验证操作。可选地,也可以在前几个编程脉冲后不验证选定存储单元行,在之后施加的每个编程脉冲后验证选定存储单元行。
为了便于说明,将施加一次编程脉冲后对选定存储单元行进行验证的过程称为一个验证操作。如果在对选定存储单元行进行编程的过程中施加了多个编程脉冲,且在施加的至少两个编程脉冲中每个编程脉冲后均有一个验证操作。这样就会存在至少两个验证操作,该至少两个验证操作与该至少两个编程脉冲一一对应。其中,每个验证操作包括多个验证子操作,每个验证子操作用于验证至少一个编程态。
由于第一编程验证方式和第二编程验证方式分别在第一验证子操作和第二验证子操作时验证的编程态的数量不同,所以,在其中一种编程验证方式为逐个对每个编程态进行验证的场景中,另一种编程验证方式中将存在某次验证子操作同时验证多个编程态。而且,当编程验证方式所需执行的验证子操作的次数较少时,该编程验证方式所使用的时间也就相对较短,所以本申请实施例将第一编程验证方式和第二编程验证方式进行结合,能够缩短整体的编程验证时间,从而提高整体编程速度。
本申请实施例在对选定存储单元行进行编程的过程中,可以按照不同的策略,将第一编程验证方式和第二编程验证方式进行结合,以对选定存储单元行中的存储单元的编程态进行验证。下面分两个策略分别说明。
策略一:在至少两个验证操作中,第一验证操作和第二验证操作交替执行。
也即,对选定存储单元行进行的至少两个验证操作中交替采用第一编程验证方式和第二编程验证方式。
其中,对选定存储单元行进行的至少两个验证操作交替采用第一编程验证方式和第二编程验证方式可以有以下两种实现方式。
第一种实现方式:第一验证操作为至少两个验证操作中的奇数个验证操作,第个验证操作为至少两个验证操作中的偶数个验证操作。
也即,该至少两个验证操作中的奇数个验证操作采用第一编程验证方式,该至少两个验证操作中的偶数个验证操作采用第二编程验证方式。
这种场景下,在对选定存储单元行施加的至少两个编程脉冲进行编程的过程中,这至少两个编程脉冲中任意间隔一次先后施加的两个编程脉冲后使用相同的编程验证方式验证选定存储单元行。从而实现上述交替使用第一编程验证方式和第二编程验证方式验证选定存储单元行。
比如,对选定存储单元行总共施加了10次编程脉冲。则可以在1、3、5、7、9次施加编程脉冲后,基于第一编程验证方式对选定存储单元行进行验证,在2、4、6、8、10次施加编程脉冲后,基于第二编程验证方式对选定存储单元行进行验证。
第二种实现方式:该至少两个验证操作包括交替的第一序列和第二序列,第一序列中的验证操作均为第一验证操作,第二序列中的验证操作均为第二验证操作。
也即,第一序列中的每个验证操作采用第一编程验证方式,第二序列中的每个验证操作采用第二编程验证方式。
其中,第一序列和第二序列中至少一者包括至少两个验证操作,且第一序列包括的验证操作的数量和第二序列包括的验证操作的数量可以相同,也可以不同。
上述交替的第一序列和第二序列可以理解为:将至少两个验证操作按照执行时间从前到后的顺序划分为多个序列,这多个序列交替地包括第一序列和第二序列。
比如,对选定存储单元行总共施加了10次编程脉冲,相应地对选定存储单元行进行了10个验证操作。将在1、2次施加编程脉冲后进行的两个验证操作作为一个第一序列,将在3、4次施加编程脉冲后进行的两个验证操作作为一个第二序列,将在5、6次施加编程脉冲后进行的两个验证操作作为一个第一序列,将在7、8次施加编程脉冲后进行的两个验证操作作为一个第二序列,将在9、10次施加编程脉冲后进行的两个验证操作作为一个第一序列。也即,这10个验证操作中包括第一序列、第二序列、第一序列、第二序列、第一序列。其中,第一序列和第二序列分别包括两个验证操作。如此,在1和2、5和6、9和10次施加编程脉冲后,均采用第一编程验证方式对选定存储单元行进行验证,在3和4、7和8次施加编程脉冲后,均采用第二编程验证方式对选定存储单元行进行验证。
策略二:至少两个验证操作中前m个验证操作均为第一验证操作,至少两个验证操作中后n个验证操作均为第二验证操作,m和n均为正整数。
也即,对选定存储单元行进行的至少两个验证操作中的前m个验证操作均采用第一编程验证方式,这至少两个验证操作中的后n个验证操作均采用第二编程验证方式。
换句话说,在对选定存储单元行进行编程的过程中,可以在施加编程脉冲的前期,使用第一编程验证方式验证选定存储单元行,在施加编程脉冲的后期,使用第二编程验证方式验证选定存储单元行。
其中,m和n之和可以等于这至少两个验证操作的数量,也可以小于这至少两个验证操作的数量。
需要说明的是,在编程的刚开始阶段,选定存储单元行中大部分存储单元可能都没有达到目标编程态,此时可以采用粗略验证方式(即,所需执行的验证子操作的次数少的验证方式),以减少编程验证所需的时间。在编程的最后阶段,选定存储单元行中大部分存储单元可能都将要达到目标编程态,此时可以采用精细验证方式(即,所需执行的验证子操作的次数多的验证方式),以避免阈值电压分布退化。关于阈值电压分布退化的详细解释将在后续实施例中详细说明,在此先不展开阐述。
因此,在策略二中,在一些实施例中,前述的第二数量小于第一数量,如此第一编程验证方式所需执行的验证子操作的次数小于第二编程验证方式所需执行的验证子操作的次数。
在基于ISPP编程的过程中,依次施加的编程脉冲是幅值渐增的,因此,上述前m个验证操作和后n个验证操作的划分方式可以为:将电压幅值低于参考电压幅值的若干个编程脉冲后进行的验证操作作为前m个验证操作,将电压幅值超过参考电压幅值的若干个编程脉冲后进行的验证操作作为后n个验证操作。也即,可以在施加的编程脉冲的电压幅值较低时,使用第一编程验证方式验证选定存储单元行,在施加的编程脉冲的电压幅值较高时,使用第二编程验证方式验证选定存储单元行。
可选地,上述前m个验证操作和后n个验证操作的划分方式还可以为:预先设置一个数值,比如参考数值。在施加的编程脉冲的次数低于参考数值时,将施加编程脉冲后进行的验证操作作为前m个验证操作,这m个验证操作中每个验证操作均采用第一编程验证方式验证选定存储单元行。在施加的编程脉冲的次数超过参考数值时,将施加编程脉冲后进行的验证操作作为后n个验证操作,这n个验证操作中每个验证操作均采用第二编程验证方式验证选定存储单元行。相对于前述划分方式中需要判断编程脉冲的电压幅值,该划分方式实施起来容易操作。
前述两种策略用于示例说明如何使用第一编程验证方式和第二编程验证方式。可选地,上述两种编程验证方式还可以在不同的编程脉冲后任意组合使用。比如,在编程的刚开始阶段,采用第一编程验证方式来验证,在编程的中后期,采用第一编程验证方式和第二编程验证方式交替验证。或者,在编程的刚开始阶段,采用第一编程验证方式和第二编程验证方式交替验证,在编程的中后期,采用第二编程验证方式来验证。本申请实施例对此不再一一举例说明,任意两个编程脉冲后分别采用第一编程验证方式和第二编程验证方式验证的技术方案均在本申请实施例的范围之内。
上述实施例用于说明如何在施加不同的编程脉冲后使用第一编程验证方式和第二编程验证方式验证选定存储单元行。下面对第一编程验证方式和第二编程验证方式进行解释说明。
在本申请实施例中,在施加编程脉冲后,对选定存储单元行进行的验证操作具体是指:依次对选定存储单元行执行多次验证子操作,每次验证子操作验证的存储单元为该选定存储单元行中的选定存储单元,该选定存储单元为尚未达到目标编程态的存储单元。这多次验证子操作中每次验证子操作可以用于验证一个或多个编程态。比如,每次验证子操作用于验证一个编程态,也即分别对各个编程态依次进行验证。又比如,每次验证子操作用于验证两个相邻的编程态,也即同时对两个相邻的编程态进行验证。
为了便于说明,将每次验证子操作需要验证的编程态称为待验证编程态。当待验证编程态的数量为一个时,针对该待验证编程态的验证子操作具体是指:基于该待验证编程态,确定此次验证子操作所依据的电压界限(也即验证电压),该电压界限为待验证编程态对应的阈值电压范围中的最小阈值电压。然后确定存储单元的阈值电压是否超过该电压界限,如果超过该电压界限,则确定该存储单元达到了待验证编程态。如果没有超过该电压界限,则确定该存储单元没有达到待验证编程态,待下一个编程脉冲后继续上述判断过程。
当待验证编程态的数量为多个时,针对这多个待验证编程态的验证子操作具体是指:基于这多个待验证编程态,确定此次验证子操作所依据的电压界限,该电压界限为该多个待验证编程态中最低编程态对应的阈值电压范围中的最小阈值电压。然后确定存储单元的阈值电压是否超过该电压界限,如果超过该电压界限,则确定该存储单元达到了待验证编程态中的最低编程态。如果没有超过该电压界限,则确定该存储单元没有达到待验证编程态中最低编程态。
在存储单元达到了待验证编程态中的最低编程态后,如果该存储单元的目标编程态为待验证编程态中较高的编程态,则再对该存储单元施加一次或多次编程脉冲。其中,再对该存储单元施加的编程脉冲的次数可以与目标编程态和最低编程态之间的差值相关,如此,在再次施加编程脉冲后,不再验证该存储单元的阈值电压,直接默认该存储单元达到了目标编程态。从而实现一次验证子操作对多个相邻编程态的同时验证。
比如,当验证子操作用于验证两个编程态时,在存储单元达到了待验证编程态中较低的编程态后,如果该存储单元的目标编程态为待验证编程态中较高的编程态,则再对该存储单元施加一次编程脉冲,在再次施加编程脉冲后,无需验证该存储单元的阈值电压,直接默认该存储单元达到了目标编程态。从而实现对两个相邻编程态的同时验证。
基于上述介绍,第一编程验证方式和第二编程验证方式可以有以下两种实现方 式。
第一种实现方式:步骤1001中的第一数量大于或等于2,第二数量为1。
示例地,第一编程验证方式用于:对选定存储单元行依次执行h次验证子操作,h次验证子操作中的至少一次验证子操作分别用于验证至少两个相邻的编程态。第二编程验证方式用于:对选定存储单元行依次执行k次验证子操作,k小于h,k次验证子操作中的每次验证子操作用于验证一个编程态。
需要说明的是,当验证子操作需要验证的编程态的数量超过一个时,在存储单元达到了待验证编程态中的最低编程态后,在再次施加编程脉冲后,不再验证该存储单元的阈值电压,直接默认该存储单元达到了目标编程态,此时该存储单元的编程态实际可能还没有达到目标编程态,也即该存储单元的实际阈值电压还没有落入目标编程态对应的阈值电压范围内。此时对选定存储单元行完成编程后,达到该目标编程态的各个存储单元的实际阈值电压的分布范围要比目标编程态对应的阈值电压范围要宽,这种现象即为阈值电压分布退化(Vth distribution degeneration)。阈值电压分布退化后,根据目标编程态对应的阈值电压范围来读取存储单元中存储的数据时,容易出现读取数据错误的问题。
比如,假设某次验证子操作需要验证的编程态为L7和L8这两个相邻的编程态,选定存储单元行中某个存储单元的目标编程态为L8。在某次施加编程脉冲后,执行用于验证L7和L8的验证子操作,结果表明该存储单元的编程态达到L7,此时在下次施加编程脉冲后,不会对该存储单元的阈值电压进行验证,直接默认该存储单元的阈值电压落入了L8对应的阈值电压范围,也即该存储单元的编程态达到L8。这种场景下,该存储单元的实际阈值电压有可能还没有落入L8对应的阈值电压范围内,但是错认为该存储单元的编程态达到L8。显然,这种场景下,选定存储单元行中目标编程态为L8的各个存储单元的实际阈值电压分布范围要比L8对应的阈值电压范围要宽,这种现象即为阈值电压分布退化。
在本申请实施中,为了避免因验证子操作需要验证的编程态数量过多,导致阈值电压分布退化的现象,第二编程验证方式中的每次验证子操作仅用于验证一个编程态,第一编程验证方式中的至少一次验证子操作分别用于验证至少两个相邻的编程态。基于这两种编程验证方式的组合使用,可以在避免阈值电压分布退化的同时缩短编程过程中的执行验证操作所需的时间。
示例地,在对选定存储单元行进行验证的编程态包括存储器的全部编程态时,第二编程验证方式中的k为存储器的编程态总数量。比如,在TLC存储器中,k=7。在QLC存储器中,k=15。
此外,前述的第一编程验证方式中的至少一次验证子操作可以是指:第一编程方式中任一次或多次验证子操作。示例地,这至少一次可以为除了第一次验证子操作和/或最后一次验证子操作之外的一次或多次验证子操作。本申请实施例对此不再一一举例说明。
此外,上述验证子操作用于验证至少两个相邻的编程态可以是指:验证子操作用于验证两个相邻的编程态,或者用于验证三个或者更多数量的相邻的编程态。进一步地,为了避免阈值电压分布退化严重,某次验证子操作在同时验证至少两个相邻的编程态时,同时验证的编程态数量不宜过多。示例地,可同时验证两个相邻的编程态。
在一些实施例中,在施加编程脉冲后需要验证的编程态为存储器的全部编程态的情况下,也即第一编程验证方式和所述第二编程验证方式所需验证的编程态数量为存储器的编程态总数量,此时,对于第一编程验证方式,考虑到存储器的全部编程态总数量为奇数,可以除第一次或最后一次验证子操作外,其余每次验证子操作均用于验证两个相邻编程态,第一次或最后一次验证子操作用于验证一个编程态。该实施例可以降低编程验证过程的复杂度。
比如,对于TLC存储器,在上述第一编程验证方式中,可以将L1和L2两个相邻的编程态通过一次验证子操作来验证,将L3和L4两个相邻的编程态通过一次验证子操作来验证,将L5和L6两个相邻的编程态通过一次验证子操作来验证,将L7编程态单独通过一次验证子操作来验证。
又比如,对于QLC存储器,在上述第一编程验证方式中,可以将L1和L2两个相邻的编程态通过一次验证子操作来验证,将L3和L4两个相邻的编程态通过一次验证子操作来验证,将L5和L6两个相邻的编程态通过一次验证子操作来验证,将L7和L8两个相邻的编程态通过一次验证子操作来验证,将L9和L10两个相邻的编程态通过一次验证子操作来验证,将L10和L11两个相邻的编程态通过一次验证子操作来验证,将L11和L12两个相邻的编程态通过一次验证子操作来验证,将L13和L14两个相邻的编程态通过一次验证子操作来验证,将L15编程态单独通过一次验证子操作来验证。
图11是本申请实施例提供的一种第一编程验证方式的示意图。图12是本申请实施例提供的一种第二编程验证方式的示意图。如图11所示,对于QLC存储器,在施加一次编程脉冲后,依次对选定存储单元行执行8次验证子操作,这8次验证子操作分别用于验证L15、L14和L13、L12和L11、L10和L9、L8和L7、L6和L5、L4和L3、L2和L1。如图12所示,对于QLC存储器,在施加一次编程脉冲后,依次对选定存储单元行执行15次验证子操作,这15次验证子操作分别用于验证L15、L14、L13、L12、L11、L10、L9、L8、L7、L6、L5、L4、L3、L2、L1。
在图11和图12中,按照从高编程态到低编程依次进行验证,这种验证方式还称为反向验证(Reverse Verify)。本申请实施例中的第一编程验证方式和第二编程验证方式可以为反向验证。可选地,也可以为从低编程态到高编程依次进行验证。需要说明的是,相对于从低编程态到高编程依次进行验证,反向验证可以改善阈值电压分布退化。原因在于:相对于从低编程态到高编程依次进行验证,在反向验证的过程中,非选定存储单元行的沟道电势较高,这样在验证过程中,在非选定存储单元行的控制栅极施加通过电压Vpass(该Vpass用于在验证过程中导通存储串)后,可以降低非选定存储单元行的控制栅极和沟道之间的电势差,从而避免验证过程中沟道中载流子隧穿至非选定存储行中的存储单元的浮栅而影响存储单元的阈值电压。
也即是,在一些实施例中,第一编程验证方式中先执行的验证子操作验证的编程态,高于后执行的验证子操作验证的编程态。第二编程验证方式中先执行的验证子操作验证的编程态,也高于后执行的验证子操作验证的编程态。
需要说明的是,在第二编程验证方式中的每次验证子操作仅验证一个编程态,第一编程验证方式中至少一次验证子操作中的每次验证子操作用于验证至少两个相邻编程态的情况下,假设第一验证操作和第二验证操作的交替方式为:至少两个验证操作包括交替的第一序列和第二序列,第一序列中的验证操作均为第一验证操作,第二序列中的验证操作均为第二验证操作。这种场景下,第一序列和第二序列中的验证操作的数量可以有如下几种示例。
示例一,第一序列中的第一验证操作的数量为1,第二序列中第二验证操作的数量为多个。
这种情况下,在每采用第一编程验证方式(即粗略验证)验证选定存储单元行后,连续多次采用第二编程验证方式(即精细验证)验证选定存储单元行,以补偿第一编程验证方式引起的阈值电压分布退化。
其中,第二序列中第二验证操作的具体数量可以由开发人员预先基于实验测量得到,在此不再详细说明。
示例二,第一序列中的第一验证操作的数量为多个,第二序列中第二验证操作的数量为一个或多个。
如果在采用第一编程验证方式(即粗略验证)验证选定存储单元行后,存储单元的阈值电压分布退化并不会很严重,这种情况下,可以连续多次采用第一编程验证方式(即粗略验证)验证选定存储单元行,以尽可能减少整体编程所需时间。
也即,在本申请实施例中,可以基于存储器对阈值电压分布的需求以及对编程时间的需求,自适应选择合适的编程验证方式,以在阈值电压分布精度和编程效率两者之间达到平衡。
上述第一种实现方式中,第二编程验证方式中的每次验证子操作仅验证一个编程态,第一编程验证方式中至少一次验证子操作中的每次验证子操作用于验证至少两个相邻编程态。可选地,在另一些实施例中,在第一编程验证方式和第二编程验证方式中可以均存在对某些相邻编程态同时进行验证的验证子操作。这种场景下,第一编程验证方式或第二编程验证方式可以通过下述实现方式实现。
第二种实现方式:步骤1001中的第一数量和第二数量均大于或等于2。
也即无论是第一编程验证方式还是第二编程验证方式,均存在对某些相邻编程态同时进行验证的验证子操作,进一步提高了编程验证的灵活性。如此,在某些场景下,便可根据实际需求灵活配置第一编程验证方式和第二编程验证方式中各次验证子操作所需验证的编程态。
在上述第二种实现方式中,对于第一编程验证方式或第二编程验证方式,不同验证子操作还可以分别用于验证不同数量的编程态。
下面以第一编程验证方式为例进行说明。对于第一编程验证方式,不同验证子操作分别用于验证不同数量的编程态,具体可以理解为:第一编程验证方式用于在第一验证子操作时对第一数量个编程态进行验证的基础上,还用于在第三验证子操作时对第三数量个编程态进行验证。
其中,第一数量和第三数量不同,第一验证子操作和第三验证子操作为多次验证子操作中除第一次和最后一次验证子操作之外的验证子操作。
示例地,第一编程验证方式具体可以有以下两种情况。
情况一:第一验证操作中多次验证子操作交替对第一数量个编程态和第三数量个编程态进行验证。
也即,对于第一编程验证方式,多次验证子操作用于交替验证第一数量个编程态和第三数量个编程态。
在一些实施例中,情况一的实现方式可以为:在奇数次验证子操作时对第一数量个编程态进行验证,在偶数次验证子操作时对第三数量个编程态进行验证。也即,任意间隔一次先后执行的两次验证子操作验证的编程态的数量相同。
示例地,在施加一次编程脉冲后,第一次验证子操作用于验证第一数量个编程态,下一次验证子操作用于验证第三数量个编程态,下下次验证子操作用于验证第一数量个编程态,这样交替实现。
其中,第一数量和第三数量为正整数,第一数量和第三数量可以按照实际需求来配置。示例地,第一数量为1,第三数量为2。
比如,如图13所示,对于QLC存储器,在施加某次编程脉冲后,第一次验证子操作用于验证L15,第二次验证子操作用于验证L14和L13,第三次验证子操作用于验证L12,第四次验证子操作用于验证L11和L10,第五次验证子操作用于验证L9,第六次验证子操作用于验证L8和L7,第七次验证子操作用于验证L6,第八次验证子操作用于验证L5和L4,第九次验证子操作用于验证L3,第十次验证子操作用于验证L2和L1。
在另一些实施例中,情况一的实现方式可以为:对于第一编程验证方式,多次验证子操作包括交替的第三序列和第四序列,在第三序列中的每次验证子操作时对第一数量个编程态进行验证,在第四序列中的每次验证子操作时对第三数量个编程态进行验证。
其中,第三序列和第四序列均包括至少两次验证子操作,且第三序列包括的验证子操作的次数和第四序列包括的验证子操作的次数可以相同,也可以不同。
上述交替的第三序列和第四序列可以理解为:将多次验证子操作按照执行时间从前到后的顺序划分为多个序列,每个序列包括至少两次验证子操作,这多个序列交替地包括第三序列和第四序列。
比如,对选定存储单元行施加了某次编程脉冲,对选定存储单元行进行了6次验证子操作。将第1次和第2次验证子操作称为第三序列,将第3次和第4次验证子操作称为第四序列,将第5次和第6次验证子操作称为第三序列。也即,这6次验证子操作中包括第三序列、第四序列、第三序列。
假设第一数量为1,第二数量为2,则在第1次和第2次、第5次和第6次验证子操作中,每次验证子操作均用于验证一个编程态。在第3次和第4次验证子操作中,每次验证子操作均用于验证两个编程态。
情况二:第一验证操作在前w次验证子操作均对第一数量个编程态进行验证,后v次验证子操作均对第三数量个编程态进行验证,w和v均为正整数。
也即,在第一编程验证方式中,可以在前几次验证子操作中均验证第一数量个编程态,在后几次验证子操作均验证第三数量个编程态。
上述w和v之和可以等于多次验证子操作的次数,此时在施加某个编程脉冲后执行各次验证子操作时,先每个验证操作第一数量个编程态,然后再每个验证操作第三数量个编程态。
比如,第一数量为1,第三数量为2,如图14所示,对于QLC存储器,在采用第一编程验证方式验证时,第一次验证子操作用于验证L15,第二次验证子操作用于验证L14,第三次验证子操作用于验证L13,第四次验证子操作用于验证L12,第五次验证子操作用于验证L11,第六次验证子操作用于验证L10和L9,第七次验证子操作用于验证L8和L7,第八次验证子操作用于验证L6和L5,第九次验证子操作用于验证L4和L3,第十次验证子操作用于验证L2和L1。
可选地,上述w和v之和也可以小于多次验证子操作的次数。此时在施加某个编程脉冲后执行各次验证子操作时,在前期执行的每次验证子操作用于验证第一数量个编程态,在后期执行的每次验证子操作用于验证第三数量个编程态。中间执行的每次验证子操作用于验证的编程态的数量不做限定。
上述情况一和情况二中的第一数量可以不同,也可以相同。情况一和情况二中的第三数量可以不同,也可以相同。本申请实施例对此不作限定。
上述情况一和情况二是以第一编程验证方式为例进行说明。可选地,上述情况一和情况二也同样适用于第二编程验证方式,在此不再重复说明。
此外,在另一些实施例中,在第二编程验证方式为逐个编程态依次验证的场景中,第一编程验证方式中的实现方式同样可以参考上述情况一和情况二,在此同样不再重复说明。
综上所述,在本申请实施例中,在不同编程脉冲后采用不同的编程验证方式验证选定存储单元行,以实现在缩短编程验证时间的同时避免阈值电压分布退化。
下面结合附图15对本申请实施例提供的编程验证方案的技术效果进一步进行解释说明。
图15是本申请实施例提供的一种各个编程验证方案的对比示意图。在方案一中,在每个编程脉冲后采用图12中的第二编程验证方式来验证,在方案二中,在每个编程脉冲后采用图11中的第一编程验证方式来验证,在方案三中,若在一个编程脉冲后采用图11中的第一编程验证方式来验证,则在下一个编程脉冲后采用图12中的第二编程验证方式来验证。其中,方案三为本申请实施例提供的技术方案。
其中,在方案三中,假设不同编程脉冲后交替采用第一编程验证方式和第二编程验证方式,方案三的具体过程可以示例如下:
在第i个编程脉冲后,对选定存储单元行中的目标存储单元执行第一验证子操作,第一验证子操作用于验证第一编程态和第二编程态,第一编程态低于第二编程态,目标存储单元的目标编程态为第二编程态。也即在第i个编程脉冲后,采用第一编程验证方式验证选定存储单元行,第一编程验证方式中的第一验证子操作用于验证两个相邻的编程态。
如果通过第一验证子操作确定目标存储单元的编程态达到第一编程态,则在第i+1个编程脉冲后,对目标存储单元执行第二验证子操作,第二验证子操作用于验证第二编程态。也即在第i+1个编程脉冲后,采用第二编程验证方式验证选定存储单元行,第二编程验证方式中的第二验证子操作用于一个第二编程态。
如果通过第二验证子操作确定目标存储单元的编程态没有达到第二编程态,则在施加第i+2个编程脉冲后不对目标存储单元执行验证子操作。也即在第i+2个编程脉冲后,采用第一编程验证方式验证选定存储单元行,由于在第i编程脉冲后已经采用第一编程验证方式验证得到目标存储单元的编程态达到第一编程态,所以此次采用第二编程验证方式中无需再通过第一验证子操作验证目标存储单元的编程态,直接默认目标存储单元的编程态达到目标编程态(即第二编程态)。
下面以选定存储单元行中目标编程态为L8的存储单元为例解释上述三个方案。图16是针对图15中三个方案的详细流程图。
在方案一中,如图16所示,在施加编程脉冲1后,在执行针对L8编程态的验证子操作后,判断该存储单元是否达到目标编程态,如果确定该存储单元没有达到目标编程态L8。则下一次施加编程脉冲2后,在执行针对L8编程态的验证子操作后,继续判断该存储单元是否达到目标编程态,如果确定该存储单元没有达到目标编程态L8。则下一次施加编程脉冲3后,在执行针对L8编程态的验证子操作后,继续判断该存储单元是否达到目标编程态,如果确定该存储单元达到目标编程态L8,则终止(inhibit)对该存储单元的继续编程。
在方案二中,如图16所示,在施加编程脉冲1后,在执行针对L7编程态的验证子操作后,判断该存储单元是否达到编程态L7,如果确定该存储单元达到编程态L7。则下一次施加编程脉冲2后,直接默认该存储单元达到目标编程态L8,因此终止对该存储单元的继续编程。
在方案三中,如图16所示,在施加编程脉冲1后,如果此时采用第一编程验证方式来验证,则在执行针对L7和L8编程态的验证子操作后,判断该存储单元是否达到编程态L7,如果确定该存储单元达到编程态L7,则还需施加一次编程脉冲。在下一次施加编程脉冲2后,由于此时采用第二编程验证方式来验证,而第二编程验证方式需要对每个编程态都进行验证,因此需要判断该存储单元是否达到目标编程态L8,如果确定该存储单元没有达到目标编程态L8,则还需继续施加编程脉冲。在下一次施加编程脉冲3后,由于此次采用第一编程验证方式来验证,而在施加编程脉冲1后,已经采用第一编程验证方式验证该存储单元是否达到编程态L7,所以此次不再验证该存储单元是否达到目标编程态L8,而是直接默认该存储单元达到目标编程态L8,因此终止对该存储单元的继续编程。
基于图15以及图16中的对比可知,本申请实施例中的提供的技术方案一方面可以缩短编程时间,另一方面可以兼顾对每个编程态的验证从而避免阈值电压分布退化。
此外,前述图10所示的实施例中,在施加不同的编程脉冲后,基于不同的编程验证方式验证选定存储单元行。可选地,在本申请实施例中,在施加每次编程脉冲后,均按照同一种编程验证方式来验证,且在该编程验证方式中,在执行的不同次验证子操作中,各次编程操作验证的编程态数量不同。下面以图17为例对该实施例进行详细解释说明。
图17是本申请实施例提供的另一种存储器的操作方法流程图。如图17所示,该方法包括如下步骤。
步骤1701:基于选定字线对选定存储单元行施加编程脉冲。
步骤1702:在对选定存储单元行施加编程脉冲后,对选定存储单元行执行验证操作。其中,选定存储单元行为待编程的存储单元行,验证操作包括多次验证子操作,多次验证子操作中至少两次验证子操作所需验证的编程态的数量不同,至少两次验证子操作为多次验证子操作中除第一次和最后一次验证子操作之外的验证子操作。
在一些实施例中,这多次验证子操作用于交替验证第一数量个编程态和第二数量个编程态。
作为一种示例,该多次验证子操作中的奇数次验证子操作用于验证第一数量个编程态,该多次验证子操作中的偶数次验证子操作用于验证第二数量个编程态。
作为另一种示例,该多次验证子操作包括交替的第三序列和第四序列,第三序列中的每次验证子操作用于验证第一数量个编程态,第四序列中的每次验证子操作用于验证第三数量个编程态。
在另一些实施例中,这多次验证子操作中的前w次验证子操作均用于验证第一数量个编程态,这多次验证子操作中的后v次验证子操作均用于验证第三数量个编程态。
上述实施例的详细内容可以参考图10所示的实施例中的情况一和情况二,在此不再赘述。
综上所述,在本申请实施例中,在对选定存储单元行施加某次编程脉冲后,在执行的不同次验证子操作中,各次编程操作验证的编程态数量也可以不同。不仅提高了编程验证的灵活性,也相应缩短了编程验证所需的时间。
在本申请实施例中,术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。可以理解地,“第一”、“第二”等在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
应理解,说明书通篇中提到的“一些实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一些实施例中”或“在另一些实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
以上所述,仅为本申请的实施例,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (20)

1.一种存储器,其特征在于,包括:
存储阵列,所述存储阵列包括多个存储单元行;
多个字线,所述多个字线分别耦合到所述多个存储单元行;以及
外围电路,所述外围电路耦合到所述多个字线并且被配置为:
基于选定字线对选定存储单元行施加多个编程脉冲;
在至少两个所述编程脉冲中的每个编程脉冲后,对所述选定存储单元行执行一个验证操作;
其中,至少两个所述验证操作包括至少一个第一验证操作和至少一个第二验证操作,所述选定存储单元行为待编程的存储单元行,在所述第一验证操作中,采用第一编程验证方式,在所述第二验证操作中,采用第二编程验证方式;
所述第一验证操作和所述第二验证操作均包括多次验证子操作,所述第一编程验证方式用于在第一验证子操作时对第一数量个编程态进行验证,所述第二编程验证方式用于在第二验证子操作时对第二数量个编程态进行验证,所述第一数量和所述第二数量不同,所述第一验证子操作所需验证的编程态,和所述第二验证子操作所需验证的编程态中存在相同的编程态。
2.如权利要求1所述的存储器,其特征在于,所述第一验证操作和所述第二验证操作交替执行。
3.如权利要求2所述的存储器,其特征在于,所述第一验证操作为奇数次验证操作,所述第二验证操作为偶数次验证操作。
4.如权利要求2所述的存储器,其特征在于,至少两个所述验证操作包括交替的第一序列和第二序列,所述第一序列中的验证操作均为所述第一验证操作,所述第二序列中的验证操作均为所述第二验证操作。
5.如权利要求1所述的存储器,其特征在于,至少两个所述验证操作中前m个验证操作均为所述第一验证操作,至少两个所述验证操作中后n个验证操作均为所述第二验证操作,所述m和所述n均为正整数。
6.如权利要求1所述的存储器,其特征在于,所述第一数量大于或等于2,所述第二数量为1。
7.如权利要求1至6任一所述的存储器,其特征在于,所述第一编程验证方式还用于在第三验证子操作时对第三数量个编程态进行验证;
所述第一数量和所述第三数量不同,所述第一验证子操作和所述第三验证子操作为所述多次验证子操作中除第一次和最后一次验证子操作之外的验证子操作。
8.如权利要求1所述的存储器,其特征在于,所述外围电路被配置为:
在第i个编程脉冲后,对所述选定存储单元行中的目标存储单元执行所述第一验证子操作,所述第一验证子操作用于验证第一编程态和第二编程态,所述第一编程态低于所述第二编程态,所述目标存储单元的目标编程态为所述第二编程态;
如果通过所述第一验证子操作确定所述目标存储单元的编程态达到所述第一编程态,则在第i+1个编程脉冲后,对所述目标存储单元执行所述第二验证子操作,所述第二验证子操作用于验证所述第二编程态;
如果通过所述第二验证子操作确定所述目标存储单元的编程态没有达到所述第二编程态,则在施加第i+2个编程脉冲后不对所述目标存储单元执行验证子操作。
9.如权利要求1所述的存储器,其特征在于,所述多个验证子操作中先执行的验证子操作所需验证的编程态,高于后执行的验证子操作所需验证的编程态。
10.一种存储器,其特征在于,包括:
存储阵列,所述存储阵列包括多个存储单元行;
多个字线,所述多个字线分别耦合到所述多个存储单元行;以及
外围电路,所述外围电路耦合到所述多个字线并且被配置为:
基于选定字线对选定存储单元行施加编程脉冲;
在对所述选定存储单元行施加编程脉冲后,对所述选定存储单元行执行验证操作;
其中,所述选定存储单元行为待编程的存储单元行,所述验证操作包括多次验证子操作,所述多次验证子操作中至少两次验证子操作所需验证的编程态的数量不同,所述至少两次验证子操作为所述多次验证子操作中除第一次和最后一次验证子操作之外的验证子操作。
11.一种存储系统,其特征在于,所述存储系统包括:
权利要求1-10任一所述的存储器;
以及耦合到所述存储器并且被配置为控制所述存储器的控制器。
12.一种存储器的操作方法,其特征在于,所述方法包括:
基于选定字线对选定存储单元行施加多个编程脉冲;
在至少两个所述编程脉冲中的每个编程脉冲后,对所述选定存储单元行执行一个验证操作;
其中,至少两个所述验证操作包括至少一个第一验证操作和至少一个第二验证操作,所述选定存储单元行为待编程的存储单元行,在所述第一验证操作中,采用第一编程验证方式,在所述第二验证操作中,采用第二编程验证方式;
所述第一验证操作和所述第二验证操作均包括多次验证子操作,所述第一编程验证方式用于在第一验证子操作时对第一数量个编程态进行验证,所述第二编程验证方式用于在第二验证子操作时对第二数量个编程态进行验证,所述第一数量和所述第二数量不同,所述第一验证子操作所需验证的编程态,和所述第二验证子操作所需验证的编程态中存在相同的编程态。
13.如权利要求12所述的方法,其特征在于,所述第一验证操作和所述第二验证操作交替执行。
14.如权利要求13所述的方法,其特征在于,所述第一验证操作为奇数次验证操作,所述第二验证操作为偶数次验证操作。
15.如权利要求12所述的方法,其特征在于,至少两个所述验证操作中前m个验证操作均为所述第一验证操作,至少两个所述验证操作中后n个验证操作均为所述第二验证操作,所述m和所述n均为正整数。
16.如权利要求12所述的方法,其特征在于,所述第一数量大于或等于2,所述第二数量为1。
17.如权利要求12至16任一所述的方法,其特征在于,所述第一编程验证方式还用于在第三验证子操作时对第三数量个编程态进行验证;
所述第一数量和所述第三数量不同,所述第一验证子操作和所述第三验证子操作为所述多次验证子操作中除第一次和最后一次验证子操作之外的验证子操作。
18.如权利要求12所述的方法,其特征在于,所述在至少两个所述编程脉冲中的每个编程脉冲后,对所述选定存储单元行执行一个验证操作,包括:
在第i个编程脉冲后,对所述选定存储单元行中的目标存储单元执行所述第一验证子操作,所述第一验证子操作用于验证第一编程态和第二编程态,所述第一编程态低于所述第二编程态,所述目标存储单元的目标编程态为所述第二编程态;
如果通过所述第一验证子操作确定所述目标存储单元的编程态达到所述第一编程态,则在第i+1个编程脉冲后,对所述目标存储单元执行所述第二验证子操作,所述第二验证子操作用于验证所述第二编程态;
如果通过所述第二验证子操作确定所述目标存储单元的编程态没有达到所述第二编程态,则在施加第i+2个编程脉冲后不对所述目标存储单元执行验证子操作。
19.如权利要求12所述的方法,其特征在于,所述多次验证子操作中先执行的验证子操作所需验证的编程态,高于后执行的验证子操作所需验证的编程态。
20.一种存储器的操作方法,其特征在于,所述方法包括:
基于选定字线对选定存储单元行施加编程脉冲;
在对所述选定存储单元行施加编程脉冲后,对所述选定存储单元行执行验证操作;
其中,所述选定存储单元行为待编程的存储单元行,所述验证操作包括多次验证子操作,所述多次验证子操作中至少两次验证子操作所需验证的编程态的数量不同,所述至少两次验证子操作为所述多次验证子操作中除第一次和最后一次验证子操作之外的验证子操作。
CN202210137528.8A 2022-02-15 2022-02-15 存储器、存储系统以及操作方法 Pending CN114639425A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210137528.8A CN114639425A (zh) 2022-02-15 2022-02-15 存储器、存储系统以及操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210137528.8A CN114639425A (zh) 2022-02-15 2022-02-15 存储器、存储系统以及操作方法

Publications (1)

Publication Number Publication Date
CN114639425A true CN114639425A (zh) 2022-06-17

Family

ID=81946214

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210137528.8A Pending CN114639425A (zh) 2022-02-15 2022-02-15 存储器、存储系统以及操作方法

Country Status (1)

Country Link
CN (1) CN114639425A (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060209592A1 (en) * 2005-03-16 2006-09-21 Yan Li Non-volatile memory and method with power-saving read and program-verify operations
CN113228188A (zh) * 2021-03-22 2021-08-06 长江存储科技有限责任公司 存储器件及其编程操作
CN113707204A (zh) * 2021-08-31 2021-11-26 长江存储科技有限责任公司 存储器编程方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060209592A1 (en) * 2005-03-16 2006-09-21 Yan Li Non-volatile memory and method with power-saving read and program-verify operations
CN113228188A (zh) * 2021-03-22 2021-08-06 长江存储科技有限责任公司 存储器件及其编程操作
CN113707204A (zh) * 2021-08-31 2021-11-26 长江存储科技有限责任公司 存储器编程方法及系统

Similar Documents

Publication Publication Date Title
US8625345B2 (en) Determining and transferring data from a memory array
CN113490984B (zh) 存储器器件及其编程操作
CN113228184B (zh) 存储器件及其多遍编程操作
US8605509B2 (en) Data line management in a memory device
CN114999552A (zh) 一种存储装置、控制方法和存储器系统
CN113994433A (zh) 多遍编程中的负栅极应力操作机器存储器件
CN114639425A (zh) 存储器、存储系统以及操作方法
US20240170070A1 (en) Operation method of memory, memory, memory system, and electronic device
WO2024197764A1 (en) Memory device and operation method thereof
CN115565580A (zh) 存储器装置及其操作方法、存储器系统
CN118629463A (zh) 存储器的编程方法、存储器、存储系统及电子设备
CN118366523A (zh) 存储器、存储器的编程方法和存储器系统
CN118675591A (zh) 一种存储器及其操作方法、存储器系统、电子设备
CN115171761A (zh) 存储器及其操作方法、存储器系统
CN118072791A (zh) 存储器装置及其操作方法、存储器系统
CN118262765A (zh) 一种存储器的操作方法、存储器、系统及电子设备
CN115346583A (zh) 用于存储单元阵列的外围电路及存储器件
CN115512750A (zh) 存储器装置及其操作方法、存储器系统
CN118266028A (zh) 存储器件及存储器件的编程操作
CN115148269A (zh) 存储器装置及其操作方法、存储器系统
CN114333956A (zh) 三维存储器装置、三维存储器装置的编程处理方法
CN118298883A (zh) 存储器装置及其操作方法、存储器系统
KR20240137661A (ko) 메모리 장치, 메모리 시스템 및 그 작동 방법
CN118072790A (zh) 存储器装置及其操作方法、存储器系统
CN118369722A (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