使用冗余存储体进行故障主存储体修复的存储器件

文档序号:1821646 发布日期:2021-11-09 浏览:25次 >En<

阅读说明:本技术 使用冗余存储体进行故障主存储体修复的存储器件 (Memory device using redundant memory banks for failed main memory bank repair ) 是由 汤强 于 2021-06-30 设计创作,主要内容包括:在某些方面,一种存储器件包括:存储单元阵列、输入/输出(I/O)电路以及耦合到所述I/O电路的I/O控制逻辑。所述存储单元阵列包括P组存储体。P个冗余存储体包括在所述P组存储体中并由所述P组存储体共享。所述I/O电路耦合到所述P组存储体并且被配置为分别向P×N个工作存储体或从所述P×N个工作存储体引导P×N条数据。所述I/O控制逻辑被配置为基于指示来自所述P组存储体的K个故障主存储体的存储体故障信息,从所述P组存储体确定所述P×N个工作存储体。所述P×N个工作存储体包括所述P个冗余存储体中的K个冗余存储体。所述I/O控制逻辑被配置为控制所述I/O电路分别向所述P×N个工作存储体或从所述P×N个工作存储体引导P×N条数据。(In some aspects, a memory device includes: an array of memory cells, input/output (I/O) circuitry, and I/O control logic coupled to the I/O circuitry. The memory cell array includes P groups of banks. P redundant memory banks are included in and shared by the P group of memory banks. The I/O circuitry is coupled to the P groups of memory banks and configured to direct P N pieces of data to or from P N working memory banks, respectively. The I/O control logic is configured to determine the P N working memory banks from the P groups of memory banks based on bank failure information indicating K failed primary memory banks from the P groups of memory banks. The P N working memory banks include K redundant memory banks of the P redundant memory banks. The I/O control logic is configured to control the I/O circuitry to direct P N pieces of data to or from the P N working memory banks, respectively.)

使用冗余存储体进行故障主存储体修复的存储器件

对相关申请的交叉引用

本申请要求2021年3月24日提交的名称为“MEMORY DEVICE WITH FAILED MAINBANK REPAIR USING REDUNDANT BANK”的国际申请号PCT/CN2021/082696和2021年3月24日提交的名称为“MEMORY DEVICE WITH FAILED MAIN BANK REPAIR USING REDUNDANT BANK”的国际申请号PCT/CN2021/082687的优先权,两者均通过引用整体并入本文。

技术领域

本公开涉及存储器件及其操作方法。

背景技术

闪存是可以电擦除和重新编程的低成本、高密度、非易失性固态存储介质。闪存包括NOR闪存或NAND闪存。随着闪存中存储单元的数量不断增大,在存储器件的制造期间可能会出现故障(坏)存储单元。

例如,大多数NAND闪存器件从代工厂发货时带有一些故障存储单元。通常根据指定的故障单元标记策略来识别这些单元。通过允许一些坏单元,制造商可以获得比所有单元都必须验证为好时可能的产量更高的产量。这显著降低了NAND闪存成本,并且仅略微降低了部件的存储容量。

发明内容

在一方面,一种存储器件,包括:存储单元阵列、输入/输出(I/O)电路以及耦合到所述I/O电路的I/O控制逻辑。所述存储单元阵列包括P组存储体。每组存储体包括冗余存储体和N个主存储体,使得P个冗余存储体包括在所述P组存储体中并由所述P组存储体共享。P和N中的每个都是正整数。所述I/O电路耦合到所述P组存储体并且被配置为分别向P×N个工作存储体或从所述P×N个工作存储体引导P×N条数据。所述I/O控制逻辑被配置为基于指示来自所述P组存储体的K个故障主存储体的存储体故障信息,从所述P组存储体确定所述P×N个工作存储体。所述P×N个工作存储体包括所述P个冗余存储体中的K个冗余存储体。K是不大于P的正整数。所述I/O控制逻辑被配置为控制所述I/O电路分别向所述P×N个工作存储体或从所述P×N个工作存储体引导P×N条数据。

在另一方面,一种系统包括:存储器件,被配置为存储数据;以及存储控制器,耦合到所述存储器件并且被配置为控制所述存储器件。所述存储器件包括:存储单元阵列、I/O电路以及耦合到所述I/O电路的I/O控制逻辑。所述存储单元阵列包括P组存储体。每组存储体包括冗余存储体和N个主存储体,使得P个冗余存储体包括在所述P组存储体中并由所述P组存储体共享。P和N中的每个都是正整数。所述I/O电路耦合到所述P组存储体并且被配置为分别向P×N个工作存储体或从所述P×N个工作存储体引导P×N条数据。所述I/O控制逻辑被配置为基于指示来自所述P组存储体的K个故障主存储体的存储体故障信息,从所述P组存储体确定所述P×N个工作存储体。所述P×N个工作存储体包括所述P个冗余存储体中的K个冗余存储体。K是不大于P的正整数。所述I/O控制逻辑还被配置为控制所述I/O电路分别向所述P×N个工作存储体或从所述P×N个工作存储体引导P×N条数据。

在又一方面,提供了一种用于操作存储器件的方法。所述存储器件包括存储单元阵列。所述存储单元阵列包括P组存储体。每组存储体包括冗余存储体和N个主存储体,使得P个冗余存储体包括在所述P组存储体中。P和N中的每个都是正整数。基于指示来自所述P组存储体的K个故障主存储体的存储体故障信息,从所述P组存储体确定P×N个工作存储体。所述P×N个工作存储体包括所述P个冗余存储体中的K个冗余存储体。K是不大于P的正整数。分别向所述P×N个工作存储体或从所述P×N个工作存储体引导P×N条数据。

附图说明

并入本文并形成申请文件的一部分的附图示出了本公开的方面,并且与说明书一起进一步用于解释本公开的原理并使本领域技术人员能够实施和使用本公开。

图1示出了根据本公开的一些方面的具有存储器件的示例性系统的框图。

图2A示出了根据本公开的一些方面的具有存储器件的示例性存储卡的图。

图2B示出了根据本公开的一些方面的具有存储器件的示例性固态驱动器(SSD)的图。

图3示出了根据本公开的一些方面的包括外围电路的示例性存储器件的示意图。

图4示出了根据本公开的一些方面的包括存储单元阵列和外围电路的示例性存储器件的框图。

图5示出了使用冗余存储体实施故障主存储体修复方案的存储器件的框图。

图6A和6B示出了由图5中的存储器件实施的使用冗余存储体的故障主存储体修复方案。

图7示出了根据本公开的一些方面的示例性存储器件的框图,该示例性存储器件在数据输入中使用冗余存储体来实施故障主存储体修复方案。

图8示出了根据本公开的一些方面的示例性存储器件的框图,该示例性存储器件在数据输出中使用冗余存储体来实施故障主存储体修复方案。

图9示出了根据本公开的一些方面的存储器件中的示例性I/O控制逻辑的框图。

图10A-10C示出了根据本公开的一些方面的由图7-9中的存储器件实施的使用冗余存储体的示例性故障主存储体修复方案。

图11示出了根据本公开的一些方面的用于操作具有故障主存储体和冗余存储体的存储器件的示例性方法的流程图。

图12示出了根据本公开的一些方面的用于操作具有故障主存储体和冗余存储体的存储器件的另一示例性方法的流程图。

图13示出了根据本公开的一些方面的包括多个面的示例性存储器件的示意图。

图14A示出了根据本公开的一些方面的存储器件中的示例性面的示意图。

图14B示出了根据本公开的一些方面的图14A的面中的示例性数据总线的示意图。

图15A示出了根据本公开的一些方面的包括具有多个第二级存储元件和I/O电路的第一级存储元件(memory unit)的示例性存储器件的框图。

图15B示出了根据本公开的一些方面的包括具有多个面和I/O电路的管芯的示例性存储器件的框图。

图15C示出了根据本公开的一些方面的包括具有多个面和I/O电路的管芯的另一示例性存储器件的框图。

图15D示出了根据本公开的一些方面的图15C的存储器件中的示例性数据总线的示意图。

图16A-16D示出了根据本公开的一些方面的示例性存储器件的示意图,每个示例性存储器件都包括多个面和多个I/O电路。

图17示出了根据本公开的一些方面的使用具有多个写入子阵列的写入多路复用器(MUX)阵列在数据输入中实施故障主存储体修复方案的示例性存储器件的示意图。

图18A示出了根据本公开的一些方面的使用具有两个写入子阵列的写入MUX阵列在数据输入中实施故障主存储体修复方案的示例性存储器件的示意图。

图18B-18C示出了根据本公开的一些方面的由图18A中的存储器件实施的数据输入中的示例性故障主存储体修复方案。

图18D示出了根据本公开的一些方面的使用具有两个写入子阵列的写入MUX阵列在数据输入中实施故障主存储体修复方案的另一示例性存储器件的示意图。

图19A示出了根据本公开的一些方面的使用具有三个写入子阵列的写入MUX阵列在数据输入中实施故障主存储体修复方案的示例性存储器件的示意图。

图19B-19C示出了根据本公开的一些方面的由图19A中的存储器件实施的数据输入中的示例性故障主存储体修复方案。

图20示出了根据本公开的一些方面的使用具有多个读取子阵列的读取MUX阵列在数据输出中实施故障主存储体修复方案的示例性存储器件的示意图。

图21A示出了根据本公开的一些方面的使用具有两个读取子阵列的读取MUX阵列在数据输出中实施故障主存储体修复方案的示例性存储器件的示意图。

图21B示出了根据本公开的一些方面的由图21A中的存储器件实施的数据输出中的示例性故障主存储体修复方案。

图21C示出了根据本公开的一些方面的使用具有两个读取子阵列的读取MUX阵列在数据输出中实施故障主存储体修复方案的另一示例性存储器件的示意图。

图22A示出了根据本公开的一些方面的使用具有三个读取子阵列的读取MUX阵列在数据输出中实施故障主存储体修复方案的示例性存储器件的示意图。

图22B-22C示出了根据本公开的一些方面的由图21A中的存储器件实施的数据输出中的示例性故障主存储体修复方案。

图23示出了根据本公开的一些方面的用于操作实施故障主存储体修复方案的存储器件的示例性方法的流程图。

将参照附图描述本公开。

具体实施方式

尽管讨论了具体的配置和布置,但是应当理解,这仅是出于说明的目的。因此,在不脱离本公开的范围的情况下可以使用其他配置和布置。此外,本公开还可以用于多种其他应用。本公开中描述的功能和结构特征可以彼此组合、调整和修改,并且以附图中未具体描绘的方式,使得这些组合、调整和修改在本公开的范围内。

一般而言,可以至少部分地根据上下文中的用法来理解术语。例如,本文使用的术语“一个或多个”至少部分取决于上下文,可用于描述单数意义上的任何特征、结构或特性,或可用于描述复数意义上的特征、结构或特性的组合。类似地,至少部分地取决于上下文,诸如“一”、“一个”或“所述”的术语仍可以被理解为表达单数用法或表达复数用法。此外,术语“基于”可被理解为不一定意图传达一组排他性的因素,而是可能允许存在不一定明确描述的额外因素,这仍然至少部分地取决于上下文。

随着存储单元的数量不断增大以满足对更大存储能力的不断增大的需求,存储单元发生故障的机会也在存储器件的制造期间增大。处理故障存储单元的一种方式是在主存储单元区域(例如,主存储体,又名主列或主组)之外添加冗余存储单元区域(例如,冗余存储体,又名冗余列或冗余组)。对于每个存储器件,如果在制造后测试期间识别出的故障存储单元区域的数量低于限制(例如,不大于冗余存储单元区域的数量),则可以采用修复方案使得在操作存储器件时,冗余存储单元区域可以代替故障存储单元区域用于读取和写入数据。

一些已知的存储器件,诸如NAND闪存器件,可以执行并发数据输入/输出(I/O)操作以向或从8个物理分离的主存储单元区域(例如,主存储体)写入或读取8条数据(例如,8字节)。相同数量的8个冗余存储单元区域(例如,冗余存储体)分别耦合到主存储单元区域。根据已知的修复方案,一旦主存储单元区域被识别为故障主存储单元区域,则对应的冗余存储单元区域在数据输入和输出中代替故障存储单元区域。然而,这样的修复方案和冗余存储体设计存在各种问题。例如,大数量的冗余存储体可能会浪费芯片面积,因为通常并非所有的冗余存储体都可以使用。相对大数量的冗余存储体也可能影响修复方案的灵活性。此外,耦合每个主存储体和相应的冗余存储体的额外布线长度可能会增大数据线的歪斜。

为了解决一个或多个上述问题,本公开引入了一种解决方案,其中可以使用比主存储体的数量更少的冗余存储体以及可以实现灵活的修复方案来处理存储器件中的故障主存储体,该存储器件诸如是NAND闪存器件。与本公开的某些方面一致,多路复用器可用于耦合相邻存储体,使得输入或输出数据可在相邻存储体(主存储体或冗余存储体)之间移位。因此,冗余存储体不再专用于特定的主存储体,而是可以代替任何故障主存储体,而无需耦合到每个主存储体。因此,冗余存储体的总芯片面积以及浪费冗余存储体区域的机会都可以显著降低。此外,由于基于数据移位的修复方案,每个存储体仅与相邻存储体(单个或多个)耦合,因此还可以减少每条数据线之间的歪斜以及缩短数据线的布线长度。与已知方法相比,本文公开的冗余存储体设计和基于数据移位的修复方案也可以增加修复灵活性,即使冗余存储体的数量较少。

与本公开的某些方面一致,本文公开的基于数据移位的修复方案可以在存储器件的管芯级(或面级)中实施。用于实施基于数据移位的修复方案的I/O电路和I/O控制逻辑可以由管芯中的多个面共享(或由面中的多个面区段(section)共享)。例如,代替在每个面的每个面区段中实施I/O电路的实例和I/O控制逻辑的实例,可以在管芯中实施I/O电路和I/O控制逻辑并且它们由管芯中的不同面共享。或者,I/O电路的实例和I/O控制逻辑的实例可以在每个面中实施并且由相应的面内的不同面区段共享。结果,由于跨管芯中的不同面(或相应的面中的不同面区段)共享I/O电路和I/O控制逻辑,所以可以减少电路面积开销,并且可以更容易地实施基于数据移位的修复方案的时序控制的优化。

与本公开的某些方面一致,存储器件中用于并发数据输入/输出的每组存储体可以包括冗余存储体和多个主存储体。本文公开的I/O电路可以包括写入MUX阵列和读取MUX阵列,其中写入MUX阵列和读取MUX阵列中的每个包括多个子阵列(例如,多级数据移位子电路)。在这种情况下,每组存储体中的冗余存储体不仅可以由同一组中的多个主存储体共享,也可以由一个或多个其他组的存储体共享以代替一个或多个其他组中的任何故障主存储体。因此,可以进一步减小冗余存储体的总芯片面积,以及浪费冗余存储体面积的机会。

图1示出了根据本公开的一些方面的具有存储器件的示例性系统100的框图。系统100可以是移动电话、台式电脑、膝上型电脑、平板电脑、车载电脑、游戏机、打印机、定位设备、可穿戴电子设备、智能传感器、虚拟现实(VR)设备、争论现实(AR)设备,或其中具有储存器的任何其他合适的电子设备。如图1所示,系统100可以包括主机108和具有存储控制器106和一个或多个存储器件104的存储系统102。主机108可以是诸如中央处理单元(CPU)的电子设备的处理器,或诸如应用处理器(AP)的片上系统(SoC)。主机108可以被配置为向或从存储器件104发送或接收数据。

存储器件104可以是本公开中公开的任何存储器件。如下文详细公开的,存储器件104,诸如NAND闪存器件,可以包括比主存储体更小数量的冗余存储体,并且在数据输入和输出操作中实施灵活的、基于数据移位的修复方案以处理在存储器件104的制造后测试期间识别的故障主存储体。

根据一些实施方式,存储控制器106耦合到存储器件104和主机108并且被配置为控制存储器件104。存储控制器106可以管理存储在存储器件104中的数据并与主机108通信。在一些实施方式中,存储控制器106被设计用于在低占空比环境中操作,例如安全数字(SD)卡、紧凑型闪存(CF)卡、通用串行总线(USB)闪存驱动器或用于电子设备的其他介质,诸如个人计算机、数码相机、移动电话等。在一些实施方式中,存储控制器106被设计用于高占空比环境SSD或用作用于诸如智能电话、平板电脑、膝上型电脑等的移动设备的数据储存器的嵌入式多媒体卡(eMMC)、以及企业储存器阵列中的操作。存储控制器106可以被配置为控制存储器件104的操作,诸如读取、擦除和编程操作。存储控制器106还可以被配置为管理关于存储或将要存储在存储器件104中的数据的各种功能,包括但不限于坏块管理、垃圾收集、逻辑到物理地址转换、磨损均衡(wear leveling)、等等。在一些实施方式中,存储控制器106还被配置为处理关于从存储器件104读取或向存储器件104写入的数据的纠错码(ECC)。任何其他合适的功能也可以由存储控制器106执行,例如格式化存储器件104。存储控制器106可以根据特定的通信协议与外部设备(例如,主机108)通信。例如,存储控制器106可以通过各种接口协议中的至少一种与外部设备通信,该接口协议诸如是USB协议、MMC协议、外围组件互连(PCI)协议、PCI-express(PCI-E)协议、高级技术附件(ATA)协议、串行ATA协议、并行ATA协议、小型计算机小型接口(SCSI)协议、增强型小型磁盘接口(ESDI)协议、集成驱动电子(IDE)协议、火线协议等。

存储控制器106和一个或多个存储器件104可以集成到各种类型的储存器件中,例如,被包括在同一封装中,诸如通用闪存(UFS)封装或eMMC封装。也就是说,存储系统102可以被实施并封装到不同类型的终端电子产品中。在如图2A所示的一个示例中,存储控制器106和单个存储器件104可以集成到存储卡202中。存储卡202可以包括PC卡(PCMCIA,个人计算机存储卡国际协会)、CF卡、智能媒体(SM)卡、记忆棒、多媒体卡(MMC、RS-MMC、MMCmicro)、SD卡(SD、miniSD、microSD、SDHC)、UFS等。存储卡202还可包括将存储卡202与主机(例如,图1中的主机108)耦合的存储卡连接器204。在如图2B所示的另一示例中,存储控制器106和多个存储器件104可以集成到SSD 206中。SSD 206还可以包括将SSD 206与主机(例如,图1中的主机108)耦合的SSD连接器208。在一些实施方式中,SSD 206的储存容量和/或操作速度大于存储卡202的储存容量和/或操作速度。

图3示出了根据本公开的一些方面的包括外围电路的示例性存储器件300的示意性电路图。存储器件300可以是图1中的存储器件104的示例。存储器件300可以包括存储单元阵列301和耦合到存储单元阵列301的外围电路302。存储单元阵列301可以是NAND闪存存储单元阵列,其中以NAND存储串308的阵列的形式设置存储单元306,每个NAND存储串308都在衬底(未示出)上方垂直延伸。在一些实施方式中,每个NAND存储串308包括串联耦合并垂直堆叠的多个存储单元306。每个存储单元306可以保持诸如电压或电荷的连续的模拟值,该值取决于在存储单元306的区域内俘获的电子的数量。每个存储单元306可以是浮栅类型的存储单元(包括浮栅晶体管)或电荷俘获类型的存储单元(包括电荷俘获晶体管)。

在一些实施方式中,每个存储单元306是具有两种可能的存储状态并且因此可以存储一位数据的单级单元(SLC)。例如,第一存储状态“0”可以对应于第一电压范围,而第二存储状态“1”可以对应于第二电压范围。在一些实施方式中,每个存储单元306是能够在四种以上存储状态中存储一位以上的数据的多级单元(MLC)。例如,MLC可以每单元存储两位、每单元存储三位(也称为三级单元(TLC))或每单元存储四位(也称为四级单元(QLC))。每个MLC都可以被编程为采用一系列可能的标称储存值。在一个示例中,如果每个MLC存储两位数据,则可以通过将三个可能的标称储存值之一写入单元来将MLC从擦除状态编程为呈现三个可能的编程级之一。第四标称储存值可用于擦除状态。

如图3所示,每个NAND存储串308可以包括在其源极端的源极选择栅极(SSG)310和在其漏极端的漏极选择栅极(DSG)312。SSG 310和DSG 312可以被配置为在读取和编程操作期间激活选择的NAND存储串308(阵列的列)。在一些实施方式中,相同块304中的NAND存储串308的SSG 310通过相同源极线(SL)314(例如,公共SL)耦合到地。根据一些实施方式,每个NAND存储串308的DSG 312耦合到相应的位线316,可以经由输出总线(未示出)从该位线316读取或写入数据。在一些实施方式中,通过经由一条或多条DSG线313向相应的DSG 312施加选择电压(例如,高于具有DSG 312的晶体管的阈值电压)或取消选择电压(例如,0V)和/或通过经由一条或多条SSG线315向相应的SSG 310施加选择电压(例如,高于具有SSG310的晶体管的阈值电压)或取消选择电压(例如,0V),每个NAND存储串308被配置为被选择或取消选择。

如图3所示,NAND存储串308可以被组织成多个块304,每个块可以具有公共源极线314。在一些实施方式中,每个块304是用于擦除操作的基本数据元件,即,相同的块304上的所有存储单元306同时被擦除。相邻NAND存储串308的存储单元306可以通过字线318耦合,字线318选择存储单元306的哪一行受读取和编程操作影响。在一些实施方式中,每条字线318耦合到存储单元306的页320,其是用于编程操作的基本数据元件。以位计的一页320的大小可与在一个块304中由字线318耦合的NAND存储串308的数量相关。每条字线318可在相应的页320中的每个存储单元306处包括多个控制栅极(栅极电极)、和耦合控制栅极的栅极线。

外围电路302可以通过位线316、字线318、源极线314、SSG线315和DSG线313耦合到存储单元阵列301。外围电路302可以包括任何合适的模拟、数字和混合信号电路,用于通过经由位线316、字线318、源极线314、SSG线315和DSG线313向和从每个目标存储单元306施加和感测电压信号和/或电流信号来促进存储单元阵列301的操作。外围电路302可以包括使用金属氧化物半导体(MOS)技术形成的各种类型的外围电路。例如,图4示出了一些示例性外围电路302,包括页缓冲器/感测放大器404、列解码器/位线驱动器406、I/O电路407、行解码器/字线驱动器408、电压发生器410、控制逻辑413、寄存器414、接口416和数据总线418。控制逻辑413可以包括被配置为控制I/O电路407的操作的I/O控制逻辑412。应当理解,在一些示例中,也可以包括图4中未示出的附加的外围电路。

页缓冲器/感测放大器404可以被配置为根据来自控制逻辑413的控制信号从和向存储单元阵列301读取和编程(写入)数据。在一个示例中,页缓冲器/感测放大器404可以存储一个将被编程到存储单元阵列301的一页320中的一页编程数据(写入数据)。在另一示例中,页缓冲器/感测放大器404可以执行编程验证操作以确保数据已经被正确地编程到耦合到选择的字线318的存储单元306中。在又一个示例中,页缓冲器/感测放大器404还可以感测来自位线316的代表存储在存储单元306中的数据位的低功率信号,并在读取操作中将小电压摆幅放大到可识别的逻辑电平。

列解码器/位线驱动器406可以被配置为由控制逻辑413控制并且通过施加从电压发生器410产生的位线电压来选择一个或多个NAND存储串308。I/O电路407可以耦合到页缓冲器/感测放大器404和/或列解码器/位线驱动器406并且被配置为将数据输入从数据总线418引导(路由)到存储单元阵列301的期望的存储单元区域(例如,存储体),以及将数据输出从期望的存储单元区域引导(路由)到数据总线418。如下文详细描述的,I/O电路407可以包括写入多路复用器(MUX)阵列和读取MUX阵列以实施本文公开的灵活的、基于数据移位的修复方案,如由控制逻辑413(包括I/O控制逻辑412)控制的。

行解码器/字线驱动器408可以被配置为由控制逻辑413控制并选择存储单元阵列301的块304以及所选择的块304的字线318。行解码器/字线驱动器408可以被进一步配置为使用从电压发生器410产生的字线电压来驱动所选择的字线318。电压发生器410可以被配置为由控制逻辑413控制并产生要提供给存储单元阵列301的字线电压(例如,读取电压、编程电压、通过电压、局部(local)电压和验证电压)。

作为外围电路302的部分,控制逻辑413可以耦合到上述其他外围电路并且被配置为控制其他外围电路的操作。寄存器414可以耦合到控制逻辑413并且包括用于存储状态信息、命令操作代码(OP代码)和命令地址的状态寄存器、命令寄存器和地址寄存器,用于控制每个外围电路的操作。接口416可以耦合到控制逻辑413并且充当控制缓冲器以将从主机(未示出)接收的控制命令缓冲和中继到控制逻辑413以及从控制逻辑413接收的状态信息缓冲和中继到主机。接口416还可以经由数据总线418耦合到I/O电路407并充当数据I/O接口和数据缓冲器以将从主机(未示出)接收的写入数据缓冲和中继到I/O电路407以及将读取数据从I/O电路407缓冲和中继到主机。例如,接口416可以包括耦合到数据总线418的数据I/O 417。

图5示出了使用冗余存储体实施故障主存储体修复方案的存储器件500的框图。存储器件500中的存储单元阵列301包括i个由8个主存储体502(<0>...和<7>)构成的组和j个由8个冗余存储体504(<0>...和<7>)构成的组,并且每个主存储体502经由相应的数据线(L<0>...、或L<7>)耦合到相应的冗余存储体504。即,万一在制造后测试期间主存储体502被识别为故障主存储体,每个主存储体502具有其专用冗余存储体504作为其备份。存储器件500能够分别并发输入或输出8条数据(例如,8字节)到8个主存储体502中。存储器件500包括i个由8个主存储体502构成的组和j个由8个冗余存储体504构成的组。

存储器件500的列解码器/位线驱动器406包括分别耦合到i个由8个主存储体502构成的组的存储体的i个主解码器510和j个由8个冗余存储体504构成的组的j个冗余解码器511。存储器件500的列解码器/位线驱动器406还包括耦合到i个主解码器510的主预解码器506和耦合到j个冗余解码器511的冗余(RED)预解码器508。存储器件500的I/O控制逻辑412通过以诸如冗余启用信号(RED_EN)的控制信号控制主预解码器506和冗余预解码器508来实施故障主存储体修复方案。基于来自I/O控制逻辑412的控制信号,主预解码器506使i个主解码器510中的每个使用选择/取消选择信号(YSEL<0>...、和YSEL<i>)来禁用相应的主存储体组中的8个主存储体502中的为故障主存储体的任何主存储体。另一方面,基于来自I/O控制逻辑412的控制信号,冗余预解码器508使j个冗余解码器511中的每个使用选择/取消选择信号(YREDSEL<0>...、和YREDSEL<j>)启用相应的冗余存储体组中的8个冗余存储体504中的通过相应的位线耦合到对应的故障主存储体的任何冗余存储体。存储器件500的页缓冲器/感测放大器404由主存储体502和冗余存储体504共享以用于读取和写入操作。

图6A和6B示出了由图5中的存储器件500实施的使用冗余存储体的故障主存储体修复方案。图6A和6B示出了一个8个主存储体502构成的组和一个8个冗余存储体504构成的组。8个主存储体502包括存储体0低(B0_L)、存储体0高(B0_H)、存储体1低(B1_L)、存储体1高(B1_H)、存储体2低(B2_L)、存储体2高(B2_H)、存储体3低(B3_L)、存储体3高(B3_H)。八个主存储体502彼此分离,这意味着被引导至一个主存储体502的一条数据不能被重新引导到另一个主存储体502,因为它们没有通过数据线耦合。相反,每个主存储体502通过数据线(例如,图5中的L<0>...、或L<7>)耦合到相应的冗余存储体504(如图6A和6B中右边的相邻存储体),该数据线位于该主存储体502和该相应的冗余存储体504之间。

图6A示出了其中所有8个主存储体502都是工作存储体的情况,即没有通过制造后测试识别的故障主存储体。在这种情况下,分别向8个主存储体502或从8个主存储体502引导第一个8条数据(0...、和7),而所有8个冗余存储体504都未使用,即没有数据(标记为“x”)。类似地,再次分别向8个主存储体502或从8个主存储体502引导第二个8条数据(8...、和15),而所有8个冗余存储体504保持未使用,即没有数据(标记为“x”)。

图6B示出了其中8个主存储体502之一是通过制造后测试识别的故障主存储体的情况。在B2_H为故障主存储体的一个示例中,分别向或从7个工作主存储体502(B2_H除外)引导第一个8条数据中的7条(0、1、2、3、4、6和7),而向或从B2_H重新引导数据(5)。即,故障主存储体B2_H被其专用备份——耦合到B2_H的冗余存储体504代替,用于数据输入和输出。在B0_L为故障主存储体的另一示例中,分别向或从7个工作主存储体502(B0_L除外)引导第二个8条数据中的7条(9...、和15),而向或从耦合到B0_L的冗余存储体504重新引导数据(8)。也就是说,故障主存储体B0_L被其专用备份——耦合到B0_L的冗余存储体504代替,用于数据输入和输出。

如上所述,图5、6A和6B中示出的冗余存储体设计和相关的修复方案遭受各种问题。首先,8个冗余存储体504中的7个被浪费了,并且只有一个冗余存储体504用于修复故障主存储体。其次,修复方案缺乏灵活性,因为故障主存储体只能由预先分配的专用冗余存储体504代替。第三,每个主存储体502需要通过数据线耦合到相应的冗余存储体504,这增大了数据线的布线长度和数据线的歪斜。

为了克服那些问题中的一个或多个,本公开提供一种改进的冗余存储体设计,其具有较小数量的冗余存储体和相关的灵活的、基于数据移位的修复方案。与本公开的范围一致,存储器件可包括存储单元阵列(例如,图3和4中的存储单元阵列301)、I/O电路(例如,图4中的I/O电路407)和控制逻辑(例如,图4中的I/O控制逻辑412)。存储单元阵列可包括N个主存储体和M个冗余存储体,其中N和M均是正整数,并且N大于M。即,与具有的主存储体相比,存储单元阵列可以具有较小数量的冗余存储体。可以理解的是,类似于图5中的存储器件500,存储单元阵列可以包括多个N个主存储体构成的组以及多个M个冗余存储体构成的组。然而,N是可以并发输入(写入/编程)和输出(读取)存储单元阵列的数据的条数。还应理解,本文中使用的术语“存储体”(在“主存储体”、“冗余存储体”或“工作存储体”的上下文中)可以指存储单元区域,其中向或从该存储单元区域引导N条并发数据之一。例如,存储体可以是存储单元阵列中的页、块或面的部分。

I/O电路可耦合到N个主存储体和M个冗余存储体,并且被配置为分别向或从N个工作存储体引导N条数据。在一些实施方式中,I/O电路耦合到N个主存储体和M个冗余存储体中的每对相邻存储体,使得I/O电路被配置为向或从该对相邻存储体中的任一存储体引导N条数据中的一条数据(例如,参见下面的图7和8)。

在一些实施方式中,M等于1。也就是说,可以使用单个冗余存储体来修复N个(2、3、4、5等)个主存储体构成的组,这可以显著减少冗余存储体的芯片面积和未使用的冗余存储体的浪费。例如,图7和图8示出了根据本公开的一些方面的在数据输入和数据输出中使用冗余存储体来实施故障主存储体修复方案的示例性存储器件700的框图。存储器件700可以是图3和4中的存储器件300的示例。为了便于描述,在描述存储器件700时可以省略存储器件300中的组件的细节,并且这些细节可以类似地应用于存储器件700。如图7和8所示,存储器件700可包括具有8个主存储体702(B0_L、B0_H、B1_L、B1_H、B2_L、B2_H、B3_L和B3_H)和1个冗余存储体704(RED)的存储单元阵列301。即,在存储器件700中,N等于8,并且M等于1。换言之,根据一些实施方式,存储单元阵列301包括9个存储体,该9个存储体包括8个主存储体702和1个冗余存储体704。

I/O电路407可以通过例如页缓冲器/感测放大器404和列解码器/位线驱动器406耦合到8个主存储体702和1个冗余存储体704。在图7所示的一些实施方式中,在数据输入(例如,写入操作)中,页缓冲器/感测放大器404和列解码器/位线驱动器406包括分别耦合到8个主存储体702和1个冗余存储体704的9个驱动器706。在图8所示的一些实施方式中,在数据输出(例如,读取操作)中,页缓冲器/感测放大器404和列解码器/位线驱动器406包括分别耦合到8个主存储体702和1个冗余存储体704的9个感测放大器802。

I/O电路407可以被配置为分别向或从8个工作存储体引导8条数据。在图7所示的一些实施方式中,在数据输入中,I/O电路407被配置为向9个存储体中的8个工作存储体(即8个主存储体702和1个冗余存储体704),例如7个主存储体702和1个冗余存储体704,引导8条输入数据(例如写入数据:gwd<7:0>、gwd<15:8>、gwd<23:16>、gwd<31:24>、gwd<39:32>、gwd<47:40>、gwd<55:48>、和gwd<63:56>)。在图8所示的一些实施方式中,在数据输出中,I/O电路407被配置为从9个存储体中的8个工作存储体,例如7个主存储体702和1个冗余存储体704,引导8条输出数据(例如,读取数据:grd<7:0>、grd<15:8>、grd<23:16>、grd<31:24>、grd<39:32>、grd<47:40>、grd<55:48>、和grd<63:56>)。如图7和8所示,在一些实施方式中,I/O电路407耦合到每对相邻存储体,使得I/O电路407被配置为将一条写入数据(gwd)引导至该对相邻存储体中的任一存储体或从该对相邻存储体中的任一存储体引导一条读取数据(grd)。该对相邻存储体可以是两个主存储体702,或一个主存储体702和一个冗余存储体704。在一些实施方式中,冗余存储体704通过I/O电路407耦合到两个主存储体702。应当理解,虽然冗余存储体704如图7和8所示地在8个主存储体702的中间通过I/O电路407分别耦合到两个主存储体702(B1_H和B2_L),但是在一些示例中,冗余存储体704可以通过I/O电路407分别耦合到任何两个主存储体702或在8个主存储体702的末端仅耦合到一个主存储体702(例如,B0_L或B3_H)。

I/O电路407可以用一个或多个MUX阵列来实施。在如图7所示的一些实施方式中,存储器件700的I/O电路407包括写入MUX阵列707。写入MUX阵列707可以包括分别耦合到8个主存储体702和1个冗余存储体704用于数据输入的9个写入MUX 708构成的组。每个写入MUX708可以包括输出端(Out)、两个输入端(A和B)和选择端口(S)。每个写入MUX 708的输出端耦合到相应的存储体702或704。写入MUX 708的选择端口可以被配置为接收指示一个输入端(A或B)的选择的写入选择信号(red_en_b0_l_wt、...、red_en_b12_wt、...、或red_en_b3_h_wt)。例如,正偏置写入选择信号,即写入选择信号被启用,可以选择输入端B。

在一些实施方式中,除了在末端耦合到两个主存储体702(B0_L和B3_H)(即,仅耦合到一个另外的主存储体702)的写入MUX 708外,耦合到相应的主存储体702的每个写入MUX 708具有被配置为分别输入两条数据的两个输入端,该两条数据包括意图用于相应的主存储体702的一条写入数据和意图用于相邻主存储体702的另一条写入数据。例如,耦合到B0_H的写入MUX 708可以具有被配置为输入写入数据gwd<15:8>的输入端A,和被配置为输入写入数据gwd<7:0>的输入端B。

至于耦合到冗余存储体704的写入MUX 708,其可以具有被配置为分别输入两条数据的两个输入端,该两条数据包括意图用于一个相邻主存储体702的一条写入数据和意图用于另一个相邻主存储体702的另一条写入数据。例如,耦合到RED的写入MUX 708可以具有被配置为输入写入数据gwd<31:24>的输入端A和被配置为输入写入数据gwd<39:32>的输入端B。

对于在末端耦合到两个主存储体702(B0_L和B3_H)的写入MUX 708,其输入端之一可以被配置为输入意图用于相应的主存储体702的一条写入数据,并且其另一个输入端可以被配置为由于存储体故障而输入指示数据禁止的信号,例如系统电压Vdd。结果,每条写入数据可耦合到两个相邻存储体的两个输入端,并输入到两个相邻存储体中的任一输入端。

在一些实施方式中,如图8所示,存储器件700的I/O电路407包括读取MUX阵列807。读取MUX阵列807可以包括耦合到8个主存储体702和1个冗余存储体704以用于数据输出的8个读取MUX 804构成的组。每个读取MUX 804可以包括输出端(Out)、两个输入端(A和B)和选择端口(S)。读取MUX 804的选择端口可以被配置为接收指示一个输入端(A或B)的选择的读取选择信号(red_en_b0_l_rd、...、或red_en_b3_h_rd)。例如,正偏置读取选择信号,即读取选择信号被启用,可以选择输入端B。

在一些实施方式中,每个读取MUX 804具有耦合到两个相邻存储体的两个输入端。例如,最左边的读取MUX 804可以具有耦合到B0_L的输入端A和耦合到B0_H的输入端B;中间读取MUX 804可以具有耦合到B1_H的输入端A和耦合到RED的输入端B。换言之,除了末端的两个主存储体702(B0_L和B3_H)之外,每个存储体702或704可以分别耦合到两个读取MUX804的输入端。每个读取MUX 804的输出端可以被配置为基于相应的读取选择信号从输入端A或B输出一条数据,即存储在两个相邻存储体中的任何一条数据。例如,从最左边的读取MUX 804输出的读取数据gwd<7:0>可以来自B0_L或B0_H;从中间读取MUX 804输出的读取数据gwd<31:24>可以来自B1_H或RED。

如以上关于图7和8所描述的,I/O电路407可以耦合到每对相邻存储体并且被配置为向或从每对相邻存储体中的任一存储体引导一条数据。应当理解,虽然以上关于具有8个主存储体702和1个冗余存储体704的存储器件700描述了I/O电路407中的写入MUX阵列707和读取MUX阵列807的示例性设计,但是类似的设计可以普遍适用于具有N个主存储体和M个冗余存储体的存储器件,其中N和M均是正整数,并且N大于M。基于存储单元阵列中的冗余存储体和I/O电路中的MUX阵列的设计,可以实施灵活的、基于数据移位的修复方案。I/O控制逻辑可以耦合到I/O电路并且被配置为基于指示N个主存储体中的K个故障主存储体的存储体故障信息从N个主存储体和M个冗余存储体中确定N个工作存储体。N工作存储体可以包括M个冗余存储体中的K个冗余存储体,其中K是不大于M的正整数。I/O控制逻辑412还可以被配置为控制I/O电路,以分别向或从K个冗余存储体引导N数据中的K条数据。

例如,如图9所示,I/O控制逻辑412可以包括读取冗余启用逻辑902、写入冗余启用逻辑904和工作存储体逻辑906。每个逻辑902、904或906可以由微处理器、微控制器(又名微控制器单元(MCU))、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、状态机、门控逻辑、分立硬件电路和其他合适的硬件、固件和/或被配置为执行以下详细描述的各种功能的软件来实施。在一些实施方式中,用内容可寻址存储器(CAM)来实施读取冗余启用逻辑902、写入冗余启用逻辑904和工作存储体逻辑906中的一个或多个。

在一些实施方式中,工作存储体逻辑906耦合到寄存器414并且被配置为获得指示存储器件(例如,存储器件700)的主存储体中的一个或多个故障主存储体的存储体故障信息,例如,N个主存储体中的K个故障主存储体。在制造后测试期间,可以从存储器件中检测坏(不起作用的)存储单元,并且可以将包括至少一个坏存储单元的每个主存储体识别为故障主存储体。在一些实施方式中,存储体故障信息指示存储器件的故障主存储体中的每一个并且被保存在存储器件中,例如,在寄存器414中。因此,每个存储器件可以具有其自己的存储体故障信息。在操作存储器件之前,工作存储体逻辑906可以从寄存器414获得存储体故障信息并且确定存储器件的可以用于数据输入和输出的N个工作存储体。根据一些实施方式,工作存储体的数量(N)与并发输入/输出数据的条数(N)是一样的(例如,在存储器件700是8个)。即,工作存储体逻辑906可以用相同数量(K)的冗余存储体代替K个故障主存储体,使得N个工作存储体可以包括K个冗余存储体和N-K个主存储体。在存储器件700中,可以用冗余存储体704代替8个主存储体702中的一个故障主存储体以形成8个工作存储体,如I/O控制逻辑412的工作存储体逻辑906所确定的。

基于所确定的N个工作存储体,读取冗余启用逻辑902和写入冗余启用逻辑904可以被配置为控制I/O电路407以分别向或从K个冗余存储体引导N条数据中的K条数据。在一些实施方式中,对于数据输入,写入冗余启用逻辑904耦合到I/O电路407的写入MUX阵列707中的写入MUX 708,并且被配置为向写入MUX 708提供多个写入选择信号905。例如,写入冗余启用逻辑904耦合到I/O电路407的9个写入MUX 708,并且被配置为基于确定的8个工作存储体分别向9个写入MUX 708提供9个写入选择信号(例如,red_en_b0_l_wt、...、red_en_b12_wt...、和red_en_b3_h_wt))。在一些实施方式中,对于数据输出,读取冗余启用逻辑902耦合到I/O电路407的读取MUX阵列807中的读取MUX 804,并且被配置为向读取MUX 804提供多个读取选择信号903。例如,读取冗余启用逻辑902耦合到8个读取MUX 804并且被配置为基于所确定的8个工作存储体分别向8个读取MUX 804提供8个读取选择信号(例如,red_en_b0_l_rd、...、和red_en_b3_h_rd)。在一些实施方式中,读取冗余启用逻辑902和写入冗余启用逻辑904还分别向读取MUX 804和写入MUX 708的选通时钟提供同步信号,以对齐数据和选择信号。

可以基于K个故障主存储体启用(例如,正偏置)或禁用(例如,负偏置)每个选择信号。在一些实施方式中,如果一对相邻存储体中的第一存储体是K个故障主存储体中的一个故障主存储体,则读取冗余启用逻辑902和写入冗余启用逻辑904被配置成控制I/O电路407以向或从该对相邻存储体中的第二存储体引导该条数据。即,根据一些实施,I/O控制逻辑412被配置为基于存储体故障信息选择每对相邻存储体中的一个存储体,并控制I/O电路407向或从每对相邻存储体中的选择的存储体引导该条数据。

现在参考图7,在数据输入中,写入冗余启用逻辑904可以被配置为控制耦合到第一存储体(即,故障主存储体)的第一写入MUX 708以禁止从第一写入MUX 708的输入端A输入该条数据,并且禁止将该条数据输出到第一存储体。相反,写入冗余启用逻辑904可以被配置为控制耦合到第二存储体(例如,与第一存储体相邻的冗余存储体704或主存储体702)的第二写入MUX 708以启用从第二写入MUX 708的输入端B输入该条数据并将该条数据输出到第二存储体。即,通过如由写入冗余启用逻辑904控制的耦合到故障主存储体的写入MUX708,可以将意图用于故障主存储体的该条数据重新引导至其相邻存储体,主存储体702或冗余存储体704。相同的操作可以应用于每对相邻存储体,使得数据输入在相邻存储体之间移位。

例如,假设B0_L是故障主存储体,则写入冗余启用逻辑904可以启用red_en_b0_l_wt和red_en_b0_h_wt,使得Vdd从输入端B输入到B0_L,并且gwd<7:0>被重新引导并从输入端B输入到B0_H。为了移位数据输入,写入冗余启用逻辑904也可以启用red_en_b1_l_wt和red_en_b1_h_wt,使得gwd<15:8>被重新引导并从输入端B输入到B1_L,并且gwd<23:16>被重新引导并从输入端B输入到B1_H。写入冗余启用逻辑904还可以禁用red_en_b12_wt,使得gwd<31:24>被重新引导并从输入端A输入到RED。即,输入数据可以相应地从故障主存储体B0_L移位到冗余存储体RED。对于其他主存储体B2_L、B2_H、B3_L和B3_H,可能不需要输入数据移位,使得写入冗余启用逻辑904可以禁用red_en_b2_l_wt、red_en_b2_h_wt、red_en_b3_l_wt和red_en_b3_h_wt。结果,B2_L、B2_H、B3_L和B3_H中的每一个仍然可以从输入端A输入数据,而没有数据移位。

现在参考图8,在数据输出中,读取冗余启用逻辑902可被配置为控制耦合到第一和第二存储体(即,故障主存储体和与故障主存储体相邻的冗余存储体704或主存储体702)的读取MUX 804以启用从第二存储体(例如,与故障主存储体相邻的冗余存储体704或主存储体702)输出该条数据。即,通过如由读取冗余启用逻辑902控制的读取MUX 804,可以从其相邻存储体(主存储体702或冗余存储体704)重新引导意图用于故障主存储体的该条数据。相同的操作可以应用于每对相邻存储体,使得数据输出在相邻存储体之间移位。

例如,假设B0_L是故障主存储体,读取冗余启用逻辑902可以启用red_en_b0_l_rd,使得grd<7:0>被重新引导并从耦合到输入端B的B0_H输出。为了移位数据输出,读取冗余启用逻辑902还可以启用red_en_b0_h_rd、red_en_b1_l_rd和red_en_b1_h_rd,使得grd<15:8>被重新引导并从耦合到输入端B的B1_L输出,grd<23:16>被重新引导并从耦合到输入端B的B1_H输出,并且grd<31:24>被重新引导并从耦合到输入端B的RED输出。也就是说,输出数据可以相应地从故障主存储体B0_L移位到冗余存储体RED。对于其他主存储体B2_L、B2_H、B3_L和B3_H,可能不需要输出数据移位,使得读取冗余启用逻辑902可以禁用red_en_b2_l_rd、red_en_b2_h_rd、red_en_b3_l_rd和red_en_b3_h_rd。结果,数据仍然可以从输入端A从B2_L、B2_H、B3_L和B3_H输出,而没有数据移位。

图10A-10C示出了根据本公开的一些方面的由存储器件700实施的使用冗余存储体704的故障主存储体修复方案的其他示例。图10A示出了其中所有8个主存储体702都是工作存储体的情况,即没有通过制造后测试识别出故障主存储体。在这种情况下,可以分别向或从8个主存储体702引导第一个8条数据(0、...、和7),而冗余存储体704可以不使用,即没有数据(标记为“x”)。类似地,可以再次分别向或从8个主存储体702引导第二个8条数据(8...、和15),而冗余存储体704可以保持未使用,即没有数据(标记为“x”)。

图10B和10C示出了其中8个主存储体702之一是由制造后测试识别的故障主存储体的情况。如图10B所示,在B2_H为故障主存储体的一个示例中,可以分别向或从4个对应的工作主存储体B0_L、B0_H、B1_L和B1_H引导第一个8条数据中的第一个4条数据(1、2、3和4),工作主存储体B0_L、B0_H、B1_L和B1_H由冗余存储体704与B2_H分离。意图用于B2_H的数据(5)可以被重新引导到相邻的工作主存储体B2_L,并且意图用于B2_L的数据(4)可以被重新引导到冗余存储体704(数据左移)。B2_H可以变为未使用的。即,数据移位可以发生在B2_H和冗余存储体704之间。可以分别向或从2个对应的工作主存储体B3_L和B3_H引导第一个8条数据中的最后2条数据(6和7),而无需数据移位。在B0_L为故障主存储体的另一示例中,可以分别向或从相邻工作主存储体B0_H、B1_L和B1_H以及冗余存储体704重新引导第二个8条数据中的第一个4条数据(8、9、10和11)(数据右移)。B0_L可以变为未使用的。即B0_L和冗余存储体704之间可能发生数据移位。可以分别向或从4个对应的工作主存储体B2_L、B2_H、B3_L和B3_H引导第二个8条数据中的最后4条数据(12、13、14和15),而没有数据移位。

如图10C所示,在B1_L是故障主存储体的一个示例中,可以分别向或从2个对应的工作主存储体B0_L和B0_H引导第一个8条数据中的第一个2条数据(0和1)。可以分别向或从相邻的工作主存储体B1_H以及冗余存储体704重新引导第一个8条数据中的下2条数据(2和3)(数据右移)。B1_L可以变为未使用的。即B1_L和冗余存储体704之间可能发生数据移位。可以分别向或从4个对应的工作主存储体B2_L、B2_H、B3_L和B3_H引导第二个8条数据中的最后4条数据(4、5、6和7),而没有数据移位。在B2_L为故障主存储体的另一示例中,可以分别向或从对应的工作主存储体B0_L、B0_H、B1_L和B1_H引导第二个8条数据中的第一个4条数据(8、9、10和11),工作主存储体B0_L、B0_H、B1_L和B1_H由冗余存储体704与B2_L分离。可以向或从冗余存储体704重新引导意图用于B2_L的数据(12)(数据左移),并且B2_L可以变为未使用的。即,B2_L和冗余存储体704之间可能发生数据移位。可以分别向或从3个对应的工作主存储体B2_H、B3_L和B3_H引导第二个8条数据中的最后3条数据(13、14和15),而没有数据移位。

图11示出了根据本公开的一些方面的用于操作具有故障主存储体和冗余存储体的存储器件的示例性方法1100的流程图。存储器件可以是本文公开的任何合适的存储器件。方法1100可由I/O控制逻辑412实施。应当理解,方法1100中示出的操作可能不是详尽的,并且也可以在任何所示的操作之前、之后或之间执行其他操作。此外,一些操作可以同时执行,或以与图11所示不同的顺序执行。

参考图11,方法1100开始于操作1102,其中获得指示多个主存储体中的故障主存储体的存储体故障信息。可以通过存储器件的制造后测试来识别故障主存储体。例如,工作存储体逻辑906可以在操作存储器件之前从寄存器414获得存储体故障信息。

方法1100进行到操作1104,如图11所示,其中基于存储体故障信息从多个主存储体和冗余存储体中确定多个工作存储体。多个工作存储体可以包括冗余存储体。例如,工作存储体逻辑906可以确定包括冗余存储体和剩余主存储体的工作存储体。

方法1100进行到操作1106,如图11所示,其中基于存储体故障信息选择多个存储体中的每对相邻存储体中的一个存储体。根据一些实施方式,所选择的存储体是工作存储体。例如,工作存储体逻辑906可以基于存储体故障信息选择每对相邻存储体中的一个工作存储体。

方法1100进行到操作1108,如图11所示,其中控制向或从每对相邻存储体中的选择的存储体引导一条数据。根据一些实施方式,为了控制引导该条数据,将一对相邻存储体中的第一存储体确定为故障主存储体,并且控制向或从该对相邻存储体中的第二存储体引导该条数据。在一个示例中,写入冗余启用逻辑904可以控制第一写入MUX 708以禁止将该条数据输出到第一存储体,并且控制第二写入MUX 708以启用将该条数据输出到第二存储体。在另一示例中,读取冗余启用逻辑902可以控制读取MUX 804以启用从第二存储体输出该条数据。

图12示出了根据本公开的一些方面的用于操作具有故障主存储体和冗余存储体的存储器件另一示例性方法1200的流程图。存储器件可以是本文公开的任何合适的存储器件。方法1200可由I/O控制逻辑412实施。应当理解,方法1200中示出的操作可能不是详尽的,并且也可以在任何所示的操作之前、之后或之间执行其他操作。此外,一些操作可以同时执行,或以与图12所示不同的顺序执行。

参考图12,方法1200开始于操作1202,其中获得指示N个主存储体中的K个故障主存储体的存储体故障信息。K可以是不大于N的正整数。该K个故障主存储体可以通过存储器件的制造后测试识别出。例如,工作存储体逻辑906可以在操作存储器件之前从寄存器414获得存储体故障信息。

方法1200进行到操作1204,如图12所示,其中基于存储体故障信息从N个主存储体和M个冗余存储体中确定N个工作存储体。N个工作存储体可以包括M个冗余存储体中的K个冗余存储体。例如,工作存储体逻辑906可以确定包括K个冗余存储体和剩余主存储体的N个工作存储体。在一些实施方式中,M等于1,并且基于存储体故障信息,从N个主存储体和冗余存储体中的每对相邻存储体中选择一个工作存储体。

方法1200进行到操作1206,如图12所示,其中分别向或从K个冗余存储体引导N条数据中的K条数据。在一些实施方式中,M等于1,并且向或从N个主存储体和冗余存储体中的每对相邻存储体中的选择的工作存储体引导K条数据中的一条数据。

图13示出了根据本公开的一些方面的包括多个面1302的示例性存储器件1300的示意图。多个面1302可以包括在管芯1301中。在一些实施方式中,面1302在执行读取操作、编程操作或擦除操作时可以相互独立。例如,每个面1302可以被配置为响应于从控制逻辑413接收到读取控制信号而独立地执行读取操作。在一些实施方式中,每个面1302覆盖用于读取和编程数据的局部缓冲并且可以并行地处理操作,从而提高运算速度。为了使得能够进行其独立操作,每个面1302可以包括存储单元阵列301的一组块304和一组外围电路,诸如页缓冲器/感测放大器404、列解码器/位线驱动器406、和行解码器/字线路驱动程序408。

在一些其他实施方式中,面1302可以被配置为串行执行读取操作、编程操作或擦除操作。例如,响应于从控制逻辑413接收到对应的控制信号,可以在多个面1302中一个接一个地执行读取操作、编程操作或擦除操作。

图14A示出了根据本公开的一些方面的面1302的示例性布局。根据本公开的一些方面,图14B示出了图14A的面1302中的示例性数据总线的示意图。在一些实施方式中,面1302中的存储单元可被分成多个区段(在此称为面区段)。面1302可以包括被分成多个部分(portion)1406(在本文中被称为页缓冲器/感测放大器部分1406)的页缓冲器/感测放大器404。每个页缓冲器/感测放大器部分1406可以对应于面1302中的面区段,并且可以被配置为根据来自控制逻辑413的控制信号从和向面区段中的存储单元读取和编程(写入)数据。

如图14A所示,页缓冲器/感测放大器404包括四个物理分离的部分1406a、1406b、1406c和1406d(例如,四个四分之一)。应当理解,部分的数量不限于四个,并且可以是大于1的任何整数(例如,2、3、4、5、6等),例如,两半。页缓冲器/感测放大器404可以包括多个储存元件(例如,锁存器、高速缓存或寄存器),用于临时存储(缓冲)要从面1302中的存储单元读取或向其写入的一页或多页数据。在一些实施方式中,每个部分1406a、1406b、1406c或1406d具有相同的大小,即页缓冲器/感测放大器404的四分之一。例如,页缓冲器/感测放大器404可以存储16K字节的数据,并且每个部分1406a、1406b、1406c或1406d可以存储4K字节的数据。

在一些实施方式中,全局数据总线1418可以分别耦合到每个页缓冲器/感测放大器部分1406a、1406b、1406c或1406d。结合参考图14A和14B,全局数据总线1418可以在每个结点1401、1402、1404a或1404b处分叉以形成其分支数据总线。例如,全局数据总线1418可以在结点1401处分叉为两个面分支数据总线1403a和1403b。面分支数据总线1403a可以在结点1402处分叉为两个区段分支数据总线1405a和1405b。区段分支数据总线1405a可以在结点1404a处分叉为两个区段子分支数据总线1407a和1407b。类似地,区段分支数据总线1405b可以在结点1404b处分叉成两个区段子分支数据总线1407c和1407d。结果,全局数据总线1418可以通过分支数据总线中的一个或多个(例如,1403a、1405a、1405b、1407a、1407b、1407c、和1407d)耦合到相应的页缓冲器/感测放大器部分1406a、1406b、1406c或1406d。

在一些实施方式中,面1302可以包括行解码器/字线驱动器408,其可以被分成多个行解码器/字线驱动器部分。每个行解码器/字线驱动器部分可以对应于面1302中的面区段,并且可以由控制逻辑413控制并且被配置为选择面区段中的存储单元阵列301的块304并选择所选择的块304的字线318。

在一些实施方式中,面1302可以包括列解码器/位线驱动器406,列解码器/位线驱动器406可以被分成多个列解码器/位线驱动器部分。每个列解码器/位线驱动器部分可以对应于面1302中的面区段,并且可以由控制逻辑413控制并且被配置为通过施加从电压发生器410产生的位线电压来选择面区段中的一个或多个NAND存储串308。

图15A示出了根据本公开的一些方面的示例性存储器件1500的框图,该示例性存储器件1500包括具有I/O电路和多个第二级存储元件的第一级存储元件。例如,存储器件1500可以包括存储单元阵列,该存储单元阵列包括第一级存储元件1514。第一级存储元件1514可以包括第二级存储元件1515a和1515b。每个第二级存储元件1515a或1515b可以包括一组或多组存储体,每组存储体包括用于并发数据输入和/或数据输出的冗余存储体和N个主存储体。

每个第二级存储元件1515a或1515b可以耦合到相应的页缓冲器/感测放大器404(或相应的页缓冲器/感测放大器部分1406)、相应的列解码器/位线驱动器406(或相应的列解码器/位线驱动器部分1506)和相应的行解码器/字线驱动器408(或相应的行解码器/字线驱动器部分1504)。

如图15A所示,第一级存储元件1514可以包括I/O电路407、I/O控制逻辑412和寄存器414。I/O电路407和I/O控制逻辑412可以由第二级存储元件1515a和1515b共享。每个第二级存储元件1515a或1515b可以对应于一个或多个相应的寄存器414,该寄存器414被配置为存储对应的第二级存储元件1515a或1515b的存储体故障信息。在一些实施方式中,I/O电路407、I/O控制逻辑412和寄存器414中的一个或多个可以位于第一级存储元件1514之外(例如,在第一级存储元件1514的外围区域中)。

在一些实施方式中,I/O电路407可以耦合到第一级数据总线1510。第一级数据总线1510可以在结点1511处分叉以形成其两个分支数据总线,包括分支数据总线1512a和1512b。结果,通过第一级数据总线1510和分支数据总线1512a或1512b,I/O电路407可以耦合到第二级存储元件1515a或1515b中的页缓冲器/感测放大器404(或页缓冲器/感测放大器部分1406)和列解码器/位线驱动器406(或列解码器/位线驱动器部分1506)。I/O电路407可以被配置为分别通过第一级数据总线1510和分支数据总线1512a或1512b向或从第二级存储元件1515a或1515b中的N个工作存储体引导N条数据。

I/O控制逻辑412可以耦合到I/O电路407,并且被配置为基于指示N个主存储体中的故障主存储体的存储体故障信息从第二级存储元件1515a或1515b中的N个主存储体和冗余存储体中确定N个工作存储体。I/O控制逻辑412可以控制I/O电路407以分别向或从N个工作存储体引导N条数据。上面参考图9描述了I/O控制逻辑412,并且这里将不重复类似的描述。

在一些实施方式中,第一级存储元件1514可以是包括多个面的管芯,并且每个第二级存储元件1515a或1515b可以是管芯中的对应面。第一级数据总线1510可以是管芯中的全局数据总线。I/O电路407可以耦合到全局数据总线,并且被配置为分别通过对应的面中的一条或多条分支数据总线和全局数据总线向或从对应的面中的N个工作存储体引导N条数据。下面参考图15B-15D示出示例,第一级存储元件1514为管芯,第二级存储元件1515a或1515b为面,第一级数据总线1510为全局数据总线,且I/O电路407耦合到全局数据总线。

在一些实施方式中,第一级存储元件1514可以是包括多个面区段的面,并且每个第二级存储元件1515a或1515b可以是该面中的对应的面区段。第一级数据总线1510可以是面内的面分支数据总线。I/O电路407可以耦合到面分支数据总线,并且被配置为分别通过面分支数据总线和区段分支数据总线向或从对应的面区段中的N个工作存储体引导N条数据。下面参考图16A示出示例,第一级存储元件1514为面,第二级存储元件1515a或1515b为面区段,第一级数据总线1510为面分支数据总线,且I/O电路407耦合到面分支数据总线。

在一些实施方式中,第一级存储元件1514可以是包括多个面区段的面,并且每个第二级存储元件1515a或1515b可以是该面中的对应的面区段。第一级数据总线1510可以是面中的区段分支数据总线。I/O电路407可以耦合到区段分支数据总线,并且被配置为分别通过区段分支数据总线和区段子分支数据总线向或从对应的面区段中的N个工作存储体引导N条数据。下面参考图16B和16D示出示例,第一级存储元件1514为面,第二级存储元件1515为面区段,第一级数据总线1510为区段分支数据总线,且I/O电路407耦合到区段分支数据总线。

图15B示出了根据本公开的一些方面的示例性存储器件1530的框图,该存储器件1530包括具有I/O电路(例如,I/O电路407)和多个面的管芯。管芯(例如,管芯1301)可以包括多个面1302a和1302b。存储器件1530可以包括与本文公开的任何合适的存储器件的组件类似的组件,并且这里将不重复类似的描述。

在一些实施方式中,控制逻辑413可以包括全局I/O控制逻辑,该全局I/O控制逻辑被配置为控制通过全局数据总线1418的数据输入和输出。例如,控制逻辑413可以控制向或从全局数据总线1418的数据输入/输出的缓冲,并且可以对输入/输出数据执行完整性检查。在一些示例中,寄存器414也可以包括在控制逻辑413内。

I/O控制逻辑412和I/O电路407可由面1302a和1302b共享。I/O电路407可以耦合到全局数据总线1418。全局数据总线1418可以在结点1401处分叉以形成面分支数据总线1403a和1403b。I/O电路407可以被配置为分别通过全局数据总线1418和面分支数据总线1403a或1403b向或从面1302a或1302b中的N个工作存储体引导N条数据。

图15C示出了根据本公开的一些方面的另一示例性存储器件1550的框图,该存储器件1550包括具有I/O电路(例如,I/O电路407)和多个面的管芯。图15D示出了根据本公开的一些方面的图15C的存储器件1550中的示例性数据总线的示意图。图15C-15D中的管芯(例如管芯1301)可以包括多个面1302a和1302b,每个面1302a或1302b包括多个面区段1502a、1502b、1502c和1502d。I/O控制逻辑412和I/O电路407可由面1302a和1302b共享(例如,也由每个面1302a或1302b的面区段1502a、1502b、1502c和1502d共享)。存储器件1550可以包括与本文公开的任何合适的存储器件的组件类似的组件,并且这里将不重复类似的描述。

在图15C-15D中,I/O电路407可以耦合到全局数据总线1418。全局数据总线1418可以在结点1401处分叉以形成面分支数据总线1403a和1403b。关于面1302a,面分支数据总线1403a可以在结点1402a处分叉以形成区段分支数据总线1405a、1405b、1405c和1405d。结果,I/O电路407可以耦合到面1301a的每个面区段1502a、1502b、1502c或1502d,并且被配置为分别通过全局数据总线1418、面分支数据总线1403a、和区段分支数据总线1405a、1405b、1405c或1405d向或从每个面区段1502a、1502b、1502c或1502d中的N个工作存储体引导N条数据。

关于面1302b,面分支数据总线1403b可以在结点1402b处分叉以形成区段分支数据总线1405e、1405f和1405g。区段分支数据总线1405g可以在结点1404处分叉以形成区段子分支数据总线1407a和1407b。结果,I/O电路407可以耦合到面1302b的面区段1502a或1502b,并且被配置为分别通过全局数据总线1418、面分支数据总线1403b、和区段分支数据总线1405e或1405f向或从面区段1502a或1502b中的N个工作存储体引导N条数据。此外,I/O电路407可以耦合到面1302b的面区段1502c或1502d,并且被配置为分别通过全局数据总线1418、面分支数据总线1403b、区段分支数据总线1405g、区段子分支数据总线1407a或1407b向或从面区段1502c或1502d中的N个工作存储体引导N条数据。

图16A-16D示出了根据本公开的一些方面的示例性存储器件1610、1620、1630、和1640的示意图,它们均包括多个面和多个I/O电路。参考图16A,存储器件1610可以包括与本文公开的任何合适的存储器件的组件类似的组件,并且这里将不重复类似的描述。在图16A中,每个面1302a或1302b可包括相应的I/O电路407a或407b。尽管存储器件1610包括由多个面1302a和1302b共享的一个I/O控制逻辑412,但是在一些实施方式中,每个面1302a或1302b可包括:(1)耦合到其相应的I/O电路407a或407b的相应的I/O控制逻辑412;以及(2)耦合到其相应的I/O控制逻辑412的一个或多个相应的寄存器414。

关于面1302a,I/O电路407a(以及相应的I/O控制逻辑412和相应的寄存器414,如果在面1302a中有任何相应的I/O控制逻辑412和相应的寄存器414的话)可以由面1302a的面区段1502a、1502b、1502c和1502d共享。I/O电路407a可以耦合到面分支数据总线1403a。I/O电路407a可以耦合到面1302a的每个面区段1502a、1502b、1502c或1502d,并且被配置为分别通过面分支数据总线1403a和区段分支数据总线1405a、1405b、1405c或1405d向或从每个面区段1502a、1502b、1502c或1502d中的N个工作存储体引导N条数据。

关于面1302b,I/O电路407b(以及相应的I/O控制逻辑412和相应的寄存器414,如果在面1302b中有任何相应的I/O控制逻辑412和相应的寄存器414的话)可以由面1302b的面区段1502a、1502b、1502c和1502d共享。I/O电路407b可以耦合到面分支数据总线1403b。I/O电路407b可以耦合到面1302b中的面区段1502a或1502b,并且被配置为分别通过面分支数据总线1403b和区段分支数据总线1405e或1405f向或从面区段1502a或1502b中的N个工作存储体引导N条数据。另外,I/O电路407b可以耦合到面1302b的面区段1502c或1502d,并且被配置为分别通过面分支数据总线1403b、区段分支数据总线1405g和区段子分支数据总线1407a或1407b向或从面区段1502c或1502d中的N个工作存储体引导N条数据。

参考图16B,存储器件1620可以包括与本文公开的任何合适的存储器件的组件类似的组件,并且这里将不重复类似的描述。在图16B中,面1302a可以包括由面1302a的面区段1405a-1405d共享的I/O电路407a。面1302b可以包括I/O电路407b、407c和407d。

关于面1302b,I/O电路407b(以及相应的I/O控制逻辑412和相应的寄存器414,如果在面1302b中有任何相应的I/O控制逻辑412和相应的寄存器414的话)可以由面1302b的面区段1502c和1502d共享。I/O电路407b可以耦合到区段分支数据总线1405g。I/O电路407b可以耦合到面1302b的面区段1502c或1502d,并且被配置为分别通过区段分支数据总线1405g和区段子分支数据总线1407a或1407b向或从面区段1502c或1502d中的N个工作存储体引导N条数据。I/O电路407c可以耦合到区段分支数据总线1405f。I/O电路407c可以耦合到面1302b的面区段1502b,并且被配置为分别通过区段分支数据总线1405f向或从面区段1502b中的N个工作存储体引导N条数据。I/O电路407d可以耦合到区段分支数据总线1405e。I/O电路407d可以耦合到面1302b的面区段1502a,并且被配置为分别通过区段分支数据总线1405e向或从面区段1502a中的N个工作存储体引导N条数据。

参考图16C,存储器件1630可以包括与本文公开的任何合适的存储器件的组件类似的组件,并且这里将不重复类似的描述。面1302a可以包括分别对应于面1302a中的面区段1502a、1502b、1502c和1502d的I/O电路407a、407b、407c和407d。I/O电路407a可以耦合到面1302a的面区段1502a,并且被配置为分别通过区段分支数据总线1405a向或从面区段1502a中的N个工作存储体引导N条数据。I/O电路407b可以耦合到面1302a的面区段1502b并且配置为分别通过区段分支数据总线1405b向或从面区段1502b中的N个工作存储体引导N条数据。I/O电路407c可以耦合到面1302a的面区段1502c,并且被配置为分别通过区段分支数据总线1405c向或从面区段1502c中的N个工作存储体引导N条数据。I/O电路407d可以耦合到面1302a的面区段1502d,并且被配置为分别通过区段分支数据总线1405d向或从面区段1502d中的N个工作存储体引导N条数据。

面1302b可以包括分别对应于面1302b中的面区段1502a、1502b、1502c和1502d的I/O电路407e、407f、407g和407h。I/O电路407e可以耦合到面1302b的面区段1502a,并且被配置为分别通过区段分支数据总线1405e向或从面区段1502a中的N个工作存储体引导N条数据。I/O电路407f可以耦合到面1302b的面区段1502b,并且被配置为分别通过区段分支数据总线1405f向或从面区段1502b中的N个工作存储体引导N条数据。I/O电路407g可以耦合到面1302b的面区段1502c,并且被配置为分别通过区段子分支数据总线1407a向或从面区段1502c中的N个工作存储体引导N条数据。I/O电路407h可以耦合到面1302b的面区段1502d,并且被配置为分别通过区段子分支数据总线1407b向或从面区段1502d中的N个工作存储体引导N条数据。

参考图16D,存储器件1640可以包括与本文公开的任何合适的存储器件的组件类似的组件,并且这里将不重复类似的描述。在图16D中,面1302a可以包括由面1302a的面区段1502a、1502b、1502c和1502d共享的I/O电路407a。面1302b可以包括I/O电路407b和407c。

关于面1302b,面分支数据总线1403b可以在结点1402b处分叉以形成区段分支数据总线1405e和1405f。区段分支数据总线1405e可以在结点1404a处分叉以形成区段子分支数据总线1407a和1407b。区段分支数据总线1405f可以在结点1404b处分叉以形成区段子分支数据总线1407c和1407d。I/O电路407b(以及相应的I/O控制逻辑412和相应的寄存器414,如果在面1302b中有任何相应的I/O控制逻辑412和相应的寄存器414的话)可以由面1302b的面区段1502a和1502b共享。I/O电路407b可以耦合到区段分支数据总线1405e。I/O电路407b可以耦合到面1302b的面区段1502a或1502b,并且被配置为分别通过区段分支数据总线1405e和区段子分支数据总线1407a或1407b向或从面区段1502a或1502b中的N个工作存储体引导N条数据。

I/O电路407c(以及相应的I/O控制逻辑412和相应的寄存器414,如果面1302b中有任何相应的I/O控制逻辑412和相应的寄存器414的话)可以由面1302b的面区段1502c和1502d共享。I/O电路407c可以耦合到区段分支数据总线1405f。I/O电路407d可以耦合到面1302b的面区段1502c或1502d,并且被配置为分别通过区段分支数据总线1405f和区段子分支总线1407c或1407d向或从面区段1502c或1502d中的N个工作存储体引导N条数据。

图17示出了根据本公开的一些方面的示例性存储器件1700的示意图,该存储器件1700使用具有多个写入子阵列的写入MUX阵列在数据输入中实施故障主存储体修复方案。存储器件1700可以包括与本文描述的任何合适的存储器件的组件类似的组件,并且这里将不重复类似的描述。

在一些实施方式中,存储器件1700可以包括存储单元阵列,该存储单元阵列包括P组存储体,其中P可为正整数。每组存储体可以包括用于并发数据输入/输出的冗余存储体704和N个主存储体702(例如,N=8),并且因此,P个冗余存储体包括在P组存储体中并由该P组存储体共享。I/O电路407可以,例如,通过页缓冲器/感测放大器404和列解码器/位线驱动器406(或页缓冲器/感测放大器部分1406和列解码器/位线驱动器部分1506)耦合到存储器件1700中P组存储体。在图17中所示的一些实施方式,在数据输入(例如,写入操作)中,页缓冲器/感测放大器404和列解码器/位线驱动器406(或页缓冲器/感测放大器部分1406和列解码器/位线驱动器部分1506)可以包括分别耦合到每组存储体中的8个主存储体702和1个冗余存储体704的9个驱动器706。

I/O电路407可以包括通过数据总线1701和一组布线分别耦合到每组存储体中的冗余存储体704和N个主存储体702的N+1个输出。该组布线可包括导线1702、1704、1706、1708、1710、1712、1714、1716和1718。例如,I/O电路407的输出端可以通过数据总线1701的相应的数据线和布线组中的相应的导线耦合到相应的存储体。

在一些实施方式中,I/O电路407可以位于第一级存储元件1514中并且由多个第二级存储元件1515a和1515b共享,如图15A所示。数据总线1701可以是图15A中的第一级数据总线1510。该组布线可以包括分支数据总线1512a或1512b,这取决于N个主存储体702和冗余存储体704位于哪个第二级存储元件1515a或1515b中。

在一些实施方式中,I/O电路407可以位于管芯中并且由多个面共享(例如,如图15B-15D所示)。例如,数据总线1701可以是图15B所示的全局数据总线1418。该组布线可以包括图15B所示的面分支数据总线1403a或1403b,这取决于N个主存储体702和冗余存储体704位于哪个面中。在另一示例中,数据总线1701可以是图15C或15D所示的全局数据总线1418。该组布线可以包括图15D所示的面分支数据总线1403a或1403b、区段分支数据总线1405a-1405g和区段子分支数据总线1407a或1407b中的一个或多个,这取决于N个主存储体702和冗余存储体704位于面1302a或面1302b的哪个区段中。

在一些实施方式中,I/O电路407可以位于面中并且由面中的多个面区段共享。例如,图17中的I/O电路407可以是图16A的I/O电路407a或407b,并且数据总线1701可以是图16A所示的面分支数据总线1403a或1403b。该组布线可以包括图16A所示的区段分支数据总线1405a-1405g和/或区段子分支数据总线1407a或1407b,这取决于N个主存储体702和冗余存储体704位于面1302a或面1302b的哪个区段中。在另一示例中,图17中的I/O电路407可以是图16D的I/O电路407b,并且数据总线1701可以是图16D的面1302b中的区段分支数据总线1405e。该组布线可以包括图16D所示的区段子分支数据总线1407a或1407b,这取决于N个主存储体702和冗余存储体704位于面1302b的哪个面区段1502a或1502b中。在又一个示例中,图17中的I/O电路407可以是图16D的I/O电路407c,并且数据总线1701可以是图16D的面1302b中的区段分支数据总线1405f。该组布线可以包括图16D所示的区段子分支数据总线1407c或1407d,这取决于N个主存储体702和冗余存储体704位于面1302b的哪个面区段1502c或1502d中。

I/O电路407可以包括写入MUX阵列707。在一些实施方式中,写入MUX阵列707可以包括串行施加的P个写入子阵列1720(例如,第一写入子阵列,第二写入子阵列、…、以及第P写入子阵列)。下面参考图18A、18D和19A更详细地描述每个写入子阵列1720的各种示例性结构。

图18A示出了根据本公开的一些方面的示例性存储器件1800的示意图,该存储器件1800使用具有两个写入子阵列的写入MUX阵列在数据输入中实施故障主存储体修复方案。存储器件1800可以包括与本文描述的任何合适的存储器件的组件类似的组件,并且这里将不重复类似的描述。在一些实施方式中,存储器件1800可包括存储单元阵列,该存储单元阵列包括P组存储体(P=2),例如Group 0和Group 1。每组存储体可以包括用于并发数据输入/输出的1个冗余存储体704和N个主存储体702(例如,N=8),并且因此,2个冗余存储体704包括在2组存储体中并由该2组存储体共享。

在图18A所示的一些实施方式中,I/O电路407的写入MUX阵列707可以包括第一写入子阵列1720a和第二写入子阵列1720b。每个写入子阵列1720a或1720b可以包括冗余写入MUX 1881和N个主写入MUX 1880(例如,N=8)。冗余写入MUX 1881可以位于每个写入子阵列1720a或1720b中的N个主写入MUX 1880之间。每个主写入MUX 1880和每个冗余写入MUX1881可以分别包括第一输入端A、第二输入端B、选择端口S以及输出端Out。第二写入子阵列1720b中的冗余写入MUX 1881还可以包括第一冗余输入端C,而第一写入子阵列1720a中的冗余写入MUX 1881不包括任何冗余输入端。

在一些实施方式中,第一写入子阵列1720a和第二写入子阵列1720b中的每个可以具有与图7所示的写入MUX阵列707的结构类似的结构。然而,第二写入子阵列1720b的冗余写入MUX 1881可以另外包括第一冗余输入端C,而图7的写入MUX阵列707中的写入MUX不包括任何冗余输入端。在一些实施方式中,图7的写入MUX阵列707的两个实例可以串行级联并被修改以形成图18A的具有两个写入子阵列1720a和1720b的写入MUX阵列707。一般来说,图7的写入MUX阵列707的P个实例可以串形级联并被修改以形成具有P个写入子阵列的写入MUX阵列。

关于第一写入子阵列1720a,每个主写入MUX 1880的输出端通过对应的信号线(例如,1811、1812、1813、1814、1816、1817、1818或1819)耦合到第二写入子阵列1720b中的对应的主写入MUX 1880的第一输入端A。第一写入子阵列1720a中的冗余写入MUX 1881的输出端通过信号线1815耦合到第二写入子阵列1720b中的冗余写入MUX 1881的冗余输入端C。第一写入子阵列1720a中的每个主写入MUX 1880的第一输入端A耦合到对应的I/O数据线(例如,1801、1802、1803、1804、1806、1807、1808或1809),并且被配置为从对应的I/O数据线接收对应条的数据。

关于第二写入子阵列1720b,N个主写入MUX 1880和冗余写入MUX 1881的输出端分别通过信号线1821、1822、1823、1824、1825、1826、1827、1828和1829耦合到对应组的存储体中的N个主存储体702和冗余存储体704。

关于每个写入子阵列1720a或1720b,冗余写入MUX 1881的第一输入端A和第二输入端B分别耦合到同一写入子阵列中的两个相邻主写入MUX 1880的第一输入端A。每个写入子阵列1720a或1720b中的每个主写入MUX 1880的第二输入端B耦合到Vdd信号线或同一写入子阵列中的相邻主写入MUX 1880的第一输入端A。Vdd信号线可以被配置为接收系统电压Vdd。例如,对于位于每个写入子阵列1720a或1720b的左端或右端的每个主写入MUX 1880,相应的主写入MUX 1880的第二输入端B耦合到Vdd信号线。对于冗余写入MUX 1881左侧的每个主写入MUX 1880(其不是左端的主写入MUX),相应的主写入MUX 1880的第二输入端B耦合到其左侧的相邻主写入MUX 1880的第一输入端A。对于冗余写入MUX 1881右侧的每个主写入MUX 1880(其不是右端的主写入MUX),相应的主写入MUX 1880的第二输入端B耦合到其右侧的相邻主写入MUX 1880的第一输入端A。

每个主写入MUX 1880的选择端口S可以被配置为接收指示一个输入端(A或B)的选择的写入选择信号。例如,用于每个主写入MUX 1880的正偏置写入选择信号,即写入选择信号被启用,可以选择第二输入端B。用于每个主写入MUX 1880的负偏置写入选择信号,即写入选择信号被禁止,可以选择第一输入端A。在一些实施方式中,用于第一写入子阵列1720a中的相应的主写入MUX 1880的写入选择信号可以是red1_en_b0_l_wt、red1_en_b0_h_wt、red1_en_b1_l_wt、red1_en_b1_h_wt、red1_en_b2_l_wt、red1_en_b2_h_wt、red1_en_b3_l_wt、或red1_en_b3_h_wt。用于第二写入子阵列1720b中的相应的主写入MUX 1880的写入选择信号可以是red2_en_b0_l_wt、red2_en_b0_h_wt、red2_en_b1_l_wt、red2_en_b1_h_wt、red2_en_b2_l_wt、red2_en_b2_h_wt、red2_en_b3_l_wt、或red2_en_b3_h_wt。

每个冗余写入MUX 1880的选择端口S可以被配置为接收指示一个输入端(A、B、C或任何其他可用冗余输入端)的选择的写入选择信号。例如,写入选择信号的第一电平(其指示写入选择信号被禁用)可以选择第一输入端A,写入选择信号的第二电平可以选择第二输入端B,写入选择信号的第三电平可以选择第一冗余输入端C,等等。在一些实施方式中,用于第一写入子阵列1720a中的冗余写入MUX 1881的写入选择信号可以是red1_en_b12_wt。用于第二写入子阵列1720b中的冗余写入MUX 1881的写入选择信号可以是red2_en_b12_wt。

在一些实施方式中,每个主写入MUX 1880或冗余写入MUX 1881可以被配置为具有存储功能的保持元件。保持元件可以被配置为暂时存储其先前的输出信号并且不管当前输入是什么都在当前时钟周期内维持输出先前的输出信号。例如,写入选择信号可以被配置为具有特定的电压电平或电流电平(本文称为保持电平),使得主写入MUX 1880或冗余写入MUX 1881可以响应于接收到具有保持电平的写入选择信号而变为保持元件。下面参考图18B-18C和19B-19C描述保持元件的示例性应用。

图18B-18C示出了根据本公开的一些方面的由图18A中的存储器件1800实施的数据输入中的示例性故障主存储体修复方案。参考图18B,假设Group 0和Group 1总共包括2个故障主存储体。如表1856所示,这2个故障主存储体可以分布在Group 0中(例如,Group 0中的B0_L和B0_H是故障主存储体)。在本文中结合参考图9和18A描述图18B。

在一些实施方式中,I/O控制逻辑412的工作存储体逻辑906耦合到寄存器414并且被配置为从Group 0获得指示2个故障主存储体的存储体故障信息。工作存储体逻辑906可以从Group 0和Group 1中确定可用于数据输入和输出的2×N个工作存储体。也就是说,工作存储体逻辑906可以用相同数量的冗余存储体代替2个故障主存储体,使得2×N个工作存储体可以包括来自Group 0和Group 1的2个冗余存储体和2×N-2个主存储体。

基于所确定的2×N个工作存储体,写入冗余启用逻辑904可被配置为控制I/O电路407将2×N条数据分别引导至2×N个工作存储体。例如,写入冗余启用逻辑904耦合到每个写入子阵列1720a或1720b的每个主写入MUX 1880和每个冗余写入MUX 1881。写入冗余启用逻辑904被配置为基于确定的2×N个工作存储体向每个写入子阵列1720a或1720b中的主写入MUX 1880和冗余写入MUX 1881提供多个写入选择信号903。

假设意图将包括(0,0)、(0,1)、…、和(0,7)(其中N=8)的第一个N条数据存储在Group 0的N个主存储体中,并且意图将包括(1,0)、(1,1)、...、和(1,7)第二个N条数据存储在Group 1的N个主存储体中。图18B中的数据写入顺序是从Group 0到Group 1。表1850的第一行显示在时钟信号0(clk0)处将第一个N条数据分别加载到I/O信号线1801-1804和1806-1809。表1850的第二行也显示了在时钟信号1(clk1)处将第二个N条数据分别加载到I/O信号线1801-1804和1806-1809。

最初,在clk0处,第一个N条数据(0,0)(0,1)、...、和(0,7)被分别通过I/O信号线1801-1804和1806-1809输入到第一写入子阵列1720a的主写入MUX 1880,如表1850的第一行所示。

在clkl处,由于Group 0的B0_L是故障主存储体,所以写入冗余启用逻辑904可以启用red1_en_b0_l_wt、...、和red1_en_b1_h_wt,使得第一写入子阵列1720a中的冗余写入MUX 1881左侧的每个主写入MUX 1880可以从第二输入端B输入数据以实现一个存储体的右数据移位。即,数据(0,0)、(0,1)、和(0,2)被第一写入子阵列1720a右移一个存储体,并分别由信号线1812-1814输出,如表1852的第一行所示。写入启用逻辑904还可以禁用red1_en_b12_wt,使得(0,3)被重新引导到第一写入子阵列1720a的冗余写入MUX 1881并由信号线1815输出,如表1852的第一行所示。结果,每个数据(0,0)、(0,1)、(0,2)或(0,3)在clk1由第一写入子阵列1720a右移一个存储体。对于其他数据(0,4)、(0,5)、(0,6)和(0,7),可能不需要输入数据移位,使得写入冗余启用逻辑904可以禁用red1_en_b2_l_wt、red1_en_b2_h_wt、red1_en_b3_l_wt和red1_en_b3_h_wt。然后,冗余写入MUX 1881右侧的每个主写入MUX1880可以从第一输入端A输入数据,而没有数据移位,并且数据(0,4)、(0,5)、(0,6)和(0,7)分别通过信号线1816-1819由第一写入子阵列1720a输出,如表1852的第一行所示。结果,在clk1处,第一个N条数据(0,0)、(0,1)、(0,2)、(0,3)、(0,4)、(0,5)、(0,6)和(0,7)分别通过信号1812-1819输入到第二写入子阵列1720b。例如,在clk1处,数据(0,3)通过信号线1815输入到第二写入子阵列1720b的冗余写入MUX 1881的冗余输入端C。

并且,在clk1处,第二个N条数据(1,0)、(1,1)、...、和(1,7)分别通过I/O信号线1801-1804和1806-1809输入到第一写入子阵列1720a的主写入MUX1 1880,如表1850的第二行所示。

在时钟信号2(clk2)处,由于Group 0的B0_H也是故障主存储体,所以写入冗余启用逻辑904可以启用red2_en_b0_h_wt、red2_en_b1_l_wt和red2_en_b1_h_wt,使得第二写入子阵列1720b的冗余写入MUX 1881左侧的对应的主写入MUX 1880可以从第二输入端B输入数据(0,0)和(0,1),以实现一个存储体的右数据移位。即,数据(0,0)和(0,1)再次右移一个存储体并分别由信号线1823和1824输出,如表1854的第一行所示。写入冗余启用逻辑904还可以禁用red2_en_b12_wt,使得将数据(0,2)从第一输入端A重新引导到第二写入子阵列1720b的冗余写入MUX 1881并由信号线1825输出,如表1854的第一行所示。结果,在clk2处,每个数据(0,0)、(0,1)或(0,2)由第二写入子阵列1720b右移一个存储体,如表1854的第一行所示。对于其他数据(0,4)、(0,5)、(0,6)和(0,7),不需要输入数据移位,并且数据(0,4)、(0,5)、(0,6)和(0,7)分别通过信号线1826-1829由第二写入子阵列1720b输出,而没有数据移位,如表1854的第一行所示。结果,在clk2处,来自第一个N条数据的数据(0,0)、(0,1)、(0,2)、(0,4)、(0,5)、(0,6)和(0,7)分别通过信号线1823-1829输出到Group 0中的7个工作存储体。即,来自第一个N条数据的数据(0,0)、(0,1)、(0,2)、(0,4)、(0,5)、(0,6)和(0,7)存储在Group 0的7个工作存储体中,如表1856的第二行所示。

此外,在clk2处,第二个N条数据(1,0)、(1,1)、...、和(1,7)分别通过信号线1811-1814和1816-1819从第一写入子阵列1720a输出,而没有数据移位,如表1852的第二行所示。写入冗余启用逻辑904可以产生具有用于第一写入子阵列1720a的冗余写入MUX 1881的保持电平的写入选择信号(例如,具有保持电平的red1_en_b12_wt),使得第一写入子阵列1720a的冗余写入MUX 1881被配置为保持元件,以维持其先前的输出信号而不管当前输入是什么。因此,第一写入子阵列1720a的冗余写入MUX 1881仍然可以通过信号线1815在clk2处输出数据(0,3)(例如,与clk1相同),如表1852的第二行所示。即,数据(0,3)仍然是通过信号线1815输入到第二写入子阵列1720b的冗余写入MUX 1881的冗余输入端C(例如,与clk1相同)。因此,在clk2处,第二个N条数据与来自第一个N条数据的数据(0,3)组合在一起并分别输入到第二写入子阵列1720b,如表1852的第二行所示。

在时钟信号3(clk3)处,第二个N条数据(1,0)、(1,1)、…和(1,7)分别通过信号线1821-1824和1826-1829由第二写入子阵列1720b输出,而没有数据移位,如表1854的第二行所示。写入冗余启用逻辑904还可以将red2_en_b12_wt启用到第三电平,使得第二写入子阵列1720b的冗余写入MUX 1881从冗余输入端C选择其输出并通过信号线1825输出数据(0,3),如表1854的第二行所示。即,在clk3处,第二个N条数据(1,0)、(1,1)、…、和(1,7)被输出并存储在Group 1的N个主存储体中,并且来自第一个N条数据的数据(0,3)被输出并存储在Group 1的冗余存储体中,如表1856的第一行所示。

参考图18C,假设Group 0中的B0_L和B0_H是如表1866所示的故障主存储体(与图18B中的表1856相同)。类似于图18B,意图将包括(0,0)、(0,1)、…、和(0,7)的第一个N条数据(其中N=8)存储在Group 0的N个主存储体中,并且意图将包括(1,0)、(1,1)、…、和(1,7)的第二个N条数据存储在Group 1的N个主存储体中。图18B和18C之间的差异包括图18B中的数据写入顺序是从Group 0到Group 1,而图18C中的数据写入顺序是从Group 1到Group 0。本文中结合参考图9和18A描述图18C。

图18C中的表1860的第一行示出了在clk0处第二个N条数据(1,0)、(1,1)、…、和(1,7)分别加载到图18A的I/O信号线1801-1804和1806-1809。即,在clk0处,第二个N条数据分别通过I/O信号线1801-1804和1806-1809输入到第一写入子阵列1720a的主写入MUX1880。

在clk1处,由于Group 1中没有故障主存储体,所以分别通过信号线1811-1814和1816-1819从第一写入子阵列1720a输出第二个N条数据(1,0)、(1,1)、…、和(1,7),而没有数据移位,如表1862的第一行所示。

同样在clkl处,第一个N条数据(0,0)、(0,1)、……和(0,7)被分别加载到I/O信号线1801-1804和1806-1809。即,在clk1处,第一个N条数据片被分别通过I/O信号线1801-1804和1806-1809输入到第一写入子阵列1720a的主写入MUX 1880。

在clk2处,可能还没有由第二写入子阵列1720b处理已经在clk1处输入至第二写入子阵列1720b的第二个N条数据(1,0)、(1,1)、…和(1,7)。由于Group 0的B0_L和B0_H是故障主存储体,所以为了等待来自第一个N条数据的一条数据,第二个N条数据维持被输入到第二写入子阵列1720b,使得在将第二个N条数据写入Group 1的主存储体中的同时,可以将来自第一个N条数据的该条数据写入Group 1的冗余存储体中。

具体地,在clk2处,写入冗余启用逻辑904可以产生具有用于第一写入子阵列1720a的每个主写入MUX 1880的保持电平的写入选择信号,使得第一写入子阵列1720a的每个主写入MUX 1880被配置为保持元件以维持clk1的先前的输出信号,而不管当前输入是什么。即,在clk2处,第二个N条数据(1,0)、(1,1)、...、和(1,7)仍然通过信号线1811-1814和1816-1819分别从第一写入子阵列1720a的N个主写入MUX 1880输出,而没有数据移位,如表1862的第二行所示。同时,写入冗余启用逻辑904可以产生具有用于第一写入子阵列1720a的冗余写入MUX 1881的第一电平的的写入选择信号(例如,写入冗余启用逻辑904可以禁用用于冗余写入MUX 1881的red1_en_b12_wt),使得将来自第一个N条数据的数据(0,3)从第一写入子阵列1720a的冗余写入MUX 1881的输入端A重新引导至第一写入子阵列1720a的冗余写入MUX 1881并由信号线1815输出(具有一个存储体的右数据移位),如表1862的第二行所示。在这种情况下,在clk2处,第二个N条数据(1,0)、(1,1)、…、和(1,7)以及来自第一个N条数据的数据(0,3)组合在一起,并分别通过信号线1811-1819输入到第二写入子阵列1720b。

此外,在clk2处,第一个N条数据(0,0)、(0,1)、...、和(0,7)没有由第一写入子阵列1720a的主写入MUX 1880处理(除数据(0,3)由第一写入子阵列1720a的冗余写入MUX1881处理之外,如上所述)。第一个N条数据仍分别加载到I/O信号线1801-1804和1806-1809,如表1860的第三行所示。

在clk3处,第二个N条数据(1,0)、(1,1)、…和(1,7)以及来自第一个N条数据的数据(0,3)分别通过信号线1821-1829从第二写入子阵列1720b的N个主写入MUX 1880和冗余写入MUX 1881输出,而没有数据移位,如表1864的第一行所示。即,在clk3处,第二个N条数据(1,0)、(1,1)、…、(1,7)被输出存储在Group 1的N个主存储体中,并且来自第一个N条数据的数据(0,3)被输出并存储在Group 1的冗余存储体中,如表1866的第一行所示。

此外,在clk3处,因为Group 0的B0_L是故障主存储体,所以数据(0,0)、(0,1)、和(0,2)由第一写入子阵列1720a右移一个存储体并分别由信号线1812-1814输出,如表1862的第三行所示。对于其他数据(0,4)、(0,5)、(0,6)和(0,7),可能不需要输入数据移位。数据(0,4)、(0,5)、(0,6)和(0,7)分别通过信号线1816-1819由第一写入子阵列1720a输出,而没有数据移位,如表1862的第三行所示。结果,在clk3处,分别通过信号线1812-1814和1816-1819将第一个N条数据(0,0)、(0,1)、(0,2)、(0,4)、(0,5)、(0,6)和(0,7)输入到第二写入子阵列1720b。

在时钟信号4(clk4)处,因为Group 0的B0_H也是故障主存储体,所以数据(0,0)和(0,1)再次由第二写入子阵列1720b右移一个存储体并分别由信号线1823和1824输出,如表1864的第二行所示。数据(0,2)从第二写入子阵列1720b的冗余写入MUX 1881的输入端A被重新引导至第二写入子阵列1720b的冗余写入MUX 1881,并由信号线1825输出,具有一个存储体的右数据移位,如表1864的第二行所示。结果,每个数据(0,0)、(0,1)或(0,2)在clk4处由第二写入子阵列1720b右移一个存储体。对于其他数据(0,4)、(0,5)、(0,6)和(0,7),可能不需要输入数据移位,并且数据(0,4)、(0,5)、(0,6)和(0,7)分别通过信号线1826-1829由第二写入子阵列1720b输出,而没有数据移位,如表1864的第二行所示。结果,在clk4处,来自第一个N条数据的数据(0,0)、(0,1)、(0,2)、(0,4)、(0,5)、(0,6)、和(0,7)分别通过信号线1823-1829输出到Group 0中的7个工作存储体。即,来自第一个N条数据的数据(0,0)、(0,1)、(0,2)、(0,4)、(0,5)、(0,6)和(0,7)存储在Group 0的7个工作存储体中,如表1866的第二行所示。

图18D示出了根据本公开的一些方面的另一示例性存储器件1890的示意图,该存储器件使用具有两个写入子阵列的写入MUX阵列在数据输入中实施故障主存储体修复方案。存储器件1890可以包括与本文描述的任何合适的存储器件(例如,图18A的存储器件1800)的那些组件类似的组件,并且这里将不重复类似的描述。举例来说,图18D中的Group0和Group 1中的每一个可以包括N个主存储体702和1个冗余存储体704用于并发数据输入/输出,其中N=4。I/O电路407的写入MUX阵列707可以包括第一写入子阵列1720a和第二写入子阵列1720b。每个写入子阵列1720a或1720b可以包括冗余写入MUX 1881和N个主写入MUX1880,其中N=4。

冗余写入MUX 1881可以位于每个写入子阵列1720a或1720b中的N个主写入MUX1880的左侧或右侧。每个写入子阵列1320a或1320b中的冗余写入MUX 1881第一和第二输入端中的一个耦合到同一写入子阵列中相邻主写入MUX 1880的第一输入端A,并且冗余写入MUX 1881的第一和第二输入端中的另一个耦合到Vdd信号线。例如,如图18D所示,冗余写入MUX 1881位于每个写入子阵列1720a或1720b中的N个主写入MUX 1880的右侧。冗余写入MUX1881的第一输入端A耦合到左侧的相邻主写入MUX 1880的第一输入端A。冗余写入MUX 1881的第二输入端B耦合到Vdd信号线。

图19A示出了根据本公开的一些方面的示例性存储器件1900的示意图,该存储器件1900使用具有三个写入子阵列的写入MUX阵列在数据输入中实施故障主存储体修复方案。存储器件1900可以包括与本文描述的任何合适的存储器件的组件类似的组件,并且这里将不重复类似的描述。在一些实施方式中,存储器件1900可包括存储单元阵列,该存储单元阵列包括P组存储体(P=3),例如Group 0、Group 1和Group 2。每组存储体可以包括N个主存储体702(例如,N=4)和1个冗余存储体704用于并发数据输入/输出,因此,3个冗余存储体704包括在3组存储体中并由该3组存储体共享。

图19A的写入MUX阵列707可以包括第一写入子阵列1720a、第二写入子阵列1720b、和第三写入子阵列1720c。每个写入子阵列1720a、1720b或1720c可以包括冗余写入MUX1881和N个主写入MUX 1880(例如,N=4)。第二写入子阵列1720b中的冗余写入MUX 1881可以包括冗余输入端C,且第三写入子阵列1720c中的冗余写入MUX 1881可以包括冗余输入端C和D。

关于第一写入子阵列1720a,每个主写入MUX 1880的输出端通过对应的信号线(例如,1913、1914、1916或1917)耦合到第二写入子阵列1720b中的对应的主写入MUX 1880的第一输入端A。第一写入子阵列1720a中的冗余写入MUX 1881的输出端通过信号线1915耦合到第二写入子阵列1720b中的冗余写入MUX 1881的冗余输入端C,并且还通过信号线1925b耦合到第三写入子阵列1720c中的冗余写入MUX 1881的冗余输入端D。信号线1915连接到信号线1925b。第一写入子阵列1720a中的每个主写入MUX 1880的第一输入端A耦合到对应的I/O数据线(例如,1903、1904、1906或1907),并且被配置为从对应的I/O数据线接收对应条的数据。

关于第二写入子阵列1720b,每个主写入MUX 1880的输出端通过对应的信号线(例如,1923、1924、1926或1927)耦合到第三写入子阵列1720b中的对应的主写入MUX 1880的第一输入端A。第二写入子阵列1720b中的冗余写入MUX 1881的输出端通过信号线1925a耦合到第三写入子阵列1720c中的冗余写入MUX 1881的冗余输入端C。

关于第三写入子阵列1720c,N个主写入MUX 1880和冗余写入MUX 1881的输出端分别通过信号线1933、1934、1935、1936和1937耦合到对应组的存储体中的N个主存储体702和冗余存储体704。

关于每个写入子阵列1720a、1720b或1720c,冗余写入MUX 1881的第一输入端A和第二输入端B分别耦合到同一写入子阵列中的两个相邻主写入MUX 1880的第一输入端A。每个写入子阵列1720a、1720b或1720c中的每个主写入MUX 1880的第二输入端B耦合到Vdd信号线或同一写入子阵列中相邻主写入MUX 1880的第一输入端A。例如,对于位于每个写入子阵列1720a、1720b或1720c的相应的端的每个主写入MUX 1880,相应的主写入MUX 1880的第二输入端B耦合到Vdd信号线。对于冗余写入MUX 1881左侧的每个主写入MUX 1880(左端的主写入MUX 1880除外),相应的主写入MUX 1880的第二输入端B耦合到左侧的相邻主写入MUX 1880的第一输入端A。对于冗余写入MUX 1881右侧的每个主写入MUX 1880(右端的主写入MUX除外),相应的主写入MUX 1880的第二输入端B耦合到右侧的相邻主写入MUX 1880的第一输入端A。

每个主写入MUX 1880的选择端口S可以被配置为接收指示一个输入端(A或B)的选择的写入选择信号。在一些实施方式中,用于第一写入子阵列1720a中的相应的主写入MUX1880的写入选择信号可以是red1_en_b0_l_wt、red1_en_b0_h_wt、red1_en_b1_l_wt、或red1_en_b1_h_wt。用于第二写入子阵列1720b中的相应的主写入MUX 1880的写入选择信号可以是red2_en_b0_l_wt、red2_en_b0_h_wt、red2_en_b1_l_wt或red2_en_b1_h_wt。用于第三写入子阵列1720c中的相应的主写入MUX 1880的写入选择信号可以是red3_en_b0_l_wt、red3_en_b0_h_wt、red3_en_b1_l_wt或red3_en_b1_h_wt。

每个冗余写入MUX 1880的选择端口S可以被配置为接收指示一个输入端(A、B、C、D或任何其他可用输入端)的选择的写入选择信号。例如,写入选择信号的第一电平(其指示写入选择信号被禁用)可以选择第一输入端A,写入选择信号的第二电平可以选择第二输入端B,写入选择信号的第三电平可以选择冗余输入端C,且写入选择信号的第四电平可以选择冗余输入端D。在一些实施方式中,用于第一写入子阵列1720a、第二写入子阵列1720b、和第三写入子阵列1720c中的冗余写入MUX 1881的写入选择信号可以分别是red1_en_b01_wt、red2_en_b01_wt和red3_en_b01_wt。

图19B-19C示出了根据本公开的一些方面的由图19A中的存储器件1900实施的数据输入中的示例性故障主存储体修复方案。参考图19B,假设Group 0、Group 1和Group 2总共包括3个故障主存储体。如表1956所示,3个故障主存储体可以分布在Group 0中(例如,Group 0中的B0_L、B0_H和B1_L是故障主存储体)。本文中结合参考图9和19A来描述图19B。

在一些实施方式中,I/O控制逻辑412的工作存储体逻辑906耦合到寄存器414并且被配置为获得指示来自Group 0的3个故障主存储体的存储体故障信息。工作存储体逻辑906可以从Group 0、Group 1和Group 3确定可用于数据输入和输出的3×N个工作存储体。即,工作存储体逻辑906可以用相同数量的冗余存储体代替3个故障主存储体,使得3×N个工作存储体可以包括Group 0、Group 1和Group 2中的3个冗余存储体和3×N-3个主存储体。

基于所确定的3×N个工作存储体,写入冗余启用逻辑904可被配置为控制I/O电路407将3×N条数据分别引导至3×N个工作存储体。例如,写入冗余启用逻辑904耦合到每个写入子阵列1720a、1720b或1720c的主写入MUX 1880和冗余写入MUX 1881,并且被配置为基于所确定的3×N个工作存储体向每个写入子阵列1720a、1720b或1720c中的主写入MUX1880和冗余写入MUX 1881提供多个写入选择信号903。

假设意图将包括(0,0)、(0,1)、(0,2)和(0,3)的第一个N条数据(其中N=4)存储在Group 0的N个主存储体中,意图将包括(1,0)、(1,1)、(1,2)、和(1,3)的第二个N条数据存储在Group 1的N个主存储体中,并且意图将包括(2,0)、(2,1)、(2,2)和(2,3)的第三个N条数据存储在Group 2的N个主存储体中。图19B中的数据写入顺序是从Group 0到Group 1,然后到Group 2。图19B示出了包括在clk0处分别加载到I/O信号线1903、1904、1906和1907的第一个N条数据的表1950。表1950还包括在clk1处分别加载到I/O信号线1903、1904、1906和1907的第二个N条数据。表1950还包括在clk2处分别加载到I/O信号线1903、1904、1906和1907的第三个N条数据。

最初,在clk0处,第一个N条数据(0,0)、(0,1)、(0,2)和(0,3)分别通过I/O信号线1903、1904、1906和1907输入到第一写入子阵列1720a的主写入MUX 1880,如表1950的第一行所示。

在clk1处,因为Group 0的B0_L是故障主存储体,所以来自第一个N条数据的数据(0,0)和(0,1)由第一写入子阵列1720a右移一个存储体并分别通过信号线1914-1915输出,如表1952的第一行所示。对于其他数据(0,2)和(0,3),可能不需要输入数据移位,并且数据(0,2)和(0,3)分别通过信号线1916和1917由第一写入子阵列1720a输出,而无数据移位,如表1952的第一行所示。结果,在clk1处,第一个N条数据(0,0)、(0,1)、(0,2)和(0,3)分别通过信号1914-1917输入到第二写入子阵列1720b。例如,在clk1处,数据(0,1)通过信号线1915输入到第二写入子阵列1720b中的冗余写入MUX 1881的冗余输入端C,并且还通过信号线1925b输入到第三写入子阵列1720b中的冗余写入MUX 1881的冗余输入端D。

也在clk1处,第二个N条数据(1,0)、(1,1)、(1,2)、和(1,3)分别通过I/O信号线1903、1904、1906和1907输入到第一写入子阵列1720a中的主写入MUX 1880,如表1950的第二行所示。

在clk2处,因为Group 0的B0_H也是故障主存储体,所以来自N条数据的数据(0,0)被从输入端A重新引导到第二写入子阵列1720b的冗余写入MUX 1881并且通过信号线1925a由第二写入子阵列1720b的冗余写入MUX 1881输出(具有一个存储体的右数据移位),如表1954的第一行所示。对于其他数据(0,2)和(0,3),可能不需要输入数据移位,并且数据(0,2)和(0,3)分别通过信号线1926和1927由第二写入子阵列1720b输出,而没有数据移位,如表1954的第一行所示。结果,来自第一个N条数据的数据(0,0)、(0,2)和(0,3)分别通过信号线1925a、1926和1927由第二写入子阵列1720b输出,如表1954的第一行所示。

写入冗余启用逻辑904可以产生具有用于第一写入子阵列1720a的冗余写入MUX1881的保持电平的写入选择信号(例如,具有保持电平的red1_en_b01_wt)。结果,第一写入子阵列1720a的冗余写入MUX 1881被配置为保持元件以维持clk1的其先前的输出信号,并仍然在clk2处通过信号线1915输出数据(0,1)。因此,在clk2处,数据(0,1)仍然通过信号线1915输入到第二写入子阵列1720b的冗余写入MUX 1881的冗余输入端C并通过信号线1925b输入到第三写入子阵列1720c的冗余写入MUX 1881的冗余D。结果,在clk2处,第一个N条数据(0,0)、(0,1)、(0,2)和(0,3)分别通过信号线1925a、1925b、1926和1927输入到第三写入子阵列1720b,如表1954的第一行所示。

此外,在clk2处,第二个N条数据(1,0)、(1,1)、(1,2)、和(1,3)分别通过信号线1913、1914、1916和1917从第一写入子阵列1720a输出,而没有数据移位,如表1952的第二行所示。如上所述,在clk2处,数据(0,1)仍然通过信号线1915输入到第二写入子阵列1720b的冗余写入MUX 1881的冗余输入端C。结果,在clk2处,第二个N条数据和来自第一个N条数据的数据(0,1)分别通过信号线1913-1917分别输入到第二写入子阵列1720b,如表1952的第二行所示。

此外,在clk2处,第三个N条数据(2,0)、(2,1)、(2,2)、和(2,3)分别通过I/O信号线1903、1904、1906和1907输入到第一写入子阵列1720a的主写入MUX 1880,如表1950的第三行所示。

在clk3处,因为Group 0的B1_L也是故障主存储体,所以来自第一个N条数据的数据(0,2)被从输入端B重新引导到第三写入子阵列1720c的冗余写入MUX 1881并通过信号线1935由冗余写入MUX 1881输出(具有一个存储体的左数据移位),如表1955的第一行所示。对于数据(0,3),可能不需要输入数据移位。数据(0,3)通过信号线1937由第三写入子阵列1720c输出,而没有数据移位,如表1955的第一行所示。结果,在clk3处,来自第一个N条数据的数据(0,2)和(0,3)分别通过信号线1935和1937输出到Group 0中的2个工作存储体。即,来自第一个N条数据的数据(0,2)和(0,3)存储在Group 0的2个工作存储体中,如表1956的最后一行所示。

也在clk3处,第二个N条数据(1,0)、(1,1)、(1,2)和(1,3)分别通过信号线1923、1924、1926、和1927从第二写入子阵列1720b的N个主写入MUX 1880输出,而没有数据移位,如表1954的第二行所示。此外,第一写入子阵列1720a的冗余写入MUX 1881仍被配置为保持元件以维持clk2的其先前的输出信号,并仍然通过信号线1915输出来自第一个N条数据的数据(0,1)。因此,数据(0,1)仍然通过信号线1915输入到第二写入子阵列1720b的冗余写入MUX 1881的冗余输入端C,并且通过信号线1925b输入到第三写入子阵列1720c的冗余写入MUX 1881的冗余D。此外,第二写入子阵列1720b的冗余写入MUX 1881被配置为保持元件以维持clk2的其先前的输出信号,并在clk3处通过信号线1925a输出来自第一个N条数据的数据(0,0)。因此,数据(0,0)仍然通过信号线1925a输入到第三写入子阵列1720c的冗余写入MUX 1881的冗余输入端C。结果,在clk3处,第二个N条数据和来自第一个N条数据的数据(0,0)和(0,1)分别通过信号线1913、1924、1925a、1925b、1926和1927分别输入到第三写入子阵列1720c,如表1954的第二行所示。

也在clk3处,第三个N条数据(2,0)、(2,1)、(2,2)和(2,3)分别通过信号线1913、1914、1916和1917从第一写入子阵列1720a的N个主写入MUX 1880输出,而没有数据移位,如表1952的第二行所示。如上所述,在clk3处,数据(0,1)仍然通过信号线1915输入到第二写入子阵列1720b的冗余写入MUX 1881的冗余输入端C。结果,在clk3处,数据(2,0)、(2,1)、(0,1)、(2,2)和(2,3)分别通过信号线1913-1917分别输入到第二写入子阵列1720b,如表1952的第二行所示。

在clk4处,第二个N条数据(1,0)、(1,1)、(1,2)和(1,3)分别通过信号线1933、1934、1936、1937从第三写入子阵列1720c的N个主写入MUX 1880输出,而没有数据移位,如表1955的第二行所示。写入冗余启用逻辑904可以将red3_en_b01_wt启用到第三电平,以使得写入子阵列1720c的冗余写入MUX 1881从其冗余输入端C中选择数据(0,0)并通过信号线1935输出数据(0,0),如表1955的第二行所示。结果,在clk4处,第二个N条数据与来自第一个N条数据的数据(0,0)组合,使得第二个N条数据和数据(0,0)分别通过信号线1933-1937输出到Group 1的5个工作存储体。即,第二个N条数据和来自第一个N条数据的数据(0,0)存储在Group 1的5个工作存储体中,如表1956的第二行所示。

也在clk4处,第三个N条数据(2,0)、(2,1)、(2,2)和(2,3)分别通过信号线1923、1924、1926和1927从第二写入子阵列1720b的N个主写入MUX 1880输出,而没有数据移位,如表1954的第三行所示。在clk4处,第一写入子阵列1720a的冗余写入MUX 1881也被配置为保持元件以维持clk3的其先前的输出信号,并且仍然通过信号线1915和1925b输出来自第一个N条数据的数据(0,1)。即,数据(0,1)仍然通过信号线1925b输入到第三写入子阵列1720c的冗余写入MUX 1881的冗余D。结果,在clk4处,第三个N条数据与来自第一个N条数据的数据(0,1)组合,使得第三个N条数据和数据(0,1)分别通过信号线1923、1924、1925b、1926和1927输出到第三写入子阵列1720c,如表1954的第三行所示。

在时钟信号5(clk5)下,第三个N条数据(2,0)、(2,1)、(2,2)和(2,3)分别通过信号线1933、1934、1936和1937从第三写入子阵列1720c的N个主写入MUX 1880输出,而没有数据移位,如表1955的第三行所示。写入冗余启用逻辑904可以将red3_en_b01_wt启用到第四电平,使得第三写入子阵列1720c的冗余写入MUX 1881从其冗余输入端D选择数据(0,1)并通过信号线1935输出数据(0,1),如表1955的第三行所示。结果,在clk5处,第三个N条数据和来自第一个N条数据的数据(0,1)分别通过信号线1933-1937输出到Group 2中的5个工作存储体。即,第三个N条数据和来自第一个N条数据的数据(0,1)存储在Group 2的5个工作存储体中,如表1956的第一行所示。

参考图19C,假设意图将包括(0,0)、(0,1)、(0,2)和(0,3)的第一个N条数据(其中N=4)存储在Group 0的N个主存储体中,意图将包括(1,0)、(1,1)、(1,2)、(1,3)的第二个N条数据存储在Group 1的N个主存储体中,并且意图将包括(2,0)、(2,1)、(2,2)和(2,3)的第三个N条数据存储在Group 2的N个主存储体中(例如,类似于图19B那样)。图19B和19C之间的差异包括,在图19C中,Group 0具有2个故障主存储体(例如,B0_L、B1_L),并且Group 1具有1个故障主存储体(例如,B1_L),而在图19B中,Group 0具有3个故障主存储体。

图19C示出了包括在clk0处分别加载到I/O信号线1903、1904、1906和1907的第一个N条数据的表1960。表1960还包括在clk1处分别加载到I/O信号线1903、1904、1906和1907的第二个N条数据。表1960还包括在clk2处分别加载到I/O信号线1903、1904、1906和1907的第三个N条数据。

最初,在clk0处,第一个N条数据(0,0)、(0,1)、(0,2)和(0,3)分别通过I/O信号线1903、1904、1906和1907输入到第一写入子阵列1720a的主写入MUX 1880,如表1960的第一行所示。

在clk1处,第一个N条数据(0,0)、(0,1)、(0,2)、和(0,3)分别通过信号线1913、1914、1916和1917从第一写入子阵列1720a的N个主写入MUX 1880输出,而没有数据移位,如表1962的第一行所示。

在clk2处,由于Group 0的B1_L是故障主存储体,所以第二写入子阵列1720b的冗余写入MUX 1881从其输入端B选择数据(0,2)并通过信号线1925a输出数据(0,2),如表1964的第一行所示。结果,在clk2处,数据(0,2)由第二写入子阵列1720b左移一个存储体。对于其他数据(0,0)、(0,1)和(0,3),可能不需要输入数据移位。然后,数据(0,0)、(0,1)和(0,3)分别通过信号线1923、1924和1927由第二写入子阵列1720b输出,而没有数据移位,如表1964的第一行所示。结果,在clk2处,第一个N条数据(0,0)、(0,1)、(0,2)和(0,3)分别通过信号线1923、1924、1925a和1927输入到第三写入子阵列1720c。例如,在clk2处,数据(0,2)通过信号线1925a输入到第三写入子阵列1720c中的冗余写入MUX 1881的冗余输入端C。

也在clk2处,第二个N条数据(1,0)、(1,1)、(1,2)和(1,3)分别通过信号线1913、1914、1916和1917从第一写入子阵列1720a的N个主写入MUX 1880输出,而没有数据移位,如表1962的第二行所示。也在clk2处,第三个N条数据(2,0)、(2,1),(2,2),和(2,3)分别通过I/O信号线1903、1904、1906、和1907输入到第一写入子阵列1720a的主写入MUX 1880,而没有数据移位,如表1960的第三行所示。

在clk3处,因为Group 0的B0_L也是故障主存储体,所以来自第一个N条数据的数据(0,0)和(0,1)由第三写入子阵列1720c右移一个存储体并分别通过信号线1924和1935输出,如表1965的第一行所示。对于数据(0,3),可能不需要输入数据移位。数据(0,3)通过信号线1937由第三写入子阵列1720c输出,而没有数据移位,如表1965的第一行所示。结果,在clk3处,来自第一个N条数据的数据(0,0)、(0,1)和(0,3)分别通过信号线1934、1935和1937输出到Group 0中的3个工作存储体。即,来自第一个N条数据的数据(0,0)、(0,1)和(0,3)存储在Group 0的3个工作存储体中,如表1966的最后一行所示。

也在clk3处,第二个N条数据(1,0)、(1,1)、(1,2)和(1,3)分别通过信号线1923、1924、1926和1927从第二写入子阵列1720a的N个主写入MUX 1880输出,而没有数据移位,如表1964的第二行所示。第二写入子阵列1720b的冗余写入MUX 1881被配置为保持元件以维持clk2的其先前的输出信号并在clk3处通过信号线1925a输出数据(0,2)。因此,数据(0,2)仍然通过信号线1925a输入到第三写入子阵列1720b的冗余写入MUX 1881的冗余输入端C。即,在clk3处,数据(1,0)、(1,1)、(0,2)、(1,2)和(1,3)分别通过信号线1923、1924、1925a、1926和1927分别输入到第三写入子阵列1720b,如表1964的第二行所示。

也在clk3处,第三个N条数据(2,0)、(2,1)、(2,2)和(2,3)分别通过信号线1913、1914、1916和1917从第一写入子阵列1720a的N个主写入MUX 1880输出,而没有数据移位,如表1962的第三行所示。

在clk4处,因为Group 1的B1_L也是故障主存储体,所以数据(1,2)可以由第三写入子阵列1720c的冗余写入MUX 1881左移一个存储体并通过信号线1935输出,如表1965的第二行所示。对于数据(1,0)、(1,1)和(1,3),可能不需要输入数据移位。数据(1,0)、(1,1)和(1,3)分别通过信号线1933、1934和1937由第三写入子阵列1720c输出,而没有数据移位,如表1965的第二行所示。结果,在clk4处,第二个N条数据(1,0)、(1,1)、(1,2)和(1,3)分别通过信号线1933-1935和1937输出到Group 1中的4个工作存储体。也就是说,第二个N条数据(1,0)、(1,1)、(1,2)和(1,3)存储在Group 1的4个工作存储体中,如表1966的第二行所示。

也在clk4处,第三个N条数据(2,0)、(2,1)、(2,2)和(2,3)分别通过信号线1923、1924、1926和1927从第二写入子阵列1720a的N个主写入MUX 1880输出,而没有数据移位,如表1964的第三行所示。第二写入子阵列1720b的冗余写入MUX 1881也被配置为保持元件以维持clk3的其先前的输出信号并在clk4处仍然通过信号线1925a输出数据(0,2)。因此,数据(0,2)仍然通过信号线1925a输入到第三写入子阵列1720b的冗余写入MUX 1881的冗余输入端C。即,在clk4处,数据(2,0)、(2,1)、(0,2)、(2,2)和(2,3)分别通过信号线1923、1924、1925a、1926和1927分别输入到第三写入子阵列1720c,如表1964的第三行所示。

在clk5处,第三个N条数据(2,0)、(2,1)、(2,2)和(2,3)分别通过信号线1933、1934、1936和1937从第三写入子阵列1720c的N个主写入MUX 1880输出,而没有数据移位,如表1965的第三行所示。第三写入子阵列1720c的冗余写入MUX 1881从其冗余输入端C选择数据(0,2),并通过信号线1935输出数据(0,2),如表1965的第三行所示。结果,在clk5处,第三个N条数据和来自第一个N条数据的数据(0,2)分别通过信号线1933-1937输出到Group 3中的5个工作存储体。即,第三个N条数据和来自第一个N条数据的数据(0,2)存储在Group 3的5个工作存储体中,如表1966的第一行所示。

图20示出了根据本公开的一些方面的示例性存储器件2000的示意图,该存储器件2000使用具有多个读取子阵列的读取MUX阵列在数据输出中实施故障主存储体修复方案。在图20所示的一些实施方式中,在数据输出(例如,读取操作)中,页缓冲器/感测放大器404和列解码器/位线驱动器406(或页缓冲器/感测放大器部分1406和列解码器/位线驱动器部分1506)可以包括分别耦合到8个主存储体702和1个冗余存储体704的9个感测放大器802。存储器件2000可以包括与本文描述的任何合适的存储器件(例如,图17的存储器件1700)的组件类似的组件,并且这里将不重复类似的描述。

I/O电路407可以包括分别通过数据总线1701和包括导线1702、1704、1706、1708、1710、1712、1714、1716和1718的一组布线耦合到每组存储体中的N个主存储体702和冗余存储体704的N+1个输入端。例如,相应的存储体可以通过数据总线1701的相应的数据线和布线组中的相应的导线耦合到I/O电路407的输入端。I/O电路407可以包括读取MUX阵列807。在I/O控制逻辑412的控制下,读取MUX阵列807可以被配置为分别从P组存储体中的P×N个工作存储体引导P×N条数据。在一些实施方式中,读取MUX阵列807可以包括串行施加的P个读取子阵列2020(例如,第一读取子阵列、第二读取子阵列、...、和第P读取子阵列)。下面参考图21A、21C和22A更详细地描述每个读取子阵列2020的示例性结构。

图21A示出了根据本公开的一些方面的示例性存储器件2100的示意图,该存储器件2100使用具有两个读取子阵列的读取MUX阵列在数据输出中实施故障主存储体修复方案。存储器件2100可以包括与本文描述的任何合适的存储器件的组件类似的组件,并且这里将不重复类似的描述。在一些实施方式中,存储器件2100可包括存储单元阵列,存储单元阵列包括P组存储体(P=2),例如Group 0和Group 1。每组存储体可以包括N个主存储体702(例如,N=8)和1个冗余存储体704用于并发数据输入/输出,因此,2个冗余存储体704包括在2组存储体中并由该2组存储体共享。

在图21A所示的一些实施方式中,I/O电路407的读取MUX阵列807可以包括串行施加的第一读取子阵列2020a和第二读取出子阵列2020b。每个读取子阵列2020a或2020b可以包括N个读取MUX 2180(例如,包括读取MUX 2180a、读取MUX 2180b等)。每个读取MUX 2180可以分别包括第一输入端A、第二输入端B、选择端口S、以及输出端Out。

在一些实施方式中,每个读取子阵列2020a或2020b可以具有与图8的读取MUX阵列807的结构类似的结构。例如,图8的读取MUX阵列807的两个实例可以串行级联并被修改以形成图21A的读取MUX阵列807。一般而言,图8的读取MUX阵列807的P个实例可以串行级联并被修改以形成具有P个读取子阵列的读取MUX阵列。

关于第一读取子阵列2020a,第一读取子阵列2020a中的每个读取MUX 2180的第一输入端A通过对应的信号线(例如,2101、2102、2103、2104、2106、2107、2108或2109)耦合到对应的主存储体702。第一读取子阵列2020a中的每个读取MUX 2180的输出端通过对应的信号线(例如,2111,2112,2113,2114,2116、2117、2118或2119)耦合到第二读取子阵列2020b中的对应的读取MUX 2180的第一输入端A。

关于第二读取子阵列2020b,第二读取子阵列2020b中的每个读取MUX 2180的输出端耦合到对应的I/O数据线(例如,2121、2122、2123、2124、2126、2127、2128或2129),并且被配置为输出对应条的数据到对应的I/O数据线。

关于每个读取子阵列2020a或2020b,每个读取MUX 2180的选择端口S可以被配置为接收指示一个输入端(A或B)的选择的读取选择信号。例如,用于每个读取MUX 2180的正偏置读取选择信号,即读取选择信号被启用,可以选择第二输入端B。读取子阵列2020a或2020b中的每个读取MUX 2180的第二输入端B耦合到同一读取子阵列中的相邻读取MUX2180的第一输入端A,或者通过对应的信号线(例如,2105或2115)耦合到冗余存储体704。信号线2115连接到信号线2105并耦合到冗余存储体704。

例如,在每组存储体中,冗余存储体704可以位于N个主存储体702之间,并且N个主存储体702可以分为两组主存储体(例如,分别位于冗余存储体704的左侧和右侧的左侧组主存储体和右侧组主存储体)。每个读取子阵列2020a或2020b中的N个读取MUX 2180可分为分别对应于左侧组主存储体和右侧组主存储体的左侧组读取MUX 2180和右侧组读取MUX2180。在每个读取子阵列2020a或2020b中,左侧组读取MUX 2180中的第一读取MUX(例如,读取MUX 2180b)的第二输入端B通过信号线2105或2115耦合到冗余存储体704,并且左侧组读取MUX 2180中的每个剩余读取MUX 2180的第二输入端B耦合到其右侧的相邻读取MUX 2180的第一输入端A。右侧组读取MUX 2180中的第一读取MUX(例如,读取MUX 2180a)的第二输入端B通过信号线2105或2115耦合到冗余存储体704,并且右侧组读取MUX 2180中的每个剩余读取MUX 2180的第二输入端B的耦合到其左侧的相邻读取MUX 2180的第一输入端A。

图21B示出了根据本公开的一些方面的由图21A中的存储器件2100实施的数据输出中的示例性故障主存储体修复方案。假设Group 0和Group 1总共包括2个故障主存储体。如表2156所示,这2个故障主存储体可以分布在Group 0中(例如,Group 0中的B0_L和B0_H是故障主存储体)。本文中结合参考图20和21A描述图21B。

在一些实施方式中,I/O控制逻辑412的工作存储体逻辑906耦合到寄存器414并且被配置为获得指示来自Group 0的2个故障主存储体的存储体故障信息。工作存储体逻辑906可以从Group 0和Group 1中确定可用于数据输入和输出的2×N个工作存储体。基于所确定的2×N个工作存储体,读取冗余启用逻辑902可被配置为控制I/O电路407以分别从2×N个工作存储体引导2×N条数据。例如,读取冗余启用逻辑902耦合到每个读取MUX 2180,并且被配置为基于确定的2×N个工作存储体来提供多个读取选择信号905给每个读取子阵列2020a或2020b中的读取MUX 2180。例如,多个读取选择信号905可以包括用于第一读取子阵列2020a中的读取MUX 2180的red1_en_b0_l_rd、red1_en_b0_h_rd、red1_en_b1_l_rd、red1_en_b1_h_rd、red1_en_b2_l_rd、red1_en_b2_h_rd、red1_en_b3_l_rd和red1_en_b3_h_rd,并包括用于第二读取子阵列2020b中的读取MUX 2180的red2_en_b0_l_rd、red2_en_b0_h_rd、red2_en_b1_l_rd、red2_en_b1_h_rd、red2_en_b2_l_rd、red2_en_b2_h_rd、red2_en_b3_l_rd和red2_en_b3_h_rd。

假设来自第一个N条数据的7条数据(0,0)、(0,1)、(0,2)、(0,4)、…、和(0,7)(其中N=8)存储在Group 0的7个工作存储体中,包括(1,0)、(1,1)、…、和(1,7)的第二个N条数据和来自第一个N条数据的数据(0,3)存储在Group 1的N+1个工作存储体中,如表2156所示。图21B中的数据读取顺序是从第Group 0到Group 1。表2150显示了在clk0处,来自第一个N条数据的7条数据(0,0)、(0,1)、(0,2)、(0,4)、…、和(0,7)被分别从Group 0的7个工作存储体读取出并加载到信号线2103-2109。表2150还示出了在clk1处,第二个N条数据和来自第一个N条数据的数据(0,3)被分别从Group 1的N+1个工作存储体读取出并加载到信号线2101-2109。

最初,在clk0处,来自第一个N条数据的7条数据(0,0)、(0,1)、(0,2)、(0,4)、...、和(0,7)分别通过信号线2103-2109输入到第一读取子阵列2020a中的读取MUX 2180,如表2150所示。

在clk1,因为Group 0的B0_H是故障主存储体,所以读取冗余启用逻辑902可以启用red1_en_b0_l_rd、...、和red1_en_b1_h_rd,使得第一读取子阵列2020a中的左侧组读取MUX 2180中的每个读取MUX 2180可以在将数据左移一个存储体的情况下从其输入端B输入数据。即,数据(0,0)、(0,1)和(0,2)分别左移一个存储体并由信号线2112-2114输出,如表2152所示。对于其他数据(0,4)、(0,5)、(0,6)和(0,7),可能不需要输入数据移位,使得读取冗余启用逻辑902可以禁用red1_en_b2_l_rd、…、和red1_en_b3_h_rd,使得第一读取子阵列2020a中的右侧组读取MUX 2180中的每个读取MUX 2180可以从其输入端A输入数据,而没有数据移位。然后,数据(0,4)、(0,5)、(0,6)和(0,7)分别由信号线2116-2119输出,如表2152所示。

也在clk1处,第二个N条数据和来自第一个N条数据的数据(0,3)分别通过信号线2101-2109输入到第一读取子阵列2020a的读取MUX 2180,如表2150所示。例如,来自第一个N条数据的数据(0,3)通过信号线2105输入到第一读取子阵列2020a的读取MUX 2180a和2180b。由于信号线2115连接到信号线2105,所以数据(0,3)也通过信号线2115输入到第二读取子阵列2020b的读取MUX 2180a和2180b。结果,在clk1处,第一个N条数据(0,0)、(0,1)、(0,2)、(0,3)、(0,4)、(0,5)、(0,6)、和(0,7)分别通过信号2112-2119输入到第二读取子阵列2020b。

在clk2处,由于Group 0的B0_L也是故障主存储体,所以读取冗余启用逻辑902可以启用red1_en_b0_l_rd、...、和red1_en_b1_h_rd,使得第二读取子阵列2020b中的左侧组读取MUX 2180中的每个读取MUX 2180可以在将数据左移一个存储体的情况下从其输入端B输入数据。即数据(0,0)、(0,1)、(0,2)和(0,3)分别左移一个存储体并由I/O数据线2121-2124输出,如表2154所示。对于其他数据(0,4)、(0,5)、(0,6)和(0,7),可能不需要输入数据移位。然后,数据(0,4)、(0,5)、(0,6)和(0,7)分别通过信号线2126-2129由第二读取子阵列2020b输出,而没有数据移位,如表2154所示。结果,第一个N条数据从读取MUX阵列807成功地输出。

此外,在clk2处,第二个N条数据分别通过信号线2111-2114和2116-2109由第一子阵列2020a的读取MUX 2180输出,而没有数据移位,如表2152所示。第二个N条数据分别通过信号线2111-2114和2116-2119输入到第二读取子阵列2020a的读取MUX 2180。

在clk3处,第二个N条数据分别通过信号线2121-2124和2126-2129由第二读取子阵列2020b的读取MUX 2180输出,而没有数据移位,如表2154所示。结果,第二个N条数据从读取MUX阵列807成功地输出。

图21C示出了根据本公开的一些方面的使用具有两个读取子阵列的读取MUX阵列在数据输出中实施故障主存储体修复方案的另一示例性存储器件2190的示意图。存储器件2190可以包括与本文描述的任何合适的存储器件(例如,图21A的存储器件2100)的那些组件类似的组件,并且这里将不重复类似的描述。

举例来说,图21C中的Group 0和Group 1中的每个都可以包括N=4个主存储体702和1个冗余存储体704,用于并发数据输入/输出。I/O电路407的读取MUX阵列807可以包括第一读取子阵列2020a和第二读取子阵列2020b。每个读取子阵列2020a或2020b可以包括N=4个读取MUX 2180。

在图21C中所示的每组存储体中,N个主存储体702可以位于冗余存储体704的左侧,并且可以被称为左侧组主存储体。每个读取子阵列2020a或2020b中的N个读取MUX 2180可以被称为对应于左侧组主存储体的左侧组读取MUX 2180。在每个读取子阵列2020a或2020b中,左侧组读取MUX 2180中的第一读取MUX(例如,读取MUX 2180b)的第二输入端B通过信号线2105或2115耦合到冗余存储体704。左侧组读取MUX 2180中的每个剩余读取MUX2180的第二输入端B耦合到其右侧的相邻读取MUX 2180的第一输入端A。

在一些其他实施方式中,N个主存储体702可以位于冗余存储体704的右侧,并且N个主存储体702可以被称为右侧组主存储体。每个读取子阵列2020a或2020b中的N个读取MUX 2180可被称为对应于右侧组主存储体的右侧组读取MUX 2180。在每个读取子阵列2020a或2020b中,右侧组读取MUX 2180中的第一读取MUX(例如,读取MUX 2180a)的第二输入端B通过信号线2105或2115耦合到冗余存储体704。右侧组读取MUX 2180中的每个剩余读取MUX 2180的第二输入端B耦合到其左侧的相邻读取MUX 2180的第一输入端A。

图22A示出了根据本公开的一些方面的示例性存储器件2200的示意图,该存储器件2200使用具有三个读取子阵列的读取MUX阵列在数据输出中实施故障主存储体修复方案。存储器件2200可以包括与本文描述的任何合适的存储器件的组件类似的组件,并且这里将不重复类似的描述。在一些实施方式中,存储器件2200可包括存储单元阵列,存储单元阵列包括P组存储体(P=3),例如Group 0、Group 1和Group 2。每组存储体可以包括N个主存储体702(例如,N=4)和1个冗余存储体704用于并发数据输入/输出,因此,3组存储体中包括并共享3个冗余存储体704。I/O电路407的读取MUX阵列807可以包括第一读取子阵列2020a、第二读取子阵列2020b、和第三读取子阵列2020c。每个读取子阵列2020a、2020b或2020c可以包括N个读取MUX 2180(例如,N=4)。每个读取MUX 2180可以分别包括第一输入端A、第二输入端B、选择端口S和输出端Out。

关于第一读取子阵列2020a,第一读取子阵列2020a中的每个读取MUX 2180的第一输入端A通过对应的信号线(例如,2203、2204、2206或2207)耦合到对应的主存储体702。第一读取子阵列2020a中的每个读取MUX 2180的输出端通过对应的信号线(例如,2213、2214、2216、或2217)耦合到第二读取子阵列2020b中的对应的读取MUX 2180的第一输入端A。关于第二读取子阵列2020b,第二读取子阵列2020b中的每个读取MUX 2180的输出端通过对应的信号线(例如,2223、2224、2226或2227)耦合到第三读取子阵列2020c中的对应的读取MUX2180的第一输入端A。关于第三读取子阵列2020c,第三读取子阵列2020c中的每个读取MUX2180的输出端耦合到对应的I/O数据线(例如,2233、2234、2236、或2237),并且被配置为输出对应条的数据到对应的I/O数据线。

关于每个读取子阵列2020a、2020b或2020c,每个读取MUX 2180的选择端口S可以被配置为接收指示一个输入端(A或B)的选择的读取选择信号。读取子阵列2020a、2020b、或2020c中的每个读取MUX 2180的输入端B耦合到相同的读取子阵列中的相邻读取MUX 2180的第一输入端A,或通过对应的信号线(例如,2205、2215或2225)耦合到冗余存储体704。信号线2215和2225连接到信号线2205并耦合到冗余存储体704。

例如,在每个读取子阵列2020a、2020b或2020c中,左侧组读取MUX 2180中的第一读取MUX(例如,读取MUX 2180b)的第二输入端B通过信号线2205、2215或2225耦合到冗余存储体704。左侧组读取MUX 2180中的每个剩余读取MUX 2180的第二输入端B耦合到其右侧的相邻读取MUX 2180的第一输入端A。右侧组读取MUX 2180中的第一读取MUX(例如,读取MUX2180a)的第二输入端B通过信号线2205、2215或2225耦合到冗余存储体704。右侧组读取MUX2180中的每个剩余读取MUX 2180的第二输入端B耦合到其左侧的相邻读取MUX 2180的第一输入端A。

图22B-22C示出了根据本公开的一些方面的由图21A中的存储器件实施的数据输出中的示例性故障主存储体修复方案。参考图22B,假设Group 0、Group 1和Group 2总共包括3个故障主存储体。如表2256所示,3个故障主存储体可以分布在Group 0中(例如,Group0中的B0_L、B0_H和B1_L是故障主存储体)。本文中结合参考图9、20和22A来描述图22B。

在一些实施方式中,I/O控制逻辑412的工作存储体逻辑906耦合到寄存器414并且被配置为获得指示来自Group 0的3个故障主存储体的存储体故障信息。工作存储体逻辑906可以从Group 0、Group 1和Group 2中确定可用于数据输入和输出的3×N个工作存储体。基于所确定的3×N个工作存储体,读取冗余启用逻辑902可被配置为控制I/O电路407以分别从3×N个工作存储体引导3×N条数据。例如,读取冗余启用逻辑902耦合到每个读取MUX 2180,并且被配置为基于所确定的3×N个工作存储体提供多个读取选择信号905到每个读取子阵列2020a、2020b或2020c中的读取MUX 2180。例如,多个读取选择信号905可以包括用于第一读取子阵列2020a中的读取MUX 2180的red1_en_b0_l_rd、red1_en_b0_h_rd、red1_en_b1_l_rd和red1_en_b1_h_rd,用于第二读取子阵列2020b中的读取MUX 2180的red2_en_b0_l_rd、red2_en_b0_h_rd、red2_en_b1_l_rd和red2_en_b1_h_rd,以及用于第三读取子阵列2020c中的读取MUX 2180的red3_en_b0_l_rd、red3_en_b0_h_rd、red3_en_b1_l_rd和red3_en_b1_h_rd。

假设来自第一个N条数据(其中N=4)的数据(0,2)和(0,3)存储在Group 0的2个工作存储体中,包括(1,0)、(1,1)、(1,2)、和(1,3)的第二个N条数据和来自第一个N条数据的数据(0,0)存储在Group 1的N+1个工作存储体中,并且包括(2,0)、(2,1)、(2,2)、和(2,3)的第三个N个条数据和来自第一个N条数据的数据(0,1)存储在Group 2的N+1个工作存储体中,如表2256所示。图22B中的数据读取顺序是从第Group 0到Group 1,并且再到Group 2。

表2250示出了在clk0处,来自第一个N条数据的数据(0,2)和(0,3)分别从Group 0的2个工作存储体读取出并加载到信号线2205和2207。表2250还示出了在clk1处,第二个N条数据和来自第一个N条数据的数据(0,0)分别从Group 1的N+1工作存储体读取出并加载到信号线2203-2107年。表2250还示出了在clk2处,第三个N条数据和来自第一个N条数据的数据(0,1)分别从Group 2的N+1个工作存储体读取出并加载到信号线2203-2107。

最初,在clk0处,来自第一个N条数据的数据(0,2)和(0,3)分别通过信号线2205和2207输入到第一读取子阵列2020a读取MUX 2180,如如表2250所示。

在clk1处,因为Group 0的B1_L是故障主存储体,所以输入到第一读取子阵列2020a中的读取MUX 2180a的数据(0,2)可以被右移一个存储体,并且通过通过信号线2216由读取MUX 2180a输出,如表2252所示。对于数据(0,3),可能不需要输入数据移位,使得第一读取子阵列2020a中的右侧组读取MUX 2180中的对应的读取MUX 2180可以从其输入端A选择数据(0,3),而没有数据移位。然后,数据(0,2)和(0,3)分别由信号线2216和2217输出,如表2252所示。

也在clk1处,第二个N条数据和来自第一个N条数据的数据(0,0)分别通过信号线2203至2207输入到第一读取子阵列2020a的读取MUX 2180,如表2250所示。例如,来自第一个N条数据的数据(0,0)通过信号线2205输入到第一读取子阵列2020a的读取MUX 2180a和2180b。由于信号线2215连接到信号线2205,所以数据(0,0)也通过信号线2215输入到第二读取子阵列2020b的读取MUX 2180a和2180b。结果,在clk1处,来自第一个N条数据的数据(0,0)、(0,2)和(0,3)分别通过信号2215-2217输入到第二读取子阵列2020b。

在clk2处,因为Group 0的B0_H是故障主存储体,所以数据(0,0)可以左移一个存储体并通过信号线2224由第二读取子阵列2020b中的读取MUX 2180b输出,如表2254所示。对于数据(0,2)和(0,3),可能不需要输入数据移位,使得第二读取子阵列2020b中的右侧组读取MUX 2180中的对应的读取MUX 2180可以从输入端A选择数据(0,2)和(0,3),而没有数据移位。然后,数据(0,0)、(0,2)和(0,3)分别由信号线2224、2226和2227输出,如表2254所示。

也在clk2处,第二个N条数据分别通过信号线2213、2214、2216、和2217由第一读取子阵列2202a的读取MUX 2180输出,而没有数据移位,如表2252所示。第二个N条数据分别通过信号线2213、2214、2216和2217输入到第二读取子阵列2020b的读取MUX 2180。

也在clk2处,第三个N条数据和来自第一个N条数据的数据(0,1)分别通过信号线2203-2207输入到第一读取子阵列2202a的读取MUX 2180,如表2250所示。例如,来自第一个N条数据的数据(0,1)通过信号线2205输入到第一读取子阵列2020a的读取MUX 2180a和2180b。由于信号线2225连接到信号线2205,所以数据(0,1)也通过信号线2225输入到第三读取子阵列2020c的读取MUX 2180a和2180b。结果,在clk2处,来自第一个N条数据的数据(0,0)、(0,1)、(0,2)和(0,3)分别通过信号线2224-2227输入到第三读取子阵列2020c,如表2254所示。

在clk3处,因为Group 0的B0_L也是故障主存储体,所以数据(0,0)和(0,1)可以左移一个存储体并通过I/O数据线2233和2234由第三读取子阵列2020c中的对应的读取MUX2180输出,如表2255所示。对于数据(0,2)和(0,3),可能不需要输入数据移位,使得第三读取子阵列2020b中的对应的读取MUX 2180可以分别通过I/O数据线2236和2237输出数据(0,2)和(0,3),而没有数据移位,如表2255所示。结果,第一个N条数据从读取MUX阵列807成功地输出。

也在clk3处,第二个N条数据分别通过信号线2223、2224、2226和2227由第二读取子阵列2020b的读取MUX 2180输出,而没有数据移位,如表2254所示。第二个N条数据分别通过信号线2223、2224、2226和2227输入到第三读取子阵列2020c的读取MUX 2180。

也在clk3处,第三个N条数据分别通过信号线2213、2214、2216、和2217由第一读取子阵列2020a的读取MUX 2180输出,而没有数据移位,如表2252所示。第三个N条数据分别通过信号线2213、2214、2216和2217输入到第二读取子阵列2020b的读取MUX 2180。

在clk4处,第二个N条数据分别通过数据线2233、2234、2236、2237由第三子阵列2020c的读取MUX 2180输出,而没有数据移位,如表2255所示。结果,第二个N条数据从读取MUX阵列807成功地输出。

也在clk4处,第三个N条数据分别通过信号线2223、2224、2226和2227由第二读取子阵列2020b的读取MUX 2180输出,而没有数据移位,如表2254所示。第三个N条数据分别通过信号线2223、2224、2226和2227输入到第三读取子阵列2020c的读取MUX 2180。

在clk5处,第三个N条数据分别通过数据线2233、2234、2236和2237由第三读取子阵列2020c的读取MUX 2180输出,而没有数据移位,如表2255所示。结果,第三个N条数据从读取MUX阵列807成功地输出。

参考图22C,假设Group 0、Group 1和Group 2总共包括3个故障主存储体。如表2266所示,3个故障主存储体可以包括Group 0的B0_L和B1_L以及Group 1的B1_L。在此结合参考图22A来描述图22C。表2266显示了来自第一个N条数据(其中N=4)的数据(0,0)、(0,1)和(0,3)存储在Group 0的3个工作存储体中,包括(1,0)、(1,1)、(1,2)和(1,3)的第二个N条数据存储在Group 1的N个工作存储体中,且包括(2,0)、(2,1)、(2,2)和(2,3)的第三个N条数据和来自第一个N条数据的数据(0,2)存储在Group 2的N+1个工作存储体中,如表2266所示。图22C中的数据读取顺序是从Group 0到Group 1,再到Group 2。

表2260示出了在clk0处,来自第一个N条数据的数据(0,0)、(0,1)和(0,3)分别从Group 0的3个工作存储体读取出并加载到信号线2204、2205和2207。表2260还示出了在clk1处,第二个N条数据分别从Group 1的N个工作存储体读取出并加载到信号线2203-2105和2207。表2260还示出了在clk2处,第三个N条数据和来自第一个N条数据的数据(0,2)分别从Group 2的N+1个工作存储体读取出并加载到信号线2203-2107。

最初,在clk0处,来自第一个N条数据的数据(0,0)、(0,1)和(0,3)分别通过信号线2204、2205和2207输入到第一读取子阵列2020a的读取MUX 2180,如表2260所示。

在clk1处,因为Group 0的B0_L是故障主存储体,所示数据(0,0)和(0,1)可以由第一读取子阵列2020a左移一个存储体并通过信号线2213-2214输出,如表2262所示。对于数据(0,3),可能不需要输入数据移位,使得第一读取子阵列2020a可以通过信号线2217输出数据(0,3),而没有数据移位,如表2262所示。结果,在clk1处,数据(0,0)、(0,1)和(0,3)分别由信号线2213、2214和2217输出,如表2262所示。

此外,在clk1处,第二个N条数据分别通过信号线2203-2205和2207输入到第一读取子阵列2020a的读取MUX 2180,如表2260所示。

在clk2处,对于数据(0,0)、(0,1)和(0,3),可能不需要输入数据移位,使得第二读取子阵列2020b可以分别通过信号线2223、2224和2227输出数据(0,0)、(0,1)和(0,3),而没有数据移位,如表2264所示。

也在clk2处,因为Group 1的B1_L是故障主存储体,所以第二个N条数据的数据(1,2)可以由第一读取子阵列2202a中的读取MUX 2180a右移一个存储体并通过信号线2216输出,如表2262所示。对于数据(1,0)、(1,1)、和(1,3),可能不需要输入数据移位,使得第一读取子阵列2020a可以分别通过信号线2213-2214和2227输出数据(1,0)、(1,1)和(1,3),而没有数据移位。结果,数据(1,0)、(1,1)、(1,2)和(1,3)分别由信号线2213-2214和2216-227输出,如表2262所示。

也在clk2处,第三个N条数据和来自第一个N条数据的数据(0,2)分别通过信号线2203-2207输入到第一读取子阵列2020a的读取MUX 2180,如表2260所示。例如,来自第一个N条数据的数据(0,2)通过信号线2205输入到第一读取子阵列2020a的读取MUX 2180a和2180b。由于信号线2225连接到信号线2205,所以数据(0,2)也通过信号线2225输入到第三读取子阵列2020c的读取MUX 2180a和2180b。结果,在clk2处,来自第一个N条数据的数据(0,0)、(0,1)、(0,2)和(0,3)分别通过信号线2224-2225和2227输入到第三读取子阵列2020c,如表2264所示。

在clk3处,因为Group 0的B1_L也是故障主存储体,所以来自第一个N条数据的数据(0,2)可以被第三读取子阵列2020c的读取MUX 2180a右移一个存储体并通过I/O数据线2236输出,如表2265所示。对于数据(0,0)、(0,1)、和(0,3),可能不需要输入数据移位,使得第三读取子阵列2020c可以从输入端A选择数据(0,0)、(0,1)和(0,3)并分别通过I/O数据线2233-2234和2237输出数据(0,0)、(0,1)和(0,3),而没有数据移位,如表2265所示。结果,第一个N条数据从读取MUX阵列807成功地输出。

也在clk3处,第二个N条数据分别通过信号线2223、2224、2226和2227由第二读取子阵列2020b的读取MUX 2180输出,而没有数据移位,如表2264所示。第二个N条数据分别通过信号线2223、2224、2226和2227输入到第三读取子阵列2020c的读取MUX 2180。

也在clk3处,第三个N条数据分别通过信号线2213、2214、2216、和2217由第一读取子阵列2020a的读取MUX 2180输出,而没有数据移位,如表2262所示。第三个N条数据分别通过信号线2213、2214、2216和2217输入到第二读取子阵列2020b的读取MUX 2180。

在clk4处,第二个N条数据分别通过数据线2233、2234、2236、2237由第三读取子阵列2020c的读取MUX 2180输出,而没有数据移位,如表2265所示。结果,第二个N条数据从读取MUX阵列807成功地输出。也在clk4处,第三个N条数据分别通过信号线2223、2224、2226和2227由第二读取子阵列2020b的读取MUX 2180输出,而没有数据移位,如表2264所示。第三个N条数据分别通过信号线2223、2224、2226和2227输入到第三读取子阵列2020c的读取MUX2180。

在clk5处,第三个N条数据分别通过数据线2233、2234、2236、2237由第三读取子阵列2020c的读取MUX 2180输出,而没有数据移位,如表2265所示。结果,第三个N条数据从读取MUX阵列807成功地输出。

结合参考上述图17-22C,本文公开了存储器件中的I/O电路407的示例性一般结构。存储器件可以包括存储单元阵列,该存储单元阵列包括P组存储体。每组存储体可以包括N个主存储体702和冗余存储体704用于并发数据输入/输出,因此,P组存储体中包括并共享P个冗余存储体。

在一些实施方式中,存储单元阵列包括第一级存储元件,并且第一级存储元件包括多个第二级存储元件,第二级存储元件中的一个包括P组存储体。I/O电路407和I/O控制逻辑412由多个第二级存储元件共享。例如,第一级存储元件是包括多个面的管芯。包括P组存储体的第二级存储单元是管芯中的面,并且该面包括来自P组存储体的P×N个工作存储体。I/O电路407耦合到全局数据总线,并且被配置为分别通过全局数据总线和面内的一条或多条分支数据总线分别向或从面中的P×N个工作存储体引导P×N条数据。

I/O电路407可以包括写入MUX阵列707。在一些实施方式中,写入MUX阵列707可以包括串行施加的P个写入子阵列。例如,写入MUX阵列707中的写入子阵列可以表示为第p写入子阵列,其中p是正整数且1≤p≤P。写入MUX阵列707中的每个写入子阵列可以包括冗余写入MUX 1881和N个主写入MUX 1880。每个主写入MUX 1880和每个冗余写入MUX 1881可以分别包括第一输入端A、第二输入端B、选择端口S和输出端。

对于2≤p≤P,第p写入子阵列中的冗余写入MUX 1881还可以包括p-1个冗余输入端(S)。例如,如图19A所示,第一写入子阵列中的冗余写入MUX 1881不包括任何冗余输入端,第二写入子阵列中的冗余写入MUX 1881可以包括第一冗余输入端C,第三写入子阵列中的冗余写入MUX 1881可以包括第一冗余输入端C和第二冗余输入端D,等等。

对于1≤p<P,第p写入子阵列中的每个主写入MUX 1880的输出端耦合到第(p+1)写入子阵列中的对应的主写入MUX 1880的第一输入端A。也对于1≤p<P,第p写入子阵列中的冗余写入MUX 1881的输出端耦合到每个第(p+q)写入子阵列中的对应的冗余写入MUX 1881的第q冗余输入端,其中1≤q≤P-p,其中q是正整数。对于p=P,第p写入子阵列中的N个主写入MUX 1880和冗余写入MUX 1881的输出端分别耦合到对应的组的存储体中的N个主存储体702和冗余存储体704。

对于p=1,第p写入子阵列中的每个主写入MUX 1880的第一输入端A耦合到对应的I/O数据线,并且被配置为从对应的I/O数据线接收对应条的数据。对于1≤p≤P,第p写入子阵列中的每个主写入MUX 1880的第二输入端B耦合到Vdd的信号线或第p写入子阵列中的对应的相邻主写入MUX 1880的第一输入端A。

在一些实施方式中,第p写入子阵列1720中的冗余写入MUX 1881位于第p写入子阵列中的N个主写入MUX 1880之间,如图18A和19A所示。对于1≤p≤P,第p写入子阵列中的冗余写入MUX 1881的第一输入端A和第二输入端B分别耦合到第p写入子阵列中的两个相邻主写入MUX 1880的第一输入端。

在一些其它实施方式中,第p写入子阵列中的冗余写入MUX 1881位于第p写入子阵列中的N个主写入MUX 1880的一侧,如图18D所示。对于1≤p≤P,第p写入子阵列中的冗余写入MUX 1881的第一输入端A和第二输入端B中的一个耦合到第p写入子阵列中的相邻主写入MUX 1880的第一输入端A。第p写入子阵列中的冗余写入MUX 1881的第一输入端A和第二输入端B中的另一个耦合到Vdd信号线。

此外,I/O电路407可以包括读取MUX阵列807,读取MUX阵列807耦合到每组存储体并且被配置为分别从P×N个工作存储体引导P×N条数据。读取MUX阵列807可以包括串行施加的P个读取子阵列,并且每个读取子阵列可以包括N个读取MUX 2180,每个读取MUX 2180分别包括第一输入端A、第二输入端B、选择端口S和输出端Out。例如,读取MUX阵列807中的读取子阵列可以表示为第p读取子阵列,其中1≤p≤P。

对于1≤p<P,第p读取子阵列中的每个读取MUX 2180的输出端耦合到第(p+1)读取子阵列中的对应的读取MUX 2180的第一输入端A。对于p=P,第p读取子阵列中的每个读取MUX 2180的输出端耦合到对应的I/O数据线,并且被配置为将对应条的数据输出到对应的I/O数据线。

对于p=1,第p个读取子阵列中的每个读取MUX 2180的第一输入端A耦合到N个主存储体中的对应的主存储体。对于1≤p≤P,第p读取子阵列中的每个读取MUX 2180的第二输入端B耦合到第p读取子阵列中的对应的相邻读取MUX 2180的第一输入端A或冗余存储体。

在一些实施方式中,假设P组存储体包括K个故障主存储体,其中K是不大于P的正整数(1≤K≤P)。K个故障主存储体可以分布在来自P组存储体的单组存储体(或两组或更多组存储体)中。I/O控制逻辑412可以被配置为基于指示来自P组存储体的K个故障主存储体的存储体故障信息来确定来自P组存储体的P×N个工作存储体。P×N个工作存储体可以包括P个冗余存储体中的K个冗余存储体。I/O控制逻辑412还可以被配置为控制I/O电路407以分别向或从P×N个工作存储体引导P×N条数据。

例如,假设第一组存储体包括K个故障主存储体,而其他组存储体不包括任何故障主存储体。I/O控制逻辑412可以被配置为:(1)向或从K个冗余存储体引导第一个N条数据中的K条数据;(2)向或从第一组存储体中的N-K个工作主存储体引导第一个N条数据中的剩余的N-K条数据;以及(3)向或从其他组存储体中的相应的工作主存储体引导意图存储在该其他组存储体中的其他条数据。

图23示出了根据本公开的一些方面的用于操作存储器件的示例性方法2300的流程图,该存储器件在数据输入/输出中实施故障主存储体修复方案。存储器件可以是本文公开的任何合适的存储器件。方法2300可由I/O控制逻辑412实施。应当理解的是,方法2300中所示的操作可以不是详尽的,并且也可以在任何所示的操作之前、之后或之间执行其他操作。此外,一些操作可以同时执行,或以与图23所示不同的顺序执行。

参考图23,方法2300开始于操作2302,其中获得指示来自P组存储体的K个故障主存储体的存储体故障信息。该K个故障主存储体可以通过存储器件的制造后测试识别。例如,工作存储体逻辑906可以在操作存储器件之前从寄存器414获得存储体故障信息。

方法2300继续至操作2304,如图23所示,其中P×N个工作存储体是基于存储体故障信息从P组存储体确定的。例如,工作存储体逻辑906可以从P组存储体确定包括K个冗余存储体和剩余的主存储体的P×N个工作存储体。

方法2300继续至操作2306,如图23所示,其中分别向或从P×N个工作存储体引导P×N条数据。

根据本公开的一方面,一种存储器件,包括:存储单元阵列、I/O电路以及耦合到所述I/O电路的I/O控制逻辑。所述存储单元阵列包括P组存储体。每组存储体包括冗余存储体和N个主存储体,使得P个冗余存储体包括在所述P组存储体中并由所述P组存储体共享。P和N中的每个都是正整数。所述I/O电路耦合到所述P组存储体并且被配置为分别向P×N个工作存储体或从所述P×N个工作存储体引导P×N条数据。所述I/O控制逻辑被配置为基于指示来自所述P组存储体的K个故障主存储体的存储体故障信息,从所述P组存储体确定所述P×N个工作存储体。所述P×N个工作存储体包括所述P个冗余存储体中的K个冗余存储体。K是不大于P的正整数。所述I/O控制逻辑被配置为控制所述I/O电路分别向所述P×N个工作存储体或从所述P×N个工作存储体引导P×N条数据。

在一些实施方式中,所述I/O电路包括写入MUX阵列,所述写入MUX阵列耦合到每组存储体并且被配置为将所述P×N条数据分别引导至所述P×N个工作存储体。

在一些实施方式中,所述写入MUX阵列包括串行施加的P个写入子阵列。每个写入子阵列包括冗余写入MUX和N个主写入MUX。

在一些实施方式中,每个主写入MUX和每个冗余写入MUX分别包括第一输入端、第二输入端和输出端。对于2≤p≤P,所述写入MUX阵列的第p写入子阵列中的冗余写入MUX还包括p-1个冗余输入端,其中,p是正整数。

在一些实施方式中,对于1≤p<P,所述第p写入子阵列中的每个主写入MUX的输出端耦合到第(p+1)写入子阵列中的对应的主写入MUX的第一输入端。所述第p写入子阵列中的所述冗余写入MUX的输出端耦合到每个第(p+q)写入子阵列中的对应的冗余写入MUX的第q冗余输入端,其中1≤q≤P-p,其中q是正整数。对于p=P,所述第p写入子阵列中的所述N个主写入MUX和所述冗余写入MUX的输出端分别耦合到所述N个主存储体和所述冗余存储体。

在一些实施方式中,对于p=1,所述第p写入子阵列中的每个主写入MUX的第一输入端耦合到对应的I/O数据线并且被配置为从所述对应的I/O数据线接收对应条的数据。对于1≤p≤P,所述第p写入子阵列中的每个主写入MUX的第二输入端耦合到Vdd信号线或所述第p写入子阵列中的对应的相邻主写入MUX的第一输入端。

在一些实施方式中,对于1≤p≤P,所述第p写入子阵列中的所述冗余写入MUX位于所述第p写入子阵列中的所述N个主写入MUX之间。所述第p写入子阵列中的所述冗余写入MUX的第一输入端和第二输入端分别耦合到所述第p写入子阵列中的两个相邻主写入MUX的第一输入端。

在一些实施方式中,对于1≤p≤P,所述第p写入子阵列中的所述冗余写入MUX位于所述第p写入子阵列中的所述N个主写入MUX的一侧上。所述第p写入子阵列中的所述冗余写入MUX的第一输入端和第二输入端中的一个耦合到所述第p写入子阵列中的相邻主写入MUX的第一输入端。所述第p写入子阵列中的所述冗余写入MUX的所述第一输入端和所述第二输入端中的另一个耦合到Vdd信号线。

在一些实施方式中,所述I/O电路包括读取MUX阵列,所述MUX阵列耦合到每组存储体并且被配置为分别从所述P×N个工作存储体引导所述P×N条数据。

在一些实施方式中,所述读取MUX阵列包括串行施加的P个读取子阵列。每个读取子阵列包括N个读取MUX。每个读取MUX分别包括第一输入端、第二输入端、和输出端。

在一些实施方式中,对于1≤p<P,所述第p读取子阵列中的每个读取MUX的输出端耦合到第(p+1)读取子阵列中的对应的读取MUX的第一输入端,其中p为正整数。对于p=P,所述第p读取子阵列中的每个读取MUX的输出端耦合到对应的I/O数据线并且被配置为将对应条的数据输出到所述对应的I/O数据线。

在一些实施方式中,对于p=1,所述第p读取子阵列中的每个读取MUX的第一输入端耦合到所述N个主存储体中的对应的主存储体。对于1≤p≤P,所述第p读取子阵列中的每个读取MUX的第二输入端耦合到所述冗余存储体或所述第p读取子阵列中的对应的相邻读取MUX的第一输入端。

在一些实施方式中,所述K个故障主存储体分布在来自所述P组存储体的一组或多组存储体中。

在一些实施方式中,所述存储单元阵列包括第一级存储元件。所述第一级存储元件包括多个第二级存储元件,所述多个第二级存储元件中的一个包括所述P组存储体。所述I/O电路和所述I/O控制逻辑由所述多个第二级存储元件共享。

在一些实施方式中,所述第一级存储元件为包括多个面的管芯。包括所述P组存储体的第二级存储元件是所述管芯中的面,并且所述面包括来自所述P组存储体的所述P×N个工作存储体。所述I/O电路耦合到全局数据总线,并且被配置为通过所述全局数据总线和所述面中的一条或多条分支数据总线向所述面中的所述P×N个工作存储体或从所述面中的所述P×N个工作存储体引导所述P×N条数据。

在一些实施方式中,N=4或8。所述存储器件包括3D NAND闪存器件。

根据本公开的另一方面,一种系统包括:存储器件,被配置为存储数据;以及存储控制器,耦合到所述存储器件并且被配置为控制所述存储器件。所述存储器件包括:存储单元阵列、I/O电路以及耦合到所述I/O电路的I/O控制逻辑。所述存储单元阵列包括P组存储体。每组存储体包括冗余存储体和N个主存储体,使得P个冗余存储体包括在所述P组存储体中并由所述P组存储体共享。P和N中的每个都是正整数。所述I/O电路耦合到所述P组存储体并且被配置为分别向P×N个工作存储体或从所述P×N个工作存储体引导P×N条数据。所述I/O控制逻辑被配置为基于指示来自所述P组存储体的K个故障主存储体的存储体故障信息,从所述P组存储体确定所述P×N个工作存储体。所述P×N个工作存储体包括所述P个冗余存储体中的K个冗余存储体。K是不大于P的正整数。所述I/O控制逻辑还被配置为控制所述I/O电路分别向所述P×N个工作存储体或从所述P×N个工作存储体引导P×N条数据。

在一些实施方式中,所述系统还包括主机,所述主机耦合到所述存储控制器并且被配置为发送或接收所述数据。

在一些实施方式中,所述I/O电路包括写入MUX阵列,所述写入MUX阵列耦合到每组存储体并且被配置为将所述P×N条数据分别引导至所述P×N个工作存储体。

在一些实施方式中,所述写入MUX阵列包括串行施加的P个写入子阵列。每个写入子阵列包括冗余写入MUX和N个主写入MUX。

在一些实施方式中,每个主写入MUX和每个冗余写入MUX分别包括第一输入端、第二输入端和输出端。对于2≤p≤P,所述写入MUX阵列的第p写入子阵列中的冗余写入MUX还包括p-1个冗余输入端,其中,p是正整数。

在一些实施方式中,对于1≤p<P,所述第p写入子阵列中的每个主写入MUX的输出端耦合到第(p+1)写入子阵列中的对应的主写入MUX的第一输入端。所述第p写入子阵列中的所述冗余写入MUX的输出端耦合到每个第(p+q)写入子阵列中的对应的冗余写入MUX的第q冗余输入端,其中1≤q≤P-p,其中q是正整数。对于p=P,所述第p写入子阵列中的所述N个主写入MUX和所述冗余写入MUX的输出端分别耦合到所述N个主存储体和所述冗余存储体。

在一些实施方式中,对于p=1,所述第p写入子阵列中的每个主写入MUX的第一输入端耦合到对应的I/O数据线并且被配置为从所述对应的I/O数据线接收对应条的数据。对于1≤p≤P,所述第p写入子阵列中的每个主写入MUX的第二输入端耦合到Vdd信号线或所述第p写入子阵列中的对应的相邻主写入MUX的第一输入端。

在一些实施方式中,对于1≤p≤P,所述第p写入子阵列中的所述冗余写入MUX位于所述第p写入子阵列中的所述N个主写入MUX之间。所述第p写入子阵列中的所述冗余写入MUX的第一输入端和第二输入端分别耦合到所述第p写入子阵列中的两个相邻主写入MUX的第一输入端。

在一些实施方式中,对于1≤p≤P,所述第p写入子阵列中的所述冗余写入MUX位于所述第p写入子阵列中的所述N个主写入MUX的一侧上。所述第p写入子阵列中的所述冗余写入MUX的第一输入端和第二输入端中的一个耦合到所述第p写入子阵列中的相邻主写入MUX的第一输入端。所述第p写入子阵列中的所述冗余写入MUX的所述第一输入端和所述第二输入端中的另一个耦合到Vdd信号线。

在一些实施方式中,所述I/O电路包括读取MUX阵列,所述MUX阵列耦合到每组存储体并且被配置为分别从所述P×N个工作存储体引导所述P×N条数据。

在一些实施方式中,所述读取MUX阵列包括串行施加的P个读取子阵列。每个读取子阵列包括N个读取MUX。每个读取MUX分别包括第一输入端、第二输入端、和输出端。

在一些实施方式中,对于1≤p<P,所述第p读取子阵列中的每个读取MUX的输出端耦合到第(p+1)读取子阵列中的对应的读取MUX的第一输入端,其中p为正整数。对于p=P,所述第p读取子阵列中的每个读取MUX的输出端耦合到对应的I/O数据线并且被配置为将对应条的数据输出到所述对应的I/O数据线。

在一些实施方式中,对于p=1,所述第p读取子阵列中的每个读取MUX的第一输入端耦合到所述N个主存储体中的对应的主存储体。对于1≤p≤P,所述第p读取子阵列中的每个读取MUX的第二输入端耦合到所述冗余存储体或所述第p读取子阵列中的对应的相邻读取MUX的第一输入端。

在一些实施方式中,所述K个故障主存储体分布在来自所述P组存储体的一组或多组存储体中。

在一些实施方式中,所述存储单元阵列包括第一级存储元件。所述第一级存储元件包括多个第二级存储元件,所述多个第二级存储元件中的一个包括所述P组存储体。所述I/O电路和所述I/O控制逻辑由所述多个第二级存储元件共享。

在一些实施方式中,所述第一级存储元件为包括多个面的管芯。包括所述P组存储体的第二级存储元件是所述管芯中的面,并且所述面包括来自所述P组存储体的所述P×N个工作存储体。所述I/O电路耦合到全局数据总线,并且被配置为通过所述全局数据总线和所述面中的一条或多条分支数据总线向所述面中的所述P×N个工作存储体或从所述面中的所述P×N个工作存储体引导所述P×N条数据。

在一些实施方式中,N=4或8。所述存储器件包括3D NAND闪存器件。

根据本公开的又一方面,提供了一种用于操作存储器件的方法。所述存储器件包括存储单元阵列。所述存储单元阵列包括P组存储体。每组存储体包括冗余存储体和N个主存储体,使得P个冗余存储体包括在所述P组存储体中。P和N中的每个都是正整数。基于指示来自所述P组存储体的K个故障主存储体的存储体故障信息,从所述P组存储体确定P×N个工作存储体。所述P×N个工作存储体包括所述P个冗余存储体中的K个冗余存储体。K是不大于P的正整数。分别向所述P×N个工作存储体或从所述P×N个工作存储体引导P×N条数据。

在一些实施方式中,获得指示所述K个故障主存储体的所述存储体故障信息。

在一些实施方式中,P不小于2。

在一些实施方式中,所述K个故障主存储体分布在来自所述P组存储体的一组或多组存储体中。

在一些实施方式中,所述P个冗余存储体中的每个由所述P组存储体共享。

在一些实施方式中,所述存储器件还包括I/O电路。所述I/O电路包括分别耦合到每组存储体的写入MUX阵列和读取MUX阵列。所述写入MUX阵列包括串行施加的P个写入子阵列。所述读取MUX阵列包括串行施加的P个读取子阵列。引导所述P×N条数据包括:通过所述P个写入子阵列,分别向所述P×N个工作存储体引导所述P×N条数据;以及通过所述P个读取子阵列,分别从所述P×N个工作存储体引导所述P×N条数据。

在一些实施方式中,N=4或8。所述存储器件包括三维(3D)NAND闪存器件。

具体实施方式的前述描述可以容易地修改和/或适用于各种应用。因此,基于本文呈现的教导和指导,意图这样的适应和修改在所公开的实施方式的等同物的含义和范围内。

本公开的广度和范围不应受任何上述示例性实施方式的限制,而应仅根据所附权利要求及其等同物来定义。

94页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:生成用于油漆、清漆、印刷油墨、研磨树脂、颜料浓缩物或其它涂料的组合物的方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!