CN102089827B - 非易失性存储器和关联多遍编程的方法 - Google Patents

非易失性存储器和关联多遍编程的方法 Download PDF

Info

Publication number
CN102089827B
CN102089827B CN200980126873.4A CN200980126873A CN102089827B CN 102089827 B CN102089827 B CN 102089827B CN 200980126873 A CN200980126873 A CN 200980126873A CN 102089827 B CN102089827 B CN 102089827B
Authority
CN
China
Prior art keywords
programming
memory cell
memory
pulse string
unit
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
CN200980126873.4A
Other languages
English (en)
Other versions
CN102089827A (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.)
SanDisk Corp
Original Assignee
SanDisk Technologies LLC
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 US12/138,382 external-priority patent/US7796435B2/en
Priority claimed from US12/138,387 external-priority patent/US7813172B2/en
Application filed by SanDisk Technologies LLC filed Critical SanDisk Technologies LLC
Publication of CN102089827A publication Critical patent/CN102089827A/zh
Application granted granted Critical
Publication of CN102089827B publication Critical patent/CN102089827B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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/344Arrangements for verifying correct erasure or for detecting overerased cells

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)

Abstract

使用多遍编程方法并行地将一组存储器单元分别编程到其目标状态,在该多遍编程方法中,多遍中的编程电压相关联。每个编程遍采用具有公共步长大小的阶梯脉冲串形式的编程电压,每个相继遍具有从前一遍的阶梯脉冲串偏移了预定偏移水平的阶梯脉冲串。该预定偏移水平小于公共步长大小,并且可以小于或等于前一遍的预定偏移水平。因此,可以使用比每个相继遍使用具有更精细的步长大小的编程阶梯脉冲串的传统方法更少的编程脉冲,来对多遍实现相同的编程解析度。多遍编程用于收紧编程的阈值的分布,同时降低编程脉冲的整体数量。

Description

非易失性存储器和关联多遍编程的方法
技术领域
本发明总体上涉及诸如电可擦除可编程只读存储器(EEPROM)和快闪EEPROM之类的非易失性半导体存储器,并且更具体地,涉及其中编程-验证操作的数量被最小化的存储器和编程操作。
背景技术
能够进行电荷的非易失性存储的固态存储器、特别是被封装为小形状因子卡(form factor card)的EEPROM和快闪EEPROM形式的固态存储器最近成为各种移动和手持设备、特别是信息装置和消费电子产品中的存储选择。不同于也是固态存储器的RAM(随机存取存储器),闪存为非易失性,并且即使在切断电源之后仍保持它所存储的数据。尽管成本更高,但是闪存正被更多地用于海量存储应用中。基于诸如硬盘或软盘之类的旋转磁介质的传统海量存储不适合于移动和手持环境。这是因为盘驱动倾向于体积大,易出现机械故障,并且具有高等待时间和高功率要求。这些不希望的属性使得基于盘的存储在大部分移动和便携式应用中不实用。另一方面,嵌入式和可移除卡形式这两种闪存由于其小尺寸、低功耗、高速和高可靠性特征而理想地适合于移动和手持环境。
EEPROM和电可编程只读存储器(EPROM)是可以被擦除、并使新数据写入或“编程”到其存储器单元中的非易失性存储器。在场效应晶体管结构中,两者都利用在源极和漏极区域之间的、位于半导体衬底中的沟道区之上的浮置(未连接)导电栅极。然后在浮置栅极之上提供控制栅极。由被保留在浮置栅极上的电荷量来控制晶体管的阈值电压特性。也就是,对于浮置栅极上给定水平的电荷,存在必须在“导通”晶体管以允许在其源极和漏极区之间导电之前施加到控制栅极的相应电压(阈值)。
浮置栅极可以保持一个范围的电荷,因此可以被编程到在阈值电压窗内的任何阈值电压电平。由器件的最小和最大阈值电平来界定(delimit)阈值电压窗的大小,该最小和最大阈值电平又与可以被编程到浮置栅极上的电荷的范围相对应。阈值窗通常取决于存储器器件的特性、工作条件和历史。在该窗内的每个不同的可分辨的阈值电压电平范围原则上可以用于指定单元的明确的存储器状态。当将阈值电压划分为两个不同区域时,每个存储器单元将能够存储一位数据。类似地,当将阈值电压窗划分为多于两个不同区域时,每个存储器单元将能够存储多于一位数据。
在通常的两状态EEPROM单元中,建立至少一个电流分界点水平以将导电窗划分为两个区域。当通过施加预定的固定电压来读取单元时,其源极/漏极电流通过与分界点水平(或参考电流IREF)相比较而被解析为存储器状态。如果读取的电流高于分界点水平的电流,则确定该单元处于一个逻辑状态(例如“0”状态)。另一方面,如果该电流小于分界点水平的电流,则确定该单元处于另一逻辑状态(例如“1”状态)。从而,这样的两状态单元存储一位数字信息。通常将可以从外部编程的参考电流源提供为存储器系统的一部分,以生成分界点水平电流。
为了增大存储器容量,随着半导体技术的状态进步,正用越来越高密度来制造快闪EEPROM器件。增大存储容量的另一方法是使每个存储器单元存储多于两个状态。
对于多状态或多级EEPROM存储器单元,导电窗通过多于一个分界点被划分为多于两个区域,使得每个单元能够存储多于一位的数据。给定的EEPROM阵列可以存储的信息因此随着每个单元可以存储的状态的数量而增加。在美国专利No.5172338中描述了具有多状态或多级存储器单元的EEPROM或快闪EEPROM。
通常通过两种机制之一来将用作存储器单元的晶体管编程到“已编程”状态。在“热电子注入”中,施加到漏极的高电压加速了穿过衬底沟道区的电子。同时,施加到控制栅极的高电压拉动热电子穿过薄栅极电介质到浮置栅极上。在“隧穿注入”中,相对于衬底,高电压被施加到控制栅极。以此方式,将电子从衬底拉到中间的(intervening)浮置栅极。
可以通过多种机制来擦除存储器器件。对于EPROM,可通过紫外线辐射从浮置栅极移除电荷而大量擦除该存储器。对于EEPROM,可通过相对于控制栅极向衬底施加高电压以便诱使浮置栅极中的电子隧穿过薄氧化物到衬底沟道区(即,Fowler-Nordheim隧穿),而电擦除存储器单元。通常,EEPROM可逐字节擦除。对于快闪EEPROM,在块可由存储器的512字节或更多组成的情况下,该存储器可一次性全部电擦除或一次一个或多个块地电擦除。
存储器器件通常包括可以被安装在卡上的一个或多个存储器芯片。每个存储器芯片包括由诸如解码器和擦除、写和读电路的外围电路支持的存储器单元的阵列。更复杂的存储器器件利用进行智能和更高级的存储器操作和接口的外部存储器控制器而工作。
存在现今正使用的许多商业上成功的非易失性固态存储器器件。这些存储器器件可以是快闪EEPROM,或可以使用其他类型的非易失性存储器单元。在美国专利nos.5070032、5095344、5315541、5343063和5661053、5313421和6222762中给出了闪存和系统及其制造方法的例子。具体地,在美国专利nos.5570315、5903495、6046935中描述了具有NAND串结构的闪存器件。而且还由具有用于存储电荷的介电层的存储器单元制造非易失性存储器器件。取代先前描述的导电浮置栅极元件,使用介电层。由Eitan等人的“NROM:ANovel Localized Trapping,2-Bit Nonvolatile Memory Cell”,IEEE Electron DeviceLetters,vol.21,no.11,2000年11月,543-545页描述了利用介电存储元件的这种存储器器件。ONO介电层延伸穿过在源极和漏极扩散之间的沟道。用于一个数据位的电荷被局限在与漏极相邻的介电层中,且用于另一数据位的电荷被局限在与源极相邻的介电层中。例如,美国专利nos.5768192和6011725公开了具有夹在两个二氧化硅层之间的俘获(trapping)电介质的非易失性存储器单元。通过分别读取该电介质中的空间分离的电荷存储区域的二进制状态来实现多状态数据存储。
为了改善读取和编程性能,并行地读取或编程阵列中的多个电荷存储元件或存储器晶体管。从而,一起读取或编程存储器元件的“页”。在现有存储器架构中,行通常包含几个交织的页,或者它可能构成一页。一页的所有存储器元件将被一起读取或编程。
使用一系列交替的编程/验证周期的传统编程技术用于处理编程过程中的不确定性,其中,响应于VPGM相对大的改变,单元的阈值电压起初增长很快。但是,随着被编程到浮置栅极中的电荷起屏蔽作用而减小了用于使电子进一步隧穿到浮置栅极中的有效电场,增长变慢并最终停止。该过程表现出高度非线性,因此利用了试错(trial-and-error)方法。
编程/验证编程技术的缺点是,验证周期占用时间并影响性能。能够存储多位的存储器单元的实现加剧了该问题。基本上需要对于存储器单元的可能的多个状态中的每个执行验证。对于具有16个可能的存储器状态的存储器,这意味着每个验证周期可能导致高达16个感测操作。从而,随着在多级存储器单元(“MLC”)中可区分的状态级数量的增加,编程/验证方案的验证周期变得越来越耗时。
由Loc Tu等人于2006年9月12日提交的题为“Method for Non-volatile Memorywith Linear Estimation of Initial Programming Voltage”的美国专利申请序列号11/531227公开了通过线性估算来估算初始编程电压的方法。为了实现非易失性存储器的良好编程性能,必须在工厂最优地选择初始编程电压VPGM0和步长大小。这通过测试每页的存储器单元来完成。通过在脉冲之间具有验证的一系列阶梯波形的电压脉冲,来连续编程与所选择的页耦接的字线,直到该页被验证为指定样式(pattern)。通过线性缩放(scale)回到该页的起始编程电压的初始值,编程验证该页时的编程电压将被用于估算。通过把来自第一遍(pass)的估算用在第二遍中,来进一步细化估算。从而,传统的交替编程和验证被用于建立最终编程电压,用于成功对页编程。然后,将最终编程电压线性缩放回到该页的所估算的初始编程电压。这种类型的缩放在总规模上处于页级别,并且没有克服在基于逐单元的领域中的传统编程和验证存储器的缺点。
具体地,传统编程要求在每个脉冲之间的验证操作。当将存储器划分为许多存储器状态时,验证操作必须在每个脉冲之间检查许多状态。验证操作的数量随状态划分数量的平方增加。从而,对于每单元保存3位或更多位数据的存储器,验证操作的数量变得极其大。
为了改善编程解析度(programming resolution),传统方法是使编程脉冲步长大小更精细。但是,这具有成比例增加编程所需的脉冲数量、从而增加编程时间的效果。此外,编程脉冲的增加将增加传统方法中交织验证的数量。
因此,存在对高容量和高性能非易失性存储器的普遍需要。特别地,存在对具有使前述缺点最小化的改善编程性能的高容量非易失性存储器的需要。
发明内容
关联的多遍编程
在多状态存储器中,每个单元可以被编程到具有在阈值电压的预定范围之一内的阈值电压的多状态之一。在这种存储器单元的群体中,期望准确地编程,使得阈值电压或分布的各个范围不扩展为形成模糊的范围。收紧分布的一种技术是进行多个编程遍,每次使用更精细的编程脉冲步长大小。但是,随着越来越精细的脉冲步长大小,编程性能随着脉冲数的增加而降低。
根据本发明的另一方面,在多个编程遍中并行编程一组存储器单元,其中多遍中的编程电压关联联。每个编程遍采用具有公共步长大小的阶梯脉冲串形式的编程电压,并且每个相继的遍具有从前一遍的阶梯脉冲串偏移了预定偏移水平的阶梯脉冲串。该预定偏移水平小于公共步长大小,并且可以小于或等于前一遍的预定偏移水平。
在一个优选实施例中,预定偏移是前一遍的预定偏移的一半。例如,第二遍的阶梯脉冲串从第一遍偏移了步长大小的一半,并且第三遍的阶梯脉冲串从第二遍偏移了步长大小的四分之一。在每遍中,脉冲的数量相同。以此方式,与使用多遍而每遍使用具有更精细的步长大小的编程阶梯脉冲串的传统方法相比,可以使用更少的编程脉冲对多遍实现相同的编程解析度。
关联多遍编程的优点在于通过减少在多个编程遍上的编程脉冲的数量而改善编程性能。
多遍索引编程技术能够极大地节省验证操作的数量。类似地,多遍关联编程技术能够极大地节省所需的编程脉冲的数量。可以将这两种技术一起结合成高性能的多遍索引和关联编程。对于被配置为每单元存储三位或更多位数据的存储器,益处甚至更多。
将从本发明的优选实施例的以下描述中理解本发明的另外的特征和优点,该描述应该结合附图来考虑。
附图说明
图1示意性地图示了可以实现本发明的非易失性存储器芯片的功能块。
图2示意性地图示了非易失性存储器单元。
图3图示了针对浮置栅极可以在任何一个时刻选择性存储的四个不同电荷Q1-Q4的、在源极-漏极电流ID和控制栅极电压VCG之间的关系。
图4图示了存储器单元的NOR阵列的例子。
图5A示意性地图示了组织成NAND串的存储器单元串。
图5B图示了由诸如图5A所示的NAND串50构成的存储器单元的NAND阵列200的例子。
图6图示了图1所示的读/写电路270A和270B,其包含跨过存储器单元阵列的一排(bank)p个感测模块。
图7示意性地图示了图6所示的感测模块的优选组织。
图8更详细地图示了图7所示的读/写堆叠。
图9(0)-9(2)图示了编程4状态存储器单元的群体(population)的例子。
图10(0)-10(2)图示了编程8状态存储器单元的群体的例子。
图11图示了用于将4状态存储器单元编程到目标存储器状态的传统技术。
图12是图示使用传统交替编程/验证算法来编程页的编程脉冲和验证周期的估算数量的表格。
图13是图示索引编程方法的总体方案的流程图。
图14A是图示根据第一实现方式提供存储器单元的编程索引的流程图。
图14B是图示获取存储器单元的编程索引的第二实现方式的流程图。
图14C是图示使用通过一个或多个校验点校准的预测函数来获取存储器单元的编程索引的第三实现方式的流程图。
图14D是图示根据一个实施例的获取存储器单元的编程索引的第三实现方式的流程图。
图14E是图示根据另一实施例的获取存储器单元的编程索引的第三实现方式的流程图。
图15图示了用于提供将存储器单元编程到目标阈值电压电平所需的编程电压的预定函数的优选实施例。
图16图示了对于与在擦除状态之上的第一编程状态对应的校验点的优选指定。
图17图示了在第一编程遍中利用并用于建立每个单元的编程索引的预测编程。
图18A是图示用使得每个另外的脉冲将把存储器单元编程到下一存储器状态的步长大小来设置编程电压的流程图。
图18B示意性地图示了经历第一编程遍的存储器单元的阈值电压。
图19是图示建立存储器单元的编程索引的优选实现方式的流程图。
图20(A)、20(B)和20(C)分别图示了对于图18B所示的“普通”单元、“慢”单元和“非常慢”单元的图19的锁存操作。
图21是图示索引编程方法的优选实施例的流程图。
图22图示了用于修整(trimming)第一遍之后的编程结果的图21的步骤820所示的另外的验证和编程遍。
图23示意性地图示了用于存储验证状况标志的锁存器。
图24A是图示通过使用验证状况标志而使得未验证的存储器单元能够进一步编程的方法的流程图。
图24B是图示通过偏移存储器单元的编程索引而使得未验证的存储器单元能够进一步编程的方法的流程图。
图24C是图示通过偏移脉冲计数而使得未验证的存储器单元能够进一步编程的方法的流程图。
图25是图示使用索引编程技术来编程页的编程脉冲和验证周期的估算数量的表格。
图26图示了把关联多遍编程应用到图21所示的索引编程遍。
图27图示了通过使用多遍编程收紧(tighten)存储器状态的阈值电压分布。
图28A是示出对于存储器状态的各种划分的、在传统多遍编程中使用的编程脉冲数量的表格。
图28B是示出对于存储器状态的各种划分的、在关联多遍编程中使用的编程脉冲数量的表格。
图29是图示在各遍之间利用关联编程电平的多遍编程方法的流程图。
具体实施方式
存储器系统
图1至图10图示了其中可以实现本发明的各个方面的示例存储器系统。
图11和图12图示了传统编程技术。
图13至图29图示了本发明的各个方面和实施例。
图1示意性地图示了其中可以实现本发明的非易失性存储器芯片的功能块。存储器芯片100包括存储器单元的二维阵列200、控制电路210以及诸如解码器、读/写电路和复用器之类的外围电路。
存储器阵列200可经由行解码器230(被分为230A、230B)由字线来寻址,以及经由列解码器260(被分为260A、260B)由位线来寻址(还见图4和5)。读/写电路270(被分为270A、270B)允许并行地读取或编程存储器单元页。数据I/O总线231耦接到读/写电路270。
在优选实施例中,页由共享同一字线的连续行的存储器单元构成。在另一实施例中,在存储器单元行被划分为多页的情况下,提供块复用器250(被分为250A和250B)来将读/写电路270复用到各个页。例如,分别由奇数和偶数列的存储器单元形成的两页被复用到读/写电路。
图1图示了其中在该阵列的相对侧上以对称的方式来实现由各种外围电路对存储器阵列200的访问、使得在每侧的访问线和电路的密度减少一半的优选布置。因此,行解码器被分为行解码器230A和230B,且列解码器被分为列解码器260A和260B。在其中存储器单元行被划分为多页的实施例中,页复用器250被分为页复用器250A和250B。类似地,读/写电路270被分为连接到来自阵列200的底部的位线的读/写电路270A和连接到来自阵列200的顶部的位线的读/写电路270B。以此方式,读/写模块的密度以及因此感测模块380的密度实质上减少了一半。
控制电路110是与读/写电路270协作以对存储器阵列200进行存储器操作的芯片上(on-chip)控制器。控制电路110典型地包括状态机112和诸如芯片上地址解码器和功率控制模块(未明确示出)的其他电路。状态机112提供对存储器操作的芯片级控制。控制电路经由外部存储器控制器与主机通信。
存储器阵列200典型地组织为按行和列排列且可由字线和位线寻址的存储器单元的二维阵列。可以根据NOR类型或NAND类型架构来形成该阵列。
图2示意性图示了非易失性存储器单元。可以由具有诸如浮置栅极或介电层的电荷存储单元20的场效应晶体管来实现存储器单元10。存储器单元10还包括源极14、漏极16和控制栅极30。
存在现今正使用的许多商业上成功的非易失性固态存储器器件。这些存储器器件可以使用不同类型的存储器单元,每个类型具有一个或多个电荷存储元件。
典型的非易失性存储器单元包括EEPROM和快闪EEPROM。在美国专利no.5595924中给出了EEPROM单元及其制造方法的例子。在美国专利nos.5070032、5095344、5315541、5343063、5661053、5313421和6222762中给出了快闪EEPROM单元、其在存储器系统中的使用及其制造方法的例子。具体地,在美国专利nos.5570315、5903495和6046935中描述了具有NAND单元结构的存储器器件的例子。而且,已经在Eitan等人的“NROM:ANovel LocalizedTrapping,2-Bit Nonvolatile Memory Cell”,IEEE Electron Device Letters,vol.21,no.11,2000年11月,543-545页中以及在美国专利nos.5768192和6011725中描述了利用介电存储元件的存储器器件的例子。
实际上,通常通过在向控制栅极施加参考电压时感测穿过单元的源极和漏极电极的导电电流来读取单元的存储器状态。因此,对于在单元的浮置栅极上的每个给定电荷,可以检测关于固定的参考控制栅极电压的相应导电电流。类似地,可编程到浮置栅极上的电荷的范围定义了相应的阈值电压窗或相应的导电电流窗。
或者,取代检测在划分的电流窗之间的导电电流,能够在控制栅极处为在测试下的给定存储器状态设置阈值电压,并检测导电电流是低于还是高于阈值电流。在一个实施方式中,通过检查导电电流经过位线的电容而放电的速率来实现相对于阈值电流对导电电流的检测。
图3图示了对于浮置栅极可以在任何一个时间选择性地存储的四个不同的电荷Q1-Q4的源极-漏极电流ID和控制栅极电压VCG之间的关系。四条实线ID对VCG曲线表示分别与四个可能的存储器状态对应的、可以被编程到存储器单元的浮置栅极上的四个可能的电荷水平。作为例子,单元的群体(population)的阈值电压窗可以是从0.5V到3.5V的范围。可以通过将阈值窗划分为每个以大约0.5V为间隔的五个区域来界定分别表示一个擦除状态和六个编程状态的七个可能的存储器状态“0”、“1”、“2”、“3”、“4”、“5”、“6”。例如,如果如所示地使用2μA的参考电流IREF,则用Q1编程的单元可以被认为是处于存储器状态“1”,因为其曲线与IREF在由VCG=0.5V和1.0V界定的阈值窗的区域中相交。类似地,Q4处于存储器状态“5”。
如从上述描述中可看出,使得存储器单元存储的状态越多,则其阈值窗划分得越精细。例如,存储器器件可以具有拥有范围从-1.5V到5V的阈值窗的存储器单元。这提供了6.5V的最大宽度。如果该存储器单元要存储16个状态,则每个状态可以占据阈值窗中的200mv到300mv。这将需要在编程和读取操作中更高的精度,以便能够实现所需的解析度。
图4图示了存储器单元的NOR阵列的例子。在存储器阵列200中,每行存储器单元通过其源极14和漏极16以菊串(daisy-chain)方式连接。该设计有时被称为虚拟接地设计。行中的单元10具有连接到诸如字线42的字线的其控制栅极30。列中的单元具有分别连接到诸如位线34和36的所选位线的其源极和漏极。
图5A示意性地图示了组织为NAND串的一串存储器单元。NAND串(string)50由通过其源极和漏极菊串连接的一系列存储器晶体管M1、M2......Mn(例如,n=4、8、16或更高)组成。一对选择晶体管S1、S2控制存储器晶体管串分别经由NAND串的源极端54和漏极端56与外部的连接。在存储器阵列中,当源极选择晶体管S1导通时,源极端耦接到源极线(见图5B)。类似地,当漏极选择晶体管S2导通时,NAND串的漏极端耦接到该存储器阵列的位线。在该串中的每个存储器晶体管10用作存储器单元。其具有电荷存储元件20来存储给定量的电荷,以便表示所要的存储器状态。每个存储器晶体管的控制栅极30允许对读和写操作的控制。如将在图5B中看到,NAND串的行的相应存储器晶体管的控制栅极30全部连接到同一字线。类似地,每个选择晶体管S1、S2的控制栅极32提供分别经由其源极端54和漏极端56对NAND串的控制访问。同样,NAND串的行的相应选择晶体管的控制栅极32全部连接到同一选择线。
当在编程期间读取或验证NAND串内的被寻址的存储器晶体管10时,其控制栅极30被供应了适当的电压。同时,NAND串50中的其余未被寻址的存储器晶体管通过在其控制栅极上施加足够的电压而完全导通。以此方式,从各个存储器晶体管的源极到NAND串的源极端54有效地建立了导电路径,且对各个存储器晶体管的漏极到该单元的漏极端56进行类似处理。在美国专利nos.5570315、5903495、6046935中描述了具有这种NAND串结构的存储器器件。
图5B图示了由诸如图5A所示的NAND串50组成的存储器单元的NAND阵列200的例子。沿着每列NAND串,诸如位线36的位线耦接到每个NAND串的漏极端56。沿着每排(bank)NAND串,诸如源极线34的源极线耦接到每个NAND串的源极端54。而且沿着一排NAND串中的一行存储器单元的控制栅极连接到诸如字线42的字线。沿着一排NAND串中的一行选择晶体管的控制栅极连接到诸如选择线44的选择线。在一排NAND串中的整行存储器单元可以通过该排NAND串的字线和选择线上的适当电压而被寻址。当NAND串内的存储器晶体管正被读取时,该串中的剩余存储器晶体管经由其关联的字线而硬导通(turned on hard),使得流过该串的电流主要取决于正被读取的单元中所存储的电荷的水平。
感测电路和技术
图6图示了图1所示的读/写电路270A和270B,其包含跨过存储器单元阵列的一排p个感测模块。并行工作的整排p个感测模块480允许沿着一行的p个单元10的块(或页)被并行读取或编程。实质上,感测模块1将感测单元1中的电流I1,感测模块2将感测单元2中的电流I2,......,感测模块p将感测单元p中的电流Ip,等等。从源极线34流出到集合节点CLSRC并从那里到地的对于页的总单元电流iTOT将是p个单元中所有电流之和。在传统存储器架构中,具有公共字线的一行存储器单元形成两页或多页,其中一页中的存储器单元被并行读取和编程。在一行具有两页的情况下,由偶数位线存取一页,由奇数位线存取另一页。一页的感测电路在任何一个时刻与偶数位线或奇数位线相耦接。在该情况下,提供页复用器250A和250B以将读/写电路270A和270B分别复用到各个页。
在基于56nm技术的当前生产的芯片中,p>64000,并且在43nm 32G位×4芯片中,p>150000。在优选实施例中,块是一连串(run)的整行单元。这是所谓的“全位线(all bit-line)”架构,其中页由分别与邻近位线耦接的一行邻近的存储器单元构成。在另一实施例中,块是行中单元的子集。例如,单元的子集可以是整行的一半或者整行的四分之一。单元的子集可以是一连串的邻近单元或者每隔一个的单元、或者每隔预定数量的单元。每个感测模块经由位线与存储器单元耦接,并包括用于感测存储器单元的导电电流的感测放大器。通常,如果读/写电路分布在存储器阵列的相对侧上,则该排的p个感测模块将分布在读/写电路270A和270B的两个集合之间。
图7示意性地图示了图6所示的感测模块的优选组织。将包含p个感测模块的读/写电路270A和270B分组为一排读/写堆叠400。
图8更详细地图示了图7所示的读/写堆叠。每个读/写堆叠400在一组k条位线上并行工作。如果页具有p=r*k条位线,则将有r个读/写堆叠400-1、...、400-r。实质上,该架构使得由公共处理器500服务于k个感测模块的每个堆叠以节省空间。公共处理器500基于位于感测模块480的锁存器和位于数据锁存器430处的锁存器中的电流值和来自状态机112的控制,计算将被存储在那些锁存器中的被更新的数据。在2006年6月29日的美国专利申请公开号:US-2006-0140007-A1中公开了公共处理器的详细描述,其全部公开内容通过引用合并于此。
并行工作的整排被划分的读/写堆叠400允许沿着一行的p个单元的块(或页)被并行读取或编程。从而,对于整行单元,将有p个读/写模块。因为每个堆叠服务于k个存储器单元,因此该排中读/写堆叠的总数由r=p/k给出。例如,如果r是该排中堆叠的数量,则p=r*k。一个示例存储器阵列可以具有p=150000,k=8,因此r=18750。
诸如400-1之类的每个读/写堆叠实际上包含并行服务于一段(segment)k个存储器单元的感测模块480-1至480-k的堆叠。页控制器410将控制和定时信号经由线路411提供给读/写电路370。页控制器本身经由线路311而依赖于存储器控制器310。每个读/写堆叠400中的通信受互联堆叠总线431影响并被页控制器410控制。控制线411将控制和时钟信号从页控制器410提供给读/写堆叠400-1的组件。
在优选布置中,将堆叠总线划分为用于在公共处理器500和感测模块480的堆叠之间通信的SABus(SA总线)422以及用于在处理器和数据锁存器430的堆叠之间通信的DBus(D总线)423。
数据锁存器430的堆叠包括数据锁存器430-1至430-k,每个与堆叠相关联的存储器单元对应一个。I/O模块440使得数据锁存器能够经由I/O总线231与外部交换数据。
公共处理器还包括输出507,用于输出指示诸如错误情况之类的存储器操作状况的状态信号。该状况信号用于驱动在线或(Wired-Or)配置中与标志总线(FLAG BUS)509相连的n晶体管550的栅极。标志总线优选地由控制器310预充电,并当任何读/写堆叠确立(assert)状况信号时将被拉低。
多状态存储器划分的例子
已经结合图3描述了其中每个存储器单元存储多位数据的非易失性存储器。具体例子是由场效应晶体管的阵列形成的存储器,每个场效应晶体管具有在其沟道区和其控制栅极之间的电荷存储层。电荷存储层或单元可以存储一个范围的电荷,引起对于每个场效应晶体管的一个范围的阈值电压。可能阈值电压的范围跨度是阈值窗。当将阈值窗划分为阈值电压的多个子范围或区带(zone)时,每个可分辨的区带用于代表存储器单元的不同存储器状态。可以通过一个或多个二进制位来编码多个存储器状态。例如,被划分为四个区带的存储器单元可以支持可以被编码为2位数据的四个状态。类似地,被划分为八个区带的存储器单元可以支持可以被编码为3位数据的八个存储器状态,等等。
图9(0)-9(2)图示了编程4状态存储器单元的群体的例子。图9(0)图示了可编程到分别代表存储器状态“0”、“1”、“2”和“3”的阈值电压的四个不同分布中的存储器单元的群体。图9(1)图示了被擦除的存储器的“被擦除”阈值电压的初始分布。图9(2)图示了在编程了许多存储器单元之后的存储器的例子。实质上,单元初始具有“被擦除”阈值电压,并且编程将把它移动到更高的值而进入由DV1、DV2和DV3划界的三个区带之一中。以此方式,每个存储器单元可以被编程到三个编程状态“1”、“2”和“3”之一,或者在“被擦除”状态中保持未被编程。随着存储器得到更多的编程,如图9(1)所示的“被擦除”状态的初始分布将变得更窄,并且由“0”状态代表被擦除状态。
具有较低位和较高位的2位代码可以用于表示四个存储器状态中的每个。例如,“0”、“1”、“2”和“3”状态分别由“11”、“01”、“00”和“10”表示。通过在“全序列”模式下感测,可以从存储器中读取2位数据,在该“全序列”模式下,该两位通过分别在三个次级遍(sub-pass)中相对于读取界定阈值DV1、DV2和DV3感测而一起感测。
图10(0)-10(2)图示了编程8状态存储器单元的群体的例子。图10(0)图示了可编程到分别代表存储器状态“0”至“7”的阈值电压的八个不同分布中的存储器单元的群体。图10(1)图示了被擦除的存储器的“被擦除”阈值电压的初始分布。图10(2)图示了在编程了许多存储器单元之后的存储器的例子。实质上,单元初始具有“被擦除”阈值电压,并且编程将把它移动到更高的值而进入由DV1-DV7界定的8个区带之一中。以此方式,每个存储器单元可以被编程到七个编程状态“1”-“7”之一,或者在“被擦除”状态中保持未被编程。当存储器得到更多的编程时,如图10(1)所示的“被擦除”状态的初始分布将变得更窄,并且由“0”状态代表被擦除状态。
具有较低位和较高位的3位代码可以用于表示8个存储器状态中的每个。例如,“0”、“1”、“2”、“3”、“4”、“5”、“6”和“7”状态分别由“111”、“011”、“001”、“101”、“100”、“000”、“010”和“110”表示。通过在“全序列”模式下感测,可以从存储器中读取3位数据,在该“全序列”模式下,该三位通过分别在七个次级遍中相对于读取界定阈值DV1-DV7进行感测而一起感测。
页或字线编程和验证
对页编程的一种方法是全序列编程。页的所有单元最初处于被擦除状态。从而,将该页的所有单元从被擦除状态朝向它们的目标状态并行编程。一旦被编程到“1”状态,则具有“1”状态作为目标状态的那些存储器单元,就将被禁止进一步编程,而具有目标状态“2”或更高的其他存储器单元将经受进一步编程。最终,具有“2”作为目标状态的存储器单元也将被排除于(lock out)进一步编程。类似地,随着逐渐的编程脉冲,具有目标状态“3”-“7”的单元也到达并被排除。
图11图示了用于将4状态存储器单元编程到目标存储器状态的传统技术。编程电路通常将一系列编程脉冲施加到所选择的字线。以此方式,控制栅极与字线耦接的一页存储器单元可以一起被编程。所使用的编程脉冲串(pulse train)可以具有增加的时段或幅度以便抵消被编程到存储器单元的电荷存储单元中的累积电子。将编程电压VPGM施加到处于编程的页的字线。编程电压VPGM是从初始电压电平VPGM0开始的阶梯波形形式的一系列编程电压脉冲。处于编程的页的每个单元经受该序列的编程电压脉冲,在每个脉冲处试图将增加的电荷添加到该单元的电荷存储元件。在编程脉冲之间,单元被读回以确定它的阈值电压。读回过程可能涉及一个或多个感测操作。当单元的阈值电压已被验证为落入与目标状态相对应的阈值电压区带内时,对于该单元停止编程。无论何时该页的存储器单元被编程到其目标状态时,其被禁止编程,而其他单元继续经受编程,直到该页的所有单元已经被编程验证。
使用一系列交替的编程/验证周期的传统编程技术用于处理编程过程中的不确定性,在该编程过程中起初响应于VPGM相对大的改变,单元的阈值电压增长很快。但是,随着被编程到浮置栅极中的电荷起屏蔽的作用而减小了用于使电子进一步隧穿到浮置栅极中的有效电场,增长变慢并最终停止。
编程/验证编程技术的缺点是,验证周期占用时间并影响性能。能够存储多位的存储器单元的实现加剧了该问题。实质上,需要对于存储器单元的可能的多个状态中的每个执行验证。对于具有16个可能的存储器状态的存储器,这意味着每个验证步骤将导致至少16个感测操作。在一些其他方案中,这可能甚至是多出几倍。从而,随着将存储器划分成增加数量的状态,编程/验证方案的验证周期变得越来越耗时。
图12是图示使用传统交替的编程/验证算法来编程页的编程脉冲和验证周期的估算数量的表格。例如,对于N位存储器,划分成Ns=2N个状态。编程脉冲数量至少与状态数量Ns相同。一些算法可能需要k编程遍(其中k可以是1至4)。对于多状态存储器,每个验证操作进一步乘以2N-1,每个编程状态对应一个。从而,所估算的验证数量与22N成比例,这是状态数量的平方。如可以从表格中看到的,对于3位单元,验证周期的标称数量已经极高,并且其不包括其他方案中所需的另外的感测。对于4位单元,验证周期数量是惊人的。
从而,存在对于具有其中验证周期数量降低的改善编程性能的存储器器件的需要。
索引编程技术
根据本发明的一个总体方面,并行工作在一组存储器单元上的多遍索引编程方法包括:对于每个单元维持编程索引,以便提供诸如该单元已经接收到的最后的编程电压电平之类的信息,使得在随后的编程遍中,可以相对于编程索引进行单元的编程或禁止编程。
优选地,在每个编程遍,如阶梯脉冲串形式的一系列递增脉冲中的编程电压被施加到存储器单元组,使得随着脉冲计数的增加,存储器单元被暴露给增加的编程电压。在优选实施例中,每个离散的编程电压电平被方便地表达为脉冲计数或脉冲数量。类似地,按照脉冲数量表达编程索引。
在存储器单元组的编程遍中,该组中的单元的编程索引用于控制相对于每个递增脉冲允许还是禁止编程。
图13是图示索引编程方法的总体方案的流程图。
步骤700:提供将被并行编程的一组存储器单元,每个存储器单元可被编程到独立的目标阈值电压电平。
步骤710是进一步包括步骤720、步骤730和步骤732的索引编程。
步骤720:为处于编程的该组的每个存储器单元提供编程索引,存储器单元的编程索引指示最后用于编程该存储器单元的编程电压电平、或者在随后编程中允许该存储器单元接收的最大编程电压电平。优选地通过与读/写电路协作的另外的锁存电路来实现编程索引。
步骤730:将递增编程电压作为编程遍中的一系列递增电压脉冲施加到该组存储器单元。
步骤740:相对于存储器单元的编程索引,基于递增的编程电压电平,在该编程遍期间禁止或允许处于编程中的存储器单元的编程。
将看到,随着编程电压增加,正被并行编程的该组的每个存储器单元在编程电压已达到由该单元的编程索引指示的电平之后,被阻止过度编程。以此方式,不同于传统编程方法,在每个编程脉冲之间不需要具有验证步骤。
在第一实现方式中,从存储器单元的初始编程经历来获取单元的编程索引。编程索引存储在编程遍期间被禁止编程之前施加到该单元的最后的编程电压电平或脉冲数。通过如传统交织编程/验证方法中那样交织编程和验证步骤来建立每个单元的编程索引。在该组中的单元被编程验证之后,禁止对该单元的编程,并将最后的脉冲数记录为其编程索引。尽管该实现方式可能导致更多的验证步骤,但是其较不可能过度编程任何单元。然后,可以在随后编程遍中有利地使用为每个单元建立的编程索引以节省验证步骤。
在为存储器单元提供编程索引的第一实现方式中,通过一系列编程脉冲来编程存储器单元,每个脉冲之后跟有验证,直到存储器单元被编程验证到目标阈值电压电平。当存储器单元被编程验证时,该存储器单元的编程索引被设置为与最终编程电压相称。
图14A是图示根据第一实现方式的提供存储器单元的编程索引的流程图。从而,与图13所示的步骤720对应的步骤720’进一步包括步骤721和步骤722:
步骤721:交替地编程和验证存储器单元,直到编程验证了目标阈值电压电平。
步骤722:将编程索引设置为与存储器单元被编程验证为目标阈值电压电平的编程电压电平相称的值。
将看到,第一实现方式是通过在每个编程脉冲之后验证存储器单元的传统编程技术来获取编程索引。该方法提供了单元的接近其目标的最准确的编程,但是以更多的验证操作为代价。
在第二实现方式中,将单元的编程索引初始设置为单元的估算最大编程电压电平,以编程为接近但不超过其目标状态,比如在距离目标状态预定差量(short-fall)内。当阶梯脉冲串被施加到组中的每个单元时,单元在达到由其编程索引指示的期望最大编程电压电平之后,被禁止进一步编程。阶梯脉冲串的随后的脉冲对被禁止的单元将没有影响。在该编程遍的末尾,组中的每个单元将被编程为接近各个相应目标状态,并且每个编程索引将反映每个单元已接收的最后的编程电压电平。
图14B是图示获取存储器单元的编程索引的第二实现方式的流程图。从而与图13所示的步骤720对应的步骤720’包括:
步骤720”:将存储器单元的编程索引设置为将该单元编程到接近但不超过其目标状态而所估算的编程电压电平或等效脉冲数。
在第三实现方式中,从存储器单元的初始编程经历来估算单元的编程索引。具体地,由每个脉冲后跟有验证的一系列编程脉冲将存储器单元从被擦除状态编程到给定阈值电压电平,该给定阈值电压电平用作校验点并校准预测函数,从该预测函数获取对于给定目标阈值电压电平的编程索引或编程电压电平。
图14C是图示使用通过一个或多个校验点校准的预测函数来获取存储器单元的编程索引的第三实现方式的流程图。从而,与图13所示的步骤720对应的步骤720”’包括:
步骤720”’:通过由一个或多个校验点校准的预测函数来设置存储器单元的编程索引。
结合图14D至图21来更详细描述通过预测技术获取单元的编程索引的第三实现方式。
图14D是图示根据一个实施例的获取存储器单元的编程索引的第三实现方式的流程图。从而,与图13所示的步骤720对应的步骤720”’进一步包括步骤723至步骤727。
步骤723:为存储器单元提供预定的预测函数,产生将存储器单元编程到目标阈值电压电平所期望的编程电压电平。
步骤724:使用可由相应的校验点编程电压电平而编程的指定校验点阈值电压电平来为存储器单元指定预定函数的校验点。
步骤725:通过交替地编程和验证存储器单元直到校验点阈值电压电平被编程验证,来确定相应的校验点编程电压值。
步骤726:校准该预定函数以产生当在校验点阈值电压电平处求值(evaluate)时所确定的相应校验点编程电压电平。
步骤727:通过在存储器单元的目标阈值电压电平处对该预定函数求值来估算编程索引。
在为存储器单元提供编程索引的第二实施例中,利用多个校验点来改善编程索引的准确度。
图14E是图示根据另一实施例的获取存储器单元的编程索引的第三实现方式的流程图。
从而,与图13所示的步骤720对应的步骤720”’进一步包括步骤728。
步骤728:除了使用更多的校验点来获取更准确的编程外,类似于图14D的步骤723-727。
根据校验点的预测编程
图15、图16和图17更详细地描述了图14A的步骤720”’所示的预测编程。
在具有存储器单元阵列的非易失性存储器中,其中存储器单元可单独编程到一个范围的阈值电压电平之一,提供了对需要施加什么编程电压电平以便将给定存储器单元编程到给定目标阈值电压电平进行预测的预定函数。以此方式,不需要执行验证操作,从而极大改善编程操作的性能。
在一个实施例中,通过线性函数来近似预测函数,该线性函数对于给定目标阈值电压电平成比例地产生编程电压电平。该线性函数具有由可应用于存储器阵列的单元的群体的预定平均值给出的斜率。通过预先确定关于给定存储器单元的线性函数上的校验点,来对给定存储器单元唯一地确定该线性函数。校验点基于将存储器单元编程到指定阈值电压电平的实际编程电压。校验点优选与存储器单元的最低编程状态之一相对应。通过利用例如传统编程/验证编程技术来将存储器单元初始编程到校验点。以此方式,确定将存储器单元编程到指定存储器状态所需的实际编程电压的各校验点值。从而,预定函数在被用于确定将存储器单元编程到目标阈值电压电平的编程电压值之前被校准,以当在校验点阈值电压电平处求值时产生校验点编程电压值。
预测编程技术的优点在于,编程到目标状态不需要验证操作。验证操作仅需要验证校验点状态而不是存储器的所有可能状态。
图15图示了用于提供将存储器单元编程到目标阈值电压电平所需的编程电压的预定函数的优选实施例。用线性函数来近似该预定函数,其中通过如下关系给出目标阈值电平VT作为编程电压VPGM的函数:
VT(VPGM)=<Slope>VPGM+VT(0) 公式(1)
(其中<Slope>=ΔVT/ΔVPGM)
相反,
VPGM(VT)=1/<Slope>[VT-VT(0)]; 公式(2)
在优选实施例中,可以通过在工厂时测试来自类似生产批次的样品来预定平均<Slope>(<斜率>)。例如,测试可以产生平均为0.9、具有大约0.1的标准偏差的<Slope>。VT(0)是依赖于单元的,并在每个单元的预测编程之前由来自每个存储器单元的校验点来预定。一旦<slope>和VT(0)已知,就定义了存储器单元的预定函数,并且公式(2)可以用于获取编程到目标阈值电压电平所需的编程电压电平。
通常,不是一定要用通过线性函数来近似预定函数。如果预定函数要准确地覆盖宽范围的阈值电压电平,则可以通过在工厂时测试生产批次来确定,并通过某个合适的函数来建模。
每个存储器单元的预测函数的校验点校准
公式(1)或(2)中的VT(0)是依赖于单元的,并通过指定稍微高于被擦除状态的校验点阈值电压,并在脉冲之间实际交替地编程和验证给定单元到检验点来预定。以此方式,将给定单元编程到校验点阈值电压所需的实际编程电压是已知的。然后,将该实际坐标用于求解公式(2)中的VT(0)。
图14A、步骤722、步骤723和步骤724图示了使用存储器单元的预定函数的校验点来校准该函数的总体原理。
图16图示了将校验点指定为与在被擦除状态之上的第一编程状态相对应的优选指定。如在下一部分的描述中将看到的,当编程脉冲串具有使得每个脉冲能够将单元编程到下一存储器状态的步长大小时,校验点将用作校准的基态。显然,如果单元的编程数据要求单元保持在被擦除状态,则将不需要校验点。
步骤724’:指定第一编程的存储器状态的阈值电压电平作为存储器单元的预定函数的校验点。
从而,存储器单元的校验点(0)被指定为处于比被认为与被擦除状态相关联的阈值电压电平稍高的阈值电压电平(校验点阈值电压电平)。在第一编程遍的第一阶段中,施加一系列增加的编程电压脉冲以朝向该校验点阈值电压电平来编程存储器单元。编程模式可以是交替编程和验证直到校验点阈值电压电平被编程验证的传统模式。一旦校验点(0)的坐标集[VPGM,VT]Checkpoint(0)已知,就可以对VT(0)求解公式(2)形式的预定函数(参见图15),并完全规定该预定函数。
在规定了公式(2)形式的预定函数之后,随后可以使用该预定函数在预测模式的第二阶段中编程存储器单元,以提供对于目标阈值电压电平或对于目标存储器状态的估算的编程电压电平。
还在与本申请相同发明人的、2007年4月10日提交的共同未决的美国专利申请No.11/733694“PREDICTIVE PROGRAMMING IN NON-VOLATILE MEMORY”中、以及与本申请相同发明人的、2007年4月10日提交的共同未决的美国专利申请No.11/733706“NON-VOLATILEMEMORY WITH PREDICTIVE PROGRAMMING”中公开了通过一个或多个校验点校准的预测编程。上述两申请的全部公开内容通过引用合并于此。
图17图示了在第一编程遍中采用的、并用于对每个单元构建编程索引的预测编程。第一编程遍是两个阶段的。在所示例子中,第一阶段使用第三实现方式的预测编程方法(参见图14C)来编程存储器单元并维持编程索引。预测编程利用每个单元的预测函数,该预测函数提供将给定单元编程到给定目标状态所需的估算编程电压。
第一编程遍的第一阶段是根据每个单元的编程特性来校准每个单元的预定函数。这通过将每个单元交替编程/验证到指定的阈值电压或校验点来完成。优选地,校验点处于与被擦除状态的阈值电压相邻的阈值电压处,所以交替编程和验证通常涉及相对少的脉冲。脉冲之间的每个验证步骤仅需要感测对于该校验点的一个划界值。
在阶段二中,从处于来自下一存储器状态的已知位置处的校验点开始,每个单元将继续被编程。因此预定函数将能够预测将单元编程到给定目标状态所期望的编程电压,而无需如在传统试错方法中那样在脉冲之间进行验证。每个单元的编程索引将是用于在第一编程遍中编程单元的最后的编程电压电平或脉冲数。
作为具有预定步长大小的脉冲串的编程电压
在优选实施例中,调整编程电压步长大小,使得每个附加的脉冲将把存储器单元编程到下一存储器状态。对于具有16个可能存储器状态的存储器单元的例子,脉冲大小可以是300mV。以此方式,一个附加的脉冲将把存储器编程到状态(1),另一附加的脉冲将把存储器编程到状态(2),等等。从而,编程到给定存储器状态可以被缩减(reduced)为对从状态(0)起的状态数计数并提供相同数量的脉冲。例如,可以将标志设置在状态(0)中一次,其后可以通过与目标状态相距状态(0)的状态的数量相同数量的脉冲来编程存储器单元。
其他编程脉冲大小是可能的。例如,对于具有16个可能的存储器状态的存储器单元,脉冲大小可以是150mV。在该情况下,将采用两个脉冲来从一个存储器状态编程到下一相邻存储器状态。这将在编程中提供更精细的解析度,这在利用相距目标阈值的余量的一些实现方式中是有用的。
图18A是图示设置具有使得每个附加的脉冲将把存储器单元编程到下一存储器状态的步长大小的编程电压的流程图。图13所示的步骤710进一步包括:
步骤712:以具有递增幅度的脉冲串的形式提供具有随时间递增的幅度的编程电压。
步骤714:调整在脉冲之间的幅度增量,使得通过相继的脉冲将存储器单元从一个编程的存储器状态编程到下一编程的存储器状态。
图18B示意性地图示了经受第一编程遍的存储器单元的阈值电压。存储器单元开始于可以处于低的(low-lying)阈值电压电平的任何一个的被擦除状态。在初始编程阶段期间,一系列编程/验证周期(例如,总共x个编程脉冲加上n*x个验证步骤)将把存储器单元从被擦除状态编程到状态(0)。通常,每个存储器单元的x相互独立。归因于各个单元被擦除了多深和其他因素,各个单元可能在到达指定校验点的编程脉冲数方面不同。例如,具有较低阈值电压的“慢”单元将采用比具有较高阈值电压的“普通”单元更多的脉冲来到达状态(0)。被深擦除的“非常慢”的单元将具有甚至更低的阈值电压,并将采用更多的编程脉冲以使它达到状态(0)。一旦存储器单元处于状态(0),预测编程模式就开始,并且每个另外的脉冲将把存储器单元编程到下一存储器状态。
图19是图示为存储器单元建立编程索引的优选实现方式的流程图。编程索引被维持在如图8所示的与存储器单元相关联的数据锁存器430之一中。图13所示的步骤720进一步包括:
步骤752:提供锁存器来存储存储器单元的编程索引。
步骤754:按将存储器单元从校验点状态编程到目标状态所期望的脉冲数的形式,将目标状态初始存储在锁存器中。例如,如果目标状态是状态(5),则值“5”将被存储在锁存器中(二进制值0101)。
步骤756:通过在锁存器中累计将存储器单元从被擦除状态编程到校验点状态所需的脉冲数来计算存储器单元的编程索引,该编程索引指示将存储器单元编程到目标状态所期望的脉冲数。例如,每次在将存储器单元从被擦除状态编程到校验点的过程中,将脉冲施加到该存储器单元时,锁存器中的编程索引递增1。
图20(A)、20(B)和20(C)分别图示了针对图18B所示的“普通”单元、“慢”单元和“非常慢”单元的图19的锁存操作。
图20(A)图示了用于计算图18B所示的示例“普通”存储器单元的编程索引的锁存操作。“普通”存储器单元已经被擦除到位于在被擦除群体的阈值电压范围的中间值附近的阈值电压。存储器单元将被编程到由目标状态锁存器中的数据指示的状态(3)。从而,将用于维持编程索引的数据锁存器初始设置为“3”。随着使存储器单元从被擦除状态到达校验点状态(0)的每个编程脉冲,数据锁存器中的值递增1。当校验点被编程验证时,递增停止。在该例子中,这发生在一个脉冲之后,并且锁存器中的编程索引已递增到“4”。这意味着该单元期望四个脉冲以编程到状态(3)。为了将该单元从校验点编程到状态(3),施加另外三个脉冲使总数为四个脉冲。在单元经受了与编程索引相等的脉冲数后,该单元被禁止编程,而该页中的其他单元可以继续被编程。这由从“P”到“I”的编程/禁止状态表示。
图20(B)图示了用于计算图18B所示的示例“慢”存储器单元的编程索引的锁存操作。“慢”存储器单元已被擦除到位于比被擦除群体的阈值电压范围的中间值低的阈值电压。该存储器单元也将被编程到由目标状态锁存器中的数据指示的状态(3)。从而,将用于维持编程索引的数据锁存器初始设置为“3”。随着使存储器单元从被擦除状态到达校验点状态(0)的每个编程脉冲,数据锁存器中的值递增1。当校验点被编程验证时,递增停止。在该例子中,这发生在两个脉冲之后,并且锁存器中的编程索引递增到了“5”。这意味着该单元期望五个脉冲以编程到状态(3)。为了将该单元从校验点编程到状态(3),施加另外三个脉冲使总数为五个脉冲。在单元经受了与编程索引相等的脉冲数后,该单元被禁止编程,而该页中的其他单元可以继续被编程。这由从“P”到“I”的编程/禁止状态表示。
图20(C)图示了用于计算图18B所示的示例“非常慢”的存储器单元的编程索引的锁存操作。“非常慢”的存储器单元已被擦除到位于被擦除群体的阈值电压范围的较低尾部的阈值电压。该存储器单元也将被编程到由目标状态锁存器中的数据指示的状态(3)。从而,将用于维持编程索引的数据锁存器初始设置为“3”。随着使存储器单元从被擦除状态到达校验点状态(0)的每个编程脉冲,数据锁存器中的值递增1。当校验点被编程验证时,递增停止。在该例子中,这发生在四个脉冲之后,并且锁存器中的编程索引已经递增到“7”。这意味着该单元期望七个脉冲以编程到状态(3)。为了将该单元从校验点编程到状态(3),施加另外三个脉冲使总数为五个脉冲。在单元经受了与编程索引相等的脉冲数后,该单元禁止编程,而该页中的其他单元可以继续被编程。
用于改善编程准确度并收紧阈值分布的利用索引编程的随后编程遍
根据本发明的另一总体方面,在一组存储器单元上并行工作的多遍索引编程方法包括初始编程遍和每个单元的编程索引的构建。初始编程遍之后跟有验证步骤和另外的编程遍,以修整初始遍的任何差量(short-fall)。通过使用索引编程,用数量降低得多的验证操作来执行多遍编程。
当构建每个单元的编程索引时,优选地,第一编程遍还将该组的每个单元编程到接近其各自目标状态的差量内。然后,在一个或多个随后的编程遍中,将每个单元从其差量进一步编程到其目标状态。这优选地通过在每个随后编程遍之前而不是在一遍中的各个脉冲之间的验证步骤来完成。如果单元还没被验证,则在下一编程遍中使能它进行于另外的编程。在编程遍的结尾处的单元的编程索引指示该单元已接收到的最后的编程电压电平。如果验证步骤揭示该单元未被验证到其目标状态,则编程索引将递增预定量以提供在下一编程遍中允许的期望最大编程电压,以便将单元朝向其目标状态编程。在优选实施例中,编程索引按照脉冲数表达,并递增1。在下一编程遍中,存储器单元然后将经历基于其被更新的编程索引的下一脉冲。
在下一编程遍期间,验证的单元被禁止进一步编程。使得未验证的单元能够用超过上一编程遍中的脉冲的一个脉冲而被编程。重复验证步骤和编程遍,直到该组中的所有单元被验证到它们各自的目标状态。以此方式,能够通过在执行验证步骤之前施加整个一连串的脉冲串来将存储器单元页并行地准确编程到它们各自的目标状态。
索引编程的优点是,可以编程单元组而不需要在编程遍的各个编程脉冲之间的验证步骤。索引编程将极大地改善编程操作的性能。
图21是图示索引编程方法的优选实施例的流程图。该方法包括:用于建立每个单元的编程索引的第一编程遍步骤810,之后跟有将单元编程到它们各自的目标状态的验证和索引编程的另外遍的步骤820。
步骤800:提供将被并行编程的一组存储器单元,每个存储器单元可通过一系列递增编程电压脉冲而被编程到各自的目标状态。
步骤810:在初始编程遍期间为该组的每个单元构建编程索引,该编程索引按照脉冲数来存储由每个单元经历的最后的编程电压电平。
步骤820是在编程遍之后验证,并更新用于下一编程遍的编程索引。它进一步包括步骤822、步骤824、步骤826和步骤828:
步骤830:验证该组中的存储器单元。
步骤840:该组中的每个存储器单元被验证到其各自的目标状态?如果已验证,则前进到步骤870;否则,前进到步骤850。
步骤850:将每个未验证的存储器单元的编程索引递增1。
步骤860:用由每个编程索引选择的编程脉冲来编程每个未验证的存储器单元。在优选实施例中,所选择的编程脉冲具有与由编程索引指示的脉冲数相同的脉冲数。前进到用于另一编程遍的步骤830。
步骤870:该组的所有存储器单元被验证为已被编程到它们各自的目标状态。
优选在控制存储器阵列200的存储器操作的控制电路110中的状态机112(参见图1)中实现图13和图21所示的索引编程方法。
图22图示了用于修整第一遍之后的编程结果的、在图21的步骤820中所示的另外的验证和编程遍。在第一编程遍中朝向目标状态的第一次尝试(shot)之后,通过验证来校验每个存储器单元。第一编程遍趋向于尚未达到(under shoot)目标状态。如果任何单元未能验证到它的目标状态,则对它使能在第二编程遍中的递增编程。重复该验证和编程过程,直到该页中的所有单元被验证到它们各自的目标状态。以此方式,通过修整之前遍的编程结果,单元能够准确地收敛于其目标状态。典型地,需要一个或两个修整遍。
图23示意性地图示了用于存储验证状况标志的锁存器。在优选实施例中,作为图8所示的数据锁存器430的一部分的锁存器432用于存储验证状况位。例如,当单元被验证时,将锁存器432中的验证状况位设置为“0”。该标志将导致控制逻辑禁止对该单元的进一步编程/验证操作。另一方面,如果单元验证失败,则该标志将导致控制逻辑允许在下一编程遍中对该单元进行另外的编程。验证状况标志的传统实现方式是通过目标改变来指示编程-禁止。在该情况下,当单元被验证时,目标数据被编程到单元中并且不再需要。从而,指示目标数据的数据锁存器中的数据值被从“目标代码”复位到“擦除代码”,以指定该单元被验证的状况。在本发明中,因为在随后的编程遍中需要目标数据,所以其被保留在数据锁存器中。替代地,验证状况被存储在验证状况标志中。
图24A是图示通过使用验证状况标志来使得未验证的存储器单元能够进一步编程的方法的流程图。当执行图21中的步骤840时,发生如下步骤842和步骤844。
步骤842:根据验证的结果来设置锁存器中的验证状况标志。
步骤844:响应于指示存储器单元未被验证的验证状况标志,前进到步骤850,否则前进到图21的步骤870。
在第二优选实施例中,通过将存储器单元的编程索引向更高偏移预定数量,来使得未验证的存储器单元能够进一步修整编程。在大多数情况下,偏移的预定数量是1。以此方式,在下一编程遍中,将用另外预定数量的脉冲来编程存储器单元。
图24B是图示通过偏移存储器单元的编程索引来使得未验证的存储器单元能够进一步编程的方法的流程图。图21的步骤850被步骤850’代替。
步骤850’:当存储器单元未被验证时,将存储器单元的编程索引递增预定数量,使得在随后的编程遍中,使得该存储器单元能够经受另外的预定数量的脉冲。
在第三优选实施例中,通过在下一编程遍中将脉冲计数向更低偏移预定数量,来使得未验证的存储器单元能够进一步修整编程。以此方式,将用另外的预定数量的脉冲来编程存储器单元。
图24C是图示通过偏移脉冲计数来使得未验证的存储器单元能够进一步编程的方法的流程图。图21的步骤850被步骤852代替。
步骤852:当存储器单元未被验证时,将编程脉冲计数递减预定数量,使得在随后的编程遍中,使得存储器单元能够经受另外的预定数量的脉冲。
图25是图示用于使用索引编程技术对页编程的编程脉冲和验证周期的估算数量的表格。例如,对于N位存储器,划分成Ns=2N个状态。编程脉冲数至少与状态数Ns相同。针对以下给出了脉冲和验证数的估算:1.1)被编程-验证到校验点,1.2)从校验点到目标状态的预测编程,以及2)一个或多个修整遍。图12中的最后一列示出了对于验证总数的估算。可以看到,实质上,它与存储器状态数成比例。可以将该属性与使用图12所示的传统方法的属性相比较,在该传统方法中,验证总数与状态数的平方成比例。例如,对于具有3位存储器单元的存储器,相比于传统的56,估算验证总数是大约18。对于4位存储器,节省甚至更加显著,其中相比于240,验证总数是34。
关联的多遍编程
图13所示的索引编程方法需要多个编程遍。用于索引和预测编程的第一遍很可能在之后跟有用于将编程的阈值修整得更接近目标状态的一个或两个索引编程遍。每个编程遍中的脉冲数至少等于存储器状态数。这将给出粗略的粒度(granularity),即每个脉冲将单元的阈值电压增加与两个状态之间的间隔相等的量。结果,每个存储器状态的阈值分布(例如参见图10)将扩展(spread out)。
使用当前算法,为了对每个存储器状态获取更收紧的阈值电压分布,能够随每一遍而使用越来越精细的步长大小。例如,在第一次修整中,脉冲步长大小可以比在预测编程中使用的脉冲步长大小精细两倍。类似地,在第二次修整中,脉冲步长大小可以比在第一次修整中使用的脉冲步长大小精细两倍,等等。然而,每次步长大小降低一半时,脉冲数以及由此的编程时间将加倍。
根据本发明的另一方面,在多个编程遍中并行编程一组存储器单元,其中,在该多个遍中的编程电压是关联的。每个编程遍利用具有公共步长大小的阶梯脉冲串形式的编程电压,并且每个相继遍具有从前一遍的阶梯脉冲串偏移了预定偏移水平的阶梯脉冲串。该预定偏移水平小于公共步长大小,并且可以小于或等于前一遍的预定偏移水平。
在一个优选实施例中,预定偏移是前一遍的预定偏移的一半。例如,第二遍的阶梯脉冲串从第一遍偏移了步长大小的一半,第三遍的阶梯脉冲串从第二遍偏移了步长大小的四分之一。以此方式,使用比使用多遍而每一遍使用具有更精细的步长大小的编程阶梯脉冲串的传统方法更少的编程脉冲,可以对多遍实现相同的编程解析度。
图26图示了将关联的多遍编程应用到图21所示的索引编程遍。在该方面,图26还示出了从诸如图17和图22所示的第一编程遍得出的修整编程遍2)和3)。在该三个遍中使用的阶梯脉冲串都具有相同的步长大小。在第一编程遍1)中使用的阶梯脉冲串具有VPGM0的初始编程电压。另一方面,在第二编程遍2)中使用的阶梯脉冲串具有VPGM1的初始编程电压,其中VPGM1与VPGM0相关联,使得VPGM1=VPGM0+ΔVPGM1。在优选实施例中,ΔVPGM1=步长大小的一半。
类似地,在第三编程遍3)中使用的阶梯脉冲串具有VPGM2的初始编程电压,其中VPGM2与VPGM1和VPGM0关联,使得VPGM2=VPGM0+ΔVPGM2=VPGM1+ΔVPGM12。在优选实施例中,ΔVPGM2=步长大小的3/4,或者ΔVPGM12=步长大小的1/4。
从而,除了每遍中整个阶梯脉冲的DC电平向更高移动了预定量之外,关联的多遍编程利用相同的阶梯脉冲串来编程每个遍。在优选实施例中,相对于前一遍,第二遍移动了步长大小的一半,第三遍移动了步长大小的四分之一。利用这三个关联编程电压波形的编程产生与三个传统的单遍编程相同的解析度,在该三个传统的单遍编程中,每一遍使用之前遍的阶梯波形一半步长大小的阶梯波形。
图27图示了通过使用多遍编程收紧存储器状态的阈值电压分布。每遍收紧每个分布的下沿。
图28A是示出对于存储器状态的各种划分、在传统多遍编程中使用的编程脉冲数的表格。将看到,脉冲数是(20+21+...2P-1)×2N,其中P是编程的遍数。例如,对于3遍编程,3位单元将需要56个脉冲,4位单元将需要112个脉冲。
图28B是示出对于存储器状态的各种划分的、在关联多遍编程中使用的编程脉冲数的表格。将看到,脉冲数仅是P×2N。例如,对于3遍编程,3位单元将需要24个脉冲,4位单元将需要48个脉冲,这比图28A所示的传统多遍编程所需要的少得多。
图29是图示在各遍之间利用关联编程电平的多遍编程方法的流程图。
步骤960:以具有给定步长大小的阶梯脉冲串的形式提供在有限时段随着时间递增的编程电压。
步骤970:在预定数目的多个编程遍中编程一组存储器单元,每个相继的编程遍具有施加来编程该组存储器单元的阶梯脉冲串,其中每个相继的编程遍具有从前一编程遍的阶梯脉冲串偏移预定偏移水平的阶梯脉冲串。
步骤980:对该组完成编程。
多遍索引编程技术允许极大地节省验证操作的数量。类似地,多遍关联编程技术允许极大地节省所需的编程脉冲的数量。可以将这两种技术一起结合成高性能的多遍索引和关联编程。对于被配置为每单元存储三位或更多位数据的存储器,益处甚至更多。
在此参考的所有专利、专利申请、论文、书本、规范、其他出版物、文档和事物,为所有目的作为参考将其全部内容合并于此。至于在任何所合并的出版物、文档或事物与本文档的文本之间的术语的定义或使用方面的任何不一致或冲突,应以本文档中术语的定义或使用为准。
虽然已经关于某些实施例描述了本发明的各个方面,要理解的是,本发明有权在所附权利要求的整个范围内进行保护。

Claims (26)

1.一种并行编程非易失性存储器单元组的方法,包括:
以具有给定步长大小的阶梯脉冲串形式,提供在有限时间段随时间递增的编程电压;以及
在多个编程遍中编程该组存储器单元,每个相继的编程遍具有被施加来编程该组存储器单元的阶梯脉冲串,并且其中,每个相继的编程遍具有从前一编程遍的阶梯脉冲串偏移预定偏移水平的阶梯脉冲串,
其中,每个编程遍中的预定偏移水平小于所述给定步长大小、并且小于或等于前一编程遍的预定偏移水平。
2.如权利要求1所述的方法,其中:
所述多个编程遍包括:
使用第一阶梯脉冲串的第一编程遍;
使用与第一阶梯脉冲串类似但是从所述第一阶梯脉冲串偏移步长大小的一半的第二阶梯脉冲串的第二编程遍。
3.如权利要求2所述的方法,还包括:
使用与第二阶梯脉冲串类似但是从所述第二阶梯脉冲串偏移步长大小的四分之一的第三阶梯脉冲串的第三编程遍。
4.如权利要求1所述的方法,其中,该组非易失性存储器单元的每个存储器单元可编程到各自的目标状态,并且所述方法还包括:
(a)为编程中的该组的每个存储器单元提供编程索引,存储器单元的编程索引指示用于对该存储器单元编程的最后的编程电压电平;
(b)将所述编程电压作为编程遍中一系列递增的电压脉冲施加到该组存储器单元;以及
(c)根据存储器单元的编程索引,在该编程遍期间对该单元允许编程或禁止编程。
5.如权利要求4所述的方法,其中:
执行所述施加编程电压作为一系列递增的电压脉冲,而不在该编程遍期间的电压脉冲之间对该组存储器单元进行验证步骤。
6.如权利要求4所述的方法,其中:
所述多个编程遍包括:
使用第一阶梯脉冲串的第一编程遍;
使用与第一阶梯脉冲串类似但是从所述第一阶梯脉冲串偏移步长大小的一半的第二阶梯脉冲串的第二编程遍。
7.如权利要求6所述的方法,还包括:
使用与第二阶梯脉冲串类似但是从所述第二阶梯脉冲串偏移步长大小的四分之一的第三阶梯脉冲串的第三编程遍。
8.如权利要求1所述的方法,其中,每个存储器单元具有作为场效应晶体管的浮置栅极的电荷存储元件。
9.如权利要求1所述的方法,其中,每个存储器单元具有作为场效应晶体管中的介电层的电荷存储元件。
10.如权利要求1所述的方法,其中,所述非易失性存储器具有NAND结构的存储器单元。
11.如权利要求1所述的方法,其中,所述非易失性存储器是闪存EEPROM。
12.如权利要求1所述的方法,其中,所述非易失性存储器嵌入在存储卡中。
13.如权利要求1所述的方法,其中,编程中的存储器单元每个存储多于一位的数据。
14.一种非易失性存储器,包括:
存储器单元的阵列,其中,每个存储器单元可编程到各自的目标状态;
读/写电路,用于并行读和编程存储器单元组;
所述读/写电路执行包括以下的编程:
以具有给定步长大小的阶梯脉冲串形式,提供在有限时间段随时间递增的编程电压;以及
在多个编程遍中编程该组存储器单元,每个相继的编程遍具有被施加来编程该组存储器单元的阶梯脉冲串,并且其中,每个相继的编程遍具有从前一编程遍的阶梯脉冲串偏移预定偏移水平的阶梯脉冲串,
其中,每个编程遍中的预定偏移水平小于所述给定步长大小、并且小于或等于前一编程遍的预定偏移水平。
15.如权利要求14所述的非易失性存储器,其中:
所述多个编程遍包括:
使用第一阶梯脉冲串的第一编程遍;
使用与第一阶梯脉冲串类似但是从所述第一阶梯脉冲串偏移步长大小的一半的第二阶梯脉冲串的第二编程遍。
16.如权利要求15所述的非易失性存储器,还包括:
使用与第二阶梯脉冲串类似但是从所述第二阶梯脉冲串偏移步长大小的四分之一的第三阶梯脉冲串的第三编程遍。
17.如权利要求14所述的非易失性存储器,还包括:
用于编程中的该组的每个存储器单元的编程索引,存储器单元的编程索引指示用于编程该存储器单元的最后的编程电压电平;
所述读/写电路执行包括以下的编程:
将编程电压作为编程遍中一系列递增的电压脉冲施加到该组存储器单元;以及
根据存储器单元的编程索引,在该编程遍期间对该单元允许编程或禁止编程。
18.如权利要求17所述的非易失性存储器,其中:
执行所述读/写电路施加编程电压作为一系列递增的电压脉冲,而在该编程遍期间的电压脉冲之间不对该组存储器单元进行验证步骤。
19.如权利要求17所述的非易失性存储器,其中:
所述多个编程遍包括:
使用第一阶梯脉冲串的第一编程遍;
使用与第一阶梯脉冲串类似但是从所述第一阶梯脉冲串偏移步长大小的一半的第二阶梯脉冲串的第二编程遍。
20.如权利要求19所述的非易失性存储器,还包括:
使用与第二阶梯脉冲串类似但是从所述第二阶梯脉冲串偏移步长大小的四分之一的第三阶梯脉冲串的第三编程遍。
21.如权利要求14所述的非易失性存储器,其中,每个存储器单元具有作为场效应晶体管的浮置栅极的电荷存储元件。
22.如权利要求14所述的非易失性存储器,其中,每个存储器单元具有作为场效应晶体管中的介电层的电荷存储元件。
23.如权利要求14所述的非易失性存储器,其中,所述非易失性存储器具有NAND结构的存储器单元。
24.如权利要求14所述的非易失性存储器,其中,所述非易失性存储器是闪存EEPROM。
25.如权利要求14所述的非易失性存储器,其中,所述非易失性存储器嵌入在存储卡中。
26.如权利要求14所述的非易失性存储器,其中,编程中的存储器单元每个存储多于一位的数据。
CN200980126873.4A 2008-06-12 2009-06-04 非易失性存储器和关联多遍编程的方法 Active CN102089827B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US12/138,382 US7796435B2 (en) 2008-06-12 2008-06-12 Method for correlated multiple pass programming in nonvolatile memory
US12/138,387 2008-06-12
US12/138,382 2008-06-12
US12/138,387 US7813172B2 (en) 2008-06-12 2008-06-12 Nonvolatile memory with correlated multiple pass programming
PCT/US2009/046318 WO2009152037A2 (en) 2008-06-12 2009-06-04 Nonvolatile memory and method for correlated multiple pass programming

Publications (2)

Publication Number Publication Date
CN102089827A CN102089827A (zh) 2011-06-08
CN102089827B true CN102089827B (zh) 2017-05-17

Family

ID=41268168

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980126873.4A Active CN102089827B (zh) 2008-06-12 2009-06-04 非易失性存储器和关联多遍编程的方法

Country Status (6)

Country Link
EP (1) EP2297739B1 (zh)
JP (1) JP5395167B2 (zh)
KR (1) KR101558144B1 (zh)
CN (1) CN102089827B (zh)
TW (1) TWI394162B (zh)
WO (1) WO2009152037A2 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102067233B (zh) * 2008-06-12 2014-03-12 桑迪士克科技股份有限公司 使用索引编程和减少的验证的非易失性存储器和方法
JP6539608B2 (ja) * 2016-03-15 2019-07-03 東芝メモリ株式会社 半導体記憶装置
TWI600009B (zh) * 2016-11-04 2017-09-21 財團法人工業技術研究院 可變電阻記憶體電路以及可變電阻記憶體電路之寫入方法
CN110634527B (zh) * 2018-06-25 2021-06-22 西安格易安创集成电路有限公司 一种非易失存储器处理方法及装置
US12075618B2 (en) 2018-10-16 2024-08-27 Silicon Storage Technology, Inc. Input and digital output mechanisms for analog neural memory in a deep learning artificial neural network
US10741568B2 (en) * 2018-10-16 2020-08-11 Silicon Storage Technology, Inc. Precision tuning for the programming of analog neural memory in a deep learning artificial neural network
CN111326200A (zh) * 2018-12-14 2020-06-23 北京兆易创新科技股份有限公司 非易失性存储器及其编程方法
CN113488093A (zh) * 2021-07-01 2021-10-08 中国科学院上海微系统与信息技术研究所 一种实现存储器多级存储的方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6046935A (en) * 1996-03-18 2000-04-04 Kabushiki Kaisha Toshiba Semiconductor device and memory system
CN1414566A (zh) * 2001-06-27 2003-04-30 三因迪斯克公司 降低非易失性存储器存储元件间耦合效应的方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5729489A (en) * 1995-12-14 1998-03-17 Intel Corporation Programming flash memory using predictive learning methods
JP3930074B2 (ja) * 1996-09-30 2007-06-13 株式会社ルネサステクノロジ 半導体集積回路及びデータ処理システム
US6738289B2 (en) * 2001-02-26 2004-05-18 Sandisk Corporation Non-volatile memory with improved programming and method therefor
DE60139670D1 (de) * 2001-04-10 2009-10-08 St Microelectronics Srl Verfahren zur Programmierung nichtflüchtiger Speicherzellen mit Programmier- und Prüfalgorithmus unter Verwendung treppenförmiger Spannungsimpulse mit variablem Stufenabstand
JP2002367381A (ja) * 2001-06-05 2002-12-20 Sony Corp 不揮発性半導体メモリ装置およびその書き込み方法
US6987693B2 (en) * 2002-09-24 2006-01-17 Sandisk Corporation Non-volatile memory and method with reduced neighboring field errors
US7136304B2 (en) * 2002-10-29 2006-11-14 Saifun Semiconductor Ltd Method, system and circuit for programming a non-volatile memory array
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
US7177199B2 (en) * 2003-10-20 2007-02-13 Sandisk Corporation Behavior based programming of non-volatile memory
US7151692B2 (en) * 2004-01-27 2006-12-19 Macronix International Co., Ltd. Operation scheme for programming charge trapping non-volatile memory
JP2005235287A (ja) * 2004-02-19 2005-09-02 Nec Electronics Corp 不揮発性半導体記憶装置のプログラミング方法、プログラミング装置、及び、不揮発性半導体記憶装置
TWI267864B (en) * 2004-05-06 2006-12-01 Samsung Electronics Co Ltd Method and device for programming control information
US7272037B2 (en) * 2004-10-29 2007-09-18 Macronix International Co., Ltd. Method for programming a multilevel phase change memory device
KR100748553B1 (ko) * 2004-12-20 2007-08-10 삼성전자주식회사 리플-프리 고전압 발생회로 및 방법, 그리고 이를 구비한반도체 메모리 장치
US7130210B2 (en) * 2005-01-13 2006-10-31 Spansion Llc Multi-level ONO flash program algorithm for threshold width control
ITMI20050798A1 (it) * 2005-05-03 2006-11-04 Atmel Corp Metodo e sistema per la generazi0ne di impulsi di programmazione durante la programmazione di dispositivi elettronici non volatili
US7366014B2 (en) * 2005-07-28 2008-04-29 Stmicroelectronics S.R.L. Double page programming system and method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6046935A (en) * 1996-03-18 2000-04-04 Kabushiki Kaisha Toshiba Semiconductor device and memory system
CN1414566A (zh) * 2001-06-27 2003-04-30 三因迪斯克公司 降低非易失性存储器存储元件间耦合效应的方法

Also Published As

Publication number Publication date
EP2297739B1 (en) 2015-03-04
KR20110036885A (ko) 2011-04-12
JP2011524599A (ja) 2011-09-01
WO2009152037A2 (en) 2009-12-17
TWI394162B (zh) 2013-04-21
KR101558144B1 (ko) 2015-10-08
CN102089827A (zh) 2011-06-08
WO2009152037A3 (en) 2010-03-18
TW201011756A (en) 2010-03-16
EP2297739A2 (en) 2011-03-23
JP5395167B2 (ja) 2014-01-22

Similar Documents

Publication Publication Date Title
US7826271B2 (en) Nonvolatile memory with index programming and reduced verify
US7800945B2 (en) Method for index programming and reduced verify in nonvolatile memory
EP2335244B1 (en) Nonvolatile memory and method with reduced program verify by ignoring fastest and/or slowest programming bits
US8045378B2 (en) Nonvolatile memory with correlated multiple pass programming
US7944754B2 (en) Non-volatile memory and method with continuous scanning time-domain sensing
CN102089827B (zh) 非易失性存储器和关联多遍编程的方法
EP2370977B1 (en) Non-volatile memory and method for sensing with pipelined corrections for neighboring perturbations
TWI417880B (zh) 用在斜降程式化之非揮發性記憶體及方法
CN102067233B (zh) 使用索引编程和减少的验证的非易失性存储器和方法
CN103797540B (zh) 采用被分解为多遍的阶梯波形的存储器编程方法
US7796435B2 (en) Method for correlated multiple pass programming in nonvolatile memory
KR20130125754A (ko) Nand 플래시 메모리에서 워드라인들의 고속 정착을 위한 기술

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: 20120625

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

Effective date of registration: 20120625

Address after: The United States of America Texas

Applicant after: Sandisk Corp.

Address before: American California

Applicant before: Sandisk Corp.

CB02 Change of applicant information

Address after: texas

Applicant after: DELPHI INT OPERATIONS LUX SRL

Address before: texas

Applicant before: Sandisk Corp.

COR Change of bibliographic data
GR01 Patent grant
GR01 Patent grant