CN104040499A - 带有基于内部表决的内置自测(bist)的多核心处理器 - Google Patents
带有基于内部表决的内置自测(bist)的多核心处理器 Download PDFInfo
- Publication number
- CN104040499A CN104040499A CN201280063683.4A CN201280063683A CN104040499A CN 104040499 A CN104040499 A CN 104040499A CN 201280063683 A CN201280063683 A CN 201280063683A CN 104040499 A CN104040499 A CN 104040499A
- Authority
- CN
- China
- Prior art keywords
- core
- fault
- scan chain
- processing
- test
- 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
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3187—Built-in tests
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3183—Generation of test inputs, e.g. test vectors, patterns or sequences
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318533—Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
- G01R31/318566—Comparators; Diagnosing the device under test
-
- 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/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
- G06F11/2236—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
- G06F11/2242—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors in multi-processor systems, e.g. one processor becoming the test master
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Semiconductor Integrated Circuits (AREA)
- Tests Of Electronic Circuits (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Multi Processors (AREA)
Abstract
一种方法和电路安排,利用布置在多核心处理器集成电路器件或芯片上的扫描逻辑进行芯片的基于内部表决的内置自测(BIST)。在芯片内部生成测试模式,并将其传送给芯片上的多个处理核心内的扫描链。在芯片上相互比较扫描链输出的测试结果,将多数表决用于识别指示故障处理核心的异常测试结果。可以将故障测试结果中的位位置用于识别扫描链中的故障锁存器和/或故障处理核心中的故障功能单元,以及可以响应该测试自动禁用故障处理核心和/或故障功能单元。
Description
技术领域
本发明一般涉及数据处理,尤其涉及处理器架构和制造的处理器芯片的内置自测(BIST)。
背景技术
随着半导体技术在时钟速度的增加方面继续缓慢地越来越接近实际极限,架构师们越来越多地把注意力放在处理器架构的并行技术上来实现性能提高。在集成电路器件,或芯片级上,往往将多个处理器核心布置在同一芯片上,以与独立处理器芯片,或在某种程度上,与完全独立计算机几乎相同的方式起作用。另外,甚至在核心内,通过使用专门管理某些类型的操作的多个执行单元来采用并行技术。在许多情况下也采用流水线技术,以便将可能花费多个时钟周期来执行的某些操作分解成几个阶段,使其它操作能够在较早的操作完成之前开始。还采用多线程技术使多个指令流能够并行地得到处理,使得在任何给定时钟周期中能够执行更综合工作。
但是,处理器芯片的复杂性增加的一个后果是所制造芯片的测试明显变得更复杂和耗时。早期集成电路器件往往具有足够的输入/输出引脚使器件的所有相关内部操作都可以得到监视,以保证该器件以其预定方式运行。但是,随着当前设计加入数百万甚至数十亿个晶体管和许多附加高级功能,提供足够的输入/输出连接以实现器件运行的直接监视是不切实际的。
为了解决这些局限性,许多集成电路器件现在将边界扫描架构加入器件的逻辑电路中,以提供对器件的许多内部电路的访问。借助于边界扫描架构,将锁存器的一条或多条串行扫描链或扫描路径与器件的外部端口耦合,以及在设计的关键点上将各个锁存器嵌入器件的逻辑电路中。锁存器当未具体配置成起扫描链的作用时,不会另外变更器件的功能。但是,当以特定模式配置锁存器时,锁存器一起起移位寄存器的作用,使得可以将数据从单个源移动到锁存器的链中来模拟不同条件,以及使得可以通过单次输出移出在器件内生成的数据。因此,借助于边界扫描架构,可以经由外部装备记录以及以后访问器件中的各种电路在任何给定时间的当前状态,以核实所制造器件的运行。
但是,需要利用外部装备进行集成电路器件的测试可能成为沉重负担,尤其对于大容量零件。由于外部测试接口的相对较低速度,往往必须在进行可能花费几分钟进行的全面测试与以较少时间进行更表面测试和存在将故障零件误识别成好零件的风险之间作出权衡。而且,需要利用外部装备往往妨碍在现场重新测试芯片来确定是否出现了新故障。
因此,在本领域中一直相当需要有效地和成本划算地测试像处理器芯片等那样的集成电路器件的方式。
发明内容
本发明通过提供利用布置在多核心处理器集成电路器件或芯片上的扫描逻辑进行芯片的基于内部表决内置自测(BIST)的方法和电路安排来解决与现有技术相关的这些和其它问题。在芯片内部生成测试模式并将其传送给芯片上的多个处理核心内的扫描链。在芯片上相互比较扫描链输出的测试结果,将多数表决用于识别指示故障处理核心的异常测试结果。在一些实施例中,将故障测试结果中的位位置用于识别扫描链中的故障锁存器和/或故障处理核心中的故障功能单元,以及在一些实施例中,可以响应该测试自动禁用故障处理核心和/或故障功能单元。
依照本发明的一个方面,对包括多个处理核心那种类型的多核心集成电路器件进行内置自测(BIST),其中每个处理核心包括一条扫描链。布置在多核心处理器集成电路器件上的扫描逻辑将测试模式传送给多个处理核心内的扫描链,并使用该扫描逻辑响应该测试模式比较多个处理核心的扫描链输出的测试结果。然后根据与多个处理核心输出的多数测试结果不同的故障处理核心的扫描链输出的测试结果识别多个处理核心当中的故障处理核心。
表征本发明的这些和其它优点和特征展示在所附的和形成其进一步部分的权利要求书中。但是,为了更好地理解本发明,以及通过其使用达到的优点和目的,应该参考附图以及描述本发明的示范性实施例的伴随描述性内容。
附图说明
图1是包括可用在依照本发明的实施例的数据处理中的示范性计算机的示范性自动化计算总机的框图;
图2是在图1的计算机中实现的示范性NOC的框图;
图3是更详细地图示来自图2的NOC的节点的示范性实现的框图;
图4是图示来自图2的NOC的IP块的示范性实现的框图;
图5是并入依照本发明的基于内部表决的BIST示范性多核心处理器芯片的框图;
图6是在图5中引用的扫描引擎的示范性实现的框图;
图7是在图5中引用的处理核心的示范性实现的框图;以及
图8是当进行依照本发明的基于内部表决的BIST时图5的多核心处理器芯片进行的操作的示范性序列的流程图。
具体实施方式
依照本发明的实施例利用布置在多核心处理器集成电路器件或芯片上的扫描逻辑进行芯片的基于内部表决内置自测(BIST)。在芯片上内部生成测试模式并将传送给芯片上的多个处理核心内的扫描链。在芯片上相互比较扫描链输出的测试结果,将多数表决用于识别指示故障处理核心的异常测试结果。
依照本发明的多核心处理器集成电路器件或芯片包括作为相互的功能复制品的多个处理核心,以便响应将相同输入输入处理核心的扫描链中,以及对处理核心计时相同数量的时钟周期,使处理核心的扫描链输出的测试结果在任何处理核心中在没有故障的情况下都相同。处理核心通常包括多个功能单元,包括例如发出单元、定点执行单元、浮点执行单元或其它辅助执行单元或加速器、像L1和/L2高速缓存那样一个或多个级别的板上高速缓存等,但要懂得的是,布置在处理核心内和能够经由BIST测试的几乎任何电路逻辑都可以被认为是用于本发明目的的功能单元。
处理核心还包括一条或多条扫描链,其通常但未必被实现成串联的多个锁存器,以便可以每个时钟周期一位地逐位将数据扫入扫描链中和从扫描链中扫出数据。就本发明而言,扫描链可以包括任何数量的锁存器,其被分组成任何数量的子集或群体,分布在任何数量的功能单元上,以及包括接收测试模式的输入端和输出从这样的测试模式中生成的测试结果的输出端。测试结果通常代表将测试模式扫描到扫描链中之后,在对处理核心或其至少一部分计时了一个或多个周期之后存储在扫描链中的数据。
布置在多核心处理器芯片内部的扫描逻辑被配置成生成测试模式,例如,如通过线性反馈移位寄存器(LFSR)或其它伪随机逻辑生成的伪随机测试模式。可替代地,扫描逻辑可以,例如,按预定顺序生成预定测试模式。预定测试模式可以通过专用逻辑生成,存储在易失性或非易失性存储器阵列中,或在测试之前装载到处理核心中。可能希望,例如,在设计过程中确定适当全面地和有效地测试特定处理核心设计的测试模式的序列,然后将那些测试模式并入扫描逻辑的设计中。
该扫描逻辑最好还包括比较逻辑,其被配置成实现根据与正在测试的处理核心输出的多数测试结果不同的那个处理核心的扫描链输出的测试结果识别故障处理核心的表决算法。换句话说,将“正确”测试结果确定为多数处理核心返回的测试结果,因此可以将返回与多数一致意见不同的测试结果的任何处理核心识别为有故障的。
此外,该比较逻辑通常随着处理核心的扫描链输出测试结果数据动态地工作,以便在实现串行扫描链的情况下,可以逐位比较扫描链的输出。这样,可以将输出与多数处理核心的一致意见不同的位的任何处理核心识别为有故障的。而且,通过监视测试结果中每个位的位置,可以识别从中获得故障位的锁存器,在处理核心中的锁存器的地点已知,例如,经由驻留在芯片上的映射表知道的实施例中,还可以识别布置了锁存器的功能单元。
在本发明的一些实施例中故障或出错功能单元的识别还可以用于自动配置多核心处理器芯片。例如,在将电子熔丝用于有选择地启用或禁用处理核心或甚至处理核心中的各个功能单元的情况下,故障功能单元的识别可以被扫描逻辑用于,例如,通过烧断电子熔丝自动禁用功能单元或处理核心。
依照本发明的扫描逻辑可以进行芯片上的所有处理核心输出的测试结果的比较,或在替代例中,可以包括配置成并行地测试处理核心的子集或群体的多个实例。例如,可以将处理核心分组成少至三个处理核心的群体,以便将返回与该群体中的其它两个处理核心不同的测试结果的处理核心识别为有故障的,提供扫描逻辑的足够多实例以便充分测试芯片上的所有处理核心。还要懂得的是,可以将公用测试模式生成逻辑用于即使将扫描逻辑的不同实例用于比较处理核心的群体,也可以向所有处理核心输出测试模式。而且,要懂得的是,在将多种类型的冗余群体的处理核心布置在相同芯片上的情况下,可以将不同测试模式用于测试不同群体的处理核心。
其它变种和修改例对于本领域的普通技术人员来说是显而易见的,因此,本发明不局限于本文讨论的特定实现。
硬件和软件环境
现在转到附图,其中相同标号在几个视图中自始至终表示相同零件,图1图示了包括可用在依照本发明的实施例的数据处理中的示范性计算机10的示范性自动化计算总机。图1的计算机10包括至少一个计算机处理器12或“CPU”,以及随机访问存储器14(“RAM”),该RAM14通过高速存储器总线16和总线适配器18与处理器12连接以及与计算机10的其它组件连接。
存储在RAM14中的是应用程序20,即,执行像,例如,文字处理、电子表格、数据库操作、视频游戏、股市模拟、原子量子过程模拟、或其它用户级应用那样的特定数据处理任务的用户级计算机程序指令的模块。存储在RAM14中的还有操作系统22。可结合本发明的实施例使用的操作系统包括UNIXTM、LinuxTM、微软Windows XPTM、AIXTM、IBM i5/OSTM、和本领域的普通技术人员可想到的其它操作系统。图1的例子中的操作系统22和应用程序20被显示在RAM14中,但这样软件的许多组件通常也存储在非易失性存储器中,例如,在盘驱动器24上。
如下面更明显看到的那样,依照本发明的实施例可以在片上网络(NOC)集成电路器件或芯片内实现,这样,计算机10被图示成包括两个示范性NOC:视频适配器26和协处理器28。NOC视频适配器26可替代地可以称为图形适配器,是专门为图形输出到像显示屏或计算机监视器那样的显示设备30而计算的I/O适配器的例子。NOC视频适配器26通过高速视频总线32、总线适配器18、和也是高速总线的前端总线34与处理器12连接。NOC协处理器28通过总线适配器18、和也是高速总线的前端总线34和36与处理器12连接。图1的NOC协处理器可以优化成,例如,在主处理器12的命令下加速特定数据处理任务。
图1的示范性NOC视频适配器26和NOC协处理器28每一个都包括NOC,该NOC包括集成处理器(“IP”)块、路由器、存储器通信控制器、和网络接口控制器,它们的细节将在下面结合图2-3作更详细讨论。NOC视频适配器和NOC协处理器每一个都最适用于使用并行处理以及需要快速随机访问共享存储器的程序。但是,从本公开中受益的本领域的普通技术人员应该懂得,本发明可以在除了NOC设备和设备架构之外的其它设备和设备架构中实现。因此本发明不局限于在NOC设备内的实现。
图1的计算机10包括通过扩展总线40和总线适配器18与处理器12和计算机10的其它组件耦合的盘驱动器适配器38。盘驱动器适配器38以盘驱动器24的形式将非易失性数据存储设备与计算机10连接,可以使用,例如,集成驱动电子设备(“IDE”)适配器、小型计算机系统接口(“SCSI”)适配器、和本领域的普通技术人员可想到的其它适配器来实现。如本领域的普通技术人员所想到,非易失性计算机存储器也可以实现成光盘驱动器、电可擦除可编程只读存储器(所谓的“EEPROM”或“闪速”存储器)、RAM驱动器等。
计算机10还包括一个或多个输入/输出(“I/O”)适配器42,它通过,例如,软件驱动器和计算机硬件实现面向用户的输入/输出,以便控制到像计算机显示屏那样的显示设备的输出,以及从像键盘和鼠标那样的用户输入设备44的用户输入。另外,计算机10还包括用于与其它计算机48数据通信和与数据通信网络50数据通信的通信适配器46。这样的数据通信可以通过RS-232连线,通过像通用串行总线(“USB”)那样的外部总线,通过像IP数据通信网络那样的数据通信网络,和以本领域的普通技术人员可想到的其它方式串行地进行。通信适配器实现一台计算机直接或通过数据通信网络将通信数据发送给另一台计算机的硬件级数据通信。适合用在计算机10中的通信适配器的例子包括用于有线拨号通信的调制解调器、用于有线数据通信网络通信的以太网(IEEE802.3)适配器、和用于无线数据通信网络通信的802.11。
为了进一步说明起见,图2展示了按照本发明实施例的示范性NOC102的功能框图。图2中的NOC是在“芯片”100上,即,在集成电路上实现的。NOC102包括分组成互连节点的集成处理器(“IP”)块104、路由器110、存储器通信控制器106、和网络接口控制器108。每个IP块104通过存储器通信控制器106和网络接口控制器108适用于路由器110。每个存储器通信控制器106控制IP块与存储器之间的通信,以及每个网络接口控制器108通过路由器110控制IP块间通信。
在NOC102中,每个IP块代表作为积木用于NOC内的数据处理的同步或异步逻辑设计的可重用单元。术语“IP块”有时被全写成“知识产权块”,其有效地将IP块指定为一方所有的设计,即,一方授权给半导体电路的其他用户或设计者的知识产权。但是,在本发明的范围内,未要求IP块受任何特定所有权支配,因此在本说明书中该术语总是被全写成“集成处理器块”。如这里所规定,IP块是可能是或可能不是知识产权的主体的逻辑、单元、或芯片布局设计的可重用单元。IP块是可以形成ASIC芯片设计或FPGA逻辑设计的逻辑核心。
通过类比描述IP块的一种方式是IP块对于NOC设计如同库对于计算机编程或分立集成电路组件对于印刷电路板设计。在依照本发明实施例的NOC中,IP块可以实现成通用门级网表,实现成完全专用或通用微处理器,或以本领域的普通技术人员可想到的其它方式实现。网表类似于高级程序应用的汇编-代码列表,是IP块逻辑功能的布尔代数表示(门、标准单元)。NOC也可以,例如,以用像Verilog或VHDL那样的硬件描述语言描述的可合成形式实现。除了网表和可合成实现之外,NOC也可以用较低级物理描述实现。诸如SERDES、PLL、DAC、ADC等的类似IP块元件可以以像GDSII那样的晶体管布局格式分布。IP块的数字元件有时也以布局格式提供。还要懂得,IP块以及依照本发明实现的其它逻辑电路可以以在各种细节水平上定义实现这样逻辑的电路安排的功能和/或布局的计算机数据文件,例如,逻辑定义程序代码的形式分发,因此,虽然已经和在下文中将在在全功能集成电路设备、利用这样设备的数据处理系统、和其它有形、物理硬件电路中实现的电路安排的背景下对本发明加以描述,但从本公开中受益的本领域的普通技术人员应该懂得,本发明也可以在程序产品内实现,以及与用于分发程序产品的计算机可读存储介质的特定类型无关地同等应用本发明。计算机可读存储介质的例子包括,但不限于,诸如易失性和非易失性存储器件、软盘、硬盘驱动器、CD-ROM、和DVD(等等)的可记录型介质。
图2的例子中的每个IP块104通过存储器通信控制器106适用于路由器110。每个存储器通信控制器是适合于在IP块与存储器之间提供数据通信的同步和异步逻辑电路的总成。IP块与存储器之间的这样通信的例子包括存储器装载指令和存储器存储指令。存储器通信控制器106将在下面参考图3作更详细描述。每个IP块104也通过网络接口控制器108适用于路由器110,网络接口控制器108控制IP块104之间通过路由器110的通信。IP块104之间的通信的例子包括并行应用中和流水线应用中在IP块之间传送数据的消息和处理数据的指令。网络接口控制器108也将在下面参考图3作更详细描述。
路由器110以及其间的相应链路118实现NOC的网络操作。链路118可以是在连接所有路由器的物理、并行导线总线上实现的分组结构。也就是说,每条链路可以在宽到足以同时容纳包括所有首标信息和有效负载数据的整个数据交换分组的导线总线上实现。如果分组结构包括,例如,64个字节,其中包括8个字节首标和56个字节的有效负载数据,则对应每条链路的导线总线是64个字节宽的512条导线。另外,每条链路可以是双向的,使得如果链路分组结构包括64个字节,则导线总线实际上包含每个路由器与网络中其每个邻居之间的1024条导线。在这样的实现中,消息可以包括不止一个分组,但每个分组精确地与导线总线的宽度一致。在替代例中,可以在只宽到足以容纳分组的一部分的导线总线上实现链路,以便可以将分组分解成多个节拍,例如,以便如果一条链路被实现成16个字节宽,或128条导线,则可以将64个字节分解成四个节拍。要懂得的是,不同实现可以根据实际物理限制以及所希望运行特性使用不同总线宽度。如果路由器与导线总线的每个部分之间的连接被称为端口,则每个路由器包括五个端口,网络上数据传输的四个方向的每一个各一个,第五个端口使路由器通过存储器通信控制器和网络接口控制器适用于IP块。
每个存储器通信控制器106控制IP块与存储器之间的通信。存储器可以包括片外主RAM112、通过存储器通信控制器106直接与IP块连接的存储器114、实现成IP块116的片上存储器、和片上高速缓存。在NOC102中,例如,片上存储器114,116的任一个都可以实现成片上高速缓冲存储器。所有这些形式的存储器都可以布置在相同地址空间、物理地址或虚拟地址中,甚至对于直接附在IP块上的存储器也是如此。因此存储器寻址消息相对于IP块可以是完全双向的,因为这样的存储器可以从网络上的任何地方的任何IP块直接寻址。IP块上的存储器116可以从那个IP块或从NOC中的任何其它IP块寻址。直接附在存储器通信控制器上的存储器114可以由通过那个存储器通信控制器适用于网络的IP块寻址—也可以从NOC中的任何地方的任何其它IP块寻址。
NOC102包括两个存储器管理单元(“MMU”)120,122,其为依照本发明实施例的NOC图示了两种可替代存储器架构。MMU120在IP块内实现,使IP块内的处理器可以在虚拟存储器中操作,同时使NOC的整个其余架构可以在物理存储器地址空间中操作。MMU122是片外实现的,通过数据通信端口124与NOC连接。端口124包括引脚和在NOC与MMU之间传导信号所需的其它互连线,以及将消息分组从NOC分组格式转换成外部MMU122所需的总线格式的足够智慧。MMU的外部地点意味着NOC的所有IP块中的所有处理器可以在虚拟存储器地址空间中操作,到片外存储器的物理地址的所有转换由片外MMU122管理。
除了使用MMU120,122图示的两种存储器架构之外,数据通信端口126还图示了可用在能够用在本发明的实施例中的NOC中的第三种存储器架构。端口126提供了NOC102的IP块104与片外存储器112之间的直接连接。如果在处理路径中没有MMU,则这种架构让NOC的所有IP块利用物理地址空间。在双向共享地址空间时,NOC的所有IP块可以通过由直接与端口126连接的IP块引导、包括装载和存储的存储器寻址消息在地址空间中访问存储器。端口126包括引脚和在NOC与片外存储器112之间传导信号所需的其它互连线,以及将消息分组从NOC分组格式转换成外部片外存储器112所需的总线格式的足够智慧。
在图2的例子中,将IP块之一指定成主接口处理器128。主接口处理器128提供NOC与可以安装NOC的主计算机10之间的接口,并且还对NOC上的其它IP块提供数据处理服务,包括,例如,从主计算机接收和在IP块之间分派NOC数据处理请求。NOC可以,例如,如上面参考图1所述将视频图形适配器26或协处理器28实现在较大型计算机10上。在图2的例子中,主接口处理器128通过数据通信端口130与较大型主计算机连接。端口130包括引脚和在NOC与主计算机10之间传导信号所需的其它互连线,以及将消息分组从NOC分组格式转换成主计算机10所需的总线格式的足够智慧。在图1中的计算机中的NOC协处理器的例子中,这样的端口将提供NOC协处理器28的链路结构与NOC协处理器28与总线适配器18之间的前端总线36所需的协议之间的数据通信格式转换。
图3接着图示了更详细地图示在用132笼统图示的NOC102中的IP块104、存储器通信控制器106、网络接口控制器108和路由器110内实现的组件的的功能框图。IP块104包括计算机处理器134和I/O功能136。在这个例子中,计算机存储器用IP块104中的一片随机访问存储器(“RAM”)138表示。存储器如上面参考图2所述,可以占据每个IP块上的内容可从NOC中的任何IP块访问的几段物理地址空间。每个IP块中的处理器134、I/O能力136、和存储器138有效地将IP块实现成一般可编程微型计算机。但是,如上所述,在本发明的范围内,IP块一般代表作为积木用于NOC内的数据处理的同步或异步逻辑的可重用单元。因此,将IP块实现成一般可编程微型计算机尽管是可用于说明目的的普通实施例,但不限制本发明。
在图3的NOC102中,每个存储器通信控制器106包括多个存储器通信执行引擎140。使每个存储器通信执行引擎140都能够执行来自IP块104的存储通信指令,包括网络与IP块104之间的双向存储器通信指令流141,142,144。存储器通信控制器106执行的存储器通信指令不仅可以源自通过特定存储器通信控制器适合于路由器的IP块,而且可以源自NOC102中的任何地方的任何IP块104。也就是说,NOC中的任何IP块都可以生成存储器通信指令,并通过NOC的路由器将那种存储器通信指令发送给与另一个IP块相关联的另一个存储器通信控制器以便执行那种存储器通信指令。这样的存储器通信指令可以包括,例如,转换后备缓冲器控制指令、高速缓存控制指令、屏障指令、和存储器装载和存储指令。
使每个存储器通信执行引擎140能够分开地和与其它存储器通信执行引擎并行地执行完整存储器通信指令。存储器通信执行引擎实现为存储器通信指令的并发吞吐量优化的可增减存储器事务处理器。存储器通信控制器106支持所有都同时运行的多个存储器通信执行引擎140以便同时执行多条存储器通信指令。新存储器通信指令由存储器通信控制器106分配给存储器通信执行引擎140,存储器通信执行引擎140可以同时接受多个响应事件。在这个例子中,所有存储器通信执行引擎140都是相同的。因此,增减存储器通信控制器106可以同时管理的存储器通信指令的数量通过增减存储器通信执行引擎140的数量来实现。
在图3的NOC102中,使每个网络接口控制器108能够将通信指令从命令格式转换成通过路由器110在IP块104之间传输的网络分组格式。通信指令可以由IP块104或由存储器通信控制器106以命令格式明确表达,并以命令格式提供给网络接口控制器108。该命令格式可以是与IP块104和存储器通信控制器106的架构寄存器堆相容的本机格式。网络分组格式通常是通过网络的路由110传输所需的格式。每个这样的消息由一个或多个网络分组组成。在网络接口控制器中从命令格式转换成分组格式的这样通信指令的例子包括IP块与存储器之间的存储器装载指令和存储器存储指令。这样的通信指令还可以包括在并行应用中和在流水线应用中在传送数据的IP块之间发送消息的通信指令和在IP块之间处理数据的指令。
在图3的NOC102中,使每个IP块都能够通过IP块的存储器通信控制器向和从存储器发送基于存储器地址的通信物,然后通过它的网络接口控制器也发送给网络。基于存储器地址的通信物是由IP块的存储器通信控制器的存储器通信执行引擎执行、像装载指令或存储指令那样的存储器访问指令。这样基于存储器地址的通信物通常源自IP块,以命令格式明确表达,并转交给存储器通信控制器加以执行。
许多基于存储器地址的通信物利用消息业务来进行,因为要访问的某个存储器可能处在物理存储器地址空间中的某个地方,片上或片外,直接附在NOC中的某个存储器通信控制器上,或最终通过NOC的某个IP块访问—IP块与该NOC无关地始发某个特定基于存储器地址的通信物。因此,在NOC102中,将利用消息业务进行的所有基于存储器地址通信物从存储器通信控制器传递到相关网络接口控制器,以便从命令格式转换成分组格式和在消息中通过网络发送。在转换成分组格式时,网络接口控制器还依赖于基于存储器地址的通信物要访问的一个或几个存储器地址地识别分组的网络地址。利用存储器地址寻址基于存储器地址的消息。每个存储器地址由网络接口控制器映射成网络地址,通常,负责某个范围物理存储器地址的存储器通信控制器的网络地点。存储器通信控制器106的网络地点自然也是存储器通信控制器的相关路由器110、网络接口控制器108、IP块104的网络地点。每个网络接口控制器内的指令转换逻辑150能够为了通过NOC发送基于存储器地址通信物的目的将存储器地址转换成网络地址。
一旦从网络的路由器110接收到消息业务,每个网络接口控制器108就检查每个分组是否有存储器指令。将包含存储器指令的每个分组交给与正在接收网络接口控制器相关联的存储器通信控制器106,存储器通信控制器106在将分组的其余有效负载发送给IP块作进一步处理之前执行存储器指令。这样,在IP块开始执行依赖于特定存储器内容的来自消息的指令之前,总是准备好存储器内容来支持IP块的数据处理。
在图3的NOC102中,使每个IP块104能够绕过它的存储器通信控制器106,通过IP块的网络接口控制器直接将IP块间的网络寻址通信物146发送给网络。网络寻址通信物是通过网络地址指向另一个IF块的消息。如本领域的普通技术人员所想到,这样的消息在流水线应用中发送工作数据,在SIMD应用中在IP块之间发送用于单程序处理的多个数据等等。这样的消息与基于存储器地址通信物的不同之处在于它们一开始就被始发IP块网络寻址的,该始发IP块知道通过NOC的路由器将消息引向的网络地址。这样的网络寻址通信物由IP块通过I/O功能136以命令格式直接传递给IP块的网络接口控制器,然后由网络接口控制器转换成分组格式,并通过NOC的路由器发送给另一个IP块。这样的网络寻址通信物146是双向的,依赖于它们在某个特定应用中的使用,潜在地转给NOC的每个IP块和从NOC的每个IP块转出。但是,使每个网络接口控制器都能够向和从相关路由器发送和接收这样的通信物,以及使每个网络接口控制器都能够绕过相关存储器通信控制器106地直接向和从相关IP块发送和接收这样的通信物。
还使图3的例子中的每个网络接口控制器108都能够在网络上实现通过类型表征网络分组的虚拟通道。每个网络接口控制器108包括按类型分类每条通信指令,以及在以分组形式将指令转交给路由器110以便在NOC上发送之前将指令的类型记录在网络分组格式的字段中的虚拟通道实现逻辑148。通信指令类型的例子包括引向高速缓存的IP块间基于网络地址消息、请求消息、对请求消息的响应、失效消息;存储器装载和存储消息;以及对存储器装载消息的响应等。
图3的例子中的每个路由器110包括路由逻辑152、虚拟通道控制逻辑154、和虚拟通道缓冲器156。路由逻辑152通常被实现成为由路由器110、链路118、和路由器之间的总线导线形成的网络中的数据通信实现数据通信协议栈的同步和异步逻辑的网络。路由逻辑152包括本领域的普通技术人员可以将片外网络与路由表相关联的功能、在至少一些实施例中路由表被认为太慢了,不方便用在NOC中。实现成同步和异步逻辑的网络的路由逻辑可以配置成与单个时钟周期一样快地作出路由决定。本例中的路由逻辑通过为转发在路由器中接收的每个分组选择一个端口来传送分组。每个分组包含分组要去往的网络地址。
在上面描述基于存储器地址通信物中,每个存储器地址被描述成由网络接口控制器映射到网络地址,即,存储器通信控制器的网络地点。存储器通信控制器106的网络地点自然也是那个存储器通信控制器的相关路由器110、网络接口控制器108、和IP块104的网络地点。因此,在IP块间,或基于网络地址的通信物中,应用级数据处理通常也将网络地址视作由NOC的路由器、链路、和总线导线形成的网络内IP块的地点。图2图示了这样网络的一种组织是行和列的网格,其中每个网络地点可以实现成,例如,网格的每组相关路由器、IP块、存储器通信控制器、和网络接口控制器的唯一标识符或网格中每个这样组的x,y坐标。0000
在图3的NOC102中,每个路由器110实现两个或更多个虚拟通信通道,其中每个虚拟通信通道通过通信类型来表征。通信指令类型,因此虚拟通道类型包括上述的那些消息:引向高速缓存的IP块间基于网络地址消息、请求消息、对请求消息的响应、失效消息;存储器装载和存储消息;以及对存储器装载消息的响应等。为了支持虚拟通道,图3的例子中的每个路由器110还包括虚拟通道控制逻辑154和虚拟通道缓冲器156。虚拟通道控制逻辑154检查每个接收的分组是否具有其指定的通信类型,并将每个分组放入那种通信类型的输出虚拟通道缓冲器中,以便通过端口发送给NOC上的相邻路由器。
每个虚拟通道缓冲器156具有有限存储空间。当在较短时段内接收到许多分组时,可以填满虚拟通道缓冲器—使得再也不能将分组放入缓冲器中。在其它协议下,到达缓冲器充满的虚拟通道的分组将被丢弃。但是,利用总线导线的控制信号使本例中的每个虚拟通道缓冲器156能够通过虚拟通道控制逻辑劝告周围路由器暂停在虚拟通道中的发送,即,暂停特定通信类型的分组的发送。当如此暂停一个虚拟通道时,所有其它虚拟通道不受影响—可以继续满负荷运行。控制信号一直通过每个路由器有线传回到每个路由器的相关网络接口控制器108。每个网络接口控制器被配置成一旦接收到这样的信号,就拒绝从它的相关存储器通信控制器106或从它的相关IP块104接收暂停虚拟通道的通信指令。这样,虚拟通道的暂停影响一直回溯到始发IP块、实现该虚拟通道的所有硬件。
暂停虚拟通道中的分组发送的一种效果是再也不会丢弃分组。当路由器遇到在像,例如,互联网协议那样的一些不可靠协议中可能丢弃分组的状况时,图3的例子中的路由器可以通过它们的虚拟通道缓冲器156和它们的虚拟通道控制逻辑154暂停虚拟通道中的所有分组发送,直到缓冲空间再次可用,从而没有任何必要丢弃分组。因此,图3的NOC可以利用极薄一层硬件来实现高度可靠的网络通信协议。
图3的示范性NOC还可以配置成保持片上和片外存储器高速缓存两者之间的高速缓存一致性。每个NOC可以支持每一个可以针对相同底层存储器地址空间操作的多个高速缓存。例如,高速缓存可以由IP块,由存储器通信控制器,或由NOC外部的高速缓存控制器来控制。图2的例子中的片上存储器通信控制器114,116的任一个也可以实现成片上高速缓存,以及在本发明的范围内,高速缓冲存储器也可以片外实现。
图示在图3中的每个路由器110包括五个端口,即,通过总线导线118与其它路由器连接的四个端口158A-D、和通过网络接口控制器108和存储器通信控制器106将每个路由器与它的相关IP块104连接的第五端口160。可以从图2和3中的图示中看出,NOC102的路由器110和链路118形成垂直和水平链路连接每个路由器中的垂直和水平端口的网状网络。在图3的图示中,例如,端口158A,158B,和160被称为垂直端口,端口158B和158D被称为水平端口。
图4接着以另一种方式图示了实现成划分成发出或指令单元(IU)162、执行单元(XU)164和辅助执行单元(AXU)166的处理单元、依照本发明的IP块104的一种示范性实现。在图示的实现中,IU162包括从L1指令高速缓存(iCHCHE)170接收指令的多个指令缓冲器168。每个指令缓冲器168专用于多个,例如,四个对称多线程(SMT)硬件线程之一。有效到真实地址转换单元(iERAT)172与iCHCHE170耦合,用于将来自多个线程取出定序器174的指令取出请求转换成从较低级存储器中检索指令的真实地址。每个线程取出定序器174专用于特定硬件线程,用于保证相关线程要执行的指令被取到iCHCHE中以便分派给合适执行单元。也如图4所示,取到指令缓冲器168中的指令也可以通过分支预测逻辑176监视,分支预测逻辑176向每个线程取出定序器174提供提示,以便使执行线程时分支引起的指令高速缓存丢失最少。
IU162还包括专用于每个硬件线程、和配置成解决依赖性问题和控制指令从指令缓冲器168到XU164的发出的依赖性/发出逻辑块178。另外,在图示的实施例中,在AXU166中配备了单独依赖性/发出逻辑180,因此能够分开不同线程同时发给XU164和AXU166的指令。在一个可替代实施例中,可以将逻辑180布置在IU162中,或可以完全省略逻辑180,以便使逻辑178将指令发给AXU166。
XU164被实现成定点执行单元,包括与定点逻辑184、分支逻辑186和/装载/存储逻辑188耦合的一组通用寄存器(GPR)182。装载/存储逻辑188与L1数据高速缓存(dCACHE)190耦合,由dERAT逻辑192提供有效到真实地址转换。XU164可以配置成实现几乎任何指令集,例如,32b或64bPowerPC指令集的全部或一部分。
AXU166起包括专用依赖性/发出逻辑180以及一个或多个执行块192的辅助执行单元的作用。AXU166可以包括任何数量的执行块,以及可以实现几乎任何类型的执行单元,例如,浮点单元、或像加密/解密单元、协处理器、矢量处理单元、图形处理单元、XML处理单元等那样的一个或多个专门执行单元。在图示的实施例中,AXU166包括与XU164的高速辅助接口,例如,以便支持AXU架构状态与XU架构状态之间的直接移动。
与IP块104的通信可以经由与NOC102耦合的网络接口控制器108,以上面结合图2所讨论的方式管理。例如,访问L2高速缓冲存储器的基于地址通信可以与基于消息通信一起提供。例如,每个IP块104可以包括专用输入盒和/或输出盒,以便管理IP块之间的节点间通信。
本发明的实施例可以在上面结合图1-4所述的硬件和软件环境内实现。但是,从本公开中受益的本领域的普通技术人员应该懂得,本发明可以在众多不同环境中实现,以及可以不偏离本发明的精神和范围地对上述的硬件和软件实施例作出其它修改。这样,本发明不局限于本文公开的特定硬件和软件环境。
基于内部表决的BIST
在现代多核心处理器芯片和其它片上系统(SOC)上,通常存在相同处理核心的许多重复副本,预计重复副本的数量从数十个核心增加到数百个核心或更多。已经发现,可以平衡这种重复硬件以实现更快、更精确的硬件BIST。尤其,通过将相同初始值扫入多个核心中,计时核心,然后扫出数据并比较结果,可以将表决方案用于确定硬件是否坏了。只要至少使用三个核心,就可以识别具有出错特征的故障核心。而且,通过比较那些出错特征,可以确切地识别哪个锁存器出错了,以及如果出错锁存器被识别出带有特定功能单元,则也可以识别那个出错功能单元,以及如果需要的话,可以自动禁用该出错功能单元。
在依照本发明的实施例中,初始扫入核心中可以通过JTAG端口和使用板上自动测试模式生成(ATPG)逻辑生成预定序列的测试模式来启动。可替代地,可以,例如,使用板上硬件线性反馈移位寄存器(LFSR)生成伪随机测试模式。这样的话,将测试与任何外部测试仪装备分开,并且使测试能够往往以比需要在测试仪与芯片之间传送测试模式和/或测试结果所完成的测试快得多的速率,脱离昂贵测试仪地进行。在一些实施例中,也可以在现场,以及在芯片被制造和包装之后进行测试。
通过进行这种水平的测试以及自动确定出错锁存器,往往可以识别核心出错的特定区域。而且,取决于出错地点,通过避开指令,禁用功能单元或功能单元的某些区域(例如,对于像板上高速缓存那样的存储器阵列),或使内部锁存器处理器可以围绕出错逻辑组件工作,可以将出错核心配置成避开那个逻辑。
此外,在一些实施例中,本文所述的BIST进程可以并行地跨过设计中的核心的多个群体运行。通过让硬件输出表决和比较,可以降低对预先硅测试模式生成和测试的依赖性,因为往往不要求拥有预先计算的输出测试模式。这也可能使更多的测试模式得以生成,或使测试模式可以动态地改变,以改善对设计的特定部分的测试。
现在转到图5,数据处理系统被图示成加入了包括多个处理核心202的多核心处理器芯片200。如本图所图示,一些处理核心可能被指定成用于特殊目的,例如,服务处理器204,而一些处理核心可以与冗余核心206一样未被使用或者是备用的。在本发明的一个实施例中,例如,可能希望在芯片200上制造18个处理核心,意图是含有有效使用的16个功能核心和一个服务处理器,以及一个无效的备用核心。然后,在BIST期间,如果确定某个处理核心有故障,则可以使那个核心失效,激活该备用核心以便用作功能核心。此外,在确定某个处理核心局部故障的情况下,例如,确定浮点或其它辅助功能单元有故障,但该核心另外适合用作服务处理器的情况下,如果有必要,可以将那个局部故障核心用作服务处理器。要懂得的是,可以不偏离本发明的精神和范围地实现不同数量的功能核心、备用核心、服务处理器等。
为了实现依照本发明的基于内部表决的BIST,处理器芯片200包括扫描逻辑,其包括,例如,扫描引擎208、故障表202和一根或多根电子熔丝212。另外,可以使用,例如,使用联合测试自动化组(JTAG)标准实现的传统测试端口213向,例如,外部测试装备提供对扫描逻辑的外部访问。
图6图示了扫描引擎208的一部分的一种示范性实现。在这种实现中,扫描引擎208被配置成以三个为一群测试处理核心202,这样,在该图中图示了与三个处理核心202A,202B和202C的每一个中的扫描链214的输入端和输出端的连接。每条扫描链214通常包括可以分组在一起和另外可以分散在每个处理核心中的多个功能单元上的多个锁存器。要懂得的是,对于包括三个处理核心的处理器芯片,图6实现了对那个芯片进行基于内部表决BIST所需的所有比较逻辑。对于包括不止三个处理核心的处理器芯片,可以复制图示在图6中的扫描引擎208的至少一部分以管理三个处理核心的其它群体。在替代例中,可以比较不止三个处理核心的测试结果,以识别故障处理核心和其中的锁存器。
此外,在这种实现中,扫描链是具有允许以每个时钟周期一位的速率将数据扫入扫描链中和从扫描链中扫出数据的单位输入端和单位输出端的串行扫描链。但是,要懂得的是,本发明不局限于本文公开的特定扫描链实现。
扫描引擎208可以包括耦合成将相同测试模式输出到每个处理核心202A-C的扫描链214的输入端的LFSR216和确定性测试模式发生器218之一或两者。前者可以用于生成伪随机测试模式,而后者可以用于生成测试模式的确定性序列。在一些实施例中,只利用LFSR216和发生器218之一。测试模式的确定性序列可用于,例如,应用为特定处理器架构具体设计的测试模式来保证设计的有效和全面测试。另一方面,伪随机测试在性质上可能更强有力,但要懂得的是,由于测试发生在处理器芯片的内部,以及不依靠任何外部测试装备,所以可以进行测试的速度要快得多,因此可以在与另外可以经由外部测试装备所应用相同的时间帧中应用数量大得多的测试模式,因此在许多情况下使用伪随机测试模式仍然可以达到足够的测试覆盖面。还要懂得的是,可以将单个测试模式发生器应用于处理器芯片中的所有处理核心,或可以将不同测试模式发生器用于处理核心的不同群体。
在这种实现中,故障表210被实现成为每个处理核心存储那个核心的扫描链中的第一故障锁存器的地点的数据结构。这样,故障表210包括在图6中分别表示成PCA,PCB和PCC、分别与处理核心202A-C相关联的至少一个存储元件。要懂得的是,可以为另外处理核心提供另外存储元件,以及在一些实施例中,可以为并行测试的处理核心的其它群体复制故障表210,或可以将单个数据结构用于为处理核心的多个群体存储测试结果。
扫描引擎208还包括比较逻辑,其包括,例如,响应处理核心202A-C中的扫描链的单位输出之间的任何失配,维持失配信号224的一对XNOR门220,221和NAND门222。XNOR门220对处理核心202A和202B的扫描链输出进行异或运算,而XNOR门221对处理核心202B和202C的扫描链输出进行异或运算。然后使XNOR门220,221的输出馈入NAND门222中,以便每当处理核心202A-C输出的所有位不匹配时,维持到故障表210的失配信号224。
比较逻辑还包括核心ID逻辑226,它也接收处理核心202A-C的输出,并确定处理核心当中哪一个正在输出与多数处理核心(这里,两个)输出的“一致”正确位不同的位。逻辑226将三个选择信号输出到故障表210,每个处理核心202A-C各一个,每当相关处理核心是异常者,即,那个位的故障处理核心时就维持选择信号。另外,计数器228用于生成与每条扫描链214中的位位置相对应或要不然相关联的数值,以便允许将失配位的地点与故障处理核心的扫描链中的锁存器相关联。还将计数器228的数值输出到故障表210。
将比较逻辑配置成实现任何数量N的处理核心当中的多数表决,确定异常处理核心,确定N个处理核心当中的一致正确结果,和管理计数器值或其它锁存器/位位置标识符,跨过多个群体的处理核心地复制这样的逻辑都在从本公开中受益的本领域的普通技术人员的能力之内。这样,本发明不局限于本文公开的特定配置。
故障表210被配置成响应失配信号224的维持,将计数器228的当前值存储在与如通过由核心ID逻辑226维持的相关启用信号选择的异常处理核心202A-C相对应的存储元件中。在这种实现中,故障表210存储与为每个处理核心202A-C检测的第一故障锁存器相对应的计数器值,以及如图6所示,处理核心202A和202C被识别成有故障的,而处理核心202B没有。
将计数器228与扫描链中的锁存器相关联的方式在不同实施例中可能不同。例如,图7图示了包括指令或发出单元(IU)230、L1高速缓存232、定点执行单元(XU)234和浮点执行单元(FPU)236的示范性处理核心202。在这种实现中,将扫描链214划分成分别布置在IU230、L1高速缓存232、XU234和FPU236中的四个锁存器群238,240,242和244。可以将映射数据结构,例如,映射表246加入扫描引擎中,以便使扫描引擎能够确定扫描链214中的特定锁存器或位位置布置在哪个功能单元内。因此,如图7所示,锁存器/位位置1-2000可以对应于IU230,锁存器/位位置2001-3000可以对应于L1高速缓存232,锁存器/位位置3001-6000可以对应于XU234,以及锁存器/位位置6001-10000可以对应于FPU236。
通过将计数器228(图6)与扫描链214中的锁存器/位位置相关联,扫描引擎可以根据处理核心中的故障锁存器的检测,将那个锁存器/位位置映射到处理核心202中的功能单元,从而识别处理核心中的故障功能单元(例如,短暂地返回到图6,处理核心202A的IU和处理核心202C的L1高速缓存)。此外,在一些实施例中,得知故障功能单元可以使扫描引擎可以自动禁用那个功能单元或处理核心,或要不然尝试自动重新配置处理器芯片以便围绕故障功能单元工作。但是,在其它实施例中,将锁存器/位位置映射到功能单元可能在外部测试装备中实现,从而只将锁存器/位位置存储在处理器芯片的板上,以及片外地进行故障功能单元的确定。
图8图示了为了进行依照本发明的基于内部表决的BIST,由处理器芯片200(图5)的扫描引擎208进行的操作250的示范性序列。在这种实现中,假设所有处理核心接收相同测试模式。这样,在方框252中,将无论是伪随机测试模式还是预定测试模式的测试模式扫描或计时到所有处理核心的扫描链中。接着,对处理核心计时N(一个或更多个)周期(方框254),以便测试处理核心对输入测试模式的响应,在N个时钟周期之后,在方框256中停止计时。
接着,在方框258中,将计数器位位置复位成与从扫描链输出的第一锁存器或位位置相对应的数值。然后,在方框260中,从每个处理核心中的扫描链中逐位地计时或扫出测试结果,以便对其进行逐位比较。只要从扫描链输出的所有位都相互匹配,则方框262就将控制传递给方框264,将计数器递增(或如果合适的话,递减)到与扫描链中的下一个锁存器/位位置相对应的数值。方框266然后将控制返还给方框260,以便继续扫出结果。但是,响应扫描引擎中的比较逻辑得出的测试结果位之间的任何失配,方框262将控制传递给方框268,以便将故障存储在故障表中,例如,通过将当前计数器值存储在与异常处理核心相对应的存储元件中。然后将控制传递给方框264,以便更新计数器和继续扫出测试结果。
一旦扫出测试结果的所有位,方框266就将控制传递给方框270,以确定是否仍然应用另外的测试模式。对于伪随机测试模式,方框270可以在预定种测试模式之后暂停测试。对于预定序列的测试模式,一旦应用了所希望序列中的所有测试模式,方框270就可以暂停测试。因此,如果需要应用另外测试模式,则方框270将控制返还给方框252以便在新测试模式下扫描。
但是,一旦应用了所有测试模式,就结束测试,方框270可选地将控制传递给方框272以便编程芯片。编程芯片通常包括自动禁用芯片的一些部分,或存储外部测试装备可以检索和用于以后禁用芯片的一些部件,或完全废弃芯片的数据。
编程芯片可以包括,例如,访问映射表和自动禁用识别为有故障的处理核心中的任何故障功能单元。该编程还可以包括完全禁用处理核心和/重新映射另一个处理核心(例如,备用或冗余核心)来管理原来指定给故障处理核心的功能。该编程还可以包括选择故障处理核心来管理专门任务,例如,起服务处理器的作用。要懂得的是,可以响应在处理核心中的不同功能单元中检测的故障采取不同行动,例如,处理核心在没有浮点功能单元的情况下可能仍然能够以降低的能力起作用。而在没有发出单元的情况下可能完全无用。
还要懂得的是,可以在不同粒度水平上定义功能单元。例如,可以将高速缓存或其它板上存储器划分成多个功能单元,例如,如果发现高速缓存的特定部分有故障,则该高速缓存可能仍然有效,但由于高速缓存的一部分被识别为有故障,所以尺寸缩小了。作为另一个例子,执行单元的不同部分可以管理不同类型的指令,执行单元的一部分中的故障可能导致只有那个部分被禁用,处理核心限制涉及执行单元的那个部分管理的任何指令的软件,但仍然被允许管理其它类型的指令。此外,可以分层定义功能单元,某些功能单元可以包含在其它功能单元中。因此,例如,发出单元中的分支预测单元可能被识别成有故障,但仍然允许发出单元禁用分支预测单元地操作。
编程芯片还可以包括将测试结果存储在非易失性存储器中,例如,通过存储故障锁存器、功能单元和/或处理核心的故障代码或标识。该非易失性存储器可以实现成,例如,电子熔丝,或以在本领域中已知的其它方式实现。
还要懂得的是,可以将其它数据结构用于存储依照本发明的故障数据。例如,可以利用电子熔丝来实现故障表,以便只识别每个处理核心中的第一故障锁存器。在替代例中,故障表或其它数据结构可以存储将每个检测故障(包括在给定处理核心中检测的多个故障)映射到特定处理核心和/或功能单元的多个项目。数据结构还可以存储功能单元标识符而不是计数器值,或如果有的话,可以简单地标识哪个处理核心有故障。故障数据结构还可以兼作启用电路,以便将故障登记在功能单元和/或处理核心中可以导致为那个功能单元和/或处理核心设置指示启用还是禁用那个特定单元/核心的标志。
依照本发明的实施例因此提供了超过传统测试方法的许多优点。通过在处理器芯片中内部实现BIST,可以比必须在芯片与外部测试装备之间传送测试模式和/或测试结果时可能有的速度快得多地进行测试。在许多制造环境中,各个处理器芯片停留在外部测试装备上的时间越长,吞吐量就越小,制造成本就越高,缩小这个时间可以提高吞吐量和降低单位成本。通过实现表决或比较逻辑,无需模拟或要不然事先确定给定测试模式的“正确”结果,因为正确性仅仅基于多数处理核心作为它们各自的结果输出的东西。而且,通过识别故障处理核心和/或故障功能单元,包含故障处理核心和/或故障功能单元的许多芯片仍然可能被重新配置成以降低的能力操作,而不是被完全废弃。
可以不偏离本发明的精神和范围地对公开的实施例作出各种修改。因此,本发明取决于本文所附的权利要求书。
Claims (25)
1.一种电路安排,包含:
布置在多核心集成电路器件上的多个处理核心,每个处理核心包括一条扫描链;以及
布置在所述多核心集成电路器件上的扫描逻辑,其被配置成将测试模式传送给所述多个处理核心的扫描链,并响应该测试模式比较所述多个处理核心的扫描链输出的测试结果,其中所述扫描逻辑被进一步配置成根据与所述多个处理核心输出的多数测试结果不同的故障处理核心的扫描链输出的测试结果,识别所述多个处理核心当中的故障处理核心。
2.如权利要求1所述的电路安排,其中所述扫描链是串行扫描链,以及其中所述扫描逻辑被配置成进行所述多个处理核心的扫描链输出的测试结果的逐位比较。
3.如权利要求2所述的电路安排,其中所述扫描链的每一条包括串行地相互耦合地多个锁存器,以及其中所述扫描逻辑被进一步配置成根据与所述多个处理核心输出的多数测试结果不同的测试结果中的位的位置,识别故障处理核心中的故障锁存器。
4.如权利要求3所述的电路安排,其中所述扫描链的每一条被配置成每次一个位地输出测试结果,以及其中所述扫描逻辑被配置成与接收测试结果的每个位相关联地递增计数器,以便使用所述计数器来识别故障锁存器。
5.如权利要求4所述的电路安排,进一步包含故障数据结构,其中所述扫描逻辑被配置成与识别与所述多个处理核心输出的多数测试结果不同的故障处理核心的测试结果中的位相关联地,将所述计数器的值存储在所述故障数据结构中。
6.如权利要求5所述的电路安排,其中所述故障数据结构包括多个存储元件,每个存储元件与所述多个处理核心当中的一个处理核心相关联,以及其中该扫描逻辑被配置成将计数器的数值存储在与故障处理核心相关联的存储元件中。
7.如权利要求6所述的电路安排,其中所述故障数据结构包括多个项目,其中所述扫描逻辑被配置成响应多个处理核心的任何一个检测的每个故障,将与所述故障相关联的计数器值存储在所述故障数据结构中的一个项目中。
8.如权利要求5所述的电路安排,其中所述故障数据结构包含多条电子熔丝。
9.如权利要求3所述的电路安排,其中每个处理核心的扫描链中的多个锁存器被布置在所述处理核心的多个功能单元中,以及其中所述扫描逻辑被配置成响应识别出故障锁存器来识别故障功能单元。
10.如权利要求9所述的电路安排,其中所述扫描逻辑被配置响应识别出故障功能单元来自动禁用所述故障功能单元。
11.如权利要求10所述的电路安排,其中所述扫描逻辑被配置通过烧断与所述故障功能单元相关联的电子熔丝来自动禁用所述故障功能单元。
12.如权利要求3所述的电路安排,其中所述扫描逻辑被配置将多种测试模式传送给所述多个处理核心,以及其中所述扫描逻辑被配置成对于每种测试模式:
计时进入所述多个处理核心的扫描链中的测试模式;
对多个处理核心计时所述多个处理核心;以及
计时出自所述多个处理核心的扫描链的测试结果。
13.如权利要求12所述的电路安排,其中所述扫描逻辑包括配置成生成多种伪随机测试模式的伪随机逻辑。
14.如权利要求12所述的电路安排,其中所述扫描逻辑被配置成将预定序列的测试模式传送给所述多个处理核心。
15.如权利要求1所述的电路安排,其中所述扫描逻辑被配置成比较布置在所述多核心集成电路器件上的所有处理核心的扫描链输出的测试结果。
16.如权利要求1所述的电路安排,其中所述扫描逻辑被配置成相互并行地进行多次比较,其中每次比较比较布置在所述多核心集成电路器件上的处理核心的子集的扫描链输出的测试结果。
17.一种集成电路器件,其包括如权利要求1所述的电路安排。
18.一种程序产品,其包含计算机可读介质和存储在该计算机可读介质上和定义如权利要求1所述的电路安排的逻辑定义程序代码。
19.一种进行包括多个处理核心的多核心集成电路器件的内置自测(BIST)的方法,其中每个处理核心包括一条扫描链,所述方法包含:
使用布置在所述多核心集成电路器件上的扫描逻辑,将测试模式传送给所述多个处理核心的扫描链;
使用所述扫描逻辑,响应所述测试模式比较所述多个处理核心的扫描链输出的测试结果;以及
根据与所述多个处理核心输出的多数测试结果不同的故障处理核心的扫描链输出的测试结果,识别所述多个处理核心当中的故障处理核心。
20.如权利要求19所述的方法,其中所述扫描链是串行扫描链,其中比较测试结果包括进行所述多个处理核心的扫描链输出的测试结果的逐位比较,其中所述扫描链的每一条包括串行地相互耦合地多个锁存器,以及其中所述方法进一步包含根据与所述多个处理核心输出的多数测试结果不同的测试结果中的位的位置,识别所述故障处理核心中的故障锁存器。
21.如权利要求20所述的方法,进一步包含将与位位置相关联的值存储在故障数据结构中。
22.如权利要求21所述的方法,其中每个处理核心的扫描链中的所述多个锁存器被布置在所述处理核心的多个功能单元中,所述方法进一步包含响应识别出所述故障锁存器来识别故障功能单元。
23.如权利要求22所述的方法,进一步包含响应识别出所述故障功能单元来自动禁用故障所述功能单元。
24.如权利要求19所述的方法,进一步包含利用所述扫描逻辑生成多种伪随机测试模式,以及将所述多种伪随机测试模式传送给所述多个处理核心。
25.如权利要求19所述的方法,进一步包含利用所述扫描逻辑生成多种预定序列的测试模式,以及将所述预定序列的测试模式传送给所述多个处理核心。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/330,921 | 2011-12-20 | ||
US13/330,921 US8856602B2 (en) | 2011-12-20 | 2011-12-20 | Multi-core processor with internal voting-based built in self test (BIST) |
PCT/CN2012/084175 WO2013091446A1 (en) | 2011-12-20 | 2012-11-07 | Multi-core processor with internal voting-based built in self test (bist) |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104040499A true CN104040499A (zh) | 2014-09-10 |
CN104040499B CN104040499B (zh) | 2017-09-12 |
Family
ID=48611507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280063683.4A Active CN104040499B (zh) | 2011-12-20 | 2012-11-07 | 带有基于内部表决的内置自测(bist)的多核心处理器 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8856602B2 (zh) |
JP (1) | JP2015509183A (zh) |
CN (1) | CN104040499B (zh) |
DE (1) | DE112012005320T5 (zh) |
GB (1) | GB2511972B (zh) |
WO (1) | WO2013091446A1 (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105629148A (zh) * | 2014-10-28 | 2016-06-01 | 国际商业机器公司 | 测试电路中的多个模块的测试方法和测试设备 |
CN106991022A (zh) * | 2017-03-07 | 2017-07-28 | 记忆科技(深圳)有限公司 | 一种基于扫描链的芯片分析方法 |
CN107544017A (zh) * | 2017-07-12 | 2018-01-05 | 清华大学 | 基于向量压缩的低功耗加权伪随机测试方法及相关设备 |
CN108600040A (zh) * | 2018-03-16 | 2018-09-28 | 国电南瑞科技股份有限公司 | 一种基于高可用检测节点的分布式系统节点故障检测方法 |
CN110673021A (zh) * | 2019-11-05 | 2020-01-10 | 桂林电子科技大学 | 一种基于NoC的边界扫描测试控制方法及控制器接口 |
CN111308329A (zh) * | 2020-03-20 | 2020-06-19 | 深圳芯行科技有限公司 | 用于众核计算芯片可测性设计的电路、装置及方法 |
CN111417932A (zh) * | 2017-12-05 | 2020-07-14 | 高通股份有限公司 | 用于gpu的着色器核心的在空闲周期期间的自测试 |
CN112630630A (zh) * | 2020-11-30 | 2021-04-09 | 深圳比特微电子科技有限公司 | 芯片测试方法、计算芯片和数字货币挖矿机 |
CN112956186A (zh) * | 2018-11-07 | 2021-06-11 | 索尼半导体解决方案公司 | 摄像装置和电子设备 |
CN113010354A (zh) * | 2021-03-22 | 2021-06-22 | 北京灵汐科技有限公司 | 核分类方法、映射方法、数据传输方法及装置、芯片 |
TWI760157B (zh) * | 2021-03-24 | 2022-04-01 | 德律科技股份有限公司 | 多核並行測試單一待測物的系統及方法 |
WO2022156418A1 (zh) * | 2021-01-19 | 2022-07-28 | 沐曦集成电路(上海)有限公司 | 锁存器的自测试电路及其自测试方法 |
WO2022199390A1 (zh) * | 2021-03-22 | 2022-09-29 | 北京灵汐科技有限公司 | 处理方法及装置、电子设备、存储介质 |
CN115201669A (zh) * | 2022-09-16 | 2022-10-18 | 中诚华隆计算机技术有限公司 | 一种芯片内部电路检测方法和装置 |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5900061B2 (ja) * | 2012-03-19 | 2016-04-06 | 富士通株式会社 | 試験方法、試験装置及びプログラム |
JP6074955B2 (ja) * | 2012-08-31 | 2017-02-08 | 富士通株式会社 | 情報処理装置および制御方法 |
JP5818762B2 (ja) * | 2012-09-14 | 2015-11-18 | 株式会社東芝 | プログラマブルロジックデバイス及びその検証方法 |
KR101457557B1 (ko) * | 2013-01-18 | 2014-11-04 | 연세대학교 산학협력단 | 멀티코어 장치, 테스트 장치 및 고장 진단 방법 |
US9720041B2 (en) * | 2013-02-01 | 2017-08-01 | Mentor Graphics Corporation | Scan-based test architecture for interconnects in stacked designs |
JP6282482B2 (ja) * | 2014-02-18 | 2018-02-21 | 株式会社日立製作所 | プログラマブル回路装置、コンフィギュレーション情報修復方法 |
US9244124B2 (en) * | 2014-03-28 | 2016-01-26 | International Business Machines Corporation | Initializing and testing integrated circuits with selectable scan chains with exclusive-or outputs |
JP6491507B2 (ja) * | 2015-03-20 | 2019-03-27 | ルネサスエレクトロニクス株式会社 | 半導体装置、電子装置および半導体装置の自己診断方法 |
CN106680688B (zh) | 2015-11-11 | 2020-09-25 | 恩智浦美国有限公司 | 利用并行扫描测试数据输入和输出测试多核集成电路 |
US10395751B2 (en) * | 2016-06-28 | 2019-08-27 | SK Hynix Inc. | Automated testing system and operating method thereof |
US10635526B2 (en) * | 2017-06-12 | 2020-04-28 | Sandisk Technologies Llc | Multicore on-die memory microcontroller |
US10831626B2 (en) | 2017-10-19 | 2020-11-10 | International Business Machines Corporation | Method to sort partially good cores for specific operating system usage |
EP3798850A4 (en) | 2018-06-27 | 2022-03-23 | Shanghai Cambricon Information Technology Co., Ltd | ON-CHIP CODE BREAKPOINT DEBUG METHOD, ON-CHIP PROCESSOR AND CHIP BREAKPOINT DEBUG SYSTEM |
US10740523B1 (en) * | 2018-07-12 | 2020-08-11 | Xilinx, Inc. | Systems and methods for providing defect recovery in an integrated circuit |
US11645178B2 (en) * | 2018-07-27 | 2023-05-09 | MIPS Tech, LLC | Fail-safe semi-autonomous or autonomous vehicle processor array redundancy which permits an agent to perform a function based on comparing valid output from sets of redundant processors |
JP7060720B2 (ja) | 2018-10-18 | 2022-04-26 | シャンハイ カンブリコン インフォメーション テクノロジー カンパニー リミテッド | ネットワークオンチップによるデータ処理方法及び装置 |
CN111078624B (zh) * | 2018-10-18 | 2022-03-25 | 上海寒武纪信息科技有限公司 | 片上网络处理系统和片上网络数据处理方法 |
CN111078625B (zh) * | 2018-10-18 | 2022-03-29 | 上海寒武纪信息科技有限公司 | 片上网络处理系统和片上网络数据处理方法 |
CN111078623B (zh) * | 2018-10-18 | 2022-03-29 | 上海寒武纪信息科技有限公司 | 片上网络处理系统和片上网络数据处理方法 |
US11074147B2 (en) | 2018-11-30 | 2021-07-27 | International Business Machines Corporation | Continuous mutual extended processor self-test |
JP7331482B2 (ja) * | 2019-06-17 | 2023-08-23 | 富士通株式会社 | 演算処理装置、及び情報処理装置 |
CN112148536A (zh) | 2019-06-26 | 2020-12-29 | 北京百度网讯科技有限公司 | 检测深度学习芯片的方法、装置、电子设备和计算机存储介质 |
JP7150676B2 (ja) * | 2019-09-02 | 2022-10-11 | 株式会社東芝 | 半導体集積回路及びそのテスト方法 |
US10998075B2 (en) * | 2019-09-11 | 2021-05-04 | International Business Machines Corporation | Built-in self-test for bit-write enabled memory arrays |
US10971242B2 (en) | 2019-09-11 | 2021-04-06 | International Business Machines Corporation | Sequential error capture during memory test |
WO2021069666A1 (en) * | 2019-10-11 | 2021-04-15 | Erik Larsson | System and method for access control of a plurality of instruments embedded in a semiconductor device |
US11244741B1 (en) | 2020-11-04 | 2022-02-08 | Micron Technology, Inc. | Selectable fuse sets, and related methods, devices, and systems |
US20240160825A1 (en) * | 2022-11-10 | 2024-05-16 | Cornami, Inc. | Method and system for providing fault tolerant layout of massively parallel processing array |
CN116755953B (zh) * | 2023-08-22 | 2023-12-19 | 北京象帝先计算技术有限公司 | 测试结果分组方法、装置、电子设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5732209A (en) * | 1995-11-29 | 1998-03-24 | Exponential Technology, Inc. | Self-testing multi-processor die with internal compare points |
US20090013224A1 (en) * | 2007-07-02 | 2009-01-08 | Thomas Alan Ziaja | Integrated circuit with blocking pin to coordinate entry into test mode |
CN101371153A (zh) * | 2006-01-06 | 2009-02-18 | Nxp股份有限公司 | Ic测试方法和装置 |
US20090089636A1 (en) * | 2007-10-01 | 2009-04-02 | Fernsler Matthew E | Method and Apparatus for Logic Built In Self Test (LBIST) Fault Detection in Multi-Core Processors |
US20100023807A1 (en) * | 2008-07-23 | 2010-01-28 | Industrial Technology Research Institute | Test device and method for the soc test architecture |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6671839B1 (en) * | 2002-06-27 | 2003-12-30 | Logicvision, Inc. | Scan test method for providing real time identification of failing test patterns and test bist controller for use therewith |
US7424658B1 (en) * | 2002-07-01 | 2008-09-09 | Altera Corporation | Method and apparatus for testing integrated circuits |
US7509600B2 (en) * | 2004-04-22 | 2009-03-24 | Janusz Rajski | Generating test patterns having enhanced coverage of untargeted defects |
US7263642B1 (en) | 2005-09-15 | 2007-08-28 | Azul Systems, Inc | Testing replicated sub-systems in a yield-enhancing chip-test environment using on-chip compare to expected results for parallel scan chains testing critical and repairable sections of each sub-system |
US20070300115A1 (en) * | 2006-06-01 | 2007-12-27 | Ramyanshu Datta | Apparatus and method for accelerating test, debug and failure analysis of a multiprocessor device |
US8030649B2 (en) * | 2006-07-28 | 2011-10-04 | International Business Machines Corporation | Scan testing in single-chip multicore systems |
JP4815326B2 (ja) * | 2006-10-31 | 2011-11-16 | 富士通株式会社 | 集積回路のタイミング不良改善装置、並びに、集積回路のタイミング不良診断装置および方法、並びに、集積回路 |
DE102006059158B4 (de) * | 2006-12-14 | 2009-06-10 | Advanced Micro Devices, Inc., Sunnyvale | Integrierter Schaltkreischip mit zumindest zwei Schaltungskernen und zugehöriges Verfahren zum Testen |
DE102006059156B4 (de) * | 2006-12-14 | 2008-11-06 | Advanced Micro Devices, Inc., Sunnyvale | Verfahren zum Testen eines integrierten Schaltkreischips mit zumindest zwei Schaltungskernen sowie integrierter Schaltkreischip und Testsystem |
WO2009087769A1 (ja) * | 2008-01-10 | 2009-07-16 | Fujitsu Limited | テストパターン生成方法、装置及びプログラム |
-
2011
- 2011-12-20 US US13/330,921 patent/US8856602B2/en active Active
-
2012
- 2012-11-07 JP JP2014547684A patent/JP2015509183A/ja active Pending
- 2012-11-07 GB GB1410749.4A patent/GB2511972B/en active Active
- 2012-11-07 CN CN201280063683.4A patent/CN104040499B/zh active Active
- 2012-11-07 DE DE112012005320.6T patent/DE112012005320T5/de active Pending
- 2012-11-07 WO PCT/CN2012/084175 patent/WO2013091446A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5732209A (en) * | 1995-11-29 | 1998-03-24 | Exponential Technology, Inc. | Self-testing multi-processor die with internal compare points |
CN101371153A (zh) * | 2006-01-06 | 2009-02-18 | Nxp股份有限公司 | Ic测试方法和装置 |
US20090013224A1 (en) * | 2007-07-02 | 2009-01-08 | Thomas Alan Ziaja | Integrated circuit with blocking pin to coordinate entry into test mode |
US20090089636A1 (en) * | 2007-10-01 | 2009-04-02 | Fernsler Matthew E | Method and Apparatus for Logic Built In Self Test (LBIST) Fault Detection in Multi-Core Processors |
US20100023807A1 (en) * | 2008-07-23 | 2010-01-28 | Industrial Technology Research Institute | Test device and method for the soc test architecture |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105629148A (zh) * | 2014-10-28 | 2016-06-01 | 国际商业机器公司 | 测试电路中的多个模块的测试方法和测试设备 |
CN105629148B (zh) * | 2014-10-28 | 2018-08-28 | 国际商业机器公司 | 测试电路中的多个模块的测试方法和测试设备 |
US10345375B2 (en) | 2014-10-28 | 2019-07-09 | International Business Machines Corporation | Test method and test apparatus for testing a plurality of blocks in a circuit |
CN106991022A (zh) * | 2017-03-07 | 2017-07-28 | 记忆科技(深圳)有限公司 | 一种基于扫描链的芯片分析方法 |
CN106991022B (zh) * | 2017-03-07 | 2020-12-18 | 记忆科技(深圳)有限公司 | 一种基于扫描链的芯片分析方法 |
CN107544017A (zh) * | 2017-07-12 | 2018-01-05 | 清华大学 | 基于向量压缩的低功耗加权伪随机测试方法及相关设备 |
CN107544017B (zh) * | 2017-07-12 | 2020-06-16 | 清华大学 | 基于向量压缩的低功耗加权伪随机测试方法及相关设备 |
CN111417932A (zh) * | 2017-12-05 | 2020-07-14 | 高通股份有限公司 | 用于gpu的着色器核心的在空闲周期期间的自测试 |
CN111417932B (zh) * | 2017-12-05 | 2024-01-12 | 高通股份有限公司 | 用于gpu的着色器核心的在空闲周期期间的自测试 |
CN108600040A (zh) * | 2018-03-16 | 2018-09-28 | 国电南瑞科技股份有限公司 | 一种基于高可用检测节点的分布式系统节点故障检测方法 |
CN108600040B (zh) * | 2018-03-16 | 2022-03-15 | 国电南瑞科技股份有限公司 | 一种基于高可用检测节点的分布式系统节点故障检测方法 |
US11832011B2 (en) | 2018-11-07 | 2023-11-28 | Sony Semiconductor Solutions Corporation | Imaging device and electronic equipment |
CN112956186A (zh) * | 2018-11-07 | 2021-06-11 | 索尼半导体解决方案公司 | 摄像装置和电子设备 |
CN112956186B (zh) * | 2018-11-07 | 2023-08-18 | 索尼半导体解决方案公司 | 摄像装置和电子设备 |
CN110673021A (zh) * | 2019-11-05 | 2020-01-10 | 桂林电子科技大学 | 一种基于NoC的边界扫描测试控制方法及控制器接口 |
CN110673021B (zh) * | 2019-11-05 | 2021-09-10 | 桂林电子科技大学 | 一种基于NoC的边界扫描测试控制方法及控制器接口 |
CN111308329B (zh) * | 2020-03-20 | 2022-02-25 | 深圳芯行科技有限公司 | 用于众核计算芯片可测性设计的电路、装置及方法 |
CN111308329A (zh) * | 2020-03-20 | 2020-06-19 | 深圳芯行科技有限公司 | 用于众核计算芯片可测性设计的电路、装置及方法 |
CN112630630A (zh) * | 2020-11-30 | 2021-04-09 | 深圳比特微电子科技有限公司 | 芯片测试方法、计算芯片和数字货币挖矿机 |
WO2022156418A1 (zh) * | 2021-01-19 | 2022-07-28 | 沐曦集成电路(上海)有限公司 | 锁存器的自测试电路及其自测试方法 |
WO2022199390A1 (zh) * | 2021-03-22 | 2022-09-29 | 北京灵汐科技有限公司 | 处理方法及装置、电子设备、存储介质 |
CN113010354A (zh) * | 2021-03-22 | 2021-06-22 | 北京灵汐科技有限公司 | 核分类方法、映射方法、数据传输方法及装置、芯片 |
TWI760157B (zh) * | 2021-03-24 | 2022-04-01 | 德律科技股份有限公司 | 多核並行測試單一待測物的系統及方法 |
CN115201669A (zh) * | 2022-09-16 | 2022-10-18 | 中诚华隆计算机技术有限公司 | 一种芯片内部电路检测方法和装置 |
CN115201669B (zh) * | 2022-09-16 | 2022-11-15 | 中诚华隆计算机技术有限公司 | 一种芯片内部电路检测方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2013091446A1 (en) | 2013-06-27 |
GB2511972B (en) | 2017-09-20 |
GB2511972A (en) | 2014-09-17 |
DE112012005320T5 (de) | 2014-10-02 |
GB201410749D0 (en) | 2014-07-30 |
CN104040499B (zh) | 2017-09-12 |
US20130159799A1 (en) | 2013-06-20 |
JP2015509183A (ja) | 2015-03-26 |
US8856602B2 (en) | 2014-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104040499A (zh) | 带有基于内部表决的内置自测(bist)的多核心处理器 | |
KR101025407B1 (ko) | 테스트 데이터 처리 디바이스 및 방법, 테스트 장치 및 컴퓨터 판독가능 매체 | |
Mitra et al. | Reconfigurable architecture for autonomous self-repair | |
US8122312B2 (en) | Internally controlling and enhancing logic built-in self test in a multiple core microprocessor | |
Ansari et al. | Zerehcache: Armoring cache architectures in high defect density technologies | |
US7017089B1 (en) | Method and apparatus for testing a content addressable memory device | |
Czutro et al. | Thread-parallel integrated test pattern generator utilizing satisfiability analysis | |
US20120072879A1 (en) | Method and Apparatus for Synthesis of Multimode X-Tolerant Compressor | |
TW200805052A (en) | Method and apparatus for processing error information and injecting errors in a processor system | |
Aktouf | A complete strategy for testing an on-chip multiprocessor architecture | |
JP4147005B2 (ja) | 半導体集積回路およびそのテスト方法並びに製造方法 | |
TW202305596A (zh) | 具有本地內建自我測試的處理器單元陣列之可重新配置處理器系統 | |
US8959010B1 (en) | Emulation system with improved reliability of interconnect and a method for programming such interconnect | |
JP2001043698A (ja) | 内蔵メモリアレイの自己検査回路および自己検査方法 | |
JPH1040700A (ja) | 組み込み型自己テスト機能付き半導体チップ | |
Chi et al. | A low-cost and scalable test architecture for multi-core chips | |
US7673206B2 (en) | Method and system for routing scan chains in an array of processor resources | |
TWI840870B (zh) | 具有組合式記憶體、邏輯及內建自我測試之處理器單元 | |
US12001362B2 (en) | Dynamically reprogrammable topologically unique integrated circuit identification | |
Chakraborty et al. | Cellular Automata Based Test Design for Coherence Verification in 3D Caches | |
Beckler et al. | GPU-accelerated fault dictionary generation for the TRAX fault model | |
Saha et al. | Test structure for L1 cache in tiled CMPs | |
Banerjee et al. | A Programmable Built-in Self-Test for Embedded Memory Cores | |
Gharibi et al. | «Quantum» structures for digital systems synthesis | |
Aglietti et al. | Self-Diagnosis of APEmille |
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 |