CN105027216A - 非易失性存储器编程算法装置和方法 - Google Patents

非易失性存储器编程算法装置和方法 Download PDF

Info

Publication number
CN105027216A
CN105027216A CN201480008707.5A CN201480008707A CN105027216A CN 105027216 A CN105027216 A CN 105027216A CN 201480008707 A CN201480008707 A CN 201480008707A CN 105027216 A CN105027216 A CN 105027216A
Authority
CN
China
Prior art keywords
memory cell
threshold
value
program voltage
steps
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201480008707.5A
Other languages
English (en)
Other versions
CN105027216B (zh
Inventor
X.刘
J.程
D.巴维诺夫
A.科托夫
J-W.尤
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.)
Silicon Storage Technology Inc
Original Assignee
Silicon Storage Technology Inc
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 Silicon Storage Technology Inc filed Critical Silicon Storage Technology Inc
Publication of CN105027216A publication Critical patent/CN105027216A/zh
Application granted granted Critical
Publication of CN105027216B publication Critical patent/CN105027216B/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/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
    • 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
    • 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/5642Sensing or reading circuits; Data output 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/0408Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors
    • G11C16/0441Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells containing floating gate transistors comprising cells containing multiple floating gate devices, e.g. separate read-and-write FAMOS transistors with connected floating gates
    • 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
    • G11C16/12Programming voltage switching 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
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory 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/10Programming or data input circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Semiconductor Memories (AREA)
  • Non-Volatile Memory (AREA)

Abstract

本发明提供一种用于使用重复编程电压脉冲对单元编程的非易失性存储器装置和方法,其中使用交错的读取操作来确定读取电流的水平,直到实现期望的编程状态。每个相继编程脉冲的一个或多个编程电压都相对于前一个脉冲增大一个步长值。针对单级单元类型,在达到第一读取电流阈值后将每个单元单独地从所述编程脉冲中去除,并且此后对一个或多个冲击脉冲增加所述步长值。针对多级单元类型,在所述单元的其中一个单元达到第一读取电流阈值后所述步长值下降,在达到第二读取电流阈值后将一些单元单独地从所述编程脉冲中去除,而在达到第三读取电流阈值后将另一些单元单独地从所述编程脉冲中去除。

Description

非易失性存储器编程算法装置和方法
相关申请案
本申请要求2013年3月14日提交的美国临时申请No.61/785,485的权益,并且该美国临时申请以引用方式并入本文中。
技术领域
本发明涉及非易失性存储器单元的编程。通常,非易失性存储器单元包括设置在衬底上方并且与衬底绝缘的浮栅。在编程期间,通过有效的热电子注入对所选择的存储器单元编程,其中沿衬底移动的电子注入到浮栅上,让浮栅具有负电荷。这被认为是已编程状态。在擦除期间,通过使电子经由福勒-诺德海姆机制关闭浮栅来擦除所选择的单元。这被认为是已擦除状态。在读取期间,创造条件,让电流沿着浮栅下面的衬底表面流动。如果使用电子对浮栅编程,将减少或阻止此类电流,从而会被感测为已编程状态。如果未使用电子对浮栅编程,将允许此类电流,从而会被感测为已擦除状态。
在非易失性存储器(NVM)单元操作中,为了使设计变得简单,会在所有环境条件下对所有单元使用固定的编程条件。然而,此类编程条件包括大范围的内置工作裕度,以适应存储器装置寿命期间的单元间变化、过程变化、温度变化、供电范围和单元特征变化等等。因此,在大多数工作条件下,大多数存储器单元在编程操作期间都会出现过应力。这种过应力会缩短装置在耐久性和数据保持方面的寿命。
因此,需要在不过度编程并且因此没有产生不必要的存储器单元应力的条件下可靠地对存储器单元编程并且考虑单元对单元变化和其他编程变化的编程技术。
发明内容
一种对具有存储器单元的存储器装置编程的方法,其中每个存储器单元都包括位于半导体衬底中的之间有沟道区的源极区和漏极区、设置在沟道区的至少一部分上方并且影响所述沟道区的所述至少一部分的导电性的浮栅,以及与浮栅和衬底绝缘的一个或多个额外的导电栅极,其中可通过将编程电压施加到源极区和所述一个或多个额外的导电栅极使产生于漏极区的电子注入到浮栅上,来编程每个存储器单元,并且其中可通过在源极区和漏极区之间施加电压差并测量沟道区中的读取电流,来读取每个存储器单元的编程状态都。该方法包括:
1)将编程电压脉冲施加到多个所述存储器单元的源极区和所述一个或多个导电栅极;
2)读取所述多个存储器单元的编程状态;
3)重复执行步骤1和步骤2,直到多个存储器单元中的至少一个在步骤2中展现出的读取电流达到第一阈值,其中重复执行步骤1和步骤2包括每当重复执行步骤1时都将步骤1的编程电压中的至少一个增大第一步长值;在达到第一阈值后,针对所述多个存储器单元的每个第一子集:
4)将编程电压脉冲施加到存储器单元的源极区和所述一个或多个导电栅极;
5)读取存储器单元的编程状态;
6)重复执行步骤4和步骤5,直到存储器单元在步骤5中展现出的读取电流达到不同于第一阈值的第二阈值,其中重复执行步骤4和步骤5包括每当重复执行步骤4时都将步骤4的编程电压中的至少一个增大第二步长值,其中第二步长值小于第一步长值;并且
在达到第一阈值后,针对所述多个存储器单元的每个第二子集:
7)将编程电压脉冲施加到存储器单元的源极区和所述一个或多个导电栅极;
8)读取存储器单元的编程状态;
9)重复执行步骤7和步骤8,直到存储器单元在步骤8中展现出的读取电流达到不同于第一阈值和第二阈值的第三阈值,其中重复执行步骤7和步骤8包括每当重复执行步骤7时都将步骤7的编程电压中的至少一个增大第三步长值,其中第三步长值小于第一步长值;
一种对具有存储器单元的存储器装置编程的方法,每个存储器单元都包括位于半导体衬底中的之间有沟道区的源极区和漏极区、设置在沟道区的至少一部分上方并且影响所述沟道区的所述至少一部分的导电性的浮栅,以及与浮栅和衬底绝缘的一个或多个额外的导电栅极,其中可通过将编程电压施加到源极区和所述一个或多个额外的导电栅极使产生于漏极区的电子注入到浮栅上,来编程每个存储器单元,并且其中可通过在源极区和漏极区之间施加电压差并测量沟道区中的读取电流,来读取每个存储器单元的编程状态。该方法包括:
针对多个所述存储器单元的每个第一子集:
1)将编程电压脉冲施加到存储器单元的源极区和所述一个或多个导电栅极;
2)读取存储器单元的编程状态;
3)重复执行步骤1和步骤2,直到存储器单元在步骤2中展现出的读取电流达到第一阈值,其中重复执行步骤1和步骤2包括每当重复执行步骤1时都将步骤1的编程电压中的至少一个增大第一步长值;并且
针对所述多个存储器单元的每个第二子集:
4)将编程电压脉冲施加到存储器单元的源极区和所述一个或多个导电栅极;
5)读取存储器单元的编程状态;
6)重复执行步骤4和步骤5,直到存储器单元在步骤5中展现出的读取电流达到不同于第一阈值的第二阈值,其中重复执行步骤4和步骤5包括每当重复执行步骤4时都将步骤4的编程电压中的至少一个增大第二步长值。
一种对具有存储器单元的存储器装置编程的方法,每个存储器单元都包括位于半导体衬底中的之间有沟道区的源极区和漏极区、设置在沟道区的至少一部分上方并且影响所述沟道区的所述至少一部分的导电性的浮栅,以及与浮栅和衬底绝缘的一个或多个额外的导电栅极,其中可通过将编程电压施加到源极区和所述一个或多个额外的导电栅极使产生于漏极区的电子注入到浮栅上,来编程每个存储器单元,并且其中可通过在源极区和漏极区之间施加电压差并测量沟道区中的读取电流,来读取每个存储器单元的编程状态。该方法包括:
针对多个所述存储器单元中的每一个:
1)将编程电压脉冲施加到存储器单元的源极区和所述一个或多个导电栅极;
2)读取存储器单元的编程状态;
3)重复执行步骤1和步骤2,直到存储器单元在步骤2中展现出的读取电流达到第一阈值,其中重复执行步骤1和步骤2包括每当重复执行步骤1时都将步骤1的编程电压中的至少一个增大第一步长值;并且
在所有所述多个存储器单元都达到第一阈值后,将编程电压冲击脉冲施加到所有所述多个存储器单元的源极区和所述一个或多个导电栅极,其中所述施加冲击脉冲包括相对于在步骤1-3中施加的编程电压,将编程电压中的至少一个增大第二步长值。
一种存储器装置具有存储器单元(每个存储器单元都包括位于半导体衬底中的之间有沟道区的源极区和漏极区、设置在沟道区的至少一部分上方并且影响所述沟道区的所述至少一部分的导电性的浮栅,以及与浮栅和衬底绝缘的一个或多个额外的导电栅极,其中每个存储器单元被配置为可通过将编程电压施加到源极区和所述一个或多个额外的导电栅极使产生于漏极区的电子注入到浮栅上来编程,并且其中可通过在源极区和漏极区之间施加电压差并测量沟道区中的读取电流,来读取每个存储器单元的编程状态)以及控制电路,该控制电路被配置为:
1)将编程电压脉冲施加到多个所述存储器单元的源极区和所述一个或多个导电栅极;
2)读取所述多个存储器单元的编程状态;
3)重复执行步骤1和步骤2,直到所述多个存储器单元中的至少一个在步骤2中展现出的读取电流达到第一阈值,其中重复执行步骤1和步骤2包括每当重复执行步骤1时都将步骤1的编程电压中的至少一个增大第一步长值;
在达到第一阈值后,针对所述多个存储器单元的每个第一子集:
4)将编程电压脉冲施加到存储器单元的源极区和所述一个或多个导电栅极;
5)读取存储器单元的编程状态;
6)重复执行步骤4和步骤5,直到存储器单元在步骤5中展现出的读取电流达到不同于第一阈值的第二阈值,其中重复执行步骤4和步骤5包括每当重复执行步骤4时都将步骤4的编程电压中的至少一个增大第二步长值,其中第二步长值小于第一步长值;并且
在达到第一阈值后,针对所述多个存储器单元的每个第二子集:
7)将编程电压脉冲施加到存储器单元的源极区和所述一个或多个导电栅极;
8)读取存储器单元的编程状态;
9)重复执行步骤7和步骤8,直到存储器单元在步骤8中展现出的读取电流达到不同于第一阈值和第二阈值的第三阈值,其中重复执行步骤7和步骤8包括每当重复执行步骤7时都将步骤7的编程电压中的至少一个增大第三步长值,其中第三步长值小于第一步长值。
一种存储器装置具有存储器单元(每个存储器单元都包括位于半导体衬底中的之间有沟道区的源极区和漏极区、设置在沟道区的至少一部分上方并且影响所述沟道区的所述至少一部分的导电性的浮栅,以及与浮栅和衬底绝缘的一个或多个额外的导电栅极,其中每个存储器单元被配置为可通过将编程电压施加到源极区和所述一个或多个额外的导电栅极使产生于漏极区的电子注入到浮栅上来编程,并且其中通过在源极区和漏极区之间施加电压差并测量沟道区中的读取电流,来读取每个存储器单元的编程状态)以及控制电路,该控制电路被配置为:
针对多个所述存储器单元的每个第一子集:
1)将编程电压脉冲施加到存储器单元的源极区和所述一个或多个导电栅极;
2)读取存储器单元的编程状态;
3)重复执行步骤1和步骤2,直到存储器单元在步骤2中展现出的读取电流达到第一阈值,其中重复执行步骤1和步骤2包括每当重复执行步骤1时都将步骤1的编程电压中的至少一个增大第一步长值;并且
针对所述多个存储器单元的每个第二子集:
4)将编程电压脉冲施加到存储器单元的源极区和所述一个或多个导电栅极;
5)读取存储器单元的编程状态;
6)重复执行步骤4和步骤5,直到存储器单元在步骤5中展现出的读取电流达到不同于第一阈值的第二阈值,其中重复执行步骤4和步骤5包括每当重复执行步骤4时都将步骤4的编程电压中的至少一个增大第二步长值。
一种存储器装置具有存储器单元(每个存储器单元都包括位于半导体衬底中的之间有沟道区的源极区和漏极区、位于设置在沟道区的至少一部分上方并且影响所述沟道区的所述至少一部分的导电性的浮栅,以及与浮栅和衬底绝缘的一个或多个额外的导电栅极,其中每个存储器单元被配置为可通过将编程电压施加到源极区和所述一个或多个额外的导电栅极使产生于漏极区的电子注入到浮栅上来编程,并且其中可通过在源极区和漏极区之间施加电压差并测量在沟道区中的读取电流,来读取每个存储器单元的编程状态)以及控制电路,该控制电路被配置为:
针对多个所述存储器单元中的每一个:
1)将编程电压脉冲施加到存储器单元的源极区和所述一个或多个导电栅极;
2)读取存储器单元的编程状态;
3)重复执行步骤1和步骤2,直到存储器单元在步骤2中展现出的读取电流达到第一阈值,其中重复执行步骤1和步骤2包括每当重复执行步骤1时都将步骤1的编程电压中的至少一个增大第一步长值;并且
在所有所述多个存储器单元都达到第一阈值后,将编程电压冲击脉冲施加到所有所述多个存储器单元的源极区和所述一个或多个导电栅极,其中所述施加冲击脉冲包括相对于在步骤1-3中施加的编程电压,将编程电压中的至少一个增大第二步长值。
通过查看说明书、权利要求和附图,本发明的其他对象和特征将变得显而易见。
附图说明
图1为一对存储器单元的横截面图。
图2为图1所示的存储器单元阵列的示意图。
图3为曲线图,示出了根据读取电流的MLC存储器单元的编程状态和擦除状态。
图4为示出用于MLC存储器单元的迭代编程方法中的步骤顺序的流程图。
图5为曲线图,示出了根据读取电流的SLC存储器单元的编程状态和擦除状态。
图6为示出用于SLC存储器单元的迭代编程方法中的步骤顺序的流程图。
具体实施方式
本发明通过提供编程算法来减小或解决存储器单元上的编程过应力,该编程算法使单元退化最小化并且同时确保有足够的写裕度来适应整个装置寿命中的环境变化和单元行为变化。这种技术可导致耐久性和数据保持能力得到改善。编程算法可用于多级单元(MLC)非易失性存储器装置的设计和操作,也可用于单级单元(SLC)非易失性存储器装置的设计和操作。编程算法可用于改善嵌入式非易失性存储器装置(即与逻辑装置位于相同芯片上的、具有非易失性存储器单元的那些装置)的可靠性,也可用于改善独立式非易失性存储器单元的可靠性。最后,编程算法可应用于不同数量导电栅极的存储器单元配置。
例如,编程算法特别适用于美国专利7,927,994公开的类型的分裂栅非易失性存储器单元,该美国专利出于所有目的以引用方式并入本文。图1示出了形成在半导体衬底12上的一对此类存储器单元10。源极扩散区16和漏极扩散区14形成在衬底12中,并且两者之间限定沟道区18。每一个存储器单元都具有四个导电栅极:设置在沟道区18的第一部分上方并且与沟道区的该第一部分绝缘的选择栅20、设置在沟道区18的第二部分和源极区16的一部分上方并且与沟道区的该第二部分和源极区的该部分绝缘的浮栅22、设置在源极区16上方并且与源极区16绝缘的擦除栅24,以及设置在浮栅22上方并且与浮栅22绝缘的控制栅26。优选地,擦除栅24可具有竖直设置在浮栅22上方的上部(例如,竖直悬垂)。
存储器单元被布置成阵列,其中此类存储器单元的列被隔离区以交织方式分离。每列存储器单元都包含端对端布置的图1中的存储器单元对,因此每对存储器单元共享相同的源极区16,并且相邻的存储器单元对共享相同的漏极区14。如图2所示,用于整行存储器单元的选择栅20连接在一起,作为单一的导电线(通常被称为字线(WL)),使得每条字线连接到或形成用于每列存储器单元中的一个存储器单元的选择栅20(即每条字线将一行选择栅20电连接在一起)。控制栅26类似地连接在一起或形成为沿存储器单元行延伸的连续控制栅线(即,每条控制栅线将一行控制栅26电连接在一起)。擦除栅24也类似地连接在一起或形成为沿存储器行延伸的连续擦除栅线(即每条栅极线将一行擦除栅24电连接在一起)。源极区16连续地形成为在行方向上延伸并在用于整行存储器单元对的源极区16中工作的源极线(SL)(即每条源极线与一行源极区16电连接在一起)。导电位线触点72将漏极14电连接到位线70,借此每条位线70与一列漏极区14电连接在一起。预定数量的存储器单元行和存储器单元列关联在一起作为页。
在常规编程期间,通过有效的热电子注入对所选择的存储器单元编程,并且在浮栅下方的沟道部分反转。针对所选择的存储器单元,将中压(例如3-6伏)施加到源极区16,以产生热电子。向漏极14施加小电流(例如0.1-5μA)。也向选择栅施加小电压(例如1-2伏)。控制栅26被偏置成高压(例如6-9伏),以利用高耦合比并使耦合到浮栅22的电压最大化。控制栅24也被偏置成中压或高压(例如3-9伏),以使耦合到浮栅22的电压最大化。耦合到浮栅的高压在浮栅下方引起沟道反转并在分裂区(在选择栅20与浮栅22之间)中聚集横向场,以更有效地产生电子。此外,这些电压提供高竖直场,以将热电子吸引到浮栅上并减小注入能量势垒。在编程期间,漏极区14产生的电子将通过选择栅20下方沟道区的弱反转部分从漏极区14流向源极区16。随着电子到达沟道区18的位于浮栅22下方的部分,这些电子将看到高横向场。这些电子将加速并变热,并且相当大一部分热电子通过绝缘层注入到浮栅22上。电子将持续被注入到浮栅22上,直到浮栅22上电荷的减少不再沿着沟道区维持高电势表面反转层以产生热电子。这时,浮栅22中的电子或负电荷将使从漏极区14流到浮栅22上的电子流减小。
因此,常规编程在预定的时间段内施加上述电压,其中电压和时间段被设置得足够高(即包括额外的裕度),以确保对正被编程的所有存储器单元的浮栅进行正确编程。然而,通过使用固定的电压和时间裕度来确保存储器单元全都被编程,在编程期间时间存储器单元经常会出现过应力(即一些存储器单元被过度编程,以确保其他存储器单元被正确地编程)。因此,本发明的编程方法使用编程电压脉冲,其中每个后续脉冲的至少一个电压在值上基于居间读取验证的结果而递增,并且在存储器单元达到期望的电荷状态时电压步长的大小被调整。该方法也在浮栅已经被可靠地编程而没有发生会对存储器单元造成不当应力的过度编程的时刻单独终止对单元的编程。
本发明的编程方法不仅可用在具有1种已编程状态的单级单元(SLC)中,还可用在具有2种或更多种已编程状态的多级单元(MLC)中。图3示出了根据所检测的读取电流的具有3种已编程状态的多级单元(MLC)的电荷状态。在该例子中,可使用对应于不同已编程状态的不同水平的电子对浮栅编程,每个已编程状态都具有唯一的可检测读取电流范围。L3级表示已擦除状态(浮栅带正电,因此在施加读取电压时允许较强的所检测读取电流)。L2级和L1级表示轻编程状态(使用适度数量的电子对浮栅编程,以在施加读取电压时降低读取电流)。L0级表示强编程状态(使用足够的电子对浮栅编程,以在施加读取电压时将读取电流降低到最小水平)。所述3种已编程状态(L2、L1和L0)连同已擦除状态(L3)用于在每个单元中存储2比特的数据,从而在不增大芯片上存储器阵列区域的情况下使存储密度加倍。
在读取期间,将单元读取电流与三个单独的标准读取参考级(NR L0、NR L1、NR L2)相比较,以确定单元的电荷状态。读取电流小于NRL0的单元被确定为处于L0状态。读取电流高于NRL0但低于NRL1的单元被确定为处于L1状态。读取电流高于NRL1但低于NRL2的单元被确定为处于L2状态。读取电流高于NRL2的单元被确定为处于L3状态。
在编程算法期间,对照单独的验证参考级验证单元,这些单独的验证参考级从NR级提供裕度防护带,并且确保对照NR参考级的后续读取将可靠地检测单元电荷状态。V0L0、V0L1和V0L2为验证读取参考级,它们向相应的NR级提供较低裕度。这些裕度考虑了陷阱电荷弛豫、读取干扰、读取噪声、温度/电压灵敏度以及寄生电阻效应。V1L0、V1L1和V1L2为验证读取参考级,它们向相应的NR级提供更高裕度。这些裕度考虑读取噪声、温度/电压灵敏度、编程干扰、寄生电阻效应以及来自邻近单元的电荷耦合。编程算法确保针对L2状态和L1状态,将每个单元编程为低于对应的V0级,但仍高于基础的V1级。针对L0,为确保可靠地进行后续读取,将每个单元编程为充分低于V0L0,但不需要过于极端。
存在稍微高于V1L2的单独的验证参考级PREF。PREF用作用于调整在编程脉冲串中使用的电压步长大小的触发器。这种调整有助于在不牺牲准确度的情况下使程序吞吐量最大化。
接下来将描述编程算法的细节。编程算法涉及使用一系列编程脉冲对一组单元编程,其中每个编程脉冲都具有比前一个脉冲递增的强度。第一脉冲条件的例子为施加以下电压/电流:在预定时间量(例如,-1μs)内,源极线=3V,控制栅=4V,擦除栅3V,选择栅=1-2V,位线=1μA。可通过针对每个相继脉冲使其中一个电压偏压(例如控制栅电压VCG、源极线电压VSL或擦除栅电压VEG)增大某一步长大小来实现强度增大。在以下例子中,VCG和VSL两者都增大。不过,可采用VCG、VSL和/或VEG的编程电压增大的任何组合。
优选地,在同一程序操作中对多个存储器单元编程。例如,在同一操作中,可将一页数据编程到共享同一字线WL的多个存储器单元。可替代地,也可将一页数据分成若干组,对每组单元并行编程,并且在完成每组单元的编程后再对另外的组编程。为了在所选择的WL上选择将要编程为其中一种已编程状态的那些存储器单元(“所选择的单元”),将那些BL偏置到程序条件,例如1μA。为了在所选择的WL上取消选择将处于已擦除状态的那些存储器单元(“未选择的单元”),将那些未选择的BL偏置到抑制编程的条件,诸如2V。
编程步骤如图4所示。编程始于设置初始程序条件并清除追踪程序过程的内部寄存器。接着使用三个较低裕度的参考级V0L0、V0L1、和V0L2回读将被编程的单元组。将来自这次读取的数据与程序缓冲器中的数据(在算法结束时需要被编程到该组单元中的外部数据)相比较,并且在比较过程中生成要编程数据(DTP),并且将这些数据存储在第二缓冲器中。仅选择具有L0、L1或L2的DTP的单元进行后续编程。如果与程序缓冲器中相应的级相比,单元被验证为处于较低电流电荷状态,则将设置错误信号,以向系统通知出现了程序错误。
如果初始DTP包含任何L1或L2数据(与是否存在L0数据无关),则对照PREF验证将要编程的该组单元,以确定初始电压步长大小。如果具有L1或L2的DTP的任何单元已经达到PREF(即已经读取到等于或小于PREF的单元电流),这表示这些单元处于接近其最终目标的电荷状态,并且为了将这些单元精确地编程为目标级,需要进行轻编程。这可通过将初始VCG步长和VSL步长的大小设置为较小的值Ss(例如50mV)来实现。如果为L1或L2数据预定的单元没有一个已经达到PREF(即它们全都读取到大于PREF的单元电流),则VCG步长和VSL步长的大小最初都被设置为中间值SI(例如200mV),以加快此初始编程阶段的速度。如果初始DTP包含L0数据,但不包含L1数据或L2数据,那么不需要精确地将数据编程为中间级,并且编程电压步长最初被设置为较大值SL,例如500mV。
接着施加编程脉冲,其中每个相继脉冲的VCG电压和VSL电压在值上以最初设置的步长大小SS、SI或SL递增。在每个脉冲后,通过使用三个较低裕度参考级VOL0、VOL1和V0L2来使每一个正在被编程的单元再次被执行验证读取。通过此验证读取的结果生成新的DTP,然后过程如上所述那样继续。在初始步长大小被设置为SI的情况下,编程脉冲继续下去,直到其中一个具有L1或L2的DTP的单元达到PREF,此时,步长大小从SI下降到SS。如果在任何时间具有L1的DTP的单元达到VOL1,则从DTP中去除该单元,并且对该单元的编程会终止。同样,如果在任何时间具有L2的DTP的单元达到VOL2,则从DTP中去除该单元,并且对该单元的编程会终止。从DTP中去除L1和L2单元优选地为不可逆的。如果某个单元达到其相应的V0并且被从DTP中去除后,即使后续验证指示该单元高于V0(因为存在读取噪声,因此这是常见的),该单元依然会被从DTP中去除。此措施是为了确保总是使用具有控制良好的步长大小的稳定脉冲串对L1单元和L2单元精确编程。如果在单元通过验证后跳过了若干脉冲并且在单元再次验证失败后施加了后续脉冲,则编程电压的突跳将造成过度编程。
最后,如果在任何时间具有L0的DTP的单元达到VOL0,则从DTP中去除该单元,并且对该单元的编程会终止。在初始步长大小被设置为SS的情况下,编程脉冲将继续下去,直到具有L1和L2的DTP的所有单元达到其V0阈值并且从DTP下降(即这些单元已经达到其最终目标)。此时,如果存在具有L0的DTP的任何单元,那么步长大小会从SS变成SL,因为不再需要进行轻编程。同样,如果在使用步长大小SI编程时具有L1和L2的DTP的所有单元都达到其最终目标且从DTP下降,并且仍存在具有L0的DTP的单元,那么步长大小会从SI变成SL。最终,如果初始步长大小被设置为SL,那么将继续使用这个步长大小进行编程,直到具有L0的DTP的单元达到V0L0。随着单元达到其目标并且从DTP和编程下降,将继续对剩余的单元编程,直到任一DTP都不再包含任何L0数据、L1数据和L2数据,或直到达到最大预定数量的编程脉冲。在后一种情况下,设置了一种错误信号,用以向系统报告编程故障。
针对L0单元,将其最终目标设置为比读取电流感测到的状态更深的已编程状态,有时是有利的。例如,在读取速度和功率消耗方面,针对读取偏压使用现有的低电压电源是有显著优势的。然而,读取电压方面的这种限制也会限制耦合到浮栅的电压,并继而降低单元读取电流。在超过VOL0级的深编程状态下感测编程裕度可能很难。NRL0-V0L0防护带裕度不必要地占据总操作窗的一部分,并且深编程的电荷状态不被利用。因此,具有精心设计的电压步进的一个或多个额外的编程脉冲,可被用于提供额外的可靠性防护带,并使单元操作窗能够伸展到更深编程的状态。在DTP仅包含L3数据后,检查程序缓冲器是否存在任何L0数据。如果是,这表示存在编程到L0的单元,并且这些单元已经通过L0V0认证。将电压步长大小设置为较大的值,例如500mV,并且施加预定数量的额外编程脉冲(即第一脉冲比用于对上一个L0单元编程以达到V0L0的上一个脉冲高500mV),每个脉冲具有增大了所选择步长大小(即SL)的偏压。步长大小和额外脉冲数量的选择取决于裕度要求。
在一组单元的编程完成后,以相同的方式对同一页内的其他组的单元编程。在整页完成编程后,使用参考级V1L0、V1L1和V1L2对该页进行验证读取,并且将所得数据与程序缓冲器中的原始数据比较。这个最终验证检查在页编程期间可能出现的过度编程和编程干扰。如果任何验证返回了不期望的数据,那么将报告错误,向系统警示程序故障。
为了确保可靠性,将最大编程电压值设置在值递增的编程电压上。为了说明,针对上述非限制性例子,施加4-8V的源极最大电压,诸如5V。同样施加8-11V的控制栅最大电压,诸如10V。如果已经达到最大电压,那么编程将继续,不再进一步增大此特定电压。还施加1到256个最大数量的编程脉冲,诸如64个。如果达到最大脉冲数量,则编程停止,并且设置错误信号来指示程序错误。
上述编程算法同样适用于SLC。对于SLC单元,不存在L1单元或L2单元。图5示出了根据读取电流的SLC存储器单元的编程状态和擦除状态。算法被简化为图6中所示的算法。此时,不存在DTP包含L1数据或L2数据的情形。初始编程脉冲可被设置为更强的条件,并且编程电压步长大小直接设置为高值SL(例如500mV),以快速编程低于V0L0的编程单元。之后,以与MLC中的相同方式施加额外的编程脉冲,以提供额外的裕度,从而实现读取可靠性。
上述编程技术有很多优点。通过尽可能降低高电压应力,提高了编程抗干扰性。通过尽可能降低编程应力并且尽可能减少每个编程/擦除循环期间的电荷转移,延长了耐久性寿命。通过尽可能降低编程应力并且构建足够的防护带以适应后循环陷阱电荷弛豫,延长了数据保持寿命。通过优化三个不同编程阶段中的电压步长大小和参考级,尽可能提高了编程效率。
如上所述,电压增大步长可用于编程电压中的一个或多个。针对图1的存储器单元,上述非限制性例子使源极和控制栅的电压递增,但是在迭代程序读取操作期间,源极、控制栅和擦除栅的任何或所有编程电压在值上都可递增。虽然非限制性例子中的步长SS、SI和SL对于源极和控制栅两者而言都是相同的,但它们不需要相同。源极在值上可按与控制栅不同的量递增。
用于在存储器阵列上控制和执行编程操作的控制电路是熟知的。图21所示的控制电路30便是此类电路。然而,控制电路还被配置为在存储器阵列上控制和执行上述编程算法,并且优选地与存储器单元阵列包括在相同的芯片上。
应当理解,本发明不限于上述的和本文中示出的实施例,而是涵盖落在所附权利要求书的范围内的任何和所有变型形式。举例来说,本文中对本发明的提及并不意在限制任何权利要求或权利要求术语的范围,而是仅涉及可由这些权利要求中的一个或多个权利要求涵盖的一个或多个特征。上文所述的材料、工艺和数值的例子仅为示例性的,而不应视为限制权利要求。材料的单个层可形成为此类材料或类似材料的多个层,并且反之亦然。虽然上面的MLC例子包括三种编程状态和一种擦除状态,但是上述编程技术同样适用于具有两种或更多种编程状态的任何MLC。最后,虽然是在具有四个导电栅极的存储器单元背景中描述该迭代编程技术,但是该迭代编程技术同样适用于导电栅极更多或更少的其他非易失性存储器单元配置。

Claims (38)

1.一种对具有存储器单元的存储器装置编程的方法,每个所述存储器单元都包括位于半导体衬底中的之间有沟道区的源极区和漏极区、设置在所述沟道区的至少一部分上方并且影响所述沟道区的所述至少一部分的导电性的浮栅,以及与所述浮栅和所述衬底绝缘的一个或多个额外的导电栅极,其中可通过将编程电压施加到所述源极区和所述一个或多个额外的导电栅极使产生于所述漏极区的电子注入到所述浮栅上,来编程每个所述存储器单元,并且其中可通过在所述源极区和所述漏极区之间施加电压差并测量所述沟道区中的读取电流,来读取每个所述存储器单元的编程状态,所述方法包括:
1)将编程电压脉冲施加到多个所述存储器单元的所述源极区和所述一个或多个导电栅极;
2)读取所述多个存储器单元的编程状态;以及
3)重复执行步骤1和步骤2,直到所述多个存储器单元中的至少一个在步骤2中展现出的读取电流达到第一阈值,其中所述重复执行步骤1和步骤2包括每当重复执行步骤1时都将步骤1的所述编程电压中的至少一个增大第一步长值;
在达到所述第一阈值后,针对所述多个存储器单元的每个第一子集:
4)将编程电压脉冲施加到所述存储器单元的所述源极区和所述一个或多个导电栅极;
5)读取所述存储器单元的编程状态;以及
6)重复执行步骤4和步骤5,直到所述存储器单元在步骤5中展现出的读取电流达到不同于所述第一阈值的第二阈值,其中所述重复执行步骤4和步骤5包括每当重复执行步骤4时都将步骤4的所述编程电压中的至少一个增大第二步长值,其中所述第二步长值小于所述第一步长值;以及
在达到所述第一阈值后,针对所述多个存储器单元的每个第二子集:
7)将编程电压脉冲施加到所述存储器单元的所述源极区和所述一个或多个导电栅极;
8)读取所述存储器单元的编程状态;以及
9)重复执行步骤7和步骤8,直到所述存储器单元在步骤8中展现出的读取电流达到不同于所述第一阈值和所述第二阈值的第三阈值,其中所述重复执行步骤7和步骤8包括每当重复执行步骤7时都将步骤7的所述编程电压中的至少一个增大第三步长值,其中所述第三步长值小于所述第一步长值。
2.根据权利要求1所述的方法,其中所述第二步长值和所述第三步长值彼此相等。
3.根据权利要求1所述的方法,其中所述第一步长值和所述第三步长值大于所述第二步长值。
4.根据权利要求1所述的方法,其中所述第一阈值大于所述第二阈值,且所述第二阈值大于所述第三阈值。
5.根据权利要求1所述的方法,其中每个存储器单元的所述一个或多个额外的导电栅极包括设置在所述沟道区的第二部分上方并且影响所述沟道区的所述第二部分的导电性的控制栅。
6.根据权利要求1所述的方法,其中在所述多个存储器单元的所述第一子集已经达到所述第二阈值后,以及在所述多个存储器单元的所述第二子集已经达到所述第三阈值后,针对所述多个存储器单元的每个第三子集,所述方法还包括:
10)将编程电压脉冲施加到所述存储器单元的所述源极区和所述一个或多个导电栅极;
11)读取所述存储器单元的编程状态;以及
12)重复执行步骤10和步骤11,直到所述存储器单元在步骤11中展现出的读取电流达到不同于所述第一阈值、所述第二阈值和所述第三阈值的第四阈值,其中所述重复执行步骤10和步骤11包括每当重复执行步骤10时将步骤10的所述编程电压中的至少一个增大第四步长值,其中所述第四步长值大于所述第二步长值和所述第三步长值。
7.根据权利要求6所述的方法,其中所述第四步长值等于所述第一步长值。
8.根据权利要求6所述的方法,还包括:
在所述多个存储器单元的所有所述第三子集达到所述第四阈值后,将编程电压冲击脉冲施加到所述多个存储器单元的所有所述第三子集的所述源极区和所述一个或多个导电栅极,其中所述施加所述冲击脉冲包括将所述编程电压中的至少一个相对于步骤10-12中施加的所述编程电压增大第五步长值。
9.根据权利要求8所述的方法,其中所述第五步长值大于所述第四步长值。
10.一种对具有存储器单元的存储器装置编程的方法,每个所述存储器单元都包括位于半导体衬底中的之间有沟道区的源极区和漏极区、设置在所述沟道区的至少一部分上方并且影响所述沟道区的所述至少一部分的导电性的浮栅,以及与所述浮栅和所述衬底绝缘的一个或多个额外的导电栅极,其中可通过将编程电压施加到所述源极区和所述一个或多个额外的导电栅极使产生于所述漏极区的电子注入到所述浮栅上,来编程每个所述存储器单元,并且其中可通过在所述源极区和所述漏极区之间施加电压差并测量所述沟道区中的读取电流,来读取每个所述存储器单元的编程状态,所述方法包括:
针对多个所述存储器单元的每个第一子集:
1)将编程电压脉冲施加到所述存储器单元的所述源极区和所述一个或多个导电栅极;
2)读取所述存储器单元的编程状态;以及
3)重复执行步骤1和步骤2,直到所述存储器单元在步骤2中展现出的读取电流达到第一阈值,其中所述重复执行步骤1和步骤2包括每当重复执行步骤1时都将步骤1的所述编程电压中的至少一个增大第一步长值;以及
针对所述多个存储器单元的每个第二子集:
4)将编程电压脉冲施加到所述存储器单元的所述源极区和所述一个或多个导电栅极;
5)读取所述存储器单元的编程状态;以及
6)重复执行步骤4和步骤5,直到所述存储器单元在步骤5中展现出的读取电流达到不同于所述第一阈值的第二阈值,其中所述重复执行步骤4和步骤5包括每当重复执行步骤4时都将步骤4的所述编程电压中的至少一个增大第二步长值。
11.根据权利要求10所述的方法,其中所述第一步长值和所述第二步长值彼此相等。
12.根据权利要求10所述的方法,其中所述第二步长值大于所述第一步长值。
13.根据权利要求10所述的方法,其中所述第一阈值大于所述第二阈值。
14.根据权利要求10所述的方法,其中每个存储器单元的所述一个或多个额外的导电栅极包括设置在所述沟道区的第二部分上方并且影响所述沟道区的所述第二部分的导电性的控制栅。
15.根据权利要求10所述的方法,其中在所述多个存储器单元的所述第一子集已经达到所述第一阈值后,以及在所述多个存储器单元的所述第二子集已经达到所述第二阈值后,针对所述多个存储器单元的每个第三子集,所述方法还包括:
7)将编程电压脉冲施加到所述存储器单元的所述源极区和所述一个或多个导电栅极;
8)读取所述存储器单元的编程状态;以及
9)重复执行步骤7和步骤8,直到所述存储器单元在步骤8中展现出的读取电流达到不同于所述第一阈值和所述第二阈值的第三阈值,其中所述重复执行步骤7和步骤8包括每当重复执行步骤7时都将步骤7的所述编程电压中的至少一个增大第三步长值,其中所述第三步长值大于所述第一步长值和所述第二步长值。
16.根据权利要求16所述的方法,还包括:
在所述多个存储器单元的所有所述第三子集达到所述第三阈值后,将编程电压冲击脉冲施加到所述多个存储器单元的所有所述第三子集的所述源极区和所述一个或多个导电栅极,其中所述施加所述冲击脉冲包括相对于步骤7-9中施加的所述编程电压,将所述编程电压中的至少一个增大第四步长值。
17.根据权利要求16所述的方法,其中所述第四步长值大于所述第三步长值。
18.一种对具有存储器单元的存储器装置编程的方法,每个所述存储器单元都包括位于半导体衬底中的之间有沟道区的源极区和漏极区、设置在所述沟道区的至少一部分上方并且影响所述沟道区的所述至少一部分的导电性的浮栅,以及与所述浮栅和所述衬底绝缘的一个或多个额外的导电栅极,其中可通过将编程电压施加到所述源极区和所述一个或多个额外的导电栅极使产生于所述漏极区的电子注入到所述浮栅上,来编程每个所述存储器单元,并且其中可通过在所述源极区和所述漏极区之间施加电压差并测量所述沟道区中的读取电流,来读取每个所述存储器单元的编程状态,所述方法包括:
针对多个所述存储器单元中的每一个:
1)将编程电压脉冲施加到所述存储器单元的所述源极区和所述一个或多个导电栅极;
2)读取所述存储器单元的编程状态;以及
3)重复执行步骤1和步骤2,直到所述存储器单元在步骤2中展现出的读取电流达到第一阈值,其中所述重复执行步骤1和步骤2包括每当重复执行步骤1时都将步骤1的所述编程电压中的至少一个增大第一步长值;以及
在所有所述多个存储器单元都达到所述第一阈值后,将编程电压冲击脉冲施加到所有所述多个存储器单元的所述源极区和所述一个或多个导电栅极,其中所述施加冲击脉冲包括相对于在步骤1-3中施加的所述编程电压,将所述编程电压中的至少一个增大第二步长值。
19.根据权利要求18所述的方法,其中所述第二步长值大于所述第一步长值。
20.一种存储器装置,所述存储器装置包括:
存储器单元,每个所述存储器单元包括:
位于半导体衬底中的之间有沟道区的源极区和漏极区;
设置在所述沟道区的至少一部分上方并且影响所述沟道区的所述至少一部分的导电性的浮栅;
与所述浮栅和所述衬底绝缘的一个或多个额外的导电栅极;
其中每个所述存储器单元被配置为可通过将编程电压施加到所述源极区和所述一个或多个额外的导电栅极使产生于所述漏极区的电子注入到所述浮栅上来编程,并且其中可通过在所述源极区和所述漏极区之间施加电压差并测量所述沟道区中的读取电流来读取每个所述存储器单元的编程状态;
控制电路被配置为:
1)将编程电压脉冲施加到多个所述存储器单元的所述源极区和所述一个或多个导电栅极;
2)读取所述多个存储器单元的编程状态;以及
3)重复执行步骤1和步骤2,直到所述多个存储器单元中的至少一个在步骤2中展现出的读取电流达到第一阈值,其中所述重复执行步骤1和步骤2包括每当重复执行步骤1时都将步骤1的所述编程电压中的至少一个增大第一步长值;
在达到所述第一阈值后,针对所述多个存储器单元的每个第一子集:
4)将编程电压脉冲施加到所述存储器单元的所述源极区和所述一个或多个导电栅极;
5)读取所述存储器单元的编程状态;以及
6)重复执行步骤4和步骤5,直到所述存储器单元在步骤5中展现出的读取电流达到不同于所述第一阈值的第二阈值,其中所述重复执行步骤4和步骤5包括每当重复执行步骤4时都将步骤4的所述编程电压中的至少一个增大第二步长值,其中所述第二步长值小于所述第一步长值;以及在达到所述第一阈值后,针对所述多个存储器单元的每个第二子集:
7)将编程电压脉冲施加到所述存储器单元的所述源极区和所述一个或多个导电栅极;
8)读取所述存储器单元的编程状态;以及
9)重复执行步骤7和步骤8,直到所述存储器单元在步骤8中展现出的读取电流达到不同于所述第一阈值和所述第二阈值的第三阈值,其中所述重复执行步骤7和步骤8包括每当重复执行步骤7时都将步骤7的所述编程电压中的至少一个增大第三步长值,其中所述第三步长值小于所述第一步长值;
21.根据权利要求20所述的存储器装置,其中所述第二步长值和第三步长值彼此相等。
22.根据权利要求20所述的存储器装置,其中所述第一步长值和第三步长值大于所述第二步长值。
23.根据权利要求20所述的存储器装置,其中所述第一阈值大于所述第二阈值,且所述第二阈值大于所述第三阈值。
24.根据权利要求20所述的存储器装置,其中每个存储器单元的所述一个或多个额外的导电栅极包括设置在所述沟道区的第二部分上方并且影响所述沟道区的所述第二部分的导电性的控制栅。
25.根据权利要求20所述的存储器装置,其中在所述多个存储器单元的所述第一子集已经达到所述第二阈值后,以及在所述多个存储器单元的所述第二子集已经达到所述第三阈值后,针对所述多个存储器单元的每个第三子集,所述控制器被配置为:
10)将编程电压脉冲施加到所述存储器单元的所述源极区和所述一个或多个导电栅极;
11)读取所述存储器单元的编程状态;以及
12)重复执行步骤10和步骤11,直到所述存储器单元在步骤11中展现出的读取电流达到不同于所述第一阈值、所述第二阈值和所述第三阈值的第四阈值,其中所述重复执行步骤10和步骤11包括每当重复执行步骤10时将步骤10的所述编程电压中的至少一个增大第四步长值,其中所述第四步长值大于所述第二步长值和所述第三步长值。
26.根据权利要求25所述的存储器装置,其中所述第四步长值等于所述第一步长值。
27.根据权利要求25所述的存储器装置,还包括:
在所述多个存储器单元的所有所述第三子集达到所述第四阈值后,所述控制器被配置为将编程电压冲击脉冲施加到所述多个存储器单元的所有所述第三子集的所述源极区和所述一个或多个导电栅极,其中所述施加所述冲击脉冲包括将所述编程电压中的至少一个相对于步骤10-12中施加的所述编程电压增大第五步长值。
28.根据权利要求27所述的存储器装置,其中所述第五步长值大于所述第四步长值。
29.一种存储器装置,所述存储器装置包括:
存储器单元,每个所述存储器单元包括:
位于半导体衬底中的之间有沟道区的源极区和漏极区;
设置在所述沟道区的至少一部分上方并且影响所述沟道区的所述至少一部分的导电性的浮栅;
与所述浮栅和所述衬底绝缘的一个或多个额外的导电栅极;
其中每个所述存储器单元被配置为可通过将编程电压施加到所述源极区和所述一个或多个额外的导电栅极使产生于所述漏极区的电子注入到所述浮栅来编程,并且其中可通过在所述源极区和所述漏极区之间施加电压差并测量所述沟道区中的读取电流,来读取每个所述存储器单元的编程状态;控制电路被配置为:
针对多个所述存储器单元的每个第一子集:
1)将编程电压脉冲施加到所述存储器单元的所述源极区和所述一个或多个导电栅极;
2)读取所述存储器单元的编程状态;以及
3)重复执行步骤1和步骤2,直到所述存储器单元在步骤2中展现出的读取电流达到第一阈值,其中所述重复执行步骤1和步骤2包括每当重复执行步骤1时都将步骤1的所述编程电压中的至少一个增大第一步长值;以及针对所述多个存储器单元的每个第二子集:
4)将编程电压脉冲施加到所述存储器单元的所述源极区和所述一个或多个导电栅极;
5)读取所述存储器单元的编程状态;以及
6)重复执行步骤4和步骤5,直到所述存储器单元在步骤5中展现出的读取电流达到不同于所述第一阈值的第二阈值,其中所述重复执行步骤4和步骤5包括每当重复执行步骤4时都将步骤4的所述编程电压中的至少一个增大第二步长值。
30.根据权利要求29所述的存储器装置,其中所述第一步长值和所述第二步长值彼此相等。
31.根据权利要求29所述的存储器装置,其中所述第二步长值大于所述第一步长值。
32.根据权利要求29所述的存储器装置,其中所述第一阈值大于所述第二阈值。
33.根据权利要求29所述的存储器装置,其中每个存储器单元的所述一个或多个额外的导电栅极包括设置在所述沟道区的第二部分上方并且影响所述沟道区的所述第二部分的导电性的控制栅。
34.根据权利要求29所述的存储器装置,其中在所述多个存储器单元的所述第一子集已经达到所述第一阈值后,以及在所述多个存储器单元的所述第二子集已经达到所述第二阈值后,针对所述多个存储器单元的每个第三子集,所述控制电路被配置为:
7)将编程电压脉冲施加到所述存储器单元的所述源极区和所述一个或多个导电栅极;
8)读取所述存储器单元的编程状态;以及
9)重复执行步骤7和步骤8,直到所述存储器单元在步骤8中展现出的读取电流达到不同于所述第一阈值和所述第二阈值的第三阈值,其中所述重复执行步骤7和步骤8包括每当重复执行步骤7时都将步骤7的所述编程电压中的至少一个增大第三步长值,其中所述第三步长值大于所述第一步长值和所述第二步长值。
35.根据权利要求34所述的存储器装置,还包括:
在所述多个存储器单元的所有所述第三子集达到所述第三阈值后,所述控制电路被配置为将编程电压冲击脉冲施加到所述多个存储器单元的所有所述第三子集的所述源极区和所述一个或多个导电栅极,其中所述施加所述冲击脉冲包括将所述编程电压中的至少一个相对于步骤7-9中施加的所述编程电压增大第四步长值。
36.根据权利要求35所述的存储器装置,其中所述第四步长值大于所述第三步长值。
37.一种存储器装置,所述存储器装置包括:
存储器单元,每个所述存储器单元包括:
位于半导体衬底中的之间有沟道区的源极区和漏极区;
设置在所述沟道区的至少一部分上方并且影响所述沟道区的所述至少一部分的导电性的浮栅;
与所述浮栅和所述衬底绝缘的一个或多个额外的导电栅极;
其中每个所述存储器单元被配置为可通过将编程电压施加到所述源极区和所述一个或多个额外的导电栅极使产生于所述漏极区的电子注入到所述浮栅上来编程,并且其中可通过在所述源极区和所述漏极区之间施加电压差并测量所述沟道区中的读取电流,来读取每个所述存储器单元的编程状态;
控制电路被配置为:
针对多个所述存储器单元中的每一个:
1)将编程电压脉冲施加到所述存储器单元的所述源极区和所述一个或多个导电栅极;
2)读取所述存储器单元的编程状态;以及
3)重复执行步骤1和步骤2,直到所述存储器单元在步骤2中展现出的读取电流达到第一阈值,其中所述重复执行步骤1和步骤2包括每当重复执行步骤1时都将步骤1的所述编程电压中的至少一个增大第一步长值;以及
在所有所述多个存储器单元都达到所述第一阈值后,将编程电压冲击脉冲施加到所有所述多个存储器单元的所述源极区和所述一个或多个导电栅极,其中所述施加冲击脉冲包括相对于在步骤1-3中施加的所述编程电压,将所述编程电压中的至少一个增大第二步长值。
38.根据权利要求37所述的存储器装置,其中所述第二步长值大于所述第一步长值。
CN201480008707.5A 2013-03-14 2014-03-14 非易失性存储器编程算法装置和方法 Active CN105027216B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361785485P 2013-03-14 2013-03-14
US61/785485 2013-03-14
PCT/US2014/029414 WO2014153174A2 (en) 2013-03-14 2014-03-14 Non-volatile memory program algorithm device and method

Publications (2)

Publication Number Publication Date
CN105027216A true CN105027216A (zh) 2015-11-04
CN105027216B CN105027216B (zh) 2017-09-22

Family

ID=50625173

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480008707.5A Active CN105027216B (zh) 2013-03-14 2014-03-14 非易失性存储器编程算法装置和方法

Country Status (7)

Country Link
US (1) US9431126B2 (zh)
EP (1) EP2973583B1 (zh)
JP (1) JP5964522B2 (zh)
KR (1) KR101716998B1 (zh)
CN (1) CN105027216B (zh)
TW (1) TWI536389B (zh)
WO (1) WO2014153174A2 (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3021806B1 (fr) * 2014-05-28 2017-09-01 St Microelectronics Sa Procede de programmation d'une cellule memoire non volatile comprenant une grille de transistor de selection partagee
KR102262909B1 (ko) * 2014-12-18 2021-06-10 에스케이하이닉스 주식회사 메모리 시스템 동작 방법
US10074438B2 (en) * 2016-06-10 2018-09-11 Cypress Semiconductor Corporation Methods and devices for reducing program disturb in non-volatile memory cell arrays
US9997253B1 (en) 2016-12-08 2018-06-12 Cypress Semiconductor Corporation Non-volatile memory array with memory gate line and source line scrambling
US10381088B2 (en) * 2017-03-30 2019-08-13 Silicon Storage Technology, Inc. System and method for generating random numbers based on non-volatile memory cell array entropy
US10607715B2 (en) 2017-06-13 2020-03-31 International Business Machines Corporation Self-evaluating array of memory
US10515694B2 (en) * 2017-11-03 2019-12-24 Silicon Storage Technology, Inc. System and method for storing multibit data in non-volatile memory
KR102524916B1 (ko) * 2018-03-13 2023-04-26 에스케이하이닉스 주식회사 저장 장치 및 그 동작 방법
US10838652B2 (en) * 2018-08-24 2020-11-17 Silicon Storage Technology, Inc. Programming of memory cell having gate capacitively coupled to floating gate
US11755899B2 (en) * 2019-11-11 2023-09-12 Silicon Storage Technology, Inc. Precise programming method and apparatus for analog neural memory in an artificial neural network
US11289164B2 (en) 2020-06-03 2022-03-29 Silicon Storage Technology, Inc. Word line and control gate line tandem decoder for analog neural memory in deep learning artificial neural network
US11309042B2 (en) 2020-06-29 2022-04-19 Silicon Storage Technology, Inc. Method of improving read current stability in analog non-volatile memory by program adjustment for memory cells exhibiting random telegraph noise
JP2023032445A (ja) * 2021-08-27 2023-03-09 キオクシア株式会社 記憶装置
TWI813345B (zh) * 2022-06-20 2023-08-21 世界先進積體電路股份有限公司 非揮發性記憶體裝置及其控制方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020191444A1 (en) * 2001-04-10 2002-12-19 Stmicroelectronics S.R.I. Method for programming nonvolatile memory cells with program and verify algorithm using a staircase voltage with varying step amplitude
US20080175064A1 (en) * 2007-01-23 2008-07-24 Hynix Semiconductor Inc. Method of programming data in a flash memory device
US7927994B1 (en) * 2007-08-06 2011-04-19 Silicon Storage Technology, Inc. Split gate non-volatile flash memory cell having a floating gate, control gate, select gate and an erase gate with an overhang over the floating gate, array and method of manufacturing
US20110161571A1 (en) * 2009-12-28 2011-06-30 Samsung Electronics Co., Ltd. Flash memory device and method of programming flash memory device
CN102725798A (zh) * 2009-11-25 2012-10-10 桑迪士克技术有限公司 使用数量减少的验证操作来编程非易失性存储器

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002056316A1 (fr) 2001-01-12 2002-07-18 Hitachi, Ltd. Memoire remanente a semi-conducteur
US6490203B1 (en) * 2001-05-24 2002-12-03 Edn Silicon Devices, Inc. Sensing scheme of flash EEPROM
DE102005009700B4 (de) 2004-02-26 2009-02-05 Samsung Electronics Co., Ltd., Suwon Programmierverfahren und nichtflüchtiger Speicher
KR100525004B1 (ko) 2004-02-26 2005-10-31 삼성전자주식회사 멀티레벨 셀(Multi-level cell)플래쉬메모리장치 및 이의 프로그램 방법
JP2008191630A (ja) 2007-01-09 2008-08-21 Nippon Oil Corp 楕円偏光板、その製造方法、輝度向上フィルムおよび画像表示装置
US8254177B2 (en) 2008-10-24 2012-08-28 Sandisk Technologies Inc. Programming non-volatile memory with variable initial programming pulse
US8369143B2 (en) * 2010-12-22 2013-02-05 HGST Netherlands B.V. Early detection of degradation in NOR flash memory
KR101772578B1 (ko) * 2011-04-19 2017-08-30 삼성전자주식회사 불휘발성 메모리 장치의 프로그램 방법
KR101821604B1 (ko) * 2011-07-25 2018-01-24 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법
CN102969346B (zh) * 2011-08-31 2016-08-10 硅存储技术公司 具有带改进耦合比的浮栅和耦合栅的非易失性存储器单元

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020191444A1 (en) * 2001-04-10 2002-12-19 Stmicroelectronics S.R.I. Method for programming nonvolatile memory cells with program and verify algorithm using a staircase voltage with varying step amplitude
US20080175064A1 (en) * 2007-01-23 2008-07-24 Hynix Semiconductor Inc. Method of programming data in a flash memory device
US7927994B1 (en) * 2007-08-06 2011-04-19 Silicon Storage Technology, Inc. Split gate non-volatile flash memory cell having a floating gate, control gate, select gate and an erase gate with an overhang over the floating gate, array and method of manufacturing
CN102725798A (zh) * 2009-11-25 2012-10-10 桑迪士克技术有限公司 使用数量减少的验证操作来编程非易失性存储器
US20110161571A1 (en) * 2009-12-28 2011-06-30 Samsung Electronics Co., Ltd. Flash memory device and method of programming flash memory device

Also Published As

Publication number Publication date
US20140269058A1 (en) 2014-09-18
EP2973583B1 (en) 2019-05-01
TW201535388A (zh) 2015-09-16
JP2016510476A (ja) 2016-04-07
JP5964522B2 (ja) 2016-08-03
US9431126B2 (en) 2016-08-30
WO2014153174A2 (en) 2014-09-25
CN105027216B (zh) 2017-09-22
KR101716998B1 (ko) 2017-03-15
WO2014153174A3 (en) 2014-11-06
TWI536389B (zh) 2016-06-01
EP2973583A2 (en) 2016-01-20
KR20150106956A (ko) 2015-09-22

Similar Documents

Publication Publication Date Title
CN105027216B (zh) 非易失性存储器编程算法装置和方法
US7916543B2 (en) Memory cell operation
CN103081015B (zh) 利用位线电压逐步增加来对非易失性存储器进行编程
CN102985977B (zh) 用于减少非易失性存储器中的状态分布的展宽的擦除和编程技术
US10283208B2 (en) Word line dependent pass voltages in non-volatile memory
CN100520979C (zh) 对闪存器件进行编程的方法
US20180350446A1 (en) Dynamic Read Table Block Filter
US20170140814A1 (en) State Dependent Sensing For Wordline Interference Correction
US8902661B1 (en) Block structure profiling in three dimensional memory
US10037806B2 (en) Memory cell programming using VgVt value
CN110580929A (zh) 非易失性存储器装置及非易失性存储器装置的擦除方法
US8873316B2 (en) Methods and systems for adjusting NVM cell bias conditions based upon operating temperature to reduce performance degradation
CN101504864A (zh) 多级单元编程方法及集成电路装置
JP3848064B2 (ja) 半導体不揮発性メモリの試験方法
KR20070057716A (ko) 멀티 레벨 셀을 갖는 플래시 메모리 장치의 프로그램 방법
US9136009B1 (en) Method to improve accuracy of a low voltage state in flash memory cells
TWI543172B (zh) 降低記憶體臨限電壓的方法、非揮發性記憶體的抹除操作方法、及使用該方法的非揮發性記憶體
KR101604857B1 (ko) 반도체 메모리 장치의 프로그램 방법
CN104952475B (zh) 快闪存储器及其编程方法
CN116246683A (zh) 使用深度神经网络在存储器装置中读取阈值预测
Bauer Flash-Memory Based Circuit, System and Platform Design
KR20100106764A (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
GR01 Patent grant
GR01 Patent grant