(57)【要約】【課題】応答性を維持しながら負荷量に応じた動作周波数に制御する。【解決手段】タイミング検出部２２により負荷が上昇するタイミングが検出されると、負荷量検出部２０により負荷量が検出される。検出された負荷量が現在の動作周波数に基づいた動作では十分な応答性が得られないようなレベルであるときには、周波数切換制御部２１は動作周波数を最高動作周波数に一旦設定して、その後に、動作周波数を検出された負荷量に応じた動作周波数に切換え設定する。したがって、負荷量が急上昇したとしても応答性を維持でき、また、プロセスの実行状況に応じた動作周波数に移行させることもできる。【選択図】        図３
2004152068.tif 000002
【特許請求の範囲】
【請求項１】
設定された動作周波数に基づいて動作しながら複数種類のプロセスを起動させて実行するプロセッサに係る負荷の量を検出する負荷量検出手段と、
前記負荷量検出手段により検出された負荷量について前記プロセスの応答性を確保するための所定の動作周波数と現在の動作周波数とを比較する比較手段と、
前記比較手段による比較結果、前記現在動作周波数は前記所定周波数に満たないときは、前記プロセッサについて設定可能な最高の動作周波数を前記現在動作周波数に設定する最高周波数設定手段と、
前記最高周波数設定手段により前記最高動作周波数が設定された後に、前記現在動作周波数を前記負荷量検出手段により検出された負荷量に応じた動作周波数に切り換え設定する周波数切換手段とを備える、動作周波数制御システム。
【請求項２】
前記負荷量検出手段は、所定のタイミングにて前記負荷量をモニタリング開始し、所定の時間が経過すると、モニタリングした前記負荷量を積算して検出することを特徴とする、請求項１に記載の動作周波数制御システム。
【請求項３】
プロセッサが実行するプロセスの切換タイミングと、割込み処理の実行開始タイミングおよび実行終了タイミングとを検出するタイミング検出手段をさらに備え、
前記所定タイミングは前記タイミング検出手段が検出するいずれかのタイミングであることを特徴とする、請求項２に記載の動作周波数制御システム。
【請求項４】
前記プロセッサに供給される電圧のレベルを、設定された前記現在動作周波数に応じたレベルに調整することを特徴とする、請求項１から３のいずれか１項に記載の動作周波数制御システム。
【請求項５】
設定された動作周波数に基づいて動作しながら複数種類のプロセスを起動させて実行するプロセッサに係る負荷の量を検出する負荷量検出ステップと、
前記負荷量検出ステップにより検出された負荷量について前記プロセスの応答性を確保するための所定の動作周波数と現在の動作周波数とを比較する比較ステップと、
前記比較ステップによる比較結果、前記現在動作周波数は前記所定周波数に満たないときは、前記プロセッサについて設定可能な最高の動作周波数を前記現在動作周波数に設定する最高周波数設定ステップと、
前記最高周波数設定ステップにより前記最高動作周波数が設定された後に、前記現在動作周波数を前記負荷量検出ステップにより検出された負荷量に応じた動作周波数に切り換え設定する周波数切換ステップとを備える、動作周波数制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はプロセッサの動作周波数を制御するための動作周波数制御システムおよび動作周波数制御方法に関し、特に、プロセッサにおいて実行される処理による負荷の程度に応じて動作周波数を制御する動作周波数制御システムおよび動作周波数制御方法に関する。
【０００２】
【従来の技術】
携帯電話機やＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、ノート型パソコンといった携帯情報処理端末向けのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などのプロセッサは、通常、充電可能な電池（二次電池）などから電力を供給を受けて駆動される。したがって、携帯型の情報処理端末向けプロセッサにおける消費電力を低減させることが要求される。当該要求に応えるための技術として、プロセッサの動作周波数を動的に制御する動作周波数制御システムが知られている（特許文献１参照）。この動作周波数制御しシステムは、例えば、プロセッサがＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を起動することにより実現される。
【０００３】
プロセッサの処理速度や消費電力は動作周波数を切り替えることで変化する。そこで、この動作周波数制御システムは、例えば電話帳データや電子メールを示すデータ、あるいは静止画などを表示するためのプログラムといった、比較的プロセッサにかかる負荷の軽いアプリケーションを実行する際には、動作周波数を低減して電力の消費量を抑制する。他方、動画や音声を再生するプログラムといった、比較的プロセッサにかかる負荷が重いアプリケーションを実行する際にはレスポンスタイムを短くしてユーザが違和感を感じることがないように動作周波数を増大させるように制御する。
【０００４】
こうした機能を実現するために、該動作周波数制御システムでは、例えば処理量が多く、プロセッサに多くの負荷がかかる処理を含んだアプリケーションを周波数制御動作と関連付け、当該アプリケーションの実行開始時および終了時に、プロセッサの動作周波数を制御する“動作周波数強制制御”や、所定のタイミングにて、プロセッサの負荷量をモニタリングし、所定の時間が経過するごとに、モニタリングした負荷量に基づいてプロセッサの利用状況を特定し、特定した利用状況に応じてプロセッサの動作周波数を制御する“パフォーマンスモニタ制御”が用いられている。
【０００５】
上述の動作周波数強制制御では、プロセッサに重い負荷がかかる処理を含んだ高負荷アプリケーション実行時には、プロセッサに供給する電圧のレベルを、通常動作時において供給する電圧のそれとは異なるレベルに変更した後に動作周波数を制御させる。
【０００６】
上述のパフォーマンスモニタ制御では、所定の周期ごとにモニタリングしたプロセッサ負荷量をもとに、動作周波数のクロックアップ時は段階的に行い（つまり、段階的に一つ上の動作周波数にクロックアップする）、クロックダウン時は必要最低限の最低動作周波数に変化させるように制御する。
【０００７】
【特許文献１】
特開２００２−１８２７７６公報の明細書と図面
【０００８】
【発明が解決しようとする課題】
上述の動作周波数強制制御は、アプリケーションが要求する動作周波数をいったん設定すると、そのアプリケーションの時系列的な動作状況によらず、常に設定された動作周波数で動作することとなり、アプリケーションの動作／非動作中によらず、常に一定の電力を消費することになってしまう。例えば、４００ＭＨｚの動作周波数を要求するあるアプリケーションと４０ＭＨｚの動作周波数で十分なパフォーマンスを確保できる他のアプリケーションが同時に動作している場合を想定する。あるアプリケーションは不定期な割込みをトリガとして動作し、他のアプリケーションは継続的に処理を行うような場合、上述の動作周波数強制制御では、一旦あるアプリケーションについて動作周波数が設定されると、あるアプリケーションが動作中／休止中によらず、つねに４００ＭＨｚの動作周波数を必要としてしまい無駄な電力が消費される。つまり、実際のプロセッサの利用状況に合わせて動的に動作周波数を制御することが望まれる。
【０００９】
一方、上述のパフォーマンスモニタ制御では、適切な周期にてプロセッサ負荷量をモニタリングし、適宜動作周波数を制御するため電力消費の無駄をなくして、動作周波数強制制御における課題を回避できる。しかし、動作周波数のクロックアップ処理は段階的に行われるため、十分なパフォーマンスを引き出すために必要となる動作周波数に到達するまでに長時間を要する。したがって、アプリケーションなどのプロセスの起動時、割込み処理開始時または終了時にはプロセッサ負荷量が大きくなるという一般的な傾向に鑑みると、該課題によりアプリケーションのリアルタイム性（要求された時刻から、特定の時間内までに処理を行い応答すること）は阻害されることになる。
【００１０】
それゆえに、この発明の目的は、プロセスの実行状況に拘わらず応答性を維持しながら、プロセスの実行状況に応じた動作周波数に移行させることのできる動作周波数制御システムおよび動作周波数制御方法を提供することである。
【００１１】
【課題を解決するための手段】
この発明のある局面に従うと、動作周波数制御システムは設定された動作周波数に基づいて動作しながら複数種類のプロセスを起動させて実行するプロセッサに係る負荷の量を検出する負荷量検出手段と、負荷量検出手段により検出された負荷量についてプロセスの応答性を確保するための所定の動作周波数と現在の動作周波数とを比較する比較手段と、比較手段による比較結果、現在動作周波数は所定周波数に満たないときは、プロセッサについて設定可能な最高の動作周波数を現在動作周波数に設定する最高周波数設定手段と、最高周波数設定手段により最高動作周波数が設定された後に、現在動作周波数を負荷量検出手段により検出された負荷量に応じた動作周波数に切り換え設定する周波数切換手段とを備える。
【００１２】
したがって、プロセッサについて検出された負荷量が現在の動作周波数に基づいた動作では十分な応答性が得られないような時は、最高動作周波数が設定されて、その後に検出された負荷量に応じた動作周波数に切換え設定される。
【００１３】
それゆえに、現在の動作周波数に基づいた動作では十分な応答性が得られないような負荷量が検出された場合には、最高動作周波数にて動作するように設定されるから、応答性が劣化することを回避してプロセスの実行状況に拘わらず応答性を良好に維持できる。
【００１４】
また、最高動作周波数に設定された後に、動作周波数は検出された負荷量に応じた動作周波数に切換え設定されるから、プロセスの実行状況に応じた動作周波数に移行させることもできる。
【００１５】
上述の負荷量検出手段は好ましくは、所定のタイミングにて負荷量をモニタリング開始し、所定の時間が経過すると、モニタリングした負荷量を積算して検出する。
【００１６】
したがって負荷量検出手段は所定タイミングにおいてのみ負荷量をモニタリングし開始して積算し、常にはしないから、該システムが搭載されたプロセッサの負荷が必要以上に上昇するのを回避できる。
【００１７】
上述の動作周波数制御システムは好ましくは、プロセッサが実行するプロセスの切換タイミングと、割込み処理の実行開始タイミングおよび実行終了タイミングとを検出するタイミング検出手段をさらに備え、前述の所定タイミングはタイミング検出手段が検出するいずれかのタイミングである。
【００１８】
したがって、負荷量検出手段はプロセッサが実行するプロセスの切換タイミング、割込み処理の実行開始タイミングおよび実行終了タイミングのいずれかが検出されたときのみ負荷量を検出し、検出負荷量に基づいて動作周波数が最高周波数に設定される。
【００１９】
それゆえに、プロセッサが実行するプロセスの切換タイミング、割込み処理の実行開始タイミングおよび実行終了タイミングそれぞれにおいては、プロセッサの負荷が上昇するけれども、最高動作周波数で動作しているから、負荷量の上昇を十分に吸収できて応答性を維持できる。
【００２０】
上述の動作周波数制御システムは好ましくは、プロセッサに供給される電圧のレベルを、設定された現在動作周波数に応じたレベルに調整する。
【００２１】
したがって、過度の電圧が供給されるのを、また供給電圧の不足するのも回避できるから、電力消費の無駄を低減でき、また供給電圧不足による応答性の劣化も回避できる。
【００２２】
この発明の他の局面に従う動作周波数制御方法は、設定された動作周波数に基づいて動作しながら複数種類のプロセスを起動させて実行するプロセッサに係る負荷の量を検出する負荷量検出ステップと、負荷量検出ステップにより検出された負荷量についてプロセスの応答性を確保するための所定の動作周波数と現在の動作周波数とを比較する比較ステップと、比較ステップによる比較結果、現在動作周波数は所定周波数に満たないときは、プロセッサについて設定可能な最高の動作周波数を現在動作周波数に設定する最高周波数設定ステップと、最高周波数設定ステップにより最高動作周波数が設定された後に、現在動作周波数を負荷量検出ステップにより検出された負荷量に応じた動作周波数に切り換え設定する周波数切換ステップとを備える。
【００２３】
上述の動作周波数制御方法をコンピュータに実行させるためのプログラムが提供されてもよい。また、該プログラムを記録した機械読取り可能な記録媒体が提供されてもよい。
【００２４】
【発明の実施の形態】
以下に、図面を参照して、この発明の実施の形態に係わる動作周波数制御システムと方法について、図１に示す携帯情報処理端末１００に適用した場合を例に説明する。携帯情報処理端末１００ではインストールされたＯＳは制御対象をプロセス（またはタスク）単位で管理し、管理においてはプロセスの生成、終了、切換えなどが行なわれる。
【００２５】
図１の携帯情報処理端末１００の構成は、例えば携帯型電話機やＰＤＡ（ＰｅｒｓｏｎａｌＤｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、ノート型パソコン（パーソナルコンピュータの略）といった、商用電源から切り離した状態でも動作可能な端末装置に係る構成である。
【００２６】
図１において携帯情報処理端末１００はプロセッサ１、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３、入力部４、表示制御部５、表示部６、電源制御部７、電源制御部７により制御されて携帯情報処理端末１００の各部に駆動するための電力を供給する電源８、外部から記録媒体１５が着脱自在に装着されて装着された記録媒体１５をＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）１３を介したプロセッサ１の制御のもとにアクセスする記録媒体駆動部１４、およびインターネットなどの外部のネットワーク１８と通信するためにＩ／Ｆ１６を介したプロセッサ１の制御のもとに動作する通信部１７を備える。
【００２７】
プロセッサ１は、例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、あるいはＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などから構成されて携帯情報処理端末１００全体の動作を制御するためのものである。プロセッサ１は、ＯＳ（オペレーティングシステム）の制御の下、例えばＲＯＭ２に記録されているプログラムを読み出して、各種アプリケーションなどを実行する。なお、プロセッサ１は、図示されない磁気ディスク装置などの任意の記録媒体からプログラムを読み出してアプリケーションを実行してもよい。
【００２８】
プロセッサ１の内部のレジスタ１２には現在の動作周波数ＣＦと電源８から電源制御部７を介して供給されている現在の電圧レベルＣＶとが記憶される。
【００２９】
また、プロセッサ１は、１チックごとにチック値ＣＶをカウントアップして出力するチックカウンタ１０を有する。ここで、１チックは、プロセッサ１に図示されないクロックから供給される１つのクロック信号に相当する。すなわち、チックカウンタ１０は、例えばプロセッサ１に供給されるクロック信号の立ち上がりエッジのタイミングでクロック数をカウントすることにより、チック値ＣＶをカウントアップする。クロック信号またはチック値により携帯情報処理端末１００の各部の動作（演算の制御、メモリのアクセスなど）のタイミングを取るための周波数である動作周波数が決定される。
【００３０】
ＲＯＭ２は、携帯情報処理端末１００の各部に動作を行なわしめるためにプロセッサ１により読出されて実行されるデバイスドライバやローダープログラム、ＯＳ、アプリケーションプログラムなどのプログラムを記憶する読み取り専用の記憶回路である。また、ＲＯＭ２には図２に例示するような動作周波数テーブルＴＢが予め記憶される。
【００３１】
図２に示す動作周波数テーブルＴＢは、プロセッサ１に対して設定可能な複数種類の動作周波数Ａ１のそれぞれに対応して、該動作周波数Ａ１でプロセッサ１が動作する場合に十分な応答性を確保できる負荷量の範囲に相当のチック値の幅（値域）を示すチック幅Ａ２およびプロセッサ１への電源８による供給電圧の大きさを示す供給電圧レベルＡ３を含む。
【００３２】
ＲＡＭ３は、プロセッサ１がプログラムを実行する際のワークエリアを提供し、データの一時的な記憶などを可能とする書換可能な記憶回路である。
【００３３】
入力部４は、例えばキーパッドやマウス、ポインティングデバイスなどから構成され、携帯情報処理端末１００の動作を指示する指示情報や、文字および数字を示すデータなど入力するためのものである。
【００３４】
表示制御部５は、例えばＶＲＡＭ（Ｖｉｄｅｏ−ＲＡＭ）、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）ドライバなどから構成され、プロセッサ１から受けた画像データなどに応じて表示部６の動作を制御する。
【００３５】
電源制御部７は、例えばスイッチングレギュレータなどから構成され、電源８から供給された電源電圧を所定の電圧に規定し、プロセッサ１なども各部に供給する。ここで、電源制御部７は、プロセッサ１に供給する電圧レベルを変更することで、供給電力を調整し動作周波数の制御を可能とする。
【００３６】
電源制御部７は、携帯情報処理端末１００が図示されない充電機器に接続された場合、充電機器にセットされた旨をプロセッサ１に通知し、電源８の充電を開始する。他方、電源制御部７は、携帯情報処理端末１００と充電機器との接続が解放されると、その旨をプロセッサ１に通知して、電源８の充電を終了する。
【００３７】
電源８は、例えばリチウムイオン電池やニッケル水素イオン電池といった、充電可能な電池（二次電池）から構成され、携帯情報処理端末１００の各部を駆動するための電力を供給する。
【００３８】
動作周波数制御システム１０１の機能ブロックが図３に示される。図３の各機能ブロックは携帯情報処理端末１００において、ＲＯＭ２が記憶するプログラムをプロセッサ１が実行して、ＯＳを起動することにより実現されるソフトウェアにより提供される。図３において動作周波数制御システム１０１はパフォーマンスモニタタイマ３０を有する負荷量検出部２０、周波数切換制御部２１、タイミング検出部２２、モニタフラグ２３および動作モード設定処理部２４を備える。
【００３９】
負荷量検出部２０はチックカウンタ１０によりカウントされたチック値ＣＶを用いてプロセッサ１にかかる負荷量を検出するための処理を実行する。例えば、負荷量検出部２０は、チックカウンタ１０のチック値ＣＶを積算することにより、一定の時間内に実行されたプロセスや割込処理にて要したチック値ＣＶを求め、変数Ｔとして設定する。ここで、負荷量検出部２０は、チックカウンタ１０のチック値ＣＶを示す変数ＴＲＯおよびＴＲを用いてチック値ＣＶを積算するための処理を実行する。変数ＴＲＯは、プロセッサ１が現在実行中のプロセスに処理を切り換えたタイミングや、割込み処理の実行を開始するタイミングにおけるチックカウンタ１０のチック値ＣＶを示す。変数ＴＲは、現在におけるチックカウンタ１０のチック値ＣＶを示す。
【００４０】
周波数切換制御部２１は、負荷量検出部２０により設定された変数Ｔの値に基づいて、プロセッサ１の動作周波数の切換を制御する。周波数切換制御部２１は、プロセッサ１の動作周波数を別の動作周波数に切り換える際には、電源制御部７に対して、プロセッサ１に供給する電圧のレベルの切換を指示する。この際、周波数切換制御部２１は、切換え先の別の動作周波数に基づいてＲＯＭ２に格納されている動作周波数テーブルＴＢを検索して、別の動作周波数に一致する動作周波数Ａ１に対応の供給電圧レベルＡ３を特定して、電源制御部７からプロセッサ１に供給される電圧レベルを特定された供給電圧レベルＡ３に規定する。
【００４１】
タイミング検出部２２のパフォーマンスモニタタイマ３０は、負荷量検出部２０および周波数切換制御部２１が各種の処理を実行するタイミングを検出するために用いられる。すなわち、タイミング検出部２２は、プロセッサ１が実行するプロセスの切換タイミングや、割込み処理の実行開始・終了タイミングを検出すると、チックカウンタ１０のチック値ＣＶを積算するための処理（図４を参照）の実行を、負荷量検出部２０に指示する。また、タイミング検出部２２は、各種のプロセスを実行するタイミングを検出してから予め定められた時間ＴＭが経過したことをパフォーマンスモニタタイマ３０により検出すると、プロセッサ１の利用状況に応じて動作周波数を自動的に切り換えるための処理の実行を、周波数切換制御部２１に指示する。時間ＴＭはプロセッサ１の利用状況を評価する周期を指す。パフォーマンスモニタタイマ３０は、プロセッサ１の利用状況に応じて動作周波数を切り換えるための処理が実行されるごとにリセットされて、再び経過時間の計測を開始（リスタート）する。
【００４２】
このように負荷量検出部２０はタイミング検出部２２によりプロセッサ１が実行するプロセスの切換タイミングや、割込み処理の実行開始・終了タイミングが検出されたときにのみ、チックカウンタ１０のチック値ＣＶを積算するための処理を実行し、常には実行しない。したがって、プロセッサ１の負荷が必要以上に上昇するのを回避できる。
【００４３】
モニタフラグ２３は、携帯情報処理端末１００がプロセッサ１の利用状況に応じて動作周波数を自動的に切り換える動作モードであるか否かを示すためのものである。すなわち、モニタフラグ２３は、携帯情報処理端末１００がプロセッサ１の負荷量をモニタリングして動作周波数を自動的に切り換えるモードであるとき、“ＯＮ”になる。また、モニタフラグ２３は、プロセッサ１で実行されるユーザプログラムからの指示に応じた動作周波数でプロセッサ１を動作させるモードであるとき、“ＯＦＦ”となる。ここでは説明を簡単にするために、後者の動作モードについての詳細は省略する。
【００４４】
動作モード設定処理部２４は、電源８により電力供給開始された時などに図５に示すような所定の初期化処理を実行することなどにより携帯情報処理端末１００の動作モードを設定する。
【００４５】
以下に、この発明の実施の形態に係わる携帯情報処理端末１００の動作を説明する。
【００４６】
携帯情報処理端末１００において動作周波数制御システム１０１は、モニタフラグ２３が“ＯＮ”であるとき、すなわちプロセッサ１の利用状況に応じて動作周波数を自動的に切り換えるモードであるときに、チックカウンタ１０のチック値ＣＶを積算することにより、プロセッサ１の利用状況である負荷量を検出する。
【００４７】
例えば、動作モード設定処理部２４は、電源８による電力供給開始が指示された際に入力部４から入力された指示情報や、電源８を前回切断した時点における動作モードなどに対応した処理を実行し、モニタフラグ２３が“ＯＮ”でないと判断すると（図５のステップＳ（以下、単にＳとする）１）、変数Ｔ、ＴＲＯおよびＴＲを“０”とし（Ｓ２、Ｓ３）、パフォーマンスモニタタイマ３０をリセットして経過時間の計測をスタートさせるなどの初期化処理を実行する（Ｓ４）。こののち、動作モード設定処理部２４は、モニタフラグ２３を“ＯＮ”に設定する（Ｓ５）。
【００４８】
モニタフラグ２３が“ＯＮ”に設定されると（図４のＳ２０）、タイミング検出部２２は、プロセスの切換タイミングや割込み処理の実行開始・終了タイミングを検出し、検出した各タイミングにて、負荷量検出部２０に対してチックカウンタ１０のチック値ＣＶを積算する旨の指令を送る。
【００４９】
負荷量検出部２０は、変数ＴＲから変数ＴＲＯを差し引いた値に、変数Ｔの現在値を加え合わせたものを、新たに変数Ｔとして設定するなどして、プロセッサ１の負荷量に応じたチック値ＣＶを積算する（Ｓ２１）。そして変数ＴＲＯには変数ＴＲの値がセットされて更新される（Ｓ２２）。
【００５０】
タイミング検出部２２は、パフォーマンスモニタタイマ３０により、予め定められた時間ＴＭが経過したことを検出すると、図６のフローチャートに示す動作周波数自動切換処理の実行を開始する旨の指令を、周波数切換制御部２１に送る。動作周波数自動切換処理は、プロセッサ１の利用状況に応じて動作周波数を自動的に切り換えるための処理である。
【００５１】
図６を参照して、周波数切換制御部２１は、タイミング検出部２２からの指令に応答して動作周波数自動切換処理を開始すると、プロセッサ１が現在プロセスを実行中であるか否かを判別する（Ｓ３０）。周波数切換制御部２１は、プロセスを実行中であると判別すると（Ｓ３０にてＹＥＳ）、変数Ｔを設定するための処理を実行する（Ｓ３１）。すなわち、変数ＴＲから変数ＴＲＯを差し引いた値に、変数Ｔの現在値を加えたものを新たに変数Ｔとして設定する。
【００５２】
周波数切換制御部２１は、プロセッサ１がプロセスを実行していないと判別すると（Ｓ３０にてＮＯ）、ステップＳ３１の処理をスキップする。
【００５３】
こののち、プロセッサ１の動作周波数として新たに設定する設定周波数Ｆを特定する（Ｓ３２）。具体的には、周波数切換制御部２１はＲＯＭ２に記憶されている動作周波数テーブルＴＢを変数Ｔが示すチック値に基づいて検索して、各チック値幅Ａ２と変数Ｔのチック値とを比較照合し、変数Ｔのチック値をその値域に含むチック値幅Ａ２を特定して、対応の動作周波数Ａ１を設定周波数Ｆとして特定する。
【００５４】
周波数切換制御部２１は、特定した設定周波数Ｆが、プロセッサ１における現在の動作周波数ＣＦより大きいか否かを判別する（Ｓ３３）。設定周波数Ｆが現在の動作周波数ＣＦより大きいと判別すると（Ｓ３３にてＹＥＳ）、プロセッサ１への供給電圧レベルを最高動作周波数で動作可能なレベルにして設定周波数Ｆに最高動作周波数を設定し（Ｓ９９９）、後述する動作周波数クロックアップ処理を実行し（Ｓ３４）、プロセッサ１の動作周波数をクロックアップする。
【００５５】
ここで最高動作周波数とはプロセッサ１を構成する回路素子の特性などに基づいて、処理の精度は維持しながらも最も高速な応答を可能とするような動作周波数である。例えば図２の動作周波数テーブルＴＢに従えば８００ＭＨｚとなり、供給電圧レベルは１．６５Ｖとなるであろう。なお、プロセッサ１の動作周波数を規定するクロック信号は、チックカウンタ１０がカウントアップするためのクロック信号とは異なるものであり、この携帯情報処理端末１００の各部位に供給されるものである。
【００５６】
このように動作周波数をクロックアップする必要がある場合にはすなわち、プロセス起動時または割り込み処理をトリガとするような不定期プロセス起動時には、最高動作周波数までアップしているので（Ｓ９９９）、これら起動時であって負荷が高まるような場合にでも起動されたプロセスについてのリアルタイム処理を迅速に開始することが可能となる。
【００５７】
一方、周波数切換制御部２１は、設定周波数Ｆが現在の動作周波数ＣＦ以下であると判別すると（Ｓ３３にてＮＯ）、設定周波数Ｆが、プロセッサ１における現在の動作周波数ＣＦより小さいか否かを判別する（Ｓ３５）。周波数切換制御部２１は、設定周波数Ｆが現在の動作周波数ＣＦより小さいと判別すると（Ｓ３５にてＹＥＳ）、後述する動作周波数クロックダウン処理を実行して（Ｓ３６）、プロセッサ１の動作周波数をクロックダウンする。一方、周波数切換制御部２１は、設定周波数Ｆが現在の動作周波数ＣＦと等しいと判別すると（Ｓ３５にてＮＯ）、Ｓ３６の処理をスキップする。
【００５８】
この後、周波数切換制御部２１は変数Ｔ、ＴＲおよびＴＲＯをゼロとして初期化し（Ｓ３７）、周波数切換制御部２１はパフォーマンスモニタタイマ３０をリセットして、再び経過時間の計測を開始（リスタート）させ（Ｓ３９）、動作周波数自動切換処理を終了する。
【００５９】
次に、前述した最高動作周波数にまで上昇させた後に実行される動作周波数クロックアップ処理（Ｓ３４）について図７のフローチャートを参照して説明する。
【００６０】
周波数切換制御部２１は、設定周波数Ｆが現在の動作周波数ＣＦと異なっていない、すなわち設定周波数Ｆと現在の動作周波数ＣＦが一致していると判別すると（Ｓ４０にてＮＯ）、そのまま動作周波数クロックアップ処理を終了する。
【００６１】
一方、周波数切換制御部２１は、設定周波数Ｆが現在の動作周波数ＣＦと異なっていると判別すると（Ｓ４０にてＹＥＳ）、設定周波数Ｆに対応してプロセッサ１に供給する電圧レベルを特定する（Ｓ４１）。具体的には、周波数切換制御部２１は、ＲＯＭ２に記憶されている動作周波数テーブルＴＢを設定周波数Ｆに基づいて検索して、設定周波数Ｆに一致する動作周波数Ａ１に対応の供給電圧レベルＡ３を、供給電圧レベルとして特定する。
【００６２】
周波数切換制御部２１は、特定した供給電圧レベルが現在のプロセッサ１への供給電圧レベルＣＶと異なっていると判断すると（Ｓ４２にてＹＥＳ）、電源制御部７を介して、電源８からプロセッサ１に供給される電圧のレベルＣＶがＳ４１で特定された供給電圧レベルとなるように制御する（Ｓ４３）。
【００６３】
一方、周波数切換制御部２１は、特定された供給電圧レベルと現在の供給電圧のレベルＣＶとが異なっていない、すなわち一致していると判別すると（Ｓ４２にてＮＯ）、Ｓ４３の処理をスキップする。
【００６４】
この後、周波数切換制御部２１は、プロセッサ１の動作周波数ＣＦを設定周波数Ｆに合わせて変更することでクロックアップして（ステップＳ４４）、動作周波数クロックアップ処理を終了する。
【００６５】
このように、一旦、最高動作周波数にまで上昇させた後は、その時点での実際の負荷の程度に応じた動作周波数（設定周波数Ｆ）および供給電圧のレベルとなるように調整されるので、十分な応答性を維持しながらも無駄な電力消費を抑制できる。したがって、段階的に動作周波数を調整する方法と比較して適切な動作周波数へのクロックアップが迅速に行うことが可能となるし、プロセスの起動時点から好ましい応答性を得ることが可能となる。
【００６６】
次に、動作周波数クロックダウン処理（Ｓ３６）について図８のフローチャートを参照して説明する。周波数切換制御部２１は、動作周波数クロックダウン処理を開始すると、設定周波数Ｆが、プロセッサ１における現在の動作周波数ＣＦと異なっているか否かを判別する（Ｓ５０）。設定周波数Ｆと現在の動作周波数ＣＦとが一致していると判別すると（Ｓ５０にてＮＯ）、そのままクロックダウン処理を終了する。
【００６７】
一方、周波数切換制御部２１は、設定周波数Ｆが現在の動作周波数ＣＦと異なっていると判別すると（Ｓ５０にてＹＥＳ）、設定周波数Ｆに対応してプロセッサ１に供給する電圧レベルを特定する（Ｓ５１）。具体的には、周波数切換制御部２１はＲＯＭ２に記憶されている動作周波数テーブルＴＢを設定周波数Ｆに基づいて検索して、該設定周波数Ｆに一致する動作周波数Ａ１に対応の供給電圧レベルＡ３を特定する。
【００６８】
そして、周波数切換制御部２１は、プロセッサ１の現在の動作周波数ＣＦを設定周波数Ｆに合わせて変更することでクロックダウンする（Ｓ５２）。
【００６９】
その後、周波数切換制御部２１はＳ５１で特定した供給電圧レベルが、現在の供給電圧レベルＣＶと異なっているか否かを判別する（Ｓ５３）。異なっていると判別すると（Ｓ５３にてＹＥＳ）、電源制御部７を、プロセッサ１に電源８から供給される電圧のレベルＣＶがＳ５１で特定された供給電圧レベルとなるように制御し（Ｓ５４）、動作周波数クロックダウン処理を終了する。
【００７０】
一方、周波数切換制御部２１は、特定された供給電圧レベルと現在の供給電圧レベルＣＶとが一致していると判別すると（Ｓ５３にてＮＯ）、Ｓ５４の処理をスキップして、動作周波数クロックダウンの処理を終了する。
【００７１】
このようにして、動作周波数制御システム１０１は、携帯情報処理端末１００が備えるプロセッサ１の利用状況（負荷の程度）に応じて動作周波数を自動的に切り換えることができる。
【００７２】
本実施の形態では、チックカウンタ１０によりカウントされるチック値を積算することにより、一定の時間内に実行されたプロセスや割込み処理に要したチック値を求め、プロセッサ１の負荷量（負荷の程度）を特定するものとして説明したが、特定方法はこれに限定されるものではない。例えば、プロセッサ１が実行する処理それぞれと該処理を実行した場合のプロセッサ１の負荷量との対応関係を示すデータを予めＲＯＭ２に記憶しておき、負荷量検出部２０は、ＲＯＭ２に記憶されているデータを参照することにより、プロセッサ１が実行する処理から負荷量を特定するようにしてもよい。
【００７３】
また、プロセッサ１の負荷量をモニタリングする周期となる所定の時間ＴＭは任意に変更できるようにしてもよく、例えば、入力部４により入力された指示情報に応じて任意の時間を設定してもよい。
【００７４】
本実施の形態では、プロセッサ１がチックカウンタ１０を内蔵しているとしたが、これに限定されない。すなわち、プロセッサ１の外部にチック値をカウントすることができるＲＴＣ（Ｒｅａｌ  Ｔｉｍｅ  Ｃｌｏｃｋ）を設け、プロセッサ１の負荷量のモニタリングや所定の時間ＴＭの計測に用いるようにしても良い。
【００７５】
プロセッサ１の利用状況（負荷の程度）に応じて動作周波数を自動的に切り換える場合に、前述の従来の技術で説明した段階的に動作周波数を切換える方法と本実施の形態による方法とのいずれかに選択的に切換えるようにしてもよい。例えば、ユーザが使用する環境化や目的（動作させるアプリケーション）に合わせて切換えることが望ましい。切換えの指示は入力部４の操作により与えられることになろう。
【００７６】
本実施の形態では、動作周波数制御システム１０１を実現するためのＯＳとなる動作プログラムがＲＯＭ２に予め記憶されているものとして説明したが、これに限定されるものではない。すなわち動作プログラムは、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｃ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）−ＲＯＭ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）メモリなどのコンピュータ読み取り可能な記録媒体１５に記録して、記録媒体１５が記録媒体駆動部１４に装着されることで記録されたプログラムが読出されてＲＡＭ３にインストールされて配布されるとしてもよい。また、外部ネットワーク１８を介して伝送される搬送波に該プログラムの信号を重畳して送信し、通信部１７によりこれを受信してＲＡＭ３にダウンロードすることにより配布されるとしてもよい。
【００７７】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【００７８】
【発明の効果】
この発明によれば、現在の動作周波数に基づいた動作では十分な応答性が得られないような負荷量が検出された場合には、最高動作周波数にて動作するように設定されるから、応答性が劣化することを回避してプロセスの実行状況に拘わらず応答性を良好に維持できる。
【００７９】
また、最高動作周波数に設定された後に、動作周波数は検出された負荷量に応じた動作周波数に切換え設定されるから、プロセスの実行状況に応じた動作周波数に移行させることもできる。
【図面の簡単な説明】
【図１】この発明の実施の形態に係わる動作周波数制御システムが適用される携帯情報処理端末の構成を示す図である。
【図２】動作周波数テーブルを例示する図である。
【図３】動作周波数制御システムの機能構成図である。
【図４】チック値の積算処理を説明するためのフローチャートである。
【図５】パフォーマンスモニタ初期化処理を説明するためのフローチャートである。
【図６】本実施の形態に係る動作周波数自動切換処理を説明するためのフローチャートである。
【図７】動作周波数クロックアップ処理を説明するためのフローチャートである。
【図８】動作周波数クロックダウン処理を説明するためのフローチャートである。
【符号の説明】
１  プロセッサ、７  電源制御部、８  電源、１０  チックカウンタ、２０  負荷量検出部、２１  周波数切換制御部、２２  タイミング検出部、２３  モニタフラグ、２４  動作モード設定処理部、３０  パフォーマンスモニタタイマ、１００  携帯情報処理端末、１０１  動作周波数システム、ＴＢ  動作周波数テーブル。
【図１】
2004152068.tif 000003
【図２】
2004152068.tif 000004
【図３】
2004152068.tif 000005
【図４】
2004152068.tif 000006
【図５】
2004152068.tif 000007
【図６】
2004152068.tif 000008
【図７】
2004152068.tif 000009
【図８】
2004152068.tif 000010