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

文档序号:9930309阅读:来源:国知局
储单元的电压验证结果以及对应的数据锁存器组存储的码字。由于存储单元I以及存储单元2已成功达到其各自的目标阈值电压并且其各自的数据锁存器组也已被成功锁存,所以存储单元I和存储单元2没有通过验证电压L3的验证并不会对存储单元I和存储单元2造成影响。由于存储单元3的编程电压通过了电压L3的验证,并且存储单元3的目标阈值电压等于验证电压L3(例如,存储单元3的数据锁存器组存储的加速编码码字与验证电压L3的加速编码码字相同,均为“1000”),所以存储单元3的数据锁存器组从“1000”被锁存为锁存状态“1111”(如箭头746所示),并且存储单元3的判断锁存器的状态被设置为锁存成功。虽然存储单元4的目标阈值电压等于验证电压L3(例如,存储单元4的数据锁存器组存储的加速编码码字与验证电压L3的加速编码码字相同),但是存储单元4的编程电压并没有通过验证电压L3的编程验证,所以存储单元4的数据锁存器组的状态保持不变,并且存储单元4的判断锁存器的状态被设置为锁存不成功。表格747示出了上述的锁存目标阈值电压为验证电压L3的结果。
[0074]由于(I)存储单元4没有被锁存为其目标阈值电压,并且(2)存储单元4的电压没有通过上一次电压L3的编程验证,所以不再选取下一个验证电压L4对存储单元4的编程进行验证,而是对存储单元4进行第二次编程。图71示出了存储单元4在第二次编程后的电压L3。由于在第一次编程时存储单元4已通过验证电压LI的编程验证而没有通过验证电压L2的编程验证,所以在第二次编程时可以直接使用验证电压L2对存储单元4进行验证而不是从验证电压LI开始。
[0075]图7J示出了使用验证电压L2对存储单元4进行编程验证,其验证结果示出在表格757中。结合图表755以及表格757可知,存储单元4的电压已达到验证电压L2,所以与存储单元4对应的验证电压锁存器被设置为通过状态。
[0076]图7K示出了锁存目标阈值电压为验证电压L2的存储单元的过程。表格760示出了存储单元4的电压验证结果以及对应的数据锁存器组存储的码字。由于存储单元4的目标阈值电压不等于验证电压L2,所以存储单元4的数据锁存器组的状态保持不变,并且存储单元4的判断锁存器的状态被设置为锁存不成功。表格762示出了上述的锁存目标阈值电压为验证电压L2的结果。
[0077]由于(I)存储单元4没有被锁存为其目标阈值电压,并且(2)存储单元4的电压通过上一次电压L2的编程验证,所以还需要选取下一个验证电压L3进行编码验证。图7L示出了使用验证电压L3对存储单元4进行编程验证,其验证结果示出在表格767中。结合图表765以及表格767可知,存储单元4的电压已达到验证电压L3,所以与存储单元4对应的验证电压锁存器被设置为通过状态。
[0078]图7Μ示出了锁存目标阈值电压为验证电压L3(加速编码码字“0100”)的存储单元的过程。表格770示出了存储单元4的电压验证结果以及对应的数据锁存器组存储的码字。由于存储单元4的电压通过了验证电压L3的验证,并且存储单元4的目标阈值电压等于验证电压L3(例如,存储单元4的数据锁存器组存储的加速编码码字与验证电压L4的加速编码码字相同,均为“1000”),所以存储单元4的数据锁存器组从“1000”被锁存为锁存状态“1111”(如箭头771所示),并且存储单元4的判断锁存器的状态被设置为锁存成功。表格772示出了上述的锁存目标阈值电压为验证电压L3的结果。至此,存储单元1、存储单元2、存储单元3以及存储单元4对应的各数据锁存器组均被成功锁存,对存储单元1、存储单元2、存储单元3以及存储单元4的编程全部结束。
[0079]图8A-8H为本公开实施例提供的一种基于图9的加速编码950的编程验证以及锁存的方法8000的示例性流程图。作为加速编码的编程验证以及锁存的方法8000的比较,图SA-SH 还包括了一种基于图 9 的格雷编码 900 的编程验证以及锁存的方法 800 的示例性流程图。例如,在图8A-8H中,格雷编码900的编程验证以及锁存的方法800示出在虚线的左边,加速编码950的编程验证以及锁存的方法8000示出在虚线的右边。方法800和方法8000的验证电压均是按照从低电压到高电压的顺序依次为1^1、1^、1^3、1^4、1^5、1^6、1^7、1^8、1^9、1^10、1^11、1^12、L13、L14 以及 L15。
[0080]为了下面说明的方便,与被编程的存储单元相对应的数据锁存器组可以包括四个数据锁存器ADL(Data Latch A)、BDL(Data Latch B)、CDL(Data Latch C)和DDL(DataLatch D),格雷编码的码字或加速编码的码字的各个比特依次存储在数据锁存器ADL、BDL、CDL和DDL中。例如,对于码字“1010”,数据锁存器ADL、BDL、CDL和DDL分别存储“Γ,“O”,“I”,“O” (即,ADL= I,BDL = O,CDL = I,DDL = O)。感应锁存器可以表不为SDL(Sensing DataLatch),临时数据锁存器可以表示为TDL(Temporary Data Latch),总线可以表示为BUS。
[0081]在一些实施例中,编程验证以及锁存扫描操作可以包括:(1)检测电压验证结果是否通过;(2)对数据锁存器组逐位进行比较,判断数据锁存器组存储的目标阈值电压的码字是否为验证电压的码字;(3)如果通过了验证电压的验证并且数据锁存器组存储的目标阈值电压的码字为验证电压的码字,即存储单元的电压已达到目标阈值电压,则将数据锁存器组设置为锁存状态“1111”。
[0082]在一些实施例中,可以通过下述步骤(1)-(3)检测数据锁存器(例如,ADL)存储的“O”和T:
[0083](I)对总线BUS充电,对标记锁存器置“I”(TDL或SDL或其他数据锁存器均可以作为标记锁存器使用)。
[0084](2)读数据锁存器ADL。如果ADL = 0,则总线BUS不放电,标记锁存器仍为“I”;如果ADL=I,则总线BUS放电,标记锁存器被置“O”。
[0085](3)再拉高标记锁存器。如果在⑵中,总线BUS不放电,标记锁存器仍为T,则在步骤(3)中被拉高的标记锁存器成功置“I”,从而判断出ADL = O;如果在(2)中,总线BUS放电,标记锁存器被置“O”,则在步骤(3)中被拉高的标记锁存器不能成功置“I”,从而判断出ADL=10
[0086]由上述步骤(1)-(3)可知,在检测数据锁存器为“I”时,因为总线BUS放电,需要一个“I”接一个T进行检测,而不能同时检测两个以上的T (即,不能同时检测两个数据锁存器是否均为“I”);而在检测数据锁存器为“O”时,可以直接检测所有需要检测的“O”(即,可以同时检测两个以上数据锁存器是否均为“O”)。因此,加速编码可以通过改变编码过程中各码字的各个位的顺序,使得可以被更快检测的含“O”数量较多的码字在前(即,用含“O”数量较多的码字代表较低的验证电压),而含“O”数量较少的码字在后(S卩,用含“O”数量较少的码字代表较高的验证电压),从而可以省去检测“I”的冗余操作。因此,加速编码的编程速度可以加快,功耗也可以降低。
[0087]例如,参见图9中的编码,以编码L1、L2为例,检测的时候,目的是为了把当前的单元编码与在其右侧的所有单元区分开来。因为格雷码的“O”和“I”关系不明确,所以在使用格雷码时,如果要将Ll( “1110”)与L2-L15区分出来,需要检测ADL= I,然后检测BDL=H后检测CDL= I,最后检测DDL = O。而使用加速编码重新编码之后,对于LI对应的码字“0000”,可以直接同时检测四个“O” (BP ,ADL = BDL = CDL = DDL = O)。相似地,对于电压L2,在使用格雷码时,如果要将L2( “1100”)与L3-L15区分出来,需要检测ADL= I,然后检测BDL =I,然后检测⑶L = DDL = 0。而使用加速编码重编码之后,对于L2对应的码字“0100”,可以直接同时检测三个“0”(S卩,ADL = CDL = DDL = 0)就可以使L2与L3-L15区分出来,因为L3-L15中没有ADL、CDL以及DDL同时为“O”的码字。因此,加速编码可以省去检测“I”的冗余操作,编程速度可以加快,功耗也可以降低。
[0088]参见图8A,在方法800中,验证电压LI的格雷编码码字为“1110”,方法800包括:步骤S801,对被编程的存储单元验证脉冲L1(S卩,验证电压LI);步骤S802,对被编程的存储单元执行脉冲LI的锁存;步骤S803,检测第一个“I” (即,检测ADL= I);步骤S804,检测第二个T (即,检测BDL= I);步骤S805,检测第三个“I”(即,检测0^=1);步骤3806,检测一个“0”(即,检测DDL = O);以及步骤S807,将满足上述步骤S803-S806并通过验证电压LI的验证的存储单元的数据锁存器组锁存为“1111”(即,数据锁存器组被锁存为ADL= I,BDL= I ADL =I,DDL= I);并且,将没有满足上述步骤S803-S806或没通过验证电压LI的验证的存储单元的数据锁存器组的状态保持不变。
[0089]例如,LI (格雷码“1110” )的验证和锁存可以包括以下操作A)_E):
[0090]A)对BUS充电(S卩,设置BUS = I),拉高标记锁存器(例如,设置标记锁存器TDL=I)。
[0091]B) BUS充电(BUS = I),读ADL,再拉高 TDL = I。若ADL = I,则 TDL = O;否则 TDL = I。
[0092]C) BUS充电(BUS = I),读BDL,再拉高 TDL = I。若BDL = I,则 TDL = O;否则 TDL = I。
[0093]D) BUS充电 BUS = I,读CDL,再拉高 TDL = I。若CDL = I,则 TDL = O;否则 TDL = I。
[0094]E) BUS充电BUS = I,读DDL,SDL,TDL,拉高DDL = I。若DDL = 0, SDL = O ,TDL = O,则DDL=1;否则 DDL = 0。
[0095]在方法8000中,验证电压LI的加速编码码字为“0000”,方法8000包括:步骤S8001,对被编程的存储单元验证脉冲Ll( S卩,验证电压LI);步骤S8002,对被编程的存储单元执行脉冲LI的锁存;步骤S8006,检测四个“O”(S卩,检测ADL = BDL = CDL = DDL = 0);以及步骤S8007,将满足上述步骤S8006并通过验证电压LI的验证的存储单元的数据锁存器组锁存为“1111”( S卩,数据锁存器组被锁存为ADL= I,BDL = I,CDL = I,DDL = I);并且,将没有满足上述步骤S8006和/或没通过验证电压LI的验证的存储单元的数据锁存器组的状态保持不变。
[0096]例如,LI (加速编码“0000” )的验证和锁存可以包括以下操作:BUS充电BUS = I,读ADL,BDL,CDL,DDL,SDL,再拉高ADL = I,BDL = I,CDL = I,DDL = I。若ADL = 0,BDL = 0,CDL = O,DDL = O,SDL = O(其中,SDL = O表示存储单元的电压已达到验证电压LI),则成功锁存ADL =I ,BDL=I ,CDL=I ,DDL=I;否则ADL = O,BDL = O,CDL = O,DDL = 0。
[0097]因此,相比于格雷编码,加速编码可以将步骤S803-S805省去,使得操作数目减少,加快编程速度,同时降低功耗。
[0098]在方法800中,验证电压L2的格雷编码码字为“1100”,方法800还包括:步骤S808,对被编程的存储单元验证脉冲L2(S卩,验证电压L2);步骤S809,对被编程的存储单元执行脉冲L2的锁存;步骤S810,检测第一个“I”(即,检测ADL=I);步骤S811,检测第二个“1”(SP,检测BDL= I);步骤S812,检测两个“O”(S卩,检测CDL = DDL = O);以及步骤S813,将满足上述步骤S810-S812并且通过验证电压L2的验证的存储单元的数据锁存器组锁存为“1111”( S卩,数据锁存器组被锁存为ADL = I,BDL= I,CDL=I,DDL=I);并且,将没有满足上述步骤S810-S812和/或没有通过验证电压L2的验证的存储单元的数据锁存器组的状态保持不变。
[0099]例如,L2(格雷码“1100”)的验证和锁存可以包括以下操作:
[0100]△)81^充电冊5 = 1,拉高丁01^=1。
[0101]8沖1^充电冊5 = 1,读ADL,再拉高TDL = I。若ADL = I,贝丨JTDL = O;否贝丨JTDL = I。
[0102]C) BUS充电 BUS = I,读BDL,再拉高 TDL = I。若BDL = I,贝丨J TDL = O;否贝丨J TDL = I。
[0103 ] D) BUS充电 BUS = I,读CDL,DDL,SDL,TDL,拉高CDL,DDL = I。若CDL = O,DDL = O,SDL=0,了01^ = 0,则0^=1,001^=1;否则0^ = 0,001^ = 0。
[0104]在方法8000中,验证电压L2的加速编码码字为“0100”,方法8000还包括:步骤S8008,对被编程的存储单元验证脉冲L2(S卩,验证电压L2);步骤S8009,对被编程的存储单元执行脉冲L2的锁存;步骤S8012,检测三个“O” (即,检测ADL = CDL = DDL = O);以及步骤S8013,将满足上述步骤S8012并且通过验证电压L2的验证的存储单元的数据锁存器组锁存为“1111”( S卩,数据锁存器组被锁存为ADL= I,BDL = I,CDL = I,DDL = I);并且,将没有满足上述步骤S8012和/或没有通过验证电压L2的验证的存储单元的数据锁存器组的状态保持不变。
[0105]例如,L2(加速编码“0100”)的验证和锁存可以包括以下操作:BUS充电BUS= I,读ADL,CDL,DDL,SDL,再拉高ADL= I ,CDL= I ,DDL= I。若ADL = O,CDL = O,DDL = O,SDL = 0(其中,SDL = O表示存储单元的电压已达到验证电压L2),则成功锁存ADL= I ,CDL=I ,DDL=I;否则 ADL = O ,CDL = O,DDL = 0。
[0106]因此,相比于格雷编码,加速编码可以将步骤S810-S811省去,使得操作数目减少,加快编程速度,同时降低功耗。
[0107]参见图8B,在方法800中,验证电压L3的格雷编码码字为“1000”,方法800包括:步骤S814,对被编程的存储单元验证脉冲L3(S卩,验证电压L3);步骤S815,对被编程的存储单元执行脉冲L3的锁存;步骤S816,检测第一个“I” (即,检测ADL= I);步骤S817,检测三个“O”(即,检测BDL = CDL = DDL = 0);以及步骤S818,将满足上述步骤S816-S817并且通过验证电压L3的验证的存储单元的数据锁存器组锁存为“1111”( S卩,数据锁存器组被锁存为ADL= I,BDL= I ADL= I,DDL= I);并且,将没有满足上述步骤S816-S817和/或没有通过验证电压L3的验证的存储单元的数据锁存器组的状态保持不变。
[0108]例如,L3(格雷码“1000” )的验证和锁存可以包括以下操作:
[0109]A)对BUS充电(即,设置BUS = I),拉高标记锁存器(例如,设置TDL= I)。
[0110]8)81^充电(81^ = 1),读ADL,再拉高TDL = I。若ADL = I,则TDL = O;否则TDL = I。
[0111]C)BUS充电BUS = I,读BDL,CDL,DDL,SDL,TDL,拉高BDL,CDL,DDL。若BDL = O,CDL =0,DDL = 0,SDL = O,TDL = O,则BDL=I ,CDL=I ,DDL=I;否则BDL = O,CDL = O,DDL = 0。
[0112]在方法8000中,验证电压L3的加速编码码字为“1000”,方法8000还包括:步骤S8014,对被编程的存储单元验证脉冲L3(S卩,验证电压L3);步骤S8015,对被编程的存储单元执行脉冲L3的锁存;步骤S8017,检测三个“O” (即,检测BDL = CDL = DDL = O);以及步骤S8018,将满足上述步骤S8017并且通过验证电压L3的验证的存储单元的数据锁存器组锁存为“1111”( S卩,数据锁存器组被锁存为ADL= I,BDL =
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1