CN101689150B - 信息处理装置及控制方法 - Google Patents

信息处理装置及控制方法 Download PDF

Info

Publication number
CN101689150B
CN101689150B CN2007800533589A CN200780053358A CN101689150B CN 101689150 B CN101689150 B CN 101689150B CN 2007800533589 A CN2007800533589 A CN 2007800533589A CN 200780053358 A CN200780053358 A CN 200780053358A CN 101689150 B CN101689150 B CN 101689150B
Authority
CN
China
Prior art keywords
indication
fault
pseudo
data
register file
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
Application number
CN2007800533589A
Other languages
English (en)
Other versions
CN101689150A (zh
Inventor
菅竜二
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of CN101689150A publication Critical patent/CN101689150A/zh
Application granted granted Critical
Publication of CN101689150B publication Critical patent/CN101689150B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection 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/2215Detection 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 error correction or detection circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection 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/2236Detection 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • G06F9/30127Register windows
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30138Extension of register space, e.g. register cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3865Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种信息处理装置及控制方法,处理装置具有:第1寄存器文件;第2寄存器文件,其保存第1寄存器文件所保存的数据的一部分;运算单元,其使用从第2寄存器文件读出的数据进行运算,并把运算结果作为输出数据进行输出;和指示单元,其发出写入指示及第1和第2发生指示,该写入指示用于指示向第1和第2寄存器文件双方写入输出数据及其错误检测码,该第1和第2发生指示用于指示第1和第2寄存器文件各自的伪故障生成。处理装置还具有:第1控制单元,其在接收到写入指示和第1发生指示时,发出第1生成指示;第1生成单元,其在接收到第1生成指示时,根据输出数据和错误检测码生成第1伪故障数据,并输出给第1寄存器文件;以及同样的第2控制单元和第2生成单元。

Description

信息处理装置及控制方法
技术领域
本发明涉及对故障发生进行仿真的技术。 
背景技术
公知在一般的信息处理装置中,有在寄存器文件等发生故障而使得数据产生错误的情况下检测错误的机构、以及自动纠正所检测到的错误并从故障状态下恢复的各种机构。在信息处理装置的试制阶段和实际制造阶段的检查过程中,需要分别确认以下机构都正常动作,所述机构包括使用奇偶校验来检测错误的机构、使用纠错码(ECC)来检测错误并进行纠正的机构、根据错误检测由硬件自动进行指令的再执行的机构、以及根据错误检测通过软件的中断来进行程序的再执行的机构等。即,需要对这些机构进行排除故障(debug)。以下,把作为排除故障的对象的这些机构统称为“排除故障对象机构”。为了进行排除故障对象机构的排除故障,需要预先在信息处理装置内的中央处理装置(CPU)中嵌入发生伪故障(以下称为伪故障)的电路,以便仿真故障的发生。 
图1是表示嵌入了发生伪故障的电路的以往的中央处理装置的结构的功能方框图。图1是抽取了构成CPU 100的各个部分中与发生伪故障相关联的部分的图。 
在通常动作时,运算部102使用从寄存器文件101读出的数据进行运算,将运算结果写回到寄存器文件101中。控制部103控制整个运算的执行,该控制例如包括向寄存器文件101的数据写入指示。 
另外,CPU 100具有由硬件、固件、及/或软件实现的排除故障对象机构(未图示)、和伪故障数据生成电路104。并且,控制部103也进行切换以下模式的控制,即如上所述进行通常的运算的通常模式、和用于对排除故障对象机构排除故障的排除故障模式。 
伪故障数据生成电路104设置在从运算部102到寄存器文件101的路径的中途。在通常模式时,从运算部102输出的运算结果被输入伪故障数据生成电路104,伪故障数据生成电路104将该输入直接输出给寄存器文件101。 
另一方面,在排除故障模式时,控制部103指示伪故障数据生成电路104发生伪故障。并且,伪故障数据生成电路104按照伪故障发生指示,根据从运算部102输入的运算结果生成伪故障数据,并输出给寄存器文件101。代表性的伪故障数据是所输入的运算结果中、使1位以上的位值反转得到的数据。 
通过以上动作,运算结果在被转换为伪故障数据后写入寄存器文件101,所以能够仿真故障的发生。这样仿真出来的故障即伪故障被用于排除故障对象机构的排除故障。 
有关发生伪故障的公知文献例如有专利文献1~4。 
专利文献1的装置具有:出错位设定器,其能够设定任意的出错位;和选择器,其选择来自通常使用的出错位生成电路的输出和来自出错位设定器的输出中的一个。选择器的输出在出错位解码电路中进行解码,并通过数据校正电路求出解码结果与存储在寄存器中的数据的“异或”(XOR)。因此,通过由选择器选择出错位设定器,从数据校正电路输出在任意位产生了错误的数据。 
专利文献2的电路具有组合了计数器和解码器的控制电路,以便能够指定纠错电路能够纠错的错误的全部类型。控制电路输出与数据和ECC的各个位对应的错误发生用控制位。这些错误发生用控制位分别在伪故障发生电路中进行与对应的数据的位或对应的ECC的位的“异或”运算。因此,能够发生纠错电路能够纠错的全部类型错误的伪故障。 
在专利文献3的电路中,在微程序控制方式的中央处理装置中,在表示使发生伪故障的定时的时刻信号为逻辑电平“1”时,故障指示触发器被置位,如果表示故障发生只是1次的模式触发器、和表示已经发生故障的履历触发器中的至少一方没有被置位,则在1个时钟期间,故障发生触发器被置位,而通知故障。 
专利文献4的电路能够对进行相应寄存器的值的奇偶校验的多个奇偶校验电路的每一个,设定是否使检测故障的对象即寄存器发生伪故障。在设定为使伪故障发生时,通过异或电路使检测故障对象的寄存器的奇偶校验位反转。 
以上所述有关发生伪故障的各种技术已被公知。另一方面,还知道一种具有多个寄存器文件的CPU,用于从具有多个条目(entry)的大规模寄存器文件中快速读出数据。 
例如,专利文献5的装置具有:主寄存器文件(MRF),其具有多个寄存器窗口;当前窗口寄存器(CWR),其保存由当前窗口指针(CWP)指示的当前的寄存器窗口的数据的复制;当前窗口更换缓存器(CRB),其先读出下一个应该保存在CWR中的寄存器窗口的数据并保存;和运算部,其从CWR或CRB读出数据并执行运算。 
但是,在具有多个寄存器文件的CPU中,在按照以往的方法使伪故障发生时,存在不能对排除故障对象机构充分排除故障的问题。例如,假设图1中的寄存器文件101由具有多个条目的大规模的寄存器文件(以下称为MRF,MRF是Master Register File(主寄存器文件)的简称)、和只复制并保存MRF的一部分条目的数据的小规模的寄存器文件(以下称为WRF,WRF是Working Register File(工作寄存器文件)的简称)构成。并且,假设运算部102从WRF读出数据,运算结果被写回到MRF和WRF双方中。 
该情况时,根据图1所示的结构,从伪故障数据生成电路104输出的相同的伪故障数据被写入MRF和WRF双方中。因此,伪故障数据生成电路104能够仿真的类型只是在构成寄存器文件101的MRF和WRF双方同时产生相同故障的类型。 
即,在图1所示的以往的结构中,不能相对于WRF独立地只对在MRF中产生的故障进行仿真,而不能对作为MRF用而设置的排除故障对象机构独立排除故障。然而,对以下情况排除故障是至关重要的:对只在MRF中产生的故障进行仿真并且该故障是否被正确检测、以及数据是否被正确纠正。因此,期望对只在MRF中产生的故障进行仿真的功能。 
其中一个原因是虽然能够由MRF来恢复WRF,但是反过来则不行。即使WRF发生了故障,如果MRF是正常的,通过从MRF重新复制数据,能够容易地将WRF的数据恢复。但是,在MRF发生故障时,在WRF中只保存了MRF保存的数据中的一部分,所以不能由WRF来恢复MRF的数据。因此,例如需要从高速缓存器或主存储器读出数据来恢复MRF的数据等的措施。即,发生于MRF的故障相比发生于WRF的故障,其影响的范围更大,所以对只在MRF产生的故障进行仿真的功能很重要。 
并且,另一个原因是MRF的规模比WRF大,在MRF发生因中子等造成的软错误的频度高于WRF中的软错误的发生频度。这样,由于实际的故障的发生频度不同,所以要求对虽然WRF没有产生故障但在MRF产生了故障的实际类型进行仿真。 
专利文献1:日本特开昭58-043044号公报 
专利文献2:日本特开昭59-200349号公报 
专利文献3:日本特开昭61-267840号公报 
专利文献4:日本特开平4-109340号公报 
专利文献5:日本特开2007-087108号公报 
发明内容
上述讨论不限于信息处理装置中包含的CPU,对于具有多个寄存器文件的处理装置即一般处理器也成立。本发明的目的在于,在具有第1寄存器文件、和保存该第1寄存器文件所保存的数据的一部分的第2寄存器文件的处理装置中,该处理装置至少能够对单独发生于第1寄存器文件的故障进行仿真。 
本发明的处理装置具有第1和第2寄存器文件、运算单元、指示单元、第1和第2控制单元、及第1和第2生成单元。 
所述第2寄存器文件保存所述第1寄存器文件所保存的数据的一部分。所述运算单元使用从所述第2寄存器文件读出的数据进行运算,把运算结果作为输出数据输出。 
所述指示单元发出写入指示及第1和第2发生指示,所述写入指示 指示向所述第1和第2寄存器文件双方写入所述输出数据和用于检测该输出数据的错误的错误检测码,所述第1和第2发生指示指示生成所述第1和第2寄存器文件各自的伪故障。 
所述第1控制单元在接收到所述写入指示和所述第1发生指示时,发出第1生成指示。所述第1生成单元在接收到所述第1生成指示时,根据所述输出数据和所述错误检测码生成第1伪故障数据,并输出给所述第1寄存器文件,在没有所述第1生成指示时,将所述输出数据和所述错误检测码输出给所述第1寄存器文件。 
所述第2控制单元在接收到所述写入指示和所述第2发生指示时,发出第2生成指示。所述第2生成单元在接收到所述第2生成指示时,根据所述输出数据和所述错误检测码生成第2伪故障数据,并输出给所述第2寄存器文件,在没有所述第2生成指示时,将所述输出数据和所述错误检测码输出给所述第2寄存器文件。 
根据本发明,指示单元在发出写入指示时发出第1发生指示,但不发出第2发生指示,由此第1伪故障数据被输出给第1寄存器文件,作为运算结果的输出数据自身被输出给第2寄存器文件。因此,本发明的处理装置能够对单独发生于第1寄存器文件的故障进行仿真。 
附图说明
图1是表示嵌入了发生仿真故障的电路的以往的CPU的结构的功能方框图。 
图2是表示第1实施方式的CPU的结构的功能方框图。 
图3是表示第2实施方式的CPU的结构的功能方框图。 
图4是表示第2实施方式的伪故障发生控制部的具体示例的电路图。 
图5是表示第2实施方式的伪故障数据生成电路的具体示例的电路图。 
图6是表示第2实施方式的伪故障数据生成电路的具体示例的电路图。 
具体实施方式
以下,参照附图具体说明实施方式的一例。 
图2是表示第1实施方式的CPU的结构的功能方框图。在图2中,实线箭头表示控制用的指示,中空箭头表示数据的流向。 
图2中的CPU 200具有第1寄存器文件201和第2寄存器文件202以及运算部203。第1寄存器文件201具有多个条目,规模比较大。在CPU 200中设有复制并保存第1寄存器文件201所保存的数据的一部分的第2寄存器文件202,以便从大规模的第1寄存器文件201向运算部203快速读出数据。即,第2寄存器文件202的条目数量比第1寄存器文件201的条目数量少,只有第1寄存器文件201的条目中一部分条目的数据被复制到第2寄存器文件202中。运算部203从第2寄存器文件202读出数据并进行运算,把运算结果作为输出数据输出。 
另外,第1和第2寄存器文件201、202存储数据和用于检测该数据的错误的错误检测码。即,第1和第2寄存器文件201、202的各个条目由数据和错误检测码构成。在错误检测码中,除了能够进行错误检测但不能进行错误纠正的奇偶校验及校验和之外,还有也能够进行错误纠正的ECC。并且,ECC有多种类型。第1和第2寄存器文件201、202能够采用任意类型的错误检测码,但在本实施方式中采用奇偶校验。其原因是用于进行奇偶校验的生成和校验的电路简单且规模小。 
在本实施方式中,运算部203根据运算结果计算奇偶校验,将奇偶校验与输出数据一起输出。另外,虽然在图2中省略了,但是CPU 200也具有校验奇偶而检测错误的错误检测电路。错误检测电路可以有多个,例如可以对第1寄存器文件201和第2寄存器文件202以及运算部203分别设置错误检测电路。 
CPU 200还具有指示部204、第1控制部205、第1生成部206、第2控制部207和第2生成部208。 
指示部204发出以下指示:写入指示,用于指示将从运算部203输出的输出数据和奇偶校验一起写入第1和第2寄存器文件201、202双方;第1发生指示,用于指示对发生于第1寄存器文件201的故障进行仿真; 第2发生指示,用于指示对发生于第2寄存器文件202的故障进行仿真。所说对故障进行仿真的指示,换言之指生成伪故障的指示。指示部204还可以发出用于控制CPU 200的动作的其他指示。 
第1控制部205在从指示部204接收到写入指示和第1发生指示时,发出第1生成指示并输出给第1生成部206。第1生成部206接收到第1生成指示时,根据从运算部203输出的输出数据和奇偶校验,生成第1伪故障数据,并输出给第1寄存器文件201。第1伪故障数据是使输出数据和奇偶校验中1位以上的位反转得到的数据。另一方面,在没有第1生成指示时,第1生成部206将从运算部203输出的输出数据和奇偶校验直接输出给第1寄存器文件201。 
第2控制部207在从指示部204接收到写入指示和第2发生指示时,发出第2生成指示并输出给第2生成部208。第2生成部208接收到第2生成指示时,根据从运算部203输出的输出数据和奇偶校验,生成第2伪故障数据,并输出给第2寄存器文件202。第2伪故障数据是使输出数据和奇偶校验中1位以上的位反转得到的数据。另一方面,在没有第2生成指示时,第2生成部208将从运算部203输出的输出数据和奇偶校验直接输出给第2寄存器文件202。 
另外,在本实施方式中,指示部204也向第1和第2寄存器文件201、202赋予写入指示,用于指示写入数据和奇偶校验的定时。 
如上所述构成的CPU 200根据两个模式按照下面所述进行动作。 
在普通用户使用装配了CPU 200的信息处理装置时,CPU 200被设定为进行通常运算的通常模式。在通常模式时,指示部204既不发出第1生成指示也不发出第2生成指示。因此,从运算部203输出的输出数据和奇偶校验被直接写入第1寄存器文件201和第2寄存器文件202。 
另一方面,例如在工厂中进行的CPU 200出厂前的检查等中,检查未图示的错误检测电路是否正确动作,即错误检测电路被排除故障。为了实现该排除故障,需要使伪故障发生。因此,在进行CPU 200的检查时,CPU 200按照第1或第2生成指示,被设定为使伪故障发生的模式即排除故障模式。 
在排除故障模式时,如果指示部204发出了第1发生指示,则按照写入指示向第1寄存器文件201输出第1伪故障数据。并且,在排除故障模式时,如果指示部204发出了第2发生指示,则按照写入指示向第2寄存器文件202输出第2伪故障数据。在排除故障模式时,指示部204根据需要发出第1和第2发生指示中的一个指示或双方指示,由此能够进行符合排除故障对象的预期类型故障的仿真。因此,能够针对所仿真的类型的故障,检查错误检测电路等是否正确动作。 
在图2所示的CPU 200中,设有两组寄存器文件和控制部以及生成部的组,所以也能够对例如第1寄存器文件201发生故障、但第2寄存器文件202正常的类型进行仿真。 
下面,参照图3~图6说明第2实施方式。第2实施方式是对第1实施方式追加了几种附加功能的实施方式。 
图3是表示第2实施方式的CPU的结构的功能方框图。首先,对与图2类似的构成要素说明与图2之间的对应关系,图3中的MRF 301、WRF 302、运算部303、控制部304、伪故障发生控制部305、伪故障数据生成电路306、伪故障发生控制部307和伪故障数据生成电路308分别对应于图2中的第1寄存器文件201、第2寄存器文件202、运算部203、指示部204、第1控制部205、第1生成部206、第2控制部207和第2生成部208。 
在图3中,对这些与图2类似的构成要素也附加了第2实施方式独有的功能。并且,CPU 300还具有第2实施方式独有的构成要素即奇偶校验部309、ECC检查/纠错电路310、奇偶校验生成电路311、ECC生成电路312和选择器313。另外,CPU 300的构成要素中与本实施方式没有直接关系的高速缓存器等构成要素,在图3中被省略了。 
下面,具体说明图3所示的CPU 300的结构及动作。 
MRF 301是具有多个条目的寄存器文件。在MRF 301中,采用由64位的数据、8位的奇偶校验以及8位的ECC构成的80位的格式。即,MRF 301的各个条目由数据、奇偶校验和ECC这80位构成。另外,在本实施方式中,将64位的数据按照每8位来进行划分,针对8位的数据 分别计算1位的奇偶校验,因此奇偶校验全部加起来是8位。并且,在本实施方式中,采用SECDED(single-error-correct double-error-detect:单错纠正双错检测)ECC。针对64位的数据的SECDED-ECC是8位。以下为了便于说明,假设第0~63位是数据、第64~71位是奇偶校验、第72~79位是ECC。 
另一方面,在WRF 302中,采用由64位的数据和8位的奇偶校验构成的72位的格式。另外,在WRF 302中,假设第0~63位是数据、第64~71位是奇偶校验。这样在MRF 301和WRF 302中格式不同的理由如下所述。 
MRF 301由于其规模比WRF 302和运算部303大,所以因中子等产生软错误的频度更高,优选通过附加用于纠正错误的ECC来提高数据的可靠性。通过附加ECC,能够通过ECC检查/纠错电路来纠正产生于MRF301的1位的间歇故障。另一方面,ECC的附加将导致电路规模的增大,所以考虑到数据的可靠性和电路规模的平衡,在本实施方式中,采用在软错误的发生频度低于MRF 301的WRF 302中不附加ECC,而只利用奇偶校验的方法。 
WRF 302也是具有多个条目的寄存器文件,但WRF 302的条目数量少于MRF 301的条目数量。WRF 302复制并保存MRF 301的条目中的一部分条目的数据和奇偶校验。由控制部304指示从MRF 301向WRF302的复制的定时、与成为复制对象的MRF 301的条目、以及MRF 301和WRF 302的条目彼此的对应关系。 
并且,如后面所述在检测到错误时,从MRF 301中的被指示的条目向WRF 302复制数据和ECC。如上所述,由于奇偶校验和ECC都是8位,所以根据情况能够区分用于两种用途,即对同样72位的条目“保存数据和奇偶校验”的用途以及“保存数据和ECC”的用途。由此,能够有效利用电路,防止电路规模不必要地增大。 
在从MRF 301到WRF 302的路径的中途设有奇偶校验部309。在从MRF 301向WRF 302复制数据和奇偶校验时,控制部304所控制的未图示的选择器选择第0~71位,从MRF 301向奇偶校验部309输入数据和 奇偶校验。奇偶校验部309校验所输入的数据和奇偶校验。 
如果通过奇偶校验没有检测到错误,则奇偶校验部309将所输入的数据和奇偶校验直接输出给WRF 302。并且,按照上面所述,运算部303使用被复制到WRF 302中的数据执行运算。 
更具体地讲,WRF 302向运算部303输出数据和奇偶校验,运算部303校验奇偶,如果没有检测到错误,则执行运算。其运算的结果是64位的输出数据。运算部303还计算与输出数据对应的8位的奇偶校验,并输出由输出数据和奇偶校验构成的72位。 
在图3中,从运算部303到MRF 301的路径有两条,在CPU 300中没有检测到错误的状态(以下称为正常状态)下使用的是图示左侧的路径,即,从运算部303顺序经过ECC生成电路312、伪故障数据生成电路308、伪故障数据生成电路306和选择器313到达MRF 301的路径。该路径的一部分兼做从运算部303到WRF 302的路径。即,在图3中,利用标号“P”来表示位于伪故障数据生成电路308和306之间的分支点,从运算部303到分支点P的路径是重复部分。 
因此,运算部303向ECC生成电路312输出输出数据和奇偶校验,以便将输出数据和与其对应的奇偶校验写回到MRF 301和WRF 302双方中。ECC生成电路312接收由输出数据和奇偶校验构成的72位作为输入,由64位的输出数据生成与该输出数据对应的8位的ECC,将由输出数据、奇偶校验和ECC构成的80位输出给伪故障数据生成电路308。 
伪故障数据生成电路308在从伪故障发生控制部307接收到伪故障数据生成指示时,使由输出数据和奇偶校验构成的72位中的1位的值反转,并与从ECC生成电路312输入的8位的ECC结合,生成80位的伪故障数据。伪故障数据生成电路308将所生成的80位的伪故障数据中、相当于输出数据和奇偶校验的72位输出给WRF 302,同时将80位的伪故障数据输出给伪故障数据生成电路306。 
另一方面,在没有从伪故障发生控制部307接收到伪故障数据生成指示时,伪故障数据生成电路308将所输入的80位中相当于输出数据和奇偶校验的72位直接输出给WRF 302,同时将所输入的80位直接输出 给伪故障数据生成电路306。 
另外,具体地讲,伪故障数据生成指示利用1位的信号表示。在该1位的值为0时,表示没有伪故障数据生成指示,在该值为1时表示有伪故障数据生成指示。以下,关于其他各种指示的说明也相同,0表示没有指示,1表示有指示。并且,伪故障发生控制部307发出的伪故障数据生成指示相当于第1实施方式中的第2生成指示。 
如上所述,在从伪故障发生控制部307接收到伪故障数据生成指示时,伪故障数据被写入WRF 302,所以能够仿真发生于WRF 302的故障。因此,在为了便于下次之后的运算该伪故障数据被读出到运算部303中时,能够进行运算部303是否准确检测错误的排除故障。 
另一方面,如以下说明的那样,在本实施方式中,也能够对单独发生于MRF 301的故障进行仿真,在该仿真中,伪故障数据被写入MRF 301中。并且,根据本实施方式,在之后MRF 301的伪故障数据被复制到WRF 302中时,能够进行奇偶校验部309是否准确检测到错误、ECC检查/纠错电路310是否根据该检测而正确动作等的排除故障。 
接着上述的伪故障数据生成电路308的动作继续进行说明,从伪故障数据生成电路308输出的80位被输入伪故障数据生成电路306。另外,该80位包括是在伪故障数据生成电路308生成的伪故障数据的情况、及由输出数据、奇偶校验和ECC构成的情况。 
伪故障数据生成电路306在从伪故障发生控制部305接收到伪故障数据生成指示时,使所输入的80位中的1位或2位的值反转,由此生成80位的伪故障数据并输出给选择器313。并且,在没有从伪故障发生控制部305接收到伪故障数据生成指示时,伪故障数据生成电路306将所输入的80位直接输出给选择器313。另外,伪故障发生控制部305发出的伪故障数据生成指示相当于第1实施方式中的第1生成指示。 
选择器313选择来自伪故障数据生成电路306的输出和来自奇偶校验生成电路311的输出之一,提供给MRF 301。选择器313由控制部304控制。控制部304向选择器313赋予指示,当在CPU 300内检测到错误的状态(以下称为故障检测状态)时,使其选择奇偶校验生成电路311, 当是正常状态时,使其选择伪故障数据生成电路306。 
因此,在是正常状态时,从伪故障数据生成电路306输出的80位被写入MRF 301。为了简化说明,如果忽视实际发生故障的情况,则这80位可能存在以下4种情况。 
(1)在伪故障发生控制部307和305都没有发出伪故障数据生成指示时,从运算部303输出的输出数据和与其对应的奇偶校验以及ECC被写入MRF 301。 
(2)在伪故障发生控制部307发出了伪故障数据生成指示,伪故障发生控制部305没有发出伪故障数据生成指示时,包括伪故障数据生成电路308产生的1位的伪故障的伪故障数据被写入MRF 301。 
(3)在伪故障发生控制部307没有发出伪故障数据生成指示,而伪故障发生控制部305发出了伪故障数据生成指示时,包括伪故障数据生成电路306产生的1位或2位的伪故障的伪故障数据被写入MRF 301。 
(4)在伪故障发生控制部307和305双方都发出了伪故障数据生成指示时,包括伪故障数据生成电路308产生的1位的伪故障、和伪故障数据生成电路306产生的1位或2位的伪故障的伪故障数据被写入MRF301。 
但是,在本实施方式中,由控制部304控制着使得不发生上述情况(4)。其原因是因为在情况(4)时,包括作为检测对象的预料之外的3位伪故障的伪故障数据有可能被写入MRF 301。下面,一并说明控制部304的控制和伪故障发生控制部305及307的动作。 
控制部304向MRF 301、WRF 302、伪故障发生控制部305和伪故障发生控制部307发出写入指示,用于指示将从运算部303输出的输出数据写入MRF 301和WRF 302双方。也向伪故障发生控制部305和307发出写入指示的原因是为了通知使伪故障发生的定时和调节伪故障的发生频度。具体情况将在后面叙述,在第2实施方式中,通过指定针对写入指示的发出次数的比例来调节伪故障的发生频度。 
并且,控制部304对伪故障发生控制部305和307分别发出1位的伪故障发生指示,用于指示伪故障的发生。针对伪故障发生控制部305 和307的伪故障发生指示,分别相当于第1实施方式中的第1和第2发生指示。在第2实施方式中,为了防止上述情况(4),控制部304进行动作只对伪故障发生控制部305和307中顶多一方发出伪故障发生指示。 
另外,控制部304对伪故障发生控制部305和307分别独立地输出用于选择伪故障的发生频度的伪故障频度选择信号。伪故障频度选择信号是用于调节伪故障发生控制部305和307发出伪故障数据生成指示的频度的信号。 
控制部304还向伪故障数据生成电路306输出伪故障位选择信号,用于指定应该使1位发生伪故障还是应该使2位发生伪故障。 
在从控制部304发出了伪故障发生指示时,伪故障发生控制部305按照由控制部304提供的伪故障频度选择信号所指定的频度,对伪故障数据生成电路306发出伪故障数据生成指示。伪故障数据生成电路306的动作如前面所述。 
伪故障发生控制部307也相同,在从控制部304发出了伪故障发生指示时,按照由控制部304提供的伪故障频度选择信号所指定的频度,对伪故障数据生成电路308发出伪故障数据生成指示。伪故障数据生成电路308的动作如前面所述。 
即,伪故障数据生成电路306和308的动作分别由伪故障发生控制部305和307直接控制,但由控制部304间接控制。 
下面,说明优选按照上面所述来调节伪故障的发生频度的理由。CPU300具有包括在图3中省略了的内容在内的各种排除故障对象机构。在根据数据的错误,从排除故障对象机构中的任一机构检测到故障的发生时,进行基于硬件的自动的指令再执行和基于软件中断的例外处理等。 
一般,在故障(错误)的发生频度较低的期间,通过基于硬件的指令再执行来继续程序的执行,但在故障的发生频度较高时,在硬件中不能完全处理,容易发生基于软件的中断处理。这样,根据故障的发生频度,应该执行的动作的种类不同,应该执行该动作的单元也不同。因此,需要根据故障的发生频度,对各种排除故障对象机构是否适当动作进行排除故障。 
但是,在图1所示的电路中,不能控制伪故障的发生频度。因此,在第2实施方式中控制伪故障的发生频度,以解决图1所示的问题。关于控制的具体示例,将在后面结合图4进行说明。 
下面,说明如何使用所生成的伪故障数据。与在第1实施方式中说明的相同,对于第2实施方式的CPU 300也设定通常模式和排除故障模式的任一模式。另一方面,与模式的切换独立地,CPU 300的状态有正常状态和故障检测状态这两种状态。 
如上所述,由伪故障数据生成电路308或306生成的伪故障数据被用于验证各种排除故障对象机构是否适当动作的故障排除。具体地讲,验证是否适当地从正常状态转入故障检测状态、是否在故障检测状态下进行适当的纠正并恢复为正常状态。即,在第2实施方式中,验证是否对伪故障数据进行以下叙述的动作。 
在存储于MRF 301中的伪故障数据被读出到WRF 302中时,奇偶校验部309检测到来自MRF 301的输入包含有错误。或者,在存储于WRF 302中的伪故障数据被读出到运算部303中时,运算部303校验奇偶,检测来自WRF 302的输入包含有错误的情况。 
这样,在检测到排除故障对象机构中任一机构错误时,从检测到该错误的排除故障对象机构向控制部304通知错误的检测。并且,该通知中有时也包含用于识别检测到错误的条目的信息。例如,在奇偶校验部309检测到MRF 301中的错误时,该通知中包含用于识别MRF 301内的条目的信息。控制部304根据该通知识别到从正常状态向故障检测状态的转移,将向故障检测状态的转移通知给CPU 300内的各个部分,并控制各个部分使其暂且中断运算处理。 
在转入故障检测状态时,按照来自控制部304的指示,开始根据保存在MRF 301中的ECC来纠正错误的处理。即,从包含纠正对象的数据的MRF 301的条目将第0~63位的数据和第72~79位的ECC读出到WRF 302。 
在该读出中,控制部304指定包括纠正对象的数据的MRF 301的条目。能够进行该指定的理由是在检测到MRF 301中的错误时,如上所述, 识别MRF 301的条目的信息包含于从奇偶校验部309发往控制部304的通知中。并且,当在MRF 301之外的部分中检测到错误时,控制部304识别与被检测到错误的数据对应的MRF 301的条目。 
另外,奇偶校验部309在正常状态下进行奇偶的校验,在故障检测状态下将输入直接输出。因此,与正常状态时相同,数据和ECC被从MRF 301经过奇偶校验部309读出到WRF 302中。 
如上所述,WRF 302的各个条目是72位,所以能够存储由数据和ECC构成的72位。被读出到WRF 302中的数据和ECC通过运算部303输出给ECC检查/纠错电路310。ECC检查/纠错电路310根据所输入的数据和ECC,检测截止到2位的错误,并纠正截止到1位的错误。 
在检测到2位的错误时,不可能通过ECC检查/纠错电路310纠正该错误。该情况时,例如ECC检查/纠错电路310将2位的错误的检测通知给控制部304,控制部304使产生中断。由此,中断处理开始,并尝试从故障状态下恢复。 
另一方面,在检测到1位的错误时,ECC检查/纠错电路310纠正该错误,将纠正后的数据和纠正后的ECC输出给奇偶校验生成电路311。并且,在只使奇偶校验产生伪故障的情况下,数据和ECC不包含错误。该情况时,ECC检查/纠错电路310没有检测到错误,将所输入的数据和ECC直接输出给奇偶校验生成电路311。 
奇偶校验生成电路311根据所输入的数据生成奇偶校验,将由数据、奇偶校验和ECC构成的80位输出给选择器313。控制部304控制选择器313,使其在故障检测状态下选择来自奇偶校验生成电路311的输入。因此,来自奇偶校验生成电路311的输出通过选择器313被写入MRF 301中。 
并且,在该阶段,数据和ECC被写入WRF 302中。因此,控制部304在纠正后的数据、奇偶校验和ECC被写入MRF 301后,使WRF 302从MRF 301读出必要的数据和奇偶校验。通过该WRF 302的更新,从故障检测状态转入正常状态。在返回正常状态后,控制部304控制CPU 300的各个部分,使其再次开始执行在检测到故障时曾经正在执行的指令。 
另外,ECC检查/纠错电路310在检测到2位的错误时,也在通过中断处理适当纠正数据后,进行WRF 302的更新,CPU 300恢复为正常状态。 
以上是从正常状态向故障检测状态的转移、和从故障检测状态向正常状态的恢复的动作。排除故障对象机构的排除故障包括验证以上动作是否适当执行。 
并且,根据以上说明可知,在图3中,从运算部303到MRF 301的两个路径中,图示右侧的路径只在故障检测状态时使用,图示左侧的路径只在正常状态时使用。另外,在图3中,有三处被记述为“数据+奇偶校验或数据+ECC”。这表示在正常状态下传输数据和奇偶校验,在故障检测状态下传输数据和ECC。 
下面,参照图4~图6,说明伪故障发生控制部305和307、及伪故障数据生成电路306和308的具体示例。图4是表示第2实施方式中的伪故障发生控制部305和307的具体示例的电路图。以下为了便于说明,主要列举伪故障发生控制部305进行说明,但在第2实施方式中,伪故障发生控制部305和307是相同的结构。 
如图4所示,伪故障发生控制部305包括“与”门401、写入次数计数器402、解码电路403和选择器404。并且,对伪故障发生控制部305的输入是1位的写入指示S 1、1位的伪故障发生指示S2、m位的伪故障频度选择信号S3,这三个输入都由控制部304提供。对伪故障发生控制部307的输入也相同。来自伪故障发生控制部305的输出是1位的伪故障数据生成指示S4,并输出给伪故障数据生成电路306。另一方面,伪故障发生控制部307将伪故障数据生成指示S4输出给伪故障数据生成电路308。另外,m是根据解码电路403的结构而确定的1以上的整数。 
写入指示S1被输入“与”门401和写入次数计数器402双方。写入次数计数器402是这样一种计数器,在每当发出写入指示S1时、即每当写入指示S1为1时,逐次将值增加1,由此对向MRF 301和WRF 302的写入次数进行计数。以下把写入次数计数器402保存的值称为“计数值”,并利用标号“C”表示。 
计数值C被输出给解码电路403,解码电路对计数值C进行解码,并生成n个信号。n为2以上的整数。以下把这些n个信号中的各个信号称为“频度信号”,并利用标号“F1”~“Fn”表示。各个频度信号Fj(1≤j≤n)是1位的信号。频度信号F1~Fn在每当成为对各个频度信号预先确定的写入次数时为1。选择器404按照伪故障频度选择信号S3来选择频度信号F1~Fn中的任一个频度信号,并输出给“与”门401。 
“与”门401被输入来自选择器404的输出、写入指示S1和伪故障发生指示S2。“与”门401把这三个输入的逻辑乘(AND)作为伪故障数据生成指示S4,输出到伪故障发生控制部305的外部。只在根据伪故障频度选择信号S3选择的频度信号Fj、写入指示S 1和伪故障发生指示S2都为1时,伪故障数据生成指示S4为1,由此伪故障发生控制部305指示伪故障数据生成电路306发生伪故障。 
例如,以写入次数计数器402是8位的计数器、n=5的情况为例,进行更具体的说明。在该示例中,计数值C是0~255的任一个值,在计数值C为255的状态下,在下一个写入指示S 1为1时,计数值C被更新为0。并且,频度信号F1~F5分别只在计数值C为128、64、32、16、8的倍数时为1,在除此之外的情况时为0。解码电路403是把计数值C作为输入进行这种解码,并输出5个频度信号F1~F5的电路。 
伪故障频度选择信号S3只要能够选择5个频度信号F1~F5中的一个即可,所以有3位即足以。即,在该示例中,m=3。并且,在伪故障频度选择信号S3为0、1、2、3、4时,选择器404分别选择频度信号F1、F2、F3、F4、F5。 
例如,在伪故障发生指示S2始终为1、伪故障频度选择信号S3始终为2的情况下,每当写入指示S1为1时,计数值C被更新,而选择频度信号F3。即,每当计数值C为0、32、64、96、128、160、192、224中任一值时,选择器404输出1,对“与”门401的三个输入都是1,“与”门401的输出为1。在除此之外的情况下,选择器404输出0,所以“与”门401的输出为0。即,在该示例中,每当写入指示S1的发出次数为32的倍数时,伪故障发生控制部305输出伪故障数据生成指示S4。 
因此,如果始终把伪故障发生指示S2设为1、而且把伪故障频度选择信号S3固定为与所期望的频度对应的值,则伪故障发生控制部305按照所期望的频度输出伪故障数据生成指示S4。并且,在所期望的频度发生变化时,如果变更伪故障频度选择信号S3的值,则按照变更后的所期望的频度,从伪故障发生控制部305输出伪故障数据生成指示S4。 
另外,在上述的示例中,频度信号F1~F5分别只在计数值C为128、64、32、16、8的倍数时为1。这样,采用128、64、32、16、8等2的幂的值作为与频度信号Fj相关联的写入指示S1的发出次数,是为了能够构成简单的解码电路403。但是,与频度信号Fj相关联的写入指示S1的发出次数当然也可以不是2的幂。 
下面,参照图5所示的电路图,说明第2实施方式中的伪故障数据生成电路308的具体示例。另外,为了区分同样参照图4说明的伪故障发生控制部305和307,下面使用标号“S4-1”和“S4-2”取代在图4中使用的标号“S4”来进行说明。 
在第2实施方式中,在从伪故障发生控制部307发出了伪故障数据生成指示S4-1时,伪故障数据生成电路308使其值反转的位的位置被预先确定为固定的第a位。其中,数据是第0~63位,奇偶校验是第64~71位,ECC是第72~79位,基于这种假设,a为0≤a≤71的整数。以下,利用标号“Ba”表示第a位的位信号。 
伪故障数据生成电路308具有“异或”(XOR)门405,用于运算从伪故障发生控制部307输出的1位的伪故障数据生成指示S4-1、与从ECC生成电路312输出的位信号Ba的“异或”。因此,位信号Ba的值只在伪故障数据生成指示S4-1为1时反转。 
“异或”门405将运算结果输出到伪故障数据生成电路308的外部。并且,输入伪故障数据生成电路308中的80位中,除第a位之外的79位无论在哪种情况下,所输入的值都被原样从伪故障数据生成电路308输出。由此,只在伪故障发生控制部307发出了伪故障数据生成指示S4-1时,即只在伪故障数据生成指示S4-1为1时,伪故障数据生成电路308使发生1位的伪故障,在除此之外时,将输入直接输出。 
下面,参照图6所示的电路图说明第2实施方式中的伪故障数据生成电路306的具体示例。 
在从伪故障发生控制部305发出了伪故障数据生成指示S4-2时,伪故障数据生成电路306使其反转的位的数为1或2。并且,在第2实施方式中,应该使其反转的位的位置被预先固定地确定。即,假设b和c是满足0≤b、c≤79的整数,伪故障数据生成电路306在接收到伪故障数据生成指示S4-2时,使所输入的80位中第b位或第c位的一方反转,或者使双方反转。以下,分别利用标号“Bb”和“Bc”表示第b位和第c位的位信号。 
伪故障数据生成电路306包括两组“与”门与“异或”门的组。“与”门406运算从伪故障发生控制部305输出的1位的伪故障数据生成指示S4-2、与从控制部304输出的1位的伪故障位选择信号S5-1的逻辑乘,并把运算结果输出给“异或”门407。伪故障位选择信号S5-1是指示在值为1时使第b位反转的信号。“异或”门407运算从“与”门406输出的1位的信号、与伪故障数据生成电路308的输出中第b位的位信号Bb的“异或”,并输出到伪故障数据生成电路306的外部。 
同样,“与”门408运算从伪故障发生控制部305输出的1位的伪故障数据生成指示S4-2、与从控制部304输出的1位的伪故障位选择信号S5-2的逻辑乘,并把运算结果输出给“异或”门409。伪故障位选择信号S5-2是指示在值为1时使第c位反转的信号。“异或”门409运算从“与”门408输出的1位的信号、与伪故障数据生成电路308的输出中第c位的位信号Bc的“异或”,并输出到伪故障数据生成电路306的外部。 
另外,在第2实施方式中,控制部304在发出伪故障数据生成指示S4-2时一定进行使伪故障位选择信号S5-1和S5-2至少一方的值为1的动作。并且,输入伪故障数据生成电路306的80位中、除第b位和第c位之外的78位,无论在哪种情况下,所输入的值都被原样从伪故障数据生成电路306输出。 
即,在伪故障发生控制部305没有发出伪故障数据生成指示S4-2时,即伪故障数据生成指示S4-2为0时,伪故障数据生成电路306将 输入原样输出。相反,在伪故障发生控制部305发出了伪故障数据生成指示S4-2时,伪故障数据生成电路306根据伪故障位选择信号S5-1和S5-2的值,只使第b位、只使第c位、或者使第b位和第c位双方发生伪故障。这样,根据控制部304的控制,生成包括1位或2位的伪故障的伪故障数据。在第2实施方式中,利用伪故障位选择信号S5-1和S5-2,指示伪故障数据生成电路306应该使其反转的位的数量和位置这双方。 
以上具体说明了第2实施方式,第2实施方式具有以下所述的效果。 
第1效果与第1实施方式相同,能够将正常的输出数据和奇偶校验原样写入WRF 302,并只向MRF 301写入伪故障数据。由此,能够有效地进行奇偶校验部309和ECC检查/纠错电路310的排除故障。 
所说奇偶校验部309的排除故障,指在从MRF 301向WRF 302读出数据时,验证奇偶校验部309进行的校验动作是否正常。并且,所说ECC检查/纠错电路310的排除故障,指在应该检测到的错误是通过奇偶校验部309的正常校验动作被适当检测到的情况下,把该检测作为触发,验证ECC检查/纠错电路310是否能够根据ECC正确纠正数据。 
另外,与以往相同,也能够仿真在MRF 301和WRF 302双方同时发生相同故障的类型。因此,该第1效果也可以说是能够仿真的故障发生类型变多。即,在第2实施方式中,控制部304不向伪故障发生控制部305发出伪故障发生指示,而只向伪故障发生控制部307发出伪故障发生指示,由此能够容易对在MRF 301和WRF 302双方同时发生相同故障的类型进行仿真。 
第2效果是在伪故障发生控制部305和307中,分别能够进行使伪故障的发生频度可变的控制。由此,针对在故障检测时进行的多个处理的排除故障变得容易。 
一般,根据故障的发生频度,切换或者并用由硬件实现的排除故障对象机构的处理、和由软件实现的排除故障对象机构的处理等多种处理。根据第2实施方式,仅仅根据所期望的频度来设定控制部304发出的两个伪故障频度选择信号,即可容易按照所期望的频度使伪故障发生。因 此,容易验证上述多个处理的切换或并用是否适当进行。并且,与实际相同,也容易仿真在MRF 301和WRF 302中按照不同的频度发生故障的情况。 
第3效果是只在MRF 301中采用ECC,由此能够有效地只对与ECC相关联的部分排除故障。例如,通过把在图6中说明的第b位和第c位设定为72≤b、c≤79,能够只使ECC的部分发生伪故障。并且,也能够使WRF 302不发生2位的伪故障,而只使MRF 301发生2位的伪故障。 
第4效果是数据的可靠性与电路规模的平衡好。MRF 301保存奇偶校验和ECC,与此对应,设有ECC检查/纠错电路310、奇偶校验生成电路311、ECC生成电路312,所以MRF 301中的数据的可靠性高于以往。另一方面,在软错误等故障的发生频度低于MRF 301的WRF 302中只采用奇偶校验而不采用ECC,由此防止电路规模不必要地增大。因此,CPU300整体的数据的可靠性与电路规模的平衡良好。 
第5效果是通过电路和布线的共用化来抑制CPU 300整体的电路规模。例如,如上所述,WRF 302有存储由数据和奇偶校验构成的72位的情况、和存储由数据和ECC构成的72位的情况,在多个用途下随意使用相同的存储区域。并且,在这样进行基于ECC的纠正时,通过WRF 302和运算部303向ECC检查/纠错电路310发送数据和ECC,这是为了有效利用已有的数据传输路径,不制作新的布线。另外,使从运算部303通过伪故障数据生成电路308到达WRF 302的路径、和从运算部303通过伪故障数据生成电路306到达MRF 301的路径的一部分重复,由此避免不必要的布线。结果,能够抑制CPU 300整体的电路规模。 
另外,本发明不限于上述实施方式,可以进行各种变形。以下说明几种变形示例。 
图2和图3示出了类似的构成要素,但构成要素之间的连接关系在图2和图3中是不同的。据此可以明确,构成要素之间的具体连接关系可以根据实施方式而变化。例如,在图3中,也可以使伪故障数据生成电路308移动到分支点P和WRF 302之间。 
关于上述实施方式中的各种指示,假设0表示“没有发出指示”,1 表示“发出指示”。但是,0和1的意思也可以根据实施方式而设定为相反,该情况时,只要根据需要变更图4~图6中的电路即可。 
并且,不一定必须按照第2实施方式那样采用ECC,在采用ECC时,ECC的种类能够任意选择。在MRF 301中也可以采用除SECDED之外的ECC、例如检测截止到3位的错误的ECC。并且,数据、奇偶校验和ECC的位数根据实施方式而不同。 
根据采用的错误检测码的种类,也可以按照下面所述对上述第1或第2实施方式进行变形。即,假设d为1以上,在图2所示的第1寄存器文件201或图3所示的MRF 301中,采用能够检测截止到d位的错误的错误检测码。并且,图2所示的第1生成部206或图3所示的伪故障数据生成电路306,至少接收输出数据和错误检测码作为输入,使输入中d位以下的位反转,由此生成第1伪故障数据。该情况时,图2所示的第1生成部206或图3所示的伪故障数据生成电路306,也可以还接收用于指定1以上d以下的数量x的位选择指示,并使输入中x位反转。在第2实施方式中,如图6所示,d=2,利用伪故障位选择信号S5-1和S5-2指定为x=1或x=2,但位选择指示也可以按照与图6不同的形式赋予。 
在第2实施方式中,在伪故障数据生成电路308和306的任一方中,预先固定设定了应该使伪故障发生的位的位置。但是,也可以使应该发生伪故障的位的位置可变。 
例如,控制部304也可以对伪故障数据生成电路306发出位位置指定指示,伪故障数据生成电路306使根据位位置指定指示所示出的一个或两个位置的位的值反转。在图6中,对应于两个伪故障位选择信号S5-1和S5-2示出了两组“与”门与“异或”门的组,但也可以设计80组这种“与”门与“异或”门的组合,由此使80位中的任意位置发生伪故障。另外,也可以利用只有一个或两个位为1其他位为0的80位来表示位位置指定指示。并且,也可以根据除此之外的结构,使应该发生伪故障的位的位置可变。 
并且,排除故障的对象即排除故障对象机构不限于上述各个实施方式示例的机构。 
另外,在第2实施方式中,控制部304进行控制使伪故障发生控制部307和305双方不发出伪故障数据生成指示,但也可以采用不同的控制方法。 
例如,根据实施方式,控制部304在使伪故障发生控制部307和305双方发出伪故障发生指示时,始终对伪故障数据生成电路306发出伪故障位选择信号,以使只发生1位的伪故障。由此,在伪故障发生控制部307和305双方发出伪故障数据生成指示的情况下,能够防止检测对象发生预料之外的3位以上的伪故障。因此,能够有效地对排除故障对象机构进行排除故障。 
并且,在第2实施方式中,通过指定针对写入指示的发出次数的比例来调节伪故障的发生频度,为此采用了图4所示的电路结构。但是,频度的调节方式不限于上述示例。例如,根据实施方式,也可以指定针对时钟数的比例,由此调节伪故障的发生频度,并按照指定的时间间隔使伪故障发生。 

Claims (13)

1.一种具有对故障进行仿真的功能的处理装置,其特征在于,该处理装置具有;
第1寄存器文件;
第2寄存器文件,其保存该第1寄存器文件所保存的数据的一部分;
运算单元,其使用从该第2寄存器文件读出的数据进行运算,并把运算结果作为输出数据进行输出;
指示单元,其发出写入指示及第1和第2发生指示,所述写入指示指示向所述第1和第2寄存器文件双方写入所述输出数据和用于检测该输出数据的错误的错误检测码,所述第1和第2发生指示指示所述第1和第2寄存器文件各自的伪故障生成;
第1控制单元,其在接收到所述写入指示和所述第1发生指示时,发出第1生成指示;
第1生成单元,其在接收到所述第1生成指示时,根据所述输出数据和所述错误检测码生成第1伪故障数据,并输出给所述第1寄存器文件,在没有所述第1生成指示时,将所述输出数据和所述错误检测码输出给所述第1寄存器文件;
第2控制单元,其在接收到所述写入指示和所述第2发生指示时,发出第2生成指示;以及
第2生成单元,其在接收到所述第2生成指示时,根据所述输出数据和所述错误检测码生成第2伪故障数据,并输出给所述第2寄存器文件,在没有所述第2生成指示时,将所述输出数据和所述错误检测码输出给所述第2寄存器文件。
2.根据权利要求1所述的具有对故障进行仿真的功能的处理装置,其特征在于,所述第1控制单元还接收指示发出所述第1生成指示的频度的第1频度选择指示,根据该第1频度选择指示来调节发出所述第1生成指示的频度。
3.根据权利要求2所述的具有对故障进行仿真的功能的处理装置,其特征在于,所述第1频度选择指示是选择表示所述写入指示的发出次数的多个选择项中的一个选择项的指示,
在所述写入指示的发出次数达到与所选择的所述选择项对应的所述发出次数并且接收到所述第1发生指示时,所述第1控制单元发出所述第1生成指示,由此调节发出所述第1生成指示的所述频度。
4.根据权利要求1所述的具有对故障进行仿真的功能的处理装置,其特征在于,所述第2控制单元还接收指示发出所述第2生成指示的频度的第2频度选择指示,根据该第2频度选择指示来调节发出所述第2生成指示的频度。
5.根据权利要求4所述的具有对故障进行仿真的功能的处理装置,其特征在于,所述第2频度选择指示是选择表示所述写入指示的发出次数的多个选择项中的一个选择项的指示,
在所述写入指示的发出次数达到与所选择的所述选择项对应的所述发出次数并且接收到所述第2发生指示时,所述第2控制单元发出所述第2生成指示,由此调节发出所述第2生成指示的所述频度。
6.根据权利要求1所述的具有对故障进行仿真的功能的处理装置,其特征在于,把能够针对所述第1寄存器文件进行错误检测的位数的上限设为d,d为1以上,
所述第1生成单元至少接收所述输出数据和所述错误检测码作为输入,使输入中d位以下的位反转,由此生成所述第1伪故障数据。
7.根据权利要求6所述的具有对故障进行仿真的功能的处理装置,其特征在于,所述第1生成单元还接收位选择指示,该位选择指示指定所述第1生成单元应该反转的位的数量、即1以上d以下的数量x。
8.根据权利要求7所述的具有对故障进行仿真的功能的处理装置,其特征在于,所述位选择指示是从预先确定了位置的特定的d位中选择x位的指示。
9.根据权利要求6所述的具有对故障进行仿真的功能的处理装置,其特征在于,所述错误检测码是不能进行纠错的类型的编码,
所述第1生成单元也接收根据所述输出数据生成的纠错码作为输入,使所述输出数据、所述错误检测码和所述纠错码中d位以下的位反转,由此生成所述第1伪故障数据。
10.根据权利要求9所述的具有对故障进行仿真的功能的处理装置,其特征在于,该处理装置还具有纠错单元,该纠错单元根据所述纠错码来纠正从所述第1生成单元输出并存储于所述第1寄存器文件中的所述第1伪故障数据。
11.根据权利要求1所述的具有对故障进行仿真的功能的处理装置,其特征在于,从所述运算单元通过所述第1生成单元到达所述第1寄存器文件的路径的一部分、与从所述运算单元通过所述第2生成单元到达所述第2寄存器文件的路径的一部分相同。
12.根据权利要求11所述的具有对故障进行仿真的功能的处理装置,其特征在于,所述第2生成单元位于连接所述运算单元和所述第1生成单元的路径上。
13.一种处理装置控制伪故障生成的控制方法,该处理装置具有:第1寄存器文件;第2寄存器文件,其保存该第1寄存器文件所保存的数据的一部分;运算单元,其使用从该第2寄存器文件读出的数据进行运算,并把运算结果作为输出数据进行输出;以及指示单元,其发出写入指示,该写入指示指示向所述第1和第2寄存器文件双方写入所述输出数据和用于检测该输出数据的错误的错误检测码,所述控制方法的特征在于,
发出第1发生指示,该第1发生指示指示所述第1寄存器文件的伪故障生成;
在发出了所述写入指示和所述第1发生指示双方时,根据所述输出数据和所述错误检测码生成第1伪故障数据,并输出给所述第1寄存器文件;
在没有所述第1发生指示而发出了所述写入指示时,将所述输出数据和所述错误检测码输出给所述第1寄存器文件;
发出第2发生指示,该第2发生指示指示所述第2寄存器文件的伪故障生成;
在发出了所述写入指示和所述第2发生指示双方时,根据所述输出数据和所述错误检测码生成第2伪故障数据,并输出给所述第2寄存器文件;以及
在没有所述第2发生指示而发出了所述写入指示时,将所述输出数据和所述错误检测码输出给所述第2寄存器文件。
CN2007800533589A 2007-06-20 2007-06-20 信息处理装置及控制方法 Expired - Fee Related CN101689150B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2007/000647 WO2008155795A1 (ja) 2007-06-20 2007-06-20 情報処理装置および制御方法

Publications (2)

Publication Number Publication Date
CN101689150A CN101689150A (zh) 2010-03-31
CN101689150B true CN101689150B (zh) 2011-11-30

Family

ID=40155960

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800533589A Expired - Fee Related CN101689150B (zh) 2007-06-20 2007-06-20 信息处理装置及控制方法

Country Status (6)

Country Link
US (1) US8621281B2 (zh)
EP (1) EP2159710B1 (zh)
JP (1) JP4905553B2 (zh)
KR (1) KR101031004B1 (zh)
CN (1) CN101689150B (zh)
WO (1) WO2008155795A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012073678A (ja) * 2010-09-27 2012-04-12 Fujitsu Ltd 擬似エラー発生装置
EP2461251B1 (en) * 2010-12-03 2017-06-21 Robert Bosch GmbH Memory protection unit and a method for controlling an access to a memory device
US10235278B2 (en) * 2013-03-07 2019-03-19 International Business Machines Corporation Software testing using statistical error injection
JP6030237B2 (ja) * 2013-06-06 2016-11-24 株式会社日立製作所 マイコン故障注入方法及びシステム
JP6988863B2 (ja) * 2019-08-08 2022-01-05 横河電機株式会社 プロトコルコンバータ、データ伝送方法、データ伝送プログラム、及び、データ伝送システム
US11461205B1 (en) * 2021-08-24 2022-10-04 Nxp B.V. Error management system for system-on-chip

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0456439A3 (en) * 1990-05-08 1992-12-23 Toray Industries, Inc. Dyed synthetic fiber having antibacterial and antifungal properties and process for preparing same

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5843044A (ja) 1981-09-07 1983-03-12 Fujitsu Ltd デ−タエラ−発生回路
JPS59200349A (ja) 1983-04-27 1984-11-13 Nec Corp 誤り訂正回路用診断回路
JPS61267840A (ja) 1985-05-23 1986-11-27 Nec Corp 擬似障害発生回路
JPS63290423A (ja) * 1987-05-22 1988-11-28 Sony Corp エラ−発生器
JPH04109340A (ja) * 1990-08-30 1992-04-10 Nec Ibaraki Ltd 擬似障害発生回路
US5872910A (en) * 1996-12-27 1999-02-16 Unisys Corporation Parity-error injection system for an instruction processor
JP4109340B2 (ja) 1997-12-26 2008-07-02 株式会社ルネサステクノロジ 半導体集積回路装置
US6751756B1 (en) * 2000-12-01 2004-06-15 Unisys Corporation First level cache parity error inject
US20040034820A1 (en) * 2002-08-15 2004-02-19 Soltis, Donald C. Apparatus and method for pseudorandom rare event injection to improve verification quality
US7222064B1 (en) * 2003-10-10 2007-05-22 Unisys Corporation Instruction processor emulation having inter-processor messaging accounting
US7584405B2 (en) * 2003-12-03 2009-09-01 Hewlett-Packard Development Company, L.P. Fault-detecting computer system
CN1696867A (zh) * 2004-05-15 2005-11-16 鸿富锦精密工业(深圳)有限公司 通过网络控制主机板电源的***及方法
US7320114B1 (en) * 2005-02-02 2008-01-15 Sun Microsystems, Inc. Method and system for verification of soft error handling with application to CMT processors
US7412620B2 (en) * 2005-06-23 2008-08-12 International Business Machines Corporation Method for testing ability to recover from cache directory errors
JP5028774B2 (ja) * 2005-09-22 2012-09-19 富士通株式会社 演算処理装置,情報処理装置,及びレジスタファイルの制御方法
US7689866B2 (en) * 2006-10-18 2010-03-30 Alcatel-Lucent Usa Inc. Method and apparatus for injecting transient hardware faults for software testing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0456439A3 (en) * 1990-05-08 1992-12-23 Toray Industries, Inc. Dyed synthetic fiber having antibacterial and antifungal properties and process for preparing same

Also Published As

Publication number Publication date
US8621281B2 (en) 2013-12-31
WO2008155795A1 (ja) 2008-12-24
CN101689150A (zh) 2010-03-31
KR20100020961A (ko) 2010-02-23
KR101031004B1 (ko) 2011-04-25
US20100095156A1 (en) 2010-04-15
EP2159710A1 (en) 2010-03-03
EP2159710A4 (en) 2012-03-14
JP4905553B2 (ja) 2012-03-28
EP2159710B1 (en) 2013-09-25
JPWO2008155795A1 (ja) 2010-08-26

Similar Documents

Publication Publication Date Title
CN101689150B (zh) 信息处理装置及控制方法
US4996688A (en) Fault capture/fault injection system
CN100401262C (zh) 集成电路处理级内的错误检测和恢复
EP2159709B1 (en) Error correcting method and computing element
CN101551764B (zh) 基于同步冗余线程与编码技术的抗单粒子效应***及方法
JP5014899B2 (ja) 再構成可能デバイス
CN101292226B (zh) 用于线程通信和同步的设备、***和方法
CN102798815A (zh) 状态保留电路中状态完整性的检验
Vaidya et al. Fault-tolerant design strategies for high reliability and safety
US7346812B1 (en) Apparatus and method for implementing programmable levels of error severity
JP2009238056A (ja) マイクロプロセッサおよびシグネチャ生成方法ならびに多重化システムおよび多重化実行検証方法
JP6408482B2 (ja) プログラマブルデバイス及びこれを用いた電子システム装置
JPS61223951A (ja) Mosテクノロジーに於けるオンライン・エラー検出機能をそなえたセルフチエツク型マイクロプログラム制御装置
CN105260256A (zh) 一种双模冗余流水线的故障检测及回退方法
CN1329839C (zh) 一种计算机cpu抗干扰的设计方法
JPH0375834A (ja) パリティの置換装置及び方法
CN205193787U (zh) 一种双模冗余流水线的故障检测及回退装置
Almukhaizim et al. On concurrent error detection with bounded latency in FSMs
CN100543669C (zh) 用于对指令进行再编码的方法与装置
Leveugle et al. Optimized synthesis of dedicated controllers with concurrent checking capabilities
US20240095113A1 (en) Processor and method of detecting soft error from processor
JPS6155744A (ja) エラ−のリカバリ処理方式
Stroud Merging BIST and Concurrent Fault Detection
CN118093253A (zh) 一种多核锁步处理器多级快速错误恢复***
JP2014225110A (ja) 安全コントローラ

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20111130

Termination date: 20150620

EXPY Termination of patent right or utility model