(57)【特許請求の範囲】
【請求項１】
複数の計算機とそれらを接続するメッセージ転送用のネットワークとを有し、
各計算機は、
プロセッサと、
上記ネットワークからメッセージを受信しプロセッサに転送するかもしくは該プロセッサから供給された他の計算機宛のメッセージを該ネットワークに転送するための通信網監視装置を有し、
該プロセッサは、プログラムの実行終了後に、プログラムを実行する実行状態からプログラムの実行要求を待つ待機状態に遷移し、待機状態が所定の期間経過したときに、少なくとも一部の回路が休止する休眠状態へ遷移するように構成され、
上記通信網監視装置は、
該プロセッサがいずれの状態にあるかに依らないで他の計算機から該ネットワークを経由して転送されたメッセージを受信する手段と、
プロセッサが休眠状態にあるときに該計算機に宛てた処理を要求するメッセージを該受信手段が受信したことに応答して、上記プロセッサが休眠状態にあることを通知するメッセージを生成する手段と、
生成されたメッセージを該ネットワークを介して該受信されたメッセージの送信元の計算機に送信する手段と、
プロセッサが休眠状態にあるときに該計算機に宛てた起動要求メッセージを該受信手段が受信したことに応答して、待機状態になるように上記プロセッサを起動する手段と、
該プロセッサが待機状態にあるとき該計算機による処理を要求するメッセージを該受信手段が受信したことに応答して、その処理要求を該プロセッサに通知する手段とを有するマルチプロセッサシステム。
【請求項２】
少なくとも一つの制御計算機と、複数の計算機と、それらを接続するメッセージ転送用のネットワークとを有し、
該複数の計算機の各々は、プロセッサと、上記ネットワークからメッセージを受信しプロセッサに転送するかもしくは該プロセッサから供給された他の計算機宛のメッセージを該ネットワークに転送するための通信網監視装置を有し、
該プロセッサは、プログラムの実行終了後に、プログラムを実行する実行状態から、プログラムの実行要求を待つ待機状態に遷移し、待機状態が所定の期間経過したときに、少なくとも一部の回路が休止する休眠状態へ遷移するように構成され、
該制御計算機は、
上記複数の計算機のいずれかから受信したメッセージが処理の実行を要求するとき、その処理を実行するに必要な数の計算機を上記複数の計算機から選択するようにプログラムされたプロセッサと、
上記選択された複数の計算機にその処理の実行を要求するメッセージを上記ネットワークを介して転送する通信網監視装置とを有し、
上記複数の計算機の各々内の上記通信網監視装置は、
その各計算機内のプロセッサがいずれの状態にあるかに依らないで該制御計算機もしくは該複数の計算機のうちの他の計算機から該ネットワークを経由してその各計算機に転送されたメッセージを受信する手段と、
該プロセッサが休眠状態にあるときに該制御計算機から転送された処理を要求するメッセージを該受信手段が受信したことに応答して、上記プロセッサが休眠状態にあることを通知するメッセージを生成する手段と、
生成されたメッセージを該ネットワークを介して該制御計算機に送信する手段と、
該プロセッサが休眠状態にあるときに該制御計算機から転送された起動要求メッセージを該受信手段が受信したことに応答して、待機状態になるようにその各計算機以内の上記プロセッサを起動する手段とを有し、
上記制御計算機は、該複数の計算機のいずれかから転送された、その計算機内のプロセッサが休眠状態にあることを示すメッセージを受信したときに、起動要求メッセージをその計算機に宛てて転送する手段を有し、
上記複数の計算機の各々内の上記通信網監視装置は、
その計算機内のプロセッサが待機状態になった後に該制御計算機から転送された処理の実行を要求するメッセージを該受信手段が受信したことに応答して、その処理の実行要求を該プロセッサに転送する手段をさらに有するマルチプロセッサシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、省エネルギーのためにその内部の一部の回路を停止する休眠状態に遷移可能に構成された複数の計算機を有し、その一つまたは複数がサービスを提供する計算機（サーバーと呼ばれる）として動作し、他の計算機がサービスを要求する計算機（クライアントと呼ばれる）として動作するクライアントサーバー型のマルチプロセッサシステムにおいて、クライアントがサーバーからサービスを受けるための所要時間を短縮する方法に関する。
【０００２】
【従来の技術】
従来の代表的なサーバークライアント型計算機システム（以下、第１の従来技術と呼ぶ）においては、サーバーは、実行すべき処理がない場合でも通常の稼働状態に維持され、クライアントからのサービス要求を監視している必要があった。しかし、他の従来のサーバークライアントシステム（以下第２の従来技術と呼ぶ）では、サーバーにおいて実行すべき処理がない場合には、サーバーを休眠状態におくことにより消費エネルギーを低減している。サーバーが停止しているときに、いずれかのクライアントがサービスを要求すると、サーバーを再起動する回路がサーバ内に設けられている。すなわち、サーバーが停止した状態で、いずれかのクライアントからサーバにサービス要求が送られると、サーバー内の起動回路がサーバーを起動し、この起動の完了後に、サーバーは、サービス要求を受け付け、クライアントに要求受け付けを通知した上で要求された処理するように構成されている。このクライアントでは、サービス要求が受け付けられたとの通知を受け取ったことを確認してサービス要求の発行処理を終了する。
【０００３】
上記第２の従来技術では、クライアントは一定時間以上サーバーからの応答がない場合に、サーバーが稼働していないあるいは低消費電力状態であると判断する。
【０００４】
【発明が解決しようとする課題】
一般に、サーバーが稼働している場合でも、サーバーからの応答が得られるまでの時間は、サーバーの処理負荷やネットワークトラフィックに依存して大きくばらつく。したがって、サーバーが稼働していない、あるいは低消費電力状態であるとクライアントが判断するためには、上記応答時間のばらつきを考慮して、サーバーからの応答を十分長い時間待つ必要がある。さらに、サーバーが休眠状態にある場合には、サーバーは起動されてからサービス要求の受け付けを示す応答を出すため、この応答をクライアントが確認できるまで従来より長い時間を要する。このため、クライアントはサービス要求を発行後、次の処理に移るまでに長い時間を要するという問題があった。
【０００５】
【課題を解決するための手段】
本発明では、各計算機は、プロセッサと、上記ネットワークからメッセージを受信し、そのプロセッサに転送するかもしくはそのプロセッサから供給された他の計算機宛のメッセージを該ネットワークに転送するための通信網監視装置を有し、
該プロセッサは、プログラムの実行終了後に、プログラムを実行する通常動作状態から、プログラムの実行要求を待つ待機状態に遷移し、待機状態が所定の期間経過したときに、少なくとも一部の回路が休止する休眠状態へ遷移するように構成され、
上記通信網監視装置は、
該プロセッサがいずれの状態にあるかに依らないで他の計算機から該ネットワークを経由して転送されたメッセージを受信する手段と、
該プロセッサが休眠状態にあるときに該計算機に宛てた処理を要求するメッセージを該受信手段が受信したことに応答して、上記プロセッサが休眠状態にあることを通知するメッセージを生成する手段と、
生成されたメッセージを該ネットワークを介して該受信されたメッセージの送信元の計算機に送信する手段と、
該プロセッサが休眠状態にあるときに該計算機に宛てた起動要求メッセージを該受信手段が受信したことに応答して、上記プロセッサが待機状態になるように上記プロセッサを起動する手段と、
該プロセッサが待機状態にあるとき、他の計算機が送信した、該計算機による処理を要求するメッセージを該受信手段が受信したことに応答して、その処理要求を該プロセッサに転送する手段とを有する。
【０００６】
さらに、本発明は、いずれかの計算機からのサービス要求を受け付け、その要求が指定する処理を実行する複数の計算機を選択するための制御計算機を有するシステムにも適用される。そこにおいては、制御計算機は、いずれかの計算機からのサービス要求を受け付けると、その旨を要求元の計算機に通知するとともに、そのサービス要求を実行するに必要な複数の計算機を選択し、それらの計算機に制御計算機からサービス要求で要求された処理の実行を指示するようにプログラムされている。この指示を受けた計算機の各々内の通信網監視装置には、その計算機内のプロセッサが休眠状態である場合に、制御計算機に休眠状態であることを通知する手段が設けられている。
【０００７】
制御計算機では、休眠状態であることを通知した計算機に起動要求メッセージを送り、その後に再度サービス要求が要求した処理の実行を指示するようにプログラムされている。この再度のサービス要求を受信した計算機内の通信網監視装置には、その計算機内のプロセッサが待機状態になった後にこの再度のサービス要求を受信した場合には、この要求をそのプロセッサに転送する手段を有する。
【０００８】
【発明の実施の形態】
以下、本発明に係るマルチプロセッサシステムを図面に示したいくつかの実施の形態を参照して説明する。なお、以下においては、同じ参照番号は同じもしくは類似のものを指す。
【０００９】
＜実施の形態１＞
図１に本発明によるマルチプロセッサシステムの一つの実施の形態の概略構成図を示す。このシステムは、計算機１０１、計算機間のデ−タ転送を可能とする通信ネットワ−ク１０６からなる。さらに計算機１０１は、プロセッサ１０２、メモリ１０３、通信網監視装置１０４により構成される。通信網監視装置１０４とプロセッサは割り込みを発行するための信号線１０５によって接続される。本実施の形態では、各計算機１０２は、他の計算機に対してサービス要求を発行するクライアントとして動作するとともに、他の計算機からのサービス要求を受け付け、サーバーとしても機能するようになっている。
【００１０】
図４に、本実施の形態における各プロセッサ１０２の状態遷移図を示す。各プロセッサ１０２の動作状態には通常動作状態２０１と休眠状態２０５の二つの状態がある。休眠状態２０５は動作クロックを停止し消費電力を低減した状態である。通常動作状態２０１は動作クロックが供給されてプロセッサ１０２が稼働している状態である。通常動作状態２０１にはサービス実行状態２０４、アイドル状態２０３の二つの状態がある。アイドル状態２０３とは実行中の処理がなく他プロセッサからのサービス要求を監視する管理プログラムだけが動作している状態を指す。サービス要求の実行終了後にアイドル状態２０３となり、その状態が一定時間経過したときに休眠状態２０５になる。アイドル状態２０３にあるときにサービス要求を受信したときにプロセッサ１０２はサービス実行状態に戻る。
【００１１】
プロセッサ１０２の通常動作状態２０１と休眠状態２０５の間の遷移は以下のような要因によって起こる。プロセッサ１０２は通常動作状態２０１においてスリーププログラムを実行することにより休眠状態２０５に移る。休眠状態２０５においてハードウェア割り込みがあると休眠状態を解除し待機状態に復帰する。休眠状態は、例えばプロセッサ１０２内のの論理回路（図示せず）の動作クロックを停止することによって実現される。このような、プロセッサの消費電力を削減する機能は例えば「ＶシリーズマイクロコンピュータＩ」第１６１頁−第１６４（丸善，１９８６）に詳しく述べられている。
【００１２】
このような状態を有するプロセッサの動作は図５に示すようになる。すなわち、プロセッサ１０２はサービス要求を実行した後、待機状態に入る。この状態では、アイドル時間カウンタ（図示せず）を起動し、一定時間Ｔを経過するのを待つ（ステップ３０２）。アイドルカウンタの計数値が一定時間を越えないうちに、他のプロセッサからサービス要求が受信した場合（ステップ３０３）、アイドル時間カウンタをリセットし（ステップ３０４）、このサービス要求を実行する（ステップ３０５）。こうして、再び、サービス実行状態に戻る。一方、他のプロセッサからサービス要求を受けることなくアイドル時間カウンタの計数値が一定値に達した場合に（ステップ３０３）、スリーププログラムを起動して休眠状態にはいる（ステップ３１１）。このような動作を繰り返す（ステップ３０１）ことにより、消費電力を低減する。
【００１３】
図２に通信ネットワーク１１０により交換されるメッセージの構成を示す。メッセージは、宛先アドレス１１０１、制御情報フィールド１１０２、送信元アドレス１１０３等を含む。制御情報フィールドは、メッセージがサービス要求を含むメッセージであるか再起動要求を含むメッセージであるか、あるいは一般のデータ転送のためのメッセージであるかといったメッセージの種別を示す。
【００１４】
通信網監視装置１０４は、常時通信ネットワ−ク１１０上のメッセージを監視する。この装置は、プロセッサ１０２が休眠状態にあるとき他計算機からのサービス要求メッセージを受信すると、メッセージの送り元に対して自分が休眠状態であることを知らせるメッセージを送り返す。また、他計算機からの起動要求メッセージを受信すると、プロセッサ１０２に対して信号線１０５を介して割り込みを発行して休眠状態を解除し待機状態に復帰させる。待機状態で他の計算機からサービス要求を受信すると、そのサービス要求をプロセッサ１０２に通知する。
【００１５】
図３に通信網監視装置１０４の構成を示す。通信網監視装置１０４は、ネットワーク上のメッセージを取り込む受信インタフェース部１０４４、受信したメッセージの宛先アドレスと自分のアドレスを比較して自プロセッサ宛のメッセージだけを選択的に取り込むアドレス比較部１０４３、制御情報フィールドがサービス要求または起動要求であることを識別する制御情報フィールド解析部１０４２、他のプロセッサに対して休眠状態であることを伝えるメッセージを送り出す応答メッセージ生成部１０４６、送信インタフェース部１０４５、プロセッサが稼働状態であるか、休眠状態であるかの区別を表すプロセッサ状態レジスタ１０４１からなる。
【００１６】
プロセッサ１０２が休眠状態のときにそれが属する計算機宛の何らかのメッセージを受信した場合、制御情報フィールド解析部１０４２は、そのメッセージの種類に依らないで応答メッセージ生成部１０４６を起動し、応答メッセージ生成部１０４６は、メッセージの送信元の計算機宛の、自プロセッサが休眠状態であることを知らせるメッセージを作成し、送信インタフェース部１０４５が通信ネットワーク１１０に送出する。したがって、上記受信されたメッセージがいずれかの計算機からのサービス要求を含む場合、この要求はすぐには実行されないが、サービス要求元の計算機は、従来より早期に、サービス要求をした計算機内のプロセッサが休眠状態にあることを知ることが出来る。
【００１７】
なお、この送信元の計算機は、このメッセージを受信すると、上記計算機に起動要求メッセージを送ることにより待機状態に遷移させ、その後にサービス要求を再度送出する。もっとも、この要求もとの計算機は、他の計算機に新たに同じサービス要求を送るようにしてもよい。とくに、先にサービス要求を送った上記計算機が待機状態時戻るのにかなりの時間を要すると思われる場合にそのようにサービス要求の送出先を変更することも有効である。
【００１８】
制御情報フィールド解析部１０４２は、プロセッサ１０２が休眠状態にあるときに、その計算機宛の上記サービス要求を受信した時点で、割り込み信号によってプロセッサ１０２に割り込みを発生させ、休眠状態を解除して通常の稼働状態に復帰させ、その後は他の計算機からのサービス要求を待機する状態にする。プロセッサが待機状態に復帰後、上記他の計算機から上記サービス要求が再度その待機状態になった計算機に転送された時点では、その計算機はこのサービス要求を図示しない信号線を介してプロセッサ１０２に転送し、処理させる。なお、プロセッサ状態レジスタ１０４１は、プロセッサ１０２が休眠状態に移るときにプロセッサによってセットされ、プロセッサ１０２が待機状態に復帰したときに、プロセッサ１０２によってリセットされる。
【００１９】
したがって、本実施の形態では、休眠状態にあるプロセッサを有する計算機にいずれかの他の計算機がサービス要求を発行した場合、そのサービス要求はすぐには処理されないが、要求先の計算機のプロセッサが休眠状態にあることをすぐに知ることが出来、再度サービス要求を出すことにより、今度は、その要求先の計算機において、その中のプロセッサの起動が完了した後にその要求は処理される。
【００２０】
＜実施の形態２＞
本実施の形態でのシステム構成は、図１に示すものと同じであるが、しかし、本実施の形態では、複数の計算機１０１の一つは、制御計算機であり、この制御計算機は、各計算機内のプロセッサの状態を管理し、これらの計算機のいずれかから発行された、他の計算機へのサービス要求を実行するための複数の計算機を、これらの計算機の中から選択し、選択された複数の計算機にこのサービス要求を転送する。本実施の形態では、制御計算機を含めて各計算機１０２は、他の計算機に対してサービス要求を発行するクライアントとして動作するとともに、他の計算機からのサービス要求を受け付け、サーバーとしても機能するようになっている点は実施の形態１の計算機と同じである。しかし、本実施の形態では、各計算機は他の計算機にサービス要求を発行する場合に、直接要求先の計算機にサービス要求を発行するのではなく、制御計算機にまず送付し、制御計算機がそのサービス要求を処理する計算機を選択し、そこにその要求を転送する点で実施の形態１と異なる。
【００２１】
本実施の形態では、制御計算機以外の計算機の通信網監視装置の構造は、実施の形態１で使用した図３のものと基本的には同じである。図７に本実施の形態における、制御計算機以外の計算機内のプロセッサの動作のフローチャートを示す。この図と図５との比較から分かるように、本実施の形態でのこれらの計算機内のプロセッサの動作（ステップ５０１から５０６、５１１）は、サービス要求が制御計算機のみから与えらる点と、したがって、そのプロセッサが休眠状態にあるときに、その計算機宛の何らかのメッセージを制御計算機から受信したときに、そのプロセッサが休眠状態であることを通知するメッセージをその制御計算機に転送する点と、サービス要求を処理したときに、制御計算機に実行終了を示すメッセージを送信する点でのみ実施の形態１と異なる。しかし、制御計算機内のプロセッサは、他の計算機内のプロセッサと異なり、前述のような休眠状態を有しない。したがって、この制御計算機内の通信網監視装置１０４は、図３の内、プロセッサ状態レジスタ１０４１、応答メッセージ生成部１０４６を有しない。
【００２２】
また、制御情報解析部１０４２は、基本的には、受信されたメッセージ内のアドレスに基づいて、アドレス比較部１０４３での判定によりこのメッセージが自己の計算機宛のメッセージあることがでも判明した場合には、そのメッセージ内の情報をその計算機内のプロセッサに転送することを行う。送信インタフェースは、プロセッサで生成されたメッセージをネットワーク１１０に送信するように動作する。すなわち、制御計算機内では、通信網管理装置１０４は、それが属する計算機内のプロセッサとネットワーク１１０との間でメッセージの中継をすることを基本的な機能としている。
【００２３】
図８に制御計算機の処理手順を示す。制御計算機は、ネットワーク１１０に接続されたいずれかの計算機から発信されたサービス要求およびサービス要求を処理中の計算機からのサービスの実行終了を伝えるメッセージの到着の何れかのイベントを待つ（６０１）。サービス要求を発信する計算機は、制御計算機に対して、たとえば、実行すべきプログラムの名称とその実行に必要なプロセッサ数Ｐを指定するサービス要求を含むメッセージを制御計算機宛てに送信する。このサービス要求を含むメッセージを制御計算機が受信したとき、制御計算機は、このメッセージの受信をサービス要求の要求元に通知するメッセージを直ちに送信する。さらに、制御計算機内のメモリ１０３にあらかじめ保持されたプロセッサ状態管理表からアイドル状態または休眠状態のプロセッサの数Ｉを判定し（６０５）、後者の数Ｉがそのサービスの実行に必要な、上記メッセージで指定されたプロセッサ数Ｐ以上の場合は、このサービス要求が実行可能と判断する（６０６）。図４にプロセッサ状態管理表を示す。プロセッサ状態管理表には、プロセッサ毎に、サービス実行状態、アイドルまたは休眠状態の別を記録する。アイドル状または休眠状態のプロセッサを有する計算機群の中からこのサービス要求を処理させるのに必要なＰ個の計算機を選択し（６０８）、選択されたＰ個の計算機に対して、そのサービス要求の実行を要求する（６０９）。
【００２４】
これらの計算機の内、休眠中のプロセッサを有する計算機においては、上記サービス要求を制御計算機から受信した時点で、実施の形態１と同様に、プロセッサが休眠中であることを示すメッセージを制御計算機に通知するメッセージを転送する。制御計算機は、この通知に応答して、これらの計算機に宛てて起動要求メッセージを送り、待機状態に遷移させる。さらに上記サービス要求を再度送ってこれらの計算機内のプロセッサによりこのサービス要求を実行させる。
【００２５】
制御計算機は、ステップ６０８で選択された複数の計算機の内、待機状態にあった計算機にサービス要求の実行を指示した時点で、その計算機内のプロセッサの状態を稼働状態とするように、プロセッサ状態管理表を更新する。さらに、上記選択された複数の計算機の内、休眠状態にあることを通知したプロセッサを有する計算機に対して起動要求メッセージを送り、上記サービス要求を再度転送したときに、そのプロセッサの状態をサービス実行状態になるように、プロセッサ状態管理表を更新する。
【００２６】
こうして、制御計算機以外の多数の計算機のプロセッサとして休眠状態になりうるものを使用しながら、制御計算機は、サービス要求を実行させる計算機内のプロセッサが休眠状態にある場合でも、その休眠状態にあるプロセッサを迅速に起動できる。
【００２７】
なお、制御計算機により選択された複数の計算機内のプロセッサでのサービスの実行が終了した時点では、それらの計算機内のプロセッサは、図３に示さない信号線路を介して送信インタフェースにサービスの実行終了を伝える、制御計算機宛てのメッセージを送出し、このインタフェースからネットワーク１１０にこれらのメッセージを送出する。これらのメッセージが制御計算機に転送されたとき、制御計算機はそれらの計算機に対するプロセッサ状態管理表を更新する。
【００２８】
本実施の形態では、各計算機は、そこでのサービス要求を処理した時点で、制御計算機にそのことを通知する。その計算機ではその通知の後に、待機状態になる。したがって、制御計算機はその計算機から実行終了を受け取った時点で、その計算機内のプロセッサが待機状態になったことを知ることが出来る。この計算機はその後一定時間が経過すると、休眠状態になる。しかし、本実施の形態では、その計算機が休眠状態になった時点では、その計算機からはその計算機が休眠状態になったことを制御計算機に通知はしていない。したがって、制御計算機は、サービス要求の実行の終了を通知した計算機内のプロセッサが、いつ休眠状態になったかを知らない。もっとも、サービス要求の実行を終了したプロセッサは、その後一定時間後に休眠状態になるので、制御計算機は、そのプロセッサが休眠状態になる時刻を予測できる。しかし、そのプロセッサが実際に休眠状態になる正確な時刻は、そのプロセッサが属する計算機に依存して少しは変動する。したがって、制御計算機は、サービス要求の実行の終了を通知した計算機内のプロセッサが、いつ休眠状態になったかを正確には予測できない。したがって、本実施の形態では、制御計算機は、各計算機のプロセッサの状態として、サービス実行状態とそれ以外の状態（アイドル状態または休眠状態）に分けて管理するようにしてある。
【００２９】
なお、図８のステップ６０６の判定の結果、サービス要求で要求された数Ｐのプロセッサが確保できなかった場合は、適当な方法でこのサービス要求を実行させればよい。例えば、制御計算機が実行待ちプログラムのキューにこのサービス要求が指定するプログラムとこのプログラムの実行に必要なプロセッサ台数Ｐを登録し、プロセッサ状態管理表に変更が生じ、この台数Ｐ以上のプロセッサが待機状態あるいは休眠状態になった時に改めて、このサービス要求を前述した方法で実行させる。
【００３０】
【発明の効果】
本発明のマルチプロセッサシステムでは、他の計算機に処理を要求した計算機は、要求先の計算機が休眠状態にある場合に、そのことを従来よりも短時間で知ることができ、それに基づいて、処理要求を再度の送出を早めることが出来る。
【図面の簡単な説明】
【図１】本発明によるマルチプロセッサシステムの第１の実施の形態の概略構成図。
【図２】図１の装置に使用する通信メッセージのフォーマットを示す図。
【図３】図１の装置に使用する通信網監視装置（１０４）概略ブロック図。
【図４】図１の装置に使用するプロセッサの状態遷移図。
【図５】図１の装置に使用するプロセッサの処理フロー図。
【図６】本発明によるマルチプロセッサシステムの第２の実施の形態で使用するプロセッサ状態管理表を示す図。
【図７】第２の実施の形態で使用するプロセッサの処理フロー図。
【図８】第２の実施の形態で使用する制御計算機の処理フロー図。
【図１】
0003601895.tif 000002
【図２】
0003601895.tif 000003
【図３】
0003601895.tif 000004
【図４】
0003601895.tif 000005
【図５】
0003601895.tif 000006
【図６】
0003601895.tif 000007
【図７】
0003601895.tif 000008
【図８】
0003601895.tif 000009