改进编程的非易失性存储器及为此的方法

文档序号:6749628阅读:167来源:国知局
专利名称:改进编程的非易失性存储器及为此的方法
技术领域
本发明涉及诸如电可擦可编程只读存储器(EEPROM)和快速EEPROM(flash EEPROM)之类的非易失性半导体存储器,更具体地说涉及对它们的存储器状态编程的电路和技术。
EEPROM和电可编程只读存储器(EPROM)是可被擦除并且可把新数据写入或者“编程写入”它们的存储单元的非易失性存储器。
EPROM使用场效应晶体管结构中在源极区和漏极区之间,布置在半导体衬底中的沟道区上方的浮动(不连接的)导电栅。随后在浮栅的上方设置控制栅(gate)。晶体管的阈值电压特性由保留在浮栅上的电荷的数量控制。即,对于浮栅上指定电平的电荷来说,在晶体管导通以便允许其源极区和漏极区之间的导通之前,必须施加给控制栅对应电压(阈值)。
浮栅可保持一定范围的电荷,于是,EPROM存储单元可被编程为阈值电压窗口内的任意阈值电平。阈值电压窗口的尺寸由存储器的最小和最大阈值电平限定,所述最小和最大阈值电平又对应于可设计到浮栅上的电荷的范围。阈值窗口一般取决于存储器的特性、工作条件和历史。实际上,该窗口内的各个截然不同的可分辨的阈值电平可用于指定存储单元的一定存储状态。
对于EPROM存储器来说,一般通过加速来自于衬底沟道区的电子,使之通过薄的栅电介质并且到达浮栅之上,把用作存储单元的晶体管设计成程控状态。通过利用紫外线辐射,除去浮栅上的电荷,可大批擦除存储器。


图1A示意表示了呈具有用于保存电荷的浮栅的EEPROM单元形式的非易失性存储器。电可擦可编程只读存储器(EEPROM)的结构类似于EPROM,但是还提供了在不需要暴露于紫外线辐射的情况下,当施加恰当的电压时,以电学方式增加和消除电荷的机制。
当整个单元阵列,或者该阵列的较大一组单元被一起(即立即)电擦除时,这种EEPROM单元的阵列被称为“快速”EEPROM阵列。一旦被擦除,则该组单元可被重新编程。
图1B示意表示了呈具有用于保存电荷的介电层的NROM单元形式的非易失性存储器。代替把电荷保存在浮栅中,它具有用于保存电荷的介电层。例如,美国专利No.5768192和6011725公开了具有夹在两层二氧化硅之间的捕集(trapping)电介质的非易失性存储单元。
单元和阵列结构图1C示意表示了具有选择栅(gate)和控制或操纵栅的快速EEPROM单元。在美国专利No.5313421中描述了具有这种单元结构的存储器,该专利作为参考包含于此。存储器单元10具有位于源极14和漏极16扩散之间的“分离沟道”12。形成的单元实际上具有串联的两个晶体管T1和T2。T1用作具有浮栅20和控制栅30的存储晶体管。控制栅也被称为操纵栅30。浮栅能够保存数量可选择的电荷。可流过沟道的T1部分的电流量取决于操纵栅(gate)30上的电压以及驻留在介入中间的浮栅20上的电荷数量。T2用作具有选择栅40的选择晶体管。当T2由选择栅40上的电压导通时,它允许沟道的T1部分中的电流在源极和漏极之间通过。
图1D示意表示了具有双浮栅和独立的选择栅及控制栅的另一快速EEPROM。在同时待审的美国专利申请No.09/343493(申请日1999年6月30日)中描述了具有这种单元结构的存储器,该专利申请的公开内容作为参考包含于此。除了实际上具有三个串联晶体管之外,存储器单元10′类似于图1C的存储器单元。在一对存储晶体管T1-左和T1-右之间是选择晶体管T2。存储晶体管分别具有浮栅20′和20″及操纵栅30′和30″。选择晶体管T2由控制栅40′控制。在任意时间,该对存储晶体管中只有一个被访问以便进行读取或编程。当存储单元T1-左被访问时,T2和T1-右都被导通,以便允许沟道的T1-左部分中的电流在源极和漏极之间通过。类似地,当存储单元T1-右被访问时,T2和T1-左被导通。通过使一部分选择栅多晶硅接近浮栅,并且向选择栅施加相当大的正电压(例如20V),以致保存在浮栅内的电子能够穿过势垒到达选择栅多晶硅,实现擦除。
图2是具有解码器的成行成列的存储单元的可寻址阵列的示意方框图。形成存储单元的二维阵列100,每行存储单元由它们的源极和漏极以串级链的形式连接。每个存储单元50具有源极54、漏极56和操纵栅60及选择栅70。一行中的单元使它们的选择栅与字线110连接。一列中的单元使它们的源极和漏极分别与位线124、126相连。一列中的单元还使它们的操纵栅由操纵线130相连。
当单元50被寻址以便编程或读取时,必须分别向单元的源极54和漏极56,操纵栅60和选择栅70提供恰当的编程或读取电压(VS、VD、VSTG、VSLG)。字线解码器112有选择地把选择的字线和选择电压VSLG相连。位线解码器122有选择地把被寻址列中的一对位线124、126分别和源极电压VS和漏极电压VD相连。类似地,操纵线解码器132有选择地把被寻址列中的操纵线130和操纵或控制栅电压VSTG相连。
从而,借助沿一对位线和一条操纵线的列方向,以及沿一条字线的行方向的选择或解码,快速EEPROM单元的二维阵列的具体单元被寻址以供编程或读取。为了提高性能,列解码器122和132允许选择一组列,于是对应的一组或者大量单元将被并行访问,从而逐块地访问单元行。
以前,许多快速EEPROM使字线沿着各行连接单元的所有控制栅。从而,字线实际上起两个作用行选择;以及向行中的所有单元提供控制栅电压以便读取或编程。利用单一电压通常难以极佳地完成这两个作用。如果电压足以满足行选择,则可能高于编程所需的电压。但是,在单元具有独立的操纵栅和选择栅的情况下,与一行中的单元的选择栅相连的字线只需履行选择功能,而操纵线履行向一列中的各个单元提供最佳、独立的控制栅电压的功能。
单元特征在通常的双态EEPROM单元中,至少确定一个电流断点水平(level),以便把导通窗口划分成两个区域。当通过施加预定的固定电压读取一个单元时,通过和断点水平(或者基准电流IREF)比较,其源极/漏极电流被归结为存储状态。如果读取的电流高于断点水平的电流或者IREF,则确定该单元处于一个逻辑状态(例如“0”状态),而如果电流小于断点水平的电流,则确定该单元处于另一逻辑状态(例如“1”状态)。从而,这种双态单元保存一位的数字信息。通常以存储器系统的一部分的形式提供可外部编程的基准电流源,以便产生断点水平电流。
为了提高存储容量,随着半导体技术的发展,在密度越来越大的情况下制备快速EEPROM器件。增大存储容量的另一种方法是使每个存储单元保存两个以上的状态。
对于多态或者多电平EEPROM存储单元来说,导通窗口由一个以上的断点划分成两个以上的区域,从而每个单元能够保存一位以上的数据。从而随着每个单元能够保存的状态的数目的增加,增大了指定EEPROM阵列能够保存的信息。在美国专利No.5172338中描述了具有多态或者多电平存储单元的EEPROM或者快速EEPROM。
实际上,通常通过检测当向控制栅施加基准电压时,穿过单元的源极和漏极的导通电流,读取单元的存储状态。从而,对于单元的浮栅上的各个指定电荷,可检测相对于固定基准控制栅电压的对应导通电流。类似地,可编程到浮栅上的电荷的范围确定对应的阈值电压窗口或者对应的导通电流窗口。
另一方面,代替检测被划分的电流窗口中的导通电流,能够确定控制栅的导致导通电流刚好“切断”或横断固定的基准电流的阈值电压。从而,对划分的阈值电压窗口之间的阈值电压进行检测。
图3图解说明了对于在任意时刻,浮栅可有选择地保存的四种不同电荷Q1-Q4的源极-漏极电流ID和控制栅电压VSTG之间的关系。ID与VSTG的四条实线代表可编程到存储单元的浮栅上的,分别对应于四种可能存储状态的四种可能电荷电平。例如,一组单元的阈值电压窗口可从0.5V~3.5V。通过以0.5V的间隔把阈值窗口划分成五个区域,可划定六种存储状态。例如,如果如图所示使用2μA的基准电流IREF,则利用Q1编程的单元可被认为处于存储状态“1”,因为其曲线在由VSTG=0.5V和1.0V划定界限的阈值窗口区域中和IREF相交。类似地,Q4处于存储状态“5”。
如上所述,如果使存储单元保存更多的状态,则其阈值窗口被划分得更细。为了能够获得所需的分辨率,这需要编程和读取操作方面的精度更高。
美国专利No.4357685公开一种对双态EPROM编程的方法,其中单元被设计成指定状态,它经受连续的编程电压脉冲,每次向浮栅增加增量电荷。在脉冲之间,单元被读回或者被验证,以便确定其相对于断点水平的源极-漏极电流。当确认电流状态已达到所需状态时,停止编程。使用的编程脉冲序列具有逐渐增大的周期或者幅值。
现有的编程电路仅仅施加编程脉冲,从擦除或者接地状态步进通过阈值窗口,直到达到目标状态为止。实际上,为了得到足够的分辨率,通过每个分割或者划定区域至少需要大约5个编程步骤。对于双态存储单元来说,这种性能是可接受的。但是,对于多态单元来说,所需步骤的数目随着分区的数目的增大而增大,于是,必须提高编程精度或分辨率。例如,为了达到目标状态,16态单元可能平均需要至少40个编程脉冲。
特别地,本发明的目的是提供能够支持存储状态显著多于2的高性能快速EEPROM。
本发明的另一目的能够替换计算机系统中的磁盘存储器的快速EEPROM半导体芯片。
本发明的一个目的是提供用于快速EEPROM器件的改进编程电路和方法。
本发明的另一目的是提供制造更简单、更容易,并且在延长的使用期内具有更高的精度和可靠性的编程电路。
通过用于非易失性浮栅器件的编程电路和技术方面的改进,实现这些及其它目的。本发明的各个方面有助于提高性能,同时获得所需的细微编程分辨率。本发明的一个特征是使用具有关于要编程的数据(目标状态)优化的幅值的编程脉冲,从而在第一步或者头几步内,存储单元被编程到尽可能接近目标状态,而不会超出目标状态。第二特征是通过一系列的操作阶段,反复进行编程,就每个阶段来说,编程波形产生越来越精细的编程步骤。另一特征是在并行适用于一组存储单元的编程操作中实现前两个特征。这样,在并行操作进一步提高性能的时候,能够同时获得高的分辨率并且能够更快地收敛于目标状态。
根据本发明的一个方面,在具有多状态单元的存储器中,改进包括可并行应用于一组存储单元的编程电路和方法。相对于要保存在单元中的数据优化并行施加给各个单元的编程脉冲。这样,利用最小数目的编程脉冲把各个单元编程到目标状态。在优选实施例中,这是通过准备提供多个电平的编程电压总线,并且该组中各个单元的编程电路能够从电压总线选择适合于把各个单元编程到其目标状态的最佳电平来实现的。
根据本发明的另一方面,在编程分辨率越来越细微的情况下,在多个编程操作阶段内施加编程脉冲。在优选实施例中,在每个阶段内,并行向各个单元施加呈阶梯波形的编程电压。当该组中的某一单元被编程到经过达不到对应于目标状态的目标电平的预定电平偏移量时,阻止该单元继续进行编程。该偏移量使得把单元编程到经过预定电平的编程脉冲超过目标电平的程度不会大于预定的容限。预定的容限由编程步骤的大小隐含设定。在最后阶段内,预定电平和目标电平相同,偏移量为零。这样,在获得高分辨率的同时,能够快速收敛于目标状态。
改进的编程电路和技术允许更精细地划分单元的导通状态或阈值电压的范围,以便支持高密度存储。在优选实施例中,可在约10-20编程步骤内对具有16种不同状态的快速EEPROM单元编程。当在大规划并行操作中,实现依赖于数据的编程电压和多阶段编程的改进特征时,可实现高密度高性能,但是成本低的快速EEPROM。
结合附图,根据本发明优选实施例的下述说明,可理解本发明的其它目的、特征和优点。
图1B示意表示了呈NROM单元形式的非易失性存储器。
图1C示意表示了具有选择栅和控制或操纵栅的快速EEPROM单元。
图1D示意表示了具有双浮栅和独立的选择栅及控制栅的另一快速EEPROM单元。
图2是带解码器的成行成列存储单元的可寻址阵列的示意方框图。
图3图解说明了对于在任意时刻浮栅可保存的四种不同电荷Q1-Q4的源极-漏极电流I(t)和控制栅电压VSTG之间的关系。
图4是图解说明根据本发明的优选实施例,并行对一组存储单元编程的编程系统的方框图。
图5更详细地表示了图4的多阶段编程电路的多阶段程序电压发生器和单元程序控制器。
图6(a)-6(e)是图5的多阶段程序电压发生器的抽样保持操作的时序图。
图7(a)-7(i)是图5中所示的多阶段程序电压发生器的第一阶段操作的时序图。
图8(a)-8(j)是图5中所示的多阶段程序电压发生器的第二阶段操作的时序图。
图9是根据本发明的优选实施例的一组存储单元的多阶段、并行编程的流程图。
多阶段编程电路210实质上向单元50的操纵栅提供一系列编程电压脉冲。当单元50要被编程到目标状态S1时,提供的电压脉冲被优化,以便准确快速地把该单元编程到S1状态。在一个优选实施例中,每个单元50的阈值窗口被划分以便指定16种状态之一。例如,横越0.5~3.5V之间的阈值电压窗口的单元需要划分成大约0.2V的间隔,以便划定16种状态。这大约比双态分区中使用的分辨率高一个数量级。
多电压总线220由电源222驱动,以便提供多个最佳起始电压V0,用于对划分的状态编程并读取划分的状态。通常,适用的电压越多,起始电压的优化越细。在优选实施例中,多电压总线将提供近似和各个分区阈值电压相同的电压。本例中,总线包含16条电压为0.4、0.6、0.8、1.0、1.2、1.4、1.6、1.8、2.0、2.2、2.4、2.6、2.8、3.0、3.2和3.4V的它源线。
当单元50将被编程为目标状态S1时,数据被保存在数据锁存器232中。响应数据锁存器232中的目标状态数据D(S1)(它可以为多位),电压选择器230选择被优化以便把单元编程到目标状态S1的总线电压之一V0(S1)。
如前所述,通过交替向单元施加编程脉冲,随后进行读回以确定最终得到的单元的存储状态,完成编程。在验证(读回)操作过程中,电压V0(S1)被施加给单元的操纵栅60。在编程过程中,电压V0(S1)形成构成具有预定波形轮廓的编程电压的基础。根据所需的编程速度,波形轮廓可以是一条平直的波形到引起编程速度增大的逐渐增加的多条平直波形。在一个优选实施例中,预定的波形轮廓是阶梯波形。
在验证操作中,信号VERIFY启动将从电压选择器230提供给单元50的操纵栅60的V0(S1)的通路234。读出放大器240把最终获得的源极-漏极电流和基准电流进行比较。在开始编程之前,单元50处于源极-漏极电流大于基准电流的擦除状态。随着单元被渐进编程,电荷累积在浮栅上,从而逐渐减小操纵栅的V0(S1)对沟道的场效应,以致在验证过程中,源极-漏极电流降低,直到低于基准电流IREF为此。此时,该单元已被编程到所需的电平,并且借助来自于读出放大器240的输出信号PASSED*变成低电平(LOW),用信号通知该事件。
在编程操作中,多阶段程序电压发生器250使用V0(S1)形成用于产生将提供给单元的操纵栅60的各种波形的基础。多阶段程序电压发生器250产生不同工作状态下的不同波形,并且由单元程序控制器260控制,所述单元程序控制器260响应本地单元50的状态以及该组k个单元中所有单元的状态。
单元程序控制器260还响应读出放大器240的输出信号。如上所述,当单元被编程到所需电平时,读出放大器的输出信号PASSED*变成低电平,这又导致控制器260输出信号PGM1*,从而启动程序禁止电路280。当被启动时,程序禁止电路280通过向漏极和操纵栅施加适当的电压,禁止单元50继续进行编程。
采用一排多阶段编程电路210,…210′并行地对k个单元编程,一个编程电路用于一个单元。分别响应来自k个多阶段编程电路单元的状态PGM1*,…PGMk*的并行程序控制器290协调该排编程电路的编程操作。如同后面更详细说明的一样,在所有k个单元已被编程到它们各自的所需电平之后,开始新的阶段,等同于每个单元切断其读出放大器的基准电流。这导致PGM1*~PGMk*均变成低电平。
图5更详细地表示了图4的多阶段编程电路210的多阶段程序电压发生器250和单元程序控制器260。最好结合图6-8中所示的时序图说明各个组件的操作。
实质上,在由高电平(HIGH)脉冲的控制信号SAMPLE指示的操作的初始阶段中,多阶段程序电压发生器250对优化电压V0(S1)采样,并保存在抽样保持电路300中。抽样保持电路300具有输出节点307,在输出节点307,来自其它源极(例如下面说明的330、350)的电压被相加,形成最终的电压VLast。电压VLast随后驱动源跟随器310在单元50的操纵栅提供编程电压VSTG(1)。
抽样保持电路300包含由两个串联晶体管302、304选通的输入端和输出节点307,共用节点303位于晶体管302和304之间。共用节点303可被设置成由另一晶体管308选通的电压VHOLD。
在优选实施例中,由具有相关AC耦合器330的第一相波形发生器320和具有相关AC耦合器350的第二相波形发生器340产生在输出节点307被相加从而产生VLast的其它电压源。
图6(a)-6(e)是图5的多阶段程序电压发生器的抽样和保持操作的时序图。操作中,并行程序控制器290(参见图4)确定(assert)SAMPLE信号,所述SAMPLE信号导通两个串联晶体管302和304,从而允许在AC耦合器330的电容器C1的两端维持输入电压V0(S1)。在抽样保持操作中,波形发生器320和340并不对VLast产生影响,因为它们的通路分别被选通信号G1和G2(图6(c))阻塞。从而,输出节点307的电压VLast最初采取V0(S1)的值(图6(e))。之后,在SAMPLE变成低电平(图6(a))的情况下,这两个串联晶体管被截止,并且在晶体管308的栅极确定信号HOLD(图6(b))之后,允许共用节点303获得电压VHOLD。这种解偏置安排使漏回晶体管304的VLast降低几个数量级,并且确保在节点307保存的抽样电压的精度。
图5中所示的单元程序控制器360包括设置/复位锁存器(S/R锁存器)262。当单元被编程到使其导通电流低于基准电流水平时,读出放大器输出从高电平变为低电平的信号PASSED*。该信号被用于设置设置-复位锁存器262,以便把锁存的输出信号PGM1*从高电平变为低电平,从而启动程序禁止电路280。
图7(a)-7(i)是图5中所示的多阶段程序电压发生器的第一阶段的操作的时序图。在优选实施例中,在编程之前进行验证操作。RESET信号复位设置-复位锁存器262,以致锁存的输出信号PGM1*为高电平。每当VERIFY信号变成高电平时,启动验证操作。相反,每当VERIFY信号处于低电平时,能够进行编程操作。如果单元50被正确擦除,则读出放大器240的输出信号PASSED*将是高电平,允许进行编程,因为将不会激活程序禁止电路280(另外参见图4)。
在编程操作的第一阶段中,来自并行程序控制器290的控制信号Ф1(图7(e))启动第一波形发生器320。随后当启用通过栅极(pass-gate)信号G1时,它产生呈一个或多个阶梯脉冲形式的V1(t)(图7(h))。最好使第一脉冲的初始上沿倾斜,以便缓和另外的陡峭前沿,借此减轻相对于存储单元的任意不良压力。波形的每个连续脉冲将朝着目标电平移动单元的程控电平,目标电平被设置成指示单元的目标状态的优选电平。由于编程步骤的离散本性,存在所指定的代表给定存储状态的程控电平的统计分布。在本实施例中,当程控阈值电平落在与给定存储状态相关的程控电平的范围之内时,认为单元将被编程到该状态。程控电平的范围的下限由目标电平限定,上限由与该状态相关的预定容限限定。
为了避免超出程控电平的范围,编程电路使用达不到该范围的预定电平测量在每个阶段中何时停止编程。该预定电平比目标电平小一定的偏移量,以致当编程脉冲移动程控电平通过预定电平时,它超过目标电平的量不会大于相关的预定容限。换句话说,一旦通过预定电平,则单元被编程到不超过该状态的程序电平范围的上限。这种情况下,不再施加当前阶段的编程脉冲。从而,有关阶梯波形的增大速率和第一阶段的预定电平的需要考虑的问题如下。尽可能快地利用连续脉冲逼近目标电平,但是任意单一脉冲不会导致存储单元的阈值既通过第一阶段预定电平又通过超出目标电平的相关预定容限。
在节点333由为高电平的控制信号PGM1*启用V1(t),并且通过AC耦合器330被加到输出节点307上(参见图7(d),7(h))。从而,输出节点307的电压为VLast=V0(S1)+b1V1(t)(这里b1是接近于单位值的耦接率),并且该电压通过源跟随器310变成提供给单元50的操纵栅的电压(参见图7(i))。当连续施加编程脉冲时,单元50被编程到第一阶段的预定电平。此时,信号PASSED*(图7(e))变成低电平,再导致信号PGM1*变成低电平(图7(d)),变成低电平的信号PGM1*再启动程序禁止电路280禁止单元进行进一步的编程。同时,PGM1*变成低电平导致G1变成低电平(图7(f)),低电平的G1把AC耦合器330从第一波形发生器320断开,从而把V1冻结在切断时的波形幅值。如果T1F是PGM1*变成低电平的时间,则V1=V1(T1f),从而VLast(T1f)=V0(S1)+b1V1(T1f)。
同时,继续进行单元组块中的其它单元的并行编程,同时越来越多的单元达到它们相关的第一阶段预定电平,并且退出并行编程操作。当每个单元退出时,它们相关的VLast均保持在程序禁止时施加给操纵栅的对应电压。最终,组块中的所有单元被编程到预定的电平,并且借助都已变成低电平的PGM1*~PGMk*用信号通知该事件。这将促使并行程序控制器290开始下一阶段。
图8(a)-8(j)是图5中所示的多阶段程序电压发生器的第二阶段操作的时序图。除了第一波形发生器被处于低电平(图8(e))的控制信号Ф1禁用之外,第二阶段类似于第一阶段,开始于在编程之前执行的验证。改为由来自并行程序控制器290的控制信号Ф2(图8(f))启用第二波形发生器340,并且产生呈一个或多个阶梯波形形式的V2(t)(图8(i))。波形的每个连续脉冲将使单元的程控电平朝着偏离目标电平的第二阶段预定电平移动。阶梯波形的增大速率和第二阶段预定电平是这样的,使得尽可能快地利用连续脉冲逼近目标电平,但是任意单一脉冲都不会使存储单元的阈值既通过第二阶段预定电平,又通过超出目标电平的相关预定容限。通常阶梯波形的增大速率和预定电平将比第一阶段的细微得多。
在节点335利用为高电平的控制信号PGM1*启用V2(t)(图8(d))(同时在开始第二阶段时,所有的SR锁存器已被重置(图8(a))),并且通过AC耦合器350被加到节点333上。从而,输出节点307的电压为VLast=V0(S1)+b1[V1(T1f)+b2[V2(t)-V2i],这里b2是另一耦接率,V2i是当G1变成低电平时V2的值,并且是在第一阶段结束之前施加的预定偏移量(例如~0.4V)。VLast通过源跟随器310变成提供给单元50的操纵栅的电压(参见图8(j))。当连续施加编程脉冲时,单元50最终被编程到当前阶段的预定电平。此时,信号PASSED*(图8(c))变成低电平,再使信号PGM1*变成低电平(图8(d)),低电平信号PGM1*再启动程序禁止电路280禁止单元50进行进一步的编程。同时,变成低电平的PGM1*使G2变成低电平(图8(g)),通过禁用控制信号G2,低电平的G2使AC耦合器350脱离第二波形发生器340,从而把V2冻结在脱离时波形的幅值。如果T2F是PGM1*变成低电平的时间,则V2=V2(T2f),从而VLast(T2f)=V0(S1)+b1V1(T1f)+b2[V2(T2f)-V2i]。
类似地,继续进行组块中其它单元的并行编程,同时越来越多的单元达到它们的目标状态,并且退出并行编程操作,它们的VLast均保持程序禁止时施加给操纵栅的电压。最后,组块中的所有单元被编程到预定电平,并且借助均已变成低电平的PGM1*~PGMk*用信号通知该事件。这将促使并行程序控制器290开始下一阶段。
类似的安排应用于更高的阶段,波形发生器产生被加到在前一阶段结束时冻结的VLast的电平上的电压。在最后阶段,预定电平和对应于目标状态的目标电平相同。
在另一实施例中,VLast由一个多阶段波形发生器产生。
多阶段编程的实现允许不同阶段内阶梯波形的不同增加速率。借助一系列的编程步骤逼近要程控的目标状态,其中第一阶段最粗略,在不超出规定限度的情况下以最少的步骤逼近目标状态,随后进行具有一系列细微步骤的第二阶段,再次在不超出规定限度的情况下以最少的步骤进一步逼近目标状态,依次类推。这样,对单元50的操纵栅60施加一系列逐增大的编程脉冲,同时优化每个阶段内的增大速率,以便快速收敛于目标状态。
如上所述,对于除最终阶段之外的每个阶段,除目标状态之外的电平被用作目标,以致在该阶段的一个编程步骤中越过该目标值不会导致越过实际的目标状态。在最终阶段中,目标是实际目标状态。在优选实施例中,通过把在验证操作中施加给操纵栅VSTG的电压下移预定量,实现和阶段有关的电平。这将导致在达到目标状态之前,读出放大器240(参见图4)断开。响应阶段的状态的电源222(参见图4)据此调节多电压总线220上的电压。
在另一实施例中,通过把由图4中所示的读出放大器240采用的基准电流IREF调整为递增的低值,完成取决于阶段的验证。
在另一实施例中,通过把在验证操作中施加给操纵栅的电压下移预定量,并且调整读出放大器采用的基准电流,完成取决于阶段的验证。
对于分成16种状态的单元来说,已发现多个实施例允许编程在大约10~20步骤内收敛于目标状态。例如,一个优选实施例具有两阶段编程操作,即具有逐渐增大的第一波形的第一阶段和其后具有更加缓和地逐渐增大的第二波形的第二阶段。另一实施例具有三阶段操作,第一阶段为单一脉冲,之后是两个连续的阶梯波形。各种组合都是可能的,并且都在本发明的预期范围之内。
所述编程系统200的一个优点是即使对较大的一组单元编程,这些单元仍然能够共用相同的电源总线220实现取决于数据的编程电压。类似地,该组中的所有单元共用取决于阶段的波形发生器,例如320、340,…。
图9是根据本发明的一个优选实施例的一组存储单元的多阶段并行编程的流程图。
步骤400开始初始化,设置Phase=0,PhaseLast=2(举例来说)
步骤410开始获得取决于数据的电压步骤412对该组单元i=1~k进行并行编程步骤414锁存D(Si),第i个单元的目标状态。
步骤416使用D(Si)选择初始电压V0(D(Si)),所述初始电压被优化以便把第i个单元编程到D(Si)。
步骤418保存将用作操纵栅电压的基线电压的V0(D(Si)),即VLast(i)=V0(D(Si))。
步骤420开始并行编程的新阶段步骤422Phase=Phase+1步骤430开始组块i=1~k并行编程。
步骤432相对于基线VLast(i)把操纵栅电压设置成取决于阶段的波形。
步骤434继续对单元组块的并行编程。
步骤436验证以了解第i个单元是否已被编程到目标状态的预定电平之内。该电平取决于阶段,并且远远达不到目标状态,以致越过该电平的编程步骤不会超越目标状态。如果已通过该电平,则转到步骤440,如果没有,则继续步骤438。
步骤438把编程脉冲VSTG(i)施加给第i个单元。返回步骤436。
步骤440在当前阶段中,禁止第i个单元进行进一步编程。
步骤442把当前编程电压,即VLast(i)=VSTG(i)保存为下一阶段的基线电压。
步骤450被编程的所有单元通过当前阶段的电平?如果是,则转到步骤460。否则返回步骤434,继续对该组块中的剩余单元编程,直到最后一个单元通过当前阶段的电平为止。如果编程已经超过预定的最大许可脉冲数,则开始预定的例外处理,通常是启动错误处理例程。
步骤460Phase是否等于PhaseLast。如果不是,则转到步骤420开始下一阶段。否则转到步骤470。
步骤470结束。完成单元i=1~k组块的编程。
已关于包含电荷保存浮栅或者介电层的非易失性半导体存储器说明了本发明的实施例。但是,本发明的各个方面可应用于通过施加取决于状态的优化控制的电压编程脉冲可实现精确编程的任意类型的非易失性存储器。例如,该方法可应用于多电介质存储器件,例如金属-氮化硅-氧化硅(MNOS)或者多晶硅-氮化硅-氧化硅(SONOS)半导体器件。类似地,该方法适用于MROM器件。
虽然已描述的本发明的实施例是优选实施例,不过本领域的技术人员将明白本发明的各种变化也是可能的。于是,本发明的范围由附加的权利要求限定。
权利要求
1.一种并行对一组存储单元编程的方法,每个存储单元具有可单独编程到目标电荷电平的电荷存储,所述目标电荷电平对应于其多个存储状态中的目标存储状态,所述方法包括提供把存储单元编程到所述多个存储状态之一的多个电平;为该组中的各个存储单元选择所述多个电平之一,选择的电平是存储单元的目标存储状态的函数;产生随着各个存储单元的选择电平而变化的编程电压;和并行对该组存储单元编程。
2.按照权利要求1所述的方法,还包括为所述一组存储单元的各个单元产生编程电压波形;每个所述编程电压波形具有为各个单元选择的所述电平的函数的初始幅值。
3.按照权利要求2所述的方法,其中所述编程电压波形包括一系列的电压脉冲。
4.按照权利要求3所述的方法,其中施加所述一系列电压脉冲的初始电压脉冲基本朝着、但不超过各个单元的目标存储状态对各个单元编程。
5.按照权利要求3所述的方法,其中所述一系列电压脉冲具有随着时间增大的幅值。
6.按照权利要求3所述的方法,还包括(a)通过对各个单元施加选自与各个单元相关的编程电压波形的所述一系列电压脉冲中的某一脉冲,并行对所述一组存储单元编程;(b)通过确定是否每个单元已被编程到与各个存储单元的目标状态相关的预定电平,并行验证所述一组存储单元;(c)当所述一组存储单元中的任何单元被编程到其预定电平时,禁止所述任何单元继续进行编程;和(d)重复(a)、(b)和(c),直到所述一组存储单元中的所有单元已被编程到它们各自的预定电平为止。
7.按照权利要求6所述的方法,其中当迭代次数超过预定次数时,也终止所述重复步骤。
8.按照权利要求6所述的方法,其中终止之前,(a)-(d)的所述重复循环构成一个编程阶段,所述方法还包括一个或多个其它编程阶段,每个编程阶段具有其相关的一系列电压脉冲和预定电平。
9.按照权利要求8所述的方法,其中每个连续阶段采用产生比前一阶段更精细的编程步骤的一系列电压脉冲。
10.按照权利要求8所述的方法,其中每个连续阶段采用更接近于目标状态的预定电平。
11.按照权利要求8所述的方法,其中预定的最后阶段采用使该组存储单元的每个单元被编程到它们各自的目标状态的预定电平。
12.按照权利要求8所述的方法,其中每个单元接收不超过20个编程脉冲。
13.按照权利要求1-12任一所述的方法,其中每个单元保存两种存储状态之一。
14.按照权利要求1-12任一所述的方法,其中每个单元保存两种以上的存储状态。
15.按照权利要求1-12任一所述的方法,其中每个单元保存16种存储状态之一。
16.一种非易失性存储器,包括一个存储单元阵列,每个存储单元具有可单独编程到相关目标电荷电平的电荷存储,所述相关目标电荷电平对应于其多个存储状态中的目标存储状态,并行提供把存储单元编程到所述多个存储状态之一的多个电压的电源总线;和并行对一组存储单元编程的并行编程系统,所述并行编程系统具有多个编程电路,一个编程电路用于该组存储单元中的一个存储单元,每个编程电路还包括从所述电源总线选择多个电压之一的电压选择器,选择的电压是相关存储单元的目标状态的函数,使得选择的电压最适合于所述编程电路产生朝着其目标存储状态对存储状态编程的编程电压。
17.按照权利要求16所述的非易失性存储器,其中所述编程电路还包括耦接的接收所述选择电压,以便产生第一编程电压波形的第一编程电压波形发生器,所述第一编程电压波形的初始幅值是选择电压的函数;确定存储单元的编程状态的读出放大器;和响应读出放大器,当存储单元的编程状态已经过第一预定电平时,禁止该存储单元的进一步编程的程序禁止电路。
18.按照权利要求17所述的非易失性存储器,还包括保存使相关单元的编程状态经过第一预定电平的最后编程电压的存储元件;响应保存的所述最后编程电压,产生第二编程电压的第二编程电压波形发生器;和在所述一组存储单元中的所有存储单元通过第一预定电平之后,启动所述第二编程电压波形发生器的控制器。
全文摘要
利用并行应用于多个存储单元的编程系统程控具有非易失性电荷保存能力的非易失性存储器,例如EEPROM和快速EEPROM。通过利用依赖于数据的编程电压借助最少的编程脉冲,把各个单元编程到其目标状态,获得增强性能。通过在多阶段中执行编程操作,实现进一步的提高,在编程分辨率更细微的情况下,例如采用具有更缓和的阶梯波形的编程电压,执行各个连续阶段。这些特征允许快速准确地收敛于被并行编程的该组存储单元的目标状态,从而允许每个存储单元在不牺牲性能的情况下保存几位信息。
文档编号G11C11/56GK1460268SQ02800792
公开日2003年12月3日 申请日期2002年2月22日 优先权日2001年2月26日
发明者杰弗里·冈格威尔, 丹尼尔·C·古特曼 申请人:三因迪斯克公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1