(57)【要約】【課題】必要とするプロセッサの能力が時々刻々と変化するアプリケーションソフトウエアに応じてきめ細かなクロック周波数制御を行うことが可能な情報処理装置およびクロック周波数制御方法を提供する。【解決手段】アプリケーションプログラムを実行するＣＰＵ１１に対してクロック周波数制御モジュール１３が所定の周波数のクロックを供給する。負荷状態モニタープログラム１１３はＣＰＵ１１がアプリケーションプログラムを実行した際の負荷状態をモニターし、アプリケーションプログラム実行時のＣＰＵ１１の平均使用率を算出する。負荷状態モニタープログラム１１３は算出した平均使用率を基に増減するクロック周波数を決定し、決定した情報を周波数指示プログラム１１５に通知する。周波数指示プログラム１１５は通知された決定情報に基づき、クロック周波数制御モジュール１３にクロック周波数の変更を指示する。【選択図】      図２
2004280216.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムを実行するプロセッサと、
このプロセッサに対して所定の周波数のクロックを供給するクロック供給手段と、
前記プロセッサがアプリケーションプログラムを実行した際の、前記プロセッサの負荷状態をモニターする負荷状態モニター手段と、
この負荷状態モニター手段のモニター結果に応じて、前記プロセッサに供給するクロック周波数の変更を前記クロック供給手段に指示する周波数変更指示手段と
を具備したことを特徴とする情報処理装置。
【請求項２】
アプリケーションプログラムを実行するプロセッサと、
このプロセッサに対して所定の周波数のクロックを供給するクロック供給手段と、
前記プロセッサがアプリケーションプログラムを実行した際の、前記プロセッサの負荷状態をモニターする負荷状態モニター手段と、
この負荷状態モニター手段のモニター結果に応じて、前記プロセッサに供給するクロック周波数の変更を前記クロック供給手段に指示する周波数変更指示手段と、
この周波数変更指示手段が前記クロック供給手段に変更指示したクロック周波数情報を不揮発性記憶媒体に保存する保存手段と
を具備したことを特徴とする情報処理装置。
【請求項３】
前記負荷状態モニター手段は、前記アプリケーションプログラムの実行期間におけるプロセッサの平均使用率を算出し、この算出した平均使用率に応じた周波数増減データを前記周波数変更指示手段に通知し、前記周波数変更指示手段は前記負荷状態モニター手段から通知される周波数増減データに基づき前記クロック供給手段を制御することを特徴とした請求項１乃至２記載の情報処理装置。
【請求項４】
前記保存手段は電源オフ処理時に、前記周波数変更指示手段が前記クロック供給手段に変更指示したクロック周波数情報を前記不揮発性記憶媒体に保存することを特徴とした請求項２記載の情報処理装置。
【請求項５】
アプリケーションプログラムを実行するプロセッサに所定の周波数のクロックを供給し、
前記プロセッサがアプリケーションプログラムを実行した際の、前記プロセッサの負荷状態をモニターし、
このモニター結果に応じて、前記プロセッサに供給するクロック周波数を変更する
ことを特徴とするクロック周波数制御方法。
【請求項６】
アプリケーションプログラムを実行するプロセッサに所定の周波数のクロックを供給し、
前記プロセッサがアプリケーションプログラムを実行した際の、前記プロセッサの負荷状態をモニターし、
このモニター結果に応じて、前記プロセッサに供給するクロック周波数を変更し、
変更されたクロック周波数情報を不揮発性記憶媒体に保存する
ことを特徴とするクロック周波数制御方法。
【請求項７】
前記プロセッサの負荷状態のモニターにより前記アプリケーションプログラムの実行期間におけるプロセッサの平均使用率を算出し、この算出した平均使用率に前記プロセッサに供給するクロック周波数を変更することを特徴とした請求項５乃至６記載のクロック周波数制御方法。
【請求項８】
変更されたクロック周波数情報の不揮発性記憶媒体への保存はシステム終了時に行われることを特徴とする請求項６記載のクロック周波数制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はソフトウエアを実行するプロセッサの周波数を可変する情報処理装置およびクロック周波数制御方法に関する。
【０００２】
【従来の技術】
電池にて駆動する携帯型パソコンなどの携帯型情報端末では電池駆動時間を延ばすため、また発熱対策としてＣＰＵの消費電力を低減させるために、ＣＰＵに供給するクロック周波数をＣＰＵの動作状態に応じて可変している。
【０００３】
このＣＰＵへ供給するクロック周波数の可変方法として、システムが実行する個々のアプリケーションに必要とされるＣＰＵ能力を予め求め、求めたＣＰＵ能力に合わせたクロック周波数を個々のアプリケーションソフトウエアに対応させてメモリに保存しておき、システム動作時に動作させるアプリケーションソフトウエアを判別して、判別したアプリケーションソフトウエアに対応するクロック周波数をメモリから読出してクロック制御部に指示を与えることで、ＣＰＵに供給されるクロック周波数を個々のアプリケーションソフトウエアに応じて可変する方法がある（例えば、特許文献１参照。）。
【０００４】
【特許文献１】
特表２００２−５３３８０１号公報（第１２頁−第１５頁、第２図）
【０００５】
【発明が解決しようとする課題】
上記特許文献１によれは、システムが実行するアプリケーションソフトウエアに応じてＣＰＵのクロック周波数を可変するので、効率の良い消費電力制御が行える。しかし、特許文献１では個々のアプリケーションソフトウエアに対するクロック周波数はそれぞれひとつに固定されており、使い方次第で時々刻々と必要とするＣＰＵ能力が変化するアプリケーションソフトウエアでの最適制御はできないという課題があった。
【０００６】
本発明は上記課題に鑑み、必要とするプロセッサの能力が時々刻々と変化するアプリケーションソフトウエアに応じてきめ細かなクロック周波数制御を行うことが可能な情報処理装置およびクロック周波数制御方法を提供することを目的とする。
【０００７】
【課題を解決するための手段】
本発明の情報処理装置は、アプリケーションプログラムを実行するプロセッサと、このプロセッサに対して所定の周波数のクロックを供給するクロック供給手段と、プロセッサがアプリケーションプログラムを実行した際のプロセッサの負荷状態をモニターする負荷状態モニター手段と、この負荷状態モニター手段のモニター結果に応じてプロセッサに供給するクロック周波数の変更をクロック供給手段に指示する周波数変更指示手段とを備えている。
【０００８】
また、本発明の情報処理装置は、アプリケーションプログラムを実行するプロセッサと、このプロセッサに対して所定の周波数のクロックを供給するクロック供給手段と、プロセッサがアプリケーションプログラムを実行した際のプロセッサの負荷状態をモニターする負荷状態モニター手段と、この負荷状態モニター手段のモニター結果に応じてプロセッサに供給するクロック周波数の変更をクロック供給手段に指示する周波数変更指示手段と、この周波数変更指示手段がクロック供給手段に変更指示したクロック周波数情報を不揮発性記憶媒体に保存する保存手段とを備えている。
【０００９】
また、本発明のクロック周波数制御方法は、アプリケーションプログラムを実行するプロセッサに所定の周波数のクロックを供給し、プロセッサがアプリケーションプログラムを実行した際のプロセッサの負荷状態をモニターし、このモニター結果に応じてプロセッサに供給するクロック周波数を変更する。
【００１０】
また、本発明のクロック周波数制御方法は、アプリケーションプログラムを実行するプロセッサに所定の周波数のクロックを供給し、プロセッサがアプリケーションプログラムを実行した際のプロセッサの負荷状態をモニターし、このモニター結果に応じてプロセッサに供給するクロック周波数を変更し、変更されたクロック周波数情報を不揮発性記憶媒体に保存する。
【００１１】
【発明の実施の形態】
以下、図面を参照して、本発明の実施形態を説明する。
図１は本発明の実施形態に係わる情報処理装置の構成を示すシステムブロック図である。
本実施形態の情報処理装置は、プロセッサユニット（以下、ＣＰＵと称する）１１、ＣＰＵ１１に対して動作クロックを可変的に供給するクロック供給手段であるクロック周波数制御モジュール１３、情報処理装置の制御プログラムが格納される不揮発性メモリ１５、オペレーティングシステムプログラム（以下、ＯＳプログラムと称する）や各種アプリケーションソフトウエアプログラム（以下、アプリケーションプログラムと称する）が格納される不揮発性記憶媒体である磁気ディスクを有する磁気ディスク装置（以下、ＨＤＤと称する）１７、磁気ディスク装置１７に格納されたＯＳプログラムやアプリケーションプログラムが展開されるワークメモリ１９、各部に電力を供給する電源回路２１、この電源回路２１を制御する電源マイコン２３、データを表示する表示部２５、表示部２５の制御を行う表示コントローラ２７、ユーザからのデータ入力が行われるキーボード部２９、キーボード部２９を制御するキーボードコントローラ３１、各部間のデータ転送のシステムバス３３から構成される。
【００１２】
不揮発性メモリ１５には制御プログラムとして、情報処理装置の基本入出力制御を行う基本入出力制御プログラム（以下、ＢＩＯＳと称する）１１１が格納されている。
【００１３】
磁気ディスク装置１７にはＯＳプログラム１１２、予め定められたアプリケーションソフトウエアプログラムＢ、Ｃ、Ｄが格納されている。ＯＳプログラム１１２には、アプリケーションプログラムがそれぞれ実行される際のＣＰＵ１１の負荷状態（使用率）をモニターする負荷状態モニター手段である負荷状態モニタープログラム１１３、各アプリケーションの負荷に応じたクロック周波数の供給をクロック周波数制御モジュール１３に指示する周波数変更指示手段である周波数指示プログラム１１５が組み込まれている。負荷状態モニタープログラム１１３はＣＰＵ１１の負荷状態（使用率）に応じたクロック周波数増減テーブル１１３ａを有する。周波数指示プログラム１１５は各アプリケーションプログラムに対応したクロック周波数に関する情報を記憶する周波数情報テーブル１１５ａを有する。なお、図１はＯＳプログラム１１２、アプリケーションプログラムＢ、Ｃ、Ｄがワークメモリ１９に展開された状態を示している。
【００１４】
次に、本実施形態に係る情報処理装置の動作を説明する。
図２は本実施例の動作を説明するためのフローチャートである。
ユーザからの指示などにより電源マイコン２３に電源立ち上げ指示があると、電源マイコン２３は電源回路２１に電力供給を指示する。電源マイコン２３から電力供給指示があると、電源回路２１は情報処理装置の各部に電力を供給する（ステップＳ２０１）。ＣＰＵ１１は電源回路２１から電力が供給されると、不揮発性メモリ１５のＢＩＯＳ１１１を読出してシステム起動処理を開始する（ステップＳ２０３）。ＢＩＯＳ１１１にはシステム起動時にクロック周波数制御モジュール１３からＣＰＵ１１に最高クロック周波数（例えば８００ＭＨｚ）を供給させるための制御コマンドが設けられている。ＢＩＯＳ１１１はシステム起動時、ＣＰＵ１１に最高システムクロック周波数を供給するようクロック周波数制御モジュール１３に対して指示する。クロック周波数制御モジュール１３はＣＰＵ１１の指示に応じ、ＣＰＵ１１に最高システムクロック周波数を供給する（ステップＳ２０５）。これにより、ＣＰＵ１１は最高システムクロック周波数に応じた最高処理速度でシステム起動処理を実行する。
【００１５】
ＢＩＯＳ１１１はシステム起動処理において、磁気ディスク装置１７に保存されているＯＳプログラム１１２、各アプリケーションプログラムＢ、Ｃ、Ｄをワークメモリ１９に展開する（ステップＳ２０７）。ＯＳプログラム１１２がワークメモリ１９に展開されると、ＢＩＯＳ１１１はＯＳプログラム１１２に制御を渡す。ＯＳプログラム１１２はＢＩＯＳ１１１から制御を受けると、ＣＰＵ１１、表示コントローラ２７を制御して、初期画面としてアプリケーションプログラムＢ、Ｃ、Ｄの選択画面を表示部２５に表示させる（ステップＳ２０９）。ＯＳプログラム１１２は選択画面を表示部２５に表示させると、ＣＰＵ１１へ供給されるシステムクロックを最高クロック周波数から最低クロック周波数（例えば、５０ＭＨｚ）に切り替えるようクロック周波数制御モジュール１３に対して指示する。クロック周波数制御モジュール１３はクロック周波数の切り替え指示を受けると、ＣＰＵ１１に対して供給するクロック周波数を最高クロック周波数から最低クロック周波数に切り替えて供給する（ステップＳ２１１）。クロック周波数の切り替えが完了すると、ＯＳプログラム１１２はキーボード部２９を介してプログラム選択指示が入力されたか否かをチェックする（ステップＳ２１３）。
【００１６】
表示部２５にプログラムＢ、Ｃ、Ｄの選択画面が表示され、キーボード部２９からの選択指示入力待ちの間、情報処理装置はスタンバイ状態である。このスタンバイ状態においては、ＣＰＵ１１は最低クロック周波数に切り替えられ、消費電力が低減される。
【００１７】
キーボード部２９を介してアプリケーションプログラムＢ、Ｃ、Ｄの内いずれかのアプリケーションプログラムの選択指示が入力されると、キーボードコントローラ３１はプログラム選択信号をシステムバス３３を介してＯＳプログラム１１２に通知する。システムバス３３を介してプログラム選択信号が供給されると、ＯＳプログラム１１２はワークメモリ１９に展開された周波数指示プログラム１１５に対して選択されたプログラムに対応するクロック周波数の選択を指示する。選択指示を受けると、周波数指示プログラム１１５は周波数情報テーブル１１５ａの内容を参照して、選択されたアプリケーションプログラムに対応するクロック周波数情報を読み出し、このクロック周波数情報に応じたクロック周波数の供給をクロック周波数制御モジュール１３に指示する。周波数指示プログラム１１５からの指示に基づき、クロック周波数制御モジュール１３はＣＰＵ１１に対して選択されたアプリケーションプログラムに対応するクロック周波数を供給する（ステップＳ２１５）。
【００１８】
図３は周波数指示プログラム１１５の周波数情報テーブル１１５ａに格納されたクロック周波数情報の一例を説明するための図である。
図３においては、デフォルト値として、アプリケーションプログラムＢを処理するのに最適なＣＰＵ１１のクロック周波数としてクロック周波数２００ＭＨｚを示す「２００」が、アプリケーションプログラムＣを処理するのに最適なＣＰＵ１１のクロック周波数としてクロック周波数５００ＭＨｚを示す「５００」が、アプリケーションプログラムＤを処理するのに最適なＣＰＵ１１のクロック周波数としてクロック周波数７００ＭＨｚを示す「７００」が格納されている。
【００１９】
アプリケーションプログラムＣがキーボード部２９を介して選択されたとすると、周波数指示プログラム１１５は周波数情報テーブル１１５ａの内容を参照して、アプリケーションプログラムＣのクロック周波数が「５００」であることから、クロック周波数制御モジュール１３に５００ＭＨｚのクロック周波数をＣＰＵ１１に供給するよう指示する。クロック周波数制御モジュール１３は周波数指示プログラム１１５からの指示に応じてＣＰＵ１１に供給するクロック周波数を最低周波数から５００ＭＨｚに切り替える。
【００２０】
ステップＳ２１５においてクロック周波数制御モジュール１３による選択されたアプリケーションプログラムに対応したクロック周波数への切り替えが完了すると、周波数指示プログラム１１５は切り替え完了をＯＳプログラム１１２に通知する。ＯＳプログラム１１２は周波数指示プログラム１１５からの周波数切り替えの完了通知を受けると、選択されたアプリケーションプログラムを実行させる（ステップＳ２１７）。アプリケーションプログラムの動作中、負荷状態モニタープログラム１１３はアプリケーションプログラム動作に伴うＣＰＵ１１の負荷状態（使用率）をアプリケーションプログラムの終了までモニターする（ステップＳ２１９）。
【００２１】
ＯＳプログラム１１２は選択されたアプリケーションプログラムが終了したか否かをチェックしており（ステップＳ２２１）、アプリケーションプログラムが終了したことを判断すると負荷状態モニタープログラム１１３に選択されたアプリケーションプログラムの終了を通知する。負荷状態モニタープログラム１１３は選択されたアプリケーションプログラムの終了通知を受けると、選択されたアプリケーションプログラムの実行期間中におけるＣＰＵ１１の負荷状態（使用率）の平均値を算出する（ステップＳ２２３）。負荷状態モニタープログラム１１３は算出したＣＰＵ１１の負荷状態（使用率）の平均値を基に、クロック周波数増減テーブル１１３ａを参照して、次回アプリケーションプログラムＣを実行する際のクロック周波数の増減値（増減データ）を決定する（ステップＳ２２５）。
【００２２】
図４はクロック周波数増減テーブル１１３ａを説明するための図である。
図４においては、平均使用率が１０％未満の場合はクロック周波数を２００ＭＨｚ減らすこと示す「−２００」が、平均使用率が１０％以上２０％未満の場合はクロック周波数を１００ＭＨｚ減らすことを示す「−１００」が、平均使用率が２０％以上３０％未満の場合はクロック周波数を５０ＭＨｚ減らすことを示す「−５０」が、平均使用率が３０％以上７０％未満の場合は増減無しを示す「±０」が、平均使用率が７０％以上８０％未満の場合はクロック周波数を５０ＭＨｚ増加させることを示す「＋５０」が、平均使用率が８０％以上９０％未満の場合はクロック周波数を１００ＭＨｚ増加させることを示す「＋１００」が、平均使用率が９０％以上の場合はクロック周波数を２００ＭＨｚ増加させることを示す「＋２００」というデータがクロック周波数増減テーブル１１３ａに登録されている。例えば、負荷状態モニタープログラム１１３が算出したアプリケーションプログラムＣの平均使用率が２５％であった場合、負荷状態モニタープログラム１１３は図４のクロック周波数増減テーブル１１３ａを参照して、次回アプリケーションプログラムＣを実行させる際のクロック周波数増減値を５０ＭＨｚ減と判断する。
【００２３】
ステップＳ２２５において負荷状態モニタープログラム１１３がクロック周波数増減値を決定すると、負荷状態モニタープログラム１１３は該当するアプリケーションプログラムについて決定したクロック周波数増減値を示す情報を周波数指示プログラム１１５に通知する。周波数指示プログラム１１５は負荷状態モニタープログラム１１３からの通知に応じて、周波数情報テーブル１１５ａの該当アプリケーションプログラムのクロック周波数情報を書き換える（ステップＳ２２７）。
【００２４】
図５は周波数指示プログラム１１５の周波数情報テーブル１１５ａが書き換えられた例を説明するための図である。
図５は、ステップＳ２２５において負荷状態モニタープログラム１１３がアプリケーションプログラムＣのＣＰＵ１１の平均使用率を２５％と算出したことに応じ、周波数情報テーブル１１５ａのアプリケーションプログラムＣのクロック周波数情報がクロック周波数５００ＭＨｚを示す「５００」からクロック周波数５５０ＭＨｚを示す「４５０」に書き換えられた例を示している。
【００２５】
ステップＳ２２７で周波数情報テーブル１１５ａの書き換え後、周波数指示プログラム１１５はＯＳプログラム１１２に書き換え完了を通知する。ＯＳプログラム１１２は書き換え完了通知を受けると、ステップＳ２０９に処理を戻す。
【００２６】
ステップＳ２１３において、プログラム選択指示が入力されない場合、ＯＳプログラム２１１はキーボード部２９を介してシステムの終了指示が入力されたか否かをチェックする（ステップＳ２２９）。ＯＳプログラム２１１はシステム終了指示が入力されないと判断すると、処理をステップＳ２１３に戻す。システム終了指示が入力されると、ＯＳプログラム２１１は周波数情報テーブル１１３ａの内容を不揮発性記憶媒体であるＨＤＤ１７内の磁気ディスクに保存する（ステップＳ２３１）。周波数情報テーブル１１３ａの内容保存後、ＯＳプログラム２１１はその他の終了処理を実行し（ステップＳ２３３）、電源マイコン２３に電源オフを指示して情報処理装置の電源をオフさせる。
【００２７】
以上のように本実施形態によれば、所定のアプリケーションプログラムが終了した時点でＣＰＵ１１の負荷状態（使用率）の平均値を算出し、算出した平均値に応じてクロック周波数情報を増減させることにより、次にアプリケーションを実行する際に前回のＣＰＵ１１の負荷状態（使用率）を反映したクロック周波数をクロック周波数制御モジュール１３からＣＰＵ１１に供給することにより、アプリケーションプログラム実行時の最適クロック周波数を動的に変更でき、きめ細かなクロック周波数制御を行うことが可能になる。
【００２８】
なお、本実施形態においては、ＣＰＵ１１の使用率を算出して、この使用率を基にクロック周波数の増減値を決めたが、本発明はこの方法に限らず、例えばアプリケーションプログラムの実行期間中でのＣＰＵ１１の最高使用率を基にクロック周波数の増減値を決めても良い。この際、アプリケーションプログラムの終了を待たずに、アプリケーションプログラムの実行中に負荷状態モニタープログラム１１３が周波数指示プログラム１１５にクロック周波数の増減を指示してクロック周波数制御モジュールがＣＰＵ１１に供給するクロック周波数を切り替えても良い。
【００２９】
また、本実施形態においては、ＯＳプログラム１１２内に負荷状態モニタープログラム１１３と周波数指示プログラム１１５が組み込まれた構成であったが、負荷状態モニタープログラム１１３と周波数指示プログラム１１５はＯＳプログラムと別プログラムであっても良い。
【００３０】
また、本実施形態においては、システム終了時に周波数情報テーブル１１５ａの内容をＨＤＤ１７内に保存したが、周波数情報テーブル１１５ａの内容の保存場所は不揮発性の記憶媒体であれば良い。
【００３１】
【発明の効果】
本発明によれば、アプリケーションプログラムの実行に最適なクロック周波数を前回実行時のＣＰＵの負荷状況に応じて変更することにより、きめ細かなクロック周波数制御を行うことが可能な情報処理装置およびクロック周波数制御方法を提供することが可能になる。
【図面の簡単な説明】
【図１】本発明の実施形態に係わる情報処理装置の構成を示すシステムブロック図。
【図２】本実施形態の動作を説明するためのフローチャート。
【図３】周波数情報テーブルに格納されたクロック周波数情報を説明するための図。
【図４】クロック周波数増減テーブルを説明するための図。
【図５】周波数情報テーブル書き換えられた例を説明するための図。
【符号の説明】
１１    ＣＰＵ
１３    クロック周波数制御モジュール
１５    不揮発性メモリ
１７    ＨＤＤ
１９    ワークメモリ
２１    電源回路
２３    電源マイコン
２５    表示部
２７    表示コントローラ
２９    キーボード部
３１    キーボードコントローラ
３３    システムバス
１１２    オペレーティングシステムプログラム
１１３    負荷状態モニタープログラム
１１３ａ    クロック周波数増減テーブル
１１５    周波数指示プログラム
１１５ａ    周波数情報テーブル
【図１】
2004280216.tif 000003
【図２】
2004280216.tif 000004
【図３】
2004280216.tif 000005
【図４】
2004280216.tif 000006
【図５】
2004280216.tif 000007