(57)【要約】【課題】  中央処理装置の電力消費量をこれまでより柔軟に調節する。【解決手段】  複数の中央処理装置を備えた情報処理装置であって、複数の中央処理装置の各々の温度を測定する温度測定部と、各々の中央処理装置について測定された温度に基づいて、当該中央処理装置の演算処理を休止させる時間の割合である休止割合を算出する休止割合算出部と、複数の中央処理装置の各々において実行されるスレッドにより実現され、予め定められた待機期間当該中央処理装置に他のスレッドを実行させる待機状態、又は、当該中央処理装置の演算処理を休止させる内部休止命令を実行する稼動状態の何れかに遷移することにより、当該中央処理装置の演算処理を休止割合に応じて休止させる休止状態制御部と、複数の中央処理装置の各々に対して割込みを行い、演算処理を休止している中央処理装置の演算処理を再開させる割込処理部とを備える情報処理装置を提供する。【選択図】図２
2006146605.tif 000002
【特許請求の範囲】
【請求項１】
複数の中央処理装置を備えた情報処理装置であって、
前記複数の中央処理装置の各々の温度を測定する温度測定部と、
各々の前記中央処理装置について、当該中央処理装置について測定された温度に基づいて、当該中央処理装置の少なくとも一部に電源が供給されている時間のうち当該中央処理装置の演算処理を休止させる時間の割合である休止割合を算出する休止割合算出部と、
前記複数の中央処理装置の各々に対応して当該中央処理装置において実行される特定のスレッドにより実現され、予め定められた待機期間当該中央処理装置に他のスレッドを実行させる待機状態、又は、当該中央処理装置の演算処理を休止させる内部休止命令を実行する稼動状態の何れかに遷移することにより、当該中央処理装置の演算処理を前記休止割合に応じて休止させる休止状態制御部と、
前記複数の中央処理装置の各々に対して割込みを行い、演算処理を休止している中央処理装置の演算処理を再開させる割込処理部と
を備える情報処理装置。
【請求項２】
前記休止状態制御部は、当該休止状態制御部を実行する中央処理装置が前記割込みを受ける毎に、前記待機状態に遷移して他のスレッドを実行させた後に前記内部休止命令を実行する稼動状態に遷移するか、又は、前記待機状態に遷移することなく前記内部休止命令を実行する稼動状態に遷移するかを、前記休止割合に応じて判断する
請求項１記載の情報処理装置。
【請求項３】
前記休止状態制御部は、アプリケーションプログラムを実行する他のスレッドよりも高い優先度で中央処理装置により実行されるスレッドにより実現される
請求項２記載の情報処理装置。
【請求項４】
前記休止状態制御部は、前記複数の中央処理装置の各々に対応して設けられ、当該中央処理装置で実行される設定であるプロセッサアフィニティが、オペレーティングシステムのスレッドスケジューラに対して設定されたスレッドにより実現される
請求項２記載の情報処理装置。
【請求項５】
前記割込処理部は、前記複数の中央処理装置の各々に対してインターバルタイマ割込みを行うことにより、演算処理を休止している中央処理装置の演算処理を再開させる
請求項１記載の情報処理装置。
【請求項６】
前記割込処理部は、前記複数の中央処理装置の各々に対応して設けられ、当該中央処理装置以外の前記中央処理装置で実行されるスレッドにより実現され、当該中央処理装置に対して割込みを行うことにより、演算処理を休止している中央処理装置の演算処理を再開させる
請求項１記載の情報処理装置。
【請求項７】
前記温度測定部は、更に、各々の前記中央処理装置の温度の上昇率を測定し、
前記休止割合算出部は、各々の前記中央処理装置について、当該中央処理装置の温度が予め定められた基準温度以上であり、かつ当該中央処理装置の温度が上昇している場合に、当該温度の上昇率に基づいて、当該中央処理装置の温度を低下させる前記休止割合を算出する
請求項１記載の情報処理装置。
【請求項８】
前記休止割合算出部は、既に算出した前記休止割合により中央処理装置を休止させた場合において、当該中央処理装置の温度が上昇している場合に、既に算出した当該休止割合と比較してより高い休止割合を算出する
請求項７記載の情報処理装置。
【請求項９】
前記休止割合算出部は、各々の前記中央処理装置について、当該中央処理装置により実行中のタスクが要する計算処理能力が、予め定められた基準の計算処理能力を超える場合に、当該中央処理装置の温度を上昇させない前記休止割合を算出する
請求項７記載の情報処理装置。
【請求項１０】
前記休止状態制御部は、当該休止状態制御部を実行する中央処理装置が前記割込みを受ける毎に、前記休止割合に基づいて定めた待機期間前記待機状態に遷移し、前記待機期間の経過後に前記内部休止命令を実行する稼動状態に遷移する
請求項１記載の情報処理装置。
【請求項１１】
複数の中央処理装置を備えた情報処理装置において、前記複数の中央処理装置の電力消費を制御する制御方法であって、
前記複数の中央処理装置の各々の温度を測定する温度測定段階と、
各々の前記中央処理装置について、当該中央処理装置について測定された温度に基づいて、当該中央処理装置の少なくとも一部に電源が供給されている時間のうち当該中央処理装置の演算処理を休止させる時間の割合である休止割合を算出する休止割合算出段階と、
前記複数の中央処理装置の各々に対応して当該中央処理装置において実行される特定のスレッドにより実現され、予め定められた待機期間当該中央処理装置に他のスレッドを実行させる待機状態、又は、当該中央処理装置の演算処理を休止させる内部休止命令を実行する稼動状態の何れかに遷移することにより、当該中央処理装置の演算処理を前記休止割合に応じて休止させる休止状態制段階と、
前記複数の中央処理装置の各々に対して割込みを行い、演算処理を休止している中央処理装置の演算処理を再開させる割込処理段階と
を備える制御方法。
【請求項１２】
複数の中央処理装置を備えた情報処理装置を制御するプログラムであって、
前記情報処理装置を、
前記複数の中央処理装置の各々の温度を測定する温度測定部と、
各々の前記中央処理装置について、当該中央処理装置について測定された温度に基づいて、当該中央処理装置の少なくとも一部に電源が供給されている時間のうち当該中央処理装置の演算処理を休止させる時間の割合である休止割合を算出する休止割合算出部と、
前記複数の中央処理装置の各々に対応して当該中央処理装置において実行される特定のスレッドにより実現され、予め定められた待機期間当該中央処理装置に他のスレッドを実行させる待機状態、又は、当該中央処理装置の演算処理を休止させる内部休止命令を実行する稼動状態の何れかに遷移することにより、当該中央処理装置の演算処理を前記休止割合に応じて休止させる休止状態制御部と、
前記複数の中央処理装置の各々に対して割込みを行い、演算処理を休止している中央処理装置の演算処理を再開させる割込処理部と
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、制御方法、及びプログラムに関する。特に、本発明は、複数の中央処理装置を備え、これら複数の中央処理装置の電力消費を制御する情報処理装置、制御方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、プロセッサの高集積化・高速化に伴い、プロセッサの消費電力は著しく増加し、発熱による様々な問題が生じている。特に、複数のプロセッサを同一筐体内に密集して搭載する高性能サーバでは、発生する熱をいかに効率的に排出するかが、システム設計の大きな決定要因になっている。例えば、大型のヒートシンクを搭載したり、複数の冷却ファンを連動させるなどして、排熱を行っているが、近年では、発熱量の増大を抑えきれず、性能向上を妨げる要因にもなりつつある。
【０００３】
また、高性能サーバでは、高い可用性が求められ、システムを停止することは許されない。このため、システムを稼動したままでも、故障した冷却ファンを交換できる排熱機構が備えられている場合がある。また、他の例として、一部の冷却ファンが故障しても、他の冷却ファンの回転数を上昇させてその排熱能力を補う機構を搭載している場合もある。更に、特定のプロセッサが過熱した場合に、全プロセッサの動作周波数を均一に低下させて、サーバ全体としての過熱を防止する機構が用いられている場合もある。
【０００４】
このように、特に熱問題が重要な課題である高性能サーバにおいては、冗長な排熱機構により、システムの可用性を高めているが、その結果、コストの大幅な増大を招いている。また、冗長な排熱機構にも限界があり、同時に複数個のファンが故障した場合などには、排熱能力が追いつかず、数分とたたないうちに、プロセッサの温度が危険領域にまで上昇し、やむを得ずシステムを緊急停止する場合も多い。
【０００５】
このような不完全性ゆえ、企業の基幹系システムなど、システムダウンの許されない環境では、即座に部品交換できるようにサービスマンを常駐させる体制をとるなどして、一段のコスト増を招いている。また、これらの機構は、あくまでもハードウェアの破壊やシステムの停止を防止することを目的としている。このため、ハードウェアが過熱した場合であっても、サービスの処理性能をできるだけ高く維持することは想定されていない。
【０００６】
これに対して、従来、より高い精度で電力消費量を制御する各種の技術が提案されている。具体的には、プロセッサユニット内部に専用のハードウェア回路を設け、温度上昇時に動作周波数を低下させることで、温度が既定範囲内に収まるように電力制御する技術が提案されている（特許文献１参照。）。また、冷却ファンの故障が検出された場合に、その冷却ファンにより冷却されていたプロセッサの動作を停止させる技術が提案されている（特許文献２参照。）。
【０００７】
また、非対称型マルチプロセッサシステムにおいて、タスクをプロセッサに割当てるタスクスケジューリングを工夫することで、システム全体としての電力消費量を一定以下に抑える技術が提案されている（特許文献３参照。）。また、プロセッサがタスクを実行していないアイドル状態を検出した場合に、そのプロセッサの動作周波数等を低下させる技術が提案されている（特許文献４参照。）。
【０００８】
【特許文献１】特開平９−３０５２６８号公報
【特許文献２】特開平１１−１９１０１６号公報
【特許文献３】特開２００２−２０２８９３号公報
【特許文献４】特開平８−６６８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１によれば、電力制御用の専用回路をプロセッサに搭載させなければならない。このため、コスト要求の厳しいサーバやパソコンなどの汎用部品を利用して構成されるコンピュータにおいては、実現性が低い。また、特許文献２によれば、冷却ファンの故障が検出された場合には、その冷却ファンの回転数が少々低下した程度の故障であっても、その冷却ファンにより冷却されていたプロセッサを停止させてしまう。このため、冷却可能な最大限度の処理能力を維持することができず、コンピュータ全体の性能を必要以上に低下させてしまう。
【００１０】
また、特許文献３のシステムは、消費電力量を低減させることを目的としたタスクスケジューリングを行う。このため、通常のタスクスケジューリングの目的である処理の高速化・処理待ち時間の低減等に反し、パフォーマンスを低下させるおそれがある。また、特許文献４の技術では、プロセッサが過熱した場合であっても、アイドル状態を検出しない限りは、プロセッサの動作周波数を低下させることはできない。
【００１１】
本発明は、上記の点に鑑みてなされたものであり、ファンの故障などにより、特定のプロセッサの温度が著しく上昇しても、特殊なハードウェア機構を追加することなく、ソフトウェアのみにより電力制御することを目的とする。更に、システムを停止せずにサービスを継続したまま、特定のプロセッサのみに限定して電力制御する機構を提供し、システムの可用性を大幅に高めることを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明の第１の形態においては、複数の中央処理装置を備えた情報処理装置であって、複数の中央処理装置の各々の温度を測定する温度測定部と、各々の中央処理装置について、当該中央処理装置について測定された温度に基づいて、当該中央処理装置の少なくとも一部に電源が供給されている時間のうち当該中央処理装置の演算処理を休止させる時間の割合である休止割合を算出する休止割合算出部と、複数の中央処理装置の各々に対応して当該中央処理装置において実行されるスレッドにより実現され、予め定められた待機期間当該中央処理装置に他のスレッドを実行させる待機状態、又は、当該中央処理装置の演算処理を休止させる内部休止命令を実行する稼動状態の何れかに遷移することにより、当該中央処理装置の演算処理を前記休止割合に応じて休止させる休止状態制御部と、複数の中央処理装置の各々に対して割込みを行い、演算処理を休止している中央処理装置の演算処理を再開させる割込処理部とを備える情報処理装置、当該情報処理装置の制御方法、及び、当該情報処理装置を制御するプログラムを提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【発明の効果】
【００１３】
本発明によれば、中央処理装置の電力消費量をこれまでより柔軟に調節することができる。
【発明を実施するための最良の形態】
【００１４】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１５】
図１は、情報処理装置１０の内部構成を示す。情報処理装置１０は、ホストコントローラ１０８２により相互に接続される中央処理装置ユニット１０００、ＲＡＭ１０２０、及びグラフィックコントローラ１０７５を有する中央処理装置周辺部を備える。また、情報処理装置１０は、入出力コントローラ１０８４によりホストコントローラ１０８２に接続される通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を有する入出力部を備える。また、情報処理装置１０は、入出力コントローラ１０８４に接続されるＲＯＭ１０１０、フレキシブルディスクドライブ１０５０、及び入出力チップ１０７０を有するレガシー入出力部を備える。
【００１６】
ホストコントローラ１０８２は、ＲＡＭ１０２０と、高い転送レートでＲＡＭ１０２０をアクセスする中央処理装置１００５−１及びグラフィックコントローラ１０７５とを接続する。中央処理装置ユニット１０００は、複数の中央処理装置、例えば、中央処理装置１００５−１〜Ｎを有する。中央処理装置１００５−１は、は、ＲＯＭ１０１０及びＲＡＭ１０２０に格納されたプログラムに基づいて動作し、各部の制御を行う。
【００１７】
また、中央処理装置１００５−１は、中央処理装置１００５−２〜Ｎの各々と略同一であり、各中央処理装置からＲＡＭ１０２０に対するアクセス速度は略同一である。即ち例えば、情報処理装置１０は、対象型マルチプロセッサ（SMP:Symmetric Multiprocessor）を搭載した構成を採る。中央処理装置１００５−２〜Ｎの各々は、中央処理装置１００５−１と略同一であるので、以降相違点を除き説明を省略する。
【００１８】
グラフィックコントローラ１０７５は、中央処理装置１００５−１等がＲＡＭ１０２０内に設けたフレームバッファ上に生成する画像データを取得し、表示装置１０８０上に表示させる。これに代えて、グラフィックコントローラ１０７５は、中央処理装置１００５−１等が生成する画像データを格納するフレームバッファを、内部に含んでもよい。
【００１９】
入出力コントローラ１０８４は、ホストコントローラ１０８２と、比較的高速な入出力装置である通信インターフェイス１０３０、ハードディスクドライブ１０４０、及びＣＤ−ＲＯＭドライブ１０６０を接続する。通信インターフェイス１０３０は、ネットワークを介して外部の装置と通信する。ハードディスクドライブ１０４０は、情報処理装置１０が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ１０６０は、ＣＤ−ＲＯＭ１０９５からプログラム又はデータを読み取り、ＲＡＭ１０２０を介して入出力チップ１０７０に提供する。
【００２０】
また、入出力コントローラ１０８４には、ＲＯＭ１０１０と、フレキシブルディスクドライブ１０５０や入出力チップ１０７０等の比較的低速な入出力装置とが接続される。ＲＯＭ１０１０は、情報処理装置１０の起動時に中央処理装置１００５−１が実行するブートプログラムや、情報処理装置１０のハードウェアに依存するプログラム等を格納する。フレキシブルディスクドライブ１０５０は、フレキシブルディスク１０９０からプログラム又はデータを読み取り、ＲＡＭ１０２０を介して入出力チップ１０７０に提供する。入出力チップ１０７０は、フレキシブルディスク１０９０や、例えばパラレルポート、シリアルポート、キーボードポート、マウスポート等を介して各種の入出力装置を接続する。
【００２１】
情報処理装置１０に提供されるプログラムは、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、入出力チップ１０７０及び/又は入出力コントローラ１０８４を介して、記録媒体から読み出され情報処理装置１０にインストールされて実行される。プログラムが情報処理装置１０等に働きかけて行わせる動作は、図２から図８において後述する。
【００２２】
以上に示したプログラムは、外部の記憶媒体に格納されてもよい。記憶媒体としては、フレキシブルディスク１０９０、ＣＤ−ＲＯＭ１０９５の他に、ＤＶＤやＰＤ等の光学記録媒体、ＭＤ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワークやインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムを情報処理装置１０に提供してもよい。
【００２３】
図２は、中央処理装置ユニット１０００により実行されるプログラムの機能を機能ブロックに分類して示す。上述のように、中央処理装置ユニット１０００は、中央処理装置１００５−１〜Ｎを有する。そして、中央処理装置１００５−１〜Ｎの何れかは、温度監視スレッド２０を実行する。温度監視スレッド２０は、温度測定部２００と、休止割合算出部２１０として機能する。温度測定部２００は、中央処理装置１００５−１〜Ｎの各々の温度を測定する。
【００２４】
ここで、温度測定部２００は、例えば、中央処理装置１００５−１〜Ｎの各々に予め設けられた温度センサーを用いて温度を測定する。これに代えて、温度測定部２００は、中央処理装置１００５−１〜Ｎの各々が消費している電力を測定し、その電力量に基づいて推定される温度を算出することにより温度を測定してもよい。休止割合算出部２１０は、中央処理装置１００５−１〜Ｎの各々について、当該中央処理装置について測定された温度に基づいて、当該中央処理装置の少なくとも一部に電源が供給される時間のうち当該中央処理装置の演算処理を休止させる時間の割合である休止割合を算出する。
【００２５】
中央処理装置１００５−１は、電力制御スレッド２２−１と、起動スレッド２４−１とを実行する。電力制御スレッド２２−１は、中央処理装置１００５−１に対応して中央処理装置１００５−１において実行される特定のスレッドである。具体的には、電力制御スレッド２２−１は、中央処理装置１００５−１で実行される設定であるプロセッサアフィニティが、オペレーティングシステムのスレッドスケジューラに対して設定されたスレッドである。
【００２６】
更に、電力制御スレッド２２−１は、アプリケーションプログラムを実行する他のスレッドよりも高い優先度で中央処理装置１００５−１により実行される。例えば、電力制御スレッド２２−１を他のスレッドより優先してスケジューリングする設定を、オペレーティングシステムに対して行ってもよい。これに代えて、オペレーティングシステムが、電力制御スレッド２２−１を他のスレッドより優先してスケジューリングする機能を予め備えていてもよい。
【００２７】
休止状態制御部２２０−１は、電力制御スレッド２２−１により実現される。そして、休止状態制御部２２０−１は、予め定められた期間中央処理装置１００５−１に他のスレッドを実行させる待機状態、又は、中央処理装置１００５−１の演算処理を休止させる内部休止命令を実行する稼動状態の何れかに遷移する。
【００２８】
休止状態制御部２２０−１は、待機状態にある時間及び稼動状態にある時間の比率を調節することにより、中央処理装置１００５−１の演算処理を、休止割合算出部２１０により算出された休止割合に応じて休止させる。起動スレッド２４−１は、割込処理部２３０−１として機能する。割込処理部２３０−１は、中央処理装置１００５−２に対応して設けられ、中央処理装置１００５−２以外の中央処理装置で実行されるスレッド、即ち起動スレッド２４−１により実現される。そして、割込処理部２３０−１は、中央処理装置１００５−２に対して定期的に割込みを行うことにより、演算処理を休止している中央処理装置１００５−２を再開させる。
【００２９】
同様に、中央処理装置１００５−２は、割込処理部２３０−２として機能し、割込処理部２３０−２は、中央処理装置１００５−３に対して割込みを行う。また、中央処理装置１００５−Ｎは、割込処理部２３０−Ｎとして機能し、割込処理部２３０−Ｎは、中央処理装置１００５−１に対して割込みを行う。
【００３０】
図３は、休止割合算出部２１０が休止割合を算出する処理の一例を示すフローチャートである。温度測定部２００及び休止割合算出部２１０は、以下の処理を各々の中央処理装置について行う。本図ではその一例として、温度測定部２００及び休止割合算出部２１０が中央処理装置１００５−１について行う処理を示す。まず、温度測定部２００は、中央処理装置１００５−１の温度を測定する（Ｓ３００）。休止割合算出部２１０は、測定された温度が、予め定められた基準温度以上か否かを判断する（Ｓ３１０）。測定された温度が、基準温度以上でない場合には（Ｓ３１０：ＮＯ）、休止割合算出部２１０は、休止割合として０を算出し（Ｓ３１５）、Ｓ３００に処理を戻す。
【００３１】
一方、測定された温度が基準温度以上の場合に（Ｓ３１０：ＹＥＳ）、休止割合算出部２１０は、温度の上昇率を測定する（Ｓ３２０）。例えば、休止割合算出部２１０は、前回測定した温度と今回測定した温度との差分値を算出し、算出したその差分値を測定の時間間隔で除算してもよい。そして、休止割合算出部２１０は、中央処理装置１００５−１の温度の上昇率が、中央処理装置１００５−１の温度に応じた基準上昇率より高いか否かを判断する（Ｓ３３０）。中央処理装置１００５−１の温度の上昇率が基準上昇率以下の場合には（Ｓ３３０：ＮＯ）、Ｓ３００に処理を戻す。ここで、基準上昇率は、温度に対応付けて予め定められており、例えば、温度が高くなるのに応じて低い値を採り、温度が低くなるのに応じて高い値を採る。
【００３２】
一方、中央処理装置１００５−１の温度の上昇率が基準上昇率より高い場合に（Ｓ３３０：ＹＥＳ）、休止割合算出部２１０は、中央処理装置１００５−１のＣＰＵ使用率が基準以上か否かを判断する（Ｓ３４０）。ＣＰＵ使用率が基準以上の場合には（Ｓ３４０：ＹＥＳ）、休止割合算出部２１０は、中央処理装置１００５−１の上昇を防ぐ休止割合を算出すべく、既に前回算出した休止割合と比較してより高い休止割合を算出する（Ｓ３５０）。例えば、休止割合算出部２１０は、休止割合を１％ずつ増加させてもよい。
【００３３】
一方、ＣＰＵ使用率が基準未満の場合には（Ｓ３４０：ＮＯ）、休止割合算出部２１０は、温度の上昇率に応じて、休止割合を増加させる増分値を算出する（Ｓ３６０）。例えば、温度の上昇率がより高い場合には、温度の上昇率がより低い場合と比較してより大きい増分値を算出してもよい。そして、休止割合算出部２１０は、算出した増分値を既に算出した休止割合に加える。その後、温度測定部２００及び休止割合算出部２１０は、再度Ｓ３００に処理を戻す。
【００３４】
このように、休止割合算出部２１０は、中央処理装置１００５−１の温度が基準温度以上に上昇した場合に、中央処理装置１００５−１の休止割合を０より大きい値に設定する。そして、休止割合算出部２１０は、既に算出した休止割合により中央処理装置を休止させた場合において、その中央処理装置の温度が上昇している場合には、既に算出した当該休止割合と比較してより高い休止割合を算出する。これにより、中央処理装置１００５−１における演算処理を適度に休止させ、中央処理装置１００５−１の温度を低下させることができる。
【００３５】
更に、休止割合算出部２１０は、中央処理装置１００５−１により実行中のタスクが要する計算処理能力が、予め定められた基準の計算能力を超えるか否かを、ＣＰＵ使用率の値に基づいて判断する。そして、休止割合算出部２１０は、その計算能力が基準の計算能力を超える場合には、中央処理装置１００５−１の温度を低下させることに優先してそのタスクの実行を完了させるべく、中央処理装置１００５−１の温度を上昇させない程度の休止割合を算出する。このように、中央処理装置１００５−１の温度のみならず実行中のタスクの状態に基づいて柔軟に休止割合を定めることができる。
【００３６】
図４は、中央処理装置１００５−１の状態変化を示すタイムチャートである。本図上段から順に、中央処理装置１００５−１の状態変化、電力制御スレッド２２−１の状態変化、中央処理装置１００５−１上で動作する他のスレッドの状態変化、及び、中央処理装置１００５−Ｎの状態変化を示す。本図においては、休止割合算出部２１０が、中央処理装置１００５−１の休止割合として７５％を算出した場合の状態変化を説明する。
【００３７】
電力制御スレッド２２−１は、中央処理装置１００５−１の休止割合が０より大きい値に設定されると稼動状態に遷移する。休止状態制御部２２０−１は、電力制御スレッド２２−１が稼動状態に遷移すると直ちに内部休止命令を実行する。これにより、中央処理装置１００５−１は、演算処理を休止した休止状態（ＯＦＦ）に遷移する。ここで、内部休止命令とは、中央処理装置１００５−１の動作クロックを有効としたまま演算器の動作を休止させるＨＡＬＴ命令である。また、内部休止命令は、ＨＡＬＴ命令に先立って実行される、中央処理装置１００５−１の動作電圧を低下させる電圧低下命令を含む。
【００３８】
そして、割込処理部２３０−Ｎは、中央処理装置１００５−１に対して定期的に割り込むことにより、休止していた演算処理を再開させる（ＯＮ）。中央処理装置１００５−１が演算処理を再開させると、休止状態制御部２２０−１は、動作を再開し、動作を再開させると直ちに内部休止命令を実行する。これにより、中央処理装置１００５−１は、再度、休止状態に遷移する。続いて、休止状態制御部２２０−１は、２度目の割込みを受けて動作を再開させ、内部休止命令を実行し、中央処理装置１００５−１は、休止状態に遷移する。
【００３９】
割込処理部２３０−Ｎによる３度目の割込みにより、中央処理装置１００５−１が動作を再開すると、休止状態制御部２２０−１は、待機遷移処理により待機状態に遷移し、中央処理装置１００５−１により他のスレッドを実行させる。この結果、他のスレッドは待機状態から稼動状態に状態遷移する。ここで、待機遷移処理とは、例えば、予め指定した待機期間、スレッドを待機状態に遷移させた後に動作を再開させるスリープシステムコールである。この結果、中央処理装置１００５−１において他のスレッドが動作する。
【００４０】
待機期間経過後に、電力制御スレッド２２−１は稼動状態に状態遷移する。これにより、中央処理装置１００５−１上で動作する他のスレッドは待機状態に遷移する。これらの状態遷移の後に直ちに、休止状態制御部２２０−１は、内部休止命令を実行し、中央処理装置１００５−１が再度休止状態に遷移する。以降同様に、休止状態制御部２２０−１は、４回起動される毎に１回待機遷移処理を行う。この結果、中央処理装置１００５−１は、中央処理装置１００５−１が動作している時間の約３／４の時間を、演算処理を休止した休止状態（ＯＦＦ）とすることができる。
【００４１】
以上、本図に示すように、休止状態制御部２２０−１は、休止状態制御部２２０−１を実行する中央処理装置１００５−１が割込みを受ける毎に、待機状態に遷移して他のスレッドを実行させた後に内部休止命令を実行する稼動状態に遷移するか、又は、待機状態に遷移することなく内部休止命令を実行する稼動状態に遷移するかを、休止割合に応じて判断することができる。
【００４２】
本図の制御に代えて、休止状態制御部２２０−１は、中央処理装置１００５−１が割込みを受ける毎に、休止割合算出部２１０により算出された休止割合に基づいて定めた待機期間待機状態に毎回遷移してもよい。そしてこの場合、休止状態制御部２２０−１は、待機期間の経過後に内部休止命令を実行する稼動状態に遷移する。一例として、中央処理装置１００５−１が１００ｍｓ毎に割込みを受ける場合においては、休止状態制御部２２０−１は、割込みを受ける毎に２５ｍｓの間待機状態に遷移してもよい。このような制御によっても、中央処理装置１００５−１を適度に休止させて、破損・誤動作を防止できる。
【００４３】
以上、図１から図４に示すように、本実施例における情報処理装置１０によれば、中央処理装置の休止割合をソフトウェアにより柔軟に制御することができる。具体的には、オペレーティングシステム上で動作する電力制御スレッド、温度監視スレッド、及び起動スレッドの協業により休止割合が制御される。これにより、冷却ファン・ヒートシンク等の大規模な冷却機構を追加することなく、中央処理装置の性能を最大限有効に維持しつつ、中央処理装置の過熱を防止できる。
【００４４】
更に、休止状態の制御は、オペレーティングシステムの管理下で動作するユーザレベルスレッドにより行わる。また、各々のスレッドは、既存のオペレーティングシステムの機能であるプロセッサアフィニティにより各中央処理装置に対応付けられる。このように、本実施例によれば、既存のオペレーティングシステムを改造・修正することなく休止状態を制御できる。これにより、既存の情報処理装置に電力制御の機能を補完・補強し、情報処理装置を一層効率的かつ安定的に運用させることができる。
【００４５】
図５は、本実施例の変形例における情報処理装置１０の内部構成を示す。本例における入出力コントローラ１０８４は、図１における入出力コントローラ１０８４と異なり、割込処理部４００を更に備える。割込処理部４００は、中央処理装置１００５−１〜Ｎの各々に対してインターバルタイマ割り込みを行うことにより、演算処理を休止している中央処理装置の演算処理を再開させる。一例として、割込処理部４００は、入出力コントローラ１０８４内に実装されたプログラマブル割込コントローラにより実現される。
【００４６】
図６は、本実施例の変形例において、中央処理装置ユニット１０００により実行されるプログラムの機能を機能ブロックに分類して示す。本例における中央処理装置１００５−１は、図２に示す中央処理装置１００５−１とは異なり、起動スレッド２４−１を実行させなくともよい。即ち、中央処理装置１００５−１は、割込処理部２３０−１として機能しなくてもよい。
【００４７】
そして本例において、休止割合算出部２１０は、何れかの中央処理装置について０より大きい休止割合を算出した場合に、当該中央処理装置に対して定期的に割り込む設定を割込処理部４００に対して行う。中央処理装置１００５−１〜Ｎの各々は、割込処理部４００から割り込みを受けることにより、演算処理を停止していた場合には演算処理を再開する。
【００４８】
以上、本変形例においては、起動スレッドでなく割込コントローラが、中央処理装置１００５−１〜Ｎの各々に割込みを行う。これにより、中央処理装置において実行させるスレッドを減らすことができるので、ユーザアプリケーション等を実行する他のスレッドを効率的に実行させることができる。また、本変形例のような構成を採った場合であっても、上記実施例と同様に、休止割合の制御をユーザレベルスレッドにより柔軟に行わせることができる。即ち、中央処理装置の休止割合の制御は起動スレッドのみによって行われるので、プログラマブル割込コントローラに対して複雑な設定をする必要がない。
【００４９】
図７は、休止状態が未設定の場合と休止状態が設定済みの場合とにおける、中央処理装置の負荷の違いを示す。本図においては、情報処理装置１０が、４つの中央処理装置（ＣＰＵ０からＣＰＵ４）を有する場合について説明する。また、例えば冷却ファンの故障により、ＣＰＵ１及びＣＰＵ３の冷却能力が低下した場合を想定する。
【００５０】
（ａ）は、冷却ファンが故障する前の状態であって、休止割合が未設定の場合における、各中央処理装置の負荷の実測値を示す。各々の中央処理装置において、電力制御スレッド等とは異なる他の複数のスレッドが実行されている。
【００５１】
（ｂ）は、冷却ファンが故障した結果、ＣＰＵ１及びＣＰＵ３に対して休止割合が設定された場合における、各中央処理装置の負荷の実測値を示す。ＣＰＵ１及びＣＰＵ３の各々において、電力制御スレッドの負荷が約７５％に達している。ここで、電力制御スレッドが中央処理装置の実行権を有している間は、中央処理装置が演算処理を休止した休止状態となっている。このため、ＣＰＵ１及びＣＰＵ３の実質的な負荷は大幅に軽減され、冷却ファンの故障にも関わらずＣＰＵ１及びＣＰＵ３の過熱を防止することが確かめられた。
【００５２】
図８は、中央処理装置の温度及び負荷の変化、並びに、冷却ファンの回転数の変化を示す。本図においては、図７と同様、情報処理装置１０が、４つの中央処理装置（ＣＰＵ０からＣＰＵ４）を有する場合について説明する。また、例えば冷却ファンの故障により、実験開始から８分後にＣＰＵ１及びＣＰＵ３の冷却能力が低下した場合を想定する（図８（ｃ））。この結果、ＣＰＵ１及びＣＰＵ３の温度は徐々に上昇し、実験から２８分後にＣＰＵ１及びＣＰＵ３の温度が、基準温度である７２度以上に上昇している（図８（ａ））。
【００５３】
これを受けて、休止割合算出部２１０は、ＣＰＵ１及びＣＰＵ３の休止割合として７５％を算出する。そして、電力制御スレッド２２−１は、その休止割合に基づいて待機状態又は稼動状態への状態遷移を繰り返す。この結果、図８（ｂ）に示すように、電力制御スレッドのＣＰＵ負荷が高まり、他のスレッドのＣＰＵ負荷が低下している。この結果、ＣＰＵ１及びＣＰＵ３の温度は徐々に低下し、実験開始から５０分で、安全な温度で安定することが確かめられた（図８（ａ））。
【００５４】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【図面の簡単な説明】
【００５５】
【図１】図１は、情報処理装置１０の内部構成を示す。
【図２】図２は、中央処理装置ユニット１０００により実行されるプログラムの機能を機能ブロックに分類して示す。
【図３】図３は、休止割合算出部２１０が休止割合を算出する処理の一例を示すフローチャートである。
【図４】図４は、中央処理装置１００５−１の状態変化を示すタイムチャートである。
【図５】図５は、本実施例の変形例における情報処理装置１０の内部構成を示す。
【図６】図６は、本実施例の変形例において、中央処理装置ユニット１０００により実行されるプログラムの機能を機能ブロックに分類して示す。
【図７】図７は、休止状態が未設定の場合と休止状態が設定済みの場合とにおける、中央処理装置の負荷の違いを示す。
【図８】図８は、中央処理装置の温度及び負荷の変化、並びに、冷却ファンの回転数の変化を示す。
【符号の説明】
【００５６】
１０  情報処理装置
２０  温度監視スレッド
２２  電力制御スレッド
２４  起動スレッド
２００  温度測定部
２１０  休止割合算出部
２２０  休止状態制御部
２３０  割込処理部
４００  割込処理部
１０００  中央処理装置ユニット
１００５  中央処理装置
１０１０  ＲＯＭ
１０２０  ＲＡＭ
１０８４  入出力コントローラ
【図１】
2006146605.tif 000003
【図２】
2006146605.tif 000004
【図３】
2006146605.tif 000005
【図４】
2006146605.tif 000006
【図５】
2006146605.tif 000007
【図６】
2006146605.tif 000008
【図７】
2006146605.tif 000009
【図８】
2006146605.tif 000010