WO2016132432A1 - プロセッサ及びマイクロコンピュータ - Google Patents

プロセッサ及びマイクロコンピュータ Download PDF

Info

Publication number
WO2016132432A1
WO2016132432A1 PCT/JP2015/054132 JP2015054132W WO2016132432A1 WO 2016132432 A1 WO2016132432 A1 WO 2016132432A1 JP 2015054132 W JP2015054132 W JP 2015054132W WO 2016132432 A1 WO2016132432 A1 WO 2016132432A1
Authority
WO
WIPO (PCT)
Prior art keywords
processor
failure
mask
functional elements
functional
Prior art date
Application number
PCT/JP2015/054132
Other languages
English (en)
French (fr)
Inventor
橋本 茂
Original Assignee
三菱電機株式会社
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 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to PCT/JP2015/054132 priority Critical patent/WO2016132432A1/ja
Publication of WO2016132432A1 publication Critical patent/WO2016132432A1/ja

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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements

Definitions

  • the present invention relates to a technique for masking functional elements mounted on a processor.
  • a technique for masking functional elements mounted on a processor is demonstrated.
  • a clock synchronous lock step is generally configured by a plurality of processors.
  • the output of each processor is compared, and a processor failure can be detected if the processor outputs do not match. If some of the functional elements of the processor are faulty, the faulty functional elements are masked so that the processor having the faulty part of the functional elements can be used again. . However, since a difference occurs in output between the processor that masks the failed functional element and the processor that remains normal, the processor outputs do not match and a failure is erroneously detected. As a technique for avoiding such erroneous detection, for example, there are a technique disclosed in Patent Document 1 and a technique disclosed in Patent Document 2.
  • Japanese Patent Application Laid-Open No. 2004-151867 inputs a data processing result processed so as to be compatible with two or more systems with respect to a common data processing target, and performs data verification with respect to the processing results with the two or more systems. Is disclosed. Further, in Patent Document 1, the data collating apparatus determines that the processing result in the two or more systems is performed on a common data processing target as data commonality, and the processing in the two or more systems is performed. It is disclosed to determine whether the result is within an allowable range as data admissibility. Patent Document 1 discloses that the data collation is performed based on the data commonality and data admissibility.
  • Patent Document 2 discloses a microcomputer including an output comparison unit, a shift result comparison unit, a table storage unit, and a control unit.
  • the output comparison unit compares the outputs of the main core and the checker core in the normal operation mode.
  • the shift result comparison unit compares the outputs of the scan chains of the main core and the checker core in the mismatch location specifying mode.
  • the table storage unit stores a table in which information on a plurality of flip-flops and a plurality of functional blocks is stored.
  • the control unit switches the mode to the mismatch location specifying mode when a mismatch is detected by the output comparison unit, and is specified based on the comparison result of the shift result comparison unit in the mismatch location specifying mode.
  • a function block corresponding to the flip-flop is extracted from the table, and the function of the function block is stopped.
  • Patent Document 1 when all the processing results have data commonality and the processing results have no data tolerance, data is inconsistent when a data mismatch occurs due to a failure of a part function, as in a normal redundant system. There is a problem that the verification device cannot operate.
  • Patent Document 2 a function block corresponding to a flip-flop identified by a scan chain mismatch is extracted and the function of the function block is stopped.
  • the first CPU (Central Processing Unit) core and the first CPU core are redundant. Since both functional blocks of the second CPU core having the configuration are similarly stopped, there is a problem that the function stops other than the malfunctioning function.
  • CPU Central Processing Unit
  • the main object of the present invention is to solve the above-mentioned problems, minimizing the deterioration of functions and performance, and the output of a processor in which a failure has occurred and the output of a normal processor in which no failure has occurred.
  • the main purpose is to obtain a configuration that matches the above.
  • a processor includes: A processor included in a processor system including a plurality of processors each having a plurality of functional elements mounted thereon, A detector that inspects the plurality of functional elements mounted on the processor and detects a functional element in which a failure has occurred among the plurality of functional elements; Receives a mask number notification for notifying the maximum value among the number of functional elements in which a failure has been detected in each processor as a mask number, and includes the functional elements detected by the detection unit. And a mask generation unit for masking the functional elements.
  • a functional element in which a failure has occurred is masked, and the number of functional elements to be masked matches the maximum value among the number of functional elements in which a failure has occurred in each processor. For this reason, it is possible to make the output of a processor in which a failure has occurred coincide with the output of a normal processor in which no failure has occurred while minimizing deterioration in function and performance.
  • FIG. 3 illustrates a configuration example of a microcomputer according to Embodiment 1;
  • FIG. 3 is a diagram illustrating a configuration example of a failure register, a mask register, and a configuration register according to the first embodiment.
  • FIG. 3 is a flowchart showing a fault register setting method according to the first embodiment.
  • FIG. 3 is a flowchart showing a mask value generation method by a mask generation unit according to the first embodiment.
  • FIG. 6 illustrates a configuration example of a microcomputer according to a second embodiment.
  • FIG. 6 illustrates a configuration example of a microcomputer according to a third embodiment.
  • FIG. 3 is a diagram illustrating a specific operation example of the microcomputer according to the first embodiment.
  • FIG. 10 is a diagram illustrating a specific operation example of the microcomputer according to the second embodiment.
  • FIG. 10 is a diagram illustrating a specific operation example of the microcomputer according to the third embodiment.
  • Embodiment 1 FIG.
  • a microcomputer incorporating a plurality of processors constituting a synchronous lock step will be described. More specifically, a microcomputer that masks a failed functional element and masks a functional element of a processor in which no failure has occurred when any functional element of any processor fails will be described.
  • the microcomputers of this embodiment and the following embodiments it is possible to match the output of a processor in which a failure has occurred with the output of a normal processor in which no failure has occurred.
  • FIG. 1 shows a configuration example of a microcomputer 1 according to this embodiment.
  • FIG. 2 shows the structure and bit meanings of the fault register 13, mask register 6, and configuration register 7 in the processor 2 included in the microcomputer 1.
  • the microcomputer 1 includes N (N ⁇ 2) processors 2.
  • N processors constitute a clock-synchronized lockstep.
  • the processor 2 is, for example, a CPU.
  • the N processors 2 are referred to as a processor system 200.
  • a bus input 8 of the processor which is an input signal to the processor 2 is input to the bus 11.
  • Each processor 2 outputs a processor bus output 9 to the comparative majority circuit 10.
  • the comparative majority circuit 10 it is confirmed whether or not the bus outputs 9 of all the processors match. If the bus outputs 9 of all the processors match, the processor bus output 9 is output to the bus 11 as the bus output 20 of the checked processor. If the bus outputs 9 of all processors do not match, the comparison majority circuit 10 detects an error.
  • FIG. 1 shows only an internal configuration example of the processor # 0, but other processors have the same internal configuration as the processor # 0.
  • Each processor 2 has m (m ⁇ 2) functional element modules 3.
  • Each functional element module 3 includes a plurality of functional elements 4.
  • the functional element module 3 includes n (n ⁇ 2) functional elements 4 from element 0 to element (n ⁇ 1).
  • Each functional element 4 is a target of inspection for failure by the detection unit 12 described later.
  • a plurality of functional elements 4 included in one functional element module 3 are functionally equivalent.
  • the functional element modules 3 having the same number include the same functional element 4. That is, the functional elements 4 included in the m-th functional element module 3 are common to the N processors 2.
  • the functional element 4 is, for example, a cache memory block (way) as described later.
  • each processor 2 is mounted with a plurality of functional elements in common.
  • Each processor 2 includes a plurality of detection units 12 that are checkers.
  • the detection unit 12 is provided for each functional element module 3.
  • the detection unit 12 inspects the presence or absence of a failure for each functional element 4 of the corresponding functional element module 3.
  • the detection unit 12 outputs the detection results 105 in order from the smallest number so that the element numbers (0 to (n ⁇ 1)) of the functional elements 4 uniquely correspond to the bits of the failure register 13. That is, the detection unit 12 outputs the detection result 105 of the functional element 4 with the element number n to the nth bit of the failure register 13. More specifically, the detection unit 12 outputs the value 0 to the bit of the functional element 4 having no failure and the value 1 to the bit of the functional element 4 having the failure.
  • the detection unit 12 detects the functional element 4 in which a failure has occurred among the plurality of functional elements 4.
  • the failure register 13 records the detection result 105.
  • the failure register output 106 of the failure register 13 is input to the failure element counter 14.
  • the failure element counter 14 counts the number of failure elements by counting bits whose value is 1. That is, the failure element counter 14 counts the number of functional elements 4 in which the failure detected by the detection unit 12 has occurred.
  • the failure element counter 14 outputs the calculation result as the number of failure elements 107 in the function element module 3.
  • the failure element count 107 of the functional element modules 3 of all the processors 2 is input to the maximum value calculator 18.
  • the maximum value calculator 18 calculates the maximum value of the number of failed elements 107 at the inputs from all the processors 2.
  • the maximum value calculator 18 outputs the calculated maximum value as the maximum value 108 of the number of failure elements. That is, the maximum value calculator 18 receives a notification from each processor 2 of the number of functional elements 4 in which the failure detected in each processor 2 has occurred. Then, the maximum value calculator 18 determines the maximum value among the number of functional elements 4 in which the failure detected by each processor 2 has occurred, and generates the maximum value 108 of the number of failure elements.
  • the maximum value 108 of the number of faulty elements is input to all the processors 2.
  • the maximum value 108 of the number of failure elements is a signal for notifying each processor 2 of the number of functional elements 4 to be masked (mask number).
  • the maximum value 108 of the number of failure elements is also referred to as a mask number notification.
  • the maximum value 108 of the number of failure elements is input to the mask generation unit 5.
  • the mask generation unit 5 also receives a failure register output 106 and a failure element number 107.
  • the mask generation unit 5 generates a mask value from the failure register output 106, the number of failure elements 107, and the maximum value 108 of the number of failure elements.
  • the mask generation unit 5 generates mask values for the functional elements 4 corresponding to the number of masks notified by the maximum value 108 of the number of failure elements, including the functional elements 4 detected by the detection unit 12.
  • the mask generation unit 5 outputs the generated mask value as the mask register setting value 102.
  • the mask register set value 102 is input to the mask register 6 and set in the mask register 6.
  • the mask register 6 outputs the mask register setting value 102 as the mask register output 101.
  • the mask register output 101 is input to the functional element module 3.
  • the functional element module 3 masks the corresponding functional element 4 according to the value of the mask register output 101. That is, the mask generation unit 5 masks the functional elements 4 corresponding to the number of masks notified by the maximum value 108 of the number of faulty elements including the functional elements 4 detected by the detection unit 12 via the mask register 6. Thereafter, the processors 2 start executing instructions all at once.
  • each processor 2 is included in the processor system 200 together with the other processors 2 on which the same plurality of functional elements 4 are mounted.
  • the mask generation unit 5 receives the maximum value (mask number notification) of the number of functional elements in which the failure detected in each processor 2 has occurred. Then, the mask generation unit 5 masks the functional elements 4 for the maximum value including the functional elements 4 detected by the detection unit 12. As a result, each processor 2 can mask the functional element 4 in which a failure has occurred, and the number of masks of each processor 2 can be made the same.
  • the detection unit 12 sets the functional element module 3 to the test mode based on the detection unit output 103 at the time of activation.
  • the processing from S102 to S108 is a loop.
  • the processing from S102 to S108 is repeated for the number of functional elements in the functional element module 3.
  • the detection unit 12 selects one functional element 4 having the smallest number among the functional elements 4 not yet tested in the functional element module 3. Then, the detection unit 12 inputs a test pattern to the selected functional element 4 through the detection unit output 103.
  • the detection unit 12 obtains the output of the selected functional element 4 from the detection unit input 104.
  • the detection unit 12 compares the detection unit input 104 with an expected value held in the detection unit 12. In S106, the detection unit 12 determines whether the detection unit input 104 matches the expected value. If the detection unit input 104 matches the expected value, the process proceeds to S110. In S107, the detection unit 12 sets the value of the bit of the failure register 13 corresponding to the selected functional element 4 to 1. In S110, the detection unit 12 sets the value of the bit of the failure register 13 corresponding to the selected functional element 4 to 0. After exiting the loop, in S109, the detection unit 12 switches the functional element module 3 from the test mode to the normal mode by the detection unit output 103.
  • a mask value generation method by the mask generation unit 5 will be described using the flowchart of FIG.
  • the mask generation unit 5 sets the value of the failure register output 106 in the output register for the mask register setting value 102 in the mask generation unit 5.
  • the mask generation unit 5 subtracts the number of failure elements 107 from the maximum value 108 of the number of failure elements of all the processors 2, and the number of function elements 4 that must be masked among the function elements 4 that have not failed. Is calculated.
  • the processing from S203 to S209 is a loop. The processing from S203 to S209 is repeated for the number of functional elements calculated in S202.
  • the mask generation unit 5 exits the loop and ends the process.
  • the mask generation unit 5 selects the bit with the smallest number among the bits not yet inspected in the output register for the mask register set value 102, and checks the selected bit. In S206, if the value of the bit selected in S205 is 1, the process proceeds to S209. If the value of the bit selected in S205 is 0, the process proceeds to S207. In S207, the mask generation unit 5 sets the value of the bit corresponding to the checked element of the output register for the mask register setting value 102 to 1. In S208, the mask generation unit 5 subtracts 1 from the number of functional elements 4 that must be masked among functional elements 4 that have not failed.
  • FIG. 7 shows an application example of this embodiment to a microcomputer in which a lock step is configured by two processors 2 and each processor 2 has a cache memory.
  • the cache memory is composed of eight ways, and each way is detected as a failure and can be masked individually.
  • the cache memory in FIG. 7 corresponds to the functional element module in FIG. 1, and each way in FIG. 7 corresponds to the functional element 4 in FIG. In FIG. 7, elements other than those necessary for explanation are not shown.
  • the way number of the cache memory corresponds to the bit number of the failure register and the mask register. Assume that processor A has failed in way 2 and way 3 of the cache memory.
  • the value of the bit of the failure register 13 of the processor A is “00110000” in order from the bit 0.
  • the value of the bit of the failure register 13 of the processor B is “01010101” in order from the bit 0.
  • the failure element counters 14 of the processor A and the processor B count the bits whose values are 1 from the respective failure registers 13.
  • the counter value of the failure element counter 14 of the processor A is 2, and the counter value of the failure element counter 14 of the processor B is 4.
  • the value of the failure element counter 14 of each processor is input to the maximum value calculator 18.
  • the maximum value calculator 18 outputs the value 4 of the failure element counter 14 of the processor B which is larger than the value 2 of the failure element counter 14 of the processor A.
  • the mask generation unit 5 receives the input from the maximum value calculator 18 and the value of the failure register 13.
  • the mask generation unit 5 of the processor A generates a mask value that masks all ways of the cache memory in which the processor A has failed.
  • the mask generator 5 of the processor A generates the same number of mask values as the input from the maximum value calculator 18.
  • the mask generation unit 5 of the processor A generates mask values in order from the way assigned to the smaller bits of the mask register among the ways that have not failed.
  • the mask value generated by the processor A is “11110000” in order from the bit 0. This mask value is set in the mask register 6, and the way of the cache of the processor A is masked.
  • the mask generation unit 5 generates a mask value that masks all the ways of the cache memory in which the processor B has failed.
  • the mask generator 5 of the processor B When the number of elements to be masked is less than the input from the maximum value calculator, the mask generator 5 of the processor B generates a mask value in the same manner as the mask generator 5 of the processor A. That is, the same number of mask values as the input from the maximum value calculator 18 are generated in order from the way assigned to the smaller bits of the mask register among the ways that have not failed.
  • the mask values generated by the processor B are “01010101” in order from bit 0. This mask value is set in the mask register 6, and the way of the cache of the processor B is masked.
  • FIG. 5 shows a configuration example of the microcomputer 1 according to the present embodiment.
  • the mask register output 101 output from the mask register 6 is input to the normal element counter 21.
  • the normal element counter 21 counts the number of bits that are not masked in the mask register output 101. That is, the normal element counter 21 counts the number of functional elements 4 that are not masked by the mask generation unit 5.
  • the normal element counter 21 outputs the count result as the normal element number 109.
  • the normal element number 109 is input to the configuration register 7, and the program can refer to the normal element number 109 in the configuration register 7.
  • FIG. 8 shows an application example of this embodiment to a microcomputer in which a lock step is constituted by two processors 2 and each processor 2 has a cache memory.
  • the cache memory is composed of eight ways, and each way is detected as a failure and can be masked individually.
  • illustrations are omitted except for elements necessary for the description. Note that the process up to the generation of the mask is the same as that of the first embodiment, and thus the description thereof is omitted.
  • the normal element counter 21 of the processor A counts the number of unmasked bits (number of 0s) in the mask register 6.
  • the normal element counter 21 of the processor A stores four count results in the portion indicating the number of ways in the configuration register 7. Also in the processor B, the normal element counter 21 counts the number of unmasked bits (number of 0s) in the mask register 6. Here, it is assumed that the contents of the mask register 6 are “01010101” in order from bit 0. Then, the normal element counter 21 of the processor B stores four count results in the portion indicating the number of ways in the configuration register 7.
  • the configuration register of each processor can indicate the number of ways that are not masked.
  • the program can obtain the number of unmasked functional elements of the functional element module without referring to the value of the mask register.
  • Embodiment 3 According to the method shown in the first embodiment, the output of a processor in which a failure has occurred can be matched with the output of a normal processor in which no failure has occurred.
  • the configuration of the microcomputer is different from the configuration assumed by the program. For this reason, the program may become inoperable or the performance of the program may deteriorate.
  • the program detects the configuration of the microcomputer and changes the setting and control method according to the configuration of the microcomputer. For this reason, it seems that the above problem can be solved by reading the mask value by the program.
  • the mask value is different for each processor, the read result will be different and an error will be detected incorrectly. Resulting in.
  • a microcomputer capable of operating a program in accordance with the configuration of a processor after masking functional elements will be described.
  • FIG. 6 shows a configuration example of the processor 2 according to the present embodiment.
  • the program 22 designates an element by a logical number 110 when accessing the functional element 4 of the functional element module 3.
  • the logical number 110 is input to the number management unit 23.
  • a mask register output 101 output from the mask register 6 is also input to the number management unit 23.
  • the number management unit 23 refers to the value of the mask register output 101 one bit at a time, associates the physical number 111 at the bit position of the value 0 with the logical number 110, and converts between the logical number 110 and the physical number 111. Do.
  • the number management unit 23 selects the functional element 4 corresponding to the physical number 111 and accesses the selected functional element 4.
  • the configuration inside the microcomputer 1 other than the processor 2 is as shown in FIG.
  • FIG. 9 shows an application example of the present embodiment to a microcomputer in which a lock step is constituted by two processors 2 and each processor 2 has a cache memory.
  • the cache memory is composed of eight ways, and each way is detected as a failure and can be masked individually.
  • illustrations are omitted except for elements necessary for the description. Note that the process up to the generation of the mask is the same as that of the first embodiment, and thus the description thereof is omitted.
  • the number management unit 23 of the processor A checks the unmasked bits of the mask register 6 in order from bit 0.
  • the number management unit 23 associates the bit number of the first found bit with the logical number WAY 0 as a physical number. Then, each time the number management unit 23 detects an unmasked bit, the number management unit 23 increments the logical number such as WAY1, WAY2,..., And links the found bit number as a physical number. In this example, logical numbers WAY0, WAY1, WAY2, and WAY3 are linked to physical numbers WAY4, WAY5, WAY6, and WAY7. Similarly, the number management unit 23 of the processor B checks the unmasked bits of the mask register 6 in order from bit 0.
  • the number management unit 23 associates the bit number of the first found bit with the logical number WAY 0 as a physical number. Then, each time the number management unit 23 detects an unmasked bit, the number management unit 23 increments the logical number such as WAY1, WAY2,..., And links the found bit number as a physical number.
  • the logical numbers WAY0, WAY1, WAY2, and WAY3 are linked to the physical numbers WAY0, WAY2, WAY4, and WAY6.
  • the number management unit 23 converts the logical number into the physical number when the program accesses the cache way with the logical number according to the rule for conversion between the logical number and the physical number in the number management unit 23 thus obtained.
  • the way corresponding to the physical number obtained by the conversion is accessed. For this reason, even if the ways masked by both processors are different, it is possible to access an unmasked way that is uniquely determined from the logical number by using the same logical number in both processors.
  • the number management unit 23 performs conversion from a logical address to a physical address in advance, stores the result in a table in the number management unit 23, and refers to the table when actually accessing. It may be. In this way, it is not necessary to check each bit of the mask register output 101 for each conversion, and the physical number 111 can be obtained at high speed.
  • the mask generation unit 5, the detection unit 12, and the number management unit 23 described in the third embodiment described in the first to third embodiments may be realized by a program or a circuit.
  • a program that realizes the functions of the mask generation unit 5, the detection unit 12, and the number management unit 23 is stored in the ROM 15, for example. This program is loaded into the RAM 16, read into the processor 2, and executed by the processor 2.
  • circuits corresponding to the mask generation unit 5, the detection unit 12, and the number management unit 23 are provided in the processor 2, and each unit includes Corresponding circuits are wired to other circuits (functional element module 3, failure register 13, mask register 6, configuration register 7, failure element counter 14).

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Abstract

 各プロセッサ(2)には、複数の機能要素(4)が実装されている。各プロセッサ(2)において、検出部(12)は、複数の機能要素(4)を検査して、複数の機能要素(4)のうち故障が発生している機能要素(4)を検出する。各プロセッサ(2)において、マスク生成部(5)は、各プロセッサ(2)で検出された故障が発生している機能要素(4)の個数のうちの最大値をマスク数として通知するマスク数通知を受信し、検出部(3)により検出された機能要素(4)を含む、マスク数分の機能要素(4)をマスクする。

Description

プロセッサ及びマイクロコンピュータ
 この発明は、プロセッサに実装されている機能要素をマスクする技術に関する。
 以下では、マイクロコンピュータに含まれるプロセッサに実装されている機能要素をマスクする例を説明する。
 例えば、車載向けのマイクロコンピュータでは、高い信頼性が求められる。
 このような高い信頼性が求められるマイクロコンピュータでは、複数のプロセッサによりクロック同期式のロックステップが構成されることが一般的である。
 ロックステップでは、各プロセッサの出力が比較され、プロセッサの出力が不一致の場合に、プロセッサの故障を検出することが可能である。
 そして、プロセッサの一部の機能要素が故障している場合は、故障している機能要素をマスクすることで、一部の機能要素が故障しているプロセッサを再び使用することができるようになる。
 しかしながら、故障した機能要素をマスクしたプロセッサと正常なままのプロセッサでは出力に差異が生じるため、プロセッサ出力が一致せず、故障が誤検出されてしまう。
 このような誤検出を回避するための技術として、例えば、特許文献1に開示された技術及び特許文献2に開示された技術がある。
 特許文献1には、共通のデータ処理対象に対して2以上の系で互換が可能に処理された処理結果を入力し、前記2以上の系での処理結果に対してデータ照合するデータ照合装置が開示されている。
 また、特許文献1では、データ照合装置が、前記2以上の系での処理結果が互いに共通のデータ処理対象に対してなされたことをデータ共通性として判断し、前記2以上の系での処理結果が許容範囲であるかをデータ許容性として判断することが開示されている。
 また、特許文献1では、前記データ照合は、前記データ共通性及びデータ許容性によってなされることが開示されている。
 また、特許文献2には、出力比較部と、シフト結果比較部と、テーブル記憶部と、制御部とを備えるマイクロコンピュータが開示されている。
 出力比較部は、通常動作モードでメインコア及びチェッカーコアのそれぞれの出力を比較する。
 シフト結果比較部は、不一致箇所特定モードでメインコア及びチェッカーコアのそれぞれのスキャンチェーンの出力を比較する。
 テーブル記憶部は、複数のフリップフロップと複数の機能ブロックとの情報が格納されたテーブルを記憶する。
 制御部は、通常動作モードにて、出力比較部により不一致が検出された場合に不一致箇所特定モードにモードを切り替えるとともに、不一致箇所特定モードにて、シフト結果比較部の比較結果に基づき特定されたフリップフロップに対応する機能ブロックを前記テーブルの中から抽出し、当該機能ブロックの機能を停止させる。
特開2006-344086号公報 特開2014-132384号公報
 特許文献1では、全ての処理結果がデータ共通性を有し、処理結果にデータ許容性の無い場合には、通常の冗長系と同様に、一部機能の故障によりデータ不一致が生じる場合にデータ照合装置が動作できなくなるという課題がある。
 特許文献2では、スキャンチェーンの不一致により特定されたフリップフロップに対応する機能ブロックを抽出し、当該機能ブロックの機能を停止させるが、第1CPU(Central Processing Unit)コアと前記第1CPUコアと冗長な構成を有する第2CPUコアの双方の機能ブロックを同じく機能停止させるため、故障した機能以外にも機能停止が及んでしまうという課題がある。
 この発明は上記のような課題を解決することを主な目的としており、機能や性能の劣化を最小限に抑えて、故障が発生したプロセッサの出力と故障が発生していない正常なプロセッサの出力とを一致させる構成を得ることを主な目的とする。
 本発明に係るプロセッサは、
 それぞれに複数の機能要素が実装されている複数のプロセッサで構成されるプロセッサシステムに含まれるプロセッサであって、
 前記プロセッサに実装されている前記複数の機能要素を検査して、前記複数の機能要素のうち故障が発生している機能要素を検出する検出部と、
 各プロセッサで検出された故障が発生している機能要素の個数のうちの最大値をマスク数として通知するマスク数通知を受信し、前記検出部により検出された機能要素を含む、前記マスク数分の機能要素をマスクするマスク生成部とを有する。
 本発明によれば、故障が発生している機能要素がマスクされるとともに、マスクされる機能要素の個数が各プロセッサで故障が発生している機能要素の個数のうちの最大値に一致する。
 このため、機能や性能の劣化を最小限に抑えて、故障が発生したプロセッサの出力と故障が発生していない正常なプロセッサの出力とを一致させることができる。
実施の形態1に係るマイクロコンピュータの構成例を示す図。 実施の形態1に係る故障レジスタ、マスクレジスタ、構成レジスタの構成例を示す図。 実施の形態1に係る故障レジスタのセット方法を示すフローチャート図。 実施の形態1に係るマスク生成部によるマスク値の生成方法を示すフローチャート図。 実施の形態2に係るマイクロコンピュータの構成例を示す図。 実施の形態3に係るマイクロコンピュータの構成例を示す図。 実施の形態1に係るマイクロコンピュータの具体的な動作例を示す図。 実施の形態2に係るマイクロコンピュータの具体的な動作例を示す図。 実施の形態3に係るマイクロコンピュータの具体的な動作例を示す図。
 実施の形態1.
 本実施の形態及び以降の実施の形態では、同期式のロックステップを構成する複数のプロセッサを内蔵したマイクロコンピュータを説明する。
 より具体的には、いずれかのプロセッサのいずれかの機能要素が故障した際に、故障した機能要素をマスクするとともに、故障が発生していないプロセッサの機能要素もマスクするマイクロコンピュータを説明する。
 本実施の形態及び以降の実施の形態のマイクロコンピュータにより、故障が発生したプロセッサの出力と故障が発生していない正常なプロセッサの出力とを一致させることができる。
***構成の説明***
 図1は、本実施の形態に係るマイクロコンピュータ1の構成例を示す。
 また、図2は、マイクロコンピュータ1に含まれるプロセッサ2内の故障レジスタ13、マスクレジスタ6、構成レジスタ7の構造とビットの意味を示す。
 図1に示すように、マイクロコンピュータ1には、N(N≧2)個のプロセッサ2が存在する。
 N個のプロセッサは、クロック同期したロックステップを構成する。
 プロセッサ2は、例えばCPUである。
 以下、N個のプロセッサ2をプロセッサシステム200という。
 バス11には、プロセッサ2への入力信号であるプロセッサのバス入力8が入力されている。
 また、各プロセッサ2からは比較多数決回路10に対してプロセッサのバス出力9が出力される。
 比較多数決回路10では、全てのプロセッサのバス出力9が一致しているか否かが確認される。
 全てのプロセッサのバス出力9が一致していた場合は、プロセッサのバス出力9はチェックされたプロセッサのバス出力20としてバス11に出力される。
 全てのプロセッサのバス出力9が一致していない場合は、比較多数決回路10はエラーを検出する。
 また、バス11には、ROM(Read Only Memory)15、RAM(Random Access Memory)16、各種IO(Input Output)デバイス17が接続されている。
 本実施の形態及び以降の実施の形態は、主にプロセッサ2に関するため、ROM15、RAM16、各種IOデバイス17の説明は省略する。
 また、図1では、プロセッサ#0の内部構成例のみを示しているが、他のプロセッサでも、プロセッサ#0と同じ内部構成を有している。
 各プロセッサ2は、m(m≧2)個の機能要素モジュール3を有する。
 各機能要素モジュール3には、複数の機能要素4が含まれる。
 図1では、機能要素モジュール3に、要素0~要素(n-1)のn(n≧2)個の機能要素4が含まれている。
 各機能要素4は、後述する検出部12による故障有無の検査の対象となる。
 1つの機能要素モジュール3に含まれる複数の機能要素4は、機能的に等価である。
 また、N個のプロセッサ2において、番号が共通する機能要素モジュール3には同じ機能要素4が含まれている。
 つまり、m番の機能要素モジュール3に含まれる機能要素4は、N個のプロセッサ2で共通している。
 機能要素4は、例えば、後述するように、キャッシュメモリのブロック(ウェイ)である。
 このように、各プロセッサ2には、複数の機能要素が共通に実装されている。
 また、各プロセッサ2は、チェッカーである複数の検出部12を有する。
 検出部12は、機能要素モジュール3ごとに設けられている。
 検出部12は、対応する機能要素モジュール3の機能要素4ごとに故障の有無を検査する。
 検出部12は、機能要素4の要素番号(0~(n-1))が故障レジスタ13のビットに一意に対応するように検出結果105を小さい番号から順に出力する。
 つまり、検出部12は、要素番号nの機能要素4の検出結果105を故障レジスタ13のn番目のビットに出力する。
 より具体的には、検出部12は、故障のない機能要素4のビットには値0を、故障のある機能要素4のビットには値1を出力する。
 このように、検出部12は、複数の機能要素4のうち故障が発生している機能要素4を検出する。
 故障レジスタ13は、検出結果105を記録する。
 故障レジスタ13の故障レジスタ出力106は、故障要素カウンタ14に入力される。
 故障要素カウンタ14は、値が1であるビットをカウントすることで故障要素数をカウントする。
 つまり、故障要素カウンタ14は、検出部12により検出された故障が発生している機能要素4の個数をカウントする。
 故障要素カウンタ14は、計算結果を機能要素モジュール3における故障要素数107として出力する。
 全プロセッサ2の機能要素モジュール3の故障要素数107は、最大値計算器18に入力される。
 最大値計算器18は、全プロセッサ2からの入力における故障要素数107の最大値を計算する。
 また、最大値計算器18は、計算した最大値を故障要素数の最大値108として出力する。
 つまり、最大値計算器18は、各プロセッサ2から各プロセッサ2で検出された故障が発生している機能要素4の個数の通知を受ける。
 そして、最大値計算器18は、各プロセッサ2で検出された故障が発生している機能要素4の個数のうちの最大値を判別し、故障要素数の最大値108を生成する。
 故障要素数の最大値108は、全プロセッサ2に入力される。
 故障要素数の最大値108は、マスクする機能要素4の数(マスク数)を各プロセッサ2に通知する信号である。
 故障要素数の最大値108は、マスク数通知ともいう。
 各プロセッサ2では、故障要素数の最大値108がマスク生成部5に入力される。
 また、マスク生成部5には、故障レジスタ出力106と故障要素数107も入力される。
 マスク生成部5は、故障レジスタ出力106と故障要素数107と故障要素数の最大値108から、マスク値を生成する。
 具体的には、マスク生成部5は、検出部12により検出された機能要素4を含む、故障要素数の最大値108で通知されたマスク数分の機能要素4へのマスク値を生成する。
 そして、マスク生成部5は、生成したマスク値をマスクレジスタ設定値102として出力する。
 マスクレジスタ設定値102は、マスクレジスタ6に入力され、マスクレジスタ6に設定される。
 マスクレジスタ6は、マスクレジスタ設定値102をマスクレジスタ出力101として出力する。
 マスクレジスタ出力101は、機能要素モジュール3に入力される。
 機能要素モジュール3は、マスクレジスタ出力101の値に従い、対応する機能要素4をマスクする。
 つまり、マスク生成部5は、マスクレジスタ6を介して、検出部12により検出された機能要素4を含む、故障要素数の最大値108で通知されたマスク数分の機能要素4をマスクする。
 その後、各プロセッサ2は、一斉に命令の実行を開始する。
 このように、各プロセッサ2は、同じ複数の機能要素4が実装されている他のプロセッサ2とともにプロセッサシステム200に含まれる。
 そして、各プロセッサ2において、マスク生成部5は、各プロセッサ2で検出された故障が発生している機能要素の個数の最大値(マスク数通知)を受信する。
 そして、マスク生成部5は、検出部12により検出された機能要素4を含む、最大値分の機能要素4をマスクする。
 この結果、各プロセッサ2では、故障が発生している機能要素4をマスクすることができ、また、各プロセッサ2のマスク数を同数にすることができる。
***動作の説明***
 次に、図3のフローチャートを使用して、故障レジスタ13のセット方法を説明する。
 S101で、検出部12は、起動時に、検出部出力103により、機能要素モジュール3をテストモードにする。
 S102からS108までの処理はループである。
 S102からS108までの処理は、機能要素モジュール3内の機能要素数分繰り返される。
 S103では、検出部12が、機能要素モジュール3内部のまだテストされていない機能要素4の中で最も番号の小さい機能要素4を一つ選択する。
 そして、検出部12は、選択した機能要素4に検出部出力103によりテストパターンを入力する。
 S104では、検出部12は、選択した機能要素4の出力を検出部入力104から得る。
 S105では、検出部12は、検出部入力104と検出部12の内部に持つ期待値とを比較する。
 S106では、検出部12は、検出部入力104と期待値とが一致しているかを判定し、検出部入力104と期待値とが一致していれば、処理がS110に進む。
 S107では、検出部12は、選択した機能要素4に対応する故障レジスタ13のビットの値を1にする。
 S110では、検出部12は、選択した機能要素4に対応する故障レジスタ13のビットの値を0にする。
 ループから抜けた後、S109で検出部12は、検出部出力103により、機能要素モジュール3をテストモードからノーマルモードに切り替える。
 図4のフローチャートを使用して、マスク生成部5によるマスク値の生成方法を説明する。
 S201で、マスク生成部5は、故障レジスタ出力106の値をマスク生成部5内のマスクレジスタ設定値102用の出力レジスタにセットする。
 S202で、マスク生成部5は、全プロセッサ2の故障要素数の最大値108から故障要素数107を引き、故障をしていない機能要素4の中でマスクをしなければならない機能要素4の数を算出する。
 S203からS209までの処理はループである。
 S203からS209までの処理は、S202で算出した機能要素数分繰り返される。
 S204では、故障をしていない機能要素4の中でマスクをしなければならない機能要素4の数が0であったら、マスク生成部5は、ループから抜けて処理を終了する。
 S205では、マスク生成部5は、マスクレジスタ設定値102用の出力レジスタの未だ検査していないビットの中で最も番号の小さいビットを選択し、選択したビットをチェックする。
 S206では、S205で選択されたビットの値が1であれば、処理はS209に進む。
 S205で選択されたビットの値が0であれば、処理はS207に進む。
 S207では、マスク生成部5は、マスクレジスタ設定値102用の出力レジスタのチェックした要素に対応するビットの値を1にする。
 S208では、マスク生成部5は、故障をしていない機能要素4の中でマスクをしなければならない機能要素4の数から1を引く。
 本実施の形態に係るマイクロコンピュータ1の動作を具体例を用いて説明する。
 図7に、2個のプロセッサ2でロックステップを構成し、各プロセッサ2がキャッシュメモリを持つマイクロコンピュータへの本実施の形態の適用例を示す。
 図7では、キャッシュメモリは8個のウェイで構成され、それぞれのウェイは故障検出され、個別にマスクすることができる。
 図7のキャッシュメモリが図1の機能要素モジュールに対応し、図7の各ウェイが図1の機能要素4に対応する。
 なお、図7では、説明に必要な要素以外の要素は図示を省略している。
 また、キャッシュメモリのウェイの番号と、故障レジスタ及びマスクレジスタのビット番号は対応している。
 プロセッサAはキャッシュメモリのウェイ2、ウェイ3が故障しているものとする。
 この場合、プロセッサAの故障レジスタ13のビットの値はビット0から順に「00110000」となる。
 プロセッサBはキャッシュメモリのウェイ1、ウェイ3、ウェイ5、ウェイ7が故障しているものとする。
 この場合、プロセッサBの故障レジスタ13のビットの値はビット0から順に「01010101」となる。
 プロセッサA及びプロセッサBの故障要素カウンタ14は、それぞれの故障レジスタ13から値が1であるビットをカウントする。
 プロセッサAの故障要素カウンタ14のカウンタ値は2となり、プロセッサBの故障要素カウンタ14のカウンタ値は4となる。
 各プロセッサの故障要素カウンタ14の値は最大値計算器18に入力される。
 最大値計算器18はプロセッサAの故障要素カウンタ14の値2よりも大きいプロセッサBの故障要素カウンタ14の値4を出力する。
 プロセッサAでは、最大値計算器18からの入力と故障レジスタ13の値をマスク生成部5が入力される。
 プロセッサAのマスク生成部5は、プロセッサAの故障したキャッシュメモリのウェイを全てマスクするマスク値を生成する。
 マスクするウェイの数が最大値計算器18からの入力に満たない場合は、プロセッサAのマスク生成部5は、最大値計算器18からの入力と同数のマスク値を生成する。
 プロセッサAのマスク生成部5は、故障していないウェイのうちマスクレジスタの小さいビットに割り当てられているウェイから順にマスク値を生成する。
 プロセッサAで生成されたマスク値は、ビット0から順に「11110000」となる。
 このマスク値がマスクレジスタ6に設定されて、プロセッサAのキャッシュのウェイがマスクされる。
 プロセッサBでも同様に、マスク生成部5はプロセッサBの故障したキャッシュメモリのウェイを全てマスクするマスク値を生成する。
 マスクする要素の数が最大値計算器からの入力に満たない場合は、プロセッサBのマスク生成部5は、プロセッサAのマスク生成部5と同様の方法で、マスク値を生成する。
 つまり、故障していないウェイのうちマスクレジスタの小さいビットに割り当てられているウェイから順に、最大値計算器18からの入力と同数のマスク値を生成する。
 プロセッサBで生成されたマスク値は、ビット0から順に「01010101」となる。
 このマスク値がマスクレジスタ6に設定されて、プロセッサBのキャッシュのウェイがマスクされる。
***効果の説明***
 本実施の形態に係るマイクロコンピュータはこのように構成されているので、各プロセッサの故障した機能要素は必ずマスクされており、また、各プロセッサでマスクされた機能要素の数は全プロセッサでの故障要素数の最大値に一致する。
 このため、ロックステップを構成するプロセッサの中に故障した機能要素を含むプロセッサが存在し、それぞれのプロセッサの間で故障した機能要素の番号、個数が異なる場合でも、最小限のマスクで、全プロセッサを機能的に等価とすることができる。
 また、プロセッサの一部の機能要素が故障した場合でも、機能や性能の劣化を最小限に抑えた、ロックステップにより故障検出が可能なマイクロコンピュータを実現することが可能になる。
 実施の形態2.
***構成の説明***
 図5は、本実施の形態に係るマイクロコンピュータ1の構成例を示す。
 図5において、マスクレジスタ6の出力するマスクレジスタ出力101は、正常要素カウンタ21に入力される。
 正常要素カウンタ21は、マスクレジスタ出力101においてマスクされていないビット数をカウントする。
 つまり、正常要素カウンタ21は、マスク生成部5によりマスクされていない機能要素4の個数をカウントする。
 また、正常要素カウンタ21は、カウント結果を正常要素数109として出力する。
 正常要素数109は構成レジスタ7に入力され、プログラムは構成レジスタ7内の正常要素数109を参照することができる。
***動作の説明***
 本実施の形態に係るマイクロコンピュータ1の動作を具体例を用いて説明する。
 図8に、2個のプロセッサ2でロックステップを構成し、各プロセッサ2がキャッシュメモリを持つマイクロコンピュータへの本実施の形態の適用例を示す。
 図8では、キャッシュメモリは8個のウェイで構成され、それぞれのウェイは故障検出され、個別にマスクすることができる。
 この図8では、説明に必要な要素以外は図示が省略されている。
 なお、マスクの生成までの過程は実施の形態1と同じなため説明を省略する。
 プロセッサAの正常要素カウンタ21は、マスクレジスタ6のマスクされていないビットの数(0の数)をカウントする。
 ここでは、マスクレジスタ6の内容はビット0から順に「11110000」であるとする。
 そして、プロセッサAの正常要素カウンタ21は、カウント結果である4個を構成レジスタ7中のウェイ数を示す部分に格納する。
 プロセッサBにおいても、正常要素カウンタ21はマスクレジスタ6のマスクされていないビットの数(0の数)をカウントする。
 ここでは、マスクレジスタ6の内容はビット0から順に「01010101」であるとする。
 そして、プロセッサBの正常要素カウンタ21は、カウント結果である4個を構成レジスタ7中のウェイ数を示す部分に格納する。
***効果の説明***
 このように、故障しているウェイやマスクレジスタの値がプロセッサ間で異なる場合でも、各プロセッサの構成レジスタはマスクされていないウェイ数を示すことができる。
 これにより、プログラムは、マスクレジスタの値を参照しなくても、機能要素モジュールのマスクされていない機能要素の数を取得することができる。
 そして、プロセッサに故障がある場合でも、機能をマスクした後のプロセッサの構成に応じたプログラムの動作が可能な、ロックステップにより故障検出が可能なマイクロコンピュータを実現することが可能になる。
 実施の形態3.
 実施の形態1に示す方法により、故障が発生したプロセッサの出力と故障が発生していない正常なプロセッサの出力とを一致させることができる。
 しかしながら、機能構成をマスクした場合は、マイクロコンピュータの構成が、プログラムが前提としている構成と異なってしまう。
 このため、プログラムが動作不能になったり、プログラムの性能が劣化してしまう場合がある。
 一般的には、マイクロコンピュータが起動した後、プログラムがマイクロコンピュータの構成を検知し、マイクロコンピュータの構成に合わせて設定や制御方法を変える。
 このため、プログラムがマスク値を読み出すことで、上記の問題は解決可能のように思えるが、ロックステップを構成する場合は、プロセッサごとにマスク値が異なると、読み出し結果が異なり、エラーを誤検出してしまう。
 本実施の形態では、機能要素をマスクした後のプロセッサの構成に応じたプログラムの動作が可能なマイクロコンピュータを説明する。
 さらに、機能要素をマスクした状態で、プログラムが、マスクしていない機能要素を選択して制御する場合は、プロセッサごとにマスクしている機能要素が異なると、機能要素を選択する際のプログラムの動作がプロセッサごとに異なってしまう。
 この結果、ロックステップにおいて、プロセッサごとの動作の違いによりエラーが誤検出されてしまう場合がある。
 本実施の形態では、エラーの誤検出を発生させずに、プログラムが、マスクされていない機能要素を選択することが可能なマイクロコンピュータを説明する。
***構成の説明***
 図6は、本実施の形態に係るプロセッサ2の構成例を示す。
 図6において、プログラム22は、機能要素モジュール3の機能要素4にアクセスする際に、論理番号110により要素を指定する。
 論理番号110は、番号管理部23に入力される。
 番号管理部23には、マスクレジスタ6の出力するマスクレジスタ出力101も入力されている。
 番号管理部23は、マスクレジスタ出力101の値を1ビットずつ参照して、値0のビット位置の物理番号111を論理番号110に対応付け、論理番号110と物理番号111との間の変換を行う。
 そして、番号管理部23は、物理番号111に対応する機能要素4を選択し、選択した機能要素4にアクセスする。
 プロセッサ2以外のマイクロコンピュータ1内の構成は、図1に示す通りである。
***動作の説明***
 本実施の形態に係るマイクロコンピュータ1の動作を具体例を用いて説明する。
 図9に、2個のプロセッサ2でロックステップを構成し、各プロセッサ2がキャッシュメモリを持つマイクロコンピュータへの本実施の形態の適用例を示す。
 図9では、キャッシュメモリは8個のウェイで構成され、それぞれのウェイは故障検出され、個別にマスクすることができる。
 この図9では、説明に必要な要素以外は図示が省略されている。
 なお、マスクの生成までの過程は実施の形態1と同じなため説明を省略する。
 プロセッサAの番号管理部23は、マスクレジスタ6のマスクされていないビットをビット0から順にチェックする。
 ここでは、マスクレジスタ6の内容は、ビット0から順に「11110000」であるとする。
 番号管理部23は、最初に見つかったビットのビット番号を物理番号として論理番号のWAY0と結び付ける。
 そして、番号管理部23は、以後、マスクされていないビットを検出するたびに、WAY1、WAY2、…と論理番号をインクリメントして、見つかったビット番号を物理番号として結び付けていく。
 この例では論理番号のWAY0、WAY1、WAY2、WAY3が物理番号のWAY4、WAY5、WAY6、WAY7に結び付けられる。
 同様にプロセッサBの番号管理部23は、マスクレジスタ6のマスクされていないビットをビット0から順にチェックする。
 ここでは、マスクレジスタ6の内容は、ビット0から順に「01010101」であるとする。
 番号管理部23は、最初に見つかったビットのビット番号を物理番号として論理番号のWAY0と結び付ける。
 そして、番号管理部23は、以後、マスクされていないビットを検出するたびに、WAY1、WAY2、…と論理番号をインクリメントして、見つかったビット番号を物理番号として結び付けていく。
 この例では論理番号のWAY0、WAY1、WAY2、WAY3が物理番号のWAY0、WAY2、WAY4、WAY6に結び付けられる。
 このように求められた番号管理部23での論理番号と物理番号の変換の規則により、プログラムがキャッシュのウェイに論理番号でアクセスする際に番号管理部23が論理番号を物理番号に変換し、変換により得られた物理番号に対応するウェイにアクセスをする。
 このため、双方のプロセッサでマスクしているウェイが異なる場合でも、双方のプロセッサで同じ論理番号を使用して、論理番号から一意に求まるマスクしていないウェイにアクセスすることが可能になる。
***効果の説明***
 これにより、プログラムからは、マスクされた機能要素がどれであるかを知らなくても、論理番号により機能要素にアクセスすることが可能になる。
 そして、プロセッサに故障がある場合でも、機能をマスクした後のプロセッサで、プログラムがマスクされていない機能を選択して制御することが可能な、ロックステップにより故障検出が可能なマイクロコンピュータを実現することが可能になる。
 なお、番号管理部23が、論理アドレスから物理アドレスへの変換をあらかじめ行っておき、結果を番号管理部23内部にあるテーブルに記憶しておき、実際のアクセスの際は、テーブルを参照することにしてもよい。
 このようにすれば、変換ごとのマスクレジスタ出力101の各ビットのチェックが不要になり、高速に物理番号111を求めることができる。
 実施の形態1~3で説明したマスク生成部5、検出部12及び実施の形態3で説明した番号管理部23は、プログラムで実現してもよいし、回路で実現してもよい。
 マスク生成部5、検出部12及び番号管理部23をプログラムで実現する場合は、マスク生成部5、検出部12及び番号管理部23の機能を実現するプログラムが例えばROM15に記憶されている。
 そして、このプログラムが、RAM16にロードされ、プロセッサ2に読み込まれ、プロセッサ2によって実行される。
 また、マスク生成部5、検出部12及び番号管理部23を回路で実現する場合は、マスク生成部5、検出部12及び番号管理部23に対応する回路がプロセッサ2に配設され、各部に対応する回路が他の回路(機能要素モジュール3、故障レジスタ13、マスクレジスタ6、構成レジスタ7、故障要素カウンタ14)と配線接続されている。
 1 マイクロコンピュータ、2 プロセッサ、3 機能要素モジュール、4 機能要素、5 マスク生成部、6 マスクレジスタ、7 構成レジスタ、8 プロセッサのバス入力、9 プロセッサのバス出力、10 比較多数決回路、11 バス、12 検出部、13 故障レジスタ、14 故障要素カウンタ、15 ROM、16 RAM、17 IOデバイス、18 最大値計算器、19 プロセッサのバス出力、20 チェックされたプロセッサのバス出力、21 正常要素カウンタ、22 プログラム、23 番号管理部、101 マスクレジスタ出力、102 マスクレジスタ設定値、103 検出部出力、104 検出部入力、105 検出結果、106 故障レジスタ出力、107 故障要素数、108 故障要素数の最大値、109 正常要素数、110 論理番号、111 物理番号、200 プロセッサシステム。

Claims (6)

  1.  それぞれに複数の機能要素が実装されている複数のプロセッサで構成されるプロセッサシステムに含まれるプロセッサであって、
     前記プロセッサに実装されている前記複数の機能要素を検査して、前記複数の機能要素のうち故障が発生している機能要素を検出する検出部と、
     各プロセッサで検出された故障が発生している機能要素の個数のうちの最大値をマスク数として通知するマスク数通知を受信し、前記検出部により検出された機能要素を含む、前記マスク数分の機能要素をマスクするマスク生成部とを有するプロセッサ。
  2.  前記プロセッサは、更に、
     前記検出部により検出された故障が発生している機能要素の個数をカウントし、
     各プロセッサから各プロセッサで検出された故障が発生している機能要素の個数の通知を受け、各プロセッサで検出された故障が発生している機能要素の個数のうちの最大値を判別し、前記マスク数通知を生成する最大値計算器に、カウントした機能要素の個数を通知する故障要素カウンタを有し、
     前記マスク生成部は、
     前記最大値計算器から、前記マスク数通知を受信する請求項1に記載のプロセッサ。
  3.  前記プロセッサは、
     前記プロセッサシステムに含まれる他のプロセッサとともにロックステップを構成する請求項2に記載のプロセッサ。
  4.  前記プロセッサは、更に、
     前記マスク生成部によりマスクされていない機能要素の個数をカウントする正常要素カウンタを有する請求項1に記載のプロセッサ。
  5.  前記複数の機能要素には物理番号が設定されており、
     前記プロセッサは、更に、
     前記マスク生成部によりマスクされていない機能要素の物理番号に論理番号を対応付け、論理番号と物理番号との間の変換を行う番号管理部を有する請求項1に記載のプロセッサ。
  6.  請求項1に記載のプロセッサシステムに含まれる複数のプロセッサを、ロックステップを構成する複数のプロセッサとして含むマイクロコンピュータ。
PCT/JP2015/054132 2015-02-16 2015-02-16 プロセッサ及びマイクロコンピュータ WO2016132432A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/054132 WO2016132432A1 (ja) 2015-02-16 2015-02-16 プロセッサ及びマイクロコンピュータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/054132 WO2016132432A1 (ja) 2015-02-16 2015-02-16 プロセッサ及びマイクロコンピュータ

Publications (1)

Publication Number Publication Date
WO2016132432A1 true WO2016132432A1 (ja) 2016-08-25

Family

ID=56692052

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/054132 WO2016132432A1 (ja) 2015-02-16 2015-02-16 プロセッサ及びマイクロコンピュータ

Country Status (1)

Country Link
WO (1) WO2016132432A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816533A (ja) * 1994-06-30 1996-01-19 Hitachi Ltd フォールトトレラントコンピュータ及びそのプロセッサモジュールとオンライン拡張方法
JP2004046599A (ja) * 2002-07-12 2004-02-12 Nec Corp フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム
JP2009003537A (ja) * 2007-06-19 2009-01-08 Mitsubishi Electric Corp 計算機
JP2010061419A (ja) * 2008-09-04 2010-03-18 Hitachi Ltd 制御装置
JP2011186606A (ja) * 2010-03-05 2011-09-22 Nec Corp コンピュータシステム、およびそのチェックポイントリスタート方法
JP2013214210A (ja) * 2012-04-02 2013-10-17 Nec Corp フォールトトレラントシステム、cpuの動作周波数変更方法、及びプログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816533A (ja) * 1994-06-30 1996-01-19 Hitachi Ltd フォールトトレラントコンピュータ及びそのプロセッサモジュールとオンライン拡張方法
JP2004046599A (ja) * 2002-07-12 2004-02-12 Nec Corp フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム
JP2009003537A (ja) * 2007-06-19 2009-01-08 Mitsubishi Electric Corp 計算機
JP2010061419A (ja) * 2008-09-04 2010-03-18 Hitachi Ltd 制御装置
JP2011186606A (ja) * 2010-03-05 2011-09-22 Nec Corp コンピュータシステム、およびそのチェックポイントリスタート方法
JP2013214210A (ja) * 2012-04-02 2013-10-17 Nec Corp フォールトトレラントシステム、cpuの動作周波数変更方法、及びプログラム

Similar Documents

Publication Publication Date Title
US8589737B2 (en) Memory system with redundant data storage and error correction
JP6599054B2 (ja) 異常判定装置、異常判定方法及び異常判定プログラム
US10761925B2 (en) Multi-channel network-on-a-chip
EP1890239B1 (en) Memory contoller and method of controlling memory
US9535784B2 (en) Self monitoring and self repairing ECC
JP6050083B2 (ja) 半導体装置
US8650440B2 (en) Processor based system having ECC based check and access validation information means
TW201743202A (zh) 於鎖步雙核或三重模組冗餘(tmr)系統中用於假通偵測之系統及方法
JP2015115727A (ja) プログラマブルロジックデバイス
JP7490334B2 (ja) アラーム信号を処理する方法および装置
US9678870B2 (en) Diagnostic apparatus, control unit, integrated circuit, vehicle and method of recording diagnostic data
JP2009129301A (ja) 自己診断回路及び自己診断方法
WO2016132432A1 (ja) プロセッサ及びマイクロコンピュータ
CN111880961A (zh) 用于透明寄存器数据错误检测和纠正的系统和方法
CN106716387B (zh) 存储器诊断电路
WO2014115289A1 (ja) プログラマブルデバイス及び電子システム装置
JP6710142B2 (ja) 制御システム
JP4357373B2 (ja) 高信頼性制御装置
WO2011099233A1 (ja) 多重化システム
US11132483B2 (en) Method and arrangement for forming an electronic circuit
JP6670703B2 (ja) Ic内蔵向け機能信頼性確認用回路
FI72396C (fi) Foerfarande foer aostadkommande av ett elektroniskt system som tolererar fel samt motsvarande system.
WO2016042751A1 (ja) メモリ診断回路
WO2022240396A1 (en) Method of generating and monitoring a digital signature
CN115543681A (zh) 半导体装置和错误检测方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15882537

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

NENP Non-entry into the national phase

Ref country code: JP

122 Ep: pct application non-entry in european phase

Ref document number: 15882537

Country of ref document: EP

Kind code of ref document: A1