(57)【要約】【課題】システムを停止することなく、安価でロバスト性を確保する、分散処理装置、分散処理方法、及びプログラムを提供する。【解決手段】分散処理装置１は、再構成可能回路４を有する、データ処理部２と、分散させたデータ処理それぞれに対応する回路情報５を用いて、複数のデータ処理部２それぞれに対して動的に回路を再構成させる制御をする、再構成制御部３とを有する。【選択図】図１
2020167478.tif 000002
【特許請求の範囲】
【請求項１】
再構成可能回路を有する、データ処理部と、
分散させたデータ処理それぞれに対応する回路情報を用いて、複数の前記データ処理部それぞれに対して動的に回路を再構成させる制御をする、再構成制御部と、
を有することを特徴とする分散処理装置。
【請求項２】
請求項１に記載の分散処理装置であって、
更に、再構成可能回路を有する、予備データ処理部を有し、
前記再構成制御部は、複数の前記データ処理部と別に設けた前記予備データ処理部に前記回路情報に対応する回路を再構成させる
ことを特徴とする分散処理装置。
【請求項３】
請求項２に記載の分散処理装置であって、
前記再構成制御部は、前記データ処理部、又は前記予備データ処理部に、前記再構成可能回路の故障を検出する故障検出回路を再構成させる
ことを特徴とする分散処理装置。
【請求項４】
請求項３に記載の分散処理装置であって、
前記再構成制御部は、あらかじめ設定した日時に、あらかじめ設定した順に、前記データ処理部及び前記予備データ処理部を選択して、前記故障検出回路を再構成させる
ことを特徴とする分散処理装置。
【請求項５】
請求項１から４のいずれか一つに記載の分散処理装置であって、
前記再構成可能回路は、動的再構成可能回路である
ことを特徴とする分散処理装置。
【請求項６】
（ａ）分散させたデータ処理それぞれに対応する回路情報を、再構成可能回路を有するデータ処理部へ送信する、ステップと
（ｂ）受信した前記回路情報を用いて、前記データ処理部それぞれに対して動的に回路を再構成する、ステップと、
を有することを特徴とする分散処理方法。
【請求項７】
コンピュータに、
（ａ）分散させたデータ処理それぞれに対応する回路情報を、再構成可能回路を有するデータ処理部へ送信する、ステップと
（ｂ）受信した前記回路情報を用いて、前記データ処理部それぞれに対して動的に回路を再構成する、ステップと、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、再構成可能回路を用いて分散処理をする、分散処理装置、分散処理方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、データ処理装置を並列に実行することにより、データ処理の高速化を実現する分散処理システムが提案さている。このような分散処理システムとして、例えば、Apache Hadoop（登録商標）などが知られている。
【０００３】
また、関連する技術として、特許文献１には、複数の計算デバイスにデータ処理を分散させ、データ処理時間を短縮させる、分散データベースシステムが開示されている。また、計算デバイスとして、ＦＰＧＡ（Field Programmable Gate Array）などを用いることが開示されている。具体的には、この分散データベースシステムによれば、計算デバイスの計算能力の違いに応じて、計算デバイス間においてデータ処理を分散する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１８／１５８８１９号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、分散処理システムでは、ロバスト性を確保しなければならない。そのため、従来の分散処理システムにおいては、例えば、分散処理システムに、分散処理システムと同等の機能を有する予備機を設けることで、ロバスト性を確保している。ところが、分散処理システムに予備機を設けるため、分散処理システムは高価になる。
【０００６】
特許文献１には、分散データベースシステムのロバスト性の確保について開示されていない。また、特許文献１に開示の分散データベースシステムにおいて、ロバスト性を確保するためには、上述したような予備機を設けるなどの対策が必要となる。なお、予備機を稼働させる場合には、通例としてシステム全体を停止させる必要がある。
【０００７】
本発明の目的の一例は、システムを停止することなく、安価でロバスト性を確保する、分散処理装置、分散処理方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明の一側面における分散処理装置は、
再構成可能回路を有する、データ処理部と、
分散させたデータ処理それぞれに対応する回路情報を用いて、複数の前記データ処理部それぞれに対して動的に回路を再構成させる制御をする、再構成制御部と、
を有することを特徴とする。
【０００９】
また、上記目的を達成するため、本発明の一側面における分散処理方法は、
（ａ）分散させたデータ処理それぞれに対応する回路情報を、再構成可能回路を有するデータ処理部へ送信する、ステップと
（ｂ）受信した前記回路情報を用いて、前記データ処理部それぞれに対して動的に回路を再構成する、ステップと、
を有することを特徴とする。
【００１０】
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、
コンピュータに、
（ａ）分散させたデータ処理それぞれに対応する回路情報を、再構成可能回路を有するデータ処理部へ送信する、ステップと
（ｂ）受信した前記回路情報を用いて、前記データ処理部それぞれに対して動的に回路を再構成する、ステップと、
を実行させることを特徴とする。
【発明の効果】
【００１１】
以上のように本発明によれば、システムを停止することなく、安価でロバスト性を確保することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、分散処理装置の一例を示す図である。
【図２】図２は、具体的な分散処理装置の一例を示す図である。
【図３】図３は、変形例２の説明をするための図である。
【図４】図４は、変形例４の説明をするための図である。
【図５】図５は、分散処理装置の動作の一例を示す図である。
【図６】図６は、変形例１における分散処理装置の動作の一例を示す図である。
【図７】図７は、変形例２における分散処理装置の動作の一例を示す図である。
【図８】図８は、変形例３における分散処理装置の動作の一例を示す図である。
【図９】図９は、変形例４における分散処理装置の動作の一例を示す図である。
【図１０】図１０は、再構成制御部を実現するコンピュータの一例を示すブロック図である。
【発明を実施するための形態】
【００１３】
（実施の形態）
以下、本発明の実施の形態について、図１から図１０を参照しながら説明する。
【００１４】
［装置構成］
最初に、図１を用いて、本実施の形態における分散処理装置１の構成について説明する。図１は、分散処理装置の一例を示す図である。
【００１５】
図１に示す分散処理装置１は、安価でロバスト性を確保することができる装置（又はシステム）また、図１に示すように、分散処理装置１は、データ処理部２（２ａ、２ｂ、２ｃ）と、再構成制御部３とを有する。
【００１６】
このうち、データ処理部２は、再構成可能回路４（４ａ、４ｂ、４ｃ）を有する。再構成制御部３は、分散させたデータ処理（処理ａ、ｂ、ｃ）それぞれに対応する回路情報５（５ａ、５ｂ、５ｃ）を用いて、複数のデータ処理部２ａ、２ｂ、２ｃそれぞれに動的に回路を再構成させる制御をする。
【００１７】
データ処理部２は、データ処理部２に対応する処理を実行する。図１の例では、データ処理部２ａが処理ａを実行し、データ処理部２ｂが処理ｂを実行し、データ処理部２ｃが処理ｃを実行する。処理ａ、ｂ、ｃは、例えば、従来一つの再構成可能回路が実行するデータ処理を、複数の再構成可能回路４ａ、４ｂ、４ｃで実行できるように、データ処理を分散させた処理である。
【００１８】
また、データ処理部２は、例えば、再構成可能回路４を有するＦＰＧＡなどのプログラ
マブルなデバイス（回路再構成装置）が設けられている。なお、回路再構成装置は、動的に回路を書き換えるパーシャル・リコンフィギュレーションが可能な動的再構成可能回路である。
【００１９】
図１の例では、再構成可能回路４ａに処理ａを実行するための回路が再構成され、再構成可能回路４ｂに処理ｂを実行するための回路が再構成され、再構成可能回路４ｃに処理ｃを実行するための回路が再構成される。
【００２０】
再構成制御部３は、処理ａに対応する回路を再構成するために用いる回路情報５ａ、処理ｂに対応する回路を再構成するために用いる回路情報５ｂ、処理ｃに対応する回路を再構成するために用いる回路情報５ｃを、対応するデータ処理部２ａ、２ｂ、２ｃそれぞれに送信する。
【００２１】
回路情報５ａ、５ｂ、５ｃは、図１の例では、再構成制御部３に設けられた記憶部されているが、回路情報５ａ、５ｂ、５ｃは、分散処理装置１の外部に設けた記憶装置に記憶してもよい。
【００２２】
具体的には、再構成制御部３は、あらかじめ回路情報５と関連付けられたデータ処理部２に回路情報５を送信する。続いて、データ処理部２は、再構成制御部３から回路情報５を受信した後、再構成可能回路４に受信した回路情報５に対応する回路を再構成する。
【００２３】
このように、本実施の形態においては、分散させたデータ処理それぞれに対応する回路情報５を用いて、複数のデータ処理部２それぞれに対して動的に回路を再構成できるので、故障が生じた場合、従来よりも安価でロバスト性を確保することができる。
【００２４】
その理由は、従来においては、故障が生じた場合、分散処理装置と同等の機能を有する高価な予備機へと切り替えをしていた。しかしながら、本実施の形態においては、故障が生じた場合、故障したデータ処理部２だけを交換すればよいので、安価でロバスト性を確保することができる。言い換えれば、データ処理部２に、容量の小さい安価なＦＰＧＡなどのプログラマブルなデバイスを採用できるため、安価でロバスト性も確保することができる。また、安価で分散処理装置１を構築できる。
【００２５】
また、予備機を用いた場合には、通例としてシステム全体を停止させる必要であるが、本実施の形態においては、予備機を用いず、更にシステムを停止させずに、故障したデータ処理部２だけを交換ができる。
【００２６】
［システム構成］
続いて、図２を用いて、本実施の形態における分散処理装置１の構成をより具体的に説明する。図２は、具体的な分散処理装置の一例を示す図である。
【００２７】
図２に示すように、本実施の形態における分散処理装置１は、データ処理部２（２ａ、２ｂ、２ｃ）と、再構成制御部３とに加え、予備データ処理部２ｄを有する。また、データ処理部２と再構成制御部３とは、ネットワーク２１を介して接続されている。
【００２８】
データ処理部２ａ、２ｂ、２ｃ、予備データ処理部２ｄそれぞれは、図１に示すように通信部２２（２２ａ、２２ｂ、２２ｃ、２２ｄ）を有する。再構成制御部３は、通信部２３を有する。再構成制御部３は、更に回路情報５ｄを予備データ処理部２ｄへ送信する。
【００２９】
データ処理部２は、再構成可能回路４ａ、４ｂ、４ｃを用いて処理ａ、ｂ、ｃを実行する。具体的には、データ処理部２ａは、まず、再構成制御部３から通信部２３を介して送
信された回路情報５ａを、通信部２２ａを用いて受信する。続いて、データ処理部２ａは、通信部２２ａから回路情報５ａを取得し、回路情報５ａに基づいて、再構成可能回路４ａに処理ａを実行するための回路を再構成する。
【００３０】
データ処理部２ｂ、２ｃについても、データ処理部２は、再構成制御部３から通信部２３を介して送信された回路情報５ｂ、５ｃを用いて、再構成可能回路４ｂ、４ｃに処理ｂ、ｃを実行する回路を再構成する。
【００３１】
なお、図２の例において、データ処理部２の個数は３個であるが、データ処理部２の個数は３個に限定されるものではない。
【００３２】
予備データ処理部２ｄは、再構成可能回路４ｄを用いて処理ｄを実行する。再構成可能回路４ｄは、例えば、ＦＰＧＡなどのプログラマブルなデバイス（回路再構成装置）を有する回路である。具体的には、予備データ処理部２ｄは、まず、再構成制御部３から通信部２３を介して送信された回路情報５ｄを、通信部２２ｄを用いて受信する。
【００３３】
続いて、予備データ処理部２ｄは、通信部２２ｄから回路情報５ｄを取得して、回路情報５ｄに基づいて処理ｄを実行する回路を再構成する。処理ｄは、例えば、処理ａ、ｂ、ｃいずれかと同じ処理である。
【００３４】
なお、図２の例において、予備データ処理部２ｄの個数は１個であるが、予備データ処理部２ｄの個数は複数でもよい。
【００３５】
再構成制御部３は、処理に対応する回路情報５を用いて、データ処理部２が有する再構成可能回路４に対して動的に回路を再構成させる。具体的には、再構成制御部３は、データ処理部２ａに処理ａに対応する回路を再構成する場合、通信部２３を介して回路情報５ａを、データ処理部２ａの通信部２２ａに送信する。
【００３６】
データ処理部２ｂ、２ｃ、２ｄについても、再構成制御部３は、回路情報５ｂ、５ｃ、５ｄを、再構成制御部３から通信部２３を介して、データ処理部２ｂ、２ｃ、予備データ処理部２ｄの通信部２２ｂ、２２ｃ、２２ｄに送信する。
【００３７】
［変形例１］
変形例１の分散処理装置においては、データ処理部２のいずれかが故障した場合、故障したデータ処理部２の替わりに、予備データ処理部２ｄを用いる。
【００３８】
再構成制御部３は、故障を検出したデータ処理部２から、故障を検出したことを表す故障検出情報を取得した場合、故障したデータ処理部２を選択し、選択した（故障した）データ処理部２に再構成されている回路と同等の回路を、予備データ処理部２ｄに再構成させる。
【００３９】
具体的には、故障検出情報を取得した場合、再構成制御部３は、故障したデータ処理部２に再構成されている回路を、予備データ処理部２ｄに再構成するために、故障を検出したデータ処理部２に再構成されている回路に対応する回路情報５を、通信部２３を介して予備データ処理部２ｄの通信部２２ｄへ送信する。
【００４０】
続いて、予備データ処理部２ｄは、通信部２２ｄが受信した、故障を検出したデータ処理部２の再構成可能回路４に再構成されている回路に対応する回路情報５に基づいて、再構成可能回路４ｄに回路を再構成する。
【００４１】
図２の構成において、例えば、再構成制御部３が、データ処理部２ａの故障を検出した場合、データ処理部２ａに再構成されている回路を、予備データ処理部２ｄの再構成可能回路４ｄに再構成するために、データ処理部２ａに対応する回路情報５ａを、通信部２３を介して予備データ処理部２ｄの通信部２２ｄへ送信する。
【００４２】
続いて、予備データ処理部２ｄは、通信部２２ｄが受信した回路情報５ａに基づいて、再構成可能回路４ｄに処理ａを実行する回路を再構成する。そして、処理ａを実行する回路が再構成可能回路４ｄに再構成された後、データ処理部２ａの動作を停止させ、予備データ処理部２ｄを起動する。すなわち、予備データ処理部２ｄがデータ処理部２ａを代替する。
【００４３】
なお、予備データ処理部２ｄがデータ処理部２ａを代替された後、利用者は、故障したデータ処理部２ａを新しいデータ処理部２ａに取り換える。そして、分散処理装置１を当初の運用状態に戻す。
【００４４】
このように、変形例１においては、分散処理装置１に、更に再構成可能回路４を有する予備データ処理部２ｄを設けることで、データ処理部２ａ、２ｂ、２ｃのいずれかが故障した場合でも、故障したデータ処理部２と同等の回路を、予備データ処理部２ｄに再構成できる。そのため、故障したデータ処理部２を予備データ処理部２ｄへと容易に切り替えることができる。
【００４５】
更に、故障検出後から回路が再構成されるまでの短時間において、故障したデータ処理部２を予備データ処理部２ｄへと切り替えられるので、分散処理装置１は、データ処理性能の低下を最小限に抑制できる。
【００４６】
なお、上述したデータ処理部２の故障検出は、故障検出回路を用いて行う。具体的には、再構成制御部３は、データ処理部２のいずれかに、再構成可能回路４の故障を検出する故障検出回路を再構成する。なお、故障検出回路は、ＦＰＧＡなどのプログラマブルなデバイスの故障が検出できる回路であればよい。
【００４７】
［変形例２］
変形例２の分散処理装置においては、データ処理部２及び予備データ処理部２ｄの故障検出（診断）を行う場合について説明する。
【００４８】
変形例２においては、図２に示す回路情報５ｄを、再構成可能回路４に故障検出回路を再構成するための情報（処理ｄ）とする。再構成制御部３は、あらかじめ設定した日時に、あらかじめ設定した順において、データ処理部２及び予備データ処理部２ｄを選択して、選択したデータ処理部２、予備データ処理部２ｄの再構成可能回路４に故障検出回路を再構成する。
【００４９】
具体的には、変形例２では、図２に示す回路情報５ｄを、再構成可能回路４に故障検出回路を再構成するための情報（処理ｄ）とする。
【００５０】
図３は、変形例２を説明するための図である。再構成制御部３は、診断１を実行する日時になると、データ処理部２及び予備データ処理部２ｄに診断を実行させる。
【００５１】
診断１では、再構成制御部３は、まず、予備データ処理部２ｄに回路情報５ａを送信する。その後、予備データ処理部２ｄは、受信した回路情報５ａに基づいて、再構成可能回路４ｄに処理ａの回路を再構成する。
【００５２】
続いて、データ処理部２ａから予備データ処理部２ｄに切り替わり、データ処理が継続して行われる。続いて、再構成制御部３は、データ処理部２ａに回路情報５ｄを送信する。その後、データ処理部２ａは、受信した回路情報５ｄに基づいて、再構成可能回路４ａに故障検出回路を再構成する。
【００５３】
続いて、データ処理部２ａは、再構成可能回路４ａの診断を行い、故障が検出された場合、再構成制御部３へ故障検出情報を送信する。故障が検出さない場合、診断１を終了して、データ処理部２ａを元の状態、すなわち処理ａを実行可能な状態に戻し、次の診断２を行う。
【００５４】
続いて、診断２では、データ処理部２ｂの診断をし、診断３では、データ処理部２ｃの診断をし、診断４では、予備データ処理部２ｄの診断をする。なお、データ処理部２及び予備データ処理部２ｄの診断の順番は限定されるものではない。
【００５５】
このように、変形例２においては、予備データ処理部２ｄを用いて、データ処理を継続しながら、故障検出を実行できる。
【００５６】
［変形例３］
変形例３の分散処理装置においては、分散処理装置に新たな処理を追加する場合について説明する。
【００５７】
変形例３においては、図２に示す回路情報５ｄを、再構成可能回路４に新たな処理を実行するための回路を再構成するために用いる情報（処理ｄ）とする。再構成制御部３は、予備データ処理部２ｄを選択して、選択した予備データ処理部２ｄの再構成可能回路４に新たな処理を実行する回路を再構成する。
【００５８】
変形例３においては、再構成制御部３は、まず、予備データ処理部２ｄに回路情報５ｄを送信する。その後、予備データ処理部２ｄは、受信した回路情報５ｄに基づいて、再構成可能回路４ｄに新たな処理を実行する回路を再構成する。
【００５９】
具体的には、再構成制御部３は、新たな処理に対応する回路を、予備データ処理部２ｄに再構成するために、新たな処理に対応する回路に対応する回路情報５ｄを、通信部２３を介して予備データ処理部２ｄの通信部２２ｄへ送信する。
【００６０】
続いて、予備データ処理部２ｄは、通信部２２ｄが受信した新たな処理に対応する回路に対応する回路情報５ｄに基づいて、再構成可能回路４ｄに新たな処理に対応する回路を再構成する。
【００６１】
このように、変形例３においては、分散処理装置１に再構成可能回路４を有する予備データ処理部２ｄを設けることで、予備データ処理部２ｄに新たな処理を容易に追加できる。
【００６２】
［変形例４］
変形例４においては、上述した実施形態、変形例１、２、３において説明した、再構成可能回路４として、再構成可能な領域の一部を、動的に書き換えるパーシャル・リコンフィギュレーションが可能な動的再構成可能回路を用いる。
【００６３】
図４を参照して具体的に説明する。図４は、変形例４の説明をするための図である。例えば、処理ａを更に処理ａ１、ａ２、ａ３に分割でき、処理ａが処理ａ１、ａ２、ａ３を順に実行する処理であり、動的再構成可能回路が４１ａ、４１ｂの領域を有している場合
について説明をする。
【００６４】
データ処理部２ａは、状態１おいて、処理ａ１、ａ２に対応する回路情報を取得し、取得した回路情報に基づいて、再構成可能回路４の領域４１ａに処理ａ１に対応する回路を再構成し、領域４１ｂに処理ａ２に対応する回路を再構成する。
【００６５】
続いて、データ処理部２ａは、状態２おいて、処理ａ３に対応する回路情報を取得し、処理ａ１の処理が終了すると、取得した回路情報に基づいて、領域４１ａに処置ａ３に対応する回路を再構成する。
【００６６】
続いて、データ処理部２ａは、処理ａ１に対応する回路情報を取得し、上述した状態１のように、領域４１ａに処理ａ１の回路を再構成し、領域４１ｂに処理ａ２の回路を再構成する。このようにして処理ａ１、ａ２、ａ３の処理を繰り返し実行することで、処理ａを実行する。
【００６７】
また、上述した処理ｂ、ｃ、ｄについても、分割可能な処理であれば、上述した処理と同様に処理を行うことが可能である。
【００６８】
このように、変形例４においては、再構成可能回路４に動的再構成可能回路を用いることで、更に再構成可能回路４の回路規模を小さくすることができる。その理由は、分散された処理を更に分割して、分割した回路に対応する回路を、必要に応じて動的に再構成することができるからである。
【００６９】
なお、図４の例では、領域の個数を２個にしたが、２個に限定されるものでなく、２個以上でもよい。
【００７０】
［装置動作］
次に、本発明の実施の形態、変形例１から４における分散処理装置１の動作について図５、図６、図７、図８、図９を用いて説明する。図５は、分散処理装置の動作の一例を示す図である。図６は、変形例１における分散処理装置の動作の一例を示す図である。図７は、変形例２における分散処理装置の動作の一例を示す図である。図８は、変形例３における分散処理装置の動作の一例を示す図である。図９は、変形例４における分散処理装置の動作の一例を示す図である。
【００７１】
以下の説明においては、適宜図１から図４を参酌する。また、本実施の形態では、分散処理装置を動作させることによって、分散処理方法が実施される。よって、本実施の形態における分散処理方法の説明は、以下の分散処理装置の動作説明に代える。
【００７２】
図５に示すように、最初に、再構成制御部３は、分散させたデータ処理それぞれに対応する回路情報５を、再構成可能回路４を有するデータ処理部２へ送信する（ステップＡ１）。具体的には、ステップＡ１において、再構成制御部３は、図１に示すように、あらかじめ回路情報５と関連付けられたデータ処理部２に回路情報５を送信する。
【００７３】
再構成制御部３は、例えば、処理ａに対応する回路を再構成するために用いる回路情報５ａ、処理ｂに対応する回路を再構成するために用いる回路情報５ｂ、処理ｃに対応する回路を再構成するために用いる回路情報５ｃを、回路情報５ａ、５ｂ、５ｃに対応するデータ処理部２ａ、２ｂ、２ｃに送信する。
【００７４】
次に、再構成制御部３は、送信した回路情報５を用いて、データ処理部２それぞれに対して動的に回路を再構成させる（ステップＡ２）。具体的には、ステップＡ２において、
再構成制御部３は、データ処理部２が再構成制御部３から回路情報５を受信した後、データ処理部２の再構成可能回路４に、受信した回路情報５に対応する回路を再構成させる制御をする。
【００７５】
図１に示すように、再構成可能回路４ａに処理ａを実行するための回路が再構成され、再構成可能回路４ｂに処理ｂを実行するための回路が再構成され、再構成可能回路４ｃに処理ｃを実行するための回路が再構成される。
【００７６】
このように、分散させたデータ処理それぞれに対応する回路情報５を用いて、複数のデータ処理部２それぞれに対して動的に回路を再構成できるので、故障が生じた場合、従来よりも安価でロバスト性を確保することができる。
【００７７】
その理由は、従来においては、故障が生じた場合、分散処理装置と同等の機能を有する高価な予備機へと切り替えをしていた。しかしながら、本実施の形態においては、故障が生じた場合、故障したデータ処理部２だけを交換すればよいので、安価でロバスト性も確保することができる。言い換えれば、データ処理部２に、容量の小さい安価なＦＰＧＡなどのプログラマブルなデバイスを採用できるため、安価でロバスト性も確保することができる。また、安価で分散処理装置１を構築できる。
【００７８】
［変形例１］
変形例１における分散処理装置１の動作について説明をする。変形例１においては、データ処理部２のいずれかが故障した場合、故障したデータ処理部２の替わりに、予備データ処理部２ｄを用いる。
【００７９】
図６に示すように、最初に、再構成制御部３は、故障検出情報を取得する（ステップＢ１）。具体的には、ステップＢ１において、再構成制御部３は、故障を検出したデータ処理部２から、故障を検出したことを表す故障検出情報を取得する。続いて、再構成制御部３は、故障したデータ処理部２を選択する（ステップＢ２）。
【００８０】
続いて、再構成制御部３は、故障したデータ処理部２に再構成されている回路に対応する回路情報５を、予備データ処理部２ｄへ送信する（ステップＢ３）。具体的には、ステップＢ３において、再構成制御部３は、故障を検出したデータ処理部２に再構成されている回路に対応する回路情報５を、通信部２３を介して予備データ処理部２ｄの通信部２２ｄへ送信する。
【００８１】
続いて、予備データ処理部２ｄは、故障を検出したデータ処理部２の再構成可能回路４に再構成されている回路に対応する回路情報５を受信すると、受信した回路情報５に基づいて再構成可能回路４ｄに回路を再構成する（ステップＢ４）。
【００８２】
このように、変形例１においては、分散処理装置１に、更に再構成可能回路４を有する予備データ処理部２ｄを設けることで、データ処理部２ａ、２ｂ、２ｃのいずれかが故障した場合でも、故障したデータ処理部２と同等の回路を、予備データ処理部２ｄに再構成できる。
【００８３】
そのため、故障したデータ処理部２を予備データ処理部２ｄへと容易に切り替えることができる。更に、故障検出後から回路が再構成されるまでの短時間において、故障したデータ処理部２を予備データ処理部２ｄへと切り替えられるので、分散処理装置１は、データ処理性能の低下を最小限に抑制できる。
【００８４】
なお、データ処理部２の故障検出は、故障検出回路を用いて行う。具体的には、再構成
制御部３は、データ処理部２のいずれかに、再構成可能回路４の故障を検出する故障検出回路を再構成する。なお、故障検出回路は、ＦＰＧＡなどのプログラマブルなデバイスの故障が検出できる回路であればよい。
【００８５】
［変形例２］
変形例２における分散処理装置１の動作について説明をする。変形例２においては、データ処理部２及び予備データ処理部２ｄの故障検出（診断）を行う場合について説明する。
【００８６】
図７に示すように、最初に、再構成制御部３は、診断日時を取得する（ステップＣ１）。具体的には、ステップＣ１において、再構成制御部３は、あらかじめ設定した日時（診断日時）になると診断（故障検出）を開始する。
【００８７】
続いて、再構成制御部３は、データ処理部２又は予備データ処理部２ｄを選択する（ステップＣ２）。続いて、再構成制御部３は、選択したデータ処理部２に再構成されている回路に対応する回路情報５を、予備データ処理部２ｄへ送信する（ステップＣ３）。続いて、予備データ処理部２ｄは、選択したデータ処理部２に再構成されている回路を予備データ処理部２ｄの再構成可能回路４ｄに再構成する（ステップＣ４）。
【００８８】
続いて、再構成制御部３は、故障検出回路に対応する回路情報を選択したデータ処理部２へ送信する（ステップＣ５）。続いて、再構成制御部３は、選択したデータ処理部２に、故障検出回路を再構成する（ステップＣ６）。
【００８９】
続いて、選択したデータ処理部２が、再構成した故障検出回路を用いて診断（故障検出）を行う（ステップＣ７）。選択したデータ処理部２に故障がある場合（ステップＣ７：Ｙｅｓ）、ステップＣ８に移行して、利用者に故障を通知する。また、選択したデータ処理部２に故障がない場合（ステップＣ７：Ｎｏ）、ステップＣ９に移行する。
【００９０】
続いて、再構成制御部３は、状態を初期状態に戻す（ステップＣ９）。具体的には、ステップＣ９において、再構成制御部３は、データ処理部２及び予備データ処理部２ｄの再構成可能回路４の状態を、診断開始時の状態に戻す。
【００９１】
続いて、再構成制御部３は、全ての診断（故障検出）が終了した場合（ステップＣ１０：Ｙｅｓ）、データ処理を終了する。まだ、未診断のデータ処理部２又は予備データ処理部２ｄがある場合（ステップＣ１０：Ｎｏ）、ステップＣ２に移行する。そして、ステップＣ２において、未診断のデータ処理部２又は予備データ処理部２ｄを選択する。
【００９２】
上述したステップＣ１からＣ９の処理を繰り返すことで、データ処理部２及び予備データ処理部２ｄの診断を行う。
【００９３】
このように、変形例２においては、予備データ処理部２ｄを用いて、データ処理を継続しながら、故障検出を実行できる。
【００９４】
［変形例３］
変形例３における分散処理装置１の動作について説明をする。変形例３においては、分散処理装置１に新たな処理を追加する場合について説明する。
【００９５】
図８に示すように、最初に、再構成制御部３は、新たな処理に対応する回路情報５を、再構成可能回路４を有するデータ処理部２へ送信する（ステップＤ１）。具体的には、ステップＤ１において、再構成制御部３は、図２に示すように、予備データ処理部２ｄに、
新たな処理に対応する回路情報５ｄを送信する。
【００９６】
次に、予備データ処理部２ｄは、受信した回路情報５ｄを用いて、新たな処理に対応する回路を再構成させる（ステップＤ２）。具体的には、ステップＤ２において、予備データ処理部２ｄは、再構成制御部３から回路情報５を受信した後、予備データ処理部２ｄの再構成可能回路４ｄに、受信した回路情報５ｄに対応する回路を再構成する。
【００９７】
このように、変形例３においては、分散処理装置１に再構成可能回路４を有する予備データ処理部２ｄを設けることで、予備データ処理部２ｄに新たな処理を容易に追加できる。
【００９８】
［変形例４］
変形例４における分散処理装置１の動作について説明をする。変形例４においては、上述した実施形態、変形例１、２、３において説明した、再構成可能回路４として、動的再構成可能回路を用いる。具体的には、再構成可能回路４として、再構成可能な領域の一部を、動的に書き換えるパーシャル・リコンフィギュレーションが可能な動的再構成可能回路を用いる。
【００９９】
図９に示すように、最初に、再構成制御部３は、分散した処理を更に分割した処理を選択する（ステップＥ１）。続いて、再構成制御部３は、分割した処理に対応する領域を選択する（ステップＥ２）。続いて、再構成制御部３は、分割した処理に対応する回路情報５を、再構成可能回路４（動的再構成可能回路）を有するデータ処理部２へ送信する（ステップＥ３）。続いて、データ処理部２又は予備データ処理部２ｄは、受信した回路情報５を用いて、選択された領域に、分割した処理に対応する回路を再構成する（ステップＥ４）。
【０１００】
なお、上述したステップＥ１からＥ４の処理を繰り返すことで、分散された処理を実行する。
【０１０１】
このように、変形例４においては、再構成可能回路４に、再構成可能な領域の一部を、動的に書き換え可能な動的再構成可能回路を用いることで、更に再構成可能回路４の回路規模を小さくすることができる。その理由は、分散された処理を更に分割して、分割した回路に対応する回路を、必要に応じて動的に再構成することができるからである。
【０１０２】
［本実施の形態の効果］
以上のように本実施の形態によれば、分散させたデータ処理それぞれに対応する回路情報５を用いて、複数のデータ処理部２それぞれに対して動的に回路を再構成できるので、故障が生じた場合、従来よりも安価でロバスト性を確保することができる。
【０１０３】
その理由は、従来においては、故障が生じた場合、分散処理装置と同等の機能を有する高価な予備機へと切り替えをしていた。しかしながら、本実施の形態においては、故障が生じた場合、故障したデータ処理部２だけを交換すればよいので、安価でロバスト性を確保することができる。言い換えれば、データ処理部２に、容量の小さい安価なＦＰＧＡなどのプログラマブルなデバイスを採用できるため、安価でロバスト性も確保することができる。また、安価で分散処理装置１を構築できる。
【０１０４】
また、予備機を用いた場合には、通例としてシステム全体を停止させる必要であるが、本実施の形態においては、予備機を用いず、更にシステムを停止させずに、故障したデータ処理部２だけを交換ができる。
【０１０５】
また、変形例１によれば、分散処理装置１に、更に再構成可能回路４を有する予備データ処理部２ｄを設けることで、データ処理部２ａ、２ｂ、２ｃのいずれかが故障した場合でも、故障したデータ処理部２と同等の回路を、予備データ処理部２ｄに再構成できる。
【０１０６】
そのため、故障したデータ処理部２を予備データ処理部２ｄへと容易に切り替えることができる。更に、故障検出後から回路が再構成されるまでの短時間において、故障したデータ処理部２を予備データ処理部２ｄへと切り替えられるので、分散処理装置１は、データ処理性能の低下を最小限に抑制できる。
【０１０７】
また、変形例２によれば、予備データ処理部２ｄを用いて、データ処理を継続しながら、故障検出を実行できる。
【０１０８】
また、変形例３によれば、分散処理装置１に再構成可能回路４を有する予備データ処理部２ｄを設けることで、予備データ処理部２ｄに新たな処理を容易に追加できる。
【０１０９】
また、変形例４によれば、再構成可能回路４に動的再構成可能回路を用いることで、更に再構成可能回路４の回路規模を小さくすることができる。その理由は、分散された処理を更に分割して、分割した回路に対応する回路を、必要に応じて動的に再構成することができるからである。
【０１１０】
更に、データ処理部２及び予備データ処理部２ｄに採用されたＦＰＧＡなどのプログラマブルなデバイスが製造中止などの原因により入手できなくなった場合でも、安価で容易に、異なるＦＰＧＡなどのプログラマブルなデバイスを採用したデータ処理部２に交換できる。その理由は、データ処理部２には、小規模な回路を再構成可能回路４に再構成するので、異なるＦＰＧＡなどのプログラマブルなデバイスを用いた場合でも、回路設計に要する時間を短縮できるからである。
【０１１１】
［プログラム］
本発明の実施の形態におけるプログラムは、コンピュータに、図５に示すステップＡ１からＡ２、又は図６に示すステップＢ１からＢ４、又は図７に示すステップＣ１からＣ１０、又は図８に示すステップＤ１からＤ２、又は図９に示すステップＥ１からＥ４、又はそれらを二つ以上組み合わせて実行させるプログラムであればよい。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における分散処理装置と分散処理方法とを実現することができる。この場合、コンピュータのプロセッサは、再構成制御部３として機能し、処理を行なう。
【０１１２】
［物理構成］
ここで、実施の形態、変形例１、２、３、４におけるプログラムを実行することによって、分散処理装置１の再構成制御部３を実現するコンピュータについて図１０を用いて説明する。図１０は、本発明の実施の形態における再構成制御部を実現するコンピュータの一例を示すブロック図である。
【０１１３】
図１０に示すように、コンピュータ１１０は、ＣＰＵ（Central Processing Unit）１１１と、メインメモリ１１２と、記憶装置１１３と、入力インターフェイス１１４と、表示コントローラ１１５と、データリーダ／ライタ１１６と、通信インターフェイス１１７とを備える。これらの各部は、バス１２１を介して、互いにデータ通信可能に接続される。なお、コンピュータ１１０は、ＣＰＵ１１１に加えて、又はＣＰＵ１１１に代えて、ＧＰＵ（Graphics Processing Unit）、又はＦＰＧＡ（Field-Programmable Gate Array）を備えていてもよい。
【０１１４】
ＣＰＵ１１１は、記憶装置１１３に格納された、本実施の形態におけるプログラム（コード）をメインメモリ１１２に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ１１２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）などの揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体１２０に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス１１７を介して接続されたインターネット上で流通するものであってもよい。
【０１１５】
また、記憶装置１１３の具体例としては、ハードディスクドライブの他、フラッシュメモリなどの半導体記憶装置があげられる。入力インターフェイス１１４は、ＣＰＵ１１１と、キーボード及びマウスといった入力機器１１８との間のデータ伝送を仲介する。表示コントローラ１１５は、ディスプレイ装置１１９と接続され、ディスプレイ装置１１９での表示を制御する。
【０１１６】
データリーダ／ライタ１１６は、ＣＰＵ１１１と記録媒体１２０との間のデータ伝送を仲介し、記録媒体１２０からのプログラムの読み出し、及びコンピュータ１１０における処理結果の記録媒体１２０への書き込みを実行する。通信インターフェイス１１７は、ＣＰＵ１１１と、他のコンピュータとの間のデータ伝送を仲介する。
【０１１７】
また、記録媒体１２０の具体例としては、ＣＦ（Compact Flash（登録商標））及びＳＤ（Secure Digital）などの汎用的な半導体記憶デバイス、フレキシブルディスク（Flexible Disk）などの磁気記録媒体、又はＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記録媒体があげられる。
【０１１８】
［付記］
以上の実施の形態に関し、更に以下の付記を開示する。上述した実施の形態の一部又は全部は、以下に記載する（付記１）から（付記１５）により表現することができるが、以下の記載に限定されるものではない。
【０１１９】
（付記１）
再構成可能回路を有する、データ処理部と、
分散させたデータ処理それぞれに対応する回路情報を用いて、複数の前記データ処理部それぞれに対して動的に回路を再構成させる制御をする、再構成制御部と、
を有することを特徴とする分散処理装置。
【０１２０】
（付記２）
付記１に記載の分散処理装置であって、
更に、再構成可能回路を有する、予備データ処理部を有し、
前記再構成制御部は、複数の前記データ処理部と別に設けた前記予備データ処理部に前記回路情報に対応する回路を再構成させる
ことを特徴とする分散処理装置。
【０１２１】
（付記３）
付記２に記載の分散処理装置であって、
前記再構成制御部は、前記データ処理部、又は前記予備データ処理部に、前記再構成可能回路の故障を検出する故障検出回路を再構成させる
ことを特徴とする分散処理装置。
【０１２２】
（付記４）
付記３に記載の分散処理装置であって、
前記再構成制御部は、あらかじめ設定した日時に、あらかじめ設定した順に、前記データ処理部及び前記予備データ処理部を選択して、前記故障検出回路を再構成させる
ことを特徴とする分散処理装置。
【０１２３】
（付記５）
付記１から４のいずれか一つに記載の分散処理装置であって、
前記再構成可能回路は、動的再構成可能回路である
ことを特徴とする分散処理装置。
【０１２４】
（付記６）
（ａ）分散させたデータ処理それぞれに対応する回路情報を、再構成可能回路を有するデータ処理部へ送信する、ステップと
（ｂ）受信した前記回路情報を用いて、前記データ処理部それぞれに対して動的に回路を再構成する、ステップと、
を有することを特徴とする分散処理方法。
【０１２５】
（付記７）
付記６に記載の分散処理方法であって、
（ｃ）複数の前記データ処理部と別に設けた予備データ処理部に前記回路情報に対応する回路を再構成する、ステップを有する
ことを特徴とする分散処理方法。
【０１２６】
（付記８）
付記７に記載の分散処理方法であって、
（ｄ）前記データ処理部、又は前記予備データ処理部に、前記再構成可能回路の故障を検出する故障検出回路を再構成する、ステップを有する
ことを特徴とする分散処理方法。
【０１２７】
（付記９）
付記８に記載の分散処理方法であって、
前記（ｄ）のステップにおいて、あらかじめ設定した日時に、あらかじめ設定した順に、前記データ処理部及び前記予備データ処理部を選択して、前記故障検出回路を再構成する
ことを特徴とする分散処理方法。
【０１２８】
（付記１０）
付記６から９のいずれか一つに記載の分散処理方法であって、
前記再構成可能回路は、動的再構成可能回路である
ことを特徴とする分散処理方法。
【０１２９】
（付記１１）
コンピュータに、
（ａ）分散させたデータ処理それぞれに対応する回路情報を、再構成可能回路を有するデータ処理部へ送信する、ステップと
（ｂ）受信した前記回路情報を用いて、前記データ処理部それぞれに対して動的に回路を再構成する、ステップと、
を実行させることを特徴とするプログラム。
【０１３０】
（付記１２）
付記１１に記載のプログラムであって、
前記コンピュータに、
（ｃ）複数の前記データ処理部と別に設けた予備データ処理部に前記回路情報に対応する回路を再構成する、ステップを実行させる
ことを特徴とするプログラム。
【０１３１】
（付記１３）
付記１１又は１２に記載のプログラムであって、
前記コンピュータに、
（ｄ）前記データ処理部、又は前記予備データ処理部に、前記再構成可能回路の故障を検出する故障検出回路を再構成する、ステップを実行させる
ことを特徴とするプログラム。
【０１３２】
（付記１４）
付記１３に記載のプログラムであって、
前記（ｄ）のステップにおいて、あらかじめ設定した日時に、あらかじめ設定した順に、前記データ処理部及び前記予備データ処理部を選択して、前記故障検出回路を再構成する
ことを特徴とするプログラム。
【０１３３】
（付記１５）
付記１１から１４のいずれか一つに記載のプログラムであって、
前記再構成可能回路は、動的再構成可能回路である
ことを特徴とするプログラム。
【産業上の利用可能性】
【０１３４】
以上のように本発明によれば、安価でロバスト性を確保することができる。本発明は、複数のプログラマブルなデバイスを用いて分散処理を行う分野において有用である。
【符号の説明】
【０１３５】
１  分散処理装置
２、２ａ、２ｂ、２ｃ  データ処理部
２ｄ  予備データ処理部
３  再構成制御部
４、４ａ、４ｂ、４ｃ、４ｄ  再構成可能回路
５、５ａ、５ｂ、５ｃ、５ｄ  回路情報
２１  ネットワーク
２２ａ、２２ｂ、２２ｃ、２２ｄ  通信部
２３  通信部
４１ａ、４１ｂ  領域
１１０  コンピュータ
１１１  ＣＰＵ
１１２  メインメモリ
１１３  記憶装置
１１４  入力インターフェイス
１１５  表示コントローラ
１１６  データリーダ／ライタ
１１７  通信インターフェイス
１１８  入力機器
１１９  ディスプレイ装置
１２０  記録媒体
１２１  バス
【図１】
2020167478.tif 000003
【図２】
2020167478.tif 000004
【図３】
2020167478.tif 000005
【図４】
2020167478.tif 000006
【図５】
2020167478.tif 000007
【図６】
2020167478.tif 000008
【図７】
2020167478.tif 000009
【図８】
2020167478.tif 000010
【図９】
2020167478.tif 000011
【図１０】
2020167478.tif 000012