一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

存储器编程方法、装置及电子设备与流程

2021-01-26 08:04:00 来源:中国专利 TAG:存储器 电子设备 装置 用于 编程


[0001]
本发明涉及存储器,并且具体涉及一种用于非易失性存储器的编程方法、装置、及电子设备。


背景技术:

[0002]
最近,半导体存储器领域受到越来越多的关注。半导体存储器可以是易失性和非易失性的。非易失性半导体存储器(例如nand闪存)即使在未通电的情况下也能够保持数据,因此已经广泛用于蜂窝电话、数码相机、个人数字助理、移动计算设备、非移动计算设备和其它设备中。
[0003]
目前,对于nand闪存,普通采用增量步进脉冲编程(ispp)的方法进行编程,即,依次使用多个逐步增加的脉冲编程电压对存储单元进行编程,每个编程过程可以包括编程操作和后续的验证操作。在编程过程期间,在每次对存储单元执行编程操作后使用验证电压来对这些存储单元进行验证,在下一次编程过程期间限制已通过验证的存储单元,对于未通过验证的存储单元继续使用增加后的脉冲编程电压进行编程并验证,直至通过验证的存储单元的数量达到设定值。
[0004]
然而,在当前的验证操作中,属于不同编程级别或状态的存储单元需要利用不同的验证电压来顺序进行验证,这增加了编程时间。
[0005]
因此,需要提供一种用于在非易失性存储器的编程期间以高效方式进行验证的方法和装置,以降低编程时间。


技术实现要素:

[0006]
提供本发明内容以便介绍一组概念,这组概念将在以下的具体实施方式中做进一步描述。本发明内容并非旨在标识所保护主题的关键特征或必要特征,也不旨在用于限制所保护主题的范围。
[0007]
本发明的目的在于提供一种用于存储器的编程方法和装置,用于降低编程所需的时间,尤其是降低编程期间的验证操作所花费的时间。
[0008]
按照本发明实施例的一种存储器装置,包括:存储单元阵列,其包括多个存储单元;耦合至所述存储单元阵列的控制器,其被配置为:对所述存储单元阵列中的至少一组存储单元施加相同的验证电压,其中,所述一组存储单元至少包括要被编程至第一目标编程级别的第一存储单元和要被编程至高于所述第一目标编程级别的第二目标编程级别的第二存储单元;在经过第一验证时间段之后,获得针对第一存储单元的第一验证结果;以及在经过第二验证时间段之后,获得针对第二存储单元的第二验证结果,其中,所述第二验证时间段包含所述第一验证时间段。
[0009]
按照本发明实施例的一种用于存储器装置的编程方法,所述存储器装置包括具有多个存储单元的存储单元阵列,所述方法包括:对所述存储单元阵列中的至少一组存储单元施加相同的验证电压,其中,所述一组存储单元至少包括要被编程至第一目标编程级别
的第一存储单元和要被编程至高于所述第一目标编程级别的第二目标编程级别的第二存储单元;在经过第一验证时间段之后,获得针对第一存储单元的第一验证结果;以及在经过第二验证时间段之后,获得针对第二存储单元的第二验证结果,其中,所述第二验证时间段包含所述第一验证时间段。
[0010]
按照本发明实施例的一种电子设备,包括:存储器装置,用于存储可执行指令;处理器,耦合至所述存储器装置,用于在执行所述可执行指令时控制所述存储器装置执行本文所述的方法。
[0011]
应当注意,以上一个或多个方面包括以下详细描述以及在权利要求中具体指出的特征。下面的说明书及附图详细阐述了所述一个或多个方面的某些说明性特征。这些特征仅仅指示可以实施各个方面的原理的多种方式,并且本公开内容旨在包括所有这些方面和其等同变换。
附图说明
[0012]
以下将结合附图描述所公开的多个方面,这些附图被提供用以说明而非限制所公开的多个方面。
[0013]
图1示出了根据实施例的非易失性存储器装置的示意图。
[0014]
图2是根据本发明的实施例用于存储器装置的编程方法的示意流程图。
[0015]
图3示出了在当前编程过程期间的感测节点处的放电过程的示例性电压变化图。
[0016]
图4示出了在根据本发明的实施例的编程过程期间、采用双感测算法的感测节点处的放电过程的示例性电压变化图。
[0017]
图5示出了在对存储器装置进行编程的过程中在不同放电时间下存储单元的阈值电压分布的变化图。
[0018]
图6示出了根据本发明的实施例的采用双感测算法的感测节点处的放电过程的示例性时序图。
[0019]
图7示出了根据本发明实施例的使用示例性双感测算法、用于对存储器装置进行编程的电路或部件的逻辑框图。
[0020]
图8是根据本发明的实施例用于存储器装置的编程方法的示例流程图。
[0021]
图9是根据本发明的实施例用于对存储器装置进行编程的电子设备。
具体实施方式
[0022]
现在将参考多种示例性实施方式来讨论本公开内容。应当理解,这些实施方式的讨论仅仅用于使得本领域技术人员能够更好地理解并从而实施本公开内容的实施例,而并非教导对本公开内容的范围的任何限制。
[0023]
在当前的nand编程验证操作中,每个编程级别对应一个验证电压。当要验证同一个级别的至少一个存储单元时,对所选择的字线wl施加对应的验证电压,其中该验证电压在感测节点so放电过程期间需要与存储单元的阈值电压进行比较以判断该级别的存储单元是否通过验证。nand单元的so放电结果可以被存储在页缓存器的锁存器中,然后将其用于确定该单元的编程结果,即通过验证从而编程结束或未通过验证从而继续编程。
[0024]
在存储单元的编程过程期间,验证操作中的关键过程是so放电过程。在预定的放
电时间段期间,在感测节点so处累积的电荷可以通过位线bl和沟道进行放电。如果在该预定的放电时间段期间的总放电量足以使得感测节点so处发生明显的压降,则可以将相应存储单元的阈值电压认为低于验证电压,这表示该存储单元未通过验证且需要被再次编程和验证。另一方面,如果在该预定的放电时间段期间的总放电量较小,即放电后剩余的电量或电压大于预定电压,则表示该存储单元通过了验证且在下一次编程循环中被限制编程。由此可见,在当前的放电过程中,决定验证结果(即是否通过验证)的关键因素是总放电量,即放电电流与放电时间的积分。由于在当前的验证操作中,所有存储单元都共享相同的放电或验证时间段(即,所有存储单元的放电时间段都相同),因此验证结果仅取决于放电电流,从而存储单元的阈值电压与验证电压之间的比较结果也仅取决于放电电流。这使得属于不同目标编程级别的存储单元需要利用不同的字线wl偏置电压以顺序或串行的方式来进行验证,这将花费较多的验证时间。
[0025]
在本文中,术语“目标编程级别”指的是存储单元要被编程至的目标状态或对应于存储单元要被编程至的目标阈值电压。举例而言,每个存储单元可以存储1比特数据或2比特数据或更多比特数据,因此可以是单级单元(slc)类型、多级单元(mlc)类型、三级单元(tlc)类型、四级单元(qlc)类型或更高级类型。每个存储单元可以保持q个可能的编程级别中的一个级别(即目标编程级别,其也可以被称作编程状态,且可以对应于目标阈值电压),其中q是等于或大于2的正整数。对于slc而言,q=2(即编程级别l0、l1),对于mlc而言,q=4(即编程级别l0、l1、l2、l3),对于tlc而言,q=8(即编程级别l0-l7),以及对于qlc而言,q=16(即编程级别l0-l15),等等。需要注意的是,由于l0是擦除态,因此无需对l0级别的存储单元进行编程和验证。需要理解的是,在下文中描述的要被编程至目标编程级别的存储单元指的是需要进行编程和验证的存储单元。为简单起见,可以将本文中描述的要被编程至目标编程级别ln的一个或多个存储单元简称为ln存储单元,例如l1存储单元指的是要被编程至l1级别的一个或多个存储单元,依此类推。
[0026]
为了解决上述问题,本申请提出了在要被分别编程至不同目标编程级别的多个存储单元的编程期间的一种验证方法,其是利用多重感测算法(例如双感测算法)对要被分别编程至不同目标编程级别的多个存储单元同时开始或并行地进行验证的方法,例如包括对应于两个目标编程级别的两个存储单元(如低级别l
low
和高级别l
high
存储单元),包括对应于三个目标编程级别的三个存储单元(如低级别l
low
、中等级别l
medium
和高级别l
high
存储单元),或包括对应于任意数量个编程级别(如l1至l
n
)的多个存储单元等等。该方法针对l1存储单元至l
n
存储单元的不同目标编程级别设定不同的放电时间段或验证时间段(例如,针对l
low
存储单元使用短放电时间段,针对l
medium
存储单元使用大于短放电时间段的中等放电时间段,针对l
high
存储单元使用大于短放电时间段和/或中等放电时间段的长放电时间段等等)和相同的验证电压,从而可以对这些存储单元并行地进行验证以节省验证时间从而节省编程时间。在本文的实施例中,针对l
low
存储单元使用较短的放电时间段可以使得该存储单元在放电过程期间有效地降低放电量,从而使其目标阈值电压较低且较容易通过验证。另一方面,针对l
high
存储单元使用较长的放电时间段可以使得该存储单元在放电过程期间增加放大量,从而将其目标阈值电压置于较高值。需要理解的是,虽然在本文中使用了词语“低级别存储单元”、“中等级别存储单元”和“高级别存储单元”来描述要被编程至不同目标编程级别的多个存储单元,但上述词语仅是用于示例目的而非限制目的,在其它实施
例中或在实际应用中可以采用任意合适的词语来描述要被编程至不同目标编程级别的多个存储单元。
[0027]
下面将结合附图来详细描述本发明的各个实施例。
[0028]
图1示出了根据本发明的实施例的非易失性存储器装置100。非易失性存储器装置100可以包括具有多个存储单元c(1,1)至c(m,n)的存储单元阵列102、控制电路104(也可称作为控制器、控制单元、控制元件等等)以及感测电路106,其中m和n是正整数。在本发明的一些实施例中,感测电路106可以包括多个感测节点(图中未示出),每个感测节点分别耦合至存储单元的位线bl1至bl
n
,其中,感测电路通过感测选定位线bl
n
上的电压或电流来检测目标存储单元的状态或阈值电压。在本申请的一些例子中,非易失性存储器装置100可以是nand型闪存,例如3d nand存储器。n个存储单元可以耦合到相同的对应字线wl,并且m个存储单元可以耦合到相同的对应位线bl。例如,存储单元c(1,1)至c(1,n)可以耦合到字线wl1,存储单元c(m,1)至c(m,n)可以耦合到字线wl
m
。在一些实施例中,可以通过控制电路104经由字线对存储单元施加编程电压而同时对耦合到同一字线的存储单元进行编程。存储单元c(1,1)至c(m,1)可以耦合到位线bl1,存储单元c(1,n)至c(m,n)可以耦合到位线bl
n
。如图1所示,存储单元阵列102的一个端子经由位线晶体管tb耦合到位线,而另一个端子经由源极线晶体管ts耦合到源极线。
[0029]
在本文的实施例中,存储单元c(1,1)至c(m,n)中的每一个可包括晶体管tc。晶体管tc可以是例如浮栅晶体管或电荷捕获晶体管。在用于存储单元c(1,1)至c(m,n)的编程操作的编程循环期间,存储单元c(1,1)至c(m,n)的晶体管tc的栅极端子可以从字线wl1到wl
m
接收编程脉冲,并且晶体管tc的位线端子可以从位线bl1到bl
n
接收位线偏置电压。在下一个编程循环期间,编程脉冲的电压可以按步长增大。该方法通常称为增量步进脉冲编程(issp)。issp允许电子注入至晶体管tc的栅极结构,从而将晶体管tc的阈值电压按步长电压增大。晶体管tc的阈值电压将增大以通过对应目标编程级别的验证电压。因此,可以根据存储单元c(1,1)至c(m,n)的目标阈值电压来识别存储单元c(1,1)至c(m,n)的目标编程级别。
[0030]
图2是根据本发明的实施例的用于存储器装置的编程方法200的示意流程图。在一些实施例中,方法200包括图2所示的步骤s202至s236,但不限于图2中所示的顺序和步骤,且该方法200可以由图1中所示的存储器装置100来执行。
[0031]
在步骤202处,对待编程的多个存储单元施加编程电压以进行编程。例如,通过控制电路或控制器在存储单元的字线上施加编程电压来进行编程。在本文的实施例中,待编程的多个存储单元包括分别要被编程到不同目标编程级别的两个或更多个存储单元,例如分别要被编程到l1级别、l2级别和/或ln级别的多个存储单元。
[0032]
在步骤204处,在编程操作后,(例如,同时)对所编程的至少一组存储单元(例如,在其字线上)施加相同的验证电压来执行阈值电压测试(即验证操作),以通过判断每组存储单元中每一个的阈值电压是否大于等于该验证电压来验证该存储单元是否完成编程。在本发明的一些实施例中,对于一组存储单元中的每个存储单元,基于该存储单元的目标编程级别来预先设定相对应的验证时间段或放电时间段。在本文的实施例中,为简单起见,以一组存储单元包括两个不同编程级别的存储单元为例来进行说明。例如,一组存储单元可以包括要被编程至较低编程级别l
low
的存储单元(可简称为l
low
存储单元)和要被编程至较
高编程级别l
high
的存储单元(可简称为l
high
存储单元),其中,针对l
low
存储单元预先设定较短的验证时间段,针对l
high
存储单元预先设定较长的验证时间段。需要理解的是,本文中限定的一组存储单元可以包括两个或大于两个的任意数量的存储单元。
[0033]
针对特定存储单元的验证操作可以利用感测节点来实现,例如通过以下方式来实现:针对与特定存储单元对应的感测节点施加初始电压以进行预充电,以及将该感测节点放电一段时间后获得的感测电压与预定电压相比较来判断该特定存储单元的验证是否通过。例如,如果该感测节点上的感测电压大于或等于预定电压,则判断该存储单元通过验证;而如果该感测节点上的感测电压小于预定电压,则判断该存储单元未通过验证。在本发明的一些实施例中,针对两个不同编程级别的存储单元的验证操作可以通过与该存储单元相对应的感测节点处的双感测操作或算法来实现,如以下针对具体步骤206-232所描述的。
[0034]
在步骤206处,可以对与各个存储单元相对应的各个感测节点施加初始预定电压,以对各个感测节点进行预充电。例如,第一感测节点与要验证的第一存储单元(例如l
low
存储单元)相对应,第二感测节点与要验证的第二存储单元(例如l
high
存储单元)相对应。
[0035]
在步骤208处,在将第一和第二感测节点预充电到特定电压(例如所施加的初始预定电压)后,对所述第一和第二感测节点进行放电。在一些例子中,放电过程可以经由来自感测电路的触发信号或来自控制电路的控制信号来启动。在另一些例子中,放电过程可以在预充电到特定电压后或停止预充电后自动启动,例如基于预先设定的程序指令或控制命令来自动启动。在本发明的一些实施例中,针对与各个存储单元相对应的各个感测节点可以预先设定分别的预定电压,以用于与对感测节点放电后获得的感测电压做比较。本申请实施例中,同时对至少一组存储单元进行编程可以指的是在一个时间段内对至少一组存储单元进行编程。此外,同时对所编程的至少一组存储单元施加相同的验证电压可以是指在一个时间段内对至少一组存储单元均施加相同的验证电压。
[0036]
在步骤210处,在放电经过对应于l
low
存储单元的第一验证时间段之后,暂停对第一感测节点的放电。可选地,在暂停对第一感测节点的放电时,可以暂停或不暂停对第二感测节点的放电。
[0037]
在步骤212处,可以获得针对第一感测节点的第一感测电压,例如可以通过感测电路或检测器来获得该感测电压。
[0038]
在步骤214处,将获得的第一感测电压与对应于该第一感测节点的第一预定电压相比较,以判断该第一感测电压是否大于等于该第一预定电压。如果第一感测电压大于或等于第一预定电压(“是”),则表示与第一感测节点相对应的l
low
存储单元的当前阈值电压大于或等于验证电压,从而方法流程200进行到步骤216处,指示针对与第一感测节点对应的l
low
存储单元的验证通过。另一方面,如果第一感测电压小于第一预定电压(“否”),则表示与第一感测节点相对应的l
low
存储单元的当前阈值电压小于验证电压,从而方法流程200进行到步骤218处,指示与第一感测节点对应的l
low
存储单元未通过验证。
[0039]
当在步骤216处确定l
low
存储单元验证通过后,流程200转到步骤220,在此存储该验证结果(例如指示l
low
存储单元通过验证的第一验证结果),且确定l
low
存储单元结束编程。
[0040]
当在步骤218处确定l
low
存储单元未通过验证后,流程200转到步骤222,在此存储该验证结果(例如指示l
low
存储单元未通过验证的第一验证结果),且确定需要在下一次编
程期间继续对l
low
存储单元进行编程,例如可以重新转到步骤202,以在下一次编程循环中对l
low
存储单元进行编程。在一些例子中,在步骤216和218处的针对l
low
存储单元的验证结果可以被存储在用于存储数据的第一部件中,例如第一锁存器、第一暂存器、第一存储表或存储表的第一单元中。
[0041]
在本文的实施例中,优选地,在暂停对第一感测节点的放电时(如步骤210所示),可以不暂停对第二感测节点的放电(即,继续对第二节点进行放电)。可选地,可以在暂停对第一感测节点的放电时暂停对第二感测节点的放电,直到获得第一感测节点的感测电压或确定了针对l
low
存储单元的验证结果后再恢复对第二感测节点的放电。在对第二感测节点放电经过与l
high
存储单元相对应的第二验证时间段之后,可以暂停对第二感测节点的放电,如在步骤224处所示。
[0042]
在步骤226处,在暂停对第二感测节点的放电后可以获得针对该第二感测节点的第二感测电压。
[0043]
在步骤228处,将获得的第二感测电压与针对第二感测节点预先设定的第二预定电压相比较,以判断该第二感测电压是否大于等于该第二预定电压。如果第二感测电压大于或等于第二预定电压(“是”),则表示与第二感测节点相对应的l
high
存储单元的当前阈值电压大于或等于验证电压,从而方法流程200进行到步骤230处,指示与第二感测节点对应的l
high
存储单元通过验证。另一方面,如果第二感测电压小于第二预定电压(“否”),则表示与第二感测节点相对应的l
high
存储单元的当前阈值电压小于验证电压,从而方法流程200进行到步骤232处,指示与第二感测节点对应的l
high
存储单元未通过验证。
[0044]
当在步骤230处确定l
high
存储单元通过验证后,流程200转到步骤234,在此存储该验证结果(例如指示l
high
存储单元通过验证的第二验证结果),且确定l
high
存储单元结束编程。
[0045]
当在步骤232处确定l
high
存储单元未通过验证后,流程200转到步骤236,在此存储该验证结果(例如指示l
high
存储单元未通过验证的第二验证结果),且确定需要在下一次编程期间继续对l
high
存储单元进行编程,例如可以重新转到步骤202,以在下一次编程循环中对l
high
存储单元进行编程。在一些例子中,在步骤230和232处的针对l
high
存储单元的验证结果可以被存储在用于存储数据的第二部件中,例如第二锁存器、第二暂存器、第二存储表或存储表的第二单元中。
[0046]
需要理解的是,图2所述的编程方法还可以应用于第三存储单元或更多存储单元(如图2中的步骤226后的省略号所表示的),该第三存储单元或更多存储单元可以包括在待编程的多个存储单元中。在一些例子中,可以以类似于针对第一存储单元和第二存储单元的验证方式来对第三存储单元进行验证操作。
[0047]
需要指出的是,在本发明的实施例中,可以对将要被编程到不同目标编程级别的一组存储单元中的每个存储单元预先分配固定的验证电压和固定的验证时间段以用于多个编程循环中,其中一组存储单元中的两个或更多个存储单元可以共享相同的固定验证电压但分别被分配不同的固定验证时间段。例如,在包括目标编程级别为l
low
的存储单元和目标编程级别为l
high
的存储单元的一组存储单元中,l
low
存储单元和l
high
存储单元可以共享相同的验证电压v
pv_lh
,但l
low
存储单元被分配验证时间段t
dev_l
(也可被称为放电时间段),l
high
存储单元被分配不同的验证时间段t
dev_h
,其中时间段t
dev_h
大于或包含时间段t
dev_l
。在下面
的表1中示出了在多个编程循环中目标编程级别不同的两个存储单元的验证电压和验证时间段的分配情况。
[0048][0049]
表1
[0050]
在本发明的实施例中,表1中的目标编程级别l
low
和目标编程级别l
high
可以是相邻的编程级别,例如l
low
为l1,l
high
为l2,或者l
low
为l3,l
high
为l4,等等。在另一些实施例中,目标编程级别l
low
和目标编程级别l
high
可以是不相邻的编程级别,例如l
low
为l1,l
high
为l3,或者l
low
为l2,l
high
为l5,等等。
[0051]
虽然上文列出了以对应于不同目标编程级别的两个存储单元为一组,但本发明的编程验证方法也可以适用于以对应于不同目标编程级别的更多个存储单元为一组的情况,例如,以三个或任意多个存储单元为一组,如下表2所示,示出了在多个编程循环中以对应于三个目标编程级别(例如l
low
、l
medium
、l
high
)的三个存储单元为一组的验证电压和验证时间段的分配情况。
[0052]
[0053][0054]
表2
[0055]
在本发明的实施例中,表2中的目标编程级别l
low
、l
medium
和l
high
可以是相邻的编程级别,例如l
low
为l1,l
medium
为l2,l
high
为l3,或者l
low
为l4,l
high
为l5,l
high
为l6,等等。在另一些实施例中,目标编程级别l
low
、l
medium
和l
high
可以是不相邻的编程级别,例如l
low
为l1,l
medium
为l3,l
high
为l5,或者l
low
为l2,l
high
为l4,l
high
为l6,等等。
[0056]
图3示出了在当前编程过程期间的感测节点处的放电过程的示例性电压变化图300。
[0057]
如图3所示,在与待验证的存储单元对应的感测节点so处施加初始预定电压(例如so电压)以对该感测节点so进行预充电。在一段时间后(例如预充电完成后)对感测节点so进行放电,如图3中的“放电开始”所指示的。在对感测节点放电一段时间后暂停对该感测节点的放电,如图3中的“放电结束”所指示的。如图3所示,在经过从“放电开始”到“放电结束”的一段时间后,由于放电导致感测节点处的电压下降。在暂停对感测节点的放电后可以获得针对该感测节点的当前感测电压(例如“感测结果”处所示的),并将其与预定电压相比较,以判断与该感测节点相对应的存储单元是否通过验证。例如,如果该感测电压大于或等
于预定电压,则与该感测节点相对应的存储单元通过验证,也即该存储单元的当前阈值电压大于或等于验证电压(达到目标阈值电压)。如果该感测电压小于预定电压,则对应的存储单元未通过验证,也即该存储单元的当前阈值电压小于验证电压(未达到目标阈值电压),需要对该存储单元继续进行编程和验证。
[0058]
根据图3的放电过程可看出,当前的感测算法是一次针对一个编程级别的存储单元进行验证(例如单感测算法),从而针对多个不同编程级别的存储单元需要依次进行验证,且验证不同编程级别的多个存储单元所花费的总时间段是各个存储单元所花的验证时间段之和。举例而言,如果针对l1存储单元所需的验证时间段是5秒,针对l2存储单元所需的验证时间段是10秒,则采用当前感测算法针对l1和l2存储单元的总验证时间段是15秒。需要理解的是,此处的示例性验证时间段仅是出于举例目的,并非是对本申请的验证时间段的任何限制。
[0059]
图4示出了在根据本发明的实施例的编程过程期间、采用双感测算法的感测节点处的放电过程的示例性电压变化图400。需要理解的是,虽然此处示出的是采用双感测算法针对与不同编程级别的两个存储单元对应的感测节点的放电过程,但本发明并不限于两个存储单元的验证,还可以采用多感测算法对多个存储单元同时进行验证。
[0060]
在图4所示出的感测结果_1是针对一组存储单元中较低编程级别的一个(例如l
low
存储单元)的感测结果,而感测结果_2是针对该组存储单元中较高编程级别的另一个(例如l
high
存储单元)的感测结果。在图4所示的放电过程期间,在与待验证的两个存储单元对应的两个感测节点so处施加相同的初始预定电压(例如so电压)以对分别的感测节点so进行预充电。在一段时间后对两个感测节点so进行放电,如图4中的“放电开始”所指示的。在该时间点处,对分别与两个存储单元对应的两个感测节点开始进行放电,即,与两个存储单元对应的两个感测节点均被接通。在放电经过一段时间后,例如与l
low
存储单元对应的较短放电时间段或较短验证时间段,可以暂停对l
low
存储单元的放电(例如关断与l
low
存储单元对应的感测节点),并获得该感测节点处的感测电压_1(例如感测结果_1),如图4的“放电暂停”和“感测结果_1”处所示的。在本发明的实施例中,在暂停对l
low
存储单元的放电时可以不暂停对l
high
存储单元的放电,或者可选地,暂停对l
high
存储单元的放电。将该感测电压_1与对应于l
low
存储单元的预定电压v
low
相比较以判断l
low
存储单元是否通过验证。在本文的实施例中,当感测电压_1大于或等于预定电压v
low
时,可以认为l
low
存储单元的阈值电压大于或等于验证电压,即该l
low
存储单元通过验证;否则,认为l
low
存储单元的阈值电压小于验证电压,即该l
low
存储单元未通过验证。该验证结果(例如验证结果_1)可以被存储在用于存储数据的第一部件中,该第一部件例如是以下中的任意一项:锁存器、暂存器、存储表、存储表中的单元。
[0061]
在获得感测结果_1(或是在存储了相应的验证结果_1)时继续对l
high
存储单元进行放电或在对l
high
存储单元暂停放电一段时间后对l
high
存储单元恢复放电(例如图4所示的“放电暂停”和“放电恢复”所指示的)。如图4所示,在对l
high
存储单元恢复放电后,在l
high
存储单元从放电开始所经过的时间段等于针对l
high
存储单元预先设定的较长放电时间段或验证时间段时,对l
high
存储单元放电结束(例如关断与l
high
存储单元对应的感测节点),并获得针对l
high
存储单元的感测电压_2(例如感测结果_2)。如图4的“放电结束”和“感测结果_2”处所示的。将该感测电压_2与对应于l
high
存储单元的预定电压v
high
相比较以判断l
high

储单元是否通过验证。在本文的实施例中,当感测电压_2大于或等于预定电压v
high
时,可以认为l
high
存储单元的阈值电压大于或等于验证电压,即该l
high
存储单元通过验证;否则,认为l
high
存储单元的阈值电压小于验证电压,即该l
high
存储单元未通过验证。该验证结果(例如验证结果_2)可以被存储在用于存储数据的第二部件中,该第二部件例如是以下中的任意一项:锁存器、暂存器、存储表、存储表中的单元。在一些实施例中,用于存储数据的第一部件和第二部件可以被加到页缓存器中。
[0062]
根据图4的放电过程可看出,本申请的多感测算法(例如图4中的示例性双感测算法)可以针对要被编程至不同目标编程级别的多个存储单元同时开始进行验证,从而针对这些多个存储单元可以并行地进行验证,且验证不同目标编程级别的多个存储单元所花费的总时间段可以等于或约等于验证最高编程级别的存储单元所花的时间段。举例而言,如果针对较低编程级别的l1存储单元所需的验证时间段是5秒,针对较高编程级别的l2存储单元所需的验证时间段是10秒,则采用本申请的双感测算法针对l1和l2存储单元的总验证时间段可以是10秒(在对应于l1存储单元的感测节点暂停放电时不暂停对应于l2存储单元的感测节点的放电的情况下),即两个存储单元所花的总验证时间段对应于较高编程级别的存储单元进行验证所花的时间段(其是预先分配给较高编程级别的存储单元的验证时间段)。需要理解的是,此处的示例性验证时间段仅是出于举例目的,并非是对本申请的验证时间段的任何限制。
[0063]
图5示出了在对存储器装置进行编程的过程中在不同放电时间下存储单元的阈值电压分布的变化图500。
[0064]
如图5中所示,坐标系的横轴表示针对存储单元的阈值电压值,纵轴表示存储单元的数量。参考图5所示,以实线示出的分布图表示的是在较短放电时间下存储单元数量和阈值电压之间的关系图;以虚线示出的分布图表示的是在较长放电时间下存储单元数量和阈值电压之间的关系图。参考图5中在不同放电时间下呈现的不同分布图,在对存储器装置编程的放电过程中,放电时间越长,存储单元的阈值电压越大。
[0065]
图6示出了根据本发明实施例的采用双感测算法的感测节点处的放电过程的示例性时序图600。需要理解的是,虽然图6中仅示出了使用两个感测信号set_s1和set_s2的时序图,但本发明的编程方法可以适用于多个感测信号的情况。图6所示的示例性时序图600可以与图4所示的采用双感测算法的感测节点处的放电过程的示例性电压变化图400相对应,且图6示出的也是采用双感测算法针对与不同编程级别的两个存储单元(例如对应于信号set_s1的l
low
存储单元和对应于信号set_s2的l
high
存储单元)对应的感测节点的放电过程。
[0066]
如图6所示,在时间段t1期间,通过施加预充电信号prech_sel对两个感测节点so进行预充电,以使得感测节点so的电压电平升高到初始特定电压(例如预充电信号prech_sel所具有的电压电平)。
[0067]
本申请实施例中,信号vsoblk可用于控制感测电路对感测节点放电和停止放电。示例性的,信号vsoblk为“接通”电平(例如高电平),感测电路可对感测节点(例如第一感测节点和第二感测节点)进行放电。信号vsoblk为“关断”电平(例如为低电平),感测电路可停止对感测节点放电。在一些例子中,在感测节点so被预充电到特定电压电平后,可以在时间段t2期间将感测节点处的电压电平维持在该特定电压电平。在时间段t2后,可以在时间段
t3期间对两个感测节点进行放电,即,通过施加被设定为“接通”电平的信号vsoblk使得与两个存储单元对应的两个感测节点均被接通。如图6所示,在时间段t1和t2期间,该信号vsoblk被设定为“关断”电平,即关断感测节点。在另一些例子中,也可以不存在图6所示的时间段t2,即在感测节点so被预充电到特定电压电平后,立刻开始在时间段t3期间的放电。在将感测节点放电达到针对l
low
存储单元的较短放电时间段t3时,暂停对l
low
存储单元的放电,例如将信号vsoblk设定为“关断”电平。在时间段t4期间,可以施加针对l
low
存储单元的感测信号set_s1,以获得针对l
low
存储单元的感测结果_1。在时间段t4后,继续对l
high
存储单元进行放电达时间段t5,并在时间段t6期间通过施加针对l
high
存储单元的感测信号set_s2来获得针对l
high
存储单元的感测结果_2。在一些例子中,图6中所示的时间段t3可以对应于针对l
low
存储单元预先设定的较短放电时间段,时间段t3和t5之和可以对应于针对l
high
存储单元预先设定的较长放电时间段。
[0068]
需要理解的是,图6所示的时序图仅是针对使用双感测算法的编程过程的一个可能的版本,其并非是对本申请的编程过程中使用的感测算法或其时序图的任何限制。
[0069]
图7示出了根据本发明实施例的使用示例性双感测算法、用于对存储器装置进行编程的电路或部件700的逻辑框图。
[0070]
在一些例子中,电路或部件700可以包括信号选择逻辑单元702、感测电路704和锁存器组710,其中锁存器组710包括用于存储针对感测信号set_s1的感测结果_1的锁存器1 706和用于存储针对感测信号set_s2的感测结果_2的锁存器2 708。在使用双感测算法的实施例中,信号选择逻辑单元702分别接收针对l
low
存储单元的感测信号set_s1和针对l
high
存储单元的感测信号set_s2。在编程过程中,当针对l
low
存储单元进行编程时,信号选择逻辑单元702选择感测信号set_s1并将其传送至感测电路704,以获得感测结果_1。感测结果_1被传送至锁存器组710并存储在针对l
low
存储单元的锁存器1 706中。当针对l
high
存储单元进行编程时,信号选择逻辑单元702选择感测信号set_s2并将其传送至感测电路704,以获得感测结果_2。感测结果_2被传送至锁存器组710并存储在针对l
high
存储单元的锁存器2 708中。
[0071]
图8是根据本发明实施例的用于存储器装置的编程方法800的示例流程图。在本文的实施例中,该存储器装置包括具有多个存储单元的存储单元阵列,如图1中所示。在本文的实施例中,方法800可以由存储器装置或其中的控制器来执行,例如图1所示的非易失性存储器100。在一些例子中,该存储器装置可以是3d nand存储器。
[0072]
在框802处,对存储单元阵列中的至少一组存储单元施加相同的验证电压。在本文的一个实施例中,可以配置存储器装置中的控制器来执行该操作。在一些例子中,一组存储单元至少包括要被编程至第一目标编程级别的第一存储单元(例如本文的表1和表2中所示的l
low
存储单元)和要被编程至高于所述第一目标编程级别的第二目标编程级别的第二存储单元(例如本文的表1和表2中所示的l
medium
存储单元或l
high
存储单元)。在本发明的一些例子中,上述第一目标编程级别l
low
、第二目标编程级别l
medium
可以是相邻的级别,或者可以是不相邻的级别。
[0073]
在本发明的另一些实施例中,一组存储单元还可以包括要被编程至第三目标编程级别的第三存储单元(例如本文的表2所示的l
high
存储单元),所述第三目标编程级别不同于第一目标编程级别和第二目标编程级别。在一些例子中,第一目标编程级别l
low
、第二目
标编程级别l
medium
和第三目标编程级别l
high
可以是依次相邻的级别,或者三个目标编程级别中的任意两个级别可以不相邻,例如第一目标编程级别与第二目标编程级别不相邻,或者第二目标编程级别与第三目标编程级别不相邻,例如l
low
为l1、l
medium
为l3、l
high
为l5。
[0074]
在框804处,在经过第一验证时间段之后,可以获得针对第一存储单元的第一验证结果。在一些实施例中,在经过第一验证时间段之后,可以暂停对第一存储单元施加所述验证电压(或者可选地,同时暂停或不暂停对第二存储单元施加所述验证电压),并将获得的第一存储单元的第一验证结果存储在用于存储数据的第一部件中。在本文的一些实施例中,可以配置存储器装置中的控制器来执行上述操作。
[0075]
在另一些实施例中,获得第一验证结果可以进一步包括:对与第一存储单元相对应的第一感测节点施加初始预定电压;对第一感测节点进行放电;以及在放电经过第一验证时间段之后,暂停对第一感测节点的放电并基于在第一感测节点处获得的第一感测电压与第一预定电压的比较来获得第一验证结果,其中,如果第一感测电压大于或等于第一预定电压,则第一验证结果为通过,如果第一感测电压小于第一预定电压,则第一验证结果为未通过。在本文的一些实施例中,可以配置存储器装置中的感测电路来执行上述操作。可选地,在本文的另一些实施例中,可以配置存储器装置中的控制器来执行上述操作。
[0076]
在框806处,在经过第二验证时间段之后,可以获得针对第二存储单元的第二验证结果,其中,第二验证时间段包含第一验证时间段。在一些实施例中,在经过第二验证时间段之后,可以暂停对第二存储单元施加所述验证电压,并将获得的第二存储单元的第二验证结果存储在用于存储数据的第二部件中。在本文的一些实施例中,可以配置存储器装置中的控制器来执行上述操作。
[0077]
在另一些实施例中,获得第二验证结果可以进一步包括:对与第二存储单元相对应的第二感测节点施加预定初始电压;在开始对第一感测节点进行放电时,对第二感测节点进行放电;以及在放电经过第二验证时间段之后,暂停对第二感测节点的放电并基于第二感测节点处获得的第二感测电压与第二预定电压的比较来获得第二验证结果,其中,如果第二感测电压大于或等于第二预定电压,则第二验证结果为通过,如果第二感测电压小于第二预定电压,则第二验证结果为未通过。在本文的一些实施例中,可以配置存储器装置中的感测电路来执行上述操作。可选地,在本文的另一些实施例中,可以配置存储器装置中的控制器或控制电路来执行上述操作。
[0078]
可选地,在一组存储单元还包括第三存储单元的情况下,在经过第三验证时间段之后,可以获得针对第三存储单元的第三验证结果,其中,第三验证时间段包含第一验证时间段和第二验证时间段,以及其中,第三验证结果被存储在用于存储数据的第三部件中。在本文的一些实施例中,可以配置存储器装置中的控制器来执行上述操作。在本文的一些实施例中,上述第一部件、第二部件和第三部件中的至少两个为不同的用于存储数据的部件且包括以下中的任意一项:锁存器、暂存器、存储表、存储表中的单元。
[0079]
图9是根据本发明的实施例的用于对存储器装置中的存储单元进行编程的电子设备900。图9所示的电子设备900可以利用软件、硬件或软硬件结合的方式来实现。
[0080]
如图9所示,电子设备900可以包括处理器902和存储器装置904,其中,存储器装置904可用于存储可执行指令,所述可执行指令当被处理器902执行时控制存储器装置904执行本文所述的方法。
[0081]
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,当计算机程序被执行时,使得计算机执行本文所述的方法。
[0082]
应当理解,以上描述的方法中的所有操作都仅仅是示例性的,本公开并不限制于方法中的任何操作或这些操作的顺序,而是应当涵盖在相同或相似构思下的所有其它等同变换。
[0083]
已经结合各种装置和方法描述了处理器。这些处理器可以使用电子硬件、计算机软件或其任意组合来实施。这些处理器是实施为硬件还是软件将取决于具体的应用以及施加在系统上的总体设计约束。作为示例,本公开中给出的处理器、处理器的任意部分、或者处理器的任意组合可以实施为微处理器、微控制器、数字信号处理器(dsp)、现场可编程门阵列(fpga)、可编程逻辑器件(pld)、状态机、门逻辑、分立硬件电路、以及配置用于执行在本公开中描述的各种功能的其它适合的处理部件。本公开给出的处理器、处理器的任意部分、或者处理器的任意组合的功能可以实施为由微处理器、微控制器、dsp或其它适合的平台所执行的软件。
[0084]
本领域技术人员应当理解,以上公开的各个实施例可以在不偏离发明实质的情况下做出各种修改和变形,这些修改和变形都应当落入本发明的保护范围之内,并且,本发明的保护范围应当由权利要求书来限定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜