编程非易失性存储器的方法及存储器系统与流程

文档序号:17120108发布日期:2019-03-15 23:43阅读:252来源:国知局
编程非易失性存储器的方法及存储器系统与流程

本发明涉及一种非易失性存储器,且特别涉及一种编程非易失性存储器的方法及存储器系统。



背景技术:

近年来,非易失性存储器广泛的使用于各种电子设备,例如个人计算机、笔记本电脑、智能型手机、平板计算机等。非易失性存储器可包括由存储单元(cell)组成的阵列。通过使用多阶储存单元(multi-levelcell,mlc)技术,一个存储单元可储存较多位而能够提高存储器密度。随着存储单元的尺寸逐渐减小,在不同存储器状态之间的阈值电压(thresholdvoltage,vt)间隔也随之变小,因此导致较高的位错误率,读取存储单元时的噪声变动(noisefluctuation)可能会影响存储器的可靠性。

响应于较高的位错误率,现代的存储器装置中已采用错误更正码(errorcorrectingcode,ecc)技术,例如包括bch码以及低密度奇偶检查码(low-densityparity-checkcode,ldpccode)。bch相对而言实作较容易,但可能较不易处理高位错误率。相比之下,ldpc可处理高位错误率,但需要较大的硬件面积、较复杂的电路结构、以及较多功率消耗。因此,有需要提出一种编程非易失性存储器的方法以及存储器系统,以使得单纯的ecc技术可应用于以深纳米技术节点制造的非易失性存储器装置。



技术实现要素:

本发明有关于一种编程非易失性存储器的方法以及存储器系统,通过组合使用多次验证(multi-times-verify,mtv)以及读取重试(read-retry,rr),能够降低错误位数,因此可使得单纯的ecc技术可应用于以深纳米技术节点制造的非易失性存储器装置。

根据本发明的一实施例,提出一种编程非易失性存储器的方法,此方法包括下列步骤。对于非易失性存储器的存储单元执行编程及编程验证操作,其中编程及编程验证操作包括施加序列增量阶跃脉冲至存储单元。在存储单元通过编程及编程验证操作后,对于存储单元执行再验证操作。若是存储单元未通过再验证操作,施加再编程脉冲至该存储单元,其中再编程脉冲的振幅大于序列增量阶跃脉冲的最后脉冲的振幅。对于非易失性存储器执行读取操作,以取得对应读取操作的错误位数。调整读取操作的读取参考电压以最小化错误位数。

根据本发明的另一实施例,提出一种存储器系统,存储器系统包括非易失性存储器及控制器。控制器用以执行以下操作:对于非易失性存储器的存储单元执行编程及编程验证操作,在存储单元通过编程及编程验证操作后,对于存储单元执行再验证操作,若是存储单元未通过再验证操作,施加再编程脉冲至该存储单元,对于非易失性存储器执行读取操作,以取得对应读取操作的错误位数,以及调整读取操作的读取参考电压以最小化错误位数。其中在编程及编程验证操作中控制器用以施加序列增量阶跃脉冲至存储单元,再编程脉冲的振幅大于序列增量阶跃脉冲的最后脉冲的振幅。

为了对本发明上述及其他方面有更佳了解,下文特列举实施例,并配合所附附图详细说明如下:

附图说明

图1绘示依照本发明一实施例的多阶储存单元的阈值电压分布示意图。

图2绘示依照本发明一实施例的存储器系统的方块图。

图3绘示依照本发明一实施例的编程非易失性存储器的方法流程图。

图4绘示依照本发明一实施例的多次验证以及读取重试的方法流程图。

图5a绘示依照本发明一实施例在1次擦写后的vt分布示意图。

图5b绘示依照本发明一实施例在3000次擦写后的vt分布示意图。

图6绘示依照本发明一实施例的错误位数与δvp关系的示意图。

图7a绘示于执行依照本发明一实施例的编程非易失性存储器方法之前的vt分布示意图。

图7b绘示于执行依照本发明一实施例的编程非易失性存储器方法之后的vt分布示意图。

图8绘示依照本发明一实施例改善ecc窗口的示意图。

图9绘示依照本发明一实施例的编程吞吐量与mtv使用验证次数关系的示意图。

【符号说明】

10:存储器系统

100:非易失性存储器

120:控制器

s、a、b、c:状态

s201~s209、s301~s311:步骤

vref、vref’、vref1、vref2、vref3、vref4、vref1’、vref2’、vref3’:读取参考电压

pva、pvb、pvc:编程验证电压

具体实施方式

以下提出各种实施例进行详细说明,然而,实施例仅用以作为范例说明,并不会限缩本发明要保护的范围。此外,实施例中的附图省略部份元件,以清楚显示本发明的技术特点。在所有附图中相同的标号将用于表示相同或相似的元件。

图1绘示依照本发明一实施例的多阶储存单元(mlc)的阈值电压(vt)分布示意图。在此例中,非易失性存储器的每一存储单元储存2位的数据,每一个多阶储存单元具有四个逻辑状态,即“11”、“10”、“00”及“01”,在图1中分别表示为e状态、a状态、b状态、及c状态。读取参考电压vref1、vref2、vref3可用以区别位于e状态、a状态、b状态、及c状态的存储单元。编程验证(programverify)电压pva、pvb、pvc可分别用以验证存储单元是否已成功编程到a状态、b状态、c状态。在此例中虽使用mlc作为范例,然而本发明并不仅限于此,在此揭露中的编程方法以及存储器系统也可应用于其他存储器装置,例如包括三阶储存单元(triple-levelcells,tlc)及四阶储存单元(quad-levelcells,qlc),其分别可在每个存储单元储存3个位及4个位。

因为存储单元的随机电报噪声(randomtelegraphnoise,rtn)特性,存储单元在状态a的vt分布会具有低于编程验证电压pva的“尾巴”部分,类似的,存储单元在状态b及状态c的vt分布也分别具有低于编程验证电压pvb及pva的“尾巴”部分,此处所述的“尾巴”部分使得不同存储器状态之间的窗口(window)变窄,而导致读取操作时较高的错误位数(failedbitcount,fbc)。

图2绘示依照本发明一实施例的存储器系统的方块图。存储器系统10包括非易失性存储器100及控制器120。控制器120用以执行以下操作:对于非易失性存储器100的存储单元执行编程及编程验证操作,在存储单元通过编程及编程验证操作后,对于存储单元执行再验证(post-verifying)操作,若是存储单元未通过再验证操作,施加再编程脉冲(post-programmingpulse)至该存储单元,对于非易失性存储器100执行读取操作,以取得对应读取操作的错误位数(fbc),以及调整读取操作的读取参考电压以最小化错误位数。其中在编程及编程验证操作中控制器120用以施加序列增量阶跃脉冲(incrementalsteppulses)至存储单元,再编程脉冲的振幅大于序列增量阶跃脉冲的最后脉冲的振幅。

非易失性存储器100可在电源关闭时保持其储存内容,非易失性存储器100可包括多个存储器区块(block),每个存储器区块可包括多个存储器页面(page)。非易失性存储器100例如为只读存储器(read-onlymemory,rom)、可编程只读存储器(programmableread-onlymemory,prom)、电可改写只读存储器(electricallyalterablereadonlymemory,earom)、擦除式可编程只读存储器(erasableprogrammablereadonlymemory,eprom)、电子擦除式可编程只读存储器(electricallyerasableprogrammablereadonlymemory,eeprom)、单次可编程(one-timeprogrammable,otp)存储器、多次可编程(multiple-timesprogrammable,mtp)存储器、二维快闪(flash)存储器、或三维闪存。控制器120的实现例如为芯片、芯片内的电路区块、固件、含有多个电子元件及导线的电路板、或处理器以及储存程序代码的计算机可读取媒体。控制器120可用以控制非易失性存储器100的编程(写入)、读取、以及擦除操作。

图3绘示依照本发明一实施例的编程非易失性存储器的方法流程图。图3所示的方法可由图2所示的存储器系统10执行,此方法包括下列步骤。步骤s201:对于非易失性存储器的存储单元执行编程及编程验证操作,其中编程及编程验证操作包括施加序列增量阶跃脉冲至存储单元。步骤s203:在存储单元通过编程及编程验证操作后,对于存储单元执行再验证操作。步骤s205:若是存储单元未通过再验证操作,施加再编程脉冲至该存储单元,其中再编程脉冲的振幅大于序列增量阶跃脉冲的最后脉冲的振幅。步骤s207:对于非易失性存储器执行读取操作,以取得对应读取操作的错误位数。步骤s209:调整读取操作的读取参考电压以最小化错误位数。以下将详细叙述关于图3的各步骤。

图3所示方法的一个实施例可以参考图4,其绘示依照本发明一实施例的多次验证以及读取重试的方法流程图。在步骤s300,控制器120用以擦除(erase)存储器区块内的存储单元。步骤s301及s302可对应图3的步骤s201。在步骤s20l:控制器120用以施加序列增量阶跃脉冲至非易失性存储器100的存储单元,在一实施例中,可以使用增量阶跃脉冲编程(incrementalsteppulseprogramming,ispp)技术,序列增量阶跃脉冲的振幅以一步距(stepsize)δv递增。举例而言,步距δv=0.2v,步骤s201可包括使用1.0v脉冲编程(s301)、使用1.0v脉冲验证(s302)、使用1.2v脉冲编程(s301)、使用1.2v脉冲验证(s302)、使用1.4v脉冲编程(s301)、使用1.4v脉冲验证(s302)、依此类推,直到存储单元被验证有成功编程到欲编程的状态(即通过步骤s302的编程验证)。

在存储单元通过步骤s302的编程及编程验证操作之后,可于步骤s303对于存储单元执行多次验证(multi-timesverify,mtv)操作,此步骤可对应于图3的步骤s203。在步骤s304,控制器120通过施加再验证脉冲pvmtv至存储单元,以决定存储单元是否通过mtv。在一实施例中,再验证(post-verifying)操作包括多个再编程验证操作,若是存储单元未通过多个再编程验证操作的其中至少之一,则视为存储单元未通过再验证操作(即步骤s304未通过mtv)。

若是存储单元于步骤s304未通过再验证操作,进入步骤s305,其对应图3的步骤s205。在步骤s305,控制器120用以施加再编程(post-programming)脉冲至存储单元,再编程脉冲的振幅大于步骤s301中序列增量阶跃脉冲的最后脉冲的振幅。举例而言,对于存储单元ispp程序的最后脉冲的振幅vgpgm=1.4v,则再编程脉冲的振幅可以是(vgpgm+δvp),δvp可适用的数值将于之后讨论。通过这样的再编程操作,落入“尾巴”部分的存储单元的vt可获得提升,可减少vt分布中的“尾巴”部分。

在步骤s305执行再编程操作之后,或是当步骤s304的判断结果为是,进入步骤s306。在步骤s306结束mtv操作之后,对于存储单元执行读取重试(read-retry)操作,包括步骤s307到s310。于步骤s307:控制器120通过施加读取参考电压vref至非易失性存储器100以执行读取操作(例如一次读取一个存储器页面)。由于控制器120知道非易失性存储器100内的存储单元是被编程到哪一个状态,因此于步骤s308控制器120可以辨别所读取的存储单元是否正确,此判断存储单元是否距确的操作于图4中以数据译码操作表示。此外,于步骤s308,控制器120可计算错误位数(可对应于错误的存储单元数量)的总数。步骤s307及s308对应于图3的步骤s207。

在步骤s309,控制器120判断于步骤s308获得的错误位数(fbc)是否为最小值。若不是最小值,进入步骤s310,调整读取参考电压至一个不同数值vref’,使用新的读取参考电压vref’重新执行步骤s307及s308,以获得一个新的fbc。新取得的fbc与先前过程中取得的fbc比较,以在步骤s309判断是否已经到达fbc最小值。步骤s309及s310可对应于图3的步骤s209。步骤s307到s310可重复执行多次直到找到fbc最小值为止,接着步骤s311结束mtv以及读取重试操作。

移动读取参考电压以最小化fbc的过程可以参考图5a及图5b。图5a绘示依照本发明一实施例在1次擦写后(p/ecycle=1)的vt分布示意图。如图5a所示,初始的读取参考电压vref位于e状态及a状态的vt分布之间。图5b绘示依照本发明一实施例在3000次擦写后(p/ecycle=3000)的vt分布示意图。在3000次擦写后,可清楚看到e状态及a状态的vt分布已经改变,若是持续使用初始的读取参考电压vref,则可能会有过多的错误位。步骤s307到s310尝试找出一个优化的读取参考电压,以最小化fbc,fbc包括于e状态的存储单元被读取为a状态、以及于a状态的存储单元被读取为e状态。经过数次重复步骤s307到s310,可找到最小化fbc的读取参考电压vref’,如图5b所示。

关于步骤s305的δvp适用数值,图6绘示依照本发明一实施例的错误位数与δvp关系的示意图。图6所绘示的四个曲线fbc1、fbc2、fbc3、fbc4分别对应于图1所示的读取参考电压vref1、vref2、vref3、vref4。通过在再编程操作中施加不同的δvp,可以取得这四个读取参考电压vref1、vref2、vref3、vref4分别对应的错误位数。从图6可以看出,若是δvp太小,在“尾巴”部分的存储单元vt无法获得足够提升,因此vt分布的下界增加的程度不够,导致较高的fbc。另一方面,若是δvp太大,部分存储单元的vt会增加太多,使得存储器状态vt分布的上界产生向上位移,同样会导致过多的fbc。因此,对于δvp存在一个可将fbc保持较低的可容许范围,如图6所示。在一实施例中,δvp(代表再编程脉冲的振幅与序列增量阶跃脉冲的最后脉冲的振幅两者之间的差值)是介于0.5v到0.9v之间。在一实施例中,δvp是介于步骤s301(ispp编程及验证操作)所使用的步距δv到该步距的两倍2×δv之间。

图7a绘示于执行依照本发明一实施例的编程非易失性存储器方法之前的vt分布示意图。图7a绘示初始的读取参考电压vref1、vref2、vref3、vref4,a状态、b状态、c状态的vt分布呈现类似于钟型(bellshaped)分布。图7b绘示于执行依照本发明一实施例的编程非易失性存储器方法之后的vt分布示意图。通过施加适当强度的再编程脉冲(例如图6所示可容许范围内的δvp),a状态、b状态、c状态的vt分布的下界可获得提升(在图中为向右位移),而a状态、b状态、c状态的vt分布的上界则可维持几乎相同。因此,a状态、b状态、c状态的vt分布相当于受到“挤压”而呈现双峰值(two-hump)形状的分布。a状态、b状态、c状态的vt分布区间变得较窄,同样分布曲线也变得较为陡峭,有效降低错误比特率。根据这样的双峰值形状分布,读取参考电压被调整位移到新的数值vref1’、vref2’、vref3’以最小化fbc,如图7b所示。在此范例中读取参考电压vref4并没有改变,以提供足够驱动能力。

靠近e状态与a状态边界的vt分布于图8中放大,图8绘示依照本发明一实施例改善ecc窗口的示意图。图中的水平虚线ecc代表ecc能力,虚线位置越高即代表ecc能力越强。根据这条水平线ecc,e状态vt分布的上界与a状态vt分布的下界之间可定义为保留窗口。从图8可以看出,在执行如图3或是图4所示的mtv以及读取重试操作之后,保留窗口的宽度从w增加到w’。由于保留窗口宽度变大,使得可以将简单的ecc技术应用于具有小特征尺寸和高密度的存储器装置。举例而言,可以应用bch码技术(例如1kb数据中可校正20到40位)在所提出的mtv以及读取重试架构中。

图9绘示依照本发明一实施例的编程吞吐量与mtv使用验证次数关系的示意图。如前所述,再验证操作包括多个再编程验证操作,在步骤s203或步骤s303中所使用的再编程验证操作的次数,在图9中以#mtv表示。一般而言,增加#mtv会降低编程吞吐量(throughput),因为会需要花较多的时间于再验证操作。然而,通过使用再验证操作,可以有效使得vt分布变得更窄更为紧缩,因此可以放宽对于ispp编程与验证操作(步骤s201或步骤s301)的质量要求。举例而言,与传统ispp程序相比,在ispp编程与验证操作中所使用的步距δv可以更大,在一实施例中,步距δv介于0.2v到0.6v之间。增加步距δv有助于减少ispp程序所需的时间。如图9所示,#mtv存在一个范围可以达到较佳的编程吞吐量ptp,也即,于再验证操作需要花费一定的额外时间,但在ispp程序可以省下更多的时间。在一范例中,#mtv设定为2。未利用mtv技术时的原始步距δv设定为0.4v,在ispp程序中平均所需的编程脉冲数量(shot)为10。若是使用mtv技术(#mtv=2),步距δv可从0.4v增加到0.6v,在一实施例中,步距δv甚至可设为更高的电压(可能高于0.6v),当δv设定为0.6v时,在ispp程序中平均所需的编程脉冲数量从10减少为7。如上所述,当#mtv设为2时,在ispp程序中所需的时间降低了,因此可改善编程吞吐量ptp。

根据本揭露上述的多个实施例,对于非易失性存储器的存储单元使用多次验证以及读取重试的组合,以改变vt分布的特性,如此可使得vt分布更为紧缩以增加在不同存储器状态之间的保留窗口,并降低读取存储单元时的噪声变动的影响,使得可以将简单的ecc技术应用于具有小特征尺寸和高密度的存储器装置。通过采用本揭露所提出的技术,存储器装置的使用寿命可以增加,举例而言,即使在超过1000次擦写之后存储器装置仍然可以维持可靠。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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