CN105745623A - 集成电路缺陷检测和修复 - Google Patents
集成电路缺陷检测和修复 Download PDFInfo
- Publication number
- CN105745623A CN105745623A CN201480064686.9A CN201480064686A CN105745623A CN 105745623 A CN105745623 A CN 105745623A CN 201480064686 A CN201480064686 A CN 201480064686A CN 105745623 A CN105745623 A CN 105745623A
- Authority
- CN
- China
- Prior art keywords
- address
- memory
- data
- pattern
- instruction
- 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.)
- Granted
Links
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
-
- 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/263—Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
-
- 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/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/1201—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details comprising I/O circuitry
-
- 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
-
- 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/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
- 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/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
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/406—Management or control of the refreshing or charge-regeneration cycles
-
- 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
- G11C2029/1202—Word line control
-
- 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
- G11C2029/1204—Bit line control
-
- 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
- G11C2029/1206—Location of test circuitry on chip or wafer
-
- 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
- G11C2029/1208—Error catch memory
-
- 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
-
- 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
- G11C2029/4402—Internal storage of test result, quality data, chip identification, repair information
-
- 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
-
- 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/783—Masking faults in memories by using spares or by reconfiguring using programmable devices with refresh of replacement cells, e.g. in DRAMs
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Tests Of Electronic Circuits (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Hardware Redundancy (AREA)
Abstract
按照本描述,装置包含内部缺陷检测和修复电路,其包含内置在装置内的自测试逻辑电路和也内置在装置内的自修复逻辑电路。在一个实施例中,内置自测试逻辑电路可配置成自动标识存储器中的有缺陷的存储单元。在标识一个或多个有缺陷的存储单元时,内置自修复逻辑电路可配置成通过用存储器内的备用单元替换有缺陷单元来自动修复有缺陷的存储单元。在一个实施例中,作为存储器地址和周期地址偏移的函数生成数据模式。本文描述了其它方面。
Description
技术领域
本发明一般涉及包含具有内置自测试功能性的存储器的装置。
背景技术
集成电路装置(诸如随机存取存储器(RAM))在制造期间通常经历装置验证测试。通常,此类验证测试被设计成检测存储器阵列中的静态和动态缺陷。静态缺陷例如在集成电路装置中包含开路缺陷和短路缺陷。动态缺陷包含诸如产生计时敏感缺陷的弱上拉或下拉晶体管的缺陷。已经在存储器中标识的缺陷可通过向装置发出用为该目的放置在装置上的备用存储单元替换有缺陷的存储单元的命令来修复。此类替换通常通过打开和闭合存储器阵列内的保险丝来实现。
附图说明
图1是按照本说明书一方面采用自测试和修复的计算机架构装置的一个实施例的示意图。
图2是图1的计算机架构装置的板上自动自测试和修复逻辑的一个实施例的更详细示意图。
图3a是图2的自测试逻辑的可编程压力测试模式生成器的一个实施例的更详细示意图。
图3b是图2的自测试逻辑的可编程压力测试模式生成器的一个实施例的嵌套指令的示意图。
图3c是可由图2的自测试逻辑的可编程压力测试模式生成器响应于提供给可编程压力测试模式生成器的压力测试指令序列而生成的压力测试模式的一个示例的示意图。
图3d是可由图2的自测试逻辑的可编程压力测试模式生成器响应于提供给可编程压力测试模式生成器的压力测试指令序列而生成的压力测试模式的另一个示例的示意图。
图3e是可由图2的自测试逻辑的可编程压力测试模式生成器响应于提供给可编程压力测试模式生成器的压力测试指令序列而生成的压力测试模式的又一个示例的示意图。
图3f是图2的自测试逻辑的可编程压力测试模式生成器的模式生成器的一个实施例的更详细示意图。
图4描绘了响应于布置在嵌套循环中的压力测试指令序列而生成压力测试模式的图2的自测试逻辑的可编程压力测试模式生成器的按照本说明书一个方面的操作的一个实施例。
图5描绘了检测和记录在修复列表储存库中含有有缺陷的存储单元的存储器位置地址的图2缺陷检测器逻辑电路的本说明书一个方面的操作的一个实施例。
图6是按照本说明书一方面的修复列表储存库的一个实施例的示意图。
图7是图2的自修复逻辑的一个实施例的示意图。
图8a-8h是图1的自测试逻辑的可配置管线(pipeline)地址生成器的配置示例的示意图。
图9a-9c是图1的自测试逻辑的可配置管线地址生成器的各种配置的操作示例。
图10是图1的自测试逻辑的可配置管线地址生成器的管道阶段(pipestage)的操作示例。
图11是图1的自测试逻辑的可配置管线地址生成器的管道阶段的操作的时钟周期间隔的示意图。
图12是配置为可变刷新信号生成器的图1自测试逻辑的算法生成器的一个示例的示意图。
图13是图1自测试逻辑的算法生成器的另一个示例的示意图。
图14是描绘图13算法生成器的基于布尔函数的操作型式(mode)的示例的表。
图15示出了图13算法生成器的多型式模式定序器的一个示例。
图16示出了可在图13算法生成器的多型式模式定序器的一个型式中生成的时钟信号的一个示例。
图17是示出图13算法生成器的多型式模式定序器的基于线性反馈移位寄存器的有限状态机的位的示例的示意图。
图18a是图1自测试逻辑的数据生成器的操作示例。
图18b是图1自测试逻辑的数据生成器的一个示例的示意图。
图19a-19g是可由图18b的数据生成器对于测试中的存储器区域生成的数据反转(inversion)模式的示例。
图20a是图1自测试逻辑的地址偏移生成器的操作示例。
图20b是图1自测试逻辑的地址偏移生成器的一个示例的示意图。
图21是图20b的地址偏移生成器的地址偏移指令的参数表的示例。
图22是图1自测试逻辑的链接反转函数阶段的一个示例的示意图。
图23是图示图1自测试逻辑的数据通道旋转函数的一个示例的示意图。
具体实施方式
正常情况下采用专用集成电路装置测试器来执行制造验证测试。此类测试设备通常由人操作员或自动系统使用执行测试软件的计算机来控制。为了测试存储器装置,各种存储器地址的测试模式、存储器命令和测试数据可从计算机存储器读取或以别的方式生成,并经由装置测试器应用到测试中的装置。通常,测试中的装置在半导体晶圆上,或者可在从晶圆上切下的管芯上。
外部测试器软件将响应于所应用的测试模式而从装置读取的测试数据与期望结果相比较以标识缺陷。用这种方式标识的存储器装置中的缺陷在一些实例中可通过向含有存储器缺陷的装置发出命令来修复。例如,在一些存储器电路中,含有有缺陷的存储单元的存储单元行(row)可由存储单元的备用行替换。
一些集成电路装置具有内置自测试(BIST)电路。例如,集成电路存储器阵列可含有在存储器阵列上执行标准静态随机存取存储器(SRAM)13NMarch测试算法的电路。通常使用状态机与对数据输出采样并生成结果签名的电路一起生成13NMarch测试算法。然后将签名与期望值相比较以确定在存储器阵列中是否存在缺陷。
可惜,这些已知的BIST例程经常被局限于在存储器阵列上应用固定测试序列。随着制造此类存储器阵列过程的演进,制造测试工程师通常开发用于检测存储器阵列中的静态缺陷和动态缺陷二者的改进策略。
而且,用于检测缺陷的此类改进策略通常已经被应用于测试当装置被放置在昂贵的集成电路装置测试器中时发生的。因此,在不使用昂贵测试器或者不重新设计集成电路装置的情况下,工程师已经频繁地无法实现改进测试策略的好处。由于存储器技术的进步,并且具体地说在窄高速总线领域,其通过以在GHz范围的速度运行,供动态随机存取存储器装置(DRAM)使用,获得能够以此类高操作频率测试存储器模块或存储器组件的高速测试器是非常昂贵的。因此,昂贵的高速硬件测试器的增加的使用增大了这些存储器模块和存储器组件的总体制造成本。
图1图示了按照本说明书一方面采用缺陷检测和修复的计算机架构装置100的一个实施例。计算机架构装置100可包括本领域已知的任何计算装置,诸如大型机、服务器、个人计算机、工作站、电话装置、网络设施、虚拟装置、存储装置控制器、便携或移动装置(例如膝上型电脑、上网本、平板计算机、个人数字助理(PDA)、便携媒体播放器、便携游戏装置、数字相机、移动电话、智能电话、特色电话等)或组件(例如片上系统、处理器、桥、存储器控制器、存储器等)。架构装置100可包含处理器102(例如微处理器)、存储器(例如易失性或非易失性存储器装置)以及存储器控制器106,其控制来往于存储器104的输入和输出操作。
如下面更详细说明的,存储器控制器106包含内部缺陷检测和修复电路108,其包含内置在装置100内的自测试逻辑电路110和也内置在装置100内的自修复逻辑电路114。内置自测试逻辑电路110可配置成自动标识存储器104中的有缺陷的存储单元。在标识一个或多个有缺陷的存储单元时,内置自修复逻辑电路114可配置成通过用存储器104内的备用单元替换有缺陷单元来自动修复有缺陷的存储单元。存储器管芯可包含在与具有自测试逻辑电路110和自修复逻辑电路114的逻辑管芯相同的封装中。备选地,存储器管芯可在逻辑管芯封装的外面,在逻辑管芯的顶上,毗邻逻辑管芯,或在模块(诸如双列直插式存储器模块(DIMM))中的插头上。
本文所使用的术语“自动”包含全自动,其中一旦发起了装置的压力测试,装置的测试和修复操作就通过在没有任何用户干预的情况下来修复至少一个存储器位置而进行。还有,术语“自动”包含基本自动,其中一旦发起了装置的压力测试,装置的测试和修复操作就通过用有限用户干预来修复至少一个存储器位置而进行。然而,大多数测试和修复操作都在没有任何用户干预的情况下进行。在一些实施例中,至少50%、至少75%或至少95%的测试和修复操作在没有任何用户干预的情况下进行。
在所图示的实施例中,存储器控制器106布置在装置100内的半导体管芯上,并且电路108的内部自测试逻辑电路110和内部自修复逻辑电路114布置在存储器控制器106的相同管芯上。从而,尽管内部自测试逻辑电路110和内部自修复逻辑电路114被描绘为内置到存储器控制器106中,但要认识到,内部自测试逻辑电路110和内部自修复逻辑电路114可内置到计算机架构装置100的其它电路中。
如下面更详细说明的,内部自测试逻辑电路110能够生成用于测试存储器104的广泛的测试模式。而且,在一些实施例中,由内部自测试逻辑电路110生成的测试模式可被容易地修改为条件保证。在一个实施例中,所生成的数据模式可选择成是所生成的数据模式要被写到其中的存储单元的存储单元地址的模式的函数。如下面更详细说明的,各种数据模式可作为存储器地址的函数生成,包含反转条纹模式或棋盘模式或其它模式的数据,例如,取决于所选择的基于存储器地址的函数。
在另一实施例中,可有选择地旋转所生成的数据模式的位位置,并且可对于所生成的数据模式要被写到其中的存储单元的所有存储单元地址有选择地重复旋转所生成的数据模式可选择次数。在又一实施例中,所生成的数据模式可选择成是到所生成的数据模式要被写到其中的存储单元的存储器地址偏移的周期模式的函数。地址偏移生成器可响应于存储器地址偏移指令(也称为偏移地址指令)而将存储器地址偏移的周期模式作为周期的函数生成。如下面所说明的,地址偏移生成器可配置成例如作为测试中的存储器区域的行数或列数的函数生成用于反转存储单元的斜模式的数据的周期地址偏移。
如果内部缺陷检测和修复电路108位于与存储单元相同的管芯上,则缺陷检测和修复电路可被激活,以在晶圆级或管芯级的制造工艺期间而且在半导体组件已经被组装和封装之后,测试和修复存储器缺陷。如果缺陷检测和修复电路位于单独管芯(诸如逻辑装置)上,则在存储器已经连接到含有缺陷检测和修复电路的装置之后,可使用缺陷检测和修复电路来测试存储器装置或多个装置。此外,要认识到,在一些实施例中,如果在装置100已经被封装在外壳中并卖给消费者之后发生存储器故障,则内部缺陷检测和修复电路108可被激活以测试和修复存储器缺陷。从而,内部缺陷检测和修复电路108可中断处理器102与存储器104之间的正常存储器事务以进行存储器测试和修复操作。
计算机架构装置100可还包含存储装置116(例如非易失性存储装置,诸如磁盘驱动器、光盘驱动器、磁带驱动器、闪存等)。存储装置116可包括内部存储装置或附连的或网络可访问的存储装置。存储装置116中的程序被加载到存储器104中,并由处理器102以本领域已知的方式执行。计算机架构装置100还包含网络控制器或适配器118,以使能够与网络(诸如以太网、光纤信道仲裁循环等)通信。此外,在某些实施例中,架构可包含视频控制器120以在显示监视器上再现信息,其中视频控制器120可实施在视频卡上或集成在安装在母板或其它衬底上的集成电路组件上。输入装置122用于向处理器102提供用户输入,并且可包含键盘、鼠标、触控笔、麦克风、触敏显示屏、输入管脚、插座或本领域已知的任何其它激活或输入机制。输出装置124能够再现从处理器102或其它组件(诸如显示监视器、打印机、存储装置、输出管脚、插座等)传送的信息。网络适配器118可实施在网卡(诸如外围组件互连(PCI)卡、PCI快速或某种其它I/O卡)上或安装到母板或其它衬底上的集成电路组件上。
内部缺陷检测和修复电路108包含门户126,通过其测试和修复输入和输出信息可在缺陷检测和修复电路108与装置100的其它组件之间传递,并且如果适当的话,则经由输入装置122和输出装置118传递到计算机架构装置100外部的装置。门户126的一个示例是片上通信网络或组构边带。在一个实施例中,门户126可通过测试访问端口(TAP)系统在外部访问。取决于具体应用,可利用其它通信门户。
取决于具体应用,可省略装置100的一个或多个组件。例如,网络路由器例如可缺少视频控制器120。还有,计算机架构装置100的任一个或多个组件可包含具有如本文所描述的管芯上缺陷检测和修复电路的一个或多个集成电路。
图2示出了按照本说明书的内部缺陷检测和修复电路108的更详细示例。缺陷检测和修复电路108包含测试模式生成器120,用于生成测试模式,将测试数据写到存储器装置,将数据拷贝发送到缺陷检测器电路220,并发送一系列读命令以读回测试数据。来自存储器装置的读取数据被路由到缺陷检测器电路220,其中来自测试模式生成器210的期望数据与来自存储器装置的实际数据相比较,以响应于测试存储器104的存储单元的测试模式而检测存储器104中的有缺陷的存储单元。
缺陷检测器电路220在配置为也布置在装置108内的修复列表储存库的存储器224中存储存储器104的存储器位置列表,该列表的每个存储器位置都具有存储单元集合,其在存储器104中包含至少一个有缺陷的存储单元。自修复逻辑电路114包含适合于读取存储在修复列表储存库224中的存储器位置列表并修复该列表的存储器位置的逻辑电路。在所图示的实施例中,该列表的存储器位置可通过用存储器104的备用存储单元230的存储器位置替代具有至少一个有缺陷的存储单元的存储器位置来修复。
在一个实施例中,修复列表储存库还可包含各种标志234的寄存器或其它存储器位置。例如,标志可被设置成指示具有至少一个有缺陷的存储单元的存储器位置的数量超过存储器104的具体存储器区域的最大值。可对于每个存储器区域设置另一标志,指示具体存储器区域的至少一行在具体存储器区域内是否具有至少一个有缺陷的存储单元。取决于具体应用,可在修复列表储存库224中存储其它标志234。
图3a、3b、3f、4示出了按照本说明一个实施例的图2测试模式生成器210的更详细示例。在一个实施例中可用存储器控制器106管芯的板上硬件有限状态机来实现在图3a、3b、4中描绘的逻辑。这个有限状态机又可用与存储器控制器104或装置100的其它内部管芯相同的管芯上的硬件逻辑门或软件或固件可编程处理器或它们的组合实现。
测试模式生成器210包含多个生成器,包含:可编程地址模式生成器306,其包含至少一个地址生成器310a、310b...310n(图3f);以及循环定序器电路320,适合于向可编程地址生成器306的适当一个或多个生成器310a、310b...310n应用多个嵌套指令,包含到地址生成器310a、310b...310n的地址指令序列324(地址指令1、地址指令2...地址指令n)(图3a)中的地址指令的顺序循环322(图3b)。每个地址生成器310a、310b...310n可包含一个或多个有限状态机。序列324的每个地址指令(地址指令1、地址指令2...地址指令n)当由适当地址生成器310a、310b...310n执行时使地址生成器310a、310b...310n将存储单元地址模式作为具体地址指令(地址指令1、地址指令2...地址指令n)以及它应用到的具体地址生成器310a、310b...310n的函数生成。测试模式生成器210(图2)适合于在由在地址指令的循环322(图3b)中按顺序执行的地址指令(地址指令1、地址指令2...地址指令n)生成的地址存储单元模式寻址的存储单元执行存储器命令。指令的循环定序器320的计数器323中的计数器生成指向地址指令序列324(图3a)(地址指令1、地址指令2...地址指令n)的指针,其又生成要使用的当前地址指令。地址指令的参数可包含标识要测试的存储器区域大小的参数、要测试的存储器区域的开始地址以及指示具体地址指令是序列的最后一个地址指令的参数。下面提供了地址指令的参数的附加示例。要认识到,取决于具体应用,可包含或利用其它函数。
例如,图3b示出了多个嵌套指令的循环328,包含嵌套在地址指令的循环322内的数据指令的循环330、嵌套在数据指令的循环330内的算法指令的循环332、嵌套在算法指令的循环332内的命令指令的循环334以及嵌套在命令指令的循环334内的偏移指令集合337的可选择偏移指令的循环336a、336b。要认识到,在一些实施例中,嵌套指令的循环的数量和类型可不同与所图示的那些,并且取决于具体应用也可改变嵌套次序。
图3c示出了地址模式的示例,其可由地址生成器310a、310b...310n中的一个(诸如地址生成器310a)例如响应于其中一个地址指令(地址指令1、地址指令2...地址执行n)诸如例如用于存储器104的存储单元340的存储器区域338的地址指令1生成。存储器区域338由布置在列和行中的存储单元340的4×4阵列表示。典型的存储器区域可能相当大,并且从而可具有以千字节、兆字节、吉字节、太字节或更大字节编号的存储单元。存储器区域的一个示例经常被称为“组”。取决于具体应用,每个存储单元340都可存储单个位、字节、字或更长的位串。
在此示例中,所生成的地址模式是“行走”模式,其中所生成的地址模式地址“行走”到存储单元340具体列的下一毗邻存储单元。从而,地址模式可开始于具体存储单元地址,其可表示为一对有序列地址和行地址,诸如在图3c中描绘的列-行地址(0,0)。这个具体地址模式的下一地址可通过将存储单元地址的行地址部分递增到在图3c中描绘的列-行地址(0,1)来生成。用这种方式,按顺序生成该列的剩余存储单元的剩余地址。
一旦到达该列的结尾,行地址部分就可被重新设置成原始行地址,并且列地址可被递增到在图3c中描绘的列-行地址(1,0)。用这种方式,按顺序生成区域338的存储器剩余存储单元的剩余地址。一旦到达最后一列的结尾,就在图3c中描绘地址模式的最后一个列-行地址(3,3)。
通过改变地址指令或改变地址指令应用到的地址生成器或二者可容易地改变被生成的地址模式。从而,在图3c中描绘的示例中,通过向地址生成器提供适当地址指令,可将单元行走的方向从在图3c中示出的方向反向。例如,其它地址模式可向上走一列,并且然后向下走另一列。其它地址模式可在改变到不同行之前可走过一行,而不是向上或向下走一列。适合于对存储器进行压力测试的用于遍历存储器的其它地址模式可通过适当选择地址指令和地址生成器设计来容易地实现。从而,地址指令参数可包含定义地址生成方向的参数。要认识到,取决于具体应用,可包含或利用其它函数。要认识到,为多个地址生成器提供多个地址指令便于实现存储器的适合的压力测试。
在所图示的实施例中,应用到地址生成器310a、310b...310n的地址指令序列324(图3a)(地址指令1、地址指令2...地址指令n)例如可包括4个地址指令的序列。要认识到,取决于具体应用,地址指令序列中的地址指令数量可改变。
测试模式生成器210还包含可编程数据模式生成器342,其包含至少一个数据生成器344a、344b...344n(图3f)。循环定序器电路320适合于向数据生成器344a、344b...344n中的适当数据生成器应用多个嵌套循环指令,包含数据指令序列346(图3a)(数据指令1、数据指令2...数据指令n)中的数据指令的顺序循环330(图3b)。指令的循环定序器320的计数器323中的计数器生成指向数据指令序列346(图3a)的指针,其又生成要使用的当前地址指令。数据指令的参数可包含指示具体数据指令是该序列的最后一个地址指令的参数。要认识到,取决于具体应用,可包含或利用其它函数。每个数据生成器344a、344b...344n可包含一个或多个有限状态机。序列346的每个数据指令(数据指令1、数据指令2...数据指令n)当由数据生成器344a、344b...344n中的适当数据生成器执行时使数据生成器344a、344b...344n将数据模式作为具体数据指令(数据指令1、数据指令2...数据指令n)以及它应用到的具体数据生成器344a、344b...344n的函数生成。
测试模式生成器210(图2)适合于在存储单元执行存储器命令以将由在数据指令的循环330(图3b)(数据指令1、数据指令2...数据指令n)中按顺序执行的数据指令生成的测试数据模式写到由在地址指令的循环中按顺序执行的地址指令生成的存储单元地址模式寻址的存储单元中。从而,在图3c的示例中,例如可编程数据模式生成器342的数据生成器(诸如数据生成器344a)可响应于其中一个数据指令(例如诸如数据指令1)而生成一串数据位,诸如全都是1。所生成的数据模式的所生成的数据位例如由测试模式生成器210作为地址生成器310a例如响应于其中一个地址指令(诸如地址指令1)而写到每个存储单元340中,例如生成对于存储器104的存储单元340的存储器区域338描绘的行走地址模式。取决于具体应用,由可编程数据模式生成器342可生成的数据模式的其它示例包含数串0、棋盘模式的交替的1和0等。从而,当在遍历存储器104的存储器地址执行命令时,由可编程数据模式生成器342输出的数据可被用作写数据,例如以对存储器104进行压力测试。此外,由可编程数据模式生成器342输出的数据也可被用作期望测试结果数据,以与当对存储器104进行压力测试时获得的实际测试数据进行比较。此外,所生成的数据模式也可被用作控制信号以控制存储器104的控制信号输入。从而,数据指令的参数可包含指示是否反转数据以及指示各种数据背景(诸如实线、竖条纹、横条纹、棋盘等)的参数。要认识到,取决于具体应用,可包含或利用其它函数。
在所图示的实施例中,应用到适当数据生成器344a、344b...344n的数据指令序列346(图3a)(数据指令1、数据指令2...数据指令n)例如可包括4个数据指令的序列。要认识到,取决于具体应用,数据指令序列中的数据指令数量可改变。
测试模式生成器210还包含可编程算法模式生成器350,其包含至少一个算法生成器354a、354b...354n(图3f)。循环定序器电路320适合于向算法生成器354a、354b...354n中的适当算法生成器应用多个嵌套循环指令,包含算法指令序列356(图3a)(算法指令1、算法指令2...算法指令n)中的算法指令的顺序循环332(图3b)。指令的循环定序器320的计数器323中的计数器生成指向算法指令序列356(图3a)的指针,其又生成要使用的当前算法指令。算法指令的参数可包含指示具体算法指令是该序列的最后一个算法指令的参数。要认识到,取决于具体应用,可包含或利用其它函数。每个算法生成器354a、354b...354n可包含一个或多个有限状态机。序列356的每个算法指令(算法指令1、算法指令2...算法指令n)当由算法生成器354a、354b...354n中的适当算法生成器执行时,使算法生成器354a、354b...354n将测试数据模式作为算法的输出生成。
在一个实施例中,可编程算法测试生成器350输入由可编程数据模式生成器342生成的数据模式,并按照选择的算法生成器354a、354b...354n执行序列356的选择的算法指令(算法指令1、算法指令2...算法指令n)的算法将输入数据模式修改成修改的数据模式。在其它实施例中,可编程算法测试生成器350将数据模式作为具体算法指令(算法指令1、算法指令2...算法指令n)以及它应用到的具体算法生成器354a、354b...354n的函数生成,而不输入由可编程数据模式生成器342生成的数据模式。
测试模式生成器210(图2)适合于在存储单元执行存储器命令以将按照在算法指令的循环332(算法指令1、算法指令2...算法指令n)中按顺序执行的算法指令的数据测试模式写到由在地址指令的循环中按顺序执行的地址指令生成的存储单元地址模式寻址的存储单元中。.从而,当在遍历存储器104的存储器地址执行命令时,由可编程算法测试生成器350输出的数据可被用作写数据,例如以对存储器104进行压力测试。此外,由可编程算法测试生成器350输出的数据也可被用作期望测试结果数据,以与当对存储器104进行压力测试时获得的实际测试数据进行比较。此外,所生成的数据模式也可被用作控制信号以控制存储器104的控制信号输入。
例如可由例如执行序列356的选择的算法指令(算法指令1、算法指令2...算法指令n)(诸如算法指令1)的选择的算法生成器354a、354b...354n(诸如算法生成器354a)生成的算法的一个示例是基于移位寄存器的随机模式算法,其例如可用于测试存储器104的互连。相信由执行选择的算法指令(诸如例如算法指令1)的算法生成器(诸如例如算法生成器354a)生成的这些随机模式在互连上产生白噪声以给互连应用压力以测试缺陷。如上所述,可使用可编程算法模式生成器350中的算法生成器,通过修改由可编程数据模式生成器342中的生成器生成的测试数据模式来生成随机模式。备选地,可编程算法模式生成器350的算法生成器可生成随机模式,而不修改由可编程数据模式生成器342的生成器生成的测试数据模式。
例如可由例如执行序列356的选择的算法指令(算法指令1、算法指令2...算法指令n)(诸如算法指令2)的选择的算法生成器354a、354b...354n(诸如算法生成器354b)生成的算法的另一个示例是基于邻居交互的地址行走算法。这个算法例如可用于测试本质上主要是电容性的动态随机存取存储器的存储单元。按照基于邻居交互的地址行走算法,如果存储器中的所有相邻单元都开关了,则交叉耦合效应可使测试中的单元翻转到错误数字值。
图3d示出了例如可由执行序列356的例如算法指令2的算法生成器354b对于存储器104的存储单元340的存储器区域358生成的基于邻居交互的地址行走算法的示例。存储器区域358由布置在列和行中的存储单元340的7×12阵列表示。
在此算法中,指定为“基础”的存储单元340a(其地址由地址生成器作为“基地址”生成)由远离它的两个单元内的邻居单元应用压力。从而,测试模式生成器210(图2)适合于按照例如可由例如执行序列356的算法指令2的算法生成器354b生成的基于邻居交互的地址行走算法来执行存储器命令的第一集合,在第一邻居存储单元340b写(Wr1)和读(Rd1),执行存储器命令的第二集合,在第二邻居存储单元340b写(Wr2)和读(Rd2),以此类推,完成存储器命令的第八集合,在第八邻居存储单元340d写(Wr8)和读(Rd8)。
算法指令的参数可还包含例如指示如下项的参数:命令序列的开始命令、那个命令序列的开始地址方向、是否要反转数据、阻止新算法指令开始直到满足等待条件为止的一个或多个等待周期、是否重新设置计数器,诸如指令序列(诸如命令指令序列)的指令计数器。要认识到,取决于具体应用,可包含或利用其它函数。
要认识到,序列356的算法指令(算法指令1、算法指令2...算法指令n)当由算法生成器354a、354b...354n中的适当生成器执行时可实现用于对存储器104进行压力测试的其它算法,取决于具体应用。在所图示的实施例中,应用到适当算法生成器354a、354b...354n的算法指令序列356(图3a)(算法指令1、算法指令2...算法指令n)例如可包括8个算法指令的序列。要认识到,取决于具体应用,算法指令序列中的算法指令数量可改变。
测试模式生成器210还包含可编程命令模式生成器360,其包含至少一个命令生成器364a、364b...364n(图3f)。循环定序器电路320适合于向命令生成器364a、364b...364n中的适当命令生成器应用多个嵌套循环指令,包含命令指令序列366(图3a)(命令指令1、命令指令2...命令指令n)中的命令指令的顺序循环334(图3b)。指令的循环定序器320的计数器323中的计数器生成指向命令指令序列366(图3a)的指针,其又生成要使用的当前命令指令。命令指令的参数可包含指示具体命令指令是该序列的最后一个命令指令的参数。要认识到,取决于具体应用,可包含或利用其它函数。每个命令生成器364a、364b...364n可包含一个或多个有限状态机。序列366的每个命令指令(命令指令1、命令指令2...命令指令n)当由命令生成器364a、364b...364n中的适当命令生成器执行时使命令生成器364a、364b...364n将命令模式作为选择的具体命令生成器和选择的具体命令指令的函数生成。
测试模式生成器210(图2)适合于在由在地址指令的循环中按顺序执行的地址指令生成的存储单元地址模式寻址的存储单元中,按照在命令指令的循环334(命令指令1、命令指令2...命令指令n)中按顺序366执行的命令指令,在存储单元执行存储器命令模式。写命令的数据由可编程数据模式生成器342和可编程算法生成器350中的一个或二者提供,如上面所论述的。除了提供要写到存储器104的数据,所生成的数据模式也可用于可编程命令模式生成器260的控制信号命令,以控制存储器104的控制信号输入。
在所图示的实施例中,应用到适当命令生成器364a、364b...364n的命令指令序列366(图3a)(命令指令1、命令指令2...命令指令n)例如可包括24个命令指令的序列。要认识到,取决于具体应用,命令指令序列中的命令指令数量可改变。
在一个实施例中,例如,每个命令指令(命令指令1、命令指令2...命令指令n)可指令命令生成器364a、364b...364n的适当命令生成器生成单个命令,诸如存储器写或存储器读命令。在其它实施例中,每个命令指令(命令指令1、命令指令2...命令指令n)可指令命令生成器364a、364b...364n的适当命令生成器生成命令序列。
例如,在图3c中描绘的压力测试模式中,当可编程地址模式生成器306生成走过所示出的存储器区域338的地址模式时,对于存储器区域338的每个存储单元执行单个命令,在此示例中是写命令。图3e描绘了采用命令序列的多部分压力测试。在图3e的压力测试部分1中,用在图3c中描绘的压力测试模式的方式类似的方式,当可编程地址模式生成器306生成走过所示出的存储器区域338的地址模式时,对于存储器区域338的每个存储单元执行单个命令,在此示例中是写命令。一旦已经在压力测试的部分1中用到每个存储单元的写命令初始化了存储器区域338,就当可编程地址模式生成器306再次生成在部分1中生成的相同地址模式时,其再次如所示第二次走过存储器区域338,对于相同存储器区域338的每个存储单元执行命令序列,在此示例中是快速读命令(R)后面是写反转(Wbar)命令。在压力测试的部分2之后,当可编程地址模式生成器306再次生成在部分1和2中生成的相同地址模式时,其再次如所示第三次走过存储器区域338,对于相同存储器区域338的每个存储单元执行另一命令序列,在此示例中是快速读反转(Rbar)命令,后面是写(W)命令。
在一个实施例中,每个命令指令可被应用到命令生成器的公共有限状态机。要认识到,在其它实施例中,命令指令可被应用到各种命令模式生成器的不同有限状态机。
在一个实施例中,每个命令指令都定义一个命令要执行。命令序列可由命令指令序列提供,每个命令指令都可按顺序应用到具体存储器地址。命令序列然后可被应用在不同地址的序列上,在压力测试过程中一次一个地址位置。要认识到,在其它实施例中,命令指令可定义序列中的多于一个命令。
从而,在一个实施例中,命令指令的参数可包含指示读命令或写命令、是否要反转命令的数据、标识备选数据源以及规定重复的写操作的“锤头”功能的参数。要认识到,取决于具体应用,可利用其它函数。
测试模式生成器210还包含可编程地址偏移模式生成器370,其包含偏移生成器374a、374b...374n(图3f)中的至少一个偏移生成器。每个偏移生成器374a、374b...374n适合于生成地址偏移模式,以偏移由可编程地址模式生成器306生成的基础地址。循环定序器电路320适合于向偏移生成器374a、374b...374n中的适当偏移生成器应用多个嵌套循环指令,包含偏移指令序列376(图3a)(偏移指令1、偏移指令2...偏移指令n)中的偏移指令的选择的顺序循环336a、336b(图3b)。指令的循环定序器320的计数器323中的计数器生成指向偏移指令序列376(图3a)的指针,其又生成要使用的当前偏移指令。偏移指令的参数可包含指示具体偏移指令是该序列的最后一个偏移指令的参数。要认识到,取决于具体应用,可包含或利用其它函数。每个偏移生成器374a、374b...374n可包含一个或多个有限状态机。序列376的每个偏移指令(偏移指令1、偏移指令2...偏移指令n)当由偏移生成器374a、374b...374n中的适当偏移生成器执行时使偏移生成器374a、374b...374n将地址偏移模式作为选择的具体偏移生成器和选择的具体偏移指令的函数生成。
在存储单元执行存储器命令的测试模式生成器210(图2)适合于在由在地址指令的循环322中按顺序324执行的地址指令生成的存储单元地址模式寻址的并由在存储器地址偏移指令的循环336a、336b中按顺序376执行的存储器地址偏移指令(偏移指令1、偏移指令2...偏移指令n)生成存储器地址偏移模式偏移的存储单元中执行由在命令指令的循环334中按顺序366执行的命令指令生成的命令模式。用这种方式,由可编程地址模式生成器306生成的地址模式的基础地址可偏移由可编程偏移模式生成器370生成的偏移模式的一个或多个地址偏移。写命令的数据由可编程数据模式生成器342和可编程算法生成器350中的一个或二者提供,如上面所论述的。
在所图示的实施例中,应用到适当偏移生成器374a、374b...374n的偏移指令序列376(图3a)(偏移指令1、偏移指令2...偏移指令n)例如可包括2个偏移指令的序列。要认识到,取决于具体应用,偏移指令序列中的偏移指令数量可改变。
在一个实施例中,偏移指令的一个循环(诸如循环336a)例如可以是在相对于当前基础地址的地址范围内产生各种可能偏移操作的偏移地址指令的循环。偏移地址命令允许例如在每个循环336a中顺序执行的偏移地址命令序列,诸如6个偏移地址命令的序列。这个循环的偏移地址指令可包含例如指示偏移方向(诸如基础地址的北、南、东或西)、是否涉及条纹以及具体偏移地址指令是序列的最后一个偏移地址指令的参数。在一个实施例中,条纹函数禁止在偏移地址递增期间从行到列或列到行的正常进位。要认识到,取决于具体应用,可包含或利用其它函数。
在一个实施例中,偏移指令的一个循环(诸如循环336b)例如可以是可在循环336b中顺序执行的偏移命令指令的循环。这个循环的偏移地址指令可包含指示如下项的参数:读或写命令、是否要反转偏移命令的数据、标识备选数据源、是使用基础地址还是偏移地址、规定重复写操作的“锤头”功能以及具体偏移命令指令是序列的最后一个偏移命令指令。要认识到,取决于具体应用,可利用其它函数。
在一个实施例中,连同命令指令序列366中的命令指令,可通过设置序列366的命令指令的偏移命令替代参数来用上面描述的偏移指令替代当前命令指令。此外,要替代的偏移命令的偏移循环336a、336b可由标识序列366的命令指令参数的偏移循环指示。如之前所提到的,图3d示出了基于邻居交互的地址行走算法压力测试的示例。在这个压力测试中,指定为“基础”的存储单元340a由远离它的两个单元内的邻居单元应用压力。作为存储单元340a的地址的基础地址由可编程地址生成器306生成。通过用由可编程地址偏移模式生成器370生成的地址偏移修改基础单元340a的基础地址,生成基础单元340a的邻居的地址。例如,可通过向基础单元340的地址增加“1”的列偏移来生成邻居单元340b的地址。邻居单元340c的地址可通过向基础单元340a的地址增加“2”的列偏移来生成,或者可通过向所生成的邻居单元340b的地址增加“1”的列偏移来生成。类似地,可通过从基础单元340a的地址减去“2”的行偏移来生成邻居单元340d的地址。地址偏移例如可由例如执行偏移指令1的偏移生成器374a生成。
从而,测试模式生成器210(图2)适合于按照在可由可编程地址生成器306生成的、由可编程地址偏移生成器370生成的地址偏移模式偏移的地址的基于邻居交互的地址行走算法,执行存储器命令的第一集合,在第一邻居存储单元340b写(Wr1)和读(Rd1),执行存储器命令的第二集合,在第二邻居存储单元340b写(Wr2)和读(Rd2),以此类推,完成存储器命令的第八集合,在第八邻居存储单元340d写(Wr8)和读(Rd8)。。
图4描绘了实现在图3b中描绘的嵌套循环结构的图1自测试逻辑1的操作的一个示例。指令序列可在第一操作中,地址指令选择(框410)被初始化成例如选择第一地址指令,诸如地址指令1。要认识到,地址指令选择可被初始化成选择地址指令序列324的另一地址指令,取决于具体应用。用类似方式,例如数据指令选择被初始化(框412)成选择第一数据指令(诸如数据指令1),例如算法指令选择被初始化(框414)成选择第一算法指令(诸如算法指令1),例如命令指令选择被初始化(框416)成选择第一命令指令(诸如命令指令1),并且如果存在偏移(框417),则例如偏移指令选择被初始化(框418)成选择第一偏移指令(诸如偏移指令1)。要认识到,数据、算法、命令和偏移指令选择可被初始化成选择指令相应序列346、356、366和376中的另一指令,取决于具体应用。一旦已经为可编程模式生成器306、342、350、360和370选择了初始指令,指令就可被应用到可编程模式生成器306、342、350、360和370中的适当生成器,并且被执行(框420)以生成选择的地址、数据、算法、命令和偏移模式以生成存储器104的适当压力测试。
例如,上面论述的图3c描绘了采用单个命令(在此示例中是写命令)的压力测试,该命令在此示例中由可编程命令模式生成器360响应于命令指令1生成。当可编程地址模式生成器306在此示例中响应于地址指令1生成走过存储器区域338(如所示)以初始化存储器区域338的地址模式时,对于存储器区域338的每个存储单元执行写命令。相同位(或者如果是多位单元则是相同多位)可被写到存储器区域338的每个存储单元,或者位可一个单元一个单元改变,如由可编程数据模式生成器342响应于数据指令1(在此示例中)生成的数据模式所定义的。
在一个实施例中,图3c的压力测试不采用地址偏移,并且相应地,可编程偏移模式生成器370可响应于偏移指令1而不修改地传递由可编程地址模式生成器306生成的地址。在另一实施例中,可通过向由可编程地址模式生成器306生成的基础地址顺序应用列偏移和行偏移来生成行走模式。类似地,取决于具体压力测试,可编程算法模式生成器350响应于算法指令1可传递具体算法未修改的可编程模式生成器342生成的写数据。
一旦响应于可编程模式生成器指令的初始集合的执行而已经将压力测试应用到具体存储器区域或多个区域,存储器缺陷检测器220(图2)就将压力测试的结果与期望值相比较(图4框422),并标识所测试的存储器区域或多个区域中的缺陷(如果有的话),并将适当缺陷位置数据存储在出故障地址的修复列表储存库224(图2)中。
如之前所提到的,自测试逻辑110(图1)执行嵌套在命令指令的循环334内的偏移指令的嵌套循环336a、336b(图3b)。进行有关是否已经选择了偏移指令序列376(图3a)的所有偏移指令的确定(框424)。如果否,则例如偏移指令序列376中的下一偏移指令(诸如偏移指令2)被选择(框426)用于可编程偏移模式生成器370。由于偏移指令的循环336a、336b被嵌套在命令循环334内,因此命令指令以及算法指令、数据指令和地址指令在这点保持不变。相应地,所选择的偏移指令连同为可编程模式生成器306、342、350、360和360选择的初始指令可被应用到可编程模式生成器306、342、350、360和370中的适当生成器,并且被执行(框420)以生成选择的地址、数据、算法、命令和偏移模式以生成存储器104的适当压力测试。
如果确定(框424)已经选择(并执行)了偏移指令序列376(图3a)的所有偏移指令,则进行有关是否已经选择了命令指令序列366(图3a)的所有命令指令的确定(框430)。如果否,则例如命令指令序列366中的下一命令指令(诸如命令指令2)被选择(框432)用于可编程命令模式生成器360。由于命令指令的循环334被嵌套在算法指令的循环332内,因此算法指令以及数据指令和地址指令在这点保持不变。然而,偏移指令选择被重新初始化(框418)成偏移指令序列376的第一指令(图3a)。相应地,所选择的命令指令连同为可编程模式生成器306、342、350、370和360选择的初始指令可被应用到可编程模式生成器306、342、350、360和370中的适当生成器,并且被执行(框420)以生成选择的地址、数据、算法、命令和偏移模式以生成存储器104的适当压力测试。
如之前所提到的,图3e描绘了采用可由可编程命令生成器360生成的命令序列的多部分压力测试。在图3e的压力测试的部分1中,当可编程地址模式生成器306例如响应于初始地址指令(诸如地址指令1)生成走过存储器区域338(如所示)的地址模式以初始化存储器区域338时,例如响应于初始命令指令(诸如命令指令1)对于存储器区域338的每个存储单元执行单个命令,在此示例中是写命令。一旦已经在压力测试的部分1中用到每个存储单元的写命令初始化了存储器区域338,就当可编程地址模式生成器306再次生成在部分1中生成的相同地址模式时,其再次对于部分2第二次(如所示)走过存储器区域338,对于相同存储器区域338的每个存储单元执行命令序列,在此示例中是快速读命令(R)后面是写反转(Wbar)命令。
在一个实施例中,当可编程地址模式生成器306响应于未改变的初始地址指令(诸如地址指令1)而例如生成再次走过压力测试部分2的存储器区域338的相同地址模式时,例如可响应于选择的第二命令指令(诸如命令指令2)而生成部分2的第二命令序列(快速读命令(R)后面是写反转(Wbar)命令)。在另一实施例中,可响应于单个命令指令生成每个命令。
在压力测试的部分2之后,当可编程地址模式生成器306再次生成在部分1和2中生成的相同地址模式时,其再次对于部分3第三次(如所示)走过存储器区域338,对于相同存储器区域338的每个存储单元执行另一命令序列,在此示例中是快速读反转(Rbar)命令,后面是写(W)命令。再次,在一个实施例中,可响应于选择的第三命令指令生成部分3的命令序列。在另一实施例中,可响应于单个命令指令而生成部分3的命令序列,该命令指令还生成压力测试的部分1和部分2的命令。
图3d示出了基于邻居交互的地址行走算法压力测试的示例,如上面所论述的。为了生成基于邻居交互的地址行走算法压力测试,在偏移指令序列376中可采用一个或多个偏移指令来生成适当偏移地址以寻址所示出的基础单元的邻居单元。此外,在命令指令序列366中可采用一个或多个命令指令来生成用于所示出的每个邻居单元的适当命令序列。
如果确定(图4的框430)已经选择(并执行)了命令指令序列366(图3a)的所有命令指令,则进行有关是否已经选择了算法指令序列356(图3a)的所有算法指令的确定(框434)。如果否,则例如算法指令序列356中的下一算法指令(诸如算法指令2)被选择(框436)用于可编程算法模式生成器350。由于算法指令的循环332被嵌套在数据指令的循环330内,因此数据指令以及地址指令在这点保持不变。然而,命令指令选择被重新初始化(框416)以及偏移指令选择(框418)被重新初始化成相应指令序列366、376(图3a)的第一指令。相应地,所选择的下一算法指令连同为可编程模式生成器306、342、350、360、370和360选择的初始指令可被应用到可编程模式生成器306、342、350、360和370中的适当生成器,并且被执行(框420)以生成选择的地址、数据、算法、命令和偏移模式以生成存储器104的适当压力测试。
如果确定(框434)已经选择(并执行)了算法指令序列356(图3a)的所有算法指令,则进行有关是否已经选择了数据指令序列346(图3a)的所有数据指令的确定(框438)。如果否,则例如数据指令序列346中的下一数据指令(诸如数据指令2)被选择(框440)用于可编程数据模式生成器342。由于数据指令的循环330被嵌套在地址指令的循环322内,因此地址指令在这点保持不变。然而,算法指令选择被重新初始化(框414)以及命令选择(框416)和偏移指令选择(框418)被重新初始化成相应指令序列356、366、376(图3a)的第一指令。相应地,所选择的数据指令连同为可编程模式生成器306、350、360、370和360选择的初始指令可被应用到可编程模式生成器306、342、350、360和370中的适当生成器,并且被执行(框420)以生成选择的地址、数据、算法、命令和偏移模式以生成存储器104的适当压力测试。
如果确定(框438)已经选择(并执行)了数据指令序列346(图3a)的所有数据指令,则进行有关是否已经选择了地址指令序列324(图3a)的所有地址指令的确定(框442)。如果否,则例如地址指令序列324中的下一地址指令(诸如地址指令2)被选择(框444)用于可编程地址模式生成器306。数据指令选择被重新初始化(框412)以及算法指令选择(框414)、命令指令选择(框416)和偏移指令选择(框418)被重新初始化成相应指令序列346、356、366、376(图3a)的第一指令。相应地,所选择的地址指令连同为可编程模式生成器342、350、360、370和360选择的初始指令可被应用到可编程模式生成器306、342、350、360和370中的适当生成器,并且被执行(框420)以生成选择的地址、数据、算法、命令和偏移模式以生成存储器104的适当压力测试。一旦已经选择(框442)了地址指令序列324(图3a)的所有地址指令,就进行测试模式生成(框450),除非新指令被加载到序列324、346、356、366、376中并执行,重复在图4中描绘的测试模式生成和执行。
图5描绘了图2的缺陷检测器电路220的缺陷检测和记录操作的一个示例。在一个实施例中可用存储器控制器106管芯的板上硬件有限状态机来实现在图5中描绘的逻辑。这个有限状态机又可用与存储器控制器104或装置100的其它内部管芯相同的管芯上的硬件逻辑门或软件或固件可编程处理器或它们的组合实现。
缺陷检测器电路220响应于由测试模式生成器210应用的压力测试而使用由测试模式生成器210生成的压力测试模式来检测(框510)存储单元的故障。如上面所描述的,压力测试可包含存储器命令(包含读命令、写命令或二者)或者控制信号或二者,它们都被应用到存储器104或其区域。数据从存储器104读取,并与期望结果相比较。
实际结果与期望结果的比较可指示存储单元中的缺陷。如果是,则进行有关是否已经达到最大数量缺陷的确定(框512)。在一个实施例中,存储单元可布置在多个存储器区域中,并且固定数量的备用行存储单元可用于替代含有有缺陷单元的每行存储单元。从而,例如对于一组存储单元,可能存在最大两行备用单元可用于替换在该具体组单元中具有有缺陷单元的行。要认识到,取决于具体应用,可用于具体区域的单元的备用行的数量可改变。从而,尽管本文相对于存储单元的行和组描述了压力测试和修复,但要认识到,可在其它级,诸如基于排(rank)或芯片或任何存储器区域或其部分,组织压力测试和修复。
在一些实施例中,备用行的数量可超过用于存储存储器的具体组(bank)的含有缺陷的行的行地址的修复列表储存库位置的数量。相应地,对于存储器104的具体组,缺陷的最大数量将等于可用的备用行的数量或可用的修复列表储存库位置的数量,取较小值。
要理解到,在一些实施例中,用相对大数量的位置存储需要修复的地址或行来实现修复列表储存库224可能不是成本有效的。然而,如果可修复元件的数量超过修复列表储存库位置的数量,则可重复测试和修复过程,在每次迭代时找到附加出故障行,在本文中称为两遍、三遍或n遍测试。用这种方式,可能有可能测试和修复具有大量缺陷的存储器装置,同时采用相对有限数量的储存库位置。
对于存储器104的每组可用的备用行(或修复列表储存库位置)的数量用户例如可通过在发起测试之前经由门户126设置配置寄存器232(图2)来设置。在其它实施例中,在制造装置100时,对于存储器104的每组可用的备用行(或修复列表储存库位置)的数量可被设置为固定值。
从而,可以确定具有至少一个有缺陷的存储单元的存储器位置(例如诸如行)的数量是否超过具体存储器区域(例如诸如一组存储单元)的最大值。在一个实施例中,此类确定可通过检查标志(例如诸如图2的标志234中的标志)进行,该标志当设置时指示已经达到故障最大值。从而,在检测到(框510)有缺陷的存储单元时,通过检查发现缺陷的区域的故障最大标志的状况,可以确定(框512)是否已经达到该区域的最大数量的缺陷。如果已经达到最大值使得附加缺陷超过最大值,则用于该具体缺陷的检测和记录过程结束(框514)。
用这种方式,故障最大值标志提供了指示具体组的附加修复是否有可能的溢出指示符。在一个实施例中,组的压力测试可在故障最大标志已经被设置成确定在那组中是否存在附加缺陷之后继续,尽管附加备用行(或附加修复列表储存库)对于任何此类附加缺陷的连接替换不可用。如果适当的话,故障最大标志可通过写操作经由门户126或者通过显式重新设置操作被重新设置成标志234的配置寄存器。
如果未超过缺陷的最大数量,则确定(框518)有缺陷的存储单元的行是否是新的,也就是,有缺陷的存储单元是否是存储器位置集合中的第一已知有缺陷的存储单元,诸如例如存储单元行。如之前所提到的,在所图示的实施例中,存储器可通过用整行备用单元替换含有有缺陷单元的存储单元行。因此,如果该行不是新的和唯一的,也就是,它已经被指定用于替换,则该缺陷不是对于那行发现的第一缺陷,并且结束(框514)那个具体缺陷的检测和记录过程。
如下面所说明的,含有有缺陷的存储单元的存储器位置的行或其它集合可被指定用于配置为修复列表储存库(诸如出故障存储器地址的修复列表储存库224(图2))的存储器中的替换。在此类实施例中,例如通过确定含有存储单元的具体存储器区域的有缺陷的存储单元的存储单元行是否已经被存储为修复列表储存库224的列表中的条目,可以确定(框518)有缺陷的存储单元是否是存储单元行中的第一已知有缺陷的存储单元。如果是,则确定有缺陷的存储单元不是那行的第一已知有缺陷单元,并且可旁路(框514)将含有有缺陷的存储单元的那行的指定存储在修复列表储存库中作为存储器位置列表的条目,因为存储单元的具体存储器区域的存储单元的具体行已经被存储为修复列表储存库列表中的条目。
如果确定(框518)有缺陷的存储单元是存储器位置集合(诸如例如存储单元行)的第一已知有缺陷的存储单元,则可以进行确定具有至少一个有缺陷的存储单元的存储器位置(诸如例如行)的数量是否已经达到(框520)具体存储器区域(诸如例如存储单元组)的最大值。如果是,则可设置(框524)上面提到的故障最大标志,并且对于该具体缺陷的检测和记录过程结束(框514)。在一个实施例中,故障最大值可被设置成指示对于具体存储器区域何时对于替换有缺陷行可用的备用行的提供已经耗尽。
如果未达到故障最大值,指示附加备用行对于用作具体存储器区域的有缺陷行的替换可用,则确定(框530)是否已经检测到其他行的先前故障。如果是,则表示故障计数的计数器递增(框532)。在随后确定(框520)中这个故障计数可与故障最大值相比较,以确定故障检测数量是否已经达到故障最大值。
含有有缺陷的存储单元的行的行地址可被存储(框534)在出故障地址的修复列表储存库224(图2)的适当位置,并且指示存储单元行地址的标志集合(框540)已经被存储在用于修复该行的修复列表储存库534中。在有关是否已经存在对于该存储器区域检测的先前故障的随后确定(框530)中可检查此标志。在一个实施例中,可对于每个存储器区域设置标志,指示具体存储器区域的至少一行是否具有至少一个有缺陷的存储单元。
图6示出了出故障存储器地址的修复列表储存库224的一个示例。在此示例中,修复列表储存库224的结构已经被布置为储存库位置的行和列的阵列,其中存储器104的每组(组0、组1...组n)具有储存库位置的指配行。对于要指配以替换存储单元的具体组的行的可用的每个备用存储器行,修复列表储存库224的阵列具有一列位置(故障0、故障1...故障n)。从而,如果具体存储器例如具有8组,并且例如每组4个备用行的存储单元,则修复列表储存库224将具有8行储存库位置,每组一行储存库位置,以及4列储存库位置,那个具体组的每个可用备用行的存储单元一列储存库位置。
相应地,在检测到(图5框510)具体组(诸如组0)的第一有缺陷行时,含有有缺陷的存储单元的组0的存储单元行的行地址可被放置在修复列表储存库位置(组0,故障0),并且标志可被设置(框540)在修复列表储存库224的组0标志位置中,指示存储单元的行地址已经被存储在修复列表储存库534中,以便修复组0中的那个存储单元行。在检测到(图5框510)组0的下一新的唯一的有缺陷的存储单元行时,故障计数被递增(框532)以指向储存库位置组0、故障1,组0的储存库位置行中的下一位置,并且含有有缺陷的存储单元的组0的该下一新的唯一的行的存储单元行地址可被放置在组0、故障1的修复列表储存库位置。此外,标志可被设置(框540)在修复列表储存库224的组0标志位置,指示存储单元行的另一地址已经被存储在修复列表储存库534中,以便修复组0中那个存储单元行。
在随后每次检测到组0的新的唯一的存储单元行时,故障计数都被递增(框532)以指向组0的位置行中的下一储存库位置,并且含有有缺陷的存储单元的组0的该下一唯一存储单元行的存储单元行地址可被放置在对应于那个故障计数的修复列表储存库位置。此外,标志可被设置(框540)在修复列表储存库224的组0标志位置,指示存储单元行的另一地址已经被存储在修复列表储存库534中,以便修复组0中的那行。
组0的压力测试继续,直到那组的所有存储单元都已经用每一个编程的压力测试进行了压力测试为止。随着组0压力测试的进行,一旦检测的含有缺陷的新的唯一行的数量超过组0的备用行的数量,就达到(框520)故障最大值,并且故障最大标志可被设置(框524)在修复列表储存库224中的组0标志位置。在该点,没有附加存储单元行地址被记录(框514)在修复列表储存库中,因为没有附加备用行保留用于组0。然而,在一个实施例中,甚至在达到故障最大值之后,组0的压力测试也可继续,以标识在组0中是否存在附加缺陷。在其它实施例中,一旦已经达到故障最大值,就可终止具体组的压力测试。
在终止组0的修复列表储存库224中的压力测试和缺陷记录时,由故障计数器所指示的故障计数可自动或由用户或外部软件重新设置,在发起存储器104的下一组的测试之前重新设置故障计数器。在一个实施例中,故障计数器在标志234中可作为寄存器维护,并经由门户126访问以读取或重新设置,视情况而定。还有,在一些实施例中,可对于存储器104的每组或其它存储器区域维护单独故障计数器。
存储器104的压力测试继续对剩余组(组1、组2...组n)进行压力测试,其中含有缺陷的新的唯一存储单元行的存储单元行地址被记录在修复列表储存库224中,以类似于上面对于组0描述的方式。此外,随着每组压力测试的进行,可为每组设置标志,如上所述。
一旦含有缺陷的存储单元行的至少一个存储单元行地址已经被记录在修复列表储存库224中,自修复逻辑114(图1)就可通过用存储单元的备用行替换含有缺陷的单元行来自动开始修复有缺陷存储器104,而没有用户或外部软件干预。在一个实施例中,自修复逻辑114可与自测试逻辑100并行操作,使得存储器104可与正在进行的存储器压力测试并行修复,以标识附加行,如果任何附加行含有有缺陷的存储单元的话。
从而,在一个实施例中,一旦所有压力测试都完成,并且所有有缺陷的存储单元行都已经被记录在储存库224中,就可激活修复逻辑。在另一实施例中,一旦对于具体存储器区域(诸如例如组)完成了所有压力测试,并且对于那组,所有有缺陷的存储单元行都已经被记录在储存库224中,就可激活修复逻辑。因此,重新开始压力测试以标识一组中的任何存储器缺陷,同时对于另一组修复已经记录在修复列表储存库224中的有缺陷的存储单元行。在又一实施例中,有缺陷的存储单元行一记录在修复列表储存库中,就可激活修复逻辑以修复存储单元行,而不等待对于具体存储器区域(诸如例如组)完成压力测试。
要认识到,修复储存库的内容,包含具有至少一个有缺陷单元的行地址,以及关联的标志可由硬件或软件读出,并保存以便随后用在修复中。如上面所描述的,当检测到故障时,或者在已经完成了所有压力测试之后,可进行修复。此外,修复可被推迟到同一测试步骤的随后时间,或者甚至推迟到某一其它另外测试步骤。如果修复数据被存储在易失性寄存器中,则可能需要在从储存库224中移除电力之前将数据拷贝到诸如在网络或存储装置上的某一其它永久性存储装置,或者管芯上或者管芯下。用这种方式存储修复数据不仅可便于推迟的修复,而且可充当故障速率的永久记录,诸如可能在过程跟踪中用于质量管理或其它目的。
图7图示了按照本说明书一个实施例的图1的自修复逻辑114的更详细示例。在此示例中,在图7中描绘的逻辑是在一个实施例中用存储器控制器106管芯的板上硬件有限状态机实现的修复引擎。这个有限状态机又可用与存储器控制器104或装置100的其它内部管芯相同的管芯上的硬件逻辑门或软件或固件可编程处理器或它们的组合实现。
如下面更详细说明的,修复逻辑114循环通过由自测试逻辑110收集并在修复列表储存库224中记录的出故障地址列表。对于每个出故障的存储单元行,被记录在储存库224中的储存库位置的行地址,修复逻辑114都向存储器104发出适当命令以用内置在存储器104中的备用行替换出故障的或有故障的行。
在第一状态710,修复逻辑114的状态机是空闲的,等待将有缺陷的存储单元行的行地址记录在修复列表储存库224中。在将有缺陷的存储单元行的至少一个行地址记录在修复列表储存库224中时,状态机自动发出预充电命令(状态714),以给含有在修复列表储存库224中所标识的有缺陷的存储单元行的存储器区域或多个区域预充电。在等待状态720允许预先充电完成之后,状态机自动启用(状态724)存储器104的修复型式,发起(状态730)由记录在修复列表储存库224中的位置所标识的存储单元行的修复,并进入等待状态734以允许有充分的时间修复要完成的那个存储单元行。
在一个实施例中,修复逻辑114的状态机包含等待状态734的适合的计时器电路。例如,可提供可编程延迟/计数器以允许有充分的时间(诸如例如200毫秒)以便完成修复。在一些实施例中,取决于输入时钟频率,计数器可具有高达20位。为了减小计数器电路的大小,在一些实施例中,可能适当的是具有两阶段计数器,其包含具有近似2毫秒到5毫秒的输出计时粒度的固定计数器/除法器和可编程6位到8位计数器。要认识到,取决于具体应用,可采用其它计时器设计。
在一个实施例中,修复逻辑114的状态机可按照JEDEC(JEDEC固态技术联盟,原先称为电子装置工程联合委员会)协议发出适当的封装后修复(PPR)命令。响应于命令,适当地打开或闭合保险丝以从存储器阵列中移除有缺陷的存储单元行,并将电路中的备用存储单元行添加到阵列,以用备用存储单元行替代有缺陷行。要认识到,取决于具体应用,可利用其它修复命令和协议。
在等待状态734期满时,可发出另一预充电命令(状态740),后面是另一等待状态744以允许预充电完成。对于记录在修复列表储存库224中的每个附加行地址,自动重复状态机状态730-744的循环,直到由关联组的备用存储单元替换了在修复列表储存库224中标识的所有有缺陷的存储单元行。
一旦在修复列表储存库224中标识的所有有缺陷的存储单元行都已经由关联组的备用存储单元替换,修复逻辑114的状态机就存在(状态750)修复型式,等待(状态754)退出完成,并且修复操作完成。标志234的标志位可被设置成指示已经进行了所有修复。这个标志位可在内部或由外部测试设备或软件轮询,以确定修复何时已经完成。
在一个实施例中,适合的指令序列可经由门户126加载到适当配置寄存器232(图2)或自测试逻辑110(图1)的其它存储器中。此类加载操作可由计算机架构装置100的板上逻辑自动执行。在其它实施例中,可采用计算机架构装置100外部的装置或软件将适合的指令序列加载到自测试逻辑110中。用这种方式,视情况而定,可改变指令序列以便于改变压力测试模式。在又一些实施例中,适合的指令序列可被固定到自测试逻辑110的逻辑中。不管指令序列是固定的还是可改变的,都要认识到,本文描述的指令序列的嵌套循环结构可便于容易地使自测试逻辑110进行各种范围的压力测试。
在一个实施例中,硬件配置寄存器232、标志寄存器234和修复列表储存库224在系统外围组件互连(PCI)或PCI快速配置空间中可访问,或从测试访问端口(TAP)控制器可访问。配置空间寄存器可被映射到存储器位置。装置驱动和诊断软件可访问配置空间,并且操作系统可使用应用编程接口(API)允许对装置配置空间进行访问。在那些实施例中,其中操作系统不访问对于存储器映射的配置空间请求定义的方法或API,驱动或诊断软件以在访问规则下与操作系统可兼容的方式访问配置空间。在其它实施例中,可通过适合于访问硬件配置寄存器目的的某一其它接口或现有接口来访问硬件配置寄存器。
在所图示的实施例中,包含故障计数器的标志234可用单个寄存器或毗邻寄存器实现,以便于允许信道的所有状况位都用像单个TAP操作那么少的操作读取。从而,在一个实施例中,自修复逻辑电路114的4组、4行修复引擎的寄存器例如可占据标志位的20位加上实现自修复逻辑电路114的有限状态机的延迟寄存器的位数。
如之前所提到的,内部缺陷检测和修复电路108可中断处理器102与存储器104之间的正常存储器事务以进行存储器测试和修复操作。例如,可作为执行计算机架构装置100的基本输入和输出系统(BIOS)引导过程的引导过程一部分,调用缺陷检测和修复电路108。
图8a-8g示出了图3的地址生成器310a、310b...310n的地址生成器800的示例。在此示例中,地址生成器800是例如具有多个管线阶段n00和n01的可配置管线地址生成器。如下面更详细说明的,相信地址生成器800能够容易地生成对存储器104进行压力测试的地址。例如,为了刺激电荷耦合的相邻交互检测故障,可优选的是,生成背对背存储器事务,没有来自自测试逻辑110的过度延迟(图1)。尽管管线地址生成器800被描绘为具有两个管道阶段n00、n01,但要认识到,管线地址生成器可具有更多或更少的管道阶段,取决于具体应用。
还有,在此示例中,管线地址生成器800可配置到分别在图8a-8g中描绘的多个配置804a、804b...804g中。具体配置例如可由例如指令的循环322(图3b)的序列324(图3a)的地址指令1、2...n中的地址指令选择。在所图示的实施例中,每个配置804a、804b...804g按存储器104的分级结构的具体地址次序(addressorder)生成地址。如之前所提到的,存储单元的行和列的存储器区域可被称为组。存储器104可具有多个集成电路存储器芯片,其中集成电路存储器芯片的群经常被称为排(rank)。在此实施例中,存储器104的每排具有排地址,并且在一个或多个管芯上包括多组存储单元。然而,存储器104在一些实施例中可具有分级结构,其没有排或者在同一管芯上可具有一排或多排。
排组中的每组又具有组地址,并且包括布置在列表中的存储单元的多行和列的存储器区域。从而,存储器104的每个存储单元的全地址包含排地址、组地址、行地址和列地址。然而,要认识到,在一些实施例中,例如,全地址可没有排地址。
管线地址生成器800可配置成按不同地址次序生成存储单元的全地址,取决于为生成器800选择的配置。从而,管线地址生成器800按具体地址次序生成行地址、列地址、组地址和排地址。通过更改生成全地址各部分的地址次序,对应地更改所生成地址通过存储器104的路径。从而,地址指令参数可包含地址次序。要认识到,取决于具体应用,可包含或利用其它函数。
在一个示例中,在图8a中描绘的管线地址生成器800的配置804a按定义由在图9a中所示的排、组、行和列顺序生成地址的次序的排、组、行和列的第一地址次序顺序生成存储器地址。在配置804a中,管线地址生成器800在第一管道阶段n00的最低地址次序时隙addressorder0中具有列地址生成器810a,并且在第二管道阶段n01的下一最低地址次序时隙addressorder1中具有行地址生成器810a。从而,在初始化排、组、行和列地址(图9a框912-918)并且输出(框920)第一全地址之后,管线地址生成器800使列地址递增以用第一管道阶段n00的列地址生成器810a生成(框924)下一列地址,以在由第二管道阶段n01的行地址生成器810a生成的行地址在行循环927中改变之前,在嵌套在行循环927中的列循环926中遍历跨具体排的具体组的具体行的存储单元列生成的全地址。一旦在列循环926中已经完成(框928)了列遍历,管线地址生成器800就在行循环927中使行地址递增以生成(框930)由第二管道阶段n01的行地址生成器820a生成的下一行地址,并重新设置(框918)列地址,以在由第二管道阶段n01的行地址生成器810a生成的行地址在行循环927中再次改变(930)之前,跨具体排的具体组的下一行的存储单元的列再次遍历所生成的全地址。
用这种方式,管线地址生成器800生成存储单元的全地址,以按列、行地址次序跨存储单元的具体组的列和行遍历所生成的全地址。在配置804a中,管线地址生成器800在第二管道阶段n01的最高地址次序时隙addressorder2中具有组地址生成器824a,并且在第二管道阶段n01的最高地址次序时隙addressorder2中具有排地址生成器828a。从而,列循环926被嵌套在行循环927中,行循环927又嵌套在组循环931中。组循环931又嵌套在排循环933中。
从而,一旦在组的嵌套列和行循环中已经完成(框932)了行(和列)的遍历,管线地址生成器800就在组循环931中使组地址递增,以生成(框934)由第二管道阶段n01的组地址生成器824a生成的下一组地址,并重新设置行地址(框916)和列地址(框918),以在由第二管道阶段n01的排地址生成器828a生成(框938)的排地址改变之前,以上面在嵌套列循环926和行循环927中描述的方式跨具体排的下一组存储单元遍历所生成的全地址。一旦已经完成(框932)了具有排的所有组的遍历,管线地址生成器800就在排循环933中使排地址递增,以生成(框938)由第二管道阶段n01的排地址生成器828a生成的下一排地址,并重新设置组地址(框914)、行地址(框916)和列地址(框918),以在由第二管道阶段n01的排地址生成器828a生成的排地址再次改变(框938)之前,以上面在嵌套列循环926、行循环927和组循环931中描述的方式跨下一排的存储单元的每组再次遍历所生成的全地址。一旦已经完成(框940)了所选择的存储器区域的所有排的遍历,就已经完成(框944)了所选择的存储器区域的遍历。用这种方式,管线地址生成器800生成存储单元的全地址以按图8a的配置804a的排、组、行和列的地址次序跨所选择的存储器区域的每排存储单元的每组的行和列遍历所生成的全地址。
在另一示例中,根据在图8a中描绘的来修改配置804a的配置,以按例如在图8g和图9b中所示出的排、组、列和行的不同地址次序顺序生成存储器地址。在这个修改的配置804g中,管线地址生成器800在第一管道阶段n00的最低地址次序时隙addressorder0中具有行地址生成器820g,并且在第二管道阶段n01的下一最低地址次序时隙addressorder1中具有列地址生成器810g。排地址生成器828g和组地址生成器824g的位置未改变。从而,在图9b中,行循环927嵌套在列循环926中,列循环926又嵌套在组循环931中,组循环931又嵌套在排循环933中。
如图9b中所示,这个修改的配置的管线地址生成器800递增(框930)由第一管道阶段n00的行地址生成器820g生成的行地址,以在由第二管道阶段n01的列地址生成器810g生成的列地址改变(框924)之前,跨具体排的具体组的具体列的存储单元行遍历所生成的全地址。
在另一示例中,根据在图8a中描绘的来修改配置804a的配置,以按例如在图8b和图9c中所示出的排、行、列和组的不同地址次序顺序生成存储器地址。在这个修改的配置804b中,管线地址生成器800在第一管道阶段n00的最低地址次序时隙addressorder0中具有组地址生成器824b,在第一管道阶段n00的下一最低地址次序时隙addressoder1中具有列地址生成器810b,并且在第二管道阶段n01的最高地址次序时隙addressorder2中具有排地址生成器828b。从而,在图9c中,组循环931嵌套在列循环926中,列循环926嵌套在行循环927中,行循环927又嵌套在排循环933中。
这个修改的配置的管线地址生成器800在组循环931中递增具体全地址的组地址,以生成(框934)由第一管道阶段n00的组地址生成器824b生成的下一组地址,以在由管线地址生成器800生成的列、行和排地址改变之前,在组循环931中跨具体排的存储单元组(每组一个存储单元)在具体列地址和行地址遍历所生成的全地址。一旦跨具体排的存储单元组遍历了所生成的全地址,就在列循环926中递增列地址(下一较高地址次序),以用第一管道阶段n00的列地址生成器810b生成(框924)下一列地址。重新设置组地址(框914),重复组循环931的组遍历过程,跨具体排的组循环931中的存储单元组(每组一个存储单元)遍历具有递增的列地址(以及未改变的行和排地址)的那个全地址,直到已经遍历了组的递增的列地址(以及未改变的行和排地址)的存储单元。
一旦所生成的全地址已经对于每列都递增了,并且跨每组和每列的具体排的存储单元组(每组一个存储单元)遍历(框940)了,使得已经在列循环926中完成(框928)了列的遍历,就重新设置组地址(框914)和列地址(框918),并且在行循环927中递增行地址(下一较高地址次序)以用第二管道阶段n01的行地址生成器820b生成(框930)下一行地址。对于递增的行,重复嵌套在列循环926中的组循环931遍历组循环931中的组(如上所述一次一列)的组、列排序的遍历过程,跨组循环931中的组(一次一列)遍历行循环927中具有递增的行地址(以及具有未改变的排地址)的全地址,并且每当在组循环931中遍历具体排的组时,在列循环926中递增列地址。
从而,一旦在排的嵌套的组、列和行循环中已经完成(框932)了行(以及列和组)的遍历,管线地址生成器800就在排循环933中使排地址递增,以生成(框938)由第二管道阶段n01的排地址生成器828b生成的下一排地址,并重新设置行地址(框916)、列地址(框918)和组地址(框914),以在由第二管道阶段n01的排地址生成器828a生成的排地址再次改变(框938)之前,以上面在嵌套的组循环931、列循环926和行循环927中描述的方式跨下一排的每组存储单元再次遍历所生成的全地址。一旦已经完成(框940)了所选择的存储器区域的所有排的遍历,就已经完成(框944)了所选择的存储器区域的遍历。用这种方式,管线地址生成器800生成存储单元的全地址以按图8b和图9c的配置804b的组、列、行和排的从最低到最高的地址次序跨所选择的存储器区域的每排存储单元的每组的行和列遍历所生成的全地址。
图8c-8f示出了按所示的不同地址次序顺序生成存储器地址的图3a的地址生成器310a、310b...310n的其它配置804c-804f的示例。在这些其它配置中,管线地址生成器800具有布置在管道阶段n00、n0a并且在地址次序时隙addressorder3-0中的排地址生成器828c-f、组地址生成器824c-f、行地址生成器820c-f和列地址生成器810c-f,如所示。例如,在图8a、b和e的配置中,在排地址按顺序递增到装置的下一排地址之前,组地址顺序递增到装置的序列中的下一组地址。相反,在图8c、d和f的配置中,在组地址按顺序递增到装置的下一组地址之前,排地址顺序递增到序列中装置的下一排地址。要认识到,取决于具体应用,可利用其它配置和其它地址次序。
在生成地址以遍历过存储器104时,要认识到,地址部分(诸如例如行地址、列地址、组地址和排地址)可递增正量或负量,取决于选择的遍历模式的选择的遍历方向(例如北、南、东、西(图3c))。要进一步认识到,地址部分可递增(正或负)多于一个可应用单位,诸如单元、组或排单位,以跳过单元、组或排,取决于选择的具体行走模式。而且,增量可以改变,而不是在一些遍历模式中是固定的。包含定义遍历模式的参数的遍历模式例如可由例如应用到选择的地址生成器的指令的循环322(图3b)的序列324(图3a)的地址指令1、2...n中的地址指令选择。
图8h示出了图3a的偏移地址生成器374a、374b...374n的示例。在此示例中,偏移地址生成器是之前对于图3d的地址生成器310a、310b...310n描述的地址生成器800的配置8h。在图8h中描绘的管线地址生成器800的配置804h顺序生成距在图9a中描绘的邻居遍历模式的基础的存储器地址偏移。在配置804a中,管线地址生成器800在第一管道阶段n00的最低地址次序时隙addressorder0中具有列地址生成器810h,并且在第二管道阶段n01的下一最低地址次序时隙addressorder1中具有行地址生成器810h。排地址和组地址由基础地址提供,从而对于每个基础地址都保持不改变。
在图3d中描绘的邻居遍历模式中,通过在基础地址的行地址中,首先在一个方向并且然后反转到相反方向,递增基础地址的列地址,来生成4个偏移全地址。类似地,通过在基础地址的列地址中,首先在一个方向并且然后反转到相反方向,递增基础地址的行地址,来生成附加4个偏移全地址。为了便于快速列地址或行地址生成,可根据视情况而定反转在图3h中描绘的配置来配置行地址和列地址生成器的位置。
按照本说明书的另一方面,管线地址生成器800具有进位计数生成器,诸如分别是配置804a-g的进位计数生成器814a-g。在所图示的实施例中,由管线地址生成器800的对应地址生成器生成的其中一个或多个地址是执行正在生成的地址的地址进位的前瞻函数的进位计数生成器(其是814a-g)的输出的函数。
例如,按图8a的配置的地址次序,在生成最后一行地址之后,组地址递增到选择的行走模式的序列的下一组的组地址。然而,在例如具有32位或64位的大计数器的地址生成器生成诸如行地址或列地址的地址的实施例中,要认识到,由此类生成器生成地址进位可能要花对应的大量时间。
图10和11指向本说明书的另一方面。在所图示的实施例中,管线地址生成器对在图10的操作中描述的并如图11的时钟信号910所示意表示的时钟信号做出响应,以产生包含在初始启动周期之后的每时钟信号的排、组、列和行地址的全地址。因为管道阶段n00的进位计数生成器814a执行正在生成的地址的地址进位的前瞻函数,所以管道阶段n00的进位计数生成器814a的输出可在初始启动周期之后的每个时钟信号(clock1、clock2...clockn)的初始部分(在图9中由时钟间隔A1示意表示)中是有效的。通过在时钟周期之前或在时钟周期的相对早期提供有效地址进位输出,地址或多个地址(诸如作为地址进位的函数的组地址)在每个时钟间隔(由图9中的时钟间隔A2示意表示)内在下一时钟周期可能也是有效的,A2与A1可以相同、不同或与之交叠。作为结果,下一全地址输出在初始启动周期之后的间隔A2后面的每个时钟信号(由图9中的时钟间隔B1示意表示)的一部分中是有效的。相应地,在启动初始化周期1114之后,管线地址生成器800可按顺序在每个时钟周期(clock1、clock2等)的每个间隔B1中产生全地址。
图10图示了可配置地址生成器(诸如例如图8a-8h的地址生成器800)的管道阶段的操作。在第一操作中,地址生成器配置(框1010)用于全地址的具体地址次序(诸如例如图8b的地址次序排、行、列和组地址)。此类配置例如可由地址指令提供。在图10的示例中,地址生成器如图8a中配置。
此外,对于选择的存储器区域配置生成器(框1014)。此类配置参数例如可由地址指令提供,并且可定义依据排、组、列、行等的数量遍历的存储器区域的大小,并且例如包含开始地址。。在启动周期(诸如启动周期1114(图11))(框1018)之后,可在时钟周期间隔(诸如例如时钟clock1的间隔B1(图11))输出第一全地址。
在启动周期后面,管道阶段(诸如例如管道阶段n00)在时钟周期的过程中递增(框1026),并按配置804a(图8a)的配置的地址次序输出列地址,以及进位计数器生成器814b的列和行组合进位输出计数。在下一时钟周期的过程中,管道阶段(例如诸如管道阶段n01)更新并输出(框1034)行地址、组地址和排地址。由管道阶段n01生成的行地址、组地址和排地址是由管道阶段n00在先前时钟周期中生成的列和行组合进位输出计数的函数。虽然管道阶段n01正在对于一个全地址生成行地址、组地址和排地址,但管道阶段n00正在同一时钟周期中生成列和行组合进位输出计数以及下一全地址的列地址。从而,为了生成全地址,取两个时钟周期。然而,因为管道阶段n00和n01并行操作,因此每个时钟周期都输出全地址。在一个实施例中,第一管线阶段的地址进位生成器的输出在初始启动周期之后的每个时钟信号中是有效的,并且下一全地址在初始启动周期之后的每个时钟信号的随后部分中是有效的。
如果(框1036)未生成和输出所选择的存储器区域的最后一个全地址,则对于例如诸如下一时钟周期重复框1026-1036的操作。用这种方式,在启动周期之后,对于每个时钟周期生成和输出全地址。一旦(框1036)已经生成了所选择的存储器区域的所有地址,对于那部分压力测试的过程就结束(框1040)。
图12示出了按照本说明书一方面的生成器354a-n的可编程算法模式生成器的一个示例。图11的可编程算法模式生成器是可变刷新信号生成器1210,用于响应于算法指令的循环332(图3b)的序列356的算法指令(诸如算法指令1、2...n(图3a)之一)而生成存储器104的存储单元的刷新信号,其中刷新信号具有可变刷新速率。
在所图示的实施例中,存储器104是动态随机存取存储器(DRAM),其中位作为节点电容上的电荷存储。在DRAM中,位单元通常随时间失去电荷。为了防止存储在存储器中的数据丢失,DRAM的存储器控制器在允许的刷新时间内向所有行发出刷新信号,以恢复每个单元内的电荷(并且保留存储的数据)。
如果存储单元刷新太频繁,则数据可能丢失。如果存储单元刷新太频繁,则能量可能被浪费,并且可导致便携式装置中过早的电池耗尽。相应地,可变刷新信号生成器1210可被编程以生成各种刷新速率的刷新信号,都在存储器规范的期望刷新速率内并且不包含期望刷新速率,以测试有缺陷单元,并且确定存储器是否可在规范以下的速率刷新并且仍保留存储的数据。
在一个实施例中,可变刷新信号生成器1210可被编程为生成以降序刷新速率的刷新信号,以便以降序刷新速率的每个速率刷新存储单元。降序的每个刷新速率可从降序刷新速率的先前刷新速率的速率降低一定量。用这种方式,存储单元可以下降的刷新速率刷新,直到检测到村存储器缺陷或数据丢失。
在一个实施例中,随着测试的进行,通过改变刷新信号的频率可改变刷新速率。随着测试的进行,可改变刷新信号的刷新脉冲的占空比。要认识到,刷新信号可被编程为在其它方面改变,取决于具体应用。在另一方面,改变刷新速率可与各种其它压力测试组合,其中随着刷新速率的变化,向由各种存储器地址遍历模式寻址的存储单元发出各种存储器命令模式的存储器命令。
在一个实施例中,可变刷新信号生成器1210例如可由算法指令的循环322(图3b)的序列356的算法指令(诸如算法指令1、2...n(图3a)之一)编程或配置成以编程的速率提供刷新信号。
由可变刷新信号生成器1210输入和修改的生成各种刷新速率的刷新信号的数据可由可编程数据模式生成器342提供。在其它实施例中,可变刷新信号生成器1210可自生成输入信号。在一个实施例中,生成器1210的输出是备选数据源,其可通过命令指令的参数选择。
图13示出了测试模式生成器210的可编程算法模式生成器350的算法生成器354a、354b...354n(图3a)的算法生成器1310的另一示例。此实施例的算法生成器1310包含模式定序器1314a、1314b、1314c,各具有分别耦合到一个或多个复用器1322a、1322b...1322n的选择器输入1318的输出S0、S1、S2。每个复用器1322a、1322b...1322n具有耦合到存储器(诸如例如寄存器或高速缓存1324)的输入,例如存储可由可编程数据模式生成器342(图3a)生成并存储在高速缓存1324中的模式混合器数据。每个复用器1322a、1322b...1322n适合于响应于分别是模式定序器1214a、1314b、1314c的选择信号S0、S1、S2而选择复用器输入以将模式混合器数据位输出到复用器输出。当在遍历存储器104的地址执行命令时,由每个复用器1322a、1322b...1322n输出的数据可被用作控制信号以对存储器104进行压力测试。还有,当在遍历存储器104的地址执行命令时,由每个复用器1322a、1322b...1322n输出的数据可被用作写数据以对存储器104进行压力测试。此外,由每个复用器1322a、1322b...1322n输出的数据可被用作期望测试结果数据,以与当对存储器104进行压力测试时获得的实际测试数据进行比较。在一个实施例中,生成器1310的输出是备选数据源,其可通过命令指令的参数选择。类似地,在一个实施例中,模式定序器1314a、1314b、1314c的输出是备选数据源,其可通过命令指令的参数选择。
在所图示的实施例中,模式定序器1214a、1314b、1314c各可编程以输出复用器选择信号S0、S1、S2的各种模式。在一个实施例中,模式定序器1214a、1314b、1314c可由算法指令(算法指令1、算法指令2...算法指令n)的序列356(图3a)中的算法指令的顺序循环332(图3b)编程。序列356的每个算法指令(算法指令1、算法指令2...算法指令n)当由模式定序器1214a、1314b、1314c中的适当模式定序器执行时,使模式定序器1214a、1314b、1314c将复用器选择信号模式作为具体算法指令的函数生成。
在算法生成器1310的另一方面,生成并存储在高速缓存1324中的模式混合器数据可在具体压力测试过程中保持静态(其不改变)。图14是描绘基于可存储在高速缓存1324中并提供给具体复用器1322a、1322b...1322n的输入的各种模式混合器代码的各种基于布尔函数的操作型式的示例的表。如图14所示,由每个复用器1322a、1322b...1322n输出的数据可被视为复用器选择信号S0、S1、S2的布尔函数。可通过将具体模式混合器代码存储在高速缓存1324中并将模式混合器代码提供给具体复用器1322a、1322b...1322n的输入来选择复用器选择信号S0、S1、S2的具体布尔函数。
例如,如果模式混合器代码00(十六进制)被存储在高速缓存1324中并例如被提供给复用器1322a的输入,则复用器1322a的数据输出是恒定0位值。类似地,如果模式混合器代码FF(十六进制)被存储在高速缓存1324中并例如被提供给复用器1322a的输入,则复用器1322a的数据输出是恒定0位值。如果模式混合器代码AA(十六进制)被存储在高速缓存1324中并例如被提供给复用器1322a的输入,则复用器1322a的数据输出与复用器选择信号S0相同。(另一复用器选择信号S1、S2“不关心”模式混合器代码AA。)类似地,如果模式混合器代码CC或F0(十六进制)被存储在高速缓存1324中并例如被提供给复用器1322a的输入,则复用器1322a的数据输出分别与复用器选择信号S1、S2相同。
如果模式混合器代码03(十六进制)被存储在高速缓存1324中并例如被提供给复用器1322a的输入,则复用器1322a的数据输出与复用器选择信号S0和S1中每个的反转的布尔“与”函数相同。(另一复用器选择信号S2“不关心”模式混合器代码03。)如果模式混合器代码80(十六进制)被存储在高速缓存1324中并例如被提供给复用器1322a的输入,则复用器1322a的数据输出与复用器选择信号S0、S1和S2的布尔“与”函数相同。如果模式混合器代码CO(十六进制)被存储在高速缓存1324中并例如被提供给复用器1322a的输入,则复用器1322a的数据输出与复用器选择信号S0和S1的布尔“与”函数相同。(另一复用器选择信号S2“不关心”模式混合器代码CO。)如果模式混合器代码EE(十六进制)被存储在高速缓存1324中并例如被提供给复用器1322a的输入,则复用器1322a的数据输出与复用器选择信号S0和S1的布尔“或”函数相同。(另一复用器选择信号S2“不关心”模式混合器代码EE。)要认识到,取决于具体应用,可使用其它模式混合器代码选择其它布尔函数。
在一个实施例中,模式混合器代码在测试的开始进行编程,并且可能相对静态,也就是,不通过测试循环重新编程为测试进程。相反,连接到复用器选择输入1318的复用器选择信号S0、S1、S2的模式流可能相对动态,也就是,例如在每个时钟周期上都改变。通过比较,在先前复用方案中,相信动态输入流通常去到复用器输入,并且其中一个动态流在复用器的选择线上用相对静态的选择信号进行选择。
在算法生成器1310的另一方面,每个模式定序器1314a、1314b、1314c是多型式模式定序器,其中操作型式可选择成输出复用器选择信号S0、S1、S2的选择模式。20.图15示出了作为多型式模式定序器的模式定序器1314a的一个示例。其它模式定序器1314b、1314c可按类似方式构造。选择每个序列中的多个操作型式之一的能力例如准许允许指向存储器的站外模式的同一序列被用于许多装置上的许多测试,以及允许匆忙生成用于与站内测试结果相比较的期望结果的模式。从而,用于对存储器区域进行压力测试的测试模式可以实时生成,例如当同时或以交叠方式生成用于那些测试模式的期望结果模式时。
模式定序器1314a包含第一固定模式型式,其中移位寄存器1510在移位寄存器输出1512上通过输出复用器1513将存储在移位寄存器1510中的固定模式移位到模式定序器输出,其在此示例中是复用器选择信号S0。模式可通过输入复用器1515移位到移位寄存器1510中。模式定序器1314a还包含时钟信号模式型式,其中时钟信号生成器1514在输出1516上通过输出复用器1513m将时钟信号输出到模式定序器输出,也就是,复用器选择信号S0。在所图示的实施例中,时钟信号具有可编程周期和可编程占空比,其中时钟周期内的时钟脉冲的长度是可编程的。
图16示出了此类时钟信号(clocka、clockb等)的示例,其中时钟信号生成器1514(图15)的组合逻辑的第一计数器对该时钟周期内的时钟信号的时钟脉冲1616的发起的延迟1614计时。组合逻辑的第二计数器1524对时钟脉冲的持续时间1618计时,并且第三计数器1528对时钟脉冲1616之后的时钟信号的剩余周期的持续时间1622计时,直到下一时钟信号clockb开始。用这种方式,可容易地生成比较长的时钟信号。在一些实施例中,频率或占空比可随着测试进行而改变的时钟信号型式的平扫型式。
模式定序器1314a还包含线性反馈型式,其将线性反馈多项式模式输出到模式定序器输出SO。模式定序器1314a具有有限状态机1538的线性反馈多项式逻辑1532,其确定多型式模式定序器1314a的有限状态机1538的下一状态。移位寄存器1510的输出1512被反馈回线性反馈多项式逻辑1532的输入以及输入复用器1515的输入。
如在图17中所见的,线性反馈多项式逻辑1532的每位包含一个或多个复用器1710,其输入耦合到移位寄存器1510(图15)的位寄存器1714的输出,并且输出耦合到移位寄存器1510的输入。线性反馈多项式逻辑1532的每位的复用器1710的另一输入耦合到由“异或”门1720所表示的多项式组合逻辑。有限状态机1538的线性反馈多项式逻辑1532确定多型式模式定序器1314a的有限状态机1538的下一状态,其中有限状态机1538的状态由存储在移位寄存器1510的位寄存器中的位表示。用这种方式,线性反馈型式的线性反馈多项式有限状态机1538共享固定模式型式的移位寄存器1510的位寄存器1714。从而,在此示例中,线性反馈型式(其也可被称为基于线性反馈移位寄存器(LFSR)的型式),移位寄存器1510保有通过输入复用器1515提供的初始种子,并且逻辑1532的LFSR反馈多项式确定状态机1538的下一状态。在一个实施例中,逻辑1532支持多个优化的LFSR多项式,其在大小上可改变,诸如例如从8位改变到32位。
如之前所提到的,由执行选择的算法指令(诸如例如算法指令1)的算法生成器(诸如例如算法生成器354a)生成的随机模式可用于在互连上产生白噪声以给互连应用压力以测试缺陷。从而,如果一个模式定序器(诸如例如模式定序器1314a)被编程为在时钟信号型式操作以在复用器选择线S1上生成低频时钟信号,并且另一个模式定序器(诸如模式定序器1314b)被编程为在基于LFSR的型式操作以在复用器选择线S2上生成随机出现的位模式,由模式混合器代码CO(十六进制)提供的S1与S2的布尔函数将提供噪声后面是沉默周期的脉冲串,并且循环重复。
在一个实施例中,可提供种子数据,并且可通过应用算法指令(算法指令1、算法指令2...算法指令b)的序列356(图3a)中的一个或多个算法指令,从可用的操作型式(包含移位寄存器1510的固定模式型式、时钟生成器1514的可编程时钟信号型式以及线性反馈多项式型式)中选择操作型式。在其它实施例中,型式可由测试器电路的其它部分选择。
图18a示出了可编程数据模式生成器342(图3f)的数据生成器(诸如数据生成器344a(图18b))的操作的一个示例,其中在输出1804输出的所生成的数据模式是所生成的数据模式被写到其中的存储单元的存储单元地址的模式的可选择函数。所生成的数据模式可用于将测试数据写到存储器装置。此外,所生成的数据模式的拷贝可被发送到缺陷检测器电路220,以便验证所生成的数据模式是否由测试中的存储器区域正确存储和检索。
例如,“数据背景”函数是由数据生成器344a正在执行的数据指令的参数可选择的可选择函数。相应地,在图18b的实施例中,数据生成器344a具有用于接收可选择函数的数据指令的参数的输入1810。在第一操作中,在输入1810选择(图18a框1812)基于存储器地址的背景函数。按照选择的基于存储器地址的背景函数生成(框1814)数据和反转数据的模式,并在输出1804输出。
一个此类数据背景函数的示例是“实”函数,其中相同值(诸如例如逻辑1)被写到存储器104的存储单元340(图3c)的存储器区域1910的如图19a中所图示的测试中的具体区域的每个地址,并且然后随后从中读回。存储器区域1910由布置在列和行中的存储单元340的5×5阵列表示。如之前所提到的,典型的存储器区域可能相当大,并且从而可具有以千字节、兆字节、吉字节、太字节或更大字节编号的存储单元。存储器区域的一个示例经常被称为“组”。取决于具体应用,每个存储单元340都可存储单个位、字节、字或更长的位串。
可由数据生成器344a执行的数据指令的适当参数选择的另一数据背景函数是“交替竖条纹”函数,其中正在生成的数据被写到存储器104的存储单元340(图3c)的存储器区域1910的如图19b中所图示的测试中的具体区域的偶数列的每个地址,并且然后随后从中读回,并且其中正在生成的数据被反转,并且然后被写到存储器104的存储单元340(图3c)的存储器区域1910的如图19b中所图示的测试中的具体区域的奇数列的每个地址,并且然后随后从中读回。要认识到,在其它实施例中,反转数据可被写到偶数列,而不是奇数列。
相应地,图18b的实施例的数据生成器344a包含数据反转器1820,其可有选择地反转所生成的数据,之后将它写到测试中的存储器区域,作为数据被写到的存储单元的地址的函数。从而,在图18b的实施例中,数据生成器344a具有用于接收由测试模式生成器210(图2)的一个或多个地址生成器生成的地址的输入1830。在此示例中,数据反转器1820有选择地将所生成的数据作为要测试的区域的存储单元的列地址的函数进行反转。更确切地说,数据对于奇数列地址进行反转,而对于偶数列地址保持不反转。例如,在一个实施例中,如果列地址的最低有效(或最低次序)位是奇数(逻辑“1”)则数据可被反转(反转的数据),并且如果列地址的最低有效位是偶数(逻辑“0”)则数据可保持不反转(数据)。要认识到,在其它实施例中,数据可对于偶数列地址进行反转,而对于奇数列地址保持不反转。有选择地进行反转或有选择地保持不反转的数据可由数据生成器344a在内部生成,或者可由测试模式生成器210的另一数据生成器344b...344n生成,并且在数据生成器344a的输入1840输入。
可由数据生成器344a执行的数据指令的适当参数选择的另一数据背景函数是“交替横条纹”函数,其中正在生成的数据被写到存储器104的存储单元340(图3c)的存储器区域1910的如图19c中所图示的测试中的具体区域的偶数行的每个地址,并且然后随后从中读回,并且其中正在生成的数据被反转,并且然后被写到存储器104的存储单元340(图3c)的存储器区域1910的如图19c中所图示的测试中的具体区域的奇数行的每个地址,并且然后随后从中读回。要认识到,在其它实施例中,反转数据可被写到偶数行,而不是奇数行。
在此示例中,数据反转器1820有选择地将所生成的数据作为要测试的区域的存储单元的行地址的函数进行反转。更确切地说,数据对于奇数行地址进行反转,而对于偶数行地址保持不反转。例如,在一个实施例中,如果行地址的最低有效(或最低次序)位是奇数(逻辑“1”)则数据可被反转(反转的数据),并且如果行地址的最低有效位是偶数(逻辑“0”)则数据可保持不反转(数据)。要认识到,在其它实施例中,数据可对于偶数行地址进行反转,而对于行列地址保持不反转。
可由数据生成器344a执行的数据指令的适当参数选择的又一数据背景函数是交替行和列单元或“棋盘”函数,其中正在生成的数据被写到存储器104的存储单元340(图3c)的存储器区域1910的如图19d中所图示的测试中的具体区域的偶数行的每个偶数单元地址,并且然后随后从中读回,并且其中正在生成的数据被反转,并且然后被写到存储器104的存储单元340(图3c)的存储器区域1910的如图19d中所图示的测试中的具体区域的偶数行的每个偶数单元地址,并且然后随后从中读回。
类似地,在“棋盘”函数中,正在生成的数据被写到存储器104的存储单元340(图3c)的存储器区域1910的如图19d中所图示的测试中的具体区域的奇数行的每个奇数单元地址,并且然后随后从中读回,并且正在生成的数据被反转,并且然后被写到存储器104的存储单元340(图3c)的存储器区域1910的如图19d中所图示的测试中的具体区域的奇数行的每个奇数单元地址,并且然后随后从中读回。在所图示的实施例中,在“异或”函数中输入每个存储单元340的列地址的最低有效(或最低次序)位和行地址的最低有效位以确定向那个特定地址写/读的所生成的数据被反转(反转数据)还是保持不反转(数据)。要认识到,在其它棋盘数据背景函数中,反转数据可被写到偶数行的偶数单元地址,而不是偶数行的奇数单元地址,并且反转数据可被写到奇数行的奇数单元地址,而不是奇数行的偶数单元地址。
在此示例中,数据反转器1820有选择地将所生成的数据作为要测试的区域的存储单元的行和列地址的函数进行反转。更确切地说,作为行地址和列地址的最低有效位的“异或”的函数进行反转数据。要认识到,在其它实施例中,取决于具体应用,可作为行地址和列地址的包含其它逻辑函数的其它函数的函数进行反转(或不反转)数据。
在所图示的实施例中,可使用数据指令的适当参数选择数据背景函数。从而,例如可分别使用00、01、10或11的参数代码,选择实数据背景函数、交替竖条纹背景函数、交替横条纹背景函数或棋盘背景函数。要认识到,取决于具体应用,可选择其它数据背景函数,并且可利用其它指令参数代码来选择具体数据背景函数。
所生成的数据模式的可选择函数的另一示例是全局反转函数,其全局反转为测试中的区域的所有存储单元生成的所有数据。例如可使用数据指令的适当参数来选择测试数据的此类全局反转。
所生成的数据模式的可选择函数的另一示例是可选择周期数据反转函数,其中作为存储器地址偏移的周期模式的函数进行反转数据。相应地,在图18b的实施例中,数据生成器344a具有用于接收由测试模式生成器210(图2)的一个或多个地址偏移生成器响应于适当偏移地址指令而生成的地址偏移的输入1850。如下面所说明的,存储器地址偏移的可选择周期模式可由可选周期存储器地址偏移函数生成。在一个实施例中,可用适当偏移地址指令选择可选择周期存储器地址偏移函数,该指令由地址偏移生成器执行以生成存储器地址偏移的选择的周期模式。
利用可选择周期数据反转函数,当遍历存储器区域时,被写到测试中的存储器区域的数据可响应于地址偏移指令而在那个区域的选择的单元集合上反转。类似地,当第二次遍历存储器区域以从存储器区域读取数据以验证先前数据写操作时,可使用另一地址偏移指令考虑数据写操作的周期数据反转。
由地址偏移生成器执行的适当地址偏移指令和数据生成器344a执行的适当数据指令可选择的可选择周期数据反转函数的一个示例是“单个竖条纹”函数,其中正生成的数据被反转,并且然后被写到单列,诸如例如存储器区域1920(其在此示例中是4×4存储单元区域)的图19e的列Col1。对于测试中的存储器区域1920的剩余列,写正在生成的数据,而没有如对于图19e的列Col0、Col2、Col3所指示的反转。尽管为了简洁目的在图19e中测试中的存储器区域1920被描绘为存储单元的4×4阵列,要认识到,取决于具体应用,测试中的存储器区域通常可具有数十、数百、数千、数百万等存储单元。
在遍历图19e中描绘的4×4单元存储器区域1920时,遍历的基础单元例如可被视为在行和列地址Row0、Col1的单元。在此示例中,写到在Row0、Col1的基础单元的数据如图19e所示反转。存储器区域1920例如可沿一行从左到右遍历。这个沿一行左到右的遍历被指示为图19e的“北”方向。
如果写到在行和列地址Row0、Col1的基础单元的数据被反转,则在单个竖条纹数据反转模式的向北遍历中写到接下来三个数据单元(分别在Row0、Col2;Row0、Col3;Row1、Col0)的数据不反转。继续在北方向遍历,写到在行和列地址Row1、Col1的下一单元的数据被反转,并且在北方向遍历中写到接下来三个数据单元(分别在Row1、Col2;Row1、Col3;Row2、Col0)的数据不反转。重复这个过程,直到数据已经被写到测试中的存储器区域的所有存储单元,其中每4个单元反转在北方向遍历中写到4×4存储器区域的单元的数据,以产生具有4个单元周期的单个竖条纹数据反转模式。
测试中的存储器区域中的存储单元的正方阵列的行数或列数可由变量N表示。从而,对于测试中的存储器区域中的存储单元的N×N阵列的单个竖条纹数据反转模式,周期数据反转函数的周期对于在北方向的遍历等于N。对于M(行)×N(列)矩形阵列,周期数据反转函数的周期对于在北方向的遍历等于N,阵列内的列数。
存储器区域1920在单个竖条纹数据反转模式中可在南方向遍历,而不是在北方向。看到,在南方向遍历中写到4×4存储器区域的单元的数据再次每4个单元反转,以产生具有4个单元周期的单个竖条纹数据反转模式。因此,在此单个条纹模式的周期数据反转函数的周期是相同的,也就是阵列中的列数N,不管在北方向还是在南方向都产生单个竖条纹数据反转模式。在随后验证测试中,在北方向或南方向遍历中生成的以测试从M(行)×N(列)存储器区域读回的数据的数据每N个单元反转,以产生具有N个单元的周期的单个竖条纹数据反转模式。
由数据生成器344a执行的适当地址偏移指令可选择的周期数据反转函数的另一示例是“横条纹”函数,其中正生成的数据被反转,并且然后被写到单行,诸如例如存储器区域1920(其在此示例中是4×4存储单元区域)的图19f的行Row1。对于测试中的存储器区域1920的剩余行,写正在生成的数据,而没有如对于图19e的行Row0、Row2-Row3所指示的反转。尽管为了简洁目的在图19e中测试中的存储器区域1920被描绘为存储单元的4×4阵列,要认识到,测试中的存储器区域通常可具有数十、数百、数千、数百万等存储单元,取决于具体应用。
在遍历图19e中描绘的4×4单元存储器区域1920时,遍历的基础单元例如可被视为在行和列地址Row1、Col0的单元。在此示例中,写到在Row1、Col0的基础单元的数据如图19e所示反转。存储器区域1920例如可沿一列从上到下遍历。这个沿一行上到下的遍历在图19f中被指示为“西”方向。
如果写到在行和列地址Row1、Col0的基础单元的数据被反转,则在单个横条纹数据反转模式的向东遍历中写到接下来三个数据单元(分别在Row2、Col0;Row3、Col0;Row0、Col1)的数据不反转。继续在东方向遍历,写到在行和列地址Row1、Col1的下一单元的数据被反转,并且在东方向遍历中写到接下来三个数据单元(分别在Row2、Col2;Row3、Col1;Row0、Col2)的数据不反转。重复这个过程,直到数据已经被写到测试中的存储器区域的所有存储单元,其中每4个单元反转在东方向遍历中写到4×4存储器区域的单元的数据,以产生具有4个单元周期的单个横条纹数据反转模式,其中周期再次等于N,正方阵列的大小。从而,对于测试中的存储器区域中的存储单元的N×N正方阵列的单个横条纹数据反转模式,周期数据反转函数的周期对于在东方向的遍历等于N。对于N(行)×M(列)矩形阵列,周期数据反转函数的周期对于在北方向的遍历等于N,阵列内的行数。
存储器区域1920在单个横条纹数据反转模式中可在西(下到上)方向遍历,而不是在东方向。看到,在西方向遍历中写到4×4存储器区域的单元的数据再次每4个单元反转,以产生具有4个单元周期的单个横条纹数据反转模式。因此,在此单个横条纹模式的周期数据反转函数的周期是相同的,也就是阵列中的行数N,不管在东方向还是在西方向都产生单个横条纹数据反转模式。在随后验证测试中,在东方向或西方向遍历中生成的以测试从N(行)×M(列)存储器区域读回的数据的数据每N个单元反转,以产生具有N个单元的周期的单个横条纹数据反转模式。
数据作为存储器地址偏移的周期模式的函数进行反转的所生成的数据模式的可选择周期数据反转函数的另一示例是如在图19g中所描绘的“斜条纹”数据反转函数。在“斜条纹”数据反转函数中,正在生成的数据被反转,并写到测试中的存储器区域1920(图19g)(其例如可类似于图19e的存储器区域1920)的斜条纹。对于不在斜条纹内的测试中的存储器区域的剩余单元,写正在生成的数据,而没有反转。
在遍历图19g中描绘的4×4单元存储器区域1920时,遍历的基础单元例如可被视为在行和列地址Row0、Col0的单元。在此示例中,写到在Row0、Col0的基础单元的数据如图19g所示反转。存储器区域1920例如可沿一行从左到右遍历。这个沿一行左到右的遍历在图19g中被视为“北”方向。
如果写到在行和列地址Row0、Col0的基础单元的数据被反转,则在单个斜条纹数据反转模式的向北遍历中写到接下来4个数据单元(分别在Row0、Col1;Row0、Col2;Row0、Col3)的数据不反转,后面是反转写到在行和列地址Rowl、Col1的下一(第五)单元的数据。在北方向遍历中写到接下来4个数据单元(分别在Row1、Col2;Row1、Col3;Row2、Col0;Row2、Col1)的数据不反转,而写到在行和列地址Row2、Col2的下一(第五)单元的数据被反转。重复此过程,直到数据已经被写到测试中的存储区域的所有存储单元。用这种方式,在北方向遍历中写到4×4存储器区域的单元的数据每5个单元反转,以产生具有5个单元周期的单个斜条纹数据反转模式。从而,对于测试中的存储器区域中的存储单元的N×N阵列的单个斜条纹数据反转模式,周期数据反转函数的周期对于在北方向的遍历等于N+1。对于M(行)×N(列)矩形阵列,周期数据反转函数的周期对于在北方向的遍历等于N+1,其中N等于阵列内的列数。
存储器区域1920也可沿一列在东(下)方向遍历以生成单个斜条纹数据反转模式,而不是沿行在北(左到右)方向。看到,在东方向遍历中写到4×4存储器区域的单元的数据再次每5个单元反转,以产生具有5个单元周期的单个斜条纹数据反转模式。因此,在此单个斜条纹模式的周期数据反转函数的周期是相同的,不管在北方向还是在东方向都产生单个斜条纹数据反转模式。在随后验证测试中,在北方向或东方向遍历中生成的以测试从4×4存储器区域读回的数据的数据每5个单元反转,以产生具有5个单元的周期的单个斜条纹数据反转模式。从而,对于测试中的存储器区域中的存储单元的N×N阵列的单个斜条纹数据反转模式,周期数据反转函数的周期对于在东方向的遍历等于N+1。对于N(行)×M(列)矩形阵列,周期数据反转函数的周期对于在东方向的遍历等于N+1,其中N等于阵列内的行数。
在单元的每个周期(诸如在这些示例中论述的5个单元的周期)中,数据被反转的具体单元可以是周期的第一单元,或者可以是周期的最后一个单元,或者可以是周期的中间单元。在其它实施例中,要认识到,包含中间单元的周期的多于一个单元的数据可被反转以产生斜条纹数据反转模式。
也可沿一列在西(上)方向遍历存储器区域1920,以生成单个斜条纹数据反转模式。在遍历图19g中描绘的4×4单元存储器区域1920时,遍历的基础单元例如可再次被视为在行和列地址Row0、Col0的单元。在此示例中,写到在Row0、Col0的基础单元的数据如图19g所示反转。存储器区域1920例如可沿一列在从下到上的西方向遍历。这个沿一行下到上的遍历在图19g中被指示为“西”方向。
如果写到在行和列地址Row0、Col0的基础单元的数据被反转,则在单个斜条纹数据反转模式的向北遍历中写到接下来2个数据单元(分别在Row3、Col1;Row2、Col1)的数据不反转,后面是反转写到在行和列地址Rowl、Col1的下一(第三)单元的数据。在西方向遍历中写到接下来2个数据单元(分别在Row0、Col1;Row3、Col2)的数据不反转,而写到在行和列地址Row2、Col2的下一(第三)单元的数据被反转。重复此过程,直到数据已经被写到测试中的存储区域的所有存储单元。用这种方式,在西方向遍历中写到4×4存储器区域的单元的数据每3个单元反转,以产生具有3个单元周期的单个斜条纹数据反转模式。从而,对于测试中的存储器区域中的存储单元的N×N阵列的单个斜条纹数据反转模式,周期数据反转函数的周期对于在西方向的遍历等于N-1。对于N(行)×M(列)矩形阵列,周期数据反转函数的周期对于在西方向的遍历等于N-1,其中N等于阵列内的行数。
存储器区域1920也可沿一行在南(右到左)方向遍历以生成单个斜条纹数据反转模式,而不是沿一列在西(下到上)方向。看到,在南方向遍历中写到4×4存储器区域的单元的数据再次每3个单元反转,以产生具有3个单元周期的单个斜条纹数据反转模式。因此,在此单个斜条纹模式的周期数据反转函数的周期是相同的,不管在南方向还是在西方向都产生单个斜条纹数据反转模式。在随后验证测试中,在北方向或东方向遍历中生成的以测试从4×4存储器区域读回的数据的数据每3个单元反转,以产生具有3个单元的周期的单个斜条纹数据反转模式。从而,对于测试中的存储器区域中的存储单元的N×N阵列的单个斜条纹数据反转模式,周期数据反转函数的周期对于在南方向的遍历等于N-1。对于M(行)×N(列)矩形阵列,周期数据反转函数的周期对于在南方向的遍历等于N-1,其中N等于阵列内的列数。
在单元的每个周期(诸如在这些示例中论述的3个单元的周期)中,数据被反转的具体单元可以是周期的第一单元,可以是周期的最后一个单元,或者可以是周期的中间单元。在其它实施例中,要认识到,包含中间单元的周期的多于一个单元的数据可被反转以产生斜条纹数据反转模式。
图20a示出了提供可选择周期存储器地址偏移函数以生成在输出2004输出的地址偏移周期模式的可编程地址偏移模式生成器370(图3f)的地址偏移生成器(诸如地址偏移生成器374a(图20b))的操作的一个示例。地址偏移的周期模式是可由偏移地址生成器374a的周期调整器电路2008调整的可选周期的函数。相应地,在图20b的实施例中,偏移地址生成器374a具有用于接收可选择和调整周期的偏移地址指令的参数的输入2010。用这种方式,可选择周期性存储器地址偏移函数。偏移地址生成器374a偏移的存储器地址可由偏移地址生成器374a在内部生成,或者可由测试模式生成器210(图3f)的地址生成器310a、310b...310n生成,并且在偏移地址生成器374a的输入2012输入。
在第一操作,选择(图20a框2020)用于生成周期性存储器地址偏移的周期。在所图示的实施例中,用于生成周期性存储器地址偏移的周期可被规定为偏移地址指令的参数,其可在偏移地址生成器374a的输入2010输入。如上面所指示的,在N×N阵列的示例中,用于生成周期存储器地址偏移的周期最初可被规定为N,作为偏移地址指令的参数。在M(行)×N(列)阵列的示例中,对于北或南遍历,用于生成周期存储器地址偏移的周期最初可被规定为N(阵列的列数),作为偏移地址指令的参数。在N(行)×M(列)阵列的示例中,对于东或西遍历,用于生成周期存储器地址偏移的周期最初可被规定为N(阵列的行数),作为偏移地址指令的参数。要认识到,偏移地址指令可具有其它参数,诸如实现周期数据反转函数的参数。
在另一操作,选择(图20a框2024)用于生成周期性存储器地址偏移的规定周期。在所图示的实施例中,用于调整用于生成周期性存储器地址偏移的周期的调整可被规定为偏移地址指令的参数,其可在偏移地址生成器374a的输入2010输入。图21的表指示可用于选择对用于生成各种周期数据反转函数的周期存储器地址偏移的模式的规定周期的各种调整的参数代码的示例。从而,对于存储单元阵列,对用于生成周期存储器地址偏移的规定初始周期N的调整可使用参数代码(诸如例如00)规定为0,如图21所示。类似地,对用于生成周期存储器地址偏移的规定周期N的调整可使用参数代码(诸如例如01或10)规定为+1。还有,对用于生成周期存储器地址偏移的规定周期N的调整可使用参数代码(诸如例如11)规定为-1。要认识到,可使用其它参数代码对周期数据反转函数的周期进行其它调整,取决于具体应用。
如上面所阐述的,对于测试中的存储器区域的单个竖条纹数据反转模式(例如图19e),对于在北(或南)方向的遍历,周期数据反转函数的周期最初等于N,存储器区域的列数。因此,如在图21的表中所指示的,对于单个竖条纹数据反转模式,可使用适当偏移地址指令代码将对周期的调整规定为零(0),使得调整的周期保持N。数据反转可响应于这个偏移地址指令参数而发生在对周期的单元的第N此访问上。
类似地,对于测试中的存储器区域的单个横条纹数据反转模式(例如图19f),对于在西(或东)方向的遍历,周期数据反转函数的周期最初可被规定成等于N,存储器区域的列数。因此,对于单个横条纹数据反转模式,可使用适当的偏移地址指令参数代码将对周期的调整再次规定为零(0)。数据反转例如可响应于这个偏移地址指令参数而发生在对周期的单元的第N此访问上。
从而,可通过提供参数代码(诸如例如00)作为如图21中所指示的偏移地址指令的参数来提供横条纹或竖条纹周期数据反转函数,来选择用在第N次访问上的反转对周期数据反转函数的周期进行零调整。要认识到,反转可被选择成发生在对每个周期的单元的其它访问上,取决于具体应用。
也如上面所阐述的,对于测试中的存储器区域的单个斜条纹数据反转模式(例如图19g),对于在北(或东)方向的遍历,周期数据反转函数的初始周期被调整成等于N+1。因此,对于在北或东方向遍历的单个斜条纹数据反转模式,例如使用01或10的偏移地址指令参数代码可将对周期的调整规定成加一(+1)。01的参数代码可用于规定反转发生在对周期单元的第N次访问上。相反,10的参数代码可用于规定反转发生在对周期单元的第一次访问上。要认识到,可利用其它参数代码选择对周期的适当调整以及反转的适当访问,以实现具体周期数据反转函数。
类似地,对于测试中的存储器区域的单个斜条纹数据反转模式(例如图19g),对西于在(或南)方向的遍历,周期数据反转函数的初始周期可被调整成等于N-1。因此,对于在西(或南)方向遍历的单个斜条纹数据反转模式,使用11的偏移地址指令参数代码可将对周期的调整规定成减一(-1)。11的参数代码还可用于规定反转发生在对周期单元的第N次访问上。要认识到,可利用其它参数代码选择对周期的适当调整以及反转的适当访问,以实现具体周期数据反转函数。
可生成(图20a框2026)偏移存储器地址的模式以按照选择的偏移地址指令反转数据。如之前提到的,作为所生成的数据模式要被写到其中的存储单元的存储单元地址的模式的可旋转函数,生成在数据生成器344a的输出1804输出的数据模式。上面论述的一个此类可选择函数是可选择周期数据反转函数,其中作为存储器地址偏移的可选择周期模式的函数有选择地反转数据。在图18b的实施例中,数据生成器344a的输入1850接收由测试模式生成器210(图2)的地址偏移生成器374a响应于适当偏移地址指令而生成的地址偏移的周期模式。
相应地,可使用具有定义由测试模式生成器210的地址偏移生成器374a生成的地址偏移的周期模式的初始周期的适当参数的偏移地址指令以及如上面论述的对周期的调整和周期内的单元访问,选择周期数据反转函数,诸如单个竖条纹函数、单个横条纹函数以及单个斜条纹函数。要认识到,取决于具体应用,可选择地址偏移的其它周期性模式和其它周期性数据反转函数。
在所图示的实施例中,在结合周期数据反转函数遍历测试中的存储器区域时,行地址和列地址的增量例如可被局限于加1(+1)增量。要认识到,在其它实施例中,取决于具体应用,用于遍历存储器区域的行或列增量的大小可改变。
在本说明书的另一方面,可重复本文所描述的周期数据反转函数,每当执行周期数据反转函数时,递增基础单元的地址。在一个实施例中,地址偏移的周期模式的重复次数可被设置成测试中的存储器区域内的单元数。
在本说明书的又一方面,本文所描述的反转函数可被链接在一起以在如图22中所描绘的阶段2110-2130反转数据。在一个阶段的数据反转函数的输出由链接下一阶段的数据反转函数输入。
反转函数Function(X,inv)、Function(Y,inv)、Function(Z,inv)表示各种反转函数,每个都可以是如本文所描述的周期数据反转函数或另一反转函数(诸如例如数据背景函数)。从而,具有反转函数(诸如单个斜条纹模式反转函数)的一个反转函数阶段的输出例如可由具有全局反转函数的下一阶段输入。反转函数的其它组合可一起链接在阶段中,取决于具体应用。尽管图22描绘了链接在一起的3个此类反转函数,但要认识到,链接的反转函数的数量可取决于具体应用而变化。
在本说明书的另一方面,阶段2140的用户或供应商定义的函数也可与本文描述的模式生成函数链接。用户或供应商定义的函数可包含逻辑到物理存储器地址映射逻辑2150,以提供存储器地址的逻辑到物理映射。用于逻辑到物理存储器地址映射逻辑2150的映射的映射值可由用户或供应商使用用户或供应商定义的函数阶段2140的寄存器2160定义。
要认识到,在逻辑存储器空间连续的存储器地址在存储器的物理块的实际物理布局中可以不是物理连续的。从而,行地址例如可被用作确定是否要反转奇数和/或偶数数据位的密钥。这个数据生成能力通过类似于可编程逻辑阵列的寄存器空间提供了用户定义的函数,以在已经在集成电路装置中实现了设计之后,给供应商将反转作为地址位的函数进行编程的灵活性,而不改变集成电路装置。而且,这个用户定义的函数使设计者自由地提前预测具体供应商的物理地址映射,并且供应商在使用本文描述的测试器测试他们的存储器电路时不需要公开他们的物理布局。
所生成的数据模式的可选择函数的另一示例是数据通道旋转函数函数,其旋转对于测试中的存储器区域生成的数据通道。例如,具有64位数据总线的存储器可被视为具有对应于64位数据总线的64个数据通道。图23示出了具有从右到左布置的从最低有效位(LSB)到最高有效位(MSB)的5位bit0-bit4的数据通道Lane0的示例。要认识到,每个通道(诸如Lane0)中的位数可取决于具体应用变化。例如,位数可能相当大,取决于正在生成的数据模式的大小和测试中的存储器区域的大小。
正在生成的数据模式的每个通道的数据每次旋转可在从最低有效位位置向最高有效位的方向旋转一个数据位位置,如图23中所示,其描绘了4次此类旋转。每次旋转,在最高有效位位置的位旋转回最低有效位位置。例如在数据指令的参数中可实现数据通道旋转函数。旋转次数类似地可在数据指令的参数中规定。每次旋转的数据模式又可应用到被测试的存储器区域,并用于测试每个此类测试的结果。
示例
如下示例涉及另外实施例。
示例1是一种供具有包含备用存储单元的存储单元的存储器使用的存储器控制器,包括:
内置在所述存储器控制器内的内部自测试逻辑电路,所述自测试逻辑电路包含:
测试模式生成器,用于生成测试模式并使用生成的测试模式测试所述存储器内的存储单元;
储存库;以及
检测器电路,适合于响应于测试所述存储单元的所述测试模式而检测有缺陷的存储单元,并在所述存储器控制器内的所述储存库中存储
存储器位置列表,所述列表的每个存储器位置具有包含至少一个有缺陷的存储单元的存储单元集合;以及内置在所述存储器控制器内的内部自修复逻辑电路,所述内部自修复逻辑包含修复逻辑电路,所述修复逻辑电路适合于读取存储在所述储存库中的存储器位置列表,并且通过用备用存储单元的存储器位置替代具有至少一个有缺陷的存储单元的存储器位置来修复所述列表的所述存储器位置。
在示例2中,示例1-20(本示例除外)的主题可选地可包含:半导体管芯,其中所述内部自测试逻辑电路和所述内部自修复逻辑电路布置在所述存储器控制器的所述管芯上。
在示例3中,示例1-20(本示例除外)的主题可选地可包含:所述测试模式生成器包含多个生成器,所述多个生成器包含至少一个地址生成器以及循环定序器电路,所述循环定序器电路适合于向所述生成器应用多个嵌套循环指令,包含到地址生成器的地址指令序列中的地址指令的顺序循环,所述序列的每个地址指令当由地址生成器执行时使地址生成器生成存储单元地址模式,并且其中所述测试模式生成器适合于在由在所述地址指令的循环中按顺序执行的地址指令生成的存储单元地址模式寻址的存储单元执行存储器命令。
在示例4中,示例1-20(本示例除外)的主题可选地可包含:所述多个生成器包含至少一个数据生成器,并且其中所述循环定序器电路适合于向数据生成器应用数据指令序列中的数据指令的顺序循环,所述序列的每个数据指令当由数据生成器执行时使数据生成器生成测试数据的模式的数据模式,其中数据指令的所述顺序循环嵌套在指令的另一循环内,并且其中所述测试模式生成器在存储单元执行存储器命令时适合于将由在所述数据指令的循环中按顺序执行的数据指令生成的测试数据模式写到由在所述地址指令的循环中按顺序执行的地址指令生成的存储单元地址模式寻址的存储单元中。
在示例5中,示例1-20(本示例除外)的主题可选地可包含:所述多个生成器包含至少一个算法生成器,并且其中所述循环定序器电路适合于向算法生成器应用算法指令序列中的算法指令的顺序循环,所述序列的每个算法指令当由算法生成器执行时使算法生成器生成测试数据的模式的数据模式,其中算法指令的所述顺序循环嵌套在指令的另一循环内,并且其中所述测试模式生成器在存储单元执行存储器命令时适合于按照在所述算法指令的循环中按顺序执行的算法指令将测试数据模式写到由在所述地址指令的循环中按顺序执行的地址指令生成的存储单元地址模式寻址的存储单元中。
在示例6中,示例1-20(本示例除外)的主题可选地可包含:所述多个生成器包含至少一个命令生成器,并且其中所述循环定序器电路适合于向命令生成器应用命令指令序列中的命令指令的顺序循环,所述序列的每个命令指令当由命令生成器执行时使命令生成器生成存储器命令的模式,其中命令指令的所述顺序循环嵌套在指令的另一循环内,并且其中所述测试模式生成器在存储单元执行存储器命令时适合于执行由在所述命令指令的循环中按顺序执行的命令指令生成的命令模式,所述命令模式将由测试模式生成器的输出响应于在所述算法指令的循环中按顺序执行的算法指令并响应于在所述数据指令的循环中按顺序执行的数据指令而生成的测试数据模式写到由在所述地址指令的循环中按顺序执行的地址指令生成的存储单元地址模式寻址的存储单元中。
在示例7中,示例1-20(本示例除外)的主题可选地可包含:所述多个生成器包含至少一个地址偏移生成器,并且其中所述循环定序器适合于向地址偏移生成器应用存储器地址偏移指令序列中的存储器地址偏移指令的顺序循环,所述序列的每个存储器地址偏移指令当由地址偏移生成器执行时使地址偏移生成器生成存储器地址偏移模式,其中所述存储器地址偏移指令的所述顺序循环嵌套在指令的另一循环内,并且其中所述测试模式生成器在存储单元执行存储器命令时适合于在由在所述地址指令的循环中按顺序执行的地址指令生成的存储单元地址模式寻址的并由在所述存储器地址偏移指令的循环中按顺序执行的存储器地址偏移指令生成的所述存储器地址偏移模式偏移的存储单元中执行由在所述命令指令的循环中按顺序执行的命令指令生成的命令模式。
在示例8中,示例1-20(本示例除外)的主题可选地可包含:所述存储单元布置在多个存储器区域中,并且其中所述检测器电路适合于确定具有至少一个有缺陷的存储单元的存储器位置数量是否超过具体存储器区域的最大值,并且如果是,则设置指示具有至少一个有缺陷的存储单元的存储器位置数量超过所述具体存储器区域的最大值的标志。
在示例9中,示例1-20(本示例除外)的主题可选地可包含:所述存储单元布置在存储单元的存储器区域中,每个存储器区域包括布置在存储单元的行和列中的存储单元阵列,并且存储器区域的每个存储器位置都是存储单元行,并且其中所述检测器电路适合于确定存储单元的具体存储器区域的存储单元的具体行是否已经被存储为所述储存库的列表中的条目,并且如果存储单元的所述具体存储器区域的存储单元的具体行已经被存储为所述储存库的列表中的条目,则绕过在所述储存库中存储存储单元的所述具体存储器区域的具体行作为所述存储器位置列表的条目。
在示例10中,示例1-20(本示例除外)的主题可选地可包含:所述存储单元布置在存储单元的存储器区域中,每个存储器区域包括布置在存储单元的行和列中的存储单元阵列,并且存储器区域的每个存储器位置是存储单元行,并且其中所述检测器电路适合于为每个存储器区域设置指示所述具体存储器区域的至少一行在所述具体存储器区域的至少一行存储单元中是否具有至少一个有缺陷的存储单元的标志。
在示例11中,示例1-20(本示例除外)的主题可选地可包含:所述存储单元布置在存储单元的存储器区域中,每个存储器区域包括布置成行和列的存储单元阵列,其中每个存储单元具有行地址和列地址,并且其中至少一个地址生成器是第一可配置管线地址生成器,其具有多个管线阶段,在第一管线阶段中具有地址进位计数生成器,并且在第二管线阶段中具有行地址生成器和列地址生成器之一,其将行地址和列地址之一分别作为第一管线阶段的地址进位计数生成器的输出的函数生成。
在示例12中,示例1-20(本示例除外)的主题可选地可包含:其中存储器区域布置成存储器区域组,每组具有组地址,并且所述组布置成组排,每排具有排地址,第一可配置管线地址生成器具有第一配置,其包含第一和第二管线阶段之一中的组地址生成器以及第一和第二管线阶段的至少一个中的排地址生成器。
在示例13中,示例1-20(本示例除外)的主题可选地可包含:其中在可配置管线地址生成器的第一配置中,行、列、组和排地址生成器布置在第一可配置管线地址生成器中以按定义行、列、组和排按顺序生成地址的次序的第一地址次序分别按顺序生成行地址、列地址、组地址和排地址,并且其中第一可配置管线地址生成器可配置在第二配置中,其中在可配置管线地址生成器的第一配置中,行、列、组和排地址生成器布置在第一可配置管线地址生成器中以按行、列、组和排按不同于第一地址次序的地址次序按顺序生成地址的第二地址次序分别按顺序生成行地址、列地址、组地址和排地址。
在示例14中,示例1-20(本示例除外)的主题可选地可包含:在第一地址次序中,可配置管线地址生成器适合于在排地址按顺序递增到下一排地址之前将组地址按顺序递增到下一组地址,并且其中在第二地址次序中,可配置管线地址生成器适合于在组地址按顺序递增到下一组地址之前将排地址按顺序递增到下一排地址。
在示例15中,示例1-20(本示例除外)的主题可选地可包含:在第一地址次序中,可配置管线地址生成器适合于在列地址按顺序递增到下一列地址之前将行地址按顺序递增到下一行地址,并且其中在第二地址次序中,可配置管线地址生成器适合于在行地址按顺序递增到下一行地址之前将列地址按顺序递增到下一列地址。
在示例16中,示例1-20(本示例除外)的主题可选地可包含:管线地址生成器适合于对时钟信号做出响应,并在初始启动周期之后的每时钟信号产生包含排地址、组地址、列地址和行地址的下一全地址,并且其中第一管线阶段的地址进位计数生成器的输出在初始启动周期之后的每个时钟信号中是有效的,并且下一全地址在初始启动周期之后的每个时钟信号中是有效的。
在示例17中,示例1-20(本示例除外)的主题可选地可包含:至少一个算法生成器包含适合于生成具有可变刷新速率的存储单元的刷新信号的刷新信号生成器。
在示例18中,示例1-20(本示例除外)的主题可选地可包含:所述刷新信号生成器适合于生成以递减序列刷新速率的刷新信号以便以所述递减序列刷新速率的每个速率刷新存储单元,所述递减序列的每个刷新速率从所述递减序列刷新速率的先前刷新速率的速率减小一定量。
在示例19中,示例1-20(本示例除外)的主题可选地可包含:至少一个算法生成器包含:至少一个型式定序器,每个都具有输出;复用器,具有多个输入和输出;以及耦合到至少一个型式定序器输出的至少一个选择器输入,其中复用器适合于响应于耦合到至少一个复用器选择器输入的至少一个型式定序器而选择复用器输入输出到复用器输出。
在示例20中,示例1-20(本示例除外)的主题可选地可包含:至少一个模式定序器是多型式模式定序器,具有包括多个位寄存器的移位寄存器、包括耦合到移位寄存器的位寄存器的线性反馈多项式逻辑的有限状态机以及包含多个计数器的组合逻辑,并且多个操作型式包含:固定模式型式,其中移位寄存器适合于将固定模式移位到模式定序器输出;时钟信号模式型式,其中模式定序器适合于将时钟信号输出到模式定序器输出,时钟信号具有在时钟周期内的时钟脉冲长度可编程的可编程占空比,其中组合逻辑的第一计数器适合于对时钟周期内的时钟信号的时钟脉冲的发起延迟计时,组合逻辑的第二计数器适合于对时钟脉冲的持续时间计时,并且第三计数器适合于对时钟脉冲之后直到下一时钟信号开始的时钟信号的剩余周期的持续时间计时;以及线性反馈型式,其中模式定序器适合于将线性反馈多项式模式输出到模式定序器输出,其中线性反馈多项式逻辑适合于确定多型式模式定序器的有限状态机的下一状态。
示例21指向计算机架构装置,包括:
所述装置内的存储单元,包含备用存储单元;
内置在所述装置内的内部自测试逻辑电路,所述自测试逻辑电路包含:
测试模式生成器,用于生成测试模式并使用生成的测试模式测试所述装置内的存储单元;
储存库;以及
检测器电路,适合于响应于测试所述存储单元的所述测试模式而检测有缺陷的存储单元,并在所述装置内的所述储存库中存储存储器位置列表,所述列表的每个存储器位置都具有包含至少一个有缺陷的存储单元的存储单元集合;以及
内置在所述装置内的内部自修复逻辑电路,所述内部自修复逻辑包含修复逻辑电路,所述修复逻辑电路适合于读取存储在所述储存库中的存储器位置列表,并且通过用备用存储单元的存储器位置替代具有至少一个有缺陷的存储单元的存储器位置来修复所述列表的所述存储器位置。
在示例22中,示例21-40(本示例除外)的主题可选地可包含:所述装置还包括布置在所述装置内的半导体管芯上用于控制所述装置的所述存储单元的存储器控制器,并且其中所述内部自测试逻辑电路和所述内部自修复逻辑电路布置在所述存储器控制器的所述管芯上。
在示例23中,示例21-40(本示例除外)的主题可选地可包含:所述测试模式生成器包含多个生成器,所述多个生成器包含至少一个地址生成器以及循环定序器电路,所述循环定序器电路适合于向所述生成器应用多个嵌套循环指令,包含到地址生成器的地址指令序列中的地址指令的顺序循环,所述序列的每个地址指令当由地址生成器执行时使地址生成器生成存储单元地址模式,并且其中所述测试模式生成器适合于在由在所述地址指令的循环中按顺序执行的地址指令生成的存储单元地址模式寻址的存储单元执行存储器命令。
在示例24中,示例21-40(本示例除外)的主题可选地可包含:所述多个生成器包含至少一个数据生成器,并且其中所述循环定序器电路适合于向数据生成器应用数据指令序列中的数据指令的顺序循环,所述序列的每个数据指令当由数据生成器执行时使数据生成器生成测试数据的模式的数据模式,其中数据指令的所述顺序循环嵌套在指令的另一循环内,并且其中所述测试模式生成器在存储单元执行存储器命令时适合于将由在所述数据指令的循环中按顺序执行的数据指令生成的测试数据模式写到由在所述地址指令的循环中按顺序执行的地址指令生成的存储单元地址模式寻址的存储单元中。
在示例25中,21-40(本示例除外)的主题可选地可包含:所述多个生成器包含至少一个算法生成器,并且其中所述循环定序器电路适合于向算法生成器应用算法指令序列中的算法指令的顺序循环,所述序列的每个算法指令当由算法生成器执行时使算法生成器生成测试数据的模式的数据模式,其中算法指令的所述顺序循环嵌套在指令的另一循环内,并且其中所述测试模式生成器在存储单元执行存储器命令时适合于按照在所述算法指令的循环中按顺序执行的算法指令将测试数据模式写到由在所述地址指令的循环中按顺序执行的地址指令生成的存储单元地址模式寻址的存储单元中。
在示例26中,21-40(本示例除外)的主题可选地可包含:所述多个生成器包含至少一个命令生成器,并且其中所述循环定序器电路适合于向命令生成器应用命令指令序列中的命令指令的顺序循环,所述序列的每个命令指令当由命令生成器执行时使命令生成器生成存储器命令的模式,其中命令指令的所述顺序循环嵌套在指令的另一循环内,并且其中所述测试模式生成器在存储单元执行存储器命令时适合于执行由在所述命令指令的循环中按顺序执行的命令指令生成的命令模式,所述命令模式将由测试模式生成器的输出响应于在所述算法指令的循环中按顺序执行的算法指令并响应于在所述数据指令的循环中按顺序执行的数据指令而生成的测试数据模式写到由在所述地址指令的循环中按顺序执行的地址指令生成的存储单元地址模式寻址的存储单元中。
在示例27中,示例21-40(本示例除外)的主题可选地可包含:所述多个生成器包含至少一个地址偏移生成器,并且其中所述循环定序器适合于向地址偏移生成器应用存储器地址偏移指令序列中的存储器地址偏移指令的顺序循环,所述序列的每个存储器地址偏移指令当由地址偏移生成器执行时使地址偏移生成器生成存储器地址偏移模式,其中所述存储器地址偏移指令的所述顺序循环嵌套在指令的另一循环内,并且其中所述测试模式生成器在存储单元执行存储器命令时适合于在由在所述地址指令的循环中按顺序执行的地址指令生成的存储单元地址模式寻址的并由在所述存储器地址偏移指令的循环中按顺序执行的存储器地址偏移指令生成的所述存储器地址偏移模式偏移的存储单元中执行由在所述命令指令的循环中按顺序执行的命令指令生成的命令模式。
在示例28中,示例21-40(本示例除外)的主题可选地可包含:所述存储单元布置在多个存储器区域中,并且其中所述检测器电路适合于确定具有至少一个有缺陷的存储单元的存储器位置数量是否超过具体存储器区域的最大值,并且如果是,则设置指示具有至少一个有缺陷的存储单元的存储器位置数量超过所述具体存储器区域的最大值的标志。
在示例29中,示例21-40(本示例除外)的主题可选地可包含:所述存储单元布置在存储单元的存储器区域中,每个存储器区域包括布置在存储单元的行和列中的存储单元阵列,并且存储器区域的每个存储器位置都是存储单元行,并且其中所述检测器电路适合于确定存储单元的具体存储器区域的存储单元的具体行是否已经被存储为所述储存库的列表中的条目,并且如果存储单元的所述具体存储器区域的存储单元的具体行已经被存储为所述储存库的列表中的条目,则绕过在所述储存库中存储存储单元的所述具体存储器区域的具体行作为所述存储器位置列表的条目。
在示例30中,示例21-40(本示例除外)的主题可选地可包含:所述存储单元布置在存储单元的存储器区域中,每个存储器区域包括布置在存储单元的行和列中的存储单元阵列,并且存储器区域的每个存储器位置是存储单元行,并且其中所述检测器电路适合于为每个存储器区域设置指示所述具体存储器区域的至少一行在所述具体存储器区域的至少一行存储单元中是否具有至少一个有缺陷的存储单元的标志。
在示例31中,示例21-40(本示例除外)的主题可选地可包含:所述存储单元布置在存储单元的存储器区域中,每个存储器区域包括布置成行和列的存储单元阵列,其中每个存储单元具有行地址和列地址,并且其中至少一个地址生成器是第一可配置管线地址生成器,其具有多个管线阶段,在第一管线阶段中具有地址进位计数生成器,并且在第二管线阶段中具有行地址生成器和列地址生成器之一,其将行地址和列地址之一分别作为第一管线阶段的地址进位计数生成器的输出的函数生成。
在示例32中,示例21-40(本示例除外)的主题可选地可包含:存储器区域布置成存储器区域组,每组具有组地址,并且所述组布置成组排,每排具有排地址,第一可配置管线地址生成器具有第一配置,其包含第一和第二管线阶段之一中的组地址生成器以及第一和第二管线阶段的至少一个中的排地址生成器。
在示例33中,示例21-40(本示例除外)的主题可选地可包含:在可配置管线地址生成器的第一配置中,行、列、组和排地址生成器布置在第一可配置管线地址生成器中以按定义行、列、组和排按顺序生成地址的次序的第一地址次序分别按顺序生成行地址、列地址、组地址和排地址,并且其中第一可配置管线地址生成器可配置在第二配置中,其中在可配置管线地址生成器的第一配置中,行、列、组和排地址生成器布置在第一可配置管线地址生成器中以按行、列、组和排按不同于第一地址次序的地址次序按顺序生成地址的第二地址次序分别按顺序生成行地址、列地址、组地址和排地址。
在示例34中,示例21-40(本示例除外)的主题可选地可包含:在第一地址次序中,可配置管线地址生成器适合于在排地址按顺序递增到下一排地址之前将组地址按顺序递增到下一组地址,并且其中在第二地址次序中,可配置管线地址生成器适合于在组地址按顺序递增到下一组地址之前将排地址按顺序递增到下一排地址。
在示例35中,示例21-40(本示例除外)的主题可选地可包含:在第一地址次序中,可配置管线地址生成器适合于在列地址按顺序递增到下一列地址之前将行地址按顺序递增到下一行地址,并且其中在第二地址次序中,可配置管线地址生成器适合于在行地址按顺序递增到下一行地址之前将列地址按顺序递增到下一列地址。
在示例36中,示例21-40(本示例除外)的主题可选地可包含:管线地址生成器适合于对时钟信号做出响应,并在初始启动周期之后的每时钟信号产生包含排地址、组地址、列地址和行地址的下一全地址,并且其中第一管线阶段的地址进位计数生成器的输出在初始启动周期之后的每个时钟信号中是有效的,并且下一全地址在初始启动周期之后的每个时钟信号中是有效的。
在示例37中,示例21-40(本示例除外)的主题可选地可包含:至少一个算法生成器包含适合于生成具有可变刷新速率的存储单元的刷新信号的刷新信号生成器。
在示例38中,示例21-40(本示例除外)的主题可选地可包含:所述刷新信号生成器适合于生成以递减序列刷新速率的刷新信号以便以所述递减序列刷新速率的每个速率刷新存储单元,所述递减序列的每个刷新速率从所述递减序列刷新速率的先前刷新速率的速率减小一定量。
在示例39中,示例21-40(本示例除外)的主题可选地可包含:至少一个算法生成器包含:至少一个模式定序器,每个都具有输出;复用器,具有多个输入和输出;以及耦合到至少一个模式定序器输出的至少一个选择器输入,其中复用器适合于响应于耦合到至少一个复用器选择器输入的至少一个模式定序器而选择复用器输入输出到复用器输出。
在示例40中,示例21-40(本示例除外)的主题可选地可包含:至少一个模式定序器是多型式模式定序器,具有包括多个位寄存器的移位寄存器、包括耦合到移位寄存器的位寄存器的线性反馈多项式逻辑的有限状态机以及包含多个计数器的组合逻辑,并且多个操作型式包含:固定模式型式,其中移位寄存器适合于将固定模式移位到模式定序器输出;时钟信号模式型式,其中模式定序器适合于将时钟信号输出到模式定序器输出,时钟信号具有在时钟周期内的时钟脉冲长度可编程的可编程占空比,其中组合逻辑的第一计数器适合于对时钟周期内的时钟信号的时钟脉冲的发起延迟计时,组合逻辑的第二计数器适合于对时钟脉冲的持续时间计时,并且第三计数器适合于对时钟脉冲之后直到下一时钟信号开始的时钟信号的剩余周期的持续时间计时;以及线性反馈型式,其中模式定序器适合于将线性反馈多项式模式输出到模式定序器输出,其中线性反馈多项式逻辑适合于确定多型式模式定序器的有限状态机的下一状态。
示例41指向测试和修复存储器的方法,包括:
使用内置在装置内的内部自测试逻辑电路,
生成用于测试所述装置内的存储单元的测试模式;
向所述装置内的所述存储单元应用所述测试模式;
响应于应用的测试模式而检测有缺陷的存储单元;以及在装置内的储存库中存储存储器位置列表,列表的每个存储器位置都具有包含至少一个有缺陷的存储单元的存储单元集合;以及
使用内置在所述装置内的内部自修复逻辑电路,
读取存储在所述储存库中的所述存储器位置列表;以及
修复所述存储器位置,其中所述修复包含用具有存储单元集合的备用存储器位置替代具有至少一个有缺陷的存储单元的存储器位置。
在示例42中,示例41-60(本示例除外)的主题可选地可包含:所述装置还包括布置在所述装置内的半导体管芯上用于控制所述装置的所述存储单元的存储器控制器,并且其中所述内部自测试逻辑电路和所述内部自修复逻辑电路布置在所述存储器控制器的所述管芯上。
在示例43中,示例41-60(本示例除外)的主题可选地可包含:应用所述测试模式包含执行地址指令序列中的地址指令的顺序循环,所述序列的每个地址指令当执行时生成存储单元地址模式,并在由在所述地址指令的循环中按顺序执行的地址指令生成的存储单元地址模式寻址的存储单元执行存储器命令。
在示例44中,示例41-60(本示例除外)的主题可选地可包含:生成测试模式包含执行数据指令序列中的数据指令的顺序循环,所述序列的每个数据指令当执行时生成测试数据模式的数据模式,其中数据指令的所述顺序循环嵌套在指令的另一循环内,并且其中在存储单元执行存储器命令包含将由在所述数据指令的循环中按顺序执行的数据指令生成的测试数据写到由在所述地址指令的循环中按顺序执行的地址指令生成的存储单元地址模式寻址的存储单元中。
在示例45中,示例41-60(本示例除外)的主题可选地可包含:生成测试模式包含执行算法指令序列中的算法指令的顺序循环,所述序列的每个算法指令当执行时生成测试数据模式的数据模式,其中算法指令的所述顺序循环嵌套在指令的另一循环内,并且其中在存储单元执行存储器命令包含将测试数据按照在算法指令的循环中按顺序执行的算法指令写到由在地址指令的循环中按顺序执行的地址指令生成的存储单元地址模式寻址的存储单元中。
在示例46中,示例41-60(本示例除外)的主题可选地可包含:生成测试模式包含执行命令指令序列中的命令指令的顺序循环,所述序列的每个命令指令当执行时生成存储器命令的模式,其中命令指令的所述顺序循环嵌套在指令的另一循环内,并且其中在存储单元执行存储器命令包含执行由在所述命令指令的循环中按顺序执行的命令指令生成的命令模式,所述命令模式将由在算法指令的循环中按顺序执行的算法指令的算法输出生成的测试数据模式写到(并响应于在数据指令的循环中按顺序执行的数据指令)由在所述地址指令的循环中按顺序执行的地址指令生成的存储单元地址模式寻址的存储单元中。
在示例47中,示例41-60(本示例除外)的主题可选地可包含:所述生成测试模式包含执行存储器地址偏移指令序列中的存储器地址偏移指令的顺序循环,所述序列的每个存储器地址偏移指令当执行时生成存储器地址偏移模式,其中所述存储器地址偏移指令的所述顺序循环嵌套在指令的另一循环内,并且其中在存储单元执行存储器命令包含在由在所述地址指令的循环中按顺序执行的地址指令生成的存储单元地址模式寻址的并由在所述存储器地址偏移指令的循环中按顺序执行的存储器地址偏移指令生成的所述存储器地址偏移模式偏移的存储单元中执行由在所述命令指令的循环中按顺序执行的命令指令生成的命令模式。
在示例48中,示例41-60(本示例除外)的主题可选地可包含:所述存储单元布置在多个存储器区域中,所述方法还包括确定具有至少一个有缺陷的存储单元的存储器位置数量是否超过具体存储器区域的最大值,并且如果是,则设置指示具有至少一个有缺陷的存储单元的存储器位置数量超过所述具体存储器区域的最大值的标志。
在示例49中,示例41-60(本示例除外)的主题可选地可包含:所述存储单元布置在存储单元的存储器区域中,每个存储器区域包括布置在存储单元的行和列中的存储单元阵列,并且存储器区域的每个存储器位置都是存储单元行,所述方法还包括确定存储单元的具体存储器区域的存储单元的具体行是否已经被存储为所述储存库的列表中的条目,并且如果存储单元的所述具体存储器区域的存储单元的具体行已经被存储为所述储存库的列表中的条目,则绕过在所述储存库中存储存储单元的所述具体存储器区域的具体行作为所述存储器位置列表的条目。
在示例50中,示例41-60(本示例除外)的主题可选地可包含:所述存储单元布置在存储单元的存储器区域中,每个存储器区域包括布置在存储单元的行和列中的存储单元阵列,并且存储器区域的每个存储器位置是存储单元行,所述方法还包括为每个存储器区域设置指示所述具体存储器区域的至少一行在所述具体存储器区域的至少一行存储单元中是否具有至少一个有缺陷的存储单元的标志。
在示例51中,示例41-60(本示例除外)的主题可选地可包含:所述存储单元布置在存储单元的存储器区域中,每个存储器区域包括布置成行和列的存储单元阵列,其中每个存储单元具有行地址和列地址,并且其中生成存储单元地址模式包含在具有多个管线阶段的第一可配置管线地址生成器中在第一管线阶段中生成地址进位计数,并在第二管线阶段中作为在第一管线阶段中生成的地址进位计数的函数生成行地址和列地址之一。
在示例52中,示例41-60(本示例除外)的主题可选地可包含:存储器区域布置在存储器区域组中,每组具有组地址,并且组布置在组排中,每排具有排地址,所述方法还包括:在第一可配置管线地址生成器的第一配置中的第一和第二管线阶段之一中生成组地址,并在第一可配置管线地址生成器的第一配置中的第一和第二管线阶段之一中生成排地址。
在示例53中,示例41-60(本示例除外)的主题可选地可包含:在第一可配置管线地址生成器中按定义由行、列、组和排按顺序生成地址的次序的第一地址次序按顺序生成行地址、列地址、组地址和排地址,并在第二管线地址生成器中按由行、列、组和排按不同于第一地址次序的地址次序按顺序生成地址的第二地址次序按顺序生成行地址、列地址、组地址和排地址。
在示例54中,示例41-60(本示例除外)的主题可选地可包含:按第一地址次序按顺序生成行地址、列地址、组地址和排地址包含在将排地址按顺序递增到装置的下一排地址之前将组地址按顺序递增到装置序列中的下一组地址,并且其中按第二地址次序按顺序生成行地址、列地址、组地址和排地址包含在将组地址按顺序递增到装置的下一组地址之前将排地址按顺序递增到装置序列中的下一排地址。
在示例55中,示例41-60(本示例除外)的主题可选地可包含:按第一地址次序按顺序生成行地址、列地址、组地址和排地址包含在将列地址按顺序递增到装置的下一列地址之前将行地址按顺序递增到装置序列中的下一行地址,并且其中按第二地址次序按顺序生成行地址、列地址、组地址和排地址包含在将行地址按顺序递增到装置的下一行地址之前将列地址按顺序递增到装置的下一r列地址。
在示例56中,示例41-60(本示例除外)的主题可选地可包含:生成行地址、列地址、组地址和排地址包含用时钟信号使管线地址发生器时钟同步,并且在初始启动周期之后的每时钟信号产生包含排地址、组地址、列地址和行地址的下一全地址,并在初始启动周期之后的每个时钟信号中产生有效地址进位计数输出,并在初始启动周期后的每个时钟信号的随后部分中产生有效下一全地址。
在示例57中,示例41-60(本示例除外)的主题可选地可包含:作为算法的输出生成测试数据模式包含生成具有可变刷新速率的刷新信号,并以可变刷新速率刷新存储单元。
在示例58中,示例41-60(本示例除外)的主题可选地可包含:生成具有可变刷新速率的刷新信号包含生成以递减序列刷新速率的刷新信号,递减序列的每个刷新速率从递减序列刷新速率的先前刷新速率的速率减小一定量,并且其中以可变刷新速率刷新存储单元包含以递减序列刷新速率中的每个速率刷新存储单元。
在示例59中,示例41-60(本示例除外)的主题可选地可包含:作为算法的输出生成测试数据模式包含:生成复用器输入选择信号的有模式序列,响应于复用器输入选择信号的有模式序列而选择复用器的输入,并响应于复用器输入选择而从复用器输出测试模式。
在示例60中,示例41-60(本示例除外)的主题可选地可包含:生成复用器输入选择信号的有模式序列包含:
选择多型式模式定序器的型式,多型式模式定序器具有包括多个位寄存器的移位寄存器、包括耦合到移位寄存器的位寄存器的线性反馈多项式逻辑的有限状态机、
包含多个计数器的组合逻辑以及多个操作型式,包含固定模式型式、时钟信号模式型式和线性反馈型式;
以及在选择的型式操作多型式模式定序器,其中:在固定模式型式操作多型式模式定序器包含移位寄存器将固定模式移位到模式定序器输出;
在时钟信号模式型式操作多型式模式定序器包含在定序器输出生成时钟信号,时钟信号具有在时钟周期内的时钟脉冲长度可编程的可编程占空比,时钟信号生成包含使用组合逻辑的第一计数器对时钟周期内的时钟信号的时钟脉冲的发起延迟计时,使用组合逻辑的第二计数器对时钟脉冲的持续时间计时,以及使用组合逻辑的第三计数器对时钟脉冲之后直到下一时钟信号开始的时钟信号的剩余周期的持续时间计时;以及
在线性反馈型式操作多型式模式定序器包含在模式定序器输出生成线性反馈多项式模式,生成线性反馈多项式模式包含线性反馈多项式逻辑确定多型式模式定序器的有限状态机的下一状态。
示例61是一种供具有包含备用存储单元的存储单元的存储器使用的存储器控制器,包括:
内置在所述存储器控制器内的内部自测试逻辑电路,所述自测试逻辑电路包含:测试模式生成器,用于生成测试模式并使用所生成的测试模式测试存储器内的存储单元;其中所述测试模式生成器包含多个生成器,所述多个生成器包含:至少一个地址生成器,配置成响应于地址指令而生成存储单元地址模式以遍历多个存储单元的存储器区域;以及至少一个数据生成器,配置成响应于数据指令而生成测试数据模式的数据模式以被写到由所述地址生成器生成的存储单元地址模式寻址的存储单元中,其中所生成的数据模式是所生成的数据模式要写到其中的所述存储单元的存储单元地址的模式的可选择函数。
在示例62中,示例61-75(本示例除外)的主题可选地可包含:所述数据生成器配置成将可选择条纹模式的数据作为所生成的数据模式要被写到其中的所述存储单元的所述存储单元地址模式的所述行地址和所述列地址之一的函数进行反转。
在示例63中,示例61-75(本示例除外)的主题可选地可包含:所述数据生成器配置成将可选择棋盘模式的数据分别作为所生成的数据模式要被写到其中的所述存储单元的所述存储单元地址模式的所述行地址和所述列地址的最低阶行地址位和最低阶列地址位的“异或”函数的函数进行反转。
在示例64中,示例61-75(本示例除外)的主题可选地可包含:所述数据生成器配置成生成数据的可选择模式,其是所生成的数据模式要被写到其中的所述存储单元的所有存储单元地址的所有逻辑数据。
在示例65中,示例61-75(本示例除外)的主题可选地可包含:所述数据生成器配置成有选择地反转所生成的数据模式要被写到其中的所述存储单元的所有存储单元地址的数据模式。
在示例66中,示例61-75(本示例除外)的主题可选地可包含:所述数据生成器配置成有选择地按位位置旋转所生成的数据模式要被写到其中的所述存储单元的所有存储单元地址的所生成的数据模式。
在示例67中,示例61-75(本示例除外)的主题可选地可包含:所述数据生成器配置成对于所生成的数据模式要被写到其中的存储单元的所有存储单元地址有选择地重复按位位置旋转所生成的数据模式可选择次数。
在示例68中,示例61-75(本示例除外)的主题可选地可包含:所述多个生成器包含配置成将存储器地址偏移的周期模式作为周期的函数生成的至少一个地址偏移生成器,并且所述数据生成器配置成提供可选择周期数据反转函数以有选择地反转可选择周期数据反转模式的所述数据模式。
在示例69中,示例61-75(本示例除外)的主题可选地可包含:其中所述数据生成器配置成有选择地将条纹模式的数据模式作为由所述地址偏移生成器生成的存储器地址偏移的所述周期模式的函数进行反转,其中所述条纹模式是竖条纹、横条纹和斜条纹中的一种。
在示例70中,示例61-75(本示例除外)的主题可选地可包含:存储器地址偏移的所述周期模式的周期是由地址指令生成的所述存储单元地址模式寻址的所述存储单元的行数和列数之一的函数。
在示例71中,示例61-75(本示例除外)的主题可选地可包含:存储器地址偏移的所述周期模式的周期是初始周期和对所述初始周期的调整的函数。
在示例72中,示例61-75(本示例除外)的主题可选地可包含:所述初始周期是由地址指令生成的存储单元地址模式寻址的所述存储单元的遍历方向的函数,
在示例73中,示例61-75(本示例除外)的主题可选地可包含:所述初始周期被设置成由地址指令生成的所述存储单元地址模式寻址的所述存储单元的行数和列数之一。
在示例74中,示例61-75(本示例除外)的主题可选地可包含:链接在多阶段的多个数据生成器,每个数据生成器配置成将数据模式作为存储器地址的函数生成。
在示例75中,示例61-75(本示例除外)的主题可选地可包含:适合于存储映射值的多个寄存器以及配置成将逻辑地址作为存储在所述寄存器中的所述映射值的函数映射到物理地址的逻辑到物理地址映射逻辑。
示例76是计算装置,包括:
所述装置内的存储单元,包含备用存储单元;
内置在所述装置内的内部自测试逻辑电路,所述自测试逻辑电路包含:测试模式生成器,用于生成测试模式并使用所生成的测试模式对于有缺陷的存储单元测试存储器内的存储单元;其中所述测试模式生成器包含多个生成器,所述多个生成器包含:至少一个地址生成器,配置成响应于地址指令而生成存储单元地址模式以遍历多个存储单元的存储器区域;以及至少一个数据生成器,配置成响应于数据指令而生成测试数据模式的数据模式以被写到由所述地址生成器生成的存储单元地址模式寻址的存储单元中,其中所生成的数据模式是所生成的数据模式要写到其中的所述存储单元的存储单元地址的模式的可选择函数;以及
内置在所述装置内的内部自修复逻辑电路,所述内部自修复逻辑包含修复逻辑电路,所述修复逻辑电路对所述内部自测试逻辑电路做出响应并配置成通过用备用存储单元的存储器位置替代具有至少一个有缺陷的存储单元的存储器位置来修复有缺陷存储器位置。
在示例77中,示例76-90(本示例除外)的主题可选地可包含:所述数据生成器配置成将可选择条纹模式的数据作为所生成的数据模式要被写到其中的所述存储单元的所述存储单元地址模式的所述行地址和所述列地址之一的函数进行反转。
在示例78中,示例76-90(本示例除外)的主题可选地可包含:所述数据生成器配置成将可选择棋盘模式的数据分别作为所生成的数据模式要被写到其中的所述存储单元的所述存储单元地址模式的所述行地址和所述列地址的最低阶行地址位和最低阶列地址位的“异或”函数的函数进行反转。
在示例79中,示例76-90(本示例除外)的主题可选地可包含:所述数据生成器配置成生成数据的可选择模式,其是所生成的数据模式要被写到其中的所述存储单元的所有存储单元地址的所有逻辑数据。
在示例80中,示例76-90(本示例除外)的主题可选地可包含:所述数据生成器配置成有选择地反转所生成的数据模式要被写到其中的所述存储单元的所有存储单元地址的数据模式。
在示例81中,示例76-90(本示例除外)的主题可选地可包含:所述数据生成器配置成有选择地按位位置旋转所生成的数据模式要被写到其中的所述存储单元的所有存储单元地址的所生成的数据模式。
在示例82中,示例76-90(本示例除外)的主题可选地可包含:所述数据生成器配置成对于所生成的数据模式要被写到其中的存储单元的所有存储单元地址有选择地重复按位位置旋转所生成的数据模式可选择次数。
在示例83中,示例76-90(本示例除外)的主题可选地可包含:所述多个生成器包含配置成将存储器地址偏移的周期模式作为周期的函数生成的至少一个地址偏移生成器,并且所述数据生成器配置成提供可选择周期数据反转函数以有选择地反转可选择周期数据反转模式的所述数据模式。
在示例84中,示例76-90(本示例除外)的主题可选地可包含:其中所述数据生成器配置成有选择地将条纹模式的数据模式作为由所述地址偏移生成器生成的存储器地址偏移的所述周期模式的函数进行反转,其中所述条纹模式是竖条纹、横条纹和斜条纹中的一种。
在示例85中,示例76-90(本示例除外)的主题可选地可包含:存储器地址偏移的所述周期模式的周期是由地址指令生成的所述存储单元地址模式寻址的所述存储单元的行数和列数之一的函数。
在示例86中,示例76-90(本示例除外)的主题可选地可包含:存储器地址偏移的所述周期模式的周期是初始周期和对所述初始周期的调整的函数。
在示例87中,示例76-90(本示例除外)的主题可选地可包含:所述初始周期是由地址指令生成的存储单元地址模式寻址的所述存储单元的遍历方向的函数,
在示例88中,示例76-90(本示例除外)的主题可选地可包含:所述初始周期被设置成由地址指令生成的所述存储单元地址模式寻址的所述存储单元的行数和列数之一。
在示例89中,示例76-90(本示例除外)的主题可选地可包含:链接在多阶段的多个数据生成器,每个数据生成器配置成将数据模式作为存储器地址的函数生成。
在示例90中,示例76-90(本示例除外)的主题可选地可包含:适合于存储映射值的多个寄存器以及配置成将逻辑地址作为存储在所述寄存器中的所述映射值的函数映射到物理地址的逻辑到物理地址映射逻辑。
示例91是供存储单元使用的方法,包括:
使用内置在装置内的内部自测试逻辑电路,
生成测试模式;以及
使用所生成的测试模式对于有缺陷的存储单元测试存储器内的存储单元;
其中所述测试模式生成包含:响应于地址指令而生成存储单元地址模式以遍历多个存储单元的存储器区域;以及响应于数据指令而生成测试数据模式的数据模式以被写到由所生成的存储单元地址模式寻址的存储单元中,并且其中所述生成数据模式包含选择数据模式,并将选择的数据模式作为所生成的数据模式要写到其中的所述存储单元的所生成的存储单元地址模式的可选择函数生成;以及
使用内置在所述装置内的内部自修复逻辑电路对所述内部自测试逻辑电路做出响应通过用备用存储单元的存储器位置替代具有至少一个有缺陷的存储单元的存储器位置来修复有缺陷存储器位置。
在示例92中,示例91-105(本示例除外)的主题可选地可包含:作为所生成的存储单元地址模式的可选择函数生成选择的数据模式包含作为所生成的数据模式要被写到其中的存储单元的存储单元地址模式的行地址和列地址之一的函数进行反转可选择条纹模式的数据。
在示例93中,示例91-105(本示例除外)的主题可选地可包含:作为所生成的存储单元地址模式的可选择函数生成选择的数据模式包含分别作为所生成的数据模式要被写到其中的存储单元的存储单元地址模式的行地址和列地址的最低阶行地址位和最低阶列地址位的“异或”函数的函数进行反转可选择棋盘模式的数据。
在示例94中,示例91-105(本示例除外)的主题可选地可包含:生成数据模式包含生成数据的可选择模式,其是所生成的数据模式要被写到其中的所述存储单元的所有存储单元地址的所有逻辑数据。
在示例95中,示例91-105(本示例除外)的主题可选地可包含:生成数据模式包含有选择地反转所生成的数据模式要被写到其中的所述存储单元的所有存储单元地址的数据模式。
在示例96中,示例91-105(本示例除外)的主题可选地可包含:生成数据模式包含有选择地按位位置旋转所生成的数据模式要被写到其中的存储单元的所有存储单元地址的所生成的数据模式。
在示例97中,示例91-105(本示例除外)的主题可选地可包含:旋转所生成的数据模式包含对于所生成的数据模式要被写到其中的存储单元的所有存储单元地址有选择地重复按位位置旋转所生成的数据模式可选择次数。
在示例98中,示例91-105(本示例除外)的主题可选地可包含:生成存储单元地址模式包含作为周期的函数生成存储器地址偏移的周期模式,并且其中作为所生成的存储单元地址模式的可选择函数生成所选择的数据模式包含提供可选择周期数据反转函数以有选择地反转可选择周期数据反转模式中的数据模式。
在示例99中,示例91-105(本示例除外)的主题可选地可包含:作为所生成的存储单元地址模式的可选择函数生成所选择的数据模式包含作为所生成的存储单元地址偏移周期模式的函数有选择地反转条纹模式中的数据模式,其中条纹模式是竖条纹、横条纹和斜条纹中的一种。
在示例100中,示例91-105(本示例除外)的主题可选地可包含:存储器地址偏移的所述周期模式的周期是由地址指令生成的所述存储单元地址模式寻址的所述存储单元的行数和列数之一的函数。
在示例101中,示例91-105(本示例除外)的主题可选地可包含:存储器地址偏移的所述周期模式的周期是初始周期和对所述初始周期的调整的函数。
在示例102中,示例91-105(本示例除外)的主题可选地可包含:所述初始周期是由地址指令生成的存储单元地址模式寻址的所述存储单元的遍历方向的函数。
在示例103中,示例91-105(本示例除外)的主题可选地可包含:所述初始周期被设置成由地址指令生成的所述存储单元地址模式寻址的所述存储单元的行数和列数之一。
在示例104中,示例91-105(本示例除外)的主题可选地可包含:作为所生成的存储单元地址模式的可选择函数生成选择的数据模式包含生成多阶段中的选择的数据模式,每阶段的每个数据模式都是存储器地址的函数。
在示例105中,示例91-105(本示例除外)的主题可选地可包含:作为存储在寄存器中的映射值的函数将逻辑地址映射到物理地址。
示例106指向包括执行如在前述任一示例中描述的方法的部件的设备。
所描述的操作可使用标准编程和/或工程设计技术来产生软件、固件、硬件或它们的任何组合而实现为方法、设备或计算机程序产品。所描述的操作可实现为在“计算机可读存储介质”中保存的计算机程序代码,其中处理器可读取并执行来自计算机可读存储介质的代码。计算机可读存储介质包含电子电路、存储材料、无机材料、有机材料、生物材料、壳体、外壳、涂层和硬件中的至少一项。计算机可读存储介质可包括但不限于磁存储介质(例如硬盘驱动器、软盘、磁带等)、光存储装置(CD-ROM、DVD、光盘等)、易失性和非易失性存储器装置(例如EEPROM、ROM、PROM、RAM、DRAM、SRAM、闪存、固件、可编程逻辑等)、固态装置(SSD)等。实现本文描述的操作的代码可进一步在硬件装置(例如集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC)等)中实现的硬件逻辑中实现。此外,实现所描述操作的代码可在“传送信号”中实现,其中传送信号可通过空间或通过传送介质(诸如光纤、铜线等)传播。对代码或逻辑进行编码的传送信号可还包括无线信号、卫星传送、无线电波、红外信号、蓝牙等。嵌入在计算机可读存储介质上的程序代码可作为传送信号从传送站或计算机传送到接收站或计算机。计算机可读存储介质不仅仅由传送信号组成。本领域技术人员将认识到,可对此配置进行许多修改,并不脱离本说明书的范围,并且制品可包括在本领域已知的适合的信息承载介质。当然,本领域技术人员将认识到,可对此配置进行许多修改,并不脱离本说明书的范围,并且制品可包括在本领域已知的任何有形信息承载介质。
在某些应用中,按照本说明书的装置可实施在计算机系统中,计算机系统包含向监视器上的显示器或耦合到计算机系统的其它显示器再现信息的视频控制器、装置驱动和网络控制器(诸如包括台式电脑、工作站、服务器、主机、膝上型电脑、手持计算机等的计算机系统)。
备选地,装置实施例可实施在计算装置中,计算装置例如不包含视频控制器(诸如交换机、路由器等),或者例如不包含网络控制器。
附图图示的逻辑可示出按某种次序发生的某些事件。在备选实施例中,某些操作可按不同次序执行、修改或移除。而且,操作可被添加到上面描述的逻辑,并且仍符合所描述的实施例。此外,本文描述的操作可顺序发生,或者某些操作可并行处理。此外,操作可由单个处理单元或分布式处理单元执行。
为了图示和描述目的,已经呈现了各种实施例的前述描述。它并不意图是穷尽的,或局限于所公开的精确形式。根据以上教导,许多修改和变化是可能的。
Claims (50)
1.一种供具有包含备用存储单元的存储单元的存储器使用的存储器控制器,包括:
内置在所述存储器控制器内的内部自测试逻辑电路,所述自测试逻辑电路包含:
测试模式生成器,用于生成测试模式并用于使用生成的测试模式来测试所述存储器内的存储单元;
储存库;以及
检测器电路,适合于响应于测试所述存储单元的所述测试模式而检测有缺陷的存储单元,并在所述存储器控制器内的储存库中存储存储器位置列表,所述列表的每个存储器位置都具有包含至少一个有缺陷的存储单元的存储单元集合;以及
内置在所述存储器控制器内的内部自修复逻辑电路,所述内部自修复逻辑包含修复逻辑电路,所述修复逻辑电路适合于读取存储在所述储存库中的存储器位置列表,并且通过用备用存储单元的存储器位置替代具有至少一个有缺陷的存储单元的存储器位置来修复所述列表的所述存储器位置。
2.如权利要求1所述的存储器控制器,还包括半导体管芯,其中所述内部自测试逻辑电路和所述内部自修复逻辑电路布置在所述存储器控制器的所述管芯上。
3.如权利要求1和2中任一项所述的存储器控制器,其中所述测试模式生成器包含多个生成器,所述多个生成器包含至少一个地址生成器以及循环定序器电路,所述循环定序器电路适合于向所述生成器应用多个嵌套循环指令,包含到地址生成器的地址指令序列中的地址指令的顺序循环,所述序列的每个地址指令当由地址生成器执行时使地址生成器生成存储单元地址模式,并且其中所述测试模式生成器适合于在由在所述地址指令的循环中按顺序执行的地址指令生成的存储单元地址模式寻址的存储单元执行存储器命令。
4.如权利要求3所述的存储器控制器,其中所述多个生成器包含至少一个数据生成器,并且其中所述循环定序器电路适合于向数据生成器应用数据指令序列中的数据指令的顺序循环,所述序列的每个数据指令当由数据生成器执行时使数据生成器生成测试模式的测试数据,其中数据指令的所述顺序循环嵌套在指令的另一循环内,并且其中所述测试模式生成器在存储单元执行存储器命令时适合于将由在所述数据指令的循环中按顺序执行的数据指令生成的测试数据模式写到由在所述地址指令的循环中按顺序执行的地址指令生成的存储单元地址模式寻址的存储单元中。
5.如权利要求4所述的存储器控制器,其中所述多个生成器包含至少一个算法生成器,并且其中所述循环定序器电路适合于向算法生成器应用算法指令序列中的算法指令的顺序循环,所述序列的每个算法指令当由算法生成器执行时使算法生成器生成测试数据模式作为输入由在所述数据指令的循环中按顺序执行的数据指令生成的所述测试数据的算法的输出,其中算法指令的所述顺序循环嵌套在指令的另一循环内,并且其中所述测试模式生成器在存储单元执行存储器命令时适合于按照在所述算法指令的循环中按顺序执行的算法指令将数据测试模式写到由在所述地址指令的循环中按顺序执行的地址指令生成的存储单元地址模式寻址的存储单元中。
6.如权利要求5所述的存储器控制器,其中所述多个生成器包含至少一个命令生成器,并且其中所述循环定序器电路适合于向命令生成器应用命令指令序列中的命令指令的顺序循环,所述序列的每个命令指令当由命令生成器执行时使命令生成器生成存储器命令的模式,其中命令指令的所述顺序循环嵌套在指令的另一循环内,并且其中所述测试模式生成器在存储单元执行存储器命令时适合于执行由在所述命令指令的循环中按顺序执行的命令指令生成的命令模式,所述命令模式将由算法生成器的输出响应于在所述算法指令的循环(其输入由在所述数据指令的循环中按顺序执行数据指令生成的所述测试数据)中按顺序执行的算法指令而生成的数据测试模式写到由在所述地址指令的循环中按顺序执行的地址指令生成的存储单元地址模式寻址的存储单元中。
7.如权利要求6所述的存储器控制器,其中所述多个生成器包含至少一个地址偏移生成器,并且其中所述循环定序器适合于向地址偏移生成器应用存储器地址偏移指令序列中的存储器地址偏移指令的顺序循环,所述序列的每个存储器地址偏移指令当由地址偏移生成器执行时使地址偏移生成器生成存储器地址偏移模式,其中所述存储器地址偏移指令的所述顺序循环嵌套在指令的另一循环内,并且其中所述测试模式生成器在存储单元执行存储器命令时适合于在由在所述地址指令的循环中按顺序执行的地址指令生成的存储单元地址模式寻址的并由在所述存储器地址偏移指令的循环中按顺序执行的存储器地址偏移指令生成的所述存储器地址偏移模式偏移的存储单元中执行由在所述命令指令的循环中按顺序执行的命令指令生成的命令模式。
8.如权利要求1所述的存储器控制器,其中所述存储单元布置在多个存储器区域中,并且其中所述检测器电路适合于确定具有至少一个有缺陷的存储单元的存储器位置数量是否超过具体存储器区域的最大值,并且如果是,则设置指示具有至少一个有缺陷的存储单元的存储器位置数量超过所述具体存储器区域的最大值的标志。
9.如权利要求1所述的存储器控制器,其中所述存储单元布置在存储单元的存储器区域中,每个存储器区域包括布置在存储单元的行和列中的存储单元阵列,并且存储器区域的每个存储器位置都是存储单元行,并且其中所述检测器电路适合于确定存储单元的具体存储器区域的存储单元的具体行是否已经被存储为所述储存库的列表中的条目,并且如果存储单元的所述具体存储器区域的存储单元的具体行已经被存储为所述储存库的列表中的条目,则绕过在所述储存库中存储存储单元的所述具体存储器区域的具体行作为所述存储器位置列表的条目。
10.如权利要求1和8-9中任一项所述的存储器控制器,其中所述存储单元布置在存储单元的存储器区域中,每个存储器区域包括布置在存储单元的行和列中的存储单元阵列,并且存储器区域的每个存储器位置是存储单元行,并且其中所述检测器电路适合于为每个存储器区域设置指示所述具体存储器区域的至少一行在所述具体存储器区域的至少一行存储单元中是否具有至少一个有缺陷的存储单元的标志。
11.一种计算机架构装置,包括:
所述装置内的存储单元,包含备用存储单元;
内置在所述装置内的内部自测试逻辑电路,所述自测试逻辑电路包含:
测试模式生成器,用于生成测试模式并使用生成的测试模式测试所述装置内的存储单元;
储存库;以及
检测器电路,适合于响应于测试所述存储单元的所述测试模式而检测有缺陷的存储单元,并在所述装置内的所述储存库中存储存储器位置列表,所述列表的每个存储器位置都具有包含至少一个有缺陷的存储单元的存储单元集合;以及
内置在所述装置内的内部自修复逻辑电路,所述内部自修复逻辑包含修复逻辑电路,所述修复逻辑电路适合于读取存储在所述储存库中的存储器位置列表,并且通过用备用存储单元的存储器位置替代具有至少一个有缺陷的存储单元的存储器位置来修复所述列表的所述存储器位置。
12.如权利要求11所述的装置,其中所述装置还包括布置在所述装置内的半导体管芯上用于控制所述装置的所述存储单元的存储器控制器,并且其中所述内部自测试逻辑电路和所述内部自修复逻辑电路布置在所述存储器控制器的所述管芯上。
13.如权利要求11和12中任一项所述的装置,其中所述测试模式生成器包含多个生成器,所述多个生成器包含至少一个地址生成器以及循环定序器电路,所述循环定序器电路适合于向所述生成器应用多个嵌套循环指令,包含到地址生成器的地址指令序列中的地址指令的顺序循环,所述序列的每个地址指令当由地址生成器执行时使地址生成器生成存储单元地址模式,并且其中所述测试模式生成器适合于在由在所述地址指令的循环中按顺序执行的地址指令生成的存储单元地址模式寻址的存储单元执行存储器命令。
14.如权利要求13所述的装置,其中所述多个生成器包含至少一个数据生成器,并且其中所述循环定序器电路适合于向数据生成器应用数据指令序列中的数据指令的顺序循环,所述序列的每个数据指令当由数据生成器执行时使数据生成器生成测试模式的测试数据,其中数据指令的所述顺序循环嵌套在指令的另一循环内,并且其中所述测试模式生成器在存储单元执行存储器命令时适合于将由在所述数据指令的循环中按顺序执行的数据指令生成的测试数据模式写到由在所述地址指令的循环中按顺序执行的地址指令生成的存储单元地址模式寻址的存储单元中。
15.如权利要求14所述的装置,其中所述多个生成器包含至少一个算法生成器,并且其中所述循环定序器电路适合于向算法生成器应用算法指令序列中的算法指令的顺序循环,所述序列的每个算法指令当由算法生成器执行时使算法生成器生成测试数据模式作为输入由在所述数据指令的循环中按顺序执行的数据指令生成的所述测试数据的算法的输出,其中算法指令的所述顺序循环嵌套在指令的另一循环内,并且其中所述测试模式生成器在存储单元执行存储器命令时适合于按照在所述算法指令的循环中按顺序执行的算法指令将数据测试模式写到由在所述地址指令的循环中按顺序执行的地址指令生成的存储单元地址模式寻址的存储单元中。
16.一种测试和修复存储器的方法,包括:
使用内置在装置内的内部自测试逻辑电路,
生成用于测试所述装置内的存储单元的测试模式;
向所述装置内的所述存储单元应用所述测试模式;
响应于应用的测试模式而检测有缺陷的存储单元;以及
在所述装置内的储存库中存储存储器位置列表,所述列表的每个存储器位置具有包含至少一个有缺陷的存储单元的存储单元集合;以及
使用内置在所述装置内的内部自修复逻辑电路,
读取存储在所述储存库中的所述存储器位置列表;以及
修复所述存储器位置,其中所述修复包含用具有存储单元集合的备用存储器位置替代具有至少一个有缺陷的存储单元的存储器位置。
17.如权利要求16所述的方法,其中所述装置还包括布置在所述装置内的半导体管芯上用于控制所述装置的所述存储单元的存储器控制器,并且其中所述内部自测试逻辑电路和所述内部自修复逻辑电路布置在所述存储器控制器的所述管芯上。
18.如权利要求16和17中任一项所述的方法,其中应用所述测试模式包含执行地址指令序列中的地址指令的顺序循环,所述序列的每个地址指令当执行时生成存储单元地址模式,并在由在所述地址指令的循环中按顺序执行的地址指令生成的存储单元地址模式寻址的存储单元执行存储器命令。
19.如权利要求18所述的方法,其中所述生成测试模式包含执行数据指令序列中的数据指令的顺序循环,所述序列的每个数据指令当执行时生成测试模式的测试数据,其中数据指令的所述顺序循环嵌套在指令的另一循环内,并且其中在存储单元执行存储器命令包含将由在所述数据指令的循环中按顺序执行的数据指令生成的测试数据写到由在所述地址指令的循环中按顺序执行的地址指令生成的存储单元地址模式寻址的存储单元中。
20.如权利要求19所述的方法,其中所述生成测试模式包含执行算法指令序列中的算法指令的顺序循环,所述序列的每个算法指令当执行时生成测试数据模式作为输入由在所述数据指令的循环中按顺序执行的数据指令生成的所述测试数据的算法的输出,其中算法指令的所述顺序循环嵌套在指令的另一循环内,并且其中在存储单元执行存储器命令包含按照在所述算法指令的循环中按顺序执行的算法指令将数据测试模式写到由在所述地址指令的循环中按顺序执行的地址指令生成的存储单元地址模式寻址的存储单元中。
21.如权利要求20所述的方法,其中所述生成测试模式包含执行命令指令序列中的命令指令的顺序循环,所述序列的每个命令指令当执行时生成存储器命令的模式,其中命令指令的所述顺序循环嵌套在指令的另一循环内,并且其中在存储单元执行存储器命令包含执行由在所述命令指令的循环中按顺序执行的命令指令生成的命令模式,所述命令模式将由在所述算法指令的循环(其输入由在所述数据指令的循环中按顺序执行数据指令生成的所述测试数据)中按顺序执行的算法指令的算法输出生成的数据测试模式写到由在所述地址指令的循环中按顺序执行的地址指令生成的存储单元地址模式寻址的存储单元中。
22.如权利要求21所述的方法,其中所述生成测试模式包含执行存储器地址偏移指令序列中的存储器地址偏移指令的顺序循环,所述序列的每个存储器地址偏移指令当执行时生成存储器地址偏移模式,其中所述存储器地址偏移指令的所述顺序循环嵌套在指令的另一循环内,并且其中在存储单元执行存储器命令包含在由在所述地址指令的循环中按顺序执行的地址指令生成的存储单元地址模式寻址的并由在所述存储器地址偏移指令的循环中按顺序执行的存储器地址偏移指令生成的所述存储器地址偏移模式偏移的存储单元中执行由在所述命令指令的循环中按顺序执行的命令指令生成的命令模式。
23.如权利要求16所述的方法,其中所述存储单元布置在多个存储器区域中,所述方法还包括确定具有至少一个有缺陷的存储单元的存储器位置数量是否超过具体存储器区域的最大值,并且如果是,则设置指示具有至少一个有缺陷的存储单元的存储器位置数量超过所述具体存储器区域的最大值的标志。
24.如权利要求16所述的方法,其中所述存储单元布置在存储单元的存储器区域中,每个存储器区域包括布置在存储单元的行和列中的存储单元阵列,并且存储器区域的每个存储器位置都是存储单元行,所述方法还包括确定存储单元的具体存储器区域的存储单元的具体行是否已经被存储为所述储存库的列表中的条目,并且如果存储单元的所述具体存储器区域的存储单元的具体行已经被存储为所述储存库的列表中的条目,则绕过在所述储存库中存储存储单元的所述具体存储器区域的具体行作为所述存储器位置列表的条目。
25.如权利要求16和23-24所述的方法,其中所述存储单元布置在存储单元的存储器区域中,每个存储器区域包括布置在存储单元的行和列中的存储单元阵列,并且存储器区域的每个存储器位置是存储单元行,所述方法还包括为每个存储器区域设置指示所述具体存储器区域的至少一行在所述具体存储器区域的至少一行存储单元中是否具有至少一个有缺陷的存储单元的标志。
26.一种供具有包含备用存储单元的存储单元的存储器使用的存储器控制器,包括:
内置在所述存储器控制器内的内部自测试逻辑电路,所述自测试逻辑电路包含:测试模式生成器,用于生成测试模式并使用生成的测试模式测试所述存储器内的存储单元;其中所述测试模式生成器包含多个生成器,所述多个生成器包含:至少一个地址生成器,配置成响应于地址指令而生成存储单元地址模式以遍历多个存储单元的存储器区域;以及至少一个数据生成器,配置成响应于数据指令而生成测试数据模式的数据模式以被写到由所述地址生成器生成的存储单元地址模式寻址的存储单元中,其中所生成的数据模式是所生成的数据模式要写到其中的所述存储单元的存储单元地址的模式的可选择函数。
27.如权利要求26所述的存储器控制器,其中所述数据生成器配置成将可选择条纹模式的数据作为所生成的数据模式要被写到其中的所述存储单元的所述存储单元地址模式的所述行地址和所述列地址之一的函数进行反转。
28.如权利要求26所述的存储器控制器,其中所述数据生成器配置成将可选择棋盘模式的数据分别作为所生成的数据模式要被写到其中的所述存储单元的所述存储单元地址模式的所述行地址和所述列地址的最低阶行地址位和最低阶列地址位的“异或”函数的函数进行反转。
29.如权利要求26所述的存储器控制器,其中所述数据生成器配置成生成数据的可选择模式,其是所生成的数据模式要被写到其中的所述存储单元的所有存储单元地址的所有逻辑数据。
30.如权利要求26所述的存储器控制器,其中所述数据生成器配置成有选择地反转所生成的数据模式要被写到其中的所述存储单元的所有存储单元地址的数据模式。
31.如权利要求26-30中任一项所述的存储器控制器,其中所述数据生成器配置成有选择地按位位置旋转所生成的数据模式要被写到其中的所述存储单元的所有存储单元地址的所生成的数据模式。
32.如权利要求31所述的存储器控制器,其中所述数据生成器配置成对于所生成的数据模式要被写到其中的所述存储单元的所有存储单元地址有选择地重复按位位置旋转所生成的数据模式可选择次数。
33.如权利要求26所述的存储器控制器,其中所述多个生成器包含配置成将存储器地址偏移的周期模式作为周期的函数生成的至少一个地址偏移生成器,并且所述数据生成器配置成提供可选择周期数据反转函数以有选择地反转可选择周期数据反转模式的所述数据模式。
34.如权利要求33所述的存储器控制器,其中所述数据生成器配置成有选择地将条纹模式的数据模式作为由所述地址偏移生成器生成的存储器地址偏移的所述周期模式的函数进行反转,其中所述条纹模式是竖条纹、横条纹和斜条纹中的一种。
35.如权利要求34所述的存储器控制器,其中存储器地址偏移的所述周期模式的周期是由地址指令生成的所述存储单元地址模式寻址的所述存储单元的行数和列数之一的函数。
36.如权利要求33所述的存储器控制器,其中存储器地址偏移的所述周期模式的周期是初始周期和对所述初始周期的调整的函数。
37.如权利要求35所述的存储器控制器,其中所述初始周期是由地址指令生成的存储单元地址模式寻址的所述存储单元的遍历方向的函数。
38.如权利要求36所述的存储器控制器,其中所述初始周期被设置成由地址指令生成的所述存储单元地址模式寻址的所述存储单元的行数和列数之一。
39.如权利要求33所述的存储器控制器,包括链接在多阶段的多个数据生成器,每个数据生成器配置成将数据模式作为存储器地址的函数生成。
40.如权利要求39所述的存储器控制器,包括适合于存储映射值的多个寄存器以及配置成将逻辑地址作为存储在所述寄存器中的所述映射值的函数映射到物理地址的逻辑到物理地址映射逻辑。
41.一种计算装置,包括:
存储器,在所述装置内具有包含备用存储单元的存储单元;
内置在所述装置内的内部自测试逻辑电路,所述自测试逻辑电路包含:测试模式生成器,用于生成测试模式并使用所生成的测试模式对于有缺陷的存储单元测试存储器内的存储单元;其中所述测试模式生成器包含多个生成器,所述多个生成器包含:至少一个地址生成器,配置成响应于地址指令而生成存储单元地址模式以遍历多个存储单元的存储器区域;以及至少一个数据生成器,配置成响应于数据指令而生成测试数据模式的数据模式以被写到由所述地址生成器生成的存储单元地址模式寻址的存储单元中,其中所生成的数据模式是所生成的数据模式要写到其中的所述存储单元的存储单元地址的模式的可选择函数;以及
内置在所述装置内的内部自修复逻辑电路,所述内部自修复逻辑包含修复逻辑电路,所述修复逻辑电路对所述内部自测试逻辑电路做出响应并配置成通过用备用存储单元的存储器位置替代具有至少一个有缺陷的存储单元的存储器位置来修复有缺陷存储器位置。
42.如权利要求41所述的装置,其中所述数据生成器配置成执行如下至少一项:a)将可选择条纹模式的数据作为所生成的数据模式要被写到其中的所述存储单元的所述存储单元地址模式的所述行地址和所述列地址之一的函数进行反转;以及2)将可选择棋盘模式的数据分别作为所生成的数据模式要被写到其中的所述存储单元的所述存储单元地址模式的所述行地址和列地址的所述最低阶行地址位和最低阶列地址位的“异或”函数的函数进行反转。
43.如权利要求41所述的装置,其中所述数据生成器配置成执行如下至少一项:1)生成数据的可选择模式,其是所生成的数据模式要被写到其中的所述存储单元的所有存储单元地址的所有逻辑数据;2)有选择地反转所生成的数据模式要被写到其中的所述存储单元的所有存储单元地址的数据模式;3)有选择地按位位置旋转所生成的数据模式要被写到其中的所述存储单元的所有存储单元地址的所生成的数据模式;以及4)对于所生成的数据模式要被写到其中的所述存储单元的所有存储单元地址有选择地重复按位位置旋转所生成的数据模式可选择次数。
44.如权利要求41-43中任一项所述的装置,其中所述多个生成器包含配置成将存储器地址偏移的周期模式作为周期的函数生成的至少一个地址偏移生成器,并且所述数据生成器配置成提供可选择周期数据反转函数以有选择地反转可选择周期数据反转模式的所述数据模式,并且其中所述数据生成器配置成有选择地将条纹模式的数据模式作为由所述地址偏移生成器生成的存储器地址偏移的所述周期模式的函数进行反转,其中所述条纹模式是竖条纹、横条纹和斜条纹中的一种,并且其中存储器地址偏移的所述周期模式的周期是如下至少一项的函数:1)由地址指令生成的所述存储单元地址模式寻址的所述存储单元的行数;2)由地址指令生成的所述存储单元地址模式寻址的所述存储单元的列数;以及3)初始周期和对所述初始周期的调整,其中所述初始周期是由地址指令生成的存储单元地址模式寻址的所述存储单元的遍历方向的函数,并且其中所述初始周期被设置成由地址指令生成的所述存储单元地址模式寻址的所述存储单元的行数和列数之一。
45.如权利要求44所述的装置,包括:链接在多阶段的多个数据生成器,每个数据生成器配置成将数据模式作为存储器地址的函数生成;多个寄存器,适合于存储映射值;以及逻辑到物理地址映射逻辑,配置成将逻辑地址作为存储在所述寄存器中的所述映射值的函数映射到物理地址。
46.一种供存储单元使用的方法,包括:
使用内置在装置内的内部自测试逻辑电路,
生成测试模式;以及
使用所生成的测试模式对于有缺陷的存储单元测试存储器内的存储单元;
其中所述测试模式生成包含:响应于地址指令而生成存储单元地址模式以遍历多个存储单元的存储器区域;以及响应于数据指令而生成测试数据模式的数据模式以被写到由所生成的存储单元地址模式寻址的存储单元中,并且其中所述生成数据模式包含选择数据模式,并将选择的数据模式作为所生成的数据模式要写到其中的所述存储单元的所生成的存储单元地址模式的可选择函数生成;以及
使用内置在所述装置内的内部自修复逻辑电路对所述内部自测试逻辑电路做出响应通过用备用存储单元的存储器位置替代具有至少一个有缺陷的存储单元的存储器位置来修复有缺陷存储器位置。
47.如权利要求46所述的方法,其中将选择的数据模式作为所生成的存储单元地址模式的可选择函数生成包含如下至少一项:1)将可选择条纹模式的数据作为所生成的数据模式要被写到其中的所述存储单元的所述存储单元地址模式的所述行地址和所述列地址之一的函数进行反转;以及2)将可选择棋盘模式的数据分别作为所生成的数据模式要被写到其中的所述存储单元的所述存储单元地址模式的所述行地址和列地址的所述最低阶行地址位和最低阶列地址位的“异或”函数的函数进行反转。
48.如权利要求46所述的方法,其中所述生成数据模式包含如下至少一项:1)生成数据的可选择模式,其是所生成的数据模式要被写到其中的所述存储单元的所有存储单元地址的所有逻辑数据;2)有选择地反转所生成的数据模式要被写到其中的所述存储单元的所有存储单元地址的数据模式;3)有选择地按位位置旋转所生成的数据模式要被写到其中的所述存储单元的所有存储单元地址的所生成的数据模式;以及4)对于所生成的数据模式要被写到其中的所述存储单元的所有存储单元地址有选择地重复按位位置旋转所生成的数据模式可选择次数。
49.如权利要求46-48中任一项所述的方法,其中生成存储单元地址模式包含将存储器地址偏移的周期模式作为周期的函数生成,并且其中将选择的数据模式作为所生成的存储单元地址模式的可选择函数生成包含提供可选择周期数据反转函数以有选择地反转可选择周期数据反转模式的所述数据模式,其中将选择的数据模式作为生成的存储单元地址模式的可选择函数生成包含有选择地将条纹模式的所述数据模式作为所生成的存储器地址偏移周期模式的函数进行反转,其中所述条纹模式是竖条纹、横条纹和斜条纹中的一种,并且其中存储器地址偏移的所述周期模式的周期是如下一项的函数:1)由地址指令生成的所述存储单元地址模式寻址的所述存储单元的行数;2)由地址指令生成的所述存储单元地址模式寻址的所述存储单元的列数;以及3)初始周期和对所述初始周期的调整,其中所述初始周期是由地址指令生成的存储单元地址模式寻址的所述存储单元的遍历方向的函数,并且其中所述初始周期被设置成由地址指令生成的所述存储单元地址模式寻址的所述存储单元的行数和列数之一。
50.如权利要求49所述的方法,其中将选择的数据模式作为生成的存储单元地址模式的可选择函数生成包含生成多个链接阶段中的选择的数据模式,每阶段的每个数据模式都是存储地址的函数,并且在其中一个所述链接阶段中,将逻辑地址作为存储在寄存器中的映射值的函数映射到物理地址。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/141,239 US9564245B2 (en) | 2013-12-26 | 2013-12-26 | Integrated circuit defect detection and repair |
US14/141239 | 2013-12-26 | ||
US14/320,164 US9548137B2 (en) | 2013-12-26 | 2014-06-30 | Integrated circuit defect detection and repair |
US14/320164 | 2014-06-30 | ||
PCT/US2014/072003 WO2015100273A1 (en) | 2013-12-26 | 2014-12-22 | Integrated circuit defect detection and repair |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105745623A true CN105745623A (zh) | 2016-07-06 |
CN105745623B CN105745623B (zh) | 2020-03-17 |
Family
ID=53479629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480064686.9A Active CN105745623B (zh) | 2013-12-26 | 2014-12-22 | 集成电路缺陷检测和修复 |
Country Status (6)
Country | Link |
---|---|
US (2) | US9548137B2 (zh) |
EP (1) | EP3087488B1 (zh) |
JP (1) | JP6218203B2 (zh) |
KR (1) | KR101861027B1 (zh) |
CN (1) | CN105745623B (zh) |
WO (1) | WO2015100273A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108511029A (zh) * | 2017-02-23 | 2018-09-07 | 上海复旦微电子集团股份有限公司 | 一种fpga中双端口sram阵列的内建自测和修复系统及其方法 |
TWI681309B (zh) * | 2018-05-10 | 2020-01-01 | 瑞昱半導體股份有限公司 | 電子裝置測試資料庫產生方法 |
CN111143158A (zh) * | 2019-12-04 | 2020-05-12 | 武汉光谷信息技术股份有限公司 | 一种监控数据实时存储方法、系统、电子设备及存储介质 |
CN113900847A (zh) * | 2021-10-15 | 2022-01-07 | 深圳市金泰克半导体有限公司 | 基于fpga的内存修复系统 |
CN114863985A (zh) * | 2022-04-21 | 2022-08-05 | 深圳市金泰克半导体有限公司 | 一种聚集扩散式芯片检测方法、装置、控制器及介质 |
US20230245709A1 (en) * | 2022-02-01 | 2023-08-03 | Dell Products L.P. | Systems and methods for fault-resilient system management random access memory |
CN117907812A (zh) * | 2024-03-20 | 2024-04-19 | 英诺达(成都)电子科技有限公司 | 电路检测方法及装置、电子设备、存储介质、程序产品 |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9548137B2 (en) | 2013-12-26 | 2017-01-17 | Intel Corporation | Integrated circuit defect detection and repair |
KR20160054793A (ko) * | 2014-11-07 | 2016-05-17 | 에스케이하이닉스 주식회사 | 쉬프트 레지스터 회로 및 이를 포함하는 메모리 장치 |
US10500730B2 (en) * | 2015-09-04 | 2019-12-10 | Kindred Systems Inc. | Systems, devices, and methods for self-preservation of robotic apparatus |
US10062451B2 (en) * | 2015-11-09 | 2018-08-28 | Texas Instruments Incorporated | Background memory test apparatus and methods |
CN106710632B (zh) * | 2015-11-17 | 2020-01-07 | 华邦电子股份有限公司 | 存储器装置 |
KR20170066082A (ko) * | 2015-12-04 | 2017-06-14 | 삼성전자주식회사 | Bist 회로, 이를 포함하는 메모리 장치 및 이의 동작방법 |
US9972402B2 (en) * | 2016-04-25 | 2018-05-15 | Qualcomm Incorporated | Continuous write and read operations for memories with latencies |
US9904758B2 (en) * | 2016-05-18 | 2018-02-27 | Samsung Electronics Co., Ltd. | Using deep sub-micron stress effects and proximity effects to create a high performance standard cell |
KR20180070779A (ko) | 2016-12-16 | 2018-06-27 | 삼성전자주식회사 | 리페어 온 시스템에서의 포스트 패키지 리페어를 위한 데이터 백업 방법 |
KR102308778B1 (ko) | 2017-05-24 | 2021-10-05 | 삼성전자주식회사 | 디스터브 로우를 케어하는 메모리 장치 및 그 동작방법 |
US10276259B2 (en) * | 2017-07-05 | 2019-04-30 | Winbond Electronics Corp. | Memory testing method and memory apparatus therefor |
US10510431B2 (en) * | 2017-09-22 | 2019-12-17 | Qualcomm Incorporated | Detecting random telegraph noise defects in memory |
US10541010B2 (en) * | 2018-03-19 | 2020-01-21 | Micron Technology, Inc. | Memory device with configurable input/output interface |
US10600770B2 (en) * | 2018-05-14 | 2020-03-24 | Micron Technology, Inc. | Semiconductor dice assemblies, packages and systems, and methods of operation |
US10991445B2 (en) | 2018-09-06 | 2021-04-27 | Micron Technology, Inc. | Memory sub-system including an in-package sequencer to perform error correction and memory testing operations |
US10909011B2 (en) | 2018-10-16 | 2021-02-02 | Micron Technology, Inc. | Intelligent post-packaging repair |
KR20210000600A (ko) | 2019-06-25 | 2021-01-05 | 에스케이하이닉스 주식회사 | 이미지 센서 |
KR102668562B1 (ko) * | 2019-07-24 | 2024-05-24 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그것의 동작 방법 |
US11455221B2 (en) | 2019-10-31 | 2022-09-27 | Qualcomm Incorporated | Memory with concurrent fault detection and redundancy |
TWI726514B (zh) * | 2019-12-03 | 2021-05-01 | 芯測科技股份有限公司 | 記憶體修復電路、方法與使用其的記憶體模組 |
US11989106B2 (en) * | 2019-12-11 | 2024-05-21 | Intel Corporation | Inline buffer for in-memory post package repair (PPR) |
US11798649B2 (en) * | 2020-09-11 | 2023-10-24 | Changxin Memory Technologies, Inc. | Defect repair circuit and defect repair method |
EP3979248A1 (en) * | 2020-09-30 | 2022-04-06 | Imec VZW | A memory macro |
KR102416994B1 (ko) * | 2020-10-23 | 2022-07-05 | 연세대학교 산학협력단 | 리던던시 분석 방법 및 리던던시 분석 장치 |
US12028345B2 (en) | 2021-05-19 | 2024-07-02 | Bank Of America Corporation | Information security system and method for identifying trusted machines for machine-to-machine (M2M) security and validation |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6834361B2 (en) * | 2001-04-27 | 2004-12-21 | Logicvision, Inc. | Method of testing embedded memory array and embedded memory controller for use therewith |
CN1690724A (zh) * | 2004-04-23 | 2005-11-02 | 冲电气工业株式会社 | 测试半导体器件的电路和方法 |
WO2006055862A2 (en) * | 2004-11-18 | 2006-05-26 | Mentor Graphics Corporation | Programmable memory built-in-self-test (mbist) method and apparatus |
US7260758B1 (en) * | 2001-09-07 | 2007-08-21 | Lsi Corporation | Method and system for performing built-in self-test routines using an accumulator to store fault information |
US20080178053A1 (en) * | 2004-01-29 | 2008-07-24 | Gorman Kevin W | Hybrid built-in self test (bist) architecture for embedded memory arrays and an associated method |
US20130058145A1 (en) * | 2011-09-06 | 2013-03-07 | Samsung Electronics Co., Ltd. | Memory system |
Family Cites Families (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5535164A (en) | 1995-03-03 | 1996-07-09 | International Business Machines Corporation | BIST tester for multiple memories |
US5974579A (en) * | 1996-09-03 | 1999-10-26 | Credence Systems Corporation | Efficient built-in self test for embedded memories with differing address spaces |
US5961653A (en) | 1997-02-19 | 1999-10-05 | International Business Machines Corporation | Processor based BIST for an embedded memory |
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 |
US5956350A (en) * | 1997-10-27 | 1999-09-21 | Lsi Logic Corporation | Built in self repair for DRAMs using on-chip temperature sensing and heating |
US6367042B1 (en) * | 1998-12-11 | 2002-04-02 | Lsi Logic Corporation | Testing methodology for embedded memories using built-in self repair and identification circuitry |
US6067262A (en) * | 1998-12-11 | 2000-05-23 | Lsi Logic Corporation | Redundancy analysis for embedded memories with built-in self test and built-in self repair |
US6651202B1 (en) * | 1999-01-26 | 2003-11-18 | Lsi Logic Corporation | Built-in self repair circuitry utilizing permanent record of defects |
JP2001043698A (ja) * | 1999-08-03 | 2001-02-16 | Hitachi Ltd | 内蔵メモリアレイの自己検査回路および自己検査方法 |
US6425103B1 (en) * | 1999-09-29 | 2002-07-23 | Lsi Logic Corporation | Programmable moving inversion sequencer for memory bist address generation |
WO2001056038A1 (fr) * | 2000-01-28 | 2001-08-02 | Hitachi, Ltd. | Systeme a semi-conducteur |
US6668347B1 (en) | 2000-05-08 | 2003-12-23 | Intel Corporation | Built-in self-testing for embedded memory |
US6643807B1 (en) * | 2000-08-01 | 2003-11-04 | International Business Machines Corporation | Array-built-in-self-test (ABIST) for efficient, fast, bitmapping of large embedded arrays in manufacturing test |
US6928593B1 (en) | 2000-09-18 | 2005-08-09 | Intel Corporation | Memory module and memory component built-in self test |
DE60208117T2 (de) * | 2001-06-20 | 2006-08-17 | Broadcom Corp., Irvine | Selbsttest-Schaltung für Cache-Speicher |
US20030074623A1 (en) * | 2001-10-13 | 2003-04-17 | Koji Takahashi | Algorithmic test pattern generator |
US6941495B2 (en) | 2002-02-15 | 2005-09-06 | Intel Corporation | Low cost built-in self test state machine for general purpose RAM testing |
JP4137474B2 (ja) | 2002-03-18 | 2008-08-20 | 富士通株式会社 | 自己テスト回路及び半導体記憶装置 |
US7171596B2 (en) * | 2002-09-11 | 2007-01-30 | Infineon Technologies Ag | Circuit and method for testing embedded DRAM circuits through direct access mode |
US6781898B2 (en) | 2002-10-30 | 2004-08-24 | Broadcom Corporation | Self-repairing built-in self test for linked list memories |
US7356741B2 (en) * | 2002-11-26 | 2008-04-08 | Infineon Technologies Ag | Modular test controller with BIST circuit for testing embedded DRAM circuits |
US6831868B2 (en) | 2002-12-05 | 2004-12-14 | Intel Corporation | Byte aligned redundancy for memory array |
CA2414632A1 (en) * | 2002-12-18 | 2004-06-18 | Logicvision, Inc. | Method and circuit for collecting memory failure information |
JP3866216B2 (ja) | 2003-04-10 | 2007-01-10 | 松下電器産業株式会社 | 半導体集積回路およびその検査方法 |
US6959256B2 (en) * | 2003-05-16 | 2005-10-25 | Analog Devices, Inc. | Universally accessible fully programmable memory built-in self-test (MBIST) system and method |
JP3788983B2 (ja) * | 2003-07-10 | 2006-06-21 | 松下電器産業株式会社 | 半導体集積回路装置 |
US20050080581A1 (en) | 2003-09-22 | 2005-04-14 | David Zimmerman | Built-in self test for memory interconnect testing |
US7401281B2 (en) * | 2004-01-29 | 2008-07-15 | International Business Machines Corporation | Remote BIST high speed test and redundancy calculation |
JP2005332555A (ja) * | 2004-04-23 | 2005-12-02 | Oki Electric Ind Co Ltd | テスト回路、テスト方法、及び半導体集積回路装置 |
TWI252397B (en) * | 2004-09-17 | 2006-04-01 | Ind Tech Res Inst | Method and apparatus of built-in self-diagnosis and repair in a memory with syndrome identification |
DE102004051346A1 (de) * | 2004-10-21 | 2006-05-04 | Infineon Technologies Ag | Halbleiter-Bauelement-Test-Einrichtung, insbesondere Daten-Zwischenspeicher-Bauelement mit Halbleiter-Bauelement-Test-Einrichtung, sowie Halbleiter-Bauelement-Test-Verfahren |
JP2006252702A (ja) | 2005-03-11 | 2006-09-21 | Nec Electronics Corp | 半導体集積回路装置及びその検査方法 |
JP2006302464A (ja) * | 2005-04-25 | 2006-11-02 | Nec Electronics Corp | 半導体記憶装置 |
US7286380B2 (en) | 2005-09-29 | 2007-10-23 | Intel Corporation | Reconfigurable memory block redundancy to repair defective input/output lines |
US7475314B2 (en) | 2005-12-15 | 2009-01-06 | Intel Corporation | Mechanism for read-only memory built-in self-test |
US20080165599A1 (en) * | 2006-01-31 | 2008-07-10 | Gorman Kevin W | Design structure used for repairing embedded memory in an integrated circuit |
US8069377B2 (en) * | 2006-06-26 | 2011-11-29 | Micron Technology, Inc. | Integrated circuit having memory array including ECC and column redundancy and method of operating the same |
US7757135B2 (en) * | 2006-09-11 | 2010-07-13 | Mentor Graphics Corporation | Method and apparatus for storing and distributing memory repair information |
US7949908B2 (en) * | 2006-10-11 | 2011-05-24 | Marvell Israel (M.I.S.L) Ltd. | Memory repair system and method |
US7639535B2 (en) | 2006-11-17 | 2009-12-29 | Intel Corporation | Detection and correction of defects in semiconductor memories |
KR20080090664A (ko) | 2007-04-05 | 2008-10-09 | 삼성전자주식회사 | 포스트 패키지 리페어 제어회로를 구비하는 반도체메모리장치 및 포스트 패키지 리페어 방법 |
US8127185B2 (en) * | 2009-01-23 | 2012-02-28 | Micron Technology, Inc. | Memory devices and methods for managing error regions |
US8042011B2 (en) * | 2009-04-28 | 2011-10-18 | Synopsys, Inc. | Runtime programmable BIST for testing a multi-port memory device |
US8381052B2 (en) * | 2009-11-10 | 2013-02-19 | International Business Machines Corporation | Circuit and method for efficient memory repair |
US9595350B2 (en) * | 2012-11-05 | 2017-03-14 | Nxp Usa, Inc. | Hardware-based memory initialization |
US9564245B2 (en) | 2013-12-26 | 2017-02-07 | Intel Corporation | Integrated circuit defect detection and repair |
US9548137B2 (en) | 2013-12-26 | 2017-01-17 | Intel Corporation | Integrated circuit defect detection and repair |
-
2014
- 2014-06-30 US US14/320,164 patent/US9548137B2/en active Active
- 2014-12-22 KR KR1020167013581A patent/KR101861027B1/ko active IP Right Grant
- 2014-12-22 WO PCT/US2014/072003 patent/WO2015100273A1/en active Application Filing
- 2014-12-22 EP EP14873755.4A patent/EP3087488B1/en active Active
- 2014-12-22 JP JP2016533650A patent/JP6218203B2/ja not_active Expired - Fee Related
- 2014-12-22 CN CN201480064686.9A patent/CN105745623B/zh active Active
-
2016
- 2016-12-02 US US15/368,402 patent/US9922725B2/en not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6834361B2 (en) * | 2001-04-27 | 2004-12-21 | Logicvision, Inc. | Method of testing embedded memory array and embedded memory controller for use therewith |
US7260758B1 (en) * | 2001-09-07 | 2007-08-21 | Lsi Corporation | Method and system for performing built-in self-test routines using an accumulator to store fault information |
US20080178053A1 (en) * | 2004-01-29 | 2008-07-24 | Gorman Kevin W | Hybrid built-in self test (bist) architecture for embedded memory arrays and an associated method |
CN1690724A (zh) * | 2004-04-23 | 2005-11-02 | 冲电气工业株式会社 | 测试半导体器件的电路和方法 |
WO2006055862A2 (en) * | 2004-11-18 | 2006-05-26 | Mentor Graphics Corporation | Programmable memory built-in-self-test (mbist) method and apparatus |
US20130058145A1 (en) * | 2011-09-06 | 2013-03-07 | Samsung Electronics Co., Ltd. | Memory system |
CN102982848A (zh) * | 2011-09-06 | 2013-03-20 | 三星电子株式会社 | 存储器系统 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108511029A (zh) * | 2017-02-23 | 2018-09-07 | 上海复旦微电子集团股份有限公司 | 一种fpga中双端口sram阵列的内建自测和修复系统及其方法 |
CN108511029B (zh) * | 2017-02-23 | 2022-04-05 | 上海复旦微电子集团股份有限公司 | 一种fpga中双端口sram阵列的内建自测和修复系统及其方法 |
TWI681309B (zh) * | 2018-05-10 | 2020-01-01 | 瑞昱半導體股份有限公司 | 電子裝置測試資料庫產生方法 |
US11163003B2 (en) | 2018-05-10 | 2021-11-02 | Realtek Semiconductor Corp. | Electronic device test database generating method and electronic device test database generating apparatus |
CN111143158A (zh) * | 2019-12-04 | 2020-05-12 | 武汉光谷信息技术股份有限公司 | 一种监控数据实时存储方法、系统、电子设备及存储介质 |
CN111143158B (zh) * | 2019-12-04 | 2023-05-16 | 武汉光谷信息技术股份有限公司 | 一种监控数据实时存储方法、系统、电子设备及存储介质 |
CN113900847A (zh) * | 2021-10-15 | 2022-01-07 | 深圳市金泰克半导体有限公司 | 基于fpga的内存修复系统 |
US20230245709A1 (en) * | 2022-02-01 | 2023-08-03 | Dell Products L.P. | Systems and methods for fault-resilient system management random access memory |
US11984183B2 (en) * | 2022-02-01 | 2024-05-14 | Dell Products L.P. | Systems and methods for fault-resilient system management random access memory |
CN114863985A (zh) * | 2022-04-21 | 2022-08-05 | 深圳市金泰克半导体有限公司 | 一种聚集扩散式芯片检测方法、装置、控制器及介质 |
CN117907812A (zh) * | 2024-03-20 | 2024-04-19 | 英诺达(成都)电子科技有限公司 | 电路检测方法及装置、电子设备、存储介质、程序产品 |
Also Published As
Publication number | Publication date |
---|---|
US9548137B2 (en) | 2017-01-17 |
CN105745623B (zh) | 2020-03-17 |
EP3087488B1 (en) | 2020-05-06 |
WO2015100273A1 (en) | 2015-07-02 |
KR20160078396A (ko) | 2016-07-04 |
US20170084351A1 (en) | 2017-03-23 |
EP3087488A4 (en) | 2017-12-06 |
US20150187436A1 (en) | 2015-07-02 |
KR101861027B1 (ko) | 2018-05-24 |
JP6218203B2 (ja) | 2017-10-25 |
JP2017502386A (ja) | 2017-01-19 |
EP3087488A1 (en) | 2016-11-02 |
US9922725B2 (en) | 2018-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105745623A (zh) | 集成电路缺陷检测和修复 | |
CN106663046B (zh) | 用于刷新存储器设备中的数据的系统和方法 | |
JP5984989B2 (ja) | オンチップのnand型フラッシュメモリおよびその不良ブロック管理方法 | |
CN101755307B (zh) | 基于疲劳状况刷新非易失性存储器单元 | |
US7599236B2 (en) | In-circuit Vt distribution bit counter for non-volatile memory devices | |
CN101847443B (zh) | 非易失性存储器器件和相关的编程方法 | |
US20170115884A1 (en) | Data Folding in 3D Nonvolatile Memory | |
US6922649B2 (en) | Multiple on-chip test runs and repairs for memories | |
TWI590051B (zh) | 資料儲存裝置及其資料維護方法 | |
US9564245B2 (en) | Integrated circuit defect detection and repair | |
CN108694099B (zh) | 确定用于储存器设备的不同的存储器区域的码本的方法和系统 | |
JP2011530777A (ja) | メモリデバイスおよびメモリデバイスにデータを格納する方法 | |
TWI606339B (zh) | 資料儲存裝置及其資料維護方法 | |
US9875085B2 (en) | Memory system and method of generating a seed value | |
Hsiao et al. | Built-in self-repair schemes for flash memories | |
US20150026530A1 (en) | Controller based memory evaluation | |
CN112908396A (zh) | 具有修复匹配机制的存储器装置及其操作方法 | |
Mrozek | Multi-run memory tests for pattern sensitive faults | |
JP5304030B2 (ja) | メモリテスト方法およびメモリテスト装置 | |
Chang et al. | Realizing erase-free SLC flash memory with rewritable programming design | |
US20040187050A1 (en) | Test structure and method for accurate determination of soft error of logic components | |
US11650914B2 (en) | System and method for identification of memory device based on physical unclonable function | |
KR100762597B1 (ko) | 반도체 메모리를 위한 칩 상의 프로그램가능 데이터 패턴발생기 | |
Mutkekar et al. | Defect Analysis in Memory Unit | |
Cha et al. | Low cost endurance test-pattern generation for multi-level cell flash memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |