(57)【特許請求の範囲】
【請求項１】
発電部及び前記発電部によって発電された電力を蓄電する蓄電部を各々備えた複数のワーカノードと、前記複数のワーカノードに割り当てるタスクを管理するマスタノードとを備えた計算機システムであって、
前記複数のワーカノードの各々は、
前記電力の単位時間当たりの変化量の範囲と、所定の基本周期のべき乗の動作周期とが対応付けられた周期決定テーブルを備え、
当該ワーカノードの蓄電部に蓄電される電力の単位時間当たりの変化量に基づいて、前記蓄電部に蓄電された電力の単位時間当たりの変化量を小さくなるよう補正した値が含まれる範囲に対応付けられた前記所定の基本周期のべき乗の動作周期を、前記マスタノードによって割り当てられたタスクの実行又は他のワーカノードとの間で通信を実行する際の当該ワーカノードの動作周期として決定することを特徴とする計算機システム。
【請求項２】
発電部及び前記発電部によって発電された電力を蓄電する蓄電部を各々備えた複数のワーカノードと、前記複数のワーカノードに割り当てるタスクを管理するマスタノードとを備えた計算機システムであって、
前記複数のワーカノードの各々は、当該ワーカノードの蓄電部に蓄電される電力の単位時間当たりの変化量に基づいて、前記マスタノードによって割り当てられたタスクの実行又は他のワーカノードとの間で通信を実行する際の当該ワーカノードの動作周期を決定し、
前記動作周期は、前記蓄電部に電力を蓄電するスリープ期間と、前記蓄電部に蓄電された電力を用いて前記ワーカノードが処理を実行するウェイクアップ期間とからなり、
前記複数のワーカノードの各々は、
前記ウェイクアップ期間の開始時刻が設定されるウェイクアップ時刻設定レジスタを備え、
決定された前記動作周期と前記ウェイクアップ時刻設定レジスタの設定値とに基づいて、次回の前記ウェイクアップ期間の開始時刻を算出し、
算出された前記開始時刻を、前記ウェイクアップ時刻設定レジスタに設定することを特徴とする計算機システム。
【請求項３】
発電部及び前記発電部によって発電された電力を蓄電する蓄電部を各々備えた複数のワーカノードと、前記複数のワーカノードに割り当てるタスクを管理するマスタノードとを備えた計算機システムであって、
前記複数のワーカノードの各々は、
当該ワーカノードの蓄電部に蓄電される電力の変化を示す情報に基づいて、前記マスタノードによって割り当てられたタスクの実行又は他のワーカノードとの間で通信を実行する際の当該ワーカノードの動作周期を決定し、
前記蓄電部に蓄電された電力が所定量以上となった場合に、前記マスタノードによって割り当てられたタスクを集中して実行する集中処理モードを備えたことを特徴とする計算機システム。
【請求項４】
前記動作周期は、前記蓄電部に電力を蓄電するスリープ期間と、前記蓄電部に蓄電された電力を用いて前記ワーカノードが処理を実行するウェイクアップ期間とからなり、
前記複数のワーカノードの各々は、
前記集中処理モードが設定される集中処理モード設定レジスタと、前記ウェイクアップ期間の開始時刻が設定されるウェイクアップ時刻設定レジスタとを備え、
前記集中処理モード設定レジスタに設定された集中処理モードが解除された場合に、当該ワーカノードの前記動作周期を決定し、
決定された前記動作周期と前記ウェイクアップ時刻設定レジスタの設定値とに基づいて、次回の前記ウェイクアップ期間の開始時刻を算出し、
算出された前記開始時刻を、前記ウェイクアップ時刻設定レジスタに設定することを特徴とする請求項３に記載の計算機システム。
【請求項５】
発電部及び前記発電部によって発電された電力を蓄電する蓄電部を各々備えた複数のワーカノードと、前記複数のワーカノードに割り当てるタスクを管理するマスタノードとを備えた計算機システムであって、
前記複数のワーカノードの各々は、当該ワーカノードの蓄電部に蓄電される電力の変化を示す情報に基づいて、前記マスタノードによって割り当てられたタスクの実行又は他のワーカノードとの間で通信を実行する際の当該ワーカノードの動作周期を決定し、
前記マスタノードは、
前記複数のワーカノードに対するタスクの割り当てに関する情報を管理するためのタスク割当テーブルを備え、
決定された各ワーカノードの動作周期と、前記タスク割当テーブルとに基づいて、各ワーカノードに割り当てるタスクを決定することを特徴とする計算機システム。
【請求項６】
前記電力の変化を示す情報は、前記蓄電部に蓄電される電力の単位時間当たりの変化量又は前記蓄電部に所定量の電力が充電されるまでに要した充電時間であることを特徴とする請求項３から５のいずれか一つに記載の計算機システム。
【請求項７】
発電部及び前記発電部によって発電された電力を蓄電する蓄電部を備えた計算機であって、
前記計算機に割り当てるタスクを管理するマスタノードに接続されており、
前記電力の単位時間当たりの変化量の範囲と、所定の基本周期のべき乗の動作周期とが対応付けられた周期決定テーブルを備え、
当該計算機の蓄電部に蓄電される電力の単位時間当たりの変化量に基づいて、前記蓄電部に蓄電された電力の単位時間当たりの変化量を小さくなるよう補正した値が含まれる範囲に対応付けられた前記所定の基本周期のべき乗の動作周期を、前記マスタノードによって割り当てられたタスクの実行又は他の計算機との間で通信を実行する際の当該計算機の動作周期として決定することを特徴とする計算機。
【請求項８】
発電部及び前記発電部によって発電された電力を蓄電する蓄電部を備えた計算機であって、
前記計算機に割り当てるタスクを管理するマスタノードに接続されており、
当該計算機の蓄電部に蓄電される電力の単位時間当たりの変化量に基づいて、前記マスタノードによって割り当てられたタスクの実行又は他の計算機との間で通信を実行する際の当該計算機の動作周期を決定し、
前記動作周期は、前記蓄電部に電力を蓄電するスリープ期間と、前記蓄電部に蓄電された電力を用いて前記計算機が処理を実行するウェイクアップ期間とからなり、
当該計算機は、
前記ウェイクアップ期間の開始時刻が設定されるウェイクアップ時刻設定レジスタを備え、
決定された前記動作周期と前記ウェイクアップ時刻設定レジスタの設定値とに基づいて、次回の前記ウェイクアップ期間の開始時刻を算出し、
算出された前記開始時刻を、前記ウェイクアップ時刻設定レジスタに設定することを特徴とする計算機。
【請求項９】
発電部及び前記発電部によって発電された電力を蓄電する蓄電部を備えた計算機であって、
前記計算機に割り当てるタスクを管理するマスタノードに接続されており、
当該計算機の蓄電部に蓄電される電力の変化を示す情報に基づいて、前記マスタノードによって割り当てられたタスクの実行又は他の計算機との間で通信を実行する際の当該計算機の動作周期を決定し、
前記蓄電部に蓄電された電力が所定量以上となった場合に、前記マスタノードによって割り当てられたタスクを集中して実行する集中処理モードを備えたことを特徴とする計算機。
【請求項１０】
前記動作周期は、前記蓄電部に電力を蓄電するスリープ期間と、前記蓄電部に蓄電された電力を用いて前記計算機が処理を実行するウェイクアップ期間とからなり、
当該計算機は、
前記集中処理モードが設定される集中処理モード設定レジスタと、前記ウェイクアップ期間の開始時刻が設定されるウェイクアップ時刻設定レジスタとを備え、
前記集中処理モード設定レジスタに設定された集中処理モードが解除された場合に、当該計算機の前記動作周期を決定し、
決定された前記動作周期と前記ウェイクアップ時刻設定レジスタの設定値とに基づいて、次回の前記ウェイクアップ期間の開始時刻を算出し、
算出された前記開始時刻を、前記ウェイクアップ時刻設定レジスタに設定することを特徴とする請求項９に記載の計算機。
【請求項１１】
前記電力の変化を示す情報は、前記蓄電部に蓄電される電力の単位時間当たりの変化量又は前記蓄電部に所定量の電力が充電されるまでに要した充電時間であることを特徴とする請求項９又は１０に記載の計算機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散情報処理を実行する計算機システムに関し、特に、各々が発電部と蓄電部とを備えた複数の計算機（ノード）を備えた計算機システムに関する。
【背景技術】
【０００２】
半導体技術の発展に伴い、コンピュータは益々低消費電力で動作可能となっている。このような背景の下に、センサネットの分野においては、自然エネルギーを利用して動作する小型の計算機（コンピュータノード、以下、「ノード」という。）が知られている（特許文献１参照）。
【０００３】
一方、分散情報処理の分野においても、自然エネルギーのみを利用して各ノードの動作を実現することは、環境負荷を小さくできる点で有効である。ここで、分散情報処理においてはノード間通信がボトルネックであり、ノードの通信レート（通信帯域）をできるだけ大きくすることが好ましい。そこで、電源残量（電池残量）に基づいて適切な通信レートを設定する技術が知られている（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１０３７２６号公報
【特許文献２】特開２０１０−２６３３４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、自然エネルギーを利用する場合、各ノードの発電部が小出力であるほど、小型化及びコスト低減が可能であり、利用可能な応用領域が拡大するため有効である。また、各ノードの蓄電部が小容量であるほど、鉛蓄電池のような化学反応ベースの二次電池ではなく、より長寿命な電気二重層キャパシタやコンデンサ等が利用可能であり、電池交換等のメンテナンスが不要であるため有効である。
【０００６】
ここで、特許文献２に開示された技術のように、電源残量を基に通信レートを設定する方式では、蓄電部が十分大きな容量を備えている場合には良好な通信レート制御が可能である。しかしながら、小容量の蓄電部を備えるノードにおいては、安定した適切な通信レートの制御ができない問題があった。これは次の２つの理由による。
【０００７】
第１に、電源残量による通信レート制御は、例えば電源残量が所定残量基準値の２倍の場合に通信レートを所定レート基準値の２倍とする制御等である。つまり、蓄電部の容量の大きさによって、制御可能な通信レートの最大幅が決定される。そのため、蓄電部が小容量である場合には通信レートの制御幅を大きくできない。
【０００８】
第２に、蓄電部が小容量であるために、蓄電部の容量（すなわち１００％時の電源残量）に対する電源残量の変化量が大きい。そのため、通信レートが安定せず、ノード間通信がうまく動作しない。
【０００９】
本発明は、上述した課題を考慮したものであって、小容量の蓄電部を備えるノードであっても、安定した適切な通信レートの制御が可能な計算機システムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、例えば特許請求の範囲に記載の構成を採用する。
【００１１】
本願は上記課題を解決する手段を複数含んでいるが、その一例を挙げるならば、発電部及び前記発電部によって発電された電力を蓄電する蓄電部を各々備えた複数のワーカノードと、前記複数のワーカノードに割り当てるタスクを管理するマスタノードとを備えた計算機システムであって、前記複数のワーカノードの各々は、前記電力の単位時間当たりの変化量の範囲と、所定の基本周期のべき乗の動作周期とが対応付けられた周期決定テーブルを備え、当該ワーカノードの蓄電部に蓄電される電力の単位時間当たりの変化量に基づいて、前記蓄電部に蓄電された電力の単位時間当たりの変化量を小さくなるよう補正した値が含まれる範囲に対応付けられた前記所定の基本周期のべき乗の動作周期を、前記マスタノードによって割り当てられたタスクの実行又は他のワーカノードとの間で通信を実行する際の当該ワーカノードの動作周期として決定することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、小容量の蓄電部を備えるノードであっても、安定した適切な通信レートの制御が可能である。
【００１３】
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１実施形態の分散情報処理装置の全体構成例を示す図である。
【図２】本発明の第１実施形態のワーカノードの基本動作例を示す図である。
【図３】本発明の第１実施形態のマスタノードの構成例を示す図である。
【図４】本発明の第１実施形態のマスタノードの記憶部に記憶される情報を示す図である。
【図５】本発明の第１実施形態のワーカノードの構成例を示す図である。
【図６】本発明の第１実施形態のワーカノードの動作例を示す図である。
【図７】本発明の第１実施形態のワーカノードの不揮発記憶部に記憶される情報を示す図である。
【図８】本発明の第１実施形態のワーカノードの動作を示すフローチャートである。
【図９】本発明の第１実施形態のワーカノードのノード処理を示すフローチャートである。
【図１０】本発明の第１実施形態の分散情報処理装置の動作を示すフローチャートである。
【図１１】本発明の第１実施形態の分散情報処理装置の同期形成の動作を示す図である。
【図１２】本発明の第１実施形態の分散情報処理装置のプログラム分配の動作を示す図である。
【図１３】本発明の第１実施形態の分散情報処理装置の分散計算の動作を示す図である。
【図１４】本発明の第１実施形態の分散情報処理装置の結果集約の動作を示す図である。
【図１５】本発明の第１実施形態の分散情報処理装置の通信方式の例を説明するための図である。
【図１６】本発明の第１実施形態の動作周期決定手段を説明する図である。
【図１７】本発明の第１実施形態の電源残量情報を取得するタイミングを示す図である。
【図１８】本発明の第１実施形態の電源残量の傾き値ａ及び補正後の傾き値ｂと割当て動作周期Ｔｂとの関係を示す図である。
【図１９】本発明の第１実施形態の周期決定テーブルの一例を示す図である。
【図２０Ａ】本発明の第２実施形態の動作周期決定手段の前提としての第１実施形態の動作周期決定手段を説明する図である。
【図２０Ｂ】本発明の第２実施形態の動作周期決定手段を説明する図である。
【図２１】本発明の第２実施形態の分散情報処理装置の全体構成例を示す図である。
【図２２】本発明の第２実施形態のワーカノードの構成例を示す図である。
【図２３】本発明の第２実施形態のワーカノードの不揮発記憶部に記憶される情報を示す図である。
【図２４】本発明の第２実施形態のワーカノードの動作を示すフローチャートである。
【図２５】本発明の第２実施形態のワーカノードの計測処理を示すフローチャートである。
【図２６】本発明の第２実施形態の周期決定テーブルの一例を示す図である。
【図２７】本発明の第３実施形態のワーカノードの動作例を示す図である。
【図２８】本発明の第３実施形態の分散情報処理装置の全体構成例を示す図である。
【図２９】本発明の第３実施形態のワーカノードの構成例を示す図である。
【図３０】本発明の第３実施形態のワーカノードの不揮発記憶部に記憶される情報を示す図である。
【図３１】本発明の第３実施形態のワーカノードの通常処理モードにおける動作を示すフローチャートである。
【図３２】本発明の第３実施形態のワーカノードの通常処理モードにおけるノード処理を示すフローチャートである。
【図３３】本発明の第３実施形態のワーカノードの集中処理モードにおける動作を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態について図面を参照して説明する。
【００１６】
（第１実施形態）
第１実施形態では、太陽光等の自然エネルギーを電力へ変換する小出力な発電部と、電気二重層キャパシタやコンデンサ等の小容量の蓄電部とを備えたノードを用いて分散情報処理を実行する装置を例に説明する。
【００１７】
（システム構成）
図１は、本発明の第１実施形態の分散情報処理装置１００の全体構成例を示す図である。図１に示す分散情報処理装置１００は、一般的なマスタ・ワーカ方式の計算式モデルである。
【００１８】
分散情報処理装置１００は、マスタノード１０１、複数のワーカノード１１０−ａ、１１０−ｂ、１１０−ｃを備える。マスタノード１０１と、各ワーカノード１１０−ａ〜１１０−ｃとはネットワーク１２０を介して接続される。以下、ネットワーク１２０は無線であるとして説明する。
【００１９】
マスタノード１０１は、主に各ワーカノード１１０−ａ〜１１０−ｃに割り当てるタスクを管理する。このマスタノード１０１は、システム全体を指揮するノードとして機能する。
【００２０】
ワーカノード１１０−ａ〜１１０−ｃ（以下、単に「ワーカノード１１０」という。）は、マスタノード１０１によって割り当てられたタスクを処理する。これらワーカノード１１０はそれぞれ同一構成である。
【００２１】
図２は、本発明の第１実施形態のワーカノード１１０の基本動作例を示す図である。
【００２２】
ワーカノード１１０は、スリープ期間Ｔｓとウェイクアップ期間Ｔｗとからなる動作周期Ｔｂで周期的に動作する。スリープ期間Ｔｓでは、ワーカノード１１０は処理動作２０１を止めて自然エネルギーで発電し、電力を蓄える。一方、ウェイクアップ期間Ｔｗでは、ワーカノード１１０は通信処理や計算処理の処理動作２０１を実行し、スリープ期間Ｔｓに蓄えられた電力を消費する。
【００２３】
なお、本発明の第１実施形態の分散情報処理装置１００では、スリープ期間Ｔｓに蓄えられる電力量は例えば数百μＷ秒程度である。また、スリープ期間Ｔｓ、ウェイクアップ期間Ｔｗは、それぞれ数百ｍ秒、数ｍ秒程度である。ウェイクアップ期間Ｔｗにおける処理動作２０１における消費電力は例えば数十ｍＷ程度であるが、これらの値はこの場合に限定されるものではない。
【００２４】
（ノード構成）
本発明の第１実施形態のマスタノード１０１とワーカノード１１０の構成を詳述する。
【００２５】
（マスタノード構成）
図３は、本発明の第１実施形態のマスタノード１０１の構成例を示す図である。マスタノード１０１は、電源部３１０、時計部３２０、計算部３３０、記憶部３４０、通信部３５０及びアンテナ部３６０を備える。
【００２６】
電源部３１０は、商用電源又は電池等を用いた安定な電源であり、マスタノード１０１に電力を供給する。
【００２７】
時計部３２０は、計算部３３０に時刻情報３０１を供給するためのモジュールである。時刻情報３０１は、電波時計等による大局的な時刻情報でもよいし、カウンタ等による局所的な時刻情報でもよい。
【００２８】
計算部３３０は、計算プログラムを実行するためのモジュールであり、一般的にはＣＰＵ（Central Processing Unit）で構成される。この計算部３３０は、タスク管理処理３３２を実行する。タスク管理処理３３２とは、ワーカノード１１０に割り当てるタスク及び既に割り当てたタスクを管理する処理である。
【００２９】
記憶部３４０は、データを格納するためのメモリ、又はストレージと呼ばれるモジュールである。記憶部３４０に記憶される各種情報については、図４を用いて後述する。
【００３０】
通信部３５０は、各ワーカノード１１０との間で通信処理（受信処理３５１と送信処理３５２）を実行するモジュールである。受信処理３５１によって受信したデータは、受信データ３０２として計算部３３０に伝送される。送信処理３５２によって送信すべきデータは、送信データ３０３として通信部３５０に伝送される。
【００３１】
アンテナ部３６０は、無線電波を入出力するためのモジュールである。
【００３２】
図４は、本発明の第１実施形態のマスタノード１０１の記憶部３４０に記憶される情報を示す図である。記憶部３４０は、ＲＡＭ（Random Access Memory）部４００と、ＲＯＭ（Read Only Memory）部４５０とを有する。
【００３３】
ＲＡＭ部４００には、マスタプログラムコード４０１、ワーカプログラムコード４０２、入力データ４０３、マスタ基準周期情報４０４、自己動作周期情報４０５、管理ワーカＩＤ情報４０６、タスクテーブル４０７及びタスク割当てテーブル４０８が格納される。
【００３４】
ＲＯＭ部４５０には、ベースプログラムコード４５１が格納される。
【００３５】
マスタプログラムコード４０１は、マスタノード１０１の実行プログラムである。ワーカプログラムコード４０２は、ワーカノード１１０の実行プログラムであり、ワーカノード１１０に送られる。入力データ４０３は、ワーカノード１１０の処理対象となる入力データである。
【００３６】
マスタ基準周期情報４０４は、各ワーカノード１１０間の通信タイミングを合わせる（同期をとる）ための基準となる周期を示す情報である。自己動作周期情報４０５は、マスタノード１０１自身が通信処理等の動作を実行する際の周期を示す情報である。マスタノード１０１は、時刻情報３０１と自己動作周期情報４０５とに基づいて、処理動作とスリープ動作とを間欠的に繰り返す。
【００３７】
管理ワーカＩＤ情報４０６は、マスタノード１０１の管理下にあるワーカノード１１０のＩＤ（識別子）情報であり、各ワーカノード１１０に通信する場合やタスクを割り当てる場合に参照される。
【００３８】
タスクテーブル４０７は、処理すべきタスクに関する情報を格納するテーブルである。処理すべきタスクに関する情報とは、分散情報処理装置１００において処理すべきタスクのリスト、各タスクが完了したか否か、各タスクの大きさ及び各タスク間の依存関係（各タスクの処理順序）等の情報である。
【００３９】
タスク割当てテーブル４０８は、タスクテーブル４０７に格納された各タスクがどのワーカノード１１０に割り当てられたか、各タスクの処理状況等、各タスクの割当てに関する情報が格納される。
【００４０】
ベースプログラムコード４５１は、マスタノード１０１のブート時に読み出され、各種初期設定等を実行するコードである。
【００４１】
（ワーカノード構成）
図５は、本発明の第１実施形態のワーカノード１１０の構成例を示す図である。ワーカノード１１０は、電源部５１０、時計部５２０、電源制御部５３０、計算部５４０、不揮発記憶部５５０、通信部５６０及びアンテナ部５７０を備える。
【００４２】
電源部５１０は、ワーカノード１１０が動作するための電力を供給するモジュールであり、発電部５１１と蓄電部５１２とを備える。発電部５１１は、太陽光や振動等の自然エネルギーを電力に変化するモジュール、例えば太陽光発電パネル等である。蓄電部５１２は、発電部５１１で得られた電力を蓄えるモジュールである。蓄電部５１２に蓄えられた電力量の情報は、電源残量情報５０１として電源制御部５３０及び計算部５４０に供給される。例えば電気二重層キャパシタやコンデンサ等である。すなわち電源部５１０は、小型で小出力の発電部５１１と、小容量の蓄電部５１２とを備える。
【００４３】
時計部５２０は、電源制御部５３０及び計算部５４０に時刻情報５０２を供給するためのモジュールである。時刻情報５０２は、ワーカノード１１０におけるカウンタ等による局所的な時刻情報でよい。
【００４４】
電源制御部５３０は、ウェイクアップ期間Ｔｗの開始時刻が設定されるウェイクアップ時刻設定レジスタを備え、電源残量情報５０１、時刻情報５０２及び制御情報５０３に基づいて、電源遮断領域５８０の電源のオン、オフを切り替えるモジュールである。
【００４５】
計算部５４０は、計算プログラムを実行するためのモジュールであり、一般的にはＣＰＵで構成される。この計算部５４０は、周期決定処理５４２及びタスク処理５４３を実行する。周期決定処理（動作周期決定手段）５４２とは、発電状況に関する指標（ここでは蓄電部５１２の電源残量の単位時間当たりの変化量）に基づいてワーカノード１１０の動作周期（通信頻度）Ｔｂを決定する処理であり、詳細に後述する。タスク処理５４３とは、マスタノード１０１によって割当てられたタスクを実行する処理である。具体的には、不揮発記憶部５５０から計算途中データ（マイクロタスク）を読み出して計算し、計算結果データを不揮発記憶部５５０に書き込む。
【００４６】
ワーカノード１１０は、図２に示したように動作周期Ｔｂで周期的な間欠動作を実行する場合、ウェイクアップ期間Ｔｗ中に電源残量がゼロになると計算途中のデータが壊れる可能性がある。そこで、本発明の第１実施形態のワーカノード１１０では、マスタノード１０１によって割り当てられた１つのタスクをさらに細かな１つ以上の処理単位（マイクロタスク）に分割し、マイクロタスク単位でタスク処理を実行する。１つのマイクロタスクを実行するのに必要な電力量を、最低動作電力量Ｅｔｈ１と定義する。制御情報５０３は、最低動作電力量Ｅｔｈ１の情報と動作周期Ｔｂの情報と動作完了情報とを含む。動作完了情報とは、ウェイクアップ期間Ｔｗに計算部５４０によって実行される処理動作の完了を示す情報である。
【００４７】
不揮発記憶部５５０は、電源をオフにしてもデータを保持できるモジュール、例えばＲＯＭ、ＦｅＲＡＭ（Ferroelectric Random Access Memory）又はフラッシュメモリ等である。不揮発記憶部５５０に記憶される各種情報については、図７を用いて後述する。
【００４８】
通信部５６０は、マスタノード１０１や他のワーカノード１１０等の他のノードとの間で通信処理（受信処理５６１と送信処理５６２）を実行するモジュールである。受信処理５６１によって受信したデータは、受信データ５０４として計算部５４０に伝送される。送信処理５６２によって送信すべきデータは、送信データ５０５として通信部５６０に伝送される。
【００４９】
アンテナ部５７０は、無線電波を入出力するためのモジュールである。
【００５０】
図６は、本発明の第１実施形態のワーカノード１１０の動作例を示す図である。
【００５１】
図６に示すように、ワーカノード１１０は、スリープ期間Ｔｓとウェイクアップ期間Ｔｗとからなる動作周期Ｔｂで周期的に動作する。ここで、ワーカノード１１０（図５の電源制御部５３０）は、動作周期Ｔｂが経過する度に、電源残量が最低動作電力量Ｅｔｈ１より大きいか否かを判定する。電源残量が最低動作電力量Ｅｔｈ１より大きい場合に限り、電源遮断領域５８０の電源をオンしてウェイクアップ期間Ｔｗへ移行する。その後、計算部５４０から処理動作の完了を示す動作完了信号を受け取ると、電源遮断領域５８０の電源をオフにしてスリープ期間Ｔｓへ移行する。
【００５２】
以上に示すように、ワーカノード１１０は、電源残量が最低動作電力量Ｅｔｈ１より大きい場合に限り、スリープ期間Ｔｓからウェイクアップ期間Ｔｗへ移行可能である。これにより、計算途中のデータが壊れることを防ぐことができる。なお、スリープ基準電力量Ｅｔｈ２については図８を用いて後述する。
【００５３】
図７は、本発明の第１実施形態のワーカノード１１０の不揮発記憶部５５０に記憶される情報を示す図である。不揮発記憶部５５０は、ＲＡＭ部７００と、ＲＯＭ部７５０とを有する。
【００５４】
ＲＡＭ部７００には、ワーカプログラムコード７０１、計算データ７０２、自己動作周期情報７０３、周期決定テーブル７０４、電源残量情報７０５、最低動作電力量情報７０６及びスリープ基準電力量情報７０７が格納される。
【００５５】
ＲＯＭ部７５０には、ワーカベースプログラムコード７５１が格納される。
【００５６】
ワーカプログラムコード７０１は、ワーカノード１１０の実行プログラムである。計算データ７０２は、タスク処理に用いられるデータ、すなわち入力データ、計算途中データ及び計算結果データ等である。この計算データ７０２は、タスク処理５４３の実行開始時に読み出され、終了時に書き込まれる。
【００５７】
自己動作周期情報７０３は、ワーカノード１１０自身が通信処理等の動作を実行する際の動作周期Ｔｂの情報である。この自己動作周期情報７０３は、制御情報５０３として電源制御部５３０に送られる。
【００５８】
周期決定テーブル７０４は、周期決定処理５４２によって参照されるテーブルである。周期決定テーブル７０４については、図１９を用いて詳細に後述する。
【００５９】
電源残量情報７０５は、電源残量情報５０１と、電源残量情報５０１を取得したときの時刻情報５０２とからなる情報である。すなわち、時刻毎の電源残量を示す情報である。この電源残量情報７０５は、発電状況に関する指標（ここでは電源残量の単位時間当たりの変化量）を算出する際に、計算部５４０によって参照される。
【００６０】
最低動作電力量情報７０６は、電源制御部５３０が電源制御に使用する電源残量の閾値（すなわち最低動作電力量Ｅｔｈ１）を示す情報であり、制御情報５０３として電源制御部５３０に伝送される。
【００６１】
スリープ基準電力量情報７０７は、計算部５４０が動作完了信号を出力する際に参照する電源残量の閾値（すなわちスリープ基準電力量Ｅｔｈ２）を示す情報である。
【００６２】
ワーカベースプログラムコード７５１は、ワーカノード１１０のブート時に読み出され、各種初期設定等を実行するコードである。ワーカノード１１０は、マスタノード１０１からワーカプログラムコード７０１を取得するまでは、このワーカベースプログラムコード７５１を実行する。
【００６３】
（ワーカノード動作）
本発明の第１実施形態の分散情報処理装置１００では、小出力の発電部５１１と小容量の蓄電部５１２とを備えるワーカノード１１０の動作に大きな特徴がある。そこで、ワーカノード１１０の動作を図８及び図９を用いて詳細に説明する。
【００６４】
図８は、本発明の第１実施形態のワーカノード１１０の動作を示すフローチャートである。ワーカノード１１０は、マスタノード１０１との間で動作を同期させた後に図８に示す制御ロジックを実行する。なお、マスタノード１０１との間で動作を同期させる前は、既知の制御ロジック（例えば特許文献２参照）を実行すればよい。
【００６５】
まずＳＴ８０１では、ワーカノード１１０は、ウェイクアップ時刻設定レジスタに設定されている当回のウェイクアップ時刻になるまで待機する（ＳＴ８０１）。すなわちＳＴ８０１は、スリープ期間Ｔｓ中の動作である。
【００６６】
当回のウェイクアップ時刻（以下、「時刻ｔ１」とする）になると、ＳＴ８０２へ移行し、ワーカノード１１０は電源残量情報５０１を確認し、時刻ｔ１における電源残量Ｅ［ｔ１］を取得する（ＳＴ８０２）。
【００６７】
その後ＳＴ８０３において、ワーカノード１１０は、制御情報５０３中の最低動作電力量Ｅｔｈ１（最低動作電力量情報７０６に示す最低動作電力量）と、ＳＴ８０２で取得された電源残量Ｅ［ｔ１］とを比較する（ＳＴ８０３）。Ｅｔｈ１＜Ｅ［ｔ１］である場合（ＳＴ８０３でＹｅｓ）、電源遮断領域５８０の電源をオンしてＳＴ８０４へ移行する。一方、Ｅｔｈ１≧Ｅ［ｔ１］である場合（ＳＴ８０３でＮｏ）、ＳＴ８０８へ移行する。
【００６８】
ＳＴ８０４へ移行した場合、ワーカノード１１０は、周期決定処理５４２を実行し、自己の動作周期Ｔｂを修正する（ＳＴ８０４）。周期決定処理５４２については詳細に後述する。
【００６９】
その後ＳＴ８０５において、ワーカノード１１０は、ノード処理を実行する（ＳＴ８０５）。ここでいうノード処理とは、通信処理（送信処理５６２及び受信処理５６１）やタスク処理５４３等である。ノード処理については図９を用いて詳細に後述する。
【００７０】
その後ＳＴ８０６において、ワーカノード１１０は、現在時刻（以下、「時刻ｔ２」とする）における電源残量Ｅ［ｔ２］を取得する（ＳＴ８０６）。
【００７１】
その後ＳＴ８０７において、ワーカノード１１０は、ＳＴ８０６で取得された電源残量Ｅ［ｔ２］と、スリープ基準電力量情報７０７に示すスリープ基準電力量Ｅｔｈ２とを比較する（ＳＴ８０７）。Ｅｔｈ２≧Ｅ［ｔ２］である場合（ＳＴ８０７でＹｅｓ）、電源残量Ｅ［ｔ２］及び時刻ｔ２の情報を最低動作電力量情報７０６として不揮発記憶部５５０に格納し、ＳＴ８０８へ移行する。一方、Ｅｔｈ２＜Ｅ［ｔ２］である場合（ＳＴ８０７でＮｏ）、ＳＴ８１１へ移行する。
【００７２】
ＳＴ８１１へ移行した場合、ワーカノード１１０は、一定時間又は電源残量がスリープ基準電力量Ｅｔｈ２より小さくなるまで、電力を消費する電源残量の調整処理を実行する（ＳＴ８１１）。その後ＳＴ８０６へ移行する。
【００７３】
このＳＴ８１１は、図６のＴ６０１の期間の処理に相当する。すなわち余った電力を所定基準値（ここではスリープ基準電力量Ｅｔｈ２）以下まで消費することにより、余った電力の蓄積による電源残量の上昇を抑制する。本発明の第１実施形態の動作周期決定手段（詳細は後述）では、電源残量が１００％になると正しく動作周期Ｔｂを決定できない恐れがある。そこで、ＳＴ８１１によって所定基準値以下まで電力残量を調整する。なお、ＳＴ８１１では、余った電力を単に捨てることによって消費してもよいし、タスク処理を可能な範囲で実行することによって消費してもよい。
【００７４】
ＳＴ８０８へ移行した場合、ワーカノード１１０は、スリープ処理を実行する（ＳＴ８０８）。具体的には、まずスリープ期間Ｔｓに入る準備処理を実行する。すなわち計算部５４０が、電源制御部５３０へ制御情報５０３を送信する。次に電源制御部５３０が、時刻情報５０２と制御情報５０３中の自己動作周期情報７０３（すなわち動作周期Ｔｂ）とに基づいて、次回のウェイクアップ時刻を算出する。なお、次回のウェイクアップ時刻は、「（次回のウェイクアップ時刻）＝（当回のウェイクアップ時刻）＋（動作周期Ｔｂ）」によって算出される。その後、算出された次回のウェイクアップ時刻を、ウェイクアップ時刻設定レジスタに設定する。その後スリープ処理を実行し、スリープ処理が終わるとＳＴ８０１へ戻る。
【００７５】
以上に示す動作により、ワーカノード１１０は、ウェイクアップ期間Ｔｗ中に電源残量がゼロになって計算途中データが壊れる等の事態を回避しつつ、周期的に間欠動作を実現する。
【００７６】
図９は、本発明の第１実施形態のワーカノード１１０のノード処理を示すフローチャートである。ここでは、図８のＳＴ８０５で実行されるノード処理の詳細を説明する。
【００７７】
ノード処理は、送信処理５６２、受信処理５６１及びタスク処理５４３の３つの処理に大別できる。ここでは通信処理（送信処理５６２、受信処理５６１）を優先する動作を例に説明する。
【００７８】
まずＳＴ９０１において、ワーカノード１１０は、実行すべきノード処理が送信処理５６２であるか否かを判定する（ＳＴ９０１）。送信処理５６２である場合（ＳＴ９０１でＹｅｓ）、ＳＴ９０２へ移行する。一方、送信処理５６２でない場合（ＳＴ９０１でＮｏ）、ＳＴ９１１へ移行する。
【００７９】
ＳＴ９０２へ移行した場合、ワーカノード１１０は、不揮発記憶部５５０から送信対象となる計算データ７０２を読み出す（ＳＴ９０２）。その後ＳＴ９０３へ移行し、通信部５６０及びアンテナ部５７０を介して送信処理５６２を実行する（ＳＴ９０３）。
【００８０】
一方、ＳＴ９１１へ移行した場合、ワーカノード１１０は、通信要求を送信している他のノードが存在するか否かを検出するキャリアセンスと呼ばれる処理を一定期間実行する（ＳＴ９１１）。キャリアセンスが終了すると、ＳＴ９１２へ移行する。
【００８１】
その後ＳＴ９１２において、ワーカノード１１０は、通信要求を検出した場合、検出された通信要求が自身（自ワーカノード１１０）宛ての通信に係る要求か否かを判定する（ＳＴ９１２）。自身宛ての通信に係る要求である場合（ＳＴ９１２でＹｅｓ）、受信処理５６１を実行するためのＳＴ９１３へ移行する。一方、自身宛の通信に係る要求でない場合（ＳＴ９１２でＮｏ）、タスク処理５４３を実行するためのＳＴ９２１へ移行する。なお、ＳＴ９１２において、ワーカノード１１０は、通信要求を検出しない場合にはＳＴ９２１へ移行してもよい。
【００８２】
なお、ＳＴ９１２に示すように受信処理５６１（ＳＴ９１３）をタスク処理５４３（ＳＴ９２１）よりも優先するのは、受信側のワーカノード１１０が受信処理を完了しないと、送信側のワーカノード１１０が次の処理を実行することができず、分散情報処理装置１００全体としての処理効率が低下する恐れがあるためである。
【００８３】
ＳＴ９１３へ移行した場合、ワーカノード１１０は、通信部５６０によって受信処理５６１を実行する（ＳＴ９１３）。具体的には、通信部５６０が受信処理５６１を実行し、受信処理５６１によって受信したデータが計算部５４０へ伝送される。その後ＳＴ９３１へ移行する。
【００８４】
ＳＴ９２１へ移行した場合、ワーカノード１１０は、タスク処理５４３に必要な計算データ７０２を不揮発記憶部５５０から読み出す（ＳＴ９２１）。その後ＳＴ９２２へ移行して、タスク処理５４３を実行する（ＳＴ９２２）。その後ＳＴ９３１へ移行する。
【００８５】
ＳＴ９３１において、ワーカノード１１０は、ＳＴ９１３で受信したデータ又はＳＴ９２２におけるタスク処理５４３の計算結果のデータを、不揮発記憶部５５０に書き込む（ＳＴ９３１）。
【００８６】
以上、本発明の第１実施形態の分散情報処理装置１００の構成、マスタノード１０１の構成、ワーカノード１１０の構成及びワーカノード１１０の動作の例について説明してきた。以下では、分散情報処理装置１００全体の動作、通信方式及び動作周期Ｔｂを決定するために不可欠な動作周期決定手段（周期決定処理５４２）について説明する。
【００８７】
（システム動作）
分散情報処理装置１００の動作を図１０〜図１４を用いて説明する。
【００８８】
図１０は、本発明の第１実施形態の分散情報処理装置１００の動作を示すフローチャートである。分散情報処理装置１００は、図１０に示すＳＴ１００１〜ＳＴ１００４の４ステップによって分散情報処理を実行する。
【００８９】
まずＳＴ１００１において、分散情報処理装置１００は、同期を形成する（ＳＴ１００１）。具体的には、マスタノード１０１と各ワーカノード１１０間で通信タイミングを合わせるための同期を実行する。すなわち各ワーカノード１１０の動作周期Ｔｂを、マスタノード１０１のマスタ基準周期Ｔｍの整数比（例えば２のべき乗倍）で同期させる。なお、その他の既知の方法によって同期させてもよい。
【００９０】
図１１は、本発明の第１実施形態の分散情報処理装置１００の同期形成の動作を示す図である。
【００９１】
マスタノード１０１は、各ワーカノード１１０に対して定期的に同期基準信号１１０１をブロードキャストする。同期に成功したワーカノード１１０（図１１ではワーカノード１１０−ａ）は、同期完了通知１１０２をマスタノード１０１に送信する。
【００９２】
なお、同期完了通知１１０２には、各ワーカノード１１０を一意に識別するためのワーカＩＤ情報が含まれる。そのため、マスタノード１０１は、同期完了通知１１０２に含まれるワーカＩＤ情報を管理ワーカＩＤ情報４０６として保持することにより、管理下のワーカノード１１０を把握することができる。
【００９３】
次にＳＴ１００２において、分散情報処理装置１００は、プログラム分配を実行する（ＳＴ１００２）。具体的には、マスタノード１０１が、同期に成功した各ワーカノード１１０に、各々のワーカノード１１０が実行するワーカプログラムコード４０２を分配する。
【００９４】
図１２は、本発明の第１実施形態の分散情報処理装置１００のプログラム分配の動作を示す図である。
【００９５】
マスタノード１０１は、同期に成功した各ワーカノード１１０に対し、プログラム送信１２０１をブロードキャストすることによって、一斉にワーカプログラムコード４０２を分配する。プログラムを受信したワーカノード１１０は、受信したプログラムをワーカプログラムコード７０１として保持する。
【００９６】
その後ＳＴ１００３において、分散情報処理装置１００は分散計算を実行する（ＳＴ１００３）。
【００９７】
図１３は、本発明の第１実施形態の分散情報処理装置１００の分散計算の動作を示す図である。
【００９８】
ＳＴ１００２においてプログラムを受信したワーカノード１１０（図１３ではワーカノード１１０−ａ）は、マスタノード１０１にタスク要求１３０１を送信する。タスク要求１３０１には、ワーカノード１１０−ａの自己動作周期情報７０３が付与されている。
【００９９】
マスタノード１０１は、受信したタスク要求１３０１に付与された自己動作周期情報７０３に示される動作周期Ｔｂの情報に基づいて、割り当てるべきタスクを決定する。具体的にはタスクテーブル４０７に格納された各タスクの大きさ情報等を参照し、動作周期Ｔｂが小さいほど大きなタスクを割り当てる。これにより、分散情報処理の処理効率を高めることができる。その後マスタノード１０１は、決定されたタスク１３０２をワーカノード１１０−ａに送信する。送信されるデータは、タスク１３０２の処理に用いられる入力データ４０３も含む。
【０１００】
タスク処理を完了したワーカノード１１０（図１３ではワーカノード１１０−ｂ）は、マスタノード１０１にタスク完了通知１３０３（及び次のタスク要求）を送信する。そうすると、マスタノード１０１は、ワーカノード１１０−ｂに次のタスク１３０４を送信する。
【０１０１】
なお、タスク１３０４が、ワーカノード１１０−ａ、１１０−ｃによるタスク処理の結果データに対する処理である場合、ワーカノード１１０−ｂは、ワーカノード１１０−ａとワーカノード１１０−ｃのそれぞれに対してデータ要求１３０５、１３０６を送信し、タスク１３０４の処理に必要なデータ１３１０、１３１１を受け取った後にタスク１３０４の処理を実行する。
【０１０２】
その後ＳＴ１００４において、分散情報処理装置１００は結果集約を実行する（ＳＴ１００４）。
【０１０３】
図１４は、本発明の第１実施形態の分散情報処理装置１００の結果集約の動作を示す図である。
【０１０４】
マスタノード１０１は、計算結果データを保有しているワーカノード１１０（図１４ではワーカノード１１０−ｂ）に計算結果要求１４０１を送信し、計算結果１４０２を受け取る。
【０１０５】
なお、分散情報処理では、最終的な計算結果データが複数のワーカノード１１０に部分計算結果データとして分散して格納されている場合がある。この場合、マスタノード１０１は、部分計算結果データが格納されている全てのワーカノード１１０から部分計算結果データを集めて結合することによって、最終的な計算結果データを得る。
【０１０６】
（通信方式）
前述したように、分散情報処理では、ノード間通信が処理性能上のボトルネックとなる。そのため、できる限り通信レートを大きくすることが望ましい。なお、本発明の第１実施形態の各ワーカノード１１０の通信レートは、各ワーカノード１１０の発電状況の影響を大きく受ける。なぜなら、各ワーカノード１１０の最大通信レートは、最大通信頻度（すなわち動作周期Ｔｂ）に依存するとともに、動作周期Ｔｂは発電状況の影響を受けるためである。
【０１０７】
そこで、本発明の第１実施形態の分散情報処理装置１００が採用する通信方式では、各ワーカノード１１０は、自己の発電状況を考慮した上で通信状態へ遷移する周期（すなわち動作周期Ｔｂ）を設定する。また、ノード間通信を実行する二つのワーカノード１１０の間では、動作周期Ｔｂが大きい方のワーカノード１１０に合わせて通信レートを設定する。これにより、できる限り高い通信レートでのノード間通信が可能となる。
【０１０８】
図１５は、本発明の第１実施形態の分散情報処理装置１００の通信方式の例を説明するための図である。
【０１０９】
本発明の第１実施形態の分散情報処理装置１００では、各ワーカノード１１０は、通信頻度（すなわち動作周期Ｔｂ）を、マスタ基準周期Ｔｍの２のべき乗（…、１/４、１/２、１、２、…）倍とする通信方式を採用する。
【０１１０】
各ワーカノード１１０は、このように動作周期Ｔｂを設定することによって、自己の発電状況に応じてできる限り通信レートを高く設定しつつ、通信相手のワーカノード１１０を発見し易くすることができる。なお、動作周期Ｔｂを変更するプロトコルについては、センサネットの分野において多数の方式があるため、ここでは説明を省略する。
【０１１１】
（動作周期決定手段（周期決定処理５４２））
ワーカノード１１０は、自己の発電状況において安定に動作可能な動作周期を予測し、適切な動作周期Ｔｂを決定することによって、自己の動作周期Ｔｂを修正（変更）する動作周期決定手段を有する。以下、図１６、図１７及び図１８を用いて詳細に説明する。
【０１１２】
本発明の第１実施形態の分散情報処理装置１００では、電源残量ではなく、電源残量の傾き（電源残量の単位時間当たりの変化量）に基づいて動作周期Ｔｂを決定する。電源残量による制御では、動作周期Ｔｂの制御幅が蓄電部５１２の容量の大きさに依存する。そのため、小容量の蓄電部５１２では動作周期Ｔｂの制御幅を大きくとれない。これに対し、電源残量の傾きによる制御では、動作周期Ｔｂの制御幅は蓄電部５１２の容量の大きさに依存しない。そのため、小容量の蓄電部５１２であっても動作周期Ｔｂの制御幅を大きくとることができ、柔軟な通信レートを設定できる。
【０１１３】
図１６は、本発明の第１実施形態の動作周期決定手段を説明する図である。
【０１１４】
図１６では、電源残量を指標として動作周期Ｔｂを決定する方式１（従来の方式、図１６の上部）と、電源残量の傾きを指標として動作周期Ｔｂを決定する方式２（本発明の第１実施形態の動作周期決定手段、図１６の下部）とを示している。
【０１１５】
なお、ウェイクアップ期間Ｔｗがスリープ期間Ｔｓに対して非常に小さいものとする。また、ワーカノード１１０が一度のウェイクアップ期間Ｔｗに消費する電力量を最低動作電力量Ｅｔｈ１とする。さらに、方式２ではスリープ基準電力量Ｅｔｈ２をゼロとする。
【０１１６】
方式１では、例えば電源残量Ｅが（２×Ｅｔｈ１）＞Ｅ≧Ｅｔｈ１である場合、（動作周期Ｔｂ＝マスタ基準周期Ｔｍとなる。また、例えば電源残量Ｅが（３×Ｅｔｈ１）＞Ｅ≧（２×Ｅｔｈ１）である場合、Ｔｂ＝Ｔｍ／２となる。方式１の電源残量Ｅの遷移をＧ１６１０として示している。
【０１１７】
一方、方式２では、電源残量Ｅがマスタ基準周期Ｔｍで示される期間（すなわちＴ１６０１からＴ１６０２の期間）に例えばＥｔｈ１増加した場合、Ｔｂ＝Ｔｍとなる。同期間に例えば２×Ｅｔｈ１増加した場合、Ｔｂ＝Ｔｍ／２となる。方式２の電源残量Ｅの遷移をＧ１６２０として示している。
【０１１８】
さらに、発電部５１１の発電電力Ｐは時間と共に変化し、時刻Ｔ１６０１から時刻Ｔ１６０２の期間はＰ＝Ｐ０（Ｐ０は発電電力の基準値）であり、時刻Ｔ１６０２から時刻Ｔ１６０４の期間は発電状況が２倍良好となってＰ＝２Ｐ０であり、時刻Ｔ１６０４以降では発電状況がさらに２倍良好となってＰ＝４Ｐ０であるとする。
【０１１９】
方式１では、時刻Ｔ１６０２のウェイクアップ期間ＴｗではＴｂ＝Ｔｍのままである。しかしながら、その後発電電力ＰがＰ＝２Ｐ０となり、時刻Ｔ１６０３では電源残量Ｅが２×Ｅｔｈ１に到達する。そのため、時刻Ｔ１６０３のウェイクアップ期間Ｔｗでは、Ｔｂ＝Ｔｍ／２に修正する。さらに、時刻Ｔ１６０４以降の期間では、発電電力Ｐ＝４Ｐ０となり、時刻Ｔ１６０５では電源残量Ｅが３×Ｅｔｈ１に到達する。そのため、時刻Ｔ１６０５のウェイクアップ期間Ｔｗでは、Ｔｂ＝Ｔｍ／３に修正する。なお、時刻Ｔ１６０６では、電源残量Ｅが４×Ｅｔｈ１に到達する。そのため、時刻Ｔ１６０６のウェイクアップ期間Ｔｗでは、Ｔｂ＝Ｔｍ／４に修正する。
【０１２０】
一方、方式２では、時刻Ｔ１６０２のウェイクアップ期間ＴｗではＴｂ＝Ｔｍのままである。しかしながら、その後発電電力ＰがＰ＝２Ｐ０となり、時刻Ｔ１６０３では電源残量ＥがＴｍ期間に２×Ｅｔｈ１増加する。そのため、時刻Ｔ１６０３のウェイクアップ期間Ｔｗでは、Ｔｂ＝Ｔｍ／２に修正する。その後、図８のＳＴ８１１（電源残量調整処理）により、電源残量Ｅをスリープ基準電力量Ｅｔｈ２（すなわちゼロ）までリセットする。さらに、時刻Ｔ１６０４以降の期間では、発電電力Ｐ＝４Ｐ０となり、電源残量ＥがＴｍ期間に４×Ｅｔｈ１増加する。そのため、時刻Ｔ１６０５のウェイクアップ期間Ｔｗでは、Ｔｂ＝Ｔｍ／４に修正する。その後、図８のＳＴ８１１により、電源残量Ｅをスリープ基準電力量Ｅｔｈ２までリセットする。
【０１２１】
以上に示すように、方式１では動作周期ＴｂをＴｍ／４に設定するために、蓄電部５１２の容量が４×Ｅｔｈ１必要である。一方、方式２では蓄電部５１２の容量は２×Ｅｔｈ１あればよい。すなわち方式２によれば、蓄電部５１２が小容量であっても動作周期Ｔｂの制御幅を十分にとることができ、柔軟な通信レート（適切な動作周期Ｔｂ）を設定できる。
【０１２２】
図１７は、本発明の第１実施形態の電源残量情報５０１を取得するタイミングを示す図である。
【０１２３】
動作周期決定手段は、スリープ期間Ｔｓに移行する時点の時刻ｔ２における電源残量Ｅ［ｔ２］と、ウェイクアップ期間Ｔｗに移行する時点の時刻ｔ３における電源残量Ｅ［ｔ３］とを取得する。各々の取得タイミングは、それぞれ図８のＳＴ８０２、ＳＴ８０６に対応する。そうすると、電源残量の傾き値ａ（以下、単に「傾き値ａ」という。）は、式（１）によって算出することができる。
【０１２４】
【数１】
0005709001.tif 000002
【０１２５】
次に動作周期決定手段は、算出された傾き値ａに対し、式（２）に示す条件を満たす整数ｎを求める。なお、Ｃｏｎｓｔは０以上の任意定数である。
【０１２６】
【数２】
0005709001.tif 000003
【０１２７】
その後、動作周期決定手段は、求められたｎに基づいて、式（３）によって傾き値ａを補正した傾き値ｂを算出する。
【０１２８】
【数３】
0005709001.tif 000004
【０１２９】
以上のように、動作周期決定手段は、傾き値ａを補正した傾き値ｂを算出することにより、ワーカノード１１０が発電状況の変化に対して安定して動作することを可能とする。この理由について図１８を用いて説明する。
【０１３０】
図１８は、本発明の第１実施形態の電源残量の傾き値ａ及び補正後の傾き値ｂと割当て動作周期Ｔｂとの関係を示す図である。
【０１３１】
図１８に示す例では、傾き値ａの直線が領域１８０１にある場合は傾き値を２-1、領域１８０２にある場合は傾き値を２0、領域１８０３にある場合は傾き値を２1に補正する、すなわち算出された傾き値ａを、過小評価した傾き値ｂに補正することを示している。さらに、補正後の傾き値２-1、２0、２1、２2に対して、動作周期Ｔｂとして２Ｔｍ、Ｔｍ、Ｔｍ／２、Ｔｍ／４をそれぞれ対応させて割り当てることを示している。
【０１３２】
ワーカノード１１０は、スリープ期間Ｔｓの終了時に所定電力残量１８１０（例えば最低動作電力量Ｅｔｈ１）以上の電力量が蓄積されるように動作周期Ｔｂを決定する。なぜなら、次のウェイクアップ期間Ｔｗまでに最低動作電力量Ｅｔｈ１より小さな電力量しか蓄積されていない場合、ワーカノード１１０は動作することができないからである。
【０１３３】
しかしながら、太陽光等の自然エネルギーによる発電電力は時間経過と共に変化する。そのため、傾き値ａによって決定される動作周期Ｔｂを用いた場合、時間経過と共に発電電力量が低下した場合に、スリープ期間Ｔｓの終了時に所定電力残量１８１０が蓄積されない可能性がある。そこで、傾き値ａがＣｏｎｓｔの割合だけ過小評価されるよう補正する。
【０１３４】
これにより、スリープ期間Ｔｓ中に発電電力量が低下し、傾き値ａがおよそＣｏｎｓｔの割合だけ小さくなっても、次のウェイクアップ期間Ｔｗまでに所定電力残量１８１０以上の電力量を蓄積できる。そのため、次のウェイクアップ期間Ｔｗにおける動作が可能となる。すなわちワーカノード１１０は、発電状況の変化に対して安定に動作することが可能となる。
【０１３５】
このように、傾き値ａではなく、傾き値ａを補正した傾き値ｂに対して動作周期Ｔｂを割り当てることによって、発電状況の変化に対して安定に動作可能な動作周期Ｔｂを設定できる。なお、図１８は、傾き値が１の場合に割当て動作周期がＴｍになるように規格化した例を示している。
【０１３６】
図１９は、本発明の第１実施形態の周期決定テーブル７０４の一例を示す図である。周期決定テーブル７０４は、前述のように、周期決定処理５４２によって参照されるテーブルである。
【０１３７】
図１９に示す周期決定テーブル７０４では、Ｃｏｎｓｔ＝０．２の場合における傾き値ａと、動作周期Ｔｂとの対応関係を示す情報が格納される。周期決定処理５４２では、傾き値ａを算出するとともに、この周期決定テーブル７０４を参照し、傾き値ａに対応する動作周期Ｔｂを決定する（図８のＳＴ８０４の動作周期修正）。
【０１３８】
例えば傾き値ａ＝１の場合、周期決定テーブル７０４において１．２＞ａ（＝１）＞０．６であるので、動作周期Ｔｂを２Ｔｍとして決定する。
【０１３９】
以上に示した動作周期決定手段により、小出力な発電部５１１と小容量の蓄電部５１２とを備えたワーカノード１１０において、発電状況に応じた適切な動作周期Ｔｂを設定する。これにより、高い通信レートでノード間通信が可能となり、高速な分散情報処理を実現することができる。
【０１４０】
以上に示した本発明の第１実施形態において、電源残量の単位時間当たりの変化量は発電状況の影響を受ける指標であって、蓄電部５１２の容量に依存しない指標である。そのため、通信レートの制御幅が小さくなる問題を回避することができる。また、発電部５１１が例えば太陽光発電等によって発電する場合には、発電状況の時間的変化が穏やかである。そのため、通信レートが不安定となる問題も回避することができる。
【０１４１】
また、各ワーカノード１１０は、自己の蓄電部５１２に蓄電される電力の変化を示す情報（ここでは傾き値ａ）に基づいて自己の動作周期Ｔｂを動的に変化させても、他のワーカノード１１０との同期を維持することが可能となる。そのため、各ワーカノード１１０の処理性能を引き出すことができる。
【０１４２】
（第２実施形態）
第２実施形態では、前述の第１実施形態よりもさらに少容量の蓄電部５１２を備えた分散情報処理装置２００の例を説明する。
【０１４３】
図２０Ａは、本発明の第２実施形態の動作周期決定手段の前提としての第１実施形態の動作周期決定手段を説明する図である。ここでは、蓄電部５１２の容量が最低動作電力量Ｅｔｈ１の２倍以下程度である場合において、前述の第１実施形態の動作周期決定手段を適用した例を示している。
【０１４４】
図２０Ａに示すように、スリープ期間Ｔｓの途中で電源残量が１００％になり上限に達した場合、前述の第１実施形態の動作周期決定手段では、適切な傾き値が算出できない。算出される傾き値２００１が、本来の傾き値２００２と大きく異なるためである。
【０１４５】
図２０Ｂは、本発明の第２実施形態の動作周期決定手段を説明する図である。本発明の第２実施形態の動作周期決定手段は、以下に示す方法によって適切な傾き値を算出する。
【０１４６】
すなわち本発明の第２実施形態の動作周期決定手段では、電源残量の傾きを直接算出せず、予め設定された計測開始電源残量Ｅｔｈ３から計測終了電源残量Ｅｔｈ４までの充電に要した充電時間Ｔｃｈｇを計測し、計測された充電時間Ｔｃｈｇに基づいて動作周期Ｔｂを決定する。
【０１４７】
これにより、蓄電部５１２の容量が最低動作電力量Ｅｔｈ１の２倍以下程度という小容量である場合においても、適切な動作周期Ｔｂを設定でき、できるだけ高い通信レートを実現できる。
【０１４８】
図２１は、本発明の第２実施形態の分散情報処理装置２００の全体構成例を示す図である。なお、以下では、前述の第１の実施形態（図１参照）と同様の機能を果たす部分には同一の符号を付して重複する説明を適宜省略する。
【０１４９】
図２１に示す分散情報処理装置２００では、各ワーカノード２１１０の構成及び動作周期決定手段が、図１に示す分散情報処理装置１００と異なる。
【０１５０】
（ワーカノード構成）
図２２は、本発明の第２実施形態のワーカノード２１１０の構成例を示す図である。なお、以下では、前述の第１の実施形態（図５参照）と同様の機能を果たす部分には同一の符号を付して重複する説明を適宜省略する。
【０１５１】
ワーカノード２１１０は、電源部５１０、時計部５２０、計測部２２１０、電源制御部２２２０、計算部２２３０、不揮発記憶部２２４０、通信部５６０及びアンテナ部５７０を備える。
【０１５２】
計測部２２１０は、所定電力量を蓄積するまでの時間を計測するモジュールである。この計測部２２１０は、電源制御部２２２０から入力される動作開始トリガ２２０３をトリガとして、電源残量情報５０１、時刻情報５０２及び計測期間設定情報２２０１（計算部２２３０によって設定された計測開始電源残量Ｅｔｈ３と計測終了電源残量Ｅｔｈ４の情報）に基づいて、充電時間Ｔｃｈｇを計測し、計測された充電時間Ｔｃｈｇを示す充電時間情報２２０２を計算部２２３０に出力する。
【０１５３】
電源制御部２２２０は、電源残量情報５０１、時刻情報５０２及び制御情報５０３に基づいて、電源遮断領域５８０の電源のオン、オフを切り替えるモジュールである。この電源制御部２２２０は、計測部２２１０に動作開始トリガ２２０３を出力する点で、図５の電源制御部５３０と異なる。動作開始トリガ２２０３は、電源遮断領域５８０の電源をオフした時点で送られる。
【０１５４】
計算部２２３０は、計算プログラムを実行するためのモジュールであり、一般的にはＣＰＵで構成される。この計算部２２３０は、計測部２２１０に計測期間設定情報２２０１（計測開始電源残量Ｅｔｈ３と計測終了電源残量Ｅｔｈ４の情報）を設定する点と、周期決定処理２２３２の処理内容とにおいて、図５の計算部５４０と異なる。周期決定処理（動作周期決定手段）２２３２は、発電状況に関する指標（ここでは充電時間Ｔｃｈｇ）に基づいてワーカノード１１０の動作周期Ｔｂを決定する。
【０１５５】
この計算部２２３０は、マスタノード１０１からの指示等によって不揮発記憶部２２４０から計測期間設定情報２３０７（図２３参照）を読み出し、計測期間設定情報２２０１として計測部２２１０に設定する。
【０１５６】
不揮発記憶部２２４０は、電源をオフにしてもデータを保持できるモジュール、例えばＲＯＭ、ＦｅＲＡＭ、フラッシュメモリ等である。不揮発記憶部２２４０に記憶される各種情報については、図２３を用いて後述する。
【０１５７】
図２３は、本発明の第２実施形態のワーカノード２１１０の不揮発記憶部２２４０に記憶される情報を示す図である。なお、以下では、前述の第１の実施形態（図７参照）と同様の機能を果たす部分には同一の符号を付して重複する説明を適宜省略する。
【０１５８】
不揮発記憶部２２４０は、ＲＡＭ部２３００と、ＲＯＭ部７５０とを有する。
【０１５９】
ＲＡＭ部２３００は、周期決定テーブル２３０４と計測期間設定情報２３０７とを有する点において、図５のＲＡＭ部７００と異なる。
【０１６０】
周期決定テーブル２３０４は、周期決定処理２２３２によって参照されるテーブルである。周期決定テーブル２３０４については、図２６を用いて詳細に後述する。
【０１６１】
計測期間設定情報２３０７は、計測部２２１０による計測期間の設定情報である。具体的には、計測開始電源残量Ｅｔｈ３と計測終了電源残量Ｅｔｈ４の情報である。この計測期間設定情報２３０７は、計測期間設定情報２２０１として計測部２２１０に送られる。
【０１６２】
図２４は、本発明の第２実施形態のワーカノード２１１０の動作を示すフローチャートである。なお、以下では、前述の第１の実施形態（図８参照）と同様の機能を果たす部分には同一の符号を付して重複する説明を適宜省略する。
【０１６３】
図２４に示すフローチャートは、ＳＴ２４０１（計測処理）が追加された点と、ＳＴ２４０４（動作周期修正）の処理内容とにおいて、図８のフローチャートと異なる。以下、これら２点について説明する。なお、図２４では、ＳＴ８０６、ＳＴ８０７及びＳＴ８１１が省略されているが、これらの処理を実行してもよい。
【０１６４】
ＳＴ２４０１では、ワーカノード２１１０は、動作開始トリガ２２０３をトリガとして充電時間Ｔｃｈｇを計測する（ＳＴ２４０１）。このＳＴ２４０１は、スリープ期間Ｔｓ中の動作である。ＳＴ２４０１の詳細については図２５を用いて後述する。
【０１６５】
ＳＴ２４０４では、ワーカノード２１１０は、周期決定処理２２３２を実行し、自己の動作周期Ｔｂを修正する（ＳＴ２４０４）。周期決定処理２２３２については詳細に後述する。
【０１６６】
図２５は、本発明の第２実施形態のワーカノード２１１０の計測処理を示すフローチャートである。ここでは、図２４のＳＴ２４０１の詳細について説明する。
【０１６７】
まずＳＴ２５０１において、ワーカノード２１１０は、電源残量情報５０１（電源残量Ｅ）を取得し、取得された電源残量Ｅと、計測開始電源残量Ｅｔｈ３とを比較する（ＳＴ２５０１）。Ｅｔｈ３＜Ｅである場合（ＳＴ２５０１でＹｅｓ）、ＳＴ２５０２へ移行する。一方、Ｅｔｈ３≧Ｅである場合（ＳＴ２５０１でＮｏ）、ＳＴ２５０３へ移行する。
【０１６８】
ＳＴ２５０２へ移行した場合、ワーカノード２１１０は、電源残量Ｅが計測開始電源残量Ｅｔｈ３以下となるまで、電力を消費する電源残量の調整処理を実行する（ＳＴ２５０２）。ＳＴ２５０２は、スリープ期間Ｔｓ中に計測開始電源残量Ｅｔｈ３から計測終了電源残量Ｅｔｈ４までの充電時間Ｔｃｈｇを計測するために、一度電源残量Ｅを計測開始電源残量Ｅｔｈ３以下にする処理である。
【０１６９】
このＳＴ２５０２は、図２０ＢのＴ２０２０の期間の処理に相当する。電源残量Ｅが計測開始電源残量Ｅｔｈ３以下になると、ＳＴ２５０３へ移行する。なお、ＳＴ２５０２では、余った電力を単に捨てることによって消費してもよいし、タスク処理を可能な範囲で実行することによって消費してもよい。
【０１７０】
ＳＴ２５０３へ移行した場合、ワーカノード２１１０は、電源残量Ｅが計測開始電源残量Ｅｔｈ３以上となるまで待機する（ＳＴ２５０３）。電源残量Ｅが計測開始電源残量Ｅｔｈ３以上になると（ＳＴ２５０３でＹｅｓ）、ＳＴ２５０４へ移行し、充電時間Ｔｃｈｇの計測を開始する（ＳＴ２５０４）。
【０１７１】
その後ＳＴ２５０５において、ワーカノード２１１０は、電源残量Ｅが計測終了電源残量Ｅｔｈ４以上となるまで待機する（ＳＴ２５０５）。電源残量Ｅが計測終了電源残量Ｅｔｈ４以上になると（ＳＴ２５０５でＹｅｓ）、ＳＴ２５０６へ移行し、充電時間Ｔｃｈｇの計測を終了する（ＳＴ２５０６）。
【０１７２】
以上に示す処理により、計測部２２１０は、計測開始電源残量Ｅｔｈ３から計測終了電源残量Ｅｔｈ４までの充電に要した充電時間Ｔｃｈｇを計測する。
【０１７３】
ここで、図２４のＳＴ２４０４について詳細に説明する。ＳＴ２４０４では、ワーカノード２１１０は、周期決定処理（動作周期決定手段）２２３２によって、充電時間情報２２０２（充電時間Ｔｃｈｇ）に基づいて動作周期Ｔｂを決定する。
【０１７４】
具体的には、まず動作周期決定手段は、計測された充電時間Ｔｃｈｇに対し、式（４）に示す条件を満たす整数ｎを求める。なお、Ｃｏｎｓｔは０以上の任意定数である。
【０１７５】
【数４】
0005709001.tif 000005
【０１７６】
その後、動作周期決定手段は、求められたｎに基づいて、式（５）によって動作周期Ｔｂを算出する。
【０１７７】
【数５】
0005709001.tif 000006
【０１７８】
以上のように、動作周期決定手段は、充電時間ＴｃｈｇをＣｏｎｓｔの割合だけ過大評評価されるよう補正した値に基づいて動作周期Ｔｂを決定する。これにより、スリープ期間Ｔｓ中に発電電力量が低下し、充電時間ＴｃｈｇがおよそＣｏｎｓｔの割合だけ長くなっても、次のウェイクアップ期間Ｔｗまでに所定電力残量以上の電力量を蓄積できる。そのため、次のウェイクアップ期間Ｔｗにおける動作が可能となる。すなわちワーカノード１１０は、発電状況の変化に対して安定に動作することが可能となる。
【０１７９】
図２６は、本発明の第２実施形態の周期決定テーブル２３０４の一例を示す図である。周期決定テーブル２３０４は、前述のように、周期決定処理２２３２によって参照されるテーブルである。
【０１８０】
図２６に示す周期決定テーブル２３０４では、Ｃｏｎｓｔ＝０．２の場合における充電時間Ｔｃｈｇと、動作周期Ｔｂとの対応関係を示す情報が格納される。周期決定処理２２３２では、充電時間Ｔｃｈｇを算出するとともに、この周期決定テーブル２３０４を参照し、充電時間Ｔｃｈｇに対応する動作周期Ｔｂを決定する（図２４のＳＴ２４０４の動作周期修正）。なお、図２６では、Ｃｏｎｓｔ＝１且つ充電時間Ｔｃｈｇ＝１の場合に、Ｔｂ＝Ｔｍになるように規格化した例を示している。
【０１８１】
なお、上記説明においては、動作周期決定手段は計測された充電時間Ｔｃｈｇと周期決定テーブル２３０４とに基づいて動作周期Ｔｂを決定したが、この場合に限らない。例えば、充電時間Ｔｃｈｇと計測開始電源残量Ｅｔｈ３と計測終了電源残量Ｅｔｈ４とに基づいて式（６）によって電源残量の傾き値ａを算出し、算出された傾き値ａと図１９の周期決定テーブル７０４とに基づいて動作周期Ｔｂを決定してもよい。
【０１８２】
【数６】
0005709001.tif 000007
【０１８３】
以上に示した動作周期決定手段により、前述の第１実施形態よりもさらに小容量の蓄電部５１２を備えたワーカノード２１１０において、蓄電部５１２に蓄電される電力の変化を示す情報（ここでは充電時間Ｔｃｈｇ）に基づいて、適切な動作周期Ｔｂを設定する。これにより、高い通信レートでノード間通信が可能となり、高速な分散情報処理を実現することができる。
【０１８４】
（第３実施形態）
第３実施形態では、前述の第１実施形態の分散情報処理装置１００に、高速にタスク処理を実行可能な集中処理モードを追加した分散情報処理装置３００の例を説明する。
【０１８５】
前述の第１実施形態の分散情報処理装置１００では、各ワーカノード１１０は、予め設定された動作周期Ｔｂ毎にウェイクアップ期間Ｔｗの間だけ処理を実行した（図６参照）。このような他のノードと同期するようなウェイクアップ期間Ｔｗを設定する形態は、ノード間通信を行う上では好ましい。
【０１８６】
しかしながら、タスク処理を実行する上では、電源残量Ｅが最低動作電力量Ｅｔｈ１以上となった段階でウェイクアップ期間Ｔｗに移行し、タスク処理を実行させる形態の方が、より早くタスク処理を完了することができ、効率的である。そこで、第３実施形態の分散情報処理装置３００では、高速にタスク処理を実行可能な集中処理モードを追加している。
【０１８７】
図２７は、本発明の第３実施形態のワーカノード２８１０の動作例を示す図である。本発明の第３実施形態のワーカノード２８１０（図２８参照）は、電源残量Ｅが最低動作電力量Ｅｔｈ１以上の大きさの閾値である動作開始電力量Ｅｔｈ５以上となった段階でウェイクアップ期間Ｔｗに移行する。
【０１８８】
このように電源残量Ｅが所定値以上になった段階で強制的にウェイクアップ期間Ｔｗに移行させる場合、前述の第１実施形態や第２実施形態のような動作周期Ｔｂを設定することができない。そのため、他のワーカノード２８１０に対して非同期の動作となり、ノード間通信ができない。しかしながら、ワーカノード２８１０は自身に割り当てられたタスク処理を高速に実行することができる。このような形態は、１つのタスク処理が非常に大きく、ノード間通信の発生頻度が低い分散情報処理に有効である。
【０１８９】
図２８は、本発明の第３実施形態の分散情報処理装置３００の全体構成例を示す図である。なお、以下では、前述の第１の実施形態（図１参照）と同様の機能を果たす部分には同一の符号を付して重複する説明を適宜省略する。
【０１９０】
図２８に示す分散情報処理装置３００では、各ワーカノード２８１０の構成及び動作が、図１に示す分散情報処理装置１００と異なる。
【０１９１】
（ワーカノード構成）
図２９は、本発明の第３実施形態のワーカノード２８１０の構成例を示す図である。なお、以下では、前述の第１の実施形態（図５参照）と同様の機能を果たす部分には同一の符号を付して重複する説明を適宜省略する。
【０１９２】
ワーカノード２８１０は、電源部５１０、時計部５２０、電源制御部２９３０、計算部２９４０、不揮発記憶部２９５０、通信部５６０及びアンテナ部５７０を備える。
【０１９３】
電源制御部２９３０は、集中処理モードの設定レジスタを備え、電源残量情報５０１、時刻情報５０２及び制御情報２９０３に基づいて、電源遮断領域５８０の電源のオン、オフを切り替えるモジュールである。制御情報２９０３は、前述の制御情報５０３に、集中処理モードの設定に関する情報である集中処理モード設定情報が追加された情報である。この電源制御部２９３０は、電源残量情報５０１と制御情報２９０３に含まれる集中処理モード設定情報とに基づいて、電源遮断領域５８０の電源をオンする集中処理モード向けの動作を有する点において、図５の電源制御部５３０と異なる。
【０１９４】
計算部２９４０は、計算プログラムを実行するためのモジュールであり、一般的にはＣＰＵで構成される。この計算部２９４０は、電源制御部２９３０に集中処理モード設定情報を送り、集中処理モードを制御する点において、図５の計算部５４０と異なる。この計算部２９４０は、毎起動時に不揮発記憶部２９５０の集中処理モードフラグ３００９を確認し、通常処理モードと集中動作モードとを切り替える。
【０１９５】
不揮発記憶部２９５０は、電源をオフにしてもデータを保持できるモジュール、例えばＲＯＭ、ＦｅＲＡＭ、フラッシュメモリ等である。不揮発記憶部２９５０に記憶される各種情報については、図３０を用いて後述する。
【０１９６】
図３０は、本発明の第３実施形態のワーカノード２８１０の不揮発記憶部２９５０に記憶される情報を示す図である。なお、以下では、前述の第１の実施形態（図７参照）と同様の機能を果たす部分には同一の符号を付して重複する説明を適宜省略する。
【０１９７】
不揮発記憶部２９５０は、ＲＡＭ部３０００と、ＲＯＭ部７５０とを有する。
【０１９８】
ＲＡＭ部３０００は、動作開始電力量情報３００８と集中処理モードフラグ３００９とを有する点において、図７のＲＡＭ部７００と異なる。
【０１９９】
動作開始電力量情報３００８は、ワーカノード２８１０が動作を開始する（すなわちウェイクアップ期間Ｔｗに移行する）ための電源残量Ｅの閾値を示す情報である。具体的には、図２７の動作開始電力量Ｅｔｈ５の情報である。
【０２００】
集中処理モードフラグ３００９は、集中処理モードか通常処理モードを示すフラグ情報、すなわち集中処理モード設定情報である。この集中処理モードフラグ３００９にオンが設定されている場合、集中処理モードである。一方、オフが設定されている場合、通常処理モードである。
【０２０１】
次にワーカノード２８１０の動作を図３１、図３２及び図３３を用いて説明する。
【０２０２】
図３１は、本発明の第３実施形態のワーカノード２８１０の通常処理モードにおける動作を示すフローチャートである。なお、以下では、前述の第１実施形態（図８参照）と同様の機能を果たす部分には同一の符号を付して重複する説明を適宜省略する。
【０２０３】
図３１に示すフローチャートは、ＳＴ３１０５（ノード処理実行）の処理内容と、ＳＴ３１０９（集中処理モードか否かによる分岐処理）が追加された点において、図８のフローチャートと異なる。以下、これら２点について説明する。
【０２０４】
ＳＴ３１０５では、ワーカノード２８１０は、ノード処理を実行する（ＳＴ３１０５）。ここでいうノード処理とは、通信処理（送信処理５６２及び受信処理５６１）やタスク処理５４３等である。ノード処理については図３２を用いて詳細に後述する。
【０２０５】
ＳＴ３１０９では、ワーカノード２８１０は、集中処理モードか否かを判定する（３１０９）。具体的には、ＳＴ３１０５において集中処理モードが設定されたか否かを判定する。集中処理モードである場合（３１０９でＹｅｓ）、通常処理モードの処理を終了し、集中処理モードの処理を開始する。集中処理モードの処理については図３３を用いて詳細に後述する。一方、集中処理モードでない場合（３１０９でＮｏ）、ＳＴ８０１へ戻って処理を繰り返す。
【０２０６】
図３２は、本発明の第３実施形態のワーカノード２８１０の通常処理モードにおけるノード処理を示すフローチャートである。ここでは、図３１のＳＴ３１０５で実行されるノード処理の詳細を説明する。なお、以下では、前述の第１実施形態（図９参照）と同様の機能を果たす部分には同一の符号を付して重複する説明を適宜省略する。
【０２０７】
図３２に示すフローチャートは、ＳＴ９２２（タスク処理）の後にＳＴ３２０１（タスク完了確認）及びＳＴ３２１１（集中処理モード設定処理）が追加された点において、図９のフローチャートと異なる。
【０２０８】
ＳＴ３２０１では、ワーカノード２８１０は、マスタノード１０１から割り当てられた全てのタスクの処理を完了したか否かを確認する（ＳＴ３２０１）。全てのタスクの処理が完了した場合（ＳＴ３２０１でＹｅｓ）、ＳＴ９３１へ移行する。一方、全てのタスクの処理が完了していない場合（ＳＴ３２０１でＮｏ）、ＳＴ３２１１へ移行する。
【０２０９】
ＳＴ３２１１へ移行した場合、ワーカノード２８１０は、当該ワーカノード２８１０を集中処理モードとして設定する（ＳＴ３２１１）。具体的には、計算部２９４０は、動作開始電力量情報３００８（動作開始電力量Ｅｔｈ５）及び集中処理モードを集中処理モードレジスタに設定するためのレジスタ設定信号を、集中処理モード設定情報として電源制御部２９３０に送る。さらに、不揮発記憶部２９５０の集中処理モードフラグ３００９をオンに書き換える。これにより、ワーカノード２８１０は、次の起動時から集中処理モードとして動作する。
【０２１０】
図３３は、本発明の第３実施形態のワーカノード２８１０の集中処理モードにおける動作を示すフローチャートである。なお、以下では、前述の第１実施形態（図９参照）と同様の機能を果たす部分には同一の符号を付して重複する説明を適宜省略する。
【０２１１】
まずＳＴ３３０１において、ワーカノード２８１０は、電源残量情報５０１を取得することによって電源残量Ｅを監視し、電源残量Ｅが動作開始電力量Ｅｔｈ５以上となるまで待機する（ＳＴ３３０１）。このＳＴ３３０１は、スリープ期間Ｔｓ中の動作である。
【０２１２】
電源残量Ｅが動作開始電力量Ｅｔｈ５以上となると（ＳＴ３３０１でＹｅｓ）、ワーカノード２８１０は、ＳＴ９２１（データ読出し）、ＳＴ９２２（タスク処理）及びＳＴ９３１（データ書込み）を順に実行し、ＳＴ３３０２へ移行する。
【０２１３】
ＳＴ３３０２では、ワーカノード２８１０は、マスタノード１０１から割り当てられた全てのタスクの処理を完了したか否かを確認する（ＳＴ３３０２）。全てのタスクの処理が完了した場合（ＳＴ３３０２でＹｅｓ）、ＳＴ３３０３へ移行する。一方、全てのタスクの処理が完了していない場合（ＳＴ３３０２でＮｏ）、ＳＴ３３０４へ移行する。
【０２１４】
ＳＴ３３０３へ移行した場合、ワーカノード２８１０は、集中処理モードを解除して通常処理モードを設定する（ＳＴ３３０３）。具体的には、計算部２９４０が、集中処理モードを解除する（すなわち通常処理モードを設定する）ためのレジスタ設定信号を電源制御部２９３０に送る。さらに、計算部２９４０は、不揮発記憶部２９５０の集中処理モードフラグ３００９をオフに書き換える。これにより、ワーカノード２８１０は次の起動時から通常処理モードとして動作する。
【０２１５】
ＳＴ３３０４へ移行した場合、ワーカノード２８１０は、スリープ処理を実行する（ＳＴ３３０４）。具体的には、まずスリープ期間Ｔｓに入る準備処理を実行する。すなわち計算部２９４０が、電源制御部２９３０へ制御情報５０３（最低動作電力量情報７０６、自己動作周期情報７０３及び動作完了情報）を送信する。次に電源制御部２９３０が、時刻情報５０２と制御情報５０３中の自己動作周期情報７０３（すなわち動作周期Ｔｂ）と、ウェイクアップ時刻設定レジスタに設定されている当回のウェイクアップ時刻情報とに基づいて、設定されている当回のウェイクアップ時刻より現在の時刻が進んでいる場合には、次回のウェイクアップ時刻を算出する。なお、次回のウェイクアップ時刻は、「（次回のウェイクアップ時刻）＝（当回のウェイクアップ時刻）＋（動作周期Ｔｂ）」によって算出される。その後、算出された次回のウェイクアップ時刻を、ウェイクアップ時刻設定レジスタに設定する。その後スリープ処理を実行し、スリープ処理が終わるとＳＴ３３０５へ移行する。
【０２１６】
ＳＴ３３０４に示すようにウェイクアップ時刻設定レジスタに設定されているウェイクアップ時刻を更新することによって、他のノードに対して非同期である集中処理モードから、他のノードに対して同期する通常処理モードにスムーズに移行することができる。
【０２１７】
その後ＳＴ３３０５では、ワーカノード２８１０は、通常処理モードか否かを判定する（３３０５）。具体的には、ＳＴ３３０３において集中処理モードが解除されているか否かを判定する。通常処理モードである場合（３３０５でＹｅｓ）、集中処理モードの処理を終了し、通常処理モードの処理を開始する。通常処理モードの処理については図３１を用いて前述した通りである。一方、通常処理モードでない場合（３１０９でＮｏ）、ＳＴ３３０１へ戻って処理を繰り返す。
【０２１８】
以上に示した第３実施形態によれば、分散情報処理装置３００が集中処理モードを備えることにより、前述の第１実施形態の分散情報処理装置１００よりも高速にタスク処理を実行することが可能となる。
【０２１９】
以上、本発明の各実施形態について説明したが、上記各実施形態は本発明の適用例の一つを示したものであり、本発明の技術的範囲を上記各実施形態の具体的構成に限定する趣旨ではない。本発明の要旨を逸脱しない範囲において種々変更可能である。
【符号の説明】
【０２２０】
１００    分散情報処理装置
１０１    マスタノード
１１０    ワーカノード（計算機）
２００    分散情報処理装置
３００    分散情報処理装置
５１０    電源部
５１１    発電部
５１２    蓄電部
５２０    時計部
５３０    電源制御部
５４０    計算部
５４２    周期決定処理
５４３    タスク処理
５５０    不揮発記憶部
５８０    電源遮断領域
７０４    周期決定テーブル
２１１０  ワーカノード
２２１０  計測部
２２２０  電源制御部
２２３０  計算部
２２３２  周期決定処理
２２４０  不揮発記憶部
２３０４  周期決定テーブル
２８１０  ワーカノード
２９３０  電源制御部
２９４０  計算部
【図３】
0005709001.tif 000008
【図４】
0005709001.tif 000009
【図５】
0005709001.tif 000010
【図８】
0005709001.tif 000011
【図９】
0005709001.tif 000012
【図１０】
0005709001.tif 000013
【図１１】
0005709001.tif 000014
【図１２】
0005709001.tif 000015
【図１３】
0005709001.tif 000016
【図１６】
0005709001.tif 000017
【図１９】
0005709001.tif 000018
【図２０Ａ】
0005709001.tif 000019
【図２０Ｂ】
0005709001.tif 000020
【図２１】
0005709001.tif 000021
【図２２】
0005709001.tif 000022
【図２３】
0005709001.tif 000023
【図２４】
0005709001.tif 000024
【図２５】
0005709001.tif 000025
【図２８】
0005709001.tif 000026
【図２９】
0005709001.tif 000027
【図３０】
0005709001.tif 000028
【図３１】
0005709001.tif 000029
【図３２】
0005709001.tif 000030
【図３３】
0005709001.tif 000031
【図１】
0005709001.tif 000032
【図２】
0005709001.tif 000033
【図６】
0005709001.tif 000034
【図７】
0005709001.tif 000035
【図１４】
0005709001.tif 000036
【図１５】
0005709001.tif 000037
【図１７】
0005709001.tif 000038
【図１８】
0005709001.tif 000039
【図２６】
0005709001.tif 000040
【図２７】
0005709001.tif 000041