CN101861624B - 用于在编程期间补偿邻居单元的干扰电荷的非易失性存储器和方法 - Google Patents

用于在编程期间补偿邻居单元的干扰电荷的非易失性存储器和方法 Download PDF

Info

Publication number
CN101861624B
CN101861624B CN200880116492.3A CN200880116492A CN101861624B CN 101861624 B CN101861624 B CN 101861624B CN 200880116492 A CN200880116492 A CN 200880116492A CN 101861624 B CN101861624 B CN 101861624B
Authority
CN
China
Prior art keywords
memory cell
word line
programming
verified
level
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN200880116492.3A
Other languages
English (en)
Other versions
CN101861624A (zh
Inventor
李艳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Delphi International Operations Luxembourg SARL
Original Assignee
SanDisk Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SanDisk Corp filed Critical SanDisk Corp
Publication of CN101861624A publication Critical patent/CN101861624A/zh
Application granted granted Critical
Publication of CN101861624B publication Critical patent/CN101861624B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/10Decoders
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/344Arrangements for verifying correct erasure or for detecting overerased cells
    • G11C16/3445Circuits or methods to verify correct erasure of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells

Abstract

被存储在非易失性存储器单元的电荷存储元件上的表观电荷的移动可能出现,因为基于被存储在相邻电荷存储元件中的电荷的电场的耦合。为了补偿这种耦合,对于给定存储器单元的编程处理可以考虑一个或多个相邻存储器单元的目标编程状态。在每个编程脉冲和编程单元的标准验证电平依赖于目标状态之后验证编程的量。验证电平是可由其目标状态确定的、依赖于来自相邻单元的干扰量的更低的偏移。优选地通过偏置相邻字线而不实际偏移标准验证电平,来虚拟地偏移验证电平。对于软编程擦除单元,考虑在两个相邻字线上的邻居单元。

Description

用于在编程期间补偿邻居单元的干扰电荷的非易失性存储器和方法
技术领域
本发明涉及用于非易失性存储器的技术。 
背景技术
半导体存储器越来越普及地用于各种电子设备中。。例如,非易失性半导体存储器被用在蜂窝电话、数码相机、个人数字助理、移动计算设备、非移动计算机设备和其它设备中。电可擦可编程只读存储器(EEPROM)和闪存位列最流行的非易失性半导体存储器中。 
EEPROM和闪存都利用了被置于半导体衬底中的沟道区之上并且与沟道区隔离的浮置栅极。浮置栅极被置于源极和漏极区之间。控制栅极被提供在浮置栅极上并与浮置栅极隔离。晶体管的阈值电压由在浮置栅极上保持的电荷量来控制。即,在晶体管导通前必须施加到控制栅极以允许其源极和漏极之间导电的最小电压量由浮置栅极上的电荷水平来控制。 
当对EEPROM或闪存器件例如NAND闪存器件编程时,通常编程电压被施加到控制栅极,且位线接地。来自沟道的电子被注入浮置栅极。当电子在浮置栅极中累积时,浮置栅极变为充负电,且存储器单元的阈值电压被升高使得存储器单元处于编程状态。更多关于编程的信息能够在题为“SourceSide Self-Boosting Technique For Non-Volatile Memory”的美国专利6859397以及题为“Detecting Over Programmed Memory”的美国专利6917545中找到,两者通过引用其全部被合并于此。 
一些EEPROM和闪存器件具有被用于存储两种范围的电荷的浮置栅极,因此,可以在两种状态之间(擦除状态和编程状态)编程/擦除存储器单元。这样的闪存器件有时被称为二进制闪存器件。 
多状态闪存器件通过标识由禁止(forbidden)范围所分开的多个不同的允许/有效的编程的阈值电压范围来实现。每个不同的阈值电压范围对应于在存储器器件中所编码的一组数据比特的预定义的值。 
因为基于相邻浮置栅极中所存储电荷的电场的耦合,可能发生在浮置栅 极上所存储的表观电荷的移动。在美国专利5867429中描述了这种浮置栅极与浮置栅极耦合现象,通过引用将该专利完全合并于此。目标浮置栅极的相邻浮置栅极的例子包括被连接至相同字线和被连接至相邻位线的浮置栅极。 
浮置栅极与浮置栅极耦合的效应极大地关系到多状态器件,因为在多状态器件中,所允许的阈值电压范围和禁止范围比二进制器件中的窄。因此,浮置栅极与浮置栅极耦合可能导致存储器单元从允许的阈值电压范围移动至禁止范围。 
浮置栅极与浮置栅极的耦合可能在不同的时间被编程了的相邻存储器单元的组之间发生。例如,第一存储器单元被编程以向其浮置栅极增加对应于一组数据的电荷的电平。随后,一个或多个相邻存储器单元被编程以向它们的浮置栅极增加对应于第二组数据的电荷的电平。在该一个或多个相邻存储器单元被编程后,从第一存储器单元读出的电荷电平显现为与所编程的不同,这是由于正被耦合至第一存储器单元的相邻存储器单元上的电荷的效应。来自相邻存储器单元的耦合可能将正被读取的表观电荷电平移动足以导致所存储数据的错误读取的量。 
浮置栅极与浮置栅极的耦合也可能发生在已经被同时编程的相邻存储器单元组之间。例如,两个相邻的多状态存储器单元可以被编程至不同的目标电平,以便第一存储器单元被编程至对应于较低阀值电压的状态并且第二存储器被编程至对应于较高阀值电压的状态。被编程至对应于较低阀值电压的状态的存储器单元可能达到该状态,并在第二存储器单元达到对应于较高阀值电压的状态之前被禁止(lock out from)进一步编程。第二存储器单元达到对应于较高阀值电压的状态后,其将与第一存储器单元耦合,并且导致第一存储器单元具有比所编程的更高的表观阀值电压。 
随着存储器单元继续在尺寸上缩小,由于短沟道效应、更大的氧化物厚度/耦合率变化以及更多的沟道掺杂波动,预期阀值电压的自然编程和擦除分布增加,由此减小相邻状态间的可用分隔。这种效应对于多状态存储器比仅使用两种状态的存储器(二进制存储器)显著得多。此外,字线之间的空间的减小和位线之间的空间的减小也将增加了相邻浮置栅极之间的耦合。 
因此,需要减少相邻浮置栅极之间的耦合效应。 
发明内容
依赖于目标存储器状态和相邻单元的预定状态两者的验证电平
根据本发明的通常方面,通过相应地调整验证电平,在将单元编程到给定目标状态期间补偿由于在相邻存储器单元上的电荷而造成的干扰(Yupin效应),以便将从该单元读取正确的目标特征,而不管随后被编程到相邻存储器单元中的干扰电荷。 
这是通过预先确定相邻存储器单元的存储器状态并调整作为正被编程的存储器单元的目标状态和相邻存储器单元的存储器状态的函数的验证电平来实现的。该机制还具有在单个遍中完成编程的优点。 
被施加到当前字线WLn的预定偏移验证电平
在一个实施例中,通过用被施加到与要被编程验证的存储器单元相关联的字线的预定偏移验证电压来感测,来进行验证。例如,参考图33,如果存储器单元1460正被编程验证,则向WLn施加预定验证电压电平。 
通过调整作为目标状态和在编程期间的相邻存储器单元的预定目标存储器状态的函数的验证电平,基本上在一个编程遍中补偿由于在相邻单元上的现有或预期的电荷而造成的Yupin效应。实际上,该编程可以优选地使用多于一个阶段(例如,粗糙/精细阶段)来增加性能,但是不需要在完全不同的施加进行两个分离的遍以便减轻Yupin效应。单个遍编程将允许最大的编程性能和从字线到字线的更简单的编程顺序。 
通过偏置(bias)相邻字线来虚拟偏移验证电平
根据本发明的另一方面,通过相应地偏置相邻字线来虚拟地实时验证电平的调整,以便当用调整的验证电平来编程验证时,将从该单元读取正确的目标状态,而不管随后被编程到相邻存储器单元中的干扰电荷。这具有避免使用对正被编程的单元的验证电平的真实偏移的优点,从而避免可能使得验证电平移动得太低而当验证最低存储器状态时需要负电压感测的问题。 
补偿由于在擦除存储器状态的相邻单元中的电荷而造成的干扰
根据本发明的另一方面,擦除存储器单元优选地在它们已经被擦除之后被“软编程”。“软编程”指的是将擦除单元编程到阈值电平相对于用于分界擦除和编程状态的预定阈值的预定范围。这通过相对于预定阈值而交替地编程和验证擦除单元来实现。通过相应地调整验证电平,在软编程期间补偿由于在相邻存储器单元上的电荷而造成的干扰,以便将从该单元读取正确的目标状态,而不管随后被编程到相邻存储器单元中的干扰电荷。 
这通过预定确定包括在正被编程的单元的字线两侧上的相邻字线上的那些的相邻存储器单元的存储器状态、并通过把分界电平降低一个偏移量来调整验证电平来实现,该偏移量是相邻存储器单元的存储器状态的函数。 
在优选实施例中,通过偏置一个或多个相邻字线来虚拟地实现对验证电平的偏移。这对验证擦除状态是特别有优势的,因为不需要将已经很低的验证电压电平偏移得更低。 
附图说明
图1是NAND串的俯视图。 
图2是NAND串的等效电路图。 
图3是NAND串的剖面图。 
图4是NAND闪存单元阵列的一部分的框图。 
图5是非易失性存储器系统的框图。 
图6是非易失性存储器系统的框图。 
图7是存储器阵列的框图。 
图8是描述感测块的一个实施例的框图。 
图9是感测模块的一个实施例的示意图。 
图10是用于感测模块的一个实施例的时序图。 
图11是描述用于对非易失性存储器进行编程的处理的一个实施例的流程图。 
图12是被施加到非易失性存储器单元的控制栅极的示例波形。 
图13描述了示例的一组阈值电压分布。 
图14描述了示例的一组阈值电压分布。 
图15是描述当读取数据时进行的处理的一个实施例的流程图。 
图16是描述当读取数据时进行的处理的一个实施例的流程图。 
图17是描述用于感测来自相邻位线的数据的处理的一个实施例的流程图。 
图18是描述用于感测来自相邻位线的数据的处理的一个实施例的时序图。 
图19是描述读取处理的一个实施例的流程图。 
图20描述了用于编程状态的阈值电压的分布。 
图21是描述编程处理的一个实施例的图。 
图22是描述编程处理的一个实施例的图。 
图23是描述编程处理的一个实施例的流程图。 
图24是描述用于验证的处理的一个实施例的流程图。 
图25是描述用于读取数据的处理的一个实施例的流程图。 
图26是描述用于读取数据的一个实施例的时序图。 
图27是描述配置和使用存储器系统的处理的一个实施例的流程图。 
图28是描述用于配置存储器系统的处理的一个实施例的流程图。 
图29是描述用于配置存储器系统的处理的一个实施例的流程图。 
图30是描述用于配置存储器系统的处理的一个实施例的流程图。 
图31是描述用于配置存储器系统的处理的一个实施例的流程图。 
图32是图示使用数据依赖型验证电平补偿在编程期间的Yupin效应的方法的流程图。 
图33图示了适用于例示本发明的存储器阵列的一部分。 
图34图示了在编程期间调整在WLn上的验证电平来补偿由于相邻电荷的干扰。 
图35是图示图32所示的验证步骤的一个实施例的流程图,其中仅向当前字线施加一遍数据依赖型验证电平。 
图36A图示了支持在四个不同的集群中的阈值窗中分布的四个存储器状态的存储器单元的典型数量(population)的例子。 
图36B图示了高度编程的(highly programmed)相邻单元对当前正被感测的单元的编程阈值电平的影响。 
图37A图示了在当前正被感测的单元上的来自不同邻居的Yupin效应的分布。 
图37B图示了移动用于多遍编程中的第一遍的验证电平以减少Yupin效应。 
图38示出了根据优选实施例的、被验证的字线上的正常验证电平和用于对正常验证电平实施虚拟偏移的偏置相邻字线的组合。 
图39是图示图32所示的验证步骤的另一优选实施例的流程图,在该验证步骤中,对当前字线和相邻字线两者施加一遍数据依赖型验证电平。 
图40图示了具有2位存储器单元且其页以最佳顺序被编程以最小化在相 邻字线上的存储器单元之间的Yupin效应的存储器的例子。 
图41图示了与图5所示的存储器器件通信的主机。 
图42图示了获得下一字线的页数据的另一技术。 
图43图示了具有处于擦除状态中的全体单元的存储器以及它们可能如何被Yupin效应影响。 
图44图示了在用被调整以校正来自所有相邻的邻居的干扰的验证电平来进行软编程之后的擦除单元的分布的效果。 
图45图示了根据一个优选实施例、将相邻字线偏压以实施两侧校正。 
图46是建立具有阈值电平相对于预定阈值电平的很精细的分布的一组存储器单元的流程图。 
具体实施方式
适用于实现本发明的存储器系统的一个例子使用NAND闪存结构,其包括在两个选择栅极之间串联地排列多个晶体管。串联的晶体管和选择栅极被称为NAND串。图1是示出一个NAND串的俯视图。图2是其等效电路。图1和2中描述的NAND串包括在第一选择栅极120和第二选择栅极122之间串联且夹着的四个晶体管100、102、104和106。选择栅极120选通(gate)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每个是存储器单元。在其他实施例中,存储器单元可以包括多个晶体管,或可以与图1和2所示的不同。选择栅极120连接到选择线SGD。选择栅极122连接到选择线SGS。 
图3提供了上述NAND串的剖面图。如图3所示,在p阱区域140中形成NAND串的晶体管。每个晶体管包括由控制栅极(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串的公共源极线。 
注意,虽然图1-3示出了在NAND串中的四个存储器单元,但是四个晶体管的使用仅作为例子提供。在此描述的技术使用的NAND串可以具有少于四个存储器单元或多于四个存储器单元。例如,一些NAND串将包括8个存储器单元、16个存储器单元、32个存储器单元、64个存储器单元等。在此的讨论不局限于NAND串中的任何具体数量的存储器单元。 
每个存储器单元可以存储以模拟或数字形式呈现的数据。当存储一位数字数据时,存储器单元的可能的阈值电压的范围被划分为两个范围,其被分配了逻辑数据“1”和“0”。在NAND型闪存的一个例子中,在擦除该存储器单元之后电压阈值是负的,且被定义为逻辑“1”。在编程操作之后阈值电压是正的,且被定义为逻辑“0”。当阈值电压是负的且通过向控制栅极施加0伏特来试图读时,存储器单元将导通,以指示正存储逻辑1。当阈值电压是正的且通过向控制栅极施加0伏特来试图读操作时,存储器单元将不导通,这指示存储逻辑0。存储一位数字数据的存储器单元被称为二进制存储器单元。 
存储器单元还可以存储多位数字数据。这种存储器单元被称为多状态存储器单元。用于多状态存储器单元的阈值电压窗被划分为状态的数量。例如,如果使用四个状态,将存在被分配给数据值“11”、“10”、“01”和“00”的四个阈值电压范围。在NAND型存储器的一个例子中,在擦除操作之后的阈 值电压是负的,且被定义为“11”。对于状态“10”、“01”和“00”使用正的阈值电压。 
在以下美国专利/专利申请中了NAND型闪存及其操作的相关例子,其全部通过引用合并于此:美国专利号5570315、美国专利号5774397、美国专利号6046935、美国专利号5386422、美国专利号6456528和美国专利申请序列号09/893277(公开号US2003/0002348)。除了NAND闪存,本发明还可以使用其他类型的非易失性存储器。 
闪速EEPROM系统中有用的另一类存储器单元利用非导电的介电材料替代导电的浮置栅极来以非易失性的方式存储电荷。这种单元在Chan等人的文章中进行了描述:“A True Single-Transistor Oxide-Nitride-Oxide EEPROMDevice”,IEEE Electron Device Letters,Vol.EDL-8,No.3,1987年3月,pp.93-95。由二氧化硅、氮化硅和氧化硅(“ONO”)形成的三层电介质被夹在导电控制栅极和存储器单元沟道之上的半导电衬底的表面之间。通过将电子从单元沟道注入氮化物来编程该单元,在氮化物中电子被捕获(trap)并被存储在有限区域(limited region)中。然后,这种存储的电荷以可检测的方式改变该单元的沟道的一部分的阈值电压。通过将热空穴注入氮化物来擦除该单元。还请参加Nozaki等人的“A 1-Mb EEPROM with MONOS Memory Cell forSemiconductor Disk Application”,IEEE Journal of Solid-State Circuits,Vol.26,No.4,1991年四月,pp.497-501,其描述了以分割栅极(split-gate)配置的类似单元,其中,掺杂的多晶硅栅极在存储器单元沟道的一部分上延伸以形成分离的选择晶体管。通过引用将前两篇文献全部合并于此。在William D.Brown和Joe E.Brewer编辑的“Nonvolatile Semiconductor Memory Technology”——其也通过引用合并于此——IEEE Press,1998的1.2部分中提到的编程技术也在该部分中被描述为可应用于介电电荷捕获设备。本发明也可以使用在该段中描述的存储器单元。因此,在此描述的技术也适用于在不同的存储器单元的介电区域之间的耦合。 
在每个单元中存储两位的另一方法下面的文献中进行了描述:Eitan等人的“NROM:A Novel Localized Trapping,2-Bit Nonvolatile Memory Cell”,IEEEElectron,Device Letters,vol.21,no.11,2000年11月,pp.543-545。ONO介电层跨越在源极和漏极扩散之间的沟道而延伸。用于一个数据位的电荷位于相邻于该漏极的介电层中,而用于另一数据位的电荷位于相邻于该源极的介电 层中。通过分别读取在电介质内的空间上分离的电荷存储区域的二进制状态来获得多状态数据存储。本发明还可以使用在该段中描述的存储器单元。 
图4图示了诸如图1-3所示的NAND单元的阵列的例子。沿着每列,位线206被耦合于NAND串150的漏极选择栅极的漏极端126。沿着NAND串的每行,源极线204可以连接NAND串的源极选择栅极的所有源极端128。在美国专利号5570315、5774397、6046935中找到作为存储器系统的部分的NAND架构阵列及其操作的例子。 
存储器单元的阵列被划分为大量存储器单元块。如对闪速EEPROM系统共同的,该块是擦除的单位。也就是说,每个块包含一起擦除的最小数量的存储器单元。每个块被典型地划分为多个页。页是编程的单位。在一个实施例中,各个页可以被划分为段(segment),这些段可以包含作为基本编程操作的一次写入的最小数量的单元。一页可以存储一个或多个扇区。扇区包括用户数据和开销数据(overhead data)。开销数据典型地包括从该扇区的用户数据计算的纠错码(EEC)。控制器(以下描述)的一部分当数据被编程到阵列中时计算ECC,且当数据从阵列读出时检查它。或者,ECC和/或其他开销数据被存储在与它们相关的用户数据不同的页、或不同的块中。一个扇区的用户数据典型地是512字节,对应于在磁盘驱动中一个扇区的大小。开销数据典型地是另外的16-20字节。大量页例如从8页到32、64、128或更多页形成一个块。 
图5图示了根据本发明的实施例的、具有用于并行读取和编程一页存储器单元的读/写电路的存储器器件296。存储器器件296可以包括一个或多个存储器晶片(die)298。存储器晶片298包括二维存储器单元阵列300、控制电路310和读/写电路365。在一些实施例中,存储器单元的阵列可以是三维的。通过各种控制线、诸如位线、字线、源极线和用于控制该存储器阵列的其他线来控制和访问存储器单元。例如,存储器阵列300可经由行解码器330由字线且经由列解码器360由位线来寻址。读/写电路365包括多个感测块400,且允许并行读取或编程一页存储器单元。典型地,控制器350与一个或多个存储器晶片298被包括在相同的存储器器件296(例如,可移除存储卡)中。命令和数据经由线320在主机和控制器350之间移动,且经由线318在控制器和一个或多个存储器晶片298之间移动。 
控制电路310与读/写电路365合作以对存储器阵列300进行存储器操作。 控制电路310包括状态机312、芯片上地址(on-chip)解码器314和电源控制模块316。状态机312提供存储器操作的芯片级控制。芯片上地址解码器314提供由主机或存储器控制器使用的与由解码器330和360使用的硬件地址之间的地址接口。电源控制模块316控制在存储器操作期间被供应给字线和位线的功率和电压。 
在一些实施方式中,可以组合图5的一些组件。在各种设计中,除了存储器单元阵列300以外的图5的一个或多个组件(单独或组合地)可以被认为是管理电路。例如,管理电路可以包括控制电路310、状态机312、解码器314/360、电源控制模块316、感测块400、读/写电路365、控制器350等中的任一个或组合。 
图6图示了图5所示的存储器器件296的另一布置。以对称形式,在存储器阵列300的相对侧上实现由各种外围电路对存储器阵列300的访问,以便在每侧上的访问线和电路的密度减少一半。因此,行解码器被分裂为行解码器330A和330B,且列解码器被分裂为列解码器360A和360B。类似地,读/写电路被分裂为从阵列300的底部连接位线的读/写电路365A和从阵列300的顶部连接位线的读/写电路365B。以此方式,读/写模块的密度基本上减少一半。图6的器件还可以包括控制器,如上面针对图5的器件所述那样。 
参考图7,描述存储器单元阵列300的示例结构。作为一个例子,描述了被分区为1024个块的NAND闪速EEPROM。每个块中存储的数据可以同时被擦除。在一个实施例中,块是同时被擦除的存储器单元的最小单位。在每个块中,在该例子中,存在对应于位线BL0、BL1……BL8511的8512列。在一个实施例中,在读取和编程操作期间,可以同时选择块的所有位线。沿着公共字线并连接到任意位线的存储器单元可以同时被编程。 
在另一实施例中,位线被划分为偶数位线和奇数位线。在奇数/偶数位线架构中,一次(at one time)编程沿着公共字线并被连接到奇数位线的存储器单元,而另一次编程沿着公共字线并被连接到奇数位线的存储器单元。 
图7示出了串联连接的四个存储器单元以形成NAND串。虽然示出了在每个NAND串中包括四个单元,但是可以使用多于或少于四个(例如16、32或另一数)的单元。NAND串的一端经由漏极选择栅极(连接到选择栅极漏极线SGD)被连接到对应的位线,且另一端经由源极选择栅极(连接到选择栅极源极线SGS)被连接到c-源极。 
图8是个体感测块400的方块图,个体感测块400被划分为称为感测模块的核心部分380和公共部分390。在一个实施例中,将存在用于每个位线的分离的感测模块380和用于一组多个感测模块380的一个公共部分390。在一个例子中,感测块将包括一个公共部分390和八个感测模块380。在一组中的感测模块的每个将经由数据线372与相关的公共部分通信。对于更多细节,请参考在12/29/04提交的美国专利申请11/026536,“Non-VolatileMemory & Method with Shared Processing for an Aggregate of Sense Amplifiers”,通过引用将其全部合并于此。 
感测模块380包括确定在连接的位线中的传导电流在预定阈值水平之上还是之下的感测电路370。感测模块380还包括位线锁存器382,用于在连接的位线上设置电压状况。例如,在位线锁存器382中锁存的预定状态将导致所连接的位线被拉到指定编程禁止的状态(例如,Vdd)。 
公共部分390包括处理器392、一组数据锁存器394和耦接在该组数据锁存器394和数据总线320之间的I/O接口396。处理器392进行计算。例如,其一个功能是确定在感测的存储器单元中存储的数据,并将所确定的数据存储到该组数据锁存器中。该组数据锁存器394用于存储在读操作期间由处理器392确定的数据位。其还用于在编程操作期间存储从数据总线320输入的数据位。所输入的数据位表示要被编程到存储器中的写数据。I/O接口396提供在数据锁存器394和数据总线320之间的接口。 
在读或感测期间,该系统的操作在状态机312的控制之下,该状态机312控制向所寻址的单元供应不同的控制栅极电压。随着其步经(step through)与由该存储器支持的各种存储器状态对应的各种预定控制栅极电压,感测模块380可以触发于(trip at)这些电压之一,且将经由总线372从感测模块380向处理器392提供输出。此时,处理器392通过考虑感测模块的触发(tripping)事件和经由输入线393来自状态机的关于施加的控制栅极电压的信息,来确定得到的存储器状态。然后,其计算对于该存储器状态的二进制编码,并将得到的数据位存储到数据锁存器394中。在核心部分的另一实施例中,位线锁存器382用于双重用途,既作为用于锁存感测模块380的输出的锁存器也作为上述位线锁存器。 
可预想到,一些实施方式将包括多个处理器392。在一个实施例中,每个处理器392将包括输出线(图9中未示出),以便各个输出线被一起线或 (wired-OR)。在一些实施例中,输出线在被连接到线或线之前被反转。由于接收线或(wired-OR)的状态机可以确定正被编程的所有位何时到达期望的电平,该配置使能在编程验证处理期间快速确定何时完成编程处理。例如,当每个位都到达了其期望的电平时,对于该位的逻辑0将被发送到线或线(或,数据1被反转)。当所有位输出数据0(或反转的数据1)时,则状态机知道终止编程处理。因为每个处理器与八个感测模块通信,因此,状态机需要读取线或线八次,或向处理器392添加逻辑以积累相关位线的结果,以便状态机仅需要读取线或线一次。类似地,通过正确地选择逻辑电平,全局状态机可以检测第一位何时改变其状态,并相应地改变算法。 
在编程或验证期间,从数据总线320将要被编程的数据存储在该组数据锁存器394中。在状态机的控制下,编程操作包括向所寻址的存储器单元的控制栅极施加的一系列编程电压脉冲。每个编程脉冲之后是验证操作,来确定存储器单元是否已被编程到期望的状态。处理器392相对于期望的存储器状态来监视验证的存储器状态。当两者一致时,处理器222设置位线锁存器382,以便使得该位线被拉到指定编程禁止的状态。这禁止耦合到该位线的单元进一步被编程,即使在其控制栅极上出现编程脉冲也如此。在其他实施例中,该处理器初始地加载位线锁存器382,且感测电路在验证处理期间将其设置到禁止值。 
数据锁存器堆栈394包含对应于感测模块的数据锁存器的堆栈。在一个实施例中,每个感测模块380存在三个数据锁存器。在一些实施方式(但不要求)中,数据锁存器被实现为移位寄存器,以便在其中存储的并行数据被转换为用于数据总线320的串行数据,反之亦然。在优选实施例中,对应于m个存储器单元的读/写块的所有数据锁存器可以被链接到一起,以形成块移位寄存器,以便可以通过串行传送来输入或输出数据块。具体地,适配r个读/写模块的堆(bank),以便该组数据锁存器的每个将顺序地将数据移进或移出数据总线,就好像它们是用于整个读/写块的移位寄存器的一部分。 
可以在以下文献中找到关于非易失性存储器件的各种实施例的结构和/和操作的更多信息:(1)美国专利申请公开号2004/0057287,“Non-VolatileMemory And Method With Reduced Source Line Bias Errors”,2004年3月25日公布;(2)美国专利申请公开号2004/0109357,“Non-Volatile Memory Andmethod with Improved Sensing”,在2004年6月10日公布;(3)美国专利申 请号11/015199,题为“Improved Memory Sensing Circuit And Method For LowVoltage Operation”,发明人Raul-Adrian Cernea,在12/16/04提交;(4)美国专利申请11/099133,题为“Compensating for Coupling During Read Operationsof Non-Volatile Memory”,发明人Jian Chen,在2005年4月5日提交;以及(5)美国专利申请号11/321953,题为“Reference Sense Amplifier ForNon-Volatile Memory”,发明人Siu Lung Chan和Raul-Adrian Cernea,在2005年12月28日提交。通过引用将以上列出的所有五个专利文档全部合并于此。 
图9图示了感测模块380的例子;但是,还可以使用其他实施方式。感测模块380包括位线隔离晶体管512、位线下拉电路(晶体管522和550)、位线电压箝位晶体管612、读出总线传输门530、感测放大器600和位线锁存器382。位线隔离晶体管512的一侧被链接到位线BL和电容器510。位线隔离晶体管512的另一侧被链接到位线电压箝位晶体管612和位线下拉晶体管522。位线隔离晶体管512的栅极接收被标记为BLS的信号。位线电压箝位晶体管512的栅极接收被标记为BLC的信号。位线电压箝位晶体管512在节点SEN2处被连接到读出总线传输门530。读出总线传输门530被连接到读出总线532。位线电压箝位晶体管512在节点SEN2连接到感测放大器600。在图9的实施例中,感测放大器600包括晶体管613、634、641、642、643、654、654、和658以及电容器Csa。位线锁存器382包括晶体管661、662、663、664、666和668。 
通常,沿着字线的存储器单元并行地被操作。因此,对应数量的感测模块并行地操作。在一个实施例中,控制器向并行操作的感测模块提供控制和定时信号。在一些实施例中,沿着字线的数据被划分为多页,且一次一页地读或编程数据,或一次多页地读或编程数据。 
当位线隔离晶体管512由信号BLS使能时,感测模块380可连接到存储器单元的位线(例如,位线BL)。感测模块380通过感测放大器600来感测存储器单元的传导电流,并锁存作为在感测节点SEN2的数字电压电平的读取结果,并经由栅极530向读出总线532输出它。 
感测放大器600包括第二电压箝位器(晶体管612和634)、预充电电路(晶体管541、642和643)和区分器(discriminator)或比较电路(晶体管654、656和658;以及电容器Csa)。在一个实施例中,参考电压被施加到正被读取的存储器单元的控制栅极。如果参考电压大于存储器单元的阈值电压, 则存储器单元将导通,且在其源极和漏极之间传导(conduct)电流。如果参考电压不大于存储器单元的阈值电压,则存储器单元将不导通,且将不在其源极和漏极之间传导电流。在许多实施方式中,导通/截止可以是连续的转变,从而存储器单元将响应于不同控制栅极电压而传导不同的电流。如果存储器单元导通且传导电流,传导的电流将导致在节点SEN上的电压降低,有效地在电容器Csa上充电或增加电压,电容器Csa的其他端处于Vdd。如果在节点SEN上的电压在预定感测时段期间放电到预定电平,则感测放大器600报告存储器单元响应于控制栅极电压而导通。 
感测模块380的一个特征是在感测期间向位线并入恒定电压供应。这优选地通过位线电压箝位晶体管612来实现,该位线电压箝位晶体管612的操作类似二极管箝位器,其中晶体管612与位线BL串联。其栅极被偏压到高于其阈值电压VT、等于期望位线电压VBL的恒定电压BLC。以此方式,其将位线与节点SEN隔离,且设置位线的恒定电压电平,诸如在编程-验证或读期间的期望的VBL=0.5到0.7伏特。通常,位线电压电平被设置到一个电平以便其足够低以避免长的预充电时间,但足够高以避免地噪声和其他因素。 
感测放大器600感测通过感测节点SEN的传导电流(conduction current),并确定传导电流高于还是低于预定值。感测放大器以数字形式向读出总线532输出感测的结果作为信号SEN2。 
还输出数字控制信号INV——其基本上可以是在SEN2处的信号的反转状态——以控制下拉电路。当感测的传导电流高于预定值时,INV将是HIGH,且SEN2将是LOW。由下拉电路来加强(reinforce)该结果。该下拉电路包括由控制信号INV控制的n-晶体管522和由控制信号GRS控制的另一n-晶体管550。GRS信号当为低时允许位线BL浮置,而不考虑INV信号的状态。在编程期间,GRS信号变为HIGH以允许位线BL被拉到地,且由INV控制。当需要位线BL浮置时,GRS信号变为LOW。注意,还可以使用感测模块、感测放大器和锁存器的其他设计。 
读/写电路365同时在一页存储器单元上操作。读/写电路365中的每个感测模块380经由位线被耦合到对应的单元。传导电流从感测模块通过位线流到存储器单元的漏极中,且在经过源极线到地之前从源极流出。在集成电路芯片中,在存储器阵列中的单元的源极都被系到一起作为源极线的多个分支,该源极线连接到存储器芯片的某个外部接地焊垫(pad)(例如Vss焊垫)。即使 当使用金属箍(metal strapping)来减少源极线的阻抗时,在存储器单元的源极电极和接地焊垫之间仍保持有限阻抗R。典型地,接地回路电阻R是大约50欧姆。 
对于正在并行感测的存储器的整个页面,流过源极线的总电流是所有传导电流的总和。通常,每个存储器单元具有依赖于被编程到其电荷存储元件中的电荷量的传导电流。对于存储器单元的给定控制栅极电压,少的电荷将产生相当(comparatively)高的传导电流。当在存储器单元的源极电极和接地焊垫之间存在有限电阻时,在该阻抗两端的电压降由Vdrop=iTOTR给出。 
例如,如果4256个位线同时放电,每个具有1μA的电流,则源极线电压降将等于4000个线x1μA/线x50欧姆~0.2伏特。当感测存储器单元的阈值电压时,该源极线偏置将导致0.2伏特的感测误差。 
在一组实施例中,一种用于减少源极线偏置的方法通过具有用于多遍(multi-pass)感测的特征和技术的读/写电路来实现。每遍(each pass)有助于标识和关闭具有高于给定的分界(demarcation)电流值的传导电流的存储器单元。典型地,通过每个遍,给定的分界电流值逐渐收敛到用于传统单遍感测的断点(breakpoint)电流值。以此方式,在随后的遍中的感测将更少地受源极线偏置影响,这是因为已经关闭了较高的电流单元。 
例如,可以以两遍(j=0到1)实现多遍感测。在第一遍之后,具有高于断点的传导电流的那些存储器单元被标识并通过断开其传导电流来移除。断开其传导电流的优选方式是将其位线上的其漏极电压设置到地。在第二遍中,减少了来自源极线偏置的误差。还可设想多于两遍的感测。在源极线偏置不会导致误差的实施例中,可以使用一遍用于感测。 
图10(A)-10(K)描述了说明在读/验证操作期间的感测模块380的一个实施例的时序图。 
阶段(0):设置
感测模块380(见图9)经由使能信号BLS(图10(A))连接到对应的位线。用BLC(图10(B))来使能电压箝位(Voltage clamp)。用控制信号FLT(图10(C))来使能预充电晶体管642作为限流源。 
阶段(1):受控的预充电
由复位信号RST(图10(D))来初始化感测放大器600,该复位信号RST将经由晶体管658将信号INV(图10(H))拉到地。因此,在复位时, INV被设置为LOW(低)。同时,p晶体管663将互补信号LAT拉到Vdd或HIGH(高)(图10(H))。也就是说,LAT是INV的补(complement)。隔离晶体管634由信号LAT控制。也就是说,在复位之后,隔离晶体管634被使能以将感测节点SEN2连接到感测放大器的内部感测节点SEN。 
预充电晶体管642通过内部感测节点SEN和感测节点SEN2来对位线BL预充电达预定的时间段。这将使得该位线被置于用于感测其中的导电的最佳电压。预充电晶体管642由控制信号FLT(“FLOAT”)来控制。该位线将被上拉向位线电压箝位612设置的期望的位线电压。上拉的速率将依赖于在该位线中的传导电流。传导电流越小,上拉越快。 
先前描述了如果具有高于预定值的传导电流的那些存储器单元被断开(turn off)从而消除了它们对源极线偏置的作用,则由于源极线偏置而导致的感测误差被最小化。因此,源极侧晶体管642用于两个功能。一个是将该位线预充电到最佳感测电压。另一个是有助于标识具有D.C(直流)感测的高于预定值的传导电流的那些存储器单元,以便它们可以免于助推源极线偏置。 
D.C感测通过提供预充电电路来实现,该预充电电路行为如同用于向位线供应预定电流的电流源。控制p晶体管642的信号FLT是这样的,其“编程”预定电流来流动。作为例子,可以从参考电流被设为500nA的电流镜生成FLT信号。当p晶体管642形成电流镜的镜像腿(mirrored leg)时,其也将具有存于其中的相同的500nA。 
图10(I1)-10(I4)图示了分别与具有传导电流700nA、400nA、220nA、和40nA的存储器单元连接的四个示例位线上的电压。例如,当预充电电路(其包括晶体管642)是具有限值500nA的电流源时,具有超过500nA的传导电流的存储器单元将使得在该位线上的电荷漏得比其可能积累得快。从而,对于具有传导电流700nA的位线,其在内部感测节点SEN处的电压或信号将维持在0V附近(诸如0.1伏特,见图10(I1))。另一方面,如果存储器单元的传导电流低于500nA,则预充电电路(其包括晶体管642)将开始充电该位线,且其电压将开始朝箝位的位线电压(例如,由电压箝位612设置的0.5V)上升(见图10(I2)-10(I4))。相应地,内部感测节点SEN将维持在0V附近或被上拉到Vdd(图10(G))。通常,传导电流越小,则位线电压将越快充电到箝位的位线电压。因此,通过在控制的预充电阶段之后检查在位线上的电压,其能够标识连接的存储器单元具有高于还是低于预定水平的传导电 流。 
阶段(2):D.C.锁存&将高电流单元从后续的选通(strobe)排除
在受控的预充电阶段之后,最初的D.C.高电流感测阶段开始,其中由区分器电路感测节点SEN。该感测标识具有高于预定水平的传导电流的那些存储器单元。区分器电路包括串联的两个p晶体管654和656,其用作用于登记信号INV的节点的上拉器。P晶体管654由变为LOW的读选通信号STB来使能,且p晶体管656由变为LOW的在内部感测节点SEN处的信号使能。高电流存储器单元将具有接近0V或至少不能使得其位线被预充电得足够高以断开p晶体管656的信号SEN。例如,如果该弱上拉被限制于500nA的电流,则其将无法上拉具有700nA的传导电流的单元(图10(G1))。当STB选通LOW以锁存时,INV被上拉到Vdd。这将用INV HIGH和LAT LOW来设置锁存电路660(图10(H1))。 
当INV是HIGH且LAT是LOW时,隔离栅极630被禁用,感测节点SEN2与内部感测节点SEN阻隔。同时,该位线由下拉晶体管522下拉到地(图9&10(I1))。这将有效地断开在位线中的任何传导电流,使其免于助推源极线偏置。 
因此,在感测模块380的一个优选实施例中,使用限流源预充电电路。这提供了一种另外的或替换的方法(D.C.感测)来标识携带高电流的位线,且将其断开来最小化在随后的感测中的源极线偏置误差。 
在另一实施例中,不特别配置预充电电路来帮助标识高电流位线,而是优化其来在可用于存储器系统的最大电流的允许下,尽可能快地上拉和预充电位线。 
阶段(3):恢复/预充电
在感测先前没有被下拉的位线中的传导电流之前,通过变为LOW的信号FLT来激活预充电电路,来将内部感测节点SEN2预充电到Vdd(图10(C)和图10(I2)-10(I4)),且预充电由于在相邻位线上的电压的下降而导致可能部分向下耦合的位线。 
阶段(4):第一A.C.感测
在一个实施例中,通过确定在浮置的内部感测节点SEN处的电压降来进行A.C.(交流电或瞬时)感测。这通过使用耦合于内部感测节点SEN的电容器Csa并考虑传导电流充电其(减少在节点SEN上的电压)的速率的区分器 电路来实现。在集成电路环境中,典型地用晶体管来实现电容器Csa;但是,其他实施方式是可适用的。电容器Csa具有预定电容,例如30fF,其可以被选择用于最佳电流确定。可以通过适当地调整充电时段来设置典型地在100-1000nA范围内的分界电流值。 
区分器电路感测在内部感测节点SEN中的信号SEN。在每个感测之前,在内部感测节点SEN处的信号被预充电晶体管642上拉到Vdd。这将初始地设置跨越电容器Csa的电压为零。 
当感测放大器600准备感测时,预充电电路由变为HIGH的FLT禁用(图10(C))。通过对选通信号STB赋值(assert)来结束该第一感测时段T1。在感测时段期间,由导电的存储器单元引起的传导电流将充电该电容器。随着电容器Csa通过在位线中的传导电流的泄流(draining)动作而充电,在SEN处的电压将从Vdd下降。图10(G)(见曲线G2-G4)图示了与分别连接到具有传导电流400nA、220nA和40nA的存储器单元的剩余的三个示例位线相对应的SEN节点,该下降对具有更高传导电流的那些来说更快。 
阶段(5):第一A.C.锁存和把较高电流单元从随后的感测移除
在第一预定感测时段结束时,SEN节点将被降低到依赖于位线中的传导电流的某个电压(见图10G的曲线G2-G4)。作为例子,在该第一阶段中的分界电流被设置为300nA。电容器Csa、感测时段T1和p晶体管656的阈值电压是如此以至于与高于分界电流(例如300nA)的传导电流对应的在SEN处的信号将降得足够低以便导通晶体管656。当锁存信号STB选通LOW时,输出信号INV将被拉HIGH(高),且将由锁存器382锁存(图10(E)和图10(H)(曲线H2))。另一方面,与低于分界电流的传导电流对应的信号SEN将产生不能导通晶体管656的信号SEN。在这种情况下,锁存器382将保持不变,在这种情况下,LAT保持HIGH(高)(图10(H3)和10(H4))。因此,可以看出,区分器电路有效地相对于由感测时段设置的参考电流而确定在位线中的传导电流的量值。 
感测放大器600还包括第二电压箝位晶体管612,其目的是维持晶体管612的漏极的电压足够高以便该位线电压箝位器610适当地运作。如先前描述的,位线电压箝位器610将位线电压箝位为预定值VBL,例如0.5V。这将需要将晶体管612的栅极电压BLC设置为VBL+VT(其中,VT是晶体管612的阈值电压),且需要被连接到感测节点501的漏极大于源极,即信号 SEN2>VBL。具体地,给定了电压箝位器的配置,SEN2应该不高于XX0-VT或BLX-VT中的较小者,且SEN应该不更低。在感测期间,隔离栅极630处于通过模式(pass-through mode)。但是,在感测期间,在内部感测节点SEN处的信号具有从Vdd降低的电压。第二电压箝位防止SEN降到低于XX0-VT或BLX-VT中较低的一个。这通过由信号BLX控制的n晶体管612来实现,其中BLX≥VBL+VT。因此,通过电压箝位的动作,在感测期间,位线电压VBL被保持恒定,例如~0.5V。 
电流确定的输出被锁存电路382锁存。该锁存电路由晶体管661、662、663、和664与晶体管666和晶体管668一起形成为设置/复位(Set/Reset)锁存器。P晶体管666被信号RST(RESET(复位))控制,且n晶体管668由信号STB控制。适用于低电压操作的上述感测放大器的变型在如下文献中找到:美国专利申请No.11/015199,题为“Improved Memory Sensing CircuitAnd Method For Low Voltage Operation”,发明人Raul-Adrian Cernea,在12/16/04提交,通过引用将其全部合并于此。 
通常,将存在由对应数量的多遍感测模块380操作的一页存储器单元。对于具有高于第一分界电流水平的传导电流的那些存储器单元,其LAT信号将被锁存为LOW(INV锁存的HIGH)。这又激活位线下拉电路520来将对应的位线拉到地,从而断开其电流。 
阶段(6):恢复/预充电
在对在先前还没有被下拉的位线中的传导电流进行下一次感测之前,由信号FLT激活预充电电路,来将内部感测节点631预充电到Vdd(图10(C)和图10(I3)和10(I4))。 
阶段(7):第二感测
当感测放大器600准备好感测时,通过变为HIGH的FLT来禁用预充电电路(图10(C))。通过给选通信号STB赋值(assertion)来设置第二感测时段T2。在感测时段期间,传导电流——如果有的话——将充电该电容器。随着电容器Csa正通过位线36中的传导电流的泄流动作而充电,在节点SEN处的信号将从Vdd降低。 
根据先前的例子,具有高于300nA的传导电流的存储器单元已经在先前的阶段中被标识和关闭(shut down)。图14(G)(曲线G3和G4)分别图示与分别连接到具有220nA和40bA的传导电流的存储器单元的两个示例位线对 应的SEN信号。 
阶段(8):用于读出的第二锁存
在第二预定感测时段T2的结束时,SEN将已被降低到依赖于在位线中的传导电流的某个电压(图10(G)(曲线G3和G4))。作为例子,在该第二阶段中的分界电流被设置为100nA。在这种情况下,具有传导电流220nA的存储器单元将使其INV被锁存为HIGH(图10(H)),且使其位线接下来被拉到地(图10(I3))。另一方面,具有传导电流40nA的存储器单元将不对被为HIGH的LAT预设的锁存器的状态产生影响。 
阶段(9):读出到总线
最后,在读出阶段中,在传输门530处的控制信号NCO允许将锁存的信号SEN2读出到读出总线532(图10(J)和10(K))。 
如可以从图10(I1)-10(I4)看出的,在每个感测时段期间,位线电压维持恒定。因此,从先前的讨论来看,消除了电容性的位线与位线的耦合。 
上述感测模块380是如下一个实施例:其中,用三遍来进行感测,实现前两遍以标识和关闭较高电流存储器单元。通过消除了较高电流对源极线偏置的贡献,最后遍能够更准确地感测具有较低范围传导电流的这些单元。 
在其他实施例中,通过D.C.和A.C.遍的不同组合来实现感测操作,一些使用仅两个或多个A.C.遍,或仅一遍。对于不同的遍,使用的分界电流值可以是每次相同,或逐渐收敛到在最后遍中使用的分界电流。另外,上述感测实施例仅是适当的感测模块的一个例子。还可以使用其他设计和技术来实现在此描述的发明。在此描述的本发明不需要或建议任何一个具体感测模块。 
图11是描述用于编程非易失性存储器的一个实施例的流程图。在一个实施方式中,在编程之前擦除存储器单元(以块或其他单位)。在一个实施例中,通过将p阱升高到擦除电压(例如20伏特)达足够的时间段并将所选块的字线接地,同时源极和位线浮置,来擦除存储器单元。由于电容性耦合,未选字线、位线、选择性和c源极也被升高到擦除电压的显著部分(fraction)。因此,向所选存储器单元的隧道氧化物层施加强电场,且随着典型地通过Fowler-Nordheim隧道机制将浮置栅极的电子射入到衬底侧,而擦除所选存储器单元的数据。随着电子从浮置栅极移动到p阱区域,所选单元的阈值电压更低。可以对整个存储器阵列、分离的块或另一单位的单元进行擦除。 
在图11的步骤700中,由控制器发出且由控制电路310接收“数据载入” 命令。在步骤702中,指定页地址的地址数据从控制器或主机被输入到解码器314。在步骤704中,用于被寻址的页的编程数据的页被输入到数据缓冲器用于编程。该数据被锁存在适当组的锁存器中。在步骤706中,由控制器向状态机312发出“编程”命令。 
由“编程”命令触发,使用被施加到适当字线的图12的步阶脉冲,将在步骤704中锁存的数据编程到由状态机312控制的所选存储器单元中。在步骤708中,编程电压Vpgm被初始化为开始脉冲(例如12V或其他值),且由状态机312维持的编程计数器PC被初始化到0。在步骤710中,第一Vpgm脉冲被施加到所选字线。如果逻辑“0”被存储在具体数据锁存器中,指示对应的存储器单元应该被编程,则对应的位线被接地。另一方面,如果逻辑“1”被存储在具体锁存器中,指示对应的存储器单元应该维持在其当前数据状态,则对应的位线被连接到Vdd以禁止编程。 
在步骤712中,验证所选存储器单元的状态以确定它们是否到达了其目标阈值电压。如果检测到所选单元的阈值电压达到了目标电平,则在对应的数据锁存器中存储的数据被改变为逻辑“1”。如果检测到阈值电压还没有到达适当的电平,则在对应的数据锁存器中存储的数据不改变。以此方式,具有在其对应的数据锁存器中存储的逻辑“1”的位线不需要被编程。当所有数据锁存器都正存储逻辑“1”时,状态机(经由上述配线或型机制)知道所有所选单元都被编程了。在步骤714中,检查所有数据锁存器是否都存储了逻辑“1”。如果是这样,则编程处理是完成且成功了,因为所有所选存储器单元都被编程和验证了。在步骤716中报告“PASS(通过)”状态。 
如果在步骤714中确定不是所有数据锁存器正存储逻辑“1”,则编程处理继续。在步骤718中,针对编程极限值PCMAX来检查编程计数器PC。编程极限值的一个例子是20;但是,还可以使用其他数。如果编程计数器PC不少于20,则编程处理失败了,且在步骤720中报告“FAIL(失败)”的状态。在一些实施例中,在达到了最大数量的循环之后,系统检查是否还没有完成编程的单元少于预定量。如果还没有完成编程的单元少于预定量,该编程处理也被视为通过(pass)。如果编程计数器PC小于20,则在步骤722中按步长增加Vpgm电平,且递增编程计数器PC。在步骤722之后,该处理循环回到步骤710来施加下一Vpgm脉冲。 
图12示出了被施加到被选择用于编程的字线的一系列编程脉冲。在编程 脉冲之间的是一组验证脉冲(未示出)。在一些实施例中,可能存在针对数据正被编程到的每个状态的验证脉冲。在其他实施例中,可能存在更多或更少的验证脉冲。 
在一个实施例中,数据被编程到沿着公共字线的存储器单元。因此,在施加图12的编程脉冲之前,选择字线之一用于编程。该字线被称为所选字线。块(block)的剩余字线被称为未选字线。 
在成功的编程(通过验证)处理结束时,存储器单元的阈值电压应该在适当地落入被编程的存储器单元的阈值电压的一个或多个分布内,或在被擦除的存储器单元的阈值电压的分布内。图13图示了当每个存储器单元存储两位数据时存储器单元阵列的示例阈值电压分布。图13示出了被擦除的存储器单元的第一阈值电压分布E。还描述了被编程的存储器单元的三个阈值电压分布,A、B和C。在一个实施例中,在E分布中的阈值电压是负的,在A、B和C分布中的阈值电压是正的。 
图13的每个不同的阈值电压范围对应于该组数据位的预定值。在被编程到存储器单元中的数据和该单元的阈值电压电平之间的具体关系依赖于对这些单元采用的数据编码机制。例如,美国专利No.6222762和在2003年6月13日提交的美国专利申请公开No.2004/0255090,“Tracking Cells For AMemory System”,两者都全部被引用附于此,其描述了用于多状态闪存单元的各种数据编码机制。在一个实施例中,使用格雷(Gray)码分配将数据值分配给阈值电压范围,以便如果浮置栅极的阈值电压错误地偏移到其相邻的物理状态,则仅将影响一个位。一个例子将“11”分配给阈值电压范围E(状态E),将“10”分配给阈值电压范围A(状态A),将“00”分配给阈值电压范围B(状态B),且将“01”分配到阈值电压范围C(状态C)。但是,在另一实施例中,不使用格雷码。虽然图13示出了四个状态,但还可以关于包括多于或少于四个状态的其他多状态结构来使用本发明。例如,一些非易失性存储元件可以利用八个(七个编程的和一个擦除的)或更多状态。 
图13还示出了三个读参考电压,Vra、Vrb和Vrc,用于从存储器单元读数据。通过测试给定的存储器单元的阈值电压高于还是低于Vra、Vrb和Vrc,该系统可以确定该存储器单元处于什么状态。 
图13还示出了三个验证参考电压,Vva、Vvb和Vvc。当将存储器单元编程到状态A时,该系统将测试那些存储器单元是否具有大于或等于Vva的 阈值电压。当将存储器单元编程到状态B时,该系统将测试这些存储器单元是否具有大于或等于Vvb的阈值电压。当将存储器单元编程到状态C时,该系统将确定这些存储器单元是否具有大于或等于Vvc的其阈值电压。 
在一个实施例中,已知为全序编程(full sequence programming),存储器单元可以从擦除状态E直接编程到编程状态A、B或C中的任何一个。例如,可以首先擦除要被编程的存储器单元群体,以便在该群体中的所有存储器单元都处于擦除状态E。当一些存储器单元正从状态E编程到状态A时,其他存储器单元正从状态E编程到状态B,和/或从状态E到状态C。 
图14图示了编程存储用于两个不同的页——较低页和较高页——的数据的多状态存储器单元的两遍技术的例子。描述了四个状态:状态E(11)、状态A(10)、状态B(00)和状态C(01)。对于状态E,两页都存储“1”。对于状态A,较低页存储“0”,且较高页存储“1”。对于状态B,两页都存储“0”。对于状态C,较低页存储“1”,且较高页存储“0”。注意,虽然具体位图案(pattern)已经被分配给每个状态,但是还可以分配不同的位图案。 
在第一遍编程中,根据要被编程到较低逻辑页中的位来设置该单元的阈值电压电平。如果该位是逻辑“1”,则不改变阈值电压,这是因为它由于早前被擦除而处于适当的状态。但是,如果要被编程的位是逻辑“0”,则该单元的阈值电平被增加到状态A,如箭头730所示。 
在第二遍编程中,根据要被编程到较高逻辑页中的位来设置该单元的阈值电压电平。如果较高逻辑页位要存储逻辑“1”,则不发生编程,这是因为依赖于较低页位的编程,该单元处于状态E或A之一中,其两者都携带较高页位“1”。如果较高页位要为逻辑“0”,则偏移该阈值电压。如果第一遍导致该单元维持在擦除状态E中,则在第二阶段中,该单元被编程,以便该阈值电压被增加到状态C中,如箭头734所示。如果该单元由于第一编程遍已经被编程到状态A中,则在第二遍中进一步编程该存储器单元,以便阈值电压被增加到状态B中,如箭头732所示。第二遍的结果是要将该单元编程到被指定为存储较高页的逻辑“0”的状态中,而不改变用于较低页的数据。 
在一个实施例中,如果写入足够的数据以填满字线,则可以设立系统来进行全序写。如果写入的数据不够,则编程处理可以用接收的数据来编程较低页编程。当接收到后续数据时,该系统将编程较高页。在另一实施例中,该系统可以以编程较低页的模式开始写,并如果随后接收了足够的数据来填 满整个(或大部分)字线的存储器单元,则转换为全序编程。这种实施例的更多细节在如下美国专利申请中公开:该美国专利申请,题为“PipelinedProgramming of Non-Volatile Memories Using Early Data”,序列号11-013125,在12/14/04提交,发明人Sergey Anatolievich Gorobets和Yan Li,其全部被引用附于此。 
图15是描述用于从非易失性存储器单元读数据的一个实施例的流程图。上述关于感测模块的讨论讨论了如何从具体位线读取数据。图15提供了在系统级别上的读处理。在步骤800中,从主机、控制器或另一实体接收读数据的请求。如上所述,由于基于在相邻浮置栅极(或其他相邻电荷存储元件)中存储的电荷的电场的耦合,可能发生在非易失性存储器单元的浮置栅极(或其他电荷存储元件)上存储的表观电荷中的偏移。为了补偿该耦合,对于给定存储器单元的读处理将考虑相邻存储器单元的编程状态。步骤802包括确定是否提供针对相邻浮置栅极之间的耦合的这种补偿。在一些实施例中,步骤802还包括确定使用多少补偿。在步骤804中,响应于读取数据的请求,对具体页或其他单位的数据进行读处理。步骤804的读处理可以包括基于步骤802的针对相邻浮置栅极之间耦合的适当补偿。在一个实施例中,在步骤804中读取的存储器单元被连接到公共字线,但连接到不同的位线。 
在一个实施例中,当编程一页的数据时,该系统还将建立纠错码(ECC),并写那些ECC以及该页数据。本领域公知ECC技术。使用的ECC处理可以包括本领域已知的任何适当的ECC处理。当从一页(或其他单位的数据)读取数据时,ECC将被用于确定在数据中是否存在任何差错(步骤806)。可以由控制器、状态机或在系统中其他位置进行ECC处理。如果在数据中不存在差错,则在步骤808中向用户报告该数据。如果在步骤806中发现差错,则确定该差错是否是可校正的(步骤810)。各种ECC方法有能力校正在一组数据中的预定数量的差错。如果ECC处理可以校正该数据,则该ECC处理被用于在步骤812中校正该数据,且在步骤814中向用户报告校正的数据。如果ECC处理不可校正该数据(步骤810),则在步骤820中向用户报告差错。在一些实施例中,步骤820还可以包括报告数据的全部或子集。如果已知数据的子集不具有差错,则可以报告该子集。 
图16是描述可能使用对在相邻浮置栅极之间的耦合的补偿的、用于从非易失性存储器单元读数据的另一实施例的流程图。图15的处理和图16的处 理之间的一个差异在于,只有在读处理期间存在差错时,图16的处理才使用补偿。 
在图16的步骤840中,从主机、控制器或另一实体接收读数据的请求。在步骤842中,响应于读数据的请求,对具体页或其他单位的数据进行读处理。步骤842的读处理不包括对在此描述的耦合的补偿。步骤844包括确定在数据中是否存在任何差错。如果在数据中不存在差错,则在步骤846中向用户报告数据。如果在步骤844中发现差错,在步骤850处确定该差错是可校正的。各种ECC方法有能力校正在一组数据中的预定数量的差错。如果ECC处理可以校正该数据,则使用ECC处理来在步骤852中校正该数据,且在步骤854中向用户报告校正的数据。如果不可由ECC处理校正数据(步骤850),则该系统将试图通过进行具有对相邻浮置栅极之间的耦合的补偿的读处理来恢复该数据。因此,在步骤860中,该系统确定是否使用补偿和/或使用多少补偿来处理(address)在相邻浮置栅极之间的耦合。在步骤862中,响应于读数据的请求,对具体页或其他单位的数据进行读处理。基于步骤860,步骤862的读处理试图通过使用对相邻浮置栅极之间耦合的适当补偿来恢复数据。 
与目标浮置栅极相邻的浮置栅极可以包括在同一位线但不同字线上的相邻浮置栅极、在同一字线但不同位线上的相邻浮置栅极、或从目标浮置栅极跨越(across)的浮置栅极,因为它们在相邻位线和相邻字线两者上。在一个实施例中,在此讨论的对耦合的补偿可以施加到上述组的相邻浮置栅极的任一上。在一些实施例中,在此讨论的对耦合的补偿施加到在同一字线但不同位线上的相邻浮置栅极。例如,由于从存储器单元364和366的耦合,存储器单元362可以具有改变的表观(apparent)阈值电压(见图7)。在如下美国专利申请中更详细地讨论由于同一位线但不同字线上的相邻浮置栅极而造成的对耦合的补偿:美国专利申请11/099049,“Read Operation For Non-VolatileStorage That Includes Compensation for Coupling”,在2005年4月5日提交,发明人Yan Li和Jian Chen,其全部被引用附于此。一些实施例提供对在同一字线但不同位线上的相邻浮置栅极之间和在同一位线但不同字线上的相邻浮置栅极之间的耦合的补偿。 
在相邻浮置栅极之间的耦合量依赖于编程相邻浮置栅极的定时(timing)。同时编程的两个相邻浮置栅极很有可能具有少量或没有耦合。最大量耦合很 有可能发生在下述两个相邻浮置栅极间,其中一个浮置栅极未被编程(例如,维持在擦除状态E中)而另一浮置栅极接下来被编程为最高(即最大(most))编程状态(例如,被编程到状态C-见图13)。因为在状态E和状态A之间存在大界限(margine),即使有耦合,读取在状态E中的数据也不怎么可能出现差错。耦合的第二最大量是在被编程到状态A的第一浮置栅极和被编程到状态C的稍后编程的浮置栅极之间。因此,在一个实施例中,将使用对耦合的补偿的时间仅是当存储器单元处于第一编程状态(例如状态A)中且其邻居处于一组状态(4状态,8状态或不同数量的状态)中的最高度编程状态(例如状态C)时。在其他实施例中,可以在相邻存储器单元处于不同状态、诸如状态B或另一状态时使用对耦合的补偿。在使用多于或少于四个状态的一些实施例中,可以在相邻存储器单元处于已经被发现导致耦合的状态中时使用对耦合的补偿。类似地,在对具体实施方式来说适当的情况下,可以在目标存储器单元处于不同于状态A的状态中时使用对耦合的补偿。 
如果可以使用某技术检测或获得相邻存储器单元的状态,则可以在下一读操作中确定和调整考虑中的存储器单元所需要的校正量。了解具体存储器单元的状态的一个方法是通过读操作。但是,在一个实施例中,在相邻位线的感测放大器之间不存在通信。即使在读操作之后,考虑中的存储器单元也将不知道其相邻存储器单元的状态。 
图17是流程图,描述基于存储器单元是否处于状态A中且一个或多个其邻居是否处于状态C中来确定是否应该使用补偿和应该使用多少补偿的一个实施例。存在至少两种情景。在一种情景中,正被读取的具体存储器单元处于状态A,且其邻居之一处于状态C中。在第二情景中,正被读取的具体存储器单元处于状态A中,且其邻居(不同位线)中的两个处于状态C中。图17的处理确定具体存储器单元(或具体位线)的任意邻居是否处于状态C中(或在一组7或多个状态种的最高度编程状态)。可以使用该处理来实现图15的步骤802和图16的步骤860。 
在图17的步骤900中,连接到所选字线的所有存储器单元(或子集)被读取以确定存储器单元是否处于状态C中。这通过使用读比较点Vrc来实现。具有大于Vrc的阈值电压的那些存储器单元被认为处于状态C中。具有小于Vrc的阈值电压的那些存储器单元不处于状态C中。在使用Vrc的读操作的结束时,每个感测放大器将锁存对应的存储器单元是否处于状态C中。必须 克服的一个障碍是:在一些实施方式中,感测放大器不能与相邻感测放大器通话。因此,看图7,位线BL2的感测放大器不能与感测放大器位线BL1或位线BL3通信。因此,BL2的感测放大器不知道在BL1和BL3上的相邻存储器单元是否处于状态C中。进行步骤902-910来指示相邻存储器单元是否处于状态C中。在步骤902处,连接到在步骤900中感测为状态C中的存储器单元的所有位线被充电到预定电压。在一个例子中,具有在状态C中的存储器单元的位线被充电到0.5伏特。回头看图9,这可以通过向晶体管612的栅极施加0.5伏特+(晶体管612的)Vth并将RST信号系(toggle)低以使得INV=0来实现。以INV=1来设置其他感测放大器,且因此,其他感测放大器的位线将不被充电。通过GRS=0,在位线上不存在活跃的下拉。当具有C数据的位线充电时,由于位线与位线的耦合,相邻位线将被耦合到那些位线。在一个实施方式中,这种耦合可以是总位线电容的40%。对于具有两个C数据邻居的位线,电容性耦合可以高达总位线电容的80%。例如,如果该位线具有一个具有C数据的邻居,其可以通过大约0.15伏特来耦合起来(couple-up)。如果该位线具有两个具有C数据的邻居,其可以由大约0.3伏特来耦合起来。 
在步骤904中,标识具有两个C数据邻居的那些位线。在一个实施例中,通过将BLC降低到0.2+(晶体管612的)Vth来实现步骤904。这将导致具有两个C邻居的位线使得其晶体管612截止,这是因为该晶体管612的漏极处是Vdd,且源极侧是0.3伏特。然后,SEN节点将不放电,感测放大器将锁存LAT=1。具有一个C邻居或没有C邻居的其他位线将使得晶体管612导电。由于该位线具有比电容器Csa高得多的电容,因此SEN节点将放电,且感测放大器将锁存LAT=0。SEN节点充电还是放电的结果将被存储在适当的数据锁存器394(步骤906)。在步骤906之后,复位感测放大器和位线,且然后在步骤908中再次对连接到在状态C中的存储器单元的那些位线充电,类似于步骤902。在步骤910中,通过施加BLC=0.15伏特+Vth(晶体管612)来感测被耦合到一个或多个C邻居的那些位线。该系统感测下述位线,这些位线有一个或多个邻居具有状态C中的存储器单元。在步骤912中,这些结果将被存储到锁存器394之一。对于存储了在步骤904中两个邻居处于状态C中且一个或多个邻居在步骤908中处于状态C中的指示的那些位线,认为该位线具有处于状态C中的两个或多个邻居。对于在步骤906中没有存储两 个或多个邻居处于状态C的指示、但存储了在步骤910中一个或多个邻居处于状态C的指示的那些位线,认为那些位线具有在状态C中的一个邻居。 
图18是图形地描述图17中的处理中进行的一些操作的时序图。时序图被划分为对应于步骤902、904和906的三个时间段。在步骤902期间,看到信号BLC被升高到0.5伏特加上晶体管612的阈值电压。对于与被连接到所选字线且处于状态C中的存储器单元耦合的所有位线都这样做。示出那些位线被升高到0.5伏特。则具有两个C邻居的位线被耦合到两个对应的相邻位线,从而位线被升高到0.3伏特。不具有C邻居的位线将停留在0伏特。在该时间框(timeframe)期间,信号GRS为低。然后,BLC被降低到0伏特,且然后被升高到0.2伏特加上晶体管612的阈值电压,在此时,感测这些位线(步骤904)。在两个状态C邻居旁边的那些位线将不对SEN节点放电(见线914)。不具有两个状态C邻居的那些位线将对SEN节点放电(见线916)。在适当的位线锁存器382中锁存数据之后,该数据将被传送到数据锁存器394。 
图19描述可以包括对具有一个或多个C邻居的存储器单元提供补偿的读处理的一个实施例。图19的处理对图15的步骤804和图16的步骤862的一个实施例提供的更多细节。另外,可以使用步骤940-950和964-972来实现图16的步骤842。可以对包含一个字线和所有位线的、或位线的子集的一页数据进行图19的处理。在图19的步骤940中,向与该页相关联的适当字线施加读参考电压Vra。这使得读参考电压Vra被施加到被连接到该字线的存储器单元的控制栅极。在步骤842中,与该页相关联的位线被感测,以确定所寻址的存储器单元基于向其控制栅极施加Vra而导电(conduct)还是不导电。导电的位线指示这些存储器单元导通;因此,那些存储器单元的阈值电压低于Vra(例如,在状态E中)。在步骤944中,对位线的感测的结果被存储在那些位线的适当锁存器中。 
在步骤946中,向与正被读取的页相关联的字线施加读参考电压Vrb。在步骤948中,如上述感测这些位线。在步骤950中,结果被存储在与该页中的下述存储器单元连接的位线的适当锁存器中,这些存储器单元不具有在状态C中的相邻存储器单元。 
该实施例试图校正在处于状态C中的存储器单元旁边的处于状态A中的数据。可以导致的差错是:存储器单元将具有增加了的表观阈值电压,从而 当其实际上处于状态A中时其显得在状态B中。在步骤952中,向与正被读取的页相关联的字线施加Vrb加上第一偏移。在线954中,如上所述地感测位线。在步骤956中,结果被存储在与该页中的下述存储器单元连接的位线的适当锁存器中,这些存储器单元具有一个在状态C中的相邻存储器单元。在步骤958中,向与正被读取的页相关联的字线施加Vrb加上第二偏移。在步骤960中,如上所述地感测那些位线。在步骤962中,结果被存储在与在该页中的下述存储器单元连接的那些位线的适当锁存器,所述存储器单元具有两个在状态C中的相邻存储器单元。 
在步骤964中,向与正被读取的页相关联的字线施加读参考电压Vrc。在步骤966中,如上所述地感测位线。在步骤968中,结果被存储在所有位线的适当锁存器中。在步骤970中,确定在该页(或其他单位的数据)中的每个存储器单元的数据值。例如,如果存储器单元在Vra导电,则存储器单元处于状态E。如果存储器单元在Vrb(或Vrb加上第一偏移或Vrb加上第二偏移)和Vrc处,但不在Vra处导电,则该存储器单元处于状态A中。如果存储器单元在Vrc处导电但不在Vra或Vrb(或Vrb加上任一偏移)处导电,则该存储器单元处于状态B中。如果该存储器单元不在Vra、Vrb(或Vrb加上任一偏移)或Vrc处导电,则存储器单元处于状态C中。在一个实施例中,由处理器392来确定数据值。在步骤972中,处理器392将所确定的数据值存储在各位线的适当锁存器中。在其他实施例中,感测各种电平(Vra、Vrb和Vrc)可以按不同的顺序发生。 
第一偏移和第二偏移的量依赖于具体实施方式。在此描述的发明不依赖于第一偏移或第二偏移的任何具体值。在一个实施例中,第一偏移是0.1伏特,且第二偏移是0.2伏特;但是,还可以使用其他适当值。 
取代在读处理期间对于在不同位线上的相邻存储器单元之间的电容性耦合进行校正,还可以在编程时进行补偿。由于该系统在编程时将知道数据,因此系统可以有意地用稍微低的阈值电压将存储器单元编程为状态A,如果该存储器单元具有一个或多个被分配为将被编程到状态C的邻居。通过这种方式,在被分配给状态C的邻居完成了编程之后,状态A存储器单元将被正确地读取。 
用于实现紧密(tight)的阈值电压分布而不会不合理地减慢编程处理的一个解决方案是使用两个阶段编程处理。第一阶段、粗糙(coarse)编程阶段包 括试图以较快的方式升高阈值电压,并较少地关注实现紧密的阈值电压分布。第二阶段、精细(fine)编程阶段试图以较慢的方式来升高阈值电压,以便到达目标阈值电压,同时实现较紧密的阈值电压分布。可以在美国专利6888758中找到粗糙/精细编程方法的例子,其全部被引用附于此。 
在粗糙/精细编程方法的一个例子,该处理使用两个验证电平:目标验证电平(还称为精细验证电平)和粗糙验证电平。该处理通过进行编程处理的粗糙阶段来开始。当存储器单元的阈值电压到达低于目标验证电平的粗糙验证电平时,存储器单元将通过将位线电压升高到大于0伏特且小于禁止电压的值,来进入精细编程阶段。在粗糙阶段期间,位线电压将大约是0伏特。为了禁止存储器单元编程,位线电压被升高到禁止电压(例如Vdd)。在精细编程阶段期间,相比于粗糙编程阶段相比,由于位线电压从0伏特被升高到中间值的影响,而减慢了编程。因此,在每个编程步的阈值电压中改变有可能比在粗糙编程阶段期间更小。该存储器单元将处于精细编程阶段,直到存储器单元的阈值电压到达了目标阈值电压。当存储器单元的阈值电压到达了目标阈值电压时,该位线电压被升高到Vdd(或其他禁止电压)以禁止该存储器单元的进一步编程。 
所提出的包括校正不同位线上的相邻存储器单元之间的耦合的、用于编程的方法将使用上述粗糙/精细编程处理;但是,将使用三个验证电平而不是二。例如,图20示出状态A的阈值电压分布980。用于验证的目标电压是Vva。用于上述粗糙/精细编程的现有技术方法具有意为Vca的粗糙验证电平。提出的机制包括添加以下讨论使用的第三验证电平Via。总之,在粗糙编程阶段期间,将编程存储器单元,直到阈值电压到达Vca。需要补偿的那些存储器单元——这是因为它们正被编程到状态A且位于要被编程到状态C的存储器单元旁边——将在精细阶段中被编程,直到阈值电压到达Via。其他存储器单元将在精细阶段中被编程,直到其阈值电压到达Vva。因此,具有在状态C中的邻居的、在状态A中的存储器单元有可能具有较低的阈值电压,可能甚至低于目标阈值电压分布980。耦合因而将使得这些存储器单元的阈值电压被升高到阈值电压分布980中。 
图21提供了阈值电压相对于时间和位线电压相对于时间的图,以指示由于其邻居都不在状态C中因此不需要补偿的存储器单元的粗糙/精细编程的一个例子。这些图假设,在时间t1、t2、t3、t4和t5,向存储器单元的控制栅极 施加编程脉冲。在与t1、t2和t3相关联的脉冲处,增加存储器单元的阈值电压。在时间t3,存储器单元的阈值电压变得高于Vca。因此,粗糙编程阶段结束,且精细编程阶段开始。因此,从0伏特将位线电压升高到中间电压V1(例如1伏特)。相比于0伏特,中间电压V1的施加减慢了该位线的编程处理。在时间t5,当存储器单元的阈值电压大于Vva时,该位线将被升高到禁止电压(例如,Vdd)。 
图22示出了因为其邻居的一个或多个处于状态C中且该存储器单元正被编程到状态A因此需要补偿的存储器单元的图。在时间t3,存储器单元的阈值电压已被增加以达到Vca;因此,该位线电压被升高到中间电压V1。在时间t4,存储器单元的阈值电压到达Via,其高于Vca且小于Vva;因此,通过将位线电压升高到Vdd来禁止该存储器单元进一步编程。 
注意,在其他实施例中,除了V1以外,可以使用多个中间电压。例如,接收补偿的存储器单元可以使用一个中间位线电压,且不接收补偿的存储器单元可以使用另一中间位线电压。在其他实施例中,不同的位线可以使用不同的中间电压。 
图23是描述用于根据图21和22的图进行编程的处理的一个实施例的流程图。在步骤700中,由控制器发出且由控制电路接收“数据载入”。在步骤1002中,指定页地址的地址数据从控制器或主机被输入到解码器314。在步骤1004中,用于被寻址的页的一页编程数据(或其他单位的数据)被输入到数据缓冲器用于编程。该数据被锁存在适当组的锁存器中。在步骤1006中,由控制器向状态机312发出“编程”命令。在步骤1008中,确定是否补偿耦合。例如,控制器350、控制电路310、感测块400或另一组件将确定具体存储器单元在编程处理期间是否将因为具体存储器单元正被编程到状态A,且一个或多个(二个或多个)其邻居将被编程到状态C而需要接受补偿。因为控制器350和控制电路310知道所有编程数据,在一个实施例中,该系统将自动地知道补偿是否必要。在其他实施例中,每个位线的每个数据锁存器将知道该数据要被编程。因此,感测模块400可以进行图17的步骤908、910和912来确定位线中的任何是否具有拥有要被编程到状态C中的数据的邻居。如果是,具有这种邻居的那些位线被标记用于补偿。在图23的一个实施例中,对于具有处于状态C中的一个或多个邻居的存储器单元,提供仅一个补偿值。在其他实施例中,可以依赖于一个邻居处于状态C中还是两个邻居处于状态 C中来提供不同补偿的值。 
在图23的步骤1010中,初始脉冲被设置为其初始值,编程计数器被设置为其初始值,且位线电压被设置为其初始值。对于要被编程的存储器单元,位线电压将被设置在0伏特。对于不要被编程的存储器单元,该位线将被设置在Vdd。初始电压的指示还可以被存储在锁存器中。在一些实施例中,可以在编程脉冲步骤1012期间施加初始位线值(以下讨论)。 
在步骤1012中,向适当的字线施加编程脉冲。在步骤1014中,进行验证处理。如果存储器单元处于粗糙编程阶段中,则步骤1014的验证处理将用于确定存储器单元的阈值电压是否到达了粗糙验证电平。如果该存储器单元处于精细编程阶段中,则存储器单元的阈值电压将与目标阈值电压(例如Vva)或需要补偿的那些存储器单元的中间验证电平(例如Via)相比较。以下将提供步骤1014的更多细节。在步骤1016中,确定要被编程的所有存储器单元的状态是否是它们全都被验证了的状态。如果它们都被验证了,则在步骤1018中报告成功的编程处理。如果它们还没有都被验证,则在步骤1020中,针对编程极限值PC max来检查编程计数器PC。如果编程计数器PC不小于PC max,则该编程处理失败了,且在步骤1022中报告失败的状态。如果编程计数器小于PC max,则编程电压(Vpgm)幅值被增加了步长,且在步骤1024中递增编程计数器PC。在步骤1024之后,该处理循环回到步骤1012以施加下一Vpgm脉冲。 
图24是描述图23的验证步骤1014的一个实施例的流程图。在步骤1060中,系统确定该存储器单元处于粗糙编程阶段还是精细编程阶段。注意,图23的处理描述了对一组存储器单元(例如,连接到公共字线的一页存储器单元)进行的高级处理。分别对正被编程的每个具体存储器单元进行图24的处理。在一个实施例中,感测块被配置有存储对具体存储器单元是处于粗糙还是精细编程阶段中的指示的锁存器。如果该存储器单元处于粗糙编程阶段,则将在步骤1062中用粗糙验证电平(例如Vca)来进行验证处理。也就是说,将使用感测放大器来确定存储器单元的阈值电压是否达到了适当的粗糙验证电平。例如,如果该存储器单元正被编程到状态A,则感测放大器将测试该存储器单元的阈值电压是否到达了Vca,如上所述。如果该阈值电压到达了粗糙验证电平(步骤1064),则该存储器单元完成了该粗糙编程阶段。因此,在步骤1066中,位线电压被升高到中间电压V1,以便该存储器单元将在下 一编程脉冲时进入精细编程阶段。在步骤1066之后,该处理将在步骤1080中继续(以下讨论)以确定该阈值电压是否还超过了精细验证电平(或中间验证电平,如适当的话)。如果存储器单元的阈值电压还没有到达粗糙验证电平,则位线电压将在步骤1068中维持在当前电平,以便该存储器单元将继续粗糙编程阶段。 
如果在步骤1060中确定该存储器单元处于精细编程阶段,则在步骤1080中确定该存储器单元是否正被编程到状态A以及是否需要对耦合的补偿。如果否,在步骤1082使用精细验证电平(例如,目标验证电平Vva、Vvb或Vvc)来进行验证处理。如果需要补偿,则在步骤1090中,使用中间验证电平Via进行验证处理。如果该存储器单元的阈值电压高于适当的验证电平(步骤1084),则在步骤1088,通过将位线电压升高到Vdd来禁止该存储器单元被进一步编程。如果该存储器单元的阈值电压不高于验证电平(步骤1084),则在步骤1086中,位线电压维持在其当前电平,且该精细编程阶段将继续。 
可以在编程顺序期间校正单元浮置栅极与浮置栅极的耦合效应。其还可以在读操作期间被校正。以下讨论描述了读顺序,其向感测处理并入位线与位线耦合效应作为修改因子,以便可以根据相邻存储器单元状态来修改该读。图25和26说明了用于读取数据的处理的实施例,其允许用于向经历与相邻存储器单元耦合的某些存储器单元提供补偿。在步骤1100中,所有位线被读取以确定连接到那些位线和所选字线的存储器单元是否处于状态C中。这通过使用Vrc作为读比较点来进行读操作来进行。具有在状态C中的存储器单元的那些位线将锁存该存储器单元处于状态C中的指示。在图18中示出该读操作。在步骤1102中,将充电具有在除了状态C以外的状态中的存储器单元的那些位线。在一个实施例中,那些位线被充电到0.5伏特。在位线在步骤1102中被充电以后,被连接到在状态C中的存储器单元的那些位线在步骤1104中被充电到0.25和0.4伏特之间。在步骤1104中对连接到处于状态C中的存储器的位线充电将把在步骤1102中充电的位线耦合(couple up)到高于0.5伏特的电压。例如,图26示出表示不具有处于状态C中的存储器单元的那些位线的位线BLn。该图示出该位线在步骤1102期间被充电到0.5伏特。位线BLn+1被连接到处于状态C中的存储器单元,且BLn+1是BLn的邻居。在步骤1104期间,位线BLn+1被充电到大约0.4伏特。然后,位线BLn将被耦合于高于0.5的电压,由虚线1120描述的。不位于步骤1104中被充电的 邻居旁边的那些位线将维持在0.5伏特,由线1122描述的。在图25的步骤1106中,将感测所有位线(或位线的子集)。具有C邻居的位线将被感测出具有较高的位线电压。由于位线电压较高,该位线将传导更多电流,其导致了较低阈值电压的出现。这将补偿相邻单元之间的耦合。具有C邻居的单元在其邻居被编程之后被耦合于高于其原始编程电平的浮置电压。具有浮置栅极与浮置栅极耦合补偿的该读将正确地读回这些单元的原始编程电平。完成该读校正而不存在来自多个读操作的时间损失(penalty)。一个读操作获得需要校正的存储器单元和不需要校正的存储器单元的结果。 
在上述一个实施例中,在单元源极噪声正被移除时,可能存在若干感测选通信号。可以在所有发送选通信号期间或在稍后的感测选通信号期间,施加关于图25和26的上述处理。例如,在具有两个选通信号的一个实施例中,第一选通信号可以不使用图25和26的处理,而第二选通信号可以使用图25和26的处理。 
上述说明描述了用于在编程期间和在读取期间对浮置栅极耦合补偿的处理。在一些实施例中,可以在编程和读取两者期间进行补偿。但是,在大多数实施例中,将在编程期间或在读取期间、但不是在两者期间,进行补偿。可以基于存储器系统的使用,决定在读取期间或在编程期间进行补偿。例如,如果该存储器系统正要在如下主机中使用,在该主机中数据将被编程很少次但被读取很多次,则在编程期间补偿可能更好。或者,如果该主机将编程很多次但读取很少次,则在读取处理期间进行补偿更好。 
在一个实施例中,可以制造该存储器系统以包括用于在读取处理期间和在编程处理期间进行补偿的技术。在制造工艺期间或之后的某个时间点,存储器系统可以被配置以便其将仅在读取处理期间或者仅在编程处理期间进行补偿。 
图27提供了流程图,描述用于配置存储器系统以便其将在读取处理期间或在编程处理期间进行补偿的处理。在步骤1200中,该存储器系统被制造为有能力在读取期间进行补偿且在编程期间进行补偿。这可以包括制造半导体晶片。可选地,步骤1200还可以包括使用本领域公知的工艺来封装该晶片。该封装可以或可以不具有进行上述配置的开关(switch)。本领域已知用于添加被连接到集成电路上的存储元件的这种开关的技术。在步骤1202中,基于意图的使用来设置作为在步骤1200中制造的存储器系统的一部分的标记(补偿 标记),来指示是否应该在读取期间进行补偿,或是否应该在编程期间进行补偿。可以在在制造工艺期间、在制造工艺之后、在测试过程期间或在使用该器件时设置标记。在步骤1204中,在使用该器件时,该系统将检查该补偿标记。如果补偿标记被设置为在读取期间进行补偿,则在步骤1206中,该存储器系统将在读取处理期间提供对耦合的补偿。如果补偿标记被设置为用于编程,则该存储器将在编程处理期间提供对耦合的补偿(步骤1208)。 
可以以许多不同的方式来在1202中设置标记。在制造或测试工艺期间,可以设置ROM熔丝来指示应该在读取期间或在编程期间进行补偿。在其他实施例中,可以在制造工艺期间或以后实现和/或设置用于存储标记的指示的其他手段(例如,在非易失性阵列中的存储器单元、触发器或其他存储器件)。还可以在测试处理期间或在使用期间设置标记。另外,用于集成电路的封装可以包括可以由用户在向主机插入存储卡之前设置的开关。 
在一些实施例中,可以在向主机插入存储器系统之后在步骤1202中设置补偿标记。图28-31提供了这种配置的例子。在图28的步骤1300中,该存储器系统被安装在主机中。主机的例子可以包括数字摄像机、音乐播放器、移动电话、手持式计算设备、或其他计算设备。为了示例目的,考虑音乐播放器可能读取比编程更频繁。因此,音乐播放器可以在编程期间提供补偿。另一方面,数字摄像机可能更经常编程,因此,在读取处理期间提供补偿处理可能更适当。在图28的步骤1302中,主机将通知该控制器其偏好。也就是说,该主机将被预先编程(preprogram)以得知其可以使用已知协议告诉控制器其何时想要进行补偿。在步骤1304中,控制器将从主机接收偏好,且基于从主机接收的偏好来设置(被存储在存储器单元或其他存储器件中的)标记补偿。 
图29提供用于配置存储器系统的另一实施例的流程图。在步骤1320中,存储器系统被安装在主机中。在步骤1332中,用户可以选择偏好。在一个实施例中,该用户将通过移动机械开关或在主机的用户界面中选择偏好来选择偏好。例如,数字摄像机的用户可以选择在读取期间进行补偿,且音乐播放设备的用户可以选择在编程期间进行补偿。在步骤1334中,该主机通知该控制器该偏好。在步骤1336中,控制器基于从主机接收的偏好来设置补偿标记。 
图30提供用于配置存储器系统的处理的另一实施例的流程图。在步骤1330中,存储器系统被安装在主机中。在步骤1332中,控制器请求该主机 标识(identify)自己。例如,该主机可以指示其是数字摄像机、音乐播放器、PDA、蜂窝电话等。该控制器在步骤1334中接收该信息,并存取主机信息的表格。该表格将对每个模式或类型的设备标识如何设置补偿标记。基于该表格和从主机接收的信息,控制器将选择配置(例如,选择在读取还是在编程期间进行补偿)。在步骤1336中,控制器将相应地基于在步骤1334中确定的配置来设置标记。 
图31是描述用于配置存储器系统的处理的另一实施例的流程图。在步骤1360中,该存储器系统将被安装在主机中。步骤1362,主机将使得多个文件被存储在存储器系统中。在预定时间量之后,在预定量的文件已经被存储在存储器系统中之后或在从主机或用户接收命令时,该控制器在步骤1364中将确定被存储在存储器系统上的最有代表性的文件类型。例如,如果存储了十个文件且它们中的八个是音乐文件,控制器将确定该最有代表性的文件是音乐文件。在步骤1366中,控制器将基于代表性的文件类型来确定配置。例如,可以在存储器系统中存储表格,该表格列出了文件类型,且对于每个文件类型存储一个值用于补偿标记。该标记的值可以指示在编程还是在读取期间进行补偿。在步骤1368中,控制器将基于在步骤1366中确定的配置来设置补偿标记。 
在编程期间对由于在相邻单元中的电荷造成的干扰的补偿
单元与单元的浮置栅极耦合(“Yupin效应”)
如之前所述,被编程到一个存储器单元的电荷存储元件中的电荷产生电场,其干扰相邻存储器单元的电场。这将影响相邻存储器单元的特性,该相邻存储器单元基本上是具有电荷存储器单元的场效应晶体管。具体地,当被感测时,存储器单元将显现出具有比当其更少地干扰时更高的阈值电平(或更高度编程的)。 
通常,如果存储器单元在第一场环境下被编程验证了(program-verifies),且然后该存储器单元由于随后用不同的电荷来编程相邻单元而在不同场环境下被再次读取,则由于在所谓的“Yupin效应”中的在相邻浮置栅极之间的耦合,可能影响读准确性。随着在半导体存储器中的集成性越来越高,由于在存储器单元之间的存储的电荷而导致的电场的干扰(Yupin效应)随着单元间的间隔缩小而变得越来越可感知。 
在读取期间对BL-BL和WL-WL Yupin效应的校正
如在先前的章节中描述的,一种方式是在读操作期间补偿BL-BL Yupin效应。这是前瞻(look-ahead,“LA”)技术,其中,在相邻位线上的单元的被编程状态首先被注意,且被用于当读取在当前位线上的当前单元时进行适当补偿。为了读取相邻单元的数据,在当前单元的位线处进行另外的感测。基于在相邻位线上的被检测的数据,当感测当前单元时使用适当量的补偿。 
在读取期间对WL-WL Yupin效应的校正基本上是被称为前瞻(“LA”)读取。LA读取机制已经在以下中公开:美国专利No.7196928和在2006年10月公开的美国专利申请公开No.US-2006-0221714,题为“Read Operationsfor Non-Volatile Storage that Includes Compensation for Coupling”,其全部在此被引用附于此。通过LA校正的读取基本上检查被编程到相邻字线上的单元中的存储器状态,且校正它们在当前字线上正被读取的存储器单元上具有的任何干扰效应。如果根据上述优选编程机制已经编程了这些页,则相邻字线将来自在当前一个字线上方紧挨着的字线。LA校正机制将需要在当前页之前读取的相邻字线上的数据。 
替代的直接LA机制(Direct LA,“DLA”)在以下公开:美国专利申请序列号11/377972,在2006年3月17日提交,“System for Performing ReadOperations on Non-Volatile Storage with Compensation for Coupling”,其全部公开在此被音乐附于此。DLA还通过考虑在下一字线上的相邻单元的编程状态,来对读在当前字线中的单元进行校正。取代仅在读取期间偏置当前字线,通过以如下方式偏置相邻字线来实施校正:得到的浮置栅极耦合抵销(offset)了WL-WL Yupin效应误差。 
虽然能够在读取期间校正Yupin效应,但当存储器支持每个单元的越来越多的存储器状态时,该操作变得更加麻烦。在2位或4状态存储器中,将已经存在至少3个读来确定在当前字线上的页的编程状态。如果在下一字线上的数据被用于进行补偿,还将不得不读取在下一字线上的页。因此,读取在当前字线上的当前页还将需要读取在下一字线上的下一页。 
在编程期间校正Yupin效应
在许多方面,可能优选的是在编程期间校正Yupin效应,虽然以降低的编程性能作为代价,许多存储器器件是以如下方式使用的:编程该数据一次,随后读取许多次,而很少或无更新。因此,通过将校正的负担偏移到编程侧,来最佳化该设备的整个性能。 
Yupin效应更强烈地影响相邻单元,其可以跨越沿着存储器阵列的一行上的位线(BL-BL Yupin效应)并跨越沿着存储器阵列的一列上的字线(WL-WLYupin效应)。其可以通过最小化在编程验证时和在于编程了相邻单元之后的读时之间的单元场环境中的不对称性来减轻。 
存在若干方式来在编程期间减少Yupin效应。一种方式是进行多遍编程,其中,以不止一遍来完成对沿着字线的一页存储器单元的编程。典型地,进行至少两遍编程。第一遍使用对应的验证电平,来编程在该页中的所有单元来靠近其各个目标状态,该对应的验证电平偏移为比其对于目标状态正常应该的验证电平低。随后的遍使用没有这种偏移的正常验证电平来完成该编程。单元上的Yupin效应仅由在编程该单元之后的邻居的改变(即,编程)来贡献。当通过在浮置栅极之间的电荷的最小改变来进行随后的遍时,将在编程验证和随后的读操作之间在场环境上存在最小不对称性。因此,以2-遍编程技术最小化Yupin效应。该技术可以最小化BL-BL Yupin效应。如稍后描述的,如果当从字线到字线编程时在具体序列中进行两遍,其还可以减少WL-WL Yupin效应。 
上述至少2遍编程机制的一个缺点是每个编程在数据就位(in place)之前需要至少两遍。换句话说,在完成最后的遍之前数据无效且因此不可用。 
一个替代的多遍编程机制是采用多位编码,以便每个遍逐渐地编程一个另外的位,直到所有位都就位。以此方式,每个遍编程至少一位的多位数据,并可以存储可用的数据,而无需必须完成所有遍,之后在被编程到单元中的多位数据才变得有效。为了减少BL-BL Yupin效应,使用避免在每遍二进制编程之间的电荷中的大改变的编码。由先前结合图14描述的“LM”编码来给出具有这种特征的优选编码。LM编码,虽然有效地允许每个遍来存储一位数据,不过仅减少Yupin效应大约50%。 
依赖于目标存储器状态和相邻单元的预定状态的验证电平
根据本发明的总的方面,通过相应地调整验证电平,在将单元编程到给定目标状态期间,补偿由于在相邻存储器单元上的电荷而造成的干扰,以便将不管随后被编程到相邻存储器单元中的干扰电荷如何,都从单元读取正确的目标状态。 
这通过下述操作来实现:预先确定相邻存储器单元的存储器状态,并调整验证电平作为正被编程的存储器单元的目标状态和相邻存储器单元的存储 器状态的函数。该机制还具有编程将以单遍完成的优点。 
图32是图示使用数据依赖型验证电平来补偿编程期间的Yupin效应的方法的流程图。其基本上是利用数据依赖型验证电平的一遍编程机制。 
步骤1400:并行地向一组存储器单元施加一定量(dose)编程电压,以增加被编程的每个存储器单元的阈值电压。 
步骤1410:通过确定相对于预定验证电平被验证的存储器单元的阈值电压,来相对于给定目标状态验证该组存储器单元的编程状态,预定验证电平是给定目标状态和与正被验证的存储器单元相邻的存储器单元的目标状态的函数。 
步骤1420:禁止进一步编程该组中已经被验证的存储器单元。 
步骤1430:要被编程到给定目标状态的所有存储器单元都已经验证了?如果是,继续到步骤1440;否则,继续到步骤1400。 
步骤1440:对要被编程到给定的目标状态的那些存储器单元,完成了编程。 
图33图示了适用于图示本发明的存储器阵列的一部分。例如,并行地编程由字线WLn连接的一页存储器单元。在该页在的任何一个单元诸如存储器单元1460上的Yupin效应主要是由对与正被编程的存储器单元1460相邻的相邻单元进行随后编程贡献的。具体地,沿着字线WLn,左侧邻居是单元1472,且右侧邻居是单元1474。类似地,编程单元1460经由位线BL2耦合于感测放大器(未示出)。沿着位线BL2,在字线WLn-1上的编程单元1460下面的邻居是单元1482,且在上方的WLn+1字线上的邻居是单元1484。 
存储器单元1460的邻居可以处于任一可能的存储器状态,每个存储器状态具有在其电荷存储元件中的不同量电荷,且因此赋予(assert)不同量的干扰。通过四个相邻的邻居,由在这些邻居中的可能的存储器状态的变换(permutation)来给出干扰的范围。通常,相关的邻居仅是在存储器单元1460已经完成了编程之后将被编程的那些邻居。实际上,可能优选的是量化由存储器单元1460看到的干扰量,且因此将补偿电平(compensation level)的数量量化为可管理的数。例如,补偿电平的数可以被一个位编码,其中“0”可以指示无补偿,且“1”可以指示预定水平的补偿。在另一实施例中,可以使用两位来代表高达四个可能的补偿电平。 
被施加到当前字线WLn的预定偏移验证电平
在一个实施例中,通过用被施加到与要被编程验证的存储器单元相关联的字线的预定偏移验证电压电平来感测,而进行验证。例如,参考图33,如果存储器单元1460正被编程验证,则预定验证电压电平被施加到WLn。 
图34图示在编程期间调整在WLn上的验证电平以补偿由于相邻电荷的干扰。该例子示出了由一位编码的两个可能的补偿电平。当邻居被较小(less)编程从而总干扰低于预定阈值时,不使用补偿。因此,在验证感测期间被施加到WLn字线的验证电压电平与适于编程诸如单元1460的单元到目标状态的正常V(目标状态)相同(补偿码“1”)。另一方面,当这些邻居处于更高度编程的状态从而总干扰高于预定阈值时,通过将正常验证电平向低偏移预定偏移电压ΔV来实施补偿,即,向WLn施加V-ΔV的电压(补偿码“0”)。偏移ΔV是由ΔV指示的相邻状态(相邻状态)的函数。图34中的例子关于NAND存储器,其中WLn是在NAND链(见图2)之中的所选字线,且剩余未选字线在验证操作期间将被施加电压Vpass。WLn-1和WLn+1被示出为与WLn相邻的两个未选字线。 
通常,该偏移是来自邻居的干扰量的函数,来自邻居的干扰量依赖于该邻居要被编程到的目标状态。越大(more)的编程状态,将存在更多的电荷和干扰。可以通过初始测试并保证在工厂的存储器芯片的质量来预先确定该偏移。 
虽然在图32中的例子示出了1位补偿机制,但是诸如2位补偿机制的更精确的机制是可能的。在2位的情况下,将存在可能被施加到WLn的四个可能的电压电平,即V、(V-ΔV1)、(V-ΔV2)和(V-ΔV3)。 
图35是图示图32中示出的验证步骤的一个实施例的流程图,其中,仅向当前字线施加一遍数据依赖型验证电平。验证步骤1410包括: 
步骤1412:通过确定相对于预定验证电平来验证的存储器单元的阈值电压来验证相对于给定目标状态的存储器单元组的编程状态,预定验证电平是给定目标状态和与正被验证的存储器单元相邻的存储器单元的目标状态的函数;以及 
步骤1414:该验证包括在正被验证的存储器单元的字线上用预定验证电平给定的电压来感测。 
如果要被编程的存储器单元是NAND链的一部分(见图2),则预定验证电平将被施加到与正被编程的存储器单元相关联的字线。在该链中的所有其他存储器单元将具有被施加到其相关联的字线的流通电压(pass voltage)Vpass(而在远漏极侧的单元可能是Vdd)以导通它们。 
通过1位补偿机制,针对给定目标状态,需要对该页进行两次编程期间的验证,这是因为该页的所有单元的控制栅极共享相同的字线WLn。对于该页中在其邻居不需要补偿的那些单元,向WLn施加正常验证电压电平V。对于需要补偿的那些单元,向WLn施加偏移验证电压电平V-ΔV。 
将理解在其他实施例中,可设想更多的补偿电平。将由不止一位来编码不同的电平,且验证操作将必须在具有不同补偿电平的页的不同子集上进行。一旦确定了被编程的单元的补偿电平,其被锁存的单元的同一列或感测电路中,以供在验证操作期间使用。如之前所述,未验证的那些单元将通过下一编程脉冲经过进一步的编程,而已经被验证的的那些将被编程禁止以不能进一步编程。 
通过在编程期间调整验证电平作为目标状态和相邻存储器单元的预定存储器状态的函数,基本上在一遍编程中补偿由于在相邻单元上的现有或预期的电荷而造成的Yupin效应。不需要在第一遍中编程所有单元为接近于其目标状态,且然后在编程了相邻单元之后在进一步遍中完成编程。实践上,该编程可以优选地使用多余一个阶段(例如,粗糙/精细阶段)来增加性能,但不需要为了减轻Yupin效应在完全不同的时间进行两个分离的遍。单遍编程将允许最大编程性能和逐个字线的更简单的编程顺序。 
通过较低偏移验证电平的操作的问题
在单遍或多遍编程机制的任一情况下,需要在至少一遍中把验证电平向低偏移。可能由于使用太低的验证电平而产生一个问题。 
通常,由于来自其邻居的Yupin效应而导致在单元上的干扰具有升高该单元的表观(apparent)阈值电平的效果。换句话说,该单元显得比无Yupin效应情况更大地(more)被编程。因此,当把Yupin效应纳入考虑范围时,验证电平将需要比正常的低。具体地,对于两遍编程机制尤其如此。第一遍充分(fully)受到Yupin效应影响,而第二完成遍将验证具有来自Yupin效应的较少的影响。因此,第一遍验证电平将需要比正常的向低偏移,以避免由于最差情况下的Yupin效应而造成的“过编程(over-programming)”,并保证在存储器单元之间的阈值电平群体的紧密分布。但是,如从以下说明看出,该偏移可以低至1V,或更多。这可能在感测期间造成操作困难或限制存储器单元可以支持 的存储器状态的数量。 
图36A图示了支持在四个不同的集群中的阈值窗口中分布的四个存储器状态的典型的存储器单元群体(population)的例子。每个集群代表具有四个存储器状态之一的该群体存储器单元。该例子示出了从-2.5V到4V的阈值窗口。通常,阈值窗口的下限由感测放大器在负电压处感测的能力来确定。另一方面,阈值窗口的上限由高电压晶体管崩溃电压((breakdown)voltage)的极限和浮置栅极用于维持大量电荷的恶化来确定。 
图36B图示了高度编程(highly programmed)的相邻单元对当前被感测的单元的编程阈值电平的影响。这是Yupin效应,其增加当前单元的感知的阈值电平。例如,高度编程的邻居将具有被编程到其电荷存储元件(例如,浮置栅极)的相当多电荷量,且相邻的电荷的效应将耦合到被感测的当前单元的浮置栅极。每个邻居可以将当前单元的感知阈值电平升高多达350mV。如果该单元受到所有四个其紧邻的邻居(左、右、上和下)干扰,其可以升高感知的阈值电平超过1V。因此,依赖于其邻居的编程状态,每个单元可以具有在从零到某最大伏特的范围内偏移的其表观阈值电平。对每个集群的净影响(net effect)是其尾部被延展朝向更高的电压。 
图37A图示了来自不同邻居的Yupin效应对正被感测的当前单元的影响。该例子示出了正被感测的当前单元是来自处于状态“A”中的群体存储器单元。该群体1502代表了不经过任何邻居干扰的存储器单元。当群体中的一些单元被在稍后被编程到最大编程状态的相邻位线上的其两个邻居干扰(BL-BL Yupin效应)时,1502的尾部被修改为1504。类似地,当该群体中的一些单元也被稍后被编程到最大编程状态的下一字线(WLn+1)上的其邻居干扰(WL-WL Yupin效应)时,1504的尾部被进一步修改为1506。因此,可以看出,BL-BL和WL-WL Yupin效应的组合可以使得单元显得具有更高的阈值电压电平。例如,最差情况的BL-BL效应可以将阈值电压偏移250mV,且来自一个邻居的最差情况的WL-WL效应可以将阈值电压偏移350mV,且如果来自两侧则偏移700mV。然后,该组合可以从600mV到大约1V。 
如之前所描述的,为了避免由于在经受Yupin效应的存储器单元的表观阈值电平的上升而导致“过编程”,将多遍编程中的第一遍的验证电平设置得低了偏移1512,这基本上包容最差情况的Yupin效应。因此,对于第一编程遍,为了避免由于高度编程的相邻单元而造成的感知的升高的阈值电平而出 现的当前单元的可能“过编程”,用于第一遍的验证电平可能必须被向低偏移多达1V。 
图37B图示了移动多遍编程中的第一遍的验证电平以减少Yupin效应。例如,如果存在两遍且最后的遍使用了分别用于状态“A”、“B”和“C”的正常的验证电平V2a、V2b和V2c,则用于编程到这些目标状态的每个的对应的第一遍验证电平V1a、V1b和V1c可以是向低偏移预定量。例如,V1a被从V2a向低偏移了预定量1512(也见图37A)。 
在多遍编程机制中的第一遍验证电平的偏移(offset)以及在较小的扩展上在单遍编程机制中用于补偿Yupin效应的较低验证电平(extent)对于擦除状态“E”出现一个问题。通常,为了最大化阈值窗的限度(extent)以便适应尽可能多的不同状态,擦除状态被置于阈值窗的下端的极限处。如先前说明的,该极限由感测放大器在负电压处感测的能力来控制。例如,下限可以是所示的-2.5V。实际上,具有擦除单元的很精确(well-defined)且紧密控制的分布是优选的。其典型地通过在擦除之后的软编程以形成更紧密的分布来实现。该软编程将需要相对于擦除状态的预定电平的编程验证。但是,对于偏移的第一遍验证电平的需要,该偏移1510可以把验证电平移动到阈值窗的下限之外。虽然能够向更正的(more positive)端移动所有集群来保持在界限内的偏移,但是其将减少阈值窗的有用范围。 
通过偏置(biase)相邻字线来虚拟偏移验证电平
根据本发明的另一方面,通过相应地偏置相邻字线来虚拟地实施验证电平的调整,以便当用调整的验证电平来编程验证时,正确的目标状态将从该单元读出,而不管随后被编程到相邻存储器单元中的干扰电荷如何。这具有避免使用在正被编程的单元的验证电平上的真实偏移的优点,从而避免了可能使得验证电平移动太低而需要当验证最低存储器状态时的负电压感测的问题。 
如先前结合图36A和36B描述的,不期望使用向低偏移的验证电平。本发明的该方面通过用相邻字线WLn+1的适当偏置来实现相同的效果,而避免使用低于正常的验证电平的问题。 
图38示出了根据优选实施例的、被验证的字线上的正常验证电平和用于对正常验证电平实施虚拟偏移的相邻字线的偏置的组合。该例子示出了被施加到NAND存储器的由一位编码的两个可能的补偿电平。具体地,WLn是在 NAND链之中的所选字线(见图2),且剩余未选字线将在验证操作期间被施电压Vpass。 
当较小地编程这些邻居用从而总干扰低于预定阈值时,不使用补偿(补偿码“1”)。因此,在验证感测期间被施加到WLn字线的验证电压电平与适于将诸如单元1460的单元编程到目标状态的正常V(目标状态)相同(补偿码“1”)。同时,在该链中的剩余未选字线将在验证操作期间被施加电压Vpass。示出了WLn-1和WLn+1作为与WLn相邻的两个未选字线。具体地,向WLn+1施加两个电压之一V0=Vpass。 
另一方面,当这些邻居处于更高度编程的状态从而总干扰高于预定阈值时,需要补偿(补偿码“0”)。在这种情况下,小于V0的V1被施加到WLn+1。V1是预定的,以便其具有与图34所示的补偿码“0”的配置基本类似的效果。不过,不是将正常验证电平向低偏移且将其施加到WLn(补偿码“0”),等效机制是在Wn+1上施加把Vpass向低偏移的V1。 
因此,通过1位补偿,字线电压配置与正常验证操作类似,其中当不需要补偿时V0=Vpass被施加到下一字线WLn+1,和当需要补偿时V1被施加到下一字线。该电压V1可以被视为Vpass-ΔV’,其中ΔV’是额外的偏置以产生图34所示的在WLn处的正常验证电平的虚拟偏移的效果,如图34所示。优选地,在不用补偿的其他单元的验证期间,在相邻字线上的电压从用补偿的那些单元的验证期间的较低电压V1升高到较高电压V0。 
图39是图示图32所示的验证步骤的另一优选实施例的流程图,其中,对当前字线和相邻字线两者都施加一遍数据依赖型验证电平。对相邻字线(例如WLn+1)的偏置电压的额外施加具有虚拟地偏移被施加到当前字线(例如WLn)的验证电压电平的效果。这避免了与先前描述的验证电平的降低相关的不足。确实,虚拟偏移的效果模仿用于WL-WL耦合效应的机制,且因此在调节WL-WL耦合效应中更准确。 
步骤1530:提供非易失性存储器,该非易失性存储器具有可由字线和位线访问的存储器单元的阵列。 
步骤1540:指定要被并行编程到给定目标状态的一组存储器单元。 
步骤1550:并行地向该组存储器单元施加一定量编程波形电压,来增加被编程的每个存储器单元的阈值电压。 
步骤1560:向访问该组存储器单元的字线施加预定验证电压电平,该预 定验证电压电平是给定目标状态的第一函数。 
步骤1562:向相邻字线施加预定偏压电平,该预定偏压是与正被验证的存储器单元相邻的存储器单元的目标状态的第二函数。 
步骤1568:感测以验证被编程的该组存储器单元。 
步骤1570:禁止进一步编程该组中已经被验证为已被编程到给定目标状态的存储器单元。 
步骤1580:要被编程到给定目标状态的所有存储器单元都已经被验证了?如果是,继续到步骤1590;否则,继续到步骤1540。 
步骤1590:对要被编程到给定目标状态的那些存储器单元,编程完成。 
把WL-WL Yupin效应减半的优选编程机制
至于WL-WL Yupin效应,其中干扰位于在相邻字线上的存储器单元之间,在编程期间使用优选编程机制将其减轻。这将有效地将该干扰减半。剩余的一半还可以如先前所述的在编程或读取操作期间使用各种补偿机制的一个或组合来校正。 
美国专利No.6781877公开了一种编程机制,其中还通过以最佳次序编程在存储器阵列中的页来减少WL-WL Yupin效应。 
优选的编程机制将使得与字线相关的页以最佳顺序被编程。例如,在二进制存储器的情况下,其中每个物理页保持了一页二进制数据,优选地,沿着一致的方向、诸如从底部到顶部,顺序地编程这些页。以此方式,当正编程具体页时,在其下侧的页已经被编程了。无论它们可能在当前页上具有什么干扰性的影响,当考虑到(in view of)这些干扰而编程验证该当前页时,随它们被考虑(account for)。基本上,编程这些页的顺序应该使得正被编程的当前页看到在其被编程之后的其环境周围的最少改变。因此,每个编程页仅被在其上侧的页干扰,且通过该编程顺序而有效地将WL-WL Yupin效应减半。 
在下述存储器的情况下,该顺序不那么简单(straight forward),在该存储器中存储器单元的每个物理页是多状态的且结果得到的多逻辑数据页在不同的遍中被编程。例如,在编码4存储器状态的2位存储器中,与字线相关联的每个物理页被视为来自每个单元的2位数据的单页或两个分离的逻辑页——每个来自每个单元的1位数据的较低和较高位。因此,该物理页可以通过将每个单元直接编程到在对应于2位码的4个状态中的其目标状态来编程。或者,两位中的每个可以分离地被编程,首先针对较低位页,且稍后针 对较高位页。当每个物理页的逻辑页要被分离地编程时,修改的最佳顺序是可能的。 
图40图示了具有2位存储器单元且其页以最佳顺序被编程以便最小化在相邻字线上的存储器单元之间的Yupin效应的存储器的例子。为了方便,符号是使得物理页P0、P1、P2……分别存在于字线W0、W1、W2……上。对于2位存储器,每个物理页具有与其相关联的两个逻辑页,即较低位和较高位逻辑页,每个具有二进制数据。通常,具体的逻辑页由LP(字线.逻辑页(Wordline.logical_page))给出。例如,在W0上的P0的较低位和较高位页将分别被标记为LP(0.0)和LP(0.1),且在W2上的对应的那些将是LP(2.0)和LP(2.1)。 
基本上,逻辑页的编程将遵循顺序n:以便正被编程的当前页在其被编程之后看到其环境周围的最少改变。在该情况下,再次以从底部到顶部的一致方向来递增地移动将有助于减轻来自一侧的干扰。另外,因为每个物理页可能具有两遍编程,随着该编程上移这些物理页,更好的是,当前较高位页在其相邻较低位页已经被编程之后被编程,以便当编程当前较高页位时将考虑(account for)它们的干扰效应。因此,如果从LP(0.0)开始编程,则将由页编程次序、0、1、2……n……来给该顺序打上耳号(earmark),其将变为:LP(0.0)、LP(1.0)、LP(0.1)、LP(2.0)、LP(1.1)、LP(3.0)、LP(2.1)…… 
用数据依赖型验证电平来编程的相邻状态的确定
如先前描述的,结合图24,在编程验证期间对BL-BL Yupin效应的优选补偿机制是根据相邻状态的编程状态来调整编程验证电平。为了将相邻状态通信给正被编程的单元的列或位线,每个邻居的位线被设置为依赖于每个邻居的编程状态的预定电压。该预定电压在正被编程的单元的位线处进行的另外的感测中被检测,且然后被用于偏移编程验证电平。 
在于编程期间进行WL-WL Yupin效应补偿的情况下,必须获得相邻字线的编程状态或数据,且使得其对在验证之下的单元的验证或感测电路可获得(available),以便相应地偏移编程验证电平。 
如果以优选的次序进行编程,如从存储器阵列中的底部字线开始,则相对于正当前被编程的字线,已经编程了先前的字线。来自先前字线的该页数据可以简单地被读取和锁存到对应的列锁存器中。但是,如果坚持结合图40描述的优选编程次序,则来自先前的字线的Yupin效应已经考虑过了,且因 此不需要获得其数据来估算(figure)补偿。 
至于将被编程的下一字线中的数据,存在很多可能途径来获得它。 
图41图示了与图5的存储器器件通信的主机。该存储器器件包括存储器芯片298和控制器610。该存储器芯片298包括存储器阵列300和外围电路,诸如感测放大器、数据锁存器394、I/O电路和芯片上控制电路310。芯片上控制电路310控制存储器芯片的操作。在许多实施方式中,主机10经由控制器350与存储器芯片298通信和交互。 
控制器350与存储器芯片协作,且控制和管理更高级别的存储器操作。例如在主机写中,主机10请求逐页将数据写入存储器阵列300。然后,每页数据被发送到控制器350,其又使得其被装到数据锁存器394中,以被编程到存储器阵列中。在一个实施方式中,至少两页数据被控制器350接收并被缓冲在控制器RAM 352中。随着第一页被锁存到数据锁存器394中以被编程到字线WLn中的当前页中,旨在被编程到字线WLn+1中的下一页中的下一页数据被评估,且对应于高度编程状态的那些还在对应的数据锁存器中锁存作为编码的补偿电平。在优选实施方式中,与每个列相关联的逻辑和处理器将与状态机协作,以用本发明的各种验证机制来进行编程操作。 
图42图示了用于获得下一字线的该页数据的另一技术。非易失性存储器阵列300的一部分被划分为常规部分302和缓冲器部分304。该存储器阵列的常规部分302典型地存储多位数据。另一方面,在缓冲器部分302中的存储器单元优选地被配置以存储二进制数据。以此方式,可以以相对较高的速度来将二进制数据编程到缓冲器部分,而无需校正Yupin效应。优选地,当数据首先被写到存储器时,其首先被写到缓冲器部分304。然后,在恰当的时间,来自缓冲器部分304的数据可以被复制到常规部分302。因为要被编程到常规部分302的数据可以容易地从缓冲器部分304读出,因此,当当前页正被编程时,下一页的数据也可获得用于考虑在编程验证期间的补偿。 
对擦除的存储器状态的相邻单元中的电荷而造成的干扰的补偿
如先前描述的,当这些页数据正以明确的字线次序、如从底部到顶部被编程时,较低的相邻字线WLn-1将在当前字线WLn之前编程,且因此将不对当前字线的单元产生Yupin效应。因此,当调整验证电平时,不需要考虑先前编程的字线WLn-1。 
但是,对于仍然在擦除状态中的那些存储器单元,即使在WLn-1上的编 程的单元也将对WLn上的擦除单元产生Yupin效应。换句话说,顶部WLn+1和底部WLn-1上的两个邻居都将干扰在WLn上的单元。这是因为,如果该单元总是维持在擦除状态中,则任何编程的(get programmed)相邻的邻居都将在该单元到达该状态之后。因此,两者都做贡献于在该单元被擦除后的该单元的场环境中的改变。 
该存储器典型地使得其单元被擦除,以便其阈值电平被减少到阈值窗的远下端处的范围。在优选实施例中,使用软编程操作来将更深擦除的单元编程到低于预定分解阈值电平的更窄的范围内。该软编程与相对于预定分界阈值电平的验证交替。以此方式,软编程和验证有助于将擦除单元的分布收紧(tighten)到仅低于预定分界阈值电平的预定范围。 
图43图示了具有处于擦除状态的群体单元的存储器以及它们如何受Yupin效应影响的。该收紧的擦除群体——在通过对这些单元的字线施加预定验证电平VE来相对于预定分界阈值电平1610已经软编程验证了擦除单元之后——由实分布1602表示。如上所述,在WLn-1处的页的编程将引起WL-WLYupin效应,导致分布1602的右尾部向更高的电平扩展,就好像在延伸的尾部1604中一样。类似地,在WLn处的该页的编程将引起BL-BL Yupin效应,导致分布1604的右尾部进一步向更高的电平扩展,就好像在延伸的尾部1606中一样。最后,编程在WLn+1上的页的影响将进一步将右尾部从1606扩展到延伸的尾部1608。 
从图43很清楚,由于稍后被编程的邻居,一些擦除单元可能变得很受干扰以至于使得其阈值电平移动到编程状态区域。 
根据本发明的另一方面,擦除存储器单元优选地在它们被擦除之后被“软编程”。“软编程”指的是将擦除单元编程到相对于用于在擦除和编程状态之间分界的预定阈值的阈值电平的预定范围。这通过交替地编程和相对于预定阈值验证擦除单元来实现。在软编程期间,通过相应地调整验证电平来补偿由于在相邻存储器单元上的电荷而造成的干扰,以便从该单元读出正确的擦除状态而不管随后被编程到相邻存储器单元中的干扰电荷。 
这通过预先确定相邻存储器单元——包括在正被编程的单元的字线的两侧上的相邻字线上的那些存储器单元——的存储器状态、并过通过减少分界电平一个偏移量来调整验证电平来实现,该偏移量是相邻存储器单元的存储器状态的函数。 
图44图示了在用被调整以校正来自所有相邻的邻居的干扰的验证电平软编程之后的擦除单元的分布的效果。在该情况下,调整验证电平,作为在相邻字线WLn-1和WLn+1两者上的相邻单元以及在相邻位线上的邻居的函数。可以看出,在软编程之后,擦除单元具有阈值分布1630,其相对于图43所示的未校正分布紧密了1602的左尾部和1626的右尾部。 
在替换实施例中,其中可以容忍BL-BL Yupin效应,在调整验证电平的偏移量时仅校正WL-WL Yupin效应。 
在优选实施例中,类似于图38A和图38B所示,通过偏置相邻字线中的一个或多个,来虚拟地实现对验证电平的偏移。 
图45图示了根据一个优选的实施例的偏置相邻的字线以实现双侧校正。如果正被软编程的擦除单元位于字线WLn上,则类似于图38A所示的机制,向WLn施加正常验证电平VE。该正常验证电平VE是将用在擦除单元的正常软编程中、而不考虑如之前结合图43所述的Yupin效应校正的验证电平。 
由于在WLn的任一侧上存在相邻字线,因此优选的实施方式是偏置两个相邻的字线。如果每个相邻的字线都被允许采用分别由一位“1”或“0”所指示的两个电压V0或V1之一,则两个相邻字线将具有由两位指示的四个可能的组合。这些组合的每个表示了对VE的不同的虚拟偏移量和因此的对应的补偿电平的量。如之前所讨论的,当相邻字线被偏置在具有值Vpass的V0时,其是正常情况。另一方面,当相邻字线被偏置在低于V0的V1时。其具有产生对VE的虚拟向低偏移的效果。因此,将用被偏置在V1处的两个相邻字线来实现最高补偿电平(00)。下一较低补偿电平(01)将具有在V1处的相邻字线WLn+1和在V0处的WLn-1。类似地,最少或无补偿电平(11)将具有在V0处的两个WLn-1和WLn+1。 
图46是创造具有相对于预定阈值电平的很精细分布的阈值电平的一组存储器单元的流程图。 
步骤1600:提供可由字线和位线访问的存储器单元的阵列的非易失性存储器。 
步骤1610:擦除实质上超过分界擦除状态的预定阈值电平的一组存储器单元。 
步骤1620:并行地向该组擦除的存储器单元施加一定量编程波形电压,以增加被编程的每个存储器单元的阈值电压。 
步骤1630:向访问该组存储器单元的字线施加预定阈值电平电压。 
步骤1632:向第一相邻字线施加第一预定偏压电平,该第一预定偏压是第一相邻存储器单元的目标状态的第二函数,该第一相邻单元可由第一相邻字线访问,且与正被验证的存储器单元相邻。 
步骤1634:向第二相邻字线施加第二预定偏压电平,该第二预定偏压是第二相邻存储器单元的目标状态的第二函数,该第二相邻单元可由第二相邻字线访问,且与正被验证的存储器单元相邻。 
步骤1638:感测以验证已经相对于预定阈值电平而编程了的该组擦除存储器单元。 
步骤1640:禁止进一步编程在该组中已经被验证的存储器单元。 
步骤1650:在该组中的所有擦除存储器单元都被验证了?如果是,继续到步骤1660;否则,继续到步骤1620。 
步骤1660:在该组中的所有擦除存储器单元都相对于预定阈值电平被编程了。 
所描述的各种类型的非易失性存储器系统能够支持分别擦除一到多位的数据且被构思为在不同的数字存储器件和系统、包括可移动存储卡和嵌入其他设备的电路板中的存储器件中的存储器单元。 
已经为了例示和描述的目的呈现了本发明的前述详细描述。不意图穷举或限制本发明为公开的精确形式。在上述教导下,许多修改和变化是可以的。选择所述实施例以便最好地说明本发明的原理和其实际应用,从而使得本领域技术人员最佳地利用在各个实施例中的本发明,且各种修改适用于具体使用构思。本发明的范围意图由所附权利要求来限定。 

Claims (33)

1.一种并行地编程一组存储器单元而减少由于来自相邻存储器单元的干扰电场的差错的方法,包括:
(a)选择要被并行编程到给定目标状态的、一个字线上的一组存储器单元;
(b)并行地向该组存储器单元施加预定的一定量编程波形电压,来增加被编程的每个存储器单元的阈值电压;
(c)通过确定相对于预定验证电平而正被验证的存储器单元的阈值电压来相对于给定目标状态验证该组存储器单元的编程状态,该预定验证电平是给定目标状态和相邻字线上的与正被验证的存储器单元相邻的存储器单元的目标状态的函数;
(d)禁止进一步编程在该组中已经被验证的存储器单元;以及
重复(b)到(d)直到该组的存储器单元都被验证为处于给定的目标存储器状态。
2.根据权利要求1所述的方法,其中,该函数产生用于将给定存储器单元编程到目标状态的预定验证电平,以便当在给定存储器单元之后编程相邻存储器单元时仍可以从给定的存储器单元读取正确的目标状态。
3.根据权利要求1所述的方法,其中,这些存储器单元可由字线和位线访问,且相邻存储器单元包括与正被验证的存储器单元共享公共字线的存储器单元。
4.根据权利要求1所述的方法,其中,这些存储器单元可由字线和位线访问,且相邻存储器单元包括与正被验证的存储器单元共享公共位线的存储器单元。
5.根据权利要求1所述的方法,其中,这些存储器单元可由字线和位线访问,且所述验证步骤还包括:
用由在正被验证的存储器单元的字线上的预定验证电平给定的电压来感测。
6.根据权利要求1所述的方法,其中,这些存储器单元可由字线和位线访问,且所述验证步骤还包括:
用由在正被验证的存储器单元的字线上的目标验证电平给出的电压来感测,所述目标验证电平是正被验证的存储器单元的目标状态和与正被验证的存储器单元相邻的、相邻字线上的存储器单元的目标状态的函数。
7.根据权利要求5所述的方法,其中,在正被验证的存储器单元的字线上的预定验证电平是来自相邻存储器单元的干扰量的减函数。
8.根据权利要求6所述的方法,其中,在正被验证的存储器单元的字线上的预定验证电平是来自相邻存储器单元的干扰量的减函数。
9.一种非易失性存储器,包括:
存储器单元的阵列,可逐行由一组字线且逐列由一组位线寻址;
用于一个字线上的一组存储器单元的每个的读/写电路,用于并行地编程和验证;以及
对该组的每个存储器单元的验证相对于给定目标状态的预定验证电平,该预定验证电平是给定目标状态和相邻字线上的与正被验证的存储器单元相邻的存储器单元的目标状态的函数。
10.根据权利要求9所述的非易失性存储器,其中,该函数产生用于将给定存储器单元编程到目标状态的预定验证电平,以便当在该给定存储器单元之后编程相邻存储器单元时仍可以从给定的存储器单元读取正确的目标状态。
11.根据权利要求9所述的非易失性存储器,其中,这些存储器单元可由字线和位线访问,且相邻存储器单元包括与正被验证的存储器单元共享公共字线的存储器单元。
12.根据权利要求9所述的非易失性存储器,其中,这些存储器单元可由字线和位线访问,且相邻存储器单元包括与正被验证的存储器单元共享公共位线的存储器单元。
13.根据权利要求9所述的非易失性存储器,其中,这些存储器单元可由字线和位线访问,且由读/写电路进行的所述验证还包括:
用由在正被验证的存储器单元的字线上的预定验证电平给定的电压来感测。
14.根据权利要求9所述的非易失性存储器,其中,这些存储器单元可由字线和位线访问,且由读/写电路进行的所述验证还包括:
用由在正被验证的存储器单元的字线上的目标验证电平给出的电压来感测,所述目标验证电平是正被验证的存储器单元的目标状态和相邻字线上的与正被验证的存储器单元相邻的存储器单元的目标状态的函数。
15.根据权利要求13所述的非易失性存储器,其中,在正被验证的存储器单元的字线上的预定验证电平是来自相邻存储器单元的干扰量的减函数。
16.根据权利要求14所述的非易失性存储器,其中,在正被验证的存储器单元的字线上的预定验证电平是来自相邻存储器单元的干扰量的减函数。
17.一种非易失性存储器,包括:
存储器单元的阵列,可逐行由一组字线且逐列由一组位线寻址;
用于一个字线上的一组存储器单元的每个的读/写电路,用于并行地编程和验证;以及
相对于给定目标状态的预定验证电平验证该组的每个存储器单元的装置,该预定验证电平是给定目标状态和相邻字线上的与正被验证的存储器单元相邻的存储器单元的目标状态的函数。
18.在具有可由字线和位线访问的存储器单元的阵列的非易失性存储器中,一种并行地编程一组存储器单元而减少由于来自相邻存储器单元的干扰电场的差错的方法,包括:
(a)指定要被并行编程到给定目标状态的一组存储器单元;
(b)并行地向该组存储器单元施加一定量编程波形电压,来增加被编程的每个存储器单元的阈值电压;
(c)向访问该组存储器单元的字线施加预定验证电压电平,该预定验证电压电平是该给定目标状态的第一函数;
(d)向相邻字线施加预定偏压电平,该预定偏压是与正被验证的存储器单元相邻的存储器单元的目标状态的第二函数;
(e)感测以验证被编程的该组存储器单元;
(f)禁止进一步编程在该组中已经被验证为已被编程到该给定目标状态的存储器单元;以及
重复(b)到(f)直到该组的存储器单元都被验证为处于给定的目标状态。
19.根据权利要求18所述的方法,其中,该第二函数产生用于验证的预定偏压电平,以便即使当随后编程相邻存储器单元时,该编程也导致从该组的编程的存储器单元读取正确的目标状态。
20.根据权利要求18所述的方法,其中,相邻存储器单元包括与正被验证的存储器单元共享公共的字线的存储器单元。
21.根据权利要求18所述的方法,其中,相邻存储器单元包括与正被验证的存储器单元共享公共的位线的存储器单元。
22.根据权利要求18所述的方法,其中,所述第二函数是来自相邻存储器单元的干扰量的减函数。
23.一种非易失性存储器,包括:
存储器单元的阵列,可由一组字线和由一组位线寻址;
用于一组存储器单元的每个的读/写电路,用于并行地编程和验证;以及
所述读/写电路通过向访问该组存储器单元的字线施加预定验证电压电平并向相邻字线施加预定偏压电平进行感测来验证,所述预定验证电压电平是给定目标状态的第一函数,所述预定偏压是与正被验证的存储器单元相邻的存储器单元的目标状态的第二函数。
24.根据权利要求23所述的非易失性存储器,其中,偏置的感测使得,即使当随后编程相邻存储器单元时,仍然可以从给定存储器单元读取正确的目标状态。
25.根据权利要求23所述的非易失性存储器,其中,所述相邻存储器单元包括与正被验证的存储器单元共享公共的字线的存储器单元。
26.根据权利要求23所述的非易失性存储器,其中,所述相邻存储器单元包括与正被验证的存储器单元共享公共的位线的存储器单元。
27.根据权利要求23所述的非易失性存储器,其中,所述第二函数是来自相邻存储器单元的干扰量的减函数。
28.一种非易失性存储器,包括:
存储器单元的阵列,可由一组字线且由一组位线寻址;
用于一组存储器单元的每个的读/写电路,用于并行地编程和验证;以及
通过向访问该组存储器单元的字线施加预定验证电压电平并向相邻字线施加预定偏压电平进行偏置感测来验证的装置,所述预定验证电压电平是给定目标状态的第一函数,所述预定偏压是与正被验证的存储器单元相邻的存储器单元的目标状态的第二函数。
29.在具有可由字线和位线访问的存储器单元的阵列的非易失性存储器中,一种并行地擦除一组存储器单元而减少由于来自相邻存储器单元的干扰电场的差错的方法,包括:
(a)擦除实质上超过分界擦除状态的预定阈值电平的一组存储器单元;
(b)并行地向该组被擦除的存储器单元施加一定量编程波形电压,来增加被编程的每个存储器单元的阈值电压;
(c)向访问该组存储器单元的字线施加预定阈值电压电平;
(d)向第一相邻字线施加第一预定偏压电平,该第一预定偏压是与正被验证的存储器单元相邻的第一相邻存储器单元的目标状态的第二函数,所述第一相邻存储器单元可由第一相邻字线访问;
(e)向第二相邻字线施加第二预定偏压电平,该第二预定偏压是与正被验证的存储器单元相邻的第二相邻存储器单元的目标状态的第二函数,所述第二相邻存储器单元可由第二相邻字线访问;
(f)感测以相对于预定阈值电平验证编程了的该组擦除存储器单元;
(g)禁止进一步编程在该组中已经被验证的存储器单元;以及
重复(b)到(g)直到该组的存储器单元都被验证了。
30.根据权利要求29所述的方法,其中,该第二函数产生用于验证的预定偏压电平,以便该编程导致,即使当在所述存储器单元后编程相邻存储器单元时,也从该组存储器单元读取正确的目标状态。
31.根据权利要求29所述的方法,其中,所述相邻存储器单元包括与正被验证的存储器单元共享公共的字线的存储器单元。
32.根据权利要求29所述的方法,其中,所述相邻存储器单元包括与正被验证的存储器单元共享公共的位线的存储器单元。
33.根据权利要求32所述的方法,其中,所述第二函数是来自相邻存储器单元的干扰量的减函数。
CN200880116492.3A 2007-09-17 2008-09-02 用于在编程期间补偿邻居单元的干扰电荷的非易失性存储器和方法 Active CN101861624B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/856,625 US7894269B2 (en) 2006-07-20 2007-09-17 Nonvolatile memory and method for compensating during programming for perturbing charges of neighboring cells
US11/856,625 2007-09-17
PCT/US2008/075034 WO2009038961A2 (en) 2007-09-17 2008-09-02 Nonvolatile memory and method for compensating during programming for perturbing charges of neighboring cells

Publications (2)

Publication Number Publication Date
CN101861624A CN101861624A (zh) 2010-10-13
CN101861624B true CN101861624B (zh) 2014-02-19

Family

ID=40001371

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200880116492.3A Active CN101861624B (zh) 2007-09-17 2008-09-02 用于在编程期间补偿邻居单元的干扰电荷的非易失性存储器和方法

Country Status (7)

Country Link
US (2) US7894269B2 (zh)
EP (1) EP2191475B1 (zh)
JP (1) JP2010539630A (zh)
KR (1) KR20100080896A (zh)
CN (1) CN101861624B (zh)
TW (1) TW200929230A (zh)
WO (1) WO2009038961A2 (zh)

Families Citing this family (137)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7499319B2 (en) * 2006-03-03 2009-03-03 Sandisk Corporation Read operation for non-volatile storage with compensation for coupling
CN103258572B (zh) 2006-05-12 2016-12-07 苹果公司 存储设备中的失真估计和消除
US8156403B2 (en) 2006-05-12 2012-04-10 Anobit Technologies Ltd. Combined distortion estimation and error correction coding for memory devices
WO2007132456A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Memory device with adaptive capacity
US7443729B2 (en) 2006-07-20 2008-10-28 Sandisk Corporation System that compensates for coupling based on sensing a neighbor using coupling
US7885119B2 (en) 2006-07-20 2011-02-08 Sandisk Corporation Compensating for coupling during programming
US7894269B2 (en) * 2006-07-20 2011-02-22 Sandisk Corporation Nonvolatile memory and method for compensating during programming for perturbing charges of neighboring cells
US8060806B2 (en) 2006-08-27 2011-11-15 Anobit Technologies Ltd. Estimation of non-linear distortion in memory devices
JP2008077810A (ja) * 2006-09-25 2008-04-03 Toshiba Corp 不揮発性半導体記憶装置
US7975192B2 (en) 2006-10-30 2011-07-05 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US7924648B2 (en) 2006-11-28 2011-04-12 Anobit Technologies Ltd. Memory power and performance management
US8151163B2 (en) 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
US8151166B2 (en) 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
US7679965B2 (en) * 2007-01-31 2010-03-16 Sandisk Il Ltd Flash memory with improved programming precision
US8223540B2 (en) * 2007-02-02 2012-07-17 Macronix International Co., Ltd. Method and apparatus for double-sided biasing of nonvolatile memory
US8369141B2 (en) 2007-03-12 2013-02-05 Apple Inc. Adaptive estimation of memory cell read thresholds
US8001320B2 (en) 2007-04-22 2011-08-16 Anobit Technologies Ltd. Command interface for memory devices
US8234545B2 (en) 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
WO2008139441A2 (en) 2007-05-12 2008-11-20 Anobit Technologies Ltd. Memory device with internal signal processing unit
US7925936B1 (en) 2007-07-13 2011-04-12 Anobit Technologies Ltd. Memory device with non-uniform programming levels
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
KR101348364B1 (ko) * 2007-08-23 2014-01-07 삼성전자주식회사 메모리 셀의 이진 신호 판정 방법 및 장치
US7652929B2 (en) * 2007-09-17 2010-01-26 Sandisk Corporation Non-volatile memory and method for biasing adjacent word line for verify during programming
US8174905B2 (en) 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US8000141B1 (en) 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
US8527819B2 (en) 2007-10-19 2013-09-03 Apple Inc. Data storage in analog memory cell arrays having erase failures
US8068360B2 (en) 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
US8270246B2 (en) 2007-11-13 2012-09-18 Apple Inc. Optimized selection of memory chips in multi-chips memory devices
US8225181B2 (en) 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
US8209588B2 (en) 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8085586B2 (en) 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
US8156398B2 (en) 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
US7924587B2 (en) 2008-02-21 2011-04-12 Anobit Technologies Ltd. Programming of analog memory cells using a single programming pulse per state transition
US8230300B2 (en) 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US8059457B2 (en) 2008-03-18 2011-11-15 Anobit Technologies Ltd. Memory device with multiple-accuracy read commands
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
EP2308054B1 (en) 2008-07-01 2016-04-13 LSI Corporation Methods and apparatus for interfacing between a flash memory controller and a flash memory array
JP5710475B2 (ja) * 2008-07-01 2015-04-30 エルエスアイ コーポレーション フラッシュ・メモリにおけるソフト・デマッピングおよびセル間干渉軽減のための方法および装置
KR101662621B1 (ko) 2008-07-22 2016-10-05 엘에스아이 코포레이션 플래시 메모리 디바이스 프로그래밍 방법 및 시스템
US7995388B1 (en) 2008-08-05 2011-08-09 Anobit Technologies Ltd. Data storage using modified voltages
US7924613B1 (en) 2008-08-05 2011-04-12 Anobit Technologies Ltd. Data storage in analog memory cells with protection against programming interruption
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
US8000135B1 (en) 2008-09-14 2011-08-16 Anobit Technologies Ltd. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8482978B1 (en) 2008-09-14 2013-07-09 Apple Inc. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
JP5535219B2 (ja) 2008-09-30 2014-07-02 エルエスアイ コーポレーション 基準セルを使用する、メモリ・デバイスの軟データ生成の方法および装置
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
US8713330B1 (en) 2008-10-30 2014-04-29 Apple Inc. Data scrambling in memory devices
US8208304B2 (en) 2008-11-16 2012-06-26 Anobit Technologies Ltd. Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
US8645792B2 (en) * 2008-12-16 2014-02-04 Micron Technology, Inc. Memory with guard value dependent error correction
US8174857B1 (en) 2008-12-31 2012-05-08 Anobit Technologies Ltd. Efficient readout schemes for analog memory cell devices using multiple read threshold sets
US8248831B2 (en) 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
US8228701B2 (en) 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
JP2011008838A (ja) * 2009-06-23 2011-01-13 Toshiba Corp 不揮発性半導体記憶装置およびその書き込み方法
US8180994B2 (en) 2009-07-08 2012-05-15 Sandisk Technologies Inc. Optimized page programming order for non-volatile memory
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8259504B2 (en) * 2009-07-15 2012-09-04 Ememory Technology Inc. Method of programming/erasing the nonvolatile memory
US8134871B2 (en) * 2009-08-05 2012-03-13 Sandisk Technologies Inc. Programming memory with reduced pass voltage disturb and floating gate-to-control gate leakage
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US8089815B2 (en) * 2009-11-24 2012-01-03 Sandisk Technologies Inc. Programming memory with bit line floating to reduce channel-to-floating gate coupling
US8218381B2 (en) * 2009-11-24 2012-07-10 Sandisk Technologies Inc. Programming memory with sensing-based bit line compensation to reduce channel-to-floating gate coupling
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8677203B1 (en) 2010-01-11 2014-03-18 Apple Inc. Redundant data storage schemes for multi-die memory systems
JP2011204299A (ja) * 2010-03-24 2011-10-13 Toshiba Corp 不揮発性半導体記憶装置
US8775913B2 (en) 2010-03-31 2014-07-08 Lsi Corporation Methods and apparatus for computing soft data or log likelihood ratios for received values in communication or storage systems
US8504885B2 (en) 2010-03-31 2013-08-06 Lsi Corporation Methods and apparatus for approximating a probability density function or distribution for a received value in communication or storage systems
US8429500B2 (en) 2010-03-31 2013-04-23 Lsi Corporation Methods and apparatus for computing a probability value of a received value in communication or storage systems
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
JP2011258289A (ja) * 2010-06-10 2011-12-22 Toshiba Corp メモリセルの閾値検出方法
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8645794B1 (en) 2010-07-31 2014-02-04 Apple Inc. Data storage in analog memory cells using a non-integer number of bits per cell
US8856475B1 (en) 2010-08-01 2014-10-07 Apple Inc. Efficient selection of memory blocks for compaction
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
KR101664346B1 (ko) * 2010-10-06 2016-10-11 에스케이하이닉스 주식회사 전압 스큐를 조정하는 비휘발성 메모리 장치 및 그의 제어 방법
US8385132B2 (en) 2010-12-22 2013-02-26 Sandisk Technologies Inc. Alternate bit line bias during programming to reduce channel to floating gate coupling in memory
US9292377B2 (en) 2011-01-04 2016-03-22 Seagate Technology Llc Detection and decoding in flash memories using correlation of neighboring bits and probability based reliability values
US9898361B2 (en) 2011-01-04 2018-02-20 Seagate Technology Llc Multi-tier detection and decoding in flash memories
US9502117B2 (en) 2011-03-14 2016-11-22 Seagate Technology Llc Cell-level statistics collection for detection and decoding in flash memories
JP5404685B2 (ja) 2011-04-06 2014-02-05 株式会社東芝 不揮発性半導体記憶装置
US8848445B2 (en) * 2011-05-17 2014-09-30 Sandisk Technologies Inc. System and method for minimizing write amplification while maintaining sequential performance using logical group striping in a multi-bank system
US8537623B2 (en) 2011-07-07 2013-09-17 Micron Technology, Inc. Devices and methods of programming memory cells
US9076547B2 (en) 2012-04-05 2015-07-07 Micron Technology, Inc. Level compensation in multilevel memory
US9030870B2 (en) * 2011-08-26 2015-05-12 Micron Technology, Inc. Threshold voltage compensation in a multilevel memory
US8837223B2 (en) 2011-11-21 2014-09-16 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device and method for manufacuring the same
JP2013200924A (ja) * 2012-03-26 2013-10-03 Toshiba Corp 不揮発性半導体記憶装置
KR101893562B1 (ko) 2012-01-09 2018-10-04 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
TWI497497B (zh) * 2012-03-19 2015-08-21 Macronix Int Co Ltd 記憶體中動態感測區間的方法與裝置
CN103366826B (zh) * 2012-04-06 2016-03-30 北京兆易创新科技股份有限公司 一种nand闪存芯片及其棋盘格检查时的芯片编程方法
JP5781109B2 (ja) * 2013-03-01 2015-09-16 株式会社東芝 不揮発性半導体記憶装置
TWI497509B (zh) * 2013-04-01 2015-08-21 Macronix Int Co Ltd 非揮發性記憶體及其程式化
JP2014225310A (ja) * 2013-05-16 2014-12-04 株式会社東芝 不揮発性半導体記憶装置
US9183940B2 (en) 2013-05-21 2015-11-10 Aplus Flash Technology, Inc. Low disturbance, power-consumption, and latency in NAND read and program-verify operations
US9263137B2 (en) 2013-06-27 2016-02-16 Aplus Flash Technology, Inc. NAND array architecture for multiple simutaneous program and read
US20160148700A1 (en) * 2013-07-08 2016-05-26 Wilus Institute Of Standards And Technology Inc. Memory system and data procesing method for memory
WO2015004714A1 (ja) 2013-07-08 2015-01-15 株式会社 東芝 半導体記憶装置
WO2015013689A2 (en) 2013-07-25 2015-01-29 Aplus Flash Technology, Inc. Nand array hiarchical bl structures for multiple-wl and all -bl simultaneous erase, erase-verify, program, program-verify, and read operations
KR102131060B1 (ko) 2013-08-14 2020-07-08 삼성전자주식회사 불휘발성 메모리 장치의 읽기 및 쓰기 동작 방법
US9293205B2 (en) 2013-09-14 2016-03-22 Aplus Flash Technology, Inc Multi-task concurrent/pipeline NAND operations on all planes
US9613704B2 (en) 2013-12-25 2017-04-04 Aplus Flash Technology, Inc 2D/3D NAND memory array with bit-line hierarchical structure for multi-page concurrent SLC/MLC program and program-verify
US9336891B2 (en) 2014-07-02 2016-05-10 Sandisk Technologies Inc. Look ahead read method for non-volatile memory
US9659636B2 (en) 2014-07-22 2017-05-23 Peter Wung Lee NAND memory array with BL-hierarchical structure for concurrent all-BL, all-threshold-state program, and alternative-WL program, odd/even read and verify operations
US9312010B1 (en) * 2014-10-07 2016-04-12 Sandisk Technologies Inc. Programming of drain side word line to reduce program disturb and charge loss
US9318210B1 (en) * 2015-02-02 2016-04-19 Sandisk Technologies Inc. Word line kick during sensing: trimming and adjacent word lines
US9564226B1 (en) * 2015-10-30 2017-02-07 Sandisk Technologies Llc Smart verify for programming non-volatile memory
US9721652B2 (en) 2015-11-17 2017-08-01 Sandisk Technologies Llc State dependent sensing for wordline interference correction
KR102473167B1 (ko) 2015-12-18 2022-12-02 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
US10297314B2 (en) * 2016-05-25 2019-05-21 Nxp Usa, Inc. Systems and methods for non-volatile flip flops
CN109791792B (zh) 2016-09-23 2023-08-22 铠侠股份有限公司 存储装置
CN106782656B (zh) * 2016-12-02 2020-05-08 武汉新芯集成电路制造有限公司 一种提升闪存存储器数据保持力的方法
JP6684744B2 (ja) 2017-03-24 2020-04-22 キオクシア株式会社 メモリシステム、メモリコントローラ、およびメモリシステムの制御方法
KR20180118840A (ko) * 2017-04-21 2018-11-01 에스케이하이닉스 주식회사 메모리소자의 쓰기 디스터번스 억제를 위한 어드레스 분산 장치 및 방법
CN108986861B (zh) * 2017-06-02 2023-09-26 三星电子株式会社 对非易失性存储器装置进行编程的方法
KR102320045B1 (ko) * 2017-09-20 2021-11-01 삼성전자주식회사 비휘발성 메모리 장치 및 이의 동작 방법
KR102392056B1 (ko) * 2017-12-27 2022-04-28 삼성전자주식회사 메모리 장치의 데이터 독출 방법, 메모리 컨트롤러의 제어 방법 및 이들을 포함하는 저장 장치
KR102124064B1 (ko) * 2018-07-17 2020-06-17 한국과학기술연구원 플래시 메모리 시스템 및 그것의 양자화 신호 생성 방법
CN109859782B (zh) * 2019-01-22 2021-04-06 上海华虹宏力半导体制造有限公司 双分离栅闪存的参考电流产生方法
CN109979509B (zh) * 2019-03-29 2020-05-08 长江存储科技有限责任公司 一种三维存储器及其编程操作方法
US10943662B1 (en) 2019-12-10 2021-03-09 Western Digital Technologies, Inc. Different word line programming orders in non-volatile memory for error recovery
US11024393B1 (en) 2020-01-09 2021-06-01 Sandisk Technologies Llc Read operation for non-volatile memory with compensation for adjacent wordline
JP2021131919A (ja) 2020-02-20 2021-09-09 キオクシア株式会社 半導体記憶装置及びその読み出し方法
US11670380B2 (en) 2020-12-07 2023-06-06 Sandisk Technologies Llc Two-sided adjacent memory cell interference mitigation
US11342033B1 (en) 2020-12-28 2022-05-24 Sandisk Technologies Llc Look neighbor ahead for data recovery
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory
WO2023113855A1 (en) * 2021-12-13 2023-06-22 Sandisk Technologies Llc Non-volatile memory with data refresh
CN114822650B (zh) * 2022-05-16 2022-11-29 北京得瑞领新科技有限公司 Nand闪存的数据写入方法、装置、存储介质及存储设备
CN114995750B (zh) * 2022-05-25 2022-11-18 北京得瑞领新科技有限公司 提高闪存数据可靠性的方法、装置、存储介质及存储设备
US20230395168A1 (en) * 2022-06-02 2023-12-07 Micron Technology, Inc. Managing program verify voltage offsets for charge coupling and lateral migration compensation in memory devices
CN117238330B (zh) * 2023-11-14 2024-03-12 杭州广立微电子股份有限公司 一种芯片时序调节装置和芯片

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960002006B1 (ko) * 1991-03-12 1996-02-09 가부시끼가이샤 도시바 2개의 기준 레벨을 사용하는 기록 검증 제어기를 갖는 전기적으로 소거 가능하고 프로그램 가능한 불휘발성 메모리 장치
JP3080743B2 (ja) * 1991-12-27 2000-08-28 日本電気株式会社 不揮発性半導体記憶装置
US6222762B1 (en) * 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US5555204A (en) * 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
KR0169267B1 (ko) * 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
US5903495A (en) * 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
JP3967409B2 (ja) * 1996-12-26 2007-08-29 株式会社東芝 半導体集積回路装置
US5930167A (en) * 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
US5867429A (en) * 1997-11-19 1999-02-02 Sandisk Corporation High density non-volatile flash memory without adverse effects of electric field coupling between adjacent floating gates
US6522580B2 (en) * 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
US6456528B1 (en) * 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
ITRM20020369A1 (it) * 2002-07-09 2004-01-09 Micron Technology Inc Architettura a burst per memoria a doppio bus.
US6781877B2 (en) * 2002-09-06 2004-08-24 Sandisk Corporation Techniques for reducing effects of coupling between storage elements of adjacent rows of memory cells
US7046568B2 (en) * 2002-09-24 2006-05-16 Sandisk Corporation Memory sensing circuit and method for low voltage operation
US7196931B2 (en) * 2002-09-24 2007-03-27 Sandisk Corporation Non-volatile memory and method with reduced source line bias errors
US7327619B2 (en) * 2002-09-24 2008-02-05 Sandisk Corporation Reference sense amplifier for non-volatile memory
US6859397B2 (en) * 2003-03-05 2005-02-22 Sandisk Corporation Source side self boosting technique for non-volatile memory
US7237074B2 (en) * 2003-06-13 2007-06-26 Sandisk Corporation Tracking cells for a memory system
JP4005000B2 (ja) * 2003-07-04 2007-11-07 株式会社東芝 半導体記憶装置及びデータ書き込み方法。
JP4220319B2 (ja) * 2003-07-04 2009-02-04 株式会社東芝 不揮発性半導体記憶装置およびそのサブブロック消去方法
JP4287222B2 (ja) * 2003-09-03 2009-07-01 株式会社東芝 不揮発性半導体記憶装置
US7064980B2 (en) * 2003-09-17 2006-06-20 Sandisk Corporation Non-volatile memory and method with bit line coupled compensation
KR100558552B1 (ko) * 2003-12-30 2006-03-10 삼성전자주식회사 반도체 메모리장치의 데이터 억세스회로
US7173863B2 (en) 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
US6888758B1 (en) * 2004-01-21 2005-05-03 Sandisk Corporation Programming non-volatile memory
JP4170952B2 (ja) * 2004-01-30 2008-10-22 株式会社東芝 半導体記憶装置
US7177977B2 (en) 2004-03-19 2007-02-13 Sandisk Corporation Operating non-volatile memory without read disturb limitations
US7313649B2 (en) * 2004-04-28 2007-12-25 Matsushita Electric Industrial Co., Ltd. Flash memory and program verify method for flash memory
KR100632942B1 (ko) * 2004-05-17 2006-10-12 삼성전자주식회사 불 휘발성 메모리 장치의 프로그램 방법
JP4410188B2 (ja) * 2004-11-12 2010-02-03 株式会社東芝 半導体記憶装置のデータ書き込み方法
JP4672673B2 (ja) * 2004-11-30 2011-04-20 スパンション エルエルシー 半導体装置および半導体装置の制御方法
US7120051B2 (en) * 2004-12-14 2006-10-10 Sandisk Corporation Pipelined programming of non-volatile memories using early data
US20060140007A1 (en) * 2004-12-29 2006-06-29 Raul-Adrian Cernea Non-volatile memory and method with shared processing for an aggregate of read/write circuits
US7196928B2 (en) * 2005-04-05 2007-03-27 Sandisk Corporation Compensating for coupling during read operations of non-volatile memory
US7187585B2 (en) * 2005-04-05 2007-03-06 Sandisk Corporation Read operation for non-volatile storage that includes compensation for coupling
KR101012129B1 (ko) 2005-08-01 2011-02-07 샌디스크 코포레이션 자기 조정 최대 프로그램 루프에 의한 비휘발성 메모리의프로그래밍
US7752382B2 (en) * 2005-09-09 2010-07-06 Sandisk Il Ltd Flash memory storage system and method
US7400532B2 (en) * 2006-02-16 2008-07-15 Micron Technology, Inc. Programming method to reduce gate coupling interference for non-volatile memory
US7436733B2 (en) * 2006-03-03 2008-10-14 Sandisk Corporation System for performing read operation on non-volatile storage with compensation for coupling
CN101395673B (zh) * 2006-03-03 2011-09-21 桑迪士克股份有限公司 对浮动栅极耦合具有补偿的非易失性存储装置的读取操作
US7606084B2 (en) * 2006-06-19 2009-10-20 Sandisk Corporation Programming differently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory
US7885119B2 (en) * 2006-07-20 2011-02-08 Sandisk Corporation Compensating for coupling during programming
US7495953B2 (en) * 2006-07-20 2009-02-24 Sandisk Corporation System for configuring compensation
US7400535B2 (en) * 2006-07-20 2008-07-15 Sandisk Corporation System that compensates for coupling during programming
US7443729B2 (en) * 2006-07-20 2008-10-28 Sandisk Corporation System that compensates for coupling based on sensing a neighbor using coupling
US7506113B2 (en) * 2006-07-20 2009-03-17 Sandisk Corporation Method for configuring compensation
US7894269B2 (en) 2006-07-20 2011-02-22 Sandisk Corporation Nonvolatile memory and method for compensating during programming for perturbing charges of neighboring cells
US7522454B2 (en) * 2006-07-20 2009-04-21 Sandisk Corporation Compensating for coupling based on sensing a neighbor using coupling
US7616506B2 (en) * 2006-12-28 2009-11-10 Sandisk Corporation Systems for complete word line look ahead with efficient data latch assignment in non-volatile memory read operations
WO2008083132A2 (en) 2006-12-28 2008-07-10 Sandisk Corporation Complete word line look ahead with efficient data latch assignment in non-volatile memory read operations
US7679965B2 (en) * 2007-01-31 2010-03-16 Sandisk Il Ltd Flash memory with improved programming precision
US7630249B2 (en) * 2007-06-21 2009-12-08 Sandisk Corporation Intelligent control of program pulse duration
JP4510060B2 (ja) 2007-09-14 2010-07-21 株式会社東芝 不揮発性半導体記憶装置の読み出し/書き込み制御方法
US7652929B2 (en) * 2007-09-17 2010-01-26 Sandisk Corporation Non-volatile memory and method for biasing adjacent word line for verify during programming

Also Published As

Publication number Publication date
EP2191475A2 (en) 2010-06-02
US7894269B2 (en) 2011-02-22
US20080019188A1 (en) 2008-01-24
US8400839B2 (en) 2013-03-19
EP2191475B1 (en) 2013-05-01
WO2009038961A3 (en) 2009-06-25
JP2010539630A (ja) 2010-12-16
TW200929230A (en) 2009-07-01
CN101861624A (zh) 2010-10-13
KR20100080896A (ko) 2010-07-13
US20110141818A1 (en) 2011-06-16
WO2009038961A2 (en) 2009-03-26

Similar Documents

Publication Publication Date Title
CN101861624B (zh) 用于在编程期间补偿邻居单元的干扰电荷的非易失性存储器和方法
CN101861623B (zh) 编程期间偏置相邻字线以验证的非易失性存储器和方法
EP2047474B1 (en) Floating gate memory with compensating for coupling during programming
US7590002B2 (en) Resistance sensing and compensation for non-volatile storage
CN102947888B (zh) 在非易失性存储元件的感测期间减小沟道耦合效应
US7616498B2 (en) Non-volatile storage system with resistance sensing and compensation
EP2047473B1 (en) Compensating for coupling between adjacent storage elements in a nonvolatile memory, based on sensing a neighbor using coupling
EP2748819B1 (en) Read compensation for partially programmed blocks of non-volatile storage
CN101512662B (zh) 基于使用耦合感测邻近者来对非易失性存储器中的相邻存储元件之间的耦合进行补偿
CN101512667B (zh) 具有在编程期间的耦合补偿的浮动栅极存储器
KR101041595B1 (ko) 비휘발성 메모리에서 개선된 판독 동작을 위해 선택 상태에서 보상을 사용하여 감지 및 다른 크기의 마진 프로그래밍
EP2022060B1 (en) Verify operation for non-volatile storage using different voltages
TW200919476A (en) Non-volatile storage with source bias all bit line sensing and the related method therefor
EP2084710B1 (en) Resistance sensing and compensation for non-volatile storage
WO2008011441A2 (en) Method for configuring compensation for coupling between adjacent storage elements in a nonvolatile memory

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: SANDISK TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: SANDISK CORP.

Effective date: 20120625

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20120625

Address after: texas

Applicant after: Sandisk Corp.

Address before: American California

Applicant before: Sandisk Corp.

C14 Grant of patent or utility model
GR01 Patent grant
C56 Change in the name or address of the patentee
CP01 Change in the name or title of a patent holder

Address after: texas

Patentee after: DELPHI INT OPERATIONS LUX SRL

Address before: texas

Patentee before: Sandisk Corp.