半导体存储装置的制作方法

文档序号:15619178发布日期:2018-10-09 21:54阅读:208来源:国知局

本申请享有以日本专利申请2017-56009号(申请日:2017年3月22日)为基础申请的优先权。本申请通过参照该基础申请而包含基础申请的全部内容。

本实施方式涉及一种半导体存储装置。



背景技术:

已知有存储单元三维地排列而成的nand(notand,与非)型闪速存储器。



技术实现要素:

本发明的实施方式提供一种高品质的半导体存储装置。

实施方式的半导体存储装置具备控制电路,所述控制电路是在对存储单元写入数据的情况下,进行对字线施加第1电压的第1编程,进行对字线施加比第1电压低的第2电压的第1编程验证,进行对字线施加比第1电压低且比第2电压高的第3电压的第2验证,在进行第1及第2验证之后,调整对位线施加的电压,进行第1编程、第1及第2验证,当完成第2验证时,进行对字线施加比第1电压高的第4电压的第2编程,当完成第2编程时,进行对字线施加比第4电压高的第5电压的第3编程。

附图说明

图1是存储系统的框图。

图2是nand型闪速存储器的框图。

图3是存储单元阵列的电路图。

图4是表示第1实施方式的半导体存储装置的读出放大器单元及其周边电路的电路图。

图5是第1实施方式的半导体存储装置的读出模块的电路图。

图6是表示第1实施方式的半导体存储装置的存储单元晶体管的阈值分布及数据的关系的图。

图7是表示第1实施方式的半导体存储装置的写入动作的概要的图。

图8是表示第1实施方式的半导体存储装置的编程动作的概要的波形图。

图9是表示第1实施方式的半导体存储装置的编程验证动作的概要的波形图。

图10是表示第1实施方式的半导体存储装置的写入动作的流程图。

图11是表示第1实施方式的半导体存储装置的写入动作的流程图。

图12是表示第1实施方式的半导体存储装置的写入动作的流程图。

图13是表示第1实施方式的半导体存储装置的写入动作时的脉冲的图。

图14是表示第1实施方式的比较例的半导体存储装置的编程次数与存储单元晶体管mt的阈值的变动的关系的图。

图15是表示第1实施方式的比较例的半导体存储装置的编程次数与存储单元晶体管mt的阈值的变动的关系的图。

图16是表示第1实施方式的半导体存储装置的编程次数与存储单元晶体管mt的阈值的变动的关系的图。

图17是表示第1实施方式的半导体存储装置的编程次数与存储单元晶体管mt的阈值的变动的关系的图。

图18是表示第1实施方式的变化例的半导体存储装置的读出放大器单元及其周边电路的电路图。

图19是第1实施方式的变化例的半导体存储装置的读出模块的电路图。

图20是表示第1实施方式的变化例的半导体存储装置的编程验证动作原理的图。

图21是表示第1实施方式的变化例的半导体存储装置的编程验证动作的概要的波形图。

图22是表示第1实施方式的变化例的半导体存储装置的组的判定方法的图。

图23是表示第1实施方式的变化例的半导体存储装置的写入动作时的脉冲的图。

图24是表示第2实施方式的半导体存储装置的存储单元晶体管的阈值分布及数据的关系的图。

图25是表示第2实施方式的半导体存储装置的写入动作的概要的图。

图26是表示第2实施方式的半导体存储装置的写入动作的流程图。

图27是表示第2实施方式的半导体存储装置的写入动作的流程图。

图28是表示第2实施方式的半导体存储装置的写入动作的流程图。

图29是表示第2实施方式的半导体存储装置的写入动作的流程图。

图30是表示第2实施方式的半导体存储装置的写入动作的流程图。

图31是表示第2实施方式的半导体存储装置的写入动作的流程图。

图32是表示第2实施方式的半导体存储装置的写入动作时的脉冲的图。

图33是表示第2实施方式的半导体存储装置的写入动作时的脉冲的图。

图34是表示第2实施方式的半导体存储装置的写入动作时的脉冲的图。

图35是表示第2实施方式的变化例的半导体存储装置的写入动作时的脉冲的图。

图36是表示第2实施方式的变化例的半导体存储装置的写入动作时的脉冲的图。

图37是表示第2实施方式的变化例的半导体存储装置的写入动作时的脉冲的图。

图38是表示第3实施方式的半导体存储装置的写入动作的流程图。

图39是表示第3实施方式的半导体存储装置的写入动作的流程图。

图40是表示第3实施方式的半导体存储装置的写入动作的流程图。

图41是表示第3实施方式的半导体存储装置的写入动作的流程图。

图42是表示第3实施方式的半导体存储装置的写入动作的流程图。

图43是表示第3实施方式的半导体存储装置的写入动作的流程图。

图44是表示第4实施方式的半导体存储装置的存储单元晶体管的阈值分布及数据的关系的图。

图45是表示第4实施方式的半导体存储装置的写入动作的概要的图。

图46是表示第4实施方式的半导体存储装置的写入动作的流程图。

图47是表示第4实施方式的半导体存储装置的写入动作的流程图。

图48是表示第4实施方式的半导体存储装置的写入动作的流程图。

图49是表示第4实施方式的半导体存储装置的写入动作的流程图。

图50是表示第4实施方式的半导体存储装置的写入动作的流程图。

图51是表示第4实施方式的半导体存储装置的写入动作的流程图。

图52是表示第4实施方式的半导体存储装置的写入动作的流程图。

图53是表示第4实施方式的半导体存储装置的写入动作的流程图。

图54是表示第4实施方式的半导体存储装置的写入动作的流程图。

图55是表示第4实施方式的半导体存储装置的写入动作的流程图。

图56是表示第4实施方式的半导体存储装置的写入动作的流程图。

图57是表示第4实施方式的半导体存储装置的写入动作时的脉冲的图。

图58是表示第4实施方式的半导体存储装置的写入动作时的脉冲的图。

图59是表示第4实施方式的半导体存储装置的写入动作时的脉冲的图。

图60是表示第4实施方式的半导体存储装置的写入动作时的脉冲的图。

图61是表示第4实施方式的半导体存储装置的写入动作时的脉冲的图。

图62是表示第4实施方式的变化例的半导体存储装置的写入动作时的脉冲的图。

图63是表示第4实施方式的变化例的半导体存储装置的写入动作时的脉冲的图。

图64是表示第4实施方式的变化例的半导体存储装置的写入动作时的脉冲的图。

图65是表示第4实施方式的变化例的半导体存储装置的写入动作时的脉冲的图。

图66是表示第4实施方式的变化例的半导体存储装置的写入动作时的脉冲的图。

图67是表示第5实施方式的半导体存储装置的写入动作的流程图。

图68是表示第5实施方式的半导体存储装置的写入动作的流程图。

图69是表示第5实施方式的半导体存储装置的写入动作的流程图。

图70是表示第5实施方式的半导体存储装置的写入动作的流程图。

图71是表示第5实施方式的半导体存储装置的写入动作的流程图。

图72是表示第5实施方式的半导体存储装置的写入动作的流程图。

图73是表示第5实施方式的半导体存储装置的写入动作的流程图。

图74是表示第5实施方式的半导体存储装置的写入动作的流程图。

图75是表示第5实施方式的半导体存储装置的写入动作的流程图。

图76是表示第5实施方式的半导体存储装置的写入动作的流程图。

图77是表示第5实施方式的半导体存储装置的写入动作的流程图。

具体实施方式

以下,参照附图对实施方式进行说明。在该说明时,在所有图中对共通部分标注共通的参照符号。以下,作为半导体存储装置,列举在半导体衬底上方积层多个存储单元晶体管而成的三维积层型nand型闪速存储器为例进行说明。

<1>第1实施方式

对第1实施方式的半导体存储装置进行说明。

<1-1>构成

<1-1-1>存储系统

首先,利用图1对包含第1实施方式的半导体存储装置的存储系统的构成进行说明。

如图1所示,存储系统1具备nand型闪速存储器(半导体存储装置)100及控制器200。也可通过例如控制器200与nand型闪速存储器100的组合而构成一个半导体装置。作为其例,可列举像sdtm卡那样的存储卡或ssd(solidstatedrive,固态驱动器)等。另外,存储系统1也可为还具备主机设备300的构成。

nand型闪速存储器100具备多个存储单元晶体管,将数据非易失地存储。nand型闪速存储器100的构成的详情将在下文进行叙述。

控制器200响应来自主机设备300的命令,对nand型闪速存储器100命令读出、写入、删除等。

控制器200具备主机接口电路(主机i/f)201、内置存储器(ram:randomaccessmemory)202、处理器(cpu:centralprocessingunit)203、缓冲存储器204、nand接口电路(nandi/f)205及错误校正电路(ecc(errorcorrectioncode)电路或ecc)206。

主机接口电路201经由控制器总线而与主机设备300连接,负责控制器200与主机设备300的通信。而且,主机接口电路201将从主机设备300接收到的命令及数据分别传输至cpu203及缓冲存储器204。主机接口电路201响应cpu203的命令而将缓冲存储器204内的数据向主机设备300传输。

nand接口电路205经由nand总线而与nand型闪速存储器100连接。而且,nand接口电路205负责nand型闪速存储器100与控制器200的通信。而且,nand接口电路205将从cpu203接收到的命令传输至nand型闪速存储器100。进而,nand接口电路205在写入数据时将缓冲存储器204内的写入数据向nand型闪速存储器100传输。进而,nand接口电路205在读出数据时将从nand型闪速存储器100读出的数据向缓冲存储器204传输。

nand总线执行按照nand接口的信号的收发。该信号的具体例是指令锁存使能信号cle、地址锁存使能信号ale、写入使能信号wen、读出使能信号ren、就绪/忙碌信号rbn及输入输出信号i/o。

信号cle及ale是向nand型闪速存储器100通知对于nand型闪速存储器100的输入信号i/o分别为指令及地址的信号。信号wen以“l(低(low))”电平被激活,且为用来将输入信号i/o取入至nand型闪速存储器100的信号。“激活”是指使信号(或逻辑)为有效(活动)状态,作为与此相对的术语,“否定”是指使信号(或逻辑)为无效(不活动)状态。信号ren也以“l”电平被激活,且为用来从nand型闪速存储器100读出输出信号i/o的信号。就绪/忙碌信号rbn是表示nand型闪速存储器100为就绪状态(可接收来自控制器200的命令的状态)还是忙碌状态(无法接收来自控制器200的命令的状态)的信号,“l”电平表示忙碌状态。输入输出信号i/o是例如8比特的信号。而且,输入输出信号i/o是在nand型闪速存储器100与控制器200之间收发的数据的实体,为指令、地址、写入数据及读出数据等。

cpu203对控制器200整体的动作进行控制。例如,cpu203在从主机设备300接收到写入命令时,发出基于nand接口电路205的写入命令。读出及删除时也同样。cpu203执行耗损平均等用来管理nand型闪速存储器100的各种处理。进而,cpu203执行各种运算。例如,执行数据的加密处理或随机化处理等。此外,在像所述那样主机设备300包含在存储系统1中的情况下,cpu203也负责存储系统1整体的动作。

ecc电路206执行数据的错误校正(ecc:errorcheckingandcorrecting)处理。也就是说,ecc电路206在写入数据时,基于写入数据产生奇偶校验。然后,ecc电路206在读出数据时,根据所述奇偶校验产生校正子而检测错误,并校正错误。此外,cpu203也可具有ecc电路206的功能。

内置存储器202是例如dram(dynamicrandomaccessmemory,动态随机存取存储器)等半导体存储器,用作cpu203的作业区域。而且,内置存储器202存储用来管理nand型闪速存储器100的固件或各种管理表格等。

<1-1-2>nand型闪速存储器

接下来,利用图2对nand型闪速存储器100的构成进行说明。

如图2所示,nand型闪速存储器100具备周边电路110及核心电路120。

核心电路120具备存储单元阵列130、读出放大器单元140及行解码器150。

存储单元阵列130具备多个非易失性存储单元晶体管(也简单记载为存储单元),多个非易失性存储单元晶体管分别与字线及位线建立关联。而且,存储单元阵列130具备多个非易失性存储单元晶体管的集合即多个(图2的例子中为3个)区块blk(blk0、blk1、blk2)。

数据的删除能以区块blk为单位或者以比区块blk小的单位执行。关于删除方法,例如记载在题为“非易失性半导体存储装置”的在2011年9月18日提出申请的美国专利申请13/235,389号中。另外,记载在题为“非易失性半导体存储装置”的在2010年1月27日提出申请的美国专利申请12/694,690号中。进而,记载在题为“非易失性半导体存储装置及其数据删除方法”的在2012年5月30日提出申请的美国专利申请13/483,610号中。这些专利申请的全部内容通过参照而引用在本申请的说明书中。

各个区块blk具备存储单元晶体管串联连接而成的nand串131的集合即多个(图2的例子中为4个)串单元su(su0、su1、su2、su3)。当然,存储单元阵列130内的区块数或1个区块blk内的串单元数为任意。将表示存储单元阵列130内的区块的物理位置的内容称为区块地址。

行解码器150将与区块地址对应的区块设为选择状态,并将所选择的区块的字线设为所期望的电压状态。

读出放大器单元140在读出数据时,将已从存储单元晶体管读取至位线的数据读出(sense)。

周边电路110具备定序器(控制电路)111、寄存器112及驱动器113。

定序器111对nand型闪速存储器100整体的动作进行控制。

寄存器112存储各种信号。例如,寄存器112存储数据的写入或删除动作的状态,由此,向控制器通知动作是否已正常地完成。此外,寄存器112也可存储各种表格。

驱动器113将数据的写入、读出及删除所需的电压供给至行解码器150、读出放大器单元140及未图示的源极线驱动器。

<1-1-3>存储单元阵列

利用图3对存储单元阵列的构成进行说明。在图3中,表示了某个区块blk。如图3所示,第1实施方式的区块blk包含例如4个串单元su(su0~su3)。另外,各串单元su包含多个nand串131。

各nand串131包含选择晶体管st1、st2及多个(图3中,作为一例为48个)存储单元晶体管mt(mt0~mt47)。存储单元晶体管mt具备控制栅极与电荷蓄积层,将数据非易失地保存。而且,多个存储单元晶体管mt(存储单元晶体管群)串联连接在选择晶体管st1的源极与选择晶体管st2的漏极之间。当然,存储单元晶体管mt的数量为任意。

串单元su0~su3各自的选择晶体管st1的栅极分别连接于选择栅极线sgd0~sgd3。另外,串单元su0~su3各自的选择晶体管st2的栅极分别连接于选择栅极线sgs0~sgs3。当然,串单元su0~su3各自的选择晶体管st2的栅极也可连接于一个选择栅极线sgs。另外,位于同一区块blk内的存储单元晶体管mt(mt0~mt47)的控制栅极分别连接于字线wl(wl0~wl47)。

另外,在存储单元阵列130内位于同一列的nand串131的选择晶体管st1的漏极连接于位线bl(bl0~bl(l-1):l为2以上的自然数)。也就是说,位线bl连接于多个区块blk的nand串131。进而,多个选择晶体管st2的源极连接于源极线sl。

关于存储单元阵列130的构成,也可为其它构成。也就是说,关于存储单元阵列130的构成,例如记载在题为“三维积层非易失性半导体存储器”的在2009年3月19日提出申请的美国专利申请12/407,403号中。另外,记载在题为“三维积层非易失性半导体存储器”的在2009年3月18日提出申请的美国专利申请12/406,524号、题为“非易失性半导体存储装置及其制造方法”的在2010年3月25日提出申请的美国专利申请12/679,991号、题为“半导体存储器及其制造方法”的在2009年3月23日提出申请的美国专利申请12/532,030号中。这些专利申请的全部内容通过参照而引用在本申请的说明书中。

<1-1-4>读出放大器单元

<1-1-4-1>读出放大器单元的概要

接下来,对读出放大器单元140的概要进行说明。作为第1实施方式中说明的读出放大器单元140,以下,列举通过读出位线的电压(电压读出方式)而判别数据的情况为例。

读出放大器单元140具备多个读出模块141。读出模块141具备读出放大器146与连接(hookup)部142。

在电压读出方式中,读出放大器单元140根据读出数据使位线的电位变动,并检测该电位变动。位线的电位变动因位线间的电容耦合引起并对相邻的位线的电位带来影响。其结果为,担心产生数据的误读出。因此,在电压读出方式中,针对每一偶数位线及每一奇数位线读出数据。

如图4所示,通过电压读出方式进行读出动作的读出放大器单元140在对某位线进行读出动作的情况下,将相邻的位线屏蔽而进行读出动作。也就是说,在电压读出方式中,读出位线的电压变动。这样一来,在电压读出方式中,针对每一偶数位线及每一奇数位线读出数据。例如,在从偶数位线读出数据时,将奇数位线固定(屏蔽)为固定电位,在从奇数位线读出数据时,将偶数位线固定为固定电位。

在第1实施方式中,将彼此相邻的2条位线分类为偶数位线ble与奇数位线blo。而且,相邻的偶数位线ble与奇数位线blo共用1个读出模块141。

在第1实施方式中,在读出偶数位线ble的数据的情况下,定序器111将偶数位线ble用的晶体管142a接通,将偶数位线ble连接于读出放大器146。此时,定序器111通过将信号biaso设为“h”电平而将接地用晶体管145b接通。由此,奇数位线blo连接于接地电位blcrl,而奇数位线blo成为特定电位(第1实施方式中为接地电位)。

读出模块141将奇数位线blo设为接地电位的状态,对偶数位线ble进行预充电。在该情况下,奇数位线blo的电位仍然保持为特定电位。因此,偶数位线ble不会因奇数位线blo的电位的变动而受到影响,而恰当地进行预充电。

另一方面,在读出奇数位线的数据的情况下,定序器111将奇数位线blo用的晶体管142b接通,将奇数位线blo连接于读出模块143。此时,定序器111通过将信号biase设为“h”电平而将接地用晶体管145a接通。由此,偶数位线ble连接于接地电位blcrl,而偶数位线ble成为特定电位(第1实施方式中为接地电位)。

读出模块141将偶数位线ble设为接地电位的状态,对奇数位线blo进行预充电。在该情况下,像所述那样,奇数位线blo恰当地进行预充电。

这样一来,读出动作时,通过将非选择位线设为接地状态,可不受非选择位线的信号的影响而进行正确的读出动作。

<1-1-4-2>读出模块

利用图5,对第1实施方式的半导体存储装置100的读出模块141进行说明。第1实施方式的半导体存储装置100的读出模块141具备连接部142、读出放大器146。

如图5所示,读出模块141具有3个动态数据高速缓冲存储器146-1~146-3、临时数据高速缓冲存储器146-4、第1数据高速缓冲存储器146-5及第2数据高速缓冲存储器146-6。此外,动态数据高速缓冲存储器146-1~146-3及临时数据高速缓冲存储器146-4只要视需要设置即可。

第1数据高速缓冲存储器146-5具有时钟控制反相器146-5a及146-5c以及n通道mos(metaloxidesemiconductor,金属氧化物半导体)晶体管146-5b。第2数据高速缓冲存储器146-6具有时钟控制反相器146-6a及146-6c以及n通道mos晶体管146-6b及146-6d。第1动态数据高速缓冲存储器146-1具有n通道mos晶体管146-1a及146-1b。第2动态数据高速缓冲存储器146-2具有n通道mos晶体管146-2a及146-2b。第3动态数据高速缓冲存储器146-3具有n通道mos晶体管146-3a及146-3b。另外,临时数据高速缓冲存储器146-4具有电容146-4a。而且,将数据暂时存储在临时数据高速缓冲存储器146-4的节点tdc。此外,第1动态数据高速缓冲存储器146-1、第2动态数据高速缓冲存储器146-2、第3动态数据高速缓冲存储器146-3、临时数据高速缓冲存储器146-4、第1数据高速缓冲存储器146-5及第2数据高速缓冲存储器146-6的电路构成并不限定于图5所示的电路构成,也可采用其它电路构成。

而且,读出放大器146通过连接部142而分别连接于对应的偶数位线ble及奇数位线blo。对晶体管142a及142b的栅极分别输入信号blse及blso。另外,在偶数位线ble及奇数位线blo连接有n通道mos晶体管145a及145b的源极。晶体管145a及145b分别对栅极输入信号biase及biaso,对漏极输入信号blcrl。

该读出模块141是电压读出方式用的读出模块。

此外,作为读出模块141,可应用各种构成,例如可应用标题为“半导体存储装置”的在2016年6月17日提出申请的美国专利申请15/185,671中所记载的构成。该专利申请的全部内容通过参照而引用在本申请的说明书中。

<1-1-5>存储单元晶体管的阈值分布及数据的关系

利用图6,对存储单元晶体管mt的阈值分布及数据的关系进行说明。

如图6所示,各存储单元晶体管mt根据其阈值而能够保存例如2比特的数据。该2比特数据按照阈值从低到高的顺序例如为“11”、“01”、“00”、“10”。

保存“11”数据的存储单元晶体管mt的阈值处于某个固定的分布内,将与该“11”数据对应的阈值分布称为“er”电平。er电平是提取出电荷蓄积层内的电荷而数据被删除的状态下的阈值分布,为正值或负值(例如小于电压va)。

“01”、“00”及“10”均为向电荷蓄积层内注入电荷而写入数据的状态的阈值分布。

保存“01”数据的存储单元晶体管mt的阈值处于“a”电平的分布内,且高于er电平内的阈值(例如为电压va以上且小于vb,va<vb)。

保存“00”数据的存储单元晶体管mt的阈值处于“b”电平的分布内,且高于a电平内的阈值(例如为电压vb以上且小于vc,vb<vc)。

保存“10”数据的存储单元晶体管mt的阈值处于“c”电平的分布内,且高于b电平内的阈值(例如为电压vc以上)。

当然,2比特数据与阈值的关系并不限定于该关系,例如也可为“11”数据与“c”电平对应之类的情况,两者的关系可进行适当选择。

<1-2>动作

<1-2-1>写入动作的概要

利用图7,对第1实施方式的半导体存储装置100的写入动作的概要进行说明。

在第1实施方式中,定序器111对存储单元阵列130进行写入动作时,进行大致分为2种的写入方法(第1写入及第2写入)。

利用图7,对第1写入进行说明。此处,作为一例,对从er电平向a电平写入时应用第1写入的情况进行说明。

第1写入包含编程动作(也简单记载为编程)与编程验证动作(也简单记载为编程验证或验证)。编程动作是指向选择存储单元晶体管mt的电荷蓄积层注入电子的动作。编程验证动作是指确认编程动作是否已完成的动作。

第1写入是如下动作:为了缩小存储单元晶体管mt的阈值分布的范围,而将编程动作后的存储单元晶体管mt(选择存储单元晶体管mt)的阈值分类为3个组(第1~第3组),并根据该分类,改变编程动作的条件。

例如,如图7所示,3个组包括选择存储单元晶体管mt的阈值小于电压vla的第1组gp1、选择存储单元晶体管mt的阈值为电压vla以上且小于电压va(vla<va)的第2组gp2、及选择存储单元晶体管mt的阈值为电压va以上的第3组gp3。

定序器111通过进行使用电压vla的第1编程验证动作及使用电压va的第2编程验证动作,能够判定存储单元晶体管mt属于哪一组。

这样一来,第1组内的存储单元晶体管mt是其阈值处于距作为写入目标的电压va较远位置的写入不足单元(也将此记载为第1单元)。另外,第2组内的存储单元晶体管mt是其阈值处于距作为写入目标的电压va较近位置的写入不足单元(也将此记载为第2单元)。进而,第3组内的存储单元晶体管mt是写入完成单元(也将此记载为第3单元)。

因此,重新写入时,针对分类为第1组的写入不足单元,将位线设定为第1电压而进行通常的写入,针对分类为第2组的第2单元,将位线设定为比第1电压高的第2电压,进行比通常写入弱(阈值变动幅度少)的写入。

另外,针对分类为第3组的写入完成单元,将位线设定为比第2电压高的第3电压而禁止写入。

此处,在第1实施方式的半导体存储装置的写入动作中,如图7所示,作为编程验证时对选择字线施加的选择读出电压,使用两个电压(vla/va),进行两次编程验证动作。

另外,对非选择字线施加比选择读出电压高的非选择读出电压vread。

此处,作为一例,对从er电平向a电平写入时应用第1写入的情况进行了说明,但并不限于此。例如,也可在x(x为任意电平)电平的写入时应用第1写入。在该情况下,定序器111通过进行使用电压vlx的第1编程验证动作及使用电压vx(vlx<vx)的第2编程验证动作,能够判定存储单元晶体管mt为哪一组。

接下来,对第2写入进行说明。

第2写入包含编程动作,但不包含编程验证动作。在第2写入中,对应于成为目标的电平而设定编程动作的次数(也记载为编程次数)。例如,在使阈值从a电平转变为b电平的情况下,在写入a电平后进行多次(例如2次)编程动作。另外,在使阈值从a电平转变为c电平的情况下,在写入a电平后进行多次(例如4次)编程动作。编程次数例如存储在寄存器112中。当然,编程次数也可存储在其它存储区域。

在第2写入中,不进行编程验证动作,由此,与第1写入相比能够缩短写入动作的时间。

如上所述,在第1实施方式中,在从er电平向a电平写入时应用第1写入。而且,在从a电平向b电平写入以及从b电平向c电平写入时应用第2写入。然而,第1写入及第2写入的应用方法并不限于所述。

<1-2-2>编程动作

利用图8,对第1写入及第2写入中包含的编程动作的基本动作波形进行说明。

[时刻t0]~[时刻t1]

在时刻t0,行解码器150根据从寄存器112给出的行地址ra,选择区块。然后,行解码器150对选择选择栅极线sgd施加电压vsgd_prog(例如,vss<vsgd_prog),对选择选择栅极线sgs、非选择选择栅极线sgd、sgs施加电压vss。电压vsgd_prog是将选择晶体管st1设为接通状态的电压。

在时刻t0,读出放大器单元140对向存储单元晶体管mt的电荷蓄积层注入电子的写入位线bl(连接于属于第1组、第2组的存储单元晶体管mt的位线)施加例如电压vss,对抑制向存储单元晶体管mt的电荷蓄积层注入电子的非写入位线bl(连接于属于第3组的存储单元晶体管mt的位线)施加正电压vinhibit(vss<vinhibit)。

此外,以下,为了简单起见,而将连接于属于第1组~第3组的存储单元晶体管mt的位线分别记载为属于第1组~第3组的位线。

[时刻t1]~[时刻t2]

接着,在时刻t1,行解码器150对选择选择栅极线sgd施加电压vsgd(例如,vss<vsgd<vsgd_prog)。

然后,读出放大器单元140对属于第2组的写入位线bl施加例如电压vbl。

电压vsgd是针对选择晶体管st1能够传输电压vss但不能够传输电压vdd的电压。因此,与非写入位线bl(第3组)对应的选择晶体管st1成为切断状态。

[时刻t2]~[时刻t3]

接着,在时刻t2,行解码器150对字线wl(选择及非选择)施加电压vpass。

[时刻t3]~[时刻t4]

接着,行解码器150将对多个选择字线wl施加的电压从电压vpass升压至电压vpgm。由此,向连接于选择字线wl的选择存储单元晶体管mt注入电子。电压vpgm根据要写入的电平或编程次数而适当变更。电压vpgm的具体变更方法将在下文进行叙述。对分类为第1组的存储单元晶体管mt进行通常的写入,对分类为第2组的存储单元晶体管mt进行比通常写入弱的写入。

另外,通过对分类为第3组的存储单元晶体管mt施加电压vinhibit,而连接于存储单元晶体管mt的选择晶体管st1被切断。由此,存储单元晶体管mt的通道成为浮动状态,而被升压(boost)。因此,即使对字线wl施加编程电压,也不对并非写入对象的存储单元晶体管mt进行编程动作。也将这种动作记载为闭锁动作。

[时刻t4]~[时刻t5]

在时刻t3~时刻t4的期间进行编程之后,在时刻t3~时刻t4,行解码器150对字线wl、选择选择栅极线sgd施加电压vss,读出放大器单元140对非写入位线bl施加电压vss。由此,编程动作结束。

以下,编程动作参照所述编程动作。另外,如上所述的图8所示的动作相当于一次编程动作。在进行多次编程动作的情况下,重复多次图8所示的动作。

<1-2-3>编程验证动作

利用图9,对编程验证动作的基本动作波形进行说明。

[时刻tf0]~[时刻tf1]

在时刻tf0,行解码器150对选择选择栅极线sgd施加电压vsg,对非选择选择栅极线sgd施加0v或非选择电压vbb(例如负电压)。另外,读出放大器单元140的预充电电源电压vpre设为vdd。

[时刻tf1]~[时刻tf2]

接着,在时刻tf1,行解码器150对选择字线wl施加验证电压vx(x为任意电平)或vlx(vlx<vlx),对非选择字线wl施加电压vread。

读出放大器单元140预先对读出对象的位线(图9的例子中为偶数位线ble)进行预充电。具体来说,将信号blpre设为“h(高(high))”电平(l电平<h电平)而将晶体管n通道mos146b接通,由此,对临时数据高速缓冲存储器146-4的节点tdc以电压vdd进行预充电。

[时刻tf2]~[时刻tf3]

接着,在时刻tf2~tf3,进行位线选择信号blse及blso、以及偏压选择信号biase及biaso的设定。在图9的例子中,由于选择了偶数位线ble,所以偶数位线选择信号blse被设为“h”电平,由于将奇数位线blo固定为blcrl(=电压vss),所以信号biaso被设为“h”电平。

另外,对信号blc施加位线预充电用的箝位电压vblc,由此,偶数位线ble被预充电为例如电压vbl。

通过以上步骤,将偶数位线ble充电为电压vbl,将奇数位线blo固定为电压vss。

[时刻tf3]~[时刻tf4]

接着,在时刻tf3,将信号blc设为电压vss,将位线ble设为电性浮动的状态。

[时刻tf4]~[时刻tf5]

接着,在时刻tf4,对所选择的串单元的源极侧的选择栅极线sgs施加电压vsg。对其它非选择选择栅极线sgs施加电压vss或非选择电压vbb。由此,如果存储单元晶体管mt的阈值高于验证电压则不进行位线的放电,如果存储单元晶体管mt的阈值低于验证电压则流通读出电流而位线被放电。

[时刻tf5]~[时刻tf6]

接着,在时刻tf5~tf6,在信号vpre成为电压vdd的状态下,将信号blpre设为电压vsg,由此,将临时数据高速缓冲存储器146-4的节点tdc预充电为电压vdd。

[时刻tf7]~[时刻tf8]

接着,在时刻tf7~tf8,对信号blc施加读出用电压vsense。此时,如果选择位线ble的电位高于vsense-vth,则晶体管146a(被赋予信号blc的晶体管)保持被切断的状态,临时数据高速缓冲存储器146-4的节点tdc保持vdd。vth是存储单元晶体管mt的阈值电压。另一方面,如果选择位线ble的电位低于vsense-vth,则晶体管146a接通,因此,临时数据高速缓冲存储器146-4的节点tdc被放电而变得大致与位线ble的电位(例如0.4v)相等。

[时刻tf9]~[时刻tf10]

接着,在时刻tf9~tf10,将所读出的数据取入至第2数据高速缓冲存储器146-6。具体来说,暂时将信号sen2及lat2设为断开状态,将信号eq2设为电压vdd,由此,节点sen1与节点n2被设为相同电位。然后,将信号blc2的电位设为电位vdd+vth,将临时数据高速缓冲存储器146-4的节点tdc的数据传输至第2数据高速缓冲存储器146-6。其结果为,在本来临时数据高速缓冲存储器146-4的节点tdc为“h”电平的情况下,第2数据高速缓冲存储器146-6的数据成为“1”。另外,在临时数据高速缓冲存储器146-4的节点tdc为“l”(例如0.4v)的情况下,第2数据高速缓冲存储器146-6的数据成为“0”。

像所述那样,从偶数位线ble读出数据。然后,进行恢复动作,对各节点及信号进行重设。

奇数位线blo的读出也以相同的方式进行。在该情况下,与图9的例子相反地,将信号blso设为“h”电平,将信号blse设为“l”电平。另外,将信号biase设为“h”电平,将信号biaso设为“l”电平。

以下,电压读出方式的编程验证动作参照所述编程验证动作。另外,如上所述的图9所示的动作相当于一次编程验证动作。在进行多次编程验证动作的情况下,重复多次图9所示的动作。

<1-2-4>写入动作的动作流程

接下来,利用图10~图12,对第1实施方式的半导体存储装置100的写入动作的动作流程进行说明。此处,对以利用图7所说明的动作为基础的动作流程进行说明。

如图10所示,在第1实施方式的写入动作中,半导体存储装置100在进行第1写入(步骤s1000)之后,进行第2写入(步骤s1100)。

利用图11,对第1写入(步骤s1000)的动作流程进行说明。此外,关于编程动作及编程验证动作的详细动作,由于已在上文进行叙述,因此以下概略地进行说明。

[步骤s1001]

首先,定序器111对要写入a电平以上的数据的存储单元晶体管mt进行a电平编程动作。具体来说,定序器111将编程电压vpgm设定为a电平用的编程电压vpgm(a)。此外,以下,在表述各电平用的编程电压的情况下,表述为电压vpgm(x)(x为任意电平)。

[步骤s1002]

定序器111使用编程电压对于对象的存储单元晶体管mt进行a电平的编程动作(参照图8)。此外,以下,为了简单起见,有时将x电平的编程动作简单记载为x电平编程等。

[步骤s1003]

接着,定序器111进行用来判定写入对象的存储单元晶体管mt是否为第1组的第1编程验证动作(也简单记载为第1验证)。在该情况下,定序器111使用电压vla进行编程验证动作(参照图9)。

接着,定序器111进行用来判定写入对象的存储单元晶体管mt是否为第2组的第2编程验证动作(也简单记载为第2验证)。在该情况下,定序器111使用电压va进行编程验证动作(参照图9)。

[步骤s1004]

定序器111判定是否已在写入对象的所有存储单元晶体管mt中通过第2编程验证动作。

[步骤s1005]

定序器111是在判定为写入对象的存储单元晶体管mt中存在未通过第1及第2编程验证动作的存储单元晶体管mt的情况(s1004为否(no))下,判定写入对象的存储单元晶体管mt属于第1~第3组中的哪一组。然后,定序器111基于判定出的组,重新设定各种电压,进行步骤s1002。

具体来说,定序器111使编程电压vpgm增加dvpgm,将属于第1组的位线bl电压设定为电压vss,将属于第2组的位线bl电压设定为电压vbl,将属于第3组的位线bl电压设定为电压vinhibit。

[步骤s1006]

定序器111是在判定为在写入对象的所有存储单元晶体管mt中通过第2编程验证动作的情况(s1005为是(yes))下,判定是否存在要写入b电平以上的数据的存储单元晶体管mt。

定序器111是在判定为不存在要写入b电平以上的数据的存储单元晶体管mt的情况(步骤s1006为否)下,结束写入动作。

利用图12,对第2写入(步骤s1100)的动作流程进行说明。

[步骤s1101]

定序器111在判定为存在要写入b电平以上的数据的存储单元晶体管mt的情况(步骤s1006为是)下,定序器111将编程电压vpgm设定为b电平用的编程电压vpgm(b)。该电压vpgm(b)比之前的电压vpgm(a)+dvpgm*y(y为任意整数)大。

[步骤s1102]

定序器111使用编程电压对于对象的存储单元晶体管mt进行b电平的编程动作。

[步骤s1103]

如上所述,在第2写入中,编程动作的次数确定。定序器111对步骤s1102的执行次数(编程次数)进行计数,并判定是否已超过寄存器112中存储的第1值(b电平编程用的编程次数)。

[步骤s1104]

定序器111是在判定为步骤s1102的执行次数未超过第1值的情况(步骤s1103为否)下,重新设定各种电压,进行步骤s1102。具体来说,定序器111使编程电压vpgm增加dvpgm。

[步骤s1105]

定序器111是在判定为步骤s1102的执行次数超过第1值的情况(步骤s1103为是)下,判定是否存在要写入c电平以上的数据的存储单元晶体管mt。

定序器111是在判定为不存在要写入c电平以上的数据的存储单元晶体管mt的情况(步骤s1105为否)下,结束写入动作。

[步骤s1106]

定序器111在判定为存在要写入c电平以上的数据的存储单元晶体管mt的情况(步骤s1105为是)下,定序器111将编程电压vpgm设定为c电平用的编程电压vpgm(c)。该电压vpgm(c)比之前的电压vpgm(b)+dvpgm*y(y为任意整数)大。

[步骤s1107]

定序器111使用编程电压对于对象的存储单元晶体管mt进行c电平的编程动作。

[步骤s1108]

定序器111对步骤s1107的执行次数(编程次数)进行计数,并判定是否已超过寄存器112中存储的第2值(c电平编程用的编程次数)。此外,第2值可为从a电平编程完成后算起的编程次数,也可为从b电平编程完成后算起的编程次数。

定序器111是在判定为步骤s1107的执行次数超过第2值的情况(步骤s1108为是)下,结束写入动作。

[步骤s1109]

定序器111是在判定为步骤s1107的执行次数未超过第2值的情况(步骤s1108为否)下,重新设定各种电压,进行步骤s1107。具体来说,定序器111使编程电压vpgm增加dvpgm。

此外,图10~图12的动作以利用图7所说明的动作为基础。因此,在第1写入及第2写入的应用方法改变的情况下,第1实施方式的半导体存储装置100的写入动作的动作流程也对应于第1写入及第2写入的应用方法而改变。

<1-2-5>脉冲的具体例

接下来,利用图13,就对所述存储单元晶体管mt应用第1实施方式的写入动作时的具体的脉冲例进行说明。在图13中,为了简单起见,而仅图示选择字线wl、位线bl、blc2的波形。

为了简单起见,而在图13中,关于编程动作,以脉冲的形式图示在图8的时刻t3~时刻t4的期间对选择字线wl施加的电压vpgm。关于编程验证动作,以脉冲的形式图示在图9的时刻tf1~时刻tf10的期间对选择字线wl施加的电压va/vla及对blc2施加的电压vdd+vth。换句话说,编程动作时的“脉冲”是指在图8的时刻t3~时刻t4的期间对选择字线wl施加的电压vpgm。同样地,编程验证动作时的“脉冲”是指在图9的时刻tf1~时刻tf10的期间对选择字线wl施加的电压vx及对blc2施加的电压vdd+vth。

另外,在图13的下部示出动作状态。图中的p指编程动作,v指编程验证动作。

定序器111每当执行编程动作时,均使电压vpgm(x)以电压dvpgm为单位递增。

如图13所示,定序器111首先进行第1写入。定序器111使用电压vpgm(a)对写入对象的存储单元晶体管mt执行编程动作。此时,定序器111对写入对象的存储单元晶体管mt相关的位线bl供给电压vss。然后,对并非写入对象的存储单元晶体管mt相关的位线bl供给电压vinhibit。由此,写入对象的存储单元晶体管mt的通道成为电压vss,通过对字线wl施加编程电压vpgm(a)而对存储单元晶体管mt进行编程。另外,通过对并非写入对象的存储单元晶体管mt施加电压vinhibit,而连接于存储单元晶体管mt的选择晶体管st1被切断。由此,存储单元晶体管mt的通道成为浮动状态,而被升压。因此,即使对字线wl施加编程电压,也不对并非写入对象的存储单元晶体管mt进行编程动作。

接着,定序器111执行第1编程验证动作。更具体来说,定序器111通过对字线wl施加验证电压vla,而对存储单元晶体管mt执行编程验证动作。

接着,定序器111执行第2编程验证动作。更具体来说,定序器111通过对字线wl施加验证电压va,而对存储单元晶体管mt执行编程验证动作。

定序器111在进行编程动作时,基于编程验证的结果,对第1组相关的位线bl施加电压vss,对第2组相关的位线bl施加电压vbl,对第3组相关的位线bl施加电压vinhibit。然后,使用电压vpgm(a)+dvpgm,对写入对象的存储单元晶体管mt执行编程动作。由此,对属于第1及第2组的存储单元晶体管mt进行编程。

此外,通过对第3组的存储单元晶体管mt施加电压vinhibit,而连接于存储单元晶体管mt的选择晶体管st1被切断。由此,存储单元晶体管mt的通道成为浮动状态,而被升压。因此,即使对字线wl施加编程电压,也不对属于第3组的存储单元晶体管mt进行编程动作。

重复编程动作及编程验证动作直至写入对象的存储单元晶体管mt通过第2编程验证动作为止。如果写入对象的所有存储单元晶体管mt通过第2编程验证动作(第1写入完成),则定序器111开始与b电平及c电平相关的第2写入。

定序器111使用电压vpgm(b),对写入对象的存储单元晶体管mt执行编程动作。而且,每当重复编程动作时均对电压vpgm(b)增加电压dvpgm,重复编程动作直至与b电平相关的编程次数超过第1值为止。

当结束与b电平相关的编程动作时,定序器111使用电压vpgm(c),对写入对象的存储单元晶体管mt执行编程动作。而且,每当重复编程动作时均对电压vpgm(c)增加电压dvpgm,重复编程动作直至与c电平相关的编程次数超过第1值为止。

以如上方式结束第2写入。

此外,图13的动作以利用图7所说明的动作为基础。因此,在第1写入及第2写入的应用方法改变的情况下,第1实施方式的半导体存储装置100的写入动作的脉冲也对应于第1写入及第2写入的应用方法而改变。

<1-3>效果

根据所述实施方式,使用第1写入及第2写入进行数据的写入动作,第1写入是将写入状态的存储单元晶体管mt的阈值分布的范围缩小,第2写入不进行编程验证动作。

由此,可缩小写入状态的存储单元晶体管mt的阈值分布的范围并且可高速地进行写入。

以下,为了说明第1实施方式的效果,而对比较例进行说明。

图14表示编程次数与存储单元晶体管mt的阈值的变动的关系。如图14所示,存储单元晶体管mt的写入特性有时各不相同。

如图14所示,例如,存储单元晶体管mt的特性存在如下情况:如果超过a电平之后进行2次编程动作,则阈值转变为b电平的范围,如果超过a电平之后进行4次编程动作,则阈值转变为c电平的范围。

但是,如图15所示,有阈值分布扩大而阈值分布重叠的可能性。

因此,在所述实施方式中,如图16所示,对于a电平的写入进行将存储单元晶体管mt的阈值分布的范围缩小的第1写入动作。由于在缩小a电平的阈值分布的范围之后进行第2写入,所以能够缩小b电平及c电平的阈值分布。

例如,即使在像所述那样多个存储单元晶体管mt的特性(图中的斜率)不同的情况下,也缩小a电平的阈值分布的范围,因此,如图17所示,可抑制各电平的阈值重叠。

如上所述,根据所述实施方式,可抑制各电平的阈值分布的重叠,并且可削减与b电平及c电平相关的编程验证动作。因此,所述实施方式的半导体存储装置100可高速地进行写入动作,并且可使各电平的阈值分布为恰当的分布。

<1-4>第1实施方式的变化例

对第1实施方式的变化例进行说明。在第1实施方式的变化例中,就对采用电流侦测型的读出模块作为读出模块的半导体存储装置应用第1实施方式的写入动作的情况进行说明。此外,第1实施方式的变化例的半导体存储装置100的基本构成及基本动作与所述第1实施方式的半导体存储装置100相同。因此,对所述第1实施方式中说明过的事项以及能够根据所述第1实施方式容易地类推的事项省略说明。

<1-4-1>读出放大器单元

<1-4-1-1>读出放大器单元的概要

接下来,利用图18,对第1实施方式的变化例的读出放大器单元140的概要进行说明。作为第1实施方式的变化例中说明的读出放大器单元140,以下,以通过同时驱动存储单元阵列130内的所有位线而将读取出页数据(页由例如连接于同一字线的多个存储单元晶体管mt构成)的电流读出(电流读出方式)从而判别数据的情况为例进行说明。

第1实施方式的变化例的半导体存储装置100将对选择字线施加的选择读出电压设为固定值,基于流至选择存储单元晶体管mt的单元电流的大小,对选择存储单元晶体管mt的阈值进行分类。

读出放大器单元140具备多个读出模块143。而且,多个读出模块143分别经由晶体管31而连接于位线bl。

在电流读出方式中,读出放大器单元140不同于电压读出方式,可不考虑位线间的电容耦合。因此,在电压读出方式中,针对每一偶数位线及每一奇数位线而读出数据,但在电流读出方式中,可同时驱动所有位线。

<1-4-1-2>读出模块

如图19所示,读出模块143包括箝位电路32、预充电电路33、判别电路34及锁存电路35a、35b。

箝位电路32包括n通道mos晶体管36、37。预充电电路33包括p通道mos晶体管38。判别电路34包括p通道mos晶体管40、41、n通道mos晶体管42、52、53及电容器39。

锁存电路35a具有经触发器连接的两个反相器、即p通道mos晶体管43a、44a及n通道mos晶体管45a、46a。p通道mos晶体管47a及n通道mos晶体管48a用于控制锁存电路35a的激活/非激活。

读出节点sen的电位经由n通道mos晶体管52而被锁存电路35a锁存。锁存在锁存电路35a的数据不使用于将读出节点sen强制地从位线切断的闭锁动作。

锁存电路35b具有经触发器连接的两个反相器、即p通道mos晶体管43b、44b及n通道mos晶体管45b、46b。p通道mos晶体管47b及n通道mos晶体管48b用于控制锁存电路35b的激活/非激活。

读出节点sen的电位经由n通道mos晶体管53而被锁存电路35b锁存。锁存在锁存电路35b的数据使用于将读出节点sen强制地从位线切断的闭锁动作。

在读出模块143与位线bl之间连接着作为箝位电路的n通道mos晶体管31。nand单元组件21连接于位线bl。n通道mos晶体管49用于将位线bl的电荷放电。n通道mos晶体管49的接通/断开基于锁存在锁存电路35b的数据而决定。

该读出模块143是电流读出方式用的读出模块。

此外,作为读出模块143,可应用各种构成,例如可应用标题为“非易失性半导体存储器”的在2009年9月21日提出申请的美国专利申请12/563,296中所记载的构成。该专利申请的全部内容通过参照而引用在本申请的说明书中。

<1-4-2>动作

<1-4-2-1>编程验证动作的原理

图20表示第1实施方式的变化例的半导体存储装置100的编程验证动作的原理。

像利用图7所说明那样,在第1实施方式中,通过两次编程验证动作,识别作为写入对象的选择存储单元晶体管mt的3个阈值状态(第1~第3组)。但是,在第1实施方式的变化例中,通过一次编程验证动作,便可与图7同样地识别作为写入对象的选择存储单元晶体管mt的3个阈值状态(第1~第3组)。

具体来说,将对选择字线施加的选择读出电压设为固定值(例如vx),此时,通过判定流至选择存储单元晶体管mt的单元电流icell属于由两个值z1、z2划分的3个区域(区域1/区域2/区域3)中的哪一个,而将选择存储单元晶体管mt的阈值分类为第1~第3组中的一个。

例如,选择读出电压为v1时,流至第1组内的存储单元晶体管mt(第1单元)的单元电流成为icell1,流至第2组内的存储单元晶体管mt(第2单元)的单元电流成为icell2,流至第3组内的存储单元晶体管mt(第3单元)的单元电流成为icell3。

其中,icell1>icell2>icell3。

在所述第1实施方式的第1写入中,作为选择读出电压而使用两个值,针对各个值检测有无流至选择存储单元晶体管mt的单元电流。可换句话说,在第1实施方式的第1写入中,由于检测有无单元电流,所以必须进行两次编程验证动作。

因此,在第1实施方式的变化例中,通过判定单元电流的大小而并非有无单元电流,而通过一次编程验证动作将选择存储单元晶体管mt的阈值分类为3个组。

流至选择存储单元晶体管mt的单元电流的大小判定例如可预先对读出模块的读出节点进行充电,然后,基于从利用流至选择存储单元晶体管mt的单元电流开始将读出节点的电荷放电的放电开始时起经过第一期间后的第一时间点(第1时点)的读出节点的电位、以及从放电开始时起经过比第一期间长的第二期间后的第二时间点(第2时点)的读出节点的电位而进行。

根据第1实施方式的变化例,可通过一次编程验证动作对选择存储单元晶体管mt的阈值进行分类,因此,与通过两次编程验证动作对选择存储单元晶体管mt的阈值进行分类的情况相比,不需要用于改变选择字线的电位的设置期间或闭锁动作后的位线的恢复期间等。

因此,可通过缩短编程验证动作时间而实现写入动作的高速化。

<1-4-2-2>编程验证动作

利用图21,对第1实施方式的变化例的半导体存储装置100的编程验证动作的基本动作波形进行说明。

[时刻tc0]~[时刻tc1]

在时刻tc0,行解码器150对非选择字线施加非选择读出电压vread。

[时刻tc1]~[时刻tc2]

在时刻tc1,行解码器150对选择字线施加vx(vx<vread)作为选择读出电压。

定序器111如果在将读出节点sen充电为预充电电压vpre,且将位线bl固定为固定电位(例如vbl)的状态下,将控制信号flt设为“h”电平,则读出节点sen的电位根据选择存储单元晶体管mt的阈值而变为如下。

也就是说,当选择存储单元晶体管mt的阈值低于选择读出电压时,对选择存储单元晶体管mt流通较大的单元电流,而读出节点sen的电位降低的速度变快。另外,当选择存储单元晶体管mt的阈值高于选择读出电压时,流至选择存储单元晶体管mt的单元电流较小或者不对选择存储单元晶体管mt流通单元电流,而读出节点sen的电位降低的速度变慢。

[时刻tc2]~[时刻tc4]

然后,定序器111将控制信号lsa设为“h”电平,将图19的n通道mos晶体管52接通。另外,如果在从开始将读出节点sen的电荷放电的放电开始时tc2起经过第一期间后的第一时间点tc3、也就是将控制信号flt设为“h”电平之后经过第一期间后的时间点,将控制信号stb设为“l”电平,则读出节点sen的电位被图19的锁存电路35a锁存。

例如,当选择存储单元晶体管mt为第1单元(第1组)时,由于其阈值低于选择读出电压且两者的差较大,所以,对选择存储单元晶体管mt流通较大的单元电流。因此,读出节点sen的电位快速降低,电位降低量在到达时刻tc3之前达到dv,而在时刻tc3,读出节点sen成为“l”电平。

因此,锁存电路35a的输入节点inva成为“h”电平,锁存电路35a的输出节点lata成为“l”电平。但是,在该时间点,不进行将读出节点sen强制地从位线bl切断而将位线bl放电的闭锁动作。

另外,当选择存储单元晶体管mt为第2单元(第2组)时,由于其阈值低于选择读出电压且两者的差较小,所以,对选择存储单元晶体管mt流通较小的单元电流。因此,读出节点sen的电位缓慢降低,电位降低量在到达时刻tc3之前未达到dv,而在时刻tc3,读出节点sen仍然为“h”电平。

因此,锁存电路35a的输入节点inva成为“l”电平,锁存电路35a的输出节点lata成为“h”电平。

进而,当选择存储单元晶体管mt为第3单元(第3组)时,由于其阈值高于选择读出电压,所以,流至选择存储单元晶体管mt的单元电流非常小或者不对选择存储单元晶体管mt流通单元电流。因此,读出节点sen的电位非常缓慢地降低,电位降低量在到达时刻tc3之前未达到dv,而在时刻tc3,读出节点sen保持“h”电平的状态。

因此,锁存电路35a的输入节点inva成为“l”电平,锁存电路35a的输出节点lata成为“h”电平。

像这样,首先进行写入不足单元(第1组)的分选。

然后,将控制信号lsa设为“l”电平,将图19的n通道mos晶体管52断开。

[时刻tc5]~[时刻tc7]

接着,定序器111将控制信号lsb设为“h”电平,将图19的n通道mos晶体管53接通。另外,如果在从开始将读出节点sen的电荷放电的放电开始时tc2起经过比第一期间长的第二期间后的第二时间点tc6、也就是将控制信号flt设为“h”电平之后经过第二期间后的时间点,将控制信号stb设为“l”电平,则读出节点sen的电位被图19的锁存电路35b锁存。

例如,当选择存储单元晶体管mt为第1单元(第1组)时,读出节点sen的电位快速降低,由于电位降低量在到达时刻tc3之前已达到dv,所以,在时刻tc6,读出节点sen也为“l”电平。

因此,锁存电路35b的输入节点invb成为“h”电平,锁存电路35b的输出节点latb成为“l”电平。

然后,n通道mos晶体管36断开,将读出节点sen从位线bl切断(闭锁动作)。另外,n通道mos晶体管49接通,将位线bl放电。

另外,当选择存储单元晶体管mt为第2单元(第2组)时,由于其阈值低于选择读出电压且两者的差较小,所以,对选择存储单元晶体管mt流通较小的单元电流。因此,读出节点sen的电位缓慢降低,电位降低量在到达时刻tc6之前达到dv,而在时刻tc6,读出节点sen成为“l”电平。

因此,锁存电路35b的输入节点invb成为“h”电平,锁存电路35b的输出节点latb成为“l”电平。

然后,n通道mos晶体管36断开,将读出节点sen从位线bl切断(闭锁动作)。另外,n通道mos晶体管49接通,将位线bl放电。

进而,当选择存储单元晶体管mt为第3单元(第3组)时,由于其阈值高于选择读出电压,所以,流至选择存储单元晶体管mt的单元电流非常小或者不对选择存储单元晶体管mt流通单元电流。因此,读出节点sen的电位非常缓慢地降低,电位降低量在到达时刻tc6之前未达到dv,而在时刻tc6,读出节点sen仍保持“h”电平的状态。

因此,锁存电路35b的输入节点invb成为“l”电平,锁存电路35b的输出节点latb成为“h”电平。

像这样,进行第2单元(第2组)及第3单元(第3组)的分选。

图22表示两个锁存在锁存电路中的数据inva、invb与3个组的关系。

如图22所示,当inva及invb均为“h”电平时,判定为选择存储单元晶体管mt属于第1组(图20的区域1),而辨识为第1单元。

如图22所示,当inva为“l”电平且invb为“h”电平时,判定为选择存储单元晶体管mt属于第2组(图20的区域2),而辨识为第2单元。

如图22所示,当inva及invb均为“l”电平时,判定为选择存储单元晶体管mt属于第3组(图20的区域3),而辨识为第1单元。

像以上所说明那样,根据第一实施例,通过利用流至选择存储单元晶体管mt的读出电流的大小的差别,可通过一次编程验证动作而将选择存储单元晶体管mt的阈值分类为3个组。

以下,电流读出方式的编程验证动作参照所述编程验证动作。

<1-4-2-3>写入动作的动作流程

此外,所述读出模块及编程验证动作能够应用于利用图10~图12所说明的动作流程。为了简单起见,此处,对与第1实施方式中所说明的内容不同的图11的步骤s1003~s1005进行说明。

[步骤s1003]

定序器111进行用来判定写入对象的存储单元晶体管mt是否为第1~第3组的编程验证动作(也简单记载为验证)。在该情况下,定序器111使用电压va进行编程验证动作。

[步骤s1004]

定序器111判定是否已在写入对象的所有存储单元晶体管mt中通过编程验证动作。

[步骤s1005]

定序器111是在判定为写入对象的存储单元晶体管mt中存在未通过编程验证动作的存储单元晶体管mt的情况(s1004为否)下,判定写入对象的存储单元晶体管mt属于第1~第3组中的哪一组。然后,定序器111基于判定出的组,重新设定各种电压,进行步骤s1002。

此外,图10~图12的动作以利用图7所说明的动作为基础。因此,在第1写入及第2写入的应用方法改变的情况下,第1实施方式的变化例的半导体存储装置100的写入动作的动作流程也对应于第1写入及第2写入的应用方法而改变。

<1-4-2-4>脉冲的具体例

接下来,利用图23,就对第1实施方式的写入动作应用第1实施方式的变化例的读出模块时的具体的脉冲例进行说明。在图23中,为了简单起见,而仅图示选择字线wl、位线bl、stb的波形。

为了简单起见,在图23中,关于编程动作,以脉冲的形式图示在图8的时刻t3~时刻t4的期间对选择字线wl施加的电压vpgm。关于编程验证动作,以脉冲的形式图示在图21的时刻tc1~时刻tc7的期间对选择字线wl施加的电压va及stb的信号。换句话说,编程动作时的“脉冲”是指在图8的时刻t3~时刻t4的期间对选择字线wl施加的电压vpgm。同样地,编程验证动作时的“脉冲”是指在图21的时刻tc1~时刻tc7的期间对选择字线wl施加的电压vx(x为任意电平)及stb的“l”电平期间。

另外,在图23的下部示出动作状态。图中的p指编程动作,v指编程验证动作。

定序器111每当执行编程动作时,均使电压vpgm(x)以电压dvpgm为单位递增。

此外,关于编程时的动作,由于与利用图13所说明的方法相同,因此省略说明。

定序器111首先进行第1写入。定序器111在对存储单元晶体管mt进行编程动作之后,执行编程验证动作。更具体来说,定序器111对字线wl施加验证电压va,使stb下降两次,由此,对存储单元晶体管mt执行编程验证动作。

定序器111在进行编程动作时,基于编程验证的结果,对第1组相关的位线bl施加电压vss,对第2组相关的位线bl施加电压vbl,将第3组相关的位线bl的电压设为vinhibit。然后,定序器111以与利用图13所说明的方法相同的方法对写入对象的存储单元晶体管mt执行写入动作。

此外,关于第2写入,由于与利用图13所说明的动作相同,因此省略说明。

像所述那样,在第1实施方式中,针对第1及第2编程验证动作的每一次动作,定序器111改变对选择字线施加的电压。但是,在第1实施方式的变化例中,不改变对选择字线施加的电压,而在1次编程验证动作中使stb下降两次。

此外,图23的动作以利用图7所说明的动作为基础。因此,在第1写入及第2写入的应用方法改变的情况下,第1实施方式的变化例的半导体存储装置100的写入动作的脉冲也对应于第1写入及第2写入的应用方法而改变。

<1-4-3>效果

如上所述,能够将第1实施方式的变化例中所说明的电流读出方式应用于第1实施方式中所说明的写入方法。由此,在采用电流读出方式的半导体存储装置100中,也能够获得与第1实施方式中所说明的效果相同的效果。

<2>第2实施方式

对第2实施方式进行说明。在第2实施方式中,就对存储单元晶体管存储8值的数据且采用电压侦测型的读出模块(第1实施方式中所说明的读出模块)作为读出模块的半导体存储装置应用第1实施方式的写入动作的情况进行说明。此外,第2实施方式的半导体存储装置100的基本构成及基本动作与所述第1实施方式的半导体存储装置100相同。因此,对所述第1实施方式中说明过的事项以及能够根据所述第1实施方式容易地类推的事项省略说明。

<2-1>构成

<2-1-1>读出放大器单元的概要

第2实施方式的读出放大器单元140的构成及动作与第1实施方式中所说明的读出放大器单元140相同。

<2-1-2>存储单元晶体管的阈值分布及数据的关系

利用图24,对存储单元晶体管的阈值分布及数据的关系进行说明。

如图24所示,各存储单元晶体管mt根据其阈值而能够保存例如3比特的数据。该3比特数据按照阈值从低到高的顺序例如为“111”、“011”、“001”、“000”、“010”、“110”、“100”、“101”。

保存“111”数据的存储单元晶体管mt的阈值处于某个固定的分布内,将与该“111”数据对应的阈值分布称为“er”电平。er电平是提取出电荷蓄积层内的电荷而数据被删除的状态下的阈值分布,为正值或负值(例如小于电压va)。

“011”、“001”、“000”、“010”、“110”、“100”、“101”是向电荷蓄积层内注入电荷而写入有数据的状态的阈值分布。

保存“011”数据的存储单元晶体管mt的阈值处于“a”电平的分布内,且高于er电平内的阈值(例如为电压va以上且小于vb,va<vb)。

保存“001”数据的存储单元晶体管mt的阈值处于“b”电平的分布内,且高于a电平内的阈值(例如为电压vb以上且小于vc,vb<vc)。

保存“000”数据的存储单元晶体管mt的阈值处于“c”电平的分布内,且高于b电平内的阈值(例如为电压vc以上且小于vd,vc<vd)。

保存“010”数据的存储单元晶体管mt的阈值处于“d”电平的分布内,且高于c电平内的阈值(例如为电压vd以上且小于ve,vd<ve)。

保存“110”数据的存储单元晶体管mt的阈值处于“e”电平的分布内,且高于d电平内的阈值(例如为电压ve以上且小于vf,ve<vf)。

保存“100”数据的存储单元晶体管mt的阈值处于“f”电平的分布内,且高于e电平内的阈值(例如为电压vf以上且小于vg,vf<vg以上)。

保存“101”数据的存储单元晶体管mt的阈值处于“g”电平的分布内,且高于f电平内的阈值(例如为电压vg以上)。

当然,3比特数据与阈值的关系并不限定于该关系,例如也可为“111”数据与“g”电平对应之类的情况,两者的关系可进行适当选择。

<2-2>动作

<2-2-1>写入动作的概要

利用图25,对第2实施方式的半导体存储装置的写入动作的概要进行说明。

在第2实施方式中,定序器111对存储单元阵列130进行写入动作时,与第1实施方式同样地,进行大致分为两种的写入方法(第1写入及第2写入)。

在第2实施方式中,对使阈值分布从er电平依序向a电平、b电平、c电平、d电平、e电平、f电平及g电平转变的写入方式(第1方式)进行说明。

如图25所示,在第2实施方式中,在从er电平向a电平写入、从c电平向d电平写入、及从f电平向g电平写入时应用第1写入。而且,在从a电平向b电平写入、从b电平向c电平写入、从d电平向e电平写入、及从e电平向f电平写入时应用第2写入。然而,第1写入及第2写入的应用方法并不限于所述。

另外,定序器111每当进行第1写入时,均判定选择存储单元晶体管mt属于第1~第3组中的哪一组。

<2-2-2>写入动作的动作流程

接下来,利用图26~图31,对第2实施方式的半导体存储装置100的写入动作的动作流程进行说明。此处,对以利用图25所说明的动作为基础的动作流程进行说明。此外,在第2实施方式中,使用第1实施方式中所说明的电压读出方式的读出模块及编程验证动作。

如图26所示,在第2实施方式的写入动作中,半导体存储装置100是在进行从er电平向a电平的写入相关的第1写入(步骤s2000)之后,进行从a电平向b电平的写入及从b电平向c电平的写入相关的第2写入(步骤s2100)。接着,半导体存储装置100是在进行从c电平向d电平的写入相关的第1写入(步骤s2200)之后,进行从d电平向e电平的写入及从e电平向f电平的写入相关的第2写入(步骤s2300)。然后,半导体存储装置100进行从f电平向g电平的写入相关的第1写入(步骤s2400),而结束写入动作。

利用图27,对从er电平向a电平的写入相关的第1写入(步骤s2000)的动作流程进行说明。

[步骤s2001]~[步骤s2006]

半导体存储装置100进行与步骤s1001~s1006相同的动作。

利用图28,对从a电平向b电平的写入及从b电平向c电平的写入相关的第2写入(步骤s2100)的动作流程进行说明。

[步骤s2101]、[步骤s2102]

半导体存储装置100进行与步骤s1101及s1102相同的动作。

[步骤s2103]

如上所述,在第2写入中,编程动作的次数确定。定序器111对步骤s2102的执行次数(编程次数)进行计数,并判定是否已超过寄存器112中存储的第3值(b电平编程用的编程次数)。

[步骤s2104]

定序器111是在判定为步骤s2102的执行次数未超过第3值的情况(步骤s2103为否)下,重新设定各种电压,进行步骤s2102。具体来说,定序器111使编程电压vpgm增加dvpgm。

[步骤s2105]

定序器111是在判定为步骤52102的执行次数超过第3值的情况(步骤s2103为是)下,判定是否存在要写入c电平以上的数据的存储单元晶体管mt。

定序器111是在判定为不存在要写入c电平以上的数据的存储单元晶体管mt的情况(步骤s2105为否)下,结束写入动作。

[步骤s2106]、[步骤s2107]

半导体存储装置100进行与步骤s2106及s2107相同的动作。

[步骤s2108]

定序器111对步骤s2107的执行次数(编程次数)进行计数,并判定是否已超过寄存器112中存储的第4值(c电平编程用的编程次数)。此外,第4值可为从a电平编程完成后算起的编程次数,也可为从b电平编程完成后算起的编程次数。

[步骤s2109]

定序器111是在判定为步骤s2107的执行次数未超过第4值的情况(步骤s2108为否)下,重新设定各种电压,进行步骤s2107。具体来说,定序器111使编程电压vpgm增加dvpgm。

[步骤s2110]

定序器111是在判定为步骤s2107的执行次数超过第4值的情况(步骤s2108为是)下,判定是否存在要写入d电平以上的数据的存储单元晶体管mt。

定序器111是在判定为不存在要写入d电平以上的数据的存储单元晶体管mt的情况(步骤s2110为否)下,结束写入动作。

利用图29,对从c电平向d电平的写入相关的第1写入(步骤s2200)的动作流程进行说明。

[步骤s2201]

定序器111将编程电压vpgm设定为d电平用的编程电压vpgm(d)。

[步骤s2202]

定序器111使用编程电压对于对象的存储单元晶体管mt进行d电平的编程动作。

[步骤s2203]

接着,定序器111进行用来判定写入对象的存储单元晶体管mt是否为第1组的第1编程验证动作。在该情况下,定序器111使用电压vld进行编程验证动作。

接着,定序器111进行用来判定写入对象的存储单元晶体管mt是否为第2组的第2编程验证动作。在该情况下,定序器111使用电压vd(vld<vd)进行编程验证动作。

[步骤s2204]

定序器111判定是否已在写入对象的所有存储单元晶体管mt中通过第2编程验证动作。

[步骤s2205]

定序器111是在判定为写入对象的存储单元晶体管mt中存在未通过第1及第2编程验证动作的存储单元晶体管mt的情况(s2204为否)下,判定写入对象的存储单元晶体管mt属于第1~第3组中的哪一组。然后,定序器111基于判定出的组,重新设定各种电压,进行步骤s2202。

具体来说,定序器111使编程电压vpgm增加dvpgm,将属于第1组的位线bl电压设定为电压vss,将属于第2组的位线bl电压设定为电压vbl,将属于第3组的位线bl电压设定为电压vinhibit。

[步骤s2206]

定序器111是在判定为在写入对象的所有存储单元晶体管mt中通过第2编程验证动作的情况(s2205为是)下,判定是否存在要写入e电平以上的数据的存储单元晶体管mt。

定序器111是在判定为不存在要写入e电平以上的数据的存储单元晶体管mt的情况(步骤s2206为否)下,结束写入动作。

利用图30,对从d电平向e电平的写入及从e电平向f电平的写入相关的第2写入(步骤s2300)的动作流程进行说明。

[步骤s2301]

定序器111在判定为存在要写入e电平以上的数据的存储单元晶体管mt的情况(步骤s2206为是)下,定序器111将编程电压vpgm设定为e电平用的编程电压vpgm(e)。该电压vpgm(e)比之前的电压vpgm(d)+dvpgm*y(y为任意整数)大。

[步骤s2302]

定序器111使用编程电压对于对象的存储单元晶体管mt进行e电平的编程动作。

[步骤s2303]

如上所述,在第2写入中,编程动作的次数确定。定序器111对步骤s2302的执行次数(编程次数)进行计数,并判定是否已超过寄存器112中存储的第5值(e电平编程用的编程次数)。此外,第5值是从任意电平的编程完成后算起的编程次数。

[步骤s2304]

定序器111是在判定为步骤s2302的执行次数未超过第5值的情况(步骤s2303为否)下,重新设定各种电压,进行步骤s2302。具体来说,定序器111使编程电压vpgm增加dvpgm。

[步骤s2305]

定序器111是在判定为步骤s2302的执行次数超过第5值的情况(步骤s2303为是)下,判定是否存在要写入f电平以上的数据的存储单元晶体管mt。

定序器111是在判定为不存在要写入f电平以上的数据的存储单元晶体管mt的情况(步骤s2305为否)下,结束写入动作。

[步骤s2306]

定序器111在判定为存在要写入f电平以上的数据的存储单元晶体管mt的情况(步骤s2305为是)下,定序器111将编程电压vpgm设定为f电平用的编程电压vpgm(f)。该电压vpgm(f)比之前的电压vpgm(e)+dvpgm*y(y为任意整数)大。

[步骤s2307]

定序器111使用编程电压对于对象的存储单元晶体管mt进行f电平的编程动作。

[步骤s2308]

定序器111对步骤s2307的执行次数(编程次数)进行计数,并判定是否已超过寄存器112中存储的第6值(f电平编程用的编程次数)。此外,第6值是从任意电平的编程完成后算起的编程次数。

[步骤s2309]

定序器111是在判定为步骤s2307的执行次数未超过第6值的情况(步骤s2308为否)下,重新设定各种电压,进行步骤s2307。具体来说,定序器111使编程电压vpgm增加dvpgm。

[步骤s2310]

定序器111是在判定为步骤s2307的执行次数超过第6值的情况(步骤s2308为是)下,判定是否存在要写入g电平以上的数据的存储单元晶体管mt。

定序器111是在判定为不存在要写入g电平以上的数据的存储单元晶体管mt的情况(步骤s2310为否)下,结束写入动作。

利用图31,对从f电平向g电平的写入相关的第1写入(步骤s2400)的动作流程进行说明。

[步骤s2401]

定序器111将编程电压vpgm设定为g电平用的编程电压vpgm(g)。

[步骤s2402]

定序器111使用编程电压对于对象的存储单元晶体管mt进行g电平的编程动作。

[步骤s2403]

接着,定序器111进行用来判定写入对象的存储单元晶体管mt是否为第1组的第1编程验证动作。在该情况下,定序器111使用电压vlg进行编程验证动作。

接着,定序器111进行用来判定写入对象的存储单元晶体管mt是否为第2组的第2编程验证动作。在该情况下,定序器111使用电压vg(vlg<vg)进行编程验证动作。

[步骤s2404]

定序器111判定是否已在写入对象的所有存储单元晶体管mt中通过第2编程验证动作。

定序器111是在判定为在写入对象的所有存储单元晶体管mt中通过第2编程验证动作的情况(s2405为是)下,结束写入动作。

[步骤s2405]

定序器111是在判定为写入对象的存储单元晶体管mt中存在未通过第1及第2编程验证动作的存储单元晶体管mt的情况(s2404为否)下,判定写入对象的存储单元晶体管mt属于第1~第3组中的哪一组。然后,定序器111基于判定出的组,重新设定各种电压,进行步骤s2402。

具体来说,定序器111使编程电压vpgm增加dvpgm,将属于第1组的位线bl电压设定为电压vss,将属于第2组的位线bl电压设定为电压vbl,将属于第3组的位线bl电压设定为电压vinhibit。

此外,图26~图31的动作以利用图25所说明的动作为基础。因此,在第1写入及第2写入的应用方法改变的情况下,第2实施方式的半导体存储装置100的写入动作的动作流程也对应于第1写入及第2写入的应用方法而改变。

<2-2-3>脉冲的具体例

接下来,利用图32~图34,就对所述存储单元晶体管mt应用第2实施方式的写入动作时的具体的脉冲例进行说明。图32~图34的表述方法与图13相同。

如图32所示,定序器111首先进行从er电平向a电平的写入相关的第1写入。定序器111当结束从er电平向a电平的写入相关的第1写入时,进行从a电平向b电平的写入及从b电平向c电平的写入相关的第2写入。

如图33所示,定序器111当结束从a电平向b电平的写入及从b电平向c电平的写入相关的第2写入时,进行从c电平向d电平的写入相关的第1写入。定序器111当结束从c电平向d电平的写入相关的第1写入时,进行从d电平向e电平的写入及从e电平向f电平的写入相关的第2写入。

如图34所示,定序器111当结束从d电平向e电平的写入及从e电平向f电平的写入相关的第2写入时,进行从f电平向g电平的写入相关的第1写入。

此外,图32~图34的动作以利用图25所说明的动作为基础。因此,在第1写入及第2写入的应用方法改变的情况下,第2实施方式的半导体存储装置100的写入动作的脉冲也对应于第1写入及第2写入的应用方法而改变。

<2-3>效果

如上所述,在第2实施方式中,对存储单元晶体管mt能够存储8值的数据的情况进行了说明,能够获得与第1实施方式相同的效果。

<2-4>第2实施方式的变化例

对第2实施方式的变化例进行说明。在第2实施方式的变化例中,就对采用电流侦测型的读出模块(第1实施方式的变化例中所说明的读出模块)作为读出模块的半导体存储装置应用第2实施方式的写入动作的情况进行说明。此外,第2实施方式的变化例的半导体存储装置100的基本构成及基本动作与所述第1实施方式、第1实施方式的变化例及第2实施方式的半导体存储装置100相同。因此,对所述第1实施方式、第1实施方式的变化例及第2实施方式中所说明的事项以及能够根据所述第1实施方式、第1实施方式的变化例及第2实施方式容易地类推的事项省略说明。

<2-4-1>读出放大器单元的概要

第2实施方式的变化例的读出放大器单元140的构成及动作与第1实施方式的变化例中所说明的读出放大器单元140相同。

<2-4-2>动作

<2-4-2-1>写入动作的动作流程

第1实施方式的变化例中所说明的电流读出方式的读出模块及编程验证动作能够应用于利用图26~图31所说明的动作流程。为了简单起见,此处,对与第2实施方式中所说明的内容不同的图27的步骤s2003~s2005、图29的步骤s2203~s2205及图31的步骤s2403~s2405进行说明。

[步骤s2003]

定序器111进行用来判定写入对象的存储单元晶体管mt是否为第1~第3组的编程验证动作。在该情况下,定序器111使用电压va进行编程验证动作。

[步骤s2004]

定序器111判定是否已在写入对象的所有存储单元晶体管mt中通过编程验证动作。

[步骤s2005]

定序器111是在判定为写入对象的存储单元晶体管mt中存在未通过编程验证动作的存储单元晶体管mt的情况(s2004为否)下,判定写入对象的存储单元晶体管mt属于第1~第3组中的哪一组。然后,定序器111基于判定出的组,重新设定各种电压,进行步骤s2002。

[步骤s2203]

定序器111进行用来判定写入对象的存储单元晶体管mt是否为第1~第3组的编程验证动作。在该情况下,定序器111使用电压vd进行编程验证动作。

[步骤s2204]

定序器111判定是否已在写入对象的所有存储单元晶体管mt中通过编程验证动作。

[步骤s2205]

定序器111是在判定为写入对象的存储单元晶体管mt中存在未通过编程验证动作的存储单元晶体管mt的情况(s2204为否)下,判定写入对象的存储单元晶体管mt属于第1~第3组中的哪一组。然后,定序器111基于判定出的组,重新设定各种电压,进行步骤s2202。

[步骤s2403]

定序器111进行用来判定写入对象的存储单元晶体管mt是否为第1~第3组的编程验证动作。在该情况下,定序器111使用电压vg进行编程验证动作。

[步骤s2404]

定序器111判定是否已在写入对象的所有存储单元晶体管mt中通过编程验证动作。

[步骤s2405]

定序器111是在判定为写入对象的存储单元晶体管mt中存在未通过编程验证动作的存储单元晶体管mt的情况(s2404为否)下,判定写入对象的存储单元晶体管mt属于第1~第3组中的哪一组。然后,定序器111基于判定出的组,重新设定各种电压,进行步骤s2402。

此外,图26~图31的动作以利用图25所说明的动作为基础。因此,在第1写入及第2写入的应用方法改变的情况下,第2实施方式的变化例的半导体存储装置100的写入动作的动作流程也对应于第1写入及第2写入的应用方法而改变。

<2-4-2-2>脉冲的具体例

接下来,利用图35~图37,对第2实施方式的变化例的半导体存储装置的写入动作的具体的脉冲例进行说明。图35~图37的表述方法与图23相同。

如图35~图37所示,在具有第1实施方式的变化例中所说明的电流读出方式的读出模块的半导体存储装置100中,也能够应用第2实施方式中所说明的数据写入方法。

<2-4-3>效果

如上所述,能够将第1实施方式的变化例中所说明的电流读出方式应用于第2实施方式中所说明的写入方法。由此,在采用电流读出方式的半导体存储装置100中,也能够获得与第2实施方式中所说明的效果相同的效果。

<3>第3实施方式

对第3实施方式进行说明。在第2实施方式中,对使阈值分布从er电平依序向a电平、b电平、c电平、d电平、e电平、f电平及g电平转变的写入方式(第1方式)进行了说明。在第3实施方式中,对采用使阈值分布向任意电平转变而并非依序按照电平转变的写入方式(第2方式)的情况进行说明。此外,第3实施方式的存储器的基本构成及基本动作与所述第1实施方式及第2实施方式的半导体存储装置100相同。因此,对所述第1实施方式及第2实施方式中说明过的事项以及能够根据所述第1实施方式及第2实施方式容易地类推的事项省略说明。

<3-1>读出放大器单元的概要

第3实施方式的读出放大器单元140的构成及动作与第1实施方式中所说明的读出放大器单元140相同。

<3-2>动作

<3-2-1>写入动作的概要

在第3实施方式中,对并非使阈值分布依序转变而是向任意电平转变的写入方式(第2方式)进行说明。

作为一例,定序器111在使存储单元晶体管mt的阈值向d~f电平转变的情况下,不进行a~c电平的写入。另外,定序器111在使存储单元晶体管mt的阈值向g电平转变的情况下,不进行a~f电平的写入。换句话说,定序器111在进行d~f电平编程动作时,跳过a~c电平编程动作。另外,定序器111在进行g电平编程动作时,跳过a~f电平编程动作。此外,关于第2方式的具体例,并不限于此,要跳过的电平能够进行适当选择。另外,定序器111在使编程跳过的情况下,对编程动作时要跳过的选择存储单元晶体管mt的位线施加电压vinhibit。

第3实施方式在从er电平向a电平的写入、从er电平向d电平的写入及从er电平向g电平的写入时应用第1写入。而且,在从a电平向b电平的写入、从b电平向c电平的写入、从d电平向e电平的写入及从e电平向f电平的写入时应用第2写入。然而,第1写入及第2写入的应用方法并不限于所述。

<3-2-2>写入动作的动作流程

接下来,利用图38~图43,对第3实施方式的半导体存储装置100的写入动作的动作流程进行说明。此处,对以<3-2-1>中所说明的动作为基础的动作流程进行说明。

[步骤s3000]

如图38所示,在第3实施方式的写入动作中,定序器111判定是否存在要写入a~c电平的数据的存储单元晶体管mt。

[步骤s3100]、[步骤s3200]

定序器111是在判定为存在要写入a~c电平的数据的存储单元晶体管mt的情况(步骤s3000为是)下,进行与a~c电平相关的编程动作。

[步骤s3300]

在第3实施方式的写入动作中,定序器111判定是否存在要写入d~f电平的数据的存储单元晶体管mt。

[步骤s3400]、[步骤s3500]

定序器111是在判定为存在要写入d~f电平的数据的存储单元晶体管mt的情况(步骤s3300为是)下,进行与d~f电平相关的编程动作。

[步骤s3600]

在第3实施方式的写入动作中,定序器111判定是否存在要写入g电平的数据的存储单元晶体管mt。

[步骤s3700]

定序器111是在判定为存在要写入g电平的数据的存储单元晶体管mt的情况(步骤s3600为是)下,进行与g电平相关的编程动作。

利用图39,对从er电平向a电平的写入相关的第1写入(步骤s3100)的动作流程进行说明。

[步骤s3101]~[步骤s3106]

半导体存储装置100进行与步骤s1001~s1006相同的动作。

利用图40,对从a电平向b电平的写入及从b电平向c电平的写入相关的第1写入(步骤s3200)的动作流程进行说明。

[步骤s3201]~[步骤s3209]

半导体存储装置100进行与步骤s1101~s1109相同的动作。

此外,定序器111在步骤s3203中,使用第7值(b电平用的编程次数)而非第1值来进行判定动作,在步骤s3208中,使用第8值(c电平用的编程次数)而非第2值来进行判定动作。

利用图41,对从er电平向d电平的写入相关的第1写入(步骤s3400)的动作流程进行说明。

[步骤s3401]~[步骤s3406]

半导体存储装置100进行与步骤s2201~s2206相同的动作。

利用图42,对从d电平向e电平的写入及从e电平向f电平的写入相关的第1写入(步骤s3500)的动作流程进行说明。

[步骤s3501]~[步骤s3509]

半导体存储装置100进行与步骤s2301~s2309相同的动作。

此外,定序器111在步骤s3503中,使用第9值(e电平用的编程次数)而非第5值来进行判定动作,在步骤s3508中,使用第10值(f电平用的编程次数)而非第6值来进行判定动作。

利用图43,对从er电平向g电平的写入相关的第1写入(步骤s3700)的动作流程进行说明。

[步骤s3701]~[步骤s3706]

半导体存储装置100进行与步骤s2401~s2406相同的动作。

此外,第3实施方式的半导体存储装置的写入动作的具体脉冲除了要跳过的位线的电压以外与图32~图34相同,因此省略说明。

<3-3>效果

如上所述,在使用第2方式作为写入方法的情况下,也能够应用于第2实施方式中所说明的写入方法。由此,能够获得与第2实施方式中所说明的效果相同的效果。

<3-4>第3实施方式的变化例

对第3实施方式的变化例进行说明。在第3实施方式的变化例中,就对采用电流侦测型的读出模块(第1实施方式的变化例中所说明的读出模块)作为读出模块的半导体存储装置应用第3实施方式的写入动作的情况进行说明。此外,第3实施方式的变化例的半导体存储装置100的基本构成及基本动作与所述第1实施方式、第1实施方式的变化例、第2实施方式、第2实施方式的变化例及第3实施方式的半导体存储装置100相同。因此,对所述第1实施方式、第1实施方式的变化例、第2实施方式、第2实施方式的变化例及第3实施方式中说明过的事项以及能够根据所述第1实施方式、第1实施方式的变化例、第2实施方式、第2实施方式的变化例及第3实施方式容易地类推的事项省略说明。

<3-4-1>读出放大器单元的概要

第3实施方式的变化例的读出放大器单元140的构成及动作与第1实施方式的变化例中所说明的读出放大器单元140相同。

<3-4-2>动作

<3-4-2-1>写入动作的动作流程

第1实施方式的变化例中所说明的电流读出方式的读出模块及编程验证动作能够应用于利用图38~图43所说明的动作流程。为了简单起见,此处,对与第3实施方式中所说明的内容不同的图39的步骤s3103~s3105、图41的步骤s3403~s3405及图43的步骤s3703~s3705进行说明。

[步骤s3103]

定序器111进行用来判定写入对象的存储单元晶体管mt是否为第1~第3组的编程验证动作。在该情况下,定序器111使用电压va进行编程验证动作。

[步骤s3104]

定序器111判定是否已在写入对象的所有存储单元晶体管mt中通过编程验证动作。

[步骤s3105]

定序器111是在判定为写入对象的存储单元晶体管mt中存在未通过编程验证动作的存储单元晶体管mt的情况(s3104为否)下,判定写入对象的存储单元晶体管mt属于第1~第3组中的哪一组。然后,定序器111基于判定出的组,重新设定各种电压,进行步骤s3102。

[步骤s3403]

定序器111进行用来判定写入对象的存储单元晶体管mt是否为第1~第3组的编程验证动作。在该情况下,定序器111使用电压vd进行编程验证动作。

[步骤s3404]

定序器111判定是否已在写入对象的所有存储单元晶体管mt中通过编程验证动作。

[步骤s3405]

定序器111是在判定为写入对象的存储单元晶体管mt中存在未通过编程验证动作的存储单元晶体管mt的情况(s3404为否)下,判定写入对象的存储单元晶体管mt属于第1~第3组中的哪一组。然后,定序器111基于判定出的组,重新设定各种电压,进行步骤s3402。

[步骤s3703]

定序器111进行用来判定写入对象的存储单元晶体管mt是否为第1~第3组的编程验证动作。在该情况下,定序器111使用电压vg进行编程验证动作。

[步骤s3704]

定序器111判定是否已在写入对象的所有存储单元晶体管mt中通过编程验证动作。

[步骤s3705]

定序器111是在判定为写入对象的存储单元晶体管mt中存在未通过编程验证动作的存储单元晶体管mt的情况(s3704为否)下,判定写入对象的存储单元晶体管mt属于第1~第3组中的哪一组。然后,定序器111基于判定出的组,重新设定各种电压,进行步骤s3702。

此外,第3实施方式的变化例的半导体存储装置的写入动作的具体脉冲除了要跳过的位线的电压以外与图35~图37相同,因此省略说明。

<3-4-3>效果

如上所述,能够将第1实施方式的变化例中所说明的电流读出方式应用于第3实施方式中所说明的写入方法。由此,在采用电流读出方式的半导体存储装置100中,也能够获得与第3实施方式中所说明的效果相同的效果。

<4>第4实施方式

对第4实施方式进行说明。在第4实施方式中,就对存储单元晶体管存储16值的数据且采用电压侦测型的读出模块(第1实施方式中所说明的读出模块)作为读出模块的半导体存储装置应用第1实施方式的写入动作的情况进行说明。此外,第4实施方式的半导体存储装置100的基本构成及基本动作与所述第1~第3实施方式的半导体存储装置100相同。因此,对所述第1~第3实施方式中说明过的事项以及能够根据所述第1~第3实施方式容易地类推的事项省略说明。

<4-1>构成

<4-1-1>读出放大器单元的概要

第4实施方式的读出放大器单元140的构成及动作与第1实施方式中所说明的读出放大器单元140相同。

<4-1-2>存储单元晶体管的阈值分布及数据的关系

利用图44,对存储单元晶体管的阈值分布及数据的关系进行说明。

如图44所示,各存储单元晶体管mt根据其阈值而能够保存例如4比特的数据。该4比特数据按照阈值从低到高的顺序例如为“1111”、“1011”、“0101”、“1000”、“1001”、“0001”、“0011”、“0111”、“0101”、“1101”、“1100”、“0100”、“0000”、“0010”、“0110”、“1110”。

保存“1111”数据的存储单元晶体管mt的阈值处于某个固定的分布内,将与该“1111”数据对应的阈值分布称为“er”电平。er电平是提取出电荷蓄积层内的电荷而数据被删除的状态下的阈值分布,为正值或负值(例如小于电压v1)。

“1011”、“0101”、“1000”、“1001”、“0001”、“0011”、“0111”、“0101”、“1101”、“1100”、“0100”、“0000”、“0010”、“0110”、“1110”是向电荷蓄积层内注入电荷而写入有数据的状态的阈值分布。

保存“1011”数据的存储单元晶体管mt的阈值处于“1”电平的分布内,且高于0电平内的阈值(例如为电压v1以上且小于v2,v1<v2)。

保存“0101”数据的存储单元晶体管mt的阈值处于“2”电平的分布内,且高于1电平内的阈值(例如为电压v2以上且小于v3,v2<v3)

保存“1000”数据的存储单元晶体管mt的阈值处于“3”电平的分布内,且高于2电平内的阈值(例如为电压v3以上且小于v4,v3<v4)。

保存“1001”数据的存储单元晶体管mt的阈值处于“4”电平的分布内,且高于3电平内的阈值(例如为电压v4以上且小于v5,v4<v5)。

保存“0001”数据的存储单元晶体管mt的阈值处于“5”电平的分布内,且高于4电平内的阈值(例如为电压v5以上且小于v6,v5<v6)。

保存“0011”数据的存储单元晶体管mt的阈值处于“6”电平的分布内,且高于5电平内的阈值(例如为电压v6以上且小于v7,v6<v7)。

保存“0111”数据的存储单元晶体管mt的阈值处于“7”电平的分布内,且高于6电平内的阈值(例如为电压v7以上且小于v8,v7<v8)。

保存“0101”数据的存储单元晶体管mt的阈值处于“8”电平的分布内,且高于7电平内的阈值(例如为电压v8以上且小于v9,v8<v9)。

保存“1101”数据的存储单元晶体管mt的阈值处于“9”电平的分布内,且高于8电平内的阈值(例如为电压v9以上且小于v10,v9<v10)。

保存“1100”数据的存储单元晶体管mt的阈值处于“a”电平的分布内,且高于9电平内的阈值(例如为电压va以上且小于vb,va<vb)。

保存“0100”数据的存储单元晶体管mt的阈值处于“b”电平的分布内,且高于a电平内的阈值(例如为电压vb以上且小于vc,vb<vc)。

保存“0000”数据的存储单元晶体管mt的阈值处于“c”电平的分布内,且高于b电平内的阈值(例如为电压vc以上且小于vd,vc<vd)。

保存“0010”数据的存储单元晶体管mt的阈值处于“d”电平的分布内,且高于c电平内的阈值(例如为电压vd以上且小于ve,vd<ve)。

保存“0110”数据的存储单元晶体管mt的阈值处于“e”电平的分布内,且高于d电平内的阈值(例如为电压ve以上且小于vf,ve<vf)。

保存“1110”数据的存储单元晶体管mt的阈值处于“f”电平的分布内,且高于e电平内的阈值(例如为电压vf以上)。

当然,4比特数据与阈值的关系并不限定于该关系,例如也可为“1111”数据与“g”电平对应之类的情况,两者的关系可进行适当选择。

<4-2>动作

<4-2-1>写入动作的概要

利用图45,对第4实施方式的半导体存储装置的写入动作的概要进行说明。

在第4实施方式中,定序器111对存储单元阵列130进行写入动作时,与第1实施方式同样地,进行大致分为两种的写入方法(第1写入及第2写入)。

在第4实施方式中,对使阈值分布从0电平依序向1电平、2电平、3电平、4电平、5电平、6电平、7电平、8电平、9电平、a电平、b电平、c电平、d电平、e电平及f电平转变的写入方式(第1方式)进行说明。

如图45所示,在第4实施方式中,在从0电平向1电平的写入、从3电平向4电平的写入、从6电平向7电平的写入、从9电平向a电平的写入及从c电平向d电平的写入时应用第1写入。而且,在其它写入时应用第2写入。然而,第1写入及第2写入的应用方法并不限于所述。

另外,定序器111每当进行第1写入时,均判定选择存储单元晶体管mt属于第1~第3组中的哪一组。

<4-2-2>写入动作的动作流程

接下来,利用图46~图56,对第4实施方式的半导体存储装置100的写入动作的动作流程进行说明。此处,对以利用图45所说明的动作为基础的动作流程进行说明。此外,在第4实施方式中,使用第1实施方式中所说明的电压读出方式的读出模块及编程验证动作。

如图46所示,在第4实施方式的写入动作中,半导体存储装置100在进行从0电平向1电平的写入相关的第1写入(步骤s4000)之后,进行从1电平向2电平的写入及从2电平向3电平的写入相关的第2写入(步骤s4100)。接着,半导体存储装置100在进行从3电平向4电平的写入相关的第1写入(步骤s4200)之后,进行从4电平向5电平的写入及从5电平向6电平的写入相关的第2写入(步骤s4300)。然后,半导体存储装置100在进行从6电平向7电平的写入相关的第1写入(步骤s4400)之后,进行从7电平向8电平的写入及从8电平向9电平的写入相关的第2写入(步骤s4500)。接着,半导体存储装置100在进行从9电平向a电平的写入相关的第1写入(步骤s4600)之后,进行从a电平向b电平的写入及从b电平向c电平的写入相关的第2写入(步骤s4700)。然后,半导体存储装置100在进行从c电平向d电平的写入相关的第1写入(步骤s4800)之后,进行从d电平向e电平的写入及从e电平向f电平的写入相关的第2写入(步骤s4900),从而结束写入动作。

利用图47,对从0电平向1电平的写入相关的第1写入(步骤s4000)的动作流程进行说明。

[步骤s4001]

首先,定序器111对要写入1电平以上的数据的存储单元晶体管mt进行1电平编程动作。具体来说,定序器111将编程电压vpgm设定为1电平用的编程电压vpgm(1)。

[步骤s4002]

定序器111使用编程电压对于对象的存储单元晶体管mt进行1电平的编程动作。

[步骤s4003]

接着,定序器111进行用来判定写入对象的存储单元晶体管mt是否为第1组的第1编程验证动作。在该情况下,定序器111使用电压vl1进行编程验证动作。

接着,定序器111进行用来判定写入对象的存储单元晶体管mt是否为第2组的第2编程验证动作。在该情况下,定序器111使用电压v1(vl1<v1)进行编程验证动作。

[步骤s4004]

定序器111判定是否已在写入对象的所有存储单元晶体管mt中通过第2编程验证动作。

[步骤s4005]

定序器111是在判定为写入对象的存储单元晶体管mt中存在未通过第1及第2编程验证动作的存储单元晶体管mt的情况(s4004为否)下,判定写入对象的存储单元晶体管mt属于第1~第3组中的哪一组。然后,定序器111基于判定出的组,重新设定各种电压,进行步骤s4002。

具体来说,定序器111使编程电压vpgm增加dvpgm,将属于第1组的位线bl电压设定为电压vss,将属于第2组的位线bl电压设定为电压vbl,将属于第3组的位线bl电压设定为电压vinhibit。

[步骤s4006]

定序器111是在判定为在写入对象的所有存储单元晶体管mt中通过第2编程验证动作的情况(s4005为是)下,判定是否存在要写入2电平以上的数据的存储单元晶体管mt。

定序器111是在判定为不存在要写入2电平以上的数据的存储单元晶体管mt的情况(步骤s4006为否)下,结束写入动作。

利用图48,对从1电平向2电平的写入及从2电平向3电平的写入相关的第2写入动作(步骤s4100)的动作流程进行说明。

[步骤s4101]

定序器111是在判定为存在要写入2电平以上的数据的存储单元晶体管mt的情况(步骤s4006为是)下,将编程电压vpgm设定为2电平用的编程电压vpgm(2)。该电压vpgm(2)比之前的电压vpgm(1)+dvpgm*y(y为任意整数)大。

[步骤s4102]

定序器111使用编程电压对于对象的存储单元晶体管mt进行2电平的编程动作。

[步骤s4103]

如上所述,在第2写入中,编程动作的次数确定。定序器111对步骤s4102的执行次数(编程次数)进行计数,并判定是否已超过寄存器112中存储的第11值(2电平编程用的编程次数)。此外,第11值是从任意电平的编程完成后算起的编程次数。

[步骤s4104]

定序器111是在判定为步骤s4102的执行次数未超过第11值的情况(步骤s4103为否)下,重新设定各种电压,进行步骤s4102。具体来说,定序器111使编程电压vpgm增加dvpgm。

[步骤s4105]

定序器111是在判定为步骤s4102的执行次数超过第11值的情况(步骤s4103为是)下,判定是否存在要写入3电平以上的数据的存储单元晶体管mt。

定序器111是在判定为不存在要写入3电平以上的数据的存储单元晶体管mt的情况(步骤s4105为否)下,结束写入动作。

[步骤s4106]

定序器111在判定为存在要写入3电平以上的数据的存储单元晶体管mt的情况(步骤s4105为是)下,定序器111将编程电压vpgm设定为3电平用的编程电压vpgm(3)。该电压vpgm(3)比之前的电压vpgm(2)+dvpgm*y(y为任意整数)大。

[步骤s4107]

定序器111使用编程电压对于对象的存储单元晶体管mt进行3电平的编程动作。

[步骤s4108]

定序器111对步骤s4107的执行次数(编程次数)进行计数,并判定是否已超过寄存器112中存储的第12值(3电平编程用的编程次数)。此外,第12值是从任意电平的编程完成后算起的编程次数。

定序器111是在判定为步骤s4107的执行次数超过第12值的情况(步骤s4108为是)下,结束写入动作。

[步骤s4109]

定序器111是在判定为步骤s4107的执行次数未超过第12值的情况(步骤s4108为否)下,重新设定各种电压,进行步骤s4107。具体来说,定序器111使编程电压vpgm增加dvpgm。

[步骤s4110]

定序器111是在判定为步骤s4107的执行次数超过第12值的情况(步骤s4109为是)下,判定是否存在要写入4电平以上的数据的存储单元晶体管mt。

定序器111是在判定为不存在要写入4电平以上的数据的存储单元晶体管mt的情况(步骤s4110为否)下,结束写入动作。

利用图49,对从3电平向4电平的写入相关的第1写入(步骤s4200)的动作流程进行说明。

[步骤s4201]

定序器111是在判定为存在要写入4电平以上的数据的存储单元晶体管mt的情况(步骤s4110为是)下,将编程电压vpgm设定为4电平用的编程电压vpgm(4)。

[步骤s4202]

定序器111使用编程电压对于对象的存储单元晶体管mt进行4电平的编程动作。

[步骤s4203]

接着,定序器111进行用来判定写入对象的存储单元晶体管mt是否为第1组的第1编程验证动作。在该情况下,定序器111使用电压vl4进行编程验证动作。

接着,定序器111进行用来判定写入对象的存储单元晶体管mt是否为第2组的第2编程验证动作。在该情况下,定序器111使用电压v4(vl4<v4)进行编程验证动作。

[步骤s4204]

定序器111判定是否已在写入对象的所有存储单元晶体管mt中通过第2编程验证动作。

[步骤s4205]

定序器111是在判定为写入对象的存储单元晶体管mt中存在未通过第1及第2编程验证动作的存储单元晶体管mt的情况(s4204为否)下,判定写入对象的存储单元晶体管mt属于第1~第3组中的哪一组。然后,定序器111基于判定出的组,重新设定各种电压,进行步骤s4202。

具体来说,定序器111使编程电压vpgm增加dvpgm,将属于第1组的位线bl电压设定为电压vss,将属于第2组的位线bl电压设定为电压vbl,将属于第3组的位线bl电压设定为电压vinhibit。

[步骤s4206]

定序器111是在判定为在写入对象的所有存储单元晶体管mt中通过第2编程验证动作的情况(s4205为是)下,判定是否存在要写入5电平以上的数据的存储单元晶体管mt。

定序器111是在判定为不存在要写入5电平以上的数据的存储单元晶体管mt的情况(步骤s4206为否)下,结束写入动作。

利用图50,对从4电平向5电平的写入及从5电平向6电平的写入相关的第2写入动作(步骤s4300)的动作流程进行说明。

[步骤s4301]

定序器111是在判定为存在要写入5电平以上的数据的存储单元晶体管mt的情况(步骤s4206为是)下,将编程电压vpgm设定为5电平用的编程电压vpgm(5)。该电压vpgm(5)比之前的电压vpgm(4)+dvpgm*y(y为任意整数)大。

[步骤s4302]

定序器111使用编程电压对于对象的存储单元晶体管mt进行5电平的编程动作。

[步骤s4303]

如上所述,在第2写入中,编程动作的次数确定。定序器111对步骤s4302的执行次数(编程次数)进行计数,并判定是否已超过寄存器112中存储的第13值(5电平编程用的编程次数)。此外,第13值是从任意电平的编程完成后算起的编程次数。

[步骤s4304]

定序器111是在判定为步骤s4302的执行次数未超过第13值的情况(步骤s4303为否)下,重新设定各种电压,进行步骤s4302。具体来说,定序器111使编程电压vpgm增加dvpgm。

[步骤s4305]

定序器111是在判定为步骤s4302的执行次数超过第13值的情况(步骤s4303为是)下,判定是否存在要写入6电平以上的数据的存储单元晶体管mt。

定序器111是在判定为不存在要写入6电平以上的数据的存储单元晶体管mt的情况(步骤s4305为否)下,结束写入动作。

[步骤s4306]

定序器111在判定为存在要写入6电平以上的数据的存储单元晶体管mt的情况(步骤s4305为是)下,定序器111将编程电压vpgm设定为6电平用的编程电压vpgm(6)。该电压vpgm(6)比之前的电压vpgm(5)+dvpgm*y(y为任意整数)大。

[步骤s4307]

定序器111使用编程电压对于对象的存储单元晶体管mt进行6电平的编程动作。

[步骤s4308]

定序器111对步骤s4307的执行次数(编程次数)进行计数,并判定是否已超过寄存器112中存储的第14值(6电平编程用的编程次数)。此外,第14值是从任意电平的编程完成后算起的编程次数。

定序器111是在判定为步骤s4307的执行次数超过第14值的情况(步骤s4308为是)下,结束写入动作。

[步骤s4309]

定序器111是在判定为步骤s4307的执行次数未超过第14值的情况(步骤s4308为否)下,重新设定各种电压,进行步骤s4307。具体来说,定序器111使编程电压vpgm增加dvpgm。

[步骤s4310]

定序器111是在判定为步骤s4307的执行次数超过第14值的情况(步骤s4309为是)下,判定是否存在要写入7电平以上的数据的存储单元晶体管mt。

定序器111是在判定为不存在要写入7电平以上的数据的存储单元晶体管mt的情况(步骤s4310为否)下,结束写入动作。

利用图51,对从6电平向7电平的写入相关的第1写入(步骤s4400)的动作流程进行说明。

[步骤s4401]

定序器111是在判定为存在要写入7电平以上的数据的存储单元晶体管mt的情况(步骤s4310为是)下,将编程电压vpgm设定为7电平用的编程电压vpgm(7)。

[步骤s4402]

定序器111使用编程电压对于对象的存储单元晶体管mt进行7电平的编程动作。

[步骤s4403]

接着,定序器111进行用来判定写入对象的存储单元晶体管mt是否为第1组的第1编程验证动作。在该情况下,定序器111使用电压vl7进行编程验证动作。

接着,定序器111进行用来判定写入对象的存储单元晶体管mt是否为第2组的第2编程验证动作。在该情况下,定序器111使用电压v7(vl7<v7)进行编程验证动作。

[步骤s4404]

定序器111判定是否已在写入对象的所有存储单元晶体管mt中通过第2编程验证动作。

[步骤s4405]

定序器111是在判定为写入对象的存储单元晶体管mt中存在未通过第1及第2编程验证动作的存储单元晶体管mt的情况(s4404为否)下,判定写入对象的存储单元晶体管mt属于第1~第3组中的哪一组。然后,定序器111基于判定出的组,重新设定各种电压,进行步骤s4402。

具体来说,定序器111使编程电压vpgm增加dvpgm,将属于第1组的位线bl电压设定为电压vss,将属于第2组的位线bl电压设定为电压vbl,将属于第3组的位线bl电压设定为电压vinhibit。

[步骤s4406]

定序器111是在判定为在写入对象的所有存储单元晶体管mt中通过第2编程验证动作的情况(s4405为是)下,判定是否存在要写入8电平以上的数据的存储单元晶体管mt。

定序器111是在判定为不存在要写入8电平以上的数据的存储单元晶体管mt的情况(步骤s4406为否)下,结束写入动作。

利用图52,对从7电平向8电平的写入及从8电平向9电平的写入相关的第2写入动作(步骤s4500)的动作流程进行说明。

[步骤s4501]

定序器111是在判定为存在要写入8电平以上的数据的存储单元晶体管mt的情况(步骤s4506为是)下,将编程电压vpgm设定为8电平用的编程电压vpgm(8)。该电压vpgm(8)比之前的电压vpgm(7)+dvpgm*y(y为任意整数)大。

[步骤s4502]

定序器111使用编程电压对于对象的存储单元晶体管mt进行8电平的编程动作。

[步骤s4503]

如上所述,在第2写入中,编程动作的次数确定。定序器111对步骤s4502的执行次数(编程次数)进行计数,并判定是否已超过寄存器112中存储的第15值(8电平编程用的编程次数)。此外,第15值是从任意电平的编程完成后算起的编程次数。

[步骤s4504]

定序器111是在判定为步骤s4502的执行次数未超过第15值的情况(步骤s4503为否)下,重新设定各种电压,进行步骤s4502。具体来说,定序器111使编程电压vpgm增加dvpgm。

[步骤s4505]

定序器111是在判定为步骤s4502的执行次数超过第15值的情况(步骤s4503为是)下,判定是否存在要写入9电平以上的数据的存储单元晶体管mt。

定序器111是在判定为不存在要写入9电平以上的数据的存储单元晶体管mt的情况(步骤s4505为否)下,结束写入动作。

[步骤s4506]

定序器111在判定为存在要写入9电平以上的数据的存储单元晶体管mt的情况(步骤s4505为是)下,定序器111将编程电压vpgm设定为9电平用的编程电压vpgm(9)。该电压vpgm(9)比之前的电压vpgm(8)+dvpgm*y(y为任意整数)大。

[步骤s4507]

定序器111使用编程电压对于对象的存储单元晶体管mt进行9电平的编程动作。

[步骤s4508]

定序器111对步骤s4507的执行次数(编程次数)进行计数,并判定是否已超过寄存器112中存储的第16值(9电平编程用的编程次数)。此外,第16值是从任意电平的编程完成后算起的编程次数。

定序器111是在判定为步骤s4507的执行次数超过第16值的情况(步骤s4508为是)下,结束写入动作。

[步骤s4509]

定序器111是在判定为步骤s4507的执行次数未超过第16值的情况(步骤s4508为否)下,重新设定各种电压,进行步骤s4507。具体来说,定序器111使编程电压vpgm增加dvpgm。

[步骤s4510]

定序器111是在判定为步骤s4507的执行次数超过第16值的情况(步骤s4509为是)下,判定是否存在要写入a电平以上的数据的存储单元晶体管mt。

定序器111是在判定为不存在要写入a电平以上的数据的存储单元晶体管mt的情况(步骤s4510为否)下,结束写入动作。

利用图53,对从9电平向a电平的写入相关的第1写入(步骤s4600)的动作流程进行说明。

[步骤s4601]~[步骤s4606]

半导体存储装置100进行与步骤s2001~s2006相同的动作。

利用图54,对从a电平向b电平的写入及从b电平向c电平的写入相关的第2写入动作(步骤s4700)的动作流程进行说明。

[步骤s4701]~[步骤s4710]

存储系统1进行与步骤s2101~s2110相同的动作。

此外,定序器111在步骤s4703中,使用第17值(b电平用的编程次数)而非第3值来进行判定动作,在步骤s4708中,使用第18值(c电平用的编程次数)而非第2值来进行判定动作。

利用图55,对从c电平向d电平的写入相关的第1写入(步骤s4800)的动作流程进行说明。

[步骤s4801]~[步骤s4806]

半导体存储装置100进行与步骤s2201~s2206相同的动作。

利用图56,对从d电平向e电平的写入及从e电平向f电平的写入相关的第2写入动作(步骤s4900)的动作流程进行说明。

[步骤s4901]~[步骤s4909]

存储系统1进行与步骤s2301~s2309相同的动作。

此外,定序器111在步骤s4903中,使用第19值(e电平用的编程次数)而非第5值来进行判定动作,在步骤s4908中,使用第20值(f电平用的编程次数)而非第6值来进行判定动作。

此外,图46~图56的动作以利用图45所说明的动作为基础。因此,在第1写入及第2写入的应用方法改变的情况下,第4实施方式的半导体存储装置100的写入动作的动作流程也对应于第1写入及第2写入的应用方法而改变。

<4-2-3>脉冲的具体例

接下来,利用图57~图61,就对所述存储单元晶体管mt应用第4实施方式的写入动作时的具体的脉冲例进行说明。图57~图61的表述方法与图13相同。

如图57所示,定序器111首先进行从0电平向1电平的写入相关的第1写入。定序器111当结束从0电平向1电平的写入相关的第1写入时,进行从1电平向2电平的写入及从2电平向3电平的写入相关的第2写入。

如图58所示,定序器111当结束从1电平向2电平的写入及从2电平向3电平的写入相关的第2写入时,进行从3电平向4电平的写入相关的第1写入。定序器111当结束从3电平向4电平的写入相关的第1写入时,进行从4电平向5电平的写入及从5电平向6电平的写入相关的第2写入。

如图59所示,定序器111当结束从4电平向5电平的写入及从5电平向6电平的写入相关的第2写入时,进行从6电平向7电平的写入相关的第1写入。定序器111当结束从6电平向7电平的写入相关的第1写入时,进行从7电平向8电平的写入及从8电平向9电平的写入相关的第2写入。

如图60所示,定序器111当结束从7电平向8电平的写入及从8电平向9电平的写入相关的第2写入时,进行从9电平向a电平的写入相关的第1写入。定序器111当结束从9电平向a电平的写入相关的第1写入时,进行从a电平向b电平的写入及从b电平向c电平的写入相关的第2写入。

如图61所示,定序器111当结束从a电平向b电平的写入及从b电平向c电平的写入相关的第2写入,进行从c电平向d电平的写入相关的第1写入。定序器111当结束从c电平向d电平的写入相关的第1写入时,进行从d电平向e电平的写入及从e电平向f电平的写入相关的第2写入。

此外,图57~图61的动作以利用图45所说明的动作为基础。因此,在第1写入及第2写入的应用方法改变的情况下,第4实施方式的半导体存储装置100的写入动作的脉冲也对应于第1写入及第2写入的应用方法而改变。

<4-3>效果

如上所述,在第4实施方式中,对存储单元晶体管mt能够存储16值的数据的情况进行了说明,但能够获得与第1实施方式相同的效果。

<4-4>第4实施方式的变化例

对第4实施方式的变化例进行说明。在第4实施方式的变化例中,就对采用电流侦测型的读出模块(第1实施方式的变化例中所说明的读出模块)作为读出模块的半导体存储装置应用第4实施方式的写入动作的情况进行说明。此外,第4实施方式的变化例的半导体存储装置100的基本构成及基本动作与所述第1实施方式、第1实施方式的变化例、第2实施方式、第2实施方式的变化例、第3实施方式、第3实施方式的变化例及第4实施方式的半导体存储装置100相同。因此,对所述第1实施方式、第1实施方式的变化例、第2实施方式、第2实施方式的变化例、第3实施方式、第3实施方式的变化例及第4实施方式中说明过的事项以及能够根据所述第1实施方式、第1实施方式的变化例、第2实施方式、第2实施方式的变化例、第3实施方式、第3实施方式的变化例及第4实施方式容易地类推的事项省略说明。

<4-4-1>读出放大器单元的概要

第4实施方式的变化例的读出放大器单元140的构成及动作与第1实施方式的变化例中所说明的读出放大器单元140相同。

<4-4-2>动作

<4-4-2-1>写入动作的动作流程

第1实施方式的变化例中所说明的电流读出方式的读出模块及编程验证动作能够应用于利用图46~图56所说明的动作流程。为了简单起见,此处,对与第4实施方式中所说明的内容不同的图47的步骤s4003~s4005、图49的步骤s4203~s4205、图51的步骤s4403~s4405、图53的步骤s4603~s4605及图55的步骤s4803~s4805进行说明。

[步骤s4003]

定序器111进行用来判定写入对象的存储单元晶体管mt是否为第1~第3组的编程验证动作。在该情况下,定序器111使用电压v1进行编程验证动作。

[步骤s4004]

定序器111判定是否已在写入对象的所有存储单元晶体管mt中通过编程验证动作。

[步骤s4005]

定序器111是在判定为写入对象的存储单元晶体管mt中存在未通过编程验证动作的存储单元晶体管mt的情况(s4004为否)下,判定写入对象的存储单元晶体管mt属于第1~第3组中的哪一组。然后,定序器111基于判定出的组,重新设定各种电压,进行步骤s4002。

[步骤s4203]

定序器111进行用来判定写入对象的存储单元晶体管mt是否为第1~第3组的编程验证动作。在该情况下,定序器111使用电压v4进行编程验证动作。

[步骤s4204]

定序器111判定是否已在写入对象的所有存储单元晶体管mt中通过编程验证动作。

[步骤s4205]

定序器111是在判定为写入对象的存储单元晶体管mt中存在未通过编程验证动作的存储单元晶体管mt的情况(s4204为否)下,判定写入对象的存储单元晶体管mt属于第1~第3组中的哪一组。然后,定序器111基于判定出的组,重新设定各种电压,进行步骤s4202。

[步骤s4403]

定序器111进行用来判定写入对象的存储单元晶体管mt是否为第1~第3组的编程验证动作。在该情况下,定序器111使用电压v7进行编程验证动作。

[步骤s4404]

定序器111判定是否已在写入对象的所有存储单元晶体管mt中通过编程验证动作。

[步骤s4405]

定序器111是在判定为写入对象的存储单元晶体管mt中存在未通过编程验证动作的存储单元晶体管mt的情况(s4404为否)下,判定写入对象的存储单元晶体管mt属于第1~第3组中的哪一组。然后,定序器111基于判定出的组,重新设定各种电压,进行步骤s4402。

[步骤s4603]

定序器111进行用来判定写入对象的存储单元晶体管mt是否为第1~第3组的编程验证动作。在该情况下,定序器111使用电压va进行编程验证动作。

[步骤s4604]

定序器111判定是否已在写入对象的所有存储单元晶体管mt中通过编程验证动作。

[步骤s4605]

定序器111是在判定为写入对象的存储单元晶体管mt中存在未通过编程验证动作的存储单元晶体管mt的情况(s4604为否)下,判定写入对象的存储单元晶体管mt属于第1~第3组中的哪一组。然后,定序器111基于判定出的组,重新设定各种电压,进行步骤s4602。

[步骤s4803]

定序器111进行用来判定写入对象的存储单元晶体管mt是否为第1~第3组的编程验证动作。在该情况下,定序器111使用电压vd进行编程验证动作。

[步骤s4804]

定序器111判定是否已在写入对象的所有存储单元晶体管mt中通过编程验证动作。

[步骤s4805]

定序器111是在判定为写入对象的存储单元晶体管mt中存在未通过编程验证动作的存储单元晶体管mt的情况(s4804为否)下,判定写入对象的存储单元晶体管mt属于第1~第3组中的哪一组。然后,定序器111基于判定出的组,重新设定各种电压,进行步骤s4802。

此外,图46~图56的动作以利用图45所说明的动作为基础。因此,在第1写入及第2写入的应用方法改变的情况下,第4实施方式的变化例的半导体存储装置100的写入动作的动作流程也对应于第1写入及第2写入的应用方法而改变。

<4-4-2-2>脉冲的具体例

接下来,利用图62~图66,对第4实施方式的变化例的半导体存储装置的写入动作的具体的脉冲例进行说明。图62~图66的表述方法与图23相同。

如图62~图66所示,在具有第1实施方式的变化例中所说明的电流读出方式的读出模块的半导体存储装置100中,也可应用第4实施方式中所说明的数据写入方法。

<4-4-3>效果

如上所述,可将第1实施方式的变化例中所说明的电流读出方式应用于第4实施方式中所说明的写入方法。由此,在采用电流读出方式的半导体存储装置100中,也能够获得与第4实施方式中所说明的效果相同的效果。

<5>第5实施方式

对第5实施方式进行说明。在第4实施方式中,对使阈值分布从0电平依序向1电平、2电平、3电平、4电平、5电平、6电平、7电平、8电平、9电平、a电平、b电平、c电平、d电平、e电平及f电平转变的写入方式(第1方式)进行了说明。在第5实施方式中,对采用使阈值分布向任意电平转变而并非依序按照电平转变的写入方式(第2方式)的情况进行说明。此外,第5实施方式的半导体存储装置100的基本构成及基本动作与所述第1实施方式~第4实施方式的半导体存储装置100相同。因此,对所述第1实施方式~第4实施方式中说明过的事项以及能够根据所述第1实施方式~第4实施方式容易地类推的事项省略说明。

<5-1>读出放大器单元的概要

第5实施方式的读出放大器单元140的构成及动作与第1实施方式中所说明的读出放大器单元140相同。

<5-2>动作

<5-2-1>写入动作的概要

在第5实施方式中,就向任意电平转变的写入方式(第2方式)进行说明。

作为一例,定序器111在使存储单元晶体管mt的阈值向4~6电平转变的情况下,不进行1~3电平的写入。另外,定序器111在使存储单元晶体管mt的阈值向7~9电平转变的情况下,不进行1~6电平的写入。另外,定序器111在使存储单元晶体管mt的阈值向a~c电平转变的情况下,不进行1~9电平的写入。定序器111在使存储单元晶体管mt的阈值向d~f电平转变的情况下,不进行1~c电平的写入。

换句话说,定序器111当进行4~6电平编程动作时,跳过1~3电平编程动作。定序器111当进行7~9电平编程动作时,跳过1~6电平编程动作。定序器111当进行a~c电平编程动作时,跳过1~9电平编程动作。定序器111当进行d~f电平编程动作时,跳过1~c电平编程动作。此外,关于第2方式的具体例,并不限于此,能够适当选择要跳过的电平。

第5实施方式在从0电平向1电平的写入、从3电平向4电平的写入、从6电平向7电平的写入、从9电平向a电平的写入及从c电平向d电平的写入时应用第1写入。而且,在其它写入时应用第2写入。然而,第1写入及第2写入的应用方法并不限于所述。

<5-2-2>写入动作的动作流程

接下来,利用图67~图77,对第5实施方式的半导体存储装置100的写入动作的动作流程进行说明。此处,对以<5-2-1>中所说明的动作为基础的动作流程进行说明。

[步骤s5000]

如图67所示,在第5实施方式的写入动作中,定序器111判定是否存在要写入1~3电平的数据的存储单元晶体管mt。

[步骤s5100]、[步骤s5200]

定序器111是在判定为存在要写入1~3电平的数据的存储单元晶体管mt的情况(步骤s5000为是)下,进行与1~3电平相关的编程动作。

[步骤s5300]

在第5实施方式的写入动作中,定序器111判定是否存在要写入4~6电平的数据的存储单元晶体管mt。

[步骤s5400]、[步骤s5500]

定序器111是在判定为存在要写入4~6电平的数据的存储单元晶体管mt的情况(步骤s5300为是)下,进行与4~6电平相关的编程动作。

[步骤s5600]

在第5实施方式的写入动作中,定序器111判定是否存在要写入7~9电平的数据的存储单元晶体管mt。

[步骤s5700]、[步骤s5800]

定序器111是在判定为存在要写入7~9电平的数据的存储单元晶体管mt的情况(步骤s5600为是)下,进行与7~9电平相关的编程动作。

[步骤s5900]

在第5实施方式的写入动作中,定序器111判定是否存在要写入a~c电平的数据的存储单元晶体管mt。

[步骤s6000]、[步骤s6100]

定序器111是在判定为存在要写入a~c电平的数据的存储单元晶体管mt的情况(步骤s5900为是)下,进行与a~c电平相关的编程动作。

[步骤s6200]

在第5实施方式的写入动作中,定序器111判定是否存在要写入d~f电平的数据的存储单元晶体管mt。

[步骤s6300]、[步骤s6400]

定序器111是在判定为存在要写入d~f电平的数据的存储单元晶体管mt的情况(步骤s6200为是)下,进行与d~f电平相关的编程动作。

利用图68,对从0电平向1电平的写入相关的第1写入(步骤s5100)的动作流程进行说明。

[步骤s5101]~[步骤s5106]

半导体存储装置100进行与步骤s4001~s4006相同的动作。

利用图69,对从1电平向2电平的写入及从2电平向3电平的写入相关的第1写入(步骤s5200)的动作流程进行说明。

[步骤s5201]~[步骤s5209]

半导体存储装置100进行与步骤s4101~s4109相同的动作。

此外,定序器111在步骤s5203中,使用第21值(2电平用的编程次数)而非第11值来进行判定动作,在步骤s5208中,使用第22值(3电平用的编程次数)而非第12值来进行判定动作。

利用图70,对从0电平向4电平的写入相关的第1写入(步骤s5400)的动作流程进行说明。

[步骤s5401]~[步骤s5406]

半导体存储装置100进行与步骤s4201~s4206相同的动作。

利用图71,对从4电平向5电平的写入及从5电平向6电平的写入相关的第1写入(步骤s5500)的动作流程进行说明。

[步骤s5501]~[步骤s5509]

半导体存储装置100进行与步骤s4301~s4309相同的动作。

此外,定序器111在步骤s5503中,使用第23值(5电平用的编程次数)而非第13值来进行判定动作,在步骤s5508中,使用第24值(6电平用的编程次数)而非第14值来进行判定动作。

利用图72,对从0电平向7电平的写入相关的第1写入(步骤s5700)的动作流程进行说明。

[步骤s5701]~[步骤s5706]

半导体存储装置100进行与步骤s4401~s4406相同的动作。

利用图73,对从7电平向8电平的写入及从8电平向9电平的写入相关的第1写入(步骤s5800)的动作流程进行说明。

[步骤s5801]~[步骤s5809]

半导体存储装置100进行与步骤s4501~s4509相同的动作。

此外,定序器111在步骤s5803中,使用第25值(8电平用的编程次数)而非第15值来进行判定动作,在步骤s5808中,使用第26值(9电平用的编程次数)而非第16值来进行判定动作。

利用图74,对从0电平向a电平的写入相关的第1写入(步骤s6000)的动作流程进行说明。

[步骤s6001]~[步骤s6006]

半导体存储装置100进行与步骤s4601~s4606相同的动作。

利用图75,对从a电平向b电平的写入及从b电平向c电平的写入相关的第1写入(步骤s6100)的动作流程进行说明。

[步骤s6101]~[步骤s6109]

半导体存储装置100进行与步骤s4701~s4709相同的动作。

此外,定序器111在步骤s6103中,使用第27值(b电平用的编程次数)而非第17值来进行判定动作,在步骤s6108中,使用第28值(c电平用的编程次数)而非第18值来进行判定动作。

利用图76,对从0电平向d电平的写入相关的第1写入(步骤s6300)的动作流程进行说明。

[步骤s6301]~[步骤s6306]

半导体存储装置100进行与步骤s4801~s4806相同的动作。

利用图77,对从d电平向e电平的写入及从e电平向f电平的写入相关的第1写入(步骤s6400)的动作流程进行说明。

[步骤s6401]~[步骤s6409]

半导体存储装置100进行与步骤s4901~s4909相同的动作。

此外,定序器111在步骤s6403中,使用第29值(e电平用的编程次数)而非第19值来进行判定动作,在步骤s6408中,使用第30值(f电平用的编程次数)而非第20值来进行判定动作。

此外,第5实施方式的半导体存储装置的写入动作的具体脉冲除了要跳过的位线的电压以外与图57~图61相同,因此,省略说明。

<5-3>效果

如上所述,在使用第2方式作为写入方法的情况下,也能够应用于第4实施方式中所说明的写入方法。由此,能够获得与第4实施方式中所说明的效果相同的效果。

<5-4>第5实施方式的变化例

对第5实施方式的变化例进行说明。在第5实施方式的变化例中,就对采用电流侦测型的读出模块(第1实施方式的变化例中所说明的读出模块)作为读出模块的半导体存储装置应用第5实施方式的写入动作的情况进行说明。此外,第5实施方式的变化例的半导体存储装置100的基本构成及基本动作与所述第1实施方式、第1实施方式的变化例、第2实施方式、第2实施方式的变化例、第3实施方式、第3实施方式的变化例、第4实施方式、第4实施方式的变化例及第5实施方式的半导体存储装置100相同。因此,对所述第1实施方式、第1实施方式的变化例、第2实施方式、第2实施方式的变化例、第3实施方式、第3实施方式的变化例、第4实施方式、第4实施方式的变化例及第5实施方式中说明过的事项以及能够根据所述第1实施方式、第1实施方式的变化例、第2实施方式、第2实施方式的变化例、第3实施方式、第3实施方式的变化例、第4实施方式、第4实施方式的变化例及第5实施方式容易地类推的事项省略说明。

<5-4-1>读出放大器单元的概要

第5实施方式的变化例的读出放大器单元140的构成及动作与第1实施方式的变化例中所说明的读出放大器单元140相同。

<5-4-2>动作

<5-4-2-1>写入动作的动作流程

第1实施方式的变化例中所说明的电流读出方式的读出模块及编程验证动作能够应用于利用图67~图77所说明的动作流程。为了简单起见,此处,对与第5实施方式中所说明的内容不同的图68的步骤s5103~s5105、图70的步骤s5403~s5405、图72的步骤s5703~s5705、图74的步骤s6003~s6005及图76的步骤s6303~s6305进行说明。

[步骤s5103]

定序器111进行用来判定写入对象的存储单元晶体管mt是否为第1~第3组的编程验证动作。在该情况下,定序器111使用电压v1进行编程验证动作。

[步骤s5104]

定序器111判定是否已在写入对象的所有存储单元晶体管mt中通过编程验证动作。

[步骤s5105]

定序器111是在判定为写入对象的存储单元晶体管mt中存在未通过编程验证动作的存储单元晶体管mt的情况(s5104为否)下,判定写入对象的存储单元晶体管mt属于第1~第3组中的哪一组。然后,定序器111基于判定出的组,重新设定各种电压,进行步骤s5102。

[步骤s5403]

定序器111进行用来判定写入对象的存储单元晶体管mt是否为第1~第3组的编程验证动作。在该情况下,定序器111使用电压v4进行编程验证动作。

[步骤s5404]

定序器111判定是否已在写入对象的所有存储单元晶体管mt中通过编程验证动作。

[步骤s5405]

定序器111是在判定为写入对象的存储单元晶体管mt中存在未通过编程验证动作的存储单元晶体管mt的情况(s5404为否)下,判定写入对象的存储单元晶体管mt属于第1~第3组中的哪一组。然后,定序器111基于判定出的组,重新设定各种电压,进行步骤s5402。

[步骤s5703]

定序器111进行用来判定写入对象的存储单元晶体管mt是否为第1~第3组的编程验证动作。在该情况下,定序器111使用电压v7进行编程验证动作。

[步骤s5704]

定序器111判定是否已在写入对象的所有存储单元晶体管mt中通过编程验证动作。

[步骤s5705]

定序器111是在判定为写入对象的存储单元晶体管mt中存在未通过编程验证动作的存储单元晶体管mt的情况(s5704为否)下,判定写入对象的存储单元晶体管mt属于第1~第3组中的哪一组。然后,定序器111基于判定出的组,重新设定各种电压,进行步骤s5702。

[步骤s6003]

定序器111进行用来判定写入对象的存储单元晶体管mt是否为第1~第3组的编程验证动作。在该情况下,定序器111使用电压va进行编程验证动作。

[步骤s6004]

定序器111判定是否已在写入对象的所有存储单元晶体管mt中通过编程验证动作。

[步骤s6005]

定序器111是在判定为写入对象的存储单元晶体管mt中存在未通过编程验证动作的存储单元晶体管mt的情况(s6004为否)下,判定写入对象的存储单元晶体管mt属于第1~第3组中的哪一组。然后,定序器111基于判定出的组,重新设定各种电压,进行步骤s6002。

[步骤s6303]

定序器111进行用来判定写入对象的存储单元晶体管mt是否为第1~第3组的编程验证动作。在该情况下,定序器111使用电压vd进行编程验证动作。

[步骤s6304]

定序器111判定是否已在写入对象的所有存储单元晶体管mt中通过编程验证动作。

[步骤s6305]

定序器111是在判定为写入对象的存储单元晶体管mt中存在未通过编程验证动作的存储单元晶体管mt的情况(s6304为否)下,判定写入对象的存储单元晶体管mt属于第1~第3组中的哪一组。然后,定序器111基于判定出的组,重新设定各种电压,进行步骤s6302。

此外,第5实施方式的变化例的半导体存储装置的写入动作的具体脉冲除了要跳过的位线的电压以外与图62~图66相同,因此,省略说明。

<5-4-3>效果

如上所述,能够将第1实施方式的变化例中所说明的电流读出方式应用于第5实施方式中所说明的写入方法。由此,在采用电流读出方式的半导体存储装置100中,也能够获得与第5实施方式中所说明的效果相同的效果。

<6>其它

此外,根据所述实施方式,作为存储单元阵列130,列举三维积层型nand型闪速存储器为例进行了说明,但并不限于此。也就是说,关于存储单元阵列130的构成,例如记载在题为“具有集成于一个芯片上的多种类型的存储器的半导体存储装置”的在2009年3月3日提出申请的美国专利申请12/397,711号中。另外,记载在题为“包括具有电荷蓄积层的堆叠式栅极以及控制栅极的半导体存储装置及将数据写入至半导体存储装置的方法”的在2012年4月19日提出申请的美国专利申请13/451,185号、题为“非易失性半导体存储元件、非易失性半导体存储器、以及用于操作非易失性半导体存储元件的方法”的在2009年3月17日提出申请的美国专利申请12/405,626号、及题为“具有沟槽型的元件隔离区域的非易失性半导体存储装置及其制造方法”的在2001年9月21日提出申请的美国专利申请09/956,986号中。这些专利申请的全部内容通过参照而引用在本申请的说明书中。

另外,根据所述各实施方式,定序器111在接收所有页数据之后进行数据的写入。但是,并不限于此,例如,在每当接收页数据时均进行写入的存储系统中,也能够应用如上所述的各实施方式。

另外,在所述各实施方式中,对存储单元晶体管mt存储4~16值的数据的情况进行了说明,但并不限于此,在存储单元晶体管mt存储32值以上的数据的情况下也能够应用。

另外,在所述各实施方式中,

(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方式(incrementalsteppulseprogram,增量阶跃脉冲编程)时,作为升压电压,列举例如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存储系统

100nand闪速存储器

110周边电路

111定序器

112寄存器

113驱动器

120核心电路

130存储单元阵列

131nand串

140读出放大器单元

141读出模块(电压)

142连接部

143读出模块(电流)

146读出放大器

150行解码器

200控制器

201主机接口电路

202ram

203cpu

204缓冲存储器

205nand接口电路

206ecc

300主机设备

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1