(57)【要約】【課題】性能保証・性能非保証両タスクが混在のマルチプロセッサシステムで、プロセッサ負荷が時間経過に伴って低負荷状態になることを前提とせずに、リアルタイム性を保証しながら消費電力を効果的に削減する。【解決手段】複数タスクを分散処理する複数プロセッサを備えるマルチプロセッサシステムにおいて、各性能保証タスクＴｉの処理性能値Φｉのそれぞれと、各性能保証タスクが必要とするリアルタイム性能時間τｉを加味したプロセッサＰｊの処理能力値Ｗｊのそれぞれとの相関関係に基づいて、使用プロセッサ数が最小限となるように、各性能保証タスクの各プロセッサへの割り当ての制御を行う割り当て制御手段Ｅ１と、割り当て制御手段による割り当ての結果、性能保証タスクの割り当てが解消された不使用プロセッサの動作状態に対して省電力状態を適用する動作状態制御手段Ｅ２とを備える。【選択図】図１
2010277300.tif 000002
【特許請求の範囲】
【請求項１】
複数のタスクを分散処理する複数のプロセッサを備えるとともに、性能保証タスクと性能非保証タスクとが混在するマルチプロセッサシステムにおいて、
各プロセッサに割り当てられるべき各性能保証タスクの処理性能値のそれぞれと、各性能保証タスクが必要とするリアルタイム性能時間を加味したプロセッサの処理能力値のそれぞれとの相関関係に基づいて、使用プロセッサ数が最小限となるように、前記各性能保証タスクの前記各プロセッサへの割り当ての制御を行う割り当て制御手段と、
前記割り当て制御手段による割り当ての結果、前記性能保証タスクの割り当てが解消された不使用プロセッサの動作状態に対して省電力状態を適用する動作状態制御手段とを備えるマルチプロセッサシステムにおける省電力制御装置。
【請求項２】
前記割り当て制御手段は、前記性能保証タスクの他のプロセッサへの再割り当てが可能であるか否かを判断し、可能であるときに再割り当てを行うように構成されている請求項１に記載のマルチプロセッサシステムにおける省電力制御装置。
【請求項３】
前記割り当て制御手段は、判断対象の性能保証タスクの処理性能値を他のプロセッサの余力性能と比較し、前記判断対象の性能保証タスクの処理性能値が他のプロセッサの余力性能以下のときにその判断対象の性能保証タスクを余力のある他のプロセッサに再割り当てするように構成されている請求項２に記載のマルチプロセッサシステムにおける省電力制御装置。
【請求項４】
前記プロセッサの処理能力値は、当該プロセッサの単位時間当たりの処理能力に、前記性能保証タスクのリアルタイム性能時間を乗算したものである請求項１から請求項３までのいずれかに記載のマルチプロセッサシステムにおける省電力制御装置。
【請求項５】
前記プロセッサの余力性能は、前記性能保証タスクのリアルタイム性能時間を加味した前記プロセッサの処理能力値から、当該プロセッサにすでに割り当て済みの性能保証タスクの処理性能値の総和を減算したものである請求項３または請求項４に記載のマルチプロセッサシステムにおける省電力制御装置。
【請求項６】
前記割り当て制御手段は、前記再割り当てのための性能保証タスクのプロセッサ間移動を最小限とするように構成されている請求項１から請求項５までのいずれかに記載のマルチプロセッサシステムにおける省電力制御装置。
【請求項７】
前記割り当て制御手段は、前記性能保証タスクの他のプロセッサへの再割り当てに際して、前記性能保証タスクが使用する資源のプロセッサ間競合が最小限となることを優先して再割り当てを行うように構成されている請求項２から請求項６までのいずれかに記載のマルチプロセッサシステムにおける省電力制御装置。
【請求項８】
前記割り当て制御手段は、シーケンス的に処理する必要のある性能保証タスク群を優先して同一のプロセッサへ再割り当てするように構成されている請求項２から請求項６までのいずれかに記載のマルチプロセッサシステムにおける省電力制御装置。
【請求項９】
前記割り当て制御手段は、前記性能保証タスクの再割り当てを行った後に前記性能非保証タスクのプロセッサ間での再割り当てを行う場合に、前記性能保証タスクの再割り当てが行われた前記プロセッサに対しては前記性能非保証タスクの再割り当てを禁止する状態で再割り当てを行うように構成されている請求項１から請求項８までのいずれかに記載のマルチプロセッサシステムにおける省電力制御装置。
【請求項１０】
前記動作状態制御手段は、性能保証タスクの割り当てが解消された不使用プロセッサの動作モードを変更するように構成されている請求項１から請求項９までのいずれかに記載のマルチプロセッサシステムにおける省電力制御装置。
【請求項１１】
前記性能保証タスクの割り当てが解消された不使用プロセッサの動作モードを変更するとは、前記不使用プロセッサへのクロック供給を停止することである請求項１０に記載のマルチプロセッサシステムにおける省電力制御装置。
【請求項１２】
前記動作状態制御手段は、性能保証タスクの割り当てが確定された使用プロセッサの動作モードを変更するように構成されている請求項１から請求項９までのいずれかに記載のマルチプロセッサシステムにおける省電力制御装置。
【請求項１３】
前記性能保証タスクの割り当てが確定された使用プロセッサの動作モードを変更するとは、前記使用プロセッサの状態を低消費電力状態から通常動作状態へ変更すること、または、通常動作状態から高速動作状態へ変更することである請求項１２に記載のマルチプロセッサシステムにおける省電力制御装置。
【請求項１４】
前記動作状態制御手段は、メモリのプロセッサへの割り当てを動的に変更するように構成されている請求項１から請求項１３までのいずれかに記載のマルチプロセッサシステムにおける省電力制御装置。
【請求項１５】
前記メモリのプロセッサへの割り当てを動的に変更するとは、不使用プロセッサに割り当てられていたメモリを使用プロセッサへ再割り当てすることである請求項１４に記載のマルチプロセッサシステムにおける省電力制御装置。
【請求項１６】
前記動作状態制御手段は、スヌーピング機能を備えたキャッシュのスヌープモードを変更するように構成されている請求項１から請求項１５までのいずれかに記載のマルチプロセッサシステムにおける省電力制御装置。
【請求項１７】
前記スヌーピング機能を備えたキャッシュのスヌープモードを変更するとは、前記不使用プロセッサのキャッシュのスヌープモードを停止させることである請求項１６に記載のマルチプロセッサシステムにおける省電力制御装置。
【請求項１８】
前記動作状態制御手段は、前記割り当て制御手段による割り当ての結果、前記性能保証タスクの割り当てが解消された不使用プロセッサに代えて、または不使用プロセッサとともに、周辺デバイスの動作状態の変更を行うように構成されている請求項１から請求項１７までのいずれかに記載のマルチプロセッサシステムにおける省電力制御装置。
【請求項１９】
請求項１から請求項１８までのいずれかに記載のマルチプロセッサシステムにおける省電力制御装置を搭載するモバイル端末。
【請求項２０】
通常動作状態で動作させる通常動作モードと低消費電力状態で動作させる低消費電力モードを備え、前記割り当て制御手段と前記動作状態制御手段は、前記低消費電力モードの場合においてのみ起動されるように構成されている請求項１９に記載のモバイル端末。
【請求項２１】
前記通常動作モードと前記低消費電力モードとは、ユーザが設定可能であるように構成されている請求項２０に記載のモバイル端末。
【請求項２２】
前記通常動作モードと前記低消費電力モードとは、バッテリの残電力量が一定以下となった場合に切り替わるように構成されている請求項２０に記載のモバイル端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のタスクを分散処理する複数のプロセッサを備えるとともに、性能保証タスクと性能非保証タスクとが混在するマルチプロセッサシステムにおける省電力制御装置にかかわり、特には、リアルタイム性を保証しながら消費電力を効果的に削減するための技術に関する。また、上記と同様の機能を有するデジタルスチルカメラなどのモバイル端末に関する。リアルタイム性とは、所定時間内に所定のタスクを完了する能力のことである。本発明の技術は、特にマルチプロセッサ方式を採用している情報処理装置に好適に適用される。
【背景技術】
【０００２】
マルチプロセッサシステムは、複数のプロセッサから構成されるため、単一のプロセッサで構成されるシングルプロセッサシステムに比べて消費電力が大きい。マルチプロセッサシステムは、複数のプロセッサによって分散処理を行うのでシステム全体の処理効率は高いものの、低負荷状態ではすべてのプロセッサを用いて分散処理を行う必要はない。低負荷状態ですべてのプロセッサを動作させることは、システムとして必要以上の電力を消費することとなる。そのため、従来より、低負荷状態のときに消費電力の低減を図る技術が提案されている。
【０００３】
例えば、特許文献１に記載された省電力制御システムは、２以上のプロセッサ（ＣＰＵ）を備えるマルチプロセッサシステムにおいて、システムの動作状態を常に検知する状態監視手段と、前記状態監視手段に検知されるシステムの動作状態が所定の境界条件（しきい値）を超えて変化したとき、指定されたプロセッサについて状態遷移制御を行う状態制御手段とで構成されている。ここで状態遷移制御とは、プロセッサの動作状態を通常動作状態から動作待機状態に遷移させる省電力制御と、プロセッサの動作状態を動作待機状態から通常動作状態に遷移させる復帰制御との相互切り替えを行うことである。またシステムの動作状態とは、プロセッサの動作状態に関しての通常動作状態と動作待機状態とである。あるいは、キーボードからの入力待ち状態と低負荷状態とである。同文献では、状態監視手段に相当するものとしてシステム状態監視部が記載され、状態制御手段に相当するものとしてシステム状態制御部が記載されている。また、システムの動作状態が所定の境界条件を超えるとは、システムの構成要素間でやり取りされる信号を中継するバスの現時点における負荷状態を表す値が所定のしきい値を超えるということである。あるいは、システム全体におけるアプリケーション実行の現時点における負荷状態を表す値が所定のしきい値を超えるということである。あるいは、アプリケーションの機能を実現させるタスクを各々のプロセッサに分配するためのスケジューリング状態を表す値が所定のしきい値を超えるということである。
【０００４】
この従来技術においては、システムの動作状態すなわち時間的に変化する要素値（バス負荷状態、アプリケーション実行負荷状態、スケジューリング状態）が所定のしきい値を超えるか否かを常時的に監視し、時間的に変化する要素値がしきい値を下回るに至ったときは、プロセッサの動作状態を通常動作状態から動作待機状態に遷移させる。また、時間的に変化する要素値がしきい値を上回るに至ったときは、プロセッサの動作状態を動作待機状態から通常動作状態に遷移させる。具体的には、個々のプロセッサの動作状態を監視し、キー入力待ちなどのために特定のプロセッサに対する負荷が少ない状態が続くと、当該のプロセッサへ供給するクロックを低い周波数に切り替えることにより最適な消費電力での運用を維持する。
【０００５】
この従来技術の特徴は、
（ａ）バス負荷状態、アプリケーション実行負荷状態、スケジューリング状態などの「システムにおいて時間的に変化する要素値」を判断基準にしているということと、
（ｂ）制御対象であるプロセッサの動作状態の制御（通常動作状態から動作待機状態に遷移させる省電力制御と動作待機状態から通常動作状態に遷移させる復帰制御との切り替え）も時間経過に伴って遷移する、
ということである。つまり、監視対象も制御対象もともに時間的変化を伴うということが重点になっている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平８−６６８１号公報（段落［００１３］、［００１４］、［００１８］、［００２０］、［００２９］、［００７１］、［００７５］）
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記の特許文献１の省電力制御システムにおいては、システムの動作状態であるバス負荷状態、アプリケーション実行負荷状態、スケジューリング状態などの時間的に変化する要素値を判断基準としている。そのため、この時間的に変化する要素値を常時的に監視する必要がある。さらに、その判断結果に応じてプロセッサの動作状態を省電力制御と復帰制御との間で切り替え制御するが、この制御自体も時間的に遷移することになる。つまり、監視対象の時間的変化が制御対象の時間的変化を結果し、さらに制御対象の時間的変化が監視対象の時間的変化を誘起するという時間的循環が発生することになる。このような時間的循環を伴う常時的な監視および制御は、結果として、マルチプロセッサシステムの処理速度の低下を招くことになる。
【０００８】
加えて、プロセッサへの供給クロックの周波数低減の制御はプロセッサ負荷が低負荷状態になることを条件にしているため、プロセッサ負荷が低負荷状態にならない限り供給クロックの周波数を低減することができず、これでは効果的な消費電力削減にとって障害となる。
【０００９】
本発明は、このような事情に鑑みて創作したものであり、性能保証タスクと性能非保証タスクとが混在するマルチプロセッサシステムにおいて、時間的に変化する要素値を常時的に監視したり、プロセッサ動作状態を常時的に制御下に置いたりすることなく、またプロセッサ負荷が時間経過に伴って低負荷状態になることを前提条件にすることなく、リアルタイム性（所定時間内に所定のタスクを完了しなければならないという制約を満たすこと）を保証しながら消費電力を効果的に削減することが可能な省電力制御装置を提供することを目的としている。
【課題を解決するための手段】
【００１０】
（１）本発明によるマルチプロセッサシステムにおける省電力制御装置は、
複数のタスクを分散処理する複数のプロセッサを備えるとともに、性能保証タスクと性能非保証タスクとが混在するマルチプロセッサシステムにおいて、
各プロセッサに割り当てられるべき各性能保証タスクＴｉの処理性能値Φｉのそれぞれと、各性能保証タスクＴｉが必要とするリアルタイム性能時間τｉを加味したプロセッサＰｊの処理能力値Ｗｊのそれぞれとの相関関係に基づいて、使用プロセッサ数が最小限となるように、前記各性能保証タスクの前記各プロセッサへの割り当ての制御を行う割り当て制御手段と、
前記割り当て制御手段による割り当ての結果、前記性能保証タスクの割り当てが解消された不使用プロセッサの動作状態に対して省電力状態を適用する動作状態制御手段とを備えるものである。
【００１１】
個々の性能保証タスクＴｉ（ｉ＝１，２…ｎ）の属性として、そのタスクのサイズ（命令数）を表す処理性能値Φｉ（ｉ＝１，２…ｎ）がある。ある性能保証タスクＴｉについて、その実行完了に要する時間がリアルタイム性能時間τｉ（ｉ＝１，２…ｎ）である。一方、個々のプロセッサＰｊ（ｊ＝１，２…ｍ）には、それに割り当てられる性能保証タスクＴｉが必要とするリアルタイム性能時間τｉを加味したプロセッサの処理能力値Ｗｊ（ｊ＝１，２…ｍ）がある。この処理能力値Ｗｊは、そのプロセッサＰｊがリアルタイム性能時間τｉ内に処理することができるタスクの総処理量である。
【００１２】
割り当て制御手段は、性能保証タスクＴｉの処理性能値Φｉと、リアルタイム性能時間τｉを加味したプロセッサの処理能力値Ｗｊとの相関関係に基づいて、使用プロセッサ数が最小限となるように、各性能保証タスクＴｉの各プロセッサＰｊへの割り当ての制御を行う。ある任意のプロセッサ割り当て状態において、あるプロセッサに、他のプロセッサに割り当て済みの性能保証タスクの割り当て変更（移動）が可能であるという余力（処理能力の余裕）があれば、その性能保証タスクの割り当て変更を行う。これが性能保証タスクの再割り当てである。このような性能保証タスクの再割り当てを可能な限り進めれば、性能保証タスクの割り当てが解消された不使用プロセッサが出現し、さらにはそのような不使用プロセッサの数が増えるようになる。動作状態制御手段は、この性能保証タスクの割り当てが解消された不使用プロセッサの動作状態に対して省電力状態を適用する。もし省電力状態が適用されたプロセッサに性能非保証タスクが割り当てられているとしても、それは性能非保証であるので、省電力状態にしても性能保証上の問題は生じない。
【００１３】
ここでは、従来技術の場合のように、時間的に変化する要素値（プロセッサ負荷）を常時的に監視する必要もなければ、その要素値としきい値との比較結果が時間的に変動することに伴う動作状態の常時的な制御の必要もない。
【００１４】
このようにして、上記構成の省電力制御装置によれば、性能保証タスクと性能非保証タスクとが混在するマルチプロセッサシステムにおいて、プロセッサ負荷が時間経過に伴って低負荷状態になることを前提条件にすることなく、リアルタイム性を保証しながら消費電力を効果的に削減することが可能となる。
【００１５】
（２）上記（１）の構成において、前記割り当て制御手段は、前記性能保証タスクの他のプロセッサへの再割り当てが可能であるか否かを判断し、可能であるときに再割り当てを行うように構成されているという態様がある。この構成によれば、再割り当て可能な性能保証タスクについては、これを漏れなく再割り当てすることにより、使用プロセッサ数を確実に最小限にすることが可能となる。
【００１６】
（３）また上記（２）の構成において、前記割り当て制御手段は、判断対象の性能保証タスクＴｉの処理性能値Φｉを他のプロセッサＰｊの余力性能Ｍｊと比較し、前記判断対象の性能保証タスクＴｉの処理性能値Φｉが他のプロセッサＰｊの余力性能Ｍｊ以下のときにその判断対象の性能保証タスクを余力のある他のプロセッサに再割り当てするように構成されているという態様がある。ある性能保証タスクＴｉがすでにあるプロセッサに割り当てられているときに、その性能保証タスクＴｉを他のプロセッサに再割り当て可能か否かを判断するに際して、他のプロセッサの余力性能Ｍｊを検討する。すなわち、他のプロセッサの余力性能Ｍｊに比べて判断対象の性能保証タスクＴｉの処理性能値Φｉが小さいか等しい場合には、再割り当て可能と判断し、その性能保証タスクＴｉを他プロセッサに再割り当てする。
【００１７】
（４）上記（１）〜（３）の構成において、前記プロセッサＰｊの処理能力値Ｗｊは、当該プロセッサＰｊの単位時間当たりの処理能力ｑｊに、前記性能保証タスクＴｉのリアルタイム性能時間τｉを乗算したものであるという態様がある。すなわち、Ｗｊ＝ｑｊ×τｉである。これで、プロセッサＰｊの処理能力値Ｗｊについて、これを、性能保証タスクＴｉが必要とするリアルタイム性能時間τｉを加味したものにすることが可能となる。
【００１８】
（５）上記（３），（４）の構成において、前記プロセッサＰｊの余力性能Ｍｊは、前記性能保証タスクＴｉのリアルタイム性能時間τｉを加味した前記プロセッサＰｊの処理能力値Ｗｊから、当該プロセッサＰｊにすでに割り当て済みの性能保証タスクＴｉの処理性能値Φｉの総和ΣΦｉを減算したものであるという態様がある。すなわち、Ｍｊ＝Ｗｊ−ΣΦｉである。このような演算を採用することにより、リアルタイム性を保証した上での消費電力の削減の効果を良好に達成することが可能となる。
【００１９】
（６）上記（１）〜（５）の構成において、前記割り当て制御手段は、前記再割り当てのための性能保証タスクのプロセッサ間移動を最小限とするように構成されているという態様がある。この構成によれば、再割り当て自体を効率化することが可能となる。
【００２０】
（７）また上記（２）〜（６）の構成において、前記割り当て制御手段は、前記性能保証タスクの他のプロセッサへの再割り当てに際して、前記性能保証タスクが使用する資源のプロセッサ間競合が最小限となることを優先して再割り当てを行うように構成されているという態様がある。この構成によれば、資源のプロセッサ間競合を最小限とするので、マルチプロセッサシステムのトータルなタスク分散処理を効率良く進めることが可能となる。
【００２１】
（８）また上記（２）〜（６）の構成において、前記割り当て制御手段は、シーケンス的に処理する必要のある性能保証タスク群を優先して同一のプロセッサへ再割り当てするように構成されているという態様がある。この構成によれば、シーケンス的処理の性能保証タスクのディスパッチ回数が最小限となり、マルチプロセッサシステムのトータルなタスク分散処理を効率良く進めることが可能となる。ディスパッチ（dispatch）とは、オペレーティングシステム（ＯＳ）が処理する複数のタスクに対し、優先順位に従ってプロセッサの割り当てを行うことである（スケジューリングともいう）。
【００２２】
（９）また上記（１）〜（８）の構成において、前記割り当て制御手段は、前記性能保証タスクの再割り当てを行った後に前記性能非保証タスクのプロセッサ間での再割り当てを行う場合に、前記性能保証タスクの再割り当てが行われた前記プロセッサに対しては前記性能非保証タスクの再割り当てを禁止する状態で再割り当てを行うように構成されているという態様がある。使用プロセッサ数を最小限にするためのタスクの再割り当てについては、性能保証タスクの再割り当てを優先し、それが完了すれば、性能非保証タスクの再割り当てに進むこととする場合に、マルチプロセッサシステムのトータルなタスク分散処理の効率を可能な限り高く保つ状態で、性能非保証タスクの再割り当てが行える。
【００２３】
（１０）また上記（１）〜（９）の構成において、前記動作状態制御手段は、性能保証タスクの割り当てが解消された不使用プロセッサの動作モードを変更するように構成されているという態様がある。
【００２４】
（１１）さらに上記（１０）の構成において、前記性能保証タスクの割り当てが解消された不使用プロセッサの動作モードを変更するとは、前記不使用プロセッサへのクロック供給を停止することであるという態様がある。
【００２５】
（１２）また上記（１）〜（９）の構成において、前記動作状態制御手段は、性能保証タスクの割り当てが確定された使用プロセッサの動作モードを変更するように構成されているという態様がある。
【００２６】
（１３）さらに上記（１２）の構成において、前記性能保証タスクの割り当てが確定された使用プロセッサの動作モードを変更するとは、前記使用プロセッサの状態を低消費電力状態から通常動作状態へ変更すること、または、通常動作状態から高速動作状態へ変更することであるという態様がある。
【００２７】
（１４）また上記（１）〜（１３）の構成において、前記動作状態制御手段は、メモリのプロセッサへの割り当てを動的に変更するよう構成されているという態様がある。
【００２８】
（１５）さらに上記（１４）の構成において、前記メモリのプロセッサへの割り当てを動的に変更するとは、不使用プロセッサに割り当てられていたメモリを使用プロセッサへ再割り当てすることであるという態様がある。性能保証タスクの割り当てが解消された不使用プロセッサへ割り当てられていたメモリを、性能保証タスクの割り当てが確定された使用プロセッサに割り当て変更すれば、マルチプロセッサシステムのトータルなタスク分散処理をさらに効率良く進めることが可能となる。
【００２９】
（１６）また上記（１）〜（１５）の構成において、前記動作状態制御手段は、スヌーピング機能を備えたキャッシュのスヌープモードを変更するように構成されているという態様がある。スヌーピング（snooping）機能とは、周辺機器からのＤＭＡ（Direct Memory Access）などで、メモリ内容がキャッシュ内容と不一致にならないかを監視し、必要に応じてキャッシュ内容を破棄する機能のことである。
【００３０】
（１７）さらに上記（１６）の構成において、前記スヌーピング機能を備えたキャッシュのスヌープモードを変更するとは、前記不使用プロセッサのキャッシュのスヌープモードを停止させることであるという態様がある。不使用プロセッサのキャッシュのスヌープモードを停止させることにより、マルチプロセッサシステムのトータルなタスク分散処理の効率を高くすることが可能となる。
【００３１】
（１８）また上記（１）〜（１７）の構成において、前記動作状態制御手段は、前記割り当て制御手段による割り当ての結果、前記性能保証タスクの割り当てが解消された不使用プロセッサに代えて、または不使用プロセッサとともに、周辺デバイスの動作状態の変更を行うように構成されているという態様がある。単に不使用プロセッサを省電力状態に制御するだけでなく、不使用プロセッサに代えて、または不使用プロセッサとともに、周辺デバイスを省電力状態に制御することにより、マルチプロセッサシステムのトータルなタスク分散処理の効率をさらに高くすることが可能となる。
【００３２】
（１９）本発明によるモバイル端末は、上記（１）〜（１８）のいずれかのマルチプロセッサシステムにおける省電力制御装置を搭載したモバイル端末である。
【００３３】
（２０）上記（１９）の構成において、通常動作状態で動作させる通常動作モードと低消費電力状態で動作させる低消費電力モードを備え、前記割り当て制御手段と前記動作状態制御手段は、前記低消費電力モードの場合においてのみ起動されるように構成されているという態様がある。
【００３４】
（２１）また上記（２０）の構成において、前記通常動作モードと前記低消費電力モードとは、ユーザが設定可能であるように構成されているという態様がある。このように構成すれば、使用状況に応じた使い分けができ、使用勝手がよくなる。
【００３５】
（２２）また上記（２０）の構成において、前記通常動作モードと前記低消費電力モードとは、バッテリの残電力量が一定以下となった場合に切り替わるように構成されているという態様がある。これにより、バッテリの残電力量が多い状況下では能力フル状態で高速処理動作を保ち、バッテリの残電力量が少なくなったときに限って、低消費電力モードで動作させることが可能となる。
【発明の効果】
【００３６】
本発明によれば、性能保証タスクと性能非保証タスクとが混在するマルチプロセッサシステムにおいて、リアルタイム性を保持しつつ最小限のプロセッサ数でタスクの実行が可能なようにプロセッサへの性能保証タスクの割り当て制御を行い、性能保証タスクの割り当てが解消された不使用プロセッサの動作状態に対して省電力状態を適用するので、プロセッサ負荷が時間経過に伴って低負荷状態になることを前提条件にすることなく、リアルタイム性を保証しながら消費電力を効果的に削減することができる。
【図面の簡単な説明】
【００３７】
【図１】本発明の実施の形態１のマルチプロセッサシステムにおける省電力制御装置の構成を示すブロック図
【図２】本発明の実施の形態１における省電力制御装置の主要部の機能を表す機能説明図
【図３】本発明の実施の形態１における省電力制御装置のタスク管理情報の構造を示す図
【図４】本発明の実施の形態１における省電力制御装置の再割り当て前のタスク管理情報の具体的な内容を示す図
【図５】本発明の実施の形態１における省電力制御装置のプロセッサのＭＩＰＳ値の一例を示す図
【図６】本発明の実施の形態１における省電力制御装置のプロセッサの余力性能の説明図
【図７】本発明の実施の形態１における省電力制御装置の動作説明図
【図８】本発明の実施の形態１における省電力制御装置の再割り当て後のタスク管理情報の具体的な内容を示す図
【図９】本発明の実施の形態１における省電力制御装置の動作を示すフローチャート
【図１０】本発明の実施の形態２における省電力制御装置のタスク管理情報の構造を示す図
【図１１】本発明の実施の形態２における省電力制御装置の再割り当て前のタスク管理情報の具体的な内容を示す図
【図１２】本発明の実施の形態２における省電力制御装置の動作説明図
【図１３】本発明の実施の形態２における省電力制御装置の再割り当て後のタスク管理情報の具体的な内容を示す図
【図１４】本発明の実施の形態２における省電力制御装置の動作を示すフローチャート
【図１５】本発明の実施の形態３におけるデジタルスチルカメラの概略構成を示すブロック図
【図１６】本発明の実施の形態３におけるデジタルスチルカメラの主要部の機能を表す機能説明図
【発明を実施するための形態】
【００３８】
以下、本発明にかかわるマルチプロセッサシステムにおける省電力制御装置の実施の形態を図面を用いて詳細に説明する。以下では、すべての図を通じて同一または相当する要素には同じ参照符号を付してその重複する説明を省略する。
【００３９】
（実施の形態１）
図１は本発明の実施の形態１の性能保証タスクと性能非保証タスクとが混在するマルチプロセッサシステムにおける省電力制御装置の構成を示すブロック図である。図１において、１はＣＰＵ（Central Processing Unit）、２はＲＯＭ（Read Only Memory）、３はＲＡＭ（Random Access Memory）、４はクロック制御部、５は周辺デバイス、Ｐ１〜Ｐ４は第１ないし第４のプロセッサであり、これらの各構成要素はバス６を介して互いに接続されている。周辺デバイス５は複数のタスクを伴うもので、ここでは第１ないし第８のタスクＴ１〜Ｔ８を伴うものとなっている。αは性能保証を行うタスクである性能保証タスクを示し、βは性能保証を行わないタスクである性能非保証タスクを示す。ここでの一例では、第１ないし第５のタスクＴ１〜Ｔ５が性能保証タスクαに該当し、第６ないし第８のタスクＴ６〜Ｔ８が性能非保証タスクβに該当している。マルチプロセッサシステムは、一般的に複数のタスクＴｉ（ｉ＝１，２…ｎ）を複数のプロセッサＰｊ（ｊ＝１，２…ｍ）で分散処理するものである。ここでの一例では、整数ｎは、ｎ＝８であり、整数ｍは、ｍ＝４である。１０はＣＰＵ１とＲＯＭ２とＲＡＭ３の機能的結合によって生成されるオペレーティングシステム（ＯＳ）であり、このオペレーティングシステム１０には、少なくとも割り当て制御手段Ｅ１と動作状態制御手段Ｅ２とが含まれている。
【００４０】
割り当て制御手段Ｅ１は、複数のタスクを複数のプロセッサに割り当てるに際して、使用プロセッサ数が最小限となるように割り当ての制御を行うものとして構成されている（詳しくは後述する）。
【００４１】
動作状態制御手段Ｅ２は、割り当て制御手段Ｅ１による割り当ての結果、性能保証タスクＴｉの割り当てが解消された不使用プロセッサの動作状態に対して省電力状態を適用するものとして構成されている。省電力状態の適用に際しては、クロック制御部４でのクロック周波数の制御を介して行うものとなっている。
【００４２】
個々の性能保証タスクＴｉ（ｉ＝１，２…ｎ）の属性として、そのタスクのサイズ（命令数）を表す処理性能値Φｉ（ｉ＝１，２…ｎ）がある（図３、図４、図６参照）。各性能保証タスクＴｉが、それぞれある時間τｉ（ｉ＝１，２…ｎ）内に実行完了することが望まれているとする。その時間τｉがリアルタイム性能時間である。一方、個々のプロセッサＰｊ（ｊ＝１，２…ｍ）には、単位時間当たりに実行が可能な処理量を表す処理能力ｑｊ（ｊ＝１，２…ｍ）がある（図５、図６参照）。処理能力ｑｉは、ＭＩＰＳ値で表されることが多い。
【００４３】
リアルタイム性能時間τｉ内に単位時間当たりの処理能力ｑｊのプロセッサＰｊが実行可能な処理量である処理能力値Ｗｊは、
Ｗｊ＝ｑｊ×τｉ
となる（具体例については後述する）。
【００４４】
割り当て制御手段Ｅ１は、各性能保証タスクＴｉの各プロセッサＰｊへの割り当ての制御を行うに際して、各性能保証タスクＴｉの処理性能値Φｉ（ｉ＝１，２…ｎ）のそれぞれと、リアルタイム性能時間τｉ（ｉ＝１，２…ｎ）を加味したプロセッサＰｊの処理能力値Ｗｊ（より具体的には、余力性能Ｍｊ）（ｊ＝１，２…ｍ）のそれぞれとの相関関係に基づいて、使用プロセッサ数が最小限となるように制御するものとして構成されている。
【００４５】
また、動作状態制御手段Ｅ２は、割り当て制御手段Ｅ１による割り当ての結果、性能保証タスクＴｉの割り当てが解消された不使用プロセッサの動作状態に対して省電力状態を適用するものとして構成されている。省電力状態を適用するに際しては、クロック制御部４におけるクロック周波数の変更をもって対応するように構成されている。
【００４６】
図２は本実施の形態１における省電力制御装置の主要部の機能を表す機能説明図である。オペレーティングシステム１０は、第１ないし第４のプロセッサＰ１〜Ｐ４上で動作するものであり、第１ないし第８のタスクＴ１〜Ｔ８のプロセッサＰ１〜Ｐ４への割り当てと、プロセッサＰ１〜Ｐ４の動作状態とを制御する。
【００４７】
オペレーティングシステム１０における割り当て制御手段Ｅ１は、前段階の割り当て処理として、所定のアルゴリズムに従って、第１ないし第８のタスクＴ１〜Ｔ８を第１ないし第４のプロセッサＰ１〜Ｐ４に割り当てる。いま、割り当て制御手段Ｅ１は、図２に示すように、第１のタスクＴ１と第５のタスクＴ５とを第１のプロセッサＰ１に割り当て、第２のタスクＴ２と第６のタスクＴ６とを第２のプロセッサＰ２に割り当て、第３のタスクＴ３と第７のタスクＴ７とを第３のプロセッサＰ３に割り当て、第４のタスクＴ４と第８のタスクＴ８とを第４のプロセッサＰ４に割り当てているとする。また、第１ないし第５のタスクＴ１〜Ｔ５はリアルタイム性能が求められる性能保証タスクαであり、第６ないし第８のタスクＴ６〜Ｔ８はリアルタイム性能が求められない性能非保証タスクβであるとする。
【００４８】
性能保証タスクＴ１〜Ｔ５が４つのプロセッサＰ１〜Ｐ４に振り分けて割り当てられていることになる。このあらかじめの割り当て状態において、割り当て制御手段Ｅ１は、性能保証タスクＴ１〜Ｔ５のうち、現在の割り当てプロセッサから他のプロセッサへ再割り当て可能なタスクおよびプロセッサが存在するか否かを判断する。割り当て制御手段Ｅ１は、各プロセッサＰ１〜Ｐ４に割り当てられている各性能保証タスクＴ１〜Ｔ５の処理性能値Φ１〜Φ５のそれぞれと、各プロセッサＰ１〜Ｐ４において割り当てられている性能保証タスクＴ１〜Ｔ５が必要とするリアルタイム性能時間τ１〜τ５を加味したプロセッサの処理能力値Ｗ１〜Ｗ４のそれぞれとの相関関係に基づいて、性能保証タスクＴ１〜Ｔ５の他のプロセッサへの再割り当てが可能であるか否かを判断する（より詳しくは後述する）。
【００４９】
図３は個々のタスクＴ１〜Ｔ８がそれぞれ保持しているタスク管理情報２０の構造を示す。このタスク管理情報２０は、リアルタイム性能が求められる処理か否かを示すリアルタイムフラグ情報ａ１と、リアルタイム性能を保証するために必要な性能を示すリアルタイム性能情報ａ２と、実際の処理性能を示す処理性能情報ａ３とから構成されている。
【００５０】
リアルタイムフラグ情報ａ１については、リアルタイム性能が求められる処理であることを示すときは“１”が設定され、リアルタイム性能が求められない処理であることを示すときは“０”が設定される。
【００５１】
リアルタイム性能情報ａ２については、当該のタスクＴｉ（ｉ＝１，２…ｎ）を一定時間内に実行完了しなければならない場合の、その処理に要する時間を表す。具体的には、リアルタイム性能時間τｉ（ｉ＝１，２…ｎ）に対応し、本動作例では単位がｍｓ（ミリ秒）となっている。
【００５２】
処理性能情報ａ３については、当該のタスクＴｉがもつ負荷量（処理量）であり、具体的には処理性能値Φｉ（ｉ＝１，２…ｎ）に対応するものであって、ＫＩ（Kilo Instructions：１０００命令）を単位とする命令数に相当している。
【００５３】
オペレーティングシステム１０は、個々のタスクＴｉ（ｉ＝１，２…ｎ）について、それぞれのリアルタイムフラグ情報ａ１に基づいて、リアルタイム性能が求められる性能保証タスクαかリアルタイム性能が求められない性能非保証タスクβかを判定し、さらにその判定結果において性能保証タスクαについては、リアルタイム性能情報ａ２と処理性能情報ａ３とに基づいて、リアルタイム性能を保証しながらプロセッサＰｊ（ｊ＝１，２…ｍ）へ割り当てる方法の中で、使用プロセッサ数が最小限となるように割り当て方法を判定し、その判定結果の割り当て方法に従って性能保証タスクαを適切なプロセッサへ割り当てする。この割り当てには、再割り当ても含まれる。ここで、性能保証タスクαか性能非保証タスクβかの判定の処理と、使用プロセッサ数が最小限となる状態での性能保証タスクの割り当ての処理との２つの処理が行われるが、これらの処理はオペレーティングシステム１０における割り当て制御手段Ｅ１が担当する。
【００５４】
以下、オペレーティングシステム１０がリアルタイム性能を保証しながらプロセッサへ再割り当てを行う方法について説明する。
【００５５】
図４は第１ないし第８のタスクＴ１〜Ｔ８についてのタスク管理情報２０の具体的な内容を示し、図５は第１ないし第４のプロセッサＰ１〜Ｐ４の単位時間当たりの処理能力ｑｊ（ｊ＝１，２…４）であるＭＩＰＳ値の一例を示す。
【００５６】
第１のプロセッサＰ１に割り当てられている第１のタスクＴ１は、リアルタイム性能が求められる性能保証タスクαに相当する。この第１のタスクＴ１のタスク管理情報２０を見ると、リアルタイムフラグ情報ａ１が“１”となっている。また、リアルタイム性能情報ａ２であるリアルタイム性能時間τ１は１０ｍｓであり、処理性能情報ａ３である処理性能値Φ１は５０ＫＩ（Kilo Instructions）である（τ１＝１０ｍｓ、Φ１＝５０ＫＩ）。同じく第１のプロセッサＰ１に割り当てられている第５のタスクＴ５も、性能保証タスクαに相当し、リアルタイムフラグ情報ａ１が“１”となっている。また、リアルタイム性能時間τ５は同じく１０ｍｓであり、処理性能値Φ５は１０ＫＩである（τ５＝１０ｍｓ、Φ５＝１０ＫＩ）。
【００５７】
第２のプロセッサＰ２に割り当てられている第２のタスクＴ２は、性能保証タスクαに相当し、リアルタイムフラグ情報ａ１が“１”となっている。また、リアルタイム性能時間τ２は１２ｍｓであり、処理性能値Φ２は６０ＫＩである（τ２＝１２ｍｓ、Φ２＝６０ＫＩ）。同じく第２のプロセッサＰ２に割り当てられている第６のタスクＴ６は、リアルタイム性能が求められない性能非保証タスクβに相当し、リアルタイムフラグ情報ａ１が“０”となっている。また、リアルタイム性能時間τ６は０ｍｓであり、処理性能値Φ６は０ＫＩである（τ６＝０ｍｓ、Φ６＝０ＫＩ）。
【００５８】
第３のプロセッサＰ３に割り当てられている第３のタスクＴ３は、性能保証タスクαに相当し、リアルタイムフラグ情報ａ１が“１”となっている。また、リアルタイム性能時間τ３は１２ｍｓであり、処理性能値Φ３は５０ＫＩである（τ３＝１２ｍｓ、Φ３＝５０ＫＩ）。同じく第３のプロセッサＰ３に割り当てられている第７のタスクＴ７は、性能非保証タスクβに相当し、リアルタイムフラグ情報ａ１が“０”となっている。また、リアルタイム性能時間τ７は０ｍｓであり、処理性能値Φ７は０ＫＩである（τ７＝０ｍｓ、Φ７＝０ＫＩ）。
【００５９】
第４のプロセッサＰ４に割り当てられている第４のタスクＴ４は、性能保証タスクαに相当し、リアルタイムフラグ情報ａ１が“１”となっている。また、リアルタイム性能時間τ４は１０ｍｓであり、処理性能値Φ４は４０ＫＩである（τ４＝１０ｍｓ、Φ４＝４０ＫＩ）。同じく第４のプロセッサＰ４に割り当てられている第８のタスクＴ８は、性能非保証タスクβに相当し、リアルタイムフラグ情報ａ１が“０”となっている。また、リアルタイム性能時間τ８は０ｍｓであり、処理性能値Φ８は０ＫＩである（τ８＝０ｍｓ、Φ８＝０ＫＩ）。
【００６０】
図５を見ると、第１のプロセッサＰ１の単位時間当たりの処理能力ｑ１のＭＩＰＳ値は１０ＭＩＰＳ、同じく、第２ないし第４のプロセッサＰ２，Ｐ３，Ｐ４の単位時間当たりの処理能力ｑ２，ｑ３，ｑ４のＭＩＰＳ値はいずれも１０ＭＩＰＳである（ｑ１＝ｑ２＝ｑ３＝ｑ４＝１０ＭＩＰＳ）。ＭＩＰＳ（Million Instructions Per Second）はコンピュータの処理能力を表す単位であり、１ＭＩＰＳは１秒間に１００万命令を実行する処理能力である。
【００６１】
オペレーティングシステム１０における割り当て制御手段Ｅ１は、リアルタイム性能情報ａ２と処理性能情報ａ３とを参照して、第１のタスクＴ１については１０ｍｓ以内に５０ＫＩの処理を実行する必要があると判定し、第２のタスクＴ２については１２ｍｓ以内に６０ＫＩの処理を実行する必要があると判定し、第３のタスクＴ３については１２ｍｓ以内に５０ＫＩの処理を実行する必要があると判定し、第４のタスクＴ４については１０ｍｓ以内に４０ＫＩの処理を実行する必要があると判定し、第５のタスクＴ５については１０ｍｓ以内に１０ＫＩの処理を実行する必要があると判定する。
【００６２】
さらに、割り当て制御手段Ｅ１は、リアルタイムフラグ情報ａ１が“１”となっている第１ないし第５のタスクＴ１〜Ｔ５について、それぞれをプロセッサに対するタスクの再割り当ての対象とすべきことを判定する。このプロセッサに対するタスクの再割り当ては、個々のタスクＴ１〜Ｔ５の処理性能値Φ１〜Φ５のそれぞれと、個々のプロセッサＰｊ（ｊ＝１，２…４）の余力性能Ｍｊ（ｊ＝１，２…４）との比較対照に基づいて行う。
【００６３】
ここで、図６を用いてプロセッサＰｊの余力性能Ｍｊ（ｊ＝１，２…ｍ）について説明する。
【００６４】
タスクＴｉ（Ｔａ，Ｔｂ）のリアルタイム性能時間τｉを加味したプロセッサＰｊの処理能力値Ｗｊは、プロセッサＰｊの単位時間当たりの処理能力ｑｊにリアルタイム性能時間τｉを乗算したもので、前述の通り、
Ｗｊ＝ｑｊ×τｉ
である。この処理能力値Ｗｊは、図で太線で囲った矩形の面積（全体面積）に相当する。矩形の横幅はプロセッサＰｊの単位時間当たりの処理能力ｑｊを表し、縦軸方向は時間軸方向である。このように時間軸方向の要素が加味されているところが、従来技術との比較上のポイントとなっている。
【００６５】
第１のプロセッサＰ１の単位時間当たりの処理能力をｑ１、第１のプロセッサＰ１に割り当てられた性能保証タスクＴ１のリアルタイム性能時間をτ１として、第１のプロセッサＰ１のリアルタイム性能時間τ１に相当する処理能力値Ｗ１は、
Ｗ１＝ｑ１×τ１
となる。
【００６６】
第２のプロセッサＰ２の単位時間当たりの処理能力をｑ２、第２のプロセッサＰ２に割り当てられた性能保証タスクＴ２のリアルタイム性能時間をτ２として、第２のプロセッサＰ２のリアルタイム性能時間τ２に相当する処理能力値Ｗ２は、
Ｗ２＝ｑ２×τ２
となる。
【００６７】
第３のプロセッサＰ３の単位時間当たりの処理能力をｑ３、第３のプロセッサＰ３に割り当てられた性能保証タスクＴ３のリアルタイム性能時間をτ３として、第３のプロセッサＰ３のリアルタイム性能時間τ３に相当する処理能力値Ｗ３は、
Ｗ３＝ｑ３×τ３
となる。
【００６８】
第４のプロセッサＰ４の単位時間当たりの処理能力をｑ４、第４のプロセッサＰ４に割り当てられた性能保証タスクＴ４のリアルタイム性能時間をτ４として、第４のプロセッサＰ４のリアルタイム性能時間τ４に相当する処理能力値Ｗ４は、
Ｗ４＝ｑ４×τ４
となる。なお、マルチプロセッサシステムにおける４つのプロセッサＰ１〜Ｐ４において、それぞれの単位時間当たりの処理能力ｑ１〜ｑ４は互いに等しいのが一般的である（ｑ１＝ｑ２＝ｑ３＝ｑ４）。
【００６９】
図４の例であれば、第１のプロセッサＰ１の処理能力値Ｗ１は、単位時間当たりの処理能力ｑ１＝１０ＭＩＰＳにリアルタイム性能時間τ１＝１０ｍｓを掛け算したもので、
Ｗ１＝１０ＭＩＰＳ×１０ｍｓ＝１００ＫＩ
となる（図７（ａ）左端のブロック参照）。
【００７０】
図６において、プロセッサＰｊに割り当てられた性能保証タスクをＴａ，Ｔｂとし、タスクＴａの処理性能値をΦａ、タスクＴｂの処理性能値をΦｂとすると、現在割り当ての性能保証タスクＴａ，Ｔｂの処理性能値総和ΣΦｉは、
ΣΦｉ＝Φａ＋Φｂ
となる。第１のプロセッサＰ１の処理性能値総和ΣΦｉは、図６において太線の矩形の
内部における塗りつぶし部分に対応する。図４の例では、
ΣΦｉ＝Φ１＋Φ５＝５０ＫＩ＋１０ＫＩ＝６０ＫＩ
となる（図７（ａ）左端のブロック参照）。
【００７１】
図６において、プロセッサＰｊの余力性能Ｍｊは、タスクＴｉ（Ｔａ，Ｔｂ）のリアルタイム性能時間τｉを加味したプロセッサＰｊの処理能力値Ｗｊ（＝ｑｊ×τｉ）から、現在割り当ての性能保証タスクＴｉの処理性能値総和ΣΦｉを減算したものであり
、
Ｍｊ＝Ｗｊ−ΣΦｉ
＝ｑｊ×τｉ−ΣΦｉ
＝ｑｊ×τｉ−（Φａ＋Φｂ）
となる。すなわち、余力性能Ｍｊは、プロセッサＰｊの単位時間当たりの処理能力ｑｊ（ＭＩＰＳ値）と判断対象のタスクのリアルタイム性能時間τｉの値との乗算結果から、当該のプロセッサＰｊに割り当てられているタスクの加算結果（処理性能値総和ΣΦ
ｉ）を減算したものである（余力性能Ｍｊ＝ｑｊ×τｉ−ΣΦｉ）。余力性能Ｍｊは、
図６において太線の矩形の内部における白色部分に対応する。
【００７２】
割り当て制御手段Ｅ１は、まずは、余力性能Ｍｊ（＝ｑｊ×τｉ−ΣΦｉ）が最小と
なるプロセッサを検索する。
【００７３】
ここで、図４、図５の例について、第１ないし第４のプロセッサＰ１〜Ｐ４それぞれの余力性能Ｍ１〜Ｍ４を求めておく。その計算式は、
Ｍ１＝Ｗ１−（Φ１＋Φ５）＝ｑ１×τ１−（Φ１＋Φ５）
Ｍ２＝Ｗ２−（Φ２＋Φ６）＝ｑ２×τ２−Φ２
Ｍ３＝Ｗ３−（Φ３＋Φ７）＝ｑ３×τ３−Φ３
Ｍ４＝Ｗ４−（Φ４＋Φ８）＝ｑ４×τ４−Φ４
となる。
【００７４】
以下では、具体的な動作例を図７を用いながら説明する。図７は実施の形態１における省電力制御装置の動作説明図である。図７では、第１のプロセッサＰ１と第４のプロセッサＰ４の縦軸方向幅が互いに等しく、また第２のプロセッサＰ２と第３のプロセッサＰ３の縦軸方向幅が互いに等しいが、前者（リアルタイム性能時間＝１０ｍｓ）と後者（リアルタイム性能時間＝１２ｍｓ）では縦軸方向幅が互いに相違している。上記の余力性能Ｍｊについての一連の式に具体的数値を代入すると、第１のプロセッサＰ１の余力性能Ｍ１は、
Ｍ１＝ｑ１×τ１−（Φ１＋Φ５）
＝［（１０ＭＩＰＳ×１０ｍｓ）−（５０ＫＩ＋１０ＫＩ）］
＝１００ＫＩ−６０ＫＩ＝４０ＫＩ
となる（図４の最下段と図７（ａ）左端のブロック参照）。
【００７５】
第２のプロセッサＰ２の余力性能Ｍ２は、
Ｍ２＝［（１０ＭＩＰＳ×１２ｍｓ）−（６０ＫＩ＋０ＫＩ）］＝６０ＫＩ
第３のプロセッサＰ３の余力性能Ｍ３は、
Ｍ３＝［（１０ＭＩＰＳ×１２ｍｓ）−（５０ＫＩ＋０ＫＩ）］＝７０ＫＩ
第４のプロセッサＰ４の余力性能Ｍ４は、
Ｍ４＝［（１０ＭＩＰＳ×１０ｍｓ）−（４０ＫＩ＋０ＫＩ）］＝６０ＫＩ
となる。
【００７６】
以上で、４つのプロセッサＰ１〜Ｐ４それぞれの余力性能Ｍ１〜Ｍ４が求められた。
【００７７】
ここで、割り当て制御手段Ｅ１は、余力性能Ｍｊの値が最小となるプロセッサを検索する。第１ないし第４のプロセッサＰ１〜Ｐ４の余力性能Ｍ１〜Ｍ４（４０ＫＩ，６０ＫＩ，７０ＫＩ，６０ＫI）のうち最小の余力性能は、第１のプロセッサＰ１の余力性能Ｍ１＝４０ＫＩである。すなわち、余力性能が最小であるプロセッサは第１のプロセッサＰ１である。
【００７８】
次に、割り当て制御手段Ｅ１は、再割り当ての可能性を検索する。すなわち、最小の余力性能Ｍ１＝４０ＫＩに該当する第１のプロセッサＰ１以外の第２、第３、第４のプロセッサＰ２，Ｐ３，Ｐ４に割り当てられているタスクは、第２のタスクＴ２、第３のタスクＴ３および第４のタスクＴ４である。これら３つのタスクＴ２，Ｔ３，Ｔ４について、第１のプロセッサＰ１へ再割り当て可能なタスクが存在するか否かを、第１のプロセッサＰ１の余力性能Ｍ１＝４０ＫＩを基準にして検索する。
【００７９】
第２のタスクＴ２は、その処理性能値Φ２が６０ＫＩであり、第１のプロセッサＰ１の余力性能Ｍ１＝４０ＫＩより大きいので、第１のプロセッサＰ１への再割り当ては不可能である。
【００８０】
第３のタスクＴ３は、その処理性能値Φ３が５０ＫＩであり、やはり第１のプロセッサＰ１の余力性能Ｍ１＝４０ＫＩより大きいので、第１のプロセッサＰ１への再割り当ては不可能である。
【００８１】
第４のタスクＴ４は、その処理性能値Φ４が４０ＫＩであり、第１のプロセッサＰ１の余力性能Ｍ１＝４０ＫＩの大きさ範囲内に収まるので、第１のプロセッサＰ１への再割り当てが可能である。
【００８２】
そこで、図７（ａ）から図７（ｂ）への矢印で示すように、それまで第４のプロセッサＰ４に割り当てられていた第４のタスクＴ４を第１のプロセッサＰ１へ再割り当て（移動）する。この再割り当ての結果、第１のプロセッサＰ１の余力性能Ｍ１は０ＫＩとなり、第４のプロセッサＰ４はプロセッサの割り当てが解消される。
【００８３】
以上により、
第１のプロセッサＰ１の余力性能Ｍ１は、Ｍ１＝０ＫＩ（フル割り当て）
第２のプロセッサＰ２の余力性能Ｍ２は、Ｍ２＝６０ＫＩ（変化なし）
第３のプロセッサＰ３の余力性能Ｍ３は、Ｍ３＝７０ＫＩ（変化なし）
第４のプロセッサＰ４の余力性能Ｍ４は、Ｍ４＝１００ＫＩ（割り当て解消）
となる。
【００８４】
結果として、次に余力性能が最小であるプロセッサは、６０ＫＩの第２のプロセッサＰ２となる。以下、図７（ｂ）に従って説明する。
【００８５】
最小の余力性能Ｍ２＝６０ＫＩに該当する第２のプロセッサＰ２以外で割り当てられているタスクは、第３のタスクＴ３である。このタスクＴ３について、再割り当て可能なタスクか否かを、第２のプロセッサＰ２の余力性能Ｍ２＝６０ＫＩを基準にして検索する。
【００８６】
第３のタスクＴ３は、その処理性能値Φ３が５０ＫＩであり、第２のプロセッサＰ２の余力性能Ｍ２＝６０ＫＩの大きさ範囲内に収まるので、第２のプロセッサＰ２への再割り当てが可能である。
【００８７】
そこで、図７（ｂ）から図７（ｃ）への矢印で示すように、それまで第３のプロセッサＰ３に割り当てられていた第３のタスクＴ３を第２のプロセッサＰ２へ再割り当て（移動）する。この再割り当ての結果、第２のプロセッサＰ２の余力性能Ｍ２は１０ＫＩとなり、第３のプロセッサＰ３はプロセッサの割り当てが解消される。
【００８８】
以上により、
第１のプロセッサＰ１の余力性能Ｍ１は、Ｍ１＝０ＫＩ（フル割り当て）
第２のプロセッサＰ２の余力性能Ｍ２は、Ｍ２＝１０ＫＩ（減少）
第３のプロセッサＰ３の余力性能Ｍ３は、Ｍ３＝１２０ＫＩ（割り当て解消）
第４のプロセッサＰ４の余力性能Ｍ４は、Ｍ４＝１００ＫＩ（割り当て解消）
となる。
【００８９】
以上のように再割り当てすると、第１のプロセッサＰ１に第１のタスクＴ１と第５のタスクＴ５と第４のタスクＴ４が割り当てられ、第２のプロセッサＰ２に第２のタスクＴ２と第６のタスクＴ６と第３のタスクＴ３が割り当てられ、第３のプロセッサＰ３には第７のタスクＴ７が割り当てられ、第４のプロセッサＰ４には第８のタスクＴ８が割り当てられた状態となる。性能保証タスクＴ１〜Ｔ５だけに注目し、性能非保証タスクＴ６〜Ｔ８は無視すると、第１のプロセッサＰ１には第１のタスクＴ１と第５のタスクＴ５と第４のタスクＴ４が割り当てられ、第２のプロセッサＰ２には第２のタスクＴ２と第３のタスクＴ３が割り当てられ、第３のプロセッサＰ３と第４のプロセッサＰ４には割り当てがない状態となる。結果として、これ以上の再割り当て可能な性能保証タスクはなくなる。
【００９０】
以上の割り当て制御手段Ｅ１によるタスクのプロセッサへの割り当ておよび再割り当ての処理が完了すると、次に動作状態制御手段Ｅ２が起動し、性能保証タスクの割り当てが解消された第３のプロセッサＰ３と第４のプロセッサＰ４の動作状態に対して省電力状態を適用する。ここでは、動作状態制御手段Ｅ２がクロック制御部４を制御して、第３のプロセッサＰ３および第４のプロセッサＰ４に対するクロックの供給を停止する。第３のプロセッサＰ３、第４のプロセッサＰ４には、性能保証タスクαは割り当てられていないから、クロックの供給の停止は問題ない。
【００９１】
以上のようにして、図４の状態から始めてタスクの再割り当て（移動）を実行した結果を図８に示す。リアルタイムフラグ情報ａ１が“１”となっている第１ないし第５のタスクＴ１〜Ｔ５は、第１のプロセッサＰ１と第２のプロセッサＰ２とに集約され、使用プロセッサ数が最小限となる割り当てが実現されている。
【００９２】
図９は本実施の形態１の省電力制御装置の動作を示すフローチャートである。以下、このフローチャートに従って動作を説明する。
【００９３】
まずステップＳ１において、オペレーティングシステム１０の割り当て制御手段Ｅ１は、余力性能Ｍｊの値が最小となるプロセッサを検索する。より詳しくは、次のとおりである。
【００９４】
余力性能Ｍｊを、処理能力値Ｗｊと処理性能値総和ΣΦｉの差分として求める（Ｍｊ
＝Ｗｊ−ΣΦｉ）。処理能力値Ｗｊは、プロセッサＰｊの単位時間当たりの処理能力ｑｊにリアルタイム性能時間τｉを乗算したものとして求める（Ｗｊ＝ｑｊ×τｉ）。すなわち、余力性能Ｍｊは、
Ｍｊ＝ｑｊ×τｉ−ΣΦｉ
に従って求める。ステップＳ１では、この余力性能Ｍｊの値が最小となるプロセッサを検索する。
【００９５】
次いでステップＳ２において、別のプロセッサに割り当てられているタスクの中でステップＳ１にて検索されたプロセッサへ性能保証が可能なまま再割り当て可能なタスク（タスクＡ）が存在するかどうかを検索する。上記の動作例では、第４のプロセッサＰ４に割り当てられていたタスクＴ４が該当する。
【００９６】
ステップＳ３は、ステップＳ２にて検索された結果において、再割り当て可能タスク（タスクＡ）が存在するか否かに応じて分岐を行う処理である。再割り当て可能タスク（タスクＡ）が存在すると判定したときはステップＳ４に分岐し、再割り当て可能タスク（タスクＡ）が存在しないと判定したときはステップＳ５に分岐する。
【００９７】
ステップＳ４においては、再割り当て可能タスク（タスクＡ）をステップＳ１で検索したプロセッサへ移動させ、再度ステップＳ２へ移行する。
【００９８】
ステップＳ２，Ｓ３，Ｓ４のループを繰り返すと、ステップＳ１で求めたプロセッサに対する再割り当て可能なタスクの検索の処理が終了したことになり、ステップＳ３からステップＳ５へと進む。
【００９９】
ステップＳ５において、再割り当て未完了のプロセッサ・タスクが存在するかどうかを判定し、再割り当て未完了のプロセッサ・タスクが存在すると判定された場合は、再割り当て未完了のプロセッサ・タスクについて、再度ステップＳ１から同様のステップを繰り返す。
【０１００】
ステップＳ５にて再割り当て未完了のプロセッサ・タスクが存在しないと判定された場合は、ステップＳ６に進む。ステップＳ６において、動作状態制御手段Ｅ２は、リアルタイムフラグ情報ａ１が“１”のタスクの割り当てが解消された不使用プロセッサについて、クロック制御部４を介してクロック供給を停止することにより消費電力を削減する。
【０１０１】
以上で説明したように本実施の形態１の省電力制御装置においては、各プロセッサＰｊ（ｊ＝１，２…ｍ）に割り当てられる性能保証タスクＴｉが必要とするリアルタイム性能時間τｉ（ｉ＝１，２…ｎ）を加味した要素値としてプロセッサＰｊの処理能力値Ｗｊを用いることとし、割り当て制御手段Ｅ１は、各プロセッサＰｊに割り当てられるべき各性能保証タスクＴｉの処理性能値Φｉ（ｉ＝１，２…ｎ）のそれぞれと、プロセッサＰｊの処理能力値Ｗｊ（ｊ＝１，２…ｍ）のそれぞれとの相関関係に基づいて、使用プロセッサ数が最小限となるように、各性能保証タスクＴｉの各プロセッサＰｊへの割り当ての制御を行うものとして構成されている。より詳しくは、判断対象の性能保証タスクＴｉの処理性能値Φｉを他のプロセッサＰｊの余力性能Ｍｊと比較し、判断対象の性能保証タスクＴｉの処理性能値Φｉが他のプロセッサＰｊの余力性能Ｍｊ以下のときにその判断対象の性能保証タスクを余力のある他のプロセッサに再割り当てするように構成されている。そして、動作状態制御手段Ｅ２は、割り当て制御手段Ｅ１による割り当ての結果、性能保証タスクＴｉの割り当てが解消された不使用プロセッサの動作状態に対して省電力状態を適用するものとして構成されている。その結果として、本実施の形態１の省電力制御装置によれば、性能保証タスクと性能非保証タスクとが混在するマルチプロセッサシステムにおいて、時間的に変化する要素値を常時的に監視したり、プロセッサ動作状態を常時的に制御下に置いたりすることなく、また従来技術のようにプロセッサ負荷が時間経過に伴って低負荷状態になることを前提条件にすることなく、リアルタイム性を保証しながら消費電力を効果的に削減することができる。
【０１０２】
なお、性能保証タスクの割り当てが解消された不使用プロセッサへのクロック供給を停止する代わりに、周波数を低く（低クロックモードに）してもよい（※１）。
【０１０３】
また、プロセッサの動作モードを変更することとし、性能保証タスクの割り当てが確定された使用プロセッサの動作モードについて、プロセッサのクロック供給を低クロックモードから高クロックモードへ変更するのでもよいし、低消費電力状態から通常動作状態へ変更するようにしてもよい（※２）。
【０１０４】
なお、性能保証タスクの割り当てが解消された不使用プロセッサに割り当てられていたメモリを、性能保証タスクが割り当てられている使用プロセッサへ再割り当てるように構成してもよい。あるいは、性能保証タスクの割り当てが解消された不使用プロセッサのキャッシュモードを変更するのでもよい。例えば、スヌーピング機能を備えたキャッシュにおいては、周辺機器からのＤＭＡなどによって、メモリ内容がキャッシュ内容と不一致にならないかを監視し、不一致となった場合にはキャッシュ内容を破棄するように機能している。そこで、性能保証タスクの割り当てが解消された不使用プロセッサについては、そのキャッシュのスヌープモードを停止させる。スヌープモードを停止させることにより、マルチプロセッサシステムのトータルなタスク分散処理の効率を高くすることが可能となる（※３）。
【０１０５】
なお、本実施の形態１では、リアルタイムフラグ情報ａ１により性能非保証タスクを判定しているが、例えば、リアルタイム性能情報ａ２あるいは処理性能情報ａ３の値が“０”のタスクを性能非保証タスクと判定してもよい（※４）。
【０１０６】
なお、本実施の形態１ではステップＳ１にて、余力性能Ｍｊ（＝ｑｊ×τｉ−ΣΦｉ
）の値が最小となるプロセッサを検索しているが、余力性能Ｍｊの値が最大となるプロセッサを優先してもよいし、または単純にプロセッサ番号の昇順や降順に従って検索するのでもよい（※５）。
【０１０７】
なお、図９に示すフローチャートのステップにおいては、ループ処理（Ｓ２→Ｓ３→Ｓ４→Ｓ２…、Ｓ１→Ｓ２→Ｓ３→Ｓ５→Ｓ１…）が含まれるため、このループ処理時間が長くなる可能性もある。そのため、図９に示すフローチャートのステップを実行するか否かを判定する（つまり、図９の「開始」へ処理を移行するか否かを判定する）処理を別途行うように構成してもよい（※６）。
【０１０８】
なお、本実施の形態１では割り当て制御手段Ｅ１と動作状態制御手段Ｅ２は、ＣＰＵ１とＲＯＭ２とＲＡＭ３の機能的結合によるオペレーティングシステム１０をもって構成されているが、このオペレーティングシステム１０に代えて専用のＤＳＰ（Digital Signal Processor）をもって構成してもよい（※７）。
【０１０９】
（実施の形態２）
本発明の実施の形態２は、性能保証タスクが使用する資源について競合がないことを優先条件にして、性能保証タスクのプロセッサへの再割り当てを行うように構成したものである。
【０１１０】
本実施の形態２のマルチプロセッサシステムにおける省電力制御装置の構成については、実施の形態１の場合の図１が援用される。
【０１１１】
図１０は実施の形態２の場合において、個々のタスクＴ１〜Ｔ８がそれぞれ保持しているタスク管理情報２０の構造を示す。このタスク管理情報２０は、実施の形態１の場合の図３でのリアルタイムフラグ情報ａ１、リアルタイム性能情報ａ２および処理性能情報ａ３に加えて、各タスクがそれぞれ使用する資源を示す使用資源情報ａ４も保持している。
【０１１２】
図１１は実施の形態２の場合において、第１ないし第８のタスクＴ１〜Ｔ８についてのタスク管理情報２０の具体的な内容を示す。第１ないし第４のプロセッサＰ１〜Ｐ４の単位時間当たりの処理能力ｑｊ（ｊ＝１，２…４）であるＭＩＰＳ値については、実施の形態１の場合の図５が援用される。
【０１１３】
図１１において、実施の形態１の場合の図４と相違する点は、リアルタイム性能時間τｉについてである。実施の形態１（図４）の場合には、第１および第４のプロセッサＰ１，Ｐ４のリアルタイム性能時間τ１とτ４は等しく１０ｍｓであり、また第２および第３のプロセッサＰ２，Ｐ３のリアルタイム性能時間τ２とτ３は等しく１２ｍｓである。τ１，τ４とτ２，τ３とでは相違している。これに対して、本実施の形態２では、すべての性能保証タスクαＴ１〜Ｔ５のリアルタイム性能時間τ１〜τ５は互いに等しく、すべて１０ｍｓとなっている。
【０１１４】
図１２（ａ）は図１１に対応している。図４との比較で説明すると、リアルタイムフラグ情報ａ１については同じであり、リアルタイム性能時間τｉ、処理性能値Φｉについては、第１のタスクＴ１、第４のタスクＴ４および第５のタスクＴ５では同じである。第２のタスクＴ２と第３のタスクＴ３では相違している。すなわち、第２のタスクＴ２では、リアルタイム性能時間τ２は１０ｍｓであり、処理性能値Φ２は４０ＫＩである（τ２＝１０ｍｓ、Φ２＝４０ＫＩ）。第３のタスクＴ３では、リアルタイム性能時間τ３は１０ｍｓであり、処理性能値Φ３は３０ＫＩである（τ３＝１０ｍｓ、Φ３＝３０ＫＩ）。
【０１１５】
本実施の形態２において、オペレーティングシステム１０の割り当て制御手段Ｅ１は、使用資源情報ａ４を参照して、第１のタスクＴ１は資源Ａと資源Ｂを使用すると判定し、第２のタスクＴ２は資源Ｃと資源Ｄを使用すると判定し、第３のタスクＴ３は資源Ａと資源Ｃを使用すると判定し、第４のタスクＴ４は資源Ｂと資源Ｄを使用すると判定し、第５のタスクＴ５は資源Ｅを使用すると判定する。
【０１１６】
余力性能Ｍｊ（＝ｑｊ×τｉ−ΣΦｉ）については、実施の形態１の場合と同じとな
っている。すなわち、第１のプロセッサＰ１の余力性能はＭ１＝４０ＫＩ、第２のプロセッサＰ２の余力性能はＭ２＝６０ＫＩ、第３のプロセッサＰ３の余力性能はＭ３＝７０ＫＩ、第４のプロセッサＰ４の余力性能はＭ４＝６０ＫＩである。ここでも、余力性能が最小となるのは第１のプロセッサＰ１である。
【０１１７】
割り当て制御手段Ｅ１は、再割り当ての可能性を検索する。すなわち、最小の余力性能Ｍ１＝４０ＫＩに該当する第１のプロセッサＰ１以外の第２、第３、第４のプロセッサＰ２，Ｐ３，Ｐ４に割り当てられているタスクは、第２のタスクＴ２、第３のタスクＴ３および第４のタスクＴ４であるが、これら３つのタスクＴ２，Ｔ３，Ｔ４について、比較基準である第１のプロセッサＰ１が使用する資源Ａ，Ｂ，Ｅに対して競合しないタスクが存在するかどうかを検索する。第３のプロセッサＰ３が使用する資源はＡ，Ｃであり、資源Ａが競合する。第４のプロセッサＰ４が使用する資源はＢ，Ｄであり、資源Ｂが競合する。これに対して、第２のプロセッサＰ２が使用する資源はＣ，Ｄであり、第１のプロセッサＰ１が使用する資源Ａ，Ｂ，Ｅとは競合しない。そこで、資源競合のない第２のプロセッサＰ２を再割り当ての候補に選択する。
【０１１８】
そこで、図１２（ａ）から図１２（ｂ）への矢印で示すように、それまで第２のプロセッサＰ２に割り当てられていた第２のタスクＴ２を第１のプロセッサＰ１へ再割り当て（移動）する。この再割り当ての結果、第１のプロセッサＰ１の余力性能Ｍ１は０ＫＩとなり、第２のプロセッサＰ２はプロセッサの割り当てが解消される。
【０１１９】
以上により、
第１のプロセッサＰ１の余力性能Ｍ１は、Ｍ１＝０ＫＩ（フル割り当て）
第２のプロセッサＰ２の余力性能Ｍ２は、Ｍ２＝１００ＫＩ（割り当て解消）
第３のプロセッサＰ３の余力性能Ｍ３は、Ｍ３＝７０ＫＩ（変化なし）
第４のプロセッサＰ４の余力性能Ｍ４は、Ｍ４＝６０ＫＩ（変化なし）
となる。
【０１２０】
結果として、次に余力性能が最小であるプロセッサは、６０ＫＩの第４のプロセッサＰ４となる。以下、図１２（ｂ）に従って説明する。
【０１２１】
最小の余力性能Ｍ４＝６０ＫＩに該当する第４のプロセッサＰ４以外で割り当てられているタスクは、第３のタスクＴ３である。このタスクＴ３について、再割り当て可能なタスクか否かを、第４のプロセッサＰ４の余力性能Ｍ４＝６０ＫＩを基準にして検索する。
【０１２２】
第３のタスクＴ３は、その処理性能値Φ３が３０ＫＩであり、第４のプロセッサＰ４の余力性能Ｍ４＝６０ＫＩの大きさ範囲内に収まるので、第４のプロセッサＰ４への再割り当てが可能である。第４のプロセッサＰ４の第４のタスクＴ４が使用する資源は資源Ｂと資源Ｄとであり、第３のタスクＴ３が使用する資源Ａと資源Ｃは競合しない。
【０１２３】
そこで、図１２（ｂ）から図１２（ｃ）への矢印で示すように、それまで第３のプロセッサＰ３に割り当てられていた第３のタスクＴ３を第４のプロセッサＰ４へ再割り当て（移動）する。この再割り当ての結果、第４のプロセッサＰ４の余力性能Ｍ４は３０ＫＩとなり、第３のプロセッサＰ３はプロセッサの割り当てが解消される。
【０１２４】
以上により、
第１のプロセッサＰ１の余力性能Ｍ１は、Ｍ１＝０ＫＩ（フル割り当て）
第２のプロセッサＰ２の余力性能Ｍ２は、Ｍ２＝１００ＫＩ（割り当て解消）
第３のプロセッサＰ３の余力性能Ｍ３は、Ｍ３＝１００ＫＩ（割り当て解消）
第４のプロセッサＰ４の余力性能Ｍ４は、Ｍ４＝３０ＫＩ（減少）
となる。
【０１２５】
以上の再割り当てにおいて、性能保証タスクＴ１〜Ｔ５だけに注目すると、第１のプロセッサＰ１には第１のタスクＴ１と第５のタスクＴ５と第２のタスクＴ２が割り当てられ、第４のプロセッサＰ４には第４のタスクＴ４と第３のタスクＴ３が割り当てられ、第２のプロセッサＰ２と第３のプロセッサＰ３には割り当てがない状態となる。結果として、これ以上の再割り当て可能な性能保証タスクはなくなる。
【０１２６】
以上の割り当て制御手段Ｅ１によるタスクのプロセッサへの割り当ておよび再割り当ての処理が完了すると、次に動作状態制御手段Ｅ２が起動し、性能保証タスクの割り当てが解消された第２のプロセッサＰ２と第３のプロセッサＰ３の動作状態に対して省電力状態を適用する。ここでは、動作状態制御手段Ｅ２がクロック制御部４を制御して、第２のプロセッサＰ２および第３のプロセッサＰ３に対するクロックの供給を停止する。第２のプロセッサＰ２、第３のプロセッサＰ３には、性能保証タスクαは割り当てられていないから、クロックの供給の停止は問題ない。
【０１２７】
以上のようにして、図１１の状態から始めてタスクの再割り当て（移動）を実行した結果を図１３に示す。リアルタイムフラグ情報ａ１が“１”となっている第１ないし第５のタスクＴ１〜Ｔ５は、第１のプロセッサＰ１と第４のプロセッサＰ４とに集約され、使用プロセッサ数が最小限となる割り当てが実現されている。
【０１２８】
図１４は本実施の形態２の省電力制御装置の動作を示すフローチャートである。以下、このフローチャートに従って動作を説明する。実施の形態１の場合の図９との対比では、ステップＳ１２がステップＳ２と相違し、他のステップは同じである。
【０１２９】
まずステップＳ１１において、オペレーティングシステム１０の割り当て制御手段Ｅ１は、余力性能Ｍｊ（＝ｑｊ×τｉ−ΣΦｉ）の値が最小となるプロセッサを検索する
。
【０１３０】
次いでステップＳ１２において、別のプロセッサに割り当てられているタスクの中でステップＳ１１にて検索されたプロセッサへ性能保証が可能なまま再割り当て可能なタスクの中で、使用する資源の競合がないタスク（タスクＢ）が存在するかどうかを検索する。上記の動作例では、第２のプロセッサＰ２に割り当てられていたタスクＴ２が該当する。
【０１３１】
ステップＳ１３は、ステップＳ１２にて検索された結果において、資源競合のない再割り当て可能タスク（タスクＢ）が存在するか否かに応じて分岐を行う処理である。資源競合のない再割り当て可能タスク（タスクＢ）が存在すると判定したときはステップＳ１４に分岐し、資源競合のない再割り当て可能タスク（タスクＢ）が存在しないと判定したときはステップＳ１５に分岐する。
【０１３２】
ステップＳ１４においては、資源競合のない再割り当て可能タスク（タスクＢ）をステップＳ１１で検索したプロセッサへ移動させ、再度ステップＳ１２へ移行する。
【０１３３】
ステップＳ１２，Ｓ１３，Ｓ１４のループを繰り返すと、ステップＳ１１で求めたプロセッサに対する再割り当て可能なタスクの検索の処理が終了したことになり、ステップＳ１３からステップＳ１５に進む。
【０１３４】
ステップＳ１５において、再割り当て未完了のプロセッサ・タスクが存在するかどうかを判定し、再割り当て未完了のプロセッサ・タスクが存在すると判定された場合は、再割り当て未完了のプロセッサ・タスクについて、再度ステップＳ１１から同様のステップを繰り返す。
【０１３５】
ステップＳ１５にて再割り当て未完了のプロセッサ・タスクが存在しないと判定された場合は、ステップＳ１６に進む。ステップＳ１６において、動作状態制御手段Ｅ２は、リアルタイムフラグ情報ａ１が“１”のタスクの割り当てが解消された不使用プロセッサについて、クロック制御部４を介してクロック供給を停止することにより消費電力を削減する。
【０１３６】
以上のように本実施の形態２によれば、資源のプロセッサ間競合を最小限とするので、効率の良いタスク処理が可能となる。
【０１３７】
なお、本実施の形態２では性能保証タスクが使用する資源のプロセッサ間競合を最小限とするように再割り当てを行っているが、これに代えて、次のような実施の形態も有効である。
【０１３８】
すなわち、性能保証タスクにおいてシーケンス的に処理する必要のある性能保証タスク群をなるべく同一のプロセッサへ再割り当てするようにする。このように構成すれば、ディスパッチ回数を最小限とすることができる。
【０１３９】
また、性能保証タスクが再割り当てされたプロセッサへは性能非保証タスクを割り当てないようにする。このように構成すれば、性能非保証タスクのプロセッサ間移動を最小限とすることができる。
【０１４０】
なお、実施の形態１の場合の尚書き（※１）〜（※７）は本実施の形態２にも該当する。
【０１４１】
（実施の形態３）
本発明の実施の形態３は、実施の形態１および実施の形態２の省電力制御装置をデジタルスチルカメラ（モバイル端末）に用いた形態を例示するものである。
【０１４２】
図１５は本発明の実施の形態３におけるデジタルスチルカメラの機能的構成を示すブロック図、図１６はそのデジタルスチルカメラの主要部の機能を表す機能説明図である。
【０１４３】
本実施の形態３のデジタルスチルカメラ３０は、ＣＰＵ４０と、キー操作部５１と、タイマ部５２と、カメラ部５３と、オーディオ部５４と、ＵＳＢ（Universal Serial Bus）インターフェース部５５とを含んで構成されている。キー操作部５１はこれを制御するキー判別タスクＴ１およびキー実行タスクＴ５を含み、タイマ部５２はこれを制御するタイマタスクＴ２を含み、カメラ部５３はこれを制御するカメラタスクＴ３を含み、オーディオ部５４はこれを制御するオーディオタスクＴ４を含み、ＵＳＢインターフェース部５５はこれを制御するＵＳＢタスクＴ６〜Ｔ８を含んでいる。タスクＴ１〜Ｔ５は性能保証タスクαに該当し、タスクＴ６〜Ｔ８は性能非保証タスクβに該当する。
【０１４４】
ＣＰＵ４０は、マルチプロセッサシステムを含む。このマルチプロセッサシステムは、複数（ここでは４つ）のプロセッサ、すなわち第１ないし第４のプロセッサＰ１〜Ｐ４を含む。ＣＰＵ４０は、複数のタスクを並列的に処理しながらデジタルスチルカメラ３０の全体を制御する。具体的には、ＣＰＵ４０は、キー操作部５１から入力される各種の指示信号に応じて、オペレーティングシステムプログラム（ＯＳ）および各種アプリケーションプログラムを読み出して実行し、タイマ部５２、カメラ部５３、オーディオ部５４およびＵＳＢインターフェース部５５を制御する。
【０１４５】
このように構成されたデジタルスチルカメラのＣＰＵ４０における動作シーケンスは、実施の形態１または実施の形態２の省電力制御装置の動作と本質的に同じであるので、説明を省略する。
【０１４６】
本実施の形態３のデジタルスチルカメラによれば、消費電力削減が可能となり、バッテリーの持ち時間が長くなるという効果がある。
【０１４７】
なお、デジタルスチルカメラの機能として、消費電力を特には抑えないで動作する通常消費電力モードと消費電力を抑えて動作する低消費電力モードとを切り替え可能な状態にして搭載した型式において、低消費電力モードが設定された場合に本実施の形態３にあるような再割り当てを行うように構成してもよい。
【０１４８】
また、低消費電力モードへの移行はユーザによって設定可能な機能としてもよいし、特定の条件が揃った場合に自動的に低消費電力モードへ移行するとしてもよい。
【０１４９】
なお、実施の形態１の場合の尚書き（※１）〜（※７）は本実施の形態３にも該当する。
【０１５０】
本実施の形態が適用される他のモバイル端末としては、バッテリ駆動され、携帯して持ち運び可能な携帯装置で、具体的には、携帯電話機、ＰＨＳ（Personal Handy-phone System）、ＰＤＡ（Personal Digital Assistant）、携帯ゲーム機、その他ノートパソコンなどがある。また、モバイル端末上で動作するタスクについては、通話機能、メール機能、インターネット機能、ゲーム機能、ＴＶ電話機能、ＴＶ視聴機能、ＴＶ録画機能、写真撮影機能、動画撮影機能、音楽再生機能、その他各種のアプリケーションが挙げられる。
【０１５１】
上記の実施の形態では、本発明をマルチプロセッサシステムおよびデジタルスチルカメラのＣＰＵに適用する場合を示したが、本発明はこれらの実施の形態に限定されるものではない。本発明は、上記マルチプロセッサシステムを含む集積回路として実現したり、コンピュータを上記マルチプロセッサとして機能させるプログラムとして実現することもできる。そして、これらのプログラムは、ＣＤ−ＲＯＭ等の記録媒体やインターネット等の通信媒体を介して配信してもよい。
【産業上の利用可能性】
【０１５２】
本発明の、性能保証タスクと性能非保証タスクとが混在するマルチプロセッサシステムにおける省電力制御装置は、リアルタイム性を保証しながら消費電力を効果的に削減するための技術として有用である。また、デジタルスチルカメラなどのモバイル端末としても優れたものである。
【符号の説明】
【０１５３】
Ｅ１  割り当て制御手段
Ｅ２  動作状態制御手段
Ｐ１〜Ｐ４  プロセッサ
Ｔ１〜Ｔ８  タスク
ａ１  リアルタイムフラグ情報
ａ２  リアルタイム性能情報
ａ３  処理性能情報
ａ４  使用資源情報
α  性能保証タスク
β  性能非保証タスク
１  ＣＰＵ
２  ＲＯＭ
３  ＲＡＭ
４  クロック制御手段
５  周辺デバイス
６  バス
１０  オペレーティングシステム（ＯＳ）
２０  タスク管理情報
３０  デジタルスチルカメラ
４０  ＣＰＵ
５１  キー操作部
５２  タイマ部
５３  カメラ部
５４  オーディオ部
５５  ＵＳＢインターフェース部
【図１】
2010277300.tif 000003
【図２】
2010277300.tif 000004
【図３】
2010277300.tif 000005
【図４】
2010277300.tif 000006
【図５】
2010277300.tif 000007
【図６】
2010277300.tif 000008
【図７】
2010277300.tif 000009
【図８】
2010277300.tif 000010
【図９】
2010277300.tif 000011
【図１０】
2010277300.tif 000012
【図１１】
2010277300.tif 000013
【図１２】
2010277300.tif 000014
【図１３】
2010277300.tif 000015
【図１４】
2010277300.tif 000016
【図１５】
2010277300.tif 000017
【図１６】
2010277300.tif 000018