(57)【特許請求の範囲】
【請求項１】
トランジスタ回路とプロセッサとを備え、
前記トランジスタ回路は、
同一構成の３つの論理回路のそれぞれに対応する３つのレジスタが出力する第１の論理値または第２の論理値を取得し、取得した前記論理値について前記第１の論理値と前記第２の論理値の何れの数量が多いか多数決を行う多数決読出部と、
前記多数決読出部が行った多数決の結果に基づいて、前記第１の論理値と前記第２の論理値の何れかを前記３つのレジスタに書き込む書込部と、
前記書込部による前記第１の論理値と前記第２の論理値の何れかの書き込みが完了するまでの間、前記３つの論理回路のうち前記数量の多い方の論理値を出力した２つの論理回路の論理値どうしが一致しているか否かを繰り返し判定する状態管理部と、
を備え、
前記プロセッサは、
前記多数決読出部が行った多数決の結果、前記３つのレジスタが出力する前記論理値が不一致である場合に、前記書込部に、前記第１の論理値と第２の論理値のうち数量の多い方の論理値を前記３つのレジスタに書き込ませ、
前記書込部による前記第１の論理値または前記第２の論理値の書き込みが完了するまでの間、前記状態管理部に２つの論理回路の論理値どうしが一致しているか否かを判定させ、
前記書込部による前記第１の論理値または前記第２の論理値の書き込みが完了するまでの間、前記状態管理部が２つの論理回路の論理値どうしが一致していると判定した場合に、前記トランジスタ回路の出力する論理値が正常であると判定し、前記書込部による前記第１の論理値または前記第２の論理値の書き込みが完了するまでの間、前記状態管理部が２つの論理回路の論理値どうしが一致しないと判定した場合に、前記トランジスタ回路の出力する論理値が異常であると判定する
情報処理システム。
【請求項２】
同一構成の３つの論理回路のそれぞれに対応する３つのレジスタが出力する第１の論理値または第２の論理値を取得し、取得した前記論理値について前記第１の論理値と前記第２の論理値の何れの数量が多いか多数決を行う多数決読出部と、前記多数決読出部が行った多数決の結果に基づいて、前記第１の論理値と前記第２の論理値の何れかを前記３つのレジスタに書き込む書込部と、前記書込部による前記第１の論理値と前記第２の論理値の何れかの書き込みが完了するまでの間、前記３つの論理回路のうち前記数量の多い方の論理値を出力した２つの論理回路の論理値どうしが一致しているか否かを繰り返し判定する状態管理部とを備えるトランジスタ回路の診断方法であって、
前記多数決読出部が行った多数決の結果、前記３つのレジスタが出力する前記論理値が不一致である場合に、前記書込部に、前記第１の論理値と第２の論理値のうち数量の多い方の論理値を前記３つのレジスタに書き込ませることと、
前記書込部による前記第１の論理値または前記第２の論理値の書き込みが完了するまでの間、前記状態管理部に２つの論理回路の論理値どうしが一致しているか否かを判定させることと、
前記書込部による前記第１の論理値と前記第２の論理値の何れかの書き込みが完了するまでの間、前記状態管理部が２つの論理回路の論理値どうしが一致していると判定した場合に、前記トランジスタ回路の出力する論理値が正常であると判定し、前記書込部による前記第１の論理値と前記第２の論理値の何れかの書き込みが完了するまでの間、前記状態管理部が２つの論理回路の論理値どうしが一致しないと判定した場合に、前記トランジスタ回路の出力する論理値が異常であると判定することと
を含むトランジスタ回路の診断方法。
【請求項３】
同一構成の３つの論理回路のそれぞれに対応する３つのレジスタが出力する第１の論理値または第２の論理値を取得し、取得した前記論理値について前記第１の論理値と前記第２の論理値の何れの数量が多いか多数決を行う多数決読出部と、前記多数決読出部が行った多数決の結果に基づいて、前記第１の論理値と前記第２の論理値の何れかを前記３つのレジスタに書き込む書込部と、前記書込部による前記第１の論理値と前記第２の論理値の何れかの書き込みが完了するまでの間、前記３つの論理回路のうち前記数量の多い方の論理値を出力した２つの論理回路の論理値どうしが一致しているか否かを繰り返し判定する状態管理部とを備えるトランジスタ回路を診断するコンピュータに、
前記多数決読出部が行った多数決の結果、前記３つのレジスタが出力する前記論理値が不一致である場合に、前記書込部に、前記第１の論理値と第２の論理値のうち数量の多い方の論理値を前記３つのレジスタに書き込ませることと、
前記書込部による前記第１の論理値または前記第２の論理値の書き込みが完了するまでの間、前記状態管理部に２つの論理回路の論理値どうしが一致しているか否かを判定させることと、
前記書込部による前記第１の論理値と前記第２の論理値の何れかの書き込みが完了するまでの間、前記状態管理部が２つの論理回路の論理値どうしが一致していると判定した場合に、前記トランジスタ回路の出力する論理値が正常であると判定し、前記書込部による前記第１の論理値と前記第２の論理値の何れかの書き込みが完了するまでの間、前記状態管理部が２つの論理回路の論理値どうしが一致しないと判定した場合に、前記トランジスタ回路の出力する論理値が異常であると判定することと
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、トランジスタ回路の診断方法及びプログラムに関する。
【背景技術】
【０００２】
中性子線やアルファ線などに起因して、論理回路やメモリなどのハードウェアにおいてソフトエラーと呼ばれる不具合が発生することが知られている。ソフトエラーとは、ハードウェアが保存している論理値が反転したり、読み出しができなくなったりする不具合のことである。ソフトエラーではハードウェアは壊れないため、ソフトエラーが発生したハードウェアは、リセットが掛けられたりデータが読み込み直して、制御レジスタにおける論理値を更新することにより、再び正常に動作する。
特許文献１には、関連する技術として、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）における制御レジスタにエラーが発生した場合に、制御レジスタのエラーを修復する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−２１６５０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、特許文献１に記載されている技術は、制御レジスタにおける論理値を更新する時にＦＰＧＡはメモリに論理値を書き込む必要がある。そのため、制御レジスタにおける論理値を更新する際に時間がかかる可能性がある。
そのため、論理回路における制御レジスタにおいて論理値を短時間で更新することのできる技術が求められていた。
【０００５】
本発明は、上記の課題を解決することのできる情報処理システム、トランジスタ回路の診断方法及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は、トランジスタ回路とプロセッサとを備え、前記トランジスタ回路は、同一構成の３つの論理回路のそれぞれに対応する３つのレジスタが出力する第１の論理値または第２の論理値を取得し、取得した前記論理値について前記第１の論理値と前記第２の論理値の何れの数量が多いか多数決を行う多数決読出部と、前記多数決読出部が行った多数決の結果に基づいて、前記第１の論理値と前記第２の論理値の何れかを前記３つのレジスタに書き込む書込部と、前記書込部による前記第１の論理値と前記第２の論理値の何れかの書き込みが完了するまでの間、前記３つの論理回路のうち前記数量の多い方の論理値を出力した２つの論理回路の論理値どうしが一致しているか否かを繰り返し判定する状態管理部と、を備え、前記プロセッサは、前記多数決読出部が行った多数決の結果、前記３つのレジスタが出力する前記論理値が不一致である場合に、前記書込部に、前記第１の論理値と第２の論理値のうち数量の多い方の論理値を前記３つのレジスタに書き込ませ、前記書込部による前記第１の論理値または前記第２の論理値の書き込みが完了するまでの間、前記状態管理部に２つの論理回路の論理値どうしが一致しているか否かを判定させ、前記書込部による前記第１の論理値または前記第２の論理値の書き込みが完了するまでの間、前記状態管理部が２つの論理回路の論理値どうしが一致していると判定した場合に、前記トランジスタ回路の出力する論理値が正常であると判定し、前記書込部による前記第１の論理値または前記第２の論理値の書き込みが完了するまでの間、前記状態管理部が２つの論理回路の論理値どうしが一致しないと判定した場合に、前記トランジスタ回路の出力する論理値が異常であると判定する情報処理システムである。
【０００７】
また、本発明は、同一構成の３つの論理回路のそれぞれに対応する３つのレジスタが出力する第１の論理値または第２の論理値を取得し、取得した前記論理値について前記第１の論理値と前記第２の論理値の何れの数量が多いか多数決を行う多数決読出部と、前記多数決読出部が行った多数決の結果に基づいて、前記第１の論理値と前記第２の論理値の何れかを前記３つのレジスタに書き込む書込部と、前記書込部による前記第１の論理値と前記第２の論理値の何れかの書き込みが完了するまでの間、前記３つの論理回路のうち前記数量の多い方の論理値を出力した２つの論理回路の論理値どうしが一致しているか否かを繰り返し判定する状態管理部とを備えるトランジスタ回路の診断方法であって、前記多数決読出部が行った多数決の結果、前記３つのレジスタが出力する前記論理値が不一致である場合に、前記書込部に、前記第１の論理値と第２の論理値のうち数量の多い方の論理値を前記３つのレジスタに書き込ませることと、前記書込部による前記第１の論理値または前記第２の論理値の書き込みが完了するまでの間、前記状態管理部に２つの論理回路の論理値どうしが一致しているか否かを判定させることと、前記書込部による前記第１の論理値と前記第２の論理値の何れかの書き込みが完了するまでの間、前記状態管理部が２つの論理回路の論理値どうしが一致していると判定した場合に、前記トランジスタ回路の出力する論理値が正常であると判定し、前記書込部による前記第１の論理値と前記第２の論理値の何れかの書き込みが完了するまでの間、前記状態管理部が２つの論理回路の論理値どうしが一致しないと判定した場合に、前記トランジスタ回路の出力する論理値が異常であると判定することとを含むトランジスタ回路の診断方法である。
【０００８】
また、本発明は、同一構成の３つの論理回路のそれぞれに対応する３つのレジスタが出力する第１の論理値または第２の論理値を取得し、取得した前記論理値について前記第１の論理値と前記第２の論理値の何れの数量が多いか多数決を行う多数決読出部と、前記多数決読出部が行った多数決の結果に基づいて、前記第１の論理値と前記第２の論理値の何れかを前記３つのレジスタに書き込む書込部と、前記書込部による前記第１の論理値と前記第２の論理値の何れかの書き込みが完了するまでの間、前記３つの論理回路のうち前記数量の多い方の論理値を出力した２つの論理回路の論理値どうしが一致しているか否かを繰り返し判定する状態管理部とを備えるトランジスタ回路を診断するコンピュータに、前記多数決読出部が行った多数決の結果、前記３つのレジスタが出力する前記論理値が不一致である場合に、前記書込部に、前記第１の論理値と第２の論理値のうち数量の多い方の論理値を前記３つのレジスタに書き込ませることと、前記書込部による前記第１の論理値または前記第２の論理値の書き込みが完了するまでの間、前記状態管理部に２つの論理回路の論理値どうしが一致しているか否かを判定させることと、前記書込部による前記第１の論理値と前記第２の論理値の何れかの書き込みが完了するまでの間、前記状態管理部が２つの論理回路の論理値どうしが一致していると判定した場合に、前記トランジスタ回路の出力する論理値が正常であると判定し、前記書込部による前記第１の論理値と前記第２の論理値の何れかの書き込みが完了するまでの間、前記状態管理部が２つの論理回路の論理値どうしが一致しないと判定した場合に、前記トランジスタ回路の出力する論理値が異常であると判定することとを実行させるプログラムである。
【発明の効果】
【０００９】
本発明によれば、トランジスタ回路は、論理回路における制御レジスタにおいて論理値を短時間で更新することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の第一の実施形態による情報処理システムを示す図である。
【図２】本発明の第二の実施形態による情報処理システムの処理フローを示す図である。
【図３】本発明の第二の実施形態によるトランジスタ回路の最小構成を示す図である。
【発明を実施するための形態】
【００１１】
＜第一の実施形態＞
本発明の第一の実施形態による情報処理システムについて説明する。
本発明の第一の実施形態による情報処理システム１００は、図１に示すように、プロセッサ１と、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）３と、を備える。
【００１２】
プロセッサ１は、記憶部２を備える。
記憶部２は、ソフトウェア２０を記憶する。
ソフトウェア２０は、診断試験実行命令２１と、診断試験結果判定２２と、を含む。
プロセッサ１は、ソフトウェア２０の命令に基づいて動作する。
具体的には、プロセッサ１は、ソフトウェア２０が含む診断試験実行命令２１に応じて、論理に誤りが発生したと判定した多数決回路６０４を備える論理ブロックに対応する診断部に診断試験の実行を指示する。
また、具体的には、プロセッサ１は、ソフトウェア２０が含む診断試験結果判定２２に応じて、多数決回路６０４が出力する論理値が正しいか否かを判定する。
【００１３】
ＦＰＧＡ３は、記憶部４と、トランジスタ回路５と、回路構成情報修復装置３０と、を備える。
【００１４】
記憶部４は、回路構成情報４０を記憶する。回路構成情報４０は、例えば、Ｖｅｒｉｌｏｇ  ＨＤＬ（Ｖｅｒｉｌｏｇ  Ｈａｒｄｗａｒｅ  ｄｅｓｃｒｉｐｔｉｏｎ  ｌａｎｇｕａｇｅ）やＶＨＤＬなどのハードウェア記述言語に基づいて生成された回路構成を示す情報である。
【００１５】
トランジスタ回路５は、記憶部４が記憶する回路構成情報４０に基づいて、所望のトランジスタ回路を実現する複数のトランジスタの集合体である。
【００１６】
トランジスタ回路５は、記憶部４が記憶する回路構成情報４０に基づいて、第１診断部５１、第２診断部５２、・・・、第ｎ診断部５ｎ、第１論理ブロック６１、第２論理ブロック６２、・・・、第ｎ論理ブロック６ｎのそれぞれを構成する。
【００１７】
第１診断部５１は、状態管理部５００、第１書込部５１１、第２書込部５１２、・・・、第ｎ書込部５１ｎ、第１多数決読出部５２１、第２多数決読出５２２、・・・、第ｎ多数決読出部５２ｎを備える。
【００１８】
状態管理部５００は、後述する第１モジュール６０１のステータスを管理する。第１モジュール６０１のステータスとは、アイドル状態または処理状態である。アイドル状態は、処理を行わない状態を示す。処理状態は、割り込みやオーバーフローなどの処理を行う状態を示す。
【００１９】
状態管理部５００は、第１モジュール６０１の場合と同様に、第２モジュール６０２、第３モジュール６０３のそれぞれのステータスを管理する。
【００２０】
また、状態管理部５００は、第１モジュール６０１、第２モジュール６０２、第３モジュール６０３のそれぞれが出力する論理値に基づいて、後述する多数決回路６０４が判定する回路構成についての３つの状態（正常状態、異常状態、故障状態）を管理する。
【００２１】
第１書込部５１１は、ソフトウェア２０によるプロセッサ１からの命令に応じて、後述する第１多数決読出部５２１が行う多数決の結果に基づく論理値を、第１−１内部制御レジスタ６１１、第２−１内部制御レジスタ６２１、第３−１内部制御レジスタ６３１それぞれに書き込む。
【００２２】
第２書込部５１２は、第１書込部５１１と同様に、ソフトウェア２０によるプロセッサ１からの命令に応じて、後述する第２多数決読出部５２２が行う多数決の結果に基づく論理値を、第１−２内部制御レジスタ６１２、第２−２内部制御レジスタ６２２、第３−２内部制御レジスタ６３２それぞれに書き込む。
【００２３】
第ｎ書込部５１ｎは、第１書込部５１１と同様に、ソフトウェア２０によるプロセッサ１からの命令に応じて、後述する第ｎ多数決読出部５２ｎが行う多数決の結果に基づく論理値を、第１−ｎ内部制御レジスタ６１ｎ、第２−ｎ内部制御レジスタ６２ｎ、第３−ｎ内部制御レジスタ６３ｎそれぞれに書き込む。
【００２４】
第１多数決読出部５２１は、第１−１内部制御レジスタ６１１、第２−１内部制御レジスタ６２１、第３−１内部制御レジスタ６３１のそれぞれからそれぞれが保持している論理値を取得する。
第１多数決読出部５２１は、取得した論理値に対して多数決を行う。
【００２５】
第２多数決読出部５２２は、第１多数決読出部５２１と同様に、第１−２内部制御レジスタ６１２、第２−２内部制御レジスタ６２２、第３−２内部制御レジスタ６３２のそれぞれからそれぞれが保持している値を取得する。
第２多数決読出部５２２は、取得した論理値に対して多数決を行う。
【００２６】
第ｎ多数決読出部５２ｎは、第１多数決読出部５２１と同様に、第１−ｎ内部制御レジスタ６１ｎ、第２−ｎ内部制御レジスタ６２ｎ、第３−ｎ内部制御レジスタ６３ｎのそれぞれからそれぞれが保持している値を取得する。
第ｎ多数決読出部５２ｎは、取得した論理値に対して多数決を行う。
【００２７】
第２診断部５２、・・・、第ｎ診断部５ｎのそれぞれは、第１診断部５１と同様に、状態管理部５００、第１書込部５１１、第２書込部５１２、・・・、第ｎ書込部５１ｎ、第１診断部５１、第２診断部５２、・・・、第ｎ診断部５ｎのそれぞれを備える。
第２診断部５２、・・・、第ｎ診断部５ｎのそれぞれは、第１診断部５１と同様に動作する。
【００２８】
第１論理ブロック６１は、第１モジュール６０１、第２モジュール６０２、第３モジュール６０３、多数決回路６０４を備える。
また、第１論理ブロック６１は、さらに、図示しない論理回路を備える。
【００２９】
第１モジュール６０１は、第１ステータスレジスタ６１０、第１−１内部制御レジスタ６１１、第１−２内部制御レジスタ６１２、・・・、第１−ｎ内部制御レジスタ６１ｎを備える。
【００３０】
第１ステータスレジスタ６１０は、第１モジュール６０１のステータスを保持する。第１モジュール６０１のステータスは、アイドル状態、または、処理状態である。
【００３１】
第１−１内部制御レジスタ６１１は、プロセッサ１からの命令に応じて、ステータスの遷移に影響を与える第１ノードにおける論理状態を保持する。論理状態は、“１”と“０”（Ｈｉｇｈ電圧とＬｏｗ電圧、または、Ｌｏｗ電圧とＨｉｇｈ電圧）を示す情報である。
【００３２】
第１−２内部制御レジスタ６１２は、プロセッサ１からの命令に応じて、ステータスの遷移に影響を与える第２ノードにおける論理状態を保持する。
【００３３】
第１−ｎ内部制御レジスタ６１ｎは、プロセッサ１からの命令に応じて、ステータスの遷移に影響を与える第ｎノードにおける論理状態を保持する。
【００３４】
第２モジュール６０２は、第１モジュール６０１と同様に、第２ステータスレジスタ６２０、第２−１内部制御レジスタ６２１、第２−２内部制御レジスタ６２２、・・・、第２−ｎ内部制御レジスタ６２ｎを備える。
【００３５】
第３モジュール６０３は、第１モジュール６０１と同様に、第３ステータスレジスタ６３０、第３−１内部制御レジスタ６３１、第３−２内部制御レジスタ６３２、・・・、第３−ｎ内部制御レジスタ６３ｎを備える。
【００３６】
第２モジュール６０２、第３モジュール６０３のそれぞれは、第１モジュール６０１と同様に動作する。
【００３７】
多数決回路６０４は、第１モジュール６０１、第２モジュール６０２、第３モジュール６０３のそれぞれが出力する論理値を取得する。
多数決回路６０４は、取得した３つの論理値に基づいて、回路構成情報に異常が発生したか否かを判定する。
多数決回路６０４は、取得した３つの論理値が一致すると判定した場合、回路構成情報に異常は発生していないと判定し、その論理値を、後段の論理ブロック（第１論理ブロック６１の多数決回路６０４の場合、第２論理ブロック６２）に送信する。
多数決回路６０４は、取得した３つの論理値が一致しない（３つの論理値のうち１つの論理値が異なる）と判定した場合、回路構成情報に異常が発生したと判定し、回路構成情報に異常が発生したことを示す異常発生信号ＳＧｅｒｒを第１診断部５１に送信する。
【００３８】
第２論理ブロック６２、・・・、第ｎ論理ブロック６ｎのそれぞれは、第１論理ブロック６１と同様に、第１モジュール６０１、第２モジュール６０２、第３モジュール６０３、多数決回路６０４を備える。
第２論理ブロック６２、・・・、第ｎ論理ブロック６ｎのそれぞれは、第１論理ブロック６１と同様に動作する。
【００３９】
回路構成情報修復装置３０は、回路構成情報異常検知部３１と、回路構成情報修復部３２と、を備える。
【００４０】
回路構成情報異常検知部３１は、例えば、特許文献“特許第４８５６８４８号公報”に記載されている巡回冗長検査（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）符号を回路構成情報に付加し、定期的に回路構成情報を検査することで回路構成情報の異常を検出する技術を用いて、ＦＰＧＡ３の回路構成情報が正常であるか否かを確認する。
【００４１】
回路構成情報修復部３２は、例えば、ザイリンクス株式会社のパーシャル・リコンフィギュレーションなどの技術を用いて、回路構成情報の異常を修復する。
【００４２】
次に、本発明の第一の実施形態による情報処理システム１００の処理について説明する。
ここでは、図２に示す本発明の第一の実施形態による情報処理システム１００の処理フローについて説明する。
なお、情報処理システム１００は、図１で示した構成であるものとする。また、ここでは、第１論理ブロック６１における第１−１内部制御レジスタ６１１の論理値に異常が発生した場合について情報処理システム１００の処理を説明する。
【００４３】
多数決回路６０４は、第１モジュール６０１の第１出力が示す論理値、第２モジュール６０２の第２出力が示す論理値、第３モジュール６０３の第３出力が示す論理値のそれぞれを取得する。
【００４４】
多数決回路６０４は、取得した３つの論理値が不一致であるか否かを判定する（ステップＳ１）。
【００４５】
多数決回路６０４は、取得した３つの論理値が不一致である（３つの論理値のうち１つの論理値が異なる）と判定した場合（ステップＳ１においてＹＥＳ）、異常が発生したと判定する（ステップＳ２）。
多数決回路６０４は、異常発生信号ＳＧｅｒｒを状態管理部５００に送信する。
例えば、多数決回路６０４は、受信した３つの論理値を比較し、第１出力の論理値が第２出力の論理値及び第３出力の論理値と異なると判定した場合、第１モジュール６０１の回路構成情報に異常が発生したことを示す異常発生信号ＳＧｅｒｒを状態管理部５００に送信する。
【００４６】
状態管理部５００は、多数決回路６０４から異常発生信号ＳＧｅｒｒを受信する。
状態管理部５００は、受信した異常発生信号ＳＧｅｒｒに基づいて第１モジュール６０１の回路構成情報に異常が発生したことを特定し、第１モジュール６０１の動作を停止させ、アイドル状態にさせる（ステップＳ３）。
【００４７】
このとき、回路構成情報異常検知部３１は、例えば、特許文献“特許第４８５６８４８号公報”に記載されている技術を用いて、第１モジュール６０１の回路構成情報に異常が発生したことを検出する（ステップＳ４）。
【００４８】
回路構成情報異常検知部３１は、第１モジュール６０１の回路構成情報に異常が発生したことを回路構成情報修復部３２に報知する。
【００４９】
回路構成情報修復部３２は、第１モジュール６０１がアイドル状態となることを待ち合わせる（ステップＳ５）。
例えば、回路構成情報修復部３２は、予め定められた所定時間の経過をもって第１モジュール６０１がアイドル状態となったと判定する。
【００５０】
回路構成情報修復部３２は、第１モジュール６０１がアイドル状態となったと判定すると、異常が発生した第１モジュール６０１の回路構成情報を修復する（ステップＳ６）。
【００５１】
回路構成情報修復部３２が第１モジュール６０１の回路構成情報を修復した後、状態管理部５００は、第１論理ブロック６１がアイドル状態で停止することを指示するアイドル指示信号ＳＧｉｄｌを第１論理ブロック６１に送信して、回路構成情報修復部３２が第１モジュール６０１の回路構成情報の修復を完了することを待ち合わせる（ステップＳ７）。
例えば、状態管理部５００は、回路構成情報修復部３２が第１モジュール６０１の回路構成情報の修復を完了したことを示す情報をＦＰＧＡ３から取得することを待ち合わせる。
また、例えば、状態管理部５００は、ＦＰＧＡの製造メーカーがＦＰＧＡ３ごとに定めた回路構成情報の修復に掛かる最大時間の経過を待ち合わせる。
【００５２】
状態管理部５００は、第１モジュール６０１の回路構成情報の修復が完了することを待ち合わせている間、異常が発生していない（正常状態である）第２モジュール６０２と、第３モジュール６０３とがアイドル状態となることを待ち合わせる。
具体的には、状態管理部５００は、第１モジュール６０１の回路構成情報の修復が完了することを待ち合わせている間、第２ステータスレジスタ６２０、第３ステータスレジスタ６３０の両方から取得するステータスがアイドル状態になるまでの間、第２ステータスレジスタ６２０、第３ステータスレジスタ６３０のそれぞれのステータスが同一であるか否かを判定する。
【００５３】
状態管理部５００は、第２モジュール６０２、第３モジュール６０３の両方がアイドル状態になるまでの間に、第２モジュール６０２、第３モジュール６０３のそれぞれのステータスが同一ではないと判定した場合、故障が発生したと判定する。状態管理部５００は、故障が発生したことを示す故障発生信号ＳＧｂｒをプロセッサ１に送信する。
【００５４】
プロセッサ１は、状態管理部５００から故障発生信号ＳＧｂｒを受信する。
【００５５】
プロセッサ１は、故障が発生したことを図示していない上位システムに報知する。
【００５６】
状態管理部５００は、第２モジュール６０２、第３モジュール６０３の両方がアイドル状態になるまでの間、第２モジュール６０２、第３モジュール６０３のそれぞれのステータスが同一であると判定した場合、第１モジュール６０１、第２モジュール６０２、第３モジュール６０３のそれぞれの通常動作を停止し、回路構成情報が修復され正常に動作するか否かを判定する診断試験を実行することを要求する要求信号ＳＧｒｑをプロセッサ１に送信する（ステップＳ８）。
【００５７】
プロセッサ１は、状態管理部５００から要求信号ＳＧｒｑを受信する（ステップＳ９）。
【００５８】
プロセッサ１は、記憶部２が記憶するソフトウェア２０が含む診断試験実行命令２１に基づいて、回路構成情報が修復され正常に動作するか否かを判定する診断試験を実行する（ステップＳ１０）。
具体的には、プロセッサ１は、第１−１内部制御レジスタ６１１、第２−１内部制御レジスタ６２１、第３−１内部制御レジスタ６３１のそれぞれに対して読み込み及び書き込みを行う。
より具体的には、プロセッサ１は、第１多数決読出部５２１を介して、第１−１内部制御レジスタ６１１、第２−１内部制御レジスタ６２１、第３−１内部制御レジスタ６３１のそれぞれが保持している論理値を読み出す。このとき、第１−１内部制御レジスタ６１１が保持している論理値は、第２−１内部制御レジスタ６２１及び第３−１内部制御レジスタ６３１のそれぞれが保持している論理値と異なる。しかしながら、プロセッサ１は、第２−１内部制御レジスタ６２１及び第３−１内部制御レジスタ６３１に基づく正しい論理値を第１多数決読出部５２１から取得する。プロセッサ１は、第１書込部５１１を介して、第１−１内部制御レジスタ６１１、第２−１内部制御レジスタ６２１、第３−１内部制御レジスタ６３１のそれぞれに取得した正しい論理値を書き込む。
同様に、プロセッサ１は、他の内部制御レジスタに対しても読み込み及び書き込みを行う。
【００５９】
プロセッサ１は、内部制御レジスタに対しての読み込み及び書き込みが完了するまでの間、状態管理部５００に対して、正常動作している２つのモジュールのそれぞれが出力する論理値どうしが不一致であるか否かを判定させる。
【００６０】
例えば、状態管理部５００は、第１モジュール６０１に異常が発生している場合、第２モジュール６０２から第２出力を取得し、第３モジュール６０３から第３出力を取得する。
状態管理部５００は、取得した２つの論理値が不一致であるか否かを判定する。
状態管理部５００は、２つの論理値が不一致であるか否かを示す判定結果をプロセッサ１に送信する。
【００６１】
プロセッサ１は、受信した判定結果に基づいて、診断試験結果が正常であるか否かを判定する（ステップＳ１１）。
【００６２】
具体的には、プロセッサ１は、内部制御レジスタに対しての読み込み及び書き込みが完了するまでの間、受信した判定結果が２つの論理値が一致することを示す場合、診断試験結果が正常であると判定する。
また、プロセッサ１は、内部制御レジスタに対しての読み込み及び書き込みが完了するまでの間、受信した判定結果が２つの論理値が不一致であることを示す場合、診断試験結果が異常であると判定する。
【００６３】
プロセッサ１は、診断試験結果が異常であると判定した場合、故障が発生したと判定し、故障が発生したことを示す故障発生信号ＳＧｂｒを外部に送信する（ステップＳ１２）。
【００６４】
プロセッサ１は、診断試験結果が正常であると判定した場合、正常状態となったことを示す正常状態信号ＳＧｎｏを第１診断部５１を介して第１論理ブロックに送信する（ステップＳ１３）。
【００６５】
第１論理ブロック６１は、プロセッサ１から正常状態信号ＳＧｎｏを受信する（ステップＳ１４）。
【００６６】
多数決回路６０４は、第１モジュール６０１の第１出力が示す論理値、第２モジュール６０２の第２出力が示す論理値、第３モジュール６０３の第３出力が示す論理値のそれぞれを取得する。
多数決回路６０４は、取得した３つの論理値が不一致であるか否かを判定する（ステップＳ１５）。
【００６７】
多数決回路６０４は、３つの論理値が不一致であると判定した場合（ステップＳ１５においてＹＥＳ）、３つの論理値が不一致であることを示す情報を第１診断部５１に送信する。
【００６８】
第１診断部５１は、多数決回路６０４から３つの論理値が不一致であることを示す情報を受信する。
第１診断部５１は、受信した情報により３つの論理値が不一致であると判定し、回路構成情報が故障していると判定する（ステップＳ１６）。
【００６９】
第１診断部５１は、回路構成情報が故障していることを示す情報をプロセッサ１に送信する。
【００７０】
プロセッサ１は、第１診断部５１から回路構成情報が故障していることを示す情報を受信する。
プロセッサ１は、受信した情報により回路構成情報が故障していると判定する。
プロセッサ１は、ステップＳ１２の処理に進める。
【００７１】
多数決回路６０４は、３つの論理値が一致していると判定した場合（ステップＳ１５においてＮＯ）、回路構成情報が正常であると判定する（ステップＳ１７）。
【００７２】
多数決回路６０４は、３つの論理値が一致していることを示す情報を第１診断部５１に送信する。
【００７３】
第１診断部５１は、多数決回路６０４から３つの論理値が一致していることを示す情報を受信する。
【００７４】
第１診断部５１は、受信した情報により３つの論理値が一致していると判定し、第１モジュール６１をアイドル状態から処理状態に変更し、通常動作を再開させる（ステップＳ１８）。
第１診断部５１は、ステップＳ１の処理に戻す。
【００７５】
また、第１論理ブロック６１がステップＳ１４の処理により、プロセッサ１から正常状態信号ＳＧｎｏを受信すると、多数決回路６０４は、第１モジュール６０１の第１出力が示す論理値、第２モジュール６０２の第２出力が示す論理値、第３モジュール６０３の第３出力が示す論理値のそれぞれを取得する。
【００７６】
多数決回路６０４は、取得した３つの論理値が不一致であるか否かに基づいて、回路構成情報が正常であるか否かを判定する（ステップＳ１９）。
【００７７】
多数決回路６０４は、３つの論理値が一致していると判定した場合（ステップＳ１９においてＮＯ）、回路構成情報が正常であると判定し、ステップＳ１９の処理に戻す。
【００７８】
多数決回路６０４は、３つの論理値が不一致であると判定した場合（ステップＳ１９においてＹＥＳ）、回路構成情報に異常が発生したと判定する。
多数決回路６０４が回路構成情報に異常が発生したと判定した場合、内部制御レジスタに対しての読み込み及び書き込みが完了するまでの間、状態管理部５００は、正常動作している２つのモジュールのそれぞれが出力する論理値どうしが不一致であるか否かを判定させる。
【００７９】
例えば、状態管理部５００は、第１モジュール６０１に異常が発生している場合、第２モジュール６０２から第２出力を取得し、第３モジュール６０３から第３出力を取得する。
状態管理部５００は、取得した２つの論理値が不一致であるか否かを判定する（ステップＳ２０）。
状態管理部５００は、２つの論理値が不一致であるか否かを示す判定結果をプロセッサ１に送信する。
【００８０】
プロセッサ１は、受信した判定結果に基づいて、診断試験結果が正常であるか否かを判定する。
【００８１】
具体的には、プロセッサ１は、内部制御レジスタに対しての読み込み及び書き込みが完了するまでの間、受信した判定結果が２つの論理値が一致することを示す場合、診断試験結果が正常であると判定する。
また、プロセッサ１は、内部制御レジスタに対しての読み込み及び書き込みが完了するまでの間、受信した判定結果が２つの論理値が不一致であることを示す場合、診断試験結果が異常であると判定する。
プロセッサ１は、ステップＳ１２の処理に進める。
【００８２】
以上、本発明の第一の実施形態による情報処理システムについて説明した。情報処理システム１００は、プロセッサ１と、ＦＰＧＡ３と、を備える。ＦＰＧＡ３は、記憶部４と、トランジスタ回路５と、回路構成情報修復装置３０と、を備える。記憶部４は、回路構成情報４０を記憶する。トランジスタ回路５は、記憶部４が記憶する回路構成情報４０に基づいて、第１診断部５１、第２診断部５２、・・・、第ｎ診断部５ｎ、第１論理ブロック６１、第２論理ブロック６２、・・・、第ｎ論理ブロック６ｎのそれぞれを構成する。第１診断部５１は、状態管理部５００、第１書込部５１１、第２書込部５１２、・・・、第ｎ書込部５１ｎ、第１多数決読出部５２１、第２多数決読出５２２、・・・、第ｎ多数決読出部５２ｎを備える。状態管理部５００は、第１モジュール６０１の状態を管理する。状態管理部５００は、第１モジュール６０１の場合と同様に、第２モジュール６０２、第３モジュール６０３のそれぞれの状態を管理する。第１書込部５１１は、ソフトウェア２０によるプロセッサ１からの命令に応じて、第１多数決読出部５２１が行う多数決の結果に基づく論理値を、第１−１内部制御レジスタ６１１、第２−１内部制御レジスタ６２１、第３−１内部制御レジスタ６３１それぞれに書き込む。第２書込部５１２は、第１書込部５１１と同様に、ソフトウェア２０によるプロセッサ１からの命令に応じて、第２多数決読出部５２２が行う多数決の結果に基づく論理値を、第１−２内部制御レジスタ６１２、第２−２内部制御レジスタ６２２、第３−２内部制御レジスタ６３２それぞれに書き込む。第ｎ書込部５１ｎは、第１書込部５１１と同様に、ソフトウェア２０によるプロセッサ１からの命令に応じて、第ｎ多数決読出部５２ｎが行う多数決の結果に基づく論理値を、第１−ｎ内部制御レジスタ６１ｎ、第２−ｎ内部制御レジスタ６２ｎ、第３−ｎ内部制御レジスタ６３ｎそれぞれに書き込む。第１多数決読出部５２１は、第１−１内部制御レジスタ６１１、第２−１内部制御レジスタ６２１、第３−１内部制御レジスタ６３１のそれぞれからそれぞれが保持している論理値を取得する。第１多数決読出部５２１は、取得した論理値に対して多数決を行う。第２多数決読出部５２２は、第１多数決読出部５２１と同様に、第１−２内部制御レジスタ６１２、第２−２内部制御レジスタ６２２、第３−２内部制御レジスタ６３２のそれぞれからそれぞれが保持している値を取得する。第２多数決読出部５２２は、取得した論理値に対して多数決を行う。第ｎ多数決読出部５２ｎは、第１多数決読出部５２１と同様に、第１−ｎ内部制御レジスタ６１ｎ、第２−ｎ内部制御レジスタ６２ｎ、第３−ｎ内部制御レジスタ６３ｎのそれぞれからそれぞれが保持している値を取得する。第ｎ多数決読出部５２ｎは、取得した論理値に対して多数決を行う。第２診断部５２、・・・、第ｎ診断部５ｎのそれぞれは、第１診断部５１と同様に、状態管理部５００、第１書込部５１１、第２書込部５１２、・・・、第ｎ書込部５１ｎ、第１診断部５１、第２診断部５２、・・・、第ｎ診断部５ｎのそれぞれを備える。第２診断部５２、・・・、第ｎ診断部５ｎのそれぞれは、第１診断部５１と同様に動作する。第１論理ブロック６１は、第１モジュール６０１、第２モジュール６０２、第３モジュール６０３、多数決回路６０４を備える。また、第１論理ブロック６１は、さらに、図示しない論理回路を備える。第１モジュール６０１は、第１ステータスレジスタ６１０、第１−１内部制御レジスタ６１１、第１−２内部制御レジスタ６１２、・・・、第１−ｎ内部制御レジスタ６１ｎを備える。第１ステータスレジスタ６１０は、第１モジュール６０１のステータスを保持する。第１−１内部制御レジスタ６１１は、プロセッサ１からの命令に応じて、ステータスの遷移に影響を与える第１ノードにおける論理状態を保持する。論理状態は、“１”と“０”（Ｈｉｇｈ電圧とＬｏｗ電圧、または、Ｌｏｗ電圧とＨｉｇｈ電圧）を示す情報である。第１−２内部制御レジスタ６１２は、プロセッサ１からの命令に応じて、ステータスの遷移に影響を与える第２ノードにおける論理状態を保持する。第１−ｎ内部制御レジスタ６１ｎは、プロセッサ１からの命令に応じて、ステータスの遷移に影響を与える第ｎノードにおける論理状態を保持する。第２モジュール６０２は、第１モジュール６０１と同様に、第２ステータスレジスタ６２０、第２−１内部制御レジスタ６２１、第２−２内部制御レジスタ６２２、・・・、第２−ｎ内部制御レジスタ６２ｎを備える。第３モジュール６０３は、第１モジュール６０１と同様に、第３ステータスレジスタ６３０、第３−１内部制御レジスタ６３１、第３−２内部制御レジスタ６３２、・・・、第３−ｎ内部制御レジスタ６３ｎを備える。第２モジュール６０２、第３モジュール６０３のそれぞれは、第１モジュール６０１と同様に動作する。多数決回路６０４は、第１モジュール６０１、第２モジュール６０２、第３モジュール６０３のそれぞれが出力する論理値を取得する。多数決回路６０４は、取得した３つの論理値に基づいて、回路構成情報に異常が発生したか否かを判定する。多数決回路６０４は、取得した３つの論理値が一致すると判定した場合、回路構成情報に異常は発生していないと判定し、その論理値を、後段の論理ブロック（第１論理ブロック６１の多数決回路６０４の場合、第２論理ブロック６２）に送信する。多数決回路６０４は、取得した３つの論理値が一致しない（３つの論理値のうち１つの論理値が異なる）と判定した場合、回路構成情報に異常が発生したと判定し、回路構成情報に異常が発生したことを示す異常発生信号ＳＧｅｒｒを第１診断部５１に送信する。第２論理ブロック６２、・・・、第ｎ論理ブロック６ｎのそれぞれは、第１論理ブロック６１と同様に、第１モジュール６０１、第２モジュール６０２、第３モジュール６０３、多数決回路６０４を備える。第２論理ブロック６２、・・・、第ｎ論理ブロック６ｎのそれぞれは、第１論理ブロック６１と同様に動作する。回路構成情報修復装置３０は、回路構成情報異常検知部３１と、回路構成情報修復部３２と、を備える。回路構成情報異常検知部３１は、例えば、特許文献“特許第４８５６８４８号公報”に記載されている巡回冗長検査符号を回路構成情報に付加し、定期的に回路構成情報を検査することで回路構成情報の異常を検出する技術を用いて、ＦＰＧＡ３の回路構成情報が正常であるか否かを確認する。回路構成情報修復部３２は、例えば、パーシャル・リコンフィギュレーションなどの技術を用いて、回路構成情報の異常を修復する。
このようにすれば、トランジスタ回路５は、論理回路における制御レジスタにおいて三重化された制御レジスタにおける論理値を用いて制御レジスタにおける論理値を更新するため、特許文献１に記載されている技術を用いた場合のように、そのときの論理値をアドレスを指定してメモリに記憶させる必要はない。その結果、トランジスタ回路５は、短時間で制御レジスタにおける論理値を更新することができる。
【００８３】
＜第二の実施形態＞
本発明の第二の実施形態によるトランジスタ回路について説明する。
本発明の第二の実施形態によるトランジスタ回路は、本発明の最小構成のトランジスタ回路である。
【００８４】
本発明の第二の実施形態によるトランジスタ回路５は、図３に示すように、多数決読出部５ａと、書込部５ｂと、を備える。
【００８５】
多数決読出部５ａは、同一構成の３つの論理回路のそれぞれに対応する３つのレジスタから論理値を取得し、多数決を行う。
【００８６】
書込部５ｂは、多数決読出部５ａが行った多数決の結果に基づいて、同一構成の３つのレジスタに多数決読出部５ａが行った多数決の結果が示す論理値を書き込む。
【００８７】
このようにすれば、トランジスタ回路５は、短時間で制御レジスタにおける論理値を更新することができる。
【００８８】
なお、本発明の実施形態における処理フローは、適切な処理が行われる範囲において、処理の順番が入れ替わってもよい。
【００８９】
本発明の実施形態における記憶部２、４、その他の記憶部のそれぞれは、適切な情報の送受信が行われる範囲においてどこに備えられていてもよい。また、記憶部２、４、その他の記憶部のそれぞれは、適切な情報の送受信が行われる範囲において複数存在しデータを分散して記憶していてもよい。
【００９０】
本発明の実施形態について説明したが、上述のプロセッサ１、ＦＰＧＡ３（トランジスタ回路５、回路構成情報修復装置３０を含む）のそれぞれは内部に、コンピュータシステムを有していてもよい。そして、上述した処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータがそのプログラムを実行するようにしてもよい。
【００９１】
また、上記プログラムは、前述した機能の一部を実現してもよい。さらに、上記プログラムは、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるファイル、いわゆる差分ファイル（差分プログラム）であってもよい。
【００９２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例であり、発明の範囲を限定しない。これらの実施形態は、発明の要旨を逸脱しない範囲で、追加、種々の省略、置き換え、変更を行ってよい。
【符号の説明】
【００９３】
１・・・プロセッサ
２、４・・・記憶部
３・・・ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）
５・・・トランジスタ回路
５ａ・・・多数決読出部
５ｂ・・・書込部
２０・・・ソフトウェア
２１・・・診断試験実行命令
２２・・・診断試験結果判定
３０・・・回路構成情報修復装置
３１・・・回路構成情報異常検知部
３２・・・回路構成情報修復部
４０・・・回路構成情報
５１・・・第１診断部
５２・・・第２診断部
５ｎ・・・第ｎ診断部
６１・・・第１論理ブロック
６２・・・第２論理ブロック
６ｎ・・・第ｎ論理ブロック
１００・・・情報処理システム
５００・・・状態管理部
５１１・・・第１書込部
５１２・・・第２書込部
５１ｎ・・・第ｎ書込部
５２１・・・第１多数決読出部
５２２・・・第２多数決読出部
５２ｎ・・・第ｎ多数決読出部
６０１・・・第１モジュール
６０２・・・第２モジュール
６０３・・・第３モジュール
６０４・・・多数決回路
６１１・・・第１−１内部制御レジスタ
６１２・・・第１−２内部制御レジスタ
６１ｎ・・・第１−ｎ内部制御レジスタ
６２１・・・第２−１内部制御レジスタ
６２２・・・第２−２内部制御レジスタ
６２ｎ・・・第２−ｎ内部制御レジスタ
６３１・・・第３−１内部制御レジスタ
６３２・・・第３−２内部制御レジスタ
６３ｎ・・・第３−ｎ内部制御レジスタ
【図１】
0006497746.tif 000002
【図２】
0006497746.tif 000003
【図３】
0006497746.tif 000004