半导体存储装置以及存储系统的制作方法

文档序号:19278080发布日期:2019-11-29 22:33阅读:337来源:国知局
半导体存储装置以及存储系统的制作方法

本申请基于日本专利申请2018-97573号(申请日:2018年5月22日)为基础申请来主张优先权。本申请通过参照该基础申请而包括基础申请的全部内容。

本发明的实施方式涉及半导体存储装置以及存储系统。



背景技术:

作为半导体存储装置的一种,公知有nand型闪存(flashmemory)。另外,公知有具备以三维层叠的多个存储单体(memorycell)的nand型闪存。



技术实现要素:

实施方式提供在暂时中断编程动作来进行读出动作的序列(sequence)中能够使性能提高的半导体存储装置以及存储系统。

实施方式涉及的半导体存储装置具备:第1面以及第2面,分别包括多个存储单体;第1读出放大器(senseamplifier),从上述第1面读出数据;第1锁存电路,能够保持由上述第1读出放大器读出的读出数据;第2锁存电路,能够保持从上述第1锁存电路转送的读出数据,并能够保持从外部输入的编程数据;第2读出放大器,从上述第2面读出数据;第3锁存电路,能够保持由上述第2读出放大器读出的读出数据;第4锁存电路,能够保持从上述第3锁存电路转送的读出数据,并能够保持从外部输入的编程数据;以及控制电路,控制编程动作以及读出动作。上述控制电路连续从外部接收第1编程指令以及读出指令,在上述第2锁存电路保持了与上述第1编程指令一同被输入的第1编程数据,上述第1锁存电路保持了响应于上述读出指令而读出的第1读出数据的状态下,将上述第1锁存电路的上述第1读出数据与上述第2锁存电路的上述第1编程数据交换,将上述第2锁存电路的上述第1读出数据向外部输出,在从外部接收到转送指令的情况下,将上述第1锁存电路的上述第1编程数据向上述第2锁存电路转送。

附图说明

图1是第1实施方式涉及的存储系统的框图。

图2是图1所示的nand型闪存的框图。

图3是图2所示的输入输出电路21的框图。

图4是图2所示的面pb的框图。

图5是面pb所包含的一个模块blk的电路图。

图6是模块blk的一部分区域的剖视图。

图7是表示存储单体晶体管的阈值分布的一个例子的示意图。

图8是图4所示的读出放大器单元以及数据寄存器的框图。

图9是对第1实施方式涉及的datainsuspend序列进行说明的时间图。

图10是对图2所示的地址寄存器的动作进行说明的图。

图11是对交换扫描进行说明的示意图。

图12是对比较例涉及的datainsuspend序列进行说明的时间图。

图13a是对变形例涉及的datainsuspend序列进行说明的时间图。

图13b是对变形例涉及的datainsuspend序列进行说明的时间图。

图14是第2实施方式涉及的地址寄存器的电路图。

图15是对第2实施方式涉及的datainsuspend序列进行说明的时间图。

图16是对比较例涉及的datainsuspend序列进行说明的时间图。

图17是第3实施方式涉及的提取出数据寄存器的周边电路后的框图。

图18是对数据输入(datain)处理以及数据输出(dataout)处理进行说明的图。

图19是对数据寄存器间的数据转送处理进行说明的图。

图20是对第3实施方式涉及的datainsuspend序列进行说明的时间图。

图21是表示第4实施方式涉及的存储单体晶体管mt的阈值分布的一个例子的示意图。

图22是第4实施方式涉及的读出放大器单元以及数据寄存器的框图。

图23a是对第4实施方式涉及的datainsuspend序列进行说明的时间图。

图23b是对第4实施方式涉及的datainsuspend序列进行说明的时间图。

附图标记的说明

1…存储系统,2…nand型闪存,3…存储控制器,4…主机装置,10…主机接口电路,11…处理器,12…ram,13…缓冲存储器,14…nand接口电路,15…ecc电路,16…总线,20…存储单体阵列,21…输入输出电路,22…逻辑控制电路,23a…状态寄存器,23b…地址寄存器,23c…指令寄存器,24…序列发生器,25…电压生成电路,26…行解码器,27…列解码器,28…读出放大器单元,29…数据寄存器,30…阱区域,31~33…布线层,34…存储孔,35…半导体层,36…栅极绝缘膜,37…电荷蓄积层,38…模块绝缘膜,39,42、45…接触塞,40、43、46…金属布线层,41、44…扩散区域,50、51…锁存电路组,52…总线,53…数据总线,54…振荡器。

具体实施方式

以下,参照附图对实施方式进行说明。以下所示的几个实施方式例示了用于使本发明的技术思想具体化的装置以及方法,本发明的技术思想并不由构成部件的形状、构造、配置等决定。各功能模块能够作为将硬件以及软件的任意一方或者双方组合而成的模块来实现。各功能模块并不需要如以下的例子那样加以区别。例如,一部分的功能可以通过与例示的功能模块不同的功能模块执行。并且,例示的功能模块可以分割为更细的功能子模块。其中,在以下的说明中,对具有相同功能以及构成的要素赋予相同的附图标记,仅在必要的情况下进行重复说明。

[1]第1实施方式

[1-1]存储系统1的构成

图1是第1实施方式涉及的存储系统1的框图。存储系统1具备nand型闪存(半导体存储装置)2以及存储控制器3。

存储系统1可以在搭载有主机装置的母板上安装构成存储系统1的多个芯片来构成,也可以构成为由一个模块实现存储系统1的系统lsi(large-scaleintegratedcircuit:大规模集成电路),或者soc(systemonchip:片上系统)。作为存储系统1的例子,可举出sdtm卡那样的存储卡、ssd(solidstatedrive:固态硬盘)以及emmc(embeddedmultimediacard:嵌入式多媒体卡)等。

nand型闪存2具备多个存储单体(也称为存储单体晶体管),以非易失的方式存储数据。对于nand型闪存2的具体构成将后述。

存储控制器3响应于来自主机装置4的命令,命令对nand型闪存2进行写入(也称为编程)、读出以及擦除等。另外,存储控制器3对nand型闪存2的存储空间进行管理。存储控制器3具备主机接口电路(主机i/f)10、处理器11、ram(randomaccessmemory)12、缓冲存储器13、nand接口电路(nandi/f)14以及ecc(errorcheckingandcorrecting:错误检验和纠正)电路15等。这些模块经由总线16相互连接。

主机接口电路10经由主机总线与主机装置4连接,与主机装置4之间进行接口处理。另外,主机接口电路10与主机装置4之间进行命令、地址以及数据的收发。

处理器11例如由cpu(centralprocessingunit)构成。处理器11控制存储控制器3整体的动作。例如,处理器11在从主机装置4接收到写入命令的情况下,响应于该写入命令,将基于nand接口的写入命令发给nand型闪存2。在读出以及擦除的情况下也相同。另外,处理器11执行耗损平均技术(wearleveling)等用于对nand型闪存2进行管理的各种处理。

ram12作为处理器11的工作区域被使用,储存从nand型闪存2加载的固件以及处理器11创建的各种表等。ram12由dram以及/或者sram构成。缓冲存储器13暂时保持从主机装置4发送的数据,并且,暂时保持从nand型闪存2发送的数据。ram12中也可以不包含缓冲存储器13。

在写入动作时,ecc电路15针对写入数据(也称为编程数据)生成纠错码,并将该纠错码附加到写入数据来送给nand接口电路14。另外,在读出动作时,ecc电路15使用读出数据所包含的纠错码对读出数据进行错误检测以及/或者错误修正。此外,ecc电路15也可以设置在nand接口电路14内。

nand接口电路14经由nand总线与nand型闪存2连接,与nand型闪存2之间进行接口处理。另外,nand接口电路14与nand型闪存2之间进行命令、地址以及数据的收发。

[1-1-1]nand型闪存2的构成

图2是图1所示的nand型闪存2的框图。

nand型闪存2具备存储单体阵列20、输入输出电路21、逻辑控制电路22、寄存器组(包括状态寄存器23a、地址寄存器23b以及指令寄存器23c)、序列发生器(sequencer)(控制电路)24、电压生成电路25、行解码器26、列解码器27、读出放大器单元28以及数据寄存器(高速数据缓存器)29。

存储单体阵列20具备多个面(plane)pb。在图2中,作为一个例子,表示了2个面pb0、pb1。多个面pb分别具备多个存储单体晶体管。在存储单体阵列20中,为了对存储单体晶体管施加电压而配设有多个位线、多个字线以及源极线等。关于面pb的具体构成将后述。

输入输出电路21以及逻辑控制电路22经由nand总线与存储控制器3连接。输入输出电路21与存储控制器3之间经由nand总线收发信号dq(例如dq0~dq7)。

逻辑控制电路22从存储控制器3经由nand总线接收外部控制信号(例如,芯片启动信号(enablesignal)cen、指令锁存启动信号cle、地址锁存启动信号ale、写入启动信号wen、读出启动信号ren以及写保护信号wpn。对信号名赋予的“n”表示低态有效(activelow)。另外,逻辑控制电路22经由nand总线向存储控制器3发送就绪/忙碌信号rbn。

信号cen使nand型闪存2的选择成为可能,在选择该nand型闪存2时被断言(assert)。信号cle能够使作为信号dq被发送的指令锁存于指令寄存器。信号ale能够使作为信号dq被发送的地址锁存于地址寄存器。信号wen使写入成为可能。信号ren使读出成为可能。信号wpn在禁止写入以及擦除时被断言。信号rbn表示nand型闪存2是就绪状态(能够接受来自外部的命令的状态)还是忙碌状态(无法接受来自外部的命令的状态)。存储控制器3通过从nand型闪存2接受信号rbn,能够知晓nand型闪存2的状态。

状态寄存器23a暂时保持nand型闪存2的动作所需要的数据。地址寄存器23b暂时保持地址。指令寄存器23c暂时保持指令。状态寄存器23a、地址寄存器23b以及指令寄存器23c例如由sram构成。

控制电路24从指令寄存器23c接受指令,按照基于该指令的序列来统一控制nand型闪存2。

电压生成电路25从nand型闪存2的外部接受电源电压,使用该电源电压来生成写入动作、读出动作以及擦除动作所需要的多个电压。电压生成电路25将生成的电压提供给存储单体阵列20、行解码器26以及读出放大器单元28等。

行解码器26从地址寄存器23b接受行地址,并对该行地址进行解码。行解码器26基于被解码后的行地址,进行字线等的选择动作。而且,行解码器26向存储单体阵列20转送写入动作、读出动作以及擦除动作所需要的多个电压。

列解码器27从地址寄存器23b接受列地址,并对该列地址进行解码。列解码器27基于被解码后的列地址,来进行位线的选择动作。

读出放大器单元28在读出动作时对从存储单体晶体管读出至位线的数据记性检测以及放大。另外,读出放大器单元28在写入动作时将写入数据转送给位线。

数据寄存器29在读出动作时,暂时保持从读出放大器单元28转送来的数据,并将其转送给输入输出电路21。另外,数据寄存器29在写入动作时暂时保持从输入输出电路21转送来的数据,并将其向读出放大器单元28转送。数据寄存器29由sram等构成。

[1-1-2]输入输出电路21的构成

图3是图2所示的输入输出电路21的框图。输入输出电路21具备移位寄存器单元21a以及多路复用器(multiplexer)21c。

移位寄存器单元21a具备与信号线dq0~dq7对应的8个移位寄存器21b。在图3中,以与信号线dq0连接的一个移位寄存器21b为代表进行了表示。虽然省略了图示,但在信号线dq1~dq7也分别连接着图3所示的移位寄存器21b。

移位寄存器21b具备串联连接的多个触发器21c。移位寄存器21b所包含的触发器21c的个数可根据信号dq的定时控制而适当地设定,在本实施方式中例如为8个。

初级的触发器21c的输入端子d与信号线dq0连接,其输出端子q与下一级的触发器21c的输入端子d连接,从序列发生器24对其时钟端子输入内部时钟iclk。触发器21c在内部时钟iclk上升的定时锁存输入数据。最终级的触发器21c的输出端子q与多路复用器21c的多个输入端子的一个连接。向多个触发器21c输入的内部时钟iclk包括周期不同的多个内部时钟iclk。

多路复用器21c的多个输出端子经由多个信号线与数据寄存器29连接。在是2面构成的情况下,将多路复用器21c与数据寄存器29连接的信号线的数量为面pb0用的8根与面pb1用的8根合计为16根。从序列发生器24向多路复用器21c的控制端子输入控制信号sel。控制信号sel是选择面pb的信号。多路复用器21c根据控制信号sel,将与移位寄存器单元21a连接的8根信号线与和数据寄存器29连接的16根中的8根连接。另外,多路复用器21c每8位地向数据寄存器29转送数据。

此外,虽然省略图示,但移位寄存器单元21a包括数据输出用的移位寄存器。数据输出用的移位寄存器与图3的移位寄存器单元21a并联连接。内部时钟iclk在数据输入用的移位寄存器与数据输出用的移位寄存器中共用。

[1-1-3]面pb的构成

图4是图2所示的面pb0、pb1以及其周边电路的框图。

面pb0、pb1分别具备j个模块blk0~blk(j-1)。j是1以上的整数。此外,面pb0、pb1所具备的模块blk的个数也可以相互不同。

多个模块blk分别具备多个存储单体晶体管。存储单体晶体管由能够电改写的存储单体构成。关于模块blk的具体构成将后述。

行解码器26、读出放大器单元28以及数据寄存器29按每个面pb设置。即,在面pb0连接有行解码器26-0以及读出放大器单元28-0。在读出放大器单元28-0连接有数据寄存器29-0。在面pb1连接有行解码器26-1以及读出放大器单元28-1。在读出放大器单元28-1连接有数据寄存器29-1。此外,虽然省略图示,但列解码器27也按每个面pb设置。

[1-1-4]模块blk的构成

图5是面pb所包含的一个模块blk的电路图。多个模块blk分别具备多个串(string)单元su。图5中例示了四个串单元su0~su3。一个模块blk所包含的串单元su的数量能够任意设定。

多个串单元su分别具备多个nand串(存储器串)ns。一个串单元su所包含的nand串ns的数量能够任意设定。

多个nand串ns分别具备多个存储单体晶体管mt以及2个选择晶体管st1、st2。多个存储单体晶体管mt串联连接在选择晶体管st1的源极与选择晶体管st2的漏极之间。在本说明书中,也有时将存储单体晶体管称为存储单体或者单体(cell)。图5为了简化而表示了nand串ns具备8个存储单体晶体管mt(mt0~mt7)的构成例,但nand串ns所具备的存储单体晶体管mt的数量实际上比8个多,另外,能够任意设定。存储单体晶体管mt具备控制栅电极和电荷蓄积层,以非易失的方式存储数据。存储单体晶体管mt能够存储1位的数据或者2位以上的数据。

串单元su0所包含的多个选择晶体管st1的栅极与选择栅极线sgd0共用连接,同样,在串单元su1~su3分别连接有选择栅极线sgd1~sgd3。串单元su0所包含的多个选择晶体管st2的栅极与选择栅极线sgs0共用连接,同样,在串单元su1~su3分别连接有选择栅极线sgs1~sgs3。此外,也可以在各模块blk所包含的串单元su0~su3连接共用的选择栅极线sgs。存在于各模块blk内的存储单体晶体管mt0~mt7的控制栅极分别与字线wl0~wl7连接。

在各模块blk内配置为矩阵状的nand串ns中的、位于同一列的多个nand串ns的选择晶体管st1的漏极与位线bl0~bl(m-1)的任意一个共用连接。“m”为1以上的整数。并且,各位线bl与多个模块blk共用连接,与处于多个模块blk分别所包含的各串单元su内的一个nand串ns连接。各模块blk所包含的多个选择晶体管st2的源极与源极线sl共用连接。源极线sl例如与多个模块blk共用连接。

处于各模块blk内的多个存储单体晶体管mt的数据例如被一并擦除。针对与配设于一个串单元su的1根字线wl共用连接的多个存储单体晶体管mt一并进行读出以及写入。将在一个串单元su内共享字线wl的存储单体晶体管mt的组称为单体单元cu。将单体单元cu所包含的多个存储单体晶体管mt分别存储的1位的数据的集合称为页。即,以页为单位来执行针对单体单元cu的写入动作以及读出动作。

此外,nand串ns也可以具备虚设单体晶体管。具体而言,在选择晶体管st2与存储单体晶体管mt0之间例如串联连接2个虚设单体晶体管(未图示)。在存储单体晶体管mt7与选择晶体管st1之间例如串联连接2个虚设单体晶体管(未图示)。在多个虚设单体晶体管的栅极分别连接多个虚设字线。虚设单体晶体管的构造与存储单体晶体管的构造相同。虚设单体晶体管不用于存储数据,而具有在写入动作、擦除动作中对存储单体晶体管、选择晶体管受到的打扰(disturb)进行缓和的功能。

[1-1-5]模块blk的层叠构造

图6是模块blk的一部分区域的剖视图。在图6中,x方向是选择栅极线延伸的方向,与x方向在水面内正交的y方向是位线延伸的方向,z方向是层叠方向。

在半导体层内,设有p型阱区域(p-well)30。在p型阱区域30上设有多个nand串ns。即,在阱区域30上,作为选择栅极线sgs发挥功能的布线层31、作为字线wl0~wl7发挥功能的8层布线层32、以及作为选择栅极线sgd发挥功能的布线层33分别按该顺序夹着多个绝缘层层叠。为了避免附图变得繁杂,省略了在层叠的多个布线层之间设置的多个绝缘层的影线。

存储孔(memoryhole)34贯通布线层31、32、33而到达阱区域30。在存储孔34内设置有柱状的半导体层(半导体柱)35。在半导体柱35的侧面按下述顺序设置有栅极绝缘膜36、电荷蓄积层(绝缘膜)37以及模块绝缘膜38。通过这些膜构成存储单体晶体管mt以及选择晶体管st1、st2。半导体柱35作为nand串ns的电流路径发挥功能,是形成各晶体管的沟道的区域。半导体柱35的上端经由接触塞(contactplug)39与作为位线bl发挥功能的金属布线层40连接。

在阱区域30的表面区域设有导入了高浓度的n型杂质的n+型扩散区域41。在扩散区域41上设置有接触塞42,接触塞42与作为源极线sl发挥功能的金属布线层43连接。并且,在阱区域30的表面区域设有导入了高浓度的p型杂质的p+型扩散区域44。在扩散区域44上设有接触塞45,接触塞45与作为阱布线cpwell发挥功能的金属布线层46连接。阱布线cpwell是用于经由阱区域30对半导体柱35施加电压的布线。

以上的构成在图6的纸面的纵深方向(x方向)排列有多个,由在x方向排列的多个nand串ns的集合构成串单元su。

[1-1-6]存储单体晶体管的阈值分布

接下来,对存储单体晶体管mt可获取的阈值电压vth的分布进行说明。图7是表示存储单体晶体管mt的阈值分布的一个例子的示意图。存储单体晶体管mt能够存储1位的数据。在本实施方式中,在存储单体晶体管mt存储1位的数据的情况下,以所谓的slc(singlelevelcell:单层级单体)方式为例进行说明。

在存储单体晶体管mt存储1位的数据的情况下,存储单体晶体管mt可获得与阈值电压对应的2个状态(state)的任意一个。将2个状态按从低到高的顺序成为状态“er”、“a”。分别属于状态“er”、“a”的多个存储单体晶体管mt形成分布。

对状态“er”、“a”分别分配例如数据“1”、“0”。为了读出在读出对象的存储单体晶体管mt中存储的数据,而判定该存储单体晶体管mt的阈值电压所属的状态。为了判定状态而使用读出电压va。

状态“er”相当于数据被擦除了的状态(擦除状态)。属于状态“er”的存储单体晶体管mt的阈值电压比电压va低,例如具有负值。

状态“a”相当于向电荷蓄积层注入电荷而在存储单体晶体管mt写入了数据的状态,属于状态“a”的存储单体晶体管mt的阈值电压例如具有正值。属于状态“a”的存储单体晶体管mt的阈值电压比读出电压va高并且比电压vread低。

电压vread是对与非读出对象的单体单元cu的存储单体晶体管mt连接的字线wl施加的电压,比处于任何状态的存储单体晶体管mt的阈值电压高。即,对控制栅电极施加了电压vread的存储单体晶体管mt与所保持的数据无关成为导通状态。

综上所述,各存储单体晶体管mt被设定为2个状态的任意一个,能够存储1位的数据。另外,写入以及读出以一个单体单元cu内的页单位来进行。

[1-1-7]读出放大器单元28以及数据寄存器29的构成

图8是图4所示的读出放大器单元28-0、28-1以及数据寄存器29-0、29-1的框图。由于读出放大器单元28-0、28-1是相同的构成,所以在图8中提取读出放大器单元28-0来进行表示。同样,由于数据寄存器29-0、29-1是相同的构成,所以在图8中提取数据寄存器29-0来进行表示。

读出放大器单元28-0具备与位线bl0~bl(m-1)对应的读出放大器单元sau0~sau(m-1)。各读出放大器单元sau具备读出放大器sa以及数据锁存电路sdl。读出放大器sa以及数据锁存电路sdl连接成能够相互转送数据。

数据锁存电路sdl暂时保持数据。在写入动作时,读出放大器sa根据数据锁存电路sdl保持的数据来控制位线bl的电压。读出放大器单元sau所具备的数据锁存电路的数量能够任意变更。

读出放大器sa在读出动作时对读出到对应的位线bl的数据进行检测,判定是数据“0”以及数据“1”的哪一个。另外,读出放大器sa在写入动作时,基于写入数据对位线bl施加电压。

数据寄存器29-0具备与读出放大器单元sau0~sau(m-1)对应的数量的数据锁存电路xdl。数据锁存电路xdl与输入输出电路21连接。数据锁存电路xdl暂时保持从输入输出电路21送来的写入数据,另外,暂时保持从读出放大器单元sau送来的读出数据。更具体而言,输入输出电路21与读出放大器单元28-0之间的数据转送经由1页份的数据锁存电路xdl来进行。输入输出电路21接收到的写入数据经由数据锁存电路xdl被转送至数据锁存电路sdl。由读出放大器sa读出的读出数据经由数据锁存电路xdl被转送至输入输出电路21。

即,在通常的读出动作时,在各读出放大器单元sau中,读出放大器sa对读出到对应的位线bl的数据进行检测来判定是数据“0”以及数据“1”的哪一个,数据锁存电路sdl保持该数据。保持于数据锁存电路sdl的数据在被转送至对应的数据锁存电路xdl之后,从数据锁存电路xdl转送至输入输出电路21。

另外,在通常的写入动作时,输入至输入输出电路21的数据被转送至数据锁存电路xdl,该数据被转送至读出放大器单元sau的数据锁存电路sdl,读出放大器sa基于保持于数据锁存电路sdl的写入数据来对位线bl施加电压。

[1-2]动作

对如上述那样构成的存储系统1的动作进行说明。

[1-2-1]datainsuspend(数据输入暂停)序列

对本实施方式涉及的datainsuspend序列进行说明。datainsuspend序列是暂时中断(暂停)数据输入,在数据输入的中途(编程序列的中途)执行编程动作以外的动作、例如读出动作的序列。数据输入是将从存储控制器3向nand型闪存2按顺序(例如每8位)输入的数据储存(缓存)到数据寄存器29的处理。本实施方式是一个面pb执行编程动作的singleplaneprogram涉及的实施例。

图9对第1实施方式涉及的datainsuspend序列进行说明的时间图。图9例如是面pb0执行编程动作的例子。在图9中,表示了经由dqx线转送的指令序列、和沿着指令序列的时间流与面pb0对应的锁存电路sdl、xdl所保持的数据。与指令序列重叠记载的矩形的波形表示就绪/忙碌信号rbn。

在初始状态下,锁存电路sdl为空闲(free)状态,锁存电路xdl例如保持数据“1”。在图9中,将全部的锁存电路xdl保持数据“1”的状态记为“all1”。将锁存电路xdl复位(设为“all1”)的定时例如是nand型闪存2从存储控制器3接收到后述的输入(input)指令“80h”时。

首先,存储控制器3对nand型闪存2执行编程命令。即,存储控制器3向nand型闪存2发行输入指令“80h”、面pb0用的地址add、数据(datain)以及多编程指令“11h”(图9的步骤(1))。控制电路24若接收到该指令序列,则暂时使信号rbn为低电平(忙碌状态),执行数据输入处理、即向锁存电路xdl转送编程数据的处理。

接着,存储控制器3暂时中断编程动作。而且,存储控制器3针对nand型闪存2执行读出命令。即,存储控制器3向nand型闪存2发送第1读指令“00h”、面pb0用的地址add以及第2读指令“30h”(图9的步骤(2))。控制电路24如果接收到该指令序列,则暂时使信号rbn为低电平,执行读出动作。

在读出动作中,从面pb0读出的读出数据被保持于锁存电路sdl。接着,控制电路24执行将锁存电路sdl的数据与锁存电路xdl的数据交换的处理(称为交换扫描(swapscan))。关于交换扫描的详细内容将后述。由此,使从输入输出电路21转送至锁存电路xdl的编程数据退避到锁存电路sdl,并且使锁存电路xdl保持读出数据。结果,能够防止从输入输出电路21转送至锁存电路xdl的编程数据被读出数据破坏(覆盖写入)。接着,控制电路24将保持于锁存电路xdl的读出数据(dataout)向存储控制器3输出。

接着,存储控制器3向nand型闪存2发行转送指令“3fh”。响应于转送指令“3fh”,控制电路24将保持于锁存电路sdl的编程数据向锁存电路xdl转送。

此外,在暂停中,存储控制器3可以针对nand型闪存2连续执行多次读出命令。具体而言,存储控制器3可以连续执行从第1读指令“00h”到转送指令“3fh”的序列。

接着,存储控制器3针对nand型闪存2执行编程命令。即,存储控制器3向nand型闪存2发行输入指令“80h”、面pb0用的地址add以及自动编程指令“10h”(图9的步骤(3))。这里,如图9所示,编程数据已经保持于锁存电路xdl。因此,第二次的编程指令序列中不包含编程数据。

然后,控制电路24将保持于锁存电路xdl的编程数据向锁存电路sdl转送并执行编程动作。由此,保持于锁存电路xdl的编程数据被写入面pb0。

此外,存储控制器3能够在任意的定时使保持于锁存电路xdl的数据输出。具体而言,存储控制器3向nand型闪存2发行第1数据输出指令“05h”、列地址以及第2数据输出指令“e0”。nand型闪存2响应于该指令序列,将保持于锁存电路xdl的数据向存储控制器3输出。

图10对图2所示的地址寄存器23b的动作进行说明的图。地址寄存器23b具备面pb0用的锁存电路组50-0和面pb1用的锁存电路组50-1。锁存电路组50-0、50-1分别具备与地址的位数对应的数量的锁存电路。锁存电路组50-0、50-1被用于保持行系的地址(行地址)。

锁存电路组50-0具备与输入线din0连接的输入端子d、输出端子q、以及被输入写入启动信号wen的时钟端子。锁存电路组50-0在对时钟端子输入的信号被断言的情况下,锁存输入数据。锁存电路组50-0输出面pb0用的行地址addw1。

锁存电路组50-1具备与输入线din1连接的输入端子d、输出端子q、以及被输入写入启动信号wen的时钟端子。锁存电路组50-1在对时钟端子输入的信号被断言的情况下,锁存输入数据。锁存电路组50-1输出面pb1用的行地址addw2。

图10的编号(1)、(2)、(3)与图9的步骤(1)、(2)、(3)对应,按该顺序将地址输入至锁存电路组50。在本实施方式中,在与步骤(1)、(2)、(3)分别对应的3次指令序列中分别独立地输入地址。因此,地址寄存器23b每次都能够保持与所执行的处理对应的地址。

[1-2-2]交换扫描

接下来,对前述的交换扫描进行说明。图11是对交换扫描进行说明的示意图。在图11中表示了读出放大器sa以及锁存电路sdl、xdl。

读出放大器sa具备为了检测位线bl的数据而使用的存储节点sen。存储节点sen具有电容,能够暂时保持从位线转送的电压。在交换扫描中,将该存储节点sen利用为用于保持数据的暂时的锁存器。控制电路24将由读出放大器sa读出的读出数据向锁存电路sdl转送(图11的步骤(1))。

如图9所示,锁存电路xdl保持编程数据。控制电路24将锁存电路xdl保持的编程数据向读出放大器sa的存储节点sen转送(图11的步骤(2))。

接着,控制电路24将锁存电路sdl保持的读出数据向锁存电路xdl转送(图11的步骤(3))。

接着,控制电路24将读出放大器sa的存储节点sen保持的编程数据向锁存电路sdl转送(图11的步骤(4))。

通过这样的交换扫描,能够不散失编程数据以及读出数据地对锁存电路sdl的数据和锁存电路xdl的数据进行交换。

[1-2-3]比较例

接下来,对比较例涉及的datainsuspend序列进行说明。图12是对比较例涉及的datainsuspend序列进行说明的时间图。

首先,存储控制器3针对nand型闪存2执行编程命令(图12的步骤(1))。

接着,存储控制器3暂时中断编程动作。而且,存储控制器3针对nand型闪存2执行读出命令(图12的步骤(2))。

在读出动作中,从面pb0读出的读出数据被保持于锁存电路sdl,接着,从锁存电路sdl转送至锁存电路xdl。在该时刻,保持于锁存电路xdl的编程数据被破坏(覆盖写入)。然后,保持于锁存电路xdl的读出数据(dataout)被输出至存储控制器3。

接着,存储控制器3向nand型闪存2发行输入指令“80h”、面pb0用的地址add、数据(datain(1)+α)以及自动编程指令“10h”(图12的步骤(3))。“datain(1)+α”是指包括与第一次的编程指令序列的编程数据相同的数据和除此以外的数据α。然后,保持于锁存电路xdl的编程数据被写入面pb0。

在比较例中,由于在读出动作后丧失编程数据,所以在第二次的编程指令序列中需要数据的重新输入。因此,导致写入时间变长。

[1-3]第1实施方式的效果

如以上详述那样,在第1实施方式中,存储控制器3在针对nand型闪存2发行了编程命令之后,暂时中断与该编程命令有关的编程动作,执行读出命令。nand型闪存2的控制电路24连续从外部接收第1编程指令以及读出指令。控制电路24在锁存电路xdl保持和第1编程指令一起被输入的编程数据,且锁存电路sdl保持响应于读出指令而读出的读出数据的状态下,将锁存电路sdl的读出数据和锁存电路xdl的编程数据交换。控制电路24向外部输出锁存电路xdl的读出数据。而且,控制电路24在从外部接收到转送指令的情况下,将锁存电路sdl的编程数据向锁存电路xdl转送。

因此,根据第1实施方式,能够在暂时中断编程动作来进行读出动作的序列中,将编程数据预先保持在nand型闪存2内。由此,在暂停后再开始编程动作的情况下,不需要再次输入编程数据。结果,能够实现在暂时中断编程动作来进行读出动作的序列中可使性能提高的nand型闪存2以及存储系统1。

另外,在编程动作再开始的情况下,再次输入编程用的地址。由此,能够不改变地址寄存器23b的构成地由地址寄存器23b保持与每次执行的处理对应的地址。

此外,在第1实施方式中,表示了在从存储控制器3向nand型闪存2发送了1页量的编程数据之后,指示读出命令的执行的例子。但是,并不局限于此,也可以在从存储控制器3向nand型闪存2发送了1页量的编程数据中的到中途为止的数据之后,指示读出命令的执行。该情况下,也在编程动作再开始的情况下,不需要再次输入在被指示读出命令的执行之前已向nand型闪存2发送了的数据,只要将剩余的数据向nand型闪存2发送即可。

图13a以及图13b表示了在从存储控制器3向nand型闪存2发送了1页的一部分(例如5/8页量)的编程数据d1之后,指示读出命令的执行的例子。该情况下,由锁存电路xdl保持完毕的编程数据d1也在读出动作时退避到锁存电路sdl,在读出动作结束后根据转送指令被从锁存电路sdl转送至锁存电路xdl。因此,由于当写入动作再开始时,在锁存电路xdl已经保持了5/8页量的编程数据d1,所以只要输入剩余的3/8页量的编程数据d2,就能够执行1页量的编程数据“d1+d2”的写入。

在与1页量中的一部分相当的编程数据d1被发送后指示了读出命令的执行的情况下,编程数据d1被储存至数据寄存器29所包含的1页量的锁存电路xdl中的一部分。因此,剩余的编程数据d2需要储存至数据寄存器29所包含的1页量的锁存电路xdl中的剩余的一部分。例如,通过在从存储控制器3向nand型闪存2发送的地址add中指定列地址,能够指定应该储存剩余的编程数据d2的锁存电路xdl。在与1页量中的一部分相当的编程数据d1被发送之后指示了读出命令的执行的情况下,存储控制器3将与完成了该编程数据d1的储存的锁存电路xdl的列地址有关的信息保持于未图示的内部寄存器。因此,存储控制器3在基于该信息向nand型闪存2发送剩余的编程数据d2时,能够在地址add中指定适当的列地址,向尚未储存数据的锁存电路xdl储存剩余的编程数据d2。

根据第1实施方式,在1页量的编程数据中的一部分的数据被发送之后指示了读出命令的执行进而在之后写入动作再开始的情况下,仅发送剩余的数据便能够执行基于1页量的编程数据的写入动作。

[2]第2实施方式

第2实施方式将保持编程用的地址的锁存电路和保持读出用的地址的锁存电路分别独立地设置。而且,通过省略地址的再输入,使指令序列更简化。

[2-1]地址寄存器23b的构成

图14是地址寄存器23b的电路图。地址寄存器23b具备锁存电路组50-0、50-1、51-0、51-1。锁存电路组50-0保持面pb0用且编程用的行地址。锁存电路组51-0保持面pb0用且读出用的行地址。锁存电路组50-1保持面pb1用且编程用的行地址。锁存电路组51-1保持面pb1用且读出用的行地址。

锁存电路组50-0具备与输入线din0_p连接的输入端子d、输出端子q以及被输入写入启动信号wen的时钟端子。锁存电路组50-0输出面pb0用且编程用的行地址addw1。

锁存电路组51-0具备与输入线din0_r连接的输入端子d、输出端子q以及被输入写入启动信号wen的时钟端子。锁存电路组51-0输出面pb0用且读出用的行地址addr1。

锁存电路组50-1具备与输入线din1_p连接的输入端子d、输出端子q以及被输入写入启动信号wen的时钟端子。锁存电路组50-1输出面pb1用且编程用的行地址addw2。

锁存电路组51-1具备与输入线din1_r连接的输入端子d、输出端子q以及被输入写入启动信号wen的时钟端子。锁存电路组51-1输出面pb1用且读出用的行地址addr2。

这样构成的地址寄存器23b能够分别独立地保持(1)面pb0用且编程用的行地址、(2)面pb0用且读出用的行地址、(3)面pb1用且编程用的行地址以及(4)面pb1用且读出用的行地址。

[2-2]datainsuspend序列

图15是对第2实施方式涉及的datainsuspend序列进行说明的时间图。另外,本实施方式是2个面pb并行执行编程动作的multi-planeprogram涉及的实施例。

首先,存储控制器3向nand型闪存2发行输入指令“80h”、面pb0用的地址addw1、数据(datain1)以及多编程指令“11h”(图15的步骤(1))。面pb0且编程用的行地址被保持于地址寄存器23b的锁存电路组50-0。

接着,存储控制器3暂时中断编程动作。而且,存储控制器3向nand型闪存2发行第1读指令“00h”、面pb0用的地址addr1以及第2读指令“30h”(图15的步骤(2))。面pb0且读出用的行地址被保持于地址寄存器23b的锁存电路组51-0。

在该时刻,面pb0且编程用的行地址被保持于锁存电路组50-0。因此,存储控制器3不需要再次发行该地址。

接着,存储控制器3对nand型闪存2发行转送指令“3fh”。

接着,存储控制器3针对面pb1执行编程命令。即,存储控制器3对nand型闪存2发行输入指令“80h”、面pb1用的地址addw2、数据(datain2)以及自动编程指令“10h”(图15的步骤(3))。面pb1且编程用的行地址被保持于地址寄存器23b的锁存电路组50-1。

在该时刻,针对面pb0、pb1,编程数据齐聚于数据寄存器29。控制电路24响应于自动编程指令“10h”,与面pb0、pb1并行执行编程动作。

[2-3]比较例

接下来,对比较例涉及的datainsuspend序列进行说明。图16是对比较例涉及的datainsuspend序列进行说明的时间图。在比较例中,地址寄存器23b具备面pb0用的锁存电路组50-0和面pb1用的锁存电路组50-1。即,在比较例中,在相同面pb中,无法同时保持编程用的行地址和读出用的行地址。

存储控制器3针对面pb0按顺序执行编程命令(图16的步骤(1))以及读出命令(图16的步骤(2))。在该时刻,与编程命令对应的行地址不被保持于地址寄存器23b。另外,保持于锁存电路xdl的编程数据被破坏。

接着,存储控制器3向nand型闪存2发行输入指令“80h”、面pb0用的地址addw1、数据(datain1)以及多编程指令“11h”(图16的步骤(3))。

接着,存储控制器3向nand型闪存2发行输入指令“80h”、面pb1用的地址addw2、数据(datain2)以及自动编程指令“10h”(图16的步骤(4))。

在该时刻,针对面pb0、pb1,编程数据齐聚于数据寄存器29。控制电路24响应于自动编程指令“10h”,与面pb0、pb1并行执行编程动作。

在比较例中,与本实施方式相比,多余地追加了编程指令序列(图16的步骤(3))。因此,在比较例中,与本实施方式相比,multi-planeprogram的序列变长。

[2-4]第2实施方式的效果

根据第2实施方式,在暂时中断编程动作来进行读出动作的序列中,地址寄存器23b能够同时保持编程用的行地址和在其后输入的读出用的行地址。由此,在编程动作再开始的情况下,不需要再次输入编程用的行地址。结果,能够实现可使性能更加提高的nand型闪存2以及存储系统1。

[3]第3实施方式

在第3实施方式中,例如使面pb0用的编程数据通过读出动作的后台(background)退避到面pb1用的锁存电路xdl。而且,在读出动作结束之后,使面pb1用的锁存电路xdl所保持的编程数据返回到面pb0用的锁存电路xdl。

[3-1]数据寄存器29-0、29-1的周边电路的构成

图17是提取了数据寄存器29-0、29-1的周边电路的框图。如前述那样,数据寄存器29-0为了面pb0用而设置,数据寄存器29-1为了面pb1用而设置。

数据寄存器29-0经由总线data_pb0与数据总线53连接。数据寄存器29-1经由总线data_pb1与数据总线53连接。另外,数据寄存器29-0、29-1通过数据总线53相互连接。

数据总线53经由总线52与输入输出电路21连接。数据总线53具备多个触发器(未图示)。

振荡器54基于控制电路24的控制,生成面pb0用的时钟clk_pb0以及面pb1用的时钟clk_pb1。时钟clk_pb0被供给至数据寄存器29-0以及数据总线53,时钟clk_pb1被供给至数据寄存器29-1以及数据总线53。振荡器54使用时钟clk_pb0来控制数据寄存器29-0以及数据总线53的锁存动作,使用时钟clk_pb1来控制数据寄存器29-1以及数据总线53的锁存动作。

图18是对数据输入处理以及数据输出处理进行说明的图。

在数据输入处理中,输入至dqx线的输入数据经由输入输出电路21被输入到数据总线53。数据总线53使用时钟clk_pb0将输入数据例如向数据寄存器29-0转送。数据寄存器29-0响应于时钟clk_pb0来锁存输入数据。

在数据输出处理中,数据寄存器29-0响应于时钟clk_pb0来输出保持数据。数据总线53使用时钟clk_pb0将从数据寄存器29-0输出的输出数据向输入输出电路21转送。

图19是对数据寄存器29-0、29-1间的数据转送处理进行说明的图。例如,从数据寄存器29-0向数据寄存器29-1转送数据。

数据寄存器29-0响应于时钟clk_pb0来输出保持数据。从数据寄存器29-0输出的输出数据被输入至数据总线53。数据总线53使用时钟clk_pb0、clk_pb1将来自数据寄存器29-0的输出数据向数据寄存器29-1转送。数据寄存器29-1响应于时钟clk_pb1,对从数据总线53转送来的输出数据进行锁存。

[3-2]datainsuspend序列

图20是对第3实施方式涉及的datainsuspend序列进行说明的时间图。

与第1实施方式同样,存储控制器3针对nand型闪存2执行编程命令(图20的步骤(1)),接着,执行读出命令(图20的步骤(2))。

控制电路24若接收到读出指令序列,则暂时使信号rbn为低电平来执行读出动作。在读出动作中,从面pb0读出的读出数据被保持于锁存电路sdl。

并且,与读出动作并行,控制电路24执行数据寄存器29-0、29-1间的数据转送处理(图20的“xdltoxdl(x2x)”)。由此,保持于数据寄存器29-0(面pb0用的锁存电路xdl)的编程数据退避到数据寄存器29-1(面pb1用的锁存电路xdl)。接着,控制电路24将保持于面pb0用的锁存电路xdl的读出数据向存储控制器3输出。

接着,存储控制器3对nand型闪存2发行转送指令“3fh”。响应于转送指令“3fh”,控制电路24将面pb1用的锁存电路xdl所保持的编程数据向面pb0用的锁存电路xdl转送。即,控制电路24使暂时退避到面pb1用的锁存电路xdl的编程数据返回到面pb0用的锁存电路xdl。

接着,存储控制器3针对nand型闪存2执行编程命令。即,存储控制器3向nand型闪存2发行输入指令“80h”、面pb0用的地址add以及自动编程指令“10h”(图20的步骤(3))。这里,如图20所示,编程数据已经保持于锁存电路xdl。因此,第二次的编程指令序列中不包含编程数据。

然后,控制电路24使用锁存电路xdl所保持的编程数据来执行编程动作。由此,保持于锁存电路xdl的编程数据被写入面pb0。

[3-3]第3实施方式的效果

根据第3实施方式,与第1实施方式同样,能够在暂时中断编程动作来进行读出动作的序列中,将编程数据预先保持到nand型闪存2内。

另外,能够与读出动作并行地执行数据寄存器29-0、29-1间的数据转送处理。由此,在第3实施方式中,与第1实施方式相比,能够将动作时间缩短交换扫描涉及的时间。

[4]第4实施方式

第4实施方式是能够存储2位(bit)以上的数据的存储单体晶体管mt的实施例。

[4-1]存储单体晶体管的阈值分布

对存储单体晶体管mt的可获取的阈值电压vth的分布进行说明。图21是表示存储单体晶体管mt的阈值分布的一个例子的示意图。存储单体晶体管mt能够存储2位以上的数据。在本实施方式中,以存储单体晶体管mt存储3位的数据的情况、即所谓的tlc(triplelevelcell:三层级单体)方式为例进行说明。

3位的数据由下位(lower)位、中位(middle)位以及上位(upper)位规定。在存储单体晶体管mt存储3位的情况下,存储单体晶体管mt可获取与阈值电压对应的8个状态(state)中的任意一个。将8个状态按从低到高的顺序称为状态“er”、“a”、“b”、“c”、“d”、“e”、“f”以及“g”。属于状态“er”、“a”、“b”、“c”、“d”、“e”、“f”以及“g”的每一个的多个存储单体晶体管mt形成分布。

对状态“er”、“a”、“b”、“c”、“d”、“e”、“f”以及“g”分别例如分配数据“111”、“110”、“100”、“000”、“010”、“011”、“001”以及“101”。若设为高位位“x”、中位位“y”以及下位位“z”,则位的排列是“x、y、z”。阈值分布与数据的分配能够任意设计。

为了读出在读出对象的存储单体晶体管mt中存储的数据而判定该存储单体晶体管mt的阈值电压所属的状态。为了判定状态而使用读出电压va、vb、vc、vd、ve、vf以及vg。

状态“er”例如相当于数据被擦除了的状态(擦除状态)。属于状态“er”的存储单体晶体管mt的阈值电压比电压va低,例如具有负值。

状态“a”~“g”相当于向电荷蓄积层注入电荷而对存储单体晶体管mt写入了数据的状态,属于状态“a”~“g”的存储单体晶体管mt的阈值电压例如具有正值。属于状态“a”的存储单体晶体管mt的阈值电压比读出电压va高且为读出电压vb以下。属于状态“b”的存储单体晶体管mt的阈值电压比读出电压vb高并且为读出电压vc以下。属于状态“c”的存储单体晶体管mt的阈值电压比读出电压vc高且为读出电压vd以下。属于状态“d”的存储单体晶体管mt的阈值电压比读出电压vd高且为读出电压ve以下。属于状态“e”的存储单体晶体管mt的阈值电压比读出电压ve高且为读出电压vf以下。属于状态“f”的存储单体晶体管mt的阈值电压比读出电压vf高且为读出电压vg以下。属于状态“g”的存储单体晶体管mt的阈值电压比读出电压vg高且比电压vread低。

电压vread是对与非读出对象的单体单元cu的存储单体晶体管mt连接的字线wl施加的电压,比处于任意状态的存储单体晶体管mt的阈值电压都高。即,控制栅电极被施加了电压vread的存储单体晶体管mt与要保持的数据无关地成为导通状态。

综上所述,各存储单体晶体管mt被设定为8个状态的任意一个,能够存储3位数据。另外,写入以及读出以一个单体单元cu内的页为单位进行。在存储单体晶体管mt存储有3位数据的情况下,对一个单体单元cu内的三个页分别分配下位位、中位位以及高位位。针对下位位、中位位以及高位位一并写入或者读出的页分别被称为下位(lower)页、中位(middle)页以及上位(upper)页。

[4-2]读出放大器单元28以及数据寄存器29的构成

图22是第4实施方式涉及的读出放大器单元28-0、28-1、以及数据寄存器29-0、29-1的框图。

各读出放大器单元sau具备读出放大器sa以及数据锁存电路sdl、adl、bdl、cdl。读出放大器sa以及数据锁存电路sdl、adl、bdl、cdl连接成能够相互转送数据。

数据锁存电路sdl、adl、bdl、cdl暂时保持数据。在写入动作时,读出放大器sa根据数据锁存电路sdl保持的数据,控制位线bl的电压。数据锁存电路adl、bdl、cdl被用于存储单体晶体管mt保持2位以上的数据的多值动作。即,数据锁存电路adl为了保持下位页而使用。数据锁存电路bdl而了保持中位页而使用。数据锁存电路cdl为了保持上位页而使用。读出放大器单元sau所具备的数据锁存电路的数量能够根据一个存储单体晶体管mt保持的位数任意变更。

[4-3]动作

图23a以及图23b是对第4实施方式涉及的datainsuspend序列进行说明的时间图。例如,针对面pb0进行编程。

首先,存储控制器3对nand型闪存2发行指令“01h”、输入指令“80h”、地址add(l)、数据ld以及多编程指令“1ah”。指令“01h”是指定下位页的指令。地址add(l)意味着下位页用的地址。数据ld意味着下位数据(下位页)。控制电路24若接收到该指令序列,则暂时使信号rbn为低电平(忙碌状态),执行数据输入处理。并且,按锁存电路xdl、锁存电路adl的顺序转送数据ld。

接着,存储控制器3暂时中断编程动作。而且,存储控制器3针对nand型闪存2执行读出命令。即,存储控制器3向nand型闪存2发行指令“0xh”、第1读指令“00h”、地址add(r)以及第2读指令“30h”。指令“0xh”是指定任意的页的指令。地址add(r)是读地址。控制电路24若接收到该指令序列,则暂时使信号rbn为低电平,执行读出动作。然后,与第1实施方式同样地执行数据输出处理以及交换扫描。

接着,存储控制器3向nand型闪存2发行指令“02h”、输入指令“80h”、地址add(m)、数据md以及多编程指令“1ah”。指令“02h”是指定中位页的指令。地址add(m)是指中位页用的地址。数据md是指中位数据(中位页)。控制电路24如果接收到该指令序列,则暂时使信号rbn为低电平(忙碌状态),来执行数据输入处理。并且,按锁存电路xdl、锁存电路bdl的顺序进行转送数据md。

接着,存储控制器3对nand型闪存2发行指令“03h”、输入指令“80h”、地址add(u)以及自动编程指令“10h”。指令“03h”是指定上位页的指令。地址add(u)是指上位页用的地址。数据ud是指上位数据(上位页)。控制电路24如果接收到该指令序列,则使信号rbn为低电平(忙碌状态),来执行数据输入处理。并且,按锁存电路xdl、锁存电路cdl的顺序转送数据ud。

在该时刻,应该向存储单体晶体管mt写入的3位的数据齐聚于锁存电路adl、bdl、cdl。然后,控制电路24执行向单体单元cu一次编程(program)下位页、中位页以及上位页的全序列编程处理。

[4-4]第4实施方式的效果

根据第4实施方式,能够实现datainsuspend序列、以及全序列编程。另外,能够与第1实施方式同样,将在暂停前输入至nand型闪存2的编程数据在暂停后也保持在nand型闪存2内。

对本发明的几个实施方式进行了说明,但这些实施方式只是例示,并不意图限定发明的范围。这些新的实施方式能够通过其他的各种方式加以实施,在不脱离发明主旨的范围,能够进行各种省略、置换、变更。这些实施方式及其变形包含在发明的范围及主旨中,并且,包含在技术方案所记载的发明及其等同的范围。

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