(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-06
(45)【発行日】2025-01-15
(54)【発明の名称】情報処理装置およびエラー修復方法
(51)【国際特許分類】
G06F 11/16 20060101AFI20250107BHJP
G06F 11/07 20060101ALI20250107BHJP
【FI】
G06F11/16 633
G06F11/07 193
(21)【出願番号】P 2021076101
(22)【出願日】2021-04-28
【審査請求日】2023-09-08
(73)【特許権者】
【識別番号】000006507
【氏名又は名称】横河電機株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】集 祐介
【審査官】坂東 博司
(56)【参考文献】
【文献】特開2016-167669(JP,A)
【文献】国際公開第2015/068207(WO,A1)
【文献】特開2020-064382(JP,A)
【文献】特開2015-154417(JP,A)
【文献】Jorge Tonfat et al.,Energy Efficient Frame-level Redundancy Scrubbing Technique for SRAM-based FPGAs,2015 NASA/ESA Conference on Adaptive Hardware and Systems(AHS),米国,IEEE,2015年06月15日,pp.1-8,[online],インターネット<URL:http://ieeexplore.ieee.org/document/7231160> [令和6年6月21日検索]
【文献】堀口 辰也,耐故障FPGAアーキテクチャ,情報処理学会研究報告 2012(平成24)年度(3) [CD-ROM] ,日本,一般社団法人情報処理学会,2012年10月15日,計算機アーキテクチャ(ARC) No.201,pp.1-8,CSNG201200679004、ISSN:1884-0930
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/16
G06F 11/07
(57)【特許請求の範囲】
【請求項1】
フレームごとに設定された各処理回路であって、前記各処理回路の出力結果を取得して多数決により選択して出力する前記各処理回路と、
前記各処理回路に関する情報を記憶するコンフィギュレーションメモリ、および、前記コンフィギュレーションメモリのソフトエラーを検出して修復する修復部を含む集積回路と、
を備
え、
前記各処理回路は、
当該処理回路の状態を切り替えるステートマシン回路と、
前記ステートマシン回路から出力される自ステートと、他の処理回路のステートマシン回路とから取得される各他ステートを比較する比較回路と、を備え、
前記比較回路は、
前記自ステートが前記各他ステートと異なる場合、前記ステートマシン回路をアイドル状態に遷移させて前記ステートマシン回路の動作を抑制する、
ことを特徴とする情報処理装置。
【請求項2】
前記修復部は、
前記各処理回路を周期的に監視し、
前記各処理回路のいずれかの処理回路でソフトエラーによるデータ反転を検出した場合に、前記データ反転が発生した処理回路に対して前記データ反転を修復する、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記各処理回路は、
入力データに対して行われた処理結果に基づく値を保持するフリップフロップ回路と、
前記各処理回路のフリップフロップ回路の出力を取得し、多数決により選択された値を出力する多数決回路と、
前記多数決回路の出力を前記フリップフロップ回路に入力して前記フリップフロップ回路で保持される値を書き戻す書き戻し回路と、
を備えることを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記比較回路は、
前記アイドル状態である前記自ステートが、前記他の処理回路のステートマシン回路とから取得される各他ステートと一致した場合に、前記ステートマシン回路の動作を再開する、
ことを特徴とする請求項
1から3のいずれか1項に記載の情報処理装置。
【請求項5】
フレームごとに設定された各処理回路と、集積回路とを備える情報処理装置において、
前記各処理回路が、前記フレームごとに処理を実行した前記各処理回路の出力結果を取得して多数決により選択して出力し、
前記集積回路が、前記各処理回路に関する情報を記憶するコンフィギュレーションメモリのソフトエラーを検出して修復する、
処理を実行
し、
前記各処理回路は、
当該処理回路の状態を切り替えるステートマシン回路と、
前記ステートマシン回路から出力される自ステートと、他の処理回路のステートマシン回路とから取得される各他ステートを比較する比較回路と、を備え、
前記比較回路は、
前記自ステートが前記各他ステートと異なる場合、前記ステートマシン回路をアイドル状態に遷移させて前記ステートマシン回路の動作を抑制する、
ことを特徴とするエラー修復方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置およびエラー修復方法に関する。
【背景技術】
【0002】
近年、プラントにおいて、DCS(Distributed Control System:分散型制御システム)およびSIS(Safety Instrumented System:安全計装システム)は、より重要性を増している。プラントで使用されるDCS、SIS、その他FA(Factory Automation)機器の内部には、集積回路であるFPGA(Field Programmable Gate Array)が搭載されていることが多い。
【0003】
FPGAはソフトエラーと呼ばれる宇宙線起因による中性子線等の影響で、内部のコンフィギュレーションメモリであるCRAM(Configuration Random Access Memory)や、論理回路であるFF(Flip-Flop:フリップフロップ)のデータが反転してしまうリスクが存在する。そのため、信頼性を必要とするロジックを構成する場合については、その対策が必要となる。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、FPGAのソフトエラーが発生しても、効果的に出力信号の正常状態を維持することは難しい。なぜならば、上記技術では、CRAMのデータ反転に起因する回路破壊を修復し、かつ、FFのデータ反転を即座に修復することが難しいためである。
【課題を解決するための手段】
【0006】
上述した課題を解決し、目的を達成するために、本発明に係る情報処理装置は、フレームごとに設定された各処理回路であって、前記各処理回路の出力結果を取得して多数決により選択して出力する前記各処理回路と、前記各処理回路に関する情報を記憶するコンフィギュレーションメモリおよび前記コンフィギュレーションメモリのソフトエラーを検出して修復する修復部を含む集積回路と、を備えることを特徴とする。
【0007】
また、本発明に係るエラー修復方法は、フレームごとに設定された各処理回路と、集積回路とを有する情報処理装置において、前記各処理回路が、前記フレームごとに処理を実行した前記各処理回路の出力結果を取得して多数決により選択して出力し、前記集積回路が、前記各処理回路に関する情報を記憶するコンフィギュレーションメモリのソフトエラーを検出して修復する、処理を実行することを特徴とする。
【発明の効果】
【0008】
本発明では、FPGAのソフトエラーが発生しても、効果的に出力信号の正常状態を維持することができる。
【図面の簡単な説明】
【0009】
【
図1】実施形態に係るFPGAの構成例を示す図である。
【
図2】FPGA上のCRAM、FFにおけるソフトエラー発生イメージを示す図である。
【
図3】従来のソフトエラー対策1の概要を示す図である。
【
図4】従来のソフトエラー対策1の回路の出力状態を示すタイムチャートである。
【
図5】従来のソフトエラー対策2の概要を示す図である。
【
図6】従来のソフトエラー対策2の回路の出力状態を示すタイムチャートである。
【
図7】実施形態に係るFPGAの出力状態の一例を示すタイムチャートである。
【
図8】実施形態に係る修復処理全体の流れの一例を示すフローチャートである。
【
図9】実施形態に係るCRAM修復処理の流れの一例を示すフローチャートである。
【
図10】実施形態に係るFF修復処理の流れの一例を示すフローチャートである。
【
図11】実施形態の変形例に係るフレームの構成例を示す図である。
【
図12】実施形態の変形例に係るFF修復処理の流れの一例を示すフローチャートである。
【
図13】実施形態に係る情報処理装置のハードウェア構成例を説明する図である。
【発明を実施するための形態】
【0010】
以下に、本発明に係る情報処理装置およびエラー修復方法の発明を実施するための形態(適宜、実施形態)を図面に基づいて詳細に説明する。なお、本発明は、以下に説明する実施形態により限定されるものではない。
【0011】
〔実施形態〕
以下に、本実施形態に係る情報処理装置のFPGAの構成、従来のソフトエラー対策、CRAM等の構成、FPGAの出力状態、各処理の流れを順に説明し、最後に本実施形態の効果を説明する。
【0012】
[FPGAの構成]
図1を用いて、本実施形態に係る情報処理装置100等に搭載されるFPGA10の構成を詳細に説明する。
図1は、実施形態に係るFPGAの構成例を示す図である。以下に、FPGA10全体の構成例を示した上で、FPGA10におけるCRAM修復処理、FF修復処理の順に説明する。
【0013】
(FPGA10全体の構成例)
FPGA10は、プラントで使用される情報処理装置の一例であるDCS、SIS、その他FA機器等に搭載される集積回路である。例えば、FPGA10は、コンフィギュレーションメモリであるCRAM11、およびソフトエラーの監視、修復を実行する修復部12を有する。このCRAM11は、回路情報を記憶したコンフィギュレーションメモリの一例である。例えば、CRAM11は、フレームと呼ばれる単位ごとにメモリ領域が割り当てられており、各メモリ領域には入力データに対してエラー処理や訂正処理などの各処理を実行する処理回路の回路情報が格納されている。
【0014】
一例として、本実施形態では、CRAM11が、「フレームA」110A、「フレームB」110Bおよび「フレームC」110Cの3つのフレームそれぞれに対して構成すべき回路情報を記憶する例で説明する。すなわち、本実施形態に係るFPGA10は、3重化された処理回路を有する。なお、多重化の数や処理回路の構成等は、あくまで一例であり、図示したものに限定するものではない。
【0015】
図1に示すように、FPGA10は、「フレームA」110A、「フレームB」110Bおよび「フレームC」110Cの3つのフレームそれぞれに対応する処理回路を有している。また、各フレームに対応する処理回路は、それぞれ{フレームA-1,A-2,・・・,A-n}、{フレームB-1,B-2,・・・,B-n}、{フレームC-1,C-2,・・・,C-n}のように、複数の一連の処理回路が実装されていてもよい。また、
図1に示したFPGA10には、複数のCRAM11、複数の修復部12が含まれてもよい。
【0016】
(CRAM修復処理)
まず、中性子線等の影響により、CRAM11上でソフトエラーによるデータ反転が発生する(
図1(1-1)参照)。このとき、CRAM11上のメモリ領域に記憶される回路情報に対応する処理回路であってFPGA10上に構成された処理回路が破壊され、出力が不定状態となる(
図1(1-2)参照)。次に、修復部12の定周期監視により、ソフトエラーが検出され(
図1(1-3)参照)、CRAM11のデータ反転が修復される(
図1(1-4)参照)。そして、CRAM11のデータ反転が修復されることにより、処理回路が修復され、出力が正常状態に戻る(
図1(1-5)参照)。なお、詳細なCRAM修復処理については、[CRAM修復処理の流れ]にて後述する。
【0017】
(FF修復処理)
まず、中性子線等の影響により、FFのデータ反転が発生する(
図1(2-1)参照)。このとき、いずれのFFのデータが反転しても、回路の3重化により出力は正常状態を維持される。また、3系統のFFの出力の多数決結果を、FFの入力に常時書き戻すパスがあることから、反転したデータは即座に修復される。なお、詳細なFF修復処理については、[FF修復処理の流れ]にて後述する。
【0018】
上述したように、本実施形態に係るFPGA10は、CRAM修復機能を有し、3重化された処理回路を実装する。さらに、FPGA10は、CRAM11での1ビットのソフトエラーにおいて、回路の複数箇所の故障により、3重化のうちの2系統以上の故障を防ぐため、各系統は別フレームに設定する。このため、FPGA10は、FPGA10のソフトエラーが発生しても、効果的に出力信号の正常状態を維持することができ、ソフトエラー耐性の向上に貢献する。
【0019】
[従来のソフトエラー対策]
ここで、
図2~
図6を用いて、参考技術として、一般的に行われる従来のソフトエラー対策について説明する。
図2は、FPGA上のCRAM、FFにおけるソフトエラー発生イメージを示す図である。
図3、
図5は、従来のソフトエラー対策の概要を示す図である。
図4、
図6は、従来のソフトエラー対策の回路の出力状態を示すタイムチャートである。以下に、ソフトエラー発生のイメージを示した上で、従来のソフトエラー対策1、従来のソフトエラー対策2の順に説明する。
【0020】
(ソフトエラー発生のイメージ)
図2を用いて、FPGA上のCRAM、FFにおけるソフトエラー発生のイメージを説明する。まず、ソフトエラーの原因となる宇宙線に起因する中性子線等が発生する(
図2(1)参照)。次に、発生した中性子線の照射により、FPGA内部のCRAMやFFのデータ反転が起こる(
図2(2)参照)。上記のようにCRAMやFFのデータ反転が発生した場合、以下のような影響が生じる。
【0021】
第1に、CRAMのデータが反転した場合、FPGA内に構成されている回路が破壊される。これは、FPGAに構成されている回路はFPGA内のCRAM上のデータより生成されるためである。
【0022】
第2に、FFのデータが反転した場合、そのFFより後段の回路が一時的に正常動作しなくなる。特に、FFへの書き込みが常時行われないFFについては、書き込みが行われるまで異常出力が継続する。
【0023】
(従来のソフトエラー対策1)
図3、
図4を用いて、参考技術として、一般的に行われる従来のソフトエラー対策1について説明する。ソフトエラー対策1は、修復部12-1を用いたソフトエラー対策である。以下では、CRAMのデータ反転、FFのデータ反転の順に説明する。なお、
図4中の「CLK」は、クロック信号を示す。
【0024】
第1に、CRAMのデータ反転が起こった場合を考える。まず、FPGA10-1において中性子線の影響によりCRAM11-1上でソフトエラーのデータ反転が生じると、フレーム110-1上に構成された回路が破壊される(
図3(1-1)参照)。このとき、出力は不定状態となる(
図4(1-1)参照)。その後、修復部12-1によりソフトエラーが検出され、CRAM11-1のデータ反転が修復される(
図3(1-2)参照)。ここで、修復部12-1によるCRAM修復機能は定周期監視であり、リアルタイムでの修正は実施できない。そのため、ソフトエラーによるデータ反転が生じてから、実際にCRAM11-1のデータが修復されるには、しばらく時間を要する。したがって、出力は正常状態に戻るものの、一定期間、不定出力をしてしまう(
図4(1-2)参照)。
【0025】
第2に、FFのデータ反転が起こった場合を考える。まず、FPGA10-1において中性子線の影響によりFFのデータ反転が生じ(
図3(2-1)参照)、そのFFより後段の回路が一時的に正常動作しなくなる(
図4(2-1)参照)。ここで、修復部12-1は、CRAMに対するソフトエラーの対策機能であり、FFのデータ反転への対策効果はない。したがって、このとき出力は正常なデータがFFへ書き込まれるまでの間で不定状態となる(
図3(2-2)、
図4(2-2)参照)。
【0026】
(従来のソフトエラー対策2)
図5、
図6を用いて、参考技術として、一般的に行われる従来のソフトエラー対策2について説明する。ソフトエラー対策2は、回路の3重化を図り、各FFの出力については、3系統の出力を用いて多数決することにより、回路において1故障が生じても、正常出力を維持する対策である。以下では、CRAMのデータ反転、FFのデータ反転の順に説明する。なお、
図6中の「CLK」は、クロック信号を示す。
【0027】
第1に、CRAMのデータ反転が起こった場合を考える。まず、FPGA10-2において中性子線の影響によりCRAM11-2上でソフトエラーのデータ反転が生じると、フレーム110-2上に構成された回路が破壊される。このとき、故障する回路が1箇所のみである場合(
図5(1a-1)、
図6(1a-1)参照)、修復部12-2がCRAM11-2の修復を行わなくても、出力は正常状態を維持できる(
図5(1a-2)、
図6(1a-2)参照)。しかしながら、同一フレーム内のデータで構成される回路については、ソフトエラーによりCRAM11-2のデータが1ビット反転するだけで、複数箇所の回路の故障が発生する場合がある。このため、ソフトエラーのデータ反転により、3重化回路のうち2系統が故障する場合(
図5(1b-1)、
図6(1b-1)参照)、修復部12-2がCRAMの修復を行わなければ、出力は不定状態となる(
図5(1b-2)、
図6(1b-2)参照)。
【0028】
第2に、FFのデータ反転が起こった場合を考える。まず、FPGA10-2において中性子線の影響によりFFのデータ反転が生じる(
図5(2-1)、
図6(2-1)参照)。ここで、いずれのFFのデータが反転してもソフトエラーの影響を受けず、回路の3重化により出力は正常状態を維持できる(
図5(2-2)、
図6(2-2)参照)。
【0029】
上述の2つのソフトエラー対策は、以下の理由により、FPGAのソフトエラーが発生時に、効果的に出力信号の正常状態を維持することは難しい。第1に、上述のソフトエラー対策1では、CRAMのデータ反転においては、出力が不定値になる期間があり、信頼性が必要な回路では対策が不十分である。第2に、上述のソフトエラー対策2では、CRAMでソフトエラーが発生した場合、1ビット反転で回路が2故障となったときに出力が不定値になる。また、CRAMのソフトエラーを修復できない場合には、故障状態が継続し、1ビット反転で回路が1故障となっているときにも、さらなるソフトエラーでビット反転を引き起こし、2故障へ至る可能性がある。
【0030】
これに対して、上述したように、本実施形態に係る
図1に示したFPGA10は、入力データに対して処理を実行して出力するCRAM11と、CRAM11のソフトエラーを検出して修復する修復部12と、を備え、CRAM11は、フレーム110ごとに設定された各処理回路であって、各処理回路の出力結果を取得して多数決により選択して出力する各処理回路、を備える。
【0031】
すなわち、FPGA10は、CRAM11におけるソフトエラー(1ビット反転)において、回路故障(複数箇所故障を含む)が生じても出力信号の正常状態を維持でき、かつ回路故障を修復し故障状態のままとならない。また、FPGA10は、FFにおけるソフトエラーにおいて、出力信号の正常状態を維持できる。さらに、本実施形態に係る修復処理は、コマーシャル品、インダストリアル品、オートモーティブ品といった安価で容易に入手可能なFPGAでも実施可能である。
【0032】
[FPGA10の構成]
本実施形態に係る情報処理装置100のFPGA10の構成を詳細に説明する。FPGA10は、フレーム110、CRAM11および修復部12を有する。以下では、フレーム110、CRAM11、修復部12の順に説明する(
図1参照)。
【0033】
(フレーム110)
フレーム110は、フレーム110ごとに設定された各処理回路であって、各処理回路の出力結果を取得して多数決により選択して出力する各処理回路を実装する。例えば、フレーム110は、FPGA10上であって、CRAM11外のフレーム110(110A、110B、110C)ごとに設定された各処理回路を有する。各処理回路は、フリップフロップ回路111(111a、111b、111c)、多数決回路112(112a、112b、112c)、書き戻し回路113(113a、113b、113c)、およびマルチプレクサ(multiplexer:MUX)114(114a、114b、114c)を備える。また、フレーム110は、各処理に対応した、フリップフロップ回路111、多数決回路112、書き戻し回路113およびマルチプレクサ114により構成された一群の回路を複数有する。
【0034】
各処理回路は、入力データに対して処理を実行して出力する。また、各処理回路は、FPGA10上であって、CRAM11外のフレーム110ごとに設定された各処理回路であって、各処理回路の出力結果を取得して多数決により選択して出力する各処理回路を備える。
【0035】
なお、本実施形態に係るFPGA10において、FPGA10上の特定のロジック領域のみ動的に再構成し、別のロジックに切り替えるパーシャルリコンフィグ機能を用いて、フレーム110ごとに各処理回路が設定されるが、処理回路の設定方式は特に限定されない。
【0036】
フリップフロップ回路111は、フレーム110に対して行われた処理結果に基づく値を保持する。また、フリップフロップ回路111は、クロック信号(CLK)を取得する。
【0037】
多数決回路112は、各処理回路のフリップフロップ回路111の出力を取得し、多数決により選択された値を出力する。例えば、多数決回路112は、3重化された処理回路のフリップフロップ回路111a~111cの出力を取得し、多数決により選択された値を出力する。
【0038】
書き戻し回路113は、多数決回路の出力をフリップフロップ回路111に入力してフリップフロップ回路111で保持される値を書き戻す。例えば、書き戻し回路113は、フリップフロップ回路111a~111cの出力のうち、多数決により選択された値を、フリップフロップ回路111aに入力してフリップフロップ回路111aで保持される値を書き戻す。
【0039】
マルチプレクサ114は、複数の入力から1つを選んで出力する。また、マルチプレクサ114は、書き込みデータ、書き込みイネーブルを取得する。さらに、マルチプレクサ114は、書き戻し回路113によって書き戻された値を取得する。
【0040】
(CRAM11)
CRAM11は、各処理回路に関する情報(回路情報)を記憶する。例えば、CRAM11は、各処理回路の回路情報を記憶したコンフィギュレーションメモリであって、フレーム単位ごとにメモリ領域が割り当てられており、各メモリ領域には入力データに対してエラー処理や訂正処理などの各処理を実行する処理回路の回路情報が格納されている。
【0041】
(修復部12)
修復部12は、CRAM11のソフトエラーを検出して修復する。例えば、修復部12は、フレーム単位ごとに設定された各処理回路を周期的に監視し、各処理回路のいずれかの処理回路でソフトエラーによるデータ反転を検出した場合に、データ反転が発生した処理回路に対してデータ反転を修復する。
【0042】
[FPGA10の出力状態]
図7を用いて、本実施形態に係るFPGA10の出力状態について詳細に説明する。
図7は、実施形態に係るFPGAの出力状態の一例を示すタイムチャートである。以下では、CRAMのデータ反転、FFのデータ反転の順に説明する。なお、
図7中の「CLK」は、クロック信号を示す。
【0043】
第1に、CRAMのデータ反転が起こった場合を考える。まず、中性子線の影響によりCRAM11上でソフトエラーによりデータ反転が生じると、構成された回路が破壊される(
図7(1-1)参照)。このとき、3重化回路はそれぞれの系統を別々のフレームに実装していることから、ソフトエラーによる1ビット反転による回路の破壊の影響は2故障以上となった場合でも1系統内に収まる。また、各FFの出力は3重化により多数決されているので、出力は正常状態を維持できる。さらに、修復部12によって、定周期監視をもとにCRAM11でのソフトエラーが検出され、データ反転を修復されることで、故障した回路も修復される(
図7(1-2)参照)。
【0044】
第2に、FFのデータ反転が起こった場合を考える。まず、FPGA10において中性子線の影響によりFFのデータ反転が生じる(
図7(2-1)参照)。ここで、いずれのFFのデータが反転してもソフトエラーの影響を受けず、回路の3重化により出力は正常状態を維持できる(
図7(2-2)参照)。また、3系統のFFの出力の多数決結果をFFの入力に常時書き戻すパス(書き戻し回路)113があるため、反転したデータは即座に修復される。
【0045】
[修復処理全体の流れ]
図8を用いて、本実施形態に係る修復処理全体の流れを説明する。
図8は、実施形態に係る修復処理全体の流れの一例を示すフローチャートである。本実施形態に係る修復処理では、CRAM修復処理(ステップS101)、FF修復処理(ステップS102)が実行される。なお、ステップS101の処理およびステップS102の処理の順序や実行のタイミングは、動的に、または静的に変更することができる。また、ステップS101の処理またはステップS102の処理のうち、省略される処理があってもよい。
【0046】
(CRAM修復処理)
CRAMのデータ反転が起こった場合には、FPGA10は、CRAM修復処理を実行する(ステップS101)。このとき、多数決回路112は、各フリップフロップ回路111の出力を多数決により選択して出力する。また、修復部12は、定周期監視をもとにCRAM11でのソフトエラーが検出し、データ反転を修復する。なお、CRAM修復処理の詳細な説明については、[CRAM修復処理の流れ]にて後述する。
【0047】
(FF修復処理)
FFのデータ反転が起こった場合には、FPGA10は、FF修復処理を実行する(ステップS102)。このとき、多数決回路112は、各フリップフロップ回路111の出力を多数決により選択して出力する。また、書き戻し回路113は、多数決回路の出力をフリップフロップ回路111に入力してフリップフロップ回路111で保持される値を書き戻す。なお、FF修復処理の詳細な説明については、[FF修復処理の流れ]にて後述する。
【0048】
[CRAM修復処理の流れ]
図9を用いて、本実施形態に係るCRAM修復処理の流れを詳細に説明する。
図9は、実施形態に係るCRAM修復処理の流れの一例を示すフローチャートである。
【0049】
まず、FPGA10の修復部12は、CRAM11の定周期監視によりソフトエラーを検出する(ステップS201)。このとき、修復部12は、CRAM11の状態を定周期で監視し、CRC(Cyclic Redundancy Code:巡回冗長符号)等を用いてソフトエラー発生の有無を検出するが、修復部12のソフトエラー検知方式は特に限定されない。
【0050】
次に、修復部12は、CRAM11のデータ反転を修復し(ステップS202)、処理を終了する。このとき、修復部12は、ECC(Error-Correcting Code:誤り訂正符号)による修復や、CRAM11へ正常なデータを再度書き込むことによる修復を行うが、修復部12の修復方式は特に限定されない。
【0051】
[FF修復処理の流れ]
図10を用いて、本実施形態に係るFF修復処理の流れを詳細に説明する。
図10は、実施形態に係るFF修復処理の流れの一例を示すフローチャートである。
【0052】
まず、FPGA10の書き戻し回路113は、多数決回路112から、3系統のフリップフロップ回路111の出力の多数決結果を取得する(ステップS301)。このとき、書き戻し回路113は、フリップフロップ回路111のデータ反転の発生に関わらず、多数決結果を取得する。
【0053】
次に、書き戻し回路113は、多数決回路112から取得した多数決結果をフリップフロップ回路111の入力に書き戻し、データ反転を修復する(ステップS302)。このとき、書き戻し回路113は、フリップフロップ回路111のデータ反転の発生に関わらず、多数決結果を書き戻す。
【0054】
[実施形態の効果]
第1に、上述した本実施形態に係る情報処理装置100では、フレームごとに設定された各処理回路の出力結果を取得して多数決により選択して出力する各処理回路と、回路情報を記憶するCRAM11およびCRAM11のソフトエラーを検出して修復する修復部12を含むFPGA10と、を備える。このため、情報処理装置100では、FPGA10のソフトエラーが発生しても、効果的に出力信号の正常状態を維持することができる。
【0055】
第2に、上述した本実施形態に係る情報処理装置100では、修復部12は、各処理回路を周期的に監視し、各処理回路のいずれかの処理回路でソフトエラーによるデータ反転を検出した場合に、データ反転が発生した処理回路に対してデータ反転を修復する。このため、情報処理装置100では、FPGA10のソフトエラーが発生しても、データ反転を修復することにより、効果的に出力信号の正常状態を維持することができる。
【0056】
第3に、上述した本実施形態に係る情報処理装置100では、各処理回路は、入力データに対して行われた処理結果に基づく値を保持するフリップフロップ回路111と、各処理回路のフリップフロップ回路111の出力を取得し、多数決により選択された値を出力する多数決回路112と、多数決回路112の出力をフリップフロップ回路111に入力してフリップフロップ回路111で保持される値を書き戻す書き戻し回路113とを備える。このため、情報処理装置100では、FPGA10のソフトエラーが発生しても、多数決結果を出力し、書き戻すことにより、効果的に出力信号の正常状態を維持することができる。
【0057】
〔実施形態の変形例〕
図11、
図12を用いて、実施形態の変形例について説明する。
図11は、実施形態の変形例に係るフレームの構成例を示す図である。
図12は、実施形態の変形例に係るFF修復処理の流れの一例を示すフローチャートである。以下に、本変形例に係るFPGAの構成、各処理の流れを順に説明し、最後に本変形例の効果を説明する。
【0058】
[FPGA10-Sの構成]
図11を用いて、本変形例に係るFPGA10-Sの構成を詳細に説明する。なお、上述した実施形態に係るFPGA10と共通する構成や機能については、適宜、説明を省略する。以下では、FPGA10と比較した上で、FPGA10-Sの構成を説明する。
【0059】
上述した実施形態に係るFPGA10では、回路の3重化を図る際、FFの出力について3系統を多数決することで、出力の正常状態を維持しており、またその正常な出力をループバックでFFに再入力することで、FFのデータの書き戻しを行う。しかしながら、FFの単純な3重化ではFPGA10のタイミング設計が厳しくなる場合がある。特に、ステートマシン制御用のFFは回路が複雑なため、タイミング設計に最も厳しいFFとなる。
【0060】
そこで、本変形例に係るFPGA10-Sでは、
図11に示すステートマシン115、比較器(比較回路)116等を有する構成とすることで、ロジックを3重化しているにも関わらず、タイミング設計に余裕を持たせることができる。このとき、FPGA10-Sでは、ステート制御用FF111-Sについては、3系統の出力を多数決するのではなく、比較器116により他2系統と一致しているかの確認を行う。
【0061】
FPGA10-Sは、フレーム110-Sごとに設定された各処理回路を有する。上記の各処理回路は、ステートマシン回路(適宜、「ステートマシン」)115、および比較回路(適宜、「比較器」)116を備える。また、上記の各処理回路は、ステートマシン管理用フリップフロップ回路(適宜、「ステート制御用FF」)111-Sを有する。
【0062】
ステートマシン回路115は、処理回路の状態を切り替える。
【0063】
比較回路116は、ステートマシン回路115から出力される自ステートと、他の処理回路のステートマシン回路とから取得される各他ステートを比較する。また、比較回路116は、自ステートが各他ステートと異なる場合、ステートマシン回路115をアイドル状態に遷移させてステートマシン回路115の動作を抑制する。さらに、比較回路116は、アイドル状態である自ステートが、他の処理回路のステートマシン回路とから取得される各他ステートと一致した場合に、ステートマシン回路115の動作を再開する。
【0064】
[実施形態の変形例に係るFF修復処理の流れ]
図12を用いて、本変形例に係るFF修復処理の流れを説明する。
図12は、実施形態の変形例に係るFF修復処理の流れの一例を示すフローチャートである。なお、本変形例に係る修復処理全体の流れ、CRAM修復処理の流れについては、上述した[修復処理全体の流れ]、[CRAM修復処理の流れ]と共通の処理の流れであるので説明を省略する。
【0065】
まず、FPGA10-Sの比較回路116は、3系統のステートマシン管理用フリップフロップ回路111-Sの出力からステートマシン回路115のステートを比較する(ステップS401)。例えば、
図11に示すフレームA110A-Sにおいて、比較回路116aは、ステート管理用FF111a-Sのステートと図示しない他の2系統のステート管理用FFのステートとを比較する。
【0066】
このとき、比較回路116は、一致しない出力が存在する場合(ステップS402:Yes)、ステップS403の処理に移行し、一致しない出力が存在しない場合(ステップS402:No)、処理を終了する。
【0067】
次に、比較回路116は、一致しない出力が存在するステートマシン回路115のFF111-Sをリセットする(ステップS403)。例えば、
図11に示すフレームA110A-Sにおいて、比較回路116aは、ステート管理用FF111a-Sの出力のみ不一致となっている場合、ステート管理用FF111a-Sをリセットする。なお、ステートマシン115から出力される各種出力は、別途多数決により正常出力状態を維持できるので、後段回路への影響はない。
【0068】
そして、比較回路116は、ステート管理用FFがリセットされた場合に、初期値をステートマシンのアイドル状態(適宜、「IDLEステート」)に設定し(ステップS404)、処理を終了する。
【0069】
また、比較回路116は、その他2系統のステートマシンがIDLEステートに戻った時に、ステートマシンの動作を再開する。例えば、
図11に示すフレームA110A-Sにおいて、比較回路116aは、ステート管理用FF111a-Sをリセットし、ステートマシン115aをIDLEステートとした場合には、その他2系統のステートマシンがIDLEステートに戻った時に、ステートマシン115aの動作を再開する。このため、フレームA110A-S上のステートマシン115aは、自動的にそれ以外2系統のステートマシンの動作と同期することができる。
【0070】
[実施形態の変形例の効果]
第1に、上述した本変形例に係る情報処理装置100では、各処理回路は、当該処理回路の状態を切り替えるステートマシン回路115と、ステートマシン115の回路から出力される自ステートと、他の処理回路のステートマシン回路とから取得される各他ステートを比較する比較回路116とを備え、比較回路116は、自ステートが各他ステートと異なる場合、ステートマシン回路115をアイドル状態に遷移させてステートマシン回路115の動作を抑制する。このため、情報処理装置100では、ステートマシン回路のステートを比較し、ステートマシン回路の動作を抑制することにより、FPGA10-Sのソフトエラーが発生しても、効果的に出力信号の正常状態を維持することができる。
【0071】
第2に、上述した本変形例に係る情報処理装置100では、比較回路116は、アイドル状態である自ステートが、他の処理回路のステートマシン回路とから取得される各他ステートと一致した場合に、ステートマシン回路115の動作を再開する。このため、情報処理装置100では、動作を抑制したステートマシン回路115の動作を再開することにより、FPGA10-Sのソフトエラーが発生しても、効果的に出力信号の正常状態を維持することができる。
【0072】
〔システム〕
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0073】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0074】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPU(Central Processing Unit)および当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0075】
〔ハードウェア〕
次に、情報処理装置100のハードウェア構成例を説明する。
図13は、情報処理装置のハードウェア構成例を説明する図である。
図13に示すように、情報処理装置100は、上述した機能を有するFPGA10、MPU(Micro Processing Unit)20、メインメモリ30およびネットワークインターフェースコントローラ40を有する。また、
図13に示した各部は、相互に接続される。なお、
図13に示す情報処理装置100は、プラント制御用の専用装置内、あるいはサーバや端末などの各種コンピュータに搭載される。例えば、石油、石油化学、化学、ガスなどを用いた各種プラントの運転制御に使用される、DCS、SIS等の各種制御装置、APC(Advanced Process Control)サーバ、APCクライアント、OPC(Open Platform Communications)サーバ、OPCクライアントなどに搭載することができる。
【符号の説明】
【0076】
10、10-S 集積回路(FPGA)
11、11-S コンフィギュレーションメモリ(CRAM)
110、110-S フレーム
111、111-S フリップフロップ回路(FF)
112 多数決回路
113 書き戻し回路
114 マルチプレクサ(MUX)
115 ステートマシン回路
116 比較回路(比較器)
20 MPU
30 メインメモリ
40 ネットワークインターフェースコントローラ
100 情報処理装置