对多平面存储器件进行编程的方法转让专利
申请号 : CN202080000277.8
文献号 : CN111356980B
文献日 : 2021-03-12
发明人 : 邓佳梁 , 王瑜
申请人 : 长江存储科技有限责任公司
摘要 :
权利要求 :
1.一种对存储器件进行编程的方法,所述存储器件包括多个平面、行驱动器和控制器,所述方法包括:
在编程操作中,所述行驱动器向所述多个平面中的一平面的多个存储单元施加编程脉冲;
在所述行驱动器向所述多个存储单元施加所述编程脉冲之后,所述控制器验证所述多个存储单元是否已经达到预定编程状态;以及如果在所述多个存储单元被验证了预定次数之后,所述多个存储单元中的预设数量的存储单元还未能达到所述预定编程状态,则所述控制器禁用所述平面。
2.根据权利要求1所述的方法,还包括:当所述多个存储单元中的所述预设数量的存储单元还未达到所述预定编程状态时,所述控制器对验证失败计数进行递增。
3.根据权利要求1所述的方法,其中,与所述预定编程状态和另一编程状态的失败验证相关联的预定次数是相同的。
4.根据权利要求1所述的方法,其中,与所述预定编程状态和另一编程状态的失败验证相关联的预定次数是不同的。
5.根据权利要求1所述的方法,其中,所述控制器禁用所述平面包括:所述控制器阻止平面选择信号。
6.根据权利要求1所述的方法,其中,所述控制器禁用所述平面包括:所述控制器阻止块选择信号。
7.根据权利要求1所述的方法,其中,所述控制器禁用所述平面包括:所述控制器取消选择所述平面的所有字线。
8.根据权利要求1所述的方法,其中,所述控制器禁用所述平面包括:所述控制器取消选择所述平面的所有位线。
9.根据权利要求1所述的方法,其中,所述控制器禁用所述平面包括:所述控制器设置失败比特计数通过信号以继续对所述存储器件进行编程。
10.根据权利要求1所述的方法,还包括:当所述多个平面中的一个平面已经通过对所述预定编程状态的验证并且所述预定编程状态不是最高编程状态时,所述控制器将所述预定编程状态设置为下一编程状态。
11.根据权利要求1所述的方法,还包括:当所述多个平面中的一个平面已经通过对所述预定编程状态的验证并且所述预定编程状态是最高编程状态时,所述控制器禁用所述多个平面。
说明书 :
对多平面存储器件进行编程的方法
技术领域
背景技术
织成多个平面的存储器阵列。当对多平面类型存储器件进行编程时,可以同时对两个或更
多个存储平面进行编程以提高编程效率。然而,当多平面类型存储器件包含有缺陷的存储
平面时,正常的存储平面和有缺陷的存储平面都将被重复编程,以试图将数据编程到有缺
陷的存储平面中,这降低了编程速度、降低了编程效率、并且增加了正常的存储平面中的程
序干扰。
发明内容
元施加编程脉冲;在行驱动器向多个存储单元施加编程脉冲之后,控制器验证所述多个存
储单元是否已经达到预定编程状态;以及,如果在所述多个存储单元已经被验证了预定次
数之后,所述多个存储单元中的预定数量的存储单元还未达到预定的编程状态,则所述控
制器禁用所述第一平面。
附图说明
具体实施方式
的范围的情况下,本发明可适用于其它非易失性存储器件,例如,电可擦除可编程只读存储
器(EEPROM)、NOR闪存存储器、相变RAM(PRAM)、磁性RAM(MRAM)、电阻性RAM(RRAM)、铁电RAM
(FRAM)等。
在该实施例中使用了双平面结构,但是应当理解,在本发明的范围内也可以采用其它数量
的平面。可以同时对平面141、142进行编程。在进行编程之后,如果平面141或平面142被验
证为失败达到预定次数,则行驱动器12可以禁止对失败的平面141或142进行后续编程。对
失败的平面的禁止减少了尝试对其进行编程所花费的时间,并减少了工作的平面中的程序
干扰。
择线GSL1耦接到平面141,N是正整数,例如,N=64。行驱动器12可以经由串选择线SSL2、字
线WL2(1)至WL2(N)以及接地选择线GSL2耦接到平面142。列驱动器131可以经由位线BL1(1)
到BL1(M)耦接到平面141,M是正整数,例如,M=8192。列驱动器132可以经由位线BL2(1)至
BL2(M)耦接到平面142。平面141、142中的每一个可以包含多个块,每个块可以包含多个页,
并且每个页可以包含存储单元的阵列。平面141中的存储单元的阵列可以通过字线WL1(1)
到WL1(N)以及位线BL1(1)至BL1(M)进行寻址,并且平面142中的存储单元的阵列可以通过
字线WL2(1)至WL2(N)以及位线BL2(1)到BL2(M)进行寻址。
址信号Scadr1、Scadr2、行地址信号Sradr以及电压控制信号Svc。响应于来自控制器10的电
压控制信号Svc,电压生成电路11可以生成用于读取、编程、擦除和验证操作的电压。电压生
成电路11生成的电压可能超过提供给存储器件1的电源电压。行驱动器12可以响应于来自
控制器10的行地址信号Sradr而操作,以便选择用于读取、编程、擦除和验证操作的字线。列
驱动器131、132可以响应于来自控制器10的列地址信号Scadr1、Scadr2而操作,以便生成位
线信号以选择用于读取、编程、擦除和验证操作的位线。在编程操作中,电压生成电路11可
以使用电源电压(例如,3.3V)来生成编程电压(例如,20V)和编程通过电压(例如,10V),行
驱动器12可以向所选择的字线施加具有编程电压的幅度的编程脉冲,向未选定的字线施加
编程通过电压,向串选择线SSL1、SSL2施加电源电压,以及向接地选择线GSL1、GSL2施加接
地电压,并且列驱动器131、132可以向所选择的位线施加接地电压(例如,0V),以及向未选
定的位线施加电源电压。在验证操作中,电压生成电路11可以生成合适的验证电压,行驱动
器12可以将合适的验证电压施加到所选择的字线,将电源电压施加到串选择线SSL1、SSL2,
并且将电源电压施加到接地选择线GSL1、GSL2,并且列驱动器131、132可以将接地电压施加
到未选择的位线,并且将电源电压分别施加到平面141、142的被选择的位线以便在所选择
的位线上从所选择的存储单元中读取数据。如果数据读取是不正确的,则控制器10可以将
所选择的存储单元验证为失败,而如果数据读取是正确的,则控制器10可以将所选择的存
储单元验证为通过。
可以是浮栅晶体管或电荷捕获晶体管,并且存储单元C(1,1)至C(M,N)、串选择单元Css(1)
至Css(M)以及接地选择单元Cgs(1)至Cgs(M)中的每一个可以包括控制端、第一端和第二
端。串选择线SSLn可以耦接到串选择单元Css(1)至Css(M)的控制端,并且位线BL(1)到BL
(M)可以分别耦接到串选择单元Css(1)至Css(M)的第一端。存储单元C(1,1)至C(M,N)可以
布置成耦接至相应字线WL(1)至WL(N)的存储单元的行。字线WL(1)至WL(N)可以分别耦接至
第一行的存储单元C(1,1)至C(M,1)的控制端、耦接至第N行的存储单元C(1,N)至C(M,N)的
控制端,并且存储单元C(1,1)至C(M,1)的第一端可以分别耦接到串选择单元Css(1)到Css
(M)的第二端。接地选择线GSLn可以耦接到接地选择单元Cgs(1)至Cgs(M)的控制端,接地选
择单元Cgs(1)至Cgs(M)的第一端可以分别耦接到存储单元C(1,N)至C(M,N)的第二端,并且
接地选择单元Cgs(1)到Cgs(M)的第二端可以耦接到接地端。接地端可以提供接地电压。
(m,n)可以保持Q个可能的数据状态之一,其中,Q是等于或大于2的正整数,例如,对于SLC,Q
=2,对于MLC,Q=4,对于TLC,Q=8,对于QLC,Q=16,并且对于PLC,Q=32。Q个可能的数据状
态可以包括擦除状态S(0)和编程状态S(1)至S(Q-1),其中,编程状态S(1)是最低编程状态,
而编程状态S(Q-1)处于最高编程状态。在一个示例中,TLC可以被编程为8种可能的数据状
态之一,其中,编程状态S(1)是最低编程状态,而编程状态S(7)是最高编程状态。
系列编程验证操作可以从最低编程状态S(1)开始,然后进行到较高的编程状态,直到所选
择的存储单元的阈值电压达到相应的目标编程状态的相应验证电压电平为止。在一些实施
例中,可以将验证电压分别选择作为编程状态S(1)至S(Q-1)的阈值电压分布曲线的最小阈
值电压。每个编程验证操作可以包括编程操作和后续的验证操作。在编程操作中,可以选择
存储单元C(1,1)至C(M,N)中的一些并且按照从第一行到第N行、或者从第N行到第一行的逐
行方式编程到编程状态中。在后续的验证操作中,控制器10可以按照从第一行到第N行或者
从第N行到第一行的逐行方式来验证所选择的存储单元是否已经达到编程状态。通过这种
方式,可以将存储单元C(1,1)至C(M,N)编程到相应的目标编程状态中。
括加法器36。在一些实施例中,列驱动器131、132还可以包括灵敏放大器,以检测来自所选
择的位线的电流,从而分别从平面141、142读取数据。页缓冲器301至30n可以分别耦接至失
败比特计数器321至32n。失败比特计数器321至32n可以分别耦接至列解码器341至34n。列
解码器341至34n可以耦接至加法器36。在一些实施例中,加法器36可以位于列驱动器131、
132中的每一个中,并且可以耦接至控制器10。
中的所选择的存储单元中获取数据到页缓冲器301至30n。失败比特计数器321至32n可以分
别对平面141、142的页中被验证为失败的存储单元的数量进行计数,以便生成页失败比特
计数。加法器36可以累加平面141的所有页的页失败比特计数以生成第一平面失败比特计
数,并且累加平面142的所有页的页失败比特计数以生成第二平面失败比特计数。如果第一
平面失败比特计数小于预设的平面失败比特计数,则控制器10可以将平面141验证为通过,
而如果第一平面失败比特计数超过预设的平面失败比特计数,则控制器10可以将平面141
验证为失败。类似地,如果第二平面失败比特计数小于预设的平面失败比特计数,则控制器
10可以将平面142验证为通过,而如果第二平面失败比特计数超过预设的平面失败比特计
数,则控制器10可以将平面142验证为失败。当平面141、142被验证为失败达到预定次数(例
如,4次)时,控制器10可以禁用平面141、142。当平面141、142被验证为失败达到预定次数之
前被验证为通过时,控制器10可以继续将平面141、142编程到下一编程状态S(q+1)中。
指示编程失败的失败比特通过信号。所述失败比特通过信号可以用于判断是否继续对存储
器件1进行编程。在一些实施例中,控制器10可以将失败比特通过信号设置为逻辑高以继续
对存储器件1进行编程,而将失败比特通过信号设置为逻辑低以停止对存储器件1进行编
程。在一些实施例中,控制器10还可以在退出编程验证操作时生成用于指示编程结果的状
态报告。当平面141、142中的至少一个平面完成最高状态S(Q-1)的编程时,状态报告可以指
示编程通过。当在完成最高状态S(Q-1)的编程之前两个平面141、142都被禁用时,状态报告
可以指示编程失败。当施加到存储器件1的编程脉冲超过最大编程脉冲计数时,状态报告可
以指示编程失败。
及平面禁用信号Sdisp1,以生成平面选择信号Ssp1。与门42可以接收平面地址信号Sap2、失
败比特通过信号Sfbp以及平面禁用信号Sdisp2,以生成平面选择信号Ssp2。控制器10可以
根据平面选择信号Ssp1来生成列地址信号Scadr1,根据平面选择信号Ssp2来生成列地址信
号Scadr2,以及根据平面选择信号Ssp1、Ssp2来生成行地址信号Sradr。在一些实施例中,当
确定禁用平面141时,控制器10可以将平面禁用信号Sdisp1设置为逻辑低,与门41可以响应
于平面禁用信号Sdisp1来通过将平面选择信号Ssp1设置为逻辑低来阻止平面选择信号
Ssp1,并且控制器10可以生成行地址信号Sradr和列地址信号Scadr1以取消选择平面141的
字线WL1(1)至WL1(N)以及位线BL1(1)至BL1(M)。同样,当确定禁用平面142时,控制器10可
以将平面禁用信号Sdisp2设置为逻辑低,与门42可以响应于平面禁用信号Sdisp2通过将平
面选择信号Ssp2设置为逻辑低来阻止平面选择信号Ssp2,并且控制器10可以生成行地址信
号Sradr和列地址信号Scadr2以取消选择平面142的字线WL2(1)至WL2(N)以及位线BL2(1)
至BL2(M)。
第二块选择信号。控制器10可以根据第一块选择信号来生成列地址信号Scadr1,根据第二
块选择信号来生成列地址信号Scadr2,并且根据第一块选择信号和第二块选择信号来生成
行地址信号Sradr。在一些实施例中,当确定禁用平面141时,控制器10可以将平面禁用信号
Sdisp1设置为逻辑低,与门41可以响应于平面禁用信号Sdisp1,通过将第一块选择信号设
置为逻辑低来阻止第一块选择信号,并且控制器10可以生成行地址信号Sradr和列地址信
号Scadr1以取消选择平面141的字线WL1(1)至WL1(N)和位线BL1(1)至BL1(M)。类似地,当确
定禁用平面142时,控制器10可以将平面禁用信号Sdisp2设置为逻辑低,与门42可以响应于
平面禁用信号Sdisp2,通过将第二块选择信号设置为逻辑低来阻止第二块选择信号,并且
控制器10可以生成行地址信号Sradr和列地址信号Scadr2以取消选择平面142的字线WL2
(1)至WL2(N)以及位线BL2(1)至BL2(M)。
以是范围介于1和(Q-1)之间的正整数。失败验证计数Cvf1、Cvf2可以是范围介于1和最大失
败计数Cvmax(q)之间的正整数。最大失败计数Cvmax(q)可以定义在禁用平面之前执行对编
程状态S(q)的验证的最大次数,并且可以专门针对编程状态S(q)。例如,可以为编程状态S
(1)至S(7)分别分配最大失败计数Cvmax(1)至Cvmax(7)。最大失败计数Cvmax(q)可以是大
于1的正整数,并且可以在制造建立期间设置。编程脉冲计数Cp可以是范围介于1和最大编
程脉冲计数Cpmax之间的正整数。最大编程脉冲计数Cpmax可以定义向平面141、142施加编
程脉冲的最大次数,并且可以是大于1的正整数并且在制造建立期间设置。
中的程序干扰。
Cvf2来禁用平面141、142。步骤S502至S508用于编程和验证存储器件1。步骤S512至S516用
于判断是否禁用平面141。步骤S522至S526用于判断是否禁用平面142。步骤S532至S536用
于完成对启用编程的平面141、142的编程。步骤S540和S542用于根据编程脉冲计数Cp来禁
止对存储器件1进行编程。任何合理的步骤改变或调整都落在本公开内容的范围内。步骤
S502至S542被如下解释:
Sdisp2和失败比特通过信号Sfbp设置为逻辑高,并且设置编程脉冲计数Cp、失败验证计数
Cvf1、Cvf2以及编程状态计数器q(S502)。在一些实施例中,编程脉冲计数Cp和失败验证计
数Cvf1、Cvf2可以被复位为0(Cp=0,Cvf1=0,Cvf2=0),并且编程状态计数器q可以被复位
为1(q=1)。接下来,行驱动器12将编程脉冲施加到平面141、142的被选择的字线(S504),并
且控制器10将编程脉冲计数Cp递增1(Cp=1)(S506)。控制器10验证平面141、142的存储单
元是否已经达到编程状态S(1)(S508)。如果多于预设数量的平面141、142的存储单元未能
达到编程状态S(1),则控制器10将平面141、142验证为失败。如果少于平面141、142的存储
单元的预设数量未能达到编程状态S(1),则控制器10将平面141、142验证为通过。
大失败计数Cvmax(1)可以是4。如果失败验证计数Cvf1(Cvf1=0)小于最大失败计数Cvmax
(1)(Cvmax(1)=4),则控制器10对失败验证计数Cvf1递增1(Cvf1=1)(S514)。在步骤S540
中,控制器10判断编程脉冲计数Cp是否小于最大编程脉冲计数Cpmax。在一些实施例中,最
大编程脉冲计数Cpmax可以是20。如果编程脉冲计数Cp(Cp=1)小于最大编程脉冲计数
Cpmax(Cpmax=20),则控制器10在步骤S504至S514以及步骤S540上进行重复,直到当失败
验证计数Cvf1达到4时平面141仍然验证失败。当控制器10确定失败验证计数Cvf1(Cvf1=
4)不小于最大失败计数Cvmax(1)(Cvmax(1)=4)时,控制器10将平面禁用信号Sdisp1设置
为逻辑低,同时将失败比特通过信号Sfbp保持为逻辑高以禁用平面141(S516)。
=4)(S522)。如果是,则控制器10对失败验证计数Cvf2递增1(Cvf2=1)(S524)。在步骤S540
中,控制器10判断编程脉冲计数Cp(Cp=1)是否小于最大编程脉冲计数Cpmax(Cpmax=20)。
如果是,则控制器10在步骤S504至S508、步骤S520至S524和步骤S540上进行重复,直到当失
败验证计数Cvf2达到4时平面142仍然被验证为失败。当控制器10确定失败验证计数Cvf2
(Cvf2)=4)不小于最大失败计数Cvmax(1)(Cvmax(1)=4),控制器10将平面禁用信号
Sdisp2设置为逻辑低,同时将失败比特通过信号Sfbp保持为逻辑高,以禁用平面142
(S526)。
数Cvmax(1)之前已经将平面141、142中的一个平面验证为通过并且禁用平面141、142中的
另一个平面(S530),则控制器10接下来判断编程状态S(1)是否小于最高编程状态S(7)
(S532)。例如,在施加第四编程脉冲(Cp=4,Cvf1=3,Cvf2=4)时,控制器10可以将平面141
验证为通过并且将平面142验证为失败,禁用平面142(S526),并执行将平面141编程到下一
编程状态S(2)。如果编程状态S(1)小于最高编程状态S(7),则控制器10将编程状态计数器q
递增1(q=2),并将失败验证计数Cvf1、Cvf2复位到0(Cvf1=0,Cvf2=0)(S534),并且判断
编程脉冲计数Cp(Cp=4)是否小于最大编程脉冲计数Cpmax(Cpmax=20)(S540)。如果是,则
由于已经禁用了平面142,所以控制器10在S504至S514、步骤S530至S534、以及步骤S540上
进行重复,直到禁用平面141、达到最高编程状态S(7)或者编程脉冲计数Cp达到最大编程脉
冲计数Cpmax为止。当平面141和平面142都被禁用时,控制器10将平面禁用信号Sdisp1和失
败比特通过信号Sfbp设置为逻辑低,生成用于指示编程失败的状态报告并退出方法500
(S516)。当达到最高编程状态S(7)时,控制器10生成用于指示编程通过的状态报告并退出
方法500(S536)。当编程脉冲计数Cp(Cp=20)达到最大编程脉冲计数Cpmax(Cpmax=20)时,
控制器10将失败比特通过信号Sfbp设置为逻辑低,生成用于指示编程失败的状态报告并退
出方法500(S542)。
Cvmax(7)中的两个或更多个可以相同,例如Cvmax(1)=Cvmax(2)=……=Cvmax(7)=4。在
其它实施例中,最大失败计数Cvmax(1)至Cvmax(7)中的两个或更多个可以不同,例如,
Cvmax(1)=4和Cvmax(2)=3。
设置用于控制字线WL1(1)至WL1(N)、WL2(1)至WL2(N)、位线BL1(1)至BL1(M)、BL2(1)至BL2
(M)的其它信号,并且将串选择线SSL1、SSL2以及接地选择线GSL1、GSL2设置为逻辑低。当平
面141、142中的一个平面被验证为通过时,失败比特通过信号Sfbp可以被设置为逻辑高,以
继续对存储器件1进行编程。
程序干扰。
S604用于编程和验证存储器件1。步骤S606至S610用于判断是否禁用平面141/142。步骤
S612至S616用于继续完成对启用编程的平面141、142的编程。任何合理的步骤改变或调整
都落在本公开内容的范围内。步骤S602至S616被如下解释:
骤S610。
141、142以用于后续编程,从而加速数据编程并减少操作的平面中的程序干扰。
范围来限定。