存储器装置及操作存储器的方法与流程

文档序号:11521450阅读:346来源:国知局
本发明涉及一种高密度存储器装置,特别是涉及闪存装置的操作。
背景技术
::用于集成电路存储器(integratedcircuitmemory)的存储器技术正朝向越来越小的工艺时代(technologynode)发展,也在单一集成电路上配置越来越大的存储器阵列。正在推行的技术包括在一单一芯片上的多层的存储单元。执行在具有多层的存储单元的一三维(three-dimensional,3d)闪存上的操作包括读取、写入及擦除。一闪存通常被配置为可以在一个时间由一区块擦除(blockerase)擦除一个区块。当一个区块被擦除,在此区块中的存储单元被设定为一逻辑值,例如为“1”。在一个区块被擦除后,在此区块中的存储单元可被编程(program)为一不同的值,例如为“0”。一旦一存储单元被编程为“0”,此存储单元通过包括此已编程的存储单元的区块的一区块擦除可被改变回“1”。一但一区块中的一些存储单元,例如在一区块中的一已选择的位线(byte)或字线(word)上的存储单元,在一第一编程操作期间被编程为“0”,已知在擦除状态中的相同区块中一不同位线(byte)或字线(word)上的其他存储单元,仍可在一第二编程操作期间被编程为“0”,不需此区块一预擦除(pre-erase)。然而,高密度闪存的一个一般问题是一存储单元区块的尺寸通常是非常大的。若区块的预先擦除需要每次已被编程为0的区块中的一单一存储单元需要被改变回为1,这是不方便的。当闪存的密度提升,堆叠(stack)中的层数增加,导致(leadto)更大的区块尺寸以及擦除操作中的更多不便。因此,期待提供一个技术,允许多个写入操作改变一相同的存储单元,从一逻辑值至一不同的逻辑值,以及在每一擦除操作后亦然。技术实现要素:提供操作每一存储单元单一位的存储器的一个方法。此方法包括施加一次擦除、多次写入编程操作。一存储单元可具有一足够大的完整的阈值电压范围以被用作为多阶存储单元(multiplelevelmemorycell,mlc)。当这样的一存储单元被用作每一存储单元单一位的存储单元时,在一擦除操作后,存储单元可被编成多次,以及每次只有完整阈值电压范围的一局部且增量较高的范围被使用,直到一最后的写入操作达到完整阈值电压范围的最大值,及需要另一擦除操作。利用此操作方法,所需的区块擦除操作的数量可被减少,因为区块擦除操作是慢的而增进操作速度,以及因为擦除循环的数量减少而增进持久性。此一次擦除、多次写入的编程操作可用于各种存储单元类型、存储器结构、编程速度以及数据储存密度。提供操作每一存储单元单一位的存储器的示例方法。一存储单元组被擦除,通过设定在一第一阈值电压范围中的阈值电压,建立该组的这些存储单元中的一第一逻辑值,在存储单元组被擦除后,该感测状态参数可被设定以指示该第一读取电压以感测存储单元逻辑值。在存储单元组被擦除之后,一第一写入操作包括编程此组中第一选择的存储单元,通过设定一第二阈值电压范围中的阈值电压建立一第二逻辑值。第二阈值电压范围不同于第一阈值电压范围。一感测状态参数被保存以指示一第一读取电压以感测一存储单元逻辑值,其中该第一读取电压可以在第一阈值电压范围及第二阈值电压范围之间。在第一写入操作后,一第二写入操作包括编程此组中第二选择的存储单元,通过设定一第三阈值电压范围中的阈值电压建立该第二逻辑值。第三阈值电压范围不同于第二阈值电压范围。感测状态参数被保存以指示一第二读取电压以感测存储单元逻辑值,其中该第二读取电压可以在第二阈值电压范围及第三阈值电压范围之间。在第二写入操作后表示第一逻辑值的一阈值电压范围可与第二阈值电压范围重叠。更多的写入操作可以相似于在存储单元组上的第一及第二写入操作的方式被执行。在包括第一及第二写入操作的一些写入操作达到写入存储单元组的临界数量后,存储单元组可被擦除,以及感测状态可被设定以配置存储单元组的存储单元逻辑值,利用位于第一阈值电压范围及第二阈值电压范围之间的第一读取电压设置。第一写入操作包括利用位于第一阈值电压范围及第二阈值电压范围之间及高于第一读取电压的一第一编程验证电压编程以设定第二阈值电压范围中的阈值电压。第二写入操作包括利用位于第二阈值电压范围及第三阈值电压范围之间及高于第二读取电压的一第二编程验证电压编程以设定第三阈值电压范围中的阈值电压。第二编程验证电压有比第一编程验证电压高的电压规模(voltagemagnitude)。此方法包括施加多个编程脉冲及各别的编程验证脉冲,这些编程验证脉冲在一脉冲编程序列中的这些编程脉冲之后,递增地增加这些编程脉冲的编程电压以编程该组中的这些存储单元。在一实施例中,第二写入操作的脉冲编程序列有比第一写入操作的脉冲编程程序多的脉冲步阶(pulsestep)。在另一实施例中,脉冲编程序列在第二写入操作以比第一写入操作高的编程电压开始。在另一实施例中,比第一写入操作中大的电压步阶(voltagestep)被用在第二写入操作中,递增地增加脉冲编程序列中的编程脉冲的编程电压。在一实施例中,第二写入操作的第三阈值电压范围有不同于第一写入操作的第二阈值电压范围的宽度。在另一实施例中,在第二写入操作后,表示第一逻辑值的一阈值电压范围有一宽度,该宽度大于第一阈值电压范围。在一实施例中,第二写入操作包括编程有第一阈值电压范围中的阈值电压的组中的存储单元,以设定它们在第二阈值电压范围中的阈值电压,以及编程第二选择的存储单元以设定它们在第三阈值电压范围的阈值电压。当读取已利用如本文所述的一次擦除、多次写入编程操作编程的存储单元组中的存储单元时,一读取电压被决定以响应存储单元组的已保存感测装态参数。存储单元组的一重写计数可被增加,响应写入存储单元组的要求,若重写计数达到存储单元组的一重写阈值,存储单元组被擦除,存储单元组的重写计数被复位,以及随后存储单元组被写入。若重写计数低于重写阈值,随后存储单元组被写入,未擦除存储单元组以及未复位存储单元组的重写计数。再者,存储单元组的一感测状态参数可被保存在存储器中的一感测状态参数表中,指示一读取电压,在此读取电压感测组中的存储单元的一存储单元逻辑值。一感测状态参数可以被保存在一感测状态参数表中,此感测状态参数表可在控制存储器且在存储器外部的一控制器中,及/或耦接控制存储器且在存储器外部的一控制器的一主机系统中,以指示一读取电压,在此读取电压感测组中的存储单元的一存储单元逻辑值。本发明的其它方面和优点将在随后的附图及说明书中进行阐述。附图说明图1绘示根据本发明的实施例利用存储单元及偏压电路的一集成电路存储器的方块图,用于如本文所述的一次擦除、多次写入编程程序。图2绘示先前技术中用于编程每一存储单元单一位的存储器的一次擦除、一次写入编程程序。图3绘示用于编程每一存储单元单一位的存储器的一次擦除、多次写入编程程序的一第一实施例。图4绘示用于编程每一存储单元单一位的存储器的一次擦除、多次写入编程程序的一第二实施例。图5绘示用于编程每一存储单元单一位的存储器的一次擦除、多次写入编程程序的一第三实施例。图6绘示用于编程每一存储单元单一位的存储器的一次擦除、多次写入编程程序的一第四实施例。图7绘示在一擦除操作后,用于写入一存储单元组的一临界数量的推导。图8绘示根据一实施例的一次擦除、多次写入编程程序的一简化流程图。图9绘示一范例存储器管理系统的一方块图。【附图标记说明】10:控制器10a:感测状态参数表20:偏压安排供应电压30:地址线/地址总线40:列译码器45:字线50:记忆库译码器55:记忆库选择线60:存储器阵列65:位线70:行译码器75:数据线80:感测放大器/编程缓冲器85:数据线90:输出/输入电路100:集成电路存储器装置105:输入/输出数据线211:第一线212:第二线213:第三线214:第四线220、223、310、320、321、330、331、340、510、520、521、530、531、540、710、711、722、723、724、725:阈值电压范围621、631:第一阶段622:第二阈值电压760:存储单元数据辨识区810、820、830、840、850:流程步骤900:存储器管理系统901:文件系统909、910、911:组920:存储器转换层921:地址转换器923:废料收集器925:磨损平均器930:存储器技术装置层931:擦除管理模块932:可重写区块表933:读取功能935:编程功能937:擦除功能940:闪存芯片e:擦除状态(erasestate)p:编程状态(programstate)vev:擦除验证电压vpv、vpv1、vpv2、vpv3:编程验证电压vread1、vread2、vread3:读取电压vt:存储单元阈值电压w1:最高的范围中的最小电压-最低的范围中的最大电压w2:平均范围具体实施方式实施例的详细描述参照附图被提供。应当理解的是没有限制本技术为特定公开的结构实施例及方法的意图,但本技术可使用其他特征、元件、方法及实施例来实践。优选的实施例被描述以说明本技术,非限制由权利要求范围所定义的范围。本领域技术人员应当理解下列描述的各种等效变型。各种实施例中的相似元件通常具有相似的附图标记。图1绘示用于如本次所述的一次擦除、多次写入编程操作的一集成电路存储器装置100的一简化芯片方块图。集成电路存储器装置100包括在一集成电路基板上的一存储器阵列60以及一控制器10,存储器阵列60包括每一存储单元储存一位数据的多阶存储单元,控制器10执行在如本文所述的每一存储单元储存一位数据的多阶存储单元上的一次擦除、多次写入编程操作。一列译码器40耦接于多条字线45,且沿着存储器阵列60中的列排列。一记忆库译码器50耦接于多条记忆库选择线55(例如ssl线及gsl线)。一行译码器70耦接于沿着存储器阵列60中的行排列的多条位线65,以从存储器阵列60读取数据及写入数据至存储器阵列60。地址在从控制器10到行译码器70及列译码器40的总线30上被提供。在区块80中的一感测放大器及编程缓冲电路(programbuffercircuit)在本实施例中经由一第一数据线75耦接于行译码器70。行译码器70可包括选择地施加编程电压至存储器中的位线以响应编程缓冲中的数据值。区块80可包括感测电路,感测电路使用不同组的存储单元的感测状态参数以施加指示读取电压(indicatedreadvoltage),例如参照图3至6绘示的实施例所述的第一读取电压vreadl、第二读取电压vread2以及第三读取电压vread3。来自感测放大器/编程缓冲电路80的感测数据经由第二数据线85提供至输入/输出电路90。再者,从集成电路存储器装置100上的输入/输出端口或从其他内部或外部数据源,经由输入/输出数据线105输入数据被施加至集成电路存储器装置100、至输入/输出电路90及按顺序地至感测放大器/编程缓冲器80。输入/输出电路90驱动(drive)数据至集成电路100外部的目的地。输入/输出数据及控制讯号经由输入/输出电路90、控制器10及集成电路存储器装置100上的输入/输出端口或其他内部或外部数据源之间的总线105被移动至集成电路100,例如一通用处理器(generalpurposeprocessor)或者特定用途应用电路(specialpurposeapplicationcircuitry),或者提供由存储器阵列60支持的片上系统(system-on-a-chip)功能的模块组合。在图1绘示的实施例中,控制逻辑电路10耦接至存储器阵列60以及区块20中的电压供应器。控制逻辑电路10包括逻辑电路以控制本文所述的一次擦除、多次写入编程操作。使用一偏压安排状态机(biasarrangementstatemachine)控制逻辑电路10控制电压的应用,例如经由区块20中的电压供应器产生或提供的编程电压、编程验证(programverify)电压、读取电压及擦除电压。区块20中的电压供应器产生施加至选择的字线以编程连接至已选择的字线的存储单元的脉冲编程序列中的编程脉冲(programpulse)以及编程脉冲后的各别的编程验证脉冲,脉冲编程序列递增地增加编程脉冲的编程电压。参照由图3至6所示的实施例,对于写入操作,不同的编程验证电压位准(例如vpv1、vpv2、vpv3)由用于编程验证脉冲的区块20中的电压供应器产生,以设定阈值电压范围(例如320、330、340)中的阈值电压,建立第一、第二、第三写入操作中的第二逻辑值(例如“0”)。依据实施例,区块20中的电压供应器可在一相同的编程电压为第一写入操作及第二写入操作启动一脉冲编程序列,或者在第二写入操作以比第一写入操作高的编程电压启动一脉冲编程序列。依据实施例,区块20中的电压供应器以第一写入操作后的第一写入操作及第二写入操作的相同电压步阶,或者第二写入操作有比第一写入操作高的电压步阶,递增地增加脉冲编程序列中的编程脉冲的编程电压。对于读取操作,不同的读取电压位准(例如vread1、vread2、vread3)由用于读取脉冲的区块20中的电压供应器产生,以读取在第一、第二、第三写入操作中被编程的存储单元。控制器10可使用本领域已知的特定用途逻辑电路被执行。在替代实施例中,控制器包括一通用处理器,通用处理器可在相同的集成电路上被执行,集成电路执行一计算器程序以控制装置的操作。在其他实施例中,一特定用途逻辑电路及一通用处理器的组合可被利用以执行控制逻辑电路。集成电路存储器装置(例如100)包括一每一存储单元单一位的存储单元组(例如在存储器阵列60中),以及耦接此每一存储单元单一位的存储单元组的一控制器(例如10),控制器包括:通过设定一第一阈值电压范围中的阈值电压的擦除操作,建立存储单元中的单一位的一第一逻辑值的逻辑电路;在执行擦除操作后,通过一第一写入操作设定第一及第二逻辑值在单一位上的逻辑电路,包括包含编程组中第一选择的存储单元的第一写入操作,以通过设定一第二阈值电压范围中的阈值电压建立一第二逻辑值,第二阈值电压范围不同于第一阈值电压范围,以及保存一感测状态参数以指示一第一读取电压;在执行第一写入操作后,通过一第二写入操作设定第一及第二逻辑值在单一位的逻辑电路,第二写入操作包括编程此组中第二选择的存储单元,以通过设定一第三阈值电压范围中的阈值电压建立一第二逻辑值,第三阈值电压范围不同于第一和第二阈值电压范围,以及保存感测状态参数以指出一第二读取电压;在第一及第二写入操作被执行的次数达到写入存储单元组的临界数量后,执行擦除操作的逻辑电路;以及执行一读取操作的逻辑电路,读取操作包括施加第一及第二读取电压两者中已选择之一。可被延伸至多于两个写入操作的逻辑电路如下述的实施例说明。感测状态参数可被保存于一芯片内(on-chip)感测状态参数表(例如10a)、一芯片外(off-chip)感测状态参数表或两者之中。如图1的实施例所示,感测状态参数可被保存在集成电路100中的一芯片内感测状态参数表10a中,以指出一读取电压,在此读取电压以感测一组存储单元中的存储单元的一存储单元逻辑值。控制器10连接至感测状态参数表10a,且可对不同组的存储单元存取及更新储存在感测状态参数表10a中的感测状态参数。控制器10可包括以相似于存储单元组上的第一及第二写入操作的方式执行更多写入操作的逻辑电路,以及在包括达成用于存储单元组的一临界数量的第一及第二写入操作的一些写入操作之后擦除存储单元组的逻辑电路。在存储单元组被擦除后,控制器10可包括设定感测状态参数以指示感测存储单元逻辑值的第一读取电压的逻辑电路。在一擦除操作,已被执行在存储单元组上的一些写入操作也可被保存在感测状态参数表之中。举例来说,写入存储单元组的临界数量是8,指示存储单元组在一擦除操作后可被写入8次,随后只有三个位被要求用于保持对于一组的写入操作的数量,所以存储器开销(memoryoverhead)是轻微的。存储器阵列60可包括用以每一存储单元储存单一位的电荷捕捉存储单元,通过对应于储存电荷数量的多个编程位准的建立,依次建立存储单元阈值电压vt。在其他实施例中,存储单元可包括可编程电阻存储单元(programmableresistancememorycell),通过对应于电阻量的多层编程层级的建立,用于每一存储单元单一位。本文叙述是基于电荷捕捉存储单元的使用,例如浮动栅极闪存(floatinggateflashmemory)以及介电电荷捕捉闪存(dielectricchargetrappingflashmemory)。本技术可与其他存储单元技术一同使用。图2绘示一用于先前技术中的一次擦除、一次写入编程程序,以编程每一存储单元单一位的存储器。第一线211代表在一存储单元区块上的一擦除操作,设定区块中的所有存储单元为一较低的阈值电压范围220。此擦除操作可使用一擦除验证vev电压执行。对于具有单一位准的存储单元,一ispp程序如第二线212所示的被使用。在ispp程序中,编程验证位准vpv被设定以建议一较高临界范围223。一旦一存储单元被编程至较高的临界范围,只要通过在整个区块上执行一区块擦除操作,存储单元可被改变回较低的阈值电压范围。然而,高密度闪存的一普遍问题是存储单元区块的尺寸通常是非常大的。这是不方便的,当每次需要一完整区块的擦除操作,区块中已被编程为“0”的单一存储单元需要被改变回“1”。当闪存的密度提升,堆叠中的层数增多,导致较大的区块尺寸及在擦除操作中的更多不方便。第三线213代表存储单元区块上的一随后的擦除操作,设定区块中的所有存储单元为较低的阈值电压范围220。此擦除操作可利用擦除验证vev电压执行。一ispp程序如第四线214所示的被使用。在ispp程序中,编程验证位准vpv被设定以建立一较高的临界范围223。由于存储单元区块的尺寸通常是非常大的,当每次需要区块的预先擦除,区块中的已被编程至较高的阈值电压范围的单一存储单元需要被改变回较低的阈值电压范围,是不方便的。图3绘示一用以编程每一存储单元单一位的存储器的一次擦除、多次写入编程程序的一实施例。第一实施例可被称为一个完整的编程电压范围实施例。这个标记的实施例不意味着处理上的任何限制。如图3的最上列所示,存储单元组被擦除,通过设定第一阈值电压范围310中的阈值电压,在此组的存储单元中建立一第一逻辑值(例如“1”)。如图3的第二列所示的一第一写入操作,在此组存储单元被擦除后,包括编程此组中第一选择的存储单元,通过设定第二阈值电压范围320中的阈值电压以建立第二逻辑值(“0”)。第二阈值电压范围320不同于第一阈值电压范围310。虽然如图3所示,两相邻的阈值电压范围(例如310及320、320及330、330及340)未彼此重叠,在实际执行中,取决于一特定存储器装置中可用的阈值电压范围,两相邻的阈值电压范围可以是部份重叠。两相邻的阈值电压范围之间的这样的重叠可代表存储单元中的错误(error),以及读取电压(例如vread1、vread2、vread3),可被设计以区分两相邻的阈值电压范围。一感测状态参数被储存以表示用以感测一存储单元逻辑值的第一读取电压(例如vread1),第一读取电压可位于第一阈值电压范围310及第二阈值电压范围320之间。举例来说,感测状态参数可被储存在如参考图1的芯片内感测状态参数表10a中,以及/或如参考图9中的存储器技术装置转换层(memorytechnologydevicelayer,mtd)中,以及/或主机系统901中(图9)。第一写入操作包括使用第一阈值电压范围310及第二阈值电压范围320之间且高于第一读取电压(vread1)的一第一编程验证电压(vpv1),以设定第二阈值电压范围320中的阈值电压。一数据设定(dataset)可被储存于存储器的一缓冲器中,以编程一组存储单元,例如一存储单元页面。组中的每一存储单元可包含引起(cause)多个阈值电压范围的电荷,包括的第一阈值电压范围及第二阈值电压范围。缓冲器可以是图1所示的区块80中的编程缓冲器。数据设定指示用于组中每一存储单元的第一逻辑值(“1”)及第二逻辑值(“0”)之一。选择的存储单元由数据设定被表示为第二逻辑值。一单一位存储单元可表示逻辑值“1”或“0”。本说明书中的实施例中,第一逻辑值被叙述为逻辑值“1”以及第二逻辑值被叙述为逻辑值“0”。或者,第一逻辑值被叙述为逻辑值“0”以及第二逻辑值被叙述为逻辑值“1”。在第一写入操作后,图3的第三列所示的一第二写入操作包括编程组中第二选择的存储单元,通过设定第三阈值电压范围330中的阈值电压以建立第二逻辑值(“0”)。第三阈值电压范围330不同于第一阈值电压范围310及第二阈值电压范围320。感测状态参数被储存以表示感测存储单元逻辑值的一第二读取电压(例如vread2),第二读取电压可在第二阈值电压范围320及第三阈值电压范围330之间。在第二写入操作后,第二阈值电压范围320代表第一逻辑值(例如“1”)。第二写入操作包括使用第二阈值电压范围320及第三阈值电压范围330之间且高于第二读取电压(vread2)的一第二编程验证电压(vpv2)以设定第三阈值电压范围330中的阈值电压。在第二写入操作后,在图3的第四列所看到的第三写入操作包括编程组中第三选择的存储单元,通过设定第四阈值电压范围340中的阈值电压以建立第二逻辑值(“0”)。第四阈值电压范围340不同于第一阈值电压范围310、第二阈值电压范围320及第三阈值电压范围330。感测数据参数被储存以表示一第三读取电压(例如vread3),第三读取电压可在第三阈值电压范围330及第四阈值电压范围340之间。在第三写入操作后,第三阈值电压范围330代表第一逻辑值(例如“1”)。第三写入操作包括使用第三阈值电压范围330及第四阈值电压范围340之间且高于第三读取电压(vread3)的一第三编程验证电压(vpv3),以设定第四阈值电压范围340中的阈值电压。在第二写入操作后,表示第一逻辑值(“1”)的阈值电压范围(例如321)与第二阈值电压范围(例如320)重叠。在第三写入操作后,表示第一逻辑值(“1”)的阈值电压范围(例如331)与第三阈值电压范围(例如330)重叠。参照图3,表1说明第一实施例,以及使用5个存储单元(存储单元1-5)作为例子。表1如表1的实施例所示,在一擦除操作后,5个存储单元都被设定为表示一第一逻辑值(例如“1”)的第一阈值电压范围310中的阈值电压。在写入逻辑值“0”至存储单元2及存储单元3的一第一写入操作之后,存储单元2及存储单元3被设定为表示一第二逻辑值(例如“0”)的一第二阈值电压范围320中的阈值电压(图3)。存储单元1、存储单元4及存储单元5维持在表示第一逻辑值(例如“1”)的第一阈值电压范围内。在写入逻辑值“0”至存储单元3及存储单元4的一第二写入操作之后,存储单元3及存储单元4被设定为表示第二逻辑值(例如“0”)的一第三阈值电压范围330中的阈值电压(图3)。存储单元1及存储单元5维持在表示第一逻辑值(例如“1”)的第一阈值电压范围内。存储单元2维持在表示第一逻辑值(例如“1”)的第二阈值电压范围内。在写入逻辑值“0”至存储单元4及存储单元5的一第三写入操作之后,存储单元4及存储单元5被设定为表示第二逻辑值(例如“0”)的一第四阈值电压范围340中的阈值电压(图3)。存储单元1、存储单元2及存储单元3分别维持在表示第一逻辑值(例如“1”)的第一阈值电压范围、第二阈值电压范围及第三阈值电压范围内。更多的写入操作以相似于在组的存储单元上的第一及第二写入操作的方式被执行,例如第三写入操作。在包括第一及第二写入操作的一些写入操作达到写入组存储单元的一临界数量之后,组存储单元可被擦除,以及感测状态可被设定以利用第一阈值电压范围及第二阈值电压范围之间的第一读取电压为存储单元组设定存储单元逻辑值。关于图3描述的写入操作包括施加一脉冲编程序列中的编程脉冲及编程脉冲后的各别编程验证脉冲,递增地增加编程组中的存储单元的编程脉冲的编程电压。脉冲编程序列可以是一ispp(incrementalsteppulseprogramming)程序。ispp是一已知的技术,被叙述于“a3.3v32mbnandflashmemorywithincrementalsteppulseprogrammingscheme”,作者为suh等人,1995年发表在ieee国际固态电路研讨会(intemationalsolid-statecircuitsconference),页数128-130。在图3所示的第一实施例中,脉冲编程序列可以相同的编程电压(例如14v)开始第一写入操作、第二写入操作、第三写入操作。由于脉冲编程序列被结束在递增地较高的编程电压,从第一写入操作至一最后的写入操作,第二写入操作的脉冲编程序列有比第一写入操作的脉冲编程序列多的脉冲步阶(pulsestep),以及第三写入操作的脉冲编程序列有比第二写入操作的脉冲便程序列多的脉冲步阶。举例来说,脉冲编程序列的编程电压范围可以从用于第一写入操作的14v到18v(18v-14v=4v)、用于第二写入操作的14v到20v(20v-14v=6v),以及用于第三写入操作的14v到20v(22v-14v=8v)。因此,给予0.1v的一ispp步阶,第一实施例需要高达40、60及80个编程脉冲以设定在第一、第二、第三写入操作的各别阈值电压范围内的阈值电压。图4绘示用于编程每一存储单元单一位的存储器的一次擦除、多次写入编程程序的一第二实施例。第二实施例可以被视为一自适应编程电压范围的实施例。这个标记的实施例不意味着处理上的任何限制。第一实施例的描述(图3,表1)一般适用于图4所示的的第二实施例。图4中的相似元件具有图3中相似的图示标号。图4绘示的第二实施例不同于图3绘示的第一实施例,在第二实施例中,脉冲编程序列在比第一写入操作高的编程电压开始第二写入操作。在图4所示的第二实施例中,脉冲编程序列在比第一写入操作高的编程电压开始第二写入操作,在比第二写入操作高的编程电压开始第三写入操作。举例来说,脉冲编程序列的编程变压范围可以是从用于第一写入操作的14v至18v,从用于第二写入操作的16v到20v,以及用于第三写入操作的18v到20v。因此,脉冲编程序列可具有本质上相同的编程电压范围(例如4v),其窄于一完整的编程变压范围,例如第一实施例中第三写入操作所示的8v。举例来说。给予0.1v的一ispp步阶,需要高达40的编程脉冲设定第一、第二及第三写入操作中任何一个阈值电压范围中的阈值电压。因此,对于一给予的ispp步阶,在第二实施例中需要较第一实施例中少的编程脉冲以设定存储单元的阈值电压范围中的阈值电压。因此,有着较少编程脉冲的第二实施例能够缩短编程(写入)延迟以及减少编程扰动,换言之,尤其是对于通过电压扰动(passvoltagedisturbance)。一较低的编程扰动可导致一较低的位误差率(biterrorrate,ber),以及在自调适编程电压中的一固定数量的编程脉冲可完成编程扰动的一个小变动。图5绘示用于编程每一存储单元单一位的存储器的一一次擦除、多次写入编程程序的一第三实施例。第三实施例可被称为一可变阈值电压范围的实施例。这个标记的实施例不意味着处理上的任何限制。第一实施例的描述(图3,表1)一般适用于第三实施例。图5中的相似元件具有图3中相似的图示标号。图5绘示的第三实施例不同于图3绘示的第一实施例,在第三实施例中,比第一写入操作大的电压步阶被用于第二写入操作,以递增地增加脉冲编程序列中编程脉冲的编程电压。在图5所示的第三实施例中,比第一写入操作大的电压步阶被用于第二写入操作中,以递增地增加脉冲编程序列中编程脉冲的编程电压。相似地,比第二写入操作大的电压步阶被用于第三写入操作中,以递增地增加脉冲编程序列中编程脉冲的编程电压。如本文所述,第一、第二、第三写入操作是分别设定第二、第三及第四阈值电压范围(例如520、530、540)中的阈值电压。如图5的实施例所示,电压步阶是增加的,从第一写入操作的0.2v,到第二写入操作的0.3v,到第三写入操作的0.4v。在第二写入操作后,表示第一逻辑值(“1”)的一阈值电压范围(例如521)重叠于第二阈值电压范围(例如520)。在第三写入操作后,表示第一逻辑值(“1”)的一阈值电压范围(例如531)重叠于第三阈值电压范围(例如530)。从第一写入操作到后续的操作,当更多写入操作在存储单元上被执行,后续操作的阈值电压范围的宽度可被增加,因为较大的阈值电压的范围宽度可降低脉冲编程序列中的编程脉冲的所需数量,以及依次降低在低阈值电压状态中的存储单元的扰动。作为在脉冲编程序列中较大的电压步阶的结果,从第一写入操作到后续的操作,写入操作的阈值电压范围的宽度可被增加。举例来说,第二写入操作的第三阈值电压范围(例如530)有一宽度(例如1.0v),其大于第一写入操作的第二阈值电压范围的一宽度(例如0.8v)。相似地,第三写入操作的第四阈值电压范围(例如540)有一宽度(例如1.2v),其大于第三阈值电压范围(例如530)的一宽度(例如1.0v)。较大的阈值电压范围的宽度可降低脉冲编程序列中的编程脉冲的所需数量。举例来说,若脉冲编程序列的编程电压范围是从14v至18v(18v-14v=4v)用于第一写入操作,从14v至20v(20v-14v=6v)用于第二写入操作,及从14v至22v(22v-14v=8v)用于第三写入操作,以及电压步阶是0.2v、0.3v及0.4v分别用于第一、第二及第三写入操作,然后利用高达20个编程步阶设定第一、第二及第三写入操作中任何一个的阈值电压范围的阈值电压。举例来说,ispp序列可被配置为高达4v/0.2v=20个编程脉冲、6v/0.3v=20个编程脉冲及8.v/0.4v=20个编程脉冲,分别用于第一、第二及第三写入操作。相比之下,第一实施例(图3)中的第一、第二及第三写入操作具有跟第三实施例(图5)相同的编程电压范围(例如14v-18v、14v-20v、14v-22v),但分别需要高达40、60及80个编程脉冲。因此,在第三实施例中需要较第一实施例中少的编程脉冲以设定用于存储单元的阈值电压范围中的阈值电压,以及在低阈值电压状态的存储单元的扰动可被降低。图6绘示用于编程每一存储单元单一位的存储器的一一次擦除、多次写入编程程序的一第四实施例。第四实施例可被视为一平行移动(parallelshift)的实施例。这个标记的实施例不意味着处理上的任何限制。第一实施例的描述(图3)一般适用于第四实施例。图6中的相似元件具有图3中相似的图示标号。举例来说,脉冲编程序列的编程电压范围可以从用于第一写入操作的14v到18v、用于第二写入操作的14v到20v,以及用于第三写入操作的16v到22v。给予0.1v的一ispp步阶,高达40、60及60个编程脉冲以设定在第一、第二、第三写入操作的各别阈值电压范围内的阈值电压。平行移动的实施例描述首先编程具有第一阈值电压范围310中的阈值电压的存储单元组中的存储单元,以设定在第二阈值电压范围320中它们的阈值电压,以及接着编程组中第二选择的存储单元,以设定在第三阈值电压范围330中它们的阈值电压,其中第二阈值电压范围320高于之前的验证电压(例如vpv1)以及不同于第一阈值电压范围310。如图6的实施例所示,第二写入操作包括两个阶段。第一阶段(例如621)是编程具有第一阈值电压范围310中的阈值电压的组中的存储单元,以设定他们的阈值电压至第二阈值电压范围320。在第一阶段后,第二阶段(例如622)是编程选择的存储单元以设定它们的阈值电压在第三阈值电压范围330中。第三写入操作也包括两个阶段。第一阶段(例如631)是编程具有第二阈值电压范围320中的阈值电压的组中的存储单元,以设定它们的阈值电压至第三阈值电压范围330。在第一阶段后,第二电压(例如632)是编程选择的存储单元以设定它们的阈值电压在第四阈值电压范围340中。因此,在第一写入操作后,第一阈值电压范围310代表第一逻辑值(例如“1”),以及第二阈值电压范围320代表第二逻辑值(例如“0”)。在第二写入操作后,第二阈值电压范围320代表第一逻辑值(例如“1”),以及第三阈值电压范围330代表第二逻辑值(例如“0”)。在第三写入操作后,第三阈值电压范围330代表第一逻辑值(例如“1”),以及第四阈值电压范围340代表第二逻辑值(例如“0”)。在第二写入操作后的第二阈值电压范围可以不等于在第一写入操作后的第二阈值电压范围。反而,在第一及第二写入操作后的第二阈值电压范围大约在阈值电压vt轴上的相同区域内。在第一及第二写入操作后的第二阈值电压范围的实际内容将可能会有所不同。表2参考图6叙述平行移动的实施例,以及使用5个存储单元(存储单元1-5)作为例子。表2如表2的实施例所示,在一擦除操作后,所有的5个存储单元被设定至第一阈值电压范围310中的阈值电压(图6),表示一第一逻辑值(例如“1”)。在写入逻辑值“0”至存储单元2及存储单元3的一第一写入操作之后,存储单元2及存储单元3被设定至一第二阈值电压范围320中的阈值电压,表示一第二逻辑值(例如“0”)。存储单元1、存储单元4及存储单元5维持在表示第一逻辑值(例如“1”)的第一阈值电压范围中。用以写入逻辑值“0”至记忆到3及存储单元4的第二写入操作包括阶段1及阶段2。在阶段1后,存储单元1、存储单元4及存储单元5被设定至表示第一逻辑值(例如“1”)的第二阈值电压范围320中的阈值电压(图6)。在阶段2后,存储单元3及存储单元4被设定至表示第二逻辑值(例如“0”)的第三阈值电压范围330中的阈值电压(图6)。存储单元1、存储单元2及存储单元5维持在表示第一逻辑值(例如“1”)的第二阈值电压范围中。用以写入逻辑值“0”至记忆到4及存储单元5的第三写入操作包括阶段1及阶段2。在阶段1后,存储单元1、存储单元2及存储单元5被设定至表示第一逻辑值(例如“1”)的第三阈值电压范围330中的阈值电压。在阶段2后,存储单元4及存储单元5被设定至表示第二逻辑值(例如“0”)的第四阈值电压范围340中的阈值电压(图6)。存储单元1、存储单元2及存储单元3维持在表示第一逻辑值(例如“1”)的第三阈值电压范围中。在平行移动的实施例中,在每一写入操作后,概念上,只有一个阈值电压范围表示第一逻辑值(例如“1”),以及只有一其他阈值电压范围表示第二逻辑值(例如“0”)。举例来说,在第一写入操作后,仅第一阈值电压范围310表示第一逻辑值(例如“1”),以及仅第二阈值电压范围320表示第二逻辑值(例如“0”)。在第二写入操作后,仅第二阈值电压范围320表示第一逻辑值(例如“1”),以及仅第三阈值电压范围330表示第二逻辑值(例如“0”)。在第三写入操作后,仅第三阈值电压范围330表示第一逻辑值(例如“1”),以及仅第四阈值电压范围340表示第二逻辑值(例如“0”)。。相较之下,在第一、第二及第三实施例中,在每一写入操作后,概念上,多于一个的阈值电压范围(例如310、320、330)可表示第一逻辑值(例如“1”),而另一阈值电压范围表示第二逻辑值(例如“0”)。更具体地,在第一、第二及第三实施例中,表示第一逻辑值的阈值电压范围可包含图3及图4所示的阈值电压范围310、320及330,以及可包含图5所示的范围510、520及530。平行移动的实施例可利用本文所述的用于编程及编程验证步骤的两个页面缓冲器(pagebuffer)而被执行。一数据设定可被储存于用于编程此组存储单元的两个页面缓冲器中。在组中的每一存储单元具有多个阈值电压的范围。两个页面缓冲器可以是图1所示的区块80中的编程缓冲器中的子电路(sub-circuit)。数据设定表示用于组中的每一存储单元的第一逻辑值(“1”)及第二逻辑值(“0”)两者之一。在一写入操作中的第一步骤,例如上述的第二或第三写入操作,可编程通过储存在第一页面缓冲器中的数据设定表示第一数据值(“1”)的多个存储单元中的存储单元。在一写入操作中的第二步骤可编程通过储存在第二页面缓冲器中的数据设定表示第二数据值(“0”)的多个存储单元中的存储单元。图7绘示在一擦除操作后,用以写入一存储单元组的一临界数量的推导,其中这些存储单元能够编程至一宽的阈值电压范围。写入可以进行次数的数量取决于范围的宽度,以及可被安全地编程及擦除的范围的分割数量。如本文所述,在一些包括第一及第二写入操作的写入操作达到写入存储单元组的临界数量后,存储单元组可以被擦除。存储单元组有多个阈值电压范围,包括一最低的阈值电压范围以及一最高的阈值电压范围,临界数量可从下列公式导出:临界数量=(最高的范围中的最小电压-最低的范围中的最大电压)/(多个范围中的范围的平均范围+多个范围中的两相邻范围之间的差值(margin))。如图7所示,多个阈值电压范围(例如710至725)包括具有最大电压(例如751)的一最低的阈值电压范围(例如710)以及具有最小电压(例如752)的一最高的阈值电压范围。w1表示(最高的范围中的最小电压-最低的范围中的最大电压)。w2表示多个范围中的范围的一平均范围。一差值在多个范围中的两相邻范围之间。举例来说,“最高的范围中的最小电压”=4v,“最低的范围中的最大电压”=-1v,差值=0.2v,“平均范围”=0.8v,临界数量可被导出为:(4v-(-1v))/(0.8v+0.2v)=5。图8是根据一实施例的一一次擦除、多次写入程序的一简化流程图。照惯例,当一集成电路闪存装置从一文件系统接收一要求(request)以写入一数据设定至一存储单元组,集成电路首先擦除存储单元组中的所有存储单元,以及随后写入数据设定至组中已擦除的存储单元。一存储单元组可以是一存储单元页面或一存储单元区块。在三维nand闪存结构中,存储器包括多个存储单元页面,以及为了本描述的目的,一个页面可以被定义为可平行耦接一组n条位线及可被一组m条字线选择的存储单元。在此结构中,一个页面可被定义为包括在由单一ssl交换器选择的半导体条带的一堆叠中的存储单元,其中每一条带经由阶梯衬垫(stairsteppad)耦接一对应的位线。一个页面的定义以及应用以存取一页面的解碼可变化以适合一特定存储器结构。存储器结构可包括平行耦接此组n条位线的一页面编程缓冲器以用于本文所述的编程及编程验证步骤中。在一实施例中,可以有四个平面的存储单元,每页面四条位线。在其他实施例中,可以是其他数量的平面。举例来说,可以是八个平面,有着八个偶数堆叠及八个奇数堆叠,使一存储器区块包括总共16个页面,每页八条位线。在本技术的一实施例中,一次擦除、多次写入程序包含(involve)判断在写入数据设定至一组的存储单元之前,是否执行一擦除操作在存储单元组上,以响应写入存储单元组的一要求。如图8的实施例所示,在步骤810,一集成电路(例如图1的100),举例来说,从一文件系统接收写入一数据设定至存储单元组的一要求。在步骤820,回显请求,用于存储单元组的一重写计数递增。集成电路(例如图1的100)可具有多个存储单元组,以及多个组的每一个可具有它自己的重写计数。集成电路中每一组的存储单元的重写计数可储存在芯片内或集成电路中以及更新,例如在集成电路存储器装置100(图1)中的感测状态参数表10a中。另外地,每一组的存储单元的重写计数可被储存在芯片外或集成电路100外部的一个位置以及被更新,例如在存储器技术装置层930(图9)及/或文件系统901(图9)中。在步骤830,判断是否重写计数达到组存储单元的一重写阈值。若重写计数达到组存储单元的重写阈值(步骤830:是),随后在步骤840,擦除组存储单元、复位组存储单元的重写计数,以及后续在步骤850,从文件系统写入数据设定至组存储单元。若重写计数低于重写阈值(步骤830:否),随后在步骤850,从文件系统写入数据设定至组存储单元,不擦除组存储单元及不复位组存储单元的重写计数。在另一实施例中,当重写计数达到组存储单元的重写计数(步骤830:是),要求所指示的数据设定可被写入至具有较要求所指的组存储器少的重写计数的另一存储单元组,以及另一存储单元组的重写计数可以被递增。另一存储单元组可与要求所指的存储单元组在相同存储器区块中或不同存储单元区块中。在此另一实施例中,未立即擦除存储单元组以及未立即复位存储单元组。当区块中多于一个或所有存储单元组的重写计数已达到重写阈值,存储单元区块可被擦除及区块中的存储单元组的重写计数可被复位。因此,擦除周期的次数可被降低以及存储器的耐久性可被改善。图9是一范例存储器管理系统900的一方块图,包括一文件系统(filesystem)901、闪存转换层(flashtranslationlayer)920、存储器技术装置层(memorytechnologydevicelayer)930以及闪存芯片(flashmemorychip)940。文件系统901耦接于闪存转换层920。闪存转换层包括地址转换器(addresstranslator)921、废料收集器(garbagecollector)923以及磨耗平均器(wearleveler)920。闪存转换层920耦接存储器技术装置层930。存储器技术装置层930是一硬件抽象层(hardwareabstractionlayer),用于处理基本(primitive)操作,例如闪存芯片940的读取、编程及擦除。存储器技术装置层930包括一擦除管理模块(erasemanagementmodule)931,其包括一可重写区块表(rewritableblocktable)932。擦除管理模块931耦接存储器技术装置层930中的读取功能933、编程功能935及擦除功能937。存储器技术装置层930耦接闪存芯片940。存储器技术装置层930使闪存转换层920能够在闪存芯片的顶部上运作,没有闪存转换层920的任何改变(modification)。可重写区块表932是一数据结构,维持闪存芯片940中的存储单元组的重写计数。一闪存芯片可包括存储器组,其中一存储器组可以是一存储器页面或一存储器区块。假设一存储单元组在一擦除操作后可被重写八次,只需要三个位以维持一组的一重写计数,所以存储器负担是轻微的。如图9的实施例所示,在一擦除操作后及在组909上的任何写入操作之前,组909的重写计数是0,以及组909已经准备好数据写入(参照图3至6所示的第一写入)。相似地,组910已经被重写七次,意思就是此组在最后的物理擦除之后已经被重写七次,以及组911已经被重写三次,意思就是此组在最后的物理擦除后已经被重写三次。存储器管理系统900截获来自上层,例如闪存转换层920(ftl),的所有操作,以及基于维持在可重写区块表932中的信息修改到底层闪存芯片940的读取/写入/擦除指令。举例来说,若由ftl接收的一指令是对组910的一擦除指令,系统900将发出一物理擦除命令至组910以及复位其重写计数为0。这是因为组910已达到一重写阈值,例如8。相反地,若从存储器转换层920发出一擦除指令至组909,系统900将不会发出一物理擦除指令至一闪存芯片中的组909,仅增加组909的重写计数,由0至1,称为虚拟擦除(virtualerase)。因此,当一更大的重写阈值可以被支持,更多的擦除操作可以被移除,因此闪存芯片的生命周期可被延长以及闪存芯片的效能可被改善。再者,存储单元组的一感测状态参数可被储存在控制且位于闪存芯片940外部的一控制器中,例如存储器技术装置层930,以指示读取电压,在此读取电压上感测组中的存储单元的一存储单元逻辑值。另外地,存储单元组的一感测状态参数可被储存在一主机系统中,例如文件系统901,以指示一读取电压,在此读取电压上感测组中的存储单元的一存储单元逻辑值。编程操作的实施例已参照与一次擦除、多次写入编程技术的变化一同使用的一三维nand闪存阵列架构。三维nand闪存阵列结构在2013年8月6日颁布的美国专利号8,503,213中描述,题为“memoryarchitectureof3darraywithalternatingmemorystringorientationandstringselectstructures”,其在此引入作为参考。三维nand闪存阵列结构包括堆叠的存储器结构,致使阵列具有密集配置的多个存储单元。操作可被调整以用于各种二维及三维存储器结构,以及迄今为止的存储器结构。再者,编程操作的实施例已参照闪存描述。操作也可被调整以用于其他存储单元类型。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1