首页> 中国专利> 用于对一页内和多页间的数据进行芯片上伪随机化的非易失性存储器和方法

用于对一页内和多页间的数据进行芯片上伪随机化的非易失性存储器和方法

摘要

集成电路存储器芯片内的特征使能加扰或随机化被存储在非易失性存储器单元的阵列中的数据。在一个实施例中,每页内的随机化有助于控制在感测期间的源极载入错误和在相邻单元之间的浮置栅极与浮置栅极的耦合。逐页的随机化有助于减少由于具体数据样式的重复且长期的存储而导致的编程干扰、用户读干扰和浮置栅极与浮置栅极的耦合。在另一实施例中,在一页内和在各页之间实现随机化。在不同的实施例中,加扰或随机化可以是预定的、或是代码生成的伪随机或用户驱动的随机化。在集成电路存储器芯片的有限的资源和负担内实现这些特征。

著录项

  • 公开/公告号CN102318007A

    专利类型发明专利

  • 公开/公告日2012-01-11

    原文格式PDF

  • 申请/专利权人 桑迪士克公司;

    申请/专利号CN200880115127.0

  • 发明设计人 李艳;方家荣;尼马·莫克莱西;

    申请日2008-08-20

  • 分类号G11C7/10(20060101);G11C11/56(20060101);G11C16/10(20060101);G11C16/34(20060101);

  • 代理机构11105 北京市柳沈律师事务所;

  • 代理人黄小临

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-18 04:12:59

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-08-24

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G11C7/10 变更前: 变更后: 申请日:20080820

    专利权人的姓名或者名称、地址的变更

  • 2015-02-18

    授权

    授权

  • 2012-08-08

    专利申请权的转移 IPC(主分类):G11C7/10 变更前: 变更后: 登记生效日:20120706 申请日:20080820

    专利申请权、专利权的转移

  • 2012-03-07

    实质审查的生效 IPC(主分类):G11C7/10 申请日:20080820

    实质审查的生效

  • 2012-01-11

    公开

    公开

说明书

技术领域

本发明通常涉及诸如具有电荷存储元件的闪存的非易失性存储器,且更 具体地涉及使得该存储器伪随机地存储数据以避免可能导致该存储器故障的 可能的不期望的数据样式(pattern)。

背景技术

随着闪存卡和闪存盘的容量增加,在存储器阵列内的存储器单元的尺寸 继续降低。在高密度阵列内,特别是NAND类型的阵列内,在该阵列的一个 单元或部分中存储的电荷可能影响相邻单元的读取或编程操作。这是所谓的 读取或编程干扰和单元耦合。

通常为了得到关于NAND闪存的单元耦合、干扰和操作以及结构的更多 信息,请参考美国专利申请公开No.US-2006-0233026-A1,题为“Method for Non-Volatile Memory With Background Data Latch Caching During Program Operations(针对在编程操作期间具有背景数据锁存器高速缓存的非易失性存 储器的方法)”;US-2006-0233023-A1,题为“Method for Non-Volatile Memory With Background Data Latch Caching During Erase Operations(针对在擦除操作 期间具有背景数据锁存器高速缓存的非易失性存储器的方法)”; US-2006-0221696-A1,题为“Method for Non-Volatile Memory With Background Data Latch Caching During Read Operations(针对在读取操作期间具有背景数 据锁存器高速缓存的非易失性存储器的方法)”;US专利No.6870768,题为 “Techniques for Reducing Effects of Coupling Between Storage Elements of Adjacent Rows of Memory Cells(用于降低存储器单元的相邻行的存储元件之 间的耦合效应的技术)”;以及US-2006-0140011-A1,题为“Reducing Floating Gate to Floating Gate Coupling Effect(降低浮置栅极与浮置栅极耦合效应)”, 为了所有目的将其全部引用附于此。

一些用户经常使用闪存来在闪存的某些块中反复一次又一次地不断存储 相同的数据样式。结果是将留下一些将被擦除但从不被编程的位。另外,还 将存在一些总是被编程而很少被擦除的位。这些持久的数据样式是有问题的: 它们可能导致干扰和诸如浮置栅极到浮置栅极效应、NAND串阻抗应和降低 的存储器持久性和可靠性等的其他难题。

能够进行电荷的非易失性存储的固态存储器、特别是被包装为小型卡的 EEPROM和快闪EEPROM形式的固态存储器近来已经成为在各种移动和手 持设备、尤其是信息电器和消费电子产品中的存储器的选择。不像也是固态 存储器的RAM(随机存取存储器)那样,闪存是非易失性的,即使在断电以 后仍保持其存储的数据。尽管成本较高,但是,闪存越来越多地被使用在海 量存储应用中。基于旋转诸如硬盘驱动器和软盘的磁介质的传统海量存储器 不适合用于移动和手持环境。这是因为盘驱动器趋于体积大,易于发生机械 故障,且具有高等待时间和高功率要求。这些不期望的属性使得基于盘的存 储器在大多数移动和便携式应用中不实用。另一方面,嵌入式和可移除卡形 式的闪存由于其小尺寸、低功耗、高速和高可靠性特征而理想地适用于移动 和手持环境中。

EEPROM和电可编程只读存储器(EPROM)是可以被擦除且使得新的 数据被写入或“被编程”到它们的存储器单元中的非易失性存储器。两者都 利用在源极和漏极区之间、在半导体衬底中的沟道区域上方的、场效应晶体 管结构的浮置(未连接)导电栅极。然后,在浮置栅极上方提供控制栅极。 由在浮置栅极上维持的电荷量来控制该晶体管的阈值电压特性。也就是说, 对于在浮置栅极上的给定水平的电荷,存在必须在该晶体管被“导通”以允 许在其源极和漏极区之间导电之前施加到控制栅极的对应的电压(阈值)。

浮置栅极可以保持一个范围的电荷,且因此可以被编程到阈值电压窗内 的任何阈值电压电平。阈值电压窗的大小由该器件的最小和最大阈值电平来 界定,该器件的最小和最大阈值电平又对应于可以被编程到浮置栅极上的电 荷的范围。阈值窗通常取决于存储器器件的特性、工作条件和历史。在该窗 内的每个不同的、可分辨的阈值电压电平范围原则上可以用于指定该单元的 明确的(definite)存储器状态。

通常通过两个机制之一将用作存储器单元的晶体管编程为“编程”状态。 在“热电子注入”中,施加到漏极的高电压将穿过衬底沟道区域的电子加速。 同时,施加到控制栅极的高电压将热电子通过薄栅极介电质(thin gate dielectric)拉到浮置栅极上。在“隧道注入(tunneling injection)”中,相对 于衬底,高电压被施加到控制栅极。以此方式,电子从衬底被拉到居间的浮 置栅极。

可以通过一些机制来擦除存储器器件。对于EPROM,存储器可通过用紫 外线辐射将电荷从浮置栅极移除而大批(bulk)擦除。对于EEPROM,存储 器单元可通过相对于控制栅极将高电压施加到衬底以便诱使浮置栅极中的电 子以隧道效应穿过薄氧化物到衬底沟道区域(即,Fowler-Nordheim隧道技术) 而电擦除。典型地,EEPROM可逐字节擦除。对于快闪EEPROM,该存储器 可一次全部或每次一个或多个块地电擦除,其中,一个块可以由存储器的512 字节或更多字节组成。

非易失性存储器单元的例子

存储器器件通常包括可以被安装在卡上的一个或多个存储器芯片。每个 存储器芯片包括由诸如解码器和擦除、写和读电路的外围电路支持的存储器 单元的阵列。更复杂的存储器器件还带有进行智能和更高级存储器操作和接 口的控制器。存在许多现今正使用的商业上成功的非易失性固态存储器器件。 这些存储器器件可以使用不同类型的存储器单元,每个类型具有一个或多个 电荷存储元件。

图1A-1E示意性地图示非易失性存储器单元的不同例子。

图1A示意性地图示具有用于存储电荷的浮置栅极的EEPROM单元形式 的非易失性存储器。电可擦除和可编程只读存储器(EEPROM)具有类似于 EPROM的结构,但另外提供用于在施加适当的电压后将电荷从其浮置栅极电 载入和移除而不需要曝露在UV辐射下的机制。在美国专利No.5595924中给 出了这种单元和其制造方法的例子。

图1B示意性地图示了具有选择栅极和控制或操纵栅极(steering gate) 的快闪EEPROM。存储器单元10具有在源极14和漏极16扩散之间的“分 裂沟道”12。有效地用串联的两个晶体管T1和T2来形成单元。T1用作具有 浮置栅极20和控制栅极30的存储器晶体管。浮置栅极能够存储可选择量的 电荷。可以流过沟道的T1的部分的电流量取决于在控制栅极30上的电压和 在居间(intervening)浮置栅极20上驻留的电荷量。T2用作具有选择栅极40 的选择晶体管。当T2由选择栅极40处的电压导通时,其允许在该沟道的T1 的部分中的电流在源极和漏极之间流过。选择晶体管提供独立于控制栅极处 的电压的沿着源极-漏极沟道的开关。一个优点是它可以用于截止由于在其浮 置栅极处的其电荷耗尽(正)而在零控制栅极电压处仍然导电的那些单元。 另一优点是,其允许更容易地实现源极侧注入编程。

分裂沟道存储器单元的一个简单的实施例是其中选择栅极和控制栅极连 接到如由图1B中示出的虚线示意地指示的同一字线。这是通过使得电荷存储 元件(浮置栅极)位于该沟道的一部分上且使得控制栅极结构(其是字线的 一部分)位于另一沟道部分上以及该电荷存储元件上来实现的。这有效形成 了具有串联的两个晶体管的单元,一个(存储器晶体管)具有在电荷存储元 件上的电荷量和在控制可以流过该沟道的该晶体管的部分的电流量的字线上 的电压的组合,且另一个(选择晶体管)使得该字线单独用作其栅极。在美 国专利No.5070032、5095344、5315541、5343063和5661053中给出了这种 单元的例子、其在存储器系统中的使用以及制造它们的方法。

图1B中示出的分裂沟道单元的更细化的实施例是当选择栅极和控制栅 极独立且不通过它们之间的虚线连接时。一个实施方式使得在单元阵列中的 一列的各控制栅极连接到与字线垂直的控制(或操纵)线。效果是使得字线 免于当读取或编程所选单元时必须同时进行两个功能。那两个功能是(1)用 作选择晶体管的栅极,由此需要适当的电压以将选择晶体管导通和截止,(2) 通过在字线和电荷存储元件之间的电场(容性)耦合将该电荷存储元件的电 压驱动到期望的电平。通常难以用单个电压以最佳方式进行这两个功能。通 过控制栅极和选择栅极的分离控制,字线仅需要进行功能(1),而添加的控 制线进行功能(2)。该能力允许设计在调整编程电压到目标数据的情况下的 更高性能编程。在例如美国专利No.5313421和6222762中描述了在快闪 EEPROM阵列中的独立的控制(或操纵)栅极的使用。

图1C示意性地图示了具有双浮置栅极和独立的选择和控制栅极的另一 快闪EEPROM单元。该存储器单元10类似于图1B的存储器单元,除了其 有效地具有串联的三个晶体管。在这类单元中,两个存储元件(即T1-左和 T1右的存储元件)被包括在源极和漏极扩散区之间的其沟道之上,且选择晶 体管T1位于其间。存储器晶体管分别具有浮置栅极20和20’以及控制栅极 30和30’。选择晶体管T2被选择栅极40控制。在任何一个时间,仅存储器 晶体管对中的一个被存取用于读或写。当存储单元T1-左被存取时,T2和T1- 右两者都被导通以允许在沟道的T1-左的部分中的电流在源极和漏极之间流 过。类似地,当存储单元T1-右正被存取时,T2和T1-左被导通。通过使得 选择栅极多晶硅的一部分很靠近浮置栅极并向选择栅极施加相当大的正电压 (例如20V)使得存储在浮置栅极内的电子可以隧道效应到达选择栅极多晶 硅,来进行擦除。

图1D示意性地图示了被组织为NAND单元的存储器单元的串。NAND 单元50由被其源极和漏极菊链连接(daisy-chain)的一系列存储器晶体管 M1、M2......Mn(n=4、8、16或更高)构成。一对选择晶体管S1、S2控制 存储器晶体管链经由NAND单元的源极端54和漏极端56与外部的连接。在 存储器阵列中,当源极选择晶体管S1导通时,源极端被耦接到源极线。类似 地,当漏极选择晶体管S2导通时,NAND单元的漏极端被耦接到存储器阵列 的位线。在该链中的每个存储器晶体管具有用于存储给定量的电荷以便呈现 想要的存储器状态的电荷存储元件。每个存储器晶体管的控制栅极提供对读 和写操作的控制。每个选择晶体管S1、S2的控制栅极提供分别经由其源极端 54和漏极端56对NAND单元的控制存取。

当在编程期间读取和验证NAND单元内的被寻址的存储器晶体管时,该 晶体管的控制栅极被供应了适当的电压。同时,在NAND单元50中的剩余 的未被寻址的存储器晶体管通过施加在其控制栅极上的足够的电压而完全导 通。以此方式,有效地创建了从单独的存储器晶体管的源极到NAND单元的 源极端54的导电路径,并且对于单独的存储器晶体管的漏极到该单元的漏极 端56也是同样。在美国专利No.5570315、5903495和6046935中描述了具有 这种NAND单元结构的存储器器件。

图1E示意性地图示了具有用于存储电荷的介电层的非易失性存储器。取 代先前描述的导电的浮置栅极元件,使用介电层。已经由Eitan等人的 “NROM:A Novel Localized Trapping,2-Bit Nonvolatile Memory Cell(NROM: 新颖的局部俘获、2位非易失性存储器单元)”,IEEE Electron Device Letters, Vol.21,no.11,2000年11月,543-545页中描述了使用介电存储元件的这种存 储器器件。ONO介电层延伸穿过在源极和漏极扩散区之间的沟道。用于一个 数据位的电荷被局限(localize)在与漏极相邻的介电层中,而用于另一数据位 的电荷被局限在与源极相邻的介电层中。例如美国专利No.5768192和 6011725公开了具有夹在两个硅氧化物层之间的俘获电介质(trapping dielectric)的非易失性存储器单元。通过分离地读取在该电介质内的空间分 离的电荷存储区域的二进制状态来实现多状态数据存储。

存储器阵列

存储器器件典型地由按行和列排列的并可由字线和位线寻址的存储器单 元的二维阵列组成。可以根据NOR型或NAND型架构来形成该阵列。

NOR阵列

图2图示了存储器单元的NOR阵列的例子。已经利用图1B或1C示出 的类型的单元实现了具有NOR型架构的存储器器件。每行存储器单元以菊链 方式通过其源极和漏极连接。该设计有时称为虚拟接地设计。每个存储器单 元10具有源极14、漏极16、控制栅极30和选择栅极40。一行中的各单元 使得其选择栅极连接到字线42。一列中的各单元使得其源极和漏极分别连接 到所选位线34和36。在存储器单元使得其控制栅极和选择栅极独立地被控 制的某些实施例中,操纵线36还连接一列中的各单元的控制栅极。

利用其中每个存储器单元用连接到一起的其控制栅极和选择栅极形成的 存储器单元来实现许多快闪EEPROM器件。在这种情况下,不需要操纵线, 且字线仅连接沿着每行的单元的所有控制栅极和选择栅极。在美国专利 No.5172338和5418752中公开了这些设计的例子。在这些设计中,字线本质 上进行两个功能:行选择;和向在该行中的所有单元供应控制栅极电压用于 读取或编程。

NAND阵列

图3图示了诸如图1D所示的存储器单元的NAND阵列的例子。沿着 NAND单元的每列,位线被耦合到每个NAND单元的漏极端56。沿着NAND 单元的每行,源极线可以连接其所有源极端54。而且,沿着一行的NAND单 元的控制栅极被连接到一系列对应的字线。可以通过用经由所连接字线的在 该对选择晶体管(见图1D)的控制栅极上的适当的电压导通该对选择晶体管 来对整行NAND单元寻址。当在NAND单元的链内的存储器晶体管正被读 取时,在该链中剩余的存储器晶体管经由其相关字线而硬导通(turned on hard),使得流过该链的电流主要取决于正被读取的单元中存储的电荷的水 平。在美国专利No.5570315、5774397和6046935中找到作为存储器系统的 部分的NAND架构阵列和其操作的例子。

块擦除

电荷存储存储器器件的编程只会导致向其电荷存储元件添加更多的电 荷。因此,在编程操作之前,必须移除(或擦除)电荷存储元件中的现有电 荷。提供擦除电路(未示出)来擦除存储器单元的一个或多个块。当整个阵 列的单元或该阵列的很多组单元一起(即一瞬间)被电擦除时,诸如EEPROM 的非易失性存储器被称为“快闪”EEPROM。一旦被擦除,然后就可以重新 编程单元组。可以一起擦除的单元组可以组成一个或多个可寻址的擦除单位。 擦除单位或块典型地存储一页或多页数据,页是编程和读取的单位,虽然也 可以在单个操作中编程或读取多于一页。每页典型地存储一个或多个扇区的 数据,扇区的大小由主机系统限定。一个例子是遵循关于磁盘驱动器建立的 标准的512字节用户数据加上关于用户数据和/或存储该用户数据的块的管理 信息的一些字节的扇区。

读/写电路

在通常的两状态EEPROM单元中,建立至少一个电流断点水平,以便将 导电窗划分为两个区域。当通过施加预定、固定的电压来读取单元时,通过 与断点水平(或参考电流IREF)比较来将其源极/漏极电流解释(resolve)为 存储器状态。如果读取的电流高于该断点水平的电流,则确定该单元处于一 个逻辑状态(例如,“零”状态)。另一方面,如果该电流小于该断点水平的 电流,则确定该单元处于另一逻辑状态(例如,“一”状态)。因此,这种两 状态单元存储一位数字信息。通常提供可以被外部编程的参考电流源作为存 储器系统的一部分来生成断点水平电流。

为了增加存储器容量,随着半导体技术状态的进步,正在制造具有越来 越高的密度的快闪EEPROM器件。增加存储容量的另一方法是使得每个存储 器单元存储多于两个状态。

对于多状态或多级EEPROM存储器单元,导电窗被多于一个断点划分为 多于两个区域,以便每个单元能够存储多于一位的数据。因此,给定的 EEPROM阵列可以存储的信息随每个单元可以存储的状态的数量而增加。已 经在美国专利No.5172338中描述了具有多状态或多级存储器单元的 EEPROM或快闪EEPROM。

实践中,通常通过当向控制栅极施加参考电压时感测穿过该单元的源极 和漏极电极的导电电流来读取单元的存储器状态。因此,对于在单元的浮置 栅极上的每个给定电荷,可以检测相对于固定参考控制栅极电压的对应导电 电流。类似地,可编程到浮置栅极上的电荷的范围限定了对应的阈值电压窗 或对应的导电电流窗。

或者,取代检测在划分的电流窗之间的导电电流,可以设置在控制栅极 处被测试的给定的存储器状态的阈值电压,且检测导电电流低于还是高于阈 值电流。在一个实施方式中,通过检查导电电流通过位线的电容放电的速率 来实现相对于阈值电流的导电电流的检测。

图4图示了对于浮置栅极可以在任一时间选择性地存储的四个不同的电 荷Q1-Q4的、在源极漏极电流ID和控制栅极电压VCG之间的关系。四个实线 ID对VCG曲线表示分别对应于四个可能的存储器状态的、可以编程在存储器 单元的浮置栅极上的四个可能的电荷水平。作为例子,全体单元的阈值电压 窗的范围可以从0.5V到3.5V。可以通过将阈值窗以每个0.5V的间隔划分为 五个区域来界定六个存储器状态。例如,如果如所示地使用2μA的参考电 流IREF,则用Q1编程的单元可以被认为为处于存储器状态“1”,因为其曲线 在由VCG=0.5V和1.0V所界定的阈值窗的区域中与IREF交叉。类似地,Q4处 于存储器状态“5”。

如可以从上述描述看出的,使得存储器单元存储的状态越多,其阈值窗 被划分得越精细。这将要求在编程和读取操作中更高的精确度,以便能够实 现要求的分辨率。

美国专利No.4357685公开了编程2状态EPROM的方法,其中,当单元 被编程到给定状态时,其经历连续的编程电压脉冲,每次向浮置栅极增加递 增的电荷。在脉冲之间,该单元被回读或验证以确定其相对于断点水平的源 极-漏极电流。当已经验证电流状态达到期望的状态时,编程停止。使用的编 程脉冲列可以具有增加的周期或幅度。

现有技术的编程电路仅施加编程脉冲以从擦除或接地状态步经阈值窗, 直到达到目标状态。实际上,为了允许足够的分辨率,每个划分或界定的区 域将需要至少五个编程步来横跨(transverse)。该性能对于2状态存储器单元 是可接受的。但是,对于多状态单元,所需要的步的数量随着划分的数量而 增加,因此,必须增加编程精确度或分辨率。例如,16状态单元可能需要平 均至少40个编程脉冲来编程到目标状态。

图5示意性地图示了具有可由读/写电路170经由行解码器130和列解码 器160存取的存储器阵列100的典型布置的存储器器件。如结合图2和图3 所述,在存储器阵列100中的存储器单元的存储器晶体管可经由(一个或多 个)所选字线和(一个或多个)位线的一组来寻址。行解码器130选择一个 或多个字线,且列解码器160选择一个或多个位线,以便向被寻址的存储器 晶体管的各个栅极施加适当的电压。提供读/写电路170来读或写(编程)被 寻址的存储器晶体管的存储器状态。读/写电路170包括经由位线可连接到该 阵列中的存储器元件的一些读/写模块。

图6A是单独的读/写模块190的示意方块图。实质上,在读取或验证期 间,感测放大器确定流过经由所选位线连接的被寻址的存储器晶体管的漏极 的电流。该电流取决于在存储器晶体管中存储的电荷和其控制栅极电压。例 如,在多状态EEPROM单元中,其浮置栅极可以被充电到若干不同的电平之 一。对于4级单元,其可以用于存储两位数据。由级到位(level-to-bit)转换 逻辑将感测放大器检测的级转换为要被存储在数据锁存器中的一组数据位。

影响读/写性能和准确度的因素

为了改进读和编程性能,并行读取或编程在阵列中的多个电荷存储元件 或存储器晶体管。因此,一起读取或编程存储器元件的逻辑“页”。在已有的 存储器架构中,一行典型地包含若干交错(interleaved)的页。将一起读取或 编程一页的所有存储器元件。列解码器将选择性地将交错的页中的每页连接 到对应数量的读/写模块。例如,在一个实施方式中,指定存储器阵列具有532 字节的页大小(512字节加上管理开销的20字节)。如果每列包含漏极位线 且每行存在两个交错的页,则其总共8512列,且每页与4256列相关。将存 在可连接以并行读或写所有偶数位线或奇数位线的4256个感测模块。以此方 式,并行地从该页存储器元件读取一页的4256位(即532字节)数据,或将 其编程到该页存储器元件中。形成读/写电路170的读/写模块可以被布置为各 种架构。

参考图5,读/写电路170被组织为读/写堆栈(stack)180的堆(bank)。 每个读/写堆栈180是读/写模块190的堆栈。在存储器阵列中,列间隔由占据 它的一个或两个晶体管的大小来确定。但是,如从图6A可以看出,读/写模 块的电路将很可能用更多个晶体管和电路元件来实现,因此将占据超过许多 列的空间。为了对在所占据的列之中的多于一列提供服务,在彼此的顶部堆 叠多个模块。

图6B示出了传统上由读/写模块190的堆栈实现的图5的读/写堆栈。例 如,读/写模块可以延伸过16列,然后可以使用具有八个读/写模块的堆栈的 读/写堆栈180来并行地对八个列服务。读/写堆栈可以经由列解码器被耦合到 在该堆中的八个奇数(1、3、5、7、9、11、13、15)列或八个偶数(2、4、 6、8、10、12、14、16)列。

如前所述,传统的存储器器件通过一次以大量并行的方式在所有偶数或 所有奇数位线上操作来改进读/写操作。由两个交错的页组成的行的该架构将 有助于缓解安置读/写电路的块的问题。这还通过考虑控制位线与位线电容耦 合来支配(dictate)。使用块解码器来复用该组读/写模块到偶数页或奇数页。 以此方式,无论何时一组位线正被读取或编程时,交错的组可以被接地以最 小化紧密相邻耦合。

但是,交错页架构在至少三个方面中是有缺点的。首先,其要求额外的 复用电路。第二,其性能慢。为了完成由字线连接的或一行中的存储器单元 的读取或编程,需要两个读取或两个编程操作。第三,在解决诸如当在不同 时间、诸如在奇数和偶数页中分离地编程在浮置栅极电平处的两个相邻电荷 存储元件时该相邻电荷存储元件之间的场耦合之类的其他干扰效应方面也不 是最佳的。

相邻场耦合的问题随着存储器晶体管之间的间隔更近而变得越明显。在 存储器晶体管中,电荷存储元件被夹在沟道区域和控制栅极之间。在沟道区 域中流动的电流是由在控制栅极和电荷存储元件处的场贡献的结果电场的函 数。随着不断增加的密度,存储器晶体管在一起被形成得越来越近。来自相 邻的电荷元件的场则变为对受影响的单元的结果场的重大贡献者。相邻的场 取决于被编程到相邻者的电荷存储元件中的电荷。该扰动场由于随着相邻者 的编程状态而改变,因此本质上是动态的。因此,受影响的单元可以取决于 相邻者的改变的状态,在不同的时间不同地读取。

交错页的传统架构恶化了由相邻的浮置栅极耦合造成的误差。由于彼此 独立地编程和读取偶数页和奇数页,因此,取决于同时对居间的页发生了什 么,可以在一组条件下编程一页,而在完全不同的一组条件下回读该页。读 取的误差随着增加的密度将变得更严重,对于多状态实施方式,需要更准确 的读操作和对阈值窗的更粗略的划分。将损害性能,且在多状态实施方式中 的可能的容量被限制。

美国专利公开No.US-2004-0060031-A1公开了具有用于并行地读和写对 应块的存储器单元的一大块读/写电路的高性能且致密的非易失性存储器器 件。具体地,该存储器器件具有将读/写电路块中的冗余减少到最小的架构。 通过将读/写模块的块重新分配为并行地操作的块读/写模块核心部分,同时以 时间复用的方式与实质更小的公共部分的组交互,来实现空间以及功率的明 显节省。具体地,由共享的处理器来进行在多个感测放大器和数据锁存器之 间的读/写电路之中的数据处理。

因此,通常需要高性能和高容量的非易失性存储器。具体地,需要具有 致密且有效的、又对于在读/写电路之中处理数据极通用的改进处理器的、具 有增强的读和编程性能的致密非易失性存储器。

发明内容

根据本发明的一个方面,在每个存储器页中的数据被随机化,以便当来 自若干页的数据被排队时,在编程期间避免有问题的数据样式。

在一个优选实施例中,加扰在一页上的数据的简单方式是将数据写在对 于每个不同的页的独立或不同的起始地址上。对应页的数据被写到在对于每 页不同的起始位置处的每页存储器单元。当数据被填充到该页的尾部时,其 通过从该页的第一地址回绕来继续,直到就在起始位置之前。

在另一优选实施例中,由伪随机生成器提供对于每页一个的起始物理列 地址的序列。

根据本发明的另一方面,页中的数据位被随机化,使得平均而言该页包 含相等的具有擦除和编程状态的单元混合。以此方式,源极线偏压或载入实 质上不改变,且可以允许在感测操作期间的适当调整。

这通过随机化一页内的各个位来实现。优选地,使用每位指定某个极性 的伪随机位的序列来编码该页内的位。在一个实施例中,对于页中的每个数 据位存在一个极性位。在另一实施例中,对于页中的每字节数据存在一个极 性位。在该实施例中,如果该极性位指定了位的翻转,则在该数据字节内的 所有位将被翻转。

根据本发明的另一方面,一页内的随机化与逐页的随机化结合。具体地, 给定了芯片上电路的有限资源,优选地通过具有独立的起始位置的每页来实 现一页内的随机化,且优选地通过具有独立的编码极性的每页来实现逐页随 机化。

在另一实施例中,通过具有独立起始位置的每页实现的一页内的随机化 还通过具有独立编码极性的一页内的每组数据位而加强。

各种随机化方法和实施例是存储器芯片(EEPROM)实现的。也就是说, 它们发生在存储器芯片本身内,而不是利用与该芯片通信的存储器控制器。 这不同于解决已知为损耗均衡(wear leveling)的问题的不同技术,该技术通 常在系统级上实现,且使用控制器来改变如何将数据存储在存储器芯片内。

本发明将减少或消除可能导致编程干扰或用户读干扰的具体数据样式, 以及减少NAND串电阻效应,并增加存储器容忍度和可靠性。还将减少浮置 栅极与浮置栅极耦合的问题。

附图说明

图1A-1E示意性地图示了非易失性存储器单元的不同例子。

图2图示了存储器单元的NOR阵列的例子。

图3图示了诸如图1D所示的存储器单元的NAND阵列的例子。

图4图示了对于浮置栅极可以任一时间存储的四个不同的电荷Q1-Q4的 在源极-漏极电流和控制栅极电压之间的关系。

图5示意性地图示了可由读/写电路经由行和列解码器存取的存储器阵列 的典型布置。

图6A是单独的读/写模块的示意方块图。

图6B示出了传统上由读/写模块的堆栈实现的图5的读/写堆栈。

图7A示意性地图示了具有被划分的读/写堆栈的堆的致密存储器器件, 其中实现了本发明的改进的处理器。

图7B图示了图7A中所示的致密存储器器件的优选布置。

图8示意性地图示了在图7A所示的读/写堆栈中的基本组件的一般布置。

图9图示了在图7A和7B所示的读/写电路之中的读/写堆栈的一个优选 布置。

图10图示了图9所示的公共处理器的改进的实施例。

图11A图示了图10所示的公共处理器的输入逻辑的优选实施例。

图11B图示了图11A的输入逻辑的真值表。

图12A图示了图10所示的公共处理器的输出逻辑的优选实施例。

图12B图示了图12A的输出逻辑的真值表。

图13是示出与在本发明的2位的实施例中的讨论有关的一些具体元件的 图10的简化版本。

图14指示在读入了较低页数据的情况下用于较高页编程的与图13相同 的元件的锁存器分配。

图15图示了在单个页模式中的高速缓存编程的方面。

图16示出了可以在较低页到全序列转换(full sequence conversion)中使 用的编程波形。

图17图示了用全序转换的高速缓存编程操作中的相对时序。

图18描述了在高速缓存页复制操作中的锁存器的部署。

图19A和19B图示了在高速缓存页复制操作中的相对时序。

图20图示了当每个存储器单元使用LM码存储两位数据时的4状态存储 器阵列的阈值电压分布。

图21是EEPROM或存储器芯片600的某些组件的示意方块图。

图22A是根据页地址的编码方案和各页数据的极性位的图示。

图22B是图示用于变换用户数据的编码的示例17位码的应用的表。

图22C图示向存储在示例NAND链/串的存储器单元中的较高和较低位 应用极性位。

图23A是作为命令时钟信号的函数的编码方案确定的图示。

图23B是命令的时钟信号。

图23C图示用于数据编码确定和反转的控制电路的实施例。

图23D图示了其中存储了极性位的用户数据的页。

图23E图示了用于针对读操作来回复(revert)被电势反转的数据的编码 的控制电路的实施例。

图24A是命令时钟信号和示出了在命令时钟信号的上升沿处的FSM时 钟的值的有限状态机时钟信号的时间线。

图24B图示了确定极性位为图24A所示的命令时钟信号的函数的示例电 路。

图25更详细地图示了在图7A和图9中示出的芯片上控制电路。

图26图示了根据从每页的不同的起始位置开始写的一个优选实施例的、 加扰在存储器页上的数据的方法。

图27是图示具有用于写数据的不同起始位置的不同页的例子的表。

图28A图示了由于在具有对地的有限电阻的源极线中流动的电流而引起 的源极电压误差的问题。

图28B图示了由源极线电压降导致的存储器单元的阈值电压电平中的误 差。

图29图示了在一页内对位随机化的方法。

图30图示了根据本发明的另一方面逐页并在每页内对数据随机化的方 法。

具体实施方式

图7A到图20图示了实现本发明的优选存储器系统。

图7A示意性地图示了具有被划分的读/写堆栈的堆的致密存储器器件, 其中实现了本发明的改进的处理器。该存储器器件包括存储器单元300、控 制电路310和读/写电路370的二维阵列。可由字线经由行解码器330和由位 线经由列解码器360来对存储器阵列300寻址。读/写电路370被实现为被划 分的读/写堆栈400的堆,且允许一块(也称为“页”)存储器单元并行被读 取或编程。在优选实施例中,一页由邻近行的存储器单元构成。在另一实施 例中,在一行存储器单元被划分为多个块或页的情况下,提供块复用器350 来将读/写电路370复用到各个块。

控制电路310与读/写电路370合作以对存储器阵列300进行存储器操作。 控制电路310包括状态机312、芯片上地址解码器314和功率控制模块316。 状态机312提供存储器操作的芯片级控制。芯片上地址解码器314提供在由 主机或存储器控制器所用与由解码器330和370使用的硬件地址之间的地址 接口。功率控制模块316控制在存储器操作期间被供应给字线和位线的功率 和电压。

图7B图示了图7A所示的致密存储器器件的优选布置。以对称的方式在 存储器阵列300的相对侧上实现由各种外围电路对存储器阵列300的存取, 以便在每侧上的存取线和电路减少一半。因此,行解码器被分割成行解码器 330A和330B,且列解码器被分割为列解码器360A和360B。在其中一行存 储器单元被划分为多个块的实施例中,块复用器350被分割为块复用器350A 和350B。类似地,读/写电路被分割为连接到来自阵列300的底部的位线的读 /写电路370A和连接到来自阵列300的顶部的位线的读/写电路370B。以此方 式,读/写模块的密度、以及因此的被划分的读/写堆栈400的密度实质上降低 了一半。

图8示意性地图示了图7A所示的读/写堆栈中的基本组件的大体布置。 根据本发明的大体架构,读/写堆栈400包括用于感测k个位线的感测放大器 212的堆栈、用于经由I/O总线231输入或输出数据的I/O模块440、用于存 储输入或输出数据的数据锁存器430的堆栈、用于处理和存储在读/写堆栈400 之间的数据的公共处理器500、和用于在堆栈组件之间通信的堆栈总线421。 在读/写电路370之间的堆栈总线控制器经由线路411提供控制和定时信号, 用于控制在读/写堆栈之间的各种组件。

图9图示了图7A和7B示出的读/写电路之间的读/写堆栈(stack)的一 个优选布置。每个读/写堆栈400并行地在一组k个位线上操作。如果一页具 有p=r*k个位线,则将有r个读/写堆栈,400-1......400-r。

并行操作的被划分的读/写堆栈400的整个堆(bank)允许并行地读取或 编程沿着一行的p个单元的块(或页)。因此,将有p个读/写模块用于整行 单元。由于每个堆栈服务于k个存储器单元,因此在该堆中的读/写堆栈的总 数由r=p/k给出。例如,如果r是在该堆中的堆栈的数量,则p=r*k。一个示 例存储器阵列可能具有p=512字节(512x8位),k=8,因此r=512。在优选实 施例中,该块是整行单元的一连串(run)。在另一实施例中,该块是一行中 的单元的子集。例如,单元的子集可以是整行的一半或整行的四分之一。单 元的子集可以是相邻单元的一连串或每隔一个单元一个,或每隔预定数量的 单元一个。

每个读/写堆栈、比如400-1实质上包含并行地服务于一段k个存储器单 元的感测放大器212-1到212-k的堆栈。在美国专利公开No.2004-0109357-A1 中公开了优选的感测放大器,其全部公开被引用附于此。

堆栈总线控制器410经由线路411向读/写电路370提供控制和定时信号。 堆栈总线控制器本身经由线路311依赖于存储器控制器310。在每个读/写堆 栈400之间的通信受互连的堆栈总线431影响,且受堆栈总线控制器410控 制。控制线411从堆栈总线控制器410向读/写堆栈400-1的组件提供控制和 时钟信号。

在优选布置中,堆栈总线被划分为用于在公共处理器500和感测放大器 212的堆栈之间通信的SA总线(SABus)422和用于在处理器和数据锁存器 430的堆栈之间通信的D总线(DBus)423。

数据锁存器430的堆栈包括数据锁存器430-1到430-k,与该堆栈相关的 每个存储器单元一个数据锁存器。I/O模块440使得这些数据锁存器能够经由 I/O总线231与外部交换数据。

公共处理器还包括输出507,用于输出指示存储器操作的状态、比如错 误状况的状态信号。该状态信号用于驱动以线或(Wired-Or)配置联系于FLAG BUS(标记总线)509的n-晶体管550的栅极。该标记总线优选地被控制器 310预充电,且当由任一读/写堆栈给状态信号赋值(assert)时将被下拉。

图10图示了图9所示的公共处理器的改进的实施例。公共处理器500包 括处理器总线、用于与外部电路通信的PBUS 505、输入逻辑510、处理器锁 存器PLatch 520和输出逻辑530。

输入逻辑510接收来自PBUS的数据,并取决于经由信号线411来自堆 栈总线控制器410的控制信号,向BSI节点输出作为处于逻辑状态“1”、“0” 或“Z”(浮置)之一的变换数据。然后,设置/复位锁存器、PLatch 520锁存 BSI,得到了一对互补的输出信号,为MTCH和MTCH*。

输出逻辑530接收MTCH和MTCH*信号,并取决于经由信号线411来 自堆栈总线控制器410的控制信号,在PBUS 505上输出处于逻辑状态“1”、 “0”或“Z”(浮置)之一的变换数据。

在任一时间,公共处理器500处理与给定存储器单元相关的数据。例如, 图10图示了耦合于位线1的存储器单元的情况。相应的感测放大器212-1包 括出现感测放大器数据的节点。在优选实施例中,该节点采用存储数据的SA 锁存器214-1的形式。类似地,相应组的数据锁存器430-1存储与耦合于位线 1的存储器单元相关的输入或输出数据。在优选实施例中,该组数据锁存器 430-1包括用于存储n位数据的足够的数据锁存器434-1......434-n。

当传输门(transfer gate)501被一对互补的信号SAP和SAN使能时,公 共处理器500的PBUS 505具有经由SBUS 422对SA锁存器214-1的访问。 类似地,当传输门502被一对互补的信号DTP和DTN使能时,PBUS 505具 有经由DBUS423对该组数据锁存器430-1的访问。将信号SAP、SAN、DTP 和DTN明确图示为来自堆栈总线控制器410的控制信号的部分。

图11A图示了图10所示的公共处理器的输入逻辑的优选实施例。输入逻 辑520接收在PBUS 505上的数据,且取决于控制信号,使得输出BSI为原 样、或被反转、或浮置。输出BSI节点实质上受传输门522或上拉电路或下 拉电路的输出的影响,该上拉电路包括串联到Vdd的p晶体管524和525, 该下拉电路包括串联到地的n晶体管526和527。上拉电路具有到分别由信 号PBUS和ONE控制的p晶体管524和525的栅极。下拉电路具有到分别由 信号ONEB<1>和PBUS控制的n晶体管526和527的栅极。

图11B图示了图11A的输入逻辑的真指表。该逻辑由PBUS和控制信号 ONE、ONEB<0>、ONEB<1>控制,这些控制信号是来自堆栈总线控制器410 的控制信号的一部分。实质上,支持三个传输模式,通过(PASSTHROUGH)、 反转(INVERTED)和浮置(FLOATED)。

在BSI与输入数据相同的PASSTHROUGH模式的情况下,信号ONE处 于逻辑“1”,ONEB<0>处于“0”,且ONEB<1>处于“0”。这将禁用上拉或 下拉,而使得传输门522能够将PBUS 505上的数据传递到输出523。在BSI 是输入数据的反转的INVERTED模式的情况下,信号ONE处于“0”, ONEB<0>处于“1”,且ONEB<1>处于“1”。这将禁用传输门522。而且,当 PBUS处于“0”时,下拉电路将被禁用,而上拉电路被使能,导致BSI处于 “1”。类似地,当PBUS处于“1”时,上拉电路将被禁用,而下拉电路被使 能,导致BSI处于“0”。最后,在FLOATED模式的情况下,可以通过使得 信号ONE处于“1”,ONEB<0>处于“1”,且ONEB<1>处于“0”来浮置该 输出BSI。为了完整起见列出FLOATED模式,尽管实际上不使用它。

图12A图示了图10所示的公共处理器的输出逻辑的优选实施例。来自 输入逻辑520的在BSI节点处的信号被锁存到处理器锁存器PLatch 520中。 输出逻辑530从PLatch 520的输出接收数据MTCH和MTCH*,并取决于控 制信号,在处于PASSTHROUGH、INVERTED或FLOATED模式任一时在 PBUS上输出。换句话说,四个分支充当PBUS 505的驱动器,主动地将其拉 到HIGH(高)、LOW(低)、或FLOATED(浮置)状态。这通过PBUS 505 的四个分支电路、即两个上拉电路和两个下拉电路来实现。第一上拉电路包 括串联到Vdd的p晶体管521和532,且能够在MTCH处于“0”时上拉PBUS。 第二上拉电路包括串联到地的p晶体管533和534,且能够在MTCH处于“1” 时上拉PBUS。类似地,第一下拉电路包括串联到Vdd的n晶体管535和536, 且能够在MTCH处于“0”时下拉PBUS。第二下拉电路包括串联到地的n 晶体管537和538,且能够在MTCH处于“1”时下拉PBUS。

本发明的一个特征是用PMOS晶体管来构成上拉电路且用NMOS晶体管 来构成下拉电路。由于NMOS的拉动比PMOS的拉动强得多,因此在任何竞 争中,下拉将总是胜于上拉。换句话说,节点或总线可以总是缺省为上拉或 “1”状态,且如果希望,可以总是通过下拉翻转(flip)到“0”状态。

图12B图示了图12A的输出逻辑的真值表。该逻辑由从输入逻辑锁存的 MTCH、MTCH*和控制信号PDIR、PINV、NDIR、NINV控制,这些控制信 号是来自堆栈总线控制器410的控制信号的一部分。支持四个操作模式,通 过(PASSTHROUGH)、反转(INVERTED)、浮置(FLOATED)和预充电 (PRECHARGE)。

在FLOATED模式中,禁用所有四个分支。这通过使得也是缺省值的信 号PINV=1、NINV=0、PDIR=1、NDIR=0来实现。在PASSTHROUGH模式 中,当MTCH=0时,它要求PBUS=0。这通过仅使能具有n-晶体管535和536 的下拉分支、而除了NDIR=1之外所有控制信号处于其缺省值来实现。当 MTCH=1时,将要求PBUS=1。这通过仅使能具有p-晶体管533和534的上 拉分支、而除了PINV=0之外所有控制信号处于其缺省值来实现。在 INVERTED模式中,当MTCH=0时,将要求PBUS=1。这通过仅使能具有p- 晶体管531和532的上拉分支、而除了PDIR=0之外所有控制信号处于其缺 省值来实现。当MTCH=1时,要求PBUS=0。这通过仅使能具有n-晶体管537 和538的下拉分支、而除了NINV=1之外所有控制信号处于其缺省值来实现。 在PRECHARGE模式中,PDIR=0和PINV=0的控制信号设置将在MTCH=1 时使能具有p晶体管531和532的上拉分支,或在MTCH=0时使能具有p晶 体管533和534的上拉分支。

在美国专利申请公开号US-2006-0140007A1中更全面地展开了公共处理 器操作,其全部被引用附于此。

高速缓存操作中的数据锁存器的使用

本发明的一些方面利用在以上图10中所述的读/写堆栈的数据锁存器, 用于将在内部存储器正进行诸如读、写或擦除的其他操作的同时、进数据(data in)和出数据(data out)的高速缓存操作。在上述架构中,数据锁存器由一些物 理页共享。例如,在位线的读/写堆栈上时,由所有字线共享,因此当正进行 一个操作时,如果这些锁存器中有任何是空闲的,则它们可以高速缓存用于 在同一字线或另一字线中的进一步操作的数据,节省传输时间,因为这可以 隐藏在另一操作背后。这可以通过增加不同操作或操作的不同阶段的流水线 (pipelining)量来改进性能。在一个例子中,在高速缓存编程操作中,在编 程一页数据的同时,可以载入另一页数据,节省了传输时间。再例如,在一 个示例实施例中,在一个字线上的读操作被插入在另一字线上的写操作中, 允许来自读操作的数据从存储器传输出,而数据写仍继续。

注意,这允许来自同一块中的另一页、而不是不同字线上的数据被切换 出(toggle out)(以例如进行ECC操作),同时对第一页数据的读或其他操作 正进行。这种操作的阶段间流水使得用于数据传输的时间被隐藏在对第一页 数据的操作背后。更通常地,这使得一个操作的一部分被插入在另一操作、 典型是更长的操作的阶段之间。另一个例子是将感测操作插入到所谓擦除操 作的阶段之间,比如在擦除脉冲之前或在用作擦除的稍后部分的软编程阶段 之前。

为了讨论一些操作所需的相对时间,用于上述系统的一组示例时间值可 以取为如下:

数据写:~700μs(较低页~600μs,较高页800μs)

二进制数据写:~200μs

擦除:~2500μs

读:~20-40μs

读和切换出数据:2KB数据,~80μs;4KB~160μs;8KB~320μs

这些值可以用于参考以给出以下时序图所涉及的相对时间的思想。如果 存在带有不同阶段的长的操作,则如果锁存器可用,主要方面将使用读/写堆 栈的共享锁存器在较快的操作中穿插(interpose)。例如,读可以被插入到编 程或擦除操作中,或二进制编程可以被插入到擦除中。在例如要被切换出且 更改的数据的读被插入到数据写的验证阶段中的情况下,主要示例实施例将 在针对共享相同读写堆栈的另一页的编程操作期间对一页切入(toggle in)和 /或切换出数据。

可以以许多方式提高开放数据锁存器的可用性。通常,对于每个单元存 储n位的存储器来说,对每个位线将需要n个这种数据锁存器;但是,并不 总是需要所有这些锁存器。例如,在以较高页/较低页格式存储数据的每个单 元二位的存储器中,在编程较低页时将需要两个数据锁存器。更通常地,对 于存储多页的存储器,仅当编程最高页时才需要所有锁存器。这剩余了可用 于高速缓存操作的其他锁存器。另外,即使当写最高页时,随着从写操作的 验证阶段移除各种状态,锁存器将释放(free up)。具体地,一旦仅剩下要验 证最高状态,则为了验证仅需要单个锁存器,且其他锁存器可以用于高速缓 存操作。

以下讨论将基于每个单元存储两位且具有用于每个位线上的数据的两个 锁存器和用于快速通过写(quick pass write)的一个另外的锁存器的四状态存 储器,如以上并入的与本申请同时提交的题为“Use of Data Latches in Multi-Phase Programming of Non-Volatile Memories(非易失存储器的多阶段编 程中数据锁存器的使用)”的美国专利申请中描述的。写较低页、或擦除、或 进行后擦除软编程(post erase soft program)的操作基本上是二进制操作,且 具有空闲的数据锁存器之一,其可以使用它来高速缓存数据。类似地,在进 行较高页或全序列写的情况下,一旦除了最高级以外所有都被验证,则仅单 个状态需要验证,且存储器可以释放可用于缓存数据的锁存器。可以如何使 用它的例子是当编程一页时,比如在复制操作中,可以在该写的验证阶段期 间塞入(slip in)对共享同一组数据锁存器的另一页、比如在同一组位线上的 另一字线的读。然后,可以将地址切换到正被写的页,允许在停止处捡起(pick up)写处理而无需重新开始。当写继续时,在穿插的读期间缓存的数据可以 被切换出、检验或更改,并被传输回以呈现用于一旦较早的写操作完成则将 其写回去。这种高速缓存操作使得第二页数据的切换出和更改被隐藏在第一 页的编程背后。

作为第一例子,以单页(较低页/较高页格式)编程模式操作的二位存储 器的高速缓存编程操作。图13是图10的简化版本,示出了与两位的实施例 中的本讨论有关的一些具体元件,省去了其他元件以简化讨论。这些元件包 括与数据I/O线231连接的数据锁存器DL0434-0、通过线路423连接到公共 处理器500的数据锁存器DL1 434-1、通过线路435与其他数据锁存器共同连 接的数据锁存器DL2 434-2、以及通过线路422连接到公共处理器500的感测 放大器数据锁存器DLS 214。图13的各种元件根据其在编程较低页期间的部 署而标注。锁存器DL2 434-2用于快速通过写模式中的较低验证(VL),如 在与本申请同时提交的题为“Use of Data Latches in Multi-Phase Programming of Non-Volatile Memories(非易失性存储器的多阶段编程中数据锁存器的使 用)”的美国专利申请中描述的;对寄存器的包括以及当包括寄存器时对使用 快速通过写的包括是可选的,但是示例实施例将包括该寄存器。

较低页的编程可以包括以下步骤:

(1)处理通过将数据锁存器DL0 434-0复位到缺省值“1”而开始。该 惯例用于简化部分页编程,因为在所选行中的不将被编程的单元将被禁止编 程。

(2)编程数据沿着I/O线231供应到DL0 434-0。

(3)编程数据将被传输到DL1 434-1和DL2 434-2(如果包括该锁存器 且实现快速通过写的话)。

(4)一旦编程数据被传输到DL1 434-1,数据锁存器DL0 434-0就可以 被复位为“1”,且在编程时间期间,下一数据页可以沿着I/O线231被加载 到DL0 434-0,允许在正写第一页的同时缓存第二页。

(5)一旦第一页被载入到DL1 434-1中,就可以开始编程。DL1 434-1 数据用于锁定(lockout)单元免于进一步编程。DL2 434-2数据用于较低验证 锁定,该较低验证锁定管理到快速通过写的第二阶段的转变,如与本申请同 时提交的题为“Use of Data Latches in Multi-Phase Programming of Non-Volatile Memories(非易失性存储器的多阶段编程中的数据锁存器的使用)”的美国专 利申请中所描述。

(6)一旦开始编程,在编程脉冲之后,较低验证的结果被用于更新DL2 434-2;较高验证的结果被用于更新DL1 434-1。(该讨论基于“传统”编码, 其中较低页编程要到A状态。在与本申请同时提交的题为“Use of Data Latches in Multi-Phase Programming of Non-Volatile Memories(非易失性存储器的多阶 段编程中的数据锁存器的使用)”和在2005年3月16日提交的题为 “Non-Volatile Memory and Method with Power-Saving Read and Program-Verify Operations(非易失性存储器和功率节省读和编程验证操作的 方法)”的美国专利申请中讨论了这种和其他编码。容易得到本讨论对于其他 编码的扩展。)

(7)在确定编程是否完成时,仅检查行单元(或编程的适当物理单位) 的DL1 434-1寄存器。

一旦较低页被写入,就可以编程较高页。图14示出了与图13相同的元 件,但指示在读入较低页数据的情况下用于较高页编程的锁存器分配。(该描 述再次使用传统编程,以便较高页的编程要到B和C状态。)较高页的编程 可以包括以下步骤:

(1)一旦较低页结束编程,则在保持了(未执行的)高速缓存编程命令 的情况下,较高页(或下一页)写入将以来自状态机控制器的信号而开始。

(2)该编程数据将从DL0 434-0传输(在其在较低页写期间在步骤(3) 中被载入的情况下)到DL1 434-1和DL2 434-2。

(3)较低页数据将从阵列被读入且置于DL0 434-0中。

(4)再次分别使用DL1 434-1和DL2 434-2用于验证高和验证低锁定数 据。检查锁存器DL0 434-0(持有较低页数据)作为编程参考数据,但不用验 证结果来更新它。

(5)作为验证B状态的一部分,在较低验证VBL处的感测之后,由此 将在DL2 434-2中更新数据,而用高验证VBH结果来更新DL1 434-1数据。 类似地,C验证将具有相应的命令以用相应的VCL和VCH结果来更新DL2 434-2和DL1 434-1。

(6)一旦B数据完成,则由于仅需要进行对于C状态的验证,因此不 需要(保持在DL0 434-0中用于参考的)较低页数据。DL0 434-0被复位为“1”, 且另一页编程数据可以从I/O线231载入,并被缓存锁存器DL0 434-0中。 公共处理器500可以设置仅要验证C状态的指示。

(7)在确定较高页编程是否完成时,对于B状态,检查锁存器DL1 434-1 和DL0 434-0两者。一旦单元被编程到B状态且仅在验证C状态,则仅需要 检查锁存器DL1 434-1数据来看是否存在任何未被编程的位。

注意,在该布置下,在步骤6中,不再需要锁存器DL0 434-0,且其可用 于缓存下一编程操作的数据。另外,在使用快速通过写的实施例中,一旦进 入第二、慢编程阶段,则还可以使得锁存器DL2 434-2可用于缓存数据,虽 然实际上通常是如下情况:以这样的方式,这仅可用于不调整(justify)通常 用于实现该特征所需的额外开销的较短时间段。

图15可以用于图示以在上几段中描述的单页模式进行高速缓存编程的 许多方面。图15示出了在存储器内部(较低“实际忙碌(True Busy)”线) 发生了什么事件和从存储器外部(较高“高速缓存忙碌(Cache Busy)”线) 看上去的相对时间。

在时间t0,要被编程到所选字线(WLn)上的较低页被载入该存储器中。 这假定先前没有缓存第一较低页的数据,因为其将用于随后的页。在时间t1, 较低页完成载入,且该存储器开始向其写入。由于在这点上这与二进制操作 等效,因此仅需要验证状态A(“pvfyA”)且数据锁存器DL0 434-0可用于接 收下一页数据,在此将该下一页数据取作要在时间t2被编程到WLn中的较高 页,其因此在编程较低页期间被缓存到锁存器DL0 434-0中。较高页在时间 t3完成载入,且较低页在t4时一完成,就可以编程该较高页。在该布置下, 虽然所有数据(较低和较高页)要被写入编程的物理单位中(在此,字线WLn), 但是在可以写较高页数据之前,该存储器必须从时间t3等待到时间t4,不像 以下描述的全序列实施例那样。

较高页编程在时间t4开始,其中首先仅验证B状态(“pvfyB”),且在t5 添加C状态(“pvfyB/C”)。一旦在t6不再验证B状态,就仅需要验证C状态 (“pvfyC”),且锁存器DL0 434-0变为空闲。这允许在较高页完成编程的同 时缓存下一数据组。

如所知的,根据具有高速缓存编程的单页算法,如图15所示,即使较高 页数据可能在时间t3可用,但是该存储器在开始写该数据之前将等待直到时 间t4。在转换到全序列编程操作时,比如在美国专利申请11/013125中更全面 展开的,一旦较高页可用,就可以同时编程较高和较低页数据。

用于全序列(低到全变换)写中的高速缓存编程的算法以如上的较低页 编程开始。因此,步骤(1)-(4)与用于单页编程模式中的较低页处理一样:

(1)该处理通过将数据锁存器DL0 434-0复位为缺省值“1”而开始。 该惯例用于简化部分页编程,因为在所选行中的不将被编程的单元将被禁止 编程。

(2)编程数据沿着I/O线231被供应到DL0 434-0。

(3)编程数据将被传输到DL1 434-1和DL2 434-2(如果包括该锁存器 且实现快速通过写的话)。

(4)一旦编程数据被传输到DL 1 434-1,数据锁存器DL0 434-0就可以 被复位为“1”,且在编程时间期间,下一数据页可以沿着I/O线231被载入 DL0 434-0,允许在正写第一页的同时缓存第二页。

一旦载入第二页数据,如果该第二页数据对应于正被写入的较低页的较 高者、且较低页还没有完成编程,则可以实现向全序列写的转换。该讨论关 注这种算法中的数据锁存器的使用,其许多其他细节在共同未决的、共同转 让的美国专利No.7120051中更全面地展开。

(5)在较高页数据被载入锁存器DL0 434-0中之后,将在地址块中进行 判断,来检查2个页是否在同一字线和同一块上,且一页是较低页,一页是 较高页。如果是,则如果允许的话,编程状态机将触发较低页编程到全序列 编程转换。在任何未决的验证完成之后,则实现该变换。

(6)当编程序列从较低页改变为全序列时,典型地一些操作参数将改变。 在示例实施例中,这些包括:

(i)如果较低页数据还没有被锁定,则针对脉冲验证周期数的最大 编程循环将从较低页算法的最大编程循环改变为全序列的最大编程循环,但 是已完成的编程循环数将不会通过转换而被复位。

(ii)如图16所示,编程波形以在较低页编程处理中使用的值 VPGM_L开始。如果编程波形已经发展到超过在较高页处理中使用的开始值 VPGM_U的情况,则在向全序列转换时,该阶梯将退回到在继续升高阶梯之 前的VPGM_U。

(iii)确定编程脉冲的步长和最大值的参数不改变。

(7)应该进行对存储器单元的当前状态的全序列读,来保证对于多级编 码将编程正确的数据。这确保了当全序列开始时,以前可能已被锁定在较低 页编程中的、但需要进一步编程来考虑其较高页数据的状态不被禁止编程。

(8)如果激活了快速通过写,则还将更新锁存器DL2 434-2的数据,以 反映较高页编程数据,因为其以前是基于仅针对A状态的较低验证的。

(9)然后,以多级、全序列编程算法再继续编程。如果较低页处理中的 编程波形已经增加到较高页起始电平以上,则在转换时将该波形退回到该电 平,如图16所示。

图17是在较低页向全序列转换写处理中涉及的相对时间的示意表示。直 到时间t3,该处理是如上所述用于图15的处理。在t3,较高页的数据已经被 载入,且进行向全序列算法的变换,验证处理被切换为包括B状态和A状态。 一旦所有A状态都被锁定,则验证处理在时间t4切换到检查B和C状态。一 旦在t5验证了B状态,则仅需要检查C状态,且可以释放寄存器来载入接下 来要被编程的数据,比如在下一字线(WLn+1)上的较低页,如高速缓存忙碌 线(Cache Busy line)上指示的。在时间t6,该下一数据组已经被高速缓存, 且用于前一组的C数据的编程在t7终止,下一数据组开始编程。另外,在(此 时)字线WLn+1上的较低页正编程的同时,下一数据(比如相应的较高页数 据)可以被载入开放锁存器DL0 434-0中。

在全序列写期间,以独立地给出较低页和较高页状态的方式来实现状态 报告。在编程顺序结束时,如果存在未完成的位,则可以进行物理页的扫描。 第一扫描可以检查锁存器DL0 434-0以寻找未完成的较高页数据,第二扫描 可以检查DL1 434-1以寻找未完成的较低页数据。由于B状态的验证将改变 DL0 434-0和DL1 434-1数据两者,因此应该以如下方式进行A状态验证: 如果该位的阈值高于A验证电平,则DL1 434-1数据“0”将改变为“1”。该 后验证将检查任何编程下的B电平是否在A电平处通过;如果它们在A电平 处通过,则错误仅出现在较高页而不在较低页;如果它们不在A电平处通过, 则较低和较高页都有错误。

如果使用高速缓存编程算法,则在编程了A和B数据之后,C状态将被 转移到锁存器DL1 434-1来完成编程。在该情况下,扫描锁存器对较低页来 说不是必须的,因为该较低页将已经通过了编程,而没有任何失败的位。

本发明的另一组示例实施例涉及页复制操作,其中数据组从一个位置被 重新定位到另一位置。数据重新定位操作的各个方面在美国专利申请 No.US-2006-0257120-A1;US-2006-0136687-A1;以及US-2006-0031593-A1; 和美国专利号6266273中描述,其全部被引用附于此。当将数据从一个位置 复制到另一位置时,通常切换出该数据以被检查(例如以寻找错误)、更新(比 如更新头标(header))或这两者(比如校正所检测的错误)。这种转移还要在 垃圾收集操作中整理(consolidate)数据。本发明的首要方面允许被读到开放 寄存器的数据在写操作的验证阶段期间被插入,而被高速缓存的该数据然后 随着写操作的继续而被移出存储器器件,使得用于切换出该数据的时间被隐 藏在写操作背后。

以下呈现了高速缓存页复制操作的两个示例实施例。在两种情况下,描 述了使用快速通过写实施方式的实施方式。图18指示了随着处理的进展锁存 器的示例布置的部署。

高速缓存页复制的第一版本将向较低页写入,且可以包括以下步骤,其 中读地址被标注为M、M+1......且写地址被标注为N、N+1......:

(1)要复制的页(“页M”)被读入锁存器DL1 434-1中。这可以是较高 页或较低页的数据。

(2)然后,页M被转移到DL0 434-0中。

(3)然后在DL0 434-0中的数据被切换出,并被更改,之后其被移回到 该锁存器中。

(4)然后,编程序列可以开始。在要被写入较低页N中的数据被转移 到DL1 434-1和DL2 434-2之后,锁存器DL0 434-0准备好用于高速缓存数 据。该较低页将被编程。对于该实施例,编程状态机将在此停止。

(5)要被复制的下一页然后被读入DL0 434-0中。然后,编程可以恢复。 在步骤(4)结束时停止的状态机将从头重新开始该编程序列。

(6)编程继续直到较低页完成。

复制目的地页地址将确定写是向较低页还是向较高页。如果编程地址是 较高页地址,则该编程序列将不停止,直到该编程完成,且在写完成之后执 行步骤(5)的读。

在第二高速缓存页复制方法中,可以暂停编程/验证处理来插入读操作, 然后重新开始写操作,在其停下的点捡起。然后,在恢复的写操作继续的同 时,在该交错的感测操作期间所读的数据可以被切换出。而且,该第二处理 允许一旦仅C状态正被验证且在每个位线上的一个锁存器开放、页复制机制 就用于在较高页或全序列写处理中。第二高速缓存页复制操作以与第一种情 况相同的前三个步骤开始,但然后不同。其可以包括以下步骤:

(1)要复制的页(“页M”)被读入锁存器DL1 434-1中。这可以是较低 页或较高页。

(2)然后,来自页M的数据被转移到DL0 434-0中。(如之前,N等将 指示写地址,M等用于读地址。)

(3)在DL0 434-0中的数据然后被切换出、更改,之后其被移回到该锁 存器中。

(4)状态机编程将进入无限期等待状态,直到读命令进入,且另一页、 即下一页M+1向锁存器DL0 434-0的读将开始。

(5)一旦步骤(4)的读完成,地址就被切换回字线和块地址,以将在 步骤(1-3)中的数据编程到页N(在此,较低页)中,且恢复编程。

(6)在页M+1的读完成之后,该数据可以被切换出、更改和返回。一 旦该处理结束,如果两页是在同一WL上的相应较高和较低页,则该写就可 以被转换为全序列操作,

(7)一旦在全序列写中完成了A和B电平,则在DL0 434-0中的数据 将被转移到DL1 434-1中,如在先前描述的正常高速缓存编程中一样,且可 以发出对于另一页(例如,页M+2)的读命令。如果没有单个页向全序列转 换,则较低页将完成该写,且然后较高页将开始。在完全完成了B电平状态 之后,相同DL0 434-0到DL1 434-1数据转移将发生,且状态机将进入等待 对于页M+2的读命令的状态。

(8)一旦读命令到达,该地址就被切换到读地址,且读出下一页(页 M+2)。

(9)一旦该读完成,该地址就将被切换回先前的较高页地址(编程地址 N+1),直到该写结束。

如上所述,除了在保持可以被编程到每个存储器单元中的(在此,2位) 数据时使用的锁存器DL0 434-0和DL1 434-1之外,示例实施例还包括用于 快速通过写技术的较低验证的锁存器DL2 434-2。一旦较低验证通过,还可以 释放锁存器DL2 434-2,并将其用于高速缓存数据,虽然在示例实施例中没有 这样做。

图19A和19B图示了第二高速缓存页复制方法的相对时序,其中图19B 图示了具有全序列写转换的算法,且图19A图示了没有其的算法。(图19A 和19B都由两部分组成,第一较高部分在虚线垂直线A处开始,对应于t0, 且以虚线垂直线B结束,对应于t5;第二较低部分是较高部分的继续,且以 虚线垂直线B开始,对应于t5。在两种情况下,在时间t5的线B在较低部分 中与在较高部分中相同,恰好是在两个部分中的接缝处,允许其在两个线上 显示)。

图19A示出了以在该例子中被取为较低页的第一页(页M)的读开始、 假设先前没有高速缓存数据、且以单页模式操作的处理,其中在开始写较高 页之前等待直到较低页完成写为止。该处理在时间t0以页M的读(感测页M (L))开始,该页M在此是较低的,其在该编码中通过在A和C电平处的 读而被感测。在时间t1,读完成,且页M可以被切换出、检验或更改。在时 间t2开始,通过在B电平处读来感测下一页(在此是页M+1,对应于与较低 页M相同物理(physical)的较高页),该处理在时间t3结束。此时,第一页 (来源于页M)(较低)准备好被编程回到在页N处的存储器中,且从页M+1 读取的数据正被保持在锁存器中,且可以移出以被更改/检查。这两个处理可 以同时开始,在此在t3开始。使用上述的典型时间值,来自页M+1的数据到 时间t4已经被移出且更改;但是,对于不实施全序列转换的实施例,该存储 器将等待直到页N在时间t5结束以开始将(来源于页M+1的)第二读出页的 数据写入页N+1中。

由于页N+1是较高页,因此其写首先以在B电平处的验证开始,在t6添加C电平。一旦具有目标状态B的存储元件在时间t7都被锁定(或到达了 最大计数),就放弃(drop)B状态验证。如上所述,根据本发明的几个主要 方面,这允许释放数据锁存器,暂停正进行的写操作,穿插(interpose)读操 作(在与暂停的编程/验证操作不同的地址处),然后在写停下的地方恢复, 且在穿插的写操作中感测的数据可以在恢复的写操作运行的同时被切换出。

在时间t7,对于在此的较低页M+2进行穿插的写操作。在时间t8结束 了该感测,且拾起页N+1的写,且来自页M+2的数据同时被切换出并更改。 在该例子中,在页M+2在时间t10结束之前,页N+1在时间t9结束编程。 在时间t10,来源于页M+2的数据的写可以开始;但是,在该实施例中,而 是,首先执行页M+3的读,允许要切换出和更改的该页数据被隐藏在开始于 时间t11时的来源于页M+2的数据向页N+2中写入的背后。然后,该处理如 在该图的较前部分中一样继续,但页号转变,时间t11对应于时间t3,时间 t12对应于时间t4,等等,直到复制处理停止。

图19B再次示出了以读较低页、即被取为较低页的页M开始、且假设先 前没有高速缓存数据的处理。图19B与图19A不同在于在时间t4实现向全序 列写的转换。这大致将处理加快了图19A的时间(t5-t4)。在时间t4(=图19A 中的t5),如先前所述那样实施与全序列转换有关的各种改变。在此之外,该 处理类似于图19A的处理,包括在时间t7和t12之间得到的本发明的那些方 面。

在涉及写数据的在此描述的页复制处理和其他技术中,可以根据美国专 利公开号US-2004-0109362-A1中所描述的线索智能地选择在给定时间验证 哪些状态,该美国专利公开被引用附于此。例如,在全序列写中,该写处理 可以开始仅验证A电平。在之前的A验证之后,检查以看任何位是否都通过 了。如果是,可以向验证阶段添加B电平。在具有A电平验证作为其目标值 验证的所有存储单元后(或除了基于可设置的参数的最大计数以外),将移除 A电平验证。类似地,在B电平处的验证之后,可以添加C电平的验证,且 在具有B电平验证作为其目标值验证的所有存储单元后(或除了基于可设置 的参数的最大计数以外),移除B电平验证。

关于优选的多状态编码来描述带有用于其他操作的背景数据高速缓存的 编程操作。

用于4状态存储器的示例优选“LM”编码

图20图示了用2位逻辑码(“LM”码)来编码的4状态存储器的编程和 读。该码提供了错误容限,且缓解了由于Yupin效应的相邻单元耦合。图20 图示了当每个存储器单元使用LM码来存储两位数据时4-状态存储器阵列的 阈值电压分布。LM编码不同于传统格雷码之处在于,保留较高和较低位用 于状态“A”和“C”。“LM”码已经在美国专利No.6657891中公开,且有益 于通过避免需要电荷的很大改变的编程操作来减少在相邻浮置栅极之间的场 效应耦合。

设计该编码使得可以分离地编程和读取2位,即较低和较高位。当编程 较低位时,该单元的阈值电平仍然处于未编程区域中,或被移动到阈值窗的 “中下(lower middle)”区域。当编程较高位时,在这两个区域的任一中的 阈值电平进一步提高到不大于阈值窗的四分之一的稍高的电平。

数据样式的伪(psuedo)和用户驱动随机化

存储器EEPROM或芯片和随机化方法的各种实施例追求最小化由于重 复数据存储样式引起的问题,比如增加的NAND串电阻、降低的容忍度和可 靠性以及不希望的耦合。本发明的伪随机技术是实用的,且在数据处理容量 方面,它们实现起来不贵。

本发明包括实现对在闪存芯片上存储的数据的伪随机化和基于真实用户 的随机化的不同实施例和方法。所有实施例有如下优点:仅需要在快闪 EEPROM中实现简单且小的电路更改。这是值得注目的,因为随机化技术和 电路在计算上强度不大,且即使有性能损失也只损失很少就实现了。本发明 的解决方案也很灵活,在于可以在任何时间容易地使能或禁用随机化。另外, 在某些实施例中使用的伪随机化的样式可以以许多方式变化,且在时间上容 易改变。

图21图示了与随机化处理有关的EEPROM或存储器芯片600的主要组 件。芯片600包括存储器阵列602、在外围电路中的(一个或多个)寄存器 610、以及复用器614。芯片600的其他组件将在另外的附图中图示并参考这 些附图描述。寄存器610能够保持多位,且可以包括多个寄存器。在一些实 施例中,其起到移位寄存器的作用。存储器阵列602包括隐藏区604和用户 数据区606。隐藏区可以用于存储固件和其他开销数据,比如存储器操作控 制码。在NAND架构中,如先前描述的,数据被组织在块中,每块可以包括 多页数据。在某些实施例中,将既不出现寄存器610也不出现复用器614。

本发明的各个实施例将减少或消除可能导致编程干扰或用户读干扰的、 对具体数据样式的长期且重复的存储。这通过用伪随机机制或用户触发的随 机化来变化数据的编码而实现。由于用户活动性的定时完全不可预测,因此 使用该活动性作为触发器得到了编码方案的真正随机序列。每个实施例还将 减少NAND串电阻效应,增加存储器容忍度和可靠性,且减少浮置栅极与浮 置栅极耦合的问题。

每个实施例仅需要对快闪EEPROM的电路进行最小的更改,但同时将显 著地增加数据存储的随机性,因此增加EEPROM的性能。可以容易地在该阵 列中使能或禁用数据的随机化。另外,负责该伪随机化的序列可以持续改变, 提供了系统内的灵活性。

在一个实施例中,可以是零或一的位的码或序列被存储在阵列602的隐 藏区604中。隐藏区604中存储了该码的部分可以被称为“ROM块”。该码 可以包括2个或更多位,但优选地包括17或更多位。位越多,随机化将越大。 在芯片600通电后,值被载入寄存器610中。在该寄存器中的每位都被分配 到具体的页地址。将每位与页的页地址比较,且基于该比较,该页的数据的 编码将被反转,或对该页将仍然相同(通过(passed))。例如,该位的0值可 以用于指示该数据的编码方案将仍然相同,而该寄存器中的1值可以指示在 页内的数据的编码将被反转。如果该码包括少于一块内的页的数量的位,则 该码可以应用于不止一个一页或多页的组。换句话说,该码可以连续重复使 用,直到所有页都被比较。该码还可以在各周期之间改变。或者,可以通过 复用器614来复用该码,使得一个码的一位将确定在用户数据区602中存储 的多页数据的编码。该码的每位可以称为极性位(polarity bit),因为其用于 改变对用户数据的某部分采用的编码的极性。这在图22A中绘出。在这种情 况下,编码是基于页地址的,以便知道页0、N具有极性1,而页1、n+1具 有极性0,页2、n+2具有极性1,等等。因此,在编码是基于页地址的实施 例中,不需要存储页的极性位,虽然为了冗余可以这样做。

以下看到的并如图22B再现的表1图示了在寄存器610中的码的极性位 应用于用户数据的部分。虽然可以将用户数据的任意部分与具体极性位比较 且相关联,但所描述的优选实施例图示了一页作为基本单位。

表1

如表中可见,码的每个(极性)位将确定位的原始编码(数据)是将仍 然相同还是将改变。例如,见寄存器位置1,在该位置中的极性码具有值1。 因此,在1指示数据将被反转的实施例中,被存储为0的用户数据的原始位 将被反转为值1。该表图示了多状态单元,其中2位用于定义一个状态。图 20中示出了各状态,且从图20中可见,较高和较低位定义了这些状态。在 图20所示的这类2位或4状态存储器单元中,(1:1)定义了擦除(“ER”) 或未编程(“U”)状态;(0:1)定义了状态A,(0:0)定义了状态B,且(1: 0)定义了状态C。较高和较低位可以物理上位于单个存储器单元中。相同或 不同码可以被应用于另一组数据,以便对应于位17的数据组将与对应于所应 用的下一码的位1的数据结合使用来确定状态。每个极性寄存器将控制在相 应的页上的所有数据的极性。优选地,较低和较高位位于相同物理字线上。 在表1中给出的例子图示了用于将单个样式转换为经过许多字线的(一个或 多个)随机样式的极性位的功能。对位于相同NAND链结构的数据实现随机 化,在图22C中提供其例子以图示该概念。

在图22C中,在图示的NAND串或链的每个单元处图示了给定单元的较 低和较高位。所示的NAND串仅是例子,且当然可以在一串中存在更多或更 少的单元,且本发明可以使用不同于所示的结构。例如,还可以使用存储3、 4或更多位的单元。而且,应该记得,极性位优选地应用于一页或更多数据, 虽然示出了在位电平上的应用以图示位反转的概念,尤其是在多状态存储器 中。在图22C中,向用户数据的每位应用极性位,且由极性位的反转或通过 得到的用户数据被标注为保存的数据(saved data)。该保存的数据是随后将被 写到存储器阵列并被存储为随机化操作的结果的数据。如可以看到的,由该 单元的较高和较低位来定义在图的右侧指示的状态。在图22C中使用的“保 存的数据”术语对应于在表1和图22B中所称的“用户数据(UD)随后编码”。

图23A图示了另一实施例,其中图21所示的寄存器是有反馈的移位寄 存器。在这种实施例中,该寄存器610被配置为伪随机生成器。其内容被周 期地反馈以生成伪随机数的序列。以此方式,与一次使用码的所有位的实施 例相反,将一次使用一位。在到来的用户页上使用的极性位将来自上一寄存 器输出。优选地在命令的上升沿这样做。触发命令可以是编程命令、高速缓 存编程命令、读命令、擦除命令、或其他用户发出的命令。示例的编程命令 信号在图23B中示出。示出了与该命令相关的时钟信号,且由用户请求来触 发该命令的例化(instantiation),该请求的时序和类型是不可预测且实质上是 随机的。图23A图示了作为确定极性位的输入之一的与用户命令相关的时钟 信号。图中的另一输入是用户数据。极性位的应用将该数据的编码反转或维 持原样,如先前描述的。

图23C图示了用于数据转换的控制电路的例子。具有单个反相器的数据 路径将导致编码的反转,而具有串联的两个反相器的路径将导致数据编码方 案不改变。在这种情况下,与一组数据相关的极性位将随该组数据被存储。 例如,如图23D所示,对于一页数据630,用于用户区636中的数据的极性 位632将被编程到页630的隐藏区634中。当读该页630时,极性位632将 被移出且被锁存以控制输出数据,且如果编码机制被反转,则将回复(revert) 编码机制,如由图23E所示的示例电路完成的。以此方式,该页的极性将被 回复到其原始编码。

由移位寄存器使用的码的样式可以改变,且可以更改用于不同应用。如 果所有位被设置为0(在0指示不改变的情况下),则将禁用随机化。尽管在 寄存器中的位的样式是伪随机的,但用户行为是不可预测的,且在任何给定 的时间得到的极性因此也是不可预测且随机的。用户行为的两个例子如下:1) 用户编程一些页,且跳到不同的地址来读或编程一些页,或擦除一些块,然 后返回到上次编程发生的块,且继续编程更多页;以及2)用户顺序地编程 所有页,而不跳到另一地址。在情况1中,对于每个用户命令可以触发新的 极性位,而在情况2中,顺序编程将利用且基于一个极性位。因此,即使用 户想要存储的原始数据可能对两个情况来说相同,但是在存储器中最后编程 的数据很可能在这2个情况下对于各个不同的页和各组页中的至少一些而不 同。注意,EEPROM典型地由控制器芯片控制,且“用户”的一些动作可以 是控制器芯片的动作。

在另一实施例中,由于用户命令,比如先前描述的高速缓存编程操作, 还随机地生成极性位。该实施例使用不同步的两个输入。第一是用户命令的 时序,如先前所述其是不可预测的。第二是有限状态机时钟。在某些存储器 系统中,有限状态机时钟仅在某些时间(例如,在高速缓存操作期间)是有 效的,而在其他系统中,其可以总是有效。无论何时存储器系统的有限状态 机时钟有效时,该实施例的此技术都可用。

在用户命令时钟信号的上升沿,参考有限状态机(“FSM”)时钟的电平 或状态。该状态可以是高或低,如在图24A中看到的。低状态可以对应于零 的极性位(虽然相反的对应也是可能的)。在时间t=0时,FSM是低,因此极 性位将是零,指示不改变数据编码,如前所述。在时间t=1时,FSM是高, 且极性位将是一,而在时间t=3时,FSM再次位于低状态。在一些实施例中, 只要发出执行命令且感测到它,就将极性位632载入隐藏区634。在其他实 施例中,其可以被临时存储在该系统的另一存储器中。图24B图示了用于确 定如上所述的极性位的示例电路。将再次优选在上升沿触发反相器。

图25更详细地图示了图7A和图9中示出的芯片上控制电路。除了状态 机312和地址解码器或生成器314以外,该芯片上控制电路还包含了数据加 扰器318。在优选实施例中,它包含了图21和23A所示的寄存器610和复用 器614。在另一优选实施例中,其还包含图23C所示的数据反转电路和图23E 所示的数据回复电路。

如图21到图25和相关文本所公开的,并行地编程或读可由公共字线访 问的每页数据。通过伪随机地选择某些页来使得它们的位的极性翻转,来实 现逐页的随机化。

在Yan Li等人的于2006年9月8日提交的题为“Methods in a Pseudo Random and Command Driven Bit Compensation for the Cycling Effects in Flash Memory(对于闪存中的循环效应的伪随机和命令驱动位补偿中的方法)”的 美国申请NO.11/530392中公开了数据的芯片上、逐页随机化,该申请全部被 引用附于此。

一页内的数据的芯片上伪随机化

还期望加扰每页内的数据。这有益于避免在编程期间可能引起问题的某 些高度规则的数据样式,还有益于当并行感测一页数据时控制源极载入错误。

如果重复的数据样式被用户或者控制器存储到某些页中,则数据可以将 在某NAND链的编程期间对升压模式(boosting mode)有害的某些样式排队 (line up)。当大量NAND链(见图1D和图3)在编程期间共享所选的字线 时,不将被编程的链通过使得它们的沟道区域升压以便减少施加到所选字线 的有效编程电压,而被禁止编程。例如,NAND型存储器典型地使得每个 NAND链从源极侧编程到漏极侧。如果在源极侧上的大量存储器单元处于擦 除状态,则由于来自漏极侧的升压沟道的电荷可能经由由擦除的单元建立的 高度导电的沟道而向源极泄漏,因此在编程禁止期间该升压沟道将不是非常 有效。不太有效的沟道升压和由此的编程禁止可能导致编程干扰和错误的结 果。在美国申请公开No.US-2006-0198195-A1和Farookh Moogat等人在2006 年12月29日提交的题为“Method of NAND Flash Memory Cell Array with Adaptive Memory State Partitioning(具有适应的存储器状态划分的NAND闪 存单元的方法)”的美国申请No.US 11/618482中讨论了与升压效率有关的问 题,其全部公开被引用附于此。

根据本发明的一个方面,页中的数据被随机化以便当来自几页的数据被 排队时,在编程期间避免有问题的数据样式。

通过偏移每页的起始位置来加扰

在一个优选的实施例中,加扰在一页上的数据的简单方式是将数据写到 每个不同的页的独立或不同的起始地址。相应页的数据被写入位于每页的不 同起始位置处的每页存储器单元。当数据被填入到页的结尾时,通过从该页 的第一地址绕回(wrap around)而继续,直到就在起始位置之前。

图26图示了根据从每页的不同起始位置开始写的一个优选实施例加扰 存储器页上的数据的方法。

步骤700:提供具有可逐页访问的非易失性存储器单元的阵列的集成电 路存储器芯片,每页是一群存储器单元,一群的每个存储器单元位于该阵列 的列中,且沿着可由公共字线访问的行。

步骤710:在芯片上生成起始列位置的序列,以便要被编程的每页具有 相关的起始列位置。

步骤720:通过从相关起始列位置开始且绕回直到该页被填满,将要被 编程的数据安排(stage)到每页中。

步骤730:并行将安排的数据编程到每页中。

图27是图示具有用于写数据的不同起始位置的不同页的例子的表。例 如,在页0上,字节0将从列0开始被载入。在页1上,字节0将从列1开 始被载入。该数据将继续通过列n-1载入,并绕回列0。在该例子中,每页具 有指定的偏移来帮助错开(misalign)页与页之间的数据中的任何重复样式。 通常,给出起始列地址作为页号的函数。当到达物理列的结尾时,数据绕回 到物理列的开始处。例如,Starting_Column_Address(Page_Number)(开始列 地址(页号))=Page_Number(MOD(n-1))+k,其中k是预定数,且(n-1)是正 被并行编程的存储器单元的总数。例如,当k=0时,每页从前一页偏移了一 列。

在优选实施例中,通过控制图9所示的I/O电路440来实现对于给定页 的起始列位置的偏移。典型地,地址解码器314在数据载入操作中,将物理 页的起始地址发给I/O电路。根据起始地址,数据被逐列按时钟输入(clock into)I/O电路。在绕回的情况下,当到达物理列的结尾时发出第二起始地址。

图23D图示了每页的起始列地址可以被存储在该页中预留用于系统使用 的部分中。例如,页630的起始列地址被存储在存储器阵列的部分634中。

在另一优选实施例中,通过诸如图23A所示的伪随机生成器来提供每页 一个的起始物理列地址的序列。

偏移每页的起始位置可以避免不期望的数据样式在NAND链内排队,且 有助于缓解在编程期间的升压问题。

除了缓解在编程期间的沟道升压问题以外,加扰在一页内的数据还有助 于控制在感测期间的源极载入错误。

由在源极线和芯片的地垫之间的有限电阻引入了源极载入错误。感测存 储器单元的一个潜在的问题是由跨越有限电阻的源极载入而引起的源极线偏 压。当并行地感测大量存储器单元时,其组合的电流可以导致在具有有限电 阻的地回路中的显著电压降。这导致源极线偏压,其引起在使用阈值电压感 测的读操作中的错误。

图28A图示由于在具有对地的有限电阻的源极线中的电流流动引起的源 极电压错误的问题。读/写电路370A和370B同时在一页存储器单元上操作。 在读/写电路中的每个感测模块480经由位线36耦合到相应的单元。根据图8 所示的读/写堆栈400,每个感测模块480包括连接到位线之一的感测放大器 212、一组数据锁存器430和共享公共处理器500和I/O电路440。对于并行 操作,将存在用于一页中的每个存储器单元的感测模块。

例如,感测模块480感测存储器单元10的导电电流i1(源极-漏极电流)。 该导电电流从感测模块经过位线36流入存储器单元10的漏极,且在经过源 极线34流到地之前从源极14流出。在集成电路芯片中,在存储器阵列中的 单元的源极被联系在一起,作为连接到存储器芯片的某外部地基垫(ground pad,例如Vss基垫)的源极线34的多个分支。即使当使用金属带来降低源 极线的电阻时,有限电阻R仍然在存储器单元的源极电极和地基垫之间。典 型地,地回路电阻R是大约10欧姆。

对于正被并行感测的存储器的整个页来说,流过源极线34的总电流是所 有导电电流的总和,即iTOT=i1+i2+...+ip。通常,每个存储器单元具有依赖于 被编程到其电荷存储元件中的电荷量的导电电流。对于存储器单元的给定控 制栅极电压,小的电荷将产生相对较高的导电电流(见图4)。当在存储器单 元的源极电极和地基垫之间存在有限电阻时,跨越该电阻的电压降由 Vdrop=iTOTR给出。

例如,如果64000个位线同时放电,每个具有1μA的电流,则源极线 电压降将等于64000线×1μA/线×10欧姆~0.64伏特。假设体效应(body effect)使得在源极电压中0.64V的升压导致阈值电压中0.96V的升压,则当 感测存储器单元的阈值电压时,该源极线偏压将促成0.96伏特的感测误差。

图28B图示了由源极线电压降引起的存储器单元的阈值电压电平中的误 差。被供应给存储器单元10的控制栅极30的阈值电压VT与GND有关。但 是,由存储器单元看到的有效的VT是在其控制栅极30和源极14之间的电压 差。在供应的VT和有效的VT之间存在大约1.5×Vdrop的差(忽略从源极14 到源极线的电压降的较小影响)。当感测存储器单元的阈值电压时,该Vdrop或源极线偏压将促成例如0.96伏特的感测误差。

该偏压不能轻易地被移除,因为它是独立于数据的,即独立于该页的存 储器单元的存储器状态。该偏压在一种极端情况下最高:即当该页的所有存 储器单元都处于擦除状态时。在该情况下,每个单元都是高度导电的,促成 大的Vdrop及由此的高源极线偏压。另一方面,在另一极端下,当在该页中的 所有存储器单元都在最大编程状态(most programmed state)时,则每个单元 是不导电的,导致最小或无源极线偏压。

根据本发明的另一方面,页中的数据位被随机化,以便平均而言该页包 含具有擦除和编程状态的相等的单元混合。以此方式,源极线偏压或载入实 质上不改变,且可以允许在感测操作期间的适当调整。

这通过随机化一页内的各个位来实现。优选地,使用每位指定特定极性 的伪随机位的序列来编码该页内的位。在一个实施例中,对于页中的每个数 据位存在一个极性位。在另一实施例中,对于页中的每字节数据存在一个极 性位。在此实施例中,如果极性位指定了位的翻转,则在该数据字节内的所 有位将被翻转。

图29图示了随机化一页内的位的方法。

步骤750:提供具有可逐页访问的非易失性存储器单元的阵列的集成电 路存储器芯片,每页是一群存储器单元,该群的每个存储器单元位于该阵列 的列中,且沿着可由公共字线访问的行。

步骤760:提供用于要被编程的页的每组数据位的第一和第二编码。

步骤762:在芯片上生成极性位的序列,每组数据位一个极性位。

步骤764:根据每组数据位的极性位是处于第一还是第二状态,用第一 或第二编码来编码每组数据位。

步骤770:并行地将所有编码的数据位的集合编程到页中。

优选地通过诸如图23A所示的伪随机生成器来提供每组数据位一个的极 性位的序列。每组数据位包含预定数量的位。例如,在一个实施例中,位的 预定数量是1。在另一实施例中,位的预定数量是8位。

一页内和各页之间的数据的芯片上伪随机化

对于一些极其规则的数据样式、比如所有都具有擦除状态的页,在一页 内加扰的方案是不够的。

根据本发明的另一方面,一页内的随机化与各页间的随机化相结合。具 体地,给定了芯片上电路的有限资源,优选地通过具有独立的起始位置的每 页来完成一页内的随机化,且优选地通过具有独立的编码极性的每页来完成 各页间随机化。

图30图示了根据本发明的另一方面的逐页和在每页内随机化数据的方 法。

步骤800:提供具有可逐页访问的非易失性存储器单元的阵列的集成电 路存储器芯片,每页是一群存储器单元,该群的每个存储器单元位于该阵列 的列中,且沿着可由公共字线访问的行。

步骤810:提供用于要被编程的每页数据的第一和第二编码。

步骤812:在芯片上生成极性位的序列,每页一个极性位。

步骤814:根据该页的极性位是处于第一还是第二状态,用第一或第二 编码来编码该页数据。

步骤820:在芯片上生成起始列位置的序列,以便要被编程的每页具有 相关的起始列位置。

步骤822:通过从相关起始列位置开始且绕回直到该页被填满,将要被 编程的数据安排到每页中。

步骤830:并行将安排的数据编程到每页中。

在另一实施例中,还通过在步骤810到步骤822之间插入图29所示的步 骤760、步骤762和步骤764,来完成一页内的数据位随机化。在此实施例中, 在字线方向上的位和在列方向上的位都被随机化。

在此引用的所有专利、专利申请、文章、书籍、规范、其他公开、文档 和事物为了一切目的而通过此全部被引用附于此。对于在任何并入的公开物、 文档、事物与本发明的文本之间的术语的定义或使用中的任何矛盾或冲突的 程度,在本文档中的术语的定义和使用应该是优先的。

虽然已经描述了本发明的实施例,应该理解,本发明不局限于这些例示 的实施例,而是由所附权利要求来定义。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号