CN101779250B - 编程脉冲持续期的智能控制 - Google Patents

编程脉冲持续期的智能控制 Download PDF

Info

Publication number
CN101779250B
CN101779250B CN200880100547.1A CN200880100547A CN101779250B CN 101779250 B CN101779250 B CN 101779250B CN 200880100547 A CN200880100547 A CN 200880100547A CN 101779250 B CN101779250 B CN 101779250B
Authority
CN
China
Prior art keywords
memory device
volatile memory
programming
verification operation
repetition
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
CN200880100547.1A
Other languages
English (en)
Other versions
CN101779250A (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
Priority claimed from US11/766,580 external-priority patent/US7580290B2/en
Priority claimed from US11/766,583 external-priority patent/US7630249B2/en
Application filed by SanDisk Corp filed Critical SanDisk Corp
Publication of CN101779250A publication Critical patent/CN101779250A/zh
Application granted granted Critical
Publication of CN101779250B publication Critical patent/CN101779250B/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/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/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/562Multilevel memory programming aspects
    • G11C2211/5621Multilevel programming verification

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Non-Volatile Memory (AREA)

Abstract

为了编程一组非易失性存储元件,将一组编程脉冲施加到非易失性存储元件的控制栅极(或其他端)。编程脉冲具有恒定的脉冲宽度和增大的幅度,直到达到最大电压。在该点处,编程脉冲的幅度停止增大,并且以在验证操作之间提供编程信号的改变的时间持续期的方式来施加编程脉冲。在一个实施例中,例如,在脉冲达到最大幅度之后,增大脉冲宽度。在另一实施例中,在脉冲达到最大幅度之后,在验证操作之间施加多个编程脉冲。

Description

编程脉冲持续期的智能控制
技术领域
本发明涉及非易失性存储的技术。
背景技术
半导体存储器变得更加普遍地用于各种各样的电子设备。例如,非易失性半导体存储器用于蜂窝电话、数字照相机、个人数字助理、移动计算设备、非移动计算设备、和其他设备中。电可擦除可编程只读存储器(EEPROM)和闪存存储器属于最普遍的非易失性半导体存储器。
EEPROM和闪存存储器两者都利用位于半导体衬底中的沟道区域上方且与该沟道区域绝缘的浮置栅极。浮置栅极位于源极和漏极区域之间。控制栅极被提供在浮置栅极之上且与该浮置栅极绝缘。由保留在浮置栅极上的电荷量来控制晶体管的阈值电压。也就是说,在晶体管被导通以使得它的源极和漏极之间导电之前必须施加到控制栅极的最小电压量,由浮置栅极上的电荷水平控制。从而,通过改变浮置栅极上的电荷水平以改变阈值电压,能够编程和/或擦除存储器单元(其能够包括一个或多个晶体管)。
每个存储器单元能够存储数据(模拟或数字)。当存储一个比特的数字数据(称为二进制存储器单元)时,将存储器单元的可能的阈值电压划分为赋以逻辑数据“1”和“0”的两个范围。在NAND(与非)类型的闪存存储器的一个示例中,在擦除存储器单元之后,阈值电压为负,并被定义为逻辑“1”。在编程之后,阈值电压为正,并被定义为逻辑“0”。当阈值电压为负并且通过将0伏施加到控制栅极来尝试读取时,存储器单元将导通以表示正在存储逻辑1。当阈值电压为正并且通过将0伏施加到控制栅极来尝试读取操作时,存储器单元将不导通,这表示存储逻辑0。
存储器单元还能够存储多级别信息(被称为多状态存储器)。在存储多级别数据的情况下,将可能的阈值电压的范围划分为数据级别的数目。例如,如果存储四个级别的信息,则将存在赋至数据值“11”、“10”、“01”和“00”的四个阈值电压范围。在NAND类型的存储器的一个示例中,在擦除操作之后的阈值电压为负并被定义为“11”。正阈值电压用于“10”、“01”和“00”的状态。如果在每个存储器单元中存储八个级别的信息(或状态)(例如,用于三比特的数据),则将存在赋至数据值“000”、“001”、“010”、“011”、“100”、“101”、“110”和“111”的八个阈值电压范围。编程到存储器单元中的数据和存储器单元的阈值电压电平之间的特定关系取决于针对存储器单元所采用的数据编码方案。例如,通过引用将其全部内容合并于此的美国专利No.6222762和美国专利申请公开No.2004/0255090两者描述了针对多状态闪存存储器单元的各种各样的数据编码方案。在一个实施例中,使用格雷(Gray)码赋值来将数据值赋至阈值电压范围,使得如果浮置栅极的阈值电压错误地移位到它的相邻物理状态,则仅仅一个比特将受到影响。在一些实施例中,能够针对不同的字线改变数据编码方案,能够随着时间改变数据编码方案,或者能够反转针对随机字线的数据比特来减小数据样式敏感性和存储器单元上的均匀磨损(even wear)。能够使用不同的编码方案。
当编程EEPROM或诸如NAND闪存存储器设备之类的闪存存储器设备时,典型地,将编程电压施加到控制栅极,并且位线接地。来自沟道的电子注入到浮置栅极。当电子在浮置栅极中累积时,浮置栅极变得充负电,并且存储器单元的阈值电压升高,使得存储器单元处于被编程的状态中。能够在名称为“Source Side Self Boosting Technique For Non-Volatile Memory”的美国专利6859397和名称为“Detecting Over Programmed Memory”的美国专利申请公开2005/0024939中找到关于编程的更多信息,通过引用这两者,将其全部内容合并于此。
典型地,在编程操作期间施加到控制栅极的编程电压被作为一系列脉冲施加。在许多实现方式中,随着每个相继的脉冲,以预定的步长来增大脉冲的幅度。
因为多状态存储器单元具有可能的阈值电压的多个范围,所以将需要把一些存储器单元编程到比二进制存储器单元更高的阈值电压。需要更大幅度编程脉冲来将存储器单元编程到更高的阈值电压。另外,由于技术规模达到更精细的几何图形,所以保持相同的单元耦合(coupling)比例可能更加困难;从而,对于编程脉冲要求更大的电压来达到相同的编程效果。然而,编程脉冲的电压由许多因素限制,包括存储器芯片上设计电荷泵的实际限制以及结和氧化物的击穿。
从而,尽管存在对于更高的电压编程脉冲的需要,但是存在对能够达到的最大电压的限制。
发明内容
在此描述的技术是关于用于控制由存储器单元经过的编程脉冲的持续期的智能方案。例如,在编程信号达到了它的最大电压但是仍然存在还没有完成编程的存储器单元的情况下,用于控制由一个或多个存储器单元经历的编程脉冲的持续期的智能方案能够用来继续有效的编程。用于控制由存储器单元经历的编程脉冲的持续期的智能方案的一个示例包括使用更宽的编程脉冲。另一示例,在验证操作之间使用多个连续的编程脉冲。也能够使用用于控制编程脉冲的持续期的其他智能方案。另外,还能够在除了上述那些情况的情况下使用用于控制编程脉冲的持续期的智能方案。
一个实施例包括:将编程信号施加到非易失性存储元件。施加编程信号包括:在一个或多个脉冲达到最大幅度之前,将具有恒定脉冲宽度的编程脉冲施加到非易失性存储元件,以及在一个或多个脉冲达到最大幅度之后,在验证操作之间,将提供编程信号的改变的时间持续期的一个或多个编程脉冲施加到非易失性存储元件。
一个实施例包括:将编程信号作为一组脉冲施加到多个非易失性存储元件,以及执行一个或多个验证操作来确定是否已经适当地编程了非易失性存储元件。施加作为该组脉冲的编程信号包括:在一个或多个脉冲达到最大幅度之前,在验证操作之间施加具有增大的幅度和恒定的时间持续期的脉冲。施加作为该组脉冲的编程信号还包括:在一个或多个脉冲达到最大幅度之后,在验证操作之间改变编程信号的时间持续期。
一个实施例包括:将具有增大的幅度和恒定的脉冲宽度的编程脉冲施加到非易失性存储元件,直到一个或多个脉冲达到最大幅度。该过程还包括:在一个或多个脉冲达到最大幅度之后,以增大的脉冲宽度将编程脉冲施加到非易失性存储元件。
一个实施例包括:将具有增大的幅度和恒定的脉冲宽度的编程脉冲施加到非易失性存储元件,直到一个或多个脉冲达到最大幅度。该过程还包括:在一个或多个脉冲达到最大幅度之后,将一组或多组不同数目的编程脉冲施加到非易失性存储元件。每个组在验证操作之间施加。
一些示例实现方式包括多个非易失性存储元件和与非易失性存储元件通信的一个或多个管理电路。该一个或多个管理电路执行在此讨论的过程。
附图说明
图1是NAND串的顶视图。
图2是NAND串的等效电路图。
图3是非易失性存储器系统的框图。
图4是描述存储器阵列的一个实施例的框图。
图5是描述感测(sense)块的一个实施例的框图。
图6描绘了阈值电压分布的示例组并且描述了用于编程非易失性存储器的过程。
图7A-I示出了各种各样的阈值电压分布并且描述了用于编程非易失性存储器的过程。
图8是描绘编程非易失性存储器的顺序的一个示例的表格。
图9描绘了描述用于编程非易失性存储器的过程的一个实施例的流程图。
图10描绘了描述用于编程非易失性存储器元件的过程的一个实施例的流程图。
图11A描绘了描述用于增大编程电压的持续期的过程的一个实施例的流程图。
图11B描绘了描述用于增大编程电压的持续期的过程的一个实施例的流程图。
图11C描绘了描述用于增大编程电压的持续期的过程的一个实施例的流程图。
图12-13描绘了示例波形。
图14是为示例编程信号提供数据的表格。
图15-16描绘了示例波形。
具体实施方式
闪存存储器系统的一个示例使用了包括将多个晶体管串联并夹在两个选择栅极(select gate)之间布置的NAND结构。串联的晶体管和选择栅极被称作NAND串。图1是示出一个NAND串的顶视图。图2是其等效电路。在图1和2中描绘的NAND串包括串联并夹在第一(或漏极侧)选择栅极120和第二(或源极侧)选择栅极122之间的四个晶体管100、102、104和106。选择栅极120经由位线触点126将NAND串连接到位线。选择栅极122将NAND串连接到源极线128。通过将适当的电压施加到选择线SGD来控制选择栅极120。通过将适当的电压施加到选择线SGS来控制选择栅极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。
注意,尽管图1和2示出了NAND串中的四个存储器单元,但是仅仅将四个存储器单元的使用作为示例来提供。NAND串能够具有少于四个的存储器单元或者多于四个的存储器单元。例如,一些NAND串将包括8个存储器单元、16个存储器单元、32个存储器单元、64个存储器单元、128个存储器单元等。在此的讨论不限于NAND串中的存储器单元的任意具体数量。
使用NAND结构的闪存存储器系统的典型体系架构将包括多个NAND串。每个NAND串通过由选择线SGS控制的它的源极选择栅极来连接到源极线,并且通过由选择线SGD控制的它的漏极选择栅极来连接到它的相关联的位线。每条位线和经由位线触点连接到该位线的相应一个或多个NAND串包含存储器单元阵列的列。位线由多个NAND串共享。典型地,位线在垂直于字线的方向上在NAND串顶部伸展(run),并连接到一个或多个感测放大器。
NAND类型的闪存存储器的相关示例和它们的操作提供在下面的美国专利/专利申请中,其全部通过引用合并于此:美国专利No.5570315;美国专利No.5774397;美国专利No.6046935;美国专利No.6456528;以及美国专利公开No.US2003/0002348。除了NAND之外,在此的讨论还能够应用到其他类型的闪存存储器、以及其他类型的非易失性存储器。
除了NAND闪存存储器,还能够使用其他类型的非易失性存储设备。例如,所谓TANOS结构(由在硅衬底上的TaN-Al2O3-SiN-SiO2的堆叠层(stacked layer)组成),基本上是使用氮化物层(而取代浮置栅极)中的电荷捕获(trapping of charge)的存储器单元,也能够用于本发明。在Chan等于1987年3月发表在IEEE Electron Device Letters,Vol.EDL-8,No.3,pp.93-95的“A True Single-Transistor Oxide-Nitride-Oxide EEPROM Device”文章中描述了另一存储器单元。由硅氧化物、硅氮化物、和硅氧化物(“ONO”)形成的三层电介质夹在导电控制栅极和存储器单元沟道之上的半导电衬底的表面之间。通过将来自单元沟道的电子注入到氮化物中,在该氮化物中它们被捕获和存储在有限区域中,来编程该单元。该存储的电荷然后以可检测的方式来改变单元的部分沟道的阈值电压。通过将热空穴注入到氮化物中来擦除该单元。还参见Nozaki等于1991年4月发表在IEEE Journal of Solid-StateCircuits,Vol.26,No.4,pp.497-501的“A1-Mb EEPROM with MONOS MemoryCell for Semiconductor Disk Application”,其描述了在分裂栅极(split-gate)配置中的类似单元,在分裂栅极配置中,掺杂的多晶硅栅极延伸到部分的存储器单元沟道,来形成独立的选择晶体管。前述两篇文章通过引用将它们的全部内容合并于此。通过引用合并于此的由William D.Brown和Joe E.Brewer编写的在1998年由IEEE Press出版的“Nonvolatile SemiconductorMemory Technology”的1.2部分中提及的编程技术同样被描述在那个部分中,可应用于电介质电荷-捕获设备。也能够使用其他类型的存储器设备。
图3图示了存储器设备210,其具有用于并行读取和编程存储器单元页(例如,NAND多状态闪存存储器)的读/写电路。存储器设备210可以包括一个或多个存储器晶片(die)或芯片(chip)212。存储器晶片212包括存储器单元阵列(两维或三维)200、控制电路220、以及读/写电路230A和230B。在一个实施例中,在阵列的相对侧上,以对称的方式,实现通过各种各样的外围电路对存储器阵列200的接入,使得在每侧上的接入线和电路的密度减半。读/写电路230A和230B包括使得能够并行读取或编程存储器单元页的多个感测块300。存储器阵列200可通过经由行解码器240A和240B的字线、及通过经由列解码器242A和242B的位线寻址。在典型实施例中,控制器244被包括在作为一个或多个存储器晶片212的相同的存储器设备210(例如,可移除存储卡或封装)中。命令和数据经由线232在主机和控制器244之间、以及经由线234在控制器和一个或多个存储器晶片212之间传输。
控制电路220与读/写电路230A和230B合作来在存储器阵列200上执行存储器操作。控制电路220包括状态机222、芯片上(on-chip)地址解码器224、和功率控制模块226。状态机222提供存储器操作的芯片级控制。芯片上地址解码器224提供由主机或存储器控制器使用的地址和由解码器240A、240B、242A和242B使用的硬件地址之间的地址接口。功率控制模块226控制在存储器操作期间提供给字线和位线的功率和电压。在一个实施例中,功率控制模块226包括能够创造比电源电压大的电压的一个或多个电荷泵。
在一个实施例中,控制电路220、功率控制电路226、解码器电路224、状态机电路222、解码器电路242A、解码器电路242B、解码器电路240A、解码器电路240B、读/写电路230A、读/写电路230B、和/或控制器244的一个或任意组合能够被称作一个或多个管理电路。该一个或多个管理电路执行在此描述的过程。
图4描绘了存储器单元阵列200的示例性结构。在一个实施例中,将存储器单元阵列划分为大量的存储器单元块(例如块0-1023或其他数量)。对于闪存EEPROM系统普遍的是,块是擦除的单位。也就是说,每个块包含一起擦除的最小数目的存储器单元。
块包含经由位线(例如,位线BL0-BL69623)和字线(WL0、WL1、WL2、WL3)接入的一组NAND串。图4示出了串联形成NAND串的四个存储器单元。尽管示出了包括在每个NAND串中的四个单元,但是能够使用多于或少于四个(例如16、32、64、128或另一数目的存储器单元能够在NAND串上)。NAND串的一端点经由漏极选择栅极连接到相应的位线(连接到选择栅极漏极线SGD),而另一端点经由源极选择栅极连接到源极线(连接到选择栅极源极线SGS)。
在另一实施例中,位线划分为奇数位线和偶数位线。在奇数/偶数位线体系架构中,一次编程沿着公共字线且连接到奇数位线的存储器单元,而在另一次编程沿着公共字线且连接到偶数位线的存储器单元。
典型地,将每个块划分为许多页。在一个实施例中,页是编程的单位。典型地,将一页或多页数据存储在存储器单元的一行中。例如,可以将一页或多页数据存储在连接到一公共字线的存储器单元中。页能够存储一个或多个扇区(sector)。扇区包括用户数据和开销(overhead)数据(也称为系统数据)。开销数据典型地包括头信息和已经从扇区的用户数据计算出的纠错码(ECC)。当数据正被编程到阵列中时控制器(或其他部件)计算ECC,并且还当正从阵列读取数据时校验它。可替代地,将ECC和/或其他开销数据而不是它们所相关的用户数据,存储在不同的页或者甚至不同的块中。典型地,用户数据的扇区是512个字节,相应于磁盘驱动器中扇区的尺寸。大量的页形成块,例如在任何地方从8页直至32、64、128或更多的页。同样能够使用不同尺寸的块、页和扇区。
图5是被分割为称作感测模块480的核心部分、和公共部分490的单独的感测块300的框图。在一个实施例中,将存在针对每条位线的单独的感测模块480和针对多个感测模块480的组的一个公共模块490。在一个示例中,感测块将包括一个公共部分490和八个感测模块480。一组中的每个感测模块将经由数据总线472与相关联的公共部分通信。对于进一步的细节,参考美国专利申请公开2006/0140007,其全部内容通过引用合并于此。
感测模块480包括确定所连接的位线中的传导电流在预定阈值电平之上还是之下的感测电路470。在一些实施例中,感测模块480包括通常被称作感测放大器的电路。感测模块480还包括用来设置在所连接的位线上的电压条件的位线锁存器482。例如,在位线锁存器482中锁存的预定状态将导致所连接的位线被拉到表示编程禁止的状态(例如Vdd)。
公共部分490包括处理器492、一组数据锁存器494以及在该组数据锁存器494和数据总线420之间耦接的I/O接口496。处理器492执行计算。例如,它的一个功能是确定存储在所感测的存储器单元中的数据,并将所确定的数据存储在数据锁存器组中。数据锁存器494组用于存储在读取操作期间由处理器492确定的数据比特。它还用于在编程操作期间存储从数据总线420输入的数据比特。所输入的数据比特代表将要被编程到存储器中的写入数据。I/O接口496提供数据锁存器494和数据总线420之间的接口。
在读取或感测期间,系统的操作在(使用功率控制226)控制向所寻址的一个或多个存储器单元提供不同的控制栅极电压的状态机222的控制之下。当它在与由存储器支持的各种的存储器状态相应的各种的预定控制栅极电压中步进时,感测模块480能够在这些电压中的一个上触发(trip),并且经由总线472将输出从感测模块480提供给处理器492。在该点处,通过考虑感测模块的一个或多个触发事件和与经由输入线493从状态机施加的控制栅极电压有关的信息,处理器492确定作为结果的存储器状态。然后,它计算针对存储器状态的二进制编码,并将作为结果的数据比特存储到数据锁存器494中。在核心部分的另一实施例中,位线锁存器482承担双重任务,既作为用于锁存感测模块480的输出的锁存器并且还作为位线锁存器两者,如上所述。
所期望的是,一些实现方式将包括多个处理器492。在一个实施例中,每个处理器492将包括输出线(未在图5中示出),使得每条输出线一起被线或(wired-OR)操作。在一些实施例中,在被连接到线或线(wired-OR line)之前反相输出线。该配置使得能够在编程过程已经完成时的编程验证过程期间进行快速确定,因为接收线或线的状态机能够确定正被编程的所有比特什么时候达到期望的电平。例如,当每个比特达到了其期望的电平时,将把针对该比特的逻辑0发送到线或线(或者反相后的数据1)。当所有比特输出数据0(或反相后的数据1)时,则状态机知道终止该编程过程。在每个处理器与八个感测模块通信的实施例中,状态机可能(在一些实施例中)需要读取八次线或线,或者向处理器492添加逻辑来累积相关联的位线的结果,使得状态机仅仅需要读取一次线或线。
数据锁存器堆栈494包含相应于感测模块的数据锁存器的堆栈。在一个实施例中,每个感测模块480存在三个(或四个或另一数目)数据锁存器。在一个实施例中,每个锁存器是一个比特。
在编程或验证期间,来自数据总线420的将被编程的数据存储在一组数据锁存器494中。在验证过程期间,处理器492相对于期望的存储器状态监控所验证的存储器状态。当两个一致时,处理器492设置位线锁存器482来致使位线被拉到表示编程禁止的状态。这禁止耦接到位线的单元进一步编程,即使它在其控制栅极上经受编程脉冲。在其他实施例中,处理器初始装载位线锁存器482,并且感测电路在验证过程期间将它设置为禁止值。
在一些实现方式(但是不必需)中,数据锁存器被实现为移位寄存器,使得存储在其中的并行数据被转换为针对数据总线420的串行数据,反之亦然。在一个优选实施例中,能够将与m个存储器单元的读/写块相应的所有数据锁存器连接在一起来形成块移位寄存器,使得能够通过串行传输来输入或输出数据块。具体地,使读/写模块组适合于使得其数据锁存器的组中的每个将数据依次移入或移出数据总线,如同它们对于整个读/写块是移位寄存器的一部分。
能够在如下中找到关于感测操作和感测放大器的额外信息:(1)于2004年3月25日公布的美国专利申请公开No.2004/0057287,“Non-VolatileMemory And Method With Reduced Source Line Bias Errors”;(2)于2004年6月10日公布的美国专利申请公开No.2004/0109357,“Non-Volatile MemoryAnd Method with Improved Sensing”;(3)美国专利申请公开No.20050169082;(4)发明人Jian Chen于2005年4月5日提交的名称为“Compensating for Coupling During Read Operations of Non-VolatileMemory”的美国专利公开2006/0221692;以及(5)发明人Siu Lung Chan和Raul-Adrian Cernea于2005年12月28日提交的名称为“Reference SenseAmplifier For Non-Volatile Memory”的美国专利申请No.11/321953。上面列出的所有五个专利文件通过引用将其全部内容合并于此。
在成功的编程过程(具有验证)结束时,存储器单元的阈值电压应该适当地在被编程的存储器单元的阈值电压的一个或多个分布中,或者在被擦除的存储器单元的阈值电压的分布中。图6图示了在每个存储器单元存储三个比特的数据时存储器单元阵列的阈值电压分布(或数据状态)的示例。然而,其他实施例可以在每个存储器单元中使用多于或少于三个比特的数据(例如每个存储器单元诸如四个或更多比特)。
在图6的示例中,每个存储器单元存储三个比特的数据;因此,存在八个有效的数据状态S0-S7。在一个实施例中,数据状态S0在0伏以下,而数据状态S1-S7在0伏以上。在其他实施例中,所有八个数据状态在0伏以上,或者能够实现其他安排。在一个实施例中,阈值电压分布S0比分布S1-S7宽。
每个数据状态相应于存储在存储器单元中的三个比特的唯一值。在一个实施例中,S0=111,S1=110,S2=101,S3=100,S4=011,S5=010,S6=001以及S7=000。也能够使用数据到状态S0-S7的其他映射。在一个实施例中,将存储在存储器单元中的数据的所有比特存储在同一逻辑页中。在其他实施例中,存储在存储器单元中的数据的每个比特相应于不同的页。从而,存储三个比特的数据的存储器单元将包括第一页、第二页和第三页中的数据。在一些实施例中,连接到同一字线的所有存储器单元将存储在相同的三页数据中的数据。在一些实施例中,连接到一字线的多个存储器单元可分组到页的不同组中(例如,通过奇数和偶数位线)。
在一些现有技术的设备中,存储器单元将被擦除到状态S0。从状态S0,能够将存储器单元编程到任意状态S1-S7。在一个实施例中,所知为全序列(full sequence)编程,能够将存储器单元从被擦除的状态S0直接编程到任意被编程的状态S1-S7。例如,可以首先擦除将被编程的一组存储器单元,使得在该组中的所有存储器单元处于被擦除的状态S0中。当一些存储器单元正被从状态S0编程到状态S1时,将其他存储器单元从状态S0编程到状态S2,从状态S0编程到状态S3,从状态S0编程到状态S4,从状态S0编程到状态S5,从状态S0编程到状态S6,从状态S0编程到状态S7。通过图6的七个曲线箭头来图形化描绘全序列编程。
图7A-7I公开了用于编程非易失性存储器的另一过程,通过对于任何特定的存储器单元,在对于先前页写到相邻存储器单元之后,写入特定页到该特定存储器单元,来减小浮置栅极到浮置栅极的耦合的影响。图7A-7I的过程是三步编程过程。在第一步之前,将擦除存储器单元,使得它们在状态S0的擦除阈值分布中。
图7A-7I的过程假设每个存储器单元存储三个比特的数据,每个比特在不同的页中。数据的第一比特(最左边的比特)与第一页相关联。中间比特与第二页相关联。最右边的比特与第三页相关联。数据状态到数据的相关性如下:S0=111,S1=110,S2=101,S3=100,S4=011,S5=010,S6=001以及S7=000。然而,其他实施例能够使用其他数据编码方案。
当编程第一页时(如图7A所述),如果比特是数据“1”,则存储器单元将保持在状态S0(阈值电压分布502)。如果比特将为数据“0”,则将存储器单元编程到状态S4(阈值电压分布504)。在编程相邻存储器单元之后,相邻浮置栅极之间的电容性耦合可能致使状态S4变宽,如图7B中所示。状态S0也可能变宽,但是在S0和S1之间存在足以忽略该影响的余量。能够在美国专利5867429和美国专利6657891中找到关于相邻浮置栅极之间电容性耦合的更多信息,这两者通过引用将其全部内容合并于此。
当编程第二页时(参见图7C),如果存储器单元处于状态S0中并且第二页比特是数据“1”,则存储器单元保持在状态S0。在一些实施例中,第二页的编程过程将使阈值电压分布501变紧凑为新的S0。如果存储器单元原处于状态S0中并且将被写入到第二页的数据是“0”,则将存储器单元移动到状态S2(阈值电压分布506)。状态S2具有验证点(最低电压)C*。如果存储器单元处于状态S4中并且将被写入到存储器单元的数据是“1”,则存储器单元保持在S4。然而,通过将存储器单元从阈值电压分布504移动到用于状态S4的阈值电压分布508来使状态S4变紧凑,如图7C所示。阈值电压分布508具有验证点E*(对比于阈值电压分布504的E**)。如果存储器单元处于状态S4中并且将被写入到第二页的数据是“0”,则存储器单元使它的阈值电压移动到具有验证点G*的状态S6(阈值电压分布510)。
在编程相邻的存储器单元之后,由于浮置栅极到浮置栅极的耦合,状态S2、S4和S6变宽,如图7D的阈值电压分布506、508和510所示。在一些情况下,状态S0也会变宽。
图7E、7F、7G和7H描绘了第三页的编程。尽管一个图形能够用来示出编程,为了可见性原因,在四个图形中描绘该过程。在编程了第二页之后,存储器单元处于状态S0、S2、S4或S6中。图7E示出了处于状态S0中的正针对第三页编程的存储器单元。图7F示出了处于状态S2的正针对第三页编程的存储器单元。图7G示出了处于状态S4中的正针对第三页编程的存储器单元。图7H示出了处于状态S6中的正针对第三页编程的存储器单元。图7I示出了在对存储器单元的组(同时或串行地)执行图7E、7F、7G和7H的过程之后的阈值电压分布。
如果存储器单元处于状态S0中并且第三页数据是“1”,则存储器单元保持在状态S0。如果第三页的数据是“0”,则升高存储器单元的阈值电压来处于具有验证点B的状态S1中(参见图7E)。
如果存储器单元处于状态S2中并且将写入到第三页中的数据是“1”,则存储器单元将保持在状态S2中(参见图7F)。然而,将执行一些编程来使阈值分布506变紧凑到具有C伏验证点的新状态S2。如果将被写入到第三页的数据是“0”,则将存储器单元编程到具有D伏验证点的状态S3。
如果存储器单元处于状态S4中并且将被写入到第三页的数据是“1”,则存储器单元将保持在状态S4中(参见图7G)。然而,一些编程将被执行来使得阈值电压分布508将变紧凑到具有验证点E的新状态S4。如果存储器单元处于状态S4中并且将被写入到第三页的数据是“0”,则存储器单元将使它的阈值电压升高到具有验证点F的状态S5中。
如果存储器单元处于状态S6中并且将被写入到第三页的数据是“1”,则存储器单元将保持在状态S6中(参见图7H)。然而,将存在一些编程使得阈值电压分布510变紧凑到具有在G处的验证点的新状态S6中。如果第三页数据是“0”,则存储器单元将使它的阈值电压被编程到具有在H处的验证点的状态S7。作为第三页编程的结论,存储器单元将处于图7I所示八个状态的一个中。
图8描绘了一组存储器单元的页的编程顺序的一个示例。表格提供了对于图4的四条字线(WL0、WL1、WL2和WL3)的编程顺序;然而,能够调整表格以容纳多于或少于四条的字线。编程连接到WL0的存储器单元的第一页,然后编程连接到WL1的存储器单元的第一页,然后编程连接到WL0的存储器单元的第二页,然后编程连接到WL2的存储器单元的第一页,然后编程连接到WL1的存储器单元的第二页,等等。
图9是描述用于编程连接到所选择的字线的存储器单元的编程过程的流程图。在一个实施例中,图9的过程用于编程存储器单元块。在图9的过程的一个实现方式中,预编程存储器单元以保持存储器单元上的均匀磨损(步骤550)。在一个实施例中,将存储器单元编程到状态7、随机样式、或任意其他样式。在一些实现方式中,不需要执行预编程。
在步骤552中,在编程之前(以块或其他单位)擦除存储器单元。在一个实施例中,通过在充足的时间段内将p势阱升高到擦除电压(例如20伏),并且将所选择的块的字线接地,同时源极和位线浮置,来擦除存储器单元。由于电容性耦合,未选择的字线、位线、选择线、和公共源极线同样被升高到擦除电压的较大比例。从而将强电场施加到所选择的存储器单元的隧道(tunnel)氧化物层,并且由于浮置栅极的电子被发射到衬底侧,典型地通过Fowler-Nordheim隧道效应机制,因而擦除所选择的存储器单元。当电子从浮置栅极被传输到p势阱区域时,所选择的单元的阈值电压降低。能够在整个存储器阵列上、在单独的块、或其他单位的单元上执行擦除。在一个实施例中,在擦除存储器单元之后,所有的被擦除的存储器单元将处于状态S0中(参见图6)。
在步骤554处,执行软编程,来针对被擦除的存储器单元使所擦除的阈值电压的分布变窄。作为擦除过程的结果,一些存储器单元可以处于比所需的更深的擦除状态。软编程能够应用编程脉冲来将被擦除的存储器单元的阈值电压移动到更靠近擦除验证电平。例如,见图6,步骤554能够包括将与状态S0相关联的阈值电压分布变紧凑。在步骤556中,如在此所述,编程该块的存储器单元。能够使用上述的各种各样的电路来在状态机的指令(direction)下执行图9的过程。在其他实施例中,能够使用上述的各种各样的电路来在控制器的指令下执行图9的过程。在执行图9的过程之后,能够读取该块的存储器单元。
图10是用于在连接到公共字线的存储器单元上执行编程的过程的流程图。在图9的步骤556期间,能够一次或多次执行图10的过程。例如,图10的过程能够用来执行图6的全序列编程,在该情况下,对于每条字线,图10的过程将被执行一次。在一个实施例中,以从最接近源极线的字线开始朝位线推进的顺序来执行编程过程。图10的过程也能够原来对于图7A-I的编程过程,针对字线执行数据页的编程,在该情况下,对于每条字线,图10的过程将被执行三次。也能够使用其他的布置。
典型地,在编程操作期间施加到控制栅极的编程电压被作为一系列编程脉冲施加。在编程脉冲之间的是一组验证脉冲,用来使得能够进行验证。在许多实现方式中,用预定步长对每个相继脉冲增大编程脉冲的幅度。在步骤608中,将编程脉冲(Vpgm)初始化到起始幅度(例如~12V或另一适当的电平),并且将由状态机222维持的编程计数器PC初始化到1。在步骤610处,将编程信号Vpgm的编程脉冲施加到所选择的字线(为编程所选择的字线)。未选择的字线接收一个或多个升压(boosting)电压(例如~8伏),来执行本领域已知的升压方案。如果应该编程存储器单元,则相应的位线接地。另一方面,如果存储器单元应该保持在它当前数据状态中,则将相应的位线连接到VDD来禁止编程。能够在美国专利6859397和美国专利申请11/555850中找到关于升压方案的更多信息,这两者通过引用合并于此。
在步骤612处,使用适当的一组目标电平来验证所选择的存储器单元的状态。如果检测到所选择的存储器单元的阈值电压已经达到了适当的目标电平,则例如通过在随后的编程脉冲期间升高它的位线电压来锁定存储器单元而不进行进一步编程。在步骤614中,检查所有的存储器单元是否达到了它们的目标阈值电压。如果达到了,则编程过程完成并且成功,因为所有所选择的存储器单元被编程并被验证到了它们的目标状态。在步骤616处报告“PASS(通过)”状态。注意,在一些实现方式中,在步骤614处,检查是否适当地编程了至少预定数目的存储器单元。该预定数目可以少于全部存储器单元的数目,从而允许编程过程在所有存储器单元达到它们适当的验证电平之前停止。能够在读取过程期间使用纠错来纠正未成功编程的存储器单元。
在步骤614处,如果确定不是所有的存储器单元达到了它们的目标阈值电压,则编程过程继续。在步骤618处,相对于编程限制值(PL)来检查编程计数器PC。编程限制值的一个示例是20;然而,在各种各样的实现方式中能够使用其他的值。如果编程计数器PC不小于编程限制值,则在步骤630处确定未成功编程的存储器单元的数目是否等于或小于预定数目。如果未成功编程的存储器单元的数目等于或小于预定数目,则将编程过程标记为通过的(passed),并在步骤632处报告PASS状态。在许多情况下,能够在读取过程期间使用纠错来纠正未成功编程的存储器单元。然而,如果未成功编程的存储器单元的数目大于预定数目,则将编程过程标记为失败,并在步骤634处报告FAIL(失败)状态。
如果在步骤618中确定编程计数器PC小于编程限制值PL,则在步骤620中系统确定编程电压是否达到了它的最大电平(被称作最大编程电压)。例如,在一些存储器系统中,电荷泵用来从电源电压产生编程电压。该电荷泵可以具有最大电压,或者系统可以施加能够被施加到字线的最大电压。如果正被施加到所选择的字线的编程电压没有在最大编程电压处,则在步骤622处,以步长(例如0.2-0.4伏步长)增大下一编程信号(Vpgm)电压脉冲的幅度,并递增编程计数器PC。在一个实施例中,在步骤622中不改变脉冲宽度。在步骤622之后,程序返回到步骤610来施加下一Vpgm电压脉冲。
在步骤620中,如果确定编程电压的幅度达到(或超过)了最大编程电压,则施加一个或多个编程脉冲以改变验证操作之间的编程信号Vpgm的时间持续期(步骤624)。例如,通过使用更宽的编程脉冲或使用多个编程脉冲,在验证操作之间(例如步骤612的重复次数之间)增大施加到所选择的存储器单元的编程电压量。当使用多个编程脉冲来增大施加到所选择的存储器单元的编程电压量时,系统将不在脉冲组的多个脉冲之间执行验证操作。而是,将在该组多个脉冲之前执行一个或多个验证操作(步骤612的上次重复),并且将在该组多个脉冲之后执行一个或多个验证操作(步骤612的下一次重复)。是否使用更宽的脉冲或多个脉冲,编程脉冲的幅度将位于或低于最大编程电压。
步骤624的一个目的是智能控制正被编程的存储器单元的阈值电压的增大。在使用编程信号的一些实施例中,该编程信号是以预定步长随着每个连续脉冲增大幅度的一系列脉冲,平均上,响应于每个脉冲,正被编程的存储器单元将具有以该步长增大的它们的阈值电压。一旦编程脉冲的幅度达到最大编程电压,脉冲的脉冲宽度能够变宽(而不是增大脉冲的幅度),来保持正被编程的存储器单元的阈值电压的增大的相同比率。可替代地,能够施加多个编程脉冲来达到与变宽脉冲宽度相同的效果。无论怎样,增大了在验证操作之间施加到所选择的存储器单元的编程电压的持续期。尽管在一些实施例中,步骤624用来保持与在达到最大编程电压之前所实现的相同比率的阈值电压增大,但是其他实施例使用其他策略来寻找控制阈值电压增大的比率。
步骤624还包括递增编程计数器。在步骤624之后,在步骤612处,图10的过程继续一个或多个验证操作。
图10的步骤612包括执行一个或多个验证操作。通常,在验证操作和读取操作期间,所选择的字线连接到其电平对于每个读取和验证操作特定的电压(例如,参见图7I的B、C、D、E、F、G和H),以确定所关注的存储器单元的阈值电压是否达到了这样的电平。在施加了字线电压之后,测量存储器单元的传导电流来确定存储器单元是否响应于施加到字线的电压而导通。如果传导电流被测量为大于某值,则假定存储器单元导通,并且施加到字线的电压大于存储器单元的阈值电压。如果传导电流没被测量为大于某值,则假定存储器单元没有导通,并且施加到字线的电压不大于存储器单元的阈值电压。
在读取或验证操作期间,存在许多方式来测量存储器单元的传导电流。在一个示例中,通过它放电或充电感测放大器中的专用(dedicated)电容的速率来测量存储器单元的传导电流。在另一示例中,所选择的存储器单元的传导电流允许(或不能允许)包括存储器单元的NAND串来放电相应的位线。在一时间段之后测量位线上的电压来看它是否被放电了。
图11A-C是描述用于增大编程信号的持续期的各种各样的实施例的流程图。也就是说,图11A-C的每个流程图提供了作为图10的步骤624的部分而执行的过程的示例。
图11A的实施例包括在达到最大编程电压之后使用更宽的脉冲。在图11A的过程的步骤702中,基于常数来增大下一编程脉冲的脉冲宽度。该常数能够是之前脉冲宽度的绝对值或百分比。例如,脉冲宽度能够从之前脉冲宽度增大X倍单位或Y%。步骤702包括以新的更宽的脉冲宽度来施加编程脉冲。在一个实施例中,以在(或接近)最大编程电压处的幅度来施加编程脉冲。在其他实施例中,能够使用其他幅度。在Vpgm达到最大编程电压之后,对于图10的过程的循环的每次重复,在步骤624期间将执行图11A的过程。在一个实施例中,步骤702包括配置电荷泵。
图12提供了根据图11A的实施例的编程信号的示例的图形化表示。编程脉冲802、804、806、808、810、812、814、816、818和820代表具有固定脉冲宽度和按照固定步长增大的幅度的脉冲。脉冲802的幅度在最大编程电压处。返回看图10,在施加脉冲820之前,步骤620将总是导致前进到步骤622并按该步长增大幅度(以及保持脉冲宽度恒定)。在施加脉冲820并执行验证之后,步骤620将导致执行步骤624,在此时将增大脉冲宽度(步骤702),并且对于每个脉冲,脉冲的幅度将在最大编程电压处保持恒定。如图12所示,脉冲822具有比脉冲820宽的脉冲宽度,脉冲824具有比脉冲822宽的脉冲宽度,脉冲826具有比脉冲824宽的脉冲宽度,以及脉冲828具有比脉冲826宽的脉冲宽度。脉冲822、824、826和828的幅度都具有最大编程电压处的幅度。在一个实施例中,不是所有达到最大编程电压之后的脉冲均需要包括更大的脉冲宽度。
如上所讨论的,在编程脉冲之间是一个或多个验证脉冲。例如,可以在B、C、D、E、F、G和H伏处(参见图7I)使用七个验证脉冲。没有在图12中描绘这些验证脉冲以使图形更容易阅读。然而,图13描绘了在脉冲810和812间以及脉冲812和814之间具有七个验证脉冲(从而,七个验证操作)的三个编程脉冲810、812和814。
图14是提供根据图11A的实施例的编程信号的另一示例的表格。表格提供了编程信号的示例幅度和脉冲宽度。图14的表格还提供了正从擦除状态编程的一组存储器单元的平均阈值电压(Vth)。能够从图14中看到,在达到23.25伏的最大编程电压之前,编程脉冲在幅度方面以0.25伏的固定步长增大,保持在10.00us的恒定脉冲宽度,并且致使平均阈值电压增大0.25伏。在达到23.25伏的最大编程电压之后,编程脉冲的幅度保持在23.25伏;然而,编程脉冲的脉冲宽度增大,使得平均阈值电压继续增大0.25伏。
注意,在一个实施例中,图14的脉冲#1不是施加的第一个脉冲。可能存在之前施加的脉冲,使得编程以17.00伏脉冲达到稳定状态。
图11B提供了图10的步骤624的实现方式的另一实施例。在步骤710中,存储一个或多个可定制化参数。这些参数表示用于达到最大编程电压之后的脉冲的脉冲宽度尺寸。例如,一个或多个可定制化参数能够包括表示增大脉冲宽度的步长的一个参数、或者表示脉冲宽度的百分比增大的一个参数。在另一实施例中,针对达到最大编程电压之后所施加的每个脉冲来存储参数。每个参数表示对于其各自的脉冲的脉冲宽度。用虚线描绘图11B的步骤710来表示能够在另一时间执行它,然后是图11B的其他步骤。在一个示例中,在制造或测试阶段设置可定制化参数。在另一实施例中,用户能够在任意时间经由主机设备设置参数。
在步骤712中,系统读取与将施加的下一编程脉冲相关联的参数。在步骤714中,用基于步骤712中读取的参数而设置的脉冲宽度来施加下一编程脉冲。一个实施例包括配置电荷泵电路来调节脉冲宽度。图11B的过程包括对于脉冲使用相同的幅度。例如,达到最大编程电压之后施加的所有脉冲能够具有等于最大编程电压的幅度。
图11C提供了图10的步骤624的实现方式的另一实施例,包括在验证操作之间施加多个编程脉冲来达到与变宽脉冲宽度相似的效果。在步骤720中,系统确定从达到最大编程电压起已经执行的图10的编程循环的重复数目。在步骤722中,基于步骤720中确定的重复数目来施加一个或多个编程脉冲。例如,在最大编程电压之后,系统然后可以在最大编程电压处施加一组两个编程脉冲,接着在最大编程电压处施加一组三个编程脉冲,接着在最大编程电压处施加一组四个编程脉冲,等等。步骤722将添加额外的编程脉冲来实现在验证操作之间增大编程电压的持续期的期望策略。在每组的编程脉冲之间是一组一个或多个验证操作。在编程脉冲组之内,施加编程脉冲而不执行验证操作。在一个实施例中,在达到最大编程电压之后,通过对图10的编程循环的每次重复而递增脉冲数目,来确定施加多少个编程脉冲。在另一实施例中,可定制化参数(参见图11B)能够用于识别使用多少个编程脉冲。
图15提供了根据图11C的实施例的编程信号的示例的图形化表示。编程脉冲850、852、854、856、858、860、862、864、866和868代表具有固定脉冲宽度并且按固定步长增大的幅度的脉冲。脉冲868的幅度在最大编程电压处。返回看图10,在施加脉冲868之前,步骤620将总是导致前进到步骤622并且按步长增大幅度(以及保持脉冲宽度恒定)。在施加脉冲868并执行验证之后,步骤620将导致执行步骤624,在这时系统将配置它自身来施加两个脉冲870和872。脉冲870和872两者处于最大编程电压并与之前脉冲的脉冲宽度相同(然而,能够使用其他脉冲宽度和幅度)。下次执行步骤624,系统将配置它自身来施加三个脉冲874、876和878。下次执行步骤624,系统将配置它自身来施加四个脉冲880、882、884、886。如此等等。
在各个编程脉冲组之间(例如,870/872是一组,874/875/878是组的示例),执行验证操作,而在编程脉冲组之内,不执行验证操作。因此,通过在验证操作之间利用多个编程脉冲,该实施例实现了更长的有效编程信号的持续期。例如,在编程脉冲868和编程脉冲870之间,执行一个或多个验证操作。例如,图16示出了在编程脉冲868和编程脉冲870之间执行的七个验证操作(相应于七个验证脉冲)。在编程脉冲870和编程脉冲872之间,没有验证操作被执行。在编程脉冲872和编程脉冲874之间,执行一个或多个验证操作。例如,图16示出了在编程脉冲872和编程脉冲874之间执行的七个验证操作(相应于七个验证脉冲)。在编程脉冲874、876和878之间,没有验证操作被执行。在每个编程脉冲850、852、854、856、858、860、862、864、866和868之间也执行验证操作。
在图11C和图15的脉冲信号的替代实施例中,每个组的脉冲(例如,870/872是一组,874/875/878是组的示例)能够把它们的幅度设置为,使得在组内的脉冲的组合持续期与幅度结合提供编程的目标量。在一个实施例中,在组中的脉冲数目和在组中的脉冲数目的幅度能够从用户可配置参数(参见图11B)确定,和/或能够被设置来实现每个组中的恒定编程量(以及可选地,这也是与每个脉冲850-868相等的编程量)。
为了说明和描述的目的,展现了本发明的上述详细描述。不试图穷尽或将本发明限制于所公开的精确形式。根据上面的讲授,许多修改和变型是可能的。选择所描述的实施例是为了最好地解释本发明的原则及其实际应用,从而使得本领域技术人员可以在各种各样的实施例中以及用适于预期具体使用的各种各样的修改来最佳地利用本发明。意图通过所附权利要求来限定本发明的范围。

Claims (23)

1.一种对非易失性存储进行编程的方法,包括:
将编程信号施加到非易失性存储元件,包括:将具有恒定脉冲宽度和增大的幅度的编程脉冲施加到所述非易失性存储元件,直到达到最大幅度;以及在所述编程脉冲达到所述最大幅度之后,在验证操作的重复之间,将一个或多个编程脉冲施加到所述非易失性存储元件,特征在于,在验证操作之间施加到所述非易失性存储元件的所述一个或多个编程脉冲的时间持续期随着每个重复而增加,所述将一个或多个编程脉冲施加到所述非易失性存储元件包括在验证操作之间施加多个脉冲。
2.根据权利要求1所述的方法,其中:
所述在验证操作的重复之间将一个或多个编程脉冲施加到所述非易失性存储元件,包括:施加具有改变的脉冲宽度的一个或多个编程脉冲。
3.根据权利要求1所述的方法,其中:
所述在验证操作的重复之间将一个或多个编程脉冲施加到所述非易失性存储元件,包括:施加具有增大的脉冲宽度的一个或多个编程脉冲。
4.根据权利要求1所述的方法,其中:
所述在验证操作的重复之间将一个或多个编程脉冲施加到所述非易失性存储元件,包括:施加具有以恒定值改变的脉冲宽度的一个或多个编程脉冲。
5.根据权利要求1所述的方法,其中:
所述在验证操作的重复之间将一个或多个编程脉冲施加到所述非易失性存储元件,包括:施加具有以可变值改变的脉冲宽度的一个或多个编程脉冲。
6.根据权利要求1所述的方法,其中:
所述在验证操作的重复之间将一个或多个编程脉冲施加到所述非易失性存储元件,包括:施加具有以恒定值增大的脉冲宽度的一个或多个编程脉冲。
7.根据权利要求1所述的方法,其中:
所述在验证操作的重复之间将一个或多个编程脉冲施加到所述非易失性存储元件,包括:施加具有以可变值增大的脉冲宽度的一个或多个编程脉冲。
8.根据权利要求1所述的方法,其中:
所述在验证操作的重复之间将一个或多个编程脉冲施加到所述非易失性存储元件,包括:施加具有增大的脉冲宽度和所述最大幅度的一个或多个编程脉冲。
9.根据权利要求1所述的方法,还包括:
存储一组可定制化脉冲宽度参数,所述在验证操作的重复之间将一个或多个编程脉冲施加到所述非易失性存储元件,包括:施加具有基于所述存储的可定制化脉冲宽度参数增大的脉冲宽度的一个或多个编程脉冲。
10.根据权利要求1所述的方法,其中:
所述在验证操作的重复之间将一个或多个编程脉冲施加到所述非易失性存储元件,包括:在验证操作之间施加多个脉冲。
11.根据权利要求1所述的方法,其中:
所述在验证操作的重复之间将一个或多个编程脉冲施加到所述非易失性存储元件,包括:在验证操作之间施加处于所述最大幅度的多个脉冲。
12.根据权利要求1所述的方法,其中,所述在验证操作的重复之间将一个或多个编程脉冲施加到所述非易失性存储元件,包括:
将一个或多个组的不同数目的编程脉冲施加到所述非易失性存储元件,在验证操作之间施加每个组。
13.根据权利要求1所述的方法,其中,所述在验证操作的重复之间将一个或多个编程脉冲施加到所述非易失性存储元件,包括:
确定在当前时间段中已经执行了多少个编程-验证周期;以及
基于所述确定将多个编程脉冲施加到所述非易失性存储元件。
14.根据权利要求1所述的方法,其中,所述将编程信号施加到非易失性存储元件包括:
(a)将脉冲施加到所述非易失性存储元件的控制栅极;
(b)针对所述非易失性存储元件执行一个或多个验证操作;
(c)确定最大电压是否已经用于所述编程信号;
(d)如果所述最大电压还没有用于所述编程信号,则用更高幅度脉冲重复步骤(a)-(c);以及
(e)如果所述最大电压已经用于所述编程信号,则用具有更长持续期的一个或多个脉冲重复步骤(a)-(c)。
15.一种非易失性存储系统,包括:
非易失性存储元件;以及
与所述非易失性存储元件通信的一个或多个管理电路,所述一个或多个管理电路通过将编程信号施加到所述非易失性存储元件,来编程所述非易失性存储元件,所述将编程信号施加到所述非易失性存储元件包括:将具有恒定宽度和增大的幅度的编程脉冲施加到所述非易失性存储元件,直到达到最大幅度;以及在所述编程脉冲达到所述最大幅度之后,在验证操作的重复之间,将一个或多个编程脉冲施加到所述非易失性存储元件,特征在于,在验证操作之间施加到所述非易失性存储元件的所述一个或多个编程脉冲的时间持续期随着每个重复而增加,所述将一个或多个编程脉冲施加到所述非易失性存储元件包括在验证操作之间施加多个脉冲。
16.根据权利要求15所述的非易失性存储系统,其中:
所述在验证操作的重复之间将一个或多个编程脉冲施加到所述非易失性存储元件,包括:所述一个或多个管理电路施加具有改变的脉冲宽度的一个或多个编程脉冲。
17.根据权利要求15所述的非易失性存储系统,其中:
所述在验证操作的重复之间将一个或多个编程脉冲施加到所述非易失性存储元件,包括:所述一个或多个管理电路施加具有增大的脉冲宽度的一个或多个编程脉冲。
18.根据权利要求15所述的非易失性存储系统,其中:
所述在验证操作的重复之间将一个或多个编程脉冲施加到所述非易失性存储元件,包括:所述一个或多个管理电路施加具有以可变值增大的脉冲宽度的一个或多个编程脉冲。
19.根据权利要求15所述的非易失性存储系统,其中:
所述在验证操作的重复之间将一个或多个编程脉冲施加到所述非易失性存储元件,包括:所述一个或多个管理电路施加具有以恒定值增大的脉冲宽度的一个或多个编程脉冲。
20.根据权利要求15所述的非易失性存储系统,其中:
所述在验证操作的重复之间将一个或多个编程脉冲施加到所述非易失性存储元件,包括:所述一个或多个管理电路施加具有增大的脉冲宽度和所述最大幅度的一个或多个编程脉冲。
21.根据权利要求15所述的非易失性存储系统,其中:
所述在验证操作的重复之间将一个或多个编程脉冲施加到所述非易失性存储元件,包括:所述一个或多个管理电路在验证操作之间施加多个脉冲。
22.根据权利要求15所述的非易失性存储系统,其中:
所述在验证操作的重复之间将一个或多个编程脉冲施加到所述非易失性存储元件,包括:所述一个或多个管理电路在验证操作之间施加处于所述最大幅度的多个脉冲。
23.根据权利要求15所述的非易失性存储系统,其中:
所述非易失性存储元件是闪存存储器设备。
CN200880100547.1A 2007-06-21 2008-06-18 编程脉冲持续期的智能控制 Active CN101779250B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US11/766,583 2007-06-21
US11/766,580 US7580290B2 (en) 2007-06-21 2007-06-21 Non-volatile storage system with intelligent control of program pulse duration
US11/766,583 US7630249B2 (en) 2007-06-21 2007-06-21 Intelligent control of program pulse duration
US11/766,580 2007-06-21
PCT/US2008/067347 WO2008157606A1 (en) 2007-06-21 2008-06-18 Intelligent control of program pulse duration

Publications (2)

Publication Number Publication Date
CN101779250A CN101779250A (zh) 2010-07-14
CN101779250B true CN101779250B (zh) 2014-01-08

Family

ID=40156678

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200880100547.1A Active CN101779250B (zh) 2007-06-21 2008-06-18 编程脉冲持续期的智能控制

Country Status (6)

Country Link
EP (1) EP2160735A4 (zh)
JP (1) JP2010530596A (zh)
KR (1) KR20100050471A (zh)
CN (1) CN101779250B (zh)
TW (1) TWI378457B (zh)
WO (1) WO2008157606A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101635504B1 (ko) 2009-06-19 2016-07-04 삼성전자주식회사 3차원 수직 채널 구조를 갖는 불 휘발성 메모리 장치의 프로그램 방법
US8432740B2 (en) * 2011-07-21 2013-04-30 Sandisk Technologies Inc. Program algorithm with staircase waveform decomposed into multiple passes
JP2013041654A (ja) * 2011-08-19 2013-02-28 Toshiba Corp 不揮発性記憶装置
KR101989792B1 (ko) 2012-11-01 2019-06-17 삼성전자주식회사 불휘발성 메모리를 포함하는 메모리 시스템 및 불휘발성 메모리의 동작 방법
EP3059227B1 (en) * 2013-10-16 2019-06-26 FUJIFILM Corporation Salt of nitrogen-containing heterocyclic compound or crystal thereof, pharmaceutical composition, and flt3 inhibitor
JP2017168156A (ja) * 2016-03-14 2017-09-21 東芝メモリ株式会社 半導体記憶装置
TWI604449B (zh) * 2016-08-31 2017-11-01 旺宏電子股份有限公司 記憶體裝置與其程式化方法
US10283511B2 (en) * 2016-10-12 2019-05-07 Ememory Technology Inc. Non-volatile memory
CN110189783B (zh) * 2019-04-15 2021-04-06 华中科技大学 非易失性三维半导体存储器件的多值编程方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5751637A (en) * 1995-06-07 1998-05-12 Macronix International Co., Ltd. Automatic programming algorithm for page mode flash memory with variable programming pulse height and pulse width
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
CN1973336A (zh) * 2004-05-05 2007-05-30 桑迪士克股份有限公司 用于非易失性存储器的编程控制的双调谐管理方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3410747B2 (ja) * 1992-07-06 2003-05-26 株式会社東芝 不揮発性半導体記憶装置
JP3621501B2 (ja) * 1995-03-29 2005-02-16 株式会社東芝 不揮発性半導体記憶装置
JPH1027491A (ja) * 1996-07-12 1998-01-27 Denso Corp 不揮発性メモリの書込用閾値測定方法
WO2003073433A1 (fr) * 2002-02-28 2003-09-04 Renesas Technology Corp. Memoire a semi-conducteurs non volatile
KR100525910B1 (ko) * 2003-03-31 2005-11-02 주식회사 하이닉스반도체 플래시 메모리 셀의 프로그램 방법 및 이를 이용한 낸드플래시 메모리의 프로그램 방법
US6870772B1 (en) * 2003-09-12 2005-03-22 Renesas Technology Corp. Nonvolatile semiconductor memory device
US7023739B2 (en) * 2003-12-05 2006-04-04 Matrix Semiconductor, Inc. NAND memory array incorporating multiple write pulse programming of individual memory cells and method for operation of same
KR100626377B1 (ko) * 2004-06-07 2006-09-20 삼성전자주식회사 동작 모드에 따라 프로그램 전압의 증가분을 가변할 수있는 불 휘발성 메모리 장치
KR100705220B1 (ko) * 2005-09-15 2007-04-06 주식회사 하이닉스반도체 프로그램 속도를 증가시키기 위한 플래시 메모리 장치의소거 및 프로그램 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5751637A (en) * 1995-06-07 1998-05-12 Macronix International Co., Ltd. Automatic programming algorithm for page mode flash memory with variable programming pulse height and pulse width
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
CN1973336A (zh) * 2004-05-05 2007-05-30 桑迪士克股份有限公司 用于非易失性存储器的编程控制的双调谐管理方法

Also Published As

Publication number Publication date
EP2160735A4 (en) 2011-04-20
TW200907976A (en) 2009-02-16
EP2160735A1 (en) 2010-03-10
KR20100050471A (ko) 2010-05-13
CN101779250A (zh) 2010-07-14
JP2010530596A (ja) 2010-09-09
TWI378457B (en) 2012-12-01
WO2008157606A1 (en) 2008-12-24

Similar Documents

Publication Publication Date Title
CN102160118B (zh) 非易失性存储器阵列的最后字线的数据保持的改进
CN102138182B (zh) 编程并选择性地擦除非易失性存储器
CN102906820B (zh) 用同步耦合编程非易失性存储器
CN100568392C (zh) 用于非易失性存储器的自升压技术
KR101736414B1 (ko) 다른 메모리 셀들로부터의 영향을 감소시키는 것을 포함하는 비휘발성 저장 소자의 프로그래밍
CN102099867B (zh) 非易失性存储器的擦除-验证处理
CN101689400B (zh) 基于阈值电压分布的动态检验
EP2181446B1 (en) Reducing the impact of interference during programming
EP2368248B1 (en) Adaptive erase and soft programming for memory
CN101006519B (zh) 非易失性存储器系统及其编程的方法
CN102203874B (zh) 以高分辨率可变初始编程脉冲对非易失性存储器编程
CN103081015B (zh) 利用位线电压逐步增加来对非易失性存储器进行编程
CN101584006B (zh) 非易失性存储器中的经分割的软编程
CN102138183B (zh) 对非易失性存储器的选择性擦除操作
CN101779250B (zh) 编程脉冲持续期的智能控制
JP5174829B2 (ja) 隣接メモリセルの記憶状態を考慮した不揮発性メモリセルの読み出し
WO2008083131A2 (en) Method for programming with initial programming voltage based on trial
JP2012531003A (ja) 不揮発性記憶装置においてチャネルブーストを改良するための縮小されたプログラミングパルス幅
CN101802925B (zh) 控制门线架构
CN105009218A (zh) 用于收紧阈值电压宽度以避免编程干扰的编程方法
KR20090007297A (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
ASS Succession or assignment of patent right

Owner name: SANDISK TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: SANDISK CORP.

Effective date: 20120621

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

Effective date of registration: 20120621

Address after: texas

Applicant after: Sandisk Corp.

Address before: American California

Applicant before: Sandisk Corp.

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

Address after: texas

Patentee after: DELPHI INT OPERATIONS LUX SRL

Address before: texas

Patentee before: Sandisk Corp.