(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024142031
(43)【公開日】2024-10-10
(54)【発明の名称】電子機器、再コンフィグレーション方法およびプログラム
(51)【国際特許分類】
G06F 11/14 20060101AFI20241003BHJP
G06F 11/16 20060101ALI20241003BHJP
【FI】
G06F11/14 638
G06F11/16 666
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023053987
(22)【出願日】2023-03-29
(71)【出願人】
【識別番号】000006507
【氏名又は名称】横河電機株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】河合 慧
(72)【発明者】
【氏名】前田 兼作
【テーマコード(参考)】
5B034
【Fターム(参考)】
5B034CC02
(57)【要約】
【課題】外部回路を追加することなく簡便にソフトエラーを解消することを課題とする。
【解決手段】電子機器(10)は、プログラムROM(11)と、CRAM(121)と、ユーザ処理部(123a)と、コンフィグデータ切替部(122b)と、コンフィグコントローラ(120)と、を備える。プログラムROM(11)は、第1コンフィグデータ(11b)を記憶する。CRAM(121)は、第1コンフィグデータ(11b)がロードされる。ユーザ処理部(123a)は、第1コンフィグデータ(11b)に含まれるユーザ処理を実行する。コンフィグデータ切替部(122b)は、上記ユーザ処理の実行中にCRAM(121)のソフトエラーが検出された場合に、プログラムROM(11)に実体のない第2コンフィグデータ(11c)への切り替えを実行する。コンフィグコントローラ(120)は、第2コンフィグデータ(11c)への切り替えをエラーとして第1コンフィグデータ(11b)をCRAM(121)へ再ロードする。
【選択図】
図2
【特許請求の範囲】
【請求項1】
第1コンフィグデータを記憶する第1記憶部と、
前記第1コンフィグデータがロードされる第2記憶部と、
前記第1コンフィグデータに含まれるユーザ処理を実行するユーザ処理部と、
前記ユーザ処理の実行中に前記第2記憶部のソフトエラーが検出された場合に、前記第1記憶部に実体のない第2コンフィグデータへの切り替えを実行する切替部と、
前記第2コンフィグデータへの切り替えをエラーとして前記第1コンフィグデータを前記第2記憶部へ再ロードするローダと、
を備える、電子機器。
【請求項2】
前記第1記憶部は、コンフィグデータ1つ分の容量である、
請求項1に記載の電子機器。
【請求項3】
プログラマブルロジックデバイスを備え、
前記プログラマブルロジックデバイスは、
前記第2記憶部と、前記ユーザ処理部と、前記切替部と、前記ローダとを備える、
請求項1に記載の電子機器。
【請求項4】
前記切替部は、
前記第1コンフィグデータおよび前記第2コンフィグデータの切り替えが実行可能となるように予め有効化される、
請求項3に記載の電子機器。
【請求項5】
前記切替部は、
任意のトリガ信号が指定されることによる前記ローダへの切替命令の発行が可能であり、前記ソフトエラーが検出された場合のソフトエラー信号が入力された場合に、前記第2コンフィグデータへの切り替えを指示する前記切替命令を前記ローダへ発行するように予め設定される、
請求項3に記載の電子機器。
【請求項6】
前記プログラマブルロジックデバイスは、FPGA(Field Programmable Gate Array)である、
請求項3に記載の電子機器。
【請求項7】
プラントに設けられる、
請求項1に記載の電子機器。
【請求項8】
前記プラントの通信機器として設けられる、
請求項7に記載の電子機器。
【請求項9】
第1コンフィグデータを記憶する第1記憶部と、前記第1コンフィグデータがロードされる第2記憶部とを備えるコンピュータが、
前記第2記憶部にロードされた前記第1コンフィグデータに含まれるユーザ処理を実行し、
前記ユーザ処理の実行中に前記第2記憶部のソフトエラーが検出された場合に、前記第1記憶部に実体のない第2コンフィグデータへの切り替えを実行し、
前記第2コンフィグデータへの切り替えをエラーとして前記第1コンフィグデータを前記第2記憶部へ再ロードする、
処理を実行する、再コンフィグレーション方法。
【請求項10】
第1コンフィグデータを記憶する第1記憶部と、前記第1コンフィグデータがロードされる第2記憶部とを備えるコンピュータに、
前記第2記憶部にロードされた前記第1コンフィグデータに含まれるユーザ処理を実行し、
前記ユーザ処理の実行中に前記第2記憶部のソフトエラーが検出された場合に、前記第1記憶部に実体のない第2コンフィグデータへの切り替えを実行し、
前記第2コンフィグデータへの切り替えをエラーとして前記第1コンフィグデータを前記第2記憶部へ再ロードする、
処理を実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【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)等のデータが破壊されてしまうソフトエラーが発生するリスクが存在する。そのため、信頼性を必要とするロジックを構成する場合については、その対策が必要となる。
【0004】
なお、FPGAのベンダは、標準機能としてソフトエラー検出機能をFPGAに実装している場合が多い。そこで、FPGAのユーザは例えば、かかる検出機能によってソフトエラー信号が出力された場合に、この信号をトリガとしてFPGAを再コンフィグレーションさせる外部回路を予め電子機器に搭載しておくといった対策を採ることができる。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来技術には、外部回路を追加することなく簡便にソフトエラーを解消するうえで、さらなる改善の余地がある。
【0007】
例えば、上述した外部回路を用いる場合、電子機器に予め外部回路を搭載しておく必要がある。このため、例えばこの外部回路を搭載していない電子機器には、従来技術を適用できないという問題がある。
【0008】
この問題に関しては、従来技術が適用可能となるように電子機器を外部回路付きの製品へ交換するという方法が考えられるが、プラントに備えられた電子機器の数は膨大であり、作業コスト、人的コスト、費用コストといったコスト面だけ見ても容易ではない。
【0009】
本発明は、外部回路を追加することなく簡便にソフトエラーを解消することができる電子機器、再コンフィグレーション方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
一側面に係る電子機器は、第1記憶部と、第2記憶部と、ユーザ処理部と、切替部と、ローダと、を備える。前記第1記憶部は、第1コンフィグデータを記憶する。前記第2記憶部は、前記第1コンフィグデータがロードされる。前記ユーザ処理部は、前記第1コンフィグデータに含まれるユーザ処理を実行する。前記切替部は、前記ユーザ処理の実行中に前記第2記憶部のソフトエラーが検出された場合に、前記第1記憶部に実体のない第2コンフィグデータへの切り替えを実行する。前記ローダは、前記第2コンフィグデータへの切り替えをエラーとして前記第1コンフィグデータを前記第2記憶部へ再ロードする。
【0011】
一側面に係る再コンフィグレーション方法は、第1コンフィグデータを記憶する第1記憶部と、前記第1コンフィグデータがロードされる第2記憶部とを備えるコンピュータが、前記第2記憶部にロードされた前記第1コンフィグデータに含まれるユーザ処理を実行し、前記ユーザ処理の実行中に前記第2記憶部のソフトエラーが検出された場合に、前記第1記憶部に実体のない第2コンフィグデータへの切り替えを実行し、前記第2コンフィグデータへの切り替えをエラーとして前記第1コンフィグデータを前記第2記憶部へ再ロードする、処理を実行する。
【0012】
一側面に係るプログラムは、第1コンフィグデータを記憶する第1記憶部と、前記第1コンフィグデータがロードされる第2記憶部とを備えるコンピュータに、前記第2記憶部にロードされた前記第1コンフィグデータに含まれるユーザ処理を実行し、前記ユーザ処理の実行中に前記第2記憶部のソフトエラーが検出された場合に、前記第1記憶部に実体のない第2コンフィグデータへの切り替えを実行し、前記第2コンフィグデータへの切り替えをエラーとして前記第1コンフィグデータを前記第2記憶部へ再ロードする、処理を実行させる。
【発明の効果】
【0013】
一実施形態によれば、外部回路を追加することなく簡便にソフトエラーを解消することができる電子機器、再コンフィグレーション方法およびプログラムを提供することができる。
【図面の簡単な説明】
【0014】
【
図1】既存技術に係る電子機器の構成例を示すブロック図である。
【
図2】実施形態に係る電子機器の構成例を示すブロック図である。
【
図3】実施形態に係る再コンフィグレーション方法の説明図である。
【
図4】実施形態に係る電子機器が実行する処理手順を示すフローチャートである。
【
図5】実施形態に係る電子機器の機能を実現するコンピュータの一例を示すハードウェア構成図である。
【発明を実施するための形態】
【0015】
以下に、本願の開示する電子機器、再コンフィグレーション方法およびプログラムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。また、同一の要素には同一の符号を付し、重複する説明は適宜省略し、各実施形態は、矛盾のない範囲内で適宜組み合わせることができる。
【0016】
また、以下では、実施形態に係る電子機器10(
図2参照)が、FPGA12(
図1参照)を実装している場合を主たる例に挙げて説明を行う。FPGA12は、プログラマブルロジックデバイス(Programmable Logic Device:PLD)の一例であり、ユーザによって内部の論理回路を再構成可能な集積回路である。
【0017】
「コンフィグレーション」は、このFPGA12がプログラムROM(Read Only Memory)11(
図1参照)から論理回路の回路構成情報(論理や配線)をCRAM121(
図1参照)へロードすることを指す。以下では、この「コンフィグレーション」を適宜「コンフィグ」と略称する。これに応じ、ソフトエラー「再コンフィグレーション」は適宜「再コンフィグ」と略称する。「再コンフィグレーション」は、「リセット」もしくは「再起動」と適宜読み替えることができる。
【0018】
また、以下では、実施形態に係る再コンフィグレーション方法が、FPGA12の再コンフィグレーション方法であるものとする。
【0019】
本実施形態に係る再コンフィグレーション方法について、
図1~
図3を用いて説明する。
図1は、既存技術に係る電子機器10Aの構成例を示すブロック図である。
図2は、実施形態に係る電子機器10の構成例を示すブロック図である。
図3は、実施形態に係る再コンフィグレーション方法の説明図である。
【0020】
なお、
図1およびこれに対応する
図2では、本実施形態の説明に必要となる構成要素のみを機能ブロックで示しており、一般的な構成要素についての記載を省略している。
【0021】
[既存技術に係る電子機器の構成例]
まず、既存技術を用いた場合の課題についてより具体的に説明する。
図1に示すように、既存技術に係る電子機器10Aは、プログラムROM11と、FPGA12と、再コンフィグ回路13とを有する。プログラムROM11と、FPGA12と、再コンフィグ回路13とは、例えば電子機器10Aに搭載されたPWB(Printed Wired Board)上に実装される。
【0022】
プログラムROM11は、コンフィグデータ11aを記憶する。コンフィグデータ11aは、FPGA12のCRAM121へロードされる回路構成情報を含むデータである。コンフィグデータ11aは、「プログラムデータ」と読み替えてもよい。なお、プログラムROM11は、コスト面等の観点から、容量がFPGA12のプログラムデータ1つ分に制約される。
【0023】
FPGA12は、上述したように、ユーザによって内部の論理回路を再構成可能な集積回路である。FPGA12は、コンフィグコントローラ120と、CRAM121と、標準機能ブロック122と、ユーザ論理ブロック123とを有する。
【0024】
コンフィグコントローラ120は、いわゆる「ローダ」に相当する。コンフィグコントローラ120は、電子機器10Aの電源が投入されてFPGA12が起動すると、プログラムROM11からコンフィグデータ11aを読み込んでCRAM121へロードするコンフィグを実行する。
【0025】
また、コンフィグコントローラ120は、再コンフィグ回路13から再コンフィグ命令を受け付けた場合に、プログラムROM11からコンフィグデータ11aを再度読み込んでCRAM121へ再ロードする再コンフィグを実行する。
【0026】
CRAM121は、メモリイメージ上に回路構成情報を含むコンフィグデータ11aを展開する。
【0027】
標準機能ブロック122は、FPGA12のベンダが提供する標準機能を実行する論理ブロックである。標準機能ブロック122は、ソフトエラー検出部122aを有する。ソフトエラー検出部122aは、宇宙線等の外乱の影響によるソフトエラーの発生を監視し、ソフトエラーが発生した場合にソフトエラー検出信号を出力する。
【0028】
ユーザ論理ブロック123は、FPGA12のユーザによって任意に再構成可能な論理ブロックである。ユーザ論理ブロック123は、ユーザ処理部123aを有する。ユーザ処理部123aは、ユーザによってハードウェア記述言語(Hardware Description Language:HDL)を使って任意に記述されたアルゴリズムによる処理を実行する。
【0029】
ところで、既存技術では、前述のソフトエラーが発生した場合の対策として、予め外部回路を搭載しておき、ソフトエラー信号をトリガとしてこの外部回路に再コンフィグ命令を発行させることで再コンフィグを実行し、ソフトエラーを解消する場合がある。
【0030】
再コンフィグ回路13は、この外部回路に相当する。再コンフィグ回路13は、外部ピンPN1,PN2を介してFPGA12と接続される。そして、ソフトエラー検出部122aは、ソフトエラーを検出した場合、外部ピンPN1へ向けてソフトエラー信号を出力する。
【0031】
再コンフィグ回路13は、外部ピンPN1を介してソフトエラー信号を受けると、再コンフィグ命令を外部ピンPN2へ向けて発行し、外部ピンPN2を活性化する。そして、コンフィグコントローラ120が、この再コンフィグ命令による外部ピンPN2の活性化を検出すると、コンフィグコントローラ120は、プログラムROM11からコンフィグデータ11aを再度読み込んでCRAM121へ再ロードする再コンフィグを実行する。
【0032】
しかしながら、この再コンフィグ回路13を用いる場合、電子機器10Aに予め再コンフィグ回路13を搭載しておく必要がある。このため、例えばこの再コンフィグ回路13を搭載していない電子機器には、既存技術を適用できないという問題がある。
【0033】
この問題に関しては、既存技術が適用可能となるように電子機器を再コンフィグ回路13付きの製品へ交換するという方法が考えられるが、プラントに備えられた電子機器の数は膨大であり、フィールド側および計装側を結ぶ通信機器等において特に顕著である。よって、作業コスト、人的コスト、費用コストといったコスト面だけ見ても容易ではない。
【0034】
そこで、実施形態に係る再コンフィグレーション方法では、第1コンフィグデータを記憶するプログラムROM11と、第1コンフィグデータがロードされるCRAM121とを備える電子機器10が、CRAM121にロードされた第1コンフィグデータに含まれるユーザ処理を実行し、ユーザ処理の実行中にCRAM121のソフトエラーが検出された場合に、プログラムROM11に実体のない第2コンフィグデータへの切り替えを実行し、第2コンフィグデータへの切り替えをエラーとして第1コンフィグデータをCRAM121へ再ロードする、処理を実行することとした。
【0035】
[実施形態に係る電子機器の構成例]
実施形態に係る電子機器10の構成例を
図2に示す。なお、
図2は、
図1と対応しているため、ここでは
図1と異なる点について主に説明する。
【0036】
図2に示すように、実施形態に係る電子機器10は、プログラムROM11に、第1コンフィグデータ11bが記憶されるのに併せて、第2コンフィグデータ11cが記憶されていると偽装されている点が既存技術に係る電子機器10Aとは異なる。
【0037】
第1コンフィグデータ11bは、
図1に示したコンフィグデータ11aと同一である。また、第1コンフィグデータ11bは、電源投入時に第1にCRAM121へロードされるデフォルトのコンフィグデータである。
【0038】
一方、第2コンフィグデータ11cは、実体がない。第2コンフィグデータ11cは、後述するコンフィグデータ切替命令の設定上、プログラムROM11に記憶されているように見せかけられている。すなわち、第2コンフィグデータ11cは、
図2に示すように、「ダミー」のコンフィグデータである。
【0039】
また、電子機器10は、標準機能ブロック122がさらにコンフィグデータ切替部122bを有する点が既存技術に係る電子機器10Aとは異なる。コンフィグデータ切替部122bは、FPGA12のベンダが提供する標準機能のうちの一つであるコンフィグデータの切り替えを実行する。本実施形態では、この機能が実行可能となるように、コンフィグデータ切替部122bは、
図2に示すようにユーザにより予め「有効化」されている。
【0040】
コンフィグデータ切替部122bは、ユーザが指定した任意のトリガ信号が入力されると、コンフィグデータの切り替えを行うよう指示するコンフィグデータ切替命令をコンフィグコントローラ120へ発行するように設けられている。
【0041】
本実施形態では、コンフィグデータ切替部122bは、ソフトエラー検出部122aからのソフトエラー信号がトリガ信号としてユーザにより予め指定される。また、コンフィグデータ切替部122bは、ソフトエラー信号が入力された場合に、第1コンフィグデータ11bから第2コンフィグデータ11cへの切り替えを指示するコンフィグデータ切替命令を発行するようにユーザにより予め指定される。
【0042】
これにより、本実施形態では、コンフィグデータ切替部122bは、ソフトエラー検出部122aからソフトエラー信号が入力された場合に、第1コンフィグデータ11bから第2コンフィグデータ11cへの切り替えを指示するコンフィグデータ切替命令をコンフィグコントローラ120へ発行する。このように構成された電子機器10が実行する再コンフィグレーション方法を
図3に示す。
【0043】
[実施形態に係る再コンフィグレーション方法の説明]
図3に示すように、実施形態に係る再コンフィグレーション方法では、電子機器10が電源オンされると、FPGA12のコンフィグコントローラ120がプログラムROM11の第1コンフィグデータ11bをCRAM121に対しロードするコンフィグを実行する。
【0044】
そして、コンフィグコントローラ120は、電子機器10の起動中にコンフィグデータ切替部122bからコンフィグデータ切替命令を受け付けると、プログラムROM11の第2コンフィグデータ11cをCRAM121に対しロードする再コンフィグを実行する。
【0045】
ただし、上述したように第2コンフィグデータ11cはダミーデータであり実体がないので、この再コンフィグは「エラー」となる。実施形態に係る再コンフィグレーション方法では、このように第2コンフィグデータ11cへの再コンフィグがエラーとなるように敢えて電子機器10を構成している。
【0046】
そして、このように第2コンフィグデータ11cへの再コンフィグがエラーとなると、コンフィグコントローラ120は、デフォルトである第1コンフィグデータ11bをCRAM121に対しロードする再コンフィグを実行する。これにより、実施形態に係る再コンフィグレーション方法によれば、ソフトエラーに対し第1コンフィグデータ11bによる再コンフィグが実行されることとなるので、CRAM121には第1コンフィグデータ11bが再ロードされ、ソフトエラーを解消することができる。
【0047】
このように、実施形態に係る再コンフィグレーション方法では、第2コンフィグデータ11cへの再コンフィグにつきエラーが発生する状況を敢えて作り出すことによって、最終的に第1コンフィグデータ11bによる再コンフィグを実現可能としている。
【0048】
すなわち、実施形態に係る再コンフィグレーション方法では、FPGA12をリセットさせるリセットアルゴリズムでないコンフィグデータの切り替えアルゴリズムを用いて実質的にFPGA12のリセットを実現させている。
【0049】
したがって、実施形態に係る再コンフィグレーション方法によれば、FPGA12のベンダが標準機能としてリセット機能を提供しなくとも、これに代替してコンフィグデータ切り替え機能によってFPGA12をリセットし、ソフトエラーを解消することができる。
【0050】
また、これにより、仮にFPGA12のベンダからリセット機能が提供された場合の、既存の電子機器10に対するコンフィグデータの置き換え、あるいは、製品の交換といった作業は必須ではなくなる。
【0051】
図2の説明に戻る。また、実施形態に係る再コンフィグレーション方法によれば、
図2に示すように、再コンフィグ回路13の実装は「不要」となる。また、これに伴い、外部ピンPN1,PN2の使用も不要となる。したがって、実施形態に係る再コンフィグレーション方法によれば、既存の電子機器10を再コンフィグ回路13付きの製品へ交換する必要はなくなり、簡便にソフトエラーを解消することが可能となる。
【0052】
また、実施形態に係る再コンフィグレーション方法によれば、プログラムROM11には実体のない第2コンフィグデータ11cが偽装される。すなわち実際には、第2コンフィグデータ11cによりプログラムROM11を使用されない。したがって、実施形態に係る再コンフィグレーション方法によれば、プログラムROM11にはコンフィグデータ1つ分の容量しかないという制約があっても、プログラムROM11を交換することなく、簡便にソフトエラーを解消することが可能となる。
【0053】
以上から、実施形態に係る再コンフィグレーション方法は、膨大な数の電子機器10が設けられるプラントなどにおいて特に有用となる。
【0054】
[処理手順]
次に、実施形態に係る電子機器10が実行する処理手順について、
図4を用いて説明する。
図4は、実施形態に係る電子機器10が実行する処理手順を示すフローチャートである。
【0055】
図4に示すように、まず予め電子機器10は、ユーザの指定によりコンフィグデータ切替部122bを有効化する(ステップS101)。そして、ユーザによりこのコンフィグデータ切替部122bに対し、ソフトエラー信号をトリガとして第2コンフィグデータ11cへの切り替えを行うように指定が行われる(ステップS102)。
【0056】
これを前提として、電子機器10は、電源オンが行われると(ステップS103)、まずデフォルトの第1コンフィグデータ11bをCRAM121へロードする(ステップS104)。
【0057】
そして、電子機器10は、ユーザ処理部123aがユーザ処理を実行する(ステップS105)。ユーザ処理の実行中、ソフトエラー検出部122aは、ソフトエラーの発生を監視する(ステップS106)。
【0058】
ここで、ソフトエラーが発生したと判定された場合(ステップS106,Yes)、電子機器10は、コンフィグデータ切替部122bが、コンフィグコントローラ120に対し、コンフィグデータ切替命令を発行する(ステップS107)。これに応じ、コンフィグコントローラ120は、第2コンフィグデータ11cへの切り替えを実行する(ステップS108)。
【0059】
ただし、第2コンフィグデータ11cは実体のないダミーのコンフィグデータであるので、切り替えエラーが発生することとなる(ステップS109)。
【0060】
すると、電子機器10は、コンフィグコントローラ120が、異常処理として第1コンフィグデータ11bを再ロードする(ステップS110)。これにより、電子機器10は、ソフトエラーを解消する。そして、電子機器10は、ステップS105からの処理を繰り返す。
【0061】
また、ステップS106においてソフトエラーが発生していなければ(ステップS106,No)、電子機器10は、ステップS105からの処理を繰り返すこととなる。
【0062】
[効果]
上述してきたように、実施形態に係る電子機器10は、プログラムROM11(「第1記憶部」の一例に相当)と、CRAM121(「第2記憶部」の一例に相当)と、ユーザ処理部123aと、コンフィグデータ切替部122bと、コンフィグコントローラ120(「ローダ」の一例に相当)と、を備える。プログラムROM11は、第1コンフィグデータ11bを記憶する。CRAM121は、第1コンフィグデータ11bがロードされる。ユーザ処理部123aは、第1コンフィグデータ11bに含まれるユーザ処理を実行する。コンフィグデータ切替部122bは、上記ユーザ処理の実行中にCRAM121のソフトエラーが検出された場合に、プログラムROM11に実体のない第2コンフィグデータ11cへの切り替えを実行する。コンフィグコントローラ120は、第2コンフィグデータ11cへの切り替えをエラーとして第1コンフィグデータ11bをCRAM121へ再ロードする。したがって、実施形態に係る電子機器10によれば、再コンフィグ回路13(「外部回路」の一例に相当)を追加することなく簡便にソフトエラーを解消することができる。
【0063】
また、プログラムROM11は、コンフィグデータ1つ分の容量である。したがって、実施形態に係る電子機器10によれば、プログラムROM11にはコンフィグデータ1つ分の容量しかないという制約があっても、実体のない第2コンフィグデータ11cの存在を偽装することで、プログラムROM11を交換することなく、簡便にソフトエラーを解消することが可能となる。
【0064】
また、電子機器10は、プログラマブルロジックデバイスを備える。プログラマブルロジックデバイスは、CRAM121と、ユーザ処理部123aと、コンフィグデータ切替部122bと、コンフィグコントローラ120とを備える。したがって、実施形態に係る電子機器10によれば、プログラマブルロジックデバイス、すなわちPAL(Programmable Array Logic)やGAL(Generic Array Logic)、CPLD(Complex Programmable Logic Device)、FPGA12等が搭載されている場合において、再コンフィグ回路13を追加することなく簡便にソフトエラーを解消することができる。
【0065】
また、コンフィグデータ切替部122bは、第1コンフィグデータ11bおよび第2コンフィグデータ11cの切り替えが実行可能となるように予め有効化される。したがって、実施形態に係る電子機器10によれば、FPGA12の標準機能であるコンフィグデータ切り替えを活用することによって、再コンフィグ回路13を追加することなく簡便にソフトエラーを解消することができる。
【0066】
また、コンフィグデータ切替部122bは、任意のトリガ信号が指定されることによるコンフィグコントローラ120へのコンフィグデータ切替命令(「切替命令」の一例に相当)の発行が可能であり、上記ソフトエラーが検出された場合のソフトエラー信号が入力された場合に、第2コンフィグデータ11cへの切り替えを指示するコンフィグデータ切替命令をコンフィグコントローラ120へ発行するように予め設定される。したがって、実施形態に係る電子機器10によれば、第2コンフィグデータ11cへの再コンフィグにつきエラーが発生する状況を敢えて作り出すことによって、最終的に第1コンフィグデータ11bによる再コンフィグを実現可能としている。すなわち、実施形態に係る電子機器10は、FPGA12をリセットさせるリセットアルゴリズムでないコンフィグデータの切り替えアルゴリズムを用いて実質的にFPGA12のリセットを実現させている。したがって、実施形態に係る電子機器10によれば、FPGA12のベンダが標準機能としてリセット機能を提供しなくとも、これに代替してコンフィグデータ切り替え機能によってFPGA12をリセットし、ソフトエラーを解消することができる。
【0067】
また、上記プログラマブルロジックデバイスは、FPGA12である。したがって、実施形態に係る電子機器10によれば、FPGA12が搭載されている場合において、再コンフィグ回路13を追加することなく簡便にソフトエラーを解消することができる。
【0068】
また、電子機器10は、プラントに設けられる。したがって、実施形態に係る電子機器10によれば、膨大な数の電子機器10が設けられるプラントにおいて、再コンフィグ回路13を追加することなく簡便にソフトエラーを解消することができる。
【0069】
また、電子機器10は、プラントの通信機器として設けられる。したがって、実施形態に係る電子機器10によれば、プラントにおいて他の機器に比べてより多く設けられがちである通信機器について、再コンフィグ回路13を追加することなく簡便にソフトエラーを解消することができる。
【0070】
また、実施形態に係る再コンフィグレーション方法は、第1コンフィグデータ11bを記憶するプログラムROM11と、第1コンフィグデータ11bがロードされるCRAM121とを備える電子機器10(「コンピュータ」の一例に相当)が、第1コンフィグデータ11bに含まれるユーザ処理を実行し、ユーザ処理の実行中にCRAM121のソフトエラーが検出された場合に、プログラムROM11に実体のない第2コンフィグデータ11cへの切り替えを実行し、第2コンフィグデータ11cへの切り替えをエラーとして第1コンフィグデータ11bをCRAM121へ再ロードする、処理を実行する。したがって、実施形態に係る再コンフィグレーション方法によれば、再コンフィグ回路13を追加することなく簡便にソフトエラーを解消することができる。
【0071】
また、実施形態に係るプログラムは、第1コンフィグデータ11bを記憶するプログラムROM11と、第1コンフィグデータ11bがロードされるCRAM121とを備える電子機器10(「コンピュータ」の一例に相当)に、第1コンフィグデータ11bに含まれるユーザ処理を実行し、ユーザ処理の実行中にCRAM121のソフトエラーが検出された場合に、プログラムROM11に実体のない第2コンフィグデータ11cへの切り替えを実行し、第2コンフィグデータ11cへの切り替えをエラーとして第1コンフィグデータ11bをCRAM121へ再ロードする、処理を実行させる。したがって、実施形態に係るプログラムによれば、再コンフィグ回路13を追加することなく簡便にソフトエラーを解消することができる。
【0072】
また、実施形態に係るプログラムによれば、プログラムを実現するための追加要素がFPGA12の内部で閉じているため、既存の電子機器10に対して、後から追加する形(FPGA12内部の論理回路の再構成)で適用が可能である。
【0073】
[その他の実施形態]
さて、これまで本発明の実施形態について説明したが、本発明は上述した実施形態以外にも、種々の異なる形態にて実施されてよい。
【0074】
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【0075】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0076】
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0077】
[ハードウェア]
上述してきた実施形態に係る電子機器10は、例えば
図5に示すような構成のコンピュータ1000によって実現される。
図5は、実施形態に係る電子機器10の機能を実現するコンピュータ1000の一例を示すハードウェア構成図である。
【0078】
図5に示すように、コンピュータ1000は、通信装置1000a、二次記憶装置1000b、メモリ1000c、プロセッサ1000dを有する。また、
図5に示した各部は、バス等で相互に接続される。
【0079】
通信装置1000aは、NIC(Network Interface Card)などであり、他の装置との通信を行う。二次記憶装置1000bは、フラッシュメモリやHDD等によって実現され、
図2に示した機能を動作させるプログラムやデータベースを記憶する。
【0080】
プロセッサ1000dは、
図2に示した各処理部と同様の処理を実行するプログラムを二次記憶装置1000b等から読み出してメモリ1000cに展開することで、
図2等で説明した各機能を実行するスレッドを動作させる。例えば、このスレッドは、電子機器10が有する各処理部と同様の機能を実行する。具体的には、プロセッサ1000dは、FPGA12が有する各機能ブロックと同様の機能を有するプログラムを二次記憶装置1000b等から読み出す。そして、プロセッサ1000dは、FPGA12が有する各機能ブロックと同様の処理を実行するスレッドを実行する。
【0081】
このように、コンピュータ1000は、プログラムを読み出して実行することで各種処理方法を実行する電子機器として動作する。また、コンピュータ1000は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施形態と同様の機能を実現することもできる。なお、ここに言うプログラムは、コンピュータ1000のみによって実行されることに限定されるものではない。例えば、他のハードウェア構成を有するコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【0082】
このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、HDD、フレキシブルディスク(FD)、CD-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disc)などのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。かかるプログラムが記録された記録媒体も、本開示の一態様である。
【0083】
[その他]
開示される技術特徴の組み合わせのいくつかの例を以下に記載する。
【0084】
(1)
第1コンフィグデータを記憶する第1記憶部と、
前記第1コンフィグデータがロードされる第2記憶部と、
前記第1コンフィグデータに含まれるユーザ処理を実行するユーザ処理部と、
前記ユーザ処理の実行中に前記第2記憶部のソフトエラーが検出された場合に、前記第1記憶部に実体のない第2コンフィグデータへの切り替えを実行する切替部と、
前記第2コンフィグデータへの切り替えをエラーとして前記第1コンフィグデータを前記第2記憶部へ再ロードするローダと、
を備える、電子機器。
(2)
前記第1記憶部は、コンフィグデータ1つ分の容量である、
(1)に記載の電子機器。
(3)
プログラマブルロジックデバイスを備え、
前記プログラマブルロジックデバイスは、
前記第2記憶部と、前記ユーザ処理部と、前記切替部と、前記ローダとを備える、
(1)または(2)に記載の電子機器。
(4)
前記切替部は、
前記第1コンフィグデータおよび前記第2コンフィグデータの切り替えが実行可能となるように予め有効化される、
(3)に記載の電子機器。
(5)
前記切替部は、
任意のトリガ信号が指定されることによる前記ローダへの切替命令の発行が可能であり、前記ソフトエラーが検出された場合のソフトエラー信号が入力された場合に、前記第2コンフィグデータへの切り替えを指示する前記切替命令を前記ローダへ発行するように予め設定される、
(3)または(4)に記載の電子機器。
(6)
前記プログラマブルロジックデバイスは、FPGA(Field Programmable Gate Array)である、
(3)、(4)または(5)に記載の電子機器。
(7)
プラントに設けられる、
(1)~(6)のいずれか一つに記載の電子機器。
(8)
前記プラントの通信機器として設けられる、
(7)に記載の電子機器。
(9)
第1コンフィグデータを記憶する第1記憶部と、前記第1コンフィグデータがロードされる第2記憶部とを備えるコンピュータが、
前記第2記憶部にロードされた前記第1コンフィグデータに含まれるユーザ処理を実行し、
前記ユーザ処理の実行中に前記第2記憶部のソフトエラーが検出された場合に、前記第1記憶部に実体のない第2コンフィグデータへの切り替えを実行し、
前記第2コンフィグデータへの切り替えをエラーとして前記第1コンフィグデータを前記第2記憶部へ再ロードする、
処理を実行する、再コンフィグレーション方法。
(10)
第1コンフィグデータを記憶する第1記憶部と、前記第1コンフィグデータがロードされる第2記憶部とを備えるコンピュータに、
前記第2記憶部にロードされた前記第1コンフィグデータに含まれるユーザ処理を実行し、
前記ユーザ処理の実行中に前記第2記憶部のソフトエラーが検出された場合に、前記第1記憶部に実体のない第2コンフィグデータへの切り替えを実行し、
前記第2コンフィグデータへの切り替えをエラーとして前記第1コンフィグデータを前記第2記憶部へ再ロードする、
処理を実行させる、プログラム。
(11)
プログラムが記録されたコンピュータ読み取り可能な記録媒体であって、
前記プログラムは、
第1コンフィグデータを記憶する第1記憶部と、前記第1コンフィグデータがロードされる第2記憶部とを備えるコンピュータに、
前記第2記憶部にロードされた前記第1コンフィグデータに含まれるユーザ処理を実行し、
前記ユーザ処理の実行中に前記第2記憶部のソフトエラーが検出された場合に、前記第1記憶部に実体のない第2コンフィグデータへの切り替えを実行し、
前記第2コンフィグデータへの切り替えをエラーとして前記第1コンフィグデータを前記第2記憶部へ再ロードする、
処理を実行させる、コンピュータ読み取り可能な記録媒体。
【符号の説明】
【0085】
10,10A 電子機器
11 プログラムROM
11a コンフィグデータ
11b 第1コンフィグデータ
11c 第2コンフィグデータ
12 FPGA
13 再コンフィグ回路
120 コンフィグコントローラ
121 CRAM
122 標準機能ブロック
122a ソフトエラー検出部
122b コンフィグデータ切替部
123 ユーザ論理ブロック
123a ユーザ処理部