(57)【要約】ＣＰＵ（３００）で動作している機能に応じた周波数のうち、最も高い周波数のクロックを供給するクロック供給部（２３０）からＣＰＵ（３００）へ供給するクロックの周波数が、現在供給している周波数よりも低くなる機能への切り替えが発生した場合、その機能に応じた周波数への切り替えが完了してから、切り替え後の周波数に応じた電圧でＣＰＵ（３００）へ電源を電源供給装置（５００）が供給し、現在供給している周波数よりも高くなる機能への切り替えが発生した場合、その機能に応じた電圧への変更が完了してから、その機能に応じた周波数のクロックをクロック供給部（２３０）が供給する。
2012098741.tif 000002
【特許請求の範囲】
【請求項１】
複数の電圧の電源を供給可能な電源供給装置と、該電源供給装置およびＣＰＵと接続された制御装置とから構成された制御システムにおいて、
前記制御装置は、
前記ＣＰＵが具備する複数の機能それぞれに必要な電圧およびクロックの周波数を記憶する記憶部と、
前記記憶部に記憶されている、前記複数の機能のうちの動作している機能に応じた電圧の中で、最も高い電圧で前記電源を供給するように前記電源供給装置へ指示する電源制御部と、
前記記憶部に記憶されている、前記複数の機能のうちの動作している機能に応じた周波数の中で、最も高い周波数のクロックを前記ＣＰＵへ供給するクロック供給部とを有し、
前記電源供給装置は、
前記電源制御部から指示された電圧で前記電源を前記ＣＰＵへ供給する電源供給部と、
前記電源供給部から供給する電源の電圧が変更された場合、該変更が完了した際、前記制御装置へその旨を通知する割り込み通知部とを有し、
前記電源制御部は、前記クロック供給部が供給するクロックの周波数が、前記クロック供給部が現在供給している周波数よりも低くなる機能への切り替えが発生した場合、該機能に応じた周波数への切り替えが完了してから、該切り替え後の周波数に応じた電圧で前記電源を供給するように指示し、
前記クロック供給部は、供給するクロックの周波数が、現在供給している周波数よりも高くなる機能への切り替えが発生した場合、前記割り込み通知部からの前記通知を受けてから、該機能に応じた周波数のクロックを供給することを特徴とする制御システム。
【請求項２】
請求項１に記載の制御システムにおいて、
前記複数の機能のうち、動作していない機能が起動した際、または動作している機能が停止した際、機能の切り替えが発生したと判定し、前記機能の切り替えが発生したと判定した際、前記クロック供給部が供給するクロックの周波数と、前記クロック供給部が現在供給している周波数とを比較する判定部を有し、
前記電源制御部は、前記判定部における比較に結果に基づいて、前記指示を行い、
前記クロック供給部は、前記判定部における比較に結果に基づいて、前記クロックを供給することを特徴とする制御システム。
【請求項３】
請求項２に記載の制御システムにおいて、
前記記憶部は、前記複数の機能それぞれが動作しているかどうかを示すフラグを記憶し、前記判定部が機能の切り替えが発生したと判定した際、該切り替えに基づいて前記フラグを書き換えることを特徴とする制御システム。
【請求項４】
請求項１に記載の制御システムにおいて、
前記記憶部は、当該制御装置と接続された複数の装置それぞれに必要な電圧およびクロックの周波数を記憶し、
前記電源制御部は、前記記憶部に記憶されている、前記複数の装置のうちの動作している装置に応じた電圧の中で、最も高い電圧で前記電源を供給するように前記電源供給装置へ指示し、
前記クロック供給部は、前記記憶部に記憶されている、前記複数の装置のうちの動作している装置に応じた周波数の中で、最も高い周波数のクロックを該装置へ供給し、
前記電源供給部は、前記電源制御部から指示された電圧で前記電源を該装置へ供給することを特徴とする制御システム。
【請求項５】
制御装置であって、
当該制御装置と接続されたＣＰＵが具備する複数の機能それぞれに必要な電圧およびクロックの周波数を記憶する記憶部と、
前記記憶部に記憶されている、前記複数の機能のうちの動作している機能に応じた電圧の中で、最も高い電圧で電源を供給するように、前記ＣＰＵへ電源を供給する電源供給装置へ指示する電源制御部と、
前記記憶部に記憶されている、前記複数の機能のうちの動作している機能に応じた周波数の中で、最も高い周波数のクロックを前記ＣＰＵへ供給するクロック供給部とを有し、
前記電源制御部は、前記クロック供給部が供給するクロックの周波数が、前記クロック供給部が現在供給している周波数よりも低くなる機能への切り替えが発生した場合、該機能に応じた周波数への切り替えが完了してから、該切り替え後の周波数に応じた電圧で前記電源を供給するように指示し、
前記クロック供給部は、供給するクロックの周波数が、現在供給している周波数よりも高くなる機能への切り替えが発生した場合、前記電源供給装置から供給される電圧の変更が完了してから、該機能に応じた周波数のクロックを供給する制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、供給する電源電圧およびクロック周波数を制御する制御システムおよび制御装置に関する。
【背景技術】
【０００２】
近年、携帯端末等のモバイル機器では、低消費電力化が求められており、搭載されるシステムＬＳＩにおいても、低消費電力化のための機能が実装されている。その機能のうち、「ＤＶＦＳ」（Ｄｙｎａｍｉｃ  Ｖｏｌｔａｇｅ  ａｎｄ  Ｆｒｅｑｕｅｎｃｙ  Ｓｃａｌｉｎｇ）という電圧と周波数とを動的に変化させることで、低消費電力を実現させる機能が搭載されたモバイル機器も存在する。【０００３】
この機能により、システムの中で、必要な周波数と、それに見合った電圧とを適宜設定することで省電力を実現するのだが、例えば、モバイル機器で使用されているＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）にてＩＥＭという機能を使って実現しているものもある（例えば、非特許文献１参照。）。【０００４】
しかし、ＩＥＭを組み込む場合、ソフトウェア上の問題やポリシ設定といったモバイル機器ごとのチューニングが必要であった。【０００５】
そこで、ＩＥＭといった機能を使わず、特定のアプリケーションが起動したときの電圧と周波数とをあらかじめ定義することで、ソフトウェアの判断により定義した電圧と周波数にソフトウェアにて設定するという手法が用いられている。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】「ＩＥＭテクノロジー  ＡＲＭインテリジェントエネルギーマネージャ（ＩＥＭ）テクノロジー」、ＡＲＭ（ＴＨＥ  ＡＲＣＨＩＴＥＣＴＵＲＥ  ＦＯＲ  ＴＨＥ  ＤＩＧＩＴＡＬ  ＷＯＲＬＤ）、［ｏｎｌｉｎｅ］、［２０１１年１月１３日検索］、インターネット<URL:  http://www.jp.arm.com/products/processors/cpu-arch-iem.html>
【発明の概要】
【発明が解決しようとする課題】
【０００７】
図１は、一般的なＤＶＦＳによってＣＰＵへ供給するクロックの周波数が低いものから高いものへ切り替わる際のタイミングの一例を示すタイムチャートである。【０００８】
図２は、一般的なＤＶＦＳによってＣＰＵへ供給するクロックの周波数が高いものから低いものへ切り替わる際のタイミングの一例を示すタイムチャートである。【０００９】
図１に示すように、周波数を低いものから高いものへ切り替える場合、ＣＰＵへ供給する電源の電圧を上げてから周波数を切り替える必要がある。【００１０】
一方、図２に示すように、周波数を高いものから低いものへ切り替える場合、周波数を切り替えてから、ＣＰＵへ供給する電源の電圧を下げる必要がある。【００１１】
このように、電圧と周波数とによってシステムを破綻させないために、周波数を上げる場合と下げる場合とで、電圧を先に制御するのか、周波数を先に制御するのかを変更する必要がある。【００１２】
ある特定の機能が動作するときは、周波数としてｘＭＨｚが必要、また別の機能が動作するときはｙＭＨｚが必要ということが分かっていれば、各機能が動作するときに周波数を変更することが可能である。【００１３】
しかしながら、このような管理をソフトウェアで行うと、ソフトウェアの処理が煩雑になってしまうという問題点がある。【００１４】
システムＬＳＩが携帯端末に搭載されている場合、機能が動作する例としては、音声通話が動作する場合やゲーム等のアプリケーションが起動する場合等が挙げられる。【００１５】
また、必要な電圧が印加されていない場合に周波数を上げることはできない。周波数を上げる必要があるのか、または下げる必要があるのかは、ソフトウェアにて管理をしているが、ソフトウェアの管理が複雑になり、また管理するためにシステムの処理が多くなってしまうという問題点がある。【００１６】
本発明の目的は、上述した課題を解決する制御システムおよび制御装置を提供することである。
【課題を解決するための手段】
【００１７】
本発明の制御システムは、
複数の電圧の電源を供給可能な電源供給装置と、該電源供給装置およびＣＰＵと接続された制御装置とから構成された制御システムにおいて、
前記制御装置は、
前記ＣＰＵが具備する複数の機能それぞれに必要な電圧およびクロックの周波数を記憶する記憶部と、
前記記憶部に記憶されている、前記複数の機能のうちの動作している機能に応じた電圧の中で、最も高い電圧で前記電源を供給するように前記電源供給装置へ指示する電源制御部と、
前記記憶部に記憶されている、前記複数の機能のうちの動作している機能に応じた周波数の中で、最も高い周波数のクロックを前記ＣＰＵへ供給するクロック供給部とを有し、
前記電源供給装置は、
前記電源制御部から指示された電圧で前記電源を前記ＣＰＵへ供給する電源供給部と、
前記電源供給部から供給する電源の電圧が変更された場合、該変更が完了した際、前記制御装置へその旨を通知する割り込み通知部とを有し、
前記電源制御部は、前記クロック供給部が供給するクロックの周波数が、前記クロック供給部が現在供給している周波数よりも低くなる機能への切り替えが発生した場合、該機能に応じた周波数への切り替えが完了してから、該切り替え後の周波数に応じた電圧で前記電源を供給するように指示し、
前記クロック供給部は、供給するクロックの周波数が、現在供給している周波数よりも高くなる機能への切り替えが発生した場合、前記割り込み通知部からの前記通知を受けてから、該機能に応じた周波数のクロックを供給することを特徴とする。【００１８】
また、本発明の制御装置は、
制御装置であって、
当該制御装置と接続されたＣＰＵが具備する複数の機能それぞれに必要な電圧およびクロックの周波数を記憶する記憶部と、
前記記憶部に記憶されている、前記複数の機能のうちの動作している機能に応じた電圧の中で、最も高い電圧で電源を供給するように、前記ＣＰＵへ電源を供給する電源供給装置へ指示する電源制御部と、
前記記憶部に記憶されている、前記複数の機能のうちの動作している機能に応じた周波数の中で、最も高い周波数のクロックを前記ＣＰＵへ供給するクロック供給部とを有し、
前記電源制御部は、前記クロック供給部が供給するクロックの周波数が、前記クロック供給部が現在供給している周波数よりも低くなる機能への切り替えが発生した場合、該機能に応じた周波数への切り替えが完了してから、該切り替え後の周波数に応じた電圧で前記電源を供給するように指示し、
前記クロック供給部は、供給するクロックの周波数が、現在供給している周波数よりも高くなる機能への切り替えが発生した場合、前記電源供給装置から供給される電圧の変更が完了してから、該機能に応じた周波数のクロックを供給する。
【発明の効果】
【００１９】
以上説明したように、本発明においては、ソフトウェアの管理を簡易化することができ、また省電力に効果を得ることができる。
【図面の簡単な説明】
【００２０】
【図１】一般的なＤＶＦＳによってＣＰＵへ供給するクロックの周波数が低いものから高いものへ切り替わる際のタイミングの一例を示すタイムチャートである。
【図２】一般的なＤＶＦＳによってＣＰＵへ供給するクロックの周波数が高いものから低いものへ切り替わる際のタイミングの一例を示すタイムチャートである。
【図３】本発明の制御システムの実施の一形態を示す図である。
【図４】図３に示した記憶部に記憶された機能と設定との対応付けの一例を示す図である。
【図５】図３に示した記憶部に記憶された電圧および周波数等の設定内容の一例を示す図である。
【図６】図３に示した記憶部に記憶されたカウンタテーブルの一例を示す図である。
【図７】本形態において、図３に示したＣＰＵが具備する複数の機能のうち、動作している機能が切り替わる場合の処理を説明するためのフローチャートである。
【図８】図３に示した記憶部に記憶されているカウンタテーブルのカウンタ値に変化があった場合の処理を説明するためのフローチャートである。
【図９】図８のステップ１４の処理によって電源の供給を指示された電源供給装置における処理を説明するためのフローチャートである。
【図１０】図３に示した電源供給装置から出力される電圧変更完了通知（割り込み通知）のタイミングの一例を示す図である。
【図１１】図３に示した電源供給装置から出力される電圧変更完了通知（割り込み通知）のタイミングの他の例を示す図である。
【図１２】図３に示した記憶部に記憶されたフラグテーブルの一例を示す図である。
【図１３】本形態において、図３に示したＣＰＵが具備する複数の機能のうち、動作している機能が切り替わる場合のフラグテーブルを用いた処理を説明するためのフローチャートである。
【図１４】図３に示した記憶部に記憶されているフラグテーブルのフラグに変化があった場合の処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００２１】
以下に、本発明の実施の形態について図面を参照して説明する。
【００２２】
図３は、本発明の制御システムの実施の一形態を示す図である。
【００２３】
本形態は図３に示すように、システムＬＳＩ１００と、システムＬＳＩ１００へ電源を供給する電源ＬＳＩである電源供給装置５００とから構成されている。
【００２４】
システムＬＳＩ１００には、電源周波数制御部である制御装置２００と、ＣＰＵ３００と、ペリフェラル４００とが設けられている。
【００２５】
また、電源供給装置５００には、電源供給部５１０と、割り込み通知部５２０とが設けられている。
【００２６】
さらに、制御装置２００には、記憶部２１０と、電源制御部２２０と、クロック供給部２３０と、判定部２４０とが設けられている。
【００２７】
記憶部２１０は、ＣＰＵ３００が具備する複数の機能それぞれに必要な電圧およびクロックの周波数をあらかじめ記憶する。なお、記憶部２１０は、レジスタから構成されるものであっても良い。
【００２８】
図４は、図３に示した記憶部２１０に記憶された機能と設定との対応付けの一例を示す図である。
【００２９】
図３に示した記憶部２１０には図４に示すように、ＣＰＵ３００が具備する複数の機能と、その機能が動作するために必要な設定とが対応付けられて記憶されている。ここで記憶される「機能」は、動作する機能を識別するための情報であれば良い。また、ここで記憶される「設定」は、動作するための設定を指定することができる情報であれば良い。
【００３０】
図５は、図３に示した記憶部２１０に記憶された電圧および周波数等の設定内容の一例を示す図である。
【００３１】
図３に示した記憶部２１０には図５に示すように、図４に示した複数の設定それぞれに、電圧（電圧値）および周波数が対応付けられて記憶されている。ここで、設定１から設定ｎ（ｎは、自然数）までのｎ個の設定が可能である場合、ｎ組の設定内容が記憶される。この設定内容は、外部からあらかじめ設定されているものである。
【００３２】
例えば、ＣＰＵ３００と電源供給装置５００との間の通信インタフェースがＩＩＣである場合、その通信機能に必要な電源電圧、クロック周波数等の設定内容が記憶されている。また、電圧値が設定されているアドレスやサブアドレスが設定されているものであっても良い。
【００３３】
なお、図４において、設定１の設定（下位）が、電圧および周波数が最も低く、設定ｎの設定（上位）が、電圧および周波数が最も高い。つまり、設定１から設定ｎへ、電圧および周波数が順に高くなっていく。
【００３４】
また、記憶部２１０は、複数の設定それぞれに対応するカウンタ値をカウンタテーブルとして記憶する。
【００３５】
図６は、図３に示した記憶部２１０に記憶されたカウンタテーブルの一例を示す図である。
【００３６】
図３に示した記憶部２１０には図６に示すように、図５に示した複数の設定それぞれに対応するカウンタ値が記憶されている。記憶されるカウンタ値は、制御装置２００内部に設けられたカウンタ（不図示）によってカウントされた値である。
【００３７】
このカウント方法は、例えば、周波数ｍが必要であるという設定ｍが動作する場合、このカウンタテーブルにて、設定ｍのカウンタ値をインクリメントする。また、設定ｍが不要になれば、つまり動作していた設定ｍを必要とする機能の動作を中止する場合、このカウンタテーブルの設定ｍのカウンタ値をデクリメントする。ここで、カウンタを用いている理由は、各ＤＶＦＳの設定が、機能１つ１つに割り当てられているわけではなく、例えば、設定ｍを必要とする機能が２以上ある場合が考えられるためであり、カウンタ値が０であれば設定ｍの周波数ｍは不要となり、１以上である場合は必要という判断になるためである。また、カウンタの上限が２５５（１つの設定に対して登録できる機能）である場合は、カウンタは各設定に対して１Ｂｙｔｅで良い。
【００３８】
また、図５と同様に、図６にて設定１が最下位であり、設定ｎが最上位である。
【００３９】
判定部２４０は、ＣＰＵ３００が具備する複数の機能のうち、動作していない機能が起動した際、または動作している機能が停止した際、機能の切り替えが発生したと判定する。また、判定部２４０は、機能の切り替えが発生したと判定した際、クロック供給部２３０が供給するクロックの周波数と、クロック供給部２３０が現在供給している周波数とを比較する。
【００４０】
電源制御部２２０は、記憶部２１０に記憶されている、複数の機能のうちの動作している機能に応じた電圧の中で、最も高い電圧で電源を供給するように電源供給装置５００へ指示する。また、電源制御部２２０は、クロック供給部２３０が供給するクロックの周波数が、クロック供給部２３０が現在供給している周波数よりも低くなる機能への切り替えが発生した場合、その機能に応じた周波数への切り替えが完了してから、当該切り替え後の周波数に応じた電圧で電源を供給するように電源供給装置５００へ指示する。
【００４１】
また、電源制御部２２０は、判定部２４０における比較の結果に基づいて上述した処理を行う。
【００４２】
クロック供給部２３０は、記憶部２１０に記憶されている、複数の機能のうちの動作している機能に応じた周波数の中で、最も高い周波数のクロックを生成して、ＣＰＵ３００へ供給する。また、クロック供給部２３０は、供給するクロックの周波数が、現在供給している周波数よりも高くなる機能への切り替えが発生した場合、割り込み通知部５２０からの通知を受けてから、その機能に応じた周波数のクロックを供給する。
【００４３】
また、クロック供給部２３０は、判定部２４０が機能の切り替えが発生したと判定した際、供給するクロックの周波数と、現在供給している周波数とを比較し、当該比較の結果に基づいて上述した処理を行う。
【００４４】
ＣＰＵ３００は、制御装置２００およびペリフェラル４００を制御する。また、ＣＰＵ３００は、複数の機能を具備する。
【００４５】
ペリフェラル４００は、システムＬＳＩ１００内におけるメモリを除く一般的な周辺機能であり、複数の機能（装置）から成り立つが、本形態においては、まとめてペリフェラル４００と記載する。
【００４６】
また、電源供給部５１０は、複数の電圧の電源を供給可能である。また、電源供給部５１０は、電源制御部２２０から指示された電圧で電源（ＣＰＵ電源）をＣＰＵ３００へ供給する。また、電源供給部５１０は、電源制御部２２０から指示された電圧で電源（ペリフェラル電源）をペリフェラル４００へ供給する。なお、電源供給部５１０が制御装置２００へ所定の電圧の電源（制御装置用電源）を供給することは言うまでもない。
【００４７】
割り込み通知部５２０は、電源供給部５１０から供給する電源の電圧が変更された場合、その変更が完了した際、制御装置２００のクロック供給部２３０へその旨を割り込み信号で通知する。
【００４８】
また、システムＬＳＩ１００と電源供給装置５００との間のインタフェースは、シリアルバス等のインタフェースを用いても良く、ここでは特に規定しない。
【００４９】
以下に、本形態における処理について説明する。
【００５０】
図７は、本形態において、図３に示したＣＰＵ３００が具備する複数の機能のうち、動作している機能が切り替わる場合の処理を説明するためのフローチャートである。
【００５１】
まず、機能が切り替わった場合、動作していなかった機能が開始されたのか、それとも動作していた機能が終了されたのかが、ステップ１にて、判定部２４０によって判定される。
【００５２】
動作していなかった機能が開始されたと判定された場合、当該機能が必要とする設定が記憶部２１０から読み出され、ステップ２にて、読み出された設定に応じたカウンタがインクリメントされる。インクリメントされたカウンタ値は、記憶部２１０の中のカウンタテーブルの該当する設定と対応付けて記憶される。
【００５３】
一方、動作していた機能が終了されたと判定された場合、当該機能が必要とする設定が記憶部２１０から読み出され、ステップ３にて、読み出された設定に応じたカウンタがデクリメントされる。デクリメントされたカウンタ値は、記憶部２１０の中のカウンタテーブルの該当する設定と対応付けて記憶される。
【００５４】
次に、図３に示した記憶部２１０に記憶されているカウンタテーブルのカウンタ値に変化があった場合の処理について説明する。この処理は、図７を用いて説明したステップ２およびステップ３の処理があった場合のハードウェアの処理である。
【００５５】
図８は、図３に示した記憶部２１０に記憶されているカウンタテーブルのカウンタ値に変化があった場合の処理を説明するためのフローチャートである。ここで、カウンタテーブル上、カウンタ値に変化があった設定が「設定ｍ」である場合を例に挙げて説明する。
【００５６】
まず、機能が切り替わった場合、変化があったカウンタ値の設定ｍが、カウンタ値が１以上である設定のうち最上位のものかどうか（図５の例では、一番右側にあるものかどうか）が、ステップ１１にて、判定部２４０によって判定される。
【００５７】
設定ｍが最上位ではない場合、電圧および周波数に変更はないため、処理は終了する。
【００５８】
一方、設定ｍが最上位である場合、当該カウンタ値の変化が「１」から「０」への変化であるかどうかが、ステップ１２にて、判定部２４０によって判定される。
【００５９】
当該カウンタ値の変化が「１」から「０」への変化ではない場合、当該カウンタ値の変化が「０」から「１」への変化であるかどうかが、ステップ１３にて、判定部２４０によって判定される。
【００６０】
当該カウンタ値の変化が「０」から「１」への変化ではない場合、電圧および周波数に変更はないため、処理は終了する。
【００６１】
一方、当該カウンタ値の変化が「０」から「１」への変化である場合、クロックの周波数を上げるケースとなるため、設定ｍと対応付けられている電圧が電源制御部２２０によって記憶部２１０から読み出される。そして、読み出された電圧で電源を供給するように、ステップ１４にて、電源制御部２２０から電源供給部５１０へ指示される。
【００６２】
すると、電源供給部５１０にて、供給する電源の電圧が変更される。
【００６３】
図９は、図８のステップ１４の処理によって電源の供給を指示された電源供給装置５００における処理を説明するためのフローチャートである。
【００６４】
電源供給部５１０へ、電源制御部２２０から電圧を指定して電源の供給を指示されると、ステップ３１にて、供給する電源の電圧が変更される。
【００６５】
当該電圧の変更が完了すると、その旨が電源供給部５１０から割り込み通知部５２０へ通知され、ステップ３２にて、割り込み通知部５２０から制御装置２００のクロック供給部２３０へ電圧変更完了通知が出力される。この通知は、割り込み信号として出力されるものであっても良い。
【００６６】
図１０は、図３に示した電源供給装置５００から出力される電圧変更完了通知（割り込み通知）のタイミングの一例を示す図である。
【００６７】
図１１は、図３に示した電源供給装置５００から出力される電圧変更完了通知（割り込み通知）のタイミングの他の例を示す図である。
【００６８】
図１０および図１１に示すように、電源供給部５１０からＣＰＵ３００へ供給される電圧の変更が完了すると、割り込み通知が出力される。なお、図１０および図１１においては、電圧変更完了を知らせるために、割り込み通知が正極性のパルス信号（パルス幅は任意）である場合を例に挙げて示したが、負極性のパルス信号であるものや、レベル信号を用いて立ち上がりエッジや立ち下りエッジで判断するものであってもかまわない。
【００６９】
また、図１０に示すように、周波数および電圧を上げる場合は、電圧を上げてから周波数を上げる処理を行う。一方、図１１に示すように、周波数および電圧を下げる場合は、周波数を下げてから電圧を下げる処理を行う。
【００７０】
また、変更された電圧値の電源が電源供給部５１０からＣＰＵ３００へ供給される。
【００７１】
制御装置２００では、ステップ１４の処理が行われた後、ステップ１５にて、電圧変更完了まで処理が行われない。具体的には、電源供給装置５００から電圧変更完了通知が出力されてくるまで処理がＷａｉｔ状態とされる。
【００７２】
電源供給装置５００から電圧変更完了通知が出力されてくると、クロック供給部２３０にて、設定ｍと対応付けられている周波数が記憶部２１０から読み出され、ステップ１６にて、ＣＰＵ３００へ供給されるクロックの周波数として設定（生成）される。設定が完了する、つまり周波数の変更が完了するまで、ステップ１７にて、処理がＷａｉｔされる。
【００７３】
その後、設定された周波数のクロックがクロック供給部２３０からＣＰＵ３００へ供給される。
【００７４】
一方、ステップ１２にて、当該カウンタ値の変化が「１」から「０」への変化ではある場合、設定ｍが必要な機能すべてが使用されなくなることを示す。そのため、設定ｍは不要となる。
【００７５】
設定ｍが不要となるため、カウンタテーブル上でカウンタ値が１以上である設定のうち、設定ｍの次に上位の設定が検索される。ここでは、設定３が検索された場合を例に挙げて説明する。
【００７６】
設定３の周波数および電圧へ変更するため、設定ｍの周波数および電圧から設定３の周波数および電圧へ下げることとなる。周波数および電圧を下げる場合は、上述したように、周波数を下げてから電圧を下げる処理となる。
【００７７】
まず、クロック供給部２３０にて、設定３と対応付けられている周波数が記憶部２１０から読み出され、ステップ１８にて、ＣＰＵ３００へ供給されるクロックの周波数として設定（生成）される。設定が完了する、つまり周波数の変更が完了するまで、ステップ１９にて、処理がＷａｉｔされる。
【００７８】
その後、設定された周波数のクロックがクロック供給部２３０からＣＰＵ３００へ供給される。
【００７９】
すると、設定３と対応付けられている電圧が電源制御部２２０によって記憶部２１０から読み出される。そして、読み出された電圧で電源を供給するように、ステップ２０にて、電源制御部２２０から電源供給部５１０へ指示される。
【００８０】
その後、ステップ２１にて、電圧変更完了まで処理が行われない。具体的には、電源供給装置５００から電圧変更完了通知が出力されてくるまで処理がＷａｉｔ状態とされる。そして、処理が終了する。
【００８１】
また、各機能が各設定１つずつと対応する場合、上述したカウンタテーブルの代わりにその機能（設定）が動作しているかどうかを示すフラグを用いるものであっても良い。
【００８２】
図１２は、図３に示した記憶部２１０に記憶されたフラグテーブルの一例を示す図である。
【００８３】
図１２に示すように、設定１から設定ｎまでの各設定にＦＬ１からＦＬｎまでのフラグが記憶されている。例えば、動作している設定のフラグを「Ｏｎ」とし、動作していない設定のフラグを「Ｏｆｆ」とするものであっても良い。また、フラグを１ビットで示す場合、「Ｏｎ」を「１」とし、「Ｏｆｆ」を「０」とするものであっても良い。
【００８４】
このようなフラグテーブルを用いることで、動作している機能と動作していない機能とを認識することができるため、図４に示した対応付けとから、必要な周波数および電圧を認識することができる。
【００８５】
以下に、本形態において、図３に示したＣＰＵ３００が具備する複数の機能のうち、動作している機能が切り替わる場合のフラグテーブルを用いた処理について説明する。
【００８６】
図１３は、本形態において、図３に示したＣＰＵ３００が具備する複数の機能のうち、動作している機能が切り替わる場合のフラグテーブルを用いた処理を説明するためのフローチャートである。
【００８７】
まず、機能が切り替わった場合、動作していなかった機能が開始されたのか、それとも動作していた機能が終了されたのかが、ステップ４１にて、判定部２４０によって判定される。
【００８８】
動作していなかった機能が開始されたと判定された場合、ステップ４２にて、当該機能が必要とする設定が記憶部２１０から読み出され、読み出された設定に応じたフラグが「Ｏｎ」に設定される（書き換えられる）。
【００８９】
一方、動作していた機能が終了されたと判定された場合、当該機能が必要とする設定が記憶部２１０から読み出され、ステップ４３にて、読み出された設定に応じたフラグが「Ｏｆｆ」に設定される（書き換えられる）。
【００９０】
次に、図３に示した記憶部２１０に記憶されているフラグテーブルのフラグに変化があった場合の処理について説明する。
【００９１】
図１４は、図３に示した記憶部２１０に記憶されているフラグテーブルのフラグに変化があった場合の処理を説明するためのフローチャートである。ここで、フラグテーブル上、フラグに変化があった設定が「設定ｍ」である場合を例に挙げて説明する。
【００９２】
まず、機能が切り替わった場合、フラグに変化があった設定ｍの変化の内容が、「Ｏｆｆ」から「Ｏｎ」への変化なのか、それとも「Ｏｎ」から「Ｏｆｆ」への変化なのかが、ステップ５１にて、判定部２４０によって判定される。
【００９３】
「Ｏｆｆ」から「Ｏｎ」への変化であると判定された場合、ステップ５２にて、設定ｍが「Ｏｎ」となっている設定のうち、最上位であるかどうかが判定部２４０によって判定される。例えば、この処理の前にフラグが「Ｏｎ」となっていた設定の最上位が設定３である場合、この処理によって設定ｍが最上位となる。
【００９４】
設定ｍが、「Ｏｎ」となっている設定のうち、最上位ではない場合、処理は終了する。
【００９５】
一方、設定ｍが、「Ｏｎ」となっている設定のうち、最上位である場合は、周波数および電圧を上げることとなる。すると、設定ｍと対応付けられている電圧が電源制御部２２０によって記憶部２１０から読み出される。そして、ステップ５３にて、読み出された電圧で電源を供給するように、電源制御部２２０から電源供給部５１０へ指示される。
【００９６】
そして、電源供給部５１０にて、供給する電源の電圧が変更され、変更された電圧値の電源が電源供給部５１０からＣＰＵ３００へ供給される。
【００９７】
また、制御装置２００では、ステップ５３の処理が行われた後、ステップ５４にて、電圧変更完了まで処理が行われない。具体的には、電源供給装置５００から電圧変更完了通知が出力されてくるまで処理がＷａｉｔ状態とされる。この電圧変更完了通知は、上述したものと同じである。
【００９８】
電源供給装置５００から電圧変更完了通知が出力されてくると、クロック供給部２３０にて、設定ｍと対応付けられている周波数が記憶部２１０から読み出され、ステップ５５にて、ＣＰＵ３００へ供給されるクロックの周波数として設定（生成）される。設定が完了する、つまり周波数の変更が完了するまで、ステップ５６にて、処理がＷａｉｔされる。
【００９９】
その後、設定された周波数のクロックがクロック供給部２３０からＣＰＵ３００へ供給される。
【０１００】
一方、ステップ５１にて、「Ｏｎ」から「Ｏｆｆ」への変化であると判定された場合、ステップ５７にて、設定ｍが、「Ｏｎ」となっていた設定のうち、最上位であったかどうかが判定部２４０によって判定される。
【０１０１】
設定ｍが、「Ｏｎ」となっていた設定のうち、最上位ではなかった場合、処理は終了する。
【０１０２】
また、設定ｍが、「Ｏｎ」となっていた設定のうち、最上位であった場合、フラグテーブル上でフラグが「Ｏｎ」である設定のうち、設定ｍの次に上位の設定が検索される。ここでは、設定３が検索された場合を例に挙げて説明する。
【０１０３】
設定３の周波数および電圧へ変更するため、設定ｍの周波数および電圧から設定３の周波数および電圧へ下げることとなる。周波数および電圧を下げる場合は、上述したように、周波数を下げてから電圧を下げる処理となる。
【０１０４】
まず、クロック供給部２３０にて、設定３と対応付けられている周波数が記憶部２１０から読み出され、ステップ５８にて、ＣＰＵ３００へ供給されるクロックの周波数として設定（生成）される。設定が完了する、つまり周波数の変更が完了するまで、ステップ５９にて、処理がＷａｉｔされる。
【０１０５】
その後、設定された周波数のクロックがクロック供給部２３０からＣＰＵ３００へ供給される。
【０１０６】
すると、設定３と対応付けられている電圧が電源制御部２２０によって記憶部２１０から読み出される。そして、ステップ６０にて、読み出された電圧で電源を供給するように、電源制御部２２０から電源供給部５１０へ指示される。
【０１０７】
その後、ステップ６１にて、電圧変更完了まで処理が行われない。具体的には、電源供給装置５００から電圧変更完了通知が出力されてくるまで処理がＷａｉｔ状態とされる。そして、処理が終了する。
【０１０８】
なお、電源供給装置５００における処理は、図９を用いて説明したものと同じである。
【０１０９】
また、ＣＰＵ３００へ供給するクロックの周波数および電源電圧の制御だけではなく、ペリフェラル４００へ供給するクロックの周波数および電源電圧の制御を行っても良い。
【０１１０】
この場合、上述した「機能」を「装置」へ置き換え、ペリフェラル４００となる複数の装置それぞれに応じた周波数および電圧を制御する。
【０１１１】
このように、周波数および電圧の管理をシステムＬＳＩ１００で実施するため、ソフトウェアは単純にシステムＬＳＩ１００に対して通知するという処理のみを行えば良い。そのため、ソフトウェアの開発を簡素化した上で消費電力化も満たすことができる。
【０１１２】
なお、本発明の利用分野として、携帯電話やスマートフォン等の携帯端末、携帯ゲーム機、モバイルＰＣといったモバイル機器全般が挙げられる。
【０１１３】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１１４】
この出願は、２０１１年１月２０日に出願された日本出願特願２０１１−００９７２２を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図１】
2012098741.tif 000003
【図２】
2012098741.tif 000004
【図３】
2012098741.tif 000005
【図４】
2012098741.tif 000006
【図５】
2012098741.tif 000007
【図６】
2012098741.tif 000008
【図７】
2012098741.tif 000009
【図８】
2012098741.tif 000010
【図９】
2012098741.tif 000011
【図１０】
2012098741.tif 000012
【図１１】
2012098741.tif 000013
【図１２】
2012098741.tif 000014
【図１３】
2012098741.tif 000015
【図１４】
2012098741.tif 000016
【国際調査報告】
2012098741.tif 000017
2012098741.tif 000018
2012098741.tif 000019
2012098741.tif 000020