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

文档序号:9930309阅读:来源:国知局
没有通过验证电压L15的验证的存储单元的数据锁存器组的状态保持不变。
[0217]例如,L15(加速编码“0111” )的验证和锁存可以包括以下操作:BUS充电BUS= I,读ADL,SDL,再拉高ADL = I。若ADL = O1SDL = O,则ADL = I,否则ADL = O。
[0218]图10为本公开实施例提供的一种NAND存储器的多比特编程装置1000的示意性框图。如图10所示,装置1000可以包括写入模块1002、编码转换模块1004、数据扫描模块1006、编程模块1008、编程验证模块11、锁存扫描模块1012、确认扫描模块1014以及判断模块
1016ο
[0219]写入模块1002用于将被编程的多比特数据写入到数据锁存器组中,所述多比特数据为格雷码码字。写入模块1002可以由图4所示的控制器102中的处理器402运行存储器404中存储的程序指令来实现,并且可以执行根据本公开实施例的NAND存储器的多比特编程方法500中的步骤S502。
[0220]编码转换模块1004用于将所述多比特数据从格雷码码字转换为加速编码码字。编码转换模块1004可以由图4所示的控制器102中的处理器402运行存储器404中存储的程序指令来实现,并且可以执行根据本公开实施例的NAND存储器的多比特编程方法500中的步骤S504。
[0221]数据扫描模块1006用于扫描所述数据锁存器组来确定存储信息为擦除状态的数据锁存器组和存储信息不是擦除状态的数据锁存器组,将与存储信息为擦除状态的数据锁存器组相对应的存储单元设置为不编程状态,以及将与存储信息不是擦除状态的数据锁存器组相对应的存储单元设置为编程状态,其中,需要被编程的所述存储单元为被设置为编程状态的存储单元。数据扫描模块1006可以由图4所示的控制器102中的处理器402运行存储器404中存储的程序指令来实现,并且可以执行根据本公开实施例的NAND存储器的多比特编程方法500中的步骤S506。
[0222]编程模块1008用于对存储阵列中需要被编程的存储单元进行编程。编程模块1008可以由图4所示的控制器102中的处理器402运行存储器404中存储的程序指令来实现,并且可以执行根据本公开实施例的NAND存储器的多比特编程方法500中的步骤S510。
[0223]编程验证模块1010用于对被编程的各所述存储单元执行编程验证操作。编程验证模块1010可以由图4所示的控制器102中的处理器402运行存储器404中存储的程序指令来实现,并且可以执行根据本公开实施例的NAND存储器的多比特编程方法500中的步骤S512、图6A中方法600的编程验证操作、图7A-7M中的编程验证操作以及图8A-8H中的编程验证操作。
[0224]锁存扫描模块1012用于对被编程的各所述存储单元执行锁存扫描操作。锁存扫描模块1012可以由图4所示的控制器102中的处理器402运行存储器404中存储的程序指令来实现,并且可以执行根据本公开实施例的NAND存储器的多比特编程方法500中的步骤S514、图6A中方法600的编锁存扫描操作、图7A-7M中的锁存扫描操作以及图8A-8H中的锁存扫描操作。
[0225]确认扫描模块1014用于对被编程的各所述存储单元执行确认扫描操作。确认扫描模块1014可以由图4所示的控制器102中的处理器402运行存储器404中存储的程序指令来实现,并且可以执行根据本公开实施例的NAND存储器的多比特编程方法500中的步骤S516、图6A中方法600的确认扫描操作以及图7A-7M中的确认扫描操作。
[0226]判断模块1016用于,在使用一个或多个验证电压对被编程的各所述存储单元执行编程验证操作、锁存扫描操作以及确认扫描操作之后,确定需要被编程的各所述存储单元中是否还有一个或多个存储单元在本次编程中尚未达到各自的目标阈值电压。如果还有一个或多个存储单元在本次编程中尚未达到各自的目标阈值电压,所述编程模块1008对所述一个或多个存储单元进行再次编程;所述编程验证模块1010对所述一个或多个存储单元执行编程验证操作;所述锁存扫描模块1012对所述一个或多个存储单元执行锁存扫描操作;以及所述确认扫描模块1014对所述一个或多个存储单元执行确认扫描操作。所述判断模块1016可以由图4所示的控制器102中的处理器402运行存储器404中存储的程序指令来实现,并且可以执行根据本公开实施例的NAND存储器的多比特编程方法500中的步骤S518以及S520o
[0227]在一些实施中,所述编程验证模块1010对被编程的各所述存储单元执行编程验证操作,包括:选择第一验证电压,并且验证已编入各所述存储单元的电压是否达到所述第一验证电压。所述锁存扫描模块1012对被编程的各所述存储单元执行锁存扫描操作,包括:将通过所述第一验证电压的编程验证并且目标阈值电压为所述第一验证电压的存储单元的数据锁存器组设置为锁存状态;以及将未通过所述第一验证电压的编程验证和/或目标阈值电压不是所述第一验证电压的存储单元的数据锁存器组的状态保持不变。所述确认扫描模块1014对被编程的各所述存储单元执行确认扫描操作,包括:对于数据锁存器组为锁存状态的存储单元,将其判断锁存器设置为成功锁存状态,以及对于数据锁存器组不是锁存状态的存储单元,将其判断锁存器设置为锁存不成功状态。
[0228]例如,所述锁存扫描模块1012将通过所述第一验证电压的编程验证并且目标阈值电压为所述第一验证电压的存储单元的数据锁存器设置为锁存状态,以及将未通过所述第一验证电压的编程验证和/或目标阈值电压不是所述第一验证电压的存储单元的数据锁存器的状态保持不变,包括:检测所述存储单元对应的数据锁存器组存储的加速编码码字中“O”的数量和位置是否与所述第一验证电压对应的加速编码码字中“O”的数量和位置相一致,并且检测与所述存储单元对应的电压验证锁存器是否为通过状态;如果所述存储单元对应的数据锁存器组存储的加速编码码字中“O”的数量和位置与所述第一验证电压对应的加速编码码字中“O”的数量和位置相一致,且所述存储单元对应的电压验证锁存器为通过状态,设置与所述存储单元对应的数据锁存器组为锁存状态;以及如果所述存储单元对应的数据锁存器组存储的加速编码码字中“O”的数量和位置与所述第一验证电压对应的加速编码码字中“O”的数量和位置不一致,和/或所述存储单元对应的电压验证锁存器为不通过状态,保持与所述存储单元对应的数据锁存器组状态不变。
[0229]例如,当所述电压验证锁存器为不通过状态时,所述电压验证锁存器的值为“I”。当所述电压验证锁存器为通过状态时,所述电压验证锁存器的值为“O”。所述锁存扫描模块1012检测所述存储单元对应的数据锁存器组储的加速编码码字中“O”的数量和位置是否与所述第一验证电压对应的加速编码码字中“O”的数量和位置相一致,并且检测所述存储单元对应的电压验证锁存器是否为通过状态,包括:对总线进行充电;读取所述存储单元的、并且与所述第一验证电压对应的加速编码码字中“O”的位置相对应的数据锁存器的值,以及读取与所述存储单元对应的电压验证锁存器的值;拉高被读取的所述数据锁存器,其中,如果被读取的所述数据锁存器的值以及所述电压验证锁存器的值均为“O”,与述存储单元对应的数据锁存器组设置为锁存状态;如果被读取的所述数据锁存器的值和/或所述电压验证锁存器的值中至少一个不为“O”,与所述存储单元对应的数据锁存器组状态保持不变。
[0230]例如,所述编程验证模块1010对被编程的各所述存储单元执行编程验证操作,还包括:选择第二验证电压,并且验证已编入各所述存储单元的电压是否达到所述第二验证电压。所述锁存扫描模块1012对被编程的各所述存储单元执行锁存扫描操作,还包括:将通过所述第二验证电压的编程验证并且目标阈值电压为所述第二验证电压的存储单元的数据锁存器组置为锁存状态;以及将未通过所述第二验证电压的编程验证和/或目标阈值电压不是所述第二验证电压的存储单元的数据锁存器组的状态保持不变。所述确认扫描模块1014对被编程的各所述存储单元执行确认扫描操作,还包括:对于数据锁存器组为锁存状态的存储单元,将其判断锁存器设置为成功锁存状态;以及对于数据锁存器组不是锁存状态的存储单元,将其判断锁存器设置为锁存不成功状态。
[0231]此外,根据本公开实施例,还提供了一种存储介质,在所述存储介质上存储了程序指令,在所述程序指令被计算机或处理器运行时用于执行本公开实施例的NAND存储器的多比特编程方法和/或其他方法的相应步骤,并且用于实现根据本公开实施例的NAND存储器的多比特编程装置中的相应模块。所述存储介质例如可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、只读存储器(ROM)、可擦除可编程只读存储器(EPR0M)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、或者上述存储介质的任意组合。
[0232]尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本公开的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本公开的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本公开的范围之内。
【主权项】
1.一种NAND存储器的多比特编程方法,包括: 将被编程的多比特数据写入数据锁存器组,所述多比特数据为格雷码码字; 将所述多比特数据从所述格雷码码字转换为加速编码码字; 对存储阵列中需要被编程的存储单兀进行编程; 对被编程的各所述存储单元执行编程验证操作; 对被编程的各所述存储单元执行锁存扫描操作;以及 对被编程的各所述存储单元执行确认扫描操作。2.如权利要求1所述的方法,其中, 对被编程的各所述存储单元执行编程验证操作包括: 选择第一验证电压,并且验证已编入各所述存储单元的电压是否达到所述第一验证电压; 对被编程的各所述存储单元执行锁存扫描操作包括: 将通过所述第一验证电压的编程验证并且目标阈值电压为所述第一验证电压的存储单元的数据锁存器组设置为锁存状态,以及将未通过所述第一验证电压的编程验证和/或目标阈值电压不是所述第一验证电压的存储单元的数据锁存器组的状态保持不变; 对被编程的各所述存储单元执行确认扫描操作包括: 对于数据锁存器组为锁存状态的存储单元,将其判断锁存器设置为成功锁存状态,以及对于数据锁存器组不是锁存状态的存储单元,将其判断锁存器设置为锁存不成功状态。3.如权利要求2所述的方法,其中,将通过所述第一验证电压的编程验证并且目标阈值电压为所述第一验证电压的存储单元的数据锁存器组设置为锁存状态,以及将未通过所述第一验证电压的编程验证和/或目标阈值电压不是所述第一验证电压的存储单元的数据锁存器组的状态保持不变,包括: 检测所述存储单元对应的数据锁存器组存储的加速编码码字中“O”的数量和位置是否与所述第一验证电压对应的加速编码码字中“O”的数量和位置相一致,并且检测所述存储单元对应的电压验证锁存器是否为通过状态; 如果所述存储单元对应的数据锁存器组存储的加速编码码字中“O”的数量和位置与所述第一验证电压对应的加速编码码字中“O”的数量和位置相一致,且所述存储单元对应的电压验证锁存器为通过状态,设置与所述存储单元对应的数据锁存器组为锁存状态;以及如果所述存储单元对应的数据锁存器组存储的加速编码码字中“O”的数量和位置与所述第一验证电压对应的加速编码码字中“O”的数量和位置不一致,和/或所述存储单元对应的电压验证锁存器为不通过状态,保持与所述存储单元对应的数据锁存器组的状态不变。4.如权利要求3所述的方法,其中, 当所述电压验证锁存器为不通过状态时,所述电压验证锁存器的值为“I”; 当所述电压验证锁存器为通过状态时,所述电压验证锁存器的值为“O” ;以及检测所述存储单元对应的数据锁存器组存储的加速编码码字中“O”的数量和位置是否与所述第一验证电压对应的加速编码码字中“O”的数量和位置相一致,并且检测所述存储单元对应的电压验证锁存器是否为通过状态,包括: 对总线进行充电; 读取所述存储单元的、并且与所述第一验证电压的加速编码码字中“O”的位置相对应的数据锁存器的值,以及读取与所述存储单元对应的电压验证锁存器的值; 拉高被读取的所述数据锁存器, 其中,如果被读取的所述数据锁存器的值以及所述电压验证锁存器的值均为“O”,与所述存储单元对应的数据锁存器组被设置为锁存状态;如果被读取的所述数据锁存器的值和/或所述电压验证锁存器的值中至少一个不为“O”,与所述存储单元对应的数据锁存器组的状态保持不变。5.如权利要求2-4的任一项所述的方法,其中, 对被编程的各所述存储单元执行编程验证操作还包括: 选择第二验证电压,并且验证已编入各所述存储单元的电压是否达到所述第二验证电压; 对被编程的各所述存储单元执行锁存扫描操作还包括: 将通过所述第二验证电压的编程验证并且目标阈值电压为所述第二验证电压的存储单元的数据锁存器组设置为锁存状态;以及 将未通过所述第二验证电压的编程验证和/或目标阈值电压不是所述第二验证电压的存储单元的数据锁存器组的状态保持不变; 对被编程的各所述存储单元执行确认扫描操作还包括: 对于数据锁存器组为锁存状态的存储单元,将其判断锁存器设置为成功锁存状态;以及 对于数据锁存器组不是锁存状态的存储单元,将其判断锁存器设置为锁存不成功状??τ O6.如权利要求1-5的任一项所述的方法,在对存储阵列中需要被编程的存储单元进行编程之前,还包括: 扫描所述数据锁存器组来确定存储信息为擦除状态的数据锁存器组和存储信息不是擦除状态的数据锁存器组; 将与存储信息为擦除状态的数据锁存器组相对应的存储单元设置为不编程状态;以及将与存储信息不是擦除状态的数据锁存器组相对应的存储单元设置为编程状态,其中,需要被编程的所述存储单元为被设置为编程状态的存储单元。7.如权利要求1-6的任一项所述的方法,还包括: 在使用一个或多个验证电压对被编程的各所述存储单元执行编程验证操作、锁存扫描操作以及确认扫描操作之后,确定需要被编程的各所述存储单元中的一个或多个存储单元在本次编程中尚未达到各自的目标阈值电压; 对所述一个或多个存储单元进行再次编程; 对所述一个或多个存储单元执行编程验证操作; 对所述一个或多个存储单元执行锁存扫描操作;以及 对所述一个或多个存储单元执行确认扫描操作。8.如权利要求1所述的方法,其中, 所述加速编码对多个电压等级进行编码,其中,低电压等级对应的加速编码码字中包括的“O”的数目不少于高电压等级对应的加速编码码字中包括的“O”的数目;以及 对于包括相等“O”数目的电压等级,通过转换与所述电压等级对应的格雷码码字的最少数目的数据锁存器来得到所述电压等级的加速编码码字。9.一种NAND存储器的多比特编程装置,包括: 写入模块,用于将被编程的多比特数据写入到数据锁存器组中,所述多比特数据为格雷码码字; 编码转换模块,用于将所述多比特数据从所述格雷码码字转换为加速编码码字; 编程模块,用于对存储阵列中需要被编程的存储单元进行编程; 编程验证模块,用于对被编程的各所述存储单元执行编程验证操作; 锁存扫描模块,用于对被编程的各所述存储单元执行锁存扫描操作;以及 确认扫描模块,用于对被编程的各所述存储单元执行确认扫描操作。10.如权利要求9所述的装置,其中, 所述编程验证模块对被编程的各所述存储单元执行编程验证操作,包括: 选择第一验证电压,并且验证已编入各所述存储单元的电压是否达到所述第一验证电压; 所述锁存扫描模块对被编程的各所述存储单元执行锁存扫描操作,包括: 将通过所述第一验证电压的编程验证并且目标阈值电压为所述第一验证电压的存储单元的数据锁存器组设置为锁存状态,以及将未通过所述第一验证电压的编程验证和/或目标阈值电压不是所述第一验证电压的存储单元的数据锁存器组的状态保持不变; 所述确认扫描模块对被编程的各所述存储单元执行确认扫描操作,包括: 对于数据锁存器组为锁存状态的存储单元,将其判断锁存器设置为成功锁存状态,以及对于数据锁存器组不是锁存状态的存储单元,将其判断锁存器设置为锁存不成功状态。
【专利摘要】提供了一种NAND存储器的多比特编程方法及装置。所述方法包括:将被编程的多比特数据写入数据锁存器组,所述多比特数据为格雷码码字;将所述多比特数据从所述格雷码码字转换为加速编码码字;对存储阵列中需要被编程的存储单元进行编程;对被编程的各所述存储单元执行编程验证操作;对被编程的各所述存储单元执行锁存扫描操作;以及对被编程的各所述存储单元执行确认扫描操作。所述方法根据锁存器的结构重新设计编码,减少了编程过程中复杂的冗余操作的数量,因而可以加快编程的速度,降低功耗。
【IPC分类】G11C16/10, G11C16/34
【公开号】CN105719693
【申请号】CN201610045632
【发明人】靳旭, 伍冬, 吴华强, 钱鹤, 曹堪宇, 朱一明
【申请人】清华大学, 北京兆易创新科技股份有限公司
【公开日】2016年6月29日
【申请日】2016年1月22日
当前第6页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1