存储器的适应性擦除和软编程的制作方法

文档序号:6768418阅读:286来源:国知局
专利名称:存储器的适应性擦除和软编程的制作方法
技术领域
本发明涉及非易失性存储器。
背景技术
半导体存储器已经变得日益普遍用在各种电子设备中。例如,非易失性半导体存储器用在蜂窝电话、数码相机、个人数字助理、移动计算设备、非移动计算设备和其他设备中。电可擦除可编程只读存储器(EEPROM)和闪存位列最普遍使用的非易失性半导体存储器中。相比于传统的全特征EEPR0M,通过也是EEPROM类型的闪存,整个存储器阵列或者存储器的一部分的内容可以在一步中被擦除。传统的EEPROM和闪存两者都利用位于半导体衬底中的沟道区上方并与之隔离的浮置栅极。该浮置栅极位于源极和漏极区之间。在浮置栅极之上并与之隔离地提供控制栅极。由此形成的晶体管的阈值电压(Vth)由保留在浮置栅极上的电荷量控制。即,在晶体管导通前必需施加到控制栅极以允许其源极和漏极之间导电的电压的最小量由浮置栅极上的电荷水平控制。一些EEPROM和闪存器件具有用于存储两个范围的电荷的浮置栅极,因此存储器元件可以在两个状态、例如已擦除状态和已编程状态之间被编程/擦除。这样的闪存器件有时被称为二进制闪存器件,因为每个存储器元件可以存储一位数据。通过标识多个不同的允许/有效编程的阈值电压范围来实现多状态(也称为多级)闪存器件。每个不同的阈值电压范围对应于在存储器器件中被编码的数据位集合的预定值。例如,当每个存储器元件可以被置于与四个不同的阈值电压范围对应的四个离散电荷带之一时,每个存储器元件可以存储两位数据。通常,在编程操作期间施加到控制栅极的编程电压VreM被施加为幅度随时间增加的一系列脉冲。在一种可能的方法中,脉冲的幅度随每个连续脉冲而增加预定步长大小,例如0.2-0. 4V。VreM可以被施加到闪存元件的控制栅极。在编程脉冲之间的时段中,实行验证操作。即,在连续编程脉冲之间读取正被并行编程的一组元件的每个元件的编程电平,以确定其是否等于或大于该元件正被编程到的验证电平。对于多状态闪存元件的阵列,可以对元件的每个状态进行验证步骤,以确定该元件是否已达到其数据相关的验证电平。例如, 能够以四个状态存储数据的多状态存储器元件可能需要对三个比较点进行验证操作。此外,当对诸如NAND串中的NAND闪存器件的EEPROM或闪存器件编程时,通常VreM 被施加到控制栅极,并且位线接地,致使来自单元或者存储器元件、例如存储元件的沟道的电子被注入到浮置栅极中。当电子在浮置栅极中累积时,浮置栅极变为负充电,并且存储器元件的阈值电压升高,使得该存储器元件被认为处于已编程状态。在可以对存储元件集编程之前,在擦除序列中将其擦除,该擦除序列包括擦除操作和软编程操作。该擦除操作包括施加高衬底电压,其将电荷从被编程的存储元件的浮置栅极拉出。随后,在软编程中,存储元件的阈值电压变窄并升高到与已擦除状态相关联的电平。但是,擦除序列可能是耗时的。

发明内容
本发明通过提供改进在擦除序列期间的存储器器件的性能的技术而克服以上和其他问题。在一个实施例中,一种操作非易失性存储器的方法,包括将一个或多个擦除脉冲施加到非易失性存储元件集合,直到满足第一验证条件;确定施加的擦除脉冲的计数。该方法还包括将数量为NSPeM_SKIP的一个或多个软编程脉冲施加到所述非易失性存储元件集合而不进行验证操作,其中数量NSPeM_SKIP基于所述计数。该方法还包括随后将一个或多个另外的软编程脉冲施加到所述非易失性存储元件集合,直到满足第二验证条件,所述一个或多个另外的软编程脉冲的每个软编程脉冲后跟有验证操作。在另一实施例中,一种操作非易失性存储器的方法包括进行擦除序列的擦除操作,包括将一个或多个擦除脉冲施加到非易失性存储元件集合,直到满足擦除验证条件,确定施加的擦除脉冲的计数;以及进行擦除序列的软编程操作,包括将一个或多个软编程脉冲施加到所述非易失性存储元件集合,直到满足软编程验证条件。基于所述计数设置一个或多个软编程脉冲的特性。在另一实施例中,一种操作非易失性存储器的方法包括在第一擦除操作中,将一个或多个擦除脉冲施加到非易失性存储元件集合,直到满足第一验证条件。该方法还包括确定在第一擦除操作中施加的擦除脉冲的计数,并在第一擦除操作之后,进行第二擦除操作,包括施加数量为nekase_skip的一个或多个擦除脉冲而不进行验证操作,其中数量Nekase_skip 基于所述计数,以及随后施加一个或多个另外的擦除脉冲。该一个或多个另外的擦除脉冲的每个擦除脉冲后跟有验证操作。在另一实施例中,一种非易失性存器包括非易失性存储元件集合;以及一个或多个控制电路。该一个或多个控制电路将一个或多个擦除脉冲施加到所述非易失性存储元件集合,直到满足第一验证条件,并确定施加的擦除脉冲的计数。该一个或多个控制电路还将数量为NSPeM_SKIP的一个或多个软编程脉冲施加到所述非易失性存储元件集合而不进行验证操作,其中数量Nsmkkip基于所述计数。随后,一个或多个控制电路将一个或多个另外的软编程脉冲施加到所述非易失性存储元件集合,直到满足第二验证条件。所述一个或多个另外的软编程脉冲的每个软编程脉冲后跟有验证操作。在此还可以提供相应的方法、系统以及具有用于进行在此提供的方法的可执行代码的计算机或处理器可读的存储器件。


图Ia是NAND串的顶视图。图Ib是图Ia的NAND串的等效电路图。图Ic是NAND闪存元件的阵列的方框图。图2绘出在衬底上形成的NAND串的截面图。图3绘出已擦除状态和较高数据状态的阈值电压分布。图4绘出作为编程-擦除周期的数量的函数的非易失性存储元件集合的行为。图5绘出软编程验证跳跃(skip)与擦除脉冲的数量的关系。
图6绘出可以基于擦除脉冲的数量而设置的不同软编程特性。图7a绘出在相邻的擦除脉冲之间具有奇偶验证脉冲的一系列擦除脉冲。图7b绘出在相邻的擦除脉冲之间具有单个验证脉冲的一系列擦除脉冲。图8a绘出在相邻的软编程脉冲之间具有奇偶验证脉冲的一系列软编程脉冲,其中不跳过验证操作,如适合于循环使用的(cycled)器件那样。图8b绘出其中前十个脉冲之后不跟有验证脉冲的一系列软编程脉冲,如适合于新用的(fresh)器件那样。图8c绘出其中前五个脉冲后不跟有验证脉冲的一系列软编程脉冲,如适合于在寿命中期的(mid life)器件那样。图8d绘出具有高幅度、中等幅度和低幅度的一系列软编程脉冲,其中前五个脉冲后不跟有验证操作。图8e绘出具有三个可能的步长大小的一系列软编程脉冲,其中前五个脉冲后不跟有验证操作。图8f绘出具有三个可能的脉冲宽度的一系列软编程脉冲。图9a绘出擦除和编程存储元件、包括基于在擦除操作中使用的擦除脉冲的数量来调整软编程操作的方法。图9b绘出用于进行擦除操作、包括计数在擦除操作中使用的擦除脉冲的数量并设置要在随后的软编程操作中跳过的软编程验证操作的数量的方法。图9c绘出用于通过跳过多个验证操作来进行软编程操作的方法。图IOa绘出用于确定在擦除操作中跳过的验证操作的数量的方法。图IOb绘出用于进行擦除操作、包括跳过多个验证操作的方法。图IOc绘出其中前三个验证脉冲后不跟有验证脉冲的一系列擦除脉冲。图11是NAND闪存元件的阵列的框图。图12是使用单个行/列解码器和读/写电路的非易失性存储器系统的框图。图13是绘出感测块的一个实施例的框图。图14图示对于全位线存储器架构和对于奇偶存储器架构将存储器阵列组织成块的示例。图15是描述用于编程非易失性存储器的处理的一个实施例的流程图。图16a绘出在编程期间施加到非易失性存储元件的控制栅极的示例脉冲串,其中对奇数和偶数位线的存储元件同时进行验证操作。图16b绘出在编程期间施加到非易失性存储元件的控制栅极的示例脉冲串,其中对奇数和偶数位线的存储元件分别进行验证操作。
具体实施例方式本发明提供了用于改进存储器元件在擦除序列期间的性能的技术。适合于实现本发明的存储器系统的一个例子使用NAND闪存结构,其包括在两个选择栅极之间串联排列多个晶体管。串联的晶体管和选择栅极被称为NAND串。图Ia是示出一个NAND串的顶视图。图Ib是其等效电路。图Ia和Ib中所示的NAND串包括串联并夹在第一选择栅极120和第二选择栅极122之间的四个晶体管100、102、104和106。选择栅极120选通NAND串与位线126的连接。选择栅极122选通NAND串与源极线128的连接。通过向控制栅极120CG施加适当的电压来控制选择栅极120。通过向控制栅极122CG 施加适当的电压来控制选择栅极122。晶体管100、102、104和106的每个具有控制栅极和浮置栅极。晶体管100具有控制栅极100CG和浮置栅极loore。晶体管102包括控制栅极 102CG和浮置栅极102R;。晶体管104包括控制栅极104CG和浮置栅极104R;。晶体管106 包括控制栅极106CG和浮置栅极106TO。控制栅极IOOCG连接到(或者是)字线WL3,控制栅极102CG连接到字线WL2,控制栅极104CG连接到字线WLl,并且控制栅极106CG连接到字线mi)。在一个实施例中,晶体管100、102、104和106每个是存储元件,也被称为存储器单元。在其他实施例中,存储元件可以包括多个晶体管或者可以不同于图Ia和Ib所示。选择栅极120连接到选择线S⑶。选择栅极122连接到选择线SGS。图Ic是绘出三个NAND串的电路图。使用NAND结构的闪存系统的典型构造将包括几个NAND串。例如,三个NAND串320、340和360被示出在具有更多NAND串的存储器阵列中。每个NAND串包括两个选择栅极和四个存储元件。尽管为了简化示出了四个存储元件,但是,例如,现在的NAND串可以具有高达三十二或六十四个存储元件。例如,NAND串320包括选择栅极322和327以及存储元件323-326,NAND串340包括选择栅极342和;347以及存储元件;343-;346,NAND串360包括选择栅极362和367以及存储元件363-366。每个NAND串通过其选择栅极(例如选择栅极327、347或367)连接到源极线。选择线SGS用于控制源极侧选择栅极。各个NAND串320、340和360通过选择栅极322、342、362等中的选择晶体管连接到各自位线321、341和361。这些选择晶体管由漏极选择线SGD控制。在其他实施例中,选择线不是一定要在NAND串中共用;就是说,可以为不同的NAND串提供不同的选择线。字线WL3连接到存储元件323、343和363的控制栅极。 字线WL2连接到存储元件324、344和364的控制栅极。字线连接到存储元件325、345 和365的控制栅极。字线Wi)连接到存储元件326、346和366的控制栅极。如可见,每个位线和各自的NAND串包括存储元件的阵列或集合的列。字线(WL3JL2JL1和Wi))包括阵列或者集合的行。每个字线连接在该行中的每个存储元件的控制栅极。或者,可以通过字线本身提供控制栅极。例如,字线WL2提供存储元件324、344和364的控制栅极。实际上,字线上可以存在数千的存储元件。每个存储元件可以存储数据。例如,当存储一位数字数据时,存储元件的可能阈值电压(Vth)的范围被划分成两个范围,它们被分配了逻辑数据“1”和“0”。在NAND型闪存的一个例子中,在存储元件被擦除后Vth是负的,并被定义为逻辑“ 1 ”。在编程操作后Vth是正的并被定义为逻辑“0”。当Vth是负的,并尝试读时,存储元件将导通以指示逻辑“1”正被存储。当Vth是正的并且尝试读操作时,存储元件将不导通,这指示逻辑“0”被存储。存储元件还可以存储多级的信息,例如多位数字数据。在此情况下,Vth值的范围被划分为多个数据级。例如,如果存储了四级的信息,则将存在被分配到数据值“11”、“10”、“01”和“00” 的四个Vth范围。在NAND型存储器的一个例子中,在擦除操作后的Vth是负的并被定义为 “11”。正Vth值用于状态“10”、“01”和“00”。在被编程到存储元件中的数据和元件的阈值电压范围之间的具体关系取决于对存储元件采用的数据编码方案。当编程闪存元件时,编程电压被施加到存储元件的控制栅极,并且与存储元件相关的位线接地。来自沟道的电子被注入浮置栅极中。当电子在浮置栅极中累积时,浮置栅极变为充负电,并且存储元件的Vth升高。为了向被编程的存储元件的控制栅极施加编程电压,将该编程电压施加在适当的字线上。如上所述,每个NAND串中的一个存储元件共享同一字线。例如,当编程图Ic的存储元件3M时,编程电压还将被施加到存储元件344和364 的控制栅极。图2绘出在衬底上形成的NAND串的截面图。该图被简化并未按比例。NAND串400 包括在衬底438上形成的源极侧选择栅极406、漏极侧选择栅极似4和八个存储元件408、 410、412、414、416、418、420和422。其一个例子是源极/漏极区430的多个源极/漏极区被提供在每个存储元件和选择栅极406和424的任一侧上。在一个方法中,衬底438采用三阱技术,其包括在η阱区434内的ρ阱区432,该η阱区434又在ρ型衬底区436内。可以至少部分地在P阱区上形成NAND串及其非易失性存储元件。除了具有电势V皿的位线 426之外,还提供了具有电势Vsquke的源极供应线404。诸如主体偏压的电压也可以经由端子402施加到ρ阱区432和/或经由端子403施加到η阱区434。在编程操作期间,控制栅极电压VreM被提供在所选字线上、在此例子中被提供在 WL3上,其与存储元件414相关联。此外,回忆起存储元件的控制栅极可以被提供为字线的一部分。例如,WLO、WL1、WL2、WL3、WL4、WL5、WL6和WL7可以分别经由存储元件408,410, 412、414、416、418、420和422的控制栅极而延伸。在一个可能的升压方案中,通过电压 (passvoltage) Vpass被施加到与NAND串400相关联的其余字线。Vses和Vseil分别施加到选择栅极406和424。在擦除操作期间,高的正电压脉冲被施加到衬底436以将电荷从存储元件的浮置栅极拉出。图3绘出已擦除状态和较高数据状态的阈值电压分布。χ轴表示阈值电压,y轴表示存储元件的数量。在此例子中,存在四个数据状态已擦除(E)状态、A状态444、B状态446和C状态448。预期具有另外的数据状态、例如八个或十六个数据状态的存储器器件也变得更常用。擦除序列包括擦除操作和软编程操作。在存储元件通常被过度擦除超过擦除状态442时的擦除操作之后实现分布440。在该擦除操作中,一个或多个擦除脉冲施加到衬底,直到被擦除的存储元件的阈值电压转变到擦除验证电平VEKASE_VEKIFY以下。该转变由指向左的箭头表示。一旦擦除操作完成,就进行软编程操作,其中多个正电压脉冲诸如经由字线被施加到存储元件的控制栅极,以将分布440中的一些或所有存储元件的阈值电压增加为更靠近软编程(SPGM)验证电平^^^㈣并在其以下,到达已擦除状态442。例如,这些存储元件中的某些存储元件可以被软编程以具有在VsreM_VEKIFY以上的Vth,留下其他存储元件具有接近VsreM_VEKIFdfi是在其以下的VTH。该转变由指向右的箭头表示。VsreM_VEKIFY通常在 VmSE-VEMFY以上或与其相等。软编程操作有利地得到窄的擦除状态分布442。一旦软编程操作完成,就可以发生向较高数据状态、诸如分别使用验证电平vVEKIFY_A、vVEKIFY_B和VVEKIFY_。向状态A、B和C的编程。随后的读操作可以使用电平V
read-a、Vread-b 禾口 Vread-Co注意,vEKASE_VEKIFY和vsreM_VEKIFY可以相同或不同。此外,非易失性存储元件集合具有在满足VEEASE_VEKIFY的第一验证条件时至少部分地在已擦除状态442以下的第一阈值电压分布440以及在满足VsreM_VEKIFY的第二验证条件时在已擦除状态下的第二更收紧的阈值电压分布 442。图4绘出作为编程-擦除周期的数量的函数的非易失性存储元件集合的行为。由于存储元件随时间经历了编程和擦除周期,其性能改变。例如,可能预期存储器器件经受得住10000或更多的周期。通常,完成擦除操作所需的擦除脉冲或循环的数量增加(曲线 452),而完成软编程操作的所需的软编程脉冲或循环的数量降低(曲线450)。Veease(例如参见图7a和7b)以及VsreM(例如参见图8a_8f)的值在通常在芯片分选期间被修整为对每个器件最优的预定值。正常地,Vekase被修正得足够高以使当存储器件是新用的(fresh)时可以仅用一个擦除脉冲擦除存储元件。VsreM被修正得足够低以使软编程需要某个数量的脉冲。VEKASE_VEKIFY和^ ^胃皿通常被设置为预定值。当在每个软编程脉冲之后进行验证操作时,软编程操作消耗大量时间。此外,验证操作可能涉及奇数和偶数位线的存储元件的分别验证,进一步增加了验证时间。结果,擦除序列的性能未优化,尤其是对于其中施加了相对高数量的软编程脉冲和相关的验证脉冲的低和中间范围的数量的周期。图5绘出软编程验证跳过与擦除脉冲的数量的关系。χ轴表示擦除脉冲的数量并且y轴表示验证跳过的数量。为了减少擦除序列、特别是软编程操作消耗的时间,基于在擦除操作期间使用的擦除脉冲的数量,可以跳过多个初始验证操作。擦除脉冲的数量用作存储器器件的周期的数量的指示符。但是,其是比周期的数量更准确的器件条件的指示符,因为其反应了存储器器件的实际当前行为,这可能与基于周期计数的预期行为不相关,因为具有相同或类似周期计数的不同器件可能具有不同的性能。但是,也能够使用周期计数。具体地,曲线500表示可以被设置为测量的擦除脉冲的数量的函数的验证跳过的数量的关系。阶梯510允许将擦除脉冲的数量翻译成诸如在三个组Gl、G2和G3中的验证跳过的离散级的数量。作为例子,Gl可以表示一个擦除脉冲,其与第一数量的验证跳过、例如10个跳过相关联,G2可以表示两个或四个擦除脉冲,它们与第二数量的验证跳过、例如五个跳过相关联,以及G3可以表示五个或六个擦除脉冲,它们与第三数量的验证跳过、例如0个跳过相关联。组Gl对应于新用的或在寿命早期的器件,例如具有0-cl个周期的范围,对于其大数量的验证跳过是合适的。组G2对应于中等范围或在寿命中期的器件,例如具有cl-c2周期的范围,对于其中等范围数量的验证跳过是合适的。组G3对应于循环使用的或者在寿命末段的器件,例如具有c2-c3个周期或在c2以上的周期的范围,对于其0或者小数量的验证跳过是合适的。变量cl、c2和c3表示器件特定的数。还能够将验证跳过的数量与擦除脉冲的每种不同数量相关联。可以将存储器器件修改为包括跟踪擦除脉冲的数量并保持用于将验证跳过的数量与擦除脉冲的数量相关联的表格或公式的能力。可以使用查找功能来查找与擦除脉冲的数量对应的验证跳过的数量。此外,可以为存储器器件中的不同非易失性存储元件集合、诸如例如在包括多级存储元件的器件中的不同字线、块、阵列或平面建立(a)验证跳过的数量与(b)擦除脉冲的数量的不同关系。这是合适的,因为不同的集合可能经历了不同数量的周期和/或即使经历了共同数量的周期时也具有不同的行为。或者,可以为整个存储器器件建立共同的验证跳过与擦除脉冲的关系。可以在例如存储器芯片外部的或者该芯片上的控制器存储器中实现合适的数据结构和控制逻辑。验证跳过的数量应该被设置为尽可能的高以得到最大的时间节省,同时应足够低以使在施行验证跳过时存储器器件不达到验证电平。例如可以通过将擦除脉冲的数量与导致存储元件转变超过软编程验证电平的第一软编程脉冲的标识相关并提供在该标识的脉冲以下的脉冲余量,根据实验来确定验证跳过的最佳数量。例如,如果对于新用的器件,平均第十二个软编程脉冲导致存储元件转变超过软编程验证电平,则验证跳过的数量可以被设置为例如比12小了余量2的10。可以测试存储器器件的数量以获得诸如导致存储元件转变超过软编程验证电平的软编程脉冲的数量的标准偏差的统计量,以用期望的信用级来设置验证跳过的数量。可以对不同数量的擦除脉冲和周期重复该过程以据此设置验证跳过的最佳数量。图6绘出可以基于擦除脉冲的数量而设置的不同软编程特性。除了基于擦除脉冲的数量设置验证跳过的数量之外,或者作为替换,可以基于擦除脉冲的数量设置软编程操作的一个或多个特性。这些特性包括开始幅度、诸如电压VSPGM、步长大小、脉冲持续时间、 脉冲的最大允许数量以及最大脉冲幅度。关于开始幅度,见图8d。关于步长大小,见图Se。 关于脉冲持续时间,见图8f。关于脉冲的最大允许数量,在一个可能的实现方式中,相比于新用的器件,循环使用的器件的该最大值较低,因为循环使用的器件应该能够用更少的软编程脉冲完成软编程。关于最大脉冲幅度,在一个可能的实现方式中,相比于新用的器件, 循环使用的器件的该最大值较低,因为循环使用的器件应该能够用更低的最大幅度编程脉冲完成软编程。脉冲幅度表示编程脉冲的电信号。注意,通常,编程涉及向存储元件施加信号、诸如电压或电流,以改变存储元件的状态。图7a绘出在相邻的擦除脉冲之间具有奇和偶验证脉冲的一系列擦除脉冲700。 Veeasei到Vekase8表示在一个示例实现方式中在擦除操作期间施加到存储器器件的衬底的擦除脉冲。例如擦除脉冲可以根据固定或变化的步长大小而在幅度上增加,或者它们可以具有固定的幅度。在相邻的擦除脉冲之间,用于奇数和偶数位线的存储元件的单独的擦除验证脉冲被施加到存储元件的控制栅极。擦除验证脉冲具有幅度^^^^吣脉冲710是用于奇数位线的存储元件的示例擦除验证脉冲,脉冲712是用于偶数位线的存储元件的示例擦除验证脉冲。无论是在擦除操作、软编程操作还是常规编程操作中,验证操作都可能涉及确定当电压或电流被施加到存储元件时该存储元件是否处于导电状态。取决于确定的结果,施加一个或多个另外的脉冲。例如,当施加擦除验证脉冲710时,确定奇数位线的存储元件是否导电。如果它们导电,这意味着它们的阈值电压足够低使得擦除操作已经完成。类似地, 当施加擦除验证脉冲712时,确定偶数位线的存储元件是否导电。擦除脉冲的应用以及相关的验证操作被认为是擦除循环。图7b绘出在相邻的擦除脉冲之间具有单个验证脉冲的一系列擦除脉冲713。在此情况下,在全位线擦除验证操作中,奇数和偶数位线的存储元件同时被验证。当施加示例的擦除验证脉冲714时,确定奇数和偶数位线的存储元件是否导电。图绘出在相邻的软编程脉冲之间具有奇和偶验证脉冲的一系列软编程脉冲, 其中不跳过验证操作,如对循环使用的器件适用的。作为例子,使用十五个软编程脉冲。术语“软”编程表示编程不改变存储元件的数据状态,与改变数据状态的“常规”或“硬”编程相对。Vsrem到Vsrem5表示在一个示例实现方式中在验证操作期间施加到存储元件的控制栅极的软编程脉冲。在其他情况下,可以施加电流。例如,软编程脉冲可以根据步长大小而在幅度上增加,或者它们可以具有固定幅度。在相邻的软编程脉冲之间,用于奇数和偶数位线的存储元件的单独的验证脉冲被施加到存储元件。擦除验证脉冲具有幅度vsreMVEKIFY。脉冲 810是用于奇数位线的存储元件的示例软编程验证脉冲,脉冲812是用于偶数位线的存储元件的示例软编程验证脉冲。另一选项是在相邻的软编程脉冲之间仅具有一个验证脉冲,使得奇数和偶数位线的存储元件同时被验证。在图中,不存在验证跳过。即,在第一软编程脉冲之后和在每个随后的软编程脉冲之后进行验证操作。该情景可能适合于已经经历了相对高数量的编程-擦除周期的循环使用的器件。回忆图5,其表示0个验证跳过适合于具有高数量的周期的存储器器件。图8b绘出其中前十个脉冲后不跟有验证脉冲的一系列软编程脉冲,如适用于新用的器件的。在此,存在十个验证跳过。第十一个软编程脉冲(Vsremi)和每个随后的编程脉冲后跟有验证操作。回忆图5,其表示最大数量的验证跳过适用于新用的存储器器件。除了降低功耗之外,跳过大量的验证操作还极大地减少了软编程时间,得到更优的性能。图8c绘出其中前五个脉冲后不跟有验证脉冲的一系列软编程脉冲,如适用于寿命周期的器件的。在此,前五个软编程脉冲后不跟有验证操作,因此存在五个验证跳过。第六个软编程脉冲(VsreM6)和每个随后的编程脉冲后跟有验证操作。回忆图5,其表示中等范围数量的验证跳过适用于具有中等范围数量的周期的存储器器件。图8d绘出具有高幅度、中等幅度和低幅度的一系列软编程脉冲860,其中前五个脉冲后不跟有验证脉冲。如结合图6所述,可以基于完成擦除操作所需的擦除脉冲的数量来设置软编程操作的至少一个特性。在此例子中,该特性是软编程脉冲的幅度。可以与从其可以确定其余的脉冲的幅度的步长大小一起指定第一软编程脉冲的幅度。随着周期的数量增加,存储器器件变得更容易编程,使得与新用的器件相比,可以使用更低幅度的脉冲来完成软编程。此外,通过使用更低幅度的脉冲,可以避免或减少过度编程。例如,分别对于新用的、中等老化的和循环使用的器件,可以使用高幅度、中等幅度和低幅度。降低软编程脉冲幅度可以得到降低的功耗,而增加软编程脉冲幅度可以得到更快的软编程。此外,作为例子,还实施多个验证跳过。作为例子,高幅度、中等幅度和低幅度分别可以是10V、7. 5V和 5V。图8e绘出具有三个可能的步长大小的一系列软编程脉冲880,其中前五个脉冲后不跟有验证脉冲。Δ VI、Δ V2和Δ V3分别表示第一、第二和第三步长大小。软编程的典型步长大小是大约0. 2V,或者用于擦除操作的0. 5V。在此例子中,基于擦除脉冲的数量而设置的软编程特性是软编程脉冲的步长大小。随着周期的数量增加,存储器器件变得更容易被编程,使得与新用的器件相比,可以使用更小的步长大小来完成软编程。例如对于新用的、中等范围的和循环使用的器件分别可以使用高步长大小、中等步长大小和低步长大小。 减小步长大小可以得到更好的编程准确度和降低的功耗,而增加步长大小可以得到更快的软编程。此外,作为例子,还实施多个验证跳过。图8f绘出具有三个可能的脉冲宽度的一系列软编程脉冲890。为了示出细节,仅绘出了三个脉冲。时间段tl、t2和t3分别表示第一、第二和第三软编程脉冲宽度或持续时间。在此例子中,基于擦除脉冲的数量而设置的软编程特性是软编程脉冲的宽度。随着周期的数量增加,存储器器件变得更容易编程,使得与新用的器件相比,可以使用更小的脉冲宽度来完成软编程。例如,对于新用的、中等范围的和循环使用的器件分别可以使用长脉冲、中等脉冲和短脉冲。减小脉冲宽度可以得到降低的功耗,而增加脉冲宽度可以得到更快的软编程。图9a绘出用于擦除和编程存储元件、包括基于在擦除操作中使用的擦除脉冲的数量调整软编程操作的方法。步骤900包括开始进行擦除操作。步骤901包括标识在擦除操作中使用的擦除脉冲的数量Neease。这是基于擦除脉冲的计数的度量的例子。注意,可以对每个擦除序列单独地进行此步骤,或者可以使用一个或多个先前擦除序列的历史数据, 以便获得在过去的几个擦除序列中的擦除脉冲的数量的滚动平均(rolling average) 0步骤901可选地包括例如基于Neease将存储器器件或者存储器器件的存储元件集合分类到多个组G1、G2和G3之一中。例如,参考图5,小数量的擦除脉冲可能与新用的器件(组Gl) 相关,中等范围数量的擦除脉冲可能与中等范围器件(组⑵)相关,高数量的擦除脉冲可能与循环使用的器件(组GIB)相关。步骤903包括设置要施加的软编程脉冲的数量NSPeM_SKIP 而不进行基于组的(或直接基于Nekase的)验证操作。步骤904包括基于组(或直接基于 Neease)设置软编程特性。可以进行步骤903或904之一或两者。步骤900、905和906的进一步细节分别结合图9b、9c和15说明。图9b绘出用于进行擦除操作、包括对在擦除操作中使用的擦除脉冲的数量计数和设置要在随后的软编程操作中跳过的软编程验证操作的数量的方法。擦除操作开始于步骤910。在步骤912,擦除脉冲的数量(Nekase)的计数器被设置为1。在决定步骤916,如果 Neease大于擦除脉冲的最大允许数量,则在步骤918宣告失败。如果决定步骤916是否,则在步骤920施加擦除脉冲,并且在步骤922进行验证操作。从图3回忆起在一个可能的实现方式中,擦除验证操作使用VVEKIFY_EKASE。在决定步骤924,如果验证成功,例如所有或几乎所有存储元件已经超过验证电平V VERIFY-ERASE, 则在步骤926,Neease的当前值被存储,并且擦除操作结束于步骤928。决定步骤拟4为真表示满足第一验证条件。在决定步骤924,如果验证不成功,则在步骤914递增Nekase,并且只要在决定步骤916还未超过擦除脉冲的最大允许数量,就在步骤920施加进一步的擦除脉冲。图9c绘出通过跳过多个验证操作进行软编程操作的方法。开始于步骤930的软编程操作响应于擦除操作的完成,可以直接跟在图9b的擦除操作之后。步骤932包括基于 Nekase确定要跳过的软编程脉冲的数量(NSPeM_SKIP)。注意,替换地该步骤可以与擦除操作结合地进行,使得NSPeM_SKIP被存储在存储器中并被取出用在软编程操作中。实践中,擦除操作和随后的软编程操作作为擦除序列的部分而进行,因此是共同处理的部分。可选的步骤934 包括基于Nekase设置软编程的一个或多个特性。同样,替换地该步骤可以与擦除操作结合地进行,使得一个或多个特性被存储在存储器中并被取出用于软编程操作中。在步骤936,软编程脉冲数量NsreM的计数器被设置为1。在决定步骤940,如果NsreM 大于软编程脉冲的最大允许数量,则在步骤942宣告失败。如果决定步骤940为否,则在步骤944施加软编程脉冲。在决定步骤946,如果Nekase大于验证跳过的数量NsreM_snP,则在步骤948进行验证操作。此时,先前已经施加了 NsreM个软编程脉冲而没有进行验证操作。从图3回忆起软编程验证操作使用VVEKIFY_sreM。在决定步骤946,如果NsreM不大于验证跳过的数量NsreM_SKIP,则不进行验证操作。这意味着处理仍然在验证跳过阶段。通过不进行验证操作,可以更快地进行软编程操作。在决定步骤946为否时,在步骤938递增NsreM,并且只要在步骤940还未超过软编程脉冲的最大允许数量,就在步骤944施加进一步的软编程脉冲。在决定步骤950,如果验证成功,例如所有或几乎所有存储元件已经超过验证电平 Vspgm veeify,则软编程操作结束于步骤952。随后,在常规或硬编程操作中,可以将存储元件编程到更高数据状态,例如A、B或C。决定步骤950为真表示满足第二验证条件。在决定步骤950,如果验证不成功,则在步骤938递增NsreM,并且只要在决定步骤940还未超过软编程脉冲的最大允许数量,就在步骤944施加进一步的软编程脉冲。图IOa绘出用于确定在擦除操作中跳过的验证操作的数量的方法。以上讨论了可以通过在不需要软编程验证操作时跳过它们来减少软编程时间,作为可以由完成现有擦除操作所需的擦除脉冲的数量确定的存储器器件的所检测的行为的函数。类似地,可以通过在不需要擦除验证操作时不进行该操作来减少擦除操作时间。这可以单独地或者与用于基于器件的当前行为减少软编程时间和/或调整软编程特性的上述技术一起进行。在示例处理中,步骤1000包括识别在多个擦除操作中使用的脉冲的数量。步骤1002包括计算在每个操作中使用的擦除脉冲的平均数Nekase_atc。步骤1004包括设置在下一擦除操作中不进行验证操作而施加的擦除脉冲的数量为N
ERASE-SKIP 一 NEEASE-AVG-NMAEGIN。例如,Nmakgin 可以是一个或
两个脉冲。作为例子,循环使用的器件可能需要平均四个擦除脉冲,并且Nmakm可以被设置为一个脉冲,在此情况下,Nekase_skip = 4-1 = 3。注意,还可以基于一个现有擦除操作而不是来自多个现有擦除操作的平均、均分或其他度量来设置NEKASE_SKIP。由于预期其它器件使用更大数量的擦除脉冲、例如达八个到15个擦除脉冲,来自跳过验证操作的时间节省可以很大。也降低了功耗。图IOb绘出用于通过跳过多个验证操作进行擦除操作的方法。可以结合图IOa的处理进行该处理。该擦除操作开始于步骤1010。在步骤1012,擦除脉冲的数量(Nekase)的计数器被设置为1。在决定步骤1016,如果Neease大于擦除脉冲的最大允许数量,则在步骤 1018宣告失败。如果决定步骤1016为否,则在步骤1020施加擦除脉冲。在决定步骤1022, 如果Nekase大于擦除验证跳过的数量Nekase_skip,则在步骤IOM进行验证操作。在这点,先前已经施加了 Nekase个擦除脉冲而没进行验证操作。从图3回忆起擦除验证操作使用VVEKIFY_EKASE。 在决定步骤1022,如果Neease不大于Neease_skip,则不进行验证操作。这意味着处理仍将处于验证跳过阶段。通过不进行验证操作,可以更快地进行擦除操作。在决定步骤1022为否时,在步骤1014递增Nekase,并且只要在决定步骤1016还未超过擦除脉冲的最大允许数量,就在步骤1020施加进一步的擦除脉冲。在决定步骤1026, 如果验证成功,则擦除操作结束于步骤1(^8。在决定步骤1026,如果验证不成功,则在步骤 1014递增Nekase,并且只要在决定步骤1016还未超过擦除脉冲的最大允许数量,就在步骤 1020施加进一步的擦除脉冲。注意,图9b和图IOb的处理可以被组合以减少擦除操作时间以及确定使用的擦除脉冲的数量和软编程验证跳过的适当数量。在一个可能的实现方式中,上述技术可以与以下进一步详细讨论的NAND存储器器件结合使用。图IOc绘出其中前三个脉冲后不跟有验证脉冲的一系列擦除脉冲1030。作为例子,第一擦除验证脉冲1032出现在第四擦除验证脉冲Veease之后和系列1030的每个相继的擦除脉冲之后。图11例示诸如图Ia和Ib所示的NAND存储元件的阵列1100的例子。沿着每列, 位线1106耦接到NAND串1150的漏极选择栅极的漏极端11沈。沿着NAND串的每行,源极线1104可以连接NAND串的源极选择栅极的所有源极端11观。存储元件的阵列被划分成存储元件的大量块。如对于快闪EEPROM系统共同的,块是擦除的单位。即,每块包含一起被擦除的最小数量的存储元件。每块通常被划分成多个
13页。页是编程的最小单位。一页或多页数据通常被存储在一行存储元件中。例如,一行通常包含若干交织的页,或者其可以构成一页。一页的所有存储元件将一起被读或编程。此外,一页可以存储来自一个或多个扇区的用户数据。扇区是由主机使用作为用户数据的便捷单位的逻辑概念;其通常不包含开销数据,该开销数据被限制给控制器。开销数据可以包括已经从扇区的用户数据计算的纠错码(EEC)。控制器的一部分(以下描述)在数据被编程到阵列中时计算ECC,并且还在从阵列读出数据时对其进行检查。或者,ECC和/或其他开销数据被存储在与它们所属于的用户数据不同的页中或者甚至不同的块中。一个扇区的用户数据通常是512字节,对应于磁盘中的扇区的大小。开销数据通常是另外的16-20字节。大量页形成块,从例如8页达32、64、1观或更多页任意。在一些实施例中,一行NAND串构成一块。在一个实施例中,通过将ρ阱升高到擦除电压(例如14-22V)达足够的时间段并将所选块的字线接地同时源极线和位线浮置来擦除存储器存储元件。由于电容耦合,未选的字线、位线、选择线和c源极也被升高到擦除电压的很大比例。因此强电场被施加到所选存储元件的隧道氧化物层,并且随着通常通过i^owler-Nordheim隧穿(tunneling)机制,浮置栅极的电子被发射到衬底侧,所选存储元件的数据被擦除。随着电子从浮置栅极转移到 P阱区,所选存储元件的阈值电压降低。可以对整个存储器阵列、分离的块或者另一单位的存储元件进行擦除。图12是使用单个行/列解码器和读/写电路的非易失性存储器系统的方框图。 该示了根据本发明的一个实施例的具有用于并行读取和编程一页存储元件的读/写电路的存储器器件1296。存储器器件1296可以包括一个或多个存储器晶片1298。存储器晶片1298包括存储元件的二维阵列1100、控制电路1210以及读/写电路1265。在某些实施例中,存储元件的阵列可以是三维的。存储器阵列1100可由字线经由行解码器1130以及由位线经由列解码器1160寻址。读/写电路1165包括多个感测块1200,并允许并行读取或编程一页存储元件。通常,控制器1250被包括在与一个或多个存储器晶片1298相同的存储器器件1296中(例如可移除存储卡)。命令和数据经由线路1120在主机和控制器 1250之间以及经由线路1218在控制器和一个或多个存储器晶片1298之间传送。控制电路1210与读/写电路1265协作以对存储器阵列1100进行存储器操作。控制电路1210包括状态机1212、芯片上地址解码器1214和功率控制模块1216。状态机1212 提供对存储器操作的芯片级控制,包括控制预充电。芯片上地址解码器1214提供由主机或存储器控制器使用的地址与由解码器1230和1260使用的硬件地址之间的地址接口。功率控制模块1216控制在存储器操作期间提供给字线和位线的功率和电压。在某些实施方式中,图12的组件的一些可以被组合。在各种设计中,不同于存储元件阵列1100的一个或多个组件(单独或组合地)可以被认为是管理电路。例如,一个或多个管理电路可以包括控制电路1210、状态机1212、解码器1214/U60、功率控制器1216、 感测模块1200、读/写电路1沈5、控制器1250等中的任意一个或其组合。如上所述,例如,可以在存储器芯片外部的或芯片上的控制器存储器中实现适当的数据结构和控制逻辑。在另一方法中,使用双行/列解码器和读/写电路。在阵列的相对两侧以对称的方式实现各种外围电路对存储器阵列1100的存取,使得每侧的存取线和电路的密度降低一半。因此,行解码器被分成两个行解码器,并且列解码器被分成两个列解码器。类似地, 读/写电路被分成连接到来自阵列1100底部的位线的读/写电路和连接到来自阵列1100 顶部的位线的读/写电路。以此方式,读/写模块的密度基本降低一半。图13是绘出感测块的一个实施例的方框图。单个感测块1200被分区为称为感测模块1280的核心部分以及公共部分1四0。在一个实施例中,将存在对于每个位线的单独的感测模块1280和对于多个感测模块1280的集合的一个公共部分1290。在一个例子中,感测块将包括一个公共部分1290和八个感测模块1280。一组中的每个感测模块将经由数据总线1272与相关的公共部分通信。感测模块1280包括确定所连接的位线中的导电电流是在预定阈值水平以上还是以下的感测电路1270。感测模块1280还包括用于设置在所连接的位线上的电压条件的位线锁存器1观2。例如,锁存在位线锁存器1282中的预定状态将导致所连接的位线被拉到指定编程禁止的状态(例如1. 5-3V)。公共部分1290包括处理器1292、数据锁存器集1294和耦接在数据锁存器集1294 与数据总线1220之间的I/O接口 1296。处理器1292执行计算。例如,其功能之一是确定在被感测的存储元件中存储的数据,并将确定的数据存储在数据锁存器集中。数据锁存器集1294用于存储由处理器1292在读操作期间确定的数据位。其还用于存储在编程操作期间从数据总线1220输入的数据位。输入的数据位表示要被编程到存储器中的写数据。I/O 接口 1296提供在数据锁存器1294和数据总线1220之间的接口。在读取或感测期间,系统的操作在状态机1212的控制下,该状态机1212控制对被寻址的存储元件的不同控制栅极电压的供应。随着其步经与存储器所支持的各个存储器状态对应的各个预定控制栅极电压,感测模块1280可以行进在这些电压之一,并且将从感测模块1280经由总线1272提供输出给处理器1292。此时,处理器1292通过考虑感测模块的 (一个或多个)行进事件以及经由输入线1293来自状态机的关于所施加的控制栅极电压的信息来确定得到的存储器状态。然后其计算对于该存储器状态的二进制编码,并将得到的数据位存储到数据锁存器1294中。在核心部分的另一实施例中,位线锁存器1282起着双重作用,用作锁存感测模块1280的输出的锁存器以及还用作如上所述的位线锁存器两者。预期一些实施方式将包括多个处理器1292。在一个实施例中,每个处理器1292将包括输出线(未示出)使得每个输出线在一起被布线为或(wired-OR)。在一些实施例中, 输出线在被连接到被布线为或的线之前被反相。该配置使能够在编程验证处理期间迅速确定何时已完成编程处理,因为接收该布线为或的状态机可以确定正被编程的所有位何时已达到期望的电平。例如,当每位达到其期望的电平时,对于该位的逻辑0将被发送到被布线为或的线(或者数据1被反相)。当所有位输出数据0 (或者数据1被反相)时,则状态机知道要终止编程处理。因为每个处理器与八个感测模块通信,因此状态机需要读被布线为或的线八次,或者逻辑被添加到处理器1292以累积相关位线的结果,使得状态机仅需读被布线为或的线一次。类似地,通过正确地选择逻辑电平,全局状态机可以检测第一位何时改变其状态,并据此改变算法。在编程或验证期间,要被编程的数据从数据总线1220存储在数据锁存器集1294 中。在状态机的控制下,编程操作包括施加到被寻址的存储元件的控制栅极的一系列编程电压脉冲。每个编程脉冲后跟随读回(验证)以确定存储元件是否已被编程到期望的存储器状态。处理器1292相对于期望的存储器状态监视读回的存储器状态。当两者一致时,处理器1292设置位线锁存器1282以便致使位线被拉到指定编程禁止的状态。这禁止耦接到位线的存储元件被进一步编程,即使编程脉冲出现在其控制栅极上。在其他实施例中,在验证处理期间,处理器首先加载位线锁存器1282,并且感测电路将其设置到禁止值。数据锁存器堆叠1294包含与感测模块对应的数据锁存器的堆叠。在一个实施例中,每个感测模块1280存在三个数据锁存器。在一些实施方式中(但不是要求的),数据锁存器被实现为移位寄存器,使得存储在其中的并行数据被转换成用于数据总线1220的串行数据,并反之亦然。在优选实施例中,与m个存储元件的读/写块对应的所有数据锁存器可以被链接在一起以形成块移位寄存器,使得一块数据可以通过串行转移而被输入或输出。具体地,读/写模块的堆被适配为使得其数据锁存器集的每个将把数据依次移入或移出数据总线,就像它们是对于整个读/写块的移位寄存器的部分一样。图14图示了对于全位线存储器架构和对于奇偶存储器架构将存储器阵列组织成块的例子。描述存储器阵列1100的示例结构。作为一个例子,描述被分区成IOM个块的 NAND快闪EEPR0M。存储在每个块中的数据可以同时被擦除。在一个实施例中,块是同时
被擦除的存储元件的最小单位。在此例子中,在每个块中,存在与位线BLO、BLl........
BL8511对应的8512个列。在称为全位线(ABL)架构(架构1410)的一个实施例中,在读和编程操作期间,一块的所有位线可以同时被选择。沿着公共字线并连接到任意位线的存储元件可以同时被编程。在所提供的例子中,四个存储元件串联连接以形成NAND串。尽管示出四个存储元件被包括在每个NAND串中,但是可以使用多于或少于四个(例如16、32、64或另一数量)。 NAND串的一端经由漏极选择栅极(连接到选择栅极漏极线S⑶)连接到相应位线,另一端经由源极选择栅极(连接到选择栅极源极线SGQ连接到c源极。在称为奇偶架构(架构1400)的另一实施例中,位线被划分成偶数位线(BLe)和奇数位线(BLo)。在奇/偶位线架构中,沿着公共字线并连接到奇数位线的存储元件在一个时间被编程,而沿着公共字线并连接到偶数位线的存储元件在另一时间被编程。在此例子中,在每个块中,存在被划分成奇数列和偶数列的8512列。在此例子中,示出四个存储元件串联连接以形成NAND串。在读和编程操作的一个配置期间,同时选择4256个存储元件。所选的存储元件具有相同的字线和相同种类的位线(例如偶数或奇数)。因此,形成一个逻辑页的532字节的数据可以同时被读或编程,并且存储器的一块可以存储至少八个逻辑页(四个字线,每个字线具有奇数和偶数页)。对于多状态存储元件,当每个存储元件存储两位数据时,其中这两位的每位被存储在不同的页中,一个块存储十六个逻辑页。也可以使用其他大小的块和页。对于ABL或奇偶架构,可以通过将ρ阱升高到擦除电压(例如20V)并将所选块的字线接地来擦除存储元件。源极和位线是浮置的。可以对整个存储器阵列、分离的块或者作为存储器器件的一部分的另一单位的存储元件进行擦除。电子从存储元件的浮置栅极转移到P阱区,使得存储元件的Vth变为负。在读和验证操作中,选择栅极(S⑶和SGS)连接到在2. 5-4. 5V的范围内的电压, 并且未选字线(例如WiKffLl和WL3,这时WL2是所选字线)升高到读通过电压Vkead (通常是在4. 5到6V范围内的电压),以使晶体管工作为选通栅极。所选字线WL2连接到如下电压,对于每个读和验证操作规定了其电平,以便确定所关注的存储元件的Vth是在这样的电平以上还是以下。例如,在对于两级存储元件的读操作中,所选字线WL2可以接地,使得检测Vth是否高于0V。在对于两级存储元件的验证操作中,所选字线WL2连接到例如0. 8V,使得验证Vth是否已经达到至少0.8V。源极和ρ阱处于0V。被假设为偶数位线(BLe)的所选位线被预充电到例如0. 7V的电平。如果Vth高于字线上的读或验证电平,则与感兴趣的存储元件相关的位线(BLe)的电势电平由于不导电的存储元件而维持在高电平。另一方面, 如果Vth低于读或验证电平,则所关注的位线(BLe)的电势电平降低到例如小于0.5V的低电平,因为导电的存储元件对该位线放电。由此可以通过连接到位线的电压比较器感测放大器检测存储元件的状态。图15是描述用于编程非易失性存储器的一个实施例的流程图。如所述,在已经完成擦除序列之后,可以发生向在已擦除状态以上的较高数据状态的编程。在一个实现方式中,存储元件在编程之前(按块或其他单位)被擦除。在步骤1500,“数据加载”命令由控制器发出并由控制电路1210(见图1 接收。在步骤1505,指定页地址的地址数据从控制器或主机输入到解码器1214。在步骤1510,用于被寻址的页的一页编程数据被输入到数据缓冲器用于编程。该数据被锁存在适当的数据锁存器集中。在步骤1515,由控制器向状态机1212发出“编程”命令。由“编程”命令触发,使用施加到适当的所选字线的步进编程脉冲,在步骤1510中锁存的数据将被编程到由状态机1212控制的所选存储元件中。在步骤1520,编程电压VreM 被初始化为开始脉冲(例如12V或其他值),并且由状态机1212保持的编程计数器(PC)被初始化在0。在步骤1530,第一 VreM脉冲被施加到所选字线以开始编程与所选字线相关联的存储元件。如果逻辑“0”被存储在具体的数据锁存器中,指示相应的存储元件应该被编程,则相应的位线接地。另一方面,如果逻辑“1”被存储在具体的锁存器中,指示相应的存储元件维持在其当前数据状态,则相应的位线连接到1. 5-3V以禁止编程。在步骤1533,验证所选存储元件的状态。如果检测到所选存储元件的目标阈值电压已经达到适当的电平,则存储在相应的数据锁存器中的数据改变为逻辑“ 1 ”。如果检测到阈值电压还未达到适当的电平,则存储在相应的数据锁存器中的数据不改变。以此方式, 具有在其相应的数据锁存器中存储的逻辑“1”的位线不需要被编程。当所有数据锁存器都存储逻辑“1”时,状态机(经由上述布线为或类型的机制)得知所选存储元件已经被编程。 在步骤K40,检查是否所有的数据锁存器都存储逻辑“1”。如果所有的数据锁存器都存储逻辑“1”,则编程处理完成并成功,因为所有所选存储元件都被编程和验证过。在步骤1545 中报告“通过”状态。在一些实施例中,即使不是所有所选存储元件都被验证为被编程,也认为编程处理完成并成功。在这样的情况下,由于不充分的被编程的存储元件,在随后的读操作中可能发生错误。但是,这些错误可以通过ECC校正。如果在步骤1540中确定不是所有数据锁存器都存储逻辑“1”,则编程处理继续。在一些实施例中,即使不是所有数据锁存器都存储逻辑“1”,编程处理也停止。在步骤 1550,针对编程限制值PCmax检查编程计数器PC。编程限制值的一个例子是二十;也可以使用其他数字。如果编程计数器PC不小于PCmax,则编程处理已经失败,并在步骤1555中报告“失败”状态。如果编程计数器PC小于PCmax,则在步骤1560中,VreM将被增加步长大小,并且编程计数器PC递增。然后处理循环回到步骤1530以施加下一 VreM脉冲。图16a绘出在编程期间施加到非易失性存储元件的控制栅极的示例脉冲串,其中同时对奇数和偶数位线进行验证操作。脉冲串1600包括施加到被选择用于编程的字线的
一系列编程脉冲1602、1604、1606、1608、1610.......在一个实施例中,编程脉冲具有电
压VreM,其开始于12V并且对于每个相继的编程脉冲增加增量例如0. 5V,直到达到最大例如 20-25V。在编程脉冲之间是验证脉冲,例如三个验证脉冲。在一些实施例中,可以存在对于数据正被编程到的例如状态A、B和C的每个状态的验证脉冲。在其他实施例中,可以存在更多或更少的验证脉冲。每个集合中的验证脉冲可以具有例如VVEKIFY_A、VVEKIFY_B和VVEKIFY_C的幅度(图幻。示例的验证脉冲集1603被施加到奇数和偶数位线两者的存储元件。图16b绘出在编程期间施加到非易失性存储元件的控制栅极的示例脉冲串,其中分别对奇数和偶数位线进行验证操作。脉冲串1640包括施加到被选择用于编程的字线的
一系列编程脉冲1642、1644、1646、1648、1650.......示例的验证脉冲集1643被施加到奇
数位线的存储元件,并且示例的验证脉冲集1645被施加到偶数位线的存储元件。已经为了图示和描述的目的给出了本发明的以上详细描述。不意图穷尽或将本发明限制到公开的精确形式。根据以上教导,许多修改和变化是可能的。选择所述的实施例以便最佳地说明本发明的原理及其实际应用,由此使本领域技术人员能够在各种实施例中以及通过适用于意图的具体使用的各种修改最佳地利用本发明。旨在本发明的范围由附于此的权利要求定义。
18
权利要求
1.一种操作非易失性存储器的方法,包括将一个或多个擦除脉冲(Verasel-VeraseS)施加到非易失性存储元件集合(1100),直到满足第一验证条件(Verase verify);确定施加的擦除脉冲的计数(Nerase);以及将数量为Nspgm-skip的一个或多个软编程脉冲(Vspgml-Vspgm5)施加到所述非易失性存储元件集合而不进行验证操作,随后将一个或多个另外的软编程脉冲 (Vspgm6-Vspgml5)施加到所述非易失性存储元件集合,直到满足第二验证条件(Vspgm verify),所述Nspgm-skip基于所述计数,所述一个或多个另外的软编程脉冲的每个软编程脉冲后跟有验证操作(710、712、714、810、812)。
2.如权利要求1的方法,还包括基于所述计数,将所述非易失性存储元件集合分类到多个可用组(G1、G2、G!3)中的一组中,其中Nspgm-skip基于所述非易失性存储元件集合被分类到的组。
3.如权利要求1或2所述的方法,还包括响应于满足第二验证条件,将所述集合中的至少一个非易失性存储元件编程到更高数据状态(A、B、C)。
4.如权利要求1到3的任意一项所述的方法,其中Nspgm-skip基于在多个擦除操作(1002)中施加的擦除脉冲的计数。
5.如权利要求1到4的任意一项所述的方法,其中所述非易失性存储元件集合具有当满足第一验证条件时至少部分地在已擦除状态 (442)以下的第一阈值电压分布G40)以及当满足第二验证条件时在已擦除状态处的第二更收紧的阈值电压分布042)。
6.如权利要求1到5的任意一项所述的方法,其中基于所述计数设置所述一个或多个软编程脉冲的第一软编程脉冲(Vspgml)的电平 (高、中等、低)。
7.如权利要求1到6的任意一项所述的方法,其中基于所述计数设置所述一个或多个软编程脉冲的步长大小(Δν 、AV2、AV3)。
8.如权利要求1到7的任意一项所述的方法,其中基于所述计数设置所述一个或多个软编程脉冲的脉冲宽度(tl、t2、t3)。
9.如权利要求1到8的任意一项所述的方法,其中基于所述计数设置对软编程脉冲数量的最大限制(Max allowed)。
10.如权利要求1到9的任意一项所述的方法,其中施加一个或多个擦除脉冲是第一擦除序列的擦除操作(700、713)的部分,并且施加数量为Nspgm-skip的一个或多个软编程脉冲是第一擦除序列的软编程操作(800、820、840、 860、880)的部分。
11.如权利要求10的方法,还包括进行其中基于所述计数跳过多个擦除验证脉冲的第二擦除序列的另外的擦除操作。
12.—种非易失性存储装置,包括非易失性存储元件集合(1100);用于将一个或多个擦除脉冲(Verasel-VeraseS)施加到所述非易失性存储元件集合直到满足第一验证条件(Verase verify)的部件(1210、1250);用于确定施加的擦除脉冲的计数(Nerase)的部件(1210,1250);以及用于将数量为Nspgm-skip的一个或多个软编程脉冲(Vspgml-Vspgm5)施加到所述非易失性存储元件集合而不进行验证操作、随后将一个或多个另外的软编程脉冲 (Vspgm6-Vspgml5)施加到所述非易失性存储元件集合直到满足第二验证条件(Vspgm verify)的部件(1210,1250),所述Nspgm-skip基于所述计数,所述一个或多个另外的软编程脉冲的每个软编程脉冲后跟有验证操作(710、712、714、810、812)。
13.如权利要求12所述的非易失性存储装置,还包括用于基于所述计数将所述非易失性存储元件集合分类到多个可用组中的一组(G1、G2、 G3)中的部件,其中Nspgm-skip基于所述非易失性存储元件集合被分类到的组。
14.如权利要求12或13所述的非易失性存储装置,其中施加一个或多个擦除脉冲是第一擦除序列的擦除操作(700、713)的部分,并且施加数量为Nspgm-skip的一个或多个软编程脉冲是第一擦除序列的软编程操作(800、820、840、 860、880)的部分。
15.如权利要求12到14的任意一项所述的非易失性存储装置,其中基于所述计数设置所述一个或多个软编程脉冲的至少一个的电平(高、中等、低)、步长大小(AVI、AV2、AV3)和脉冲宽度(tl、t2、t3)中的至少一个。
全文摘要
非易失性存储器件的擦除序列包括擦除操作(910),其后跟有软编程操作(930)。擦除操作例如经由衬底将一个或多个擦除脉冲施加到存储元件(920),直到满足擦除电平(924)。跟踪并记录擦除脉冲的数量(926),作为存储器件已经经历的编程-擦除周期的数量的指示。软编程操作(930)将软编程脉冲(944)施加到存储元件,直到满足软编程验证电平(950)。基于擦除脉冲的数量,通过对于作为擦除脉冲的数量的函数的具体数量的初始软编程脉冲跳过验证操作(946)来缩短软编程操作时间。此外,可以最优化软编程操作的特性,诸如开始幅度、步长大小或脉冲持续时间。
文档编号G11C11/56GK102292775SQ200980154949
公开日2011年12月21日 申请日期2009年9月23日 优先权日2008年12月11日
发明者G.J.赫明克, 李世俊 申请人:桑迪士克公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1