CN116072195B - 存储器 - Google Patents
存储器 Download PDFInfo
- Publication number
- CN116072195B CN116072195B CN202310355882.2A CN202310355882A CN116072195B CN 116072195 B CN116072195 B CN 116072195B CN 202310355882 A CN202310355882 A CN 202310355882A CN 116072195 B CN116072195 B CN 116072195B
- Authority
- CN
- China
- Prior art keywords
- data
- sub
- circuit
- read
- write
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003860 storage Methods 0.000 claims abstract description 197
- 230000015654 memory Effects 0.000 claims abstract description 181
- 238000003491 array Methods 0.000 claims abstract description 101
- 230000005540 biological transmission Effects 0.000 claims abstract description 45
- 238000012795 verification Methods 0.000 claims description 27
- 230000004044 response Effects 0.000 claims description 15
- 238000012545 processing Methods 0.000 abstract description 11
- 210000004027 cell Anatomy 0.000 description 34
- 230000008439 repair process Effects 0.000 description 31
- 238000010586 diagram Methods 0.000 description 28
- WPPDXAHGCGPUPK-UHFFFAOYSA-N red 2 Chemical compound C1=CC=CC=C1C(C1=CC=CC=C11)=C(C=2C=3C4=CC=C5C6=CC=C7C8=C(C=9C=CC=CC=9)C9=CC=CC=C9C(C=9C=CC=CC=9)=C8C8=CC=C(C6=C87)C(C=35)=CC=2)C4=C1C1=CC=CC=C1 WPPDXAHGCGPUPK-UHFFFAOYSA-N 0.000 description 13
- 238000000034 method Methods 0.000 description 8
- 238000013524 data verification Methods 0.000 description 7
- 239000003990 capacitor Substances 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 230000008054 signal transmission Effects 0.000 description 3
- 239000000872 buffer Substances 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000002950 deficient Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000012447 hatching Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/70—Masking faults in memories by using spares or by reconfiguring
- G11C29/76—Masking faults in memories by using spares or by reconfiguring using address translation or modifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
- G11C29/4401—Indication or identification of errors, e.g. for repair for self repair
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
本申请提供一种存储器,该存储器包括:多个主存储阵列、多个冗余阵列和多个写选择电路;冗余阵列用于替换主存储阵列中的故障存储单元;写选择电路接收M组数据,用于根据写选择信号,将M组数据中的待修复数据输出至对应的冗余阵列的数据传输路径或者不输出数据。本方案能够实现故障替换下的数据处理。
Description
技术领域
本申请涉及存储器技术,尤其涉及一种存储器。
背景技术
伴随存储器技术的发展,存储器被广泛应用在多种领域,比如,动态随机存取存储器(Dynamic Random Access Memory,简称DRAM)的使用非常广泛。
实际应用中,在存储器的生产和使用过程中,存储单元可能会产生故障,故障的存储单元不能正常工作,需要进行替换修复。因此,在发生故障存储单元替换修复的情况下,如何保证存储器实现准确的数据处理,成为需要解决的问题。
发明内容
本申请的实施例提供一种存储器。
根据一些实施例,本申请第一方面提供一种存储器,包括:多个主存储阵列,分别记为第1主存储阵列,第2主存储阵列,…,第i主存储阵列,…,第M主存储阵列,1<i<M,2≤M,且i和M为正整数;多个冗余阵列,分别记为第1冗余阵列,第2冗余阵列,…,第j冗余阵列,…,第N冗余阵列,冗余阵列中的存储单元用于替换主存储阵列中的故障存储单元,1<j<N,2≤N,且j和N为正整数;多个写选择电路,分别记为第1写选择电路,第2写选择电路,…,第j写选择电路,…,第N写选择电路;每个写选择电路接收M组数据,分别记为第1数据,第2数据,…,第i数据,…,第M数据;其中,第j写选择电路用于根据第j写选择信号,将M组数据中的待修复数据输出至第j冗余阵列的数据传输路径或者不输出数据。
在一些实施例中,主存储阵列和冗余阵列均包括P个列,分别记为第1列,第2列,…,第q列,…,第P列;每个冗余阵列的第q列用于替换任意一个主存储阵列的第q列,1≤q≤P,且q和P为正整数。
在一些实施例中,写选择电路,包括:多个写选择子电路,分别记为第1写选择子电路,第2写选择子电路,…,第k写选择子电路,…,第L写选择子电路;每个写选择信号包括多个写子信号,分别记为第1写子信号,第2写子信号,…,第k写子信号,…,第L写子信号,1<k<L,2≤L,且k和L为正整数;第k写选择子电路接收M组数据的第k比特数据;第k写选择子电路,用于根据第k写子信号,将M组数据的第k比特数据中的待修复数据输出至对应的冗余阵列的数据传输路径或者不输出数据。
在一些实施例中,写选择子电路,包括:多个接收电路,分别记为第1接收电路,第2接收电路,…,第i接收电路,…,第M接收电路;每个写子信号包括多个子选择信号,分别记为第1子选择信号,第2子选择信号,…,第i子选择信号,…,第M子选择信号;其中,第k写选择子电路的第i接收电路接收第i数据的第k比特数据,用于根据第i子选择信号,将第i数据的第k比特数据作为待修复数据输出至对应的冗余阵列的数据传输路径或者不输出数据;传输电路,与多个接收电路连接,用于对多个接收电路输出的数据进行或逻辑运算,并将运算得到的结果传输至对应的冗余阵列的数据传输路径。
在一些实施例中,子选择信号的信号状态包括第一电平状态和第二电平状态;其中,第k写子信号的第i子选择信号处于第一电平状态,表征待修复数据包括第i数据中的第k比特数据;第k写子信号的第i子选择信号处于第二电平状态,表征第i数据中的第k比特数据不为待修复数据。
在一些实施例中,第一电平状态为高电平状态,第二电平状态为低电平状态。
在一些实施例中,接收电路,包括:与门;与门的第一输入端接收对应的数据,与门的第二输入端接收对应的子选择信号,与门的输出端与传输电路连接。
在一些实施例中,传输电路,包括:多级或运算单元,每级或运算单元包括至少一个或门;第一级或运算单元,用于对多个接收电路输出的数据进行或逻辑运算,得到多个第一运算结果;除第一级或运算单元以外的每级或运算单元,用于对上一级或运算单元输出的运算结果进行或逻辑运算后输出,直至最后一级或运算单元输出最终的运算结果,传输至对应的冗余阵列的数据传输路径。
在一些实施例中,存储器还包括:M个读选择电路,分别记为第1读选择电路,第2读选择电路,…,第i读选择电路,…,第M读选择电路;其中,第i读选择电路接收从第i主存储阵列和多个冗余阵列读出的数据;第i读选择电路,用于根据第i读选择信号,输出从第i主存储阵列读出的数据或从其中一个冗余阵列读出的数据。
在一些实施例中,读选择电路,包括:多个读选择子电路,分别记为第1读选择子电路,第2读选择子电路,…,第k读选择子电路,…,第L读选择子电路;每个第i读选择信号包括多个读子信号,分别记为第1读子信号,第2读子信号,…,第k读子信号,…,第L读子信号;第i读选择电路的每个读选择子电路,接收从第i主存储阵列读出的1比特数据和从每个冗余阵列读出的1比特数据。
在一些实施例中,读选择子电路,包括:数据选择器;数据选择器的数据输入端分别接收从第i主存储阵列读出的1比特数据和从每个冗余阵列读出的1比特数据,数据选择器的选择端接收对应的读子信号。
在一些实施例中,每个第i读选择信号的每个第k读子信号包括N个比特;第k读子信号的第j比特的信号状态与第j写选择信号中第k写子信号的第i子选择信号的信号状态一致。
在一些实施例中,第k读选择子电路,响应于第k读子信号的第j比特处于第一电平状态,输出从第j冗余阵列读取的数据;第k读选择子电路,响应于第k读子信号的所有比特均处于第二电平状态,输出从对应的主存储阵列读取的数据。
在一些实施例中,冗余阵列的数量为两个。
在一些实施例中,多个主存储阵列同行排布,且两个冗余阵列分别设置在多个主存储阵列的两端。
在一些实施例中,至少一个主存储阵列为校验码存储阵列,校验码存储阵列存储有校验码数据。
在一些实施例中,存储器还包括:校验模块;校验模块与多个写选择电路连接,多个写选择电路接收的数据包括待写入数据和校验码数据,校验模块用于根据待写入数据,生成校验码数据。
本申请实施例提供的存储器,包括多个主存储阵列和多个冗余阵列,冗余阵列用于提供主存储阵列的故障单元替换,以及多个写选择电路,每个写选择电路接收需要写入存储器的数据,每个写选择电路响应于自身对应的写选择信号,不向冗余阵列传输数据或者将待修复数据传至对应的冗余阵列的数据传输路径,实现故障替换场景下的数据写入。本方案的存储器通过设置多个写选择电路,当没有发生故障修复时,无需将数据写入冗余阵列,当发生故障修复时,将待修复数据写入其中一个冗余阵列中,从而实现故障替换下的数据写入,并且本方案支持多个主存储阵列的相同列发生故障的情形,进一步保证数据处理的准确性和可靠性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请实施例的原理。
图1为一实施例示出的存储器的架构示例图;
图2为一实施例示出的存储单元的结构示例图;
图3和图4分别为一种示例的替换方案架构图;
图5为一实施例提供的存储器的结构示例图;
图6为一种情形下的状态示例图;
图7为另一种情形下的状态示例图;
图8为又一种情形下的状态示例图;
图9为一示例的存储阵列的架构示意图;
图10为一示例的写选择电路的结构示意图;
图11为一示例的写选择子电路的结构示意图;
图12为一示例的存储器的结构示例图;
图13为一种情形下的状态示例图;
图14为另一种情形下的状态示例图;
图15为一示例的存储器的结构示例图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与本申请的一些方面相一致的装置和方法的例子。
本申请中的用语“包括”和“具有”用以表示开放式的包括在内的意思,并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等;用语“第一”和“第二”等仅作为标记或区分使用,不是对其对象的先后顺序或数量限制。此外,附图中的不同元件和区域只是示意性示出,因此不限于附图中示出的尺寸或距离。
下面以具体的实施例对技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图1为一实施例示出的存储器的架构示例图,如图1所示,以DRAM作为示例,包括数据输入/输出缓冲、行解码器、列解码器、感测放大器以及存储阵列。其中,数据输入/输出缓冲属于外围区电路,感测放大器、行解码器、列解码器以及存储阵列属于阵列区电路。存储阵列主要由字线、位线和存储单元组成。存储阵列中的字线沿行方向延伸,存储阵列中的位线沿列方向延伸,字线与位线的交叉处为存储阵列的存储单元。
其中,每个存储单元用于存储一个比特(bit)的数据。如图2所示,图2为一实施例示出的存储单元的结构示例图,存储单元主要由晶体管开关M和电容C组成。其中,电容用于存储数据,晶体管开关用于根据选中状态,关断或导通。
可以通过控制字线和位线来激活某个存储单元,以实现对该存储单元的访问。结合读取场景作为示例:需要读取存储单元中的数据时,可以通过行解码器选中该存储单元所在行的字线,相应的,图示中的晶体管开关M导通,通过对位线信号的感测放大就可以感知到此时电容C上的状态。例如,如果存储单元中存储的bit数据为1,那么晶体管开关M导通后就会从存储单元的位线上读到1,反之也是同样的道理。另外,结合写入场景作为示例:需要向某存储单元中写入bit数据时,比如写入1。可以通过行解码器选中该存储单元所在行的字线,相应的图示中的晶体管开关M导通,通过将位线的逻辑电平设为1,使得电容C充电,即向存储单元写入1。反之,如果要写入0,那么位线的逻辑电平设为0,使得电容C放电,即向存储单元写入0。
实际应用中,DRAM在生产过程中有一定概率会产生故障的存储单元,或者,伴随着设备的老化损坏,尤其是运行环境存在挑战(高温环境),并且需要频繁运行的存储器,在存储阵列中可能产生故障存储单元。这些故障存储单元不能正常工作,因此为了避免故障存储单元影响存储器的正常工作,在设计时除了规划包含常规存储单元的主存储阵列以外,还会规划冗余阵列,冗余阵列中的存储单元作为冗余部分,用于实现对主存储阵列中故障存储单元的替换。
本文中的“替换”指存储功能上的替换,即保证替换后能正常用于存储数据的存储单元的数量即可,具体的替换方式包括但不限于,用冗余存储单元来存储故障存储单元原本需要存储的bit数据,或者,只需保证加入冗余存储单元后,能够正常工作的存储单元的数量可以保证完整数据的储存即可,至于哪个存储单元存储哪个bit数据可以不做限制。
在一些替换方案中,比如LCR(Local Column Repair)方案,会在存储阵列中设计包含常规存储单元的存储列,以及包含冗余存储单元的冗余列,冗余列和存储列共享该存储阵列的数据线,数据线用于传输读取或写入的数据。为了便于设计,在一些替换方案里,比如CCR(Central Column Repair)方案中,所有冗余存储单元设置在独立的冗余阵列中,冗余阵列和常规的存储阵列分别独立设置,各自具有独立的数据线,故需要提供一种有效方案支持该架构下,发生故障替换时的数据处理,比如,数据的正常写入。
为便于理解,如图3和图4所示,图3和图4分别为一种示例的替换方案架构图,图3以存储器包括n个存储阵列作为示例,分别为第1存储阵列、第2存储阵列,…第n存储阵列,图4示出了n个主存储阵列和1个冗余阵列。图3采用的故障替换方案为LCR方案,图中填充阴影的列为冗余列,未填充阴影的部分为常规的存储列,可知LCR方案中,各冗余列集成于每个存储阵列中,每个存储阵列下的存储列和冗余列共享数据线。图4采用的故障替换方案为CCR方案,图中填充阴影的阵列为冗余阵列,未填充阴影的部分为常规的主存储阵列,可知CCR方案中,独立设置冗余阵列,冗余阵列中的存储单元用于替换主存储阵列中故障的存储单元,每个阵列配置有独立的数据线。需要说明的是,图中只是一种示例,具体的阵列架构可以根据实际需要调整,而不限于图中的示例。
本申请实施例的一些方面涉及上述考虑。以下结合本申请的一些实施例对方案进行示例介绍。图5为一实施例提供的存储器的结构示例图,如图5所示,该存储器包括:
多个主存储阵列11,分别记为第1主存储阵列,第2主存储阵列,…,第i主存储阵列,…,第M主存储阵列,1<i<M,2≤M,且i和M为正整数;
多个冗余阵列12,分别记为第1冗余阵列,第2冗余阵列,…,第j冗余阵列,…,第N冗余阵列,冗余阵列中的存储单元用于替换主存储阵列中的故障存储单元,1<j<N,2≤N,且j和N为正整数;
多个写选择电路13,分别记为第1写选择电路,第2写选择电路,…,第j写选择电路,…,第N写选择电路;每个写选择电路13接收M组数据,分别记为第1数据,第2数据,…,第i数据,…,第M数据;其中,第j写选择电路用于根据第j写选择信号,将M组数据中的待修复数据输出至第j冗余阵列的数据传输路径或者不输出数据。
其中,写选择电路接收的数据组数量可以根据实际需要写入存储器的数据量确定。实际应用中,本实施例提供的存储器的类型不限,作为示例,可以应用在包括但不限于双倍速率同步动态随机存储器(简称DDR)等。
其中,存储阵列中的主存储阵列用于在未存在故障存储单元的情况下存储写入的数据。实际应用中,为了在后续进行数据读取时,验证数据读取的准确性,可以对读取的数据进行数据校验。故在一个示例中,至少一个主存储阵列为校验码存储阵列,校验码存储阵列用于存储校验码数据。故最终写入各存储阵列的数据将包含待写入数据以及校验码数据。其中,校验码存储阵列用于存储校验码数据可解释为,校验码存储阵列在不存在故障存储单元时,正常存储校验码数据,可以理解,如果校验码存储阵列中存在故障存储单元,也可用冗余阵列对校验码存储阵列中的故障存储单元进行替换,相应的,故障存储单元对应的校验码数据将被写入在进行替换之后的某个存储单元中。其中,待修复数据指主存储阵列中发生故障的故障存储单元所对应的数据,即故障存储单元若未发生故障的话原本需要存储的数据。
实际应用中,在数据写入、读取和传输的过程中可能产生错误,故为了避免和及时发现这种错误,可以采用数据校验方法对数据进行校验。作为示例,数据校验方法可以包括但不限于奇偶校验、循环冗余校验等,在校验方案中,需要基于校验码数据进行校验,故在向存储阵列中写入数据时,会一并生成并写入校验码数据,以便在数据读取时,根据读出的校验码数据对读出的存储数据进行数据校验。相应的,在一个示例中,存储器还包括:校验模块14;校验模块14与多个写选择电路13连接,多个写选择电路13接收的数据包括待写入数据和校验码数据,校验模块14用于根据待写入数据,生成校验码数据。
本示例通过设置校验码模块,能够在数据写入时生成相应的校验码数据存至存储阵列中,以便在后续进行数据读取时,基于校验码数据对读取的数据进行数据校验,从而进一步提高数据处理的准确性和可靠性。
具体的,冗余阵列的数量和位置可以根据实际情况确定。比如,在一个示例中,冗余阵列12的数量可以为两个,可以支持当两个主存储阵列的相同列发生故障时的故障修复。这里所说的,不同存储阵列的相同列指,不同存储阵列中相同位置对应的列,比如,第1存储阵列的第1列和第2存储阵列的第1列。
此外,在一个示例中,可以结合后述的图6,多个主存储阵列11同行排布,且两个冗余阵列12分别设置在多个主存储阵列11的两端。实际应用中,冗余阵列的位置可以结合布线情况设定,通过调整冗余阵列的位置,能够便于布线,提高布线中的信号质量,并且将主存储阵列同行排布,冗余阵列对称设置在各主存储陈列的两端,有利于数据对称。
下面结合附图,对本实施例的电路工作原理进行示例:以一次写入的完整数据为34组数据进行举例,记为第1数据Data_1~第34数据Data_34。假设冗余阵列的数量为两个,具体的,存储器中设置有36个存储阵列,包括34个主存储阵列,记为第1主存储阵列,第2主存储阵列,…,第i主存储阵列,…,第M主存储阵列(此时M=34),和2个冗余阵列,记为第1冗余阵列和第2冗余阵列(即N=2)。实际应用中,一次写入的数据长度和内容可以根据存储器的类型和工作参数确定。其中,第1数据Data_1表示完整的34组数据中,在正常情况下应写入至第1主存储阵列中的数据;第2数据Data_2表示完整的34组数据中,正常情况下应写入第2主存储阵列中的数据;以此类推。可以理解,当主存储阵列不存在故障时,冗余阵列中可以不存储数据,即为空数据;或者,当主存储阵列中的故障存储单元所在的列被冗余阵列替换后,冗余阵列中的数据具体为替换故障存储单元后存储的数据,该数据可能是34组数据中的其中一组,具体为哪组数据可根据实际情况确定,后述会进行举例说明。
首先,图6为一种情形下的状态示例图,该情形为主存储阵列中未存在故障存储单元。当主存储阵列中没有故障存储单元时,写入的34组数据应存储在对应的主存储阵列中。结合图中的示例,假设存储器包含36个存储阵列,其中冗余阵列为第1个存储阵列和第36个存储阵列,其余的第2个存储阵列至第35个存储阵列均为主存储阵列。具体的,写入数据中的第1数据Data_1需存储于第1主存储阵列,第2数据Data_2需存储于第2主存储阵列,以此类推,直至第34数据Data_34需存储于第34主存储阵列。之后第1冗余阵列和第2冗余阵列为冗余阵列,故不存储数据。结合图中示例,假设需要存储的34组数据包含待写入数据和校验模块14基于待写入数据生成的校验码数据,并以第M数据(比如,Data_34)作为校验模块14生成的校验码数据进行举例。但需要说明的是,图中仅为一种示例,校验码数据的数据长度以及存储位置,都可以根据实际情况进行调整,比如,可以设定校验码数据包含两组数据,并且位于34组数据的中间,以有利于数据对称。例如,可以设定第17数据~第18数据为校验码数据,在此不对其进行限制。
相应的,写选择电路对应冗余阵列设置,故在示例中,写选择电路的数量同样为两个,记为第1写选择电路和第2写选择电路,其中,第1写选择电路对应第1冗余阵列,第2写选择电路对应第2冗余阵列。第1写选择电路接收待写入的完整数据,即34组数据Data_1~Data_34,第2写选择电路同样接收Data_1~Data_34。基于上述情形,写选择电路输出的数据将被传输至对应的冗余阵列执行写入,故当不存在故障存储单元时,不存在待修复数据,故第1写选择电路和第2写选择电路均不输出数据。此时,所有主存储阵列,即第1主存储阵列~第34主存储阵列正常执行数据处理,即第1主存储阵列写入接收的Data_1,第2主存储阵列写入接收的Data_2,以此类推,直至第34主存储阵列写入接收的Data_34,完成未发生故障情形下的数据写入。
以上为不存在故障存储单元的情形。作为示例,图7为另一种情形下的状态示例图,该情形为主存储阵列中存在故障存储单元。仍结合图6所示的架构,以第1主存储阵列存在故障存储单元为例,在图7中,可选择第1冗余阵列或第2冗余阵列中的存储单元用于替换第1主存储阵列中的故障存储单元。在一个示例中,为了便于信号传输,考虑就近情况,可以选择使用第1冗余阵列执行对第1主存储阵列的故障替换修复。具体的,生成相应的第1写选择信号,第1写选择电路响应于该第1写选择信号,将Data_1~Data_34中原本需存储到第1主存储阵列中的故障存储单元的数据,作为待修复数据输出至第1冗余阵列的数据传输路径,其余的Data_2~Data_34分别正常存储到第2主存储阵列~第34主存储阵列的数据传输路径,以使第1冗余阵列接收到从数据传输路径上传输过来的待修复数据后,将其写入自身的冗余存储单元,实现列发生故障时的替换修复。
具体的,本方案也支持当不同主存储阵列的相同列发生故障的情形下,实现故障修复。作为示例,图8为又一种情形下的状态示例图,该情形为主存储阵列中存在多个故障存储单元,且这多个故障存储单元分布在不同存储阵列的相同列中。仍结合图6所示的架构,以第1主存储阵列和第34主存储阵列的某相同物理列均发生故障为例,在图8中,可由第1冗余阵列和第2冗余阵列分别替换第1主存储阵列和第34主存储阵列中的故障存储单元。
在一个示例中,为了便于信号传输,考虑就近情况,可以选择使用第1冗余阵列执行对第1主存储阵列的故障列进行替换修复,使用第2冗余阵列执行对第34主存储阵列中相同位置的故障列进行替换修复。具体的,生成相应的第1写选择信号和第2写选择信号,第1写选择电路响应于该第1写选择信号,将原本需存储到第1主存储阵列的故障存储单元中的Data_1,作为待修复数据输出至第1冗余阵列的数据传输路径,第2写选择电路响应于第2写选择信号,将原本需存储到第34主存储阵列的故障存储单元中的Data_34,作为待修复数据输出至第2冗余阵列的数据传输路径,以使第1冗余阵列和第2冗余阵列接收到数据传输路径上传输过来的待修复数据后,将其写入冗余存储单元,实现对第1主存储阵列和第34主存储阵列中相同列发生故障时的修复替换。
本实施例中,设置冗余阵列,并针对每个冗余阵列设置对应的写选择电路,能够根据当前是否发生故障存储的情况,通过控制写选择信号,控制写选择电路或者不输出,即将需要写入的数据正常传输至主存储阵列,或者输出至对应的冗余阵列,即将写入数据中原本需要写入故障存储单元的数据,传输至冗余阵列进行存储,从而实现数据的准确写入,保证数据处理的准确性和可靠性。并且本实施例的方案,便于电路设计和制备,可以适用于存储器等集成度高的场景。
作为示例,图9为一示例的存储阵列的架构示意图,如图9所示,主存储阵列11和冗余阵列12均包括P个列,分别记为第1列,第2列,…,第q列,…,第P列。
具体的,每个冗余阵列12的第q列用于替换任意一个主存储阵列11的第q列,1≤q≤P,且q和P为正整数。需要说明的是,这里的单个“列”可以指单个列选择信号的控制对象。举例来说,存储阵列在物理结构上包括多个物理行(例如理解为字线wordline)和多个物理列(例如理解为位线bitline)。在一些存储器设计方案中,将一个存储阵列中的多个物理列划分为多组列,每组列中的所有物理列受控于同一个列选择信号,不同组的列受控的列选择信号不同。举例来说,假设某存储阵列包含16个物理列,按照每4个物理列进行划分,将得到4列(column_1~ column_4),column_1~ column_4分别对应列选择信号1~列选择信号4,每个column中的4个物理列对应同一列选择信号,每个column可视为本示例所述的一个“列”。需要说明的是,在多个存储阵列的情形下,同一列选择信号用于选中不同存储阵列中的相同列,这里的相同列指在不同存储阵列中位置相同的列,比如列选择信号1用于选中所有存储阵列中的column_1。在另一些存储器设计方案中,本示例中的单个“列”即单个物理列,比如,某存储阵列包含8个物理列,分别受控于8个列选择信号,则此时的每一物理列可视为本示例所述的一个“列”。本实施例在此不对此进行限制。
结合图9所示,存储器的数据写入过程示例如下:如图9所示,以一个存储阵列(主存储阵列或者冗余阵列)的放大图作为示例,每个主存储阵列11或者冗余阵列12包括多个列21,每个列21进一步由多个物理列(比如4bit)构成。当进行数据写入时,列解码器会从写入指令中解析出列选择信号,比如,列选择信号表征第1列的地址,响应于该列选择信号,所有阵列的第1列被选中。故结合前述图6的示例,第i数据包括需要写入某存储阵列的第1列的4bit数据。比如,第1数据包括需写入某存储阵列的第1列的4bit数据,第2数据包括需写入另一存储阵列的第1列的4bit数据,以此类推。故每一写选择电路对应包括4个写选择子电路,分别对应4bit数据中的1bit数据,且每一写选择电路的输出端连接对应的冗余阵列的数据线,写选择电路若输出数据,则输出的数据通过数据线写入至对应的冗余阵列。
在一个示例中,图10为一示例的写选择电路的结构示意图,如图10所示,写选择电路13,包括:
多个写选择子电路131,分别记为第1写选择子电路,第2写选择子电路,…,第k写选择子电路,…,第L写选择子电路;每个写选择信号包括多个写子信号,分别记为第1写子信号,第2写子信号,…,第k写子信号,…,第L写子信号,1<k<L,2≤L,且k和L为正整数;
第k写选择子电路接收M组数据的第k比特数据;第k写选择子电路,用于根据第k写子信号,将M组数据的第k比特数据中的待修复数据输出至对应的冗余阵列的数据传输路径或者不输出数据。
本示例中,按照单组数据包含的比特数,比如,单组数据包括L个比特,分别记为bit1,bit2,…bit k,…bit L,将M组数据的每个比特分配至每个写选择子电路。每个写选择电路具体包括多个写选择子电路,每个写选择子电路接收所有组数据(比如,前述的Data1~Data34)的一个比特。
举例来说,假设单组数据的数据长度为4比特(bit1~bit4)的话,每个写选择电路13则包括4个写选择子电路131。其中,第1写选择子电路接收Data1~Data34的bit1,第2写选择子电路接收Data1~Data34的bit3,第3写选择子电路接收Data1~Data34的bit3,最后第4写选择子电路接收Data1~Data34的bit4。其中,每个写选择子电路还接收对应的写子信号。响应于写子信号,当该写选择子电路当前接收的数据(一个比特)所对应的存储单元未故障时,则该写选择子电路不输出该数据。相应的,该数据将仅被传输至所在组数据对应的主存储阵列的数据传输路径,以写入该主存储阵列中对应的物理列下对应的存储单元。当该写选择子电路当前接收的数据所对应的存储单元故障时,该写选择子电路将接收的该数据输出至自身所在的写选择电路所对应的冗余阵列的数据传输路径,以实现数据写入的故障替换修复。
进一步的,结合M组数据的数量,对每个写选择子电路进一步进行划分,以实现数据的精准处理。在一个示例中,每个写选择子电路131,包括:
多个接收电路22,分别记为第1接收电路,第2接收电路,…,第i接收电路,…,第M接收电路;每个写子信号包括多个子选择信号,分别记为第1子选择信号,第2子选择信号,…,第i子选择信号,…,第M子选择信号;其中,第k写选择子电路的第i接收电路接收第i数据的第k比特数据,用于根据第i子选择信号,将第i数据的第k比特数据作为待修复数据输出至对应的冗余阵列的数据传输路径或者不输出数据;
传输电路23,与多个接收电路22连接,用于对多个接收电路22输出的数据进行或逻辑运算,并将运算得到的结果传输至对应的冗余阵列的数据传输路径。
本示例中,按照主存储阵列的数量,也就是M组数据的组数,将每组数据的一个比特分配至该比特对应的写选择子电路中,对应该组数据的接收电路。比如,第k写选择子电路中的M个接收电路,分别接收Data1~DataM的bit k。结合前述的Data1~Data34,举例来说,每个写选择子电路具体包括34个接收电路(分别对应Data1~Data34),每个接收电路接收对应的一组数据中的一个比特。
结合前述举例,每个写选择电路13包括第1写选择子电路(对应bit1)、第2写选择子电路(对应bit2)、第3写选择子电路(对应bit3)和第4写选择子电路(对应bit4)。进一步的,结合本示例的方案举例,每个写选择子电路包括34个接收电路。其中,第1写选择子电路中的第1接收电路接收Data1的bit1,第1写选择子电路中的第2接收电路接收Data2的bit1…直至第1写选择子电路中的第34接收电路接收Data34的bit1;此外,第2写选择子电路中的第1接收电路接收Data1的bit2,第2写选择子电路中的第2接收电路接收Data2的bit2…直至第2写选择子电路中的第34接收电路接收Data34的bit2;…以此类推,直至第4写选择子电路中的34个接收电路分别接收Data1~Data34的bit4。
其中,每个接收电路还接收对应的子选择信号。响应于子选择信号,当该接收电路当前接收的数据(一个比特)所对应的存储单元未故障时,则该接收电路不输出该数据。相应的,该数据将仅被传输至所在组数据对应的主存储阵列的数据传输路径,以写入该主存储阵列中对应的物理列下对应的存储单元。当该接收电路当前接收的数据所对应的存储单元故障时,该接收电路将接收的该数据,作为待修复数据输出至传输电路。相应的,传输电路接收到任一接收电路输出的待修复数据时,则输出该待修复数据至对应的冗余阵列的数据传输路径,从而实现故障修复下的数据写入。
也就是说,子选择信号表征是否需要对该数据执行故障修复写入。在一个示例中,子选择信号的信号状态包括第一电平状态和第二电平状态;其中,第k写子信号的第i子选择信号处于第一电平状态,表征待修复数据包括第i数据中的第k比特数据;第k写子信号的第i子选择信号处于第二电平状态,表征第i数据中的第k比特数据不为待修复数据。举例来说,第一电平状态为高电平状态,第二电平状态为低电平状态。
其中,第k写子信号为第k写选择子电路的控制信号。举例来说,第1写子信号的第i子选择信号用于控制第1写选择子电路中的第i接收电路,第2写子信号的第i子选择信号用于控制第2写选择子电路中的第i接收电路。结合前述示例,可知第k写选择子电路对应第k比特,第i接收电路对应第i组数据,故第k写子信号的第i子选择信号对应第i组数据的第k比特。比如,第1写子信号中的第1子选择信号为高电平时,表征Data1的bit1为待修复数据,第2写子信号中的第1子选择信号为低电平时,表征Data1的bit2不为待修复数据,第1写子信号中的第2子选择信号为低电平时,表征Data2的bit1不为待修复数据。
本示例通过信号处于不同的电平状态来表征对应的数据是否执行故障修复,能够有效简化信号形式,提高信号传输和响应速度。
其中,接收电路22用于响应于子选择信号输出或不输出接收的数据,其具体实现结构不限。作为示例,图11为一示例的写选择子电路的结构示意图,如图11所示,接收电路22,包括:与门221;
与门221的第一输入端接收对应的数据,与门221的第二输入端接收对应的子选择信号,与门221的输出端与传输电路23连接。
图中,以第k写选择子电路的结构作为示例,其中,第k写选择子电路包括多个与门221,分别属于M个接收电路22,每个与门接收对应的子选择信号和一个比特。结合图示结构举例来说,当与门221接收的子选择信号为低电平状态时,表征其接收的数据无需执行故障修复,通过与逻辑计算,由于与门接收的子选择信号为0,故该与门接收的数据无论为1或是0,与门始终输出0,即数据被屏蔽,不作为待修复数据输出。当与门221接收的子选择信号为高电平状态时,通过与逻辑计算,由于与门接收的子选择信号为1,故该与门接收的数据将影响与门的最终输出,比如,若数据为1,则与门输出1,若数据为0,则与门输出0,即数据作为待修复数据输出。
考虑到上述中,无需执行故障修复的情形和需要执行故障修复且待修复数据为0的情形下,接收电路的输出值相同,故实际应用中,还会设置专门的故障检测电路来检测当前是否需要执行故障修复。具体的,如果当前选择的列存在故障存储单元,则故障检测电路使能故障修复功能,此前提下基于本方案提供的电路实现数据处理时的故障修复,即将待修复数据传输至冗余阵列的数据传输路径,冗余阵列执行数据存储。如果检测到当前选择的列中不存在故障存储单元,则不使能,相应的,冗余阵列不存储数据传输路径上的数据。
本示例中,接收电路通过常规的与门实现响应于子选择信号输出或不输出接收的数据,从而实现数据写入情形下的故障修复,并且能够进一步简化电路,降低成本。需要说明的是,接收电路还可以实现为响应于子选择信号的传输门结构等,在此并未排除其它可能的实现方式。
具体的,传输电路23用于对所在的写选择子电路中所有接收电路22的输出结果进行或逻辑运算,其具体实现结构不限。作为示例,传输电路23,包括:多级或运算单元,每级或运算单元包括至少一个或门;
第一级或运算单元,用于对多个接收电路22输出的数据进行或逻辑运算,得到多个第一运算结果;
除第一级或运算单元以外的每级或运算单元,用于对上一级或运算单元输出的运算结果进行或逻辑运算后输出,直至最后一级或运算单元输出最终的运算结果,传输至对应的冗余阵列的数据传输路径。
结合图示结构举例来说,基于或逻辑运算,当任一接收电路输出的结果为1时,表征存在需执行故障修复的待修复数据,传输电路将输出1,即相当于输出了待修复数据。当所有接收电路的输出均为0时,可能存在两种情形,具体相关内容在上一示例中进行了介绍。本示例中,传输电路通过常规的或门实现待修复数据的输出,从而实现数据写入情形下的故障修复,并且能够进一步简化电路,降低成本。需要说明的是,传输电路还可以实现为不限于与门等结构,在此并未排除其它可能的实现方式。
以上结合数据写入的情形进行示例,具体的,当需要进行数据读取时同样需要考虑故障修复。故在一个示例中,图12为一示例的存储器的结构示例图,如图12所示,存储器还包括:
M个读选择电路15,分别记为第1读选择电路,第2读选择电路,…,第i读选择电路,…,第M读选择电路;
其中,第i读选择电路接收从第i主存储阵列和多个冗余阵列读出的数据;第i读选择电路,用于根据第i读选择信号,输出从第i主存储阵列读出的数据或从其中一个冗余阵列读出的数据。
如图12中,从主存储阵列11读出的数据记为Data_CP,其中从第i主存储阵列读出的数据记为Data_CPi,从冗余阵列12读出的数据记为Data_Red,其中从第j冗余阵列读出的数据记为Data_Redj。同样的,完整读出的数据可以包括读取数据和校验码数据,以使校验模块14基于校验码数据对读取数据进行校验。作为示例,数据校验方法可以包括但不限于奇偶校验、循环冗余校验等。相应的,在一个示例中,校验模块14与M个读选择电路15连接,M个读选择电路15出的数据包括读取数据和校验码数据,校验模块14还用于根据校验码数据对读取数据进行数据校验。本示例通过校验码模块对读取的数据进行数据校验,从而进一步提高数据处理的准确性和可靠性。
本示例中,每个读选择电路对应一个主存储阵列,接收从该主存储阵列读出的数据,此外还接收所有冗余阵列读出的数据,响应于接收到的读选择信号,选择输出从主存储阵列读出的数据或者从一个冗余阵列读出的数据。
下面结合附图,对本实施例的电路工作原理进行示例:仍以一次读取的完整数据为34组数据进行举例,存储器包括34个主存储阵列和2个冗余阵列,即N=2,M=34。相应的,Data_CP1表示实际从第1主存储阵列中读出的数据;Data_CP34表示实际从第34主存储阵列中读出的数据;以此类推。另外,Data_Red1表示从第1冗余阵列实际读出的数据,Data_RedN表示从第N冗余阵列实际读出的数据。具体的,第1读选择电路接收Data_CP1、Data_Red1以及Data_Red2;第2读选择电路接收Data_CP2、Data_Red1以及Data_Red2,直至第34读选择电路接收Data_CP34、Data_Red1以及Data_Red2。
首先,图13为一种情形下的状态示例图,该情形为主存储阵列中未存在故障存储单元。当主存储阵列中没有故障存储单元时,完整的34组数据Data_1~Data_34应分别存储在对应的主存储阵列中。具体的,完整数据中的Data_1存储于第1主存储阵列,Data_2存储于第2主存储阵列,以此类推,直至Data_34存储于第34主存储阵列,由于存储器无故障存储单元,第1冗余阵列和第2冗余阵列不存储数据,因此不输出从这两个冗余阵列读出的数据。
相应的,第i读选择电路接收从第i主存储阵列读出的Data_CPi、以及从两个冗余阵列读出的数据Data_Red1和Data_Red2。结合图13所示,由于存储器无故障存储单元,冗余阵列不存储数据,因此第1读选择电路选择输出从第1主存储阵列读出的Data_CP 1,第2读选择电路选择输出从第2主存储阵列读出的Data_CP 2,直至第34读选择电路选择输出从第34主存储阵列读出的Data_CP 34,从而实现M个读选择电路输出的数据构成完整数据Data_1~Data_34。
以上为不存在故障存储单元的情形。作为示例,图14为另一种情形下的状态示例图,该情形为主存储阵列中存在故障存储单元。仍结合前述所示的架构,以第1主存储阵列存在故障存储单元为例,在图14中,假设在写入时选用第1冗余阵列替换第1主存储阵列中的故障存储单元。结合前述,原本需存储在第1主存储阵列的Data_1被转存至第1冗余阵列,实现对第1主存储阵列中故障存储单元的替换。此时,第1主存储阵列中可以不存储储据,或者存储数据,因为最终通过读选择电路的选择,从该故障存储单元读出的数据将不被输出。结合图14所示,第1读选择电路输出从第1冗余阵列读出的Data_Red1,第2读选择电路选择输出从第2主存储阵列读出的Data_CP2,直至第34读选择电路选择输出从第34主存储阵列读出的Data_CP34,从而实现M个读选择电路输出的数据构成完整数据Data_1~Data_34。基于上述情形,控制各读选择单元根据各自的读选择信号选择输出,以输出完整数据。完整数据后续可传输至校验模块14进行校验。
本实施例中,针对M个存储阵列设置M个读选择电路,能够在无论是否发生故障存储单元替换的情形下,通过控制读选择电路选择输出相应的数据,来实现完整数据的准确输出,保证数据处理的准确性和可靠性。并且本实施例的方案,便于电路设计和制备,可以适用于存储器等集成度高的场景。
其中,读选择电路在进行数据读取时,根据接收到的读选择信号输出对应的数据,其具体实现电路不限。在一个示例中,图15为一示例的存储器的结构示例图,如图15所示,读选择电路15包括:
多个读选择子电路151,分别记为第1读选择子电路,第2读选择子电路,…,第k读选择子电路,…,第L读选择子电路;每个第i读选择信号包括多个读子信号,分别记为第1读子信号,第2读子信号,…,第k读子信号,…,第L读子信号;
第i读选择电路的每个读选择子电路,接收从第i主存储阵列读出的1比特数据和从每个冗余阵列读出的1比特数据。
本示例中,也按照单组数据包含的比特数,将M组数据的每个比特分配至每个读选择子电路。每个读选择电路具体包括多个读选择子电路,每个读选择子电路接收从所属的读选择电路对应的主存储阵列读出的一个比特,以及从每个冗余阵列读出的一个比特。图中,以第i读选择电路的结构作为示例。
举例来说,仍假设单组数据的数据长度为4比特(bit0~bit3),冗余阵列的数量为两个,则每个读选择电路15包括4个读选择子电路151,即L=4,N=2。其中,第1读选择电路的第1读选择子电路接收Data_CP1的bit1以及Data_Red1和Data_Red2,第1读选择电路的第2读选择子电路接收Data_CP1的bit2以及Data_Red1和Data_Red2,第1读选择电路的第3读选择子电路接收Data_CP1的bit3以及Data_Red1和Data_Red2,最后第1读选择电路的第4读选择子电路接收Data_CP1的bit4以及Data_Red1和Data_Red2。此外,第2读选择电路的第1读选择子电路接收Data_CP2的bit1以及Data_Red1和Data_Red2,第2读选择电路的第2读选择子电路接收Data_CP2的bit2以及Data_Red1和Data_Red2,第2读选择电路的第3读选择子电路接收Data_CP2的bit3以及Data_Red1和Data_Red2,最后第2读选择电路的第4读选择子电路接收Data_CP2的bit4以及Data_Red1和Data_Red2;以此类推,直至第34读选择电路的4个读选择子电路分别接收Data_CP34的bit1~bit4以及Data_Red1和Data_Red2。
其中,每个读选择子电路还接收对应的读子信号。响应于读子信号,当该读选择子电路当前接收的数据(一个比特)所对应的存储单元未故障时,则该读选择子电路选择输出从主存储阵列中读出的一个比特。当该读选择子电路当前接收的数据所对应的存储单元故障时,该读选择子电路选择输出从冗余阵列中读出的一个比特,具体的,发生故障的存储单元由哪个冗余阵列修复,可以通过读子信号来表征,从而控制读选择子电路选择输出从执行了替换修复的冗余阵列中读出的一个比特。最终所有读选择电路的所有读选择子电路输出的数据构成完整的数据,从而实现故障修复下的数据读取。
需要说明的是,本实施例的方案支持当多个主存储阵列的相同列发生故障时的数据读取。具体的,不同存储阵列的相同列中的故障存储单元可以通过不同的冗余阵列分别进行故障修复,相应的,读取时需要确定多个冗余阵列中,对当前需要读取的故障存储单元进行了故障修复的冗余阵列,选择输出从该冗余阵列读出的数据。
为了使读选择子电路实现数据的准确输出,在一个示例中,每个第i读选择信号的每个第k读子信号包括N个比特;第k读子信号的第j比特的信号状态与第j写选择信号中第k写子信号的第i子选择信号的信号状态一致。该示例中,读子信号的数据长度与冗余阵列的数量一致。具体的,可以通过读子信号的每个比特来表征一个冗余阵列,通过该比特的比特值来表征对应的冗余阵列是否被选择,从而通过读子信号实现对读选择子电路的准确控制,实现数据准确读取。在一个示例中,第k读选择子电路,响应于第k读子信号的第j比特处于第一电平状态,输出从第j冗余阵列读取的数据;第k读选择子电路,响应于第k读子信号的所有比特均处于第二电平状态,输出从对应的主存储阵列读取的数据。
具体的,可以理解为读子信号由各个冗余阵列对应的比特组成,每个比特的值表征对应的冗余阵列对该读子信号对应的读选择子电路从主存储阵列接收的数据(一个比特)是否进行了故障修复存储。举例来说,假设第3主存储阵列中存在故障存储单元,且该故障存储单元分配由第1冗余阵列进行故障替换修复。进一步,以原本需要写入第3主存储阵列的第3数据(Data3)中的第1个比特数据,即Data3的bit1,作为待修复数据为例:
结合前述的写入方案,每个冗余阵列对应的第j写选择电路中,第1写选择子电路(对应单组数据的第1个比特)的第3接收电路(对应第3主存储阵列)接收该Data3的bit1以及对应的子选择信号。其中,该第3接收电路对应的子选择信号,为第j写选择信号中第1写子信号中的第3子选择信号。基于上述举例中,该Data3的bit1分配由第1冗余阵列进行修复,故只有第1写选择信号中第1写子信号中的第3子选择信号处于有效状态,比如为1;其余写选择信号中第1写子信号中的第3子选择信号将处于无效状态,比如为0。相应的,第1写选择电路中第1写选择子电路的第3接收电路,响应于有效状态的子选择信号,输出Data3的bit1,经过传输电路传输至第1冗余阵列的数据传输路径,由第1冗余阵列存储。其它写选择电路中第1写选择子电路的第3接收电路则不输出该Data3的bit1。
结合上述举例,在进行数据读取时,可知需读出的数据中,原本应存储在第3主存储阵列的bit0经过了故障修复,故可设定第3读选择信号(对应第3主存储阵列)中第1读子信号(对应单组数据的第1个比特)的第1个比特的比特值为有效值,比如为1,其它比特的比特值为无效值,比如为0。仍假设设置了两个冗余阵列,则第3读选择信号中的第1读子信号为10。相应的,结合前述读出方案,接收该第1读子信号的读选择子电路为,第3读选择电路中的第1读选择子电路,该第1读选择子电路接收到该第1读子信号(此时为10)后,响应于该第1读子信号,选择输出从第1冗余阵列读出的数据,即在写入时修复存储至第1冗余阵列的Data3的bit1,作为读出的完整数据中的第3组数据的第1个比特数据,实现故障修复下的数据读取。
作为示例,若读子信号的所有比特值均为无效值,比如均为0,则说明没有任一冗余阵列对从主存储阵列读出的数据进行故障修复,则读选择子电路选择输出从主存储阵列读出的数据。前述的电平状态可以进行设定,举例来说,第一电平状态为高电平状态,第二电平状态为低电平状态。
其中,读选择子电路用于响应于读子信号选择接收的数据输出,其具体实现电路不限。在一个示例中,读选择子电路151,包括:数据选择器25;数据选择器25的数据输入端分别接收从第i主存储阵列读出的1比特数据和从每个冗余阵列读出的1比特数据,数据选择器25的选择端接收对应的读子信号。图中,以第i读选择电路的第k读选择子电路的具体实现结构作为示例,可以理解,第i读选择电路的其它读选择子电路以及其它读选择电路的读选择子电路也可以实现为图示的结构。本示例中,读选择子电路包括常规的数据选择器,实现响应于读子信号选择数据,从而实现故障修复下的数据准确读取,并且简化电路结构,降低成本。
本实施例提供的存储器,包括多个主存储阵列和多个冗余阵列,冗余阵列用于提供主存储阵列的故障单元替换,以及多个写选择电路,每个写选择电路接收需要写入存储器的数据,每个写选择电路响应于自身对应的写选择信号,不向冗余阵列传输数据或者将待修复数据传至对应的冗余阵列的数据传输路径,实现故障替换场景下的数据写入。本方案的存储器通过设置多个写选择电路,当没有发生故障修复时,无需将数据写入冗余阵列,当发生故障修复时,将待修复数据写入其中一个冗余阵列中,从而实现故障替换下的数据写入,并且本方案支持多个主存储阵列的相同列发生故障的情形,进一步保证数据处理的准确性和可靠性。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。
Claims (16)
1.一种存储器,其特征在于,包括:
多个主存储阵列,分别记为第1主存储阵列,第2主存储阵列,…,第i主存储阵列,…,第M主存储阵列,1<i<M,2≤M,且i和M为正整数;
多个冗余阵列,分别记为第1冗余阵列,第2冗余阵列,…,第j冗余阵列,…,第N冗余阵列,所述冗余阵列中的存储单元用于替换所述主存储阵列中的故障存储单元,1<j<N,2≤N,且j和N为正整数;
多个写选择电路,分别记为第1写选择电路,第2写选择电路,…,第j写选择电路,…,第N写选择电路;每个所述写选择电路接收M组数据,分别记为第1数据,第2数据,…,第i数据,…,第M数据;其中,所述第j写选择电路用于根据第j写选择信号,将所述M组数据中的待修复数据输出至所述第j冗余阵列的数据传输路径或者不输出数据;
其中,所述写选择电路,包括:多个写选择子电路,分别记为第1写选择子电路,第2写选择子电路,…,第k写选择子电路,…,第L写选择子电路;每个写选择信号包括多个写子信号,分别记为第1写子信号,第2写子信号,…,第k写子信号,…,第L写子信号,1<k<L,2≤L,且k和L为正整数;所述第k写选择子电路接收所述M组数据的第k比特数据;所述第k写选择子电路,用于根据所述第k写子信号,将所述M组数据的第k比特数据中的待修复数据输出至对应的冗余阵列的数据传输路径或者不输出数据;
所述写选择子电路,包括:多个接收电路,分别记为第1接收电路,第2接收电路,…,第i接收电路,…,第M接收电路;每个写子信号包括多个子选择信号,分别记为第1子选择信号,第2子选择信号,…,第i子选择信号,…,第M子选择信号;其中,第k写选择子电路的第i接收电路接收所述第i数据的第k比特数据,用于根据所述第i子选择信号,将所述第i数据的第k比特数据作为所述待修复数据输出至对应的冗余阵列的数据传输路径或者不输出数据。
2.根据权利要求1所述的存储器,其特征在于,所述主存储阵列和所述冗余阵列均包括P个列,分别记为第1列,第2列,…,第q列,…,第P列;每个所述冗余阵列的第q列用于替换任意一个所述主存储阵列的第q列,1≤q≤P,且q和P为正整数。
3.根据权利要求1所述的存储器,其特征在于,所述写选择子电路,还包括:
传输电路,与所述多个接收电路连接,用于对所述多个接收电路输出的数据进行或逻辑运算,并将运算得到的结果传输至对应的冗余阵列的数据传输路径。
4.根据权利要求1所述的存储器,其特征在于,所述子选择信号的信号状态包括第一电平状态和第二电平状态;其中,
第k写子信号的第i子选择信号处于第一电平状态,表征所述待修复数据包括第i数据中的第k比特数据;
第k写子信号的第i子选择信号处于第二电平状态,表征第i数据中的第k比特数据不为待修复数据。
5.根据权利要求4所述的存储器,其特征在于,所述第一电平状态为高电平状态,所述第二电平状态为低电平状态。
6.根据权利要求5所述的存储器,其特征在于,所述接收电路,包括:与门;
所述与门的第一输入端接收对应的数据,所述与门的第二输入端接收对应的子选择信号,所述与门的输出端与所述传输电路连接。
7.根据权利要求3所述的存储器,其特征在于,所述传输电路,包括:多级或运算单元,每级所述或运算单元包括至少一个或门;
第一级或运算单元,用于对所述多个接收电路输出的数据进行或逻辑运算,得到多个第一运算结果;
除所述第一级或运算单元以外的每级或运算单元,用于对上一级或运算单元输出的运算结果进行或逻辑运算后输出,直至最后一级或运算单元输出最终的运算结果,传输至对应的冗余阵列的数据传输路径。
8.根据权利要求4所述的存储器,其特征在于,所述存储器还包括:
M个读选择电路,分别记为第1读选择电路,第2读选择电路,…,第i读选择电路,…,第M读选择电路;
其中,所述第i读选择电路接收从第i主存储阵列和所述多个冗余阵列读出的数据;所述第i读选择电路,用于根据第i读选择信号,输出从所述第i主存储阵列读出的数据或从其中一个冗余阵列读出的数据。
9.根据权利要求8所述的存储器,其特征在于,所述读选择电路,包括:
多个读选择子电路,分别记为第1读选择子电路,第2读选择子电路,…,第k读选择子电路,…,第L读选择子电路;每个第i读选择信号包括多个读子信号,分别记为第1读子信号,第2读子信号,…,第k读子信号,…,第L读子信号;
所述第i读选择电路的每个读选择子电路,接收从第i主存储阵列读出的1比特数据和从每个冗余阵列读出的1比特数据。
10.根据权利要求9所述的存储器,其特征在于,所述读选择子电路,包括:数据选择器;
所述数据选择器的数据输入端分别接收从所述第i主存储阵列读出的1比特数据和从每个所述冗余阵列读出的1比特数据,所述数据选择器的选择端接收对应的所述读子信号。
11.根据权利要求10所述的存储器,其特征在于,每个第i读选择信号的每个第k读子信号包括N个比特;
所述第k读子信号的第j比特的信号状态与所述第j写选择信号中第k写子信号的第i子选择信号的信号状态一致。
12.根据权利要求11所述的存储器,其特征在于,
所述第k读选择子电路,响应于所述第k读子信号的第j比特处于第一电平状态,输出从所述第j冗余阵列读取的数据;
所述第k读选择子电路,响应于所述第k读子信号的所有比特均处于第二电平状态,输出从对应的主存储阵列读取的数据。
13.根据权利要求1-12任一项所述的存储器,其特征在于,冗余阵列的数量为两个。
14.根据权利要求13所述的存储器,其特征在于,所述多个主存储阵列同行排布,且所述两个冗余阵列分别设置在所述多个主存储阵列的两端。
15.根据权利要求1-12任一项所述的存储器,其特征在于,至少一个所述主存储阵列为校验码存储阵列,所述校验码存储阵列存储有校验码数据。
16.根据权利要求15所述的存储器,其特征在于,所述存储器还包括:校验模块;
所述校验模块与所述多个写选择电路连接,所述多个写选择电路接收的数据包括待写入数据和校验码数据,所述校验模块用于根据所述待写入数据,生成所述校验码数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310355882.2A CN116072195B (zh) | 2023-04-06 | 2023-04-06 | 存储器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310355882.2A CN116072195B (zh) | 2023-04-06 | 2023-04-06 | 存储器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116072195A CN116072195A (zh) | 2023-05-05 |
CN116072195B true CN116072195B (zh) | 2023-08-18 |
Family
ID=86177160
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310355882.2A Active CN116072195B (zh) | 2023-04-06 | 2023-04-06 | 存储器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116072195B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5163023A (en) * | 1989-11-17 | 1992-11-10 | Inmos Limited | Memory circuit capable of replacing a faulty column with a spare column |
CN1744230A (zh) * | 2004-08-30 | 2006-03-08 | 三星电子株式会社 | 具有支持多存储块的列冗余电路的半导体存储设备 |
CN102237132A (zh) * | 2010-05-06 | 2011-11-09 | 复旦大学 | 一种存储器 |
JP2015118561A (ja) * | 2013-12-18 | 2015-06-25 | 富士通株式会社 | ストレージ制御装置、ストレージ制御プログラム及びストレージ制御方法 |
CN106710635A (zh) * | 2015-11-17 | 2017-05-24 | 旺宏电子股份有限公司 | 存储器装置及相应的写入方法 |
JP2020077446A (ja) * | 2018-11-09 | 2020-05-21 | 華邦電子股▲ふん▼有限公司Winbond Electronics Corp. | メモリデバイス及びその内蔵セルフテスト方法 |
CN112825265A (zh) * | 2019-11-21 | 2021-05-21 | 爱思开海力士有限公司 | 存储器、存储器系统、存储器的操作方法和存储器系统的操作 |
CN113168883A (zh) * | 2021-03-24 | 2021-07-23 | 长江存储科技有限责任公司 | 具有使用冗余库的故障主库修复的存储器器件 |
CN113632172A (zh) * | 2021-03-24 | 2021-11-09 | 长江存储科技有限责任公司 | 使用冗余存储体进行故障主存储体修复的存储器件 |
CN114116324A (zh) * | 2020-08-27 | 2022-03-01 | 长鑫存储技术(上海)有限公司 | 数据传输电路和存储器 |
CN115810388A (zh) * | 2021-09-16 | 2023-03-17 | 长鑫存储技术有限公司 | 存储器的检测方法及检测装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101228519B1 (ko) * | 2005-12-12 | 2013-02-01 | 삼성전자주식회사 | 반도체 메모리 장치, 그것을 포함한 테스트 시스템, 그리고반도체 메모리 장치의 리페어 방법 |
KR20210157864A (ko) * | 2020-06-22 | 2021-12-29 | 에스케이하이닉스 주식회사 | 메모리 및 메모리의 동작 방법 |
-
2023
- 2023-04-06 CN CN202310355882.2A patent/CN116072195B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5163023A (en) * | 1989-11-17 | 1992-11-10 | Inmos Limited | Memory circuit capable of replacing a faulty column with a spare column |
CN1744230A (zh) * | 2004-08-30 | 2006-03-08 | 三星电子株式会社 | 具有支持多存储块的列冗余电路的半导体存储设备 |
CN102237132A (zh) * | 2010-05-06 | 2011-11-09 | 复旦大学 | 一种存储器 |
JP2015118561A (ja) * | 2013-12-18 | 2015-06-25 | 富士通株式会社 | ストレージ制御装置、ストレージ制御プログラム及びストレージ制御方法 |
CN106710635A (zh) * | 2015-11-17 | 2017-05-24 | 旺宏电子股份有限公司 | 存储器装置及相应的写入方法 |
JP2020077446A (ja) * | 2018-11-09 | 2020-05-21 | 華邦電子股▲ふん▼有限公司Winbond Electronics Corp. | メモリデバイス及びその内蔵セルフテスト方法 |
CN112825265A (zh) * | 2019-11-21 | 2021-05-21 | 爱思开海力士有限公司 | 存储器、存储器系统、存储器的操作方法和存储器系统的操作 |
CN114116324A (zh) * | 2020-08-27 | 2022-03-01 | 长鑫存储技术(上海)有限公司 | 数据传输电路和存储器 |
CN113168883A (zh) * | 2021-03-24 | 2021-07-23 | 长江存储科技有限责任公司 | 具有使用冗余库的故障主库修复的存储器器件 |
CN113632172A (zh) * | 2021-03-24 | 2021-11-09 | 长江存储科技有限责任公司 | 使用冗余存储体进行故障主存储体修复的存储器件 |
CN115810388A (zh) * | 2021-09-16 | 2023-03-17 | 长鑫存储技术有限公司 | 存储器的检测方法及检测装置 |
Also Published As
Publication number | Publication date |
---|---|
CN116072195A (zh) | 2023-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109785894B (zh) | 半导体存储器装置、存储器系统和操作方法 | |
US8874979B2 (en) | Three dimensional(3D) memory device sparing | |
CN108877870B (zh) | 用于修复操作的修复电路以及包括修复电路的存储器件 | |
CN112837725A (zh) | 半导体存储器件和操作半导体存储器件的方法 | |
US11263078B2 (en) | Apparatuses, systems, and methods for error correction | |
CN112447253A (zh) | 半导体存储器装置和控制半导体存储器装置的修复的方法 | |
US5109360A (en) | Row/column address interchange for a fault-tolerant memory system | |
JPH081617B2 (ja) | メモリフォルトマッピング装置、検出エラーのマッピング方法及びマルチパスメモリフォルトマッピング装置 | |
JPH0322680B2 (zh) | ||
US11869592B2 (en) | Apparatuses and methods for decoding addresses for memory | |
US7107501B2 (en) | Test device, test system and method for testing a memory circuit | |
US11621050B2 (en) | Semiconductor memory devices and repair methods of the semiconductor memory devices | |
CN212675921U (zh) | 存储器装置和存储器系统 | |
US10229752B2 (en) | Memory device correcting data error of weak cell | |
EP0096779B1 (en) | Multi-bit error scattering arrangement to provide fault tolerant semiconductor memory | |
US4462091A (en) | Word group redundancy scheme | |
WO2005117027A1 (en) | Repair of memory cells | |
CN116072195B (zh) | 存储器 | |
US6539505B1 (en) | Method of testing a semiconductor memory, and semiconductor memory with a test device | |
US20200389187A1 (en) | Method of training artificial intelligence to execute decoding program of low density parity check code | |
WO2024093045A1 (zh) | 存储器 | |
CN118038947A (zh) | 存储器 | |
CN113345511A (zh) | 存储器件及其测试方法 | |
KR20210122455A (ko) | 반도체 메모리 장치 | |
EP4036917B1 (en) | Memory device, testing method therefor and usage method therefor, and memory system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |