CN101317231A - 用于编程/擦除非易失性存储器的方法和设备 - Google Patents
用于编程/擦除非易失性存储器的方法和设备 Download PDFInfo
- Publication number
- CN101317231A CN101317231A CNA2006800442547A CN200680044254A CN101317231A CN 101317231 A CN101317231 A CN 101317231A CN A2006800442547 A CNA2006800442547 A CN A2006800442547A CN 200680044254 A CN200680044254 A CN 200680044254A CN 101317231 A CN101317231 A CN 101317231A
- Authority
- CN
- China
- Prior art keywords
- voltage
- read current
- voltage threshold
- current
- nvm
- 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
Images
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
-
- 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
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching 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
Landscapes
- Read Only Memory (AREA)
Abstract
一种具有非易失性存储器(NVM)(14)的集成电路(10),包括阈值选择器(28),它在编程/擦除循环的第一部分期间选择多个读电流/电压阈值中的第一读电流/电压阈值,并且它在所述编程/擦除循环的第二部分期间选择多个读电流/电压阈值中的第二读电流/电压阈值,其中多个读电流/电压阈值中的第一读电流/电压阈值与多个读电流/电压阈值中的第二读电流/电压阈值是不同的。编程/擦除循环的第一部分在时间上发生在编程/擦除循环的第二部分之前。多个读电流/电压阈值中的第二读电流/电压阈值小于多个读电流/电压阈值中的第一读电流/电压阈值。
Description
技术领域
本发明涉及非易失性存储器,更具体地,涉及用于编程/擦除非易失性存储器的方法和设备.
背景技术
能够被多次编程和擦除的非易失性存储器(NVM)通常被使用于各种各样的应用。通常,NVM具有在保证满足数据保持技术规范的同时可以执行的编程/擦除循环的最大数目。
附图说明
本发明借助于附图作为例子被示出了,但并不由附图限制,图中相同的附图标记表示相同的单元,并且附图中:
图1以框图形式示出了根据本发明的一个实施例的集成电路;
图2以框图形式示出了根据本发明的一个实施例的图1的NVM14;
图3以流程图形式示出了根据本发明的一个实施例的用于擦除NVM的方法;
图4以曲线图形式示出了根据本发明的一个实施例的被编程的和被擦除的位的分布;以及
图5以曲线图形式示出了根据本发明的一个实施例的各种擦除脉冲。
本领域技术人员将会看到,图中的单元是为了简化和清晰而示出的,并不一定按比例画出。例如,图中的单元的一些尺寸可能相对于其它单元被放大,以帮助增进对本发明的实施例的理解。
具体实施方式
NVM单元的数据保持力(data retention)是预定的数据值保持正确地被存储使得可以从NVM单元将其检索的时间量。NVM单元的持久性(endurance)是在NVM单元的状态不再可以可靠地改变之前可以执行的最大数目的编程/擦除循环。应当注意,有各种各样的技术可被用来在测试期间或使用(例如,冗余性、纠错码等等)期间当一个或多个NVM单元失效(发生故障)时扩展NVM阵列的耐久性(viability)。
NVM可以以任何期望的粒度被编程。虽然许多NVM按字节被编程,但替换的实施例可以按位、字、长字、扇区、块、或任何其它期望的方式被编程。NVM可以以任何期望的粒度被擦除。虽然许多NVM按扇区被编程,但替换的实施例可以按位、字节、字、长字、块、或任何其它期望的方式被擦除。
当单个NVM阵列30(见图2)必须满足对于由第一组客户所要求的时间保持力的最大技术规范,而同时也满足对于由第二组客户所要求的持久性的最大技术规范时,引起一个问题。
作为一个例子,第一组客户可能正在存储软件代码,例如用于处理器12的指令(见图1),它们必须在产品的寿命内(例如,二十年)保持为被存储的。这样的产品的一个例子是使用NVM来存储用来执行引擎控制的软件代码的汽车。这个第一组客户可能不需要NVM执行许多编程/擦除循环。在本例中,如果NVM存储软件代码,则一旦软件代码初始地被存储在NVM中,软件代码可能就从不需要被擦除和重写。大多数应用中通常不使用自修改软件代码。
作为第二个例子,第二组客户可以存储数据值,例如非易失的但可变的数据,它们需要在相对较短的时间期间内(例如,一个月到五年)保持为被存储的。这样的产品的一个例子是使用NVM来存储用来代表引擎调整信息的数据值的汽车。这个第二组客户将需要NVM执行许多编程/擦除循环(例如,每当汽车点火被关断和接通时进行一次编程/擦除循环)。在本例中,如果NVM存储数据值,则很可能数据值将被新的编程/擦除循环刷新,因此不需要具有长的数据保持时间。
另外,一些客户在同一个应用中将需要两种类型的NVM。例如,上述的汽车客户将需要一些NVM具有对于软件代码的长的数据保持力,并且还需要一些NVM具有对于频繁被重写的数据值的高持久性。
图1以框图形式示出了根据本发明的一个实施例的集成电路(IC)10。在所示出的实施例中,IC 10具有处理器12、NVM 14、可选的其它存储器16、一个或多个可选的其它模块18、和可选的外部总线接口20,它们每个都被双向地耦合到总线22。正如这里使用的,术语总线是指可被用来传送一种或多种类型的信息如数据、地址、控制或状态的多个信号或导体。
在一些实施例中,IC 10是独立的NVM,并且没有实施电路12、16和18。在这种情形下,外部总线接口20包括用于NVM 14的地址与数据总线驱动器。在其它实施例中,IC 10是微控制器,它具有NVM14作为在微控制器上可得到的仅仅一个电路。任何一个或多个电路12、14、16、18和20可被耦合到一个或多个集成电路端子(未示出),它们可被用来与IC 10的外部通信。在一些实施例中,外部总线24可被用来与在IC 10的外部的电路(未示出)通信。其它存储器16可以是任何类型的存储器。其它模块18可包括被用于期望的目的的电路。在其它模块18中的电路的一些例子包括定时器电路、通信接口电路、显示器驱动器电路、模拟-数字转换器、数字-模拟转换器、电源管理电路等等。
图2以框图形式示出了根据本发明的一个实施例的图1的NVM14。在一个实施例中,NVM 14包括具有N块的NVM阵列42,其中N可以是大于或等于1的整数。虚线被用来表示NVM阵列42的块。这些块可以具有任何尺寸。对应于每个块的控制信息可被存储在每个块内。
NVM 14还包括控制电路32、读电路40、验证电平发生器26、验证电平选择器28、读验证电路30、电压发生器36、电压选择器48、编程/擦除脉冲发生器64、和其它NVM电路38。验证电平发生器26把多个验证电平经由导体51-53提供到验证电平选择器。验证电平选择器28根据从控制电路32经由导体44接收的选择信号把这些验证电平之一经由导体46提供到读验证电路30。读电路40被双向耦合到NVM阵列42并把实际读电流经由导体60提供到读验证电路30。读验证电路30被双向耦合到控制电路32并把验证结果经由导体62提供到控制电路32。控制电路32被双向耦合到验证电平发生器26、其它NVM电路38、电压发生器36和编程/擦除脉冲发生器64。电压发生器36把多个电压经由导体54-56提供到电压选择器48。电压选择器48根据从控制电路32经由导体50接收的选择信号把这些电压之一经由导体58提供到编程/擦除脉冲发生器64。控制电路32包括编程/擦除脉冲计数器34、每个电压的最大脉冲计数68和最大总脉冲计数70。每个电压的最大脉冲计数68和最大总脉冲计数70可被存储在控制电路32内或在NVM 14或IC 10内的存储电路,例如寄存器。
编程/擦除循环可包括编程NVM阵列42的全部或一部分,或擦除NVM阵列42的全部或一部分。在一个实施例中,擦除是指把位设置为逻辑电平1,而编程是指把适当的位按需要设置为逻辑电平1或逻辑电平0,用来代表要被存储在NVM阵列42中的期望的信息。在一个实施例中,编程NVM阵列42的一部分包括:用来首先擦除要被编程的部分的所有位的擦除循环,随后改变需要被改变的那些位的状态,以代表要被存储的期望的信息。另外,应当注意,正如这里所使用的,编程/擦除循环可以仅仅包括擦除操作。在一个实施例中,整个块可以一次擦除,或替换地,可以一次擦除多于或少于一个块。另外,在替换实施例中,擦除可以指把位设置为逻辑电平0,而不是逻辑电平1。
在编程或擦除NVM阵列42的一部分后,执行随后的验证,以确定编程/擦除循环是成功的。为了进行验证,执行对被编程/擦除的位的读取,并与验证电平进行比较,以确定位是否被正确地编程/擦除。例如,读验证电路30可被用来验证在NVM阵列42中所选择的位单元的正确的擦除。读电路40包括多个读出放大器(未示出),它们被用来读出要被验证的所选择的位单元。读电路40感测每个所选择的位单元,并把实际读电流经由导体60提供到读验证电路30。(应当注意,读电路40的电路和操作在本领域是已知的,所以这里不作更详细地描述。)读验证电路30然后比较经由导体60接收的实际读电流与经由导体46提供的所选择的验证电平,并确定实际读电流是否大于或等于所选择的验证电平。如果是的话,则相应的擦除位单元的所存储的数值被验证为逻辑电平1,表示该擦除是成功的。
在一个实施例中,一次可以验证一组位单元的擦除。例如,在其中NVM阵列42的一部分的所有的位单元被擦除的场合下,在擦除后它们读被预期为逻辑电平1。在本例中,读电路40可以感测NVM阵列42的该部分的每个位单元,并仅仅把最小实际读电流提供到读验证电路30。如果在这种情形下的最小实际读电流大于或等于所选择的验证电平,则在擦除部分中所有的位单元的擦除是成功的。
图4以曲线图形式示出了可以在NVM阵列42中存在的零(“0”)位和一(“1”)位的示例性分布以及各种不同的验证电平VL1-VLN。y轴代表位数,而x轴代表位的位单元电流。所以,在“0”位(存储有逻辑电平零的位单元)的情形下,每个位单元的位单元电流小于0/1读阈值电流。在“1”位(存储有逻辑电平1的位单元)的情形下,每个位单元的位单元电流大于0/1读阈值电流(否则,其电流小于0/1读阈值电流的任何“1”位会被误读为“0”位)。所以,具有小于0/1读阈值电流的电流的任何位单元被读为存储“0”,而具有大于0/1读阈值电流的电流的任何位单元被读为存储“1”。然而,为了保证强的一位,希望“1”位位单元电流比0/1读阈值电流大预定的量。例如,在图4上,对于最佳操作,“1”位的位单元电流应当大于验证电平VL1。所以,如图4所示,“1”位的分布出现在VL1的右面。然而,随着时间消逝,“1”位的分布开始向左面移动,更接近于0/1读阈值,这是由于例如由编程/擦除循环造成的对于器件氧化物的损坏。
如图4所示,应当注意,“1”位的分布可能移到更接近于0/1读阈值,但仍旧至少远离预定的量,正如由各个其它验证电平VL2-VLN表示的(其中N可以是任何整数值)。如果例如验证电平VL4,而不是VL1,被用来验证“1”位,则更多的位将“通过”,有效地存储“1”,这是因为需要较小的位单元电流来认为是有效的“1”位。然而,如果位单元电流仅仅超过VL4,而不超过VL1-VL3,则“1”位实际上是在NVM恶化到不再能被可靠地编程的程度之前剩下较短的寿命的较弱的“1”位。所以,在一个实施例中,尽可能用验证电平VL1来验证“1”位,并且当不再可能时,可以代之以使用较小的验证电平如VL2-VLN来验证“1”位。因此,有可能扩展NVM阵列42的寿命。
回到图2,应当注意,读验证电路30可以使用各种验证电平之一(由验证电平选择器28提供)来验证“1”位。例如,验证电平发生器26可以生成N个验证电平(例如,对应于图4的VL1-VLN),并把它们经由导体51-53提供到验证电平选择器28。然后,电平选择器28可以根据经由导体44从控制电路32接收的选择信号选择这些验证电平之一,并把所选择的验证电平经由导体46提供到读验证电路30,以用于实际进行验证。然后,读验证电路30比较从读电路40接收的实际读电流与这个所选择的验证电平,并把结果经由导体62提供到控制电路32。控制电路32的操作将参照图3的流程图更详细地讨论。
现在参照图2和5描述执行擦除操作来擦除NVM阵列42的一部分的编程/擦除循环的例子。在一个实施例中,例如通过编程/擦除脉冲发生器64生成多个擦除脉冲,以擦除NVM阵列42的一部分。这些脉冲的例子示出于图5中。在一个实施例中,施加具有近似第一擦除电压(EV1)的多个脉冲(例如脉冲100),随后施加具有近似第二擦除电压(EV2)的多个脉冲(例如脉冲102),随后施加具有近似第三擦除电压(EV3)的多个脉冲(例如脉冲104),等等。在一个实施例中,在第一擦除电压(例如EV1)的每个脉冲后,执行验证,以确定擦除脉冲是否成功。如果不成功,则提供具有相同的擦除电压的另一个擦除脉冲,然后再次进行验证。在进行的验证过程验证了该擦除成功的任何时候,编程/擦除循环结束。然而,如果在执行同一个擦除电压下预定数目的脉冲(例如所有的脉冲100)之后,擦除仍旧不成功,则提供更高擦除电压(例如EV2)的脉冲。再次地,在这个更高的擦除电压下的每个脉冲之后,执行验证,以查明擦除是否成功,以及如果是的话,则编程/擦除循环在这时成功地结束。然而,如果在执行这个较高的擦除电压下预定数目的脉冲(诸如所有的脉冲102)之后,擦除仍旧不成功,则提供还更高的擦除电压(例如EV3)的脉冲。
这个过程继续进行,直至成功的擦除被验证为止或直至达到最大的总脉冲计数值为止。例如,如果已完成所有的脉冲106(意味着,已完成所有的脉冲100,102,104,…106),而验证仍旧不能表示成功的擦除,则编程/擦除循环以没有成功的擦除结束(即,失败的擦除)。在一个实施例中,在移到更高的擦除电压之前按每个擦除电压提供的脉冲的预定数目是相同的。例如,对于每个擦除电压可以提供5个脉冲的最大值,最大总脉冲数是20。然而,在替换实施例中,在移到更高的擦除电压之前按每个擦除电压提供的脉冲的数目是不同的。这些数值可以被存储在例如图2的每个电压的最大脉冲计数62和最大总数脉冲计数70。可替换地,这种类型的信息可被存储在NVM阵列42的每个块内,其中每个块可以使用不同的计数。另外,擦除脉冲计数器34可包括任何数目的计数器或其它电路来跟踪每个擦除电压的脉冲数目和总脉冲数。应当注意,具有越来越高的擦除电压的脉冲的使用可以导致对于NVM阵列42较小的损害。
所以,应当注意,每个编程/擦除循环可以使用多个不同的擦除电压和多个不同的验证电平。例如,验证电平选择器28可以在编程/擦除循环的第一部分期间选择第一验证电平,然后在编程/擦除循环的第二部分(它在时间上出现在第一部分之后)期间选择第二验证电平(如果例如在第一验证电平下的擦除脉冲是不成功的)。所以,在编程/擦除循环的第一部分期间,读验证电路30可以比较第一实际读电流与第一验证电平,并且在编程/擦循环的第二部分期间,读验证电路30可以比较第二实际读电流与第二验证电平。
在所示出的实施例中,图2的其它NVM电路38包括NVM 14的操作所需的所有其它电路。在一个实施例中,其它NVM电路38具有电荷泵、高压稳压器、高压开关、字线驱动器、源线驱动器、行解码器、列解码器、到总线22的接口、寄存器和对于NVM 14的功能所期望的任何其它电路(未示出)。应当注意,对于一个实施例,其它NVM电路38可以以传统的方式操作。另外,应当注意,类似于读验证电路30的电路可被用来验证“0”位,其中把“0”位的位单元电流与典型地小于0/1读阈值电流的验证电平进行比较,以便确定正确性。另外,在替换实施例中,具有小于0/1读阈值电流的电流的位单元可以对应于“1”位,而具有大于0/1读阈值电流的电流的那些位单元可以对应于“0”位。
图3以流程图形式示出了根据本发明的一个实施例的擦除和验证过程。可以用在NVM阵列42外部的激励源来发起流程80的擦除操作。这样的外部的激励源的一个例子可以是发起NVM 14内的擦除的处理器12(见图1)。流程从方框82开始,其中选择初始擦除电压和初始验证电平。例如,初始地,控制电路32可以指示验证电平选择器28(例如经由导体44)从验证电平发生器选择第一验证电平(例如,图4的VL1)。同样地,控制电路32可以指示电压选择器48(例如经由导体50)从电压发生器36选择第一擦除电压(例如,EV1)。
流程然后前进到方框84,在其中通过使用所选择的擦除电压(在方框82选择的)提供擦除脉冲。例如,编程/擦除脉冲发生器64可以使用由电压选择器48提供的擦除电压来生成脉冲,例如,如图5所示。应当注意,控制电路32还可以把诸如与脉冲持续时间有关的控制信息提供到编程/擦除脉冲发生器64。这个第一脉冲被提供到NVM阵列42,以便擦除NVM阵列42的所选择的部分(其中所选择的部分可以由其它NVM电路38指示,如本领域所已知的)。
回到图3,流程然后前进到方框86,在其中通过使用所选择的验证电平来验证该擦除。例如,一旦由脉冲发生器64提供脉冲,读验证电路30就可以验证该擦除,正如以上参照图2描述的。例如,读电路40可以把实际读电流提供到读验证电路30,读验证电路30把该实际读电流与来自验证电平选择器28的所选择的验证电平进行比较。流程然后前进到判定菱形框88,其中确定实际读电流是否大于或等于所选择的验证电平。如果是的话,则流程前进到方框90,它表示成功的擦除,并因此而完成编程/擦除循环。也就是说,在方框90,完成流程80的擦除操作80。如果在判定菱形框88中,确定实际读电流不大于或等于所选择的验证电平,则流程前进到判定菱形框92。
在判定菱形框92,确定是否达到所选择的电压电平下擦除脉冲的最大数目。如果不是的话,流程回到方框84,在其中提供在相同的所选择的电压电平下的另一个擦除脉冲,并以相同的验证电平执行验证(在方框86)。如果在判定菱形框92,确定已达到在第二电压电平下擦除脉冲的最大数目,则流程前进到判定菱形框94。例如,为了作出判定菱形框92的判定,控制电路32可以比较跟踪在当前擦除电压下的脉冲数目的第一擦除脉冲计数器的计数值与对于当前的擦除电压的最大脉冲计数(例如它可以作为每个擦除电压的最大脉冲计数68的一部分而被存储)。
在判定菱形框94,确定是否达到最大总擦除脉冲数。例如,控制电路32可以比较跟踪在当前的编程/擦除循环中总的脉冲数目的第二擦除脉冲计数器的计数值与最大总脉冲计数70,以作出这个判定。如果已达到最大总擦除脉冲数,则流程前进到方框96,这表示当前的编程/擦除循环以不成功的擦除(即,失败的擦除)结束。应当注意,在擦除或编程期间的失败可以是由于在NVM阵列42中和/或其它NVM电路38中的电路。
然而,如果在判定菱形框94中还没有达到最大总擦除脉冲数,则流程前进到方框98,其中继续进行当前的编程/擦除循环。在方框98,选择较高的擦除电压和较低的验证电平,然后流程回到方框84。例如,如果在方框82的初始擦除电压和验证电平分别对应于EV1和VL1,则在方框98,更高的擦除电压和更低的验证电平可以分别对应于EV2和VL2。利用这个新的更高的擦除电压,更强的擦除脉冲被提供到NVM阵列42以执行擦除。而且,在这个更高的擦除电压下每个擦除脉冲之后,使用较低的验证电平来执行验证。这个较低的验证电平可以使得读验证电路30更容易验证成功的擦除。也就是说,每个编程/擦除循环可以使用多个不同的擦除电压和多个不同的验证电平。通过使用逐渐增高的擦除电压(例如,EV1,EV2,…,EVN)和逐渐降低的验证电平(例如,分别为VL1,VL2,…,VLN),擦除可以以这样的方式被执行和验证,该方式使得无论什么应用,由编程/擦除循环造成的损害最小化并保证对于NVM阵列中每个位单元达到最佳数据保持和持久性能。
应当注意,可以选择擦除电压和验证电平的任何序列。例如,在要被使用的擦除电压的序列中的每个擦除电压可以均匀地间隔开。可替换地,它们可以不等地间隔开,使得例如从EV1到EV2的跳跃可以小于从EV2到EV3的跳跃。同样地,每个擦除电压可能不一定大于先前的擦除电压。类似地,在要被选择的验证电平的序列中的每个验证电平可以均匀地间隔开,或不均匀地间隔开。同样地。每个验证电平可能不一定低于先前的验证电平。在一个实施例中,擦除电压的序列在13伏开始,每次递增200毫伏直到14伏,如下:13伏,13.2伏,13.4伏…14伏(分别对应于EV1,EV2,EV3,…EVN),而验证电平的序列在30微安开始,每次增减4微安直到10微安,如下:30微安,26微安,22微安,…10微安(分别对应于VL1,VL2,VL3,…VLN)。然而,如上所述,对于每个擦除电压和验证电平可以使用许多不同的序列。
还应当注意,对于一个实施例,验证电平是参考电流,把它与来自NVM单元的实际读电流进行比较。替换实施例可以使用不同于参考电流的某个其它的量来代表验证电平。例如,验证电平可以是参考电压。另外,参考值可以与不同于读电流的某个其它的量进行比较。例如,验证电平可以是参考电压,它与NVM单元电压(例如,晶体管阈值电压)进行比较。替换实施例可以使用任何期望的电路特性来代表验证电平。所以,在一个实施例中,验证电平可被称为读电流/电压阈值,而实际读电流可被称为实际读电流/电压。另外,在一个实施例中,验证电平选择器28可被称为阈值选择器。
应当注意,NVM 14可包括不同于图2所示的结构的其它的结构。例如,验证电平发生器26和验证电平选择器28可以以各种方式被实施。在一个实施例中,验证电平发生器26可以能够生成任何数目的验证电平(电流或电压,取决于期望的比较类型),并且验证电平选择器28然后可以根据来自控制电路32的选择信号选择这些验证电平之一。例如,验证电平选择器28可以从各种所生成的验证电平中进行选择,或可以选择在验证电平发生器26内的要被使能的电路以生成所选择的验证电平。可替换地,这些功能可以被合并到单个模块中。在一个实施例中,每个后继的验证电平可以根据初始的验证电平或任何其它先前的验证电平生成。参照验证电平发生器26和验证电平选择器28描述的相同的替换例也分别适用于电压发生器36和电压选择器48。另外,控制电路32可以根据需要提供任何类型的控制信号以表示选择和生成哪个验证电平和擦除电压。
另外,任何类型的已知的电路可被用来实施NVM 14的部分。例如,任何类型的电流/电压电平发生器可被用来实施验证电平发生器26和电压发生器36。类似地,任何类型的电路可被用来实施选择器28和48的选择功能(例如,多路复用器)。另外,已知的电路可被用来实施编程/擦除脉冲计数器34的计数器,以及实施编程/擦除脉冲发生器64。另外,控制电路32可以以在处理器12上运行的软件被实施,或作为实现例如流程80的控制的硬件而被实施,或作为硬件和软件的组合而被实施。控制电路32的部分也可以在整个NVM 14中分布和定位,并且可能没有如图2所示被集中。控制电路32也可以被用来提供控制信息和信号到与NVM 14的任何功能有关的NVM 14的任何部分。另外,应当注意,这里描述的NVM 14的特定部分,例如发生器26和36、选择器28和48、读验证电路30、编程/擦除脉冲发生器64、和控制电路32,也可以执行或帮助执行NVM 14的其它功能,例如编程或验证“0”位。还应当注意,本发明的实施例可适用于可被编程和擦除多次的任何类型的NVM。
本发明的一个实施例涉及一种用于编程/擦除非易失性存储器(NVM)的方法,包括:使用第一擦除电压发起NVM的至少一部分的擦除操作,选择第一读电流/电压阈值,确定该NVM的至少一部分的第一实际读电流/电压,和比较第一实际读电流/电压与第一读电流/电压阈值。如果第一实际读电流/电压低于第一读电流/电压阈值,则该方法还包括把至少一个擦除脉冲施加到NVM的该至少一部分,选择第二读电流/电压阈值,确定该NVM的至少一部分的第二实际读电流/电压,和比较第二实际读电流/电压与第二读电流/电压阈值。如果第二实际读电流/电压不低于第二读电流/电压阈值,则完成擦除操作。第一读电流/电压阈值与第二读电流/电压阈值是不同的。
在另一个实施例中,该至少一个擦除脉冲包括第一组多个第一擦除脉冲。第一组多个第一擦除脉冲包括N个擦除脉冲,其中N可以由被存储在NVM中的数值确定。第一组多个第一擦除脉冲中的每一个可以具有大约第一电压。
在再一个实施例中,如果第二实际读电流/电压不低于第二读电流/电压阈值,则该方法还可包括把第二组多个第二擦除脉冲施加到NVM的该至少一部分,其中每个第二擦除脉冲可以具有大约第二电压,第二电压不同于第一电压。第二电压可以大于第一电压。第二组多个可以与第一组多个具有相同的数目。如果第一组多个加上第二组多个达到预定的最大总擦除脉冲数,并且如果第二实际读电流/电压低于第二读电流/电压阈值,则NVM可被认为有故障的。
在另一个实施例中,第二读电流/电压阈值小于第一读电流/电压阈值。
另外的实施例涉及一种具有非易失性存储器(NVM)的集成电路,包括阈值选择器,它在编程/擦除循环的第一部分期间选择多个读电流/电压阈值中的第一读电流/电压阈值,并且它在所述编程/擦除循环的第二部分期间选择多个读电流/电压阈值中的第二读电流/电压阈值,其中多个读电流/电压阈值中的第一读电流/电压阈值与多个读电流/电压阈值中的第二读电流/电压阈值是不同的。
在另一个实施例中,编程/擦除循环的第一部分在时间上发生在编程/擦除循环的第二部分之前,并且多个读电流/电压阈值中的第二读电流/电压阈值小于多个读电流/电压阈值中的第一读电流/电压阈值。
在再一个实施例中,该集成电路还包括用于在编程/擦除循环的第一部分期间比较第一实际读电流/电压与多个读电流/电压阈值中的第一读电流/电压阈值的读验证电路,所述读验证电路还在所述编程/擦除循环的第二部分期间比较第二实际读电流/电压与多个读电流/电压阈值中的第二读电流/电压阈值,其中所述读验证电路被耦合到所述阈值选择器。在再一个实施例中,集成电路还包括擦除脉冲发生器,如果第一实际读电流/电压低于多个读电流/电压阈值中的第一读电流/电压阈值,则所述擦除脉冲发生器把至少一个第一擦除脉冲施加到NVM,如果第二实际读电流/电压低于多个读电流/电压阈值中的第二读电流/电压阈值,则所述擦除脉冲发生器还把至少一个第二擦除脉冲施加到NVM。在再一个实施例中,该至少一个第一擦除脉冲包括具有第一电压的第一组多个擦除脉冲,该至少一个第二擦除脉冲包括具有第二电压的第二组多个擦除脉冲。第二电压可以高于第一电压。
另一个替换实施例涉及一种非易失性存储器(NVM),包括:NVM阵列;用于生成多个读电流/电压阈值的装置;用于在编程/擦除循环的第一部分期间选择多个读电流/电压阈值中的第一读电流/电压阈值和用于在编程/擦除循环的第二部分期间选择多个读电流/电压阈值中的第二读电流/电压阈值的装置;用于在编程/擦除循环的第一部分期间比较第一实际读电流/电压与多个读电流/电压阈值中的第一读电流/电压阈值和在编程/擦除循环的第二部分期间比较第二实际读电流/电压与多个读电流/电压阈值中的第二读电流/电压阈值的装置;以及用于如果第一实际读电流/电压低于多个读电流/电压阈值中的第一读电流/电压阈值则提供第一组多个第一擦除脉冲到NVM阵列并且如果第二实际读电流/电压低于多个读电流/电压阈值中的第二读电流/电压阈值则提供第二组多个第二擦除脉冲到NVM阵列的装置。
在再一个实施例中,编程/擦除循环的第一部分在时间上发生在编程/擦除循环的第二部分之前,并且多个读电流/电压阈值中的第二读电流/电压阈值小于多个读电流/电压阈值中的第一读电流/电压阈值。在另一个实施例中,第一组多个第一擦除脉冲具有第一电压,并且第二组多个第二擦除脉冲具有第二电压。在再一个实施例中,第二电压高于第一电压,以及在又一个实施例中,第二组多个与第一组多个具有相同的数目。
在以上的说明书中,参照具体的实施例描述了本发明。然而,本领域技术人员将会看到,可以作出各种修改和改变,而不脱离如在所附权利要求中阐述的本发明的范围。因此,该说明书和附图被视为说明性的,而不是限制性的,并且所有的修改都打算包括在本发明的范围内。
以上通过具体的实施例描述好处、其它优点和对于问题的解决方案。然而,好处、优点、对于问题的解决方案和可以使得任何好处、优点、或解决方案出现或变为更显著的任何单元,并不被视为任何的或所有的权利要求的关键的、所需要的、或必要的特征或单元。正如这里使用的,术语“包括”或它的任何其它变例,期望覆盖非排他的包括,使得包括一系列单元的过程、方法、物品、或设备不仅仅包括那些单元,而且还可包括没有明显列出的或对于这样的过程、方法、项目或设备固有的其它单元。
Claims (20)
1.一种用于编程/擦除非易失性存储器(NVM)的方法,包括:
使用第一擦除电压发起NVM的至少一部分的擦除操作;
选择第一读电流/电压阈值;
确定NVM的所述至少一部分的第一实际读电流/电压;
比较第一实际读电流/电压与第一读电流/电压阈值;
如果第一实际读电流/电压低于第一读电流/电压阈值,则执行以下步骤:
把至少一个擦除脉冲施加到NVM的所述至少一部分;
选择第二读电流/电压阈值;
确定NVM的所述至少一部分的第二实际读电流/电压;
比较第二实际读电流/电压与第二读电流/电压阈值;以及
如果第二实际读电流/电压不低于第二读电流/电压阈值,则完成擦除操作,
其中第一读电流/电压阈值与第二读电流/电压阈值是不同的。
2.如权利要求1所述的方法,其中所述至少一个擦除脉冲包括第一组多个第一擦除脉冲。
3.如权利要求2所述的方法,其中所述第一组多个第一擦除脉冲包括N个擦除脉冲,其中N可以由存储在NVM中的值确定。
4.如权利要求2所述的方法,其中所述第一组多个第一擦除脉冲中的每一个具有大约第一电压。
5.如权利要求4所述的方法,还包括:
如果第二实际读电流/电压低于第二读电流/电压阈值,则执行以下步骤:
把第二组多个第二擦除脉冲施加到NVM的所述至少一部分,
其中每个第二擦除脉冲具有大约第二电压,并且
其中第二电压不同于第一电压。
6.如权利要求5所述的方法,其中第二电压大于第一电压。
7.如权利要求5所述的方法,其中第二组多个与第一组多个具有相同的数目。
8.如权利要求5所述的方法,其中如果第一组多个加上第二组多个达到预定的最大总擦除脉冲数,并且如果第二实际读电流/电压低于第二读电流/电压阈值,则NVM被认为已发生故障。
9.如权利要求1所述的方法,其中第二读电流/电压阈值小于第一读电流/电压阈值。
10.一种具有非易失性存储器(NVM)的集成电路,包括:
阈值选择器,它在编程/擦除循环的第一部分期间选择多个读电流/电压阈值中的第一读电流/电压阈值,并且在所述编程/擦除循环的第二部分期间选择多个读电流/电压阈值中的第二读电流/电压阈值,
其中多个读电流/电压阈值中的第一读电流/电压阈值与多个读电流/电压阈值中的第二读电流/电压阈值是不同的。
11.如权利要求10所述的集成电路,其中编程/擦除循环的第一部分在时间上发生在编程/擦除循环的第二部分之前,并且多个读电流/电压阈值中的第二读电流/电压阈值小于多个读电流/电压阈值中的第一读电流/电压阈值。
12.如权利要求10所述的集成电路,还包括:
读验证电路,用于在编程/擦除循环的第一部分期间比较第一实际读电流/电压与多个读电流/电压阈值中的第一读电流/电压阈值,所述读验证电路还在所述编程/擦除循环的第二部分期间比较第二实际读电流/电压与多个读电流/电压阈值中的第二读电流/电压阈值,其中所述读验证电路被耦合到所述阈值选择器。
13.如权利要求12所述的集成电路,还包括:
擦除脉冲发生器,如果第一实际读电流/电压低于多个读电流/电压阈值中的第一读电流/电压阈值,则所述擦除脉冲发生器把至少一个第一擦除脉冲施加到NVM,如果第二实际读电流/电压低于多个读电流/电压阈值中的第二读电流/电压阈值,则所述擦除脉冲发生器还把至少一个第二擦除脉冲施加到NVM。
14.如权利要求12所述的集成电路,其中所述至少一个第一擦除脉冲包括具有第一电压的第一组多个擦除脉冲,其中所述至少一个第二擦除脉冲包括具有第二电压的第二组多个擦除脉冲。
15.如权利要求14所述的集成电路,其中第二电压高于第一电压。
16.一种非易失性存储器(NVM),包括:
NVM阵列;
用于生成多个读电流/电压阈值的装置;
用于在编程/擦除循环的第一部分期间选择多个读电流/电压阈值中的第一读电流/电压阈值并用于在编程/擦除循环的第二部分期间选择多个读电流/电压阈值中的第二读电流/电压阈值的装置;
用于在编程/擦除循环的第一部分期间比较第一实际读电流/电压与多个读电流/电压阈值中的第一读电流/电压阈值并在编程/擦除循环的第二部分期间比较第二实际读电流/电压与多个读电流/电压阈值中的第二读电流/电压阈值的装置;以及
用于如果第一实际读电流/电压低于多个读电流/电压阈值中的第一读电流/电压阈值则提供第一组多个第一擦除脉冲到NVM阵列并且如果第二实际读电流/电压低于多个读电流/电压阈值中的第二读电流/电压阈值则提供第二组多个第二擦除脉冲到NVM阵列的装置。
17.如权利要求16所述的NVM,其中编程/擦除循环的第一部分在时间上发生在编程/擦除循环的第二部分之前,并且其中多个读电流/电压阈值中的第二读电流/电压阈值小于多个读电流/电压阈值中的第一读电流/电压阈值。
18.如权利要求16所述的NVM,其中第一组多个第一擦除脉冲具有第一电压,并且第二组多个第二擦除脉冲具有第二电压。
19.如权利要求18所述的NVM,其中第二电压高于第一电压。
20.如权利要求19所述的NVM,其中第二组多个与第一组多个具有相同的数目。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/290,321 | 2005-11-30 | ||
US11/290,321 US7236402B2 (en) | 2005-11-30 | 2005-11-30 | Method and apparatus for programming/erasing a non-volatile memory |
PCT/US2006/060671 WO2007111688A2 (en) | 2005-11-30 | 2006-11-08 | Method and apparatus for programming/erasing a non-volatile memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101317231A true CN101317231A (zh) | 2008-12-03 |
CN101317231B CN101317231B (zh) | 2012-03-07 |
Family
ID=38087275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800442547A Active CN101317231B (zh) | 2005-11-30 | 2006-11-08 | 用于编程/擦除非易失性存储器的方法和设备 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7236402B2 (zh) |
JP (1) | JP5160441B2 (zh) |
KR (1) | KR101285576B1 (zh) |
CN (1) | CN101317231B (zh) |
TW (1) | TWI435330B (zh) |
WO (1) | WO2007111688A2 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101789264A (zh) * | 2009-01-23 | 2010-07-28 | 海力士半导体有限公司 | 操作非易失性存储器的方法 |
CN102034539A (zh) * | 2010-10-25 | 2011-04-27 | 上海宏力半导体制造有限公司 | 纳米晶体器件编程/擦除的方法 |
CN103390424A (zh) * | 2012-05-08 | 2013-11-13 | 北京兆易创新科技股份有限公司 | 一种存储器的擦除/编程方法及装置 |
CN103632725A (zh) * | 2012-08-24 | 2014-03-12 | 北京兆易创新科技股份有限公司 | 一种快闪存储器的擦除方法和装置 |
CN103810055A (zh) * | 2012-11-12 | 2014-05-21 | 飞思卡尔半导体公司 | 编程具有错误校正码(ecc)的非易失性存储器(nvm)系统 |
CN105845180A (zh) * | 2015-01-30 | 2016-08-10 | 旺宏电子股份有限公司 | 存储器电路及其操作方法 |
CN107665724A (zh) * | 2016-07-27 | 2018-02-06 | 北京兆易创新科技股份有限公司 | 一种存储单元的擦除方法 |
CN108932963A (zh) * | 2017-05-25 | 2018-12-04 | 西部数据技术公司 | 固态硬盘的物理安全擦除 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2874732A1 (fr) * | 2004-08-31 | 2006-03-03 | St Microelectronics Sa | Procede de programmation de cellules memoire incluant une detection des degradations de transconductance |
US7397703B2 (en) * | 2006-03-21 | 2008-07-08 | Freescale Semiconductor, Inc. | Non-volatile memory with controlled program/erase |
US20090199058A1 (en) * | 2008-02-06 | 2009-08-06 | Christoph Seidl | Programmable memory with reliability testing of the stored data |
US7903462B1 (en) * | 2008-04-04 | 2011-03-08 | Link A Media Devices Corporation | E/P durability by using a sub-range of a full programming range |
KR101423612B1 (ko) * | 2008-09-16 | 2014-07-25 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 동작 방법, 그리고 그것을포함하는 메모리 시스템 |
KR101038991B1 (ko) * | 2009-03-10 | 2011-06-03 | 주식회사 하이닉스반도체 | 메모리 영역의 균등한 사용을 위한 반도체 스토리지 시스템및 그 제어 방법 |
US8264890B2 (en) * | 2009-04-09 | 2012-09-11 | Sandisk Technologies Inc. | Two pass erase for non-volatile storage |
KR20110126408A (ko) | 2010-05-17 | 2011-11-23 | 삼성전자주식회사 | 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템 및 그것의 프로그램 방법 |
US8705283B2 (en) * | 2011-07-13 | 2014-04-22 | Vincenzo Ferragina | Erase techniques and circuits therefor for non-volatile memory devices |
US9679652B2 (en) * | 2015-05-04 | 2017-06-13 | Phison Electronics Corp. | Threshold based multi-level cell programming for reliability improvement |
US20240177788A1 (en) * | 2022-11-30 | 2024-05-30 | Sandisk Technologies Llc | Adaptive erase voltages for non-volatile memory |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4943948A (en) | 1986-06-05 | 1990-07-24 | Motorola, Inc. | Program check for a non-volatile memory |
US5268870A (en) | 1988-06-08 | 1993-12-07 | Eliyahou Harari | Flash EEPROM system and intelligent programming and erasing methods therefor |
US5268319A (en) | 1988-06-08 | 1993-12-07 | Eliyahou Harari | Highly compact EPROM and flash EEPROM devices |
US5361227A (en) * | 1991-12-19 | 1994-11-01 | Kabushiki Kaisha Toshiba | Non-volatile semiconductor memory device and memory system using the same |
JP3348466B2 (ja) * | 1992-06-09 | 2002-11-20 | セイコーエプソン株式会社 | 不揮発性半導体装置 |
JPH10228784A (ja) * | 1997-02-12 | 1998-08-25 | Mitsubishi Electric Corp | 不揮発性半導体記憶装置 |
JP3781240B2 (ja) * | 1998-09-07 | 2006-05-31 | 株式会社ルネサステクノロジ | 不揮発性半導体メモリおよびそれを内蔵した半導体集積回路 |
US6400603B1 (en) | 2000-05-03 | 2002-06-04 | Advanced Technology Materials, Inc. | Electronically-eraseable programmable read-only memory having reduced-page-size program and erase |
JP2001319486A (ja) * | 2000-05-12 | 2001-11-16 | Mitsubishi Electric Corp | 不揮発性半導体記憶装置 |
JP2002100192A (ja) * | 2000-09-22 | 2002-04-05 | Toshiba Corp | 不揮発性半導体メモリ |
US6643181B2 (en) | 2001-10-24 | 2003-11-04 | Saifun Semiconductors Ltd. | Method for erasing a memory cell |
JP4040405B2 (ja) * | 2002-09-20 | 2008-01-30 | 富士通株式会社 | 不揮発性半導体記憶セルの制御方法、および不揮発性半導体記憶装置 |
KR100496866B1 (ko) * | 2002-12-05 | 2005-06-22 | 삼성전자주식회사 | 미프로그램된 셀들 및 과프로그램된 셀들 없이 균일한문턱 전압 분포를 갖는 플레쉬 메모리 장치 및 그프로그램 검증 방법 |
JP4426868B2 (ja) * | 2003-04-04 | 2010-03-03 | 株式会社ルネサステクノロジ | 不揮発性半導体記憶装置および半導体集積回路装置 |
JP2005276428A (ja) * | 2005-04-11 | 2005-10-06 | Toshiba Corp | 不揮発性半導体記憶装置 |
-
2005
- 2005-11-30 US US11/290,321 patent/US7236402B2/en active Active
-
2006
- 2006-11-08 JP JP2008543553A patent/JP5160441B2/ja not_active Expired - Fee Related
- 2006-11-08 CN CN2006800442547A patent/CN101317231B/zh active Active
- 2006-11-08 KR KR1020087012943A patent/KR101285576B1/ko not_active IP Right Cessation
- 2006-11-08 WO PCT/US2006/060671 patent/WO2007111688A2/en active Application Filing
- 2006-11-10 TW TW095141602A patent/TWI435330B/zh not_active IP Right Cessation
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101789264A (zh) * | 2009-01-23 | 2010-07-28 | 海力士半导体有限公司 | 操作非易失性存储器的方法 |
CN101789264B (zh) * | 2009-01-23 | 2015-02-11 | 海力士半导体有限公司 | 操作非易失性存储器的方法 |
CN102034539A (zh) * | 2010-10-25 | 2011-04-27 | 上海宏力半导体制造有限公司 | 纳米晶体器件编程/擦除的方法 |
CN103390424A (zh) * | 2012-05-08 | 2013-11-13 | 北京兆易创新科技股份有限公司 | 一种存储器的擦除/编程方法及装置 |
CN103632725B (zh) * | 2012-08-24 | 2016-08-10 | 北京兆易创新科技股份有限公司 | 一种快闪存储器的擦除方法和装置 |
CN103632725A (zh) * | 2012-08-24 | 2014-03-12 | 北京兆易创新科技股份有限公司 | 一种快闪存储器的擦除方法和装置 |
CN103810055B (zh) * | 2012-11-12 | 2018-06-26 | 恩智浦美国有限公司 | 编程具有错误校正码(ecc)的非易失性存储器(nvm)系统 |
CN103810055A (zh) * | 2012-11-12 | 2014-05-21 | 飞思卡尔半导体公司 | 编程具有错误校正码(ecc)的非易失性存储器(nvm)系统 |
CN105845180A (zh) * | 2015-01-30 | 2016-08-10 | 旺宏电子股份有限公司 | 存储器电路及其操作方法 |
CN105845180B (zh) * | 2015-01-30 | 2019-12-10 | 旺宏电子股份有限公司 | 存储器电路及其操作方法 |
CN107665724A (zh) * | 2016-07-27 | 2018-02-06 | 北京兆易创新科技股份有限公司 | 一种存储单元的擦除方法 |
CN108932963A (zh) * | 2017-05-25 | 2018-12-04 | 西部数据技术公司 | 固态硬盘的物理安全擦除 |
CN108932963B (zh) * | 2017-05-25 | 2020-01-24 | 西部数据技术公司 | 固态硬盘的物理安全擦除 |
Also Published As
Publication number | Publication date |
---|---|
CN101317231B (zh) | 2012-03-07 |
WO2007111688A2 (en) | 2007-10-04 |
US20070121387A1 (en) | 2007-05-31 |
KR20080080511A (ko) | 2008-09-04 |
KR101285576B1 (ko) | 2013-07-15 |
TWI435330B (zh) | 2014-04-21 |
JP2009518766A (ja) | 2009-05-07 |
WO2007111688A3 (en) | 2008-04-24 |
US7236402B2 (en) | 2007-06-26 |
TW200733117A (en) | 2007-09-01 |
JP5160441B2 (ja) | 2013-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101317231B (zh) | 用于编程/擦除非易失性存储器的方法和设备 | |
JP2807203B2 (ja) | 電気的にプログラム可能なメモリ及びメモリへのデータ書き込み方法 | |
CN101040344B (zh) | 可编程存储器电路及改进其单元阵列中数据保持的方法 | |
CN101496109B (zh) | 具有多块擦除模式的非易失性存储器及其方法 | |
CN100573720C (zh) | 快闪存储器装置的编程方法 | |
CN101501782B (zh) | 具有被控编程/擦除的非易失性存储器 | |
CN101297372B (zh) | 用于编程/擦除非易失性存储器的方法和设备 | |
US6778443B2 (en) | Non-volatile semiconductor memory device having memory blocks pre-programmed before erased | |
US20100008145A1 (en) | Method of programming nonvolatile memory device | |
WO2006025089A1 (ja) | 不揮発性記憶装置の消去方法、および不揮発性記憶装置 | |
KR100954949B1 (ko) | 불휘발성 메모리 장치의 멀티 레벨 셀 프로그램 방법 | |
EP1233421B1 (en) | Method for refreshing stored data in an electrically erasable and programmable non-volatile memory | |
EP2667382A1 (en) | Erasing a non-volatile memory (NVM) system having error correction code (ECC) | |
EP0900440B1 (en) | Flash memory device with multiple checkpoint erase suspend logic | |
CN109509503A (zh) | 编程非易失性存储器的方法及存储器系统 | |
EP1782426B1 (en) | Self-adaptive program delay circuitry for programmable memories | |
KR20100027781A (ko) | 불휘발성 메모리 장치의 소거 방법 및 그를 이용한 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |