块擦除的非易失性存储器 发明的技术领域
本发明一般涉及非易失性存储器,本发明尤其涉及闪存装置中的擦除操作。
【发明背景】
计算机中,存储器装置通常提供为内部存储区域。有几种不同类型的存储器。一种类型的存储器是随机存取存储器(RAM)。RAM常规用作计算机环境中的主存储器。多数RAM是易失性的,这意味着它需要周期性的电刷新以保持其内容。另一种类型的存储器是闪存。闪存是一种非易失性类型的存储器。即,闪存是不要周期性的电刷新就能保持数据的存储器类型。闪存具有许多应用。例如,许多现代计算机将其基本I/O系统bios存储在闪存芯片上,从而在必要时可方便地进行更新。此外,某些数字系统已用闪存装置代替常规的大容量存储装置。特别是,个人计算机中的某些常规硬盘驱动器已由闪存代替。
常规闪存包括存储阵列,它被分成存储单元块。每个单元块以行和列的方式排列。每个单元包括能保持电荷的浮动栅极场效应晶体管。每个单元可以通过给浮动栅极充电以随机基础被电编程。通过擦除操作可以从浮动栅极将电荷去除。因此,通过浮动栅极中电荷的存在或缺失来确定单元中的数据。
使用参考单元电流来读取或验证闪存单元地状态。即,参考非易失性存储单元通过参考位线耦合到感测放大器电路。被验证的单元还通过第二位线耦合到感测放大器电路。检测位线之间的差动电流,并确定单元的编程状态。例如,可以将参考单元编程为中间状态,从而它传导约完全编程的存储单元传导的电流一半的电流,从而如果被读取的单元被编程,则它传导比参考存储单元多的电流,而如果擦除被读取的单元,它传导比参考单元少的电流。
为了将存储单元编程,诸如12伏的较高的正电压施加到单元的控制栅极。此外,当源极电压和基片电压处于接地电平时诸如6到9伏的适中的正电压施加到漏极。这些条件导致存储单元的漏极区附近沟道区中热电子注入的诱导。这些高能电子行进通过较薄的栅极氧化物向控制栅极上的正电压并在浮动栅极上聚集。电子保留在浮动栅极上并与未被编程的单元相比,用来增加单元的有效阈值电压。
在闪存中,单元以块的方式擦除。这是通过以下步骤实现的:将诸如-10到-17的负电压置于与单元块中所有单元的控制栅极耦合的字线上并将该块的源连接耦合到Vcc(电源)一段时间,诸如5伏或更高。这通常作为一脉冲或一组脉冲进行。每个脉冲创建一场,它将电子从存储器源极的浮动栅极中去除。擦除单元的速度,即擦除单元所需的脉冲数量,取决于许多变化的条件,包括脉冲的电压电平、脉冲长度和温度。普通地,闪存块中,个别存储单元以不同的速度擦除。在这种情况中,通常块中最慢的位规定块中所有单元的擦除水平。这会使块中其它单元变得过度擦除(over-erased)。例如,如果传统存储单元需要10个脉冲来擦除而可擦除块中最慢的存储单元需要30个脉冲来擦除,则在擦除最慢单元时,传统单元经受额外的20个擦除脉冲,这将可能使得其变得过度擦除。
过度擦除的单元是已被擦除超过特定点的单元。过度擦除的单元变成耗尽态。即,过多电子从浮动栅极中去除,使得浮动栅极电压变得比单元的阈值更正(morepositive)。因此,即使控制栅极处于接地电位,单元也不能被关闭。此外,即使可以被编程,过度擦除的单元会使耦合到同一列的所有存储单元被读取为被擦除的单元。
为了限制闪存块中过度擦除的单元的量,通常进行包含预编程循环、擦除循环和软编程循环的擦除操作。在预编程循环期间,首先在预定电平上将块中的所有单元编程。这样,块中所有单元的浮动栅极开始具有大约相同量的电荷。随后,擦除循环将擦除脉冲施加到块上并一行接一行地校验每个单元以确定是否所有单元都处于擦除状态。重复擦除循环直到所有单元都已被校验为被擦除的。随后,软编程循环,有时称作电压(Vt)分布循环,检查块中的每个列(位线)的电流电平,这将表示过度擦除单元是否耦合到位线。如果检测出过度擦除单元在位线中,则软编程(软编程脉冲)系统地施加到耦合到位线的单元的控制栅极上直到不能再检测到电流。
虽然软编程循环可以用来恢复过度擦除单元,但是,希望在应用软编程循环之前降低过度擦除单元的数量,因为被过度擦除的某些单元不能恢复。此外,随着每次过度擦除,会减少被过度擦除和恢复的单元的完整性。
为了上述原因,并为了下述其它原因,其中在阅读和理解本说明书时这些原因对于本技术领域中熟练的技术人员来说是显而易见的,本技术领域中需要一种闪存,它具有改善的过程来擦除具有与块中其它单元相比缓慢擦除的少量单元的闪存块。
发明概述
本发明涉及非易失性存储器装置的上述问题和其它问题,并可以通过阅读和学习以下说明书加以理解。
在一个实施例中,揭示了一种操作闪存的方法。该方法包括:擦除存储块中预定百分比的行,分析用来擦除预定百分比的擦除脉冲的数量和计算可应用到存储块上的附加擦除脉冲的可接受数量。
在另一个实施例中,揭示了一种操作闪存的方法。该方法包括:将至少一个擦除脉冲施加到块上,其中块具有按行排列的多个存储单元,在每个擦除脉冲后校验每行以确定与每行有关的存储单元是否被擦除,并当校验出块中预定数量的行已被擦除时完成块擦除,其中行的预定数量小于块中行的总数。
在另一个实施例中,揭示了一种操作闪存的方法。该方法包括:将至少一个擦除脉冲应用到闪存单元的块上,其中闪存单元的块按行排列,在应用每个擦除脉冲后校验块中每行是否被擦除,将用于校验预定数量的行已在块中被擦除的擦除脉冲的数量计数,以及将预定数量的擦除脉冲应用到块上以便尝试擦除没有校验为被擦除的行,其中擦除脉冲的预定数量是用于校验预定数量的行的擦除脉冲的数量的分数。
在另一个实施例中,揭示了一种在闪存块上进行擦除操作的方法。该方法包括:将按行排列的闪存块预先充电到预定电平,将至少一个第一阶段擦除脉冲应用到块上,在将每个第一阶段擦除脉冲应用到块后校验是否按行擦除每个存储单元,将应用到块上的脉冲的第一数量计数,其中应用到块上的脉冲的第一数量是用于校验块中多数行已被擦除的脉冲的数量,根据第一数量的分数计算第二数量,其中第二数量是应用到块上以便尝试和擦除没有校验为被擦除的行中的存储单元的附加第二阶段擦除脉冲的最大数量,将至少一个第二阶段擦除脉冲应用到块上,在将每个第二阶段擦除脉冲应用到块上后校验是否按行擦除每个存储单元,以及在第二数量的第二阶段擦除脉冲已应用到块上或所有行都被校验为被擦除时完成块擦除。
在另一个实施例中,闪存装置包括存储阵列、控制器和寄存器。存储阵列具有多个闪存单元的块。每个块中的存储单元按行排列。控制器用来控制存储阵列的存储操作而寄存器耦合到控制器以便跟踪存储单元的每行的擦除状态。
在另一个实施例中,非易失性存储器装置包括多个存储阵列、控制器和寄存器阵列。每个存储阵列具有多个闪存单元的块。此外,每个块中的闪存单元按行排列。控制器用于控制存储阵列的存储操作。控制器将数据存储在寄存器阵列中以便跟踪校验为被擦除的块中的存储单元的行。
在另一个实施例中,闪存装置包括:存储阵列和控制电路。存储阵列具有存储单元的多个可擦除块。每个块中的存储单元按行排列。控制电路用于控制存储阵列的存储操作。特别是,在第一阶段中控制电路将第一数量的擦除脉冲应用到被擦除的块而在第二阶段中将第二数量的擦除脉冲应用到块。第二阶段中应用的擦除脉冲的数量取决于第一阶段中所需的擦除脉冲的数量以便校验已被擦除的块中预定数量的行。
在再一个实施例中,闪存系统包括:处理器、多个存储阵列、控制器和多个寄存器。处理器用于提供外部擦除命令。每个存储阵列具有多个闪存单元的可擦除块。每个块中的存储单元按行排列。控制器用于从处理器接受外部擦除命令。此外,控制器在多个存储阵列中的存储单元的块上执行擦除操作。多个寄存器耦合到控制器以便跟踪校验为被擦除的存储单元的行。每个寄存器与一个存储阵列相关联。此外,每个寄存器具有多个寄存器子块。每个寄存器子块与存储单元的块相关联。此外,每个子块具有用于存储单元的相关块中每个行的寄存器存储单元。
附图概述
图1是本发明实施例的存储器装置的框图;
图2是本发明一个实施例的存储器系统的框图;
图3是本发明一个实施例的存储器装置的框图;
图4是示出现有技术中块擦除的流程图;以及
图5是本发明一个实施例的块擦除的流程图。
本发明的详细描述
在优选实施例的以下详细描述中,参考作为其一部分的附图,其中以说明实施本发明的特定优选实施例的方式示出。足够详细地描述这些实施例以使本技术领域内的熟练技术人员能实施本发明,并能理解,可以采用其它实施例并可以进行逻辑、机械和电子上的变化而不背离本发明的精神和范围。因此,以下的详细描述不进行任何限制,本发明的范围仅由权利要求书及其等效物限定。
参考图1,示出了本发明大容量存储闪存100的一个实施例的框图。图被简化以便示出与本发明的理解有关的那些元件。大容量闪存100包括闪存120。如图所示,闪存120具有非易失性存储单元阵列104。阵列104排列成多个可寻址块106(a-d)中。虽然仅示出四个可寻址块106(a-d),但可以理解,闪存阵列可以分成更多或更少的可寻址块或子块,且本发明不限于每闪存装置四个可寻址块。闪存装置120还示作具有x解码器/块擦除控制电路和y解码器电路。提供感测放大器电路116来读取或校验寻址的单元。地址缓冲器/锁存器114用来接受地址请求并耦合到x解码器电路/块擦除控制112和y解码器电路118。此外,虽然在这个实施例中,大容量存储闪存100示作具有四个闪存120、122、124和126,但可以理解,闪存的数量可以根据所需存储容量而改变且本发明不限于每个大容量存储闪存有4个闪存。
如图1所示,大容量存储闪存100具有控制器108。控制器108用来控制闪存120、122、124和126上闪存阵列的存储操作(即编程,擦除和读取操作)。例如,对于闪存120,控制器108通过地址线140耦合到地址缓冲器/锁存器114以便提供地址请求。控制器108还通过数据线142耦合到感测放大器电路116以便向控制器提供读取或校验的单元的结果。控制器108还耦合到x解码器/块擦除控制电路112以便控制存储阵列104上的擦除操作。虽然未示出,但每个闪存122、124和126具有与闪存120相同的元件。此外,闪存122、124和126的元件都以控制器108耦合到闪存120同样的方式耦合到控制器108。因此,控制器108控制每个闪存120、122、124和126。
参考图1,示出四个寄存器130、132、134和138。每个寄存器与闪存120、122、124和126的各闪存阵列关联。例如,寄存器130与闪存120上的闪存阵列104关联。在这个实施例中,寄存器130置于包含闪存120的管芯外。同样,寄存器132、134和138分别置于闪存122、124和126外。每个寄存器130、132、134和138进一步分成寄存器子块。例如,寄存器130包含寄存器子块130(a)、130(b)、130(c)和130(d)。每个寄存器子块与闪存阵列中的单元块关联。例如,寄存器子块130(a)与闪存阵列104的块106(a)关联,寄存器子块130(b)与闪存阵列104的块106(b)关联,寄存器子块130(c)与闪存阵列104的块106(c)关联而寄存器子块130(d)与闪存阵列104的块106(d)关联。虽然描述了具有四个寄存器子块的四个寄存器,但可以理解,寄存器和寄存器子块的数量将随闪存阵列的数量和每个闪存阵列中块的数量而变化,且本发明不限于具有四个寄存器子块的四个寄存器。
寄存器130、132、134和138可以称作寄存器阵列。每个寄存器子块包含多个寄存器存储单元,或跟踪存储单元,以便存储数据表示存储器的有关块中的有关行是否被校验为被擦除。即,单元块中单元的每行都具有寄存器子块中有关的寄存器存储单元以便在已擦除该行时跟踪或标记。例如,对于具有128行的存储块,有关寄存器子块将有128个寄存器存储单元用来跟踪每行的编程状态。在本发明的一个实施例中,寄存器阵列中的寄存器存储单元是易失性存储单元,诸如RAM存储单元。在另一个实施例中,寄存器阵列中的寄存器存储单元是非易失性存储单元,诸如闪存单元。
如上所述,控制器108控制每个闪存阵列的擦除操作。在一个实施例中,在将擦除脉冲施加到将被擦除的块上后,控制器108校验块中的每行。如果一行被校验为被擦除,则控制器108标记有关寄存器子块中的有关寄存器存储单元。除了跟踪哪行已被校验为被擦除,控制器还跟踪已被校验的行的数量。如果在擦除脉冲后预定数量的行没有被校验,则将进一步的擦除脉冲施加到块上。重复该过程直到控制器108校验出擦除了预定数量的行。在随后的存储操作期间不使用未校验为被擦除的行。虽然,在该实施例中没有使用每个块中的大量行,但降低了过度擦除的风险,因为施加到块上的擦除脉冲数量将不受被擦除的单元块中最慢的单元或位控制。预定数量的行通常是多数的行并通过存储器的制造进行选择并考虑了与预计平均闪存块中多少行包含慢位有关的统计数据。例如,如果行的总量是128并预计三个行可能包含慢位,则该块的行的预定数量将为125。
在另一个实施例中,控制器108试图擦除未被校验的行中的单元。在该实施例中,控制器保持跟踪用来将预定数量的行检测为擦除行的脉冲数量。随后,控制器108将该数量应用到一等式以便计算可用来尝试和擦除其余慢位同时使过度擦除块中其它单元的风险最小的附加脉冲的最大数量。该实施例考虑了在尝试擦除慢位时附加擦除脉冲将过度擦除多数单元的可能性。
在一个实施例中,等式N2=(A*N1)+B用来确定应用来尝试擦除慢位的擦除脉冲的最大数量。其中N2是擦除脉冲的最大数量,N1是用来擦除块中预定数量的行的脉冲数量,A是预定分数而B是尝试擦除慢位时使用的脉冲的最小数量。A和B通常在测试存储器后由制造商设定。参考该实施例中的等式,N2增加时,N1增加。因此,如果用大量脉冲来达到校验为被擦除行的预定数量的行,则在尝试擦除未校验的行中的慢位时可以施加更多脉冲,因为附加脉冲不太可能过度擦除块中已经擦除的单元。另一方面,如果仅用一些脉冲达到校验为擦除的预定数量的行,则在尝试擦除未校验行中的慢位时施加较少量的脉冲,因为每个脉冲更可能过度擦除已擦除的单元。以下更详细地描述结合前述内容的擦除算法。
在该实施例中,如果在已经施加N2个脉冲后,某些行仍未校验为被擦除,则在随后对存储阵列的存储操作(即,编程和读取操作)期间控制器108忽略未校验的行。在一个实施例中,控制器108通过读取有关寄存器中的存储单元来这样作。如果控制器108读取了未被标记或编程为被擦除的存储单元,则在随后的存储操作期间控制器108略过与该存储单元关联的行。在该实施例中,将与未被校验为被擦除的行关联的存储单元标注为未校验的行。
参考图2,示出了本发明的大容量存储闪存200的另一个实施例。在该实施例中,每个寄存器都在包含有关闪存的管芯内以便存储数据,它表示闪存阵列中存储器的有关块中的有关行是否被校验为被擦除。如图2所示,寄存器130设置在闪存120内。虽然未示出,但闪存122、124和128也具有关联的寄存器。控制器108耦合到大容量存储存储器200的每个寄存器以便存储和检索关于有关行的擦除状态的数据。图2还示出处理器130,它耦合到控制器130用于大容量存储存储器200的操作和测试。
虽然如上所述希望将当前发明应用到大容量闪存中,因为大容量闪存可能有大量未使用的存储空间,但本发明也可以应用到常规闪存系统中。参考图3,几何常规闪存300说明了本发明的另一个实施例。闪存300具有存储阵列350。存储阵列350示出具有四层(bank)302、304、306和340。每层302、304、306和340都包含可擦除的存储单元块(未示出)。此外,在一个实施例中,每个块进一步排列成可擦除的子块。例如,16Meg存储阵列可以排列成四个4Meg的可擦除块,其中这些块中的每一个都包含16个子块。虽然存储阵列示为仅具有四层,但可以理解,可以使用更多或更少的层,且本发明不限于四层。
如图所示,闪存300还具有x解码器/块擦除控制电路320来访问所选的行和控制块擦除操作。提供y解码器322来访问所选列。还提供感测放大器电路324来读取或校验访问的单元。闪存300还有控制电路314来控制对存储阵列350的操作,即读取、编程和擦除操作。控制电路314也可以称作控制器或状态机。闪存300也示为具有地址缓冲/锁存器316和地址计数器318。
在该实施例中,寄存器308、310、312、342耦合到控制电路314以便跟踪存储阵列350中的被擦除行。每个寄存器与存储阵列350中的一层关联。例如,寄存器308与层302关联,寄存器310与层310关联,寄存器312与层306关联而寄存器342与层340关联。虽然未示出,但每个寄存器都具有与每个存储块关联的寄存器子块,它们包含多个存储单元来存储数据,所述数据表示存储器的有关块中的有关行是否已被校验为被擦除。寄存器308、310、312、342以前述实施例中描述般实现。为了更好地理解本发明的慢位擦除算法,首先讨论现有技术的算法。
参考图4,示出现有技术的块擦除算法400的流程图。如图所示,在现有技术中,通过将块中的单元预编程到预定电平(402)来开始块擦除算法400。随后,将行地址和脉冲计数都设定为0(404,406)。随后,将擦除脉冲施加到块(408)。读取行中的每个单元(410)。随后,行被校验为被擦除(412)。
如果行没有被校验为被擦除(410),则脉冲计数增加(414)。随后校验脉冲计数以了解它是否到达最大预定数量(416)。如果校验出脉冲计数达到了脉冲的最大数量(416),则块擦除失败。如果校验出脉冲计数没有达到脉冲的最大数量(416),则将另一个擦除脉冲施加到块(408)并继续算法。
如果行被校验为被擦除(412),则行增加(418)。随后,校验行计数以了解它是否最大(420)。如果行计数不是最大(420),则读取该行的每个单元(410)并继续算法。如果行被校验为处于最大(420),则检查块的每列的电流,它表示过度擦除单元耦合其上(422)。随后,为过度擦除的单元校验块(424)。
如果该块没有过度擦除的单元(424),则块擦除是成功的。如果有过度擦除的单元(424),则用软编程尝试块的修补以恢复过度擦除的单元(426)。随后,校验修补的结果(428)。如果未被校验为成功的(428),则块具有过度擦除单元。如果修补被校验为成功的(428),则块擦除是成功的。
参考图5,示出本发明一个实施例的擦除算法500的流程图。如图所示,该算法示为具有第一阶段和第二阶段。第一阶段跟踪擦除预定数量的行所需的脉冲数量并使用寄存器来标记校验为被擦除的行。第二阶段计算并在尝试擦除在第一阶段中未被校验为被擦除的行擦除时将最大预定数量的擦除脉冲应用到块。
通过将块中的单元预编程到预定电平(502)来开始第一阶段。块中行的地址计数器被设定为-1(504)。脉冲计算设定为0(506),在有关寄存器中将所有校验标记清零(508)并将校验的行计数设定为0(510)。随后,将擦除脉冲应用到块(512)。随后,增加行(如果行达到其最大值,则行地址在第一行处开始)(514)。随后,检查寄存器来确定当前访问的行是否已经被标记成被擦除(516)。
如果该行之前已标记为被擦除(516),则将该行增加(514)且算法继续。如果该行以前没有被标记成被擦除,则校验该行中的单元以确定它们是否都被擦除(518)。如果它们都被擦除,则在与该行有关的寄存器中设定标记,随后将该行增加(514)且算法继续。如果该行没有校验为被擦除,则将脉冲计数增加(528)。随后,校验脉冲计数是否已达到最大值(503)。如果脉冲计数已达到最大值,则当前行的块擦除失败。但是,如果脉冲计数不是最大值,则将擦除脉冲施加到块(512)且算法继续。如果该行被校验出该行中的所有单元都已被擦除(520),则在有关寄存器中标记该行(522)。随后,增加校验的行的行计数(524)。然后对已校验的行的行计数进行校验看是否已达到校验的行的预定量(526)。如果校验的行的行计数没有达到预定量,则增加行(512)且算法继续。如果校验的行的行计数已达到预定量,则算法开始第二阶段。
如图所示,通过将预定等式应用到第一阶段的脉冲计数来第二阶段,以便确定在尝试擦除第一阶段中未校验为被擦除的行中单元时将应用到块上的最大擦除脉冲限制(532)。随后,增加该行(如果该行达到其最大值,则行地址在第一行处开始)(536)。随后,校验有关寄存器是否已经标记为表示该行已被擦除(538)。如果寄存器已被标记(538),则增加该行(536)且算法继续。如果寄存器还没有被标记(538),则读取有关行中每个单元的编程状态(540)。随后,校验该行,是否所有单元都已被擦除(542)。
如果该行未被校验为被擦除(542),则增加脉冲计数(544)。随后,校验脉冲计数以了解它是否处于预定等式设定的脉冲限制(552)。如果脉冲计数不处于脉冲计数限制(552),则将擦除脉冲施加到块(534)且算法继续。如果脉冲计数处于脉冲计数限制(552),则未校验的行是不可用的(554)。
如果行被校验为被擦除(542),则在有关寄存器中设定行校验标记(546)。随后,增加校验的行计数(548)。随后,校验行计数以确定是否所有的行都已标记成被擦除(550)。如果不是所有的行都已标记成被擦除(550),则增加行地址且算法继续。但是,如果所有的行都已标记成被擦除(556),则监控块的列以便确定该块是否具有任何过度擦除的单元(556)。随后,校验块的过度擦除单元(558)。
如果校验出块中没有过度擦除的单元(558),则成功地擦除了块。但是,如果校验出块中有过度擦除的单元(558),则将软编程应用到该块来恢复过度擦除的单元(560)。随后,校验块,看软编程是否成功地恢复了过度擦除的单元(562)。如果软编程是成功的(562),则已成功地擦除了块。但是,如果软编程不成功(562),则块将具有含过度擦除单元的行且对存储器的块的其它操作期间控制器或控制电路将忽略这些行。
结论
揭示了一种用于闪存块的擦除操作的方法和装置。在一个实施例中,一种方法包括擦除存储块中预定百分比的行,分析用来擦除预定百分比的擦除脉冲的数量和计算可应用到存储块上来擦除其余行的附加擦除脉冲的可接受数量。在另一个实施例中,闪存装置包括存储阵列、控制器和寄存器。存储阵列具有多个闪存单元的块。每个块中的存储单元按行排列。控制器用来控制对存储阵列的存储操作而寄存器耦合到控制器以便跟踪存储单元的每行的存储状态。
虽然这里说明和描述了特殊实施例,但本技术领域内的普通技术人员可以理解的是,计算来实现相同目的的任何配置都可以代替所示的特殊实施例。该应用旨在覆盖本发明的任何适应或变化。显然,本发明仅由权利要求书和其等效物限定。