JPWO2015011792A1 - Field programmable gate array and control device - Google Patents

Field programmable gate array and control device Download PDF

Info

Publication number
JPWO2015011792A1
JPWO2015011792A1 JP2015528054A JP2015528054A JPWO2015011792A1 JP WO2015011792 A1 JPWO2015011792 A1 JP WO2015011792A1 JP 2015528054 A JP2015528054 A JP 2015528054A JP 2015528054 A JP2015528054 A JP 2015528054A JP WO2015011792 A1 JPWO2015011792 A1 JP WO2015011792A1
Authority
JP
Japan
Prior art keywords
processor
memory
error
gate array
internal memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015528054A
Other languages
Japanese (ja)
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2015011792A1 publication Critical patent/JPWO2015011792A1/en
Pending legal-status Critical Current

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/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • 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
    • G06F11/183Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
    • G06F11/184Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components where the redundant components implement processing functionality

Abstract

本発明は、プロセッサを多重化するFPGAにおいて、システムの処理の中断を抑えつつ、エラーを起こしたプロセッサの復帰、及び、稼働中の別のプロセッサの同期処理を実行して、可用性が高いシステムを提供することを目的とする。本発明に係るフィールドプログラマブルゲートアレイは、その一例を挙げるならば、それぞれが内部メモリを備えるとともに、同一の内容の処理をそれぞれが実行して出力する複数のプロセッサと、前記複数のプロセッサの出力から少なくとも1つのプロセッサのエラーを検出し、いずれのプロセッサでエラーが発生したかを示す判定信号を出力するメモリ更新回路と、前記判定信号を受信すると、エラーが発生したプロセッサの内部メモリを選択し、当該内部メモリへ他の正常なプロセッサの内部メモリの内容を書き戻してエラーから復帰させるメモリ書き戻し回路と、を備えることを特徴とする。The present invention provides a highly-available system in an FPGA that multiplexes processors by executing restoration of an error processor and synchronization processing of another operating processor while suppressing interruption of system processing. The purpose is to provide. For example, the field programmable gate array according to the present invention includes an internal memory, a plurality of processors each executing a process having the same contents, and an output from the plurality of processors. A memory update circuit that detects an error of at least one processor and outputs a determination signal indicating in which processor the error has occurred; and when receiving the determination signal, selects an internal memory of the processor in which the error has occurred; And a memory write-back circuit that writes back the contents of the internal memory of another normal processor to the internal memory and recovers from an error.

Description

本発明は、フィールドプログラマブルゲートアレイおよび制御装置に関する。   The present invention relates to a field programmable gate array and a control device.

近年のフィールドプログラマブルゲートアレイ(Field Programmable Gate Array、以下FPGA)で主に使われている方式として、はSRAM(Static Random Access Memory)タイプのものがある。   As a system mainly used in a recent field programmable gate array (hereinafter referred to as FPGA), there is an SRAM (Static Random Access Memory) type.

SRAMタイプFPGAは、電源が入ると、SRAMで構成されたLUT(Look Up Table)によって任意の論理回路を実現できるという特徴がある。   The SRAM type FPGA has a feature that, when the power is turned on, an arbitrary logic circuit can be realized by an LUT (Look Up Table) composed of SRAM.

しかしこの特性のために、外部からのノイズや空中から放射された宇宙線などの影響でSRAMのビットが一時的に変化するソフトエラーと呼ばれる一時故障が発生すると、所望の回路とは異なる構成となってしまい、結果的にシステムの誤動作を引き起こしたり、装置が止まったりする場合があり得る。   However, because of this characteristic, when a temporary failure called a soft error in which the SRAM bit temporarily changes due to external noise or cosmic rays radiated from the air, the configuration differs from the desired circuit. As a result, the system may malfunction or the device may stop.

このような背景から、SRAM型FPGAにプロセッサを内蔵する場合の可用性を高めるための技術が提案されている。   Against this background, a technique for increasing the availability when a processor is built in an SRAM type FPGA has been proposed.

例えば、非特許文献1には、SRAM型FPGAにおいて、FPGA内部にプロセッサを三重化し、プロセッサの出力を多数決して共有メモリにライトする構成とし、いずれか一つのプロセッサで故障が発生しても、FPGAは正しい値を出力するシステムの例が記載されている。
For example, in Non-Patent Document 1, in an SRAM type FPGA, the processor is tripled inside the FPGA and a large number of processor outputs are written to the shared memory. Even if a failure occurs in any one of the processors, the FPGA An example of a system that outputs correct values is described.

電子情報通信学会論文誌 D Vol.J92−D No.12 pp.2105−2113IEICE Transactions D Vol. J92-D No. 12 pp. 2105-2113

プラント、鉄道、航空機など、人命や環境の安全確保のために非常に高い信頼性が求められる産業制御システムでは、万が一、システム内で故障や異常が発生しても、できるだけシステムを停止させないように可用性を高めることが求められる。そのため、このようなシステムの内部で制御をする制御装置においては、信頼性や可用性を高めることが要求される。   In industrial control systems such as plants, railways, and aircraft that require extremely high reliability to ensure the safety of human lives and the environment, even if a failure or abnormality occurs in the system, the system should not be stopped as much as possible. Increased availability is required. Therefore, in a control device that performs control inside such a system, it is required to improve reliability and availability.

これまで、このような制御装置には、主にASIC(Application Specific Integrated Circuit)が使用されてきた。   Until now, ASIC (Application Specific Integrated Circuit) has been mainly used for such a control apparatus.

しかし、近年、ASICは半導体プロセスの微細化に伴う製造費の高騰により、製造数が少ない産業制御システムのために新規に開発することが困難になってきている。   However, in recent years, it has become difficult to newly develop ASICs for industrial control systems with a small number of manufacturing due to soaring manufacturing costs accompanying miniaturization of semiconductor processes.

一方、1980年代に実用化されたFPGAは、微細化により集積度と性能が高まり、価格もこなれてきたため、製造数の少ない産業制御システムに使う試みも始まってきている。そして、ASICに比べてソフトエラーが起こりやすいと言われているSRAM型FPGAを、産業用途向けに使用するためには、FPGA内の回路で故障を検出するとともに、故障を検出した場合にもシステムが止まらないような可用性が要求される。   On the other hand, FPGAs put into practical use in the 1980's have been integrated and performance increased by miniaturization, and the price has been increased, so attempts to use them in industrial control systems with a small number of manufacturing have begun. In order to use an SRAM type FPGA, which is said to be more susceptible to soft errors than ASICs, for industrial use, it is possible to detect a failure in a circuit in the FPGA and also to detect a failure. Availability is required.

ここで非特許文献1の技術では、ソフトエラーを起こしたプロセッサを復帰させるために他の正常なプロセッサと内部状態の同期を取る復帰処理を全プロセッサが行う必要があり、この復帰処理の間はシステムのメイン処理が停止するという問題があった。   Here, in the technique of Non-Patent Document 1, in order to restore a processor that has caused a soft error, it is necessary for all the processors to perform a restoration process that synchronizes the internal state with another normal processor. There was a problem that the main processing of the system stopped.

本発明は、プロセッサを多重化するFPGAにおいて、システムの処理の中断を抑えつつ、エラーを起こしたプロセッサの復帰、及び、稼働中の別のプロセッサの同期処理を実行して、可用性が高いシステムを提供することを目的とする。   The present invention provides a highly-available system in an FPGA that multiplexes processors by executing restoration of an error processor and synchronization processing of another operating processor while suppressing interruption of system processing. The purpose is to provide.

上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。   In order to solve the above problems, for example, the configuration described in the claims is adopted.

本題は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、それぞれが内部メモリを備えるとともに、同一の内容の処理をそれぞれが実行して出力する複数のプロセッサと、前記複数のプロセッサの出力から少なくとも1つのプロセッサのエラーを検出し、いずれのプロセッサでエラーが発生したかを示す判定信号を出力するメモリ更新回路と、 前記判定信号を受信すると、エラーが発生したプロセッサの内部メモリを選択し、当該内部メモリへ他の正常なプロセッサの内部メモリの内容を書き戻してエラーから復帰させるメモリ書き戻し回路と、を備えることを特徴とする。   The subject includes a plurality of means for solving the above-mentioned problem. To give an example, each of the subjects includes an internal memory, and a plurality of processors each executing and outputting a process having the same contents, and the plurality A memory update circuit that detects an error of at least one processor from an output of the processor and outputs a determination signal indicating which processor has the error; and an internal of the processor in which the error occurs when the determination signal is received A memory write-back circuit that selects a memory and writes back the contents of the internal memory of another normal processor to the internal memory to recover from an error.

本発明によれば、FPGAを用いるシステムに対し、FPGA内部にプロセッサを多重化した場合に、システムのメイン処理の中断を低減しつつ、故障したプロセッサを復帰して同期させることが可能になる。   According to the present invention, when a processor is multiplexed in a system using an FPGA, it is possible to recover and synchronize a failed processor while reducing interruption of the main processing of the system.

上記した以外の課題、構成および効果は、以下の実施形態の説明により明らかにされる。   Problems, configurations, and effects other than those described above will become apparent from the following description of embodiments.

実施例1における、複数のプロセッサを内蔵するFPGAの例である。2 is an example of an FPGA including a plurality of processors according to the first exemplary embodiment. 図1のFPGAから出力される故障プロセッサ表示信号と復帰中プロセッサ表示信号の値の例を示す図である。It is a figure which shows the example of the value of the failure processor display signal output from FPGA of FIG. 1, and a returning processor display signal. 実施例1における、複数のプロセッサを内蔵するFPGAに、プロセッサの内部メモリを復帰させるための回路を実装した例である。This is an example in which a circuit for restoring the internal memory of the processor is mounted on the FPGA incorporating the plurality of processors in the first embodiment. 図3に示したメモリ更新回路の一例を示す図である。FIG. 4 is a diagram illustrating an example of a memory update circuit illustrated in FIG. 3. 図3に示した復帰用メモリの一例を示す図である。FIG. 4 is a diagram illustrating an example of a return memory illustrated in FIG. 3. 図3に示したメモリ書き戻し回路の一例を示す図である。FIG. 4 is a diagram illustrating an example of a memory write-back circuit illustrated in FIG. 3. 実施例1のFPGAにおいて、故障したプロセッサの内部メモリの内容を、故障していないプロセッサよりも高速に書き戻す場合のタイミングチャートの一例である。6 is an example of a timing chart in the case where the contents of the internal memory of a failed processor are written back at a higher speed than in a non-failed processor in the FPGA according to the first embodiment. 実施例2における、故障したプロセッサの内部メモリの復帰中に更新された部分を書き戻すための回路を実装した例である。FIG. 10 is an example in which a circuit for writing back an updated part during restoration of an internal memory of a failed processor in the second embodiment is mounted. 図8に示した復帰中差分メモリの一例を示す図である。It is a figure which shows an example of the difference memory during a return shown in FIG. 図8に示した差分更新回路の一例を示す図である。It is a figure which shows an example of the difference update circuit shown in FIG. 図8に示したメモリ書き戻し回路の一例を示す図である。FIG. 9 is a diagram illustrating an example of a memory write-back circuit illustrated in FIG. 8. プロセッサの内部メモリの情報が復帰する様子を示した一例である。It is an example which showed a mode that the information of the internal memory of a processor returned. 複数のプロセッサが動作中に一つのプロセッサに一時的な故障が発生し、復帰する場合の処理チャートの一例を示した図である。It is the figure which showed an example of the processing chart in case a temporary failure generate | occur | produces in one processor during a several processor operation | movement, and it resets. 実施例3における、部分的再構成可能なFPGAにおいて故障したプロセッサをFPGA内の別の領域に割り当てる場合の一例を示す図である。FIG. 10 is a diagram illustrating an example of assigning a failed processor in a partially reconfigurable FPGA to another area in the FPGA according to the third embodiment. 複数のプロセッサが動作中に一つのプロセッサに永久故障が発生し、別の領域にプロセッサを割り当てて復帰する場合の処理チャートの一例を示した図である。It is the figure which showed an example of the processing chart in case a permanent failure generate | occur | produces in one processor during a several processor operation | movement, and a processor is allocated to another area | region and it returns. 実施例4における、本発明のFPGAを搭載した制御装置およびその制御装置で変電設備を制御する産業制御システムの一例である。In Example 4, it is an example of the industrial control system which controls a substation installation with the control apparatus which mounts FPGA of this invention, and its control apparatus.

以下、実施例を、図面を用いて説明する。   Hereinafter, examples will be described with reference to the drawings.

図1は、三つのプロセッサを内蔵するFPGAの例を示した図である。   FIG. 1 is a diagram illustrating an example of an FPGA incorporating three processors.

FPGA(1)に内蔵されるプロセッサA(2)、プロセッサB(3)、プロセッサC(4)は、同一の論理回路で実装されており、同一の処理を行い、同一の値を出力する。   The processor A (2), the processor B (3), and the processor C (4) built in the FPGA (1) are mounted with the same logic circuit, perform the same processing, and output the same value.

多数決回路10は、プロセッサA(2)、プロセッサB(3)、プロセッサC(4)の出力を多数決して外部に対して制御出力信号101として出力する。いずれかのプロセッサで故障が発生して出力が他の二つのプロセッサと異なると、その異なった値は多数決により出力されない。   The majority circuit 10 outputs a large number of outputs of the processor A (2), the processor B (3), and the processor C (4) as a control output signal 101 to the outside. If a failure occurs in one of the processors and the output differs from the other two processors, the different values are not output by majority vote.

また、多数決回路10は故障プロセッサ表示信号102および復帰中プロセッサ表示信号103を出力する。   The majority circuit 10 outputs a failed processor display signal 102 and a returning processor display signal 103.

図2に、故障プロセッサ表示信号102と復帰中プロセッサ表示信号103の信号値の例を示す。   FIG. 2 shows examples of signal values of the failed processor display signal 102 and the returning processor display signal 103.

図2(a)は、故障プロセッサ表示信号102の表示信号を示す図である。多数決回路10は、プロセッサA(2)、プロセッサB(3)、プロセッサC(4)の出力を多数決処理し、いずれかのプロセッサの出力が他の複数のプロセッサの出力と異なっていた場合に、異なる出力を出したプロセッサを故障と判断する。ここでは、故障プロセッサ表示信号102が、該当のプロセッサが故障していない場合は0を出力し、該当のプロセッサが故障していたら1を出力する3ビットの故障プロセッサ表示信号102の出力例を示したものである。   FIG. 2A is a diagram illustrating a display signal of the failed processor display signal 102. The majority circuit 10 performs majority processing on the outputs of the processor A (2), the processor B (3), and the processor C (4), and when the output of one of the processors is different from the outputs of the other processors, A processor that outputs a different output is determined to be faulty. Here, an example of output of the 3-bit failed processor display signal 102 is shown in which the failed processor display signal 102 outputs 0 if the corresponding processor has not failed and outputs 1 if the corresponding processor has failed. It is a thing.

この図2(a)では、プロセッサA(2)が故障していたら故障プロセッサ表示信号102のビット2が1になり、プロセッサB(3)が故障していたら故障プロセッサ表示信号102のビット1が1になり、プロセッサC(3)が故障していたら故障プロセッサ表示信号102のビット0が1になることを表している。   In FIG. 2A, bit 2 of the failed processor display signal 102 is 1 if the processor A (2) has failed, and bit 1 of the failed processor display signal 102 is set if the processor B (3) has failed. 1 indicates that if the processor C (3) has failed, bit 0 of the failed processor display signal 102 becomes 1.

また図2(b)は、復帰中プロセッサ表示信号103の表示信号を示す図である。多数決回路10は、プロセッサA(2)、プロセッサB(3)、プロセッサC(4)のいずれかのプロセッサを故障と判断すると、故障したプロセッサが復帰中か否かを判断して復帰中プロセッサ表示信号103を出力する。ここでは、復帰中プロセッサ表示信号103が、該当のプロセッサが復帰中でない場合は0を出力し、該当のプロセッサが復帰中である場合は1を出力する3ビットの復帰中プロセッサ表示信号103の出力例を示したものである。   FIG. 2B is a diagram showing a display signal of the returning processor display signal 103. When the majority circuit 10 determines that any one of the processors A (2), B (3), and C (4) has failed, the majority circuit 10 determines whether or not the failed processor is returning and displays the returning processor. The signal 103 is output. Here, the returning processor display signal 103 outputs 0 when the corresponding processor is not recovering, and outputs 1 when the corresponding processor is recovering. Output of the 3-bit returning processor display signal 103 An example is shown.

この図2(b)では、プロセッサA(2)が復帰中であれば復帰中プロセッサ表示信号103のビット2が1になり、プロセッサB(3)が復帰中であれば復帰中プロセッサ表示信号103のビット1が1になり、プロセッサC(4)が復帰中であれば復帰中プロセッサ表示信号103のビット0が1になることを表している。   In FIG. 2B, bit 2 of the returning processor display signal 103 is 1 if the processor A (2) is returning, and the returning processor display signal 103 if the processor B (3) is returning. If bit 1 is 1 and the processor C (4) is recovering, it indicates that bit 0 of the returning processor display signal 103 is 1.

このように、本発明のFPGAでは、内部にプロセッサを多重化して可用性を高める構成において、多数決回路によって故障のプロセッサを検出し、故障中であることを示す信号と復帰中であることを示す信号を外部に出力し、故障したプロセッサが復帰中にも他のプロセッサが動作を継続することを特徴とする。   As described above, in the FPGA according to the present invention, in the configuration in which processors are multiplexed to increase availability, a processor that has failed is detected by a majority circuit, and a signal indicating that a failure is occurring and a signal indicating that a failure is occurring are detected. Is output to the outside, and other processors continue to operate even when the failed processor recovers.

これらのことにより、FPGA内部のプロセッサが故障していることと復帰中であることを外部から確認することができ、故障と復帰を繰り返すような場合は、装置を安全に停止して速やかに交換するなどの目安とすることが可能になる。   With these things, it is possible to confirm from the outside that the processor inside the FPGA has failed and is recovering. If the failure and recovery are repeated, the device can be safely stopped and replaced quickly. It becomes possible to use it as a guideline.

また実施例1では、FPGA内にプロセッサが三つ実装される例を示したが、三つ以上を実装する構成としても良い。   In the first embodiment, an example is shown in which three processors are mounted in the FPGA. However, a configuration in which three or more processors are mounted may be employed.

次に、本発明のプロセッサを内部に構成するFPGAにおいて、故障したプロセッサを復帰させるシステムの一例をより具体的に説明する。   Next, an example of a system for recovering a failed processor in an FPGA that internally includes the processor of the present invention will be described more specifically.

図3は、実施例1における、複数のプロセッサを内蔵するFPGAに、プロセッサの内部メモリを復帰させるための回路を実装した例である。図3に示すFPGA(1)はSRAM型で、FPGAが動作中にFPGA内の一部を書き換えることができる、部分的再構成が可能なものである。   FIG. 3 is an example in which a circuit for restoring the internal memory of the processor is mounted on the FPGA incorporating the plurality of processors in the first embodiment. The FPGA (1) shown in FIG. 3 is an SRAM type, and can be partially reconfigured so that a part of the FPGA can be rewritten while the FPGA is operating.

FPGA(1)には、内部メモリA(6)を持つプロセッサA(2)がある。このプロセッサA(2)と全く同じ構成のプロセッサB(3)とプロセッサC(4)があり、この三つのプロセッサで三重系を構成する。   The FPGA (1) includes a processor A (2) having an internal memory A (6). There are a processor B (3) and a processor C (4) having the same configuration as the processor A (2), and these three processors constitute a triple system.

各プロセッサはそれぞれが保持する内部メモリからのリード、内部メモリへのライトを行って処理をする。   Each processor performs processing by reading from and writing to the internal memory held by each processor.

このとき、プロセッサA(2)のメモリライト信号A(111)は、メモリ更新回路12へ入力される。同様に、プロセッサB(3)のメモリライト信号B(112)と、プロセッサC(4)のメモリライト信号C(113)もメモリ更新回路12へ入力される。   At this time, the memory write signal A (111) of the processor A (2) is input to the memory update circuit 12. Similarly, the memory write signal B (112) of the processor B (3) and the memory write signal C (113) of the processor C (4) are also input to the memory update circuit 12.

このメモリ更新回路12の具体的な例を図4に示す。   A specific example of the memory update circuit 12 is shown in FIG.

図4は、メモリ更新回路の一例を示す図である。図4に示すメモリ更新回路12では、プロセッサA(2)からのメモリライト信号A(111)、プロセッサB(3)からのメモリライト信号B(112)、プロセッサC(4)からのメモリライト信号C(113)を、クロック1(201)で動作する多数決回路14に入力し、いずれかのプロセッサからのメモリライト信号に故障などで誤りがあれば多数決判定信号106として出力する。この多数決判定信号106の値により、故障したプロセッサがどれか分かる。   FIG. 4 is a diagram illustrating an example of the memory update circuit. In the memory update circuit 12 shown in FIG. 4, the memory write signal A (111) from the processor A (2), the memory write signal B (112) from the processor B (3), and the memory write signal from the processor C (4). C (113) is input to the majority circuit 14 operating with clock 1 (201), and if there is an error in the memory write signal from any processor due to a failure or the like, it is output as the majority decision signal 106. The value of the majority decision signal 106 indicates which processor has failed.

各メモリライト信号111、112、113の多数決により、ライト制御信号104が出力される。   The write control signal 104 is output by the majority of the memory write signals 111, 112, and 113.

また、多数決判定信号106の値とライト制御信号104の値からメモリ不一致判定回路31を介して出力されるリード制御信号105は、いずれのプロセッサが故障したかを示すプロセッサの識別情報とその内部メモリのアドレス情報を示す。   The read control signal 105 output from the value of the majority decision signal 106 and the value of the write control signal 104 via the memory mismatch determination circuit 31 includes processor identification information indicating which processor has failed and its internal memory. Indicates address information.

図3において、メモリ更新回路12から出力されるライト制御信号104とリード制御信号105は、復帰用メモリ11に入力される。尚、図1と同様に多数決回路14からは、制御出力信号101、故障プロセッサ表示信号102、および、復帰中プロセッサ表示信号103が出力される。   In FIG. 3, the write control signal 104 and the read control signal 105 output from the memory update circuit 12 are input to the return memory 11. As in FIG. 1, the majority circuit 14 outputs a control output signal 101, a failed processor display signal 102, and a returning processor display signal 103.

図5は、復帰用メモリ11の具体的な例を示す図である。 図5の復帰用メモリにあるライト指示部16は、ライト制御信号104を入力とし、クロック1(201)で動作し、メモリ部分であるRAM(15)に対してライト指示信号116を出力する。   FIG. 5 is a diagram illustrating a specific example of the return memory 11. The write instruction unit 16 in the return memory of FIG. 5 receives the write control signal 104, operates with the clock 1 (201), and outputs the write instruction signal 116 to the RAM (15) as the memory portion.

復帰用メモリ11のRAM(15)は、FPGAに実装されたプロセッサに故障が発生せず通常動作をしているときに、プロセッサの内部メモリと同じ内容をライト指示部16によってライトされている。   The RAM (15) of the return memory 11 is written by the write instruction unit 16 with the same contents as the internal memory of the processor when the processor mounted on the FPGA is operating normally without a failure.

いずれかのプロセッサで故障が発生した場合、図4の多数決回路14から出力される多数決判定信号106をもとに、リード制御信号105が通常動作時とは異なる値になる。すなわち、故障が発生していない時にはリード制御信号105は出力されていないが、いずれかのプロセッサで故障が発生するとメモリ不一致判定回路31から、いずれのプロセッサが故障したか、および、どの内部メモリのアドレスで故障を検出したかをリード制御信号105として受信する。 図5のリード指示部17は、リード制御信号105を入力とし、クロック1(201)よりも高速な周波数のクロック2(202)で動作し、RAM(15)に対してリード指示信号117を出力する。   When a failure occurs in any of the processors, the read control signal 105 has a value different from that during normal operation based on the majority decision signal 106 output from the majority circuit 14 shown in FIG. That is, when no failure occurs, the read control signal 105 is not output. However, when a failure occurs in any of the processors, the memory mismatch determination circuit 31 indicates which processor has failed and which internal memory. Whether a failure is detected by the address is received as a read control signal 105. The read instruction unit 17 in FIG. 5 receives the read control signal 105, operates with a clock 2 (202) having a faster frequency than the clock 1 (201), and outputs the read instruction signal 117 to the RAM (15). To do.

リード指示信号117を受け取ったRAM(15)は、要求されたアドレスとデータの情報をリードデータ118として復帰用ライト制御部18に出力する。復帰用ライト制御部18もクロック1(201)よりも高速なクロック2(202)で動作し、復帰用ライト制御信号115を出力する。   Receiving the read instruction signal 117, the RAM (15) outputs the requested address and data information as read data 118 to the return write control unit 18. The return write control unit 18 also operates at a clock 2 (202) faster than the clock 1 (201), and outputs a return write control signal 115.

このとき、復帰用ライト制御信号115のバス幅は、ライト制御信号104のバス幅よりも広い。   At this time, the bus width of the return write control signal 115 is wider than the bus width of the write control signal 104.

図3において、復帰用メモリ11から出力された復帰用ライト制御信号115と、メモリ更新回路12から出力された多数決判定信号106は、メモリ書き戻し回路13に入力される。   In FIG. 3, the return write control signal 115 output from the return memory 11 and the majority decision signal 106 output from the memory update circuit 12 are input to the memory write back circuit 13.

尚、本実施例では、リード指示部17がRAM(15)へ読み出すアドレスを要求するよう説明したが、具体的なアドレスは要求せず、RAM(15)の最初のアドレスから順々に読み出させることもできる。   In the present embodiment, the read instruction unit 17 has been described as requesting an address to be read out to the RAM (15). However, a specific address is not requested, and reading is sequentially performed from the first address of the RAM (15). It can also be made.

図6は、メモリ書き戻し回路13の具体的な例を示す図である。メモリ書き戻し回路13内には、クロック1(201)よりも高速なクロック2(202)で動作するデコーダ19があり、このデコーダ19は、多数決判定信号106と、復帰用ライト制御信号115の中のライトコマンド121の値を元に、故障したプロセッサの内部メモリの書き戻しが必要なプロセッサのライトタイミングを示すライトコマンドを有効にする。プロセッサA(2)が故障した場合はプロセッサA(2)のライトコマンドA(124)を有効にし、プロセッサB(3)が故障した場合はプロセッサB(3)のライトコマンドB(125)を有効にし、プロセッサC(4)が故障した場合はプロセッサC(4)のライトコマンドC(126)を有効にする。   FIG. 6 is a diagram showing a specific example of the memory write-back circuit 13. In the memory write-back circuit 13, there is a decoder 19 that operates at a clock 2 (202) that is faster than the clock 1 (201). The decoder 19 includes a majority decision signal 106 and a return write control signal 115. Based on the value of the write command 121, the write command indicating the write timing of the processor that needs to be written back to the internal memory of the failed processor is validated. When the processor A (2) fails, the write command A (124) of the processor A (2) is enabled, and when the processor B (3) fails, the write command B (125) of the processor B (3) is enabled. If the processor C (4) fails, the write command C (126) of the processor C (4) is validated.

各ライトコマンドに書き戻すデータであるライトデータ122と、データの書き戻し先の内部メモリのアドレスであるライトアドレス123をまとめたものを、各プロセッサに対して書き戻し制御信号として出力し、故障したプロセッサの内部メモリを選択して書き戻す。プロセッサA(2)の書き戻し制御信号A(107)、プロセッサB(3)の書き戻し制御信号B(108)、プロセッサC(4)の書き戻し制御信号C(109)が各プロセッサに入力される。   The write data 122 that is the data to be written back to each write command and the write address 123 that is the address of the internal memory to which the data is written back are output to each processor as a write-back control signal. Selects processor internal memory and writes back. The write back control signal A (107) of the processor A (2), the write back control signal B (108) of the processor B (3), and the write back control signal C (109) of the processor C (4) are input to each processor. The

図7に、図3から図6に示したFPGAにおいて、復帰用メモリ11と故障したプロセッサの内部メモリがライトされるタイミングチャートを示す。   FIG. 7 shows a timing chart in which the recovery memory 11 and the internal memory of the failed processor are written in the FPGA shown in FIGS.

図7の上部に示したタイミングチャートは、復帰用メモリ11のライトタイミングを示した例である。   The timing chart shown at the top of FIG. 7 is an example showing the write timing of the return memory 11.

復帰用メモリはクロック1(201)に同期して動作し、1つのアドレスフェーズに対して1つのデータフェーズが対応する。例えばサイクルC1でのアドレスA1に対して復帰用メモリ11にライトされるデータD1はサイクルC2でライトが行われる。   The return memory operates in synchronization with clock 1 (201), and one data phase corresponds to one address phase. For example, the data D1 written to the return memory 11 with respect to the address A1 in the cycle C1 is written in the cycle C2.

図7の下部に示したタイミングチャートは、あるプロセッサが故障して復帰中にプロセッサの内部メモリがライトされるタイミングを示したものである。   The timing chart shown at the bottom of FIG. 7 shows the timing at which the internal memory of the processor is written while a certain processor fails and recovers.

ここでは、クロック2(202)はクロック1(201)の2倍の周波数とし、復帰用ライト制御信号115のバス幅が、ライト制御信号104のバス幅の2倍であるものとしている。   Here, the clock 2 (202) has a frequency twice that of the clock 1 (201), and the bus width of the return write control signal 115 is twice the bus width of the write control signal 104.

故障したプロセッサが復帰中、内部メモリはクロック2(202)に同期してライトされ、バス幅が2倍であるため、サイクルC11でのアドレスA1に対して、連続する4倍のデータD1、D2、D3、D4を内部メモリにライトすることができ、サイクルC13でライトが完了する。すなわち、C11で書き込みの始点アドレスA1が指定されると、クロック2(202)が周波数2倍、および、バス幅2倍であることによって計4倍のデータD1、D2、D3、D4がC12、C13でライトされる。次いで、C14では、A1からライトされた4つ分アドレスを進めてA5を指定し、D15、D16でD5、D6、D7、D8がライトされる。 このように本実施例では、通常動作しているプロセッサの内部メモリへのライトデータを復帰用データにライトしつつ、故障したプロセッサが復帰用メモリから正しいメモリデータを高速に上書きすることで、故障したプロセッサを復帰させている間も正常なプロセッサは動作を続けることができ、FPGA内プロセッサが一部故障してもメイン処理を止めずにすむ可用性の高いシステムの実現が可能になる。   While the failed processor is recovering, the internal memory is written in synchronization with the clock 2 (202) and the bus width is doubled. Therefore, the data D1 and D2 that are four times continuous with respect to the address A1 in the cycle C11. , D3, D4 can be written to the internal memory, and the writing is completed in cycle C13. That is, when the write start point address A1 is designated in C11, the clock 2 (202) is doubled in frequency and doubled in bus width, so that data D1, D2, D3, and D4 that are four times in total are C12, Written at C13. Next, in C14, the address written four times from A1 is advanced to specify A5, and D5, D6, D7, and D8 are written in D15 and D16. As described above, in this embodiment, while the write data to the internal memory of the processor that is operating normally is written to the return data, the failed processor overwrites the correct memory data from the return memory at high speed, thereby A normal processor can continue to operate while the processor is restored, and it is possible to realize a highly available system that does not stop the main process even if a processor in the FPGA partially fails.

尚、本実施例では、FPGAを用いて説明をしたが、本実施例に記載の特徴を¥は、FPGAではないプロセッサを多重化した制御装置に適用することもできる。   In the present embodiment, the description has been made using the FPGA. However, the feature described in the present embodiment can be applied to a control device in which processors other than the FPGA are multiplexed.

次に、本発明のFPGAにおいて、故障したプロセッサの内部メモリの更新部分のみを書き戻すことで、システム稼働を続けながら故障したプロセッサを高速に復帰させる場合の例を示す。   Next, in the FPGA of the present invention, an example in which only the updated part of the internal memory of the failed processor is rewritten to restore the failed processor at high speed while continuing the system operation.

図8は、実施例2における、故障したプロセッサの内部メモリの復帰中に更新された部分を書き戻すための回路を実装した例である。図8のFPGA(1)内には、図3と比べて復帰中差分メモリ20と差分更新回路21を追加している。また、復帰用メモリ11からの復帰用ライト制御信号115を差分更新回路21に入力し、メモリ更新回路12からの多数決判定信号106を、変更したメモリ書き戻し回路27に入力し、メモリ書き戻し回路27から各プロセッサへの割り込み信号151、152、153を設けた部分、さらには、復帰中差分メモリ20と復帰用メモリ11との間でライトアドレス132、更新ライトデータ133をやりとりする部分が異なっている。   FIG. 8 shows an example in which a circuit for writing back an updated part during restoration of the internal memory of the failed processor in the second embodiment is mounted. In the FPGA (1) of FIG. 8, a returning difference memory 20 and a difference update circuit 21 are added as compared with FIG. Further, the return write control signal 115 from the return memory 11 is input to the difference update circuit 21, and the majority decision signal 106 from the memory update circuit 12 is input to the changed memory write back circuit 27, and the memory write back circuit 27 is provided with interrupt signals 151, 152, 153 from 27 to each processor, and further, the part for exchanging the write address 132 and the updated write data 133 between the returning difference memory 20 and the return memory 11 is different. Yes.

図9に復帰中差分メモリ20の具体的な例を示す。   FIG. 9 shows a specific example of the returning difference memory 20.

復帰中差分メモリ20に入力される更新ライトアドレス127は、故障していないプロセッサの内部メモリでライトされたアドレスを示し、この更新ライトアドレス127が、クロック1(201)よりも高速なクロック2(202)で動作する更新アドレス指示部22を介してライトアドレス130として、アドレスFIFO(24)に格納されていく。   The update write address 127 input to the returning difference memory 20 indicates an address written in the internal memory of the processor that has not failed. This update write address 127 is a clock 2 (which is faster than the clock 1 (201)). The address is stored in the address FIFO (24) as the write address 130 via the update address instruction unit 22 operating in (202).

FPGA内の故障したプロセッサの内部メモリが復帰中に、故障していない通常動作中のプロセッサの内部メモリで更新されたアドレスが、アドレスFIFO(24)に格納される。   While the internal memory of the failed processor in the FPGA is being restored, the address updated in the internal memory of the normal operating processor that has not failed is stored in the address FIFO (24).

また、復帰中差分メモリ20に入力される更新ライトタイミング信号128は、故障したプロセッサの内部メモリへ、更新要求するタイミングを示し、この更新ライトタイミング信号128が、クロック1(201)よりも高速なクロック2(202)で動作する更新ライト指示部23を介してライトアドレス指示信号131としてアドレスFIFO(24)に入力される。   The update write timing signal 128 input to the returning difference memory 20 indicates the timing of requesting an update to the internal memory of the failed processor, and this update write timing signal 128 is faster than the clock 1 (201). A write address instruction signal 131 is input to the address FIFO (24) through the update write instruction unit 23 that operates at the clock 2 (202).

このライトアドレス指示信号131が有効になるたびに、アドレスFIFO(24)からライトアドレス132がクロック2(202)で動作する更新ライト制御部25に入力されるとともに、復帰用メモリ11へライトアドレス132を送信する。復帰用メモリ11は、ライトアドレス132を受け取るとそのアドレスに対応するデータを更新ライトデータ133として更新ライト制御部25へ送信し、更新ライト制御部25からは、ライト要求のあった内部メモリアドレスとライトコマンドおよび更新ライトデータ、更新選択信号をまとめて更新ライト制御信号129として出力する。 図10に、差分更新回路21の具体的な例を示す。   Each time this write address instruction signal 131 becomes valid, the write address 132 is input from the address FIFO (24) to the update write control unit 25 operating at the clock 2 (202), and the write address 132 is input to the return memory 11. Send. When the return memory 11 receives the write address 132, it transmits the data corresponding to the address to the update write control unit 25 as the update write data 133. The update write control unit 25 receives the internal memory address and the write request. The write command, the update write data, and the update selection signal are output together as an update write control signal 129. FIG. 10 shows a specific example of the difference update circuit 21.

差分更新回路21内にはセレクタ26があり、入力された復帰用ライト制御信号115と、更新ライト制御信号129を選択してメモリ書き戻し信号141として出力する。   The difference update circuit 21 includes a selector 26 that selects the input return write control signal 115 and the updated write control signal 129 and outputs them as a memory write back signal 141.

セレクタ26で信号を判定するのは、図8の復帰中差分メモリから出力された更新ライト制御信号129のうちの更新選択信号134であり、故障したプロセッサの内部メモリ全体を順番に復帰させるときは復帰用ライト制御信号115を選択され、内部メモリ全体の復帰が終了して、その間に正常なプロセッサの内部メモリの更新された差分のみを更新するときは更新ライト制御信号129が選択され、メモリ書き戻し信号141として出力する。   The selector 26 determines the signal based on the update selection signal 134 of the update write control signal 129 output from the returning difference memory in FIG. 8. When the entire internal memory of the failed processor is restored in order, When the return write control signal 115 is selected and the recovery of the entire internal memory is completed and only the updated difference of the internal memory of the normal processor is updated during that time, the update write control signal 129 is selected and the memory write The return signal 141 is output.

図11に、図8のFPGA(1)内における変更したメモリ書き戻し回路27の具体的な例を示す。図11に示すメモリ書き戻し回路27は、図6に示したメモリ書き戻し回路13と比較して、入力されていた復帰用ライト信号115がメモリ書き戻し信号141となり、アドレスFIFO更新終了判定回路30と各プロセッサへの割り込み信号を設けた部分が異なっている。   FIG. 11 shows a specific example of the changed memory write-back circuit 27 in the FPGA (1) of FIG. Compared with the memory write-back circuit 13 shown in FIG. 6, the memory write-back circuit 27 shown in FIG. 11 has the inputted return write signal 115 become the memory write-back signal 141, and the address FIFO update end determination circuit 30. And the portion provided with the interrupt signal to each processor is different.

メモリ書き戻し信号141は図6の復帰用ライト制御信号115に対応する。したがって、書き戻しライトコマンド142はライトコマンド121に対応し、書き戻しライトデータ143はライトデータ122に対応し、書き戻しライトアドレス144はライトアドレス123に対応する。   The memory write-back signal 141 corresponds to the return write control signal 115 in FIG. Accordingly, the write-back write command 142 corresponds to the write command 121, the write-back write data 143 corresponds to the write data 122, and the write-back write address 144 corresponds to the write address 123.

アドレスFIFO更新終了判定回路30は、更新選択信号134の値により、図9の復帰中差分メモリ20内にあるアドレスFIFO(24)が空になって、全ての更新されたメモリアドレスに書き戻しが行われたら、プロセッサA(2)へ割り込み信号A(151)を、プロセッサB(3)へ割り込み信号B(152)を、プロセッサC(4)へ割り込み信号C(153)を同時に出力する。   According to the value of the update selection signal 134, the address FIFO update end determination circuit 30 makes the address FIFO (24) in the returning difference memory 20 of FIG. 9 empty and writes back to all the updated memory addresses. When it is performed, the interrupt signal A (151) is simultaneously output to the processor A (2), the interrupt signal B (152) is output to the processor B (3), and the interrupt signal C (153) is simultaneously output to the processor C (4).

図12に、図8から図11に示したFPGAにおけるプロセッサの内部メモリの更新の様子を示す。図12は、FPGAに内蔵された複数のプロセッサのうち、いずれか一つのプロセッサの内部メモリ空間を表したものであり、網掛けはデータが更新されたアドレスを示す。   FIG. 12 shows how the internal memory of the processor in the FPGA shown in FIGS. 8 to 11 is updated. FIG. 12 shows the internal memory space of any one of the plurality of processors built in the FPGA, and the shaded area indicates the address where the data has been updated.

図12(a)は故障が発生していない通常動作時の内部メモリ空間を示しており、書き換えられる内部メモリ空間の順番はプログラムによって変動する。図12(a)ではA01、A02、A03の部分が順に書き換わった例を示している。   FIG. 12A shows the internal memory space during normal operation in which no failure has occurred, and the order of the internal memory space to be rewritten varies depending on the program. FIG. 12A shows an example in which the parts A01, A02, and A03 are rewritten in order.

図12(b)は、このプロセッサ内で故障が発生し、このプロセッサのみをリセットして内部メモリ内容を更新する図である。これまでの実施例内で示してきたように、復帰時の内部メモリ更新は高速なクロックで広いバス幅で実施される。図12(b)では、通常動作時のメモリライト動作の4倍の速度で復帰を行う場合を想定し、メモリ空間の先頭から順にA11、A12の2回で8空間のメモリ領域を復帰した場合の例を示している。すなわちA11、A12の先頭のアドレスを指定すると一気に4つのアドレス分のデータをそれぞれ書き込む。   FIG. 12B is a diagram in which a failure occurs in the processor, and only the processor is reset to update the contents of the internal memory. As shown in the embodiments so far, the internal memory update at the time of return is performed with a high speed clock and a wide bus width. In FIG. 12 (b), assuming that the return is performed at a speed four times that of the memory write operation in the normal operation, the memory area of 8 spaces is restored twice from A11 and A12 in order from the top of the memory space. An example is shown. That is, when the head addresses of A11 and A12 are designated, data for four addresses are written at a time.

更に図12(c)は、A13、A14の2回でメモリ空間の最後まで復帰が完了した場合の例を示している。 ここで、図12(b)、図12(c)に示したように内部メモリ空間の全領域を一通り復帰させる間にも、他の正常動作をしているプロセッサの内部メモリ空間は順不同で書き換わっている可能性があり、その書き換わったアドレスは図9に示したアドレスFIFO(24)に格納されている。この情報から、更に更新すべきメモリアドレスが分かるので、図12(d)のように、更新すべきメモリアドレスを含むメモリ空間を4倍の速度でA21、A22、A23と書き換えていく。   Further, FIG. 12C shows an example in the case where the restoration is completed to the end of the memory space in two times A13 and A14. Here, as shown in FIGS. 12B and 12C, the internal memory spaces of other normally operating processors are out of order even while all the areas of the internal memory space are restored. There is a possibility of rewriting, and the rewritten address is stored in the address FIFO (24) shown in FIG. From this information, the memory address to be further updated can be known, so that the memory space including the memory address to be updated is rewritten to A21, A22, and A23 at a quadruple speed as shown in FIG.

アドレスFIFO更新終了判定回路30の結果からアドレスFIFO(24)が空になって故障したプロセッサの内部メモリ空間が全て正常なプロセッサの内部メモリ空間の内容と一致して同期が終了したと判定したら、図12(e)のように再び正常な処理に戻ってプログラムに従ってメモリ空間を書き換えていく。   If it is determined from the result of the address FIFO update end determination circuit 30 that the address FIFO (24) is emptied and all the internal memory spaces of the failed processor coincide with the contents of the normal processor internal memory space, the synchronization is completed. As shown in FIG. 12E, the process returns to normal processing again and the memory space is rewritten according to the program.

このようにすることで、故障したプロセッサの内部メモリ空間を復帰中に正常動作中のプロセッサの内部メモリ内容が書き換わっても、故障したプロセッサの内部メモリ空間の内容を他のプロセッサの内容に同期化させることが可能になる。   By doing this, the contents of the internal memory space of the failed processor are synchronized with the contents of other processors even if the internal memory contents of the processor that is operating normally are rewritten while the internal memory space of the failed processor is restored. It becomes possible to make it.

図13に、図8に示したFPGA(1)におけるプロセッサA(2)、プロセッサB(3)、プロセッサC(4)の処理チャートの例を示す。   FIG. 13 shows an example of a processing chart of the processor A (2), the processor B (3), and the processor C (4) in the FPGA (1) shown in FIG.

プロセッサA(2)、プロセッサB(3)、プロセッサC(4)は同一の回路であり、故障が発生していない間は同一の通常処理1(S01)を実行している。   The processor A (2), the processor B (3), and the processor C (4) are the same circuit, and execute the same normal process 1 (S01) while no failure occurs.

プロセッサC(4)でソフトエラーなどの一時故障が発生した場合、プロセッサA(2)とプロセッサB(3)は通常処理1(S01)を継続し、処理中は内部メモリの値も必要に応じて更新される。   When a temporary failure such as a soft error occurs in the processor C (4), the processor A (2) and the processor B (3) continue the normal processing 1 (S01), and the value of the internal memory is also necessary during the processing. Updated.

一方、一時故障が発生したプロセッサC(4)は、復帰処理S02に移行し、プロセッサC(4)内の内部メモリC(8)の全領域を共有メモリ11の内容で更新する。   On the other hand, the processor C (4) in which the temporary failure has occurred shifts to the return process S02 and updates the entire area of the internal memory C (8) in the processor C (4) with the contents of the shared memory 11.

復帰処理S02の終了後、復帰処理S02の間にプロセッサA(2)とプロセッサB(3)の内部メモリで更新された部分をプロセッサC(4)の内部メモリC(8)に書き戻す差分処理S03を実行する。   After the completion of the return process S02, the difference process for writing back the part updated in the internal memory of the processor A (2) and the processor B (3) to the internal memory C (8) of the processor C (4) during the return process S02. S03 is executed.

差分処理が終了してプロセッサC(4)の内部メモリC(8)の内容がプロセッサA(2)とプロセッサB(3)の内部メモリの内容と一致したら、プロセッサA(2)、プロセッサB(3)、プロセッサC(4)に同時に割り込み処理S04が入り、各プロセッサ内の内部レジスタを含む全ての内容が三つのプロセッサ間で同一となり、続きの通常処理2(S05)が実行される。   When the difference processing is completed and the contents of the internal memory C (8) of the processor C (4) match the contents of the internal memories of the processor A (2) and the processor B (3), the processor A (2) and the processor B ( 3) The interrupt process S04 enters the processor C (4) at the same time, and all the contents including the internal registers in each processor become the same among the three processors, and the subsequent normal process 2 (S05) is executed.

この割り込み処理S04はあらかじめプロセッサに用意した分岐割り込みのみで実現できるため、システムは通常の処理を中断する必要がない。   Since this interrupt processing S04 can be realized only by a branch interrupt prepared in advance in the processor, the system does not need to interrupt normal processing.

また、本実施例ではプロセッサ内の内部メモリが更新される例で説明したが、メモリで構成されるレジスタファイルなどを同様に更新する回路を追加して実装してもよい。   In this embodiment, the example in which the internal memory in the processor is updated has been described. However, a circuit that similarly updates a register file including the memory may be added and mounted.

これらのことにより、本発明のFPGAおよびプロセッサを実装することで、プロセッサで一時的な故障が発生してもシステムの処理を中断することなく、処理を継続したまま故障したプロセッサを復帰させて多重化を再構成することが可能になる。   By implementing the FPGA and the processor according to the present invention, even if a temporary failure occurs in the processor, the failed processor is returned to the multiplexed state without interrupting the system processing and multiplexed. Can be reconfigured.

次に、本発明のFPGAにおいて、プロセッサで永久故障が発生した場合に復旧させる場合の例を示す。   Next, in the FPGA of the present invention, an example in the case of recovery when a permanent failure occurs in the processor will be shown.

図14は、実施例3における、部分的再構成可能なFPGAにおいて故障したプロセッサをFPGA内の別の領域に割り当てる場合の一例を示す図である。図14のFPGA(1)はSRAM型で部分的再構成可能なものを用い、図8のように回路を実装したものであるが、FPGAに内蔵するプロセッサを論理合成するときに、FPGAが動作中に同じプロセッサ回路を別の領域に割り当てられるように指定をして実装したものである。   FIG. 14 is a diagram illustrating an example of assigning a failed processor in a partially reconfigurable FPGA to another area in the FPGA according to the third embodiment. The FPGA (1) in FIG. 14 is an SRAM type and can be partially reconfigured, and is implemented with a circuit as shown in FIG. 8, but the FPGA operates when performing logic synthesis on the processor built in the FPGA. This is implemented by specifying the same processor circuit so that it can be assigned to another area.

この図14のFPGA(1)では、プロセッサC(4)を実装するときに、コンフィギュレーションによって同一の回路をFPGA内に割り当ててプロセッサD(5)にできるように実装した例を示している。   In the FPGA (1) of FIG. 14, when the processor C (4) is mounted, an example is shown in which the same circuit is allocated in the FPGA by the configuration so that the processor D (5) can be mounted.

図14のプロセッサC(4)において、復旧できない永久故障が発生した場合は、FPGAとそのシステムが動作中に、FPGA内にプロセッサD(5)を動的に割り当て、メモリ書き戻し回路27からの書き戻し制御信号C(109)をプロセッサD(5)に入力し、プロセッサD(5)からメモリライト信号D(114)を割り当てて、メモリライト信号C(113)の代わりにメモリ更新回路12に入力して再構成をする。   When a permanent failure that cannot be recovered occurs in the processor C (4) of FIG. 14, the processor D (5) is dynamically allocated in the FPGA and the memory write-back circuit 27 The write-back control signal C (109) is input to the processor D (5), the memory write signal D (114) is assigned from the processor D (5), and the memory update circuit 12 is substituted for the memory write signal C (113). Enter and reconfigure.

このFPGA内プロセッサの再構成による処理チャートの例を図15に示す。   An example of a processing chart by reconfiguration of the processor in the FPGA is shown in FIG.

図15において、プロセッサA(2)、プロセッサB(3)、プロセッサC(4)は、故障が発生していない時は図13と同様に通常処理1(S11)を実行している。   In FIG. 15, processor A (2), processor B (3), and processor C (4) execute normal processing 1 (S11) as in FIG. 13 when no failure has occurred.

プロセッサC(4)で永久故障が発生すると、プロセッサC(4)は復旧処理S12を実行してプロセッサを再起動し、内部メモリC(8)の内容の復旧を試みる。   When a permanent failure occurs in the processor C (4), the processor C (4) executes the recovery process S12 to restart the processor, and tries to restore the contents of the internal memory C (8).

しかし複数回復旧を試みても、多数決回路からの多数決判定信号で故障が発生している状況のままの場合、永久故障と判定して、プロセッサC(4)の代わりにFPGA内の新領域にプロセッサD(5)を構成し、復帰処理S13を実施してプロセッサD(5)内の内部メモリD(9)の全領域を共有メモリ11の内容で更新する。尚、FPGA内にはプロセッサDを構築するための領域が確保されている。   However, even if recovery is attempted a plurality of times, if a failure has occurred with the majority decision signal from the majority decision circuit, it is determined that the failure is permanent, and a new area in the FPGA is used instead of the processor C (4). The processor D (5) is configured, and the return process S13 is performed to update the entire area of the internal memory D (9) in the processor D (5) with the contents of the shared memory 11. An area for constructing the processor D is secured in the FPGA.

復帰処理S13の終了後、復帰処理S12および復帰処理S13の間にプロセッサA(2)とプロセッサB(3)の内部メモリで更新された部分をプロセッサD(5)の内部メモリD(9)に書き戻す差分処理S03を実行する。   After completion of the return process S13, the portion updated in the internal memory of the processor A (2) and the processor B (3) during the return process S12 and the return process S13 is stored in the internal memory D (9) of the processor D (5). The difference process S03 for writing back is executed.

差分処理が終了してプロセッサD(5)の内部メモリD(9)の内容がプロセッサA(2)とプロセッサB(3)の内部メモリの内容と一致したら、プロセッサA(2)、プロセッサB(3)、プロセッサD(5)に同時に割り込み処理S15が入り、各プロセッサ内の内部レジスタを含む全ての内容が三つのプロセッサ間で同一となり、続きの通常処理2(S16)が実行される。   When the difference processing is completed and the contents of the internal memory D (9) of the processor D (5) match the contents of the internal memories of the processor A (2) and the processor B (3), the processor A (2) and the processor B ( 3) The interrupt process S15 enters the processor D (5) at the same time, and all the contents including the internal register in each processor become the same among the three processors, and the subsequent normal process 2 (S16) is executed.

なお、この例ではプロセッサC(4)が故障して別領域に再構成される例を示したが、プロセッサA(2)やプロセッサB(3)が故障して再構成することにしてもよく、また、複数のプロセッサに対して再構成領域を予め割り当てておいてもよい。   In this example, the processor C (4) fails and is reconfigured in another area. However, the processor A (2) and the processor B (3) may fail and be reconfigured. In addition, a reconstruction area may be allocated in advance to a plurality of processors.

これらのことにより、再構成可能なFPGAを用いることによって、FPGA内に構成された複数のプロセッサのうちのいずれかで永久故障が発生しても、別の領域に再構成したプロセッサのメモリ内容を、稼働している別のプロセッサのメモリ内容と一致させることができ、システムの処理を中断することなく、処理を継続したまま故障したプロセッサを復帰させて多重化を再構成することが可能になる。   As a result, by using a reconfigurable FPGA, even if a permanent failure occurs in any of a plurality of processors configured in the FPGA, the memory contents of the reconfigured processor in another area are stored. Can be matched with the memory contents of another operating processor, and it is possible to reconfigure the multiplexing by returning the failed processor while continuing the processing without interrupting the processing of the system. .

図16に、本発明のFPGAを有する制御装置を使って産業制御システムに適用した場合の一例を示す。   FIG. 16 shows an example when the present invention is applied to an industrial control system using a control device having an FPGA of the present invention.

図16の産業制御システムは、変電設備304を制御するものである。制御端末301からの指示が制御装置302に伝わり、内部のFPGA(1)からI/O装置303を介して指示を送信し、変電設備を制御する。   The industrial control system in FIG. 16 controls the substation equipment 304. An instruction from the control terminal 301 is transmitted to the control device 302, and the instruction is transmitted from the internal FPGA (1) via the I / O device 303 to control the substation equipment.

この制御端末301からの指示を処理するFPGA(1)の一部で故障が発生して変電設備304に伝わってしまうと、変電設備が正常な動作をしなくなり甚大な被害が出るおそれがある。   If a failure occurs in a part of the FPGA (1) that processes the instruction from the control terminal 301 and is transmitted to the substation equipment 304, the substation equipment may not operate normally and serious damage may occur.

そのため、FPGA(1)内に本発明で示したようにプロセッサA(2)、プロセッサB(3)、プロセッサC(4)のように多重化して構成し、プロセッサの一部で故障が発生しても、正常なプロセッサで動作を続けながら、故障したプロセッサを復帰させ、多重化を再構成することができる。   Therefore, in the FPGA (1), as shown in the present invention, the processor A (2), the processor B (3), and the processor C (4) are multiplexed so that a failure occurs in a part of the processor. However, it is possible to restore the failed processor and reconfigure multiplexing while continuing to operate with a normal processor.

これにより、変電設備の可用性が高まり、また、変電設備を稼働させたままメンテナンスなどを行うことが可能になる。
これらのことにより、本発明のFPGAを適用することで、産業制御システムなどにおいて、高信頼性と可用性を高めたシステムを実現することが可能になる。
Thereby, the availability of the substation equipment is increased, and maintenance and the like can be performed while the substation equipment is operating.
Thus, by applying the FPGA of the present invention, it becomes possible to realize a system with high reliability and high availability in an industrial control system or the like.

なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
In addition, this invention is not limited to an above-described Example, Various modifications are included. For example, the above-described embodiments have been described in detail for easy understanding of the present invention, and are not necessarily limited to those having all the configurations described. Further, a part of the configuration of one embodiment can be replaced with the configuration of another embodiment, and the configuration of another embodiment can be added to the configuration of one embodiment. Further, it is possible to add, delete, and replace other configurations for a part of the configuration of each embodiment.

1 フィールドプログラマブルゲートアレイ(FPGA)
2、3、4、5 プロセッサ
6、7、8、9 内部メモリ
10、14 多数決回路
11 復帰用メモリ
12 メモリ更新回路
13、27 メモリ書き戻し回路
15 RAM
20 復帰中差分メモリ
21 差分更新回路
301 制御端末
302 制御装置
303 I/O装置
304 変電装置
1 Field programmable gate array (FPGA)
2, 3, 4, 5 Processor 6, 7, 8, 9 Internal memory
10, 14 Majority decision circuit 11 Memory for restoration 12 Memory update circuit 13, 27 Memory write-back circuit 15 RAM
20 difference memory 21 during restoration difference update circuit 301 control terminal 302 control device 303 I / O device 304 substation

Claims (11)

それぞれが内部メモリを備えるとともに、同一の内容の処理をそれぞれが実行して出力する複数のプロセッサと、
前記複数のプロセッサの出力から少なくとも1つのプロセッサのエラーを検出し、いずれのプロセッサでエラーが発生したかを示す判定信号を出力するメモリ更新回路と、
前記判定信号を受信すると、エラーが発生したプロセッサの内部メモリを選択し、当該内部メモリへ他の正常なプロセッサの内部メモリの内容を書き戻してエラーから復帰させるメモリ書き戻し回路と、を備えるフィールドプログラマブルゲートアレイ。
A plurality of processors each including an internal memory and each executing and outputting a process of the same content;
A memory update circuit that detects an error of at least one processor from outputs of the plurality of processors and outputs a determination signal indicating which processor has caused the error; and
A memory write-back circuit that selects an internal memory of a processor in which an error has occurred when receiving the determination signal, writes back the contents of the internal memory of another normal processor to the internal memory, and recovers from the error; Programmable gate array.
請求項1に記載のフィールドプログラマブルゲートアレイにおいて、
前記メモリ更新回路からの制御信号によって、前記複数のプロセッサの内部メモリと同様のデータが書き込まれる復帰用メモリを備え、
前記メモリ書き戻し回路は、前記復帰用メモリから読み出された所定のデータを前記エラーが発生したプロセッサの内部メモリへ書き戻して復帰処理を行うことを特徴とするフィールドプログラマブルゲートアレイ。
The field programmable gate array of claim 1,
A return memory in which data similar to the internal memory of the plurality of processors is written by a control signal from the memory update circuit;
The field programmable gate array according to claim 1, wherein the memory write-back circuit writes the predetermined data read from the return memory back to the internal memory of the processor in which the error has occurred and performs a return process.
請求項2に記載のフィールドプログラマブルゲートアレイにおいて、
前記複数のプロセッサを動作させる第一のクロックと、
前記復帰用メモリからのデータの読み出し、および、前記メモリ書き戻し回路による書き戻しを動作させる第二のクロックと、を有し、
前記第二のクロックは前記第一のクロックよりも高い周波数で動作することを特徴とするフィールドプログラマブルゲートアレイ。
The field programmable gate array of claim 2,
A first clock for operating the plurality of processors;
A second clock for operating reading of data from the return memory and write back by the memory write back circuit,
The field programmable gate array, wherein the second clock operates at a higher frequency than the first clock.
請求項2に記載のフィールドプログラマブルゲートアレイにおいて、
前記プロセッサから前記メモリ更新回路への出力が送られる第一のバスと、
前記メモリ更新回路から前記復帰用メモリへの出力が送られる第二のバスと
前記復帰用メモリから前記メモリ書き戻し回路への出力が送られる第三のバスと、
前記メモリ書き戻し回路から前記プロセッサへの出力が送られる第四のバスと、を有し、
前記第三のバスまたは前記第四のバスのバス幅は、前記第一のバスまたは前記第二のバスのバス幅よりも広いことを特徴とするフィールドプログラマブルゲートアレイ。
The field programmable gate array of claim 2,
A first bus through which the output from the processor to the memory update circuit is sent;
A second bus to which output from the memory update circuit to the return memory is sent; and a third bus to which output from the return memory to the memory write back circuit is sent;
A fourth bus to which the output from the memory write-back circuit to the processor is sent;
The field programmable gate array according to claim 1, wherein the third bus or the fourth bus has a bus width wider than that of the first bus or the second bus.
請求項1に記載のフィールドプログラマブルゲートアレイにおいて、
少なくとも3つのプロセッサによって多重化されており、
前記メモリ更新回路は、前記少なくとも3つのプロセッサの出力の多数決をとってエラー検出、および、いずれのプロセッサでエラーが発生したかを判定することを特徴とするフィールドプログラマブルゲートアレイ。
The field programmable gate array of claim 1,
Multiplexed by at least three processors,
The field updateable gate array, wherein the memory update circuit detects an error by determining a majority of outputs of the at least three processors and determines which processor has an error.
請求項1に記載のフィールドプログラマブルゲートアレイにおいて、
前記メモリ書き戻し回路は、前記エラーが発生したプロセッサの内部メモリ全体を更新して、前記正常なプロセッサの内部メモリと内容を一致化させることを特徴とするフィールドプログラマブルゲートアレイ。
The field programmable gate array of claim 1,
The field-programmable gate array, wherein the memory write-back circuit updates the entire internal memory of the processor in which the error has occurred to match the contents with the internal memory of the normal processor.
請求項2に記載のフィールドプログラマブルゲートアレイにおいて、
前記復帰処理中に前記正常なプロセッサが継続して動作することによって更新された内部メモリのアドレスを記憶する復帰中差分メモリと、
前記復帰中差分メモリが示すアドレスに基づいて、前記復帰処理中に更新されたデータを選択して前記エラーが発生したプロセッサの内部メモリへの書き戻し指示を行う差分更新回路と、
を有することを特徴とするフィールドプログラマブルゲートアレイ。
The field programmable gate array of claim 2,
A difference memory during return for storing the address of the internal memory updated by continuous operation of the normal processor during the return process;
A difference update circuit that selects data updated during the return process based on an address indicated by the difference memory during return and issues a write-back instruction to the internal memory of the processor in which the error has occurred; and
A field programmable gate array comprising:
請求項7に記載のフィールドプログラマブルゲートアレイにおいて、
前記差分更新回路は、前記メモリ書き戻し回路による前記所定のデータの書き戻しの後、さらに前記復帰処理中に更新されたデータを選択して前記エラーが発生したプロセッサの内部メモリへの書き戻し指示を行い、
前記メモリ書き戻し回路は、前記複数のプロセッサの内部メモリの内容が一致したことを確認すると、前記複数のプロセッサへ割り込み処理を発生させ、当該複数のプロセッサの状態を一致化させて動作を継続させることを特徴とするフィールドプログラマブルゲートアレイ。
The field programmable gate array of claim 7,
The differential update circuit, after the predetermined data is written back by the memory write-back circuit, further selects the data updated during the return processing, and writes back to the internal memory of the processor in which the error has occurred And
When the memory write-back circuit confirms that the contents of the internal memories of the plurality of processors match, the memory write-back circuit generates an interrupt process for the plurality of processors, matches the states of the plurality of processors, and continues the operation. A field programmable gate array characterized by the above.
請求項1に記載のフィールドプログラマブルゲートアレイにおいて、
前記複数のプロセッサのうち少なくとも1つプロセッサにエラーが発生した場合に、フィールドプログラマブルゲートアレイ内に予め割り当てられた領域に前記エラーが発生したプロセッサと同じ回路を再構成して接続することを特徴とするフィールドプログラマブルゲートアレイ。
The field programmable gate array of claim 1,
When an error occurs in at least one of the plurality of processors, the same circuit as the processor in which the error has occurred is reconfigured and connected to a pre-assigned area in a field programmable gate array. Field programmable gate array.
それぞれが内部メモリを備えるとともに、同一の内容の処理をそれぞれが実行して出力する複数のプロセッサと、
前記複数のプロセッサの出力から少なくとも1つのプロセッサのエラーを検出し、いずれのプロセッサでエラーが発生したかを示す判定信号を出力するメモリ更新回路と、
前記判定信号を受信すると、エラーが発生したプロセッサの内部メモリを選択し、当該内部メモリへ他の正常なプロセッサの内部メモリの内容を書き戻してエラーから復帰させるメモリ書き戻し回路と、を備える制御装置。
A plurality of processors each including an internal memory and each executing and outputting a process of the same content;
A memory update circuit that detects an error of at least one processor from outputs of the plurality of processors and outputs a determination signal indicating which processor has caused the error; and
A memory write-back circuit that, when receiving the determination signal, selects an internal memory of a processor in which an error has occurred, writes back the contents of the internal memory of another normal processor to the internal memory, and recovers from the error apparatus.
内部メモリを有する複数のプロセッサによって多重化されたフィールドプログラマブルゲートアレイを用いて機器を制御する制御装置において、
前記フィールドプログラマブルゲートアレイは、
前記複数のプロセッサの出力から少なくとも1つのプロセッサのエラーを検出し、いずれのプロセッサでエラーが発生したかを示す判定信号を出力するメモリ更新回路と、
前記判定信号を受信し、エラーが発生したプロセッサの内部メモリへ他の正常なプロセッサの内部メモリの内容を書き戻してエラーから復帰させるメモリ書き戻し回路と、を備え、
前記エラーが発生したプロセッサの復帰処理中、前記正常なプロセッサは継続して動作することを特徴とする制御装置。
In a control device for controlling equipment using a field programmable gate array multiplexed by a plurality of processors having an internal memory,
The field programmable gate array is:
A memory update circuit that detects an error of at least one processor from outputs of the plurality of processors and outputs a determination signal indicating which processor has caused the error; and
A memory write-back circuit that receives the determination signal and writes back the contents of the internal memory of another normal processor to the internal memory of the processor in which the error has occurred, and recovers from the error,
The control device is characterized in that the normal processor continues to operate during the return processing of the processor in which the error has occurred.
JP2015528054A 2013-07-24 2013-07-24 Field programmable gate array and control device Pending JPWO2015011792A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/069976 WO2015011792A1 (en) 2013-07-24 2013-07-24 Field programmable gate array and control apparatus

Publications (1)

Publication Number Publication Date
JPWO2015011792A1 true JPWO2015011792A1 (en) 2017-03-02

Family

ID=52392873

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015528054A Pending JPWO2015011792A1 (en) 2013-07-24 2013-07-24 Field programmable gate array and control device

Country Status (2)

Country Link
JP (1) JPWO2015011792A1 (en)
WO (1) WO2015011792A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7268826B1 (en) 2022-02-21 2023-05-08 Necプラットフォームズ株式会社 Restoration device and restoration method in triple redundant circuit

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3365581B2 (en) * 1994-07-29 2003-01-14 富士通株式会社 Information processing device with self-healing function

Also Published As

Publication number Publication date
WO2015011792A1 (en) 2015-01-29

Similar Documents

Publication Publication Date Title
US9251002B2 (en) System and method for writing checkpointing data
US20090044044A1 (en) Device and method for correcting errors in a system having at least two execution units having registers
CN104750565B (en) NAND bad block processing method and NAND flash memory equipment
US7793147B2 (en) Methods and systems for providing reconfigurable and recoverable computing resources
EP1980943B1 (en) System monitor device control method, program, and computer system
US20150347124A1 (en) Firmware update apparatus and storage control apparatus
US9262090B2 (en) Asynchronous data mirroring in memory controller
JP6444400B2 (en) Moving objects in the primary computer in response to memory errors in the secondary computer
US8856427B2 (en) Memory controller and non-volatile storage device
JP6282482B2 (en) Programmable circuit device and configuration information restoration method
EP3147797B1 (en) Data management method, node and system for database cluster
US9104609B2 (en) Information processing apparatus, system time synchronization method and computer readable medium
US20170199760A1 (en) Multi-transactional system using transactional memory logs
US9405669B2 (en) Recovery from cache and NVS out of sync
CN106919473A (en) A kind of data disaster recovery and backup systems and method for processing business
WO2014084836A1 (en) Fault tolerance in a multi-core circuit
US8909981B2 (en) Control system software execution during fault detection
JP6083480B1 (en) Monitoring device, fault tolerant system and method
JPWO2015011792A1 (en) Field programmable gate array and control device
KR101533081B1 (en) Redundancy-ready control apparatus, redundancy system and method for configuring redundant logics for assuring low power consumption and reliability at the same time
Szurman et al. Towards a state synchronization methodology for recovery process after partial reconfiguration of fault tolerant systems
CN107797885B (en) Electronic device and control method thereof
JPWO2015068207A1 (en) Programmable device
JP5702651B2 (en) Virtual machine synchronization method and system, and operational virtual machine and program
US20230092343A1 (en) Lockstep processor recovery for vehicle applications