一种操作多位存储单元的方法与流程

文档序号:12603626阅读:262来源:国知局
一种操作多位存储单元的方法与流程
本发明是有关于一种高密度的存储器装置,且特别是有关于一种具有叠层式存储器结构的存储器装置的操作方法。本申请案主张美国临时申请案第61/752,985号的优先权,其申请日为2013年1月16日,且其内容是完全于此并入作参考。

背景技术:
基于生产技术的缘故,集成电路的临界尺寸的缩小化已面临限制,设计者尝试找寻能达到较高储存容量以及以降低每位成本的作法。被采用的技术包含在存储单元内储存多个位,以及在单芯片上叠层多个存储单元的平面。与单一位存储单元相较,对多位存储单元进行编程操作时,会因为需要建立多个编程位阶而需花费较长的时间。再者,采用多位存储单元的技术时,一个编程周期(programcycle)相对需要较多的编程脉冲。连带的,被储存于并非被编程操作存储单元的数据,也容易受到较大的干扰。3D存储器架构的密度较高。但是,高密度可能衍生在进行编程时,容易影响相邻存储单元的问题。因此,无论是对2D或3D存储器,如何在编程具有多位的存储单元的同时,兼顾速度与效能的提升为一重要课题。

技术实现要素:
根据本发明的第一方面,提出一种操作一多位存储单元的方法,包含:施加一单通道多位阶编程;每次使用单独的脉冲序列(或于一个通道内),例如一增幅脉冲编程序列;对多个目标编程位阶进行多个编程验证步骤,进而编程多个多位存储单元。利用这些技术,所需的编程脉冲的数量,以及编程数据所需的时间可以减少。连带的,可以达到提升编程的整体速度与降低干扰条件的效果。根据本发明的第二方面,提出一种操作多位存储单元的存储器的方法,其中包含以两个阶段进行编程。这两个阶段可包含,例如,一第一单通道增幅脉冲编程序列,以及对至少一初步编程位阶的至少一编程验证步骤;其后,施加一单通道增幅脉冲编程序列,以及对多个目标编程位阶的编程验证步骤,用以将多个存储单元编程为多个编程位阶。透过两个阶段的编程程序,可以使分布变窄且降低干扰。根据本发明的第三方面,提出一种操作多位存储单元的方法,包含:为编程多个多位阶存储单元而储存一数据集,该数据集代表各该存储单元为多个编程状态之一,或为一禁止状态,其中该多个编程状态是对应作为于该多个多位阶存储单元的多个编程目标位阶。对该数据集,该方法包含:对该多个多位阶存储单元执行多个编程周期,其中该多个编程周期之一包含:对于在该多个编程状态的多个多位阶存储单元,施加一编程偏压;以及在施加该编程偏压后,利用该多个编程状态中的多个编程状态,对一部分的该多个多位阶存储单元施加多个编程验证步骤,使其由该多个编程状态变化为该禁止状态,其中该部分的该多个多位阶存储单元是透过在该指示编程状态的目标编程位阶。该数据集可用于在单通道多位阶操作的每一个周期,用以判断被选定的存储单元的禁止与编程状态。对3D的实施例而言,单通道多位阶编程操作的变化可包含按照存储单元层而将存储单元区分为存储单元群组,藉以降低垂直干扰。再者,单通道多位阶编程操作的变化可包含,在对存储单元的区块进行编程操作时,按照分页顺序而非按照字线的顺序。为了对本发明的上述及其他方面有更佳的了解,下文特举较佳实施例,并配合所附图式,作详细说明如下:附图说明图1,其是单通道多位阶编程操作的集成电路的方块图。图2,其是一种使用3D垂直栅极(3Dverticalgate,简称为3DVG)NAND闪存阵列结构的透视图。图3,其是图2的3DNAND闪存阵列结构中,安排编程偏压的布局的例子的示意图。图4,其是如图2所示,在3DNAND闪存实现单通道多位阶编程程序的示意图。图5,其是以存储单元数量相对于阈值电压,说明多位阶快闪存储单元的阈值电压分布的示意图。图6,其是已知技术利用多通道ISPP程序,对具有多位的存储单元进行编程的示意图。图7,其是用于单通道多位阶编程程序中,产生编程控制信号的列表。图8A,其是说明单通道多位阶编程操作的示意图。图8B,其为比较已知的多通道多位阶编程操作,与单通道多位阶编程操作的列表。图9,其是根据本发明较佳实施例的单通道多位阶编程操作的简化流程图。图10,其是对ISPP编程程序,分析单通道多位阶编程操作的编程结果。图11,其是单通道多位阶编程操作的应用列表,其中编程验证步骤是基于脉冲数目或序列内的编程脉冲的位阶而执行。图12,其是基于图11的概念的另一种单通道多位阶编程操作的简化流程图。图13,其是根据另一个实施例的单通道多位阶程序的流程图。图14,其是在叠层式存储器结构中,进行编程的过程,对存储单元层进行分组的示意图。图15,其是另一种在编程时,将叠层式的存储单元以另一种方式分组的示意图。图16,其是说明将单通道多位阶编程应用于存储单元层的分组的流程图。图17,其是按照字线的顺序而进行单通道多位阶编程的示意图。图18,其是按照字线顺序进行单通道多位阶编程的顺序的列表。图19,其是按照字线而进行单通道多位阶编程程序的流程示意图。图20,其是NAND闪存电路按照分页顺序而进行编程的示意图。图21,其是按照分页顺序进行单通道多位阶编程的顺序的列表。图22,其是按照分页而进行单通道多位阶编程程序的流程示意图。图23,其是一种两个阶段的编程操作的流程图。图24,其是应用于单通道多位阶编程操作的简化逻辑的示意图。图25,其是第一种在两个阶段使用单通道多位阶编程操作的示意图。图26,其是第二种在两个阶段使用单通道多位阶编程操作的示意图。图27,其是一种在两个阶段均使用单通道多位阶编程操作的示意图。图28,其是另一种在两个阶段均使用单通道多位阶编程操作的示意图。图29,其是与图28相似,但在第一个通道时使用初步验证位阶的另一种两阶段编程程序的示意图。图30,其是至少一阶段为单通道多位阶编程程序的示意图。【符号说明】输入/输出数据5编程编码逻辑95输入/输出电路91MLC缓冲器90数据路径93第二数据线85感测放大器/编程缓冲电路8控制器10、795第一数据线75地址30行译码器70存储器阵列60列译码器40偏压产生器20SSL栅极结构109、119阶梯垫112A、113A、114A、115A半导体条的叠层102、103、104、105、112、113、114、115栅极选择线126、127字线125-1...125-N源极线128阶梯垫102B、103B、104B、105B串行401、402、403、404串行选择晶体管442、443、444、445存储器单元400GSL晶体管411、412、415分布范围500、501、502、503、520、621、622、623第一通道511第二通道512第三通道513低阈值电压521中间阈值电压522高阈值电压523为临界范围620第一条线610、810第二条线611、811、813、815、817、890存储器结构720擦除状态范围820第一编程状态821第二编程状态822第三编程状态823、833位线722、724、726、728、730、732、734、736第一层的存储单元群组740、743第二层的存储单元群组742、745第三个层的存储单元群组747第三初步范围827第三条线812、814、816、818、891初步编程范围829第一初步范围825、839第二初步范围826第三初步范围827第三编程状态范围833具体实施方式本发明实施例的详细说明可参看图1-图30。请参见图1,其是单通道多位阶编程操作的集成电路的方块图。集成电路1包含在集成电路基板上的存储器阵列60。存储器阵列60包含多位阶存储单元(multiple-levelcells,简称为MLC),多位阶存储单元指的是在一个存储单元中,可储存多于一个位的数据。列译码器40耦接于多条字线,并沿着存储器阵列60的各列而设置。排(bank)译码器50耦接于多条排选择线55(例如:SSL线与GSL线)。行译码器70耦接于设置于存储器阵列60各行的多条位线65,用以自存储器阵列60读取数据或写入数据至存储器阵列60。由控制逻辑10提供的地址,将透过总线30提供予行译码器70与列译码器40。在此例子中,感测放大器/编程缓冲电路80透过第一数据线75而耦接至行译码器70。编程缓冲电路80可用于储存作为多位阶编程所用的编程代码(programcodes);或者,储存代表编程代码的功能的数值,进而指示被选择的位线为编程状态或禁止状态。行译码器70可根据编程缓冲电路80内的数值,而选择性地将编程电压与禁止电压施加于存储器内的位线。经由感测放大器、编程缓冲电路80感测而得的数据,将透过第二数据线85提供予多位阶数据缓冲器90。多位阶数据缓冲器90透过数据路径93而耦接于输入/输出电路91。再者,此范例利用在多位阶数据缓冲器90的输入数据,作为支持单通道多位阶编程操作使用。输入/输出电路91驱动数据至集成电路1外。输入/输出数据5与控制信号透过数据总线(databus)而在输入/输出电路91、控制逻辑10与集成电路1上的输入/输出端,或是其他的内/外部数据源(例如:通用处理器(generalpurposeprocessor)、特殊目的的应用电路,或者存储器阵列60所支持的系统芯片功能的模块的组合)间移动。在图1的例子中,控制器10利用一偏压配置状态机(biasarrangementstatemachine)控制由偏压产生器20内的一个或多个电压供应器产生或供应读取电压、验证电压、编程电压。控制逻辑10耦接至多位阶缓冲器90与存储器阵列60。以下将说明控制逻辑10包含用以控制单通道多位阶编程操作的逻辑。本案所属技术领域的普通技术人员,可利用专用逻辑电路实现控制逻辑10。在其他的实施例中,控制电路包含在同一个集成电路上的一通用处理器(general-purposeprocessor)。通用处理器执行的计算机程序用于控制装置的操作。在其他的实施例中,控制逻辑亦可使用专用逻辑电路与通用处理器的组合。存储器阵列60可包含多个电荷捕捉存储单元,各该电荷捕捉存储单元可用于储存多个位。这些电荷捕捉存储单元可透过建立多个编程位阶的方式(相当于建立存储单元的多个阈值电压VT)而储存该些位。在其他的范例中,存储单元可包含可编程电阻式存储单元(programmableresistancememorycells),透过配置与电阻数量相对应的多个编程位阶的方式,以可编程电阻式存储单元储存多个位。以下的说明是以电荷捕捉存储单元(如:浮动栅级闪存、介电质电荷捕捉闪存等)为基础。本案的构想亦可被应用于采用其他技术类型的存储单元。请参见图2,其是一种使用3D垂直栅极(3Dverticalgate,简称为3DVG)NAND闪存阵列结构的透视图。图2所示的存储器阵列结构可搭配使用不同类型的单通道多位阶编程(one-pass,multiple-levelprogramming)技术。关于3DNAND闪存阵列结构的说明,可参见于2011年4月1日申请,标题为「具有交错式存储器串行方向与串行选择结构的3D阵列存储器结构」(MemoryArchitectureof3DArrayWithAlternatingMemoryStringOrientationandStringSelectStructures)的第13/078,311号美国专利申请案,此案的公开号为US-2012-0182806,其内容是完全于此并入作参考。为便于说明,此图式已移除绝缘层并露出附加的结构。例如:在半导体条之间的绝缘层、在脊型叠层内的绝缘层,以及在半导体条的脊型叠层间的绝缘层均被移除。3DNAND闪存阵列结构包含彼此叠层的存储器结构,也因此阵列采用紧密的配置方式多个存储单元。多层阵列形成于绝缘层上,并包含多条字线125-1、...、125-N。多个脊型叠层包含半导体条(例如:在第一个偶数分页叠层中的半导体条112、113、114、115)。形成叠层的半导体条112、113、114、115的一端起始于阶梯垫112A、113A、114A、115A,穿过串行选择线SSL栅极结构119、栅极选择线GSL126、字线(WL)125-1至125-N、栅极选择线GSL127后,另一端中止于源极线128。半导体条的叠层112、113、114、115并未连接至阶梯垫102B、103B、104B、105B。在第一奇数分页叠层(firstoddpagestack)内的半导体条的叠层102、103、104、105,一端起始于阶梯垫102B、103B、104B、105B,并通过串行选择线(SSL)栅极结构109、栅极选择线GSL127、字线(WL)125-N...125-1、栅极选择线GSL126后,另一端中止于源极线128(此图式被其他元件遮蔽)。半导体条的叠层102、103、104、105并未连接至阶梯垫112A、113A、114A、115A。在偶数存储器分页中,由串行选择线SSL往栅极选择线GSL方向的字线的编号根据由1至N的递增顺序,由整体结构的后侧往前侧方向排列。在奇数存储器分页中,由串行选择线SSL往栅极选择线GSL的字线的编号根据由N至1的递减顺序,由整体结构的前侧往后侧方向排列。在偶数分页中,半导体条(如:112、113、114、115)中止于阶梯垫112A、113A、114A、115A。如前所述,这些阶梯垫112A、113A、114A、115A电连接至不同的位线,作为连阶至译码电路而在阵列内选取平面所用。这些阶梯垫112A、113A、114A、115A的排列可与该些脊型叠层同时定义。在奇数分页中,半导体条102、103、104、105中止于阶梯垫102B、103B、104B、105B。如前所述,这些阶梯垫102B、103B、104B、105B电连接至不同的位线,作为连阶至译码电路而在阵列内选取平面所用。这些阶梯垫102B、103B、104B、105B的排列可与该些脊型叠层同时定义。所有的半导体条的叠层均仅耦接于区块一端的阶梯垫112A、113A、114A、115A,或是区块另一端的阶梯垫102B、103B、104B、105B。惟,半导体条的叠层并不会同时耦接于两端的阶梯垫。与字线相似的,接地选择线(GSL)126、127共形(conformal)于该多个脊型叠层。对每一个半导体条的叠层而言,一端中止于一组阶梯垫,另一端则中止于源极线。例如,半导体条的叠层112,113,114,115的一端为阶梯垫112A,113A,114A,115A,,另一端则为源极线128。在图式的近侧,每间隔一个半导体条的叠层中止于阶梯垫102B,103B,104B,105B,其余每间隔一个半导体条的叠层则中止于另外的源极线。在图式的较远一侧,每间隔一个半导体条的叠层中止于阶梯垫112A,113A,114A,115A,其余每间隔一个半导体条的叠层则中止于另外的源极线。位线与串行选择线均形成于金属层ML1、ML2、ML3。每一个存储单元串行的区域位线(Localbitlines)则由半导体条形成。存储单元晶体管是由半导体条与字线125-1间的存储器材料所形成。在晶体管中,半导体条(如:113)作为装置的通道区域。在定义字线125-1...125-N的同时,可同时决定串行选择线(SSL)栅极结构(如:119、109)的排列方式。沿着字线、接地选择线与栅极结构的表面上,可形成一硅化物(silicide)层。存储器材料层可作为晶体管的栅极介电质(gatedielectric)。晶体管作为串行选择栅极,耦接于译码电路,作为在阵列内选取特定的脊型叠层使用。请参见图3,其是图2的3DNAND闪存阵列结构中,安排编程偏压的布局的例子的示意图。在图3所示的布局中,存储器条的叠层是以具有点状边缘的垂直条状表示。彼此相邻的半导体条的叠层在偶数与奇数方向交错。每个奇数半导体条的叠层由上方的位线接触垫结构(contactpadstructure)延伸至下方的奇数源极线。每一个偶数半导体条的叠层由下方的位线接触垫结构(contactpadstructure)延伸至上方的偶数源极线。在半导体条的叠层上,覆盖着水平字线与水平接地选择线GSL(偶数与奇数)。此外,半导体条的叠层上还覆盖着SSL栅极结构。在半导体条的顶端,每间隔一个的半导体条上覆盖着奇数SSL栅极结构;以及,在半导体条的底部,每间隔一个的半导体条上覆盖着偶数SSL栅极结构。在其他的例子中,SSL栅极结构控制在任何半导体条的叠层,以及与叠层相对应的位线接触的阶梯垫之间的电性连接。在此范例中,奇数存储器分页的字线编号对应于此图式由上而下的方向是由1至N递增。针对某些编程程序而言,偶数存储器分页的字线编号对应于此图式中由上而下的方向是由N至1递减。覆盖在字线、接地选择线与SSL栅极结构上的是垂直延伸的金属层串行选择线ML1SSL。覆盖在金属层串行选择线ML1SSL上的是水平延伸的金属层串行选择线ML2SSL。尽管此处为了容易说明,将金属层串行选择线ML2SSL显示为,终止于相对应的金属层串行选择线ML1SSL,但是金属层串行选择线ML2SSL可能延水平方向而延伸得更长。金属层串行选择线ML2SSL接收来自译码器的信号,且金属层串行选择线ML1SSL将这些译码器的信号耦接至特定的SSL栅极结构,用以选择特定的半导体条的叠层。此外,偶数与奇数的源极线亦覆盖在金属层串行选择线ML1SSL上。再者,覆盖于金属层串行选择线ML2SSL上的是位线ML3(未绘式)。位线ML3连接至阶式接触结构(steppedcontactstructures)的顶端与底部。透过阶式接触结构,位线将选择半导体条的特定平面。特定的位线被电连接于不同的半导体条的不同平面,并形成区域位线。在编程偏压的安排下,特定的位线将被偏压为禁止或编程。被选择的半导体条的叠层的SSL被偏压而耦接至位线接触结构,且其他的SSL被偏压而与相对应的叠层解耦(de-couple)。除了被选择的字线因为采用:如改善式增幅步阶脉冲编程(Incrementalsteppulsedprogramming,简称为ISPP),因此其脉冲是以步阶式电压方式施加外,字线的电压为通道电压Vpass,且在单通道内施加多编程位阶的编程验证步骤。在图2与图3所示的3DVG结构中,存储器包含多个存储单元的分页,且根据本案描述的目的,分页可被定义为,能平行被耦接至一组N条位线,并以一组M条字线选取的存储单元。在此结构中,可定义一分页为,包含半导体条的叠层内的存储单元,经由一单独SSL切换而选取。其中每一个半导体条是透过阶梯垫而偶接至相对应的位线。分页的定义方式与存取分页的译码方式可根据特定的存储器结构而改变。存储器结构可包含一个分页的编程缓冲区,用于进行此处的编程与编程验证步骤。其中,分页的编程缓冲区系耦接于平行的N条位线组。根据此范例的说明,存储单元有四个平面,用以提供每个分页的四条位线。在其他的例子中,平面的个数可能不同。根据此处的一个例子,可能有八个平面,具有八个偶数叠层与八个奇数叠层。因此,使一个存储器区块总共包含16个分页,且每个分页有16个位。为了形成较宽的分页,存储器单元可重复设置在左侧及右侧。在一列区块中的每一个区块具有四个位,利用穿过该列的区块的字线而选择。一种代表性的配置为,在区块的列中储存N×8M字节的数据,且一个集成电路可能包含8000条全局位线,覆盖于1000个彼此相邻的存储单元的区块。其中每一个区块具有16个分页,每一个分页包含512N位个存储单元,该些存储单元根据奇数/偶数的配置而耦接于八条全局位线。每一列的区块可包含64条字线,且其具有8层的深度,因而使每个分页具有512个存储单元。连带的,在单一区块内被SSL信号所选择的一个八层的半导体条将包含512个存储单元(64×8),各该存储单元用于储存多位的数据。由16个分页组成的区块具有8K个存储单元。请参见图4,其是在3DNAND阵列的一个平面(X-Y平面)的电路,其中包含具有存储单元(如:44)的四个NAND串行。此处说明的串行401、402、403、404可设置于与图2相似的3D阵列的同一层的上方。串行401、402、403、404对奇数与偶数分页共享偶数与奇数GSL线。串行401、402、403、404并具有分别的SSL线,如图2所示,在区块反向端的偶数与奇数字线接触结构上,耦接至全局位线BL-N;以及,耦接至偶数与奇数共享源芯片选择(CS)线405。这些串行透过分别的串行选择晶体管442、443、444、445而被连接至相对应的全局位线BL-1至BL-4。这些串行透过分别的接地选择晶体管(如411、412),而被连接平面的偶数或奇数共享源极线。以下表格说明几种代表性的编程偏压。信号电压编程字线ISPP步阶介于Va与Vc’间未被选择的字线通过电压7-11V选择的分页(选择SSL)VDD(选择位线)0V(禁止位线)VDD未被选择的分页(取消选择SSL)VDD→0V被选择的栅级选择线VDD→0V未被选择的栅级选择线VDD芯片选择线VDD增幅步阶脉冲编程(ISPP)为一常用技术,被描述于Suh等人在电机电子工程师学会国际半导体电路会议(IEEEInternationalSolid-StateCircuitsConference),1995,第128-130页,标题为「一种具有增幅步阶脉冲编程架构的3.3V32MbNAND闪存」,″A3.3V32MbNANDFlashMemorywithIncrementalStepPulseProgrammingScheme"一文中。根据此基础技术,为了对目标存储单元进行编程,使目标存储单元的阈值电压介于代表一特定数据值的范围内,需要执行一序列的编程/验证步骤。其中,与序列内的前一个脉冲相较,每一个编程脉冲相对增加一个脉冲增幅的数值步阶。在每一个脉冲间,施加一编程验证电位至存储单元的字线,并感测数据,用以判断存储单元的阈值电压是否超过编程验证位阶。编程验证的位阶,被设定为目标数据值的范围的底端(1owend)。其他关于3D闪存的编程操作的验证与细节,可参看,由Liu等人,标题为「改良容限与禁止干扰的闪存的编程技术」(FLASHPROGRAMMINGTECHNOLOGYFORIMPROVEDMARGINANDINHIBITINGDISTURBANCE)的第2013/0182505号美国专利申请案,其内容系完全于此并入作参考。在图4中,被选择的存储器单元400被设置于NAND串行402内并透过SSL晶体管442而连接至位线BL-N(奇数)。连接至SSL晶体管442的信号SSL1被偏压为VDD,当串行的漏极端需与字线隔离时,被选择的位线亦被偏压为VDD。为了进行编程,连接至GSL晶体管415的信号线GSL(奇数),会先被偏压为VDD后再降低至0V。在此例中,大约为7-9伏特的漏极端通道电压,被施加于字线WL(0)至WL(i-1)。于源极端的字线WL(i+1)至WL(N-1),施加大约为7-9Volts的源极端通道电压。被选择的字线WL(i)所接收的编程脉冲,与编程序列的步骤相关。与SSL晶体管443、444、445耦接,但未被选择的串行则透过偏压,防止对存储器单元所储存的电荷造成干扰。串行404被连接至SSL晶体管443,并被用于与被选择位线BL-N(奇数)相连。因此,透过对SSL3信号的设定,将位线BL-N(奇数)与串行404隔离。对于具有SSL晶体管444、445的串行401、403,将串行连接至未被选择的字线BL-N(偶数)。透过对栅极上的信号线SSL0与SSL2的设定,进而隔离被选择的存储单元的源极侧的晶体管,与未被选择的位线。再者,耦接于GSL晶体管(例如:411、412)的偶数与奇数GSL线,接收的偏压大约为VDD,或由VDD降低至0V,使漏极端区域422(被选择的存储单元的源极端)422耦接至共享源极线。请参见图5,其是以存储单元数量相对于阈值电压,说明多位阶快闪存储单元的阈值电压分布的示意图。对于典型的闪存而言,在个别存储单元储存两个位相当于,阈值电压分布包含与数据值″11″、″10″、″00″与″01″相对应的四个范围。其中,在这四个范围间存在适当的读取窗(readwindow)。在此范例中,当存储单元为被擦除状态时的数据值为″11″,其阈值电压在分布范围500内。当存储单元为第一编程状态时的数据值为″10″,其阈值电压在分布范围501内。当存储单元为第二编程状态时数据值为″00″,其阈值电压在分布范围502内。当存储单元为第三编程状态时数据值为″01″,其阈值电压在分布范围503内。在操作时,可以利用编程验证位阶PV1对多位阶存储单元编程,并建立范围501;利用编程验证位阶PV2对多位阶存储单元编程,并建立范围502;以及,利用编程验证位阶PV3对多位阶存储单元编程,并建立范围503。各分布之间有合理的间隙(reasonablespace),故能容许读取容隙(readmargin)。是故,以下将说明,读取操作如何施加临界范围在RD1、RD2、RD3间的读取电压,进而感测存储单元的多个位阶。.请参见图6,其是已知技术利用多通道ISPP程序,对具有多位的存储单元进行编程的示意图。第一条线510代表用于擦除存储单元区块的通道,其中将区块内的所有存储单元设定至分布范围520。此种擦除操作可利用擦除验证电压EV执行。对于具有三个编程位阶的存储单元,ISPP程序的三个通道是以511、512、513表示。在第一通道511中,利用编程验证位阶PV3设定并建立高阈值电压523。在第二通道512中,利用编程验证位阶PV2设定并建立中间阈值电压522。在第三通道513中,利用编程验证位阶PV3设定并建立低阈值电压521。本发明亦可被应用于其他类型的多通道多位阶编程操作。例如,编程周期可包含将编程脉冲(programpulses)施加于被选择的字线,并对未被选择的字线施加通过电压(passvoltage)。对编程位阶与编程验证电压的后续周期(succeedingcycle),可施加增加数值的编程脉冲。在第一个例子中,可使用下述的多通道参数:第一通道:利用PV1验证在Va与Va'范围内的编程脉冲数值。第二通道:利用PV2验证在Vb与Vb’范围内的编程脉冲数值。第三通道:利用PV3验证在Vc与Vc’范围内的编程脉冲数值。在Va与Va′范围内,使用常数步阶电压ΔV作为ISSP电压。在第二个例子中,可使用如下所述的多通道参数:第一通道:利用步阶电压为ΔV1的PV1,验证在Va与Va'范围内的编程脉冲数值。第二通道:利用步阶电压为ΔV1的PV2,验证在Vb与Vb’范围内的编程脉冲数值。第三通道:利用步阶电压为ΔV2的PV3,验证在Vc与Vc’范围内的编程脉冲数值。其中ΔV2>ΔV1。第二个例子可能使PV3的高临界范围具有较宽的分布,但也能减少所需的编程周期的数量。根据前述说明可以得知,需要利用三个通道进行多脉冲编程程序的做法,需要花费许多时间。此外,每一个脉冲都可能对相邻的存储单元产生干扰。如何减少编程所需的时间并降低编程产生的干扰为一个待解决的课题。因此,以下将说明单通道多位阶的编程操作。此处将多位存储单元的输入数据转换为编程控制信号,作为进行单通道时,控制编程周期所使用。图7的列表说明数据值与编程控制信号的对应关系,其中,对每一个存储单元使用特定的编程验证位阶。编程控制信号可储存于如图1的电路中的多位阶缓冲器、编程缓冲器,或是其他可由控制器使用的存储器内。此种对应关系可透过逻辑而实现单通道多位阶的编程操作。编程控制信号或其他的编程编码可储存于图1的电路上的多位阶缓冲器、或是控制器可使用的其他存储器。此处以编程编码(p_code)代表编程控制信号,编程控制信号可包含:以一个位代表每一个验证位阶,以及根据图7的表格而产生的两个位的存储单元。因此,与输入数据″11″对应的编程编码为(1、1、1)。输入数据″10″对应的编程编码为(0、1、1)。与输入数据"00″对应的编程编码为(1,0,1)。与输入数据″01″对应的编程编码为(1、1、1)。编程编码用于代表在编程操作期间,施加于存储单元的验证位阶。再者,编程编码的逻辑表达式可用于判断应禁止或编程位线。若编程编码为(1、1、1),则可根据逻辑AND的结果为″1″,而将位线设定为禁止模式;或者,根据结果为″0″而将位线设定为编程模式。逻辑AND的结果为″0″时,也代表至少一个临界位阶将被设定,且尚未通过验证。图8A说明根据图6的一个单通道多位阶编程操作。在图8A中,第一条线610代表擦除通道,其中所有的存储单元被设定为临界范围620。第二条线611代表,利用三个编程验证位阶PV1、PV2、PV3,进行单通多位阶编程操作,进而使一个分页内的存储单元位于三个分布范围621、622、623内。图6所示的三个ISPP程序的通道,可被代换为一个单通道多位阶的编程操作。单通道多位阶操作的一种变化,可使用以下的参数。单通道:利用PV1、PV2、PV3验证在Va至Vc′范围内的编程脉冲数值。在Va与Vc′范围内,使用常数步阶电压ΔV作为ISSP电压。图8B为比较如图6所示的已知的多通道多位阶编程操作,与图8A所示的单通道多位阶编程操作的列表。根据已知技术的操作,执行第一通道ISPP周期Vc时,PV3的编程脉冲一开始为电压位阶Vc,之后则为结束电压位阶Vc′。在此例子中,每一个脉冲的步阶为固定的步阶电压ΔV。PV3通道的编程击发次数(numberofprogramshots)可根据Vc′与Vc的差值决定。即,将Vc′与Vc的差值除以步阶ΔV的大小后,额外加上一个周期。执行第二通道ISPP周期时,PV2的编程脉冲一开始为电压位阶Vb,之后则以常数步阶电压ΔV而为结束电压位阶Vb′。PV2通道的编程击发次数,可根据Vb′与Vb的差值决定。即,将Vb′与Vb的差值除以步阶ΔV的大小后,额外加上一个周期。执行第三通道ISPP周期时,PV1的编程脉冲一开始为电压位阶Va,之后则以常数步阶电压ΔV而为结束电压位阶Va′。PV2通道的编程击发次数,可根据Va′与Va的差值决定。即,将Va′与Va的差值除以步阶ΔV的大小后,额外加上一个周期。对于单通道多位阶编程,图中的标示为单通道多位阶编程,在一个通道内利用全部的三个编程位阶,由位于电压位阶Va的编程脉冲开始(类似已知的PV1通道),并于电压位阶Vc′结束(类似已知技术的PV3通道)。由于电压脉冲的高度在Va与Va′的范围、Vb与Vb′的范围,以及Vc与Vc′的范围间彼此显着重迭,在OTM周期内所施加的脉冲数量也相对减少。关于控制器如何对闪存,进行单通道多位阶的编程操作的程序,可参看如下的基础范例。(1)接收多位阶数据,并产生与分页内的每一条位线相对应的编程编码。(2)执行多位阶验证操作,判断存储单元是否被验证为编程编码所指出的位阶。(3)透过验证程序而更新编程编码。(4)接着判断是否在分页内的所有存储单元,都具有编程编码所代表的目标阈值电压。(5)若非所有的存储单元都被验证,则编程编码被用于判断分页内的位线的编程/禁止状态,以及,在每一个通道增加编程脉冲的数值时,施加编程脉冲。(6)在所有(或如下所述的大部分)的脉冲后,重复进行多位阶验证,直到分页已经被编程,或者有错误产生。请参见图9,其是单通道多位阶编程操作的简化流程图。流程由步骤630开始。首先利用输入数据,对将被平行进行编程的位线产生相对应的编程编码(步骤631)。编程编码代表在进行编程操作时,在位线所施加的验证位阶。此外,编程编码的逻辑表达式,可以搭配个别的脉冲,判断是否要将相对应的位线偏压为禁止状态或编程状态。例如:对编程编码内的三个位进行逻辑AND运算,其结果为″1″时,将位线设定为禁止模式;其结果为″0″时,代表至少有一个临界位阶被设定,因此无法通过验证。在产生所有要被编程的位线的编程编码后,可执行一验证程序。验证程序包含对每一个编程位阶进行一验证步骤。因此,执行PV1验证步骤并产生验证结果PV1_V(步骤632)。此范例假设:当位在线的存储单元通过验证时,结果为″1″;以及,当位在线的存储单元未能通过验证时,结果为″0″。执行PV2验证步骤并产生验证结果PV2_V(步骤633)。执行PV3验证步骤并产生验证结果PV3_V(步骤634)。验证结果被用于更新编程编码(步骤635)。此时,编程编码被设定做为在序列中的第一编程脉冲使用。此逻辑判断是否已经施加最大数目的脉冲,或是编程编码代表所有的存储单元均已通过验证操作(步骤636)。若否,则持续进行编程操作。利用更新后的编程编码,选择每一条位线的禁止与编程条件,并根据所利用的程序(例如:ISPP程序)而选择施加的编程脉冲(步骤637)。若在步骤636中,编程编码代表所有的存储单元皆通过验证,或是已经达到最大的脉冲数量,则停止此操作(步骤638).请参见图10,其是利用典型的ISPP操作进行一序列步骤的阈值电压分布。在此图式中,水平轴为阈值电压、纵轴为数量。图式的左上角为脉冲高度的说明。PV1、PV2、PV3的验证位阶标示于水平轴。此图式说明在位阶Va的第一脉冲非常不可能使存储单元具有通过PV1的阈值电压。此外,前两个脉冲几乎不可能使存储单元具有通过PV2的阈值电压。前三个脉冲几乎不可能使存储单元具有通过PV3的阈值电压。此图式亦说明最后的三个脉冲被施加于已经通过PV1的存储单元后。最后的两个脉冲被施加于已经通过PV2的存储单元后。此信息可被用于调整图9所述的单通道多位阶编程程序。图11为在序列内的一个特定脉冲后,用于决定是否对给定的编程验证位阶执行验证操作的列表。在此范例中,对于具有位阶介于Va至Va+6*ΔV范围内的所有脉冲,执行PV1验证。对于具有位阶介于Va+1*ΔV至Va+7*ΔV范围内的所有脉冲,执行PV2验证。对于具有位阶介于Va+2*ΔV与Va+8*ΔV范围内的所有脉冲,执行PV3验证。由此可知,高的编程位阶并不需要数值小的编程脉冲,而低的编程位阶并不需要数值高的编程脉冲。此信息可用于减少验证操作所需的次数,并缩短执行编程操作所需要的时间。连带的,整体速度可获得改善,且能舒缓受干扰的情形。请参见图12,其是参考图10、图11的信息而改进单通道多位阶编程操作的简化流程图。在此范例中,编程程序由步骤640开始。如前所述,输入数据被用于产生编程编码(步骤641)。透过施加PV1而执行验证操作,并产生验证结果PV1_V(步骤642)。接着,判断ISPP步阶电压是否具有小于Vb的电压值(例如:透过判断脉冲数目)。其中,Vb是对存储单元进行第二编程位阶的起始值(步骤643)。若ISPP步阶电压过低,则流程将略过并执行步骤647。若ISPP步阶电压够高,则于PV2执行验证步骤,并产生验证结果PV2_V(步骤644)。此程序接着判断ISPP步阶电压的数值是否小于Vc。其中,Vc是对存储单元进行第三次编程位阶的起始值(步骤645)。若ISPP步阶电压够高,则于PV3执行验证步骤,并产生验证结果PV3_V(步骤646)。若ISPP步阶电压过低,则略过此步骤并直接进行步骤647。如前所述,在步骤647,编程验证结果被用于更新编程编码。此程序接着判断是否已经超过最大脉冲数目(maximumpulsecount),以及是否所有被编程的存储单元均已通过验证操作(步骤648)。若否,则此编程程序持续将递增的脉冲高度施加于当前的编程编码,用以判断哪个位线被偏压为禁止、哪些位线被偏压为编程。此程序接着回到第一个验证步骤(步骤642)。在步骤648中,若所有的存储单元均已通过,且未超过最大脉冲数目,则程序结束(步骤650)。此程序可以减少在编程周期内,对较位阶执行验证操作所需的次数。请参见图13,其是另一种改善单通道多位阶程序的流程图。此流程图可同时减少在编程周期中,低位阶与高位阶所需的验证操作的次数。此程序由步骤651开始。如前所述,输入数据先被转换为编程编码(步骤652)。接着透过施加PV1而执行验证程序,并产生结果PV1_V(步骤653)。判断编程数值是否介于编程第二编程位阶的脉冲的位阶间。其中,第二编程位阶介于Vb与VMAXb的范围内(步骤654)。若当前的脉冲位于此范围内,则透过施加PV2与产生PV2_V结果而执行验证操作(步骤655)。若当前脉冲低于此范围或高于此范围,则此流程略过并直接进行步骤656。在步骤656中,决定脉冲高度是否高于第三编程位阶的初始脉冲(电压Vc)。若当前脉冲的位阶高于电压Vc,则透过施加PV3并产生结果PV3_V而进行验证操作(步骤657)。在步骤656中,若脉冲高度低于第三编程位阶的起始脉冲,则流程直接略过并执行步骤658。如前所述,验证结果被用于更新编程编码(步骤658)。在步骤659中,流程判断是否所有的存储单元均通过验证,或错误条件符合(如:最大脉冲数量)。若步骤659的判断结果为否定,则编程操作持续根据当前编程编码、脉冲数量与其他参数的控制,施加在ISPP程序的下一个脉冲(步骤660)。在施加脉冲后,判断ISPP步阶电压是否大于施加至第一编程位阶的最大数值VMAXa(步骤661)。若未大于极大值,编程验证程序由位阶PV1开始进行验证操作(步骤653)。若脉冲数值大于第一次编程位阶的极大值,则此流程略过步骤653,并执行步骤654。此循环重复进行直到所有的存储单元都通过验证,或者有错误产生时。因此,在步骤659,若所有存储单元通过或达到最大脉冲数目,则此流程结束(步骤662)。.对3D存储器而言,可利用多种方式执行单通道多位阶编程操作。图14、图15说明如图2所示的存储单元的叠层结构,包含在存储器结构的叠层中的8层存储单元,如何透过一条字线与一条信号选择线SSL,选择第一个存储单元层的存储单元群组与第二个存储单元层的存储单元群组。请参见图14,其是在叠层式存储器结构中,进行编程的过程,对存储单元层进行分组的示意图。为便于说明,此处并未绘式存储器材料层与周边的字线。叠层的存储器结构720包含八条位线722、724、726、728、730、732、734、736,这些位线被绝缘层区隔(例如:字线间的738)。这八条位线电耦接于八层内的存储单元,并分享一个共享字线结构(未绘式)。接着,若叠层内的任何存储单元被选择进行编程,所有的存储单元都将接触在共享字线的高电压。此种叠层式的存储器结构可包含不同层数的存储单元。为了减少在同一行中进行编程而对相邻的存储单元造成干扰,图14说明将存储单元层分为第一存储单元群组与第二存储单元群组。透过存储单元群组的画分,对部分的存储单元群组进行编程的同时,可禁止其他的存储单元群组。对于第一层的存储单元群组740与第二层的存储单元群组742内特定多位地址的存储单元结构,一次对一个存储单元群组施加编程操作。请参见图15,其是另一种在编程时,可抑制干扰与防止过度编程的叠层式的存储器结构的示意图。叠层式的存储器结构720包含第一叠层式位线722、第二的位线724、第三叠层式位线726、第四叠层式位线728、第五叠层式位线730、第六叠层式位线732、第七叠层式位线734、第八叠层式位线735。此种结构的特征为,包含三个存储单元层的存储单元群组。在此结构中,第一个存储单元层的存储单元群组743包含具有第一位线722、第四位线728与第七位线734的存储单元。第二个层的存储单元群组745包含具有第二位线724、第五位线730与第八位线736的存储单元。第三个层的存储单元群组747包含具有第三位线726与第六位线732的存储单元。此种结构是以存储单元层的存储单元群组为基础,在各个存储单元层的存储单元群组内的位线,会被在两个其他存储单元层的存储单元群组内的至少两个其他的位线所区隔。此种结构可被用于包含三条或更多位线的叠层式存储器结构,因此每一个存储单元层的存储单元群组可包含任何数目的位线。进行编程操作时,图14与图15的结构可以防止过度编程(over-programming)。即,在叠层式的存储器结构720内,减少在未被选择的存储单元内产生的干扰数量。关于对层进行分组进行编程的信息可参看由Hung等人于2013年3月14日所申请,标题为「在叠层式存储器结构内减少编程干扰的编程技术」(PROGRAMMINGTECHNIQUEFORREDUCINGPROGRAMDISTURBINSTACKEDMEMORYSTRUCTURES(2053-1))的第13/827,475号美国专利案,其内容系完全于此并入作参考。如图2所示的3D存储器,此种将存储单元层分为存储单元群组的方式可使用如图16所示的单通道多位阶编程程序。图16说明将单通道多位阶编程应用于一存储单元群组的程序,其流程由步骤750开始。在步骤751中,选择一个分页与字线。其中分页是透过如图2描述的存储器结构内的一条串行选择线SSL而被选择。接着,输入数据被用来产生编程编码(步骤752)。控制器选择要被编程的一个存储单元层的存储单元群组(在此范例中,与位线的存储单元群组相对应),其他的存储单元群组在此周期内将被禁止(步骤753)。接着,执行一个多位阶验证,并根据结果而更新编程编码(步骤754)。根据编程编码,将编程脉冲施加于被选择的存储单元群组内的位线(步骤755)。多编程验证位阶被施加于存储单元群组内的每一个位线的脉冲,且其结果用于更新编程编码(步骤756)。于步骤757中,判断所有给存储单元群组的编程编码,是否代表通过所有的验证位阶。若否,在程序中判断脉冲数量是否达到极大值(步骤758)。若未回到步骤755,则施加在序列中的下一个脉冲。若在步骤758中,脉冲数目已经超过,则此流程失败(步骤759)。若步骤757判断在存储单元群组内的所有存储单元都通过验证,则流程判断是否分页的所有存储单元群组皆已被编程(步骤760)。或者,在转换存储单元群组前,对特定存储单元群组内的所有字线进行编程。若非全部的存储单元群组皆被编程(步骤760),则程序回到步骤753并设定下一个存储单元群组。若在步骤760中,所有的存储单元群组皆被编程,则此流程结束(步骤761)。对于单通道多位阶操作的一种应用(OTM-1)而言,可使用如下所述的参数。将分页区分为N个存储单元群组,其中N可为1、2、3。利用在Va至Vc′范围内的编程脉冲数值进行PV1验证、PV2验证、PV3验证,提供单通道予存储单元层的存储单元群组。在Va与Vc′范围内,使用常数步阶电压ΔV作为ISSP电压。未被选择的字线的通道电压在Vpasslow与Vpasshigh间动态地改变。对于单通道多位阶操作的第二种应用(OTM-2)而言,可使用如下所述的参数。将分页区分为N个存储单元群组,其中N可为1、2、3。利用固定的步阶电压ΔV,提供单通道予具有编程脉冲数值在Va与Vc′之间的存储单元层的存储单元群组。利用PV1验证在Va与Va′之间的编程脉冲数值。利用PV2验证在Vb与Vb′之间的编程脉冲数值。利用PV3验证在Vc与Vc′之间的编程脉冲数值。未被选择的字线的通道电压在Vpasslow与Vpasshigh间动态地改变。对于单通多位阶操作的第三种应用(OTM-3_1)而言,可使用如下所述的参数。将分页区分为N个存储单元群组,其中N可为1、2、3。利用可变增幅的电压,提供单通道予具有编程脉冲数值在Va与Vc′之间的存储单元层的存储单元群组。使用常数步阶电压ΔV1,对在Va与Va′范围内的编程脉冲数值进行PV1验证。使用常数步阶电压ΔV1,对在Vb与Vb′范围内的编程脉冲数值进行PV2验证。使用常数步阶电压ΔV2,对在Vc与Vc′范围内的编程脉冲数值进行PV3验证。(ΔV1<ΔV2)未被选择的字线的通道电压在Vpasslow与Vpasshigh间动态地改变。对于单通多位阶操作的第四种应用(OTM-3_2)而言,可使用如下所述的参数。将分页区分为N个存储单元群组,其中N可为1、2、3。利用可变增幅的电压,提供单通道予具有编程脉冲数值在Va与Vc′之间的存储单元层的存储单元群组。使用常数步阶电压ΔV,对在Va与Va′范围内的编程脉冲数值进行PV1验证。使用常数步阶电压ΔV,对在Vb与Vb′范围内的编程脉冲数值进行PV2验证。使用步阶电压n*V2,对在Vc与Vc′范围内的编程脉冲数值进行PV3验证。针对特定的需求,亦可实施其他类型的单通道多位阶编程操作。对特殊的实施例而言,可将前述说明加以应用并调整编程操作。图17、图18、图19说明如何利用″按字线(by-wordline)″编程程序,对存储单元的整个区块进行编程。图17为如图2所示的3DNAND阵列中的一个平面的示意图。在此范例中,包含四个NAND串行,其中第一个串行为第0分页的一部分;第二个串行为第1分页的一部分;第三个串行为第2分页的一部分;第四个串行为第3分页的一部分。如前所述,在此配置中,所有在同一层的NAND串行透过一阶梯结构而耦接于相同的位线,并根据偶数与奇数SSL、偶数与奇数GSL的切换而选择其中的一个NAND串行。较宽的箭头说明按字线编程(by-wordlineprogramming)的方向,其是执行如图18的流程。请参见图18,其是如图17所示,对具有16个分页的电路编程64个字线的顺序的列表。程序包含选择第一字线并依照分页0-15的顺序而进行编程操作。如图16所述,若需对每一个分页编程时,可将其区分为存储单元群组。图19为一根据字线而编程的程序的流程示意图。程序开始于步骤765。首先对字线上的所有分页加载相对应的缓冲区(步骤766)。接着,选择字线(步骤767)。其次,选择一个分页与一个存储单元群组(步骤768)。接着针对被选择的分页与存储单元群组产生编程编码(步骤769)。将一个存储单元层的存储单元群组设定为编程,并将其他存储单元群组设定为禁止(步骤770)。其后,对于具有被选择的字线的被选择的分页与存储单元群组施加单通道多位阶编程程序(步骤771)。此程序接着判断是否在被选择的字线上的分页都已完成(步骤772)。若否,则程序回到步骤768并选择下一个分页。若在分页内的所有存储单元群组,以及在区块内的所有分页均已完成(步骤772),则流程将判断在区块内的所有字线是否皆已完成(步骤773)。若否,程序回到步骤767并选择下一条字线。当步骤773判断所有字线都完成时,结束整个流程(步骤774)。将一个根据字线而进行编程的流程,应用于如图2的偶数与奇数分页结构时,对于偶数分页与奇数分页的执行顺序(effectiveorder)并不相同。对于偶数分页与奇数分页的其中一种类型而言,进行编程的方向是由共同源极线开始朝向位线方向;对于偶数分页与奇数分页的另一种类型而言,进行编程的方向是由位线开始朝向共同源极线的方向。在编程程序时,由于位线的加载改变,对偶数分页与奇数分页进行编程的结果也不相同。连带的,根据字线而进行编程的流程将影响编程操作的一致性。因此,在某些实施例中,会采用按照分页编程的程序。采用按照分页编程的程序时,字线的顺序是根据分页而调整。图20、图21、图22说明另一种程序,用于对整个区块进行编程。此种程序称为按照分页而进行编程。在某些实施例中,与前述的根据字线的顺序而进行编程的做法相较,此种程序可减少干扰的影响。图20说明如图17相似的NAND电路。此处较宽的箭头沿着每一个分页的偶数与奇数NAND串行而朝上或朝下。图21所示的列表说明其顺序。在此范例中,先选择一个分页后,再对该分页上的64条字线执行编程程序。此范例中的奇数分页,其编程顺序是由第63字线朝向第0字线。此范例中的偶数分页,其编程顺序与前述方向反向,而由第0字线朝向第63字线。基于图2的结构,调整方向的目的是为了维持从串行的SSL端往串行的GSL端进行编程。请参见图22,其是按分页编程流程的简化流程图。此流程开始于步骤780。在此范例中,对于一个分页上的所有字线加载缓冲区(步骤781)。其后,选择一个分页与一个存储单元群组(步骤782)。如前所述,接着,根据位线(如:SSL侧)往共享源极线的顺序选择一条字线(步骤783)。并且,使用输入数据对被选定分页、存储单元群组、字线而产生编程编码(步骤784)。将一个层的存储单元群组设定为编程,并将其他存储单元层的存储单元群组设定为禁止(步骤785)。之后,对被选择的字线与分页施加单通道多位阶编程程序(步骤786)。判断被选择的分页上的所有字线是否均完成(步骤787)。若步骤787的判断结果为否定,流程再度回到步骤783,并选择下一条字线。若步骤787的判断结果为肯定,代表所有的字线都已完成。接着,判断区块内的所有分页,或是分页上的所有存储单元群组都已经完成(步骤788)。若否,流程重新回到步骤782并选择下一个分页。若步骤788的判断结果为肯定,则此流程结束(步骤789)。请参见图23,其是另一种在编程程序中,应用单通道多位阶编程操作的示意图。此范例说明如何执行一种两个阶段的编程操作。其中,先执行一个第一个(初步)编程周期,之后再执行一个第二个(目标)编程周期。如图23所述,输入数据被用于产生编程编码(步骤790)。编程编码被用于执行第一个阶段的编程程序,其中编程编码使用初步编程验证位阶(步骤791)。之后,编程编码再度被用于执行第二阶段编程程时,在第二阶段中,可利用目标编程位阶作为单通道多位阶编程程序(步骤792)。两阶段编程操作可采用不同方式进行,以下说明几种例子。按分页与按字线编程操作亦可被应用于单位阶存储单元。采用两个阶段的编程操作时,先以一个初步编程顺序设定一个初步的临界范围,接着以一个最终编程顺序设定一个目标临界范围,让按分页编程的做法可使用较小的编程缓冲区。在两个阶段的编程程序中,数据缓冲区包含在进行两个阶段的操作时的完整数据组。按照分页编程的做法,特别是如图2所示的3D配置方式,可根据此目的而使用较小的数据组。请参见图24,其是一控制器795的特征的示意图。此图式图1中的控制器的范例,用于编程单通道多位阶编程操作,进而对每一个位线产生相对应的编程条件与禁止条件,以及,执行初步或目标编程验证的模式。输入至此逻辑的输入数据包含前述的编程编码、脉冲数目(使序列内的脉冲数量可被改变)、用于指示为第一阶段编程周期/第二阶段(标示为初步/目标)编程周期的控制信号,以及代表存储单元群组逻辑参数的控制信号。此信息可用于动态控制编程操作的参数变化,包含如图24所示的参数或其他参数(例如:被施加的通道电压的动态变化、NAND编程操作等)。图25至图29说明几种利用单通道多位阶操作的两阶段编程操作的变化。请参见图25,其是第一种在两个阶段使用单通道多位阶编程操作的示意图。图25的第一条线810代表将存储单元的区块设定为,被编程为在擦除状态范围820。第二条线代表第一阶段的编程通道,其中将目标为第二编程位阶与第三编程位阶的存储单元的临界范围,先移动至初步编程范围819;至于目标为第一编程位阶的存储单元,则维持在擦除状态范围820。第三条线代表第二阶段的单通道多位阶编程操作,其中存储单元被编程为第一编程状态821、第二编程状态822、第三编程状态823;至于不需要被编程的存储单元则维持在擦除状态范围820。如图25所述的两个阶段编程操作的参数,可能包含:将分页区分为N个存储单元群组,其中N可为1、2、3。对具有在Va与Va′范围的编程脉冲数值的存储单元层的存储单元群组,使用常数步阶ΔV3作为初步通道、使用单独的初步验证位阶Pre_PV23。使用前述变化方式(如:第二种应用OTM-2或第三种应用OTM-3_1)的一种,作为存储单元层的存储单元群组的目标通道。参考图26,其是第二种在两个阶段使用单通道多位阶编程操作的示意图。图26的第一条线810代表,将存储单元的区块设定为被编程为擦除状态范围820。图26的第二条线813代表第一阶段的编程通道,其中将目标为第一编程位阶、第二编程位阶、第三编程位阶的存储单元的临界范围,先移动至初步编程范围829。图26的第三条线814代表第二阶段的单通道多位阶编程操作。其中,存储单元被编程至第一编程状态范围821、第二编程状态范围822、第三编程状态范围82,不需被编程的存储单元则维持在擦除状态范围820。如图26所述的两个阶段编程操作的参数,可能包含:将分页区分为N个存储单元群组,其中N可为1、2、3。对存储单元层的群组提供初步通道,对于在Va至Va'范围内的编程脉冲数值,使用常数步阶电压ΔV3、使用单独的编程验证位阶Pre_PV123。对存储单元层的群组提供目标通道,使用前述讨论的各种变化的其中一种。例如第二种变化OTM-2。请参见图27,其是一种在两个阶段均使用单通道多位阶编程操作的示意图。图27的第一条线810代表,将存储单元的区块设定为被编程为擦除状态范围820。图27的第二条线815代表第一阶段的编程通道。在第一阶段的编程通道中,将目标为第一编程位阶的存储单元的阈值电压暂时先移动至第一初步范围825;将目标为第二程序式化位阶的存储单元的阈值电压暂时先移动至第二初步范围826;以及,将目标为第三编程位阶的存储单元的临界范围暂时先移动至第三初步范围827。图27的第三条线816代表,在第二阶段的单通道多位阶编程操作。此时,将存储单元编程至第一编程状态范围821、第二编程状态范围822、第三编程状态范围823。不需进行目标编程的存储单元,则维持在擦除状态范围820内。如图27所述的两个阶段编程操作的参数,可能包含:将分页区分为N个存储单元群组,其中N可为1、2、3。对具有编程脉冲数值介于Vaa与Vcc'各层的每一个存储单元群组提供初步通道时,使用一个利用初步编程验证位阶的Pre_PV1、Pre_PV2、Pre_PV3的固定的步阶ΔV3。对具有在Vaa与Vcc′范围的编程脉冲数值的层的存储单元群组,使用常数步阶ΔV3作为初步通道、使用初步编程验证位阶Pre_PV1、Pre_PV2、Pre_PV3。对存储单元层的存储单元群组而言,可以采用前述几种目标通道的变化例的一种,例如第二种变化OTM-1、OTM-2、OTM-3_1或OTM-3_2。在两个阶段的单通道多位阶的应用中,初步通道可应用前述的各种变化,例如双重OTM-1、双重OTM-2、OTM-1与OTM-3_1等。另外一种在两个阶段使用双重单通道多位阶操作的做法,可参看图28的说明。图28的第一条线810代表,将存储单元的区块设定为被编程为擦除状态范围820。图28的第二条线817代表,利用第一阶段的编程通道,将目标为第一编程位阶与第二编程位阶的存储单元的临界范围暂时先移动至第一初步范围839;以及,利用初步编程验证位阶,将目标为第三编程位阶的存储单元的临界范围移动至最终的第三编程位阶范围833。其中初步编程验证位阶被设定为,用于验证最高临界编程状态的最终编程位阶目标。图28的第三条线818代表第二阶段的单通道多位阶编程操作。其中,存储单元被由初步范围839编程为第一编程状态821与第二编程状态822。对于目标为编程至第三编程状态833的存储单元,此时并未被编程(或不需要被编程)。不需进行目标编程的存储单元,则维持在擦除状态范围820。如图28所述的两个阶段编程操作的参数,可能包含:将分页区分为N个存储单元群组,其中N可为1、2、3。对程序脉冲数值介于Vaa与Vc’的存储单元层的存储单元群组,使用初步通道。在初步通道中,对于在Vaa与Vaa′范围的脉冲,使用常数步阶电压ΔV3;以及,对于在Vaa'与Vc’范围的脉冲,使用常数步阶电压ΔV2。对于在Vaa与Vaa'范围的脉冲,将目标为第一编程位阶与第二编程位阶的存储单元的临界范围暂时先移动至初始编程验证位阶Pre_PV12。以及,对于在Vc与Vc’范围的脉冲,将目标为第三编程位阶的存储单元的临界范围,直接移动至末端编程验证位阶PV3。的参数,可能包含:将分页区分为N个存储单元群组,其中N可为1、2、3。对程序脉冲数值介于Vaa与Vc’的存储单元层的存储单元群组,使用初步通道。在初步通道中,对于在Vaa与Vaa′范围的脉冲,使用常数步阶电压ΔV3;以及,对于在Vaa'与Vc’范围的脉冲,使用常数步阶电压ΔV2。对于在Vaa与Vaa'范围的脉冲,将目标为第一编程位阶的存储单元的临界范围暂时先移动至初始编程验证位阶Pre_PV1。对于在Vbb与Vbb’范围的脉冲,将目标为第二编程位阶的存储单元的临界范围暂时先移动至初始编程验证位阶Pre_PV2。以及,对于在Vc与Vc’范围的脉冲,将目标为第三编程位阶的存储单元的临界范围,直接移动至末端编程验证位阶PV3。对具有在Va与Va′范围的编程脉冲数值的存储单元层的存储单元群组,于目标通道施加PV1并使用常数步阶电压ΔV;对具有在Vb与Vb′范围的编程脉冲数值,加PV2并使用常数步阶电压ΔV,将目标为第一编程位阶与第二编程位阶的存储单元的临界范围移动至范围821、822。未被选择的字线的通道电压在Vpasslow与Vpasshigh间动态地改变。请参见图30,其是一个两个阶段的编程操作的流程,其中,第一阶段与第二阶段其中的至少一个是单通道多位阶编程操作。进行两阶段编程操作时,控制器必须维持在两个阶段进行编程所需的数据。因此,若对一个完整的8K区块执行第一个阶段,并对此8K区块执行第二个阶段,则控制器需要使用大量的缓冲区,用以在两个阶段中,对同一列的每一个区块维持8K个存储单元的数据。图30的流程可用于减少所需的缓冲区的大小。在图30中,假设每个区块包含16个分页,同一列内的每一个区块具有两组(set)512个存储单元。则用于将数据写至两组512个存储单元。图30的流程开始于步骤900。首先加载对分页进行编程的数据缓冲区(步骤901)。其后,对一列中的每一个区块内选择一个分页。例如,对图2所示的存储器,设定适当的SSL切换(步骤902)。之后,进行一个″按照分页″的编程程序。分页编程程序由选择一第一字线开始。接着,由位线或SSL端,依序进行至源极线、GSL端(步骤903)。在当前字线进行第一阶段的编程操作(步骤904)。该程序判断当前字线是否为排序中的第一条字线(步骤905)。若是,则于步骤903选择区块内的下一条字线。若当前字线并非第一条字线,则此流程将判断当前字线是否为排序中的最后一条字线(步骤906)。若当前字线亦非最后一条字线,则对已经进行第一阶段编程的前一条字线,进行第二阶段的编程(步骤907)。若步骤906判断此字线为最后字线,则对此最后字线(步骤908)进行第二阶段编程操作。之后,对被选择分页而言,第二阶段编程流程结束(步骤909)。图30的步骤904为第一阶段编程操作,其做法可采用前述范例的期中一种,包含:使用单通道单个初步位阶操作、单通道多个初步位阶操作,或是单通道操作搭配初步位阶操作与目标位阶操作的组合。相似的,图30的步骤907、步骤908为第二阶段的编程操作,其作法可采用前述范例的期中一种,包含:被设定为目标编程验证位阶的单通道多位阶操作的变化。前述图30的例子是一个按分页的周期,可用于减少某些存储器配置产生的干扰。前述过程亦可透过“按字线”程序而进行,用以减少与控制器相关的区块操作时,需要使用的缓冲区的大小。但是,因为字线上的分页的数量,可能高于在一个分页上的字线的数量,使用″按分页(by-page)″编程可能只需要使用较小的缓冲区。本发明说明了单通道多位阶编程程序,以及增量步阶脉冲编程。其中,当字线的电压因为每一个编程脉冲而以电压步阶增加时,位线被偏压为禁止或编程。在其他实施例中,单通道多位阶编程程序可能与编程周期相关。其中使用其他类型的偏压,使利用编程脉冲产生目标存储单元的编程位阶的步骤改变。例如:当位线的电压脉冲位阶随着周期改变时,字线的电压脉冲的位阶仍可维持定值。针对特定的存储器结构与存储单元类型,亦可采用其他方式实现编程脉冲偏压的设定。此处所说明的存储器装置包含单通道多位阶编程程序,能在对高密度的多位阶存储器进行编程的操作时,大幅减少所需的编程脉冲的数量。此外,编程干扰与通道电压干扰亦得以减少。再者,编程的速度亦获得提升。为了实现多位的储存,在进行多位阶存储单元操作时,需要对脉冲序列内的每一个编程脉冲进行验证。对两个位的存储单元而言,需要进行三次的验证。对三个位的存储单元而言,需要进行七次的验证。在单通道多位阶编程程序中,可以透过删除高阈值电压验证的步骤,减少在序列中对较先的脉冲进行验证的次数;以及,透过限制低阈值电压验证的步骤,减少在序列中较迟的脉冲进行验证的次数。与已知技术所采用的,多个通道、对每个通道单独验证的方法相较,本发明能大幅改善编程的结果。对于特殊的存储器结构而言,可采用不同方式的单通道多位阶编程程序。为了减少对相邻存储单元的编程位阶产生干扰,单通道多位阶编程程序亦可被应用于阶段式的编程序列。动态通道电压会根据所施加的编程脉冲而调整,可搭配单通道多位阶编程程序而使用。单通道多位阶编程程序可被应用于阶段式的编程操作,进而减少型样效应(patterneffects)的干扰。在前述说明的实施例中,是以图2的架构说明编程操作。这些操作方式在经过调整后,可被应用于3-D存储器架构与其他类型的存储器架构。需留意的是,尽管前述实施例的说明,是以闪存(flashmemory)的编程为主,但是这些操作亦可经过调整后,进一步被应用于其他类型的存储单元。综上所述,虽然本发明已以较佳实施例揭露如上,然其并非用以限定本发明。本发明所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰。因此,本发明的保护范围当视随附的权利要求范围所界定的为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1