(57)【要約】【課題】演算装置内のソフトウェア障害時に、当該プロセッサの状態に関わらず、演算装置全体のリセット前に診断プログラムを実行すること。【解決手段】本発明にかかる演算装置は、ソフトウェア障害を検出した場合に、演算処理部に対して当該ソフトウェア障害の障害要因を特定するための診断プログラムを実行させる実行指示を行う診断制御回路を備えるものである。そして、当該診断制御回路は、演算装置における非障害時の処理を行うための第１回路から、実行指示を行うための第２回路へ再構成可能である。また、ソフトウェア障害を検出した場合に、診断制御回路に対して第２回路への再構成を行わせるために再構成指示を行う構成制御回路をさらに備える。【選択図】図１
2013164711.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェア障害を検出した場合に、演算処理部に対して当該ソフトウェア障害の障害要因を特定するための診断プログラムを実行させる実行指示を行う診断制御回路を備える演算装置。
【請求項２】
前記診断制御回路は、
前記演算装置における非障害時の処理を行うための第１回路から、前記実行指示を行うための第２回路へ再構成可能であり、
前記ソフトウェア障害を検出した場合に、前記診断制御回路に対して前記第２回路への再構成を行わせるために再構成指示を行う構成制御回路をさらに備える
ことを特徴とする請求項１に記載の演算装置。
【請求項３】
前記構成制御回路は、
前記第２回路を構成するための構成情報を有し、
前記演算処理部は、
前記ソフトウェア障害を検出した場合に、前記構成制御回路に対して前記構成情報の指定を含む障害通知を行い、
前記構成制御回路は、
前記障害通知に応じて前記構成情報に基づいて前記再構成指示を行う
ことを特徴とする請求項２に記載の演算装置。
【請求項４】
前記構成制御回路は、
前記診断プログラムをさらに有し、
前記障害通知に応じて前記診断制御回路に対して前記再構成指示と共に、前記診断プログラムを転送し、
前記診断制御回路は、
前記再構成指示に基づき前記第２回路へ再構成後に、前記転送された診断プログラムを前記演算処理部へ転送する
ことを特徴とする請求項３に記載の演算装置。
【請求項５】
前記診断制御回路は、
前記実行指示として、前記演算処理部に対して前記診断プログラムを転送し、転送後に、前記演算処理部をリセットさせ、リセット後に転送済みの診断プログラムを実行させることを特徴とする請求項１乃至４のいずれか１項に記載の演算装置。
【請求項６】
ソフトウェア障害を検出し、
演算処理部に対して当該ソフトウェア障害の障害要因を特定するための診断プログラムを実行させる実行指示を行う
演算装置の診断制御方法。
【請求項７】
前記演算装置は、
当該演算装置における非障害時の処理を行うための第１回路から、前記実行指示を行うための第２回路へ再構成可能な診断制御回路と、
当該再構成を制御する構成制御回路とを備え、
前記構成制御回路において、前記ソフトウェア障害を検出した場合に、前記診断制御回路に対して前記第２回路への再構成を行わせるために再構成指示を行う
ことを特徴とする請求項６に記載の演算装置の診断制御方法。
【請求項８】
前記演算処理部において、前記ソフトウェア障害を検出した場合に、前記構成制御回路に対して前記第２回路を構成するための構成情報の指定を含む障害通知を行い、
前記構成制御回路において、前記障害通知に応じて前記構成情報に基づいて前記診断制御回路に対して前記再構成指示を行う
ことを特徴とする請求項７に記載の演算装置の診断制御方法。
【請求項９】
前記構成制御回路において、前記障害通知に応じて前記診断制御回路に対して前記再構成指示と共に、前記診断プログラムを転送し、
前記診断制御回路において、前記再構成指示に基づき前記第２回路へ再構成後に、前記転送された診断プログラムを前記演算処理部へ転送する
ことを特徴とする請求項８に記載の演算装置の診断制御方法。
【請求項１０】
前記診断制御回路において、
前記実行指示として、前記演算処理部に対して前記診断プログラムを転送し、転送後に、前記演算処理部をリセットさせ、リセット後に転送済みの診断プログラムを実行させることを特徴とする請求項６乃至９のいずれか１項に記載の演算装置の診断制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算装置及びその診断制御方法に関し、特に、演算装置内のソフトウェア障害時に診断プログラムを実行するための演算装置及びその診断制御方法に関する。
【背景技術】
【０００２】
特許文献１には、装置を小型化、かつ低コストにするためのフェールセーフ機能付き情報処理装置に関する技術が開示されている。特許文献１にかかる情報処理装置は、まず、複数の故障検出装置によって、複数の情報処理回路のいずれかの故障を検出する。故障が検出されたとき、再構成手段は、故障した情報処理回路に対応する再構成データを読み込む指令を再構成可能回路に出力する。再構成可能回路は、再構成データ保持回路に記憶されている再構成データから故障した情報処理回路に対応する再構成データを読み込み、読み込んだ再構成データに基づいて故障した情報処理回路の機能の一部を実行するフェールセーフ回路を構成する。入力制限回路は、入力された入力信号を故障した情報処理回路のフェールセーフを行なうために必要な入力信号のみに制限して出力する。再構成可能回路内に構成されたフェールセーフ回路は、入力制限回路から入力された入力信号に対応する代替出力信号を出力し、出力切替回路から代替出力信号を出力する。
【０００３】
特許文献２には、故障が検出された回路からリコンフィギュアラブル回路上に構築した代替回路への置換を速やかに実行可能な信号処理システムが開示されている。特許文献２にかかる信号処理システムは、まず、複数設けられた信号処理装置の中から対象装置を選択する。そして、選択された対象装置の検査のために、サポートＥＣＵのリコンフィギュアラブル回路部上に検査回路を構築する。検査回路は、二つの検査ブロックからなる。当該二つの検査ブロックは、いずれも対象装置の既存回路部と同等の機能を有する疑似回路からなる。対象装置から取得したログデータと、そのログデータに従って検査回路を動作させることで得られたデータとを比較する。これにより、既存回路部を構成する複数の機能ブロックのいずれかが故障であると判定されると、検査回路の一部を代替回路として、故障した機能ブロックを代替回路で置換する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−８１９９１号公報
【特許文献２】特開２００６−８５５５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
演算装置においてソフトウェア障害が発生した場合、通常、当該演算装置全体をリセットする必要がある。しかし、演算装置全体をリセットし、当該演算装置の初期化を含んだ通常のプログラムを再度立ち上げると、各種メモリやレジスタも初期化されてしまう。よって、演算装置のソフトウェア障害時に障害要因を特定することができない可能性があるという問題点がある。
【０００６】
ここで、演算装置のソフトウェア障害時に障害の発生要因を特定するには、当該障害の発生要因を特定するための診断プログラムを、演算装置全体をリセットする前にプロセッサにおいて動作させることが考えられる。
【０００７】
しかしながら、演算装置のソフトウェア障害時においては、プロセッサがハードウェアとしては故障していなくても当該ソフトウェア障害の影響によりストール等が発生するおそれがある。例えば、当該プロセッサが自身をリセットすることやリセット後に実行するプログラムを診断プログラムに切り替えることができないおそれがある。よって、演算装置のソフトウェア障害時にプロセッサが前記診断プログラムを実行できない場合には障害要因を特定することができない。
【０００８】
尚、上述した特許文献１及び２は、プロセッサのハードウェア故障時に予備のＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）を代替回路として再構成するものである。よって、演算装置のソフトウェア障害時における上述した問題点を解決することはできない。
【０００９】
本発明は、このような問題点を解決するためになされたものであり、演算装置内のソフトウェア障害時、すなわち、少なくともプロセッサがハードウェア的に動作可能なときに、当該プロセッサの状態に関わらず、演算装置全体のリセット前に診断プログラムを実行するための演算装置及びその診断制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の第１の態様にかかる演算装置は、
ソフトウェア障害を検出した場合に、演算処理部に対して当該ソフトウェア障害の障害要因を特定するための診断プログラムを実行させる実行指示を行う診断制御回路を備える。
【００１１】
本発明の第２の態様にかかる演算装置の診断制御方法は、
ソフトウェア障害を検出し、
演算処理部に対して当該ソフトウェア障害の障害要因を特定するための診断プログラムを実行させる実行指示を行う。
【発明の効果】
【００１２】
本発明により、演算装置内のソフトウェア障害時、すなわち、少なくともプロセッサがハードウェア的に動作可能なときに、当該プロセッサの状態に関わらず、演算装置全体のリセット前に診断プログラムを実行するための演算装置及びその診断制御方法を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態１にかかる演算装置の構成を示すブロック図である。
【図２】本発明の実施の形態１にかかる診断制御方法の処理の流れを示すフローチャートである。
【図３】本発明の実施の形態２にかかる演算装置の構成を示すブロック図である。
【図４】本発明の実施の形態２にかかる診断制御方法の処理の流れを示すシーケンス図である。
【図５】本発明の実施の形態３にかかる演算装置の構成を示すブロック図である。
【図６】本発明の実施の形態３にかかる診断制御方法の処理の流れを示すシーケンス図である。
【発明を実施するための形態】
【００１４】
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略する。
【００１５】
＜発明の実施の形態１＞
図１は、本発明の実施の形態１にかかる演算装置１の構成を示すブロック図である。演算装置１は、演算処理部１１と、診断制御回路１２とを少なくとも備える。演算装置１は、例えば、情報処理装置等に用いられる。演算処理部１１は、任意のコンピュータプログラムを実行可能な制御装置である。診断制御回路１２は、演算装置１内のソフトウェア障害を検出した場合に、演算処理部１１に対して当該ソフトウェア障害の障害要因を特定するための診断プログラムを実行させる実行指示を行う。
【００１６】
図２は、本発明の実施の形態１にかかる診断制御方法の処理の流れを示すフローチャートである。まず、診断制御回路１２は、ソフトウェア障害を検出する（Ｓ１１）。次に、診断制御回路１２は、演算処理部１１に対して診断プログラムの実行指示を行う（Ｓ１２）。
【００１７】
演算装置１においてソフトウェア障害が発生した場合には、演算処理部１１のハードウェア自体には故障がなく、通常は診断プログラムを実行可能である。しかし、ソフトウェア障害時に演算処理部１１が常に診断プログラムを実行可能であることは保証できない。つまり、障害内容によっては、演算処理部１１自体もストールしてしまい、診断プログラムの実行や演算処理部１１のリセット自体も行えなくなるおそれがある。従来であればそのような場合には、演算装置１全体をリセットした上で診断プログラムを実行せざるを得なかった。そして、演算装置１全体のリセットにより演算装置１内の各種メモリやレジスタが初期化されてしまう。よって、ソフトウェア障害時における障害要因を特定することが困難となってしまうという問題があった。
【００１８】
そこで、本発明の実施の形態１にかかる演算装置１では、診断制御回路１２を設けた。そのため、仮に、ソフトウェア障害の発生時に演算処理部１１がストールしてしまっても、診断制御回路１２が演算処理部１１に対して診断プログラムの実行を指示することができる。これにより、演算装置１内のソフトウェア障害時、すなわち、少なくとも演算処理部１１がハードウェア的に動作可能なときに、演算処理部１１の状態に関わらず、演算装置１全体のリセット前に診断プログラムを実行することができる。そのため、演算装置１内の各種メモリやレジスタが初期化されない。よって、演算装置１のソフトウェア障害時における障害要因を特定することが容易となる。
【００１９】
＜発明の実施の形態２＞
上述した実施の形態１の場合には、診断制御回路１２により演算装置１の回路規模が増大する懸念がある。そこで、本発明の実施の形態２では、非障害時には通常の動作に用いられている処理回路を、ソフトウェア障害発生時に再構成して、診断制御回路１２として用いるものである。これにより、回路規模の増大を抑えた上で、実施の形態１の効果を奏することができる。
【００２０】
図３は、本発明の実施の形態２にかかる演算装置２の構成を示すブロック図である。演算装置２は、プロセッサ２１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２３と、再構成可能回路２４と、構成制御回路２５とを備える。ここで、プロセッサ２１と、ＲＯＭ２２及びＲＡＭ２３とはデータバスで接続されている。また、プロセッサ２１、再構成可能回路２４及び構成制御回路２５はそれぞれデータバスで接続されている。
【００２１】
プロセッサ２１は、上述した演算処理部１１をプロセッサコアとして含む制御装置である。ＲＯＭ２２は、読み出し専用の不揮発性メモリである。ＲＡＭ２３は、読み書き可能な揮発性メモリであり、主記憶装置として用いられる。再構成可能回路２４は、論理回路構成を再構成可能な集積回路である。すなわち、再構成可能回路２４は、演算装置２における非障害時の処理を行うための第１回路から、診断プログラムの実行指示を行うための第２回路へ再構成可能である。また、再構成可能回路２４は、第２回路から第１回路への再構成も可能である。そして、再構成可能回路２４は、構成制御回路２５からの再構成指示に応じて再構成を行う。
【００２２】
構成制御回路２５は、再構成可能回路２４における再構成を制御する集積回路である。構成制御回路２５は、ソフトウェア障害を検出した場合に、再構成可能回路２４に対して第２回路への再構成を行わせるために再構成指示を行う。また、構成制御回路２５は、構成情報（通常系）２５１及び構成情報（診断系）２５２を保持している。構成情報（通常系）２５１は、上述した第１回路を構成するための情報である。構成情報（診断系）２５２は、上述した第２回路を構成するための情報である。尚、構成制御回路２５は、少なくとも構成情報（診断系）２５２を有していればよい。また、構成制御回路２５が保持する構成情報の種類及び数はこれ以上であってもよい。尚、構成情報（通常系）２５１及び構成情報（診断系）２５２は、構成制御回路２５内又は構成制御回路２５に接続された記憶装置に格納されているものとする。
【００２３】
ここで、本発明の実施の形態２にかかるプロセッサ２１は、演算装置２内のソフトウェア障害を検出した場合に、構成制御回路２５に対して構成情報（診断系）２５２の指定を含む障害通知を行う。そして、構成制御回路２５は、障害通知に応じて構成情報（診断系）２５２に基づいて再構成可能回路２４に対して再構成指示を行う。これにより、再構成可能回路２４は、第２回路に再構成することができる。つまり、再構成可能回路２４は、診断制御回路１２として機能することができる。その後、再構成可能回路２４は、プロセッサ２１に対して診断プログラムの実行指示を行うことができる。
【００２４】
尚、ソフトウェア障害の内容によってプロセッサ２１が障害通知を行えない場合であっても、構成制御回路２５は、プロセッサ２１がストールした場合における出力信号の変化等をもって上記障害通知とみなすこともできる。
【００２５】
図４は、本発明の実施の形態２にかかる診断制御方法の処理の流れを示すシーケンス図である。尚、前提として、再構成可能回路２４は、第１回路として動作しているものとする。
【００２６】
まず、プロセッサ２１は、ソフトウェア（ＳＷ）障害を検出する（Ｓ２１）。そして、プロセッサ２１は、構成制御回路２５に対して障害通知を出力する（Ｓ２２）。このとき、プロセッサ２１は、障害通知に構成情報（診断系）２５２の指定を含める。
【００２７】
次に、構成制御回路２５は、障害通知に指定された構成情報（診断系）２５２を上述した記憶装置から読み出す（Ｓ２３）。そして、構成制御回路２５は、構成情報（診断系）２５２に基づいて再構成可能回路２４に対して再構成指示を行う（Ｓ２４）。
【００２８】
そして、再構成可能回路２４は、再構成指示に基づいて第１回路から第２回路へ再構成する（Ｓ２５）。再構成後に、再構成可能回路２４は、プロセッサ２１に対して診断プログラムの実行指示を行う（Ｓ２６）。
【００２９】
このように、本発明の実施の形態２により、既存のＦＰＧＡを診断制御用の回路に流用することで、回路規模を抑制することができる。さらに、演算装置２が複数のプロセッサ２１を有している場合には、構成制御回路２５は、プロセッサの種類に応じて複数の構成情報を保持しておき、各プロセッサから再構成用の構成情報の指定を受け付けることで、診断プログラムや構成内容を選択可能にして柔軟な診断処理が可能となる。
【００３０】
＜発明の実施の形態３＞
上述した発明の実施の形態２では、プロセッサから診断プログラムを直接読み出せる場所（例えば、ＲＯＭ２２やＲＡＭ２３）に保持しておく必要がある。しかし、非障害時の通常の動作においては、ＲＯＭ２２やＲＡＭ２３の領域を有効活用することが望ましい。そこで、本発明の実施の形態３では、診断プログラムをプロセッサの外部に保持しておくものである。
【００３１】
図５は、本発明の実施の形態３にかかる演算装置３の構成を示すブロック図である。演算装置３は、プロセッサ３１と、Ｆｌａｓｈ  ＲＯＭ３２と、ＤＤＲ（Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ）  ＲＡＭ３３と、ＦＰＧＡ３４と、ＣＰＬＤ（Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）３５と、Ｆｌａｓｈ  ＲＯＭ３６とを備える。プロセッサ３１とＦＰＧＡ３４とは、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔｓ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  ｂｕｓ）  Ｅｘｐｒｅｓｓ  ＢＵＳ３１７で接続されている。プロセッサ３１とＣＰＬＤ３５とは、データバス３１８で接続されている。
【００３２】
プロセッサ３１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等の制御装置である。プロセッサ３１は、プロセッサコア３１１と、ＰＩＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｉｎｔｅｒｒｕｐｔ  Ｃｏｎｔｒｏｌｌｅｒ）３１２と、ＰＣＩ  Ｅｘｐｒｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ３１３と、Ｆｌａｓｈ  Ｃｏｎｔｒｏｌｌｅｒ３１４と、Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ３１５とを備える。これらは、内部バス３１６で接続されている。
【００３３】
プロセッサコア３１１は、演算処理部１１の一実施例である。ＰＣＩ  Ｅｘｐｒｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ３１３は、外部の装置（ここでは、ＦＰＧＡ３４）とＰＣＩ  Ｅｘｐｒｅｓｓ  ＢＵＳ３１７を介した通信を制御する。また、ＰＣＩ  Ｅｘｐｒｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ３１３は、プロセッサ３１の内部バス３１６のマスターとして動作することが可能である。つまり、ＰＣＩ  Ｅｘｐｒｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ３１３は、Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ３１５を経由してＤＤＲ  ＲＡＭ３３にリード／ライトすることが可能である。このため、ＦＰＧＡ３４はＰＣＩ  Ｅｘｐｒｅｓｓ  ＢＵＳ３１７を介してＰＣＩ  Ｅｘｐｒｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ３１３と通信することで、ＤＤＲ  ＲＡＭ３３にアクセスすることができる。同様に、ＰＣＩ  Ｅｘｐｒｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ３１３は内部バス３１６を介してＰＩＣ３１２にアクセスすることが可能である。これにより、ＦＰＧＡ３４は、ＰＣＩ  Ｅｘｐｒｅｓｓ  ＢＵＳ３１７を介してＰＩＣ３１２にアクセスし、プロセッサコア３１１に割込みを発生させることができる。
【００３４】
ＰＩＣ３１２は、割込み装置であり、プロセッサコア３１１に対して割り込みを発生させる。これにより、プロセッサコア３１１において実行中の処理の切り替え及びプロセッサコア３１１のリセットが可能になる。この割込みを利用して、ＦＰＧＡ３４がプロセッサコア３１１をリセットし、ＤＤＲ  ＲＡＭ３３上に展開した診断プログラムを実行させる。
【００３５】
Ｆｌａｓｈ  ＲＯＭ３２は、Ｆｌａｓｈ  Ｃｏｎｔｒｏｌｌｅｒ３１４の配下に専用バスで接続される。また、ＤＤＲ  ＲＡＭ３３は、Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ３１５の配下に専用バスで接続される。
【００３６】
Ｆｌａｓｈ  Ｃｏｎｔｒｏｌｌｅｒ３１４は、配下に接続されたＦｌａｓｈ  ＲＯＭ３２へのアクセスを制御する。Ｆｌａｓｈ  ＲＯＭ３２は、ＤＤＲ  ＲＡＭ３３と比べてデータ転送速度が遅いが、不揮発性メモリであり、プロセッサ３１の電源がオフでもデータが保持される。また、プロセッサ３１の電源投入後、特に設定を必要せずにＦｌａｓｈ  ＲＯＭ３２の領域の一部にはアクセスが可能な状態となっている。よって、この領域にプロセッサ３１の電源投入直後に実行したいプログラムのコードを配置することでプロセッサ３１を起動させることができる。
【００３７】
Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ３１５は、配下に接続されたＤＤＲ  ＲＡＭ３３を制御する。ＤＤＲ  ＲＡＭ３３は、Ｆｌａｓｈ  ＲＯＭ３２と比べてデータ転送速度が速く、高速にリード及びライトができるが、揮発性メモリでありプロセッサ３１の電源がオフになると保存したデータが失われる。このため、プロセッサ３１の電源が投入され、Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ３１５設定後にプログラムを書き込む必要がある。
【００３８】
プロセッサコア３１１は、演算装置３内のソフトウェア障害を検出した場合、データバス３１８を介してリコンフィグ制御信号ＲＣＦＧを出力する。これにより、ＣＰＬＤ３５に対して障害通知を行う。このとき、プロセッサコア３１１は、少なくとも再構成すべき集積回路の構成情報の指定を含めてリコンフィグ制御信号ＲＣＦＧを出力する。さらに、プロセッサコア３１１は、実行すべき診断プログラムを指定してリコンフィグ制御信号ＲＣＦＧを出力してもよい。
【００３９】
Ｆｌａｓｈ  ＲＯＭ３６は、構成情報３６１及び診断プログラム３６２を記憶する。構成情報３６１は、上述した構成情報（通常系）２５１及び構成情報（診断系）２５２に相当するものである。つまり、構成情報３６１は、ＦＰＧＡ３４を再構成するためのコンフィグレーションデータといえる。また、構成情報３６１は、複数存在していてもよい。診断プログラム３６２は、プロセッサ３１上で診断処理を実行するためのコンピュータプログラムである。Ｆｌａｓｈ  ＲＯＭ３６は、ＣＰＬＤ３５と専用バスで接続されている。
【００４０】
ＣＰＬＤ３５は、プロセッサ３１からデータバス３１８を介したリコンフィグ制御信号ＲＣＦＧに応じてＦｌａｓｈ  ＲＯＭ３６から構成情報３６１及び診断プログラム３６２を読み出し、読み出した構成情報３６１に基づいてＦＰＧＡ３４に対して再構成指示を行う。併せて、ＣＰＬＤ３５は、読み出した診断プログラム３６２をＦＰＧＡ３４へ転送する。すなわち、ＣＰＬＤ３５は、障害通知に応じてＦＰＧＡ３４に対して再構成指示と共に、診断プログラムを転送する。
【００４１】
ＣＰＬＤ３５は、Ｆｌａｓｈ  ＲＯＭ３６に格納された複数の構成情報３６１及び診断プログラム３６２のうち、リコンフィグ制御信号ＲＣＦＧに指定された構成情報３６１及び診断プログラム３６２を読み出す。つまり、ＣＰＬＤ３５は、リコンフィグ制御信号ＲＣＦＧに応じて複数のコンフィグレーションデータの中から選択し、再構成すべき構成情報を切り替えることができる。
【００４２】
ＦＰＧＡ３４は、Ｉ／Ｏ３４１と、ＲＡＭ３４２と、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）３４３とを備える。Ｉ／Ｏ３４１は、ＰＣＩ  Ｅｘｐｒｅｓｓ  ＢＵＳ３１７によりＰＣＩ  Ｅｘｐｒｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ３１３と接続される。ＲＡＭ３４２は、ＣＰＬＤ３５から再構成指示と共に転送された診断プログラム３６２を格納する。ＦＰＧＡ３４は、再構成指示に応じて構成を初期化し、構成情報３６１に基づいて集積回路を構成する。つまり、ＦＰＧＡ３４は、再構成指示に基づき第２回路へ再構成する。
【００４３】
また、ＦＰＧＡ３４は、再構成指示に基づき第２回路へ再構成後に、転送された診断プログラム３６２をプロセッサコア３１１へ転送する。そして、ＦＰＧＡ３４は、転送後に、プロセッサコア３１１をリセットさせ、リセット後に転送済みの診断プログラム３６２を実行させる。
【００４４】
なお、本発明の実施の形態３では、コンフィグレーション・データを保存する不揮発性ＲＯＭをＦＰＧＡ３４外部のＦｌａｓｈ  ＲＯＭ３６としたがＦＰＧＡ内部に不揮発で保存する構成でもよい。
【００４５】
図６は、本発明の実施の形態３にかかる診断制御方法の処理の流れを示すシーケンス図である。前提としてＦＰＧＡ３４は、演算装置３における非障害時の通常動作のための論理回路が構成されているものとする。
【００４６】
まず、プロセッサコア３１１は、ソフトウェア障害を検出する（Ｓ３１）。そして、プロセッサコア３１１は、リコンフィグ制御信号ＲＣＦＧを出力する（Ｓ３２）。つまり、プロセッサ３１は、ＦＰＧＡ３４への診断プログラムロード要求を発行する。
【００４７】
この際、プロセッサコア３１１は、リコンフィグ制御信号ＲＣＦＧに診断プログラムを実行させるためのコンフィグデータ、つまり、構成情報３６１及び診断プログラム３６２を指定する。または、プロセッサコア３１１は、通常動作中において常にデータバス３１８に信号を出力し続け、プロセッサコア３１１がソフトウェア障害伴いストール等した場合に、通常動作を示すデータバス３１８の信号が消えた場合をリコンフィグ制御信号ＲＣＦＧとみなしてもよい。
【００４８】
次に、ＣＰＬＤ３５は、構成情報及び診断プログラムを読出す（Ｓ３３）。つまり、ＣＰＬＤ３５は、リコンフィグ制御信号ＲＣＦＧの指定に基づいてＦｌａｓｈ  ＲＯＭ３６から構成情報３６１及び診断プログラム３６２を読み出す。そして、ＣＰＬＤ３５は、ＦＰＧＡ３４に対して構成情報３６１に基づく再構成指示を行い、併せて、診断プログラム３６２を転送する（Ｓ３４）。
【００４９】
続いて、ＦＰＧＡ３４は、転送された診断プログラム３６２をＲＡＭ３４２に格納する（Ｓ３５）。そして、ＦＰＧＡ３４は、構成情報３６１に基づいて回路を再構成する（Ｓ３６）。
【００５０】
ＦＰＧＡ３４は、再構成し起動した後、ＤＭＡ３４３を使用してＲＡＭ３４２に格納された診断プログラム３６２をＤＤＲ  ＲＡＭ３３へ転送する（Ｓ３７）。すなわち、ＦＰＧＡ３４は、Ｉ／Ｏ３４１によりＰＣＩ  Ｅｘｐｒｅｓｓ  ＢＵＳ３１７を介してＰＣＩ  Ｅｘｐｒｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ３１３へ診断プログラム３６２を転送する。そして、ＰＣＩ  Ｅｘｐｒｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ３１３は、受け付けた診断プログラム３６２を内部バス３１６及びＭｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ３１５を介してＤＤＲ  ＲＡＭ３３に格納する（Ｓ３８）。
【００５１】
その後、ＦＰＧＡ３４は、プロセッサコア３１１をリセットする（Ｓ３９）。つまり、ＦＰＧＡ３４は、ＰＩＣ３１２にアクセスし、ＰＩＣ３１２による割り込み後にプロセッサコア３１１をリセットする。
【００５２】
そして、ＦＰＧＡ３４は、プロセッサコア３１１に対して診断プログラム３６２の実行指示を行う（Ｓ４０）。その後、プロセッサコア３１１は、ＤＤＲ  ＲＡＭ３３から診断プログラム３６２を読み出して実行する（Ｓ４１）。
【００５３】
このようにして、本願発明の実施の形態３では、再構成可能なＦＰＧＡ３４がＲＡＭ３４２に格納された診断プログラム３６２を転送するため、プロセッサコア３１１がソフトウェア障害に起因してストール等した場合でも、診断プログラム３６２に処理を切り替えることが出来る。
【００５４】
つまり、本発明の実施の形態３では、再構成可能な集積回路（ＦＰＧＡ３４）と構成制御回路（ＣＰＬＤ３５）を備えているため、プロセッサ３１が実行するプログラムを診断用プログラム３６２に切り替えることができるという効果を奏する。
【００５５】
また、演算装置の初期化を実施する通常系プログラムを実行しないので、障害の要因特定に役立つレジスタ／メモリの値が初期化されずに読み出すことができるという効果も奏する。
【００５６】
さらに、構成情報３６１及び診断プログラム３６２をプロセッサ３１の外であるＦｌａｓｈ  ＲＯＭ３６に保存しているため、再構成可能回路の再構成に関するデータを構成制御回路側で一括管理できる。また、予めプロセッサ側に診断プログラムが保存されていなくても、プロセッサが実行するプログラムを診断プログラムに切り替えることができる。
【００５７】
＜その他の発明の実施の形態＞
尚、本発明は、再構成可能な集積回路を使用したプログラム切り替え方式であって、ソフトウェア障害発生時にプロセッサコアのみを初期化し診断プログラムを実行させる方法ということもできる。
【００５８】
また、本発明は次のように言い換えることもできる。すなわち、演算装置に再構築可能な集積回路と構成情報を制御する回路を設け、診断プログラムを実行するための構成データを用意する。診断プログラムが必要になった際には構成情報を制御する回路が診断用構成データを使用し集積回路を再構築し、再構築された集積回路が診断プログラムをＲＡＭに展開しプロセッサコアのみをリセットし診断プログラムを実行させる。
【００５９】
さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【符号の説明】
【００６０】
１  演算装置
１１  演算処理部
１２  診断制御回路
２  演算装置
２１  プロセッサ
２２  ＲＯＭ
２３  ＲＡＭ
２４  再構成可能回路
２５  構成制御回路
２５１  構成情報（通常系）
２５２  構成情報（診断系）
３  演算装置
３１  プロセッサ
３１１  プロセッサコア
３１２  ＰＩＣ
３１３  ＰＣＩ  Ｅｘｐｒｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ
３１４  Ｆｌａｓｈ  Ｃｏｎｔｒｏｌｌｅｒ
３１５  Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ
３１６  内部バス
３１７  ＰＣＩ  Ｅｘｐｒｅｓｓ  ＢＵＳ
３１８  データバス
３２  Ｆｌａｓｈ  ＲＯＭ
３３  ＤＤＲ  ＲＡＭ
３４  ＦＰＧＡ
３４１  Ｉ／Ｏ
３４２  ＲＡＭ
３４３  ＤＭＡ
３５  ＣＰＬＤ
３６  Ｆｌａｓｈ  ＲＯＭ
３６１  構成情報
３６２  診断プログラム
ＲＣＦＧ  リコンフィグ制御信号
【図１】
2013164711.tif 000003
【図２】
2013164711.tif 000004
【図３】
2013164711.tif 000005
【図４】
2013164711.tif 000006
【図５】
2013164711.tif 000007
【図６】
2013164711.tif 000008