(57)【特許請求の範囲】
【請求項１】
動作速度可変なプロセッサを含み、該プロセッサの動作速度の増大に伴ってサービス品質が向上するとともに消費電力が増加するタイプの情報処理システムであって、
（Ａ）前記プロセッサにおいて次に処理されるタスクを選択し、選択結果に従って該選択されたタスクにプロセッサの制御を移行させる処理を行うスケジューリング手段と、
（Ｂ）周期的に起動されて、前記プロセッサの消費電力を予測して消費電力に関する満足度を計算するとともに、動作周波数の設定を行う電力管理手段と、
（Ｃ）前記スケジューリング手段からの要求に応答して起動し、タスクのサービス品質に関する満足度を評価するとともに、該タスクのサービス品質に関する満足度に基づいて当該システム全体の目標満足度を算出する満足度評価手段と、
を備え、
前記スケジューリング手段は、実行が要求されたタスクを実行可能タスク・キューに入れ、該実行可能タスク・キュー内にタスクがあるときにはデッドラインに応じて実行すべきタスクを取り出して実行を開始させるとともに、デッドライン・ミスを検出したことに応じてタスクの起動を間引く間引き処理を実行し、該実行可能タスク・キュー内にタスクがないときには前記システムをスリープ状態に遷移させるとともにスリープ時間を計算し、
前記満足度評価手段は、前記スケジューリング手段がタスクを間引き処理したことによるタスクが提供するサービスに対する満足度の減少度合いを基にタスクが提供するサービス品質がユーザに与える満足度を評価するとともに、前記の消費電力に関する満足度と各タスクのサービス品質に関する満足度の加重平均に基づいて前記の当該システム全体の目標満足度を算出し、
前記電力管理手段は、前記スケジューリング手段が計算したスリープ時間に基づいて前記プロセッサの利用率を計算するとともに、前記プロセッサの利用率と現在の動作周波数から前記プロセッサの消費電力の予測値を計算し、該予想消費電力を基に前記の消費電力に関する満足度を計算し、消費電力に関する満足度が前記の当該システム全体の目標満足度に最も近くなる前記プロセッサの動作周波数を設定する、
ことを特徴とする情報処理システム。
【請求項２】
前記スケジューリング手段は、タスクの実行を間引くことによってプロセッサの負荷を減少させる割合を示す水量変数と、タスクに関するサービス品質の満足度又は平均満足度の比較結果と等価な添水変数を設け、プロセッサの過負荷の発生に応じて前記水量変数を決定し、前記実行可能タスク・キュー中の最早のデッドラインを持つタスクの前記添水変数に前記水量変数を加算して添水変数が所定値を超えたことに応じて該タスクを前記実行可能タスク・キューから取り出してタスクの実行を開始するとともに前記添水変数から前記所定値を減算するが、該タスクの前記添水変数に前記水量変数を加算して前記添水変数が前記所定値を超えないときには前記実行可能タスク・キューからタスクを取り出さないことによりタスクの起動を間引く、
ことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記スケジューリング手段は、前記水量変数を、プロセッサの過負荷の発生に応じて一定量だけ減じるとともに、周期的に一定比率で前記所定値に近づける、
ことを特徴とする請求項２に記載の情報処理システム。
【請求項４】
前記スケジューリング手段は、タスクをキャンセルする間引き処理が行なわれたプロセッサの過負荷の発生に応じて、前記水量変数を減少させる、
ことを特徴とする請求項２に記載の情報処理システム。
【請求項５】
前記スケジューリング手段は、デッドライン・ミスを検出したことに応じて前記水量変数を減少させる、
ことを特徴とする請求項２に記載の情報処理システム。
【請求項６】
前記スケジューリング手段は、周期的に実行されるタスクを次回実行する際に、
該タスクの前記添水変数に前記水量変数を加算し、前記添水変数が前記所定値を超えたことに応じて該タスクを前記実行可能タスク・キューに追加するとともに前記添水変数から前記所定値を減算する、
ことを特徴とする請求項２に記載の情報処理システム。
【請求項７】
動作速度可変なプロセッサを含み、該プロセッサの動作速度の増大に伴ってサービス品質が向上するとともに消費電力が増加するタイプのコンピュータの制御方法であって、
（Ａ）前記コンピュータが備えるスケジューリング手段が、前記プロセッサにおいて次に処理されるタスクを選択し、選択結果に従って該選択されたタスクにプロセッサの制御を移行させる処理を行うスケジューリング・ステップと、
（Ｂ）周期的に起動されて、前記プロセッサの消費電力を予測して消費電力に関する満足度を計算するとともに、動作周波数の設定を行う電力管理ステップと、
（Ｃ）前記スケジューリング手段からの要求に応答して起動し、タスクのサービス品質に関する満足度を評価するとともに、該タスクのサービス品質に関する満足度に基づいて当該システム全体の目標満足度を算出する満足度評価ステップと、
を備え、
前記スケジューリング・ステップでは、実行が要求されたタスクを実行可能タスク・キューに入れ、該実行可能タスク・キュー内にタスクがあるときにはデッドラインに応じて実行すべきタスクを取り出して実行を開始させるとともに、デッドライン・ミスを検出したことに応じてタスクの起動を間引く間引き処理を実行し、該実行可能タスク・キュー内にタスクがないときには前記システムをスリープ状態に遷移させるとともにスリープ時間を計算し、
前記満足度評価ステップでは、前記スケジューリング手段がタスクを間引き処理したことによるタスクが提供するサービスに対する満足度の減少度合いを基にタスクが提供するサービス品質がユーザに与える満足度を評価するとともに、前記の消費電力に関する満足度と各タスクのサービス品質に関する満足度の加重平均に基づいて前記の当該システム全体の目標満足度を算出し、
前記電力管理ステップでは、前記スケジューリング手段が計算したスリープ時間に基づいて前記プロセッサの利用率を計算するとともに、前記プロセッサの利用率と現在の動作周波数から前記プロセッサの消費電力の予測値を計算し、該予想消費電力を基に前記の消費電力に関する満足度を計算し、消費電力に関する満足度が前記の当該システム全体の目標満足度に最も近くなる前記プロセッサの動作周波数を設定する、
ことを特徴とするコンピュータの制御方法。
【請求項８】
前記スケジューリング・ステップでは、タスクの実行を間引くことによってプロセッサの負荷を減少させる割合を示す水量変数と、タスクに関するサービス品質の満足度又は平均満足度の比較結果と等価な添水変数を設け、プロセッサの過負荷の発生に応じて前記水量変数を決定し、前記実行可能タスク・キュー中の最早のデッドラインを持つタスクの前記添水変数に前記水量変数を加算して添水変数が所定値を超えたことに応じて該タスクを前記実行可能タスク・キューから取り出してタスクの実行を開始するとともに前記添水変数から前記所定値を減算するが、該タスクの前記添水変数に前記水量変数を加算して前記添水変数が前記所定値を超えないときには前記実行可能タスク・キューからタスクを取り出さないことによりタスクの起動を間引く、
ことを特徴とする請求項７に記載のコンピュータの制御方法。
【請求項９】
前記スケジューリング・ステップでは、前記水量変数を、プロセッサの過負荷の発生に応じて一定量だけ減じるとともに、周期的に一定比率で前記所定値に近づける、
ことを特徴とする請求項８に記載のコンピュータの制御方法。
【請求項１０】
前記スケジューリング・ステップでは、タスクをキャンセルする間引き処理が行なわれたプロセッサの過負荷の発生に応じて、前記水量変数を減少させる、
ことを特徴とする請求項８に記載のコンピュータの制御方法。
【請求項１１】
前記スケジューリング・ステップでは、デッドライン・ミスを検出したことに応じて前記変数を減少させる、
ことを特徴とする請求項８に記載のコンピュータの制御方法。
【請求項１２】
前記スケジューリング・ステップでは、周期的に実行されるタスクを次回実行する際に、
該タスクの前記添水変数に前記水量変数を加算し、前記添水変数が前記所定値を超えたことに応じて該タスクを前記実行可能タスク・キューに追加するとともに前記添水変数から前記所定値を減算する、
ことを特徴とする請求項８に記載のコンピュータの制御方法。
【請求項１３】
動作速度可変なプロセッサの動作速度の増大に伴ってサービス品質が向上するとともに消費電力が増加するタイプのコンピュータにおける該サービス品質と該消費電力間で形成されるトレードオフ関係を制御するための処理を該コンピュータ上で実行せしめるためのコンピュータ・プログラムを記録したコンピュータ読取可能な記録媒体であって、前記コンピュータ・プログラムは、前記コンピュータを、
（Ａ）前記プロセッサにおいて次に処理されるタスクを選択し、選択結果に従って該選択されたタスクにプロセッサの制御を移行させる処理を行うスケジューリング手段と、
（Ｂ）周期的に起動されて、前記プロセッサの消費電力を予測して消費電力に関する満足度を計算するとともに、動作周波数の設定を行う電力管理手段と、
（Ｃ）前記スケジューリング手段からの要求に応答して起動し、タスクのサービス品質に関する満足度を評価するとともに、該タスクのサービス品質に関する満足度に基づいて当該システム全体の目標満足度を算出する満足度評価手段と、
として機能させ、
前記スケジューリング手段は、実行が要求されたタスクを実行可能タスク・キューに入れ、該実行可能タスク・キュー内にタスクがあるときにはデッドラインに応じて実行すべきタスクを取り出して実行を開始させるとともに、デッドライン・ミスを検出したことに応じてタスクの起動を間引く間引き処理を実行し、該実行可能タスク・キュー内にタスクがないときには前記システムをスリープ状態に遷移させるとともにスリープ時間を計算し、
前記満足度評価手段は、前記スケジューリング手段がタスクを間引き処理したことによるタスクが提供するサービスに対する満足度の減少度合いを基にタスクが提供するサービス品質がユーザに与える満足度を評価するとともに、前記の消費電力に関する満足度と各タスクのサービス品質に関する満足度の加重平均に基づいて前記の当該システム全体の目標満足度を算出し、
前記電力管理手段は、前記スケジューリング手段が計算したスリープ時間に基づいて前記プロセッサの利用率を計算するとともに、前記プロセッサの利用率と現在の動作周波数から前記プロセッサの消費電力の予測値を計算し、該予想消費電力を基に前記の消費電力に関する満足度を計算し、消費電力に関する満足度が前記の当該システム全体の目標満足度に最も近くなる前記プロセッサの動作周波数を設定する、
ことを特徴とするコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理システムの消費電力の低減に係り、特に、システム内におけるデータ処理の中核を担うプロセッサ（いわゆるＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の動作周波数を適宜抑制することによって省電力化を図るタイプの情報処理システム及びその制御方法に関する。更に詳しくは、本発明は、システムのサービス品質を維持しながら省電力化を図る情報処理システム及びその制御方法に関する。
【０００２】
【従来の技術】
昨今の技術革新に伴い、デスクトップ型、ノートブック型など各種のパーソナル・コンピュータ（以下、「ＰＣ」又は「システム」ともいう）やワークステーションが開発され市販されている。このうち、ノートブック型のコンピュータは、屋外での携帯的・可搬的な使用を考量して、小型且つ軽量に設計・製作されたものである。
【０００３】
ノートブック型ＰＣの１つの特徴は、内蔵したバッテリでも駆動できる「バッテリ駆動型」である点である。これは、商用電源が届かない場所での使用を可能にするためである。ノートブックＰＣが内蔵するバッテリは、一般には、リチウム・イオンなどの充電式のバッテリ・セル（「２次電池」ともいう）を複数個接続してパッケージ化してなる「バッテリ・パック」の形態を採っている。このようなバッテリ・パックは、充電により再利用可能ではあるが、１回当たりの充電容量はシステムのオペレーション時間に換算してせいぜい２〜３時間程度に過ぎない。また、オペレーション時間と同程度の充電時間を要してしまう。このため、バッテリの持続時間を少しでも長くするべく、省電力化するための数々の工夫が凝らされている。省電力化機能を積極的に導入している点も、ノートブックＰＣの特徴の１つと言えよう。
【０００４】
最近では、商用電源によって無尽蔵に給電可能なデスクトップ型ＰＣに対しても、エコロジー的な観点から、省電力化の要求が高まってきている。米環境保護庁（ＥＰＡ）は、１９９３年６月に、”Ｅｎｅｒｇｙ  Ｓｔａｒ  Ｃｏｍｐｕｔｅｒ  Ｐｒｏｇｒａｍ”と呼ばれる自主規制を発表し、動作待ち状態での省電力が一定基準以下（駆動電力が３０Ｗ以下、又はＣＰＵフル稼働時の３０％以下）になることを要求している。このため、各コンピュータ・メーカは、競ってこの規制案に沿ったコンピュータ製品の研究・開発を進めるようになってきた。
【０００５】
コンピュータの省電力化は、例えばシステム内の各電気回路コンポーネントの駆動電力そのものを低減させることによって実現される。また、システム内において、動作状態（アクティビティ）が低下したり未使用状態が継続するハードウェア構成要素に対する電源供給を適宜低下し若しくは遮断する、ということによっても実現される。後者のような省電力化機能のことを、特に「パワー・マネージメント（Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ）」と呼ぶこともある。
【０００６】
ＰＣにおけるパワー・マネージメントの実装形態としては、ＬＣＤ（液晶表示ディスプレイ）及びそのバックライトの電源オフや、ハード・ディスク・ドライブ（ＨＤＤ）のディスク回転モータの停止などが挙げられる。ＬＣＤユニットやＨＤＤなどのデバイス類は、システムの総消費電力に大きなウェートを占めるので、ＬＣＤオフやＨＤＤオフによる省電力化の効果は極めて高いと言える。
【０００７】
また、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）も、システムの総消費電力の約４分の１を占めるので、省電力化に対する期待は高い。
【０００８】
液晶表示ディスプレイやハード・ディスク装置については、既に消費電力が減少する見通しである。これに対し、ＣＰＵは、今後も、高集積化や動作周波数の高速化などにより、消費電力がさらに増大する可能性がある。このため、ＣＰＵに対するパワー・マネージメントは、今後益々重要性を増すであろう。
【０００９】
ＣＰＵのパワー・マネージメントを実現する典型的な方法は、動作周波数の抑制によって実現される。回路コンポーネントの消費電力は、単位時間当たりにトランジスタ・ゲート（すなわち抵抗体）を通過する電流量で定まる。すなわち、動作周波数の高速化にほぼ比例して消費電力が増大する。逆に、ＣＰＵの負荷状況に応じてその動作周波数を段階的に落としていくことで、ゲートを通過する電流量を抑制し、以って消費電力の削減を図ることができるという訳である。動作周波数の低下に応じて電源電圧も下げることにより、消費電力を更に削減することができる。
【００１０】
但し、ＣＰＵの動作周波数の低下はＣＰＵのパフォーマンス低下を意味するので、システムのサービス品質（あるいはシステムのパフォーマンスを要求するユーザの満足度）とトレードオフの関係にある。
【００１１】
例えば３００ＭＨｚを越える動作周波数により駆動可能なＣＰＵは、常にフル稼動を続けるとバッテリ容量を短時間で消耗してしまうし、全てのタスクがＣＰＵのフル稼動を必要とするとは限らない。クロック・ダウンしたＣＰＵの動作モード下でも、充分なサービス品質が得られるタスクがある。あるいは、システムがユーザ入力待ち状態であれば、ＣＰＵをクロック・ダウンさせてもユーザの満足度にはほとんど悪影響がない。
【００１２】
他方、リアルタイム性が要求される処理を実行中にＣＰＵのパワー・マネージメント動作（すなわちクロック・ダウン）をイネーブルすると、パフォーマンスが低下する結果としてシステムのサービス品質の低下をも招来する。
【００１３】
リアルタイム・タスクは、略言すれば、定められた期限（デッドライン）以前に完了する必要がある処理のことを意味し、例えば、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）圧縮された動画像の各フレームを復元して画面表示する処理などが挙げられる。この場合、フレームの表示時間である３０分の１秒毎に１フレームをＭＰＥＧ復元して表示する処理を完了させる必要がある。すなわち、３０分の１秒をデッドラインとして各フレームの処理が行われ、デッドラインが維持されず、次のフレームの処理開始前に処理を完了できなかったフレームは「フレーム落ち」となったりフレームの「重複」となる。一般に、動画像再生・合成や、音声合成・認識などを伴なうアプリケーションは、リアルタイム性が要求される上に、ＣＰＵに高い負荷を課する。
【００１４】
このようなリアルタイム処理を実行中に、パワー・マネージメントを優先してＣＰＵのパフォーマンスを低下させると、デッドライン以前に処理が完了せず、処理を続ける意味がなくなってしまう。また、デッドラインが守られないと、フレーム落ちやフレームの重複が生じる結果として、システムのサービス品質（すなわちユーザの満足度）は低下する。
【００１５】
以上を要約すれば、ＣＰＵのパワー・マネージメントはそのパフォーマンス低下を意味することから、システムのサービス品質とトレードオフの関係にある訳である。したがって、システムの応答時間が許容する範囲内でＣＰＵのパワー・マネージメントを行うことが、システム全体の最適化という観点から好ましい。
【００１６】
【発明が解決しようとする課題】
本発明の目的は、システム内におけるデータ処理の中核を担うプロセッサの動作周波数を適宜抑制することによって省電力化を図ることができる、優れた情報処理システム及びその制御方法を提供することにある。
【００１７】
本発明の更なる目的は、システムのサービス品質を維持しながら、プロセッサの動作周波数を抑制して省電力化を図ることができる、優れた情報処理システム及びその制御方法を提供することにある。
【００１８】
本発明の更なる目的は、システムの応答時間が許容する範囲内でプロセッサの動作周波数を抑制して省電力化を図ることができる、優れた情報処理システム及びその制御方法を提供することにある。
【００１９】
【課題を解決するための手段】
本発明は、上記課題を参酌してなされたものであり、その第１の側面は、動作速度可変なプロセッサを含み、該プロセッサの動作速度の増大に伴なってサービス品質が向上するとともに消費電力が増加するタイプの情報処理システムであって、
（Ａ）前記プロセッサにおいて次に処理されるタスクを選択し、選択結果に従って該選択されたタスクにプロセッサの制御を移行させる処理を行うスケジューリング手段と、
（Ｂ）周期的に起動されて、前記プロセッサの消費電力の予測と動作周波数の設定を行う電力管理手段と、
（Ｃ）前記スケジューリング手段からの要求に応答して起動し、タスクが提供するサービスに対する満足度を評価する満足度評価手段と、
を具備することを特徴とする情報処理システムである。
【００２０】
本発明の第１の側面に係る情報処理システムにおいて、前記電力管理手段は、前記プロセッサの動作周波数の設定を行う際に、消費電力の予測に基づいて消費電力に関する満足度を計算するとともに、該消費電力に関する満足度が、該情報処理システムが設定する目標満足度に近づくように動作周波数の設定を行うようにしてもよい。
【００２１】
また、前記満足度評価手段は、タスクが提供するサービスに対する満足度を評価する際に、消費電力に関する満足度全てのタスクが提供するサービスに対する満足度の加重平均に基づいて、該情報処理システムが設定する目標満足度を評価するようにしてもよい。
【００２２】
また、前記満足度評価手段は、タスクが提供するサービスに対する満足度を評価する際に、タスクの間引きの影響を考慮した満足度と、間引きの影響を考慮しない満足度の２つのを計算して満足度を評価するようにしてもよい。
【００２３】
また、本発明の第２の側面は、動作速度可変なプロセッサを含み、該プロセッサの動作速度の増大に伴なってサービス品質が向上するとともに消費電力が増加するタイプの情報処理システムの制御方法であって、
（Ａ）前記プロセッサにおいて次に処理されるタスクを選択し、選択結果に従って該選択されたタスクにプロセッサの制御を移行させる処理を行うスケジューリング・ステップと、
（Ｂ）周期的に起動されて、前記プロセッサの消費電力の予測と動作周波数の設定を行う電力管理ステップと、
（Ｃ）前記スケジューリング・ステップからの要求に応答して起動し、タスクが提供するサービスに対する満足度を評価する満足度評価ステップと、
を具備することを特徴とする情報処理システムの制御方法である。
【００２４】
本発明の第２の側面に係る情報処理システムの制御方法において、前記電力管理ステップは、前記プロセッサの動作周波数の設定を行う際に、消費電力の予測に基づいて消費電力に関する満足度を計算するとともに、該消費電力に関する満足度が、該情報処理システムが設定する目標満足度に近づくように動作周波数の設定を行うようにしてもよい。
【００２５】
また、前記満足度評価ステップは、タスクが提供するサービスに対する満足度を評価する際に、消費電力に関する満足度全てのタスクが提供するサービスに対する満足度の加重平均に基づいて、該情報処理システムが設定する目標満足度を評価するようにしてもよい。
【００２６】
また、前記満足度評価ステップは、タスクが提供するサービスに対する満足度を評価する際に、タスクの間引きの影響を考慮した満足度と、間引きの影響を考慮しない満足度の２つのを計算して満足度を評価するようにしてもよい。
【００２７】
また、本発明の第３の側面は、動作速度可変なプロセッサの動作速度の増大に伴なってサービス品質が向上するとともに消費電力が増加するタイプのコンピュータ・システムにおける該サービス品質と該消費電力間で形成されるトレードオフ関係を制御するための処理を該コンピュータ・システム上で実行せしめるためのコンピュータ・プログラムを有形的且つコンピュータ可読な形式で提供するプログラム提供媒体であって、前記コンピュータ・プログラムは、
（Ａ）前記プロセッサにおいて次に処理されるタスクを選択し、選択結果に従って該選択されたタスクにプロセッサの制御を移行させる処理を行うスケジューリング・モジュールと、
（Ｂ）周期的に起動されて、前記プロセッサの消費電力の予測と動作周波数の設定を行う電力管理モジュールと、
（Ｃ）前記スケジューリング手段からの要求に応答して起動し、タスクが提供するサービスに対する満足度を評価する満足度評価モジュールと、
を具備することを特徴とするプログラム提供媒体である。
【００２８】
本発明の第３の側面に係るプログラム提供媒体において、前記電力管理モジュールは、前記プロセッサの動作周波数の設定を行う際に、消費電力の予測に基づいて消費電力に関する満足度を計算するとともに、該消費電力に関する満足度が、該情報処理システムが設定する目標満足度に近づくように動作周波数の設定を行うようにしてもよい。
【００２９】
また、前記満足度評価モジュールは、タスクが提供するサービスに対する満足度を評価する際に、消費電力に関する満足度全てのタスクが提供するサービスに対する満足度の加重平均に基づいて、該情報処理システムが設定する目標満足度を評価するようにしてもよい。
【００３０】
また、前記満足度評価モジュールは、タスクが提供するサービスに対する満足度を評価する際に、タスクの間引きの影響を考慮した満足度と、間引きの影響を考慮しない満足度の２つのを計算して満足度を評価するようにしてもよい。
【００３１】
また、本発明の第４の側面は、プロセッサによるプログラムの実行をタスク単位で管理・制御するタイプの情報処理システムにおけるタスク割当て制御方法であって、
（Ａ）タスクに関する間引き処理の度合いを示す添水変数を取得するステップと、
（Ｂ）プロセッサの過負荷の発生に応じて減じられるとともに、単位時間毎に一定の比率で所定値に近づく水量変数を取得するステップと、
（Ｃ）タスクの添水変数に水量変数を加算するステップと、
（Ｄ）添水変数が閾値を越えたことに応答して、タスクを割当てるとともに該タスクの添水変数から所定値を減ずるステップと、
（Ｅ）添水変数が閾値を超えなかったことに応答して、タスク実行のキャンセルを試みるステップと、
を具備することを特徴とするタスク割当て制御方法である。
【００３２】
また、本発明の第５の側面は、プロセッサによるプログラムの実行をタスク単位で管理・制御するタイプの情報処理システムにおけるタスク割当て制御装置であって、
（Ａ）タスクに関する間引き処理の度合いを示す添水変数を取得する手段と、
（Ｂ）プロセッサの過負荷の発生に応じて減じられるとともに、単位時間毎に一定の比率で所定値に近づく水量変数を取得する手段と、
（Ｃ）タスクの添水変数に水量変数を加算する手段と、
（Ｄ）添水変数が閾値を越えたことに応答して、タスクを割当てるとともに該タスクの添水変数から所定値を減ずる手段と、
（Ｅ）添水変数が閾値を超えなかったことに応答して、タスク実行のキャンセルを試みる手段と、
を具備することを特徴とするタスク割当て制御装置である。
【００３３】
また、本発明の第６の側面は、プロセッサによるプログラムの実行をタスク単位で管理・制御するタイプのコンピュータ・システムにおけるタスク割当てを制御するための処理を該コンピュータ・システム上で実行せしめるためのコンピュータ・プログラムを有形的且つコンピュータ可読な形式で提供するプログラム提供媒体であって、前記コンピュータ・プログラムは、
（Ａ）タスクに関する間引き処理の度合いを示す添水変数を取得するステップと、
（Ｂ）プロセッサの過負荷の発生に応じて減じられるとともに、単位時間毎に一定の比率で所定値に近づく水量変数を取得するステップと、
（Ｃ）タスクの添水変数に水量変数を加算するステップと、
（Ｄ）添水変数が閾値を越えたことに応答して、タスクを割当てるとともに該タスクの添水変数から所定値を減ずるステップと、
（Ｅ）添水変数が閾値を超えなかったことに応答して、タスク実行のキャンセルを試みるステップと、
を具備することを特徴とするプログラム提供媒体である。
【００３４】
【作用】
本発明に係る情報処理システム及びその制御方法によれば、消費電力に関する満足度と各タスクのサービス品質に関する満足度の加重平均に基づいて情報処理システム全体についての目標満足度を評価するとともに、プロセッサの消費電力の予測値に基づいて消費電力に関する満足度を計算して、消費電力に関する満足度がシステム全体の目標満足度に近づくようなプロセッサの動作周波数の設定を行うようにしたので、システムのサービス品質を維持しながら、プロセッサの動作周波数を抑制して省電力化を図ることができる。
【００３５】
また、本発明に係る情報処理システム及びその制御方法によれば、システムの応答時間が許容する範囲内でプロセッサの動作周波数を抑制して省電力化を図ることができる。
【００３６】
本発明の第３及び第６の側面に係るプログラム提供媒体は、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ・プログラムを有形的且つコンピュータ可読な形式で提供する媒体である。媒体は、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）やＦＤ（Ｆｌｏｐｐｙ  Ｄｉｓｃ）、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  ｄｉｓｃ）などの着脱自在で可搬性の記憶媒体、あるいは、ネットワーク（ネットワークは無線、有線の区別を問わない）などの伝送媒体など、その形態は特に限定されない。
【００３７】
このようなプログラム提供媒体は、コンピュータ・システム上で所定のコンピュータ・プログラムの機能を実現するための、コンピュータ・プログラムと提供媒体との構造上又は機能上の協働的関係を定義したものである。換言すれば、本発明の第３乃至第６の各側面に係るプログラム提供媒体を介して所定のコンピュータ・プログラムをコンピュータ・システムにインストールすることによって、コンピュータ・システム上では協働的作用が発揮され、本発明の第１及び第４の各側面と同様の作用効果を得ることができる。
【００３８】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【００３９】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施例を詳解する。
【００４０】
図１には、本発明を実現するのに適した情報処理システム１０のハードウェア構成を模式的に示している。情報処理システム１０は、例えば「ワークステーション」又は「パーソナル・コンピュータ」と呼ばれる汎用コンピュータ・システムでよい。以下、各部について説明する。
【００４１】
プロセッサ１１は、情報処理システム１０全体の動作を統括的に制御するメイン・コントローラであり、一般には、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）若しくはＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と呼ばれる。プロセッサ１１は、オペレーティング・システム（ＯＳ）の制御下で、各種のアプリケーション・プログラムを実行する。
【００４２】
本実施例のプロセッサ１１は、クロック生成器５０（後述）から供給される所定周波数の動作クロック信号に同期して駆動する。また、プロセッサ１１は、稼動中に動作周波数を変化させることが可能であるが、動作周波数が増大するに従って処理速度すなわちパフォーマンスが向上する一方、消費電力も増大する。
【００４３】
プロセッサ１１は、バス１２を介してその他の各周辺装置と相互接続されている。バス１２は、アドレス・バス、データ・バス、コントロール・バスなど多数のバス信号線で構成される共通信号伝送路であり、例えばＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスやＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バスがこれに該当する。バス接続された各周辺装置は、それぞれ固有のＩ／Ｏアドレス（又はメモリ・アドレス）が割り振られたＩ／Ｏレジスタを含んでいる。プロセッサ１１（より具体的には、プロセッサ１１が実行するソフトウェア・プログラム）は、Ｉ／Ｏアドレスを指定することで、周辺装置のＩ／Ｏレジスタにデータやコマンドを読み書きして所望の制御を実行することができる。
【００４４】
ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３は、プロセッサ１１が実行するプログラム・コードをロードしたり、作業データを一時格納するために使用される書き込み可能なメモリである。ＲＡＭ１３は、通常、複数個のＤＲＡＭ（Ｄｙｎａｍｉｃ  ＲＡＭ）チップで構成される。
【００４５】
ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１４は、製造時に格納データが恒久的に書き込まれる読み出し専用の不揮発メモリである。ＲＯＭ１４上には、例えば、システム１０の電源投入時に実行する自己診断テスト・プログラム（ＰＯＳＴ）や、ハードウェア入出力操作を実行するためのコード群（ＢＩＯＳ）が格納されている。ＲＯＭ１４は、例えばＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）のように消去再書き込みが可能なタイプであってもよい。
【００４６】
キーボード／マウス・コントローラ（ＫＭＣ）１５は、キーボードやマウスなどの入力装置１６を介したユーザからのコマンド入力などを受容する装置である。ＫＭＣ１５は、キーボードからのキャラクタ入力やマウスからの座標指示入力が発生したことに応答して、プロセッサ１１に対して割り込み要求を発行する。
【００４７】
ディスプレイ・コントローラ１７は、表示部１８における描画処理を制御する周辺コントローラであり、描画データを一時格納するフレーム・バッファ（図示しない）を備えている。表示部１８は、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ：陰極線管）ディスプレイやＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示ディスプレイ）などであり、その画面には、処理データやコマンド入力のためのメニューなどを含んだＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）作業画面（ウィンドウ）が表示される。
【００４８】
外部記憶装置１９は、例えば、ハード・ディスク・ドライブ（ＨＤＤ）のような、比較的大容量で再書き込み可能且つ不揮発の記憶装置であり、データ・ファイルを蓄積したり、プログラム・ファイルをインストールするために使用される。外部記憶装置１９は、例えば、ハード・ディスク・ドライブ（ＨＤＤ）のような、比較的大容量で再書き込み可能且つ不揮発の記憶装置であり、データ・ファイルを蓄積したり、プログラム・ファイルをインストールするために使用される。
【００４９】
メディア・ドライブ２０は、カートリッジ式のメディアを交換可能に装填して、メディア表面上の担持データを読み書きするための装置である。ここで言うメディアとして、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  ｄｉｓｃ）、ＣＤ−ＲＯＭ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）などの、システム１０から着脱自在で可搬型のメディアが挙げられる。例えば、本発明を具現化した電力管理用のプログラム・コードは、コンピュータ可読なファイル形式でメディア上に有形的に格納され、かかるメディアを媒介として流通され、メディア・ドライブ２０によって外部記憶装置１９にインストールすることができる。
【００５０】
ネットワーク・インターフェース２１は、情報処理システム１０を所定の通信プロトコル（例えば、ＴＣＰ／ＩＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ／Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）プロトコル）に従ってネットワーク接続するための装置である。ネットワーク上には、複数のコンピュータ・システム（以下では、「リモート・システム」とも呼ぶ：図示しない）が存在する。ネットワーク上の各システム間では、例えばパケット交換方式で、コンピュータ可読なプログラムやデータを有形的な形態で伝送することができる。本実施例の情報処理システム１０は、リモート・システムからネットワーク経由で、本発明を具現化した電力管理用のプログラム・ファイルなどの供給を受けることもできる。
【００５１】
クロック生成器５０は、プロセッサ１１などに対して同期駆動用のクロック信号を供給するための装置である。本実施例のクロック生成器５０は、出力クロック信号の周波数を可変に制御することができるであるが、詳細については後述に譲る。
【００５２】
なお、情報処理システム１０を実際に構成するためには、図１に示した以外にも多くのハードウェア・コンポーネントが必要である。但し、これらは当業者には周知であり、また、本発明の要旨を構成するものではないので、本明細書中では省略している。（例えば、情報処理システム１０は、実時間（システム時間）を計時するためのリアルタイム・クロックを有するが、図１中では省略している。）また、図面の錯綜を回避するため、図中の各ハードウェア・ブロック間の接続も抽象化して図示している点を了承されたい。
【００５３】
図２には、クロック生成器５０の内部構成を模式的に示している。同図に示すように、クロック生成器５０は、クロック・パルス生成部６０とクロック・パルス生成制御部７０とで構成される。以下、各部について説明する。
【００５４】
クロック・パルス生成部６０は、水晶発振器６１と、第１のＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋ  Ｌｏｏｐ）回路６２Ａと、第２のＰＬＬ回路６２Ｂと、第１の分周器６３Ａと、第２の分周器６３Ｂとで構成される。水晶発振器６２は、水晶の材料特性に基づいた所定周期のパルスを発生し、各ＰＬＬ回路６２Ａ及び６２Ｂはこの発生パルのス周期を逓倍し、各分周期６３Ａ及び６３Ｂはさらにパルスの周期を分周することで、所定値の周波数を生成し外部出力することができる。本実施例のクロック・パルス生成部６０は、逓倍率と分周比がソフトウェア・プログラマブルであり、クロック・パルス生成制御部７０の制御を受ける。
【００５５】
クロック・パルス生成制御部７０は、バス１２に接続されており、所定のＩ／Ｏアドレスが割り振られたＩ／Ｏレジスタを備えている。Ｉ／Ｏレジスタの一部は周波数制御レジスタ（Ｆｒｅｑｕｅｎｃｙ  Ｃｏｎｔｒｏｌ  Ｒｅｇｉｓｔｅｒ：ＦＲＱＣＲ）７２として用いられ（Ｉ／Ｏアドレスを例えば＃ｆｆｆｆｆｆ８０番地とする）、他の一部はスタンバイ制御レジスタ（Ｓｔａｎｄｂｙ  Ｃｏｎｔｒｏｌ  Ｒｅｇｉｓｔｅｒ：ＳＴＢＣＲ）７３として用いられている。プロセッサ１１（より具体的には、プロセッサ１１が実行するプログラム・コード）がアドレス指定して転送したデータやコマンドは、バス・インターフェース７１経由でこれらＩ／Ｏレジスタ７２又は７３に書き込まれる。
【００５６】
周波数制御レジスタ７２には、クロック・パルス生成部６０の動作を制御するための逓倍率や分周比が書き込まれる。すなわち、プロセッサ１１はＩ／Ｏアドレス＃ｆｆｆｆｆｆ８０番地を指定して、周波数制御レジスタ７２の逓倍率や分周比を更新すると、これに応答して、クロック周波数制御回路７４はクロック・パルス生成部６０内のＰＬＬ回路６２Ａ，６２Ｂの逓倍率や分周器６３Ａ，６３Ｂの分周比を変更して、プロセッサ１１に供給するクロックの周波数を指定値に変更する。
【００５７】
また、スタンバイ制御レジスタにスタンバイ開始／終了コマンド（仮称）が書き込まれると、スタンバイ制御回路７５は、クロック・パルス生成部６０をスタンバイ・モードに陥れたりスタンバイ・モードから復帰させたりする。但し、スタンバイ・モード自体は本発明の要旨とは直接関連しないので、本明細書中ではこれ以上説明しない。
【００５８】
本実施例で使用されるプロセッサ１１は、クロック発生器５０が供給する動作周波数を変更することによって、その消費電力とパフォーマンス（すなわちリアルタイム・タスクに対する満足度）を制御できる構成であることを前提とする。また、以下の説明では、便宜上、プロセッサ１１の消費電力は、その動作周波数にほぼ比例するものとする。
【００５９】
また、本実施例のプロセッサ１１は、そのパフォーマンスと消費電力の間で形成されるトレードオフ関係を好適に制御するために、アプリケーションが要求するタスクを実行するバックグラウンドで、以下の３つの機能モジュールを実行する。
【００６０】
（１）スケジューリング・モジュール
スケジューリング・モジュールは、プロセッサ１１が各時点においてどのタスクの処理を実行すべきかを決定し、決定結果に従って制御権をタスクに移行させる処理を行う。
【００６１】
（２）電力管理モジュール
電力管理モジュールは、周期的に起動されて、プロセッサ１１の消費電力の予測と動作周波数の設定を行う。より具体的に言えば、プロセッサ１１の消費電力を予測して消費電力に関する満足度を計算するとともに、消費電力に関する満足度がシステム１０全体の目標満足度に最も近くなるような動作周波数に設定する。目標満足度は、次パラグラフで説明する満足度評価モジュールが計算する。
【００６２】
（３）満足度評価モジュール
満足度評価モジュールは、各タスクがどの程度満足できるサービスを提供できているかを評価する。満足度評価モジュールは、スケジューリング・モジュールからの要求に応答して起動する。本実施例では、消費電力に関する満足度と各タスクのサービス品質に関する満足度の加重平均に基づいて、システム１０全体についての目標満足度を算出することとする。
満足度の評価は、タスクの間引きの影響を考慮した満足度と、間引きの影響を考慮しない満足度の２通りを計算して行う。本実施例では、０．０から１．０の間の実数で満足度を表すこととする。
【００６３】
本実施例に係る情報処理システム１０では、プロセッサ１１のパフォーマンスと消費電力の間で形成されるトレードオフ関係を参照しながら、プロセッサ１１が実行する各タスクのスケジューリングが行われる。図３には、情報処理システム１０におけるスケジューリング・メカニズムを模式的に示している。
【００６４】
プロセッサ１１において実行されるアプリケーション・プログラムは、タスクという単位で管理・制御される。アプリケーションが実行を要求したタスクは、実行可能タスク・キューという待ち行列に入れられる。
【００６５】
実行可能タスク・キューに蓄積されたタスクのうち、デッドラインが最も早いものが優先的に抽出される。例えば、ＭＰＥＧデータの復元・表示を行う処理のように、リアルタイム性の要求が高いタスクは、優先的に抽出される。
【００６６】
ディスパッチ機構は、実行すべきタスクの通知を受けると、実行可能タスク・キューからこれを取り出して、タスクの実行を開始せしめる。また、タスクのデッドラインをデッドライン・ミス検出タイマに通知する。
【００６７】
デッドライン・ミス検出タイマは、デッドラインにタイマを設定して、該タイマが消滅するまでにタスクを完了するか否か、すなわち各タスクのデッドラインが守られているか否かを検出する。デッドライン以前に完了しないタスク、すなわちデッドライン・ミスを検出すると、間引き処理のためにプロセッサ１１の過負荷を通知する。デッドライン・ミス検出タイマは、設定さたれ時刻にプロセッサ１１に対して割り込みを発生する機能を備えタイマであり、同時に複数の時刻を設定することができる。
【００６８】
間引き処理は、過負荷の通知に応答して、このタスクの実行を取り消すべく、キャンセル・シグナルを付勢する。
【００６９】
資源配分・電力管理機構は、キャンセル・シグナルを受理して、プロセッサ１１のパフォーマンスと消費電力の間で形成されるトレードオフ関係するべく、プロセッサ１１の処理資源の配分と電力管理を制御する。
【００７０】
なお、上述の間引き処理は、リアルタイム・タスクの起動を間引いて、システム１０がユーザに提供するサービス品質（すなわち満足度）を一定水準に保つための処理を行う。間引き処理では、タスクのディスパッチのタイミングを制御するために、添水変数と水量変数という２つの変数を導入している。
【００７１】
水量変数は、各タスクの実行を間引くことによってシステム１０の負荷を減少させる割合を示す変数であり、過負荷の発生によって一定量が減じられるとともに、周期的に一定比率で１．０に接近するようになっている。これに対し、添水変数は、サービス品質の満足度や平均満足度の比較結果と等価な容量を示す変数であり、０．０〜２．０の値をとる。
【００７２】
水量変数値が添水変数値に加算されて、添水変数値がオーバーフローする（すなわち１．０を越える）と、最早のデッドラインを持つタスクをディスパッチ機構に転送する。このとき、添水変数値は１だけ減じられる。他方、水量値を加算しても添水変数値がオーバーフローしなければ、過負荷状態と判断して、キャンセル・シグナルを発行して、当該タスクを間引く。水量変数と添水変数を用いた協働的動作は、水が足されて貯水量が一定値を超えると、添水が反転して放水してしまう（すなわちタスクをディスパッチする）が、貯水量が一定値に満たないと添水が反転しない（すなわちタスクがディスパッチされない）という動作と等価である。
【００７３】
図４には、本実施例における資源配分・電力管理のメカニズムを模式的に図解している。同図に示すように、資源配分と電力管理では、消費電力に対する満足度と、各タスク毎のサービス品質に対する満足度との加重平均が求められる。そして、この加重平均値が示すシステム１０の総体的な満足度をフィードバックして、電力管理すなわちプロセッサ１１の動作周波数が決定される。
【００７４】
加重平均を計算する際、消費電力や各タスクに対する注目度を考慮して重量因子を印加するようにしてもよい。タスクに対する注目度とは、例えば、タスク実行の優先度などを意味する。
【００７５】
電力管理のための制御系では、電力管理モジュールによって算出された消費電力に対する満足度と、加重平均値が示すシステム１０全体に対する満足度との差分がアキュムレータに蓄積され、このアキュムレータの出力が電力管理モジュールにフィードバックされる。
【００７６】
他方、資源配分のための制御系は、実行中の各タスク毎に１つずつ設けられる。
【００７７】
各タスクに関する資源配分のための制御系では、タスクに対する満足度評価モジュールは、タスクのキャンセルを考慮した場合及び考慮しない場合の各々についてのサービス満足度を出力する。このうち、キャンセルを考慮した満足度を用いて加重平均が算出される。
【００７８】
次に、スケジューリング・モジュールにおける処理について説明する。図５には、スケジューリング・モジュールにおいて実行される処理手順を、フローチャートの形式で示している。以下、このフローチャートの各ステップについて説明する。
【００７９】
まず、ステップＳ１１において、実行可能タスク・キュー中に実行可能タスクが存在するか否かを判断する。実行可能タスク・キューは、アプリケーションから要求された実行可能状態のタスクをリスト形式で保持するデータ構造を有している。本実施例では、デッドラインが最も早い方から順に取り出せるように実装されている。
【００８０】
実行可能タスクが存在しなければ、ステップＳ１２に進んで、システム１０はスリープ状態に遷移する。スリープ状態とは、その字義通り、システム１０の動作状態を低下させた状態である。システム１０をスリープさせる方法は、プロセッサ１１の動作を停止させる他、ハード・ディスク装置１９やディスプレイ１８などの周辺装置への給電を遮断するなど、様々な形態が考えられる。但し、スリープ動作自体は、本発明の要旨とは直接関連しないので、本明細書ではこれ以上説明しない。
【００８１】
スリープ状態下で、システム１０に対し何らかの割り込み要因が発生すると、システム１０はウェーク・アップして通常動作の状態に復帰する。割り込み要因の一例は、キーボードやマウスなど入力装置１６を介したユーザ入力の発生である。
【００８２】
システム１０は、スリープ時間、すなわちスリープ開始から割り込み発生までの時間を計算する（ステップＳ１３）。かかる時間の計算には、リアルタイム・クロック（前述）が計時するシステム時間が利用される。そして、算出したスリープ時間をシステム１０の合計スリープ時間に加算する（ステップＳ１４）。この「合計スリープ時間」は、電力管理モジュールがプロセッサ１１の利用率を計算するために用いる変数であり（後述）、最後に電力管理モジュールが起動してから現在時刻に至るまでの合計スリープ時間を意味する。
【００８３】
他方、ステップＳ１１において、実行可能タスクが存在する場合には、ステップＳ１５に進んで、実行可能タスク・キュー中で最も早いデッドラインが設定されているタスクを変数Ｔに代入する。次いで、タスクＴのデッドラインをデッドライン・ミス検出タイマに設定して（ステップＳ１６）、システム１０の制御権をタスクＴに与える（ステップＳ１７）。デッドライン・ミス検出タイマは、設定された時刻にプロセッサ１１に対して割り込みを発生する機能を備えタイマであり、同時に複数の時刻を設定することができる（前述）。
【００８４】
そして、スリープ状態で割り込みが発生してスリープ時間を終了後（ステップＳ１４）、または、タスクＴを実行中に割り込みが発生した場合（ステップＳ１８）には、ステップＳ１９に進んで割り込み要求を受理し、次いで、ステップＳ２０で割り込み要因を検証する。
【００８５】
割り込み要因がタスク起動タイマからの割り込みであった場合には、ステップＳ２１〜Ｓ２４で形成される一連の処理を行う。この一連の処理は、略言すれば、周期的に実行されるタスク（以下では、タスクＴとする）を次回実行するための前処理のことである。また、ここで言う「タスク起動タイマ」とは、設定された時刻にプロセッサ１１に対して割り込みを発生させる機能を備えたタイマのことであり、同時に複数の時刻を設定することができる。
【００８６】
ステップＳ２１では、タスクＴが持つ添水変数に水量変数を加算する。
【００８７】
タスクＴの添水変数とは、タスクＴに関するサービス品質の満足度や平均満足度の比較結果と等価な容量を示す変数であり、０．０〜２．０の値をとる。添水変数は、リアルタイム・タスクを間引くために用いられる（後述）。
【００８８】
また、水量変数は、プロセッサ１１に対する負荷の発生によって一定量が減じられるとともに、周期的に一定比率で１．０に接近するようになっており、０．０から１．０までの値をとる。水量変数の値は、各タスクの実行を間引くことによってプロセッサ１１の負荷を減少させる割合を示している。すなわち、水量変数値が１．０のときはタスクの間引きは全く行われず、０．０のときは全てのタスクが間引かれどのタスクも起動しない状態となる。
【００８９】
ステップＳ２２では、タスクＴの添水変数が１．０より小さいか否かを判断し、該判断結果が否定的であれば、タスクＴの添水変数から１．０を減算して（ステップＳ２３）、タスクＴを実行可能タスク・キューに追加して（ステップＳ２４）、ステップＳ１１に復帰する。また、ステップＳ２２における判断結果が肯定的であれば、満足度評価モジュールのキャンセル・ルーチン（後述）をコールする。
【００９０】
ステップＳ２１及びＳ２２における水量変数と添水変数を用いた協働的動作は、水が足されて貯水量が一定値を超えると、添水が反転して放水してしまう（すなわちタスクをディスパッチする）が、貯水量が一定値に満たないと添水が反転しない（すなわちタスクがディスパッチされない）という動作と等価である。
【００９１】
他方、ステップＳ２０において、割り込み要因がデッドライン・ミス検出タイマからの割り込みであった場合には、ステップＳ２５〜Ｓ２９で形成される処理を行う。該処理は、略言すれば、実行に失敗したタスクをキャンセルして、他のタスクの実行を準備する処理のことである。
【００９２】
ステップＳ２５では、水量変数に絞り速度変数を乗算して、満足度評価モジュールのキャンセル・ルーチン（後述）をコールする（ステップＳ２６）。ここで言う「絞り速度変数」とは、システム１０が過負荷状態に陥ったときに水量変数値を減少させる割合を示す変数である。絞り速度変数値は、０．０から１．０までの間の実数をとり、例えばシステム１０の設計者がアプリケーションの特性やシステム１０の性能を考慮して自由に設定することができる。
【００９３】
満足度評価モジュールのキャンセル処理を終えた後、ステップＳ２８に進んで、タスクＴを実行可能タスク・キューから取り除く。
【００９４】
次いで、次の周期の実行開始時刻をタスク起動タイマに登録してから、ステップＳ１１に復帰する。
【００９５】
また、ステップＳ１８において、割り込みが発生しなかった場合には、満足度評価モジュール完了手続きを呼び出して該モジュールを完了させる（ステップＳ２７）。次いで、実行に失敗したタスクをキャンセルして他のタスクの実行を準備する処理を行うべく、ステップＳ２８及びＳ２９を実行してから、ステップＳ１１に復帰する。
【００９６】
次に、電力管理モジュールにおける処理について説明する。
【００９７】
電力管理モジュールは、システム１０によって定められた時間（例えば１０ミリ秒）毎に起動される。そして、スケジューリング・モジュールによって設定される合計スリープ時間（前述）を参照することによって、プロセッサ１１の利用率を計算する。さらに、算出された利用率と現在の動作周波数とから、プロセッサ１１の消費電力の予測値を計算する。プロセッサ１１の消費電力が動作周波数に比例する場合には、消費電力の予測値Ｐは以下の式（１）に従って計算することができる。
【００９８】
【数１】
0004123640.tif 000002
【００９９】
但し、上式（１）において、Ｐmは最大動作周波数で動作中のプロセッサ１１の消費電力、ＰSはスリープ中のプロセッサ１１の消費電力、ｆはプロセッサ１１の動作周波数、ｆmはプロセッサ１１の最大動作周波数、ｕはプロセッサ１１の利用率とする。
【０１００】
図６には、電力管理モジュールにおいて実行される処理手順をフローチャートの形式で示している。以下、このフローチャートの各ステップについて説明する。
【０１０１】
まず、ステップＳ４１では、プロセッサ１１の利用率ｕを算出する。利用率ｕは、（繰返し周期−合計スリープ時間）／繰返し周期という計算式で求まる。合計スリープ時間は、スケジューリング・モジュールによって算出される（前述）。
【０１０２】
次いで、合計時間をゼロにしてから（ステップＳ４２）、プロセッサ１１の消費電力Ｐを予想する（ステップＳ４３）。予想消費電力Ｐは、利用率ｕと現在の動作周波数ｆに基づいて、上式（１）を適用して求まる。
【０１０３】
次いで、算出された予想消費電力を基に、消費電力に関する満足度を計算する（ステップＳ４４）。
【０１０４】
次いで、消費電力に関する満足度が目標満足度に最も近くなる動作周波数を計算して（ステップＳ４５）、プロセッサ１１の動作周波数を設定する。
【０１０５】
動作周波数の設定は、クロック発生器５０内の周波数制御レジスタ７２にＩ／Ｏアクセスして、クロック・パルス発生部６０における逓倍率と分周比を書き込むことによって行われる（前述及び図２を参照のこと）。
【０１０６】
そして、電力管理モジュールは、休眠状態に遷移して、次の起動時間まで待機する。
【０１０７】
次に、満足度評価モジュールにおける処理について説明する。満足度評価モジュールは、各タスクに関する満足度を計算するためのものである。また、満足度評価モジュールは、サービスの種別に応じて自由に設定可能な「ＱｏＳレベル設定手続き」、「満足度評価手続き」、「キャンセル通知手続き」、及び「完了通知手続き」などの手続を利用する。これらの手続は、満足度評価モジュール内のメカニズムとしてではなく、アプリケーション・プログラムの設計者が実装することが好ましい。
【０１０８】
図７には、満足度評価モジュールにおいて実行される処理手順をフローチャートの形式で示している。以下、このフローチャートの各ステップについて説明する。
【０１０９】
図５のフローチャートで示した通り、満足度評価モジュールは、キャンセル・ルーチン又は完了ルーチンとしてコールされる（前述及び図５中のステップＳ２６又はＳ２７を参照のこと）。前者の場合はキャンセル通知手続が行われ（ステップＳ５１）、後者の場合は完了通知手続が行われる（ステップＳ５２）。
【０１１０】
これらの手続は、間引きによる満足度の減少度合いを計算するための手続であり、手続実行の結果として０．０から１．０の間の値を返す。戻り値が１．０のときは満足度に全く影響を与えないが、０．０に近づくにつれて多大な影響を与えることを示す。この戻り値は変数ｒに代入される。
【０１１１】
これらの手続を呼び出したタスクがアプリケーション・タスクであれば、例えば以下に示す表に従って戻り値（すなわち満足度に与える影響度）を計算することができる。
【０１１２】
【表１】
0004123640.tif 000003
【０１１３】
次いで、ステップＳ５３では、目標満足度からキャンセルを考慮しない満足度を引いた値を変数ｄに代入する。
【０１１４】
次いで、ステップＳ５４では、ｍａｘ（１．０，ｍｉｎ（０．０，ＱｏＳレベル＋感度×ｄ））をＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）レベルに代入する。ここで、「Ｑｏｓレベル」とは、現在ユーザに提供しているサービスの品質を推量するための値であり、０．０以上の実数値である。また、感度とは、目標満足度と現在の満足度との差に対して、どの程度敏感にＱｏＳレベルを変更すべきかを指示するパラメータであり、０．０以上の実数値である。アプリケーション・プログラムの設計者は、アプリケーションの特性に応じて感度を調整する必要がある。
【０１１５】
次いで、ＱｏＳレベルの設定手続を実行する（ステップＳ５５）。該手続きは、ＱｏＳレベルの値を設定するための関数である。例えば、動画像を生成するアプリケーションにおいて、生成する動画像のフレーム・レートをＱｏＳレベルの値に応じて変化させる場合について考えてみる。ＱｏＳレベルの値を、以下の表に示すようにフレームレートと対応付けるものとする。
【０１１６】
【表２】
0004123640.tif 000004
【０１１７】
ＱｏＳレベル設定手続きは、上表を基にフレームレートを設定して、アプリケーションが適切にフレームレートに応じた処理が行えるよう、様々なパラメータの設定を行う。
【０１１８】
次いで、ステップＳ５６では、満足度評価手続きを呼び出して、その結果を「キャンセルを考慮しない満足度」に代入する。
【０１１９】
満足度評価手続きは、実際に設定されたＱｏＳがユーザにとってどの程度の満足を与えるかを予測する手続きであり、０．０から１．０の間の値を返す。戻り値が大きくなるにつれて満足度が高くなるように計算を行う。例えば、動画像を生成するアプリケーション・タスクの場合、以下の表に従って満足度を評価することができる。
【０１２０】
【表３】
0004123640.tif 000005
【０１２１】
上表に従う満足度評価手続きの場合、ＱｏＳレベルの値が満足度と一意であるが、必ずしもこれに限定されない。より要求の高いアプリケーション・タスクの場合、フレームレートが低下するに従って急激に満足度が低下するように設定してもよい。
【０１２２】
次いで、キャンセルを考慮しない満足度にキャンセル通知手続き又は完了通知手続きの戻り値ｒを乗算した値を満足度に代入する（ステップＳ５７）。
【０１２３】
最後に、下式に従って目標満足度を計算して（ステップＳ５８）、この処理ルーチン全体を終了する。
【０１２４】
【数２】
0004123640.tif 000006
【０１２５】
［追補］
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【０１２６】
【発明の効果】
以上詳記したように、本発明によれば、システム内におけるデータ処理の中核を担うプロセッサの動作周波数を適宜抑制することによって省電力化を図ることができる、優れた情報処理システム及びその制御方法を提供することができる。
【０１２７】
また、本発明によれば、システムの応答時間が許容する範囲内でプロセッサの動作周波数を抑制して省電力化を図ることができる、優れた情報処理システム及びその制御方法を提供することができる。
【０１２８】
本発明に係る情報処理システム及びその制御方法は、消費電力に関する満足度と各タスクのサービス品質に関する満足度の加重平均に基づいて情報処理システム全体についての目標満足度を評価するとともに、プロセッサの消費電力の予測値に基づいて消費電力に関する満足度を計算して、消費電力に関する満足度がシステム全体の目標満足度に近づくようなプロセッサの動作周波数の設定を行うよう。したがって、システムのサービス品質を維持しながら、プロセッサの動作周波数を抑制して省電力化を図ることができる。
【図面の簡単な説明】
【図１】本発明を実現するのに適した典型的な情報処理システム１０のハードウェア構成を模式的に示した図である。
【図２】プロセッサ１１に対して動作クロックを供給するクロック生成器５０の内部構成を模式的に示した図である。
【図３】情報処理システム１０におけるスケジューリング・メカニズムを模式的に示した図である。
【図４】情報処理システム１０における資源配分・電力管理のメカニズムを模式的に示した図である。
【図５】スケジューリング・モジュールにおいて実行される処理手順示したフローチャートである。
【図６】電力管理モジュールにおいて実行される処理手順示したフローチャートである。
【図７】満足度評価モジュールにおいて実行される処理手順示したフローチャートである。
【符号の説明】
１０…情報処理システム
１１…プロセッサ
１２…バス
１３…ＲＡＭ
１４…ＲＯＭ
１５…キーボード／マウス・コントローラ
１６…入力装置（キーボード／マウス）
１７…ディスプレイ・コントローラ
１８…ディスプレイ
１９…外部記憶装置（ＨＤＤ）
２０…メディア・ドライブ
２１…ネットワーク・インターフェース
５０…クロック生成器
【図１】
0004123640.tif 000007
【図２】
0004123640.tif 000008
【図３】
0004123640.tif 000009
【図４】
0004123640.tif 000010
【図５】
0004123640.tif 000011
【図６】
0004123640.tif 000012
【図７】
0004123640.tif 000013