CN114882928A - 一种存储器装置、存储器系统及编程操作方法 - Google Patents
一种存储器装置、存储器系统及编程操作方法 Download PDFInfo
- Publication number
- CN114882928A CN114882928A CN202210382032.7A CN202210382032A CN114882928A CN 114882928 A CN114882928 A CN 114882928A CN 202210382032 A CN202210382032 A CN 202210382032A CN 114882928 A CN114882928 A CN 114882928A
- Authority
- CN
- China
- Prior art keywords
- memory
- programming
- pass
- program
- block
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/32—Timing circuits
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Abstract
本发明公开一种存储器装置、存储器系统及编程操作方法。存储器装置包含:具有多个存储块的存储器阵列,每一个存储块布置成具有多个存储子块;每一个存储子块至少包含一个存储单元;以及耦接到存储器阵列的控制电路,控制电路被配置为确定在对多个存储块中的第一存储块执行多遍编程时在非最后遍编程期间将所述第一存储块中的第一存储子块中的存储单元编程至目标编程数据状态执行验证操作的验证循环计数;采用与对第一存储子块相同的编程及验证条件对第一存储块中其他存储子块中的存储单元编程至目标编程数据状态时,在其他存储子块中的存储单元的非最后遍编程中,至少不执行对应于验证循环计数中最后一次的验证操作。
Description
技术领域
本发明涉及存储器技术领域,尤其涉及一种存储器装置、存储器系统及编程操作方法。
背景技术
非易失性存储器已经广泛应用于各个领域的电子器件中。闪存是可以被电擦除并重新编程的使用最为广泛的非易失性存储器之一,闪存可以包括NOR和NAND两种架构的存储器,其中,对闪存中的每一个存储单元的阈值电压改变为需要的电平以实现各种操作,如读取、编程和擦除。在对闪存操作时,可以按照块级别执行擦除操作,可以按照页级别执行编程操作,可以按照存储单元级别执行读取操作。多状态闪存的编程通过识别多个不同的允许阈值电压范围而实现。目前,对多编程态闪存的存储单元的编程常采用编程操作和验证操作交替进行的多遍编程,编程时间较长。
发明内容
有鉴于此,本发明的主要目的在于提供一种存储器装置、存储器系统及编程操作方法,以解决提出的相关技术问题。
一方面,本发明提供一种存储器装置,包含:具有多个存储块的存储器阵列,其中,每一个所述存储块布置成包含多个存储子块;每一个存储子块至少包含一个存储单元;以及耦接到所述存储器阵列的控制电路;其中,
所述控制电路被配置为:确定在对所述多个存储块中的第一存储块执行多遍编程时在非最后遍编程期间将所述第一存储块中的第一存储子块中的存储单元编程至目标编程数据状态执行验证操作的验证循环计数;
采用与对所述第一存储子块相同的编程及验证条件对所述第一存储块中其他存储子块中的存储单元编程至所述目标编程数据状态时,在所述其他存储子块中的存储单元的所述非最后遍编程中,至少不执行对应于所述验证循环计数中最后一次的验证操作;
其中,所述第一存储块为所述多个存储块中的任一块;所述第一存储子块为所述第一存储块中的任一块;所述其他存储子块为所述第一存储块中除所述第一存储子块外的存储子块。
一方面,本发明还提供一种对存储器装置进行编程的方法,所述存储器装置包含具有多个存储块的存储器阵列,其中,每一个所述存储块布置成包含多个存储子块;每一个存储子块至少包含一个存储单元;
所述编程操作方法包括:
确定在对所述多个存储块中的第一存储块执行多遍编程时在非最后遍编程期间将所述第一存储块中的第一存储子块中的存储单元编程至目标编程数据状态执行验证操作的验证循环计数;
采用与对所述第一存储子块相同的编程及验证条件对所述第一存储块中其他存储子块中的存储单元编程至所述目标编程数据状态时,在所述其他存储子块中的存储单元的所述非最后遍编程中,至少不执行对应于所述验证循环计数中最后一次的验证操作;
其中,所述第一存储块为所述多个存储块中的任一块;所述第一存储子块为所述第一存储块中的任一块;所述其他存储子块为所述第一存储块中除所述第一存储子块外的存储子块。
一方面,本发明实施例还提供一种存储器系统,包含存储器装置,所述存储器装置包含:具有多个存储块的存储器阵列,其中,每一个所述存储块布置成包含多个存储子块的存储器阵列;每一个存储子块至少包含一个存储单元;以及耦接到所述存储器阵列的控制电路;其中,所述控制电路被配置为:确定在对所述多个存储块中的第一存储块执行多遍编程时在非最后遍编程期间将所述第一存储块中的第一存储子块中的存储单元编程至目标编程数据状态执行验证操作的验证循环计数;
采用与对所述第一存储子块相同的编程及验证条件对所述第一存储块中其他存储子块中的存储单元编程至所述目标编程数据状态时,在所述其他存储子块中的存储单元的所述非最后遍编程中,至少不执行对应于所述验证循环计数中最后一次的验证操作;
其中,所述第一存储块为所述多个存储块中的任一块;所述第一存储子块为所述第一存储块中的任一块;所述其他存储子块为所述第一存储块中除所述第一存储子块外的存储子块;
以及,
耦接到所述存储器装置的控制器,所述控制器被配置为控制所述存储器装置。
本发明实施例提供一种存储器装置、存储器系统及编程操作方法。其中,存储器装置,包含:具有多个存储块的存储器阵列,其中,每一个所述存储块布置成包含多个存储子块;每一个存储子块至少包含一个存储单元;以及耦接到所述存储器阵列的控制电路,所述控制电路被配置为确定在对所述多个存储块中的第一存储块执行多遍编程时在非最后遍编程期间将所述第一存储块中的第一存储子块中的存储单元编程至目标编程数据状态执行验证操作的验证循环计数;采用与对所述第一存储子块相同的编程及验证条件对所述第一存储块中其他存储子块中的存储单元编程至所述目标编程数据状态时,在所述其他存储子块中的存储单元的所述非最后遍编程中,至少不执行对应于所述验证循环计数中最后一次的验证操作;其中,所述第一存储块为所述多个存储块中的任一块;所述第一存储子块为所述第一存储块中的任一块;所述其他存储子块为所述第一存储块中除所述第一存储子块外的存储子块。本发明实施例提供的存储器装置及编程操作方法,在某一存储块执行多遍编程时,通过确定非最后遍编程期间对该存储块中某一存储子块中的存储单元编程至某一目标编程数据状态所需的验证操作的次数,然后采用相同的编程及验证条件对该存储块中的其他存储子块执行同样的多遍编程时,依据该确定的验证操作的次数,减少其他存储子块中的部分存储单元在该非最后遍编程期间的验证操作次数,以此,在保证读取窗口裕度的同时能够降低编程过程所需时间,提高存储器装置的编程(写)速度。
附图说明
在不一定按比例绘制的附图中,相同的标号可以描述不同视图中的类似组件。具有不同字母后缀的相同数字可表示类似组件的不同实例。附图以实例而非限制的方式一般性地说明了本文档中讨论的各种实施例。
图1为本发明实施例的一个NAND串的顶视图;
图2为本发明实施例的一个NAND串的等效电路图;
图3为本发明实施例提供的存储单元的阵列结构示意图;
图4为本发明实施例提供的单块三维存储器阵列的一个实例性方案的一部分的透视图;
图5为本发明实施例的具有用于对存储单元进行并行读取和编程的读/写电路的存储器装置的结构示意图;
图6A至图6D为本发明实施例提供的存储单元的阈值电压分布;
图7本发明实施例提供的ISPP方式的步进脉冲的结构示意图;
图8为本发明实施例提供的验证电压脉冲的示意图;
图9为本发明实施例提供的存储器装置的结构示意图;
图10为本发明实施例提供的在采用预测FBC验证策略时执行编程操作和验证操作的示意图;
图11为本发明实施例提供的采用本发明实施例提供的编程方式后确定该String0中耦接到字线WL10的存储单元编程至每一个编程数据状态需要的验证信息的示意图;
图12为本发明实施例提供的采用本发明实施例提供的编程方式后对String1、String2、String3中耦接到所述字线WL10的存储单元编程至每一个编程数据状态所需的验证信息的示意图;
图13为本发明实施例提供的一种对存储器装置进行编程的方法流程示意图;
图14为本发明实施例提供的一种存储器系统的结构示意图;
图15(A)为根据本发明提供的一些方面的具有存储器系统的示例性存储器卡的示意图;
图15(B)为根据本发明的一些方面的具有存储器系统的示例性固态驱动器(SSD)的示意图。
具体实施方式
以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所提供的实施例仅仅用于解释本发明,并不用限定本发明。另外,以下所提供的实施例是用于实施本发明的部分实施例,而非提供实施本发明的全部实施例,在不冲突的情况下,本发明实施例记载的技术方案可以任意组合的方式实施。
应该说明的是,在本发明提供的实施例中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的方法或者装置不仅包括所明确记载的要素,而且还包括没有明确列出的其它要素,或者是还包括为实施方法或者装置所固有的要素。在没有更多的限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的方法或者装置中还存在另外的相关要素,例如方法中的步骤或者装置中的单元,例如的单元可以部分电路、部分处理器、部分程序或者软件等等。
此外,尽管将参考NAND闪存来描述本发明的构思,应该理解的是,本发明构思的实施例不限于此配置,比如,本发明的构思还可应用于电可擦除和可编程ROM(EEPROM)、NOR闪存、相变RAM(PRAM)、磁RAM(MPAM)、电阻性RAM(RRAM)、铁电RAM(FRAM)等等,也不背离本发明的构思。
下面结合附图及具体实施例对本发明作进一步详细的说明。
图1为本发明实施例提供的一个NAND串的顶视图;图2为图1所示NAND串的等效电路图。在NAND结构的闪存系统中,多个晶体管串联布置并且被夹在两个选择栅极(源极栅极和漏极栅极)之间,串联的晶体管和两个选择栅极被称之为NAND串。如图1和图2所示的NAND串包括顶部选择栅极SGD(在漏极侧)、底部选择栅极SGS(在源极侧),以及夹在二者之间的顶部虚设晶体管SGDT、四个晶体管101-104和底部预设晶体管SGST。其中,顶部选择栅极SGD通过位线接触部将NAND串连接到位线;通过向顶部选择栅极线SGDL施加合适的电压而对顶部选择栅极SGD进行控制。底部选择栅极SGS将NAND串连接到源极线;通过向底部选择栅极线SGSL施加合适的电压而对底部选择栅极SGS进行控制。顶部虚设晶体管SGDT、四个晶体管101-104和底部预设晶体管SGST中的每个晶体管包含有控制栅极和浮置栅极,比如,顶部虚设晶体管SGDT包括控制栅极CGDT和浮置栅极FGDT;晶体管101包含控制栅极101CG1和浮置栅极101FG1;晶体管102包含控制栅极102CG1和浮置栅极102FG1;晶体管103包含控制栅极103CG1和浮置栅极103FG1;晶体管104包含控制栅极104CG1和浮置栅极104FG1;底部虚设晶体管SGST包括控制栅极CGST和浮置栅极FGST。控制栅极CGST与底部虚设字线BDWL连接;控制栅极101CG1-控制栅极104CG1分别字线WL0-WL3连接;控制栅极CGDT与顶部虚设字线TSWL连接。
需要说明的是,图1和图2仅是实例性的示出NAND串中用于读写操作的四个存储单元(晶体管101-104)及用于读写测试的两个虚设存储单元(顶部虚设晶体管SGDT和底部虚设晶体管SGST)。在实际应用中,NAND串可以包含8个、16个、32个、64个、128个存储单元等等,也就是说,NAND串中的存储单元或者虚设存储单元的个数不限制本发明的范围。此外,使用NAND结构的闪存系统的典型结构包含多个NAND串。每个NAND串通过由底部选择栅极线SGSL控制的底部选择栅极SGS连接到源极线,通过由顶部选择栅极线SGDL控制的顶部选择栅极SGD连接到相应的位线。每个位线和经由位线接触部连接到该位线的相应的NAND串(单个或多个)形成存储单元的阵列中的列。位线被多个NAND串共享。典型的,位线在垂直于字线的方向上在NAND串顶部延伸,连接到一个或多个感测放大器。应该理解的是,本发明仅是利用图1和图2中的结构实例性的说明NAND串结构,在实际应用中,捕获电荷层并不一定是浮置栅极,还可能是捕获氮化层、非导电电介质材料等等。
在实际应用过程中,存储器装置中的存储器阵列是经由图1和图2所示的NAND串经过合理布局后形成的包含具有多个存储块的存储器阵列,其实例性的结构如图3所示。存储器阵列300被分成BLOCK1-BLOCKT具有多个存储块的存储器阵列,其中T为正整数。每个存储块包含一组NAND串,该一组NAND串被经由位线BL0-BLM-1和一组公共字线WL0-WLN-1访问,其中,M、N均是大于1整数。NAND串的一端经由顶部选择栅极SGD(由顶部选择栅极线SGDL控制)连接至对应的位线,另一端经由底部选择栅极SGS(由底部选择栅极线SGSL控制)连接至源极线。每个存储块被分成多个页面。在一些实施例中,存储块是常规的擦除单元,页面是常规的编程的单位。在另一些实施例中,也可以使用擦除、编程的其他单位。在实例中,图3示出的存储器阵列中的存储单元物理结构不限制本发明的范围。
在本发明中,图3示出的存储器阵列可以以3DQLC结构布置,需要说明的是,其他的结构布置不限制本发明的范围。
对于每一存储块的结构,如图4所示,其示出本发明实施例提供的单存储块的三维存储器阵列的一个实例性方案的一部分的透视图。参考图4,存储块400包含堆叠在衬底(未示出)之上且平行于衬底表面的多个层,图4示出了四个层上的四个字线(WL),不妨将其记为WL0至WL3。存储块400还布置有多个与字线垂直的通孔。一个字线与一个通孔的交叉点形成一个存储单元,因此也可以将一个通孔称之为存储单元串。本领域技术人员应该理解的是,存储块400的字线的数量和存储单元串的数量不限于特定的值,比如,存储块400可以包括64字线,64个字线与一个存储单元串交叉形成沿着存储单元串的64个存储单元。再比如,存储块400包括存储单元串的数量可以是以十万、百万甚至更大的数量级计算,一个字线上包括其与例如几百万个存储单元串交叉而形成的几百万个存储单元。存储块400中的存储单元可以是单级存储单元或者多级存储单元,其中,单级存储单元可以是能够存储1个比特(bit)的单级单元(SLC);多级存储单元可以是能够存储2个bit的多级单元(MLC),能够存储3个bit的三级单元(TLC),能够存储4个bit的四级单元(QLC),能够存储5个bit的五级单元(PLC)。如图4所示,存储块400还包括位线(BL)、位线选择器(BLS,也可以称之为顶部选择栅极线SGDL)、源极线(SL)、源极选择线(SLS,也可称之为底部选择栅极线SGSL),这些电路线和字线(WL)一起可以实现对存储块400中任何存储单元的寻址。
在一些实施例中,存储块400在逻辑上可分为多个存储子块,其中,一个存储子块中耦接在一个字线上的多个存储单元可以称之为一个存储单元页或存储页。在一些实施例中,对于存储块的编程可以是以存储页为单位进行的。
基于图3所示的存储器阵列,图5示出本发明实施例提供的基于图3所示的存储器阵列形成的用于并行地对存储器阵列的页面(或其他单位)进行读取和/或编程的读写电路的存储器系统50的结构示意图。
存储器系统50包括存储器装置501以及控制器502,其中,存储器装置501包括存储器阵列300(二维或三维)、控制电路5011、读/写电路5012A和5012B、行解码器5013A和5013B以及列解码器5014A和5014B。在一些实施例中,在存储器阵列300的相对侧上以对称的方式实现各种控制电路对存储器阵列300的访问,以使在每侧上的访问先和电路的密度减少一半。读/写电路5012A和5012B包括多个感测块SB,用于对存储器阵列300的页面并行地进行读取或者编程。存储器阵列300可通过字线经由行解码器5013A和5013B以及位线经由列解码器5014A和5014B寻址。在一些实施例中,存储器阵列300、控制电路5011、读/写电路5012A和5012B、行解码器5013A和5013B以及列解码器5014A和5014B可以被制造在芯片上,其中图5中间的虚线框也可以代表芯片。外部信号和数据经由信号线503在主机和控制器502之间传送,并且通过信号线504在控制器502和芯片之间传送。其中,控制电路5011被配置为与读/写电路5012A和5012B协作以对存储器阵列300执行存储操作。控制电路5011包括状态机、片上地址解码器和功率控制模块,其中,状态机被配置为提供存储操作的芯片级控制;片上地址解码器被配置为在主机或存储器系统的控制器使用的地址到行解码器5013A和5013B以及列解码器5014A和5014B使用的硬件地址之间提供地址接口。功率控制模块被配置为在每次存储操作器件控制提供给字线和位线的功率和电压。
上面讨论的存储器系统中的存储器阵列可以被擦除、编程和读取。由于存储器系统中的存储单元可以被布置为单级单元或者多级单元,而多级单元又可以分为多级单元MLC、三级单元TLC以及四级单元QLC等等,因此,对于一个存储页,在成功编程过程(具有验证)结束时,被编程的存储单元的阈值电压应当在一个或者多个分布内。在实际应用过程中,不同种类的存储单元,具有的数据状态是不相同的,具体如图6A至6D分别示出了单级单元SLC、多级单元MLC、三级单元TLC以及四级单元QLC时存储单元的阈值电压分布曲线。
如图6A所示,在SLC中,其对应两个阈值电压分布:E和P,其中,阈值电压分布E对应于擦除数据状态;阈值电压分布P对应于编程数据状态,擦除数据状态对应的阈值电压分布E所具有的阈值电压小于编程数据状态阈值电压分布P所具有的阈值电压。因此,在阈值电压分布E中具有阈值电压的存储单元处于擦除数据状态;在阈值电压分布P中具有阈值电压的存储单元处于编程数据状态。在一些实施例中,SLC类型的存储单元存储一位数据,具体的,被擦除的存储单元存储数据1,被编程的存储单元存储数据0。
如图6B所示,在MLC中,其对应四个阈值电压分布:E、P1、P2及P3,阈值电压依次升高。同样的,阈值电压分布E对应于擦除数据状态;阈值电压分布P1、P2及P3对应于编程数据状态。在一些实施例中,MLC类型的存储单元存储两位数据,具体的,被擦除的存储单元存储数据11,被编程到P1数据状态的存储单元存储数据10,被编程到P2数据状态的存储单元存储数据10,被编程到P3数据状态的存储单元存储数据00。
如图6C所示,在TLC中,其对应八个阈值电压分布:E、S1、S2、S3、S4、S5、S6、S7,阈值电压依次升高。同样的,阈值电压分布E对应于擦除数据状态;阈值电压分布S1、S2、S3、S4、S5、S6、S7对应于编程数据状态。在一些实施例中,TLC类型的存储单元存储三位数据,具体的,被擦除的存储单元可以存储数据111,被编程到S1数据状态的存储单元存储数据110,被编程到S2数据状态的存储单元存储数据101,被编程到S3数据状态的存储单元存储数据100,被编程到S4数据状态的存储单元存储数据011,被编程到S5数据状态的存储单元存储数据010,被编程到S6数据状态的存储单元存储数据001,被编程到S7数据状态的存储单元存储数据000。
如图6D所示,在QLC中,其对应16个阈值电压分布:E、L1、L2、L3、L4、L5、L6、L7、L8、L9、L10、L11、L12、L13、L14、L15,阈值电压依次升高。同样的,阈值电压分布E对应于擦除数据状态;阈值电压分布L1、L2、L3、L4、L5、L6、L7、L8、L9、L10、L11、L12、L13、L14、L15对应于编程数据状态,对于数据状态N,该数据状态N具有比数据状态N-1更高的阈值电压和比数据状态N+1更低的阈值电压。在一些实施例中,QLC类型的存储单元存储四位数据,具体的,被擦除的存储单元可以存储数据1111,被编程到L1、L2、L3、L4、L5、L6、L7、L8、L9、L10、L11、L12、L13、L14、L15数据状态的存储单元可以依次存储数据1110、1101、1100、1011、1010、1001、1000、0111、0110、0101、0100、0011、0010、0001、0000。
需要说明的是,前述不论是那种类型的存储单元,每一个阈值电压分布(数据状态)对应于存储在存储单元中的一组数据位的预定值,编程到存储单元中的数据与存储单元的阈值电压的电平之间的具体关系取决于存储单元采用的数据编码方案,比如,使用格雷码的编码方案。
在实际应用中,对于具有多数据状态的闪存设备,比如,NAND闪存设备,在对存储单元执行编程时为了减少字线之间的耦接和干扰,在一些实施例中,对于存储页或块进行编程时可以采用多遍编程,以实现更紧密的阈值电压分布。在一些实施例中,所述多遍编程可以包括两遍编程、三遍编程等等,其中,所述两遍编程可以包括第一遍粗略编程和精细编程;所述三遍编程可以包括第一遍粗略编程、第二遍粗略编程和精细编程。这里,所述多遍编程中最后一遍编程为精细编程;第一遍粗略编程、第二遍粗略编程统称为粗略编程,也可以均称之为非最后遍编程。在一些实施例中,不论是非最后遍编程还是精细编程均可以是增量式步进脉冲编程(ISPP)方式,该ISPP方案可以是基于步进电压逐步提高字线偏置电压的同时对所选择的存储页中的存储单元进行若干次编程,其中,增量式步进脉冲Vpgm可参考图7。为了兼顾编程速度与具有较宽的读取窗口裕度(RWM,ReadWindowMargin),在一些实施例中,在非最后遍编程(各粗编程阶段),在选择的字线(被选择耦接有需要被编程存储单元的字线)上施加具有较大设定步长(比如,0.5伏特(V))的编程电压脉冲,以将耦接到所述选择的字线上的存储单元快速的编程到中间数据状态;在各粗略编程阶段之后进行的精细编程阶段,在选择的字线上施加具有较小设定步长(比如,0.2V)的编程电压脉冲,以将耦接到所述选择的字线上的存储单元准确的编程到最终数据状态,也即,在一些实施例中,在所述多遍编程的每一遍编程中,所述编程操作中施加的编程电压/脉冲按照不同的设定步长增大,具体的设定步长可以根据实际编程情况由设计人员设置。其中,所说中间数据状态为在被编程的存储单元未达到最终数据状态前的一个或多个数据状态,比如,在对TLC类型存储单元编程时,某一存储单元的最终数据状态为S3,则其中间数据状态可以为S1、S2至少之一;也可以是其他可验证的数据状态。所述最终数据状态为用户期望被编程的存储单元被编程到的数据状态,比如,前述的对TLC类型存储单元编程时,最终数据状态为S3。
应该理解的是,在对存储单元编程期间,为了了解被编程的存储单元是否编程至目标编程数据状态,在施加两次编程电压脉冲(施加编程电压脉冲的过程也称之为编程操作)之间,增设验证操作以确定被编程的存储单元是否编程至目标的数据状态,也即,编程操作和验证操作交替进行。所说的验证操作可以是一个或者一组验证电压脉冲,验证电压脉冲如图8所示,图8中,1001和1003为步进编程脉冲Vpgm;1002为验证电压脉冲。基于前述描述,也就是,所述多遍编程可以包括至少一遍粗略编程和一编程精细编程,每一遍编程包括至少一个编程操作和至少一个验证操作。
然而,经过研究发现,采用前述的编程操作和验证操作交替进行的多遍编程方式,较多的验证操作使得编程过程变慢,换句话说,在编程期间,为了提高编程的可靠性,而使用在每次编程操作后进行验证操作,这样导致一些不必要的验证操作增加了编程所需的时间(tPROG),减慢了编程速度。
为了解决上述技术问题,如图9所示,本发明实施例提供一种存储器装置,所述存储器装置501,包含:具有多个存储块的存储器阵列300,其中,每一个所述存储块布置成包含多个存储子块;每一个存储子块至少包含一个存储单元;以及耦接到所述存储器阵列的控制电路5011;其中,
所述控制电路5011被配置为:确定在对所述多个存储块中的第一存储块执行多遍编程时在非最后遍编程期间将所述第一存储块中的第一存储子块中的存储单元编程至目标编程数据状态执行验证操作的验证循环计数;
采用与对所述第一存储子块相同的编程及验证条件对所述第一存储块中其他存储子块中的存储单元编程至所述目标编程数据状态时,在所述其他存储子块中的存储单元的所述非最后遍编程中,至少不执行对应于所述验证循环计数中最后一次的验证操作;
其中,所述第一存储块为所述多个存储块中的任一块;所述第一存储子块为所述第一存储块中的任一块;所述其他存储子块为所述第一存储块中除所述第一存储子块外的存储子块。
需要说明的是,前述附图1至图5所描述的存储器装置仅是为了实例性的说明存储器装置中的存储单元串、存储块、存储子块以及字线之间的关系,并不用于限制本发明,也就是说,本实施例中所描述的存储器装置可以是附图1至图5描述的结构,也可以是其他实现的结构。
这里,基于前述的描述,所述存储器装置包含的存储块中的每一个存储子块中的存储单元分别耦接到多条字线;相邻存储子块的存储单元之间通过字线耦接。在此基础上,所述编程操作可以为对所述多条字线中选定字线施加编程电压(或者,称之为编程脉冲);所述验证操作可以为对所述选定字线施加验证电压。在另一些实施例中,在所述多遍编程中的任一遍编程过程可以包括至少一个编程循环,并且在所述至少一个编程循环中的部分编程循环,所述验证电压与所述编程电压/脉冲交替施加在所述选定字线,也就是说,通常一个编程循环包含一次编程操作和一次验证操作。基于本发明实施例所述的可以跳过部分验证操作,因此,仅有部分编程循环中,所述验证电压与所述编程电压/脉冲交替施加在所述选定字线。
应该理解的是,这里所说的多遍编程可以是两遍编程、三遍编程、四遍编程等等。所说的非最后遍编程可以是指精细编程之前进行的任一一遍粗略编程,也就是说,所述非最后遍编程可以是指至少一遍粗略编程中的任一遍粗略编程。
基于此,在所说的所述多遍编程为两遍编程,即包含一遍粗略编程和一遍精细编程时,所述非最后遍编程即为所述粗略编程,此时,所说的确定在非最后遍编程期间将第一存储子块中的存储单元编程至目标编程数据状态执行验证操作的验证循环计数就是确定该粗略编程期间将第一存储子块中的存储单元编程至目标编程数据状态执行验证操作的验证循环计数。在所说的所述多遍编程包含多个遍粗略编程时,所述非最后编程遍可以为该多个粗略编程中任一粗略编程,此时,所说的确定在非最后遍编程期间将第一存储子块中的存储单元编程至目标编程数据状态执行验证操作的验证循环计数可以是指确定在所述多个粗略编程中的某一遍粗略编程期间将第一存储子块中的存储单元编程至目标编程数据状态执行验证操作的验证循环计数。
可以理解的是,在所述多遍编程包含多遍粗略编程时,对于每一遍粗略编程,均可确定将所述第一存储子块中的存储单元编程至目标编程数据状态执行验证操作对应的验证循环计数。
举例来说,假设所说多遍编程包含两遍粗略编程和一遍精细编程,那么所述非最后遍编程就可以是两遍粗略编程中的任一遍,比如,在该两遍粗略编程被定义为第一遍粗略编程和第二遍粗略编程,所述非最后遍编程可以为第一遍粗略编程,或为第二遍粗略编程,此时,可以仅确定第一遍粗略编程期间将第一存储子块中的存储单元编程至目标编程数据状态执行验证操作的验证循环计数;也可以确定第一遍粗略编程期间和第二遍粗略编程期间将第一存储子块中的存储单元编程至目标编程数据状态执行验证操作的验证循环计数;还可以仅确定第二遍粗略编程期间将第一存储子块中的存储单元编程至目标编程数据状态执行验证操作的验证循环计数。应该理解的是,对其他存储子块执行的非最后遍编程只有与对第一存储子块中的存储单元执行的非最后遍编程是对应的情况下,确定的验证操作的验证循环计数才有参考价值,举例来说,假设对所述第一存储子块执行的多遍编程为三遍编程,并且确定的是在对所述第一存储子块执行第二遍粗略编程时的验证操作的验证循环计数,那么对其他存储子块中的存储单元同样执行三遍编程的多遍编程,仅在第二遍粗略编程时,才能参考确定的对所述第一存储子块执行第二遍粗略编程时的验证操作的验证循环计数,以至少减少验证循环计数中最后一次验证操作,从而达到节约编程时间的目的。
还需要说明的是,该技术方案中所描述的第一存储块、第一存储子块、目标编程数据状态、第一存储单元、第一循环计数和验证循环计数中的“第一”、“第二”仅是为了描述方便,不用于限制本发明。同理,下述的第二存储单元也可以这样理解。
基于前面对于存储单元类型的描述,这里所述目标编程数据状态可以包括一个或多个。
在一些实施例中,在所述目标编程数据状态包含一个时,仅需要确定将第一存储子块中的存储单元编程至该目标编程数据状态所需执行验证操作的验证循环计数即可。
在实际应用过程中,所述目标编程数据状态也可以是粗略编程中的任何一种可验证的编程数据状态,比如,所述目标编程数据状态可以是前述SLC、MLC、TLC、QLC中除擦除数据状态外的任一编程数据状态。
在一些实施例中,所述目标编程数据状态包括多个时,所述控制电路还被配置为:分别确定在所述非最后遍编程期间将所述第一存储子块中的存储单元编程至每一个所述目标编程数据状态时执行验证操作对应的所述验证循环计数。
需要说明的是,此时,所述目标编程数据状态也可以是粗略编程中的任何多种可验证的编程数据状态,比如,所述目标数据编程状态可以包括前述MLC、TLC、QLC中除擦除数据状态外的多个编程数据状态。在这种情况,在所述非最后编程操作期间,可以分别确定将所述第一存储子块中的存储单元编程至每一个编程数据状态所需执行的验证操作对应的验证循环计数。
举例来说,在所述目标数据编程状态包含两个时,比如,前述QLC中的L1、L2两个编程数据状态,此时,在所述非最后遍编程期间,需要确定将所述第一存储子块中的存储单元编程至L1所需执行验证操作对应的验证循环计数1;还需确定将所述第一存储子块中的存储单元编程至L2所需执行验证操作对应的验证循环计数2。应该理解的是,所述第一存储子块中编程至L1的存储单元与所述存储子块中编程至L2的存储单元是不一样的,至于那些需要编程至L1,那些需要编程至L2,根据前述主机的指令确定。
在完成第一存储子块的编程后,对于同一第一存储块的其他存储子块的编程,采用与对所述第一存储子块相同的编程及验证条件对所述第一存储块中其他存储子块中的存储单元编程至所述目标编程数据状态时,在所述其他存储子块中的存储单元的所述非最后遍编程中,至少不执行对应于所述验证循环计数中最后一次的验证操作,也就是,对其他存储子块中的存储单元可以采用与对所述第一存储子块相同的编程及验证条件对所述其他存储子块进行编程,并且在将所述其他存储子块中的存储单元编程至所述目标编程数据状态时,在所述其他存储子块中的存储单元的所述非最后遍编程中,至少不执行对应于所述验证循环计数中最后一次的验证操作,也就是,在与所述第一存储子块采用相同的编程及验证条件进行编程时,在对应的非最后编程编程期间,其他存储子块中的存储单元编程至所述目标编程数据状态所需执行的验证操纵至少可以省略前述确定中的所述验证循环计数中的最后一次。
举例来说,所述目标编程数据状态包含一个时,确定的所述验证循环计数为5次,那么,在相同编程及验证条件下,将其他存储子块中的存储单元编程至所述目标编程数据状态可以仅执行前4次的验证操作,省略最后一次的验证操作不执行,从而节省编程时间。在所述目标编程数据状态包含两个时,比如,分别为L1和L2,确定的验证循环计数1为6,确定的验证循环计数2为7,此时,在相同编程及验证条件下,其他存储子块中的任一子块中的存储单元编程至L1时所需执行的验证操作可以仅执行前5次,而省略最后一次的验证操作不执行;其他存储子块中的任一子块中的存储单元编程至L2时所需执行的验证操作可以仅执行前6次,而省略最后一次的验证操作不执行。
基于前述描述,上述技术方案可以理解为:在对存储器装置中的某一存储块执行多遍编程时,首先确定对于某一存储子块执行非最后遍编程时将该存储子块中的存储单元编程至目标编程数据状态时需要执行验证操作的验证循环计数;然后再对该存储块中其他存储子块中的存储单元采用相同的编程及验证条件编程到相同所述目标编程数据状态时,对于其他存储子块中的存储单元的所述非最后遍编程可以至少不执行对应于所述验证循环计数中最后一次的验证操作,也就是,对其他存储子块中的存储单元采用相同的编程及验证条件编程到相同所述目标编程数据状态时,对于其他存储子块中的存储单元的所述非最后遍编程可以至少至少跳过最后一次的编程操作不执行,以节省tPROG,至于RWM的保证,可以在最后的精细编程中考虑。应该理解的是,这里描述的情况是对第一存储子块执行的多遍编程与对同一存储块中的其他存储子块执行的多遍编程是相同,换句话说,对第一存储子块执行的多遍编程为两遍编程,那么,对同一存储块中的其他存储子块执行的多遍编程也是两遍编程,也就是,所说的相同的编程/编程条件可以是指对于某一存储块中的任何存储子块中的存储单元执行相同的多遍编程,包括起始编程电压/脉冲、设定步长、验证电压、验证操作等等变化比较小的情况。应该注意的是,在一些描述中,也将存储子块描述为string,举例说明,假设存储器装置的某一存储块具有6个存储子块,也就是包含6个String,依次可以为String0、String1、String2、String3、String4、String5。
本领域技术人员应该知道是,在对存储子块中的存储单元执行编程至某一目标编程数据状态时,有些存储单元进行一次编程操作、一次验证操作,其阈值电压可能就在该目标编程数据状态对应的阈值电压分布内了;有些存储单元可能需要多次编程操作和验证操作。因此,这里所说的验证循环计数可以是指对第一存储子块中最后完成编程至目标编程数据状态的存储单元所需执行的验证操作的次数。
在一些实施例中,在完成确定第一存储子块中存储单元编程至每一目标编程数据状态执行验证操作的验证循环计数后,在一些实施例中,所述控制电路还被配置为:按照确定的与每一个目标数据编程态对应的所述验证循环计数配置所述其他存储子块中的存储单元在所述非最后遍编程中需要执行的验证操作次数。
在一些实施例中,在另一些实施例中,所述控制电路包含外部接口,通过所述外部接口配置所述其他存储子块中的存储单元在所述非最后遍编程中需要执行的验证操作次数。
需要说明的是,所述的外部接口可以是指前述图5中的信号线504以及信号线503,其用于实现从主机接收用户对于其他存储子块汇总存储单元在所述非最后编编程中需要的执行的验证操作次数。当前这个验证操作次数可以是根据前述确定的验证循环计数获得。
在一些实施例中,所述多遍编程中的验证策略采用预测失败位计数(FBC,FailBitCount)验证时,其中,预测FBC验证为在某一存储块执行编程过程中,在所述某一存储块中预设比例的存储单元已经被编程至所述目标编程数据状态时,对所述某一存储块中剩余未被编程至所述目标编程数据状态的存储单元仅需再执行一次编程操作而不需再执行验证操作;所述控制电路还被配置为:在对所述第一存储块执行多遍编程时,确定在所述非最后遍编程期间将所述第一存储子块中的存储单元编程至所述目标编程数据状态执行编程操作的编程循环计数;
采用与对所述第一存储子块相同的编程及验证条件对所述第一存储块中其他存储子块中的存储单元编程至所述目标编程数据状态时,在所述其他存储子块中的存储单元的所述非最后遍编程中,至少不执行对应于所述编程循环计数中最后一次的编程操作。
其中,在一些实施例中,所述预测FBC验证策略的具体过程可以包括:在某一存储子块执行多遍编程时,不论是粗略编程阶段还是精细编程阶段,在经过几个编程操作和验证操作交替后,该存储子块中一定比例的存储单元已经被编程至目标编程数据状态,仅剩余一部分存储单元没有被编程至目标编程数据状态,但其所在的中间数据状态已经接近目标编程数据状态,此时,仅需对该部分的存储单元再执行一次编程操作,必然可以将该部分存储单元编程至目标编程数据状态,那么,此时,就不需要再执行验证操作。需要说明的是,所述预设比例可以根据实际的存储器装置进行设计,比如,所述预设比例可以为90%等等。
举例来说,如图10所示,在对某一QLC类型的NAND闪存设备中的某一存储子块中耦接到字线WL10的存储单元执行多遍编程中的某一粗略编程,其验证策略采用预测FBC验证,此时,在该粗略编程中,在经过5次的编程操作和验证操作交替后,耦接到该WL10字线上的存储单元,其中,一定比例(比如90%)的存储单元已经被编程至目标编程数据状态,仅剩余的10%的存储单元未被编程至目标编程数据状态,但该10%的存储单元所在的中间编程数据状态已经接近目标编程数据状态,此时,仅需对该10%的存储单元执行一次编程操作,也即执行第6次编程操作,必定可以将该10%的存储单元编程至目标编程数据状态,这是可以预见,因而不需要再进行验证操作了。
基于前述描述可知,采用预测FBC验证时,其实已经省略了一次验证操作。而再采用本发明实施例提供的存储器装置,在多遍编程中的验证策略采用预测FBC验证时,在同一存储块中,仅需确定一子块中的存储单元编程至目标编程数据状态的验证循环计数,在其他存储子块中的存储单元编程时,还可以在省略验证循环计数中的最后一次的验证,也即,进一步的省略编程时间。
研究还发现,在多遍编程中的验证策略采用预测FBC验证时,在所述多遍编程中的非最后遍编程期间,在验证通过的情况下,也即完成将耦接在某一字线的存储单元编程至某一编程数据状态时,此时大部分存储单元已经被编程至该编程数据状态,仅剩余一小部分存储单元未被编程至该编程数据状态,此时,对于该小部分的存储单元执行或不执行最后一次编程操作,这些耦接在该字线的存储单元的阈值电压分布相差很小,那么,在此种情况下,在对所述第一存储块执行多遍编程时,还可以确定在所述非最后遍编程期间将所述第一存储子块中的存储单元编程至所述目标编程数据状态执行编程操作的编程循环计数;之后,采用与对所述第一存储子块相同的编程及验证条件对所述第一存储块中其他存储子块中的存储单元编程至所述目标编程数据状态时,在所述其他存储子块中的存储单元的所述非最后遍编程中,至少不执行对应于所述编程循环计数中最后一次的编程操作。
也就是说,在多遍编程中的验证策略采用预测FBC验证时,在同一存储块中,仅需确定一子块中的存储单元编程至目标编程数据状态所需的编程操作的编程循环计数,在其他存储子块中的存储单元编程时,还可以在省略编程循环计数中的最后一次编程操作。
经过前述描述,在对某一存储块进行编程时,在非最后遍编程期间,在对某一存储块执行多遍编程时,依据确定某一存储子块的验证循环计数和编程循环计数,在该存储块中其他存储子块编程时,可以跳过至少一个验证操作,在采用预测FBC验证方案时,还可以跳过一次编程操作,这样一来,可以大大的节省tPROG,对于RBM,在精细编程阶段,可以在予以保证,这样不仅加快了编程速度又保证具有较宽的RBM,保证了编程的可靠性。
举例来说,以某一存储器装置的某一存储块为例,该存储块均有4个存储子块(String),依次为String0、String1、String2、String3,每个存储子块包含128条字线,该存储块包含4页(Page),存储块中存储单元采用的是QLC类型的存储单元;对于QLC类型的某一存储单元采用的是包含粗编程阶段和精细编程阶段的多遍编程,并且在粗略编程阶段,采用的验证策略是预测FCB验证策略,在该情况下,如图11所示,其示出在粗编程阶段对于String0中耦接到字线WL10的存储单元的每一个编程数据状态需要的验证信息。采用本发明实施例提供的编程方式后,确定该String0中耦接到字线WL10的存储单元编程至每一个编程数据状态需要的验证信息,然后,在String1、String2、String3中耦接到所述字线WL10的存储单元编程至每一个编程数据状态所需的验证信息,可以如图12所示。在图12中,X表示可以被跳过(不执行)的验证操作。依据这样的方式,可以节省编程时间。
本发明实施例提供存储器装置,在某一存储块执行多遍编程时,通过确定非最后遍编程期间对该存储块中某一存储子块中的存储单元编程至某一目标编程数据状态所需的验证操作的次数,然后采用相同的编程及验证条件对该存储块中的其他存储子块执行同样的多遍编程时,依据该确定的验证操作的次数,减少其他存储子块中的部分存储单元在该非最后遍编程期间的验证操作次数,以此,在保证读取窗口裕度的同时能够降低编程过程所需时间,提高存储器装置的编程(写)速度。
与前述相同的发明构思,如图13所示,本发明实施例还提供了一种对存储器装置进行编程的方法,所述存储器装置501包含具有多个存储块的存储器阵列,其中,每一个所述存储块布置成包含多个存储子块的存储器阵列;每一个存储子块至少包含一个存储单元;以及耦接到所述存储器阵列的控制电路;所述方法包括:
S131:确定在对所述多个存储块中的第一存储块执行多遍编程时在非最后遍编程期间将所述第一存储块中的第一存储子块中的存储单元编程至目标编程数据状态执行验证操作的验证循环计数;
S132:采用与对所述第一存储子块相同的编程及验证条件对所述第一存储块中其他存储子块中的存储单元编程至所述目标编程数据状态时,在所述其他存储子块中的存储单元的所述非最后遍编程中,至少不执行对应于所述验证循环计数中最后一次的验证操作;
其中,所述第一存储块为所述多个存储块中的任一块;所述第一存储子块为所述第一存储块中的任一块;所述其他存储子块为所述第一存储块中除所述第一存储子块外的存储子块。
需要说明的是,所说方法的执行主体可以是指控制电路。基于此,对于S131也即是:由控制电路在对第一存储块执行多遍编程时,确定在非最后遍编程期间将第一存储子块中的存储单元编程至目标编程数据状态执行验证操作的验证循环计数。对于S132也即是:由控制电路采用与对所述第一存储子块相同的编程及验证条件对所述第一存储块中的其他存储子块中的存储单元编程至目标编程数据状态时,在所述其他存储子块中的存储单元的所述非最后遍编程中,至少不执行对应于所述验证循环计数中最后一次的验证操作。
在一些实施例中,所述目标编程数据状态包括一个或多个。
在一些实施例中,在所述目标编程数据状态包括多个时,所述编程操作方法还包括:分别确定在所述非最后遍编程期间将所述第一存储子块中的存储单元编程至每一个所述目标编程数据状态时执行验证操作对应的所述验证循环计数。
在一些实施例中,所述编程验证方法还包括:
按照确定的与每一个目标数据编程态对应的所述验证循环计数配置所述其他存储子块中的存储单元在所述非最后遍编程中需要执行的验证操作次数。
在一些实施例中,在所述多遍编程中的验证策略为预测失败位计数FBC验证时,其中,预测FBC验证为在某一存储块执行编程过程中,在所述某一存储块中预设比例的存储单元已经被编程至所述目标编程数据状态时,对所述某一存储块中剩余未被编程至所述目标编程数据状态的存储单元仅需再执行一次编程操作而不需再执行验证操作;所述编程操作方法还包括:
在对所述第一存储块执行多遍编程时,确定在所述非最后遍编程期间将所述第一存储子块中的存储单元编程至所述目标编程数据状态执行编程操作的编程循环计数;
采用与对所述第一存储子块相同的编程及验证条件对所述第一存储块中其他存储子块中的存储单元编程至所述目标编程数据状态时,在所述其他存储子块中的存储单元的所述非最后遍编程中,至少不执行对应于所述编程循环计数中最后一次的编程操作。
在一些实施例中,每一个存储子块中的存储单元分别耦接到多条字线;相邻存储子块的存储单元之间通过字线耦接,所述编程操作为对所述多条字线中选定字线施加编程电压/脉冲;所述验证操作为对所述选定字线施加验证电压;在所述多遍编程的部分编程循环中,所述验证电压与所述编程电压/脉冲交替施加在所述选定字线。
在一些实施例中,在所述多遍编程的每一遍编程中,所述编程操作中施加的编程电压/脉冲按照不同的设定步长增大。
在一些实施例中,其中所述存储器阵列为三维NAND存储器阵列。
需要说明的是,该方法与前述的存储器装置属于同一发明构思,该方法中出现的名词在前述的存储器装置中均以详细解释,在此同样适用,不再一一赘述。
基于与前述同样的发明构思,如图14所示,本发明实施例还提供一种存储器系统50,包含存储器装置501,所述存储器装置501包含:具有多个存储块的存储器阵列,其中,每一个所述存储块布置成包含多个存储子块;每一个存储子块至少包含一个存储单元;以及耦接到所述存储器阵列的控制电路;其中,所述控制电路被配置为:确定在对所述多个存储块中的第一存储块执行多遍编程时在非最后遍编程期间将所述第一存储块中的第一存储子块中的存储单元编程至目标编程数据状态执行验证操作的验证循环计数;采用与对所述第一存储子块相同的编程及验证条件对所述第一存储块中其他存储子块中的存储单元编程至所述目标编程数据状态时,在所述其他存储子块中的存储单元的所述非最后遍编程中,至少不执行对应于所述验证循环计数中最后一次的验证操作;其中,所述第一存储块为所述多个存储块中的任一块;所述第一存储子块为所述第一存储块中的任一块;所述其他存储子块为所述第一存储块中除所述第一存储子块外的存储子块;
以及,
耦接到所述存储器装置的控制器502,所述控制器被配置为控制所述存储器装置。
需要说明的是,该存储器系统50可以与前述图5中的主机(Host)通信。其中,所述主机和/或所述存储器系统50可以包含在各种产品,比如,物联网(IoT)器件,如冰箱或者其他设备、传感器、电动机、移动通信器件、汽车、无人驾驶等,用于支持产品的处理、通信或者控制。在一种实施例中,存储器系统50可以为主机器件的离散存储器或存储器组件。在另一些实施例中,存储器系统50还可以为集成电路的一部分,如,芯片上系统(SOC,SystemonChip)的一部分。此时,存储器系统50与主机的一个或多个组件堆叠或以其他方式组装在一起。在另一些实施例中,前述的存储器系统可以实施例并封装在存储卡、驱动器等产品中,比如图15(A)和图15(B)所示,其中,图15(A)示出了根据本发明提供的一些方面的具有存储器系统的示例性存储器卡的示意图;图15(B)示出了根据本发明的一些方面的具有存储器系统的示例性固态驱动器(SSD)的示意图。在如图15(A)中所示的一个示例中,存储器系统的控制器502和单个存储器装置501可以集成到存储器卡150中。存储器卡150可以包括PC卡(PCMCIA,个人计算机存储器卡国际协会)、CF卡、智能媒体(SM)卡、存储器棒、多媒体卡(MMC、RS-MMC、MMCmicro)、SD卡(SD、miniSD、microSD、SDHC)、UFS等。存储器卡150还可以包括将存储器卡150与主机(例如,图5中的主机)耦接的存储器卡连接器1501。在如图15(B)中所示的另一示例中,存储器控制器502和多个存储器装置501可以集成到SSD151中。SSD151还可以包括将SSD151与主机(例如,图5中的主机)耦接的SSD连接器1511。在一些实施方式中,SSD151的存储容量和/或操作速度大于存储器卡150的存储容量和/或操作速度。
在一些实施例中,主机可以包括处理器和主机RAM,其中,所述主机RAM可以包括DRAM、SDRAM或任何其它合适的易失性或者非易失性存储器件。所述存储器系统50上可以设置一个或者多个通信接口,与主机中的一个或者多个组件及进行通信。所说的主机中的一个或者多个组件可以为串行高级技术附接(SATA)接口、高速外围组件互连(PCIe)接口、通用串行总线(USB)接口、通用快闪存储(UFS)接口、eMMCTM接口等等。主机还可以包括电子元件、存储器卡读取器或存储器系统50外部的一个或多个其它电子元件。
在一些实施例中,控制器502可从主机接收指令,与所述存储器装置501进行通信,如控制器502通过执行写入或者擦除指令将数据传送到所述存储器装置501中的一个或多个存储单元、平面、子块、块或页中;或者控制器502通过执行读取指令将数据传送给主机。在硬件上,所述控制器502可包括一或多个控制器单元、电路或组件,被配置为控制跨越所述存储器装置501的访问且提供主机与所述存储器系统50之间的转换层。控制器502还可包括一个或多个输入/输出(I/O)电路、线或接口以将数据传送到所述存储器装置501,或者从所述存储器装置501中传输数据。控制器502还可包括存储器管理单元和阵列控制单元。
所述存储器管理单元可包括电路硬件或固件,比如与各种存储器管理功能相关联的多个组件或集成电路。以NAND存储器为例存储器系统操作或管理功能。本领域技术人员应该知道,其他形式的非易失性存储器可具有类似的存储器操作或管理功能。其中,NAND存储器的管理功能可包括磨损均衡,如垃圾收集或回收、错误检测或纠错、块引退或者一个或多个其它存储器管理功能。所述存储器管理单元可将主机的指令处理成所述存储器系统50可识别的命令,比如,将从主机接收到的指令解析或者格式化成与所述存储器装置501的操作相关的命令等;或者所述存储器管理单元还可生成用于所述阵列控制单元或者所述存储器系统50的一个或多个其他组件的器件命令,如,实现各种存储器管理功能的命令。
所述存储器管理单元可被配置为包含一组管理表,该一组管理表用于维护与所述存储器系统50的一个或多个组件关联的各种信息,如,与耦接到所述控制器502的存储器阵列,或者一个或多个存储单元相关的各种信息,比如,所述管理表可包含耦接到控制器502上的存储单元一个或多个块的块年龄、块擦除计数、错误历史或一个或多个错误计数等信息。其中,错误计数可以包括操作错误计数、读位错误计数等。在一些实施例中,在检测到的错误计数高于一定阈值的情况下,位错误则是不可纠正的位错误。在一些实施例中,管理表可维护可校正或不可校正位错误的计数等。管理表还可以包含一个或多个L2P表,其包含一个或多个使用逻辑地址与所述存储器装置501处对的物理地址相关联的L2P指针。在一些实施例中,管理表可以包含未加密L2P表和/或加密L2P表。未加密L2P表可以包括指示未加密逻辑地址和未加密物理地址的L2P指针;加密L2P表可以包含加密物理地址和未加密逻辑地址的加密L2P指针。在实际应用过程中,所述管理表可以在所述存储器管理单元处示出,也即所述管理表可以存储在控制器502的RAM。在另一些实施例中,所述管理表还可以存储在所述存储器装置501。在使用时,所述存储器管理单元可从控制器502的RAM读取缓存的部分或全部管理表;也可以从所述存储器装置501读取所述管理表。
所述阵列控制单元可以包含电路系统或组件,被配置成控制完成以下相关的存储器操作,比如,所述阵列控制单元控制将数据写入到耦接在所述控制器502的存储器系统50中的一个或多个存储单元,从所述一个或多个存储单元读取数据,或擦除所述一个或多个存储单元。所述阵列控制单元可接收到所述主机发送的命令,或所述存储器管理单元内部生成的主机命令,主机命令可以为与耗损均衡、错误检测或校正等关联的命令。
所述阵列控制单元还可包括错误校正码(ECC)组件,其可包含用于检测或校正与以下相关错误的ECC引擎或其他电路系统,其中相关错误可以为将数据写入到耦接在所述控制器502的存储器系统50中的一个或多个存储单元或从所述一个或多个存储单元读取数据过程中可能出现的错误。控制器502被配置为有效检测与各种操作或数据存储相关的错误事件,所说错误事件,比如,位错误、操作错误等等,并从所述错误事件中恢复,同时维持在主机与存储器系统50之间传输数据的完整性,或者维持所存储数据的完整性,比如可以使用冗余RAID存储等,可以移除,如引退发生故障的存储器资源,如,存储单元、存储器阵列、页、块等,用于防止未来的错误。
在前述的存储器系统中,在一些实施例中,在所述目标编程数据状态包括多个时,所述控制电路还被配置为:分别确定在所述非最后遍编程期间将所述第一存储子块中的存储单元编程至每一个所述目标编程数据状态时执行验证操作对应的所述验证循环计数。
在一些实施例中,所述控制电路还被配置为:按照确定的与每一个目标数据编程态对应的所述验证循环计数配置所述其他存储子块中的存储单元在所述非最后遍编程中需要执行的验证操作次数。
在一些实施例中,在所述多遍编程中的验证策略为预测失败位计数FBC验证时,其中,预测FBC验证为在某一存储块执行编程过程中,在所述某一存储块中预设比例的存储单元已经被编程至所述目标编程数据状态时,对所述某一存储块中剩余未被编程至所述目标编程数据状态的存储单元仅需再执行一次编程操作而不需再执行验证操作;所述控制电路还被配置为:
在对所述第一存储块执行多遍编程时,确定在所述非最后遍编程期间将所述第一存储子块中的存储单元编程至所述目标编程数据状态执行编程操作的编程循环计数;
采用与对所述第一存储子块相同的编程及验证条件对所述第一存储块中其他存储子块中的存储单元编程至所述目标编程数据状态时,在所述其他存储子块中的存储单元的所述非最后遍编程中,至少不执行对应于所述编程循环计数中最后一次的编程操作。
在一些实施例中,每一个存储子块中的存储单元分别耦接到多条字线;相邻存储子块的存储单元之间通过字线耦接,所述编程操作为对所述多条字线中选定字线施加编程电压/脉冲;所述验证操作为对所述选定字线施加验证电压;在所述多遍编程的部分编程循环中,所述验证电压与所述编程电压/脉冲交替施加在所述选定字线的存储单元。
在一些实施例中,在所述多遍编程的每一遍编程中,所述编程操作中施加的编程电压/脉冲按照不同的设定步长增大。
在一些实施例中,所述存储器阵列为三维NAND存储器阵列;所述存储器系统为三维NAND存储器系统。
需要说明的是,该存储器系统包含前述的存储器装置,因此,二者具有相同的技术特征,该存储器系统中出现的名词在前述的存储器装置中均以详细解释,在此同样适用,不再一一赘述。
以上描述旨在是说明性的,而不是限制性的。例如,上述实例(或其一或多个方面)可以彼此组合使用。可使用其它实施例,诸如所属领域的普通技术人员在阅读以上描述时可使用的。应当理解,它将不用于解释或限制权利要求的范围或含义。此外,在以上详细描述中,可将各种特征组合在一起以简化本发明。这不应当被解释为意味着未经要求保护的公开特征对于任何权利要求是必不可少的。相反,公开主题可在于少于特定公开实施例的所有特征。因此,随附权利要求由此被并入详细说明中,其中每一权利要求独立地作为单独的实施例,并且预期这些实施例可以以各种组合或置换而彼此组合。本发明的范围应当参考随附权利要求以及这些权利要求所赋予的等同物的全部范围来确定。
Claims (16)
1.一种存储器装置,其特征在于,包含:具有多个存储块的存储器阵列,其中,每一个所述存储块布置成包含多个存储子块;每一个存储子块至少包含一个存储单元;以及耦接到所述存储器阵列的控制电路;其中,
所述控制电路被配置为:确定在对所述多个存储块中的第一存储块执行多遍编程时在非最后遍编程期间将所述第一存储块中的第一存储子块中的存储单元编程至目标编程数据状态执行验证操作的验证循环计数;
采用与对所述第一存储子块相同的编程及验证条件对所述第一存储块中其他存储子块中的存储单元编程至所述目标编程数据状态时,在所述其他存储子块中的存储单元的所述非最后遍编程中,至少不执行对应于所述验证循环计数中最后一次的验证操作;
其中,所述第一存储块为所述多个存储块中的任一块;所述第一存储子块为所述第一存储块中的任一块;所述其他存储子块为所述第一存储块中除所述第一存储子块外的存储子块。
2.根据权利要求1所述的存储器装置,其特征在于,所述目标编程数据状态包括一个或多个。
3.根据权利要求2所述的存储器装置,其特征在于,在所述目标编程数据状态包括多个时,所述控制电路还被配置为:分别确定在所述非最后遍编程期间将所述第一存储子块中的存储单元编程至每一个所述目标编程数据状态时执行验证操作对应的所述验证循环计数。
4.根据权利要求3所述的存储器装置,其特征在于,所述控制电路还被配置为:按照确定的与每一个目标数据编程态对应的所述验证循环计数配置所述其他存储子块中的存储单元在所述非最后遍编程中需要执行的验证操作次数。
5.根据权利要求1所述的存储器装置,其特征在于,在所述多遍编程中的验证策略为预测失败位计数FBC验证时,其中,预测FBC验证为在某一存储块执行编程过程中,在所述某一存储块中预设比例的存储单元已经被编程至所述目标编程数据状态时,对所述某一存储块中剩余未被编程至所述目标编程数据状态的存储单元仅需再执行一次编程操作而不需再执行验证操作;所述控制电路还被配置为:
在对所述第一存储块执行多遍编程时,确定在所述非最后遍编程期间将所述第一存储子块中的存储单元编程至所述目标编程数据状态执行编程操作的编程循环计数;
采用与对所述第一存储子块相同的编程及验证条件对所述第一存储块中其他存储子块中的存储单元编程至所述目标编程数据状态时,在所述其他存储子块中的存储单元的所述非最后遍编程中,至少不执行对应于所述编程循环计数中最后一次的编程操作。
6.根据权利要求1至5任一项所述的存储器装置,其特征在于,所述存储器阵列为三维NAND存储器阵列。
7.一种对存储器装置的编程操作方法,其特征在于,所述存储器装置包含具有多个存储块的存储器阵列,其中,每一个所述存储块布置成包含多个存储子块;每一个存储子块至少包含一个存储单元;所述编程操作方法包括:
确定在对所述多个存储块中的第一存储块执行多遍编程时在非最后遍编程期间将所述第一存储块中的第一存储子块中的存储单元编程至目标编程数据状态执行验证操作的验证循环计数;
采用与对所述第一存储子块相同的编程及验证条件对所述第一存储块中其他存储子块中的存储单元编程至所述目标编程数据状态时,在所述其他存储子块中的存储单元的所述非最后遍编程中,至少不执行对应于所述验证循环计数中最后一次的验证操作;
其中,所述第一存储块为所述多个存储块中的任一块;所述第一存储子块为所述第一存储块中的任一块;所述其他存储子块为所述第一存储块中除所述第一存储子块外的存储子块。
8.根据权利要求7所述的编程操作方法,其特征在于,所述目标编程数据状态包括一个或多个。
9.根据权利要求8所述的编程操作方法,其特征在于,在所述目标编程数据状态包括多个时,所述编程操作方法还包括:分别确定在所述非最后遍编程期间将所述第一存储子块中的存储单元编程至每一个所述目标编程数据状态时执行验证操作对应的所述验证循环计数。
10.根据权利要求9所述的编程操作方法,其特征在于,所述编程验证方法还包括:
按照确定的与每一个目标数据编程态对应的所述验证循环计数配置所述其他存储子块中的存储单元在所述非最后遍编程中需要执行的验证操作次数。
11.根据权利要求7所述的编程操作方法,其特征在于,在所述多遍编程中的验证策略为预测失败位计数FBC验证时,其中,预测FBC验证为在某一存储块执行编程过程中,在所述某一存储块中预设比例的存储单元已经被编程至所述目标编程数据状态时,对所述某一存储块中剩余未被编程至所述目标编程数据状态的存储单元仅需再执行一次编程操作而不需再执行验证操作;所述编程操作方法还包括:
在对所述第一存储块执行多遍编程时,确定在所述非最后遍编程期间将所述第一存储子块中的存储单元编程至所述目标编程数据状态执行编程操作的编程循环计数;
采用与对所述第一存储子块相同的编程及验证条件对所述第一存储块中其他存储子块中的存储单元编程至所述目标编程数据状态时,在所述其他存储子块中的存储单元的所述非最后遍编程中,至少不执行对应于所述编程循环计数中最后一次的编程操作。
12.一种存储器系统,其特征在于,包含存储器装置,所述存储器装置包含:具有多个存储块的存储器阵列,其中,每一个所述存储块布置成包含多个存储子块的存储器阵列;每一个存储子块至少包含一个存储单元;以及耦接到所述存储器阵列的控制电路;其中,所述控制电路被配置为:确定在对所述多个存储块中的第一存储块执行多遍编程时在非最后遍编程期间将所述第一存储块中的第一存储子块中的存储单元编程至目标编程数据状态执行验证操作的验证循环计数;采用与对所述第一存储子块相同的编程及验证条件对所述第一存储块中其他存储子块中的存储单元编程至所述目标编程数据状态时,在所述其他存储子块中的存储单元的所述非最后遍编程中,至少不执行对应于所述验证循环计数中最后一次的验证操作;其中,所述第一存储块为所述多个存储块中的任一块;所述第一存储子块为所述第一存储块中的任一块;所述其他存储子块为所述第一存储块中除所述第一存储子块外的存储子块;
以及,
耦接到所述存储器装置的存储器控制器,所述存储器控制器被配置为控制所述存储器装置。
13.根据权利要求12所述的存储器系统,其特征在于,在所述目标编程数据状态包括多个时,所述控制电路还被配置为:分别确定在所述非最后遍编程期间将所述第一存储子块中的存储单元编程至每一个时执行验证操作对应的所述验证循环计数。
14.根据权利要求13所述的存储器系统,其特征在于,所述控制电路还被配置为:按照确定的与每一个目标数据编程态对应的所述验证循环计数配置所述其他存储子块中的存储单元在所述非最后遍编程中需要执行的验证操作次数。
15.根据权利要求14所述的存储器系统,其特征在于,在所述多遍编程中的验证策略为预测失败位计数FBC验证时,其中,预测FBC验证为在某一存储块执行编程过程中,在所述某一存储块中预设比例的存储单元已经被编程至所述目标编程数据状态时,对所述某一存储块中剩余未被编程至所述目标编程数据状态的存储单元仅需再执行一次编程操作而不需再执行验证操作;所述控制电路还被配置为:
在对所述第一存储块执行多遍编程时,确定在所述非最后遍编程期间将所述第一存储子块中的存储单元编程至所述目标编程数据状态执行编程操作的编程循环计数;
采用与对所述第一存储子块相同的编程及验证条件对所述第一存储块中其他存储子块中的存储单元编程至所述目标编程数据状态时,在所述其他存储子块中的存储单元的所述非最后遍编程中,至少不执行对应于所述编程循环计数中最后一次的编程操作。
16.根据权利要求12至15任一项所述的存储器系统,其特征在于,所述存储器阵列为三维NAND存储器阵列;所述存储器系统为三维NAND存储器系统。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210382032.7A CN114882928A (zh) | 2022-04-12 | 2022-04-12 | 一种存储器装置、存储器系统及编程操作方法 |
CN202380008616.0A CN117223059A (zh) | 2022-04-12 | 2023-03-06 | 存储器装置、存储器系统及其操作方法 |
PCT/CN2023/079760 WO2023197774A1 (en) | 2022-04-12 | 2023-03-06 | Memory device, memory system, and method of operating |
US18/122,928 US20230326537A1 (en) | 2022-04-12 | 2023-03-17 | Memory device, memory system, and method of operating the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210382032.7A CN114882928A (zh) | 2022-04-12 | 2022-04-12 | 一种存储器装置、存储器系统及编程操作方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114882928A true CN114882928A (zh) | 2022-08-09 |
Family
ID=82670135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210382032.7A Pending CN114882928A (zh) | 2022-04-12 | 2022-04-12 | 一种存储器装置、存储器系统及编程操作方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114882928A (zh) |
WO (1) | WO2023197774A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023197774A1 (en) * | 2022-04-12 | 2023-10-19 | Yangtze Memory Technologies Co., Ltd. | Memory device, memory system, and method of operating |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US10714198B1 (en) * | 2019-06-04 | 2020-07-14 | Sandisk Technologies Llc | Dynamic 1-tier scan for high performance 3D NAND |
US11049578B1 (en) * | 2020-02-19 | 2021-06-29 | Sandisk Technologies Llc | Non-volatile memory with program verify skip |
US11605437B2 (en) * | 2021-06-25 | 2023-03-14 | Sandisk Technologies Llc | Memory programming with selectively skipped verify pulses for performance improvement |
CN114882928A (zh) * | 2022-04-12 | 2022-08-09 | 长江存储科技有限责任公司 | 一种存储器装置、存储器系统及编程操作方法 |
-
2022
- 2022-04-12 CN CN202210382032.7A patent/CN114882928A/zh active Pending
-
2023
- 2023-03-06 WO PCT/CN2023/079760 patent/WO2023197774A1/en active Application Filing
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023197774A1 (en) * | 2022-04-12 | 2023-10-19 | Yangtze Memory Technologies Co., Ltd. | Memory device, memory system, and method of operating |
Also Published As
Publication number | Publication date |
---|---|
WO2023197774A1 (en) | 2023-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106157999B (zh) | 包括虚设存储单元的半导体存储器件及其操作方法 | |
US8369147B2 (en) | Non-volatile multilevel memory cell programming | |
US8102707B2 (en) | Non-volatile multilevel memory cells | |
US8154926B2 (en) | Memory cell programming | |
CN109427400B (zh) | 存储器装置及其操作方法 | |
CN112447244B (zh) | 存储装置及其操作方法 | |
US8953379B2 (en) | Apparatuses and methods of reprogramming memory cells | |
US9384839B2 (en) | Write sequence providing write abort protection | |
CN111798904A (zh) | 非易失性存储器装置、其操作方法和存储器系统 | |
US8264879B2 (en) | Sensing memory cells | |
WO2023197774A1 (en) | Memory device, memory system, and method of operating | |
CN116343877A (zh) | 存储装置 | |
CN114360615A (zh) | 非易失性存储器及其控制方法、存储系统 | |
US20230326537A1 (en) | Memory device, memory system, and method of operating the same | |
US20230342029A1 (en) | Memory device, a memory system and an operation method | |
US11942157B2 (en) | Variable bit line bias for nonvolatile memory | |
US20230360705A1 (en) | Memory programming using consecutive coarse-fine programming operations of threshold voltage distributions | |
US11688465B2 (en) | Memory system having memory controller | |
US20230418742A1 (en) | Out-of-order programming of first wordline in a physical unit of a memory device | |
CN114822645A (zh) | 一种存储器及其编程方法、存储器系统 | |
CN116126583A (zh) | 用于控制存储器装置的存储器控制器及其操作方法 | |
CN116153354A (zh) | 用于存储器装置中的边缘数据字线的编程方案 | |
CN114639420A (zh) | 在存储器子系统中的编程操作期间的增强梯度播种方案 | |
CN117877546A (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 |