CN100495357C - 处理误差信息和在处理器***中注入误差的方法和装置 - Google Patents
处理误差信息和在处理器***中注入误差的方法和装置 Download PDFInfo
- Publication number
- CN100495357C CN100495357C CNB2007100082355A CN200710008235A CN100495357C CN 100495357 C CN100495357 C CN 100495357C CN B2007100082355 A CNB2007100082355 A CN B2007100082355A CN 200710008235 A CN200710008235 A CN 200710008235A CN 100495357 C CN100495357 C CN 100495357C
- Authority
- CN
- China
- Prior art keywords
- error
- register
- fault
- local
- test instruction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
一种方法和装置被公开,其用于在处理器***的功能单元中注入误差,以及用于观测发生在那些功能单元中的非注入误差。局部误差处理器层提供在局部级的对于所述各种功能单元的误差注入。全局故障隔离寄存器(FIR)层耦合到所述局部误差处理器层,以协调所述处理器***的所述多个功能单元中的局部误差的处理。软件调试器应用或***软件与所述全局FIR层通信,以控制误差处理。
Description
技术领域
本说明书在此一般涉及处理器,并且更特别地,涉及出于测试目的在处理器中注入误差。
背景技术
处理器设计的复杂度持续以引人注目的速度逐年增长。误差测试和硬件验证由于这些持续增长的复杂结构而同样持续在重要性上增长。误差测试的一种方法是所熟悉的联合测试行动小组(JTAG)接口,其中,许多处理器和其它集成电路利用了该方法。所述JTAG接口通过将移位寄存器并入每个被测试的芯片而使用边界扫描技术来测试集成电路。这使能了经由4个I/O引脚将输入信号移位进和将输出信号移位出所述芯片,其中,所述4个I/O引脚即输入数据、输出数据、时钟和模式控制。所述JTAG方法避免了之前对于昂贵、定制的针床型探针测试阵列的需求。
在典型处理器测试场景中,调试器程序或工具与集成电路上的JTAG接口通信。所述调试器程序用关于在所述集成电路中实施的测试的测试输入信息指示所述JTAG接口。当所述集成电路完成所规定的测试时,所述调试器程序从所述集成电路上的JTAG接口收集产生的测试输出信息。
集成电路可以包括故意将误差引入构成集成电路的各个功能模块或功能单元中的误差注入电路。集成电路可以还包括收集关于发生在所述集成电路的功能模块中的误差的信息的故障隔离寄存器(FIR)。随着集成电路的规模和复杂度增长,误差注入的管理和误差信息的收集变得越来越困难。此外,不同的集成电路通常利用非常不同的误差注入、误差收集和误差信息解释方法。这倾向于减慢所述集成电路设计过程。
所需要的是一种在集成电路中执行误差注入以及解决上面所描述的问题的方法和装置。
发明内容
相应地,在一个实施例中,一种用于在包括多个局部功能单元的处理器***中误差处理的方法被公开。所述方法包括将误差信息局部存储在被耦合到所述局部功能单元的各个局部故障隔离寄存器中。所述方法还包括由测试指令源生成有关关联于所述局部功能单元的误差的测试指令。所述方法还包括在所述测试指令源和所述局部故障隔离寄存器之间提供全局故障隔离层。这样,例如调试器的测试指令源的用户不需要具有对所述局部功能单元的局部误差处理的复杂认识。
在另一实施例中,包括多个局部功能单元的处理器***被公开,其中,所述局部功能单元将误差信息局部存储在被耦合到该局部功能单元的各个局部故障隔离寄存器中。所述处理器***还包括提供有关关联于所述功能单元的误差的测试指令的测试指令源。所述处理器***还包括将所述测试指令源耦合到所述局部故障隔离寄存器的全局故障隔离层。再一次,这样,例如调试器的测试指令源的用户不需要具有对所述局部功能单元的局部误差处理的复杂认识。
附图说明
因为所述发明性概念将其借用到其它等效的实施例中,所以附图仅说明了本发明的示例性实施例,并且因此不限制其范围。
图1示出了所公开的处理器***的框图。
图2示出了图1的***中的局部故障处理器的框图。
图3A示出了图1的***的全局故障处理器的框图。
图3B示出了图3A的全局故障处理器的控制寄存器的选择字段和控制字段的表示。
图4示出了描述所公开的处理器***中的操作流程的流程图。
图5示出了利用所公开的处理器***的信息处理***。
具体实施方式
所公开的处理器***包括分层误差检测、误差注入和误差处理能力。术语RAS(可靠性、可用性、可服务性)一般地描述误差处理。在一个实施例中,所公开的处理器***在该***中被分层组织的RAS(误差检测)环境的顶层利用硬件来在所述顶层注入误差。
所公开的处理器***利用分层RAS结构进行误差检测和故障分析。在所公开的处理器***的一个实施例中,来自现有的单独芯片的几个功能模块一起集成到公用芯片上以构成所谓的“片上***”或SOC。所述功能模块的例子包括例如处理器、协处理器、L2缓冲存储器、总线接口单元和其它功能单元的结构。这些之前单独的芯片的每个典型具有其自己不同的误差处理机制。所公开的处理器***将这些功能模块与其不同的误差处理机制集成到公用IC上,以构成所述SOC。所述处理器***利用分层的误差检测和故障分析方法。在一个实施例中,所述处理器***可以利用来自所述各个功能模块的现有硬件和软件辅助恢复机制。关联于所述不同功能模块的不同误差处理机制连接到所述处理器***中的误差检测和故障分析的较高层次。所述处理器***的所述误差处理层次包括较高或顶部的层次,其中,所述较高或顶部的层次可以与例如所述JTAG接口的标准测试接口通信。这样,所公开的处理器可以在公用SOC中容纳不同的误差处理和恢复机制。
尽管所公开的处理器可以在单一SOC中容纳不同的各个功能单元的所述不同的误差处理和恢复机制,但该分层方法不增加关于芯片验证和“培养(bring-up)”的所产生的SOC的测试复杂度。术语“验证”是指,在硬件实际存在之前,即在硬件被实际制造之前,在仿真环境中验证该硬件,例如所公开的处理器。“培养”是对实际的、被制造和装配的***硬件的测试,其中,所述***硬件包括例如与所编写和开发的***软件和固件相交互的不同的集成电路芯片、存储器和底板。在一个实施例中,所公开的处理器的测试机制包括有效地打浇口(dega te)低层和在所述误差处理层次的顶层对误差注入的仿真。所述误差处理层次的顶层耦合到与调试器软件应用通信的JTAG接口。该配置便利了由实施所述测试的人员在没有对所述***的自顶向下认识的情况下进行的集成电路芯片验证和培养。此外,即使某些功能单元不完整或在设计过程期间不可用,测试也可以开始。所公开的处理器包括软件控制的硬件,其出于测试目的在所述误差处理分层的顶层提供误差注入,并且有效地将所述分层的顶层从所述分层的低层分开。这样,实施对所公开的处理器的测试的人员不需要理解在所述分层的低层的所有功能单元的误差注入逻辑。
如上面所描述的,当片上***(SOC)中的每个功能单元包括其自己唯一的误差检测机制时,在从所述多个不同的源检测误差时困难可能发生,其中,所述多个不同的源可以还被称为局部误差处理器。为解决该问题,局部误差处理器包括用于所述SOC的各个功能单元的局部误差注入电路。所述局部误差处理器将误差信息存储在用于所述各个功能单元的局部故障隔离寄存器(FIR)中。为使所述局部误差处理器能够有效地与例如所述JTAG接口的硬件测试接口通信,所公开的片上***(SOC)包括将所述局部误差处理器接口到硬件测试接口的全局误差处理器。术语“局部误差处理器”对应于局部故障处理器。类似地,术语“全局误差处理器”对应于全局故障处理器。
图1将所公开的片上***(SOC)的一个实施例示为SOC 100,即***100。***100包括局部故障处理器105,该处理器105具有用于局部误差位的局部故障处理器部分105A和用于局部故障隔离寄存器(FIR)的局部故障处理器部分105B。更具体地,局部故障处理器部分105A包括耦合到D缓存110B的数据缓存(D缓存)误差位接收器110A、耦合到I缓存112B的指令缓存(I缓存)误差位接收器112A、以及耦合到ALU 114B的算术逻辑单元(ALU)误差位接收器114A。D缓存110B、I缓存112B和ALU 114B构成***100的代表性功能单元。局部误差处理器部分105A包括处理器单元(PPU)特定误差注入电路116,该电路可以选择性地将误差注入到其误差位接收器(即D缓存误差位接收器110A、I缓存误差位接收器112A和ALU误差位接收器114A)中的任一个中。
局部故障处理器105B包括耦合到处理器单元(PPU)120B的处理器单元(PPU)核心故障隔离寄存器(FIR)120A,其中,所述处理器单元(PPU)120B是***100的另一功能单元,即所述***的主处理器。如所示的,局部故障处理器105B还包括局部I/O FIR 121A、局部存储器接口单元(MIU)FIR 122A、局部L2缓存FIR 123A和局部总线接口(B IF)FIR 124A,其分别耦合到I/O接口121B、存储器接口单元122B、L2缓冲存储器123B和总线接口124B,并且还分别耦合到局部I/O接口特定误差注入电路121C、局部存储器接口单元特定误差注入电路122C、局部L2缓存接口误差注入电路123C和局部总线接口误差注入电路124C。D缓存误差位接收器110A、I缓存误差位接收器112A和ALU误差位接收器114A如所示的耦合到处理器单元核心FIR 120A。处理器单元核心FIR 120A耦合到处理器核心(PPU)120B,其中,所述处理器核心120B是***100的功能单元之一。
在图1中,C指定可修正误差,UC指定不可修正误差,以及MC指定机器检查。局部I/O FIR 121A、局部MIU FIR 122A、局部L2缓存FIR 123A、局部处理器单元核心FIR 120A和局部B IF FIR 124A每个包括分别耦合到可修正误差总线125和不可修正误差总线127的可修正误差输出(C)和不可修正误差输出(UC)。局部I/O FIR 121A、局部处理器单元核心FIR 120A和局部B IF FIR 124A还每个包括耦合到机器检查总线129的机器检查(MC)输出。
在图1中所示的所述特定实施例中,***100利用了包括6个协同处理器单元(SPE)即处理器设备的体系结构,所述6个处理器单元被指定为SPE-0、SPE-1...SPE-5,其中图1示出了SPE-0和SPE-5。在实际实施中,***100可以利用更多或更少的SPE。所述SPE经由公用总线(未示出)相互通信并与PPU 120B通信。关于使用功率处理器单元(PPU)和多个SPE的特定体系结构的更多信息可在由IBM公司在2005年8月8日出版的出版物“Cell Broadband Engine Architecture”1.0版中找到,其中,该出版物的公开在这里被引入作为参考。该体系结构仅示例了在其中所述说明性实施例可以被实现的可能的处理器体系结构,并且在下面的详细描述中对其的描述不旨在陈述或暗示关于在其中所述说明性实施例可以被实现的处理器体系结构的类型的任何限制。在一个实施例中,PPU 120B可以是通用处理器,并且SPE-0,...SPE-5可以是特殊或专用的处理器。为方便起见,图1将SPE-0示为设备130,以及将SPE-5示为设备135。
SPE-0代表被***100利用的所述SPE。SPE-0包括耦合到局部存储LS-0和存储器流控制单元MFC-0的协同处理器单元SPU-0,即处理器。在一个实施例中,每个SPE包括存储和锁定局部误差状况的故障隔离寄存器FIR。SPE-0包括被耦合到局部存储LS-0的局部存储故障隔离寄存器LS-0FIR。SPE-0还包括被耦合到存储器流控制MFC-0的存储器流程控制故障隔离寄存器MFC-0 FIR。SPE-0还包括误差特定误差注入电路SPE-0 ERRORSPECIFIC ERROR INJECT,其耦合到局部存储故障隔离寄存器LS-0,以在其中注入误差。SPE-2直到SPE-5展现与上面描述的SPE-0基本相同的拓扑。SPE-0,SPE-1,...SPE-5每个包括分别耦合到可修正误差总线125和不可修正误差总线127的可修正误差输出(C)和不可修正误差输出(UC)。
全局故障处理器140如所示的耦合到局部故障处理器部分105B,以从其接收可修正误差信息、不可修正误差信息和机器检查信息。全局故障处理器140提供了公用或中央位置,以收集来自所述局部FIR 121A、122A、123A和124A的局部误差信息,并且还收集来自局部误差位接收器110A、112A和114A的局部误差位信息。此外,全局故障处理器140提供了局部故障处理器105和调试器软件170之间的隔离层,如下面讨论的。全局故障处理器140包括全局FIR部分141。全局FIR部分141包括全局机器检查FIR 142、全局可修正误差FIR 143和全局不可修正误差FIR 144。全局机器检查FIR 142捕获并存储接收自机器检查总线129的机器检查信息。全局可修正误差FIR 143耦合到多路复用器145,其中,所述多路复用器145包括耦合到可修正误差总线125的输入和耦合到可修正误差注入端口146的另一输入。这样,全局故障处理器140可选地将来自局部故障处理器105B的实际可修正误差或来自端口146的注入可修正误差提供给所述可修正误差FIR 143。
全局不可修正误差FIR 144耦合到多路复用器147,其中,所述多路复用器147包括耦合到不可修正误差总线127的输入和耦合到不可修正误差注入端口148的另一输入。这样,全局故障处理器140可选地将来自局部故障处理器105B的不可修正误差或作为代替将来自端口148的注入不可修正误差提供给所述不可修正误差FIR 144。外部不可修正误差引脚149提供了用于向所述SOC报告***范围不可修正误差目的的另一端口。在一个实施例中,假设有***紧急情况,例如出故障的存储器设备被存储器控制器检测到,则***控制器可以将信号应用到引脚149,以阻止SOC 100中的任何时钟信号。
全局故障处理器140还包括耦合到全局机器检查FIR 142、全局可修正误差FIR 143和全局不可修正误差FIR 144的全局逻辑150。全局逻辑150包括屏蔽寄存器功能和逻辑功能。通过使用这些屏蔽寄存器功能,全局逻辑150可以屏蔽从所述局部FIR被报告的任何误差。所述屏蔽可能有助于调试和分析目的。例如,诸如I/O IF FIR 121A和MIU FIR 122A的每个局部FIR包括误差计数器(未示出)。所述局部FIR中的这些计数器对关联于耦合到该FIR的单元的每个可修正误差进行计数。全局故障处理器140包括控制该计数活动的全局逻辑150。该全局逻辑150使得可能进行关于可修正误差发生和相关误差恢复的***性能测量。全局故障处理器140可以被设为如下面详细描述的不同误差模式。
JTAG接口160耦合到全局故障处理器140。所述JTAG接口160包括将JTAG接口160耦合到全局逻辑150的控制逻辑。全局逻辑150将所有误差向其被耦合到的JTAG接口160报告。JTAG接口160包括耦合到全局逻辑150的JTAG状态寄存器162。在一个实施例中,JTAG接口可以控制全局故障处理器140。调试器170耦合到JTAG接口160,以指示***100关于哪些误差测试将被实施,例如哪些误差将被其误差注入电路所注入。JTAG状态寄存器162包括多个位,其中,每个位对应于不同的误差发生,例如,一个位用于机器检查,一个位用于可修正误差,以及另一位用于不可修正误差。在一个实施例中,JTAG状态寄存器162包括可屏蔽位。调试器170包括被指定为EXT_ATTENTION_PIN的外部关注(attention)引脚172,其代表JTAG状态寄存器162的所有位的和,即所有位的逻辑或。
图2描述了局部故障处理器105B的一部分的示意图,其示出了可适用于***逻辑202中的功能单元类型的每个的局部FIR电路200。局部FIR电路200使能了局部误差注入和非注入误差的处理。非注入误差是在无误差注入的情况下特定功能单元产生的那些误差。在一个实施例中,***逻辑202包括例如IO IF 121B、MIU 122B、L2缓存123B和B IF 124B的功能单元。***逻辑202还包括例如PPU 120B和协处理器SPE-0、SPE-1...SPE-5的功能单元。***100可以提供用于***逻辑202的每个功能单元的各个局部FIR电路200。换句话说,各个局部FIR电路200耦合到这些功能单元的每个,以处理该功能单元的误差。然而,出于示例目的,图2示出了被配置为运转作为I/O接口(I/O IF)局部FIR电路的代表性局部FIR电路200。在该特定例子中,局部FIR电路200包括局部FIR 204(即I/O IF FIR 121A),其被耦合到***逻辑202(即I/O接口121B)以及误差注入电路206(即I/O误差注入电路121C)。
现在转向图2的例子,其中***逻辑202的功能单元是I/O接口121B,所述I/O接口FIR 121A耦合到***逻辑202中的I/O接口121B以收集直接由I/O接口121B产生的非注入误差信息,以及耦合到I/O误差注入电路121C(误差注入电路206)以收集关于注入误差的误差信息。误差检测器208耦合到***逻辑202,以检测所述***逻辑202生成的误差。误差检测器208的输出耦合到或门210的一个输入,其中,该或门的剩余输入耦合到误差注入电路206。误差注入电路206在或门210的输入注入误差。这样,发生在***逻辑202中的自然非注入误差和来自误差注入电路206的注入误差都经由或门210、与门212和或门214传播到局部FIR 121A。局部FIR电路200包括用于分别通过检查点、误差屏蔽和机器检查功能来配置局部FIR电路200的检查点使能配置寄存器220、误差屏蔽配置寄存器222和机器检查使能寄存器224。局部FIR电路200包括相互耦合的与门230、232和234,以及寄存器220、222和224,如所示的。局部FIR电路200包括机器***分240,其中,该机器***分包括机器检查使能寄存器224和与门234。
为配置FIR电路200在输出UC生成检查点误差或不可恢复误差,***100将检查点使能寄存器220编程为逻辑高,以及将误差屏蔽寄存器222编程为逻辑低。未被耦合到寄存器220或222的剩余的与门230输入耦合到局部FIR 204的输出。与门230的输出经由两输入或门250耦合到输出UC。未被耦合到与门230的或门250的输入接收例如局部FIR 204中的任意检查点位的其它信息。类似地,***100可以将配置寄存器220、222和224配置为向输出C提供可恢复误差。所述***逻辑202在无注入的情况下提供误差,即自然发生的误差。最初,***100不知道其是哪一类误差。误差屏蔽寄存器222和机器检查使能寄存器224帮助***100确定误差的类型。误差屏蔽寄存器222确定一般***参与是误差处理。出于调试目的,误差屏蔽寄存器222可以被使能或禁用。检查点使能寄存器220确定***100将特定误差当作不可修正误差或可修正误差。在一个实施例中,用于检查点使能寄存器220的默认值是“可修正”误差。机器检查使能寄存器224决定特定误差作为“机器检查”型误差还是“可修正误差”参与。“机器检查”型误差是这样一种误差,对于其,***软件处理该误差,并且决定该误差是可由恢复修正的或者所述***需要被停止。***100可以还将配置寄存器220、222和224配置为在输出M提供机器检查。***100可以还将配置寄存器220、222和224配置为向输出C提供局部FIR 204的误差内容。如在图2中所见,局部故障处理器105B的局部FIR电路200经由输出M、C和UC向全局故障处理器140提供机器检查、可恢复误差和检查点。现在参考图1,机器检查FIR 142收集并存储这些机器检查;可修正误差FIR 143收集并存储这些可修正误差,而不可修正误差FIR 144收集并存储不可修正误差。
图3A示出了调试器软件170和JTAG接口160的更多细节,其中,所述JTAG接口160利用全局故障处理器140来指示***100关于收集哪些误差以及注入和存储哪些误差。调试器软件170和***软件300可以每个都访问***100的所述误差处理层次。调试器软件170经由其间的JTAG接口160中的JTAG控制器305与选择器310的输入通信。***软件300如所示的与选择器305的另一输入通信。在一个实施例中,RISCWatchTM调试器软件可以被用作***访问软件300。(RISCWatch是国际商业机器公司的商标)。如上面参考图2所讨论的,***逻辑202随着其运转可以自然地生成误差。然而,即使***逻辑202其自己不展现误差,***100也可以强制地使得***逻辑202通过误差注入来展现误差。现在返回图3A,***访问软件300可以指示全局故障处理器140观测并收集非注入误差,即***逻辑202展现的那些自然的、非强制的误差。可选地,***访问软件300可以指示全局故障处理器140中的全局误差注入逻辑将误差直接注入到全局误差FIR 143或144。所述全局误差注入逻辑包括下面详细讨论的控制寄存器315、输出解码器325和全局输入多路复用器330。所述***访问软件300可以还指示全局故障处理器140收集并存储注入误差,即***逻辑202展现的由于误差注入得到的强制误差。***访问软件300可以指示哪个特定功能单元来展现哪类误差。***访问软件300可以还控制全局故障处理器140和局部故障处理器105的其它运转方面。作为***访问软件300的代替,调试器软件170可以还指示全局故障处理器140收集并存储自然发生的误差,或者注入误差并存储结果。
JTAG控制器305和***软件300耦合到选择器310的各个输入,以致每个都可以访问控制寄存器315,其中,所述控制寄存器315如所示的耦合到选择器310的输出。控制寄存器315包括选择字段部分315A和控制字段部分315B。图3A的选择字段部分315A的寄存器位对应于图3B示出的描述了寄存器315的位布局的部分字段位。图3A的控制字段部分315B的寄存器位对应于图3B的控制字段位。在图3B的所述选择字段中,位0对应于被指定为PPU 120B的功能单元或模块,位1对应于I/O 121B,位2对应于MIU 122B,位3对应于L2缓存123B,位4对应于B IF 124B,位5对应于协处理器SPE-0,位6对应于协处理器SPE-1,...以及位N对应于协处理器SPE(5),其中N=5。***软件300可以通过将对应于功能单元或模块的位的逻辑状态升为高来寻址这些功能单元或模块的任一个。在一个实施例中,控制寄存器315是像所述***的其它体系结构寄存器一样可由***软件访问的体系结构寄存器。控制寄存器314可经由调试器170访问,其中,所述调试器170例如是包括JTAG接口的所述RISCWatchTM调试器。
当***访问软件300或调试器软件170由此寻址功能单元时,所述***访问软件或调试器软件可以还通过指定控制字段315B中的适当位来指定***100对于该功能单元应当利用的误差的类型。这样,***100控制当前利用的误差类型或模式。如图3B中所见,如果调试器软件170将位“1”升为高,则***100在当前被寻址的功能单元中注入误差。如果调试软件170将所述不可修正误差位“UE”设为高或逻辑1,则***100对当前被寻址的功能单元注入或仿真不可修正误差。然而,如果调试器软件170将所述不可修正误差位“UE”设为低或逻辑0,则***100对当前被寻址的功能单元注入或仿真可修正误差。如果调试器软件170将所述复位位“R”设为高或逻辑1,则***100尝试复位重试,即之前操作尝试的重复。控制和解码器逻辑320耦合到控制字段部分315B和输出解码器325。逻辑320指示输出解码器325关于所述控制字段中指定的误差处理类型。选择字段部分315A耦合到输出解码器325,以便通知输出解码器325关于***100应当对其注入误差的特定功能单元。为将该功能单元选择信息从控制字段部分315A向输出解码器325传送,全局故障处理器140包括PPU误差注入线路、I/O IF误差注入线路、MIU误差注入线路、L2误差注入线路、BIF误差注入线路以及SPE误差注入(0)线路,...SPE误差注入(5)线路。
输出解码器325经由下面的指定在指定的各个功能单元处的可修正或不可修正误差的线路耦合到全局FIR输入多路复用器330:PPU可修正误差、I/O IF可修正误差、MIU可修正误差、L2可修正误差、B IF可修正误差、SPE可修正误差(0),...SPE可修正误差(5)。图3A描述了输出解码器325和全局FIR输入多路复用器330之间用于指定不可修正误差的注入的类似的线路组。图3A还将全局FIR输入多路复用器330描述为被耦合到全局可修正误差FIR 143和全局不可修正误差FIR 144。在实际实施中,***100可以如下使全局故障处理器140分叉。一个控制/解码器逻辑320、输出解码器325和多路复用器330的组可以以专用方式为全局可修正误差FIR 143服务,以及另一个控制/解码器逻辑320、输出解码器325和多路复用器330的组可以以专用方式为全局不可修正误差FIR 144服务。由此,全局FIR输入多路复用器330实际上包括两个分离的多路复用器,即专用于可修正误差注入的多路复用器145和专用于不可修正误差注入的多路复用器147,如图1中所示。
作为例子,为将可修正误差注入到被称为I/O IF 123B的功能单元中,调试器软件170激活选择器310,以便将该调试器连接到控制寄存器315。调试器软件170然后将所述选择字段315A的位1设为1,以及将所述控制字段315B的UE位设为0。控制和解码器逻辑320解释所述控制字段,并且指示输出解码器325调试器软件170指定了可修正误差。解码器325解释选择字段315A的所述位,以便确定所述调试器软件指定了在所述I/O IF功能模块121B中的误差的注入。全局FIR输入多路复用器330然后指示全局可修正误差FIR 143关于所述特定的指定误差。全局可修正误差FIR143接收并存储针对所述I/O IF功能模块121B被指定的所述指定注入可修正误差。FIR 143和144立即存储被呈现在其上的任意误差。全局可修正误差FIR 143和全局不可修正误差FIR 144每个都包括专用于每个功能单元的各个位。每个可修正误差、不可修正误差或机器检查误差都具有每功能单元的一个位,其中,所述每功能单元的一个位在全局级,即在机器检查FIR 142、可修正误差FIR 143和不可修正误差FIR 144被分配。如图3A中可见,全局FIR输入多路复用器330、全局可修正误差FIR 143和全局不可修正误差FIR 144构成图1的全局FIR 141的一部分。在一个实施例中,FIR 144是只读取寄存器,并且所有其它FIR是读取/写入寄存器。图1由此示出了全局故障处理器140的所述FIR 141和JTAG接口160之间的读取连接,而图3A示出了用于注入误差的写入配置。
图4示出了描述***100的一个实施例中的操作流程的流程图。调试器软件170的用户按照方框700指定感兴趣的一种类型的误差。例如,用户可以指定机器检查误差、可修正误差或不可修正误差。在该特定实施例中,用户指定可修正误差。可选地,***软件300可以指定所述误差类型。用户然后按照方框705指示所述调试器软件读取特定误差或注入特定误差。例如,用户可以指定读取误差。可选地,***软件300可以指定读取或注入误差操作。用户然后可以指示所述调试器软件170关于从哪个特定功能单元读取或导出所述误差信息。例如,用户可以指定所述L2缓存功能单元123B。***100在决策方框715实施测试,以确定读取误差或注入误差的选择。如果所述用户选择了读取误差,则过程流程继续到方框720,其中,在所述方框720,所述全局FIR 141收集来自被耦合到其的功能单元的FIR的误差信息。所述全局FIR期望将用户从需要理解在所述局部功能单元级的误差收集和误差处理的内部工作隔离。由于用户选择了从所述L2缓存功能单元读取不可修正误差,所述***访问被收集和存储在所述全局FIR 144中的不可修正误差信息,其中,所述全局FIR 144即专用于存储所述功能单元的不可修正误差的全局FIR。特别地,所述***按照方框725访问并读取不可修正误差全局FIR 144存储的来自所述L2缓存功能单元的不可修正误差信息。全局FIR 144按照方框730将该信息发送到调试器170或***软件300。过程流程然后继续回到方框700,其中,用户在该方框700可以初始化新的对于误差处理活动的请求。如果取代在方框705指定对误差的读取,所述用户作为代替指定了注入误差,则在决策方框715过程流程将继续到方框735。在方框735,所述***将向全局不可修正误差FIR 144的专用于处理由用户在方框710指定的L2缓存功能单元的误差的部分注入或写入误差。过程流程然后继续回到方框700。用户然后可以指示所述***监视所选择的全局FIR,以便察看所注入的误差的结果。用户或程序员可以使用在300的***软件来将不可修正误差注入到***100中。在该情况下,所述流程的读取分支(即方框720、725和730)由于所述***在遭遇所述不可修正误差时该***中的任意时钟立即停止而停止作用。被停止的时钟导致***寄存器对于***软件不可访问。在该情况下,用户或程员序使用所述RISCwatchTM调试器接口来访问***寄存器以获得误差信息。
图5示出了信息处理***(IHS)500,其中,所述信息处理***(IHS)500利用***100作为用于该IHS的处理器。IHS 500还包括将处理器100耦合到***存储器515和视频图形控制器520的总线510。显示器525耦合到视频图形控制器520。例如硬盘驱动器、CD驱动器、DVD驱动器或其它非易失性存储器的非易失性存储器530耦合到总线510,以向IHS 500提供永久的信息存储。操作***535加载到存储器515中,以管理IHS的操作。例如键盘或鼠标指点设备的I/O设备540耦合到总线510。例如USB、IEEE 1394总线、ATA、SATA、PCI、PCIE和其它总线的一个或更多扩展总线545耦合到总线510,以便利于***和设备到IHS 500的连接。网络适配器550耦合到总线510,以使IHS 500能够通过有线或无线地连接到网络和其它信息处理***。尽管图5示出了利用处理器100的一个IHS,但所述IHS可以采取许多形式。例如,IHS 500可以采取台式机、服务器、便携式、膝上型、笔记本或其它形式因素计算机或数据处理***的形式。IHS 500可以采用例如游戏设备、个人数字助理(PDA)、便携式电话设备、通信设备或包括处理器和存储器的其它设备的形式因素。
前述公开了一种在局部和全局级注入误差以提供对于多个不同功能单元的误差测试的处理器。
由于本发明申请书,本发明的修改和可选实施例对于本领域的技术人员将是显而易见的。相应地,本说明书教授本领域的技术人员执行本发明的方式,并且旨在被解释为仅说明性的。所示出和描述的本发明的形式构成本实施例。本领域的技术人员可以在部分的形状、规模和安排方面做出各种改变。例如,本领域的技术人员可以对于这里所示出和描述的单元替换等效单元。此外,本领域的技术人员在获益于本发明的说明书之后,可以在不脱离本发明的范围的情况下独立于其它特征的使用来使用本发明的某些特征。
Claims (20)
1.一种在包括多个局部功能单元的处理器***中误差处理的方法,所述方法包括:
将误差信息局部存储到被耦合到所述局部功能单元的各个局部故障隔离寄存器中;
由测试指令源生成有关关联于所述局部功能单元的误差的测试指令;以及
在所述测试指令源和所述局部故障隔离寄存器之间提供全局故障隔离寄存器。
2.根据权利要求1所述的方法,其中所述全局故障隔离寄存器包括可修正误差故障隔离寄存器、不可修正误差故障隔离寄存器和机器检查寄存器中的至少一个。
3.根据权利要求1所述的方法,还包括:由所述测试指令源根据所述测试指令选择可修正误差、不可修正误差和机器检查误差中的至少一个。
4.根据权利要求3所述的方法,还包括:由所述测试指令源选择将被所述全局故障隔离寄存器执行的读取误差操作。
5.根据权利要求3所述的方法,还包括:由所述测试指令源选择将被所述全局故障隔离寄存器执行的误差注入操作。
6.根据权利要求1所述的方法,还包括:由所述全局故障隔离寄存器从所述局部故障隔离寄存器接收误差信息。
7.根据权利要求6所述的方法,还包括:由所述全局故障隔离寄存器中的至少一个全局故障隔离寄存器存储接收自所述局部故障隔离寄存器的所述误差信息。
8.根据权利要求1所述的方法,其中所述测试指令源包括调试器软件。
9.根据权利要求1的所述方法,其中所述测试指令源包括***软件。
10.一种处理器***,包括:
多个局部功能单元,其将误差信息局部存储在被耦合到所述局部功能单元的各个局部故障隔离寄存器中;
提供有关关联于所述局部功能单元的误差的测试指令的测试指令源;以及
将所述测试指令源耦合到所述局部故障隔离寄存器的全局故障隔离寄存器。
11.根据权利要求10所述的处理器***,其中所述全局故障隔离寄存器包括可修正误差故障隔离寄存器、不可修正误差故障隔离寄存器和机器检查寄存器中的至少一个。
12.根据权利要求10所述的处理器***,其中所述测试指令源根据所述测试指令选择可修正误差、不可修正误差和机器检查误差中的至少一个。
13.根据权利要求12所述的处理器***,其中所述测试指令源选择将被所述全局故障隔离寄存器执行的读取误差操作。
14.根据权利要求12所述的处理器***,其中所述测试指令源选择将被所述全局故障隔离寄存器执行的误差注入操作。
15.根据权利要求10所述的处理器***,其中所述全局故障隔离寄存器从所述局部故障隔离寄存器接收误差信息。
16.根据权利要求15所述的处理器***,其中所述全局故障隔离寄存器中的至少一个全局故障隔离寄存器存储接收自所述局部故障寄存器的所述误差信息。
17.根据权利要求10所述的处理器***,其中所述测试指令源包括调试器软件。
18.根据权利要求10所述的处理器***,其中所述测试指令源包括***软件。
19.一种信息处理***,包括
存储器;
耦合到所述存储器的处理器,所述处理器包括:
多个局部功能单元,其将误差信息局部存储在被耦合到所述局部功能单元的各个局部故障隔离寄存器中;
提供有关关联于所述局部功能单元的误差的测试指令的测试指令源;以及
将所述测试指令源耦合到所述局部故障隔离寄存器的全局故障隔离寄存器。
20.根据权利要求19所述的信息处理***,其中所述全局故障隔离寄存器包括可修正误差故障隔离寄存器、不可修正误差故障隔离寄存器和机器检查寄存器中的至少一个。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/340,448 | 2006-01-26 | ||
US11/340,448 US20070174679A1 (en) | 2006-01-26 | 2006-01-26 | Method and apparatus for processing error information and injecting errors in a processor system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101008916A CN101008916A (zh) | 2007-08-01 |
CN100495357C true CN100495357C (zh) | 2009-06-03 |
Family
ID=38287018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007100082355A Expired - Fee Related CN100495357C (zh) | 2006-01-26 | 2007-01-25 | 处理误差信息和在处理器***中注入误差的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20070174679A1 (zh) |
JP (1) | JP2007200300A (zh) |
CN (1) | CN100495357C (zh) |
TW (1) | TW200805052A (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4586750B2 (ja) * | 2006-03-10 | 2010-11-24 | 日本電気株式会社 | コンピュータシステムおよび起動監視方法 |
KR100897412B1 (ko) | 2006-11-09 | 2009-05-14 | 한국전자통신연구원 | 소프트웨어 결함 유발 데이터를 삽입한 파일을 이용하여소프트웨어의 결함을 검출하는 자동화 시스템 및 그 방법 |
US7730356B2 (en) * | 2007-09-28 | 2010-06-01 | Intel Corporation | Method and apparatus for testing mathematical algorithms |
JP2009129301A (ja) * | 2007-11-27 | 2009-06-11 | Nec Electronics Corp | 自己診断回路及び自己診断方法 |
US8359577B2 (en) * | 2008-12-23 | 2013-01-22 | Honeywell International Inc. | Software health management testbed |
JP5544878B2 (ja) * | 2009-12-25 | 2014-07-09 | 富士通株式会社 | 故障制御装置、プロセッサコア、演算処理装置、情報処理装置および擬似故障制御方法 |
JP2012073678A (ja) | 2010-09-27 | 2012-04-12 | Fujitsu Ltd | 擬似エラー発生装置 |
JP5609986B2 (ja) * | 2010-11-16 | 2014-10-22 | 富士通株式会社 | 情報処理装置、送信装置及び情報処理装置の制御方法 |
US8775904B2 (en) | 2011-12-07 | 2014-07-08 | International Business Machines Corporation | Efficient storage of meta-bits within a system memory |
US8645797B2 (en) * | 2011-12-12 | 2014-02-04 | Intel Corporation | Injecting a data error into a writeback path to memory |
US9442815B2 (en) * | 2012-10-31 | 2016-09-13 | Advanced Micro Devices, Inc. | Distributed on-chip debug triggering with allocated bus lines |
JP2015108986A (ja) * | 2013-12-05 | 2015-06-11 | 富士通株式会社 | 情報処理装置、情報処理装置の試験命令列及び試験方法 |
US10452505B2 (en) * | 2017-12-20 | 2019-10-22 | Advanced Micro Devices, Inc. | Error injection for assessment of error detection and correction techniques using error injection logic and non-volatile memory |
US10922203B1 (en) * | 2018-09-21 | 2021-02-16 | Nvidia Corporation | Fault injection architecture for resilient GPU computing |
JP7251949B2 (ja) * | 2018-11-06 | 2023-04-04 | ルネサスエレクトロニクス株式会社 | 半導体装置、半導体システム及びテスト制御方法 |
CN109714113B (zh) * | 2019-01-02 | 2021-06-08 | 南京金龙客车制造有限公司 | 一种can总线干扰注入电路 |
US10997029B2 (en) * | 2019-03-07 | 2021-05-04 | International Business Machines Corporation | Core repair with failure analysis and recovery probe |
CN111767241B (zh) * | 2019-04-02 | 2022-04-29 | 富联精密电子(天津)有限公司 | 一种PCIe注错测试方法、装置以及存储介质 |
CN111143145B (zh) * | 2019-12-26 | 2023-04-07 | 山东方寸微电子科技有限公司 | 一种sata错误处理调试中制造错误的方法及电子设备 |
CN112783139B (zh) * | 2020-12-30 | 2024-06-11 | 上汽通用五菱汽车股份有限公司 | 一种CAN总线BusOff逻辑测试***与方法 |
CN113127227B (zh) * | 2021-03-19 | 2023-03-21 | 深圳和而泰智能家电控制器有限公司 | 模组通信的指令处理方法、装置、微控制器和介质 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4996688A (en) * | 1988-09-19 | 1991-02-26 | Unisys Corporation | Fault capture/fault injection system |
JPH0764817A (ja) * | 1993-08-30 | 1995-03-10 | Mitsubishi Electric Corp | 故障検出システム |
US6324614B1 (en) * | 1997-08-26 | 2001-11-27 | Lee D. Whetsel | Tap with scannable control circuit for selecting first test data register in tap or second test data register in tap linking module for scanning data |
US6304984B1 (en) * | 1998-09-29 | 2001-10-16 | International Business Machines Corporation | Method and system for injecting errors to a device within a computer system |
US6745321B1 (en) * | 1999-11-08 | 2004-06-01 | International Business Machines Corporation | Method and apparatus for harvesting problematic code sections aggravating hardware design flaws in a microprocessor |
US6550020B1 (en) * | 2000-01-10 | 2003-04-15 | International Business Machines Corporation | Method and system for dynamically configuring a central processing unit with multiple processing cores |
US6880113B2 (en) * | 2001-05-03 | 2005-04-12 | International Business Machines Corporation | Conditional hardware scan dump data capture |
JP3785388B2 (ja) * | 2002-09-17 | 2006-06-14 | 松下電器産業株式会社 | 故障検出方法 |
US7222270B2 (en) * | 2003-01-10 | 2007-05-22 | International Business Machines Corporation | Method for tagging uncorrectable errors for symmetric multiprocessors |
US7698700B2 (en) * | 2003-04-17 | 2010-04-13 | International Business Machines Corporation | System quiesce for concurrent code updates |
US7284159B2 (en) * | 2003-08-26 | 2007-10-16 | Lucent Technologies Inc. | Fault injection method and system |
US7350113B2 (en) * | 2004-05-11 | 2008-03-25 | International Business Machines Corporation | Control method, system, and program product employing an embedded mechanism for testing a system's fault-handling capability |
US7308616B2 (en) * | 2004-08-26 | 2007-12-11 | International Business Machines Corporation | Method, apparatus, and computer program product for enhanced diagnostic test error reporting utilizing fault isolation registers |
JP4722457B2 (ja) * | 2004-11-05 | 2011-07-13 | ルネサスエレクトロニクス株式会社 | Canシステム |
-
2006
- 2006-01-26 US US11/340,448 patent/US20070174679A1/en not_active Abandoned
- 2006-12-26 JP JP2006350307A patent/JP2007200300A/ja active Pending
-
2007
- 2007-01-22 TW TW096102360A patent/TW200805052A/zh unknown
- 2007-01-25 CN CNB2007100082355A patent/CN100495357C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101008916A (zh) | 2007-08-01 |
TW200805052A (en) | 2008-01-16 |
JP2007200300A (ja) | 2007-08-09 |
US20070174679A1 (en) | 2007-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100495357C (zh) | 处理误差信息和在处理器***中注入误差的方法和装置 | |
Park et al. | Post-silicon bug localization in processors using instruction footprint recording and analysis (IFRA) | |
Siewiorek et al. | Reliable computer systems: design and evaluation | |
US7437692B2 (en) | Memory debugger for system-on-a-chip designs | |
CN100489554C (zh) | 测试装置与测试模拟方法 | |
US8140925B2 (en) | Method and apparatus to debug an integrated circuit chip via synchronous clock stop and scan | |
Civera et al. | Exploiting circuit emulation for fast hardness evaluation | |
Messer et al. | Susceptibility of commodity systems and software to memory soft errors | |
US6829751B1 (en) | Diagnostic architecture using FPGA core in system on a chip design | |
CN1716264B (zh) | 利用控制程序信息注释并呈现***踪迹的方法和*** | |
CN101320341B (zh) | 数据扫描错误恢复***和方法 | |
Portela-García et al. | On the use of embedded debug features for permanent and transient fault resilience in microprocessors | |
CN103164316B (zh) | 硬件监视器 | |
JP2012248194A (ja) | 状態保持回路における状態保全性の検証 | |
CN113255267A (zh) | 使用现场可编程门阵列fpga重新编程检测仿真中的时序违规 | |
US7571357B2 (en) | Memory wrap test mode using functional read/write buffers | |
Xu et al. | DualVisor: Redundant hypervisor execution for achieving hardware error resilience in datacenters | |
US6934656B2 (en) | Auto-linking of function logic state with testcase regression list | |
Fang et al. | Diagnosis of board-level functional failures under uncertainty using Dempster–Shafer theory | |
Kim et al. | Runtime Testability on Autonomous System | |
Biswas et al. | A formal approach to on-line monitoring of digital VLSI circuits: theory, design and implementation | |
Toth et al. | Automated database-driven digital testing | |
Wang et al. | A neural-network-based approach for diagnosing hardware faults in cloud systems | |
Wile et al. | Functional verification of the CMOS S/390 parallel enterprise server G4 system | |
Clarke et al. | IBM System z10 design for RAS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090603 Termination date: 20100225 |