具有降低的数据存储要求的存储器的多遍编程的制作方法

文档序号:6768282阅读:158来源:国知局
专利名称:具有降低的数据存储要求的存储器的多遍编程的制作方法
技术领域
本发明涉及非易失性存储器的技术。
背景技术
半导体存储器已经变得更普遍用在各种电子设备中。例如,非易失性半导体存储 器用在蜂窝电话、数码相机、个人数字助理、移动计算设备、非移动计算设备和其他设备中。 电可擦除可编程只读存储器(EEPROM)和闪存位列最普遍使用的非易失性半导体存储器 中。EEPROM和闪存两者都利用位于半导体衬底中的沟道区上方并与之隔离的浮置栅 极。该浮置栅极位于源极和漏极区之间。在浮置栅极之上并与之隔离地提供控制栅极。晶 体管的阈值电压受保留在浮置栅极上的电荷量控制。即,在晶体管导通前必须施加到控制 栅极以允许其源极和漏极之间导电的电压的最小量受浮置栅极上的电荷水平控制。当编程EEPROM或诸如NAND闪存器件的闪存器件时,通常编程电压被施加到控制 栅极,并且位线接地。来自沟道的电子被注入到浮置栅极中。当电子在浮置栅极中累积时, 浮置栅极变为充负电,并且存储器单元的阈值电压升高,使得存储器单元处于已编程状态。 可以在题为 “Source Side SelfBoosting Technique For Non-Volatile Memory” 的美国 专利 6859397 以及题为 “Detecting Over Programmed Memory” 的美国专利 6917M5 中找 到关于编程的更多信息,两者通过全部参考被并于此。—些EEPROM和闪存器件具有用于存储两个范围的电荷的浮置栅极,因此存储器 单元可以在两个状态(已擦除状态和已编程状态)之间被编程/擦除。这样的闪存器件有 时被称为二进制闪存器件。通过识别由禁止(forbidden)范围分隔的多个不同的允许/有效编程阈值电压范 围来实现多状态闪存器件。每个不同的阈值电压范围对应于在存储器器件中被编码的数据 位集合的预定值。可能由于基于在邻近浮置栅极中存储的电荷的电场的耦合而发生在浮置栅极上 存储的表观电荷(apparent charge)的漂移。目标浮置栅极的邻近浮置栅极的一个例子包 括连接到相同字线并连接到邻近位线的浮置栅极。浮置栅极与浮置栅极耦合的效应对于多状态器件具有更大关系,因为在多状态器 件中,允许的阈值电压范围和禁止的范围比二进制器件中的更窄。因此,浮置栅极与浮置栅 极耦合可能导致存储器单元从允许的阈值电压范围漂移到禁止的范围。浮置栅极与浮置栅极耦合可能发生在已经在不同时间被编程的邻近存储器单元 的各集合之间。例如,第一存储器单元被编程以将一个水平的电荷添加到其与一个数据集对应的浮置栅极。随后,一个或多个邻近存储器单元被编程以将一个水平的电荷添加到它 们的与第二数据集合对应的浮置栅极。在该一个或多个邻近存储器单元被编程之后,由于 耦合到第一存储器单元的邻近存储器单元上的电荷的影响,从第一存储器单元读取的电荷 水平看起来不同于已编程的。与邻近存储器单元的耦合可能将读取的表观电荷水平漂移足 够以导致对所存储的数据的错误读取的量。浮置栅极与浮置栅极耦合还可能发生在已经同时被编程的邻近存储器单元的各 集合之间。例如,两个邻近的多状态存储器单元可以被编程到不同的目标水平,使得第一存 储器单元被编程到与较低阈值电压对应的状态,并且第二存储器单元被编程到与较高阈值 电压对应的状态。被编程到与较低阈值电压对应的状态的存储器单元很可能达到该状态并 且被锁定以不在第二存储器单元达到与较高阈值电压对应的状态之前进一步编程。在第二 存储器单元达到与较高阈值电压对应的状态之后,其将耦合到第一存储器单元并致使第一 存储器单元具有比已编程的更高的视在阈值电压。随着存储器单元在尺寸上继续缩小,预期阈值电压的本来的编程和擦除分布由于 短沟道效应、更大氧化物厚度/耦合率变化和更多沟道掺杂波动而增加,由此降低邻近状 态之间的可用分隔。该影响对于多状态存储器比对仅使用两个状态的存储器(二进制存储 器)更大得多。此外,字线之间的间隔以及位线之间的间隔的减小还将增加邻近浮置栅极 之间的耦合。因此,需要降低邻近浮置栅极之间的耦合的效应。此外,由于市场竞争,任何这样 的方法应该是节省成本的并有效利用硬件。

发明内容
提供了用于以节省成本的方式降低在邻近浮置栅极之间的耦合效应的编程技术。在一个实施例中,一种用于操作非易失性存储器的方法,包括(a)编程具体非易 失性存储元件以将其阈值电压升高到在第一验证电平以上的第一电平;(b)在编程之后读 所述具体非易失性存储元件,以确定所述阈值电压已经升高到所述第一验证电平以上;以 及(c)响应于所述读,进一步编程所述具体非易失性存储元件,以将其阈值电压从所述第 一电平升高到在第二验证电平以上的第二电平。在另一实施例中,一种用于操作非易失性存储器的方法,包括对与字线的集合相 关联的非易失性存储元件的集合进行多遍编程操作。该多遍编程操作包括对于每条字线的 至少两个相关联的编程遍,并且按如下顺序进行在该顺序中,具体字线WLn经历一个编程 遍,然后至少第一附加的字线经历至少一个编程遍,然后WLn经历另一遍编程。该方法还包 括在WLn经历该一个编程遍之后并且在第一附加的WL经历该一个编程遍之前进行对WLn 的读操作,并使用来自读操作的结果来进行WLn的相关的附加的遍。在另一实施例中,一种用于操作非易失性存储器的方法,包括对与字线的集合相 关联的非易失性存储元件的集合进行多遍编程操作。该多遍编程操作包括对于每条字线的 至少两个相关联的编程遍,并且按如下顺序进行在该顺序中,具体字线WLn经历一个编程 遍,然后至少第一附加的字线经历部分地编程与WLn相关联的非易失性存储元件的至少一 个编程遍。该方法还包括在WLn经历该一个编程遍之后对WLn进行读操作和相关的误差校 正处理。该方法还包括使用来自读操作的结果以及相关的误差校正处理来进行WLn的另一个编程遍,由此完成与WLn相关联的非易失性存储元件的编程。在另一实施例中,一种非易失性存储装置,包括非易失性存储元件的集合;以及 与该非易失性存储元件的集合通信的一个或多个电路。该一个或多个控制电路(a)编程 具体非易失性存储元件以将其阈值电压升高到在第一验证电平以上的第一电平;(b)在编 程之后读所述具体非易失性存储元件,以确定所述阈值电压已经升高到所述第一验证电平 以上;以及(c)响应于所述读,进一步编程所述具体非易失性存储元件,以将其阈值电压从 所述第一电平升高到在与第二验证电平以上的第二电平。还可以提供相应的方法、系统以及具有用于进行在此提供的方法的可执行代码的 计算机可读或处理器可读的存储器件。


图Ia是NAND串的顶视图。图Ib是NAND串的等效电路图。图Ic是NAND闪存元件的阵列的方框图。图2绘出NAND串的截面视图。图3绘出在两遍编程技术中存储元件集合和相关字线的编程顺序。图如绘出在编程期间施加到存储元件的控制栅极的第一示例脉冲串。图4b绘出在编程期间施加到存储元件的控制栅极的第二示例脉冲串。图如绘出在读操作期间施加到非易失性存储元件的控制栅极的示例电压波形。图fe绘出其中在各编程遍之间读取数据的图3的两遍编程技术的细节。图恥绘出其中在各编程遍之间不读取数据的两遍编程技术的细节。图6a绘出在图3的两遍编程技术的第一、粗略遍之后的阈值电压的改变。图6b绘出在图3的两遍编程技术的第二、精细遍之后的阈值电压的改变。图7a绘出其中在各编程遍之间读并随后访问并误差校正数据的多遍编程处理的 概况。图7b绘出与图3的两遍编程技术对应的多遍编程处理。图8绘出三遍编程技术中的存储元件集合和相关字线的编程顺序。图9绘出其中在各编程遍之间读数据的图8的三遍编程技术的细节。图IOa-IOc绘出与图8相关联的三遍编程技术的阈值电压分布。图11绘出与图8的三遍编程技术对应的多遍编程处理。图12a绘出另外的多遍编程处理。图绘出与图12a相关联的编程技术的阈值电压分布。图13是NAND闪存元件的阵列的方框图。图14是使用单行/列解码器和读/写电路的非易失性存储器系统的方框图。图15是绘出读/写堆叠的一个实施例的方框图。图16图示将存储器阵列组织成全位线存储器架构或奇偶存储器架构的块的例子。
具体实施例方式提供了以节省成本的方式降低邻近浮置栅极之间的耦合的影响的编程技术。闪存系统的一个例子使用NAND结构,该NAND结构包括夹在两个选择栅极之间串 联地布置多个晶体管。串联的晶体管和选择栅极被称为NAND串。图Ia是示出一个NAND 串的顶视图。图Ib是其等效电路。图Ia和图Ib中所示的NAND串包括串联并夹在第一 (漏极侧)选择栅极120和第二(源极侧)选择栅极122之间的四个晶体管100、102、104 和106。选择栅极120经由位线触点(contact) 126将NAND串连接到位线。选择栅极122 将NAND串连接到源极线128。通过向选择线S⑶施加适当的电压来控制选择栅极120。通 过向选择线SGS施加适当的电压来控制选择栅极122。晶体管100、102、104和106的每个 具有控制栅极和浮置栅极。例如,晶体管100具有控制栅极100CG和浮置栅极loore。晶 体管102包括控制栅极102CG和浮置栅极102TO。晶体管104包括控制栅极104CG和浮置 栅极104TO。晶体管106包括控制栅极106CG和浮置栅极106TO。控制栅极100CG连接到 字线WL3,控制栅极102CG连接到字线WL2,控制栅极104CG连接到字线WLl,并且控制栅极 106CG连接到字线mi)。注意,尽管图Ia和图Ib示出了 NAND串中的四个存储器单元,但是仅作为例子而 提供四个存储器单元的使用。NAND串可以具有少于四个存储器单元或者多于四个存储器单 元。例如,一些NAND串将包括八个存储器单元、16个存储器单元、32个存储器单元、64个存 储器单元、1 个存储器单元等等。在此的讨论不限于NAND串中的任何特定数量的存储器 单元。一个实施例使用66个存储器单元的NAND串,其中64个存储器单元用于存储数据, 并且两个存储器单元被称为 存储器单元,因为它们不存储数据。使用NAND结构的闪存系统的通常架构将包括几个NAND串。每个NAND串通过由选 择线SGS控制的其源极选择栅极连接到公共源极线,并通过由选择线S⑶控制的其漏极选 择栅极连接到其相关联的位线。每条位线以及经由位线触点连接到该位线的相应(一个或 多个)NAND串构成(comprise)存储器单元的阵列的列。与多个NAND串共享位线。通常,位 线在与字线垂直的方向上在NAND串之上运行,并连接到感测放大器(sense amplifier).除了 NAND闪存之外,也可以使用其他类型的非易失性存储器件。例如,还从使 用介电层来存储电荷的存储器单元中来制造非易失性存储器器件。代替早前描述的导电 的浮置栅极元件,使用介电层。利用介电存储元件的这种存储器器件已经由Eitan等人的 "NROM :A Novel Localized Trapping,2-BitNonvolatile Memory Cell" IEEE Electron Device Letters, vol. 21,no. 11,2000 年 11 月,543-545 页描述。ONO 介电层跨越源极和漏 极扩散之间的沟道而延伸。用于一个数据位的电荷被局限在与漏极相邻的介电层中,并且 用于另一数据位的电荷被局限在与源极相邻的介电层中。美国专利no. 5768192和6011725 公开了具有夹在两个二氧化硅层之间的俘获(trapping)电介质的非易失性存储器单元。 通过分别读取在电介质内的空间分离的电荷存储区域的二进制状态来实现多状态数据存 储。也可以使用基于M0N0S或TANOS类型的结构或微晶的非易失性存储器。也可以使用其 他类型的非易失性存储器。图Ic是绘出三个NAND串的电路图。使用NAND结构的闪存系统的通常架构将包 括几个NAND串。例如,三个NAND串320、340和360被示出在具有许多NAND串的存储器阵 列中。每个NAND串包括两个选择栅极和四个存储元件。尽管为了简化而图示了四个存储元件,但是当今的NAND串可以具有高达例如32或64个存储元件。例如,NAND串320包括选择栅极322和327以及存储元件323-326,NAND串340 包括选择栅极342和;347以及存储元件;343-;346,NAND串360包括选择栅极362和367以 及存储元件363-366。每个NAND串通过其选择栅极(例如选择栅极327、347或367)连接 到源极线。选择线SGS用于控制源极侧选择栅极。各个NAND串320、340和360通过选择 栅极322、342、362等等中的选择晶体管而连接到各自位线321、341和361。这些选择晶体 管受漏极选择线SGD控制。在其他实施例中,选择线不一定必须是在各NAND串中公用的; 即,可以为不同的NAND串提供不同的选择线。WL3连接到存储元件323、343和363的控制 栅极。WL2连接到存储元件324、344和364的控制栅极。连接到存储元件325、345和 365的控制栅极。Wi)连接到存储元件326、346和366的控制栅极。如可见的,每条位线和 相应NAND串包括存储元件的阵列或集合的列。字线(WL3JL2JL1和Wi))包括该阵列或 集合的行。每条字线连接在该行中的每个存储元件的控制栅极。或者,可以通过字线本身 提供控制栅极。例如,WL2提供存储元件324、344和364的控制栅极。实践中,在字线上可 以存在数千的存储元件。每个存储元件可以存储数据。例如,当存储一位数字数据时,存储元件的可能的阈 值电压(Vth)的范围被划分成两个范围,这两个范围被分配了逻辑数据“1”和“0”。在NAND 型闪存的一个例子中,在存储元件被擦除之后Vth是负的,并被定义为逻辑“1”。在编程操 作之后的Vth是正的并被定义为逻辑“0”。当Vth是负的并尝试读时,存储元件将导通以指 示逻辑“1”正被存储。当Vth是正的并尝试读操作时,存储元件将不导通,这指示逻辑“0” 被存储。存储元件还可以存储多级的信息,例如多位数字数据。在此情况下,Vth的范围被 划分为多级的数据。例如,如果存储了四级的信息,则将存在被分配了数据值“11”、“10”、 “01”和“00”的四个Vth范围。在NAND型存储器的一个例子中,在擦除操作之后的Vth是负 的并被定义为“11”。正的Vth值用于“10”、“01”和“00”的状态。被编程到存储元件中的 数据和存储元件的Vth范围之间的具体关系取决于对存储元件采用的数据编码方案。当编程闪存元件时,编程电压被施加到存储元件的控制栅极,并且与存储元件相 关的位线接地。来自沟道的电子被注入浮置栅极中。当电子在浮置栅极中累积时,浮置栅 极变为充负电,并且存储元件的Vth升高。为了向正被编程的存储元件的控制栅极施加编程 电压,将该编程电压施加在适当的字线上。如上所述,每个NAND串中的一个存储元件共享 同一字线。例如,当编程图Ic的存储元件324时,编程电压还将被施加到存储元件344和 364的控制栅极。图2绘出了 NAND串的截面图。该图被简化并不是按比例的。NAND串200包括在 衬底290上形成的源极侧选择栅极206、漏极侧选择栅极224以及八个存储元件208、210、 212、214、216、218、220和222。各组件可以被形成在ρ阱区292上,该ρ阱区本身被形成在 衬底的η阱区四4中。N阱又可以被形成在ρ衬底四6中。供应线202和203可以分别与 P阱区292和η阱区294通信。除了具有电势V皿的位线2 之外,还提供具有电势Vsquke 的源极供应线204。Vses被施加到选择栅极206,并且Vseil被施加到选择栅极224。字线或非 易失性存储元件的源极侧指的是面对NAND串的源极端、例如在源极供应线204处的一侧,而 字线或非易失性存储元件的漏极侧指的是面对NAND串的漏极端、例如在位线226处的一侧。重要的是能够将数据准确地编程到存储器器件中的存储元件中。通常,随着诸如NAND器件的非易失性存储器器件已经缩小到越来越小的尺寸,相邻存储元件之间的间隔也 缩小。这导致更大的电容性耦合,尤其是在浮置栅极之间,这意味着来自相邻存储元件的更 大干扰。电容性耦合包括位线与位线耦合和字线与字线耦合。为了使Vth分布更窄,必须克服干扰影响。一个方案是多遍编程。在一种方法中, 存储元件在一个粗略遍中被编程到比其最终意图的状态低的偏移电平。该偏移电平用于可 以被认为是粗略或“模糊”状态的部分编程的状态。随后,存储元件在另一精细遍中经过剩 余路途被编程到其最终意图的状态。最终编程的状态可以被认为是“精细”状态。接下来 讨论多遍编程技术的一个例子。图3绘出在两遍编程技术中的存储元件集合和相关字线的编程顺序。在此,每个 由方块表示的存储元件的集合与字线Wi)到WL4的集合以及位线BLi-I到BLi+Ι的集合通 信。所绘的组件可以是存储元件、字线和位线的更大集合的子集。在此例子中,提供了五条 字线,其中Wi)是源极侧端字线并且WL4是漏极侧端字线。在实践中,更多的字线通常被安 排在块中,诸如64条或1 条字线。所提供的例示用于绘出本发明的一个实施例的方面。 步骤Sl到S15表示依次进行的步骤。编程顺序可以称为无序(out of sequence)或者Z形次序的字线,因为该顺序涉 及在字线之间的跳回和前进。注意,为每条字线提供粗略遍和精细遍。对与Wi)相关联的 所选存储元件进行第一编程遍(这是步骤ι或S1)。接下来,对mi)进行读操作(S2)。读 操作允许mi)上的存储元件的情况在存储元件受来自相邻字线存储元件的随后编程的耦 合的影响之前被确知。可以使用误差校正码(ECC)来检测在读取的数据中的误差。此外, 可以利用ECC来校正由粗略编程本身引起的错误位或者在粗略编程之后并在粗略读之前 的时段中引起的错误位。假设没有由临时存储引起的错误位。随后,在S3,发生对的粗略编程遍。该编程由于与的耦合而引起mi)的存 储元件的阈值电压的漂移。在S4,发生对mi)的精细编程遍。为了实现此,在一个可能的实 现方式中,使用ECC解码来访问并解码先前读取并存储的数据。读取的数据指示在精细编 程遍中mi)的每个存储元件要被编程到的数据状态。在步骤S4之后,所读取的数据可以被 删除。该方法避免了在粗略编程期间为给定的字线存储用于精细编程的编程数据的需要, 如在以下进一步详细说明的。另外,阈值电压分布被收紧。在S5,对进行读操作,并在S6,对札2进行粗略编程,这由于耦合而引起 的存储元件的阈值电压的漂移。在S7,发生对于WLl的精细编程遍。这可以引起与源极侧 相邻字线Wi)的较小量的耦合。但是,该耦合比由于粗略编程引起的耦合小得多,因此可以 容忍。使用ECC解码来访问并解码先前在S5读取的数据。该读取的数据指示WLl的每个 存储元件在精细编程遍中要被编程到的数据状态。于是该处理继续对其他字线进行,使得 对于给定的字线,存储元件在粗略编程之后、在字线经历来自更高字线的粗略编程的耦合 之前被读,并且读取的数据用于精细编程。除了在S14的读之后没有更高字线被编程之外, 最后的字线、WL4类似地被编程。而是,在S15处发生对于WL4的精细编程。可选地,可以在诸如结合图8所绘的粗略和精细编程遍之前进行另外的初始编程 遍。在图3的方法中,给定的字线直到下一较高字线已经部分被编程才完成编程。实 质上,下一较高字线落后一个编程遍。例如,当Wi)已经完成了精细编程时,WL仅完成粗略编程。可以使用全位线编程,其中字线上的所有位线的存储元件被编程而不管存储元件 是与偶数位线还是奇数位线相关联。但是,其他方法是可能的,包括其中偶数位线被编程、 经历编程和验证操作、然后奇数位线被编程、经历编程和验证操作的方法。在另一方法中, 偶数和奇数位线两者一起被编程、接收编程脉冲,然后偶数位线被验证,并且然后奇数位线 被验证。随后施加下一编程脉冲,于是该处理继续。接下来描述这些方法。图如绘出在编程期间施加到存储元件的控制栅极的第一示例脉冲串400。该脉
冲串包括在一种可能的方法中幅度逐步增加的编程脉冲402、404、406、408、410......以
及在每个编程脉冲后之间的验证脉冲的集合,包括示例的验证脉冲403,该验证脉冲的集合 具有诸如Vta^mVia^·和Vve_e(MSE或者Vva_fine、Vvb_fine和Vve_FINE的幅度,以下进一步讨论。 脉冲幅度是vreM1、vreM2等等。这些脉冲可以固定幅度,或者它们可以以例如固定或变化的速 率而逐步增加。通常,当使用m个数据状态时,使用m-1个验证脉冲。在一种方法中,对每 个编程遍使用相同的脉冲串。但是,还能够在不同的编程遍中使用不同的脉冲串。例如,第 二编程遍可以使用以比第一遍更高的初始VreM开始的脉冲串。在一个实施例中,编程脉冲具有以例如12V开始的电压VreM1,并且对于每个相继的 编程脉冲增加例如0. 5V的增量,直到达到最大例如20-25V。在一些实施例中,对于数据正 被编程到的每个状态、例如状态A、B和C,可以存在验证脉冲。在其他实施例中,可以存在 更多或更少的验证脉冲。可以在例如全位线编程期间或者奇偶编程期间使用脉冲串400。在一种类型的奇 偶编程期间,使用重复施加的脉冲串400来编程和验证偶数位线的存储元件,然后使用重 复施加的脉冲串400来编程和验证奇数位线的存储元件。在图4b所示的另一类型的奇偶编程中,偶数位线和奇数位线的存储元件一起被 编程,但是分别进行验证。例如,脉冲串460包括在幅度上逐步增加的编程脉冲442、444、
446,448,450......以及在每个编程脉冲之间的验证脉冲的两个集合,包括示例集合443
和445。在一种可能的方法中,在编程脉冲442和444之间,例如,可以使用验证脉冲的集 合443来验证偶数位线的存储元件,并且可以使用验证脉冲的集合445来验证奇数位线的 存储元件。图如绘出在读操作期间施加到非易失性存储元件的控制栅极的示例电压波形。 在读操作期间,在所选字线上的电压耦合到所选存储元件的控制栅极,并且提供了读电压 的序列V^fV^^和VraK_。。读操作区别于验证操作在于,对于多级存储元件,验证操作通常 仅使用一个比较电平,而读操作使用多个比较电平。此外,验证操作涉及确保存储元件的阈 值电压超过比较电平,而读操作涉及确定存储元件应该被分类到的阈值电压间隔和数据状 态。通常,n-1个读比较电平用于在η个状态之间区分。如以下结合图6a和6b讨论的,可 以取决于正读取被粗略编程的数据还是精细编程的数据,使用不同的读电压。图如绘出其中在各编程遍之间读数据的图3的两遍编程技术的细节。步骤Sl到 SlO对应于图3的类似标号的步骤。“E”表示擦除的状态。时间向右前进。在Sl之前,所 有字线的存储元件都处于已擦除的(E)状态。在S1,对mi)进行粗略编程(“粗略编程”), 然后mi)的存储元件处于粗略编程的状态(“粗略”)。WLl到WL4的存储元件处于E状态。 在S2,读札0,并且存储相关的数据。例如,当存在四个可能的数据状态时,对于每个存储元件可以存储两位数据。通常,当存在2N个状态时,存储N位。在S3,对WLl进行粗略编程。 WLl的存储元件处于粗略状态,并且WL2到WL4的存储元件处于E状态。在S4,访问对于Wi)的读取的数据以用在Wi)的精细编程中。实质上,读取的数据 指示Wi)的每个存储元件在精细编程期间要被编程到的数据状态。因此,粗略阈值电压分 布提供了用于精细分布的编程数据。WLO的读取的数据在精细编程之后可以被丢弃,因为不 再需要。注意,仅从一条字线读取的数据需要一次被存储。这降低了编程数据的存储需要 以及将数据移来移去所需的操作,因此允许硬件成本、功耗和存储器芯片上的硬件所使用 的空间的可能降低。数据的读取、存储和随后的访问可以被实现为由命令输入来启动的序 列,并且可以提供存储器器件中的存储位置来临时存储读取的数据。多遍编程对用户将是 显然的。另外,存储器器件中的存储位置可以是易失性的,因为该命令保证了数据的读取、 存储和随后的访问是连续的。在此的技术提供了需要较少的数据存储容量的粗略-精细编程方法。对于4级的 存储元件的传统粗略/精细编程方法需要诸如每位线4位触发器(不是一定要是触发器, 任何存储器是可接受的)的存储器来保持编程数据。另一方面,在此所述的技术的4级单 元仅需要诸如每位线2位触发器(不是一定要是触发器,任何存储器是可接受的)的存储器。在S5,读WLl,并且存储相关的数据。在S6,对WL2进行粗略编程。通常,在WLn上 的粗略编程之前读WLn-I上的粗略分布。WLn-I上的粗略分布仅受来自WLn_2上的精细编 程的耦合的最小干扰。在S6期间,Wi)的存储元件处于精细状态,WLl的存储元件处于粗略 状态,WL3和WL4的存储元件处于E状态。在S7,访问WLl的读取数据以用在WLl的精细编 程中。在精细编程之后可以丢弃WLl的读取数据。在S8,读WL2,并且存储相关的数据。在 59,对札3进行粗略编程。Wi)和的存储元件处于精细状态,WL2的存储元件处于粗略 状态,并且WL4的存储元件处于E状态。在S10,访问WL2的读取数据以用在WL2的精细编 程中。在精细编程之后,可以丢弃WL2的读取数据。随后进行未绘出的另外的步骤。注意,由读粗略分布的时间引起向多遍编程添加读操作的开销成本。但是,该成本 低,因为读取时间通常是整个编程时间的一小部分。图恥绘出其中在各编程遍之间不读取数据的两遍编程技术的细节,作为与图fe 的比较。步骤Si、S3、S4、S6、S7、S9和SlO对应于图中的类似标号的步骤。在该方法 中,来自至少两条字线的编程数据需要同时被存储在存储器器件或存储系统中的某处。例 如,从对Wi)进行粗略编程(SI)时直到进行精细编程(S4),存储mi)的数据。从对WLI进 行粗略编程(S3)时直到进行精细编程(S7),存储WLl的数据。从对WL2进行粗略编程(S6) 时直到进行精细编程(SlO),存储札2的数据,等等。因此,WLO和同时被存储,WLl和 WL2同时被存储,并且WL2和WL3同时被存储,等等。图6a绘出在图3的两遍编程技术的第一、粗略遍之后的阈值电压的改变。该编程 技术被称为全序列编程。编程技术的该部分使用较低或粗略的验证电压。粗略编程指的是利用比精细编程更低的精确度并以比其更快的速率(更大的 AVth/秒)将存储元件朝向其最终意图状态编程的事实。例如可以通过施加具有更高幅度 或者以更快速率增加的编程脉冲来实现该更快的编程。存储元件被编程到作为比最终或精 细的验证电平低的偏移的验证电平。粗略验证电平通常接近于精细验证电平,但是足够低以防止存储元件超过(overshoot)精细验证电平太远。也就是说,允许各单元编程超过精 细验证电平,如所绘的,尽管将单元编程超过精细验证电平太远将导致精细分布的加宽。作为例子,可以存在四个数据状态,包括已擦除状态(E)和三个较高状态A、B和 C。可以使用任意数量的状态,包括两个、四个、八个、十六个或更多。存储元件初始处于E
状态。第一、粗略编程遍使用分别对于状态A、B和C的验证电压V VA-COAESE^ ^vb-COAESE 禾口 Vvc-COARSE
的第一粗略集合。或者将粗略编程遍称为多“遍写”(PW)编程处理的第一遍。就在粗略 编程遍之后,与给定的字线、例如WLn相关联的存储元件具有由长虚线表示的Vth分布。在 WLn上的阈值电压的迁移相对大,导致与相邻字线的存储元件的耦合。在对邻近源极侧字 线WLn-I的精细编程之后,WLn的Vth分布稍微高地漂移,如由短虚线表示。在对邻近漏极 侧字线WLn+Ι的粗略编程之后,WLn的Vth分布显著更高地漂移,如由点线表示。粗略编程 的耦合影响因此比精细编程的更强。在对WLn-I的精细编程之后在WLn上的粗略分布将具有某些读余量,例如这些分 布不重叠。因此,在对WLn-I的精细编程之后读WLn上的粗略分布(读由短虚线表示的分 布)将得到准确的结果。在使用ECC的情况下,可以允许分布的某种量的重叠,同时可以使 用ECC来校正错误位。用于读粗略分布的最佳读电平应该稍低于用于精细分布的电平。例 如,粗略分布的读电平是VraK_A_KSE)、VCGE_B(C0AESE)和VraK_。_KSE),如图6a所绘,并且精细分布 的读电平是VraK_A(FINE)、VCGE_B(FINE)和Vot^fine),如图6b所绘。在对WLn+Ι的粗略编程之后在 WLn上的粗略分布可能不具有良好的读余量,例如这些分布可能重叠,如所示。图6b绘出在图3的两遍编程技术的第二、精细遍之后阈值电压的改变。跟在图6a 的粗略遍之后的第二、精细编程遍使用分别对于状态A、B和C的验证电压VVA_FINE、VVB_FINE和 VTC-FINE的第二较高集合。因此,该验证电压的第二集合中的每第η个验证电压比验证电压 的第一集合中的每第η个验证电压高了增量,该增量对于不同的状态可以相同或不同。这 是多“遍写”编程处理的第二遍。就在作为WLn的精细编程遍的第二编程遍之后,存储元件 具有由点划线表示的Vth分布。在图6b中重复图6a的由点线表示的分布用于参照,箭头指 示各分布如何变窄。在此,存储元件已经被编程到其最终意图状态。但是,在对WLn+Ι的精 细编程之后,WLn的Vth分布稍微更高地偏移,如实线所示。精细编程指的是利用比粗略编程更高的精确度并以比其更低的速率(较小的 △ Vth/秒)将存储元件朝向其最终意图状态编程的事实。例如可以通过施加具有较低幅度 或者以较低速率增加的编程脉冲来实现该较慢编程。图7a绘出其中在各编程遍之间读并随后访问并误差校正数据的多遍编程处理的 概况。最初,要被编程的数据可以是ECC编码的形式。通常可以使用检测和校正误差的纠 错码或者检测但不校正误差的误差检测码。多遍编程操作开始于步骤700。在步骤702,对 具体字线、例如WLn进行粗略编程。在步骤704,对不强耦合到该具体字线的另一字线、例 如WLn-I进行编程。例如,该编程可以是对WLn-I的精细编程。在步骤706,读具体字线并 存储相关数据。在步骤708,对确实导致与该具体字线的可感知耦合的另一字线进行编程。 例如,该编程可以是WLn+Ι的粗略编程。具体地,在步骤710,该具体字线的存储元件的Vth 由于耦合而漂移。步骤712包括访问WLn的存储的数据并使用ECC进行误差校正处理。在步骤714, 使用访问的数据对该具体字线进行精细编程,并且在步骤716丢弃对该具体字线的存储的数据。例如,可以改写(write over)该数据,因为其不再需要。图7b绘出与图3的两遍编程技术对应的多遍编程处理。该编程操作开始于步骤 720。在步骤725,字线索引被设置为0,其表示第一字线。字线通常在诸如NAND串的字线 集合的源极侧以0开始被依次标号。步骤730包括Wi)的粗略编程,并且步骤735包括读 WLO0步骤755将索引递增到例如1。如果在决定步骤760中索引不在最后的字线,则流程 前进到740,其包括WfLi (例如札1)的粗略编程,并且步骤745包括访问W^Li-I (例如Wi)) 粗略读的数据并进行WLi-I的精细编程。步骤750包括读WLi (例如WLl)并存储相关数据。步骤755再次递增索引例如到2。如果在决定步骤760中该索引不在最后的字线, 则流程前进到740,其包括WLi (例如WL2)的粗略编程,并且步骤745包括访问WLi-I (例 如WLl)粗略读的数据并进行WLi-I的精细编程。步骤750包括读WLi (例如WL2)并存储 相关数据。从而处理继续直到在决定步骤760索引处于最后的字线。在图3的例子中,最后 的字线由i = 4表示。这时,由于没有比最后的字线更高的字线的事实,稍微修改该编程。 在步骤765,发生WfLi (例如札4)的粗略编程。在步骤770,访问W^Li (例如札4)粗略读的 数据,并对WLi进行精细编程。该编程操作最终结束于步骤775。注意,这是一个示例的编 程序列,因为其他编程序列是可能的。图8绘出在三遍编程技术中的存储元件的集合和相关字线的编程顺序。如图3, 每个由方块表示的存储元件的集合与字线札0到WL4的示例集合以及位线BLi-I到BLi+1 的示例集合通信。所绘的组件可以是存储元件、字线和位线的更大集合的子集。在该例子 中,提供了五条字线,其中Wi)是源极侧端字线,并且WL4是漏极侧端字线。即,Wi)处于诸 如NAND串的串联连接的存储元件的集合的源极端,并且WL4处于该串联连接的存储元件的 集合的漏极端。所提供的图示用于绘出本发明的一个实施例的方面。步骤Sl到S20表示 依次发生的操作。编程的三遍是较低页遍、较高页粗略遍(或第一较高页遍)以及较高页精细遍 (或第二较高页遍),以下进一步描述。Si包括mi)的较低页编程,S2包括WLl的较低页 编程,S3包括mi)的较高页粗略编程,S4包括札2的较低页编程,以及S5包括读mi)。S6 包括WLl的较高页粗略编程,其导致对mi)的耦合干扰。S7包括访问先前读的数据和进行 WLO的较高页精细编程。S8包括札3的较低页编程。S9包括读札1。SlO包括札2的较高 页粗略编程,其导致对WLl的耦合干扰。Sll包括访问先前读的数据并进行WLl的较高页精 细编程。从而该处理继续直到到达最后的字线。在该方法中,给定的字线直到下两个更高字线已经部分被编程才完成编程。实质 上,下一较高字线落后一个编程遍,并且第二较高字线落后两个编程遍。例如,当Wi)已经 完成较高页精细编程时,WL仅完成了较高页粗略编程,并且WL2仅完成较低页编程。图9绘出图8的三遍编程技术的细节,其中在各编程遍之间读数据。步骤Sl到 Sll对应于图8的类似标号的步骤。“E”表示已擦除状态。时间向右前进。在Sl之前,所 有字线的存储元件都处于已擦除状态(E)。在S1,对mi)进行较低页编程,然后,mi)的存 储元件处于较低页状态(“较低页”)。当存储元件处于两个可能的状态之一时,较低页编 程也是两级编程。WLl到札4的存储元件处于E状态。在S2,对进行较低页编程,然后的存储元件处于较低页状态。WLO的存储元件处于较低页状态,并且WL2到WL4处于E状态。在 S3,Wi)经历较高页粗略编程(“粗略编程”)。WLl的存储元件处于较低页状态,并且WL2 到WL4处于E状态。在S4,对WL2进行较低页编程,然后WL2的存储元件处于较低页状态。 WLO的存储元件处于粗略状态,WLl的存储元件处于较低页状态,并且WL3到WL4的存储元 件处于E状态。在S5,读mi)并存储相关数据。在S6,发生对WLl的粗略编程。Wi)的存储元件处 于粗略状态,WL2的存储元件处于较低页状态,并且WL3到WL4的存储元件处于E状态。在 S7,访问mi)数据,并用于mi)的精细编程。然后可以丢弃mi)数据。在ss,发生对WL3的 较低页编程。Wi)的存储元件处于精细较高页状态,WL2的存储元件处于粗略较高页状态, 并且WL4的存储元件处于E状态。在S9,读WL1,并存储相关数据。在S10,发生对于WL2 的粗略编程。Wi)的存储元件处于精细较高页状态,WL2的存储元件处于粗略较高页状态, WL3的存储元件处于较低页状态,并且WL4的存储元件处于E状态。在Sll,WLl经历精细 编程,并且WLl的读的数据可以被丢弃。再次,注意,来自仅一条字线的读的数据需要一次 被存储。这降低了存储需求以及来回移动数据所需的操作。例如,对于四级存储元件,在一个可能的实现方式中,无需在此所述的读操作,编 程的工作区需要存储两位,并且用于随后操作的临时缓冲器需要存储四位,包括要用于要 用来精细编程的WLn+Ι数据的两位以及用于要用来精细编程的WLn数据的两位。因此,对于 每个存储元件需要总共六位存储空间。例如可以通过数据锁存器或触发器来提供工作区, 而通过数据锁存器、触发器、二进制缓冲器或二进制存储器来提供临时缓冲器。进一步的细 节请参见图14和15。相反,利用在此所述的读操作,用于编程的工作区需要存储两位,并且 临时缓冲器需要存储两位,包括用于要用来精细编程的WLn数据的两位。因此,对于每个存 储元件需要总共四位的存储空间。利用在此所述的编程技术,结果,每个存储元件节省了两 位。在另一可能的实现方式中,工作区需要存储三位,并且用于随后操作的临时缓冲 器需要存储两位,包括用于要用来精细编程的WLn数据的两位。因此,对于每个存储元件需 要总共五位的存储空间。相反,禾Ij用在此所述的编程技术,结果,每个存储元件节省了一位。随着字线中几百或几千的存储元件,存储需求的节省是极大的。想到,存储器器件 可以被设计为具有降低的存储需求来节约成本。此外,可以降低功耗。注意,随后还进行未绘出的另外的步骤。图IOa-IOc绘出了与图8相关联的三遍编程技术的阈值电压分布。图IOa绘出在其中使用了中间验证电压的第一较低页编程遍之后的阈值电压的 改变。在此,编程处理在三个阶段中发生。初始阶段涉及对于意图被编程到最终状态B或 C的存储元件使用中间验证电压Vvint来编程。意图被编程到最终状态A的存储元件维持处 于已擦除状态。该初始阶段可能涉及编程数据较低页。就在WLn的较低页编程之后,WLn 的INT Vth分布由INT分布的长虚线表示。在对WLn-I的粗略编程之后,INT Vth分布稍微 更高地漂移,如由短虚线表示。在对WLn+Ι的粗略编程之后,WLn的INT Vth分布稍微更高 地漂移,如由点线表示。图IOb绘出在其中使用较低验证电压的作为粗略较高页遍的第二遍之后的阈值 电压的改变。在图IOa的初始阶段之后,第一“遍写”编程遍使用分别对于状态A、B和C的验证电压ννΑ_。ΜΚΕ、ννΒ_ωΑΚΕ和νν。_ωΑΚΕ的第一较低集合。意图被编程到最终状态A的存储元 件从状态E开始被编程,并且意图被编程到最终状态B或C的存储元件从状态INT开始被 编程。在图IOb中重复图IOa的点线用于参照。存储元件被编程到作为低于最终状态的偏 移的电平。该编程阶段可以是编程数据的较高页的第一粗略遍。就在WLn的粗略较高页编程遍之后,例如WLn的存储元件具有由点划线表示的Vth 分布。在对WLn-I的精细编程之后,WLn的Vth分布稍微更高地漂移,如由点划线所示。在 对WLn+Ι的粗略编程之后,WLn的Vth分布稍微更高地漂移,如由虚线-虚线-点线表示。粗 略较高页分布的读电平是V^^^^pV^^a^^dnV^^a^^)。为了参照还绘出了分别对于 状态A、B和C的示例控制栅极读电压VraK_AfcMKSE)、VraK_BtoAKSE)和V ^。^^)。图IOc绘出在其中使用较高验证电压的第三精细较高页遍之后的阈值电压的改 变。从图IOb到图IOc的转变类似于从图6a到图6b的转变。在图IOb的第一“遍写”编程 遍之后,第二“遍写”编程遍使用分别对于状态A、B和C的验证电压Vva_fine、Vvb_fine和VTC_FINE 的第二较高集合。意图被编程到最终状态A、B或C的存储元件从由从图IOb重复的虚线-虚 线-点线表示的各自较低偏移状态开始被编程。为了参照还绘出了分别对于状态A、B和C 的示例控制栅极读电压VraK_A( E)、VCGE_B(FINE)和VraK_etoNE)。该编程阶段可以是编程较高页数 据的第二精细遍。就在WLn的精细较高页编程遍之后,存储元件具有由点线表示的Vth分布。为了参 照在图IOc中重复由虚线-虚线-点线表示的图IOb的分布,箭头指示分布如何变窄。在 对WLn+Ι的精细编程之后,WLn的Vth分布稍微更高漂移,如由实线所示。接下来讨论示例的多遍编程技术的进一步的细节。在一个示例实现方式中,非易 失性存储元件使用四个数据状态每存储元件存储两位数据。例如,假设状态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,则存储元件的电压的阈值升高,使得存储元件被编程到状 态INT。在一个实施例中,在存储元件从状态E编程到状态INT之后,在NAND串中的其相 邻存储元件(WLn+Ι)则将关于其较低页被编程。例如,回去查看图lb,在编程了存储元件 106的较低页之后,将编程存储元件104的较低页。在编程存储元件104之后,如果存储元 件106具有从状态E升高到状态INT的Vth,则浮置栅极与浮置栅极耦合效应将使存储元件 106的表观Vth升高。这将具有加宽状态INT的Vth分布的效果。当编程较高页时,Vth分布 的这种表观的加宽被大部分修正。如果存储元件处于状态E并且较高页要保持在1,则存储元件将保持在状态E中。 如果存储元件处于状态E并且其较高页数据要被编程到0,则存储元件的Vth将升高,使得 存储元件处于状态A中。如果存储元件处于INT阈值电压分布,并且较高页数据要保持在 1,则存储元件将被编程到最终状态B。如果存储元件处于INT阈值电压分布,并且较高页数据要变成数据0,则存储元件的Vth将升高,使得存储元件处于状态C。替换的状态编码的例 子是当较高页数据是1时从分布INT移动到状态C,并且当较高页数据是0时,移动到状态 B0尽管图IOa-C提供了关于四个数据状态和两页数据的例子,但是所教导的概念可 以应用于具有任意数量的状态和页的其他实现方式。图11绘出与图8的三遍编程技术对应的多遍编程处理。编程操作开始于步骤 1100。在步骤1105,字线索引被设置为ο以表示初始源极侧字线。步骤1110包括mi)的 较低页编程。步骤1115包括WLl的较低页编程。步骤1120包括mi)的粗略较高页编程。 步骤1145第一次将索引递增到例如i = 1。如果在决定步骤1150还未达到最后字线的索 弓丨,则进行步骤1125到1145的处理。具体地,步骤1125包括WLi+1 (例如WL2)的较低页 编程,步骤1130包括读WLi-I (例如WL0)并存储相关数据,步骤1135包括WLi (例如WLl) 的粗略编程。步骤1140包括访问WLi-I (例如Wi))粗略读的数据并进行WLi-I的精细较 高页编程。步骤1145将索引递增到i = 2,并且再次进行步骤1125-1145的处理。具体地, 步骤1125包括WLi+1 (例如WL3)的较低页编程,步骤1130包括读WLi-I (例如WLl)并存 储相关数据,步骤1135包括WLi (例如WL2)的粗略编程。步骤1140包括访问WLi-I (例如 WLl)粗略读的数据并进行WLi-I的精细较高页编程。在步骤1145再次递增索弓I,并且再次进行步骤1125到1145,直到在决定步骤 1150达到最后的字线。在这点上,进行步骤1155到1190,这涉及结束最后几条字线的编程 处理。例如,对于最后的字线i = 4,如图8所绘,仅作为例示,步骤1155包括读WLi-2(例 如WL2),步骤1160包括WLi-I (例如WL3)的粗略较高页编程,并且步骤1165包括访问 WLi-2(例如WL2)粗略读的数据并使用其来进行WLi-2的精细编程。步骤1170包括读 WLi-I (例如札3),步骤1175包括WfLi (例如札4)的粗略较高页编程,并且步骤1180包括 访问WLi-I (例如WL3)粗略读的数据并使用其来进行WLi-I的精细编程。步骤1185包括 读WLi (例如WL4),并且步骤1190包括访问WLi (例如WL4)粗略读的数据并使用其来进行 WLi的精细编程。编程操作结束于步骤1195。接下来结合图讨论进一步的编程选项。图1 绘出除了在A和B状态 之前对C状态进行较高页粗略编程之外类似于图8的另外的多遍编程处理。在此,S3、S6、 S10、S14和S17表示对状态C存储元件进行较高页的粗略编程,然后对状态A和B存储元 件的较高页的粗略编程的步骤。S7、S11、S15、S18和S20表示对于所有状态、例如A、B和C 的较高页的精细编程的步骤。图绘出与图1 相关的编程技术的阈值电压分布。图12b绘出在其中使用中间验证电压的较低页编程之后的阈值电压的改变。该选 项还可以降低扰乱(disturb)和相邻单元干扰效应的影响。其主要降低位线与位线干扰和 编程扰乱。该编程技术被称为“C最先”或“最高状态最先”,其中C状态表示四个数据状态、 多级实现方式中的最高状态。该技术可以扩展到八个、十六个或其他数量的状态。这种技 术涉及在较低状态单元的粗略编程之前,使用粗略验证电平将所有最高状态单元编程到其 意图的状态。在图12b中,使用Vvint作为验证电平来编程B和C状态存储元件(即,最终分别 要被编程到状态B或C的元件)。长虚线绘出就在WLn的较低页编程之后的WLn的INT Vth分布,短虚线绘出在WLn-I的粗略较高页编程之后的WLn的INT Vth分布,并且点线绘出在 WLn+1的较低页编程之后的WLn的INT Vth分布。图12c绘出由点划线表示的就在C状态存储元件的粗略较高页编程之后的Vth分 布。为了参照,重复图12b的INT状态的点线。对于C状态存储元件的Vth的转变由箭头绘 出。B状态存储元件的Vth保持在INT。图12d绘出其中使用状态A和B的较低验证电压的A和B存储元件的粗略较高 页编程。使用较低验证电压VVA_roAKSE从状态E编程A状态存储元件,并且使用验证电平 VVB_C0AESE从INT状态编程B状态存储元件。为了参照,在图12d中重复图12c的INT状态的 点线。这时,在一个可能的方法中,C状态存储元件被锁定以不编程。A和B存储元件的粗 略较高页编程导致C状态存储元件的Vth从由点划线表示的分布漂移到由虚线-点-点线 (dash-dot-dot line)表示的分布。该虚线-点-点线绘出就在WLn的状态A和B存储元 件的粗略较高页编程之后对于状态A、B和C的WLn的Vth分布。此外,虚线-虚线-点线绘 出在WLn-I的精细较高页编程之后WLn的存储元件的Vth分布,其中经历了小的耦合漂移, 并且虚线绘出在WLn+Ι的粗略较高页编程之后WLn的存储元件的Vth分布,其中经历较大的 耦合漂移。图1 绘出其中使用对于状态A、B和C的较高验证电压的精细较高页编程。具 体地,分别使用较高验证电平VVA_FINE、VVB_FINE和Vve_FINE来编程A、B和C状态存储元件。就在 WLn的精细较高页编程之后,存储元件具有由点线表示的Vth分布。为了参照,在图1 中 重复图12d的由虚线表示的分布,箭头指示该分布如何变窄。在对WLn+Ι的精细编程之后, WLn的Vth分布稍微更高地漂移,如由实线所示。接下来讨论可以进行上述技术的非易失性存储器件的示例实现方式。图13图示诸如图Ia和Ib所示的NAND存储元件的阵列1300的例子。沿着每列, 位线1306耦接到NAND串1325的漏极选择栅极的漏极端13沈。沿着NAND串的每行,源极 线1304可以连接NAND串的源极选择栅极的所有源极端13观。存储元件的阵列被划分成大量的存储元件块。如对于快闪EEPROM系统共同的,块 是擦除的单位。即,每块包含一起被擦除的最小数量的存储元件。每块通常被划分成多个 页。页是编程的最小单位。一页或多页数据通常被存储在存储元件的一行中。例如,一行通 常包含几个交织的页,或者其可以构成一页。一页的所有存储元件将一起被读或编程。另 外,一页可以存储来自一个或多个扇区的用户数据。扇区是由主机使用作为用户数据的传 统单位的逻辑概念;其通常不包含限制于控制器的开销数据。开销数据可以包括已经从扇 区的用户数据计算出的纠错码(EEC)。控制器(以下描述)的一部分在数据被编程到阵列 中时计算ECC,并且还在从该阵列读数据时检查该ECC。或者,ECC和/或其他开销数据被 存储在与它们所属于的用户数据不同的页中、或者甚至不同块中。用户数据的扇区通常是512字节,对应于磁盘中的扇区的大小。开销数据通常是 另外的16-20字节。大量页形成块,从8页到例如高达32、64、1观或更多页任意。在一些 实施例中,NAND串的一行包括一块。在一个实施例中通过将ρ阱升高到擦除电压(例如14-22V)达足够的时间段并将 所选块的字线接地同时源极和位线浮置来擦除存储器存储元件。可以对整个存储器阵列、 单独的块或另一单位的存储元件进行擦除。
除了 NAND之外,在此提供的技术可应用于包括NOR的其他非易失性存储技术。图14是使用单行/列解码器和读/写电路的非易失性存储器系统的方框图。该 示了根据本发明的一个实施例的具有用于并行地读并编程一页存储元件的读/写电 路的存储器器件1396。存储器器件1396可以包括一个或多个存储器晶片1398。存储器晶 片1398包括存储元件的二维阵列1300、控制电路1310和读/写电路1365。在一些实施例 中,存储元件的阵列可以是三维的。存储器阵列1300可由字线经由行解码器1330以及由 位线经由列解码器1360寻址。读/写电路1365包括允许并行地读或编程一页存储元件的 多个读/写(R/W)堆叠1305。每个读/写(R/W)堆叠1305是芯片上电路。二进制缓冲器 1302也与存储器阵列相关联。通常芯片外(off-chip)控制器1350被包括在与该一个或多 个存储器晶片1398相同的存储器器件1396(例如可移除存储卡)中。经由线路1320在主 机和控制器1350之间以及经由线路1318在控制器与一个或多个存储器晶片1398之间传 送命令和数据。控制电路1310与读/写电路1365协作以对存储器阵列1000执行存储器操作。控 制电路1310包括状态机1312、芯片上地址解码器1314和功率控制模块1316。状态机1312 提供对存储器操作的芯片级控制。芯片上地址解码器1314提供在由主机或存储器控制器 使用的地址与由解码器1330和1360使用的硬件地址之间的地址接口。功率控制模块1316 控制在存储器操作期间向字线和位线提供的功率和电压。在一些实现方式中,组件中的一些可以被组合。在各个设计中,不同于存储器阵列 1300的一个或多个组件(单独或组合)可以被认为是管理或控制电路。例如,一个或多个 管理或控制电路可以包括控制电路1310、状态机1312、解码器1314/1360、功率控制1316、 R/W堆叠1305、读/写电路1365、控制器1350等等中的任意一个或组合。在另一方法中,在存储器阵列1300的相对侧上以对称方式实现各种外围电路对 该阵列的访问,使得每侧的访问线和电路的密度降低一半。因此,行解码器被分为两个行解 码器,并且列解码器被分为两个列解码器。类似地,读/写电路被分为连接到来自阵列1300 的底部的位线的读/写电路和连接到来自阵列1300的顶部的位线的读/写电路。以此方 式,读/写模块的密度实质上减少了一半。控制器1350可以包括ECC编码器/解码器1352和缓冲存储器13M。ECC编码器 /解码器1352用于编码和解码在多遍编程处理期间被编程和读取的字线的数据,如先前例 如结合图7a所述。在粗略编程数据之前进行包括ECC编码的编码。ECC编码器/解码器 1352可以类似地用于解码从字线读取的原始数据、进行误差校正和检测、以及确定是否已 经超过误差阈值。缓冲存储器1354、二进制缓冲器1320和数据锁存器通常是临时的易失性 数据存储位置。图15是绘出也称作感测块的读/写堆叠的一个实施例的方框图。如所述,在一种 可能的方法中,可以提供一堆(bank)分区的R/W堆叠以实现图14的读/写电路1365。示 例的各个R/W堆叠1305包括用于感测k条相应位线的感测模块1380的堆叠、用于处理数 据和协调传送数据的公共处理器1392、针对每条相应位线的数据锁存器1394以及I/O接口 模块1396。因此,在一个可能的实施例中,将存在对于每条位线的单独的感测模块1380和 对于感测模块1380的集合的一个公共处理器1392。感测模块1380、公共处理器1392和数 据锁存器1394可以经由数据总线1393通信。此外,数据锁存器1394可以直接与I/O接口1396通信。状态机1312(图14)可以可选地经由堆叠总线控制器与总线1393通信。进一 步的细节请参考US 2006/0140007以及US2008/0065813,两者通过参考合并于此。感测模块1380包括感测电路1382、例如感测放大器,其确定所连接的位线中的导 电电流是在预定阈值水平以上还是以下。感测模块1380还包括位线锁存器1384,其用于设 置在所连接的位线上的电压情况。例如,锁存在位线锁存器1384中的预定状态将导致所连 接的位线被拉到指定编程禁止的状态(例如Vdd)。公共处理器1392进行计算。例如,其功能之一是确定所感测的存储元件中存储的 数据并将所确定的数据存储在数据锁存器的集合1394中。数据锁存器的集合1394用于存 储在读操作期间由处理器1392确定的数据位。其还用于存储在编程操作期间从数据总线 1320输入的数据位。输入的数据位表示意要被编程到存储器中的写数据。I/O接口 1396 提供数据锁存器1394和数据总线1320之间的接口。在读或感测期间,系统的操作在控制不同控制栅极电压向被寻址的存储元件的供 应的状态机1312的控制下。随着其逐步经过与存储器支持的各个存储器状态对应的各个 预定控制栅极电压,感测模块1380可以行进(trip)在这些电压之一,并且将从感测模块 1380经由总线1393提供输出给处理器1392。那时,处理器1392通过考虑感测模块的(一 个或多个)行进事件以及经由输入线1393来自状态机的关于所施加的控制栅极电压的信 息来确定得到的存储器状态。然后其计算存储器状态的二进制编码并将得到的数据位存储 到数据锁存器1394中。在另一实施例中,位线锁存器1384起双重用途,作为锁存感测模块 1380的输出的锁存器以及还作为如上所述的位线锁存器。一些实现方式可以包括多个处理器1392。在一个实施例中,每个处理器1392将包 括输出线(未绘出),使得每条输出线被在一起布线为或(wired-OR)。在一些实施例中,输 出线在被连接到布线为或的线之前被反相(invert)。该配置使能够在编程验证处理期间迅 速确定编程处理何时完成,因为接收被布线为或的状态机可以确定正被编程的所有位何时 达到期望的电平。例如,当每位已达到其期望的电平时,对于该位的逻辑0将被发送到布线 为或的线(或数据1被反相)。当所有位输出数据0 (或数据1被反相)时,则状态机知道 终止编程处理。因为每个处理器与八个感测模块通信,因此状态机需要读布线为或的线八 次,或者逻辑被添加到处理器1392以累积相关联的位线的结果,使得状态机仅需要读布线 为或的线一次。类似地,通过正确地选择逻辑电平,全局状态机可以检测第一位何时改变其 状态,并据此改变算法。在编程或验证期间,要编程的数据从数据总线1320被存储在数据锁存器的合集 1394中。在状态机的控制下的编程操作包括施加到被寻址的存储元件的控制栅极的一系列 编程电压脉冲。每个编程脉冲后跟随着读回(验证),以确定存储元件是否已被编程到期望 的存储器状态。处理器1392相对于期望的存储器状态监视读回的存储器状态。当两者一 致时,处理器1392设置位线锁存器1384,以便致使位线被拉到指定编程禁止的状态。这禁 止耦接到位线的存储元件进一步编程,即使编程脉冲出现在其控制栅极上。在其他实施例 中,处理器最初加载位线锁存器1384,并且在验证处理期间,感测电路将其设置到禁止值。数据锁存器堆叠1394包含与感测模块对应的数据锁存器的堆叠。在一个实施例 中,存在每个感测模块1380三个数据锁存器。在一些实现方式中(但不是要求的),数据 锁存器被实现为移位寄存器,使得存储在其中的并行数据被转换为串行数据用于数据总线1320,并反之亦然。在优选实施例中,与m个存储元件的读/写块对应的所有数据锁存器可 以链接在一起以形成块移位寄存器,使得可以通过串行传送来输入或输出数据块。具体地, r个读/写模块的堆被适配为使得其数据锁存器的集合的每个将依次将数据移入或移出数 据总线,就像它们是整个读/写块的移位寄存器的部分那样。关于非易失性存储器件的各个实施例的结构和/或操作的另外的信息可以 在美国专禾Ij 7196931、美国专禾Ij 7023736、美国专利7046568、US2006/0221692以及US 2006/0158947中找到。所有的这五个就在以上列出的文件通过全部参考合并于此。如所述,可以提供多个R/W堆叠,其中每个负责将用户数据的各个部分存储到所 选字线的各个存储元件。R/W堆叠通常可以并行工作。图16图示将存储器阵列组织成用于全位线存储器架构或者用于奇偶存储器 架构的块的示例。描述了存储器阵列1600的示例结构。作为一个例子,描述被分区成 IOM个块的NAND快闪EEPR0M。存储在每个块中的数据可以同时被擦除。在一个实施例 中,块是同时被擦除的存储元件的最小单位。在此例子中,在每个块中,存在与位线BL0、
BLl......BL8511对应的8512个列。在称为全位线(ABL)架构(架构1610)的一个实施例
中,在读和编程操作期间,一块的所有位线可以同时被选择。沿着公共字线并连接到任意位 线的存储元件可以同时被编程。在所提供的例子中,64个存储元件串联连接以形成NAND串。存在六十四条数据字 线,其中每个NAND串包括六十四个数据存储元件。在其他实施例中,NAND串可以具有多于 或少于64个数据存储元件。NAND串的的一端经由(连接到选择栅极漏极线S⑶的)漏极选择栅极连接到相应 位线,并且另一端经由(连接到选择栅极源极线SGS的)源极选择栅极连接到c源极。在称为奇偶架构(架构1400)的一个实施例中,位线被划分成偶数位线(BLe)和 奇数位线(BLo)。在此情况下,沿着公共字线并连接到奇数位线的存储元件在一次被编程, 而沿着公共字线并连接到偶数位线的存储元件在另一次被编程。可以同时将数据编程到不 同的块中和从不同的块读数据。在此例子中,在每个块中,存在被划分成偶数列和奇数列的 8512个列。在读和编程操作的一个配置期间,同时选择4256个存储元件。所选的存储元件具 有相同的字线和相同种类的位线(例如偶数或奇数)。因此,形成一个逻辑页的532字节 的数据可以同时被读取或被编程,并且存储器的一个块可以存储至少八个逻辑页(四条字 线,每条具有奇数和偶数页)。对于多状态存储元件,当每个存储元件存储两位数据时,其中 这两位的每位被存储在不同的页中,一块存储十六个逻辑页。也可以使用其他大小的块和 页。对于ABL或者奇偶架构,可以通过将ρ阱升高到擦除电压(例如20V)并将所选块 的字线接地来擦除存储元件。源极和位线浮置。可以对整个存储器阵列、单独的块或作为 存储器器件的一部分的另一单位的存储元件进行擦除。电子从存储元件的浮置栅极转移到 P阱区,使得存储元件的Vth变为负。为了例示和描述的目的已经给出了本发明的以上详细描述。不意图详尽或将本发 明限制到所公开的精确形式。根据以上教导,许多修改和变更是可能的。选择所描述的实 施例以便最佳地说明本发明的原理及其实际应用,由此使得本领域技术人员能够在各种实施例中并利用适合于意图的具体使用的各种修改来最佳地利用本发明。意要本发明的范围 由附于此的权利要求限定。
权利要求
1.一种用于操作非易失性存储器的方法,包括(a)编程(S; )具体非易失性存储元件(208-22 以将其阈值电压升高到在第一验证电 平(VVA-COARSE、VVB-COARSE、VVC-C0ARSE)以上的第一电平,包括验证该阈值电压在所述 第一验证电平以上,所述第一验证电平与所述具体非易失性存储元件的目标数据状态(A、 B、C)相关联;(b)在编程之后读(SO所述具体非易失性存储元件,以确定所述阈值电压已经升高到 所述第一验证电平以上;(c)响应于所述读,进一步编程(S7)所述具体非易失性存储元件,以将其阈值电压从 所述第一电平升高到在与所述目标数据状态相关联的第二验证电平(VVA-FINE、VVB-FINE、 VVC-FINE)以上的第二电平。
2.如权利要求1的方法,其中所述具体非易失性存储元件串联连接到非易失性存储元 件的集合O00)中的其他非易失性存储元件,所述方法还包括在步骤(a)之后并在步骤(c)之前编程(S》所述其他非易失性存储元件中的至少一个。
3.如权利要求2的方法,其中所述非易失性存储元件的集合在NAND串中。
4.如权利要求2或3的方法,其中所述具体非易失性存储元件邻近于所述其他非易失性存储元件中的该至少一个。
5.如权利要求1到4的任意一项的方法,其中所述读确定所述目标数据状态。
6.如权利要求1到5的任意一项的方法,还包括提供第一二进制数据,步骤(a)的编程响应于所述第一二进制数据;以及响应于所述读,提供第二二进制数据,步骤(c)的进一步编程响应于所述第二二进制 数据而不是所述第一二进制数据。
7.如权利要求1到6的任意一项的方法,还包括在步骤(a) (S3)之前,使用第一页数据来编程(Si)所述具体非易失性存储元件,步骤 (a) (S3)的编程是使用第二页数据的第一编程遍,并且步骤(c) (S7)的进一步编程是使用 该第二页数据的第二编程遍。
8.如权利要求1到7的任意一项的方法,其中所述读包括依次将与相应的多个数据状态(A、B、C)相关联的多个控制栅极读电压 (VCGR-A、VCGR-B, VCGR-C)施加到所述具体非易失性存储元件。
9.一种非易失性存储装置,包括非易失性存储元件的集合O00);(a)用于编程(S; )具体非易失性存储元件以将其阈值电压升高到在第一验证电平 (VVA-COARSE、VVB-COARSE、VVC-C0ARSE)以上的第一电平、包括验证该阈值电压在所述第一 验证电平以上的部件(1310,1350),所述第一验证电平与所述具体非易失性存储元件的目 标数据状态(A、B、C)相关联;(b)用于在编程之后读(SO所述具体非易失性存储元件、以确定所述阈值电压已经升 高到所述第一验证电平以上的部件(1310,1350);以及(c)用于响应于所述读、进一步编程(S7)所述具体非易失性存储元件、以将其阈值 电压从所述第一电平升高到在与所述目标数据状态相关联的第二验证电平(VVA-FINE、 VVB-FINE、VVC-FINE)以上的第二电平的部件(1310,1350)。
10.如权利要求9的非易失性存储装置,还包括 基于用于读的部件确定所述目标数据状态的部件。
11.如权利要求9或10的非易失性存储装置,其中所述具体非易失性存储元件串联连接到所述非易失性存储元件的集合中的其他非易 失性存储元件;以及所述非易失性存储装置还包括用于在编程所述具体非易失性存储元件的部件之后并 在用于进一步编程所述具体非易失性存储元件的部件之前编程(S2)所述其他非易失性存 储元件中的至少一个的部件。
12.如权利要求9到11的任意一项的非易失性存储装置,还包括用于以下的部件 提供第一二进制数据;响应于所述第一二进制数据,编程所述具体非易失性存储元件; 响应于用于读的部件,提供第二二进制数据;以及响应于所述第二二进制数据而不是所述第一二进制数据,进一步编程所述具体非易失 性存储元件。
13.如权利要求9到12的任意一项的非易失性存储装置,还包括用于以下的部件 在用于编程(a)所述具体非易失性存储元件以将其阈值电压升高到所述第一电平的部件之前,使用第一页数据来编程所述具体非易失性存储元件,其中用于编程(a)的部件 进行的编程是使用第二页数据的第一编程遍,并且用于进一步编程(c)的部件的进一步编 程是使用该第二页数据的第二编程遍。
14.如权利要求9到13的任意一项的非易失性存储装置,其中用于读的部件通过依次将与相应的多个数据状态(A、B、C)相关联的多个控制栅极读 电压(VCGR-A、VCGR-B、VCGR-C)施加到所述具体非易失性存储元件来读所述具体非易失性 存储元件。
15.如权利要求9到14的任意一项的非易失性存储装置,其中 所述非易失性存储元件存储多位数据。
全文摘要
在多遍编程操作中降低非易失性存储器件中的邻近浮置栅极之间的耦合效应,同时降低编程数据存储需求。在一种方法中,按无序或Z形字线顺序来编程存储元件。利用粗略编程遍来编程具体字线,然后利用精细编程遍来编程另一字线,然后读该具体字线。在利用导致与该具体字线的存储元件的耦合干扰的粗略编程遍来编程另一字线之前,读该具体字线。读取的数据随后用于对该具体字线进行精细编程遍。这避免了同时存储多条字线的编程数据的需要,使得可以降低存储硬件的大小以及功耗。
文档编号G11C11/56GK102150216SQ200980135261
公开日2011年8月10日 申请日期2009年9月9日 优先权日2008年9月11日
发明者三轮达, 格里特.J.赫明克 申请人:桑迪士克公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1