专利名称:用于集成存储器组件的片上复制
专利类型:发明专利
专利申请号:CN202110367012.8
专利申请(专利权)人:西部数据技术公司
权利人地址:美国加利福尼亚州
专利发明(设计)人:E.沙隆,I.阿尔罗德
专利摘要:本发明题为“用于集成存储器组件的片上复制”。本发明公开了一种非易失性存储器系统,该非易失性存储器系统包括与存储器控制器通信的集成存储器组件。该集成存储器组件包括接合到控制管芯的存储器管芯。该控制管芯包括用于控制该存储器管芯的操作的一个或多个控制电路。该控制电路被配置为:接收复制该存储器管芯上的数据的请求;响应于该请求而读取该存储器管芯上的码字;将该码字解码以识别该码字中的错误;校正该码字中的错误;以及将该码字编程回该存储器管芯中。在一个实施方案中,所读取的码字作为每存储器单元一位的数据存储在该存储器管芯中,并且在校正错误之后编程回该存储器管芯中的码字被编程为每存储器单元多位的数据。
主权利要求:
1.一种存储器装置,包括:
第一组一个或多个半导体管芯,所述第一组一个或多个半导体管芯包括第一半导体管芯,所述第一半导体管芯包括非易失性存储器单元和第一多个通路;和第二组一个或多个半导体管芯,所述第二组一个或多个半导体管芯包括第二半导体管芯,所述第二半导体管芯包括一个或多个控制电路、通向管芯外电路的接口和第二多个通路,所述一个或多个控制电路被配置为通过所述第一多个通路和所述第二多个通路的通路对来传输信号,所述第一组一个或多个半导体管芯中的每个半导体管芯直接接合到所述第二组一个或多个半导体管芯中的相应半导体管芯,所述第二半导体管芯上的所述一个或多个控制电路被配置为:接收复制所述第一半导体管芯上的数据的请求,所述请求经由通向所述管芯外电路的所述接口从所述管芯外电路接收,响应于所述请求,从所述第一半导体管芯上的第一组非易失性存储器单元读取第一码字,将所读取的所述第一码字存储在所述第二半导体管芯上,
在所述第二半导体管芯上,对所述第一码字执行解码过程,在所述第二半导体管芯上,识别所述第一码字中的一个或多个错误,在所述第二半导体管芯上,校正所述第一码字中的一个或多个所识别的错误,以及在校正所述第一码字中的所述一个或多个所识别的错误之后,将所述第一码字编程到所述第一组一个或多个半导体管芯中的第二组非易失性存储器单元,所述第二组非易失性存储器单元不同于所述第一组非易失性存储器单元。
2.根据权利要求1所述的存储器装置,其中:
所述第一码字作为每存储器单元一位的数据存储在所述第一组非易失性存储器单元中;并且所述第一码字作为每存储器单元多位的数据存储在所述第二组非易失性存储器单元中。
3.根据权利要求1所述的存储器装置,其中所述第二半导体管芯上的所述一个或多个控制电路被配置为:响应于所述请求而从所述第一半导体管芯读取多个码字,所述多个码字作为每存储器单元一位的数据存储在所述第一组非易失性存储器单元中,所述多个码字包括所述第一码字;
将所读取的所述多个码字存储在所述第二半导体管芯上;
在所述第二半导体管芯上,对所述多个码字执行所述解码过程;
在所述第二半导体管芯上,识别所述多个码字中的一个或多个错误;
在所述第二半导体管芯上,校正所述多个码字中的一个或多个所识别的错误;以及在校正所述多个码字中的所述一个或多个所识别的错误之后,将所述多个码字作为每存储器单元多位的数据编程到所述第二组非易失性存储器单元,使得所述第二组非易失性存储器单元中的多个存储器单元存储来自所述多个码字的数据。
4.根据权利要求3所述的存储器装置,其中:
所述一个或多个控制电路被配置为使用多遍编程过程将所述多个码字编程到所述第二组非易失性存储器单元;
在所述多遍编程过程的第一遍期间,将所述多个码字的第一子集编程到所述第二组非易失性存储器单元;
在所述多遍编程过程的在所述第一遍之后的后一遍期间,将所述多个码字的第二子集编程到所述第二组非易失性存储器单元;并且所述一个或多个控制电路被配置为:当在所述多遍编程过程的所述第一遍期间将所述多个码字的所述第一子集编程到所述第二组非易失性存储器单元时,对所述多个码字的所述第二子集执行所述解码过程。
5.根据权利要求1所述的存储器装置,其中:
所述第一半导体管芯直接接合到所述第二半导体管芯;并且所述第二组非易失性存储器单元位于所述第一半导体管芯上。
6.根据权利要求1所述的存储器装置,其中:
所述第一半导体管芯包括非易失性存储器阵列;并且
所述第二半导体管芯包括用于从所述第一半导体管芯上的所述非易失性存储器阵列读取数据的感测放大器。
7.根据权利要求6所述的存储器装置,其中:
所述非易失性存储器阵列包括字线;
所述第二半导体管芯包括用于所述第一半导体管芯上的所述非易失性存储器阵列的地址解码器;并且所述第二半导体管芯包括信号发生器,所述信号发生器被配置为生成施加到所述第一半导体管芯上的所述非易失性存储器阵列的所述字线的电压。
8.根据权利要求1所述的存储器装置,其中:
所述第一码字包括数据位和奇偶校验位;并且
所述一个或多个控制电路被配置为通过经由所述多个通路中的不同通路对读取所述第一码字的每个数据位和奇偶校验位,来从所述第一组非易失性存储器单元读取所述第一码字。
9.根据权利要求1所述的存储器装置,其中:
所述多个码字中的每个码字包括数据位和奇偶校验位;并且所述一个或多个控制电路被配置为通过改变所述数据位或所述奇偶校验位而不移除所述奇偶校验位并且不执行编码过程,来校正所述多个码字中的一个或多个所识别的错误。
10.根据权利要求1所述的存储器装置,所述装置还包括:存储器控制器,所述存储器控制器与所述第一半导体管芯和所述第二半导体管芯分开,所述存储器控制器是所述管芯外电路,所述存储器控制器由通信信道连接到所述第二半导体管芯,所述存储器控制器被配置为以第一分辨率来解码码字,所述第二半导体管芯上的所述一个或多个控制电路被配置为以低于所述第一分辨率的第二分辨率来解码码字。
11.根据权利要求10所述的存储器装置,其中:
所述第二半导体管芯上的所述一个或多个控制电路被配置为经由所述通信信道从所述存储器控制器接收复制数据的所述请求;
所述第二半导体管芯上的所述一个或多个控制电路被配置为经由所述通信信道从所述存储器控制器接收要编程到所述第一半导体管芯上的非易失性存储器单元中的新数据;
所述第二半导体管芯上的所述一个或多个控制电路被配置为经由所述通信信道将从所述第一半导体管芯上的非易失性存储器单元读取的其他数据发送到所述存储器控制器;
并且
所述第二半导体管芯上的所述一个或多个控制电路被配置为从第一组非易失性存储器单元读取所述第一码字,将所读取的所述第一码字存储在所述第二半导体管芯上,对所述第一码字执行所述解码过程,识别所述第一码字中的一个或多个错误,校正所述第一码字中的一个或多个所识别的错误,以及对所述第一码字进行编程而不将所述第一码字传输到所述存储器控制器。
12.根据权利要求10所述的存储器装置,其中所述第二半导体管芯上的所述一个或多个控制电路被配置为:从所述第一组一个或多个半导体管芯的第三组非易失性存储器单元读取第二码字;
将所读取的所述第二码字存储在所述第二半导体管芯上;
在所述第二半导体管芯上,确定所述第二码字中的错误估计量;
在所述第二半导体管芯上,确定所述错误估计量大于阈值;以及响应于确定所述错误估计量大于所述阈值,将所述第二码字传输到所述存储器控制器以用于解码。
13.根据权利要求10所述的存储器装置,其中:
所述一个或多个控制电路被配置为:如果所述一个或多个控制电路不能成功地解码所述第一码字,则经由所述通信信道将所述第一码字发送到所述存储器控制器;以及响应于经由所述通信信道接收所述第一码字,所述存储器控制器被配置为以所述第二分辨率来解码所述第一码字,修复所述第一码字中的错误,以及经由所述通信信道将所述第一码字返回到所述第二半导体管芯以便于所述一个或多个控制电路将所述第一码字编程到所述第一半导体管芯。
14.根据权利要求1所述的存储器装置,其中:
所述请求识别所述第一半导体管芯上的源块和所述第一半导体管芯上的目的地块,所述第一组非易失性存储器单元位于所述源块中,所述第二组非易失性存储器单元位于所述目的地块中。
15.根据权利要求1所述的存储器装置,其中:
所述一个或多个控制电路被配置为使用多遍编程过程将所述第一码字编程到所述第二组非易失性存储器单元;
所述多遍编程过程包括第一遍和第二遍;
所述一个或多个控制电路被配置为在所述多遍编程过程的所述第一遍期间将所述第一码字编程到所述第二组非易失性存储器单元;并且所述一个或多个控制电路被配置为在所述多遍编程过程的所述第二遍期间将所述第一码字编程到所述第二组非易失性存储器单元。
16.根据权利要求1所述的存储器装置,其中所述第二半导体管芯上的所述一个或多个控制电路被配置为:从所述第一组一个或多个半导体管芯的第三组非易失性存储器单元读取第二码字;
将所读取的所述第二码字存储在所述第二半导体管芯上;
在所述第二半导体管芯上,当所述一个或多个控制电路将所述第一码字编程到所述第二组非易失性存储器单元时,对所述第二码字执行解码过程;
在所述第二半导体管芯上,识别所述第二码字中的一个或多个错误;
在所述第二半导体管芯上,校正所述第二码字中的一个或多个所识别的错误;以及在校正所述第二码字中的所述一个或多个所识别的错误之后,将所述第二码字编程到所述第一组一个或多个半导体管芯的第四组非易失性存储器单元,所述第四组非易失性存储器单元不同于所述第三组非易失性存储器单元。
17.根据权利要求1所述的存储器装置,其中:
所述第一组一个或多个半导体管芯还包括第三半导体管芯,所述第三半导体管芯包括非易失性存储器单元;
所述第三半导体管芯接合到所述第二组一个或多个半导体管芯中的半导体管芯;并且所述第二组非易失性存储器单元位于所述第三半导体管芯上。
18.一种操作存储器装置的方法,包括:
将存储在存储器管芯上的非易失性存储器单元中的码字传输到接合到所述存储器管芯的控制管芯,所述码字作为每存储器单元一位的数据存储在所述存储器管芯上的所述非易失性存储器单元中;
在所述控制管芯上,将所传输的码字解码以识别一个或多个错误;
在所述控制管芯上,修复所述码字中的所识别的错误;以及将所述码字作为每存储器单元多位的数据编程到所述存储器管芯,使得所述存储器管芯的多个非易失性存储器单元存储来自多个码字的数据。
19.根据权利要求18所述的方法,其中:
所述将所述码字编程包括使用多遍编程过程进行编程;
所述多遍编程过程包括在所述多遍编程过程的第一遍期间将所述码字的第一子集编程,以及在所述多遍编程过程的在所述第一遍之后的后一遍期间将所述多个码字的第二子集编程;并且所述将所传输的码字解码包括当在所述多遍编程过程的所述第一遍期间将所述存储器管芯上的所述码字的所述第一子集编程时,将所述控制管芯上的所述码字的所述第二子集解码。
20.根据权利要求18所述的方法,其中:
所述多个码字中的每个码字包括数据位和奇偶校验位;并且所述修复所述码字中的所识别的错误并且将所述码字编程包括改变所述数据位或所述奇偶校验位而不移除所述奇偶校验位并且不执行编码过程,以及用所改变的数据位或所述奇偶校验位来将所述码字编程。
21.一种存储器装置,包括:
存储器控制器,所述存储器控制器被配置为使用第一解码技术来解码码字;和集成存储器组件,所述集成存储器组件与所述存储器控制器通信,所述集成存储器组件包括:存储器管芯,所述存储器管芯包括非易失性存储器单元;和利用接合焊盘接合到所述存储器管芯的控制管芯;
所述存储器控制器被配置为请求所述存储器管芯上的数据从每存储器单元一位组合成每存储器单元多位并且被编程到所述存储器管芯;
所述控制管芯被配置为:
响应于所述请求,从所述存储器管芯读取多个码字,所述多个码字作为每存储器单元一位的数据存储在所述存储器管芯中,在所述控制管芯上,对所述多个码字执行第二解码技术,
所述第一解码技术以第一分辨率来解码码字,所述第二解码技术以低于所述第一分辨率的第二分辨率来解码码字,所述第二解码技术使用比所述第一解码技术更低的功率,在所述控制管芯上,校正在对所述多个码字执行所述第二解码技术期间所识别的所述多个码字中的一个或多个错误,以及在校正所述多个码字中的所述一个或多个错误之后,将所述多个码字作为每存储器单元多位的数据编程到所述存储器管芯,使得多个存储器单元存储来自多个码字的数据。
22.根据权利要求21所述的存储器装置,其中:
所述存储器管芯包括非易失性存储器阵列;
所述非易失性存储器阵列包括字线和位线;
所述控制管芯包括用于从所述存储器管芯上的所述非易失性存储器阵列读取数据的感测放大器,所述感测放大器连接到所述位线;并且所述控制管芯包括信号发生器,所述信号发生器被配置为生成施加到所述字线中的一个或多个字线的电压。 说明书 : 用于集成存储器组件的片上复制背景技术[0001] 便携式消费电子设备需求的强劲增长推动了对高容量存储设备的需求。非易失性半导体存储器设备,诸如闪存存储器,已广泛用于满足对数字信息存储和交换的日益增长的需求。它们的便携性、多功能性和坚固耐用的设计以及它们的高可靠性和大容量,使得此类存储器设备理想地用于多种电子设备中,包括例如数字相机、数字音乐播放器、视频游戏控制器、PDA、蜂窝电话、膝上型电脑和服务器。[0002] 非易失性半导体存储器设备通常包括连接到一个或多个存储器管芯的存储器控制器。每个存储器管芯通常包括存储器单元阵列,其中存储器单元是基本存储单元。在一些实施方案中,存储器单元存储一位数据。在其他实施方案中,存储器单元存储多位数据。除了与主机设备进行交互之外,存储器控制器还可执行各种维护功能,诸如垃圾收集、损耗均衡、数据压缩或折叠、重新布置数据以释放区块等。有时,为了执行其维护操作或出于其他原因,存储器控制器需要在存储器管芯上将数据从第一位置复制到第二位置。此类复制操作的具体实施可包括从存储器管芯上的第一位置读取数据,将该数据传输到控制器,在存储器控制器处校正该数据中的任何错误,将该数据传输回存储器管芯,并且将该数据编程到存储器管芯上的第二位置。[0003] 由于非易失性半导体存储器设备用于便携式消费电子设备中,因此提高操作速度并且降低功率消耗是有益的。附图说明[0004] 图1是连接到主机的存储器系统的一个实施方案的框图。[0005] 图2是前端处理器电路的一个实施方案的框图。[0006] 图3是后端处理器电路的一个实施方案的框图。[0007] 图4是集成存储器组件的功能框图。[0008] 图5是集成存储器组件的读/写电路和ECC电路的一个实施方案的框图。[0009] 图6A描绘了稀疏奇偶校验矩阵H的示例。[0010] 图6B描绘了对应于图6A的稀疏奇偶校验矩阵的稀疏二部图。[0011] 图7是描绘感测块的一个实施方案的框图。[0012] 图8是集成存储器组件的一个实施方案的框图。[0013] 图9是集成存储器组件的一个实施方案的框图,其中控制管芯控制两个存储器管芯。[0014] 图10A和10B是半导体晶圆的顶视图。[0015] 图10C描绘了半导体管芯的平坦表面上的接合焊盘的示例性图案。[0016] 图11描绘了堆叠在衬底上的集成存储器组件的一个实施方案的侧视图。[0017] 图12描绘了堆叠在衬底上的集成存储器组件的一个实施方案的侧视图。[0018] 图13是单片三维存储器阵列的一个示例性实施方案的一部分的透视图。[0019] 图14描绘了集成存储器组件的一个实施方案。[0020] 图15描绘了集成存储器组件的一个实施方案,其中一个控制管芯控制两个存储器管芯。[0021] 图16是描述用于将组织成存储器管芯上的存储器阵列的非易失性存储器单元编程的过程的一个实施方案的流程图。[0022] 图17示出了当每个存储器单元存储三位数据时用于非易失性存储器单元群的示例性阈值电压分布。[0023] 图18示出了当每个存储器单元存储四位数据时用于非易失性存储器单元群的示例性阈值电压分布。[0024] 图19A和图19B描绘了在编程过程期间用于非易失性存储器单元群的阈值电压分布。[0025] 图20A至图20I描绘了在编程过程期间用于非易失性存储器单元群的阈值电压分布。[0026] 图21是描述用于操作存储系统的过程的一个实施方案的流程图。[0027] 图22是描述用于操作存储系统的过程的一个实施方案的流程图。[0028] 图23是描述用于操作存储系统的过程的一个实施方案的流程图。[0029] 图24是描述用于操作存储系统以执行片上复制操作的过程的一个实施方案的流程图。[0030] 图25是描述用于执行片上复制操作的过程的一个实施方案的流程图。[0031] 图26A和图26B描绘了片上复制操作之前和之后的存储器结构的一部分。[0032] 图27A和图27B描绘了片上复制操作之前和之后的存储器结构的一部分。[0033] 图28是描述用于使用多遍编程过程来执行片上复制操作的过程的一个实施方案的流程图。具体实施方式[0034] 本发明公开了一种片上复制过程,该过程将数据从存储器管芯上的第一位置复制到存储器管芯上的第二位置,而不将该数据传输到存储器控制器。避免传输到存储器控制器提高了复制过程的操作速度并且降低了功率消耗。[0035] 该片上复制过程在包括集成存储器组件的存储器设备上实现,该集成存储器组件具有一个或多个控制管芯和一个或多个存储器管芯。在一些实施方案中,控制管芯和存储器管芯结合在一起。存储器管芯包括非易失性存储器单元。控制管芯控制存储器管芯上的各种操作,诸如读取、写入、擦除,和各种维护操作。在一个实施方案中,控制管芯具有对数据位进行编码以形成包含数据位和奇偶校验位(例如,用于纠错)的码字的能力。然后,控制管芯将码字存储在非易失性存储器单元中。在一个实施方案中,控制管芯具有对存储在非易失性存储器单元中的码字进行解码的能力。在一些实施方案中,该集成存储器组件具有多个控制管芯和多个存储器管芯,使得每个控制管芯控制存储器管芯中的一个存储器管芯的操作。[0036] 一个实施方案包括一种存储器系统,该存储器系统具有与集成存储器组件通信的存储器控制器。该存储器控制器可包括与集成存储器组件分开的专用集成电路(ASIC)。该存储器控制器可将数据发送到控制管芯,控制管芯可将该数据编码成码字并且存储在存储器管芯中。类似地,该存储器控制器可将读取请求发送到控制管芯,其中控制管芯从存储器管芯读取码字,将码字解码,并且将所请求的数据返回到控制器。[0037] 在一个实施方案中,码字存储在存储器管芯上。每个码字可包含数据位和奇偶校验位。在一个实施方案中,码字基于奇偶校验位在控制管芯处被解码。例如,奇偶校验位解码器可用于解码码字。在一些实施方案中,在控制管芯未能解码码字的情况下,存储器控制器能够使用奇偶校验位来解码码字。在一些实施方案中,存储器控制器使用与控制管芯不同的技术来解码码字。例如,存储器控制器可使用软位解码器,而控制管芯可各自使用硬位解码器。[0038] 在一个实施方案中,如果控制管芯成功解码码字,则控制管芯将数据位而不是奇偶校验位发送到存储器控制器。每个数据位的奇偶校验位的数量可根据编码方案而变化。然而,作为一个示例,奇偶校验位可以是码字的约百分之十。通过不将奇偶校验位发送到存储器控制器,在存储器控制器和控制管芯之间的通信路径上节省了大量带宽。另外,可节省大量功率。例如,控制管芯和存储器控制器之间的接口可以是高速接口。[0039] 在一些实施方案中,控制管芯和存储器管芯利用允许控制管芯和存储器管芯之间的通信的许多接合焊盘接合在一起。在一个实施方案中,控制管芯能够通过接合焊盘存取来自存储器管芯的数据。在一个实施方案中,码字的每个数据位和每个奇偶校验位经由不同的接合焊盘被读取。实际上,这提供了比集成存储器组件和存储器控制器之间的数据总线宽得多的接口。因此,将码字从存储器管芯传输到控制管芯非常高效。实际结果是在控制管芯上解码可比在存储器控制器上解码更有效地使用通信带宽。[0040] 在一个实施方案中,如果控制管芯未成功解码码字,则控制管芯将该码字发送到存储器控制器。存储器控制器也能够解码码字。因此,存储器控制器可解码控制管芯不能解码的码字。在一个实施方案中,存储器控制器能够解码具有比控制管芯能够解码的码字的误码率(BER)更高的码字。[0041] 换句话讲,控制管芯和存储器控制器可使用不同的技术来解码码字。在一个实施方案中,由控制管芯使用的技术可使用比由存储器控制器使用的技术更少的功率。因此,控制管芯上的解码可使用比存储器控制器上的解码更少的功率。[0042] 可根据各种技术来解码码字。一些技术可具有相对高的吞吐量和低功耗,但可提供相对低的错误校正能力,而其他技术可提供相对高的错误校正能力,但可具有较低的吞吐量和增加的功耗。在一个实施方案中,控制管芯使用相对高吞吐量和低功耗的技术,这可提供相对低的错误校正能力。在一个实施方案中,控制器使用一种或多种相对低吞吐量和更高功耗的技术,这可提供相对高的错误校正能力。[0043] 在一个实施方案中,控制管芯能够基于码字的估计BER来作出快速决定。在一个实施方案中,控制管芯计算码字的校正子权重。控制管芯可基于校正子权重来估计BER。控制管芯可基于所估计的BER作出多种解码决定。例如,控制管芯可基于估计的BER来改变用于感测存储器单元的电压电平。颇有意义的是,控制管芯可作出此类决定而无需将数据传输到控制器。因此,可节省相当大的带宽和功率。[0044] 在一些实施方案中,控制管芯和存储器管芯在不同的半导体晶圆上制造,这允许在不同的晶圆上使用不同的半导体制造工艺。例如,半导体制造工艺可涉及高温退火。此类高温退火可能是适当形成一些电路元件所需要的,但可能会损坏其他电路元件诸如存储器单元。由于半导体制造工艺的限制,在存储器管芯上形成复杂电路诸如解码器可能具有挑战性。另外,用于在存储器管芯上形成存储器单元的制造工艺可对在存储器管芯上形成的晶体管的尺寸施加约束。在一些实施方案中,控制管芯上的控制电路具有尺寸与存储器管芯上的存储器单元晶体管的尺寸不同(例如,更小)的晶体管。控制管芯上的晶体管的不同(例如,更小)尺寸可改善控制管芯上的控制电路的性能。例如,较小的晶体管可比较大的晶体管使用更少的功率。另外,使用较小的晶体管允许控制管芯的一个实施方案具有更多晶体管用于控制管芯上的控制电路。[0045] 应当理解,本发明可体现为许多不同形式并且不应解释为限于本文所阐述的实施方案。相反,提供了这些实施方案,使得本公开将是周密且完整的,并且将充分地将本发明传达给本领域的技术人员。实际上,本发明旨在覆盖这些实施方案的另选方案、修改和等同物,这些均包括在由所附权利要求书所限定的本发明的范围和实质内。此外,在本发明的以下具体实施方式中,给出了许多具体细节,以便提供对本发明的周密理解。然而,对于本领域的普通技术人员将显而易见的是,本发明可在没有此类具体细节的情况下被实施。[0046] 如上所述,存储器系统可执行的一个操作是将数据从存储器管芯上的一个位置(源位置)复制到存储器管芯上的第二位置(目的地位置)。存在至少两种方法来执行这种复制操作。在第一示例中,读取被复制的数据,将其传输回存储器控制器以用于解码以修复任何错误,用错误校正信息(例如,奇偶校验位)将其编码,将其传输回存储器管芯,然后将其编程到目的地位置。在第二示例中,将数据从存储器管芯上的源位置复制到存储器管芯上的目的地位置,而不将数据发送到存储器控制器。该第二示例被称为“片上复制”。由于片上复制避免了向存储器控制器传输数据,因此复制过程更快地完成并且使用更少的功率(例如,由于不存在总线传输)。然而,由于存储器系统传统上不具有在存储器管芯处执行解码过程的能力,因此片上复制过程可导致数据累积错误。因此,在一个实施方案中,将片上复制功能添加到控制管芯并利用控制管芯上的解码器,使得片上复制的具体实施在将被复制的数据编程到目的地位置之前包括一定程度的解码以及修复错误。[0047] 用于使用本文所公开的集成存储器组件来实现片上复制过程的一个实施方案包括控制管芯从存储器控制器接收对存储在存储器管芯上的数据执行片上复制过程的请求。响应于该请求,控制管芯从存储器管芯上的第一组非易失性存储器单元读取一个或多个码字,并且将这些码字存储在控制管芯上。控制管芯对码字执行(部分或完全)解码过程,在解码过程期间识别码字中的错误,并且校正存储在控制管芯上的码字中的错误。该解码过程、识别错误和校正错误由控制管芯执行而且在控制管芯上执行。在校正码字中的所识别的错误之后,控制管芯将码字编程到存储器管芯上的第二组非易失性存储器单元。在不将数据传输到控制器的情况下执行该读取数据、解码、识别错误、校正错误和编程的过程。在一些实施方案中,该片上复制过程在存储器控制器不做任何工作的情况下执行(除了发出执行片上复制的请求和从控制管芯接收已完成的确认之外)。[0048] 图1至图5描述了可用于实现本文提出的技术的存储器系统的一个示例。图1是连接到主机120的存储器系统100的一个实施方案的框图。存储器系统(例如,非易失性存储器系统)100可实现本文所公开的技术。许多不同类型的存储器系统可与本文所公开的技术一起使用。一个示例性存储器系统为固态驱动器(“SSD”);然而,也可使用其他类型的存储器系统,包括可移动存储卡和USB存储器设备。存储器系统100包括存储器控制器102、用于存储数据的集成存储器组件104和本地存储器(例如,DRAM/ReRAM)106。存储器控制器102包括前端处理器电路(FEP)110和一个或多个后端处理器电路(BEP)112。在一个实施方案中,FEP电路110在ASIC上实现。在一个实施方案中,每个BEP电路112在单独ASIC上实现。在一个实施方案中,用于BEP电路112和FEP电路110中的每一者的ASIC在同一半导体上实现,使得存储器控制器102被制造为片上系统(“SoC”)。FEP110和BEP112均包括其本身的处理器。在一个实施方案中,FEP110和BEP112用作主从配置,其中FEP110是主设备,并且每个BEP112是从设备。例如,FEP电路110实现闪存转换层,该闪存转换层执行存储器管理(例如,垃圾收集、损耗均衡等)、逻辑到物理地址转换、与主机的通信、DRAM(本地易失性存储器)的管理以及SSD(或其他非易失性存储系统)的整体操作的管理。BEP电路112根据FEP电路110的请求来管理集成存储器组件/管芯中的存储器操作。在一些实施方案中,集成存储器组件被称为存储器封装。例如,BEP电路112可进行读取、擦除和编程过程。另外,BEP电路112可执行缓冲器管理,设置FEP电路110所需的特定电压电平,执行纠错(ECC),控制到存储器封装的切换模式接口等。在一个实施方案中,每个BEP电路112负责其本身的一组存储器封装。控制器102是控制电路的一个示例。[0049] 在一个实施方案中,存在多个集成存储器组件104。在一个实施方案中,每个集成存储器组件104包括一个或多个存储器管芯和一个或多个控制管芯。每个存储器管芯可包括一个或多个存储器结构。控制管芯可控制存储器管芯上的操作。例如,控制管芯可控制和执行存储器管芯上的读取、写入和擦除操作。在一个实施方案中,存储器控制器102与控制管芯通信,以便指示控制管芯在一个或多个非易失性存储器管芯或一个或多个存储器结构上执行读取、写入或擦除操作。在一个实施方案中,集成存储器组件104中的每个存储器管芯利用NAND闪存存储器(包括二维NAND闪存存储器和/或三维NAND闪存存储器)。在其他实施方案中,集成存储器组件104可包括其他类型的存储器;例如,PCM存储器和MRAM。[0050] 存储器控制器102经由接口130与主机120通信,该接口实现PCI Express(PCIe)上的NVMExpress(NVMe)。为了与存储器系统100一起工作,主机120包括主机处理器122、主机存储器124和PCIe接口126。主机存储器124是主机的物理存储器,并且可以是DRAM、SRAM、非易失性存储器或另一类型的存储装置。主机120在存储器系统100的外部并与该存储器系统分开。在一个实施方案中,存储器系统100嵌入在主机120中。[0051] 图2是FEP电路110的一个实施方案的框图。图2示出与主机120通信的PCIe接口150,以及与该PCIe接口通信的主机处理器152。主机处理器152可以是本领域中已知的适于实现的任何类型的处理器。主机处理器152与片上网络(NOC)154通信。NOC是集成电路上的通信子系统,通常在SoC中的核心之间。NOC可跨越同步和异步时钟域,或者使用非时钟的异步逻辑。NOC技术将网络理论和方法应用于片上通信,并且与常规总线和交叉开关互连相比带来了显著的改善。与其他设计相比,NOC提高了SoC的可扩展性以及复杂SoC的功率效率。NOC的导线和链路由许多信号共享。由于NOC中的所有链路可在不同的数据分组上同时运行,因此实现了高度并行。因此,随着集成子系统的复杂性不断增大,与先前的通信架构(例如,专用的点对点信号线、共享总线或具有桥的分段总线)相比,NOC提供增强的性能(诸如吞吐量)和可扩展性。连接到NOC154并且与NOC154通信的是存储器处理器156、SRAM160和DRAM控制器162。DRAM控制器162用于操作DRAM(例如,DRAM106)并且与该DRAM通信。SRAM160是由存储器处理器156使用的本地RAM存储器。存储器处理器156用于运行FEP电路并且执行各种存储器操作。与NOC通信的还有两个PCIe接口164和166。在图2的实施方案中,存储器控制器102包括两个BEP电路112;因此,存在两个PCIe接口164/166。每个PCIe接口与BEP电路112中的一个通信。在其他实施方案中,可存在多于或少于两个BEP电路112;因此,可存在多于两个PCIe接口。[0052] 图3是BEP电路112的一个实施方案的框图。图3示出用于与FEP电路110通信(例如,与图2的PCIe接口164和166中的一者通信)的PCIe接口200。PCIe接口200与两个NOC202和204通信。在一个实施方案中,两个NOC可被组合成一个大的NOC。每个NOC(202/204)通过XOR引擎(224/254)、ECC引擎(226/256)连接到SRAM(230/260)、缓冲器(232/262)、处理器(220/250)和数据路径控制器(222/252)。ECC引擎226/256用于执行纠错,如本领域所知。在本文中,ECC引擎226/256可被称为控制器ECC引擎。[0053] ECC引擎226/256可将从主机接收的数据字节进行编码,并且可将从控制管芯304读取的数据字节进行解码和错误校正。在一些实施方案中,ECC引擎226/256为一次存储的每个数据单元(例如,页面)计算奇偶校验位。奇偶校验位(也称为纠错码)可以与数据单元(例如,页面)一起存储。数据单元及其相关联的奇偶校验位的组合被称为码字。在一个实施方案中,奇偶校验位远离数据单元(例如,页面)被存储。[0054] 在一些实施方案中,存储器控制器102不将整个码字发送到集成存储器组件104。相反,存储器控制器102仅发送数据位,而集成存储器组件104上的控制管芯生成奇偶校验位。任选地,存储器控制器102可发送整个码字。在一些情况下,集成存储器组件104的控制管芯不将整个码字发送到存储器控制器102。相反,控制管芯将码字解码,并且仅将数据位发送回存储器控制器102。然而,在一些情况下,控制管芯可能无法成功解码码字。在这种情况下,控制管芯可将整个码字发送到存储器控制器102,该存储器控制器使用ECC引擎226/256来解码码字。[0055] 在一些实施方案中,ECC引擎具有不同的模式,例如ECC模式A226a/256a和ECC模式B226b/256b。这两种模式的分辨率可不同。一般来讲,较高分辨率的解码器能够校正较大数量的位错误。在一个实施方案中,分辨率是指在迭代消息传递解码器中传递的消息中的位数。例如,ECC模式B226b/256b中的消息可具有6位,而ECC模式A226a/256a中的消息可具有3位。在一些实施方案中,在消息中使用较少的位(对应于较低分辨率)导致更快的解码。在消息中使用较少的位也可消耗较少的功率。具有不同分辨率的解码器的更多细节在名称为“ECCDecoderwithMultipleDecode Modes”的美国专利10218384中描述,该专利以引用方式并入本文。[0056] XOR引擎224/254可用于形成冗余信息,该冗余信息基于来自一组码字中的每个码字的信息。冗余信息可存储在存储器管芯中的一个存储器管芯中。该冗余信息可用于恢复该组中的码字中的每个码字的数据位。作为一个示例,每个码字可以是4千字节,每个码字可以用于一页数据,并且冗余信息可由码字中的每个码字的逐位XOR形成。在一个实施方案中,逐位XOR具有与每个码字相同数量的位。[0057] 数据路径控制器222连接到存储器接口228,以用于经由四个信道与集成存储器组件通信。因此,顶部NOC202与用于与集成存储器组件通信的四个信道的存储器接口228相关联,并且底部NOC204与用于与集成存储器组件通信的四个附加信道的存储器接口258相关联。在一个实施方案中,每个存储器接口228/258都包括四个切换模式接口(TM接口)、四个缓冲器和四个调度器。对于信道中的每一个存在一个调度器、缓冲器和TM接口。处理器可以是本领域中已知的任何标准处理器。数据路径控制器222/252可以是处理器、FPGA、微处理器、或其他类型的控制器。XOR引擎224/254和ECC引擎226/256是专用的硬件电路,称为硬件加速器。在其他实施方案中,XOR引擎224/254和ECC引擎226/256可在软件中实现。调度器、缓冲器和TM接口是硬件电路。在其他实施方案中,存储器接口(用于与存储器管芯通信的电路)可以为与图3所描绘不同的结构。另外,具有与图2和图3不同的结构的存储器控制器也可以与本文描述的技术一起使用。[0058] 图4是集成存储器组件104的一个实施方案的功能框图。在一个实施方案中,集成存储器组件104包括两个半导体管芯(或更简洁地说,“管芯”):存储器管芯302和控制管芯304。存储器管芯302包括存储器结构326。存储器结构326可包含非易失性存储器单元。控制管芯304包括控制电路310。在一些实施方案中,存储器管芯302和控制管芯304接合在一起,如下文更详细地描述。[0059] 控制电路310包括在存储器结构326上执行存储器操作(例如,写入、读取、擦除等)的一组电路。控制电路310包括状态机312、片上地址解码器314、功率控制电路316、存储区318、读/写电路328、ECC引擎330、存储器控制器接口332和片上复制电路334。在另一个实施方案中,读/写电路328的一部分位于控制管芯304上,而读/写电路328的另一部分位于存储器管芯302上。例如,读/写电路328可包含感测放大器。在一个实施方案中,感测放大器位于控制管芯304上。在一个实施方案中,感测放大器位于存储器管芯302上。[0060] 在本文中,术语“存储器管芯”、“存储器半导体管芯”等是指包含用于存储数据的非易失性存储器单元的半导体管芯。在本文中,术语“控制管芯”、“控制半导体管芯”等是指包含用于在存储器管芯上的非易失性存储器单元上执行存储器操作的控制电路的半导体管芯。通常来说,许多半导体管芯由单个半导体(例如,硅)晶圆形成。[0061] 状态机312是控制由控制管芯304执行的操作的电路。[0062] 片上地址解码器314在主机120或存储器控制器102使用的地址与行解码器和列解码器(图4中未明确示出)使用的硬件地址之间提供地址接口。功率控制电路316控制在存储器操作期间提供给字线、位线和选择线的功率和电压。在一个实施方案中,功率控制电路316包括电压电路。功率控制电路316可包括用于产生电压的充电泵或其他电压源。功率控制电路316在状态机312的控制下执行。[0063] 在一些实施方案中,读/写电路328包括感测块(其可以包含感测放大器(SA))。在一些实施方案中,感测放大器包括位线驱动器。在一个实施方案中,读/写电路328在状态机312的控制下执行。在一些实施方案中,每个存储器结构326能够经由行解码器(图4中未示出)按字线以及经由列解码器(图4中未示出)按位线来寻址。[0064] 纠错码(ECC)引擎330是被配置为将码字解码和纠错的电路。在本文中,ECC引擎330可被称为管芯上ECC引擎。在一个实施方案中,管芯上ECC引擎330被配置为将来自存储器控制器102的数据位编码成包含数据位和奇偶校验位的码字。控制电路将该码字存储在存储器结构326中。在一个实施方案中,管芯上ECC引擎330还被配置为将从存储器结构326读取的码字解码。在一些实施方案中,如果管芯上ECC引擎330成功解码码字,则控制管芯304仅将数据位发送回存储器控制器102。在一些实施方案中,如果管芯上ECC引擎330未成功解码码字,则存储器控制器ECC引擎226/256可用于解码码字。[0065] 在一些实施方案中,控制管芯304首先尝试使用ECC引擎330来解码码字。如果解码失败,则存储器控制器102可尝试解码该码字。在一些实施方案中,存储器控制器102具有多种ECC模式。例如,ECC模式A226A(参见图3)可用于尝试解码控制管芯304不能解码的码字。如果ECC模式A226a未能解码该码字,则ECC模式B226b可由存储器控制器102使用。例如,管芯上ECC引擎330可使用硬位解码器来尝试解码码字。在典型条件下,硬位解码大多数时候都可成功。在管芯上ECC引擎330未能成功解码码字的情况下,该码字可被传递到存储器控制器102。在一个实施方案中,存储器控制器102首先尝试使用软位解码器在一个分辨率水平下进行解码。该第一尝试可通过ECC模式A226a进行。如果存储器控制器102进行的第一次尝试失败,则存储器控制器可在更高分辨率下使用软位解码器。该第二尝试可通过ECC模式B226b进行。需注意,前述硬位解码器可使用比软位解码器更少的功率。因此,大多数时候可在控制管芯304上使用低功率解码器来实现解码。管芯上ECC引擎330、ECC模式A226A和ECC模式B226b均不限于前述示例。[0066] 片上复制电路334是用于执行本文提出的片上复制操作并且在下文更详细地描述的电路。在一些实施方案中,用于执行片上复制操作的技术被包括在状态机312中。在一些实施方案中,用于执行片上复制操作的技术被包括在用于状态机312或另一种类型的处理器的软件中。[0067] 状态机312、管芯上ECC引擎330、片上复制电路334和/或控制器102(或等效功能的电路),结合控制电路310的全部电路或电路子集,可被视为一个或多个控制电路。该一个或多个控制电路可仅包括硬件(例如,电路)或者包括硬件和软件(包括固件)的组合。例如,由固件编程的控制器是控制电路的一个示例。一个或多个控制电路可以包括处理器、PGA(可编程门阵列)、FPGA(现场可编程门阵列)、ASIC(专用集成电路)、微控制器、集成电路或其他类型的电路。[0068] 通路352是控制电路310中的一个或多个部件和存储器管芯302上的存储器结构之间的通路。每个通路的一部分驻留在存储器管芯302中,并且每个通路的一部分驻留在控制管芯304中。术语“通路”可用于通路352的完全在管芯中一个管芯内的一部分。因此,可以说存储器管芯302具有第一多个通路并且控制管芯304具有第二多个通路。在一个实施方案中,控制管芯304和存储器管芯302被配置为通过第一多个通路和第二多个通路的通路对来传输信号。在一些实施方案中,存储器管芯302和控制管芯304彼此接合,或以其他方式彼此附接,以有利于通过通路对来传送信号。[0069] 通路可用于提供或接收信号(例如,电压、电流)。通路包括导电路径。通路可以包括但不限于可以传输或载送电信号的接合焊盘、金属互连件、通孔、晶体管、导电材料和其他材料中的一者或多者。在一个实施方案中,通路352允许控制电路310向存储器管芯302上的字线、选择线和位线提供电压。通路352可用于从例如位线接收信号。在一个实施方案中,存在约100,000个通路352。然而,可存在多于或少于100,000个通路。具有如此大量的通路352允许并行传递非常大量的数据或其他信号。[0070] 存储器控制器接口332是用于与存储器控制器102通信的电接口。例如,存储器控制器接口332可实现切换模式接口,该切换模式接口连接到存储器控制器102的存储器接口228/258的切换模式接口。在一个实施方案中,存储器控制器接口332包括连接到通信信道332(在本文中也称为数据总线)的一组输入和/或输出(I/O)引脚。在一个实施方案中,通信信道332作为切换模式接口的一部分连接到存储器控制器102。在一个实施方案中,一个集成存储器组件104的通信信道332连接到另一个集成存储器组件104。[0071] 出于一般性,通信信道332被描绘为连接到集成存储器组件104。通信信道332可连接到管芯302和/或304中的任一者或两者。在一个实施方案中,通信信道332将存储器控制器102直接连接到控制管芯304。在一个实施方案中,通信信道332将存储器控制器102直接连接到存储器管芯302。如果通信信道332将存储器控制器102直接连接到存储器管芯302,则通路352可用于允许存储器控制器102和控制电路310之间的通信。[0072] 在一个实施方案中,存储器结构326包括非易失性存储器单元的单片三维存储器阵列,其中多个存储器级形成在单个衬底诸如晶圆上方。存储器结构可以包括在存储器单元阵列的一个或多个物理层中单片地形成的任何类型的非易失性存储器,其具有设置在硅(或其他类型)衬底上方的有源区域。在一个示例中,非易失性存储器单元包括具有电荷俘获材料的垂直NAND串。[0073] 在另一个实施方案中,存储器结构326包括非易失性存储器单元的二维存储器阵列。在一个示例中,非易失性存储器单元是利用浮动栅极的NAND闪存存储器单元。也可使用其他类型的存储器单元(例如,NOR型闪存存储器)。[0074] 包括在存储器结构326中的存储器阵列架构或存储器单元的确切类型不限于上述示例。许多不同类型的存储器阵列架构或存储器技术可用于形成存储器结构326。实现本文提出的要求保护的新实施方案不需要特定的非易失性存储器技术。用于存储器结构326的存储器单元的合适技术的其他示例包括相变存储器(“PCM”)、磁阻随机存取存储器(“MRAM”)等。用于存储器结构326的存储器单元架构的合适技术的示例包括二维阵列、三维阵列、交叉点阵列、叠堆二维阵列、竖直位线阵列等等。[0075] 本领域普通技术人员将认识到,本文所述的技术不限于单个特定存储器结构,但涵盖了在本文所述和如本领域普通技术人员所理解的技术实质与范围内的许多相关的存储器结构。[0076] 虽然图4描绘了集成存储器组件104中的一个控制管芯304和一个存储器管芯302,但是在集成存储器组件104中可存在多于一个控制管芯304和多于一个存储器管芯302。[0077] 图5是控制管芯304的读/写电路328和ECC引擎330的一个实施方案的框图。读/写电路328具有感测放大器350和锁存器360。锁存器360可包括数据锁存器360a和奇偶校验锁存器360b。在一个实施方案中,数据锁存器360a存储码字的数据位,并且奇偶校验锁存器存储码字的奇偶校验位。不需要存在用于数据位和用于奇偶校验位的特定锁存器。图5描绘了四组数据锁存器360(1)、360(2)、360(3)、360(4)。每一组可用于存储不同页面的码字。在每个存储器单元存储四位的实施方案中,将四个页面存储在一组存储器单元中。这四个页面可被称为下页面(LP)、中下页面(LMP)、中上页面(UMP)和上页面(UP)。在每个存储器单元存储三位的实施方案中,将三个页面存储在一组存储器单元中,并且这四个页面可被称为下页面(LP)、中页面(MP)和上页面(UP)。在另一个实施方案中,感测放大器350位于存储器管芯302上,但锁存器360保持在控制管芯304上。[0078] 管芯上ECC引擎330能够将从存储器控制器102接收的数据位编码。在一个实施方案中,管芯上ECC引擎330形成码字,每个码字包含数据位和奇偶校验位。在一个实施方案中,存储器控制器102将这些码字提供给控制管芯304。控制电路310将这些码字存储到存储器结构326中的非易失性存储器单元中。在来自存储器控制器102的读取数据的请求的请求下,控制电路310从存储器结构326读取码字。管芯上ECC引擎330还能够将从存储器结构326读取的码字解码和校正错误。在一些实施方案中,管芯上ECC引擎330为所存储的每个数据单元(例如,页面)计算奇偶校验位。奇偶校验位(也被称为纠错码或纠错码的一部分)可与数据单元(例如,页面)一起存储。数据单元及其相关联的奇偶校验位的组合被称为码字。在一个实施方案中,奇偶校验位远离数据单元(例如,页面)被存储。[0079] 在一个实施方案中,在成功解码码字时,控制管芯304仅将数据位而不是奇偶校验位发送到存储器控制器102。因此,节省了存储器控制器102和集成存储器组件104之间的通信线路上的带宽。另外,可节省大量功率。例如,控制管芯和控制器之间的接口可以是高速接口。[0080] 管芯上ECC引擎330包括校正子计算逻辑370、编码器380和解码器390。编码器380被配置为使用ECC方案来将数据编码,该ECC方案诸如低密度奇偶校验(LDPC)编码器、里德‑所罗门编码器、Bose‑Chaudhuri‑Hocquenghem(BCH)编码器、涡轮码编码器、被配置为将一个或多个其他ECC编码方案编码的编码器,或它们的任何组合。编码器380可形成码字,该码字包含数据位382和奇偶校验位384。数据位可由存储器控制器102提供。[0081] 在一个实施方案中,数据位382存储在数据锁存器360a中,并且奇偶校验位384存储在奇偶校验锁存器360b中。基于锁存器360中的位,当非易失性存储器单元正被编程时,感测放大器350可控制存储器结构326中的位线电压。这样,码字可被编程到存储器结构326中的非易失性存储器单元中。应当理解,也可以向存储器结构326施加其他电压,诸如向被选择用于编程的存储器单元施加编程电压,该编程操作通过向存储器结构326的各种字线施加编程电压和升压电压来实现。[0082] 解码器390被配置为将存储在存储器管芯302中的码字解码。在一个实施方案中,感测放大器350感测存储器结构326中的位线以便读取码字。感测放大器350可将所读取的码字存储到锁存器360中。解码器390能够检测和校正该码字中的错误。在一个实施方案中,与存储器控制器102上的解码器相比,解码器390是功率相对低的解码器。在一个实施方案中,存储器控制器102上的解码器能够校正码字中的比通常可由解码器390校正的更多的位错误。因此,解码器390可提供功率与纠错能力之间的折衷。例如,解码器390在功率消耗方面可能非常有效,但代价是可能无法校正码字中的大量错误。[0083] 在一个实施方案中,解码器390实现硬位解码器。在另一个实施方案中,解码器390实现软位解码器。另选地,解码器390可实现硬位解码器和软位解码器两者。例如,控制管芯304可首先尝试用硬位解码器来解码码字。如果失败,则控制管芯304可尝试使用软位解码器来解码。[0084] 在一些实施方案中,解码器390基于具有位(或可变)节点和校验节点的稀疏二部图。解码器390可在位节点与校验节点之间传递消息。通过执行消息传递计算来在位节点与校验节点之间传递消息。消息传递计算可基于信念传播。[0085] 校正子计算逻辑370(例如电路和/或软件)能够确定码字的校正子权重。校正子权重是指不满足的奇偶校验方程的数量。码字的初始校正子权重可与该码字的误码率(BER)相关联。因此,控制管芯304可基于初始校正子权重来估计码字的BER。在一个实施方案中,校正子逻辑在硬件中实现。可在不完全解码码字的情况下确定校正子权重。因此,可在比解码码字更少的时间和更少的功率下计算初始校正子权重。在一些实施方案中,控制管芯304基于所估计的BER作出管理决定。例如,控制管芯304可基于所估计的BER来确定应使用什么技术来解码码字、应使用什么读取参考电压来读取存储器单元等。[0086] 在一个实施方案中,管芯上ECC引擎330使用稀疏奇偶校验矩阵。图6A描绘了稀疏奇偶校验矩阵H(其也可以表示为稀疏二部图)的示例。该矩阵包括M行和K+M列,它们与长度为N=K+M的每个码字中的K个信息位和M个奇偶校验位相对应。此外,奇偶校验位被定义为使得满足M个奇偶校验方程,其中该矩阵的每行表示一个奇偶校验方程。[0087] 图6B描绘了对应于图6A的稀疏奇偶校验矩阵的稀疏二部图392。具体地讲,代码可由稀疏二部图G=(V,C,E)限定,该稀疏二部图具有N位节点394组成的集合V(在该示例中,N=13)、M个校验节点396组成的集合C(在该示例中,M=10),以及将位节点394连接到校验节点396的边398的集合E(在该示例中,E=38)。位节点对应于码字位,并且校验节点对应于对位的奇偶校验约束。位节点394通过边398连接到其参与的校验节点396。[0088] 在解码期间,解码器390的一个实施方案尝试满足奇偶校验。在该示例中,存在十次奇偶校验,如校验节点cn1至cn10所示。cn1处的第一次奇 偶校验确定是否其中 表示异或(XOR)逻辑运算。如果对应于可变节点v2、v4、v11和v13的位中存在偶数个“1”,则该校验满足。该校验由以下事实表示:从可变节点v2、v4、v11和v13开始的箭头连接到该二部图中的校验节点cn1。cn2处的第二次奇偶校验确定是否 cn3处的第三次奇偶校验确定是否 cn4处的第四次奇偶校验确定是否 cn5处的第五次奇偶校验确定是否cn6处的第六次奇偶校验确定是否 cn7处的第七次奇偶校验确定是否 cn8处的第八次奇偶校验确定是否cn9处的第九次奇偶校验确定是否 并且cn10处的第十次奇偶校验确定是否[0089] 在一个实施方案中,解码器390使用涉及迭代消息传递解码算法的迭代概率解码过程。这些算法通过在表示代码的基础二部图的边上的位节点与校验节点之间交换消息来操作。[0090] 解码器390可设置有码字位的初始估计量(基于从存储器结构326读取的内容)。可通过施加位应作为有效码字而满足的奇偶校验约束来细化和改进这些初始估计量。这可以通过使用沿二部图的边传递的消息在表示码字位的位节点与表示对码字位的奇偶校验约束的校验节点之间交换信息来完成。[0091] 图7是描绘感测块450的一个实施方案的框图。该感测块是读/写电路328的一部分。单个感测块450被划分成称为感测电路或感测放大器350(1)–350(4)的一个或多个核心部分,以及称为管理电路480的公共部分。在一个实施方案中,将存在用于每个位线/NAND串的单独感测电路和用于一组多个(例如,四个或八个)感测电路的一个公共管理电路480。组中的每个感测电路经由数据总线454与相关联的管理电路通信。因此,存在与一组存储元件(存储器单元)的感测电路通信的一个或多个管理电路。[0092] 作为示例,感测放大器350(1)包括感测电路460,该感测电路通过确定已连接位线中的传导电流是高于还是低于预确定的阈值水平来执行感测。感测可以在读取或验证操作中发生。在编程操作(例如,写入操作)中施加编程电压期间,感测电路还供应位线电压。[0093] 感测电路460可包括Vbl选择器462、感测节点464、比较电路466和跳闸锁存器468。在施加编程电压期间,Vbl选择器462可将编程启用电压(例如,V_pgm_enable)或编程禁止电压(例如,Vbl_inh)传递到连接到存储器单元的位线。Vbl选择器462也可在感测操作期间使用。在本文中,“编程启用电压”被定义为施加到使得能够对存储器单元进行编程的存储器单元的电压,同时编程电压(例如Vpgm)也被施加到存储器单元。在某些实施方案中,编程启用电压被施加到耦接到存储器单元的位线,而编程电压被施加到存储器单元的控制栅极。在本文中,“编程禁止电压”被定义为施加到耦接到存储器单元的位线以禁止存储器单元的编程的电压,同时编程电压(例如Vpgm)也被施加到存储器单元(例如,施加到存储器单元的控制栅极)。需注意,升压电压(例如,Vpass)可以与施加到位线的编程禁止电压一起施加到未选择的字线。位线是存储器管芯302上的存储器结构326的一部分。[0094] 编程禁止电压被施加到耦接到将不被编程的存储器单元的位线和/或具有通过编程过程的执行已经达到其各自目标阈值电压的存储器单元的位线。这些位线可以被称为“未选择的位线”。编程禁止电压不被施加到具有要被编程的存储器单元的位线(“选择的位线”)。在一个实施方案中,当编程禁止电压被施加到未选择的位线时,位线从NAND沟道被切断。因此,在一个实施方案中,编程禁止电压不被传递到NAND沟道。升压电压被施加到未选择的字线以升高NAND沟道的电势,这禁止对在其控制栅极处接收编程电压的存储器单元进行编程。[0095] 通过将晶体管的控制栅极电压设置得足够高(例如,高于从Vbl选择器传输的Vbl),晶体管470(例如,nMOS)可被配置作为传输来自Vbl选择器462的Vbl的传输栅极。例如,选择器472可以将电源电压Vdd(例如3V‑4V)传输到晶体管470的控制栅极。[0096] 感测放大器350(1)被配置为控制何时将电压施加到位线的定时。在诸如读取的感测操作和验证操作期间,晶体管470基于选择器472传输的电压来设置位线电压。位线电压大致等于晶体管的控制栅极电压减去其Vt(例如,3V)。例如,如果由选择器472传输Vbl+Vt,则位线电压将为Vbl。这假设源极线为0V。晶体管470根据控制栅极电压钳位位线电压并且作为源极跟随器而不是传输栅极。Vbl选择器462可以传输诸如Vdd的相对较高电压,其高于晶体管470上的控制栅极电压以提供源极跟随器模式。在感测期间,晶体管470因此对位线充电。[0097] 在一种方法中,每个感测放大器的选择器472可以与其他感测放大器的选择器分开控制,以传输Vbl或Vdd。每个感测放大器的Vbl选择器462也可以与其他感测放大器的Vbl选择器分开控制。[0098] 在感测期间,感测节点464被充电直到初始电压,诸如Vsense_init=3V。然后,感测节点经由晶体管470连接到位线,并且感测节点的衰减量用于确定存储器单元是处于导电状态还是非导电状态。在一个实施方案中,在位线中流动的电流使感测节点(例如,感测电容器)放电。感测节点被允许衰减的时间长度在本文中可被称为“积聚时间”。比较电路466用于在感测时将感测节点电压与跳闸电压进行比较。如果感测节点电压衰减到低于跳闸电压Vtrip,则存储器单元处于导电状态并且其Vt等于或低于验证信号的电压。如果感测节点电压未衰减到低于Vtrip,则存储器单元处于非导电状态并且其Vt高于验证信号的电压。感测放大器350(1)包括由比较电路466基于存储器单元是处于导电状态还是非导电状态而设置的跳闸锁存器468。跳闸锁存器中的数据可以是由处理器482读取的位。[0099] 管理电路480包括处理器482、四组示例性数据锁存器484、485、486、487,以及耦接在这些数据锁存器组与数据总线332(数据总线可连接到存储器控制器102)之间的I/O接口488。可以为每个感测放大器提供一组数据锁存器,例如,包括单独锁存器LDL、LMDL、UMDL和UDL。在一些情况下,可使用更少的或更多的数据锁存器。LDL存储用于下页面数据的位,LMDL存储用于中下页面数据的位,UMDL存储用于中上页面数据的位,并且UDL存储用于上页面数据的位。这是在每个存储器单元十六级或四位的存储器设备中。在一个实施方案中,每个存储器单元具有八级或三位,并且因此每个感测放大器只具有三个锁存器(LDL、MDL、UDL)。[0100] 处理器482执行计算,诸如确定存储在已感测的存储器单元中的数据以及将所确定的数据存储在该组数据锁存器中。每组数据锁存器484‑487用于在读操作期间存储由处理器482确定的数据位,并且在编程操作期间存储从数据总线332导入的数据位,这些数据位表示要编程到存储器中的写入数据。I/O接口488提供数据锁存器484‑487和数据总线332之间的接口。[0101] 处理器482还可以用于基于锁存器的状态来确定向位线施加什么电压。[0102] 在读取期间,系统的操作受状态机312的控制,该状态机控制供给所寻址的存储器单元的不同的控制栅极电压(例如,通过经由本文所述的控制管芯304和存储器管芯302之间的通路将电压从功率控制316施加到存储器结构326上的字线)。当它逐步通过与存储器支持的各种存储器状态相对应的各种预定义控制栅极电压时,感测电路可以在这些电压中的一个电压处跳闸,并且对应输出将经由数据总线454从感测电路提供给处理器482。此时,处理器482通过考虑感测电路的跳闸事件和关于来自状态机的经由输入线490施加的控制栅极电压的信息来确定所得的存储器状态。然后,它计算存储器状态的二进制编码,并将得到的数据位存储到数据锁存器484‑487中。[0103] 一些具体实施可包括多个处理器482。在一个实施方案中,每个处理器482将包括输出线(未示出),使得每个输出线被线或在一起。在一些实施方案中,输出线在连接到线或线之前被反转。该配置使得能够在编程验证测试期间快速确定编程过程何时完成,因为接收线或的状态机可以确定何时所有被编程的位达到了期望的水平。例如,当每个位达到其所需电平时,该位的逻辑零将被发送到线或线(或数据一被反转)。当所有位输出数据0(或数据一被反转)时,状态机知道终止编程过程。因为(在一个实施方案中)每个处理器与四个感测放大器通信,所以状态机需要读取线或线四次,或者将逻辑添加到处理器482以累积相关联位线的结果,使得状态机只需要读取一次线或线。类似地,通过正确选择逻辑电平,全局状态机可以检测第一位何时改变其状态并相应地改变算法。[0104] 在存储器单元的编程或验证操作期间,待编程的数据(写入数据)从数据总线332存储在该组数据锁存器484‑487中,在每存储器单元四位的具体实施中存储在LDL、LMDL、UMDL和UDL锁存器中。[0105] 在状态机的控制下,编程操作将一组编程电压脉冲施加到所寻址的存储器单元的控制栅极。每个电压脉冲的幅值可在被称为增量步进脉冲编程的过程中从前一个编程脉冲逐步增加一个步长。每个编程电压之后是验证操作以确定存储器单元是否已被编程到所需的存储器状态。在一些情况下,处理器482监控相对于所需存储器状态的读回存储器状态。当两者一致时,处理器482将位线设置为编程禁止模式,诸如通过更新其锁存器。即使将附加的编程脉冲施加到其控制栅极,这也禁止耦接到位线的存储器单元进一步编程。[0106] 每组数据锁存器484‑487可被实现为每个感测放大器的数据锁存器的堆叠。在一个实施方案中,每个感测放大器350有三个数据锁存器。在一些具体实施中,数据锁存器被实现为移位寄存器,使得存储在其中的并行数据被转换为数据总线332的串行数据,反之亦然。对应于存储器单元的读/写块的所有数据锁存器可以连接在一起以形成块移位寄存器,从而可以通过串行传输输入或输出数据块。具体地讲,读/写电路模块组被调整,使得其数据锁存器组将数据按顺序移入或移出数据总线,就如它们是整个读/写块的移位寄存器的一部分一样。[0107] 数据锁存器识别相关联的存储器单元何时达到编程操作的某些里程碑。例如,锁存器可识别存储器单元的Vt低于特定验证电压。数据锁存器指示存储器单元当前是否存储来自一页数据的一个或多个位。例如,LDL锁存器可以用于存储下页数据。当下页位存储在相关联的存储器单元中时,LDL锁存器被翻转(例如,从0到1)。当中下、中上或上页面位分别存储在相关联的存储器单元中时,LMDL、UMDL或UDL锁存器被翻转。这在相关联的存储器单元完成编程时发生。[0108] 图8是集成存储器组件104的一个实施方案的框图。图8描绘了图1和图4的集成存储器组件104的一个实施方案的更多细节。存储器管芯302包含存储器单元组成的平面520。存储器管芯302可具有附加的平面。该平面被分成M个块。在一个示例中,每个平面具有约1040个块。然而,也可以使用不同数量的块。在一个实施方案中,包括存储器单元的块是擦除单位。即,一个块的所有存储器单元一起被擦除。在其他实施方案中,可以出于其他原因将存储器单元分组为块,诸如为了组织存储器结构326以启用信令和选择电路。为每个平面描绘了一个代表性位线(BL)。每个平面可能有数千或数万条这样的位线。如下文更全面地描述,每个块可以被分成若干字线。在一个实施方案中,块表示一组连接的存储器单元,因为块的存储器单元共享一组公共的未断开的字线和未断开的位线。在图8的结构中,平面520的块0和块M‑1都位于存储器结构的边缘处(或者被称为位于存储器结构的边缘区/部分中)。[0109] 控制管芯304包括多个感测放大器(SA)350。每个感测放大器350连接到一个位线。感测放大器包含位线驱动器。因此,感测放大器可以向与其连接的位线提供电压。感测放大器被配置为感测位线的状况。在一个实施方案中,感测放大器被配置为感测在位线中流动的电流。在一个实施方案中,感测放大器被配置为感测位线上的电压。[0110] 控制管芯304包括多个字线驱动器560(1)‑560(n)。字线驱动器560被配置为向字线提供电压。在这个示例中,每个存储器单元块有“n”个字线。在一个实施方案中,每次为存储器阵列操作选择平面520中的块中的一个块。在一个实施方案中,如果存储器操作是编程或读取,则选择所选块内的一个字线用于存储器操作。在一个实施方案中,如果存储器操作是擦除,则选择所选块内的所有字线用于擦除。字线驱动器560(例如,功率控制316的一部分)向存储器管芯302中的第一所选块(例如,块2)中的字线提供电压。控制管芯304还可以包括电荷泵、电压发生器等,其可以用于为字线驱动器560和/或位线驱动器提供电压。[0111] 存储器管芯302在存储器管芯302的第一主表面582上具有多个接合焊盘570a、570b。可存在“n”个接合焊盘570a以从对应的“n”个字线驱动器560(1)‑560(n)接收电压。与平面520相关联的每个位线可以有一个接合焊盘570b。附图标号570将用于总体上指代主表面582上的接合焊盘。[0112] 在一些实施方案中,码字的每个数据位和每个奇偶校验位通过不同的接合焊盘对570b、574b传输。码字的位可通过接合焊盘对570b、574b并行传输。这相对于例如在存储器控制器102和集成存储器组件104之间传输数据提供了非常有效的数据传输。例如,存储器控制器102和集成存储器组件104之间的数据总线可例如提供要并行传输的八位、十六位或可能32位。然而,存储器控制器102和集成存储器组件104之间的数据总线不限于这些示例。[0113] 控制管芯304在控制管芯304的第一主表面584上具有多个接合焊盘574a、574b。可存在“n”个接合焊盘574a以将电压从对应的“n”个字线驱动器560(1)‑560(n)输送到存储器管芯302a。与平面520相关联的每个位线可以有一个接合焊盘574b。附图标号574将用于总体上指代主表面582上的接合焊盘。需注意,可存在接合焊盘对570a/574a和接合焊盘对570b/574b。在一些实施方案中,接合焊盘570和/或574是倒装芯片接合焊盘。[0114] 在一个实施方案中,接合焊盘570的图案匹配接合焊盘574的图案。接合焊盘570接合(例如,倒装芯片接合)到接合焊盘574。因此,接合焊盘570、574将存储器管芯302电耦接和物理耦接到控制管芯304。此外,接合焊盘570、574允许存储器管芯302和控制管芯304之间的内部信号传送。因此,存储器管芯302和控制管芯304利用接合焊盘接合在一起。虽然图8描绘了一个控制管芯304接合到一个存储器管芯302,但在另一个实施方案中,一个控制管芯304接合到多个存储器管芯302。[0115] 在本文中,“内部信号传送”是指控制管芯304与存储器管芯302之间的信号传送。内部信号传送允许控制管芯304上的电路控制存储器管芯302中的存储器操作。因此,接合焊盘570、574可以用于存储器操作信号传送。在本文中,“存储器操作信号传送”指的是与存储器管芯302中的存储器操作相关的任何信号。存储器操作信号传送可以包括但不限于提供电压、提供电流、接收电压、接收电流、感测电压和/或感测电流。[0116] 接合焊盘570、574可由例如铜、铝及其合金形成。在接合焊盘570、574和主表面(582,584)之间可存在衬垫。衬垫可以由例如钛/氮化钛堆叠形成。可以通过气相沉积和/或电镀技术施加接合焊盘570、574和衬垫。接合焊盘和衬垫一起可以具有720nm的厚度,但是在其他实施方案中该厚度可以更大或更小。[0117] 金属互连件和/或通孔可用于将管芯中的各种元件电连接到接合焊盘570、574。描述了可以用金属互连件和/或通孔实现的若干导电通路。例如,感测放大器350可通过通路512电连接到接合焊盘574b。可能有成千上万个这样的感测放大器、通路和接合焊盘。需注意,BL不一定直接连接到接合焊盘570b。字线驱动器560可通过通路502电连接到接合焊盘574a。需注意,通路502可包括用于每个字线驱动器560(1)‑560(n)的单独的导电通路。同样,对于每个字线驱动器560(1)‑560(n),可存在单独的接合焊盘574a。存储器管芯302的块2中的字线可通过通路504电连接到接合焊盘570a。在图8中,对于块中对应的“n”个字线,存在“n”个通路504。对于每个通路504,可存在单独的一对接合焊盘570a、574a。[0118] 图9描绘了集成存储器组件104的另一个实施方案,其中一个控制管芯304可用于控制两个存储器管芯302a、302b。控制管芯304在第一主表面584上具有多个接合焊盘574(a)、574(b),如结合图8所述。控制管芯304在第二主表面588上具有多个接合焊盘576(a)、576(b)。可存在“n”个接合焊盘576(a)以将电压从对应的“n”个字线驱动器560(1)‑560(n)输送到存储器管芯302b。字线驱动器560可通过通路506电连接到接合焊盘576a。对于与存储器管芯302b上的平面530相关联的每个位线,可存在一个接合焊盘576b。附图标号576将用于总体上指代主表面588上的接合焊盘。[0119] 第二存储器管芯302b在第二存储器管芯302b的第一主表面586上具有多个接合焊盘572(a)、572(b)。可存在“n”个接合焊盘572(a)以从对应的“n”个字线驱动器560(1)‑560(n)接收电压。平面530中的字线可通过通路508电连接到接合焊盘572a。与平面530相关联的每个位线可以有一个接合焊盘572(b)。附图标号572将用于总体上指代主表面586上的接合焊盘。需注意,可存在接合焊盘对572(a)/576(a)和接合焊盘对572(b)/576(b)。在一些实施方案中,接合焊盘572和/或576是倒装芯片接合焊盘。[0120] 在一个实施方案中,“n”个字线驱动器560(1)–560(n)在两个存储器管芯302a、302b之间共享。例如,单个字线驱动器可用于向存储器管芯302a中的字线和存储器管芯302b中的字线提供电压。然而,不需要字线驱动器560在存储器管芯302a、302b之间共享。[0121] 图10A是半导体晶圆635a的顶视图,可从该半导体晶圆形成多个控制管芯304。晶圆635a具有集成电路603的许多副本。集成电路603中的每个集成电路包含控制电路310(参见图4)。晶圆635a被切割成半导体管芯,每个管芯包含集成电路603的副本中的一个副本。因此,可由晶圆635a形成许多控制半导体管芯304。还要注意,即使在晶圆635a被切割之前,由于本文使用了术语“控制半导体管芯”,所以集成电路603所在的每个区可被称为控制半导体管芯304。[0122] 图10B是半导体晶圆635b的顶视图,可从该半导体晶圆形成多个存储器管芯302。晶圆635b具有集成电路605的许多副本。集成电路605中的每个集成电路包含存储器结构326(参见图4)。在一些实施方案中,晶圆635b被切割成半导体管芯,每个管芯包含集成电路605的副本中的一个副本。因此,可从晶圆635b形成许多存储器半导体管芯302。还要注意,即使在晶圆635b被切割之前,由于本文使用了术语“存储器半导体管芯”,所以集成电路605所在的每个区可以被称为存储器半导体管芯302。[0123] 半导体晶圆635可以根据CZ、FZ或其他工艺生长的单晶硅的晶锭而开始。半导体晶圆635可以在主表面上被切割和抛光,以提供光滑的表面。集成电路603、605可形成在主表面上和/或主表面中。需注意,在不同晶片635a、635b上形成集成电路603、605有利于在不同晶片635a、635b上使用不同的半导体制造工艺。例如,半导体制造工艺可涉及高温退火。此类高温退火可能是为了形成一些电路元件所需要的,或者可用于改善电路元件的特性。例如,高温退火可有利地减小存储器管芯302上的多晶硅的电阻。然而,高温退火可能会损坏其他电路元件。例如,高温退火可潜在地损坏CMOS晶体管,诸如可在半导体管芯304上使用的晶体管。在一个实施方案中,当在晶片635a上制造集成电路603时,不使用当在晶片635b上制造集成电路605时使用的高温退火。例如,在一个实施方案中,在制造控制管芯时,不使用在制造存储器管芯时使用的高温退火。[0124] 将晶圆635切割成半导体管芯可以在接合之前或之后进行。在一个实施方案中,两个晶圆635、635b接合在一起。在将两个晶圆接合在一起之后,进行切割。因此,可从两个晶圆635形成许多集成存储器组件104。在另一个实施方案中,两个晶圆635a、635b被切割成半导体管芯304、302。然后,每个半导体管芯304、302中的一者被接合在一起以形成集成存储器组件104。不管切割是在接合之前还是之后发生,可以说集成存储器组件104包含接合在一起的控制半导体管芯304和存储器半导体管芯302。[0125] 如上所述,控制管芯304和存储器管芯302可接合在一起。每个管芯302、304上的接合焊盘可用于将两个管芯接合在一起。图10C描绘了半导体管芯的平坦表面上的接合焊盘的示例性图案。半导体管芯可以是存储器管芯302或控制管芯304。接合焊盘可以是适合于半导体管芯的接合焊盘570或574中的任一者。可存在比图10C所描绘的更多的接合焊盘。作为一个示例,在两个半导体管芯之间可能需要100,000或更多的互连件。为了支持如此大量的电互连件,接合焊盘可具有小的面积和间距。在一些实施方案中,接合焊盘是倒装芯片接合焊盘。[0126] 集成存储器组件104中的半导体管芯302、304可通过最初将相应的管芯302、304上的接合焊盘570、574彼此对准而彼此接合。此后,接合焊盘可以通过多种接合技术中的任何一种接合在一起,部分取决于接合焊盘尺寸和接合焊盘间隔(即,接合焊盘间距)。接合焊盘的尺寸和间距又可以由第一半导体管芯和第二半导体管芯302和304之间所需的电互连件的数量来决定。[0127] 在一些实施方案中,在所谓的Cu‑Cu接合工艺中,接合焊盘在没有焊料或其他附加材料的情况下直接彼此接合。在Cu‑Cu接合工艺中,接合焊盘被控制为高度平坦的,并且形成在高度受控的环境中,该环境基本上没有环境颗粒,否则该环境颗粒可能沉积在接合焊盘上并阻止紧密接合。在这种适当控制的条件下,接合焊盘对准并彼此压靠,以基于表面张力形成相互接合。这种接合可以在室温下形成,尽管也可以施加热量。在使用Cu‑Cu接合的实施方案中,接合焊盘可以是大约5μm见方,并且以5μm到5μm的间距彼此隔开。虽然该工艺在本文中被称为Cu‑Cu接合,但是该术语也可以适用于接合焊盘由除铜之外的材料形成的情况。[0128] 当接合焊盘的面积小时,可能难以将半导体管芯接合在一起。通过在包括接合焊盘的半导体管芯的表面上提供膜层,可以进一步减小接合焊盘的尺寸和间距。膜层设置在接合焊盘周围。当管芯被放在一起时,接合焊盘可以彼此接合,并且各个管芯上的膜层可以彼此接合。这种接合技术可以称为混合接合。在使用混合接合的实施方案中,接合焊盘可以是大约5μm见方,并且以1μm到5μm的间距彼此隔开。可以使用接合技术来提供具有更小尺寸和间距的接合焊盘。[0129] 一些实施方案可在管芯302和304的表面上包括膜。如果最初没有提供这样的膜,则可以用环氧树脂或其他树脂或聚合物在底部填充管芯之间的空间。底部填充材料可作为液体施加,然后使其硬化为固态层。该底部填充的步骤保护了管芯302、304之间的电连接,并进一步将管芯固定在一起。各种材料可用作底部填充材料,但在实施方案中,底部填充材料可以是来自Henkel公司的Hysol环氧树脂,该公司在美国加利福尼亚州设有办事处。[0130] 如本文所指出的,集成存储器组件104中可存在多于一个控制管芯304和多于一个存储器管芯302。在一些实施方案中,集成存储器组件104包括多个控制管芯304和多个存储器管芯302的堆叠。图11描绘了堆叠在衬底802上的集成存储器组件104的一个实施方案的侧视图。集成存储器组件104具有三个控制管芯304和三个存储器管芯302。每个控制管芯304接合到存储器管芯302中的一个存储器管芯。描绘了接合焊盘570、574中的一些。可能有更多的接合焊盘。接合在一起的管芯302、304之间的空间填充有固态层848,该固态层可由环氧树脂或其他树脂或聚合物形成。该固态层848保护了管芯302、304之间的电连接,并进一步将管芯固定在一起。各种材料可用作固态层848,但在实施方案中,该材料可以是来自Henkel公司的Hysol环氧树脂,该公司在美国加利福尼亚州设有办事处。[0131] 集成存储器组件104可例如以阶梯式偏移堆叠,使得每一级处的接合焊盘804不被覆盖并且能够从上方触及。连接到接合焊盘804的引线接合806将控制管芯304连接到衬底802。多个此类引线接合可跨每个控制管芯304的宽度形成(即,形成到图11的页面中)。[0132] 硅通孔(TSV)812可用于将信号路由通过控制管芯304。硅通孔(TSV)814可用于将信号路由通过存储器管芯302。可在半导体管芯302、304中的集成电路形成之前、期间或之后形成TSV812、814。可通过蚀刻穿过晶圆的孔来形成TSV。然后,可将这些孔衬有防金属扩散的阻挡。阻挡层又可以衬有种子层,并且种子层可以镀有电导体,诸如铜,尽管可以使用其他合适的材料,诸如铝、锡、镍、金、掺杂的多晶硅以及合金或其组合。[0133] 就图11所描绘的具体实施的一个实施方案而言,可使用连接到接合焊盘804和引线接合806的各种所描绘的TSV812和814,使得多个控制管芯304可彼此通信,并且多个控制管芯304可在彼此之间传输数据,例如,第一控制管芯可从其接合的存储器管芯读取数据,将该数据(在一些任选的处理之后)传输到第二控制管芯,并且第二控制管芯可将该数据编程到接合到第二控制管芯的存储器管芯中。[0134] 焊球808可任选地附连到衬底802的下表面上的接触焊盘810。焊球808可用于将集成存储器组件104以电气和机械方式耦接到主机设备诸如印刷电路板。在集成存储器组件104将用作LGA封装的情况下,可省略焊球808。焊球808可形成集成存储器组件104与存储器控制器102之间的接口的一部分。[0135] 在图11的实施方案中,存储器管芯302和控制管芯304成对布置。也就是说,每个存储器管芯302接合到对应的/匹配的/配对的控制管芯并且与其通信。[0136] 图12描绘了堆叠在衬底802上的集成存储器组件104的一个实施方案的侧视图。集成存储器组件104具有三个控制管芯304和三个存储器管芯302。在该示例中,每个控制管芯304接合到至少一个存储器管芯302。任选地,控制管芯304可接合到两个存储器管芯302。例如,控制管芯304中的两个控制管芯接合到控制管芯304上方的存储器管芯302和控制管芯304下方的存储器管芯302。[0137] 描绘了接合焊盘570、574中的一些接合焊盘。可能有更多的接合焊盘。接合在一起的管芯302、304之间的空间填充有固态层848,该固态层可由环氧树脂或其他树脂或聚合物形成。与图11中的示例相比,图12中的集成存储器组件104不具有阶梯式偏移。硅通孔(TSV)812可用于将信号路由通过存储器管芯302。硅通孔(TSV)814可用于将信号路由通过控制管芯304。[0138] 就图12所描绘的具体实施的一个实施方案而言,可使用各种所描绘的TSV812和814,使得多个控制管芯304可彼此通信,并且多个控制管芯304可在彼此之间传输数据,例如,第一控制管芯可从其接合的存储器管芯读取数据,将该数据(在一些任选的处理之后)传输到第二控制管芯,并且第二控制管芯可将该数据编程到接合到第二控制管芯的存储器管芯中。[0139] 焊球808可任选地附连到衬底802的下表面上的接触焊盘810。焊球808可用于将集成存储器组件104以电气和机械方式耦接到主机设备诸如印刷电路板。在集成存储器组件104将用作LGA封装的情况下,可省略焊球808。[0140] 图13是包括存储器结构326的单片三维存储器阵列的一个示例实施方案的一部分的透视图,该存储器结构包括多个非易失性存储器单元。例如,图13示出了包括存储器的一个块的一部分。所描绘的结构包括位于交替的介电层和导电层的堆叠上方的一组位线BL,其中垂直列材料延伸穿过介电层和导电层。出于示例目的,将介电层中的一个标记为D,并且将导电层中的一个(也被称为字线层)标记为W。交替的介电层和导电层的数量可以基于特定具体实施要求而变化。一组实施方案包括108‑304个交替的介电层和导电层。一个示例实施方案包括96个数据字线层、8个选择层、6个虚设字线层和110个介电层。也可以使用多于或少于108‑304个层。在一个实施方案中,交替的介电层和导电层被局部互连件LI分成四个“指状部”或子块。图13示出了两个指状部和两个局部互连件LI。源极线层SL位于交替的介电层和字线层下方。垂直列材料(也称为存储器孔)形成在交替的介电层和导电层的堆叠中。例如,其中一个垂直列/存储器孔被标记为MH。需注意,在图13中,介电层被描绘为透视图,使得读者可以看到位于交替的介电层和导电层的堆叠中的存储器孔。在一个实施方案中,通过用包括电荷俘获材料的材料填充垂直列/存储器孔以创建存储器单元的垂直列来形成NAND串。每个存储器单元可以存储一个或多个数据位。合适的存储器结构326的一个示例在美国专利10553298中描述,该专利全文以引用方式并入本文。[0141] 图14是集成存储器组件104的一个实施方案的图示。在图14所描绘的实施方案中,存储器管芯302接合到控制管芯304。这种接合配置类似于图8所描绘的实施方案。需注意,尽管在相邻管芯对之间描绘了间隙,但是这种间隙可以用环氧树脂或其他树脂或聚合物填充。图14示出了通路352的一个实施方案的其他细节。[0142] 该存储器管芯包括存储器结构326。存储器结构326邻近存储器管芯302的衬底1072。在一些实施方案中,衬底1072由硅晶圆的一部分形成。在该示例中,存储器结构326包括三维存储器阵列。存储器结构326具有与图13所描绘的示例相似的结构。存在许多被介电层分开的字线层(WL)。介电层由字线层之间的间隙表示。因此,字线层和介电层形成堆叠。可存在比图14所描绘的更多的字线层。与图13的示例一样,存在延伸穿过该堆叠的若干列。在每个堆叠中用附图标号1002指代一列1002。列包含存储器单元。例如,每一列可以包含一个NAND串。邻近堆叠有许多位线(BL)。[0143] 字线驱动器560同时向存储器管芯302中的字线1042提供电压。从字线驱动器560到字线1042的通路包括导电通路1032、接合焊盘574a1、接合焊盘570a1和导电通路1034。在一些实施方案中,导电通路1032、1034被称为通路对。导电通路1032、1034可各自包括一个或多个通孔(其可以相对于管芯的主表面垂直延伸)和一个或多个金属互连件(其可以相对于管芯的主表面水平延伸)。导电通路1032、1034可包括晶体管或其他电路元件。在一个实施方案中,晶体管实际上可以用于打开或关闭通路。其他字线驱动器(图10A中未示出)向其他字线提供电压。因此,除了接合焊盘574a1、570a1之外,还存在附加的接合焊盘574a、570a。如本领域中已知的,接合焊盘可以由例如铜、铝及其合金形成。[0144] 感测放大器350与存储器管芯302中的位线通信。从感测放大器350到位线的通路包括导电通路1052、接合焊盘574b、接合焊盘570b和导电通路1054。在一些实施方案中,导电通路1052、1054被称为通路对。导电通路1052、1054可包括一个或多个通孔(其可以相对于管芯的主表面垂直延伸)和一个或多个金属互连件(其可以相对于管芯的主表面水平延伸)。金属互连件可以由各种导电金属形成,包括例如本领域中已知的铜和铜合金,并且通孔可以衬有和/或填充有各种导电金属,包括例如本领域已知的钨、铜和铜合金。导电通路1052、1054可包括晶体管或其他电路元件。在一个实施方案中,晶体管实际上可以用于打开或关闭通路。[0145] 控制管芯304具有衬底1076,该衬底可由硅晶圆形成。感测放大器350、字线驱动器560和其他电路1020可以形成在衬底1076上和/或该衬底中。电路1020可以包括控制电路310中的一些或全部。在一些实施方案中,感测放大器350、字线驱动器560和/或其他电路1020包括CMOS电路。[0146] 存在允许控制管芯304上的电路与集成存储器组件104外部的实体诸如存储器控制器102通信的外部信号路径。因此,控制管芯304上的电路1020可与例如存储器控制器102通信。可选地,控制管芯304上的电路可以与例如主机120通信。外部通路包括控制管芯304中的通孔1058、接合焊盘574c、接合焊盘570c、硅通孔(TSV)1060和外部焊盘1078。TSV1060延伸穿过衬底1072。[0147] 可以在半导体管芯302、304中的集成电路形成之前、期间或之后形成TSV1060。可通过蚀刻穿过晶圆的孔来形成该TSV。例如,可以蚀刻穿过衬底1072的孔。孔也可以被蚀刻穿过邻近晶圆的材料。然后,可将这些孔衬有防金属扩散的阻挡。阻挡层又可以衬有种子层,并且种子层可以镀有电导体,诸如铜,尽管可以使用其他合适的材料,诸如铝、锡、镍、金、掺杂的多晶硅以及合金或其组合。[0148] 对图14所描绘实施方案的许多修改是可行的。一种修改是使感测放大器350位于存储器管芯302上。[0149] 图15描绘了集成存储器组件104的一个实施方案。这种接合配置类似于图8所描绘的实施方案。图15中的配置相对于图14中的配置增加了额外的存储器管芯。因此,类似的附图标号用于图15中的存储器管芯302a,如同用于图14中的存储器管芯302一样。在图15所描绘的实施方案中,第一存储器管芯302a接合到控制管芯304,并且控制管芯304接合到第二存储器管芯302b。需注意,尽管在相邻管芯对之间描绘了间隙,但是这种间隙可以用环氧树脂或其他树脂或聚合物填充。[0150] 每个存储器管芯302a、302b包括存储器结构326。存储器结构326a邻近存储器管芯302a的衬底1072。存储器结构326b邻近存储器管芯302b的衬底1074。在一些实施方案中,衬底1072、1074由硅晶圆的一部分形成。在该示例中,存储器结构326各自包括三维存储器阵列。[0151] 字线驱动器560同时向存储器管芯302a中的第一字线1042和存储器管芯302b中的第二字线1044提供电压。从字线驱动器560到第二字线1044的通路包括导电通路1032、硅通孔(TSV)1068、接合焊盘576a1、接合焊盘572a1和导电通路1036。其他字线驱动器(图10B中未示出)向其他字线提供电压。[0152] 感测放大器350a与存储器管芯302a中的位线通信。从感测放大器350a到位线的通路包括导电通路1052、接合焊盘574b、接合焊盘570b和导电通路1054。感测放大器350b与存储器管芯302b中的位线通信。从感测放大器350b到位线的通路包括导电通路1054、TSV1056、接合焊盘576b、接合焊盘572b和导电通路1048。[0153] 对图10B所描绘实施方案的许多修改是可行的。一种修改是使感测放大器350a位于第一存储器管芯302a上,以及使感测放大器350b位于第二存储器管芯302b上。[0154] 图16是描述用于对存储器单元的NAND串进行编程的过程1100的一个实施方案的流程图。在一个示例性实施方案中,使用以上讨论的控制电路310来对集成存储器组件104执行图16的过程。例如,图16的过程可在状态机312的指挥下执行。在一个实施方案中,过程1100用于将码字编程到存储器结构326中。图16的过程由控制管芯104执行以对存储器管芯上的存储器单元进行编程。在一个实施方案中,图16的过程在状态机312的指挥下执行。[0155] 在许多具体实施中,编程脉冲的幅值随每个连续脉冲而增大预确定的步长。在图11的步骤1102中,将编程电压(Vpgm)初始化为起始幅值(例如,约12V‑16V,或另一个合适的电平),并且将由状态机312维持的编程计数器PC初始化为1。[0156] 在一个实施方案中,被选择为编程的一组存储器单元(在本文中被称为所选择的存储器单元)被同时编程并且全部连接至相同的字线(所选择的字线)。可能有其他未选择用于编程的存储器单元(未选择的存储器单元)也连接至所选择的字线。也就是说,所选择的字线也将连接至应该禁止编程的存储器单元。此外,当存储器单元达到它们预期的目标数据状态时,它们将被禁止进一步编程。这些NAND串(例如,未选择的NAND串)使其沟道升压以禁止编程,这些串包括连接至所选择的字线的要被禁止编程的存储器单元。当沟道具有升高的电压时,沟道和字线之间的电压差不足以引起编程。为了帮助升压,在步骤1104中,控制管芯将对包括连接到将被禁止编程的所选择的字线的存储器单元的NAND串的沟道预充电。[0157] 在步骤1106中,NAND串使其沟道升压以禁止编程,这些串包括连接至所选择的字线的要被禁止编程的存储器单元。此类NAND串在本文中被称为“未选择的NAND串”。在一个实施方案中,未选择的字线接收一个或多个升压电压(例如,约7伏至11伏)以执行升压方案。编程禁止电压被施加到耦接未选择的NAND串的位线。[0158] 在步骤1108中,由控制管芯将编程信号Vpgm的编程脉冲施加到所选择的字线(被选择用于编程的字线)。在一个实施方案中,如果NAND串上的存储器单元应该被编程,则对应的位线被偏置在编程启用电压。在本文中,此类NAND串被称为“所选择的NAND串”。[0159] 在步骤1108中,将编程脉冲同时施加到连接至所选择的字线的所有存储器单元,使得同时对连接至所选择的字线的所有存储器单元进行编程(除非它们被禁止编程)。也就是说,它们在同一时间上或在重叠时间期间(两者都被视为是同时的)进行编程。以此方式,连接至所选择的字线的所有存储器单元将同时具有其阈值电压变化,除非它们被禁止编程。[0160] 在步骤1110中,已经达到其目标状态的存储器单元被锁定而不能被控制管芯进一步编程。步骤1110可以包括在一个或多个验证参考电平执行验证。在一个实施方案中,通过测试被选择用于编程的存储器单元的阈值电压是否已经达到适当验证参考电压来执行验证过程。在步骤1110中,在存储器单元已经被验证(通过Vt的测试)存储器单元已经达到其目标状态之后,存储器单元可以被锁定。[0161] 如果在步骤1112中,确定所有存储器单元都已经达到它们的目标阈值电压(通过),则该编程过程完成并且成功,因为所有选择的存储器单元都被编程并验证到它们的目标状态。在步骤1114中,报告“通过”状态。否则,如果在1112中确定不是所有存储器单元都已经达到其目标阈值电压(失败),则该编程过程将继续到步骤1116。[0162] 在步骤1116中,该存储器系统对尚未达到其相应的目标阈值电压分布的存储器单元的数量进行计数。即,该系统对目前为止无法达到其目标状态的存储器单元的数量进行计数。该计数可由状态机312、存储器控制器102或其他逻辑部件来完成。在一个具体实施中,感测块中的每个感测块将存储其相应的单元的状态(通过/失败)。在一个实施方案中,存在一个总计数,其反映了最后一个验证步骤已经失败的当前正在编程的存储器单元的总数。在另一个实施方案中,为每个数据状态保留单独计数。[0163] 在步骤1118中,确定来自步骤1116的计数是否小于或等于预确定的极限。在一个实施方案中,预确定的极限是在存储器单元的页面的读取过程期间可通过纠错码(ECC)校正的位的数量。如果失败单元的数量小于或等于预确定的极限,则该编程过程可停止并且在步骤1114中报告“通过”状态。在这种情况下,足够的存储器单元被正确地编程,使得可以在读取过程期间使用ECC来校正校正尚未完全地编程的剩余几个存储器单元。在一些实施方案中,在步骤1118中使用的预确定的极限低于在读取过程期间可由纠错码(ECC)校正的位数,以允许未来/附加的错误。当对页面的少于所有的存储器单元进行编程、或比较仅一个数据状态(或少于所有的状态)的计数时,预确定的极限就可以是在存储器单元的页面的读取过程期间ECC可校正的位的数量的一部分(按比例或不按比例)。在一些实施方案中,该极限不是预确定的。相反,它基于已经为页面计数的错误数量、所执行的编程擦除周期数量或其他标准来改变。[0164] 如果失败的存储器单元的数量不小于预确定的极限,则该编程过程在步骤1120处继续并且对照编程极限值(PL)检查编程计数器PC。编程极限值的示例包括6、12、16、19和30;然而,可以使用其他值。如果编程计数器PC不小于编程极限值PL,则认为该编程过程已经失败并且在步骤1124中报告“失败”状态。如果编程计数器PC小于编程极限值PL,则该过程在步骤1122处继续,在此期间,编程计数器PC递增了1,并且编程电压Vpgm被步进到下一幅值。例如,下一脉冲将具有比前一脉冲大一个步长(例如,0.1伏至1.0伏的步长)的幅值。在步骤1122之后,该过程循环回到步骤1104,并且另一个编程脉冲被(控制管芯)施加到所选择的字线,使得执行图16的编程过程的另一次迭代(步骤1104‑1122)。[0165] 在成功编程过程结束时,在适当时,存储器单元的阈值电压应当在用于编程的存储器单元的阈值电压的一个或多个分布内或在经擦除的存储器单元的阈值电压的分布内。图17示出了当每个存储器单元存储三位数据时用于存储器阵列的示例性阈值电压分布。然而,其他实施方案可以使用每一存储器单元其他数据容量(例如,诸如每一存储器单元一位数据、二位数据、四位数据或五位数据)。图17示出了八个阈值电压分布,其对应于八个数据状态。第一个阈值电压分布(数据状态)Er表示被擦除的存储器单元。其他七个阈值电压分布(数据状态)A‑G表示被编程的存储器单元,并且因此也被称为已编程状态。每个阈值电压分布(数据状态)对应于一组数据位的预确定值。编程到存储器单元中的数据与该单元的阈值电压电平之间的具体关系取决于该单元所采纳的数据编码方案。在一个实施方案中,使用格雷码分配将数据值分配到阈值电压范围,使得如果存储器的阈值电压错误地移位到其相邻物理状态,那么将仅影响一个位。[0166] 图17示出了用于从存储器单元读取数据的七个读取参考电压VrA、VrB、VrC、VrD、VrE、VrF和VrG。通过测试(例如,执行感测操作)给定存储器单元的阈值电压是高于还是低于七个读取参考电压,系统可以确定存储器单元所处于的数据状态(即,A、B、C、D、…)。[0167] 图17还示出了七个验证参考电压VvA、VvB、VvC、VvD、VvE、VvF和VvG。在一些实施方案中,当将存储器单元编程到数据状态A时,系统将测试这些存储器单元是否具有大于或等于VvA的阈值电压。当将存储器单元编程到数据状态B时,系统将测试这些存储器单元是否具有大于或等于VvB的阈值电压。当将存储器单元编程到数据状态C时,系统将确定这些存储器单元是否具有大于或等于VvC的阈值电压。当将存储器单元编程到数据状态D时,系统将测试这些存储器单元是否具有大于或等于VvD的阈值电压。当将存储器单元编程到数据状态E时,系统将测试这些存储器单元是否具有大于或等于VvE的阈值电压。当将存储器单元编程到数据状态F时,系统将测试这些存储器单元是否具有大于或等于VvF的阈值电压。当将存储器单元编程到数据状态G时,系统将测试这些存储器单元是否具有大于或等于VvG的阈值电压。图17还示出了Vev,其为用以测试存储器单元是否已被正确擦除的电压电平。[0168] 在被称为全序列编程的一个实施方案中,可使用图16的过程将存储器单元从已擦除数据状态Er直接编程到已编程数据状态A‑G中的任一种。例如,可首先擦除要被编程的存储器单元群,使得该群中的所有存储器单元处于已擦除数据状态Er。然后,使用编程过程将存储器单元直接编程到数据状态A、B、C、D、E、F和/或G。例如,虽然一些存储器单元正从数据状态ER编程到数据状态A,但其他存储器单元正从数据状态ER编程到数据状态B和/或从数据状态ER编程到数据状态C,等等。图17的箭头表示全序列编程。在一些实施方案中,数据状态A‑G可重叠,其中控制管芯304和/或存储器控制器102依赖错误校正来识别正在存储的正确数据。[0169] 一般来讲,在验证操作和读取操作期间,将所选择的字线连接到电压(参考信号的一个示例),该电压的电平针对每个读取操作(例如,参见图17的读取比较电平VrA、VrB、VrC、VrD、VrE、VrF和VrG)或验证操作(例如,参见图17的验证目标电平VvA、VvB、VvC、VvD、VvE、VvF和VvG)指定,以便确定相关存储器单元的阈值电压是否已经达到这个水平。在施加字线电压之后,测量存储器单元的传导电流以确定该存储器单元是否响应于施加到字线的电压而接通(被传导电流)。如果传导电流被测量为大于特定值,那么假设存储器单元被接通并且施加到字线的电压大于存储器单元的阈值电压。如果传导电流未测量为大于特定值,那么假设存储器单元未接通并且施加到字线的电压不大于存储器单元的阈值电压。在读取或验证过程期间,未选择的存储器单元在其控制栅极处被提供有一个或多个读取通过电压(也称为旁路电压),使得这些存储器单元将作为通过栅极操作(例如,不管这些存储器单元是被编程还是被擦除都传导电流)。[0170] 有许多方法来在读取或验证操作期间测量存储器单元的传导电流。在一个示例中,以存储器单元对感测放大器中的专用电容器放电或充电的速率来测量该存储器单元的传导电流。在另一个示例中,所选择的存储器单元的传导电流允许(或不允许)包括存储器单元的NAND串对对应位线放电。在某时间段之后测量位线上的电压,以查看其是否已经放电。需注意,本文所述的技术可以与本领域中已知的用于验证/读取的不同方法一起使用。也可以使用本领域中已知的其他读取和验证技术。[0171] 图18描绘了当每个存储器单元存储四位数据时的阈值电压分布。图18示出了阈值电压分布(数据状态)S0–S15之间可存在某种重叠。该重叠可由于诸如存储器单元丢失电荷(并因此阈值电压下降)的因素而发生。编程干扰可无意地增大存储器单元的阈值电压。同样,读取干扰可无意地增大存储器单元的阈值电压。随着时间的推移,阈值电压分布的位置可改变。此类改变可增大误码率,从而增加解码时间或甚至使得不可能解码。改变读取参考电压可有助于减轻此类影响。在读取过程中使用ECC可修复错误和歧义。当每个存储器单元使用四位时,可使用上面讨论的全序列编程过程或多遍编程过程(例如,诸如下面讨论的过程或本领域中已知的其他过程)来对存储器进行编程。[0172] 图19A和19B描述了多遍编程过程的一个示例,称为模糊‑精细(Foggy‑Fine)编程。图19A描绘了该多遍编程过程的第一遍,其包括将存储器单元从已擦除状态(Er)编程到已编程数据状态A至G中的任一者,类似于全序列编程。然而,图19A的过程不是使用标准验证参考电压(例如,VvA、VvB、VvC、VvD、VvE、VvF和VvG),而是使用各自略微低于对应标准验证参考电压的一组另选的验证参考电压(例如,VvA’、VvB’、VvC’、VvD’、VvE’、VvF’和VvG’)。因此,图19A的阈值电压可被认为是处于比图17的阈值电压更低的电压的中间阈值电压分布(或中间数据状态)。[0173] 图19B描绘了该多遍编程过程的第二(和最后一)遍,其包括对存储器单元进行编程以收紧阈值分布。因此,使用标准验证参考电压(例如,VvA、VvB、VvC、VvD、VvE、VvF和VvD)将存储器单元从图19A的中间阈值电压分布(或中间数据状态)编程到图19B的最终或目标阈值电压分布(或数据状态)。图19A被称为模糊遍(Foggypass),并且图19B被称为精细遍(FinePass)。在一个实施方案中,对给定字线执行图19A的模糊遍,然后对下一个字线执行模糊遍。下一个字线的模糊遍可引起对给定字线的干扰,从而加宽中间阈值电压分布,这可能导致读取数据时出现错误。然而,图19B的精细遍随后在下一个字线的模糊遍之后执行,从而去除或减少来自下一个字线的干扰效应。图19A和19B的多遍编程过程中的两遍均可使用图16的过程来实现。[0174] 图20A至图20I公开了用于对存储器结构326的存储器单元进行编程的多遍编程过程。图20A至图20I的过程是三遍编程过程。图20A至图20I的多遍编程过程的所有三遍可使用图16的过程来实现。在第一步之前,将存储器单元擦除,使得它们处于状态Er的擦除阈值分布中。[0175] 图20A至图20I的过程假设每个存储器单元存储三位数据,其中每一位在不同页面中。第一位数据(最左边的位)与第一个页面相关联。中间位与第二个页面相关联。最右边的位与第三个页面相关联。在一个示例性实施方案中,数据状态与数据的相关性如下:Er=111、A=110、B=101、C=100、D=011、E=010、F=001和G=000。然而,其他实施方案可使用其他数据编码方案。[0176] 当对第一个页面进行编程时(如图20A所述),如果位将为数据“1”,则存储器单元将保持处于状态ER(阈值电压分布1202)。如果位将为数据“0”,则存储器单元被编程到状态D(阈值电压分布1204)。在相邻存储器单元(例如,相邻字线上的存储器单元)被编程(任选)之后,相邻浮栅之间的电容耦合可导致状态D变宽,如图20B所示。状态Er也可变宽,但Er和A之间存在足够的裕度以忽略该效应。关于相邻浮栅之间的电容耦合的更多信息可见于美国专利5867429和美国专利6657891中,这两个专利均全文以引用方式并入本文。[0177] 当在第二遍期间对第二个页面进行编程时(参见图20C),如果存储器单元处于数据状态Er并且第二个页面的位为数据“1”,则存储器单元保持处于数据状态Er。在一些实施方案中,对第二个页面的编程过程将把阈值电压分布1202收紧到新的ER。如果存储器单元处于数据状态Er并且要写入第二个页面的数据为“0”,则存储器单元转变到状态B(阈值电压分布1206)。此时,在该编程过程中,数据状态B具有VvB*的验证点(最低电压)。如果存储器单元处于数据状态D并且要写入该存储器单元的数据为“1”,则该存储器单元保持处于D。然而,通过将存储器单元从阈值电压分布1204转变到用于状态D的阈值电压分布1208来收紧状态D,如图20C所示。阈值电压分布1208具有VvD*的验证点(与阈值电压分布1204的VvD**相比)。如果存储器单元处于状态D并且要写入第二个页面的数据为“0”,则存储器单元使其阈值电压转变到状态F(阈值电压分布1210),验证点为VvF*。[0178] 在相邻存储器单元被编程(任选)之后,状态B、D和F由于浮栅到浮栅的耦合而变宽,如图20D的阈值电压分布1206、1208和1210所示。在一些情况下,状态Er也可变宽。[0179] 图20E、图20F、图20G和图20H描绘了在该编程过程的第三遍期间对第三个页面的编程。虽然可使用一个图来示出该编程,但出于可视性原因,用四个图示出了该过程。在第二个页面已被编程之后,存储器单元处于状态Er、B、D或E。图20E示出了为第三个页面编程的处于状态Er的存储器单元。图20F示出了为第三个页面编程的处于状态B的存储器单元。图20G示出了为第三个页面编程的处于状态D的存储器单元。图20H示出了为第三个页面编程的处于状态E的存储器单元。图20I示出了在已(同时或连续地)对存储器单元群执行图20E、图20F、图20G和图20H的过程之后的阈值电压分布。在一个实施方案中,使用图16的过程对存储器单元群执行图20E、图20F、图20G和图20H的过程。[0180] 如果存储器单元处于状态Er并且第三个页面数据为“1”,则存储器单元保持处于状态Er。如果第三个页面的数据为“0”,则存储器单元的阈值电压升高到处于状态A,验证点为VvA(参见图20E)。[0181] 如果存储器单元处于状态B并且要在第三页面中写入的数据为“1”,则存储器单元将保持处于状态B(参见图20F)。然而,将执行某种编程以将阈值分布1206收紧到具有VvB伏的验证点的新状态B。如果要写入第三个页面的数据为“0”,则存储器单元将被编程到状态C,验证点为VvC伏(参见图20F)。[0182] 如果存储器单元处于状态D并且要写入第三个页面的数据为“1”,则存储器单元将保持处于状态D(参见图20G)。然而,将执行某种编程,使得阈值电压分布1208将收紧到具有VvD的验证点的新状态D。如果存储器单元处于状态D并且要写入第三个页面的数据为“0”,则存储器单元将使其阈值电压升高到处于状态E,具有验证点VvE(参见图20G)。[0183] 如果存储器单元处于状态F并且要写入第三个页面的数据为“1”,则存储器单元将保持处于状态G(参见图20H)。然而,将存在某种编程,使得阈值电压分布1210收紧以处于新状态F,验证点处于VvF。如果第三个页面数据为“0”,则存储器单元将使其阈值电压被编程到状态G,验证点处于VvG。在第三个页面的编程结束时,存储器单元将处于图20I所示的八个状态中的一个状态。[0184] 由图16、图17、图18、图19A、图19B和图20A至图20I描述的编程过程由控制管芯304执行(例如,由一个或多个控制管芯304上的一个或多个控制电路执行)以对存储器管芯302上的存储器单元进行编程。在一个实施方案中,使用控制电路310的其他电路在状态机312(或其他处理器或微控制器)的指挥下执行这些编程过程。[0185] 图21是描述由存储器控制器102执行以使数据被编程到存储器管芯302上的存储器单元中的过程的一个实施方案的流程图。在步骤1302中,存储器控制器102经由接口130从主机120接收数据(参见图1)。该数据可以是用户数据,即由主机120的用户提供的数据。例如,如果主机120是数字相机,则该数据可以是照片的全部或一部分。在步骤1304中,存储器控制器102将数据编码以形成一个或多个码字。在该实施方案中,存储器控制器102出于ECC目的来编码数据,而不是控制管芯304。在步骤1306中,存储器控制器102经由通信信道(例如,切换模式接口)将码字传输到集成存储器组件104(例如,传输到一个或多个控制管芯304)。在步骤1308中,存储器控制器102指示一个或多个控制管芯304将在步骤1306中传输的码字编程。在一个实施方案中,用于执行编程的指令包括经由通信信道(例如,切换模式接口‑参见存储器控制器接口332)发送一个或多个地址和一个或多个命令。在步骤1310中,一个或多个控制管芯304将码字编程到一个或多个存储器管芯302中。例如,一个或多个控制管芯304执行图16、图17、图18、图19A、图19B和/或图20A至图20I所述的编程过程以将一个或多个存储器管芯302上的存储器单元编程。如果存在更多要编程的数据(步骤1312),则图21的过程循环回到步骤1302;否则,编程完成(步骤1314)。[0186] 图22是描述由存储器控制器102执行以使数据被编程到存储器管芯302上的存储器单元中的过程的另一个实施方案的流程图。在图22的实施方案中,控制管芯304出于ECC目的来编码数据,而不是存储器控制器102。在步骤1402中,存储器控制器102经由接口130从主机120接收数据(参见图1)。该数据可以是用户数据。在步骤1404中,存储器控制器102经由通信信道(例如,切换模式接口)将原始数据(例如,未用ECC信息诸如奇偶校验位等编码的数据)传输到集成存储器组件104(例如,传输到一个或多个控制管芯304)。在步骤1406中,存储器控制器102指示一个或多个控制管芯304将所传输的原始数据编程到一个或多个存储器管芯302中。在一个实施方案中,用于执行编程的指令包括经由通信信道(例如,切换模式接口‑参见存储器控制器接口332)发送一个或多个地址和一个或多个命令。在步骤1408中,一个或多个控制管芯304使用ECC过程(例如,ECC引擎330、编码器380等)将所传输的数据编码成一个或多个码字。在步骤1420中,一个或多个控制管芯304将码字编程到一个或多个存储器管芯302中。例如,一个或多个控制管芯304执行图16、图17、图18、图19A、图19B和/或图20A至图20I所述的编程过程以将一个或多个存储器管芯302上的存储器单元编程。如果存在更多要编程的数据(步骤1412),则图22的过程循环回到步骤1402;否则,编程完成(步骤1414)。[0187] 图23是描述由存储器控制器102执行以从存储器管芯302上的存储器单元读取数据的过程的一个实施方案的流程图。在步骤1502中,存储器控制器102将读取请求发送到一个或多个控制管芯304。在一个实施方案中,用于执行读取的指令包括经由通信信道(例如,切换模式接口‑参见存储器控制器接口332)发送一个或多个地址和一个或多个命令。在步骤1504中,一个或多个控制管芯304在一个或多个存储器管芯302上执行读取过程,并且将所读取的数据存储在一个或多个控制管芯302上的锁存器360中。在步骤1506中,一个或多个控制管芯304(例如,解码器390)将所读取的数据解码(如上所述)并存储在一个或多个控制管芯304上的锁存器360中。在步骤1508中,一个或多个控制管芯304经由通信信道(例如,切换模式接口‑参见存储器控制器接口332)将所解码的数据发送到存储器控制器102。在一个实施方案中,一个或多个控制管芯304经由通信信道将所解码的数据位而不是奇偶校验位发送到存储器控制器102。[0188] 如上所述,提出了一种片上复制过程,该过程将数据从存储器管芯上的第一位置复制到存储器管芯上的第二位置,而不将该数据传输到存储器控制器。由于片上复制避免了向存储器控制器传输数据,因此该复制过程由于在存储器控制器102和集成存储器组件104之间的通信信道(例如,切换模式接口‑参见存储器控制器接口332)上没有数据传输而更快完成并且使用更少的功率。然而,由于存储器系统传统上不具有在存储器管芯处执行解码过程的能力,因此片上复制过程可导致数据累积错误。因此,建议将片上复制功能添加到控制管芯304并且利用控制管芯304上的解码器390,使得片上复制的具体实施在将被复制的数据编程到目的地位置之前包括一定程度的解码以及修复错误。[0189] 图24是描述由存储器控制器102执行以使片上复制操作由一个或多个集成存储器组件104执行的过程的一个实施方案的流程图。在步骤1602中,存储器控制器102将块级命令发送到一个或多个集成存储器组件104的一个或多个控制管芯304以执行片上复制,使得数据从一个或多个源块被复制到一个或多个目标块。步骤1602在块级执行。也就是说,存储器控制器102将一个或多个块的一个或多个地址连同片上复制命令一起发送。在另一个实施方案中,存储器控制器102发送处于不同粒度级别的地址;例如,存储器控制器102可发送页面、页面的一部分、块的一部分、超级块或其他数据单元的地址。在一个实施方案中,源块与目标块位于同一存储器管芯上。在另一个实施方案中,源块位于与目标块不同的存储器管芯上;例如,通过使用接合到多个存储器管芯的控制管芯(例如,参见图9和图15),或者通过在接合到不同存储器管芯的控制管芯之间传送数据(例如,参见图11和图12,以及上面的对应讨论)。在步骤1604中,一个或多个控制管芯304对一个或多个存储器管芯302执行片上复制,而不将正被复制的数据发送回存储器控制器102,并且存储器控制器102不涉及为完成片上复制而执行的操作。在步骤1606中,一个或多个控制管芯304向存储器控制器102发送表明片上复制已成功执行的确认。[0190] 在图24的步骤1608中,如果由一个或多个控制管芯304执行的解码不能解码用于片上复制的码字(并识别其校正),则一个或多个控制管芯304可将该不能解码的码字传输到存储器控制器102,并且存储器控制器102将解码该码字(使用较高分辨率解码器,如上所述)、修复错误并将所修复的数据发送回一个或多个控制管芯304以重新编程回到存储器管芯中。被发送回一个或多个控制管芯304的所修复的数据可利用奇偶校验位来编码,或者可以是用于一个或多个控制管芯304进行编码的原始数据。步骤1608是任选的;因此,一些实施方案不包括执行步骤1608。当不执行步骤1608时,一个或多个控制管芯304对一个或多个存储器管芯302执行片上复制,而不将正被复制的数据发送回存储器控制器102,并且存储器控制器102不涉及为完成片上复制而执行的操作。[0191] 图25是描述由一个或多个集成存储器组件104执行以实现片上复制操作而不将正被复制的数据发送到存储器控制器102并且存储器控制器102不涉及在片上复制期间执行的操作的过程的一个实施方案的流程图。因此,图25的过程是图24的步骤1604的一个示例性实施方案。在步骤1702中,一个或多个集成存储器组件的一个或多个控制管芯304接收复制一个或多个存储器管芯302上的数据的请求。用于片上复制操作的请求在一个或多个控制管芯304处经由通向管芯外电路的接口诸如上述通信信道(例如,切换模式接口‑参见存储器控制器接口332)从管芯外电路(例如,存储器控制器102)接收。[0192] 在步骤1704中,一个或多个控制管芯304响应于该请求而从一个或多个存储器管芯302读取并传输一个或多个码字。该一个或多个码字存储在一个或多个存储器管芯302上的第一组非易失性存储器单元中。在一个实施方案中,该一个或多个码字作为每存储器单元一位的数据存储在一个或多个存储器管芯302上。在另一个实施方案中,该一个或多个码字作为每存储器单元多位的数据存储在一个或多个存储器管芯302上。第一组非易失性存储器单元可以全部是同一块的一部分或者跨多个块。第一组非易失性存储器单元可全部在同一存储器管芯上或者跨多个存储器管芯。在步骤1706中,一个或多个控制管芯304将在步骤1704中从一个或多个存储器管芯302传输的一个或多个码字存储在一个或多个控制管芯304上的锁存器(例如,锁存器360)中。所有这些码字可存储在一个控制管芯304上或者跨多个控制管芯304存储。[0193] 在步骤1708中,一个或多个控制管芯304使用低功率、低分辨率LDPC解码过程对存储在一个或多个控制管芯上的锁存器中的一个或多个码字执行解码过程。在一个实施方案中,步骤1708完全在一个或多个控制管芯304上执行。例如,该解码过程由ECC引擎330的解码器390在控制管芯304上执行,如上所述。在步骤1710中,一个或多个控制管芯304识别存储在锁存器360中的一个或多个码字中的一个或多个错误。码字中的错误被识别为解码过程的一部分,如上所述。该解码码字的过程(参见步骤1708)不需要完成解码,因为部分解码就可能足以识别错误。在一个实施方案中,步骤1710完全在一个或多个控制管芯304上执行。[0194] 在步骤1712中,一个或多个控制管芯304校正存储在一个或多个控制管芯302上的锁存器360中的一个或多个码字中的一个或多个所识别的错误。在一个实施方案中,校正错误包括改变锁存器中的数据位的子集和/或改变锁存器中的奇偶校验位的子集,而不移除奇偶校验位并且不执行编码过程。也就是说,在一个实施方案中,对锁存器360中存储的码字进行改变,而不是对该数据进行解码、校正所解码的数据以及对所校正的数据进行重新编码。在一个实施方案中,经校正的码字是已被解码并且所识别的错误被修复的码字。如果没有发现错误,则结果仍然是经校正的码字。该解码码字的过程不需要完成解码,因为部分解码就可能足以识别错误。在一个实施方案中,步骤1712完全在一个或多个控制管芯304上执行。[0195] 在步骤1714中,在校正在一个或多个码字中识别的一个或多个错误之后,一个或多个控制管芯304将该一个或多个码字编程到一个或多个集成存储器组件的一个或多个存储器管芯上的第二组非易失性存储器单元。该系统可使用本文所讨论的或本领域已知的任何编程过程。第二组非易失性存储器单元不同于第一组一个或多个存储器单元,使得码字从一个或多个存储器管芯304上的一个位置复制到该一个或多个存储器管芯上的不同位置。在另一个实施方案中,码字可从第一位置复制到相同位置(从而仅校正码字中的错误)。在一个实施方案中,一个或多个控制管芯304将一个或多个码字作为每存储器单元一位的数据编程到第二组非易失性存储器单元。在另一个实施方案中,一个或多个控制管芯304将一个或多个码字作为每存储器单元多位的数据编程到第二组非易失性存储器单元,使得第二组非易失性存储器单元中的存储器单元的全部或子集存储来自该多个码字的数据。例如,在一个实施方案中,每个码字存储一页数据,并且三个码字可作为每存储器单元三位数据存储在相同的存储器单元中,其中每个存储器单元针对该三个码字中的每个码字存储一位。在一个实施方案中,步骤1712完全由一个或多个控制管芯304和一个或多个存储器管芯302执行,而不是由任何存储器控制器执行。[0196] 在步骤1714的一个实施方案中,第二组非易失性存储器单元位于与第一组非易失性存储器单元相同的一个或多个管芯上。在步骤1714的另一个实施方案中,第二组非易失性存储器单元位于与第一组非易失性存储器单元不同的一个或多个管芯上;例如,通过使用接合到多个存储器管芯的控制管芯(例如,参见图9和图15),或者通过在接合到不同存储器管芯的控制管芯之间传送数据(例如,参见图11和图12,以及上面的对应讨论)。[0197] 在一个实施方案中,图25的过程用于在块级别执行片上复制,该片上复制包括一个或多个控制管芯的一个或多个控制电路管理整个块的复制。一个字线接一个字线地执行读取/解码/编程(例如,从3个SLC块读取WL0,解码3个页面并编程到MLC块的WL0,然后从3个SLC块读取WL1,解码该3个页面并编程到MLC块的WL1,以此类推,直到最后一个WL)。这意味着将3个SLC块编程为1个MLC块。一种另选顺序是将1个SLC块编程为1/3个MLC块中,即,从一个SLC块中取3个连续的WL并将它们编程到MLC块的1WL。该块级命令减少了来自存储器控制器的开销,这不需要微观管理该预定义序列的所有操作。[0198] 在一个实施方案中,图25中所描绘的过程的所有步骤在不将码字传输到存储器控制器102的情况下执行。在一个实施方案中,存储器管芯302与对应的控制管芯304配对,并且图25中所描绘的过程的所有步骤由一个控制管芯304及其对应的存储器管芯302组成的一对执行并且在这一对上执行。[0199] 图26A描绘了针对片上复制操作的一个实施方案,在该片上复制操作之前存储器结构326的一部分,并且图26B描绘了在该片上复制操作之后存储器结构326的该部分。也就是说,对于一个实施方案,图26A描绘了图25的过程之前的存储器结构326,并且图26B描绘了图25的过程之后的存储器结构326。图26A和26B示出了存储器结构326,其包括第一组非易失性存储器单元1802和第二组非易失性存储器单元1804。在执行图25的过程之前,第一组非易失性存储器单元1802存储一个或多个码字。例如,图26A描绘了第一组非易失性存储器单元1802存储码字a、码字b和码字c。在一个实施方案中,码字a、码字b和码字c作为每存储器单元一位的数据而存储。在另一个实施方案中,码字a、码字b和码字c作为每存储器单元多位的数据而存储。码字a、码字b和码字c可存储在相同的块或不同的块中。码字a、码字b和码字c可存储在相同的存储器单元或不同的存储器单元中。[0200] 在图25的过程结束之后,第二组非易失性存储器单元1804存储该一个或多个码字。例如,图26B描绘了第二组非易失性存储器单元1804存储码字a、码字b和码字c。在一个实施方案中,码字a、码字b和码字c作为每存储器单元一位的数据而存储。在另一个实施方案中,码字a、码字b和码字c作为每存储器单元多位的数据而存储。码字a、码字b和码字c可存储在相同的块或不同的块中。码字a、码字b和码字c可存储在相同的存储器单元或不同的存储器单元中。[0201] 需注意,图26B示出第一组非易失性存储器单元1802为空。在一些实施方案中,第一组非易失性存储器单元1802被标记为具有无效数据。在其他实施方案中,第一组非易失性存储器单元1802被擦除。在其他实施方案中,第一组非易失性存储器单元1802将仍然存储码字a、码字b和码字c,但是所存储的码字的版本是在图25的步骤1712中执行的校正之前。[0202] 图27A描绘了针对片上复制操作的另一个实施方案,在该片上复制操作之前存储器结构326的一部分,并且图27B描绘了在该片上复制操作之后存储器结构326的该部分。也就是说,对于一个实施方案,图27A描绘了图25的过程之前的存储器结构326,并且图27B描绘了图25的过程之后的存储器结构326。图27A和27B示出了存储器结构326,其包括第一组非易失性存储器单元1802和第二组非易失性存储器单元1804。在图27A/27B的实施方案中,在执行图25的过程之前,第一组非易失性存储器单元1802将数据作为每存储器单元一位(SLC)的数据存储在三个块(块a、块b和块c)中。在该实施方案中,执行在步骤1702中从存储器控制器102接收的片上复制的请求是执行从三个源块(块a、块b和块c)到一个目标/目的地块的片上复制的块级命令。来自存储器控制器102的该命令将包括这三个源块和一个目标/目的地块的地址。在一组实施方案中,块a、b和c中的每一者存储多个码字;例如,每个块的每个字线(或每个块的每个页面)可存储一个或多个码字。在一个实施方案中,每个块存储一个码字。[0203] 图27B描绘了在片上复制操作之后(在图25的过程之后)存储器结构326的该部分。在图24的步骤1704期间,控制管芯304将已读取块a、块b和块c中的数据。在图25的步骤1714期间,控制管芯304将已把来自块a、块b和块c的每存储器单元一位的数据(存储在锁存器360中)的三个块组成每存储器单元多位的数据的一个块,并将该数据作为每存储器单元多位的数据存储在块d中,该块d包括第二组存储器单元1804。因此,块d的每个存储器单元存储三位数据:源自块a的一位、源自块b的一位和源自块c的一位。因此,可执行将码字作为每存储器单元多位的数据编程到存储器管芯,使得第二组存储器单元1804存储来自多个码字(例如,来自块a的码字、来自块b的码字和来自块c的码字)的数据。图25的步骤1714可包括执行图19A/B或图20A至图20I的编程过程。[0204] 需注意,图27B示出第一组非易失性存储器单元1802为空。在一些实施方案中,第一组非易失性存储器单元1802被标记为具有无效数据。在其他实施方案中,第一组非易失性存储器单元1802被擦除。在其他实施方案中,第一组非易失性存储器单元1802仍将存储校正之前的原始数据。[0205] 在一组实施方案中,一个或多个控制管芯304被配置为使用多遍编程过程(诸如图19A/B或图20A至图20I的过程)将片上复制操作的多个码字编程到第二组非易失性存储器单元。在使用多遍编程过程(例如,图20A至图20I的过程)的一个示例性实施方案中,在多遍编程过程的第一遍期间将多个码字的第一子集编程到第二组非易失性存储器单元1804,并且在多遍编程过程的在第一遍之后的后一遍期间将多个码字的第二子集编程到第二组非易失性存储器单元1804,使得一个或多个控制管芯304被配置为:当在多遍编程过程的第一遍期间将该多个码字的第一子集编程到第二组非易失性存储器单元时,执行对该多个码字的第二子集的解码过程。该过程由图28的流程图描述。[0206] 图28是描述用于使用多遍编程过程来执行片上复制操作的过程的一个实施方案的流程图。图28的过程由一个或多个控制管芯304执行,并且表示与图25的过程(或类似过程)结合的图20A至图20I的过程(或类似过程)的一个示例性具体实施。在图28的步骤1902中,在多遍编程过程的第一遍之前,一个或多个控制管芯304解码并校正控制管芯304上的码字的第一子集。在一个示例中,码字来自多个块并且作为每存储器单元一位而存储,并且片上复制操作将组合来自不同块中的多个码字的数据以形成每存储器单元多位的数据。在一个示例中,码字的第一子集表示一页数据。图28的步骤1902表示图25的步骤1708‑1712的示例性具体实施,并且在读取和传输码字的第一子集之后执行。步骤1902还在存储器控制器请求片上复制时(在例如步骤1602和1702之后)执行,该片上复制包括将存储器管芯上的数据从每存储器单元一位组合成每存储器单元多位并编程到存储器管芯。[0207] 在图28的步骤1904中,一个或多个控制管芯304在多遍编程过程的第一遍期间对码字的第一子集进行编程。步骤1904表示图25的步骤1714的示例性具体实施,该步骤对正经历片上复制的码字总集合中的第一子集的码字执行。在一个实施方案中,步骤1904包括对图20A至图20I的编程过程的第一遍或第二遍进行编程。图20A至图20I的编程过程的第一遍在图20A中描绘。图20A至图20I的编程过程的第二遍在图20C中描绘。[0208] 在图28的步骤1906中,一个或多个控制管芯304当在多遍编程过程的第一遍期间对存储器管芯上的码字的第一子集进行编程时,解码并校正一个或多个控制管芯304上的码字的第二子集。在一个示例中,码字的第二子集表示一页数据(与码字的第一子集不同的一页数据)。图28的步骤1906表示图25的步骤1708‑1712的示例性具体实施,并且在读取和传输码字的第二子集之后执行。在一个实施方案中,步骤1906与步骤1904同时执行。针对一遍进行解码,而针对另一遍进行编程减少了执行片上复制所需的时间。[0209] 在图28的步骤1908中,一个或多个控制管芯304在多遍编程过程的第一遍之后的后一遍期间对多个码字的第二子集进行编程。步骤1908表示图25的步骤1714的示例性具体实施,该步骤对正经历片上复制的码字总集合中的第二子集的码字执行。在一个实施方案中,步骤1908包括对图20A至图20I的编程过程的第二遍或第三遍进行编程。如果步骤1904包括图20A至图20I的编程过程的第一遍,则步骤1908包括图20A至图20I的编程过程的第二遍。如果步骤1904包括图20A至图20I的编程过程的第二遍,则步骤1908包括图20A至图20I的编程过程的第三遍。图20A至图20I的编程过程的第三遍在图20E至图20H中描绘。[0210] 三位数据和图20A至图20I的编程过程仅用作示例,并且不是为了限制图28的过程。图28的过程可用于实现具有两遍、三遍或多于三遍的编程过程。图28的过程可用于实现对存储三位数据、少于三位数据和多于三位数据的存储器单元的编程过程。在一个实施方案中,由一个或多个控制管芯304执行的过程由一个或多个控制管芯304上的一个或多个控制电路执行。[0211] 在使用多遍编程过程(例如,图19A/B的过程)的另一个示例性实施方案中,多遍编程过程具有(至少)第一遍(例如,图19A)和第二遍(例如,图19B),使得控制管芯的一个或多个控制电路被配置为在多遍编程过程的第一遍期间将第一组一个或多个码字编程到目标组非易失性存储器单元(例如,图19A),并且该一个或多个控制电路被配置为在多遍编程过程的第二遍期间将第一组一个或多个码字编程到目标组非易失性存储器单元(例如,图19B)。因此,在多遍编程过程的两遍期间是对相同的数据进行编程。[0212] 在一些实施方案中,片上复制过程(无论是根据块级命令还是在不同的粒度级别)是针对存储在多个字线上的数据。在此类实施方案的一个子集中,当控制管芯的一个或多个控制电路正在编程来自第一字线的数据(码字)时,控制管芯的该一个或多个控制电路同时正在将来自第二(下一个)字线的数据(码字)解码、识别其错误并且校正。在完成来自第一字线的数据(码字)的编程之后,控制管芯将对来自第二(下一个)字线的数据(码字)进行编程。例如,可对第一字线上的第一码字执行图25的步骤1704‑1714,并且可对第二字线上的第二码字执行图25的步骤1704‑1714,使得对第二码字执行步骤1708‑1712,同时对第一码字执行步骤1714。在另一个示例中,可对字线的第一部分上的第一码字执行图25的步骤1704‑1714,并且可对相同字线的第二部分上的第二码字执行图25的步骤1704‑1714,使得对第二码字执行步骤1708‑1712,同时对第一码字执行步骤1714。[0213] 在另一组实施方案中,图19A/B的编程过程可采用交错字线的方式执行。例如,可对第一字线执行图19A的过程,之后对第一字线旁边的第二字线执行图19A的过程,之后对第一字线执行图19B的过程,之后对第二字线旁边的第三字线执行图19A的过程,之后对第二字线执行图19B的过程,等等。在这种情况下,当正在对第一字线执行图19A的过程(例如,作为图25的步骤1714的一部分)时,对要复制到第二字线的数据执行步骤1708‑1712。[0214] 在一个另选的实施方案中,控制管芯304可使用片上位错误估计BER(例如,基于校正子权重=未满足的奇偶校验方程数,由图5的校正子计算单元370计算),以便由控制管芯决定是尝试执行片上解码和片上复制(在低BER估计量的情况下)还是将码字传输到存储器控制器以进行片外解码并通过控制器进行复制(在高BER的情况下)。例如,可发现第一码字具有低位错误估计量,使得将对该第一码字执行图25的过程,同时可发现第二码字具有高位错误估计量,使得控制管芯上的一个或多个控制电路将从源非易失性存储器单元读取第二码字,将所读取的第二码字存储在控制管芯上,确定控制管芯上的第二码字中的错误估计量,确定该错误估计量大于阈值(在控制管芯上执行),并且响应于确定该错误估量大于阈值而将第二码字传输到存储器控制器以用于解码。[0215] 已经描述了一种片上复制过程,该过程将数据从存储器管芯上的第一位置复制到存储器管芯上的第二位置,而不将该数据传输到存储器控制器。避免传输到存储器控制器提高了片上复制过程的操作速度并且降低了功率使用。[0216] 一个实施方案包括一种装置,该装置包括第一组一个或多个半导体管芯和第二组一个或多个半导体管芯。在一个示例中,第一组一个或多个半导体管芯是存储器管芯,并且第二组一个或多个半导体管芯是控制管芯,使得每个控制管芯接合到一个或多个存储器管芯(参见例如图8、图9、图11、图12、图14和图15)。第一组一个或多个半导体管芯包括第一半导体管芯,该第一半导体管芯包括非易失性存储器单元和第一多个通路。第二组一个或多个半导体管芯包括第二半导体管芯,该第二半导体管芯包括一个或多个控制电路、通向管芯外电路的接口和第二多个通路。一个或多个控制电路被配置为通过第一多个通路和第二多个通路的通路对来传输信号。第一组一个或多个半导体管芯中的每个半导体管芯直接接合到第二组一个或多个半导体管芯中的相应半导体管芯。第二半导体管芯上的一个或多个控制电路被配置为:接收复制第一半导体管芯上的数据的请求,该请求经由通向管芯外电路的接口从管芯外电路接收;响应于该请求,从第一半导体管芯上的第一组非易失性存储器单元读取第一码字;将所读取的第一码字存储在第二半导体管芯上;在第二半导体管芯上,对第一码字执行解码过程;在第二半导体管芯上,识别第一码字中的一个或多个错误;在第二半导体管芯上,校正第一码字中的一个或多个所识别的错误;以及在校正第一码字中的一个或多个所识别的错误之后,将第一码字编程到第一组一个或多个半导体管芯中的第二组非易失性存储器单元,该第二组非易失性存储器单元不同于第一组非易失性存储器单元。[0217] 在一个示例性具体实施中,第二组非易失性存储器单元位于与第一组非易失性存储器单元相同的一个或多个管芯上。在另一个示例性具体实施中,第二组非易失性存储器单元位于与第一组非易失性存储器单元不同的一个或多个管芯上;例如,通过使用接合到多个存储器管芯的控制管芯(例如,参见图9和图15),或者通过在接合到不同存储器管芯的控制管芯之间传送数据(例如,参见图11和图12,以及上面的对应讨论)。[0218] 在一个示例性具体实施中,第一半导体管芯直接接合到第二半导体管芯(例如,经由接合焊盘),并且第二组非易失性存储器单元位于第一半导体管芯上。[0219] 在一个示例性具体实施中,第一组一个或多个半导体管芯还包括第三半导体管芯,该第三半导体管芯包括非易失性存储器单元;第三半导体管芯接合到第二组一个或多个半导体管芯中的半导体管芯;并且第二组非易失性存储器单元位于第三半导体管芯上。[0220] 在一个示例性具体实施中,第一码字作为每存储器单元一位的数据存储在第一组非易失性存储器单元中,并且第一码字作为每存储器单元多位的数据存储在第二组非易失性存储器单元中。[0221] 在一个示例性具体实施中,第二半导体管芯上的一个或多个控制电路被配置为:响应于该请求,从第一半导体管芯读取多个码字,该多个码字作为每存储器单元一位的数据存储在第一组非易失性存储器单元中,该多个码字包括第一码字;将所读取的多个码字存储在第二半导体管芯上;在第二半导体管芯上,对该多个码字执行解码过程;在第二半导体管芯上,识别该多个码字中的一个或多个错误;在第二半导体管芯上,校正该多个码字中的一个或多个所识别的错误;以及在校正该多个码字中的一个或多个所识别的错误之后,将该多个码字作为每存储器单元多位的数据编程到第一半导体管芯上的第二组非易失性存储器单元,使得第二组非易失性存储器单元中的多个存储器单元存储来自该多个码字的数据。[0222] 在一个示例性具体实施(参见例如图28)中,一个或多个控制电路被配置为:使用多遍编程过程将该多个码字编程到第二组非易失性存储器单元;在该多遍编程过程的第一遍期间,将该多个码字的第一子集编程到第二组非易失性存储器单元;在该多遍编程过程的在所述第一遍之后的后一遍期间,将该多个码字的第二子集编程到第二组非易失性存储器单元;并且该一个或多个控制电路被配置为:当在该多遍编程过程的第一遍期间将该多个码字的第一子集编程到第二组非易失性存储器单元时,对该多个码字的第二子集执行该解码过程。[0223] 在一个示例性具体实施中,第一半导体管芯包括非易失性存储器阵列,第二半导体管芯包括用于从第一半导体管芯上的非易失性存储器阵列读取数据的感测放大器,该非易失性存储器阵列包括字线,第二半导体管芯包括用于第一半导体管芯上的非易失性存储器阵列的地址解码器,并且第二半导体管芯包括信号发生器,该信号发生器被配置为生成施加到第一半导体管芯上的非易失性存储器阵列的字线的电压。[0224] 在一个示例性具体实施中,第一码字包括数据位和奇偶校验位,并且一个或多个控制电路被配置为通过经由多个通路中的不同通路对来读取第一码字的每个数据位和奇偶校验位,来从第一组非易失性存储器单元读取第一码字。[0225] 一个实施方案包括一种过程,该过程包括:将存储在存储器管芯上的非易失性存储器单元中的码字传输到接合到该存储器管芯的控制管芯,该码字作为每存储器单元一位的数据存储在该存储器管芯上的非易失性存储器单元中;在控制管芯上,将所传输的码字解码以识别一个或多个错误;在控制管芯上,修复码字中的所识别的错误;以及将码字作为每存储器单元多位的数据编程到存储器管芯,使得该存储器管芯的多个非易失性存储器单元存储来自多个码字的数据。[0226] 一个实施方案包括一种装置,该装置包括:存储器控制器,该存储器控制器被配置为:使用第一解码技术来解码码字;和与该存储器控制器通信的集成存储器组件。该集成存储器组件包括:存储器管芯,该存储器管芯包括非易失性存储器单元;和利用接合焊盘接合到该存储器管芯的控制管芯。该存储器控制器被配置为请求存储器管芯上的数据从每存储器单元一位组合成每存储器单元多位并且被编程到存储器管芯。该控制管芯被配置为响应于该请求而从存储器管芯读取多个码字。该多个码字作为每存储器单元一位的数据存储在存储器管芯中。该控制管芯被配置为在控制管芯上对该多个码字执行第二解码技术。第一解码技术以第一分辨率来解码码字。第二解码技术以低于第一分辨率的第二分辨率来解码码字。第二解码技术使用比第一解码技术更低的功率。该控制管芯被配置为:在控制管芯上,校正在对该多个码字执行第二解码技术期间所识别的多个码字中的一个或多个错误,以及在校正该多个码字中的该一个或多个错误之后,将该多个码字作为每存储器单元多位的数据编程到存储器管芯,使得多个存储器单元存储来自多个码字的数据。[0227] 出于本文件的目的,说明书中提到“实施方案”、“一个实施方案”、“一些实施方案”或“另一个实施方案”可用于描述不同的实施方案或相同的实施方案。[0228] 出于本文件的目的,连接可为直接连接或间接连接(例如,经由一个或多个其它部件)。在一些情况下,当元件被提及连接或耦接到另一个元件时,该元件可直接连接至另一个元件,或者经由居间元件间接连接至另一个元件。当元件被提及直接连接至另一个元件时,则在该元件与另一个元件之间没有居间元件。如果两个设备是直接连接或间接连接的,则两个设备是“通信”的,使得它们能够在它们之间进行电子信号通信。[0229] 出于本文档的目的,术语“基于”可理解为“至少部分地基于”。[0230] 出于本文档的目的,在没有附加上下文的情况下,诸如“第一”对象、“第二”对象和“第三”对象的数字术语的使用可能不意味着对象的排序,而是可用于识别目的以识别不同的对象。[0231] 出于本文档的目的,对象的术语“组”可指一个或多个对象的“组”。[0232] 出于本文档的目的,本文所用的术语“顶部”和“底部”、“上”和“下”以及“垂直”和“水平”及其形式,如可仅以举例方式和出于示例性目的用于本文,并且不旨在限制技术的描述,因为所引用的项目可在位置和取向上交换。[0233] 出于说明和描述的目的,已提供了上述详细描述。其并非旨在详尽的或旨在限制本发明所公开的精确形式。根据以上教导内容,很多修改和变型都是可能的。选择所述实施方案以便最好地解释所建议的技术的原理及其实际应用,从而使本领域的其他技术人员能够在各种实施方案中和适合于设想的具体使用的各种修改中最好地利用它。本发明的范围旨在由所附权利要求书限定。
专利地区:美国
专利申请日期:2021-04-06
专利公开日期:2024-06-18
专利公告号:CN113741802B