CN116746064A - 锁步比较器和相关方法 - Google Patents
锁步比较器和相关方法 Download PDFInfo
- Publication number
- CN116746064A CN116746064A CN202180088335.1A CN202180088335A CN116746064A CN 116746064 A CN116746064 A CN 116746064A CN 202180088335 A CN202180088335 A CN 202180088335A CN 116746064 A CN116746064 A CN 116746064A
- Authority
- CN
- China
- Prior art keywords
- logic
- output
- test
- self
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title abstract description 39
- 238000012360 testing method Methods 0.000 claims abstract description 449
- 238000001514 detection method Methods 0.000 claims abstract description 114
- 230000004044 response Effects 0.000 claims description 85
- 230000015654 memory Effects 0.000 claims description 47
- 230000009977 dual effect Effects 0.000 description 56
- 230000006870 function Effects 0.000 description 27
- 230000001133 acceleration Effects 0.000 description 26
- 230000008569 process Effects 0.000 description 20
- 238000004891 communication Methods 0.000 description 16
- 238000012545 processing Methods 0.000 description 15
- 238000004519 manufacturing process Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000012544 monitoring process Methods 0.000 description 8
- 230000001934 delay Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 208000027418 Wounds and injury Diseases 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 208000014674 injury Diseases 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000009897 systematic effect Effects 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- HBBGRARXTFLTSG-UHFFFAOYSA-N Lithium ion Chemical compound [Li+] HBBGRARXTFLTSG-UHFFFAOYSA-N 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- XAGFODPZIPBFFR-UHFFFAOYSA-N aluminium Chemical compound [Al] XAGFODPZIPBFFR-UHFFFAOYSA-N 0.000 description 1
- 229910052782 aluminium Inorganic materials 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000002485 combustion reaction Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000002405 diagnostic procedure Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 229910001416 lithium ion Inorganic materials 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/3177—Testing of logic operation, e.g. by logic analysers
-
- 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/31703—Comparison aspects, e.g. signature analysis, comparators
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1641—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
- G06F11/1645—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components and the comparison itself uses redundant hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1695—Error detection or correction of the data by redundancy in hardware which are operating with time diversity
-
- 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
-
- 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/2284—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by power-on test, e.g. power-on self test [POST]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/02—Comparing digital values
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/003—Modifications for increasing the reliability for protection
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K3/00—Circuits for generating electric pulses; Monostable, bistable or multistable circuits
- H03K3/02—Generators characterised by the type of circuit or by the means used for producing pulses
- H03K3/027—Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
- H03K3/037—Bistable circuits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K5/00—Manipulating of pulses not covered by one of the other main groups of this subclass
- H03K5/22—Circuits having more than one input and one output for comparing pulses or pulse trains with each other according to input signal characteristics, e.g. slope, integral
- H03K5/24—Circuits having more than one input and one output for comparing pulses or pulse trains with each other according to input signal characteristics, e.g. slope, integral the characteristic being amplitude
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Nonlinear Science (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
描述了锁步比较器和相关方法。一种示例装置包括:自测试逻辑电路系统(322),该自测试逻辑电路系统具有第一输出;以及比较器逻辑(300),该比较器逻辑包括:选择逻辑(304),该选择逻辑具有第一输入和第二输出,这些第一输入中的各个第一输入耦合到这些第一输出;第一检测逻辑(306),该第一检测逻辑具有第二输入和第三输出,这些第二输入耦合到这些第二输出;第二检测逻辑(308),该第二检测逻辑具有第三输入和第四输出,这些第三输入耦合到这些第三输出;锁存逻辑(310),该锁存逻辑具有第五输入和第五输出,该第三输出和该第四输出耦合到这些第五输入;以及错误检测逻辑(312),该错误检测逻辑具有耦合到这些第五输入的第六输入。
Description
本文总体上涉及电路,并且更具体地涉及锁步比较器和相关方法。
背景技术
安全协议用于确保电气系统和/或电子系统的安全性。例如,国际标准化组织(ISO)26262是关于汽车中电气系统和/或电子系统的功能安全的国际标准。这样的安全协议对与电子故障相关联的风险(例如,伤害的发生频率和该伤害的严重程度的组合)进行分析。与电子设备相对应的故障可能是随机的或系统性的。随机故障可以对应于由于系统部件的功能丧失而导致的硬件相关的永久性或瞬时性故障。系统性故障可能对应于软件中的设计故障、不正确的规格和/或不符合目的的错误。这样的安全协议可以对与可能处理信号的硬件处理器相关联的电气风险进行分析以改善车辆安全性。
附图说明
图1是包括示例锁步比较器电路系统的示例片上系统(SoC)的图示,该锁步比较器电路系统用于改善与SoC的示例硬件处理器相关联的可靠性和安全性。
图2是图1的示例硬件处理器的示例实施方式的框图,该硬件处理器包括图1的示例锁步比较器电路系统。
图3是图1和/或图2的示例锁步比较器电路系统的示例实施方式的示意性图示。
图4A至图4B是图1和/或图2的示例锁步比较器电路系统的另一个示例实施方式的示意性图示。
图5是描绘了图1、图2、图3和/或图4A至图4B的示例锁步比较器电路系统的示例操作的时序图。
图6是表示示例过程的流程图,该示例过程可以使用可执行的机器可读指令和/或使用被配置为实施图1、图2、图3和/或图4A至图4B的示例锁步比较器电路系统的硬件来执行,以检测与一个或多个比较器相关联的错误。
图7是表示示例过程的另一个流程图,该示例过程可以使用可执行的机器可读指令和/或使用被配置为实施图1、图2、图3和/或图4A至图4B的示例锁步比较器电路系统的硬件来执行,以检测与一个或多个比较器相关联的错误。
图8是被构造为执行图6和/或图7的示例过程以实施图1、图2、图3和/或图4A至图4B的示例锁步比较器电路系统的示例处理平台的框图。
具体实施方式
附图未按比例绘制。一般而言,在整个附图和随附的书面描述中,将使用相同的附图标记来指代相同或相似的部分。如本文所使用的,除非另有说明,否则连接引用(例如,附接、耦合、连接和接合)可以包括由连接引用所指代的元件之间的中间构件和/或这些元件之间的相对移动。这样,连接引用不一定暗示将两个元件直接连接和/或彼此之间有固定关系。
除非另有特别说明,否则比如“第一”、“第二”、“第三”等描述词不要求任何特定的优先级、物理顺序、列表中的布置和/或以任何方式排序,而是仅用作标注和/或任意名称来区分元素,以便于理解示例。在一些示例中,描述词“第一”可以用于指代具体实施方式中的元素,而同一元素在权利要求中可以用如“第二”或“第三”等不同的描述词来指代。在这种情况下,这样的描述符仅用于清楚地标识那些例如可能在其他方面共享同一名称的元素。如本文所使用的“基本上实时”是指以接近瞬时的方式发生,应认识到在真实世界中可能存在计算时间、传输等方面的延迟。因此,除非另有说明,否则“基本上并行”和“基本上实时”是指实时+/-1秒。
随着技术的进步,计算设备和/或电气设备的复杂性显著增加。这样的设备包括用于执行(多个)特定功能的硬件、软件和/或固件。如果在硬件、软件和/或固件中出现错误,则这样的设备可能无法执行(多个)特定功能,或者可能在执行(多个)特定功能时性能不佳。这种无法执行和/或执行性能不佳可能影响相关系统的结果,和/或更一般地,影响与相关系统的操作相关联的可靠性和/或安全性。为了检测和/或纠正这些错误,设备可以包括功能安全硬件。例如,可以促进执行载具(例如,空基载具、陆基载具等)的自主操作的自动驾驶计算设备可以包括实现和/或以其他方式满足功能安全要求的硬件。功能安全要求可以基于国际标准组织(ISO)26262、国际电工委员会(IEC)61508等。ISO 26262是关于汽车生产中电气系统和/或电子系统的功能安全的国际标准。IEC 61508是与应用、设计、部署和维护安全相关系统的自动保护相对应的国际标准。
一些应用程序利用片上系统(SoC)硬件来执行计算任务。一些这样的SoC硬件包括锁步硬件,比如锁步处理器或中央处理单元(CPU),以有助于符合功能安全要求。例如,“锁步CPU”、“锁步处理器”、“锁步硬件”等可以指多核计算硬件资源,其中,该多核计算硬件资源的两个或更多个核并行执行相似的操作,并且每个核将其相应的输出馈送到相应的比较器逻辑块中以确定这些输出是否相等。例如,比较器逻辑块可以响应于确定来自两个或更多个核的输出中的(多个)输出不相等,而检测到与多核计算硬件资源相关联的故障状况。
在一些情况下,功能安全标准强制要求对锁步硬件的锁步能力、功能等执行诊断和/或以其他方式进行测试。然而,先前的锁步测试实施方式对于应用程序是侵入性的,因为在锁步功能的测试期间,锁步硬件可能无法以与测试之外的正常操作相同的完整性来执行代码。替代性地,为了促进联机测试排序,一些先前的锁步测试实施方式利用了双比较器。然而,这些双比较器可能不会彼此以锁步方式进行操作(例如,不被配置为以锁步方式进行操作),并且不提供如本文所描述的锁步测试功能。
一些先前的锁步测试实施方式完成起来非常缓慢。例如,在一些先前的锁步测试实施方式中,锁步硬件可能需要2*N个周期来比较N个信号。在一些这样的示例中,可以利用单个锁步比较器,这可能产生非常长的自测试序列。一些先前的锁步测试实施方式也可能不具有隔离锁步硬件的故障状况(比如与锁步比较器相关联的故障)的能力。故障状况的这种隔离可以提供比如增加调试信息的粒度等益处,这可以用来改善当前或未来的锁步硬件的操作。
本文所描述的示例包括锁步比较器和相关方法。在一些所描述的示例中,锁步比较器在锁步硬件的联机操作期间输出诊断数据,这可以有助于改进与检测到的锁步硬件的故障状况相关联的脱机故障分析。在一些所描述的示例中,锁步比较器包括可以实施联机测试排序的两个或更多个锁步比较器。例如,这些锁步比较器可以在锁步硬件处于联机状态和/或以其他方式执行应用程序代码时测试锁步功能。有利地,如本文所描述的锁步比较器可以通过用冗余逻辑替代先前实施方式中相对较长的测试序列来测试锁步硬件的锁步功能,而不需要使锁步硬件脱机。例如,与一些先前的锁步测试实施方式中的数千个时钟周期相比,如本文所描述的锁步比较器可以在8个时钟周期内完成锁步硬件的诊断测试。有利地,如本文所描述的示例锁步比较器可以向外部硬件、软件和/或固件(比如计算设备、与计算设备相关联的用户界面等)提供综合的调试信息(例如,故障状况数据、端口信息(例如,端口失配值)等)。
图1是包括示例计算系统102的示例计算环境100的图示,该示例计算系统包括示例锁步比较器逻辑(LCL)104,用于识别对锁步硬件的锁步能力、功能等的诊断和/或以其他方式实现对锁步能力、功能等的测试。例如,LCL 104可以对来自锁步硬件的一个或多个核、模块等的输出进行比较,并且基于对这些输出的比较来识别故障状况。
计算系统102包括示例中央处理单元(CPU)106、第一示例加速资源(加速资源A)108、第二示例加速资源(加速资源B)110、示例通用处理资源112、示例接口资源114、示例总线116、示例电源118和示例数据存储120。在该示例中,数据存储120存储和/或以其他方式包括示例锁步调试数据122。在图1所图示的示例中进一步描绘了示例用户界面124、示例网络126和示例中央设施128,该中央设施可以存储锁步调试数据122。
在一些示例中,计算系统102是表示一个或多个集成电路(IC)(例如,紧凑型IC)的片上系统(SoC),该一个或多个IC以紧凑的格式并入了计算机或其他电子系统的部件。例如,计算系统102可以用一个或多个可编程处理器、硬件逻辑和/或硬件外围设备和/或接口的组合来实施。另外地或替代性地,图1的示例计算系统102可以包括存储器、(多个)输入/输出(I/O)端口和/或辅助存储装置。例如,计算系统102包括全部位于同一基板上的LCL104、CPU 106、第一加速资源108、第二加速资源110、通用处理资源112、接口资源114、总线116、电源118、数据存储120、存储器、(多个)I/O端口和/或辅助存储装置。在一些示例中,计算系统102包括数字、模拟、混合信号、射频(RF)或其他信号处理功能。
在一些示例中,计算系统102实施车辆(例如,驾驶员操作的车辆、自主车辆等)中的电子控制单元(ECU)。例如,计算系统102可以是控制车辆的一个或多个部件、功能等的ECU。在一些示例中,计算系统102可以是控制发动机(例如,内燃发动机)、马达(例如,电动马达)、变速器、信息娱乐系统、光检测和测距(LIDAR)系统等和/或其组合的ECU。
CPU 106是多核CPU。例如,CPU 106包括可以执行指令、应用程序代码等的多个核(例如,计算核、处理器核等)。第一加速资源108是图形处理单元(GPU)。例如,第一加速资源108可以是生成计算机图形、执行通用计算等的GPU。在一些示例中,第一加速资源108可以为用户界面124生成图形。第二加速资源110是AI加速器。例如,第二加速资源110可以是用于实现机器或计算机视觉计算任务、物体识别计算任务等的视觉处理单元。通用处理资源112是可编程处理器。例如,通用处理资源112可以是CPU、GPU等。替代性地,第一加速资源108、第二加速资源110和/或通用处理资源112中的一个或多个可以是不同类型的硬件,比如数字信号处理器(DSP)、专用集成电路(ASIC)、可编程逻辑器件(PLD)和/或现场可编程逻辑器件(FPLD)(例如,现场可编程门阵列(FPGA))。
接口资源114是实施和/或表示一个或多个接口(例如,计算接口、网络接口、车辆网络或总线接口、工业协议网络或总线接口等)的硬件。例如,接口资源114可以是实施比如发射器、接收器、收发器、调制解调器、工业协议网关、住宅网关、无线接入点和/或网络接口等通信设备(例如,通信网关、网络接口卡(NIC)、智能NIC等)以促进经由网络126与外部机器(例如,任何种类的计算设备)交换数据的硬件、软件和/或固件。在一些示例中,通信是经由连接、控制器局域网(CAN)总线、以太网连接、数字用户线(DSL)连接、无线保真(Wi-Fi)连接、电话线连接、同轴电缆系统、卫星系统、直线对传无线系统、蜂窝电话系统等来实现的。例如,接口资源114可以由任何类型的接口标准来实施,比如/>接口、CAN接口、以太网接口、Wi-Fi接口、通用串行总线(USB)、近场通信(NFC)接口和/或PCI快速接口。
计算系统102包括用于向计算系统102的(多个)资源递送电力的电源118。在该示例中,电源118由一个或多个电池(例如,锂离子电池或任何其他可充电电池或电源)实施。例如,电源118可以使用电源适配器或转换器(例如,AC/DC电源转换器)、壁装电源插座(例如,110V AC壁装电源插座、220V AC壁装电源插座等)等来充电。在一些示例中,电源118可以由比如交流发电机等车辆部件充电。
计算系统102包括用于记录数据(例如,锁步调试数据122等)的数据存储120。数据存储120可以由易失性存储器(例如,一个或多个触发器、同步动态随机存取存储器(SDRAM)、动态随机存取存储器(DRAM)、RAMBUS动态随机存取存储器(RDRAM)等)和/或非易失性存储器(例如,闪存存储器)来实施。数据存储120可以另外地或替代性地由比如DDR、DDR2、DDR3、DDR4、移动DDR(mDDR)等一个或多个双倍数据速率(DDR)存储器来实施。数据存储120可以另外地或替代性地由比如(多个)硬盘驱动器((多个)HDD)、(多个)光盘(CD)驱动器、(多个)数字通用光盘(DVD)驱动器、(多个)固态盘驱动器等一个或多个大容量存储设备来实施。虽然在所图示的示例中,数据存储120被图示为单个数据存储,但是数据存储120可以由任何数量和/或(多种)类型的数据存储来实施。此外,存储在数据存储120中的数据可以呈任何数据格式,例如二进制数据、逗号分隔数据、制表符分隔数据、结构化查询语言(SQL)结构等。
计算系统102与用户界面124通信。例如,用户界面124可以由图形用户界面(GUI)、应用程序显示器等实施,该用户界面可以在与计算系统102进行电路连接和/或以其他方式与该计算系统通信的一个或多个显示设备上呈现给用户。在这样的示例中,用户(例如,客户、开发人员、车辆维护技术人员、车辆驾驶员、车辆乘客等)经由用户界面124控制计算系统102。替代性地,计算系统102可以包括和/或以其他方式实施用户界面124。
LCL 104A、CPU 106、第一加速资源108、第二加速资源110、通用处理资源112、接口资源114、电源118和数据存储120中的一个(多个)与总线116通信。例如,总线116对应于、表示和/或以其他方式包括CAN总线、内部集成电路(I2C)总线、串行外围接口(SPI)总线、外围部件互连(PCI)总线或JTAG接口中的至少一个。另外地或替代性地,总线116可以实施任何其他类型的计算总线或电气总线。
网络126是互联网。然而,该示例的网络126可以使用任何合适的(多个)有线和/或无线网络来实施,这些有线和/或无线网络包括例如一个或多个数据总线、一个或多个局域网(LAN)、一个或多个无线LAN(WLAN)、一个或多个蜂窝网络、一个或多个专用网络、一个或多个公共网络等。在一些示例中,网络126使得计算系统102能够与中央设施128通信。
中央设施128由收集和处理来自计算系统102的锁步调试数据122的一个或多个服务器来实施。另外地或替代性地,中央设施128可以包括、对应于和/或以其他方式表示任何其他类型的计算设备,比如台式计算机、移动设备(例如,智能手机、支持互联网的智能手机等)、膝上型计算机、平板电脑(例如,平板计算机、支持互联网的平板计算机等)等。
在一些示例中,中央设施128可以通过用于接收包括锁步调试数据122的互联网消息(例如,(多个)超文本传输协议(HTTP)请求)的互联网接口经由网络126从计算系统102获得锁步调试数据122。另外地或替代性地,中央设施128可以通过利用任何其他通信协议,比如HTTP安全协议(HTTPS)、文件传输协议(FTP)、安全文件传输协议(SFTP)等,经由网络126从计算系统102接收锁步调试数据122。在一些示例中,中央设施128可以分析锁步调试数据122,以识别由LCL 104检测到的计算系统102的故障状况。中央设施128可以基于所识别的故障状况和后续分析来识别对LCL 104的(多个)改进。
在一些示例中,LCL 104包括冗余硬件和一个或多个用于检测锁步故障状况的比较器。例如,LCL 104可以包括CPU 106的冗余或单独实例、第一加速资源108的冗余或单独实例、第二加速资源110的冗余或单独实例等。例如,LCL 104可以包括CPU 106和一个或多个比较器的实例。在一些示例中,LCL 104可以与计算系统102的另一个资源基本上并行地执行指令。例如,LCL 104和CPU 106(或其核)可以执行相同的指令来生成其相应的输出,这些输出成为用于检测(多个)故障状况的比较的基础。
在一些示例中,CPU 106、第一加速资源108、第二加速资源110、通用处理资源112和/或接口资源114中的一个或多个是锁步硬件。例如,CPU 106可以是锁步CPU,第一加速资源108可以是锁步GPU等。在一些示例中,CPU 106是锁步CPU,并且LCL 104对CPU 106的锁步能力、功能等执行自测试。例如,LCL 104可以包括一个或多个比较器(例如,锁步比较器),该一个或多个比较器可以将CPU 106的一个或多个核(和/或更一般地CPU 106)的第一输出与LCL 104的第二输出进行比较,以检测锁步故障,该LCL可以包括CPU 106的另一个实例。在一些示例中,LCL 104可以响应于检测到故障状况而检测到锁步故障。
在一些示例中,LCL 104实施相对快速的诊断执行。例如,与先前的锁步测试技术可能需要数千个CPU周期相比,LCL 104可以在8个CPU周期内完成对CPU 106的锁步的自测试。在一些示例中,LCL 104使得对应的资源能够始终处于联机状态。例如,当CPU 106处于联机状态和/或以其他方式执行应用程序代码、指令等时,LCL 104可以对CPU 106的锁步执行自测试。在一些示例中,LCL 104可以生成可以用于调试锁步故障的综合信息,并且输出该综合信息作为锁步调试数据122。例如,LCL 104可以生成和/或以其他方式输出锁步调试数据122,以包括高粒度数据,比如自测试失败的端口(例如,集成电路端口、硬件端口等)的标识、响应于检测到故障状况的程序计数器值(例如,CPU 106中的寄存器,该寄存器包括在指定时间执行的指令的地址或位置)等。在一些示例中,LCL 104可以响应于检测到故障状况而冻结比较状态,并且可以使比较状态可读(例如,将比较状态呈现在用户界面124上,将比较状态存储在锁步调试数据122中等),锁存CPU 106的程序计数器值等,和/或其组合。
图2是示例锁步封装器(wrapper)200的框图。锁步封装器200是与系统(比如图1的计算系统102)的一个或多个部分相关联的逻辑构造。例如,锁步封装器200可以由硬件、软件、固件和/或其组合来实施。在一些示例中,锁步封装器200可以实施图1的LCL 104和CPU106。替代性地,锁步封装器200可以实施LCL 104和计算系统102的任何其他资源,比如第一加速资源108、第二加速资源110等。
锁步封装器200包括示例主硬件202、示例辅助硬件204、示例输入延迟逻辑206、示例输出延迟逻辑208和示例锁步比较控制逻辑210。在该示例中,锁步比较控制逻辑210包括自测试控制逻辑212、第一示例比较器逻辑214、第二示例比较器逻辑216和示例存储器218。在该示例中,存储器218包括锁步调试数据220。
主硬件202的输入经由总线(例如,图1的总线116)耦合到计算系统(例如,计算系统102)的另一个资源。主硬件202的输出经由总线耦合到输出延迟逻辑208和/或计算系统的另一个资源。如本文所使用的,与部件、设备、集成电路等的输入和/或输出相关联的耦合可以由一个或多个端子来实施。例如,主硬件202的第一输出端子、第二输出端子等可以耦合到输出延迟逻辑208的第一输入端子、第二输入端子等中的相应输入端子。在一些示例中,该一个或多个端子可以由铝、铜等或任何其他导电材料或其组合来构造和/或以其他方式由其组成。在一些示例中,该一个或多个端子可以被实施为引脚(例如,集成电路引脚)。替代性地,该一个或多个端子可以被实施为管脚(例如,导电管脚)、接线片(例如,导电接线片)或任何其他类型的电接触件。
输出延迟逻辑208的输出耦合到第一比较器逻辑214的输入、第二比较器逻辑216的输入和/或更一般地,锁步比较控制逻辑210的输入。输入延迟逻辑206的输入可以经由总线耦合到计算系统的另一个资源。输入延迟逻辑206的输出耦合到辅助硬件204的输入。辅助硬件204的输出耦合到第一比较器逻辑214的输入、第二比较器逻辑216的输入和/或更一般地,锁步比较控制逻辑210的输入。自测试控制逻辑212的输出耦合到第一比较器逻辑214的输入和第二比较器逻辑216的输入。第一比较器逻辑214的输出耦合到存储器218的输入。第二比较器逻辑216的输出耦合到存储器218的输入。另外地或替代性地,第一比较器逻辑214和/或第二比较器逻辑216的输出可以经由总线耦合到主硬件202、第二硬件204和/或计算系统的不同资源。
在一些示例中,主硬件202可以实施计算系统102的资源。例如,主硬件202可以实施CPU 106。替代性地,主硬件202可以由图1的第一加速资源108、第二加速资源110等实施和/或以其他方式对应于该第一加速资源、该第二加速资源等。在一些示例中,辅助硬件204可以实施主硬件202的冗余的和/或在其他方面单独的实例。例如,辅助硬件204可以由CPU106的另一个实例来实施。替代性地,辅助硬件204可以由图1的第一加速资源108、第二加速资源110等实施和/或以其他方式对应于该第一加速资源、该第二加速资源等。
在一些示例中,自测试控制逻辑212可以由硬件状态机来实施。替代性地,自测试控制逻辑212可以由一个或多个模拟或数字电路、逻辑电路、(多个)可编程处理器、(多个)可编程控制器、(多个)ASIC、(多个)PLD和/或(多个)FPLD来实施。在一些示例中,存储器218可以由非易失性存储器、易失性存储器等来实施。在一些示例中,锁步调试数据220可以由图1的锁步调试数据122来实施。
在该示例中,辅助硬件204是相对于主硬件202而言的冗余硬件。在该示例中,辅助硬件204以锁步配置来配置。例如,辅助硬件204可以获得与主硬件202相同的输入,在该示例中,这些输入对应于示例功能输入222。例如,功能输入222可以由计算机可读指令、机器可读指令和/或其他硬件可读指令来实施。在一些示例中,主模块202响应于执行功能输入222而输出示例功能输出224。在一些示例中,辅助模块204响应于执行功能输入222而输出示例锁步输出226。
锁步封装器200包括用于在接收功能输入222的主硬件202与接收功能输入222的辅助硬件204之间插入延迟(例如,时间或定时延迟)的输入延迟逻辑206。例如,输入延迟逻辑206可以插入延迟,以确保由第一比较器逻辑214、第二比较器逻辑216等进行比较的数据、信号等在时间上是对准的。在这样的示例中,输入延迟逻辑206可以响应于与锁步封装器200(和/或更一般地,图1的计算系统102)的一个或多个部件相关联的间歇处理延迟、传播延迟等来插入延迟以减轻和/或以其他方式减少比较器误差。在一些示例中,输入延迟逻辑206可以由一个或多个模拟电路、一个或多个数字电路、一个或多个逻辑电路等来实施。
锁步封装器200包括用于在输出功能输出224的主硬件202与接收功能输出224的锁步比较控制逻辑210之间插入延迟(例如,时间或定时延迟)的输出延迟逻辑208。例如,输出延迟逻辑208可以插入延迟,以确保由第一比较器逻辑214、第二比较器逻辑216等进行比较的数据、信号等在时间上是对准的。在这样的示例中,输出延迟逻辑208可以响应于与锁步封装器200(和/或更一般地,图1的计算系统102)的一个或多个部件相关联的间歇处理延迟、传播延迟等,插入延迟以减轻和/或以其他方式减少比较器误差。在一些示例中,输出延迟逻辑208可以由一个或多个模拟电路、一个或多个数字电路、一个或多个逻辑电路等来实施。
在示例操作中,主硬件202在第一时间接收功能输入222,并且辅助硬件204在第一时间之后的第二时间接收功能输入222。例如,第一时间与第二时间之间的时间差由输入延迟逻辑206来实施。主硬件202可以基于功能输入222生成功能输出224,并且辅助硬件204可以基于功能输入222生成锁步输出226。
在示例操作中,自测试控制逻辑212可以选择(i)第一比较器逻辑214来对功能输出224和锁步输出226执行功能比较以测试锁步,以及选择(ii)第二比较器逻辑216来对第二比较器逻辑216执行自测试。有利地,自测试控制逻辑212可以通过使第一比较器逻辑214或第二比较器逻辑216中的至少一个能够在自测试期间执行功能比较来在自测试期间保持锁步联机。
在示例操作中,第一比较器逻辑214可以用于对功能输出224和锁步输出226进行比较,以执行功能比较(例如,输出是否匹配)来测试锁步比较控制逻辑210的比较功能。在示例操作中,第二比较器逻辑216可以对第二比较器逻辑216执行自测试。例如,自测试控制逻辑212可以向第二比较器逻辑216输出全逻辑零(或全逻辑一)以实现匹配测试。例如,匹配测试可以通过将来自自测试控制逻辑212的第一组逻辑零与来自自测试控制逻辑212的第二组逻辑零进行比较来实施。在一些这样的示例中,匹配测试可以指示第二比较器逻辑216的一个或多个逻辑门是否保持固定(stuck)在和/或以其他方式冻结在逻辑一状态(例如,始终输出逻辑一)、逻辑零状态(例如,始终输出逻辑零)等。
在一些示例中,自测试逻辑控制212可以在第一周期(例如,第一时钟周期)或第一时间段期间向第二比较器逻辑216输出全逻辑一,以确定第二比较器逻辑216的一个或多个逻辑门是否保持固定在逻辑零状态。在一些示例中,自测试控制逻辑212可以在第一周期之后的第二周期(例如,第二时钟周期)期间向第二比较器逻辑216输出全逻辑零,以确定第二比较器逻辑216的一个或多个逻辑门是否保持固定在逻辑一状态。例如,匹配测试可以通过在第一周期期间输出全逻辑一并且在第二周期期间输出全逻辑零来在两个时钟周期内实施。
在一些示例中,自测试控制逻辑212可以向第二比较器逻辑216输出值的组合以实现失配测试。例如,失配测试可以指示第二比较器逻辑216的一个或多个逻辑门是否保持固定在和/或以其他方式冻结在逻辑一状态(例如,始终输出逻辑一)、逻辑零状态(例如,始终输出逻辑零)等。在一些示例中,自测试控制逻辑212可以在第一周期(例如,第一时钟周期)期间向第二比较器逻辑216的逻辑门的(多个)第一输入输出逻辑一并且向这些逻辑门的(多个)第二输入输出逻辑零,以确定一个或多个逻辑门是否保持固定在逻辑零(或逻辑一)状态。在一些示例中,自测试控制逻辑212可以在第二周期(例如,第二时钟周期)期间向第二比较器逻辑216的逻辑门的(多个)第一输入输出逻辑零并且向这些逻辑门的(多个)第二输入输出逻辑一,以确定一个或多个逻辑门是否保持固定在逻辑零(或逻辑一)状态。例如,失配测试可以通过以下方式在两个时钟周期内实施:(i)在第一周期期间向逻辑门的(多个)第一输入输出逻辑一并且向这些逻辑门的(多个)第二输入输出逻辑零,以及(ii)在第二周期期间向逻辑门的(多个)第一输入输出逻辑零并且向这些逻辑门的(多个)第二输入输出逻辑一。
在示例操作中,响应于第二比较器逻辑216基于匹配测试或失配测试中的至少一个的失败而检测到与第二比较器逻辑216相关联的故障状况,第二比较器216可以向存储器218的锁步调试数据220输出故障状况、程序计数器值的锁存等。在示例操作中,锁步比较控制逻辑210可以使锁步调试数据220可供计算系统102的资源经由总线进行检索。在示例操作中,响应于由第二比较器逻辑216执行的自测试,自测试控制逻辑212可以选择(i)第二比较器逻辑216来对功能输出224和锁步输出226执行功能比较以检查功能,以及选择(ii)第一比较器逻辑214来对第一比较器逻辑214执行自测试。
虽然在图2中图示了实施图1的LCL 104的示例方式,但是在图2中图示的元件、过程和/或设备中的一项或多项可以以任何其他方式被组合、划分、重新布置、省略、消除和/或实施。进一步地,图2的示例主硬件202、示例辅助硬件204、示例输入延迟逻辑206、示例输出延迟逻辑208、示例锁步比较控制逻辑210、示例自测试控制逻辑212、第一示例比较器逻辑214、第二示例比较器逻辑216、示例存储器218、示例锁步调试数据220和/或更一般地,示例锁步封装器200可以由硬件、软件、固件和/或硬件、软件和/或固件的任何组合来实施。因此,例如,示例主硬件202、示例辅助硬件204、示例输入延迟逻辑206、示例输出延迟逻辑208、示例锁步比较控制逻辑210、示例自测试控制逻辑212、第一示例比较器逻辑214、第二示例比较器逻辑216、示例存储器218、示例锁步调试数据220和/或更一般地,示例锁步封装器200中的任一项可以由一个或多个模拟或数字电路、逻辑电路、(多个)可编程处理器、(多个)可编程控制器、(多个)GPU、(多个)DSP、(多个)ASIC、(多个)PLD和/或(多个)FPLD来实施。当阅读本专利的任何装置权利要求或系统权利要求以涵盖纯软件和/或纯固件实施方式时,示例主硬件202、示例辅助硬件204、示例输入延迟逻辑206、示例输出延迟逻辑208、示例锁步比较控制逻辑210、示例自测试控制逻辑212、第一示例比较器逻辑214、第二示例比较器逻辑216、示例存储器218和/或示例锁步调试数据220中的至少一项特此被明确定义为包括包含软件和/或固件的非暂态计算机可读存储设备或存储盘,比如存储器、DVD、CD、蓝光光盘等。更进一步地,图1的示例LCL 104可以包括除了或代替图2中图示的那些之外的一个或多个元件、过程和/或设备,和/或可以包括任何或全部所图示的元件、过程和设备中的多于一个。如本文所使用的,短语“通信”,包括其变体,涵盖了直接通信和/或通过一个或多个中间部件进行的间接通信,并且不需要直接物理(例如,有线)通信和/或恒定通信,而是另外包括以周期性间隔、预定间隔、非周期性间隔和/或一次性事件进行的选择性通信。
图3是示例比较器逻辑300的示意性图示。比较器逻辑300可以是图2的第一比较器逻辑214、图2的第二比较器逻辑216和/或更一般地图1的LCL 104的示例实施方式。比较器逻辑300包括第一示例锁存逻辑302、示例选择逻辑304、第一示例检测逻辑306、第二示例检测逻辑308、第二示例锁存逻辑310和示例错误检测逻辑312。
比较器逻辑300包括用于将来自示例总线314、316的输入锁存到选择逻辑304的第一锁存逻辑302。总线314、316包括第一示例总线(CMP_BUS1)314和第二示例总线(CMP_BUS2)316。例如,第一总线314可以由来自图2的输出延迟逻辑208的输出来实施。在一些示例中,第二总线316可以由来自图2的辅助硬件204的锁步输出226来实施。第一锁存逻辑302包括第一示例锁存器318和第二示例锁存器320。第一锁存器318和第二锁存器320是D触发器。替代性地,第一锁存器318和/或第二锁存器320可以用任何其他类型的锁存器或触发器来实施。第一锁存器318的输入耦合到第一总线314,并且第二锁存器320的输入耦合到第二总线316。
比较器逻辑300包括选择逻辑304,该选择逻辑用于基于来自示例自测试控制逻辑322的命令、指令等来选择比较器逻辑300是执行功能比较(例如,锁步测试、联机锁步测试等)还是自测试。在一些示例中,自测试逻辑控制逻辑322可以实施图2的自测试控制逻辑212。在一些示例中,自测试控制逻辑322可以由硬件状态机来实施。替代性地,自测试控制逻辑322可以由一个或多个模拟或数字电路、逻辑电路、(多个)可编程处理器、(多个)可编程控制器、(多个)ASIC、(多个)PLD和/或(多个)FPLD来实施。
选择逻辑304包括多个示例多路复用器324、326、328、330,该多个示例多路复用器包括第一示例多路复用器324、第二示例多路复用器326、第三示例多路复用器328和第四示例多路复用器330。多个多路复用器324、326、328、330包括第一组多路复用器和第二组多路复用器。第一组多路复用器包括多个多路复用器324、326、328、330的第一部分。该第一部分包括第一多路复用器324和第二多路复用器326。第二组多路复用器包括多个多路复用器324、326、328、330的第二部分。该第二部分包括第三多路复用器328和第四多路复用器330。
多个多路复用器324、326、328、330中的第一组多路复用器的相应第一输入耦合到第一锁存器318的输出。多个多路复用器324、326、328、330中的第一组多路复用器的相应第二输入耦合到自测试控制逻辑322的相应输出。多个多路复用器324、326、328、330中的第二组多路复用器的相应第一输入耦合到第二锁存器320的输出。多个多路复用器324、326、328、330中的第二组多路复用器的相应第二输入耦合到自测试控制逻辑322的相应输出。
为了清楚起见,图3中仅描绘了选择逻辑304的四个多路复用器。替代性地,可以使用比图3所描绘的多路复用器更少或更多的多路复用器来实施选择逻辑304。例如,多个多路复用器324、326、328、330的数量可以对应于来自资源的要测试的输出的数量。在一些示例中,多个多路复用器324、326、328、330的数量可以等于和/或以其他方式对应于来自图2的主硬件202的要测试的输出的数量的两倍。
比较器逻辑300包括用于检测选择逻辑304的输出之间的差异的第一检测逻辑306。第一检测逻辑306包括多个第一示例逻辑门332、334。逻辑门332、334是异或(XOR)逻辑门。替代性地,逻辑门332、334中的一个或多个可以是不同类型的逻辑门。多个第一逻辑门332、334包括第一示例逻辑门332和第二示例逻辑门334。逻辑门332、334的相应第一输入耦合到多个多路复用器324、326、328、330中的第一组多路复用器的相应输出。例如,第一逻辑门332的第一输入耦合到第一多路复用器324的输出,并且第二逻辑门334的第一输入耦合到第二多路复用器326的输出。逻辑门332、334的相应第二输入耦合到多个多路复用器324、326、328、330中的第二组多路复用器的相应输出。例如,第一逻辑门332的第二输入耦合到第三多路复用器328的输出,并且第二逻辑门334的第二输入耦合到第四多路复用器330的输出。
为了清楚起见,图3中仅描绘了第一检测逻辑306的两个逻辑门。替代性地,可以使用比图3所描绘的逻辑门更少或更多的逻辑门来实施第一检测逻辑306。例如,第一逻辑门332、334的数量可以对应于N/2个逻辑门,其中,N是多个多路复用器324、326、328、330的数量。在一些示例中,第一逻辑门332、334的数量可以等于和/或以其他方式对应于来自图2的主硬件202的要测试的输出的数量。
比较器逻辑300包括用于检测第一检测逻辑306的输出中是否存在至少一个逻辑一的第二检测逻辑308。第二检测逻辑308包括第二示例逻辑门336、338,其中包括第三示例逻辑门336和第四示例逻辑门338。第三逻辑门336是或逻辑门。第四逻辑门338是与非(NAND)逻辑门。替代性地,第三逻辑门336和/或第四逻辑门338可以用不同类型和/或数量的逻辑门来实施。第三逻辑门336的相应第一输入耦合到第一逻辑门332、334的相应输出。例如,第三逻辑门336的第一输入耦合到第一逻辑门332的输出,并且第三逻辑门336的第二输入耦合到第二逻辑门334的输出。第四逻辑门338的相应输入耦合到第一逻辑门332、334的相应输出。例如,第四逻辑门338的第一输入耦合到第一逻辑门332的输出,并且第四逻辑门338的第二输入耦合到第二逻辑门334的输出。
比较器逻辑300包括用于将来自第二检测逻辑308的输出锁存到错误检测逻辑312的第二锁存逻辑310。第二锁存逻辑310包括第三示例锁存器340和第四示例锁存器342。第三锁存器340和第四锁存器342是D触发器。替代性地,第三锁存器340和/或第四锁存器342可以用任何其他类型的锁存器或触发器来实施。第三锁存器340的输入耦合到第三逻辑门336的输出。第四锁存器342的输入耦合到第四逻辑门338的输出。
比较器逻辑300包括用于检测与图2的锁步封装器200的锁步操作、功能等相关的故障状况或错误的错误检测逻辑312。错误检测逻辑312包括第五示例逻辑门344、第六示例逻辑门346、第七示例逻辑门348和第八示例逻辑门350。第五逻辑门344、第六逻辑门346和第七逻辑门348是与逻辑门。替代性地,第五逻辑门344、第六逻辑门346和/或第七逻辑门348中的一个或多个可以由不同类型和/或数量的逻辑门来实施。第八逻辑门350是或逻辑门。替代性地,第八逻辑门350可以用不同类型和/或数量的逻辑门来实施。
第五逻辑门344的第一输入耦合到第三锁存器340的输出。第五逻辑门344的第二输入(!SELF-TEST_MODE)耦合到比较器逻辑300的外部逻辑。例如,第五逻辑门344的第二输入可以耦合到自测试控制逻辑322的输出。例如,第二输入可以被配置为接收由!SELF-TEST_MODE实施的第一控制信号。第五逻辑门344的输出(FUNC_COMPARE_ERROR)耦合到比较器逻辑300的外部逻辑。例如,第五逻辑门344的输出可以耦合到图2的存储器218。
第六逻辑门346的第一输入耦合到第三锁存器340的输出。第六逻辑门346的第二输入(MATCH_TEST)耦合到比较器逻辑300的外部逻辑。例如,第六逻辑门346的第二输入可以耦合到自测试控制逻辑322的输出。例如,第二输入可以被配置为接收由MATCH_TEST实施的第二控制信号。
第七逻辑门348的第一输入耦合到第四锁存器342的输出。第七逻辑门348的第二输入(MISMATCH_TEST)耦合到比较器逻辑300的外部逻辑。例如,第七逻辑门348的第二输入可以耦合到自测试控制逻辑322的输出。例如,第二输入可以被配置为接收由MISMATCH_TEST实施的第二控制信号。
第八逻辑门350的第一输入耦合到第六逻辑门346的输出。第八逻辑门350的第二输入耦合到第七逻辑门348的输出。第八逻辑门350的输出(SELF-TEST_ERROR)可以耦合到比较器逻辑300的外部逻辑。例如,第八逻辑门350的输出可以耦合到图2的存储器218。
在示例操作中,自测试控制逻辑322可以选择比较器逻辑300是测试锁步比较还是功能比较。例如,自测试控制逻辑322可以指示选择逻辑304和/或更一般地指示比较器逻辑300来测试对来自第一总线314和/或第二总线316的功能输出的比较。在这样的示例中,自测试控制逻辑322可以使自测试模式信号(SELF-TEST_MODE)无效。在这样的示例中,自测试控制逻辑322可以向多个多路复用器324、326、328、330输出信号(例如,选择信号),以选择来自第一锁存器318和第二锁存器320的输入以输出到第一检测逻辑306。例如,第一逻辑门332、334可以将来自第一总线314的(多个)第一输入与来自第二总线316的(多个)第二输入进行比较。第三逻辑门336可以响应于来自第一逻辑门332、334的输出中的至少一个输出是逻辑一而使逻辑一有效。例如,第三逻辑门336可以基于确定第一逻辑门332、334中的一个(多个)逻辑门检测到来自总线314、316的输入中的一个(多个)输入的失配的来使逻辑一有效。在这样的示例中,第五逻辑门344可以基于检测到的失配和第五逻辑门344的第二输入处的信号的有效,而使逻辑一有效作为FUNC_COMPARE_ERROR信号。
在一些示例中,自测试控制逻辑322可以指示选择逻辑304和/或更一般地指示比较器逻辑300来对比较器逻辑300执行自测试。在这样的示例中,自测试控制逻辑322可以使自测试模式信号(SELF-TEST_MODE)有效并且使匹配测试模式信号(MATCH_TEST)有效,以使得比较器逻辑300执行匹配测试。
在一些示例中,自测试控制逻辑322使得比较器逻辑300在两个周期内执行匹配测试。例如,自测试控制逻辑322可以向多个多路复用器324、326、328、330输出信号(例如,选择信号),以选择来自自测试控制逻辑322的输入以输出到第一检测逻辑306。例如,自测试控制逻辑322可以在第一周期期间向多个多路复用器324、326、328、330中的每一个输出逻辑零或者在(第一周期之后的)第二周期期间向这些多路复用器中的每一个输出逻辑一,以实现匹配测试。在这样的示例中,第一逻辑门332、334可以对在第一周期期间从多个多路复用器324、326、328、330输出的逻辑零和在第二周期期间从多个多路复用器324、326、328、330输出的逻辑一进行比较。响应于来自第一逻辑门332、334的输出中的至少一个输出是逻辑一,第三逻辑门336可以在第一周期期间使逻辑一有效,这可以指示第一逻辑门332、334中的至少一个保持固定在和/或以其他方式锁存在逻辑一输出状态。响应于来自第一逻辑门332、334的输出中的至少一个输出是逻辑一,第三逻辑门336可以在第二周期期间使逻辑一有效,这可以指示第一逻辑门332、334中的至少一个保持固定在和/或以其他方式锁存在逻辑零输出状态。例如,第三逻辑门336可以基于确定第一逻辑门332、334中的一个(多个)逻辑门未基于其输入生成输出来使逻辑一有效。在这样的示例中,第六逻辑门346可以使逻辑一对第八逻辑门350有效,该第八逻辑门进而使逻辑一有效作为SELF-TEST_ERROR信号。在一些这样的示例中,SELF-TEST_ERROR信号的有效指示检测到比较器逻辑300的故障状况,这一指示可以作为锁步调试数据220存储在图2的存储器218中。
在一些示例中,自测试控制逻辑322可以使自测试模式信号(SELF-TEST_MODE)有效并且使失配测试模式信号(MISMATCH_TEST)有效,以使得比较器逻辑300执行失配测试。在这样的示例中,自测试控制逻辑322可以向多个多路复用器324、326、328、330输出信号(例如,选择信号),以选择来自自测试控制逻辑322的输入以输出到第一检测逻辑306。例如,自测试控制逻辑322可以在第一周期期间向多路复用器324、326、328、330的第一部分(比如第一多路复用器324和第二多路复用器326)输出逻辑一,并且向多路复用器324、326、328、330的第二部分(比如第三多路复用器328和第四多路复用器330)输出逻辑零。在这样的示例中,自测试控制逻辑322可以在(第一周期之后的)第二周期期间向多路复用器324、326、328、330的第一部分(比如第一多路复用器324和第二多路复用器326)输出逻辑零,并且向多路复用器324、326、328、330的第二部分(比如第三多路复用器328和第四多路复用器330)输出逻辑一。在一些这样的示例中,自测试控制逻辑322可以基于在这两个周期期间强制输出这两个不同的值(例如,(多个)逻辑零、(多个)逻辑一等)来实现失配测试。
在这样的示例中,第一逻辑门332、334可以对来自多个多路复用器324、326、328、330的逻辑输出进行比较。响应于来自第一逻辑门332、334的输出中的至少一个输出是逻辑零,第四逻辑门338可以使逻辑一有效,这可以指示第一逻辑门332、334中的至少一个保持固定在和/或以其他方式锁存在逻辑零输出状态。例如,第四逻辑门338可以基于确定第一逻辑门332、334中的一个(多个)逻辑门未基于其输入生成输出来使逻辑一有效。在这样的示例中,第七逻辑门348可以使逻辑一对第八逻辑门350有效,该第八逻辑门进而使逻辑一有效作为SELF-TEST_ERROR信号。在一些这样的示例中,SELF-TEST_ERROR信号的有效指示检测到比较器逻辑300的故障状况,这一指示可以作为锁步调试数据220存储在图2的存储器218中。有利地,基于在两个周期内完成匹配测试以及在两个周期内完成失配测试,自测试控制逻辑322可以在四个周期内实现对比较器逻辑300的完整自测试。
图4A至图4B是示例双比较器逻辑400的示意性图示。双比较器逻辑400可以是图2的第一比较器逻辑214和图2的第二比较器逻辑216和/或更一般地图1的LCL 104的示例实施方式。双比较器逻辑400包括第一示例比较器逻辑402和第二示例比较器逻辑404。例如,第一比较器逻辑402可以实施图2的第一比较器逻辑214和/或图2的第二比较器逻辑216。在一些示例中,第二比较器逻辑404可以实施图2的第一比较器逻辑214和/或图2的第二比较器逻辑216。
在图4A和/或图4B中进一步描绘了示例自测试控制逻辑405。在一些示例中,自测试控制逻辑405可以实施图2的自测试控制逻辑212和/或图3的自测试控制逻辑322。在一些示例中,自测试控制逻辑405可以由硬件状态机来实施。替代性地,自测试控制逻辑405可以由一个或多个模拟或数字电路、逻辑电路、(多个)可编程处理器、(多个)可编程控制器、(多个)ASIC、(多个)PLD和/或(多个)FPLD来实施。在该示例中,自测试控制逻辑405的输出耦合到第一比较器逻辑402和第二比较器逻辑404的输入。在一些示例中,双比较器逻辑400可以包括自测试控制逻辑405。
第一比较器逻辑402包括第一示例锁存器406、第一示例选择逻辑408、第一示例检测逻辑410、第二示例检测逻辑412、第二示例锁存器414、第三示例锁存器416和第一示例错误检测逻辑418。第一选择逻辑408包括第一组示例多路复用器420、422,其中包括第一示例多路复用器420和第二示例多路复用器422。第一选择逻辑408包括第二组示例多路复用器424、426,其中包括第三示例多路复用器424和第四示例多路复用器426。第一检测逻辑410包括第一示例逻辑门428、430,其中包括第一示例逻辑门428和第二示例逻辑门430。第二检测逻辑412包括第三示例逻辑门432和第四示例逻辑门434。第一错误检测逻辑418包括第五示例逻辑门436、第六示例逻辑门438、第七示例逻辑门440、第八示例逻辑门442、第九示例逻辑门444和第十示例逻辑门446。
为了清楚起见,图4A至图4B中仅描绘了第一选择逻辑408的四个多路复用器。替代性地,可以使用比图4A至图4B所描绘的多路复用器更少或更多的多路复用器来实施第一选择逻辑408。例如,第一组多路复用器420、422的数量和/或第二组多路复用器424、426的数量可以对应于来自资源的要测试的输出的数量。在一些示例中,第一组多路复用器420、422的数量和/或第二组多路复用器424、426的数量可以等于和/或以其他方式对应于来自图2的主硬件202的要测试的输出的数量的两倍。
为了清楚起见,图4A至图4B中仅描绘了第一检测逻辑410的两个逻辑门。替代性地,可以使用比图4A至图4B所描绘的逻辑门更少或更多的逻辑门来实施第一检测逻辑410。例如,第一逻辑门428、430的数量可以对应于N/2个逻辑门,其中,N是第一选择逻辑408的多路复用器420、422、424、426的数量。在一些示例中,第一逻辑门428、430的数量可以等于和/或以其他方式对应于来自图2的主硬件202的要测试的输出的数量。
第二比较器逻辑404包括第四示例锁存器448、第二示例选择逻辑450、第三示例检测逻辑452、第四示例检测逻辑454、第五示例锁存器456、第六示例锁存器458和第二示例错误检测逻辑460。第二选择逻辑450包括第三组示例多路复用器462、464,其中包括第五示例多路复用器462和第六示例多路复用器464。第二选择逻辑450包括第四组示例多路复用器466、468,其中包括第七示例多路复用器466和第八示例多路复用器468。第三检测逻辑452包括第二示例逻辑门470、472,其中包括第一示例逻辑门470和第二示例逻辑门472。第二检测逻辑454包括第三示例逻辑门474和第四示例逻辑门476。第二错误检测逻辑460包括第五示例逻辑门478、第六示例逻辑门480、第七示例逻辑门482、第八示例逻辑门484、第九示例逻辑门486和第十示例逻辑门488。
为了清楚起见,图4A至图4B中仅描绘了第二选择逻辑450的四个多路复用器。替代性地,可以使用比图4A至图4B所描绘的多路复用器更少或更多的多路复用器来实施第二选择逻辑450。例如,第三组多路复用器462、464的数量和/或第四组多路复用器466、468的数量可以对应于来自资源的要测试的输出的数量。在一些示例中,第三组多路复用器462、464的数量和/或第四组多路复用器466、468的数量可以等于和/或以其他方式对应于来自图2的主硬件202的要测试的输出的数量的两倍。
为了清楚起见,图4A至图4B中仅描绘了第三检测逻辑470的两个逻辑门。替代性地,可以使用比图4A至图4B所描绘的逻辑门更少或更多的逻辑门来实施第三检测逻辑470。例如,第二逻辑门470、472的数量可以对应于N/2个逻辑门,其中,N是第二选择逻辑450的多路复用器462、464、466、468的数量。在一些示例中,第二逻辑门470、472的数量可以等于和/或以其他方式对应于来自图2的主硬件202的要测试的输出的数量。
第一锁存器406、第二锁存器414、第三锁存器416、第四锁存器448、第五锁存器456和第六锁存器458是D触发器。替代性地,第一锁存器318和/或第二锁存器320可以用任何其他类型的锁存器或触发器来实施。第一逻辑门428、430和第二逻辑门470、472是异或逻辑门。第二检测逻辑412的第三逻辑门432和第四检测逻辑454的第三逻辑门474是或逻辑门。第二检测逻辑412的第四逻辑门434和第四检测逻辑454的第四逻辑门476是与非逻辑门。第一错误检测逻辑418的第五逻辑门436、第六逻辑门438、第七逻辑门440和第九逻辑门444是与门。第一错误检测逻辑418的第八逻辑门442和第二错误检测逻辑460的第八逻辑门484是反相器逻辑门。第一错误检测逻辑418的第十逻辑门446和第二错误检测逻辑460的第十逻辑门488是或门。替代性地,第一比较器逻辑402的一个或多个逻辑门和/或第二比较器逻辑404的一个或多个逻辑门可以用与图4A至图4B的所图示的示例中描绘的不同的类型和/或数量的逻辑门来实施。
第一比较器逻辑402包括用于将来自第一示例总线(CMP_BUS1)489的输入锁存到第一选择逻辑408的第一锁存器406。在一些示例中,第一总线489可以由来自图2的输出延迟逻辑208的输出来实施。第一比较器逻辑402包括第一选择逻辑408,该第一选择逻辑用于基于来自示例自测试控制逻辑(例如,图2的自测试控制逻辑212、图3的自测试控制逻辑322等)的命令、指令等来选择第一比较器逻辑402是执行功能比较(例如,锁步测试、联机锁步测试等)还是自测试。
第一组多路复用器420、422中的各个多路复用器的相应第一输入耦合到第一锁存器406。第一组多路复用器420、422中的各个多路复用器的相应第二输入耦合到自测试控制逻辑405。第一组多路复用器420、422中的各个多路复用器的相应输出耦合到第一逻辑门428、430的相应第一输入。例如,第一逻辑门428的第一输入耦合到第一多路复用器420的输出,并且第二逻辑门430的第一输入耦合到第二多路复用器422的输出。例如,第一逻辑门428的第二输入耦合到第五多路复用器462的输出,并且第二逻辑门430的第二输入耦合到第六多路复用器464的输出。
第一比较器逻辑402包括用于检测第一选择逻辑408的输出之间的差异的第一检测逻辑410。第一逻辑门428、430的输出耦合到第三逻辑门432和第四逻辑门434的输入。例如,第一逻辑门428的(多个)输出耦合到第三逻辑门432的第一输入和第四逻辑门434的第一输入。
第一比较器逻辑402包括用于检测第一检测逻辑410的输出中是否存在至少一个逻辑一的第二检测逻辑412。第三逻辑门432和第四逻辑门434的输出耦合到第二锁存器414和第三锁存器416的相应输入。例如,第三逻辑门432的输出耦合到第二锁存器414的输入,并且第四逻辑门434的输出耦合到第三锁存器416的输入。
第二锁存器414的输出耦合到第五逻辑门436的第一输入和第六逻辑门438的第一输入。第三锁存器416的输出耦合到第七逻辑门440的第一输入和第八逻辑门442的输入。第八逻辑门442的输出耦合到第九逻辑门444的第一输入。第六逻辑门438、第七逻辑门440和第九逻辑门444的输出耦合到第十逻辑门446的相应输入。第五逻辑门436的输出(FUNC_COMPARE_ERROR1)和第十逻辑门446的输出(SELF-TEST_ERROR1)可以耦合到双比较器逻辑400的外部逻辑。例如,第五逻辑门436和第十逻辑门446的输出可以耦合到图2的存储器218。
第二比较器逻辑404包括用于将来自第二示例总线(CMP_BUS2)490的输入锁存到第二选择逻辑450的第四锁存器448。在一些示例中,第二总线490可以由来自图2的辅助硬件204的锁步输出226来实施。第二比较器逻辑404包括第二选择逻辑450,该第二选择逻辑用于基于来自示例自测试控制逻辑(例如,图2的自测试控制逻辑212、图3的自测试控制逻辑322等)的命令、指令等来选择第二比较器逻辑404是执行功能比较(例如,锁步测试、联机锁步测试等)还是自测试。
第三组多路复用器462、464中的各个多路复用器的相应第一输入和第四组多路复用器466、468中的各个多路复用器的相应第一输入耦合到第四锁存器448。第三组多路复用器462、464中的各个多路复用器的相应第二输入耦合到自测试控制逻辑405。第四组多路复用器466、468中的各个多路复用器的相应输出耦合到第二逻辑门470、472的相应第一输入。例如,第一逻辑门470的第一输入耦合到第三多路复用器424的输出,并且第二逻辑门472的第一输入耦合到第四多路复用器426的输出。例如,第一逻辑门470的第二输入耦合到第七多路复用器466的输出,并且第二逻辑门472的第二输入耦合到第八多路复用器468的输出。
第二比较器逻辑404包括用于检测第二选择逻辑450的输出之间的差异的第三检测逻辑452。第二逻辑门470、472的输出耦合到第三逻辑门474和第四逻辑门476的输入。例如,第一逻辑门470的(多个)输出耦合到第三逻辑门474的第一输入和第四逻辑门476的第一输入。
第二比较器逻辑404包括用于检测第三检测逻辑452的输出中是否存在至少一个逻辑一的第四检测逻辑454。第三逻辑门474和第四逻辑门476的输出耦合到第五锁存器456和第六锁存器458的相应输入。例如,第三逻辑门474的输出耦合到第五锁存器456的输入,并且第四逻辑门476的输出耦合到第六锁存器458的输入。
第五锁存器456的输出耦合到第五逻辑门478的第一输入和第六逻辑门480的第一输入。第六锁存器458的输出耦合到第七逻辑门482的第一输入和第八逻辑门484的输入。第八逻辑门484的输出耦合到第九逻辑门486的第一输入。第六逻辑门480、第七逻辑门482和第九逻辑门486的输出耦合到第十逻辑门488的相应输入。第五逻辑门478的输出(FUNC_COMPARE_ERROR2)和第十逻辑门488的输出(SELF-TEST_ERROR2)可以耦合到双比较器逻辑400的外部逻辑。例如,第五逻辑门478和第十逻辑门488的输出可以耦合到图2的存储器218。
在图4A至图4B的所图示的示例中,使用至少两个不同的时钟域来实施双比较器逻辑400。在该示例中,第四锁存器448、第五锁存器456和第六锁存器458是使用第一时钟域来实施的。在该示例中,第一锁存器406、第二锁存器414和第三锁存器416是使用不同于第一时钟域的第二时钟域来实施的。
在图4A至图4B的所图示的示例中,双比较器逻辑400包括用于检测与图2的锁步封装器200的锁步操作、功能等相关的(多个)故障状况或(多个)错误的第一错误检测逻辑418和第二错误检测逻辑460。在该示例中,双比较器逻辑400实施两种测试模式(TM1和TM2)。例如,双比较器逻辑400可以对第一比较器逻辑402执行自测试,以实施测试模式1(TM1)。在这样的示例中,响应于确定对第一比较器逻辑402执行自测试,自测试控制逻辑405和/或更一般地双比较器逻辑400可以使第一测试模式信号(TM1)有效和/或使第二测试模式信号(TM2)无效。在一些示例中,双比较器逻辑400可以对第二比较器逻辑404执行自测试,以实施测试模式2(TM2)。在这样的示例中,响应于确定对第二比较器逻辑404执行自测试,自测试控制逻辑405和/或更一般地双比较器逻辑400可以使第一测试模式信号无效和/或使第二测试模式信号有效。
在一些示例中,第一错误检测逻辑418的第五逻辑门436的第二输入(!TM1和!COMPARATOR1_SELF-TEST_ERROR_FORCING_MODE)耦合到自测试控制逻辑405。例如,第五逻辑门436的第二输入可以耦合到自测试控制逻辑405的输出。在一些示例中,响应于双比较器逻辑400以TM2(例如,!TM1)进行操作并且第一比较器逻辑402没有进行自测试(例如,!COMPARATOR1_SELF-TEST_ERROR_FORCING_MODE)而使第二输入处的信号有效。
在一些示例中,第一错误检测逻辑418的第六逻辑门438的第二输入(TM1_MATCH_TEST)耦合到自测试控制逻辑405。例如,第六逻辑门438的第二输入可以耦合到自测试控制逻辑405的输出。在一些示例中,可以响应于第一比较器逻辑402对第一比较器逻辑402执行自测试(比如匹配测试)而使第二输入处的信号有效。例如,匹配测试可以通过第一组多路复用器420、422和第三组多路复用器462、464输出来自自测试控制逻辑405的全逻辑零(或逻辑一)以测试第一逻辑门428、430中的一个(多个)第一逻辑门是否保持固定在和/或以其他方式锁存到逻辑一(或逻辑零)状态来实施。
在一些示例中,第一错误检测逻辑418的第七逻辑门440的第二输入(TM1_MISMATCH_TEST)耦合到自测试控制逻辑405。例如,第七逻辑门440的第二输入可以耦合到自测试控制逻辑405的输出。在一些示例中,可以响应于第一比较器逻辑402对第一比较器逻辑402执行自测试(比如失配测试)而使第二输入处的信号有效。例如,失配测试可以在两个周期内实施。例如,在第一周期期间,第一组多路复用器420、422可以输出来自自测试逻辑405的全逻辑一,并且第三组多路复用器462、464可以输出来自自测试控制逻辑405的全逻辑零,以测试第一逻辑门428、430中的一个(多个)第一逻辑门是否保持固定在和/或以其他方式锁存到逻辑零(或逻辑一)状态。在这样的示例中,在第一周期之后的第二周期期间,第一组多路复用器420、422可以输出来自自测试逻辑405的全逻辑零,并且第三组多路复用器462、464可以输出来自自测试控制逻辑405的全逻辑一,以测试第一逻辑门428、430中的一个(多个)第一逻辑门是否保持固定在和/或以其他方式锁存到逻辑零(或逻辑一)状态。
在一些示例中,第一错误检测逻辑418的第九逻辑门444的第二输入(!COMPARATOR1_ERROR_FORCING_MODE和COMPARATOR1_SELF-TEST_ERROR_FORCING_MODE)耦合到自测试控制逻辑405。例如,第二输入可以耦合到自测试控制逻辑405的输出。在一些示例中,响应于第一比较器逻辑402未以错误强制模式(!COMPARATOR1_ERROR_FORCING_MODE)进行操作并且第一比较器逻辑402进行自测试(这可以用在该图示的示例中描绘的信号COMPARATOR1_SELF-TEST_ERROR_FORCING_MODE的有效来指示)而使第二输入处的信号有效。
在一些示例中,响应于第一比较器逻辑402以错误强制模式进行操作(这可以用在该图示的示例中描绘的信号COMPARATOR1_ERROR_FORCING_MODE的有效来实施),第一比较器逻辑402可以反转来自第一总线489的功能输出之一。这可能触发失配,该失配可以由第五逻辑门436的逻辑一的有效来指示。
在一些示例中,第二错误检测逻辑460的第五逻辑门478的第二输入(其由如该图示的示例中所描绘的信号!TM2和!COMPARATOR2_SELF-TEST_ERROR_FORCING_MODE指示)耦合到自测试控制逻辑405。例如,第二输入可以耦合到自测试控制逻辑405的输出。在一些示例中,响应于双比较器逻辑400以TM1进行操作(这可以用如该图示的示例中所描绘述的信号!TM2来实施)并且第二比较器逻辑404未进行自测试(这可以由如该图示的示例中所描绘的信号!COMPARATOR2_SELF-TEST_ERROR_FORCING_MODE来实施)而使第二输入处的信号有效。
在一些示例中,第二错误检测逻辑460的第六逻辑门480的第二输入(其由如该图示的示例中所描绘的信号TM2_MATCH_TEST指示)耦合到双比较器逻辑400的自测试控制逻辑405。例如,第六逻辑门480的第二输入可以耦合到自测试控制逻辑405的输出。在一些这样的示例中,可以响应于第二比较器逻辑404对第二比较器逻辑404执行自测试(比如匹配测试)而使第二输入处的信号有效。例如,匹配测试可以通过第二组多路复用器424、426和第四组多路复用器466、468输出来自自测试控制逻辑405的全逻辑零(或逻辑一)以测试第二逻辑门470、472中的一个(多个)第二逻辑门是否保持固定在和/或以其他方式锁存到逻辑一状态来实施。
在一些示例中,第二错误检测逻辑460的第七逻辑门482的第二输入(其由如该图示的示例中所描绘的信号TM2_MISMATCH_TEST指示)耦合到自测试控制逻辑405。例如,第七逻辑门482的第二输入可以耦合到自测试控制逻辑405的输出。在一些示例中,可以响应于第二比较器逻辑404对第二比较器逻辑404执行自测试(比如失配测试)而使第二输入处的信号有效。例如,失配测试可以通过第二组多路复用器424、426和第四组多路复用器466、468在第一周期期间分别输出来自自测试控制逻辑405的逻辑一和逻辑零以测试第二逻辑门474、476中的一个(多个)第二逻辑门是否保持固定在和/或以其他方式锁存到逻辑零(或逻辑一)状态来实施。在这样的示例中,失配测试可以通过第二组多路复用器424、426和第四组多路复用器466、468在第二周期期间分别输出来自自测试控制逻辑405的逻辑零和逻辑一以测试第二逻辑门474、476中的一个(多个)第二逻辑门是否保持固定在和/或以其他方式锁存到逻辑零(或逻辑一)状态来实施。
在一些示例中,第二错误检测逻辑460的第九逻辑门486的第二输入(其可以由如该图示的示例中所描绘的信号!COMPARATOR2_ERROR_FORCING_MODE和COMPARATOR2_SELF-TEST_ERROR_FORCING_MODE来实施)耦合到自测试控制逻辑405。例如,第二输入可以耦合到自测试控制逻辑405的输出。在一些示例中,响应于第二比较器逻辑404未以错误强制模式进行操作(这可以由如该图示的示例中所描绘的信号!COMPARATOR2_ERROR_FORCING_MODE来实施)并且第二比较器逻辑404进行自测试(这可以用如该图示的示例中所描绘的信号COMPARATOR2_SELF-TEST_ERROR_FORCING_MODE来实施)而使第二输入处的信号有效。
在一些示例中,响应于第二比较器逻辑404以错误强制模式进行操作(这可以用在该图示的示例中描绘的信号COMPARATOR2_ERROR_FORCING_MODE的有效来实施),第二比较器逻辑404可以反转来自第二总线490的功能输出之一。这可能触发失配,该失配可以由第五逻辑门478的逻辑一的有效来指示。
在示例操作中,自测试控制逻辑405和/或更一般地双比较器逻辑400可以选择是第一比较器逻辑402还是第二比较器逻辑404来测试图2的锁步封装器200的锁步功能。例如,自测试控制逻辑405可以选择第一比较器逻辑402来测试锁步功能。在这样的示例中,自测试控制逻辑405调用和/或以其他方式指示第一组多路复用器420、422和第三组多路复用器462、464以将来自总线489、490的输入传递到第一逻辑门428、430。在一些这样的示例中,自测试控制逻辑405可以使第一错误检测逻辑418的第五逻辑门436的第二输入处的信号有效,以实现对锁步功能的测试。在一些示例中,响应于第一逻辑门428、430检测到来自总线489、490的输入是匹配的,第五逻辑门436可以输出逻辑低电平信号作为FUNC_COMPARE_ERROR1信号。在一些示例中,响应于第一逻辑门428、430检测到来自总线489、490的输入不匹配,第五逻辑门436可以输出逻辑高电平信号作为FUNC_COMPARE_ERROR1信号。
在示例操作中,自测试控制逻辑405可以选择第二比较器逻辑404来执行自测试,该自测试可以包括匹配测试和/或失配测试。在这样的示例中,自测试控制逻辑405调用和/或以其他方式指示第二组多路复用器424、426和第四组多路复用器466、468以将来自自测试控制逻辑405的输入传递到第二逻辑门470、472。在一些这样的示例中,自测试控制逻辑405可以使第二错误检测逻辑460的第五逻辑门436的第二输入处的信号无效,以实现自测试。
在一些示例中,自测试控制逻辑405(i)向第二组多路复用器424、426和第四组多路复用器466、468输出逻辑零(或逻辑一)以执行匹配测试,并且(ii)使TM2_MATCH_TEST有效。响应于第二逻辑门470、472未检测到来自第二逻辑门470、472的至少一个逻辑一,第六逻辑门480可以向第十逻辑门488输出逻辑低电平信号,这指示匹配测试通过。响应于第二逻辑门470、472检测到来自第二逻辑门470、472的至少一个逻辑一,第六逻辑门480可以向第十逻辑门488输出逻辑高电平信号,这指示匹配测试失败。
在一些示例中,自测试控制逻辑405(i)在第一周期期间向第二组多路复用器424、426输出逻辑一并且向第四组多路复用器466、468输出逻辑零,并且在(第一周期之后的)第二周期期间向第二组多路复用器424、426输出逻辑零并且向第四组多路复用器466、468输出逻辑一,以执行失配测试,并且(ii)使TM2_MISMATCH_TEST有效。响应于第二逻辑门470、472未检测到来自第二逻辑门470、472的至少一个逻辑一,第六逻辑门480可以向第十逻辑门488输出逻辑低电平信号,这指示失配测试通过或成功完成。响应于第二逻辑门470、472检测到来自第二逻辑门470、472的至少一个逻辑一,第六逻辑门480可以向第十逻辑门488输出逻辑高电平信号,这指示失配测试失败或未成功完成。
在示例操作中,响应于第六逻辑门480、第七逻辑门482或第九逻辑门486中的至少一个输出逻辑一,第十逻辑门488可以使逻辑一有效作为SELF-TEST_ERROR2信号。在一些这样的示例中,SELF-TEST_ERROR2信号的有效指示检测到第二比较器逻辑402的故障状况,这一指示可以作为锁步调试数据220存储在图2的存储器218中。
在示例操作中,自测试控制逻辑405和/或更一般地双比较器逻辑400可以选择(i)第二比较器逻辑404来响应于第二比较器逻辑404完成自测试(例如,成功完成自测试)而测试锁步功能,以及选择(ii)第一比较器逻辑402来执行自测试。有利地,通过一次测试第一比较器逻辑402或第二比较器逻辑404中的至少一个,第一比较器逻辑402或第二比较器逻辑404中的另一个可以保持联机,以测试与图2的主硬件202和辅助硬件204相关联的锁步。
图5是描绘了图1的示例LCL 104、图2的锁步比较控制逻辑210、图3的比较器逻辑300和/或图4A至图4B的双比较器逻辑400的示例操作的时序图500。时序图500包括示例波形502、504、506、508、510、512、514、516,其中包括第一示例波形502、第二示例波形504、第三示例波形506、第四示例波形508、第五示例波形510、第六示例波形512、第七示例波形514和第八示例波形516。具体地,第一波形502、第二波形504、第三波形506、第五波形510和/或第六波形512可以对应于与(i)单比较器实施方式(例如,图3的比较器逻辑300)和(ii)双比较器实施方式(例如,图4A至图4B的双比较器逻辑400)两者相关联的信号。在一些示例中,第四波形508、第七波形514和第八波形516可以对应于与双比较器示例中的第二比较器(例如,图4A至图4B的双比较器逻辑400的第一比较器逻辑402和/或第二比较器逻辑404)相关联的信号。
第一波形502实施时钟信号。例如,第一波形502可以实施由图3的第一锁存器318、第二锁存器320、第三锁存器340和/或第四锁存器342接收到的时钟信号(CLK)。在一些示例中,第一波形502可以实施由图4A至图4B的第一锁存器406、第二锁存器414、第三锁存器416、第四锁存器448、第五锁存器456和/或第六锁存器458接收到的时钟信号(CLK)。
第二波形504实施自测试使能信号。例如,自测试使能信号可以由图2的自测试控制逻辑212、图3的自测试控制逻辑322和/或图4A至图4B的自测试控制逻辑405来实施。在一些示例中,自测试使能信号可以实施图3中描绘的信号SELF-TEST_MODE。在一些示例中,自测试控制逻辑212、自测试控制逻辑322和/或自测试控制逻辑405可以使自测试使能信号有效,以发起和/或以其他方式触发对图2的第一比较器逻辑214和/或第二比较器逻辑216、图3的比较器逻辑300和/或图4A至图4B的第一比较器逻辑402和/或第二比较器逻辑404的自测试。
第三波形506实施第一比较器逻辑(比如图2的第一比较器逻辑214、图3的比较器逻辑300和/或图4A至图4B的第一比较器逻辑402)的操作。第四波形508实施第二比较器逻辑(比如图2的第二比较器逻辑216、图3的比较器逻辑300和/或图4A至图4B的第二比较器逻辑404)的操作。
第五波形510实施第一测试模式匹配信号(TM1_MATCH_TEST)。在一些示例中,第五波形510可以实施图3的MATCH_TEST信号和/或图4A至图4B的TM1_MATCH_TEST信号。第六波形512实施第一测试模式失配信号(TM1_MISMATCH_TEST)。在一些示例中,第六波形512可以实施图3的MISMATCH_TEST信号和/或图4A至图4B的TM1_MISMATCH_TEST信号。
第七波形514实施第二测试模式匹配信号(TM2_MATCH_TEST)。在一些示例中,第七波形514可以实施图3的MATCH_TEST信号和/或图4A至图4B的TM2_MATCH_TEST信号。第八波形516实施第二测试模式失配信号(TM2_MISMATCH_TEST)。在一些示例中,第七波形516可以实施图3的MISMATCH_TEST信号和/或图4A至图4B的TM2_MISMATCH_TEST信号。
在图5的时序图500中,在第一示例时间(T1)518,自测试控制逻辑212可以使第二波形504有效,并且在第二示例时间(T2)520使第二波形504无效。响应于该无效,自测试控制逻辑212使第五波形510有效,以触发对第一比较器逻辑的匹配测试从而实施测试模式1。例如,自测试控制逻辑212可以使图4A至图4B的TM1_MATCH_TEST有效,以实现从第二时间520直到第三示例时间(T3)522的对第一比较器逻辑402的匹配测试,如上文结合图2、图3和/或图4A至图4B所描述的。有利地,第一比较器逻辑402可以在第一波形502的两个时钟周期内对第一比较器逻辑402执行匹配测试。
在第三时间522,自测试控制逻辑212使第五波形510无效并且使第六波形512有效,以触发对第一比较器逻辑的失配测试。例如,自测试控制逻辑212可以使图4A至图4B的TM1_MISMATCH_TEST有效,以实现从第三时间522直到第四示例时间(T4)524的对第一比较器逻辑402的失配测试,以实施测试模式1,如上文结合图2、图3和/或图4A至图4B所描述的。有利地,第一比较器逻辑402可以在第一波形502的两个时钟周期内对第一比较器逻辑402执行失配测试。有利地,第一比较器逻辑402可以在第一波形502的四个时钟周期内对第一比较器逻辑402执行自测试(例如,匹配测试和失配测试)。
在第四时间524,自测试控制逻辑212使第六波形512无效并且使第七波形514有效,以触发对第二比较器逻辑的匹配测试从而实施测试模式2。响应于第六波形512的无效,对第一比较器逻辑402的自测试完成,并且可以返回到启用了比较功能的功能操作。在第四时间524,自测试控制逻辑212可以使图4A至图4B的TM2_MATCH_TEST有效,以实现从第四时间524直到第五示例时间(T5)526的对第二比较器逻辑404的匹配测试,如上文结合图2、图3和/或图4A至图4B所描述的。有利地,第二比较器逻辑404可以在第一波形502的两个时钟周期内对第二比较器逻辑404执行匹配测试。
在第五时间526,自测试控制逻辑212使第七波形514无效并且使第八波形516有效,以触发对第二比较器逻辑的失配测试从而实施测试模式2。例如,自测试控制逻辑212可以使图4A至图4B的TM2_MISMATCH_TEST有效,以实现从第五时间526直到第六示例时间(T6)528的对第二比较器逻辑404的失配测试,如上文结合图2、图3和/或图4A至图4B所描述的。响应于第八波形516的无效,对第二比较器逻辑404的自测试完成,并且可以返回到启用了比较功能的功能操作。
有利地,第二比较器逻辑404可以在第一波形502的两个时钟周期内对第二比较器逻辑404执行失配测试。有利地,第二比较器逻辑404可以在第一波形502的四个时钟周期内对第二比较器逻辑404执行自测试(例如,匹配测试和失配测试)。有利地,图4A至图4B的双比较器逻辑400可以在第一波形502的八个时钟周期内执行整个自测试(例如,对第一比较器逻辑402的匹配和失配测试以及对第二比较器逻辑404的匹配和失配测试)。
图6至图7中示出了表示用于实施图1的示例LCL 104、图2的示例锁步封装器200或其(多个)部分、图3的示例比较器逻辑300和/或图4A至图4B的示例双比较器逻辑400的示例过程、硬件逻辑、机器可读指令、硬件实施的状态机和/或其任何组合的流程图。过程和/或机器可读指令可以是由比如下文结合图8所描述的示例处理器平台800中所示的处理器812等计算机处理器和/或处理器电路系统执行的一个或多个可执行程序或可执行程序的(多个)部分。该程序可以体现为存储在非暂态计算机可读存储介质上的与处理器812相关联的软件,但是整个程序和/或其各部分可以替代性地由除了处理器812之外的设备执行和/或体现为固件或专用硬件,其中这些存储介质比如CD-ROM、软盘、硬盘驱动器、DVD、蓝光光盘或存储器。进一步地,尽管参考图6至图7所图示的流程图描述了示例程序,但是可以替代性地使用实施图1的示例LCL 104、图2的示例锁步封装器200或其(多个)部分、图3的示例比较器逻辑300和/或图4A至图4B的示例双比较器逻辑400的许多其他方法。例如,可以改变框的执行顺序和/或可以改变、消除或组合所描述的框中的一些框。另外或可替代地,任何或所有框可以由被构造成在不执行软件或固件的情况下执行对应的操作的一个或多个硬件电路(例如,分立和/或集成模拟和/或数字电路系统、FPGA、ASIC、比较器、运算放大器(op-amp)、逻辑电路等)来实施。处理器电路系统可以分布在不同的网络位置和/或位于一个或多个设备的本地(例如,单个机器中的多核处理器、分布在一个服务器机架上的多个处理器等)。
本文所描述的机器可读指令可以以压缩格式、加密格式、分段格式、编译格式、可执行格式、封装格式等中的一种或多种格式来存储。如本文所描述的机器可读指令可以被存储为可以用于创建、制造和/或产生机器可执行指令的数据或数据结构(例如,指令、代码、代码表示等的一部分)。例如,机器可读指令可以被分段并存储在位于网络或网络集合的相同或不同位置(例如,在云中、在边缘设备中等)的一个或多个存储设备和/或计算设备(例如,服务器)上。机器可读指令可能需要安装、修改、适应、更新、组合、补充、配置、解密、解压、解包、分发、重新指派、编译等中的一项或多项,以使其可由计算设备和/或其他机器直接读取、解释和/或执行。例如,机器可读指令可以以多个部分来存储,这些部分被独立压缩、加密和存储在单独的计算设备上,其中,这些部分在被解密、被解压和被组合时形成实施一个或多个功能的一组可执行指令,这些指令可以一起形成比如本文描述的程序。
在另一个示例中,机器可读指令被存储的状态可以是它们可以被处理器电路系统读取但需要添加库(例如,动态链接库(DLL))、软件开发工具包(SDK)、应用编程接口(API)等来在特定计算设备或其他设备上执行这些指令。在另一示例中,在机器可读指令和/或(多个)对应程序可以整体或部分执行之前,可能需要对机器可读指令进行配置(例如,所存储的设置、数据输入、所记录的网络地址等)。因此,如本文所使用的,机器可读介质可以包括机器可读指令和/或(多个)程序,而不管机器可读指令和/或(多个)程序在存储或以其他方式静置或传输时的特定格式或状态如何。
本文所描述的机器可读指令可以用任何过去、现在或将来的指令语言、脚本语言、编程语言等来表示。例如,机器可读指令可以使用以下任何一种语言来表示:C、C++、Java、C#、Perl、Python、JavaScript、超文本标记语言(HTML)、结构化查询语言(SQL)、Swift等。
如上所述,可以使用存储在非暂态计算机和/或机器可读介质(比如硬盘驱动器、闪存存储器、只读存储器、光盘、数字通用光盘、高速缓存、随机存取存储器和/或可对信息进行任何时长(例如,扩展的时间段、永久地、短暂时间、临时缓存和/或对信息的高速缓存)的存储的任何其他存储设备或存储盘)上的可执行指令(例如,计算机和/或机器可读指令)来实施图6至图7的示例过程。如本文所使用的,术语非暂态计算机可读介质被明确定义为包括任何类型的计算机可读存储设备和/或存储盘,而不包括传播信号且不包括传输介质。
“包括(including)”和“包括(comprising)”(及其所有形式和时态)被用作开放式术语。因此,任何形式的“包括(include)”或“包括(comprise)”(例如comprises、includes、comprising、including、having等)指示可以存在附加的元素、术语等,而不超出对应权利要求或叙述的范围。如本文所使用的,当短语“至少(at least)”被用作例如权利要求前序部分中的过渡术语时,其与术语“包括(comprising)”和“包括(including)”一样是开放式的。术语“和/或”当例如以比如A、B和/或C的形式使用时是指A、B、C的任何组合或子集,比如(1)仅A、(2)仅B、(3)仅C、(4)A和B、(5)A和C、(6)B和C、以及(7)A和B和C。如本文在描述结构、部件、项目、对象和/或事物的上下文中所使用的,短语“A和B中的至少一个”是指包括以下任何一项的实施方式:(1)至少一个A;(2)至少一个B;以及(3)至少一个A和至少一个B。类似地,如本文在描述结构、部件、项目、对象和/或事物的上下文中所使用的,短语“A或B中的至少一个”是指包括以下任何一项的实施方式:(1)至少一个A;(2)至少一个B;以及(3)至少一个A和至少一个B。如本文在描述过程、指令、动作、活动和/或步骤的进行或执行的上下文中所使用的,短语“A和B中的至少一个”是指包括以下任何一项的实施方式:(1)至少一个A;(2)至少一个B;以及(3)至少一个A和至少一个B。类似地,如本文在描述过程、指令、动作、活动和/或步骤的进行或执行的上下文中所使用的,短语“A或B中的至少一个”是指包括以下任何一项的实施方式:(1)至少一个A;(2)至少一个B;以及(3)至少一个A和至少一个B。
如本文所使用的,单数引用(例如,“一个”、“第一”、“第二”等)不排除多个。如本文所使用的,术语“一个”实体是指一个或多个该实体。术语“一个”、“一个或多个”和“至少一个”在本文中可以互换使用。此外,尽管被单独列出,但是多个装置、元件或方法动作可以由例如单个单元或处理器来实施。此外,尽管各个特征可以被包括在不同的示例或权利要求中,但是这些特征可以被组合,并且包括在不同的示例或权利要求中并不意味着特征的组合是不可行的和/或不利的。
图6是表示示例过程600的流程图,该过程可以使用可执行的机器可读指令和/或使用被配置为实施图1的LCL 104、图2的锁步封装器200或其(多个)部分、图3的比较器逻辑300和/或图4A至图4B的双比较器逻辑400的硬件来执行,以检测与至少一个比较器相关联的错误。
过程600开始于框602,在该框,图3的比较器逻辑300确定是否启用了自测试。例如,选择逻辑304可以响应于来自自测试控制逻辑322的信号指示将执行自测试而确定启用了自测试。
如果在框602,比较器逻辑300确定尚未启用自测试,则控制进行到框604,以对来自硬件的功能输出进行比较。例如,图3的第一逻辑门332、334可以对来自图2的主模块202和辅助模块204的输出进行比较。
在框606,比较器逻辑300确定功能输出是否是不同的。例如,响应于来自第一总线314和第二总线316的输入是不同的,第五逻辑门344可以使逻辑高电平有效作为图3的FUNC_COMPARE_ERROR。在一些示例中,响应于来自第一总线314和第二总线316的输入是相同的,第五逻辑门344可以输出逻辑低电平作为FUNC_COMPARE_ERROR。
如果在框606,比较器逻辑300确定功能输出并非不同,则控制返回到框602以确定是否启用了自测试。如果在框606,比较器逻辑300确定功能输出是不同的,则在框608,比较器逻辑300输出功能比较错误。例如,响应于FUNC_COMPARE_ERROR有效为逻辑高电平的故障状况的指示可以被存储在图2的存储器218中。在一些示例中,图2的计算系统102的资源可以生成指示故障状况的警报。例如,用户界面124可以显示警报,接口资源114可以经由图1的网络126将警报传输到中央设施128,等等,和/或其组合。响应于在框608输出功能比较错误,图6的过程600结束。
如果在框602,比较器逻辑300确定启用了自测试,则控制进行到框610以确定是否启用了匹配测试。例如,选择逻辑304和/或错误检测逻辑312可以响应于来自自测试控制逻辑322的选择信号和/或响应于来自该自测试控制逻辑的图3的MATCH_TEST的有效而确定启用了匹配测试。
如果在框610,比较器逻辑300确定未启用匹配测试,则控制进行到框618以确定是否启用了失配测试。如果在框610,比较器逻辑300确定启用了匹配测试,则在框612,比较器逻辑300对来自自测试逻辑的输出进行比较。例如,自测试控制逻辑322可以在第一周期、第一时间段等期间向多路复用器324、326、328、330输出逻辑零。在这样的示例中,第一逻辑门332、334可以对来自多路复用器324、326、328、330的输出进行比较,以确定是否检测到匹配。在一些这样的示例中,自测试控制逻辑322可以在(第一周期之后的)第二周期、(第一时间段之后的)第二时间段等期间向多路复用器324、326、328、330输出逻辑一。在这样的示例中,第一逻辑门332、334可以对来自多路复用器324、326、328、330的输出进行比较,以确定是否检测到匹配。
在框614,比较器逻辑300基于对这些输出的比较来确定是否检测到匹配。例如,第三逻辑门336可以确定在第一周期期间是否已经从第一逻辑门332、334中的一个(多个)第一逻辑门输出了至少一个逻辑一。在这样的示例中,响应于第三逻辑门336确定已经从第一逻辑门332、334中的一个(多个)第一逻辑门输出了至少一个逻辑一,第六逻辑门346可以向第八逻辑门350输出逻辑高电平。在一些这样的示例中,第三逻辑门336可以确定在第二周期期间是否已经从第一逻辑门332、334中的一个(多个)第一逻辑门输出了至少一个逻辑零。在这样的示例中,响应于第三逻辑门336确定已经从第一逻辑门332、334中的一个(多个)第一逻辑门输出了至少一个逻辑零,第六逻辑门346可以向第八逻辑门350输出逻辑高电平。
如果在框614,比较器逻辑300基于对这些输出的比较而确定检测到匹配,控制进行到框618以确定是否启用了失配测试。如果在框614,比较器逻辑300基于对这些输出的比较而确定未检测到匹配,则在框616,比较器逻辑300输出自测试错误。例如,第八逻辑门350可以使逻辑高电平有效作为图3的SELF-TEST_ERROR输出。在一些示例中,关于自测试错误的故障指示、与自测试错误相关联的程序计数器值等可以作为锁步调试数据220存储在存储器218中。在一些示例中,图2的计算系统102的资源可以生成指示自测试错误的警报。例如,用户界面124可以显示警报,接口资源114可以经由图1的网络126将警报传输到中央设施128,等等,和/或其组合。
响应于在框616输出自测试错误,比较器逻辑300在框618确定是否启用了失配测试。例如,选择逻辑304和/或错误检测逻辑312可以响应于来自自测试控制逻辑322的选择信号和/或响应于来自该自测试控制逻辑的图3的MISMATCH_TEST的有效而确定启用了失配测试。
如果在框618,比较器逻辑300确定未启用失配测试,则控制进行到框626以确定是否继续监测硬件。如果在框618,比较器逻辑300确定启用了失配测试,则在框620,比较器逻辑300对来自自测试逻辑的输出进行比较。例如,在第一周期期间,自测试控制逻辑322可以向多路复用器324、326、328、330的第一部分输出逻辑一,并且向多路复用器324、326、328、330的第二部分输出逻辑零。在这样的示例中,第一逻辑门332、334可以对来自多路复用器324、326、328、330的输出进行比较,以确定是否检测到失配。在一些这样的示例中,在第一周期之后的第二周期期间,自测试控制逻辑322可以向多路复用器324、326、328、330的第一部分输出逻辑零,并且向多路复用器324、326、328、330的第二部分输出逻辑一。在这样的示例中,第一逻辑门332、334可以对来自多路复用器324、326、328、330的输出进行比较,以确定是否检测到失配。
在框622,比较器逻辑300基于对这些输出的比较来确定是否检测到失配。例如,第四逻辑门338可以确定在第一周期、第二周期等期间是否已经从第一逻辑门332、334中的一个(多个)第一逻辑门输出了至少一个逻辑零。在这样的示例中,响应于第四逻辑门338确定在第一周期、第二周期等期间已经从第一逻辑门332、334中的一个(多个)第一逻辑门输出了至少一个逻辑零,第七逻辑门348可以向第八逻辑门350输出逻辑高电平。
如果在框622,比较器逻辑300基于对这些输出的比较而确定尚未检测到失配,则控制进行到框626以确定是否继续监测硬件。如果在框622,比较器逻辑300基于对这些输出的比较而确定检测到失配,则在框624,比较器逻辑300输出自测试错误。例如,第八逻辑门350可以使逻辑高电平有效作为图3的SELF-TEST_ERROR输出。在一些示例中,关于自测试错误的故障指示、与自测试错误相关联的程序计数器值等可以作为锁步调试数据220存储在存储器218中。在一些示例中,图2的计算系统102的资源可以生成指示自测试错误的警报。例如,用户界面124可以显示警报,接口资源114可以经由图1的网络126将警报传输到中央设施128,等等,和/或其组合。
响应于比较器逻辑300在框624输出自测试错误,比较器逻辑300在框626确定是否继续监测硬件。如果在框626,比较器逻辑300确定继续监测硬件,则控制返回到框602以确定是否启用了自测试,否则图6的过程600结束。
图7是表示示例过程700的另一个流程图,该过程可以使用可执行的机器可读指令和/或使用被配置为实施图1的LCL 104、图2的锁步封装器200或其(多个)部分和/或图4A至图4B的双比较器逻辑400的硬件来执行,以检测与至少两个比较器相关联的错误。
过程700开始于框702,在该框,图4A至图4B的双比较器逻辑400识别正在进行自测试的比较器。例如,第一选择逻辑408可以响应于来自图4A至图4B的自测试控制逻辑405的信号而识别出第一比较器逻辑402正在进行自测试,该信号可以指示第一比较器逻辑402要执行自测试(例如,匹配测试、失配测试等)。
在框704,双比较器逻辑400使用未在执行自测试的比较器来对来自硬件的功能输出进行比较。例如,第二逻辑门470可以对来自图2的主模块202和辅助模块204的输出进行比较。
在框706,双比较器逻辑400确定功能输出是否是不同的。例如,响应于来自第一总线489和第二总线490的输入是不同的,第五逻辑门478可以使逻辑高电平有效作为图4A至图4B的FUNC_COMPARE_ERROR2。在一些示例中,响应于来自第一总线489和第二总线490的输入是相同的,第五逻辑门478可以输出逻辑低电平作为FUNC_COMPARE_ERROR2。
如果在框706,双比较器逻辑400确定功能输出并非不同,则控制进行到框710以确定是否启用了匹配测试。如果在框706,双比较器逻辑400确定功能输出是不同的,则在框708,双比较器逻辑400输出来自未在执行自测试的比较器的功能比较错误。例如,响应于FUNC_COMPARE_ERROR2有效为逻辑高电平的故障状况的指示可以被存储在图2的存储器218中。在一些示例中,图2的计算系统102的资源可以生成指示故障状况的警报。例如,用户界面124可以显示警报,接口资源114可以经由图1的网络126将警报传输到中央设施128,等等,和/或其组合。
响应于在框708输出功能比较错误,控制进行到框710以确定是否启用了匹配测试。例如,第一选择逻辑408和/或第一错误检测逻辑418可以响应于来自自测试控制逻辑405的选择信号和/或响应于来自该自测试控制逻辑的图4A至图4B的TM1_MATCH_TEST的有效而确定启用了匹配测试。
如果在框710,双比较器逻辑400确定未启用匹配测试,则控制进行到框718以确定是否启用了失配测试。如果在框710,双比较器逻辑400确定启用了匹配测试,则在框712,双比较器逻辑400对来自自测试逻辑的输出进行比较。例如,自测试逻辑405可以在第一周期、第一时间段等期间向第一组多路复用器420、422和第三组多路复用器462、464输出逻辑零。在这样的示例中,第一逻辑门428、430可以对来自第一组多路复用器420、422和第三组多路复用器462、464的输出进行比较,以确定是否检测到匹配。在一些这样的示例中,自测试逻辑405可以在第一周期之后的第二周期、第一时间段之后的第二时间段等期间向第一组多路复用器420、422和第三组多路复用器462、464输出逻辑一。在这样的示例中,第一逻辑门428、430可以对来自第一组多路复用器420、422和第三组多路复用器462、464的输出进行比较,以确定是否检测到匹配。
在框714,双比较器逻辑400基于对这些输出的比较来确定是否检测到匹配。例如,第三逻辑门432可以确定是否已经从第一逻辑门428、430中的一个(多个)第一逻辑门输出了至少一个逻辑一,该至少一个逻辑一可以指示尚未检测到匹配。在这样的示例中,响应于第三逻辑门432确定已经从第一逻辑门428、430中的一个(多个)第一逻辑门输出了至少一个逻辑一,第六逻辑门438可以向第十逻辑门446输出逻辑高电平。
如果在框714,双比较器逻辑400基于对这些输出的比较而确定检测到匹配,控制进行到框718以确定是否启用了失配测试。如果在框714,双比较器逻辑400基于对这些输出的比较而确定尚未检测到匹配,则在框716,双比较器逻辑400输出来自正在进行自测试的比较器的自测试错误。例如,第十逻辑门446可以使逻辑高电平有效作为图3的SELF-TEST_ERROR1输出。在一些示例中,关于自测试错误的故障指示、与自测试错误相关联的程序计数器值等可以作为锁步调试数据220存储在存储器218中。在一些示例中,图2的计算系统102的资源可以生成指示自测试错误的警报。例如,用户界面124可以显示警报,接口资源114可以经由图1的网络126将警报传输到中央设施128,等等,和/或其组合。
响应于在框716输出来自正在进行自测试的比较器的自测试错误,双比较器逻辑400在框718确定是否启用了失配测试。例如,第一选择逻辑408和/或第一错误检测逻辑418可以响应于来自自测试控制逻辑405的选择信号和/或响应于来自该自测试控制逻辑的图4A至图4B的TM1_MISMATCH_TEST的有效而确定启用了失配测试。
如果在框718,双比较器逻辑400确定未启用失配测试,则控制进行到框726以确定是否继续监测硬件。如果在框718,双比较器逻辑400确定启用了失配测试,则在框720,双比较器逻辑400对来自自测试逻辑的输出进行比较。例如,自测试逻辑405可以在第一周期、第一时间段等期间向第一组多路复用器420、422输出逻辑一并且向第三组多路复用器462、464输出逻辑零。在这样的示例中,第一逻辑门428、430可以对来自第一组多路复用器420、422和第三组多路复用器462、464的输出进行比较,以确定是否检测到失配。在一些这样的示例中,自测试逻辑405可以在第一周期之后的第二周期、第一时间段之后的第二时间段等期间向第一组多路复用器420、422输出逻辑零并且向第三组多路复用器462、464输出逻辑一。在这样的示例中,第一逻辑门428、430可以对来自第一组多路复用器420、422和第三组多路复用器462、464的输出进行比较,以确定是否检测到失配。
在框722,双比较器逻辑400基于对这些输出的比较来确定是否检测到失配。例如,第四逻辑门434可以确定是否已经从第一逻辑门428、430中的一个(多个)第一逻辑门输出了至少一个逻辑零,该至少一个逻辑零可以指示检测到失配。在这样的示例中,响应于第四逻辑门434确定已经从第一逻辑门428、430中的一个(多个)第一逻辑门输出了至少一个逻辑零,第七逻辑门440可以向第十逻辑门446输出逻辑高电平。
如果在框722,双比较器逻辑400基于对这些输出的比较而确定未检测到失配,则控制进行到框726以确定是否继续监测硬件。如果在框722,双比较器逻辑400基于对这些输出的比较而确定检测到失配,则在框724,双比较器逻辑400输出来自正在进行自测试的比较器的自测试错误。例如,第十逻辑门446可以使逻辑高电平有效作为图4A至图4B的SELF-TEST_ERROR1输出。在一些示例中,关于自测试错误的故障指示、与自测试错误相关联的程序计数器值等可以作为锁步调试数据220存储在存储器218中。在一些示例中,图2的计算系统102的资源可以生成指示自测试错误的警报。例如,用户界面124可以显示警报,接口资源114可以经由图1的网络126将警报传输到中央设施128,等等,和/或其组合。
响应于在框724输出来自正在进行自测试的比较器的自测试错误,双比较器逻辑400确定是否继续监测硬件。如果在框726,双比较器逻辑400确定继续监测硬件,则控制返回到框702以选择比较器来进行自测试,否则图7的过程700结束。
图8是示例处理器平台800的框图,该处理器平台被构造为执行图6至图7的指令以实施图1的LCL 104、图2的锁步封装器200或其(多个)部分、图3的比较器逻辑300和/或图4A至图4B的双比较器逻辑400。处理器平台800可以是例如车辆的电子控制单元、服务器、个人计算机、工作站、自学习机器(例如,神经网络)、游戏控制台或任何其他类型的计算设备。
所图示的示例的处理器平台800包括两个处理器812。所图示的示例的两个处理器812是硬件。例如,处理器812可以由来自任何期望系列或制造商的一个或多个集成电路、逻辑电路、微处理器、GPU、DSP或控制器来实施。硬件处理器可以是基于半导体(例如,基于硅)的设备。
所图示的示例的处理器812包括本地存储器813(例如,高速缓存)。所图示的示例的处理器812经由总线818与包括易失性存储器814和非易失性存储器816在内的主存储器进行通信。易失性存储器814可以由一个或多个触发器、同步动态随机存取存储器(SDRAM)、动态随机存取存储器(DRAM)、动态随机存取存储器/>和/或任何其他类型的随机存取存储器设备来实施。非易失性存储器816可以通过闪存存储器和/或任何其他期望类型的存储器设备来实施。对主存储器814、816的访问由存储器控制器来控制。
所图示的示例的处理器平台800还包括接口电路820。接口电路820可以通过任何类型的接口标准来实施,比如以太网接口、通用串行总线(USB)、接口、近场通信(NFC)接口和/或PCI快速接口。
在所图示的示例中,一个或多个输入设备822连接至接口电路820。(多个)输入设备822准许用户将数据和/或命令输入到处理器812中。(多个)输入设备可以由例如音频传感器、麦克风、相机(静态或视频)、键盘、按钮、鼠标、触摸屏、轨迹板、轨迹球、等距点设备和/或语音识别系统实施。
一个或多个输出设备824也连接至所图示的示例的接口电路820。输出设备824可以例如由显示设备(例如,发光二极管(LED)、有机发光二极管(OLED)、液晶显示器(LCD)、阴极射线管(CRT)显示器、平面转换(IPS)显示器、触摸屏等)、触觉输出设备、打印机和/或扬声器来实施。所图示的示例的接口电路820可以包括图形驱动卡、图形驱动芯片和/或图形驱动处理器。
所图示的示例的接口电路820还包括比如发射器、接收器、收发器、调制解调器、住宅网关、无线接入点和/或网络接口等通信设备以促进经由网络826与外部机器(例如,任何种类的计算设备)的数据交换。通信可以经由例如以太网连接、数字用户线(DSL)连接、电话线连接、同轴电缆系统、卫星系统、直线对传无线系统、蜂窝电话系统等来进行。
所图示的示例的处理器平台800还包括用于存储软件和/或数据的一个或多个大容量存储设备828。这样的大容量存储设备828的示例包括软盘驱动器、硬盘驱动器、光盘驱动器、蓝光光盘驱动器、独立磁盘冗余阵列(RAID)系统和数字通用光盘(DVD)驱动器。
图6至图7的机器可执行指令832可以存储在大容量存储设备828中、在易失性存储器814中、在非易失性存储器816中和/或在比如CD或DVD等可移除的非暂态计算机可读存储介质上。
示例LCL 834经由总线818耦合到以下中的一个(多个):处理器812、易失性存储器814、非易失性存储器816、接口820和/或一个或多个大容量存储设备828。在一些示例中,LCL 834可以由图1的LCL 104、图2的锁步封装器200或其(多个)部分、图3的比较器逻辑300和/或图4A至图4B的双比较器逻辑400来实施。例如,LCL 834可以测试处理器812的锁步。在一些示例中,如本文所描述的,LCL 834可以对包括在LCL 834中和/或以其他方式由该LCL实施的一个或多个比较器进行自测试。
从上文可以理解,已经描述了实施锁步比较器的示例方法、装置和制品。有利地,本文所描述的示例方法、装置和制品可以实施具有联机测试排序的双比较器。例如,本文所描述的示例方法、装置和制品可以实施用于测试两个或更多个硬件资源的锁步的比较器的智能冗余。有利地,本文所描述的示例方法、装置和制品可以实施诊断,以最小化锁步比较器的自测试时间和/或以其他方式将锁步比较器的自测试时间减少到八个周期,而与被比较的信号的数量无关。
有利地,本文所描述的示例方法、装置和制品可以响应于检测到不匹配的比较而冻结一个或多个锁步比较器的比较状态,并且可以使比较状态(以及其他调试数据,比如相关联的程序计数器值)对于应用程序和/或其他硬件资源是可读的和/或以其他方式可用于应用程序和/或其他硬件资源。有利地,本文所描述的示例方法、装置和制品可以实现即使在一个或多个锁步比较器的自测试执行期间也始终启用锁步。例如,本文所描述的示例方法、装置和制品可以在应用程序执行期间执行锁步自测试,而不会损害应用程序完整性。
本文描述了用于实施锁步比较器的示例方法、装置、系统和制品。进一步的示例及其组合包括以下示例:
示例1包括一种装置,该装置包括:自测试逻辑电路系统,该自测试逻辑电路系统具有第一输出;以及比较器逻辑,该比较器逻辑包括:选择逻辑,该选择逻辑具有第一输入和第二输出,这些第一输入中的各个第一输入耦合到这些第一输出;第一检测逻辑,该第一检测逻辑具有第二输入和第三输出,这些第二输入耦合到这些第二输出;第二检测逻辑,该第二检测逻辑具有第三输入和第四输出,这些第三输入耦合到这些第三输出;锁存逻辑,该锁存逻辑具有第五输入和第五输出,该第三输出和该第四输出耦合到这些第五输入;以及错误检测逻辑,该错误检测逻辑具有耦合到这些第五输入的第六输入。
示例2包括根据示例1所述的装置,其中,该选择逻辑包括多个多路复用器,该多个多路复用器中的各个多路复用器具有这些第一输入中的相应一个第一输入和这些第二输出中的相应一个第二输出。
示例3包括根据示例2所述的装置,该装置进一步包括:第一锁存器,该第一锁存器具有第七输入和第六输出,该第七输入耦合到第一处理器的一个或多个第七输出;以及第二锁存器,该第二锁存器具有第八输入和第八输出,该第八输入耦合到第二处理器的一个或多个第九输出,该第一处理器被配置为与该第二处理器以锁步方式进行操作。
示例4包括根据示例3所述的装置,其中,该第六输出耦合到该多个多路复用器中的第一组多路复用器的这些第一输入中的相应各个第一输入,并且该第八输出耦合到该多个多路复用器中的第二组多路复用器的这些第二输入中的相应各个第二输入,该第一组不同于该第二组。
示例5包括根据示例1所述的装置,其中,该第一检测逻辑包括多个逻辑门,该多个逻辑门具有这些第二输入和这些第三输出。
示例6包括根据示例5所述的装置,其中,该多个逻辑门中的各个逻辑门是异或逻辑门。
示例7包括根据示例1所述的装置,其中,该锁存逻辑包括:第一锁存器,该第一锁存器具有第七输入和第六输出,该第七输入耦合到该第二检测逻辑,该第六输出耦合到该错误检测逻辑;以及第二锁存器,该第二锁存器具有第八输入和第七输出,该第八输入耦合到该第二检测逻辑,该第七输出耦合到该错误检测逻辑。
示例8包括根据示例7所述的装置,其中,该第二检测逻辑包括第一逻辑门和第二逻辑门,该第一逻辑门和该第二逻辑门具有这些第三输入中的各个第三输出和这些第四输出,该第七输入通过这些第四输出中的第一个第四输出耦合到该第一逻辑门,该第八输入通过这些第四输出中的第二个第四输出耦合到该第二逻辑门。
示例9包括根据示例8所述的装置,其中,该第一逻辑门是或逻辑门,并且该第二逻辑门是与非逻辑门。
示例10包括根据示例7所述的装置,其中,该错误检测逻辑包括:第一逻辑门,该第一逻辑门具有第九输入,该第九输入耦合到该第六输出;第二逻辑门,该第二逻辑门具有第十输入和第九输出,该第十输入耦合到该第六输出;第三逻辑门,该第三逻辑门具有第十一输入和第十输出,该第十一输入耦合到该第七输出;以及第四逻辑门,该第四逻辑门具有第十二输入和第十三输入,该第十二输入耦合到该第九输出,该第十三输入耦合到该第十输出。
示例11包括根据示例10所述的装置,其中,该第一逻辑门、该第二逻辑门和该第三逻辑门是与逻辑门,并且该第四逻辑门是或逻辑门。
示例12包括根据示例1所述的装置,其中,该锁存逻辑是第一锁存逻辑,该装置进一步包括第二锁存逻辑,该选择逻辑通过该第二锁存逻辑耦合到第一处理器和第二处理器,并且该自测试逻辑电路系统用于:响应于第一控制信号,指示该错误检测逻辑测试来自该第一处理器的第一处理器输出是否与来自该第二处理器的第二处理器输出相匹配;以及响应于第二控制信号,指示该错误检测逻辑对该第一检测逻辑进行自测试。
示例13包括根据示例12所述的装置,其中,该自测试包括第一自测试和第二自测试,并且该自测试逻辑电路系统用于:调用该第一自测试以在两个时钟周期内执行;以及调用该第二自测试以在两个时钟周期内执行,该第一检测逻辑用于基于该第一自测试和该第二自测试在四个时钟周期内执行该自测试。
示例14包括根据示例12所述的装置,其中,该错误检测逻辑用于:响应于确定该第一处理器输出与该第二处理器输出不匹配,识别出第一故障状况;响应于该自测试的故障,识别出第二故障状况;以及响应于识别出该第一故障状况或该第二故障状况中的至少一个,将锁步调试数据传输到用户界面,该锁步调试数据包括与该第一故障状况或该第二故障状况中的至少一个相关联的端口信息或程序计数器信息中的至少一项。
示例15包括一种装置,该装置包括:第一比较器逻辑,该第一比较器逻辑被配置为接收来自第一处理器的第一输入和来自第二处理器的第二输入;第二比较器逻辑,该第二比较器逻辑耦合到该第一比较器逻辑,该第二比较器逻辑被配置为接收该第一输入和该第二输入;以及自测试逻辑电路系统,该自测试逻辑电路系统耦合到该第一比较器逻辑和该第二比较器逻辑,该自测试逻辑电路系统用于响应于一个或多个第一控制信号而指示该第一比较器逻辑对该第一输入和该第二输入进行比较,以及指示该第二比较器逻辑对该第二比较器逻辑执行自测试。
示例16包括根据示例15所述的装置,其中,该自测试逻辑电路系统用于响应于生成一个或多个第二控制信号而:指示该第一比较器逻辑对该第一比较器逻辑执行自测试;以及指示该第二比较器逻辑对该第一处理器的第三输入和该第二处理器的第四输入进行比较,该第一处理器被配置为与该第二处理器以锁步方式进行操作。
示例17包括根据示例15所述的装置,其中,该第一比较器逻辑包括:选择逻辑;第一检测逻辑,该第一检测逻辑耦合到该选择逻辑;第二检测逻辑,该第二检测逻辑耦合到该第一检测逻辑;第一锁存器,该第一锁存器耦合到该第二检测逻辑;第二锁存器,该第二锁存器耦合到该第二检测逻辑;以及错误检测逻辑,该错误检测逻辑耦合到该第一锁存器和该第二锁存器。
示例18包括根据示例17所述的装置,其中,该选择逻辑是第一选择逻辑,并且该第二比较器逻辑包括第二选择逻辑,该第二选择逻辑耦合到该第一检测逻辑。
示例19包括根据示例17所述的装置,其中,该第一锁存器具有第一输入和第一输出,该第二锁存器具有第二输入和第二输出,并且该错误检测逻辑包括:第一逻辑门,该第一逻辑门具有第三输入和第三输出,该第三输入耦合到该第一输出;第二逻辑门,该第二逻辑门具有第四输入和第四输出,该第四输入耦合到该第一输出;第三逻辑门,该第三逻辑门具有第五输入和第五输出,该第五输入耦合到该第二输出;以及第四逻辑门,该第四逻辑门具有第六输入、第七输入和第六输出,该第六输入耦合到该第四输出,该第七输入耦合到该第五输出。
示例20包括根据示例19所述的装置,其中,该第三输出或该第六输出中的至少一个耦合到存储器。
示例21包括一种系统,该系统包括:第一处理器硬件,该第一处理器硬件具有第一输出;第二处理器硬件,该第二处理器硬件具有第二输出;以及锁步控制逻辑,该锁步控制逻辑包括:第一比较器逻辑,该第一比较器逻辑具有第三输入和第四输入,这些第三输入耦合到这些第一输出;第二比较器逻辑,该第二比较器逻辑具有第五输入和第六输入,这些第五输入耦合到这些第二输出;以及自测试控制逻辑,该自测试控制逻辑具有第三输出和第四输出,这些第三输出耦合到这些第四输入,这些第四输出耦合到这些第六输入。
示例22包括根据示例21所述的系统,其中,该自测试控制逻辑用于:在两个时钟周期内对该第一比较器逻辑执行第一自测试;在两个时钟周期内对该第一比较器逻辑执行第二自测试;在两个时钟周期内对该第二比较器逻辑执行该第一自测试;以及在两个时钟周期内对该第二比较器逻辑执行该第二自测试。
示例23包括根据示例21所述的系统,其中,该自测试控制逻辑用于生成一个或多个控制信号,以指示该第一比较器逻辑对这些第一输出和这些第二输出进行比较,以及指示该第二比较器逻辑对该第二比较器逻辑执行自测试。
示例24包括根据示例23所述的系统,其中,该一个或多个控制信号是一个或多个第一控制信号,并且该自测试控制逻辑用于生成一个或多个第二控制信号,以指示该第一比较器逻辑对该第一比较器逻辑执行自测试,以及指示该第二比较器逻辑对该第一处理器硬件的第五输出和该第二处理器硬件的第六输出进行比较,该第一处理器硬件被配置为与该第二处理器硬件以锁步方式进行操作。
示例25包括根据示例23所述的系统,其中,该第一比较器逻辑用于:响应于确定这些第一输出中的一个或多个第一输出与这些第二输出中的一个或多个第二输出不匹配,识别出第一故障状况;以及响应于识别出该第一故障状况,将第一锁步调试数据传输到用户界面,该第一锁步调试数据包括与该第一故障状况相关联的第一端口信息或第一程序计数器信息中的至少一项;并且该第二比较器逻辑用于:响应于该自测试的故障,识别出第二故障状况;以及响应于识别出该第二故障状况,将第二锁步调试数据传输到该用户界面,该第二锁步调试数据包括与该第二故障状况相关联的第二端口信息或第二程序计数器信息中的至少一项。
虽然已经描述了某些示例方法、装置和制品,但是本专利的覆盖范围不限于此。相反,本专利涵盖了完全落入本专利的权利要求的范围内的所有方法、装置和制品。
以下权利要求特此通过这种援引并入到该具体实施方式中,其中,每项权利要求作为本文的单独的实施例而独立存在。
Claims (25)
1.一种装置,包括:
自测试逻辑电路系统,所述自测试逻辑电路系统具有第一输出;以及
比较器逻辑,所述比较器逻辑包括:
选择逻辑,所述选择逻辑具有第一输入和第二输出,所述第一输入中的各个第一输入耦合到所述第一输出;
第一检测逻辑,所述第一检测逻辑具有第二输入和第三输出,所述第二输入耦合到所述第二输出;
第二检测逻辑,所述第二检测逻辑具有第三输入和第四输出,所述第三输入耦合到所述第三输出;
锁存逻辑,所述锁存逻辑具有第五输入和第五输出,所述第三输出和所述第四输出耦合到所述第五输入;以及
错误检测逻辑,所述错误检测逻辑具有耦合到所述第五输入的第六输入。
2.根据权利要求1所述的装置,其中,所述选择逻辑包括多个多路复用器,所述多个多路复用器中的各个多路复用器具有所述第一输入中的相应一个第一输入和所述第二输出中的相应一个第二输出。
3.根据权利要求2所述的装置,进一步包括:
第一锁存器,所述第一锁存器具有第七输入和第六输出,所述第七输入耦合到第一处理器的一个或多个第七输出;以及
第二锁存器,所述第二锁存器具有第八输入和第八输出,所述第八输入耦合到第二处理器的一个或多个第九输出,所述第一处理器被配置为与所述第二处理器以锁步方式进行操作。
4.根据权利要求3所述的装置,其中,所述第六输出耦合到所述多个多路复用器中的第一组多路复用器的所述第一输入中的相应各个第一输入,并且所述第八输出耦合到所述多个多路复用器中的第二组多路复用器的所述第二输入中的相应各个第二输入,所述第一组不同于所述第二组。
5.根据权利要求1所述的装置,其中,所述第一检测逻辑包括多个逻辑门,所述多个逻辑门具有所述第二输入和所述第三输出。
6.根据权利要求5所述的装置,其中,所述多个逻辑门中的各个逻辑门是异或逻辑门。
7.根据权利要求1所述的装置,其中,所述锁存逻辑包括:
第一锁存器,所述第一锁存器具有第七输入和第六输出,所述第七输入耦合到所述第二检测逻辑,所述第六输出耦合到所述错误检测逻辑;以及
第二锁存器,所述第二锁存器具有第八输入和第七输出,所述第八输入耦合到所述第二检测逻辑,所述第七输出耦合到所述错误检测逻辑。
8.根据权利要求7所述的装置,其中,所述第二检测逻辑包括第一逻辑门和第二逻辑门,所述第一逻辑门和所述第二逻辑门具有所述第三输入中的各个第三输入和所述第四输出,所述第七输入通过所述第四输出中的第一个第四输出耦合到所述第一逻辑门,所述第八输入通过所述第四输出中的第二个第四输出耦合到所述第二逻辑门。
9.根据权利要求8所述的装置,其中,所述第一逻辑门是或逻辑门,并且所述第二逻辑门是与非逻辑门。
10.根据权利要求7所述的装置,其中,所述错误检测逻辑包括:
第一逻辑门,所述第一逻辑门具有第九输入,所述第九输入耦合到所述第六输出;
第二逻辑门,所述第二逻辑门具有第十输入和第九输出,所述第十输入耦合到所述第六输出;
第三逻辑门,所述第三逻辑门具有第十一输入和第十输出,所述第十一输入耦合到所述第七输出;以及
第四逻辑门,所述第四逻辑门具有第十二输入和第十三输入,所述第十二输入耦合到所述第九输出,所述第十三输入耦合到所述第十输出。
11.根据权利要求10所述的装置,其中,所述第一逻辑门、所述第二逻辑门和所述第三逻辑门是与逻辑门,并且所述第四逻辑门是或逻辑门。
12.根据权利要求1所述的装置,其中,所述锁存逻辑是第一锁存逻辑,所述装置进一步包括第二锁存逻辑,所述选择逻辑通过所述第二锁存逻辑耦合到第一处理器和第二处理器,并且所述自测试逻辑电路系统用于:
响应于第一控制信号,指示所述错误检测逻辑测试来自所述第一处理器的第一处理器输出是否与来自所述第二处理器的第二处理器输出相匹配;以及
响应于第二控制信号,指示所述错误检测逻辑对所述第一检测逻辑进行自测试。
13.根据权利要求12所述的装置,其中,所述自测试包括第一自测试和第二自测试,并且所述自测试逻辑电路系统用于:
调用所述第一自测试以在两个时钟周期内执行;以及
调用所述第二自测试以在两个时钟周期内执行,所述第一检测逻辑用于基于所述第一自测试和所述第二自测试在四个时钟周期内执行所述自测试。
14.根据权利要求12所述的装置,其中,所述错误检测逻辑用于:
响应于确定所述第一处理器输出与所述第二处理器输出不匹配,识别出第一故障状况;
响应于所述自测试的故障,识别出第二故障状况;以及
响应于识别出所述第一故障状况或所述第二故障状况中的至少一个,将锁步调试数据传输到用户界面,所述锁步调试数据包括与所述第一故障状况或所述第二故障状况中的至少一个相关联的端口信息或程序计数器信息中的至少一项。
15.一种装置,包括:
第一比较器逻辑,所述第一比较器逻辑被配置为接收来自第一处理器的第一输入和来自第二处理器的第二输入;
第二比较器逻辑,所述第二比较器逻辑耦合到所述第一比较器逻辑,所述第二比较器逻辑被配置为接收所述第一输入和所述第二输入;以及
自测试逻辑电路系统,所述自测试逻辑电路系统耦合到所述第一比较器逻辑和所述第二比较器逻辑,所述自测试逻辑电路系统用于响应于一个或多个第一控制信号而:
指示所述第一比较器逻辑对所述第一输入和所述第二输入进行比较;以及
指示所述第二比较器逻辑对所述第二比较器逻辑执行自测试。
16.根据权利要求15所述的装置,其中,所述自测试逻辑电路系统用于响应于生成一个或多个第二控制信号而:
指示所述第一比较器逻辑对所述第一比较器逻辑执行自测试;以及
指示所述第二比较器逻辑对所述第一处理器的第三输入和所述第二处理器的第四输入进行比较,所述第一处理器被配置为与所述第二处理器以锁步方式进行操作。
17.根据权利要求15所述的装置,其中,所述第一比较器逻辑包括:
选择逻辑;
第一检测逻辑,所述第一检测逻辑耦合到所述选择逻辑;
第二检测逻辑,所述第二检测逻辑耦合到所述第一检测逻辑;
第一锁存器,所述第一锁存器耦合到所述第二检测逻辑;
第二锁存器,所述第二锁存器耦合到所述第二检测逻辑;以及
错误检测逻辑,所述错误检测逻辑耦合到所述第一锁存器和所述第二锁存器。
18.根据权利要求17所述的装置,其中,所述选择逻辑是第一选择逻辑,并且所述第二比较器逻辑包括第二选择逻辑,所述第二选择逻辑耦合到所述第一检测逻辑。
19.根据权利要求17所述的装置,其中,所述第一锁存器具有第一输入和第一输出,所述第二锁存器具有第二输入和第二输出,并且所述错误检测逻辑包括:
第一逻辑门,所述第一逻辑门具有第三输入和第三输出,所述第三输入耦合到所述第一输出;
第二逻辑门,所述第二逻辑门具有第四输入和第四输出,所述第四输入耦合到所述第一输出;
第三逻辑门,所述第三逻辑门具有第五输入和第五输出,所述第五输入耦合到所述第二输出;以及
第四逻辑门,所述第四逻辑门具有第六输入、第七输入和第六输出,所述第六输入耦合到所述第四输出,所述第七输入耦合到所述第五输出。
20.根据权利要求19所述的装置,其中,所述第三输出或所述第六输出中的至少一个耦合到存储器。
21.一种系统,包括:
第一处理器硬件,所述第一处理器硬件具有第一输出;
第二处理器硬件,所述第二处理器硬件具有第二输出;以及
锁步控制逻辑,所述锁步控制逻辑包括:
第一比较器逻辑,所述第一比较器逻辑具有第三输入和第四输入,所述第三输入耦合到所述第一输出;
第二比较器逻辑,所述第二比较器逻辑具有第五输入和第六输入,所述第五输入耦合到所述第二输出;以及
自测试控制逻辑,所述自测试控制逻辑具有第三输出和第四输出,所述第三输出耦合到所述第四输入,所述第四输出耦合到所述第六输入。
22.根据权利要求21所述的系统,其中,所述自测试控制逻辑用于:
在两个时钟周期内对所述第一比较器逻辑执行第一自测试;
在两个时钟周期内对所述第一比较器逻辑执行第二自测试;
在两个时钟周期内对所述第二比较器逻辑执行所述第一自测试;以及
在两个时钟周期内对所述第二比较器逻辑执行所述第二自测试。
23.根据权利要求21所述的系统,其中,所述自测试控制逻辑用于生成一个或多个控制信号以:
指示所述第一比较器逻辑对所述第一输出和所述第二输出进行比较;以及
指示所述第二比较器逻辑对所述第二比较器逻辑执行自测试。
24.根据权利要求23所述的系统,其中,所述一个或多个控制信号是一个或多个第一控制信号,并且所述自测试控制逻辑用于生成一个或多个第二控制信号以:
指示所述第一比较器逻辑对所述第一比较器逻辑执行自测试;以及
指示所述第二比较器逻辑对所述第一处理器硬件的第五输出和所述第二处理器硬件的第六输出进行比较,所述第一处理器硬件被配置为与所述第二处理器硬件以锁步方式进行操作。
25.根据权利要求23所述的系统,其中:
所述第一比较器逻辑用于:
响应于确定所述第一输出中的一个或多个第一输出与所述第二输出中的一个或多个第二输出不匹配,识别出第一故障状况;以及
响应于识别出所述第一故障状况,将第一锁步调试数据传输到用户界面,所述第一锁步调试数据包括与所述第一故障状况相关联的第一端口信息或第一程序计数器信息中的至少一项;并且
所述第二比较器逻辑用于:
响应于所述自测试的故障,识别出第二故障状况;以及
响应于识别出所述第二故障状况,将第二锁步调试数据传输到所述用户界面,所述第二锁步调试数据包括与所述第二故障状况相关联的第二端口信息或第二程序计数器信息中的至少一项。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/138,529 | 2020-12-30 | ||
US17/138,529 US11474151B2 (en) | 2020-12-30 | 2020-12-30 | Lockstep comparators and related methods |
PCT/US2021/065609 WO2022147195A1 (en) | 2020-12-30 | 2021-12-30 | Lockstep comparators and related methods |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116746064A true CN116746064A (zh) | 2023-09-12 |
Family
ID=82116996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180088335.1A Pending CN116746064A (zh) | 2020-12-30 | 2021-12-30 | 锁步比较器和相关方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11474151B2 (zh) |
CN (1) | CN116746064A (zh) |
WO (1) | WO2022147195A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117389924A (zh) * | 2023-12-12 | 2024-01-12 | 苏州萨沙迈半导体有限公司 | 双核锁步电路及芯片设备 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11474151B2 (en) * | 2020-12-30 | 2022-10-18 | Texas Instruments Incorporated | Lockstep comparators and related methods |
US11928475B2 (en) * | 2021-11-05 | 2024-03-12 | Ceremorphic, Inc. | Fast recovery for dual core lock step |
US11892505B1 (en) * | 2022-09-15 | 2024-02-06 | Stmicroelectronics International N.V. | Debug and trace circuit in lockstep architectures, associated method, processing system, and apparatus |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7051252B2 (en) | 2002-02-15 | 2006-05-23 | Sun Microsystems, Inc. | Ibist identification loopback scheme |
US7346819B2 (en) | 2004-10-29 | 2008-03-18 | Rambus Inc. | Through-core self-test with multiple loopbacks |
US7983332B2 (en) * | 2007-11-12 | 2011-07-19 | Tektronix, Inc. | Eye violation and excess jitter trigger |
US9071476B2 (en) | 2010-05-20 | 2015-06-30 | Kandou Labs, S.A. | Methods and systems for high bandwidth chip-to-chip communications interface |
US8843093B2 (en) | 2012-12-20 | 2014-09-23 | Intel Corporation | Low power squelch detector circuit |
BR122024001067A2 (pt) * | 2017-08-09 | 2024-03-12 | Basf Se | Mistura pesticida sinérgica |
GB2575668B (en) * | 2018-07-19 | 2021-09-22 | Advanced Risc Mach Ltd | Memory scanning operation in response to common mode fault signal |
JP7169942B2 (ja) * | 2019-06-17 | 2022-11-11 | ルネサスエレクトロニクス株式会社 | 半導体装置及びその動作方法 |
US11474151B2 (en) * | 2020-12-30 | 2022-10-18 | Texas Instruments Incorporated | Lockstep comparators and related methods |
-
2020
- 2020-12-30 US US17/138,529 patent/US11474151B2/en active Active
-
2021
- 2021-12-30 CN CN202180088335.1A patent/CN116746064A/zh active Pending
- 2021-12-30 WO PCT/US2021/065609 patent/WO2022147195A1/en active Application Filing
-
2022
- 2022-10-18 US US18/047,511 patent/US12025659B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117389924A (zh) * | 2023-12-12 | 2024-01-12 | 苏州萨沙迈半导体有限公司 | 双核锁步电路及芯片设备 |
CN117389924B (zh) * | 2023-12-12 | 2024-03-01 | 苏州萨沙迈半导体有限公司 | 双核锁步电路及芯片设备 |
Also Published As
Publication number | Publication date |
---|---|
US12025659B2 (en) | 2024-07-02 |
WO2022147195A1 (en) | 2022-07-07 |
US11474151B2 (en) | 2022-10-18 |
US20230068811A1 (en) | 2023-03-02 |
US20220206065A1 (en) | 2022-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12025659B2 (en) | Lockstep comparators and related methods | |
US10802932B2 (en) | Data processing system having lockstep operation | |
US10289779B2 (en) | Universal verification methodology (UVM) register abstraction layer (RAL) traffic predictor | |
US9470759B2 (en) | Test instrument having a configurable interface | |
CN107077409B (zh) | 用于在电子系统中进行多接口调试的方法和装置 | |
US20040186688A1 (en) | Reusable, built-in self-test methodology for computer systems | |
WO2008157246A1 (en) | Integrated circuit with self-test feature for validating functionality of external interfaces | |
US9759772B2 (en) | Programmable test instrument | |
US11105854B2 (en) | System, apparatus and method for inter-die functional testing of an integrated circuit | |
US5898859A (en) | Address shadow feature and methods of using the same | |
CN110888036B (zh) | 测试项目确定方法及装置、存储介质和电子设备 | |
US9412467B2 (en) | Semiconductor device having a test controller and method of operation | |
CN107229793B (zh) | 一种高级可扩展接口总线平台的测试方法及装置 | |
CN103137211B (zh) | 一种nvm内建自测电路的仿真测试系统 | |
US8788897B2 (en) | Path-based crosstalk fault test scanning in built-in self-testing | |
CN105551527A (zh) | Cam的测试电路、测试方法和装置 | |
US8667352B2 (en) | Semiconductor device and method for validating a state thereof | |
Fogarty et al. | On‐chip support for software verification and debug in multi‐core embedded systems | |
US11470018B2 (en) | System-on-chip including network for debugging | |
CN117112447B (zh) | 一种数据传输方法、装置、电子设备及可读存储介质 | |
Pandey et al. | A novel approach for USB2. 0 validation on System on Chip | |
Yang et al. | Fault Simulation and Formal Analysis in Functional Safety CPU FMEDA Campaign | |
CN108241117A (zh) | 用于测试半导体组件之系统及方法 | |
Todi et al. | A Software-based Diagnostic Approach to Detect PCIe Faults and Enhance the Reliability of Safety-critical Systems | |
EP4334730A1 (en) | Methods and apparatus for using scan operations to protect secure assets |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |