半导体存储装置的制造方法_2

文档序号:9688788阅读:来源:国知局
“11”,“A”电平被赋予编号“01”,“B”电平被赋予编号“00”,“C”电平被赋予编号“10”。“11”、“01”、“00”及“10”是左侧的数字分配于上位比特,右侧的数字分配于下位比特。此处,将下位比特的数据的写入单位称作“下位页面”。而且,将上位比特的数据的写入单位称作“上位页面”。
[0097]“E”电平为数据被删除的状态下的阈值,例如具有负值(也可具有正值),比删除验证电压EV低。“A”?“C”电平为对电荷蓄积层内注入电荷的状态的阈值,“A”电平具有高于读取电平“AR”且低于读取电平“BR”的阈值。“B”电平具有高于读取电平“BR”且低于读取电平“CR”的阈值。“C”电平具有高于读取电平“CR”的阈值。
[0098]这样,各个存储单元晶体管MT通过采取4个阈值电平而可存储2比特的数据(4-level data)。
[0099]如果进行下位页面编程(lower page program),则图5 (a)所示的删除状态(“E”电平)的阈值分布变化为图5(b)所示的2值(Lower-level (较低电平)与Middle-level (中间电平))的阈值分布。通过将电压“MR”供给到选择字线而进行读取动作,可判别存储单元晶体管MT的阈值电压比电压“MR”高还是低。其结果,可读出2值(Lower-level 与 Middle-level)的数据。
[0100]如果在下位页面编程后进行上位页面编程(upper page program),则图5 (b)所示的2值的阈值分布如图5(c)所示,变为4值的阈值分布。如以上般,将通过在进行下位页面编程后进行上位页面编程,而进行4值的数据的编程动作的方法称作第一编程动作。
[0101]而且,也可通过对存储单元晶体管MT将下位页面的数据与上位页面的数据一并编程,而将图5(a)所示的1值的阈值分布变为如图5(c)所示的4值的阈值分布。这样,将不分开进行下位页面编程与上位页面编程而从删除状态开始直接进行2比特(4值)以上的多比特的编程的方法称作第二编程动作。
[0102]第一实施方式中,说明在存储单元晶体管MT保持4值的情况下,应用第一编程作为对存储单元晶体管MT的编程动作的存储器系统100。
[0103]另外,图5(b)及图5(c)中,电压MR及后述的编程验证电压VCHK表示为相同的电压,但电压MR及电压VCHK并非必须相同,各自的大小关系也可适当变更。
[0104]< 页面 >
[0105]其次,对页面进行说明。第一实施方式的存储单元晶体管MT保持4值。因此,如图6所示,在第一实施方式的页面存在下位页面与上位页面。
[0106]如图6所示,下位页面(lower page) 132具有正常数据区域(normal dataarea) 132a、及冗余数据区域(redundancy area) 132bο
[0107]上位页面(upper page) 133具有正常数据区域133a、及冗余数据区域133b。
[0108]正常数据区域(normal data area) 132a、及133a中存储例如从主机200供给的数据。冗余数据区域(redundancy area) 132b、133b中存储例如编程条件数据等。另外,关于编程条件数据,将于以后进行说明。
[0109]<第一实施方式的数据的写入动作的概要>
[0110]且说,存储单元阵列130具有3维积层型的结构,存储单元晶体管MT的编程特性(条件)中存在由字线WL的膜厚等的加工形状弓I起的编程特性的差异、及由MH径引起的编程特性的差异。
[0111]然而,认为如果为同一区块内的同一字线,则串单元SU间的差异并不会很大。
[0112]因此,例如,将区块内的1个串单元作为用以获取(撷取)“存储单元晶体管MT的编程特性的样品串单元”。而且,将从样品串单元获取的编程特性应用于同一区块内的样品串单兀以外的串单兀。由此,可提尚样品串单兀以外的单兀的编程速度。
[0113]样品串单元的各自的字线WL较理想为在各区块中首先得到编程。
[0114]本实施方式中,串单元SU0的页面地址与串单元SU0以外的串单元的页面地址相比而较小。因此,控制电路122比起串单元SU0以外的串单元的字线WL而先对串单元SU0的存储单元晶体管MT进行编程。而且,控制电路122在未特别指定的情况下,将串单元SU0作为样品串单元进行处理。
[0115]控制电路122对样品串单元进行特定编程动作,存储单元晶体管MT不会被重复编程,并导出最大的初始编程电压VPGM。将此种动作称作撷取动作。第一编程动作中,该撷取动作是在进行样品串单元的特定字线WL的下位页面编程时同时进行。而且,第二编程动作中,该撷取动作是在进行对样品串单元的特定字线WL的编程时进行。以后将对详细的撷取动作进行叙述。
[0116]而且,控制电路122基于撷取动作的结果,不仅决定与样品串单元的特定字线WL为同一字线的上位页面的初始编程电压,也决定同一区块内的其他串单元SU的同一字线WL的下位页面及上位页面的初始编程电压。控制电路122针对样品串单元的每一字线WL来进行撷取动作。
[0117]控制电路122基于从存储器控制器110接收的指令及地址进行撷取动作。关于控制电路122基于怎样的指令及地址及是否进行撷取动作,将于后述的其他例中进行详细说明。
[0118]<第一实施方式的数据的写入动作的详情>
[0119]以下,根据图7所示的流程图对第一实施方式的第一编程动作进行说明。另外,下述所示的处理主要利用控制电路122的控制来执行。
[0120][S1001]
[0121]控制电路122在从存储器控制器110接收编程指令、区块地址、页面的地址(包含选择串单元SUP(P:0以上的整数)的地址信息)、编程开始指令前,判定是否接收样品串单元指定指令。另外,以下,为了简化,将编程指令、地址、数据及编程开始指令统一称作“指令顺序(command sequence),,等。
[0122]< <指令顺序例1 > >
[0123]此处,使用图8,说明在接收编程开始指令前未接收样品串单元指定指令的情况下的下位页面编程的指令顺序。
[0124]如图8所示,在指令顺序从存储器控制器110输入到NAND闪存120之前,芯片赋能信号CEn、地址锁存赋能信号ALE、指令锁存赋能信号CLE为“L(low) ”电平。而且,写入赋能信号WEn、读出赋能信号REn为“H(high) ”电平。而且,表示数据锁存电路125的待命/忙碌状态的待命/忙碌信号(R/Bn)为“待命”状态。
[0125]接下来,NAND闪存120在指令锁存赋能信号CLE为“H”电平的期间,从存储器控制器110输入指令“80H”,写入赋能信号WEn为“L”电平。
[0126]NAND闪存120在地址锁存赋能信号ALE为“H”电平的期间,从存储器控制器110接收地址。该地址为下位页面的地址。
[0127]而且,NAND闪存120继地址后接收数据。由此,该数据被存储在第一高速缓存125a0
[0128]而且,NAND闪存120在指令锁存赋能信号CLE为“H”电平的期间,从存储器控制器110输入指令“10H”。由此,执行下位页面编程。在上位页面编程时,以相同的指令顺序进行动作。
[0129]< <指令顺序例2?
[0130]而且,使用图9,说明在接收编程开始指令前接收样品串单元指定指令的情况下的下位页面编程的指令顺序。
[0131]如图9所示,NAND闪存120在指令锁存赋能信号CLE为“H”电平的期间,从存储器控制器110输入样品串单元指定指令“ZZH”。
[0132]而且,NAND闪存120在地址锁存赋能信号ALE为“H”电平的期间,从存储器控制器110接收串单元的地址。该地址为所指定的串单元(称作指定串单元SUQ(Q:0以上的整数)等)的地址。而且,与使用图8说明的动作同样地进行动作。由此,执行下位页面编程。上位页面编程时也以相同的指令顺序进行动作。
[0133][S1002]
[0134]控制电路122在步骤S1001中,判定为未接收样品串单元指定指令的情况下(31001,勵),将串单元31]0作为样品串单元进行处理。而且,控制电路122判定所选择的选择串单元SUP是否为串单元SU0。另外,选择串单元SUP为进行编程动作的串单元。
[0135][S1003]
[0136]控制电路122在步骤S1002中,判定选择串单元SUP为串单元SU0的情况下(S1002,YES),判定所接收的页面的地址是否为下位页面的地址。
[0137][S1004]
[0138]控制电路122在步骤S1002中,判定选择串单元SUP并非为串单元SU0的情况下(S1002,N0),判定所接收的页面的地址是否为下位页面的地址。
[0139][S1005]
[0140]控制电路122在步骤S1001中,判定为接收样品串单元指定指令的情况下(S1001,YES),判定有效的串单元的地址是否已被指定。换句话说,控制电路122将指定串单元SUQ与例如存储在未图示的寄存器的串信息相比,判定是否为所存在的串。
[0141][S1006]
[0142]控制电路122在步骤S1005中,判定为指定串单元SUQ并非为有效的地址指定的情况下(S1005,N0),判定所接收的页面的地址是否为下位页面的地址。
[0143][S1007]
[0144]控制电路122在步骤S1005中,判定为指定串单元SUQ为有效的地址指定的情况下(S1005,YES),判定选择串单元SUP是否与指定串单元SUQ相同。
[0145][S1008]
[0146]控制电路122在步骤S1007中,判定为指定串单元SUQ与选择串单元SUP相同的情况下(S1007,YES),判定所接收的页面的地址是否为下位页面的地址。
[0147][S1009]
[0148]控制电路122在步骤S1007中,判定为指定串单元SUQ不与选择串单元SUP相同的情况下(S1007,N0),判定所接收的页面的地址是否为下位页面的地址。
[0149]〈步骤S1003中,为“YES”的情况下〉
[0150]其次,使用图10,说明控制电路122在图7的步骤S1003中,判定为所接收的页面的地址为下位页面的地址的情况(S1003,YES)。
[0151]使用图10的流程图对第一实施方式的数据的编程动作例进行说明。以下表示作为下位页面编程的一部分进行撷取动作的动作例。
[0152][S1101]
[0153]首先,控制电路122将所接收的下位页面的数据存储在第三高速缓存125c。而且,控制电路122进行撷取动作。
[0154]且说,控制电路122对存储在第三高速缓存125c的冗余数据区域132b的存储有编程条件数据的列地址设定非写入数据,直至撷取动作结束为止。
[0155][S1102]
[0156]其次,如图11所示,控制电路122开始下位页面的编程动作。具体而言,响应控制电路122的命令,行解码器128 —边使所选择的串单元的选择晶体管导通,一边对选择字线WLn (η:0以上的整数)施加编程电压VPGMC。而且,响应控制电路122的命令,感测放大器126对比特线BL施加与下位页面数据相应的电压。
[0157]由此,控制电路122对存储单元晶体管MT进行存储在第三高速缓存125c的下位页面数据的编程。
[0158][S1103]
[0159]其次,响应控制电路122的命令,行解码器128将撷取动作时的验证用的编程验证电压VCHK施加到选择字线WLn。
[0160]这样,控制电路122执行第一编程验证动作。即,依据控制电路122的命令,感测放大器126从选择页面读出数据。然后,控制电路122基于读出数据确认存储单元晶体管MT的阈值是否上升到所期望的值。
[0161][S1104]
[0162]控制电路122判定超过了撷取动作时的验证用的编程验证电压VCHK的存储单元晶体管数NCHK_PASS是否超过规定值NCHK_PV。另外,该规定值NCHK_PV存储在未图示的存储单元阵列130的ROM熔丝区块(ROM fuse block),在存储器系统100的起动时被读出,且预先在寄存器122a中存储规定值NCHK_PV。
[0163][S1105]
[0164]步骤S1104中,在控制电路122判定存储单元晶体管数CHK_PASS未超过规定值CHK_PV的情况下(S1104,N0),控制电路122将循环数NWLn_loop更新为NWLn_loop+l。另夕卜,循环数NWLn_loop的初始值为“0”。
[0165][S1106]
[0166]而且,控制电路122在更新循环数NWLn_loop后,使编程电压VPGM增加DVPGM_L。而且,控制电路122使用经更新的编程电压VPGM重复步骤S1102的动作。另外,步骤S1105及步骤S1106的动作的顺序也可进行置换。
[0167][S1107]
[0168]步骤S1104中,在控制电路122判定为存储单元晶体管数NCHK_PASS超过规定值NCHK_PV的情况下(S1104,YES),控制电路122使信号SV_PASS从“L(Low) ”电平上升为"H(High) ”电平。如果信号SV_PASS从“L”电平上升为“H”电平,则控制电路122为了进行超过电压ML2V的存储单元晶体管数NML2V_PASS是否超过规定值NML2V_PV的判定,而进行编程验证动作。
[0169]更具体而言,行解码器128将验证电压ML2V施加到选择字线WLn,并执行编程验证动作。
[0170][S1108]
[0171]接下来,如果控制电路122读出步骤S1107中的编程验证结果,则使信号DETECT_CHK从“L”电平上升到“H”电平。控制电路122在信号DETECT_CHK为“H”的期间,进行超过电压ML2V的存储单元晶体管数NML2V_PASS是否超过规定值NML2V_PV的判定。该规定值NML2V_PV存储在存储单元阵列130的未图示的ROM熔丝区块中,在存储器系统100的起动时被读出,控制电路122在寄存器122b中存储规定值NML2V_PV。
[0172]且说,步骤S1102?S1106的动作的结果为,有时超过为middle level的验证电平的电压ML2V的存储单元晶体管数NML2V_PASS会超过规定值NML2V_PV。此时的步骤S1104中,如果将为“YES”的编程电压VPGM用作下位页面编程的初始编程电压,则有规定值以上的单元到达middle level的验证电平而发生重复编程的可能性。为了抑制此种重复编程,控制电路122进行所述步骤S1107、S1108的动作,判定存储单元晶体管数NML2V_PASS是否超过规定值NML2V_PV。利用所述判定动作结束而撷取动作完成。
[0173][S1109]
[0174]控制电路122于撷取动作完成后,将撷取动作的结果作为编程条件数据存储在寄存器122c。具体而言,将控制电路122在步骤S1107、S1108中的编程验证结果与直至通过步骤S1104所需的循环数作为编程条件数据而存储在控制电路122的寄存器122c。该编程条件数据例如为8比特数据。第一实施方式中,该8比特的数据中的1比特量的数据分配于该判定结果(超过电压ML2V的存储单元晶体管数NML2V_PASS是否超过规定值NML2V_PV),7比特量的数据分配于循环数。
[0175]具体而言,在循环数NWLn_loop = 4时,在存储单元晶体管数NCHK_PASS为NCHK_PASS > NCHK_SV且NML2V_PASS < NML2V_PV的情况下,8比特的编程条件数据表示为{0_000_100}。而且,在循环数NWLn_loop = 4时,在存储单元晶体管数NCHK_PASS为NCHK_PASS > NCHK_SV 且 NML2V_PASS > NML2V_PV 的情况下,8 比特的数据表示为{1_000_100}。本实施方式中,将编程条件数据的最上位比特定义为SV_0VER。S卩,编程条件数据的格式为{SV_0VER, NWLn_loop [6:0]}。在超过电压ML2V的存储单元晶体管数NML2V_PASS未超过规定值NML2V_PV的情况下,比特SV_0VER为“0”,在超过的情况下,比特SV_0VER为“ 1 ”。
[0176]控制电路122将存储在寄存器122c的编程条件数据覆写于存储在第三高速缓存125c的冗余数据区域132b,而解除冗余数据区域132b的编程条件数据的编程禁止状态。从施加下一编程脉冲起,与正常数据区域132a—并开始进行编程条件数据的编程动作。另夕卜,控制电路122此时对循环计数器进行重置。
[0177][S1110]
[0178]接下来,控制电路122将循环数NWLn_loop更新为NWLn_loop+l。
[0179][S1111]
[0180]而且,控制电路122在更新循环数NWLn_loop后,使编程电压VPGM增加DVPGM_L。
[0181]另外,步骤S1110及步骤S1111的动作的顺序也可进行置换。
[0182][S1112]
[0183]如本例般,在撷取动作作为下位页面编程的一部分进行的情况下,控制电路122继撷取动作后继续进行下位页面的编程动作。
[0184]具体而言,响应控制电路122的命令,行解码器128 —边使所选择的串单元的选择晶体管导通,一边对选择字线WLn施加编程电压VPGM。而且,响应控制电路122的命令,感测放大器126对比特线BL施加与下位页面数据相应的电压。
[0185]由此,对存储单元阵列130进行存储在第三高速缓存125c的数据(正常数据区域132a及冗余数据区域132b)的编程。
[0186][S1113]
[0187]其次,响应控制电路122的命令,行解码器128将编程验证电压ML2V施加到选择字线WLn。
[0188]由此,控制电路122执行编程验证动作。以下,将上升到所期望的值的情况称作“通过”验证,未上升到所期望的值的情况称作“失效”。
[0189][S1114]
[0190]控制电路122判定编程验证是否通过。如果通过选择页面的编程验证(步骤S1114,YES),则对该页面的编程动作结束。
[0191][S1115]
[0192]控制电路122在判断为未通过选择页面的编程验证的情况下(步骤S1114,N0),判定对该页面的编程动作的循环数是否达到最大值。在循环数达到最大值的情况下(步骤S1115,YES),对该页面的编程动作结束。
[0193][S1116]
[0194]步骤S1115中,控制电路122在循环数未达到最大值的情况下(步
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1