CN110993007A - 一种存储器的编程方法和编程*** - Google Patents
一种存储器的编程方法和编程*** Download PDFInfo
- Publication number
- CN110993007A CN110993007A CN201911249786.XA CN201911249786A CN110993007A CN 110993007 A CN110993007 A CN 110993007A CN 201911249786 A CN201911249786 A CN 201911249786A CN 110993007 A CN110993007 A CN 110993007A
- Authority
- CN
- China
- Prior art keywords
- programming
- voltage
- step size
- memory cell
- state
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000012795 verification Methods 0.000 claims abstract description 90
- 230000001808 coupling effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003071 parasitic effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000005764 inhibitory process Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/12—Programming voltage switching circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/08—Address circuits; Decoders; Word-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
- G11C16/3431—Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
Landscapes
- Read Only Memory (AREA)
Abstract
本发明所提供的存储器的编程方法和编程***,包括:根据编程数据获得选中的存储单元及其目标存储状态即第i态;采用编程脉冲对选中的存储单元进行编程,并将与选中的存储单元的字线相邻的字线上的通过电压增加预设值;判断选中的存储单元的阈值电压是否小于预设中间验证电压,预设中间验证电压小于第i态的验证电压、大于第i‑1态的验证电压;若是,令编程脉冲的步长等于第一步长,并对选中的存储单元进行编程;若否,令编程脉冲的步长等于第二步长,并对选中的存储单元进行编程,第二步长小于第一步长。由于本发明中在开始编程时,增大了相邻字线上的通过电压,因此,可以减小选中的存储单元的字线对相邻的字线的编程干扰。
Description
技术领域
本发明涉及存储器技术领域,更具体地说,涉及一种存储器的编程方法和编程***。
背景技术
读、编程、擦除是NAND闪存的基本操作。递增步长脉冲编程(ISPP)方法是目前常用的编程方法:其通过施加编程脉冲将电荷注入到存储单元的栅极,来将与待存储的数据对应的目标阈值电压施加到存储单元的栅极和源极之间。
其中,整个编程过程包括多个编程脉冲,每一次编程操作之后都要进行验证操作(即读操作),如果存储单元的阈值电压VTH≥验证电压VFY,验证通过,说明达到目标阈值电压,编程操作结束;如果阈值电压VTH<验证电压VFY,验证失败,增大编程电压继续编程,直至验证通过,编程结束。
但是,在编程过程中,是对选中的存储单元进行编程,未选中的存储单元则被抑制。通常采用SBPI(Self Boost Program Inhibit,自增强程序禁止)方法实现对未选中存储单元的编程抑制:将未选中的存储单元所在存储串的沟道浮空;在未选中存储单元的字线的栅极上施加通过电压VPASS;将未选中存储单元的沟道通过电容耦合,耦合到电压VPASS,基于此,未选中的存储单元被抑制。
但是,在未选中的存储单元的字线上施加统一的通过电压VPASS,会因为高编程电压VPGM的存在,造成与编辑的存储单元的字线相邻的未选中字线上出现严重的编程干扰。
发明内容
有鉴于此,本发明提供了一种存储器的编程方法和编程***,以解决在对选中的字线进行编程时,与其相邻的未选中字线上存在严重的编程干扰的问题。
为实现上述目的,本发明提供如下技术方案:
一种存储器的编程方法,包括:
接收编程数据,根据所述编程数据获得选中的存储单元及其目标存储状态,所述目标存储状态为第i态,1≤i≤N,N为大于1的整数;
采用编程脉冲对所述选中的存储单元进行编程,并将与所述选中的存储单元的字线相邻的字线上的通过电压增加预设值;
判断所述选中的存储单元的阈值电压是否小于预设中间验证电压,所述预设中间验证电压小于所述第i态的验证电压、大于第i-1态的验证电压;
若小于所述预设中间验证电压,令所述编程脉冲的步长等于第一步长,并对所述选中的存储单元进行编程;
若大于或等于所述预设中间验证电压,令所述编程脉冲的步长等于第二步长,并对所述选中的存储单元进行编程,所述第二步长小于所述第一步长。
可选地,VFYi’=c*(VFYi-1+VFYi),VFYi’为预设中间验证电压,VFYi-1为第i-1态的验证电压,VFYi为第i态的验证电压,c为预设值,0<c<1。
可选地,Step1=a*ΔVPGM,Step2=b*ΔVPGM,a、b为预设值,a>1,0<b<1,其中,Step1为第一步长,Step2为第二步长,ΔVPGM为平均步长。
可选地,K1*Step1+K2*Step2=K*ΔVPGM。
一种存储器的编程***,包括:
获取单元,用于接收编程数据,根据所述编程数据获得选中的存储单元及其目标存储状态,所述目标存储状态为第i态,1≤i≤N,N为大于1的整数;
编程单元,用于采用编程脉冲对所述选中的存储单元进行编程,并将与所述选中的存储单元的字线相邻的字线上的通过电压增加预设值;
判断单元,判断所述选中的存储单元的阈值电压是否小于预设中间验证电压,所述预设中间验证电压小于所述第i态的验证电压、大于第i-1态的验证电压,若小于所述预设中间验证电压,发送第一指令至所述编程单元,若大于或等于所述预设中间验证电压,发送第二指令至所述编程单元;
所述编程单元还用于在接收到所述第一指令后,令所述编程脉冲的步长等于第一步长,并对所述选中的存储单元进行编程,在接收到所述第二指令后,令所述编程脉冲的步长等于第二步长,并对所述选中的存储单元进行编程,所述第二步长小于所述第一步长。
可选地,VFYi’=c*(VFYi-1+VFYi),VFYi’为预设中间验证电压,VFYi-1为第i-1态的验证电压,VFYi为第i态的验证电压,c为预设值,0<c<1。
可选地,Step1=a*ΔVPGM,Step2=b*ΔVPGM,a、b为预设值,a>1,0<b<1,其中,Step1为第一步长,Step2为第二步长,ΔVPGM为平均步长。
可选地,K1*Step1+K2*Step2=K*ΔVPGM。
与现有技术相比,本发明所提供的技术方案具有以下优点:
本发明所提供的存储器的编程方法和编程***,当选中的存储单元的阈值电压小于预设中间验证电压时,即选中的存储单元的阈值电压距离目标存储状态的验证电压较远时,采用具有较大步长即第一步长进行编程,可以减小编程时间;当选中的存储单元的阈值电压大于或等于预设中间验证电压时,即选中的存储单元的阈值电压距离目标存储状态的验证电压较近时,采用较小步长即第二步长编程,可以有效地减小编程干扰;
并且,在进行某个目标存储状态的编程时,采用大步长编程时,只增大相邻字线上的通过电压,采用小步长编程时,保持增大后的通过电压不变,从而可以减小选中的存储单元的字线对相邻的字线的编程干扰,减小正在编程字线对同一根字线上未选中的存储单元的编程作用或编程干扰。
此外,本发明中,每次只在刚开始进行目标存储状态的编程时改变相邻字线上的通过电压,从而可以减小通过电压跳变引起的耦合效应。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种存储器的编程方法的流程图;
图2为采用常规的平均步长进行编程和采用本发明实施例提供的方法进行编程的对比图;
图3为本发明实施例提供的选中的存储单元的字线和相邻的字线的电压时序图;
图4为本发明实施例提供的编程脉冲和相邻字线上的通过电压的时序图;
图5为本发明一个实施例中的编程脉冲和相邻字线上的通过电压的时序图;
图6为本发明实施例提供的存储器的编程***的结构示意图。
具体实施方式
正如背景技术,由于选中的存储单元即进行编程的存储单元的编程电压VPGM较高,当相邻的未选中字线上的通过电压VPASS较低时,选中的字线与其相邻的未选中的字线之间具有电压差,该电压差会通过相邻字线之间的寄生电容产生干扰,即与未选中字线相连的存储单元的阈值电压会通过寄生电容被耦合到更高的电压,从而对与未选中字线相连的存储单元的存储状态产生干扰。
基于此,本发明提供了一种存储器的编程方法和编程***,以克服现有技术存在的上述问题,包括:
接收编程数据,根据编程数据获得选中的存储单元及其目标存储状态,目标存储状态为第i态,1≤i≤N,N为大于1的整数;
采用编程脉冲对选中的存储单元进行编程,并将与选中的存储单元的字线相邻的字线上的通过电压增加预设值;
判断选中的存储单元的阈值电压是否小于预设中间验证电压,预设中间验证电压小于第i态的验证电压、大于第i-1态的验证电压;
若小于预设中间验证电压,令编程脉冲的步长等于第一步长,并对选中的存储单元进行编程;
若大于或等于预设中间验证电压,令编程脉冲的步长等于第二步长,并对选中的存储单元进行编程,第二步长小于第一步长。
本发明提供的存储器的编程方法和编程***,当选中的存储单元的阈值电压小于预设中间验证电压时,即选中的存储单元的阈值电压距离目标存储状态的验证电压较远时,采用具有较大步长即第一步长进行编程,可以减小编程时间;当选中的存储单元的阈值电压大于或等于预设中间验证电压时,即选中的存储单元的阈值电压距离目标存储状态的验证电压较近时,采用较小步长即第二步长编程,可以有效地减小编程干扰;
并且,在进行某个目标存储状态的编程时,采用大步长编程时,只增大相邻字线上的通过电压,采用小步长编程时,保持增大后的通过电压不变,从而可以减小选中的存储单元的字线对相邻的字线的编程干扰,减小正在编程字线对同一根字线上未选中的存储单元的编程作用或编程干扰。
此外,本发明中,每次只在刚开始进行目标存储状态的编程时改变相邻字线上的通过电压,从而可以减小通过电压跳变引起的耦合效应。
以上是本发明的核心思想,为使本发明的上述目的、特征和优点能够更加明显易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种存储器的编程方法,该存储器可以是单电平存储单元(SLC)、多电平存储单元(MLC)、三电平存储单元(TLC)、四电平存储单元(QLC)等NAND闪存存储器。
需要说明的是,每个单电平存储单元仅能存储1个bit的数据,而每个多电平存储单元能够存储多个bit的数据。以QLC闪存存储器为例,一个存储单元可以存储4bit数据,即每个存储单元可以具有16种不同的状态,由第1态E(D0)、第2态D1、第3态D2…第16态D15表示,每个状态对应一个阈值电压区间。将这16个阈值电压区间采用4位二进制编码来表征,每一个二进制位可以看成一个页地址,则QLC闪存存储器存在4个页地址,分别可以设置为较低页(LP)、中间页(MP)、较高页(UP)和额外页(XP),如下表1所示。
代码 | E | D1 | D2 | D3 | D4 | D5 | D6 | D7 | D8 | D9 | D10 | D11 | D12 | D13 | D14 | D15 |
XP页 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 |
UP页 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
MP页 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
LP页 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 |
主控制器将LP页的数据、MP页的数据、UP页的数据和XP页的数据(如1101)发送给QLC闪存存储器后,QLC闪存存储器获得选中的存储单元对应的目标存储状态(如D1),并获得该目标存储状态(如D1)对应的一个阈值电压区间,然后通过对该存储单元进行编程和验证,将其电压提升为该阈值电压区间内的电压,来完成4bit数据的存储。
本发明实施例提供的编程方法,如图1所示,包括:
S101:接收编程数据,根据编程数据获得选中的存储单元及其目标存储状态,目标存储状态为第i态,1≤i≤N,N为大于1的整数;
S102:采用编程脉冲对选中的存储单元进行编程,并将与选中的存储单元的字线相邻的字线上的通过电压增加预设值;
S103:判断选中的存储单元的阈值电压是否小于预设中间验证电压,预设中间验证电压小于第i态的验证电压、大于第i-1态的验证电压;
若小于预设中间验证电压,进入S104;
若大于或等于预设中间验证电压,进入S105;
S104:令编程脉冲的步长等于第一步长,并对选中的存储单元进行编程;
S105:令编程脉冲的步长等于第二步长,并对选中的存储单元进行编程,第二步长小于第一步长。
以QLC闪存存储器为例,获得的选中的存储单元的目标存储状态可以是D1…D15之一。假设选中的存储单元的当前存储状态是第i-1态即Di-1、目标存储状态是第i态即Di,为了量化选中的存储单元的阈值电压距离目标存储状态Di的远近,预设了中间验证电压VFYi’,其中,VFYi-1<VFYi’<VFYi,VFYi-1为第i-1态的验证电压,VFYi为第i态的验证电压。
可选地,VFYi’=c*(VFYi-1+VFYi),c为预设值,0<c<1。
之后,采用编程脉冲对选中的存储单元进行编程,一次编程之后,判断选中的存储单元的阈值电压VTH是否小于预设中间验证电压VFYi’,若小于预设中间验证电压VFYi’,令编程脉冲的步长等于第一步长Step1,并对选中的存储单元进行编程;若大于或等于预设中间验证电压VFYi’,令编程脉冲的步长等于第二步长Step2,并对选中的存储单元进行编程,第二步长Step2小于第一步长Step1。
可选地,Step1=a*ΔVPGM,Step2=b*ΔVPGM,a、b为预设值,a>1,0<b<1,其中,Step1为第一步长,Step2为第二步长,ΔVPGM为平均步长。采用常规的平均步长进行编程和采用本发明实施例提供的方法进行编程的对比图如图2所示。
当选中的存储单元的阈值电压VTH小于预设中间验证电压VFYi’时,即选中的存储单元的阈值电压VTH距离目标存储状态的验证电压VFYi较远时,采用具有较大步长即第一步长Step1进行编程,可以减小编程时间;当选中的存储单元的阈值电压VTH大于或等于预设中间验证电压VFYi’时,即选中的存储单元的阈值电压VTH距离目标存储状态的验证电压VFYi较近时,采用较小步长即第二步长Step2编程,可以提高编程精度,缩小阈值电压的分布范围,有效地减小编程干扰。
需要说明的是,当编程步长较大时,每个存储状态的阈值电压VTH分布范围较大,阈值电压区间之间交叠范围也较大,受编程干扰的影响,阈值电压VTH的微小的改变都可能使得存储单元从一个态变为另一个态,例如从D2态变为D3态,从而对存储单元的编程造成严重干扰,而本发明实施例中,在靠近目标存储状态的验证电压VFYi时,采用小步长进行编程,可以有效地减小编程干扰。
本发明实施例中,从第i-1态Di-1到第i态Di编程完成,共施加了K1步第一步长Step1的编程脉冲,施加了K2步第二步长Step2的编程脉冲,其中,K1*Step1+K2*Step2=K*ΔVPGM。也就是说,与常规的采用平均步长进行编程的方式相比,本发明实施例提供的编程方法并未增加总编程步数和总编程时间。
本发明实施例中,如图3和图4所示,在采用具有第一步长Step1的编程脉冲对选中的存储单元进行编程的同时,将与选中的存储单元的字线WLN相邻的字线WLN-1和WLN+1上的通过电压增加预设值,即通过电压由VPASS0增加到VPASS1,与选中的存储单元的字线WLN不相邻的字线WLelse上的电压不变即仍为初始通过电压VPASS0,在采用具有第二步长Step2的编程脉冲对选中的存储单元进行编程时,相邻的字线WLN-1和WLN+1上和不相邻的字线WLelse上的通过电压不变。
也就是说,本发明实施例中,在进行某个目标存储状态的编程时,采用大步长Step1编程时,只增大相邻字线WLN-1和WLN+1栅极上的通过电压,采用小步长Step2编程时,保持相邻字线WLN-1和WLN+1栅极上增大后的通过电压不变,由于相邻字线WLN-1和WLN+1栅极上的通过电压增大了,因此,可以减小正在编程的字线WLN和相邻字线WLN-1和WLN+1上的电压差,如减小VPGM1和VPASS1的差值,从而可以减小正在编程的字线WLN和相邻字线WLN-1和WLN+1的电压耦合作用,并且增大正在编程字线WLN上未选中存储单元的沟道电势,进而可以减小选中的存储单元的字线WLN对相邻的字线WLN-1和WLN+1的编程干扰,以及减小正在编程字线WLN对同一根字线上未选中存储单元的编程作用/编程干扰。
本发明实施例中,在整个编程过程中,每次仅在刚开始目标存储状态的编程时,对相邻的字线WLN-1和WLN+1上的通过电压进行了改变,从而可以减小通过电压跳变引起的耦合效应。
需要说明的是,本发明实施例中,对任一目标存储状态进行编程时,都会增加相邻的字线WLN-1和WLN+1上的通过电压,如图3和图4所示,对应存储状态Di至DN,相邻的字线WLN-1和WLN+1上的通过电压VPASS0至VPASSN-1依次增加。
以TLC NAND闪存为例,如图5所示,具体编程过程为:
假设TLC闪存的8个阈值分布区间分别为E、D1、…Di、…D7;除擦除态E之外的Di态对应的验证电压为VFYi(i=1~7),初始编程电压为VPGM0,初始通过电压为VPASS0,编程平均步长为ΔVPGM。
由擦除态E对存储单元以ΔVPGM的步长进行编程,直至满足VTH≥VFY1,D1态编程完成。此时,i=1,已经进行的编程步数为M,编程电压为VPGM1,通过电压为VPASS0;
由Di-1(2≤i≤7)态开始编程,此时,已经进行的编程步数为(i-1)*M;增大通过电压至VPASSi-1;以step1=2*ΔVPGM的步长进行编程操作,直至满足VTH≥V’FYi-1,其中V’FYi-1=1/2*(VFYi-1+VFYi),已经进行的编程步数为(i-0.75)*M;
采用step2=2/3*ΔVPGM的步长进行编程操作,直至满足VTH≥VFYi,Di态编程完成。此时,已经进行的编程步数为i*M,编程电压为VPGMi,通过电压为VPASSi-1;当D7态编程完成,编程操作结束;或者,当编程步数达到最大编程次数时,编程操作结束。
需要说明的是,本发明实施例中,可以采用本发明实施例提供的编程方法对某些存储状态进行编程,也可以采用本发明实施例提供的编程方法对所有的存储状态进行编程,本发明并不仅限于此。
本发明实施例还提供一种存储器的编程***,如图6所示,包括:
获取单元1,用于接收编程数据,根据编程数据获得选中的存储单元及其目标存储状态,目标存储状态为第i态,1<i≤N,N为大于1的整数;
编程单元2,用于采用编程脉冲对选中的存储单元进行编程,并将与选中的存储单元的字线相邻的字线上的通过电压增加预设值;
判断单元3,判断选中的存储单元的阈值电压是否小于预设中间验证电压,预设中间验证电压小于第i态的验证电压、大于第i-1态的验证电压,若小于预设中间验证电压,发送第一指令至编程单元2,若大于或等于预设中间验证电压,发送第二指令至编程单元2;
编程单元2还用于在接收到第一指令后,令编程脉冲的步长等于第一步长,并对选中的存储单元进行编程,在接收到第二指令后,令编程脉冲的步长等于第二步长,并对选中的存储单元进行编程,第二步长小于第一步长。
以QLC闪存存储器为例,假设获取单元1获得的选中的存储单元的当前存储状态是第i-1态即Di-1、目标存储状态是第i态即Di,为了量化选中的存储单元的阈值电压距离目标存储状态Di的远近,预设了中间验证电压VFYi’,其中,VFYi-1<VFYi’<VFYi,VFYi-1为第i-1态的验证电压,VFYi为第i态的验证电压。
可选地,VFYi’=c*(VFYi-1+VFYi),c为预设值,0<c<1。
之后,编程单元2采用编程脉冲对选中的存储单元进行编程,一次编程之后,判断单元3判断选中的存储单元的阈值电压VTH是否小于预设中间验证电压VFYi’,若小于预设中间验证电压VFYi’,发送第一指令至编程单元2,编程单元2令编程脉冲的步长等于第一步长Step1,并对选中的存储单元进行编程;若大于或等于预设中间验证电压VFYi’,发送第二指令至编程单元2,编程单元2令编程脉冲的步长等于第二步长Step2,并对选中的存储单元进行编程,第二步长Step2小于第一步长Step1。
可选地,Step1=a*ΔVPGM,Step2=b*ΔVPGM,a、b为预设值,a>1,0<b<1,其中,Step1为第一步长,Step2为第二步长,ΔVPGM为平均步长。
当选中的存储单元的阈值电压VTH小于预设中间验证电压VFYi’时,即选中的存储单元的阈值电压VTH距离目标存储状态的验证电压VFYi较远时,采用具有较大步长即第一步长Step1进行编程,可以减小编程时间;当选中的存储单元的阈值电压VTH大于或等于预设中间验证电压VFYi’时,即选中的存储单元的阈值电压VTH距离目标存储状态的验证电压VFYi较近时,采用较小步长即第二步长Step2编程,可以提高编程精度,缩小阈值电压的分布范围,有效地减小编程干扰。
本发明实施例中,从第i-1态Di-1到第i态Di编程完成,共施加了K1步第一步长Step1的编程脉冲,施加了K2步第二步长Step2的编程脉冲,其中,K1*Step1+K2*Step2=K*ΔVPGM。也就是说,与常规的采用平均步长进行编程的方式相比,本发明实施例提供的编程方法并未增加总编程步数和总编程时间。
本发明实施例中,如图3和图4所示,在采用具有第一步长Step1的编程脉冲对选中的存储单元进行编程的同时,将与选中的存储单元的字线WLN相邻的字线WLN-1和WLN+1上的通过电压增加预设值,即通过电压由VPASS0增加到VPASS1,与选中的存储单元的字线WLN不相邻的字线WLelse上的电压不变即仍为初始通过电压VPASS0,在采用具有第二步长Step2的编程脉冲对选中的存储单元进行编程时,相邻的字线WLN-1和WLN+1上和不相邻的字线WLelse上的通过电压不变。
也就是说,本发明实施例中,在进行某个目标存储状态的编程时,采用大步长Step1编程时,只增大相邻字线WLN-1和WLN+1栅极上的通过电压,采用小步长Step2编程时,保持相邻字线WLN-1和WLN+1栅极上增大后的通过电压不变,由于相邻字线WLN-1和WLN+1栅极上的通过电压增大了,因此,可以减小正在编程的字线WLN和相邻字线WLN-1和WLN+1上的电压差,如减小VPGM1和VPASS1的差值,从而可以减小正在编程的字线WLN和相邻字线WLN-1和WLN+1的电压耦合作用,并且增大正在编程字线WLN上未选中存储单元的沟道电势,进而可以减小选中的存储单元的字线WLN对相邻的字线WLN-1和WLN+1的编程干扰,以及减小正在编程字线WLN对同一根字线上未选中存储单元的编程作用/编程干扰。
本发明实施例中,在整个编程过程中,每次仅在刚开始目标存储状态的编程时,对相邻的字线WLN-1和WLN+1上的通过电压进行了改变,从而可以减小通过电压跳变引起的耦合效应。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种存储器的编程方法,其特征在于,包括:
接收编程数据,根据所述编程数据获得选中的存储单元及其目标存储状态,所述目标存储状态为第i态,1≤i≤N,N为大于1的整数;
采用编程脉冲对所述选中的存储单元进行编程,并将与所述选中的存储单元的字线相邻的字线上的通过电压增加预设值;
判断所述选中的存储单元的阈值电压是否小于预设中间验证电压,所述预设中间验证电压小于所述第i态的验证电压、大于第i-1态的验证电压;
若小于所述预设中间验证电压,令所述编程脉冲的步长等于第一步长,并对所述选中的存储单元进行编程;
若大于或等于所述预设中间验证电压,令所述编程脉冲的步长等于第二步长,并对所述选中的存储单元进行编程,所述第二步长小于所述第一步长。
2.根据权利要求1所述的方法,其特征在于,VFYi’=c*(VFYi-1+VFYi),VFYi’为预设中间验证电压,VFYi-1为第i-1态的验证电压,VFYi为第i态的验证电压,c为预设值,0<c<1。
3.根据权利要求2所述的方法,其特征在于,Step1=a*ΔVPGM,Step2=b*ΔVPGM,a、b为预设值,a>1,0<b<1,其中,Step1为第一步长,Step2为第二步长,ΔVPGM为平均步长。
4.根据权利要求3所述的方法,其特征在于,
K1*Step1+K2*Step2=K*ΔVPGM。
5.一种存储器的编程***,其特征在于,包括:
获取单元,用于接收编程数据,根据所述编程数据获得选中的存储单元及其目标存储状态,所述目标存储状态为第i态,1≤i≤N,N为大于1的整数;
编程单元,用于采用编程脉冲对所述选中的存储单元进行编程,并将与所述选中的存储单元的字线相邻的字线上的通过电压增加预设值;
判断单元,判断所述选中的存储单元的阈值电压是否小于预设中间验证电压,所述预设中间验证电压小于所述第i态的验证电压、大于第i-1态的验证电压,若小于所述预设中间验证电压,发送第一指令至所述编程单元,若大于或等于所述预设中间验证电压,发送第二指令至所述编程单元;
所述编程单元还用于在接收到所述第一指令后,令所述编程脉冲的步长等于第一步长,并对所述选中的存储单元进行编程,在接收到所述第二指令后,令所述编程脉冲的步长等于第二步长,并对所述选中的存储单元进行编程,所述第二步长小于所述第一步长。
6.根据权利要求5所述的编程***,其特征在于,VFYi’=c*(VFYi-1+VFYi),VFYi’为预设中间验证电压,VFYi-1为第i-1态的验证电压,VFYi为第i态的验证电压,c为预设值,0<c<1。
7.根据权利要求6所述的编程***,其特征在于,Step1=a*ΔVPGM,Step2=b*ΔVPGM,a、b为预设值,a>1,0<b<1,其中,Step1为第一步长,Step2为第二步长,ΔVPGM为平均步长。
8.根据权利要求7所述的编程***,其特征在于,
K1*Step1+K2*Step2=K*ΔVPGM。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911249786.XA CN110993007B (zh) | 2019-12-09 | 2019-12-09 | 一种存储器的编程方法和编程*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911249786.XA CN110993007B (zh) | 2019-12-09 | 2019-12-09 | 一种存储器的编程方法和编程*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110993007A true CN110993007A (zh) | 2020-04-10 |
CN110993007B CN110993007B (zh) | 2022-04-12 |
Family
ID=70091242
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911249786.XA Active CN110993007B (zh) | 2019-12-09 | 2019-12-09 | 一种存储器的编程方法和编程*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110993007B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113707204A (zh) * | 2021-08-31 | 2021-11-26 | 长江存储科技有限责任公司 | 存储器编程方法及*** |
CN114822650A (zh) * | 2022-05-16 | 2022-07-29 | 北京得瑞领新科技有限公司 | Nand闪存的数据写入方法、装置、存储介质及存储设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101356587A (zh) * | 2005-09-09 | 2009-01-28 | 桑迪士克股份有限公司 | 用于对具有减少的编程干扰的nand类型的非易失性存储器进行编程的以末为先模式 |
US20090040833A1 (en) * | 2007-08-06 | 2009-02-12 | Samsung Electronics Co., Ltd. | Non-volatile memory device and programming method |
CN101517652A (zh) * | 2006-09-13 | 2009-08-26 | 莫塞德技术公司 | 闪烁多电平阈值分布方案 |
CN101847438A (zh) * | 2009-03-25 | 2010-09-29 | 三星电子株式会社 | 闪存器件、编程方法和存储器*** |
US20120120727A1 (en) * | 2010-11-11 | 2012-05-17 | Moo Sung Kim | Method of providing an operating voltage in a memory device and a memory controller for the memory device |
US8854891B2 (en) * | 2011-07-06 | 2014-10-07 | SK Hynix Inc. | Method of operating semiconductor device |
CN105051824A (zh) * | 2012-10-25 | 2015-11-11 | 桑迪士克技术有限公司 | 用于对非易失性存储器进行编程的动态位线偏压 |
US9396807B2 (en) * | 2013-11-11 | 2016-07-19 | Seagate Technology Llc | Incremental programming pulse optimization to reduce write errors |
CN106169306A (zh) * | 2015-05-20 | 2016-11-30 | 爱思开海力士有限公司 | 半导体存储器件及其操作方法 |
CN109313923A (zh) * | 2018-08-29 | 2019-02-05 | 长江存储科技有限责任公司 | 三维存储器件中的存储单元的编程 |
-
2019
- 2019-12-09 CN CN201911249786.XA patent/CN110993007B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101356587A (zh) * | 2005-09-09 | 2009-01-28 | 桑迪士克股份有限公司 | 用于对具有减少的编程干扰的nand类型的非易失性存储器进行编程的以末为先模式 |
CN101517652A (zh) * | 2006-09-13 | 2009-08-26 | 莫塞德技术公司 | 闪烁多电平阈值分布方案 |
US20090040833A1 (en) * | 2007-08-06 | 2009-02-12 | Samsung Electronics Co., Ltd. | Non-volatile memory device and programming method |
CN101847438A (zh) * | 2009-03-25 | 2010-09-29 | 三星电子株式会社 | 闪存器件、编程方法和存储器*** |
US20120120727A1 (en) * | 2010-11-11 | 2012-05-17 | Moo Sung Kim | Method of providing an operating voltage in a memory device and a memory controller for the memory device |
US8854891B2 (en) * | 2011-07-06 | 2014-10-07 | SK Hynix Inc. | Method of operating semiconductor device |
CN105051824A (zh) * | 2012-10-25 | 2015-11-11 | 桑迪士克技术有限公司 | 用于对非易失性存储器进行编程的动态位线偏压 |
US9396807B2 (en) * | 2013-11-11 | 2016-07-19 | Seagate Technology Llc | Incremental programming pulse optimization to reduce write errors |
CN106169306A (zh) * | 2015-05-20 | 2016-11-30 | 爱思开海力士有限公司 | 半导体存储器件及其操作方法 |
CN109313923A (zh) * | 2018-08-29 | 2019-02-05 | 长江存储科技有限责任公司 | 三维存储器件中的存储单元的编程 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113707204A (zh) * | 2021-08-31 | 2021-11-26 | 长江存储科技有限责任公司 | 存储器编程方法及*** |
CN113707204B (zh) * | 2021-08-31 | 2023-08-08 | 长江存储科技有限责任公司 | 存储器编程方法及*** |
CN114822650A (zh) * | 2022-05-16 | 2022-07-29 | 北京得瑞领新科技有限公司 | Nand闪存的数据写入方法、装置、存储介质及存储设备 |
CN114822650B (zh) * | 2022-05-16 | 2022-11-29 | 北京得瑞领新科技有限公司 | Nand闪存的数据写入方法、装置、存储介质及存储设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110993007B (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8194450B2 (en) | Methods and control circuitry for programming memory cells | |
US7800956B2 (en) | Programming algorithm to reduce disturb with minimal extra time penalty | |
US9672926B2 (en) | Apparatus and method of programming and verification for a nonvolatile semiconductor memory device | |
US8051240B2 (en) | Compensating non-volatile storage using different pass voltages during program-verify and read | |
US8189395B2 (en) | Nonvolatile semiconductor memory and data reading method | |
US7995394B2 (en) | Program voltage compensation with word line bias change to suppress charge trapping in memory | |
US8159882B2 (en) | Nonvolatile semiconductor memory device and memory system | |
US7450432B2 (en) | Method of programming data in a flash memory device | |
US8520435B2 (en) | Nonvolatile memory device and method of operating the same | |
KR101296289B1 (ko) | 비휘발성 메모리 장치의 프로그래밍 방법 | |
US20100037007A1 (en) | Nonvolatile semiconductor memory device | |
US8331148B2 (en) | Semiconductor memory device capable of lowering a write voltage | |
JP2010211883A (ja) | 不揮発性半導体記憶装置 | |
US20130083600A1 (en) | Semiconductor device and method of operating the same | |
US7924618B2 (en) | Method of programming non-volatile memory device | |
US20130163333A1 (en) | Semiconductor memory device and method of operating the same | |
US20110292734A1 (en) | Method of programming nonvolatile memory device | |
CN110993007B (zh) | 一种存储器的编程方法和编程*** | |
US8751888B2 (en) | Non-volatile semiconductor memory device | |
JP2013186932A (ja) | 不揮発性半導体記憶装置 | |
CN112786094A (zh) | 一种对存储装置执行操作的方法 | |
KR20100028830A (ko) | 불휘발성 메모리 장치의 검증 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |