闪存装置及其编程操作的初始化方法与流程

文档序号:12609709阅读:348来源:国知局
闪存装置及其编程操作的初始化方法与流程

本发明涉及一种闪存装置及其编程操作(programming operation)的初始化方法,特别是涉及一种闪存的递增步阶脉冲编程(Incremental Step Pulse Programming,ISPP)操作的初始化方法。



背景技术:

随着电子产品的普及化,为因应使用者大量的信息需求,提供高品质的数据储存媒介成为电子产品重要的规格之一。在现今的技术领域中,可提供数据写入以及读取能力的闪存成为电子产品必备的数据储存媒介。

在针对闪存进行编程的过程中,可以通过递增步阶脉冲编程操作来进行。递增步阶脉冲编程操作通过多个递增电压的脉冲来对存储单元进行编程操作,并通过控制脉冲的电压值、提供脉冲的次数以及提供脉冲的时间宽度来控制编程后存储单元的临界电压的分布状态。为了有效的控制编程后存储单元的临界电压的分布范围,且有效控制编程操作所需的时间,设定一个启始编程电压为本领域的技术人员的一个重要的课题。



技术实现要素:

本发明提供一种闪存装置及其编程操作的初始化方法,可有效计算出起始编程电压值及编程脉冲电压递增值。

本发明的闪存编程操作的初始化方法,包括:使用编程非遮蔽方案,提供多个脉冲编程电压以对闪存的多个存储单元进行多个编程操作,其中脉冲编程电压的电压值依次递增;在各编程操作后依据编程验证电压对存储单元执行对应的编程验证操作,并依据编程验证操作的验证结果以记录各编程操作所对应的脉冲编程电压的电压值为记录编程电压值;在编程操作后,提供多个脉冲读取电压以对存储单元进行多个读取操作,其中脉冲读取电压的电压值依次递增;依据各读取操作的读取结果来记录对应的各脉冲读取电压的电压值为记录读取电压值;以及,依据记录编程电压值、记录读取电压值以 及编程验证电压的电压值来获得起始编程电压值及编程脉冲电压递增值。

在本发明的一实施例中,上述的依据编程验证操作的验证结果以记录各编程操作所对应的脉冲编程电压的电压值为记录编程电压值的步骤包括:使用编程非遮蔽方案,当编程验证操作验证出临界值小于编程验证电压的存储单元的数量小于预设参考值时,记录编程验证操作对应的编程操作所对应的脉冲编程电压的电压值为记录编程电压值。

在本发明的一实施例中,上述的依据各读取操作的读取结果来记录对应的各脉冲读取电压的电压值为记录读取电压值的步骤包括:使用递增步阶脉冲读取操作,当读取操作中,临界值大于对应的各脉冲读取电压的电压值的存储单元的数量小于预设参考值时,记录对应的脉冲读取电压的电压值为记录读取电压值。

在本发明的一实施例中,上述的依据记录编程电压值、记录读取电压值以及编程验证电压的电压值来获得起始编程电压值的步骤包括:设定起始编程电压值=Vn–RDm+PVn+Voffset,其中,Vn为记录编程电压值,RDm为记录读取电压值,PVn为一般性编程验证操作的电压值,Voffest为预设的偏移电压值。

在本发明的一实施例中,上述的初始化方法,其中该偏移电压值大于、小于或等于0伏特。偏移电压值取决于存储单元编程电压临界值预期分布及存储单元抹除编程后预期衰减量。

在本发明的一实施例中,编程操作的初始化方法中还包括:依据记录读取电压值、编程验证电压的电压值以及预设的编程次数以计算出编程脉冲电压递增值。

在本发明的一实施例中,编程操作的初始化方法中还包括:储存记录编程电压值、记录读取电压值、编程验证电压的电压值以及一般性编程验证操作的电压值至闪存的控制器中。

本发明的闪存装置包括多个存储单元、感测电路以及控制器。存储单元组成存储单元阵列,感测电路耦接存储单元阵列,控制器耦接感测电路及存储单元。控制器提供多个脉冲编程电压以对该闪存的多个存储单元进行多个编程操作,其中,脉冲编程电压的电压值依次递增;在各编程操作后依据编程验证电压对存储单元执行对应的编程验证操作,并依据编程验证操作的验证结果以记录各编程操作所对应的脉冲编程电压的电压值为记录编程电压 值;在编程操作后,提供多个脉冲读取电压以对存储单元进行多个读取操作,其中脉冲读取电压的电压值依次递增;依据各读取操作的读取结果来记录对应的各脉冲读取电压的电压值为记录读取电压值;以及,依据控制器记录编程电压值、记录读取电压值以及编程验证电压的电压值来获得起始编程电压值及编程脉冲电压递增值。

综上所述,本发明通过针对存储单元进行无遮蔽式的多次的编程操作,并藉由编程验证操作来获得记录编程电压值,并通过多次的读取操作读取结果来获得记录读取电压值。最后,依据记录编程电压值、记录读取电压值以及编程验证电压的电压值可计算出起始编程电压值,以完成编程操作的初始化操作。

在本发明一实施例中,其中,控制器操作可由外接测试装置或外接控制单元发送指令,控制器执行相对操作。外接测试装置或外接控制单元记录编程电压值、记录读取电压值以及编程验证电压的电压值来获得起始编程电压值及编程脉冲电压递增值。

为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。

附图说明

图1绘示本发明一实施例的闪存的编程操作的初始化方法的流程图。

图2A绘示本发明实施例的编程操作的初始化步骤的波形示意图。

图2B绘示本发明实施例的编程操作的初始化步骤中,存储单元的临界电压分布状态示意图。

图3绘示本发明一实施例的闪存装置的示意图。

附图标记说明:

S110~S150:步骤

PP1~PPn、RP1~RPm:脉冲

TP1~TPn、TV1~TVn、TR1~TRm:时间周期

V1~Vn:脉冲编程电压的电压值

PV0:编程验证电压

Z1:抹除的状态

Z2:被编程的状态

RD1~RDm:脉冲读取电压

300:闪存装置

301:测试装置或外接控制单元

310:存储单元阵列

320:控制器

330:感测电路

340:行地址解码器

350:列地址解码器

360:电源产生器。

具体实施方式

请参照图1,图1绘示本发明一实施例的闪存的编程操作的初始化方法的流程图。其中,步骤S110使用编程非遮蔽方案,提供多个脉冲编程电压以对闪存的多个存储单元进行多次的编程操作,其中,脉冲编程电压的电压值是依次递增的。具体来说明,请同时参照图2A,其中图2A绘示本发明实施例的编程操作的初始化步骤的波形示意图。其中,对应步骤S110,图2A中在连续的时间周期TP1~TPn中,多个脉冲PP1~PPn分别被提供以对闪存的存储单元进行编程操作。并且,脉冲PP1~PPn的脉冲编程电压的电压值V1~Vn依次增加。也就是说,电压值V1<电压值V2<..<电压值Vn。

值得注意的,所谓的编程非遮蔽方案,是在进行初始化操作的过程中,所进行的编程操作是未执行遮蔽功能(without inhibit function)的编程操作,也就是说,所有的存储单元都会执行被编程的操作。

请重新参照图1,在另一方面,步骤S120中,在各编程操作后依据编程验证电压对存储单元执行对应的编程验证操作,并依据编程验证操作的验证结果以记录各编程操作所对应的脉冲编程电压的电压值为记录编程电压值。对照图2A,其中在时间区间TP1~TPn间距有多个连续的时间区间TV1~TVn,其中的每两个相邻的时间区间(例如时间区间TP1、TP2)间,据有一个时间区间(例如时间区间TV1)。时间区间TV1~TVn用以进行编程验证操作。在时间区间TV1~TVn中,等于编程验证电压PV0的多个脉冲分别提供以进行存储单元的编程验证操作。

在图2A中,其中的时间区间TV1~TVn中所进行的编程验证操作是用来验证临界值(threshold value)小于编程验证电压PV0的存储单元数量是否小于第一预设参考值。当在具有小于编程验证电压PV0的临界值的存储单元的数量小于第一预设参考值时,表示足够多的存储单元都已完成编程的操作,也表示编程操作可以被结束。在图2A中,在时间区间TVn前所进行的编程验证操作都是不成功的,具体来说,也就是在时间区间TPn前,临界值小于编程验证电压PV0的存储单元数量是大于第一预设参考值的。而在时间区间TVn时所进行的编程验证操作则表示临界值小于编程验证电压PV0的存储单元数量是小于第一预设参考值,也就是足够多的存储单元都已完成编程的操作,在接下来的时间区间中不需要进一步提供脉冲以执行编程的操作。

附带一提的,上述的预设的参考值可以为0,也可以为大于0的数值。其中,预设的参考值的设置可用来排除因尾端位(tail bit)所造成的影响。具体来说明,在闪存中,常具有一个或数个存储单元被编程时所产生的临界电压的偏移能力过小,而无法被有效的被编程的情况。通常这些存储单元的位就是所谓的尾端位。在本实施例中,为提升闪存的效能,这些尾端位的存储单元可被排除。而本实施例中的第一预设参考值的大小可以依据尾端位的存储单元的数量来设置。

在此请同时参照图2B,其中图2B绘示本发明实施例的编程操作的初始化步骤中,存储单元的临界电压分布状态示意图。在编程操作的初始化步骤未执行前,存储单元的临界电压分布在被抹除的状态Z1,而通过步骤S110、S120的执行,并在时间区间TVn后,存储单元的临界电压分布变更为被编程的状态Z2。其中,被编程的状态Z2中的存储单元的临界电压大部分大于编程验证电压PV0。

请重新参照图1,在前述的编程操作都完成后,执行步骤S130,并提供多个脉冲读取电压以对存储单元进行多个读取操作,其中,脉冲读取电压的电压值依次递增。具体来说明,请参照图2A,其中,在时间区间TR1~TRm中,分别提供多个脉冲RP1~RPm以对存储单元进行多个读取操作。其中。脉冲RP1~RPm分别具有多个脉冲读取电压RD1~RDm,且脉冲读取电压RD1<脉冲读取电压RD2<<脉冲读取电压RDm。

接着,在步骤S140中,依据各读取操作的读取结果来记录对应的各脉 冲读取电压的电压值为记录读取电压值。也就是说,在时间区间TR1~TRm,分别判别对应执行的读取操作的读取结果,举例来说明,当在时间区间TRm前所进行的读取操作的读取结果非皆每个位都等于“1”时,表示读取结果为失败而需进行下一次的读取操作。而当在时间区间TRm时所进行的读取操作的读取结果为每个位都等于“1”时,表示读取结果为成功而不需进行下一次的读取操作。

在本实施例中,当在时间区间TRm中,依据脉冲读取电压RDm所进行读取的结果是成功的,表示在图2B中,被编程的状态Z2中的存储单元中,具有临界电压大于脉冲读取电压RDm的存储单元的数量小于第二预设参考值。也就是说,在扣除尾端位的影响下,此时的存储单元的临界电压的最大值约等于脉冲读取电压RDm。在此同时,读取操作可以被停止,且此时的脉冲读取电压RDm被记录为记录读取电压值。

附带一提的,第一预设参考值与第二预设参考值的数值可依据闪存的存储单元的物理状态来设定,第一预设参考值与第二预设参考值可以相同,也可以不相同。

重新参照图1,在获得记录编程电压值、记录读取电压值后,步骤S150可依据记录编程电压值、记录读取电压值以及编程验证电压的电压值来获得起始编程电压值。其中,起始编程电压值=Vn–RDm+PVn+Voffset。其中,PVn为一般性编程验证操作的电压值,Voffest为预设的偏移电压值。

值得注意的,预设的偏移电压值Voffest可以由工程人员依据需求及闪存的实际状态来加以设定,其中,预设的偏移电压值Voffest可以大于、小于或也可以等于0伏特。

在另一方面,若闪存的编程次数是固定的,则闪存要对存储单元进行编程操作时,所通过的递增步阶脉冲编程中,每次脉冲编程电压所需递增的电压值则可等于(RDm-PV0)/COUNT,其中的COUNT为编程次数。

并且,上述的记录编程电压值Vn、记录读取电压值RDm、编程验证电压PV0的电压值以及一般性编程验证操作的电压值PVn都可以被储存在闪存的控制器中,如此一来,当闪存要进行自身存储单元的编程操作时,就可以应用所记录的记录编程电压值Vn、记录读取电压值RDm、编程验证电压PV0的电压值以及一般性编程验证操作的电压值PVn来设定初始编程电压值以及每次脉冲编程电压所需递增的电压值以执行递增步阶脉冲编程操作。

请参照图3,图3绘示本发明一实施例的闪存装置的示意图。闪存装置300包括由多个存储单元所组成的存储单元阵列310、控制器320、感测电路330、行地址解码器340、列地址解码器350以及电源产生器360。感测电路330耦接存储单元阵列310,控制器320耦接感测电路330、存储单元阵列310、行地址解码器340、列地址解码器350以及电源产生器360。

在本实施例中,控制器320另耦接至测试装置或外接控制单元301。测试装置301发送测试指令并通过控制器执行320如图1实施例中的各个编程操作的初始化步骤。值得一提的,测试装置301可以是闪存装置300外部的测试机台,也可以是内建在控制器320内部的内建测试电路(Built-In Self Test,BIST)的至少一部分。

关于编程操作的初始化步骤的实施细节在前述的实施例中已有详细的说明,以下恕不多赘述。

综上所述,本发明所提供的编程操作的初始化方法,通过多个编程操作来获得记录编程电压值,并通过多个读取操作来获得记录读取电压值。通过记录编程电压值以及记录读取电压值可以得知被编程后的存储单元的临界电压的分布状态,如此一来,可以有效的设定起始编程电压值,并使闪存的编程操作可以更有效率的达成。

虽然本发明已以实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,可作些许的更改与修饰,故本发明的保护范围当以权利要求所界定的为准。

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