CN101095199B - 非易失性存储系统和用于编程非易失性存储器的方法 - Google Patents

非易失性存储系统和用于编程非易失性存储器的方法 Download PDF

Info

Publication number
CN101095199B
CN101095199B CN2005800392083A CN200580039208A CN101095199B CN 101095199 B CN101095199 B CN 101095199B CN 2005800392083 A CN2005800392083 A CN 2005800392083A CN 200580039208 A CN200580039208 A CN 200580039208A CN 101095199 B CN101095199 B CN 101095199B
Authority
CN
China
Prior art keywords
memory device
volatile memory
group
programming
pulse
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2005800392083A
Other languages
English (en)
Other versions
CN101095199A (zh
Inventor
格里特·简·赫民克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Delphi International Operations Luxembourg SARL
Original Assignee
SanDisk Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SanDisk Corp filed Critical SanDisk Corp
Publication of CN101095199A publication Critical patent/CN101095199A/zh
Application granted granted Critical
Publication of CN101095199B publication Critical patent/CN101095199B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital 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/5621Digital 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/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3468Prevention of overerasure or overprogramming, e.g. by verifying whilst erasing or writing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3468Prevention of overerasure or overprogramming, e.g. by verifying whilst erasing or writing
    • G11C16/3486Circuits 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2216/00Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
    • G11C2216/12Reading and writing aspects of erasable programmable read-only memories
    • G11C2216/14Circuits 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)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Read Only Memory (AREA)
  • Stored Programmes (AREA)

Abstract

将编程脉冲施加到一组非易失性存储元件。所述编程脉冲的量值选择为足够低以使得非易失性存储元件均不会被过编程。测试所述非易失性存储元件以判定至少一个(或某一其它最小数目)非易失性存储元件是否已被编程超过测试阈值。如果是,那么认为所述组非易失性存储器元件具有一个或一个以上快速编程非易失性存储元件,且使用针对后续编程脉冲的较小增加值来执行将来的编程。如果判定所述组非易失性存储器元件不具有一个或一个以上快速编程非易失性存储元件,那么针对后续编程脉冲使用较大增加值,直到一个(或某一其它最小数目)非易失性存储元件已被编程超过所述测试阈值为止,此时针对后续编程脉冲使用所述较小增加值。

Description

非易失性存储系统和用于编程非易失性存储器的方法
技术领域
本发明涉及对非易失性存储器进行编程。 
背景技术
半导体存储器装置已变得更普遍地用于各种电子装置中。举例来说,非易失性半导体存储器用于蜂窝式电话、数码相机、个人数字助理、移动计算装置、非移动计算装置和其它装置中。电可擦除可编程只读存储器(EEPROM)和快闪存储器是最普遍的非易失性半导体存储器之一。 
EEPROM和快闪存储器两者均利用浮动栅极,浮动栅极定位在半导体衬底中的沟道区域上方并与所述沟道区域绝缘。浮动栅极定位在源极区域与漏极区域之间。控制栅极提供在浮动栅极上方并与浮动栅极绝缘。晶体管的阈值电压由保留在浮动栅极上的电荷的量控制。也就是说,在接通晶体管以允许其源极与漏极之间的传导之前必须施加到控制栅极的电压的最小量由浮动栅极上的电荷的电平控制。 
当编程EEPROM或快闪存储器装置时,通常将编程电压施加到控制栅极,且位线接地。将来自沟道的电子注入到浮动栅极中。当电子聚积在浮动栅极中时,浮动栅极变得带负电,且存储器单元的阈值电压升高,使得存储器单元处于编程状态。关于编程的更多信息可参阅2003年3月5日申请的题为“Self Boosting Technique”的美国专利申请案10/379,608;以及2003年7月29日申请的题为“Detecting Over Programmed Memory”的美国专利申请案10/629,068,两个申请案的全文均以引用的方式并入本文中。 
一些EEPROM和快闪存储器装置具有用于存储两个范围的电荷的浮动栅极,且因此,可在两个状态(擦除状态与编程状态)之间编程/擦除存储器单元。举例来说,图1展示描绘两个阈值电压分布的曲线图。x轴描绘阈值电压且y轴描绘存储器单元的数目。阈值电压分布2小于零伏。在一个实施例中,阈值电压分布2对应于存储数据“1”的已擦除存储器单元。阈值电压分布4大于零伏。在一个实施例中,阈值电压分布4对应于存储数据“0”的已编程存储器单元。 
通过识别由禁止电压范围分离的多个截然不同的容许阈值电压范围来实施多状态快闪存储器单元。每一截然不同的阈值电压范围对应于数据位组的预定值。图2说明存储两个数据位(例如,四个数据状态)的存储器单元的阈值电压分布。在一个实施例中,阈值电压分布2表示处于擦除状态(例如,存储“11”)的存储器单元,其具有负阈值电压电平。阈值电压分布10表示存储数据“10”的存储器单元,其具有正阈值电压电平。阈值电压分布12表示存储数据“00”的存储器单元。阈值电压分布14表示存储“01”的存储器单元。在其它实施例中,所述分布中的每一者均可对应于与上文所述不同的数据状态。在一些实施方案(如上文所示范)中,使用格雷码分配将这些数据值(例如,逻辑状态)分配到阈值范围,使得在浮动栅极的阈值电压错误地转变到其相邻实体状态时,仅一个逻辑位将受到影响。编程到存储器单元中的数据与单元的阈值电压范围之间的特定关系取决于针对存储器单元所采用的数据编码方案。举例来说,第6,222,762号美国专利和2003年6月13日申请的题为“Tracking Cells For A Memory System”的第10/461,244号美国专利申请案(其两者全文均以引用的方式并入本文中)描述多状态快闪存储器单元的各种数据编码方案。另外,本发明适用于存储多于两个数据位的存储器单元。 
阈值电压分布2和4展示不使用检验操作时的经擦除和经编程电压分布。可通过用单个编程或擦除脉冲编程或擦除存储器单元来获得这些分布。视存储器阵列大小和产生过程的变化而定,阈值电压分布4具有某一宽度,称为自然Vt宽度。 
如从图2可以看到,分布10、12和14(对应于编程多状态装置)需要远远窄于分布4的自然Vt宽度。为了实现这种较窄的阈值电压分布,可使用利用(例如图3A、3B和3C所描述的)多个编程脉冲和检验操作的过程。 
图3A描绘作为一系列脉冲施加到控制栅极的编程电压信号Vpgm。脉冲的量值随着每一连续脉冲而增加预定步长(例如,0.2v-0.4v),图3A中描绘为ΔVpgm。在脉冲之间的周期中实行检验操作。随着可编程状态的数目增加,检验操作的数目增加且需要更多时间。一种用于减少时间负担的方法是更有效的经检验的过程,例如2002年12月5日申请的题为“Smart Verify For Multi-State Memories”的第10/314,055号美国专利申请案中所揭示的过程,所述专利申请案全文以引用的方式并入本文中。实际上,图3A的脉冲彼此分离供检验的时间周期。然而,为了使图3更具有可读性,从图中省略了供检验的时间周期。 
图3B描绘施加到正被编程的相关存储器单元的位线的电压信号。图3C描绘正被编 程的存储器单元的阈值电压。注意,为了更易于阅读,使图3C中的曲线趋于平滑。在每一编程脉冲之后,实行检验操作(未图示)。在检验操作期间,检查待编程的存储器单元的阈值电压。如果阈值电压的存储器单元大于目标值(例如,Vverify),那么在下一循环内通过将位线电压从0v升高到Vinhibit(例如,时间t4处)来抑制对所述存储器单元的编程。 
与其它电子装置一样,消费者要求存储器装置尽可能快地进行编程。举例来说,将图像存储在快闪存储卡上的数码相机的用户不希望在图片之间等待一段不必要的较长时间。除了以合理的速度编程外,为了实现多状态存储器单元的适当数据存储,多状态存储器单元的多个阈值电压范围还应彼此分离足够的容限,使得可以明确的方式来编程和读取存储器单元的电平。另外,推荐使用紧密的阈值电压分布。为了实现紧密的阈值电压分布,通常已使用小编程步骤,从而更缓慢地编程单元的阈值电压。所期望的阈值电压分布越紧密,则步骤越小且编程过程越缓慢。 
实现紧密的阈值电压分布而不会不合理地减缓编程过程的一种解决方案包含使用两阶段编程过程。第一阶段(粗略编程阶段)包含试图以较快方式升高阈值电压,和较少关注实现紧密的阈值电压分布。第二阶段(精细编程阶段)试图以较慢方式升高阈值电压以便达到目标阈值电压,同时还实现较紧密的阈值电压分布。粗略/精细编程方法的一个实例可参阅美国专利6,643,188,其全文以引用的方式并入本文中。 
图4和5提供粗略/精细编程方法的一个实例的更多细节。图4A和5A描绘施加到控制栅极的编程脉冲Vpgm。图4B和5B描绘正被编程的存储器单元的位线电压。图4C和5C描绘正被编程的存储器单元的阈值电压。图4和图5的此实例使用图中指示为Vver1和Vver2的两个检验电平。最终目标电平是Vver1。当存储器单元的阈值电压已达到Vver1时,将通过将抑制电压施加到对应于所述存储器单元的位线来抑制所述存储器单元进行进一步编程。举例来说,位线电压可升高到Vinhibit(参看图4B和图5B)。然而,当存储器单元已达到接近(但低于)目标值Vver1的阈值电压时,通过将某一偏压(通常约为0.3v到0.8v)施加到位线来减缓后续编程脉冲期间存储器单元的阈值电压转变。因为在接下来几个编程脉冲期间,阈值电压转变的速率减小,所以最终阈值电压分布可能窄于利用图3描绘的方法所获得的阈值电压分布。为了实施此方法,使用低于Vver1的电平的第二检验电平。图4和5中将此第二检验电平描绘为Vver2。当存储器单元的阈值电压大于Vver2但仍低于Vver1时,后续编程脉冲期间将通过施加位线偏压Vs(图5B)来减少存储器单元的阈值电压转变。注意,在此情况下,每一状态均需要两个检验操作。 每一状态的对应Vver1处具有一个检验操作,且每一状态的对应Vver2处具有一个检验操作。这可能增加对存储器单元进行编程所需的总时间。然而,可使用较大ΔVpgm步长来加速所述过程。 
图4A、4B和4C展示在一个编程脉冲中阈值电压移动超过Vver2和Vver1的存储器单元的行为。举例来说,图4C中描绘阈值电压在t2与t3之间经过Vver2和Vver1。因此,在t3之前,存储器单元处于粗略阶段。在t3之后,存储器单元处于抑制模式。 
图5A、5B和5C描绘进入粗略和精细编程阶段两者的存储器单元。存储器单元的阈值电压在时间t2与时间t3之间越过Vver2。在t3之前,存储器单元处于粗略阶段。在t3之后,位线电压升高到Vs;因此,存储器单元处于精细阶段。在t3与t4之间,存储器单元的阈值电压越过Vver1;因此,通过将位线电压升高到Vinhibit来抑制存储器单元进行进一步编程。 
非易失性存储器(尤其是多状态存储器)所遭遇的一个问题是,可能发生过编程。在编程过程期间,将存储器单元编程到由特定组数据的阈值电压范围界定的某一目标状态。当将存储器单元编程到某一阈值电压范围时,所述单元的阈值电压不应超出所述范围的最大容许阈值电压。举例来说,参看图2,如果存储器单元待被编程到目标状态10,那么存储器单元的阈值电压应升高到高于Vv1,但应保持低于分布10的最大可容许阈值电压Vmax1。当存储器单元的阈值电压超出可容许范围时,在稍后读取数据时可能出现失败。此现象称为过编程。在一些情况下,可使用误差校正来校正由过编程引起的误差。然而,一些过编程无法通过误差校正来矫正。另外,误差校正可能非常耗时。 
图6描绘经擦除阈值电压分布2和经编程阈值电压分布80。阈值电压分布80包含一组编程速度比正常情况快的一个或多于一个存储器单元。这些快速存储器单元是进行过编程的候选者。举例来说,在一个编程脉冲之后,包含一或多于一个快速单元的存储器单元全体不是获得图1的阈值电压分布4,而是将导致图6的阈值电压分布80。阈值电压分布80包含快速存储器单元82。 
图7A、7B和7C进一步说明可能被过编程的快速存储器单元的问题。图7A描绘二位多状态存储器单元(two-bit multi-state memory cell)的阈值电压分布2、10、12和14。图7B展示自然的经擦除阈值电压分布2和经编程阈值电压分布84。在一个实施例中,分布84与既定在一个编程脉冲之后编程到分布10的存储器单元全体相关。可以看到,所述分布朝向应为分布10的分布移动。分布84包含一组快速存储器单元,其中的一些快速存储器单元超出读取检验点Vr1。如从图7A可以看到,读取检验点是用于区分阈值 电压分布10与阈值电压分布12的电压电平。因此,在一个编程脉冲之后,阈值电压分布84中的存储器单元中的一些存储器单元已具有误差,因为所述存储器单元具有大于Vr1的阈值电压分布。在编程过程结束时,既定处于阈值电压分布10中的那些存储器单元将有可能处于分布86中,如图7C所描绘。阈值电压分布86与图7A的阈值电压分布10之间的差异在于,阈值电压分布86包含一组具有超出Vr1的阈值电压的快速存储器单元(分布86的前端尾部)。当读取时,这些具有大于Vr1的阈值电压的快速位可传回误差。 
发明内容
本文描述的技术试图避免或减少过编程。 
在一个实施例中,将编程脉冲施加到一组非易失性存储元件。所述编程脉冲的量值选择为足够低以使得非易失性存储元件均不会被过编程。测试所述非易失性存储元件以判定至少一个(或某一其它最小数目)非易失性存储元件是否已被编程超过测试阈值。如果是,那么认为所述组非易失性存储器元件具有一个或多于一个快速编程非易失性存储元件,且使用针对后续编程脉冲的较小增加值来执行将来的编程。如果未判定所述组非易失性存储器元件具有一个或多于一个快速编程非易失性存储元件,那么针对后续编程脉冲使用较大增加值,直到一个(或某一其它最小数目)非易失性存储元件已被编程超过所述测试阈值为止,此时针对后续编程脉冲使用所述较小增加值。 
从以下描述内容中将更清楚地了解本发明的这些和其它目的和优点,以下描述内容中已结合附图陈述了本发明的优选实施例。 
附图说明
图1是描绘两个阈值电压分布的曲线图。 
图2是描绘四个阈值电压分布的曲线图。 
图3A、3B和3C描绘编程过程。图3A描绘施加到非易失性存储元件的控制栅极的编程电压信号。图3B描绘施加到NAND串的位线的电压信号。图3C描绘正被编程的非易失性存储元件的阈值电压。 
图4A、4B和4C描绘作为粗略/精细编程的一部分而执行的编程过程的一个实施例。 
图5A、5B和5C描绘作为粗略/精细编程的一部分而执行的编程过程的一个实施例。 
图6是描绘两个阈值电压分布的曲线图。 
图7A、7B和7C是描绘阈值电压分布的曲线图。 
图8是NAND串的俯视图。 
图9是NAND串的等效电路图。 
图10是NAND串的横截面图。 
图11是非易失性存储器系统的一个实施例的方框图。 
图12说明存储器阵列的组织的实例。 
图13是描述用于编程存储器系统的页的过程的一个实施例的流程图。 
图14是描述用于编程存储器系统的页的过程的一个实施例的流程图。 
图15A、15B和15C是描绘阈值电压分布的曲线图。 
图16A、16B和16C描绘减少过编程的编程过程的一个实施例。 
图17A、17B和17C描绘减少过编程的编程过程的一个实施例。 
图18A、18B和18C描绘减少过编程的编程过程的一个实施例。 
图19A、19B和19C描绘减少过编程的编程过程的一个实施例。 
具体实施方式
适于实施本发明的快闪存储器系统的一个实例使用NAND结构,其包含将多个晶体管串联布置在两个选择栅极之间。所述串联的晶体管和所述选择栅极称为NAND串。图8是展示一个NAND串的俯视图。图9是所述NAND串的等效电路。图8和9中所描绘的NAND串包含串联并夹在第一选择栅极120与第二选择栅极122之间的四个晶体管100、102、104和106。选择栅极120将NAND串连接到位线接触件126。选择栅极122将NAND串连接到源极线接触件128。通过将适当电压施加到控制栅极120CG来控制选择栅极120。通过将适当电压施加到第二控制栅极122CG来控制选择栅极122。晶体管100、102、104和106中的每一者均具有控制栅极和浮动栅极。晶体管100具有控制栅极100CG和浮动栅极100FG。晶体管102包含控制栅极102CG和浮动栅极102FG。晶体管104包含控制栅极104CG和浮动栅极104FG。晶体管106包含控制栅极106CG和浮动栅极106FG。控制栅极100CG连接到字线WL3,控制栅极102CG连接到字线WL2,控制栅极104CG连接到字线WL1,且控制栅极106CG连接到字线WL0。在一个实施例中,晶体管100、102、104和106每一者均为存储器单元。在其它实施例中,存储器单元可包含多个晶体管,或可不同于图8和9中所描绘的存储器单元。选择栅极120连接到选择线SGD,且选择栅极122连接到选择线SGS。 
图10提供上述NAND串的横截面图。如图10中所描绘,NAND串的晶体管形成于p阱区域140中。每一晶体管均包含由控制栅极(100CG、102CG、104CG和106CG)和 浮动栅极(100FG、102FG、104FG和106FG)组成的堆叠栅极结构。浮动栅极形成于氧化物膜的顶部上的p阱的表面上。控制栅极在浮动栅极上方,其中中间多晶硅介电层使控制栅极与浮动栅极分离。存储器单元(100、102、104、106)的控制栅极形成字线。N+扩散层130、132、134、136和138在相邻单元之间共享,藉此所述单元彼此串联连接以形成NAND串。这些N+扩散层形成所述单元中的每一者的源极和漏极。举例来说,N+扩散层130充当晶体管122的漏极和晶体管106的源极,N+扩散层132充当晶体管106的漏极和晶体管104的源极,N+扩散区域134充当晶体管104的漏极和晶体管102的源极,N+扩散区域136充当晶体管102的漏极和晶体管100的源极,且N+扩散层138充当晶体管100的漏极和晶体管120的源极。N+扩散层126连接到NAND串的位线,而N+扩散层128连接到多个NAND串的共用源极线。 
注意,尽管图8-10展示NAND串中的四个存储器单元,但四个晶体管的使用仅作为实例而提供。NAND串可具有四个以下存储器单元或四个以上存储器单元。举例来说,一些NAND串将包含8个存储器单元,16个存储器单元、32个存储器单元等等。此处的论述不限于NAND串中的任何特定数目的存储器单元。 
每一存储器单元均可存储以模拟或数字形式表示的数据。当存储一个数字数据位时,存储器单元的可能阈值电压的范围划分为被分配有逻辑数据“1”和“0”的两个范围。在NAND型快闪存储器的一个实例中,在存储器单元被擦除之后,电压阈值为负,并界定为逻辑“1”。在编程操作之后,阈值电压为正,并界定为逻辑“0”。当阈值电压为负且试图进行读取时,存储器单元将接通以指示逻辑1正被存储。当阈值电压为正且试图进行读取操作时,存储器单元将不接通,这指示逻辑0被存储。存储器单元还可存储多个等级的信息,从而存储多个数字数据位。在存储多个等级的数据的情况下,可能阈值电压的范围划分为所述数目的存储等级。举例来说,如果存储四个等级的信息,那么将存在分配到数据值“11”、“10”、“01”和“00”的四个阈值电压范围。在NAND型存储器的一个实例中,在擦除操作之后,阈值电压为负并界定为“11”。正阈值电压用于状态“10”、“01”和“00”。 
以下美国专利/专利申请案中提供NAND型快闪存储器及其操作的有关实例,所述所有专利/专利申请案的全文以引用的方式并入本文中:第5,570,315号美国专利;第5,774,397号美国专利;第6,046,935号美国专利;第5,386,422号美国专利;第6,456,528号美国专利和第09/893,277号(公开号US2003/0002348)美国专利申请案。关于对NAND快闪存储器进行编程(包含自增压(self boosting)技术)的信息可参阅2003年3月5 日申请的题为“Self Boosting Technique”的美国专利申请案10/379,608;以及2003年7月29日申请的题为“Detecting Over Programmed Memory”的美国专利申请案10/629,068,两个申请案全文均以引用的方式并入本文中。其它类型的快闪存储器装置也可与本发明一起使用。举例来说,以下专利描述NOR型快闪存储器,且所述专利全文以引用的方式并入本文中:第5,095,344号、第5,172,338号、第5,890,192号和第6,151,248号美国专利。快闪存储器类型的另一实例参阅第6,151,248号美国专利,其全文以引用的方式并入本文中。 
本文描述的技术不限于浮动栅极类型的存储器,而是还可适用于使用其它类型的材料进行电荷存储的存储器单元。举例来说,本文描述的技术可与在控制栅极(或字线)与衬底之间使用各种类型的电荷存储区域/层(例如,氮化物层或小硅岛(更多地称为纳米晶体))的存储器装置一起使用。 
图11是可用于实施本发明的快闪存储器系统的一个实施例的方框图。存储器单元阵列202由列控制电路204、行控制电路206、c源极控制电路210和p阱控制电路208来控制。列控制电路204连接到存储器单元阵列202的位线,以用于读取存储在存储器单元中的数据,用于判定编程操作期间存储器单元的状态,并用于控制位线的电位电平以促进编程或抑制编程。行控制电路206连接到字线以选择所述字线中的一者,施加读取电压,施加编程电压并施加擦除电压。c源极控制电路210控制连接到存储器单元的共用源极线(图12中标记为“C源极”)。p阱控制电路208控制p阱电压。 
存储在存储器单元中的数据由列控制电路204读出并经由数据输入/输出缓冲器212输出到外部I/O线。待存储在存储器单元中的编程数据经由外部I/O线输入到数据输入/输出缓冲器212,并转移到列控制电路204。外部I/O线连接到控制器218。 
将用于控制快闪存储器装置的命令数据输入到控制器218。命令数据通知快闪存储器什么操作被请求。将输入的命令转移到状态机216,状态机216控制列控制电路204、行控制电路206、c源极控制210、p阱控制电路208和数据输入/输出缓冲器212。状态机216还可输出快闪存储器的状态数据,例如准备就绪/占用(READY/BUSY)或通过/失败(PASS/FAIL)。 
控制器218与例如个人计算机、数码相机、个人数字助理等的主机系统连接或可与所述主机系统连接。控制器218与主机通信以便从主机接收命令,从主机接收数据,向主机提供数据,且向主机提供状态信息。控制器218将来自主机的命令转换成可由命令电路214解译并执行的命令信号,所述命令电路214与状态机216进行通信。控制器218 通常含有用于将用户数据写入到存储器阵列或从存储器阵列读取用户数据的缓冲存储器。 
一个示范性存储器系统包括一个包含控制器218的集成电路,和各含有存储器阵列和相关的控制、输入/输出及状态机电路的一个或多于一个集成电路芯片。趋势是将系统的存储器阵列和控制器电路一起集成在一个或多于一个集成电路芯片上。存储器系统可嵌入作为主机系统的一部分,或可包含在可移除地插入主机系统中的存储卡(或其它封装)中。这种可移除式卡可包含整个存储器系统(例如,包含控制器)或仅仅包含存储器阵列和相关的外围电路(其中控制器嵌入在主机中)。因此,控制器(或控制能力)可嵌入在主机中或包含在可移除式存储器系统内。 
在一些实施方案中,图11的组件中的一些组件可进行组合。在各种设计中,可将图11的组件中的一个或多于一个组件(除存储器单元阵列302之外)视为控制电路。举例来说,一个或多于一个控制电路可包含命令电路、状态机、行控制电路、列控制电路、阱控制电路、源极控制电路或数据I/O电路的任一者或组合。 
参看图12,描述存储器单元阵列202的示范性结构。作为一个实例,描述NAND快闪EEPROM,其分为1,024个区块。同时擦除存储在每一区块中的数据。在一个实施例中,区块是同时擦除的单元的最小单位。在此实例中,每一区块中均存在8,512个列,其被划分为偶数列和奇数列。位线也被划分为偶数位线(BLe)和奇数位线(BLo)。图12展示串联连接以形成NAND串的四个存储器单元。尽管展示每一NAND串中包含四个单元,但可使用四个以上或四个以下存储器单元。NAND串的一个端子经由选择晶体管SGD连接到对应的位线,且另一端子经由第二选择晶体管SGS连接到c源极。 
在读取和编程操作的一个实施例期间,同时选择4,256个存储器单元。所选择的存储器单元具有相同字线和相同种类的位线(例如,偶数位线或奇数位线)。因此,可同时读取或编程532个字节的数据。同时读取或编程的这532个字节的数据形成逻辑页。因此,一个区块可存储至少八个逻辑页(四个字线,每一字线具有奇数和偶数页)。当每一存储器单元(例如,多状态存储器单元)存储两个数据位,其中这两个位中的每一者均存储在不同的页中时,一个区块存储16个逻辑页。其它大小的区块和页也可与本发明一起使用。另外,还可使用除图11和12的结构之外的结构来实施本发明。 
通过将p阱升高到擦除电压(例如,20伏)并使所选择的区块的字线接地来擦除存储器单元。源极和位线是浮动的。可对整个存储器阵列、单独区块或另一单位的单元执行擦除。电子从浮动栅极转移到p阱区域,且阈值电压变为负(在一个实施例中)。 
在读取和检验操作中,选择栅极(SGD和SGS)和未选择的字线(例如,WL0、WL2和WL3)升高到读取通过电压(read pass voltage)(例如,4.5伏)以使晶体管作为通过栅极(pass gate)而操作。所选择的字线(例如,WL1)连接到一电压,所述电压的电平针对每一读取和检验操作而指定,以便判定所关注的存储器单元的阈值电压是在此电平以上还是以下。举例来说,在针对两电平存储器单元的读取操作中,所选择的字线WL1可接地,使得检测到阈值电压是否高于0V。在针对两电平存储器单元的检验操作中,所选择的字线WL1连接到(例如)0.8V,使得检验出阈值电压是否已达到至少0.8V。源极和p阱处于零伏。将所选择的位线(BLe)预充电达到(例如)0.7V的电平。如果阈值电压高于字线上的读取或检验电平,那么与所关注的单元相关的位线(BLe)的电位电平由于非导电存储器单元的缘故而维持高电平。另一方面,如果阈值电压低于读取或检验电平,那么所关注的位线(BLe)的电位电平由于导电存储器单元使所述位线放电的缘故而降低到低电平(例如,小于0.5V)。从而通过连接到位线的电压比较器读出放大器(voltage comparator sense amplifier)来检测存储器单元的状态。 
上述擦除、读取和检验操作是根据所属领域中已知的技术执行的。因此,所属领域的技术人员可改变所阐释的细节中的许多细节。还可使用所属领域中已知的其它擦除、读取和检验技术。 
如上所述,通过将编程电压Vpgm作为一系列脉冲施加到存储器单元的控制栅极来实现存储器阵列中的存储器单元的编程。Vpgm的量值的选择是一种折衷物。过分高的值将导致更多的快速单元被过编程,而过分低的值将导致编程速度不合理地减小。与存储器系统中的存储器单元的总数目相比,可能引起过编程的快速单元的数目相对较小。因此,当对存储器单元的页进行编程时,此页中将存在一个或多于一个快速存储器单元的可能性不是非常高。这将意味着,如果使用低Vpgm来避免过编程,那么大多数的页会在编程速度方面不必要地受损,因为所需要的编程脉冲的数目主要由Vpgm的启始值决定。实际上,存储器系统中的全部页中仅较小数目的页需要低Vpgm值,而其它页可用较高Vpgm来编程以避免性能降级。为了解决这个难题,提议采用以下过程。 
首先,针对第一编程脉冲使用Vpgm的低初始值,使得第一编程脉冲(或最初两个或三个脉冲)期间没有存储器单元(或仅较小数目的存储器单元)将被过编程。为了减小对不具有快速存储器单元的页的编程时间的影响,后续编程脉冲的量值将以较大步长(例如,0.6v,而不是典型值0.3v)增加。Vpgm的值将以较大步长快速增加,直到第一组一个或多于一个(或其它最小数目)单元已达到初始检验电平(Vvstart)为止。因 此,并不会损失很多时间,且编程脉冲的总数目可与其它系统类似或甚至少于其它系统。 
在正被编程的页中存在一个或多于一个快速存储器单元的情况下,那么将在第一脉冲之后检测到这些快速存储器单元。然而,视对Vpgm使用什么值而定,在检测到任何快速单元之前可能需要多于一个编程脉冲。在一些页中,可能在第一脉冲之后检测到快速单元,在其它页中,可能在两个或多于两个脉冲之后检测到快速单元,而在其它页中,可能根本检测不到快速单元。后续编程脉冲将以较小步长增加,以便避免对那些快速存储器单元进行过编程。这种具有快速存储器单元的页将需要大数目的编程脉冲,因为步长从一开始就较小。由于存储器阵列中的大多数页将不具有任何快速单元,且因此将不会过分减缓,所以总体编程速度将不会不合理地受损。仅对于需要这种情况的页来说,编程将较缓慢以避免过编程。 
图13是描述用于编程存储器系统的过程的一个实施例的流程图。在步骤300中,命令电路214(图11)从控制器318接收命令以编程一组数据。在步骤302中,接收所述数据。在步骤304中,系统判定需要对哪些数据页进行编程。在判定要编程哪些页之后,状态机216将指导对适当页的编程。在步骤306中,编程下一页。在步骤308中,判定操作是否成功。如果成功地编程了所述页,那么判定是否有更多的页要编程(步骤310)。如果没有更多的页要编程,那么图13的过程完成。如果有更多的页要编程,那么过程返回到步骤306,且编程下一页。 
如果编程操作不成功(见步骤308),那么在步骤320中对所述页进行再编程。步骤320还可包含执行各种误差校正技术或取消编程操作。在步骤320之后,过程可在步骤310处继续。 
在一些实施例中,还可在编程之前对待编程的各页进行预处理。举例来说,可对各页执行预编程,使得仍处于擦除状态的所有存储器单元均被编程达到共用电平。在预编程之后,可擦除所有的页。在擦除之后,可执行软编程以升高被过擦除的存储器单元的阈值电压。 
图14是描述用于编程数据页的过程(见图13的步骤306)的一个实施例的流程图。在步骤350中,针对所述特定页加载数据。在步骤352中,将编程电压Vpgm设定为其初始低值,将增加值ΔVpgm设定为第一增加值ΔVpgm1,且将编程计数器PC初始化为零。以一量值设定第一编程脉冲的值,所述量值足够低(例如,15V)以使得正被编程的非易失性存储元件(甚至快速非易失性存储元件)均不会被过编程或仅足够小数目的非易失性存储元件将会被过编程。在步骤354中,施加第一编程脉冲。因为量值设定得 足够低,所以在第一编程脉冲之后,存储器单元均不会被过编程或仅足够小数目的存储器单元将会被过编程。如上所述,在一个实施例中,数据页中的存储器单元共享一共用字线,且因此在其各自的控制栅极处接收相同编程脉冲。在编程脉冲之后,接着在步骤356中相对于电压Vvstart来检验存储器单元。使用电压值Vvstart来判定哪些存储器单元是快速存储器单元。通过装置特征来进行选择,使得在一个编程脉冲之后通过Vvstart的任何单元均被认为是快速存储器单元。如果正被编程的特定页的存储器单元均不具有大于Vvstart的阈值电压,那么在步骤360中,使编程电压增加ΔVpgm1,且使编程计数器PC增加1。注意,在一些实施例中,可能优选地以不同于1的值来增加编程计数器,以便反映较大步长。举例来说,在较大步长比较小步长大两倍的情况下,循环计数器可增加值2。在步骤360之后,过程返回到步骤354,且施加下一编程脉冲。将重复步骤354-358,直到至少一个存储器单元具有大于Vvstart的阈值电压为止。 
注意,在一个实施例中,步骤358将使用不同的最小数目(不同于一个存储器单元)来测试是否存在阈值电压大于Vvstart的足够数目的存储器单元。所使用的数目依据实施方案而变化。然而,被测试的数目应为小于成功编程的所有存储器单元的数目。 
当在步骤358中判定一个或多于一个(或不同的最小数目)存储器单元具有大于Vvstart的阈值电压时,那么过程作为步骤374而继续,此时,相对于不同编程状态的各种检验电平来检验所有的存储器单元。在一个实施例中,步骤354-360的重复仅包含相对于Vvstart而检验存储器单元,以便发现阈值电压大于Vvstart的一个或多于一个(或另一最小数目)的存储器单元。在发现一个或多于一个存储器单元的阈值电压大于Vvstart之后,相对于各种目标(或目标和粗略/精细检验电平,酌情依据实施方案)来检验所有存储器单元。举例来说,如果使用粗略/精细编程,那么将相对于各种编程状态的每一者的粗略/精细检验电平和最终目标检验电平来检验每一存储器单元(步骤374)。 
注意,可实施不同类型的粗略/精细算法,举例来说,有可能首先仅相对于某一期望状态的粗略电平而进行检验,并在第一单元已通过所述状态的粗略电平之后,开始相对于精细电平而进行检验。此外,如果同时编程多个电平,那么针对较高电平的粗略/精细编程可延期某一数目的编程脉冲。另一可能性是,在较低状态的粗略检验已检测出一个或多于一个单元通过所述较低状态粗略电平之后某一数目的脉冲,开始针对较高电平的粗略检验。使用上述方法,可使所需检验操作的总数目最小,从而减少所需的总编程时间。 
如果所有存储器单元均经检验已达到其既定目标电平(步骤376),那么所述过程完 成且状态设定为通过(步骤378)。在一些实施例中,如果少于所有存储器单元达到其既定目标,那么可成功地完成编程过程。举例来说,在一些实施例中,如果几乎所有存储器单元均达到其既定目标(例如,不多于预定数目的单元未达到其目标),那么所述过程成功。当使用误差校正进行读取时可处理尚未达到其目标的存储器单元,或在过分多的单元未能达到其目标的情况下,可在存储器阵列中其它地方对数据进行编程。如果并非所有的存储器单元均检验(很可能第一次执行步骤374),那么判定编程计数器是否小于20(或另一适当的值)。如果编程计数器处于20(或任何其它适当的值)或更大,那么已执行过分多的步骤且所述过程失败(步骤382)。如果编程计数器仍小于20(或任何其它适当的值),那么在步骤370中,编程电压步进ΔVpgm2,且编程计数器增加1。注意,在一些实施例中,编程计数器可能以不同于1的值增加以考虑步长差异。注意,ΔVpgm2是比ΔVpgm1小的步长。因此,与步骤370-372的重复期间编程电压Vpgm的较缓慢升高相比,在步骤354-360的重复期间,编程电压Vpgm增加得快得多。在步骤372中,施加另一编程脉冲。在步骤374中,如上所述检验存储器单元,且过程在步骤376处继续。 
参看图15A、15B和15C描述存储器单元的行为。图15A展示二位多状态单元的阈值电压分布2、10、12和14。然而,注意,本文描述的技术适用于存储多于两个和两个以下数据位的存储器单元。图15A还描绘读取检验点Vr1和Vr2。读取检验点Vr1用于区分阈值电压分布10与12。读取检验点Vr2用于区分阈值电压分布12与14。可使用零伏来区分阈值电压分布2与10。图15A还将电压电平Vv1展示为阈值电压分布10的最低电压,且将Vmax1展示为阈值电压分布10的上限电压。 
图15B展示当页中不存在快速存储器单元时的经擦除的阈值电压分布2以及经编程的阈值电压分布402和404。在此情况下,检验电平Vv1表示最终目标检验电平,且可将零伏用作Vvstart。可以看到,在第一脉冲之后,阈值电压分布402从经擦除的电平上移某一程度;然而,仍没有存储器单元已达到Vvstart(0v),因此以第二脉冲继续进行编程,所述第二脉冲具有增加了增量ΔVpgm1的Vpgm。因此,阈值电压分布以接近ΔVpgm1的值上移。注意,此移动量可变化且很大程度上取决于初始Vpgm脉冲的振幅。在第二脉冲之后,分布404中的存储器单元的数目已达到Vvstart(0伏)以上的阈值电压。因此,Vpgm随后将以较小步长ΔVpgm2增加。 
图15c展示当存在快速存储器单元时的经擦除的阈值电压分布2和经编程的阈值电压分布410。在第一编程脉冲(例如,阈值电压分布410)之后,许多单元均具有大于 Vvstart(0伏)的阈值电压。一些存储器单元可能具有大于Vv1的阈值电压。因此,之后的编程脉冲的步长将等于ΔVpgm2以避免过编程。 
图16和17包含描绘结合粗略/精细编程而描述的技术的使用的曲线图。图16A、16B和16C描绘快速存储器单元的行为,所述快速存储器单元所具有的阈值电压通过同一脉冲中的过程和目标检验电平两者,使得存储器单元不进入精细模式。图17A、17B和17C描绘参与粗略和精细模式两者的较缓慢的存储器单元。图16A和17A描绘施加到正被编程的存储器单元的控制栅极的编程脉冲Vpgm。图16B和17B描绘用于正被编程的存储器单元的位线电压Vb1。图16C和17C描绘用于正被编程的存储器单元的阈值电压。 
参看图16A、16B和16C,描绘快速存储器单元。响应于开始于时间t0的第一脉冲,存储器单元的阈值电压升高到Vver3以上。注意,检验电平Vver3对应于图14的Vvstart。因此,包含此存储器单元的页被更缓慢地编程。由此,后续编程脉冲的量值将增加ΔVpgm2。在t1与t2之间,存储器单元的阈值电压升高到Vver2和Vver1两者以上。在t2处,位线电压将升高到Vinhibit以便抑制任何进一步的编程。注意,在一个实施例中,对于最低编程状态来说,Vver3可比Vver 2低0.2v到0.3v。 
关于图17的较缓慢的存储器单元,存储器单元的阈值电压将直到t2与t3之间的周期才升高到Vver3以上。因此,编程脉冲将在t3之前增加ΔVpgm1。因为页中的存储器单元中的阈值电压在t3时大于Vver3,所以增加值在t3时变化为ΔVpgm2,且后续脉冲的量值增加ΔVpgm2。存储器单元中的阈值电压在t3与t4之间升高到Vver2以上,因此,存储器单元进入精细编程阶段且位线在t4时升高到Vs。在t4与t5之间,阈值电压增加由于位线电压的增加且由于Vpgm增加值的减小的缘故而减缓。然而,在t4与t5之间,阈值电压确实变得大于Vver1;因此,阈值电压已达到其目标电平,且位线电压升高到Vinhibit以便在t5时抑制进一步的编程。 
注意,图16A和17A展示编程脉冲彼此邻近以使曲线图更易于阅读。然而,脉冲之间实际上存在时间间隔以为检验操作留余地。 
图18和19描述用于使用本文描述的技术来避免或减少过编程的另一实施例。此实施例涉及在一个或多于一个存储器单元达到Vver3电平之前初始设定一个或多于一个脉冲,且接着针对后续编程脉冲将编程电压量值重设为较低电平。此实施例还使用粗略/精细方法。图18A、18B和18C对应于快速存储器单元,而图19A、19B和19C对应于较缓慢的存储器单元。图18A和19A描绘编程脉冲Vpgm。图18B和19B描绘位线电压Vb1。图18C和19C描绘随着时间的过去而被编程的存储器单元的阈值电压。 
如图18A中所描绘,在时间t0时提供第一脉冲。判定此第一脉冲的量值,以使得没有或仅足够小数目的存储器单元将被过编程。图18C展示在时间t0与t1之间阈值电压变得高于Vver3的快速存储器单元。因此,将使用ΔVpgm2来较缓慢地编程存储器单元的相关联页。然而,在提供任何进一步的脉冲之前,使Vpgm的量值降低(例如)0.3-0.5V的值。因此,图18A展示开始于t1的脉冲的量值低于开始于t0的脉冲的量值。在t1之后,每一后续脉冲均增加ΔVpgm2。在t1与t2之间,存储器单元的阈值电压升高到高于Vver1的电平;因此,位线在t2时升高到Vinhibit(见图18B)。 
图19A展示存储器单元更缓慢地编程的情况。因此,存储器单元直到t2与t3之间的周期才使其阈值电压达到Vver3。因此,在t3之前,脉冲增加了ΔVpgm1。在t3之后,Vpgm的增加值将变为ΔVpgm2。另外,脉冲的量值将被重设为较低值。举例来说,图19a展示开始于t3的脉冲低于开始于t2的脉冲。t3之后的额外脉冲的增加值为ΔVpgm2。在t4时,检验出阈值电压大于Vver2但小于Vver1,因此,存储器单元进入精细编程阶段且位线电压升高到Vs。在t5时,检验出存储器单元的阈值电压大于Vver1;因此,通过使位线电压升高到Vinhibit来抑制对存储器单元进行进一步编程。 
已出于说明和描述的目的呈现了对本发明的以上详细描述。不希望所述详细描述是详尽的或将本发明限于所揭示的精确形式。根据上述教示,许多修改和变化是可能的。选择所描述的实施例是为了最佳地阐释本发明的原理及其实际应用,以从而使所属领域的其他技术人员能够最佳地将本发明用于各种实施例中,且作出适于所预期的特定用途的各种修改。希望本发明的范围由所附权利要求书界定。 

Claims (13)

1.一种非易失性存储系统,其包括:
一组非易失性存储元件;和
与所述组非易失性存储元件进行通信的一个或多于一个控制电路,所述一个或多于一个控制电路:
(a)将第一编程脉冲施加到所述组非易失性存储元件,所述第一编程脉冲具有一量值,所述量值设定得足够低以使得所述组非易失性存储元件中没有或几乎没有非易失性存储元件会在所述第一编程脉冲期间被过编程;
(b)判定所述组非易失性存储元件是否包含一个或多于一个快速编程非易失性存储元件,其中所述判定所述组非易失性存储元件是否包含一个或多于一个快速编程非易失性存储元件包含判定所述组非易失性存储元件中的任一者是否已达到用于测量快速编程非易失性存储元件的阈值电压;
(c)如果所述组非易失性存储元件包含一个或多于一个快速编程非易失性存储元件,那么通过将第一组编程脉冲施加到所述组非易失性存储元件的每一连续非易失性存储元件来编程所述组非易失性存储元件,其中所述第一组编程脉冲的量值增加了第一增量;和
(d)如果所述组非易失性存储元件不包含一个或多于一个快速编程非易失性存储元件,那么通过将第二组编程脉冲施加到所述组非易失性存储元件的每一连续非易失性存储元件来编程所述组非易失性存储元件,其中所述第二组编程脉冲的量值增加了第二增量,其中所述第二增量大于所述第一增量。
2.根据权利要求1所述的非易失性存储系统,其中:
如果所述组非易失性存储元件不包含一个或多个快速编程非易失性存储元件,那么所述一个或多于一个控制电路使用所述第二组编程脉冲来编程所述组非易失性存储元件,直到所述组非易失性存储元件的子集已达到用于测量快速编程非易失性存储元件的所述阈值电压为止,且使用所述第二组编程脉冲来编程所述组非易失性存储元件,直到所述组非易失性存储元件中的所有或几乎所有非易失性存储元件均达到一个或多于一个目标电平为止。
3.根据权利要求1所述的非易失性存储系统,其中:
所述组非易失性存储元件是NAND多状态快闪存储器装置。
4.一种用于编程非易失性存储器的方法,其包括:
将编程电压信号施加到非易失性存储元件的控制栅极;
如果最小数目的所述非易失性存储元件已被编程达到至少第一电平,那么继续使所述编程电压信号增加较小增量,并将经增加的所述编程电压信号施加到所述非易失性存储元件的所述控制栅极,直到所述非易失性存储元件已达到一个或多于一个目标电平为止,所述最小数目的所述非易失性存储元件少于正被编程的所有非易失性存储元件;和
如果所述最小数目的所述非易失性存储元件尚未被编程达到至少所述第一电平,那么继续使所述编程电压信号增加较大增量,并将经增加的所述编程电压信号施加到所述非易失性存储元件的所述控制栅极,直到所述最小数目的所述非易失性存储元件已被编程达到至少所述第一电平为止,然后继续使所述编程电压信号增加所述较小增量,并将经增加的所述编程电压信号施加到所述非易失性存储元件的所述控制栅极,直到所述非易失性存储元件中的所有或几乎所有非易失性存储元件已达到一个或多于一个目标电平为止。
5.根据权利要求4所述的方法,其中:
所述继续使所述编程电压信号增加所述较小增量并将经增加的所述编程电压信号施加到所述非易失性存储元件的所述控制栅极直到所述所有或几乎所有非易失性存储元件已达到一个或多于一个目标电平为止包括执行粗略编程模式和精细编程模式;
所述粗略编程模式包含使用较低位线电压;且
所述精细编程模式包含使用较高位线电压。
6.根据权利要求4所述的方法,其中:
所述继续使所述编程电压信号增加所述较小增量包含施加一组脉冲,所述组脉冲具有增加了所述较小增量的量值;且
所述继续使所述编程电压信号增加所述较大增量包含施加一组脉冲,所述组脉冲具有增加了所述较大增量的量值。
7.根据权利要求4所述的方法,其中:
所述继续使所述编程电压信号增加所述较小增量包含降低所述编程电压信号;和
随后使所述编程电压信号升高所述较小增量。
8.根据权利要求4所述的方法,其中:
所述最小数目的所述非易失性存储元件等于一个非易失性存储元件。
9.根据权利要求4所述的方法,其中:
所述非易失性存储元件是多状态快闪存储器装置。
10.一种用于编程非易失性存储器的方法,其包括:
将第一编程脉冲施加到一组非易失性存储元件,所述第一编程脉冲具有一量值,所述量值设定得足够低以使得所述组非易失性存储元件中没有或几乎没有非易失性存储元件会在所述第一编程脉冲期间被过编程;
判定所述组非易失性存储元件是否包含一个或多于一个快速编程非易失性存储元件,其中所述判定所述组非易失性存储元件是否包含一个或多于一个快速编程非易失性存储元件包含判定所述组非易失性存储元件中的任一者是否已达到用于测量快速编程非易失性存储元件的阈值电压;
如果所述组非易失性存储元件包含一个或多于一个快速编程非易失性存储元件,那么通过将第一组编程脉冲施加到所述组非易失性存储元件的每一连续非易失性存储元件来编程所述组非易失性存储元件,其中所述第一组编程脉冲的量值增加了第一增量;和
如果所述组非易失性存储元件不包含一个或多于一个快速编程非易失性存储元件,那么通过将第二组编程脉冲施加到所述组非易失性存储元件的每一连续非易失性存储元件来编程所述组非易失性存储元件,其中所述第二组编程脉冲的量值增加了第二增量,其中所述第二增量大于所述第一增量。
11.根据权利要求10所述的方法,其中:
如果所述组非易失性存储元件不包含一个或多于一个快速编程非易失性存储元件,那么在将所述第二组编程脉冲施加到所述组非易失性存储元件之后,将第三组编程脉冲施加到所述组非易失性存储元件;且
所述第三组编程脉冲的量值增加了所述较小增量。
12.根据权利要求11所述的方法,其中:
所述组非易失性存储元件是多状态快闪存储器装置。
13.根据权利要求12所述的方法,其中:
所述通过将第一组编程脉冲施加到所述组非易失性存储元件来编程所述组非易失性存储元件包含执行粗略编程模式和精细编程模式。
CN2005800392083A 2004-11-16 2005-11-03 非易失性存储系统和用于编程非易失性存储器的方法 Active CN101095199B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/990,702 US7092290B2 (en) 2004-11-16 2004-11-16 High speed programming system with reduced over programming
US10/990,702 2004-11-16
PCT/US2005/039735 WO2006055256A1 (en) 2004-11-16 2005-11-03 High speed programming system with reduced over programming

Publications (2)

Publication Number Publication Date
CN101095199A CN101095199A (zh) 2007-12-26
CN101095199B true CN101095199B (zh) 2012-01-11

Family

ID=35788987

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005800392083A Active CN101095199B (zh) 2004-11-16 2005-11-03 非易失性存储系统和用于编程非易失性存储器的方法

Country Status (9)

Country Link
US (1) US7092290B2 (zh)
EP (1) EP1812932B1 (zh)
JP (1) JP4857278B2 (zh)
KR (2) KR20070101240A (zh)
CN (1) CN101095199B (zh)
AT (1) ATE492882T1 (zh)
DE (1) DE602005025522D1 (zh)
TW (1) TWI301981B (zh)
WO (1) WO2006055256A1 (zh)

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8511558B2 (en) * 2005-04-12 2013-08-20 Sandisk Il Ltd. Smartcard power management
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
US7230854B2 (en) * 2005-08-01 2007-06-12 Sandisk Corporation Method for programming non-volatile memory with self-adjusting maximum program loop
US20070266296A1 (en) * 2006-05-15 2007-11-15 Conley Kevin M Nonvolatile Memory with Convolutional Coding
US7840875B2 (en) * 2006-05-15 2010-11-23 Sandisk Corporation Convolutional coding methods for nonvolatile memory
KR100771883B1 (ko) 2006-09-06 2007-11-01 삼성전자주식회사 멀티-레벨 불휘발성 메모리 장치 및 프로그램 방법
KR100771882B1 (ko) * 2006-09-06 2007-11-01 삼성전자주식회사 멀티-레벨 불휘발성 메모리 장치의 프로그램 방법
US7453731B2 (en) * 2006-09-12 2008-11-18 Sandisk Corporation Method for non-volatile memory with linear estimation of initial programming voltage
US7606091B2 (en) 2006-09-12 2009-10-20 Sandisk Corporation Method for non-volatile memory with reduced erase/write cycling during trimming of initial programming voltage
US7606077B2 (en) 2006-09-12 2009-10-20 Sandisk Corporation Non-volatile memory with reduced erase/write cycling during trimming of initial programming voltage
EP2383748A3 (en) 2006-09-12 2012-03-28 SanDisk Corporation Non-volatile memory and method for linear estimation of initial programming voltage
US7599223B2 (en) * 2006-09-12 2009-10-06 Sandisk Corporation Non-volatile memory with linear estimation of initial programming voltage
US7805663B2 (en) * 2006-09-28 2010-09-28 Sandisk Corporation Methods of adapting operation of nonvolatile memory
US7904783B2 (en) * 2006-09-28 2011-03-08 Sandisk Corporation Soft-input soft-output decoder for nonvolatile memory
US20080092015A1 (en) * 2006-09-28 2008-04-17 Yigal Brandman Nonvolatile memory with adaptive operation
US7818653B2 (en) * 2006-09-28 2010-10-19 Sandisk Corporation Methods of soft-input soft-output decoding for nonvolatile memory
US7450426B2 (en) * 2006-10-10 2008-11-11 Sandisk Corporation Systems utilizing variable program voltage increment values in non-volatile memory program operations
US7474561B2 (en) * 2006-10-10 2009-01-06 Sandisk Corporation Variable program voltage increment values in non-volatile memory program operations
WO2008045805A1 (en) * 2006-10-10 2008-04-17 Sandisk Corporation Variable program voltage increment values in non-volatile memory program operations
US7558109B2 (en) * 2006-11-03 2009-07-07 Sandisk Corporation Nonvolatile memory with variable read threshold
US8001441B2 (en) * 2006-11-03 2011-08-16 Sandisk Technologies Inc. Nonvolatile memory with modulated error correction coding
US7904780B2 (en) * 2006-11-03 2011-03-08 Sandisk Corporation Methods of modulating error correction coding
US7904788B2 (en) * 2006-11-03 2011-03-08 Sandisk Corporation Methods of varying read threshold voltage in nonvolatile memory
US7535763B2 (en) * 2006-11-16 2009-05-19 Sandisk Corporation Controlled boosting in non-volatile memory soft programming
US7697338B2 (en) * 2006-11-16 2010-04-13 Sandisk Corporation Systems for controlled boosting in non-volatile memory soft programming
JP2008140488A (ja) * 2006-12-04 2008-06-19 Toshiba Corp 半導体記憶装置
US7570520B2 (en) * 2006-12-27 2009-08-04 Sandisk Corporation Non-volatile storage system with initial programming voltage based on trial
US7551482B2 (en) * 2006-12-27 2009-06-23 Sandisk Corporation Method for programming with initial programming voltage based on trial
US7564715B2 (en) * 2007-02-20 2009-07-21 Sandisk Corporation Variable initial program voltage magnitude for non-volatile storage
US7656709B2 (en) * 2007-05-03 2010-02-02 Micron Technology, Inc. NAND step up voltage switching method
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
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
US7978520B2 (en) 2007-09-27 2011-07-12 Sandisk Corporation Compensation of non-volatile memory chip non-idealities by program pulse adjustment
KR101344347B1 (ko) * 2008-01-16 2013-12-24 삼성전자주식회사 프로그램 시작 전압을 조절하는 불휘발성 메모리 장치,그것의 프로그램 방법, 그리고 그것을 포함하는 메모리시스템
US7916544B2 (en) * 2008-01-25 2011-03-29 Micron Technology, Inc. Random telegraph signal noise reduction scheme for semiconductor memories
CN102027548B (zh) * 2008-04-29 2014-01-01 桑迪士克以色列有限公司 具有用于编程、验证和读取的参考电压电平的适应性设置的非易失性多电平存储器
KR20090120205A (ko) 2008-05-19 2009-11-24 삼성전자주식회사 플래시 메모리 장치 및 그것의 동작 방법
JP2009301679A (ja) * 2008-06-17 2009-12-24 Vantel Corp 不揮発性半導体記憶装置とその書き込み方法
US7800956B2 (en) * 2008-06-27 2010-09-21 Sandisk Corporation Programming algorithm to reduce disturb with minimal extra time penalty
US8014209B2 (en) 2008-07-02 2011-09-06 Sandisk Technologies Inc. Programming and selectively erasing non-volatile storage
US8254177B2 (en) * 2008-10-24 2012-08-28 Sandisk Technologies Inc. Programming non-volatile memory with variable initial programming pulse
US8174895B2 (en) * 2009-12-15 2012-05-08 Sandisk Technologies Inc. Programming non-volatile storage with fast bit detection and verify skip
CN102129886B (zh) * 2010-01-12 2013-07-17 中芯国际集成电路制造(上海)有限公司 电阻随机存储器的初始化以及设置、复位方法
KR101653262B1 (ko) 2010-04-12 2016-09-02 삼성전자주식회사 멀티-비트 메모리의 프로그램 방법 및 그것을 이용한 데이터 저장 시스템
US8351276B2 (en) 2010-07-13 2013-01-08 Freescale Semiconductor, Inc. Soft program of a non-volatile memory block
US8472257B2 (en) 2011-03-24 2013-06-25 Sandisk Technologies Inc. Nonvolatile memory and method for improved programming with reduced verify
JP2011204356A (ja) * 2011-07-19 2011-10-13 Toshiba Corp 不揮発性半導体記憶装置
US8582381B2 (en) 2012-02-23 2013-11-12 SanDisk Technologies, Inc. Temperature based compensation during verify operations for non-volatile storage
WO2013134890A1 (en) * 2012-03-13 2013-09-19 Micron Technology, Inc. Nonconsecutive sensing of multilevel memory cells
US9053819B2 (en) 2012-07-11 2015-06-09 Sandisk Technologies Inc. Programming method to tighten threshold voltage width with avoiding program disturb
US9225356B2 (en) 2012-11-12 2015-12-29 Freescale Semiconductor, Inc. Programming a non-volatile memory (NVM) system having error correction code (ECC)
US8885416B2 (en) 2013-01-30 2014-11-11 Sandisk Technologies Inc. Bit line current trip point modulation for reading nonvolatile storage elements
KR102053953B1 (ko) * 2013-02-04 2019-12-11 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 프로그램 방법
US9105360B2 (en) * 2013-03-07 2015-08-11 Seagate Technology Llc Forming a characterization parameter of a resistive memory element
KR20150091684A (ko) * 2014-02-03 2015-08-12 에스케이하이닉스 주식회사 반도체 장치
US10014063B2 (en) * 2015-10-30 2018-07-03 Sandisk Technologies Llc Smart skip verify mode for programming a memory device
TWI596477B (zh) * 2015-12-18 2017-08-21 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
JP6833873B2 (ja) 2016-05-17 2021-02-24 シリコン ストーリッジ テクノロージー インコーポレイテッドSilicon Storage Technology, Inc. 不揮発性メモリアレイを使用したディープラーニングニューラルネットワーク分類器
US10248499B2 (en) 2016-06-24 2019-04-02 Sandisk Technologies Llc Non-volatile storage system using two pass programming with bit error control
KR102683414B1 (ko) * 2017-01-26 2024-07-10 삼성전자주식회사 비휘발성 메모리 장치 및 그것의 프로그램 방법
US10249382B2 (en) * 2017-08-22 2019-04-02 Sandisk Technologies Llc Determination of fast to program word lines in non-volatile memory
US10699779B2 (en) 2017-11-29 2020-06-30 Silicon Storage Technology, Inc. Neural network classifier using array of two-gate non-volatile memory cells
US10748630B2 (en) 2017-11-29 2020-08-18 Silicon Storage Technology, Inc. High precision and highly efficient tuning mechanisms and algorithms for analog neuromorphic memory in artificial neural networks
US11087207B2 (en) 2018-03-14 2021-08-10 Silicon Storage Technology, Inc. Decoders for analog neural memory in deep learning artificial neural network
US10803943B2 (en) 2017-11-29 2020-10-13 Silicon Storage Technology, Inc. Neural network classifier using array of four-gate non-volatile memory cells
US10522226B2 (en) * 2018-05-01 2019-12-31 Silicon Storage Technology, Inc. Method and apparatus for high voltage generation for analog neural memory in deep learning artificial neural network
US10910075B2 (en) 2018-11-13 2021-02-02 Sandisk Technologies Llc Programming process combining adaptive verify with normal and slow programming speeds in a memory device
US10607702B1 (en) * 2018-12-03 2020-03-31 Micron Technology, Inc. Responding to power loss
US11409352B2 (en) 2019-01-18 2022-08-09 Silicon Storage Technology, Inc. Power management for an analog neural memory in a deep learning artificial neural network
US10748622B2 (en) 2019-01-21 2020-08-18 Sandisk Technologies Llc State adaptive predictive programming
US11023559B2 (en) 2019-01-25 2021-06-01 Microsemi Soc Corp. Apparatus and method for combining analog neural net with FPGA routing in a monolithic integrated circuit
US10720217B1 (en) 2019-01-29 2020-07-21 Silicon Storage Technology, Inc. Memory device and method for varying program state separation based upon frequency of use
US11423979B2 (en) 2019-04-29 2022-08-23 Silicon Storage Technology, Inc. Decoding system and physical layout for analog neural memory in deep learning artificial neural network
US10839928B1 (en) 2019-05-16 2020-11-17 Sandisk Technologies Llc Non-volatile memory with countermeasure for over programming
US11081198B2 (en) 2019-05-16 2021-08-03 Sandisk Technologies Llc Non-volatile memory with countermeasure for over programming
US11049578B1 (en) 2020-02-19 2021-06-29 Sandisk Technologies Llc Non-volatile memory with program verify skip
CN112201293B (zh) * 2020-10-18 2023-12-15 本征信息技术(苏州)有限公司 多层单元非易失性存储器的一种编程方法
US11532370B1 (en) 2021-05-25 2022-12-20 Sandisk Technologies Llc Non-volatile memory with fast multi-level program verify
US11557346B2 (en) 2021-06-02 2023-01-17 Western Digital Technologies, Inc. Self-adaptive program pulse width for programming 3D NAND memory
US12051473B2 (en) 2022-06-28 2024-07-30 Western Digital Technolologies, Inc. Non-volatile memory with precise programming

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5220531A (en) * 1991-01-02 1993-06-15 Information Storage Devices, Inc. Source follower storage cell and improved method and apparatus for iterative write for integrated circuit analog signal recording and playback
WO1998028745A1 (en) * 1996-12-20 1998-07-02 Intel Corporation Nonvolatile writeable memory with fast programming capability
CN1282077A (zh) * 1999-07-22 2001-01-31 三星电子株式会社 高密度“或非”型闪速存储装置及其编程方法
CN1492446A (zh) * 2002-09-06 2004-04-28 夏普株式会社 非易失性半导体存储装置及重写方法
CN1494720A (zh) * 2001-04-09 2004-05-05 �Ƚ�΢װ�ù�˾ 闪存阵列中的核心存储单元的软程序及软程序校验
US20040174744A1 (en) * 2001-02-26 2004-09-09 Geoffrey Gongwer Non-volatile memory with improved programming and method therefor

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960002006B1 (ko) * 1991-03-12 1996-02-09 가부시끼가이샤 도시바 2개의 기준 레벨을 사용하는 기록 검증 제어기를 갖는 전기적으로 소거 가능하고 프로그램 가능한 불휘발성 메모리 장치
US5712180A (en) * 1992-01-14 1998-01-27 Sundisk Corporation EEPROM with split gate source side injection
US6222762B1 (en) * 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US5313421A (en) * 1992-01-14 1994-05-17 Sundisk Corporation EEPROM with split gate source side injection
US5412601A (en) * 1992-08-31 1995-05-02 Nippon Steel Corporation Non-volatile semiconductor memory device capable of storing multi-value data in each memory cell
KR0169267B1 (ko) * 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
JP3476952B2 (ja) * 1994-03-15 2003-12-10 株式会社東芝 不揮発性半導体記憶装置
JP3730272B2 (ja) * 1994-09-17 2005-12-21 株式会社東芝 不揮発性半導体記憶装置
EP0704854B1 (en) * 1994-09-30 1999-12-01 STMicroelectronics S.r.l. Memory device having error detection and correction function, and methods for writing and erasing the memory device
JPH09251782A (ja) * 1996-03-14 1997-09-22 Fujitsu Ltd 半導体記憶装置
US5712815A (en) * 1996-04-22 1998-01-27 Advanced Micro Devices, Inc. Multiple bits per-cell flash EEPROM capable of concurrently programming and verifying memory cells and reference cells
US5764568A (en) 1996-10-24 1998-06-09 Micron Quantum Devices, Inc. Method for performing analog over-program and under-program detection for a multistate memory cell
JP3481817B2 (ja) * 1997-04-07 2003-12-22 株式会社東芝 半導体記憶装置
JP2000040382A (ja) 1998-07-23 2000-02-08 Sony Corp 不揮発性半導体記憶装置およびそのデータ書き込み方法
US6151248A (en) * 1999-06-30 2000-11-21 Sandisk Corporation Dual floating gate EEPROM cell array with steering gates shared by adjacent cells
TW561279B (en) * 1999-07-02 2003-11-11 Asml Netherlands Bv Reflector for reflecting radiation in a desired wavelength range, lithographic projection apparatus containing the same and method for their preparation
US6301161B1 (en) * 2000-04-25 2001-10-09 Winbond Electronics Corporation Programming flash memory analog storage using coarse-and-fine sequence
JP3940544B2 (ja) * 2000-04-27 2007-07-04 株式会社東芝 不揮発性半導体メモリのベリファイ方法
JP3631463B2 (ja) * 2001-12-27 2005-03-23 株式会社東芝 不揮発性半導体記憶装置
US6424566B1 (en) * 2001-02-08 2002-07-23 Advanced Micro Devices, Inc. Program reconnaissance to eliminate variations in vt distributions of multi-level cell flash memory designs
US6532172B2 (en) * 2001-05-31 2003-03-11 Sandisk Corporation Steering gate and bit line segmentation in non-volatile memories
US6535428B2 (en) * 2001-06-14 2003-03-18 Stmicroelectronics S.R.L. Sensing circuit for memory cells
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
US6529412B1 (en) * 2002-01-16 2003-03-04 Advanced Micro Devices, Inc. Source side sensing scheme for virtual ground read of flash eprom array with adjacent bit precharge
JP4050555B2 (ja) * 2002-05-29 2008-02-20 株式会社東芝 不揮発性半導体記憶装置およびそのデータ書き込み方法
JP4181363B2 (ja) * 2002-08-29 2008-11-12 スパンション エルエルシー 不揮発性半導体記憶装置及びデータ書き込み方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5220531A (en) * 1991-01-02 1993-06-15 Information Storage Devices, Inc. Source follower storage cell and improved method and apparatus for iterative write for integrated circuit analog signal recording and playback
WO1998028745A1 (en) * 1996-12-20 1998-07-02 Intel Corporation Nonvolatile writeable memory with fast programming capability
CN1282077A (zh) * 1999-07-22 2001-01-31 三星电子株式会社 高密度“或非”型闪速存储装置及其编程方法
US20040174744A1 (en) * 2001-02-26 2004-09-09 Geoffrey Gongwer Non-volatile memory with improved programming and method therefor
CN1494720A (zh) * 2001-04-09 2004-05-05 �Ƚ�΢װ�ù�˾ 闪存阵列中的核心存储单元的软程序及软程序校验
CN1492446A (zh) * 2002-09-06 2004-04-28 夏普株式会社 非易失性半导体存储装置及重写方法

Also Published As

Publication number Publication date
US7092290B2 (en) 2006-08-15
CN101095199A (zh) 2007-12-26
JP2008521153A (ja) 2008-06-19
KR20070101240A (ko) 2007-10-16
WO2006055256A1 (en) 2006-05-26
US20060104120A1 (en) 2006-05-18
JP4857278B2 (ja) 2012-01-18
ATE492882T1 (de) 2011-01-15
DE602005025522D1 (de) 2011-02-03
TW200632922A (en) 2006-09-16
KR100909721B1 (ko) 2009-07-29
KR20090038495A (ko) 2009-04-20
TWI301981B (en) 2008-10-11
EP1812932A1 (en) 2007-08-01
EP1812932B1 (en) 2010-12-22

Similar Documents

Publication Publication Date Title
CN101095199B (zh) 非易失性存储系统和用于编程非易失性存储器的方法
CN101095197B (zh) 浮动栅极之间的耦合效应减小的nand电可擦除可编程只读存储器
CN100550205C (zh) 非易失性存储器系统和编程非易失性存储器的方法
CN102187399B (zh) 使用字线耦合的用于存储器的多趟次编程
CN100589202C (zh) 多级单元快闪存储器中较高级状态的较快编程
CN102385924B (zh) 借助非易失性存储器的循环的开始编程电压偏移
CN100590742C (zh) 用于非易失性存储器的编程控制的双调谐管理方法
CN101356587B (zh) 用于对具有减少的编程干扰的nand类型的非易失性存储器进行编程的以末为先模式
CN101057299B (zh) 对非易失性存储器的并行编程
CN102160119B (zh) 非易失性存储器中感测期间的基于数据状态的温度补偿
CN101268519B (zh) 用自调整最大程序循环对非易失性存储器进行编程
CN101689400B (zh) 基于阈值电压分布的动态检验
CN101584003B (zh) 非易失性存储器编程操作中的可变编程电压增量值
CN101371315B (zh) 对显示位线耦合的非易失性存储器进行受控编程的方法
CN101796591B (zh) 使用针对改进感测的不同参考电平的非易失性存储器中的粗略/精细编程验证
CN101199024B (zh) 利用改变字线条件来补偿较慢擦除的存储器单元以擦除非易失性存储器
CN103814408A (zh) 用于非易失性存储器的部分编程块的读取补偿
CN101006519A (zh) 非易失性存储器的可变编程
CN101361138A (zh) 以对非选定字线的高效控制来读取非易失性存储器
JP4879168B2 (ja) 非揮発性メモリのプログラミングを制御するためのブースティング
CN101421794A (zh) 减少读取期间的编程干扰的影响
JP4820879B2 (ja) 非選択ワード線を効果的に制御して不揮発性メモリを読み出す方法

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
ASS Succession or assignment of patent right

Owner name: SANDISK TECHNOLOGIES, INC.

Free format text: FORMER OWNER: SANDISK CORPORATION

Effective date: 20120913

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

Effective date of registration: 20120913

Address after: American Texas

Patentee after: Sandisk Corp.

Address before: American California

Patentee before: Sandisk Corp.

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 Corp.