(57)【要約】【課題】プロセッサの消費電力を許容範囲に収めるソフトウェア処理システムを提供する。【解決手段】ソフトウェア処理システム１０００は、第１プロセッサ１１０がソフトウェア処理を実行する際に使用されるリソース量をソフトウェア処理ごとに計測する第１リソース量計測部１１１と、第１リソース量計測部１１１により計測されたリソース量に基づいてソフトウェア処理の実行により消費される消費電力をソフトウェア処理ごとに算出する第１消費電力算出部１１２と、第１消費電力算出部１１２により算出された消費電力に応じて、第１プロセッサ１１０により実行されているソフトウェア処理のうち少なくとも一つを、第２プロセッサ２１０に移行する第１ソフトウェア処理移動部１１３と、を備える。【選択図】図１
2010205200.tif 000002
【特許請求の範囲】
【請求項１】
第１プロセッサと第２プロセッサとを少なくとも含む、互いに通信可能な複数のプロセッサと、
前記第１プロセッサがソフトウェア処理を実行する際に使用されるリソース量を前記ソフトウェア処理ごとに計測する第１リソース量計測手段と、
前記第１リソース量計測手段により計測された前記リソース量に基づいて前記ソフトウェア処理の実行により消費される消費電力を前記ソフトウェア処理ごとに算出する第１消費電力算出手段と、
前記第１消費電力算出手段により算出された前記消費電力に応じて、前記第１プロセッサにより実行されている前記ソフトウェア処理のうち少なくとも一つを、前記第２プロセッサに移行する第１ソフトウェア処理移動手段と、
を備えることを特徴とするソフトウェア処理システム。
【請求項２】
請求項１に記載のソフトウェア処理システムであって、
前記第１リソース量計測手段は、前記リソース量として、前記ソフトウェア処理による前記第１プロセッサの使用量と、前記ソフトウェア処理に伴う前記第１プロセッサと前記第２プロセッサとの間の通信量と、を少なくとも計測し、
前記第１消費電力算出手段は、計測された前記第１プロセッサの使用量と前記通信量とに基づいて前記消費電力を算出することを特徴とするソフトウェア処理システム。
【請求項３】
請求項２に記載のソフトウェア処理システムであって、
ユーザから前記ソフトウェア処理に係る操作入力を受け付ける、または前記ユーザへ前記ソフトウェア処理に係る出力を行うユーザインターフェイス部を備え、
前記第１リソース量計測手段は、前記ソフトウェア処理による前記ユーザインターフェイス部の使用量を前記リソース量として更に計測し、
前記第１ソフトウェア処理移動手段は、算出された前記消費電力および計測された前記ユーザインターフェイス部の使用量に応じて、前記ソフトウェア処理を前記第１プロセッサから前記第２プロセッサに移行することを特徴とするソフトウェア処理システム。
【請求項４】
請求項３に記載のソフトウェア処理システムであって、
前記第１消費電力算出手段により算出された前記消費電力が第１の閾値を超えて、かつ前記第１リソース量計測手段により計測された前記ユーザインターフェイス部の使用量が第２の閾値に達しないとき、
前記第１ソフトウェア処理移動手段は、前記ソフトウェア処理を前記第１プロセッサから前記第２プロセッサに移行することを特徴とするソフトウェア処理システム。
【請求項５】
請求項１乃至４いずれかに記載のソフトウェア処理システムであって、
前記ソフトウェア処理は、アプリケーションプログラムを実行する処理であって、
前記第１ソフトウェア処理移動手段は、前記アプリケーションプログラムを前記第１プロセッサから前記第２プロセッサへ送出して実行させることを特徴とするソフトウェア処理システム。
【請求項６】
請求項１乃至４いずれかに記載のソフトウェア処理システムであって、
前記ソフトウェア処理は、仮想マシンを実現するプログラムを実行する処理であって、
前記第１ソフトウェア処理移動手段は、前記プログラムを前記第１プロセッサから前記第２プロセッサへ送出して実行させることを特徴とするソフトウェア処理システム。
【請求項７】
請求項１乃至６いずれかに記載のソフトウェア処理システムであって、
前記第２プロセッサが前記ソフトウェア処理を実行する際に使用するリソース量を前記ソフトウェア処理ごとに計測する第２リソース量計測手段と、
前記第２リソース量計測手段により計測された前記リソース量に基づいて前記ソフトウェア処理の実行により消費される消費電力を前記ソフトウェア処理ごとに算出する第２消費電力算出手段と、
前記第２消費電力算出手段により算出された前記消費電力に応じて、前記第２プロセッサから前記第１プロセッサに、前記第１ソフトウェア移動処理手段により移行された前記ソフトウェア処理を戻す第２ソフトウェア処理移動手段と、
を備えることを特徴とするソフトウェア処理システム。
【請求項８】
請求項７に記載のソフトウェア処理システムであって、
前記第１リソース量計測手段と前記第２リソース量計測手段とを少なくとも含むリソース量計測手段と、
前記第１消費電力算出手段と前記第２消費電力算出手段とを少なくとも含む消費電力算出手段と、
前記第１ソフトウェア処理移動手段と前記第２ソフトウェア処理移動手段とを少なくとも含むソフトウェア処理移動手段と、を備えることを特徴とするソフトウェア処理システム。
【請求項９】
互いに通信可能な複数のプロセッサのうち第１プロセッサによりソフトウェア処理を実行する第１ソフトウェア処理ステップと、
前記第１ソフトウェア処理ステップにおいて使用されるリソース量を前記ソフトウェア処理ごとに計測する第１リソース量計測ステップと、
前記第１リソース量計測ステップにおいて計測された前記リソース量に基づいて前記ソフトウェア処理の実行により消費される消費電力を前記ソフトウェア処理ごとに算出する第１消費電力算出ステップと、
前記第１消費電力算出ステップにおいて算出された前記消費電力に応じて、前記第１プロセッサにより実行されている前記ソフトウェア処理のうち少なくとも一つを、前記複数のプロセッサのうち第２プロセッサに移行する第１ソフトウェア処理移動ステップと、
前記第１ソフトウェア処理移動ステップにおいて移行された前記ソフトウェア処理を、前記第２プロセッサにより実行する第２ソフトウェア処理ステップと、
を備えることを特徴とするソフトウェア処理方法。
【請求項１０】
請求項９に記載のソフトウェア処理方法であって、
前記第１リソース量計測ステップにおいて、前記リソース量として、前記ソフトウェア処理による前記第１プロセッサの使用量と、前記ソフトウェア処理に伴う前記第１プロセッサと前記第２プロセッサとの間の通信量と、を少なくとも計測し、
前記第１消費電力算出ステップにおいて、計測された第１プロセッサの使用量と前記通信量とに基づいて前記消費電力を算出することを特徴とするソフトウェア処理方法。
【請求項１１】
請求項１０に記載のソフトウェア処理方法であって、
前記第１リソース量計測ステップにおいて、ユーザから前記ソフトウェア処理に係る操作入力を受け付ける、または前記ユーザへ前記ソフトウェア処理に係る出力を行うユーザインターフェイス部の前記ソフトウェア処理による使用量を前記リソース量として更に計測し、
前記第１ソフトウェア処理移動ステップにおいて、算出された前記消費電力および計測された前記ユーザインターフェイス部の前記ソフトウェア処理による前記使用量に応じて、前記ソフトウェア処理を前記第１プロセッサから前記第２プロセッサに移行することを特徴とするソフトウェア処理方法。
【請求項１２】
請求項１１に記載のソフトウェア処理方法であって、
前記第１消費電力算出ステップにおいて算出された前記消費電力が第１の閾値を超えて、かつ前記第１リソース量計測ステップにおいて計測された前記ユーザインターフェイス部の使用量が第２の閾値に達しないとき、
前記第１ソフトウェア処理移動ステップにおいて、前記ソフトウェア処理を前記第１プロセッサから前記第２プロセッサに移行することを特徴とするソフトウェア処理方法。
【請求項１３】
請求項９乃至１２いずれかに記載のソフトウェア処理方法であって、
前記ソフトウェア処理は、アプリケーションプログラムを実行する処理であって、
前記第１ソフトウェア処理移動ステップは、前記アプリケーションプログラムを前記第１プロセッサから前記第２プロセッサへ送出して実行させることを特徴とするソフトウェア処理方法。
【請求項１４】
請求項９乃至１２いずれかに記載のソフトウェア処理方法であって、
前記ソフトウェア処理は、仮想マシンを実現するプログラムを実行する処理であって、
前記第１ソフトウェア処理移動ステップは、前記プログラムを前記第１プロセッサから前記第２プロセッサへ送出して実行させることを特徴とするソフトウェア処理方法。
【請求項１５】
請求項９乃至１４いずれかに記載のソフトウェア処理方法であって、
前記第２ソフトウェア処理ステップにおいて前記ソフトウェア処理を実行する際に使用するリソース量を前記ソフトウェア処理ごとに計測する第２リソース量計測ステップと、
前記第２リソース量計測ステップにおいて計測された前記リソース量に基づいて前記ソフトウェア処理の実行により消費される消費電力を前記ソフトウェア処理ごとに算出する第２消費電力算出ステップと、
前記第２消費電力算出ステップにおいて算出された前記消費電力に応じて、前記第２プロセッサから前記第１プロセッサに、前記第１ソフトウェア処理移動ステップにおいて移行された前記ソフトウェア処理を戻す第２ソフトウェア処理移動ステップと、
を備えることを特徴とするソフトウェア処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア処理システムおよびソフトウェア処理方法に関する。
【背景技術】
【０００２】
処理能力を向上させる等の目的で、複数のプロセッサ（コンピュータ）間で連携してソフトウェア処理を実行するようにシステムを構築することがある。
【０００３】
この種の技術として、特許文献１（特開２００６−２６０４４５号公報）には次のような技術が記載されている。すなわち、マルチプロセッサシステムにおいて、各プロセッサが入出力バスを使用している時間からプロセッサごとの使用率を求め、使用率の高いプロセッサから使用率の低いプロセッサに処理を移行する。これにより、各プロセッサの処理負荷の偏りを低減することができるので、局部的かつ継続的な電力消費から成る外的ストレスが分散化され、システム全体の長期的な信頼性が確保できる。
【０００４】
また、この種の技術として、特許文献２（特開２００６−９９１８７号公報）には次のように記載されている。すなわち、装置が省電力状態に移行するタイミングを検知すると、必要なソフトウェアを外部装置（ネットワーク）から受け付けて、当該ソフトウェアのダウンロードまたはインストールを実行する。これにより、対象外のソフトウェアの動作への影響を考慮して自機や外部装置（ネットワーク）に過度の負担をかけることなく、ソフトウェアのダウンロードまたはインストールを実行することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−２６０４４５号公報
【特許文献２】特開２００６−９９１８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
近年、携帯電話等の携帯端末の発展により、ネットワークを介した携帯端末とサーバ装置間で連携してソフトウェア処理を実行するシステムが増加している。このようなシステムにおいて、それぞれのソフトウェア処理に伴う消費電力に応じて当該ソフトウェア処理を携帯端末とサーバ装置間で移行することによる次のようなメリットがある。例えば、携帯端末の電源は充電式の電池が主流であり、ソフトウェア処理に伴う消費電力がその電池の電力を超える場合であっても、サーバ装置に当該ソフトウェア処理を移行して実行することができる。
【０００７】
しかしながら、特許文献１に記載の技術は、プロセッサの使用率に基づいて処理を移行しているが、コンピュータの消費電力はプロセッサの使用率に必ずしも比例しないので、消費電力に応じてソフトウェア処理を移行することができない。
【０００８】
また、特許文献２に記載の技術は、省電力状態に移行するときにソフトウェア処理（インストールまたはダウンロード）を実行するので、ソフトウェア処理によって電力が消費されるタイミングが分散される。しかしながら、この技術では、最終的なコンピュータの消費電力が減少するわけではなく、当該コンピュータの電源が電池である場合、処理の途中で当該コンピュータの電源が消費されてしまう恐れがある。
【０００９】
本発明は上記事情に鑑みてなされたものであり、その目的とするところは、複数のプロセッサ（コンピュータ）間で連携してソフトウェア処理を実行するシステムにおいて、プロセッサ（コンピュータ）の消費電力を許容範囲に収めるソフトウェア処理システムおよびソフトウェア処理方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明によれば、第１プロセッサと第２プロセッサとを少なくとも含む、互いに通信可能な複数のプロセッサと、前記第１プロセッサがソフトウェア処理を実行する際に使用されるリソース量を前記ソフトウェア処理ごとに計測する第１リソース量計測手段と、前記第１リソース量計測手段により計測された前記リソース量に基づいて前記ソフトウェア処理の実行により消費される消費電力を前記ソフトウェア処理ごとに算出する第１消費電力算出手段と、前記第１消費電力算出手段により算出された前記消費電力に応じて、前記第１プロセッサにより実行されている前記ソフトウェア処理のうち少なくとも一つを、前記第２プロセッサに移行する第１ソフトウェア処理移動手段と、を備えることを特徴とするソフトウェア処理システムが提供される。
【００１１】
また、本発明によれば、互いに通信可能な複数のプロセッサのうち第１プロセッサによりソフトウェア処理を実行する第１ソフトウェア処理ステップと、前記第１ソフトウェア処理ステップにおいて使用されるリソース量を前記ソフトウェア処理ごとに計測する第１リソース量計測ステップと、前記第１リソース量計測ステップにおいて計測された前記リソース量に基づいて前記ソフトウェア処理の実行により消費される消費電力を前記ソフトウェア処理ごとに算出する第１消費電力算出ステップと、前記第１消費電力算出ステップにおいて算出された前記消費電力に応じて、前記第１プロセッサにより実行されている前記ソフトウェア処理のうち少なくとも一つを、前記複数のプロセッサのうち第２プロセッサに移行する第１ソフトウェア処理移動ステップと、前記第１ソフトウェア処理移動ステップにおいて移行された前記ソフトウェア処理を、前記第２プロセッサにより実行する第２ソフトウェア処理ステップと、を備えることを特徴とするソフトウェア処理方法が提供される。
【発明の効果】
【００１２】
上記発明は、プロセッサがソフトウェア処理を実行する際に使用されるリソース量に基づいて消費電力を算出し、これに応じて複数のプロセッサ間でソフトウェア処理を移行する。よって、プロセッサまたは当該プロセッサを備えるコンピュータの消費電力を許容範囲に収めることができる。
【００１３】
本発明によれば、複数のプロセッサ（コンピュータ）間で連携してソフトウェア処理を実行するシステムにおいて、プロセッサ（コンピュータ）の消費電力を許容範囲に収めるソフトウェア処理システムおよびソフトウェア処理方法が提供される。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施形態に係るソフトウェア処理システムの機能ブロック図である。
【図２】本発明の第１の実施形態に係るソフトウェア処理方法のフローチャートである。
【図３】本発明の第２の実施形態に係るソフトウェア処理システムの機能ブロック図である。
【図４】本発明の第２の実施形態に係るソフトウェア処理方法のフローチャートである。
【図５】本発明の第３の実施形態に係るソフトウェア処理システムの機能ブロック図である。
【図６】本発明の第３の実施形態に係るソフトウェア処理方法のフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００１６】
〔第１の実施形態〕
図１は、第１の実施形態に係るソフトウェア処理システム１０００の機能ブロック図である。ソフトウェア処理システム１０００は、第１ソフトウェア処理端末１００と第２ソフトウェア処理端末２００とを少なくとも備え、それぞれ第１プロセッサ１１０と第２プロセッサ２１０とを少なくとも含む。なお、第１ソフトウェア処理端末１００と第２ソフトウェア処理端末２００とは、ネットワーク５００を介して互いに通信可能であり、第１プロセッサ１１０と第２プロセッサ２１０との間でデータやプログラム等を授受することができる。また、第１ソフトウェア処理端末１００は、第１プロセッサ１１０がソフトウェア処理を実行する際に使用されるリソース量をソフトウェア処理ごとに計測する第１リソース量計測部１１１を含む。さらに、第１ソフトウェア処理端末１００は、第１リソース量計測部１１１により計測されたリソース量に基づいてソフトウェア処理の実行により消費される消費電力をソフトウェア処理ごとに算出する第１消費電力算出部１１２を含む。さらに、第１ソフトウェア処理端末１００は、第１消費電力算出部１１２により算出された消費電力に応じて、第１プロセッサ１１０により実行されているソフトウェア処理のうち少なくとも一つを、第２プロセッサ２１０に移行する第１ソフトウェア処理移動部１１３を含む。
【００１７】
第１ソフトウェア処理端末１００は第１記憶部１２０を含んでもよい。第１プロセッサ１１０は、適宜データやプログラム等を第１記憶部１２０から読出してもよく、適宜データやプログラム等を第１記憶部１２０に格納してもよい。また、第１ソフトウェア処理端末１００は、図１には図示されていないその他のデバイスを含んでもよい。そして、当該デバイスは、第１プロセッサ１１０により制御されてもよい。
【００１８】
第２ソフトウェア処理端末２００は第２記憶部２２０を含んでもよい。第２プロセッサ２１０は、適宜データやプログラム等を第２記憶部２２０から読出してもよく、また適宜データやプログラム等を第２記憶部２２０に格納してもよい。また、第２ソフトウェア処理端末２００は、図１には図示されていないその他のデバイスを含んでもよい。そして、当該デバイスは、第２プロセッサ２１０により制御されてもよい。
【００１９】
本実施形態において、ソフトウェア処理システム１０００は、第１ソフトウェア処理端末１００または第２ソフトウェア処理端末２００と同等の機能を有するソフトウェア処理端末（図示せず）を一つまたは複数備えてもよい。複数の上記ソフトウェア処理端末は、ネットワーク５００を介して互いに通信してもよいし、異なる経路を介して互いに通信してもよいし、互いに接続して通信してもよい。
【００２０】
本実施形態においてソフトウェア処理とは、アプリケーションプログラムを実行する処理であってもよい。この場合、第１ソフトウェア処理移動部１１３は、アプリケーションプログラムを第１ソフトウェア処理端末１００から第２ソフトウェア処理端末２００へ送出して実行させてもよい。
【００２１】
なお、本実施形態の第１ソフトウェア処理端末１００は、予め第１記憶部１２０に当該アプリケーションプログラムを格納し、第１プロセッサ１１０が第１記憶部１２０から当該アプリケーションプログラムを読み出して実行することにより、当該アプリケーションプログラムを実行するができる。また、本実施形態において、第２ソフトウェア処理端末２００が当該アプリケーションプログラムを実行するには、受信したアプリケーションプログラムを第２記憶部２２０に格納し、第２プロセッサ２１０が第２記憶部２２０から当該アプリケーションプログラムを読み出して実行することができる。
【００２２】
上述したアプリケーションプログラムは、本体プログラムと連携プログラムとで構成されてもよい。当該アプリケーションプログラムが第１記憶部１２０に格納されている場合、第１プロセッサ１１０が第１記憶部１２０から本体プログラムを読出して実行することにより目的とするソフトウェア処理が実現されてもよい。また、第１プロセッサ１１０が第１記憶部１２０から連携プログラムを読出して実行することにより、第１ソフトウェア処理移動部１１３の機能の一部または全部が実現されてもよい。
【００２３】
そして、第２プロセッサ２１０が第２記憶部２２０から本体プログラムを読出して実行することによりソフトウェア処理が実現されてもよい。この場合、第１ソフトウェア処理移動部１１３は本体プログラムのみを第２ソフトウェア処理端末２００に送出してもよい。
【００２４】
本実施形態において、第１リソース量計測部１１１は、リソース量として、ソフトウェア処理による第１プロセッサ１１０の使用量と、ソフトウェア処理に伴う第１プロセッサ１１０と第２プロセッサ２１０との間の通信量と、を少なくとも計測してもよい。このとき、第１消費電力算出部１１２は、第１プロセッサ１１０の使用量と通信量とに基づいて消費電力を算出してもよい。
【００２５】
ここで、ソフトウェア処理による第１プロセッサ１１０の使用量とは、ソフトウェア処理によるアプリケーションプログラムの実行時における単位時間あたりのクロック数や第１プロセッサ１１０の使用時間であってもよい。
【００２６】
また、本実施形態において、第１プロセッサ１１０と第２プロセッサ２１０との間の通信量とは、第１プロセッサ１１０によるアプリケーションプログラムの実行時における第１ソフトウェア処理端末１００と第２ソフトウェア処理端末２００との間の通信パケット数やトランザクション量であってもよい。
【００２７】
また、第１リソース量計測部１１１は、リソース量として、第１リソース量計測部１１１または第１消費電力算出部１１２のいずれかによる第１プロセッサ１１０の使用量を更に計測してもよい。ここで、第１リソース量計測部１１１または第１消費電力算出部１１２による第１プロセッサ１１０の使用量とは、それぞれの機能を実現するために、第１プロセッサ１１０がプログラムを実行する単位時間あたりのクロック数や第１プロセッサ１１０の使用時間であってもよい。
【００２８】
そして、第１リソース量計測部１１１は、リソース量として、第１プロセッサ１１０によるアプリケーションプログラムの実行時において第１プロセッサ１１０が制御するその他のデバイス（図示せず）からの割り込み回数を更に計測してもよい。
【００２９】
第１消費電力算出部１１２は、第１リソース量計測部１１１により計測された第１プロセッサ１１０の使用量および通信量に予め定めたアルゴリズム（算出式）を適用して、アプリケーションプログラムの実行により消費される消費電力を当該アプリケーションプログラムごとに算出する。アルゴリズムを指示するためのプログラムは第１記憶部１２０に格納されている。
【００３０】
算出される値を実際の消費電力量（真値）に近づけるためには、予め計測した実測値に基づいてアルゴリズムを定めることが望ましい。しかし、次式（１）のような簡易式でアルゴリズムを定めてもよい。ただし、次式（１）において消費電力Ｗ、単位周波数あたりの消費電力ΔＷ、単位時間あたりのクロック数Δｆ、第１プロセッサ１１０の使用時間Ｔとする。なお、単位周波数あたりの消費電力ΔＷは、第１プロセッサ１１０に使用されるＣＰＵの仕様として定められている値を使用してもよい。
【００３１】
【数１】
2010205200.tif 000003
【００３２】
第１ソフトウェア処理移動部１１３は、第１消費電力算出部１１２により算出された消費電力が閾値を超えているか否かを判定して、当該消費電力が閾値を超えているとき、本体プログラムを第２ソフトウェア処理端末２００に送出して実行させてもよい。
【００３３】
第１ソフトウェア処理移動部１１３で判定に用いられる閾値は、第１プロセッサ１１０が許容する最大消費電力と必要なアプリケーションプログラムの実行回数と基づいて定められてもよい。例えば、第１プロセッサ１１０の許容最大消費電力が５０Ｗであって、必要なアプリケーションプログラムの実行回数が１０００回以上である場合、閾値は５０ｍＷとなる。なお、閾値はユーザの任意で随時設定可能であってもよいし、デフォルト値で固定されていてもよい。
【００３４】
また、第１ソフトウェア処理移動部１１３は、第１消費電力算出部１１２により算出される消費電力が大きいアプリケーションプログラムを優先的に選択して、第１プロセッサ１１０から第２プロセッサ２１０に移行してもよい。
【００３５】
ここで、第１ソフトウェア処理移動部１１３が本体プログラムを第２ソフトウェア処理端末２００に送出して第２プロセッサ２１０に実行させる手順について詳細に説明する。
【００３６】
まず、算出された消費電力が閾値を超えることを条件として、第１プロセッサ１１０は、本体プログラムの実行を停止するとともに、第１記憶部１２０から連携プログラムを読み出して実行する。次に、第１プロセッサ１１０は第１記憶部１２０から本体プログラムを読み出し、読み出された本体プログラムを第２ソフトウェア処理端末２００に送出可能な形式に変換する。そして、第１プロセッサ１１０は、変換された本体プログラムの実行要求を生成し、生成された実行要求と変換された本体プログラムとを第２ソフトウェア処理端末２００に送出する。
【００３７】
第２ソフトウェア処理端末２００は、受信した本体プログラムを第２プロセッサ２１０が実行可能な形式に変換して第２記憶部２２０に格納する。また、第２プロセッサ２１０は、受信した実行要求に応じて、第２記憶部２２０から変換された本体プログラムを読出して実行する。
【００３８】
図２は、第１の実施形態のソフトウェア処理方法のフローチャートである。本実施形態におけるソフトウェア処理方法は、互いに通信可能な複数のプロセッサのうち第１プロセッサ１１０によりソフトウェア処理を実行する第１ソフトウェア処理ステップ（ステップＳ１０１）を備える。また、このソフトウェア処理方法は、第１ソフトウェア処理ステップ（ステップＳ１０１）において使用されるリソース量をソフトウェア処理ごとに計測する第１リソース量計測ステップ（ステップＳ１０２）を備える。さらに、このソフトウェア処理方法は、第１リソース量計測ステップ（ステップＳ１０２）において計測されたリソース量に基づいてソフトウェア処理の実行により消費される消費電力をソフトウェア処理ごとに算出する第１消費電力算出ステップ（ステップＳ１０３）を備える。さらに、このソフトウェア処理方法は、第１消費電力算出ステップ（ステップＳ１０３）において算出された消費電力に応じて、第１プロセッサ１１０により実行されているソフトウェア処理のうち少なくとも一つを、複数のプロセッサのうち第２プロセッサ２１０に移行する第１ソフトウェア処理移動ステップ（ステップＳ１０５）を備える。さらに、このソフトウェア処理方法は、第１ソフトウェア処理移動ステップ（ステップＳ１０５）において移行されたソフトウェア処理を、第２プロセッサ２１０により実行する第２ソフトウェア処理ステップ（ステップＳ１０６）を備える。
【００３９】
第１ソフトウェア処理移動ステップ（ステップＳ１０５）は、第１消費電力算出ステップ（ステップＳ１０３）において算出された消費電力が閾値を超えているとき（ステップＳ１０４のＹＥＳ）、アプリケーションプログラムを第２ソフトウェア処理端末２００に送出して実行させてもよい。
【００４０】
また、第１ソフトウェア処理移動ステップ（ステップＳ１０５）は、第１消費電力算出ステップ（ステップＳ１０３）において算出された消費電力が閾値に達しないとき（ステップＳ１０４のＮＯ）、第１ソフトウェア処理ステップ（ステップＳ１０１）に移行して、引き続き第１プロセッサ１１０にソフトウェア処理を実行させてもよい。
【００４１】
ここで、第１の実施形態の効果について述べる。まず、ソフトウェア処理システム１０００は、第１プロセッサ１１０が実行しているソフトウェア処理を、算出された消費電力に応じて第２プロセッサ２１０に移行するので、第１プロセッサ１１０の消費電力を許容可能な範囲に収めることができる。
【００４２】
また、ソフトウェア処理システム１０００は、アプリケーションプログラムごとの消費電力を算出するので、移行するアプリケーションプログラムの優先順位を適切に決定することができる。
【００４３】
さらに、ソフトウェア処理システム１０００は、第１プロセッサ１１０の消費電力が閾値を超えるとき、当該アプリケーションプログラムを第１ソフトウェア処理端末１００から第２ソフトウェア処理端末２００に移行するので、第１プロセッサ１１０の消費電力が過大になることを防ぐことができる。例えば、第１ソフトウェア処理端末１００の電力供給源が電池である等の理由で消費電力の上限が定められる場合において、本実施形態は好適である。
【００４４】
さらに、ソフトウェア処理システム１０００は、第１プロセッサ１１０により連携プログラムを実行して、第２プロセッサ２１０により本体プログラムを実行することにより、アプリケーションプログラムの実行処理を分散することができる。これにより、第１プロセッサ１１０の消費電力を軽減することができる。また、第１プロセッサ１１０と第２プロセッサは、それぞれ異なる第１ソフトウェア処理端末１００および第２ソフトウェア処理端末２００に含まれるので、第１ソフトウェア処理端末１００の消費電力も軽減される。
【００４５】
〔第２の実施形態〕
図３は、第２の実施形態に係るソフトウェア処理システム１０００の機能ブロック図である。本実施形態において、ソフトウェア処理システム１０００は、第１ソフトウェア処理端末１００と、第２ソフトウェア処理端末２００と、第３ソフトウェア処理端末３００と、ユーザインターフェイス部４００と、を備える。ユーザインターフェイス部４００は、第１ソフトウェア処理端末１００に接続している。
【００４６】
なお、本実施形態の第１ソフトウェア処理端末１００が含む構成は、第１の実施形態における第１ソフトウェア処理端末１００が含む構成と同等である。また、本実施形態の第３ソフトウェア処理端末３００が含む構成は第３プロセッサ３１０と第３記憶部３２０であって、第１の実施形態における第２ソフトウェア処理端末２００が含む構成と同等である。
【００４７】
本実施形態の第２ソフトウェア処理端末２００は、第２プロセッサ２１０がソフトウェア処理を実行する際に使用するリソース量をソフトウェア処理ごとに計測する第２リソース量計測部２１１を含む。また、第２ソフトウェア処理端末２００は、第２リソース量計測部２１１により計測されたリソース量に基づいてソフトウェア処理の実行により消費される消費電力をソフトウェア処理ごとに算出する第２消費電力算出部２１２を含む。さらに、第２ソフトウェア処理端末２００は、第２消費電力算出部２１２により算出された消費電力に応じて、第２プロセッサ２１０から第１プロセッサ１１０に、第１ソフトウェア移動処理部１１３により移行されたソフトウェア処理を戻す第２ソフトウェア処理移動部２１３を含む。
【００４８】
また、第２ソフトウェア処理移動部２１３は、ソフトウェア処理を第２プロセッサ２１０から第３プロセッサ３１０に移行してもよい。
【００４９】
本実施形態において、ユーザインターフェイス部４００は、ユーザからソフトウェア処理に係る操作入力を受け付けるデバイス、例えばキーボードやポインティングデバイス等を含んでもよい。また、ユーザインターフェイス部４００は、ユーザへソフトウェア処理に係る出力を行うデバイス、例えばディスプレイやスピーカ等を含んでもよい。このとき、第１リソース量計測部１１１は、ユーザインターフェイス部４００のソフトウェア処理による使用量をリソース量として更に計測してもよい。そして、第１ソフトウェア処理移動部１１３は、算出された消費電力および計測されたユーザインターフェイス部４００の使用量に応じて、ソフトウェア処理を第１ソフトウェア処理端末１００から第２ソフトウェア処理端末２００に移行してもよい。
【００５０】
ここで、ユーザインターフェイス部４００の使用量とは、ユーザインターフェイス部４００に含まれるデバイスからの割り込み回数であってもよい。また、ユーザインターフェイス部４００の使用量とは、描画ライブラリの呼び出し回数であってもよい。さらに、ユーザインターフェイス部４００の使用量とは、ポインティングデバイス、キーボードまたはディスプレイ等のデバイスドライバへのアクセス回数であってもよい。
【００５１】
なお、第１消費電力算出部１１２は、ユーザインターフェイス部４００の使用量も更に用いて、ソフトウェア処理の実行により消費される消費電力を算出してもよい。
【００５２】
本実施形態において、第１消費電力算出部１１２により算出された消費電力が第１の閾値を超えて、かつ第１リソース量計測部１１１により計測されたユーザインターフェイス部４００の使用量が第２の閾値に達しないとき、第１ソフトウェア処理移動部１１３は、ソフトウェア処理を第１プロセッサ１１０から第２プロセッサ２１０に移行してもよい。
【００５３】
また本実施形態において、第２消費電力算出部２１２により算出された消費電力が第３の閾値を超えて、かつ第２リソース量計測部２１１により計測されたユーザインターフェイス部４００の使用量が第４の閾値に達しないとき、第２ソフトウェア処理移動部２１３は、第１ソフトウェア移動処理部１１３により移行されたソフトウェア処理を第１プロセッサ１１０または第３プロセッサ３３０のいずれかに移行してもよい。ここで、第２消費電力算出部２１２により算出された消費電力が第３の閾値であるとき、または第２リソース量計測部２１１により計測されたユーザインターフェイス部４００の使用量が第４の閾値であるとき、第２ソフトウェア処理移動部２１３は、ソフトウェア処理を第１プロセッサ１１０または第３プロセッサ３３０のいずれに移行してもよいし、移行しなくてもよい。このソフトウェア処理の移行先は、ユーザが任意に選択してもよいし、第１消費電力算出部１１２が算出した単位時間あたりの消費電力に応じて選択されてもよい。
【００５４】
本実施形態において、第１消費電力算出部１１２または第２消費電力算出部２１２が算出する消費電力は、単位時間あたりの平均消費電力、単位時間あたりの最小消費電力または単位時間あたりの最大消費電力のいずれかであってもよい。
【００５５】
単位時間あたりの平均消費電力の算出方法として、次式（２）のような簡易式で定めたアルゴリズムを適用してもよい。ただし、次式（２）において消費電力Ｗ、単位周波数あたりの消費電力ΔＷ、単位時間あたりのクロック数Δｆ、第１プロセッサ１１０の使用時間Ｔ、第１消費電力算出部１１２または第２消費電力算出部２１２の計測時間Ｍとする。
【００５６】
【数２】
2010205200.tif 000004
【００５７】
本実施形態において、第１ソフトウェア処理移動部１１３で判定に用いられる第１の閾値と、第２ソフトウェア処理移動部２１３で判定に用いられる第３の閾値とは、ソフトウェア処理を移行することによって、算出される単位時間あたりの消費電力が減少するように設定することが望ましい。すなわち、予めソフトウェア処理を移行した状態の第１ソフトウェア処理端末１００または第２ソフトウェア処理端末２００において測定を行い、その測定結果から単位時間あたりの最大消費電力を求め、求められた値を第１の閾値または第３の閾値としてもよい。
【００５８】
本実施形態において、ソフトウェア処理の移行に伴い、第１ソフトウェア処理端末１００はプログラムの送出処理または受信処理を実行することがある。特に、本実施形態では、ネットワーク５００を介してプログラムを送出または受信するので、その処理に係る第１プロセッサ１１０の使用時間は比較的長くなる。この場合、第１プロセッサ１１０の使用量が上昇する。これによって、ユーザインターフェイス部４００の操作性が下がる恐れがある。第１ソフトウェア処理移動部１１３または第２ソフトウェア処理移動部２１３で用いられる判定条件に、ユーザインターフェイス部４００の使用量を追加することによって、ユーザインターフェイス部４００の使用量が大きいときにソフトウェア処理の移行をしないように設定することができる。この判定条件である第２の閾値と第４の閾値とは、個々のユーザが経験則に基づいて任意に設定する方が好ましい。すなわち、第２の閾値と第４の閾値とは、ユーザが任意に設定可能としてもよい。
【００５９】
第１ソフトウェア処理移動部１１３および第２ソフトウェア処理移動部２１３で用いられる判定に用いられる条件は、ユーザが任意に設定可能としてもよい。例えば、第１の閾値〜第４の閾値のそれぞれに、ユーザが任意に値を設定できる重み付け係数が乗算されており、ユーザは重み付け係数の設定によって、上記条件を任意に設定できてもよい。
【００６０】
図４は、第２の実施形態のソフトウェア処理方法のフローチャートである。本実施形態におけるソフトウェア処理方法の第１ソフトウェア処理ステップ（ステップＳ２０１）、第１消費電力算出ステップ（ステップＳ２０３）および第２ソフトウェア処理ステップ（ステップＳ２０７）は、第１の実施形態の第１ソフトウェア処理ステップ（ステップＳ１０１）、第１消費電力算出ステップ（ステップＳ１０３）および第２ソフトウェア処理ステップ（ステップＳ１０６）と同様である。
【００６１】
本実施形態のソフトウェア処理方法の第１リソース量計測ステップ（ステップＳ２０２）は、第１の実施形態の第１リソース量計測ステップ（ステップＳ１０２）における処理に加えて、以下のように処理する。すなわち、第１リソース量計測ステップ（ステップＳ２０２）は、ユーザからソフトウェア処理に係る操作入力を受け付ける、またはユーザへソフトウェア処理に係る出力を行うユーザインターフェイス部４００のソフトウェア処理による使用量をリソース量として更に計測する。このとき、第１ソフトウェア処理移動ステップ（ステップＳ２０６）は、算出された消費電力および計測されたユーザインターフェイス部４００の使用量に応じて、第１プロセッサ１１０により実行されているソフトウェア処理を、第２プロセッサ２１０に移行する。
【００６２】
なお、第１消費電力算出ステップ（ステップＳ２０３）において算出された消費電力が第１の閾値超えるとき（ステップＳ２０４のＹＥＳ）、かつ第１リソース量計測ステップ（ステップＳ２０２）において計測されたユーザインターフェイス部４００の使用量が第２の閾値に達しないとき（ステップＳ２０５のＹＥＳ）、第１ソフトウェア処理移動ステップ（ステップＳ２０６）において、第１プロセッサ１１０により実行されているソフトウェア処理を、第２プロセッサ２１０に移行してもよい。
【００６３】
また、第１ソフトウェア処理移動ステップ（ステップＳ２０６）は、第１消費電力算出ステップ（ステップＳ２０３）において算出された消費電力が第１の閾値に達しないとき（ステップＳ２０４のＮＯ）、あるいは第１リソース量計測ステップ（ステップＳ２０２）において計測されたユーザインターフェイス部４００の使用量が第２の閾値を超えるとき（ステップＳ２０５のＮＯ）、第１ソフトウェア処理ステップ（ステップＳ２０１）に戻って、引き続き第１プロセッサ１１０にソフトウェア処理を実行させてもよい。
【００６４】
さらに、本実施形態のソフトウェア処理方法は、第２ソフトウェア処理ステップ（ステップＳ２０７）においてソフトウェア処理を実行する際に使用するリソース量を計測する第２リソース量計測ステップ（ステップＳ２０８）を備えてもよい。さらに、このソフトウェア処理方法は、第２リソース量計測ステップ（ステップＳ２０８）において計測されたリソース量に基づいてソフトウェア処理の実行により消費される消費電力を算出する第２消費電力算出ステップ（ステップＳ２０９）と、第２消費電力算出ステップ（ステップＳ２０９）において算出された消費電力に応じて、第２プロセッサ２１０から第１プロセッサ１１０に、第１ソフトウェア処理移動ステップ（ステップＳ２０６）において移行されたソフトウェア処理を移行する第２ソフトウェア処理移動ステップ（ステップＳ２１２）と、を備える。
【００６５】
なお、本実施形態のソフトウェア処理方法は、第２消費電力算出ステップ（ステップＳ２０９）において算出された消費電力が第３の閾値を超えて（ステップＳ２１０のＹＥＳ）、かつ第２リソース量計測ステップ（ステップＳ２０８）において計測されたユーザインターフェイス部４００の使用量が第４の閾値に達しないとき（ステップＳ２１１のＹＥＳ）、第２ソフトウェア処理移動ステップ（ステップＳ２１２）を行う。
【００６６】
また、第２ソフトウェア処理移動ステップ（ステップＳ２１２）は、第２消費電力算出ステップ（ステップＳ２０９）において算出された消費電力が第３の閾値に達しないとき（ステップＳ２１０のＮＯ）、あるいは第２リソース量計測ステップ（ステップＳ２０８）において計測されたユーザインターフェイス部４００の使用量が第４の閾値を超えるとき（ステップＳ２１１のＮＯ）、第２ソフトウェア処理ステップ（ステップＳ２０７）に移行して、引き続き第２プロセッサ２１０にソフトウェア処理を実行させてもよい。
【００６７】
第２ソフトウェア処理移動ステップ（ステップＳ２１２）において、ソフトウェア処理を第１ソフトウェア処理端末１００に移行するとき（ステップＳ２１３のＹＥＳ）、第２プロセッサ２１０から第１プロセッサ１１０にソフトウェア処理を移行する。そして、第１ソフトウェア処理ステップ（ステップＳ２０１）以降のステップを繰り返す。
【００６８】
第２ソフトウェア処理移動ステップ（ステップＳ２１２）において、ソフトウェア処理を第１ソフトウェア処理端末１００に移行しないとき（ステップＳ２１３のＮＯ）、第２プロセッサ２１０から第３プロセッサ３１０にソフトウェア処理を移行する。そして、第３ソフトウェア処理ステップ（ステップＳ２１４）は、第３プロセッサ３１０によりソフトウェア処理を実行する。
【００６９】
ここで、第２の実施形態の効果について述べる。まず、本実施形態のソフトウェア処理システム１０００は、ユーザインターフェイス部４００を備え、ソフトウェア処理の移行の判定条件として消費電力とともにユーザインターフェイス部４００の使用量も用いる。これにより、ユーザインターフェイス部４００の操作性（ユーザの利便性）を損なわずに、ソフトウェア処理を移行することができる。
【００７０】
また、本実施形態において第１ソフトウェア処理端末１００と第２ソフトウェア処理端末２００とは、同等の機能を備えることができる。このようにすれば、本実施形態のソフトウェア処理システム１０００は、第１プロセッサ１１０および第２プロセッサ２１０の消費電力を許容可能な範囲に収め、それぞれの消費電力が過大になることを防ぐことができる。
【００７１】
さらに、本実施形態のソフトウェア処理システム１０００は、第２プロセッサ２１０から第１プロセッサ１１０に、移行されたソフトウェア処理を戻すことができる。これにより、一定の時間が経過する等により第１プロセッサ１１０のリソース量に余裕が生じた場合に、無駄なく活用することができる。
【００７２】
さらに、本実施形態のソフトウェア処理システム１０００は、ソフトウェア処理を移行する判定条件として、単位時間あたりの消費電力を用いている。これにより、過大な電力消費が生じた場合、即時にソフトウェア処理を移行して、対策することができる。
【００７３】
さらに、本実施形態のソフトウェア処理システム１０００は、ユーザインターフェイス部４００と接続している第１ソフトウェア処理端末１００と、第２ソフトウェア処理端末２００と、第３ソフトウェア処理端末３００と、を用いてソフトウェア処理を分散することができる。そして、第２プロセッサ２１０はソフトウェア処理の主な処理を担い、第１プロセッサ１１０は比較的負荷の軽いユーザインターフェイス処理を担う構成とすることで、シンクライアントシステムを構築することができる。これにより、ユーザインターフェイス処理を担う第１プロセッサ１１０の処理負荷を軽減することができる。
〔第３の実施形態〕
【００７４】
図５は、第３の実施形態のソフトウェア処理システム１０００の機能ブロック図である。本実施形態のソフトウェア処理システム１０００は、互いに情報授受（通信）可能なＮ個のプロセッサと、Ｎ個のプロセッサがそれぞれアクセス可能な記憶部９００を備える。また、ソフトウェア処理システム１０００は、Ｎ個のプロセッサのいずれかがソフトウェア処理を実行する際に使用されるリソース量をソフトウェアごとに計測するリソース量計測部６００を備える。さらに、ソフトウェア処理システム１０００は、リソース量計測部６００により計測されたリソース量に基づいてソフトウェア処理の実行により消費される消費電力をソフトウェア処理ごとに算出する消費電力算出部７００を備える。さらに、ソフトウェア処理システム１０００は、消費電力算出部７００により算出された消費電力に応じて、ソフトウェア処理を実行している一のプロセッサから他のプロセッサに当該ソフトウェア処理を移行するソフトウェア処理移動部８００を備える。
【００７５】
さらに、ソフトウェア処理システム１０００は、ユーザインターフェイス部４００を備える。このとき、リソース量計測部６００はユーザインターフェイス部４００の使用量を計測してもよい。
【００７６】
なお、上記Ｎは２以上の整数である。すなわち、リソース量計測部６００は、第１リソース量計測部１１１と第２リソース量計測部２１１とを少なくとも含む。また、消費電力算出部７００は、第１消費電力算出部１１２と第２消費電力算出部２１２とを少なくとも含む。さらに、ソフトウェア処理移動部８００は、第１ソフトウェア処理移動部１１３と第２ソフトウェア処理移動部２１３とを少なくとも含む。
【００７７】
さらに、リソース量計測部６００は、第Ｎプロセッサ１０１０がソフトウェア処理を実行する際に使用されるリソース量を計測する第Ｎリソース量計測部１０１１を含んでもよい。さらに、消費電力算出部７００は、第Ｎリソース量計測部１０１１により計測されたリソース量に基づいて消費電力を算出する第Ｎ消費電力算出部１０１２を含んでもよい。さらに、ソフトウェア処理移動部８００は、算出された第Ｎプロセッサ１０１０の消費電力と計測されたユーザインターフェイス部４００の使用量とに基づいて第Ｎプロセッサ１０１０から第１プロセッサ１１０にソフトウェア処理を移行する第Ｎソフトウェア処理移動部１０１３を含んでもよい。
【００７８】
本実施形態の第１リソース量計測部１１１、第２リソース量計測部２１１、第１消費電力算出部１１２、第２消費電力算出部２１２および第１ソフトウェア処理移動部１１３は、第２実施形態の第１リソース量計測部１１１、第２リソース量計測部２１１、第１消費電力算出部１１２、第２消費電力算出部２１２および第１ソフトウェア処理移動部１１３と同様である。また、本実施形態の第２ソフトウェア処理移動部２１３は、ソフトウェア処理の移行先が第３プロセッサ（図示せず）と定められている。
【００７９】
ソフトウェア処理移動部８００は、一のプロセッサから他のプロセッサにソフトウェア処理を移行するとともに、一のプロセッサのクロック周波数、または一のプロセッサに供給される電源電圧を適切に下げてもよい。
【００８０】
図６は、第３の実施形態のソフトウェア処理方法のフローチャートである。本実施形態のソフトウェア処理方法において、記憶部９００の所定の領域に初期状態として「ｎ＝０」と記憶されている（ステップＳ３０１）。このｎは第ｎプロセッサにソフトウェア処理を実行させることを意味している。
【００８１】
次に、ユーザインターフェイス部４００が受け付けたユーザの操作入力等により、ソフトウェア処理の実行が要求されると（ステップＳ３０２のＹＥＳ）、ソフトウェア処理移動部８００は記憶部９００からｎの値を読出して、それに１を加算する（ステップＳ３０３）。なお、ソフトウェア処理の実行が要求されないとき（ステップＳ３０２のＮＯ）、ソフトウェア処理システム１０００は、ソフトウェア処理の実行が要求されるまで状態を保持する。
【００８２】
そして、ソフトウェア処理移動部８００は加算後のｎの値（ｎ＋１）に基づいて、要求されたソフトウェア処理の実行を第ｎプロセッサに指示する。指示された第ｎプロセッサは、当該ソフトウェア処理を実行する（ステップＳ３０４）。
【００８３】
第ｎソフトウェア処理ステップ（ステップＳ３０４）において、ソフトウェア処理が終了したとき（ステップＳ３０５のＹＥＳ）、本実施形態のソフトウェア処理方法のフローが終了する。
【００８４】
第ｎソフトウェア処理ステップ（ステップＳ３０４）において、ソフトウェア処理が終了しなければ（ステップＳ３０５のＮＯ）、次の第ｎリソース量計測ステップ（ステップＳ３０６）に移行する。
【００８５】
第ｎリソース量計測ステップ（ステップＳ３０６）においては、第ｎプロセッサが当該ソフトウェア処理を実行する際に使用されるリソース量を、リソース量計測部６００により計測する。さらに、第ｎ消費電力算出ステップ（ステップＳ３０７）においては、計測されたリソース量に基づいて、当該ソフトウェア処理の消費電力を消費電力算出部７００により算出する。
【００８６】
なお、第ｎ消費電力算出ステップ（ステップＳ３０７）において算出された消費電力が第２ｎ−１の閾値を超えて（ステップＳ３０８のＹＥＳ）、かつ第ｎリソース量計測ステップ（ステップＳ３０６）において計測されたユーザインターフェイス部４００の使用量が第２ｎの閾値に達しないとき（ステップＳ３０９のＹＥＳ）、第ｎソフトウェア処理移動ステップ（ステップＳ３１０）を行う。
【００８７】
また、第ｎ消費電力算出ステップ（ステップＳ３０７）において算出された消費電力が第２ｎ−１の閾値に達しないとき（ステップＳ３０８のＮＯ）、または第ｎリソース量計測ステップ（ステップＳ３０６）において計測されたユーザインターフェイス部４００の使用量が第２ｎの閾値を超えるとき（ステップＳ３０９のＮＯ）、ステップＳ３０４に移行して、それ以降のステップを繰り返す。
【００８８】
ここで、第２ｎ−１の閾値および第２ｎの閾値は、第２の実施形態において説明した第１の閾値〜第４の閾値と同様に設定することが望ましい。
【００８９】
第ｎソフトウェア処理移動ステップ（ステップＳ３１０）において、ソフトウェア処理移動部８００は記憶部９００からｎの値を読出す。読み出したｎが、ｎ≠Ｎのとき（ステップＳ３１１のＮＯ）、ステップＳ３０３に移行して、それ以降のステップを繰り返す。
【００９０】
また、第ｎソフトウェア処理移動ステップ（ステップＳ３１０）において、ソフトウェア処理移動部８００が記憶部９００から読み出したｎが、ｎ＝Ｎのとき（ステップＳ３１１のＹＥＳ）、ｎの値をクリアして（ｎ＝０）にして（ステップＳ３１２）、次にステップＳ３０３に移行して、それ以降のステップを繰り返す。
【００９１】
ここで、第３の実施形態の効果について述べる。まず、本実施形態のソフトウェア処理システム１０００は、第１の実施形態や第２の実施形態とは異なり、各プロセッサのフトウェア処理に係るリソース量の計測、計測されたリソース量に基づく消費電力の算出および算出された消費電力に応じたソフトウェア処理の移行のそれぞれを処理する部位が統合されているので、比較的コンパクトな構成とすることができる。
【００９２】
また、本実施形態のソフトウェア処理システム１０００は、いわゆるマルチプロセッサまたはマルチコアのコンピュータ装置等に用いることができる。
【００９３】
さらに、本実施形態のソフトウェア処理システム１０００は、ソフトウェア処理を移行するとともに、移行元のプロセッサのクロック周波数や電源電圧を適切に下げるので、ソフトウェア処理システム１０００全体の消費電力を下げることができる。
【００９４】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
【００９５】
第１の実施形態において、ソフトウェア処理を移行するとき、ソフトウェア処理システム１０００は当該アプリケーションの一部である本体プログラムのみを第１ソフトウェア処理端末１００から第２ソフトウェア処理端末２００に送出すると説明した。しかし、ソフトウェア処理を移行するとき、ソフトウェア処理システム１０００は当該アプリケーションの全部を第１ソフトウェア処理端末１００から第２ソフトウェア処理端末２００に送出してもよい。または、ソフトウェア処理を移行するとき、ソフトウェア処理システム１０００は当該アプリケーションに含まれる本体プログラムと連携プログラムとを第１ソフトウェア処理端末１００から第２ソフトウェア処理端末２００に送出してもよい。
【００９６】
また、第１の実施形態において、ソフトウェア処理システム１０００は、第１ソフトウェア処理端末１００から第２ソフトウェア処理端末２００へアプリケーションプログラムを送出してソフトウェア処理を移行すると説明した。しかし、第２ソフトウェア処理端末２００に予め同等のアプリケーションプログラムを格納（インストール）しておけば、ソフトウェア処理システム１０００は、第１ソフトウェア処理端末１００から第２ソフトウェア処理端末２００へソフトウェア処理の移行を要求し、第２ソフトウェア処理端末２００がそれに応答してソフトウェア処理を移行してもよい。
【００９７】
さらに、第１の実施形態において、ソフトウェア処理についてアプリケーションプログラムを実行する処理として説明した。しかし、本発明におけるソフトウェア処理は、仮想マシンを実現するプログラムを実行する処理であってもよい。このとき、第１ソフトウェア処理移動部１１３は、当該プログラムを第１ソフトウェア処理端末１００から第２ソフトウェア処理端末２００へ送出して実行させてもよい。
【００９８】
仮想マシンとは、コンピュータのプロセッサや記憶装置などのリソースを仮想的にソフトウェアで実現し、物理的なコンピュータと同等の機能を持たせる手法である。仮想マシンの利点として、容易に仮想マシンを追加または削除することができる等が挙げられる。しかし、仮想マシンを実現するプログラムを、一つのプロセッサに集約して実行させると、そのプロセッサの消費電力が過大になり過ぎることがある。本発明を適用することにより、プロセッサの消費電力を所定の許容範囲に収めることができる。
【００９９】
さらに、第１の実施形態において算出される消費電力は、プロセッサが使用される時間分の消費電力として説明した。また、第２の実施形態において算出される消費電力は、単位時間あたりの平均消費電力として説明した。この関係は逆転してもよい。すなわち、第１の実施形態において算出される消費電力が、単位時間あたりの平均消費電力であってもよい。また、第２の実施形態において算出される消費電力は、プロセッサ使用時間分の消費電力であってもよい。
【０１００】
さらに、上述のいずれの実施形態においても、算出された消費電力がいずれかの閾値であるとき、または計測されたユーザインターフェイス部４００の使用量がいずれかの閾値であるとき、ソフトウェア処理を移行してもよいし、移行しなくてもよい。
【０１０１】
すなわち、図２において、ステップＳ１０４の判定条件は、第１消費電力算出ステップ（ステップＳ１０３）において算出された消費電力が閾値以上としてもよい。
【０１０２】
第２の実施形態において、第２ソフトウェア処理移動部２１３がソフトウェア処理を移行する基準について、第１消費電力算出部１１２により算出された消費電力を用いてもよい。例えば、第１消費電力算出部１１２により算出された消費電力が第１の閾値に達しないとき、第２プロセッサ２１０から第１プロセッサ１１０にソフトウェア処理を戻してもよい。
【０１０３】
図４において、ステップＳ２０４の判定条件は、第１消費電力算出ステップ（ステップＳ２０３）において算出された消費電力が第１の閾値以上としてもよい。また、ステップＳ２０５の判定条件は、第１リソース量計測ステップ（ステップＳ２０２）において計測されたユーザインターフェイス部４００の使用量が第２の閾値以下としてもよい。
【０１０４】
図６において、ステップＳ３０８の判定条件は、第ｎ消費電力算出ステップ（ステップＳ３０７）において算出された消費電力が第２ｎ−１の閾値以上としてもよい。また、ステップＳ３０９の判定条件は、第ｎリソース量計測ステップ（ステップＳ３０６）において計測されたユーザインターフェイス部４００の使用量が第２ｎの閾値以下としてもよい。
【０１０５】
なお、本発明の実施の形態ではソフトウェア処理システムの各部が、コンピュータ（プロセッサ）がプログラムを実行することにより各種機能として論理的に実現されてもよく、各部の各々を固有のハードウェアとして形成してもよく、ソフトウェアとハードウェアとの組み合わせとして実現してもよい。
【０１０６】
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一つの構成要素として形成されていること、一つの構成要素が複数の構成要素で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
【０１０７】
さらに、当然ながら、上述した実施の形態および複数の変形例は、その内容が相反しない範囲で組み合わせることができる。また、上述した実施の形態および変形例では、各構成要素の機能などを具体的に説明したが、その機能などは本願発明を満足する範囲で各種に変更することができる。
【符号の説明】
【０１０８】
１００    第１ソフトウェア処理端末
１１０    第１プロセッサ
１１１    第１リソース量計測部
１１２    第１消費電力算出部
１１３    第１ソフトウェア処理移動部
１２０    第１記憶部
２００    第２ソフトウェア処理端末
２１０    第２プロセッサ
２１１    第２リソース量計測部
２１２    第２消費電力算出部
２１３    第２ソフトウェア処理移動部
２２０    第２記憶部
３００    第３ソフトウェア処理端末
３１０    第３プロセッサ
３２０    第３記憶部
４００    ユーザインターフェイス部
５００    ネットワーク
６００    リソース量計測部
７００    消費電力算出部
８００    ソフトウェア処理移動部
９００    記憶部
１０００  ソフトウェア処理システム
１０１０  第Ｎプロセッサ
１０１１  第Ｎリソース量計測部
１０１２  第Ｎ消費電力算出部
１０１３  第Ｎソフトウェア処理移動部
【図１】
2010205200.tif 000005
【図２】
2010205200.tif 000006
【図３】
2010205200.tif 000007
【図４】
2010205200.tif 000008
【図５】
2010205200.tif 000009
【図６】
2010205200.tif 000010