(57)【特許請求の範囲】
【請求項１】
ＣＰＵのクロック周波数を切替える制御部を備える電子機器であって、
前記電子機器が有する複数の機能毎に、前記クロック周波数を第１のクロック周波数とした状態で当該機能を動作させたときの前記ＣＰＵのＣＰＵ使用率を対応付けて記憶した記憶部を備え、
前記制御部は、前記記憶部に記憶されている前記複数の機能毎の前記ＣＰＵ使用率のうち少なくとも一つ以上の機能毎の前記ＣＰＵ使用率の和を算出して予想使用率とし、当該予想使用率と前記第１のクロック周波数とに基づいて、第２のクロック周波数を決定し、前記クロック周波数を当該第２のクロック周波数へ切替え、
前記複数の機能はそれぞれ、第１の状態と、当該第１の状態よりも能力を抑制した第２の状態とを少なくとも含むいずれかの状態へ遷移可能であり、
前記制御部は、前記複数の機能がいずれも前記第１の状態でない場合に、前記第２の状態である機能毎の前記記憶されている前記ＣＰＵ使用率の和を算出して前記予想使用率とし、前記第２のクロック周波数を決定し、前記クロック周波数を前記決定した第２のクロック周波数へ切替えることを特徴とする電子機器。
【請求項２】
前記複数の機能はそれぞれ、自身の状態を前記制御部へ通知する状態通知を実行し、
前記制御部は、前記状態通知を受けたことを契機として、前記複数の機能がいずれも前記第１の状態でない状況であるか否か判定することを特徴とする請求項１に記載の電子機器。
【請求項３】
ＣＰＵのクロック周波数を切替える制御部を備える電子機器であって、
前記電子機器が有する複数の機能毎に、前記クロック周波数を第１のクロック周波数とした状態で当該機能を動作させたときの前記ＣＰＵのＣＰＵ使用率を対応付けて記憶した記憶部を備え、
前記制御部は、前記記憶部に記憶されている前記複数の機能毎の前記ＣＰＵ使用率のうち少なくとも一つ以上の機能毎の前記ＣＰＵ使用率の和を算出して予想使用率とし、当該予想使用率と前記第１のクロック周波数とに基づいて、第２のクロック周波数を決定し、前記クロック周波数を当該第２のクロック周波数へ切替え、
前記第１のクロック周波数は、前記制御部が前記クロック周波数として採用可能な値のうち最も高い値を除いたいずれかの値であることを特徴とする電子機器。
【請求項４】
ＣＰＵのクロック周波数を切替え可能な電子機器が実行するクロック周波数の調整方法であって、
前記電子機器が有する複数の機能毎に、前記クロック周波数を第１のクロック周波数とした状態で当該機能を動作させたときの前記ＣＰＵのＣＰＵ使用率を対応付けて記憶した記憶部から、少なくとも一つ以上の機能毎の前記ＣＰＵ使用率を読み出し、当該読み出した使用率の和を算出して予想使用率とし、当該予想使用率と前記第１のクロック周波数とに基づいて、第２のクロック周波数を決定し、前記クロック周波数を当該第２のクロック周波数へ切替え、
前記複数の機能はそれぞれ、第１の状態と、当該第１の状態よりも能力を抑制した第２の状態とを少なくとも含むいずれかの状態へ遷移可能であり、
前記切替えは、前記複数の機能がいずれも前記第１の状態でない場合に、前記第２の状態である機能毎の前記記憶されている前記ＣＰＵ使用率の和を算出して前記予想使用率とし、前記第２のクロック周波数を決定し、前記クロック周波数を前記決定した第２のクロック周波数へ切替えることを特徴とする調整方法。
【請求項５】
ＣＰＵのクロック周波数を切替え可能な電子機器が実行するクロック周波数の調整方法であって、
前記電子機器が有する複数の機能毎に、前記クロック周波数を第１のクロック周波数とした状態で当該機能を動作させたときの前記ＣＰＵのＣＰＵ使用率を対応付けて記憶した記憶部から、少なくとも一つ以上の機能毎の前記ＣＰＵ使用率を読み出し、当該読み出した使用率の和を算出して予想使用率とし、当該予想使用率と前記第１のクロック周波数とに基づいて、第２のクロック周波数を決定し、前記クロック周波数を当該第２のクロック周波数へ切替え、
前記第１のクロック周波数は、制御部が前記クロック周波数として採用可能な値のうち最も高い値を除いたいずれかの値であることを特徴とする調整方法。
【請求項６】
それぞれ、第１の状態と、当該第１の状態よりも能力を抑制した第２の状態と、を少なくとも含むいずれかの状態へ遷移可能な第１機能と第２機能とを有する電子機器であって、
クロック周波数を切替え可能なＣＰＵと、
前記第１機能のＣＰＵ使用率である第１使用率と前記第２機能のＣＰＵ使用率である第２使用率とを記憶した記憶部を備え、
前記第１使用率と前記第２使用率とに基づいて第２のクロック周波数を決定し、前記第１機能と前記第２機能とのいずれもが前記第２の状態である場合に、前記クロック周波数を前記第２のクロック周波数へ切替える電子機器。
【請求項７】
ＣＰＵのクロック周波数を切替え可能であり、それぞれ、第１の状態と、当該第１の状態よりも能力を抑制した第２の状態と、を少なくとも含むいずれかの状態へ遷移可能な第１機能と第２機能とを有する電子機器が実行するクロック周波数の調整方法であって、
前記第１機能のＣＰＵ使用率である第１使用率と前記第２機能のＣＰＵ使用率である第２使用率とを記憶した記憶部から読み出した前記第１使用率と前記第２使用率とに基づいて第２のクロック周波数を決定し、前記第１機能と前記第２機能とのいずれもが前記第２の状態である場合に、前記クロック周波数を前記第２のクロック周波数へ切替えることを特徴とする調整方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器およびクロック周波数の調整方法に関する。
【背景技術】
【０００２】
未使用である期間がある程度続いた場合に、有する機能の一部を制限や停止させることで消費電力を低減させる電子機器が知られている。このような電子機器では、基本的に有する機能の全てを制限なしに稼働させている状態を通常状態等と称し、通常状態に対して消費電力を少なくした状態を省電力状態（あるいは、節電状態、スリープ状態）等と称する。また、電子機器において性能を下げて消費電力を低減させるための手法の一つとして、ＣＰＵのクロック周波数を低下させることが知られている。
【０００３】
なお、複数のアプリケーションを実行できる情報処理装置であって、各アプリケーションから読み取られた実行上必要なクロック周波数をアプリケーション毎に登録する記憶部と、記憶部に登録された各クロック周波数に基づいて、アプリケーション毎に、各アプリケーションを実行する情報処理装置が採りえる最大のクロック周波数に対する情報処理装置のＣＰＵ使用率を演算し、演算されたアプリケーション毎の各ＣＰＵ使用率の総和と前記最大のクロック周波数との乗算に基づいて、情報処理装置のシステムクロック周波数を決定し、該システムクロック周波数を設定する制御部を含む構成が知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９‐２８２９９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
電子機器においては、ＣＰＵのクロック周波数を切替えるに際し、各機能の稼働状況に応じたＣＰＵ使用率を得るために、ソフトウェアにより動的にそれら機能毎のＣＰＵ使用率を算出する処理を実行する場合がある（例えば前記文献１）。しかし、このような処理自体、ＣＰＵやメモリーといったリソースを多く必要とするため、比較的低価格なハードウェアを実装する商品では当該処理による負担を無視できない。また、ＣＰＵのクロック周波数をある程度低下させた状態においては、このような処理は更に大きな負担となる。
【０００６】
本発明は上述の課題に鑑みてなされたものであり、できるだけ少ない負担でクロック周波数の適切な切替えを実現する電子機器およびクロック周波数の調整方法を提供する。
【課題を解決するための手段】
【０００７】
本発明の態様の１つは、ＣＰＵのクロック周波数を切替える制御部を備える電子機器であって、前記電子機器が有する複数の機能毎に、前記クロック周波数を第１のクロック周波数とした状態で当該機能を動作させたときの前記ＣＰＵのＣＰＵ使用率を対応付けて記憶した記憶部を備え、前記制御部は、前記記憶部に記憶されている前記複数の機能毎の前記ＣＰＵ使用率のうち少なくとも一つ以上の機能毎の前記ＣＰＵ使用率の和を算出して予想使用率とし、当該予想使用率と前記第１のクロック周波数とに基づいて、第２のクロック周波数を決定し、前記クロック周波数を当該第２のクロック周波数へ切替える。
【０００８】
当該構成によれば、電子機器は、複数の機能毎にクロック周波数を第１のクロック周波数とした状態で動作させたときのＣＰＵ使用率を対応付けて記憶した記憶部を備えている。これにより、制御部は、第２のクロック周波数の決定が常に容易であり、クロック周波数を第２のクロック周波数へ切替える処理を少ない負担で実行することができる。
【０００９】
本発明の態様の１つは、前記制御部は、前記予想使用率をＡ（％）、前記第１のクロック周波数をｆ１、としたとき、Ａ（％）×ｆ１／ｆｘ≦１００（％）、を満たすクロック周波数ｆｘのうち最も低い値を、前記第２のクロック周波数として決定するとしてもよい。
当該構成によれば、省電力効果を奏する適切なクロック周波数（第２のクロック周波数）を容易に決定することができる。
【００１０】
本発明の態様の１つは、前記制御部は、前記クロック周波数として採用可能な値として定められた複数のクロック周波数の中から前記第２のクロック周波数を決定するとしてもよい。
当該構成によれば、制御部がクロック周波数として採り得る予め定められた複数のクロック周波数の中から、省電力効果を奏する適切なクロック周波数（第２のクロック周波数）を容易に決定することができる。
【００１１】
本発明の態様の１つは、前記複数の機能はそれぞれ、第１の動作状態と、当該第１の動作状態よりも能力を抑制した第２の動作状態とを少なくとも含むいずれかの状態へ遷移可能であり、前記制御部は、前記複数の機能がいずれも前記第１の動作状態でない場合に、前記第２の状態である機能毎の前記記憶されている前記ＣＰＵ使用率の和を算出して前記予想使用率とし、前記第２のクロック周波数を決定し、前記クロック周波数を前記決定した第２のクロック周波数へ切替えるとしてもよい。
当該構成によれば、電子機器の各機能が第１の動作状態でない場合、つまり電子機器が省電力状態へ遷移できる状況が整った際に、第２のクロック周波数を容易に決定し、クロック周波数を第２のクロック周波数へ切替えることができる。
【００１２】
本発明の態様の１つは、前記複数の機能はそれぞれ、自身の状態を前記制御部へ通知する状態通知を実行し、前記制御部は、前記状態通知を受けたことを契機として、前記複数の機能がいずれも前記第１の動作状態でない状況であるか否か判定するとしてもよい。
当該構成によれば、制御部は、いずれかの機能から状態通知を受けたことを契機として、第２のクロック周波数を決定すべき場面であるか否かを判定することができる。
【００１３】
本発明の態様の１つは、前記第１のクロック周波数は、前記制御部が前記クロック周波数として採用可能な値のうち最も高い値を除いたいずれかの値であるとしてもよい。
当該構成によれば、各機能単位で能力を抑制した動作状態でのＣＰＵ使用率を的確に把握することができる。
【００１４】
本発明の技術的思想は、電子機器という物以外によっても把握され、例えば、ＣＰＵのクロック周波数を切替え可能な電子機器が実行するクロック周波数の調整方法という発明としても説明できる。当該方法では、前記電子機器が有する複数の機能毎に、前記クロック周波数を第１のクロック周波数とした状態で当該機能を動作させたときの前記ＣＰＵのＣＰＵ使用率を対応付けて記憶した記憶部から、少なくとも一つ以上の機能毎の前記ＣＰＵ使用率を読み出し、当該読み出した使用率の和を算出して予想使用率とし、当該予想使用率と前記第１のクロック周波数とに基づいて、第２のクロック周波数を決定し、前記クロック周波数を当該第２のクロック周波数へ切替える。
また、このような方法を電子機器（電子機器が有するコンピューター）に実行させるプログラムや、当該プログラムを記憶したコンピューター読取可能な記憶媒体等を発明として捉えることができる。
【図面の簡単な説明】
【００１５】
【図１】電子機器の構成を簡易的に例示する図。
【図２】通常状態である場合に実行するクロック周波数の調整処理を示すフローチャート。
【図３】省電力状態である場合に実行するクロック周波数の調整処理を示すフローチャート。
【発明を実施するための形態】
【００１６】
以下では、各図面を参照しながら本発明の実施形態を説明する。
本発明において、電子機器とは、ＣＰＵのクロック周波数の切替えを実行可能な装置全般を指す。電子機器の例としては、プリンターや、スキャナーや、ファクシミリや、コピー機や、これら複数の製品の機能を兼ね備えたデジタル複合機等、様々な製品が該当する。むろん、電子機器は、このような例に限定されない。
【００１７】
図１は、電子機器１０の構成を簡易的に示している。図１では、電子機器１０を、制御部２０、記憶部３０、および複数の機能４０，４１，４２，４３…含む製品として示している。これら機能の数は特に限定されない。制御部２０は、ＣＰＵ２１やその他メモリー等を有するＩＣを含んで実現される。制御部２０では、ＣＰＵ２１が、当該メモリーに記憶されたプログラムに従った処理を実行することにより、電子機器１０の各機能の挙動を制御する。
【００１８】
制御部２０は、クロック制御回路２２を有する。クロック制御回路２２は、システムクロックを発生し、ＣＰＵ２１にシステムクロックを供給する。制御部２０の指示により、クロック制御回路２２は、発生させるシステムクロックのクロック周波数（ＣＰＵ２１のクロック周波数）を切替えることができる。
【００１９】
電子機器１０が有する複数の機能４０，４１，４２，４３…には、様々なものが該当し得る。例えば、これら機能の１つには、外部に情報表示するための液晶ディスプレイ、発光により電子機器１０の状態を外部に通知するためのＬＥＤ、前記液晶ディスプレイを含む操作パネル、等が該当する。また、これら機能の１つには、プリンターとして稼働する機構（プリンター部）、スキャナーとして稼働する機構（スキャナー部）、ファクシミリとして稼働する機構（ファクシミリ部）、等が該当する。
【００２０】
また、これら機能の１つには、制御部２０や、電子機器１０内の他のハードウェアが所定のＯＳの下で実行可能な様々なアプリケーションも含まれる。例えば、電子機器１０が、ネットワーク通信用のアプリケーションに従って所定のプロトコルにより外部との通信を実行可能である場合、このような各アプリケーションも、電子機器１０が有する機能の１つである。ここでいうプロトコルは、ＷＳＤ（Web Services for Devices）、ＩＰｓｅｃ（Security Architecture for Internet Protocol）、ＳＮＭＰ（Simple Network Management Protocol）、ＨＴＴＰ（HyperText Transfer Protocol）等様々である。
また、電子機器１０は、いわゆるＷｉ‐Ｆｉ機能やＷｉ‐Ｆｉ  Ｄｉｒｅｃｔ機能を有し、これら機能により外部と無線通信を実行可能であってもよい。Ｗｉ‐Ｆｉ機能やＷｉ‐Ｆｉ  Ｄｉｒｅｃｔ機能は、Ｗｉ‐Ｆｉ  Ａｌｌｉａｎｃｅによって認証された無線ＬＡＮの規格の一種である。以下では、機能４０，４１，４２，４３…の各々が具体的に何であるかを限定せずに、説明を続ける。
【００２１】
記憶部３０は、状態管理データベース（ＤＢ）３１と、ＣＰＵ使用率ＤＢ３２とを含んでいる。記憶部３０の少なくとも一部は、制御部２０に含まれていてもよい。
状態管理ＤＢ３１は、機能４０，４１，４２，４３…毎の現在の状態を記憶する。状態管理ＤＢ３１の記憶内容は、電子機器１０の使用状況に応じて随時更新される。機能４０，４１，４２，４３…毎の状態は、稼働状態、待機状態、無効状態、のいずれかに分かれる。ここでいう稼働状態は、特許請求の範囲における“第１の動作状態”に該当し、待機状態は、特許請求の範囲における、第１の動作状態よりも能力を抑制した“第２の動作状態”の一例に該当する。ある機能が稼働状態とは、当該機能の能力が制限されていない状態を言い、当該機能が待機状態とは、稼働状態と比較して能力が制限されて消費電力が少ない状態を言う。
【００２２】
機能は、待機状態では、当該機能による一切の処理が不能となる状態に陥らない程度の低電力で動作している。例えば、待機状態である機能は、外部からの通信の有無やユーザーの操作の有無を監視する程度には動作している。従って、待機状態の機能は、外部からの通信やユーザーの操作を検知した場合には、自身は稼働状態へ遷移すべきと判定できる。
【００２３】
一方、機能の無効状態とは、ユーザーによる設定で当該機能が無効にされた状況を意味する。ユーザーは、例えば、不図示の操作パネルを通じて、機能４０，４１，４２，４３…毎に有効／無効の設定を任意に行うことができる。制御部２０は、無効に設定された機能については、無効状態である旨を状態管理ＤＢ３１に書き込む。制御部２０は、無効状態とした機能については、その後ユーザーの操作により有効に設定し直されない限り、無効状態を維持する。制御部２０は、無効状態とした機能については、電力供給を断つ等して当該機能を完全に停止させる。言い換えると、無効状態ではない（有効状態である）機能が、稼働状態と待機状態とのいずれかとなる。
【００２４】
ＣＰＵ使用率ＤＢ３２は、機能４０，４１，４２，４３…毎に、ＣＰＵ２１のクロック周波数を第１のクロック周波数とした状態で機能を動作させたときのＣＰＵ２１の使用率（ＣＰＵ使用率）を対応付けて記憶している。ＣＰＵ使用率は、ＣＰＵ利用率とも称される。ＣＰＵ使用率ＤＢ３２の記憶内容は、基本的に変更されない。例えば、電子機器１０は、市場に出荷される前の工程でメーカーによりＣＰＵ使用率ＤＢ３２に機能４０，４１，４２，４３…毎のＣＰＵ使用率が書き込まれ、その後、出荷される。具体的には、当該工程では、ＣＰＵ２１のクロック周波数を第１のクロック周波数とした状態で、機能４０，４１，４２，４３…毎に、１つの機能を待機状態で動作させたときのＣＰＵ使用率を測定し、その測定結果を機能個々に紐づけてＣＰＵ使用率ＤＢ３２に書き込んでいる。
【００２５】
図２は、制御部２０がプログラムに従って実行するクロック周波数の調整処理（調整方法）をフローチャートにより示している。なお、当該フローチャートを開始する時点では、電子機器１０は通常状態である。図２で説明する制御部２０が実行する処理を、省電力管理タスク等とも称する。
【００２６】
ステップ１００では、制御部２０は、電子機器１０内の１つ以上の機能から状態通知を受けたか否か判定し、状態通知を受けた場合にステップＳ１１０へ進む。言い換えると、無効状態ではない機能は夫々、自身の状態を制御部２０へ通知する。各機能４０，４１，４２，４３…は、稼働状態において、例えば自身による所定の処理を実行しない状態が一定時間以上継続した場合に自身は待機状態へ移行し、自身の状態は待機状態である旨を通知する（状態通知を行う）。また、各機能４０，４１，４２，４３…は、待機状態において、例えば外部からの通信やユーザーの操作を検知した場合に自身は稼働状態へ移行し、自身の状態は稼働状態である旨を通知する（状態通知を行う）。
【００２７】
ステップＳ１１０では、制御部２０は、状態管理ＤＢ３１を、ステップＳ１００で受け付けた状態通知により更新する。制御部２０は、例えば、機能４０から状態通知を受けた場合、状態管理ＤＢ３１が記憶している機能４０の状態を、当該状態通知の内容により更新する。同様に、例えば、機能４１から状態通知を受けた場合、状態管理ＤＢ３１が記憶している機能４１の状態を、当該状態通知の内容により更新する。
【００２８】
次に、ステップＳ１２０では、制御部２０は、更新後の状態管理ＤＢ３１を参照し、全ての機能が稼働状態ではない（待機状態または無効状態のいずれかである）か否かを確認する。制御部２０は、全ての機能が待機状態または無効状態のいずれかであれば、電子機器１０を現在の通常状態から省電力状態へ移行させるべきと判定し（ステップＳ１３０において“Ｙｅｓ”）、ステップＳ１４０へ進む。一方、更新後の状態管理ＤＢ３１を参照した結果、稼働状態である機能が１つ以上存在する場合には、制御部２０は、電子機器１０の現在の状態（通常状態）を維持すべきと判定し（ステップＳ１３０において“Ｎｏ”）、当該フローチャートを終了する。ステップＳ１３０において“Ｎｏ”の判定をして当該フローチャートを終えた制御部２０は、再び当該フローチャートを開始する。
【００２９】
ステップＳ１４０では、制御部２０は、ＣＰＵ使用率ＤＢ３２を参照して、機能４０，４１，４２，４３…毎に記憶されているＣＰＵ使用率のうち少なくとも一つ以上の機能毎のＣＰＵ使用率の和を算出して予想使用率とする。具体的には、制御部２０は、状態が待機状態である機能のＣＰＵ使用率をＣＰＵ使用率ＤＢ３２から読み出し、当該読み出したＣＰＵ使用率の総和を算出して予想使用率とする。例えば、機能４０，４１，４２，４３…のうち、機能４０，４１，４２が待機状態であり、それ以外の機能が無効状態であれば、ＣＰＵ使用率ＤＢ３２に記憶されている機能４０，４１，４２毎のＣＰＵ使用率を足し合わせた結果を、予想使用率とする。
【００３０】
ステップＳ１５０では、制御部２０は、ステップＳ１４０で算出した予想使用率と、第１のクロック周波数と、に基づいて第２のクロック周波数を決定する。具体的には、制御部２０は、下記式（１）を満足するクロック周波数ｆｘのうち最も低い値を、第２のクロック周波数として決定する。
Ａ（％）×ｆ１／ｆｘ≦１００（％）  …（１）
【００３１】
ただし、Ａ（％）は、ステップＳ１４０で算出した予想使用率であり、ｆ１は、第１のクロック周波数である。
次に、ステップＳ１６０では、制御部２０は、現在の状態すなわち通常状態で採用する通常クロック周波数から、ステップＳ１５０で決定した第２のクロック周波数への切替えを行う。つまり、制御部２０はクロック制御回路２２に指示し、ＣＰＵ２１のクロック周波数を、現在の通常クロック周波数から第２のクロック周波数へ切替えさせる。以上により、当該フローチャートを終了する。
【００３２】
ここで、通常クロック周波数とは、制御部２０がＣＰＵ２１のクロック周波数として採用可能な値として定められた（クロック制御回路２２が採用可能な）複数のクロック周波数のうち最も高い値であり、例えば、７６８ＭＨｚである。また、制御部２０がＣＰＵ２１のクロック周波数として採用可能な複数のクロック周波数には、７６８ＭＨｚの他に、例えば、６４ＭＨｚや１６ＭＨｚ等といった値が含まれる。本実施形態では、第１のクロック周波数は、このような制御部２０がクロック周波数として採用可能な値のうち最も高い値（通常クロック周波数）を除いたいずれかの値であるとし、一例として、第１のクロック周波数は６４ＭＨｚとしている。
【００３３】
制御部２０がＣＰＵ２１のクロック周波数として採用可能な値に制限は無いという思想に立てば、前記式（１）を満たすクロック周波数ｆｘのうち最も低い値そのものを、第２のクロック周波数とすればよい。
一方で、制御部２０がＣＰＵ２１のクロック周波数として採用可能な値には制限があると考えた方が現実的であり、例えば上述した７６８ＭＨｚ、６４ＭＨｚ、１６ＭＨｚ…といった幾つかの予め決められたクロック周波数のいずれかを選択的に採用する。従って、制御部２０は、ステップＳ１５０では、ＣＰＵ２１のクロック周波数として採用可能な値として定められた複数のクロック周波数（例えば、７６８ＭＨｚ、６４ＭＨｚ、１６ＭＨｚ…）のうち、クロック周波数ｆｘとしたときに前記式（１）を満たしかつ最小のものを、第２のクロック周波数に決定する。
【００３４】
従って、制御部２０は、仮にステップＳ１５０で決定した第２のクロック周波数が通常クロック周波数と同じであれば、ステップＳ１６０を実質的に実行することなく当該フローチャートを終える。この場合、ＣＰＵ２１のクロック周波数は通常クロック周波数のままなので、電子機器１０の状態は通常状態のままである。つまり制御部２０は、ステップＳ１５０で決定した第２のクロック周波数が通常クロック周波数よりも低い場合に、ステップＳ１６０を実行する。ステップＳ１６０では、ＣＰＵ２１のクロック周波数を現在よりも低い周波数へ切替えることになる。これにより、通常状態から省電力状態への移行（省電力効果の発生）が実質的に担保される。
【００３５】
このように本実施形態によれば、ＣＰＵ２１のクロック周波数を切替える制御部２０を備える電子機器１０では、複数の機能４０，４１，４２，４３…毎に、クロック周波数を第１のクロック周波数とした状態で１つの機能を動作させたときのＣＰＵ使用率を対応付けて記憶した記憶部３０を備える。制御部２０は、記憶部３０に記憶されている複数の機能４０，４１，４２，４３…毎のＣＰＵ使用率のうち少なくとも一つ以上の機能毎のＣＰＵ使用率の和を算出して予想使用率とし、予想使用率と第１のクロック周波数とに基づいて第２のクロック周波数を決定し、ＣＰＵ２１のクロック周波数を第２のクロック周波数へ切替える。つまり制御部２０は、最適なクロック周波数を算出するに際して機能毎のＣＰＵ使用率をその都度演算する負担から解放され、予想使用率の算出および第２のクロック周波数の算出が常に容易となる。これにより、比較的低価格なハードウェアを実装する商品（電子機器１０）においても、少ない負担でクロック周波数の切替えを適切に行うことができる。
【００３６】
また本実施形態によれば、制御部２０は、前記式（１）を満たすクロック周波数ｆｘのうち最も低い値を、第２のクロック周波数として決定する。これにより、ＣＰＵ使用率が１００％を越えないことを条件として、省電力効果をより奏する適切な第２のクロック周波数を容易に決定することができる。なお、本発明において第２のクロック周波数を決定するために用いる式は、前記式（１）に限定されない。第２のクロック周波数を決定するに際しては、例えば、前記式（１）の左辺や右辺に何等かの係数を乗算した式を採用したり、不等号として「≦」ではなく「＜」を採用したりしてもよい。
【００３７】
また本実施形態によれば、制御部２０は、ＣＰＵ２１のクロック周波数として採用可能な値として定められた複数のクロック周波数の中から第２のクロック周波数を決定する。これにより、実製品への本発明の実装が容易なものとなる。
【００３８】
また本実施形態によれば、複数の機能４０，４１，４２，４３…はそれぞれ、第１の動作状態（稼働状態）と、第１の動作状態よりも能力を抑制した第２の動作状態（待機状態）とを少なくとも含むいずれかの状態へ遷移可能である。そして制御部２０は、複数の機能４０，４１，４２，４３…がいずれも第１の動作状態でない場合（ステップＳ１３０において“Ｙｅｓ”）、第２の状態である機能毎の、記憶部３０（ＣＰＵ使用率ＤＢ３２）に記憶されているＣＰＵ使用率の和を算出して予想使用率とし（ステップＳ１４０）、第２のクロック周波数を決定し（ステップＳ１５０）、クロック周波数を決定した第２のクロック周波数へ切替える（ステップＳ１６０）。つまり、電子機器１０の各機能が第１の動作状態でなく、電子機器１０が通常状態から省電力状態へ遷移できる状況が整った際に、現在のクロック周波数（通常クロック周波数）よりも低い第２のクロック周波数を容易に決定し、第２のクロック周波数への切替えを実行することができる。
【００３９】
また本実施形態によれば、複数の機能４０，４１，４２，４３…はそれぞれ、自身の状態を制御部２０へ通知する状態通知を実行し、制御部２０は、状態通知を受けたことを契機として（ステップＳ１００において“Ｙｅｓ”）、複数の機能４０，４１，４２，４３…がいずれも第１の動作状態でない状況であるか否か判定する（ステップＳ１１０〜Ｓ１３０）。これによれば、結果的に、電子機器１０が通常状態から省電力状態へ遷移できる状況が整ったタイミングを逃すことなくクロック周波数の切替えを実行することができる。
【００４０】
また本実施形態によれば、ＣＰＵ使用率ＤＢ３２に予め記憶される機能毎のＣＰＵ使用率の測定条件の１つである第１のクロック周波数は、制御部２０がクロック周波数として採用可能な値のうち最も高い値（通常クロック周波数）を除いたいずれかの値である。このような構成によれば、実際の電子機器１０の省電力状態に近い環境における、機能４０，４１，４２，４３…単位の待機状態でのＣＰＵ使用率を、的確に把握することができる。
【００４１】
図３は、制御部２０がプログラムに従って実行するクロック周波数の調整処理であって、電子機器１０が省電力状態である場合に実行する処理をフローチャートにより示している。ステップＳ２００〜Ｓ２２０は、ステップＳ１００〜Ｓ１２０（図２）と同じ処理である。制御部２０は、ステップＳ２２０で更新後の状態管理ＤＢ３１を参照し、全ての機能が待機状態または無効状態のいずれかであれば、現在の省電力状態を維持すべきと判定し（ステップＳ２３０において“Ｎｏ”）、当該フローチャートを終了する。ステップＳ２３０において“Ｎｏ”の判定をして当該フローチャートを終えた制御部２０は、再び当該フローチャートを開始する。一方、更新後の状態管理ＤＢ３１を参照した結果、稼働状態である機能が１つ以上存在する場合には、制御部２０は、電子機器１０を現在の省電力状態から通常状態へ移行させるべきと判定し（ステップＳ２３０において“Ｙｅｓ”）、ステップＳ２４０へ進む。
ステップＳ２４０では、制御部２０は、ＣＰＵ２１のクロック周波数について、現在の状態すなわち省電力状態で採用する第２のクロック周波数から、通常クロック周波数への切替えを行う。
【００４２】
さらに本実施形態は、ＣＰＵ２１のクロック周波数を通常クロック周波数よりも低い周波数（例えば、６４ＭＨｚ）に設定している状況で、さらに低い周波数（第２のクロック周波数）へ切替える場面（電子機器１０を、第１の省電力状態から、さらに省電力効果が高い第２の省電力状態へ移行させる場面）にも適用できる。この場合、制御部２０の処理能力は、ＣＰＵ２１のクロック周波数を通常クロック周波数（例えば、７６８ＭＨｚ）としているときよりも低下している。しかし本実施形態では、制御部２０は、機能毎のＣＰＵ使用率をその都度演算する負担から解放されているため、上述のように容易に切替え先となる第２のクロック周波数を決定することができる。
【符号の説明】
【００４３】
１０…電子機器、２０…制御部、２１…ＣＰＵ、２２…クロック制御回路、３０…記憶部、３１…状態管理ＤＢ、３２…ＣＰＵ使用率ＤＢ、４０，４１，４２，４３…機能
【図１】
0006589539.tif 000002
【図２】
0006589539.tif 000003
【図３】
0006589539.tif 000004