CN103081015B - 利用位线电压逐步增加来对非易失性存储器进行编程 - Google Patents
利用位线电压逐步增加来对非易失性存储器进行编程 Download PDFInfo
- Publication number
- CN103081015B CN103081015B CN201180035485.2A CN201180035485A CN103081015B CN 103081015 B CN103081015 B CN 103081015B CN 201180035485 A CN201180035485 A CN 201180035485A CN 103081015 B CN103081015 B CN 103081015B
- Authority
- CN
- China
- Prior art keywords
- programming
- memory device
- volatile memory
- bit line
- group
- 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
Links
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/10—Programming or data input circuits
-
- 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/5628—Programming or writing circuits; Data input circuits
-
- 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/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- 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/24—Bit-line control circuits
-
- 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/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
-
- 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/3436—Arrangements for verifying correct programming or erasure
- G11C16/3468—Prevention of overerasure or overprogramming, e.g. by verifying whilst erasing or writing
- G11C16/3486—Circuits or methods to prevent overprogramming of nonvolatile memory cells, e.g. by detecting onset or cessation of current flow in cells and using the detector output to terminate programming
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2216/00—Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
- G11C2216/12—Reading and writing aspects of erasable programmable read-only memories
- G11C2216/14—Circuits or methods to write a page or sector of information simultaneously into a nonvolatile memory, typically a complete row or word line in flash memory
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Abstract
使用下述编程技术来收窄非易失性存储器装置(196)中的阈值电压分布(A、B、C),并且/或者减少编程时间,在该编程技术中:以与编程电压的逐步增加步伐一致的方式,逐步增加具有目标数据状态(402、404、406)的存储元件的位线电压。对于存储元件的不同子集,根据其目标数据状态(402、404、406),在编程通过中的不同时间执行位线电压的逐步增加。可以基于固定的编程脉冲编号或适应性地基于编程处理来设置位线电压(Vbc)的逐步增加的开始和结束。变型包括使用固定的位线步、变化的位线步、依赖数据状态的位线步、针对一个或更多个数据状态不逐步增加位线的选项、以及增加附加的位线偏压的选项。
Description
技术领域
本技术涉及非易失性存储器。
背景技术
半导体存储器已日益盛行地应用在各种电子装置中。例如,非易失性半导体存储器被用于蜂窝电话、数字照相机、个人数字助理、移动计算装置、非移动计算装置和其他装置中。电可擦除可编程只读存储器(EEPROM)和快闪存储器属于最普及的非易失性半导体存储器。与传统的全功能EEPROM相比,利用同样作为EEPROM的一种类型的快闪存储器,可以在一步中擦除整个存储器阵列的内容或存储器的一部分的内容。
传统的EEPROM和快闪存储器两者都利用了下述浮动栅极(floatinggate):该浮动栅极位于半导体衬底中的沟道区域上方并且与该沟道区域绝缘。浮动栅极位于源极区域和漏极区域之间。控制栅极设置在该浮动栅极之上,并且与该浮动栅极绝缘。如此形成的晶体管的阈值电压(Vth)由保留在浮动栅极上的电荷量来控制。也就是说,由浮动栅极上的电荷等级来控制在接通晶体管前必须施加到控制栅极、以允许在晶体管的源极和漏极之间导通的最小电压量。
一些EEPROM和快闪存储器装置具有用于存储两个范围的电荷的浮动栅极,因此,存储器元件可以在两个状态(如擦除状态和编程状态)之间被编程/被擦除。这样的快闪存储器装置有时被称为二进制快闪存储器装置,这是因为每个存储器元件可以存储一位(bit)数据。
通过识别多个不同的允许的/有效的编程阈值电压范围来实现多状态(也称为多级)快闪存储器装置。每个不同的阈值电压范围与编码在存储器装置中的一组数据位的预定值对应。例如,当存储器元件可以被置于与四个不同的阈值电压范围相对应的四个离散电荷带中的一个离散电荷带中时,每个存储器元件可以存储两位数据。
特别地,随着存储器装置成比例地减小,需要用于对阈值电压范围精确地编程同时减少编程时间的技术。
附图说明
图1是使用单行/列解码器和读/写电路的非易失性存储器系统的框图。
图2是描绘图1的感测块100的一个实施例的框图。
图3描绘了图1的存储器阵列155中的NAND快闪存储器单元块。
图4A描绘了示例阈值电压分布和称为“一次通过写入(one-passwrite)”编程技术的一次通过编程。
图4B和图4C描绘了示例阈值电压分布和称为“二次通过写入”编程技术的二次通过编程。
图5A描绘了示例阈值电压分布和一次通过写入编程,其中在“快速通过写入(quickpasswrite)”(QPW)编程选项中可以使用多达两种编程速度。
图5B描绘了在二次通过编程期间的A状态的示例阈值电压分布,其中在第一次编程通过(firstprogrammingpass)中,可以在QPW编程选项中使用多达两种编程速度。
图5C描绘了在二次通过编程期间的A状态的示例阈值电压分布,其中在第二次编程通过中,可以在QPW编程选项中使用多达两种编程速度。
图6A、图6B和图6C分别描绘了称为“三次通过写入”编程技术的三次通过编程操作的第一次编程通过、第二次编程通过和第三次编程通过,其中使用中间校验电压或中等偏低(lower-middle)(LM)校验电压。
图6D描绘了称为“二次通过写入”编程技术的二次通过编程操作的第二次编程通过,其中图6A描绘了第一次编程通过,并且其中可以在QPW编程选项中使用多达两种编程速度。
图7A描绘了一组存储元件的以来回字线(back-and-forthwordline)顺序进行的二次通过编程操作。
图7B描绘了一组存储元件的以来回字线顺序进行的三次通过编程操作。
图8描绘了对存储元件进行编程所需的最高Vpgm与存储元件的位线电压之间的关系。
图9A描绘了位线电压逐步增加的编程技术。
图9B作为图9A的编程技术的示例而描绘了经历作为编程脉冲编号的函数的校验操作的数据状态。
图10描绘了针对图9B的序列960的、作为编程脉冲编号的函数的编程-校验操作。
图11A描绘了针对不同数据状态的、作为编程脉冲编号的函数的位线电压的逐步增加,其中将公共步长用于所有数据状态。
图11B描绘了针对A状态存储元件的、用于开始位线逐步增加循环的触发条件。
图11C描绘了针对A状态存储元件的、用于停止位线逐步增加循环的触发条件。
图12A描绘了与图11A相符的、针对A状态存储元件的作为编程脉冲编号的函数的编程速率。
图12B描绘了与图11A相符的、针对B状态存储元件的作为编程脉冲编号的函数的编程速率。
图12C描绘了与图11A相符的、针对C状态存储元件的作为编程脉冲编号的函数的编程速率。
图13描绘了针对不同数据状态的、作为编程脉冲编号的函数的位线电压的逐步增加,其中使用如下步长用于所有的数据状态:较小步长、然后是较大步长、然后是较小步长。
图14描绘了针对不同数据状态的、作为编程脉冲编号的函数的位线电压的逐步增加,其中使用较大步长用于较低数据状态,而使用较小步长用于最高数据状态。
图15描绘了针对不同数据状态的、作为编程脉冲编号的函数的位线电压的逐步增加,其中将公共的步长用于所有数据状态,并且基于阈值电压电平来增加附加位线电压。
具体实施方式
提供了用于对阈值电压范围精确地编程、同时减少编程时间的方法和非易失性存储系统。
在编程操作期间,在减少编程时间与实现不同数据状态的窄的阈值电压范围之间存在权衡。通过使用较大的编程脉冲步长可以提高编程速度。然而,这会导致超过校验电平的很大过冲,从而导致宽的阈值电压(Vth)范围。另一方面,如果使用较小的编程脉冲步长,则以增加编程时间为代价来实现窄的Vth范围。另一种方法是在双校验方案中,针对每个状态以两个单独的校验电平来校验存储元件。当存储元件的Vth超过较低校验电平时,通过施加位线偏压(bitlinebias)而减慢其编程速度。在没有位线偏压的情况下,存储元件的Vth随着每个编程脉冲以大致等于编程脉冲的的步长的量增加。在有位线偏压的情况下,存储元件的Vth随着每个编程脉冲以比编程脉冲的步长小的量增加。因此,当存储元件的Vth超过目标数据状态的较低校验电平时,可以以减小的速度对存储元件编程,并且当Vth超过目标数据状态的较高校验电平时,可以将存储元件锁定为不进一步编程。
在双校验方案中,在硅上优化每个状态的较低校验电平与较高校验电平之间的距离,并且将该距离设置在Vth分布为最窄的点处。如果较低校验电平与较高校验电平之间的间隙太高,则存储元件的Vth增长将转变回稳定状态值(例如,与编程脉冲步长相同的值),并且因此不会实现双校验方案的益处。另一方面,如果较低校验电平与较高校验电平之间的间隙太小,那么很多存储元件的Vth可在一个编程脉冲中跳过该间隙,并且因此不会减慢这些存储元件的编程速度。通常,最优的间隙是编程脉冲步长的函数。较大的编程脉冲步长趋向于增大最优间隙,这是因为Vth随着每个编程脉冲进行较大的跳变,从而需要较大的间隙来确保Vth不会随着仅一个编程脉冲就正好跳过间隙并超过较高校验电平。
此外,对于双校验方案,随着存储器装置成比例地缩小,编程噪音变得更糟。在一定的编程脉冲处,尽管大多数存储元件的Vth以大致等于编程脉冲步长的量跳变,但是也具有其Vth跳变地显著更高的很多存储元件。结果,对于不同存储元件来说最优间隙不同并且难以优化。
为了克服这些问题,提供如下编程技术:该编程技术确保将大多数存储元件的编程减慢,以使得Vth分布宽度为窄。在此方法中,具有特定目标数据状态的存储元件的位线电压(Vbl)针对一定范围的多个连续编程脉冲而随着顺序的编程脉冲来逐步增加。针对每个目标数据状态可以使用不同范围的编程脉冲,但是这些范围可以重叠。可以如下时间段内进行位线电压逐步增加:在该时间段,大多数存储元件接近完成到其目标数据状态的编程。在此时段期间,有效地降低了这些存储元件的Vth的增长速率,从而导致了较窄的Vth分布。此外,因为被编程到特定目标数据状态的所有存储元件的位线电压是逐步增加的,所以尚未被锁定的、属于该目标状态的所有存储元件减慢了编程。
该编程技术的变型包括使用:固定的位线步;变化的位线步;依赖数据状态的位线步;针对一个或更多个数据状态不逐步增加位线的选项;以及将附加的位线偏压增加到位线步的选项。
接下来,讨论可与该编程技术一起使用示例存储器系统。图1是使用单行/列解码器和读/写电路的非易失性存储器系统的框图。该图示出了根据一个实施例的存储器装置196,其具有用于并行地对存储元件的页(page)进行读取和编程的读/写电路。存储器装置196可以包括一个或更多个存储器芯片(die)198。存储器芯片198包括存储元件的二维存储器阵列155、控制电路110和读/写电路165。结合图3进一步讨论存储器阵列155。
在一些实施例中,存储元件的阵列可以是三维的。存储器阵列155可经由行解码器130通过字线(wordline)、并经由列解码器160通过位线(bitline)来寻址。读/写电路165包括多个感测块100并且允许并行地对存储元件的页进行读取或编程。通常,控制器150与一个或多个存储器芯片198包括在同一存储器装置196(例如,可移除存储卡)中。命令和数据通过线120而在主机与控制器150之间进行传递,并且通过线118而在控制器与一个或更多个存储器芯片198之间进行传递。
控制电路110与读/写电路165协作,以在存储器阵列155上执行存储器操作,并且控制电路110包括状态机112、片上地址解码器114和功率控制模块116。状态机112提供存储器操作的芯片级控制。片上地址解码器114提供由主机或存储器控制器使用的地址到由解码器130和160使用的硬件地址之间的地址接口。功率控制模块116控制在存储器操作期间向字线和位线提供的功率和电压。
在一些实施方式中,图1的一些部件可以进行组合。在各种设计中,可以将除存储器阵列115以外的一个或更多个部件(单独地或组合地)认为是管理或控制电路。例如,一个或更多个控制电路可以包括控制电路110、状态机112、解码器114/160、功率控制116、感测块100(包括图2中的处理器192)、读/写电路165和控制器150等中的任何一个或其组合。结合图2进一步讨论感测块100。
在另一个实施例中,非易失性存储器系统使用双行/列解码器和读/写电路。在存储器阵列155的相对侧上,以对称方式来实现由各种外围电路对存储器阵列155的访问,使得在每侧的访问线的密度和电路系统的密度都减少一半。因此,行解码器被拆分成两个行解码器,并且列解码器被拆分成两个列解码器。类似地,读/写电路被拆分成从阵列155的底部连接到位线的读/写电路以及与从阵列155的顶部连接到位线的读/写电路。以此方式,读/写模块的密度基本上减小一半。
图2是描绘了感测块的一个实施例的框图。各个感测块100被划分为称为感测模块180或感测放大器的一个或更多个核心部分、以及称为管理电路190的公共部分。在一个实施例中,针对每个位线将有单独的感测模块180,并且针对一组多个(如四个或八个)感测模块180将有一个公共管理电路190。群组中的每个感测模块经由数据总线172与相关联的管理电路通信。因此,存在与一组存储元件的感测模块通信的一个或更多个管理电路。
感测模块180包括感测电路170,感测电路170通过确定在所连接的位线中的传导电流是高于还是低于预定的阈值等级来执行感测。感测模块180还包括位线锁存器182,位线锁存器182用于在所连接的位线上设置电压条件。例如,在位线锁存器182中锁存的预定状态将导致所连接的位线被拉到指定禁止编程的状态(例如1.5V至3V)。例如,flag=0可以禁止编程,而flag=1不禁止编程。
管理电路190包括:处理器192;四组示例数据锁存器194至197;以及耦接在一组数据锁存器194与数据总线120之间的I/O接口196。可以针对每个感测模块提供一组数据锁存器,并且可以针对每个组提供由QDL、UDL和LDL标识的三个数据锁存器。处理器192执行计算,例如以确定在所感测的存储元件中存储的数据并将所确定的数据存储在一组数据锁存器中。每组数据锁存器194至197用于存储由处理器192在读取操作期间确定的数据位,并且用于存储在编程操作期间从数据总线120导入的数据位,这些数据位表示打算要编程到存储器中的写入数据。I/O接口196提供在数据锁存器194至197与数据总线120之间的接口。
在读取期间,系统的操作处于状态机112的控制之下,该状态机112控制向所寻址的存储元件提供不同的控制栅极电压。由于其逐步通过与由存储器支持的各种存储器状态相对应的各种预定义控制栅极电压,因此感测模块180可能在这些电压中的一个电压处断路(trip),并且将经由总线172把对应的输出从感测模块180提供到处理器192。在该点处,处理器192通过考虑感测模块的断路事件以及经由输入线193来自状态机的关于所施加的控制栅极电压的信息,来确定所导致的存储器状态。然后,处理器192计算存储器状态的二进制编码,并且将生成的数据位存储到数据锁存器194至197中。在管理电路190的另一实施例中,位线锁存器182服务于双重任务,既作为用于对感测模块180的输出进行锁存的锁存器,也作为上述的位线锁存器。
一些实施方式可以包括多个处理器192。在一个实施例中,每个处理器192将包括输出线(未绘出),以使得输出线中的每根输出线是在一起的有线-或(wired-OR)。在一些实施例中,输出线在被连接到有线-或线(wired-ORline)之前先被反转。由于接收有线-或的状态机可以确定被编程的所有位何时已达到期望电平,因此该配置使得能够在编程校验处理期间快速确定编程处理何时已经完成。例如,当每个位已经达到其期望电平时,用于该位的逻辑零将被发送到该有线-或线(或数据1被反转)。当所有的位输出数据0(或反转的数据1)时,则状态机知道要结束编程处理。因为每个处理器与八个感测模块通信,所以状态机需要读八次有线-或线,或者向处理器192添加逻辑以累计相关联的位线的结果,以使得状态机只需要读一次有线-或线。类似地,通过正确地选择逻辑电平,全局状态机可以检测第一位何时改变其状态,并相应地改变算法。
在编程操作或校验操作期间,从数据总线120将待编程的数据(写入数据)存储在数据锁存器194至197的组中。处于状态机控制下的该编程操作包括施加到寻址存储元件的控制栅极的一系列编程电压脉冲。每个编程脉冲都跟随有读回(readback)(校验),以确定存储元件是否已被编程到期望的存储器状态。在一些情况下,处理器192监视与期望存储器状态相关的读回存储器状态。当两者一致时,处理器192设置位线锁存器182,以使得位线被拉到指定禁止编程的状态。这禁止了耦接至该位线的存储元件进一步编程,即使在该存储元件的控制栅极上出现编程脉冲也是如此。在其它实施例中,处理器最初加载位线锁存器182,并且在校验处理期间,感测电路将该位线锁存器182设置为禁止值。
每组数据锁存器194至197可以被实施为用于每个感测模块的数据锁存器的堆栈。在一个实施例中,针对每个感测模块180有三个数据锁存器。在一些实施方式中,数据锁存器被实施为移位寄存器,以使得将存储在其中的并行数据转换成针对数据总线120的串行数据,并且反之亦然。与M个存储元件的读/写块对应的所有数据锁存器可以被链接到一起以形成块移位寄存器,以使得可以通过串行传输来输入或输出数据块。特别地,使读/写模块的库(bank)进行适应,以使得其数据锁存器组中的每一个将数据按次序地移入或移出数据总线,就好像它们是用于整个读/写块的移位寄存器的一部分那样。
数据锁存器识别相关联的存储元件在编程操作中何时已达到特定里程标志。例如,锁存器可以识别:(a)在快速编程模式中,存储元件的Vth低于较低校验电平(例如图4中的VvaL、VvbL或VvcL);(b)在慢速编程模式中,存储元件的Vth高于较低校验电平但低于较高目标检验电平(例如图4中的Vva、Vvb或Vvc);或(c)在禁止或锁定模式中,存储元件的Vth高于较高目标校验电平。数据锁存器指示存储元件当前是否存储了来自数据页的一个或更多个位。例如,LDL锁存器可以用于存储数据的较低页。当较低页位存储在相关联的存储元件中时,LDL锁存器翻转(例如,从0到1)。UDL锁存器可以用于存储例如数据的较高页。当较高页位存储在相关联的存储元件中时,UDL锁存器翻转。这发生在相关联的存储元件完成编程时,例如当其Vth超过诸如Vva、Vvb或Vvc的目标校验电平时。当相关联的存储元件处于慢速编程模式时,QDL锁存器可以翻转。
图3描绘了图1的存储器阵列155中的NAND快闪存储器单元的块。存储器阵列可以包括很多块。每个示例块300、310包括若干NAND串和相应的位线,例如在块之间共享的BL0、BL1、…。每个NAND串在其一端连接到漏极选择栅极(drainselectgate)(SGD),并且漏极选择栅极的控制栅极通过公共SGD线而连接。NAND串在其另一端连接到源极选择栅极(sourceselectgate),而源极选择栅极转而连接至公共源极线320。六十四条字线(如WL0至WL63)在源极选择栅极与漏极选择栅极之间延伸。
也可以使用除了NAND快闪存储器之外的其他类型非易失性存储器。例如,在闪速EEPROM系统中有用的另一类型的存储器单元利用非传导性电介质材料来替代传导性浮动栅极,以便以非易失性方式存储电荷。将由氧化硅、氮化硅和氧化硅形成的三层电介质(“ONO”)夹在位于存储器单元沟道上方的半传导性衬底的表面与传导性控制栅极之间。通过将电子从单元沟道注入到氮化物中(其中电子被捕获并被存储在有限区域中)来对单元进行编程。然后,该存储电荷以可检测的方式来改变该单元的沟道的一部分的Vth。通过将热空穴注入氮化物中来擦除单元。类似的单元可以设置在分裂栅极(split-gate)配置中,在该分裂栅极配置中掺杂多晶硅栅极在存储器单元沟道的一部分之上延伸,以形成单独的选择晶体管。
在另一种方法中,使用NROM单元。例如,在每个NROM单元中存储两个位,在NROM单元中ONO电介质层跨越源极扩散与漏极扩散之间的沟道而延伸。一个数据位的电荷位于邻近漏极的电介质层中,并且另一个数据位的电荷位于邻近源极的电介质层中。通过分别读取电介质内空间上分开的电荷存储区域的二进制状态,来获得多状态数据存储。其他类型的非易失性存储器也是已知的。
图4A描绘了示例Vth分布和称为“一次通过写入”编程技术的一次通过编程。编程通过通常意指包括如下的多个编程-校验操作的序列:从初始Vpgm电平开始、并且进行到最终Vpgm电平来执行该多个编程校验操作,直到针对一组存储元件达到一个或更多个相应的校验电平为止。针对每个存储元件存储两位数据的情况来提供存储元件阵列的示例Vth分布。针对擦除的(E状态)存储元件提供第一Vth分布400。三个Vth分布402、404和406分别表示编程状态A、编程状态B和编程状态C。在一个实施例中,E状态分布中的阈值电压为负,并且A状态、B状态和C状态分布中的阈值电压为正。
可以通过保持对Vth被确定为超过对应的校验电平的那些存储元件的计数,来确定处于特定状态的存储元件的数目。
每个不同的Vth范围均对应于一组数据位的预定值。编程到存储元件中的数据与存储元件的Vth电平之间的具体关系取决于为存储元件采用的数据编码方案。在一个实施例中,使用格雷码赋值法(graycodeassignment)将数据值赋给Vth范围,使得如果浮动栅极的Vth错误地移位到其邻近的物理状态,则只有一位会被影响。一个示例将“11”赋值给Vth范围E(状态E),将“10”赋值给Vth范围A(状态A),将“00”赋值给Vth范围B(状态B),并将“01”赋值给Vth范围C(状态C)。然而,在其他实施例中没有使用格雷码。尽管示出了四个状态,但是也可以使用其他多状态结构,包含包括多于或少于四个状态的多状态结构。
还设置了三个读取参考电压Vra、Vrb和Vrc,以用于从存储元件读数据。通过测试给定存储元件的Vth是高于还是低于Vra、Vrb和Vrc,系统可以确定该存储元件所处的状态,例如编程条件。
此外,设置三个目标校验参考电压Vva、Vvb和Vvc。当将存储元件编程到状态A时,系统将测试这些存储元件是否具有大于或等于Vva的Vth。当将存储元件编程到状态B时,系统将测试这些存储元件的是否具有大于或等于Vvb的阈值电压。当将存储元件编程到状态C时,系统将确定这些存储元件的Vth是否大于或等于Vvc。
在称为全序列编程的一个实施例中,可以将存储元件从E状态直接编程到编程状态A、B或C中的任何一个。例如,首先可以将待编程的一群存储元件擦除,使得该群中的所有存储元件处于擦除状态E。然后,如图10所描绘的一系列编程脉冲将被用于将存储元件直接编程到状态A、状态B或状态C。尽管一些存储元件被从状态E编程到状态A,但是其他存储元件被从状态E编程到状态B以及/或者从状态E编程到状态C。
图4B和图4C描绘了示例阈值电压分布和称为“二次通过写入”编程技术的二次通过编程。在此方法中,较低校验电平和较高校验电平被用于一个或更多个数据状态。例如,VvaL和Vva分别是A状态的较低校验电平和较高校验电平,VvbL和Vvb分别是B状态的较低校验电平和较高校验电平,并且VvcL和Vvc分别是C状态的较低校验电平和较高校验电平。较低校验电平从较高校验电平偏移。校验电平可以表示电压或电流。
在编程期间,当A状态存储元件(其意在编程到作为目标状态的A状态)的Vth小于或等于VvaL时,该存储元件以快速编程模式进行编程。这可以通过将位线接地来实现。当Vva≥Vth>VvaL时,该存储元件以慢速编程模式进行编程,例如通过将相关联的位线电压增加到处于接地与完全禁止或锁定电平之间的电平来进行。这提供了更高的精确度,并且因此通过避免Vth的大的步增加而提供了更窄的Vth分布。当Vth>Vva时,存储元件被锁定为不进一步编程。类似地,B状态存储元件(其意在编程到B状态)可以具有快速编程模式和慢速编程模式。注意,在一种方法中,对于诸如C状态的最高状态不使用慢速编程模式,这是因为其不如针对其他状态使用慢速编程模式那么有益。描绘了允许针对C状态进行慢速编程模式的VvcL。
例如,在具有擦除状态和七个编程状态A至状态G的八状态编程的示例中,快速编程模式和慢速编程模式可以用于状态A至状态F。
在第一次编程通过中(图4B),A状态存储元件、B状态存储元件和C状态存储元件被分别从E状态400编程到A状态、B状态和C状态各自的较低校验电平VvaL、VvbL和VvcL(分别是较低分布401、较低分布403和较低分布405)。在第二次编程通过中(图4C),A状态存储元件、B状态存储元件和C状态存储元件被分别从较低分布401、较低分布403和较低分布405分别编程到分别使用校验电平Vva、Vvb和Vvc的最终分布402、最终分布404和最终分布406。
图5A描绘了示例阈值电压分布和一次通过写入编程,其中在QPW编程选项中可以使用多达两种编程速度。通常,对于每个目标状态,可以限定如下校验电平:当该校验电平被超过时,该校验电平触发针对存储元件的较慢编程速度。此校验电平可以与用于发信号通知编程通过结束的校验电平是不同的。在这个示例中,使用单编程通过将A状态存储元件从E状态分布500编程到A状态分布502,由此超过了校验电平Vva-speed,该校验电平Vva-speed用作检查点,以通过例如增加相关联的位线电压来触发Vva≥Vth>Vva-speed的每个A状态存储元件的较慢编程速度。Vth≤Vva-speed的A状态存储元件通过例如将其位线电压保持接地而以较快速度编程。其Vth达到Vva(形成分布502)的所有A状态存储元件被锁定为不进一步编程。
类似地,使用单编程通过将B状态存储元件从E状态分布500编程到B状态分布504,由此超过了校验电平Vvb-speed,该校验电平Vvb-speed用作检查点,以触发Vvb≥Vth>Vvb-speed的每个B状态存储元件的较慢编程速度。Vth≤Vvb-speed的B状态存储元件以较快速度编程。其Vth达到Vvb(形成分布504)的所有B状态存储元件被锁定为不进一步编程。
此外,使用单编程通过将C状态存储元件从E状态分布500编程到C状态分布506,由此超过了校验电平Vvc-speed,该校验电平Vvc-speed用作检查点,以触发Vvc≥Vth>Vvc-speed的每个C状态存储元件的较慢编程速度。Vth≤Vvc-speed的C状态存储元件以较快速度编程。其Vth达到Vvc(形成分布506)的所有C状态存储元件被锁定为不进一步编程。
关于在此编程选项中所提及的多达两种编程速度,相较而言,在图4A至图4C的技术中,使用了“二次通过写入”技术中的两次编程通过。这样做是为了减小来自邻近存储元件的干扰效应的影响。在第一次通过中,将所有的存储元件编程为接近其最终目标Vth。然后,在第二次通过期间,将存储元件编程以达到最终目标Vth。所以,第一次通过与第二次通过之间的总的Vth移位较小,因此对邻近存储元件的相应干扰效应也较小。例如,可以以下文进一步讨论的图7A和图7B所示的顺序来编程。在第二次通过期间,因为存储元件已经被编程为接近其目标,所以,当对这些存储元件编程时,由于其Vth比其稳定状态值高,因此这些存储元件最初自然较慢地编程。该“通过写入效应”有助于收紧最终的Vth分布。
可以使用多达两种编程速度的编程选项可以被称为“快速通过写入”(QPW)技术。QPW可以独立地用在二次通过技术的第一次通过或第二次通过中,或者用在两者中。对于使用QPW的每次通过,使用低于在其处发生编程通过结束和锁定的那个校验电平的较低校验电平(Vva-speed、Vvb-speed、Vvc-speed)。此较低校验电平用作检查点以减慢编程,但并不触发存储元件的锁定。在QPW中,通过将位线偏压施加到存储元件的相关联的沟道区域,来人工地减慢存储元件的编程速度。此外,注意,QPW校验电平(Vva-speed、Vvb-speed、Vvc-speed)可以被独立地优化。在Vva-speed与Vva之间存在下述最优间隙:在该最优间隙处,获得QPW在收紧Vth分布方面的最大益处。QPW校验电平不取决于先前编程通过的校验电平。针对每个目标状态,所提及的最优间隙可以相同或不同。还要注意,在QPW中可存在只能以一种速度而不是两种速度来编程的一些存储元件,例如其Vth随着一个编程脉冲跳变正好超过Vva-speed并达到Vva的A状态存储元件。这样的存储元件在不经历慢速编程的情况下达到其目标电平。所以,在QPW中不是所有的存储元件都以两种速度编程。然而,通常大部分存储元件以两种速度编程。
图5B描绘了在二次通过编程期间A状态的示例阈值电压分布,其中在第一次编程通过期间,可以在QPW编程选项中使用多达两种编程速度。尽管为了清楚起见,仅考察A状态,但是其他目标数据状态可以类似地处理。在此情况下,在第一次编程通过中A状态存储元件超过了Vva-speed,使得其编程对于第一次编程通过的第一部分为快,而对于第一次编程通过的第二部分为慢。因此,在第一次编程通过中,A状态存储元件从E状态分布500转变到由VvaL限定的较低A状态分布501,从而超过用作检查点以触发每个A状态存储元件的较慢编程速度的Vva-speed。因此,随着A状态存储元件转变到较低A状态分布501,A状态存储元件的速度降低,发信号通知Vth>Vval的每个A状态存储元件的第一次编程通过结束。在第二次编程通过中,A状态存储元件被从分布501编程到由Vva限定的分布502,发信号通知Vth>Vva的每个A状态存储元件的第二次编程通过结束。可选地,如接下来所讨论的那样,第二次编程通过也可以使用QPW。
图5C描绘了在二次通过编程期间A状态的示例阈值电压分布,其中在第二次编程通过期间可以在QPW编程选项中使用多达两种编程速度。再次地,尽管为了清楚起见,仅考察A状态,但是其他目标数据状态可以类似地处理。在此情况下,A状态存储元件在第二次编程通过中超过校验电平Vva-speed1,该校验电平Vva-speed1可以与图5B中的Vva-speed不同。首先,A状态存储元件从E状态分布500转变到由VvaL限定的较低A状态分布501,发信号通知Vth>VvaL的每个A状态存储元件的第一次编程通过结束。可选地,第一次编程通过可以使用图5B中所描述的QPW。在第二次编程通过中,A状态存储元件最初在Vth≤Vva-speed1时以快的速度、然后在Vth>Vva-speed1时以慢的速度从分布501转变到分布502。针对Vth>Vva的每个A状态存储元件发信号通知第二次编程通过的结束。
图6A、图6B和图6C分别描绘了称为“三次通过写入”编程技术的三次通过编程操作的第一次编程通过、第二次编程通过和第三次编程通过,其中使用了中间或中等偏低(lower-middle,LM)状态。此编程技术通过如下方式来减小浮动栅极与浮动栅极耦合的效应:对于任何特定存储元件,在针对先前页对邻近存储元件进行写入之后,关于特定页对该特定存储元件进行写入。在一个示例实施方式中,非易失性存储元件使用四个数据状态在每个存储元件中存储两位数据。例如,E状态是擦除状态,并且状态A、状态B和状态C是编程状态。和前面一样,E状态存储数据11,状态A存储数据01,状态B存储数据00,而状态C存储数据10。还可以使用数据到物理数据状态的其他编码。每个存储元件存储两页数据。为了引用的目的,将这些数据页称为较高页和较低页;然而,也可以给这些数据页其他标签。
在第一次编程通过中,针对所选择的字线WLn来编程较低页。例如,这可以对应于图7B中的步骤“1”(后面讨论)。如果较低页要保持数据1,则存储元件状态保持在状态E(分布600)。如果数据要编程为0,则WLn上的存储元件的阈值电压被增加,以使得存储元件被编程到中间(LM或中等偏低)状态(分布606)。因此,图6A示出存储元件从E状态到LM状态的编程。
在一个实施例中,在存储元件从E状态编程到LM状态之后,然后,该存储元件在NAND串中的处于邻近字线WLn+1上的邻近存储元件将被关于其较低页进行编程。对于WLn上的存储元件的状态LM而言这将具有增宽Vth分布606的效应。当对较高页进行编程时将会纠正Vth分布606的这种明显增宽。E状态分布600也将增宽。在执行针对WLn的第一次编程通过之后,可以如图7B中由步骤“2”所表示的那样,针对WLn执行类似的第一次编程通过。
图6B描绘了使用较低校验电平VvaL、VvaB和VvaC对较高页进行编程。例如,这可以对应于图7B的步骤“3”。此外,在一个实施例中,在较高页编程之前,执行读取操作以确定哪些存储元件属于E状态及哪些存储元件属于LM状态。可以以读电平Vra或在E状态与LM状态Vth分布之间的某一其他合适电压电平来进行此读取操作。在一个实施中执行此步骤,其中在在WLn上对较低页进行编程之后移除锁存器中的较低页数据,以使得锁存器可以用于WLn+1的较低页数据。在此情况下,在在WLn上对较高页数据编程之前,进行读取以确定较低页数据。在其他实施方式中,不需要此读取步骤,例如如下情况:使用二进制缓存,该二进制缓存能够贯穿字线的不同编程通过而保存字线的所有页的数据。
如果存储元件处于E状态且较高页是1,则存储元件将保持在E状态(分布600)。如果存储元件处于E状态且其较高页数据是0,则存储元件的Vth将被增加到VvaL以上,(分布602)。如果存储元件处于LM状态606且较高页数据是0,则存储元件的Vth将被编程到VvbL以上(分布608)。如果存储元件处于LM状态606且较高页数据是1,则存储元件的Vth将被增加到VvcL以上(分布612)。所描绘的处理减小了浮动栅极与浮动栅极耦合的效应,这是因为只有邻近存储元件的较高页编程将对给定存储元件的表观Vth具有影响。一个可替代的状态编码示例为:当较高页数据是0时,从分布606移动到状态C,并且当较高页数据是1时,移动到B状态。在执行针对WLn的第二次编程通过之后,可以如图7B中由步骤“4”所表示的那样对WLn+2执行第一次编程通过,并且可以如图7B中由步骤“5”所示的那样对WLn+1执行第二次编程通过。
图6C描绘了使用较高校验电平Vva、Vvb和Vvc对较高页进行编程以提供针对A状态从分布602到分布604、针对B状态从分布608到分布610,以及针对C状态从分布612到分布614的转变。例如,这可以对应于图7B中的步骤“6”。
尽管此三次通过编程示例提供了四个数据状态和两页数据,但是所教示的构思可以应用于具有多于或少于四个状态以及比多于或少于两页的其他实施方式。例如,目前正在计划或制造每存储元件具有八个或十六个状态的存储器装置。
通常,可以针对图6A至图6C的编程通过中的任意编程通过来调整编程速度。例如,在图6B的第二次编程通过中,可以设置在图5B中所描绘的Vva-speed<VvaL。类似地,可以设置Vvb-speed<VvbL和Vvc-speed<VvcL。在此情况下,在第二次编程通过中,A状态存储元件在Vth≤Vva-speed时以快的速度编程,而在Vva-speed<Vth≤VvaL时以慢的速度编程。类似地,B状态存储元件在Vth≤Vvb-speed时以快的速度编程,而在Vvb-speed<Vth≤VvbL时以慢的速度编程。类似地,C状态存储元件在Vth≤Vvc-speed时以快的速度编程,而在Vvc-speed<Vth≤VvcL时以慢的速度编程。
在图6C的第三次编程通过的示例中,可以设置如图5C所描绘的VvaL<Vva-speed<Vva。类似地,可以设置VvbL<Vvb-speed<Vvb和VvcL<Vvc-speed<Vvc。在此情况下,在第三次编程通过中,A状态存储元件在VvaL<Vth≤Vva-speed时以快的速度编程,而在Vva-speed<Vth≤Vva时以慢的速度编程。类似地,B状态存储元件在VvbL<Vth≤Vvb-speed时以快的速度编程,而在Vvb-speed<Vth≤Vvb时以慢的速度编程。类似地,C状态存储元件在VvcL<Vth≤Vvc-speed时以快的速度编程,而在Vvc-speed<Vth≤Vvc时以慢的速度编程。
前面的针对第二次编程通过和第三次编程通过的示例可以单独使用或者组合使用。
图6D描绘了称为“二次通过写入”编程技术的二次通过编程操作的第二次编程通过,其中图6A描绘了第一次编程通过,并且其中在QPW编程选项中可以使用多达两种编程速度。在这个另外的可替换方式中,使用在图5A至图5C中所讨论的校验电平Vva-speed、Vvb-speed和Vvc-speed以触发编程速度减慢。具体地,A状态存储元件将在其Vth≤Vva-speed时以快的速度编程,而在Vva>Vth>Vva-speed时以慢的速度编程。Vth>Vva触发编程锁定条件。B状态存储元件将在其Vth≤Vvb-speed时以快的速度编程,而在Vvb>Vth>Vvb-speed时以慢的速度编程。Vth>Vvb触发编程锁定条件。C状态存储元件将在其Vth≤Vvc-speed时以快的速度编程,而在Vvc>Vth>Vvc-speed时以慢的速度编程。Vth>Vvc触发编程锁定条件。
图7A描绘了一组存储元件的以来回字线顺序进行的二次通过编程操作。所描绘的部件可以是存储元件、字线和位线的显著更大的集合的子集。在一个可能的编程操作中,在第一次编程通过中对在WLn上的存储元件(描绘为方块)进行编程,如由圆圈“1”所表示的。接下来(“2”),在针对字线WLn+1的第一次编程通过中对WLn+1上的存储元件进行编程。在此示例中,当选择用于编程的字线时,在每个编程脉冲后发生校验操作。在所选择的字线上的校验操作期间,将校验电压施加到未选择的字线以开启(使其导通)未选择的存储元件,以使得所选择的字线可以发生感测操作如校验操作。接下来(“3”),在第二次编程通过中对WLn上的存储元件进行编程。接下来(“4”),在针对字线WLn+2的第一次编程通过中对WLn+2上的存储元件进行编程。接下来(“5”),在第二次编程通过中将WLn+1上的存储元件编程到其最终的相应状态。
通过以来回方式在多次编程通过中对字线进行编程,而减小了趋于增加并加宽其Vth分布的由电容耦合导致的干扰效应。相较之下,在单次通过编程中,每条字线都在移动到下一字线之前完全编程。
第一次编程通过和第二次编程通过可以使用此处描述的编程方案中的任何一种编程方案。图7B描绘了一组存储元件的以来回字线顺序进行的三次通过编程操作。在较高页的第一次编程通过和第二次编程通过之前执行较低页的初始编程通过。第一次编程通过对数据的较低页进行编程,第二次编程通过对第一次编程通过中的数据的较高页进行编程,并且第三次编程通过完成第二次编程通过中的数据的较高页的编程。在“1”处对WLn执行第一次编程通过,在“2”处对WLn+1执行第一次编程通过,在“3”处对WLn执行第二次编程通过,在“4”处对WLn+2执行第一次编程通过,在“5”处对WLn+1执行第二次编程通过,在“6”处对WLn执行第三次编程通过,在“7”处对WLn+3执行第一次编程通过,在“8”处对WLn+2执行第二次编程通过,在“9”处对WLn+1执行第三次编程通过,并且以此类推。
在一种可能的方法中,第一次编程通过使用如图6A中所描绘的校验电平VvLM,第二次编程通过使用如图6B中所描绘的一组较低校验电平VvaL、VvbL和VvcL,并且第三次编程通过使用如图6C中所描绘的一组较高校验电平Vva、Vvb和Vvc。第二次编程通过的一组较低校验电平与第三次编程通过的一组较高校验电平之间的差可以在硅上优化,以实现一组最紧密的Vth分布。
第一次编程通过、第二次编程通过和第三次编程通过可以使用此处讨论的编程方案中的任何编程方案。
图8描绘了对存储元件进行编程所需的最高Vpgm与存储元件的位线电压之间的关系。x轴描绘了增加的位线电压(Vbl),而y轴描绘了完成存储元件的编程所需要的最高Vpgm电压。
随着Vbl增加,完成存储元件的编程所需的最高Vpgm也增加。通常,存储元件的编程速度减缓的程度与Vbl乘以常数k成比例,该常数k是所描绘直线的斜率。该常数通常大于1,这是因为Vbl增加1V(如△Vbl=1V的位线步长),就需要Vpgm增加大于1V(如△Vpgm=1V的编程脉冲步长)以进行抵消。因此,增加Vbl是控制编程速度并且收窄Vth分布的宽度的有力工具。然而,不能使Vbl太高,这是因为其主要受Vsgd(漏极侧选择栅极)余裕窗(margin-window)的限制。当Vbl更高时,开启用于对存储元件进行编程的漏极侧选择栅极所需的Vsgd电压也更高。但是较高的Vsgd值具有提升来自禁止的存储元件的沟道的潜在泄露的风险,这可能导致编程紊乱。
存储元件的编程速度取决于跨其氧化物遂道的电场,该电场与浮动栅极的电压和位于浮动栅极下方的衬底中的沟道的电压之间的差成比例。通常,控制栅极电压Vpgm以阶梯形式逐步增加,而Vbl固定在0V。为了减慢编程(以收紧Vth分布),可以使用较小的Vpgm步长。然而,这导致校验操作和编程脉冲的数目增加,从而增加总的编程时间。取代改变Vpgm步长,可以以阶梯形式、与Vpgm脉冲的步步伐一致地增加Vbl,来减小有效的Vpgm步长△Vpgm-effective。可以写成:△Vpgm-effective=△Vpgm-(k×△Vbl),其中k>1且△Vpgm-effective<△Vpgm。通常,k的值可以为约1.4。较大的△Vbl导致较小的△Vpgm-effective。此技术的优点是Vbl可以在不同时间针对存储元件的不同子集逐步增加,其中每个子集具有不同的目标数据状态。因此,可以针对属于不同目标数据状态的一组存储元件实现不同编程速度。另一方面,如果减小Vpgm步长,则其会影响所有编程存储元件的编程速度。与使用均等的较小的Vpgm步长相比,通过每次针对特定目标数据状态逐步增加Vbl,可以保持校验操作的数目相同,同时减小完成编程所需的编程脉冲的总数目,并且因此通过减少总的编程时间来提高性能。
Vbl的步伐一致的增加例如是指如下事实:对于具有共同目标数据状态并且尚未被锁定为不编程的存储元件的给定子集,Vbl可以随着每个编程脉冲逐步增加。被锁定为不编程的存储元件的Vbl被设置为Vbl-lockout。
图9A描绘了位线电压逐步增加的编程技术。在步骤900处开始所有目标数据状态的存储元件的编程通过。对于所有目标数据状态的存储元件,步骤902至步骤912独立地执行并且部分地同时进行。步骤902包括在编程期间不使位线逐步增加的情况下执行一个或更多个编程-校验操作。在步骤904处,第一触发条件被满足。这可以基于Vpgm电平、预定的编程脉冲编号或位扫描,例如下面进一步讨论的那样。第一触发条件表示具有共同的目标数据状态的存储元件的子集开始位线逐步增加循环的条件。步骤906包括在编程期间使位线逐步增加的情况下执行一个或更多个编程-校验操作。在步骤908处,第二触发条件被满足。这可以基于Vpgm电平、预定的编程脉冲编号或位扫描,例如下面进一步讨论的那样。第二触发条件表示具有共同的目标数据状态的存储元件的子集停止位线逐步增加循环的条件。步骤910包括在编程期间不使位线逐步增加的情况下执行一个或更多个编程-校验操作。在此情况下,位线可以固定在比锁定电平小的最大允许电平处。在步骤912处,结束相关联的目标数据状态的存储元件的编程-校验操作。实际上,达到校验电平的存储元件被锁定为不进一步编程,所以具有特定目标数据状态的一些存储元件可以被锁定为不进一步编程,同时具有特定目标数据状态的其他存储元件继续编程。在一些情况下,例如当在步骤906中相关联的目标数据状态的所有存储元件均被锁定时,不执行步骤910。下面进一步详细讨论图9A的编程技术。
图9B作为图9A的编程技术的示例而描绘了经历作为编程脉冲编号的函数的校验操作的数据状态。在编程期间,所有的存储元件一起编程,但是因为A状态校验电平比B状态校验电平低,且B状态校验电平比C状态校验电平低,所以属于较低目标状态的存储元件比属于较高目标状态的存储元件更快地达到其目标电平。因此,为了节省编程时间,较高目标状态的校验操作不需要从第一个编程脉冲自身开始。通常,B状态校验操作可以跳过初始的几个编程脉冲,而C状态校验操作可以跳过更多的编程脉冲。
当Vbl在编程期间没有如本文中所描述的那样逐步增加却固定在0V、且△Vpgm=△Vpgm-effective=0.3V(作为示例)时,发生序列950。首先,校验A状态存储元件,然后校验A状态存储元件和B状态存储元件,然后校验B状态存储元件和C状态存储元件,并且最后校验C状态存储元件。此序列消耗了所提供的三个序列950、960和970当中最长的编程时间。注意,在这个特定的示例中,碰巧发生的是没有校验A状态存储元件、B状态存储元件和C状态存储元件的一组编程脉冲。对于不同的Vpgm步长或其他装置参数的一些变化,则可能不是这种情况。也就是说,可以存在用于校验A状态存储元件、B状态存储元件和C状态存储元件的一个或更多个编程脉冲,如序列960和序列970所描绘的。
当Vbl在编程期间针对所有目标数据状态如本文中所描述的那样逐步增加时,发生序列960,此处,作为示例,△Vpgm=0.4V且△Vbl被选择为使得△Vpgm-effective=0.3V。首先,校验A状态存储元件,然后校验A状态存储元件和B状态存储元件,然后校验A状态存储元件、B状态存储元件和C状态存储元件,然后校验B状态存储元件和C状态存储元件,并且最后校验C状态存储元件。与序列950相比,此序列减少了编程时间。因为与△Vpgm=△Vpgm-effective=0.3V贯穿序列950相比,在序列960中在位线逐步增加之前和之后均有△Vpgm=△Vpgm-effective=0.4V,所以序列960中比序列950中存储元件编程地更快。然而,因为在序列950和序列960两者中,在对具有共同目标数据状态的存储元件进行编程期间都是△Vpgm-effective=0.3V,所以可以在两个序列中实现相同的Vth分布宽度。
当Vbl在编程期间针对除了例如C状态的最高目标数据状态以外的所有目标数据状态均如本文中所描述的那样逐步增加时,发生序列970,此处,△Vpgm=0.4V且△Vbl被选择为使得△Vpgm-effective=0.3V。首先,校验A状态存储元件,然后校验A状态存储元件和B状态存储元件,然后校验A状态存储元件、B状态存储元件和C状态存储元件,然后校验B状态存储元件和C状态存储元件,并且最后校验C状态存储元件。因为对于C状态存储元件而言贯穿其编程均有△Vpgm=△Vpgm-effective=0.4V,使得C状态存储元件的编程时间减少,所以该序列与序列960相比进一步减少了编程时间。整体上,在对给定编程脉冲执行更多校验操作的情况下编程时间减少了,这是由于编程脉冲的数目以及相关联的逐步增加时间减少了。
如所提到的那样,通常针对最高目标数据状态可以容许较宽的Vth分布,使得可以通过针对最高目标数据状态不使Vbl逐步增加来进一步减少编程时间。具体地,当Vbl没有逐步增加时,Vth分布的较高尾部会更高。然而,这从Vth窗的角度来说并不那么关键,该Vth窗被限定为在最低状态较高尾部与最高状态较低尾部之间的间隙。针对最高目标数据状态不使Vbl逐步增加的另一优点在于:与Vbl逐步增加的情况相比,对最高状态存储元件进行编程所需的最高Vpgm更低。较高的Vpgm可以导致E状态存储元件的增加的编程紊乱。因此,从编程紊乱的角度讲,期望禁用最高位线逐步增加。
注意,此示例涉及四个状态的存储器装置,但是此构思可以扩展到增加的状态,例如八个状态或十六个状态。
图10描绘了针对图9B的序列960的、作为编程脉冲编号的函数的编程-校验操作。通常,编程操作可以包括将脉冲列(pulsetrain)施加到所选择的字线,其中脉冲列包括跟随有一个或更多个校验脉冲的编程脉冲。跟随有一个或更多个校验脉冲的编程脉冲的每个组合形成编程-校验操作或迭代。注意,编程脉冲可以具有任意数量的不同波形形状。描绘出方形波形,然而其他形状如多级形状或斜坡形状也是可以的。脉冲列通常包括幅值阶梯状增加的编程脉冲,通常使用固定的步长,然而也可以使用变化的步长。在多次通过编程操作的每个编程通过中可以施加新的脉冲列,其于初始Vpgm电平处开始,并于低于最大允许Vpgm电平的最终Vpgm电平处结束。在不同的编程通过中,初始Vpgm电平可以相同或不同。在不同的编程通过中,最终Vpgm电平也可以相同或不同。在不同的编程通过中,步长可以相同或不同。在一些情况下,在最后的编程通过中使用较小的步长以减小Vth分布宽度。
脉冲列1000包括一系列编程脉冲1005、1010、1015、1020、1025、1030、1035、1040、1045、1050、1055、1060、1065、1070和1075,这些编程脉冲被施加到为编程而选择的字线以及相关联的一组非易失性存储元件。作为示例,基于正被校验的目标数据状态,在每个编程脉冲之后提供一个、两个或三个校验电平。可以在编程脉冲和校验脉冲之间向WLn施加0V。例如,可以分别在第一编程脉冲1005、第二编程脉冲1010和第三编程脉冲1015中的每个编程脉冲之后施加A状态校验脉冲(例如,波形1006)。可以分别在第四编程脉冲1020、第五编程脉冲1025和第六编程脉冲1030中的每个编程脉冲之后施加A状态和B状态校验脉冲(例如,波形1021)。可以分别在第七编程脉冲1035和第八编程脉冲1040中的每个编程脉冲之后施加A状态、B状态和C状态校验脉冲(例如,波形1036)。可以分别在第九编程脉冲1045、第十编程脉冲1050和第十一编程脉冲1055中的每个编程脉冲之后施加B状态和C状态校验脉冲(例如,波形1046)。最后,可以分别在第十二编程脉冲1060、第十三编程脉冲1065、第十四编程脉冲1070和第十五编程脉冲1075中的每个编程脉冲之后施加C状态校验脉冲(例如,波形1061)。
图11A描绘了针对不同数据状态的、作为编程脉冲编号的函数的位线电压的逐步增加,其中针对属于所有数据状态的存储元件使用公共的步长。波形1100、波形1102和波形1104分别表示A状态、B状态和C状态的位线电压。在此示例中,Vbl使用固定的步长△Vbl来逐步增加到V1、V2、V3、V4、V5和最大允许电平Vbl-max。Vbl-lockout表示高于Vbl-max的锁定位线电压。在一些情况下,特定目标状态的所有存储元件可能在达到Vbl-max之前就被锁定,因而Vbl-max是可以被达到或不可以被达到的保护措施。
对于每个目标数据状态的存储元件,可以基于不同的触发条件来设置位线逐步增加的开始和/或位线逐步增加的结束。在一种非适应性的方法中,针对每个目标数据状态的位线逐步增加控制循环的开始和结束来设置固定的Vpgm脉冲编号。例如,可以以诸如BL-ramp-start-A和BL-ramp-end-A的参数为A状态的开始编程脉冲编号和结束编程脉冲编号,来设置存储器装置中的ROM保险丝参数,并且对其他数据状态进行类似设置。在此示例中,BL-ramp-start-A=2,BL-ramp-end-A=7,BL-ramp-start-B=5,BL-ramp-end-B=10,BL-ramp-start-C=8,而BL-ramp-end=13。每个数据状态具有其自身的位线逐步增加控制循环。在此示例中,因为每个数据状态的期望Vth分布宽度相同,所以在每个位线逐步增加控制循环中编程脉冲的数目是相同的。如果较宽的Vth分布宽度是可接受的,则位线逐步增加控制循环可以由于更少的编程脉冲而更小。
注意,可以选择用于位线逐步增加开始和结束的Vpgm脉冲编号,以使得数据状态的相对少的存储元件将在该数据状态的位线逐步增加控制循环之前或之后达到校验电平并锁定,同时绝大多数存储元件将在位线逐步增加控制循环期间达到校验电平并锁定。允许少量的存储元件在位线逐步增加控制循环之前或之后达到校验电平并锁定不会显著地加宽Vth分布。但是,这减少了△Vpgm-effective被降低的时间,使得总的编程时间没有被不必要地延长。
图11B描绘了针对A状态存储元件的、用于开始位线逐步增加循环的触发条件。在一个示例编程通过中,A状态存储元件使用VvaL从E状态分布1110开始编程。在一个或更多个编程脉冲之后,分布1112表示A状态存储元件。分布1112的1114部分表示Vth>VvaL的A状态存储元件。
图11C描绘了针对A状态存储元件的、用于停止位线逐步增加循环的触发条件。在一个或更多个另外的编程脉冲之后,分布1120表示A状态存储元件。分布1120的1116部分表示Vth<VvaL的A状态存储元件。没有绘出可以同时编程的、其他目标状态的存储元件的Vth分布。
作为上述非适应性方法的替换,可以使用适应性方法来设置位线逐步增加循环的开始和/或结束。这允许对于同一存储器装置中(例如,在不同字线上)的不同组存储元件以及不同存储器装置中的不同组存储元件而言开始和/或结束时间可以不同。此外,对于同一组存储元件而言开始和/或结束时间可以不同,例如基于随着编程-擦除循环累积而随时间变化的性能改变,或基于不同的环境条件如变化的温度。
例如,替代使用固定的编程脉冲编号,可以基于高于或低于指定校验电平的存储元件的最小数目来开始和/或结束位线逐步增加循环。例如,由区域1114所表示的存储元件可以由下述位扫描过程来检测,在该位扫描过程中,读取每个位线的感测放大器以确定相关联的存储元件是否Vth>VvaL。当检测到某个最小数目的位(如A状态存储元件)高于VvaL时,可以开始A状态的位线逐步增加循环。类似地,当Vth低于VvaL的A状态位的数目小于指定数目(或Vth>VvaL的A状态位的数目高于指定数目)时,可以停止该位线逐步增加循环。在位-扫描期间用来做出位线逐步增加开始或结束的确定的、指定的位数目可以由另外的ROM保险丝参数来控制。针对其他状态,可以通过在其相应的校验电平处执行位扫描来做出类似的确定。
还可以实施最大允许Vbl(例如,图11A中的Vbl-max),以使得当尚未满足用于停止位线逐步增加的另一个触发条件时Vbl不会逐步增加到过高的电平。
在另一种方法中,对于每个数据状态,可以在位扫描通过之后并且在一定数目的另外的编程脉冲完成时,开始位线逐步增加循环。类似地,针对每个数据状态,可以在位扫描通过之后并且在一定数目的另外的编程脉冲完成时,结束位线逐步增加。
在另一个方法中,可以在另一较低数据状态的位扫描通过之后并且在一定数目的另外的编程脉冲完成时,对于一个数据状态开始位线逐步增加循环。例如,可以在A状态存储元件以VvaL通过位扫描之后并且在一定数目的另外的编程脉冲(例如与图11A一致的三个编程脉冲)完成时,对于B状态存储元件开始位线逐步增加循环。可以使用类似的方法来停止位线逐步增加。使用这种方法,通过仅仅在最低状态上进行位扫描操作就可以使位线逐步增加的开始和停止适应于所有数据状态。
也可以使用以上方法的任意组合来针对任意的具体目标数据状态来确定何时开始和/或结束位线逐步增加循环。
在所提供的示例中,描绘了每存储元件四个状态、两位的存储器装置的实施方式。然而,构思还可以例如与八个状态或十六个状态的装置一起采用。然而,可能需要同时生成额外的位线电压。
图12A描绘了与图11A相符的、针对A状态存储元件的、作为编程脉冲编号的函数的编程速率。如所提到的那样,在存储元件的每脉冲Vth改变方面的编程速度或编程速率△Vth/脉冲是Vbl的函数。如果不施加位线偏压(Vbl=0V),则△Vth/脉冲=R2,为较高的速率。如果与Vpgm逐步增加步伐一致地施加持续位线逐步增加,则△Vth/脉冲=R1<R2,其中R1是较低的速率。在图11A的示例中,属于A状态存储元件的位线在第二编程脉冲处开始逐步增加;因此,A状态存储元件从R2到R1的转变发生在第二编程脉冲处。类似地,A状态存储元件的位线逐步增加在第八编程脉冲处停止(最后的逐步增加在第七编程脉冲处);因此,A状态存储元件从R1返回到R2的转变发生在第八编程脉冲处。实际上,△Vth/脉冲可以随着一个或更多个编程脉冲逐步地转变,而不是呈现出为了简便而描绘的一步变化。在第九编程脉冲处,A状态存储元件被锁定,并且因此编程速度降到零。
图12B描绘了与图11A相符的、针对B状态存储元件的作为编程脉冲编号的函数的编程速率。在图11A的示例中,对于B状态存储元件,在第五编程脉冲处发生从R2到R1的转变,并且稍后在第十一编程脉冲处发生从R2到R1的转变。在第十二编程脉冲处,B状态存储元件被锁定,并且因此编程速度降到零。
图12C描绘了与图11A相符的、针对C状态存储元件的作为编程脉冲编号的函数的编程速率。在图11A的示例中,对于C状态存储元件,在第八编程脉冲处发生从R2到R1的转变,并且稍后在第十四编程脉冲处发生从R2到R1的转变。在第十五编程脉冲之后,编程完成并且因此C状态存储元件的编程速度降到零。
图13描绘了针对不同数据状态的、作为编程脉冲编号的函数的位线电压的逐步增加,其中,针对所有数据状态,使用较小步长,然后使用较大步长,然后使用较小步长。在图11A的示例中,Vbl使用固定步长即以固定速率来逐步增加。在此方法中,使用不同的位线逐步增加速率。使用第一较小位线逐步增加速率、之后第二较大位线逐步增加速率、之后第三较小位线逐步增加速率可以是有益的。第三位线逐步增加速率小于第二位线逐步增加速率,并且可以等于第一位线逐步增加速率。当根据高斯分布(Gaussiandistribution),大多数存储元件达到目标校验电平和锁定条件时,此方法最大程度地减慢编程。在给定字线上的存储元件的自然编程Vth分布实质上通常是高斯分布,使得大多数存储元件的Vth出现在分布的中心附近,而较少单元的Vth处于高斯分布的较低尾部和较高尾部。
因此,对于给定的目标数据状态,大多数存储元件将在接近同一编程脉冲编号处——在高斯分布的顶部——锁定,所以可以通过以最高位线逐步增加速率来在此时最大程度地减慢编程而实现最高的效益与代价的比率。效益是Vth分布的收窄,而代价是编程时间的增加。处于高斯分布的较低尾部和较高尾部的存储元件将会在如下的特定编程脉冲编号处锁定:这些特定编程脉冲编号比大多数存储元件将被锁定的编程脉冲更远。在此情况下,可以通过在这些特定编程脉冲期间使用较低的但非零的位线逐步增加速率来实现最高的效益与代价的比率。处于高斯分布的更低尾部和更高尾部的存储元件将在比大多数存储元件将被锁定的编程脉冲甚至更远的其他编程脉冲编号处锁定。在此情况下,可以通过在这些其他编程脉冲期间不使位线逐步增加来实现最高的效益与代价的比率。
例如,波形1300、波形1302和波形1304分别表示A状态存储元件、B状态存储元件和C状态存储元件的Vbl。每个波形均包括位线电平V1′、V2′、V3′、V4′、V5′和Vbl-max。当Vbl被设置为V1′和V2′时的逐步增加速率或步长是相对小的。类似地,当Vbl被设置为V5′和Vbl-max时的逐步增加速率或步长也是相对(并且可选地,相同地)小的。当Vbl被设置为V3′和V4′时的逐步增加速率或步长是相对大的。
图14描述了针对不同的数据状态的、作为编程脉冲编号的函数的位线电压的逐步增加,其中使用较大步长用于较低数据状态,而使用较小步长用于最高数据状态。此示例与图11A的示例相似,除了在此示例中将较小Vbl步长用于最高状态C状态。在此情况下,Vbl使用与相应目标数据状态相关联的步长逐步增加,其中不同的相应步长与一组可能的目标数据状态中的至少两个不同的相应目标数据状态相关联。例如,一个Vbl逐步增加速率可以用于A状态存储元件和B状态存储元件,而另一较低的Vbl逐步增加速率可以用于C状态存储元件。使用较小的Vbl逐步增加速率会以更宽的Vth分布为代价而导致更快的编程。
波形1400、波形1402和波形1404分别表示A状态存储元件、B状态存储元件和C状态存储元件的Vbl。此处,C状态的波形1404中的V1、V2、V3、V4和V5的Vbl电平可以与图11A中相同。V1〞、V2〞、V3〞和V4〞的Vbl电平被分别用于A状态的波形1400和B状态的波形1402中。如所提到的那样,不使位线逐步增加会导致最高状态的较宽Vth分布,而这通常是减少编程时间的可接受的折衷。另一方面,较大的Vbl逐步增加速率会导致更紧密的Vth分布但会导致更长的编程时间。本示例在针对最高状态不使用位线逐步增加与使用被用于较低状态(如A状态、B状态和C状态)的较大位线逐步增加之间提供了折中。这导致了一种平衡,该平衡在于:与不使用位线逐步增加的情况相比,提供了最高状态的稍微更窄的Vth分布。编程时间比针对最高状态不使用Vbl逐步增加的情况更长,但是比针对最高状态使用较大的Vbl逐步增加情况更短。
图15描绘了针对不同数据状态的、作为编程脉冲编号的函数的位线电压的逐步增加,其中针对所有数据状态使用公共的步长,并且基于Vth电平来增加附加的位线电压。在一些编程技术中,通常对于除了最高状态外的所有状态,附加的位线电压(△)用于减慢编程。该附加的位线电压可以被用于尚未被锁定为不编程的、且其Vth在相应目标数据状态的第一校验电平和第二校验电平之间的存储元件。例如,例如参照如图4,对于A状态,第一校验电平和第二校验电平可以分别是VvaL和Vva;对于B状态,第一校验电平和第二校验电平可以分别是VvbL和Vvb;而对于C状态,第一校验电平和第二校验电平可以分别是VvcL和Vvc。在一个可能的实施方式中,在一个编程脉冲处开始位线逐步增加,而在不同的编程脉冲处开始增加附加的位线电压。类似地,可以在一个编程脉冲处停止位线逐步增加,而在不同的编程脉冲处停止附加的位线电压。位线逐步增加可以同时施加于具有共同的目标数据状态的存储元件的子集,同时,在不考虑该子集的编程处理的情况下,附加的位线电压通过单独存储元件的位线施加到该单独存储元件。通过在当前的逐步增加电平之外将Vbl提高附加的固定量来实现施加附加的位线电压。该方式会增加在给定时间所需的位线电压的数目。
例如,对于A状态存储元件,波形1500和波形1502分别描绘了不具有和具有增加的附加位线电压的位线逐步增加电平。注意,也可以在位线逐步增加之前或之后施加所增加的附加位线电压。对于B状态存储元件,波形1504和波形1506分别描绘了不具有和具有增加的附加位线电压的位线逐步增加电平。对于C状态存储元件,波形1508和波形1510分别描绘了不具有和具有增加的附加位线电压的位线逐步增加电平。Vbl-max-new代表可以允许的、新的较高Vbl。可替换地,可以实施Vbl-max,使得位线逐步增加提早终止以避免超过Vbl-max。也就是说,可以就位线逐步增加电平与附加位线电压的总和来实施最大允许Vbl。
在一个实施例中,用于对一组非易失性存储元件进行编程的方法包括将一组编程脉冲施加到该组非易失性存储元件,其中该组非易失性存储元件中的每个非易失性存储元件与相应的位线相关联,并且该组非易失性存储元件包括非易失性存储元件的不同子集。每个子集被编程到多个目标数据状态当中的相应目标数据状态的相应校验电平(Vva、Vvb、Vvc),包括被编程到一个相应目标数据状态的一个相应校验电平的、非易失性存储元件的一个子集。该方法还包括在该组编程脉冲期间针对非易失性存储元件的该一个子集确定何时满足第一触发条件。该方法还包括,当满足第一触发条件时,以与该组编程脉冲中的多个连续编程脉冲中的每个编程脉冲步伐一致的方式,逐步增加该一个子集中的尚未被锁定为不编程的非易失性存储元件的相应位线的电压。
在另一实施例中,对应的非易失性存储系统包括:一组非易失性存储元件,其中该组非易失性存储元件包括非易失性存储元件的不同子集,并且每个子集被编程到多个目标数据状态当中的相应目标数据状态的相应校验电平,包括被编程到一个相应目标数据状态的一个相应校验电平的、非易失性存储元件的一个子集;与每个非易失性存储元件相关联的相应位线;至少一个控制电路,用于:(a)将一组编程脉冲施加到该组非易失性存储元件;(b)在该组编程脉冲期间,针对非易失性存储元件的该一个子集确定何时满足第一触发条件;以及(c)当满足第一触发条件时,以与该组编程脉冲中的多个连续编程脉冲中的每个编程脉冲步伐一致的方式,逐步增加该一个子集中的尚未被锁定为不编程的非易失性存储元件的相应位线的电压。
在另一实施例中,非易失性存储系统包括用于将一组编程脉冲施加到一组非易失性存储元件的装置,其中该组非易失性存储元件中的每个非易失性存储元件与相应的位线相关联,并且该组非易失性存储元件包括非易失性存储元件的不同子集。每个子集被编程到多个目标数据状态当中的相应目标数据状态的相应校验电平(Vva、Vvb、Vvc),包括被编程到一个相应目标数据状态的一个相应校验电平的、非易失性存储元件的一个子集。该非易失性存储系统还包括用于在该组编程脉冲期间针对非易失性存储元件的该一个子集来确定何时满足第一触发条件的装置。该非易失性存储系统还包括下述装置,该装置用于当满足第一触发条件时,以与该组编程脉冲中的多个连续编程脉冲中的每个编程脉冲步伐一致的方式,逐步增加该一个子集中的尚未被锁定为不编程的非易失性存储元件的相应位线的电压。
在另一实施例中,用于对一组非易失性存储元件进行编程的方法包括将一组编程脉冲施加到该组非易失性存储元件,其中该组非易失性存储元件中的每个非易失性存储元件与相应的位线相关联,该组非易失性存储元件包括非易失性存储元件的不同子集,并且每个子集被编程到多个目标数据状态当中的相应目标数据状态的相应校验电平,包括被编程到一个相应目标数据状态的一个相应校验电平的、非易失性存储元件的一个子集。该方法还包括:以与该编程脉冲组中的多个连续编程脉冲中的每个编程脉冲步伐一致的方式,逐步增加该一个子集中的尚未被锁定为不编程的非易失性存储元件的相应位线的电压;在该组编程脉冲期间,针对非易失性存储元件的该一个子集确定何时满足触发条件;以及当满足该触发条件时,在该组编程脉冲中的一个或更多个另外的编程脉冲中的每个编程脉冲期间来固定电压。
在另一实施例中,对应的非易失性存储系统包括:一组非易失性存储元件,该组非易失性存储元件包括非易失性存储元件的不同子集,其中每个子集被编程到多个目标数据状态当中的相应目标数据状态的相应校验电平,包括被编程到一个相应目标数据状态的一个相应校验电平的、非易失性存储元件的一个子集;与每个非易失性存储元件相关联的相应位线;至少一个控制电路,用于:(a)将一组编程脉冲施加到该组非易失性存储元件,(b)以与该组编程脉冲中的多个连续编程脉冲中的每个编程脉冲步伐一致的方式,逐步增加该一个子集中的尚未被锁定为不编程的非易失性存储元件的相应位线的电压,(c)在该组编程脉冲期间,针对非易失性存储元件的该一个子集确定何时满足触发条件,以及(d)当满足该触发条件时,在该组编程脉冲中的一个或更多个另外的编程脉冲中的每个编程脉冲期间来固定该电压。
提供了相应的方法、用于执行本文中所提供的方法的系统和计算机可读或处理器可读的存储装置。
出于示例和描述的目的而给出了前文的详细描述。该描述并非意在穷举或限于所公开的精确形式。鉴于以上教示,很多修改和变型都是可能的。为了最好地解释本技术和其实际应用的原理而选择了所描述的实施例,从而可以使本领域的其他技术人员在各种实施例中,在具有适于所构思的特定用途的各种修改的情况下,最好地利用本技术。本技术的范围意在由所附权利要求限定。
Claims (15)
1.一种用于对一组非易失性存储元件进行编程的方法,包括:
将一组编程脉冲(1005、1010、…)施加到该组非易失性存储元件(155),该组非易失性存储元件中的每个非易失性存储元件与相应位线(BL0、BL1、…)相关联,该组非易失性存储元件包括非易失性存储元件的不同子集,每个子集被编程到多个目标数据状态(A、B、C)当中的相应目标数据状态的相应校验电平(Vva、Vvb、Vvc),非易失性存储元件的所述不同子集包括被编程到一个相应目标数据状态的一个相应校验电平的、非易失性存储元件的一个子集;
在该组编程脉冲期间,针对非易失性存储元件的所述一个子集,确定何时满足用于开始位线逐步增加循环的第一触发条件;以及
当满足所述第一触发条件时,以与该组编程脉冲中的多个连续编程脉冲中的每个编程脉冲步伐一致的方式,逐步增加所述一个子集中的尚未被锁定为不编程的非易失性存储元件的相应位线的电压(Vbl),其中针对所述多个连续编程脉冲中的每个编程脉冲,所述电压被逐步增加至不同的电平,并且所述不同的电平中的每一个均低于锁定电平。
2.根据权利要求1所述的方法,其中:
该组非易失性存储元件与公共字线(WLn)通信;以及
该组编程脉冲经由所述公共字线而被施加到该组非易失性存储元件。
3.根据权利要求1或2所述的方法,其中:
基于何时达到预定的编程脉冲编号而满足所述第一触发条件。
4.根据权利要求1或2所述的方法,其中:
基于所述一个子集中的至少最小数目的非易失性存储元件的阈值电压何时已被校验为达到所述一个相应校验电平而满足所述第一触发条件。
5.根据权利要求4所述的方法,其中:
当所述一个子集中的所述至少最小数目的非易失性存储元件的所述阈值电压已被校验为达到所述一个相应校验电平时,满足所述第一触发条件,之后将固定数目的编程脉冲施加到该组非易失性存储元件。
6.根据权利要求1或2所述的方法,还包括:
在满足所述第一触发条件之前,在该组编程脉冲中的先于所述第一触发条件的每个编程脉冲期间固定所述相应位线的电压。
7.根据权利要求1或2所述的方法,还包括:
针对所述一个子集中的尚未被锁定为不编程的、其阈值电压在所述一个相应目标数据状态的第一校验电平和第二校验电平之间的非易失性存储元件,将相应位线的电压提高附加的固定量。
8.根据权利要求1或2所述的方法,其中:
使用与所述一个相应目标数据状态相关联的步长来逐步增加所述相应位线的电压,其中,不同的相应步长与所述多个目标数据状态中的至少两个不同的相应目标数据状态相关联。
9.根据权利要求1或2所述的方法,其中:
在所述多个连续编程脉冲期间,以第一速率(R1)来逐步增加所述相应位线的电压、然后以更高的第二速率(R2)来逐步增加所述相应位线的电压。
10.根据权利要求9所述的方法,其中:
在所述多个连续编程脉冲期间,随后以小于所述第二速率的第三速率来逐步增加所述相应位线的电压。
11.根据权利要求1或2所述的方法,还包括:
在该组编程脉冲期间,针对非易失性存储元件的所述一个子集,确定何时满足用于停止所述位线逐步增加循环的第二触发条件;以及
当满足所述第二触发条件时,在该组编程脉冲中的一个或更多个另外的编程脉冲中的每个编程脉冲期间,将所述相应位线的电压固定为低于所述锁定电平(Vbl-lockout)。
12.根据权利要求1或2所述的方法,其中,非易失性存储元件的所述不同子集包括被编程到另一相应目标数据状态的另一相应校验电平的、非易失性存储元件的另一子集,所述另一相应目标数据状态比所述一个相应目标数据状态高,所述方法还包括:
在该组编程脉冲期间,针对非易失性存储元件的所述另一子集,确定何时满足另一触发条件;以及
当满足所述另一触发条件时,以与该组编程脉冲中的另外多个连续编程脉冲中的每个编程脉冲步伐一致的方式,逐步增加所述另一子集中的尚未被锁定为不编程的非易失性存储元件的相应位线的电压,其中在满足所述第一触发条件之后满足所述另一触发条件。
13.根据权利要求12所述的方法,其中:
基于何时满足所述第一触发条件而满足所述另一触发条件,之后将固定数目的编程脉冲施加到该组非易失性存储元件。
14.一种非易失性存储系统,包括:
一组非易失性存储元件(155),该组非易失性存储元件包括非易失性存储元件的不同子集,每个子集被编程到多个目标数据状态(A、B、C)当中的相应目标数据状态的相应校验电平(Vva、Vvb、Vvc),非易失性存储元件的所述不同子集包括被编程到一个相应目标数据状态的一个相应校验电平的、非易失性存储元件的一个子集;
与每个非易失性存储元件相关联的相应位线(BL0、BL1、…);以及
至少一个控制电路,所述至少一个控制电路用于:(a)将一组编程脉冲(1005、1010、…)施加到该组非易失性存储元件(155);(b)在该组编程脉冲期间,针对非易失性存储元件的所述一个子集确定何时满足用于开始位线逐步增加循环的第一触发条件;以及(c)当满足所述第一触发条件时,以与该组编程脉冲中的多个连续编程脉冲中的每个编程脉冲步伐一致的方式,逐步增加所述一个子集中的尚未被锁定为不编程的非易失性存储元件的相应位线的电压(Vbl),其中,针对所述多个连续编程脉冲中的每个编程脉冲,所述电压被逐步增加至不同的电平,并且所述不同的电平中的每一个均低于锁定电平。
15.根据权利要求14所述的非易失性存储系统,其中:
基于所述一个子集中的至少最小数目的非易失性存储元件的阈值电压何时已被校验为达到所述一个相应校验电平而满足所述第一触发条件。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/838,902 US8274838B2 (en) | 2010-07-19 | 2010-07-19 | Programming non-volatile memory with bit line voltage step up |
US12/838,902 | 2010-07-19 | ||
PCT/US2011/044016 WO2012012261A1 (en) | 2010-07-19 | 2011-07-14 | Programming non-volatile memory with bit line voltage step up |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103081015A CN103081015A (zh) | 2013-05-01 |
CN103081015B true CN103081015B (zh) | 2016-01-20 |
Family
ID=44628766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180035485.2A Active CN103081015B (zh) | 2010-07-19 | 2011-07-14 | 利用位线电压逐步增加来对非易失性存储器进行编程 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8274838B2 (zh) |
EP (1) | EP2596500A1 (zh) |
JP (1) | JP2013531331A (zh) |
KR (1) | KR101787802B1 (zh) |
CN (1) | CN103081015B (zh) |
TW (1) | TW201216283A (zh) |
WO (1) | WO2012012261A1 (zh) |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8174895B2 (en) * | 2009-12-15 | 2012-05-08 | Sandisk Technologies Inc. | Programming non-volatile storage with fast bit detection and verify skip |
TWI471862B (zh) | 2011-08-19 | 2015-02-01 | Silicon Motion Inc | 快閃記憶體控制器 |
US8902659B2 (en) | 2012-03-26 | 2014-12-02 | SanDisk Technologies, Inc. | Shared-bit-line bit line setup scheme |
US9053819B2 (en) * | 2012-07-11 | 2015-06-09 | Sandisk Technologies Inc. | Programming method to tighten threshold voltage width with avoiding program disturb |
US8953386B2 (en) * | 2012-10-25 | 2015-02-10 | Sandisk Technologies Inc. | Dynamic bit line bias for programming non-volatile memory |
CN103019616B (zh) * | 2012-11-23 | 2015-11-25 | 记忆科技(深圳)有限公司 | 一种固态硬盘及闪存芯片的充放电控制方法 |
US8824214B2 (en) | 2012-12-10 | 2014-09-02 | Apple Inc. | Inter-word-line programming in arrays of analog memory cells |
US8837214B2 (en) | 2012-12-10 | 2014-09-16 | Apple Inc. | Applications for inter-word-line programming |
US20140198576A1 (en) * | 2013-01-16 | 2014-07-17 | Macronix International Co, Ltd. | Programming technique for reducing program disturb in stacked memory structures |
US8879331B2 (en) | 2013-03-12 | 2014-11-04 | Sandisk Technologies Inc. | Shared bit line string architecture |
US8982626B2 (en) * | 2013-06-05 | 2015-03-17 | Sandisk Technologies Inc. | Program and read operations for 3D non-volatile memory based on memory hole diameter |
JP2015041402A (ja) * | 2013-08-23 | 2015-03-02 | 株式会社東芝 | 不揮発性半導体記憶装置、及びデータ書き込み方法 |
CN104425025B (zh) * | 2013-08-27 | 2017-10-24 | 晶豪科技股份有限公司 | 非易失性半导体存储器元件 |
US9396791B2 (en) | 2014-07-18 | 2016-07-19 | Micron Technology, Inc. | Programming memories with multi-level pass signal |
US9595345B2 (en) * | 2014-08-07 | 2017-03-14 | Sandisk Technologies Llc | Adaptive selective bit line pre-charge for current savings and fast programming |
KR102235492B1 (ko) | 2014-08-25 | 2021-04-05 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 프로그램 검증 방법 |
US9299443B1 (en) * | 2014-09-29 | 2016-03-29 | Sandisk Technologies Inc. | Modifying program pulses based on inter-pulse period to reduce program noise |
KR102333743B1 (ko) * | 2015-01-21 | 2021-12-01 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 불휘발성 메모리 장치의 동작 방법 |
US9875805B2 (en) * | 2015-01-23 | 2018-01-23 | Sandisk Technologies Llc | Double lockout in non-volatile memory |
KR20160117713A (ko) * | 2015-03-30 | 2016-10-11 | 에스케이하이닉스 주식회사 | 반도체 장치 및 그것의 동작 방법 |
US9595317B2 (en) * | 2015-05-28 | 2017-03-14 | Sandisk Technologies Llc | Multi-state programming for non-volatile memory |
US9437319B1 (en) * | 2015-06-25 | 2016-09-06 | Macronix International Co., Ltd. | Method for programming non-volatile memory with reduced bit line interference and associated device |
KR102348092B1 (ko) * | 2015-09-14 | 2022-01-10 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 이의 동작 방법 |
US10381094B2 (en) | 2016-10-11 | 2019-08-13 | Macronix International Co., Ltd. | 3D memory with staged-level multibit programming |
IT201600121618A1 (it) * | 2016-11-30 | 2018-05-30 | St Microelectronics Srl | Metodo di riduzione della durata di un'operazione di memoria in un dispositivo di memoria non volatile e relativo dispositivo di memoria non volatile |
KR102639697B1 (ko) | 2017-01-09 | 2024-02-21 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 그 프로그램 방법 |
US10650885B2 (en) * | 2017-03-07 | 2020-05-12 | Alibaba Group Holding Limited | Extending flash storage lifespan and data quality with data retention protection |
CN108962313A (zh) * | 2017-05-23 | 2018-12-07 | 旺宏电子股份有限公司 | 存储器操作方法及存储器操作装置 |
US10297312B1 (en) | 2017-12-06 | 2019-05-21 | Sandisk Technologies Llc | Resistive memory cell programmed by metal alloy formation and method of operating thereof |
US10643720B2 (en) | 2018-05-23 | 2020-05-05 | Sandisk Technologies Llc | Bit line voltage control for damping memory programming |
US10811109B2 (en) | 2018-12-27 | 2020-10-20 | Sandisk Technologies Llc | Multi-pass programming process for memory device which omits verify test in first program pass |
US10726929B1 (en) | 2019-01-25 | 2020-07-28 | Sandisk Technologies Llc | Programming process which compensates for data state of adjacent memory cell in a memory device |
US10706941B1 (en) | 2019-04-01 | 2020-07-07 | Sandisk Technologies Llc | Multi-state programming in memory device with loop-dependent bit line voltage during verify |
CN110176269B (zh) * | 2019-04-16 | 2020-11-17 | 华中科技大学 | 一种精确调控非易失性存储单元状态的方法及系统 |
US10811075B1 (en) * | 2019-08-19 | 2020-10-20 | Silicon Motion, Inc. | Method for performing access control regarding quality of service optimization of memory device with aid of machine learning, associated memory device and controller thereof |
US11081184B2 (en) * | 2019-10-30 | 2021-08-03 | Sandisk Technologies Llc | Method of concurrent multi-state programming of non-volatile memory with bit line voltage step up |
US11417400B2 (en) | 2020-01-31 | 2022-08-16 | Sandisk Technologies Llc | Controlling timing and ramp rate of program-inhibit voltage signal during programming to optimize peak current |
US11049578B1 (en) * | 2020-02-19 | 2021-06-29 | Sandisk Technologies Llc | Non-volatile memory with program verify skip |
US11250920B2 (en) * | 2020-06-30 | 2022-02-15 | Sandisk Technologies Llc | Loop-dependent switching between program-verify techniques |
US11662941B2 (en) | 2020-10-13 | 2023-05-30 | Western Digital Technologies, Inc. | System and method for mitigating effect of erase cells on adjacent cells |
CN114220471A (zh) * | 2021-01-06 | 2022-03-22 | 长江存储科技有限责任公司 | 3d存储器件及其读取方法 |
US11475959B1 (en) | 2021-06-30 | 2022-10-18 | Sandisk Technologies Llc | Reduced program time for memory cells using negative bit line voltage for enhanced step up of program bias |
US12046288B2 (en) * | 2021-12-02 | 2024-07-23 | Winbond Electronics Corp. | Memory device comprising source switch to float source line of unselected memory cell block, memory array and program method using the same |
US11972817B2 (en) | 2022-06-10 | 2024-04-30 | Sandisk Technologies, Llc | State look ahead quick pass write algorithm to tighten ongoing natural threshold voltage of upcoming states for program time reduction |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1879175A (zh) * | 2003-10-20 | 2006-12-13 | 桑迪士克股份有限公司 | 基于非易失性存储器单元的行为的编程方法 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6327183B1 (en) | 2000-01-10 | 2001-12-04 | Advanced Micro Devices, Inc. | Nonlinear stepped programming voltage |
JP3631463B2 (ja) * | 2001-12-27 | 2005-03-23 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US6882567B1 (en) | 2002-12-06 | 2005-04-19 | Multi Level Memory Technology | Parallel programming of multiple-bit-per-cell memory cells on a continuous word line |
US7158421B2 (en) | 2005-04-01 | 2007-01-02 | Sandisk Corporation | Use of data latches in multi-phase programming of non-volatile memories |
US7564713B2 (en) | 2005-04-28 | 2009-07-21 | Kabushiki Kaisha Toshiba | Semiconductor integrated circuit device wherein during data write a potential transferred to each bit line is changed in accordance with program order of program data |
TW200727113A (en) | 2006-01-03 | 2007-07-16 | Via Tech Inc | Computer system external power supply connector |
US7656709B2 (en) | 2007-05-03 | 2010-02-02 | Micron Technology, Inc. | NAND step up voltage switching method |
US7508715B2 (en) * | 2007-07-03 | 2009-03-24 | Sandisk Corporation | Coarse/fine program verification in non-volatile memory using different reference levels for improved sensing |
US7599224B2 (en) * | 2007-07-03 | 2009-10-06 | Sandisk Corporation | Systems for coarse/fine program verification in non-volatile memory using different reference levels for improved sensing |
US7551477B2 (en) | 2007-09-26 | 2009-06-23 | Sandisk Corporation | Multiple bit line voltages based on distance |
US7688638B2 (en) * | 2007-12-07 | 2010-03-30 | Sandisk Corporation | Faster programming of multi-level non-volatile storage through reduced verify operations |
KR101427896B1 (ko) | 2008-08-06 | 2014-08-11 | 삼성전자주식회사 | 공통 소스 라인의 노이즈를 줄이는 플래시 메모리 장치 및그것을 포함하는 메모리 시스템 |
US20100080064A1 (en) | 2008-09-30 | 2010-04-01 | Ercole Rosario Di Iorio | Bit line bias for programming a memory device |
KR101532755B1 (ko) | 2008-10-13 | 2015-07-02 | 삼성전자주식회사 | 비휘발성 메모리 장치, 그것을 포함하는 메모리 시스템, 그것의 프로그램 방법, 및 그것의 프리차지 전압 부스팅 방법 |
JP2010211883A (ja) * | 2009-03-11 | 2010-09-24 | Toshiba Corp | 不揮発性半導体記憶装置 |
US7986573B2 (en) * | 2009-11-24 | 2011-07-26 | Sandisk Technologies Inc. | Programming memory with direct bit line driving to reduce channel-to-floating gate coupling |
US8089815B2 (en) * | 2009-11-24 | 2012-01-03 | Sandisk Technologies Inc. | Programming memory with bit line floating to reduce channel-to-floating gate coupling |
-
2010
- 2010-07-19 US US12/838,902 patent/US8274838B2/en active Active
-
2011
- 2011-06-20 TW TW100121487A patent/TW201216283A/zh unknown
- 2011-07-14 JP JP2013520751A patent/JP2013531331A/ja not_active Withdrawn
- 2011-07-14 KR KR1020137004047A patent/KR101787802B1/ko active IP Right Grant
- 2011-07-14 CN CN201180035485.2A patent/CN103081015B/zh active Active
- 2011-07-14 EP EP11734236.0A patent/EP2596500A1/en not_active Withdrawn
- 2011-07-14 WO PCT/US2011/044016 patent/WO2012012261A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1879175A (zh) * | 2003-10-20 | 2006-12-13 | 桑迪士克股份有限公司 | 基于非易失性存储器单元的行为的编程方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2596500A1 (en) | 2013-05-29 |
KR20140012608A (ko) | 2014-02-03 |
JP2013531331A (ja) | 2013-08-01 |
US20120014184A1 (en) | 2012-01-19 |
WO2012012261A1 (en) | 2012-01-26 |
KR101787802B1 (ko) | 2017-10-18 |
US8274838B2 (en) | 2012-09-25 |
TW201216283A (en) | 2012-04-16 |
CN103081015A (zh) | 2013-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103081015B (zh) | 利用位线电压逐步增加来对非易失性存储器进行编程 | |
US8045384B2 (en) | Reduced programming pulse width for enhanced channel boosting in non-volatile storage | |
USRE45520E1 (en) | Data state-dependent channel boosting to reduce channel-to-floating gate coupling in memory | |
US7755946B2 (en) | Data state-based temperature compensation during sensing in non-volatile memory | |
US10026492B2 (en) | Multi-die programming with die-jumping induced periodic delays | |
US7916533B2 (en) | Forecasting program disturb in memory by detecting natural threshold voltage distribution | |
US8861282B2 (en) | Method and apparatus for program and erase of select gate transistors | |
US7440324B2 (en) | Apparatus with alternating read mode | |
CN102549673B (zh) | 用较小通道电压干扰和浮栅极到控制栅极泄漏对存储器编程 | |
US7898864B2 (en) | Read operation for memory with compensation for coupling based on write-erase cycles | |
US7839687B2 (en) | Multi-pass programming for memory using word line coupling | |
CN102306501B (zh) | 编程不同大小的容限及在选择状态下使用补偿进行感测以改进非易失性存储器中的读取操作 | |
US8395936B2 (en) | Using channel-to-channel coupling to compensate floating gate-to-floating gate coupling in programming of non-volatile memory | |
USRE45544E1 (en) | Saw-shaped multi-pulse programming for program noise reduction in memory | |
US20120081963A1 (en) | Multi-step channel boosting to reduce channel to floating gate coupling in memory | |
CN101779250B (zh) | 编程脉冲持续期的智能控制 | |
US20080158946A1 (en) | Alternating read mode | |
KR20070057716A (ko) | 멀티 레벨 셀을 갖는 플래시 메모리 장치의 프로그램 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
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: American Texas Patentee after: DELPHI INT OPERATIONS LUX SRL Address before: American Texas Patentee before: Sandisk Technologies, Inc |