(57)【要約】【課題】従来技術のクロック発生回路は、クロックの周波数の切り替え時において、電流変動を抑制することができないという問題があった。【解決手段】本発明にかかるクロック発生回路は、第１の周波数を有するクロック信号を第１の周波数よりも周波数が高い第２の周波数に切り替え可能なクロック発生部と、クロック信号のクロックパルスを所定の間引き率でマスクする間欠クロック生成部と、を有する。そして、間欠クロック生成部は、クロック信号の周波数が第１の周波数から第２の周波数に切り替わる場合に、第２の周波数に切り替わる時点から所定の期間、第２の周波数を有するクロック信号のクロックパルスを所定の間引き率でマスクすることを特徴とする。【選択図】図１
2011223179.tif 000002
【特許請求の範囲】
【請求項１】
第１の周波数を有するクロック信号を前記第１の周波数よりも周波数が高い第２の周波数に切り替え可能なクロック発生部と、
前記クロック信号のクロックパルスを所定の間引き率でマスクする間欠クロック生成部と、を有し、
前記間欠クロック生成部は、前記クロック信号の周波数が前記第１の周波数から前記第２の周波数に切り替わる場合に、前記第２の周波数に切り替わる時点から所定の期間、前記第２の周波数を有する前記クロック信号のクロックパルスを前記所定の間引き率でマスクすることを特徴とするクロック発生回路。
【請求項２】
前記間欠クロック生成部は、
前記所定の間引き率および前記所定の期間を外部から設定可能な記憶部を備えた請求項１に記載のクロック発生回路。
【請求項３】
前記記憶部は複数の間引き率をさらに記憶し、
前記間欠クロック生成部は、前記クロック信号の周波数が前記第１の周波数から前記第２の周波数に切り替わる場合に、前記所定の間引き率を前記複数の間引き率に基づいて段階的に切り替えて前記クロック信号のクロックパルスをマスクすることを特徴とする請求項２に記載のクロック発生回路。
【請求項４】
前記間欠クロック生成部は、
前記所定の間引き率に対応するパルス信号に基づいて前記クロック信号のクロックパルスをそれぞれマスクする、複数のゲート回路を備えた請求項１〜３のいずれか一項に記載のクロック発生回路。
【請求項５】
前記複数のゲート回路は、
前記パルス信号に基づいて、それぞれ異なるタイミングで前記クロック信号のクロックパルスをマスクすることを特徴とする請求項４に記載のクロック発生回路。
【請求項６】
第１の周波数を有するクロック信号を前記第１の周波数よりも周波数が高い第２の周波数に切り替え可能なクロック発生部と、前記クロック信号のクロックパルスを所定の間引き率でマスクする間欠クロック生成部と、を有するクロック発生回路の制御方法であって、
前記クロック信号の周波数が前記第１の周波数から前記第２の周波数に切り替わる場合に、前記第２の周波数に切り替わる時点から所定の期間、前記第２の周波数を有する前記クロック信号のクロックパルスを前記所定の間引き率でマスクするクロック発生回路の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロック発生回路及びその制御方法に関する。
【背景技術】
【０００２】
従来、システムの省電力化のために、クロック要求を発するモジュールにのみクロック信号を供給し、クロック供給を必要としないモジュールに対してはクロック信号の供給を停止する構成が知られている。また、パワーマネジメント機能として、システム処理の負荷等に応じてクロック信号の周波数を高くしたり低くしたりして消費電力を適切に制御する方式も知られている。
【０００３】
特許文献１には、消費電力の削減を目的として、クロックの周波数を必要に応じて段階的に切り替える技術（以下、クロックギアと称す）が開示されている。クロックギアは、一般的に、ゲーテッドクロックバッファを用い、プロセッサ内の一番早いクロックに対応したマスク用同期信号に基づいて、クロック信号をマスクする。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００３−５８２７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、従来技術では、図９に示すように、クロック信号の周波数の切り替え時において、急激な電流変動が生じ、その影響によりＩＲＤｒｏｐやノイズ等が発生するという問題がある。
【０００６】
なお、特許文献１に開示された技術の場合も、消費電力の削減を目的として、クロックをある周波数から要求された周波数に切り替える技術にすぎない。したがって、特許文献１に開示された技術の場合も、クロックの周波数の切り替え時において、急激な電流変動が生じ、その影響によりＩＲＤｒｏｐやノイズ等が発生するという問題がある。
【課題を解決するための手段】
【０００７】
本発明にかかるクロック発生回路は、第１の周波数を有するクロック信号を前記第１の周波数よりも周波数が高い第２の周波数に切り替え可能なクロック発生部と、前記クロック信号のクロックパルスを所定の間引き率でマスクする間欠クロック生成部と、を有し、前記間欠クロック生成部は、前記クロック信号の周波数が前記第１の周波数から前記第２の周波数に切り替わる場合に、前記第２の周波数に切り替わる時点から所定の期間、前記第２の周波数を有する前記クロック信号のクロックパルスを前記所定の間引き率でマスクすることを特徴とする。
【０００８】
本発明にかかるクロック発生回路の制御方法は、第１の周波数を有するクロック信号を前記第１の周波数よりも周波数が高い第２の周波数に切り替え可能なクロック発生部と、前記クロック信号のクロックパルスを所定の間引き率でマスクする間欠クロック生成部と、を有するクロック発生回路の制御方法であって、前記クロック信号の周波数が前記第１の周波数から前記第２の周波数に切り替わる場合に、前記第２の周波数に切り替わる時点から所定の期間、前記第２の周波数を有する前記クロック信号のクロックパルスを前記所定の間引き率でマスクすることを特徴とする。
【０００９】
上述のような回路構成及び制御方法により、クロック信号の周波数の切り替え時において、電流変動を抑制することができる。
【発明の効果】
【００１０】
本発明により、クロック信号の周波数の切り替え時において、電流変動を抑制することが可能なクロック発生回路及びその制御方法を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態１にかかるクロック供給部を備えたコンピュータシステムの全体構成を示す図である。
【図２】条件設定レジスタの設定例を示す図である。
【図３】ＤＲＡＭの動作タイミングを示すタイミングチャートである。
【図４】バス動作率とクロック周波数との関係を表すタイミングチャートである。
【図５】本発明の実施の形態１にかかるパルス信号生成部を示すブロック図である。
【図６】本発明の実施の形態１にかかるクロック供給部の動作を示すフローチャートである。
【図７Ａ】本発明の実施の形態１にかかるクロック供給部の動作を示すタイミングチャートである。
【図７Ｂ】本発明の実施の形態１にかかるクロック供給部の動作を示すタイミングチャートである。
【図８】本発明の実施の形態２にかかるクロック供給部の動作を示すタイミングチャートである。
【図９】クロック信号の周波数の切り替え時における、電流及び電圧の変化を示すタイミングチャートである。
【発明を実施するための形態】
【００１２】
以下、図面を参照しつつ、本発明の実施の形態について説明する。なお、図面は簡略的なものであるから、この図面の記載を根拠として本発明の技術的範囲を狭く解釈してはならない。また、同一の要素には、同一の符号を付し、重複する説明は省略するものとする。
【００１３】
実施の形態１
本発明の実施の形態１にかかるクロック発生回路について説明する。図１は、コンピュータシステム１００の全体構成を示す図である。コンピュータシステム１００は、動作実行部１１０と、クロック供給部（クロック発生回路）２００と、を備える。
【００１４】
動作実行部１１０は、中央処理装置（ＣＰＵ）１１１、デジタルシグナルプロセッサ（ＤＳＰ）１１２、ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）１１３、グラフィックディスプレイコントローラ（ＧＤＣ）１１４、および、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）１１５、これらを繋ぐバス１１６を備えている。
【００１５】
動作実行部１１０に搭載されているモジュール（１１１〜１１５）は、クロックに同期して動作する。そのため、各モジュール（１１１〜１１５）は、動作中の場合、クロック要求信号Ｃｌｋｒｅｑを立ち上げ、動作停止中の場合、クロック要求信号Ｃｌｋｒｅｑを立ち下げる。なお、本明細書および図面では上記の他のモジュールについては特に言及しないが、必要に応じてその他のモジュールを搭載していることはもちろんである。
【００１６】
クロック供給部２００は、動作実行部１１０にクロックを供給する部である。クロック供給部２００は、クロック出力部２１０と、クロック分配部２２０と、ゲート部２３０と、クロック切替制御部２４０と、パルス信号生成部２５０と、を備える。
【００１７】
なお、クロック出力部２１０と、クロック分配部２２０と、クロック切替制御部２４０と、によりクロック発生部を構成する。また、パルス信号生成部２５０と、ゲート部２３０と、により間欠クロック生成部を構成する。クロック発生部は、外部からの要求に応じてクロック信号の周波数を切り替えて出力する部である。また、間欠クロック生成部は、クロック発生部から出力されたクロック信号のクロックパルスを所定の間引き率でマスクする部である。特に、間欠クロック生成部は、クロック信号の周波数がある周波数（第１の周波数）から当該周波数より高い周波数（第２の周波数）に切り替わる場合に、周波数切替時から所定の期間（間引き期間）、周波数切替後のクロック信号のクロックパルスを所定の間引き率でマスクすることを特徴とする。
【００１８】
クロック出力部２１０は、後述するクロック切替制御部２４０からの切替制御信号に基づいて、クロック信号の周波数を切り替えて出力する部である。クロック出力部２１０は、外部から供給される基本クロックを逓倍して高速クロックを生成するＰＬＬ  ２１１と、ＰＬＬ  ２１１からの高速クロックを所定の分周率で分周する分周部２１２と、ＰＬＬ  ２１１からのクロックと分周部２１２からのクロックとを切り替えて出力する切替部２１５と、を備える。また、分周部２１２は、ＰＬＬ  ２１１からの高速クロックを最低速の１６分周にする１６分周部２１３と、中速の２分周にする２分周部２１４と、を備える。切替部２１５は、ＰＬＬ  ２１１からの高速クロックと分周部２１２からの低速クロックとを切り替えて出力する。切替部２１５の切り替え制御は、クロック切替制御部２４０からの制御信号によって行われる。
【００１９】
クロック分配部２２０には、クロック出力部２１０から出力されたクロック信号が入力される。そして、クロック分配部２２０は、入力されたクロック信号に同期して、各モジュール（１１１〜１１５）に分配するための複数のクロック信号を生成し、出力する。
【００２０】
ゲート部２３０は、後述するパルス信号生成部２５０からのパルス信号に基づいて、各モジュール（１１１〜１１５）に対して供給するクロック信号のクロックパルスをマスクする（間引く）部である。ゲート部２３０は、例えば、複数のアンド回路（ゲート回路）によって構成されている。この複数のアンド回路は、各モジュール（１１１〜１１５）に対応して設けられている。各アンド回路の一方の入力端子には、パルス信号生成部２５０によって生成された対応するパルス信号が入力される（詳細は後述）。各アンド回路の他方の入力端子には、クロック分配部２２０から出力されたクロック信号が入力される。なお、後述するが、パルス信号生成部２５０によって生成されたパルス信号は、各モジュール（１１１〜１１５）から出力されたクロック要求信号Ｃｌｋｒｅｑに基づいても変化する。そのため、クロック要求信号をＨレベルに立ち上げているモジュール（１１１〜１１５）に対してのみクロック信号が供給される。
【００２１】
次に、クロック切替制御部２４０について説明する。クロック切替制御部２４０は、クロック要求（例えば、クロック要求信号Ｃｌｋｒｅｑ）に基づいて、クロック信号を制御するための切替制御信号を生成し、クロック出力部２１０及びパルス信号生成部２５０に対して出力する部である。クロック切替制御部２４０は、クロック要求パターン判定部２４１と、ＦＩＦＯバッファ残量判定部２４２と、バス動作率判定部２４３と、ポーリング状態判定部２４４と、を備えている。
【００２２】
クロック要求パターン判定部２４１には、各モジュール（１１１〜１１５）からのクロック要求信号Ｃｌｋｒｅｑが入力される。クロック要求パターン判定部２４１は、各モジュール（１１１〜１１５）からのクロック要求の有無を監視し、クロック要求の有無のパターンを予め設定された条件パターンに対比する。
【００２３】
ここで、クロック要求パターン判定部２４１には、条件設定レジスタ２４１Ａが付設されている。条件設定レジスタ２４１Ａには、予め複数のモジュール（１１１〜１１５）の識別符号が登録されており、監視対象とするモジュールを選択設定できるようになっている。
【００２４】
図２は、条件設定レジスタ２４１Ａの設定例を示す図である。条件設定レジスタ２４１Ａには、モジュール名が登録されており、監視フラグを"０"と"１"とで任意に設定可能である。例えば図２に示した例では、監視フラグは初期値として"０"に設定され、監視フラグが"０"である場合にはそのモジュールは監視対象とし、監視フラグを"１"にすることでそのモジュールを監視対象外に選択設定することができる。そして、監視対象（監視フラグを"０"）とした総てのモジュールからのクロック要求信号がＬレベルになった場合、クロック要求パターン判定部２４１は、条件を満たしていると判定し、クロック周波数を１６分周に下げる制御信号を出力する。
【００２５】
ＦＩＦＯバッファ残量判定部２４２は、データを先頭から順番に処理していくＦＩＦＯタイプのモジュールのＦＩＦＯバッファの残量を監視する。ＦＩＦＯバッファ残量判定部２４２には、閾値が設定されており、ＦＩＦＯバッファの残量値が前記閾値を上回った場合には、ＦＩＦＯバッファ残量値が安全圏であると判定し、クロック周波数を１６分周に下げる制御信号を出力する。なお、ＦＩＦＯタイプのモジュールとしては、グラフィックディスプレイコントローラ（ＧＤＣ）１１４が例として挙げられる。グラフィックディスプレイコントローラ（ＧＤＣ）１１４からのクロック要求信号Ｃｌｋｒｅｑは、クロック要求パターン判定部２４１には入力されず、その代わりに、ＦＩＦＯバッファ残量値がＦＩＦＯバッファ残量判定部２４２によって監視される。
【００２６】
そして、クロック要求パターン判定部２４１による判定とＦＩＦＯバッファ残量判定部２４２による判定とはさらにアンド回路２４５によるアンド条件で判定され、両方の条件が満たれた場合には、クロック出力部２１０に対して最低速の１６分周のクロックを出力させる切替制御信号が与えられる。クロック出力部２１０は、この切替制御信号を受けると、分周部２１２によって１６分周のクロックを生成する。さらに、切替部２１５は、分周部２１２からの１６分周クロックを出力するように切替動作を行う。
【００２７】
バス動作率判定部２４３は、バス１１６の動作率をモニタし、単位時間あたりのバス１１６の動作率に基づいてクロック周波数のアップ、維持、ダウンを制御する。バス動作率判定部２４３には、バス１１６のアドレスバスおよびデータバスのアクティブを検出するための信号が入力される。そして、バス動作率判定部２４３は、バス動作率を、単位時間当たりのＤＲＡＭ  １１５のアクティブ時間によって見積もる。
【００２８】
図３は、ＤＲＡＭ  １１５の動作タイミングを示すタイミングチャートである。図３に示されるように、読出し開始アドレスの入力に応じ、クロックに同期してデータが出力される。ＤＲＡＭ  １１５のアクティブ時間としては、プロトコルの開始であるアドレス入力からプロトコルの終了であるデータの最後までの時間とする。また、このアクティブ時間が単位時間内に占める割合をバス動作率とする。
【００２９】
バス動作率判定部２４３には、上限閾値と下限閾値とが設定されており、バス動作率を上限閾値および下限閾値に対比して、クロック周波数の増減を判定する。図４は、バス動作率とクロック周波数との関係を表すタイミングチャートである。アクティブ率が下限閾値を下回ったときは、クロック出力部２１０に対してクロック周波数を２分周にする切替制御信号を出す。また、アクティブ率が上限閾値を上回ったときは、クロック周波数を１分周にする、すなわち、クロック周波数を最高速にする切替制御信号を出す。
【００３０】
ポーリング状態判定部２４４は、バス１１６のアドレスバスを監視して、ポーリング状態にあるモジュールを検出し、予め設定した条件と対比してクロック周波数の増減を制御する。ポーリング状態判定部２４４は、アドレスバスからのアドレス信号を監視して、同じアドレスが所定回数（例えば３回）連続で出力されていた場合には、そのモジュールがポーリングに入ったと判定する。
【００３１】
ここで、ポーリングの監視対象をＣＰＵ  １１１とＤＳＰ  １１２とした場合を例に説明する。ＣＰＵ  １１１とＤＳＰ  １１２との両方がポーリングに入ったことを判定した場合には、ポーリング状態判定部２４４はクロック周波数を２分周に下げる制御信号をクロック出力部２１０に与える。また、ＣＰＵ  １１１とＤＳＰ  １１２とのいずれかがポーリングに入った場合に、他方が待機状態にあるか否かを見て、他方が待機状態に入っていればクロック周波数を２分周に下げる制御信号をクロック出力部２１０に与える。なお、ＣＰＵ  １１１とＤＳＰ  １１２のいずれかがポーリングに入った場合でも、他方が待機状態になく稼働している場合には、クロック周波数を高速の周波数に復帰させる。
【００３２】
次に、パルス信号生成部２５０について説明する。図５は、パルス信号生成部２５０のブロック図である。パルス信号生成部２５０は、クロック要求信号Ｃｌｋｒｅｑと切替制御信号とに基づいて、各モジュール（１１１〜１１５）に対して供給するクロック信号のクロックパルスをマスクする（間引く）ための、パルス信号を生成する部である。パルス信号生成部２５０は、クロック信号の周波数がある周波数（第１の周波数）から当該周波数より高い周波数（第２の周波数）に切り替わる場合に、周波数切替時から所定の期間（間引き期間）、所定の間引き率に応じたパルス信号を生成することを特徴とする。それにより、後段のゲート部２３０は、当該パルス信号に基づいて周波数切替後のクロック信号のクロックパルスを所定の間引き率でマスクすることができる。なお、間引き率とは、クロック信号を形成するクロックパルスをマスクする割合のことである。
【００３３】
パルス信号生成部２５０は、間引き制御信号生成部２５１と、ゲート部２５２と、を備えている。また、間引き制御信号生成部２５１は、インターバルタイムカウント部２５６及び間引き率演算部２５７を有する間引き率制御部２５３と、パラメータ格納部（記憶部）２５４と、間引き制御信号出力部２５５と、を備えている。
【００３４】
間引き制御信号生成部２５１は、クロック切替制御部２４０から出力された切替制御信号に基づいて、各モジュール（１１１〜１１５）に対して供給するクロック信号のクロックパルスをマスクするための、間引き制御信号を生成する部である。
【００３５】
間引き制御信号生成部２５１には、外部から与えられたパラメータ情報と、クロック切替制御部２４０から出力された切替制御信号と、クロック出力部２１０から出力されたクロック信号と、が入力される。また、間引き制御信号生成部２５１は、各モジュール（１１１〜１１５）に対応する複数の間引き制御信号を生成する。以下、間引き制御信号生成部２５１について、さらに具体的に説明する。
【００３６】
パラメータ格納部２５４は、レジスタ回路によって構成され、外部から与えられたパラメータ情報を格納する。このパラメータ情報により、切替前後のクロック周波数に応じたクロック信号の間引き期間及び間引き率等が設定される。このパラメータ情報は、間引き率制御部２５３に与えられる。
【００３７】
間引き率制御部２５３は、クロック切替制御部２４０から出力された切替制御信号に基づいて、周波数切替後のクロック信号の間引き期間及び間引き率等を制御する部である。なお、切替制御信号には、切替前後のクロック周波数の情報が含まれる。また、上述のように、切替前後のクロック周波数に応じたクロック信号の間引き期間及び間引き率等は、パラメータ情報によって予め設定されている。
【００３８】
間引き率制御部２５３において、インターバルタイムカウント部２５６は、クロック信号に同期してカウント動作を行い、切替制御信号に基づく間引き期間をカウントする。また、間引き率演算部２５７は、所定の演算処理を行い、切替制御信号に基づく間引き率の情報を生成する。さらに、間引き率制御部２５３は、間引き期間中において段階的にクロック信号の間引き率を変更する場合、その段数、段階ごとの間引き期間、及び段階ごとの間引き率の情報を生成する。インターバルタイムカウント部２５６のカウント値（間引き期間の情報）と、間引き率演算部２５７から出力された間引き率の情報と、を含むこれらの情報は、間引き制御信号出力部２５５に与えられる。
【００３９】
そして、間引き制御信号出力部２５５は、間引き率制御部２５３から与えられた情報に基づいて、各モジュール（１１１〜１１５）に対応する複数の間引き制御信号を生成する。なお、間引き制御信号は、クロック信号のクロックパルスをマスクするために用いられるため、当該クロック信号に応じた周波数を有する必要がある。したがって、間引き制御信号は、クロック信号に基づいて波形形成される。間引き制御信号出力部２５５は、間引き期間中以外、つまりクロック信号の周波数が一定の場合、Ｈレベルの間引き制御信号を出力する。一方、間引き制御信号出力部２５５は、間引き期間中、つまりクロック信号の周波数切替時から所定の期間、間引き率制御部２５３からの情報に応じた周波数の間引き制御信号を出力する。
【００４０】
次に、ゲート部２５２は、各モジュール（１１１〜１１５）から出力されたクロック要求信号Ｃｌｋｒｅｑと、対応する間引き制御信号と、をアンド条件で判定し、それぞれパルス信号として出力する部である。
【００４１】
ゲート部２５２は、例えば、複数のアンド回路によって構成されている。この複数のアンド回路は、各モジュール（１１１〜１１５）に対応して設けられている。各アンド回路の一方の入力端子には、各モジュール（１１１〜１１５）から出力されたクロック要求信号Ｃｌｋｒｅｑが入力される。各アンド回路の他方の入力端子には、間引き制御信号生成部２５１によって生成された対応する間引き制御信号が入力される。そして、各アンド回路は、各モジュール（１１１〜１１５）から出力されたクロック要求信号Ｃｌｋｒｅｑと、対応する間引き制御信号と、をアンド条件で判定し、その結果をそれぞれ出力する。ゲート部２５２は、クロック要求信号ＣｌｋｒｅｑがＨレベルの場合において、クロック信号の周波数が切り替わった場合、周波数切替時から設定された間引き期間中、対応する間引き制御信号をパルス信号として出力する。これらのパルス信号は、ゲート部２３０に入力される。それにより、ゲート部２３０は、設定された間引き期間中、設定された間引き率でクロック信号のクロックパルスをマスクすることができる。
【００４２】
このような構成を備えるクロック発生回路の動作を説明する。図６は、クロック供給部２００によるクロック周波数制御方法の動作手順を示すフローチャートである。まず、最初、クロック出力部２１０からは最高速周波数（すなわちＰＬＬからの１分周）のクロックが出力されるものとする。
【００４３】
そして、ＳＴ１００において、クロック要求判定工程を行う。これは、クロック要求パターン判定部２４１において、各モジュール（１１１〜１１５）からのクロック要求の有無を条件設定レジスタ２４１Ａに設定された条件に対比し、監視対象とするモジュールからのクロック要求信号がすべてＬレベルになっているかどうかを判定する。監視対象となっているモジュールからのクロック要求信号がすべてＬレベルになっている場合（ＳＴ１０１：ＹＥＳ）、次に、ＦＩＦＯバッファ残量判定部２４２によるＦＩＦＯバッファ残量判定工程（ＳＴ１０２）を行う。
【００４４】
ＦＩＦＯバッファ残量判定工程（ＳＴ１０２）では、監視対象とするＦＩＦＯタイプのモジュール（例えばＧＤＣ）のＦＩＦＯバッファ残量を安全圏閾値と対比する。そして、ＦＩＦＯバッファ残量が安全圏閾値以上である場合には（ＳＴ１０３：ＹＥＳ）、監視対象のモジュールのクロック要求信号がすべてＬレベルであり、かつ、ＦＩＦＯバッファ残量が安全圏であるので、クロック出力部２１０に対してクロック周波数を最低速の１６分周にする制御信号を与える（ＳＴ１０９）。
【００４５】
ＳＴ１０９でクロック周波数を最低速の１６分周にした後、ＳＴ１００にもどってループを繰り返し、クロック要求判定工程（ＳＴ１００）およびＦＩＦＯバッファ残量判定工程（ＳＴ１０２）での条件を満たす場合には（ＳＴ１０１およびＳＴ１０３：ＹＥＳ）、最低速の１６分周クロックを供給し続けることになる。
【００４６】
ここで、クロック要求判定工程（ＳＴ１００）またはＦＩＦＯバッファ残量判定工程（ＳＴ１０２）で所定の条件を満たさなかった場合（ＳＴ１０１またはＳＴ１０３：ＮＯ）、クロック周波数を上げる必要がある。そこで、バス動作率判定部２４３によるバス動作率判定工程（ＳＴ１０４）の実行に移行する。
【００４７】
バス動作率判定工程（ＳＴ１０４）では、単位時間あたりにおけるＤＲＡＭ  １１５のアクティブ時間からバス動作率を計測し、バス動作率を閾値（下限閾値、上限閾値）に対比する。そして、バス動作率が下限閾値以下である場合には、クロック出力部２１０に対してクロック周波数を２分周にする制御信号を与える（ＳＴ１１０）。これは、クロック要求判定工程（ＳＴ１００）またはＦＩＦＯバッファ残量判定工程（ＳＴ１０２）で所定の条件を満たさないが（ＳＴ１０１およびＳＴ１０３：ＮＯ）、バス１１６に流れるデータ量からみてシステム１００の負荷は中程度であると判断できるため、中程度の周波数速度として２分周にするものである。これにより、無駄に高速動作を行うことなく、必要なタスクの処理は十分に継続したままで無駄な電力は削減する。
【００４８】
その一方、バス動作率が、上限閾値以上である場合には、クロック出力部２１０に対してクロック周波数を１分周にする制御信号を与える（ＳＴ１１１）。すなわち、クロック周波数を最高速にする。例えば、クロック周波数が最低速の１６分周であったり、中速度の２分周であると、各モジュールのタスク処理の流れが滞り、多くのモジュールがＤＲＡＭ  １１５に間断なくアクセスするようになるため、バス動作率が高くなる。そこで、バス動作率が上限閾値以上になった場合には、クロック周波数を最高速にする。このようにシステム１００の負荷が高い場合にはクロック周波数を高速にすることにより、必要な処理を必要なタイミングで迅速に動作実行部１１０に実行させることができる。
【００４９】
ここで、バス動作率判定工程（ＳＴ１０４）において、バス動作率が上限閾値と下限閾値の間であった場合（ＳＴ１０５、ＳＴ１０６：ＮＯ）、クロック周波数はそのまま維持した状態で、続いてポーリング判定工程（ＳＴ１０７）を実行する。ポーリング判定工程（ＳＴ１０７）では、アドレスバスからのアドレス信号をみて、同じアドレスを所定回数（例えば３回）連続して出力している監視対象のモジュール（例えばＣＰＵ、ＤＳＰ）があるか否かを判定する。そして、監視対象のモジュールのうちポーリングに入っているものがあれば、その他の監視対象のモジュールがポーリング状態あるいは待機状態にあるかをみる。その他の監視対象のモジュールがポーリングあるいは待機状態にある場合には（ＳＴ１０８：ＹＥＳ）、クロック出力部２１０に対してクロック周波数を２分周にする制御信号を与える（ＳＴ１１０）。ポーリング状態に入っているモジュールがあるということは、システム１００の負荷はそれほど大きくはないと判断できるため、中程度の周波数速度として２分周にするものである。これにより、無駄に高速動作を行うことなく、必要なタスクの処理は十分に継続したままで無駄な電力は削減する。
【００５０】
一方、ポーリングに入っているモジュールがないか、または、他の監視対象のモジュールが処理を実行中である場合（ＳＴ１０８：ＮＯ）、クロック周波数を最高速の１分周に復帰させる。
【００５１】
そして、終了条件（ＳＴ１１２）を満たすまでＳＴ１００に戻ってループ状に繰り返す。なお、終了条件としては、システム停止指示が入力された場合などが例として挙げられる。
【００５２】
このように、本実施の形態にかかるクロック供給部２００は、各モジュール（１１１〜１１５）からの要求に応じてクロック信号の周波数を切り替えることにより、消費電力を削減することができる。
【００５３】
次に、クロック切替制御部２４０によるクロック信号の間引き動作を説明する。図７Ａ及び図７Ｂは、クロック切替制御部２４０によるクロック信号の間引き動作を説明するためのタイミングチャートである。なお、図７Ａ及び図７Ｂには、各モジュール（１１１〜１１５）からのクロック要求信号（Ｃｌｋｒｅｑ）、クロック切替制御部２４０からの切替制御信号、クロック出力部２１０からのクロック信号、パルス信号生成部２５０からのパルス信号、及び、ゲート部２３０からのクロック信号のみを示している。また、図７Ａ及び図７Ｂでは、クロック信号が１６分周から２分周に切り替わった場合を例に説明する。また、図７Ａ及び図７Ｂでは、複数のクロック要求信号の信号変化のタイミングが同一、パルス信号生成部２５０から出力される複数のパルス信号の信号変化のタイミングが同一、ゲート部２３０から出力される複数のクロック信号の信号変化のタイミングが同一である場合を例に説明する。そのため、図７Ａ及び図７Ｂには、１つのクロック要求信号、対応する１つのパルス信号、及び対応する１つのクロック信号のみを示している。
【００５４】
まず、時刻ｔ１にて、クロック要求信号がＨレベルに立ち上がる。その後、クロック切替制御部２４０は、図６で示したフローチャートの手順に従い、１６分周用の切替制御信号を出力する。それにより、クロック出力部２１０は、１６分周のクロック信号を出力する。このとき、パルス信号生成部２５０は、Ｈレベルの信号を出力している。したがって、ゲート部２３０は、１６分周のクロック信号を、アンド回路を介してそのまま出力する。
【００５５】
そして、時刻ｔ２にて、クロック切替制御部２４０は、切替制御信号を１６分周用から２分周用に切り替える。それにより、クロック出力部２１０は、２分周のクロック信号を出力する。このとき、パルス信号生成部２５０は、切替前後のクロック周波数に応じた間引き期間（期間Ｔ）中、切替前後のクロック周波数に応じた周波数のパルス信号を生成する。図７Ａ及び図７Ｂの例では、パルス信号生成部２５０は、間引き期間Ｔ中、３段階に分けて、段階ごとに固有の周波数、デューティ比及び位相を有するパルス信号を生成する（期間Ｔ１〜Ｔ３）。それにより、ゲート部２３０は、パルス信号生成部２５０からのパルス信号を用いて、クロック分配部２２０から出力された２分周のクロック信号のクロックパルスをマスクする。図７Ａ及び図７Ｂの例では、ゲート部２３０は、間引き期間Ｔ１中、間引き率７５％でクロック信号のクロックパルスをマスクする。同様に、間引き期間Ｔ２中、間引き率５０％でクロック信号のクロックパルスをマスクする。間引き期間Ｔ３中、間引き率２５％でクロック信号のクロックパルスをマスクする。
【００５６】
そして、時刻ｔ３にて、間引き期間Ｔが終了する（図７Ｂ）。それにより、パルス信号生成部２５０は、再びＨレベルの信号を出力する。したがって、ゲート部２３０は、クロック分配部２２０から出力された２分周のクロック信号を、アンド回路を介してそのまま出力する。
【００５７】
このように、本実施の形態にかかるクロック発生回路は、クロック信号の周波数の切り替え時において、周波数切替時から所定の期間、周波数切替後のクロック信号のクロックパルスを所定の間引き率でマスクすることができる。それにより、本実施の形態にかかるクロック発生回路は、クロック信号の周波数の切り替え時において、急激な電流変動を抑制することができる。
【００５８】
なお、図７Ａ及び図７Ｂでは、間引き期間Ｔにおいて、パルス信号の周波数等を３段階（期間Ｔ１〜Ｔ３）切り替えた場合を例に説明したが、これに限られない。間引き期間Ｔにおいて、パルス信号の周波数等を任意の段階切り替えても良い。また、図７Ａ及び図７Ｂでは、間引き期間Ｔ１〜Ｔ３が互いに同じ時間である場合を例に説明したが、これに限られない。間引き期間Ｔ１〜Ｔ３は、それぞれ異なる時間であっても良い。また、図７Ａ及び図７Ｂでは、間引き期間Ｔ１〜Ｔ３毎の間引き率が、一定の割合で変化（減少）する場合を例に説明したが、これに限られない。例えば、間引き期間Ｔ１における間引き率が９０％、間引き期間Ｔ２における間引き率が５０％、間引き期間Ｔ３における間引き率が４０％、というように間引き率を任意に設定可能である。また、間引き期間Ｔの時間も任意に設定可能である。なお、これらは、外部から与えられるパラメータ情報に基づいて設定される。
【００５９】
実施の形態２
本発明の実施の形態２にかかるクロック発生回路について説明する。本実施の形態にかかるクロック供給部（クロック発生回路）２００は、モジュール（１１１〜１１５）に対して供給する複数のクロック信号をマスクする場合、各クロック信号のクロックパルスを、それぞれ異なるタイミングでマスクすることを特徴とする。なお、その他の回路構成及び動作については、実施の形態１の場合と同様である。
【００６０】
クロック切替制御部２４０によるクロック信号の間引き動作を説明する。図８は、クロック切替制御部２４０によるクロック信号の間引き動作を説明するためのタイミングチャートである。なお、図８には、各モジュール（１１１〜１１５）からのクロック要求信号（Ｃｌｋｒｅｑ）、クロック切替制御部２４０からの切替制御信号、クロック出力部２１０からのクロック信号、パルス信号生成部２５０からのパルス信号、及び、ゲート部２３０からのクロック信号のみを示している。また、図８では、クロック信号が１６分周から２分周に切り替わった場合を例に説明する。また、図８では、複数のクロック要求信号の信号変化のタイミングが同一である場合を例に説明する。そのため、図８には、１つのクロック要求信号のみを示している。また、図８には、パルス信号生成部２５０から出力されるパルス信号として、３つのパルス信号Ａ１〜Ｃ１を示し、ゲート部２３０から出力されるクロック信号として、対応する３つのクロック信号Ａ２〜Ｃ２を示している。
【００６１】
まず、時刻ｔ１にて、クロック要求信号がＨレベルに立ち上がる。その後、クロック切替制御部２４０は、図６で示したフローチャートの手順に従い、１６分周用の切替制御信号を出力する。それにより、クロック出力部２１０は、１６分周のクロック信号を出力する。このとき、パルス信号生成部２５０は、Ｈレベルの信号を出力している。したがって、ゲート部２３０は、１６分周のクロック信号を、アンド回路を介してそのまま出力する。
【００６２】
そして、時刻ｔ２にて、クロック切替制御部２４０は、１６分周用から２分周用に切替制御信号を切り替える。それにより、クロック出力部２１０は、２分周のクロック信号を出力する。このとき、パルス信号生成部２５０は、切替前後のクロック周波数に応じた間引き期間（期間Ｔ４）中、切替前後のクロック周波数に応じた周波数のパルス信号を生成する。それにより、ゲート部２３０は、パルス信号生成部２５０からのパルス信号を用いて、クロック分配部２２０から出力された２分周のクロック信号のクロックパルスをマスクする。図８の例では、ゲート部２３０は、間引き期間Ｔ４中、間引き率７５％でクロック信号のクロックパルスをマスクする。
【００６３】
このとき、パルス信号生成部２５０は、間引き率は同じであるが、それぞれ異なるタイミングのパルス信号Ａ１〜Ｃ１を生成する。それにより、ゲート部２３０は、クロック分配部２２０から出力された２分周のクロック信号を、それぞれ異なるタイミングでマスクし、それぞれクロック信号Ａ２〜Ｃ２として出力する。その後、クロック供給部２００は、例えば、段階的にクロック信号のクロックパルスをマスクし、間引き期間経過後、クロック分配部２２０から出力された２分周のクロック信号をそのまま出力する。
【００６４】
このように、本実施の形態にかかるクロック発生回路は、クロック信号の周波数の切り替え時において、周波数切替時から所定の期間、周波数切替後のクロック信号のクロックパルスを所定の間引き率でマスクすることができる。それにより、本実施の形態にかかるクロック発生回路は、クロック信号の周波数の切り替え時において、急激な電流変動を抑制することができる。さらに、本実施の形態にかかるクロック発生回路は、モジュール（１１１〜１１５）に対して供給する複数のクロック信号のクロックパルスをマスクする場合、各クロック信号のクロックパルスを、それぞれ異なるタイミングでマスクする。それにより、各クロック信号のクロックパルスを同一タイミングでマスクする場合よりも、さらに電流変動を抑制することができる。
【００６５】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。上記実施の形態では、クロック出力部２１０が、ＰＬＬから出力される最高速のクロック信号と、最低速の１６分周のクロック信号と、中速の２分周のクロック信号と、を出力する場合を例示したが、分周部による分周率はもっと細かく複数段階に分けられていてもよい。
【００６６】
また、上記実施の形態では、ゲート部２３０が複数のアンド回路を備えた場合を例に説明したが、これに限られない。アンド回路とラッチ回路とを組み合わせた一般的なクロックゲーティング回路を備えた回路構成にも適宜変更可能である。
【符号の説明】
【００６７】
１００  コンピュータシステム
１１０  動作実行部
１１１  ＣＰＵ
１１２  ＤＳＰ
１１３  ＤＭＡＣ
１１４  ＧＤＣ
１１５  ＤＲＡＭ
１１６  バス
２００  クロック供給部
２１０  クロック出力部
２１２  分周部
２１３  １６分周部
２１４  ２分周部
２１５  切替部
２２０  クロック分配部
２３０  ゲート部
２４０  クロック切替制御部
２４１  クロック要求パターン判定部
２４１Ａ  条件設定レジスタ
２４２  バッファ残量判定部
２４３  バス動作率判定部
２４４  ポーリング状態判定部
２４５  アンド回路
２５０  パルス信号生成部
２５１  間引き制御信号生成部
２５２  ゲート部
２５３  間引き率制御部
２５４  パラメータ格納部
２５５  間引き制御信号出力部
２５６  インターバルタイムカウント部
２５７  間引き率演算部
【図１】
2011223179.tif 000003
【図２】
2011223179.tif 000004
【図３】
2011223179.tif 000005
【図４】
2011223179.tif 000006
【図５】
2011223179.tif 000007
【図６】
2011223179.tif 000008
【図７Ａ】
2011223179.tif 000009
【図７Ｂ】
2011223179.tif 000010
【図８】
2011223179.tif 000011
【図９】
2011223179.tif 000012