(57)【要約】【課題】電子情報機器が、ＣＰＵに供給されるクロック信号の周波数を、より適切に設定できるようにする。【解決手段】動作率算出部２４０が、例えばタスクの起動や停止から一定時間経過するまでなど、予め定められた一定時間におけるＣＰＵの動作率を算出する。ここで、動作率は、ＣＰＵが動作状態にある時間的割合であり、動作状態は、ＣＰＵが何らかの処理を行っている状態である。そして、クロック設定部２５０は、動作率算出部２４０が算出した動作率に基づいて、ＣＰＵに供給されるクロック信号の周波数を設定する。【選択図】図２
2012083879.tif 000002
【特許請求の範囲】
【請求項１】
タスクを実行し、実行するタスクに応じてＣＰＵの状態を、動作状態と、消費電力を前記動作状態よりも低減させる制御が行われる状態である省電状態とのいずれかに設定するタスク実行部と、
前記ＣＰＵが前記動作状態にある時間的割合である動作率を、予め定められた一定期間について算出する動作率算出部と、
前記動作率算出部が算出する前記動作率に基づいて、前記動作状態にて前記ＣＰＵに供給されるクロック信号の周波数を設定するクロック設定部と、
を具備することを特徴とする電子情報機器。
【請求項２】
前記タスクの起動および停止を検出するタスク管理部を具備し、
前記動作率算出部は、前記動作率を、前記タスク管理部が前記タスクの起動または停止を検出してから前記予め定められた一定時間が経過時間するまでの間について算出する、ことを特徴とする請求項１に記載の電子情報機器。
【請求項３】
前記動作率算出部は、前記動作率を、ＣＰＵの処理負荷を変化させる割込み信号として予め定められた割り込み信号を、前記ＣＰＵが検出してから前記予め定められた一定時間が経過時間するまでの間について算出する、ことを特徴とする請求項１に記載の電子情報機器。
【請求項４】
前記タスク実行部は、前記動作状態と前記省電状態との切替の際に前記切替を示す信号を出力し、
前記動作率算出部は、前記動作率を、前記タスク管理部が前記タスクの起動または停止を検出してから予め定められた一定時間が経過時間するまでの間に前記タスク実行部が出力する前記切替を示す信号に基づいて算出する、
ことを特徴とする請求項１から３のいずれか一項に記載の電子情報機器。
【請求項５】
電子情報機器のＣＰＵクロック周波数設定方法であって、
タスク実行部が、タスクを実行し、実行するタスクに応じてＣＰＵの状態を、動作状態と、前記動作状態よりも消費電力の少ない省電状態とのいずれかに設定するタスク実行ステップと、
動作率算出部が、前記ＣＰＵが前記動作状態にある時間的割合である動作率を、予め定められた一定期間について算出する動作率算出ステップと、
クロック設定部が、前記動作率算出部が算出する前記動作率に基づいて、前記動作状態にて前記ＣＰＵに供給されるクロック信号の周波数を設定するクロック設定ステップと、
を具備することを特徴とするＣＰＵクロック周波数設定方法。
【請求項６】
コンピュータに、
タスクを実行し、実行するタスクに応じてＣＰＵの状態を、動作状態と、前記動作状態よりも消費電力の少ない省電状態とのいずれかに設定するタスク実行ステップと、
前記ＣＰＵが前記動作状態にある時間的割合である動作率を、予め定められた一定期間について算出する動作率算出ステップと、
前記動作率算出ステップにて算出した前記動作率に基づいて、前記動作状態にて前記ＣＰＵに供給されるクロック信号の周波数を設定するクロック設定ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子情報機器、電子情報機器におけるＣＰＵクロック周波数設定方法およびプログラムに関する。
【背景技術】
【０００２】
コンピュータや携帯電話機等の電子情報機器のＣＰＵ（Central Processing Unit、中央処理装置）は、通常、クロック信号の入力を受けて動作する。このクロック信号がＨｉ（電圧高）状態とＬｏｗ（電圧低）状態とを繰り返すことにより、ＣＰＵ内の多くのロジック回路もＨｉ状態とＬｏｗ状態とを繰り返し、電力を消費して発熱する。そして、クロック周波数が高くなると、ＣＰＵの消費電力が大きくなる。そこで、ＣＰＵの状態に応じてクロック供給を停止する、あるいは、クロック周波数を低下させることにより、ＣＰＵの電力消費を抑える技術が知られている。
【０００３】
ＣＰＵの電力消費を抑えるためにクロック周波数を制御する技術に関連して、特許文献１では、ＣＰＵの稼働率をレベル分けし、稼働率レベルに応じてクロック周波数を変化させるＣＰＵ動作制御装置が示されている。
また、特許文献２では、アプリケーションプログラム毎にＣＰＵの使用率を示すテーブルを用いて、起動中のアプリケーションに応じてＣＰＵのクロック周波数を設定する電子機器が示されている。
また、特許文献３および特許文献４では、スリープタスク（またはスリープタスク以外のタスク）がＣＰＵを占有した割合からＣＰＵのアイドル率（またはＣＰＵの使用率）を求め、このアイドル率（または使用率）に応じてクロック信号の周波数レベルを設定する携帯端末装置ないし情報処理装置が示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−１１２７５６号公報
【特許文献２】特開２００８−７７５６３号公報
【特許文献３】特開２０１０−３９７９１号公報
【特許文献４】特開２０１０−９７２７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１では、プログラム実行状態からＣＰＵの処理負荷を求めるとされているものの、ＣＰＵの稼働率を求める具体的方法は示されていない。
また、特許文献２に示されるＣＰＵ動作制御装置は、起動中のアプリケーションに応じてＣＰＵのクロック周波数を設定するが、同一のアプリケーションが動作している場合でも、その動作中にＣＰＵの使用率が変化する場合がある。例えば、携帯電話機が、あるアプリケーションを実行中に、着信を受けて着信処理動作を行うなど、実行中のアプリケーションとは異なる機能が動作することにより、ＣＰＵの使用率が変化する場合がある。さらに、特許文献２に示されるＣＰＵ動作制御装置では、アプリケーションプログラム毎にＣＰＵの使用率を予め記憶しておく必要がある。このため、アプリケーション数が増大すると、ＣＰＵの使用率を記憶するために必要なメモリ容量が増大し、また、起動中のアプリケーションにおけるＣＰＵの使用率をテーブルから検索するための処理負荷および処理時間が増大し、さらには、ＣＰＵの使用率が示されていない新たなアプリケーションをインストールした場合には、適切にクロック周波数を設定できなくなる。
【０００６】
また、特許文献３および４に示される携帯端末装置ないし情報処理装置は、スリープタスクが実行されているか否かに基づいてＣＰＵのアイドル率または使用率を求めるため、スリープタスク以外のタスク実行中にもＣＰＵが低負荷となる場合に、適切にクロック周波数を設定できない。
【０００７】
本発明は、このような事情を考慮してなされたものであり、その目的は、より適切にクロック周波数を設定可能な電子情報機器、ＣＰＵクロック周波数設定方法およびプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
この発明は上述した課題を解決するためになされたもので、本発明の一態様による電子情報機器は、タスクを実行し、実行するタスクに応じてＣＰＵの状態を、動作状態と、前記動作状態よりも消費電力の少ない省電状態とのいずれかに設定するタスク実行部と、前記ＣＰＵが前記動作状態にある時間的割合である動作率を、予め定められた一定期間について算出する動作率算出部と、前記動作率算出部が算出する前記動作率に基づいて、前記動作状態にて前記ＣＰＵに供給されるクロック信号の周波数を設定するクロック設定部と、を具備することを特徴とする。
【０００９】
また、本発明の一態様によるＣＰＵクロック周波数設定方法は、電子情報機器のＣＰＵクロック周波数設定方法であって、タスク実行部が、タスクを実行し、実行するタスクに応じてＣＰＵの状態を、動作状態と、前記動作状態よりも消費電力の少ない省電状態とのいずれかに設定するタスク実行ステップと、動作率算出部が、前記ＣＰＵが前記動作状態にある時間的割合である動作率を、予め定められた一定期間について算出する動作率算出ステップと、クロック設定部が、前記動作率算出部が算出する前記動作率に基づいて、前記動作状態にて前記ＣＰＵに供給されるクロック信号の周波数を設定するクロック設定ステップと、を具備することを特徴とする。
【００１０】
また、本発明の一態様によるプログラムは、コンピュータに、タスクを実行し、実行するタスクに応じてＣＰＵの状態を、動作状態と、前記動作状態よりも消費電力の少ない省電状態とのいずれかに設定するタスク実行ステップと、前記ＣＰＵが前記動作状態にある時間的割合である動作率を、予め定められた一定期間について算出する動作率算出ステップと、前記動作率算出ステップにて算出した前記動作率に基づいて、前記動作状態にて前記ＣＰＵに供給されるクロック信号の周波数を設定するクロック設定ステップと、を実行させるためのプログラムである。
【発明の効果】
【００１１】
本発明によれば、より適切にクロック周波数を設定できる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態における電子情報機器の概略構成を示す構成図である。
【図２】同実施形態における処理部の概略構成を示す構成図である。
【図３】同実施形態における測定時間の例を示す図である。
【図４】同実施形態において、タスク実行部が、ＣＰＵの動作状態が動作状態から省電状態に切り替わることを示す信号を出力するタイミングの例を示す図である。
【図５】同実施形態において、タスク実行部が、ＣＰＵの動作状態が省電状態から動作状態に切り替わることを示す信号を出力するタイミングの例を示す図である。
【図６】同実施形態において、ＣＰＵのクロック周波数を決定する際の処理部の処理手順を示すフローチャートである。
【図７】同実施形態において、割り込み信号を契機としてＣＰＵのクロック周波数を決定する場合の、処理部の処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、図面を参照して、本発明の実施の形態について説明する。
図１は、本発明の一実施形態における電子情報機器の概略構成を示す構成図である。同図において、電子情報機器１は、ＣＰＵ１１０と、メモリ１２０と、クロックソース１３０と、逓倍器１４０と、タイマ１５０と、入力装置１６０と、表示装置１７０とを具備する。
【００１４】
電子情報機器１は、クロック信号の入力を受けて動作するＣＰＵを具備する機器であればよい。電子情報機器１として、例えば、コンピュータや携帯電話機など様々な機器が挙げられる。
ＣＰＵ１１０は、メモリ１２０の記憶するプログラムを読み出して実行することにより、後述する処理部を構築する。ＣＰＵ１１０は、同期式のＣＰＵであり、クロック信号の入力を受けて動作する。
メモリ１２０は、ＣＰＵ１１０の実行するプログラムや各種データを記憶する。また、メモリ１２０はＣＰＵが動作する際のワーキングメモリとして機能する。
【００１５】
クロックソース１３０は、ＣＰＵ１１０に供給するクロック信号の元となる、比較的低周波のクロック信号を逓倍器１４０に出力する。クロックソース１３０は、クロック信号を出力可能であればよく、様々な回路をクロックソース１３０として用いることができる。例えば、クロックソース１３０が水晶発振子を具備してクロック信号を生成するようにしてもよいし、電子情報機器１の外部からクロック信号の入力を受けるようにしてもよい。
逓倍器１４０は、クロックソース１３０の出力するクロック信号を高周波のクロック信号に変換し、得られた高周波のクロック信号をＣＰＵ１１０に供給する。
【００１６】
タイマ１５０は、ＣＰＵ１１０の要求に応じて時間をカウントする。タイマ１５０は、後述する動作率算出部２４０が、ＣＰＵ１１０の動作率を算出する際に用いられる。
入力装置１６０は、入力デバイスを具備してユーザの操作を受け付ける。例えば、電子情報機器１がコンピュータの場合、入力装置１６０は、キーボードやマウス等を入力デバイスとして具備する。あるいは、電子情報機器１が携帯電話機の場合、入力装置１６０は、テンキーや方向キー等のボタンを入力デバイスとして具備する。入力装置１６０の受け付けるユーザの操作は、ＣＰＵ１１０がタスクを実行または終了する契機となる。
表示装置１７０は、例えば液晶ディスプレイ等の表示画面を具備し、タスクの実行結果など、様々な画像や文字等を表示する。
【００１７】
図２は、処理部２００の概略構成を示す構成図である。処理部２００は、ＣＰＵ１１０（図１）がメモリ１２０の記憶するプログラムを読み出して実行することにより構築される。同図において、処理部２００は、タスク実行部２１０と、ＣＰＵ状態制御部２２０と、タスク管理部２３０と、動作率算出部２４０と、クロック設定部２５０とを具備する。
【００１８】
タスク実行部２１０は、タスクを実行し、実行するタスクに応じてＣＰＵ１１０の状態を、動作状態と省電状態とのいずれかに設定する。
ここでいう、「タスク」は、ソフトウェア実行の一単位であり、ＯＳ（Operating System）が管理可能（起動および停止を検出可能）な単位である。例えば、タスクはプロセスであってもよいし、スレッドであってもよい。なお、タスクには、入力装置１６０がユーザの操作を受け付けて実行されるアプリケーションのタスク（以下では、「アプリケーションタスク」と称する）のほか、例えば携帯電話における着信時の処理のように、アプリケーションタスク以外のタスク（ユーザの操作以外の契機で実行されるタスク）もある。
また、「動作状態」は、ＣＰＵ１１０が一定負荷以上の処理を行っている状態であり、「省電状態」は、ＣＰＵ１１０が割込み有無の確認など特定の処理のみを行っており、ＣＰＵ１１０が一定負荷未満となっている状態である。後述するように、タスク実行部２１０は、動作状態と省電状態とを切り替える際に、切り替えを示す信号を出力する。この切り替えを示す信号は、具体的には、動作状態から省電状態に変化することを示す信号と、省電状態から動作状態に変化することを示す信号とのいずれかである。
【００１９】
ＣＰＵ状態制御部２２０は、タスク実行部２１０がＣＰＵ１１０の状態を省電状態に設定すると、ＣＰＵ１１０の消費電力を動作状態時よりも少なくする制御を行う。ＣＰＵ状態制御部２２０は、例えば、ＣＰＵ１１０の一部へのクロック信号の供給を停止するクロックゲーティングを行うことによって、ＣＰＵ１１０の消費電力を少なくする。あるいは、ＣＰＵ１１０の一部回路への電源供給を停止するパワーゲーティングを行うなど、クロックゲーティング以外の方法によって、あるいはクロックゲーティングと他の方法とを併用して、ＣＰＵ１１０の消費電力を少なくするようにしてもよい。
【００２０】
ここで、ＣＰＵ１１０の消費電力を少なくする方法として、クロックゲーティングやパワーゲーティングの他に、ＣＰＵ１１０の供給するクロック周波数を低くする方法が考えられる。
クロックゲーティングやパワーゲーティングでは、クロック信号または電源のオン／オフを切り替えるために、オン／オフ切り替えを実行するスイッチ回路に電流を流す必要が生じて電力を消費することが考えられる。したがって、スイッチ回路数が多い場合や、オン／オフの切り替えが頻発する場合は、クロックゲーティングやパワーゲーティングを行うよりも、ＣＰＵ１１０の供給するクロック周波数を低くするほうが、より消費電力を少なくし得る。
そこで、電子情報機器１では、消費電力をより少なくするために、クロックゲーティングやパワーゲーティングとクロック周波数の制御とを併用することにより、オン／オフの切り替え頻発を防止する。クロック周波数の制御は、後述するクロック設定部２５０が行う。すなわち、電子情報機器１は、ＣＰＵ負荷が軽い場合には、ＣＰＵのクロック周波数を低くすることによりＣＰＵの処理速度を落としてクロックゲーティングやパワーゲーティングの発生頻度を低減させる。一方で、ＣＰＵ１１０の低負荷状態が継続する場合には、電子情報機器１は、クロックゲーティングやパワーゲーティングを行って消費電力の低減を図る。
【００２１】
タスク管理部２３０は、タスクの起動および停止を検出する。例えば、タスク管理部２３０がタスク実行部２１０にタスクの起動および停止を指示し、タスク実行部２１０はタスク管理部２３０からの指示に従ってタスクを実行する。あるいは、タスク実行部２１０自身がタスクの起動および停止を決定してタスクを実行し、タスク起動および停止の際にタスク管理部２３０に通知するようにしてもよい。
タスク管理部２３０は、検出したタスクの起動および停止を示す情報を、動作率算出部２４０に出力する。
【００２２】
動作率算出部２４０は、ＣＰＵ１１０の動作率を、予め定められた一定期間について算出する。ここでいう、ＣＰＵ１１０の「動作率」は、ＣＰＵ１１０が動作状態にある時間的割合である。例えば、一定時間のうち半分の時間においてＣＰＵ１１０が動作状態にあった場合、動作率は５０％となる。
本実施形態の動作率算出部２４０は、タスク管理部２３０がタスクの起動または停止を検出してから予め定められた一定時間（以下では、「測定時間」と称する）が経過時間するまでの間について、タスク実行部２１０から出力される、動作状態と省電状態との切り替えを示す信号に基づいて、ＣＰＵ１１０が動作状態に設定されている時間（測定時間内における累積時間）を測定する。そして、動作率算出部２４０は、ＣＰＵ１１０が動作状態に設定されている時間を測定時間で除算して、動作率を算出する。
動作率算出部２４０は、算出した動作率を、クロック設定部２５０に出力する。
【００２３】
クロック設定部２５０は、動作率算出部２４０が算出する動作率に基づいて、動作状態にてＣＰＵ１１０に供給されるクロック信号の周波数を設定する。例えば、逓倍器１４０が、クロック周波数を４段階に変化させることができる場合、クロック設定部２５０は、動作率０〜１００％を４つの動作率帯に分割し、動作率の高い動作率帯ほど高いクロック周波数に設定する。
各動作率帯は、０〜２５％、２５〜５０％、・・・というように均等に分割されていてもよいし、例えば、逓倍器１４０が変換可能な周波数に応じて、あるいはＣＰＵパワーに余裕を持たせるために、不均等に分割されていてもよい。
なお、逓倍器１４０が出力可能なクロック周波数は、上述した４段階に限らない。例えば、高周波数、中間周波数、低周波数の３段階であってもよいし、５段階以上であってもよい。
【００２４】
クロック設定部２５０は、例えば、動作率とクロック周波数とが対応付けられたテーブルを予め記憶しており、当該テーブルを用いてクロック周波数を設定する。あるいは、クロック設定部２５０が、動作率をクロック周波数に変換する関数を予め記憶しておくなど、テーブルを用いる以外の方法でクロック周波数を設定するようにしてもよい。
【００２５】
なお、省電状態においては、クロック設定部２５０のクロック周波数設定にかかわらず、逓倍器１４０が、最も高い周波数のクロック信号をＣＰＵ１１０に供給するようにしてもよいし、あるいは、動作状態と同様に、クロック設定部２５０の設定に応じた周波数で、逓倍器１４０がクロック信号をＣＰＵ１１０に供給するようにしてもよい。逓倍器１４０が、最も高い周波数のクロック信号をＣＰＵ１１０に供給する場合、ＣＰＵ１１０は、一部の動作を停止している省電状態から、全ての部分が動作する動作状態に、速やかに復帰し得る。一方、逓倍器１４０が、クロック設定部２５０の設定に応じた周波数のクロック信号をＣＰＵ１１０に供給する場合、省電状態においても、さらにＣＰＵ１１０の消費電力を少なくすることができる。
【００２６】
図３は、測定時間の例を示す図である。
時刻Ｔ１１において、タスク実行部２１０が、あるタスク（タスクＡ）を起動すると、タスク管理部２３０は、タスクＡが起動されたことを検出し、タスクが起動されたことを示す信号を、動作率算出部２４０に出力する。当該信号を受けた動作率算出部２４０は、測定時間Ｐ１１のカウントを開始するようタイマ１５０に指示する。そして、動作率算出部２４０は、測定時間Ｐ１１の間、ＣＰＵ１１０が動作状態にある時間を累積する。そして、測定時間Ｐ１１が経過すると、動作率算出部２４０は、ＣＰＵ１１０が動作状態にある時間を測定時間で除算して動作率を算出する。
【００２７】
なお、ＣＰＵ１１０（の実行するＯＳ）が、一度に１つのタスクのみを実行可能なシングルタスク、かつ、ＣＰＵ１１０が常に何らかのタスクを実行する場合（この場合、例えば、実行すべきタスクが無いときはスリープタスクを実行する）、タスクの停止と次のタスクの起動とが同じタイミングで実行される。そこで、動作率算出部２４０は、タスクが起動された際、または、タスクが停止された際のいずれか一方において（例えば、タスクが起動された際のみ）動作率を算出し、クロック設定部２５０は、当該動作率に基づいて、ロック周波数を設定する。これにより、処理部２００は、タスクの実行状態変化に対応できる。
一方、ＣＰＵ１１０が、一度に複数のタスクを実行可能なマルチタスク、または、ＣＰＵ１１０がいずれのタスクも実行しない状態となり得る場合は、動作率算出部２４０は、タスクが起動された際と、タスクが停止された際とのいずれにおいても動作率を測定し、当該動作率に基づいて、クロック設定部２５０がクロック周波数を設定することにより、タスクの実行変化に対応する。
【００２８】
次に、図４および図５を参照して、動作率検出部２４０が、ＣＰＵ１１０の動作状態および省電状態を検出する方法の例について説明する。
図４は、タスク実行部２１０が、ＣＰＵ１１０の動作状態が動作状態から省電状態に切り替わることを示す信号を出力するタイミングの例を示す図である。
各タスクのソースプログラムには、処理を行っていない状態になる直前に、処理を行わなくなることを示す信号を出力するコマンドが埋め込まれている。このコマンドに基づき、タスク実行部２１０は、処理を行わない状態になる直前に、処理を行わない状態になることを示す信号を出力する。図４の例では、タスク実行部２１０は、タスクが処理を行わなくなる時刻Ｔ２２の直前の時刻Ｔ２１に、処理を行わない状態になることを示す信号を出力する。
動作率検出部２４０は、これらの信号に基づいて、ＣＰＵの状態を検出することができる。
【００２９】
ここで、シングルタスクの場合は、タスク実行部２１０は、動作状態から省電状態に変化することを示す信号として、処理を行わない状態になることを示す信号を出力し、その直後にＣＰＵ１１０を省電状態に変化させる。
一方、マルチタスクの場合は、タスク実行部２１０は、実行中の全てのタスクが処理を行わない状態となる場合に、動作状態から省電状態に変化することを示す信号として、処理を行わない状態になることを示す信号を出力し、その直後にＣＰＵ１１０を省電状態に変化させる。
【００３０】
図５は、タスク実行部２１０が、ＣＰＵ１１０の動作状態が省電状態から動作状態に切り替わることを示す信号を出力するタイミングの例を示す図である。
各タスクのソースプログラムには、処理を行う状態になった（処理を行っていない状態から復帰した）直後に、処理を行う状態になったことを示す信号を出力するコマンドが埋め込まれている。このコマンドに基づき、タスク実行部２１０は、タスクが処理を行う状態になった直後に、処理を行う状態になったことを示す信号を出力する。図５の例では、タスク実行部２１０は、処理を行う状態になった時刻Ｔ３１の直後の時刻Ｔ３２に、処理を行う状態になったことを示す信号を出力する。
【００３１】
ここで、シングルタスクの場合は、タスク実行部２１０は、ＣＰＵ１１０を省電状態に変化させた直後に、省電状態から動作状態に変化することを示す信号として、処理を行う状態になったことを示す信号を出力する。
一方、マルチタスクの場合は、タスク実行部２１０は、実行中のいずれかのタスクが処理を行う状態となる場合に、ＣＰＵ１１０を省電状態から動作状態に変化させ、その直後に、省電状態から動作状態に変化することを示す信号として、処理を行う状態になったことを示す信号を出力する。
【００３２】
次に、ＣＰＵ１１０のクロック周波数を決定する際の処理部２００の動作について説明する。
図６は、ＣＰＵ１１０のクロック周波数を決定する際の処理部２００の処理手順を示すフローチャートである。処理部２００は、タスク管理部２３０がタスクの起動を検出すると、同図の処理を開始する。なお、上述したように、マルチタスクの場合や、ＣＰＵ１１０がいずれのタスクも実行しない状態となり得る場合は、タスク管理部２３０がタスクの停止を検出した際も、同図の処理を開始する。
【００３３】
まず、動作率算出部２４０は、タイマ１５０に対して、測定時間のカウント開始を指示し、タイマ１５０はカウントを開始する（ステップＳ１０１）。
次に、動作率算出部２４０は、タスクの起動または停止を示す信号がタスク管理部２３０から出力されるか否かに基づいて、タスク実行状態が変化したか否かを判定する（ステップＳ１１１）。具体的には、タスクの起動または停止を示す信号がタスク管理部２３０から出力されると、タスク実行状態が変化したと判定する。一方、タスクの起動または停止を示す信号がタスク管理部２３０から出力されなければ、タスク実行状態が変化していないと判定する。
【００３４】
タスク実行状態が変化したと判定した場合（ステップＳ１１１：ＹＥＳ）、ステップＳ１０１に戻って同図の処理をやり直す。
一方、ステップＳ１０２で、タスク実行状態が変化していないと判定した場合（ステップＳ１１１：ＮＯ）、動作率算出部２４０は、タスク実行部２１０から出力される、動作状態と省電状態との切り替えを示す信号に基づいて、ＣＰＵ１１０が動作状態にあるか否かを測定する（ステップＳ１２１）。
【００３５】
そして、動作率算出部２４０は、タイマ１５０からの測定時間が満了した旨の通知の有無に基づいて、測定時間が満了したか否かを判定する（ステップＳ１２２）。測定時間が満了していないと判定した場合（ステップＳ１２２：ＮＯ）、ステップＳ１０２に戻ってＣＰＵ状態の測定を継続する。
一方、ステップＳ１２２で測定時間が満了したと判定した場合（ステップＳ１２２：ＹＥＳ）、動作率算出部２４０は、測定時間内において、ＣＰＵ１１０が動作状態にあった累積時間を求め、ＣＰＵ１１０が動作状態にあった累積時間を測定時間で除算して、動作率を算出する（ステップＳ１３１）。動作率算出部２４０は、算出した動作率をクロック設定部２５０に出力する。
動作率の出力を受けたクロック設定部２５０は、当該動作率に基づいてＣＰＵ１１０に供給されるクロック信号の周波数を設定し、設定された周波数のクロック信号を出力するように逓倍器１４０を制御する（ステップＳ１３２）。
【００３６】
以上のように、処理部２００は、タスクの起動または停止を契機として、ＣＰＵ１１０の状態に基づいて、ＣＰＵ１１０に供給されるクロック信号の周波数を制御するので、アプリケーションの実行状態に応じてクロック周波数を制御するよりも、より適切に制御を行うことが出来る。例えば、携帯電話において、アプリケーション実行時に着信処理が発生した場合のように、アプリケーション以外のタスクが発生した場合にも、適切にクロック周波数を制御できる。
【００３７】
また、動作率算出部２４０が、タスク実行部２１０から出力される、ＣＰＵ１１０の状態の切り替えを示す信号に基づいて動作率を算出するので、処理部２００は、タスク毎の動作率を示すテーブルを記憶しておく必要が無い。これにより、当該テーブルを記憶するためのメモリ容量を必要とせず、また、テーブルを検索する際の負荷や検索時間も生じない。また、新たなアプリケーションがインストールされ実行される場合など、新たなタスクの実行にも容易に対応できる。
【００３８】
また、動作率算出部２４０が、タスク実行部２１０から出力される、ＣＰＵ１１０の状態の切り替えを示す信号に基づいて動作率を算出するので、スリープタスクに限らず様々なタスクにおける動作率を算出できる。従って、スリープタスク以外のタスク実行中にもＣＰＵが低負荷となる場合も、適切にクロック周波数を設定できる。
以上のように、電子情報機器１は、より適切にクロック周波数を設定できる。
【００３９】
なお、電子情報機器１が主に実行するタスクの種類が少ない場合は、動作率算出部２４０が、実行中のタスクの種類と動作率とを対応付けたテーブル、あるいは、実行中のタスクの種類とクロック周波数とを対応付けたテーブルを予め記憶しておくようにしてもよい。
この場合、テーブルに示されているタスク以外のタスクの実行中は、例えば最も高いクロック周波数とすることにより、ＣＰＵパワー不足を回避することが考えられる。
また、当該テーブルは、例えば、上述したのと同様に、タスクのソースプログラム中に、ＣＰＵ１１０の状態の切り替えを示す信号を出力するコマンドを一時的に埋め込んでおき、動作率を実測することにより生成できる。
【００４０】
動作率算出部２４０が、上記のテーブルを予め記憶しておく場合、タスクのソースプログラム中に、ＣＰＵ１１０の状態の切り替えを示す信号を出力するコマンドを埋め込む必要が無くなるので、タスク実行に要する時間を短縮しうる。
また、テーブルに格納すべきタスクの数が少なければ、当該テーブルを記憶するためのメモリ容量の増加や、テーブルを検索する際の負荷や検索時間を軽微なものと出来る。
【００４１】
なお、動作率算出部２４０が動作率の算出処理を開始するタイミングは、上述したタスクの起動または停止時に限らない。例えば、処理部２００が割り込み信号を受け付けたときでもよい。
ここで、ＣＰＵへの割り込み信号には、タイマ１５０におけるタイマカウントが満了したことを示す信号や、入力装置１６０の受け付けたユーザの操作を示す信号など様々なものがある。例えば、アプリケーションを実行するタスクの開始を示す割込み信号や、着信時の処理を示す割込み信号など、ＣＰＵの処理負荷を変化させる割り込み信号を幾つか定義しておくことにより、タスクの起動または停止に基づいて動作率の算出処理を行う場合と同様に処理を行うことができる。
【００４２】
図７は、割り込み信号を契機としてＣＰＵ１１０のクロック周波数を決定する場合の、処理部２００の処理手順を示すフローチャートである。処理部２００は、割り込み信号を受け付けると、同図の処理を開始する。
ステップＳ２０１は、図６のステップＳ１０１と同様である。
【００４３】
ステップＳ２１１において、動作率算出部２４０は、新たな割り込みが発生したか（処理部２００が割り込み信号を受け付けたか）否かを判定する。新たな割り込みが発生したと判定した場合（ステップＳ２１１：ＹＥＳ）、ステップＳ２０１に戻る。一方、ステップ新たな割り込みが発生していないと判定した場合（ステップＳ２１１：ＮＯ）、ステップＳ２２１に進む。
ステップＳ２２１以降は、図６のステップＳ１２１以降と同様である。
【００４４】
以上のように、処理部２００は、割り込み信号を契機としてＣＰＵ１１０に供給されるクロック信号の周波数を制御するので、タスクの起動または停止を契機とする場合と同様、アプリケーションの実行状態に応じてクロック周波数を制御するよりも、より適切に制御を行うことが出来る。
【００４５】
なお、上述したように、電子情報機器１はコンピュータであってもよく、従って、電子情報機器１の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【００４６】
以上、本発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【符号の説明】
【００４７】
１  電子情報機器
１１０  ＣＰＵ
１２０  メモリ
１３０  クロックソース
１４０  逓倍器
１５０  タイマ
１６０  入力装置
１７０  表示装置
２００  処理部
２１０  タスク実行部
２２０  ＣＰＵ状態制御部
２３０  タスク管理部
２４０  動作率算出部
２５０  クロック設定部
【図１】
2012083879.tif 000003
【図２】
2012083879.tif 000004
【図３】
2012083879.tif 000005
【図４】
2012083879.tif 000006
【図５】
2012083879.tif 000007
【図６】
2012083879.tif 000008
【図７】
2012083879.tif 000009