一种非易失性存储器及其编程方法与流程

文档序号:18458096发布日期:2019-08-17 01:46阅读:244来源:国知局
一种非易失性存储器及其编程方法与流程

本发明涉及半导体器件的技术领域,尤其涉及一种非易失性存储器及其编程方法。



背景技术:

半导体存储器可以包括易失性存储器(volatilememory,vm)和非易失性存储器(nonvolatilememory,nvm)。易失性存储器通常可以作为操作系统或其他正在运行程序的临时存储介质,如内存。当电源关闭时,易失性存储器不能保留数据。非易失性存储器则用于存储需长期保留的数据,如硬盘。在突然断电或关闭电源的时候,非易失性存储器仍会保留数据。非易失性存储器的示例包括闪存(flashmemory)、只读存储器rom或电可擦出可编程只读eeprom等。

对nand闪存编程,即施加给存储单元不同的阈值电压,让不同数量的电子进入到存储单元中,以实现不同的数据格式表达。以多级存储单元(mlc)技术为例,可以具有四种不同的数据格式,包括00、01、10和11,则施加给存储单元的阈值电压应具有四种不同的状态,也就是四种阈值态。其中,数据格式为11时对应于擦除,此时存储单元所处的阈值态可以称为擦除态;数据格式为其他三种时对应于编程,此时存储单元所处的阈值态可以称为编程态。

目前用于nand闪存的编程方式是增量步进脉冲编程(incrementalsteppulseprogramming,ispp)。图1a和1b分别给出了增量步进脉冲编程的方法流程示意图和脉冲步进示意图。参考图1a所示,在对nand闪存进行编程时是以页(page)为单位,对于一页里面的某个存储单元来说,先用一个具备起始电压的编程脉冲对该存储单元进行编程;然后利用一个验证脉冲验证该存储单元是否被编写到了目标阈值电压,该目标阈值电压对应于某一种编程态;如果没有达到,则以一定的步进增加编程电压,并用该电压对该存储单元进行下一次的编程,再利用一个验证脉冲验证该存储单元是否被编写到了目标阈值电压,重复上述的过程,直到该存储单元被编写到了目标阈值电压;然后,该存储单元会被抑制,不再编程。当该页内所有的存储单元都被编写到目标阈值电压的时候,整个编程过程就结束了。

参考图1b所示,编程电压110以一定的步进逐步增加,在每一个编程电压110的后面都紧跟着一个验证脉冲120。当验证结果得到该存储单元已经被编写到了目标阈值电压,则该存储单元的编程结束,用一个编程抑制电压130对该存储单元进行编程抑制。

图1c示出了编程过程中存储单元的阈值电压分布的变化图。其中,坐标系的横轴为电压值,纵轴为存储单元的数目。参考图1c所示,编程次数沿横轴的方向向右逐渐增加,每一次编程都对应于存储单元的一个阈值电压分布图。理论上,该阈值电压分布呈正态分布。图1c仅为示例,不用于限制阈值电压分布的实际形态。由图1c可见,随着编程次数的增加,存储单元的整体电压逐步增加。在此过程中,当一部分存储单元达到目标电压阈值时,这部分存储单元就会被编程抑制,使整个阈值电压分布的宽度变窄。直到最后,所有存储单元都达到目标电压阈值,则编程结束。不同的阈值态对应于不同的阈值电压分布图。

在编程结束后,对于应该到达某一阈值态的多个存储单元来说,其阈值电压应该都分布在大于目标阈值电压的范围内。然而,在实际中,总会有一些存储单元的阈值电压低于目标阈值电压,使该阈值电压的整体分布变宽。如图1d所示,假设在t0时刻,所有存储单元的阈值电压都达到了目标电压阈值。在之后的t1时刻,一部分存储单元的阈值降低,导致该阈值电压的分布变宽并向左移动;再到之后的t2时刻,更多部分存储单元的电压降低,导致该阈值电压的分布进一步变宽及向左移动。

经过研究发现,造成这种现象的一部分原因是由于一些存储单元发生了快速的电荷泄漏。具体地,在编程过程中,进入存储单元的一部分电子存储在了该存储单元的隧穿层或者存储层的浅能级,这些电子很快会跑掉并回到沟道中,也就是发生泄漏。在实际的产品中,情况可能更加复杂,但最后所反映出来的结果都是造成了整个阈值电压的分布变宽。

图1e是mlc闪存存储器在不同阈值态下的阈值电压分布图。mlc闪存存储器共有四种状态,包括阈值电压最低的擦除态p0,对应逻辑值为11,记为p0:11,和三种编程态,按照阈值电压从低到高分别为p1:10,p2:00和p3:01。图1e仅为示例,对于不同该型号和生产厂家的存储器来说,存储器的阈值态和逻辑值的对应关系可能是不同的。参考图1e所示,每一个阈值态都对应于一个阈值电压分布,并且理想情况下这些阈值电压分布之间是不重叠的。各个阈值电压分布之间的不重叠的部分被称为分布边缘(distributionmargin)。在读取存储单元时,读取参考电压(ref1、ref2、ref3)的取值位于该分布边缘中。因此,若每个阈值电压分布越窄,则对应的分布边缘越大,则不同阈值态之间的读窗口越大;反之,读窗口越小,容易导致读取错误。



技术实现要素:

本发明所要解决的技术问题是提供一种非易失性存储器及其编程方法,使每个编程态的分布更窄,增加读窗口。

本发明为解决上述技术问题而采用的技术方案是提出一种非易失性存储器,包括:存储单元阵列,包括多个存储单元;控制器,配置为:对所述多个存储单元中的第一存储单元施加第一编程信号;验证所述第一存储单元的阈值电压是否达到第一阈值电压;当所述第一存储单元的电压达到第一阈值电压时,验证所述第一存储单元的阈值电压是否达到第二阈值电压,所述第二阈值电压大于所述第一阈值电压;当所述第一存储单元的阈值电压未达到第二阈值电压时,对所述第一存储单元施加第二编程信号。

进一步地,所述多个存储单元具有多个编程态,所述第一阈值电压对应所述多个编程态的任意一个。

进一步地,当所述第一存储单元的阈值电压达到第二阈值电压时,对所述

第一存储单元所在的选中位线施加编程抑制信号。

进一步地,所述第二阈值电压小于所述第一存储单元所在编程态的阈值电压分布中的最大阈值电压。

进一步地,用于验证所述第一存储单元的阈值电压是否达到第二阈值电压的第二验证信号,紧随用于验证所述第一存储单元的阈值电压是否达到第一阈值电压的第一验证信号,或者与所述第一验证信号之间相隔一个或多个验证信号。

进一步地,所述控制器还配置为对所述第一存储单元施加第二编程信号的同时,对所述第一存储单元所在的选中位线施加电压值介于编程抑制信号和参考电位之间的中间电压。

进一步地,所述控制器配置为对所述第一存储单元施加第二编程信号之后,不经编程验证而结束对所述第一存储单元所在编程态的编程。

进一步地,所述第二编程信号的幅值高于使得所述第一存储单元的阈值电压达到第一阈值电压的第一编程信号。

进一步地,所述第一编程信号和所述第二编程信号均为步进式脉冲,所述第二编程信号紧接使得所述第一存储单元的阈值电压达到第一阈值电压的第一编程信号。

本发明为解决上述技术问题还提出一种非易失性存储器的编程方法,所述非易失性存储器包括存储单元阵列,所述存储单元阵列包括多个存储单元,所述方法包括以下步骤:对所述多个存储单元中的第一存储单元施加第一编程信号;验证所述第一存储单元的阈值电压是否达到第一阈值电压;当所述第一存储单元的电压达到第一阈值电压时,验证所述第一存储单元的阈值电压是否达到第二阈值电压,所述第二阈值电压大于所述第一阈值电压;当所述第一存储单元的阈值电压未达到第二阈值电压时,对所述第一存储单元施加第二编程信号。

进一步地,所述多个存储单元具有多个编程态,所述第一阈值电压对应所述多个编程态的任意一个。

进一步地,还包括当所述第一存储单元的阈值电压达到第二阈值电压时,对所述第一存储单元所在的选中位线施加编程抑制信号。

进一步地,所述第二阈值电压小于所述第一存储单元所在编程态的阈值电压分布中的最大阈值电压。

进一步地,用于验证所述第一存储单元的阈值电压是否达到第二阈值电压的第二验证信号,紧随用于验证所述第一存储单元的阈值电压是否达到第二阈值电压的第一验证信号,或者与所述第一验证信号之间相隔一个或多个验证信号。

进一步地,对所述第一存储单元施加第二编程信号的同时,还包括对所述第一存储单元所在的选中位线施加电压值介于编程抑制信号和参考电位之间的中间电压。

进一步地,对所述第一存储单元施加第二编程信号之后,不经编程验证而结束对所述第一存储单元所在编程态的编程。

进一步地,所述第二编程信号的幅值高于使得所述第一存储单元的阈值电压达到第一阈值电压的第一编程信号。

进一步地,所述第一编程信号和所述第二编程信号均为步进式脉冲,所述第二编程信号紧接使得所述第一存储单元的阈值电压达到第一阈值电压的第一编程信号。

本发明由于采用以上技术方案,使之与现有技术相比,具有如下显著优点:

通过对存储单元的阈值电压增加一次验证,对每个编程态分布中阈值靠下的存储单元增加一次编程操作,提高了位于阈值电压分布下边界的存储单元的阈值电压。这样,使每个编程态的分布更窄,增加读窗口的宽度,提高了非易失性存储器对电荷损失造成的读窗口变小的容忍度。进一步,通过使所有编程态的阈值电压分布变窄,使每一个编程态具有更好的保持特性。

附图说明

为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明,其中:

图1a是增量步进脉冲编程的方法流程示意图;

图1b是增量步进脉冲编程过程中的脉冲步进示意图;

图1c是利用增量步进脉冲编程方式对存储单元进行编程过程中存储单元的阈值电压分布的变化图;

图1d编程过程中存储单元因电荷泄露的阈值电压下降的示意图;

图1e是mlc闪存存储器在不同阈值态下的阈值电压分布图;

图2是本发明一实施例的非易失性存储器的功能框图;

图3是一种可用于本发明实施例的存储器块的电路示意图;

图4a是本发明一实施例的非易失性存储器的ispp编程过程中编程脉冲的示意图;

图4b是本发明一实施例的对存储单元进行编程的时序图;

图4c是本发明一实施例的对存储单元进行编程抑制的时序图;

图5是本发明一实施例的非易失性存储器的时序图;

图6是本发明一实施例的非易失性存储器的阈值电压分布图;

图7是本发明一实施例的非易失性存储器的编程方法的示例性流程图。

具体实施方式

为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发明的具体实施方式作详细说明。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其它不同于在此描述的其它方式来实施,因此本发明不受下面公开的具体实施例的限制。

如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。

在详述本发明实施例时,为便于说明,表示器件结构的剖面图会不依一般比例作局部放大,而且所述示意图只是示例,其在此不应限制本发明保护的范围。此外,在实际制作中应包含长度、宽度及深度的三维空间尺寸。

为了方便描述,此处可能使用诸如“之下”、“下方”、“低于”、“下面”、“上方”、“上”等等的空间关系词语来描述附图中所示的一个元件或特征与其他元件或特征的关系。将理解到,这些空间关系词语意图包含使用中或操作中的器件的、除了附图中描绘的方向之外的其他方向。例如,如果翻转附图中的器件,则被描述为在其他元件或特征“下方”或“之下”或“下面”的元件的方向将改为在所述其他元件或特征的“上方”。因而,示例性的词语“下方”和“下面”能够包含上和下两个方向。器件也可能具有其他朝向(旋转90度或处于其他方向),因此应相应地解释此处使用的空间关系描述词。此外,还将理解,当一层被称为在两层“之间”时,它可以是所述两层之间仅有的层,或者也可以存在一个或多个介于其间的层。

在本申请的上下文中,所描述的第一特征在第二特征之“上”的结构可以包括第一和第二特征形成为直接接触的实施例,也可以包括另外的特征形成在第一和第二特征之间的实施例,这样第一和第二特征可能不是直接接触。

应当理解,当一个部件被称为“在另一个部件上”、“连接到另一个部件”、“耦合于另一个部件”或“接触另一个部件”时,它可以直接在该另一个部件之上、连接于或耦合于、或接触该另一个部件,或者可以存在插入部件。相比之下,当一个部件被称为“直接在另一个部件上”、“直接连接于”、“直接耦合于”或“直接接触”另一个部件时,不存在插入部件。同样的,当第一个部件被称为“电接触”或“电耦合于”第二个部件,在该第一部件和该第二部件之间存在允许电流流动的电路径。该电路径可以包括电容器、耦合的电感器和/或允许电流流动的其它部件,甚至在导电部件之间没有直接接触。

图2是本发明一实施例的非易失性存储器的功能框图。参考图2所示,该非易失性存储器包括存储单元阵列21和控制器22。该存储单元阵列21包括多个存储单元,该存储单元可以是闪存存储单元,如2dnand闪存、3dnand闪存存储单元。

在本实施例中,存储单元阵列21中包括的每个存储单元可以是其中存储1位数据的单极存储单元slc,或者是其中可以存储2位或更多位数据的多级存储单元(mlc),如mlc、tlc和qlc等,或者是单级存储单元和多级存储单元的任意组合。

在本实施例中,存储单元阵列21中的存储单元可以连接到字线wl和位线bl。同时,存储单元阵列21还可以连接到其他的选择线如串选择线ssl、地选择线gsl等。具体地,存储单元阵列21可以经由字线wl或者选择线(ssl和/或gsl)连接到字线解码器25,并进一步地的连接到电压发生器26。存储单元阵列21可以经由位线bl连接到位线解码器23,并进一步地的连接到输入输出(i/o)电路24。控制器22分别与位线解码器23、i/o电路24、字线解码器25和电压发生器26相连接。

当需要对某一个或多个存储单元进行擦除、编程、读写或验证操作时,控制器22可以将该一个或多个存储单元的地址发送到位线解码器23和字线解码器25,再经由位线解码器23通过位线bl寻址,以及经由字线解码器25通过字线wl寻址。

在一些实施例中,位线解码器23和字线解码器25的功能可以由一个统一的地址解码器来实现。该地址解码器还可包括地址缓冲器等组件。

i/o电路24一方面可以从控制器22和/或外部接收数据并将所接收的数据存储到存储单元阵列21中以进行写操作,另一方面可以从存储单元阵列21中读取数据并将所读取的数据输出到控制器22和/或外部以进行读操作。

电压发生器26可以响应于来自控制器22的控制信号,生成用于对存储单元阵列21执行擦除、编程、读写和验证等操作的各种电压。具体地,电压发生器26可以生成字线电压,例如编程电压(或写入电压)、编程抑制电压、读取电压和验证电压等。电压发生器26可以生成位线电压,例如位线强制电压或禁止电压。

控制器22可以输出控制信号到位线解码器23、i/o电路24、字线解码器25和电压发生器26。例如,控制器22可以输出电压控制信号到电压发生器26,将字线地址输出到字线解码器25,将位线地址输出到位线解码器23,将写数据输出到i/o电路24并且从i/o电路24接收读出的数据。

在一些实施例中,控制器22控制位线解码器23选择某些位线bl,并控制字线解码器25选择某些位线wl,通过电压发生器26对这些位线bl和字线wl施加一定的电压。例如,在读取操作期间,可以将读取电压施加到所选的字线wl,对于禁止读取的存储单元,将读取禁止电压施加到未选择的位线bl。在编程操作期间,可以将编程电压和验证电压施加到所选的字线wl,并将编程抑制电压施加到未选择的位线bl。

本发明实施例的控制器22还可以包括处理器、i/o接口等组件。控制器22对位线解码器23、i/o电路24、字线解码器25和电压发生器26的控制逻辑并不限于上述内容。该控制器22还可以实现其他任何本领域技术人员可以理解的用于非易失性存储器的逻辑控制功能。

在一些实施例中,控制器22可以基于软件来指示存储单元阵列21执行所需的存储器操作。

存储单元阵列21可以包括若干个存储器块blk1到blki。存储器块blk1到blki可以包括包含slc的单级单元块、包含mlc的两级单元块、包含tlc的三级单元块和包含qlc的四级单元块中的至少一个。存储单元阵列21中包括的存储器块blk1到blki中的某些可以是单级单元块,且其他的可以是多级单元块、三级单元块或四级单元块等。

在一些实施例中,存储器块blk1到blki中的每一个可以具有3d结构(或垂直结构),也可以具有2d结构(平面结构)。

图3是一种可用于本发明实施例的存储器块的电路示意图。参考图3所示,存储器块可以是具有水平结构的nand闪存存储器。其中mc(memorycell)表示一个存储单元。该存储器块可以包括串联连接到存储单元mc的d个串str,其中d是大于等于2的整数。每个串str可以包括分别连接到串联连接的存储单元mc的两端的串选择晶体管sst和地选择晶体管gst。csl为公共源极线。串str的数量、字线wl的数量和位线bl的数量可以根据实施例改变。

包括具有图3所示的结构的存储器块的nand闪存存储器可以以存储器块为单位执行擦除操作和以与字线wl1到wl8中的每一个对应的页page为单位执行编程操作。例如,当存储器单元mc是单级存储单元时,字线wl1到wl8中的每一个可以对应于一个页page。在其他的实施例中,当存储器单元mc是多级存储单元时,字线wl1到wl8中的每一个可以对应于多个页page。

图4a是本发明一实施例的非易失性存储器的ispp编程过程中编程脉冲的示意图。以电压编程信号为例,以下结合图4a对本发明的非易失性存储器进行说明。

参考图4a所示,其中的坐标轴横轴为时间,纵轴为电压值。在本实施例中,规定要执行编程和验证操作的对象为第一存储单元。为了使所选定的第一存储单元达到第一阈值电压v1,控制器22通过步进的方式给第一存储单元施加第一编程信号410。在编程过程中,给第一存储单元施加一次编程脉冲,可能并不能使第一存储单元的阈值电压立即达到第一阈值电压v1。在这种情况下,需要以步进的方式提高编程脉冲的幅度,再对第一存储单元施加较高幅度的编程脉冲,直到第一存储单元的阈值电压达到第一阈值电压v1为止。因此,第一编程信号410可以是一个编程脉冲,也可以是多个编程脉冲中的任一个。如图4a所示,第一编程信号410是若干个编程脉冲411、412、413中的任一个。图4a所示仅为示例,并不用于限制第一编程信号410所关联的编程脉冲的个数和脉冲幅度。验证的动作是由验证脉冲420来启动的,每一次编程之后都需要进行一次验证。验证相当于一个读的动作,用于读取第一存储单元的阈值电压,以验证其是否达到了预定的阈值电压。在每一个编程脉冲411、412、413后面都分别跟着一个验证脉冲421、422、423,将这些验证脉冲的每一个称为第一验证信号420。

在一些实施例中,本发明的非易失性存储器中的多个存储单元具有多个编程态,第一阈值电压v1对应该多个编程态中的任意一个。例如,对于多级存储单元mlc来说,具有三个编程态,分别对应的数据格式为00,01和10。第一阈值电压v1可以对应于这三个编程态中的任意一个。在多个存储单元中,可以有多个存储单元需要具有相同的编程态,也就是被编程到同样的阈值电压。第一存储单元是该多个具有相同编程态的存储单元中的一个,控制器22对多个具有相同编程态的存储单元执行同样的操作。

参考图4a所示,假设在编程脉冲413之后,验证脉冲423验证得到的结果为第一存储单元的阈值电压已经达到第一阈值电压v1,此时在验证脉冲423之后增加一个新的验证脉冲,该新的验证脉冲被称为第二验证信号430。该第二验证信号430用于验证第一存储单元的阈值电压是否达到第二阈值电压v2。该第二阈值电压v2大于第一阈值电压v1。经过该第二验证信号430的验证之后,若验证结果为第一存储单元的阈值电压未达到第二阈值电压v2,则对第一存储单元施加第二编程信号440。若验证结果为第一存储单元的阈值电压已达到第二阈值电压v2,则对第一存储单元所在的选中位线施加编程抑制信号,从而使第一存储单元处于编程抑制状态。在一些实施例中,该编程抑制信号为高电位。

在一些实施例中,第二编程信号440的幅值高于使得第一存储单元的阈值电压达到第一阈值电压v1的第一编程信号410的幅值。在图4a所示的实施例中,在第一编程信号410中,使第一存储单元的阈值电压达到第一阈值电压v1的是编程脉冲413。因此,第二编程信号440的幅值应高于编程脉冲413的幅值。事实上,由于第一编程信号410所关联的编程脉冲411、412、413的幅值是依次递增的,因此,第二编程信号440的幅值高于第一编程信号410中的所有编程脉冲的幅值。

在一些实施例中,第一编程信号410和第二编程信号440均为步进式脉冲,第二编程信号440紧接使得第一存储单元的阈值电压达到第一阈值电压v1的第一编程信号410。在图4a所示的实施例中,第二编程信号440紧接着第一编程信号410中的编程脉冲413。也就是说,在本发明的一个实施例中,在第一编程信号410和第二编程信号440之间,控制器22不给第一存储单元施加其他任何的编程信号,这可以减少两次编程之间的时间间隔。但是,不排除在第一编程信号410和第二编程信号440之间存在验证脉冲。

参考图4a所示,在此实施例中,该用于验证第一存储单元的阈值电压是否达到第二阈值电压v2的第二验证信号430,紧随用于验证第一存储单元的阈值电压是否达到第一阈值电压v1的第一验证信号420。在此实施例中,在经过第一编程信号410中的编程脉冲413及其所对应的第一验证信号420中的验证脉冲423之后,获得第一存储单元的阈值电压达到第一阈值电压v1的结果。因此,第二验证信号430紧随验证脉冲423。

在一些实施例中,在第一验证信号420和第二验证信号430之间相隔一个或多个验证信号。这些验证信号用于验证其他存储单元的阈值电压。该其他存储单元的编程态可以和第一存储单元的编程态相同,也可以不同。

在一些实施例中,控制器22还配置为对第一存储单元施加第二编程信号440之后,不经编程验证而结束对第一存储单元所在编程态的编程。可以理解的是,第二编程信号440是在第一编程信号410以外额外增加的一次编程信号。施加第二编程信号440的目的在于进一步提高第一存储单元的阈值。因此,在第二编程信号440之后,不再验证第一存储单元是否达到第二阈值电压,而是对第一存储单元进行编程抑制,从而结束对第一存储单元的整个编程过程。

对本发明的非易失性存储器来说,编程是以页为单位进行的,如果第一存储单元属于某一页,则控制器22对该页中的其他存储单元施行同样的编程操作,直到整个页的编程结束。控制器22对其他页也按照本发明的编程方法执行操作,直到完成对整个非易失性存储器的所有编程态的编程操作。

本实施例的非易失性存储器利用第二验证信号430和第二编程信号440,提高了第一存储单元的阈值电压,从而可以弥补由于电荷泄露所造成的存储单元实际电压低于预设的阈值电压的现象。

在一些实施例中,第一编程信号410为电压信号。在包括某些磁阻式存储器的存储单元的实施例中,第一编程信号410是作为电流施加的。此时,控制器22还配置为能够产生存储单元所需的电流编程信号。

图4b和4c分别是本发明一实施例的对存储单元进行编程和编程抑制的时序图。结合图4b和4c可知,通过在时序上控制存储单元所在的选中位线上的电压值,可以对该存储单元进行编程或编程抑制的控制。参考图4b所示,在对存储单元进行编程时,控制器22对该存储单元所在的选中位线施加的电压值等于参考电位vref。在一些实施例中,参考电位vref为低电位。在对存储单元进行编程时,控制器22在选中字线上加编程电压vp,未选中字线加导通电压vb,串选择晶体管sst(如图3所示)打开,使选中字线的低电位传导到沟道,这样就可以做编程操作。选中位线在编程操作之前被预充电到达预充电电压vpc,在编程操作开始前变为低电位。串选择晶体管上施加的电压为开启电压vc。参考图4c所示,在对存储单元进行编程抑制时,控制器22对该存储单元所在的选中位线施加的电压值等于编程抑制信号vpi,使sst关断,使沟道浮空,对应的选中字线上的存储单元就不会被编程。在一些实施例中,编程抑制信号为高电位。在进行编程抑制的过程中,控制器22施加在选中字线、sst和未选中字线上的电压与编程过程相同。

参考图4b和4c所示,在编程和编程抑制的时候,控制器22还控制非易失性存储器的地选择晶体管gst、衬底、和源接地。

图5是本发明一实施例的非易失性存储器的时序图。如前所述,经过第二验证信号430的验证之后,若验证结果为第一存储单元的阈值电压未达到第二阈值电压v2,则对第一存储单元施加第二编程信号440。参考图5所示,此时,控制器22在选中字线上施加第二编程信号440(如图5中选中字线上的编程电压vp)的同时,对第一存储单元所在的选中位线施加一电压值介于编程抑制信号和参考电位之间的中间电压vm。该中间电压vm不会使第一存储单元产生编程抑制,只是增加了第一存储单元的沟道电势,从而减少了沟道和栅之间的电压差,从而降低编程速度,防止过编程。

参考图5所示,此时,控制器22还控制非易失性存储器的地选择晶体管gst、衬底、和源接地。

图6是本发明一实施例的非易失性存储器的阈值电压分布图。参考图6所示,坐标系的横轴为电压值,纵轴为存储单元的数目。图6所示为经过编程之后,对应于某一个编程态的多个存储单元的阈值电压分布图。假设其所对应的编程态是前文所述的第一存储单元所在的编程态,也就是说,对于这些存储单元来说,目标阈值电压为第一阈值电压v1。

在理想情况下,经过如图4a中的第一编程信号410和第一验证信号420之后,该多个存储单元的阈值电压都达到了第一阈值电压v1。再经过如图4a中的第二验证信号430和第二编程电压440之后,使阈值电压处于第一阈值电压v1和第二阈值电压v2之间的部分存储单元的电压也达到第二阈值电压v2,从而使整个阈值电压分布的宽度变窄。

需要说明的是,第二阈值电压v2的幅值可以由选中位线上中间电压的大小决定。可以经过多次实验获得一第二阈值电压v2,使阈值电压分布的宽度变到最窄。

在一些实施例中,如图6所示,第二阈值电压v2小于第一存储单元所在编程态的阈值电压分布中的最大阈值电压vmax。

对于多个存储单元来说,在经过第一编程信号410和第一验证信号420之后,由于部分存储单元发生电荷泄露而导致电压降低,实际上的阈值电压分布比理想情况下要宽。在一些实施例中,该部分发生或可能发生电荷泄露的存储单元的电压值位于阈值电压分布图的下边界附近。对于阈值电压分布为期望μ和标准差σ的正态分布来说,该下边界可以处于正态分布图的3σ附近。

通过本发明实施例控制器22施加第二验证信号430和第二编程电压440之后,可以提高该部分发生电荷泄露的存储单元的电压值,从而对该编程态的阈值电压分布进行校正。另一方面,在尚未发生电荷泄露的情况下,通过压缩阈值电压分布的宽度,可以预防由于电荷泄露而导致的阈值电压分布变宽。

图7是本发明一实施例的非易失性存储器的编程方法的示例性流程图。该非易失性存储器包括存储单元阵列21,该存储单元阵列21包括多个存储单元。参考图7所示,该编程方法包括以下步骤:

步骤702,对第一存储单元施加第一编程信号。

在本步骤中,该第一存储单元为多个存储单元中的一个。非易失性存储器还包括控制器22。控制器22通过步进的方式给第一存储单元施加第一编程信号410。

第一编程信号410是一个或多个编程脉冲中的一个。在编程过程中,给第一存储单元施加一次编程脉冲,可能并不能使第一存储单元的阈值电压立即达到第一阈值电压v1。在这种情况下,需要以步进的方式提高编程脉冲的幅度,再对第一存储单元施加较高幅度的编程脉冲,直到第一存储单元的阈值电压达到第一阈值电压v1为止。

步骤704,验证第一存储单元的阈值电压是否达到第一阈值电压。

在本步骤中,非易失性存储器的多个存储单元具有多个编程态,第一阈值电压v1对应该多个编程态中的任意一个。控制器22通过施加第一验证信号420来进行验证,判断第一存储单元的阈值电压是否达到第一阈值电压v1,如果是的话,本方法流程进行到步骤708;如果否的话,本方法流程进行到步骤706。对于与多个编程脉冲关联的第一编程信号410,在对第一存储单元施加的每一次编程脉冲后都分别跟着一个验证脉冲,这些验证脉冲组成第一验证信号420。显然,编程脉冲的数量和第一验证信号420中的验证脉冲的数量相同。

步骤706,增加第一编程信号的幅度。

在经过步骤702的编程过程后,第一存储单元的阈值电压尚未达到第一阈值电压v1,则在本步骤按照步进的方式提高下一次编程脉冲的幅度,并回到步骤702,对第一存储单元施加该较高幅度的编程脉冲,再进行到步骤704,验证第一存储单元的阈值电压是否达到第一阈值电压v1。步骤706、702和704循环进行,直到第一存储单元的阈值电压达到第一阈值电压v1。

步骤708,验证第一存储单元的阈值电压是否达到第二阈值电压。

在本步骤,第二阈值电压v2大于第一阈值电压v1。该验证的过程与步骤704相似。相同之处在于,本步骤的验证也是由控制器22通过施加一个验证信号来执行。不同之处在于,在本步骤中的验证信号为第二验证信号430。该第二验证信号430不同于第一验证信号420。

在本步骤经过验证判断第一存储单元的阈值电压是否达到第二阈值电压v2,如果是的话,本方法流程进行到步骤712;如果否的话,本方法流程进行到步骤710。

在一些实施例中,该第二验证信号430紧随用于验证第一存储单元的阈值电压是否达到第一阈值电压v1的第一验证信号420。当第一验证信号420中包括多个验证脉冲时,该第二验证信号430紧随第一验证信号420中的最后一个验证脉冲。

在一些实施例中,在第一验证信号420和第二验证信号430之间相隔一个或多个验证信号。这些验证信号用于验证其他存储单元的阈值电压。该其他存储单元的编程态可以和第一存储单元的编程态相同,也可以不同。

在一些实施例中,第二阈值电压v2的幅值可以由选中位线上中间电压的大小决定。可以经过多次实验获得一第二阈值电压v2,使阈值电压分布的宽度变到最窄。第二阈值电压v2小于第一存储单元所在编程态的阈值电压分布中的最大阈值电压vmax。

步骤710,对第一存储单元施加第二编程信号。

在经过步骤708的验证过程后,结果为第一存储单元的阈值电压尚未达到第二阈值电压v2,控制器22在本步骤对第一存储单元施加第二编程信号440。

在一些实施例中,第二编程信号440的幅值高于使得第一存储单元的阈值电压达到第一阈值电压v1的第一编程信号410的幅值。当第一编程信号410中包括多个编程脉冲时,第二编程信号440的幅值应高于第一编程信号410中的最后一个编程脉冲的幅值。该最后一个编程脉冲即使第一存储单元的阈值电压达到第一阈值电压v1的编程脉冲。

在一些实施例中,第一编程信号410和第二编程信号440均为步进式脉冲,第二编程信号440紧接使得第一存储单元的阈值电压达到第一阈值电压v1的第一编程信号410。也就是说,在本发明的实施例中,在第一编程信号410和第二编程信号440之间,控制器22不给第一存储单元施加其他任何的编程信号。但是,不排除在第一编程信号410和第二编程信号440之间存在验证脉冲。

在此步骤中,控制器22在选中字线上施加第二编程信号440的同时,对第一存储单元所在的选中位线施加一电压值介于编程抑制信号和参考电位之间的中间电压。该中间电压不会使第一存储单元产生编程抑制,只是增加了第一存储单元的沟道电势,从而减少了沟道和栅之间的电压差,从而降低编程速度,防止过编程。

在对第一存储单元施加第二编程信号440之后,不经编程验证而结束对第一存储单元所在编程态的编程。即本方法的流程进行到结束步骤714。

步骤712,对第一存储单元所在的选中位线施加编程抑制信号。

在经过步骤708的验证过程后,结果为第一存储单元的阈值电压已经达到第二阈值电压v2,则在本步骤,控制器22对第一存储单元所在的选中位线施加的电压值等于编程抑制信号。在一些实施例中,编程抑制信号为高电位。

步骤714,结束。

到本步骤,对第一存储单元的编程结束。对于本发明的非易失性存储器来说,编程是以页为单位来进行的,如果第一存储单元属于某一页,则控制器22对该页中的其他存储单元执行与本方法流程相同的编程操作,直到整个页的编程结束。控制器22对其他页也按照本发明的编程方法执行操作,直到完成对整个非易失性存储器的所有编程态的编程操作。

本发明的非易失性存储器的编程方法与传统方法相比,通过对存储单元的阈值电压增加一次验证,即第二验证信号430,对每个编程态分布中阈值靠下的存储单元增加一次编程操作,即第二编程信号440,提高了位于阈值电压分布下边界的存储单元的阈值电压,使每个编程态的分布更窄,增加读窗口的宽度,提高了非易失性存储器对电荷损失造成的读窗口变小的容忍度;通过使所有编程态的阈值电压分布变窄,使每一个编程态具有更好的保持特性。

虽然本发明已参照当前的具体实施例来描述,但是本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本发明,在没有脱离本发明精神的情况下还可做出各种等效的变化或替换,因此,只要在本发明的实质精神范围内对上述实施例的变化、变型都将落在本申请的权利要求书的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1