CN111326207A - 存储器测试技术 - Google Patents
存储器测试技术 Download PDFInfo
- Publication number
- CN111326207A CN111326207A CN201911292620.6A CN201911292620A CN111326207A CN 111326207 A CN111326207 A CN 111326207A CN 201911292620 A CN201911292620 A CN 201911292620A CN 111326207 A CN111326207 A CN 111326207A
- Authority
- CN
- China
- Prior art keywords
- row
- column
- errors
- data
- error
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 97
- 238000012360 testing method Methods 0.000 title claims abstract description 22
- 238000000034 method Methods 0.000 title claims description 143
- 238000012937 correction Methods 0.000 claims abstract description 63
- 230000008439 repair process Effects 0.000 claims description 84
- 230000000295 complement effect Effects 0.000 claims description 10
- 238000009825 accumulation Methods 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 10
- 238000001514 detection method Methods 0.000 description 6
- 238000004519 manufacturing process Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 108010077641 Nogo Proteins Proteins 0.000 description 5
- 102100029831 Reticulon-4 Human genes 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000005291 magnetic effect Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000005415 magnetization Effects 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 238000012956 testing procedure Methods 0.000 description 1
Images
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/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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/102—Error in check bits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1048—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
- G06F11/106—Correcting systematically all correctable errors, i.e. scrubbing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/27—Built-in tests
-
- 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/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/025—Detection or location of defective auxiliary circuits, e.g. defective refresh counters in signal lines
-
- 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/10—Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns
-
- 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/14—Implementation of control logic, e.g. test mode decoders
- G11C29/16—Implementation of control logic, e.g. test mode decoders using microprogrammed units, e.g. state machines
-
- 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/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
- G11C29/20—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits using counters or linear-feedback shift registers [LFSR]
-
- 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/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
- G11C29/24—Accessing extra cells, e.g. dummy cells or redundant cells
-
- 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/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
- G11C29/30—Accessing single arrays
- G11C29/34—Accessing multiple bits simultaneously
-
- 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/36—Data generation devices, e.g. data inverters
-
- 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
-
- 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
-
- 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/52—Protection of memory contents; Detection of errors in memory contents
-
- 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/72—Masking faults in memories by using spares or by reconfiguring with optimized replacement algorithms
-
- 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/74—Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
-
- 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/78—Masking faults in memories by using spares or by reconfiguring using programmable devices
- G11C29/781—Masking faults in memories by using spares or by reconfiguring using programmable devices combined in a redundant decoder
-
- 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/78—Masking faults in memories by using spares or by reconfiguring using programmable devices
- G11C29/80—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
- G11C29/802—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout by encoding redundancy signals
-
- 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/78—Masking faults in memories by using spares or by reconfiguring using programmable devices
- G11C29/80—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
- G11C29/81—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout using a hierarchical redundancy scheme
-
- 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/78—Masking faults in memories by using spares or by reconfiguring using programmable devices
- G11C29/80—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
- G11C29/814—Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout for optimized yield
-
- 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
- G11C2029/0403—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals during or with feedback to manufacture
-
- 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/18—Address generation devices; Devices for accessing memories, e.g. details of addressing circuits
- G11C2029/1802—Address decoder
-
- 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/36—Data generation devices, e.g. data inverters
- G11C2029/3602—Pattern generator
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本文描述的各种实施方式涉及具有耦接到存储器的编码器的设备。ECC编码器从存储器内置自测电路接收输入数据,通过对输入数据进行编码并将校验比特添加到输入数据来生成经编码的数据,并将经编码的数据写入存储器。该设备可以具有耦接到存储器的ECC解码器。ECC解码器从存储器中读取经编码的数据,通过对经编码的数据进行解码并从经编码的数据中提取校验比特来生成经校正的数据,并提供经校正的数据和双比特错误标志作为输出。ECC解码器具有纠错逻辑,纠错逻辑基于校验比特来对经解码的数据执行纠错,其中,如果纠错逻辑在经解码的数据中检测到多比特错误,则纠错逻辑对经解码的数据中的多比特错误进行校正以提供经校正的数据。
Description
相关申请的交叉引用
本专利申请要求于2018年12月17日提交的题为“MEMORY TESTING TECHNIQUES”的美国临时专利申请号62/780881的优先权和权益,该临时申请的全部内容通过引用并入本文。
背景技术
本节旨在提供与理解本文所述的各种技术相关的信息。正如本节的标题所暗示的,这是对相关技术的讨论,其绝不暗示它是现有技术。通常,相关技术可以被认为是或者可以不被认为是现有技术。因此,应当理解的是,本节中的任何陈述应当从这个角度来阅读,而不作为对现有技术的任何承认。
常规的存储器内置自测(MBIST)可能会发现错误。然而,由于常规的MBIST不使用纠错码(ECC)来修复特定的错误,因此MBIST无法检测或修复那些特定的错误。因此,需要改进存储器测试,以便有效地使用MBIST和ECC逻辑来提高随机存取存储器(RAM)的产量。
附图说明
本文参考附图描述了各种技术的实现。然而,应当理解,附图仅示出了本文所描述的各种实施方式,并不意味着限制本文所描述的各种技术的实施例。
图1-图3示出了根据本文所述的各种实施方式的用于测试存储器的各种方法的过程图。
图4-图5B示出了根据本文所述的各种实施方式的各种存储器测试电路的框图。
图6A-图6D示出了根据本文所述的各种实施方式的各种存储器电路的图。
具体实施方式
本文描述的各种实施方式涉及并且针对用于存储器应用的各种测试方案和技术。例如,本文描述的各种方案和技术涉及针对有效的冗余和ECC使用的存储器内置自测(MBIST),以提高存储器单元产量。一些MBIST测试可以在没有ECC的情况下定位一些错误,并使用冗余来修复一些错误,其中冗余修复指代列和/或行冗余修复。如果冗余修复后仍然存在一些错误,则MBIST通常会将这些经测试的芯片确定为劣质存储器芯片。这些错误中的一些错误可以使用ECC逻辑进行定位(fix),而期望使用ECC逻辑来修复这些错误以提高RAM(例如,eMRAM)的产量。因此,本文描述的各种方案和技术涉及使MBIST适用于使用冗余和ECC来进行测试和修复。因此,在各种实例中,对于一些错误,可以使用ECC校正来校正(或修复)多个比特,而保留一个或多个比特用于其他字段内错误中的ECC校正。为了克服常规MBIST技术的缺陷,本文描述的存储器测试方案和技术提供了构建存储器系统以与MBIST控制器通过接口连接以便绕过ECC逻辑、启用和使用ECC逻辑,并且还检测多比特错误。而且,本文描述的各种方案和技术可以将行/列修复能力与ECC修复能力相组合来修复硬故障,并且,ECC修复能力可以用于在产品的生命周期中可能出现的软故障。
现在将在本文中参考图1-图6D更详细地描述用于存储器应用的存储器测试电路的各种实施方式。
图1-图3示出了根据本文所述的实施方式的用于测试存储器的各种方法的流程图。具体地,图1示出了修复列和行以及进行MBIST运行的方法100,图2示出了使用有限状态机(FSM)来修复列相关数据的方法200,并且图3示出了用于使用FSM来修复行相关数据的方法300。
应当理解,即使方法100、200、300可以指示操作执行的特定次序,但是在一些情况下,操作的各种特定部分也可以以不同的次序并且在不同的系统上执行。在其他情况下,可以向方法100、200、300添加附加的操作和/或步骤和/或可以从方法100、200、300省略附加的操作和/或步骤。方法100、200、300可以以硬件和/或软件来实现。如果以硬件来实现,则方法100、200、300可以利用各种电路组件来实现,如参考图4-图5B所述的电路组件。如果以软件来实现,则方法100、200、300可以实现为被配置用于如本文所述的存储器测试的程序或软件指令过程,并且,与实现方法100、200、300有关的各种指令可以被存储在存储器和/或数据库中。例如,具有处理器和存储器的计算机或各种其他类型的计算设备可以被配置为执行方法100、200、300。
如参考图1所描述和显示的,方法100可以用于根据本文所述的各种方案和技术来修复列和行以及进行MBIST运行。例如,如本文所述,方法100可以用于改进存储器测试以进行有效的ECC使用,从而提高产量。
方法100可以识别存储器以进行纠错,其中存储器具有以列和行布置的比特单元阵列。在一些实施方式中,存储器指代包括以任意数量(M)的列和任意数量(N)的行布置的比特单元阵列的存储器电路。比特单元阵列中的每个比特单元可以被称为存储器单元,并且每个比特单元可以被配置为存储至少一个数据比特值(例如,与逻辑“0”或“1”相关联的数据值)。比特单元阵列中的每行的比特单元包括以各种配置来布置的任意数量的比特单元(或存储器单元),例如具有以二维(2D)网格图案布置的多个比特单元的列和行的二2D存储器阵列,其中该二维网格图案具有2D索引能力。每个比特单元可以利用随机存取存储器(RAM)电路或其他类型的易失型存储器来实现。例如,每个比特单元可以包括多晶体管静态RAM(SRAM)单元,包括各种类型的SRAM单元,例如6T CMOS SRAM和/或任何其他类型的互补MOS(CMOS)SRAM单元,例如,每个比特4T、8T、10T或更多晶体管。在其他情况下,每个比特单元可以利用嵌入式磁阻RAM(eMRAM)单元或类似的非易失性比特单元来实现。
在框110处,方法100可以在纠错码(ECC)被禁用的情况下,使用第一有限状态机(FSM)来修复列输入输出(IO)数据。列IO数据指代数据比特加校验比特。在一些实施方式中,方法100可以对存储器执行列错误修复,以通过利用错误累积分析列中的列相关数据来检测列中的列错误的数量,并且如果列中的列错误的数量大于第一预定错误数量,则利用冗余来修复列中的列相关数据。
在一些情况下,第一预定数量的错误可以指代多个列错误,并且如果在列相关数据中检测到多个列错误,则方法100可以启用列冗余修复并且可以利用列冗余来修复多个列错误。在一些实施方式中,多个列错误可以指代三个或更多个列错误。
在框120处,方法100可以在ECC被禁用的情况下使用第二FSM来修复行数据。在一些实施方式中,方法100模拟存储器的行纠错能力,以通过使用错误累积分析行中的行相关数据来检测行中的行错误的数量,并且如果行错误的数量大于第二预定错误数量,则利用冗余来修复行中的行相关数据(例如,如果相同数据集(例如,SL0)或相同地址中有2个或更多个错误,则修复整个行)。另外,如果行错误的数量小于或等于第二预定错误数量(例如,检测到1比特错误),则使用(或依靠)纠错码(ECC)来修复行的行相关数据中的比特错误。
在一些情况下,第二预定错误数量可以指代多个行错误,并且如果在相同数据集中检测到多个行错误,则可以利用行冗余来修复整个行。而且,多个行错误可以指代相同数据集中的两个或更多个错误,并且相同数据集可以指代相同行地址。如图6A-图6D所示,相同数据集可以指代与相同源极线(SL)数据集有关的数据,例如SL0数据,其可以与用于每一列IO6至IO0的相同数据集相关联。类似地,SL0、SL1、SL2、SL3数据中的每一个可以与用于每一列IO6至IO0的相同数据集相关联。例如,数据可以包括若干比特(即,=若干IO)。当读取一个地址时,这意味着针对每个IO选择了一个WL(例如,WL1),并且选择了一个SL(例如,SL2)。在这种情况下,地址(@)可以包括用于在4个WL之中选择一个WL的多个比特,并且这些比特还可以用于在4个SL之中选择1个SL。这样,当地址=01 01时,这意味着从所有IO中选择了WL1,并且选择了SL1。此外,它允许读取7个比特(例如,IO0至IO6)的能力。
在框130处,可以在启用ECC且不涉及修复的情况下执行MBIST运行。例如,在框130处,BIST可以在已经按照行和列进行修复(例如,在框110和120处)的存储器上运行。由于应当修复存储器,所以框130的意图可以是确保BIST通过。如果BIST检测到错误,这意味着在框110和120处检测到的修复不正确,BIST已经检测到更多错误,和/或ECC无法修复该错误。在一些实施方式中,MBIST运行可以指代使用ECC编码器来从MBIST电路接收输入数据(n个比特),生成经编码的数据(m个比特),然后将经编码的数据(m个比特)写入存储器。可以通过对输入数据(n个比特)进行编码并且通过将校验比特添加到输入数据(n个比特)来生成经编码的数据(m个比特)。MBIST运行还可以指代使用ECC解码器来从存储器中读取经编码的数据(m个比特),生成经校正的数据(n个比特),并提供经校正的数据(n个比特)和多比特错误标志作为输出。可以通过对经编码的数据(m个比特)进行解码并从经编码的数据(m个比特)中提取校验比特来生成经校正的数据(n个比特)。ECC解码器可以具有纠错逻辑,该纠错逻辑基于校验比特对经解码的数据(n个比特)执行纠错。如果纠错逻辑在经解码的数据(n个比特)中检测到多比特错误,则纠错逻辑对经解码的数据(n个比特)中的多比特错误进行校正以提供经校正的数据(n个比特)。在一些情况下,m>n,其中,将校验比特添加到n个比特,这等于m个比特(即,m=n+check_bits)。与MBIST运行有关的这些和其他方面在下面参考图4进行描述。
如参考图2所描述和示出的,方法200可以用于根据本文描述的各种方案和技术使用第一FSM来修复列相关数据。例如,如本文所述,方法200可以用于改进存储器测试以进行有效的ECC使用,从而提高产量。
在框210处,方法200可以选择地址(例如,地址=0)以执行纠错。在一些实施方式中,方法200可以识别具有比特单元阵列的存储器,并且方法200还可以选择比特单元阵列中的列(或列地址)来进行纠错。在一些实施方式中,列(或列地址)可以指代列IO。
在框220处,方法200可以向该列(或列地址)写入第一列数据序列(例如,010101…),并且方法200可以在向列(或列地址)写入第一列数据序列之后从该列(或列地址)读取第二列数据序列。
在框230处,方法200可以确定或检测错误数量(例如,第一错误数量),其中如果检测到错误,则可以将列错误计数寄存器(例如,faultyIO<N>,其中N=错误的IO)增加列错误计数。在一些实施方式中,方法200可以通过将第一列数据序列与第二列数据序列进行比较来检查第二列数据序列以得到错误数量。同样,在这种情况下,方法200可以通过将列错误计数器增加在列(或列地址)中检测到的错误数量(例如,第一错误数量)来累积列错误计数。
在框240处,方法200可以向该列(或列地址)写入第三列数据序列(例如,101010…),并且方法200可以在向该列(或列地址)写入第三列数据序列之后从该列(或列地址)读取第四列数据序列。在一些实施方式中,第三数据序列可以是第一数据序列的补码或反码。
在框250处,方法200可以确定或检测错误数量(例如,第二错误数量),其中如果检测到错误,则可以将列错误计数寄存器(例如,faultyIO<N>,其中N=错误的IO)增加列错误计数。在一些情况下,方法200可以通过将第三列数据序列与第四列数据序列进行比较来检查第四列数据序列以得到错误数量。同样,在这种情况下,方法200可以通过将列错误计数器增加在列(或列地址)中检测到的错误数量(例如,第二错误数量)来累积列错误计数。
如图2所示,参考操作255,可以对属于当前列的一个或多个或所有附加存储器单元重复执行框220-250。在这种情况下,可以通过使错误计数器增加以达到当前列中的错误计数来执行该错误累积循环。在判定框260处,方法200可以确定在相同列(或列地址)上是否存在多个列错误(例如,3个或更多个错误)。如果否,则方法200前进到判定框265。如果是,则方法200前进到判定框270。如果列错误计数寄存器(例如,faultyIO<N>,其中N=错误的IO)指代多个错误(例如,3个或更多个错误),则方法200前进到判定框270。在一些情况下,可以检测到任何数量的多个错误。
在框270处,方法200可以将与列相关联的列地址(或列IO地址)存储在修复寄存器中(例如,faultyIO<N>,其中N=错误的IO),以在列错误计数中的错误数量大于或等于预定错误数量(例如,3个或更多个错误)的情况下使用列冗余来进行修复。在一些实施方式中,修复寄存器(例如,faultyIO<N>,其中N=错误的IO)可能已满。在这种情况下,如果列地址未被存储在修复寄存器中,则在框280中,方法200可以确定存储器芯片是劣质芯片并且不应该被使用(NOGO)。否则,如果列地址被存储在修复寄存器中,则方法200前进到判定框265。
在判定框265中,方法200确定是否已经达到最大列数(max@column)。如果否,则方法200前进到框275以处理存储器中的下一个列地址(@++),并且方法200从框275返回至框220。否则,在判定框265中,如果已经达到最大列数(max@columns),则方法200前进到框285,以对列地址应用IO修复。
如参考图3所描述和示出的,方法300可以用于根据本文描述的各种方案和技术使用第二FSM来修复行相关数据。例如,如本文所述,方法300可以用于改进存储器测试以进行有效的ECC使用,从而提高产量。
在框310处,方法300可以选择地址(例如,行地址,rrow=0h,REFSEL=0,address=0h)以执行纠错。在一些实施方式中,方法300可以识别具有比特单元阵列的存储器,并且方法300还可以选择比特单元阵列中的行(或行地址)来进行纠错。在这种情况下,“&”符号指代任何存储器“地址(address)”。术语“rrow”(冗余行)指代反映修复存储器所需的冗余行的数量的变量。例如,冗余行的数量可以包括几个备用元素(例如,8个,其中rrow_max=8)。在一些情况下,当需要的冗余行多于rrow_max时,可能无法修复存储器,因此该存储器为NOGO。
在框320处,方法300可以将粘性寄存器清零。例如,粘性寄存器可以用作对行中检测到的错误进行累积(或计数)的寄存器。
在框330处,方法300可以向行(或行地址)写入第一列数据序列(例如,核对器板数据序列,例如010101…),并且方法300可以在向行(或行地址)写入第一行数据序列之后从该行(或行地址)读取第二行数据序列。而且,方法300可以比较第一数据序列和第二数据序列并且利用第一数据序列和第二数据序列的比较来加载粘性寄存器,以强调第一数据序列中的比特错误,从而对行相关数据中的错误数量进行计数。在一些情况下,可以使用布尔运算(例如,“与(AND)”或“或(OR)”)来强调第一数据序列和第二数据序列之间的差异(即,错误)。然而,可以使用其他方法来进行强调并计算该差异(或错误)。在一些实施方式中,方法300可以通过将第一行数据序列与第二行数据序列进行比较来检查第二行数据序列以得到错误数量,并且方法300可以通过将行错误计数器增加该错误数量来累积行错误计数。同样,在一些情况下,粘性寄存器对整个行(WL)而不是在第一行和第二行之间执行错误累积。例如,参考图6,当选择一个行(一个WL)时,粘性寄存器将在选择SL0,然后选择SL1,然后选择SL2,然后选择SL3的情况下对错误进行累积。这样,这意味着在4个地址处执行写入/读取,并且针对这4个地址来在粘性寄存器中累积错误。一旦完成,便可以将粘性寄存器清零并处理下一个行。
在框340处,方法300可以向行(或行地址)写入第三列数据序列(例如,反转的核对器板数据序列,例如101010…),并且方法300可以在向行(或行地址)写入第三行数据序列之后从该行(或行地址)读取第四行数据序列。而且,方法300可以比较第三数据序列和第四数据序列,并且利用第三数据序列和第四数据序列来加载粘性寄存器,以对行相关数据中的错误数量进行计数。在一些实施方式中,方法300可以通过将第三行数据序列与第四行数据序列进行比较来检查第四行数据序列以得到错误数量,并且方法300可以通过使行错误计数器增加该错误数量来累积行错误计数。在一些情况下,第三数据序列是第一数据序列的补码或反码。
而且,在框340处,如果行错误计数(反映在粘性寄存器中)小于或等于预定错误数量(例如,≤1比特错误),则方法300前进到框345。在框345处,方法300前进到下一个地址(address++),并返回至框320以处理下一个行。在一些情况下,在框345处,如果该address大于最大地址数(例如,@>@_max),则方法300可以确定该存储器芯片是可接受的(GO),然后方法300可以推荐制造该存储器芯片。否则,在框340处,如果行错误计数大于预定错误数量(例如,>1比特错误),则方法300前进到框350。在这种情况下,错误数量可以指代一个或多个错误。
在框350处,如果行错误计数中的错误数量大于预定错误数量(1个或多个错误),则方法300可以加载内置自修复(BISR)以将与该行相关联的行地址存储在修复寄存器中以便利用行冗余来进行修复。在一些实施方式中,如果行错误计数中的错误数量小于或等于预定错误数量(例如,1个错误),则方法300可以依靠纠错码(ECC)来修复行中的多个错误。
而且,在框350处,如果修复的行的数量小于或等于最大冗余行数量(例如,rrow@≤rrow_max),则方法300可以进行到下一个地址(address++)并返回到框320以处理下一个地址。否则,在框350处,如果修复的行的数量大于最大冗余行数量(例如,rrow>rrow_max),则方法300可以确定存储器芯片是不可接受的(NOGO),然后方法300可以不推荐制造该存储器芯片。
在一些实施方式中,方法300可以按照以下方式来处理比特单元阵列中的每一行。例如,方法300可以向行写入预定数据序列(例如,010101…)并读取该预定数据序列,并且当读取时,方法300可以对错误数量进行计数,然后将错误存储在粘性寄存器中。例如,粘性寄存器可能未存储错误计数,并且粘性寄存器比特保持有效(asserted),直到被清零。每当检测到数据比特有错误时,使来自粘性寄存器中的对应(相同索引)比特有效,并保持有效,直到被清零为止。这对应于逐比特错误累积。而且,方法300可以向相同行写入反转的数据序列(例如,101010…)写入并读取该反转的数据序列,并且当读取时,方法300可以对错误数量进行计数,并将错误存储在粘性寄存器中。而且,如果检测到多于1比特错误,则方法300可以利用冗余来修复行。否则,如果粘性寄存器中错误计数为1比特或更少,则方法300可以依靠ECC来修复行错误。然后,方法300可以继续(或前进)到下一个行。
图4-图5B示出了根据本文所述的实施方式的各种存储器测试电路的框图。具体地,图4示出了纠错电路400,其适用于ECC被启用且不涉及修复的情况下的MBIST运行,其中,由于FSM1和FSM2,因此可以修复存储器,但是MBIST可能不在(例如,如上文参考图1-图3所述的)现有修复解决方案之上执行修复。另外,图5A示出了适用于没有总线置换(busswapping)情况下的MBIST运行的纠错电路500A,并且图5B示出了适用于具有总线置换情况下的MBIST运行的纠错电路500B。
如图4所示,纠错电路400可以包括存储器电路402、MBIST电路404和ECC电路406。在一些实施方式中,ECC电路406可以包括各种电路,包括ECC编码器410、存储器412、ECC解码器420和副本(或伪)MBIST 422。存储器412可以包括数据比特(n)414、ECC校验比特416以及行和列IO修复逻辑,以及备用元素418(例如,冗余行和/或列)。而且,纠错电路400可以被实现为具有各种类型的存储器电路402和存储器412(例如,任何类型的存储器)的集成电路(IC)。
ECC编码器410耦接到存储器412。ECC编码器410从MBIST电路404接收输入数据(基于DI<n-1:0>的n个比特),通过对输入数据(n个比特)进行编码并通过将校验比特添加到输入数据(n个比特)来生成经编码的数据,并将经编码的数据(m个比特)写入存储器412。在一些情况下,m>n,其中校验比特被添加到n个比特=m个比特(m=n+check_bits)。另外,存储器412存储输入数据(n个比特)、ECC校验比特416以及与行和/或列相关的冗余修复。ECC解码器420也耦接到存储器412,并且ECC解码器420从存储器412读取经编码的数据(m个比特),通过对经编码的数据(m个比特)进行解码并通过从经编码的数据(m个比特)中提取校验比特来生成经校正的数据(具有n个比特的dout_ecc),并提供经校正的数据(具有n个比特的dout_ecc)和多比特错误标志(dbit_err)作为输出。多比特错误标志(dbit_err)可以指代双比特错误。在一些实施方式中,ECC解码器420可以包括纠错逻辑,该纠错逻辑基于校验比特来对经解码的数据(n个比特)执行纠错。多比特错误标志(dbit_err)指代来自ECC逻辑的附加信息。
在一些实施方式中,如果经解码的数据(n个比特)中的多比特错误标志(dbit_err)小于1比特错误,则纠错逻辑将提供错误标志零。如果经解码的数据(n个比特)中的多比特错误标志(dbit_err)等于1比特错误,则纠错逻辑将校正经解码的数据(n个比特)中的1比特错误并提供错误标志0。另外,如果经解码的数据(n个比特)中的多比特错误标志(dbit_err)大于1比特错误,则纠错逻辑可以尝试校正经解码的数据(n个比特)中的多比特错误,并且可以提供错误标志1。在每种情况下,存储器412可以使用行和列修复418。
在一些实施方式中,MBIST可以在具有ECC逻辑的情况下针对n个比特运行,并且可以利用ECC来校正2个或更少的比特错误,并且在字段中仍然留下1比特纠错能力。如果存在3个或更多个比特错误,则MBIST可以在无ECC逻辑的情况下针对m个比特运行,并且如果发现任何错误,则可以使用冗余修复。在冗余修复之后,一些多比特错误可能无法使用冗余完全被修复。因此,在这种情况下,MBIST可以在具有ECC逻辑的情况下在n个比特上运行,并且可以利用ECC来校正2个或更少的比特错误,并且在字段中仍然留下1比特纠错能力。如果存在3个或更多个比特错误,则此错误结果可能被认为是确定坏存储器芯片。
如图4所示,纠错电路400可以包括副本MBIST 422,其从ECC解码器420接收经校正的数据(dout_ECC)和错误标志(dbit_err)并将输出数据(例如,具有n个比特的DO<n-1:0>)提供给MBIST 404。在一些情况下,如果错误标志为0,则副本MBIST 422可以依靠纠错编码(ECC)来校正(或修复)数据(n个比特)中的多比特错误。然而,在其他情况下,如果错误标志(dbit_err)为1,则副本MBIST 422可以翻转经校正的数据(n个比特)的数据序列。这样,对于副本MBIST,当错误标志(dbit_err)为0时,则副本MBIST 422不执行任何操作,并且副本MBIST 422依靠ECC来校正错误。然而,当错误标志(dbit_err)为1时,则副本MBIST 422可以修改DO(例如,通过翻转DO的数据序列)以确保MBIST 404检测到数据中的错误。在这种情况下,存储器芯片为NOGO,其中不建议使用该存储器芯片,并且其中应当(或必须)置换该存储器芯片。
通常,MBIST 404写入数据,读取数据以及对读取和写入的数据进行比较以检测数据中的错误。在MBIST 404的运行期间,将启用ECC,并且不涉及任何修复。另外,MBIST 404不知道利用冗余来进行内部纠错。本文描述的方案和技术的一个目标可以涉及不使用MBIST的内部修复能力。本文描述的方案和技术的另一个目标还可以涉及利用FSM增强修复能力。
如图5A所示,纠错电路500A可以适用于没有输入和输出总线置换502、504的情况下的MBIST运行。如图5B所示,纠错电路500B可以适用于具有输入和输出总线置换512、514的情况下的MBIST运行。图5A-图5B中的一些组件在范围、功能和操作上可能类似于图4中的类似组件。
在一些实施方式中,可以在通过ECC电路406进行的多次传递(multiple passes)中执行对数据错误的检查,例如,在图5A中的没有总线置换502、504的情况下进行的第一传递中以及在图5B中的具有总线置换512、514的情况下进行的第二传递中。通过ECC电路406进行的多次传递可以用于增加错误检测的覆盖范围,以确保存储器电路中的比特单元的MBIST应力(stress)。
在图5A中,参考对来自ECC编码器410的经编码的数据的错误检查,可以在没有数据置换的情况下执行输入数据502和输出数据504的第一传递。例如,在第一传递期间,没有数据置换的情况下的输入数据502可以指代数据序列(例如,000000000),并且ECC编码器410可以生成ECC校验比特并将ECC校验比特添加到数据序列(例如,000000001011)。可以使用MBIST运行来测试具有校验比特的数据序列,并且MBIST 404通过将输入数据(DI)502与输出数据(DO)504进行比较来执行错误检测。类似地,在另一情况下,在另一第一传递期间,输入数据502可以指代经反转的数据序列(例如,11111111),并且ECC编码器410可以生成具有ECC校验比特的经反转的数据序列(例如,111111110110)。在这种情况下,可以利用MBIST运行来测试具有校验比特的经反转的数据序列,并且可以将输出数据504与输入数据502进行比较以进行错误检测。
在图5B中,参考对来自ECC编码器410的经编码的数据的错误检查,可以在具有数据置换的情况下执行输入数据512和输出数据514的第二传递。例如,在第二传递期间,具有数据置换的输入数据512可以指代数据序列(例如,000000000),并且ECC编码器410可以生成具有ECC校验比特的数据序列并置换具有ECC校验比特的数据序列(例如,101100000000)。此外,可以使用MBIST运行来测试具有校验比特的数据序列,并且MBIST404通过将输入数据(DI)512与输出数据514进行比较来执行错误检测。类似地,在另一情况下,在另一第一传递期间,输入数据512可以指代经反转的数据序列(例如,11111111),并且ECC编码器410可以生成具有ECC校验比特的经反转的数据序列并置换具有ECC校验比特的经反转的数据序列(例如,011011111111)。在这种情况下,可以使用MBIST运行来测试具有校验比特的经反转的数据序列,并且MBIST 404通过将输入数据(DI)512与输出数据514进行比较来执行错误检测。
图6A-图6D示出了根据本文所述的各种实施方式的存储器电路600的图。具体地,图6A示出了具有多个列错误的存储器电路600的图600A,图6B示出了具有单个列错误和多个列错误的存储器电路600的另一图600B,图6C示出了具有单个行错误的存储器电路600的图600C,并且图6D示出了具有行错误的存储器电路600的另一图600D,例如,其中基于SL1的数据集具有2比特行错误。在图6A-图6D中,存储器电路600以行(WL0、WL1,WL2、WL3)和列(SL0、SL1、SL2、SL3)的集合来布置。此外,存储器电路600包括列多路复用器(col_mux),其耦接到列(SL0、SL1、SL2、SL3)的集合并提供列IO(IO0、IO1、IO2,IO3、IO4、IO5、IO6)。
如图6A所示,针对列IO6在列(SL0)上检测到三个错误(黑点),并且针对列IO2在列(SL2)上也检测到三个错误。在这种情况下,内部修复电路可以任意修复列IO2,而ECC电路可以尝试修复列IO6。如果ECC电路无法修复第IO6,则ECC电路可能会建议该存储器芯片出现故障,并且不应用于制造或生产(即,芯片使用为NOGO)。
如图6B所示,针对列IO6在列(SL0)上检测到一个错误(黑点),并且针对列IO2在列(SL2)上还检测到两个错误。在这种情况下,内部修复电路可以任意修复列IO2上的错误,而ECC电路也可以修复列IO6上的单个错误。通常,ECC电路能够使用ECC来针对每个列IO修复少于三个的错误。
如图6C所示,在行(WL0)上检测到两个错误(黑点),例如,与IO6的列(SL0)有关的一个行错误以及与IO2的列(SL2)有关的一个行错误。在这种情况下,行错误不在相同的列集合中,例如,列集合(SL0)与列集合(SL2)不同。这样,ECC电路可以任意地修复列IO2和列IO6上的行错误。通常,ECC电路能够使用ECC来修复给定字的少于两个错误。
如图6D所示,可以在行(WL0)上检测到三个错误(黑点),例如,与IO5、IO4的列(SL1)有关的两个行错误,以及与IO1的列(SL2)有关的一个行错误。在这种情况下,两个行错误位于相同的列集合(SL1)中,并且ECC电路可能无法修复相同的列集合(SL1)中的两个或更多个错误。这样,即使ECC电路可以任意修复IO1的列(SL2)上的单个行错误,但ECC电路可能无法使用ECC来修复IO5、IO4的相同的列集合(SL1)中的两个或更多个错误。这样,在这种情况下,FSM行修复将修复WL0,这是因为WL0上有2个SL1存在错误。
通常,存在多种类型的存储器结构:单字线设备(即,单端口)和多字线设备(即,多端口存储器,例如,双端口存储器)。单字线设备(例如,ROM、RAM、DRAM、SRAM等)可以指代仅具有一个访问端口的设备,其可以被称为访问设备。位线可以利用单轨或双轨架构。晶体管类型(例如,N型MOS和P型MOS)可以被称为访问晶体管。在一些情况下,用最小尺寸的晶体管实现的高密度SRAM比特单元可能会限制设计的Vmin。然而,在FinFET技术中,对于具有最小尺寸晶体管的紧凑型6T SRAM比特单元,器件尺寸量化仍然是一个挑战。因此,在一些实施方式中,可以使用对设计存储器辅助电路的仔细优化来传递低功率存储器操作。此外,可以利用字线WL和互补位线BL、NBL来访问存储器阵列104中的每个比特单元。
通常,静态RAM比特单元可以包括6T个比特单元,其可以具有由字线(WL)控制的访问端口。在一些其他情况下,静态RAM比特单元可以用5T比特单元、4T 2R比特单元或各种其他类型的CMOS SRAM单元(例如,每个比特8T、10T或更多晶体管)来实现。此外,多字线可能产生到每个比特单元的多个访问端口。由于存在多个访问端口,因此在每个比特单元内,多端口访问设备可能有所不同,使得(端口的)一些访问设备是NFET,而端口的一些访问设备是PFET。尽管可以在每个单个比特单元中有效地改变它们,但是它们的端口数量可能不容易被划分成相等的电容和/或功率。因此,尽管这些多端口晶体管类型可以在每个比特单元内变化,但是也可能需要在阵列之间(如在左半阵列和右半阵列中)具有变化。
在一些实施方式中,其他RAM比特单元可以包括eMRAM单元。与常规RAM单元(例如,SRAM)不同,eMRAM中的数据是使用磁性存储元件而不是使用电荷或电流来存储的。磁性元件可以利用由薄绝缘层隔开的两个铁磁板来形成,其中一个板具有通过永磁体设定的极性,而另一个板被选择性地磁化以在整个板上显示出电阻差。这种配置被称为磁性隧道结,并形成MRAM单元的结构。为了存储数据,两个板将具有相同的磁化对准(magnetizationalignment)(低电阻状态),并且此数据存储状态被译为逻辑1状态。否则,当磁化对准不同时(高电阻状态),该另一数据存储状态被译为逻辑0状态。
本文描述了方法的各种实施方式。所述方法可以包括识别存储器以进行纠错,其中,所述存储器具有以列和行布置的比特单元阵列。所述方法可以包括对所述存储器执行列错误修复,以通过利用错误累积分析列中的列相关数据来检测列中的列错误的数量,并且如果所述列错误的数量大于第一预定错误数量,则利用冗余来修复所述列中的所述列相关数据。所述方法可以包括模拟所述存储器的行纠错能力,以通过利用错误累积分析行中的行相关数据来检测行中的行错误的数量,并且如果所述行错误的数量大于第二预定错误数量,则利用冗余来修复所述行中的所述行相关数据。如果所述行错误的数量小于或等于所述第二预定错误数量,则依靠纠错编码(ECC)来修复所述行的所述行相关数据中的比特错误。
本文描述了方法的各种实施方式。所述方法可以包括识别具有比特单元阵列的存储器。所述方法可以包括在所述比特单元阵列中选择列以进行纠错。所述方法可以包括向所述列写入第一列数据序列。所述方法可以包括在向所述列写入所述第一列数据序列之后,从所述列读取第二列数据序列。所述方法可以包括通过将所述第一列数据序列与所述第二列数据序列进行比较来检查所述第二列数据序列以得到错误数量。所述方法可以包括通过使列错误计数器增加所述错误数量来累积列错误计数。所述方法可以包括:如果所述列错误计数中的所述错误数量大于或等于预定错误数量,则将与所述列关联的列地址存储在修复寄存器中,以便使用列冗余来进行修复。
本文描述了方法的各种实施方式。所述方法可以包括识别具有比特单元阵列的存储器。所述方法可以包括在所述比特单元阵列中选择行以进行纠错。所述方法可以包括向所述行写入第一行数据序列。所述方法可以包括在向所述行写入所述第一行数据序列之后,从所述行读取第二行数据序列。所述方法可以包括通过将所述第一行数据序列与所述第二行数据序列进行比较来检查所述第二行数据序列以得到错误数量。所述方法可以包括通过将行错误计数器增加所述错误数量来累积行错误计数。所述方法可以包括:如果所述行错误计数中的所述错误数量大于预定错误数量,则将与所述行关联的行地址存储在修复寄存器中,以便使用行冗余来进行修复。所述方法可以包括:如果所述行错误计数中的所述错误数量小于或等于所述预定错误数量,则依靠纠错编码(ECC)来修复所述行中的所述数量的错误。
本文描述了设备的各种实施方式。所述设备可以包括耦接到存储器的纠错编码(ECC)编码器。所述ECC编码器从存储器内置自测(MBIST)电路接收输入数据(n个比特),通过对所述输入数据(n个比特)进行编码并将校验比特添加到所述输入数据(n个比特)来生成经编码的数据(m个比特),并将所述经编码的数据(m个比特)写入所述存储器。所述设备可以包括耦接到所述存储器的ECC解码器。所述ECC解码器从所述存储器读取所述经编码的数据(m个比特),通过对所述经编码的数据(n个比特)进行解码并从所述经编码的数据(m个比特)中提取所述校验比特来生成经校正的数据(n个比特),并提供所述经校正的数据(n个比特)和双比特错误标志作为输出。所述ECC解码器具有纠错逻辑,所述纠错逻辑基于所述校验比特来对所述经解码的数据(n个比特)执行纠错,其中,如果所述纠错逻辑在所述经解码的数据(n个比特)中检测到多比特错误,则所述纠错逻辑校正所述经解码的数据(n个比特)中的所述多比特错误以提供经校正的数据(n个比特)。
应当意图的是,权利要求的主题不限于本文提供的实现和说明,而是包括那些实现的修改形式,其包括根据权利要求的不同实现的实现的部分和元素的组合。应该理解在任何这种实现的开发中,如在任何工程或设计项目中,必须做出许多实现特定的决定以达到开发者的特定目标,例如服从与系统相关和业务相关的约束,这可能在实现之间不同。此外,应理解这种开发尝试可能是复杂的并消耗时间的,但依然是具有本公开的益处的本领域普通技术人员惯用的设计、制作和制造。
已经详细参考了各种实现,其示例在附图和图中示出。在下面的详细描述中,阐述了许多具体细节以提供对本文提供的公开的透彻理解。然而,本文提供的公开可以在没有这些具体细节的情况下实施。在一些其他实例中,没有详细描述公知的方法、过程、组件、电路和网络,以避免不必要地使实施例的细节模糊不清。
还应当理解,虽然本文可以使用术语第一、第二等来描述各种元件,但是这些元件不应被这些术语限制。这些术语仅用来将元素彼此区分开。例如,第一元件可以被称为第二元件,并且类似地,第二元件可以被称为第一元件。第一元件和第二元件二者分别是元件,但是它们不被认为是相同的元件。
本文提供的本公开的描述中使用的术语是为了描述特定实现的目的,并不旨在限制本文提供的公开。除非上下文另有明确说明,否则如本文提供的公开的描述和所附权利要求中使用的,单数形式“一”、“一个”和“该”也旨在包括复数形式。如本文所使用的术语“和/或”是指并且包括一个或多个相关联的所列项目的任何一个和所有可能的组合。术语“包括”、“包含”、“含有”和/或“具有”在本说明书中使用时,指定所陈述的特征、整体、步骤、操作、元素和/或组件的存在,但是并没有排除一个多个其它特征、整体、步骤、操作、元素、组件和/或其组合的存在或附加。
如本文所使用的,取决于上下文,术语“如果”可以被解释为意指“当……时”或“在……时”或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“如果确定”或“如果检测到[所陈述的条件或事件]”可以被解释为意指“在确定时”或“响应于确定”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。术语“上”和“下”;“上部”和“下部”;“向上”和“向下”;“下方”和“上方”;以及指示在给定点或元件上方或下方的相对位置的其他类似术语可以结合本文描述的各种技术的一些实施方式使用。
虽然前述内容针对本文所描述的各种技术的实现,但可以根据本文的公开内容设计其他及进一步的实现,其可以由后面的权利要求确定。
尽管已经以对结构特征和/或方法动作特定的语言描述了主题,但是应当理解的是,在所附权利要求中限定的主题不必受限于上面描述的特定特征或动作。相反,上面描述的特定特征和动作是作为实现权利要求的示例形式而公开的。
Claims (20)
1.一种方法,包括:
识别存储器以进行纠错,其中,所述存储器具有以列和行布置的比特单元阵列;
对所述存储器执行列错误修复,以通过利用错误累积分析所述列中的列相关数据来检测所述列中的列错误的数量,并且如果所述列错误的数量大于第一预定错误数量,则利用冗余来修复所述列中的所述列相关数据;以及
模拟所述存储器的行纠错能力,以通过使用错误累积分析所述行中的行相关数据来检测所述行中的行错误的数量,并且如果所述行错误的数量大于第二预定错误数量,则利用冗余来修复所述行中的所述行相关数据,以及
如果所述行错误的数量小于或等于所述第二预定错误数量,则依靠纠错编码ECC来修复所述行的所述行相关数据中的比特错误。
2.根据权利要求1所述的方法,其中,所述第一预定错误数量指代多个列错误,并且其中,如果在所述列相关数据中检测到所述多个列错误,则所述方法启用列冗余修复,并且利用列冗余来修复所述多个列错误。
3.根据权利要求2所述的方法,其中,所述多个列错误指代三个或更多个列错误。
4.根据权利要求1所述的方法,其中,所述第二预定错误数量指代多个行错误,并且其中,如果在相同数据集中检测到多个行错误,则利用行冗余来修复整个行。
5.根据权利要求4所述的方法,其中,所述多个行错误指代所述相同数据集中的两个或更多个错误。
6.根据权利要求4所述的方法,其中,所述相同数据集指代相同地址。
7.一种方法,包括:
识别具有比特单元阵列的存储器;
在所述比特单元阵列中选择列以进行纠错;
向所述列写入第一列数据序列;
在向所述列写入所述第一列数据序列之后,从所述列读取第二列数据序列;
通过将所述第一列数据序列与所述第二列数据序列进行比较来检查所述第二列数据序列以得到错误数量;
通过将列错误计数器增加所述错误数量来累积列错误计数;以及
如果所述列错误计数中的所述错误数量大于或等于预定错误数量,则将与所述列关联的列地址存储在修复寄存器中,以便使用列冗余来进行修复。
8.根据权利要求7所述的方法,其中,所述错误数量指代多个错误。
9.根据权利要求8所述的方法,其中,所述多个错误指代三个或更多个错误。
10.根据权利要求7所述的方法,还包括:
向所述列写入第三列数据序列;
在向所述列写入所述第三列数据序列之后,从所述列读取第四列数据序列;
通过将所述第三列数据序列与所述第四列数据序列进行比较来检查所述第四列数据序列以得到所述错误数量;
通过将所述列错误计数器增加所述错误数量来累积所述列错误计数;以及
如果所述列错误计数中的所述错误数量大于或等于所述预定错误数量,则将与所述列关联的列地址存储在所述修复寄存器中,以便使用列冗余来进行修复。
11.根据权利要求10所述的方法,其中,所述第三数据序列是所述第一数据序列的补码或反码。
12.一种方法,包括:
识别具有比特单元阵列的存储器;
在所述比特单元阵列中选择行以进行纠错;
向所述行写入第一行数据序列;
在向所述行写入所述第一行数据序列之后,从所述行读取第二行数据序列;
通过将所述第一行数据序列与所述第二行数据序列进行比较来检查所述第二行数据序列以得到错误数量;
通过将行错误计数器增加所述错误数量来累积行错误计数;
如果所述行错误计数中的所述错误数量大于预定错误数量,则将与所述行关联的行地址存储在修复寄存器中,以便使用行冗余来进行修复;以及
如果所述行错误计数中的所述错误数量小于或等于所述预定错误数量,则依靠纠错编码(ECC)来修复所述行中的所述数量的错误。
13.根据权利要求12所述的方法,其中,所述错误数量指代一个或多个错误。
14.根据权利要求12所述的方法,还包括:
向所述行写入第三行数据序列;
在向所述行写入所述第三行数据序列之后,从所述行读取第四行数据序列;
通过将所述第三行数据序列与所述第四行数据序列进行比较来检查所述第四行数据序列以得到所述错误数量;
通过将所述行错误计数器增加所述错误数量来累积所述行错误计数;以及
如果所述行错误计数中的所述错误数量大于或等于所述预定错误数量,则将与所述行关联的行地址存储在所述修复寄存器中,以便使用行冗余来进行修复。
15.根据权利要求14所述的方法,其中,所述第三数据序列是所述第一数据序列的补码或反码。
16.一种设备,包括:
耦接到存储器的纠错编码ECC编码器,其中,所述ECC编码器从存储器内置自测MBIST电路接收输入数据,通过对所述输入数据进行编码并将校验比特添加到所述输入数据来生成经编码的数据,并将所述经编码的数据写入所述存储器;以及
耦接到所述存储器的ECC解码器,其中,所述ECC解码器从所述存储器中读取所述经编码的数据,通过对所述经编码的数据进行解码并从所述经编码的数据中提取所述校验比特来生成经校正的数据,并提供所述经校正的数据和双比特错误标志作为输出,
其中,所述ECC解码器具有纠错逻辑,所述纠错逻辑基于所述校验比特来对所述经解码的数据执行纠错,其中,如果所述纠错逻辑在所述经解码的数据中检测到多比特错误,则所述纠错逻辑对所述经解码的数据中的所述多比特错误进行校正以提供所述经校正的数据。
17.根据权利要求16所述的设备,其中,所述多比特错误指代双比特错误。
18.根据权利要求16所述的设备,其中:
如果所述经解码的数据中的所述多比特错误小于一比特错误,则所述纠错逻辑提供错误标志零,
如果所述经解码的数据中的所述多比特错误等于一比特错误,则所述纠错逻辑校正所述经解码的数据中的所述一比特错误并提供错误标志零,以及
如果所述经解码的数据中的所述多比特错误大于一比特错误,则所述纠错逻辑尝试校正所述经解码的数据中的所述多比特错误并提供错误标志一。
19.根据权利要求18所述的设备,还包括:
副本存储器内置自测MBIST,所述副本MBIST从所述ECC解码器接收所述经校正的数据和所述错误标志。
20.根据权利要求19所述的设备,其中:
如果所述错误标志为零,则所述副本MBIST依靠纠错编码ECC来校正所述经校正的数据中的所述多比特错误,并且
如果所述错误标志为一,则所述副本MBIST翻转所述经校正的数据的数据序列。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862780881P | 2018-12-17 | 2018-12-17 | |
US62/780,881 | 2018-12-17 | ||
US16/418,833 US11862271B2 (en) | 2018-12-17 | 2019-05-21 | Memory testing techniques |
US16/418,833 | 2019-05-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111326207A true CN111326207A (zh) | 2020-06-23 |
Family
ID=71072901
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911292620.6A Pending CN111326207A (zh) | 2018-12-17 | 2019-12-16 | 存储器测试技术 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11862271B2 (zh) |
KR (1) | KR20200074884A (zh) |
CN (1) | CN111326207A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114203250A (zh) * | 2021-12-14 | 2022-03-18 | 北京得瑞领新科技有限公司 | 固态存储器的数据存储方法、数据读取方法及固态存储器 |
CN117056149A (zh) * | 2023-10-08 | 2023-11-14 | 飞腾信息技术有限公司 | 一种内存测试方法、装置、计算设备及存储介质 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11521697B2 (en) | 2019-01-30 | 2022-12-06 | STMicroelectronics International, N.V. | Circuit and method for at speed detection of a word line fault condition in a memory circuit |
US11393532B2 (en) * | 2019-04-24 | 2022-07-19 | Stmicroelectronics International N.V. | Circuit and method for at speed detection of a word line fault condition in a memory circuit |
US11430537B2 (en) * | 2019-12-09 | 2022-08-30 | Siemens Industry Software Inc. | Error-correcting code-assisted memory repair |
CN113821364A (zh) * | 2020-06-20 | 2021-12-21 | 华为技术有限公司 | 内存故障的处理方法、装置、设备及存储介质 |
US11347585B2 (en) * | 2020-07-10 | 2022-05-31 | Micron Technology, Inc. | Compression method for defect visibility in a memory device |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07231261A (ja) * | 1994-02-21 | 1995-08-29 | Hitachi Ltd | 誤り数推定方法及びbch符号訂正方法 |
US20020099996A1 (en) * | 1998-02-05 | 2002-07-25 | Masayuki Demura | Method and apparatus for detecting and correcting errors and erasures in product ecc-coded data arrays for dvd and similar storage subsystems |
US6584589B1 (en) * | 2000-02-04 | 2003-06-24 | Hewlett-Packard Development Company, L.P. | Self-testing of magneto-resistive memory arrays |
US20150381206A1 (en) * | 2014-06-30 | 2015-12-31 | Sandisk Technologies Inc. | Multi-stage decoder |
US20170093439A1 (en) * | 2015-09-24 | 2017-03-30 | Intel Corporation | Techniques for soft decision decoding of encoded data |
CN107068194A (zh) * | 2017-04-20 | 2017-08-18 | 聚辰半导体(上海)有限公司 | 一种应用在eeprom上的错误纠正编码及相应的eeprom |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5943693A (en) * | 1995-03-29 | 1999-08-24 | Intel Corporation | Algorithmic array mapping to decrease defect sensitivity of memory devices |
US5987632A (en) * | 1997-05-07 | 1999-11-16 | Lsi Logic Corporation | Method of testing memory operations employing self-repair circuitry and permanently disabling memory locations |
JPH11219598A (ja) * | 1998-02-03 | 1999-08-10 | Mitsubishi Electric Corp | 半導体記憶装置 |
DE19904375C2 (de) * | 1999-02-03 | 2001-01-04 | Siemens Ag | Verfahren zur Funktionsüberprüfung von Speicherzellen eines integrierten Halbleiterspeichers |
TW594775B (en) * | 2001-06-04 | 2004-06-21 | Toshiba Corp | Semiconductor memory device |
US7085971B2 (en) * | 2001-10-25 | 2006-08-01 | International Business Machines Corporation | ECC based system and method for repairing failed memory elements |
US6781898B2 (en) * | 2002-10-30 | 2004-08-24 | Broadcom Corporation | Self-repairing built-in self test for linked list memories |
DE10256487B4 (de) * | 2002-12-03 | 2008-12-24 | Infineon Technologies Ag | Integrierter Speicher und Verfahren zum Testen eines integrierten Speichers |
US7304875B1 (en) * | 2003-12-17 | 2007-12-04 | Integrated Device Technology. Inc. | Content addressable memory (CAM) devices that support background BIST and BISR operations and methods of operating same |
US7447955B2 (en) * | 2005-11-30 | 2008-11-04 | Advantest Corporation | Test apparatus and test method |
KR100895065B1 (ko) * | 2007-03-26 | 2009-05-04 | 삼성전자주식회사 | 리페어 데이터의 신뢰성을 높일 수 있는 플래시 메모리장치 및 그것의 리페어 방법 |
US9202562B2 (en) * | 2012-04-18 | 2015-12-01 | Advanced Integrated Memory Inc. | Method to reduce read error rate for semiconductor resistive memory |
US9087614B2 (en) * | 2012-11-27 | 2015-07-21 | Samsung Electronics Co., Ltd. | Memory modules and memory systems |
US8854858B2 (en) * | 2013-01-30 | 2014-10-07 | Texas Instruments Incorporated | Signal level conversion in nonvolatile bitcell array |
KR101862379B1 (ko) * | 2013-04-19 | 2018-07-05 | 삼성전자주식회사 | Ecc 동작과 리던던시 리페어 동작을 공유하는 메모리 장치 |
US9491025B2 (en) * | 2013-07-25 | 2016-11-08 | Empire Technology Development Llc | Timing synchronization in an orthogonal frequency-division multiplexing (OFDM) system |
US9189326B2 (en) * | 2013-10-08 | 2015-11-17 | Advanced Micro Devices, Inc. | Detecting and correcting hard errors in a memory array |
KR102127455B1 (ko) * | 2013-12-11 | 2020-06-26 | 삼성전자주식회사 | 반도체 메모리 장치 및 그것의 테스트 방법 |
US10270471B2 (en) * | 2016-08-02 | 2019-04-23 | Taiwan Semiconductor Manufacturing Company Ltd. | Memory system having ECC self-checking function and associated method |
US20180137005A1 (en) * | 2016-11-15 | 2018-05-17 | Intel Corporation | Increased redundancy in multi-device memory package to improve reliability |
US20180167088A1 (en) * | 2016-12-09 | 2018-06-14 | Futurewei Technologies, Inc. | Error-Correcting Code Method and System with Hybrid Block Product Codes |
US10951239B2 (en) * | 2018-02-20 | 2021-03-16 | Micron Technology, Inc. | Performing a decoding operation to simulate switching a bit of an identified set of bits of a data block |
-
2019
- 2019-05-21 US US16/418,833 patent/US11862271B2/en active Active
- 2019-12-13 KR KR1020190166415A patent/KR20200074884A/ko active Search and Examination
- 2019-12-16 CN CN201911292620.6A patent/CN111326207A/zh active Pending
-
2023
- 2023-12-29 US US18/400,738 patent/US20240136006A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07231261A (ja) * | 1994-02-21 | 1995-08-29 | Hitachi Ltd | 誤り数推定方法及びbch符号訂正方法 |
US20020099996A1 (en) * | 1998-02-05 | 2002-07-25 | Masayuki Demura | Method and apparatus for detecting and correcting errors and erasures in product ecc-coded data arrays for dvd and similar storage subsystems |
US6584589B1 (en) * | 2000-02-04 | 2003-06-24 | Hewlett-Packard Development Company, L.P. | Self-testing of magneto-resistive memory arrays |
US20150381206A1 (en) * | 2014-06-30 | 2015-12-31 | Sandisk Technologies Inc. | Multi-stage decoder |
US20170093439A1 (en) * | 2015-09-24 | 2017-03-30 | Intel Corporation | Techniques for soft decision decoding of encoded data |
CN107068194A (zh) * | 2017-04-20 | 2017-08-18 | 聚辰半导体(上海)有限公司 | 一种应用在eeprom上的错误纠正编码及相应的eeprom |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114203250A (zh) * | 2021-12-14 | 2022-03-18 | 北京得瑞领新科技有限公司 | 固态存储器的数据存储方法、数据读取方法及固态存储器 |
CN117056149A (zh) * | 2023-10-08 | 2023-11-14 | 飞腾信息技术有限公司 | 一种内存测试方法、装置、计算设备及存储介质 |
CN117056149B (zh) * | 2023-10-08 | 2024-02-02 | 飞腾信息技术有限公司 | 一种内存测试方法、装置、计算设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20200194093A1 (en) | 2020-06-18 |
US20240136006A1 (en) | 2024-04-25 |
KR20200074884A (ko) | 2020-06-25 |
US11862271B2 (en) | 2024-01-02 |
TW202036580A (zh) | 2020-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240136006A1 (en) | Memory Testing Techniques | |
TWI478167B (zh) | 在記憶體裝置及系統中判定及使用軟性資料 | |
CN108877870B (zh) | 用于修复操作的修复电路以及包括修复电路的存储器件 | |
US8625339B2 (en) | Multi-cell per memory-bit circuit and method | |
US7688617B2 (en) | MRAM and operation method of the same | |
US7107508B2 (en) | Manufacturing test for a fault tolerant magnetoresistive solid-state storage device | |
Su et al. | An integrated ECC and redundancy repair scheme for memory reliability enhancement | |
KR101903870B1 (ko) | 비-휘발성 저장에 대한 비대칭 상태 검출 | |
JP2004515031A (ja) | メモリ記憶アレイの組込自己修復のための方法および装置 | |
US20080082870A1 (en) | Parallel bit test device and method using error correcting code | |
US11315654B2 (en) | Memory testing techniques | |
Münch et al. | MBIST-based Trim-Search Test Time Reduction for STT-MRAM | |
US11782090B2 (en) | Built-in self-test circuit and built-in self-test method for physical unclonable function quality check | |
US11929136B2 (en) | Reference bits test and repair using memory built-in self-test | |
CN111863059A (zh) | 具有动态冗余功能的mram芯片 | |
Lu et al. | Adaptive ECC techniques for yield and reliability enhancement of flash memories | |
Dray et al. | Transitioning eMRAM from Pilot Project to Volume Production | |
US10937481B1 (en) | Polarity swapping circuitry | |
US9478314B2 (en) | Memory utilizing bundle-level status values and bundle status circuits | |
US20240029813A1 (en) | Self-Repair Memory Techniques | |
Lu et al. | Integrated Progressive Built-In Self-Repair (IPBISR) Techniques for NAND Flash Memory | |
EP1286360A2 (en) | Manufacturing test for a fault tolerant magnetoresistive solid-state storage device | |
Papavramidou et al. | An ECC-Based Repair Approach with an Offset-Repair CAM for Mitigating the MBUs Affecting Repair CAM | |
Münch | Design and Test of Spintronic Compute-in-Memory Architectures | |
Lu et al. | Fault-Aware Page Address Remapping Techniques for Enhancing Yield and Reliability of Flash Memories |
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 |