具有减少的过编程的高速编程系统的制作方法

文档序号:6759014阅读:210来源:国知局
专利名称:具有减少的过编程的高速编程系统的制作方法
技术领域
本发明涉及对非易失性存储器进行编程。
背景技术
半导体存储器装置已变得更普遍地用于各种电子装置中。举例来说,非易失性半导体存储器用于蜂窝式电话、数码相机、个人数字助理、移动计算装置、非移动计算装置和其它装置中。电可擦除可编程只读存储器(EEPROM)和快闪存储器是最普遍的非易失性半导体存储器之一。
EEPROM和快闪存储器两者均利用浮动栅极,浮动栅极定位在半导体衬底中的沟道区域上方并与所述沟道区域绝缘。浮动栅极定位在源极区域与漏极区域之间。控制栅极提供在浮动栅极上方并与浮动栅极绝缘。晶体管的阈值电压由保留在浮动栅极上的电荷的量控制。也就是说,在接通晶体管以允许其源极与漏极之间的传导之前必须施加到控制栅极的电压的最小量由浮动栅极上的电荷的电平控制。
当编程EEPROM或快闪存储器装置时,通常将编程电压施加到控制栅极,且位线接地。将来自沟道的电子注入到浮动栅极中。当电子聚积在浮动栅极中时,浮动栅极变得带负电,且存储器单元的阈值电压升高,使得存储器单元处于编程状态。关于编程的更多信息可参阅2003年3月5日申请的题为“Self Boosting Technique”的美国专利申请案10/379,608;以及2003年7月29日申请的题为“Detecting Over Programmed Memory”的美国专利申请案10/629,068,两个申请案的全文均以引用的方式并入本文中。
一些EEPROM和快闪存储器装置具有用于存储两个范围的电荷的浮动栅极,且因此,可在两个状态(擦除状态与编程状态)之间编程/擦除存储器单元。举例来说,图1展示描绘两个阈值电压分布的曲线图。x轴描绘阈值电压且y轴描绘存储器单元的数目。阈值电压分布2小于零伏。在一个实施例中,阈值电压分布2对应于存储数据“1”的已擦除存储器单元。阈值电压分布4大于零伏。在一个实施例中,阈值电压分布4对应于存储数据“0”的已编程存储器单元。
通过识别由禁止电压范围分离的多个截然不同的容许阈值电压范围来实施多状态快闪存储器单元。每一截然不同的阈值电压范围对应于数据位组的预定值。图2说明存储两个数据位(例如,四个数据状态)的存储器单元的阈值电压分布。在一个实施例中,阈值电压分布2表示处于擦除状态(例如,存储“11”)的存储器单元,其具有负阈值电压电平。阈值电压分布10表示存储数据“10”的存储器单元,其具有正阈值电压电平。阈值电压分布12表示存储数据“00”的存储器单元。阈值电压分布14表示存储“01”的存储器单元。在其它实施例中,所述分布中的每一者均可对应于与上文所述不同的数据状态。在一些实施方案(如上文所示范)中,使用格雷码分配将这些数据值(例如,逻辑状态)分配到阈值范围,使得在浮动栅极的阈值电压错误地转变到其相邻实体状态时,仅一个逻辑位将受到影响。编程到存储器单元中的数据与单元的阈值电压范围之间的特定关系取决于针对存储器单元所采用的数据编码方案。举例来说,第6,222,762号美国专利和2003年6月13日申请的题为“Tracking Cells For A Memory System”的第10/461,244号美国专利申请案(其两者全文均以引用的方式并入本文中)描述多状态快闪存储器单元的各种数据编码方案。另外,本发明适用于存储两个以上数据位的存储器单元。
阈值电压分布2和4展示不使用检验操作时的经擦除和经编程电压分布。可通过用单个编程或擦除脉冲编程或擦除存储器单元来获得这些分布。视存储器阵列大小和产生过程的变化而定,阈值电压分布4具有某一宽度,称为自然Vt宽度。
如从图2可以看到,分布10、12和14(对应于编程多状态装置)需要远远窄于分布4的自然Vt宽度。为了实现这种较窄的阈值电压分布,可使用利用(例如图3A、3B和3C所描述的)多个编程脉冲和检验操作的过程。
图3A描绘作为一系列脉冲施加到控制栅极的编程电压信号Vpgm。脉冲的量值随着每一连续脉冲而增加预定步长(例如,0.2v-0.4v),图3A中描绘为ΔVpgm。在脉冲之间的周期中实行检验操作。随着可编程状态的数目增加,检验操作的数目增加且需要更多时间。一种用于减少时间负担的方法是更有效的经检验的过程,例如2002年12月5日申请的题为“Smart Verify For Multi-State Memories”的第10/314,055号美国专利申请案中所揭示的过程,所述专利申请案全文以引用的方式并入本文中。实际上,图3A的脉冲彼此分离供检验的时间周期。然而,为了使图3更具有可读性,从图中省略了供检验的时间周期。
图3B描绘施加到正被编程的相关存储器单元的位线的电压信号。图3C描绘正被编程的存储器单元的阈值电压。注意,为了更易于阅读,使图3C中的曲线趋于平滑。在每一编程脉冲之后,实行检验操作(未图示)。在检验操作期间,检查待编程的存储器单元的阈值电压。如果阈值电压的存储器单元大于目标值(例如,Vverify),那么在下一循环内通过将位线电压从0v升高到Vinhibit(例如,时间t4处)来抑制对所述存储器单元的编程。
与其它电子装置一样,消费者要求存储器装置尽可能快地进行编程。举例来说,将图像存储在快闪存储卡上的数码相机的用户不希望在图片之间等待一段不必要的较长时间。除了以合理的速度编程外,为了实现多状态存储器单元的适当数据存储,多状态存储器单元的多个阈值电压范围还应彼此分离足够的容限,使得可以明确的方式来编程和读取存储器单元的电平。另外,推荐使用紧密的阈值电压分布。为了实现紧密的阈值电压分布,通常已使用小编程步骤,从而更缓慢地编程单元的阈值电压。所期望的阈值电压分布越紧密,则步骤越小且编程过程越缓慢。
实现紧密的阈值电压分布而不会不合理地减缓编程过程的一种解决方案包含使用两阶段编程过程。第一阶段(粗略编程阶段)包含试图以较快方式升高阈值电压,和较少关注实现紧密的阈值电压分布。第二阶段(精细编程阶段)试图以较慢方式升高阈值电压以便达到目标阈值电压,同时还实现较紧密的阈值电压分布。粗略/精细编程方法的一个实例可参阅美国专利6,643,188,其全文以引用的方式并入本文中。
图4和5提供粗略/精细编程方法的一个实例的更多细节。图4A和5A描绘施加到控制栅极的编程脉冲Vpgm。图4B和5B描绘正被编程的存储器单元的位线电压。图4C和5C描绘正被编程的存储器单元的阈值电压。图4和图5的此实例使用图中指示为Vver1和Vver2的两个检验电平。最终目标电平是Vver1。当存储器单元的阈值电压已达到Vver1时,将通过将抑制电压施加到对应于所述存储器单元的位线来抑制所述存储器单元进行进一步编程。举例来说,位线电压可升高到Vinhibit(参看图4B和图5B)。然而,当存储器单元已达到接近(但低于)目标值Vver1的阈值电压时,通过将某一偏压(通常约为0.3v到0.8v)施加到位线来减缓后续编程脉冲期间存储器单元的阈值电压转变。因为在接下来几个编程脉冲期间,阈值电压转变的速率减小,所以最终阈值电压分布可能窄于利用图3描绘的方法所获得的阈值电压分布。为了实施此方法,使用低于Vver1的电平的第二检验电平。图4和5中将此第二检验电平描绘为Vver2。当存储器单元的阈值电压大于Vver2但仍低于Vver1时,后续编程脉冲期间将通过施加位线偏压Vs(图5B)来减少存储器单元的阈值电压转变。注意,在此情况下,每一状态均需要两个检验操作。
每一状态的对应Vver1处具有一个检验操作,且每一状态的对应Vver2处具有一个检验操作。这可能增加对存储器单元进行编程所需的总时间。然而,可使用较大ΔVpgm步长来加速所述过程。
图4A、4B和4C展示在一个编程脉冲中阈值电压移动超过Vver2和Vver1的存储器单元的行为。举例来说,图4C中描绘阈值电压在t2与t3之间经过Vver2和Vver1。因此,在t3之前,存储器单元处于粗略阶段。在t3之后,存储器单元处于抑制模式。
图5A、5B和5C描绘进入粗略和精细编程阶段两者的存储器单元。存储器单元的阈值电压在时间t2与时间t3之间越过Vver2。在t3之前,存储器单元处于粗略阶段。在t3之后,位线电压升高到Vs;因此,存储器单元处于精细阶段。在t3与t4之间,存储器单元的阈值电压越过Vver1;因此,通过将位线电压升高到Vinhibit来抑制存储器单元进行进一步编程。
非易失性存储器(尤其是多状态存储器)所遭遇的一个问题是,可能发生过编程。在编程过程期间,将存储器单元编程到由特定组数据的阈值电压范围界定的某一目标状态。当将存储器单元编程到某一阈值电压范围时,所述单元的阈值电压不应超出所述范围的最大容许阈值电压。举例来说,参看图2,如果存储器单元待被编程到目标状态10,那么存储器单元的阈值电压应升高到高于Vv1,但应保持低于分布10的最大可容许阈值电压Vmax1。当存储器单元的阈值电压超出可容许范围时,在稍后读取数据时可能出现失败。此现象称为过编程。在一些情况下,可使用误差校正来校正由过编程引起的误差。然而,一些过编程无法通过误差校正来矫正。另外,误差校正可能非常耗时。
图6描绘经擦除阈值电压分布2和经编程阈值电压分布80。阈值电压分布80包含一组编程速度比正常情况快的一个或一个以上存储器单元。这些快速存储器单元是进行过编程的候选者。举例来说,在一个编程脉冲之后,包含一或一个以上快速单元的存储器单元全体不是获得图1的阈值电压分布4,而是将导致图6的阈值电压分布80。阈值电压分布80包含快速存储器单元82。
图7A、7B和7C进一步说明可能被过编程的快速存储器单元的问题。图7A描绘二位多状态存储器单元(two-bit multi-state memory cell)的阈值电压分布2、10、12和14。图7B展示自然的经擦除阈值电压分布2和经编程阈值电压分布84。在一个实施例中,分布84与既定在一个编程脉冲之后编程到分布10的存储器单元全体相关。可以看到,所述分布朝向应为分布10的分布移动。分布84包含一组快速存储器单元,其中的一些快速存储器单元超出读取检验点Vr1。如从图7A可以看到,读取检验点是用于区分阈值电压分布10与阈值电压分布12的电压电平。因此,在一个编程脉冲之后,阈值电压分布84中的存储器单元中的一些存储器单元已具有误差,因为所述存储器单元具有大于Vr1的阈值电压分布。在编程过程结束时,既定处于阈值电压分布10中的那些存储器单元将有可能处于分布86中,如图7C所描绘。阈值电压分布86与图7A的阈值电压分布10之间的差异在于,阈值电压分布86包含一组具有超出Vr1的阈值电压的快速存储器单元(分布86的前端尾部)。当读取时,这些具有大于Vr1的阈值电压的快速位可传回误差。

发明内容
本文描述的技术试图避免或减少过编程。
在一个实施例中,将编程脉冲施加到一组非易失性存储元件。所述编程脉冲的量值选择为足够低以使得非易失性存储元件均不会被过编程。测试所述非易失性存储元件以判定至少一个(或某一其它最小数目)非易失性存储元件是否已被编程超过测试阈值。如果是,那么认为所述组非易失性存储器元件具有一个或一个以上快速编程非易失性存储元件,且使用针对后续编程脉冲的较小增加值来执行将来的编程。如果未判定所述组非易失性存储器元件具有一个或一个以上快速编程非易失性存储元件,那么针对后续编程脉冲使用较大增加值,直到一个(或某一其它最小数目)非易失性存储元件已被编程超过所述测试阈值为止,此时针对后续编程脉冲使用所述较小增加值。
从以下描述内容中将更清楚地了解本发明的这些和其它目的和优点,以下描述内容中已结合附图陈述了本发明的优选实施例。


图1是描绘两个阈值电压分布的曲线图。
图2是描绘四个阈值电压分布的曲线图。
图3A、3B和3C描绘编程过程。图3A描绘施加到非易失性存储元件的控制栅极的编程电压信号。图3B描绘施加到NAND串的位线的电压信号。图3C描绘正被编程的非易失性存储元件的阈值电压。
图4A、4B和4C描绘作为粗略/精细编程的一部分而执行的编程过程的一个实施例。
图5A、5B和5C描绘作为粗略/精细编程的一部分而执行的编程过程的一个实施例。
图6是描绘两个阈值电压分布的曲线图。
图7A、7B和7C是描绘阈值电压分布的曲线图。
图8是NAND串的俯视图。
图9是NAND串的等效电路图。
图10是NAND串的横截面图。
图11是非易失性存储器系统的一个实施例的方框图。
图12说明存储器阵列的组织的实例。
图13是描述用于编程存储器系统的页的过程的一个实施例的流程图。
图14是描述用于编程存储器系统的页的过程的一个实施例的流程图。
图15A、15B和15C是描绘阈值电压分布的曲线图。
图16A、16B和16C描绘减少过编程的编程过程的一个实施例。
图17A、17B和17C描绘减少过编程的编程过程的一个实施例。
图18A、18B和18C描绘减少过编程的编程过程的一个实施例。
图19A、19B和19C描绘减少过编程的编程过程的一个实施例。
具体实施例方式
适于实施本发明的快闪存储器系统的一个实例使用NAND结构,其包含将多个晶体管串联布置在两个选择栅极之间。所述串联的晶体管和所述选择栅极称为NAND串。图8是展示一个NAND串的俯视图。图9是所述NAND串的等效电路。图8和9中所描绘的NAND串包含串联并夹在选择栅极120与第二选择栅极122之间的四个晶体管100、102、104和106。选择栅极120将NAND串连接到位线接触件126。选择栅极122将NAND串连接到源极线接触件128。通过将适当电压施加到控制栅极120CG来控制选择栅极120。通过将适当电压施加到控制栅极122CG来控制选择栅极122。晶体管100、102、104和106中的每一者均具有控制栅极和浮动栅极。晶体管100具有控制栅极100CG和浮动栅极100FG。晶体管102包含控制栅极102CG和浮动栅极102FG。晶体管104包含控制栅极104CG和浮动栅极104FG。晶体管106包含控制栅极106CG和浮动栅极106FG。控制栅极100CG连接到字线WL3,控制栅极102CG连接到字线WL2,控制栅极104CG连接到字线WL1,且控制栅极106CG连接到字线WL0。在一个实施例中,晶体管100、102、104和106每一者均为存储器单元。在其它实施例中,存储器单元可包含多个晶体管,或可不同于图8和9中所描绘的存储器单元。选择栅极120连接到选择线SGD,且选择栅极122连接到选择线SGS。
图10提供上述NAND串的横截面图。如图10中所描绘,NAND串的晶体管形成于p阱区域140中。每一晶体管均包含由控制栅极(100CG、102CG、104CG和106CG)和浮动栅极(100FG、102FG、104FG和106FG)组成的堆叠栅极结构。浮动栅极形成于氧化物膜的顶部上的p阱的表面上。控制栅极在浮动栅极上方,其中中间多晶硅介电层使控制栅极与浮动栅极分离。存储器单元(100、102、104、106)的控制栅极形成字线。N+扩散层130、132、134、136和138在相邻单元之间共享,藉此所述单元彼此串联连接以形成NAND串。这些N+扩散层形成所述单元中的每一者的源极和漏极。举例来说,N+扩散层130充当晶体管122的漏极和晶体管106的源极,N+扩散层132充当晶体管106的漏极和晶体管104的源极,N+扩散区域134充当晶体管104的漏极和晶体管102的源极,N+扩散区域136充当晶体管102的漏极和晶体管100的源极,且N+扩散层138充当晶体管100的漏极和晶体管120的源极。N+扩散层126连接到NAND串的位线,而N+扩散层128连接到多个NAND串的共用源极线。
注意,尽管图8-10展示NAND串中的四个存储器单元,但四个晶体管的使用仅作为实例而提供。NAND串可具有四个以下存储器单元或四个以上存储器单元。举例来说,一些NAND串将包含8个存储器单元,16个存储器单元、32个存储器单元等等。此处的论述不限于NAND串中的任何特定数目的存储器单元。
每一存储器单元均可存储以模拟或数字形式表示的数据。当存储一个数字数据位时,存储器单元的可能阈值电压的范围划分为被分配有逻辑数据“1”和“0”的两个范围。在NAND型快闪存储器的一个实例中,在存储器单元被擦除之后,电压阈值为负,并界定为逻辑“1”。在编程操作之后,阈值电压为正,并界定为逻辑“0”。当阈值电压为负且试图进行读取时,存储器单元将接通以指示逻辑1正被存储。当阈值电压为正且试图进行读取操作时,存储器单元将不接通,这指示逻辑0被存储。存储器单元还可存储多个等级的信息,从而存储多个数字数据位。在存储多个等级的数据的情况下,可能阈值电压的范围划分为所述数目的存储等级。举例来说,如果存储四个等级的信息,那么将存在分配到数据值“11”、“10”、“01”和“00”的四个阈值电压范围。在NAND型存储器的一个实例中,在擦除操作之后,阈值电压为负并界定为“11”。正阈值电压用于状态“10”、“01”和“00”。
以下美国专利/专利申请案中提供NAND型快闪存储器及其操作的有关实例,所述所有专利/专利申请案的全文以引用的方式并入本文中第5,570,315号美国专利;第5,774,397号美国专利;第6,046,935号美国专利;第5,386,422号美国专利;第6,456,528号美国专利和第09/893,277号(公开号US2003/0002348)美国专利申请案。关于对NAND快闪存储器进行编程(包含自增压(self boosting)技术)的信息可参阅2003年3月5日申请的题为“Self Boosting Technique”的美国专利申请案10/379,608;以及2003年7月29日申请的题为“Detecting Over Programmed Memory”的美国专利申请案10/629,068,两个申请案全文均以引用的方式并入本文中。其它类型的快闪存储器装置也可与本发明一起使用。举例来说,以下专利描述NOR型快闪存储器,且所述专利全文以引用的方式并入本文中第5,095,344号、第5,172,338号、第5,890,192号和第6,151,248号美国专利。快闪存储器类型的另一实例参阅第6,151,248号美国专利,其全文以引用的方式并入本文中。
本文描述的技术不限于浮动栅极类型的存储器,而是还可适用于使用其它类型的材料进行电荷存储的存储器单元。举例来说,本文描述的技术可与在控制栅极(或字线)与衬底之间使用各种类型的电荷存储区域/层(例如,氮化物层或小硅岛(更多地称为纳米晶体))的存储器装置一起使用。
图11是可用于实施本发明的快闪存储器系统的一个实施例的方框图。存储器单元阵列202由列控制电路204、行控制电路206、c源极控制电路210和p阱控制电路208来控制。列控制电路204连接到存储器单元阵列202的位线,以用于读取存储在存储器单元中的数据,用于判定编程操作期间存储器单元的状态,并用于控制位线的电位电平以促进编程或抑制编程。行控制电路206连接到字线以选择所述字线中的一者,施加读取电压,施加编程电压并施加擦除电压。C源极控制电路210控制连接到存储器单元的共用源极线(图12中标记为“C源极”)。P阱控制电路208控制p阱电压。
存储在存储器单元中的数据由列控制电路204读出并经由数据输入/输出缓冲器212输出到外部I/O线。待存储在存储器单元中的编程数据经由外部I/O线输入到数据输入/输出缓冲器212,并转移到列控制电路204。外部I/O线连接到控制器218。
将用于控制快闪存储器装置的命令数据输入到控制器218。命令数据通知快闪存储器什么操作被请求。将输入的命令转移到状态机216,状态机216控制列控制电路204、行控制电路206、c源极控制210、p阱控制电路208和数据输入/输出缓冲器212。状态机216还可输出快闪存储器的状态数据,例如准备就绪/占用(READY/BUSY)或通过/失败(PASS/FAIL)。
控制器218与例如个人计算机、数码相机、个人数字助理等的主机系统连接或可与所述主机系统连接。控制器218与主机通信以便从主机接收命令,从主机接收数据,向主机提供数据,且向主机提供状态信息。控制器218将来自主机的命令转换成可由命令电路214解译并执行的命令信号,所述命令电路214与状态机216进行通信。控制器218通常含有用于将用户数据写入到存储器阵列或从存储器阵列读取用户数据的缓冲存储器。
一个示范性存储器系统包括一个包含控制器218的集成电路,和各含有存储器阵列和相关的控制、输入/输出及状态机电路的一个或一个以上集成电路芯片。趋势是将系统的存储器阵列和控制器电路一起集成在一个或一个以上集成电路芯片上。存储器系统可嵌入作为主机系统的一部分,或可包含在可移除地插入主机系统中的存储卡(或其它封装)中。这种可移除式卡可包含整个存储器系统(例如,包含控制器)或仅仅包含存储器阵列和相关的外围电路(其中控制器嵌入在主机中)。因此,控制器(或控制能力)可嵌入在主机中或包含在可移除式存储器系统内。
在一些实施方案中,图11的组件中的一些组件可进行组合。在各种设计中,可将图11的组件中的一个或一个以上组件(除存储器单元阵列302之外)视为控制电路。举例来说,一个或一个以上控制电路可包含命令电路、状态机、行控制电路、列控制电路、阱控制电路、源极控制电路或数据I/O电路的任一者或组合。
参看图12,描述存储器单元阵列202的示范性结构。作为一个实例,描述NAND快闪EEPROM,其分为1,024个区块。同时擦除存储在每一区块中的数据。在一个实施例中,区块是同时擦除的单元的最小单位。在此实例中,每一区块中均存在8,512个列,其被划分为偶数列和奇数列。位线也被划分为偶数位线(BLe)和奇数位线(BLo)。图12展示串联连接以形成NAND串的四个存储器单元。尽管展示每一NAND串中包含四个单元,但可使用四个以上或四个以下存储器单元。NAND串的一个端子经由选择晶体管SGD连接到对应的位线,且另一端子经由第二选择晶体管SGS连接到c源极。
在读取和编程操作的一个实施例期间,同时选择4,256个存储器单元。所选择的存储器单元具有相同字线和相同种类的位线(例如,偶数位线或奇数位线)。因此,可同时读取或编程532个字节的数据。同时读取或编程的这532个字节的数据形成逻辑页。因此,一个区块可存储至少八个逻辑页(四个字线,每一字线具有奇数和偶数页)。当每一存储器单元(例如,多状态存储器单元)存储两个数据位,其中这两个位中的每一者均存储在不同的页中时,一个区块存储16个逻辑页。其它大小的区块和页也可与本发明一起使用。另外,还可使用除图11和12的结构之外的结构来实施本发明。
通过将p阱升高到擦除电压(例如,20伏)并使所选择的区块的字线接地来擦除存储器单元。源极和位线是浮动的。可对整个存储器阵列、单独区块或另一单位的单元执行擦除。电子从浮动栅极转移到p阱区域,且阈值电压变为负(在一个实施例中)。
在读取和检验操作中,选择栅极(SGD和SGS)和未选择的字线(例如,WL0、WL2和WL3)升高到读取通过电压(read pass voltage)(例如,4.5伏)以使晶体管作为通过栅极(pass gate)而操作。所选择的字线(例如,WL1)连接到一电压,所述电压的电平针对每一读取和检验操作而指定,以便判定所关注的存储器单元的阈值电压是在此电平以上还是以下。举例来说,在针对两电平存储器单元的读取操作中,所选择的字线WL1可接地,使得检测到阈值电压是否高于0V。在针对两电平存储器单元的检验操作中,所选择的字线WL1连接到(例如)0.8V,使得检验出阈值电压是否已达到至少0.8V。源极和p阱处于零伏。将所选择的位线(BLe)预充电达到(例如)0.7V的电平。如果阈值电压高于字线上的读取或检验电平,那么与所关注的单元相关的位线(BLe)的电位电平由于非导电存储器单元的缘故而维持高电平。另一方面,如果阈值电压低于读取或检验电平,那么所关注的位线(BLe)的电位电平由于导电存储器单元使所述位线放电的缘故而降低到低电平(例如,小于0.5V)。从而通过连接到位线的电压比较器读出放大器(voltage comparator sense amplifier)来检测存储器单元的状态。
上述擦除、读取和检验操作是根据所属领域中已知的技术执行的。因此,所属领域的技术人员可改变所阐释的细节中的许多细节。还可使用所属领域中已知的其它擦除、读取和检验技术。
如上所述,通过将编程电压Vpgm作为一系列脉冲施加到存储器单元的控制栅极来实现存储器阵列中的存储器单元的编程。Vpgm的量值的选择是一种折衷物。过分高的值将导致更多的快速单元被过编程,而过分低的值将导致编程速度不合理地减小。与存储器系统中的存储器单元的总数目相比,可能引起过编程的快速单元的数目相对较小。因此,当对存储器单元的页进行编程时,此页中将存在一个或一个以上快速存储器单元的可能性不是非常高。这将意味着,如果使用低Vpgm来避免过编程,那么大多数的页会在编程速度方面不必要地受损,因为所需要的编程脉冲的数目主要由Vpgm的启始值决定。实际上,存储器系统中的全部页中仅较小数目的页需要低Vpgm值,而其它页可用较高Vpgm来编程以避免性能降级。为了解决这个难题,提议采用以下过程。
首先,针对第一编程脉冲使用Vpgm的低初始值,使得第一编程脉冲(或最初两个或三个脉冲)期间没有存储器单元(或仅较小数目的存储器单元)将被过编程。为了减小对不具有快速存储器单元的页的编程时间的影响,后续编程脉冲的量值将以较大步长(例如,0.6v,而不是典型值0.3v)增加。Vpgm的值将以较大步长快速增加,直到第一组一个或一个以上(或其它最小数目)单元已达到初始检验电平(Vvstart)为止。因此,并不会损失很多时间,且编程脉冲的总数目可与其它系统类似或甚至少于其它系统。
在正被编程的页中存在一个或一个以上快速存储器单元的情况下,那么将在第一脉冲之后检测到这些快速存储器单元。然而,视对Vpgm使用什么值而定,在检测到任何快速单元之前可能需要一个以上编程脉冲。在一些页中,可能在第一脉冲之后检测到快速单元,在其它页中,可能在两个或两个以上脉冲之后检测到快速单元,而在其它页中,可能根本检测不到快速单元。后续编程脉冲将以较小步长增加,以便避免对那些快速存储器单元进行过编程。这种具有快速存储器单元的页将需要大数目的编程脉冲,因为步长从一开始就较小。由于存储器阵列中的大多数页将不具有任何快速单元,且因此将不会过分减缓,所以总体编程速度将不会不合理地受损。仅对于需要这种情况的页来说,编程将较缓慢以避免过编程。
图13是描述用于编程存储器系统的过程的一个实施例的流程图。在步骤300中,命令电路214(图11)从控制器318接收命令以编程一组数据。在步骤302中,接收所述数据。在步骤304中,系统判定需要对哪些数据页进行编程。在判定要编程哪些页之后,状态机216将指导对适当页的编程。在步骤306中,编程下一页。在步骤308中,判定操作是否成功。如果成功地编程了所述页,那么判定是否有更多的页要编程(步骤310)。如果没有更多的页要编程,那么图13的过程完成。如果有更多的页要编程,那么过程返回到步骤306,且编程下一页。
如果编程操作不成功(见步骤308),那么在步骤320中对所述页进行再编程。步骤320还可包含执行各种误差校正技术或取消编程操作。在步骤320之后,过程可在步骤310处继续。
在一些实施例中,还可在编程之前对待编程的各页进行预处理。举例来说,可对各页执行预编程,使得仍处于擦除状态的所有存储器单元均被编程达到共用电平。在预编程之后,可擦除所有的页。在擦除之后,可执行软编程以升高被过擦除的存储器单元的阈值电压。
图14是描述用于编程数据页的过程(见图13的步骤306)的一个实施例的流程图。在步骤350中,针对所述特定页加载数据。在步骤352中,将编程电压Vpgm设定为其初始低值,将增加值ΔVpgm设定为第一增加值ΔVpgm 1,且将编程计数器PC初始化为零。以一量值设定第一编程脉冲的值,所述量值足够低(例如,15V)以使得正被编程的非易失性存储元件(甚至快速非易失性存储元件)均不会被过编程或仅足够小数目的非易失性存储元件将会被过编程。在步骤354中,施加第一编程脉冲。因为量值设定得足够低,所以在第一编程脉冲之后,存储器单元均不会被过编程或仅足够小数目的存储器单元将会被过编程。如上所述,在一个实施例中,数据页中的存储器单元共享一共用字线,且因此在其各自的控制栅极处接收相同编程脉冲。在编程脉冲之后,接着在步骤356中相对于电压Vvstart来检验存储器单元。使用电压值Vvstart来判定哪些存储器单元是快速存储器单元。通过装置特征来进行选择,使得在一个编程脉冲之后通过Vvstart的任何单元均被认为是快速存储器单元。如果正被编程的特定页的存储器单元均不具有大于Vvstart的阈值电压,那么在步骤360中,使编程电压增加ΔVpgm1,且使编程计数器PC增加1。注意,在一些实施例中,可能优选地以不同于1的值来增加编程计数器,以便反映较大步长。举例来说,在较大步长比较小步长大两倍的情况下,循环计数器可增加值2。在步骤360之后,过程返回到步骤354,且施加下一编程脉冲。将重复步骤354-358,直到至少一个存储器单元具有大于Vvstart的阈值电压为止。
注意,在一个实施例中,步骤358将使用不同的最小数目(不同于一个存储器单元)来测试是否存在阈值电压大于Vvstart的足够数目的存储器单元。所使用的数目依据实施方案而变化。然而,被测试的数目应为小于成功编程的所有存储器单元的数目。
当在步骤358中判定一个或一个以上(或不同的最小数目)存储器单元具有大于Vvstart的阈值电压时,那么过程作为步骤374而继续,此时,相对于不同编程状态的各种检验电平来检验所有的存储器单元。在一个实施例中,步骤354-360的重复仅包含相对于Vvstart而检验存储器单元,以便发现阈值电压大于Vvstart的一个或一个以上(或另一最小数目)的存储器单元。在发现一个或一个以上存储器单元的阈值电压大于Vvstart之后,相对于各种目标(或目标和粗略/精细检验电平,酌情依据实施方案)来检验所有存储器单元。举例来说,如果使用粗略/精细编程,那么将相对于各种编程状态的每一者的粗略/精细检验电平和最终目标检验电平来检验每一存储器单元(步骤374)。
注意,可实施不同类型的粗略/精细算法,举例来说,有可能首先仅相对于某一期望状态的粗略电平而进行检验,并在第一单元已通过所述状态的粗略电平之后,开始相对于精细电平而进行检验。此外,如果同时编程多个电平,那么针对较高电平的粗略/精细编程可延期某一数目的编程脉冲。另一可能性是,在较低状态的粗略检验已检测出一个或一个以上单元通过所述较低状态粗略电平之后某一数目的脉冲,开始针对较高电平的粗略检验。使用上述方法,可使所需检验操作的总数目最小,从而减少所需的总编程时间。
如果所有存储器单元均经检验已达到其既定目标电平(步骤376),那么所述过程完成且状态设定为通过(步骤378)。在一些实施例中,如果少于所有存储器单元达到其既定目标,那么可成功地完成编程过程。举例来说,在一些实施例中,如果几乎所有存储器单元均达到其既定目标(例如,不多于预定数目的单元未达到其目标),那么所述过程成功。当使用误差校正进行读取时可处理尚未达到其目标的存储器单元,或在过分多的单元未能达到其目标的情况下,可在存储器阵列中其它地方对数据进行编程。如果并非所有的存储器单元均检验(很可能第一次执行步骤374),那么判定编程计数器是否小于20(或另一适当的值)。如果编程计数器处于20(或任何其它适当的值)或更大,那么已执行过分多的步骤且所述过程失败(步骤382)。如果编程计数器仍小于20(或任何其它适当的值),那么在步骤370中,编程电压步进ΔVpgm2,且编程计数器增加1。注意,在一些实施例中,编程计数器可能以不同于1的值增加以考虑步长差异。注意,ΔVpgm2是比ΔVpgm1小的步长。因此,与步骤370-372的重复期间编程电压Vpgm的较缓慢升高相比,在步骤354-360的重复期间,编程电压Vpgm增加得快得多。在步骤372中,施加另一编程脉冲。在步骤374中,如上所述检验存储器单元,且过程在步骤376处继续。
参看图15A、15B和15C描述存储器单元的行为。图15A展示二位多状态单元的阈值电压分布2、10、12和14。然而,注意,本文描述的技术适用于存储两个以上和两个以下数据位的存储器单元。图15A还描绘读取检验点Vr1和Vr2。读取检验点Vr1用于区分阈值电压分布10与12。读取检验点Vr2用于区分阈值电压分布12与14。可使用零伏来区分阈值电压分布2与10。图15A还将电压电平Vv1展示为阈值电压分布10的最低电压,且将Vmax1展示为阈值电压分布10的上限电压。
图15B展示当页中不存在快速存储器单元时的经擦除的阈值电压分布2以及经编程的阈值电压分布402和404。在此情况下,检验电平Vv1表示最终目标检验电平,且可将零伏用作Vvstart。可以看到,在第一脉冲之后,阈值电压分布402从经擦除的电平上移某一程度;然而,仍没有存储器单元已达到Vvstart(0v),因此以第二脉冲继续进行编程,所述第二脉冲具有增加了增量ΔVpgm1的Vpgm。因此,阈值电压分布以接近ΔVpgm1的值上移。注意,此移动量可变化且很大程度上取决于初始Vpgm脉冲的振幅。在第二脉冲之后,分布404中的存储器单元的数目已达到Vvstart(0伏)以上的阈值电压。因此,Vpgm随后将以较小步长ΔVpgm2增加。
图15c展示当存在快速存储器单元时的经擦除的阈值电压分布2和经编程的阈值电压分布410。在第一编程脉冲(例如,阈值电压分布410)之后,许多单元均具有大于Vvstart(0伏)的阈值电压。一些存储器单元可能具有大于Vv1的阈值电压。因此,之后的编程脉冲的步长将等于ΔVpgm2以避免过编程。
图16和17包含描绘结合粗略/精细编程而描述的技术的使用的曲线图。图16A、16B和16C描绘快速存储器单元的行为,所述快速存储器单元所具有的阈值电压通过同一脉冲中的过程和目标检验电平两者,使得存储器单元不进入精细模式。图17A、17B和17C描绘参与粗略和精细模式两者的较缓慢的存储器单元。图16A和17A描绘施加到正被编程的存储器单元的控制栅极的编程脉冲Vpgm。图16B和17B描绘用于正被编程的存储器单元的位线电压Vb1。图16C和17C描绘用于正被编程的存储器单元的阈值电压。
参看图16A、16B和16C,描绘快速存储器单元。响应于开始于时间t0的第一脉冲,存储器单元的阈值电压升高到Vver3以上。注意,检验电平Vver3对应于图14的Vvstart。因此,包含此存储器单元的页被更缓慢地编程。由此,后续编程脉冲的量值将增加ΔVpgm2。在t1与t2之间,存储器单元的阈值电压升高到Vver2和Vver1两者以上。在t2处,位线电压将升高到Vinhibit以便抑制任何进一步的编程。注意,在一个实施例中,对于最低编程状态来说,Vver3可比Vver 2低0.2v到0.3v。
关于图17的较缓慢的存储器单元,存储器单元的阈值电压将直到t2与t3之间的周期才升高到Vver3以上。因此,编程脉冲将在t3之前增加ΔVpgm1。因为页中的存储器单元中的阈值电压在t3时大于Vver3,所以增加值在t3时变化为ΔVpgm2,且后续脉冲的量值增加ΔVpgm2。存储器单元中的阈值电压在t3与t4之间升高到Vver2以上,因此,存储器单元进入精细编程阶段且位线在t4时升高到Vs。在t4与t5之间,阈值电压增加由于位线电压的增加且由于Vpgm增加值的减小的缘故而减缓。然而,在t4与t5之间,阈值电压确实变得大于Vver1;因此,阈值电压已达到其目标电平,且位线电压升高到Vinhibit以便在t5时抑制进一步的编程。
注意,图16A和17A展示编程脉冲彼此邻近以使曲线图更易于阅读。然而,脉冲之间实际上存在时间间隔以为检验操作留余地。
图18和19描述用于使用本文描述的技术来避免或减少过编程的另一实施例。此实施例涉及在一个或一个以上存储器单元达到Vver3电平之前初始设定一个或一个以上脉冲,且接着针对后续编程脉冲将编程电压量值重设为较低电平。此实施例还使用粗略/精细方法。图18A、18B和18C对应于快速存储器单元,而图19A、19B和19C对应于较缓慢的存储器单元。图18A和19A描绘编程脉冲Vpgm。图18B和19B描绘位线电压Vb1。图18C和19C描绘随着时间的过去而被编程的存储器单元的阈值电压。
如图18A中所描绘,在时间t0时提供第一脉冲。判定此第一脉冲的量值,以使得没有或仅足够小数目的存储器单元将被过编程。图18C展示在时间t0与t1之间阈值电压变得高于Vver3的快速存储器单元。因此,将使用ΔVpgm2来较缓慢地编程存储器单元的相关联页。然而,在提供任何进一步的脉冲之前,使Vpgm的量值降低(例如)0.3-0.5V的值。因此,图18A展示开始于t1的脉冲的量值低于开始于t0的脉冲的量值。在t1之后,每一后续脉冲均增加ΔVpgm2。在t1与t2之间,存储器单元的阈值电压升高到高于Vver1的电平;因此,位线在t2时升高到Vinhibit(见图18B)。
图19A展示存储器单元更缓慢地编程的情况。因此,存储器单元直到t2与t3之间的周期才使其阈值电压达到Vver3。因此,在t3之前,脉冲增加了ΔVpgm1。在t3之后,Vpgm的增加值将变为ΔVpgm2。另外,脉冲的量值将被重设为较低值。举例来说,图19a展示开始于t3的脉冲低于开始于t2的脉冲。t3之后的额外脉冲的增加值为ΔVpgm2。在t4时,检验出阈值电压大于Vver2但小于Vver1,因此,存储器单元进入精细编程阶段且位线电压升高到Vs。在t5时,检验出存储器单元的阈值电压大于Vver1;因此,通过使位线电压升高到Vinhibit来抑制对存储器单元进行进一步编程。
已出于说明和描述的目的呈现了对本发明的以上详细描述。不希望所述详细描述是详尽的或将本发明限于所揭示的精确形式。根据上述教示,许多修改和变化是可能的。选择所描述的实施例是为了最佳地阐释本发明的原理及其实际应用,以从而使所属领域的其他技术人员能够最佳地将本发明用于各种实施例中,且作出适于所预期的特定用途的各种修改。希望本发明的范围由所附权利要求书界定。
权利要求
1.一种用于编程非易失性存储器的方法,其包括判定一组非易失性存储元件是否包含至少最小数目的快速编程非易失性存储元件;如果所述组非易失性存储元件包含至少所述最小数目的快速编程非易失性存储元件,那么用较缓慢升高的控制栅极电压信号来编程所述组非易失性存储元件;和如果所述组非易失性存储元件不包含至少所述最小数目的快速编程非易失性存储元件,那么用较快升高的控制栅极电压信号来编程所述组非易失性存储元件,所述最小数目的快速编程非易失性存储元件少于所述组非易失性存储元件中被成功编程的所有非易失性存储元件。
2.根据权利要求1所述的方法,其中所述用较快升高的控制栅极电压信号来编程所述组非易失性存储元件包括用所述较快升高的控制栅极电压信号来编程所述组非易失性存储元件,直到所述组非易失性存储元件的第一子集已达到第一电平为止;和随后用所述较缓慢升高的控制栅极电压信号来编程所述组非易失性存储元件,直到所述组非易失性存储元件的至少一大子集达到一个或一个以上目标电平为止。
3.根据权利要求2所述的方法,其中所述用所述较缓慢升高的控制栅极电压信号来编程所述组非易失性存储元件包含执行粗略编程模式和精细编程模式;所述粗略编程模式包含使用较低位线电压;且所述精细编程模式包含使用较高位线电压。
4.根据权利要求2所述的方法,其中所述用所述较缓慢升高的控制栅极电压信号来编程所述组非易失性存储元件包括用第一位线电压来编程所述组非易失性存储元件,直到所述非易失性存储元件中的每一者均达到一个或一个以上粗略/精细检验电平为止,所述组非易失性存储元件是多状态快闪存储器装置;和用第二位线电压来编程所述组非易失性存储元件,直到所述非易失性存储元件中的至少一第二子集达到所述一个或一个以上目标电平为止。
5.根据权利要求1所述的方法,其中所述判定步骤包含将编程脉冲施加到所述组非易失性存储元件;和判定所述组非易失性存储元件中的至少一者是否已达到预定编程电平,所述编程脉冲具有一量值,所述量值设定得足够低以使得所述组非易失性存储元件中没有非易失性存储元件或至少大大减少数目的非易失性存储元件会由于所述编程脉冲而被过编程。
6.根据权利要求1所述的方法,其中所述较缓慢升高的控制栅极电压信号包含一组具有以第一速率增加的量值的脉冲;且所述较快升高的控制栅极电压信号包含一组具有以第二速率增加且随后以所述第一速率增加的量值的脉冲,所述第一速率低于所述第二速率。
7.根据权利要求1所述的方法,其中所述组非易失性存储元件中的所有非易失性存储元件均接收共用控制栅极电压信号。
8.根据权利要求1所述的方法,其中所述最小数目的快速编程非易失性存储元件等于一个快速编程非易失性存储元件。
9.根据权利要求1所述的方法,其中所述如果所述组非易失性存储元件包含所述最小数目的一个或一个以上快速编程非易失性存储元件,那么用所述较缓慢升高的控制栅极电压信号来编程所述组非易失性存储元件包括降低所述控制栅极电压的量值。
10.根据权利要求9所述的方法,其中所述用较快升高的控制栅极电压信号来编程所述组非易失性存储元件包括继续升高所述控制栅极电压信号,直到所述组非易失性存储元件的子集已达到第一电平为止;在所述组非易失性存储元件的所述子集已达到所述第一电平之后,降低所述控制栅极电压信号;和随后用所述较缓慢升高的控制栅极电压信号来编程所述组非易失性存储器存储元件,直到所述组非易失性存储元件中的所有或几乎所有存储元件均达到一个或一个以上目标电平为止。
11.根据权利要求10所述的方法,其中所述控制栅极电压信号包括一组脉冲。
12.根据权利要求1所述的方法,其中所述组非易失性存储元件对应于数据页。
13.根据权利要求1所述的方法,其中所述组非易失性存储元件是NAND快闪存储器装置。
14.根据权利要求1所述的方法,其中所述组非易失性存储元件是多状态快闪存储器装置。
15.根据权利要求1所述的方法,其中所述组非易失性存储元件是NAND多状态快闪存储器装置。
16.一种非易失性存储系统,其包括一组非易失性存储元件,所述组非易失性存储元件与数据单元相关联;和与所述组非易失性存储元件进行通信的一个或一个以上控制电路,所述一个或一个以上控制电路判定哪些待编程的数据单元包含至少最小数目的快速编程非易失性存储元件,所述一个或一个以上控制电路用较快升高的控制栅极电压信号来编程不包含至少所述最小数目的快速编程非易失性存储元件的所述数据单元,并用较缓慢升高的控制栅极电压信号来编程包含至少所述最小数目的快速编程非易失性存储元件的所述数据单元,对于特定数据单元来说,所述最小数目的快速编程非易失性存储元件少于被成功编程的所有非易失性存储元件。
17.根据权利要求16所述的非易失性存储系统,其中所述用较快升高的控制栅极电压信号来编程不包含所述最小数目的快速编程非易失性存储元件的所述数据单元包括用所述较快升高的控制栅极电压信号进行编程,直到非易失性存储元件的子集已达到第一电平为止;和随后用所述较缓慢升高的控制栅极电压信号进行编程。
18.根据权利要求17所述的非易失性存储系统,其中随后用所述较缓慢升高的控制栅极电压信号进行编程包括用第一位线电压来编程不包含所述最小数目的快速编程非易失性存储元件的所述数据单元的所述非易失性存储元件,直到不包含所述最小数目的快速编程非易失性存储元件的所述数据单元的所述非易失性存储元件中的每一者均达到一个或一个以上粗略检验电平为止,不包含所述最小数目的快速编程非易失性存储元件的所述数据单元的所述非易失性存储元件是多状态存储器装置;和用第二位线电压来编程不包含所述最小数目的快速编程非易失性存储元件的所述数据单元的所述非易失性存储元件,直到不包含所述最小数目的快速编程非易失性存储元件的所述数据单元的所述非易失性存储元件中的每一者均达到一个或一个以上目标电平为止。
19.根据权利要求17所述的非易失性存储系统,其中所述判定哪些待编程的数据单元包含最小数目的快速编程非易失性存储元件包括通过执行一种方法来单独地测试每一数据单元,所述方法包括将编程脉冲施加到数据单元的一组非易失性存储元件;和判定所述组非易失性存储元件中的至少一者是否已达到预定编程电平,所述编程脉冲具有一量值,所述量值设定得足够低以使得所述组非易失性存储元件中没有非易失性存储元件会由于所述编程脉冲而被过编程。
20.根据权利要求16所述的非易失性存储系统,其中所述最小数目的快速编程非易失性存储元件等于一个快速编程非易失性存储元件。
21.根据权利要求16所述的非易失性存储系统,其中用较缓慢升高的控制栅极电压信号来编程包含至少最小数目的快速编程非易失性存储元件的所述数据单元包括初始降低所述控制栅极电压的量值。
22.根据权利要求21所述的非易失性存储系统,其中所述用较快升高的控制栅极电压信号来编程不包含所述最小数目的快速编程非易失性存储元件的所述数据单元包括继续升高所述控制栅极电压信号,直到与特定数据单元相关联的非易失性存储元件的子集已达到第一电平为止;降低所述控制栅极电压信号;和随后用所述较缓慢升高的控制栅极电压信号来编程与所述特定数据单元相关联的所述非易失性存储元件,直到与所述特定数据单元相关联的所述非易失性存储元件达到一个或一个以上目标电平为止。
23.根据权利要求16所述的非易失性存储系统,其中所述控制栅极电压信号包括一组脉冲。
24.根据权利要求16所述的非易失性存储系统,其中所述数据单元对应于数据页。
25.根据权利要求16所述的非易失性存储系统,其中所述组非易失性存储元件是NAND快闪存储器装置。
26.根据权利要求16所述的非易失性存储系统,其中所述组非易失性存储元件是多状态快闪存储器装置。
27.根据权利要求16所述的非易失性存储系统,其中所述组非易失性存储元件是NAND多状态快闪存储器装置。
28.根据权利要求16所述的非易失性存储系统,其中所述一个或一个以上控制电路包含命令电路、状态机、行控制电路、列控制电路、阱控制电路、源极控制电路或数据I/O电路中的任一者或其组合。
29.一种非易失性存储系统,其包括一组非易失性存储元件;和与所述组非易失性存储元件进行通信的一个或一个以上控制电路,所述一个或一个以上控制电路判定一组非易失性存储元件是否包含至少最小数目的快速编程非易失性存储元件,如果所述组非易失性存储元件不包含所述最小数目的快速编程非易失性存储元件,那么所述一个或一个以上控制电路使用字线编程信号的第一增加电平来编程所述组非易失性存储元件,如果所述组非易失性存储元件包含所述最小数目的快速编程非易失性存储元件,那么所述一个或一个以上控制电路使用所述字线编程信号的第二增加电平而不使用所述字线编程信号的所述第一增加电平来编程所述组非易失性存储元件,所述第二增加信号小于所述第一增加信号,所述最小数目小于所述组非易失性存储元件中被编程的所有非易失性存储元件。
30.根据权利要求29所述的非易失性存储系统,其中如果所述组非易失性存储元件不包含所述最小数目的快速编程非易失性存储元件,那么所述一个或一个以上控制电路使用所述字线编程信号的所述第一增加电平来编程所述组非易失性存储元件,直到非易失性存储元件组的子集已达到第一检验电平为止,且所述一个或一个以上控制电路使用所述字线编程信号的所述第二增加电平来编程所述组非易失性存储元件,直到所述组非易失性存储元件中的所有或几乎所有非易失性存储元件均达到一个或一个以上目标电平为止。
31.根据权利要求29所述的非易失性存储系统,其中所述判定所述组非易失性存储元件是否包含最小数目的快速编程非易失性存储元件包括将编程脉冲施加到所述组非易失性存储元件;和判定所述组非易失性存储元件中的至少一者是否已达到预定编程电平。
32.根据权利要求29所述的非易失性存储系统,其中所述最小数目的一个或一个以上快速编程非易失性存储元件等于一个快速编程非易失性存储元件。
33.根据权利要求29所述的非易失性存储系统,其中所述组非易失性存储元件是NAND多状态快闪存储器装置。
34.一种用于编程非易失性存储器的方法,其包括将编程电压信号施加到非易失性存储元件的控制栅极;如果最小数目的所述非易失性存储元件已被编程达到至少第一电平,那么继续使所述编程电压信号增加较小增量,并将所述经增加的编程电压信号施加到所述非易失性存储元件的所述控制栅极,直到所述非易失性存储元件已达到一个或一个以上目标电平为止,所述最小数目的所述非易失性存储元件少于正被编程的所有非易失性存储元件;和如果所述最小数目的所述非易失性存储元件尚未被编程达到至少所述第一电平,那么继续使所述编程电压信号增加较大增量,并将所述经增加的编程电压信号施加到所述非易失性存储元件的所述控制栅极,直到所述最小数目的所述非易失性存储元件已被编程达到至少所述第一电平为止,然后继续使所述编程电压信号增加所述较小增量,并将所述经增加的编程电压信号施加到所述非易失性存储元件的所述控制栅极,直到所述非易失性存储元件中的所有或几乎所有非易失性存储元件已达到一个或一个以上目标电平为止。
35.根据权利要求34所述的方法,其中所述继续使所述编程电压信号增加所述较小增量并将所述经增加的编程电压信号施加到所述非易失性存储元件的所述控制栅极直到所述非易失性存储元件已达到一个或一个以上目标电平为止包括执行粗略编程模式和精细编程模式;所述粗略编程模式包含使用较低位线电压;且所述精细编程模式包含使用较高位线电压。
36.根据权利要求34所述的方法,其中所述继续使所述编程电压信号增加所述较小增量包含施加一组脉冲,所述组脉冲具有增加了所述较小增量的量值;且所述继续使所述编程电压信号增加所述较大增量包含施加一组脉冲,所述组脉冲具有增加了所述较大增量的量值。
37.根据权利要求34所述的方法,其中所述继续使所述编程电压信号增加所述较小增量包含降低所述编程电压;和随后使所述编程电压升高所述较小增量。
38.根据权利要求34所述的方法,其中所述最小数目的所述非易失性存储元件等于一个非易失性存储元件。
39.根据权利要求34所述的方法,其中所述组非易失性存储元件是多状态快闪存储器装置。
40.一种用于编程非易失性存储器的方法,其包括将第一编程脉冲施加到一组非易失性存储元件,所述第一编程脉冲具有一量值,所述量值设定得足够低以使得所述组非易失性存储元件中没有(或几乎没有)非易失性存储元件会在所述第一编程脉冲期间被过编程;判定所述组非易失性存储元件是否包含一个或一个以上快速编程非易失性存储元件;如果所述组非易失性存储元件包含一个或一个以上快速编程非易失性存储元件,那么通过将第一组一个或一个以上编程脉冲施加到所述组非易失性存储元件来编程所述组非易失性存储元件,其中所述组编程脉冲的量值增加了较小增量;和如果所述组非易失性存储元件不包含一个或一个以上快速编程非易失性存储元件,那么通过将第二组一个或一个以上编程脉冲施加到所述组非易失性存储元件来编程所述组非易失性存储元件,其中所述第二组编程脉冲的量值增加了较大增量。
41.根据权利要求40所述的方法,其中所述判定所述组非易失性存储元件是否包含一个或一个以上快速编程非易失性存储元件包含判定所述组非易失性存储元件中的任一者是否已达到用于测量快速编程非易失性存储元件的阈值。
42.根据权利要求41所述的方法,其中如果所述组非易失性存储元件不包含一个或一个以上快速编程非易失性存储元件,那么在将所述第二组一个或一个以上编程脉冲施加到所述非易失性存储元件之后,将第三组编程脉冲施加到所述非易失性存储元件;且所述第三组编程脉冲的量值增加了所述较小增量。
43.根据权利要求42所述的方法,其中所述组非易失性存储元件是多状态快闪存储器装置。
44.根据权利要求43所述的方法,其中所述通过将第一组一个或一个以上编程脉冲施加到所述组非易失性存储元件来编程所述组非易失性存储元件包含执行粗略编程模式和精细编程模式。
全文摘要
将编程脉冲施加到一组非易失性存储元件。所述编程脉冲的量值选择为足够低以使得非易失性存储元件均不会被过编程。测试所述非易失性存储元件以判定至少一个(或某一其它最小数目)非易失性存储元件是否已被编程超过测试阈值。如果是,那么认为所述组非易失性存储器元件具有一个或一个以上快速编程非易失性存储元件,且使用针对后续编程脉冲的较小增加值来执行将来的编程。如果判定所述组非易失性存储器元件不具有一个或一个以上快速编程非易失性存储元件,那么针对后续编程脉冲使用较大增加值,直到一个(或某一其它最小数目)非易失性存储元件已被编程超过所述测试阈值为止,此时针对后续编程脉冲使用所述较小增加值。
文档编号G11C16/10GK101095199SQ200580039208
公开日2007年12月26日 申请日期2005年11月3日 优先权日2004年11月16日
发明者格里特·简·赫民克 申请人:桑迪士克股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1