CN104916323A - 编程多个存储单元及存储器的方法及该存储器 - Google Patents
编程多个存储单元及存储器的方法及该存储器 Download PDFInfo
- Publication number
- CN104916323A CN104916323A CN201410351459.6A CN201410351459A CN104916323A CN 104916323 A CN104916323 A CN 104916323A CN 201410351459 A CN201410351459 A CN 201410351459A CN 104916323 A CN104916323 A CN 104916323A
- Authority
- CN
- China
- Prior art keywords
- program verification
- storage unit
- programming
- memory cell
- verification level
- 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
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
-
- 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/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
Landscapes
- Read Only Memory (AREA)
Abstract
本发明公开了一种编程多个存储单元及存储器的方法及该存储器。此方法包括选择当前存储单元,并在第一编程验证电平执行预编程验证操作;此方法包括针对当前存储单元执行编程及编程验证操作,包括施加一串行编程脉冲,并执行编程验证步骤;此串行编程脉冲包括具有起始大小的起始脉冲,编程验证操作使用第二编程验证电平,其可以高于第一编程验证电平;此方法亦包括在当前存储单元在第二编程验证电平通过验证的情况下,决定下一存储单元的起始大小,以作为编程脉冲的大小的函数。
Description
技术领域
本发明关于存储器装置,尤其是一种编程多个存储单元及存储器的方法及该存储器。
背景技术
闪存是非易失性存储器技术的一个类别。一种类型的闪存采用浮栅存储单元(floating gate memory cells)。另一类型的闪存存储单元可被称为电荷撷取存储单元(charge trapping memory cell),其使用介电电荷撷取层以取代浮栅。
此些类型的快闪存储单元由场效晶体管(field effect transistor,FET)结构所组成。FET结构具有由通道所分隔的源极和漏极,以及与此通道分隔的栅极。栅极是由一具有隧穿介电层、电荷储存层(浮栅或介电层)以及阻隔介电层的电荷储存层而与通道分隔。依据称之为SONOS装置的早期电荷撷取存储器设计,源极、漏极以及通道是形成于硅基板(S)中,隧穿介电层由氧化硅(O)所形成,电荷储存层由氮化硅(N)所形成,阻隔介电层由氧化硅(O)所形成,而栅极包含多晶硅(S)。通过引发足够大的源极-漏极电流(例如,通过施加电压至栅极),以移动高能电子穿过隧穿介电层而被捕捉(trapped)并储存于电荷储存层当中。
通过控制被捕捉在电荷储存结构之中的电荷量,数据被存入闪存装置的存储单元当中。所储存的电荷量设定了闪存装置中存储单元的阈电压,藉此让数据可被读取。通过施加电压脉冲至快闪存储单元以产生欲储存至快闪存储单元的电荷储存结构的电荷,数据可被编程至快闪记忆当中。一种用以编程快闪存储单元的方法被描述于Suh等人所发表的「A3.3V32MbNAND Flash Memory with Incremental Step Pulse Programming Scheme」,其收录于1995年IEEE国际固态电路研讨会文章第128至130页。依据Suh所述,为将一目标存储单元编程至一表现特定数据值的阀值范围,需执行一串的编程/验证步骤。其中,此串步骤中的每一编程脉冲是使存储单元的阈电压产生渐增(incremental)的变化,且每一编程脉冲所增加的大小是相关于先前的脉冲。在ISPP中的每一脉冲之间,编程验证电位被施加至存储单元的字线并感测数据,以决定存储单元阈电压是否超出编程验证电平。编程验证电平被设定在合适于目标数据值的范围的低电平端。通过在阀值中引起增量的变化,可达成高过编程验证电平的较紧密的阀值分布。
ISPP及其它渐增的脉冲编程方案可被应用于页编程操作,当中,一页里的存储单元是平行地被编程。由于页中的存储单元对编程脉冲可能会有不同的响应,并可能具有不同的起始阈电压,故部分的存储单元在少数脉冲内即达到目标阈电平,而部份存储单元则需要较多的脉冲。针对页编程,其过程会持续到页中的所有存储单元皆达到其目标,故在编程过程中,系统是被设计来执行相对多数的步骤。因此,渐增的脉冲编程会花费相对长的时间。在对一列(row)中大量的页进行编程的操作中,像是在用以储存大量数据组或计算机程序的一次性编程存储器装置(one-time programmemory device)中,对页进行编程的时间将多上好几倍。
因此,针对具页模式编程的闪存,有需要提供一种减少编程时间的方法。
发明内容
一种编程多个存储单元的方法。此方法包括选择当前存储单元,并在第一编程验证电平执行预编程验证操作。此方法包括针对当前存储单元执行编程及编程验证操作,包括施加一串行编程脉冲,并执行编程验证步骤。此串行编程脉冲包括具有起始大小的起始脉冲,编程验证操作使用第二编程验证电平,其可以高于第一编程验证电平。此方法亦包括在当前存储单元在第二编程验证电平通过验证的情况下,决定下一存储单元的起始大小,以作为编程脉冲的大小的函数。
为了对本发明的上述及其他方面有更佳的了解,下文特举较佳实施例,并配合所附图式,作详细说明如下:
附图说明
图1为存储器的简化方块图。
图2为用以编程存储器的方法流程图的一例。
图3为用以编程存储器的方法的另一实施例流程图。
图4A为多阶段编程操作的第一阶段之后,被选页中目标存储单元的阈电压分布的一例。
图4B为目标存储单元的阈电压分布的一例,目标阈电平在多阶段编程操作的第二阶段中接收编程脉冲。
图4C为第二阶段操作的编程完成后,图4A所示的目标存储单元的阈电压分布的一例。
图5A绘示使用于图3所述的编程多个页的存储器的方法的字线电压以及位线电压的一例。
图5B绘示图5A所示的字线电压的波形的一例。
图6绘示用以编程存储器装置的存储单元页的编程脉冲的位线电压的一例。
【符号说明】
160:阵列
161:地址译码器
162、164、173、185:线路
163:页缓冲器
165:总线
168:偏压管理供电电压区块
169:控制器
174:区块
175:存储器
180:芯片编程设备
190:反融丝
191:缓存器
210、220、230、240、302、304、306、308、310、312、314、316、318、320、322:步骤
401、402:存储单元分布
420:阴影区域
430:虚线分布曲线
601:位线电压值
602:量值
603:初始位线电压值
PV1、PV2、PV2+dPV:电平
PPV:预编程验证步骤
PGM:编程步骤
PV:编程验证步骤
P、Q:区域
具体实施方式
本发明实施例的详细叙述是参照图式进行说明。
图1为例示的存储器175的简化方块图。存储器175包括存储单元阵列160。阵列160可包括NOR快闪存储单元、NAND快闪存储单元或其它合适的电荷储存存储单元。阵列160可包括可多阶段编程的存储单元。
地址译码器161经由线路162耦接至阵列160。地址是被提供到总线(bus)165以送至地址译码器161。地址译码器161可具有字线译码器、位线译码器以及其它可对所提供的地址进行译码并选择阵列160中对应存储单元的合适译码器。
阵列160中的位线经由线路164耦接至页缓冲器163,页缓冲器163经由线路173转而耦接至其它周边电路174。
周边电路所包括的电路可由不属于阵列160的逻辑电路或模拟电路所形成,像是地址译码器161、控制器169、偏压管理供电电压区块168等等。在本例子中,标记为其它周边电路的区块174可包括输入-输出(I/O)电路、高速缓存、错误码更正(error-code-correction,ECC)电路以及其它存储器175上的电路元件,像是通用处理器(general purpose processor)或特殊用途的应用电路,或是提供阵列160所支持的系统上芯片(system-on-a-chip)函数的模块的组合。数据经由线路173被提供至I/O端口或存储器175内部或外部的其它数据终端。传输至阵列160或来自阵列160的数据可被储存(cached)在高速缓存当中。ECC电路可对储存的数据执行ECC函数(例如同位检查)以确保进出阵列160的数据的完整性。
控制器169(例如以状态机来实现)提供讯号以控制偏压管理供电电压(bias arrangement supply voltage)的应用,进而完成此处所述的各种操作;其中偏压管理供电电压可透过电压供应(voltage supply)来产生或提供,或是提供于区块168。此些操作包括擦除操作、读取操作、以及页编程与编程验证操作。控制器耦接至地址译码器161、页缓冲器163以及其它周边电路174。控制器可采用本技术领域所已知的特殊用途逻辑电路来实现。在其它实施例中,控制器包括通用处理器,其可实现在相同的存储器175上,并执行计算机程序以控制装置的操作。又一实施例中,控制器可采用特殊用途逻辑电路与通用处理器的组合来实现。
页缓冲器163耦接至阵列160的位线,且针对每一连接的位线,可包括一或多个储存单元(例如闩锁器)。控制器169可使地址译码器161选择并经由各自连接的位线将阵列160中的特定存储单元耦接至页缓冲器163,并使页缓冲器163储存被写入或读取自特定存储单元的数据。阵列160中一页(page)的存储单元包括可经由页缓冲器163并行存取的存储单元。阵列160的页宽度是进出阵列160(经由个别连接的位线)的位数,其可平行地存入页缓冲器163。为提供高数据率,阵列160的大量位线(例如数百条)可被设置在阵列160的顶部,以将一页的被选存储单元耦接至页缓冲器163。
针对制造像是一次性编程(one-time-program,OTP)存储器装置般的存储器装置,图1所绘示的芯片编程设备180是被用来同步测试并编程大量的存储器装置。如图1所示,芯片编程设备180可经由线路185耦接至存储器175。通过提供存储器175一具有指示欲被编程的存储单元的地址的编程指令,芯片编程设备180可将数据编程至存储器175当中。响应于编程指令,控制器169基于所提供的地址以选择(经由地址译码器161)存储单元,并使偏压管理供电电压区块168施加编程脉冲(电压脉冲)至被选存储单元以使其阈电压提升至目标电平,以执行编程操作。在编程操作的过程中,存储器175为忙碌状态且不可被芯片编程设备180所使用。
在一些实施例中,被选择编程的存储单元的阈电压会在多阶段中提升至目标电平。也就是说,被选存储单元是在多阶段中被编程。被选存储单元的阈电压是提升至连续增加的电压电平,此些电压电平在初始阶段低于目标电平,并在最终阶段提升至目标电平。举例来说,在目标电平为7伏特阈电压的三阶段操作中,其第一阶段,编程脉冲是被施加至被选存储单元以先提升它们的阈电压至6伏特。在三阶段操作中的第二阶段,编程脉冲被施加至被选存储单元以提升它们的阈电压至6.5伏特。在三阶段操作中的第三阶段,编程脉冲被施加至被选存储单元以提升它们的阈电压至7伏特。多阶段编程操作可减缓多位氮基础存储单元(multiple-bitnitride-based memory cell)的位间阈电压的干扰。
在两个具有相同设计且由相同工艺所制造的存储器装置之间,由于制造上的差异,两存储器装置各自针对编程存储单元的阈电压的目标电平可能是不同的。包含于存储器装置当中的编程存储单元,其阈电压的目标电平可在制造此存储器装置的过程中即加以决定(例如在晶圆挑选(wafer sort)的过程中),并且储存于存储器装置当中。举例来说,存储器175可将编程存储单元的阈电压的目标电平储存在包含于存储器175中的反融丝(antifuses)190。控制器169响应于来自芯片编程设备180的编程指令,针对所储存的特定于存储器175的目标电平而存取反融丝190,并基于编程指令选择存储单元,使偏压管理供电电压区块168采用一阶段或多阶段编程操作来施加编程脉冲,以将所选存储单元的阈电压升高至特定目标电平之上。
图2为用以编程存储器(如图1所绘示的存储器175)的方法流程图的一例。图2的例示方法可以由控制器169、偏压管理供电电压区块168以及存储器175的其它元件来实现。图2所绘示的用以编程存储器的方法可应用于单阶段编程操作或多阶段编程操作中的一特定阶段。此方法可应用于像是页模式(即一次编程一页)或存储单元模式(即一次编程一存储单元)的不同架构上。此方法亦可用来一次编程一个字节(byte)或一次编程一个字组(word)。
针对页模式,控制器169首先选择一目前页并读取欲编程至此页的数据。接着,控制器针对目前页的目标存储单元于第一编程验证电平执行预编程验证操作,此目前页需透过编程以将数据设定至此页当中。针对阈电压接近或高过第一编程验证电平的目标存储单元,控制器169例如透过清除页缓冲器中的对应位,以遮蔽通过存储单元(passing cell)免于接收编程脉冲。类似地,针对存储单元模式,控制器169首先选择需要编程的目前存储单元(步骤210)。接着,控制器169针对目前存储单元于第一编程验证电平执行预编程验证操作(步骤220)。若目前存储单元的阈电压接近或高过第一编程验证电平,控制器169透过清除页缓冲器中的对应位,以遮蔽目前存储单元免于接收编程脉冲。
针对页模式,控制器169接着针对目前页中的未通过预编程验证操作的目标存储单元执行编程及编程验证操作。在编程及编程验证操作中,控制器169将一序列的编程脉冲(例如由偏压管理供电电压区块168提供)施加至存储单元,并执行编程验证步骤。此序列包含具有起始大小(magnitude)的起始脉冲,其后所跟随的脉冲具有增加的大小、增加的期间(duration)或其它可使目标存储单元的阈电压产生渐增偏移的特征。此序列在编程脉冲之间可包括编程验证步骤。控制器169执行编程及编程验证操作直到目前页中的所有存储单元皆通过编程验证操作,否则将发生错误情况。如同预编程验证操作,控制器169例如透过清除页缓冲器中的对应位,以遮蔽通过存储单元在后续的编程及编程验证操作步骤中免于接收编程脉冲。针对存储单元模式,若目前存储单元未通过预编程验证操作,控制器169将针对目前存储单元执行编程及编程验证操作(步骤230)。类似于页模式,控制器169将一序列的编程脉冲施加至目前存储单元,并在编程脉冲之间执行编程验证步骤。此序列包含具有起始大小的起始脉冲,所跟随的脉冲具有增加的大小(或期间)。控制器169执行编程及编程验证操作直到目前存储单元通过编程验证操作。接着,控制器169透过清除页缓冲器中的对应位,以遮蔽通过存储单元免于接收额外的脉冲。
在编程及编程验证操作的过程中,控制器169针对编程验证步骤使用第二编程验证电平。在此例子中,第二编程验证电平高于第一编程验证电平一个量值(如两百毫伏特至三百毫伏特),以补偿决定存储器175的存储单元的阈电压的不确定性。决定闪存装置的存储单元阈电压的不确定性可能产生自闪存的工艺,并可能随着存储单元几何上的缩减而增加。使用较高电平的第二编程验证电平可减少因决定存储单元阈电压的不确定性所带来不希望得到的效果,像是将阈电压低于目标值的存储单元误判为通过存储单元。在其它实施例中,第二编程验证电平可以不高于第一编程验证电平。
针对页模式,控制器169在一或多个存储单元在第二编程验证电平先通过验证的编程验证步骤的情况下,决定下一页的编程脉冲的起始大小,以作为编程脉冲大小的函数。类似地,针对存储单元模式,控制器169在目前存储单元在第二编程验证电平通过验证的编程验证步骤的情况下,决定下一存储单元的编程脉冲的起始大小,以作为编程脉冲的大小的函数(步骤240)。在步骤240之后,图2绘示的方法将针对下一存储单元(或下一页)自步骤210起重复地执行。举例来说,控制器169选择下一存储单元(步骤210),并对下一存储单元于第一编程验证电平执行预编程验证操作(步骤220)。在步骤230,控制器169基于可使目前存储单元通过(passing)的编程脉冲大小,以具有起始大小的起始脉冲对下一存储单元执行编程及编程验证操作。基于可使目前存储单元通过(或者可先使目前页中的存储单元通过)的编程脉冲大小以决定使用的起始大小,以代替从最小值开始,可减少对下一存储单元(或下一页)的编程脉冲数量,故可改善存储器175的整体编程速度。
图3是在页模式下编程一存储器(例如存储器175)的方法的另一实施例流程图。图2所绘示的用以编程存储器的方法可应用于单阶段编程操作或多阶段编程操作中的一特定阶段。为清楚说明,图3的流程图是描述针对三阶段编程操作中的第二阶段所应用的预编程验证操作和编程及编程验证操作。三阶段编程操作中的第一阶段是将目标存储单元的阈电压提升至第一电平PV1。三阶段编程操作中的第二阶段接着将目标存储单元的阈电压提升至第二电平PV2。三阶段编程操作中的第三以及最终阶段是将目标存储单元的阈电压提升至第三电平PV3。如前所述,PV1小于PV2,且皆小于PV3。
图3所示的方法可以由控制器169、偏压管理供电电压区块168以及图1所绘示的存储器175的其它元件来实现。如稍早所述,特定于存储器175的目标值PV3是储存于反融丝190当中。举例来说,响应于来自芯片编程设备180的编程指令,控制器169将针对目标值PV3而存取反融丝190,并基于由控制器169或由控制器169所执行的软件程序所实现的逻辑,执行三阶段编程操作。三阶段编程操作的第一阶段的第一电平PV1以及第二阶段的第二电平PV2是由控制器169基于储存于反融丝190的目标电平PV3所决定。举例来说,若PV3为7伏特,则PV2可以是PV3-0.5伏特=6.5伏特,而PV1可以是PV3-1伏特=6伏特。
在图3的流程图的起始,控制器169选择阵列160的一页存储单元以进行编程。所选的存储单元页对应于阵列160的一特定字线。
控制器169针对将被编程至所选择的页的数据(例如基于来自芯片编程设备180的编程指令)维持一目标数据阵列(例如,控制器169的缓存器或存储器175中的其它储存装置)。此处,为简化说明,尚未被编程的存储单元具有逻辑值「0」。已被编程的存储单元具有逻辑值「1」。具有逻辑值「1」的存储单元是使电荷储存(编程)于其自身的电荷储存结构当中。相较于使较少的正或负电荷储存于其自身电荷储存结构而具有逻辑值「0」的低阈电压存储单元,电荷将产生一提升的阈电压(例如接近或高过目标电平PV3)。目标数据阵列中的目标数据值「0」是指示一不对对应存储单元进行编程的禁止状态。目标数据阵列中的目标数据值「1」是指示一需要对对应存储单元进行编程的编程状态(针对编程脉冲的目标存储单元);在编程完成后,目标存储单元的逻辑值由「0」改变为「1」。举例来说,对于被选页的8个存储单元的目标数据阵列可以是「01110011」,其指示被选页的第二、三、四、七、八个存储单元需要进行编程。
控制器169将目标数据阵列的复本(copy)存在页缓冲器163当中,并将连接至被选页的存储单元的位线耦接至页缓冲器163。页缓冲器163具有像是通过栅(pass gate)的开关。每一开关是基于页缓冲器163中的对应缓冲位,将连接至被选页的特定存储单元的位线耦接至偏压管理供电电压区块168。举例来说,开关将连接至存有缓冲位「1」(编程状态)的存储单元的位线耦接至偏压管理供电电压区块168,使存储单元可接收偏压管理供电电压区块168所提供的编程脉冲。开关不会将连接至存有缓冲位「0」(禁止状态)的存储单元的位线耦接至偏压管理供电电压区块168,以使此些存储单元不会接收到编程脉冲。
针对预编程验证操作(例如图2的步骤220),控制器169通过使偏压管理供电电压区块168施加第一编程验证电压PV2(针对第二阶段处理的目标电平)至特定的字线,以验证被选择页的存储单元;并基于感测对应的位线,决定被选页中存储单元各别的阈电压是否超出第一编程验证电压PV2(步骤302)。举例来说,控制器169可使偏压管理供电电压区块168施加6.5伏特的第一编程验证电压(PV2)至特定的字线。同时,控制器169可使偏压管理供电电压区块168在验证操作过程中施加1伏特至对应的位线。作为目标存储单元(例如具有目标数据值「1」)且具有超过预编程验证电压PV2的阈电压的存储单元是一通过存储单元(passing cell),其不需进一步编程且将在之后的验证中被遮蔽。
图4A为多阶段编程操作的第一阶段之后,被选页中目标存储单元的阈电压分布的一例,其包括在低阈电压状态的存储单元分布401,以及高于多阶段操作的第一阶段中所使用的第一验证电平PV1的存储单元分布402。如预编程验证操作所决定,在区域Q中的存储单元为通过存储单元(具有超过预编程验证电压PV2的阈电压),其会被遮蔽于任何编程脉冲以及之后第二阶段的验证操作。在区域P中的存储单元(具有低于预编程验证电压PV2的阈电压)将接收编程脉冲并在之后的验证中涉及第一通过位检查,直到它们被移至图4A所示的虚线PV2的右边。也就是说,目标为将被选页的目标存储单元的阈电压提升至比第一编程验证电压PV2(第二阶段操作的目标电平)还要高。
控制器169可通过更新储存于页缓冲器163的目标数据阵列复本,以屏蔽初始通过的存储单元。举例来说,在上述目标数据阵列为「01110011」的例子中,若第三个存储单元已通过预编程验证(在第一编程验证电平PV2),控制器169可通过将第三个存储单元所对应的页缓冲位由「1」(编程状态)改成「0」(禁止状态),以将储存在页缓冲器163中的目标数据阵列复本更新成「01010011」。在预编程验证的过程中,此些屏蔽的位在之后的验证中将不会涉及第一通过位检查。
针对编程及编程验证操作(例如图2的步骤230),控制器169使偏压管理供电电压区块168施加一串行的编程脉冲至被选页。串行包括起始脉冲以及随后的脉冲,起始脉冲具有起始大小,而随后脉冲的大小为渐增。举例来说,起始大小可以为3伏特,而之后的每一个脉冲是渐增100毫伏特。同时,控制器169可使偏压管理供电电压区块168在编程操作期间施加10伏特至特定的字线。控制器169亦可在编程脉冲之间在第二编程验证电平执行编程验证操作。
尤其,控制器169首先读取用于编程脉冲的位线电压的初始值(步骤304)。初始位线电压值(也就是用于编程脉冲的起始值)可以是储存于缓存器191中的预定值。初始位线电压值可基于编程脉冲大小而决定,此编程脉冲大小可以是使阵列160的先前编程页中存储单元首先通过的编程脉冲大小。更多细节将于以下详述。
在步骤306,控制器169接着使偏压管理供电电压区块168施加具有起始大小(步骤304中的初始位线电压值)的编程脉冲至被选页中的目标存储单元。在上述的更新后复本为目标数据阵列「01010011」的例子中,偏压管理供电电压区块168施加编程脉冲至被选页中耦接至第二、四、七、八个存储单元的位线。需注意的是,在目标数据阵列的更新复本中,第三个存储单元是被遮蔽而不会接收编程脉冲,且在之后的验证中是不会涉及第一通过位检查。偏压管理供电电压区块168可施加编程脉冲至页缓冲器163,而前述的页缓冲器163开关是基于储存于页缓冲器163中的更新后页缓冲器位,选择性地将编程脉冲施加至连接至特定存储单元的位线。在其它实施例中,控制器169使偏压管理供电电压区块168施加具有起始大小的编程脉冲至被选择的字线至被选页的目标存储单元。
控制器169接着通过使偏压管理供电电压区块168施加一第二编程验证电压PV2+dPV至特定字线(对应至被选页),以验证被选页中是否有任何目标存储单元(例如,在上述例子中8位目标数据阵列的第二、四、七、八个存储单元)通过编程(步骤308),并基于在对应的字线进行感测,以决定是否有任何的目标存储单元的阈电压超出第二编程验证电压PV2+dPV(步骤310)。用以验证首先通过存储单元的第二编程验证电平是高出第一编程验证电平(PV2)一个dPV的量。此dPV的量是被设定来补偿决定存储器的存储单元阈电压的不确定性。举例来说,决定存储单元阈电压的不确定性可估计为+/-300毫伏特。在此例子中,dPV可以是350毫伏特。如稍早所述,为决定首先通过的存储单元,较高的第二编程验证电压PV2+dPV是被施加至特定的字线,以缓解有关因存储单元阈电压的决定不确定性而产生的不希望得到的效果(例如,错误地验证存储单元)。
若被选页中没有目标存储单元通过第二编程验证电平PV2+dPV,偏压管理供电电压区块168将渐增(例如100毫伏特)位线电压值(步骤312),并重复地执行步骤312、306、308、310的循环,直到至少一目标存储单元通过第二编程验证电平PV2+dPV。在其它实施例中,控制器169在所述的步骤312、306、308、310的循环中使偏压管理供电电压区块168施加编程脉冲至被选页的目标存储单元的被选字线。
如同图2的步骤240所述,在被选页的至少一目标存储单元通过第二编程验证电平PV2+dPV的例子中,也就是说,若所选页中有一、二或多个目标存储单元通过第二编程验证电平PV2+dPV,控制器169将纪录使用于第一编程周期(如果需要的话,或是其它较晚的编程周期,像是第二编程周期)的编程脉冲的大小或位线电压值,其中在第一编程周期中,有一或多个存储单元通过第二编程验证电平PV2+dPV(步骤314)。所记录的位线电压值用以决定将被编程的下一页的编程脉冲的起始大小,更多细节将于后述。同时,控制器169会将所记录的位线电压以及用于下一页的编程脉冲的起始大小储存于缓存器191当中。此外,控制器169会将一或多个通过存储单元遮蔽于进一步的编程脉冲。如稍早所述,控制器169通过更新储存于页缓冲器163的目标数据阵列复本,以屏蔽通过存储单元。图4B是接收编程脉冲的目标存储单元的阈电压分布的一例。需注意的是,此些目标存储单元是图4A所示的P区域中未被预编程验证操作(步骤302)所遮蔽的目标存储单元。此图所绘示的阈电压是渐增地移动,使得在一或多个编程脉冲之后,分布的下端保持在低于PV2但高于PV1之处,且分布的上端移动至超过PV2。在所绘示的分布中,分布的上端是移动至超过PV2+dPV。如图4B所示,具有高于第二编程验证电平PV2+dPV的阈电压的目标存储单元是遮蔽于进一步的编程脉冲(阴影区域420)。
在第一编程周期(或其它被选择的周期)之后,其中在第一编程周期有一存储单元通过,偏压管理供电电压区块168将渐增(例如100毫伏特)位线电压值(步骤316),并接着施加具有渐增位线电压值的编程脉冲至被选页中的目标存储单元(基于更新后的目标数据阵列)(步骤318)。控制器169接着通过使偏压管理供电电压区块168施加具第三编程验证电平的电压至特定字线(对应于被选页),以验证是否被选页中的所有目标存储单元通过编程(步骤320),并基于在对应位线的感测,决定被选页中的所有目标存储单元在第三编程验证电平PV2是否为通过(步骤322)。若被选页中至少一目标存储单元在第三编程验证电平PV2未通过,控制器169将通过更新目标数据阵列的复本,以遮蔽任何已在第三编程验证电平PV2通过的目标存储单元,并重复步骤316、318、320、322的循环,直到被选页中的所有存储单元皆通过编程,如图4C所示。在其它实施例中,控制器169使偏压管理供电电压区块168施加如步骤316、318、320、322的循环的编程脉冲至被选页中目标存储单元的被选字线。图4C是在第二阶段操作完成后,图4A所绘示的目标存储单元的阈电压分布的一例。如图4C所示,被选页中目标存储单元的阈电压是如所希望般地高于第三编程验证电平PV2。目标存储单元的阈电压分布可因施加于编程验证操作中的高字线电压电平而被加宽(如虚线分布曲线430所指)。为减少因使用较高的第二编程验证电平而造成目标存储单元的阈电压分布被加宽的效应,字线电压的编程验证电平在第一通过位出现后,是退回至PV2以进行编程验证操作。也就是低于第二编程验证电平PV2+dPV的「第三编程验证电平」,其典型上是相同于第一编程验证电平。
控制器169可决定错误情况是否发生并中止(abort)编程及编程验证操作。举例来说,若大于一预定数量(例如20)的编程脉冲已经被施加于编程及编程验证操作,控制器169将决定错误情况是否发生并中止当前被选页的编程。
图5A绘示使用于图3所述的编程多个页的存储器的方法的字线电压以及位线电压。在如底下所讨论的图5A及图5B当中,「PPV」是图3所述的预编程验证步骤;「PGM」是图3所述的编程步骤;「PV」是图3所述的编程验证步骤。如图5A所示,针对图3的预编程验证步骤(步骤302),预编程验证电压PV2=6.5伏特是被施加至特定页的字线。针对预编程验证步骤,1伏特的偏压是被施加至特定页的对应位线。针对图3的编程步骤(步骤306及318),3伏特的初始编程脉冲是被施加至位线,而之后施加至位线的每一编程脉冲是渐增100毫伏特(3.1伏特、3.2伏特、3.3伏特等等),直到所有的存储单元皆通过(例如位线电压=5.1伏特)。在编程步骤的过程中,10伏特的偏压是被施加至字线。针对编程验证步骤,6.5伏特+300毫伏特=6.8伏特(PV2+dPV)的编程验证电压是被施加至字线(图3的步骤308),直到有存储单元首先通过。在有存储单元首先通过之后,6.5伏特(PV2)的编程验证电压是被施加至字线(图3的步骤320),直到所有的存储单元通过。1伏特的偏压在编程验证步骤的过程中是被施加至位线。
图5B绘示图5A所示的字线电压的波形的一例。如图5B所示,字线电压在预编程验证设定(PPV设定)阶段是上升至6.5伏特,并接着在预编程验证步骤中被施加至字线。在编程设定(PGM设定)阶段,编程字线电压随后被上升至10伏特,并接着在编程步骤中被施加至字线。在编程验证设定(PV设定)阶段,字线电压被下降再上升至6.8伏特,并接着在编程验证步骤中被施加至字线。字线电压随后在编程设定阶段被上升至10伏特,并接着在编程步骤中被施加至字线。之后,针对随后的编程验证步骤以及编程步骤,字线电压是同样地进行下降及上升。
对于欲被编程的下一页,图3所示的方法是重复地被执行。尤其,针对被选页的存储单元通过的编程周期,被记录的位线电压值(步骤314)是用来产生针对下一页的编程脉冲的起始大小或初始位线电压值(如步骤304所述)。针对下一页的编程脉冲的起始大小可被设定成低于被记录的位线电压值一个减低量,以避免在下一页「过度编程(over programming)」(例如,高于初始编程脉冲所足够的位线电压电平)。
如稍早所述,针对下一页的编程脉冲的起始大小是基于针对接收编程脉冲的目标存储单元(图4A以及图4B所示的位于P区域中的存储单元)所被记录的位线电压而决定。也就是说,针对下一页的编程脉冲的起始大小是基于被记录的位线电压而决定,此被记录的位线电压是可有效地提升先前编程页的目标存储单元的阈电压。
图6绘示图3所述用以编程存储器装置的存储单元页的编程脉冲的位线电压的一例。针对存储器装置的每一页,连续增加的编程脉冲(如图所示的以步阶增加的位线电压)是被施加至耦接于目标存储单元的位线。如图6所示,针对每一页,位线电压被施加而首先通过的位是被决定(从图3的步骤304到步骤306、308、310、312的循环)。位线电压继续被施加直到针对页的所有的位皆通过(图3的步骤316、318、320、322的循环)。如图6所示,当目前页有存储单元首先通过,位线电压值601是降低一个量值602(例如300毫伏特),以决定其下一页的初始位线电压值603(编程脉冲的起始大小)。量值602可以从300毫伏特到1200毫伏特。由于目前页的编程脉冲的初始位线电压值603(起始大小)是基于其先前页中首先通过的存储单元的位线电压601而非起始于最小值(例如2500毫伏特),故可减少所需要达到使存储单元首先通过的编程脉冲数量,进而增加对页进行编程的速度。
虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视随附的权利要求范围所界定的为准。
Claims (10)
1.一种编程多个存储单元的方法,包括:
选择一当前存储单元;
针对该当前存储单元,在一第一编程验证电平执行一预编程验证操作;
针对该当前存储单元执行一编程及编程验证操作,包括施加一串行编程脉冲,该串行编程脉冲包括具有一起始大小的一起始脉冲,该编程及编程验证操作包括使用一第二编程验证电平执行编程验证步骤;以及
在该当前存储单元在该第二编程验证电平通过验证的情况下,决定一下一存储单元的该起始大小,以作为该编程脉冲的一大小的一函数。
2.根据权利要求1所述的方法,其中该第二编程验证电平高于该第一编程验证电平。
3.根据权利要求1所述的方法,更包括:
在所述当前存储单元在该第二编程验证电平通过验证的情况之后,针对该当前存储单元使用一第三编程验证电平,其中该第三编程验证电平低于该第二编程验证电平,且该第三编程验证电平等于该第一编程验证电平;以及
重复执行所述选择一当前存储单元的步骤、所述执行一预编程验证操作的步骤、所述针对该当前存储单元执行一编程及编程验证操作、以及所述决定这些存储单元的一下一存储单元的该起始大小。
4.根据权利要求1所述的方法,其中该当前存储单元以及该下一存储单元分别在不同页,且针对该下一存储单元所决定的该起始大小小于在所述当前存储单元在该第二编程验证电平通过验证的情况中,针对该当前存储单元的该编程脉冲的大小;
其中该串行中的这些编程脉冲包括大小为渐增的电压,这些大小为渐增的电压被施加在耦接于该当前存储单元的一位线上。
5.根据权利要求1所述的方法,其中所述的当前存储单元在该第二编程验证电平通过验证的情况是在该编程验证步骤的序列中的第一情况,在该编程验证步骤中,该当前存储单元在该第二编程验证电平通过验证。
6.一存储器,包括:
多个存储单元;以及
逻辑电路用以:
选择一当前存储单元;
针对该当前存储单元,在一第一编程验证电平执行一预编程验证操作;
针对该当前存储单元执行一编程及编程验证操作,包括施加一串行编程脉冲,该串行编程脉冲包括具有一起始大小的一起始脉冲,该编程及编程验证操作包括使用一第二编程验证电平执行编程验证步骤;以及
在该当前存储单元在该第二编程验证电平通过验证的情况下,决定一下一存储单元的该起始大小,以作为该编程脉冲的一大小的一函数。
7.根据权利要求6所述的存储器,其中该逻辑电路用以在所述当前存储单元在该第二编程验证电平通过验证的情况之后,针对该当前存储单元使用一第三编程验证电平,其中该第三编程验证电平低于该第二编程验证电平,且该当前存储单元以及该下一存储单元分别在不同页;
其中该逻辑电路用以重复执行所述选择一当前存储单元、所述执行一预编程验证操作、所述针对该当前存储单元执行一编程及编程验证操作、以及所述决定这些存储单元的一下一存储单元的该起始大小;其中针对该下一存储单元所决定的该起始大小小于在所述当前存储单元在该第二编程验证电平通过验证的情况中,针对该当前存储单元的该编程脉冲的大小。
8.根据权利要求6所述的存储器,其中该串行中的这些编程脉冲包括大小为渐增的电压,这些大小为渐增的电压被施加在耦接于该当前存储单元的一位线上;
其中所述的当前存储单元在该第二编程验证电平通过验证的情况是在该编程验证步骤的序列中的第一情况,在该编程验证步骤中,该当前存储单元在该第二编程验证电平通过验证。
9.一种编程包含多个存储单元的一存储器的方法,该方法包括:
针对这些存储单元的特定存储单元:
在一第一编程验证电平执行一预编程验证操作;
执行一编程及编程验证操作,包括:
施加一串行编程脉冲,该串行编程脉冲包括具有一起始大小的一起始脉冲,
在一第二编程验证电平执行编程验证步骤,直到该特定存储单元在该第二编程验证电平通过验证的情况出现;
在所述该特定存储单元在该第二编程验证电平通过验证的情况之后,在低于该第二编程验证电平的一第三编程验证电平执行该编程验证步骤;以及
决定一下一存储单元的该起始大小,以作为所述该特定存储单元在该第二编程验证电平通过验证的情况中该编程脉冲的一大小的一函数。
10.根据权利要求9所述的方法,其中该第二编程验证电平高于该第一编程验证电平,且针对该下一存储单元所决定的该起始大小小于在所述该特定存储单元在该第二编程验证电平通过验证的情况中该编程脉冲的大小;
其中所述该特定存储单元在该第二编程验证电平通过验证的情况是在该编程验证步骤的序列中的第一情况,在该编程验证步骤中,该特定存储单元在该第二编程验证电平通过验证。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/210,063 US9171628B2 (en) | 2014-03-13 | 2014-03-13 | Incremental step pulse programming (ISPP) scheme capable of determining a next starting pulse based on a current program-verify pulse for improving programming speed |
US14/210,063 | 2014-03-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104916323A true CN104916323A (zh) | 2015-09-16 |
CN104916323B CN104916323B (zh) | 2019-03-15 |
Family
ID=54069557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410351459.6A Active CN104916323B (zh) | 2014-03-13 | 2014-07-23 | 编程多个存储单元及存储器的方法及该存储器 |
Country Status (3)
Country | Link |
---|---|
US (2) | US9171628B2 (zh) |
CN (1) | CN104916323B (zh) |
TW (1) | TWI528373B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111863100A (zh) * | 2019-04-29 | 2020-10-30 | 北京兆易创新科技股份有限公司 | 一种非易失性存储器的编程方法和装置 |
WO2020232658A1 (en) * | 2019-05-22 | 2020-11-26 | Yangtze Memory Technologies Co., Ltd. | Method of programming multilevel cell nand flash memory device and mlc nand flash memory device |
CN112967746A (zh) * | 2020-08-13 | 2021-06-15 | 长江存储科技有限责任公司 | 用于对存储器系统进行编程的方法、装置及存储器系统 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9171628B2 (en) | 2014-03-13 | 2015-10-27 | Macronix International Co., Ltd. | Incremental step pulse programming (ISPP) scheme capable of determining a next starting pulse based on a current program-verify pulse for improving programming speed |
CN106158027B (zh) * | 2015-04-09 | 2020-02-07 | 硅存储技术公司 | 用于对分离栅式非易失性存储器单元编程的系统和方法 |
US9722774B2 (en) * | 2015-04-29 | 2017-08-01 | Samsung Electronics Co., Ltd. | Non-leaky helper data: extracting unique cryptographic key from noisy F-PUF fingerprint |
US9798481B1 (en) * | 2016-06-15 | 2017-10-24 | Winbond Electronics Corp. | Memory system includes a memory controller coupled to a non-volatile memory array configured to provide special write operation to write data in the non-volatile memory array before a board mount operation is applied and provde a regular write operation after a board mount operation is applied |
US10283511B2 (en) * | 2016-10-12 | 2019-05-07 | Ememory Technology Inc. | Non-volatile memory |
JP2019057345A (ja) * | 2017-09-20 | 2019-04-11 | 東芝メモリ株式会社 | 半導体記憶装置 |
US11636897B2 (en) | 2021-03-03 | 2023-04-25 | Sandisk Technologies Llc | Peak current and program time optimization through loop dependent voltage ramp target and timing control |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101335048A (zh) * | 2007-06-29 | 2008-12-31 | 旺宏电子股份有限公司 | 多阶存储单元非易失性存储器的双重编程方法 |
CN101354919A (zh) * | 2007-07-27 | 2009-01-28 | 旺宏电子股份有限公司 | 多阶单元存储器的编程方法 |
US7688638B2 (en) * | 2007-12-07 | 2010-03-30 | Sandisk Corporation | Faster programming of multi-level non-volatile storage through reduced verify operations |
CN102203874A (zh) * | 2008-10-24 | 2011-09-28 | 桑迪士克股份有限公司 | 以高分辨率可变初始编程脉冲对非易失性存储器编程 |
CN102543192A (zh) * | 2010-12-30 | 2012-07-04 | 三星电子株式会社 | 非易失性存储器件的编程方法 |
US20130016558A1 (en) * | 2011-07-12 | 2013-01-17 | Samsung Electronics Co., Ltd. | Method of storing data in nonvolatile memory device and method of operating nonvolatile memory device |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5602789A (en) * | 1991-03-12 | 1997-02-11 | Kabushiki Kaisha Toshiba | Electrically erasable and programmable non-volatile and multi-level memory systemn with write-verify controller |
US6657891B1 (en) * | 2002-11-29 | 2003-12-02 | Kabushiki Kaisha Toshiba | Semiconductor memory device for storing multivalued data |
US8711616B2 (en) * | 2010-12-22 | 2014-04-29 | Micron Technology, Inc. | Single check memory devices and methods |
KR101278103B1 (ko) * | 2011-09-26 | 2013-06-24 | 에스케이하이닉스 주식회사 | 불휘발성 메모리 장치 및 그것의 프로그램 방법 |
KR102106866B1 (ko) * | 2013-01-29 | 2020-05-06 | 삼성전자주식회사 | 멀티레벨 불휘발성 메모리 장치 및 프로그램 방법 |
US9171628B2 (en) | 2014-03-13 | 2015-10-27 | Macronix International Co., Ltd. | Incremental step pulse programming (ISPP) scheme capable of determining a next starting pulse based on a current program-verify pulse for improving programming speed |
-
2014
- 2014-03-13 US US14/210,063 patent/US9171628B2/en active Active
- 2014-05-16 TW TW103117269A patent/TWI528373B/zh active
- 2014-07-23 CN CN201410351459.6A patent/CN104916323B/zh active Active
-
2015
- 2015-09-22 US US14/862,064 patent/US9679653B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101335048A (zh) * | 2007-06-29 | 2008-12-31 | 旺宏电子股份有限公司 | 多阶存储单元非易失性存储器的双重编程方法 |
CN101354919A (zh) * | 2007-07-27 | 2009-01-28 | 旺宏电子股份有限公司 | 多阶单元存储器的编程方法 |
US7688638B2 (en) * | 2007-12-07 | 2010-03-30 | Sandisk Corporation | Faster programming of multi-level non-volatile storage through reduced verify operations |
CN102203874A (zh) * | 2008-10-24 | 2011-09-28 | 桑迪士克股份有限公司 | 以高分辨率可变初始编程脉冲对非易失性存储器编程 |
CN102543192A (zh) * | 2010-12-30 | 2012-07-04 | 三星电子株式会社 | 非易失性存储器件的编程方法 |
US20130016558A1 (en) * | 2011-07-12 | 2013-01-17 | Samsung Electronics Co., Ltd. | Method of storing data in nonvolatile memory device and method of operating nonvolatile memory device |
Non-Patent Citations (2)
Title |
---|
KANG-DEOG SUH 等: "《A 3.3 V 32 Mb NAND Flash Memory with Incremental Step Pulse Programming Scheme》", 《IEEE JOURNAL OF SOLID-STATE CIRCUITS》 * |
TAE-SUNG JUNG 等: "《A 3.3V 128Mb Multi-Level NAND Flash Memory for Mass Storage Applications》", 《1996 IEEE INTERNATIONAL SOLID-STATE CIRCUITS CONFERENCE》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111863100A (zh) * | 2019-04-29 | 2020-10-30 | 北京兆易创新科技股份有限公司 | 一种非易失性存储器的编程方法和装置 |
WO2020232658A1 (en) * | 2019-05-22 | 2020-11-26 | Yangtze Memory Technologies Co., Ltd. | Method of programming multilevel cell nand flash memory device and mlc nand flash memory device |
US10937514B2 (en) | 2019-05-22 | 2021-03-02 | Yangtze Memory Technologies Co., Ltd. | Method of programming multilevel cell NAND flash memory device and MLC NAND flash memory device |
CN112530497A (zh) * | 2019-05-22 | 2021-03-19 | 长江存储科技有限责任公司 | 对多级单元nand闪存器件和mlc nand闪存器件进行编程的方法 |
CN112530497B (zh) * | 2019-05-22 | 2022-08-12 | 长江存储科技有限责任公司 | 对多级单元nand闪存器件和mlc nand闪存器件进行编程的方法 |
CN112967746A (zh) * | 2020-08-13 | 2021-06-15 | 长江存储科技有限责任公司 | 用于对存储器系统进行编程的方法、装置及存储器系统 |
CN112967746B (zh) * | 2020-08-13 | 2022-09-16 | 长江存储科技有限责任公司 | 用于对存储器系统进行编程的方法、装置及存储器系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104916323B (zh) | 2019-03-15 |
US9171628B2 (en) | 2015-10-27 |
TW201535398A (zh) | 2015-09-16 |
US20160012899A1 (en) | 2016-01-14 |
TWI528373B (zh) | 2016-04-01 |
US9679653B2 (en) | 2017-06-13 |
US20150262675A1 (en) | 2015-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104916323A (zh) | 编程多个存储单元及存储器的方法及该存储器 | |
KR101134691B1 (ko) | 다중-레벨 비트 플래시 메모리 소거 알고리즘 | |
KR20180001303A (ko) | 메모리 시스템 및 그 동작 방법 | |
US10311956B2 (en) | Semiconductor memory device and operating method thereof | |
US7639533B2 (en) | Multi-level memory cell programming methods | |
KR102565888B1 (ko) | 반도체 메모리 장치 및 그것의 동작 방법 | |
KR20190020880A (ko) | 메모리 장치 및 그 동작 방법 | |
US9384839B2 (en) | Write sequence providing write abort protection | |
KR20180054315A (ko) | 반도체 메모리 장치 및 그것의 동작 방법 | |
KR20180019345A (ko) | 반도체 메모리 장치 및 그것의 동작 방법 | |
KR20180028292A (ko) | 반도체 메모리 장치 및 그것의 동작 방법 | |
US20170025183A1 (en) | Semiconductor memory device and operating method thereof | |
KR20180062836A (ko) | 반도체 메모리 장치 및 그것의 동작 방법 | |
US20140143475A1 (en) | Fast Secure Erasure Schemes for Non-Volatile Memory | |
KR20180052814A (ko) | 반도체 메모리 장치 및 그것의 동작 방법 | |
US10026489B2 (en) | Semiconductor memory device and operating method thereof | |
US9672914B1 (en) | Semiconductor memory device and operating method thereof | |
KR20170052034A (ko) | 반도체 메모리 장치 및 그것의 동작 방법 | |
US9274881B2 (en) | Semiconductor memory device, memory system including the same, and operating method thereof | |
US9053011B2 (en) | Selective protection of lower page data during upper page write | |
US9696918B2 (en) | Protection and recovery from sudden power failure in non-volatile memory devices | |
KR20150063850A (ko) | 반도체 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 동작 방법 | |
KR20170052029A (ko) | 반도체 메모리 장치 및 그것의 동작 방법 | |
CN103971746A (zh) | 固态存储装置及其数据擦除方法 | |
US9136009B1 (en) | Method to improve accuracy of a low voltage state in flash memory cells |
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 |