CN100587841C - 非易失存储器器件及其编程方法 - Google Patents
非易失存储器器件及其编程方法 Download PDFInfo
- Publication number
- CN100587841C CN100587841C CN02826781A CN02826781A CN100587841C CN 100587841 C CN100587841 C CN 100587841C CN 02826781 A CN02826781 A CN 02826781A CN 02826781 A CN02826781 A CN 02826781A CN 100587841 C CN100587841 C CN 100587841C
- Authority
- CN
- China
- Prior art keywords
- threshold voltage
- unit
- memory cell
- programming
- voltage levels
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 29
- 238000012795 verification Methods 0.000 claims description 49
- 238000004590 computer program Methods 0.000 description 6
- 238000009826 distribution Methods 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 238000007667 floating Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 206010048669 Terminal state Diseases 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
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/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
-
- 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/12—Programming 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
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
Abstract
编程非易失存储器器件包括识别数据缓冲器中用于存储多个阈值电压电平中特定一个的地址,每一个电平由唯一的信号模式表示,然后对与所识别的地址相关联的阵列存储器单元施加脉冲以将阵列存储器单元编程为所述特定的阈值电压电平。对每一个阈值电压电平重复进行识别和施加脉冲。随后校验每个阵列存储器单元是否被编程为正确表示该单元对应的信号模式的阈值电压电平。
Description
技术领域
本发明涉及用于编程非易失存储器器件的方法。
背景技术
对于通常的计算机系统,非易失半导体存储器是一种基本的构块。多级电可擦可编程只读存储器(“多级EEPROM”)是一类非易失半导体存储器。
一些存储器单元存储表示一比特信息的信号。这样的存储器可以被设置为两种状态之一,每个表示一个二进制元素“1”或“0”。
与此相反,多级单元能够存储表示不只一个比特的信号,并且可以被设置为多于两个状态中的任何一个。每个状态都对应于比特的模式,单元的不同状态由唯一的电压阈值电平区分。
“编程”指的是将多级存储器单元设置为多级存储器单元可能的状态之一。可以通过对多级存储器单元施加预定电压和时间的脉冲来完成编程。提供脉冲功率的装置被称为“编程泵”,一次能被编程的单元的数目被称为“编程带宽”。
发明内容
根据本发明的一个方面,提供了一种用于对存储器件进行编程的方法。该方法包括:通过定义在数据缓冲器中的地址子集和在所述数据缓冲器中的所述地址子集中确定每个状态的期望数目的单元来识别所述数据缓冲器中用于存储多个阈值电压电平中特定一个的地址,每一个所述阈值电压电平由唯一的信号模式表示;提供对所述期望数目的单元施加脉冲所需的足够电流;以及对与所述所识别的地址相关联的阵列存储器单元施加脉冲以对所述阵列存储器单元进行编程;对每一个所述阈值电压电平重复所述识别步骤和所述施加脉冲步骤;随后校验每个阵列存储器单元是否被编程为正确表示该单元对应的信号模式的阈值电压电平;增加所述阈值电压电平;使用所述增加的阈值电压电平对未正确编程的存储器单元重新施加脉冲;在每个阈值电压电平,重复进行所述增加步骤以及对未正确编程的存储器单元重新施加脉冲的步骤;以及随后重新校验每个阵列存储器单元是否被编程为正确表示所述对应的唯一信号模式的阈值电压电平。
根据本发明的另一个方面,提供了一种存储器件。该存储器件包括:数据缓冲器;存储器单元阵列;被耦合到所述存储器单元阵列的编程泵;被耦合到所述数据缓冲器、所述存储器单元阵列和所述编程泵的处理器,所述处理器包括:定义单元,用于定义在所述数据缓冲器中的地址子集;第一确定单元,用于在所述数据缓冲器中的所述地址子集中确定每个电平状态的期望数目的单元以识别所述数据缓冲器中用于存储多个阈值电压电平中特定一个的地址,每一个所述阈值电压电平由唯一的信号模式表示;第二确定单元,用于确定对所述期望数目的单元施加脉冲所需的足够电流;其中,所述编程泵用于使用由所述处理器所确定的电流对所述存储器单元阵列施加脉冲,所述处理器还包括:第一控制单元:用于使所述第一确定单元和所述编程泵对每一个所述阈值电压电平重复进行所述识别和所述施加脉冲;校验单元,用于校验每个阵列存储器单元是否被编程为正确表示该单元对应的信号模式的阈值电压电平;第二控制单元:用于增加所述阈值电压电平,并利用所述增加的阈值电压电平而使所述编程泵对未正确编程的存储器单元重新施加脉冲;第三控制单元:在每个阈值电压电平,使所述第二控制单元重复进行所述增加以及使所述编程泵对未正确编程的存储器单元重新施加脉冲;以及第四控制单元:使校验单元重新校验每个阵列存储器单元是否被编程为正确表示所述对应的唯一信号模式的阈值电压电平。
根据本发明的另一个方面,提供了一种用于对存储器件进行编程的方法。该方法包括:对存储器阵列中的第一多个存储器单元编程,所述第一多个存储器单元被识别来在所述被识别的存储器单元的栅极端接收第一阈值电压;对第二多个存储器单元编程,所述第二多个存储器单元被识别来接收所述第一阈值电压;以及在所述存储器单元被编程为所述第一阈值电压之后,对第三多个存储器单元编程,所述第三多个存储器单元被识别来接收第二阈值电压;对每一个所述阈值电压电平重复识别步骤和施加脉冲步骤;随后校验每个阵列存储器单元是否被编程为正确表示该单元对应的信号模式的阈值电压电平;增加所述阈值电压电平;使用所述增加的阈值电压电平对未正确编程的存储器单元重新施加脉冲;在每个阈值电压电平,重复进行所述增加步骤以及对未正确编程的存储器单元重新施加脉冲的步骤;以及随后重新校验每个阵列存储器单元是否被编程为正确表示所述对应的唯一信号模式的阈值电压电平。
附图说明
图1图示了存储器器件;
图2A-2C图示了存储器器件状态的另一种表示;
图3图示了对存储器器件编程的方法的流程图;以及
图4A-4F图示了图3的编程方法的增量结果。
具体实施方式
如图1所示,存储器器件120可以被制作在单个半导体衬底上,并且包括存储器阵列125、行解码器130、列解码器135、感应电路140、参考阵列145、控制引擎150、电压开关155和命令接口160。
存储器器件120通过在地址线165接收地址信号,并且通过双向数据线170接收和发送数据。使用存储器阵列125内的非易失存储器单元存储数据。存储器阵列125可以包括任何类型的具有可编程阈值电压的存储器单元。这样的存储器单元的例子包括具有捕获电介质或浮动栅的单元。在一个例子中,一些存储器单元可以具有选择栅、浮动栅、源极和漏极。这样的存储器单元可以作为具有随着对浮动栅充电而增加的阈值电压的场效应晶体管。如果存储器器件120是非易失的,那么控制引擎150可以包括写缓冲器152,其包括用于暂时存储对存储器阵列125进行编程的数据的静态随机存储器(SRAM)。(mv)的阈值电压范围,而状态1和状态2每个具有仅500mv的状态宽度。图2C示出了根据单元电流Id的与图2B等效的状态分布。
在单元被编程后,校验单元是否被编程到正确的电压阈值电平。校验失败的单元被重新施加脉冲。比如在编程带(band)末端的具有较大宽度的状态能够比在带中间被更狭窄限制的状态在更少的脉冲后被编程。
如图1所示,控制引擎150控制对存储器阵列125的单元进行擦除和编程。在一个实施例中,控制引擎150包括微代码控制的处理器,该微代码被被存储在片上存储器中。或者,控制引擎150可以被实现为状态机或使用组合逻辑实现。控制引擎150也可以被实现为在外部对存储器器件120的操作进行控制的半导体器件。
控制引擎150通过控制行解码器130、列解码器135、感应电路140、参考阵列145、编程泵154、电压开关155来对存储器阵列125进行控制。电压开关155对读取、编程和擦除存储器阵列125中的单元所需的各个电压电平进行控制。用于读取、擦除和编程的用户命令通过命令接口160被传送到控制引擎150。用户通过数据总线(未示出)发出命令到命令接口160。通过使用控制管脚写使能(WEB)和芯片使能(CEB)锁存命令。
非易失多级单元使用一个路径用于读取/校验,使用另一个路径用于对多级单元编程。这允许路径能够被边写边读(RWW),并且允许对编程优化。独立的写路径可以使得例如能够并行地对16、32、64或更多的单元编程。这样的路径可以分别被指定为X16、X32、X64等等。
能够被并行编程的单元的最大数目受限于编程带宽。被并行编程的单元越多则加快了编程过程。但是,被并行编程的单元越多,对编程泵功率要求越高。因此,速度优势被与更大的编程泵相关联的管芯尺寸和成本所抵消和限制。因为编程泵154的物理尺寸随着它的电流供应能力而增加,所以编程带宽可以被用作编程泵154的管芯尺寸的表示。
在写(编程)操作期间被并行访问(查询)的单元的数目被称为“段”(hunk)。段的大小限制了被查询的数据缓冲器地址的子集,并且确定需要多少次对数据缓冲器的访问来识别所有要求编程为给定电平的单元。例如,如果通过X64的段大小使用512比特的写缓冲器,那么对于4-状态多级存储器阵列需要4次对数据缓冲器的访问来识别所有要求编程的单元。在4-状态阵列中,每个阵列单元代表两个比特。因此,512比特等同于256个单元。因为每次访问具有X64的段大小,所以需要4次(=256/64)访问。
假设状态(电平)是随机分布的,段大小对最大化使用在每个电平的编程脉冲是重要的。因此,作为起始计算,使得编程泵的大小应对至少1/n段大小的单元施加脉冲,其中n是单元可能状态的数目。以使用X64段大小的4-状态存储器阵列为例,整个填充有随机数据的块(block)的频率分布是在每个状态下具有平均25%的单元。对于电平0到电平3,状态可以分别被指代为L0、L1、L2和L3。因此在每个段中,平均有16个单元将要求进行编程到每个电平。编程泵应该能够提供足够的电流来同时对至少所期望的16个单元编程。
为了优化通常的编程性能,编程泵应该增加大小以解决对电平L1和/或L2的几个额外的比特编程。即,对于X64的段通常分布可以是:L0的16个单元、L1的14个单元、L2的18个单元以及L3的16个单元。编程带宽可以是X18。L3不用被过多考虑,因为该电平更易于快速校验。再次施加脉冲和再次校验操作都是耗时的操作。最高电平的编程电压能够比中间电平被设定得更加远离邻近的电压电平,并且因此更易于在较少脉冲之后校验。被限制为过电压和欠电压的中间电压电平需要更精确的电平设置来对正确的电平进行校验,并且因此可以要求更多再次施加脉冲和再次校验。在一个实施例中,电平L3数据通常使用1个脉冲,与此相对照的是电平L1和L2使用10-14个脉冲。在编程泵的大小开始影响管芯尺寸时,段的大小增加导致减少了基于编程带宽的返回值。
功率损耗恢复是一种具体的利用在最高电压电平时要求较少的编程脉冲的应用。在这种应用中,当程序进行时软件编程周期性地使存储器阵列单元被编程为电平L3。因此,被编程为电平L3的单元的位置是对软件编程已经完成了哪个操作的测量。如上所述,经常能够使用一个脉冲完成对电平L3的编程。如果功率损耗中断了软件编程,那么软件可以在恢复功率后,基于存储器阵列中电平L3数据的位置采取适当的动作。
如图3所示,在此前图1中所述的存储器器件120的操作期间,多级存储器数据被读取402。读取的数据与客户数据要求进行比较404。控制引擎微编码将栅极电压设定为对应于电压阈值电平1的电平408。
在412,控制引擎微编码确定在数据块中要求编程为电压阈值电平1的多级存储器单元的位置。要求电平1编程的单元被编程414。
在一个具体的实施例中,确定编程泵的大小来以8个四倍字对期望数目的要求电平1编程的单元编程。于是,可以对多达8个四倍字编程414。控制引擎微编码循环返回到412,以确定要求编程至电压阈值电平1的未编程的多达8个四倍字的下一个数目以及位置。通过逐步对较少数目的单元编程,直到所有的单元都被编程的这一对单元编程的过程被称为“步冲法(nibbling)”。
在编程泵缺少对段中所有要求编程的单元都进行编程的带宽时,可以应用“步冲法”。对多达泵带宽的单元进行编程。如果在段中还有其他的单元要求编程,那么对另一组多达泵带宽的单元进行编程。进行编程直到段中的所有的单元如所要求的那样被编程。
在步冲法的一个具体应用中,对数据块的地址子集进行分析可能得到子集中没有单元要求编程的判断结果。如果这样,那么不需要对地址子集施加脉冲,控制引擎微编码继续从数据缓冲器中选择出另外的地址子集。
当所有要求电平1编程的单元都已经被编程后,控制引擎微编码将栅极电压设定为对应于阈值电平2的电平416。
在418,控制引擎微编码确定在数据块中要求编程为电压阈值电平2的多级存储器单元的位置。对要求编程为电压阈值电平2的单元编程420。假设,确定编程泵154的大小来以8个四倍字对期望数目的要求电平2编程的单元编程。多达8个四倍字被编程420。控制引擎微编码循环返回至418,以确定要求编程至电压阈值电平2的未编程的多达8个四倍字的下一个数目以及位置。当所有要求电平2编程的单元都已经被编程后,控制引擎微编码将栅极电压设定为对应于阈值电平3的电平422。
在424,控制引擎微编码确定在数据块中要求编程为电压阈值电平3的多级存储器单元的位置。对要求编程为电压阈值电平3的单元编程426。再次假设,确定编程泵154的大小来以8个四倍字对期望数目的要求电平3编程的单元编程。如果要求的话,多达8个四倍字被编程426。控制引擎微编码循环返回至424,以确定要求编程至电平阈值电平3的未编程的多达8个四倍字的下一个数目以及位置。循环继续直到所有要求电平3编程的单元都已经被编程。
当所有要求编程的单元都已经被编程时,控制引擎微编码对编程的效率进行校验。如果校验多级单元块中的数据满足客户要求,那么完成编程并且控制引擎微编码在430退出。
单元被连续地施加脉冲,但是在一起校验。算法(L1脉冲、L2脉冲、L3脉冲和校验)的每节(segment)都要求不同的栅极和漏极电压。为了建立每个电压需要数微秒的回转时间(slewtime)。所以,将电平脉冲和校验操作组合在一起能够最大化使用回转所花费的时间。
如果校验428失败,那么控制引擎微编码前进到1)将数据缓冲器中的单元标注为正确编程,和2)确定哪个电平校验失败。确定被要求为阈值电压电平1的多级存储器块中的单元432。如果存在被编程为电压阈值电平1的单元校验失败,那么增加电平1栅极电压434,并且失败的单元被重新施加脉冲436。在一个具体的实施例中,在8个四倍字中失败的单元以多达编程泵的带宽的组被重新施加脉冲,直到所有8个四倍字中失败的单元都被重新施加脉冲。控制引擎微编码继续循环通过框432、434和436,直到所有要求电平1阈值电压的单元都被重新施加脉冲。
接下来,确定被要求为阈值电压电平2的多级存储器块中的单元438。如果存在被编程为电压阈值电平2的单元校验失败,那么增加电平2栅极电压440,并且失败的单元被重新施加脉冲442。在8个四倍字中失败的单元以多达编程泵的带宽的组被重新施加脉冲,直到所有8个四倍字中失败的单元都被重新施加脉冲。控制引擎微编码继续循环通过框438、440和442,直到所有要求电平2阈值电压的单元都被重新施加脉冲。
接下来,确定被要求为阈值电压电平3的多级存储器块中的单元444。如果存在被编程为电压阈值电平3的单元校验失败,那么增加电平3栅极电压446,并且失败的多级存储器单元被重新施加脉冲448。在8个四倍字中失败的单元以多达编程泵的带宽的组被重新施加脉冲,直到所有8个四倍字中失败的单元被重新施加脉冲。控制引擎微编码继续循环通过框444、446和448,直到所有要求电平3阈值电压的单元都被重新施加脉冲。
然后控制引擎微编码循环返回到428,在这里多级存储器块被重新校验。在每个阈值电平持续进行校验、增加每一电平的栅极阈值电压、在每一阈值电平重新施加脉冲单元和校验的过程,直到整个缓冲器被校验428,并且编程结束430。
图4A-4F图示了图3的编程算法的增量结果的例子。一部分客户所想要的编程数据502被示为系列的数据比特(图4A)。在所图示的例子中,每两个数据比特能够由四个电压阈值电平中的一个来表示。阈值电平表示504每个都对应于客户所指定编程的两个比特。在例子中,阈值电压电平3(Vt3)对应于数据比特“00”。同样,阈值电压电平2(Vt2)对应于数据比特“01”;阈值电压电平1(Vt1)对应于数据比特“10”;阈值电压电平0(Vt0)对应于数据比特“11”。
假设多级存储器阵列具有预先存在的数据506(图4B)。每个阈值电平表示508都对应于两比特的预先存在的编程。
将预先存在的阵列数据与所想要的编程比较。在图示的例子中,没有一个比特为希望从“0”编程为“1”,并且因此不需要擦除多级单元块的数据。作为比较的结果,控制引擎微编码确定两个多级单元阵列位置510(图4C)不要求编程,因为它们的电压阈值与客户所希望的电平512匹配(图4A)。不再要求编程的单元在图4C中以阴影覆盖。
控制引擎微编码将栅极电压设定为对应于比特模式“10”的电平1电压(Vt1)。控制引擎微编码将阵列数据单元516(图4D)编程为电平1电压,以匹配所要求的客户单元编程518(图4A),产生阵列数据514(图4D)。上面描述的步冲技术可以被用来将单元编程为电平1。可能的是,要求编程的单元的数目可能超过编程泵一次都完成的能力。在这样的情形,系统对多达能被编程泵154支持的最大数目的单元进行编程。控制引擎微编码继续步冲通过要求编程的连续单元,直到将单元编程为电平1结束。
控制引擎微编码将栅极电压设定为对应于比特模式“01”的电平2电压(Vt2)。控制引擎微编码将阵列数据单元522(图4E)编程为电平2电压,以匹配所要求的客户单元编程524(图4A),产生阵列数据520(图4E)。如上所述,连续的步冲可能是必须的。控制引擎微编码继续步冲通过要求编程的连续单元,直到将单元编程为电平2结束。
控制引擎微编码将栅极电压设定为对应于比特模式“00”的电平3电压(Vt3)。系统将阵列数据单元526(图4F)编程为电平3电压,以匹配所要求的客户单元编程528(图4A),产生阵列数据530(图4F)。如上所述,连续的步冲可能是必须的。控制引擎微编码继续步冲通过要求编程的连续单元,直到将单元编程为电平3结束。
接着,可以进行被编程的阵列数据单元532(图4F)与客户所要求的编程504(图4A)的比较来校验阵列是否被正确编程。
系统可以校验阵列数据单元530和客户所指定的编程504都存储了同样的数据。如结合图3所述的,系统可以对未通过校验的单元以增加的栅极电压重新施加脉冲,直到所有的单元被校验成功。
系统的各个特征可以以实施这些过程的计算机实现的程序和装置的形式实现。系统的一些或所有特征也能够以计算机程序代码的形式实现,这些计算机程序代码包含以有形介质实现的指令,所述有形介质比如为软盘、CD-ROM、硬盘或任何其它计算机可读存储介质,其中在该计算机程序代码被加载并由计算机执行时,计算机变成用于实施本发明的装置。各个特征也能够以计算机程序代码的形式实施,例如无论是存储在存储介质、加载到和/或由计算机执行,或通过比如通过电线或电缆、光学或电磁辐射的一些传输介质发送,其中在该计算机程序代码被加载并由计算机执行时,计算机变成用于实施本发明的装置。当在通用的微处理器上实现时,该计算机程序代码片段对微处理器进行配置,以创建具体的逻辑电路。
其它实施例在随后的权利要求书的范围之内。
Claims (13)
1.一种用于对存储器件进行编程的方法,包括:
通过定义在数据缓冲器中的地址子集和在所述数据缓冲器中的所述地址子集中确定每个电平状态的期望数目的单元来识别所述数据缓冲器中用于存储多个阈值电压电平中特定一个的地址,每一个所述阈值电压电平由唯一的信号模式表示;
提供对所述期望数目的单元施加脉冲所需的足够电流;
对与所述所识别的地址相关联的阵列存储器单元施加脉冲以对所述阵列存储器单元进行编程;
对每一个所述阈值电压电平重复所述识别步骤和所述施加脉冲步骤;
随后校验每个阵列存储器单元是否被编程为正确表示该单元对应的信号模式的阈值电压电平;
增加所述阈值电压电平;
使用所述增加的阈值电压电平对未正确编程的存储器单元重新施加脉冲;
在每个阈值电压电平,重复进行所述增加步骤以及对未正确编程的存储器单元重新施加脉冲的步骤;以及
随后重新校验每个阵列存储器单元是否被编程为正确表示所述对应的唯一信号模式的阈值电压电平。
2.如权利要求1所述的方法,其中所述识别地址的步骤包括:
确定在所述数据缓冲器中的第一地址子集中的单元是否要求编程;以及
如果在所述第一地址子集中的单元不要求编程,那么继续评价在所述数据缓冲器中的另一地址子集中的单元是否要求编程,而不对所述第一地址子集施加脉冲。
3.如权利要求2所述的方法,包括跳过校验不要求编程的地址子集中的单元。
4.如权利要求3的方法,包括跳过表示最低阈值电压电平的模式。
5.一种存储器件,包括:
数据缓冲器;
存储器单元阵列;
被耦合到所述存储器单元阵列的编程泵;
被耦合到所述数据缓冲器、所述存储器单元阵列和所述编程泵的处理器,所述处理器包括:定义单元,用于定义在所述数据缓冲器中的地址子集;第一确定单元,用于在所述数据缓冲器中的所述地址子集中确定每个电平状态的期望数目的单元以识别所述数据缓冲器中用于存储多个阈值电压电平中特定一个的地址,每一个所述阈值电压电平由唯一的信号模式表示;第二确定单元,用于确定对所述期望数目的单元施加脉冲所需的足够电流;其中
所述编程泵用于使用由所述处理器所确定的电流对所述存储器单元阵列施加脉冲,
所述处理器还包括:第一控制单元:用于使所述第一确定单元和所述编程泵对每一个所述阈值电压电平重复进行所述识别和所述施加脉冲;校验单元,用于校验每个阵列存储器单元是否被编程为正确表示该单元对应的信号模式的阈值电压电平;第二控制单元:用于增加所述阈值电压电平,并利用所述增加的阈值电压电平而使所述编程泵对未正确编程的存储器单元重新施加脉冲;第三控制单元:在每个阈值电压电平,使所述第二控制单元重复进行所述增加以及使所述编程泵对未正确编程的存储器单元重新施加脉冲;以及第四控制单元:使校验单元重新校验每个阵列存储器单元是否被编程为正确表示所述对应的唯一信号模式的阈值电压电平。
6.一种用于对存储器件进行编程的方法,包括:
对存储器阵列中的第一多个存储器单元编程,所述第一多个存储器单元被识别来在所述被识别的存储器单元的栅极端接收第一阈值电压;
对第二多个存储器单元编程,所述第二多个存储器单元被识别来接收所述第一阈值电压;以及
在所述存储器单元被编程为所述第一阈值电压之后,对第三多个存储器单元编程,所述第三多个存储器单元被识别来接收第二阈值电压;
对每一个所述阈值电压电平重复识别步骤和施加脉冲步骤;
随后校验每个阵列存储器单元是否被编程为正确表示该单元对应的信号模式的阈值电压电平;
增加所述阈值电压电平;
使用所述增加的阈值电压电平对未正确编程的存储器单元重新施加脉冲;
在每个阈值电压电平,重复进行所述增加步骤以及对未正确编程的存储器单元重新施加脉冲的步骤;以及
随后重新校验每个阵列存储器单元是否被编程为正确表示所述对应的唯一信号模式的阈值电压电平。
7.如权利要求6的方法,还包括校验所述第一和第二多个存储器单元的编程。
8.如权利要求7的方法,其中所述校验所述第一和第二多个存储器单元的编程的步骤还包括将存储在所述存储器单元中的信息与所期望的程序数据比较。
9.如权利要求7的方法,还包括通过使用增加的第一阈值电压,对没有校验成功的所述第一和第二多个存储器单元的存储器单元重新进行编程。
10.如权利要求6的方法,还包括校验所述第三多个存储器单元的编程。
11.如权利要求10的方法,还包括通过使用增加的第二阈值电压,对没有校验成功的所述第三多个存储器单元的存储器单元重新进行编程。
12.如权利要求6的方法,其中所述对所述第三多个存储器单元编程的步骤还包括使用与在对所述第一和第二多个存储器单元编程中所使用的栅极电压不同的栅极电压。
13.如权利要求6的方法,其中在校验所述存储器单元的所述编程的读取操作之前,对所述第一、第二和第三多个存储器单元编程。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/038,119 | 2002-01-03 | ||
US10/038,119 US6700820B2 (en) | 2002-01-03 | 2002-01-03 | Programming non-volatile memory devices |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1613118A CN1613118A (zh) | 2005-05-04 |
CN100587841C true CN100587841C (zh) | 2010-02-03 |
Family
ID=21898182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN02826781A Expired - Fee Related CN100587841C (zh) | 2002-01-03 | 2002-12-31 | 非易失存储器器件及其编程方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US6700820B2 (zh) |
KR (1) | KR100611825B1 (zh) |
CN (1) | CN100587841C (zh) |
AU (1) | AU2002358302A1 (zh) |
MY (1) | MY126674A (zh) |
TW (1) | TW594756B (zh) |
WO (1) | WO2003058637A1 (zh) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6747893B2 (en) | 2002-03-14 | 2004-06-08 | Intel Corporation | Storing data in non-volatile memory devices |
JP2005116132A (ja) * | 2003-10-10 | 2005-04-28 | Toshiba Corp | 不揮発性半導体記憶装置 |
US7142455B1 (en) * | 2004-05-04 | 2006-11-28 | Spansion, Llc | Positive gate stress during erase to improve retention in multi-level, non-volatile flash memory |
US7490283B2 (en) | 2004-05-13 | 2009-02-10 | Sandisk Corporation | Pipelined data relocation and improved chip architectures |
US7057934B2 (en) * | 2004-06-29 | 2006-06-06 | Intel Corporation | Flash memory with coarse/fine gate step programming |
KR100660534B1 (ko) | 2004-12-09 | 2006-12-26 | 삼성전자주식회사 | 불휘발성 메모리 장치의 프로그램 검증방법 |
US7158421B2 (en) * | 2005-04-01 | 2007-01-02 | Sandisk Corporation | Use of data latches in multi-phase programming of non-volatile memories |
US7420847B2 (en) * | 2004-12-14 | 2008-09-02 | Sandisk Corporation | Multi-state memory having data recovery after program fail |
US7120051B2 (en) | 2004-12-14 | 2006-10-10 | Sandisk Corporation | Pipelined programming of non-volatile memories using early data |
US7849381B2 (en) | 2004-12-21 | 2010-12-07 | Sandisk Corporation | Method for copying data in reprogrammable non-volatile memory |
US7206230B2 (en) * | 2005-04-01 | 2007-04-17 | Sandisk Corporation | Use of data latches in cache operations of non-volatile memories |
US7463521B2 (en) * | 2005-04-01 | 2008-12-09 | Sandisk Corporation | Method for non-volatile memory with managed execution of cached data |
US7447078B2 (en) | 2005-04-01 | 2008-11-04 | Sandisk Corporation | Method for non-volatile memory with background data latch caching during read operations |
KR100680462B1 (ko) | 2005-04-11 | 2007-02-08 | 주식회사 하이닉스반도체 | 비휘발성 메모리 장치 및 그것의 핫 일렉트론 프로그램디스터브 방지방법 |
JP4728726B2 (ja) * | 2005-07-25 | 2011-07-20 | 株式会社東芝 | 半導体記憶装置 |
KR101333503B1 (ko) * | 2006-02-03 | 2013-11-28 | 삼성전자주식회사 | 프로그램 셀의 수에 따라 프로그램 전압을 조절하는 반도체메모리 장치 및 그것의 프로그램 방법 |
KR100866954B1 (ko) * | 2006-09-29 | 2008-11-05 | 삼성전자주식회사 | 멀티 레벨 셀의 프로그래밍 시간을 줄일 수 있는 플래쉬메모리 장치 및 그 프로그래밍 방법 |
US20080158986A1 (en) * | 2006-12-29 | 2008-07-03 | Daniel Elmhurst | Flash memory and associated methods |
US8391061B2 (en) * | 2006-12-29 | 2013-03-05 | Intel Corporation | Flash memory and associated methods |
KR100816220B1 (ko) * | 2007-03-14 | 2008-03-21 | 주식회사 하이닉스반도체 | 불휘발성 메모리 장치의 언더 프로그램 셀 검출 방법 및그를 이용한 프로그램 방법 |
KR100824203B1 (ko) | 2007-04-03 | 2008-04-21 | 주식회사 하이닉스반도체 | 플래시 메모리 소자의 프로그램 방법 |
US7639532B2 (en) * | 2007-10-10 | 2009-12-29 | Micron Technology, Inc. | Non-equal threshold voltage ranges in MLC NAND |
KR101517597B1 (ko) * | 2009-03-25 | 2015-05-07 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 프로그램 전압 생성방법 |
US8472280B2 (en) | 2010-12-21 | 2013-06-25 | Sandisk Technologies Inc. | Alternate page by page programming scheme |
CN105378848B (zh) * | 2013-04-24 | 2018-10-02 | 慧与发展有限责任合伙企业 | 一种存储器设备和一种方法 |
US9343141B2 (en) | 2014-07-15 | 2016-05-17 | Sandisk Technologies Inc. | Reprogramming memory with single program pulse per data state |
US9324419B2 (en) | 2014-07-15 | 2016-04-26 | Sandisk Technologies Inc. | Multiple pass programming for memory with different program pulse widths |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5218569A (en) * | 1991-02-08 | 1993-06-08 | Banks Gerald J | Electrically alterable non-volatile memory with n-bits per memory cell |
US5497119A (en) * | 1994-06-01 | 1996-03-05 | Intel Corporation | High precision voltage regulation circuit for programming multilevel flash memory |
US5907700A (en) | 1994-10-24 | 1999-05-25 | Intel Corporation | Controlling flash memory program and erase pulses |
KR100253868B1 (ko) | 1995-11-13 | 2000-05-01 | 니시무로 타이죠 | 불휘발성 반도체기억장치 |
US5677869A (en) | 1995-12-14 | 1997-10-14 | Intel Corporation | Programming flash memory using strict ordering of states |
US5737265A (en) | 1995-12-14 | 1998-04-07 | Intel Corporation | Programming flash memory using data stream analysis |
JP3159105B2 (ja) * | 1997-02-21 | 2001-04-23 | 日本電気株式会社 | 不揮発性半導体記憶装置及びその書込方法 |
GB2325546B (en) | 1997-05-21 | 2001-10-17 | Motorola Inc | Electrically programmable memory and method of programming |
US6091631A (en) | 1998-07-01 | 2000-07-18 | Advanced Micro Devices, Inc. | Program/verify technique for multi-level flash cells enabling different threshold levels to be simultaneously programmed |
US6160440A (en) | 1998-09-25 | 2000-12-12 | Intel Corporation | Scaleable charge pump for use with a low voltage power supply |
DE69927967T2 (de) | 1999-08-03 | 2006-07-27 | Stmicroelectronics S.R.L., Agrate Brianza | Programmierungverfahren eines nichtflüchtigen Multibit Speichers durch Regelung der Gatespannung |
US6233178B1 (en) | 1999-10-14 | 2001-05-15 | Conexant Systems, Inc. | Method and apparatus for pre-conditioning flash memory devices |
US6219276B1 (en) | 2000-02-25 | 2001-04-17 | Advanced Micro Devices, Inc. | Multilevel cell programming |
-
2002
- 2002-01-03 US US10/038,119 patent/US6700820B2/en not_active Expired - Lifetime
- 2002-12-31 WO PCT/US2002/041704 patent/WO2003058637A1/en not_active Application Discontinuation
- 2002-12-31 KR KR1020047010522A patent/KR100611825B1/ko not_active IP Right Cessation
- 2002-12-31 CN CN02826781A patent/CN100587841C/zh not_active Expired - Fee Related
- 2002-12-31 AU AU2002358302A patent/AU2002358302A1/en not_active Abandoned
-
2003
- 2003-01-02 MY MYPI20030010A patent/MY126674A/en unknown
- 2003-01-02 TW TW092100015A patent/TW594756B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR100611825B1 (ko) | 2006-08-11 |
TW594756B (en) | 2004-06-21 |
KR20040071293A (ko) | 2004-08-11 |
CN1613118A (zh) | 2005-05-04 |
WO2003058637A1 (en) | 2003-07-17 |
MY126674A (en) | 2006-10-31 |
TW200305884A (en) | 2003-11-01 |
US20030123295A1 (en) | 2003-07-03 |
US6700820B2 (en) | 2004-03-02 |
AU2002358302A1 (en) | 2003-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100587841C (zh) | 非易失存储器器件及其编程方法 | |
CN101711414B (zh) | 非易失性存储器和用于预测编程的方法 | |
CN1575496B (zh) | 闪存装置及其操作方法 | |
CN102543192B (zh) | 非易失性存储器件的编程方法 | |
CN102150216B (zh) | 具有降低的数据存储要求的存储器的多遍编程 | |
CN101176165B (zh) | 快闪存储器、其擦除方法,及其具有存储器装置的电子装置 | |
US7564718B2 (en) | Method for programming a block of memory cells, non-volatile memory device and memory card device | |
KR101285576B1 (ko) | 비휘발성 메모리를 프로그래밍/소거하기 위한 방법 및 장치 | |
CN101040344B (zh) | 可编程存储器电路及改进其单元阵列中数据保持的方法 | |
CN111009280A (zh) | 存储装置以及存储装置的操作方法 | |
KR100706245B1 (ko) | 비트 스캔 방식을 사용한 노어 플래시 메모리 장치 및그것의 프로그램 방법 | |
CN101635172B (zh) | 非易失性存储器件及其编程方法 | |
EP3173933A1 (en) | Memory control method and memory control apparatus | |
CN102138183A (zh) | 对非易失性存储器的选择性擦除操作 | |
CN101727981A (zh) | 带内置存储器单元恢复的非易失性存储器设备及操作方法 | |
CN1661727A (zh) | 多级闪存设备与编程方法 | |
KR20100056860A (ko) | 비휘발성 메모리 소자의 프로그램 방법 | |
KR100954949B1 (ko) | 불휘발성 메모리 장치의 멀티 레벨 셀 프로그램 방법 | |
US20030086299A1 (en) | Nonvolatile semiconductor memory device | |
CN111833949A (zh) | 存储器控制器、存储器系统及其操作方法 | |
JP2007164937A (ja) | 不揮発性半導体記憶装置 | |
CN104900270A (zh) | 半导体器件及其操作方法 | |
US8923071B2 (en) | Method of programming a multi-bit per cell non-volatile memory | |
KR20100013962A (ko) | 불휘발성 메모리 장치의 프로그램 방법 | |
CN101329914B (zh) | 半导体装置、存储器读取方法和存储器编程方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100203 Termination date: 20171231 |