首页> 中国专利> 补偿在非易失性存储器中的读操作期间的耦合

补偿在非易失性存储器中的读操作期间的耦合

摘要

本发明涉及通过调整施加到相邻的位线的电压来补偿与在相邻的位线上的存储元件的电容性耦合。进行初始的粗糙读来确知位线-相邻的存储元件的数据状态,且在随后的精细读期间,基于确知的状态和施加到所选字线的当前控制栅极读电压来设置位线电压。当当前控制栅极读电压对应于比相邻的存储元件的确知的状态更低的数据状态时,使用补偿的位线电压。还可以通过向相邻的字线施加不同的读通过电压,并使用基于字线相邻的存储元件的数据状态而识别的具体读通过电压来获得读的数据来提供与相邻的字线上的存储元件的耦合的补偿。

著录项

  • 公开/公告号CN102177554A

    专利类型发明专利

  • 公开/公告日2011-09-07

    原文格式PDF

  • 申请/专利权人 桑迪士克公司;

    申请/专利号CN200980139823.X

  • 申请日2009-07-17

  • 分类号G11C11/56(20060101);G11C16/24(20060101);

  • 代理机构11105 北京市柳沈律师事务所;

  • 代理人黄小临

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-18 03:17:32

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-09-21

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G11C11/56 变更前: 变更后: 申请日:20090717

    专利权人的姓名或者名称、地址的变更

  • 2014-07-02

    授权

    授权

  • 2012-07-11

    专利申请权的转移 IPC(主分类):G11C11/56 变更前: 变更后: 登记生效日:20120625 申请日:20090717

    专利申请权、专利权的转移

  • 2011-11-16

    实质审查的生效 IPC(主分类):G11C11/56 申请日:20090717

    实质审查的生效

  • 2011-09-07

    公开

    公开

说明书

技术领域

本发明涉及非易失性存储器。

背景技术

半导体存储器已经变得越来越流行用于各种电子设备中。例如,在蜂窝电话、数码相机、个人数字助理、移动计算设备、非移动计算设备和其他设备中使用非易失性半导体存储器。电可擦除可编程只读存储器(EEPROM)和闪存位列最流行的非易失性半导体存储器之间。通过也是一种EEPROM的闪存,相比于传统的、全特征的EEPROM,可以在一步中擦除整个存储器阵列或该存储器的一部分的内容。

传统的EEPROM和闪存两者都使用在半导体衬底中的沟道区域上方且与其隔离的浮置栅极。浮置栅极位于源极和漏极区域之间。在浮置栅极上且与其绝缘地提供控制栅极。如此形成的晶体管的阈值电压(VTH)受浮置栅极上保留的电荷量控制。也就是说,在导通晶体管以允许其源极和漏极之间的导电之前必须被施加到控制栅极的最小量的电压受浮置栅极上的电荷的水平控制。

一些EEPROM和闪存器件具有用于擦除两个范围的电荷的浮置栅极,且因此,可以在两个状态、例如擦除状态和已编程状态之间编程/擦除该存储器元件。这种闪存器件有时被称为二进制闪存器件,因为每个存储器元件可以擦除一位数据。

通过识别不同的已允许/有效的已编程阈值电压范围来实现多状态(也称为多电平)闪存器件。每个不同的阈值范围对应于在存储器器件中编码的该组数据位的预定值。例如,每个存储器元件当该元件可以位于对应于四个不同的阈值范围的四个离散的电荷带之一中时可以擦除两位数据。

典型地,在编程操作器件被施加到控制栅极的编程电压VPGM被施加作为随时间量值增加的一系列脉冲。在一个可能的方法中,通过预定步长、例如0.2-0.4V来随着每个连续脉冲而增加脉冲的量值。可以向闪存元件的控制栅极施加VPGM。在编程脉冲之间的时间段中,进行验证操作。也就是说,在连续的编程脉冲之间读正被并行编程的一群元件的每个元件的编程电平,以确定其是否等于或大于该源极正被编程到的验证电平。对于多状态闪存元件的阵列,可以对元件的每个状态进行验证步骤,以确定该元件是否达到了其数据相关的验证电平。例如,能够在四个状态中存储数据的多状态存储器元件可能需要进行对三个比较点的验证操作。

另外,当编程EEPROM或闪存器件、例如在NAND串中的NAND闪存器件时,典型地,VPGM被施加到控制栅极,且位线接地,使得电子从单元或存储器元件、例如存储元件的沟道注入到浮置栅极中。当电子在浮置栅极中累积时,浮置栅极变为充负电,且存储器元件的阈值电压升高以便存储器元件被考虑为处于已编程状态中。关于这种编程的更多信息可以在2005年7月12日公告的美国专利6,859,397、题为“Source Side Self Boosting Technique For Non-Volatile Memory”和美国专利6,917,542、题为“Detecting Over Programmed Memory中找到,两者整体被引用附于此。”

进一步存在问题的一个问题是读准确性。读处理必须准确,以便可以以高保真度来读回数据。例如,将阈值电压范围放置为接近到一起的多级器件给误差留下了很少的空间。可能由包括导致电容性耦合的其他未选存储元件的已编程数据状态的许多变数导致在读所选存储元件时的不准确性。因此,需要改善读准确度的技术。

发明内容

本发明通过提供用于补偿电容性耦合来改善非易失性存储器中的读准确性来解决上述和其他问题。

在一个实施例中,操作非易失性存储器的方法包括读所选存储元件的至少一个位线-相邻的存储元件,来确知至少一个位线-相邻的存储元件的数据状态。该至少一个位线-相邻的存储元件和所选存储元件与各个位线相关联。该方法还包括读所选存储元件来确知所选存储元件的数据状态,包括一次一个地向所选存储元件施加不同控制栅极读电压,同时基于其所确知的数据状态和控制栅极读电压来设置至少一个位线-相邻的存储元件的各个位线的电压。

在另一实施例中,用于操作非易失性存储器的方法包括读存储元件来确知它们的数据状态,作为多步骤读操作的第一步的部分。这些存储元件与多个相邻的位线相关联。该方法还包括再次读存储元件来再次确知它们的数据状态、包括一个接一个地向存储元件施加不同的控制栅极读电压并基于第一步的所确知的数据状态且基于控制栅极读电压来设置在位线上的电压,作为多步骤读操作的第二步骤的部分。

在另一实施例中,用于操作非易失性存储器的方法包括读在所选字线的相邻字线上的存储元件来确知它们的数据状态,包括读与所选字线相关联的所选存储元件的字线相邻存储元件,并读所选存储元件的至少一个位线-相邻的存储元件。该方法还包括读所选存储元件来确知其数据状态,同时响应于对字线相邻的存储元件的读来补偿与字线相邻的存储元件相关联的耦合且同时响应于对至少一个位线-相邻的存储元件的读来补偿与至少一个位线-相邻的存储元件相关联的耦合。

在另一实施例中,非易失性存储器包括一组存储元件和至少一个控制电路。至少一个控制电路读所选存储元件的至少一个位线-相邻的存储元件来确知至少一个位线-相邻的存储元件的数据状态。该至少一个位线-相邻的存储元件和所选存储元件与各个位线相关联。该至少一个控制电路还包括读所选存储元件来确知所选存储元件的数据状态,包括一次一个地向所选存储元件施加不同控制栅极读电压,同时基于其所确知的数据状态和控制栅极读电压来设置至少一个位线-相邻的存储元件的各个位线的电压。还可以提供用于进行在此提供的方法的对应的方法、系统和计算机或处理器可读的存储器件。

附图说明

图1a是NAND串的顶视图。

图1b是图1a的NAND串的等效电路图。

图1c是NAND闪存元件的阵列的方框图。

图2a描述NAND串的剖面图。

图2b描述在编程期间的存储元件的字线方向上的剖面图。

图2c描述在完成编程之后在存储元件的字线方向上的剖面图,包括对一个存储元件的电容性耦合效应。

图2d描述在偶数位线编程-验证、奇数位线编程-验证编程技术中施加到非易失性存储元件的控制栅极的示例脉冲串。

图2e描述在所有位线编程、偶数位线验证、奇数位线验证编程技术中施加到非易失性存储元件的控制栅极的示例脉冲串。

图2f描述在所有位线编程、所有位线验证编程技术中施加到非易失性存储元件的控制栅极的示例脉冲串。

图3a描述了对应于图2d的编程技术。

图3b描述了对应于图2e的编程技术。

图3c描述了对应于图2f的编程技术。

图4a描述一个存储元件与相邻的存储元件的电容性耦合效应。

图4b描述位线电压调整来偏移电容性耦合。

图5a描述了有和没有耦合的阈值电压分布。

图5b描述具有耦合的阈值电压分布的细节。

图6a描述了在读操作期间施加到所选字线的控制栅极读电压。

图6b描述了当在对应于图2d的编程之后读偶数位线存储元件时施加到奇数位线存储元件的位线电压。

图6c描述了在对应于图2e的编程之后基于它们的状态且基于控制栅极读电压而施加到存储元件的位线电压。

图6d描述了在对应于图2f的编程之后基于它们的状态且基于控制栅极读电压而施加到存储元件的位线电压。

图6e描述基于它们的状态且基于控制栅极读电压而施加到存储元件的替换的位线电压。

图7a描述了对应于图6b的读技术。

图7b描述了对应于图6c的读技术。

图7c描述了对应于图6d的读技术。

图8a描述了在读操作期间施加到所选字线的控制栅极读电压。

图8b描述了在读操作期间施加到相邻字线的控制栅极读通过电压(control gate read pass voltages)。

图9a描述了包括对于对角地位线-相邻的存储元件的补偿的读操作。

图9b描述了包括对于字线相邻的存储元件的补偿的读操作。

图10a描述了包括对于对角地位线-相邻的存储元件和字线相邻的存储元件的补偿的读操作。

图10b描述了包括对于相同字线、位线-相邻的存储元件和字线相邻的存储元件的补偿的读操作。

图11是NAND闪存元件的阵列的方框图。

图12是使用单行/列解码器和读/写电路的非易失性存储器系统的方框图。

图13是描述感测块的一个实施例的方框图。

14图示了将存储器阵列组织为用于所有位线存储器架构的块或用于奇偶存储器架构的块的例子。

图15描述了阈值电压分布和一遍(one-pass)编程的示例组。

图16描述了阈值电压分布和两遍编程的示例组。

图17a-c示出了各种阈值电压分布并描述用于编程非易失性存储器的处理。

具体实施方式

本发明提供用于通过补偿电容性耦合来改善在非易失性存储器中的读准确性的方法。

适用于实现本发明的存储器系统的一个例子使用NAND闪存结构,其包括在两个选择门之间串联地连接多个晶体管。串联连接的晶体管和选择门被称为NAND串。图1a是示出一个NAND串的顶视图。图1b是其等效电路。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(其中,WL指示″字线″),控制栅极102CG连接到字线WL2,控制栅极104CG连接到字线WL1,且控制栅极106CG连接到字线WL0。在一个实施例中,晶体管100、102、104和106每个是存储元件,也称为存储器单元。在其他实施例中,存储元件可以包括多个晶体管或可以不同于所描述的。选择门120连接到选择线SGD。选择门122连接到选择线SGS。

图1c是三个NAND串的电路图。使用NAND结构的闪存系统的典型架构将包括若干NAND串。例如,在具有多得多的NAND串的存储器阵列中示出了三个NAND串320、340和360。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的控制栅极。WL1连接到存储元件325、345和365的控制栅极。WL0连接到存储元件326、346和366的控制栅极。如可以看出的,每个位线和各个NAND串包括该存储器元件的阵列或组的列。字线(WL3、WL2、WL1和WL0)包括该阵列或组的行。每个字线连接该行中的每个存储元件的控制栅极。或者,可以通过字线它们自己来提供控制栅极。例如,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串中的一个存储元件共享相同字线。例如,当编程图1c的存储元件324时,编程电压也将被施加到存储元件344和364的控制栅极。

图2a描述NAND串的剖面图。该视图被简化且不按比例。NAND串400包括在衬底490上形成的源极侧选择门406、漏极侧选择门424和八个存储元件408、410、412、414、416、418、420和422。这些组件可以在p阱区域492上形成,该p阱区域492本身在该衬底的n阱区域494中形成。又可以在p衬底496中形成n阱。供电线402和403可以分别与p阱区域492和n阱区域494通信。除了具有VBL的电势的位线426以外,还提供具有VSOURCE的电势的源极供应线404。向选择门406施加VSGS,且向选择门424施加VSGD。字线或非易失性存储元件的源极侧指的是面向NAND串的源极端、例如在源极供电线404处的侧,而字线或非易失性存储元件的漏极侧指的是面向NAND串的漏极端、例如在位线426处的侧。在一个方法中,编程在WL0处开始逐字线地继续。

图2b描述在编程期间的存储元件的字线方向上的剖面图。与相关联的浮置栅极FGn-1502、FGn 504和FGn+1506来描述沟道区域508、510和512。字线500在浮置栅极之上且在浮置栅极之间延伸。在典型的编程序列中,诸如结合图2d-2f描述的,施加到字线500的编程电压Vpgm逐个脉冲地增加,以便存储元件的阈值电压VTH增加直到存储元件被验证且被锁止。当在NAND块中的字线上编程数据时,例如,可以向不同的VTH状态编程不同的存储元件。例如,在所有位线编程中,在NAND串-n上(或与位线BLn连接)的存储元件可以被编程到A状态,而与BLn-1或BLn+1相关联的其位线-相邻的邻近存储元件可以被编程到更高的状态、诸如C状态。该例子假设存在四个状态:已擦除状态E和已编程状态A、B和C。在多级存储器器件中,使用2N状态,其中N≥2。例如,可以使用四个、八个或十六个状态。在这种情形下,当我们将在BLn上的存储元件编程验证到状态A并将其锁止时,其邻近者层处于相同状态(状态A)或当其被锁止时的较低状态(状态E)。但是,在进一步编程和完成将相邻存储元件编程到状态C之后,例如,在图2c中描述的,相邻存储元件的VTH已增加到较高C状态。在所选存储元件完成编程时和其随后被读时之间的邻近者的数据状态的该改变导致了与所选存储元件的电容性耦合。

图2c描述在完成编程之后在存储元件的字线方向上的剖面图,包括对一个存储元件的电容性耦合效应。在完成编程操作之后,当稍后读回存储元件504时,其VTH显得高于当其被初始地编程时。这是使得FGn的VTH显得更高的与相邻的浮置栅极FGn+1和FGn-1的电容性耦合的结果。这被称为位线与位线干扰或耦合效应。各种电容性耦合可能发生,包括在浮置栅极之间、沟道之间且在沟道和浮置栅极之间的耦合,如所述的。主要由于浮置栅极与浮置栅极的耦合,当正被读的所选存储元件的邻近者具有比所选存储元件更高的VTH较高数据状态)时,所选存储元件的VTH将显得相对较高。类似地,如果邻近者具有比所选存储元件较低的VTH(较低数据状态),所选存储元件的VTH将显得相对较低,且几乎与其被验证且当其完成编程时被锁止的VTH相同。在VTH的这些变化使得整个分布宽得多,且由于读失败的增加的概率而减小失败留白(包括过编程和数据保留留白)。

通常,当随机地编程数据时,存储元件可以具有数据状态中的任意组合。一些存储元件将具有高VTH邻近者,而一些将具有低VTH邻近者。例如,具有高VTH邻近者(诸如B状态或C状态邻近者)的A状态存储元件将显得VTH比具有低VTH的邻近者(诸如E状态或A状态邻近者)的A状态存储元件更高。可以部分地或完全地使用自此讨论的各种技术来补偿电容性耦合效应。这种技术可以有利地导致更紧密的阈值电压分布。

注意,耦合的效应根据编程技术而改变。为例示,以下讨论三个编程技术。其他编程技术还是可能的。第一可能的编程技术是包含分别编程和验证偶数和奇数的位线的存储元件的偶数-奇数编程。见图2d,图2d描述向非易失性存储元件的控制栅极施加的示例的脉冲串,且见图3a,图3a描述了对应的编程方法。脉冲串包括用于编程和验证偶数位线存储元件的第一部分520,然后是用于编程和验证奇数位线存储元件的第二部分540。第一部分520包括多个编程脉冲522、524、526、528、530...和在用于验证偶数位线存储元件的每对编程脉冲之间的一组验证脉冲(其一个例子是验证脉冲组523)。第二部分540包括多个编程脉冲542、544、546、548、550...和在用于验证奇数位线存储元件的每对编程脉冲之间的一组验证脉冲(其一个例子是验证脉冲组543)。

在一个实施例中,编程脉冲具有在12V开始且对每个相继的编程脉冲而增加了例如0.5V的增量的电压VPGM,直到到达例如20-25V的最大值。在一些实施例中,可能存在对于数据正被编程到的每个状态、例如状态A、B和C的确认脉冲。在其他实施例中,可能存在更多或更少的确认脉冲。在每组中的验证脉冲可以具有例如诸如图5a中描述的VV-A、VV-B和VV-C的幅度。

该编程方法可以包括编程和验证偶数位线的存储元件(例如,偶数存储元件)直到它们到达了意图的状态的第一阶段,然后,编程和验证奇数位线的存储元件(例如,奇数存储元件)直到它们到达了意图的状态的第二阶段。在这种情况下,偶数存储元件首先结束,之后,对奇数存储元件的编程开始。奇数存储元件不接收BL与BL的耦合,因为它们被最后编程。仅偶数存储元件(从奇数存储元件)接收BL与BL的耦合,因为导致在偶数存储元件被编程之后该耦合发生的附加的编程。因此,仅对于偶数存储元件需要补偿。具体地,当偶数存储元件结束编程时,奇数存储元件将都在E状态。当奇数存储元件随后被编程时,偶数存储元件由于奇数存储元件的增加的VTH而接收全耦合效应。

另外,由偶数存储元件经历的耦合量取决于位线-相邻的存储元件的状态,但通常与偶数存储元件的状态无关。换句话说,由给定的偶数存储元件经历的耦合量不取决于在给定的偶数存储元件的状态和相邻的存储元件的状态之间的差异。例如,在状态E、A、B或C中的偶数存储元件从在给定状态中的相邻奇数存储元件接收相同的干扰量。因此,所有偶数存储元件从在A状态中的相邻的奇数存储元件接收相同的耦合CA。类似地,所有偶数存储元件从在B状态中的相邻的奇数存储元件接收相同的耦合CB,且所有偶数存储元件从在B状态中的相邻的奇数存储元件接收相同的耦合CC,其中CC>CB>CA

参考图3a,该编程奇数利用在步骤600处的偶数位线的编程操作而开始。在步骤601中,向所选字线施加编程脉冲。在步骤602处,偶数位线存储元件被验证。在步骤603处,如果存在下一编程脉冲,该处理在步骤601处继续。如果不存在要施加的进一步的编程脉冲,偶数位线的编程操作在步骤604处结束。在步骤605处,该编程奇数利用对于奇数位线的编程操作而继续。在步骤606中,向所选字线施加编程脉冲。在步骤607处,奇数位线存储元件被验证。在步骤608处,如果存在下一编程脉冲,该处理在步骤606处继续。如果不存在要施加的进一步的编程脉冲,奇数位线的编程操作在步骤609处结束。

第二可能的编程技术包括向所有位线的存储元件一起施加编程脉冲,且分别对偶数和奇数位线的存储元件进行验证操作。这是所有位线编程、偶数验证、奇数验证方法。见图2e,图2e描述了在所有BL编程、偶数验证、奇数验证方法中向非易失性存储元件的控制栅极施加的示例脉冲串,且见图3b,图3b描述对应的编程方法。

脉冲串560包括多个编程脉冲562、564、566、568、570...和在每对编程脉冲之间的两组验证脉冲。一组验证脉冲(其一个例子是验证脉冲组561)用于验证偶数BL存储元件,且另一组验证脉冲(其一个例子是验证脉冲组563)用于验证奇数BL存储元件。在该情况下,同时向所有位线施加编程脉冲,但分别对偶数和奇数位线施加验证脉冲。例如,在施加了一个编程脉冲之后,向偶数位线施加一组验证电压,然后向奇数位线施加一组验证电压,然后该处理通过下一编程脉冲而重复。参考图3b,在步骤610处,该编程奇数通过对于所有位线的编程操作而开始。在步骤611处,向所选字线施加编程脉冲。在步骤612处,偶数位线存储元件被验证。在步骤613处,奇数位线存储元件被验证。在步骤614处,如果存在下一编程脉冲,该处理在步骤611处继续。如果不存在要施加的进一步的编程脉冲,编程操作在步骤615处结束。

第三个可能的编程奇数包括所有位线编程和验证,其中,在所选字线上的所有位线的存储元件被一起编程和验证。这是所有位线编程、所有位线验证方法。见图2f,图2f描述在该奇数中向非易失性存储元件的控制栅极施加的示例的脉冲串,且见图3c,图3c描述了对应的编程方法。脉冲串580包括多个编程脉冲582、584、586、588、590...和在每对编程脉冲之间的一组验证脉冲(其一个例子是验证脉冲组583)。使用每组验证脉冲来用于验证所有BL存储元件。在此,偶数和奇数位线两者的存储元件一起结束了编程。在该情况下,在给定的状态中的存储元件经历了仅来自处于较高状态中的位线-相邻的存储元件的BL与BL的干扰。例如,A状态存储元件经历来自相邻的存储元件的干扰,如果这些相邻的存储元件处于B和/或C状态但不处于E和/或A状态中。B状态存储元件经历来自相邻的存储元件的干扰,如果这些相邻的存储元件处于C状态但不处于E、A和/或B状态中。C状态存储元件不经历来自相邻的存储元件的干扰。

参考图3c,该编程奇数通过对于在步骤616处的所有位线的编程操作而开始。在步骤617处,向所选字线施加编程脉冲。在步骤618处,验证所有存储元件。在步骤619处,如果存在下一编程脉冲,该处理在步骤617处继续。如果不存在要施加的进一步的编程脉冲,编程操作在步骤620处结束。

除了不同的编程技术以外,可以使用不同的对应的读技术,包括其中同时读所有位线的所有位线读和其中在奇数位线之前读偶数位线的奇偶读。以下进一步详细描述具体的读和补偿技术。

图4a描述一个存储元件与相邻的存储元件的电容性耦合效应。虽然图2c描述了与在相同字线上的相邻的存储元件的耦合,但是也可能由于在相邻的字线上的存储元件而发生耦合。例如,描述字线WLn-1、WLn和WLn+1作为在存储元件的块或其他组中的所有字线的子集,且描述位线BLi-1、BLi和BLi+1作为在该组中的所有位线的子集。通常,耦合是在存储元件之间的距离的函数,以便主要影响是由于相邻的存储元件。例如,考虑到由存储元件625经历耦合。在WLn上的存储元件624和626是与存储元件625相邻的位线,因为它们位于与所选存储元件625相邻的位线上。存储元件621和623还是在相邻字线WLn+1上对角地与存储元件625相邻的位线。存储元件622是在WLn+1上与存储元件625相邻的字线。由存储元件625由于存储元件621、622、623、624和626而经历的耦合分别是C1、C2、C3、C4和C5。

在该例子中,字线编程顺序可以是:WLn-1、WLn和WLn+1。通常,耦合主要是由于在相同字线或在WLn之后编程的相邻的字线WLn+1上的存储元件,而非来自在WLn之前编程的WLn-1上的存储元件。这是成立的,因为在WLn-1上的存储元件在当在WLn上的存储元件完成了编程时和当读它们时之间具有相同的数据状态。因此,不描述与在WLn-1上的存储元件627、628和629的电容性耦合。相反,在WLn或WLn+1上的存储元件中的一些将在当在WLn上的存储元件完成了编程时和当读它们时之间具有不同的数据状态。但是,存储元件可能在一些情况下经历与Wn-1的耦合。

补偿耦合的各种方法包括使用多遍以便逐渐升高存储元件的VTH的编程技术和其中在较低状态的编程之前完成了较高状态的编程的编程方案。通过这些方法,通常仅在已编程状态上减小或补偿BL-BL耦合。因此,不补偿已擦除状态(E状态)。补偿在E状态上的BL-BL干扰将在其中E状态更宽且占据VTH窗的更大部分的未来生成设备上更重要。在此提供的技术至少部分地补偿在E状态以及其他状态上的BL-BL干扰。另外,这些技术适用于不同的存储器器件类型、包括诸如NAND和NOR的非易失性器件、以及不同的存储元件维度(dimension)。整个性能影响与先前的方法相比可能更小。

图4b描述位线电压调整来偏移电容性耦合。一种方法包括与耦合量(C)成比例地调整位线电压(VBL),以便VBL对于具有比正被读的所选存储元件相对更高的VTH的相邻存储元件更高。更高的VBL导致对于耦合于所选存储元件的浮置栅极和沟道、例如FGn的相邻的存储元件的更高的沟道电势,使得其VTH显得更低,因此补偿还使得VTH显得更高的耦合干扰。VBL被表述为耦合量值的函数。可以在读操作期间施加调整的VBL,如以下将详细描述的。

图5a描述了有和没有耦合的阈值电压分布。如所述,耦合效应使得给定的存储元件的显式(apparent)VTH增加。在一组存储元件之上,诸如通过图2f的所有位线编程技术,每个状态的集中(collective)的VTH分布也将增加,如由没有耦合、例如就在编程之后的状态E、A、B和C的VTH分布640、644、648和652分别描述的,和由有耦合的状态E、A和B的VTH分布642、646和650分别描述的。在该例子中,最高状态、状态C将经历少量耦合或没有耦合。另外,每个VTH分布包括基于耦合的成分,如图4b所示。在读操作期间使用状态A、B和C的控制栅极读电压VCGR-A、VCGR-B和VCGR-C来确知一个或多个所选存储元件的数据状态。在编程-验证操作的验证部分期间分别使用状态A、B和C的控制栅极验证电压VV-A、VV-B和VV-C,以验证是否已经将一个或多个所选存储元件编程到意图的状态。

图5b描述具有耦合的阈值电压分布的细节。对于状态E中的存储元件,实质上将存在与也在如由分布成分656指示的状态E中的相邻的存储元件的少量耦合或没有耦合。但是,在状态E中的存储元件将通过在如分别由分布成分658、660和662所指示的状态A、状态B和状态C中的相邻的存储元件使得其VTH耦合得更高。因此,整个E状态分布642由分布成分656、658、660和662构成。对于状态A中的存储元件,实质上将存在与在如由分布成分664指示的状态E或A中的相邻的存储元件的少量耦合或没有耦合。但是,在状态A中的存储元件将通过在如分别由分布成分666和668所指示的状态B和状态C中的相邻的存储元件使得其VTH耦合得更高。对于状态B中的存储元件,实质上将存在与在如由分布成分670指示的状态E、A或B中的相邻的存储元件的少量耦合或没有耦合。但是,在状态B中的存储元件将通过在如由分布成分672所指示的状态C中的相邻的存储元件使得其VTH耦合得更高。对于状态C中的存储元件,实质上将存在与在如由分布成分652指示的状态E、A、B或C中的相邻的存储元件的少量耦合或没有耦合。

图6a描述了在读取操作期间施加到所选字线的控制栅极读取电压。在读操作期间,分别具有状态A、B和C的连续的幅度VCGR-A、VCGR-B和VCGR-C的控制栅极电压波形被施加到正在时间段t0-t1、t1-t2和t2-t3中分别被读的一个或多个所选存储元件的字线。也在图5a中描述VCGR-A、VCGR-B和VCGR-C

该例子应用于其中存在四个可用的数据状态的情况。通常,当存在2N个可能的数据状态时,控制栅极电压波形将具有2N-1个幅度。为了进一步图示示例的补偿技术,分别考虑E、A、B和C状态为状态0、1、2和3。也考虑VCGR-A、VCGR-B和VCGR-C分别表示读电平1、2和3。另外,四个不同的位线电压VBLO<VBL1<VBL2<VBL3是可用的。如果控制栅极电压处于第m个读电平(m=1、2或3)且相邻的存储元件处于第n个(n=0、1、2或3)状态,则,如果m>n,使用在相邻的存储元件的位线上的VBLO来偏移其耦合。如果m=<n,使用在相邻的存储元件的位线上的VBL+1-m来偏移其耦合。表1提供进一步的细节。

表1

注意,给定的存储元件将通常具有在相同字线上的两个位线-相邻的邻近存储元件,在该情况下,当给定的存储元件正被读时,以上位线电压可以被施加到这些邻近者的各个位线。例如,当在BLi+1上的相邻存储元件已经编程到B状态(n=2)且BLi-1上的其他相邻存储元件已经编程到C状态(n=3)时,则我们可以在t0-t1的时间段期间在BLi+1上设置VBL2且在BLi-1上设置VBL3,在时间段t1-t2期间在BLi+1上设置VBL1并在BLi-1上设置VBL2,且在时间段t2-t3期间在BLi+1上设置VBLO且在BLi-1上设置VBL1。类似地可以提供对相邻的存储元件的状态的其他组合补偿位线电压。另外,位线的补偿随着控制栅极读电压改变而改变,以至于补偿一直处于最佳电平。

还可能补偿在一个位线、例如BLi-1或BLi+1上的两个存储元件的耦合。在该情况下,向位线施加补偿与这两个存储元件的总耦合量的电压。还能够另外对于字线相邻的存储元件的耦合补偿,如以下进一步讨论的,以便为高达五的存储元件提供补偿。例如,当读图4a中的存储元件625时,可以对五个存储元件621、622、623、624和626提供补偿。在该情况下,补偿位线与位线和字线与字线耦合效应两者。

因此,如果不正被读的存储元件处于比与当前读电平相关联的状态更高的状态中,则对于该存储元件使用更高的VBL电压。该更高的VBL升压相关联的未选存储元件的浮置栅极和沟道的电势。该电势耦合于所选存储元件的沟道和浮置栅极,且因此使得其VTH显得更低,因为耦合的电势有助于导通(使导电)所选存储元件。因此,具有在更高的VTH状态处的相邻存储元件的所选存储元件将显得在VTH中更低。VTH中的这种向低漂移补偿所选存储元件由于BL-BL干扰而接收的VTH中的向高漂移。对于较低VTH邻近者,使用较低的VBL,这意味着在所选存储元件的VTH中少得多或没有向下漂移。因此,整个总VTH分布将变得更紧。

图6b描述了当在对应于图2d的编程之后读取偶数位线存储元件时施加到奇数位线存储元件的位线电压。时间轴与图6a中的相同。它们y轴描述被施加到未选存储元件的VBL。在奇偶读操作期间,与偶数位线相关联的存储元件分离地读与奇数位线相关联的存储元件因此,我们相对自由地调整所选存储元件的位线电压。例如,当正读偶数位线存储元件时,我们相对自由地调整奇数位线存储元件的位线电压。如先前所述的,奇数存储元件通常在偶数存储元件之后编程,且因此不经历耦合。因此,它们不需要在读操作期间补偿。因此,在一个方法中,当读奇数存储元件时,固定位线电压被施加到奇数和偶数存储元件,且当读偶数存储元件时,如图6b所示的可变位线电压被施加到奇数存储元件。另外,首先读奇数存储元件,以便知道它们的状态,且当随后读偶数存储元件时可以向奇数存储元件施加适当的补偿。可以用适当的智慧来配置存储器器件的控制来进行在此讨论的技术。

波形680、682、684和686描述对于所有控制栅极读电压向未选存储元件施加的电压。具体地,对于偶数存储元件,如果先前已经确定位线-相邻的存储元件分别处于E、A、B或C状态,位线-相邻的存储元件的位线接收VBL0、VBL1、VBL2或VBL3。例如,未选位线-相邻的存储元件可以位于所选字线WLn上且/或对角地在相邻的字线Wn+1上。

图7a描述了对应于图6b的读技术。在步骤700处开始读操作。在步骤701处,没有补偿地读WLn的奇数存储元件,且存储这些结果。例如,在一个可能的方法中,可以在与每个位线相关联的感测放大器的锁存器中存储这些结果。还可以从锁存器向存储器器件的控制器存储器传输这些结果。注意,奇数位线不需要耦合补偿,因为它们在偶数位线之后被最后编程。在步骤702处,有补偿地读WLn的偶数存储元件,其可以包括基于奇数位线存储元件的先前预定的状态向奇数位线施加适当的位线电压。在步骤703处结束读操作。

图6c描述了在对应于图2e的编程之后基于它们的状态且基于控制栅极读取电压而施加到存储元件的位线电压。在该情况下,偶数和奇数存储元件已经经历了耦合,且因此当读时被补偿。分别读偶数和奇数存储元件,通常偶数,然后奇数。与控制栅极读电压相对应的,波形690、692、694和696描述被施加到未选存储元件、例如当读偶数时施加到奇数存储元件、和当读奇数时施加到偶数存储元件的位线电压。

波形690指示当向所选字线分别施加VCGR-A、VCGR-B和VCGR-C来读所选存储元件(例如偶数)时,向未选存储元件(例如,奇数)的位线施加VBL3、VBL2和VBL1。例如,未选存储元件可以在所选字线和/或相邻字线(对角地)上。对通过所选字线上的位线-相邻的存储元件相对于在相邻的字线上对角地位线-相邻的存储元件的耦合的补偿在原则上操作相同,除了提供补偿所需的位线电压的量值通常对相邻的字线的情况较小,因为到所选存储元件的距离通常大于从相同字线上的相邻的存储元件到所选存储元件的距离。例如,在存储元件625和623之间的距离大于在存储元件625和626之间的距离(图4a)。

波形692指示当分别向所选字线施加VCGR-A、VCGR-B和VCGR-C时向每个未选存储元件的位线施加VBL2、VBL1和VBL0。波形694指示当分别向所选字线施加VCGR-A、VCGR-B和VCGR-C时向每个未选存储元件的位线施加VBL1、VBL0和VBL0。波形696指示当分别向所选字线施加VCGR-A、VCGR-B和VCGR-C时向每个未选存储元件的位线施加VBL0。注意,可以对具体应用最佳化VBL0<VBL1<VBL2<VBL3的电平。另外,在三个电压之间的空间可以以相等或不等的增量。

为了在读一个或多个所选(例如偶数)存储元件时知道未选(例如奇数)存储元件的状态,可以进行初始的″粗略″读或预读操作。例如,可以对偶数和奇数存储元件同时进行粗略的读。粗略的读不提供对耦合的补偿,但用于确知具有某种减小、但足够、准确的每个存储元件的状态。在粗略的读期间,在一个可能的方法中,可以向所有位线施加固定的VBL。基于通过粗略的读确知的数据状态,将在最终确定所选存储元件的数据状态的随后的″精细″读中使用不同的位线电压。精细读数据是相应于所接收的读命令而被输出到例如主机设备,同时粗略读数据被内部使用用于存储器设备作为用于进行精细读的临时数据。

对于奇-偶读操作,对偶数位线的所选存储元件进行精细读,然后对奇数位线的所选存储元件进行精细读。另一选择是读奇数存储元件,然后偶数。在对偶数位线的所选存储元件进行精细读期间,在一个方法中,我们设置其位线电压为公共电平、例如0.5V。例如,这可以是在验证操作期间使用的VBL。我们还根据从粗糙读获得的其相关联的存储元件的数据状态且根据当前控制栅极读电压来设置奇数位线的位线电压。从奇数位线的粗糙读获得的信息用于补偿偶数位线的精细读。

例如,在偶数位线的精细读中,参考图6c,当在t0和t1之间施加VCGR-A时,在粗糙读中向其相关联的存储元件被确定为状态E的奇数位线施加VBL0(波形696),在粗糙读中向其相关联的存储元件被确定为状态A的奇数位线施加VBL1(波形694)。向其相关联的存储元件在粗糙读中被确定为状态B的奇数位线施加VBL2(波形692)。向其相关联的存储元件在粗糙读中被确定为状态C的奇数位线施加VBL3(波形690)。

当在t1和t2之间施加VCGR-B时,向其相关联的存储元件在粗糙读中被确定为状态E或A的奇数位线施加VBL0(波形694和696),向其相关联的存储元件在粗糙读中被确定为状态B的奇数位线施加VBL1(波形692)。向其相关联的存储元件在粗糙读中被确定为状态C的奇数位线施加VBL2(波形690)。描述波形694和696为在t1和t2之间的偏移量,仅为了清楚。描述波形692、694和696为在t2和t3之间的偏移量,仅为了清楚。

当在t2和t3之间施加VCGR-C时,向其相关联的存储元件在粗糙读中被确定为状态E、A或B的奇数位线施加VBL0(波形692、694和696),向其相关联的存储元件在粗糙读中被确定为状态C的奇数位线施加VBL1(波形690)。

随后,在一个方法中,在对奇数位线的所选存储元件进行精细读期间,我们读奇数位线的所选存储元件,而将其位线电压设置为公共电平、例如0.5V。我们还根据图6c来设置偶数位线的位线电压。

图7b描述了对应于图6c的读技术。在步骤710处开始读操作。在步骤711处,没有补偿地读WLn的偶数和奇数存储元件,且存储这些结果。在步骤712处,有补偿地在精细读中读WLn的偶数存储元件,其可以包括基于奇数位线存储元件的先前预定的状态向奇数位线施加适当的位线电压。这些结果被存储,且可以重写来自偶数位线的粗糙读的结果。在步骤713处,有补偿地在精细读中读WLn的奇数存储元件,其可以包括基于偶数位线存储元件的先前预定的状态向偶数位线施加适当的位线电压。这些结果被存储,且可以重写来自奇数位线的粗糙读的结果。在步骤714处结束读操作。

图6d描述了在对应于图2f的编程之后基于它们的状态且基于控制栅极读取电压而施加到存储元件的位线电压。时间轴与图6a中的相同。在另外选择中,可以使用所有位线感测,而不用奇偶感测。在该方法中,在粗糙读和精细读两者中一起读所有位线。这可以在例如更快的读速度的方面提供更好的性能。在所有位线实施方式中,图6d的位线电压与图6c中的相同,除了VBL1=VBL,其可以是例如在验证操作期间使用的位线电压。将VBL设置在其导致相同位线上的所选存储元件的准确的读电平的电平,而不是导致在另一位线上的存储元件的耦合补偿的电平。作为例子,VBL的量值在VBL0和VBL2,虽然这不需要,因为VBL可以具有任何适当的量值。当控制栅极电压处于对应于相关联的存储元件的先前确定的状态的电平时,位线电压仅需要被设置为VBL。当控制栅极电压处于不对应于具体位线的相关联的存储元件的先前确定的状态的电平时,具体位线电压可以被设置在用于补偿相邻的位线的电平。

例如,参考波形694,注意,当正进行A读时,即当对从粗糙读中先前被确知为处于状态A中的所选存储元件在t0和t1之间向所选字线施加VCGR-A时,在A状态存储元件上使用VBL1=VBL。类似地,参考波形692,当在t1和t2之间施加VCGR-B时,在B状态存储元件上使用VBL1=VBL。随后,参考波形690,当在t2和t3之间施加VCGR-C时,在C状态存储元件上使用VBL1=VBL。因此,当VCGR对应于具体状态时,将位线电压设置在用于读具体状态的适当电平,且将位线电压设置在用于其他时候耦合补偿的适当电平。这保证对存储元件正确地进行感测,同时还提供耦合补偿。

因此,例如,在t0和t1之间,从粗糙读中被确知为处于状态E、A、B或C中的存储元件将分别接收VBL0、VBL、VBL2或VBL3。在t1和t2之间,从粗糙读中被确知为处于状态E、A、B或C中的存储元件将分别接收VBL0、VBL0、VBL或VBL2。在t2和t3之间,从粗糙读中被确知为处于状态E、A、B或C中的存储元件将分别接收VBL0、VBL0、VBL0或VBL1

因此,对于每个控制栅极读电压,根据相关联的存储元件的先前被确知的数据状态是否对应于控制栅极电压来设置位线电压。如果存在对应关系,将位线电压设置为与被确知的数据状态无关的VBL,因为其用于所有数据状态。如果不存在这种对应关系,将位线电压设置为VBL0、VBL2或VBL3的电平,其取决于被确知的数据状态。可接受的是,存储元件用位线电压在精细读中被读,该位线电压可以当控制栅极读电压处于″不关心(don′t care)″电平时而改变读的结果。例如,对于在粗糙读中被确定为处于C状态的存储元件,在随后的精细读中,VCGR-A和VCGR-B的控制栅极读电压是″不关心的″电平,以便可以使用VBL3或VBL2,同时VCGR-C是″关心的″电平,因此使用VBL。VCGR-C对应于先前确定的C状态。

图7c描述了对应于图6d的读取技术。在步骤720处开始读操作。在步骤721处,没有补偿地读WLn的偶数和奇数存储元件,且存储这些结果。在步骤722处,在精细读中有补偿地读WLn的偶数和奇数存储元件,这可以包括根据当前控制栅极读电压是否对应于先前确定的状态、基于相关联的存储元件的先前确定的状态向每个位线施加适当的位线电压。具体地,当存在这种对应关系时使用VBL的标定值。当不存在这种对应关系时,使用VBL0、VBL2或VBL3。这些结果被存储,且可以重写来自粗糙读的结果。在步骤723处结束读操作。

可以通过不同的编程技术来使用在此讨论的补偿技术。一个可能的编程技术是全序列编程,诸如结合以下图15所讨论的。另一可能的编程技术包括使用诸如结合图17a-c以下讨论的中低(LM)状态。在这种情况下,减小需要被补偿的耦合量,因此我们可以几乎完全地补偿状态E到A和状态LM到C的耦合效应。另外,最佳位线电压电平可以与图6b-6d中示出的那些不同。例如,在所选存储元件从粗糙读中被确知为处于B状态的情况下,在假设奇偶读时,我们可以对相邻的位线使用VBL0,因为与状态LM到B的耦合相对小。可以通过实验、计算机建模和其他方法来确定对给定的存储器器件最佳的具体位线电压和编程与读机制。查找表或其他数据结构可以基于数据状态和控制栅极读电平来提供适当的位线电压。

图6e描述施加到存储元件的替换的位线电压。例如,存在对图6b-d中的任一的位线电压的通用替换。注意,VBL1、VBL2和VBL3是用于补偿分别相隔一个、两个或三个数据状态的数据状态的电压。例如,VBL1足够用于补偿状态E到A、状态A到B或状态B到C的耦合(一个状态的差)。类似地,VBL2足够用于补偿状态E到B或状态A到C耦合(两个状态的差),且最大位线电压VBL3足够用于补偿状态E到C耦合(三个状态的差)。在图6b-6d中,存在2N个数据状态和2N个可能的位线电压,其中,N≥2。

在另一可能的方法中,提供其它的位线电压,例如多于2N个可能的位线电压。在该情况下,不假设VBL1、VBL2和VBL3是用于分别补偿所有一个状态、两个状态和三个状态差的耦合来说最佳的。相反,对一个或多个具体的耦合使用具体的位线电压。例如除了使用相同电压VBL1来补偿状态E到A、A到B和B到C的耦合,我们注意到实际上,例如状态E到A耦合可以大于状态A到B或B到C的耦合,以便改善耦合补偿的准确度,我们可以对状态E到A补偿而使用一个位线电压,对状态A到B补偿使用另一位线电压,对于状态B到C补偿使用另一位线电压,等等。因此,可以使用用于每个具体的耦合组合的位线电压。还可以分组某些耦合组合,这些耦合组合具有近似相同的耦合量值,且对它们使用公共的位线电压。例如,一个位线电压可以适当地用于补偿状态E到A的耦合,同时另一位线电压可以适当地用于补偿状态A到B和B到C的耦合。通过提供更多的位线电压电平,我们可以可能地更准确地补偿不同的BL-BL效应,虽然有一些开销成本。可以使用在存储器器件中的存储器和处理器资源的适当使用,来进行期望的技术。

例如,为了补偿由C状态存储元件导致的耦合,波形691具有VBL-C3、VBL-C2和VBL-C1的电平,用于当分别向所选的字线施加VCGR-A、VCGR-B和VCGR-C时使用。为了补偿由B状态存储元件导致的耦合,波形693具有用于当分别施加VCGR-A、VCGR-B和VCGR-C时使用的VBL-B3、VBL-B2和VBL-B1的电平。为了补偿由A状态存储元件导致的耦合,波形695具有用于当分别施加VCGR-A、VCGR-B和VCGR-C时使用的VBL-A3、VBL-A2和VBL-A1的电平。为了补偿E状态存储元件的耦合,波形697具有例如可以与VBL0相同的VBL-E的电平。在此,存在九个不同的位线电压。

图8a描述了在读取操作期间施加到所选字线的控制栅极读取电压。图8b描述了在读取操作期间施加到相邻字线的读通过电压(read pass voltages)。可以单独提供对字线相邻的存储元件的补偿,或结合对位线-相邻的存储元件的补偿。可以由字线相邻的存储元件导致字线与字线的干扰或耦合。例如,在图4a中,存储元件622是在相邻的字线WLn+1上的与存储元件625相邻的字线。通常,一旦对WLn上的存储元件完成编程,当在WLn+1上的存储元件随后被编程时,它们经历耦合效应。

由于存储元件622在与正被读的存储元件625相同的位线上,VBL需要处于某个电平处来提供存储元件625的挣钱的读,且因此不能被调整以补偿由于存储元件622导致的耦合。相反,被施加到WLn+1的读通过电压可以被调整以提供这种补偿。通常,在读操作期间,固定的读通过电压通常被施加到未选的字线,以保证驱动未选存储元件到导电的状态。通常在导通(使得导电)未选存储元件的沟道的电平处驱动未选存储元件。在此,WLn+1接收偶尔会有WLn上的所选存储元件的浮置栅极的特殊的多电平读通过电压,以提供期望的耦合补偿。可以通过向WLn+1施加较高的读通过电压来实现较高的量。在WLn+1上的较高的读通过电压降低了所选存储元件的VTH,且因此提供补偿。

由于向字线上的所有存储元件施加在WLn+1上的读通过电压,且因为通常正被读的WLn上的存储元件已经被编程到不同的数据状态,因此一个可能的方法容纳在WLn上的数据状态和在WLn+1上的读通过电压的所有可能的组合。具体地,存在如图8a所示的被施加到WLn的2N-1个控制栅极读电压和如图8b所示的对于每个控制栅极读电压施加给WLn+1的2N个可能的读通过电压。因此,在t0和t1之间,当向WLn施加VCGR-A时,包括称为VREAD、VREAD-A、VREAD-B和VREAD-C的电压的读通过电压的序列在时间间隔t0-t0A、t0A-t0B、t0B-t0C和t0C-t1处被分别施加到WLn+1。当向WLn施加VCGR-B时在t1和t2之间,且当向WLn施加VCGR-C时在t2和t3之间重复读通过电压的序列。另外,对于在WLn上的每个控制栅极读电压,仅需要观察与对应于WLn+1存储元件的已知状态的读通过电压之一相关联的结果。

因此,基于粗糙读,可以确知所选存储元件和字线相邻的存储元件的数据状态,且在随后的精细读中,可以通过例如存储适当的数据来识别对应于字线相邻的存储元件的状态的读通过电压。该识别指示何时应该感测所选存储元件。如结合图13以下进一步说明的,感测可以包括预充电位线,且然后观察感测放大器中的电容器当耦合到位线时放电的速率。其他感测技术包括将位线上的电流与参考电流比较。在任一情况下,可以在对应于WLn+1上的所识别的读通过电压的指定时间、对控制栅极读电压的每个进行对给定位线的感测。

例如,如果粗糙读指示WLn+1存储元件处于状态C,当例如分别在时间间隔t0C-t1、t1C-t2和t2C-t3向WLn施加VCGR-A、VCGR-B和VCGR-A的每个时观察与WLn+1上的VREAD-PASS-C相关联的读结果。对WLn上的存储元件的读结果不需要当VREAD-PASS、VREAD-PASS-A和VREAD-PASS-B例如分别在时间间隔t0-t0C、t1-t1C和t2-t2C在WLn+1上时获得。具体地,考虑仅当VREAD-PASS-C在例如WLn+1上时,如果在时间间隔t0C-t1处检测到所选存储元件通过WLn上的VCGR-A处于导电的状态中,则已知所选择的存储元件处于状态E中,且完成对所选存储元件的读。如果检测到所选存储元件通过在WLn上的VCGR-A而处于非导电状态中,但是在时间间隔t1C-t2、在通过WLn上的VCGR-B的导电状态中,则已知所选存储元件处于状态A中,且完成所选存储元件的读。如果检测到所选存储元件通过在WLn上的VCGR-A而处于非导电状态中,但是在时间间隔t2C-t3、在通过WLn上的VCGR-C的导电状态中,则已知所选存储元件处于状态B中,且完成所选存储元件的读。如果检测到所选存储元件通过在WLn上的VCGR-A、VCGR-B或VCGR-C而处于非导电状态中,则已知所选存储元件处于状态C中,且完成所选存储元件的读。在上述情况的每个中,对由于WLn+1上的通过电压而处于状态C中的WLn+1上的字线相邻的存储元件提供适当的耦合补偿。

因此,基于从粗糙读中的在WLn+1中的字线相邻的存储元件的确定的状态来使用图8b中的波形的适当的部分。以此方式,可以补偿与字线相邻的存储元件的耦合。另外,可以结合对位线-相邻的存储元件、包括在相同的字线上的那些和在相邻的字线(对角地)上的那些的补偿来提供该补偿。

在在此通过引用并入的题为″Complete Word Line Look Ahead With Efficient Data Latch Assignment In Non-Volatile Memory Read Operations″的US2008/0158973中进一步讨论对与字线相邻的存储元件的耦合的补偿。

图9a描述了包括用于对角地位线-相邻的存储元件的补偿的读取操作。可以进行由于对角地位线-相邻的存储元件(诸如与图4a中的存储元件625对角地位线-相邻的存储元件621和623)而导致的耦合补偿。在该方法中,在步骤900处开始读操作。在步骤901处,没有耦合补偿地,对存储元件进行粗糙的读,且存储这些结果。步骤902包括对偶数位线的WLn的存储元件进行有耦合补偿的精细读,且存储这些结果。该补偿可以包括基于在WLn+1奇数位线上的对角的存储元件的先前确定的状态向奇数位线施加适当的位线电压。存储这些结果。步骤903包括对奇数位线的WLn的存储元件进行有耦合补偿的精细读,且存储这些结果。该补偿可以包括基于在WLn+1偶数位线上的对角的存储元件的先前确定的状态向偶数位线施加适当的位线电压。在步骤904处结束读操作。

图9b描述了包括对于字线相邻的存储元件的补偿的读取操作。可以进行由于字线相邻的存储元件(诸如与图4a中的存储元件625相邻的存储元件622)而导致的耦合补偿。在该方法中,在步骤910处开始读操作。在步骤911处,没有耦合补偿地,对所有位线的相邻的字线WLn+1的存储元件进行粗糙的读,且存储这些结果。对于奇偶读,步骤912包括对偶数位线的WLn的存储元件进行有耦合补偿的精细读,且存储这些结果。该补偿可以包括当向对应于WLn+1相邻的存储元件的先前确定的状态的WLn+1施加适当的读通过电压时进行感测,如上结合图8a和8b所述。存储这些结果。步骤913包括对奇数位线的WLn的存储元件进行有耦合补偿的读,且存储这些结果。如在步骤912中可以提供补偿。在步骤915处结束读操作。

对于所有位线(ABL)读,步骤914包括对所有位线的WLn的存储元件进行有耦合补偿的精细读,且存储这些结果。该补偿可以包括当向对应于WLn+1相邻的存储元件的先前确定的状态的WLn+1施加适当的读通过电压时进行感测。

图10a描述了包括用于对角地位线-相邻的存储元件和字线相邻的存储元件的补偿的读取操作。在该方法中,在步骤1000处开始读操作。在步骤1001处,没有耦合补偿地,对所有位线的相邻的字线WLn+1的存储元件进行粗糙的读,且存储这些结果。步骤1002包括对偶数位线的WLn的存储元件进行有耦合补偿的读,且存储这些结果。该补偿可以包括:(a)当向对应于WLn+1相邻的存储元件的先前确定的状态的WLn+1施加适当的读通过电压时进行感测,如上结合图8a和8b所述,以及(b)基于在奇数位线上的WLn+1存储元件的先前确定的状态向奇数位线施加适当的位线电压。存储这些结果。步骤1003包括对奇数位线的WLn的存储元件进行有耦合补偿的读,且存储这些结果。该补偿可以包括:(a)当向对应于WLn+1相邻的存储元件的先前确定的状态的WLn+1施加适当的读通过电压时进行感测,以及(b)基于在偶数位线上的WLn+1存储元件的先前确定的状态向偶数位线施加适当的位线电压。存储这些结果。在步骤1004处结束读操作。

当对WLn+1字线相邻的存储元件和WLn+1对角的位线-相邻的存储元件两者提供补偿时,可以与字线电压合作地调整用于对角位线-相邻的存储元件的位线电压。例如,当读通过电压较高时,位线电压可以较低,以便耦合补偿不过度。可以进行实验和计算机模拟来确定产生结合给定的读通过电压的期望的耦合补偿的适当位线电平。可以通过提供要与不同的读通过电压结合而施加的最佳位线电压的存储器器件的控制器来维持查找表或类似的数据结构。

图10b描述了包括对于相同字线、位线-相邻的存储元件和字线相邻的存储元件的补偿的读取操作。在该方法中,在步骤1010处开始读操作。在步骤1011处,没有耦合补偿地,对所有位线的WL和单独地、相邻的字线WLn+1的存储元件进行粗糙的读,且存储这些结果。对于奇偶读,步骤1012包括对偶数位线的WLn的存储元件进行有耦合补偿的读,且存储这些结果。该补偿可以包括:(a)当向对应于WLn+1相邻的存储元件的先前确定的状态的WLn+1施加适当的读通过电压时进行感测,如上结合图8a和8b所述,以及(b)基于在奇数位线上的WLn存储元件的先前确定的状态向奇数位线施加适当的位线电压。存储这些结果。步骤1013包括对奇数位线的WLn的存储元件进行有耦合补偿的读,且存储这些结果。该补偿可以包括:(a)当向对应于WLn+1相邻的存储元件的先前确定的状态的WLn+1施加适当的读通过电压时进行感测,以及(b)基于在偶数位线上的WLn存储元件的先前确定的状态向偶数位线施加适当的位线电压。在步骤1015处结束读操作。

对于所有位线(ABL)读,步骤1014包括对所有位线的WLn的存储元件进行有耦合补偿的读,且存储这些结果。该补偿可以包括:(a)当向对应于WLn+1相邻的存储元件的先前确定的状态的WLn+1施加适当的读通过电压时进行感测,以及(b)基于在位线上的WLn存储元件的先前确定的状态向位线施加适当的位线电压。

图11图示NAND存储元件的阵列1100的例子,诸如图1a和1b所示的那些。沿着每个列,位线1106被耦合到NAND串1150的漏极选择门的漏极端1126。沿着NAND串的每行,源极线1104可以连接NAND串的源极选择门的所有源极端1128。

存储元件的阵列被划分为存储元件的大量块。如对于快闪EEPROM系统共同的,该块是擦除的单位。即,每个块包含一起擦除的存储元件的最小数量。每个块通常被划分为大量页。一页是编程的最小单位。一页或多页数据通常被存储在一行存储元件中。例如,一行通常包含若干交织的页,或其可以组成一页。一页的所有存储元件将一起被读或编程。另外,一页可以存储来自一个或多个扇区的用户数据。扇区是由主机使用作为用户数据的方便单元的逻辑概念;其通常不包含被限制给控制器的开销数据。开销数据可以包括已经从扇区的用户数据中计算的纠错码(ECC)。控制器的一部分(以下描述)当数据正被编程到阵列中时计算ECC,还当正从该阵列中读取数据时检查它。或者,ECC和/或其他开销数据被存储在与它们所属的用户数据不同的页或甚至不同的块中。

用户数据的扇区通常是512字节,对应于在磁盘中的扇区的尺寸。开销数据通常是附加的16-20字节。大量页形成块,无论从例如8页直到32、64、128或更多页。在一些实施例中,NAND串的一行包括一个块。

在一个实施例中,通过将p阱升高到擦除电压(例如14-22V)达足够的时间段,并将所选块的字线接地同时浮置源极和位线,来擦除存储器存储元件。由于电容性耦合,所选字线、位线和c-源极也被升高擦除电压的大分数(significant fraction)。因此,强电场被施加到所选存储元件的隧道氧化物层,且随着通常通过Fowler-Nordheim遂穿机制将浮置栅极的电子发射到衬底侧,所选存储元件的数据被擦除。随着电子从浮置栅极转移到p阱区域,所选存储元件的阈值电压被降低。可以对整个存储器阵列、分离的块或存储元件的另一单位进行擦除。

图12是使用单行/列解码器和读取/写入电路的非易失性存储器系统的方框图。该图图示了根据本发明的一个实施例的具有用于并行读取和编程一页存储元件的读/写电路的存储器器件1296。存储器器件1296可以包括一个或多个存储器芯片(memory die)1298。存储器芯片1298包括存储元件的二维阵列1100、控制电路1210和读/写电路1265。在一些实施例中,存储元件的阵列可以是三维的。存储器阵列1100可由字线经由行解码器1230且经由位线经由列解码器1260来寻址。读/写电路1265包括多个感测块1200,且允许存储元件的页被并行读或编程。通常,控制器1250被包括在相同存储器器件1296(例如可移除的存储卡)中作为一个或多个存储器晶片1298。经由线1220在主机和控制器1250之间且经由线1218在控制器和一个或多个存储器晶片1298之间传输命令和数据。

控制电路1210与读/写电路1265合作以对存储器阵列1100进行存储器操作。控制电路1210包括状态机1212、芯片上地址解码器1214和功率控制模块1216。状态机1212提供存储器操作的芯片级控制,且可以包括ECC解码机制。芯片上地址解码器1214提供有主机或存储器控制器使用的与有解码器1230和1260使用的硬件地址之间的地址接口。功率控制电路1216控制在存储器操作期间供应给字线和位线的功率和电压。

在一些实施方式中,可以组合图12的组件中的一些。在各种设计中,除了存储元件阵列1100以外的一个或多个组件(单独或组合)可以被考虑为管理电路。例如,一个或多个管理电路可以包括控制电路1210、状态机1212、解码器1214/1260、功率控制1216、感测块1200、读/写电路1265、控制器1250等中的任何一个或组合。

在另一方法中,非易失性存储器系统使用双行/列解码器和读/写电路,其中在阵列的相对侧上以对称的方式实现由各种外围电路对存储器阵列1100的存取,以便每侧的存取线和电路的密度减少了一半。因此,两行解码器、两列解码器、连接到来自阵列1100的底部的位线的读/写电路和连接到来自阵列1100的顶部的位线的读/写电路。

图13是描述感测块的一个实施例的方框图。分离的感测块1200被分区为核心部分、称为感测模块1280,和公共部分1290。在一个实施例中,将存在对于每个位线的分离的感测模块1280和对于多个感测模块1280的一组的一个公共部分1290。在一个例子中,感测块将包括一个公共部分1290和八个感测模块1280。在一个分组中的感测模块的每个将经由数据总线1272与相关公共部分通信。更多细节参见在2006年6月29日公布的美国2006/0140007、题为″Non-Volatile Memory and Method with Shared Processing for an Aggregate of Sense Amplifiers″,其全部被引用附于此。

感测模块1280包括确定在连接的位线中的导电电流高于还是低于预定阈值电平的感测电路1270。感测模块1280还包括用于设置在连接的位线上的电压状况的位线锁存器1282。例如,在位线锁存器1282中锁存的预定状态将导致连接的位线被拉到指示编程禁止的状态(例如1.5-3V)。

公共部分1290包括处理器1292、一组数据锁存器1294和在该组数据锁存器1296和数据总线1220之间耦合的I/O接口1294。处理器1292进行计算。例如,其功能之一是确定在感测的存储元件中存储的数据并在该组数据锁存器中存储确定的数据。该组数据锁存器1294被用于存储在读取操作期间由处理器1292确定的数据位。其还用于存储在编程操作期间从数据总线1220输入的数据位。输入的数据位表示意欲被编程到存储器中的写数据。I/O接口1296提供在数据锁存器1294和数据总线1220之间的接口。

在读取或感测期间,该系统的操作在状态机1212的控制下,该状态机1212控制不同的控制栅极电压向被寻址的存储元件的供应。随着其步经对应于由存储器支持的各种存储器状态的预定的控制栅极电压,感测模块1280可以停留在这些电压之一,且将经由总线1272从感测模块1280向处理器1292提供输出。在该点上,处理器1292通过考虑感测模块的停留事件(tripping event)和关于经由输入线1293从状态机的施加的控制栅极电压的信息来确定得到的存储器状态。然后,其计算对于存储器状态的二进制编码,并将得到的数据位存储到数据锁存器1294。在核心部分的另一实施例中,位线锁存器1282用于双重任务,作为用于锁存感测模块1280的输出的锁存器,还作为如上述的位线锁存器。

预期,一些实施方式将包括多个处理器1292。在一个实施例中,每个处理器1292将包括使得每个输出线被一起配线为逻辑或(wired-OR′d)的输出线(未示出)。在一些实施例中,输出线在被连接到配线为逻辑或的线之前被反转(invert)。该配置使得能够在编程确认处理期间快速确定何时完成了编程处理,因为接收配线为或的状态机可以确定正被编程的所有位何时到达了期望的电平。例如,当每个位到达了其期望的电平时,该位的逻辑零将被发送到配线为或的线(或数据一被反相)。当所有位输出数据0(或数据一被反相)时,然后状态机知道确定编程处理。因为每个处理器与八个感测模块通信,因此,状态机需要读取配线为或的线八次,或逻辑被添加到处理器1292以累积相关位线的结果以便状态机仅需要读取配线为或的线一次。类似地,通过正确地选择逻辑电平,全局状态机可以检测第一位何时改变其状态并因此改变算法。

在编程或确认期间,要被编程的数据从数据总线1220被存储在该组数据锁存器1294中。在状态机的控制下的编程操作包括施加到被寻到的存储元件的控制栅极的一系列编程电压脉冲。每个编程脉冲之后是读回(确认)以确定存储元件已经被编程到期望的存储器状态。处理器1292相对于期望的存储器状态来监视读回的存储器状态。当两者一致时,处理器1292设置位线锁存器1282以便使得位线被拉到指定编程禁止的状态。这禁止与位线耦合的存储元件被进一步编程,即使编程脉冲出现在其控制栅极上。在其他实施例中,处理器初始地加载位线锁存器1282,且感测电路在确认处理期间设置其到禁止值。

数据锁存堆栈1294包含对应于感测模块的数据锁存器的堆栈。在一个实施例中,存在每个感测模块1280的三个数据锁存器。在一些实施方式(但是不必要)中,数据锁存器被实施为移位寄存器以便在其中存储的并行数据被转换为用于数据总线1220的串行数据,且反之亦然。在优选实施例中,对应于m个存储元件的读/写块的所有数据锁存器可以被链接到一起以形成块移位寄出去,以便数据的块可以被串行转移输入或输出。具体地,读/写模块的库(bank)被适配以便其数据锁存器组的每个将顺序地偏移数据到数据总线中或数据总线以外,就好像它们是移位寄存器的部分,用于整个读/写块。

图14图示了将存储器阵列组织为用于所有位线存储器架构的块或用于奇偶存储器架构的块的例子。描述存储器阵列1100的示例结构。例如,描述被划分为1024个块的NAND快闪EEPROM。可以同时擦除在每个块中存储的数据。在一个实施例中,该块是同时被擦除的存储元件的最小单位。在每个块中,在该例子中,存在对应于位线BL0、BL1、...的8512个列。在称为所有位线(ABL)架构(架构1410)的一个实施例中,可以在读取和编程操作期间同时选择块的所有位线。沿着公共字线且被连接到任一位线的存储元件可以同时被编程。

在提供的示例中,串联连接四个存储元件以形成NAND串。虽然示出了四个存储元件以被包括在每个NAND串中,但是可以使用比四个更多或更少(例如,16、32、64或另一数量)。NAND串的一端经由(连接到选择门逻辑线SGD的)漏极选择门被连接到对应的位线,且另一端经由(连接到选择门源极线SGS的)源极选择门连接到c源极。

在称为奇偶架构(架构1400)的另一实施例中,位线被划分为偶数位线(BLe)和奇数位线(BLo)。在奇数/偶数位线架构中,沿着公共字线且被连接到奇数位线的存储元件在一个时间被编程,而沿着公共字线且连接到偶数位线的存储元件在另一时间编程。在每个块中,在该例子中,存在被划分为偶数个列和奇数个列的8512个列。在该示例中,示出串联连接的四个存储元件以形成NAND串。虽然示出四个存储元件被包括在每个NAND串中,但是可以使用比四个更多或更少的存储元件。

在读取和编程操作的一个配置期间,同时选择4256个存储元件。所选的存储元件具有相同的字线和同种位线(例如,偶数或奇数)。因此,可以同时读取或编程形成逻辑页的532字节的数据,且一块存储器可以存储至少八个逻辑页(四个字线,每个具有奇数和偶数个页)。对于多状态存储元件,当每个存储元件存储两位数据时,在这两位的每个被存储在不同页中的情况下,一个块存储十六个逻辑页。还可以使用其他尺寸的块和页。

对于ABL或奇偶架构,可以通过升高p阱到擦除电压(例如20V)且将所选块的字线接地来擦除存储元件。源极和位线浮置。可以对整个存储器阵列、分离的块或作为存储器器件的一部分的存储元件的另一单位进行擦除。电子从存储元件的浮置栅极被转移到p阱区域,以便存储元件的VTH变负。

在读取和确认操作中,所选栅极(SGD和SGS)被连接到2.5-4.5V的范围中的电压,且未选字线(例如WLO、WL1和WL3,当WL2是所选字线时)被升高到读取通过电压(read pass voltage),VREAD(通常在4.5V到6V的范围中的电压)以使得晶体管操作为通过栅极。所选字线WL2被连接到电压,其电平被指定给每个读取和确认操作以便确定所关心的存储元件的VTH是高于还是低于这种电平。例如,在两电平存储元件的读取操作中,所选字线WL2可以被接地,以便检测VTH是否高于0V。在对于两电平存储元件的确认操作中,所选字线WL2被连接到例如0.8V,以便确认VTH是否达到了至少0.8V。源极和p阱处于0V。假设为偶数位线(Ble)的所选位线被预充电到例如0.7V的电平。如果VTH高于在字线上的读取或确认电平,与感兴趣的存储元件相关的位线(Ble)的电势电平由于非导电存储元件而维持高电平。另一方面,如果VTH低于读取或确认电平,关心的位线(BLe)的电势电平降低到例如小于0.5V的低电平,因为导电的存储元件对位线放电。由此可以通过连接到位线的电压比较器感测放大器来检测存储元件的状态。

根据现有技术已知的技术来进行上述擦除、读和确认操作。因此,可以通过本领域技术任意来改变所说明的细节中的许多。还可以使用本领域技术中已知的其他擦除、读取和确认技术。

图15描述了阈值电压分布和一遍(one-pass)编程的示例组。对每个存储元件存储两位数据的情况提供用于存储元件阵列的示例VTH分布。对擦除的存储元件提供第一阈值电压分布E。还描述对于编程的存储元件的三个阈值电压分布、A、B和C。在一个实施例中,在E分布中的阈值电压是负的,且在A、B和C分布中的阈值电压是正的。

每个不同的阈值电压范围对应于该组数据位的预定值。在被编程到存储元件中的数据和该存储元件的阈值电压电平之间的具体关系取决于适用于存储元件的数据编码机制。在一个实施例中,使用格雷码分配来将数据值分配给阈值电压范围,以便如果浮置栅极的阈值电压错误地偏移到相邻的物理状态,仅将影响一个位。一个例子向阈值电压范围E(状态E)分配″11″,向阈值电压范围A(状态A)分配″10″,向阈值电压范围B(状态B)分配″00″,且向阈值电压范围C(状态C)分配″01″。但是,在其他实施例中,不使用格雷码。虽然示出了四个状态,但是还可以通过包括那些包括多于或少于四个状态的其他多状态结构来使用本发明。

还提供三个读取参考电压VCGR-A、VCGR-B和VCGR-C用于从存储元件读取数据。通过测试给定的存储元件的阈值电压高于还是低于VCGR-A、VCGR-B和VCGR-C,该系统可以确定例如该存储元件所处的编程状况的状态。

另外,提供三个验证参考电压VV-A、VV-C和VC-C。当将存储元件编程到状态A时,该系统将测试那些存储元件是否具有大于或等于VV-A的阈值电压。当将存储元件编程到状态B时,该系统将测试这些存储元件是否具有大于或等于VV-A的阈值电压。当将存储元件编程到状态C时,该系统将确定存储元件是否具有大于或等于VV-C的其阈值电压。

在已知为全序列编程的一个实施例中,存储元件可以从擦除状态E直接编程到编程的状态A、B或C中的任一。例如,要被编程的全体存储元件可以首先被擦除以便在该全体中的所有存储元件处于擦除的状态E。然后,诸如由图2d-2f的控制栅极电压序列描述的一系列编程脉冲将被用于将存储元件直接编程到状态A、B或C。当一些存储元件正被从状态E编程到状态A时,其他存储元件正从状态E被编程到状态B和/或从状态E编程到状态C。当在WLn上从状态E编程到状态C时,耦合于在WLn-1之下的相邻的浮置栅极的寄生(parasitic)的量到达最大值,因为当从状态E编程到状态A或从状态E编程到状态B时在WLn下的浮置栅极上的电荷量中的变化与电荷的变化相比最大。当从状态E编程到状态B时,耦合于相邻浮置栅极的量更小。当从状态E编程到状态A时,耦合的量甚至进一步减小。

图16图示了编程存储两个不同的页:较低页和较高页的数据的多状态存储元件的两遍(two-pass)技术的例子。。描述四个状态:状态E(11)、状态A(10)、状态B(00)和状态C(01)。对于状态E,两页存储″1″。对于状态A,较低页存储″0″,且较高页存储″1″。对于状态B,两页存储″0″。对于状态C,较低页存储″1″,且较高页存储″0″。注意,虽然具体图案已经被分配给每个状态,但是还可以分配不同的位图案。

在第一编程遍中,根据要被编程到较低逻辑页的位来设置存储元件的阈值电压电平。如果该位是逻辑″1″,不改变阈值电压,因为其处于与已经较早被擦除的结果的适当的状态中。”但是,如果要被编程的位是逻辑″0″,存储元件的阈值电平被增加以成为状态擜,如由箭头1600示出。这结束了第一编程遍。

在第二编程遍中,根据要被编程到较高逻辑页的位来设置存储元件的阈值电压电平。如果较高逻辑页位要存储逻辑″1″,则不发生编程,因为存储元件取决于较低页位的编程处于其两者携带较高页位″1″的状态E或A之一中。如果较高页位是逻辑″0″,则阈值电压被偏移。如果第一遍导致维持在擦除状态E中的存储元件,然后在第二阶段中存储元件被编程,以便阈值电压被增加到状态C中,如由箭头1620描述。如果作为第一编程遍的结果,存储元件已经被编程到状态A中,则在第二遍中进一步编程存储元件,以便阈值电压被增加到状态B内,如由箭头1610所示。第二遍的结果要将存储元件编程到被指定为存储较高页的逻辑″0″的状态,而不改变较低页的数据。在图15和图16两者中,耦合于在相邻字线上的浮置栅极的量取决于最终的状态。

在一个实施例中,如果将足够的数据写入以填满整个页,系统可以被设置以进行全序列写。如果不写入足够的数据用于全页,则编程处理可以编程用所接收的数据编程的较低页。当接收随后的数据时,然后该系统将编程较高页。在另一实施例中,系统可以开始写入编程较低页的模式,然后如果随后接收足够的数据以填满整个(或大多数)字线的存储元件,转换到全序列编程模式。这种实施例的更多细节在美国专利7,120,051中公开,其全部被引用附于此。

图17a-c公开用于通过相对于在写入先前页的相邻的存储元件之后的具体页、对于任一具体存储元件写入该具体存储元件来编程减少浮置栅极与浮置栅极耦合的影响的非易失性存储器的另一处理。在一个示例实施方式中,非易失性存储元件使用四个数据状态来存储每个存储元件的两位数据。例如,假设状态E是擦除的状态,且状态A、B和C是编程的状态。状态E存储数据11。状态A存储数据01。状态B存储数据10。状态C存储数据00。这是非格雷编码的例子,因为两个位在相邻状态A和B之间改变。还可以使用数据到物理数据状态的其他编码。每个存储元件存储两页数据。为了引用的目的,数据的这些页将被称为较高页和较低页,但是可以给它们其他标记。参考状态A,较高页存储位0,且较低页存储位1。参考状态B,较高页存储位1,且较低页存储位0。参考状态C,两页都存储位数据0。

该编程处理是两步处理。在第一布中,较低页被编程。如果较低页维持数据1,则存储元件状态维持在状态E。如果数据要被编程到0,则存储元件的电压的阈值被升高以便该存储元件被编程到状态B′。这有时被称为中低或LM状态。因此,图17a示出存储元件从状态E编程到状态B′。状态B′是中间的状态B;因此,确认点被描述为低于VV-B的V’V-B

在一个实施例中,在存储元件从状态E编程到状态B′之后,然后在NAND串中的其相邻存储元件(WLn+1)将相对于其较低页而被编程。例如,往回看图1b,在存储元件106的较低页被编程之后,存储元件104的较低页将被编程。在编程存储元件104之后,如果存储元件104具有从状态E升高到状态B′升高的阈值电压,浮置栅极与浮置栅极耦合影响将升高存储元件106的明显阈值电压。这将具有扩宽状态B′的阈值电压分布到被描述为图17b的阈值电压分布1750的效果。当编程较高页时,阈值电压分布的该明显的扩宽将被修补。

图17c描述了编程较高页的处理。如果存储元件处于擦除状态E且较高页要维持在1,则存储元件将维持在状态E中。如果存储元件处于状态E且其较高页数据要被编程到0,则存储元件的阈值电压将被升高以便存储元件处于状态A。如果存储元件过去处于中间的阈值电压分布1750且较高页数据要维持在1,则存储元件将被编程到最终的状态B。如果存储元件处于中间的阈值电压分布1750且较高页数据要变成数据0,则存储元件的阈值电压将被升高以便存储元件处于状态C中。由图17a-c描述的处理减少了浮置栅极与浮置栅极耦合的效应,因为仅相邻存储元件的较高页编程将具有对给定的存储元件的明显阈值电压的影响。替换的状态编码的例子当较高页数据是1时要从分布1750移动到状态C,且当较高页数据是0时移动到状态B。

虽然图17a-c提供了针对四个数据状态和两页数据的例子,教导的概念可以被施加到具有多于或少于四个状态和多于或少于两页的其他实施方式。

已经为了例示和描述来呈现了前述的详细描述。不意图穷举或限制本发明到所公开的精确的形式。在上述教导下,许多修改和变化是可能的。选择所描述的实施例以便最佳地说明本发明的原理和其实际的应用,以从而使得本领域技术人员能够在各种实施例中且具有适合于所构思的具体用途的各种修改地最佳地使用本发明。意图本发明的范围被附于此的权利要求所定义。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号