(57)【特許請求の範囲】
【請求項１】
複数のクロック周波数のシステムクロックを供給可能で、システムクロックに同期して処理を行う少なくとも一つのターゲット回路に対して、制御信号に応じたクロック周波数のシステムクロックを供給するクロック供給回路と、
上記ターゲット回路の稼動状態を示す信号に基づいてシステムクロックのクロックパルスを計測し、一定の時間ごとに上記ターゲット回路の稼動状態を観測する観測手段と、
上記観測手段にて観測した上記ターゲット回路の稼動状態に基づきシステムクロックの周波数を決定し、決定したクロック周波数のシステムクロックを供給するように指示する上記制御信号を上記クロック供給回路に出力する制御手段と、
を有し、
上記ターゲット回路は、
稼働状態にあるか待機状態にあるかを示すフラグを設定するフラグレジスタを含み、当該フラグレジスタに設定されたフラグを上記稼働状態を示す信号として上記観測手段に出力し、
上記観測手段は、
所定の時間を計測するタイマ回路を有し、当該タイマ回路により計測された時間における上記ターゲット回路の稼動状態の割合を算出する
周波数制御回路。
【請求項２】
上記ターゲット回路が複数存在する場合に、上記観測手段は、各ターゲット回路の稼動状態を示す信号の論理和をとった信号を上記稼動状態を示す信号とし、当該信号に基づいてシステムクロックのクロックパルスを計測する
請求項１記載の周波数制御回路。
【請求項３】
上記各ターゲット回路は、稼働状態にあるか待機状態にあるかを示すフラグを設定するフラグレジスタを含み、当該フラグレジスタに設定されたフラグを上記稼働状態を示す信号として上記観測手段に出力する
請求項２記載の周波数制御回路。
【請求項４】
上記制御手段は、上記観測手段で算出された稼動状態の割合にマージンを付加することによりシステムクロックの周波数を決定する
請求項１記載の周波数制御回路。
【請求項５】
上記制御手段は、算出された稼動状態の割合が現在の周波数からマージンを差し引いた値より大きい場合は、クロック周波数を高くする決定を行う
請求項４記載の周波数制御回路。
【請求項６】
上記制御手段は、現在の周波数より周波数の階調の所定の刻み分だけ高い周波数に次のクロック周波数を決定する
請求項５記載の周波数制御回路。
【請求項７】
上記制御手段は、算出された稼動状態の割合が現在の周波数から周波数の階調の所定の刻み分だけ低い周波数からマージンを差し引いた値より小さい場合は、クロック周波数を低くする決定を行う
請求項４記載の周波数制御回路。
【請求項８】
上記制御手段は、算出された稼動状態の割合が現在の周波数からマージンを差し引いた値以下で、かつ、算出された稼動状態の割合が現在の周波数から周波数の階調の所定の刻み分だけ低い周波数からマージンを差し引いた値以上の場合は、現在のクロック周波数を維持する決定を行う
請求項４記載の周波数制御回路。
【請求項９】
上記制御手段は、算出された稼動状態の割合が現在の周波数からマージンを差し引いた値より大きい場合は、クロック周波数を高くする決定を行い、算出された稼動状態の割合が現在の周波数から周波数の階調の所定の刻み分だけ低い周波数からマージンを差し引いた値より小さい場合は、クロック周波数を低くする決定を行い、算出された稼動状態の割合が現在の周波数からマージンを差し引いた値以下で、かつ、算出された稼動状態の割合が現在の周波数から周波数の階調の所定の刻み分だけ低い周波数からマージンを差し引いた値以上の場合は、現在のクロック周波数を維持する決定を行う
請求項４記載の周波数制御回路。
【請求項１０】
上記制御手段は、現在の周波数より周波数の階調の所定の刻み分だけ高い周波数に次のクロック周波数を決定する
請求項９記載の周波数制御回路。
【請求項１１】
複数のクロック周波数のシステムクロックを供給可能で、システムクロックに同期して処理を行う少なくとも一つのターゲット回路に対して、第１の制御信号に応じたクロック周波数のシステムクロックを供給するクロック供給回路と、
第２の制御信号に応じた値の電源電圧を少なくとも上記ターゲット回路に供給する電源電圧供給回路と、
上記ターゲット回路の稼動状態を示す信号に基づいてシステムクロックのクロックパルスを計測し、一定の時間ごとに上記ターゲット回路の稼動状態を観測する観測手段と、
上記観測手段にて観測した上記ターゲット回路の稼動状態に基づきシステムクロックの周波数を決定し、決定したクロック周波数のシステムクロックを供給するように指示する上記第１の制御信号を上記クロック供給回路に出力し、かつ、クロック供給回路に指示したクロック周波数においてターゲット回路の動作が保証される最低値近傍の電源電圧を供給するように上記第２の制御信号を上記電源電圧供給回路に出力する制御手段と
を有し、
上記ターゲット回路は、
稼働状態にあるか待機状態にあるかを示すフラグを設定するフラグレジスタを含み、当該フラグレジスタに設定されたフラグを上記稼働状態を示す信号として上記観測手段に出力し、
上記観測手段は、
所定の時間を計測するタイマ回路を有し、当該タイマ回路により計測された時間における上記ターゲット回路の稼動状態の割合を算出する
周波数制御回路。
【請求項１２】
上記ターゲット回路が複数存在する場合に、上記観測手段は、各ターゲット回路の稼動状態を示す信号の論理和をとった信号を上記稼動状態を示す信号とし、当該信号に基づいてシステムクロックのクロックパルスを計測する
請求項１１記載の周波数制御回路。
【請求項１３】
上記各ターゲット回路は、稼働状態にあるか待機状態にあるかを示すフラグを設定するフラグレジスタを含み、当該フラグレジスタに設定されたフラグを上記稼働状態を示す信号として上記観測手段に出力する
請求項１２記載の周波数制御回路。
【請求項１４】
上記制御手段は、上記観測手段で算出された稼動状態の割合にマージンを付加することによりシステムクロックの周波数を決定する
請求項１１記載の周波数制御回路。
【請求項１５】
上記制御手段は、算出された稼動状態の割合が現在の周波数からマージンを差し引いた値より大きい場合は、クロック周波数を高くする決定を行う
請求項１４記載の周波数制御回路。
【請求項１６】
上記制御手段は、現在の周波数より周波数の階調の所定の刻み分だけ高い周波数に次のクロック周波数を決定する
請求項１５記載の周波数制御回路。
【請求項１７】
上記制御手段は、算出された稼動状態の割合が現在の周波数から周波数の階調の所定の刻み分だけ低い周波数からマージンを差し引いた値より小さい場合は、クロック周波数を低くする決定を行う
請求項１４記載の周波数制御回路。
【請求項１８】
上記制御手段は、算出された稼動状態の割合が現在の周波数からマージンを差し引いた値以下で、かつ、算出された稼動状態の割合が現在の周波数から周波数の階調の所定の刻み分だけ低い周波数からマージンを差し引いた値以上の場合は、現在のクロック周波数を維持する決定を行う
請求項１４記載の周波数制御回路。
【請求項１９】
上記制御手段は、算出された稼動状態の割合が現在の周波数からマージンを差し引いた値より大きい場合は、クロック周波数を高くする決定を行い、算出された稼動状態の割合が現在の周波数から周波数の階調の所定の刻み分だけ低い周波数からマージンを差し引いた値より小さい場合は、クロック周波数を低くする決定を行い、算出された稼動状態の割合が現在の周波数からマージンを差し引いた値以下で、かつ、算出された稼動状態の割合が現在の周波数から周波数の階調の所定の刻み分だけ低い周波数からマージンを差し引いた値以上の場合は、現在のクロック周波数を維持する決定を行う
請求項１４記載の周波数制御回路。
【請求項２０】
上記制御手段は、現在の周波数より周波数の階調の所定の刻み分だけ高い周波数に次のクロック周波数を決定する
請求項１９記載の周波数制御回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、システムクロックに同期して所定の処理を行うターゲット回路に供給するシステムクロックのクロック周波数を制御する周波数制御回路に関するものである。
【０００２】
【従来の技術】
電子回路システムにおける消費電力は、そのシステムを稼動する電源電圧とクロック周波数により決定される。
しかしながら、与えられたプログラムを実行するコンピュータなど、システムによって常に所定の処理を行っているとは限らず、処理すべきタスクが存在する場合に稼動状態となり、そのタスクを処理し、処理すべきタスクが存在しない場合には待機状態となるものもある。
このようなシステムにおいて、システムの稼動状態を観測し、その状態に応じてクロックを制御することにより無駄な消費電力を削減する方法がとられている。
この種の方法としては、たとえば次の２つの方法が知られている。
【０００３】
第１の方法は、たとえば特開平１１−２１９２３７号公報に記載されているように、システムが待機状態になったことを検出して周波数を低減する方法である。
【０００４】
また、第２の方法は、特開平１１−１８４５５４号公報に記載されているように、バスの負荷状況を計測し、所定時間内でのバスアクセス率を計算し、アクセス率に応じてクロックを切替える方法である。
【０００５】
【発明が解決しようとする課題】
しかしながら、上述した第１の方法では、システムが待機状態と稼動状態を頻繁に繰り返す場合には、その都度、クロック周波数を切替える処理を行う必要が生じることになる。
また、システムの消費電力を考えた場合、ある程度の時間に亘って稼動状態の割合に応じた低いクロック周波数を供給し、待機状態を削減し、クロック周波数を低くした（下げた）分、供給する電源電圧を下げた方が消費電力の削減効果が期待される。
【０００６】
また、第２の方法では、バスのプロトコルに準じてバスの負荷状況を監視する回路を作成する必要があるとともに、システムによっては、必ずしもバスの負荷状況とシステムの負荷状況は一致するとも限らず、汎用性に問題がある。
また、ソフトウエアによりシステムの稼動状態を観測し、クロックの周波数を制御する方法もある。ソフトウエアによる制御は、自由度が高い反面、この処理自体がシステムの負荷を増加させるという問題がある。
【０００７】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、システムの稼動状態の割合に応じて、システムに供給するクロックの周波数を自動的に変更することができ、システムの消費電力をアクティビティに応じた最適なものに制御することが可能で、また、汎用性が高く、システムの負荷を軽減できる周波数制御回路を提供することにある。
【０００８】
【課題を解決するための手段】
上記目的を達成するため、本発明の第１の観点に係る周波数制御回路は、複数のクロック周波数のシステムクロックを供給可能で、システムクロックに同期して処理を行う少なくとも一つのターゲット回路に対して、制御信号に応じたクロック周波数のシステムクロックを供給するクロック供給回路と、上記ターゲット回路の稼動状態を示す信号に基づいてシステムクロックのクロックパルスを計測し、一定の時間ごとに上記ターゲット回路の稼動状態を観測する観測手段と、上記観測手段にて観測した上記ターゲット回路の稼動状態に基づきシステムクロックの周波数を決定し、決定したクロック周波数のシステムクロックを供給するように指示する上記制御信号を上記クロック供給回路に出力する制御手段と、を有し、上記ターゲット回路は、稼働状態にあるか待機状態にあるかを示すフラグを設定するフラグレジスタを含み、当該フラグレジスタに設定されたフラグを上記稼働状態を示す信号として上記観測手段に出力し、上記観測手段は、所定の時間を計測するタイマ回路を有し、当該タイマ回路により計測された時間における上記ターゲット回路の稼動状態の割合を算出する。
【０００９】
本発明の第２の観点に係る周波数制御回路は、複数のクロック周波数のシステムクロックを供給可能で、システムクロックに同期して処理を行う少なくとも一つのターゲット回路に対して、第１の制御信号に応じたクロック周波数のシステムクロックを供給するクロック供給回路と、第２の制御信号に応じた値の電源電圧を少なくとも上記ターゲット回路に供給する電源電圧供給回路と、上記ターゲット回路の稼動状態を示す信号に基づいてシステムクロックのクロックパルスを計測し、一定の時間ごとに上記ターゲット回路の稼動状態を観測する観測手段と、上記観測手段にて観測した上記ターゲット回路の稼動状態に基づきシステムクロックの周波数を決定し、決定したクロック周波数のシステムクロックを供給するように指示する上記第１の制御信号を上記クロック供給回路に出力し、かつ、クロック供給回路に指示したクロック周波数においてターゲット回路の動作が保証される最低値近傍の電源電圧を供給するように上記第２の制御信号を上記電源電圧供給回路に出力する制御手段とを有し、上記ターゲット回路は、稼働状態にあるか待機状態にあるかを示すフラグを設定するフラグレジスタを含み、当該フラグレジスタに設定されたフラグを上記稼働状態を示す信号として上記観測手段に出力し、上記観測手段は、所定の時間を計測するタイマ回路を有し、当該タイマ回路により計測された時間における上記ターゲット回路の稼動状態の割合を算出する。
【００１１】
また、本発明では、上記ターゲット回路が複数存在する場合に、上記観測手段は、各ターゲット回路の稼動状態を示す信号の論理和をとった信号を上記稼動状態を示す信号とし、当該信号に基づいてシステムクロックのクロックパルスを計測する。
好適には、上記各ターゲット回路は、稼働状態にあるか待機状態にあるかを示すフラグを設定するフラグレジスタを含み、当該フラグレジスタに設定されたフラグを上記稼働状態を示す信号として上記観測手段に出力する。
【００１３】
また、本発明では、上記制御手段は、上記観測手段で算出された稼動状態の割合にマージンを付加することによりシステムクロックの周波数を決定する。
【００１４】
また、本発明では、上記制御手段は、算出された稼動状態の割合が現在の周波数からマージンを差し引いた値より大きい場合は、クロック周波数を高くする決定を行う。
【００１５】
また、本発明では、上記制御手段は、現在の周波数より周波数の階調の所定の刻み分だけ高い周波数に次のクロック周波数を決定する。
【００１６】
また、本発明では、上記制御手段は、算出された稼動状態の割合が現在の周波数から周波数の階調の所定の刻み分だけ低い周波数からマージンを差し引いた値より小さい場合は、クロック周波数を低くする決定を行う。
【００１７】
また、本発明では、上記制御手段は、算出された稼動状態の割合が現在の周波数からマージンを差し引いた値以下で、かつ、算出された稼動状態の割合が現在の周波数から周波数の階調の所定の刻み分だけ低い周波数からマージンを差し引いた値以上の場合は、現在のクロック周波数を維持する決定を行う。
【００１８】
また、本発明では、上記制御手段は、算出された稼動状態の割合が現在の周波数からマージンを差し引いた値より大きい場合は、クロック周波数を高くする決定を行い、算出された稼動状態の割合が現在の周波数から周波数の階調の所定の刻み分だけ低い周波数からマージンを差し引いた値より小さい場合は、クロック周波数を低くする決定を行い、算出された稼動状態の割合が現在の周波数からマージンを差し引いた値以下で、かつ、算出された稼動状態の割合が現在の周波数から周波数の階調の所定の刻み分だけ低い周波数からマージンを差し引いた値以上の場合は、現在のクロック周波数を維持する決定を行う。
【００１９】
本発明によれば、たとえばターゲット回路では、多階調のクロック周波数を生成することができるクロック供給回路から供給されるシステムクロックに同期して動作し、待機状態と稼動状態を繰り返しながら、所望の処理が行われる。
ターゲット回路では、稼働状態にあるときには、アクティブであることを示すアクティビティフラグがフラグレジスタにたとえば論理「１」としてセットされる。また、ターゲット回路では、待機状態のときには、フラグレジスタに非アクティブの論理「０」がセットされる。
そして、ターゲット回路からは、フラグレジスタにセットされるアクティビティフラグが観測手段に送出されることにより、その稼動状態が示される。
観測手段においては、たとえばシステムクロックに同期して動作し、ターゲット回路によるアクティビティフラグに従い、ターゲット回路が稼動状態のときのシステムクロックのパルスがカウントされ、このカウント値が制御手段に出力される。
【００２０】
制御手段においては、たとえば観測手段でカウントされた稼動状態におけるシステムクロックのパルス数をもとに、所定の計測時間Ｔにおけるターゲット回路の稼動状態の割合（以下、アクティビティという）が算出される。
そして、たとえば得られたアクティビティが現在の周波数からマージンを差し引いた値より大きい否かの判別が行われる。
このとき、アクティビティが現在の周波数からマージンを差し引いた値より大きいと判別された場合には、システムクロックの周波数を高くする（上げる）必要があり、現在の周波数の周波数刻み分、たとえば現在の周波数より１段階高くした（上げた）周波数を次の周波数とする決定が行われ、決定された周波数選択を指示する制御信号がクロック供給回路に出力される。
【００２１】
また、たとえばアクティビティが現在の周波数からマージンを差し引いた値より大きくないと判別された場合には、アクティビティが現在の周波数より周波数刻み分、たとえば１段階低くした（下げた）周波数からマージンを差し引いた値より小さいか否かの判別が行われる。
このとき、たとえばアクティビティが現在の周波数より１段階下げた周波数からマージンを差し引いた値より小さいと判別された場合には、システムクロックの周波数を下げる必要があり、現在の周波数の周波数刻み分、たとえば現在の周波数より１段階下げた周波数を次の周波数とする決定が行われ、決定された周波数選択を指示する信号がクロック供給回路に出力される。
【００２２】
また、たとえばアクティビティが現在の周波数より１段階下げた周波数からマージンを差し引いた値より小さくないと判別された場合には、すなわち、上記のいずれの条件も満たさない場合には、現在の周波数を維持するように指示する信号がクロック供給回路に出力される。
そして、クロック供給回路では、制御手段による制御信号により指示されたクロック周波数のシステムクロックが選択され、ターゲット回路に供給される。
【００２３】
【発明の実施の形態】
第１実施形態
図１は、本発明に係る周波数制御回路を適用した電子回路システムの第１の実施形態を示すブロック図である。
【００２４】
本回路システム１０は、図１に示すように、ターゲット回路としてのＣＰＵ１１、タイマ１２、カウンタ１３、制御回路１４、およびクロック供給回路１５を有している。
そして、これらの構成要素のうち、タイマ１２、カウンタ１３、制御回路１４、およびクロック供給回路１５により周波数制御回路が構成され、また、タイマ１２およびカウンタ１３により観測手段が構成される。
【００２５】
ＣＰＵ１１が、クロック周波数の制御対象となるシステムのターゲット回路を構成し、後述するように、多階調のクロック周波数を生成することができるクロック供給回路１５から供給されるシステムクロックＳＹＳＣＬＫに同期して動作し、待機状態と稼動状態を繰り返しながら、所望のタスクを処理する。
ＣＰＵ１１は、稼働状態にあるときに、アクティブであることを示す１ビットのアクティビティフラグＡＣＦＬＧがセットされるアクティビティフラグレジスタ１１１を有する。アクティビティフラグレジスタ１１１には、たとえばＣＰＵ１１が稼働状態にあるときは、論理「１」のフラグがセットされ、待機状態のときには、非アクティブの論理「０」がセットされる。
ＣＰＵ１１は、レジスタ１１１にセットされる１ビットのアクティビティフラグＡＣＦＬＧをカウンタ１３に送ることにより、その稼動状態を示す。
なお、ＣＰＵ１１のアクティビティを計測するための計測時間Ｔは、タイマ１２により計測される。
【００２６】
タイマ１２は、周波数が固定のクロックＦＸＣＬＫに同期して動作することにより、一定の時間を計測し、計測結果をその都度、一致信号Ｓ１２としてカウンタ１３および制御回路１４に出力する。
【００２７】
図２は、図１のタイマの具体的な構成例を示す図である。
このタイマ１２は、図２に示すように、クロックＣＬＫに同期して動作するカウンタ１２１、カウンタ１２１のカウント値ＶＣＮＴと比較する比較値ＶＣＭＰを保持しておくコンペアレジスタ１２２、カウンタ１２１のカウント値ＶＣＮＴとコンペアレジスタ１２２に保持された比較値ＶＣＭＰとを比較するコンパレータ１２３により構成されている。
【００２８】
このタイマ１２においては、コンペアレジスタ１２２に保持される比較値ＶＣＭＰは制御回路１４により信号Ｓ１４１として設定され、カウンタ１２１のカウント値ＶＣＮＴが比較値ＶＣＭＰと一致した時点で、一致したことを報知する一致信号Ｓ１２がコンパレータ１２３からカウンタ１３および制御回路１４に出力される。
また、タイマ１２においては、カウンタ１２１のカウント値ＶＣＮＴが比較値ＶＣＭＰと一致する度にカウンタ１２１はウント値がクリアされる。これにより、コンペアレジスタ１２２に設定された比較値、換言すれば計測時間Ｔに従い、一定の周期で一致信号Ｓ１２が出力される。
【００２９】
カウンタ１３は、ＣＰＵ１１のアクティビティ（稼動状態の割合）を計測する回路であり、システムクロックＳＹＳＣＬＫに同期して動作し、ＣＰＵ１１によるアクティビティフラグＡＣＦＬＧに従い、ＣＰＵ１１が稼動状態のときのシステムクロックＳＹＳＣＬＫのパルスをカウントし、このカウント値を信号Ｓ１３として制御回路１４に出力する。
【００３０】
図３は、図１のカウンタの構成例を示す図である。
このカウンタ１３は、図３に示すように、ＣＰＵ１１によるアクティビティフラグＡＣＦＬＧをイネーブル信号とするカウンタであり、アクティビティフラグＡＣＦＬＧが活性化状態のときに、システムクロックＳＹＳＣＬＫに同期してカウント値を加算する。
また、カウンタ１３は、タイマ１２による一致信号Ｓ１２をクリア信号として、一致信号Ｓ１２の入力の度にカウント値を初期化する。
【００３１】
図４は、図１のカウンタ１３の動作を説明するためのタイミングチャートである。
【００３２】
カウンタ１３は、図４（Ｃ）に示すように、タイマ１２から計測時間Ｔごとに送られてくる一致信号Ｓ１２に従い、カウント値を初期化する。
そして、図４（Ｂ）に示すように、ＣＰＵ１１によるアクティビティフラグＡＣＦＬＧの値が、ＣＰＵ１１の稼動状態を示しているとき（この例ではアクティビティフラグＡＣＦＬＧがハイレベル（論理「１」）のとき）には加算処理を行う。
一方、ＣＰＵ１１によるアクティビティフラグＡＣＦＬＧの値が、ＣＰＵ１１の待機状態を示しているとき（この例ではアクティビティフラグＡＣＦＬＧがローレベル（論理「０」）のとき) には加算処理を停止させる。
【００３３】
制御回路１４は、タイマ１２からの一致信号Ｓ１２に同期してカウンタ１３の値を示す信号Ｓ１３をとりこみ、所定の計測時間ＴにおけるＣＰＵ１１のアクティビティを計測し、この計測したアクティビティに基づき次に設定するシステムクロックＳＹＳＣＬＫの周波数を決定し、決定した周波数を選択させ、システムクロックの周波数を変更させるための制御信号Ｓ１４２をクロック供給回路１５に出力する。
また、制御回路１４は、上述したように、タイマ１２のコンペアレジスタ１２２に設定すべき比較値ＶＣＭＰを信号Ｓ１４１としてタイマ１２に出力する。
【００３４】
クロック供給回路１５は、多階調のクロック周波数のシステムクロックＳＹＳＣＬＫを生成することが可能で、制御回路１４による制御信号Ｓ１４２により指示されたクロック周波数のシステムクロックＳＹＳＣＬＫを、ＣＰＵ１１、カウンタ１３に供給する。
クロック供給回路１５は、たとえば複数の周波数のクロックから１つを選択する方法、クロック発振回路の設定を変更する方法などを用いて多階調のクロック周波数を実現可能である。
【００３５】
図５は、図１のクロック供給回路の具体的な構成例を示す図である。
このクロック供給回路１５は、図５に示すように、所定周波数のクロックを発振する位相同期回路（ＰＬＬ回路）１５１、複数の分周比にて複数、たとえば４つのクロック周波数ｆ０，ｆ１，ｆ２，ｆ３のクロックを生成する分周器１５２、および制御回路１４による制御信号Ｓ１４２により指示されたクロック周波数のシステムクロックを選択して出力するセレクタ１５３により構成されている。
【００３６】
このクロック供給回路１５においては、ＰＬＬ回路１５１のたとえば周波数３００ＭＨｚの発振クロックが分周器１５２に供給される。
分周器１５２では、複数の分周比、たとえば１／３、１／４、１／６、１／１２の分周比にてＰＬＬ回路１５の発振クロックが分周されることにより、たとえばｆ０（＝１００ＭＨｚ），ｆ１（＝７５ＭＨｚ），ｆ２（＝５０ＭＨｚ），ｆ３（＝２５ＭＨｚ）のクロック周波数のクロックが生成され、セレクタ１５３に供給される。
そして、セレクタ１５３においては、制御回路１４による制御信号Ｓ１４２に従って、所望の周波数のクロックが選択され、システムクロックＳＹＳＣＬＫとしてＣＰＵ１１、カウンタ１３に供給される。
【００３７】
上述した本実施形態に係る回路システムの１０のクロック周波数の制御方法は、現在のアクティビティから次のクロックの周波数を決定するフィードバック型処理である。必ずしも次のアクティビティも同等になる保証はない。
また、対象となるシステムにおいては、割り込み等予測不可能な処理の増加も考えられる。このため、アクティビティが上がることが予想される。
したがって、システムの周波数の決定にはある程度のマージンを考慮する必要がある場合もある。
また、クロック供給回路１５は、多階調の周波数のクロックを生成する分周器１５２を備えるが、その周波数の階調の刻みも考慮する必要がある。
【００３８】
次に、上記構成による動作を、制御回路１４においてシステムの周波数の決定にある程度のマージンを考慮し、クロック供給回路１５で多階調の周波数の刻みも考慮した場合の動作を、図６のフローチャートに関連付けて説明する。
【００３９】
ＣＰＵ１１においては、多階調のクロック周波数を生成することができるクロック供給回路１５から供給されるシステムクロックＳＹＳＣＬＫに同期して動作し、待機状態と稼動状態を繰り返しながら、所望のタスクが処理される。
ＣＰＵ１１では、稼働状態にあるときには、アクティブであることを示す１ビットのアクティビティフラグＡＣＦＬＧがレジスタ１１１に論理「１」としてセットされる。また、ＣＰＵ１１では、待機状態のときには、レジスタ１１１に非アクティブの論理「０」がセットされる。
そして、ＣＰＵ１１からは、レジスタ１１１にセットされる１ビットのアクティビティフラグＡＣＦＬＧがカウンタ１３に送出されることにより、その稼動状態が示される。
【００４０】
また、タイマ１２において、カウンタ１２１のカウント値ＶＣＮＴがコンペアレジスタ１２２に保持される比較値ＶＣＭＰと一致した時点で、一致したことを報知する一致信号Ｓ１２がコンパレータ１２３からカウンタ１３および制御回路１４に出力される。
また、タイマ１２においては、カウンタ１２１のカウント値ＶＣＮＴが比較値ＶＣＭＰと一致する度にカウンタ１２１はウント値がクリアされる。これにより、タイマ１２から計測時間Ｔに従い、一定の周期で一致信号Ｓ１２が出力される。
【００４１】
カウンタ１３においては、システムクロックＳＹＳＣＬＫに同期して動作し、ＣＰＵ１１によるアクティビティフラグＡＣＦＬＧに従い、ＣＰＵ１１が稼動状態のときのシステムクロックＳＹＳＣＬＫのパルスがカウントされ、このカウント値が信号Ｓ１３として制御回路１４に出力される。
【００４２】
制御回路１４においては、カウンタ１３でカウントされた稼動状態におけるシステムクロックＳＹＳＣＬＫのパルス数をもとに、所定の計測時間ＴにおけるシステムのアクティビティＡＣＴが計算される（ＳＴ１）。
【００４３】
そして、得られたアクティビティＡＣＴが現在の周波数ＣＦからマージンＭＧＮを差し引いた値より大きい否かの判別が行われる（ＳＴ２）。
【００４４】
ステップＳＴ２において、アクティビティＡＣＴが現在の周波数ＣＦからマージンＭＧＮを差し引いた値より大きいと判別された場合には、システムクロックＳＹＳＣＬＫの周波数を上げる必要があり、現在の周波数ＦＣの周波数刻み分、たとえば現在の周波数ＦＣより１段階上げた周波数を次の周波数とする決定が行われ、決定された周波数選択を指示する制御信号Ｓ１４２がクロック供給回路１５に出力され（ＳＴ３）、ステップＳＴ１の処理に戻る。
【００４５】
ステップＳＴ２において、アクティビティＡＣＴが現在の周波数ＣＦからマージンＭＧＮを差し引いた値より大きくないと判別された場合には、アクティビティＡＣＴが現在の周波数ＦＣより周波数刻み分、たとえば１段階下げた周波数からマージンＭＧＮを差し引いた値より小さいか否かの判別が行われる（ＳＴ４）。
【００４６】
ステップＳＴ４において、アクティビティＡＣＴが現在の周波数ＦＣより１段階下げた周波数からマージンを差し引いた値より小さいと判別された場合には、システムクロックＳＹＳＣＬＫの周波数を下げる必要があり、現在の周波数ＦＣの周波数刻み分、たとえば現在の周波数ＦＣより１段階下げた周波数を次の周波数とする決定が行われ、決定された周波数選択を指示する信号Ｓ１４２がクロック供給回路１５に出力され（ＳＴ５）、ステップＳＴ１の処理に戻る。
【００４７】
ステップＳＴ４において、アクティビティＡＣＴが現在の周波数ＦＣより１段階下げた周波数からマージンを差し引いた値より小さくないと判別された場合には、すなわち、ステップＳＴ２およびＳＴ４のいずれの条件も満たさない場合には、現在の周波数を維持するように指示する信号Ｓ１４２がクロック供給回路１５に出力され（ＳＴ６）、ステップＳＴ１の処理に戻る。
【００４８】
なお、次のシステムクロックの周波数を決定するためには、（１）周波数を上げるための条件、（２）周波数を下げるための条件、（３）周波数を上げる場合の、次の周波数の与え方、（４) 周波数を下げる場合の、次の周波数の与え方を規定すればよい。
【００４９】
そして、クロック供給回路１５では、制御回路１４による制御信号Ｓ１４２により指示されたクロック周波数のシステムクロックＳＹＳＣＬＫが選択され、ＣＰＵ１１、カウンタ１３に供給される。
【００５０】
このように所定の計測時間Ｔごとに周波数を変更し、このフローが繰り返されていく。
【００５１】
以上説明したように、本第１の実施形態によれば、システムクロックＳＹＳＣＬＫに同期して動作し、待機状態と稼動状態を繰り返しながら、所望のタスクを処理し、レジスタ１１１にセットされる１ビットのアクティビティフラグＡＣＦＬＧをカウンタ１３に送ることにより、その稼動状態を示すＣＰＵ１１と、周波数が固定のクロックＦＸＣＬＫに同期して動作することにより、一定の時間を計測し、計測結果をその都度、一致信号Ｓ１２として出力するタイマ１２と、システムクロックＳＹＳＣＬＫに同期して動作し、ＣＰＵ１１によるアクティビティフラグＡＣＦＬＧに従い、ＣＰＵ１１が稼動状態のときのシステムクロックＳＹＳＣＬＫのパルスをカウントし、このカウント値を信号Ｓ１３として出力するカウンタ１３と、タイマ１２からの一致信号Ｓ１２に同期してカウンタ１３の値を示す信号Ｓ１３をとりこみ、所定の計測時間ＴにおけるＣＰＵ１１のアクティビティを計測し、この計測したアクティビティに基づき次に設定するシステムクロックＳＹＳＣＬＫの周波数を決定し、決定した周波数を選択させ、システムクロックの周波数を変更させるための制御信号Ｓ１４２を出力する制御回路１４と、多階調のクロック周波数のシステムクロックＳＹＳＣＬＫを生成することが可能で、制御回路１４による制御信号Ｓ１４２により指示されたクロック周波数のシステムクロックＳＹＳＣＬＫを、ＣＰＵ１１、カウンタ１３に供給するクロック供給回路１５とを設けたので、システムのアクティビティ（稼動状態の割合）に応じて、システムに供給するクロックの周波数を自動的に変更することができ、システムの消費電力をアクティビティに応じた最適なものに制御することが可能となる利点がある。
また、１ビットのアクティビティフラグによる稼動状態の指定により、システムの構成要素、制御回路ともに汎用性が高い。
また、専用のハードウェアによる制御のため、システムの負荷が増加することがない。
【００５２】
第２実施形態
図７は、本発明に係る周波数制御回路を適用した電子回路システムの第２の実施形態を示すブロック図である。
【００５３】
本第２の実施形態が上述した第１の実施形態と異なる点は、クロック周波数を制御する対象となるターゲット回路がＣＰＵ１１のみに限らず、複数の周辺回路１６−１，・・・を含むことにある。
【００５４】
実際の電子回路システムでは、このように、クロック周波数を制御する対象となるターゲット回路がＣＰＵ１１のみに限らず、複数の周辺回路１６−１，・・・を含む場合が多く、ＣＰＵ１１と周辺回路１６−１，・・・が同時に稼動状態である場合もあれば、ＣＰＵ１１が稼動状態で周辺回路１６−１が待機状態の場合もある。
また逆に、ＣＰＵ１１が待機状態で、周辺回路１６−１が稼動状態の場合もある。
【００５５】
本第２の実施形態によれば、このようなシステム１０Ａにおいて、システム全体の稼動状態を把握するためには、ＣＰＵ１１に加えて周辺回路１６−１，・・・もアクティビティフラグを示す。すなわち、周辺回路１６−１，・・・もアクティビティフラグレジスタ１６１を含み、レジスタ１６１の内容で稼働状態を示す。
【００５６】
本第２の実施形態では、これらＣＰＵ１１および周辺回路１６−１，・・・による複数のアクティビティフラグＡＣＦＬＧの論理和がＯＲゲート１７においてとられ、その結果が信号Ｓ１７としてカウント１３に出力される。
そして、カウンタ１３は、これら複数のアクティビティフラグの論理和をシステム全体の稼動状態を示すアクティビティフラグとみなすことにより、システム全体のアクティビティを計測することができる。
【００５７】
本第２の実施形態によれば、周辺回路の数によらず所望の制御を行うことができる。
また、システムの各構成回路は１ビットのアクティビティフラグを出力するだけでよく、従来の回路から容易な修正で実現が可能である。
【００５８】
また、本第２の実施形態によれば、ＣＰＵ１１および周辺回路１６−１，・・・のアクティビティフラグの論理和を算出する機能を追加するだけで、構成要素の数や種類によらず、同一の制御方法を採用することができ、汎用性が高いという利点がある。
【００５９】
第３実施形態
図８は、本発明に係る周波数制御回路を適用した電子回路システムの第３の実施形態を示すブロック図である。
【００６０】
本第３の実施形態が上述した第１の実施形態と異なる点は、クロック周波数の制御に加えて、電源電圧を制御する構成を加えた点にある。
【００６１】
本第３の実施形態に係る回路システム１０Ｂは、多階調の電源電圧を供給することが可能で、制御回路１４Ｂの制御信号（第２の制御信号）Ｓ１４２Ｂに応じた値の電源電圧をＣＰＵ１１等に供給する電源電圧供給回路１８を有している。
【００６２】
このシステム１０Ｂにおいて、システムクロックＳＹＳＣＬＫの周波数が下げられた場合、システムの動作を保証する範囲内で電源電圧を下げる（低くする）ことが可能となる。
システムの消費電力はシステムクロックの周波数に比例し、電源電圧の２乗に比例するため、更なる消費電力の削減ができる。
【００６３】
図５の回路システム１０Ｂにおいては、制御回路１４Ｂによる制御信号Ｓ１４２Ｂ（第１の制御信号）の指示に従いクロック供給回路１５から供給されるシステムクロックＳＴＳＣＬＫの周波数が変更され、あるいはそのままに保持される。
このとき、制御回路１４Ｂは、クロック供給回路１５に指示した周波数においてシステムの動作が保証される最低の電源電圧ＶDDを供給するように電源電圧供給回路１８に指示する。
電源電圧供給回路１８は、制御回路１４Ｂの制御信号（第２の制御信号）Ｓ１４２Ｂの指示に従い、システムに供給する電源電圧ＶDDを変動させ、あるいはそのままに保持させる。
【００６４】
本第３の実施形態によれば、上述した第１の実施形態の効果に加えて、より効率的な低消費電力化が実現できる利点がある。
【００６５】
なお、本第３の実施形態に係るクロック周波数クロック周波数の制御に加えて、電源電圧を制御する構成は、図７に関連付けて説明した第２の実施形態に係るシステムに適用することも可能である。
【００６６】
【発明の効果】
以上説明したように、本発明によれば、システムの稼動状態の割合を算出することにより、より効率的な低消費電力化を実現できる。
また、１ビットのアクティビティフラグによる稼動状態の指定により、システムの構成要素、制御回路ともに汎用性がある。
さらに、専用のハードウェアによる制御のため、システムの負荷の増加を防止できる利点がある。
また、本発明によれば、電源電圧制御を加えることにより効率的な低消費電力化を実現できる。
【図面の簡単な説明】
【図１】本発明に係る周波数制御回路を適用した電子回路システムの第１の実施形態を示すブロック図である。
【図２】本実施形態に係るタイマの具体的な構成例を示す図である。
【図３】本実施形態に係るカウンタの構成例を示す図である。
【図４】本実施形態に係るカウンタの動作を説明するためのタイミングチャートである。
【図５】本実施形態に係るクロック供給回路の具体的な構成例を示す図である。
【図６】本実施形態に係るアクティビティに基づき次に設定するシステムクロックの周波数を決定する動作を説明するためのフローチャートである。
【図７】本発明に係る周波数制御回路を適用した電子回路システムの第２の実施形態を示すブロック図である。
【図８】本発明に係る周波数制御回路を適用した電子回路システムの第３の実施形態を示すブロック図である。
【符号の説明】
１０，１０Ａ，１０Ｂ…電子回路システム、１１…ＣＰＵ、１２…タイマ、１２１…カウンタ、１２２…コンペアレジスタ、１２３…コンパレータ、１３…カウンタ、１４…制御回路、１５…クロック供給回路、１５１…位相同期回路（ＰＬＬ回路）、１５２…分周器、１５３…セレクタ、１６−１〜…周辺回路、１７…ＯＲゲート、１８…電源電圧供給回路。
【図１】
0004061888.tif 000002
【図２】
0004061888.tif 000003
【図３】
0004061888.tif 000004
【図４】
0004061888.tif 000005
【図５】
0004061888.tif 000006
【図６】
0004061888.tif 000007
【図７】
0004061888.tif 000008
【図８】
0004061888.tif 000009