半导体存储装置及输入数据的验证方法与流程

文档序号:11235377阅读:1409来源:国知局
本发明涉及一种半导体存储装置,尤其涉及与非(nand)型或或非(nor)型快闪存储器(flashmemory)的输入数据(data)的验证方法。
背景技术
::nand型快闪存储器的编程(program)动作中,对所选择的字线(wordline)施加高电压的编程电压(例如15v~20v),对非选择的字线施加中间电位(例如10v),将与要编程的数据“0”或“1”相应的电位供给至位线(bitline),由此,使电子从沟道(channel)通过栅极绝缘膜而穿隧(tunneling)至选择存储单元(memorycell)的浮动栅极(floatinggate)(例如专利文献1)。[现有技术文献][专利文献][专利文献1]日本专利特开2011-253591号公报技术实现要素:[发明所要解决的问题]图1表示nand型快闪存储器的主要部分的结构。该图1中例示了1个外部输入/输出端子10与页面缓冲器(pagebuffer)/读出(sense)电路30之间的传输路径。传输路径包括:输入缓冲器22a,输入来自输入/输出端子10的数据;输入线(line)24a,搬送来自输入缓冲器22a的单端(singleend)的输入数据;以及驱动器(driver)26a,将单端的数据转换为差动数据,并将差动数据通过数据线dl、/dl而供给至页面缓冲器/读出电路30。进而,传输路径更具有:驱动器26b,将来自页面缓冲器/读出电路30的差动数据转换为单端的数据;输出缓冲器22b,输出经转换的数据;以及输出线24b,将从输出缓冲器22b输出的输出数据搬送至输入/输出端子10。外部输入/输出端子10是由命令(command)、地址(address)、输入/输出数据共同使用,但这些数据的识别是根据此处未图示的外部控制信号(例如命令锁存使能(commandlatchenable)信号、地址锁存使能(addresslatchenable)信号等)来进行。例如,当命令锁存使能信号为h电平(level)、地址使能信号为l电平时,出现在外部输入/输出端子10处的数据将被识别为命令,该命令通过输入缓冲器22a而存储于控制器40的锁存电路42中。控制器40对存储于锁存电路42中的命令进行解读,以控制编程动作、读出动作或擦除动作等。而且,当地址使能信号为h电平、命令使能信号为l电平时,出现在外部输入/输出端子10处的数据将被识别为地址,该地址通过输入缓冲器22a而存储于未图示的地址寄存器(addressregister)中。当地址使能信号为l电平、命令使能信号为l电平时,出现在外部输入/输出端子10处的数据通过输入缓冲器22a、输入线24a、驱动器26a而加载(load)至页面缓冲器/读出电路30中。图2表示输入数据被加载至页面缓冲器/读出电路时的时序图(timingchart)。此处,假设已输入有编程命令及地址。当写入使能(writeenable)信号wen为h电平时,可对页面缓冲器/读出电路30输入数据,为l电平时,可输出数据。当pcb信号为h电平时,可进行驱动器26a、26b与数据线dl、/dl间的数据传输,当ya信号为h电平时,可选择页面缓冲器/读出电路30的列地址。如该图2所示,输入至外部输入/输出端子10的输入数据d0、d1、d2、d3被分别加载至页面缓冲器(pb)/读出电路30的列地址a、a+1、a+2、a+3。接下来,加载至页面缓冲器/读出电路30中的数据被编程至由行选择电路所选择的页面,随后,进行判定编程是否已成功的编程校验(programverify)。编程校验是对选择页面施加校验电压的读出,验证存储单元的阈值是否处于“0”的分布幅度内。若未到达“0”的分布幅度,则存储单元被判定为不合格,对该存储单元再次施加比前次的编程脉冲大δv的编程脉冲。在尽管编程脉冲的施加次数已达到预定的次数仍为不合格存储单元的情况下,则将包含该选择页面的块(block)作为坏块(badblock)来管理。如此,以往的快闪存储器中,在对输入数据进行编程时,可通过编程校验来检查(check)输入数据是否被正确编程至选择页面中,但若页面缓冲器/读出电路30的一部分存在不良,或者若外部输入/输出端子10与页面缓冲器/读出电路30之间的传输路径存在不良,则输入数据将无法被正确加载至页面缓冲器/读出电路30中,结果导致错误的数据受到编程。今后,随着晶体管微细化的进一步推进,若考虑到构成页面缓冲器/读出电路30的锁存电路的晶体管产生不良,或者其动作不稳定化,而且,从外部输入/输出端子10至页面缓冲器/读出电路30的传输路径产生缺陷或故障(例如短路(short)或开路(open)等),或者因数据传输速度的高速化引起的噪声(noise)或电源电压的变动造成的数据破坏的可能性,则需要对从外部输入/输出端子对页面缓冲器/读出电路输入的数据进行验证。这不仅是nand型快闪存储器,也是将从外部端子输入的数据存储至存储器的结构的半导体存储装置共同的问题。
发明内容本发明解决如此的以往问题,目的在于提供一种半导体存储装置,其具备对从外部端子导入内部的输入数据进行验证的功能。[解决问题的技术手段]本发明的半导体存储装置包括:外部端子;存储器阵列;数据存储部件,存储从所述外部端子输入的输入数据,并能够将所存储的输入数据编程至所述存储器阵列;以及比较部件,对从所述外部端子存储于所述数据存储部件中的输入数据、与从所述数据存储部件读出的输入数据进行比较。优选的是,所述比较部件是在对所述输入数据进行编程时实施。优选的是,所述比较部件对所述数据存储部件的同一列地址的输入数据进行比较。优选的是,所述数据存储部件通过输入线及输出线而连接于所述外部端子,所述比较部件对在所述输入线上传输的输入数据与在所述输出线上传输的输入数据进行比较。优选的是,所述比较部件是在测试模式(testmode)时实施。优选的是,半导体存储装置还包括:判定部件,基于所述比较部件的比较结果来判定所述数据存储部件有无故障。优选的是,半导体存储装置还包括对半导体存储装置的动作进行控制的控制部件,所述控制部件包含能够存储从所述外部端子输入的命令的存储电路,所述比较部件对被存储于所述存储电路中的输入数据与从所述数据存储部件读出的输入数据进行比较。优选的是,所述控制部件在由所述比较部件判定为数据不一致时,将存储于所述存储电路中的数据再输入至所述数据存储部件。本发明的输入数据的验证方法是半导体存储装置的输入数据的验证方法,所述半导体存储装置包括外部端子、存储从所述外部端子输入的输入数据的数据存储部件、以及连接于所述数据存储部件的存储器阵列,所述输入数据的验证方法包括下述步骤:从所述外部端子将输入数据加载至所述数据存储部件;读出被加载至所述数据存储部件中的输入数据;以及对存储于所述数据存储部件中的输入数据与从所述数据存储部件读出的输入数据进行比较。优选的是,所述比较的步骤是在对输入数据进行编程时进行。优选的是,所述加载的步骤及所述读出的步骤是在1个数据输入循环(cycle)中实施。优选的是,所述比较的步骤是在测试模式时进行。优选的是,验证方法还包括下述步骤:基于所述比较的步骤的比较结果,来判定所述数据存储部件有无故障。优选的是,所述加载的步骤包含存储在输入线上传输的输入数据的步骤,所述比较的步骤对存储的所述输入数据与从所述数据存储部件读出的输入数据进行比较。优选的是包括下述步骤:当通过所述比较的步骤判定为输入数据不一致时,将通过所述存储的步骤所存储的数据再输入至所述数据存储部件。(发明的效果)根据本发明,通过设置对从外部端子存储于数据存储部件中的输入数据、与从数据存储部件读出的输入数据进行比较的比较部件,能够验证输入数据是否被正确存储于数据存储部件中。附图说明图1是表示以往的快闪存储器的主要部分的结构的方块图;图2是对以往的快闪存储器的输入数据被加载至页面缓冲器/读出电路时的动作进行说明的时序图;图3是表示本发明的实施例的nand型快闪存储器的整体的概略结构的图;图4是表示本发明的实施例的存储单元阵列的nand串(string)的结构的电路图;图5是表示本实施例的页面缓冲器/读出电路的结构的图;图6是对从输入/输出端子对页面缓冲器/读出电路加载数据进行说明的图;图7是表示用于进行本发明的第1实施例的输入数据的验证的验证电路的结构的图;图8是本发明的第1实施例的输入数据的验证时的各部的时序图;图9是对本发明的第1实施例的输入数据的验证方法进行说明的流程图;图10是对本发明的第2实施例的输入数据的验证方法进行说明的流程图;图11是表示用于实施本发明的第2实施例的输入数据的验证方法的结构的图。附图标记说明:10、i/o、i/o-0、i/o-1、i/o-7:外部输入/输出端子;22a:输入缓冲器;22b:输出缓冲器;24a:输入线;24b:输出线;26a、26b:驱动器;30、170:页面缓冲器/读出电路;40、150:控制器;42、152:锁存电路;100:快闪存储器;110:存储器阵列;110-1、110-7、120:输入/输出缓冲器;130:验证电路;132-0、132-1、132-7:比较电路;134:与电路;136:判定电路;140:地址寄存器;160:字线选择电路;180:列选择电路;190:内部电压产生电路;200:常规区段;210:备用区段;a、a+1、a+2、a+3:列地址;ax:行地址信息;ay:列地址信息;blcd、blclamp、blpre、dtg、eq_en、q1、q2、reg、vg:晶体管;blk(0)、blk(1)、blk(m-1):存储块;d0、d1、d2、d3:输入数据;dl、/dl:数据线;gbl0、gbl0、gbln-1、gbln:位线;mc0、mc1、mc2、mc31:存储单元nu:nand串单元;q3:校验用晶体管;s100~s112、s200~s210:步骤;sgd、sgs:选择栅极信号;sl:共用的源极线;slr:锁存节点;sls:节点;sns:读出节点;t0、t1、t2、t3:时间期间;td:位线侧选择晶体管;ts:源极线侧选择晶体管;v1、v2:电压供给部;vers:擦除电压;vpass:通过电压;vpgm:写入电压;vread:读出通过电压;wen:写入使能信号;wl0、wl1、wl2、wl31:字线。具体实施方式接下来,参照附图来详细说明本发明的实施方式。此处,作为优选形态,例示nand型快闪存储器。另外,应留意的是,附图中,为了便于理解而强调表示各部分,与实际元件(device)的比例(scale)并不相同。[实施例]将本发明的实施例的快闪存储器的主要部分的结构示于图3。但是,此处所示的快闪存储器的结构仅为例示,本发明未必限定于此种结构。本实施例的快闪存储器100包括:存储器阵列110,呈矩阵状地排列有多个存储单元;输入/输出缓冲器120,连接于外部输入/输出端子i/o;验证电路130,进行从外部输入/输出端子i/o输入的输入数据的验证;地址寄存器140,从输入/输出缓冲器120接收地址数据;控制部150,从输入/输出缓冲器120接收命令数据等,以控制各部分;字线选择电路160,从地址寄存器140接收行地址信息ax,对行地址信息ax进行解码(decode),并基于解码结果来进行块的选择及字线的选择等;页面缓冲器/读出电路170,存储从由字线选择电路160所选择的页面读出的数据,或者存储要编程至所选择的页面的输入数据;列选择电路180,从地址寄存器140接收列地址信息ay,对列地址信息ay进行解码,并基于该解码结果来选择页面缓冲器/读出电路170内的列地址的数据;以及内部电压产生电路190,生成数据的读出、编程及擦除等所需的各种电压(写入电压vpgm、通过(pass)电压vpass、读出通过电压vread、擦除电压vers等)。存储器阵列110在列方向上具有m个存储块blk(0)、blk(1)、…、blk(m-1)。靠近块blk(0)而配置有页面缓冲器/读出电路170。在1个存储块中,例如图4所示,形成有多个nand串单元nu,该nand串单元nu是由多个存储单元串联连接而成。1个nand串nu包含:串联连接的多个存储单元mci(i=0、1、…、31)、位线侧选择晶体管td、及源极线(sourceline)侧选择晶体管ts。位线侧选择晶体管td的漏极(drain)连接于位线gbl0~gbln中相对应的1条位线,源极线侧选择晶体管ts的源极连接于共用的源极线sl。存储单元mci的控制栅极连接于字线wli,选择晶体管td、ts的栅极连接于与字线wli平行的选择栅极线sgd、sgs。字线选择电路160基于行地址信息ax,通过选择栅极线sgs、sgd来驱动选择晶体管td、ts,以选择块或字。存储单元典型的是具有金属氧化物半导体(metaloxidesemiconductor,mos)结构,该mos结构包括:作为n型扩散区域的源极/漏极,形成在p阱(well)内;穿隧(tunnel)氧化膜,形成在源极/漏极间的沟道(channel)上;浮动栅极(电荷蓄积层),形成在穿隧氧化膜上;以及控制栅极,通过介电质膜而形成在浮动栅极上。当浮动栅极中未蓄积有电荷时,即写入有数据“1”时,阈值处于负状态。当在浮动栅极中蓄积有电荷时,即写入有数据“0”时,阈值偏移(shift)为正。其中,存储单元既可为存储1个位(二值数据)的单层单元(singlelevelcell,slc)型,也可为存储多个位的多层单元(multilevelcell,mlc)型。表1是表示在快闪存储器的各动作时施加的偏电压的一例的表(table)。在读出动作时,对位线施加正电压,对选择字线施加例如0v,对非选择字线施加通过电压vpass(例如4.5v),对选择栅极线sgd、sgs施加正电压(例如4.5v),使位线侧选择晶体管td、源极线侧选择晶体管ts导通,对共用源极线施加0v。在编程(写入)动作时,对选择字线施加高电压的编程电压vpgm(15v~20v),对非选择的字线施加中间电位(例如10v),使位线侧选择晶体管td导通,使源极线侧选择晶体管ts断开,并将与“0”或“1”的数据相应的电位供给至位线gbl。在擦除动作时,对块内的被选择的字线施加0v,对p阱施加高电压(例如21v),将浮动栅极的电子抽出至基板,由此以块为单位来擦除数据。表1图5是表示页面缓冲器/读出电路的结构的图。页面缓冲器/读出电路170具备:读出电路,在读出动作时等感测选择存储单元的位线电位;以及锁存电路,存储要编程的输入数据或从存储器阵列读出的数据等。读出电路包含:用于将从电压供给部v1供给的电压预充电至位线的晶体管blpre、用于对位线进行钳位(clamp)的晶体管blclamp、用于在读出节点(sensenode)sns与锁存节点(latchnode)slr间传输电荷的晶体管blcd、用于将锁存节点slr的电位传输至与电压供给部v2连接的晶体管vg的晶体管dtg、以及用于将电压供给部v2耦合于读出节点sns的晶体管reg。晶体管dtg例如在编程校验等中必须使读出节点sns从l电平反相为h电平时进行动作。锁存电路包含:经交叉耦合(crosscouple)的一对逆变器(inverter);用于使节点slr/sls等效的晶体管eq_en;将节点slr/sls连接至数据线dl、/dl的晶体管q1、q2;以及连接于节点sls的校验用晶体管q3。对晶体管q1、q2的栅极供给pcb信号。图6是表示从外部输入/输出端子向页面缓冲器/读出电路170加载输入数据的一例的图。例如,当快闪存储器100具有×8的外部输入/输出端子时,从外部输入/输出端子i/o-0~i/o-7通过各输入/输出缓冲器110-1~110-7来将输入数据di加载至页面缓冲器/读出电路170。页面缓冲器/读出电路170例如具有:被分割为区段(sector)0~区段7这8个区段的常规(regular)区段200;以及备用(spare)区段210。1个区段例如包含256字节(byte),此时,常规区段200整体存储约2k字节的数据。备用区段210例如包含64字节,存储用户数据或坏块等信息。对于1个区段,分配有外部输入/输出端子i/o-0~i/o-7,即,在对1个区段加载输入数据时,对于1个外部输入/输出端子分配有256位(bit)(256位×8=1区段)。列选择电路180基于在编程动作时接收的列地址信息ay,来选择被输入至外部输入/输出端子i/o-0~i/o-7中的数据所要加载的列地址。图6表示从外部输入/输出端子i/o-0~i/o-7输入的数据被加载至区段0的例子。接下来,对本实施例的验证电路130进行说明。本实施例的验证电路130进行从外部输入/输出端子输入的输入数据的验证。图7表示验证电路130的优选结构例。另外,该图7所示的传输路径为与图1所示的传输路径同样的结构。验证电路130包含比较电路132,该比较电路132输入被存储于控制器150的锁存电路152中的数据与从输出线24b读出的数据,并对两数据进行比较。比较电路132例如包含符合电路(ex-nor)。控制器150通常使从外部输入/输出端子导入的命令存储于锁存电路152中,并进行其解读,但在输入命令以外的期间,例如,在输入数据被加载至页面缓冲器/读出电路170的期间,处于空闲(idle)状态。本实施例中,当利用锁存电路152的空闲状态,将输入数据加载至页面缓冲器/读出电路170时,同时使输入数据存储于锁存电路152中。具体而言,控制器150在接收编程命令,并基于该命令来执行编程序列(sequence)时,使随后从外部输入/输出端子导入至内部的输入数据存储于锁存电路152中。进而,控制器150在输入数据刚被加载至页面缓冲器/读出电路170,便使从页面缓冲器/读出电路170加载的数据读出至输出线24b上,并使比较电路132对所读出的数据与存储于锁存电路152中的数据进行比较。若所读出的数据与被存储于锁存电路152中的数据不一致,则可料想页面缓冲器/读出电路170及/或传输路径存在故障。图8是本实施例的输入数据的验证时的时序图。本实施例中,当输入数据被加载至内部时,在直至下个输入数据被加载为止的期间,实施所加载的输入数据的验证。换言之,数据输入循环伴随输入数据的验证循环。图8中,1个数据输入循环具有时间期间t0与时间期间t1。在时间期间t0,从外部输入/输出端子将输入数据d0导入至内部,输入数据d0被加载至由列选择电路180所选择的页面缓冲器/读出电路170的列地址a。例如,如图6所示,若为×8的输入/输出端子,则输入数据d0为8位数据。在下个时间期间t1,进行输入数据d0的验证。即,使写入使能信号wen由h电平转变为l电平,将被存储于页面缓冲器/读出电路170的地址a的输入数据d0读出至数据线dl、/dl,比较电路132对被存储于锁存电路152中的输入数据d0与读出至输出线24b上的输入数据d0进行比较。当比较电路132的比较结果表示两数据不一致时,进行何种后处理为任意,例如可将比较结果提供给控制器150,从而再次将输入数据d0加载至页面缓冲器/读出电路170。或者,也可向外部控制器输出表示存在输入数据的破坏的警告。当输入数据d0的加载及验证结束时,加载下个输入数据。下个数据输入循环具有时间期间t2、时间期间t3。在时间期间t2,将输入数据d1存储于锁存电路152,且加载至页面缓冲器/读出电路170的被选择的列地址a+1。列地址a+1既可为使列地址a自动增量(increment)者,也可从外部提供。在下个时间期间t4,与所述同样地进行输入数据d1的验证。图9是本实施例的编程动作的流程。首先,从外部控制器向快闪存储器100的外部输入/输出端子依序供给编程命令及地址,将编程命令存储于锁存电路152,将地址导入至地址寄存器140(s100)。控制器150对存储于锁存电路152中的编程命令进行解读,开始编程序列。接下来,从外部控制器向快闪存储器100的外部输入/输出端子供给输入数据,并将输入数据通过输入线24a而存储于锁存电路152中(s102),且加载至页面缓冲器/读出电路170的被选择的列地址(s104)。接下来,控制器150使被加载至页面缓冲器/读出电路170中的输入数据输出至输出线24b上(s106),使比较电路132对被存储于锁存电路152中的输入数据与被读出至输出线24b上的输入数据进行比较,进行输入数据的验证(s108)。当所有输入数据的加载完成时(s110),将存储于页面缓冲器/读出电路170中的输入数据编程至选择页面(s112)。此处,控制器150在输入数据的验证结果为不合格时(由比较电路判定为两数据不一致时),可在进行编程之前,使存储于锁存电路152中的输入数据再输入至页面缓冲器/读出电路170,从而进行再验证。该再输入/再验证也可在所有输入数据的输入结束后执行,此时,锁存电路152继续存储输入数据,直至进行再验证为止。而且,控制器150也可在输入数据的再输入/再验证的次数达到一定数量的情况下,将表示无法编程或物理故障的信号输出至外部控制器。接下来,对本发明的第2实施例进行说明。第1实施例中,是在编程动作时执行输入数据的验证,但在第2实施例中,在测试模式时执行输入数据的验证。图10表示第2实施例的输入数据的验证方法的流程。控制器150在锁存电路152从外部输入/输出端子收到测试模式用命令时(s200),开始测试模式的序列。在测试模式下,从外部控制器向快闪存储器100的外部输入/输出端子发送测试数据,将该测试数据存储于锁存电路152中(s202),且加载至页面缓冲器/读出电路170(s204)。接下来,从页面缓冲器/读出电路170将测试数据读出至输出线24b(s206),由比较电路132对被存储于锁存电路152中的测试数据与被读出至输出线24b上的测试数据进行比较,进行测试数据的验证(s208)。该验证结果供有无故障的判定用(s210)。在1个优选形态中,以页面缓冲器/读出电路170的区段为单位来实施测试。图11表示从外部输入/输出端子i/o-0~i/o-7将测试数据加载至页面缓冲器/读出电路170的区段0的例子。例如,当1个区段为256字节时,测试数据在256的数据输入循环中从外部输入/输出端子i/o-0~i/o-7被导入至内部。在外部输入/输出端子i/o-0~i/o-7上,分别连接有8根输入/输出线24a、24b,8根输入/输出线连接于锁存电路152,并且通过列选择电路180而连接于区段0。列选择电路180包含多个用于选择列地址的选择用晶体管,例如,在1条输入/输出线24a、24b上,连接有256个选择用晶体管。列选择电路180根据列地址来使256个选择用晶体管中的任一者导通,将输入/输出线24a、24b连接于所选择的列地址。在测试模式下,列地址可通过地址计数器(addresscounter)来增量,未必需要从外部输入。当输入有8位的测试数据时,比较电路132-0、132-1、…132-7对被存储于锁存电路152中的测试数据与从区段0读出至输出线24b上的测试数据进行比较,并将该比较结果提供给与电路134。与电路134每当输入8位的测试数据时,将其比较结果输出至判定电路136。判定电路136在对区段0的所有测试数据的加载完成时,判定区段0的电路有无故障、或者对区段0的传输路径有无故障。以后,对于区段1、区段2、…区段7也实施同样的处理。当然,除了以区段为单位来判定有无故障以外,也可在对所有区段的测试数据的加载完成时,判定电路136提供判定结果。如此,根据本实施例,无须使用测试器(tester)等设备,便能够容易且高速地判定页面缓冲器/读出电路或其传输路径上有无故障。最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1