(57)【要約】【課題】ＦＰＧＡのメモリ容量を増大させずにソフトエラーを解消することのできるＦＰＧＡを提供する。【解決手段】制御装置は、ＦＰＧＡへ入力するトレースデータを保存するトレースデータ保存部と、前記ＦＰＧＡが再コンフィギュレーションした後に、前記トレースデータのうち、前記ＦＰＧＡにソフトエラーが発生する直前の１トランザクション分のトレースデータを取得し、取得した前記１トランザクション分のトレースデータを前記ＦＰＧＡに出力するトレースデータ送信部と、を備える。【選択図】図６
2020149467.tif 000002
【特許請求の範囲】
【請求項１】
ＦＰＧＡへ入力するトレースデータを保存するトレースデータ保存部と、
前記ＦＰＧＡが再コンフィギュレーションした後に、前記トレースデータのうち、前記ＦＰＧＡにソフトエラーが発生する直前の１トランザクション分のトレースデータを取得し、取得した前記１トランザクション分のトレースデータを前記ＦＰＧＡに出力するトレースデータ送信部と、
を備える制御装置。
【請求項２】
前記ソフトエラーを検知するソフトエラー検知部、
を備え、
前記トレースデータ送信部は、
前記ソフトエラー検知部がソフトエラーを検知した場合に、当該ソフトエラーが発生する直前の１トランザクション分のトレースデータを取得し、取得した前記１トランザクション分のトレースデータを前記ＦＰＧＡに出力する、
請求項１に記載の制御装置。
【請求項３】
前記ＦＰＧＡ及び前記トレースデータ送信部を制御する制御部であって、回路データを用いて前記ＦＰＧＡに再コンフィギュレーションを実行させた後に、前記トレースデータを前記ＦＰＧＡへ出力することを前記トレースデータ送信部に実行させる制御部、
を備える請求項１または請求項２に記載の制御装置。
【請求項４】
請求項１から請求項３の何れか一項に記載の制御装置と、
ＦＰＧＡと、
を備える制御システム。
【請求項５】
ＦＰＧＡへ入力するトレースデータを保存することと、
前記ＦＰＧＡが再コンフィギュレーションした後に、前記トレースデータのうち、前記ＦＰＧＡにソフトエラーが発生する直前の１トランザクション分のトレースデータを取得することと、
取得した前記１トランザクション分のトレースデータを前記ＦＰＧＡに出力することと、
を含む制御方法。
【請求項６】
コンピュータに、
ＦＰＧＡへ入力するトレースデータを保存することと、
前記ＦＰＧＡが再コンフィギュレーションした後に、前記トレースデータのうち、前記ＦＰＧＡにソフトエラーが発生する直前の１トランザクション分のトレースデータを取得することと、
取得した前記１トランザクション分のトレースデータを前記ＦＰＧＡに出力することと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、制御システム、制御方法及びプログラムに関する。
【背景技術】
【０００２】
中性子などの放射線（宇宙線を含む）は、デジタル回路を構成する半導体集積回路においてソフトエラーを生じさせることが知られている。
特許文献１には、関連する技術として、ソフトエラー発生時に、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）のリコンフィギュレーションを行った後、ＩＯ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）ポートのリセットを行い、通信を再開する技術が開示されている。
特許文献２には、関連する技術として、ソフトエラー発生直前のフリップフロップの値を保存し、ソフトエラー発生後にその値を書き込み、通信を継続する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−０１４３５３号公報
【特許文献２】特開２０１１−１７０６０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、ＦＰＧＡにおいてソフトエラーが発生したときに、特許文献１に記載の技術を用いた場合、ＦＰＧＡ内部のレジスタの値がソフトエラーの発生する直前とは異なる可能性がある。そのため、ＦＰＧＡが正常に動作しない可能性がある。
また、ＦＰＧＡにおいてソフトエラーが発生したときに、特許文献２に記載の技術を用いた場合、すなわち、ＦＰＧＡ内部の全てのフリップフロップの値を保存する場合、復旧のためにはＣＲＡＭ（Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）として大容量のメモリが必要になる。
【０００５】
本発明の各態様は、上記の課題を解決することのできる制御装置、制御システム、制御方法及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明の一態様によれば、制御装置は、ＦＰＧＡへ入力するトレースデータを保存するトレースデータ保存部と、前記ＦＰＧＡが再コンフィギュレーションした後に、前記トレースデータのうち、前記ＦＰＧＡにソフトエラーが発生する直前の１トランザクション分のトレースデータを取得し、取得した前記１トランザクション分のトレースデータを前記ＦＰＧＡに出力するトレースデータ送信部と、を備える。
【０００７】
上記目的を達成するために、本発明の別の態様によれば、制御システムは、上記の制御装置と、ＦＰＧＡと、を備える。
【０００８】
上記目的を達成するために、本発明の別の態様によれば、制御方法は、ＦＰＧＡへ入力するトレースデータを保存することと、前記ＦＰＧＡが再コンフィギュレーションした後に、前記トレースデータのうち、前記ＦＰＧＡにソフトエラーが発生する直前の１トランザクション分のトレースデータを取得することと、取得した前記１トランザクション分のトレースデータを前記ＦＰＧＡに出力することと、を含む。
【０００９】
上記目的を達成するために、本発明の別の態様によれば、プログラムは、コンピュータに、ＦＰＧＡへ入力するトレースデータを保存することと、前記ＦＰＧＡが再コンフィギュレーションした後に、前記トレースデータのうち、前記ＦＰＧＡにソフトエラーが発生する直前の１トランザクション分のトレースデータを取得することと、取得した前記１トランザクション分のトレースデータを前記ＦＰＧＡに出力することと、を実行させる。
【発明の効果】
【００１０】
本発明の各態様によれば、ＦＰＧＡにおけるメモリ容量を増大させずにＦＰＧＡのソフトエラーを解消することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態による通信システムの構成を示す図である。
【図２】本発明の一実施形態によるＦＰＧＡの構成を示す図である。
【図３】本発明の一実施形態によるリトライ制御部の構成を示す図である。
【図４】本発明の一実施形態によるトレースデータ制御部の構成を示す図である。
【図５】本発明の一実施形態による通信システムの処理フローを示す図である。
【図６】本発明の実施形態による最小構成の通信システムを示す図である。
【図７】本発明の実施形態による最小構成の通信システムの処理フローを示す図である。
【図８】少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照しながら実施形態について詳しく説明する。
＜実施形態＞
本発明の一実施形態による通信システム１は、ソフトエラー発生直前のトランザクションの入力データをトレースし、その後、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）内部に備えられたＣＲＡＭ（Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）内の回路データについて再コンフィギュレーションを実行することで復旧し、トレースした入力データをＦＰＧＡに入力することでソフトエラーが発生する直前の状態まで修正するシステムである。
通信システム１は、図１に示すように、第１装置間通信制御カード２（制御システムの一例）、第２装置間通信制御カード３（制御システムの一例）を備える。
なお、図１では、同一ノードの配線に符号（Ｌ１〜Ｌ１６）を付与している。
【００１３】
第１装置間通信制御カード２は、通信制御用のカードである。第１装置間通信制御カード２は、ＦＰＧＡ１０ａ、リトライ制御部２０ａ（制御装置の一例、制御部の一例）、ＣＰＲＯＭ（Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｐｒｏｇｒａｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０ａ（制御装置の一例）、トレースデータ制御部４０ａ（制御装置の一例）、データ転送部５０ａを備える。
第１装置間通信制御カード２は、第１端子、第２端子、第３端子、第４端子、第５端子、第６端子、第７端子を備える。
第１装置間通信制御カード２の第１端子は、通信システム１の外部へデータを出力する端子である。
第１装置間通信制御カード２の第２端子は、通信システム１の外部からデータを受ける端子である。
第１装置間通信制御カード２の第３端子、第４端子、第６端子のそれぞれは、第２装置間通信制御カード３へデータを出力する端子である。
第１装置間通信制御カード２の第５端子、第７端子のそれぞれは、第２装置間通信制御カード３からデータを受ける端子である。
【００１４】
ＦＰＧＡ１０ａは、コンフィギュレーションプログラムによって回路構成が決定されるプログラマブルロジックデバイスである。
ＦＰＧＡ１０ａは、第１端子、第２端子、第３端子、第４端子、第５端子、第６端子、第７端子、第８端子、第９端子を備える。
【００１５】
リトライ制御部２０ａは、ＦＰＧＡ１０ａの再コンフィギュレーションを制御する制御部である。
リトライ制御部２０ａは、第１端子、第２端子、第３端子、第４端子、第５端子、第６端子、第７端子、第８端子を備える。
【００１６】
ＣＰＲＯＭ３０ａは、ＦＰＧＡ１０ａの回路データを保存している記憶装置であり、再コンフィギュレーションを実行するときに、その回路データをＣＲＡＭに書き込むために使用される。
ＣＰＲＯＭ３０ａは、第１端子、第２端子を備える。
【００１７】
トレースデータ制御部４０ａは、トレースデータについての通信を制御する制御部である。
トレースデータ制御部４０ａは、第１端子、第２端子、第３端子、第４端子を備える。
【００１８】
データ転送部５０ａは、入力される複数のデータのいずれか１つを出力する。具体的には、通常時は配線Ｌ１１から入力されるデータを出力し、ソフトエラー発生後の修復の際のみ配線Ｌ１０から入力される１トランザクション分のデータを出力する。
データ転送部５０ａは、第１端子、第２端子、第３端子を備える。
【００１９】
ＦＰＧＡ１０ａの第１端子は、第１装置間通信制御カード２の第１端子に接続される。
ＦＰＧＡ１０ａの第２端子は、データ転送部５０ａの第３端子に接続される。
ＦＰＧＡ１０ａの第３端子は、リトライ制御部２０ａの第３端子に接続される。
ＦＰＧＡ１０ａの第４端子は、リトライ制御部２０ａの第４端子に接続される。
ＦＰＧＡ１０ａの第５端子は、リトライ制御部２０ａの第５端子に接続される。
ＦＰＧＡ１０ａの第６端子は、ＣＰＲＯＭ３０ａの第１端子に接続される。
ＦＰＧＡ１０ａの第７端子は、ＣＰＲＯＭ３０ａの第２端子に接続される。
ＦＰＧＡ１０ａの第８端子は、第１装置間通信制御カード２の第６端子に接続される。
ＦＰＧＡ１０ａの第９端子は、第１装置間通信制御カード２の第７端子に接続される。
【００２０】
リトライ制御部２０ａの第１端子は、トレースデータ制御部４０ａの第２端子に接続される。
リトライ制御部２０ａの第２端子は、トレースデータ制御部４０ａの第３端子に接続される。
リトライ制御部２０ａの第６端子は、第１装置間通信制御カード２の第５端子に接続される。
リトライ制御部２０ａの第７端子は、第１装置間通信制御カード２の第４端子に接続される。
リトライ制御部２０ａの第８端子は、第１装置間通信制御カード２の第３端子に接続される。
【００２１】
トレースデータ制御部４０ａの第１端子は、データ転送部５０ａの第２端子、第１装置間通信制御カード２の第２端子のそれぞれに接続される。
トレースデータ制御部４０ａの第４端子は、データ転送部５０ａの第１端子に接続される。
【００２２】
ＦＰＧＡ１０ａは、図２に示すように、ＣＲＡＭ１０１、ソフトエラー検知部１０２、コンフィギュレーション制御部１０３を備える。
なお、図２に示す配線の符号は、図１に示した配線の符号と対応している。
【００２３】
ＣＲＡＭ１０１は、ユーザロジック１０１１を含むメモリＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。
ユーザロジック１０１１は、ユーザが設計可能な回路データである。ユーザロジック１０１１は、ソフトエラー通知部１０１１１を実現する回路データを含む。
ソフトエラー通知部１０１１１は、ＣＲＡＭ１０１内でソフトエラーが発生した場合に、その発生をリトライ制御部２０ａに通知する。
ＣＲＡＭ１０１は、第１端子、第２端子、第３端子、第４端子、第５端子、第６端子、第７端子を備える。
【００２４】
ソフトエラー検知部１０２は、ＣＲＡＭ１０１内でソフトエラーが発生したことを検知する。ソフトエラー検知部１０２は、ソフトエラーが発生したことを検知すると、その発生を示すソフトエラー検知信号をソフトエラー通知部１０１１１に出力する。
ソフトエラー検知部１０２は、第１端子を備える。
【００２５】
コンフィギュレーション制御部１０３は、リトライ制御部２０ａから再コンフィギュレーション開始指示信号を受けると、ＣＰＲＯＭ３０ａの回路データを用いてＣＲＡＭ１０１に対して再コンフィギュレーションを実行する。再コンフィギュレーションとは、コンフィギュレーションを再度実行することである。また、再コンフィギュレーション開始指示信号とは、再コンフィギュレーションを実行することをコンフィギュレーション制御部１０３に指示する信号である。
コンフィギュレーション制御部１０３は、再コンフィギュレーションが完了すると、
再コンフィギュレーションが完了したことを示す再コンフィギュレーション完了通知をリトライ制御部２０ａに出力する。再コンフィギュレーション完了通知とは、再コンフィギュレーションが完了したことを知らせる通知である。
コンフィギュレーション制御部１０３は、第１端子、第２端子、第３端子、第４端子、第５端子を備える。
【００２６】
ＣＲＡＭ１０１の第１端子は、コンフィギュレーション制御部１０３の第５端子に接続される。
ＣＲＡＭ１０１の第２端子は、ＦＰＧＡ１０ａの第２端子に接続される。
ＣＲＡＭ１０１の第３端子は、ソフトエラー検知部１０２の第１端子に接続される。
ＣＲＡＭ１０１の第４端子は、ＦＰＧＡ１０ａの第１端子に接続される。
ＣＲＡＭ１０１の第５端子は、ＦＰＧＡ１０ａの第９端子に接続される。
ＣＲＡＭ１０１の第６端子は、ＦＰＧＡ１０ａの第８端子に接続される。
ＣＲＡＭ１０１の第７端子は、ＦＰＧＡ１０ａの第５端子に接続される。
【００２７】
コンフィギュレーション制御部１０３の第１端子は、ＦＰＧＡ１０ａの第３端子に接続される。
コンフィギュレーション制御部１０３の第２端子は、ＦＰＧＡ１０ａの第４端子に接続される。
コンフィギュレーション制御部１０３の第３端子は、ＦＰＧＡ１０ａの第６端子に接続される。
コンフィギュレーション制御部１０３の第４端子は、ＦＰＧＡ１０ａの第７端子に接続される。
【００２８】
リトライ制御部２０ａは、図３に示すように、ソフトエラー発生通知受信部２０１、通信中断指示部２０２、通信再開指示部２０３、ソフトエラー修復部２０４、再コンフィギュレーション指示部２０５、再コンフィギュレーション完了通知受信部２０６、トレースデータ送信完了通知受信部２０７、トレースデータ送信開始指示部２０８を備える。
なお、図３に示す配線の符号は、図１に示した配線の符号と対応している。
【００２９】
ソフトエラー発生通知受信部２０１は、第２装置間通信制御カード３及びＦＰＧＡ１０ａからソフトエラー発生通知信号を受けると、ソフトエラー修復部２０４にソフトエラー発生通知受信信号を出力する。ソフトエラー発生通知信号とは、ソフトエラーが発生したことを通知する信号である。また、ソフトエラー発生通知受信信号とは、ソフトエラー発生通知信号を受けたことを示す信号である。
ソフトエラー発生通知受信部２０１は、第１端子、第２端子、第３端子を備える。
【００３０】
通信中断指示部２０２は、ソフトエラー修復部２０４から通信中断信号を受けると、第２装置間通信制御カード３に通信中断指示信号を出力する。通信中断信号とは、通信を中断することを示す信号である。また、通信中断指示信号とは、通信を中断することを第２装置間通信制御カード３に指示する信号である。
通信中断指示部２０２は、第１端子、第２端子を備える。
【００３１】
通信再開指示部２０３は、ソフトエラー修復部２０４から通信再開信号を受けると、第２装置間通信制御カード３に通信再開指示信号を出力する。通信再開信号とは、通信を再開することを示す信号である。また、通信再開指示信号とは、通信を再開することを第２装置間通信制御カード３に指示する信号である。
通信再開指示部２０３は、第１端子、第２端子を備える。
【００３２】
ソフトエラー修復部２０４は、ソフトエラー発生通知受信部２０１からソフトエラー発生通知受信信号を受けると、通信中断指示部２０２に通信中断信号を出力する。また、ソフトエラー修復部２０４は、ソフトエラー発生通知受信部２０１からソフトエラー発生通知受信信号を受けると、再コンフィギュレーション指示部２０５に再コンフィギュレーション指示信号を出力する。再コンフィギュレーション指示信号とは、コンフィギュレーションを再度実行することを指示する信号である。
ソフトエラー修復部２０４は、ＦＰＧＡ１０ａにおいてソフトエラーが発生すると、再コンフィギュレーションを実行することをＦＰＧＡ１０ａに指示する。また、ソフトエラー修復部２０４は、ＦＰＧＡ１０ａへの入力トレースデータを再度入力することを、トレースデータ制御部４０ａに指示する。
また、ソフトエラー修復部２０４は、再コンフィギュレーションが完了すると、通信再開指示部２０３に通信再開信号を出力する。
ソフトエラー修復部２０４は、第１端子、第２端子、第３端子、第４端子、第５端子、第６端子、第７端子を備える。
【００３３】
再コンフィギュレーション指示部２０５は、ソフトエラー修復部２０４から再コンフィギュレーション指示信号を受けると、ＦＰＧＡ１０ａに再コンフィギュレーション開始信号を出力する。再コンフィギュレーション開始信号とは、コンフィギュレーションを再度実行することをＦＰＧＡ１０ａに指示する信号である。
再コンフィギュレーション指示部２０５は、第１端子、第２端子を備える。
【００３４】
再コンフィギュレーション完了通知受信部２０６は、ＦＰＧＡ１０ａから再コンフィギュレーション完了通知を受けると、ソフトエラー修復部２０４に再コンフィギュレーション完了通知受信信号を出力する。再コンフィギュレーション完了通知受信信号とは、再コンフィギュレーション完了通知を受けたことを示す信号である。
再コンフィギュレーション完了通知受信部２０６は、第１端子、第２端子を備える。
【００３５】
トレースデータ送信完了通知受信部２０７は、トレースデータ制御部４０ａからトレースデータ送信完了通知を受けると、ソフトエラー修復部２０４にトレースデータ送信完了通知受信信号を出力する。トレースデータ送信完了通知とは、トレースデータの送信が完了したことを知らせる通知である。また、トレースデータ送信完了通知受信信号とは、トレースデータ送信完了通知を受けたことを示す信号である。
トレースデータ送信完了通知受信部２０７は、第１端子、第２端子を備える。
【００３６】
トレースデータ送信開始指示部２０８は、ソフトエラー修復部２０４からトレースデータ送信開始信号を受けると、トレースデータ制御部４０ａにトレースデータ送信開始通知を出力する。トレースデータ送信開始信号とは、トレースデータの送信を開始することを指示する信号である。また、トレースデータ送信開始通知とは、トレースデータの送信を開始したことを知らせる通知である。
トレースデータ送信開始指示部２０８は、第１端子、第２端子を備える。
【００３７】
ソフトエラー発生通知受信部２０１の第１端子は、ソフトエラー修復部２０４の第５端子に接続される。
ソフトエラー発生通知受信部２０１の第２端子は、リトライ制御部２０ａの第５端子に接続される。
ソフトエラー発生通知受信部２０１の第３端子は、リトライ制御部２０ａの第６端子に接続される。
【００３８】
通信中断指示部２０２の第１端子は、ソフトエラー修復部２０４の第６端子に接続される。
通信中断指示部２０２の第２端子は、リトライ制御部２０ａの第７端子に接続される。
【００３９】
通信再開指示部２０３の第１端子は、ソフトエラー修復部２０４の第７端子に接続される。
通信再開指示部２０３の第２端子は、リトライ制御部２０ａの第８端子に接続される。
【００４０】
ソフトエラー修復部２０４の第１端子は、トレースデータ送信開始指示部２０８の第２端子に接続される。
ソフトエラー修復部２０４の第２端子は、トレースデータ送信完了通知受信部２０７の第２端子に接続される。
ソフトエラー修復部２０４の第３端子は、再コンフィギュレーション完了通知受信部２０６の第２端子に接続される。
ソフトエラー修復部２０４の第４端子は、再コンフィギュレーション指示部２０５の第２端子に接続される。
【００４１】
再コンフィギュレーション指示部２０５の第１端子は、リトライ制御部２０ａの第４端子に接続される。
再コンフィギュレーション完了通知受信部２０６の第１端子は、リトライ制御部２０ａの第３端子に接続される。
トレースデータ送信完了通知受信部２０７の第１端子は、リトライ制御部２０ａの第２端子に接続される。
トレースデータ送信開始指示部２０８の第１端子は、リトライ制御部２０ａの第１端子に接続される。
【００４２】
ＣＰＲＯＭ３０ａは、ＦＰＧＡ１０ａに再コンフィギュレーションを実行させるための回路データを保存している。
【００４３】
トレースデータ制御部４０ａは、図４に示すように、トレースデータラッチ部４０１、トレースデータ保存部４０２、トレースデータ送信開始通知受信部４０３、トレースデータ送信部４０４、トレースデータ送信完了通知部４０５を備える。
なお、図４に示す配線の符号は、図１に示した配線の符号と対応している。
【００４４】
トレースデータラッチ部４０１は、ＦＰＧＡ１０ａへ入力する入力データをラッチする。
トレースデータラッチ部４０１は、第１端子、第２端子を備える。
【００４５】
トレースデータ保存部４０２は、トレースデータラッチ部４０１がラッチした入力データ（トレースデータ）を１トランザクション分保存する。
トレースデータ保存部４０２は、第１端子、第２端子を備える。
【００４６】
トレースデータ送信開始通知受信部４０３は、リトライ制御部２０ａからトレースデータ送信開始通知を受けると、トレースデータ送信部４０４にトレースデータ送信開始指示を出力する。
トレースデータ送信開始通知受信部４０３は、第１端子、第２端子を備える。
【００４７】
トレースデータ送信部４０４は、トレースデータ送信開始通知受信部４０３からトレースデータ送信開始指示を受けると、トレースデータ保存部４０２からトレースデータを取得する。その後、トレースデータ送信部４０４は、ＦＰＧＡ１０ａにトレースデータを出力する。トレースデータ送信部４０４は、出力が完了すると、トレースデータ送信完了通知部４０５に完了通知を出力する。
トレースデータ送信部４０４は、第１端子、第２端子、第３端子、第４端子を備える。
【００４８】
トレースデータ送信完了通知部４０５は、トレースデータ送信部４０４から完了通知を受信すると、リトライ制御部２０ａにトレースデータ送信完了通知を出力する。
トレースデータ送信完了通知部４０５は、第１端子、第２端子を備える。
【００４９】
トレースデータラッチ部４０１の第１端子は、トレースデータ制御部４０ａの第１端子に接続される。
トレースデータラッチ部４０１の第２端子は、トレースデータ保存部４０２の第１端子に接続される。
トレースデータ保存部４０２の第２端子は、トレースデータ送信部４０４の第１端子に接続される。
【００５０】
トレースデータ送信開始通知受信部４０３の第１端子は、トレースデータ制御部４０ａの第２端子に接続される。
トレースデータ送信開始通知受信部４０３の第２端子は、トレースデータ送信部４０４の第２端子に接続される。
【００５１】
トレースデータ送信部４０４の第３端子は、トレースデータ送信完了通知部４０５の第１端子に接続される。
トレースデータ送信部４０４の第４端子は、トレースデータ制御部４０ａの第４端子に接続される。
トレースデータ送信完了通知部４０５の第２端子は、トレースデータ制御部４０ａの第３端子に接続される。
【００５２】
第２装置間通信制御カード３は、図１に示すように、ＦＰＧＡ１０ｂ、リトライ制御部２０ｂ（制御装置の一例、制御部の一例）、ＣＰＲＯＭ３０ｂ（制御装置の一例）、トレースデータ制御部４０ｂ（制御装置の一例）、データ転送部５０ｂを備える。
ＦＰＧＡ１０ｂは、ＦＰＧＡ１０ａと同様である。リトライ制御部２０ｂは、リトライ制御部２０ａと同様である。ＣＰＲＯＭ３０ｂは、ＣＰＲＯＭ３０ａと同様である。トレースデータ制御部４０ｂは、トレースデータ制御部４０ａと同様である。データ転送部５０ｂは、データ転送部５０ａと同様である。第２装置間通信制御カード３は、第１装置間通信制御カード２と同様の通信制御カードである。
【００５３】
次に、通信システム１の動作について説明する。ここでは、ＦＰＧＡ１０ａの内部でソフトエラーが発生した場合の通信システム１の図５に示す処理フローについて説明する。
【００５４】
ＦＰＧＡ１０ａの内部でソフトエラーが発生する。ソフトエラー検知部１０２は、ソフトエラーが発生すると、ソフトエラーを検知する（ステップＳ１）。なお、ソフトエラー検知部１０２は、適切にソフトエラーを検知することができれば、どのような構成の回路であってもよい。
【００５５】
ソフトエラー検知部１０２は、ＣＲＡＭ１０１にソフトエラー検知信号を出力する（ステップＳ２）。ソフトエラー検知信号とは、ソフトエラーを検知したことを示す信号である。
【００５６】
ＣＲＡＭ１０１は、ソフトエラー検知部１０２からソフトエラー検知信号を受ける。ＣＲＡＭ１０１がソフトエラー検知信号を受けると、ソフトエラー通知部１０１１１は、リトライ制御部２０ａにソフトエラー発生通知信号を出力する（ステップＳ３）。
【００５７】
ソフトエラー発生通知受信部２０１は、ＣＲＡＭ１０１からソフトエラー発生通知信号を受ける。ソフトエラー発生通知受信部２０１は、ソフトエラー発生通知信号を受けると、ソフトエラー修復部２０４にソフトエラー発生通知受信信号を出力する（ステップＳ４）。
【００５８】
ソフトエラー修復部２０４は、ソフトエラー発生通知受信部２０１からソフトエラー発生通知受信信号を受ける。ソフトエラー修復部２０４は、ソフトエラー発生通知受信信号を受けると、通信中断指示部２０２に通信中断信号を出力する（ステップＳ５）。
【００５９】
通信中断指示部２０２は、ソフトエラー修復部２０４から通信中断信号を受ける。通信中断指示部２０２は、通信中断信号を受けると、第２装置間通信制御カード３に通信中断指示信号を出力する（ステップＳ６）。
この通信中断指示信号に応じて、第２装置間通信制御カード３は、通信を中断する。
【００６０】
また、ソフトエラー修復部２０４は、再コンフィギュレーション指示部２０５に再コンフィギュレーション指示信号を出力する（ステップＳ７）。
【００６１】
再コンフィギュレーション指示部２０５は、ソフトエラー修復部２０４から再コンフィギュレーション指示信号を受ける。再コンフィギュレーション指示部２０５は、再コンフィギュレーション指示信号を受けると、ＦＰＧＡ１０ａに再コンフィギュレーション開始指示信号を出力する（ステップＳ８）。
【００６２】
コンフィギュレーション制御部１０３は、リトライ制御部２０ａから再コンフィギュレーション開始指示信号を受ける。コンフィギュレーション制御部１０３は、再コンフィギュレーション開始指示信号を受けると、ＣＰＲＯＭ３０ａに再コンフィギュレーション開始信号を出力する（ステップＳ９）。
【００６３】
ＣＰＲＯＭ３０ａは、ＦＰＧＡ１０ａから再コンフィギュレーション開始信号を受ける。ＣＰＲＯＭ３０ａは、再コンフィギュレーション開始信号を受けると、ＦＰＧＡ１０ａに回路データを出力する（ステップＳ１０）。
【００６４】
コンフィギュレーション制御部１０３は、ＣＰＲＯＭ３０ａから回路データを受ける。コンフィギュレーション制御部１０３は、受けた回路データを用いて、ＣＲＡＭ１０１に対して再コンフィギュレーションを実行する（ステップＳ１１）。
【００６５】
その後、再コンフィギュレーションが完了すると、コンフィギュレーション制御部１０３は、リトライ制御部２０ａに再コンフィギュレーション完了通知を出力する（ステップＳ１２）。
【００６６】
再コンフィギュレーション完了通知受信部２０６は、コンフィギュレーション制御部１０３から再コンフィギュレーション完了通知を受ける。再コンフィギュレーション完了通知受信部２０６は、再コンフィギュレーション完了通知を受けると、ソフトエラー修復部２０４に再コンフィギュレーション完了通知受信信号を出力する（ステップＳ１３）。
【００６７】
ソフトエラー修復部２０４は、再コンフィギュレーション完了通知受信部２０６から再コンフィギュレーション完了通知受信信号を受ける。ソフトエラー修復部２０４は、再コンフィギュレーション完了通知受信信号を受けると、トレースデータ送信開始指示部２０８にトレースデータ送信開始信号を出力する（ステップＳ１４）。
【００６８】
トレースデータ送信開始指示部２０８は、ソフトエラー修復部２０４からトレースデータ送信開始信号を受ける。トレースデータ送信開始指示部２０８は、トレースデータ送信開始信号を受けると、トレースデータ制御部４０ａにトレースデータ送信開始通知を出力する（ステップＳ１５）。
【００６９】
トレースデータ送信開始通知受信部４０３は、リトライ制御部２０ａからトレースデータ送信開始通知を受ける。トレースデータ送信開始通知受信部４０３は、トレースデータ送信開始通知を受けると、トレースデータ送信部４０４にトレースデータ送信開始指示を出力する（ステップＳ１６）。トレースデータ送信開始指示とは、ソフトエラー発生直前の１トランザクション分のトレースデータをＦＰＧＡ１０ａに出力させる指示である。
【００７０】
トレースデータ送信部４０４は、トレースデータ送信開始通知受信部４０３からトレースデータ送信開始指示を受ける。トレースデータ送信部４０４は、トレースデータ送信開始指示を受けると、トレースデータ保存部４０２からソフトエラー発生直前の１トランザクション分のトレースデータを取り出す（ステップＳ１７）。トレースデータ送信部４０４は、取り出したトレースデータをＦＰＧＡ１０ａに出力する（ステップＳ１８）。
【００７１】
トレースデータ送信部４０４は、ＦＰＧＡ１０ａへのトレースデータの送信が完了すると、トレースデータ送信完了通知部４０５に送信完了通知を出力する（ステップＳ１９）。に送信完了通知とは、ＦＰＧＡ１０ａへのトレースデータの送信が完了したことを知らせる通知である。
【００７２】
トレースデータ送信完了通知部４０５は、トレースデータ送信部４０４から送信完了通知を受ける。トレースデータ送信完了通知部４０５は、送信完了通知を受けると、リトライ制御部２０ａにトレースデータ送信完了通知を出力する（ステップＳ２０）。
【００７３】
トレースデータ送信完了通知受信部２０７は、トレースデータ制御部４０ａからトレースデータ送信完了通知を受ける。トレースデータ送信完了通知受信部２０７は、トレースデータ送信完了通知を受けると、ソフトエラー修復部２０４にトレースデータ送信完了通知受信信号を出力する（ステップＳ２１）。
【００７４】
ソフトエラー修復部２０４は、トレースデータ送信完了通知受信部２０７からトレースデータ送信完了通知受信信号を受ける。ソフトエラー修復部２０４は、トレースデータ送信完了通知受信信号を受けると、通信再開指示部２０３に通信再開信号を出力する（ステップＳ２２）。
【００７５】
通信再開指示部２０３は、ソフトエラー修復部２０４から通信再開信号を受ける。通信再開指示部２０３は、通信再開信号を受けると、第２装置間通信制御カード３に通信再開指示信号を出力する（ステップＳ２３）。
通信システム１は、通信を再開する（ステップＳ２４）。
【００７６】
以上、本発明の一実施形態による通信システム１について説明した。
通信システム１において、トレースデータ保存部４０２は、ＦＰＧＡ１０ａへ入力するトレースデータを保存する。トレースデータ送信部４０４は、ＦＰＧＡ１０ａが再コンフィギュレーションした後に、トレースデータのうち、ＦＰＧＡ１０ａにソフトエラーが発生する直前の１トランザクション分のトレースデータを取得する。トレースデータ送信部４０４は、取得した１トランザクション分のトレースデータをＦＰＧＡ１０ａに出力する。
このように、通信システム１の第１装置間通信制御カード２を構成することで、ＦＰＧＡ１０ａは、トレースデータ送信部４０４から送信された、ＦＰＧＡ１０ａにソフトエラーが発生する直前の１トランザクション分のトレースデータを用いてソフトエラーを解消すればよくなる。
その結果、第１装置間通信制御カード２では、ＦＰＧＡ１０ａのＣＲＡＭ１０１のメモリ容量を増大させずにＦＰＧＡ１０ａのソフトエラーを解消することができる。
【００７７】
本発明の実施形態による最小構成の制御装置１００について説明する。
本発明の実施形態による最小構成の制御装置１００は、図６に示すように、トレースデータ保存部４０２、トレースデータ送信部４０４を備える。
トレースデータ保存部４０２は、ＦＰＧＡへ入力するトレースデータを保存する。
トレースデータ送信部４０４は、ＦＰＧＡが再コンフィギュレーションした後に、前記トレースデータのうち、前記ＦＰＧＡにソフトエラーが発生する直前の１トランザクション分のトレースデータを取得する。トレースデータ送信部４０４は、取得した前記１トランザクション分のトレースデータを前記ＦＰＧＡに出力する。
【００７８】
次に、本発明の実施形態による最小構成の制御装置１００の動作について説明する。ここでは、図７に示す処理フローについて説明する。
トレースデータ保存部４０２は、ＦＰＧＡへ入力するトレースデータを保存する（ステップＳ３１）。
トレースデータ送信部４０４は、ＦＰＧＡが再コンフィギュレーションした後に、トレースデータのうち、ＦＰＧＡにソフトエラーが発生する直前の１トランザクション分のトレースデータを取得する（ステップＳ３２）。トレースデータ送信部４０４は、取得した１トランザクション分のトレースデータをＦＰＧＡに出力する（ステップＳ３３）。
【００７９】
以上、本発明の最小構成の制御装置１００について説明した。
このように、制御装置１００を構成することで、ＦＰＧＡは、再コンフィギュレーションした後に、制御装置１００から１トランザクション分のトレースデータを取得し、取得したトレースデータでソフトエラーを解消すればよい。その結果、ＦＰＧＡのメモリ容量を増大させずにソフトエラーを解消することができる。
【００８０】
なお、本発明の実施形態における処理は、適切な処理が行われる範囲において、処理の順番が入れ替わってもよい。
【００８１】
本発明の実施形態におけるＣＰＲＯＭ３０ａ、３０ｂ、ＣＲＡＭ１０１、トレースデータラッチ部４０１、トレースデータ保存部４０２、その他の記憶装置（レジスタ、ラッチを含む）のそれぞれは、適切な情報の送受信が行われる範囲においてどこに備えられていてもよい。また、本発明の実施形態におけるＣＰＲＯＭ３０ａ、３０ｂ、ＣＲＡＭ１０１、トレースデータラッチ部４０１、トレースデータ保存部４０２、その他の記憶装置のそれぞれは、適切な情報の送受信が行われる範囲において複数存在しデータを分散して記憶していてもよい。
【００８２】
本発明の実施形態について説明したが、上述の通信システム１、ＦＰＧＡ１０ａ、１０ｂ、リトライ制御部２０ａ、２０ｂ、ＣＰＲＯＭ３０ａ、３０ｂ、トレースデータ制御部４０ａ、４０ｂ、その他の制御装置は内部に、コンピュータシステムを有していてもよい。そして、上述した処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。コンピュータの具体例を以下に示す。
【００８３】
図８は、少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
コンピュータ５は、図８に示すように、ＣＰＵ６、メインメモリ７、ストレージ８、インターフェース９を備える。
例えば、上述の通信システム１、ＦＰＧＡ１０ａ、１０ｂ、リトライ制御部２０ａ、２０ｂ、ＣＰＲＯＭ３０ａ、３０ｂ、トレースデータ制御部４０ａ、４０ｂ、その他の制御装置のそれぞれは、コンピュータ５に実装される。そして、上述した各処理部の動作は、プログラムの形式でストレージ８に記憶されている。ＣＰＵ６は、プログラムをストレージ８から読み出してメインメモリ７に展開し、当該プログラムに従って上記処理を実行する。また、ＣＰＵ６は、プログラムに従って、上述した各記憶部に対応する記憶領域をメインメモリ７に確保する。
【００８４】
ストレージ８の例としては、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ−ＲＯＭ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、半導体メモリ等が挙げられる。ストレージ８は、コンピュータ５のバスに直接接続された内部メディアであってもよいし、インターフェース９または通信回線を介してコンピュータ５に接続される外部メディアであってもよい。また、このプログラムが通信回線によってコンピュータ５に配信される場合、配信を受けたコンピュータ５が当該プログラムをメインメモリ７に展開し、上記処理を実行してもよい。少なくとも１つの実施形態において、ストレージ８は、一時的でない有形の記憶媒体である。
【００８５】
また、上記プログラムは、前述した機能の一部を実現してもよい。さらに、上記プログラムは、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるファイル、いわゆる差分ファイル（差分プログラム）であってもよい。
【００８６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例であり、発明の範囲を限定しない。これらの実施形態は、発明の要旨を逸脱しない範囲で、種々の追加、省略、置き換え、変更を行ってよい。
【符号の説明】
【００８７】
１・・・通信システム
２・・・第１装置間通信制御カード
３・・・第２装置間通信制御カード
５・・・コンピュータ
６・・・ＣＰＵ
７・・・メインメモリ
８・・・ストレージ
９・・・インターフェース
１０ａ、１０ｂ・・・ＦＰＧＡ
２０ａ、２０ｂ・・・リトライ制御部
３０ａ、３０ｂ・・・ＣＰＲＯＭ
４０ａ、４０ｂ・・・トレースデータ制御部
５０ａ、５０ｂ・・・データ転送部
１００・・・制御装置
１０１・・・ＣＲＡＭ
１０２・・・ソフトエラー検知部
１０３・・・コンフィギュレーション制御部
２０１・・・ソフトエラー発生通知受信部
２０２・・・通信中断指示部
２０３・・・通信再開指示部
２０４・・・ソフトエラー修復部
２０５・・・再コンフィギュレーション指示部
２０６・・・再コンフィギュレーション完了通知受信部
２０７・・・トレースデータ送信完了通知受信部
２０８・・・トレースデータ送信開始指示部
４０１・・・トレースデータラッチ部
４０２・・・トレースデータ保存部
４０３・・・トレースデータ送信開始通知受信部
４０４・・・トレースデータ送信部
４０５・・・トレースデータ送信完了通知部
１０１１・・・ユーザロジック
１０１１１・・・ソフトエラー通知部
Ｌ１，Ｌ２、Ｌ３、Ｌ４、Ｌ５、Ｌ６、Ｌ７、Ｌ８、Ｌ９、Ｌ１０、Ｌ１１、Ｌ１２、Ｌ１３、Ｌ１４、Ｌ１５、Ｌ１６・・・配線
【図１】
2020149467.tif 000003
【図２】
2020149467.tif 000004
【図３】
2020149467.tif 000005
【図４】
2020149467.tif 000006
【図５】
2020149467.tif 000007
【図６】
2020149467.tif 000008
【図７】
2020149467.tif 000009
【図８】
2020149467.tif 000010