Nand存储器的多比特编程方法及装置的制造方法_6

文档序号:9930310阅读:来源:国知局
O,CDL = 0。
[0265]在方法800中,验证电压L14的格雷编码码字为“0110”,方法800还包括:步骤S875,对被编程的存储单元验证脉冲L14(即,验证电压L14);步骤S876,对被编程的存储单元执行脉冲L14的锁存;步骤S877,检测两个“O”(即,检测ADL = DDL = O);以及步骤S878,将满足上述步骤S877并且通过验证电压L14的验证的存储单元的数据锁存器组锁存为“1111”( S卩,数据锁存器组被锁存为ADL= I,BDL = I,⑶L = I,DDL = I);并且,将没有满足上述步骤S877和/或没有通过验证电压L14的验证的存储单元的数据锁存器组的状态保持不变。
[0266]例如,LI 4 (格雷码“0110”)的验证和锁存可以包括以下操作:
[0267]△)81^充电冊5 = 1,拉高丁01^=1。
[0268]B)BUS充电BUS = I,读BDL,再拉高TDL = I。若BDL = I,贝IjTDL = O;否贝IjTDL = I。
[0269]C) BUS充电 BUS = I,读CDL,再拉高 TDL = I。若CDL = I,则 TDL = O;否则 TDL = I。
[0270]D)BUS充电BUS = I,读ADL,DDL,SDL,TDL,拉高ADL =I1DDL=10若ADL = O1DDL = O,SDL = 0,TDL = 0,则ADL = I,DDL = I;否则ADL = O1DDL = O0
[0271]在方法8000中,验证电压L14的加速编码码字为“0110”,方法8000还包括:步骤S8075,对被编程的存储单元验证脉冲L14(即,验证电压L14);步骤S8076,对被编程的存储单元执行脉冲L14的锁存;步骤S8077,检测两个“O”( S卩,检测ADL = DDL = O);以及步骤S8078,将满足上述步骤S8077并且通过验证电压L14的验证的存储单元的数据锁存器组锁存为“111Γ (即,数据锁存器组被锁存为ADL = I,BDL = I ADL= I,DDL=I);并且,将没有满足上述步骤S8077和/或没有通过验证电压L14的验证的存储单元的数据锁存器组的状态保持不变。[0272 ] 例如,LI 4 (加速编码“0110”)的验证和锁存可以包括以下操作:
[0273]BUS充电BUS = I,拉高TDL = I,读ADL,DDL,TDL,SDL,再拉高ADL =I1DDL=10若ADL=0 ,DDL = O ,TDL = O ,SDL = O,则ADL= I ,DDL= I,否则ADL = O,DDL = 0。
[0274]参见图8H,在方法800中,验证电压L15的格雷编码码字为“0111”,方法800包括:步骤S879,对被编程的存储单元验证脉冲L15(即,验证电压L15);步骤S880,对被编程的存储单元执行脉冲L15的锁存;步骤S881,检测一个“O”(即,检测ADL = O);以及步骤S882,将满足上述步骤S881并且通过验证电压L15的验证的存储单元的数据锁存器组锁存为“1111”
[0275](即,数据锁存器组被锁存为ADL=I,BDL = I,CDL = I,DDL = I);并且,将没有满足上述步骤S881和/或没有通过验证电压L15的验证的存储单元的数据锁存器组的状态保持不变。
[0276]例如,LI 5 (格雷码“0111”)的验证和锁存可以包括以下操作:
[0277]△)81^充电冊5 = 1,拉高丁01^=1。
[0278]B)BUS充电BUS = I,读BDL,再拉高TDL = I。若BDL = I,则TDL = O;否则TDL = I。
[0279]C)BUS充电BUS = I,读CDL,再拉高TDL = I。若CDL = I,则TDL = O;否则TDL = I。
[0280]D) BUS充电 BUS = I,读DDL,再拉高 TDL = I。若DDL = I,则 TDL = O;否则 TDL = I。
[0281]E)BUS充电BUS = I,读ADL,SDL,TDL,拉高ADL = I。若ADL = 0, SDL = O ,TDL = O,则ADL=1;否则 ADL = 0。
[0282]在方法8000中,验证电压L15的加速编码码字为“0111”,方法8000包括:步骤S8079,对被编程的存储单元验证脉冲L15(即,验证电压L15);步骤S8080,对被编程的存储单元执行脉冲L15的锁存;步骤S8081,检测一个“O”(即,检测ADL = O);以及步骤S8082,将满足上述步骤S8081并且通过验证电压L15的验证的存储单元的数据锁存器组锁存为“1111”(即,数据锁存器组被锁存为ADL = I,BDL= I,⑶L = I,DDL= I);并且,将没有满足上述步骤S8081和/或没有通过验证电压L15的验证的存储单元的数据锁存器组的状态保持不变。
[0283 ] 例如,LI 5 (加速编码“0111”)的验证和锁存可以包括以下操作:
[0284]BUS充电BUS = I,拉高TDL = I,读ADL,TDL,SDL,再拉高ADL= I。若ADL = O1TDL = O,SDL = O,则ADL = I,否则ADL = O。
[0285]图10为本公开实施例提供的一种NAND存储器的多比特编程装置1000的示意性框图。如图10所示,装置1000可以包括写入模块1002、编码转换模块1004、数据扫描模块1006、预编程及验证模块1007、编程模块1008、编程验证模块1010、锁存扫描模块1012、确认扫描模块1014以及判断模块1016。
[0286]写入模块1002用于将被编程的多比特数据写入到数据锁存器组中,所述多比特数据为格雷码码字。写入模块1002可以由图4所示的控制器102中的处理器402运行存储器404中存储的程序指令来实现,并且可以执行根据本公开实施例的NAND存储器的多比特编程方法500中的步骤S502和/或方法550中的步骤S552。
[0287]编码转换模块1004用于将所述多比特数据从格雷码码字转换为加速编码码字。编码转换模块1004可以由图4所示的控制器102中的处理器402运行存储器404中存储的程序指令来实现,并且可以执行根据本公开实施例的NAND存储器的多比特编程方法500中的步骤S504和/或方法550中的步骤S554。
[0288]数据扫描模块1006用于确定存储阵列中需要被编程的存储单元,其中需要被编程的所述存储单元包括目标阈值电压大于预定电压的存储单元和目标阈值电压不大于所述预定电压的存储单元。例如,数据扫描模块1006用于扫描所述数据锁存器组来确定存储信息为擦除状态的数据锁存器组和存储信息不是擦除状态的数据锁存器组,将与存储信息为擦除状态的数据锁存器组相对应的存储单元设置为不编程状态,以及将与存储信息不是擦除状态的数据锁存器组相对应的存储单元设置为编程状态,其中,需要被编程的所述存储单元为被设置为编程状态的存储单元。数据扫描模块1006可以由图4所示的控制器102中的处理器402运行存储器404中存储的程序指令来实现,并且可以执行根据本公开实施例的NAND存储器的多比特编程方法500中的步骤S506和/或方法550中的步骤S556和S558。
[0289]预编程及验证模块1007用于将目标阈值电压大于所述预定电压的各所述存储单元预编程到中间态电压。编程模块1007可以由图4所示的控制器102中的处理器402运行存储器404中存储的程序指令来实现,并且可以执行根据本公开实施例的NAND存储器的多比特编程方法500中的步骤S508和/或方法550中的步骤S559。
[0290]编程模块1008用于对存储阵列中需要被编程的存储单元进行编程。例如,编程模块1008用于:对目标阈值电压不大于所述预定电压的各所述存储单元进行编程;以及对目标阈值电压大于所述预定电压的各所述存储单元进行编程。编程模块1008可以由图4所示的控制器102中的处理器402运行存储器404中存储的程序指令来实现,并且可以执行根据本公开实施例的NAND存储器的多比特编程方法500中的步骤S510和S515和/或方法550中的S560和S572。
[0291]编程验证模块1010用于对被编程的各所述存储单元执行编程验证操作。例如,编程验证模块1010用于:对目标阈值电压不大于所述预定电压的各所述存储单元,执行编程验证操作;以及对目标阈值电压大于所述预定电压的各所述存储单元,执行编程验证操作。编程验证模块1010可以由图4所示的控制器102中的处理器402运行存储器404中存储的程序指令来实现,并且可以执行根据本公开实施例的NAND存储器的多比特编程方法500中的步骤S510和步骤S516、方法550中的步骤S562和S574、图6A中方法600的编程验证操作、图6B中方法630的编程验证操作、图7A-7P中的编程验证操作以及图8A-8H中的编程验证操作。
[0292]锁存扫描模块1012用于对被编程的各所述存储单元执行锁存扫描操作。例如,锁存扫描模块1012用于:对目标阈值电压不大于所述预定电压的各所述存储单元,执行锁存扫描操作;以及对目标阈值电压大于所述预定电压的各所述存储单元,执行锁存扫描操作。锁存扫描模块1012可以由图4所示的控制器102中的处理器402运行存储器404中存储的程序指令来实现,并且可以执行根据本公开实施例的NAND存储器的多比特编程方法500中的步骤S512和S518、方法550中的步骤S564和S576、图6A中方法600的编锁存扫描操作、图6B中方法630的锁存扫描操作、图7A-7P中的锁存扫描操作以及图8A-8H中的锁存扫描操作。
[0293]确认扫描模块1014用于对被编程的各所述存储单元执行确认扫描操作。例如,确认扫描模块1014用于:对目标阈值电压不大于所述预定电压的各所述存储单元,执行确认扫描操作;以及对目标阈值电压大于所述预定电压的各所述存储单元,执行确认扫描操作。确认扫描模块1014可以由图4所示的控制器102中的处理器402运行存储器404中存储的程序指令来实现,并且可以执行根据本公开实施例的NAND存储器的多比特编程方法500中的步骤S514和S520、、方法550中的步骤S566和S578、图6A中方法600的确认扫描操作、图6B中方法630的确认扫描操作以及图7A-7P中的确认扫描操作。
[0294]判断模块1016用于,在使用一个或多个验证电压对被编程的存储单元执行编程验证操作、锁存扫描操作以及确认扫描操作之后,确定需要被编程的所述存储单元中是否还有一个或多个存储单元在本次编程中尚未达到各自的目标阈值电压。如果还有一个或多个存储单元在本次编程中尚未达到各自的目标阈值电压,所述编程模块1008对所述一个或多个存储单元进行再次编程;所述编程验证模块1010对所述一个或多个存储单元执行编程验证操作;所述锁存扫描模块1012对所述一个或多个存储单元执行锁存扫描操作;以及所述确认扫描模块1014对所述一个或多个存储单元执行确认扫描操作。所述判断模块1016可以由图4所示的控制器102中的处理器402运行存储器404中存储的程序指令来实现,并且可以执行根据本公开实施例的NAND存储器的多比特编程方法550中的步骤S568、S570、S580以及S582o
[0295]此外,根据本公开实施例,还提供了一种存储介质,在所述存储介质上存储了程序指令,在所述程序指令被计算机或处理器运行时用于执行本公开实施例的NAND存储器的多比特编程方法和/或其他方法的相应步骤,并且用于实现根据本公开实施例的NAND存储器的多比特编程装置中的相应模块。所述存储介质例如可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、只读存储器(ROM)、可擦除可编程只读存储器(EPR0M)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、或者上述存储介质的任意组合。
[0296]尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本公开的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本公开的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本公开的范围之内。
【主权项】
1.一种NAND存储器的多比特编程方法,包括: 将被编程的多比特数据写入数据锁存器组,所述多比特数据为格雷码码字; 将所述多比特数据从所述格雷码码字转换为加速编码码字; 确定存储阵列中需要被编程的存储单元,需要被编程的所述存储单元包括目标阈值电压大于预定电压的存储单元和目标阈值电压不大于所述预定电压的存储单元; 将目标阈值电压大于所述预定电压的各所述存储单元预编程到中间态电压; 对目标阈值电压不大于所述预定电压的各所述存储单元进行编程; 对目标阈值电压不大于所述预定电压的各所述存储单元: 执行编程验证操作; 执行锁存扫描操作;以及 执行确认扫描操作; 对目标阈值电压大于所述预定电压的各所述存储单元进行编程;以及 对目标阈值电压大于所述预定电压的各所述存储单元: 执行编程验证操作; 执行锁存扫描操作;以及 执行确认扫描操作。2.如权利要求1所述的方法,其中,目标阈值电压大于所述预定电压的所述存储单元为加速编码码字的最高位为O的存储单元,目标阈值电压不大于所述预定电压的所述存储单元为加速编码码字的最高位为I的存储单元。3.如权利要求1所述的方法,其中, 对目标阈值电压不大于所述预定电压的各所述存储单元,执行编程验证操作包括: 选择第一验证电压,并且验证已编入各所述存储单元的电压是否达到所述第一验证电压; 对目标阈值电压不大于所述预定电压的各所述存储单元,执行锁存扫描操作包括:将通过所述第一验证电压的编程验证并且目标阈值电压为所述第一验证电压的存储单元的数据锁存器组设置为锁存状态,以及将未通过所述第一验证电压的编程验证和/或目标阈值电压不是所述第一验证电压的存储单元的数据锁存器组的状态保持不变;对目标阈值电压不大于所述预定电压的各所述存储单元,执行确认扫描操作包括:对于数据锁存器组为锁存状态的存储单元,将其判断锁存器设置为成功锁存状态,以及对于数据锁存器组不是锁存状态的存储单元,将其判断锁存器设置为锁存不成功状态。4.如权利要求3所述的方法,其中,将通过所述第一验证电压的编程验证并且目标阈值电压为所述第一验证电压的存储单元的数据锁存器组设置为锁存状态,以及将未通过所述第一验证电压的编程验证和/或目标阈值电压不是所述第一验证电压的存储单元的数据锁存器组的状态保持不变,包括: 检测所述存储单元对应的数据锁存器组存储的加速编码码字的最高位是否为“I”,检测所述存储单元对应的数据锁存器组存储的加速编码码字中“O”的数量和位置是否与所述第一验证电压对应的加速编码码字中“O”的数量和位置相一致,并且检测所述存储单元对应的电压验证锁存器是否为通过状态; 如果所述存储单元对应的数据锁存器组存储的加速编码码字的最高位为“I”,所述存储单元对应的数据锁存器组存储的加速编码码字中“O”的数量和位置与所述第一验证电压对应的加速编码码字中“O”的数量和位置相一致,且所述存储单元对应的电压验证锁存器为通过状态,设置与所述存储单元对应的数据锁存器组为锁存状态;以及 如果所述存储单元对应的数据锁存器组存储的加速编码码字的最高位不为“I”,和/或所述存储单元对应的数据锁存器组存储的加速编码码字中“O”的数量和位置与所述第一验证电压对应的加速编码码字中“O”的数量和位置不一致,和/或所述存储单元对应的电压验证锁存器为不通过状态,保持与所述存储单元对应的数据锁存器组的状态不变。5.如权利要求1所述的方法,其中, 对目标阈值电压大于所述预定电压的各所述存储单元,执行编程验证操作包括: 选择第二验证电压,并且验证已编入各所述存储单元的电压是否达 到所述第二验证电压,所述第二验证电压大于所述中间态电压; 对目标阈值电压大于所述预定电压的各所述存储单元,执行锁存扫描操作包括: 将通过所述第二验证电压的编程验证并且目标阈值电压为所述第二验证电压的存储单元的数据锁存器组设置为锁存状态,以及将未通过所述第二验证电压的编程验证和/或目标阈值电压不是所述第二验证电压的存储单元的数据锁存器组的状态保持不变; 对目标阈值电压大于所述预定电压的各所述存储单元,执行确认扫描操作包括: 对于数据锁存器组为锁存状态的存储单元,将其判断锁存器设置为成功锁存状态,以及对于数据锁存器组不是锁存状态的存储单元,将其判断锁存器设置为锁存不成功状态。6.如权利要求5所述的方法,其中,将通过所述第二验证电压的编程验证并且目标阈值电压为所述第二验证电压的存储单元的数据锁存器组设置为锁存状态,以及将未通过所述第二验证电压的编程验证和/或目标阈值电压不是所述第二验证电压的存储单元的数据锁存器组的状态保持不变,包括: 检测所述存储单元对应的数据锁存器组存储的加速编码码字中“O”的数量和位置是否与所述第二验证电压对应的加速编码码字中“O”的数量和位置相一致,并且检测所述存储单元对应的电压验证锁存器是否为通过状态; 如果所述存储单元对应的数据锁存器组存储的加速编码码字中“O”的数量和位置与所述第二验证电压对应的加速编码码字中“O”的数量和位置相一致,且所述存储单元对应的电压验证锁存器为通过状态,设置与所述存储单元对应的数据锁存器组为锁存状态;以及如果所述存储单元对应的数据锁存器组存储的加速编码码字中“O”的数量和位置与所述第二验证电压对应的加速编码码字中“O”的数量和位置不一致,和/或所述存储单元对应的电压验证锁存器为不通过状态,保持与所述存储单元对应的数据锁存器组的状态不变。7.如权利要求1所述的方法,其中,确定存储阵列中需要被编程的存储单元包括: 扫描所述数据锁存器组来确定存储信息为擦除状态的数据锁存器组和存储信息不是擦除状态的数据锁存器组; 将与存储信息为擦除状态的数据锁存器组相对应的存储单元设置为不编程状态;以及将与存储信息不是擦除状态的数据锁存器组相对应的存储单元设置为编程状态,其中,需要被编程的所述存储单元为被设置为编程状态的存储单元。8.如权利要求1所述的方法,其中, 所述加速编码对多个电压等级进行编码,其中,所述电压等级的第一部分电压等级的加速编码码字的最高位均为“O”和所述电压等级的第二部分电压等级的加速编码码字的最高位均为“I”,所述第一部分电压等级均大于所述第二部分电压等级; 对于所述第一部分电压等级或所述第二部分电压等级: 低电压等级对应的加速编码码字中包括的“O”的数目不少于高电压等级对应的加速编码码字中包括的“O”的数目;以及 对于包括相等“O”数目的电压等级,通过转换与所述电压等级对应的格雷码码字的最少数目的数据锁存器来得到所述电压等级的加速编码码字。9.一种NAND存储器的多比特编程装置,包括: 写入模块,用于将被编程的多比特数据写入到数据锁存器组中,所述多比特数据为格雷码码字; 编码转换模块,用于将所述多比特数据从所述格雷码码字转换为加速编码码字; 数据扫描模块,用于确定存储阵列中需要被编程的存储单元,需要被编程的所述存储单元包括目标阈值电压大于预定电压的存储单元和目标阈值电压不大于所述预定电压的存储单元; 预编程及验证模块,用于将目标阈值电压大于所述预定电压的所述存储单元预编程到中间态电压; 编程模块,用于分别对目标阈值电压不大于所述预定电压的所述存储单元和目标阈值电压大于所述预定电压的所述存储单元进行编程; 编程验证模块,用于分别对目标阈值电压不大于所述预定电压的所述存储单元和目标阈值电压大于所述预定电压的所述存储单元执行编程验证操作; 锁存扫描模块,用于分别对目标阈值电压不大于所述预定电压的所述存储单元和目标阈值电压大于所述预定电压的所述存储单元执行锁存扫描操作;以及 确认扫描模块,用于分别对目标阈值电压不大于所述预定电压的所述存储单元和目标阈值电压大于所述预定电压的所述存储单元执行确认扫描操作。10.如权利要求9所述的装置,其中,目标阈值电压大于所述预定电压的所述存储单元为加速编码码字的最高位为O的存储单元,目标阈值电压不大于所述预定电压的所述存储单元为加速编码码字的最高位为I的存储单元。
【专利摘要】提供了一种NAND存储器的多比特编程方法及装置。所述方法包括:将被编程的多比特数据写入数据锁存器组;将所述多比特数据从格雷码码字转换为加速编码码字;确定存储阵列中需要被编程的目标阈值电压大于预定电压的存储单元和目标阈值电压不大于所述预定电压的存储单元;将目标阈值电压大于所述预定电压的各所述存储单元预编程到中间态电压;对目标阈值电压不大于所述预定电压的各所述存储单元进行编程以及执行编程验证操作、锁存扫描操作以及确认扫描操作;对目标阈值电压大于所述预定电压的各所述存储单元进行编程以及执行编程验证操作、锁存扫描操作以及确认扫描操作。所述方法根据锁存器的结构重新设计编码,减少了编程过程中复杂的冗余操作的数量,因而可以加快编程的速度,降低功耗。
【IPC分类】G11C16/34, G11C16/10
【公开号】CN105719694
【申请号】CN201610046803
【发明人】靳旭, 伍冬, 吴华强, 钱鹤, 曹堪宇, 朱一明
【申请人】清华大学, 北京兆易创新科技股份有限公司
【公开日】2016年6月29日
【申请日】2016年1月22日
当前第6页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1