CN103814408A - 用于非易失性存储器的部分编程块的读取补偿 - Google Patents
用于非易失性存储器的部分编程块的读取补偿 Download PDFInfo
- Publication number
- CN103814408A CN103814408A CN201280040608.6A CN201280040608A CN103814408A CN 103814408 A CN103814408 A CN 103814408A CN 201280040608 A CN201280040608 A CN 201280040608A CN 103814408 A CN103814408 A CN 103814408A
- Authority
- CN
- China
- Prior art keywords
- page
- group
- programmed
- volatile memory
- read
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
- G11C16/3427—Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5642—Sensing or reading circuits; Data output circuits
Abstract
提供了用于非易失性存储器的部分编程块的读取补偿。在部分编程块中,阈值电压分布可能相对于它们的最终位置而向下移位。在接收到请求以读取存储在块中的页时,可以确定该块是否被部分编程。如果该块被部分编程,则可以在读取所请求的页时进行适当的补偿。这种补偿可以对块中的非易失性存储元件(或页)尚未被编程进行补偿。补偿的量可以基于通过稍后对其他页进行编程而对所请求的页造成的干扰量。补偿可以对由于稍后对其他页进行编程而发生的请求页的阈值电压分布的移位进行补偿。
Description
背景技术
本公开涉及用于非易失性存储器的技术。
半导体存储器已变得日益流行于在各种电子设备中使用。例如,在蜂窝电话、数字摄影机、个人数字助理、移动计算设备、非移动计算设备以及其他设备中使用非易失性半导体存储器。电可擦除可编程只读存储器(EEPROM)和快闪存储器位列最流行的非易失性半导体存储器当中。与传统的全功能EEPROM形成对照,使用快闪存储器(也是一种类型的EEPROM),可以在一个步骤中擦除整个存储器阵列的内容或存储器的一部分的内容。可以将存储元件的阵列划分成大量的存储元件的块。
传统的EEPROM和快闪存储器两者都利用浮置栅极,该浮置栅极位于半导体基板中的沟道区之上并且与其绝缘。浮置栅极位于源极区与漏极区之间。控制栅极设置在浮置栅极上并且与其绝缘。由此形成的晶体管的阈值电压(Vth)由浮置栅极上所保留的电荷量控制。亦即,在晶体管被接通以允许在它的源极与漏极之间进行传导之前必须施加给控制栅极的最小电压量由浮置栅极上的电荷电平控制。
一些EEPROM和快闪存储器设备具有拥有浮置栅极的用于存储两个范围的电荷的存储元件或单元,因此,可以在两个状态例如擦除状态和编程状态之间对存储元件进行编程/擦除。这样的快闪存储器设备有时被称为二元快闪存储器设备,这是因为每个存储元件可以存储一位数据。
通过识别多个不同的容许/有效的编程阈值电压范围来实现多状态(也称为多级)快闪存储器设备。每个不同的阈值电压范围与存储器设备中所编码的一组数据位的预定值对应。例如,当存储元件可以置于与四个不同的阈值电压范围对应的四个离散电荷带中之一中时,每个存储元件可以存储两位数据。
典型地,在编程操作期间施加给控制栅极的编程电压Vpgm被施加为随着时间过去而量值增加的一系列脉冲。该编程电压可以被施加给所选择的字线。在一种可能的方式中,脉冲的量值随着每个连续的脉冲而增加预定的步长例如0.2V至0.4V。Vpgm可以被施加给快闪存储器元件的控制栅极。在编程脉冲之间的时期内进行验证操作。亦即,在连续的编程脉冲之间读取正在进行并行编程的一组存储元件中的每个存储元件的编程电平,以确定该编程电平是否等于或大于正在编程该元件的验证电平。对于多状态快闪存储器元件阵列而言,可以针对元件的每个状态进行验证步骤,以确定该元件是否已经达到其数据相关联的验证电平。例如,能够以四个状态存储数据的多状态存储器元件可能需要针对三个比较点进行验证操作。
此外,当对EEPROM或快闪存储器设备诸如NAND串中的NAND快闪存储器设备进行编程时,典型地将Vpgm施加给控制栅极并且将位线接地,使得来自存储元件的沟道的电子被注入到浮置栅极中。当电子在浮置栅极中累积时,浮置栅极变成带负电,并且存储元件的阈值电压升高,使得存储元件被认为处于编程状态。
然而,随着存储器设备尺寸缩小,存储器设备中的电磁耦合效应变得日益重要。
附图说明
图1A是NAND串的一个实施方式的顶视图。
图1B是NAND串的等效电路图。
图2是NAND串的横截面图。
图3是描绘三个NAND串的电路图。
图4是NAND快闪存储器单元阵列的一个实施方式的框图。
图5是非易失性存储器系统的一个实施方式的框图。
图6是描绘感测块的一个实施方式的框图。
图7A描绘了四状态存储器设备的阈值电压分布的示例组,其中每个存储元件存储两位数据。
图7B示出了两遍编程技术的第一遍。
图7C示出了图7B的两遍编程技术的第二遍。
图7D示出了另一模糊-精细两遍编程技术的第一遍。
图7E示出了图7D的两遍编程技术的第二遍。
图8A描绘了在编程操作期间施加给所选择的字线的一系列编程脉冲和验证脉冲。
图8B和图8C描述了用于对存储单元进行编程的两种可能顺序。
图9A、9B、9C和9D描绘了一组非易失性存储元件的阈值电压分布,示出了由于对附近的非易失性存储元件进行编程而发生的移位。
图10示出了用于给定页的阈值电压分布的另一示例。
图11是读取非易失性存储器以对部分编程块进行补偿的过程的一个实施方式的流程图。
图12是读取非易失性存储器以对部分编程块进行补偿的过程的一个实施方式的流程图。
图13A是读取非易失性存储器以对部分编程块进行补偿的过程的一个实施方式的流程图。
图13B是读取非易失性存储器以对部分编程块进行补偿的过程的一个实施方式的流程图。
图14A是用于确定跟随目标页的页是否已经被编程的过程的一个实施方式的流程图。
图14B是用于确定跟随目标页的页是否已经被编程的过程的一个实施方式的流程图。
图15A是读取阈值电压以确定页是否已经被编程的过程的一个实施方式的流程图。
图15B是读取页状态以确定某一页是否被编程的过程的一个实施方式的流程图。
图16是描述用于进行对页的读操作的过程的一个实施方式的流程图。
图17是描绘在读取过程或者验证过程的一次迭代期间各种信号的行为的时序图。
图18A、18B、18C、18D和18E描绘了可以在施加部分块补偿时使用的页编程序列的表。
具体实施方式
提供了用于读取非易失性存储器的部分编程块的方法及非易失性存储系统。注意,读取可以在读取操作或者验证操作期间发生。
在一些实施方式中,按照页序列对非易失性存储元件块进行编程。页是编程的单位。典型地,以与给定字线相关联的非易失性存储元件的方式对一个或多个页进行编程。在某个时间点处,块可以被部分编程。亦即,并非所有的页都已经被编程。换言之,被指定存储某些页的非易失性存储元件尚未被编程。
在部分编程块中,与一些页相关联的存储元件的阈值电压分布可能低于它们的最终位置。这种移位的可能原因是,当稍后对其他页进行编程时,与先前编程的页相关联的存储元件的阈值电压分布可能向上移位。因此,如果要读取部分编程块,则与一些页相关联的存储元件的阈值电压分布可能不同于针对完全编程的块所预期的阈值电压分布。这可能导致读取操作期间的检测裕量的损失。根据在此公开的实施方式,针对部分编程块提供读取补偿。该补偿可以对由于稍后对其他页进行编程而发生的目标页的阈值电压分布的移位进行补偿。
在接收到请求以读取存储在块中的页时,可以确定该块是否被部分编程。如果该块被部分编程,则可以在读取所请求的(或目标)页时进行适当的补偿。这种补偿可以对块中的非易失性存储元件尚未被编程进行补偿。补偿量可以基于通过稍后对其他页进行编程而对所请求的页造成的干扰量。
在一个实施方式中,确定所请求的页随后的序列中的某些页是否已经被编程。例如,如果靠近目标非易失性存储元件的非易失性存储元件尚未被编程,则可以在读取目标非易失性存储元件时对读取电平进行补偿。作为一个示例,如果与邻近字线相关联的非易失性存储元件尚未被编程,则可以使用读取电平补偿。
在一个实施方式中,在给定字线上以每隔一个非易失性存储元件的方式对页进行编程。例如,用一个页对给定字线上的与奇数位线相关联的非易失性存储元件进行编程。并且用另一个页对该字线上的与奇数位线相关联的非易失性存储元件进行编程。可以确定字线上的其他页是否已经被写入。如果尚未被写入,则可以在读取所请求的页时调整读取电平。
用于实现实施方式的适当存储器系统的一个示例使用NAND快闪存储器结构,该NAND快闪存储器结构在两个选择栅极之间布置多个串联的晶体管。串联的晶体管和选择栅极被称为NAND串。图1A是示出一个NAND串90的顶视图。图1B是其等效电路。描绘的NAND串包括串联的且夹在第一选择栅极120与第二选择栅极122之间的4个晶体管100、102、104和106。选择栅极120将NAND串连接到位线126。选择栅极122将NAND串连接到源极线128。通过分别向控制栅极120CG和122CG施加适当的电压来控制选择栅极120和122。晶体管100、102、104和106中的每一个具有控制栅极和浮置栅极。晶体管100具有控制栅极100CG和浮置栅极100FG。晶体管102包括控制栅极102CG和浮置栅极102FG。晶体管104包括控制栅极104CG和浮置栅极104FG。晶体管106包括控制栅极106CG和浮置栅极106FG。控制栅极100CG、102CG、104CG和106CG分别连接到字线WL3、WL2、WL1和WL0。在一个实施方式中,晶体管100、102、104和106各自是存储单元。在其他实施方式中,存储单元可以包括多个晶体管,或者可以与所描绘的存储单元不同。选择栅极120和122分别连接到漏极侧选择线SGD和源极侧选择线SGS。
图2提供了上述NAND串的横截面图。NAND串的晶体管形成在p阱区域140中。p阱区域继而可以处在p型基板144的n阱区域142内。每个晶体管包括由一个控制栅极(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+掺杂层125连接到NAND串的位线126,而N+掺杂层128则连接到多个NAND串的共用源极线。一些NAND串会包括8、16、32、64或更多个存储单元。每个存储单元可以以一位或多位的方式存储以模拟或数字形式表示的数据。
还可以使用除了NAND快闪存储器以外的其他类型的非易失性存储器。
图3是描绘3个NAND串的电路图。使用NAND结构的快闪存储器系统的典型架构包括许多NAND串。例如,以具有更多NAND串的存储器阵列的方式示出了三个NAND串320、340和360。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)连接到源极线370。选择线SGS用于控制源极侧选择栅极。各种NAND串320、340和360分别通过选择栅极322、342、362中的漏极侧选择晶体管连接到相应的位线321、341和361。这些选择晶体管由漏极选择线SGD控制。在其他实施方式中,选择线不一定需要在NAND串当中共用;亦即,可以针对不同的NAND串提供不同的选择线。
字线连接到存储元件的控制栅极如下:WL3(存储元件323、343和363)、WL2(存储元件324、344和364)、WL1(存储元件325、345和365)以及WL0(存储元件326、346和366)。每根字线以行的方式连接每个存储元件的控制栅极。或者,可以由字线自身提供控制栅极。
当对快闪存储器元件进行编程时,例如可以经由相关联的字线将编程电压施加给存储元件的控制栅极,并且将与存储元件相关联的位线接地。来自沟道的电子被注入到浮置栅极中。当电子在浮置栅极中累积时,浮置栅极变成带负电,并且存储元件的Vth升高。
图4示出了如图1A和1B所示的那样的NAND存储元件的阵列400的示例。沿着每个列,位线406耦合到NAND串450的漏极侧选择栅极的漏极端子426。沿着NAND串的每个行,源极线404可以连接NAND串的源极选择栅极的所有源极端子428。
存储元件的阵列被划分为大量的存储元件块。如对于快闪EEPROM系统常见的那样,块是擦除的单位。亦即,每个块包含被一起擦除的最小数量的存储元件。每个块典型地被划分为若干页。页是编程的最小单位。典型地以一行存储元件的方式存储一页或多页数据。例如,行可以包含交错页,或者可以构成一页。页中的所有存储元件会一起读取或编程。大量的页(例如少则8页、多达32、64、128或更多页)形成块。在一些实施方式中,一行NAND串包括块。
注意,存储元件可以存储用户数据和开销数据。开销数据典型地包括根据用户数据计算的误差校正码(ECC)。控制器(下文所描述)的一部分在数据被编程到阵列中时计算ECC,并且还在从阵列中读取数据时检查ECC。注意,ECC和/或其他开销数据可以存储在与用户数据相同的页中,或者存储在与用户数据所属的页不同的页中,乃至存储在不同的块中。
在一个实施方式中,通过以下方式来擦除存储单元:将p阱升高至擦除电压(例如20伏特)持续足够长的时间段,并且在源极线和位线为浮置时使所选择的块的字线接地。由于电容耦合,未选择的字线、位线、选择线以及公共源极也升高至擦除电压的显著一部分。强电场由此被施加给所选择的存储单元的隧道氧化层,并且典型地通过Fowler-Nordheim隧穿机制,随着浮置栅极的电子被发射至基板侧而擦除所选择的存储单元的数据。随着电子从浮置栅极转移到p阱区域,所选单元的阈值电压降低。可以对整个存储器阵列、分离块或别的单元单位进行擦除。
图5是使用单个行/列解码器和读/写电路的非易失性存储系统的框图。根据一个实施方式,存储器设备596具有读/写电路,用于并行读取和编程存储元件的页。存储器设备596可以包括一个或多个存储器片598。存储器片598包括二维阵列的存储元件400、控制电路510以及读/写电路565。在一些实施方式中,存储元件的阵列可以是三维的。存储器阵列400可以通过字线经由行解码器530和通过位线经由列解码器560进行寻址。读/写电路565包括多个感测块500,并且容许并行地读取或编程存储元件的页。可以在与一个或多个存储器片598相同的存储器设备596(例如可移动存储卡)中包括控制器550。命令和数据经由线路520在主机与控制器550之间传送,并且经由线路518在控制器与一个或多个存储器片598之间传送。然而要注意的是,控制器550可以处在存储器设备596的外部。
控制电路510与读/写电路565进行协作,以对存储器阵列400进行存储器操作。控制电路510包括状态机512、片上地址解码器514和功率控制模块516。状态机512提供对存储器操作的芯片级控制。片上地址解码器514提供主机或存储器控制器所使用的地址与解码器530和560所使用的硬件地址之间的地址接口。功率控制模块516控制在存储器操作期间提供给字线和位线的功率和电压。
在一些实施方式中,图5的部件中的一些可以进行组合。在各种设计中,除了存储元件阵列400之外的部件中的一个或多个(单独或组合)可以被认为是管理或控制电路。例如,一个或多个管理或控制电路可以包括控制电路510、状态机512、解码器514/560、功率控制516、感测块500、读/写电路565、控制器550等中的任何一个或其组合。
在别的实施方式中,非易失性存储系统使用双行/列解码器和读/写电路。在阵列的相对侧上,以对称的方式来实现通过各种外围电路进行的对存储器阵列400的访问。
图6是描绘感测块的一个实施方式的框图。单独的感测块500被分割成称为感测模块580的核心部分和共用部分590。在一个实施方式中,存在用于每根位线的分离的感测模块580以及用于成组的多个感测模块580的一个共用部分590。在一个示例中,感测块包括一个共用部分590和8个感测模块580。组中的感测模块中的每一个经由数据总线572与相关联的共用部分进行通信。
感测模块580包括感测电路570,该感测电路570确定连接位线中的传导电流处于预定阈值电平之上还是之下。感测模块580还包括用于设定连接位线上的电压状况的位线锁存器582。例如,位线锁存器582中锁存的预定状态会导致连接位线被拉到指定编程禁止的状态(例如1.5V至3V)。
共用部分590包括处理器592、一组数据锁存器594和耦合在该组数据锁存器594与数据总线520之间的I/O接口596。处理器592进行计算。例如,处理器592的功能之一是确定存储在感测的存储元件中的数据并且将所确定的数据存储在该组数据锁存器中。该组数据锁存器594用于存储在读取操作期间由处理器592确定的数据位。该组数据锁存器594还用于存储在编程操作期间从数据总线520输入的数据位。所输入的数据位表示打算编程到存储器中的写入数据。I/O接口596提供数据锁存器594与数据总线520之间的接口。
在读取或其他感测期间,状态机512控制不同的控制栅极电压向寻址的存储元件的供应。随着单步调试与存储器支持的各种存储器状态相对应的各种控制栅极电压,感测模块580可以在这些电压中之一处跳闸,并且输出会经由总线572从感测模块580提供给处理器592。在这一点上,通过考虑感测模块的(一个或多个)跳闸事件以及关于经由输入线593从状态机所施加的控制栅极电压的信息,处理器592确定作为结果的存储器状态。处理器592然后计算用于存储器状态的二进制编码,并且将作为结果的数据位存储到数据锁存器594中。在核心部分的别的实施方式中,位线锁存器582既充当用于锁存感测模块580的输出的锁存器,又充当如上所述的位线锁存器。
在编程或验证期间,将要编程的数据从数据总线520存储到成组的数据锁存器594中。在状态机的控制下,编程操作包括施加到寻址的存储元件的控制栅极的一系列编程电压脉冲。每个编程脉冲继之以读回(验证),以确定存储元件是否已经被编程到期望的存储器状态。相对于期望的存储器状态,处理器592监视读回的存储器状态。当二个状态一致时,处理器592设定位线锁存器582,以使得将位线拉到指定编程禁止的状态。这禁止对与位线耦合的存储元件进一步编程,即使在其控制栅极上出现编程脉冲。在其他实施方式中,处理器最初加载位线锁存器582,并且在验证过程期间,感测电路将其设定成禁止值。
数据锁存器堆栈594包含成堆的对应于感测模块的数据锁存器。在一个实施方式中,每个感测模块580有三个数据锁存器。数据锁存器可以被实现为移位寄存器,以便将其中存储的并行数据转换成用于数据总线520的串行数据,反之亦然。与m个存储元件的读/写块相对应的所有数据锁存器可以链接在一起以形成块移位寄存器,以便可以通过串行传送来输入或输出数据块。特别地,成排的读/写模块被适配成使得其成组的数据锁存器中的每一个会按照序列将数据移入或移出数据总线,如同它们是用于整个读/写块的移位寄存器的一部分一样。
图7A描绘了四状态存储器设备的阈值电压分布的示例组,其中每个存储元件存储两位数据。第一阈值电压(Vth)分布700设置用于擦除(E状态)存储元件。三个Vth分布702、704和706分别表示编程状态A、B和C。在一个实施方式中,E状态中的阈值电压为负,而A、B和C分布中的阈值电压则为正。然而,E状态中的所有或一部分的阈值分布可以为正。同样,A状态的所有或一部分的阈值分布可以为负(对于其他数据状态同样成立)。
还设置了三个读取参考电压Vra、Vrb和Vrc用于从存储元件读取数据。通过测试给定存储元件的阈值电压处于Vra、Vrb和Vrc之上还是之下,系统可以确定存储元件所处的状态例如编程状态。
进一步,设置了三个验证参考电压Vva、Vvb和Vvc。当将存储元件编程到A状态、B状态或C状态时,系统会测试这些存储元件是否分别具有大于或等于Vva、Vvb或Vvc的阈值电压。
在一个实施方式中,存储元件可以从E状态直接编程到编程状态A、B或C中的任何一个,被称为全序列编程。例如,可以首先擦除成群的要编程的存储元件,使得该群中的所有存储元件都处于E状态。然后,使用如图8A所描绘的一些列编程脉冲来将存储元件直接编程到状态A、B或C中。虽然一些存储元件从E状态被编程为A状态,但是其他存储元件从E状态被编程到B状态和/或从E状态被编程到C状态。
图7B示出了两遍编程技术的第一遍。在这个示例中,多状态存储元件存储用于两个不同页亦即下页和上页的数据。通过重复来自图7A的阈值电压分布700、702、704和706来描绘四个状态。这些状态及其所表示的位是:E状态(11)、A状态(01)、B状态(00)和C状态(10)。对于E状态,两页都存储“1”。对于A状态,下页存储“1”并且上页存储“0”。对于B状态,两页都存储“0”。对于C状态,下页存储“0”并且上页存储“1”。注意,尽管特定的位模式被分配给状态中的每一个,但是还可以分配不同的位模式。
在第一遍编程中,针对所选择的字线WLn对下页进行编程。如果下页要保持数据1,则存储元件状态保持在状态E(分布700)。如果数据要编程为0,则WLn上的存储元件的阈值电压升高,使得存储元件被编程到中间(LM或中下)状态(分布705)。
图7C示出了图7B的两遍编程技术的第二遍。A状态存储元件从E状态分布700被编程到A状态分布702,B状态存储元件从LM状态分布705被编程到B状态分布704,并且C状态存储元件从LM状态分布705被编程到C状态分布706。
图7D示出了另一两遍编程技术的第一遍。在这个示例中,分别使用较低的验证电平VvaL、VvbL和VvcL,将A状态、B状态和C状态存储元件从E状态分别编程到分布712、714和716,被称为模糊-精细编程。这是模糊遍的编程。例如,可以使用比较大的编程电压步长来快速地将存储元件编程到相应的较低验证电平。
图7E示出了图7D的两遍编程技术的第二遍。分别使用标称的较高验证电平Vva、Vvb和Vvc,将A状态、B状态和C状态存储元件从相应的较低分布分别编程到相应的最终分布702、704和706。这是精细遍的编程。例如,可以使用比较小的编程电压步长来缓慢地将存储元件编程到相应的最终验证电平,同时避免大的超调。
虽然编程示例描绘了四种数据状态和两页数据,但是教导的概念也可以应用于具有多于或少于四种状态以及多于或少于两页的其他实施方式。例如,可以使用每个存储元件具有8、16或更多种状态的存储器设备。
此外,在所讨论的示例编程技术中,存储元件的Vth随着存储元件被编程到目标数据状态而逐渐升高。然而,可以使用如下编程技术,在所述编程技术中,随着被编程到目标数据状态,存储元件的Vth逐渐降低。还可以使用测量存储元件电流的编程技术。在此的概念可以适用于不同的编程技术。
图8A描绘了在编程操作期间施加给所选字线的一系列编程和验证脉冲。编程操作可以包括多个编程验证迭代,其中每个迭代将继之以验证电压的编程电压施加给所选字线。在一种可能的方式中,编程电压在连续的迭代中逐步增加。此外,每个编程电压可以包括:第一部分,其具有通过电压(Vpass)电平,例如6V至8V;继之以第二最高幅值部分,其处在编程电平,例如12V至25V。例如,第一编程脉冲800、第二编程脉冲802、第三编程脉冲804以及第四编程脉冲806分别具有Vpgm1、Vpgm2、Vpgm3以及Vpgm4的编程电平等。可以在每个编程脉冲之后提供一个或多个验证电压,诸如示例验证电压Vva、Vvb和Vvc(808)。在一些情况下,一个或多个初始编程脉冲不继之以验证脉冲,因为不期望任何存储元件达到最低编程状态(例如A状态)。随后,例如编程迭代可以对A状态使用验证脉冲,继之以对A和B状态使用验证脉冲的编程迭代,继之以对B和C状态使用验证脉冲的编程迭代。
图8B和8C描述了其中页被编程到存储单元中的两种可能顺序。图8B属于进行所有位线编程的架构。对于连接到字线WL0的存储单元而言,下页形成页0并且上页形成页2。对于连接到字线WL1的存储单元而言,下页形成页1并且上页形成页4。对于连接到字线WL2的存储单元而言,下页形成页3并且上页形成页6。对于连接到字线WL3的存储单元而言,下页形成页5并且上页形成页7。根据从页0至页7的页码按照数字顺序对存储单元进行编程。
图8C的表属于进行奇数/偶数编程的架构。对于在偶数位线上连接到字线WL0的存储单元,下页形成页0并且上页形成页4。对于在奇数位线上连接到字线WL0的存储单元,下页形成页1并且上页形成页5。对于在偶数位线上连接到字线WL1的存储单元,下页形成页2并且上页形成页8。对于在奇数位线上连接到字线WL1的存储单元,下页形成页3并且上页形成页9。对于在偶数位线上连接到字线WL2的存储单元,下页形成页6并且上页形成页12。对于在奇数位线上连接到字线WL2的存储单元,下页形成页7并且上页形成页13。对于在偶数位线上连接到字线WL3的存储单元,下页形成页10并且上页形成页18。对于在奇数位线上连接到字线WL3的存储单元,下页形成页11并且上页形成页15。根据从页0至页15的页码按照数字顺序对存储单元进行编程。最后,具有偶数位线和奇数位线二者的架构中的每一个可以实现为:所有的偶数位线物理上一起例如位于芯片的左侧,并且所有的奇数位线一起例如位于芯片的右侧。
注意,在图8B和图8C的实施方式中,存储单元沿NAND串从源极侧到漏极侧被编程。而且,该表仅描绘了具有四根字线的实施方式。表中所描绘的各种方法可以应用于具有多于或少于四根字线的系统。可以在美国专利第6,522,580号和第6,643,188号中找到使用奇数/偶数编程的架构的示例,这两个专利的全部内容通过引用结合于此。关于使用所有位线进行编程的架构的更多信息可以在以下美国专利文件(其全部内容通过引用结合于此)中找到:美国专利申请公开US2004/0057283;美国专利申请公开US2004/0060031;美国专利申请公开US2004/0057285;美国专利申请公开US2004/0057287;美国专利申请公开US2004/0057318;美国专利6,771,536;以及美国专利6,781,877。
通常,对所有位线一起编程的架构会从所有位线一起读取数据。类似地,分开对奇数位线和偶数位线进行编程的架构通常会分开读取奇数位线和偶数位线。然而,这样的限制并非必需。在此描述的用于读取数据的技术可以与所有位线编程或者奇数/偶数位线编程一起使用。在此描述的用于读取数据的技术还可以用于其他编程方案。
图9A至9D描绘了用于成组的非易失性存储元件的阈值电压分布,示出了由于对附近的非易失性存储元件进行编程而发生的移位。图9A至9D对应于图8C的编程序列。为了说明起见,将会描述其中阈值电压分布用于页8的示例。图9A示出了在块中所有页已经被编程之后的一组最终分布。在图9A至9D中,实线示出了实际分布。图9B至9D中的虚线分布是来自图9A的阈值电压分布,示出以便进行比较。
图9B示出了紧接在编程之后的实际阈值电压分布。例如,实线表示在对页8进行编程之后页8的阈值电压分布。然而要注意的是,页9、10、11等尚未被编程。注意,此时页8的阈值电压分布被移位到最终分布的左侧(如图9B中的虚线所示)。
图9C示出了紧接在对后续页进行编程之后的实际阈值电压分布。这可以是在相邻位线上被编程的页。例如,页8可以在偶数位线上被编程,并且页9可以在偶数位线上被编程(二者在相同的字线上)。然而要注意的是,页10、11、12等尚未被编程。注意,尽管页8的阈值电压分布仍被移位到最终分布的左侧(如图9C中的虚线所示),但是它们更靠近最终分布。亦即,页8的阈值电压分布由于对页9进行编程而向右移动。
图9D示出了紧接在对序列中更靠后的页进行编程之后的实际阈值电压分布。这个靠后的页可以是在相邻字线上被编程的页。例如,返回参照图8C,页12对应于WL(n+1)上的偶数位线。因此,在页8之后对页12进行编程意味着相邻字线上的存储单元已经被编程。注意,页13、18、15等不一定被编程。在这种情况下,页8的阈值电压分布可以仍移位到最终分布的左侧(如图9D中的虚线所示)。然而,页8的阈值电压分布移动到相对于图9C的右侧。亦即,页8的阈值电压分布作为对页12进行编程的结果而向右移动。还要注意的是,对页10和11进行编程也可以影响页8的阈值电压分布。
阈值电压分布的移位的一个可能原因是浮置栅极到浮置栅极的耦合。由于基于存储在邻近浮置栅极中的电荷的电场的耦合,所以可能发生存储在浮置栅极上的表观电荷的移位。在美国专利5,867,429中描述了这种浮置栅极到浮置栅极的耦合现象,该专利的全部内容通过引用结合于此。目标浮置栅极的邻近浮置栅极可以包括相同位线上的相邻浮置栅极、相同字线上的相邻浮置栅极或者与目标浮置栅极成对角的浮置栅极,因为它们既在相邻位线上又在相邻字线上。
浮置栅极到浮置栅极的耦合现象最显著地发生于在不同时间被编程的成组的邻近存储单元之间。例如,第一存储单元被编程,以将电荷电平添加到它的浮置栅极,其对应于一组数据。随后,一个或多个邻近的存储单元被编程,以将电荷电平添加到它们的浮置栅极,其对应于第二组数据。在邻近存储单元中的一个或多个被编程之后,从第一存储单元读取的电荷电平看起来不同于被编程,这是因为耦合到第一存储单元的邻近存储单元上的电荷的影响。来自邻近存储单元的耦合可能使正被读取的表观电荷电平移位足够的量,而导致对所存储的数据的错误读取。
对于多状态设备而言更关注浮置栅极到浮置栅极的耦合的影响,因为在多状态设备中,与二进制设备中的相比,所允许的阈值电压范围和所禁止的范围更窄。因此,浮置栅极到浮置栅极的耦合可能导致存储单元从所允许的阈值电压范围移位到所禁止的范围。
在此公开的实施方式对部分编程块进行补偿。在一个实施方式中,基于跟随着目标页的页已经被编程/未被编程来调节读取电平。例如,当块中的所有页都已经被编程时,可以使用图9A中所描绘的读取电平(Vra、Vrb、Vrc)。如果目标页之后的页都尚未被编程,则可以使用图9B中所描绘的读取电平(Vra′、Vrb′、Vrc′)。
注意,图9A至9D的示例与图8C的示例编程序列对应。因此,换言之,图9B涵盖了相同字线上的相邻存储单元和相同位线上的相邻存储单元两者都没有被编程的情况。
如果相同字线上的相邻存储单元已经被编程而相同位线上的相邻存储单元尚未被编程,则可以使用图9C中所描绘的读取电平(Vra′′、Vrb′′、Vrc′′)。
如果相同字线上的相邻存储单元已经被编程并且相同位线上的相邻存储单元已经被编程,则可以使用图9D中所描绘的读取电平(Vra′′′、Vrb′′′、Vrc′′′)。注意,由于这些读取电平相当接近于图9A的最终读取电平,所以可以适于简单地使用来自图9A的读取电平。然而要注意的是,对页13进行编程可能对页8的阈值分布具有某种影响。返回参照图8C,页13与WL(n+1)上的奇数位线对应。注意,由于对页18进行编程,可能对页8造成某种对角的浮置栅极到浮置栅极的耦合效应。取决于诸如大小、形状以及材料的因素,使用读取电平(Vra′′′、Vrb′′′、Vrc′′′)而不是(Vra、Vrb、Vrc),对角的浮置栅极到浮置栅极的耦合效应可能显著足以得到保证。
注意,使用不同的读取电平对阈值电压分布的移位进行补偿。接下来要注意的是,图8C的编程序列仅是一个示例。在其他实施方式中,使用所有位线编程。图8B是描绘使用所有位线编程的一个实施方式的编程序列的表。在这个实施方式中,在每根字线上对下页和上页进行编程。
图10示出了给定页的阈值电压分布的另一示例。为了讨论起见,页指的是偶数上页。参照图8C的示例,这可以是页8。注意,页8对应于与偶数位线相关联的存储单元。由于这是上页,所以对这些存储单元的编程是完全的。
图10中的实线表示了当相同字线但是相邻位线上的存储单元未被编程时的阈值电压分布。图10中的虚线表示了当相同字线但是相邻位线上的存储单元被编程时的阈值电压分布。例如,这可以是页8被编程而页9尚未被编程的情况。
在这个示例中,在对相邻存储单元进行编程之后,存在阈值电压分布的某种交叠。当对相邻存储单元进行编程时的适当读取电平可以处在阈值电压分布的交叉点(例如Vra、Vrb、Vrc)处或其附近。亦即,这个点可以设置成最大读取裕量。
可以以类似的方式获得相邻存储单元被编程之前用于分布的适当读取电平。亦即,可以选择适当的读取电平以设置成最大读取裕量。在这种情况下,读取电平(Vra′、Vrb′、Vrc′)可以提供最大读取裕量。注意,如果代替地使用正常读取电平,则可能存在太多的误差要校正。在一些情况下,读取实际上可能失败。因此,通过针对部分编程块主动使用不同读取电平,可以避免读取误差。
图11是对非易失性存储单元的部分编程块提供读取补偿的过程的一个实施方式的流程图。在读取之前,在块中可能已对一个或多个页进行了编程。可能按照特定序列已对页进行了编程。亦即,一定的存储单元可能被指定以存储每个页。因此,可以按照一定的顺序对成组的存储单元进行编程。在一些实施方式中,对每个连续页进行编程可能对将要读取的目标页造成附加干扰。图8B和8C的表描绘了两个示例页编程序列。然而,图11的过程不限于这些示例。其他可能的页编程序列包括但不限于图18A至18E所描绘的示例。注意,这个过程适用于所有位线编程以及偶数/奇数位线编程。
在步骤1102中,接收请求以读取页。这个页是存储在块中或将要存储在块中的一系列页中的一页。参照图8C,作为一个示例,这可以是偶数页或者奇数页。亦即,存储单元可以与偶数位线或奇数位线相关联。而且,该页可以是上页或者下页。参照图8B,作为另一示例,该页可以存储在所有位线(偶数位线和奇数位线二者)上。该页还可以是来自图18A至18E中的表中的任何一个的页,或者来自某个其他页编程序列的页。
在步骤1104中,确定按照编程序列跟随目标页的页是否已经被编程。注意,跟随的页并不限于直接跟随的那个页。还要注意的是,步骤1104可以对特定页进行测试。例如,如果目标页是页m,则步骤1104可以确定页m+1、m+2、m+3、m+4、m+5等是否已经被编程。在一个实施方式中,确定相邻字线上的存储单元是否已经被编程。如果来自图8C的页8是目标页,则可以确定页12是否已经被编程。在一个实施方式中,确定相邻位线上的存储单元是否已经被编程。例如,在当前示例中可以确定页9是否已经被编程。注意,在图11的讨论中会继续使用目标页是来自图8C的页8的这个示例。
步骤1104还可以对与目标页成对角的页的编程进行测试。例如,图8C中的页13可以被认为与页8成对角如下。页8在WL1的偶数位线上,而页13则在WL2的奇数位线上。因此,在存储页8的存储单元与存储页13的存储单元之间可能存在某种对角的浮置栅极到浮置栅极的耦合。注意,步骤1104可以对与目标页具有某种其他关系的页的编程进行测试。
在一个实施方式中,步骤1104确定造成干扰阈值量的一个或多个页是否已经被编程。例如,如果页9和12已经被编程,则它们可能造成对页8的干扰阈值量。这种干扰可以至少部分地归因于浮置栅极到浮置栅极的耦合。其他页如页15可能不会造成对页8的干扰阈值量。因此,对于一些实施方式而言,即使在页15尚未被编程的情况下(但是页12已经被编程),这也可以被忽略(如果页8是目标页)。
如果跟随的页尚未被编程,则执行步骤1106。在步骤1106中,在进行校正以对跟随页尚未被编程进行补偿的情况下读取目标页。例如,如果页12尚未被编程,则可以使用如图9C中所描绘的读取电平。注意,这可以对缺少来自相邻字线上的存储单元的浮置栅极到浮置栅极的耦合进行补偿。
另一方面,如果页9尚未被编程,则可以使用如图9B中所描绘的读取电平。注意,这意味着页12尚未被编程。在这种情况下,步骤1006可以对缺少来自相邻位线上的存储单元(例如页9)的浮置栅极到浮置栅极的耦合以及缺少来自相邻字线上的存储单元(例如页12)的浮置栅极到浮置栅极的耦合进行补偿。
注意,步骤1106的读取校正可以是对序列中的后续页进行编程而造成多少干扰量的函数。换言之,步骤1106的读取校正可以是如果对序列中的后续页进行编程则会造成多少干扰量的函数。因此,步骤1106可以补偿这种对目标页的干扰的缺乏。在一个实施方式中,步骤1106包括:基于在页编程序列中跟随目标页并且造成干扰阈值量的至少一页是否尚未被编程,确定用于读取目标页的读取电平。
如果跟随的页已经被编程,则可以执行步骤1108。在步骤1108中,在不进行任何校正以对跟随页尚未被编程进行补偿的情况下读取目标页。然而要注意的是,可以针对除了部分块编程之外的影响进行补偿。例如,如果相邻字线上的存储单元被编程,则被编程到相邻存储单元中的实际数据可以用于补偿。注意,这是与在步骤1106中进行的补偿不同类型的补偿。在步骤1108中,不同的目标存储单元可以接收不同的补偿量(取决于它们相邻存储单元中存储的数据)。在Mokhlesi于2006年3月17日申请的名为“Read Operation for Non-Volatile Storage with Compensationfor Coupling”的美国专利7,499,319中描述了基于相邻存储单元中存储的实际数据来提供补偿的进一步细节,该专利的全部内容通过引用结合于此。步骤1108中提供的补偿在此可以被称为“取决于数据的补偿”。
在步骤1106中,进行补偿以对存储单元尚未被编程进行补偿。因此,在相邻存储单元中不存在数据。因此,步骤1106可以包括对目标组中的所有非易失性存储元件应用相同的读取校正。还要注意的是,步骤1106可以对由于稍后对页进行编程而发生的阈值电压分布的移位进行补偿。
图12是读取非易失性存储器以对部分编程块进行补偿的过程的一个实施方式的流程图。在图12的过程中,对相邻字线上的非易失性存储元件尚未被编程进行补偿。然而,不对相邻位线上的非易失性存储元件尚未被编程进行补偿。注意,该过程可以与偶数/奇数位线编程或者与所有位线编程一起使用。还要注意的是,图12的过程是图11的过程的一个实施方式。
在步骤1202中,接收请求以读取WLn上的页。作为一个示例,所请求的页是来自图8B的页4。作为另一示例,所请求的页是来自图8C的页8。
在步骤1204中,确定WLn+1上的页是否已经被编程。注意,WLn+1与WLn相邻。在这个示例中,在WLn之后对WLn+1进行编程。然而,如果在其他方向上对字线进行编程,则步骤1204可以测试WLn-1。作为一个示例,该页是来自图8B的页6。作为另一示例,该页是来自图8C的页12或13。在一个实施方式中,如果目标页与偶数位线相关联,则步骤1204测试与偶数位线及相邻字线相关联的页是否被编程。另一方面,如果目标页与奇数位线相关联,则步骤1204测试与奇数位线及相邻字线相关联的页是否被编程。
如果WLn+1上的页尚未被编程,则进行步骤1206。在步骤1206中,在对WLn+1上的页尚未被编程的这一事实进行补偿的情况下读取WLn上的页。例如,提供对部分编程块的读取补偿。注意,步骤1206是图11的步骤1106的一个实施方式。
如果WLn+1已经被编程,则执行步骤1208。在步骤1208中,不需要考虑对WLn+1上的页尚未被编程进行补偿。然而,可以考虑对存储在WLn+1上的页中的实际数据使用补偿。例如,可以提供“取决于数据的补偿”。注意,步骤1208是图11的步骤1108的一个实施方式。
注意,当WLn是目标存储单元时,可以正常进行对WLn+1上的页的读取,以便基于相邻存储单元的状态提供取决于数据的补偿。因此要注意的是,在一些实施方式中,读取WLn+1上的页的步骤1204在使用取决于数据的补偿时不增加任何额外开销。
图13A是读取非易失性存储器以对部分编程块进行补偿的过程的一个实施方式的流程图。在图13A的过程中,基于相邻字线上的非易失性存储元件是否已经被编程并且还基于相邻位线上的非易失性存储元件是否已经被编程来进行补偿。注意,该过程可以与偶数/奇数位线编程一起使用。此外要注意的是,图13A的过程是图11A的过程的一个实施方式。
在步骤1302中,接收请求以读取WLn上的数据页。作为一个示例,该页可以是被编程到与偶数位线相关联的非易失性存储元件中的页。作为另一示例,该页可以是被编程到与奇数位线相关联的非易失性存储元件中的页。为了讨论起见,将会使用其中所请求的页是来自图8C的页8的示例。注意,尽管在图8C的示例中在奇数位线之前对偶数位线进行编程,但是可以在偶数位线之前对奇数位线进行编程。
在步骤1306中,确定WLn+1上的相邻存储单元是否已经被编程。注意,如果WLn上的页与偶数位线相关联,则在步骤1306中仅需要测试与偶数位线相关联的存储单元。例如,步骤1306可以确定页12是否已经被编程(参照图8C)。同样,如果WLn上的页与奇数位线相关联,则在步骤1306中仅需要测试与奇数位线相关联的存储单元。还要注意的是,步骤1306并不需要直接实际测试存储单元。如下面进一步描述的那样,可以使用其他技术,如对被编程的最后页进行追踪。
如果WLn+1已经被编程,则进行步骤1308。在步骤1308中,当读取WLn上的页时,使用取决于数据的补偿。然而,不使用对部分编程块的读取补偿。注意,步骤1308是图11的步骤1108的一个实施方式。在其他实施方式中,当读取WLn时,不使用取决于数据的补偿。
如果WLn+1上的存储单元已经被编程,则在步骤1312中采取附加步骤来确定相邻位线上的存储单元是否已经被编程。注意,相邻位线可能与用于目标页的存储单元的位线相交替。例如,步骤1312可以确定页9是否已经被编程(参照图8C)。
如果步骤1312确定与相邻位线(并且相同字线)相关联的存储单元尚未被写入,则执行步骤1314。在步骤1314中,读取目标页,同时应用部分块校正以对相邻字线上的存储单元和相邻位线上的存储单元两者都未被写入进行补偿。因此,在这种情况下可以使用第一组读取校正(例如图9B中的Vra′、Vrb′、Vrc′)。注意,步骤1314是来自图11的步骤1106的一个实施方式。
如果步骤1312确定与相邻位线(并且相同字线)相关联的存储单元已经被写入,则执行步骤1316。在步骤1316中,读取目标页,同时应用部分块校正以对相邻字线上的存储单元尚未被写入进行补偿。然而,由于相邻位线上的存储单元已经被写入,所以不需要对此进行补偿。因此,在这种情况下可以使用第二组读取校正(例如图9C中的Vra′′、Vrb′′、Vrc′′)。注意,步骤1306是来自图11的步骤1106的一个实施方式。
在图13A中,页编程序列在编程相邻字线上的存储单元之前对相邻位线上的存储单元进行编程。例如,在编程页12之前对页9进行编程(例如参照图8C)。然而,可以使用不同的页编程序列。作为一个示例,可以在编程相邻字线上的存储单元之后对相邻位线上的存储单元进行编程。例如,可以改变图8C的表,使得页9和12对换。例如,可以将页9编程到WL2上的存储单元中,并且可以将页12编程到WL1上的存储单元中。在这样的情况下,在WL1的偶数位线上对页8进行编程之后,在WL2的偶数位线上对页9进行编程。随后在WL1奇数位线上对页12进行编程。在这种情况下,可以使用图13B的过程。注意,图13B类似于图13A。然而,切换了步骤1306和1312。而且在步骤1326中,部分块补偿不同于图13A。在步骤1326中,部分块补偿对相邻位线上的存储单元尚未被写入但是相邻字线上的存储单元已经被写入进行补偿。
在一些实施方式中,计数器保存在块中哪些页已经被编程。这个计数器可以存储在易失性存储器或者非易失性存储器中。计数器可以处在存储器片598上,或者离开包含块的存储器片598。作为一个示例,控制器550可以存储离开存储器片598的计数器。作为另一示例,可以将计数器存储在存储器阵列400中的非易失性存储元件中。除了存储器阵列400之外,计数器还可以位于存储器片598上的其他地方。例如,计数器可以位于控制电路510中。在这种情况下,计数器可以由数据锁存器或寄存器形成。注意,在块仅被部分编程的很多情况下,在存储器设备保持通电时,可能发生请求以读取部分编程块中的页。因此,即使将计数器存储在易失性存储器中也可能有用。
图14A是用于确定跟随着目标页的页是否已经被编程的过程的一个实施方式的流程图。在这个实施方式中,指示被编程到块中的最后页的计数器被访问。在步骤1402中,接收请求以读取块中的页。
在步骤1404中,读取用于块的计数器。先前已经讨论过计数器的示例。
在步骤1406中,确定计数器是否大于可以指示不需要进行补偿的某个量。步骤1406可以确定跟随目标页的某个特定页是否已经被编程。例如,如果目标页是页8,则步骤1406可以确定页12是否已经被编程。作为另一示例,如果目标页是页8,则步骤1406可以确定页9是否已经被编程。注意,步骤1404至1406可以被认为是来自图11的步骤1104的一个实施方式。这些步骤还可以用于步骤1204、1306或1312。
接下来,取决于针对未编程页是否期望进行补偿,可以执行步骤1106或1108。代替地,如果期望对部分编程块进行读取补偿,则可以执行步骤1206、1314、1316或1326中之一。代替地,如果不期望对部分编程块进行读取补偿,则可以执行步骤1208或1308中之一。
在一些实施方式中,保持整个块是否已经被编程的旗标。在整个块已经被编程的情况下,通过不必确定某些页是否已经被编程可以节省时间。如果旗标指示块仅被部分编程,则取决于哪些页尚未被编程,可能需要也可能不需要部分块补偿。旗标可以存储在易失性存储器或非易失性存储器中。然而,将旗标存储在非易失性存储器中可能更有用。
图14B是用于确定跟随目标页的页是否已经被编程的过程的一个实施方式的流程图。在这个实施方式中,指示整个块已经被编程的旗标被访问。在步骤1402中,接收请求以读取块中的页。
在步骤1424中,读取用于块的旗标。
在步骤1426中,确定旗标是否被设定。如果旗标被设定,则这指示该块被完全编程。因此,不需要用于部分编程块的补偿。因此,执行步骤1108(在无部分块补偿的情况下读取)。如果期望的话,则可以使用取决于数据的补偿。
如果旗标未被设定,则这指示块仅被部分编程。然而,仍不知道哪些页尚未被编程。因此,可能需要也可能不需要对部分编程块进行补偿。因此,可以执行步骤1104以确定跟随目标页的页是否已经被编程。注意,取代执行步骤1104,可以执行来自图12的步骤1204、来自图13A的步骤1306或者来自图13B的步骤1312。
在一个实施方式中,基于对存储单元的阈值电压的读取来确定随后的页是否已经被编程。例如,参照图7C,如果在成组的存储单元中已对下页和上页二者进行了编程,则存储单元中的至少一些应当具有至少C状态的阈值电压。另一方面,如果仅下页已被编程,则该组的最高阈值电压应当为LM状态。
图15A是读取阈值电压以确定页是否已经被编程的过程的一个实施方式的流程图。该过程是步骤1104的一个实施方式。该过程还可以用于步骤1204、步骤1306或者步骤1312。因此,假定已接收到请求以读取WLn上的页。
在步骤1502中,确定WLn+1上的存储单元的阈值电压。注意,可能在奇数位线或者偶数位线上对所关注的页进行编程。因此,在一个实施方式中,仅读取与奇数位线或者偶数位线相关联的存储单元。然而,如果在所有的位线上对页进行编程,则可以读取字线上的所有存储单元。
以下示例用于帮助说明步骤1502。考虑存储单元保持上页和下页的情况。如果所关注的页是上页,则可以在Vrc处读取WLn+1上的存储单元(参照图7A)。另一方面,如果步骤1502关注下页,则可以在稍低于VvLM的电平处读取存储单元(参照图7B)。
在步骤1504中,确定所读取的最高阈值电压是否指示页已经被编程。例如,如果至少一个存储单元具有Vrc之上的阈值电压,则可以假定上页已经被编程。
注意,在一些情况下,步骤1504测试至少一定数量的存储单元是否具有至少某一电平的阈值电压。这是因为一些存储单元可能具有比其应当具有的阈值电压更高的阈值电压。例如,当将存储单元编程到LM状态时,可能无意中将该存储单元过度编程到C状态。注意,误差校正代码可以用于校正这样的误差。因此,如果在步骤1504的测试期间仅有几个存储单元处在C状态中,则在一些实施方式中可以忽略这些存储单元。类似的推理适用于在步骤1504中对其他阈值电压的测试。
如果步骤1504确定至少一定数量的存储单元具有至少某一电平的阈值电压,则这指示所讨论的页已经被编程。因此,可以执行步骤1108。
如果步骤1504确定所讨论的页尚未被编程,则应当使用某种部分块补偿。因此,执行步骤1106。
在一些实施方式中,状态存储在非易失性存储器中以指示一个或多个页是否已经被编程。例如,对于在相同组的存储单元中存储下页和上页的实施方式而言,状态可以存储在与页相同的字线上的一个或多个存储单元中。如上面提到的那样,除了存储用户数据的字线上的存储单元之外,还可以存在一些用于开销的存储单元。状态可以存储在这些开销存储单元中。
当进行如图7B和7C所描绘的两遍编程操作时,可以设定状态以指示第一遍编程已经完成(下页被编程)。在完成第二遍后,可以设定状态以指示第二遍编程已经完成(上页被编程)。在一个实施方式中,这个状态被读取以确定某一页是否被编程。
图15B是读取页状态以确定某一页是否被编程的过程的一个实施方式的流程图。在步骤1542中,读取页状态。以下示例用于说明。考虑正在使用所有位线编程并且待测试的页在WLn+1上。步骤1542读取保持WLn+1的页状态的存储单元。作为另一示例,考虑对偶数/奇数位线进行编程的情况。第一场景是目标页与偶数位线及WLn相关联。在这种情况下,读取保持WLn+1的页状态的存储单元。第二场景是所讨论的页与奇数位线及WLn相关联。在这种情况下,读取WLn上的页状态存储单元。注意,在一个实施方式中,可以在读取偶数位线的页状态存储单元的同时读取奇数位线的页状态存储单元(即使通常分开读取偶数位线与奇数位线)。因此,在一些情况下,可以通过不必读取偶数位线和奇数位线二者来节省时间。
在步骤1544中,基于页状态来确定某一页是否已经被编程。注意,步骤1544可以用于实现步骤1104、1204、1306或1312。
如果页尚未被编程,则可以执行步骤1106。代替地,可以执行步骤1206、1314、1316或1326中之一。
如果页已经被编程,则可以执行步骤1108。代替地,可以执行步骤1208或1308中之一。
图16是描述用于进行对页的读操作的过程的一个实施方式的流程图。该过程可以用于执行来自图11的步骤1108。而且,该过程可以用于步骤1208或1308。注意,简单地通过改变读取电平,该过程可以用于执行图11的步骤1106,以为部分编程块提供读取补偿。该过程还可以通过改变读取电平而用于步骤1206、1314、1316或1326。还要注意的是,如下面更充分地描述的那样,可以用除了改变读取电平之外的其他技术来实现对部分编程块的读取补偿。
可以对涵盖块的所有位线、只有块的奇数位线、只有块的偶数位线或者块的位线的其他子集的页执行图16的过程。在步骤1640中,向与目标页相关联的适当字线施加读取参考电压Vra。在步骤1642中,感测与该页相关联的位线,以基于Vra向它们的控制删极的施加来确定寻址的存储单元接通与否。位线导通指示存储单元被接通;因此,这些存储单元的阈值电压处于Vra之下(例如在状态E中)。在步骤1644中,将对位线进行感测的结果存储在用于这些位线的适当锁存器中。在步骤1646中,向与读取的页相关联的字线施加读取参考电压Vrb。在步骤1648中,如上所述对位线进行感测。在步骤1650中,将结果存储在用于位线的适当锁存器中。在步骤1652中,向与该页相关联的字线施加读取参考电压Vrc。在步骤1654中,如上所述,对位线进行感测以确定哪些存储单元接通。在步骤1656中,将来自感测步骤的结果存储在用于位线的适当锁存器中。在步骤1658中,确定每根位线的数据值。例如,如果存储单元在Vra处导通,则存储单元处在状态E。如果存储单元在Vrb和Vrc处但不在Vra处导通,则存储单元处在状态A。如果存储单元在Vrc处但不在Vra和Vrb处导通,则存储单元处在状态B。如果存储单元在Vra、Vrb或Vrc处不导通,则存储单元处在状态C。在其他实施方式中,感测各种电平(Vra、Vrb和Vrc)可以按照不同的顺序发生。
在一个实施方式中,通过向所选字线施加与图16的过程中使用的正常电平相比不同的电压来进行部分块补偿。例如,参照图9B,可以向所选字线施加电平Vra′、Vrb′、Vrc′。回想图9B描述了如下情况:既没有对相邻位线上的存储单元进行编程,又没有对相邻字线上的存储单元进行编程。作为另一示例,参照图9C,可以向所选字线施加电平Vra′′、Vrb′′、Vrc′′。回想图9C描述了如下情况:相邻位线上的存储单元已经被编程,但是相邻字线上的存储单元尚未被编程。对于其他情况可以使用其他读取电平。
注意,存在其他方式来对部分编程块进行读取补偿。在一个实施方式中,向未选字线中的一个或多个施加与正常相比不同的电压。在描述这样补偿之前,将会描述当读取存储单元时使用的时序信号的实施方式的进一步细节。
图17是描绘在读取或验证过程的一次迭代期间各种信号的行为的时序图。如果存储单元是具有四个状态(例如E、A、B和C)的多状态存储单元,则可以针对图16的步骤1640、步骤1646和步骤1652执行图17的过程。
一般而言,在读取和验证操作期间,所选字线连接到这样一个电压,所述电压的电平是针对每个读取和验证操作而指定的,以便确定所关心的存储单元的阈值电压是否已达到这样的电平。在施加字线电压之后,测量存储单元的传导电流,以确定存储单元是否响应于施加到字线的电压而接通。如果传导电流被测量大于某个值,则假定存储单元接通并且施加到字线的电压大于存储单元的阈值电压。如果传导电流未被测量大于某个值,则假定存储单元没有接通并且施加到字线的电压不大于存储单元的阈值电压。
存在许多方式来在读取或验证操作期间测量存储单元的传导电流。在一个示例中,通过其对感测放大器中的专用电容器进行放电的速率来测量存储单元的传导电流。在一个实施方式中,通过其对感测放大器中的专用电容器进行放电的速率,使用所有位线编程的存储器阵列可以测量存储单元的传导电流。在另一示例中,所选存储单元的传导电流允许(或未能允许)包括存储单元的NAND串对位线进行放电。在一段时间之后测量位线上的电荷,以观察它是否已被放电。在一个实施方式中,通过确定位线是否已被放电,使用奇数/偶数编程的存储器阵列可以测量存储单元的传导电流。图17说明了这两个示例。
图17示出了以Vss(约为0伏特)开始的信号SGD、WL_unsel、WLn+1、WLn、SGS、所选BL、BLCLAMP以及源。SGD表示漏极侧选择栅极的栅极。SGS是源极侧选择栅极的栅极。WLn是选择用于读取/验证的字线。WLn+1是WLn的漏极侧相邻字线的未选字线。WL_unsel表示除了漏极侧相邻字线之外的未选字线。所选BL是选择用于读取/验证的位线。源是用于存储单元的源极线。BLCLAMP是当从感测放大器充电时设定位线值的模拟信号。注意,存在图17中描绘的SGS、所选BL和BLCLAMP的两个版本。一组这些信号SGS(B)、所选BL(B)和BLCLAMP(B)描绘了用于通过确定位线是否已放电来测量存储单元的传导电流的存储单元阵列的读取/验证操作。另一组这些信号SGS(C)、所选BL(C)和BLCLAMP(C)描绘了用于通过其对感测放大器中的专用电容器进行放电的速率来测量存储单元的传导电流的存储单元阵列的读取/验证操作。
首先,关于SGS(B)、所选BL(B)和BLCLAMP(B)来讨论涉及通过确定位线是否已放电来测量存储单元的传导电流的存储单元阵列和感测电路的行为。在图17的时间t1,SGD升高到Vdd(例如约3.5伏特),未选字线(WL_unsel)升高到Vread(例如约5.5伏特),漏极侧相邻字线(WLn+1)升高到VreadX,所选字线WLn升高到用于读取操作的Vcgr(例如图7A或9A的Vra、Vrb或Vrc),并且BLCLAMP(B)升高到对所选择的位线所选BL(B)进行预充电的预充电电压(例如到约0.7伏特)。电压Vread和VreadX充当通过电压,因为它们使未选存储单元接通并且充当通过栅极。在时间t2,BLCLAMP(B)下降到Vss,以便NAND串可以控制位线。同样在时间t2,通过将SGS(B)升高到Vdd来接通源极侧选择栅极。这提供了路径以耗散位线上的电荷。如由信号线1750所描绘的那样,如果选择用于读取的存储单元的阈值电压大于Vcgr或施加到所选字线WLn的验证电平,则所选存储单元不会接通并且位线不会放电。如由曲线1752所描绘的那样,如果选择用于读取的存储单元的阈值电压在Vcgr之下或者在施加到所选字线WLn的验证电平之下,则选择用于读取的存储单元会接通(导通)并且位线电压会耗散。在时间t2之后且在时间t3之前的某个点处(如由特定实施方式所确定的那样),感测放大器会确定位线是否已经耗散足够的量。如图17所描绘的那样,在t2和t3之间,BLCLAMP(B)被升高以让感测放大器测量估计的BL电压,然后BLCLAMP(B)被降低。在时间t3,所描绘的信号会降低到Vss(或者用于备用或恢复的别的值)。注意,在其他实施方式中,可以改变信号中的一些信号的时序(例如使施加到相邻者的信号移位)。
接下来,关于SGS(C)、所选BL(C)和BLCLAMP(C)来讨论通过其对感测放大器中的专用电容器进行放电的速率来测量存储单元的传导电流的存储单元阵列和感测电路的行为。在图17的时间t1,SGD升高到Vdd(例如约3.5伏特),未选字线(WL_unsel)升高到Vread(例如约5.5伏特),漏极侧相邻字线(WLn+1)升高到VreadX,所选字线WLn升高到用于读取操作的Vcgr(例如图7A或9A的Vra、Vrb或Vrc),并且BLCLAMP(C)被升高。在这种情况下,感测放大器保持位线电压恒定而不管NAND串正在做什么,以便感测放大器测量在位线被“箝位”到该电压的情况下流过的电流。因此,BLCLAMP(C)在t1处升高并且从t1到t3不变化。在时间t1之后和时间t3之前的某个点处(如由特定实施方式所确定的那样),感测放大器会确定感测放大器中的电容器是否已经耗散足够的量。在时间t3,所描绘的信号会降低到Vss(或者用于备用或恢复的别的值)。注意,在其他实施方式中,可以改变信号中的一些信号的时序。
如在此讨论的那样,通过各种实施方式来提供部分块读取补偿。一个实施方式还包括:在验证过程期间设立需要的条件,以便稍后施加部分块读取补偿。在这样的实施方式中,施加到WLn+1的过度驱动/旁路电压(另外被称为VREAD)从例如为6V的典型值下降到例如3V。补偿将会包括:在对WLn执行的读取操作期间,将与在编程/验证操作的验证阶段期间使用的电压相比更高的电压施加到WLn+1。换言之,补偿包括变化/增量:ΔVREAD={[VREAD(读取WLn期间的WLn+1)]-[VREAD(验证WLn期间的WLn+1)]}。在验证期间使用较低的VREAD值的优点是,允许稍后在读取操作期间施加VREAD的标称值,同时维持需要的ΔVREAD。若非在验证期间使用小于标称值的VREAD,则在读取期间会允许施加足够ΔVREAD的必要VREAD值例如会为6+3=9V,这会是过高的电压,因为这样的高VREAD电压导致了读取干扰情况。这样的设立用于稍后补偿的一个例子在图17中被描绘为将VreadX施加到漏极侧相邻字线,同时其他未选字线则接收Vread。在图17的实施方式中,除了漏极侧相邻字线之外的所有未选字线都接收Vread,而漏极侧相邻字线则接收VreadX。
因此,在一个实施方式中,当执行图16的步骤1640至1644时,使用图17中所描绘的时序信号,其中Vcgr=Vra并且VreadX=Vread。注意,即使使用Vra的正常读取电平,也提供部分块补偿。类似地,当执行图16的步骤1646至1650时,使用图17中所描绘的时序信号,其中Vcgr=Vrb并且VreadX=Vread。再次要注意的是,即使使用Vrb的正常读取电平,也提供部分块补偿。同样地,当执行图16的步骤1652至1656时,使用图17中所描绘的时序信号,其中Vcgr=Vrc并且VreadX=Vread。再次要注意的是,即使使用Vrc的正常读取电平,也提供部分块补偿。
在其他实施方式中,通过向所选位线、源极线或基板施加与正常电压不同的电压来提供部分块补偿。例如,如果通常向所选位线施加Vdd,则可以施加Vdd+差量以提供部分块补偿。作为另一示例,如果通常共用源极线接地,则可以向共用源极线施加某个小电压(正的或负的)以提供部分块补偿。作为又一示例,如果通常基板接地,则可以向基板施加某个电压以提供部分块补偿。
在其他实施方式中,通过改变感测因数来提供部分块补偿。在一个实施方式中,改变感测波形的时序。如上面提到的那样,在一些实施方式中,对所选存储单元的传导电流进行分析以确定阈值电压。在一个实施方式中,来自所选存储单元的传导电流用于对电容器进行充电或放电。可以通过改变传导电流对电容器进行充电/放电的时间来提供部分块补偿。在一个实施方式中,来自所选存储单元的传导电流用于对所选位线(其可能已经被预充电)进行放电。在这个实施方式中可以修改充电时间以提供部分块读取补偿。
注意,可以使用许多其他技术来提供部分块读取补偿。
图8B和图8C示出了两种可能的页编程序列。注意,可以使用许多其他类型的页编程序列。图18A至18E描绘了可以在施加部分块补偿时使用的几个其他页编程序列的表。注意,在图11或图12中可以使用以下页编程序列中的任何一个。可以以图13A的方式使用偶数/奇数位线编程序列。
图18A是描述用于所有位线编程的沿着位线对存储单元进行编程的顺序的表。在这个实施方式中,具有四根字线的块包括4页(页0至3)。页0首先被写入,继之以页1,继之以页2,然后继之以页3。页0中的数据包括由连接到字线WL0的所有存储单元所存储的数据。页1中的数据包括由连接到字线WL1的存储单元所存储的数据。页2中的数据包括由连接到WL2的存储单元所存储的数据。页3中的数据包括由连接到字线WL3的存储单元所存储的数据。图18A的实施方式假定完全序列编程。
图18B描绘了当使用完全序列编程方法时在奇数/偶数编程期间的编程的顺序。在这个实施方式中,具有四根字线的块包括8页数据。连接到字线WL0的偶数位线上的存储单元存储用于页0的数据。连接到字线WL0的奇数位线上的存储单元存储用于页1的数据。连接到字线WL1的偶数位线上的存储单元存储用于页2的数据。连接到字线WL1的奇数位线上的存储单元存储用于页3的数据。连接到字线WL2的偶数位线上的存储单元存储用于页4的数据。连接到字线WL2的奇数位线上的存储单元存储用于页5的数据。连接到字线WL3的偶数位线上的存储单元存储用于页6的数据。连接到字线WL3的奇数位线上的存储单元存储用于页7的数据。根据从页0到页7的页码按照数字顺序对数据进行编程。
图18C的表描述了在执行所有位线编程的存储器阵列中根据如图7A至图7B中那样的两阶段编程过程来进行编程的顺序。具有四根字线的块被描绘为包括8页。对于连接到字线WL0的存储单元而言,下页数据形成页0并且上页数据形成页1。对于连接到字线WL1的存储单元而言,下页数据形成页2并且上页数据形成页3。对于连接到字线WL2的存储单元而言,下页数据形成页4并且上页数据形成页5。对于连接到字线WL3的存储单元而言,下页数据形成页6并且上页数据形成页7。根据从页0到页7的页码按照数字顺序对数据进行编程。
图18D提供了描述针对进行奇/偶编程的存储架构根据如图7A至图7B中那样的两阶段编程过程来进行编程的顺序的表。具有四根字线的块包括16个页,其中根据从页0到页15的页码按照数字顺序对页进行编程。对于连接到字线WL0的偶数位线上的存储单元而言,下页数据形成页0并且上页数据形成页2。对于连接到字线WL0的奇数位线上的存储单元而言,下页数据形成页1并且上页数据形成页3。对于连接到字线WL1的偶数位线上的存储单元而言,下页形成页4并且上页形成页6。对于连接到字线WL1的奇数位线上的存储单元而言,下页形成页5并且上页形成页7。对于连接到字线WL2的偶数位线上的存储单元而言,下页形成页8并且上页形成页10。对于连接到字线WL2的奇数位线上的存储单元而言,下页形成页9并且上页形成页11。对于连接到字线WL3的偶数位线上的存储单元而言,下页形成页12并且上页形成页14。对于连接到字线WL3的奇数位线上的存储单元而言,下页形成页13并且上页形成页15。代替地,如图18E中那样,偶数位线的每根字线之下的下页和上页二者在对这个相同字线的奇数位线的两种页进行编程之前而被编程。
注意,页可以包括比下页和上页更多的页。例如,可以存在下页、中页和上页。换言之,每个存储单元可以存储3位。在此讨论的实施方式可以为这样的方案提供部分块读取补偿。作为进一步的示例,每个存储单元可以存储四位。在这种情况下,在页编程方案中可以存在4页。在此讨论的实施方式可以为这样的每个存储单元存储四位的方案提供部分块读取补偿。在此讨论的实施方式可以为每个存储单元存储多于四位的方案提供部分块读取补偿。
一个实施方式包括一种操作非易失性存储器的方法。该方法可以为非易失性存储器的部分编程块提供读取补偿。在这个实施方式中,接收请求以读取第一页的数据。第一页与成块的非易失性存储元件中的第一组非易失性存储元件相关联。确定第二页是否已经被编程。第二页在对页进行编程的序列中跟随第一页。第二页与相邻于第一组非易失性存储元件的第二组非易失性存储元件相关联。注意,第二页不一定直接跟随第一页。如果第二页尚未被编程,则施加读取校正以读取第一页。读取校正对至少第二页尚未被编程进行补偿。
一个实施方式包括一种操作非易失性存储器的方法。该方法可以为非易失性存储器的部分编程块提供读取补偿。在这个实施方式中,接收请求以读取第一页的数据,所述第一页与成组的非易失性存储元件中的第一组非易失性存储元件相关联。第一页是按照序列被编程的页中的第一页。对序列中的相继页中的至少一些页进行编程造成了对第一页的额外干扰。确定在序列中跟随第一页的并且造成干扰阈值量的一个或多个页是否已经被编程。该一个或多个页与组中的其他非易失性存储元件相关联。如果确定造成至少干扰阈值量的序列中的至少一页尚未被编程,则施加读取校正以读取第一页。读取校正是通过对序列中的后续页进行编程而对第一页造成多少干扰的函数。
一个实施方式包括一种操作非易失性存储器的方法。接收请求以读取与第二组位线交替的第一组位线和第一字线上的第一组非易失性存储元件中存储的第一页的数据。确定第二页或第三页中的至少一个是否尚未被编程。第二组非易失性存储元件用于存储第二页;第三组非易失性存储元件用于存储第三页。第二组非易失性存储元件处在与第一字线相邻的第二字线上;第三组非易失性存储元件处在第一字线和第二组位线上。如果第二页或第三页中的至少一个尚未被编程,则施加读取校正以读取第一页,所述读取校正对第二页和/或第三页尚未被编程进行补偿。
一个实施方式包括一种非易失性存储设备,该非易失性存储设备包括成块的非易失性存储元件和一个或多个管理电路,该一个或多个管理电路与成块的非易失性存储元件进行通信。非易失性存储元件包括第一组非易失性存储元件和与第一组非易失性存储元件相邻的第二组非易失性存储元件。第一组非易失性存储元件用于存储第一页;第二组非易失性存储元件用于存储第二页。第二页在页被编程的序列中跟随第一页。一个或多个管理电路接收请求以读取第一页。一个或多个管理电路确定第二页是否已经被编程。如果第二页尚未被编程,则一个或多个管理电路施加读取校正以读取第一页。读取校正对至少第二页尚未被编程进行补偿。
一个实施方式包括一种非易失性存储设备,该非易失性存储设备包括多根字线、多根位线、成组的非易失性存储元件以及一个或多个管理电路,该一个或多个管理电路与成块的非易失性存储元件进行通信。多根字线包括第一字线和与第一字线相邻的第二字线。多根位线包括第一组位线和与第一组位线交替的第二组位线。成组的非易失性存储元件包括用于存储第一页的第一组非易失性存储元件、用于存储第二页的第二组非易失性存储元件以及用于存储第三页的第三组非易失性存储元件。第一页在页序列中在第二页和第三页之前被编程。第一组非易失性存储元件与第一字线及第一组位线相关联;第二组非易失性存储元件与第二字线及第一组位线相关联;并且第三组非易失性存储元件与第一字线及第二组位线相关联。一个或多个管理电路接收请求以读取第一页。一个或多个管理电路确定第二页是否已经被编程。如果第二页尚未被编程,则一个或多个管理电路施加读取校正以读取第一页。读取校正对至少第二页尚未被编程进行补偿。
出于说明与描述的目的已提供了前述详细描述。并不旨在穷举或将实施方式限制到所公开的精确形式。考虑到上述教导,许多修改和变化都是可能的。选择所描述的实施方式以便最好地说明原理和实际应用,从而使本领域普通技术人员能够最好地利用各种实施方式以及适合于所预期的特定用途的各种修改。打算由所附权利要求限定本发明的范围。
Claims (15)
1.一种用于操作非易失性存储器的方法,包括:
接收请求以读取第一页的数据,所述第一页与成块的非易失性存储元件中的第一组非易失性存储元件相关联(1102);
确定第二页是否已经被编程,所述第二页在对页进行编程的序列中跟随所述第一页,所述第二页和与所述第一组非易失性存储元件相邻的第二组非易失性存储元件相关联(1104);以及
如果所述第二页尚未被编程,则施加读取校正以读取所述第一页,所述读取校正对至少所述第二页尚未被编程进行补偿(1106)。
2.根据权利要求1所述的方法,其中,所述第一组非易失性存储元件与第一字线相关联,并且所述第二组非易失性存储元件和与所述第一字线相邻的第二字线相关联。
3.根据权利要求2所述的方法,其中,所述第一组非易失性存储元件与第一组位线相关联,所述第一组位线与第二组位线交替,所述第二组非易失性存储元件与所述第一组位线相关联,并且第三页与第三组非易失性存储元件相关联,所述第三组非易失性存储元件与所述第一字线及所述第二组位线相关联。
4.根据权利要求3所述的方法,进一步包括:
如果所述第二页尚未被编程,则确定所述第三页是否已经被编程,所述第三页在对页进行编程的序列中处于所述第一页与所述第二页之间,
其中,如果所述第二页尚未被编程则施加读取校正以读取所述第一页包括:
如果所述第二页和所述第三页两者都尚未被编程,则施加第一组读取校正以读取所述第一页,所述第一组读取校正对所述第二页和所述第三页两者都尚未被编程进行补偿;以及
如果所述第二页尚未被编程但所述第三页已经被编程,则施加第二组读取校正以读取所述第一页,所述第二组读取校正对所述第二页尚未被编程但所述第三页已经被编程进行补偿。
5.根据权利要求1所述的方法,其中,所述第一组非易失性存储元件与第一字线及第一组位线相关联,所述第一组位线与第二组位线交替,所述第二页与第二组非易失性存储元件相关联,所述第二组非易失性存储元件与所述第一字线及所述第二组位线相关联,第三组非易失性存储元件和与所述第一字线相邻的第二字线相关联,并且所述第三组非易失性存储元件与所述第一组位线相关联。
6.根据权利要求5所述的方法,进一步包括:
如果所述第二页尚未被编程,则确定所述第三页是否已经被编程,所述第三页在对页进行编程的序列中处于所述第一页与所述第二页之间,
其中,如果所述第二页尚未被编程则施加读取校正以读取所述第一页包括:
如果所述第二页和所述第三页两者都尚未被编程,则施加第一组读取校正以读取所述第一页,所述第一组读取校正对所述第二页和所述第三页两者都尚未被编程进行补偿;以及
如果所述第二页尚未被编程但所述第三页已经被编程,则施加第二组读取校正以读取所述第一页,所述第二组读取校正对所述第二页尚未被编程但所述第三页已经被编程进行补偿。
7.根据权利要求1至6中任何一项所述的方法,其中,如果所述第二页尚未被编程则施加读取校正以读取所述第一页包括:
向所述第一组中的所有非易失性存储元件施加相同的读取校正,所述读取校正对由于稍后对至少所述第二页进行编程而发生的所述第一组非易失性存储元件的阈值电压分布的移位进行补偿。
8.根据权利要求1至7中任何一项所述的方法,其中,所述读取校正是通过对所述序列中的后续页进行编程而造成多少干扰的函数。
9.一种非易失性存储设备,包括:
成块(450)的非易失性存储元件,所述非易失性存储元件包括第一组非易失性存储元件和与所述第一组非易失性存储元件相邻的第二组非易失性存储元件,所述第一组非易失性存储元件用于存储第一页,所述第二组非易失性存储元件用于存储第二页,所述第二页在对页进行编程的序列中跟随所述第一页;以及
与所述成块的非易失性存储元件进行通信的一个或多个管理电路(550,510,530,560),所述一个或多个管理电路接收请求以读取所述第一页,所述一个或多个管理电路确定所述第二页是否已经被编程,如果所述第二页尚未被编程,则所述一个或多个管理电路施加读取校正以读取所述第一页,所述读取校正对至少所述第二页尚未被编程进行补偿。
10.根据权利要求9所述的非易失性存储设备,进一步包括多根字线(WL0,WL1,WL2,…),所述第一组非易失性存储元件与所述多根字线中的第一字线(例如WL2)相关联,并且所述第二组非易失性存储元件与所述多根字线中的与所述第一字线相邻的第二字线(例如WL1)相关联。
11.根据权利要求10所述的非易失性存储设备,其中,所述成块的非易失性存储元件进一步包括用于存储第三页的第三组非易失性存储元件,并且进一步包括第一组位线(例如偶数)和与所述第一组位线交替的第二组位线(例如奇数),所述第一组非易失性存储元件与所述第一组位线(例如偶数)相关联,所述第二组非易失性存储元件与所述第一组位线(例如偶数)相关联,并且所述第三组非易失性存储元件与所述第一字线(例如WL2)及所述第二组位线(例如奇数)相关联。
12.根据权利要求9所述的非易失性存储设备,进一步包括多根字线(WL0,WL1,WL2,…)和第一组位线(例如偶数)以及与所述第一组位线交替的第二组位线(例如奇数),所述第一组非易失性存储元件与所述多根字线中的第一字线(例如WL2)以及所述第一组位线(例如偶数)相关联,并且所述第二组非易失性存储元件与所述第一字线(例如WL2)以及所述第二组位线(例如奇数)相关联。
13.根据权利要求9所述的非易失性存储设备,其中,所述一个或多个管理电路向所述第一组中的所有非易失性存储元件施加相同的读取校正,所述读取校正对由于稍后对至少所述第二页进行编程而发生的所述第一组非易失性存储元件的阈值电压分布的移位进行补偿。
14.根据权利要求9所述的非易失性存储设备,其中,所述读取校正是通过对所述序列中的后续页进行编程而造成多少干扰的函数。
15.一种非易失性存储设备,包括:
用于接收请求以读取第一页的数据的装置(550,510,530,560),所述第一页与成块的非易失性存储元件中的第一组非易失性存储元件相关联;
用于确定第二页是否已经被编程的装置(550,510,530,560),所述第二页在对页进行编程的序列中跟随所述第一页,所述第二页与和所述第一组非易失性存储元件相邻的第二组非易失性存储元件相关联;以及
用于如果所述第二页尚未被编程则施加读取校正以读取所述第一页的装置(550,510,530,560),所述读取校正对至少所述第二页尚未被编程进行补偿。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/214,765 US8743615B2 (en) | 2011-08-22 | 2011-08-22 | Read compensation for partially programmed blocks of non-volatile storage |
US13/214,765 | 2011-08-22 | ||
PCT/US2012/051797 WO2013028721A1 (en) | 2011-08-22 | 2012-08-22 | Read compensation for partially programmed blocks of non-volatile storage |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103814408A true CN103814408A (zh) | 2014-05-21 |
CN103814408B CN103814408B (zh) | 2016-08-31 |
Family
ID=47074865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280040608.6A Active CN103814408B (zh) | 2011-08-22 | 2012-08-22 | 用于非易失性存储器的部分编程块的读取补偿 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8743615B2 (zh) |
EP (1) | EP2748819B1 (zh) |
CN (1) | CN103814408B (zh) |
TW (1) | TW201324512A (zh) |
WO (1) | WO2013028721A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107705814A (zh) * | 2017-09-20 | 2018-02-16 | 深圳市致存微电子企业(有限合伙) | 闪存读阈值预测电平确定方法、设备及可读存储介质 |
CN108109664A (zh) * | 2017-11-29 | 2018-06-01 | 深圳忆联信息系统有限公司 | 一种缓解mlc闪存读干扰问题的方法 |
CN108701084A (zh) * | 2017-01-23 | 2018-10-23 | 美光科技公司 | 部分写入块处理 |
CN112509627A (zh) * | 2016-04-11 | 2021-03-16 | 爱思开海力士有限公司 | 存储装置的操作方法 |
CN112614531A (zh) * | 2021-01-06 | 2021-04-06 | 长江存储科技有限责任公司 | 3d存储器件及其读取方法 |
CN112837734A (zh) * | 2016-06-30 | 2021-05-25 | 东芝存储器株式会社 | 存储系统 |
WO2022083633A1 (zh) * | 2020-10-20 | 2022-04-28 | 长江存储科技有限责任公司 | 存储器的读取方法以及存储器 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8954650B2 (en) * | 2011-09-16 | 2015-02-10 | Intel Corporation | Apparatus, system, and method for improving read endurance for a non-volatile memory |
US20130343125A1 (en) * | 2012-06-22 | 2013-12-26 | Mosaid Technologies Incorporated | Apparatus and methods for carrying out operations in a non-volatile memory cell having multiple memory states |
US9236133B2 (en) | 2013-12-13 | 2016-01-12 | Micron Technology, Inc. | Adjusted read for partially programmed block |
TWI557743B (zh) * | 2014-09-12 | 2016-11-11 | 群聯電子股份有限公司 | 程式化方法、記憶體儲存裝置及記憶體控制電路單元 |
US9552885B2 (en) | 2014-12-10 | 2017-01-24 | Sandisk Technologies Llc | Partial block erase for open block reading in non-volatile memory |
US9543023B2 (en) | 2015-01-23 | 2017-01-10 | Sandisk Technologies Llc | Partial block erase for block programming in non-volatile memory |
US9431120B1 (en) * | 2015-03-23 | 2016-08-30 | Sandisk Technologies, Llc | Memory die and method for efficient use of data latches in serving mixed traffic loads |
US9721652B2 (en) | 2015-11-17 | 2017-08-01 | Sandisk Technologies Llc | State dependent sensing for wordline interference correction |
US9460799B1 (en) | 2015-11-24 | 2016-10-04 | Sandisk Technologies Llc | Recovery of partially programmed block in non-volatile memory |
US9564233B1 (en) * | 2016-03-04 | 2017-02-07 | Sandisk Technologies Llc | Open block source bias adjustment for an incompletely programmed block of a nonvolatile storage device |
US10074440B2 (en) | 2016-10-28 | 2018-09-11 | Sandisk Technologies Llc | Erase for partially programmed blocks in non-volatile memory |
US10115472B1 (en) | 2017-08-02 | 2018-10-30 | International Business Machines Corporation | Reducing read disturb effect on partially programmed blocks of non-volatile memory |
US10347344B2 (en) * | 2017-08-29 | 2019-07-09 | Micron Technology, Inc. | Read voltage calibration based on host IO operations |
US10734084B2 (en) | 2018-05-31 | 2020-08-04 | Western Digital Technologies, Inc. | Scheme to reduce read disturb for high read intensive blocks in non-volatile memory |
US10607709B1 (en) * | 2018-09-13 | 2020-03-31 | Toshiba Memory Corporation | System and method for efficient read-flow by inter-cell interference decoupling for NAND flash memories |
US11335413B2 (en) | 2020-05-29 | 2022-05-17 | Western Digital Technologies, Inc. | Ramp rate control for peak and average current reduction of open blocks |
US11189337B1 (en) | 2020-05-29 | 2021-11-30 | Western Digital Technologies, Inc. | Multi-stage voltage control for peak and average current reduction of open blocks |
KR20220010210A (ko) * | 2020-07-17 | 2022-01-25 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 읽기 동작 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6046935A (en) * | 1996-03-18 | 2000-04-04 | Kabushiki Kaisha Toshiba | Semiconductor device and memory system |
US20090034337A1 (en) * | 2007-08-01 | 2009-02-05 | Seiichi Aritome | Method, apparatus, and system for improved read operation in memory |
CN101385029A (zh) * | 2006-02-15 | 2009-03-11 | 微软公司 | 物化外联接视图的维护 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
JP3631463B2 (ja) | 2001-12-27 | 2005-03-23 | 株式会社東芝 | 不揮発性半導体記憶装置 |
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 |
US6771536B2 (en) | 2002-02-27 | 2004-08-03 | Sandisk Corporation | Operating techniques for reducing program and read disturbs of a non-volatile memory |
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 |
US6987693B2 (en) | 2002-09-24 | 2006-01-17 | Sandisk Corporation | Non-volatile memory and method with reduced neighboring field errors |
US7196931B2 (en) | 2002-09-24 | 2007-03-27 | Sandisk Corporation | Non-volatile memory and method with reduced source line bias errors |
US6983428B2 (en) | 2002-09-24 | 2006-01-03 | Sandisk Corporation | Highly compact non-volatile memory and method thereof |
US6891753B2 (en) | 2002-09-24 | 2005-05-10 | Sandisk Corporation | Highly compact non-volatile memory and method therefor with internal serial buses |
US7443757B2 (en) | 2002-09-24 | 2008-10-28 | Sandisk Corporation | Non-volatile memory and method with reduced bit line crosstalk errors |
US7196928B2 (en) | 2005-04-05 | 2007-03-27 | Sandisk Corporation | Compensating for coupling during read operations of non-volatile memory |
US7349260B2 (en) | 2005-12-29 | 2008-03-25 | Sandisk Corporation | Alternate row-based reading and writing for non-volatile memory |
US7400532B2 (en) * | 2006-02-16 | 2008-07-15 | Micron Technology, Inc. | Programming method to reduce gate coupling interference for non-volatile memory |
US7499319B2 (en) | 2006-03-03 | 2009-03-03 | Sandisk Corporation | Read operation for non-volatile storage with compensation for coupling |
US7310272B1 (en) | 2006-06-02 | 2007-12-18 | Sandisk Corporation | System for performing data pattern sensitivity compensation using different voltage |
US7684247B2 (en) | 2006-09-29 | 2010-03-23 | Sandisk Corporation | Reverse reading in non-volatile memory with compensation for coupling |
US7606070B2 (en) | 2006-12-29 | 2009-10-20 | Sandisk Corporation | Systems for margined neighbor reading for non-volatile memory read operations including coupling compensation |
KR101411976B1 (ko) | 2007-07-09 | 2014-06-27 | 삼성전자주식회사 | 플래시 메모리 시스템 및 그것의 에러 정정 방법 |
US7848144B2 (en) | 2008-06-16 | 2010-12-07 | Sandisk Corporation | Reverse order page writing in flash memories |
-
2011
- 2011-08-22 US US13/214,765 patent/US8743615B2/en active Active
-
2012
- 2012-08-22 WO PCT/US2012/051797 patent/WO2013028721A1/en active Application Filing
- 2012-08-22 CN CN201280040608.6A patent/CN103814408B/zh active Active
- 2012-08-22 TW TW101130532A patent/TW201324512A/zh unknown
- 2012-08-22 EP EP12778148.2A patent/EP2748819B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6046935A (en) * | 1996-03-18 | 2000-04-04 | Kabushiki Kaisha Toshiba | Semiconductor device and memory system |
CN101385029A (zh) * | 2006-02-15 | 2009-03-11 | 微软公司 | 物化外联接视图的维护 |
US20090034337A1 (en) * | 2007-08-01 | 2009-02-05 | Seiichi Aritome | Method, apparatus, and system for improved read operation in memory |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112509627A (zh) * | 2016-04-11 | 2021-03-16 | 爱思开海力士有限公司 | 存储装置的操作方法 |
CN112509627B (zh) * | 2016-04-11 | 2023-12-26 | 爱思开海力士有限公司 | 存储装置的操作方法 |
CN112837734A (zh) * | 2016-06-30 | 2021-05-25 | 东芝存储器株式会社 | 存储系统 |
CN112837734B (zh) * | 2016-06-30 | 2023-07-14 | 铠侠股份有限公司 | 存储系统 |
CN108701084A (zh) * | 2017-01-23 | 2018-10-23 | 美光科技公司 | 部分写入块处理 |
CN108701084B (zh) * | 2017-01-23 | 2022-08-12 | 美光科技公司 | 部分写入块处理 |
US11416154B2 (en) | 2017-01-23 | 2022-08-16 | Micron Technology, Inc. | Partially written block treatment |
CN107705814A (zh) * | 2017-09-20 | 2018-02-16 | 深圳市致存微电子企业(有限合伙) | 闪存读阈值预测电平确定方法、设备及可读存储介质 |
CN108109664A (zh) * | 2017-11-29 | 2018-06-01 | 深圳忆联信息系统有限公司 | 一种缓解mlc闪存读干扰问题的方法 |
WO2022083633A1 (zh) * | 2020-10-20 | 2022-04-28 | 长江存储科技有限责任公司 | 存储器的读取方法以及存储器 |
CN112614531A (zh) * | 2021-01-06 | 2021-04-06 | 长江存储科技有限责任公司 | 3d存储器件及其读取方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2013028721A1 (en) | 2013-02-28 |
EP2748819A1 (en) | 2014-07-02 |
EP2748819B1 (en) | 2016-07-20 |
US20130051148A1 (en) | 2013-02-28 |
CN103814408B (zh) | 2016-08-31 |
TW201324512A (zh) | 2013-06-16 |
US8743615B2 (en) | 2014-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103814408B (zh) | 用于非易失性存储器的部分编程块的读取补偿 | |
CN102160119B (zh) | 非易失性存储器中感测期间的基于数据状态的温度补偿 | |
CN102187399B (zh) | 使用字线耦合的用于存储器的多趟次编程 | |
CN101356587B (zh) | 用于对具有减少的编程干扰的nand类型的非易失性存储器进行编程的以末为先模式 | |
CN101689400B (zh) | 基于阈值电压分布的动态检验 | |
CN102576568B (zh) | 通过检测自然阈值电压分布预告存储器中的编程干扰 | |
KR101697270B1 (ko) | 메모리에서 채널-플로팅 게이트간 커플링을 감소시키기 위한 데이터 상태에 의존적인 채널 부스팅 | |
CN101095199B (zh) | 非易失性存储系统和用于编程非易失性存储器的方法 | |
CN102906820B (zh) | 用同步耦合编程非易失性存储器 | |
CN102576567B (zh) | 用于非易失性存储器中的增强沟道升压的减小的编程脉宽 | |
KR101842322B1 (ko) | 공유된 비트 라인을 갖는 비휘발성 메모리에 대한 비트 라인 사전충전 스킴 | |
CN102576566B (zh) | 使用浮置位线对非易失性存储器的部分速度和全速度编程 | |
CN101796590B (zh) | 具有源极偏压全位线感测的非易失性存储器 | |
CN102306501B (zh) | 编程不同大小的容限及在选择状态下使用补偿进行感测以改进非易失性存储器中的读取操作 | |
CN101796591B (zh) | 使用针对改进感测的不同参考电平的非易失性存储器中的粗略/精细编程验证 | |
CN101405812A (zh) | 编程不同大小的容限及在选择状态下使用补偿进行感测以改进非易失性存储器中的读取操作 | |
CN105027215A (zh) | 用于读取非易失性存储元件的位线电流跳变点调制 | |
KR20110056285A (ko) | 비휘발성 저장장치에서 판독 동작 동안의 커플링에 대한 보상 | |
CN101627441A (zh) | 用于非易失性存储装置的电阻感测及补偿 | |
CN101584006A (zh) | 非易失性存储器中的经分割的软编程 | |
CN101405814A (zh) | 使用不同电压的用于非易失性存储装置的检验操作 | |
KR101100359B1 (ko) | 인접 메모리 셀의 저장 상태를 고려하여 비휘발성 메모리 셀을 판독하는 방법 | |
CN101006519A (zh) | 非易失性存储器的可变编程 | |
CN101395673A (zh) | 对浮动栅极耦合具有补偿的非易失性存储装置的读取操作 | |
CN101351849A (zh) | 在非易失性存储器写入操作中的持续检验 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: American Texas Applicant after: DELPHI INT OPERATIONS LUX SRL Address before: American Texas Applicant before: Sandisk Technologies, Inc |
|
COR | Change of bibliographic data | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |