具体实施方式
以下,对于实施方式,一面参照附图一面进行说明。在进行该说明时,遍及所有图,对共同的部分标注共同的参照符号。
1.第1实施方式
对第1实施方式的半导体存储装置进行说明。以下,作为半导体存储装置,列举在半导体衬底上三维地堆叠存储单元晶体管而成的三维堆叠型NAND闪速存储器为例进行说明。
1.1关于构成
1.1.1关于半导体存储装置的整体构成
首先,对于本实施方式的半导体存储装置的整体构成,使用图1进行说明。图1是本实施方式的NAND型闪速存储器的框图。
如图所示,NAND型闪速存储器1具备存储单元阵列2、行解码器3、感应放大器4、及控制电路5。
存储单元阵列2包含具备与行及列相对应的非易失性存储单元晶体管的多个块BLK(BLK0、BLK1、BLK2、……)。各个块BLK含有例如4个字符串单元SU(SU0~SU3)。而且,各个字符串单元SU包含多个NAND字符串6。存储单元阵列2中的块数及块中的字符串单元数为任意。关于存储单元阵列2的详情随后记述。
行解码器3是将行地址解码,且基于该解码结果,选择块BLK中的任一个,进而,选择任一个字符串单元SU。接着,将所需之电压输出至块BLK。行地址是例如由控制NAND型闪速存储器1的控制器所赋予。
感应放大器4是在数据读出操作时感应自存储单元阵列2读出的数据。接着,将读出数据输出至控制器。在数据写入操作时,将自外部控制器接收的写入数据传输至存储单元阵列2。
控制电路5是控制NAND型闪速存储器1整体的操作。
1.1.2关于块BLK的构成
其次,对于所述块BLK的构成,使用图2进行说明。如上所述,块BLK包含例如4个字符串单元SU,且各个字符串单元SU包含多个NAND字符串6。
如图所示,NAND字符串6各自包含例如8个存储单元晶体管MT(MT0~MT7)及选择晶体管ST1、ST2。存储单元晶体管MT具备控制栅极与电荷存储层,且非易失性地保持数据。而且,存储单元晶体管MT是串联地连接于选择晶体管ST1的源极与选择晶体管ST2的漏极之间。
字符串单元SU0~SU3各自中的选择晶体管ST1的栅极是分别连接于选择栅极线SGD0~SGD3。与之相对地,字符串单元SU0~SU3各自中的选择晶体管ST2的栅极共通地连接于例如选择栅极线SGS。当然,也可以连接于每一字符串单元中不同的选择栅极线SGS0~SGS3。而且,位于同一块BLK内的存储单元晶体管MT0~MT7的控制栅极分别共通连接于字线WL0~WL7。
而且,位于字符串单元SU内的各NAND字符串6的选择晶体管ST1的漏极分别连接于不同的位线BL(BL0~BL(L-1),其中L为2以上的自然数)。而且,位线BL共通地连接于在多个块BLK间位于各字符串单元SU内的1个NAND字符串6。进而,多个选择晶体管ST2的源极是共通地连接于源极线SL。
即,字符串单元SU是连接于不同的位线BL且连接于同一选择栅极线SGD的NAND字符串6的集合体。而且,块BLK是使字线WL共通的多个字符串单元SU的集合体。而且,存储单元阵列2是使位线BL共通的多个块BLK的集合体。
图3是块BLK的一部分区域的剖视图。如图所示,在p型阱区域10上,形成有多个NAND字符串6。即,在阱区域10上依次地堆叠有作为选择栅极线SGS发挥功能的例如4层的布线层11、作为字线WL0~WL7发挥功能的8层的布线层12、及作为选择栅极线SGD发挥功能的例如4层的布线层13。在堆叠而成的布线层间形成有未图示的绝缘膜。
接着,形成将这些布线层13、12、11贯通而到达阱区域10的柱状导电体14。在导电体14的侧面依次地形成有栅极绝缘膜15、电荷存储层(绝缘膜或导电膜)16、及阻挡绝缘膜17,通过这些而形成存储单元晶体管MT、及选择晶体管ST1及ST2。导电体14是作为NAND字符串6的电流路径发挥功能,且成为形成各晶体管的沟道的区域。而且,导电体14的上端是连接于作为位线BL发挥功能的金属布线层18。
在阱区域10的表面区域内形成有n+型杂质扩散层19。在扩散层19上形成有接点插塞20,且接点插塞20连接于作为源极线SL发挥功能的金属布线层21。进而,在阱区域10的表面区域内形成有p+型杂质扩散层22。在扩散层22上形成有接点插塞23,且接点插塞23连接于作为阱布线CPWELL发挥功能的金属布线层24。阱布线CPWELL是用以经由阱区域10对导电体14施加电位的布线。
将以上的构成在记载图3的纸面的纵深方向排列多个,且通过在纵深方向上排列多个NAND字符串6的集合而形成字符串单元SU。
另外,数据擦除能够以块BLK单位、或比块BLK小的单位进行。关于擦除方法,例如记载于名称为“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE”在2011年9月18日申请的美国专利申请13/235,389号。而且,记载于名称为“NON-VOLATILE SEMICONDUCTOR STORAGEDEVICE”在2010年1月27日申请的美国专利申请12/694,690号。进而,记载于名称为“NONVOLATILE SEMICONDUCTOR MEMORY DEVICE AND DATA ERASE METHOD THEREOF”在2012年5月30日申请的美国专利申请13/483,610号。这些专利申请是其整体在本申请说明书中通过参照而被引用。
进而,关于存储单元阵列2的构成也可为其他的构成。即,关于存储单元阵列2的构成,例如记载于名称为“三维堆叠非易失性半导体存储器(THREE DIMENSIONAL STACKEDNONVOLATILE SEMICONDUCTOR MEMORY)”在2009年3月19日申请的美国专利申请12/407,403号。而且,记载于名称为“三维堆叠非易失性半导体存储器(THREE DIMENSIONAL STACKEDNONVOLATILE SEMICONDUCTOR MEMORY)”在2009年3月18日申请的美国专利申请12/406,524号、名称为“非易失性半导体存储装置及其制造方法(NON-VOLATILE SEMICONDUCTORSTORAGE DEVICE AND METHOD OF MANUFACTURING THE SAME)”在2010年3月25日申请的美国专利申请12/679,991号及名称为“半导体存储器及其制造方法(SEMICONDUCTOR MEMORYAND METHOD FOR MANUFACTURING SAME)”在2009年3月23日申请的美国专利申请12/532,030号。这些专利申请是其整体在本申请说明书中通过参照而被引用。
1.1.3关于感应放大器的构成
接着,对于感应放大器4的构成,使用图4进行说明。
如图所示,感应放大器4包括多个感应放大器单元SAU、及多个锁存电路XDL。
感应放大器单元SAU是例如设置在每一个位线BL,感应在对应的位线BL中被读出的数据,而且,将写入数据传输至对应的位线BL。例如,16个感应放大器单元SAU是共通地连接于1个总线DBUS。另外,连接于1个总线DBUS的感应放大器单元SAU的个数为任意。在以下的说明中,在将共通地连接于1个总线DBUS的16个感应放大器单元SAU进行区别时,分别表述为SAU<0>~SAU<15>。
锁存电路XDL是设置在每一个感应放大器单元SAU中,且暂时地保持与对应的位线BL相关的数据。与感应放大器单元SAU<0>~SAU<15>分别对应的16个锁存电路XDL<15:0>是共通地连接于1个总线DBUS。而且,各锁存电路XDL是连接于数据线IO。锁存电路XDL是经由总线DBUS及数据线IO用于感应放大器单元SAU与外部之间的数据收发。即,例如自外部控制器等接收的数据首先经由数据线IO保持在锁存电路XDL,然后,经由总线DBUS传输至感应放大器单元。反过来情况也相同。
1.1.4关于感应放大器单元的构成
接着,对于感应放大器单元SAU的构成,使用图5进行说明。另外,本实施方式是以感应在位线BL中流动的电流的电流感应方式的感应放大器单元SAU为例进行说明,但也可以使用电压感应方式的感应放大器单元SAU。
如图5所示,感应放大器单元SAU包括感应放大器部SA、4个锁存电路(SDL、ADL、BDL、及CDL)、预充电电路30、及总线开关32。
感应放大器部SA是感应位线BL中读出的数据,而且,根据程序数据对位线BL施加电压。即,感应放大器部SA是直接地控制位线BL的模块。进而,该感应放大器部SA是进行使用锁存电路SDL、ADL、BDL、及CDL中的数据的AND运算或OR运算的模块。
接着,对感应放大器部SA的电路的详情进行说明。在以下的说明中,将晶体管的源极或漏极的其中一个称为「电流路径的一端」,将源极或漏极的另一个称为「电流路径的另一端」。
如图所示,感应放大器部SA具备高耐压n沟道MOS晶体管40、低耐压n沟道MOS晶体管41~50、低耐压p沟道MOS晶体管51、及电容器组件52。
晶体管40是对栅极输入信号BLS,且电流路径的一端连接于对应的位线BL,电流路径的另一端连接于节点BLI。
晶体管41是对栅极输入信号BLC,且电流路径的一端连接于节点BLI,电流路径的另一端连接于节点SCOM。晶体管41是用以将对应的位线BL箝位至与信号BLC相应的电位。
晶体管42是对栅极输入信号BLX,且电流路径的一端连接于节点SCOM,电流路径的另一端连接于节点SSRC。
晶体管43是栅极连接于节点LAT_S,且电流路径的一端连接于节点SSRC,电流路径的另一端连接于节点SRCGND。节点SRCGND被施加例如接地电压VSS。
晶体管51是栅极连接于节点LAT_S,且对电流路径的一端施加电源电压VDDSA,电流路径的另一端连接于节点SSRC。
晶体管44是对栅极输入信号XXL,且电流路径的一端连接于节点SCOM,电流路径的另一端连接于节点SEN。
晶体管45是对栅极输入信号HLL,且对电流路径的一端施加电压VSENP,电流路径的另一端连接于节点SEN。
电容器组件52是一电极连接于节点SEN,对另一电极输入时钟CLK。
晶体管47是栅极连接于节点SEN,且电流路径的一端连接于晶体管48的电流路径的一端,对电流路径的另一端输入时钟CLK。
晶体管48是对栅极输入信号STB,电流路径的另一端连接于总线LBUS。
晶体管46是对栅极输入信号BLQ,且电流路径的一端连接于节点SEN,电流路径的另一端连接于总线LBUS。
晶体管49是栅极连接于总线LBUS,且电流路径的一端连接于晶体管50的电流路径的一端,对电流路径的另一端施加电压VLSA。电压VLSA也可以是例如接地电压VSS。
晶体管50是对栅极输入信号LSL,且电流路径的另一端连接于节点SEN。
锁存电路SDL、ADL、BDL、及CDL是暂时地保持数据。在数据的写入操作中,感应放大器部SA根据锁存电路SDL的保持数据,控制位线BL。其他的锁存电路ADL、BDL及CDL例如用于各个存储单元晶体管保持2位以上的数据的多值操作用。另外,锁存电路的个数可任意地设定,例如可根据存储单元晶体管所能保持的数据量(位数)而设定。
锁存电路SDL具有低耐压n沟道MOS晶体管60~63及低耐压的p沟道MOS晶体管64~67。
晶体管60是对栅极输入信号STL,且电流路径的一端连接于总线LBUS,电流路径的另一端连接于节点LAT_S。
晶体管61是对栅极输入信号STI,且电流路径的一端连接于总线LBUS,电流路径的另一端连接于节点INV_S。
晶体管62是栅极连接于节点INV_S,且电流路径的一端接地,电流路径的另一端连接于节点LAT_S。
晶体管63是栅极连接于节点LAT_S,且电流路径的一端接地,电流路径的另一端连接于节点INV_S。
晶体管64是栅极连接于节点INV_S,且电流路径的一端连接于节点LAT_S。
晶体管65是栅极连接于节点LAT_S,且电流路径的一端连接于节点INV_S。
晶体管66是对栅极输入信号SLL,且电流路径的一端连接于晶体管64的电流路径的另一端,对电流路径的另一端施加电源电压VDDSA。
晶体管67是对栅极输入信号SLI,且电流路径的一端连接于晶体管65的电流路径的另一端,对电流路径的另一端施加电源电压VDDSA。
在锁存电路SDL中,第1反相器包括晶体管62、64,且第2反相器包括晶体管63、65。而且,第1反相器的输出及第2反相器的输入(节点LAT_S)经由数据传输用的晶体管60连接于总线LBUS,第1反相器的输入及第2反相器的输出(节点INV_S)经由数据传输用的晶体管61连接于总线LBUS。锁存电路SDL是利用节点LAT_S保持数据,且利用节点INV_S保持其反演数据。
锁存电路ADL、BDL、及CDL因具有与锁存电路SDL相同的构成,而将说明省略,但各晶体管的参照编号及信号名如图5所述地与锁存电路SDL的情况加以区别,以下进行说明。接着,在各感应放大器单元SAU中,感应放大器部SA、及4个锁存电路SDL、ADL、BDL、及CDL以可相互收发数据的方式由总线LBUS连接。
预充电电路30是将总线LBUS进行预充电。预充电电路30包括例如低耐压n沟道MOS晶体管31。晶体管31是对栅极输入信号LPC,且电流路径的一端连接于总线LBUS,对电流路径的另一端施加电压VHLB。接着,预充电电路30通过对总线LBUS传输电压VHLB,而将总线LBUS进行预充电。
总线开关32是将总线LBUS与总线DBUS连接。即,总线开关32将感应放大器部SA与锁存电路XDL连接。总线开关32包括例如低耐压n沟道MOS晶体管33。晶体管33是对栅极输入信号DSW,且电流路径的一端连接于总线LBUS,电流路径的另一端连接于总线DBUS。
另外,所述构成的感应放大器单元SAU中的各种信号是由例如控制电路5赋予。
1.2关于存储单元晶体管的阈值分布
接着,对于本实施方式的存储单元晶体管MT可取得的阈值分布,使用图6进行说明。以下,本实施方式中对于存储单元晶体管MT可保持8值数据的情形时进行说明,但可保持的数据不仅限于8值。在本实施方式中,存储单元晶体管MT可保持4值以上数据(2位以上的数据)即可。
如图所示,各个存储单元晶体管MT的阈值电压取离散性的例如8个分布的任一个分布中所含的值。将该8个分布以阈值由低向高的顺序称为“Er”电平、“A”电平、“B”电平、“C”电平、“D”电平、“E”电平、“F”电平、及“G”电平。
如图6的(b)所示,“Er”电平相当于例如数据的擦除状态。而且,“Er”电平中所含的阈值电压小于电压VfyA且具有正或负的值。
“A”~“G”电平相当于将电荷注入至电荷存储层而将数据写入的状态,且各分布中所含的阈值电压具有例如正的值。“A”电平中所含的阈值电压为电压VfyA以上,且未达电压VfyB(其中,VfyB>VfyA)。“B”电平中所含的阈电压值为电压VfyB以上,且未达电压VfyC(其中,VfyC>VfyB)。“C”电平中所含的阈值电压为电压VfyC以上,且未达电压VfyD(其中,VfyD>VfyC)。“D”电平中所含的阈值电压为电压VfyD以上,且未达电压VfyE(其中,VfyE>VfyD)。“E”电平中所含的阈值电压为电压VfyE以上,且未达电压VfyF(其中,VfyF>VfyE)。“F”电平中所含的阈值电压为电压VfyF以上,且未达电压VfyG(其中,VfyG>VfyF)。接着,“G”电平中所含的阈值电压为电压VfyG以上,且未达电压VREAD及VPASS(其中,VREAD>VfyG)。另外,VREAD及VPASS分别是数据读出操作时及写入操作时施加至非选择字线WL的电压。
如上所述,各存储单元晶体管MT因具有8个阈值分布中的任一个分布,故可获得8种状态。通过将这些状态以2进制记数分配到“000”~“111”,各存储单元晶体管MT便可保持3位的数据。存在将该3位数据的各位分别称为高位、中位、及低位的情况。
如图6的(a)所示,在本实施方式中“,将对Er”~“G”电平的数据分配设定为“Er”电平的数据为“111”、“A”电平的数据为“011”、“B”电平的数据为“101”、“C”电平的数据为“001”、“D”电平的数据为“000”、“E”电平的数据为“100”、“F”电平的数据为“010”、“G”电平的数据为“110”。另外,对各电平的数据分配可任意地设定。
而且,详情下文描述,但数据是对于连接于任一个字线WL的多个存储单元晶体管MT(例如连接于所有位线的L个存储单元晶体管MT)一次性地写入。将其单位称作页面。接着,存在将一次性地写入的高位的集合称为快页(upper page),将中位的集合称为中页(middle page),将低位的集合称为慢页(lower page)的情形。
另外,图6是以8个电平离散地分布的情形为例进行了说明,但此情形是例如数据刚写入后的理想状态。因此,现实中可能引起相邻的电平重合的情形。例如数据写入后,存在因干扰等,“Er”电平的上端与“A”电平的下端重合的情形。在如此的情形时,例如采用ECC(Error Checking and Correcting,错误检查和纠正)技术等,将数据纠正。
1.3关于使用感应放大器部的运算操作
接着对使用感应放大器部SA的AND运算及OR运算进行说明。
1.3.1关于AND运算操作
首先,对AND运算进行说明。以下,作为AND运算例,对进行锁存电路BDL所保持的数据与CDL所保持的数据的AND运算,且将其结果保持在锁存电路SDL的情形进行说明。图7是表示对于AND运算的各处理,锁存电路BDL、CDL、及SDL、节点SEN、总线LBUS所保持的数据。图7的表格(a)是表示锁存电路BDL及CDL保持“1”数据的情形时的运算过程。表格(b)是表示锁存电路BDL保持“1”数据,且锁存电路CDL保持“0”数据的情形时的运算过程。表格(c)是表示锁存电路BDL保持“0”数据,且锁存电路CDL保持“1”数据的情形时的运算过程。表格(d)是表示锁存电路BDL及CDL保持“0”数据的情形时的运算过程。而且,在图7中,成为“1”的记数表示“H”电平的信号(电压),成为“0”的记数表示“L”电平的信号(电压)。而且,在图7的表格中,以斜线表示的栏表示各步骤中的运算结果。
首先,控制电路5将信号LPC及BLQ设为“H”电平,使晶体管31及46成为接通状态(步骤0)。由此,总线LBUS及节点SEN被预充电为“H”电平(“1”数据)。控制电路5在预充电后,将信号LPC及BLQ设为“L”电平。
接着,控制电路5将信号BTL设为“H”电平,使晶体管80成为接通状态(步骤1)。由此,在节点LAT_B保持“1”数据(锁存电路BDL为“1”数据)的情形时,总线LBUS保持“1”数据(图7的(a)及(b))。在节点LAT_B保持“0”数据(锁存电路BDL为“0”数据)的情形时,总线LBUS保持“0”数据(图7的(c)及(d))。
接着,控制电路5将信号LSL设为“H”电平,使晶体管50成为接通状态(步骤2)。如此一来,在总线LBUS保持“1”数据的情形时,晶体管49成为接通状态,因此,节点SEN保持“0”数据(图7的(a)及(b))。在总线LBUS保持“0”数据的情形时,晶体管49成为断开状态,从而节点SEN保持“1”数据(图7的(c)及(d))。即,在锁存电路BDL保持“1”数据的情形时,节点SEN保持“0”数据,在锁存电路BDL保持“0”数据的情形时,节点SEN保持“1”数据。
接着,控制电路5在将总线LBUS进行预充电后,将信号CTL设为“H”电平,使晶体管90成为接通状态(步骤3)。由此,在节点LAT_C保持“1”数据(锁存电路CDL为“1”数据)的情形时,总线LBUS保持“1”数据(图7的(a)及(c))。在节点LAT_C保持“0”数据(锁存电路CDL为“0”数据)的情形时,总线LBUS保持“0”数据(图7的(b)及(d))。
接着,控制电路5将信号CLL设为“H”电平,使晶体管96成为断开状态(步骤4)。即,控制电路5使对节点LAT_C的电压供给停止。
接着,控制电路5将信号STB设为“H”电平,使晶体管48成为接通状态(步骤5)。如此一来,在节点SEN保持“1”数据的情形时(图7的(c)及(d)),晶体管47成为接通状态,因此,总线LBUS保持“0”数据。在节点SEN保持“0”数据的情形时(图7的(a)及(b)),晶体管47成为断开状态,从而总线LBUS维持“0”或“1”数据的状态。因此,总线LBUS在节点SEN保持“0”,及总线LBUS保持“1”数据的情形时(锁存电路BDL及CDL均保持“1”数据的情形时(图7的(a))),保持“1”数据,且在此外的情形时(图7的(b)~(d))保持“0”数据。即,总线LBUS保持锁存电路BDL及CDL的数据的AND运算的结果。
接着,控制电路5将信号SLL及STL设为“H”电平,使晶体管66成为断开状态,且使晶体管60成为接通状态,将总线LBUS的数据存储在锁存电路SDL(步骤6)。
1.3.2关于OR运算操作
接着,对于OR运算,使用图8进行说明。以下仅对与AND运算不同的方面进行说明。
首先,控制电路5是与AND运算的情形同样地,将总线LBUS及节点SEN预充电至“H”电平(“1”数据)(步骤0)。
接着,控制电路5将信号BTI设为“H”电平,使晶体管81成为接通状态(步骤1)。由此,在节点INV_B保持“0”数据的情形时,总线LBUS保持“0”数据。在节点INV_B保持“1”数据的情形时,总线LBUS保持“1”数据。即,在锁存电路BDL的数据为“1”的情形时(图8的(a)及(b)),总线LBUS保持“0”数据,在锁存电路BDL的数据为“0”的情形时(图8的(c)及(d)),总线LBUS保持“1”数据。
接着,控制电路5与AND运算的情形同样地,将信号LSL设为“H”电平,使晶体管50成为接通状态(步骤2)。OR运算是在锁存电路BDL的数据为“1”的情形时(图8的(a)及(b)),节点SEN保持“1”数据。在锁存电路BDL的数据为“0”的情形时(图8的(c)及(d)),节点SEN保持“0”数据。
接着,控制电路5在将总线LBUS进行预充电后,将信号CTI设为“H”电平,使晶体管91成为接通状态(步骤3)。由此,在节点INV_C为“0”数据的情形时,总线LBUS保持“0”数据,在节点INV_C为“1”数据的情形时,总线LBUS保持“1”数据。即,在锁存电路CDL的数据为“1”的情形时(图8的(a)及(c)),总线LBUS保持“0”数据,在锁存电路CDL的数据为“0”的情形时(图8的(b)及(d)),总线LBUS保持“1”数据。
接着,控制电路5将信号CLI设为“H”电平,使晶体管97成为断开状态(步骤4)。即,控制电路5使对节点INV_C的电压供给停止。
接着,控制电路5与AND运算的情形同样地,将信号STB设为“H”电平,使晶体管48成为接通状态(步骤5)。在节点SEN保持“1”数据的情形时(图8的(a)及(b)),晶体管47成为接通状态,因此,总线LBUS保持“0”数据。在节点SEN保持“0”数据的情形时(图8的(c)及(d)),晶体管47成为断开状态,总线LBUS维持“0”或“1”数据的状态。因此,总线LBUS在节点SEN保持“1”数据,且总线LBUS保持“0”数据的情形时,即锁存电路BDL及CDL均保持“0”数据的情形时(图8的(d)),保持“1”数据,且在此外的情形时(图8的(a)~(c))保持“0”数据。即,总线LBUS保持锁存电路BDL及CDL的数据的OR运算的反演数据。
接着,控制电路5将信号SLI及STI设为“H”电平,使晶体管67成为断开状态,且使晶体管61成为接通状态,将总线LBUS的反演数据存储在锁存电路SDL(步骤6)。
1.4关于写入操作
接着,对本实施方式的数据的写入操作,简单地进行说明。写入操作大致上包含程序操作与验证操作。
程序操作是通过将电子注入至电荷存储层而使阈值电压上升(或者,通过禁止注入而维持阈值电压)的操作。以下,将使阈值电压上升的操作称为「“0”程序」或「“0”写入」,且对设为“0”程序对象的位线BL赋予“0”数据。另一方面,将维持阈值电压的操作称为「“1”程序」、「“1”写入」、或「写入禁止」,且对设为“1”程序对象的位线BL赋予“1”数据。
验证操作是在程序操作之后,通过将数据读出,而判定存储单元晶体管MT的阈值电压是否达到目标电平的操作。达到目标电平的存储单元晶体管MT此后被设为禁止写入。
通过重复进行以上的程序操作与验证操作的组合,而使存储单元晶体管MT的阈值电压上升至目标电平。
1.4.1关于写入操作的整体流程
首先,对写入操作的整体流程,使用图9进行说明。图9是表示写入操作的流程的流程图。
如图所示,首先将自外部控制器所接收的数据存储在锁存电路XDL、BDL、及CDL(步骤S10)。更具体而言,例如对于写入至存储单元晶体管MT的3位数据,锁存电路XDL保持低位的数据,锁存电路BDL保持中位的数据,锁存电路CDL保持高位的数据。
接着,控制电路5在感应放大器单元SAU中进行锁存电路XDL、BDL、及CDL的数据的AND运算,且将其结果存储在锁存电路ADL(步骤S11)。例如,在与“Er”电平对应的锁存电路ADL中存储“1”数据,在与“A”~“G”电平对应的锁存电路ADL存储“0”数据。
接着,控制电路5将锁存电路ADL的反演数据存储在锁存电路SDL(步骤S12)。例如,在与“Er”电平对应的锁存电路SDL中存储“0”数据,在与“A”~“G”电平对应的锁存电路SDL中存储“1”数据。程序操作是根据此时的锁存电路SDL的数据,选择“0”程序或“1”程序。
接着,控制电路执行程序操作(步骤S13)。更具体而言,例如在锁存电路SDL中存储“0”数据的情形时(“Er”电平),对于对应的存储单元晶体管MT执行“1”程序,且在锁存电路SDL中存储有“1”数据的情形时(“A”~“G”电平),执行“0”程序。
接着,控制电路5使用与成为验证操作对象的写入电平相应的运算式(详情下文描述),进行锁存电路BDL及CDL的数据(中位及高位数据)的运算,且将其结果存储在锁存电路SDL(步骤S14)。验证操作是根据此时的锁存电路SDL的数据,选择是否对位线BL施加预充电电压。所谓验证操作中的预充电电压是指在读出存储单元晶体管MT的数据时施加至位线BL的电压、例如高于接地电压VSS的电压。
接着,执行验证操作(步骤S15)。更具体而言,例如在锁存电路SDL存储有“0”数据的情形时,对于对应的位线BL施加预充电电压,在锁存电路SDL存储有“1”数据的情形时,对于对应的位线BL施加例如电压VSS而不施加预充电电压。
验证操作的结果是存储在锁存电路SDL。例如,在已通过验证操作的情形时,在锁存电路SDL中存储“0”数据,在验证操作失败的情形时,在锁存电路SDL中存储“1”数据。而且,也在并非验证对象的感应放大器单元SAU的锁存电路SDL中存储“1”数据。
接着,控制电路5进行锁存电路SDL的反演数据与锁存电路ADL的数据的OR运算,且将其结果存储在锁存电路ADL(步骤S16)。由此,将锁存电路ADL的数据更新。更具体而言,例如,在执行对于“A”电平的验证操作的情形时,与“A”电平对应的锁存电路ADL在已通过验证操作的情形时,将“0”数据更新为“1”数据,在验证操作失败的情形时,维持“0”数据。而且,不与“A”电平对应的锁存电路ADL维持所保持的数据。
在继续执行另外的写入电平的验证操作的情形时(步骤S17_是),控制电路5返回到步骤S14,执行与作为验证操作对象的写入电平相应的运算。
在不继续执行另外的写入电平的验证操作的情形时(步骤S17_否),控制电路5判断使写入操作结束,抑或是再次返回到步骤S13执行程序。
具体而言,在被执行的验证操作对应于最高阶的写入电平(例如“G”电平)的情形时(步骤S18_是),若已通过验证操作(步骤S19_是),则写入操作结束。
在并非对于最高阶写入电平的验证操作的情形时(步骤S18_否)、或即便是对于最高阶写入电平的验证操作但验证操作失败的情形时(步骤S19_否),控制电路5判定程序的次数是否达到预先设定的次数(步骤S20)。
接着,在程序的次数达到预先设定的次数的情形时(步骤S20_是),控制电路5使写入操作结束。
在程序的次数未达到预先设定的次数的情形时(步骤S20_否),控制电路5返回到步骤S12,将锁存电路ADL的反演数据存储在锁存电路SDL之后,执行程序操作(步骤S13)。
1.4.2关于程序操作中的各布线的电压
接着,对于程序操作中的各布线的电压,使用图10进行说明。
图10是表示程序操作中的各布线的电位变化。如图所示,首先感应放大器4将程序数据传输至各位线BL。对于被赋予“0”数据的位线BL施加接地电压VSS(例如0V)作为“L”电平。对于被赋予“1”数据的位线BL,施加例如2.5V作为“H”电平。
而且,行解码器3选择任一个块BLK,进而选择任一个字符串单元SU。接着,对被选择的字符串单元SU中的选择栅极线SGD施加例如5V,使选择晶体管ST1成为接通状态。另一方面,通过对选择栅极线SGS施加电压VSS,而使选择晶体管ST2成为断开状态。
进而,行解码器3对选择块BLK中的非选择字符串单元SU及非选择块BLK中的非选择字符串单元SU的选择栅极线SGD及SGS施加电压VSS,使选择晶体管ST1及ST2成为断开状态。
而且,源极线SL被设为例如1V(比选择栅极线SGS的电位高的电位)。
然后,行解码器3将选择块BLK中的选择字符串单元SU中的选择栅极线SGD的电位设为例如2.5V。该电位是使与被赋予“0”数据(例如0V)的位线BL对应的选择晶体管ST1接通,但使与被赋予“1”数据(例如2.5V)的位线BL对应的选择晶体管ST1截止的电压。
接着,行解码器3在选择块BLK中选择任一个字线WL,对选择字线施加电压VPGM,且对其他的非选择字线WL施加电压VPASS。电压VPGM是用以利用隧道现象将电子注入至电荷存储层的高电压,且VPGM>VPASS。
在与“0”写入对象的位线BL对应的NAND字符串中,选择晶体管ST1成为接通状态。因此,与选择字线WL连接的存储单元晶体管MT的沟道电位Vch成为0V。即,控制栅极与沟道之间的电位差变大,最终,电子被注入至电荷存储层,使得存储单元晶体管MT的阈值电压上升。
在与“1”写入对象的位线BL对应的NAND字符串中,选择晶体管ST1成为截止状态。因此,与选择字线WL连接的存储单元晶体管MT的沟道成为电性浮动,因与字线WL等的电容耦合,而使沟道电位Vch上升至电压VPGM附近为止。即,控制栅极与沟道之间的电位差变小,最终,电子未被注入至电荷存储层,存储单元晶体管MT的阈值电压得以维持(越向阈值分布电平更高的分布跃迁,阈值电压越不变动)。
1.4.3关于验证操作
接着,对本实施方式中的验证操作进行说明。本实施方式是在验证操作时,根据锁存电路SDL的数据,选择施加预充电电压的位线BL(以下,称为「选择预充电」)。更具体而言,例如感应放大器单元SAU在“0”数据(“L”数据)保持在锁存电路SDL中的情形时,将预充电电压施加至对应的位线BL。另一方面,感应放大器单元SAU在“1”数据(“H”数据)保持在锁存电路SDL中的情形时,将例如接地电压VSS施加至对应的位线BL,而不施加预充电电压。以下,将施加预充电电压的位线BL记作(“pre-charge”),将不施加预充电电压的位线记作BL(“lockout”)。
1.4.3.1关于验证操作中的锁存电路SDL的保持数据
接着,对于验证操作时的锁存电路SDL的保持数据,使用图11进行说明。
如图所示,在本实施方式中,对于写入至存储单元晶体管MT的3位数据,锁存电路XDL保持低位数据,锁存电路BDL保持中位数据,锁存电路CDL保持高位数据。
锁存电路ADL保持验证的通过(例如设为“1”数据)/失败(例如设为“0”数据)信息。图11之例是表示初始状态(第1次程序操作时)下的锁存电路ADL的数据。更具体而言,在初始状态中,与“Er”电平对应的锁存电路ADL保持“1”数据,与“A”~“G”电平对应的锁存电路ADL保持“0”数据。
接着,锁存电路ADL根据验证结果,不断地更新所保持的数据。例如进行对于“A”电平的验证操作,且在已通过验证的情形时,将与“A”电平对应的锁存电路ADL的数据由“0”更新为“1”。另一方面,在验证失败的情形时,锁存电路ADL的数据保持“0”状态。
在验证操作时,在锁存电路SDL中,存储锁存电路BDL的数据与锁存电路CDL的数据的运算结果。因此,在本实施方式的情形时,“A”电平与“F”电平、“B”电平与“E”电平、“C”电平与“D”电平、及“Er”电平与“G”电平是分别存储在锁存电路BDL及CDL中的数据相同,因此,运算结果相同。由此,在验证操作中,对于成为验证操作对象的电平的位线BL、以及成为验证操作对象的电平与中位及高位的数据相同的电平的位线BL施加预充电电压。例如在对于“A”电平的验证操作中,对与“A”电平及“F”电平对应的位线BL施加预充电电压,且即便对于“F”电平的验证操作中,也对与“A”电平及“F”电平对应的位线BL施加预充电电压。
更具体而言,在对于“A”电平或“F”电平的验证操作中,在锁存电路SDL中存储成为逻辑运算式:SDL=/(BDL×(/CDL))的数据。“/”表示数据的反演,“×”表示AND运算。因此,在对于“A”电平或“F”电平的验证操作中,在与“Er”、“B”~“E”、及“G”电平对应的锁存电路SDL中存储“1”数据,在与“A”及“F”电平对应的锁存电路SDL中存储“0”数据。
同样地,在对于“B”电平或“E”电平的验证操作中,在锁存电路SDL中存储成为逻辑运算式:SDL=/((/BDL)×CDL)的数据。因此,在对于“B”电平或“E”电平的验证操作中,在与“Er”、“A”、“C”、“D”、“F”及“G”电平对应的锁存电路SDL中存储“1”数据,在与“B”及“E”电平对应的锁存电路SDL中存储“0”数据。
在对于“C”电平或“D”电平的验证操作中,在锁存电路SDL中存储成为逻辑运算式:SDL=/((/BDL)×(/CDL))的数据。因此,在对于“C”电平或“D”电平的验证操作中,在与“Er”~“B”、及“E”~“G”电平对应的锁存电路SDL中存储“1”数据,在与“C”及“D”电平对应的锁存电路SDL中存储“0”数据。
在对于“G”电平的验证操作中,在锁存电路SDL中存储逻辑运算式成为SDL=/(BDL×CDL)的数据。因此,在对于“G”电平的验证操作中,在与“A”~“F”电平对应的锁存电路SDL中存储“1”数据,在与“Er”及“G”电平对应的锁存电路SDL中存储“0”数据。
1.4.3.2关于验证操作中的各布线的电压
接着,对于验证操作中的各布线的电压,使用图12进行说明。图12是表示验证操作中的存储单元阵列2及感应放大器单元SAU中的各布线的电压的时序图。
在时刻t1中,行解码器3对与程序对象的存储单元晶体管MT对应的选择栅极线SGD及SGS施加电压VSG,将选择晶体管ST1及ST2设为接通状态。行解码器112对选择字线WL施加电压VCGRV,且对非选择字线WL施加VREAD。电压VCGRV是根据读出数据(验证操作时为验证电平)设定的电压。电压VREAD是与存储单元晶体管MT的阈值电压无关,将存储单元晶体管MT设为接通状态的电压,且VREAD>VCGRV。
控制电路5是在感应放大器单元SAU中,将信号BLS设为“H”电平。即,对晶体管40的栅极施加电压VBLS(例如7V),将晶体管40设为接通状态,且将感应放大器单元SAU与对应的位线BL连接。
在时刻t2中,控制电路5在感应放大器单元SAU中,将信号BLC及信号BLX设为“H”电平。即,对晶体管41的栅极施加电压VBLC(例如0.5V+Vtn),将晶体管41设为接通状态。电压Vtn是感应放大器单元SAU中的低耐压n沟道MOS晶体管的阈值电压。同样地,对晶体管42施加电压VBLX(例如0.75V+Vtn),将晶体管42设为接通状态。电压VBLX与电压VBLC的关系成为VBLX≥VBLC。
此时,在锁存电路SDL保持有“0”数据即“L”数据的情形时,晶体管51成为接通状态,从而对晶体管42施加电压VDDSA。由此,对位线BL(“pre-charge”)施加利用晶体管41箝位的预充电电压VPCH(例如0.5V)。接着,相应于验证对象的存储单元晶体管MT的阈值电压Vtc,单元电流Icell自位线BL侧流向源极线SL侧。更具体而言,在阈值电压Vtc低于电压VCGRV,存储单元晶体管MT处于接通状态的情形时,即,程序尚未结束的情形时,单元电流Icell在对应的感应放大器单元SAU中流动。相对于此,在阈值电压Vtc高于电压VCGRV,存储单元晶体管MT处于断开状态的情形时,即,程序已结束的情形时,存储单元晶体管MT成为断开状态,单元电流Icell不在对应的感应放大器单元SAU中流动。
另一方面,在锁存电路SDL中保持有“1”数据即“H”数据的情形时,晶体管43成为接通状态,对晶体管42经由节点SRCGND施加例如电压VSS。由此,对位线BL(“lockout”)施加例如电压VSS。
在时刻t3中,控制电路5将信号HLL设为“H”电平。更具体而言,对晶体管45的栅极施加电压VHLL(例如4V),将晶体管45设为接通状态。由此,对节点SEN施加电压VSENP(例如2.5V)。
接着,在节点SEN充电结束后,控制电路5将信号HLL设为“L”电平,将晶体管45设为断开状态。
在时刻t4中,控制电路5将信号LPC设为“H”电平,将预充电电路30的晶体管31设为接通状态。由此,对总线LBUS施加电压VHLB(例如2.5V)。接着,在总线LBUS充电结束后,控制电路5将信号LPC设为“L”电平,将晶体管31设为断开状态。
在时刻t5中,控制电路5在锁存电路SDL中,将信号STL设为“H”电平,将晶体管60设为接通状态。由此,锁存电路SDL保持着“1”数据(“H”数据)的感应放大器单元SAU、即未施加预充电电压VPCH的感应放大器单元SAU的总线LBUS成为“H”电平。例如,在对于“A”电平的验证操作中,与“Er”、“B”~“E”、“G”电平对应的感应放大器单元SAU的总线LBUS成为“H”电平。
控制电路5是将总线开关32的信号DSW设为“H”电平,将晶体管33设为接通状态。接着,根据验证电平,将总线LBUS、与保持锁存电路XDL的数据的节点(例如节点LAT_X)或保持反演数据的节点(例如节点INV_X)中的任一个节点连接。
由此,将并非验证对象但施加预充电电压VPCH的感应放大器单元SAU的总线LBUS设为“H”电平。具体而言,在例如“A”电平的验证操作中,与“A”电平对应的锁存电路XDL保持着“1”数据,与“F”电平对应的锁存电路XDL保持着“0”数据。因而,通过将总线LBUS与保持锁存电路XDL的反演数据的节点(例如节点INV_X)连接,与“A”电平对应的感应放大器单元SAU的总线LBUS成为“L”电平,且与“F”电平对应的感应放大器单元SAU的总线LBUS成为“H”电平。
而且,例如在“F”电平的验证操作中,通过将总线LBUS与保持锁存电路XDL的数据的节点(例如节点LAT_X)连接,与“A”电平对应的感应放大器单元SAU的总线LBUS成为“H”电平,且与“F”电平对应的感应放大器单元SAU的总线LBUS成为“L”电平。因此,验证对象的感应放大器单元SAU(图12的参照符号(A1))的总线LBUS成为“L”电平,并非验证操作对象的感应放大器单元SAU(图12的参照符号(A2))的总线LBUS成为“H”电平。
在时刻t6中,控制电路5将信号LSL设为“H”电平,将晶体管50设为接通状态。在总线LBUS为“L”电平的情形时,晶体管49成为断开状态。由此,成为验证操作对象的感应放大器单元SAU的节点SEN维持“H”电平、即电压VSENP(2.5V)(A1)。另一方面,在总线LBUS为“H”电平的情形时,晶体管49成为接通状态。由此,并非验证操作对象的感应放大器单元SAU的节点SEN成为“L”电平(A2)。
在时刻t7中,控制电路5将信号XXL设为“H”电平。即,控制电路5对晶体管44的栅极施加电压VXXL(例如1.0V+Vtn),将晶体管44设为接通状态。最终,在成为验证操作对象的感应放大器单元SAU中,利用晶体管44箝位的电压(例如1V)自节点SEN施加至节点SCOM。而且,在并非验证操作对象的感应放大器单元SAU中,因节点SEN为“L”电平,故未被施加电压。
此时,在成为验证操作对象的感应放大器单元SAU、即与位线BL(“pre-charge”)对应的感应放大器单元SAU中,当成为验证操作对象的存储单元晶体管MT处于接通状态时,单元电流Icell自感应放大器单元SAU流向位线BL(“pre-charge”)。因此,节点SEN的电压较大地下降。另一方面,当成为验证操作对象的存储单元晶体管MT处于断开状态时,单元电流Icell几乎不自感应放大器单元SAU流向位线BL(“pre-charge”)。因此,节点SEN的电压几乎不下降。
在时刻t8中,控制电路5将信号XXL设为“L”电平,将晶体管44设为断开状态。
在时刻t9中,控制电路5将信号LPC设为“H”电平,将晶体管31设为接通状态。由此,对总线LBUS施加电压VHLB(例如2.5V)。接着,在总线LBUS充电结束后,控制电路5将信号LPC设为“L”电平,将晶体管31设为断开状态。
在时刻t10中,控制电路5将信号STB设为“H”电平,将晶体管48设为接通状态。
在成为验证操作对象的感应放大器单元SAU中,当节点SEN的电压低于感应判定阈值、即晶体管47的阈值电压时,晶体管47成为断开状态。由此,总线LBUS的电压几乎不下降。最终,总线LBUS保持“1”数据(“H”数据)。另一方面,当节点SEN的电压高于感应判定阈值时,晶体管47成为接通状态。由此,总线LBUS的电压较大地下降。最终,总线LBUS保持“0”数据(“L”数据)。而且,在并非验证操作对象的感应放大器单元SAU中,因节点SEN为“L”电平,故晶体管47成为断开状态。由此,总线LBUS保持“1”数据。
即,在对应的存储单元晶体管MT为验证操作对象的情形时,已通过验证操作的总线LBUS保持“0”数据,验证操作失败的总线LBUS保持“1”数据。而且,在对应的存储单元晶体管MT并非验证操作对象的情形时,总线LBUS保持“1”数据。
在时刻t11中,控制电路5将信号STB设为“L”电平,将晶体管47设为断开状态。而且,控制电路5将总线LBUS的数据存储在锁存电路SDL中。例如,控制电路5在锁存电路SDL中,将信号SLL设为“H”电平,将晶体管66设为断开状态,将信号STL设为“H”电平,将晶体管60设为接通状态,由此,将总线LBUS保持的数据载入至节点LAT_S。由此,在成为验证操作对象的感应放大器单元SAU的锁存电路SDL中,当已通过验证操作时,存储“0”数据,当验证操作失败时,存储“1”数据。在并非验证操作对象的感应放大器单元SAU的锁存电路SDL中存储“1”数据。
在时刻t12~t13中,进行恢复操作,使验证操作结束。
在验证操作结束后,控制电路5进行存储在锁存电路SDL中的数据的反演数据与锁存电路ADL的数据的OR运算,且将其结果存储在锁存电路ADL中。由此,将锁存电路ADL的数据更新。
另外,所述验证操作也可以适用于数据的读出操作。
1.4.4关于写入操作的具体例
对于本实施方式的写入操作,更具体地进行说明。图13及图14是表示以通过将程序操作与验证操作的组合重复进行19次而将数据写入的情形为例。以下,将该重复操作称为「循环」。
在图13中,表示各循环中所进行的验证操作的目标电平。如图所示,在第1次及第2次的循环中,验证仅以“A”电平为对象进行。即,在验证操作时对选择字线WL施加电压VfyA,而不施加电压VfyB~VfyG。在接着第3次及第4次的循环中,验证操作以“A”电平与“B”电平为对象进行。即,在验证操作时对选择字线WL依次地施加电压VfyA及VfyB,而不施加电压VfyC~VfyG。
在第5次及第6次的循环中,验证操作以“A”电平、“B”电平、及“C”电平为对象进行。即,在验证操作时对选择字线WL依次地施加电压VfyA,VfyB、及VfyC,而不施加电压VfyD~VfyG。接着,将“A”电平作为对象的验证操作在第6次循环结束。其原因在于,统计性地要求例如以6次的循环次数,对于“A”电平的程序可大致结束。
而且,在第7次及第8次的循环中,验证操作以“B”电平、“C”电平、及“D”电平为对象进行。即,在验证操作时对选择字线WL依次地施加电压VfyB、VfyC、及VfyD。接着,将“B”电平作为对象的验证操作在第8次写入操作结束。
进而,在第9次及第10次的循环中,验证操作以“C”电平、“D”电平、及“E”电平为对象进行。即,在验证操作时对选择字线WL依次地施加电压VfyC、VfyD、及VfyE。接着,将“C”电平作为对象的验证操作在第10次循环结束。
以下,以同样的方式进行到“G”电平的写入为止,循环重复进行最多19次。
即,对于“A”电平的验证操作以第1次到第6次的循环进行。对于“B”电平的验证操作以第3次到第8次的循环进行。对于“C”电平的验证操作以第5次到第10次的循环进行。对于“D”电平的验证操作以第7次到第12次的循环进行。对于“E”电平的验证操作以第9次到第14次的循环进行。对于“F”电平的验证操作以第11次到第16次的循环进行。对于“G”电平的验证操作以第14次到第19次的循环进行。
图14是对应于图13地表示各循环中所进行的程序操作中的与写入的目标电平相应的位线BL的状态。在图14中,成为“1”的记数表示将“1”数据赋予至对应的位线BL(“1”程序),成为“0”的记数表示赋予“0”数据(“0”程序)。
如图所示,在应预先将存储单元晶体管MT的阈值电压维持为“Er”电平的情形时,遍及整个循环地对位线BL赋予“1”数据。即,在写入操作期间,始终将选择晶体管ST1设为截止状态。
对于阈值电压的目标电平为“A”电平时、即应使阈值电压自“Er”电平中的值上升至“A”电平中的值的存储单元晶体管MT,在第1次到第6次的循环中进行“0”程序操作。此情形对应于进行对于“A”电平的验证操作的循环。在验证通过之前,对位线BL赋予“0”数据,且在通过之后,赋予“1”数据。而且,即便在程序操作已结束的第7次以后的循环中,也对位线BL赋予“1”数据,禁止进行写入。
对于目标电平为“B”电平时、即应使阈值电压自“Er”电平中的值上升至“B”电平中的值的存储单元晶体管MT,在第1次到第8次的循环中可进行“0”程序操作。
以同样的方式,进行“C”~“G”电平为止的程序操作。
将以上操作中的各布线的电位情况表示于图15中。图15是表示第1次~第3次、第7次、及第11次的循环中,选择字线WL的电位、写入“Er”~“G”电平的数据的位线BL(以下,记作位线BL(“Er”)~BL(“G”))的电位、及感应放大器单元SAU中的信号STB的电位的时间变化。
如图所示,在第1次的循环中,对位线BL(“A”)~BL(“G”)进行“0”程序。即,对选择字线WL施加电压VPGM,对位线BL(“Er”)施加例如2.5V,对位线BL(“A”)~BL(“G”)施加例如电压VSS。接着,进行对于“A”电平的验证操作。即,对选择字线WL施加验证电压VfyA。此时,对位线BL(“A”)及BL(“F”)施加预充电电压VPCH(例如0.5V)。
在第2次的循环中,对于对第1次的“A”电平的验证操作已失败的位线BL(“A”)及位线BL(“B”)~BL(“G”)进行“0”程序。此时,使对选择字线WL施加的电压VPGM升压。接着,与第1次同样地执行对于“A”电平的验证操作。
在第3次的循环中,与第2次同样地,对于对“A”电平的验证操作已失败的位线BL(“A”)及位线BL(“B”)~BL(“G”)进行“0”程序。此时,使对选择字线WL施加的电压VPGM升压。接着,与第1及第2次同样地,首先执行对于“A”电平的验证操作。接着,执行对于“B”电平的验证操作。在对于“B”电平的验证操作中,对选择字线WL施加验证电压VfyB。此时,对位线BL(“B”)及BL(“E”)施加预充电电压VPCH(例如0.5V)。
重复进行同样的处理,在第7次的循环中,对验证已失败的位线BL(“B”)及BL(“C”)、及位线BL(“D”)~BL(“G”)进行“0”程序。此时,使对选择字线WL施加的电压VPGM自未图示的第6次程序操作进行升压。接着,进行对于(“B”)~(“D”)电平的验证操作。在对于“B”电平的验证操作中,对选择字线WL施加验证电压VfyB。此时,对位线BL(“B”)及BL(“E”)施加预充电电压VPCH(例如0.5V)。在对于“C”电平的验证操作中,对选择字线WL施加验证电压VfyC。此时,对位线BL(“C”)及BL(“D”)施加预充电电压VPCH(例如0.5V)。在对于“D”电平的验证操作中,对选择字线WL施加验证电压VfyD。此时,对位线BL(“C”)及BL(“D”)施加预充电电压VPCH(例如0.5V)。
而且,在第11次的循环中,对于验证已失败的位线BL(“D”)及BL(“E”)、及位线BL(“F”)及BL(“G”)进行“0”程序。此时,使对选择字线WL施加的电压VPGM自未图示的第10次的程序操作进行升压。接着,进行对于(“D”)~(“F”)电平的验证操作。在对于“D”电平的验证操作中,对选择字线WL施加验证电压VfyD。此时,对位线BL(“C”)及BL(“D”)施加预充电电压VPCH(例如0.5V)。在对于“E”电平的验证操作中,对选择字线WL施加验证电压VfyE。此时,对位线BL(“B”)及BL(“E”)施加预充电电压VPCH(例如0.5V)。在对于“F”电平的验证操作中,对选择字线WL施加验证电压VfyF。此时,对位线BL(“A”)及BL(“F”)施加预充电电压VPCH(例如0.5V)。
根据所述情况,若着眼于例如位线BL(“A”),则位线BL(“A”)在进行对于“A”电平的验证操作的第1次~第6次的循环、及进行对于“F”电平的验证操作的11~第16次的循环中,被施加预充电电压VPCH,且在第7~第10次及第17~第19次的循环中不被施加预充电电压VPCH。
1.4.5关于锁存电路所保持的数据的具体例
接着,对于数据的写入操作中锁存电路XDL、ADL、BDL、CDL、及SDL所保持的数据的具体例,尤其着眼于第1次循环,使用图16至图18进行说明。图16至图18是表示锁存电路XDL、ADL、BDL、CDL、及SDL所保持的数据的图。
首先,如图16的表格(a)所示,锁存电路XDL自外部控制器经由数据线IO传输程序数据(3位数据)。锁存电路XDL将程序数据的中位经由总线LBUS传输至锁存电路BDL,将高位传输至锁存电路CDL,且一直保持低位。接着,感应放大器单元SAU在感应放大器部SA中,进行锁存电路XDL、BDL、及CDL的数据的AND运算,且将其结果存储在锁存电路ADL中(ADL=XDL×BDL×CDL)。另外,锁存电路ADL的数据也可以由外部控制器赋予。
接着,如表格(b)所示,感应放大器单元SAU将锁存电路ADL的反演数据存储在锁存电路SDL中(SDL=/ADL)。
最终,在与“Er”电平的数据对应的锁存电路SDL中存储“0”数据。而且,在与“A”~“G”电平的数据对应的锁存电路SDL中存储“1”数据。
接着,根据锁存电路SDL的数据执行第1次程序。即,在与“Er”电平的数据对应的感应放大器单元SAU中,执行“1”程序,在与“A”~“G”电平的数据对应的感应放大器单元SAU中,执行“0”程序。
接着,如图17的表格(c)所示,进行用以执行对于“A”电平的验证操作的准备。更具体而言,在对于“A”电平的验证操作的情形时,控制电路5使用感应放大器部SA,进行锁存电路BDL的数据与锁存电路CDL的反演数据的AND运算,且将其结果的反演数据存储在锁存电路SDL中(SDL=/(BDL×(/CDL))。
最终,在与“A”电平及“F”电平的数据对应的锁存电路SDL中存储“0”数据,且在与其他电平的数据对应的锁存电路SDL中存储“1”数据。
接着,基于锁存电路SDL的数据,进行对于“A”电平的验证操作。即,对于连接于与“A”电平及“F”电平的数据对应的感应放大器单元SAU的位线BL(“pre-charge”)施加预充电电压VPCH,对于连接于与其他电平的数据对应的感应放大器单元SAU的位线BL(“lockout”)不施加预充电电压VPCH。
接着,如表格(d)所示,将对于“A”电平的验证操作的结果存储在锁存电路SDL中(SDL=LBUS=/SEN)。
最终,在与“A”电平的数据对应的锁存电路SDL中,当已通过验证操作时存储“0”数据,且在验证操作已失败时存储“1”数据。接着,在与其他电平的数据对应的锁存电路SDL中存储“1”数据。
接着,如图18的表格(e)所示,感应放大器单元SAU在感应放大器部SA中,进行锁存电路ADL的数据与SDL的反演数据的OR运算,且将其结果存储在锁存电路ADL中(ADL=ADL+(/SDL),且“+”表示OR运算)。
最终,在与“A”电平的数据对应的锁存电路ADL中,当已通过对于“A”电平的验证操作时存储“1”数据,且在验证操作已失败时存储“0”数据。
接着,如表格(f)所示,进行用以执行第2次程序操作的准备。感应放大器单元SAU将锁存电路ADL的反演数据存储在锁存电路SDL中。
最终,在与“Er”电平的数据对应的锁存电路SDL中存储“0”数据。在与“A”电平的数据对应的锁存电路SDL中,当已通过对于“A”电平的验证操作时存储“0”数据,且当对于“A”电平的验证操作已失败时存储“1”数据。在与其他电平的数据对应的锁存电路SDL中存储“1”数据。
接着,根据锁存电路SDL的数据执行第2次程序。即,在与“Er”电平的数据对应的感应放大器单元SAU中,执行“1”程序。在与“A”电平的数据对应的感应放大器单元SAU中,当已通过对于“A”电平的验证操作时执行“1”程序,且当对于“A”电平的验证操作已失败时,执行“0”程序。在与“B”~“G”电平的数据对应的感应放大器单元SAU中,执行“0”程序。
接着,与第1次循环同样地进行对于“A”电平的验证操作。
以下,以同样的方式,进行第3次循环以后的写入操作。例如,在第3次循环中,进行对于“A”电平与“B”电平的验证操作。该情形时,首先对于“A”电平进行验证操作,且使用其结果将锁存电路ADL的数据更新。接着,进行对于“B”电平的验证操作,且使用其结果,进而进行锁存电路ADL的数据更新。即,每次验证操作时,将锁存电路ADL的数据更新即可。
1.5关于本实施方式的效果
若为本实施方式的构成,则可提升处理能力。对于本效果,以下进行说明。
例如存在以下的方法(选择预充电),该方法是在可保持4值(2位)以上数据的存储单元晶体管MT中,当进行验证操作时,仅对于连接于与成为验证操作对象的写入电平对应的存储单元晶体管MT的位线BL施加预充电电压,进行验证操作。该情形时,在感应放大器单元SAU中,基于写入数据,控制有无对位线BL的预充电电压。
而且,在感应放大器单元SAU中,存在为减少内置的锁存电路的个数,而使用于感应放大器单元SAU与外部控制器的数据收发的锁存电路XDL保持写入数据的一部分(例如相当于1位的数据)的情形。其中,在将多个感应放大器单元SAU与多个锁存电路XDL经由1个总线DBUS共通地连接时,感应放大器单元SAU与锁存电路XDL之间的信号收发是串行地进行。因此,感应放大器单元SAU与锁存电路XDL之间的数据收发大多慢于感应放大器单元SAU中的感应放大器部SA与锁存电路的信号收发。
因此,在利用选择预充电进行验证操作的情形时,若锁存电路XDL保持写入数据的一部分,则感应放大器单元SAU为了决定是否施加预充电电压,而必须在每次验证操作时对锁存电路XDL进行存取。更具体而言,感应放大器单元SAU是进行感应放大器单元SAU内部的锁存电路的数据与锁存电路XDL的数据的运算。接着,根据其结果,控制是否施加预充电电压。因此,至开始施加预充电电压为止的处理时间变长,从而验证操作的处理速度变慢。
相对于此,在本实施方式的构成中,在数据对可保持4值(2位)以上数据的存储单元晶体管MT的写入操作中,锁存电路XDL保持写入数据的一部分。接着,在进行利用选择预充电的验证操作的情形时,感应放大器单元SAU根据感应放大器单元SAU内部的锁存电路中所保持的数据,决定是否施加预充电电压。因而,可将对于锁存电路XDL的存取省略,故可使验证操作的处理速度提升。因而,可提升半导体存储装置的处理能力。
进而,在本实施方式的构成中,使用感应放大器单元SAU内部的锁存电路所保持的写入数据的一部分进行运算。例如在3位(8值)数据写入中,当感应放大器单元SAU内部的锁存电路保持相当于2位的数据时,感应放大器单元SAU进行2位的数据运算。因此,对于写入的数据的位数,可将进行运算处理的位数减少,故可使处理速度提升。因而,可使半导体存储装置的处理能力提升。
进而,在本实施方式的构成中,可使感应放大器单元SAU中所含的写入数据保持用的锁存电路的个数少于写入的数据的位数。因而,可将电路简化,从而抑制芯片面积的增加。
2.第2实施方式
接着,对第2实施方式进行说明。不同于第1实施方式之处是在验证操作中,根据锁存电路ADL、BDL、及CDL的保持数据的运算结果决定施加预充电电压的位线BL的方面。以下,仅对于与第1实施方式不同的方面进行说明。
2.1关于验证操作中的锁存电路SDL的保持数据
首先,对于验证操作时锁存电路SDL所保持的数据,使用图19进行说明。
如图所示,在锁存电路SDL中被存储锁存电路ADL、BDL、及CDL的保持数据的运算结果。即,与存储在锁存电路BLD中的中位数据、存储在锁存电路CDL中的高位数据、及存储在锁存电路ADL中的程序数据的反演数据相应的结果被存储在锁存电路SDL中。
更具体而言,在对于“A”电平的验证操作中,在锁存电路SDL中存储成为逻辑运算式:SDL=/((/ADL)×BDL×(/CDL))的数据。在最初的对于“A”电平的验证操作中,在与“A”电平对应的所有的锁存电路ADL中存储有“0”数据。因此在与“A”电平对应的所有的锁存电路SDL中存储“0”数据。接着,在第2次以后的对于“A”电平的验证操作中,在前次的验证操作已失败的感应放大器单元SAU的锁存电路ADL中存储有“0”数据,在已通过验证操作的感应放大器单元SAU的锁存电路ADL中存储有“1”数据。因此,在前次的验证操作已失败的感应放大器单元SAU的锁存电路SDL中存储“0”数据,在已通过验证操作的感应放大器单元SAU的锁存电路SDL中存储“1”数据。而且,在对于“A”电平的验证操作中,在与“Er”、“B”~“E”、及“G”电平对应的锁存电路SDL中存储“1”数据,在与“F”电平对应的锁存电路SDL中存储“0”数据。
在对于“B”电平的验证操作中,在锁存电路SDL中存储成为逻辑运算式:SDL=/((/ADL)×(/BDL)×CDL)的数据。因此,在最初的对于“B”电平的验证操作中,在与“B”电平对应的所有的锁存电路SDL中存储“0”数据。接着,在第2次以后的对于“B”电平的验证操作中,在前次的验证操作已失败的感应放大器单元SAU的锁存电路SDL中存储“0”数据,在已通过验证操作的感应放大器单元SAU的锁存电路SDL中存储“1”数据。而且,在对于“B”电平的验证操作中,在与“Er”、“A”、“C”、“D”、“F”及“G”电平对应的锁存电路SDL中存储“1”数据,在与“E”电平对应的锁存电路SDL中存储“0”数据。
在对于“C”电平的验证操作中,在锁存电路SDL中存储成为逻辑运算式:SDL=/((/ADL)×(/BDL)×(/CDL))的数据。因此,在最初的对于“C”电平的验证操作中,在与“C”电平对应的所有的锁存电路SDL中存储“0”数据。接着,在第2次以后的对于“C”电平的验证操作中,在前次的验证操作已失败的感应放大器单元SAU的锁存电路SDL中存储“0”数据,在已通过验证操作的感应放大器单元SAU的锁存电路SDL中存储“1”数据。而且,在对于“C”电平的验证操作中,在与“Er”~“B”、及“E”~“G”电平对应的锁存电路SDL中存储“1”数据,在与“D”电平对应的锁存电路SDL中存储“0”数据。
在对于“D”电平的验证操作中,在锁存电路SDL中存储成为与“C”电平相同的逻辑运算式:SDL=/((/ADL)×(/BDL)×(/CDL))的数据。因此,在最初的对于“D”电平的验证操作中,在与“D”电平对应的所有的锁存电路SDL中存储“0”数据。接着,在第2次以后的对于“D”电平的验证操作中,在前次的验证操作已失败的感应放大器单元SAU的锁存电路SDL中存储“0”数据,在已通过验证操作的感应放大器单元SAU的锁存电路SDL中存储“1”数据。而且,在对于“D”电平的验证操作中,在与“Er”~“C”、及“E”~“G”电平对应的锁存电路SDL中存储“1”数据。更具体而言,“C”电平及“D”电平是在锁存电路BDL及CDL中存储相同值的数据,但在对于“D”电平的验证操作中,在与“C”电平对应的锁存电路ADL中存储有“1”数据。因此,在与“C”电平对应的锁存电路SDL中存储“1”数据。
在对于“E”电平的验证操作中,在锁存电路SDL中存储成为与“B”电平相同的逻辑运算式:SDL=/((/ADL)×(/BDL)×CDL)的数据。因此,在最初的对于“E”电平的验证操作中,在与“E”电平对应的所有的锁存电路SDL中存储“0”数据。接着,在第2次以后的对于“E”电平的验证操作中,在前次的验证操作已失败的感应放大器单元SAU的锁存电路SDL中存储“0”数据,在已通过验证操作的感应放大器单元SAU的锁存电路SDL中存储“1”数据。而且,在对于“E”电平的验证操作中,在与“Er”~“D”、“F”及“G”电平对应的锁存电路SDL中存储“1”数据。
在对于“F”电平的验证操作中,在锁存电路SDL中存储成为与“A”电平相同的逻辑运算式:SDL=/((/ADL)×BDL×(/CDL))的数据。因此,在最初的对于“F”电平的验证操作中,在与“F”电平对应的所有的锁存电路SDL中存储“0”数据。接着,在第2次以后的对于“F”电平的验证操作中,在前次的验证操作已失败的感应放大器单元SAU的锁存电路SDL中存储“0”数据,在已通过验证操作的感应放大器单元SAU的锁存电路SDL中存储“1”数据。而且,在对于“F”电平的验证操作中,在与“Er”~“E”、及“G”电平对应的锁存电路SDL中存储“1”数据。
在对于“G”电平的验证操作中,在锁存电路SDL中存储成为逻辑运算式:SDL=/((/ADL)×BDL×CDL)的数据。因此,在最初的对于“G”电平的验证操作中,在与“G”电平对应的所有的锁存电路SDL中存储“0”数据。接着,在第2次以后的对于“G”电平的验证操作中,在前次的验证操作已失败的感应放大器单元SAU的锁存电路SDL中存储“0”数据,在已通过验证操作的感应放大器单元SAU的锁存电路SDL中存储“1”数据。而且,在对于“G”电平的验证操作中,在与“Er”~“F”电平对应的锁存电路SDL中存储“1”数据。
2.2关于写入操作的具体例
对于本实施方式的写入操作,更具体地进行说明。本实施方式中的程序操作与验证操作的组合与第1实施方式的图13及图14相同。
图20是表示本实施方式中的各布线的电位的情况。图20是表示在第1次~第3次、第7次、及第11次循环中,选择字线WL的电位、位线BL(“Er”)~BL(“G”)的电位、及感应放大器单元SAU中的信号STB的电位的时间变化。
如图所示、第1次循环中的程序操作及验证操作是与第1实施方式的图15相同。
在第2次循环中,对于第1次的对于“A”电平的验证操作已失败的位线BL(“A”)及位线BL(“B”)~BL(“G”)进行“0”程序操作。接着,执行对于“A”电平的验证操作。此时,对第1次循环的对于“A”电平的验证操作已失败的位线BL(“A”)、及位线BL(“F”)施加预充电电压VPCH(例如0.5V)。
在第3次循环中,与第2次循环同样地,对于对“A”电平的验证操作已失败的位线BL(“A”)及位线BL(“B”)~BL(“G”)进行“0”程序。接着,与第2次循环同样地,首先执行对于“A”电平的验证操作。此时,对于第2次循环的对于“A”电平的验证操作已失败的位线BL(“A”)、及位线BL(“F”)施加预充电电压VPCH(例如0.5V)。接着,执行对于“B”电平的验证操作。此时,对位线BL(“B”)及BL(“E”)施加预充电电压VPCH(例如0.5V)。
重复进行同样的处理,在第7次循环中,对于验证已失败的位线BL(“B”)及BL(“C”)、及位线BL(“D”)~BL(“G”)进行“0”程序。接着,依次地进行对于(“B”)~(“D”)电平的验证操作。在对于“B”电平的验证操作中,对于第6次循环的对“B”电平的验证操作已失败的位线BL(“B”)、及位线BL(“E”)施加预充电电压VPCH(例如0.5V)。在对于“C”电平的验证操作中,对于第6次循环的对“C”电平的验证操作已失败的位线BL(“C”)及BL(“D”)施加预充电电压VPCH(例如0.5V)。在对于“D”电平的验证操作中,对位线BL(“D”)施加预充电电压VPCH(例如0.5V)。
而且,在第11次循环中,对于验证已失败的位线BL(“D”)及BL(“E”)、及位线BL(“F”)及BL(“G”)进行“0”程序。接着,进行对于(“D”)~(“F”)电平的验证操作。在对于“D”电平的验证操作中,对于第10次循环的对“D”电平的验证操作已失败的位线BL(“D”)施加预充电电压VPCH(例如0.5V)。在对于“E”电平的验证操作中,对于第10次循环的对“E”电平的验证操作已失败的位线BL(“E”)施加预充电电压VPCH(例如0.5V)。在对于“F”电平的验证操作中,对位线BL(“F”)施加预充电电压VPCH(例如0.5V)。
根据所述情况,例如若着眼于位线BL(“A”)及BL(“F”),则位线BL(“A”)在进行对于“A”电平的验证操作的第1次~第6次循环中,被施加预充电电压VPCH。其中,在第2次~第6次循环中,对于前次的对“A”电平的验证操作已失败的位线BL(“A”)施加预充电电压VPCH。
位线(“F”)是在进行对于“A”电平的验证操作的第1次~第6次循环、及进行对于“F”电平的验证操作的第11~第16次循环中,被施加预充电电压VPCH。其中,在第12次~第16次循环中,对于前次的对“F”电平的验证操作已失败的位线BL(“F”)施加预充电电压VPCH。
2.3关于本实施方式的效果本实施方式的构成可获得与第1实施方式相同的效果。
进而,在本实施方式的构成中,对于已通过验证操作的位线BL在下一次以后的验证操作中,不对位线BL施加预充电电压。因此,可降低半导体存储装置的耗电。
3.变化例等
所述实施方式的半导体存储装置包括可设定为至少4个阈值电压中的任一个阈值电压的第1存储单元(MT@图2)、连接于第1存储单元的第1位线(BL(“A”)@图15)、连接于第1存储单元的栅极的字线(选择WL@图15)、及连接于第1位线的第1感应放大器(SAU@图5)。在将数据写入至第1存储单元的程序操作之后,进行确认第1存储单元的阈值电压的验证操作。在对字线施加第1电压(VfyA@图15)的第1验证操作(循环第1次@图15)中,第1感应放大器对第1位线施加充电电压(VPCH@图15)。在对字线施加比第1电压高的第2电压(VfyB@图15)的第2验证操作(循环第3次的”B”验证@图15)中,第1感应放大器不对第1位线施加充电电压。在对字线施加比第2电压高的第3电压(VfyF@图15)的第3验证操作(循环第11次的”F”验证@图15)中,第1感应放大器对第1位线施加充电电压。
可通过适用所述实施方式,而提高一种能够提升处理能力的半导体存储装置。另外,实施方式不仅限于上述说明的方式,可进行各种变化。
例如,在所述实施方式中,亦可以使用电压感应方式的感应放大器。
进而,在所述实施方式中,记载了使用感应放大器部SA的AND运算及OR运算,但对于运算时的晶体管的控制并非限于所述情况。例如,亦可以同时地进行图7的步骤1及步骤3中数据自锁存电路BDL及CDL对总线LBUS的载入。
进而,亦可以适用于与所述实施方式不同的三维堆叠型NAND型闪速存储器、或平面型NAND型闪速存储器。进而,不仅限于NAND型闪速存储器,亦可以在使用可保持4值(2位)以上数据的存储组件的半导体存储装置中适用。
进而,所述实施方式中的所谓「连接」也包括使例如晶体管或电阻等其他任意组件插入至中间而间接地连接的状态。
对本发明的若干个实施方式进行了说明,但这些实施方式只是作为示例提示,而并非意图限定发明的范围。这些实施方式可利用其它的各种方式实施,且在不脱离发明精神的范围内可进行各种省略、置换、变更。这些实施方式或其变化与包含于发明的范围或精神中同样地包含于专利申请范围中所记载的发明及其均等的范围中。
另外,在本发明相关的各实施方式中,也可如下所述。例如存储器单元晶体管MT可保持2位(4值)数据,且将保持4值中的任一个值时的阈值电平由低向高地设为E电平(擦除电平)、A电平、B电平、及C电平时,
(1)在读出操作中,对A电平的读出操作中所选择的字线施加的电压为例如0V~0.55V之间。也可以不限于此,而设为0.1V~0.24V、0.21V~0.31V、0.31V~0.4V、0.4V~0.5V、及0.5V~0.55V中的任一个之间。
对B电平的读出操作中所选择的字线施加的电压为例如1.5V~2.3V之间。也可以不限于此,而设为1.65V~1.8V、1.8V~1.95V、1.95V~2.1V、及2.1V~2.3V中的任一个之间。
对C电平的读出操作中所选择的字线施加的电压为例如3.0V~4.0V之间。也可以不限于此,而设为3.0V~3.2V、3.2V~3.4V、3.4V~3.5V、3.5V~3.6V、及3.6V~4.0V中的任一个之间。
作为读出操作的时间(tR),例如可设为25μs~38μs、38μs~70μs、或70μs~80μs之间。
(2)写入操作是如上所述地包含程序操作与验证操作。在写入操作中,对程序操作时所选择的字线最初施加的电压为例如13.7V~14.3V之间。也可以不限于此,而设为例如13.7V~14.0V及14.0V~14.6V中的任一个之间。
也可以改变对写入第奇数个字线时所选择的字线最初施加的电压、及对写入第偶数个字线时所选择的字线最初施加的电压。
在将程序操作设为ISPP方式(Incremental Step Pulse Program)时,作为升压的电压,例如可列举0.5V左右。
作为施加至非选择字线的电压,例如也可为6.0V~7.3V之间。不仅限于该情形,例如既可设为7.3V~8.4V之间,也可以设为6.0V以下。
非选择的字线可以是第奇数个字线,或者是第偶数个字线,且也可以将所施加的通过电压改变。
作为写入操作的时间(tProg),例如也可以设为1700μs~1800μs、1800μs~1900μs、或1900μs~2000μs之间。
(3)在擦除操作中,对形成在半导体衬底上部且所述存储单元配置在上方的阱最初施加的电压为例如12V~13.6V之间。不仅限于该情形,例如也可为13.6V~14.8V、14.8V~19.0V、19.0~19.8V、19.8V~21V之间。
作为擦除操作的时间(tErase),例如也可设为3000μs~4000μs、4000μs~5000μs、或4000μs~9000μs之间。
(4)存储单元的结构具有在半导体衬底(硅衬底)上隔着膜厚为4~10nm的隧道绝缘膜而配置的电荷存储层。该电荷存储层可设为膜厚为2~3nm的SiN、或SiON等的绝缘膜与膜厚为3~8nm的多晶硅的堆叠结构。而且,在多晶硅中也可添加Ru等金属。在电荷存储层之上具有绝缘膜。该绝缘膜具有例如由膜厚为3~10nm的下层High-k膜与膜厚为3~10nm的上层High-k膜夹着的膜厚为4~10nm的硅氧化膜。High-k膜可列举HfO等。而且,硅氧化膜的膜厚可设为厚于High-k膜的膜厚。在绝缘膜上隔着膜厚为3~10nm的功函数调整用的材料形成有膜厚为30nm~70nm的控制电极。此处,功函数调整用的材料是TaO等金属氧化膜、TaN等金属氮化膜。控制电极中可采用W等。
而且,可在存储单元间形成气隙。
[符号说明]
1 NAND型闪速存储器
2 存储单元阵列
3 行解码器
4 感应放大器
5 控制电路
10 半导体衬底
11~14 导电层
15~17 绝缘膜
18、21、24 金属布线层
19、22 杂质扩散层
20、23 接点插塞
30 预充电电路
31、33、40~51、60~67、70~77、80~87、90~97 晶体管
32 总线开关
52 电容器组件