书签 分享 收藏 举报 版权申诉 / 47

在非易失性存储器器件内将以二进制格式存储的数据折叠为多状态格式.pdf

  • 上传人:a3
  • 文档编号:4639720
  • 上传时间:2018-10-23
  • 格式:PDF
  • 页数:47
  • 大小:1.95MB
  • 摘要
    申请专利号:

    CN201080024547.5

    申请日:

    2010.05.11

    公开号:

    CN102460584A

    公开日:

    2012.05.16

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    专利权人的姓名或者名称、地址的变更IPC(主分类):G11C 11/56变更事项:专利权人变更前:桑迪士克科技股份有限公司变更后:桑迪士克科技有限责任公司变更事项:地址变更前:美国得克萨斯州变更后:美国得克萨斯州|||授权|||实质审查的生效IPC(主分类):G11C 11/56申请日:20100511|||公开

    IPC分类号:

    G11C11/56; G11C16/10

    主分类号:

    G11C11/56

    申请人:

    桑迪士克科技股份有限公司

    发明人:

    李艳; C.Q.特林; B.刘; A.K-T.马克; 王琪铭; E.J.塔姆; K-H.金

    地址:

    美国得克萨斯州

    优先权:

    2009.06.05 US 12/478,997; 2009.12.10 US 12/635,449

    专利代理机构:

    北京市柳沈律师事务所 11105

    代理人:

    黄小临

    PDF完整版下载: PDF下载
    内容摘要

    描述了在多状态非易失性存储器中读和写数据的技术。数据以二进制格式被写入存储器中,被读入到存储器上的数据寄存器中,且在寄存器内被″折叠″,然后以多状态格式被写回到存储器中。在折叠操作中,来自单个字线的二进制数据被折叠为多状态格式,且当以多状态形式重写时仅被写到另一字线的一部分中。还描述了其中数据被″展开″的对应的读技术。该技术还允许在控制器上用纠错码(ECC)编码数据,该控制器考虑到其在将数据传输到存储器以便以二进制形式写之前的最终多状态存储。还给出了允许这种″折叠″操作的寄存器结构。一组实施例包括本地内部数据总线,其允许在不同读/写堆叠的寄存器之间传输数据,其中,该内部总线可以用在内部数据折叠处理中。

    权利要求书

    1: 一种操作非易失性存储器系统的方法, 该非易失性存储器系统包括非易失性存储器 电路, 该非易失性存储器电路具有沿多个字线和多个位线形成的非易失性存储器单元的阵 列, 所述位线形成每个可连接到对应的数据寄存器集的多个子集, 所述方法包括 : 以二进制格式沿着第一字线向第一多个存储器单元写数据, 所述第一多个存储器单元 沿着对应的第一多个位线形成 ; 将来自该第一多个存储器单元的数据读入到与第一多个位线对应的寄存器集中 ; 在所述寄存器集内重新布置来自该第一多个存储器单元的数据, 由此将数据布置到与 第二多个位线对应的寄存器集中, 该第二多个位线少于该第一多个位线 ; 以及 随后以多状态格式将来自与该第二多个位线对应的寄存器的重新布置的数据写到沿 第二字线的并沿着第二位线集形成的第二多个存储器单元中。
    2: 根据权利要求 1 的方法, 其中, 所述多状态格式是每单元 N 位的格式, N 是大于一的 整数, 且该第一多个位线的数量是该第二多个位线的数量的 N 倍。
    3: 根据权利要求 2 的方法, 还包括 : 在沿着第一字线写进一步的数据之后, 且在沿着第二字线写重新布置的数据之前 : 以二进制格式将另外的数据写到字线中的 (N-1) 个另外的字线中, 将来自字线中的所述 (N-1) 个另外的字线的进一步的数据读入到所述寄存器集中, 以 及 在所述寄存器集内重新布置该进一步的数据, 其中, 沿着第二字线写重新布置的数据还包括同时沿该第二字线写重新布置的进一步 的数据。
    4: 根据权利要求 1 的方法, 其中, 所述存储器阵列由多个各自可擦除的块形成, 以及该 第一字线在擦除块的第一个中, 且该第二字线在擦除块的第二个中。
    5: 根据权利要求 1 的方法, 其中, 所述非易失性存储器系统还包括控制器电路, 所述方 法还包括 : 在沿着第一字线写数据之前, 将数据从控制器电路传输到存储器电路。
    6: 一种非易失性存储器电路, 包括 : 存储器阵列, 具有沿着多个字线和多个位线形成的多个非易失性存储器单元 ; 读和写电路, 可连接到所述存储器阵列 ; 以及 输入 / 输出数据总线, 可连接到所述读和写电路, 用于向和从所述存储器阵列传输数 据, 其中, 所述读和写电路包括 : 多个读 / 写堆叠, 每个可连接到相应的位线的子集, 且每个堆叠具有 : 感测放大器, 可连接到位线中的对应子集 ; 堆叠总线 ; 数据锁存器集, 连接到所述总线 ; 堆叠处理电路, 连接到所述堆叠总线, 用于控制在数据锁存器和感测放大器之间的沿 堆叠总线的数据传输 ; 以及 输入 / 输出模块, 连接到输入 / 输出总线和堆叠总线以在其之间传输数据 ; 以及 本地内部数据总线, 连接在多个读 / 写堆叠的子集的堆叠总线之间, 由此可以在多个 读 / 写堆叠的子集中的不同子集的数据锁存器之间传输数据。 2
    7: 根据权利要求 6 的非易失性存储器电路, 其中, 所述读和写电路可连接到所述存储 器阵列以对其进行多状态编程操作。
    8: 根据权利要求 7 的非易失性存储器电路, 其中, 所述多状态格式是每单元 N 位的格 式, 且所述子集中的读 / 写堆叠的数量是 N。
    9: 根据权利要求 7 的非易失性存储器电路, 其中, 所述读和写电路可连接到所述存储 器阵列以对其进行二进制读操作。
    10: 根据权利要求 9 的非易失性存储器电路, 其中, 所述存储器阵列包括以多状态格式 存储数据的一个或多个块和以二进制格式存储数据的一个或多个块。
    11: 根据权利要求 9 的非易失性存储器电路, 其中, 每个读 / 写堆叠的数据寄存器集包 括: 第一寄存器, 可连接以接收感测放大器的输出, 以接收并保存来自 N 个或更多位线的 在第一字线上的二进制感测操作的输出, N 是大于一的整数 ; 以及 N 个第二寄存器, 可连接到所述第一寄存器, 用于在其之间传输内容。
    12: 根据权利要求 11 的非易失性存储器电路, 其中, 所述堆叠总线和所述内部数据总 线具有 L 字节的宽度, 其中 L 是正整数。
    13: 根据权利要求 11 的非易失性存储器电路, 其中, 所述感测放大器和堆叠处理电路 包括数据锁存器。
    14: 一种操作非易失性存储器系统的方法, 该非易失性存储器系统包括非易失性存储 器电路, 该非易失性存储器电路具有沿多个字线和多个位线形成的非易失性存储器单元的 阵列, 所述位线形成每个可连接到对应的数据寄存器集的多个子集, 所述方法包括 : 沿第一字线从第一多个存储器单元读取以每单元 N 位的格式存储的数据, 其中, N 大于 1, 且所述第一多个存储器单元是沿着对应的第一多个位线形成的 ; 将从第一多个存储器单元的每个读取的每单元 N 位的数据存储到与该第一多个位线 对应的寄存器集中的第一寄存器中 ; 在相同寄存器集内的 N 个其他寄存器中重新布置来自每个第一寄存器的数据 ; 以及 按在存储器上存储数据之前在存储器上接收数据的顺序, 从与该第一多个位线对应的 寄存器集中的 N 个其他寄存器传输出数据。
    15: 根据权利要求 14 的方法, 其中, 所述非易失性存储器系统还包括控制器电路, 且其 中, 传输出数据包括从存储器电路向控制器电路传输数据。
    16: 根据权利要求 14 的方法, 其中, 所述非易失性存储器系统还包括控制器电路, 且其 中, 所述方法还包括在读取数据之前 : 按所述顺序, 从控制器电路向存储器电路传输数据 ; 以及 将数据存储在所述存储器电路上。
    17: 根据权利要求 16 的方法, 其中所述存储包括 : 以二进制格式将数据存储在存储器电路上 ; 以及 随后在第一多个存储器单元中以每单元 N 位的格式存储数据。
    18: 根据权利要求 14 的方法, 其中, 所述第一多个存储器单元对应于物理页的第 1/N, 且数据对应于逻辑页。
    19: 一种操作非易失性存储器系统的方法, 该非易失性存储器系统包括控制器电路和 3 非易失性存储器电路, 该非易失性存储器电路具有沿多个字线和多个位线形成的非易失性 存储器单元的阵列, 所述方法包括 : 在所述控制器处接收数据 ; 在所述控制器内生成数据的对应纠错码 ; 将该数据和该对应纠错码输出到所述存储器 ; 以二进制格式, 沿第一字线写该数据和该对应纠错码 ; 在该存储器内, 随后以多状态格式沿第二字线重写该数据和该对应纠错码, 其中, 所述 对应纠错码依赖于如何将数据布置为多状态格式而生成。
    20: 根据权利要求 19 的方法, 其中, 所述存储器阵列由多个各自可擦除的块形成, 以及 第一字线在擦除块的第一个中, 且第二字线在擦除块的第二个中。
    21: 根据权利要求 19 的方法, 其中, 所述多状态格式是每单元 N 位的格式, N 是大于 1 的整数, 所述方法还包括 : 在沿着第一字线写数据和对应纠错码之后, 且在沿着第二字线重 写数据和对应纠错码之前 : 以二进制格式, 沿字线中的 (N-1) 个另外的字线写进一步的数 据和对应纠错码, 其中, 所述重写包括以多状态格式沿第二字线同时重写该进一步的数据和该进一步的 数据的对应纠错码, 所述进一步的数据的对应纠错码依赖于如何将该进一步的数据布置为 多状态格式。
    22: 一种非易失性存储器电路, 包括 : 存储器阵列, 具有沿着多个字线和多个位线形成的多个非易失性存储器单元 ; 读电路, 可连接到所述存储器阵列, 包括多个感测放大器, 每个感测放大器可连接到所 述位线中的一个或多个, 以进行二进制读操作 ; 写电路, 可连接到所述存储器阵列, 以进行多状态编程操作 ; 以及 该读电路和该写电路可访问的数据寄存器堆叠, 包括 : 第一寄存器, 可连接以接收感测放大器的输出, 以接收并保存来自 N 个或更多位线的 在第一字线上的二进制感测操作的输出, N 是大于 1 的整数 ; N 个第二寄存器, 可连接到所述第一寄存器, 用于在其之间传输内容 ; 以及 处理电路, 可连接到第一和第二寄存器, 由此与在第一寄存器中保存的在第一字线上 的 N 个二进制感测操作的输出对应的值每个可以被传输到 N 个第二寄存器中的对应一个, 以用在对第二字线上的单元的每单元 N 位的编程操作中。
    23: 根据权利要求 22 的非易失性存储器电路, 其中, 所述第一寄存器可以接收并保存 来自 M 倍的 N 个位线的在第一字线上的二进制感测操作的输出, 且所述处理电路能够将 M 个值传输到每个第二寄存器, 以用在第二字线的沿 M 个位线的 M 个单元的同时的每单元 N 位的编程操作中。
    24: 一种操作非易失性存储器系统的方法, 该非易失性存储器系统包括非易失性存储 器电路, 该非易失性存储器电路具有沿多个字线和多个位线形成的非易失性存储器单元的 阵列, 所述位线形成每个可连接到对应的数据寄存器集的多个子集, 所述方法包括 : 将以二进制格式沿着第一字线存储在沿着 N 多个子集形成的第一多个存储器单元中 的数据读到对应的 N 个数据寄存器集的每个中的第一寄存器中 ; 以及 随后沿本地内部数据总线向该 N 个寄存器集的第一寄存器集中的寄存器中传输来自 4 其他 (N-1) 个寄存器集的第一寄存器的数据。
    25: 根据权利要求 24 的方法, 还包括 : 随后以每单元 N 位的格式沿第二字线, 将来自 N 个数据寄存器集的第一寄存器集的寄 存器的数据写到沿着与该 N 个数据寄存器集的第一寄存器集对应的位线的存储器单元中。
    26: 根据权利要求 24 的方法, 其中, 所述存储器阵列由多个各自可擦除的块形成, 以及 该第一字线在擦除块的第一个中, 且该第二字线在擦除块的第二个中。
    27: 根据权利要求 24 的方法, 其中, 所述非易失性存储器系统还包括控制器电路, 所述 方法还包括 : 在沿着第一字线在第一多个存储器单元中写数据之前, 从控制器电路向存储器电路传 输数据。
    28: 根据权利要求 27 的方法, 还包括 : 在从控制器电路向存储器电路传输数据之前 : 在所述控制器处接收数据 ; 在该控制器内生成该数据的对应纠错码, 其中该对应纠错码依赖于数据在被编程到第 二字线中时如何被布置为多状态格式而生成 ; 以及 其中, 该对应纠错码与该数据同时被传输到存储器并以二进制格式沿第一字线被写。
    29: 一种操作非易失性存储器系统的方法, 该非易失性存储器系统包括非易失性存储 器电路, 该非易失性存储器电路具有沿多个字线和多个位线形成的非易失性存储器单元的 阵列, 所述位线形成每个可连接到对应的数据寄存器集的多个子集, 所述方法包括 : 将以二进制格式沿着 N 个第一字线存储在沿着子集中的 N 个子集形成的存储器单元中 的数据读到对应的 N 个数据寄存器集的每个数据寄存器集中的 N 个寄存器中, 其中, N 是大 于 1 的整数 ; 随后使用连接该 N 个数据寄存器集的本地内部数据总线, 在该 N 个数据寄存器集的不 同寄存器集的寄存器之间混洗数据 ; 以及 随后以每单元 N 位的格式, 沿第二字线写来自该 N 个数据寄存器集的混洗的数据。
    30: 根据权利要求 29 的方法, 其中, 所述存储器阵列由多个各自可擦除的块形成, 以及 该第一字线在擦除块的第一个中, 且该第二字线在擦除块的第二个中。
    31: 根据权利要求 29 的方法, 其中, 所述非易失性存储器系统还包括控制器电路, 所述 方法还包括 : 在沿着第一字线写数据之前, 从控制器电路向存储器电路传输数据。
    32: 根据权利要求 31 的方法, 还包括 : 在从控制器电路向存储器电路传输数据之前 : 在所述控制器处接收数据 ; 在该控制器内生成该数据的对应纠错码, 其中该对应纠错码依赖于数据在被编程到第 二字线中时如何被布置为多状态格式而生成 ; 以及 其中, 该对应纠错码与该数据同时被传输到存储器并以二进制格式沿第一字线被写。

    说明书


    在非易失性存储器器件内将以二进制格式存储的数据折叠 为多状态格式

        技术领域 本 发 明 通 常 涉 及 非 易 失 性 半 导 体 存 储 器, 比如电可擦除可编程只读存储器 (EEPROM) 和快闪 EEPROM, 且具体地涉及用于在这种存储器器件上将数据从二进制格式重 写为多状态格式的技术。
         背景技术 能够非易失性地存储电荷的固态存储器、 特别是被封装为小型卡的 EEPROM 和快 闪 EEPROM 形式的固态存储器最近成为各种移动和手持设备、 特别是信息装置和消费电子 产品中的存储选择。 不同于也是固态存储器的 RAM( 随机存取存储器 ), 闪存是非易失性的, 并且即使在切断电源之后仍保持它所存储的数据。尽管成本更高, 但是闪存正被更多地用 于海量存储应用中。 基于诸如硬盘或软盘之类的旋转磁介质的传统海量存储不适合于移动 和手持环境。 这是因为磁盘倾向于体积大, 易出现机械故障, 并且具有高等待时间和高功率 要求。这些不希望的属性使得基于盘的存储在大部分移动和便携式应用中不实用。另一方 面, 嵌入式和可移动卡形式这两种的闪存由于其小尺寸、 低功耗、 高速和高可靠性特征而理 想地适合于移动和手持环境。
         EEPROM 和电可编程只读存储器 (EPROM) 是可以被擦除且使得新数据写入或″编 程″到其存储器单元中的非易失性存储器。在场效应晶体管结构中, 两者利用在源极和漏 极区域之间的、 位于半导体衬底中的沟道区之上的浮置 ( 未连接 ) 导电栅极。然后, 控制栅 极被提供在浮置栅极上。晶体管的阈值电压特性受浮置栅极上保留的电荷量控制。也就是 说, 对于在浮置栅极上的给定水平的电荷, 存在必须在 “导通” 晶体管之前施加到控制栅极 以允许在其源极和漏极区之间导电的相应电压 ( 阈值 )。
         浮置栅极可以保持一个范围的电荷, 且因此可以被编程到阈值电压窗内的任何阈 值电压电平。由器件的最小和最大阈值电平来界定 (delimit) 阈值电压窗的尺寸, 该最小 和最大阈值电平又对应于可以被编程到浮置栅极上的电荷的范围。 阈值窗通常取决于存储 器器件的特性、 工作条件和历史。在该窗内的每个不同的可分辨的阈值电压电平范围原则 上可以用于指定单元的明确的存储器状态。
         通常通过两种机制之一来将充当存储器单元的晶体管编程到 “已编程” 状态。在 “热电子注入” 中, 施加到漏极的高电压加速了穿过衬底沟道区的电子。同时, 施加到控制栅 极的高电压拉动热电子经过薄栅极电介质到浮置栅极上。在 “隧穿注入” 中, 相对于衬底, 高电压被施加到控制栅极。以此方式, 将电子从衬底拉到中间的 (intervening) 浮置栅极。
         可以通过多种机制来擦除存储器器件。 对于 EPROM, 可通过紫外线辐射从浮置栅极 移除电荷而大量擦除该存储器。对于 EEPROM, 可通过相对于控制栅极向衬底施加高电压以 便诱导浮置栅极中的电子遂穿过薄氧化物到衬底沟道区 ( 即, Fowler-Nordheim 隧穿 ) 而电 擦除存储器单元。通常, EEPROM 可逐字节擦除。对于快闪 EEPROM, 在块可由存储器的 512 字节或更多组成的情况下, 该存储器可一次性电擦除或一次一个或多个块地电擦除。
         非易失性存储器单元的例子
         存储器器件通常包括可以被安装在卡上的一个或多个存储器芯片。 每个存储器芯 片包括由诸如解码器和擦除、 写和读电路的外围电路支持的存储器单元的阵列。更复杂的 存储器器件还与进行智能和更高级的存储器操作和接口的控制器一起出现。 存在当今正使 用的许多商业成功的非易失性固态存储器器件。 这些存储器器件可以使用不同类型的存储 器单元, 每个类型具有一个或多个电荷存储元件。
         图 1A-1E 示意性地图示非易失性存储器单元的不同例子。
         图 1A 示意性地图示具有用于存储电荷的浮置栅极的 EEPROM 单元的形式的非易失 性存储器。电可擦除可编程只读存储器 (EEPROM) 具有类似于 EPROM 的结构, 但另外提供了 用于在施加适当的电压时电学地加载和从其浮置栅极移除电荷而不需要暴露于 UV 辐射的 机制。在美国专利 no.5,595,924 中给出这种单元和制造它们的方法的例子。
         图 1B 示意性地图示具有选择栅极和控制或操纵栅极两者的快闪 EEPROM 单元。存 储器单元 10 具有在源极 14 和漏极 16 扩散之间的″划分沟道 (split-channel)″ 12。用 串联的两个晶体管 T1 和 T2 有效地形成单元。T1 用作具有浮置栅极 20 和控制栅极 30 的存 储器晶体管。该浮置栅极能够存储可选的电荷量。可以流过沟道的 T1 的部分的电流量取 决于在控制栅极 30 上的电压和驻留在中间的浮置栅极 20 上的电荷量。 T2 用作具有选择栅 极 40 的选择晶体管。 当 T2 通过在选择栅极 40 处的电压而导通时, 其允许在沟道的 T1 的部 分中的电流在源极和漏极之间通过。该选择晶体管提供沿源极 - 漏极沟道、 与控制栅极处 的电压无关的开关。一个优点是, 其可以用于截止由于在其浮置栅极处的其电荷消耗 ( 正 的 ) 而在零控制栅极电压处仍然导电的那些单元。另一优点是, 其允许更容易地实现源极 侧注入编程。 划分沟道存储器单元的一个简单的实施例是其中选择栅极和控制栅极连接到相 同字线, 如图 1B 所示的虚线示意性地指示的。这通过具有位于沟道的一部分上的电荷存储 元件 ( 浮置栅极 ) 和位于另一沟道部分以及电荷存储元件上的控制栅极结构 ( 其是字线的 部分 ) 来实现。 这有效地形成具有串联的两个晶体管的单元, 一个 ( 存储器晶体管 ) 具有在 电荷存储元件上的电荷量和控制可以流过其沟道部分的电流量的字线上的电压的组合, 且 另一个 ( 选择晶体管 ) 具有单独用作其栅极的字线。 在美国专利号 5,070,032, 5,095,344, 5,315,541, 5,343,063 和 5,661,053 中给出了这种单元、 其在存储器系统中的使用和制造 它们的方法的例子。
         图 1B 所示的划分沟道单元的更确切的实施例是当选择栅极和控制栅极是独立的 且不通过它们之间的虚线来连接时。 一个实施方式使单元的阵列中的一列的控制栅极连接 到垂直于字线的控制 ( 或操纵 ) 线。效果是免除字线在读或编程所选单元时同时需要执 行两个功能。那两个功能是 (1) 用作选择晶体管的栅极, 因此需要适当电压导通和截止选 择晶体管, 和 (2) 通过字线和电荷存储元件之间耦合的电场 ( 电容 ) 来驱动电荷存储元件 的电压到期望的电平。通常难以以最佳方式用单个电压进行这两个功能。通过对控制栅极 和选择栅极的分别控制, 字线仅需要执行功能 (1), 而添加的控制线执行功能 (2)。该能力 允许设计更高性能的编程, 其中, 使编程电压适应于 (gear) 目标数据。例如, 在美国专利号 5,313,421 和 6,222,762 中描述了在快闪 EEPROM 阵列中的独立控制 ( 或操纵 ) 栅极的使 用。
         图 1C 示意性地图示具有双浮置栅极和独立的选择和控制栅极的另一快闪 EEPROM 单元。除了存储器单元 10 有效地具有串联的三个晶体管以外, 存储器单元 10 类似于图 1B 的存储器单元。在这类单元中, 两个存储元件 ( 即, T1- 左和 T1- 右的储存元件 ) 被包括在 源极和漏极扩散之间的其沟道上, 选择晶体管 T1 在它们之间。这些存储器晶体管分别具有 浮置栅极 20 和 20′和控制栅极 30 和 30′。由选择栅极 40 来控制选择晶体管 T2。在任一 时间, 仅存储器晶体管对中的一个存储器晶体管被访问用于读或写。当存储单元 T1- 左正 被访问时, T2 和 T1- 右两者被导通以允许在沟道的 T1- 左的部分中的电流在源极和漏极之 间通过。类似地, 当存储单元 T1- 右正被访问时, T2 和 T1- 左被导通。通过使得选择栅极 多晶硅的一部分紧密靠近浮置栅极且向选择栅极施加富足的 (substantial) 正电压 ( 例如 20V) 以便在浮置栅极内存储的电子可以遂穿到选择栅极多晶硅, 来实施擦除。
         图 1D 示意性地图示了被组织为 NAND 单元的存储器单元的串。NAND 单元 50 由通 过其源极和漏极菊链链接的一系列存储器晶体管 M1, M2, ... 构成。一对选择晶体管 S1、 S2 控制存储器晶体管链经由 NAND 单元的源极端 54 和漏极端 56 与外部的连接。在存储器阵 列中, 当导通源极选择晶体管 S1 时, 源极端耦接到源极线。类似地, 当导通漏极选择晶体管 S2 时, NAND 单元的漏极端耦接到存储器阵列的位线。在该链中的每个存储器晶体管具有电 荷存储元件来存储给定量的电荷以便表示意图的存储器状态。 每个存储器晶体管的控制栅 极提供对读和写操作的控制。选择晶体管 S1、 S2 的每个的控制栅极分别经由其源极端 54 和漏极端 56 提供对 NAND 单元的控制访问。 当在 NAND 单元内的被寻址的存储器晶体管在编程期间被读取和验证时, 其控制 栅极被供应了适当的电压。同时, NAND 单元 50 中的剩余未被寻址的存储器晶体管通过在 其控制栅极上施加足够的电压而充分导通。以此方式, 有效地 6 建立从各个的储器晶体管 的源极到 NAND 单元的源极端 54 的导电路径, 且对各个存储器晶体管的漏极到该单元的漏 极端 56 类似。在美国专利 5,570,315, 5,903,495, 6,046,935 中描述了具有这种 NAND 单元 结构的存储器器件。
         图 1E 示意性地图示了具有用于存储电荷的电介质层的非易失性存储器。取代先 前描述的导电浮置栅极元件, 使用电介质层。使用电介质存储元件的这种存储器器件已经 由 Eitan 等人的 “NROM : A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell” , IEEE Electron Device Letters, vol.21, no.11, 2000 年 11 月, 543-545 页描述。 ONO 电介质 层延伸穿过在源极和漏极扩散之间的沟道。 一个数据位的电荷局限在与漏极相邻的电介质 层中, 且另一数据位的电荷被局限在与源极相邻的电介质层中。例如, 美国专利 5,768,192 和 6,011,725 公开了具有夹在两个二氧化硅层之间的俘获电介质 (trapping dielectric) 的非易失性存储器单元。 通过分别读取电介质内的空间上分开的电荷存储区的二进制状态 来实现多状态数据存储。
         存储器阵列
         存储器器件通常包括以行和列布置且可由字线和位线寻址的存储器单元的二维 阵列。可以根据 NOR 类型或 NAND 类型架构来形成该阵列。
         NOR 阵列
         图 2 图示了存储器单元的 NOR 阵列的例子。已经通过图 1B 或 1C 所示类型的单元 实现了具有 NOR 类型架构的存储器器件。每行存储器单元通过其源极和漏极以菊链方式连
         接。该设计有时称为虚拟地设计。每个存储器单元 10 具有源极 14、 漏极 16、 控制栅极 30 和选择栅极 40。一行中的单元使得其选择栅极连接到字线 42。一列中的单元使得其源极 和漏极分别连接到所选位线 34 和 36。在其中存储器单元使得其控制栅极和选择栅极独立 地被控制的一些实施例中, 操纵线 36 也连接一列中的单元的控制栅极。
         利用存储器单元来实现许多快闪 EEPROM 器件, 其中每个存储器单元用连接到一 起的其控制栅极和选择栅极来形成。 在该情况下, 不需要操纵线, 且字线简单地连接沿着每 行的单元的所有控制栅极和选择栅极。在美国专利号 5,172,338 和 5,418,752 中公开了这 些设计的例子。 在这些设计中, 字线主要进行两个功能 : 行选择和向该行中的所有单元供应 控制栅极电压用于读或编程。
         NAND 阵列
         图 3 图示了诸如图 1D 所示的存储器单元的 NAND 阵列的例子。沿 NAND 单元的每 列, 位线耦接到每个 NAND 单元的漏极端 56。 沿着 NAND 单元的每行, 源极线可以连接所有其 源极端 54。而且, 沿一行的 NAND 单元的控制栅极连接到一系列相应的字线。可以通过经由 连接的字线用选择晶体管对的控制栅极上的适当电压来导通该对选择晶体管 ( 见图 1D), 来寻址整行 NAND 单元。当在 NAND 单元链内的存储器晶体管正被读时, 在该链中的剩余存 储器晶体管经由其相关字线而硬导通 (turn on hard), 以便流过该链的电流主要取决于在 正被读的单元中存储的电荷水平。作为存储器系统的部分的 NAND 架构阵列及其操作的例 子在美国专利号 5,570,315、 5,774,397 和 6,046,935 中找到。 块擦除
         电荷存储存储器器件的编程可以仅导致向其电荷存储元件添加更多的电荷。因 此, 在编程操作之前, 必须移除 ( 或擦除 ) 在电荷存储元件中已有的电荷。提供擦除电 路 ( 未示出 ) 来擦除一块或更多块存储器单元。当整个单元阵列、 或该阵列的大量组的 单元一起 ( 即, 在一次快闪中 ) 被电擦除时, 诸如 EEPROM 的非易失性存储器被称为″快 闪″ EEPROM。一旦被擦除, 则可以重新编程该组单元。一起可擦除的该组单元可以构成一 个或多个可寻址擦除单元。 擦除单元或块通常存储一页或多页数据, 页是编程和读的单位, 虽然可以在单个操作中编程或读多于一页。每页通常存储一个或多个扇区的数据, 扇区的 尺寸由主机系统定义。一个例子是遵循随磁盘驱动器建立的标准的 512 字节用户数据的扇 区加上关于用户数据和 / 或其所存储在的块的开销 (overhead) 信息的一些数量的字节。
         读 / 写电路
         在通常的两状态 EEPROM 单元中, 建立至少一个电流分界点 (breakpoint) 水平以 便将导电窗划分为两个区域。当通过施加预定的固定电压来读单元时, 通过与分界点水平 ( 或参考电流 IREF) 相比较, 其源极 / 漏极电流被解析为存储器状态。 如果读取的电流高于 分界点水平的电流, 则该单元被确定为处于一个逻辑状态 ( 例如″零″状态 )。另一方面, 如果该电流小于分界点水平的电流, 则该单元被确定为处于另一逻辑状态 ( 例如″一″状 态 )。 因此, 这种两状态单元存储一位数字信息。 可以外部地编程的参考电流源通常被提供 作为存储器系统的部分, 以生成分界点水平电流。
         为了增加存储器容量, 随着半导体技术状态的进步, 快闪 EEPROM 正被制造得越来 越高密度。增加存储容量的另一方法是使得每个存储器单元存储多于两个状态。
         对于多状态或多级 EEPROM 存储器单元, 通过多于一个分界点将导电窗划分为多
         于两个区域, 以便每个单元能够存储多于一位的数据。因此给定 EEPROM 阵列可以存储的信 息随着每个单元可以存储的状态的数量而增加。已经在美国专利 No.5,172,338 中描述了 具有多状态或多级存储器单元的 EEPROM 或快闪 EEPROM。
         实际上, 通常通过当向控制栅极施加参考电压时感测穿过单元的源极和漏极的导 电电流来读该单元的存储器状态。 因此, 对于单元的浮置栅极上的每个给定的电荷, 可以检 测关于固定参考控制栅极电压的相应导电电流。类似地, 可编程到浮置栅极上的电荷的范 围定义了对应的阈值电压窗或对应的导电电流窗。
         或者, 代替检测在划分的电流窗之间的导电电流, 能够在控制栅极处为在测试下 的给定存储器状态设置阈值电压, 并检测导电电流是低于还是高于阈值电流。在一个实施 方式中, 通过检查导电电流经过位线的电容而放电的速率来实现相对于阈值电流对导电电 流的检测。
         图 4 图示了对于浮置栅极可以在任何一个时间选择性地存储的四个不同的电荷 Q1-Q4 的源极 - 漏极电流 ID 和控制栅极电压 VCG 之间的关系。四条实线 ID 对 VCG 曲线表示 分别对应于四个可能的存储器状态的、 可以被编程到存储器单元的浮置栅极上的四个可能 的电荷水平。作为例子, 全体 (population) 单元的阈值电压窗可以是从 0.5V 到 3.5V 的范 围。可以通过将阈值窗划分为每个以 0.5V 为间隔的五个区域来界定六个存储器状态。例 如, 如果如所示地使用 2μA 的参考电流 IREF, 则用 Q1 编程的单元可以被视为处于存储器状 态″ 1″, 因为其曲线与 IREF 在由 VCG = 0.5V 和 1.0V 界定的阈值窗的区域中相交。类似地, Q4 处于存储器状态″ 5″。
         如可以从上述描述看见的, 使得存储器单元存储的状态越多, 其阈值窗划分得越 精细。这将需要在编程和读操作中的更高的精度以便能够实现需要的分辨率。
         美国专利 No.4,357,685 公开了编程 2 状态 EPROM 的方法, 其中当单元被编程到给 定状态时, 其经历连续的编程电压脉冲, 每次向浮置栅极添加增加的电荷。在脉冲之间, 该 单元被读回或验证以相对于分界点水平来确定其源极 - 漏极电流。当已经验证当前状态达 到期望的状态时, 编程停止。所使用的编程脉冲串可以具有增加的周期或幅度。
         现有技术编程电路简单地施加编程脉冲来步经 (step through) 从擦除或地状态 起的阈值窗直到到达目标状态。 实际上, 为了允许足够的分辨率, 每个划分或界定的区域将 需要至少大约五个编程步来遍历 (transverse)。该性能对 2 状态存储器单元是可接受的。 但是, 对于多状态单元, 所需步的数量随划分的数量而增加, 因此, 必须增加编程精度或分 辨率。例如, 16 状态单元可能需要平均至少 40 个编程步脉冲来编程到目标状态。
         图 5 示意性地图示了具有可由读 / 写电路 170 经由行解码器 130 和列解码器 160 访问的存储器阵列 100 的典型布置的存储器器件。如结合图 2 和 3 所述的, 在存储器阵列 100 中的存储器单元的存储器晶体管可经由一组所选字线和位线来寻址。行解码器 130 选 择一个或多个字线, 且列解码器 160 选择一个或多个位线, 以便向被寻址的存储器晶体管 的各个栅极施加适当的电压。提供读 / 写电路 170 来读或写 ( 编程 ) 所寻址存储器晶体管 的存储器状态。读 / 写电路 170 包括经由位线可连接到阵列中的存储器元件的大量读 / 写 模块。
         图 6A 是单个读 / 写模块 190 的示意方框图。实质上, 在读或验证期间, 感测放大 器确定流过经由所选位线连接的所寻址存储器晶体管的漏极的电流。 该电流取决于在存储器晶体管中存储的电荷和其控制栅极电压。例如, 在多状态 EEPROM 单元中, 其浮置栅极可 以被充电到若干不同水平之一。对于 4 水平单元, 可以使用其来存储两位数据。通过水平 到位 (level-to-bits) 转换逻辑来将感测放大器检测的水平转换为要在数据锁存器中存 储的一组数据位。
         影响读 / 写性能和准确度的因素
         为了改善读和编程性能, 并行读或编程在阵列中的多个电荷存储元件或存储器晶 体管。因此, 存储器元件的逻辑″页″被一起读或编程。在现有存储器架构中, 一行通常包 含若干交织的页。一页的所有存储器元件将一起被读或编程。列解码器将选择性地将交织 页的每一页连接到对应数量的读 / 写模块。例如, 在一个实施方式中, 设计存储器阵列具有 532 字节的页尺寸 (512 字节加上开销的 20 字节 )。如果每列包含漏极位线且每行存在两 个交织页, 则这总计 8512 列, 其中每页与 4256 列相关。将存在可连接以并行读或写所有偶 数位线或奇数位线的 4256 个传感模块。以此方式, 并行地从存储器元件的页读或向其编程 一页 4256 位 ( 即 532 字节 ) 的数据。形成读 / 写电路 170 的读 / 写模块可以被布置为各 种架构。
         参考图 5, 读 / 写电路 170 被组织为读 / 写堆叠 180 的堆 (bank)。每个读 / 写堆 叠 180 是读 / 写模块 190 的堆叠。在存储器阵列中, 列间隔由占据其的一个或两个晶体管 的尺寸来确定。但是, 如可以从图 6A 看出, 读 / 写模块的电路将很可能用多得多的晶体管 和电路元件来实现, 且因此将占用超过许多列的空间。为了服务在所占用的列中的多于一 列, 多个模块在彼此之上堆叠起来。 图 6B 示出由读 / 写模块 190 的堆叠传统地实现的图 5 的读 / 写堆叠。例如, 读/ 写模块可以延伸过六个列, 则具有八个读 / 写模块的堆叠的读 / 写堆叠 180 可以用于并行 地服务八个列。读 / 写堆叠可以经由列解码器而耦接到在该堆中的八个奇数 (1, 3, 5, 7, 9, 11, 13, 15) 列或八个偶数 (2, 4, 6, 8, 10, 12, 14, 16) 列。
         如前所述, 传统的存储器器件通过以大规模地并行方式一次对所有偶数或所有奇 数位线操作来改善读 / 写操作。由两个交织页构成一行的该架构将有助于减轻配合读 / 写 电路的块的问题。还通过控制位线与位线电容性耦合的考虑来对其管理。使用块解码器来 将读 / 写模块组复用到偶数页或奇数页。以此方式, 无论何时正读或编程一组位线时, 可以 将该交织的组接地以最小化中间的相邻耦合。
         但是, 交织页架构在至少三个方面是不利的。 首先, 其需要另外的复用电路。 其次, 其在性能上慢。为了完成由字线连接的或在一行中的存储器单元的读或编程, 需要两个读 或两个编程操作。 第三, 其在解决当在不同时间编程两个相邻者、 比如分别在奇数和偶数页 中的两个相邻者时的诸如在浮置栅极电平处的相邻电荷存储元件之间的场耦合的其他干 扰影响方面不是最优的。
         相邻场耦合的问题随着在存储器晶体管之间的不断更近的间隔而变得更明显。 在 存储器晶体管中, 电荷存储元件被夹在沟道区域和控制栅极之间。在沟道区域中流动的电 流是由在控制栅极和电荷存储元件处的场引起的得到电场的函数。随着日益增长的密度, 存储器晶体管被形成得越来越靠近在一起。 则来自相邻电荷元件的场变为对受影响的单元 的得到场的重要贡献者。相邻场取决于被编程到相邻者的电荷存储元件中的电荷。该干扰 场自然是动态的, 因为其随相邻者的编程状态而改变。因此, 取决于相邻者的改变状态, 受
         影响的单元可能在不同时间不同地进行读取。
         交织页的传统架构加剧了由相邻浮置栅极耦合引起的误差。 由于偶数页和奇数页 彼此独立地被编程和读, 因此可以在一组条件下编程一页, 而在完全不同的一组条件下读 回该页, 这取决于同时对中间的页发生了什么。 随着密度的增加、 需要更准确的读操作和对 于多状态实施方式的对阈值窗的更粗略的划分, 读误差将变得更严重。 性能将受损害, 且多 状态实施方式中的可能容量受限制。
         美国专利公开 No.US-2004-0060031-A1 公开了具有大的读 / 写电路块以并行读和 写对应的存储器单元块的高性能又紧凑的非易失性存储器器件。具体地, 存储器器件具有 将读 / 写电路块中的冗余降低到最小的架构。通过将读 / 写模块的块重新分布为并行操作 同时以时间复用方式与充分更小组的公共部分交互的读 / 写模块核心部分的块, 来实现空 间上以及功耗的显著节省。具体地, 由共享的处理器来进行在多个感测放大器和数据锁存 器之间的读 / 写电路之中的数据处理。
         因此, 存在对高性能和高容量非易失性存储器的普遍需求。 具体地, 需要具有增强 的读和编程性能的紧凑非易失性存储器, 其具有紧凑又有效的、 且可高度通用于在读 / 写 电路之间处理数据的改进的处理器。 发明内容 描述了包括非易失性存储器电路的非易失性存储器系统, 该非易失性存储器电路 具有沿多个字线和多个位线形成的非易失性存储器单元的阵列, 其中所述位线形成每个可 连接到对应的数据寄存器集的多个子集。根据一组方面, 数据以二进制格式沿着第一字线 被写到第一多个存储器单元中, 所述第一多个存储器单元沿着对应的第一多个位线形成。 来自该第一多个存储器单元的数据被读入到与第一多个位线对应的寄存器集中并在所述 寄存器集内重新布置, 由此数据被布置到与第二多个位线对应的寄存器集中, 该第二多个 位线少于该第一多个位线。 随后该重新布置的数据以多状态格式被从与该第二多个位线对 应的寄存器写到沿第二字线的并沿着第二位线集形成的第二多个存储器单元中。
         根据另一组方面, 沿着第一字线从第一多个存储器单元读取以每单元 N 位的格式 存储的数据, 其中 N > 1, 其中所述第一多个存储器单元沿着对应的第一多个位线而形成。 从第一多个存储器单元的每个读取的每单元 N 位的数据被存储到与第一多个位线对应的 寄存器集的第一寄存器中, 且来自该第一寄存器的每个的数据在相同寄存器集的 N 个其他 寄存器中重新布置。然后, 数据按在被存储在存储器上之前在存储器上被接收的顺序从这 N 个其他寄存器中传输出去。
         根据另一组方面, 一种非易失性存储器系统包括控制器电路和非易失性存储器电 路, 该非易失性存储器电路具有沿多个字线和多个位线形成的非易失性存储器单元的阵 列。在控制器处接收数据, 且生成该数据的对应纠错码。该数据和该对应纠错码被传输到 存储器并以二进制格式沿第一字线被写。在该存储器内, 该数据和该对应纠错码随后以多 状态格式沿第二字线被重写, 其中, 该对应纠错码依赖于数据如何被布置为多状态格式而 生成。
         在其他方面中, 给出了具有存储器阵列的非易失性存储器电路, 该存储器阵列具 有沿着多个字线和多个位线形成的多个非易失性存储器单元。该非易失性存储器电路还
         具有 : 可连接到所述存储器阵列的读电路, 该读电路包括多个感测放大器, 每个感测放大器 可连接到位线中的一个或多个, 以进行二进制读操作 ; 以及写电路, 可连接到所述存储器阵 列, 以进行多状态编程操作。 该读电路和该写电路可访问数据寄存器堆叠, 且该数据寄存器 堆叠包括 : 第一寄存器, 可连接以接收感测放大器的输出, 以接收并保存来自 N 个或更多位 线的在第一字线上的二进制感测操作的输出, N 是大于 1 的整数 ; N 个第二寄存器, 可连接到 所述第一寄存器, 用于在其之间传输内容 ; 以及处理电路, 可连接到第一和第二寄存器, 由 此与在第一寄存器中保存的在第一字线上的 N 个二进制感测操作的输出对应的值每个可 以被传输到 N 个第二寄存器中的对应一个, 以用在对第二字线上的单元的每单元 N 位的编 程操作中。
         另外的方面包括一种非易失性存储器电路, 其包括具有沿字线和位线形成的非易 失性存储器单元的存储器阵列、 可连接到该存储器阵列的读和写电路、 以及可连接到该读 和写电路用于向和从该存储器阵列传输数据的输入 / 输出数据总线。该读和写电路包括多 个读 / 写堆叠, 每个可连接到位线的对应子集, 且每个堆叠具有 : 感测放大器, 可连接到位 线的对应子集 ; 堆叠总线 ; 一组数据锁存器, 连接到所述总线 ; 堆叠处理电路, 连接到所述 堆叠总线, 用于控制在数据锁存器和感测放大器之间的沿堆叠总线的数据传输 ; 以及输入 / 输出模块, 连接到输入 / 输出总线和堆叠总线, 以在其之间传输数据。该读和写电路还包 括连接在读 / 写堆叠的子集的堆叠总线之间的内部数据总线, 由此可以在读 / 写堆叠的子 集中的不同子集的数据锁存器之间传输数据。 其他方面给出了用于操作包括非易失性存储器电路的非易失性存储器系统的方 法, 该非易失性存储器电路具有沿多个字线和多个位线形成的非易失性存储器单元的阵 列, 其中所述位线形成每个可连接到对应的数据寄存器集的多个子集。该方法包括将以二 进制格式沿着 N 个第一字线存储在沿着 N 个子集形成的第一多个存储器单元中的数据读到 对应的 N 个数据寄存器集的每个数据寄存器集中的 N 个寄存器中, 其中, N 是大于 1 的整数。 该方法随后沿着本地数据总线在该 N 个数据寄存器集的寄存器之间混洗数据。另外, 然后 沿第二字线以每单元 N 位的格式将混洗的数据从这些寄存器写到存储器单元中。
         本发明的各种方面、 优点、 特征和实施例被包括在其示例例子的以下描述中, 该描 述应该与附图结合。 在此引用的所有专利、 专利申请、 文章、 其他出版物、 文献和事物为了所 有目的全部被引用附于此。至于在并入的出版物、 文档或事物的任一个和本申请之间的术 语的定义或使用中的任何不一致或冲突, 应以本申请中的为准。
         附图说明
         图 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 概述了存储器上的折叠处理, 其中, 来自多个字线的以二进制格式写入的数 据被重写为多状态格式。
         图 14 更详细地图示了折叠处理的方面。
         图 15 是适用于折叠操作的寄存器结构的方框图。
         图 16A-C 示出了数据在寄存器之间的重新布置的例子。
         图 17 是对于存储器的几个区块的图 15 的寄存器结构的方框图。
         图 18 在这些区块的子集的堆叠总线之间添加了本地数据总线。
         图 19 图示了几个二进制页的读处理。
         图 20 是如何在锁存器中内部地折叠数据的例子。
         图 21A-M 图示了使用图 18 的结构的数据折叠的示例序列。 具体实施方式
         图 7A 示意性地图示了具有一堆划分的读 / 写堆叠的紧凑存储器器件, 其中实施本 发明的改进的处理器。该存储器器件包括存储器单元的二维阵列 300、 控制电路 310 和读 / 写电路 370。存储器阵列 300 可由字线经由行解码器 330 以及由位线经由列解码器 360 来 寻址。读 / 写电路 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 所示的读 / 写电路之间的读 / 写堆叠的一个优选布置。每 个读 / 写堆叠 400 并行地对一组 k 个位线操作。如果一页具有 p = r*k 个位线, 则将存在 r 个读 / 写堆叠 400-1......400-r。
         并行地工作的整堆被划分的读 / 写堆叠 400 允许沿着一行的一块 ( 页 ) 的 p 个单 元被并行被读取或编程。因此, 对整行单元, 将存在 p 个读 / 写模块。由于每个堆叠服务于 k 个存储器单元, 因此, 在该堆中的读 / 写堆叠的总数由 r = p/k 给出。例如, 如果 r 是在该 堆中的堆叠的数量, 则 p = r*k。 一个示例存储器阵列可以具有 p = 512 字节 (512×8 位 ), k = 8, 因此 r = 512。在一个优选实施例中, 块是一连串 (run) 的整行单元。在另一实施例 中, 块是行中的单元的子集。例如, 单元的子集可能是整行的一半或整行的四分之一。单元 的子集可以是一连串连续单元或每隔一个的单元, 或每隔预定数量的单元。
         诸如 400-1 的每个读 / 写堆叠主要包含并行地服务于一段 (segment)k 个存储器 单元的感测放大器 212-1 到 212-k 的堆叠。在美国专利公开号 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 预充电, 且在任何读 / 写堆 叠对状态信号赋值 (asserted) 时将被拉低。
         图 10 图示了图 9 所示的公共处理器的改进实施例。公共处理器 500 包括用于与 外部电路通信的处理器总线 PBUS 505、 输入逻辑 510、 处理器锁存器 PLatch 520 和输出逻 辑 530。输入逻辑 510 从 PBUS 接收数据, 并将其输出到 BSI 节点, 作为取决于经由信号线 411 来自堆叠总线控制器 410 的控制信号而处于逻辑状态″ 1″, ″ 0″, 或″ Z″ ( 浮置 ) 之一的变换的数据。 然后, 设置 / 复位锁存器 PLatch 520 锁存 BSI, 得到作为 MTCH 和 MTCH* 的一对互补输出信号。
         输出逻辑 530 接收 MTCH 和 MTCH* 信号, 且在 PBUS 505 上输出取决于经由信号线 411 来自堆叠总线控制器 410 的控制信号而处于逻辑状态″ 1″, ″ 0″, 或″ Z″ ( 浮置 ) 之一的变换的数据。
         在任一时间, 公共处理器 500 处理与给定存储器单元相关的数据。 例如, 图 10 图示 了耦接到位线 1 的存储器单元的情况。对应的感测放大器 212-1 包括感测放大器数据出现 的节点。 在优选实施例中, 该节点假设存储数据的 SA 锁存器 214-1 的形式。 类似地, 对应的 数据锁存器集 430-1 存储与耦接到位线 1 的存储器单元相关的输入或输出的数据。在优选 实施例中, 该数据锁存器集 430-1 包括用于存储 n 位数据的足够的数据锁存器 434-1, ..., 434-n。
         当由一对互补信号 SAP 和 SAN 来使能传输栅极 (transfer gate)501 时, 公共处理 器 500 的 PBUS 505 具有经由 SBUS 422 对 SA 锁存器 214-1 的访问。类似地, 当由一对互 补信号 DTP 和 DTN 来使能传输栅极 502 时, PBUS 505 具有经由 DBUS 423 对数据锁存器集 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 和作为来自堆叠总线 控制器 410 的控制信号的部分的控制信号 ONE、 ONEB<0>、 ONEB<1> 来控制。实质上, 支持三 个传输模式 PASSTHROUGH( 直通 )、 INVERTED( 反相 ) 和 FLOATED( 浮置 )。
         在 BSI 与输入数据相同的 PASSTHROUGH 模式的情况下, 信号 ONE 处于逻辑″ 1″, ONEB<0> 处于″ 0″, 且 ONEB<1> 处于逻″ 0″。这将禁用上拉或下拉, 但使能传输栅极 522 将在 PBUS 505 上的数据传递到输出 523。在 BSI 是输入数据的反相的 INVERTED 模式的情 况下, 信号 ONE 处于″ 0″, ONEB<0> 处于″ 1″, 且 ONE<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*, 且取决于控制信号, 在 PBUS 上输出为处于
         PASSTHROUGH、 INVERTED 或 FLOATED 模式。 换句话说, 四个分支用作 PBUS 505 的驱动器, 有效 地将其拉到 HIGH( 高 ), LOW( 低 ) 或 FLOATED( 浮置 ) 状态。这通过四个分支电路、 即 PBUS 505 的两个下拉和两个下拉电路来实现。第一上拉电路包括串联到 Vdd 的 p 晶体管 531 和 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″状态, 且如果期望, 则可以总是通过下 拉而翻转到″ 0″状态。
         图 12B 图示了图 12A 的输出逻辑的真值表。该逻辑由从输入逻辑锁存的 MTCH, MTCH* 和作为来自堆叠总线控制器 410 的控制信号的部分的控制信号 PDIR、 PINV、 NDIR、 NINV 来控制。支持四个 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 的上拉分支。
         在 2004 年 12 月 20 日的美国专利申请号 11/026,536 中更完整地公开了公共处理 器操作, 其全部被引用附于此。
         将数据在存储器上折叠 (on-memory folding) 成多状态格式
         上述各类非易失性存储器存在, 且可以以二进制形式和多状态 ( 或多级 ) 形式来 操作。一些存储器系统以二进制和多状态格式两者存储数据 ; 例如, 由于通常以二进制形 式可以更快地且具有更少的临界容限 (critical tolerance) 地写数据, 因此存储器可以在 其从主机接收时初始地以二进制形式写数据, 且稍后为了更大的存储密度而以多状态格式 重写该数据。在这种存储器中, 一些单元可以用在二进制格式中, 其他的用在多状态格式 中, 或可以操作相同单元来存储不同数量的位。在美国专利号 6,456,528、 美国专利公开号 2009/0089481 和以下美国专利申请号 61/142,620、 12/348,819、 12/348,825、 12/348,891、 12/348,895 和 12/348,899 中更详细地讨论了这种系统的例子。在此部分中描述的技术涉 及在存储器器件本身上执行的″折叠 (fold)″处理中将数据从二进制格式重写为多状态 格式, 而不需要向控制器传输回数据用于重定格式 (reformat)。还可以以特殊方式使用存 储器上折叠处理, 以管理纠错码 (ECC), 其中当考虑到最可能的误差是在相邻状态之间的转变时, 在存储器单元中的数据当按多状态形式存储时的相对状态被纳入考虑。该系统还可 以使用不考虑状态信息且基于单页信息来管理 ECC 的 ECC 管理。( 注意, 即使 ECC 位被编程 在相同的物理单元集上作为数据位, 也分离地管理 ECC。)
         更具体地, 在示例实施例中, 由于从控制器向存储器传递数据, 因此按二进制格式 沿存储器阵列的字线来写数据。随后, 则将数据读到与该阵列相关的寄存器中, 其中, 数据 被重新布置以便其可以按多状态形式被写回到阵列中。例如, 取每单元三位的情况, 三个 字线的内容每个将被读到寄存器结构中, 被重新布置以对应于将被存储在每个单元中的三 位, 且然后按每单元 3 位的格式被重写回到阵列的单个字线。在如此描述的布置中, 然后, 单个字线的二进制数据内容在字线的第 1/N 上结束, 且按每单元 N 位的格式存储。对于数 据的最终的 N 位存储使用采用多状态与单元的关系的纠错码 (ECC) 的情况, 可以在控制器 中确定该 ECC, 且将其与对应数据一起传输, 且在数据 ( 和对应的 ECC) 按多状态格式重写之 前按二进制格式存储。
         对于每单元 3 位的例子, 可以用图 13 来图示将数据从二进制折叠为多状态或 MLC 格式的思想。如由箭头示出, 从控制器 ( 或主机 ) 接收数据, 且将其按二进制格式写在存储 器的块 611 中。明确示出块 611 的被写字线中的三个 (613, 615, 617)。然后, 沿块 621 的单 个字线 623 按每单元 3 位的格式重写这三个字线的内容, 在存储器本身上实现″折叠″处 理。( 更普遍地, 如果按每单元 N 位的格式沿 621 写数据, 则二进制内容的 N 个字线的内容 将按此方式被折叠起来。该块 611 可以具体地被分配为仅以二进制模式操作或可以是可由 例如可在物理页上存储的多个逻辑页的仅最低页以 MLC 模式操作的块。类似地, 块 621 可 以被分配为仅用于多状态操作, 或也可以按二进制模式操作。
         在图 14 中示出关于示例实施例如何将数据从多个二进制格式字线折叠到单个字 线中的某些细节。在图 14 的顶部的是三个字线 613、 615、 和 617, 其每个被划分为沿着位线 的相应三分之一的单元的三分之一的三个部分 (a, b, c)( 在此取为邻接的 )。在字线 623 上, 第一字线 (613a-c) 的三个三分之一被布置到该字线的第一个第三上 ; 类似地, 第二二 进制字线 615 被折叠且写到 623 的中间的三分之一, 且来自二进制块 617 的第三字线被写 到 623 的最后的三分之一。
         图 14 所示的处理以多种方式概括。这些中的第一方式在于按多状态格式每单元 存储的状态的数量。虽然图 13 和 14 示出三页数据从三个物理页被重写为单个物理页上的 多状态格式的情况, 但是可以使用其他数量的存储密度。 ( 例如, 为了简化以下讨论, 特别是 涉及寄存器结构的讨论, 每单元 2 位的情况通常将被用作示例实施例。) 而且, 虽然示出全 部字线 ( 在此每个对应于一页 ), 在允许部分页操作的系统中, 可以使用部分页。( 以下讨 论用于二进制存储的部分页的写入, 且多状态部分页操作也是可能的, 虽然因为这可能导 致更多磨损 (wear)、 该磨损在多状态操作的通常更收紧的容限的情况下可能是有问题的而 因此通常不是优选的。) 另外, 虽然图 14 示出其中沿字线的单元被划分为沿连续位线的组 用于折叠的情况, 但是可以使用其他布置。
         如上所述, 对存储器本身进行折叠处理, 以便一旦从控制器 ( 或主机 ) 传入数据且 以二进制格式写入, 其就被重写到阵列中而不将其传输出存储器。示例的实施例通过将多 个二进制字线 ( 例如 613, 615, 617) 的数据读入到与该阵列相关的对应的寄存器 ( 或寄存 器 ) 中、 在这些寄存器中被重写布置为多状态编程所需的形式、 然后重写到多状态块的单个字线 ( 例如 623) 中来实现此。因此, 在图 14 的布置下, 在相同字线上、 但沿不同位线的 几个 ( 在此为 3 个 ) 单元的二进制内容被读入到相关数据寄存器中, 然后被重写布置以与 在对应单个位线上的单个单元的多个位对应, 其中数据可以从该对应单个位线被写入。
         可以在美国专利 7,170,802 ; 7,420,847 ; 7,158,421 ; 和 7,206,230 ; 以及美国专 利申请号 12/051,462 以及 12/051,492 中找到关于可以结合以下描述的技术使用的寄存器 结构的更多细节。为了简化, 将主要关于每单元 2 位的例子来讨论该寄存器结构。图 15 是 将用于给出示例寄存器结构的一些细节的方框图, 且图 16A-C 图示可以如何将数据从二进 制重新布置为此结构内的 2 位格式。
         图 15 粗略地对应于以上关于图 8-10 讨论的读 / 写堆叠, 但是强调了对于在每单 元 2 位的背景下的当前讨论更相关的一些元件。 感测放大器 SA 701 可连接到底部的多个位 线 (BL0-BLn), 比如 BL0703。 每个位线可以使得其内容沿对应的堆叠总线 (SBUS0-SBUSm) 而 传输出到堆叠之一, 比如沿着 SBUS0705 到控制该总线的处理电路 (SBUS0705 的 YBOX 707)。 如在以上列出的参考文献中详细讨论的, 内容可以从 YBOX 707 沿总线 DBUS 717 传输到较 低位数据锁存器 LDL 713、 较高位数据锁存器 UDL 711 或数据锁存器 XDL 709 中。 在示例实 施例中, 可以在 XDL 709 以及 UDL 711 和 LDL 713 之一之间传输内容, 但仅 XDL 709 可以向 或从外部总线 XBUS 715 传输数据。 该布置可以与不同数量的位线 ( 在 BLn 中的 n 的值 ) 和 不同数量的寄存器堆叠 ( 在 SBUSm 中的值 m) 一起来使用, 其中, m 和 n 可以不同。原则上, 可以使用任何整数值, 但主要设计该布置为 n 是 m 的某个整数倍, 其中, 当该整数大于 1 时, 每个寄存器将具有条目的 (n/m) 级或层 (tier), 以便存储被分配给沿堆叠总线的给定寄存 器集的多个位线的每个的感测放大器结果。图 16A-C 使用 n = 64 且 m = 8 的例子, 以便层 的数量是 (n/m) = 8。虽然可以使用 n 和 m 的各种值, 但是这些数量 ( 基于用于多状态存储 的状态的数量 ) 的某些值 ( 或比率 ) 更容易允许进行折叠处理, 如以下讨论的。
         图 16A-C 图示可以如何在与持有二进制块 611( 图 13) 和多状态块 621 两者的与 阵列相关的寄存器内执行折叠处理的例子。在该例子中, 存在八个 XDL/UDL/LDL 寄存器集 (m = 8), 每个具有在图 16B-C 中被标为 T0-T7 的八个层 (n/m = 8), 且八列对应于每个 XDL/ UDL/LDL 集上的值。 因此, 每行是 1 字节宽。 图 16A 概念地示出如何执行 N = 2 折叠 : 一旦将 数据从字线读出到 XDL 709 中, 一半的行被传输到 LDL 713 中, 且另一半被传输到 UDL 711 中, 从那里可以将其沿字线传输为较低位和较高位。因为这将仅一半地填充 LDL 和 UDL 的 可用行, 因此 XDL 可以被再次被填充, 且使得其内容在编程开始之前传输到 LDL 和 UDL 中。 注意, 因为 XDL 中的行的数量被划分为两半用于折叠处理, 因此如果 XDL 具有偶数数量的 层, 则这是优选的。更通常, 如果要将数据编程为 N 位格式, 则优选寄存器行的数量是 N 的 倍数 ; 例如, 对于 N = 3, 可以存在 9 或 6 行, 而对于 N = 4, 可以再次使用 8 行。对于折叠处 理, 则来自 XDL 的第 1/N 行将被传输出到对应于 N 多位的每个的寄存器。
         可以以多种方式实现将数据从 XDL 折叠到 LDL 和 UDL 中。 在图 16B 中, 这通过按页 将数据读到 XDL 寄存器中、 在这之后将偶数层的字节大小的行放入 LDL 的顶部四层中并将 奇数层的字节大小的行放入 UDL 的顶部四行中来实现。 为了填充物理页用于 2 位编程, 在图 16C 中, 来自第二二进制页的数据被从感测放大器读到 XDL 中, 将偶数层再次被传输到 LDL 中, 且奇数层被传输到 UDL 中。可以根据各种指针方案、 比如在美国专利号 7,170,802 中描 述的方案、 或许是仅仅按顺序跨越所有位线的指针的最简单版本来实现将数据从位线传输到感测放大器中。一旦数据在寄存器中被折叠为多状态格式, 则就可以将其编程回到存储 器阵列的块中, 其中, 多状态编程的细节可以如以上列出的各种参考文献的任一个中那样。 当读回数据时, 数据可以被展开 (unfold) 以倒转图 16A-C 的处理, 数据被读出到 XDL 寄存 器中, 然后被展开到 LDL 和 UDL 寄存器中, 以便然后可以将其从存储器传输回去。然后, 可 以以其从主机初始地移动的相同顺序或数据结构来将数据从存储器移回。 ( 注意, 通过折叠 可能改变逻辑到物理地址映射, 且因此这需要解决。)
         回到图 13, 在以上描述的折叠处理中, 在寄存器结构中将沿字线 613 的数据页折 叠起来以被编程到字线 623 的仅三分之一上, 如图 14 示意所示。( 应该注意, 图 13 和图 14 是用于 N = 3 的实施例的。) 对沿字线 615 和 617 的数据也进行类似折叠。以此方式, 来自 对应于位线的三个不同数据锁存器的二进制数据沿单个字线最终被以 N = 3 的多状态形式 写在字线 623 的单个位线上的单个单元上。或者, 对于多个字线的每个的沿着单个位线的 单元可以被映射到沿字线 623 的该相同位线上的单个单元上, 而不用在先前段中描述的折 叠处理 ; 但是, 当以多状态格式所写的数据使用采用在单元上存储的多状态之间的物理关 系的纠错码 (ECC) 时可以有效地使用在此部分中给出的这类存储器上的折叠布置。即使使 用更传统的 ECC 编码方法, 在此给出的技术也可以增强系统的 ECC 能力。
         当在存储器单元中出现误差时, 一些误差比其他的更有可能。 例如, 在其中数据状 态对应于在浮置栅极上存储的电荷量的浮置栅极存储器 ( 见以上图 4) 的情况下, 如果在单 元中发生误差, 则相比于更远的状态, 数据状态更可能偏移到相邻状态。 存储器器件的物理 特征的这种知识可以被并入纠错码 (ECC) 中。例如, 在单元中可能发生的不同可能的误差 转变可以根据其相对物理似然性而被加权, 且这些加权因子可以被并入 ECC 计算中。以下, 这类 ECC 将被称为″强 ECC″或″ SECC″。 关于这些主题的另外的背景细节、 包括考虑到单 元的各种状态之间的关系的 ECC、 以及在纠错码中可以如何使用它, 可以在以下美国专利、 专利公开和专利申请号中找到 : 2009/0094482 ; 7,502,254 ; 2007/0268745 ; 2007/0283081 ; 7,310,347 ; 7,493,457 ; 7,426,623 ; 2007/0220197 ; 2007/0065119 ; 2007/0061502 ; 2007/0091677 ; 2007/0180346 ; 2008/0181000 ; 2007/0260808 ; 2005/0213393 ; 6,510,488 ; 7,058,818 ; 2008/0244338 ; 2008/0244367 ; 2008/0250300 ; 和 2008/0104312。
         在优选实施例中, 当将数据从二进制重写为多状态格式时, 将使用状态独立的强 ECC(SECC)。为了计算 SECC, 系统需要知道一旦数据以多状态格式写如则将如何存储该数 据, 且为了知道这个, 所有该数据需要可用。在在此给出以及在图 13 和 14 中概述的折叠布 置中, 在数据进来时, 其沿字线 613 以二进制格式被写如, 其后是在字线 615 上的下一逻辑 页, 等等, 遍历剩余数据集。每个字线具有在折叠之后将沿物理多状态页的 1/N 被写为 N 位 多状态格式的所有数据 ; 例如, 在图 14 中, 要在字线 623 的左边 1/3 中存储的所有数据是字 线 613。根据在此给出的另一方面, 在控制器 ( 或主机 ) 中计算与如何将逻辑页随后存储 为多状态形式对应的强 ECC, 且将其与数据一起传输, 且以二进制形式写入。因此, 在图 13 中, 例如, 在字线 613 上的数据将已经具有与该逻辑页的数据将如何被存储在字线 623 的一 部分上对应的 SECC。注意, 在二进制块中存储的用户数据的逻辑页将因此以二进制格式被 写入, 但与该用户数据一起被写到物理页 ( 或字线 ) 上的对应 ECC 将基于其最终的多状态 设置, 即使其还没有以此方式被写入。
         相反, 如果 N 个位线沿 N 个字线被写为二进制格式, 然后在维持位线对应性的单个字线上以 N 位格式重写, 而不用折叠操作 ( 例如, 对于 3 个不同二进制块字线的在相同位 线上的 3 个单元最终在多状态块 621 中的相同单元中 ), 则控制器不能计算强 ECC, 除非其 同时具有所有 N 个逻辑页。因此, 其将需要在将它们写为二进制形式之前积累它们, 去除 在数据被接收时以二进制格式快速写数据的能力 ; 或者需要以二进制格式进行 N 个逻辑页 的第一次写, 随后回来将这些页读回到控制器, 且计算对应的 SECC, 将它们以二进制格式与 SECC 一起重写, 且然后将该数据和 SECC 写在多状态块中。 虽然该后一布置将仍然允许快速 初始二进制写, 但是其将需要额外的读和传输回到控制器, 其后传输到存储器以及第二二 进制写。注意, 除了在该处理中涉及的额外传输时间以外, 在每 N 个逻辑页最终以多状态格 式存储之前, 其还将经历二进制写的字线的数量加倍 ( 从 N 到 2N)。 在二进制块中使用许多 (2N) 个字线来在每单元 N 位的块上写一个字线的另一缺点是, 闪存的可靠性可能受二进制 块的可靠性限制 ; 而且, 对于二进制编程使用太多块将留下更少的存储器容量来存储用户 数据。
         如上所述, 在数据从主机进来时, 可以以二进制格式来写该数据, 在二进制块中积 累, 直到最终在多状态块中重写。 但是, 数据分组将以通常不对应于整数数量的逻辑页的各 种大小从主机到达。当主机负载少于整个逻辑页时, 优选实施例仍然可以将该数据传输到 存储器, 且使用部分页编程将其编程到二进制块中而没有 ECC。控制器还可以为该部分页 保持积累的数据, 直到其具有对应于整个逻辑页的量, 基于该整个页计算强 ECC, 然后写该 整个积累的逻辑页的 SECC, 此最后的组块 (chunk) 被编程进去, 以填充在字线上的逻辑页。 二进制页内的 SECC 位置可能是重要的, 以便可以留下一些位空间用于最后的编程以填充 所有 SECC 空间。例如, 在一些情况下, 主机可能不具有足够的数据来填充整页。在该情况 下, 可以首先与二进制 ECC 码一起在二进制块中写现有的部分页数据。当接下来的数据进 来时, 编程的二进制部分页可以被读回, 且与进来的数据一起形成整页, 且与 SECC 一起被 编程到另一二进制字线。
         还可能需要考虑缺陷作为折叠处理的部分。具体地, 由于折叠处理从二进制块得 到多个位线上的数据, 且将它们折叠到单个位线上, 因此存储器阵列的源 ( 二进制 ) 块的任 何列缺陷将反映在折叠处理中。( 在美国专利 7,170,802 中给出缺陷列的讨论和用于处理 其的方法。) 例如, 在一个布置中, 返回参考图 14, 如果正跳入缺陷列、 例如 613a 中, 则要与 坏列一起折叠到字线 623 上的在 613b 和 613c 中的对应列在 613b 和 613c 被写时将需要被 跳过。在二进制页编程期间, 应该跳过二进制块中的坏列。如果在第 1/N 页中存在坏列, 则 二进制页数据应该在二进制页编程中跳过 N 位。将仅需要在二进制页编程中注意在字线的 其他区域中的另外的坏列。
         本地总线在数据折叠中的使用
         此部分给出向上述种类的存储器结构添加更多数据传输能力的结构。 返回参考以 上的图 15, 这示出在示例实施例中使用读 / 写堆叠之一。在该部分中给出的实施例添加了 连接到不同堆叠的 S 总线 705 的本地内部数据总线, 以便可以在不同堆叠的寄存器之间传 输数据。在读出二进制数据、 然后以每单元 3 位将其编程回去的示例实施例中, 读 / 写堆叠 被划分为三组, 其中, 每组中的堆叠的内部堆叠总线通过这样的本地总线而连接。
         如上所述, 存储多状态 (MLC) 数据的页的编程被重新布置, 以便来自一个二进制 页的数据分布到不同 MLC 页。如先前所述, 在现有技术布置中, 控制器读出数据, 在控制器中重新布置数据, 然后将数据写回到存储器用于编程。此部分和先前部分给出通过在存储 器内部重新布置数据来消除将数据传输出并传输回到存储器中的需要的技术, 由此改进存 储器性能。上述的另一益处是, 该布置可以免除系统在编程强 ECC(SECC) 二进制页之前用 标准 ECC 来编程二进制页, 从而以 2 为因子减少对二进制缓存块的容限需求。在美国专利 申请号 12/478,997 中进一步展开的先前部分中, 诸如图 4 所示的折叠数据的方法不对应于 控制器通常如何编码数据。 在该部分中介绍的结构允许以对控制器来说可能更有益的方式 来布置数据。
         稍进一步回顾先前呈现的方法, 不使用内部数据折叠机制, 为了使用强 ECC(SECC) 系统将二进制数据重写为多状态格式, 首先使用标准或轻 ECC(LECC) 页首先将来自主机的 数据写为二进制格式。一旦存在足够的 LECC 页, 则将数据读回到控制器, 控制器将把 LECC 页转换为 SECC 二进制页。一旦存在足够的 SECC 二进制页, 则二进制页被″折叠″到 MLC 页中。例如, 对于每单元 3 位的多状态格式, 需要 3 个 SECC 二进制页以便折叠成一个 3 位 的页。类似地, 对于每单元 4 位, 需要 4 个 SECC 二进制页以便折叠为一个 D4 页。该机制被 称为背景内部折叠 (Background Internal Folding, BGIF)。
         先前的部分给出了其中可以对存储器进行折叠而不将数据传输出到控制器的实 施方式。相反, 在堆叠总线 (SBus 和 DBus 717, 图 15) 内进行折叠。当前部分介绍了在一组 少量读 / 写堆叠的组内的本地总线, 以便可以在不同堆叠之间混洗 (shuffle) 数据, 而不需 要数据输入或数据输出操作。这种布置可能在寄存器中使用的级或层的数量 ( 如以上参考 图 15 和 16 所述 ) 不可被 MLC 状态的数量除尽时 ( 例如, 对于 MLC 模式下的 8 个层和每单 元 3 位的存储 ) 特别有用。
         图 17 示出对于情况 M = 15 的读 / 写堆叠中的几个, 其每个对应于图 15, 但为了 此讨论的目的, 已经上下颠倒这些元件, 图 15 的感测放大器 SA 701 未明确示出, 且现在包 括连接到输入 / 输出总线 ( 也未在此示出, 但参见以上的图 8-10) 的输入 / 输出模块 YCOM 821。 不同于图 15 的锁存器对 UDL 711 和 LDL 713, 图 17 中的每个堆叠具有三个锁存器 ADL 811、 BDL 813 和 CDL 815 的集, 且当前讨论将基于其中多级写将存储每单元 3 位的实施例。 存储器的位线被划分为部分 (section), 每个部分具有其自己的堆叠。例如, 每个堆叠可以 负责 128 个位线, 对应于图 15 中的 N = 128。图 17 示出了这些部分中的三个 ( 在此, 部分 0、 1、 2) 的堆叠, 但存储器通常将具有多得多的部分。在 3 位 MLC 设计中, 通常将存在通过 DBUS/XBUS 817/819 而连接到一起的示出的 4 个数据锁存器或更多。 如之前讨论的, 阵列的 数据传输操作是通过 YBOX 807 的。XBUS 819 也连接到 YCOM 821, 用于数据输入和数据输 出操作。在该布置下, 数据不能穿过不同部分而传输。
         图 18 重复类似编号的图 17 的元件, 但添加了在多个读 / 写堆叠的子集的堆叠总 线之间的本地数据总线, 为存储器给出在不同部分或列之间传输数据的能力。这增加了可 以没有控制器的干涉地在存储器本身内重新布置和混洗数据的方式。在示例实施例中, 该 本地数据总线连接三个堆叠的堆叠总线。( 再次, 仅示出三个部分, 但将贯穿三个堆叠的子 集的每个来重复此布置。)
         该本地总线在图 18 中示出为 LBUS 951, 其宽度 ( 在此为 16 位 ) 匹配于堆叠总线 的宽度。信号 XSW0, XSW1, XSW2 是独立的控制信号, 像在 953-0 处的 S0、 在 953-1 处的 S1 和在 953-2 处的 S2 那样, 这些信号选择如何在不同部分之间连接总线 (XBUS 和 LBUS)。信号 XS0, XS1, XS2 也是控制哪个部分的 XDL 可以从其他部分接收数据的独立信号。通过控 制这些信号的定时, 来自一个部分的数据可以被传输到另一部分中。在部分之间的水平数 据传输能力与先前描述的在部分内的寄存器之间的垂直数据传输能力组合为存储器给出 了利用锁存器 ADL 811, BDL 813, CDL 815, XDL 809 的数据传输和重新布置的更多灵活性。 ( 虽然未在图 18 中明确示出, 但是 YBOX 907 和堆叠的感测放大器通常还包括锁存器。)
         现在给出当使用图 18 的布置将三个二进制页按每单元 3 位的格式重写到存储器 的一个 ( 物理 ) 页时的期望的数据重新布置的例子。为了编程 3 位的数据页, 需要从二进 制块中读取三页二进制数据并将其放入 AD、 BDL 和 CDL 中, 如图 19 所示。从顶部线开始, 处 理通过在感测放大器处感测第一二进制页 ( 页 0) 而开始, 且在 XDL 锁存器中锁存结果。部 分 0、 1、 2(S0、 S1、 S2) 的结果被标记为 L0、 M0、 U0, 对应于它们要被重新布置到的较低、 中间 和较高。然后, 将它们从 XDL 寄存器传输到每个堆叠的 ADL 寄存器中。随后是第二二进制 页 ( 页 1), 且其被存储在 BDL 中, 且第三二进制页 ( 页 2) 从 XDL 传输到 CDL。在处理的末 尾, 三个部分的每个的 ADL、 BDL 和 CDL 锁存器的内容在图 20 的左侧示出。
         在进一步讨论图 20 之前, 重新考虑折叠处理。返回参考图 14, 这示出其中二进制 页、 例如对应于字线 613 的页 0 被划分为三等分、 以便当页在折叠且在字线 623 上以 3 位 MLC 格式重写时、 部分 613a 最终在较高页上、 中间部分 613b 最终在中间页上、 且 613c 最终在较 低页上的折叠操作。对于给定的单元, 在图 14 的折叠布置下, 虽然较高、 中间和较低位来自 相同字线, 但它们所来自的二进制单元由字线的三分之一分离。这通常不是控制器如何编 码该数据。更普通地, 控制器处理以一个字节或几个字节或字为单位编码的数据。例如, 考 虑当控制器以 2 字节为单位编码数据时的情况。由于此, 将优选将二进制字线切分为 2 字 节单位, 而不是三等分, 且基于这些更小的单位来折叠该页。因此, 当被折叠时, N = 3 字线 623 的第一 ( 物理 )2 字节片段将使得其较高、 中间和较低字节分别取自二进制字线 613 的 第一、 第二和第三个 2 字节, 且类似地将三个二进制字线的剩余折叠为两个字节单位。可以 通过使用 LBUS 951 来实现基于存储器单元的更小单位的此折叠。
         该更精细粒度 (grained) 的折叠也有助于促进通过强 ECC 对数据的编码。为了用 SECC 来编码数据, 控制器需要知道要以 MLC 格式在单元上存储的所有数据的最终数据值。 当以三等分折叠二进制页时, 控制器将不具有意图用于给定的 MLC 单元的所有数据, 直到 其来自二进制页的最后三分之一的位到来。如果而是以更小单位折叠数据, 则要折叠到给 定 MLC 单元中的所有数据更紧密靠近地到达, 由此促进 SECC 生成处理。( 再次, 这是在 3 位 MLC 例子的背景下。)
         返回图 20, 在以上参考图 19 所述的二进制的结尾处, 部分 0、 1、 2(S0、 S1、 S2) 的被 读入到寄存器 ADL、 BDL 和 CDL 的数据如图 20 的左侧示出。在右侧示出了在折叠处理的结 尾处期望的结果, 且每个部分的较低、 中间和较高数据现在分别在该部分的 ADL、 BDL 和 CDL 寄存器中。通过使用连接三个部分的如图 18 所示的 LBUS 951 在各部分之间传输数据来进 行元件的调换。二进制页 0、 1、 2 的剩余将类似地被读出到其他部分的寄存器中, 且类似地 在部分的每个子集中被折叠。一旦已经折叠了数据, 则其可以按 MLC 块被编程到字线中, 作 为较低、 中间和较高页。
         进行该数据折叠的可能序列之一在图 21A-M 中示出。在读取二进制页数据之后, 数据锁存器具有如图 21A 所示的初始数据, 其中, XDL 和感测放大器 (SA) 的锁存器仍保持读取的最后页的数据。在第一对步骤中, 通过使用在内部堆叠总线之间的本地内部数据总 线 (LBUS) 的部分内 (intra-section) 传输, 将 U0 从部分 2 的 ADL 移动到部分 0 的 XDL 锁 存器 ( 图 21B), 且将 U1 从 S2 的 BDL 锁存器移动到部分 1 的 XDL 锁存器。由于对所有部分 较高页单元在 XDL 中完成, 因此它们被上移到 CDL 中 ( 图 21D)。在在此使用的示例序列中, 锁存器在堆叠处理电路 (YBOX) 中, 在图 21E 中, BDL 锁存器的内容被移动到其中。
         然后与中间页对应的数据从部分 1 的 ADL( 图 21F)、 部分 1 的 SA 锁存器 ( 图 21G) 和部分 1 的 BDL 锁存器 ( 图 21H) 移动到 XDL 中。然后, 中间页被上移到 BDL 锁存器 ( 图 21I)。然后, 与较低页对应的数据从部分 0 的感测放大器锁存器 ( 图 21J)、 部分 0 的 YBOX 锁存器 ( 图 21K) 和部分 0 的 ADL 锁存器 ( 图 21L) 移动到 XDL 中。然后, 较低页被上移到 ADL 锁存器 ( 图 21M)。
         在这些步骤之后, 数据被如此重新布置, 且其后可以被编程到每单元 3 位的 MLC 块 中。 由于不需要从存储器向控制器移出和移入数据, 因此再次改善了写性能, 对于控制器更 有利地对数据编码。在此处给出的例子中, 使用三个部分来简化本发明的描述 ; 更通常的, N 个部分可以被分组在一起, 其中 N 可以是 2、 3、 4、 5 等。在该组内, 数据可以从一个部分传 输到另一部分, 且使用各部分的堆叠总线之间的内部总线在各部分的这些子集的每个中重 新布置。虽然用于该讨论的示例实施例是对于 3 位较低 / 中间 / 较高页数据折叠, 但可以 通过使用这些技术的其他实施例在闪存内部类似地实现不同的数据重新布置, 来改善存储 器性能。
         结论
         虽然已经关于某些实施例描述了本发明的各种方面, 但是理解, 本发明被授权在 所附权利要求的全部范围内进行保护。

    关 键  词:
    非易失性存储器 器件 二进制 格式 存储 数据 折叠 状态
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:在非易失性存储器器件内将以二进制格式存储的数据折叠为多状态格式.pdf
    链接地址:https://www.zhuanlichaxun.net/p-4639720.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1