降低非易失性存储器存储元件间耦合效应的方法

文档序号:6779410阅读:110来源:国知局
专利名称:降低非易失性存储器存储元件间耦合效应的方法
技术领域
本发明总体上涉及一种非易失性存储器以及其操作,更具体的说, 涉及一种用来降低存储在一个存储器存储元件上的数据对从其它存储 元件中所读取的数据的影响的技术。
背景技术
本发明的原则可以应用于不同类型的非易失性存储器,包括那些 现有的以及将来利用新的技术被新开发的。然而,这里本发明的具体 应用是根据电可擦可编程只读存储器(EEPROM)来进行说明的,其 中存储元件是浮栅(FG) ( floating gate)。相邻的FG之间耦合的场效应在Jian Chen和Yupin Fong的美国 专利第5867429中被描述,这里该发明被全文引用作为参考。作为集 成电路制造技术改进的结果,当存储单元阵列的尺寸被减小的时候, 耦合程度必然会增大。问题明显地产生于当两组相邻的在不同时间被 编程的存储单元时候。 一组单元被编程增加对应于一组数据的其FG 的电荷(charge)等级。在第二组单元利用第二组数据编程之后,从第一 组单元中的FG读出的电荷等级(level)往往由于对与笫一组相耦合的 第二组FG所产生的负栽影响而变得与所编程的结果不符。这被称之 为Yupin效应。前面所提到的第5867429号专利建议要么将两组FG 从物理上进行绝缘隔断,要么再从第一组FG中读取数值的时候将第
二组FG的电荷影响考虑在内。这种效应出现在不同类型的快擦写EEPROM单元阵列中。 一种 NOR阵列的一个设计将其存储单元连接在相邻的位(行)线之间,将 控制栅连接到字(列)线上。每一个单元都包括一个带有或者是不带 有与之串联的选择晶体管的浮栅晶体管,或者是由一个单独的选择晶 体管所分隔开的两个浮栅晶体管。此种阵列及其在存储系统中应用的 实施例在下面所列的这些SanDisk公司的专利以及未获授权的申请中 都提到了,这些相关文件在这里也被作为参考专利第5095344, 5172338, 5602987, 5663901, 5430859, 5657332, 5712180, 5890192, 以及6151248号,还有于2000年02月17日提交的序列号为09/ 505555,以及于2000年09月22日提交的序列号为09 / 667334号专 利申请。一个NAND阵列的一种设计是带有一系列存储单元,例如8, 16 或者是32个通过位于任意一端的选择晶体管存储单元串联连接于一 位线与一个参考电势之间。字线在不同的串联阵列中连接到控制栅上。 这种排列的相关实例以及其操作都在下面这些Toshiba的美国专利或 者是未获授权的申请中被提到,这些文件在这里也都全文被参考第 5570315, 5774397和6046935号以及序列号第09/667610号。在当今的商品中,通过在二进制下进行操作来向每一个浮栅内存 入一个单独比特的数据是最普遍的做法,浮栅晶体管的阈值电平的两 个范围被设定为存储等级。 一个浮栅晶体管的阈值电平对应于存储在 其浮栅上的电荷等级。除了减小存储器阵列的尺寸之外,趋势是通过 在每一个浮栅晶体管上存储超过一比特的数据来提高这样的存储器阵列上所存储数据的密度。这是通过为每一个浮栅晶体管定义两个以上 的阈值电平作为存储状态来实现的,四个这样的状态(每一个浮栅2 比特数据)被包含在现有的商品中,更多的存储状态,诸如每个存储 元件16个状态这样的情况也被考虑。每一个浮栅晶体管都具有某一个 阈值电平电压的总范围(限幅器),在这一范围内其可以被实际操作, 并且该范围被分成多个定义的状态和位于状态间的余量,以便他们能
被彼此清晰地辨认出来。这种类型的非易失性存储器的通常操作是在对其重编程之前首先 擦除存储单元块。在块内的单元接下来被分别在擦除后编程成为由要 存储的输入数据表示的状态。编程通常包括在编程电压脉冲的同时交 替向大量的存储器单元提出请求并且分别读出其状态以便确定各个单 元是否分别达到了其预定的等级。对于那些被证实已经达到其预定阈 值电平的单元编程就会停止,而同时对于其它被编程单元的编程仍将 同时进行, 一直到所有那些单元都被编程为止。当单位存储元件的存 储状态数量被提高的时候,执行编程的时间就会变得更长因为每一个 状态的更小的电压范围需要编程的更高精度。这将会给存储系统带来 显著的负面影响。由多状态操作导致的所定义浮栅存储等级的更窄范围提高了第一 组存储元件加载在稍晚编程的相邻第二组存储元件上的电荷的敏感度 等级。例如当第一组被读取的时候,第二组上的电荷在读取第一组状 态的时候会导致错误。从相邻的存储元件耦合的场能够大大影响所读 出的状态,至少是在一组所存储数据的一部分比特上会导致错误。如果错误比特的数量保持在误差校正码(ECC)的能力范围以内的话, 这些错误还能够被修正,但是如果错误的数量超过了那个限度的话, 就必须使用其他的结构和/或操作技术。在前面所提到的美国专利第 5867429号中所披露的技术就适用于多阵列的情况,但是希望提供另 外的技术以补偿相邻的浮栅之间耦合的场的工作效应。发明内容这样以来,根据本发明的一个基本方面,在第二组相邻的存储元 件被编程之后,第一组存储元件重新编程到其希望状态。由于周期性 读取单元的状态是编程过程中的一部分,用于确定何时停止,所以再 编程会在第 一组存储元件中加入补偿由于后来编程的相邻存储元件间 耦合的场效应的所必要的电荷。 一种常规的编程操作的交替脉冲和读 取顺序可被用来对第一组存储单元进行重新编程,这是发生在第二组
相邻的已编程存储元件影响出现的时候。尽管仍然会受到相邻单元的 电荷影响,但是后来对于第一组存储元件的读取,会由于相邻单元电 荷的影响已经由于重新编程被考虑在内而变得更加精确。为了避免必 须保留一个足够大以保持在第一通道被编程的数据的数据緩冲器,以 在第二编程通道使用,被第一通道所存储的数据可以从带有调整的读 取余量的存储器中读出,并且这些数据在第二通道被重新编程。
根据本发明的第二个基本方面,被编程到相同状态的存储元件的 编程等级分布被通过将在分布状态一侧的一些存储元件重新编程成到分布状态另一侧而被压缩(compact)。处在给定状态下的存储元件被读一步二编程,以便^其等级提升到;定阈值以上。这样的方式起到了 减少每一个存储器状态所需要的编程窗口的效果,从而允许了附加状 态被包括在内和/或附加空间提供于状态之间。这样的压缩可以按照前 面段落提到的方式独立执行,但更佳地也可以被作为再编程步骤的一 部分。实际上,第二编程通道应该在相同组单元的首次编程后马上出 现,以便于将编程等级分布状态缩小到一个范围,该范围是考虑了在 相邻单元被编程之后所发生的这些分布状态的明显扩大。编程脉冲电 压等级的步长增加量可以被设定为高于第一编程通道的通常等级,以 便于快速在一个较宽的分布状态内将一组单元编程到其初始等级,并 且接下来通常的小增量电压在第二通道提高编程脉冲以便压缩那些分 布的扩展。这些技术通过那些编程存储单元的窄电压阈值分布状态可 以被快速达到性能的提高。
根据本发明的另外一个方面,根据一个现有多状态编程技术对相 邻存储器单元进行编程的顺序可以以这样方式实现,即将这样的相邻 单元之间交叉耦合的Yupin效应最小化。根据现有编程技术,在一行 或列中第一组交替相邻单元在第一编程步骤中,被部分编程成为第一 数据比特等级,剩余的第二组交替单元接下来按照类似的方式被部分 编程成为那些单元的第一数据比特等级,接下来是用每一个单元第二 数据比特完成第一组编程,最终,笫二组的编程用其第二比特完成。
但是为了使在这些单元中的存储元件之间的Yupin效应最小,根据本 发明的第三个方面,各比特都被以独立的步骤被编程到第一组单元, 接下来,按独立的步骤用其两数据比特将第二组单元编程。该技术尤 其适用于,但不仅限于,在对NAND存储器进行编程的时候使用。该 技术可以独立使用,也可以根据上面总结的本发明的第一和/或第二基 本方面一起使用,以便在不同等级下,抵消相邻存储元件之间耦合的 Yupin效应。本发明的其他方面,特性以及优点都在下面示例性实施例部分加 以说明,其中是参考如下这些附图进行描述的。


图l是具备本发明的各方面特性的非易失性存储器的方框图; 图2是当图1中的存储器阵列是NAND型时,图解说明现有电路 以及组织结构;图3是位于半导体基片上的NAND型存储器阵列沿列方向的剖面图4是图3中的存储器阵列沿着4-4区域的剖面图; 图5是图3中的存储器阵列沿着5-5区域的剖面图; 图6是图2-5中的NAND存储器阵列的示例操作电压表I; 图7描述了图2-5中的NAND存储器阵列的另外一个特征; 图8显示了在四状态操作下,图2-5中的NAND存储器阵列阈值 电压的示例性现有分布状态;图9A显示了一个编程电压的波形信号;图9B显示了响应用图9A所示的电压脉冲编程图2-5中的存储器 单元阵列的现有电压阈值响应;图IOA以及IOB是电压阈值等级分布状态,是用来举例说明对图 2-5所示的存储器单元阵列进行编程的现有技术;图ll显示了在使用现有技术编程时Yupin对图2-5所示的存储单 元阵列,在阈值分布效应;
图12显示了在使用根据本发明的第一种技术编程时Yupin对图 2-5所示的存储器单元阵列阈值分布状态的效应;图13显示了根据如图12所示结果的第一种技术对图2-5所示的 存储器单元阵列进行编程的步骤;图14A显示了根据图13所示的编程方法的编程电压的波形信号;图14B显示了根据图13所示的编程方法,对图14A的编程脉冲, 图2-5所示的存储器单元阵列的电压阈值等级响应;图15A显示了根据图13所示的编程方法的编程电压的另一波形 信号;图15B显示了根据图13所示的编程方法,对图15A中的一组交 替编程脉冲,图2-5所示的存储器阵列的电压阈值等级响应;图16显示了在使用根据本发明的第二种技术编程时,Yuin对图 2-5所示的存储单元阵列阈值分布状态的效应;图17显示了根据如图16所示结果的第一种技术对图2-5所示的 存储单元阵列进行编程的步骤;图18显示了在使用根据本发明的第二种技术的一种变化编程时, 对图2-5所示的存储单元阵列阈值分布状态的Yupin效应;图19显示了根据如图18所示结果的第一种技术对图2-5所示的 存储单元阵列进行编程的步骤;图20显示了在使用根据本发明的第三种技术编程时,对图2-5所 示的存储单元阵列进行阈值分布状态的Yupin效应;图21是对图2-5所示的存储器阵列进行编程方法的第一个示例性 实施例的第一部分流程图;图22是对图2-5所示的存储器阵列进行编程方法的第一个示例性 实施例的第二部分流程图;图23是对图2-5所示的存储器阵列进行编程方法的第二个示例性 实施例的第一部分流程图;图24是对图2-5所示的存储器阵列进行编程方法的第二个示例性 实施例的第二部分流程图25是与图21组合时,对图2-5所示的存储器阵列进行编程方 法的第三个示例性实施例的第一部分流程图;图26是与图22组合时,对图2-5所示的存储器阵列进行编程方 法的第三个示例性实施例的第二部分流程图;图27是与图23组合时,对图2-5所示的存储器阵列进行编程方 法的第四个示例性实施例的第一部分流程图;图28是与图24组合时,对图2-5所示的存储器阵列进行编程方 法的第四个示例性实施例的第二部分流程图;图29说明了一种使用第三以及第四实施例的编程顺序;图30显示了从图2-5中所示的存储器阵列中读出数据方法的第一 部分;以及图31显示了从图2-5中所示的存储器阵列中读出数据方法的第二 部分。
具体实施方式
非易失性存储器系统示例参照图1-7,为了提供具体的实例,说明了一种能够实现本发明的 不同方面的具体的非易失性存储器。图1是一种闪存系统的方框图。 包括多个成矩阵排列的存储器单元的存储器单元阵列1由列控制电路 2、行控制电路3, c源控制电路4以及c-p-阱控制电路5来控制。列 控制电路2被连接到存储器单元阵列1的位线(BL)上,以便读取存 储在存储器单元(M)上的数据,在编程操作中确定存储器单元(M) 的状态,以及控制位线(BL)的电势等级来促进编程或者是抑制编程。 行控制电路3连接到字线(WL)上,用来选择其中的一个字线(WL), 提供读取电压,提供一个编程电压,该电压是与由列控制电路2所控 制的位线电势等级相结合的,以及在存储器单元(M)形成的p区域 (在图3中标为"c-p-阱,,)的电压上外加一个擦除电压。c源控制电路 4控制与存储器单元(M)相连接的普通源线(在图2中标为"c-源,,). c-p-阱控制电路5控制c-p-阱电压。 存储在存储器单元(M)内的数据由列控制电路2所读出,并且 通过一个I/O线以及一个数据输入/输出緩冲器6输出到外部I/O线。 要存储到存储器单元上的编程数据通过一个外部I/O线输入到输入/输 出緩沖器6上,并且被传送到列控制电路2。外部I/O线连接到一个 控制器20上。控制闪存设备的命令数据被输入到一个命令接口 ,该接口是连接 到与控制器20相连的外部控制线上的。命令数据告之闪存什么操作被 请求。输入命令被传送到控制列控制电路2,行控制电路3, c源控制 电路4, c-p-阱控制电路5以及数据输入/输出緩冲器6的状态机8上。 状态机8可以输出闪存的状态数据,例如准备/忙或者是通过/失败。控制器20被连接到或者是可连接到主系统上,该主系统可以是个 人电脑,数码照相机,个人数码助理。是主系统发出指令,例如向/ 从存储器阵列l存储或者是读取数据,并且分别提供或者是接收这样 的数据。控制器将这样的命令转换成为可以通过命令电路7来解释和 执行的命令信号。控制器通常还包括用于从存储器阵列写入或读出的 用户数据的緩冲存储器。典型的存储器系统包括一个集成电路片21, 该片21包括控制器20,以及一个或更多集成电路片22,其中的每一 个都包括一个存储器阵列以及相关的控制,输入/输出以及状态机电 路。当然发展趋势是将存储器阵列以及系统控制电路都集成到一个或 多个集成电路片上。存储器系统可以被嵌入到主系统中作为其一部分, 也可以被包含在一个可以插入到主系统相匹配的插口内并可以移走的 存储器卡上。这样的卡可以包括整个存储器系统,或者是控制器和存 储器阵列,其他外围的相关电路可以在分开的卡上。参照图2,存储器阵列1的一个示例性结构被说明。 一种NAND 快擦写EEPROM被作为示例说明。在一个具体示例中,存储器单元(M)被分成1024个块。存储在每一个块中的数据被同时擦除。块就 成为同时可擦除的单元的最小单位。在本例的每一个块中,有被分成 偶数列和奇数列的8512列。位线也被分成偶位线(BLw)和奇位线(BLo)。在每一个栅电极连接到字线(WLO到WL3)上的四个串联
存储器单元形成一个NAND单元。NAND单元的一个终端通过连接到 一个第一选择门线(SGD )上的第一选择晶体管(S )被连接到相应的 位线(BL)上,另外一个终端通过一个栅电极连接到一个第二选择门 线(SGS)上的第二选择晶体管(S)被连接到c源上。尽管为了简单 只是在每一个单元中显示出了四个浮栅晶体管,然而实际当中通常会 使用更多数量的晶体管,例如8, 16或者甚至是32个。在一个用户数据读取以及编程操作中,在本例中,有4256个单元 (M)被同时选中。被选中的单元(M)带有相同的字线(WL),例 如WL2,以及相同类型的位线(BL),例如偶数位线BLeO到BLe4255。 因此,532比特的数据可以同时被读取或编程。这同时读出或编程的 532B逻辑上成为一"页"。因此, 一个块可以存储至少八页。当每一个 存储器单元(M)存储两比特数据时,即多级单元的时候, 一个块可 以在每单元存储两比特的情况下存储16页。在本实施例中,每一个存 储器单元的存储元件,这里是每一个存储器单元的浮动门都存储两比 特用户数据。图3显示了图2中示意性显示的NAND单元沿位线(BL)方向 的剖面图。在一个P型半导体衬底9的表面,形成有一个p型区域c-p 阱ll, c-p阱由一个n型区域10所密封,以便使c-p阱与p型衬底相 互电绝缘。n型区域10通过一个第一连接孔(CB)以及一个n型扩 散层12连接到由第一金属M0制成的c-p阱线。p型区域c-p阱ll通 过一个第一连接孔(CB)以及一个p型扩散层13连接到c-p阱线。 c-p阱线连接到c-p阱控制电路5上(图1)。每一个存储器单元都带有一个存储一定数量的与存储在单元内的 数据相对应的电荷的浮栅(FG),字线(WL)形成栅极,漏极与源 电极都由p型扩散层12构成。浮栅(FG)通过一个隧道氧化膜(14 ) 形成在c-p阱的表面上。字线(WL)通过一个绝缘膜(15)层叠在浮 栅(FG)上,源电极通过第二选择晶体管(S)以及第一连接孔(CB) 连接到由第一金属(M0)制成的公用源线(c-源)上。公用源线连接 到c-源控制电路(4)上。漏电极连接到由第二金属(Ml)制成的位 线(BL)上,这样的连接是通过第一选择晶体管(S),第一连接孔 (CB),第一金属(MO)的中间配线以及第二连接孔(VI)。位线 连接到列控制电路(2)。图4以及图5分别显示了一个存储器单元(图3中的4-4部分) 沿字线(WL2)方向的横剖图以及一个选择晶体管(图3的5-5部 分)。每一列都通过一个形成在衬底上并且用绝缘材料填充的沟与相 邻列绝缘,这样的材料可以是浅沟绝缘(STI)。浮栅通过STI以及 绝缘膜15和字线(WL)彼此相互绝缘。近来,位于浮栅之间的空间 将会小于O.lum,并且浮栅之间的电容耦合也有所增加。由于选择晶 体管(S )的栅电极(SG)的形成处理步骤与浮栅(FG )和字线(WL ) 相同,于是就会显示出层状栅结构。这两个选择栅线(SG)在线终点 分开。图6中的表I显示了在一个特定示例中施加电压操作存储器单元 阵列1的情况,每一个存储器单元的浮栅都存储两比特,具有状态 "11", "10", "01", "00,,其中的一个状态。该表显示了当字线"WL2" 以及位线"BLe,,被选定进行读取以及编程的情况。通过将c-p阱提高到 删除电压20V并且将选定块的字线(WL)接地,选定块的数据就被 删除了。由于未被选中的块的字线(WL),位线(BL),选择线(SG) 以及c-源都被处于一个浮动状态,所以这些也都因为与c-p阱容性耦 合而都被升高到大约20V。这样以来,仅^5l在选定存储器单元(M) 的隧道氧化膜14 (图4以及图5)上会施加一个强电场,所选定的存 储器单元的数据就会由于流过隧道氧化膜14的隧道电流而被删除。被 删除的单元,在本例中,处在四个可能编程状态之一,即"11"。为了在编程过程中在浮栅(FG)内存储电子,选择字线WL2连 接到编程脉冲Vpgm上,同时选择位线Ble接地。在另外一方面,为 了禁止位于编程不应发生的存储器单元(M)上发生程序编制,相应 的位线Ble与未选择位线Blo —样连接到电源Vdd上,例如3V。未选 择字线WL0,WL1以及WL3都连接到10V上,第一选择栅(SGD ) 连接到Vdd上,第二选择栅(SGS)接地。因此,被编程的存储器单 元(M)的通道电势被设为0V。位于编程禁止部位的通道电势由于被 与字线(WL)容性耦合而被提高到大约6V左右。如上所述,在编程 过程中仅仅在存储器单元(M)的隧道氧化膜14上施加了 一个强电场, 按照相反方向流过隧道氧化膜14的电流产生了删除作用,接下来逻辑 状态从"11"变为其他的状态"10", "01",或者是"00"其中的一个状态。 在读取与校验操作中,选定栅(SGD与SGS)或未选定字线 (WL0,WL1,WL2)升高到一个读取通过电压4.5V以便使其成为通过 栅。选定字线(WL2)被连接到一个电压上,该电压等级根据每一个 读取以及校验操作来设定以便确定所连接的存储器单元的阈值电压是 否达到了这样的等级。例如,在READ10操作中,选定字线WL2接 地,以此来检测阈值电压是否高于0V。在这个读取状态,可以说读取 等级是0V。在VERIFY01操作中,选定字线WL2连接到2.4V,以此 来校验是否阈值电压达到了 2.4V。在该校验状态,可以说校验等级到 2.4V。选定位线(BLe)被预充电至高等级,例如0.7V。如果阈值电压 高于读取或校验等级,由于不导电存储器单元(M)的原因,连接位 线(BLe)的电势等级会保持该高等级。另一方面,如果阈值电压低 于读取或校验等级的话,由于导电的存储器单元(M)的原因,连接 位线(BLe)的电势等级会降低至一个例如低于0.5V这样的低等级。 读取与校验操作的进一步详细情况将在下面进行说明。图7显示了图1所示列控制电路2的一部分。每一对位线(BLe 与BLo)都连接到包括两个数据存储(DS1和DS2)寄存器的数据存 储部分16上,其中的每一个数据存储寄存器都可以存储一位数据。数 据存储部分16在读取或校验操作中读出选定位线(BL)的电势等级 并且按照二进制的方式存储数据,以及在编程操作中控制位线电压。 数据存储部分16通过选择"EVENBL"和"ODDBL"中的一个信号而被 有选择地连接到选定位线(BL )上。数据存储部分16也连接到I / O 线上以便输出读取数据并且存储编程数据。I/O线参照前面图1中所 述的那样连接到数据输入/输出緩冲器6上。
存储器系统的通常操作图8显示了当每一个浮栅存储元件在每一个存储器单元(M)都 存出两比特数据,即四个数据状态的时候,存储器单元阵列l的阈值 电压分布状态。曲线25表示了在删除状态("ll"数据状态)下阵列1 内部的单元的阈值等级V7的分布状态,它是负阈值电压等级。分别存 储"10"和"11"用户数据的存储器的阈值电压分布状态曲线26和27, 显示为介于0V至1V与1V至2V之间。曲线28显示了被编程至"01" 数据状态的单元分布状态,读取通过电压最高阈值电压等级设定为高 于2V而低于4.5V。存放在每一个单独存储器单元(M)内的2位中的每一个在本例 中都是来自不同的逻辑页。这就是说,存放在每一个存储器单元内的 两个位中的每一个都携带彼此互不相同的逻辑页地址。图8中所示的 右侧位是在较低页地址(-0, 2, 4, ..., 16, 382)被输入的时候被 访问。左侧位是在较高页地址(-1, 3, 5,…,17, 383)被输入的 时4夷被访问。为了提供改进的可靠性,最好是使独立的分布状态紧密(分布状 态窄化),因为更近的分布状态会带来一个较宽的读取宽度(其间的 距离)。根据本发明,分布状态宽度在不限制降低编程速度的前提下 -故变紧。根据标题为"用于多等级NAND EEPROM的快速精确编程方法, 第129- 130页,VLSI技术论文集1995年目录"的文章,该文章以参 考的方式被包含在本文中,该文章中将分布状态限制在0.2V宽度要求 通常重复的编程脉冲在步长之间提高0.2V。为了将分布状态限定在 0.05V宽度,就要求0.05V的步长脉冲增加量。为了用这样的小步长 增加对单元编程会导致编程时间提高4倍。然而,根据本发明的主要 方面,如下所述,这样的编程时间的明显增加并不会降低阈值电压分 布状态的宽度。图9A和图9B分别表示现有编程脉冲技术以及编程为特定状态的 单元的阈值分布宽度,图9A显示了一个编程电压Vpgm的波形信号。
编程电压Vpgm被分成为多个脉冲,每一个脉冲都递增0.2V。可以说 一个Vpgm步长大小为0.2V。在本例中Vpgm的起始电平为12V。最 快速编程存储器单元的阈值电压变化由图9B中的白色方形所代表。 最快速编程存储器单元在14V脉冲之后达到第一通过校验等级。结果 分布状态的最大宽度是AVT = 0.2V。在脉冲间的阶段,编程校验操作被执行。这就是说,被编程的每 一个单元的编程等级都在每一个编程脉冲间同时被读出以便决定其是 否等于或大于要被编程的校验等级。如果确定给定存储器单元的阈值 电压已经达到校验等级的话,通过提高位线的电压提高至给定单元的 系列单元从0V至Vdd被连接来移除Vpmg。其他被编程单元的编程 依然继续直到其依次达到它们的校验等级为止。当在单元的最后一个 编程脉冲当中,阈值电压从低于校验等级到高于该等级的时候,阈值 电压的漂移等于Vpgm的步长值0.2V。这样一来,阈值电压就被控制 在一个0.2V宽度内。图10A以及10B显示了对上述类型的4状态NAND存储器单元 阵列进行编程的具体现有技术。在第一编程通道,单元的阈值等级根 据来自较低逻辑页的位来设定。如果那个位是"l",由于在那个状态是 早期已经被删除的结果,所以什么都不会发生。然而,如果该位是"O", 单元等级被提高到第一编程状态34。这将结束第一编程通道。在第二编程通道,单元的阈值等级根据来自较高逻辑页存储在单 元中的位来设定。如果为"l",由于单元处在状态33或34中的一个而 不会对其进行编程,这些状态取决于较低页位的编程,每一种都带有 上页位"1"。如果上页位是"0",单元就会被第二次编程。如果第一通 道导致单元保持在删除状态33,单元从该状态被编程至最高状态36, 如图10B高箭头所示。如果单元由于第一编程通道被编程到状态34 的话,那么该单元被进一步在第二通道被从该状态编程成为状态35, 如图IOB编程较低箭头所示。第二通道的结果是在不改变第一通道编 程结果的前提下,将单元编程到被指定的状态以从上页存储"O"。当然,如果存储器被按照多于四种状态进行操作的话,就会有多
个分布在存储器单元的设定电压阈值内部窗口内,其与状态数量相等。 进一步来说,尽管每一个分布状态都被分配了特定的位组合,但是不 同的位组合也可以被分配,在这种情况下,介于编程发生之间的状态可以与图10A以及10B所示的不同。在背景技术参考的Toshiba专利 中有这种变化。通常,被同时编程的单元沿着字线是交替的。图ll显示了沿着一 个字线44排列的多个单元中的三个存储器单元41, 42, 43。 一组交 替的单元,包括单元41和43,存储逻辑页0和2 ("偶数页")的位, 同时另外一个交替单元,包括单元42,存储逻辑页l和3("奇数页") 的位。这导致在一个按照一次4页数据的顺序重复完整的编程周期当 中,对在一行存储器单元上的至少4页数据进行编程。在参照上图10A和10B对一行中的至少一部分存储器单元进行的 第一编程步骤中,来自较低页0的位被首先编程到第一组独立的交替 单元并且接下来来自较低页1的位到被编程到独立的第二交替单元。 经过这些步骤之后,页0, 2以及页1, 3的编程状态分布"ll"(还有 删除状态)和"10"都如图ll所示的实线存在了。来自于较高页2的位 接下来被编程到第一组交替单元,接下来是将较高页3编程到第二组 交替单元这一最终步骤。由于上述的Yupin效应,显现出来的"ll"和 "10"状态的分布变得比在其编程之后存在的实线所显示的阈值分布稍 宽,如较宽的点划线所示。这是由于当最初低页0和1的数据编程是 在一个没有相邻的浮栅包括代表状态"00"和"01,,的高负载等级存在的 环境下进行的。所显示出来的最初分布状态的变宽是发生在当相邻单 元被编程至其较高阈值等级状态的时候。进一步说,由于相邻的浮栅 被来自页3的数据写入以便将其电荷等级提高至奇数页的"00"和"01" 状态的原因,页0, 2的较高状态"00"和"01"也会受到该显现变宽的效 应的影响。该显现变宽的效应是向存储器可能被操作的状态数量增加了一个 限制,并且产生了其他操作上的限制。这需要在状态分布之间保持一 个足够大的富裕量以便较宽显现分布状态可以在数据读取操作中被清
晰地辨别出来。仅仅是如图11所示的页1, 3的不带有虚线阈值等级 发散发生的最后两个被编程状态不会被Yupin效应所影响,这是因为 相邻浮栅的电荷等级不会再变化的原因。如图IOB所示,来自于图11 所示的页1, 3的存储器单元储存位的"00"以及"01"状态被最后编程。 而对于其他六个来自页O, 2以及1, 3的单元存储位状态来说,由于 介于浮栅之间的电场耦合,而使得相邻单元接下来的编程影响其显现 阈值电压分布。新编程技术示例图12说明参照图9-11的上述编程技术的两个改进效果。首先, 页被编程的顺序被改变,从而使得首个被编程的两页数据位被写入到 一列中的第一交替存储器单元,接下来是将下面两个数据位写入到第 二交替单元。这就会有去除来自Yupin效应的两个附加编程状态的效 果。其次,初始状态分布被收缩(压缩)以便使得仍由Yupin效应所 产生的显现变宽现象依然使有效分布状态宽度较小,最好是不超过首 次编程的实际分布状态。上述优点的每一个都可以独立被实现,或者 被同时采用。图12就显示了其被共同使用的例子。在如图11所示的为第一和第二组交替存储器单元所设定的相同 数据页被编程的时候,如图12显示的第一个改进是顺序将来自第0和 2页的数据写入到第一组单元,接下来是将来自第l和3页的数据写 入到第二组单元。这就是说,并不是交替将四页数据写入到第一和第 二和选择单元,如图11的例子那样,而是在第二组被任何数据编程之 前,第一组用两页数据编程。第二组交替存储H单元随后用第三和第 四页数据编程。结果是如图所示的存储器单元存储页1, 3的状态"10" 相关的Yiipin效应被消除了 。这是因为相邻第 一组交替存储器单元(存 储页0, 2)的浮栅电荷等级在第二组单元被数据页1, 3所编程之后 并没有增加。页1, 3的所有三个编程状态都不会产生Yupin效应, 从而降低了不正确读取所存储的数据页1, 3的可能性。但是因为在第一组单元被数据页O, 2编程之后,笫二组交替存储 器单元被数据页l, 3所编程,所以第一组的存储状态会受到Yipin效 应的影响。为了克服这个问题,第一组单元的阈值电压分布状态被压缩。参照图IOA,数据页0的最初编程会产生分布状态51。然而在数 据页2被编程之前,分布状态被重新编程以便减少分布状态的宽度, 如曲线52所示。在所有4页的编程都完成之后,Yupin效应会引发状 态阔值分布"10"的显示范围扩大到如曲线53所示的范围。显示分布状 态53最要被控制在等于或小于与最初分布状态51的范围。在数据页O被编程并且压缩之后,当将数据页2编程到编程状态 "00"和"01"之一的时候,相同的处理被执行。数据被首先写入到笫一 组交替单元,压缩并且通过Yupin效应从相邻第二组交替单元的后来 编程过程有效扩展。图13显示了实现如图12所示2种压缩状态分布之一的执行步骤。 状态被首先针对第一校验等级61用数据编程。这就是说,在每一个编 程电压脉冲施加到被编程的单元上以达到该状态之后,那些单元通过 向其施加适当的电压条件被读取来确定单个单元的阈值电压等级是否 达到或超过了等级61。如果是这样的话,编程就会停止。如果不是的 话, 一个附加编程脉冲就会被施加并且状态会被再次读取。结果是一 组存储器单元被编程至给定的状态,该状态带有一个如曲线62所示的 电压阈值分布状态。如上所述,分布状态62的宽度由所施加的编程脉 冲的值,最初是脉沖之间的电压变化来控制。为了收缩该分布,在所有的单元被同时编程到该状态完成之后, 它们的状态通过使用一个比等极61稍低的阈值等级63来读取。这通 过仅仅读取那些编程到所关心的一个状态的单元来区分那些编程到其 它状态的单元。或者是,如数据可以通过寄存器来获取。通过使用高 于第一校验等级61的阈值电压校验等级64以及将其限制在分布62范 围内,那些单元到该状态的第二编程操作(第二通道)会被执行。该 第二编程操作的效果就是要对那些低于等级64的编程阈值电压等级 的单元再编程为高于校验等级64,如分布状态65所示。可以从图13 上看出的实际阈值等级分布状态65要窄于初始分布状态62。当其它 相邻单元通过提高其存储电荷等级被编程后,显现出来的分布状态会
由于Yupin效应而#皮加宽,如分布状态66所示。该显现出来的分布 状态66的宽度要比如果没有第二编程过程的时候的宽度小,其数量是 大约等于校验等级61以及64之间的差。图14A和14B显示了包括参照图13所述的第二编程步骤的参照 图9A和9B所述的编程方法改进。第二编程通道(第二通道写)步骤 的使用,以及第一通道(61)和第二通道(64)的不同校验等级被显 示出来。最快编程存储器单元的阈值电压变化通过图14B所示的白色 方框表示,最慢的部分由黑色方框表示。第一编程通道(第一通道写) 与现有编程步骤类似,但是使用一个相对较低的校验等级61。用于第 二编程通道的校验等级64可以是与现在所使用的校验等级相同。当阈值电压作为一个编程脉冲的结果从低于第一通道校验等级61 开始变化的时候,在本例中阈值电压的漂移与△ Vpgm步长值0.2V相 同。这样的话,阈值电压被控制在具有0.2V宽度的分布62内,与现 有技术相同,但是由于较低校验等级61的原因,分布状态被置于低于 来自现有技术的结果的位置。在第一通道写完成之后和第二通道写开始之前,那些带有高于第 一通道写的校验等级61并且低于第二通道写的校验等级64的存储器 单元就成为第二通道写的目标。如果最快编程存储器单元在例如一个 13.8V脉冲之后达到了第 一通道写的校验等级61 ,第二通道写的起始 Vpmg电平被设定为13.4V或者是低于13.4V,从而将阈值电压漂移降 至低于0.2V。在本例中,第二通道写的起始编程电压Vpmg电平被设 定为13.4V,然而第一通道写的是12V。当单元通道的阈值电压由于 第二通道写的 一个编程脉冲,从低于校验等级64变为高于该等级的时 候,阈值电压的漂移被保持为低于0.05V。从而,目标存储器单元的 阈值电压分布被控制在一个0.05V宽度的范围内,这是大大高于现有 技术的。这样一来,如果第一通道写的校验等级61比第二通道写的校 验等级64小至少0.15V的话,阈值电压分布的总宽度就是0.05V。在本例中,第二通道写的最大Vpgm电平最坏的情况下也会比第 一通道写的高出0.2V,这是因为在笫二通道中使用了高出0.15V的校 验等级。另外,由于第二通道写的起始Vpgm可以大大高于第一通道 写,第二通道写的时长通常是短于第一通道写。所以,可以看出通过 两个编程通道来将阈值电压分布宽度从0.2¥降低到0.05V所需要的执 行成本是小于双倍的编程时间的。使用0.05V的AVpgm步长大小达 到相同的压缩编程分布宽度的现有的编程技术中,编程时间比宽度是 0.2V时所用的时间延长了 4倍。两编程通道技术所需要的编程时间比 使用现有技术为了达到相同阈值电压分布所需要的时间快了几乎两 倍。图15A和15B分别对应于图14A和14B,显示了一个改进,其中 第一编程通道的AVpgm步长大小变大,这是为了减少编程时间,同 时第二编程通道保持相同以便限定一个较窄的分布状态宽度。在本例 中,第一通道写的厶Vpgm步长从0.2V提高到0.4V。第一通道写的 校验等级被降低到0.2V,同时第一通道写和第二通道写的校验等级之 间的差从0.2V提高到0.35V。 0.2V的延伸等于AVpgm步长大小的差 (0.4V-0.2V)。第一通道写和第二通道写的编程电压Vpgm起始电平 与图14A中所示的0.2V步长Vpgm例子相同。第一通道写的持续时 间被减少了大约一半,从而比图14A和14B所示的0.2V步长Vpgm 的例子的编程时间降低了多于25%。在图14A与15A中的每一个,笫一通道写的最初少量编程脉冲也 可以不需要其间(未显示)的时间来形成,以便读取和校验目标存储 器单元上的编程等级。这是因为几乎没有目标单元在最初几个脉冲就 能达到其设定的阈值等级。这也可以用在第二通道写的头几个脉冲被 完成。其结果是可以进一步降低编程时间。上述参照图12-15的具体实施例在初始编程一结束后,并且在执 行对相邻单元的编程之前,从而在最初编程状态被Yupin效应失真之 前,就使用在编程步骤来压缩编程分布状态。在下面参照图16-18所 描述的实施例当中,分布状态的压缩重新编程步骤发生在全部状态都 被初始编程完成,从而由于Yupin效应在对阈值等级分布状态的失真 已经存在后的 一个较晚的阶段.
参照图16, 一种编程技术被说明,其中页0, 2被首先编程到一 行的第一组的交替存储元件,接下来是将页1, 3被编程到同一行中的 第二组交替存储元件。因为 一组在另外一组存储元件被编程之前就被 使用来自所有页的数据完全编程,所以就不会有因为Yiipin现象而产 生的显现出来的后编程页面,在本例中是页l, 3,的状态分布变宽的 现象出现。然而,因为沿着选定字线的相邻第一和第二组交替存储元 件的容性耦合,因此这样的第一编程页面,这里是页O, 2,状态分布 的显现扩大也会发生。 一种修正页0, 2的显现分布漂移的方法是使用 相同的校验等级,用通常方式使用相同数据对第 一组存储元件进行重 新编程。这会导致页0, 2的状态分布漂移,这是因为其重新编程是在 相邻存储元件的电荷等级影响下被执行的。新的重新编程分布然后修 正初始编程数据,在本例中是页0, 2,的Yupin效应。然而,通常希望在重新编程的同时压缩状态分布。这不会导致性 能下降,因为压缩的主要步骤是使用不同的校验等级重新编程。这已 经参照图13被说明过了,其中压缩重新编程发生在相邻存储元件被编 程之前,从而影响到被压缩的状态分布。在图16所显示的编程顺序下, 压缩重新编程是在相邻的存储元件被编程之后发生的。在图17所示的编程顺序下,显示了对数据页0, 2的状态分布进 行压缩重新编程的过程。在初始的使用校验等级71对页0, 2进行编 程之后,以及在对页1, 3进行编程之前,每一个状态的分布如曲线 72所示。在页l, 3被编程之后,该分布会变宽,如曲线75所示。在 该状态下使用读取等级73读取单元之外,并用一个校验等级74进行 重新编程,结果就是如曲线76所示的显示分布状态,同时实际分布状 态如点划线77所示。所施加的编程以及再编程脉沖与图14A所示的 类似。通过比显示出来的分布状态75窄的显示出来的分布状态76执 行了预定的压缩。图18和19显示了分别与图16和17相对应的相同编程顺序与再 编程步骤,除了初始编程使用的编程电压脉冲(第一通道写)在每一 个脉冲都增加0.4V,而再编程电压脉沖(第二通道写)的每一个脉冲
都增加0.2V,如图15A所示的那样。初始编程通道上的更高的厶Vpgm 缩短了编程与再编程处理完成所需要的时间。图20显示了在使用根据本发明的不同方面的另外一种可能的编 程技术。该方法包括参照图12, 13所说的步骤,接下来还包括对初始 数据页0, 2进行第二次再编程的附加步骤。该第二个再编程发生在其 他数据页1, 3已经被编程完成时候,并且不需要包括对状态分布的压缩,但是能够做到。尽管根据本发明的前两个方面的示例性实施例是结合带有一个NAND存储器单元阵列结构的快擦写EEPROM系统进行说明的,应 当认识到这些以及本发明的其他方面都可以应用于任何闪存结构(例 如带有NOR存储器单元结构的快擦写EEPROM系统)或者其他类型 的非易失性存储器,其中,在存储元件之间会有一些耦合影响表示相 同存储器状态的存储等级显示分布,并且希望能够减小该效果。 示例性编程算法图21显示了根据参照图12, 13和14所说的技术,对较低页的偶 数行进行编程的示例性算法。该算法可以分成三个部分。第一部分是 由虚线(Sl到S4 )所包围的部分。该部分显示了界面程序。 一开始(Sl ), "数据加载"命令由闪存控制器发出并且输入到数据输入/输出緩冲器(6)。输入数据被作为命令识别并且锁存在状态机(8),因为这个 时候有一个未显示的命令锁存信号被输入到命令界面(7)。下一步(S2),指定页面地址的地址数据被从控制器输入到数据输入如/输 出緩冲器(6),然后锁存。输入数据被识别为頁面地址并且锁存在状 态机(8 ),因为这时有一个未显示出的锁存信号被输入到命令界面(7 )。 接下来(S3 ) , 532B -编程-数据被输入到数据输入/输出緩冲器(6 ) 上。输入数据被锁存到数据存储器l (DS1),因为"数据加载"命令在 此时被锁存。在最终(S4),"编程,,命令被闪存控制器发生并且输入 到数据输入/输出緩冲器(6)上。该输入数据被识别为命令并且锁存 在状态机(8),因为此时命令锁存信号被输入到命令界面(7)。由"编 程"命令所触发,锁存在数据存储器1 (DS1)上的数据被自动编程(S5
到S20)到状态机(8)所控制的选定存储器单元(M)。该算法的第二部分是S5到S10步骤的第一通道写。首先,起始 Vpgm被设定为12V同时嵌入在状态机(8 )中的编程计数器被设定为 0(S5)。接下来,笫一编程脉冲施加到选定的字线上,例如表I所示 的WL2 (S6)。如果锁存在数据存储器1 (DS1)中的是"O"数据,相 应的位线(BL)就接地("编程激发"表I)。另一方面,如果锁存在 数据存储器1 (DS1)中的是"l"数据,相应的位线(BL)就连接到 Vdd上("编程禁止,,表I)。在编程之后,选定存储单元的状态被校验。为了校验,第一通道 的校验10被执行(S7)。在该项操作中,阈值电压被检测是否达到了 第一通道的0.2V校验等级,如表I所示。如果检测到阈值电压已经达 到的话,锁存在DS1中的数据"0"变为数据"1"。 如果检测到阈值电 压没有达到的话,锁存在DS1中的数据"O"继续保持。已经存在的数 据"l"也被保持。以这种方式,由于数据"0"—个一个地变成数据"1", 而数据"l"也不依靠于存储器单元的状态独立保持,最终所有锁存在数 据存储器DS1上的数据都会变成"l"数据。这意味着所有存储器都4皮 通过来自第一通道的校验等级来判断之后而成功编程。在校验操作之后,会检查是否所有的锁存在数据存储器DS1上的 数据都变成了数据"l" (S8)。如果都已经变成了"l",第一通道写就 被终止并且第二通道写开始。如果没有变成"l,,数据,算法前进至步骤 S9。在步骤S9,编程计数器的计数值被检查。如果计数值小于20, Vpgm等级提高0.2V,并且计数值增加1 ( S10 ),同时算法返回到编 程步骤S6。如果计数值不小于20,状态机中的状态数据被设定为"失 败",然后算法终止(S11)。算法的第三部分是第二通道写(S12至S20)。起初,第二通道的 读取10被执行(S12 )。在该项操作中,阈值电压高于OV的存储器 单元被抽出,并且"0,,数据被设定到相应的数据存储器1 (DS1) 。 "1" 数据被设定到剩下的数据存储器l (DS1).
接下来,第二通道的校验IO被执行(S13)。在该项操作中,那 些阈值电压在OV以上,0.4V以下的存储器单元通过使用0.4V的第二 通道校验等级以及已经存储在数据存储器1 (DS1)上的数据被抽出。 阈值电压被检测是否达到了如表I所示的第二通道的校验等级。如果检 测到阈值电压已经达到的话,锁存在DS1中的数据"0"变为数据"1"。 如果检测到阈值电压没有达到的话,锁存在DS1中的数据"O"继续保 持。已经存在的数据"l,,也被保持。在第二通道的校验10 (S13)之后,起始Vpgm被重置为13.4V 同时编程计数器被重新初始化为0(S14)。接下来,第一编程脉冲13.4V 施加到选定字线上,如表I所示(S15 )。如果锁存在数据存储器l( DS1) 中的是"O"数据,相应的位线(BL)就接地("编程激发"表I)。另 一方面,如果锁存在数据存储器1 (DS1)中的是"l"数据,相应的位 线(BL)就连接到Vdd上("编程禁止,,表I)。在编程之后(S15),选定存储器单元的状态被校验。为了校验, 第二通道的校验10被执行(S16)。在该项操作中,阈值电压被检测 是否达到了第二通道的0.4V校验等级,如表I所示。如果检测到阈值 电压已经达到的话,锁存在DS1中的数据"0"变为数据"1"。如果检测 到阈值电压没有达到的话,锁存在DS1中的数据"O"继续保持。已经 存在的数据"l"也被保持。以这种方式,由于数据"O"—个一个的变成 数据"1",而数据"l,,也不依靠于存储器单元的状态独立保持,最终所 有锁存在数据存储器DS1上的数据都会变成"l"数据。这意味着所有 存储器都被成功编程。在校验步骤之后(S16),会检测是否所有的锁存在数据存储器 DS1上的数据都变成了数据"1"(S17)。如果都已经变成了"l",第二 通道写就被终止并且整个程序算法被终止,设定状态数据为"通过" (S20)。如果没有变成"l"数据,算法前进至步骤S18。在步骤S18,编程计数器的计数值被检测。如果计数值小于13, Vpgm等级提高0.2V,并且计数值增加1 ( S19 ),同时算法返回到编 程步骤S6。如果计数值不小于13,状态机当中的状态数据被设定为"失
败",然后算法终止(S11)。
图22显示了根据参照图12, 13和14所说的技术,对较高页的偶 数行进行编程的示例性算法。该算法可以分成三个部分。第一部分是 由虛线(Sl到S4)所包围的部分。该部分与图21所示的步骤Sl至 S4完全一致。
该算法的第二部分是S5到S13步骤的第一通道写。首先,第一通 道的读取10被执行(S5)。在该项操作中,阈值电压高于OV的被选 出,然后"0"数据被设定到相应的数据存储器2 (DS2) 。 "l"数据被设 定到剩余的数据存储器2 (DS2)。存储器单元起始Vpgm被设定为 14V同时编程计数器被设定为0 (S6)。接下来,第一编程脉沖施加 到选定的字线上,例如表I所示的WL2 (S7)。如果锁存在数据存储 器l (DS1)中的是"O"数据,相应的位线(BL)就接地("编程激发" 表I)。另一方面,如果锁存在数据存储器l (DS1)中的是"l"数据, 相应的位线(BL)就连接到Vdd上("编程禁止"表I)。
在编程之后,选定存储单元的状态被校验。为了校验,在第一地 点校验01被执行(S8 )。在该项操作中,阈值电压被检测是否达到了 如表I所示的2.4V校验等级。如果检测到阈值电压已经达到的话,锁 存在DS1中的数据"0,,变为数据"1"。 如果检测到阈值电压已经达到 的话,锁存在DS1中的数据"0"变为数据"1"。 如果检测到阈值电压 没有达到的话,锁存在DS1中的数据"O"继续保持。已经存在的数据"l" 也被保持。在第二地点,第一通道的校验OO被执行(S9)。在该项操 作中,阈值电压被检测是否达到了第一通道的1.2V校验等级,如表I 所示。如果检测到阈值电压已经达到并且在相应的数据存储器(DS2) 中存储的数据为"O"数据,锁存在DS1中的数据"0"变为数据"1"。 如 果相关数据存储器2 ( DS2 )具有"l"数据,存储在数据存储器1 ( DS1) 中的"O"数据保持不变,而与检测结果无关。如果检测到阈值电压没有 达到的话,锁存在DS1中的数据"O"继续保持。已经存在的数据"l"也 被保持。
以这种方式,由于数据"0"—个一个的变成数据"1",而数据"l" 也不依靠于存储器单元的状态独立保持,最终所有锁存在数据存储器DS1上的数据都会变成"l"数据。这意味着所有存储器都被通过来自第 一通道的校验等级"01,,状态以及第一通道的校验等级"00"状态来判断 之后而成功编禾呈。在校验操作之后,会检查是否所有的锁存在数据存储器DS1上的 数据都变成了数据"l" (S10)。如果都已经变成了"l",第一通道写就 被终止并且第二通道写开始。如果没有变成"l,,数据,算法前进至步骤 Sll。在步骤Sll,编程计数器的计数值被检查。如果计数值小于20, Vpgm等级提高0.2V,并且计数值增加1 ( S12 ),同时算法返回到编 程步骤S7。如果计数值不小于20,状态机当中的状态数据被设定为"失 败,,,然后算法终止(S13)。算法的第三部分是第二通道写(S14至S22)。起初,第二通道的 读取00被执行(S14 )。在该项操作中,阈值电压高于1V的存储器 单元被抽出,并且"O"数据被设定到相应的各数据存储器l( DS1 )。 "1" 数据被设定到剩下的每一个数据存储器l (DS1)。接下来,第二通道的校验OO被执行(S15)。在该项操作中,那 些阈值电压在1V以上,1.4V以下的存储器单元通过使用1.4V的第二 通道校验等级以及已经存储在数据存储器1 (DS1)上的数据被抽出。 阈值电压被检测是否达到了如表I所示的第二通道的1.4V校验等级。 如果检测到阈值电压已经达到的话,锁存在DS1中的数据"O,,变为数 据"1"。如果检测到阈值电压没有达到的话,锁存在DS1中的数据"O" 继续保持。已经存在的数据"l"也被保持。在第二通道的校验00 (S15)之后,起始Vpgm被重置为14.4V 同时编程计数器被重新初始化为0( S16)。接下来,第一编程脉沖14.4V 施加到选定字线上,如表I所示(S17)。如果锁存在数据存储器l(DSl) 中的是"O"数据,相应的位线(BL)就接地("编程激发"表I)。另 一方面,如果锁存在数据存储器1 (DS1)中的是"l,,数据,相应的位 线(BL)就连接到Vdd上("编程禁止"表I)。 在编程之后(S17),选定存储器单元的状态被校验。为了校验, 第二通道的校验00被执行(S18)。在该项操作中,阈值电压被检测 是否达到了第二通道的1.4V校验等级,如表I所示。如果检测到阈值 电压已经达到的话,锁存在DS1中的数据"0"变为数据"1"。如果检测 到阈值电压没有达到的话,锁存在DS1中的数据"0"继续保持。已经 存在的数据"l"也被保持。以这种方式,由于数据"0,,一个一个的变成 数据"l,,,而数据"l,,也不依靠于存储器单元的状态独立保持,最终所 有锁存在数据存储器DS1上的数据都会变成"l"数据。这意味着所有 存储器都被成功编程。在校验步骤之后(S18),会检查是否所有的锁存在数据存储器 DS1上的数据都变成了数据"1"(S19)。如果都已经变成了"l",第二 通道写就被终止并且整个程序算法被终止,设定状态数据为"通过" (S22)。如果没有变成"l"数据,算法前进至步骤S20。在步骤S20,编程计数器的计数值被检测。如果计数值小于13, Vpgm等级提高0.2V,并且计数值增加1 ( S21),同时算法返回到编 程步骤S17。如果计数值不小于13,状态数据被设定为"失败",然后 算法终止(S13 ).在图22所述的算法中,对要编程到状态"01"的存储单元的第二通 道写被避免,因为对"01"状态的第二通道写也要求最大的Vpgm并且 也会导致不必要的编程中断。然而,如果有必要的话,根据本发明, 可以很容易地实现。图23显示了执行图12, 19和15所说的技术,用较低数据页对偶 数列进行编程的示例性算法。该算法与图21所示的类似。区别在于第 一通道写的Vpgm步长大小(S10)以及相关的第一通道写的编程计数 器最大计数值(S9)。这里的Vpgm步长大小从0.2V提高到0.4V, 这是为了加速第 一通道写。图24显示了执行图12, 19和15所说的技术,用较高数据页对偶 数列进行编程的示例性算法,该算法与图22所示的类似。区别在于笫 一通道写的Vpgm步长大小(S12)以及相关的笫一通道写的编程计数
器最大计数值(S9)。这里的Vpgm步长大小从0.2V提高到0.4V, 这是为了加速第一通道写。图25和26显示了当分别与图21和22所示的编程算法组合时, 用于执行如图12, 13以及14所示的方法的示例性编程算法。图25所 示的算法是对奇数列进行编程的算法。该算法不带有图21所示的对偶 数列进行编程算法中的第二通道写这一过程。第一通道的校验10的校 验等级从0.2V变成了 0.4V,这是为了如在第二通道写中将分布设定 为高于0.4V那样,将分布设定为高于0.4V。图26所示的算法是对奇 数列进行编程的算法。该算法不带有图22所示的对偶数列进行编程算 法中的第二通道写这一过程。第一通道的校验00的校验等级从1.2V 变成了 1.4V,这是为了如在第二通道写中将分布设定为高于1.4V那 样,将分布设定为高于1.4V。图21, 22, 25与26所示算法的组合能 够补偿Yupin效应。因此,编程能力被改进了。图27和28显示了当分别与图23和24所示的编程算法组合时, 用于执行如图12, 19以及15所示的方法的示例性编程算法。图27所 示的算法是对奇数列进行编程的算法。该算法不带有图23所示的对偶 数列进行编程算法中的第二通道写这一过程。第一通道的校验10的校 验等级从0.2V变成了 0.4V,这是为了如在第二通道写中将分布设定 为高于0.4V那样,将分布设定为高于0.4V。图28所示的算法是对奇 数行进行编程的算法。该算法不带有图24所示的对偶数列进行编程算 法中的第二通道写这一过程。第一通道的校验00的校验等级从1.2V 变成了 1.4V,这是为了如在第二通道写中将分布设定为高于1.4V那 样,将分布设定为高于1.4V。图23, 24, 27与28所示算法的组合能够补偿Yupin效应。因此, 编程能力被改进了。图29显示了用来执行如图12, 13以及14所示的方法的示例性编 程顺序。每一个方框中,数据编程是按页面地址的顺序执行的,是从 字线WLO的偶数位线的较低页的到字线WL3的奇数位线的较高页。 该顺序是将Yupin效应考虑在内的情况下形成的。
图30显示了根据图16, 17所示的方法读取被压缩的低数据页的 示例性读取算法。由虚线(Sl以及S2)所包围的部分显示了接口的过 程。起初(Sl),"数据读取"命令由闪存控制器发出并且输入到数据 输入/输出緩冲器(6)。输入数据被作为命令识别并且锁存在状态机 (8),因为这个时候有一个未显示的命令锁存信号被输入到命令接口 (7)。下一步(S2),指定页面地址的地址数据被从控制器输入到数 据输入/输出緩冲器(6),然后锁存。输入数据被识别为页面地址并 且锁存在状态机(8),因为这时有一个未显示出的锁存信号被输入到 命令接口 (7)。由地址数据所触发,存储在选定存储器单元(M)上 的数据被通过状态机(8)控制而自动读出(S4与S5)。在读取01中,阈值电压高于2V的存储器单元被选出,然后"l"数 据被设定到相应的数据存储器2 (DS2) 。 "O"数据被设定到剩下的数 据存储器2(DS2)。接下来,读取10被执行。在该操作中。阈值电压 高于OV,低于2V的存储器单元被选出。如果检测到阈值电压低于OV 或者是数据存储器2 ( DS2 )存储"l"数据,"l"数据被设定到数据存储 器1 (DS1),否则就是"O"。存储在数据存储器1 ( DS1)中的数据通过数据输入/输出緩冲器 与输入到命令接口 (7)的读取信号(未示出)同步被输出到外部。图31显示了根据图16, 17所示的方法读取被压缩的低数据页的 示例性读取算法。由虚线(S1以及S2)所包围的部分与图30所示的 相同。在读取OO中,阚值电压高于1V的存储器单元被选出,然后"O" 数据被设定到相应的数据存储器1 (DS1) 。 "l"数据被设定到剩下的 数据存储器1 (DS1)。存储在数据存储器1 (DS1)中的数据通过数 据输入/输出緩冲器与读取信号同步被输出到外部。尽管本发明的不同方面都参考具体实施例进行了说明,但是应该 理解本发明应该根据下面的权利要求的范围被保护。
权利要求
1.一种用于存储数据的非易失性存储器,其包括在集成电路芯片上的电荷存储元件的阵列,其特征在于,存储在一部分存储元件中的电荷的值由于至少在存储元件之间耦合的电场而影响从其它存储元件读出的值,以及在所述集成电路芯片上的编程电路,将作为第一组存储值的第一组数据写入第一组存储元件中,然后将作为第二组存储值的第二组数据写入第二组存储元件中,其中,由于在它们之间耦合的电场,至少一部分第二组存储值会影响从至少一部分第一组存储元件所读出的值,然后改变第一组存储值,以便抵消至少由于在它们之间耦合的电场所引起的第二组存储值对从第一组存储元件中所读出的值的影响。
2. 如权利要求l所述的存储器,其中编程电路通过从第一组存储 元件的第一组存储值读出第一组数据来改变第一组存储值,然后将所 读出的第 一组数据重新写入第 一组存储元件,作为改变后的第一组存 储值。
3. 如权利要求2所述的存储器,其中编程电路通过交替地编程并 验证存储在各存储元件上的电荷等级直到各自达到所读取的第一组存 储值,来将所读取的第一组数据重新写入第一组存储元件中。
4. 如权利要求3所述的存储器,其中编程电路包括验证标志,在 验证各存储元件上存储的电荷等级达到预定等级时,设置该验证标志, 其后至少一个编程电压的增长速率降低。
5. 如权利要求l所述的存储器,其中编程电路包括状态机,其控 制写第一组数据、写第二组数据和改变第一组存储值的顺序。
6. 如权利要求l所述的存储器,其中存储元件包括电浮栅,其中 所存储的值是存储在通过存储器单元影响导通的浮栅上的电荷等级, 其中浮栅是存储器单元的一部分。
7. 如权利要求l所述的存储器,其中存储元件是在平行的排中设 置的存储器单元的一部分,导通字线在其存储元件上正交地延伸横跨该排。
8. 根据权利要求l所述的存储器,其中电荷存储元件阵列的特征 还在于第二组存储元件上的存储值使第 一组存储元件的第 一组存储值 的分布加宽,并且其中编程电路通过压缩第 一组存储元件的第 一组存 储值的加宽的分布来改变第一组存储值。
9. 根据权利要求8所述的存储器,其中编程电路通过从第一组存 储元件的第 一组存储值读出第 一组数据来改变第 一组存储值,然后将 所读出的第 一组数据重新写入第 一组存储元件,作为改变后的第 一组 存储值。
10. 根据权利要求1所述的存储器,其中所述编程电路为存储元 件中的每一个定义两个以上的存储值,从而每个存储元件存储多于一 位的数据。
11. 一种用于存储数据的非易失性存储器,其包括 在集成电路芯片上的电荷存储元件的阵列,其特征在于,存储在存储元件的至少相邻的一部分中的电荷的值由于在存储元件之间耦合 的电场而影响从其它存储元件读出的值;存储器,用于临时存储要被编程到电荷存储元件的阵列中的数据;以及在所述集成电路芯片上的编程电路,将作为第一组存储值的在所 述存储器中存储的第一组数据写入第一组存储元件中,然后将作为第 二组存储值的在所述存储器中存储的第二组数据写入第二组存储元件 中,其中,由于在它们之间耦合的电场,至少一部分第二组存储值会 影响从至少一部分第一組存储元件所读出的值,然后通过从第一組存 储元件的第 一组存储值读取第 一组数据而不是从存储器读取第 一组数 据,来改变第一组存储值,以便抵消第二组存储值对从第一组存储元 件中所读出的值的电荷耦合影响,然后将所读出的第一组数据重新写 入第一组存储元件,作为改变后的第一组存储值。
12. 根据权利要求ll所述的存储器,其中编程电路通过交替地编 程并验证存储在各存储元件上的电荷等级直到各自达到所读取的笫一组存储值,来将所读取的第一组数据重新写入第一组存储元件中。
13. 如权利要求12所述的存储器,其中编程电路包括验证标志, 在验证各存储元件上存储的电荷等级达到预定等级时,设置该验证标 志,其后至少一个编程电压的增长速率降低。
14. 如权利要求ll所述的存储器,其中编程电路包括状态机,其 控制写第 一组数据、写第二组数据和重新写第 一组数据的顺序。
15. —种在集成电路基板上形成的非易失性存储器,其包括 多个导通位线;多个存储器单元的排,其各自包括多个相互串行连接并通过选择 位于该排的末端的晶体管选择性地连接到位线中的一个的存储器单 元,其中存储器单元各自包括电荷存储元件,排具有取向为列的长度, 沿第一方向横跨基板延伸并在第二方向上分开,第一和笫二方向相互正交;多个导通字线,其长度沿第二方向延伸、横跨多个排中的多行存 储器单元的电荷存储元件,字线在第一方向上分开,以及在基板上形成的编程电路,其可连接到位线和字线,以将作为第 一组存储值的第一组数据写到第一组存储元件中,然后将作为第二组 存储值的第二组数据写到与第 一组相邻的第二组存储元件中,然后将 第一组存储值重新编程到第一组存储元件中,从而抵消由于第一和第 二组存储元件之间耦合的电场所引起的第二组存储值对从第 一组存储 元件中所读出的值的影响。
16. 根据权利要求15所述的存储器,其中电荷存储元件是导通的 浮动栅。
17. 根据权利要求15所述的存储器,其中编程电路通过从第一组 存储元件中读出第 一组数据重新编程第一组存储值,然后将所读出的 第 一组数据重新编程到第 一组存储元件中。
18. 才艮据权利要求17所述的存储器,其中电荷存储元件是导通的 浮动栅。
19. 如权利要求18所述的存储器,其中编程电路包括状态机,其 控制写第一和笫二组数据和读第一组数据的顺序。
全文摘要
一种带有一列存储器单元的非易失性存储器系统,每一个存储器单元都有至少一个存储元件,该系统在每一个存储器元件多个存储等级下被操作。一种快擦写电可擦可编程只读存储器(EEPROM)是一个实例,其中的存储元件是电浮栅。该存储器减小了由于相邻浮栅之间耦合的电荷的影响,这是通过在相邻单元被编程之后对某些单元进行第二次编程来实现的。第二次编程步骤还在至少部分编程状态中压缩电荷等级分布。这样就提高了状态之间的分隔和/或允许在给定存储窗口中包括更多的状态。本发明所描述的具体实现形式是一种NAND型的快擦写EEPROM。
文档编号G11C16/12GK101127240SQ20071015375
公开日2008年2月20日 申请日期2002年6月27日 优先权日2001年6月27日
发明者方家荣, 田中智睛, 罕德克·N.·库德, 健 陈 申请人:三因迪斯克公司;株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1