(57)【要約】      （修正有）【課題】システムの信頼性を向上させる。【解決手段】ＦＰＧＡ１１５１をアップデートする場合、ＭＰＵ１１１１は、通信部１１７１を介して新たなファームパッケージ１１３２を受信し、ＭＰＵＦＭＥＭ１１３１に格納してファームパッケージ１１３２を更新し、ＭＰＵ１１１１は、ＦＰＧＡデータ１１３５を読み出し、ＦＰＧＡＦＭＥＭ１１４１にＦＰＧＡデータ１１４２を格納し、ＦＰＧＡ１１５１をリコンフィグレーションし、アップデート後のファームパッケージ１１３２は、ＭＰＵファーム１１３３、ＦＰＧＡデータ１１３５、およびＦＰＧＡ診断プログラム１１３７を含み、ＦＰＧＡ診断プログラム１１３７は、ＦＰＧＡ１１５１の診断を行うプログラムであり、アップデートにより追加された全ての回路（新回路）と新回路の動作に必要な回路のみ診断を行い、診断対象となる回路や診断処理等が予め設定されている。【選択図】図４
2015106594.tif 000002
【特許請求の範囲】
【請求項１】
第１の回路構成情報を格納する記憶部と、
前記第１の回路構成情報に基づいて第１の複数の回路を構成するとともに、第２の回路構成情報に基づいて第２の複数の回路を構成する回路部と、
前記第１の回路構成情報を前記第２の回路構成情報に更新し、前記第２の複数の回路のうち、前記第２の回路構成情報により新たに追加された全ての回路を診断する処理部と、を有することを特徴とする診断装置。
【請求項２】
前記処理部は、前記新たに追加された全ての回路および該新たに追加された回路の動作に必要な回路のみ診断することを特徴とする請求項１記載の診断装置。
【請求項３】
前記第２の回路構成情報は、前記第２の回路構成情報により新たに追加された全ての回路を診断する診断回路を構成する情報を含み、
前記処理部は、前記診断回路に診断の開始を指示し、
前記診断回路は、前記指示を受信すると、前記第２の回路構成情報により新たに追加された全ての回路を診断することを特徴とする請求項１記載の診断装置。
【請求項４】
前記処理部は、前記診断回路から診断完了の通知を受信した場合、前記第２の回路構成情報を第３の回路構成情報に更新し、
前記回路部は、前記第３の回路構成情報に基づいて、第３の複数の回路を構成することを特徴とする請求項３記載の診断装置。
【請求項５】
前記処理部は、診断処理において、エラーが検出された場合、前記第２の回路構成情報を前記第２の回路構成情報により新たに追加された第１の回路と同じ機能を有する第２の回路を前記第１の回路と異なる位置に構成する第３の回路構成情報に更新し、
前記回路部は、前記第３の回路構成情報に基づいて、第３の複数の回路を構成し、
前記処理部は、前記第３の複数の回路のうち、前記第３の回路構成情報により新たに追加された全ての回路を診断することを特徴とする請求項１記載の診断装置。
【請求項６】
第１の回路構成情報を格納する記憶部を有する診断装置の制御方法において、
前記診断装置が有する回路部が、前記第１の回路構成情報に基づいて第１の複数の回路を構成するとともに、第２の回路構成情報に基づいて第２の複数の回路を構成し、
前記診断装置が有する処理部が、前記第１の回路構成情報を前記第２の回路構成情報に更新し、前記第２の複数の回路のうち、前記第２の回路構成情報により新たに追加された全ての回路を診断することを特徴とする診断装置の制御方法。
【請求項７】
第１の回路構成情報を格納する記憶部を有する診断装置の制御プログラムにおいて、
前記診断装置が有する回路部に、前記第１の回路構成情報に基づいて第１の複数の回路を構成するとともに、第２の回路構成情報に基づいて第２の複数の回路を構成させ、
前記診断装置が有する処理部に、前記第１の回路構成情報を前記第２の回路構成情報に更新し、前記第２の複数の回路のうち、前記第２の回路構成情報により新たに追加された全ての回路を診断させることを特徴とする診断装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、診断装置、診断装置の制御方法、および診断装置の制御プログラムに関する。
【背景技術】
【０００２】
Field Programmable Gate Array（FPGA）は、製造後にユーザが回路の構成情報を変更することが可能な集積回路であり、現在、様々な装置で用いられている。
【０００３】
図１は、従来のシステムのアップデート前の構成図である。
システム１０１は、Micro Processing Unit（MPU）１１１、メモリ１２１、MPU Flash Memory（FMEM）１３１、FPGA FMEM１４１、FPGA１５１、制御デバイス１６１−ｉ（ｉ＝１〜ｍ）、および通信部１７１を備える。
【０００４】
MPU FMEM１３１は、ファームパッケージ１３２を格納する。
ファームパッケージ１３２は、MPUファーム１３３およびFPGAデータ１３５を含む。
【０００５】
MPUファーム１３３は、ファームパッケージ１３２の更新やFPGA１５１のリコンフィグレーションの指示等を行うプログラムである。
【０００６】
FPGAデータ１３５は、FPGA１５１内に構成される回路の情報である。
FPGA FMEM１４１は、FPGAデータ１４２を格納する。
【０００７】
MPU１１１は、MPU FMEM１３１内のFPGAデータ１３５をFPGA FMEM１４１にコピーする。FPGA FMEM１４１にコピーされたFPGAデータは、FPGAデータ１４２と表記する。すなわち、FPGAデータ１３５とFPGAデータ１４２の内容は同一である。
【０００８】
MPU１１１は、FPGA１５１にリコンフィグレーションを指示すると、FPGA１５１はFPGAデータ１４２を読み出し、FPGAデータ１４２に基づいてFPGA１５１内に回路を構成する。
【０００９】
アップデート前において、FPGAデータ１４２に基づいてFPGA１５１内に回路を構成すると、旧回路１８１−１〜１８１−ｎが構成される。以下、旧回路１８１−１〜１８１−ｎは、それぞれ旧回路１〜ｎと表記する。
【００１０】
旧回路１〜ｎは、制御デバイス１６１の制御等の通常のシステム動作で動作する回路である。
【００１１】
また、FPGA１５１内には、旧回路１〜ｎが使用していない領域に素子の故障（故障部分１、２）が存在する。
【００１２】
故障部分１、２は、旧回路１〜ｎが使用していない領域に存在するため、旧回路１〜ｎは、正常に動作する。
【００１３】
FPGA１５１をアップデートする場合、MPU１１１は、通信部１７１を介して新たなファームパッケージ１３２を受信し、MPU FMEM１３１に格納してファームパッケージ１３２を更新する。そして、MPU１１１は、FPGAデータ１３５を読み出し、FPGA FMEM１４１にFPGAデータ１４２を格納し、FPGA１５１をリコンフィグレーションする。
【００１４】
図２は、従来のシステムのアップデート後の構成および診断範囲を示す図である。
アップデート後のFPGAデータ１４２を用いてFPGA１５１をリコンフィグレーションすると、FPGA１５１には、旧回路１〜ｎおよび新回路１９１−１、１９１−２が構成される。以下、新回路１９１−１、１９１−２は、それぞれ新回路１、２と表記する。
【００１５】
旧回路１〜ｎは、アップデート前に構成されていた旧回路１〜ｎと同じである。ただし、アップデート前において旧回路１と旧回路２は接続していたが、アップデート後において旧回路１と旧回路２は接続しておらず、旧回路１、２は新回路１と接続している。
【００１６】
アップデート前のFPGA１５１と比較するとアップデート後のFPGA１５１には、新回路１、２が追加される。
【００１７】
新回路１は、旧回路１、２および新回路２と接続している。
新回路１は、システム１０１の通常動作時に動作する回路である。
新回路２は、特定の条件でのみ動作し、システム１０１の通常動作時には動作しない。
【００１８】
新回路１は、故障部分１を含む領域に構成され、新回路２は、故障部分２を含む領域に構成されるものとする。この場合、新回路１、２は、誤動作する。
【００１９】
上述のようなアップデートが行われたシステム１０１において、システム１０１全体を通常動作による疎通動作確認をすることで、FPGA１５１の動作確認を行う。
【００２０】
この場合、疎通動作確認の範囲は、通常動作で動作する旧回路１〜ｎおよび新回路１を含む。
【００２１】
すなわち、旧回路１〜ｎおよび新回路１を通常動作させて、エラーがあるかチェックする。
【００２２】
新回路１は、システム１０１の通常動作で動作する回路であるため、新回路１が構成されている領域に故障部分があれば、新回路１のエラーにより故障を検出できる。この場合、FPGA１５１を上記アップデート等を行う保守作業中に交換すればよい。
【００２３】
一方、通常動作による動作確認において、特定の条件でのみ動作する新回路２は動作確認の範囲に含まれていない。
【００２４】
よって、新回路２に故障部分が含まれていたとしても、従来の動作確認では新回路２の故障は検出できない。
【００２５】
新回路２の故障は、保守作業の終了後、システム運用中に新回路２が動作した場合に検出される。そのため、新回路２に故障部分が含まれていた場合、再度システム１０１を停止し、FPGA１５１を交換する必要がある。
【００２６】
このように、従来のアップデート時の動作確認では、FPGA内の全ての回路をチェックしておらず、保守作業の終了後のシステム運用中にFPGAの故障が検出されるため、システムの信頼性が低くなるという問題がある。
【００２７】
尚、システムの出荷前にFPGA内部の全素子の診断が出来ていればどんな回路構成でも正常な動作が保証される。しかし、そのようなテストプログラムの作成は膨大な開発工数およびコストが発生してしまう。
【先行技術文献】
【特許文献】
【００２８】
【特許文献１】特開２００８−５２３８９号公報
【特許文献２】特開２００９−４４４７３号公報
【発明の概要】
【発明が解決しようとする課題】
【００２９】
本発明の課題は、システムの信頼性を向上させることである。
【課題を解決するための手段】
【００３０】
実施の形態の診断装置は、記憶部と、回路部と、処理部と、を備える。
前記記憶部は、第１の回路構成情報を格納する。
【００３１】
前記回路部は、前記第１の回路構成情報に基づいて第１の複数の回路を構成するとともに、第２の回路構成情報に基づいて第２の複数の回路を構成する。
【００３２】
前記処理部は、前記第１の回路構成情報を前記第２の回路構成情報に更新し、前記第２の複数の回路のうち、前記第２の回路構成情報により新たに追加された全ての回路を診断する。
【発明の効果】
【００３３】
実施の形態の診断装置によれば、システムの信頼性を向上させることである。
【図面の簡単な説明】
【００３４】
【図１】従来のシステムのアップデート前の構成図である。
【図２】従来のシステムのアップデート後の構成および診断範囲を示す図である。
【図３】第１の実施の形態に係るシステムのアップデート前の構成図である。
【図４】第１の実施の形態に係るシステムのアップデート後の構成図である。
【図５】第１の実施の形態に係る診断方法における診断範囲を示す図である。
【図６】第１の実施の形態に係る診断方法のフローチャートである。
【図７】第２の実施の形態に係るシステムのアップデート前の構成図である。
【図８】第２の実施の形態に係るシステムのアップデート後の診断時の構成図である。
【図９】第２の実施の形態に係る診断方法における診断範囲を示す図である。
【図１０】第２の実施の形態に係る診断方法のフローチャートである。
【図１１】第２の実施の形態に係るシステムのアップデート後の診断後の構成図である。
【図１２】第３の実施の形態に係るシステムのアップデート前の構成図である。
【図１３】第３の実施の形態に係るシステムのアップデート後の最初の診断時の構成図である。
【図１４】第３の実施の形態に係るシステムのアップデート後の再診断時の構成図である。
【図１５】第３の実施の形態に係る診断方法のフローチャートである。
【図１６】情報処理装置（コンピュータ）の構成図である。
【発明を実施するための形態】
【００３５】
以下、図面を参照しながら実施の形態について説明する。
（第１の実施の形態）
図３は、第１の実施の形態に係るシステムのアップデート前の構成図である。
【００３６】
システム１１０１は、MPU１１１１、メモリ１１２１、MPU Flash Memory（FMEM）１１３１、FPGA FMEM１１４１、FPGA１１５１、制御デバイス１１６１−ｉ（ｉ＝１〜ｍ）、および通信部１１７１を備える。
【００３７】
システム１１０１は、例えば、システムボードやサーバ等のコンピュータである。
MPU１１１１は、ファームパッケージの更新やFPGAの診断を行う処理装置である。MPU１１１１は、メモリ１１２１に読み出されたMPUファームおよびFPGA診断プログラムを実行することにより、ファームパッケージ１１３２の更新やFPGA１１５１の診断を行う。
【００３８】
メモリ１１２１は、システム１１０１で利用されるデータやプログラムを一時的に格納する記憶装置である。メモリ１１２１は、例えば、Random Access Memory（RAM）である。
【００３９】
MPU FMEM１１３１は、ファームパッケージ１１３２を格納する。MPU FMEM１１３１は、例えば、不揮発性のメモリである。
【００４０】
ファームパッケージ１１３２は、MPUファーム１１３３およびFPGAデータ１１３５を含む。
【００４１】
MPUファーム１１３３は、ファームパッケージ１１３２の更新やFPGA１１５１のリコンフィグレーションの指示等を行うプログラムである。
【００４２】
FPGAデータ１１３５は、FPGA１１５１内に構成される回路の情報である。FPGAデータ１１３５は、FPGA１１５１内に構成される回路の構造、回路の位置、および回路間の接続関係などの情報を含む。
【００４３】
FPGA FMEM１１４１は、FPGAデータ１１４２を格納する。FPGA FMEM１１４１は、例えば、不揮発性のメモリである。
【００４４】
FPGAデータ１１４２は、FPGA１１５１内に構成される回路の情報である。FPGAデータ１１４２は、MPU１１１１がFPGAデータ１１３５をコピーすることにより生成される。よって、FPGAデータ１１４２とFPGAデータ１１３５の内容は同一である。
【００４５】
FPGA１１５１は、FPGAデータ１１４２に基づいてFPGA１１５１の内部に回路を構成する。FPGA１１５１は、MPU１１１１と制御デバイス１１６１間の通信をさせるためのブリッジ機能を有する。FPGA１１５１は、回路部の一例である。
【００４６】
第１の実施の形態では、更新前のFPGAデータ１１４２に基づいて、旧回路１１８１−１〜１１８１−ｎが構成される。以下、旧回路１１８１−１〜１１８１−ｎは、それぞれ旧回路１〜ｎと表記する。
【００４７】
旧回路１は、旧回路２およびMPU１１１１と接続する。
旧回路２は、旧回路１および旧回路３と接続する。
【００４８】
旧回路３は、旧回路２および制御デバイス１１６１−１〜１１６１−ｍと接続する。
制御デバイス１１６１は、FPGA１１５１を介してMPU１１１１により制御される装置である。
【００４９】
通信部１１７１は、Local Area Network（LAN）等のネットワークと接続し、ネットワークを介して接続された外部装置とデータの送受信を行う。
【００５０】
図４は、第１の実施の形態に係るシステムのアップデート後の構成図である。
FPGA１１５１をアップデートする場合、MPU１１１１は、通信部１１７１を介して新たなファームパッケージ１１３２を受信し、MPU FMEM１１３１に格納してファームパッケージ１１３２を更新する。そして、MPU１１１１は、FPGAデータ１１３５を読み出し、FPGA FMEM１１４１にFPGAデータ１１４２を格納し、FPGA１１５１をリコンフィグレーションする。
【００５１】
図４は、FPGAデータ１１３５の更新後、更新後のFPGAデータ１１３５でFPGA１１５１をリコンフィグレーションしたときの構成図である。
【００５２】
アップデート後のファームパッケージ１１３２は、MPUファーム１１３３、FPGAデータ１１３５、およびFPGA診断プログラム１１３７を含む。
【００５３】
FPGA診断プログラム１１３７は、FPGA１１５１の診断を行うプログラムである。
FPGA診断プログラム１１３７は、アップデートにより追加された全ての回路（新回路）と新回路の動作に必要な回路のみ診断を行う。
【００５４】
FPGA診断プログラム１１３７には、診断対象となる回路や診断処理等が予め設定されている。
【００５５】
FPGA１１５１には、更新後のFPGAデータ１１４２に基づいて、旧回路１１８１−１〜１１８１−ｎおよび新回路１１９１−１、１１９１−２が構成される。以下、旧回路１１８１−１〜１１８１−ｎは、それぞれ旧回路１〜ｎ、新回路１１９１−１、１１９１−２は、それぞれ新回路１、２と表記する。
【００５６】
旧回路１〜ｎは、更新前のFPGA１１５１においても、FPGA１１５１内に構成されていた回路である。
【００５７】
新回路１、２は、更新後のFPGA１１５１において、更新前のFPGA１１５１と比較して新たに追加された回路である。
【００５８】
旧回路１は、新回路１およびMPU１１１１と接続する。
旧回路２は、新回路１および旧回路３と接続する。
旧回路３は、旧回路２および制御デバイス１１６１−１〜１１６１−ｍと接続する。
【００５９】
新回路１は、旧回路１、２、および新回路２と接続する。新回路１は、システム１１０１の通常動作時に動作する回路である。
【００６０】
新回路２は、新回路１と接続する。新回路２は、特定の条件でのみ動作し、システム１１０１の通常動作時には動作しない。
【００６１】
また、旧回路１〜３は、新回路１、２の動作に必要な回路である。尚、新回路の動作に必要な回路とは、新回路の動作時に動作する（使用される）回路である。新回路の動作に必要な回路は、例えば、新回路が動作時に使用するデータを生成して新回路に出力したり、他の回路から入力されたデータを新回路に中継したりする回路である。
【００６２】
旧回路４〜ｎは、新回路１、２の動作に必要のない回路である。すなわち、新回路１、２は、回路４〜ｎが動作していなくても正常な動作が可能である。
【００６３】
図５は、第１の実施の形態に係る診断方法における診断範囲を示す図である。
第１の実施の形態において、FPGA診断プログラム１１３７は、アップデートにより追加された全ての回路（新回路）と新回路の動作に必要な回路のみ診断を行う。尚、新回路の動作に必要な回路とは、新回路の動作時に動作する（使用される）回路である。
【００６４】
また、FPGA診断プログラム１１３７は、追加された回路の動作に必要のない回路の診断は行わない。
【００６５】
すなわち、図４のシステム１１０１において、FPGA診断プログラム１１３７は、新回路１、２と旧回路１〜３のみ診断を行う。FPGA診断プログラム１１３７は、旧回路４〜ｎの診断は行わない。これにより、診断時間を短縮することができ、システム１１０１の停止時間を短縮することができる。
【００６６】
図６は、第１の実施の形態に係る診断処理のフローチャートである。
FPGA１１５１は、FPGAデータ１１４２に基づいて、リコンフィグレーションしており、図３に示すアップデート前の構成となっている。
【００６７】
また、MPU１１１１は、MPUファーム１１３３を実行しているものとする。
ステップＳ１５０１において、MPU１１１１は、システム１１０１とネットワークを介して接続する外部装置から通信部１１７１を介してファームパッケージ１１３２を受信し、ファームパッケージ１１３２をMPU FMEM１１３１に書き込む。
【００６８】
ステップＳ１５０２において、MPU１１１１は、FPGAデータ１１３５を読み出し、シリアルバス１２０１経由でバスマスタとなりFPGA FMEM１１４１に書き込む。上述のように、FPGA FMEM１１４１に書き込まれたFPGAデータは、FPGAデータ１１４２と表記する。
【００６９】
ステップＳ１５０３において、MPU１１１１は、FPGA１１５１にリコンフィグレーションを指示する。FPGA１１５１は、指示を受信すると、リコンフィグレーションを行う。詳細には、FPGA１１５１は、FPGAデータ１１４２を読み出し、FPGAデータ１１４２に基づいて、旧回路１〜ｎおよび新回路１、２を構成する。また、FPGA１１５１は、MPU１１１１を介してMPU FMEM１１３１からFPGAデータ１１３５を受信し、FPGAデータ１１３５に基づいて、旧回路１〜ｎおよび新回路１、２を構成してもよい。その場合、ステップＳ１５０２のFPGAデータ１１３５をFPGA FMEM１１４１に書き込む処理は無くてもよい。
【００７０】
ステップＳ１５０４において、MPU１１１１は、FPGA診断プログラム１１３７を実行する。FPGA診断プログラム１１３７によりMPU１１１１は、新回路１、２および旧回路１〜３を診断する。診断処理は、例えば、予め定められたコマンドやデータを診断対象の回路に入力し、該回路が正常に動作するか否かをチェックする。予め定められたコマンドやデータを診断対象の回路に入力したときに、診断対象の回路が異常な動作をした場合には、エラーが検出される。
【００７１】
ステップＳ１５０５において、診断が正常に終了した場合（すなわち、新回路１、２、および旧回路１〜３にエラーが検出されなかった場合）、処理は終了し、診断が正常に終了しなかった場合（すなわち、新回路１、２、または旧回路１〜３のいずれかにエラーが検出された場合）、制御はステップＳ１５０６に進む。
【００７２】
ステップＳ１５０６において、MPU１１１１は、故障通知を行う。MPU１１１１は、例えば、エラーが検出された旨をシステム１１０１が有する表示部（不図示）に表示したり、システム１１０１とネットワークを介して接続される外部装置にエラー通知を行う。
【００７３】
第１の実施の形態のシステムによれば、更新により新たに追加された全ての回路を診断することで、システム運用中に潜在的な故障によるエラーを検出することがなくなり、システムの信頼性が向上する。
【００７４】
また、第１の実施の形態のシステムによれば、診断範囲を限定して診断時間を短縮することで、システムの停止時間を短縮することができる。
【００７５】
（第２の実施の形態）
図７は、第２の実施の形態に係るシステムのアップデート前の構成図である。
【００７６】
システム２１０１は、MPU２１１１、メモリ２１２１、MPU Flash Memory（FMEM）２１３１、FPGA FMEM２１４１、FPGA２１５１、制御デバイス２１６１−ｉ（ｉ＝１〜ｍ）、および通信部２１７１を備える。
システム２１０１は、例えば、システムボードやサーバ等のコンピュータである。
【００７７】
MPU FMEM２１３１は、ファームパッケージ２１３２を格納する。MPU FMEM２１３１は、例えば、不揮発性のメモリである。
【００７８】
ファームパッケージ２１３２は、MPUファーム２１３３およびFPGAデータ（通常版）２１３５を含む。
【００７９】
MPUファーム２１３３は、ファームパッケージ２１３２の更新やFPGA２１５１のリコンフィグレーションの指示等を行うプログラムである。
【００８０】
FPGAデータ２１３５は、FPGA２１５１内に構成される回路の情報である。FPGAデータ２１３５は、FPGA２１５１内に構成される回路の構造、回路の位置、および回路間の接続関係などの情報を含む。
【００８１】
MPU２１１１、メモリ２１２１、制御デバイス２１６１−ｉ、および通信部２１７１は、第１の実施の形態のMPU１１１１、メモリ１１２１、制御デバイス１１６１−ｉ、および通信部１１７１とそれぞれ同様の機能を有するので説明は省略する。
【００８２】
FPGA FMEM２１４１は、FPGAデータ（通常版）２１４３を格納する。FPGA FMEM２１４１は、例えば、不揮発性のメモリである。
【００８３】
FPGAデータ２１４３（通常版）は、FPGA２１５１内に構成される回路の情報である。FPGAデータ２１４３（通常版）は、MPU２１１１がFPGAデータ（通常版）２１３５をコピーすることにより生成される。よって、FPGAデータ（通常版）２１４３とFPGAデータ（通常版）２１３５の内容は同一である。
【００８４】
FPGA２１５１は、FPGAデータ（通常版）２１４３に基づいてFPGA２１５１の内部に回路を構成する。FPGA２１５１は、MPU２１１１と制御デバイス２１６１間の通信をさせるためのブリッジ機能を有する。FPGA２１５１は、回路部の一例である。
【００８５】
第２の実施の形態では、更新前のFPGAデータ（通常版）２１４３に基づいて、旧回路２１８１−１〜２１８１−ｎが構成される。以下、旧回路２１８１−１〜２１８１−ｎは、それぞれ旧回路１〜ｎと表記する。
【００８６】
旧回路２１８１−１〜２１８１−ｎは、第１の実施の形態の更新前の旧回路１１８１−１〜１１８１−ｎとそれぞれ同様の機能および構成を有するので説明は省略する。
【００８７】
図８は、第２の実施の形態に係るシステムのアップデート後の診断時の構成図である。
FPGA２１５１をアップデートする場合、MPU２１１１は、通信部２１７１を介して新たなファームパッケージ２１３２を受信し、MPU FMEM２１３１に格納してファームパッケージ２１３２を更新する。そして、MPU２１１１は、FPGAデータ（診断版）２１３６を読み出し、FPGA FMEM２１４１にFPGAデータ（診断版）２１４２を格納し、FPGA２１５１をリコンフィグレーションする。
【００８８】
図８は、ファームパッケージ２１３２の更新後、更新後のFPGAデータ（診断版）２１３６でFPGA２１５１をリコンフィグレーションしたときの構成図である。
【００８９】
アップデート後のファームパッケージ２１３２は、MPUファーム２１３３、FPGAデータ（通常版）２１３５、FPGAデータ（診断版）２１３６、およびFPGA診断プログラム２１３７を含む。
【００９０】
MPUファーム２１３３は、ファームパッケージ２１３２の更新やFPGA２１５１のリコンフィグレーションの指示等を行うプログラムである。
【００９１】
FPGAデータ（通常版）２１３５は、FPGA２１５１内に構成される回路の情報である。FPGAデータ２１３５（通常版）は、FPGA２１５１内に構成される回路の構造、回路の位置、および回路間の接続関係などの情報を含む。
【００９２】
FPGAデータ（診断版）２１３６は、FPGA２１５１内に構成される回路の情報である。FPGAデータ２１３６（診断版）は、FPGA２１５１内に構成される回路の構造、回路の位置、および回路間の接続関係などの情報を含む。
【００９３】
FPGA診断プログラム２１３７は、FPGA２１５１の診断を行う専用Built-In Self Test（BIST）回路２１９３に診断の開始指示、診断完了の通知の受信やエラー検出の通知の受信などを行うプログラムである。
【００９４】
FPGA FMEM２１４１は、FPGAデータ（診断版）２１４２を格納する。FPGA FMEM２１４１は、例えば、不揮発性のメモリである。
【００９５】
FPGAデータ２１４２（診断版）は、FPGA２１５１内に構成される回路の情報である。FPGAデータ２１４２（診断版）は、MPU２１１１がFPGAデータ（診断版）２１３６をコピーすることにより生成される。よって、FPGAデータ（診断版）２１４２とFPGAデータ（診断版）２１３６の内容は同一である。
【００９６】
FPGA２１５１は、FPGAデータ（診断版）２１４２に基づいてFPGA２１５１の内部に回路を構成する。
【００９７】
第２の実施の形態では、更新後のFPGAデータ（診断版）２１４２に基づいて、旧回路２１８１−１、２１８１−２、２１８１−５〜２１８１−ｎ、新回路２１９１−１、専用擬似回路２１９２、および専用BIST回路２１９３が構成される。以下、旧回路２１８１−１、２１８１−２、２１８１−５〜２１８１−ｎは、それぞれ旧回路１、２、５〜ｎ、新回路２１９１−１は、それぞれ新回路１と表記する。
【００９８】
旧回路１は、新回路１およびMPU２１１１と接続する。
旧回路２は、新回路１および専用擬似回路２１９２と接続する。
【００９９】
旧回路１、２、５〜ｎは、更新前のFPGA２１５１においても、FPGA２１５１内に構成されていた回路である。
【０１００】
新回路１は、更新後のFPGA２１５１において、図７の更新前のFPGA２１５１と比較して新たに追加された回路である。
【０１０１】
専用擬似回路２１９２は、旧回路２と接続する。
専用擬似回路２１９２は、アップデート前のFPGA２１５１において制御デバイス２１６１−１〜２１６１−ｍとのインタフェースを持つ旧回路３が構成されていた領域に構成される。
【０１０２】
専用擬似回路２１９２は、旧回路３の機能と制御デバイス２１６１−１〜２１６１−ｍと同等のインタフェースの機能とを有する。
【０１０３】
専用擬似回路２１９２は、擬似回路２１９３−１〜２１９３−ｍを含む。以下、擬似回路２１９３−１〜２１９３−ｍは、それぞれ擬似回路１〜ｍと表記する。
【０１０４】
擬似回路１〜ｍは、制御デバイス２１６１−１〜２１６１−ｍと同等のインタフェース動作を行う。すなわち、擬似回路１〜ｍは、制御デバイス２１６１−１〜２１６１−ｍにアクセスした場合の制御デバイス２１６１−１〜２１６１−ｍの応答と同等の動作を行う。
【０１０５】
例えば、新回路１の診断時に制御デバイス２１６１−１〜２１６１−ｍにアクセスしようとする場合、専用擬似回路２１９２は、制御デバイス２１６１−１〜２１６１−ｍにアクセスすることなく、擬似回路１〜ｍにより制御デバイス２１６１−１〜２１６１−ｍにアクセスした場合と同等の応答を行う。
【０１０６】
すなわち、擬似回路１〜ｍは、旧回路３を介して制御デバイス２１６１−１〜２１６１−ｍにアクセスしたときの制御デバイス２１６１−１〜２１６１−ｍの応答と同等の動作を行う。
【０１０７】
よって、MPU２１１１、旧回路１、２、新回路１、および専用BIST回路２１９３からは、FPGA２１５１内に専用擬似回路２１９２の代わりに旧回路３が構成され、旧回路３が制御デバイス２１６１−１〜２１６１−ｍと接続しているように見える。よって、図８のFPGA２１５１において、旧回路３が制御デバイス２１６１−１〜２１６１−ｍと接続している場合と同等の診断を行うことができる。
【０１０８】
専用BIST回路２１９３は、FPGA２１５１の診断を行う回路である。ハードウェアで構成された専用BIST回路２１９３は、第１の実施の形態のMPU１１１１が診断プログラム１１３７を実行してFPGA１１５１の診断を行うよりも高速に診断を実行できる。
【０１０９】
専用BIST回路２１９３は、更新前のFPGA２１５１における旧回路４のあった領域に構成される。
【０１１０】
尚、専用BIST回路２１９３が構成される領域は、更新前の旧回路４のあった領域に限られず、新回路１および新回路の動作時に動作する（使用される）回路に影響のない領域であればどこでもよい。
【０１１１】
新回路１は、旧回路１および旧回路２と接続する。新回路１は、システム２１０１の通常動作時に動作する回路である。
【０１１２】
また、旧回路１〜３は、新回路１の動作に必要な回路である。尚、新回路の動作に必要な回路とは、新回路の動作時に動作する（使用される）回路である。新回路の動作に必要な回路は、例えば、新回路が動作時に使用するデータを生成して新回路に出力したり、他の回路から入力されたデータを新回路に中継したりする回路である。
【０１１３】
旧回路５〜ｎは、新回路１の動作に必要のない回路である。すなわち、新回路１は、回路５〜ｎが動作していなくても正常な動作が可能である。
【０１１４】
図９は、第２の実施の形態に係る診断方法における診断範囲を示す図である。
第２の実施の形態において、専用BIST回路２１９３は、自身を除くアップデートにより追加された全ての回路（新回路）と新回路の動作に必要な回路のみ診断を行う。尚、新回路の動作に必要な回路とは、新回路の動作時に動作する（使用される）回路である。
【０１１５】
また、専用BIST回路２１９３は、追加された回路の動作に必要のない回路の診断は行わない。
【０１１６】
すなわち、図８のシステム２１０１において、専用BIST回路２１９３は、新回路１、旧回路１、２、および専用擬似回路２１９２のみ診断を行う。専用BIST回路２１９３は、旧回路５〜ｎの診断は行わない。これにより、診断時間を短縮することができ、システム２１０１の停止時間を短縮することができる。
【０１１７】
また、専用擬似回路２１９２を用いることで制御デバイス２１６１を動作させないため、診断時間を短縮することが出来る。
【０１１８】
図１０は、第２の実施の形態に係る診断方法のフローチャートである。
FPGA２１５１は、FPGAデータ（通常版）２１４３に基づいて、リコンフィグレーションしており、図７に示すアップデート前の構成となっている。
【０１１９】
また、MPU２１１１は、MPUファーム２１３３を実行しているものとする。
ステップＳ２５０１において、MPU２１１１は、システム２１０１とネットワークを介して接続する外部装置から通信部２１７１を介してファームパッケージ２１３２を受信し、ファームパッケージ２１３２をMPU FMEM２１３１に書き込む。
【０１２０】
ステップＳ２５０２において、MPU２１１１は、FPGAデータ（診断版）２１３６を読み出し、シリアルバス２２０１経由でバスマスタとなりFPGA FMEM２１４１に書き込む。上述のように、FPGA FMEM２１４１に書き込まれたFPGAデータ（診断版）は、FPGAデータ２１４２と表記する。
【０１２１】
ステップＳ２５０３において、MPU２１１１は、FPGA２１５１にリコンフィグレーションを指示する。FPGA２１５１は、指示を受信すると、リコンフィグレーションを行う。詳細には、FPGA２１５１は、FPGAデータ（診断版）２１４２を読み出し、FPGAデータ（診断版）２１４２に基づいて、旧回路１、２、新回路１、専用擬似回路２１９２、および専用BIST回路２１９３を構成する。また、FPGA２１５１は、MPU２１１１を介してMPU FMEM２１３１からFPGAデータ（診断版）２１３６を受信し、FPGAデータ（診断版）２１３６に基づいて、旧回路１、２、新回路１、専用擬似回路２１９２、および専用BIST回路２１９３を構成してもよい。その場合、ステップＳ２５０２のFPGAデータ（診断版）２１３６をFPGA FMEM２１４１に書き込む処理は無くてもよい。
【０１２２】
ステップＳ２５０４において、MPU２１１１は、FPGA診断プログラム２１３７を実行する。FPGA診断プログラム２１３７を実行すると、MPU２１１１は、専用BIST回路２１９３に診断の開始を指示する。
【０１２３】
指示を受信した専用BIST回路２１９３は、新回路１、旧回路１、２、および専用擬似回路２１９２を診断する。診断処理は、例えば、予め定められたコマンドやデータを診断対象の回路に入力し、該回路が正常に動作するか否かをチェックする。
【０１２４】
ステップＳ２５０５において、診断が正常に終了した場合、専用BIST回路２１９３は、MPU２１１１に診断完了の通知を行う。診断が正常に終了しなかった場合（すなわち、新回路１、旧回路１、２、および専用擬似回路２１９２のいずれかにエラーが検出された場合）、専用BIST回路２１９３は、MPU２１１１にエラー検出を通知する。
【０１２５】
ステップＳ２５０６において、MPU２１１１は、FPGAデータ（通常版）２１３５を読み出し、シリアルバス２２０１経由でバスマスタとなりFPGA FMEM２１４１に書き込む。FPGA FMEM２１４１に書き込まれたFPGAデータ（通常版）は、FPGAデータ（通常版）２１４３と表記する。
【０１２６】
ステップＳ２５０７において、MPU２１１１は、FPGA２１５１にリコンフィグレーションを指示する。FPGA２１５１は、指示を受信すると、リコンフィグレーションを行う。詳細には、FPGA２１５１は、FPGAデータ（通常版）２１４３を読み出し、FPGAデータ（通常版）２１４３に基づいて、回路を構成する。これにより、図１１に示されるようなFPGA２１５１が構成される。また、FPGA２１５１は、MPU２１１１を介してMPU FMEM２１３１からFPGAデータ（通常版）２１３５を受信し、FPGAデータ（通常版）２１３５に基づいて、回路を構成してもよい。その場合、ステップＳ２５０６のFPGAデータ（通常版）２１３６をFPGA FMEM２１４１に書き込む処理は無くてもよい。
【０１２７】
図１１は、第２の実施の形態に係るシステムのアップデート後の診断後の構成図である。
【０１２８】
図１１のFPGA２１５１には、FPGAデータ（通常版）２１４３に基づいて、旧回路２１８１−１〜２１８１−ｎおよび新回路２１９１−１が構成される。以下、旧回路２１８１−１〜２１８１−ｎは、それぞれ旧回路１〜ｎ、新回路２１９１−１は、新回路１と表記する。
【０１２９】
旧回路１〜ｎは、更新前のFPGA２１５１においても、FPGA２１５１内に構成されていた回路である。
【０１３０】
新回路１は、更新後のFPGA２１５１において、図７の更新前のFPGA２１５１と比較して新たに追加された回路である。また、新回路１は、図８の診断時の新回路１と同様の回路である。
【０１３１】
図１０に戻り、ステップＳ２５０８において、MPU２１１１は、故障通知を行う。MPU２１１１は、例えば、エラーが検出された旨をシステム２１０１が有する表示部（不図示）に表示したり、システム２１０１とネットワークを介して接続される外部装置にエラー通知を行う。
【０１３２】
第２の実施の形態のシステムによれば、更新により新たに追加された全ての回路を診断することで、システム運用中に潜在的な故障によるエラーを検出することがなくなり、システムの信頼性が向上する。
【０１３３】
第２の実施の形態のシステムによれば、FPGA内に診断を行うBIST回路を構成し、BIST回路が診断を行うことで、診断時間を短縮することができる。
【０１３４】
制御デバイスを動作させるのに非常に長い時間がかかる場合、FPGAの診断に要する時間も増えてしまいシステムの保守停止時間が大幅に増えてしまうという問題がある。
【０１３５】
第２の実施の形態のシステムによれば、診断時に制御デバイスを動作させず、該制御デバイスのインタフェース動作と同等の動作を行う専用擬似回路を用いることで診断時間を短縮することが出来る。
【０１３６】
（第３の実施の形態）
図１２は、第３の実施の形態に係るシステムのアップデート前の構成図である。
【０１３７】
システム３１０１は、MPU３１１１、メモリ３１２１、MPU Flash Memory（FMEM）３１３１、FPGA FMEM３１４１、FPGA３１５１、制御デバイス３１６１−ｉ（ｉ＝１〜ｍ）、および通信部３１７１を備える。
【０１３８】
MPU３１１１、メモリ３１２１、制御デバイス３１６１−ｉ、および通信部３１７１は、第１の実施の形態のMPU１１１１、メモリ１１２１、制御デバイス１１６１−ｉ、および通信部１１７１とそれぞれ同様の機能および構成を有するので説明は省略する。
【０１３９】
MPU FMEM３１３１は、ファームパッケージ３１３２を格納する。ファームパッケージ３１３２は、MPUファーム３１３３、およびFPGAデータ３１３４を含む。
【０１４０】
MPU FMEM３１３１、MPUファーム３１３３、およびFPGAデータ３１３４は、第１の実施の形態のMPU FMEM１１３１、MPUファーム１１３３、およびFPGAデータ１１３４とそれぞれ同様の機能および構成を有するので説明は省略する。
【０１４１】
FPGA FMEM３１４１は、FPGAデータ３１４４を格納する。FPGA FMEM３１４１は、例えば、不揮発性のメモリである。
【０１４２】
FPGAデータ３１４４は、FPGA３１５１内に構成される回路の情報である。FPGAデータ３１４４は、MPU２１１１がFPGAデータ３１３４をコピーすることにより生成される。よって、FPGAデータ３１４４とFPGAデータ３１３４の内容は同一である。
【０１４３】
FPGA３１５１は、FPGAデータ３１４４に基づいてFPGA３１５１の内部に回路を構成する。FPGA３１５１は、MPU３１１１と制御デバイス３１６１間の通信をさせるためのブリッジ機能を有する。FPGA３１５１は、回路部の一例である。
【０１４４】
第３の実施の形態では、更新前のFPGAデータ３１４４に基づいて、旧回路３１８１−１〜３１８１−ｎが構成される。以下、旧回路３１８１−１〜３１８１−ｎは、それぞれ旧回路１〜ｎと表記する。
【０１４５】
旧回路３１８１−１〜３１８１−ｎは、第１の実施の形態の更新前の旧回路１１８１−１〜１１８１−ｎとそれぞれ同様の機能および構成を有するので説明は省略する。
【０１４６】
図１３は、第３の実施の形態に係るシステムのアップデート後の最初の診断時の構成図である。
【０１４７】
FPGA３１５１をアップデートする場合、MPU３１１１は、通信部３１７１を介して新たなファームパッケージ３１３２を受信し、MPU FMEM３１３１に格納してファームパッケージ３１３２を更新する。そして、MPU３１１１は、FPGAデータ（area0版）３１３５を読み出し、FPGA FMEM３１４１にFPGAデータ（area0版）３１４２を格納し、FPGA３１５１をリコンフィグレーションする。
【０１４８】
アップデート後のファームパッケージ３１３２は、MPUファーム３１３３、FPGAデータ（area0版）３１３５、FPGAデータ(area1版)３１３６、およびFPGA診断プログラム３１３７を含む。
【０１４９】
MPUファーム３１３３は、ファームパッケージ３１３２の更新やFPGA３１５１のリコンフィグレーションの指示等を行うプログラムである。
【０１５０】
FPGAデータ（area0版）３１３５は、FPGA３１５１内に構成される回路の情報である。FPGAデータ（area0版）３１３５は、FPGA３１５１内に構成される回路の構造、回路の位置、および回路間の接続関係などの情報を含む。
【０１５１】
FPGAデータ（area1版）３１３６は、FPGA３１５１内に構成される回路の情報である。FPGAデータ（area1版）３１３６は、FPGA３１５１内に構成される回路の構造、回路の位置、および回路間の接続関係などの情報を含む。
【０１５２】
FPGA診断プログラム３１３７は、FPGA３１５１の診断を行うプログラムである。
FPGA診断プログラム３１３７は、アップデートにより追加された全ての回路（新回路）と新回路の動作に必要な回路のみ診断を行う。
【０１５３】
FPGA診断プログラム３１３７には、診断対象となる回路や診断処理等が予め設定されている。
【０１５４】
FPGA FMEM３１４１は、FPGAデータ（area0版）３１４２を格納する。
FPGAデータ（area0版）３１４２は、FPGA３１５１内に構成される回路の情報である。FPGAデータ（area0版）３１４２は、MPU３１１１がFPGAデータ（area0版）３１３５をコピーすることにより生成される。よって、FPGAデータ（area0版）３１４２とFPGAデータ（area0版）３１３５の内容は同一である。
【０１５５】
FPGA３１５１には、FPGAデータ（area0版）３１４２に基づいて、旧回路３１８１−１〜３１８１−ｎおよび新回路（area0版）３１９１−１が構成される。以下、旧回路３１８１−１〜３１８１−ｎは、それぞれ旧回路１〜ｎ、新回路３１９１−１は、新回路１（area0版）と表記する。
【０１５６】
旧回路１〜ｎは、更新前のFPGA３１５１においても、FPGA３１５１内に構成されていた回路である。
【０１５７】
新回路１（area0版）は、更新後のFPGA３１５１において、更新前のFPGA３１５１と比較して新たに追加された回路である。
【０１５８】
旧回路１は、新回路１（area0版）およびMPU３１１１と接続する。
旧回路２は、新回路１（area0版）および旧回路３と接続する。
旧回路３は、旧回路２および制御デバイス３１６１−１〜３１６１−ｍと接続する。
【０１５９】
新回路１（area0版）は、旧回路１、２と接続する。新回路１は、システム３１０１の通常動作時に動作する回路である。
新回路１（area0版）は、FPGA３１５１内の領域area0に構成される。
【０１６０】
また、旧回路１〜３は、新回路１（area0版）の動作に必要な回路である。尚、新回路の動作に必要な回路とは、新回路の動作時に動作する（使用される）回路である。新回路の動作に必要な回路は、例えば、新回路が動作時に使用するデータを生成して新回路に出力したり、他の回路から入力されたデータを新回路に中継したりする回路である。
【０１６１】
旧回路４〜ｎは、新回路１（area0版）の動作に必要のない回路である。すなわち、新回路１（area0版）は、回路４〜ｎが動作していなくても正常な動作が可能である。
【０１６２】
FPGA診断プログラム３１３７は、FPGA３１５１内のarea0に構成された新回路１（area0版）にエラーが検出された場合、MPU３１１１は、FPGAデータ（area1版）３１３６を読み出し、FPGA FMEM３１４１にFPGAデータ（area1版）３１４３を格納し、FPGA３１５１をリコンフィグレーションする。そして、FPGA診断プログラム３１３７は、FPGA３１５１を再診断する。
【０１６３】
図１４は、第３の実施の形態に係るシステムのアップデート後の再診断時の構成図である。
【０１６４】
FPGA FMEM３１４１は、FPGAデータ（area1版）３１４３を格納する。
FPGAデータ（area1版）３１４３は、FPGA３１５１内に構成される回路の情報である。FPGAデータ（area1版）３１４３は、MPU３１１１がFPGAデータ（area1版）３１３６をコピーすることにより生成される。よって、FPGAデータ（area1版）３１４３とFPGAデータ（area1版）３１３６の内容は同一である。
【０１６５】
FPGAデータ（area1版）３１３６は、新回路（area0版）３１９１−１と同様の機能を有する新回路（area1版）３１９２−１を新回路（area0版）３１９１−１が構成される領域とは異なる領域に構成する情報を含む。
【０１６６】
FPGA３１５１には、FPGAデータ（area1版）３１４３に基づいて、旧回路３１８１−１〜３１８１−ｎおよび新回路（area1版）３１９２−１が構成される。以下、旧回路３１８１−１〜３１８１−ｎは、それぞれ旧回路１〜ｎ、新回路３１９１−２は、新回路１（area1版）と表記する。
【０１６７】
旧回路１〜ｎは、図１３の最初の診断時のFPGA３１５１においても、FPGA３１５１内に構成されていた回路である。
【０１６８】
新回路１（area1版）は、更新後のFPGA３１５１において、図１２の更新前のFPGA３１５１と比較して新たに追加された回路である。
【０１６９】
旧回路１は、新回路１（area1版）およびMPU３１１１と接続する。
旧回路２は、新回路１（area1版）および旧回路３と接続する。
旧回路３は、旧回路２および制御デバイス３１６１−１〜３１６１−ｍと接続する。
【０１７０】
新回路１（area1版）は、旧回路１、２と接続する。新回路１は、システム３１０１の通常動作時に動作する回路である。
【０１７１】
新回路１（area1版）は、FPGA３１５１内の領域area1に構成される。領域area1は、領域area0とは異なる領域である。
【０１７２】
新回路１（area1版）の機能は、新回路１（area0版）と同様である。
また、旧回路１〜３は、新回路１（area1版）の動作に必要な回路である。尚、新回路の動作に必要な回路とは、新回路の動作時に動作する（使用される）回路である。新回路の動作に必要な回路は、例えば、新回路が動作時に使用するデータを生成して新回路に出力したり、他の回路から入力されたデータを新回路に中継したりする回路である。
【０１７３】
旧回路４〜ｎは、新回路１（area1版）の動作に必要のない回路である。すなわち、新回路１（area1版）は、回路４〜ｎが動作していなくても正常な動作が可能である。
【０１７４】
図１５は、第３の実施の形態に係る診断方法のフローチャートである。
FPGA３１５１は、FPGAデータ３１４２に基づいて、リコンフィグレーションしており、図１２に示すアップデート前の構成となっている。
【０１７５】
また、MPU３１１１は、MPUファーム３１３３を実行しているものとする。
ステップＳ３５０１において、MPU３１１１は、システム３１０１とネットワークを介して接続する外部装置から通信部３１７１を介してファームパッケージ３１３２を受信し、ファームパッケージ３１３２をMPU FMEM３１３１に書き込む。
【０１７６】
ステップＳ３５０２において、MPU３１１１は、FPGAデータ（area0版）３１３５を読み出し、シリアルバス３２０１経由でバスマスタとなりFPGA FMEM３１４１に書き込む。上述のように、FPGA FMEM３１４１に書き込まれたFPGAデータ（area0版）は、FPGAデータ３１４２と表記する。
【０１７７】
ステップＳ３５０３において、MPU３１１１は、FPGA３１５１にリコンフィグレーションを指示する。FPGA３１５１は、指示を受信すると、リコンフィグレーションを行う。詳細には、FPGA３１５１は、FPGAデータ（area0版）３１４２を読み出し、FPGAデータ（area0版）３１４２に基づいて、旧回路１〜ｎおよび新回路１（area0版）を構成する。上述のように、新回路１（area0版）は、FPGA３１５１内の領域area0に構成される。また、FPGA３１５１は、MPU３１１１を介してMPU FMEM３１３１からFPGAデータ（area0版）３１３５を受信し、FPGAデータ（area0版）３１３５に基づいて、旧回路１〜ｎおよび新回路１（area0版）を構成してもよい。その場合、ステップＳ３５０２のFPGAデータ（area0版）３１３５をFPGA FMEM３１４１に書き込む処理は無くてもよい。
【０１７８】
ステップＳ３５０４において、MPU３１１１は、FPGA診断プログラム３１３７を実行する。FPGA診断プログラム３１３７によりMPU３１１１は、新回路１（area0版）および旧回路１〜３を診断する。診断処理は、例えば、予め定められたコマンドやデータを診断対象の回路に入力し、該回路が正常に動作するか否かをチェックする。
【０１７９】
ステップＳ３５０５において、診断が正常に終了した場合、処理は終了し、診断が正常に終了しなかった場合（すなわち、新回路１（area0版）または旧回路１〜３のいずれかにエラーが検出された場合）、制御は、ステップＳ３５０６に進む。
【０１８０】
ステップＳ３５０６において、MPU３１１１は、FPGAデータ（area1版）３１３６を読み出し、シリアルバス３２０１経由でバスマスタとなりFPGA FMEM３１４１に書き込む。上述のように、FPGA FMEM３１４１に書き込まれたFPGAデータ（area1版）は、FPGAデータ３１４３と表記する。
【０１８１】
ステップＳ３５０７において、MPU３１１１は、FPGA３１５１にリコンフィグレーションを指示する。FPGA３１５１は、指示を受信すると、リコンフィグレーションを行う。詳細には、FPGA３１５１は、FPGAデータ（area1版）３１４３を読み出し、FPGAデータ（area1版）３１４３に基づいて、旧回路１〜ｎおよび新回路１（area1版）を構成する。上述のように、新回路１（area1版）は、FPGA３１５１の領域area1に構成される。また、FPGA３１５１は、MPU３１１１を介してMPU FMEM３１３１からFPGAデータ（area1版）３１３６を受信し、FPGAデータ（area0版）３１３６に基づいて、旧回路１〜ｎおよび新回路１（area1版）を構成してもよい。その場合、ステップＳ３５０６のFPGAデータ（area1版）３１３６をFPGA FMEM３１４１に書き込む処理は無くてもよい。
【０１８２】
ステップＳ３５０８において、MPU３１１１は、FPGA診断プログラム３１３７を再度実行する。FPGA診断プログラム３１３７によりMPU３１１１は、新回路１（area1版）および旧回路１〜３を診断する。
【０１８３】
ステップＳ３５０９において、診断が正常に終了した場合、処理は終了し、診断が正常に終了しなかった場合（すなわち、新回路１（area1版）または旧回路１〜３のいずれかにエラーが検出された場合）、制御はステップＳ３５１０に進む。
【０１８４】
ステップＳ３５１０において、MPU３１１１は、故障通知を行う。MPU３１１１は、例えば、エラーが検出された旨をシステム３１０１が有する表示部（不図示）に表示したり、システム３１０１とネットワークを介して接続される外部装置にエラー通知を行う。
【０１８５】
第３の実施の形態のシステムによれば、更新により新たに追加された全ての回路を診断することで、システム運用中に潜在的な故障によるエラーを検出することがなくなり、システムの信頼性が向上する。
【０１８６】
FPGAの製造過程で潜在的な故障がある一部分に集中的に発生している場合、多数のシステムでアップデートすると多数のシステムでFPGAの故障を検出してしまい、保守部品が不足する恐れがある。
【０１８７】
第３の実施の形態のシステムによれば、診断により故障が検出された場合、他の領域に再度新しい回路を構成することで、故障を回避し、FPGAの交換をせずに済ますことが出来る。
【０１８８】
第３の実施の形態のシステムによれば、FPGAの回路使用率を増やすことなく、潜在的な故障を回避することで、保守部品が不足するリスクおよび保守作業を低減することができる。
【０１８９】
図１６は、情報処理装置（コンピュータ）の構成図である。
実施の形態のシステム１１０１、２１０１、３１０１は、例えば、図１６に示すような情報処理装置１によって実現される。
【０１９０】
情報処理装置１は、Central Processing Unit（CPU）２、メモリ３、入力部４、出力部５、記憶部６、記録媒体駆動部７、およびネットワーク接続部８を備え、それらはバス９により互いに接続されている。
【０１９１】
CPU２は、情報処理装置１全体を制御する中央処理装置である。CPU２は、MPU１１１１、２１１１，３１１１に対応する。
【０１９２】
メモリ３は、プログラム実行の際に、記憶部６（あるいは可搬記録媒体１０）に記憶されているプログラムあるいはデータを一時的に格納するRead Only Memory(ROM)やRandom Access Memory(RAM)等のメモリである。CPU２は、メモリ３を利用してプログラムを実行することにより、上述した各種処理を実行する。
【０１９３】
この場合、可搬記録媒体１０等から読み出されたプログラムコード自体が実施の形態の機能を実現する。
【０１９４】
入力部４は、例えば、キーボード、マウス、タッチパネル等である。
出力部５は、例えば、ディスプレイ、プリンタ等である。
【０１９５】
記憶部６は、例えば、磁気ディスク装置、光ディスク装置、テープ装置、不揮発性メモリ等である。情報処理装置１は、記憶部６に、上述のプログラムとデータを保存しておき、必要に応じて、それらをメモリ３に読み出して使用する。
【０１９６】
記憶部６は、MPU FMEM１１３１、２１３１、３１３１およびFPGA FMEM１１４１、２１４１、３１４１に対応する。
【０１９７】
記録媒体駆動部７は、可搬記録媒体１０を駆動し、その記録内容にアクセスする。可搬記録媒体としては、メモリカード、フレキシブルディスク、Compact Disk Read Only Memory(CD-ROM)、光ディスク、光磁気ディスク等、任意のコンピュータ読み取り可能な記録媒体が用いられる。ユーザは、この可搬記録媒体１０に上述のプログラムとデータを格納しておき、必要に応じて、それらをメモリ３に読み出して使用する。
【０１９８】
ネットワーク接続部８は、LANやWAN等の任意の通信ネットワークに接続され、通信に伴うデータ変換を行う。ネットワーク接続部８は、通信部１１７１、２１７２、３１７１に対応する。
【０１９９】
FPGA１１は、FPGAデータに基づいて内部に回路を構成する。FPGA１１は、FPGA１１５１、２１５１、３１５１に対応する。
【０２００】
以上の実施の形態に関して、さらに以下の付記を開示する。
（付記１）
第１の回路構成情報を格納する記憶部と、
前記第１の回路構成情報に基づいて第１の複数の回路を構成するとともに、第２の回路構成情報に基づいて第２の複数の回路を構成する回路部と、
前記第１の回路構成情報を前記第２の回路構成情報に更新し、前記第２の複数の回路のうち、前記第２の回路構成情報により新たに追加された全ての回路を診断する処理部と、を有することを特徴とする診断装置。
（付記２）
前記処理部は、前記新たに追加された全ての回路および該新たに追加された回路の動作に必要な回路のみ診断することを特徴とする付記１記載の診断装置。
（付記３）
前記第２の回路構成情報は、前記第２の回路構成情報により新たに追加された全ての回路を診断する診断回路を構成する情報を含み、
前記処理部は、前記診断回路に診断の開始を指示し、
前記診断回路は、前記指示を受信すると、前記第２の回路構成情報により新たに追加された全ての回路を診断することを特徴とする付記１記載の診断装置。
（付記４）
前記処理部は、前記診断回路から診断完了の通知を受信した場合、前記第２の回路構成情報を第３の回路構成情報に更新し、
前記回路部は、前記第３の回路構成情報に基づいて、第３の複数の回路を構成することを特徴とする付記３記載の診断装置。
（付記５）
前記処理部は、診断処理において、エラーが検出された場合、前記第２の回路構成情報を前記第２の回路構成情報により新たに追加された第１の回路と同じ機能を有する第２の回路を前記第１の回路と異なる位置に構成する第３の回路構成情報に更新し、
前記回路部は、前記第３の回路構成情報に基づいて、第３の複数の回路を構成し、
前記処理部は、前記第３の複数の回路のうち、前記第３の回路構成情報により新たに追加された全ての回路を診断することを特徴とする付記１記載の診断装置。
（付記６）
第１の回路構成情報を格納する記憶部を有する診断装置の制御方法において、
前記診断装置が有する回路部が、前記第１の回路構成情報に基づいて第１の複数の回路を構成するとともに、第２の回路構成情報に基づいて第２の複数の回路を構成し、
前記診断装置が有する処理部が、前記第１の回路構成情報を前記第２の回路構成情報に更新し、前記第２の複数の回路のうち、前記第２の回路構成情報により新たに追加された全ての回路を診断することを特徴とする診断装置の制御方法。
（付記７）
前記診断する処理は、前記新たに追加された全ての回路および該新たに追加された回路の動作に必要な回路のみ診断することを特徴とする付記６記載の診断方法。
（付記８）
前記第２の回路構成情報は、前記第２の回路構成情報により新たに追加された全ての回路を診断する診断回路を構成する情報を含み、
前記診断する処理は、前記診断回路に診断の開始を指示し、前記診断回路により、前記第２の回路構成情報により新たに追加された全ての回路を診断することを特徴とする付記６記載の診断方法。
（付記９）
前記診断する処理は、前記診断回路から診断完了の通知を受信した場合、前記第２の回路構成情報を第３の回路構成情報に更新し、
前記第３の回路構成情報に基づいて、前記回路部に第３の複数の回路を構成することを特徴とする付記８記載の診断方法。
（付記１０）
前記診断する処理は、エラーが検出された場合、
前記第２の回路構成情報を前記第２の回路構成情報により新たに追加された第１の回路と同じ機能を有する第２の回路を前記第１の回路と異なる位置に構成する第３の回路構成情報に更新し、
前記第３の回路構成情報に基づいて、前記回路部に第３の複数の回路を構成し、
前記第３の複数の回路のうち、前記第３の回路構成情報により新たに追加された全ての回路を診断することを特徴とする付記６記載の診断方法。
（付記１１）
第１の回路構成情報を格納する記憶部を有する診断装置の制御プログラムにおいて、
前記診断装置が有する回路部に、前記第１の回路構成情報に基づいて第１の複数の回路を構成するとともに、第２の回路構成情報に基づいて第２の複数の回路を構成させ、
前記診断装置が有する処理部に、前記第１の回路構成情報を前記第２の回路構成情報に更新し、前記第２の複数の回路のうち、前記第２の回路構成情報により新たに追加された全ての回路を診断させることを特徴とする診断装置の制御プログラム。
（付記１２）
前記診断する処理は、前記新たに追加された全ての回路および該新たに追加された回路の動作に必要な回路のみ診断することを特徴とする付記１１記載の診断プログラム。
（付記１３）
前記第２の回路構成情報は、前記第２の回路構成情報により新たに追加された全ての回路を診断する診断回路を構成する情報を含み、
前記診断する処理は、前記診断回路に診断の開始を指示することを特徴とする付記１１記載の診断プログラム。
（付記１４）
前記診断する処理は、前記診断回路から診断完了の通知を受信した場合、前記第２の回路構成情報を第３の回路構成情報に更新し、
前記第３の回路構成情報に基づいて、前記回路部に第３の複数の回路を構成することを特徴とする付記１３記載の診断プログラム。
（付記１５）
前記診断する処理は、エラーが検出された場合、
前記第２の回路構成情報を前記第２の回路構成情報により新たに追加された第１の回路と同じ機能を有する第２の回路を前記第１の回路と異なる位置に構成する第３の回路構成情報に更新し、
前記第３の回路構成情報に基づいて、前記回路部に第３の複数の回路を構成し、
前記第３の複数の回路のうち、前記第３の回路構成情報により新たに追加された全ての回路を診断することを特徴とする付記１１記載の診断プログラム。
【符号の説明】
【０２０１】
１０１    システム
１１１    MPU
１２１    メモリ
１３１    MPU FMEM
１４１    FPGA FMEM
１５１    FPGA
１６１    制御デバイス
１７１    通信部
１１０１、２１０１、３１０１    システム
１１１１、２１１１、３１１１    MPU
１１２１、２１２１、３１２１    メモリ
１１３１、２１３１、３１３１    MPU FMEM
１１４１、２１４１、３１４１    FPGA FMEM
１１５１、２１５１、３１５１    FPGA
１１６１、２１６１、３１６１    制御デバイス
１１７１、２１７１、３１７１    通信部
１１８１、２１８１、３１８１    旧回路
１１９１、２１９１、３１９１    新回路
１２０１、２２０１、３２０１    シリアルバス
【図１】
2015106594.tif 000003
【図２】
2015106594.tif 000004
【図３】
2015106594.tif 000005
【図４】
2015106594.tif 000006
【図５】
2015106594.tif 000007
【図６】
2015106594.tif 000008
【図７】
2015106594.tif 000009
【図８】
2015106594.tif 000010
【図９】
2015106594.tif 000011
【図１０】
2015106594.tif 000012
【図１１】
2015106594.tif 000013
【図１２】
2015106594.tif 000014
【図１３】
2015106594.tif 000015
【図１４】
2015106594.tif 000016
【図１５】
2015106594.tif 000017
【図１６】
2015106594.tif 000018