专利名称:具有不同于感测放大器电路的页寄存器和存储器阵列下方的感测放大器接口的3d存储器装置的制作方法
技术领域:
本发明涉及用于非易失性存储的 技术。
背景技术:
半导体存储器已变得更加普遍地用于各种电子装置中。例如,非易失性半导体存储器被用于蜂窝电话、数码相机、个人数字助理、移动计算装置、非移动计算装置以及其它装置中。随着用户想要存储的数据量变大,需要更高密度的存储。三维存储器是更高密度存储的一个示例。然而,更高的密度不应以更低的性能为代价来实现。
图I是存储器系统的一个实施例的框图;图2是存储器单元的一个实施例的简化透视图;图3是示出在存储器单元的一个示例中使用的可逆电阻切换元件的I-V特性的图形;图4A是三维存储器阵列的一个实施例的一部分的简化透视图;图4B是三维存储器阵列的一个实施例的一部分的简化透视图;图5是示出三维存储器阵列的不同层的框图;图6是衬底的俯视图,该衬底上方实现存储器系统;图7是示出存储器阵列的组织结构的一个示例的框图;图8是示出存储条(memory stripe)的组织结构的一个示例的框图;图9是用于存储器阵列的支持电路的一个实施例的框图;图10是页寄存器的一个实施例的框图;图11是用于存储条的支持电路的一个实施例的框图;图12是描述对数据进行编程的过程的一个实施例的流程图;图13是描述对数据进行编程的过程的一个实施例的时序图;图14是描述包括跳过循环(skipping cycle)的对数据进行编程的过程的一个实施例的流程图;图15是描述包括跳过循环的对数据进行编程的过程的一个实施例的时序图;图16是描述包括跳过循环的对数据进行编程的过程的一个实施例的流程图;图17是描述包括跳过循环的对数据进行编程的过程的一个实施例的时序图。
具体实施例方式这里提出了一种非易失性存储装置,该非易失性存储装置包括三维存储器结构以增加存储密度。包括多个非易失性存储元件的三维存储器结构被布置在衬底(或其它材料)上方。为了使来自较长信号长度的延迟最小化,在三维存储器结构下方放置多数控制电路。然而,不是所有的控制电路都能适合在三维存储器结构的合适部分下方,并且具有长信号线可带来RC延迟。因此,提出了在三维存储器结构外部布置页寄存器(或其它类似的中间存储装置),并且在三维存储器结构下方包括一组临时存储装置(例如,锁存器或寄存器)和感测放大器。由感测放大器从非易失性存储元件读出的数据被传送至临时存储装置,并且随后传送至页寄存器。要被编程到非易失性存储元件中的数据从页寄存器被传送至临时存储装置。注意,该页寄存器存储数据的逻辑页,其中,逻辑页是编程单元。也可以使用页寄存器的其它变型或不同的存储装置。图I是示出能实现本文所述技术的存储器系统100的一个示例的框图。存储器系统100包括存储器阵列102,其可为二维或三维的存储器单元阵列。在一个实施例中,存储器阵列102是单片式三维存储器阵列。存储器阵列102的阵列终端线包括被组织为行的不同层的字线和被组织为列的不同层的位线。然而,也可实施其它方位。
存储器系统100包括行控制电路120,该行控制电路120的输出108与存储器阵列102的相应字线相连。出于本文的目的,连接可以是直接连接或者间接连接(例如经由一个或多个其它部件)。行控制电路120从系统控制逻辑电路130接收一组M个行地址信号以及一个多个不同控制信号,并且通常可以包括例如行解码器122、阵列驱动器124和块选择电路126等的电路,以用于读出和编程操作。存储器系统100还包括列控制电路110,该列控制电路110的输入/输出106与存储器阵列102的相应位线相连。列控制电路110从系统控制逻辑电路130接收一组N个列地址信号以及一个多个不同控制信号。在一些实施例中,列控制电路110可以接收数据信号。列控制电路110包括例如列解码器112、驱动电路114、块选择电路116、感测放大器118及页寄存器120等的电路。在一个实施例中,感测放大器118向位线提供信号并且感测位线上的信号。在本文中可使用本领域中已知的各种感测放大器。系统控制逻辑130从控制器134接收数据和命令,并且向控制器134提供输出数据和状态。控制器134与主机(例如,照相机、计算机、蜂窝电话等)进行通信。系统控制逻辑130可以包括一个或多个状态机、寄存器和其它控制逻辑,以用于控制存储器系统100的操作。在其它实施例中,系统控制逻辑130从主机直接接收数据和命令,并且向该主机提供输出数据,这是因为系统控制逻辑130 (在本实施例中)包括控制器的功能。在一个实施例中,系统控制逻辑130、列控制电路110、行控制电路120以及存储器阵列102形成在同一集成电路上。例如,系统控制逻辑130、列控制电路110、以及行控制电路120可形成在衬底的表面上;而存储器阵列102是形成在该衬底上方(因此被形成在系统控制逻辑130、列控制电路110、以及行控制电路120中的至少一部分上方)的单片式三维存储器阵列。在一些情况中,控制电路的一部分与有些存储器阵列可形成在相同的层上。关于与图I所示类似的合适实施例的更多信息可在以下美国专利中找到美国专利6,879,505、美国专利7,286,439、美国专利6,856,572、以及美国专利7,359,279,这些美国专利通过引用以其全部内容并入本文中。控制器134可以与图I中示出的其它组件位于相同的或不同的衬底上。可将控制器134、系统控制逻辑130、列控制电路110、以及行控制电路120单独地或者以任何组合看作一个或多个控制电路。存储器阵列102包括多个存储器单元。在一个实施例中,每个存储器单元均包括控向元件(例如,二极管)和电阻元件。在一个示例实施方案中,存储器单元可以是如下单元它们能够被编程一次而被读取许多次。一个示例存储器单元包括在上导体和下导体之间的交叉点处形成的、层的支柱。在一个实施例中,支柱包括与状态变更元件(例如反熔丝层)串联连接的控向元件(例如,二极管)。当反熔丝层完整时,存储器单元在电学上为开路。当反熔丝层被破坏时,该存储器单元在电学上是与被破坏的反熔丝层的电阻串联连接的二极管。存储器单元的示例可在美国专利6,034,882、美国专利6,525,953、美国专利6,952,043、美国专利6,420,215、美国专利6,951,780、以及美国专利7,081,377中找到。在另一实施例中,存储器单元是可重写的。例如,美国专利申请公布No. 2006/0250836描述了包括与可逆电阻切换元件串联耦接的二极管的可重写非易失性存储器单元,该申请通过弓I用以其全部内容并入本文中。可逆电阻切换元件包括具有可以在两个或更多状态之间可逆切换的电阻性的可逆电阻切换材料。例如,一旦制造后,可逆电阻切换材料可以处于初始高阻态,在施加第一电压和/或电流时,该初始高阻态可切换至低阻态。施加第二电压和/或电流可以使可逆电阻切换材料返回至高阻态。可替选地,一旦制造后,可逆电阻切换元件可以处于初始低阻态,在施加合适的电压和/或电流时,该初始 低阻态能够可逆切换至高阻态。一个阻态可以表示二进制“0”而另一阻态可以表示二进制“I”。可以使用超过两个的数据状态/阻态,以使得存储器单元存储两位或更多位数据。在一个实施例中,将电阻从高阻态切换至低阻态的过程被称为“置位”(SET)操作。将电阻从低阻态切换至高阻态的过程被称为“复位”(RESET)操作。高阻态与二进制数据“0”关联,而低阻态与二进制数据“I”关联。在其它实施例中,置位及复位和/或数据编码可被颠倒。在一些实施例中,首次对电阻切换元件进行置位需要比正常电压更高的电压,并且被称为“形成”(FORMING)操作。图2是存储器单元150的一个示例的简化透视图,该存储器单元150包括位于第一导体166与第二导体168之间且串联耦接的可逆电阻切换元件162、控向元件164以及阻挡体165。可逆电阻切换元件162包括具有可在两个或更多个状态之间进行可逆切换的电阻的可逆电阻切换材料170。在一些实施例中,可逆电阻切换材料170可由金属氧化物形成。可使用各种不同的金属氧化物。在一个示例中,使用了氧化镍。在至少一个实施例中,通过使用选择性沉积工艺,氧化镍层可以在该氧化镍层不被蚀刻的情况下被用在可逆电阻切换材料中。例如,可逆电阻切换元件可以通过采用例如电镀或无电沉积等的沉积工艺来形成,以选择性地将含镍层仅沉积在衬底上形成的导电表面上。通过这种方式,仅对衬底上的导电表面进行图案化和/或蚀刻(在沉积含镍层之前)而不对含镍层进行图案化和/或蚀刻。在至少一个实施例中,可逆电阻切换材料170包括通过有选择地沉积镍并且随后使镍层氧化而形成的氧化镍层的至少一部分。例如,Ni、NixPy或镍的其它类似形式可以通过使用无电沉积、电镀或类似选择性工艺而被选择性沉积,并且随后被氧化以形成氧化镍(例如,使用快速热氧化或其它氧化工艺)。在其它实施例中,氧化镍自身可以被选择性沉积。例如,含Ni0、Ni0x或NiOxPy层可以通过使用选择性沉积工艺被选择性沉积在控向元件上,并且随后被退火和/或氧化(必要时)。可以选择性沉积其它材料,并且随后在必要时使其退火和/或氧化,以形成用于存储器单元中的可逆电阻切换材料。例如,可以例如通过电镀而选择性沉积Nb、Ta、V、Al、Ti、Co、钴镍合金等的层,并且将其氧化,以形成可逆电阻切换材料。另一可变电阻材料是掺杂有V、Co、Ni、Pd、Fe或Mn的非晶硅,例如,如Rose等人在美国专利No. 5,541,869中更加完整描述的那样。另一类材料由Ignatiev等人在美国专利 No. 6,473,332 中公开它们是例如 Pr1-XCaxMnO3 (PCMO)、La1-XCaxMnO3 (LCMO)、LaSrMnO3(LSMO)或GdBaCoxOy(GBCO)的钙钛矿材料。对于这个可变电阻材料的其它选择是包括(例如被混合到塑料聚合物中的)炭黑颗粒或石墨的碳聚合物膜,如Jacobson等人在美国专利No. 6,072,716中公开的那样。另一示例是将碳纳米管用作可逆电阻切换材料。Campbell等人在美国专利申请2003/0045054中以及Campbell在美国专利申请2003/0047765中公开了另一材料。这个材料是掺杂质的硫属化物玻璃,具有分子式AxBy,其 中 A 包括来自周期表的 IIIA 组(B,Al,Ga,In,Ti)、IVA 组(C,Si,Ge,Sn,Pb)、VA 组(N,P,As,Sb,Bi)、或VIIA组(F,Cl, Br, I,At)中的至少一个元素,其中B选自S、Se、Te及其混合物。掺杂物选自贵金属和过渡金属,包括Ag、Au、Pt、Cu、Cd、Ir、Ru、Co、Cr、Mn或Ni。这个硫属化物玻璃(非晶硫属化物,不为结晶状态)被形成在与移动金属离子的储蓄器相邻的存储器单元中。一些其它固体电解质材料可能替代硫属化物玻璃。其它可变电阻材料包括非晶碳、石墨和碳纳米管。对于本文中描述的技术也可使用其它材料。与使用可逆电阻切换材料来制造存储器单元有关的更多信息可在题为"MemoryCell That Employs A Selectively Deposited Reversible Resistance SwitchingElement and Methods of Forming The Same"的美国专利申请公布2009/0001343 中找到,该美国专利申请公布通过引用以其全部内容并入本文中。另外的信息还可在于2008年12月 19 日提交的题为"Reverse Set With Current Limit for Non-Volatile Storage"的美国专利申请12/339,313中找到,该美国专利申请通过弓I用以其全部内容并入本文中。可逆电阻切换元件162包括电极172和174。电极172位于可逆电阻切换材料170与导体168之间。在一个实施例中,电极172由钼制成。电极174位于可逆电阻切换材料170与控向元件164之间。在一个实施例中,电极174由氮化钛制成,并且用作阻挡层。控向元件164可以为二极管,或者通过对跨可逆电阻切换元件162的电压和/或流过该可逆电阻切换元件162的电流进行选择性限制而展现出非欧姆导电的其它合适控向元件。通过这种方式,存储器单元150可以被用作二维或三维存储器阵列的一部分,并且数据可以被写入存储器单元150和/或从存储器单元150读出而不影响阵列中其它存储器单元的状态。控向元件164可以包括任何合适的二极管,例如垂直多晶p-n或p-i-n 二极管,无论是二极管的n区在p区上方而朝上指向,还是二极管的p区在n区上方而朝下指向。在一些实施例中,控向元件164可以是由多晶半导体材料(例如多晶硅、多晶硅锗合金、多晶锗或任何其它合适材料)形成的二极管。例如,控向元件164可以为包括重掺杂n+多晶硅区182、在该n+多晶硅区182上方的轻掺杂或本征(无意掺杂的)多晶硅区180、以及在该本征区180上方的重掺杂p+多晶硅区186的二极管。在一些实施例中,薄的(例如几百埃或更小)锗和/或硅锗合金层(未示出,在使用硅锗合金层时具有约10%或更多的锗)可以形成在n+多晶硅区182上以防止并且/或者减小掺杂物从n+多晶硅区182迁移至本征区180中,例如在2005年12月9日提交的题为"DEPOSITED SEMICONDUCTORSTRUCTURE TO MINIMIZE N-TYPE DOPANT DIFFUSION AND METHOD OF MAKING"的美国专利申请公布No. 2006/0087005中所述,该美国专利申请公布通过引用以其全部内容并入本文中。应当理解,n+区和p+区的位置可以颠倒。当控向元件164由沉积硅(例如,非晶硅或多晶硅)制造时,一个实施例可以包括在二极管上形成的硅化物层,以将沉积硅置于低阻态。如题为"MemoryCell Comprising a Semiconductor Junction DiodeCrystallized Adjacent to a Silicide"的美国专利申请 7,176,064 中所述,例如钦和 /或钴的硅化物形成材料在退火期间与沉积硅反应以形成硅化物层,该申请通过引用以其全部内容并入本文中。硅化钛与硅化钴的晶格间距接近硅的晶格间距,并且似乎这样的硅化物层可以在沉积硅进行晶化时用作针对邻近的沉积硅的“结晶化模板”或“种子”(例如硅化物层在退火期间加强硅二极管的晶体结构)。从而提供了低阻的硅。硅锗合金和/或锗二极管可以获得类似的结果。导体166和导体168包括任何合适导电材料例如钨、任何合适金属、重掺杂半导体材料、导电硅化物、导电硅锗化物或导电锗化物等。在图2的实施例中,导体166和导体168 是条轨形的并且以不同的方向(例如,彼此基本垂直的方向)延伸。可以使用其它导体形状和/或构造。在一些实施例中,可以与导体166和导体168 —起使用阻挡层、粘附层和/或抗反射涂层等(未示出),以改进装置性能并且/或者助于装置制造。尽管在图2中可逆电阻切换元件162被示为位于控向元件164上方,但是应当理解,在可替选实施例中,可逆电阻切换元件162可以位于控向元件164的下方。虽然图2示出存储器单元的一个示例,但本文中公开的技术不是需要一种特定类型或结构的存储器单元。可使用许多不同类型的存储器单元。图3是金属氧化物可逆电阻切换元件的一个示例实施例的电压相对电流的图示。线250表示可逆电阻切换元件处于高阻态时的I-V特性。线252表示可逆电阻切换元件处于低阻态时的I-V特性。为了确定可逆电阻切换元件处于哪个状态,施加电压并且测量得到的电流。较高的测量电流(见线252)表示可逆电阻切换元件处于低阻态。较低的测量电流(见线250)表示可逆电阻切换元件处于高阻态。注意,对于本文中的技术,也可以使用具有不同I-V特性的可逆电阻切换元件的其它变型。当处于高阻态时(见线250),如果向存储器单元施加电压Vw4和足够的电流,则可逆电阻切换元件将被“置位”为低阻态。线254示出在施加Vw4时的行为。电压将保持颇为恒定并且电流将朝着I _ — _增大。在某点处,可逆电阻切换元件将被“置位”,并且装置行为将基于线252。注意,可逆电阻切换元件被首次“置位”时,需要Vf(形成电压)来“置位”该装置。在这之后可使用VM。形成电压Vf可以大于Vb位。当处于低阻态时(见线252),如果向存储器单元施加电压和足够的电流(Is
&),则可逆电阻切换元件将被“复位”为高阻态。线256示出在施加Vsfi时的行为。在某点处,可逆电阻切换元件将被“复位”,并且装置行为将基于线250。在头施例中,V置位近似5伏,V复位近似3伏,I设置—限制近似5uA而I复位电流可以高达30uA。在一些实施例中,Vw4可以比Vsft低,不需要形成操作,并且/或者“置位”或“复位”所需时间可以不同。对可逆电阻切换材料的电阻进行“置位”和“复位”的编程操作是本领域已知的。对可逆电阻切换材料的电阻进行“置位”和“复位”的电路的许多不同实施方案是已知的,并且可以在本文描述的技术中使用。“置位”和“复位”的示例可以在2008年12月19日提交的题为"Reverse Set With Current Limit for Non-Volatile Storage"的美国专利申请12/339,313、在美国专利申请2007/0072360、以及在美国专利申请2007/0008785中找到,这些申请通过弓I用以其全部内容并入本文中。在一些实施方案中,“置位”和“复位”操作(也被称为编程操作)后面可跟着验证操作,以察看“置位”操作是否成功。如果没有成功,则可再次尝试编程操作。在一个示例实施方案中,验证操作是读操作。因此,系统控制逻辑130将首先致使一个或多个存储器单 元被编程(“置位”或“复位”),并且随后将读出所有经编程的存储器单元。如果读出的数据与要编程的数据匹配,则该过程完成。如果一些读出的数据与被编程的数据不匹配(最大可能是由于编程没有成功),则重复编程。在一些情况中,以一次一个逻辑页的方式对数据进行编程;因此,如果验证操作指出编程操作没有成功,则整个页可能被重新编程。存储器阵列102包括许多存储器单元。图4A是单片式三维阵列102的一部分的简化透视图,该阵列102包括位于第二存储器级220下面的第一存储器级218。在图4A的实施例中,每个存储器级218和220包括交叉点阵列形式的多个存储器单元200。应当理解,在第一存储器级218和第二存储器220之间、上方或下方可以存在额外的层(例如,层间电介质),但出于简化目的而未在图4A中示出。可以使用其它存储器阵列构造,同样可以使用额外的存储器级。在图4A的实施例中,所有二极管可以“指向”相同的方向,例如朝上或朝下,这取决于采用了具有位于二极管下方还是二极管上方的P参杂区的P-i-n 二极管,简化了二极管的制造。存储器单元200可与存储器单元150相同或不同。图4B是单片式三维存储器阵列102的第二实施例的一部分的简化透视图,该单片式三维存储器阵列102包括位于第二存储器级221下面的第一存储器级219。图4B的存储器阵列包括多个存储器单元200。关于第一存储器级219,存储器单元200位于位线集合207和字线集合209之间并与它们相连。关于第二存储器级221,其存储器单元200位于位线集合210和字线集合209之间并与它们相连。第一存储器级的上导体可以被用作位于第一存储器级上方的第二存储器级的下导体,如图4B中所示。其它信息记载在题为"High-Density Three-Dimensional Memory Cell"的美国专利申请No. 6,952,030 中,该美国专利申请通过引用以其全部内容并入本文中。在图4B的实施例中,在相邻存储器级上的二极管(或其它控向装置)优选指向相反方向,如在2007年3月27日提交的题为"Method to Form Upward Pointing P-I-NDiodes Having Large And Uniform Current"的美国专利申请公开No. 20070190722 中所述,该美国专利申请公开通过引用以其全部内容并入本文中。例如,第一存储器级219的二极管可以是朝上指向的二极管,如箭头A1所示(例如,具有在二极管底部的p区),而第二存储器级221的二极管可以是朝下指向的二极管,如箭头^所示(例如,具有位于二极管底部的n区),或反之亦然。在单片式三维存储器阵列中,多个存储器级被形成在单个衬底(例如晶片)上方,但没有中间衬底。形成一个存储器级的层直接被沉积或生长在已有的一个级或多个级的层上方。与此形成对照,堆栈式存储器是通过在不同衬底上形成存储器级并将该存储器级彼此上下附着而构造的,如同Leedy的题为"Three Dimensional Structure Memory "的美国专利No. 5,915,167中那样。衬底可以很薄或者在结合之前从存储器级取出,但是由于存储器级初始形成在单独的衬底上,因此这样的存储器并不是真正的单片式三维存储器阵列。如上所提及的,图4A和4B示出单片式三维存储器阵列的一部分。可以看到,位线被布置在第一方向上且字线被布置在垂直于位线的第二方向上。在具有额外存储器单元层的存储器阵列中,可能具有额外的字线层或位线层。支持电路(例如,列控制电路110、行控制电路120、以及系统控制逻辑130)被布置在衬底的表面上,其中存储器阵列被制造在支持电路的至少一部分上方。示出集成电路的不同层的图5示出了位于衬底上方的存储器阵列102。存储器阵列包括位线层BL和字线层WL。图5仅仅示出三个位线层BL和两个字线层WL,然而,在其它实施例中,可实现额外的位线层和字线层。实现半导体存储器系统的集成电路还包括多个金属层,该多个金属层用于在支持电路的不同组件之间、以及在支持电路与位线及字线之间对信号进行路由。这些金属层被布置在支持电路(其被实施在衬底的 表面上及存储器阵列下方)上方。图5示出了用于路由的两个金属层Rl和R2,然而,其它实施例可包括多于或少于两个的金属层。在一个示例中,这些金属层Rl和R2由具有相对高的电阻和电容的钨(约I. 5欧姆/平方)形成。在存储器阵列上方可设置有用于在存储器系统的不同组件之间对信号进行路由的一个或多个金属层。图5示出了在存储器阵列上方的一个这样的金属层,被标记为“顶部金属层”。在一个示例中,顶部金属层由铝或铜形成(约0.05欧姆/平方),其具有小于层Rl和层R2的电阻和电容。金属层Rl和R2并不使用与用于顶部金属层相同的材料来实施,这是因为用于Rl和R2的金属需要经受住在Rl和R2的顶部制作存储器阵列的处理步骤。可添加通孔以在相邻金属层之间生成连接。可添加过孔(zia)以在非相邻金属层之间生成连接。过孔是多层通孔,并且可连接多于两个或更多的层(在这个情况中,过孔看起来像阶梯形)。图6是用于实施存储器系统100的衬底300的俯视图。图6示出了向下看衬底300的俯视图。在一个实施例中,在衬底300的顶表面上制作用于存储器102的支持电路。单片式三维存储器阵列102被布置在衬底300的表面上方,并且在支持电路的一部分上方。因此,支持电路的一部分被布置在存储器阵列102下方,并且支持电路302的一部分被布置在衬底300上,位于不在单片式三维存储器阵列102下方的区域中。在存储器阵列102下方的支持电路在图6的视图中由于被存储器阵列102遮蔽而无法看到。注意,所使用的术语“上方”和“下方”是相对于衬底而使用的相对术语。因此,衬底以其侧边进行翻转将不改变存储器阵列102仍然位于衬底上方的事实,这是因为术语“上方”的使用与衬底的表面相关而与衬底的方位无关。支持电路包括列控制电路110、行控制电路120、以及系统控制逻辑130。注意,图5示出了比存储器阵列102宽的金属层Rl和R2以容纳在衬底的表面上而不在存储器阵列102下方的支持电路。存储器阵列102被分为隔区(bay),每个隔区(可选地)可被划分为多个块。对于不同的实施方案,隔区的数量可不同。在一个实施例中,在隔区中有16个块。然而,其它实施例可使用不同数量的块。块是连续的一组存储器单元,其具有一般未被解码器、驱动器、感测放大器和输入/输出电路所中断的连续字线和位线。这样做可出于各种理由。例如,沿着字线和位线行进的、由这些线的电阻和电容引起的信号延迟(即,RC延迟)在大阵列中可能非常显著。通过将大阵列分为一组较小子阵列,以使得每个字线和/或每个位线的长度减小,可以减小这些RC延迟。如另一示例,与访问一组存储器单元关联的功率会对在给定存储器周期期间可以同时访问的存储器单元的数量规定上限。因此,大存储器阵列往往被分为较小子阵列以减小被同时访问的存储器单元的数量。集成电路可以包括一个或多于一个的存储器阵列。在一个实施例中,存储器阵列102被布置成条(例如16个条)。条是从存储器阵列的一端到另一端的线性的一组存储器元件块,条可以具有一个隔区、多于一个的隔区或者小于一个隔区。在一个实施例中,隔区包括两个条,并且每个条包括32个块。因此,隔区包括64个块。图7是描述一个示例存储器阵列102的组织结构的框图,该存储器阵列被布置在衬底300上方且包括M个条。图8描述条的一个示例。可以看出,块只从一端布置到另一端。图8示出具有N个块的条。条中的块的确切数量取决于特定实施方案,并且本文中描述的技术不需要特定 的位于条中的块的数量。回看图6,来自存储器阵列102的支持电路可包括列控制电路110、行控制电路120、以及系统控制逻辑130。在一个实施例中,控制器134被实施在单独的衬底上。然而,在其它实施例中,控制器134可被实施在与存储器阵列相同的衬底上。如上面关于图6说明的那样,支持电路的一部分会被制作在衬底300的、在存储器阵列102下方的表面上,而支持电路的另外部分将被实施在衬底300的、在存储器阵列102外部的表面上。图9是示出被实施在存储器阵列102下方以及存储器阵列102外部的支持电路的示例的框图。例如,图9示出了在不处于单片式三维存储器阵列102下方的区域中被布置在衬底300表面上的支持电路302。图9示出了被布置在衬底300的表面上、在存储器阵列102下方的支持电路304。在一些实施例中,支持电路的一些部分可以被实施在三维存储器阵列102的不同级上。图9的支持电路302包括(至少)页寄存器120和状态机306 (系统控制逻辑130的部分)。支持电路302中还可包括支持电路的其它部分。在一个实施例中,数据的逻辑页是用于编程的最小数据单位。因而,以页的集合对存储器进行编程和读入。页寄存器102将包括能够存储用于读出和写入的数据逻辑页的寄存器。页通常跨多个块实现。在一个实施例中,页包括2048字节的数据和128字节的头信息(例如包括ECC),总计2176字节。页寄存器120还会包括逻辑电路,该逻辑电路在写入(例如数据编码)之前操作数据,并且用于验证在写过程之后被读出的数据是否匹配旨在被写入的数据(例如,验证操作)。页寄存器相对于主机和存储器阵列用作中间存储装置。状态系统控制逻辑130 (见图I)会包括状态机306、用于提供各种电压的电路、以及其它控制电路。状态机306用来控制数据的读出和写入。图9示出了与页寄存器120通信的状态机306。在衬底300的表面上、在存储器阵列102下方实施的控制电路304被划分成对应于各个存储条的电路集合。因此,每个存储条具有位于该存储条下方的、为该存储条提供支持的电路集合。例如,用于存储条0的支持部包括用于存储条0的支持电路。注意,在单片式三维存储器阵列中存储条具有多个级。在存储器阵列102的存储条0下方是用于存储条0的支持部,在存储条I下方是用于存储条I的支持部,在存储条2下方是用于存储条2的支持部......,在存储条M-I的下方是用于存储条M-I的支持部。状态机306与用于存储条O的支持部、用于存储条I的支持部、用于存储条2的支持部.....以及用于存储条M-I
的支持部通信。页寄存器102也与用于存储条0的支持部、用于存储条I的支持部、用于存储条2的支持部、...、以及用于存储条M-I的支持部通信。图10是页寄存器120的框图。在一个实施例中,页寄存器120包括控制逻辑340,该控制逻辑340可包括用于控制页寄存器120的电路(数字和/或模拟电路)。控制逻辑340与阴影寄存器(SR) 342、数据寄存器(DR) 344以及错误寄存器(ER) 346进行通信。控制逻辑340与不同的支持电路304以及系统控制逻辑130 (包括状态机306)进行通信。阴影寄存器342接收数据并将数据提供给系统控制逻辑130。在其它实施例中,去往/来自阴影寄存器342的数据可被提供给控制器134/从控制器134提供,或直接提供给主机。数据寄存器344从支持电路304接收数据并且向支持电路304提供数据。在一个实施例中,阴影寄存器342、数据寄存器344以及错误寄存器346与数据页的大小相同。因此,如果数据页包括2048字节的数据和128字节的头部,则阴影寄存器342、数据寄存器344以及错误寄存 器346可存储2176字节。由页寄存器120接收到的数据被输入到阴影寄存器342中。控制逻辑340可以处理该数据,以执行各种数据编码、增加ECC(纠错码)、或其它功能。此后数据从阴影寄存器342被传送至数据寄存器344。注意,出于本文的目的,术语“传送”包括将拷贝从源提供给目的地并且可以包括在源处留下拷贝或者从源删除拷贝。数据可以从数据寄存器344被传送至用于适当存储条的支持电路304,以编程至存储器阵列102中。从存储器阵列102读出的数据从用于适当存储条的适当支持电路304提供给数据寄存器344。随后在数据寄存器344中的数据可被传送至阴影寄存器342,在该阴影寄存器342中可执行各种解码、ECC及验证过程。最后的数据从阴影寄存器342被传送至系统控制逻辑130、控制器134和/或主机。控制逻辑340使用错误寄存器346以进行下列各种功能中的任一个确定ECC错误(在一些实施例中)、确定写入验证错误、和/或其它功能。ECC还可在控制器中确定。图11是示出页寄存器120和用于一个存储条的支持电路420的框图。支持电路420是电路304的子集。例如,支持电路可以表示图9中描述的用于存储条0的支持部、用
于存储条I的支持部、用于存储条2的支持部、......、用于存储条M-I的支持部中的任一
个。在一个实施例中,用于存储条的支持电路被分成支持电路组,其中每个块包括其自身的组。例如,图11标示了 32个电路组,其中每个组与所述块(例如块0,...块31)中的一个相关联。例如,支持电路组400与块0相关联,并且被实施在衬底200的表面上、在块0下方。支持电路组402与块15相关联,并且被实施在衬底300的表面上、在块15下方。支持电路410组与块16相关联,并且被实施在衬底300的表面上、在块16下方。支持电路412组与块31相关联,并且被实施在衬底300的表面上、在块31下方。尽管图11的架构包括32个块,因而包括32个支持电路组,但是由于页面的空间所限在图11中仅示出4个支持电路组。但是,”用于表示没有被示出的14个支持电路组。图11示出了双向数据总线PR_0UT[15:0],其与页寄存器120相连并且跨越整个条,以使得每个支持电路组(400...402,410...412)与16位总线PR_0UT[15:0]中的一个位相连;在其它实施例中,总线可比16位更宽或更窄。每个支持电路组(400. ..402,410...412)包括与PR_0UT[ 15:0]中的一个位相连的缓冲&解码器集合。例如,与块0关联的支持电路组400连接到PR_0UT
,与块I关联的支持电路组连接到PR_0UT[1],与块2关联的支持电路组连接到PR_0UT[2],,并且与块15关联的支持电路组402连接到PR_OUT [15]。此外,与块16关联的支持电路组410连接到PR_0UT
,与块17关联的支持电路组连接到PR_0UT[1],与块18关联的支持电路组连接到PR_0UT[2],...,并且与块31关联的支持电路组412连接到PR_0UT[15]。每个支持电路组(例如组400)还包括五锁存器的集合。还可以使用其它存储装置(例如触发器)而不使用锁存器。这五个锁存器包括读锁存器RL、写入数据阴影锁存器(ff-Data Shadow Latch) WSL、写入数据数据锁存器(W-Data Data Latch)、感测放大器使能阴影锁存器SSL以及感测放大器使能数据锁存器SDL。读锁存器RL用于存储从存储器阵列读取的读出数据。要存储在存储器阵列中的写入数据首先被存储在写入数据阴影锁存器WSL中,随后被存储在写入数据数据锁存器WDL中,并且随后被写入到存储器阵列102中。页寄存器将感测放大器使能信息发送给感测放大器(下面论述)。感测放大器使能信息首先被存储在感测放大器使能阴影锁存器SSL中,随后被存储在阴影数据锁存器SDL中,并且随后由感测放大器用作编程过程的一部分。
为了完成上面的功能,缓冲&解码器与读锁存器RL相连,以用于从读锁存器RL接收数据。缓冲&解码器与写入数据阴影锁存器WSL相连,以向写入数据阴影锁存器WSL提供写入数据,并且与感测放大器使能阴影锁存器SSL相连,以将感测放大器使能信息发送至感测放大器使能阴影锁存器SSL。写入数据阴影锁存器WSL与写入数据数据锁存器相连。感测放大器使能阴影锁存器与感测放大器使能数据锁存器相连。写入数据数据锁存器WDL和阴影数据锁存器SDL都连接至合适的感测放大器并将信息发送至该感测放大器。
感测放大器将其读取输出发送至读锁存器RL。作为支持电路组400的一部分并位于块0下方的感测放大器由于与块0关联而被称为感测放大器0 ;作为支持电路组402的一部分的感测放大器由于在块15下方并且与用于块15的支持电路关联而被称为感测放大15 ;等等。支持电路组(400. 402,410. 412)中的每个均包括关联的感测放大器。感测放大器用于将合适的信号施加给位线以对位线进行编程,并且在读过程期间感测位线的状态以确定由与位线连接的关联存储器单元所存储的读出数据。每个感测放大器被示为具有表示存储器操作已成功执行的输出(MEM_0K)。这些信号通过AND门集合而串链,以使得如果所有感测放大器都输出存储器操作已成功,则信号PR_WRT_0K将为逻辑I。这个信号被发送至页寄存器120以表示存储器操作成功。如上所述,数据总线PR_0UT[15:0]是16位数据总线;然而,存在32个支持电路组和32个感测放大器。因此多个感测放大器(及关联的支持电路组)必须共享数据总线PR_OUT [15:0]中的位。如上所述,用于块0的支持电路组400和用于块16的支持电路组410共享位PR_0UT
,用于块2的支持电路组和用于块17的支持电路组共享位PR_0UT [I],…,用于块15的支持电路组402和用于块31的支持电路组412共享位PR_0UT[15]。存储器系统使用信号SMI_CNT_ADR来指出共享该数据总线上的位的两个块中哪个块正利用该总线通信。如果SMI_CNT_ADR等于0,则块0_15正利用总线PR_0UT[15:0]进行通信,如果如果SMI_CNT_ADR等于1,则块16-31正利用总线PR_0UT [15:0]进行通信。注意,针对不同实施例的不同实施方案,所使用的块的数量可不同。因此,如果超过了 32个块,则信号SMI_CNT_ADR可能需要超过I位。例如,如果在存储条中具有64个块,则信号SMI_CNT_ADR会具有2位以指示4个感测放大器子集中的哪一个子集将被连接至数据总线。类似地,如果在存储条中具有256个块,则信号SMI_CNT_ADR会需要4位宽以指示16个感测放大器子集中的哪一个子集将被连接至数据总线。图11还示出从状态机传送至用于存储条的支持电路420的信号集合。这些信号包括 SMI_WDXSAE、SMI_TL_WE、SMI_TL_RE、SMI_TL_RXW、SMI_TL_CPY 以及 SAE。信号SMI_WDXSAE确定总线PR_0UT[15:0]是否正用于传送数据或感测放大器使能信息。在总线PR_0UT[15:0]上传送的要被编程的数据被送至写入数据阴影锁存器WSL,并且在总线PR_0UT[15:0]上传达的感测放大器使能信息被送至感测放大器使能阴影锁存器SSL。由于使用总线上的同一位来传送写入数据和感测放大器使能信息这二者,所以信号SMI_TOXSAE (其来自状态机)被用来指示总线PR_0UT[15:0]当前正用于哪个功能。信号SMI_TL_RXW用于指出数据总线PR_0UT[15:0]是正用于将读出数据从支持电路发送至页寄存器120,还是正用于将写入数据从页寄存器120发送至适当支持电路。对于用于特定存储条的所有组400. . . 401和410. . . 412,信号SMI_TL_WE被用作用于写入数据 阴影锁存器WSL以及感测放大器使能阴影锁存器SSL的锁存器使能信号。信号SMI_TL_RE是用于整个存储条的读锁存器RL的锁存器使能信号。信号SMI_TL_CPY是拷贝信号,用于将数据分别从写入数据阴影锁存器WSL和感测放大器使能数据锁存器SDL拷贝至写入数据数据锁存器WDL和感测放大器使能数据锁存器SDL。信号SAE是感测放大使能信号,其指示存储条的所有感测放大器将数据从写入数据数据锁存器编程至单片式三维存储器阵列102的适当存储器单元中。图12是示出使用图1-11所示组件的编程过程的一个实施例的流程图。通过使用这些组件,也可使用编程过程的其它实施例来对数据进行编程。在图12的步骤502中,系统接收数据以及将该数据编程到存储器阵列102中的请求。例如,主机会发出命令给控制器134以对数据进行编程并提供该数据。该数据首先由主机接收,并且随后传送至系统控制逻辑130。在另一实施例中,系统控制逻辑130或控制器134可确定需要被编程的数据并且必要时呈现该数据。例如,控制器134可以请求对数据进行编程,作为垃圾收集过程、存储器重组过程等等的一部分。在步骤504中,要被编程的数据被加载到页寄存器120中。例如,数据从系统控制逻辑130、控制器134或直接从主机被加载到页寄存器120的阴影寄存器342中。如上所述,在一个示例中,每个存储条包括数据总线PR_0UT [15:0]。在具有16个存储条的示例中,256位的数据可同时被发送至支持电路(假设每个存储条具有其自己的数据总线PR_0UT)。如果页寄存器保留2176字节的数据,并且每次只有传输256位,则状态机306必须确定要选择哪256位以在16个数据总线上输出。在上面提及的示例中,具有十六个数据总线PR_0UT [15:0],S卩,关于十六个存储条中的每一个存储条有一个数据总线。图12的步骤506包括状态机选择页寄存器中的哪个数据集合以在每一个数据总线PR_0UT[15:0]上输出。在一个实施例中,存储器阵列102中的各个存储器单元被布置成列。在每个块中具有多个列。例如,一个块可以包括64个列。如果存储条包括32个块,则该存储条包括32X64 = 2048列。如上所述,对于一个存储条只具有32个感测放大器(在每个块下方有一个)。因此,列解码器电路112 (见图I)用来解码列地址并且将每个感测放大器连接到适当的存储器单元的列(在步骤506中)。在一个示例中,系统每次只对一个块进行读取或写入。
—旦在步骤506中执行了从页寄存器中选择数据集合,则该数据在每个双向数据总线PR_0UT[15:0]上输出。在步骤508中,写入数据阴影锁存器WSL锁存来自总线的数据。在于每个存储条的数据总线PR_0UT[15:0]上发送了数据之后,页寄存器于是会在每个存储条的数据总线PR_0UT[15:0]上发送感测放大使能信息。感测放大使能信息会由状态阴影锁存器SSL锁存,作为步骤508的一部分。即使页寄存器120可能具有用于存储条的所有32个感测放大器的数据,页寄存器或状态机也可能决定并非所有的数据都不会被编程到存储器阵列中。在一个示例中,如果数据与寻址到的存储器单元中已有的数据匹配,则改写该数据是没有意义的。在另一实施例中,系统可以只对第一次未被正确编程的数据子集进行重写。也可能存在不期望写入数据的其它理由。被传送至状态阴影锁存器SSL的感测放大器使能信息向相关联的感测放大器指示是否将经由写入数据阴影锁存器WSL和写入数据数据锁存器WDL传送的对应数据进行写入。在步骤510中,在每个支持电路组的阴影锁存器WSL和SSL中存储的信息从阴影锁存器WSL和SSL传送至数据锁存器WDL和SDL。注意,上述步骤针对所有存储条同时执 行。在步骤512中,针对存储在页寄存器中的下一个数据/信息集合,加载阴影锁存器WSL和SSL。在步骤514中,在写入数据数据锁存器WDL中的数据通过使用合适的感测放大器而被编程到适当寻址的存储器单元中。如果感测放大器在其感测放大器使能数据锁存器SDL中接收到合适的感测放大器使能信息,则感测放大器会对来自写入数据数据锁存器WDL的数据进行编程。在编程过程结束时,在步骤516中,感测放大器会将刚刚被写入到存储器单元的数据的拷贝提供给读锁存器RL。在一个实施例中,感测放大器会实际上执行新的读过程来读出该数据。在另一实施例中,感测放大器会仅仅采用其从写入数据数据锁存器接收到的数据,并且如果写操作成功(WRITE_0K= 1),则将该数据发回至读锁存器RL,或者如果写操作不成功(WRITE_0K = 0),则将该数据反转并发回至RL。在步骤518中,在读锁存器RL中的数据经由用于存储条中的每个存储条的数据总线PR_0UT[15:0]被发回至页寄存器120。在步骤520中,页寄存器120会将从感测放大器读回的结果发送至状态机306。如果没有更多需要被编程的数据(步骤522),则图12的过程结束。如果还有需要被编程的数据(该数据在步骤512的前一迭代中会已被加载到阴影锁存器中),则图12的过程循环回到步骤510,并且将数据从阴影锁存器WSL和SSL拷贝到数据锁存器WDL和SDL中。在下面的步骤S512中,下一个数据集被加载到阴影锁存器中,并且重复步骤510至522的过程,直到没有更多要编程的数据为止。注意,尽管图12的流程图示出了以连续顺序进行的步骤,但是许多步骤实际上可同时执行。此外,还可使用其它的步骤顺序。例如,步骤512和514可同时执行,且步骤516和518可同时执行。图13是示出执行步骤510-518的一个迭代的时序图。图13示出信号SAE、SMI_TL_CPY、SMI_WDATASAE、SMI_CNT_ADR、SMI_TL_RXW、SMI_CAD[4:0]、SMI_TL_WE 及 SMI_TL_RE的行为。注意,信号SMI_CAD[4:0]是从状态机306至页寄存器120及其它选择电路的信号,该其它选择电路指出选择哪列存储器单元用于编程。在一个实施例中,每个块中具有32个列,并且信号SMI_CAD[4:0]指出选择这32个列中的哪个列用于编程。在时间TO和Tl之间,信号SMI_TL_CPY脉动至高位,并且随后保持低位直到时间T8。这个脉冲是用于写入数据数据锁存器WDL及感测放大器使能数据锁存器SDL的锁存器使能信号,该锁存器使能信号致使来自阴影锁存器的数据被拷贝至数据锁存器WDL和SDL (其作为步骤510的一部分)。从时间Tl至T5,系统针对下一个数据集合加载阴影锁存器(步骤512),并且同时根据写入数据数据锁存器WDL对适当寻址的存储器单元同时编程(步骤514)。在时间Tl处,SAE升高,以向状态机指示开始编程过程,以将来自合适的写入数据数据锁存器WDL的数据编程至存储器阵列102中的适当寻址的存储器单元中。在时间Tl至T2之间,信号SMI_TL_WE产生脉动。在这个脉冲期间,SMI_WDXSAE为高,表示写入数据在数据总线PR_OUT [15:0]上正从页寄存器120传送至写入数据阴影锁存器WSL。信号SMI_CNT_ADR被设置为低,以表示支持电路组的子集400. . . 402被选择与PR_0UT[15:0]连接。从Tl至T6,信号SMI_TL_RXW为低,以使得总线PR_0UT[15:0]只用于将写入数据和感测放大器使能信息从页寄存器120传送至合适的支持电路304。在时间T2至T3之间,信号SMI_TL_WE再次产生脉动,这时,SMI_CNT_ADR被设置为逻辑1,以使得用于第二支持电路组410. . . 412的写入数据数据锁存器WDL将接收用于编程的写入数据。
在时间T3和T4之间,SMI_TL_WE将接收另一脉冲,以致使感测放大器使能阴影锁存器锁存从页寄存器120通过PR_0UT [15:0]发送的感测放大器使能信息。在时间T3至T4之间,SMI_CNT_ADR被设置为低,以表示用于第一支持电路组400. . . 402的感测放大器使能阴影锁存器接收感测放大器使能信息,并且SMI_WDATAXSAE被设置为高,以表示正在数据总线PR_0UT[15:0]上发送感测放大器使能信息。在时间T4至T5之间,SMI_TL_WE接收另一脉冲,以从页寄存器120经由数据总线PR_0UT[15:0]将感测放大器使能信息锁存在用于第二支持电路组410. . . 412的感测放大器使能阴影锁存器中。在时间T4至T5之间,SMI_CNT_ADR被设置为高,以表示数据被锁存在用于第二支持电路组410. . . 412的感测放大器使能阴影锁存器中。信号SMI_WDXSAE被设置为低,以表示正在PR_0UT[15:0]上传送感测放大器使能数据。在T5处,SAE降低,表示写过程已经完成了将数据写入到合适的存储器单元中。响应于SAE过渡为低,合适的感测放大器会将数据读回至读锁存器RL。因此,数据总线PR_OUT此时会用于将数据从支持电路304发回至页寄存器120,并且信号SMI_TL_RXW在T6处转至逻辑1,并且保持高,直到T8为止。在T6和T8之间的时间段用来执行图12的步骤516。当执行516的同时,系统将执行图12的步骤518,该步骤包括将读出数据发回至页寄存器120。为了执行步骤516,信号SMI_TL_RE产生脉动两次,一次在时间T6和17之间,而第二次在时间17和T8之间。对于第一次脉冲,SMI_CNT_ADR被设置为低,而对于第二次脉冲,SMI_CNT_ADR被设置为高。这样,第一次脉冲将致使数据被加载到用于第一支持电路组400. . . 402的读锁存器RL中,而第二次脉冲将致使数据被加载到用于第二支持电路组410. . . 412的读锁存器RL中。一旦SMI_TL_RE转至高,相应的数据被加载到锁存器RL中,并且可出现在PR_0UT[ 15:0]上以传送至页寄存器120。在T8处,执行步骤510至518的过程已完成。在T8开始,将执行步骤510至518的下一次迭代。因此,在时间T8处,SMI_TL_CPY接收另一脉冲,以将来自阴影锁存器的数据传送至数据锁存器,并且过程继续。此外,在时间T8处,列地址SMI_CAD[4:0]将变为下一列。如上所述,在存储器阵列102中的存储器单元被布置成列,以使得每个块具有其自己的列集合。例如,每个块可以具有32列存储器单元。每列存储器单元可具有处于该列中的16、32、64或其它数量的存储器单元。数据的单个页将跨越多个列。在对特定页的数据进行编程时,存在存储器系统未必对存储器单元的特定的列进行编程的很多情况。例如,如果在页寄存器中的数据量小于一页,则通过该页寻址的一些存储器单元不需要被编程。例如,如果页寄存器只存储了 80%的数据页,则20%的存储器单元不需要被编程。该页中最初80%的位被用于用户数据,并且最后20%的位不具有用户数据。在另一示例中,有可能接收到用于编程的一些数据已与存储器单元中的数据匹配。在这情况中,存储有与要被编程的数据匹配的数据的这些存储器单元不需要被编程。有可能要被编程的一系列连续的数据位与存储在整列存储器单元中的数据匹配。在这情况中,整列存储器单元不需要被编程。例如,在图像文件中,图像的大部分可能是白色的并且针对白色的数据可能已存储在存储器单元中。在另一示例中,存储器系统在编程之后将读回整个页,并且验证所读回的页与期望要编程的数据的匹配。如果不是所有数据都匹配(或者少于预定数量的位匹配),则该页将被重新编程。当对该页重新编程时,存储 器单元的许多列可被跳过,这是因为它们的数据确实与要被编程的数据匹配。通过跳过对一列或多列存储器单元的编程,编程过程可以更快完成并且用更少功率来完成。一些现有系统能够跳过对存储器单元的列的编程。在这些现有系统中,当将数据编程到第一列存储器单元中时,系统将评估其是否应该跳过第二列存储器单元。如果系统确定其不应该跳过第二列存储器单元,则当第一列存储器单元已经完成编程时,将对第二列存储器单元编程。如果系统确定其应该跳过对第二列存储器单元的编程,则系统将等待,直到第一列存储器单元已经完成编程为止。在第一列存储器单元已经完成之后,此时系统将评估是否应该跳过第三列存储器单元。如果系统不应该跳过第三列存储器单元,则随后将对第三列存储器单元编程。这个过程会继续。这个过程的一个缺点是一旦确定了系统应该跳过存储器的列,则系统保持空闲,直到存储器单元的当前列已经完成编程为止。因此,提出了一种过程,其使得存储器系统能够在对先前的存储器单元列编程时评估和决定跳过存储器单元的多个列。这个过程在图14的流程图中予以说明。在图14的步骤560中,接收一个数据页(或更多)和对该数据页进行编程的请求。例如,可以在控制器132从主机接收数据和请求。可替选地,可在(包括状态机306的)系统控制逻辑130接收数据和请求。在步骤562中,该数据页被加载到页寄存器120的阴影寄存器342中。在步骤564中,在阴影寄存器342中的数据被传送至页寄存器120的数据寄存器344。在步骤566中,系统将对目的用于存储当前驻留在数据寄存器344中的数据页的存储器单元进行读取。注意,编程过程和读过程这二者皆在状态机306的指引下执行,作为系统控制逻辑130的一部分。该页数据从目标存储器单元被读回,并且流送至页寄存器120的控制逻辑304。当控制逻辑304接收每一位时,其与数据寄存器344中对应的位进行比较。如果这两个位匹配,则在错误寄存器346中对应的位中存储O。如果这两个位不匹配,则在错误寄存器346中对应的位中存储逻辑I。当从存储器单元读出的所有数据已完成流送至控制逻辑304时,错误寄存器346将存储结果的集合,以用于在要编程的数据与已驻留在存储器单元中的数据之间的比较(步骤570)。匹配的那些位不需要被编程。与存储器单元中的数据位不匹配的那些数据位需要被编程。错误寄存器于是将被用作感测放大器使能信息的源,该感测放大器使能信息将被加载到合适的感测放大器使能阴影锁存器SSL中,以开启对各个位的编程。步骤S570还包括将列计数器X初始化为O。在步骤572中,对于CAD [X](其为通过X寻址的列,例如列0),针对每个存储条的第一数据集合,加载阴影锁存器(WSL和SSL)。在上面的示例中,对于每个条,同时传送16位的感测放大器使能信息(SSL)和16位的数据(WSL),作为步骤572的一部分。在一个实施例中,需要四个周期(I)传送16位的写入数据,(2)传送16位的写入数据,(3)传送16位的感测放大器使能信息,以及(4)传送16位的感测放大器使能信息。在具有不同数量的感测放大器和不同总线宽度的其它实施例中,周期可能不同。在步骤574中,在所有存储条的阴影锁存器(WSL和SSL)中的数据被拷贝至数据锁存器(WDL和SDL)。在步骤576中,当前被寻址到的特定列的数据从WDL锁存器被编程到合适的存储单元中。此外,变量Y被设置为变量X的值加I。这个变量的使用将会在后面解释。如果CAD[X]是要被编程的最后一列(步骤577),则过程完成。否则,在步骤578 中,以用于下一列(由CAD[Y]寻址)的写入数据及感测放大器使能数据来加载阴影锁存器WSL和SSL。回想在步骤572中,列CAD [X]是被寻址到的列,并且该列在步骤576的前一迭代中被编程。变量Y被设置为比X大I (如果X不是最后一列的话),以使得此刻CAD[Y]寻址到CAD[X]之后的下一列。被加载到阴影锁存器中的感测放大器使能信息来自错误寄存器346。在步骤580中,页寄存器120将评估下一列CAD[Y]的写入数据,以查看该数据是否需要被编程。在列CAD
为当前正处于编程中的列的示例中,下一列是列CAD[1]。步骤578和580可并行执行或(以任一顺序)相继执行。在一个实施例中,页寄存器120通过查看错误寄存器346中的位来评估是否跳过下一列。如果列的所有对应的位都被设置为0,则没有数据需要被编程至该列中,并且页寄存器120将推断该列可被跳过。如果确定下一列可被跳过(步骤582),则在步骤584中,页寄存器120将向其它组件(包括状态机306)指出下一列应被跳过。在一些实施例中,将数据传送至阴影锁存器(步骤578)可能由于不再需要而中止。该传送可能会已经完成。如果CAD[Y]是要被编程的最后一列(步骤585),则过程完成。否则,在步骤586中,变量Y递增,并且过程循环回到步骤578。在步骤578的下一迭代中,针对用于后续列CAD[Y]的数据和感测放大器使能信息,加载阴影锁存器,并且如上所述那样,所述过程继续。步骤578、580、582、584和586的循环将重复,直到确定不跳过列为止。可以看到,当页寄存器120确定列应该被跳过时,页寄存器120在评估下一列之前并不等待当前所寻址的列结束编程。因而,在当前数据页正被编程并且不等待该当前页完成编程时,页寄存器120能评估多个列,直到其发现要编程的列为止。如果页寄存器120确定其不应跳过列(步骤582),则在步骤588中,页寄存器120和状态机306将等待当前列(例如CAD [X])完成编程。在当前列CAD [X]完成编程之后,在步骤590中,针对当前列CAD [X]写入的数据页将被读回至页寄存器120。在步骤592中,状态机306将确定是否存在更多的数据集合要编程。如果没有,则图14的过程结束。如果还有数据要编程,则变量X被设置为等于Y,并且所述过程循环回到步骤574,如上所述那样继续。图15是示出在步骤574-582的三次迭代期间不同信号的行为的时序图。在图 15 中示出的信号包括 SAE、SMI_TL_CPY、SMI_WDXSAE、SMI_CNT_ADR, SMI_TL_RXW、SMI_CAD [4:0]、SMI_TL_WE、SMI_TL_RE、SMI_CAD ARY [4:0]及 PR_SKIP。信号 PR_SKIP 指出页寄存器120已确定应跳过对下一列的编程(见图14的步骤584)。信号SMI_CAD[4:0]指示正被编程的当前列。信号SMI_CADARY[4:0]指示当前针对跳过而正进行评估的列。因而,SMI_CAD[4:0]类似于图 14 的 CAD [X],并且 SMI_CAD ARY [4:0]类似于图 14 的 CAD [Y]。在图15的时间TO处,信号SMI_TL_CPY产生脉动。这对应于步骤574,这是因为SMI_TL_CPY是用于WDL和SDL将来自WSL和SSL的数据拷入的的锁存器使能信号。在Tl处,SMI_CAD[4:0]变为示出针对待编程数据的新的列地址(例如CAD1)。列地址的变化类似于图14中的步骤594。同样在Tl处,SAE被设置为高,以开始对于CAD[X](在该情况中为CAD[I])的编程进展。SAE将持续为高,直到T4与T5之间的点。同样在Tl处,SMI_CADARY [4:0]发生变化以指出要被评估的下一列,在本示例中,该列是CAD2。SMI_CAD ARY [4:0]的变化对应于在步骤576中将Y值设置为“X+1”。在时间Tl之后不久,针对通过SMI_CAD ARY[4:0](类似于CAD[Y])所寻址的列 加载阴影锁存器WSL和SSL。因而,在时间Tl之后,信号SMI_TL_WE脉动四次。在所有四个脉冲期间,信号SMI_TL_RXW被设置为低,以表示写入数据正通过总线PR_0UT传送。在SMI_TL_WE的第一个和第三个脉冲期间,信号SMI_CNT_ADR被设置为低,以示出支持电路组400. . . 402。在SMI_TL_WE的第二个和第四个脉冲上,信号SMI_CNT_ADR被设置为高,以选择支持电路组410. . . 412。在SMI_TL_WE的前两个脉冲期间,SMI_WDXSAE为高,指出写入数据正通过总线PR_0UT传送。在SMI_TL_WE的后两个脉冲期间,信号SMI_WDATAXSAE被设置为低,以指出感测放大器使能信息正通过总线PR_0UT从页寄存器120传送至感测放大器使能阴影锁存器SSL。在这四个脉冲期间,页寄存器并行地评估错误寄存器346中的数据,以确定列CAD2是否应该被跳过。在这个示例中,页寄存器120确定要被编程到CAD2中的数据与已经在CAD2中的数据相同;因此,可跳过对CAD2的编程。因此,在时间T2处,页寄存器120将PR_SKIP设置为高,以指出下一列(CAD2)应该被跳过。PR_SKIP被发送至状态机306。将PR_SKIP设置为高对应于图14的步骤584。注意,步骤580的评估发生在Tl和T2之间。在时间T3处,SMI_CAD ARY[4:0]改变,以指出要进行估计的下一列。列地址的这个变化类似于在图14的步骤586中变量Y的递增。响应于列地址的递增,以针对新的列(CAD3)的数据再次加载阴影锁存器。这样,对应于步骤578,SMI_TL_WE脉动四次。如上所述,在第二个和第四个脉冲期间,SMI_CNT_ADR被设置为高,而在第一个和第三个脉冲期间,SMI_CNT_ADR被设置为低。在前两个脉冲期间,SMI_WDXSAE为高,而在后两个脉冲期间,该信号为低。在T3和T5之间,页寄存器120将评估针对CAD3的数据,以确定该CAD3是否需要被编程。在这个示例中,页寄存器120确定在错误寄存器346中的信息指出要被编程到CAD3中的数据与CAD3中的数据匹配,所以可跳过CAD3的编程。这通过在时间T4处抬高PR_SKIP来示出(类似于步骤584)。在时间T5处,PR_SKIP被降低,并且由SMI_CAD ARY[4:0]表示的地址递增以指示CAD4 (类似于步骤586)。随后,阴影锁存器将被加载(类似于步骤578),如在T5之后不久由SMI_TL_WE的四个脉冲所示。如上所述,在第一个和第三个脉冲期间,SMI_CNT_ADR被设置为低,而在第二个和第四个脉冲期间,SMI_CNT_ADR为高。在前两个脉冲期间SMI_WDXSAE为高,而在后两个脉冲期间,SMI_WDXSAE为低。在T5和T6之间的这个时间段期间,页寄存器120对针对CAD4的数据进行评估(见步骤578)。在这个示例中,页寄存器120确定(基于错误寄存器346中的信息)要被编程到CAD4中的数据与CAD4中存储的所有数据并不匹配。例如,一个或多个位不同。因此,PR_SKIP保持低并且系统会等待CADO的编程完成(步骤588)。在时间T6处,被编程到CADO中的数据被送回至读锁存器RL(步骤590)。这由SMI_TL_RE(RL的锁存器使能信号)的两个脉冲表明。在SMI_TL_RE的第一个脉冲期间,信号SMI_CNT_ADR为低,而在第二个脉冲期间,SMI_CNT_ADR为高,从而每个支持电路组将具有被发送至适当读锁存器RL的数据。在SMI_TL_RE上的两个脉冲的时间期间,信号SMI_TL_RXW被设置为高,以指示总线PR_0UT[15:0]上的数据是从读锁存器RL到页寄存器120的。至时间T8时,所有读出数据已由页寄存器120接收,并且被存储在数据寄存器344中。读出的数据将被传送至阴影寄存器342并且(有可能)被传送至状态机306和/或控制器134。在时间T6处,CAD4的数据(其在阴影寄存器WDL中)被传送至数据锁存器WSL (类似于步骤574)。在时间T8处,用于编程的当前列地址SMI_CAD[4:0]递增,以指示要被编程的列。在这个示例中,SMI_CAD[4:0]将被设置为CAD4。此外,在时间T8处,要进行评估的列递增,以使得SMI_CAD ARY[4:0]被设置为CAD5。随后这个过程继续,如图14所述。
在所述示例中,存储条具有32个数据块、32个感测放大器和用于关联块的32个支持电路组。在这个示例中,总线PR_0UT[15:0]包括16位;因此,在两个周期中须加载32个锁存器集合。一旦这两个加载周期完成,则同时由32个感测放大器对32位进行了编程。在另一实施例中,系统可能通过同时使用少于32个感测放大器来尝试减小功率。例如,系统可能只同时使用32个感测放大器中的16个。在这样的示例中,需要执行两个编程周期,以针对列而对存储条中寻址到的所有32位进行编程。在列的第一编程周期期间,前16个感测放大器将对其相应的位进行编程,并且在第二编程周期期间,后16个感测放大器将对其相应的位进行编程。这两个编程周期被称为感测放大器周期。出于本文的目的,感测放大器周期将被简称为SAD周期。在另一示例中,系统对于给定的存储条可能只同时使用8个感测放大器。因此,对于每个列,实施四个SAD周期。在另一示例中,系统可能限于每次只使用4个感测放大器;因此,对于每个列将需要8个SAD周期。在其它实施例中,可使用不同数量的感测放大器,并且会使用合适数量的SAD周期。当对列的数据进行评估以确定是否要跳过对该列的编程时,可能有如下情况由于一位或多位数据不同于已存储在存储器中的数据,因而页寄存器120确定该列不能被跳过。在这些情况中,页寄存器还可试图评估每个SAD周期的数据,目的在于跳过下述这些SAD周期所述SAD周期具有与已存储在对应存储器单元中的数据匹配的、要被编程的对应数据位。因此,如果系统确定可跳过整个列,则系统将跳过该列。如果系统确定该列不可被跳过,则系统于是将查看每个SAD周期的数据,并且跳过如下这些SAD周期在该SAD周期中要被编程的对应数据与存储在存储器单元中的对应数据匹配。图16示出了描述这种过程的流程图。在图16的示例过程中,假设每个块具有32个列;因此,信号SMI_CAD[4:0]将寻址CAD0-CAD31。此外,对于每个列,具有四个SAD周期SAD1、SAD2、SAD3和SAD4。在图16的步骤640中,执行初始的一组步骤,包括执行图14的步骤560-574。此外,变量b被初始化为1,变量n被初始化为0,并且SM_CECK被设置为I。变量b被用来指示当前SAD周期。变量n被用来指示当前CAD周期或列地址。变量SMI_CHECK被用来指示是否对列(CAD)的跳过或SAD的跳过进行评估。在步骤642中,系统将对当前列的当前SAD周期执行编程操作。如图16所示,系统将执行关于CAD(n)的SAD(b)的编程。在步骤644中,确定是否变量SMI_CHECK = I。如果是,则过程在步骤660继续。如果不是,则过程继续至步骤680。在新的列开始时,SMI_CHECK将被设置为1,以使得首先评估列跳过。如果列跳过评估指示该列不应该被跳过,则SMI_CHECK将被设置为0,以使得可对SAD周期跳过进行估计。在以上论述中,由于这是进行检查的第一列,并且所述过程处于列检查的开始,所以SMI_CHECK被设置为I并且图16的过程将继续至步骤660。在步骤660中,变量m将被设置为n+1。页寄存器120将评估是否跳过下一列,页寄存器120将评估CAD (m),其中m = n+1,并且n是当前的列地址。如上所述,步骤660通过页寄存器120检查错误寄存器346来执行。在步骤664中,针对下一列CAD (m),写入数据从数据寄存器304传送至合适的写入阴影寄存器WSL。在一个实施例中,步骤660和664被 同时执行。在其它实施例中,它们以任一顺序被相继执行。变量d(下面描述)被初始化为I。如果页寄存器120确定下一列应该被跳过(步骤666),则在步骤668中,页寄存器120将向其它组件(包括状态机306)指示下一列应该被跳过。如果CAD(m)是要被编程的最后一列(步骤669),则过程完成;否则在步骤670中变量m(列地址)递增,并且所述过程循环回到步骤660以评估是否跳过下一列。例如,如果步骤660正评估CADl并且页寄存器120确定该CADl应该被跳过,则当所述过程循环回到步骤660时,页寄存器将评估是否跳过列CAD2。页寄存器120会在无需等待当前列结束编程的情况下继续对列进行评估,直到不应该被跳过的列为止。当页寄存器120确定列不应该被跳过时¢60),则在步骤670中变量SMI_CHECK被重置为0(自从步骤666),并且过程继续至步骤680。在此处,确定下一列不能被跳过。在步骤680中,页寄存器120将评估是否要跳过下一 SAD周期。下一 SAD周期被记为CAD (m)的SAD (d)。步骤680包括比较与SAD周期SAD (d)的感测放大器关联的、错误寄存器346的合适的位。在步骤682中,用于CAD(m)的SAD(d)的感测放大器使能信息被传送至感测放大器使能阴影锁存器SSL。在一个实施例中,所有SSL锁存器将接收数据。然而,该数据将指示不针对在CAD (m)的SAD(d)的所选一组感测放大器中没有的锁存器进行编程。在一个实施例中,步骤680和682可被同时执行。在其它实施例中,它们可以任一顺序相继执行。如果下一 SAD周期应该被跳过(步骤684),则在步骤695中页寄存器向其它组件指出下一 SAD周期应该被跳过。在一些实施例中,不需要步骤695。在步骤696中,确定CAD(m)的SAD(d) ( S卩,要被跳过的SAD周期)是否是列CAD(m)的最后SAD周期。如果SAD (d)是列CAD (m)的最后SAD周期,则在步骤697中确定CAD (m)是否为要被编程的最后一列。如果CAD(m)是要被编程的最后一列,则过程完成;否则,在步骤699中变量被设置为n = m、b = I、并且SMI_CHECK = I。这具有递增至下一列的第一 SAD周期的效果。在步骤699之后,所述过程继续至步骤644。如果在步骤696中确定SAD (d)不是列CAD (m)的最后SAD周期,则在步骤698中d被递增I以寻址列CAD (m)的下一 SAD周期。在步骤698之后,过程继续至步骤680,并且评估下一 SAD周期。
如果下一 SAD周期不应该被跳过(步骤684),则在步骤6896中,系统将等待正被编程的当前SAD周期完成编程。在步骤690中,在阴影锁存器SSL和WSL中的感测放大器使能信息和写入数据将被传送至数据锁存器SDL和WDL。此外,变量将被设置为如下n =m、b = d、d = d+1 (在设置b = d之后)。如果在步骤680的前一迭代中刚刚评估的SAD周期是列的最后SAD周期,则过程继续至步骤694,并且变量SMI_CHECK被设置为1,以使得系统将考虑下一列。如果在步骤680的前一迭代中评估的SAD周期不是当前列的最后SAD周期,则在步骤692处的过程将继续至步骤642,以编程下一 SAD周期。在步骤694之后,过程还将继续至步骤642以编程下一 SAD周期。图17是描述关于图16所示过程的一个示例实施方案的不同信号的行为的时序图。更具体地,图17的信号图示示出了关于一个特定列的表现,包括步骤660-670的一次迭代以及步骤680-684的四次迭代。在这个示例中,当针对列CADl的SAD周期SAD4正对数据编程时,系统评估是否跳过列CAD2和列CAD2的四个SAD周期。作为这个示例的一部分,系统确定跳过SADlJjfeS SAD2并且对列CAD2的SAD3编程。 图 17 示出下面信号的行为SAE、SMI_TL_CPY、SMI_WDXSAE、SMI_CNT_ADR、SMI_TL_RXW、SMI_CAD[4:0]、SMI_TL_WE、SMI_RL_WE、SMI_CAD ARY[4:0]、PR_SKIP、SMI_CHECK和 SMI_SAD ARY[1:0] 0信号SMI_SAD ARY[1:0]指出正针对跳过而进行评估的SAD周期。在图17的时间TO处,SMI_TL_CPY产生脉动以指出来自阴影锁存器的数据被传送至数据锁存器(WSL和SSL至WDL和SDL)。这个脉冲是步骤690针对将要被编程的当前列的表现的一部分。在这个示例中,当前列是CADl。在步骤Tl,SAE被抬高以开始对于CADl的SAD4的编程过程(见步骤642)。在Tl之后,执行图16的步骤660,并且页寄存器120将评估是否跳过下一列。因为SMI_CHECK为高,所以执行步骤660。在Tl之后,SMI_TL_WE脉动两次,以使得写入数据可被传送至阴影锁存器WSL,作为步骤664的一部分。在这个示例中,页寄存器120将确定下一列(CAD2——如SMI_CAD ARY[4:0]所示)不应该被跳过。因此,SMI_CHECK为低(步骤670的一部分)并且页寄存器120将评估CAD2的SADl是否应该被跳过。在对CAD2的SADI进行估计期间,信号SMI_TL_WE脉动两次(就在时间T2之后)以将感测放大器使能信息从页寄存器120传送至感测放大器使能阴影锁存器SSL。在第一脉冲期间,SMI_CNT_ADR为低,而在该对脉冲的第二脉冲期间,SMI_CNT_ADR为高。在这个示例中,页寄存器120确定SADl应该被跳过;因此PR_SKIP被设置为高(作为步骤695的一部分),并且页寄存器于是将评估SAD2。因而,在时间T4处,SMI_SAD ARY[1:0]被变为SAD2 (类似于步骤698)。在T4之后,页寄存器将评估SAD2是否应被跳过。当评估SAD2时,感测放大器使能信息将被传送至阴影锁存器SSL,如由T4时开始的SMI_TL_WE上的两个脉冲所表明的那样。用于SAD2的感测放大器使能数据将改写用于SADl的感测放大器使能数据。在这个示例中,页寄存器120将确定SAD2应该被跳过;因此,在时间T5处PR_SKIP被抬高(步骤695)。尽管图17示出SMI_TL_WE的两个脉冲,但在一些实施例中,当维持PR_SKIP时传送将被中止。在T6处,SMI_SAD ARY [1:0]将递增至下一 SAD周期,即SAD3,并且页寄存器120将评估SAD3以确定是否跳过SAD3的编程。当进行评估时,SAD3的感测放大器使能信息将从页寄存器120被传送至感测放大器使能阴影锁存器SSLJnS T4处开始的SMI_TL_WE上的两个脉冲所表明的那样。SAD3的感测放大器使能信息将改写存储在SSL中的SAD2的感测放大器使能信息。在这个示例中,页寄存器120将确定针对SAD3的编程不应该被跳过;因此,PR.SKIP在T6之后将保持低。在确定SAD3应该被编程之后,系统将等待编程完成,该编程完成发生在T7之后不久。在时间T8处,(用于对SAD3编程的)数据从阴影锁存器WSL和SSL发送至数据锁存器WDL和SDL,如在SMI_TL_CPY上的脉冲所示。在时间T9处,SAE被抬高以开始针对SAD2的SAD3的编程过程(见图16的步骤642)。在T9之后并且在对SAD2的SAD3编程时,页寄存器120将评估是否跳过CAD2的SAD4。同时,将针对SAD4传送感测放大器使能信息,如在时间T9之后SMI_TL_WE上的两个脉冲所示。在这个示例中,页寄存器确定跳过SAD4,并且PR_SKIP在T9和TlO之间维持为高。一个实施例包括衬底;布置在衬底的一部分上方的非易失性存储元件的单片式三维存储器阵列;与非易失性存储元件通信的多个感测放大器;与所述感测放大器通信的 多个临时存储装置;与所述临时存储装置通信的页寄存器;以及一个或多个控制电路。该一个或多个控制电路与页寄存器、临时存储装置和感测放大器通信。临时存储装置被布置在衬底上、在单片式三维存储器阵列的下方。感测放大器被布置在衬底上、在单片式三维存储器阵列的下方。页寄存器被布置在衬底上、在未处于单片式三维存储器阵列下方的区域中。一个实施例包括衬底;布置在衬底上方的多个非易失性存储元件;与非易失性存储元件通信的多个感测放大器;与感测放大器通信的多个临时存储装置;与临时存储装置和感测放大器通信的一个或多个控制电路;以及与临时存储装置和一个或多个控制电路通信的中间寄存器。中间寄存器被布置在衬底上、在未处于非易失性存储装置下方的区域中。临时存储装置被布置在衬底上、在非易失性存储元件下方。感测放大器被布置在衬底上、在非易失性存储元件下方。响应于所述一个或多个控制电路,由感测放大器从非易失性存储元件读出的数据被传送至临时存储装置,并随后被传送至中间寄存器。响应于所述一个或多个控制电路,要被编程到非易失性存储元件中的数据从中间寄存器被传送至临时存储装置。一个实施例包括布置在衬底的一部分上方的非易失性存储元件的单片式三维存储器;与非易失性存储元件通信的多个感测放大器;与感测放大器通信的多个临时存储装置;与临时存储装置和感测放大器通信的一个或多个控制电路;与临时存储装置和一个或多个控制电路通信的页寄存器;以及在页寄存器与临时存储装置之间的双向数据总线。对于特定感测放大器,临时存储装置中用于存储该特定感测放大器的编程数据的存储装置与临时存储装置中用于存储该特定感测放大器的读出数据的存储装置使用双向数据总线的同一位。响应于一个或多个控制电路,由感测放大器从非易失性存储元件读出的数据被传送至临时存储装置,并随后经由双向数据总线而传送至页寄存器。响应于一个或多个控制电路,要被编程到非易失性存储元件中的数据经由双向数据总线从页寄存器被传送至临时存储装置。一个实施例包括接收数据和存储该数据的请求;将数据传送至在衬底上但不在非易失性存储元件的单片式三维存储器下方(其中单片式三维存储器在衬底上方)的中间寄存器,将数据从中间寄存器传送至在衬底上且在单片式三维存储器下方的临时存储装置;将数据从临时存储装置传送至在衬底上且在单片式三维存储器下方的多个感测放大器;并且基于在感测放大器中的数据对非易失性存储元件的子集进行编程。上文中提供了具体描述以用于进行阐述和说明。但并非要穷举或者将本发明限于所公开的精确形式。根据以上教导,可实现很多修改和变型。上述实施例被选取用于最佳地解释本发明的原理及其实际应用,从而使得本领域技术人员能够以不同的实施例并利用 适于特定预期用途的不同变型来最佳地利用本发明。本发明的范围要由所附权利要求来定义。
权利要求
1.一种非易失性存储装置,包括 衬底; 布置在所述衬底的一部分上方的非易失性存储元件的单片式三维存储器阵列; 与所述非易失性存储元件通信的多个感测放大器,所述感测放大器被布置在所述衬底上、在所述单片式三维存储器阵列下方; 与所述感测放大器通信的多个临时存储装置,所述临时存储装置被布置在所述衬底上、在所述单片式三维存储器阵列下方; 与所述临时存储装置通信的页寄存器,所述页寄存器被布置在所述衬底上、在未处于所述单片式三维存储器阵列下方的区域中;以及 与所述页寄存器、所述临时存储装置和所述感测放大器通信的一个或多个控制电路。
2.根据权利要求I所述的非易失性存储装置,还包括 在所述页寄存器与所述临时存储装置之间的双向数据总线,对于特定感测放大器,所述临时存储装置中用于存储该特定感测放大器的编程数据的第一存储装置与所述临时存储装置中用于存储该特定感测放大器的读出数据的第二存储装置,利用所述双向数据总线中的同一个位通信。
3.根据权利要求2所述的非易失性存储装置,其中 所述临时存储装置还包括第三存储装置,所述第三存储装置用于存储针对所述特定感测放大器的编程信息;并且 所述第三存储装置使用所述双向数据总线的所述同一个位。
4.根据权利要求3所述的非易失性存储装置,其中 所述临时存储装置还包括用于存储针对所述特定感测放大器的编程数据的第四存储装置,以及用于存储针对所述特定感测放大器的编程信息的第五存储装置; 所述第二存储装置与所述双向数据总线的所述同一个位和所述特定感测放大器通f目; 所述第一存储装置与所述双向数据总线的所述同一个位和所述第四存储装置通信; 所述第三存储装置与所述双向数据总线的所述同一个位和所述第五存储装置通信; 所述第四存储装置与所述特定感测放大器通信;并且 所述第五存储装置与所述特定感测放大器通信。
5.根据权利要求4所述的非易失性存储装置,其中 所述第一存储装置、所述第二存储装置、所述第三存储装置、所述第四存储装置、以及所述第五存储装置是从所述一个或多个控制电路接收控制信号的锁存器。
6.根据权利要求4或5所述的非易失性存储装置,其中 所述临时存储装置包括解码电路,所述解码电路将数据发送至所述双向数据总线以及发送来自所述双向数据总线的数据。
7.根据权利要求I所述的非易失性存储装置,还包括 在所述页寄存器与所述临时存储装置的多个存储装置之间的双向数据总线,所述多个感测放大器包括第一感测放大器集合,所述第一感测放大器集合中的每个感测放大器与所述多个存储装置的不同子集关联,所述多个存储装置的每个子集与双向数据总线的一个位通信,以使得所述多个存储装置的每个子集中超过一个的存储装置与所述双向数据总线的所述同一个位通信。
8.根据权利要求I所述的非易失性存储装置,还包括 与所述页寄存器通信的多个双向数据总线,所述非易失性存储元件被布置成组,每组非易失性存储元件与所述感测放大器的不同子集关联,感测放大器的每个子集与所述双向数据总线中的一个关联,感测放大器的每个子集与所述临时存储装置的子集通信;所述临时存储元件的每个子集和与所述临时存储装置的相应子集通信的感测放大器的子集所关联的双向数据总线通信。
9.根据权利要求I所述的非易失性存储装置,还包括 与所述页寄存器和所述临时存储装置通信的双向数据总线,所述页寄存器存储用于所述三维存储器阵列的数据页,所述页寄存器将所述数据页的一部分经由所述双向总线传送至所述临时存储装置,并且所述双向总线具有比感测放大器的数量更小的宽度。
10.根据权利要求I至9中的任一项所述的非易失性存储装置,其中 所述非易失性存储元件是可逆电阻切换元件。
11.一种操作非易失性存储的方法,包括 接收数据和存储所述数据的请求; 将所述数据传送至在衬底上而不在非易失性存储元件的单片式三维存储器下方的中间寄存器中,所述单片式三维存储器在所述衬底上方; 将所述数据从所述中间寄存器传送至在所述衬底上且在所述单片式三维存储器下方的临时存储装置; 将所述数据从所述临时存储装置传送至在所述衬底上且在所述单片式三维存储器下方的多个感测放大器;并且 基于在所述感测放大器中的数据对所述非易失性存储元件的子集编程。
12.根据权利要求11所述的方法,其中 在控制器处接收所述数据和存储数据的请求; 将所述数据传送至所述中间寄存器包括将所述数据从所述控制器传送至页寄存器;并且 所述控制器不在所述衬底上。
13.根据权利要求11或12所述的方法,其中 将所述数据从所述中间寄存器传送至临时存储装置包括提前至少一个周期将所述数据通过双向数据总线传送至阴影存储装置,并且随后将所述数据从所述阴影存储装置传送至与所述感测放大器通信的数据存储装置。
14.根据权利要求13所述的方法,其中 所述编程包括经由所述临时存储装置和所述双向数据总线将来自所述感测放大器的数据发回到所述中间寄存器。
15.根据权利要求1至15中的任一项所述的方法,其中 所述中间寄存器存储用于所述三维存储器的数据页;并且 将所述数据从所述中间寄存器传送至所述临时存储装置包括传送所述数据页的一部分。
全文摘要
非易失性存储装置包括衬底,在衬底的一部分上方的非易失性存储元件的单片式三维存储器阵列,与非易失性存储元件通信的多个感测放大器,与感测放大器通信的多个临时存储装置,与临时存储装置通信的页寄存器及一个或多个控制电路。一个或多个控制电路与页寄存器、临时存储装置和感测放大器通信。感测放大器在衬底上、单片式三维存储器阵列下方。临时存储装置在衬底上、单片式三维存储器阵列下方。页寄存器在衬底上、在未处于单片式三维存储器阵列下方的区域中。响应于一个或多个控制电路,感测放大器从非易失性存储元件读出的数据被传送至临时存储装置,随后传送至页寄存器。响应于一个或多个控制电路,待编程到非易失性存储元件中的数据从页寄存器传送至临时存储装置。
文档编号G11C13/00GK102754160SQ201080056156
公开日2012年10月24日 申请日期2010年12月13日 优先权日2009年12月15日
发明者刘滋易, 卢卡·法索利, 张宇恒, 戈皮纳特·巴拉科瑞斯南, 杰弗里·库恩·伊·李 申请人:桑迪士克3D公司