(57)【要約】【課題】各モジュールに供給するクロックの周波数を必要に応じて可変調整するクロック供給装置を提供する。【解決手段】異なる周波数のクロックを切り替えて出力するクロック出力部と、クロック出力部からのクロックを各モジュールに分配して供給するクロック分配部と、クロック出力部からのクロックの周波数を切り替えさせるクロック切替制御部と、を備える。クロック切替制御部は、クロック要求パターン判定部を備える。クロック要求パターン判定部は、監視対象モジュールから出力されるクロック要求信号のパターンが予め設定された条件パターンを満たしている場合には、クロック出力部に対してクロック周波数を低速に下げる制御信号を出力する。【選択図】図1
2010072897.tif 000002
【特許請求の範囲】
【請求項１】
複数のモジュールにクロックを供給するクロック供給装置であって、
異なる周波数のクロックを切り替えて出力するクロック出力部と、
前記クロック出力部からのクロックを各モジュールに分配して供給するクロック分配部と、
前記クロック出力部からのクロックの周波数を切り替えさせるクロック切替制御部と、を備え、
前記クロック切替制御部は、
複数のモジュールのうちから監視対象として選択した監視対象モジュールから出力されるクロック要求信号のパターンが予め設定された条件パターンを満たしている場合には、前記クロック出力部に対してクロック周波数を低速に下げる制御信号を出力するクロック要求パターン判定部を備える
ことを特徴とするクロック供給装置。
【請求項２】
請求項1に記載のクロック供給装置において、
前記クロック要求パターン判定部には、
予め複数のモジュールの識別符号が登録されているとともに監視対象とするモジュールを任意に選択登録可能である条件設定レジスタが設けられている
ことを特徴とするクロック供給装置。
【請求項３】
請求項2に記載のクロック供給装置において、
前記クロック要求パターン判定部は、前記条件設定レジスタに選択登録された監視対象モジュールからのクロック要求信号がすべてLレベルになった場合に前記クロック出力部に対してクロック周波数を低速に下げる制御信号を出力する
ことを特徴とするクロック供給装置。
【請求項４】
請求項1から請求項3のいずれかに記載のクロック供給装置において、
前記複数のモジュールにはタスクを先頭から順に処理するFIFOタイプのFIFOモジュールが含まれ、
前記クロック切替制御部は、
FIFOモジュールのバッファ残量に応じて前記クロック出力部にクロック周波数を切り替させるFIFOバッファ残量判定部を備え、
前記FIFOバッファ残量判定部は、前記FIFOモジュールのバッファ残量が予め設定された安全圏閾値以上である場合、前記クロック出力部に対してクロック周波数を低速に下げる制御信号を出力する
ことを特徴とするクロック供給装置。
【請求項５】
請求項4に記載のクロック供給装置において、
前記クロック要求パターン判定部と前記FIFOバッファ残量判定部とからの制御信号はアンド条件で前記クロック出力部に与えられる
ことを特徴とするクロック供給装置。
【請求項６】
請求項4に記載のクロック供給装置において、
FIFOバッファ残量判定部には、さらに危険閾値が予め設定され、
前記FIFOモジュールのバッファ残量が前記危険閾値以下である場合、前記クロック出力部に対してクロック周波数を高速に上げる制御信号を出力する
ことを特徴とするクロック供給装置。
【請求項７】
請求項1から請求項6のいずれかに記載のクロック供給装置において、
前記クロック切替制御部は、
単位時間あたりのバスの動作率に応じて前記クロック出力部にクロック周波数を切り替えさせるバス動作率判定部を備える
ことを特徴とするクロック供給装置。
【請求項８】
請求項7に記載のクロック供給装置において、
前記バス動作率判定部は、前記バス動作率を、単位時間当たりにおけるDRAMのアクティブ時間によって求める
ことを特徴とするクロック供給装置。
【請求項９】
請求項1から請求項8のいずれかに記載のクロック供給装置において、
前記モジュールにはポーリング方式で連携をとるものが含まれ、
前記クロック切替制御部は、
モジュールのポーリング状態を判定して検出した場合に、前記クロック出力部に対してクロック周波数を低速に下げる制御信号を出力するポーリング状態判定部を備える
ことを特徴とするクロック供給装置。
【請求項１０】
請求項9に記載のクロック供給装置において、
前記ポーリング状態判定部は、バスを監視して、同じアドレスに対するアクセスが所定回数連続した場合にモジュールがポーリング状態にあると判定する
ことを特徴とするクロック供給装置。
【請求項１１】
請求項9または請求項10に記載のクロック供給装置において、
前記ポーリング判定部にはポーリングの監視対象が複数設定されており、監視対象モジュールのいずれかがポーリング状態になった場合には他の監視対象の状態を確認し、
他の監視対象が待機状態にある場合に、前記クロック出力部に対してクロック周波数を低速に下げる制御信号を出力する
ことを特徴とするクロック供給装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムの各モジュールに供給するクロックの周波数を必要に応じて可変調整するクロック供給装置に関する。
【背景技術】
【０００２】
従来、システムの省電力化のために、クロック要求を発するモジュールにのみクロックを供給し、クロック供給を必要としないマクロに対してはクロックの供給を停止する構成が知られていた（例えば特許文献1）。
また、パワーマネジメント機能として、システム処理の負荷等に応じて動作クロックの周波数を高くしたり低くしたりして消費電力を適切に制御する方式も知られている（例えば特許文献2）。
【０００３】
【特許文献１】特開2005-250650号公報
【特許文献２】特開平09-237132号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献1のように単純なON／OFF制御では、低負荷の動作時でも無駄に高速のクロックを供給してしまうことによる電力使用の無駄は解決できない。
例えば、負荷は小さくても常時ONでなければならないモジュールも存在するため、このようなマクロでは通常のクロック供給がなされ、常時電力が消費されていくこととなる。
【０００５】
また、特許文献2では、CPUの負荷や発熱、バッテリ残量に応じてクロックの周波数を4段階に設定調整するという概念が開示されている。
システムの負荷に応じてクロック周波数を変えるというアイデアは開示されているが、CPUの負荷状態に応じてクロックの周波数を可変とする方法は具体性を欠いている。
特許文献2では、CPUがI/Oまたはメモリアクセスする度にビジー状態を示すフラグを立て、このフラグをカウントすることによりCPUのアイドル状態の回数を認識して、CPUの負荷状態を検出するとする（段落００１７）。
しかしながら、CPUの動作だけを見てシステム全体の負荷を見積もることには制御の粒度があまりにも粗く、システムを構成する他の多くのモジュールを考慮しないため、システム全体からみたときに無駄に高速のクロックを供給してしまったり、あるいは高速動作が必要なモジュールが他にあるにも関わらずクロック周波数が下げられてしまうなどの不都合が避けられない。
また、CPUがアイドル中であったとしても一定周期でポーリングを実行するため、I/Oやメモリアクセスは常にあるのであり、I/O回数やメモリアクセス回数をカウントしてもCPUの負荷やシステム全体の負荷を高い精度で見積もることは現実にはできないという問題がある。
そのため、実際に特許文献2の発明をコンピュータシステムに適用するにはなお多大な困難がある。
【課題を解決するための手段】
【０００６】
本発明のクロック供給装置は、複数のモジュールにクロックを供給するクロック供給装置であって、異なる周波数のクロックを切り替えて出力するクロック出力部と、前記クロック出力部からのクロックを各モジュールに分配して供給するクロック分配部と、前記クロック出力部からのクロックの周波数を切り替えさせるクロック切替制御部と、を備え、前記クロック切替制御部は、複数のモジュールのうちから監視対象として選択した監視対象モジュールから出力されるクロック要求信号のパターンが予め設定された条件パターンを満たしている場合には、前記クロック出力部に対してクロック周波数を低速に下げる制御信号を出力するクロック要求パターン判定部を備えることを特徴とする。
【発明の効果】
【０００７】
本発明によれば、システムの負荷量を判定するのに適したモジュールを選定し、これらのモジュールからのクロック要求が所定条件を満たした場合に（例えば選択したモジュールからのクロック要求がすべてLレベルになったところで）、クロック周波数を低速にする。
これにより、システムの負荷を高い精度で見積もることができる。その結果、必要なタスクは的確に実行し、かつ、電力オーバーヘッドをなくし、消費電力を削減することができる。
【発明を実施するための最良の形態】
【０００８】
本発明の実施の形態を図示するとともに図中の各要素に付した符号を参照して説明する。
（第1実施形態）
本発明のクロック供給装置に係る第1実施形態について説明する。
図1は、コンピュータシステム100の全体構成を示す図である。
コンピュータシステム100は、動作実行部110と、クロック供給部（クロック供給装置）200と、を備える。
【０００９】
動作実行部110は、中央処理装置（CPU）111、デジタルシグナルプロセッサ（DSP）112、ダイレクトメモリアクセスコントローラ（DMAC）113、グラフィックディスプレイコントローラ（GDC）114、および、ダイナミックランダムアクセスメモリ（DRAM）115、これらを繋ぐバス116を備えている。
動作実行部110に搭載されているモジュール（111~115）の動作には、動作周期を与えるクロックが必要であるので、各モジュール（111〜115）は、動作中はクロック要求信号（Clkreq）を立ち上げ、動作が停止中はクロック要求信号を立ち下げる。
なお、本明細書および図面では上記の他のモジュールについては特に言及しないが、必要に応じてその他のモジュールを搭載していることはもちろんである。
【００１０】
クロック供給部200は、動作実行部110にクロックを供給する。
クロック供給部200は、クロック出力部210と、クロック分配部220と、ゲート部230と、クロック切替制御部240と、を備える。
【００１１】
クロック出力部210は、外部から供給される基本クロックを逓倍して高速クロックを生成するPLL 211と、PLL 211からの高速クロックを所定の分周率で分周する分周部212と、PLL 211からのクロックと分周部212からのクロックとを切り替えて出力する切替部215と、を備える。
分周部212は、PLL 211からの高速クロックを最低速の16分周にする16分周部213と、中速の2分周にする2分周部214と、を備える。
切替部215は、PLL 211からの高速クロックと分周部212からの低速クロックとを切り替えて出力する。切替部215の切り替え制御は、クロック切替制御部240からの制御信号によって行われる。
【００１２】
クロック分配部220には、クロック出力部210からのクロック信号が入力される。そして、クロック分配部220は、入力されたクロックに同期しつつ、各モジュール（111〜115）に分配するための複数のクロックを生成して、複数のクロック信号を出力する。
【００１３】
ゲート部230は、複数のアンド回路で構成されている。
アンド回路は各モジュール（111〜115）に対応して設けられている。
アンド回路の入力の一方は各モジュール（111〜115）からのクロック要求信号であり、他方の入力はクロック分配部220からのクロック信号である。
この構成により、クロック要求信号をHレベルに立ち上げているモジュール（111〜115）に対してのみクロック信号が供給される。
【００１４】
次に、クロック切替制御部240について説明する。
クロック切替制御部240は、クロック要求パターン判定部241と、FIFOバッファ残量判定部242と、バス動作率判定部243と、ポーリング状態判定部244と、を備えている。
【００１５】
クロック要求パターン判定部241には、各モジュール（111〜115）からのクロック要求信号Clkreqが入力される。
クロック要求パターン判定部241は、各モジュール（111〜115）からのクロック要求の有無を監視し、クロック要求の有無のパターンを予め設定された条件パターンに対比する。
ここで、クロック要求パターン判定部241には、条件設定レジスタ241Aが付設されている。
条件設定レジスタ241Aには、予め複数のモジュール（111〜115）の識別符号が登録されており、監視対象とするモジュールを選択設定できるようになっている。
図2は、条件設定レジスタ241Aの設定例を示す図である。
条件設定レジスタ241Aには、モジュール名が登録されており、監視フラグを"0"と"1"とで任意に設定可能である。
例えば図2に示した例では、監視フラグは初期値として"0"に設定され、監視フラグが"0"である場合にはそのモジュールは監視対象とし、監視フラグを"1"にすることでそのモジュールを監視対象外に選択設定することができる。
そして、監視対象（監視フラグを"0"）とした総てのモジュールからのクロック要求信号がLレベルになった場合、クロック要求パターン判定部241は、条件を満たしていると判定し、クロック周波数を16分周に下げる制御信号を出力する。
【００１６】
FIFOバッファ残量判定部242は、データを先頭から順番に処理していくFIFOタイプのモジュールのFIFOバッファの残量を監視する。
FIFOバッファ残量判定部242には、閾値が設定されており、FIFOバッファの残量値が前記閾値を上回った場合には、FIFOバッファ残量値が安全圏であると判定し、クロック周波数数を16分周に下げる制御信号を出力する。
FIFOタイプのモジュールとしては、グラフィックディスプレイコントローラ（GDC）114が例として挙げられる。
グラフィックディスプレイコントローラ（GDC）114からのクロック要求信号Clkreqは、クロック要求パターン判定部241には入力されず、その代わりに、FIFOバッファ残量値がFIFOバッファ残量判定部242で監視される。
【００１７】
そして、クロック要求パターン判定部241による判定とFIFOバッファ残量判定部242による判定とはさらにアンド回路245によるアンド条件で判定され、両方の条件が満たれた場合には、クロック出力部210に対して最低速の16分周のクロックを出力させる切替制御信号が与えられる。
この切替制御信号を受けると、クロック出力部210は分周部212によって16分周のクロックを生成し、さらに、切替部215は、分周部212からの16分周クロックを出力するように切替動作を行う。
【００１８】
バス動作率判定部243は、バス116の動作率をモニタし、単位時間あたりのバス116の動作率に基づいてクロック周波数のアップ、維持、ダウンを制御する。
バス動作率判定部243には、バス116のアドレスバスおよびデータバスのアクティブを検出するための信号が入力される。
そして、具体的には、バス動作率を、単位時間当たりのDRAM 115のアクティブ時間によって見積もる。
図3は、DRAM 115の動作タイミングを示すタイミングチャートである。
図3に示されるように、読出し開始アドレスの入力に応じ、クロックに同期してデータが出力される。
DRAM 115のアクティブ時間としては、プロトコルの開始であるアドレス入力からプロトコルの終了であるデータの最後までの時間とする。
このアクティブ時間が単位時間内に占める割合を求め、バス動作率とする。
【００１９】
バス動作率判定部243には、上限閾値と下限閾値とが設定されており、バス動作率を上限閾値および下限閾値に対比して、クロック周波数の増減を判定する。
図4は、バス動作率とクロック周波数との関係を表すタイミングチャートである。
アクティブ率が下限閾値を下回ったときは、クロック出力部210に対してクロック周波数を2分周にする切替制御信号を出す。
また、アクティブ率が上限閾値を上回ったときは、クロック周波数を1分周にする、すなわち、クロック周波数を最高速にする切替信号を出す。
【００２０】
ポーリング状態判定部244は、バス116のアドレスバスを監視して、ポーリング状態にあるモジュールを検出し、予め設定した条件と対比してクロック周波数の増減を制御する。
ポーリング状態判定部244は、アドレスバスからのアドレス信号を監視して、同じアドレスが所定回数（例えば3回）連続で出力されていた場合には、そのモジュールがポーリングに入ったと判定する。
ここで、ポーリングの監視対象としてCPU 111とDSP 112を例にあげると、CPU 111とDSP 112との両方がポーリングに入ったことを判定した場合には、ポーリング状態判定部244はクロック周波数を2分周に下げる制御信号をクロック出力部210に与える。
また、CPU 111とDSP 112とのいずれかがポーリングに入った場合に、他方が待機状態にあるか否かを見て、他方が待機状態に入っていればクロック周波数を2分周に下げる制御信号をクロック出力部210に与える。
なお、CPU 111とDSP 112のいずれかがポーリングに入った場合でも、他方が待機状態になく稼働している場合には、クロック周波数を高速の周波数に復帰させる。
【００２１】
このような構成を備えるクロック供給装置の動作を説明する。
図5は、クロック供給部200によるクロック周波数制御方法の動作手順を示すフローチャートである。
まず、最初、クロック出力部210からは最高速周波数（すなわちPLLからの1分周）のクロックが出力されるものとする。
そして、ST100において、クロック要求判定工程を行う。
これは、クロック要求パターン判定部241において、各モジュール(111〜115)からのクロック要求の有無を条件設定レジスタ241Aに設定された条件に対比し、監視対象とするモジュールからのクロック要求信号がすべてLレベルになっているかどうかを判定する。
監視対象となっているモジュールからのクロック要求信号がすべてLレベルになっている場合（ST101：YES）、次に、FIFOバッファ残量判定部242によるFIFOバッファ残量判定工程（ST102）を行う。
FIFOバッファ残量判定工程（ST102）では、監視対象とするFIFOタイプのモジュール（例えばGDC）のFIFOバッファ残量を安全圏閾値と対比する。
そして、FIFOバッファ残量が安全圏閾値以上である場合には（ST103：YES）、監視対象のモジュールのクロック要求信号がすべてLレベルであり、かつ、FIFOバッファ残量が安全圏であるので、クロック出力部210に対してクロック周波数を最低速の16分周にする制御信号を与える（ST109）。
【００２２】
ST109でクロック周波数を最低速の16分周にした後、ST100にもどってループを繰り返し、クロック要求判定工程（ST100）およびFIFOバッファ残量判定工程（ST102）での条件を満たす場合には（ST101およびST103：YES）、最低速の16分周クロックを供給し続けることになる。
【００２３】
ここで、クロック要求判定工程（ST100）またはFIFOバッファ残量判定工程（ST102）で所定の条件を満たさなかった場合（ST101またはST103：NO）、クロック周波数を上げる必要がある。
そこで、バス動作率判定部243によるバス動作率判定工程（ST104）の実行に移行する。
【００２４】
バス動作率判定工程（ST104）では、単位時間あたりにおけるDRAM 115のアクティブ時間からバス動作率を計測し、バス動作率を閾値（下限閾値、上限閾値）に対比する。
そして、バス動作率が下限閾値以下である場合には、クロック出力部210に対してクロック周波数を2分周にする制御信号を与える（ST110）。
これは、クロック要求判定工程（ST100）またはFIFOバッファ残量判定工程（ST102）で所定の条件を満たさないが（ST101およびST103：NO）、バス116に流れるデータ量からみてシステム100の負荷は中程度であると判断できるため、中程度の周波数速度として2分周にするものである。
これにより、無駄に高速動作を行うことなく、必要なタスクの処理は十分に継続したままで無駄な電力は削減する。
【００２５】
その一方、バス動作率が、上限閾値以上である場合には、クロック出力部210に対してクロック周波数を1分周にする制御信号を与える（ST111）。すなわち、クロック周波数を最高速にする。
例えば、クロック周波数が最低速の16分周であったり、中速度の2分周であると、各モジュールのタスク処理の流れが滞り、多くのモジュールがDRAM 115に間断なくアクセスするようになるため、バス動作率が高くなる。
そこで、バス動作率が上限閾値以上になった場合には、クロック周波数を最高速にする。
このようにシステム100の負荷が高い場合にはクロック周波数を高速にすることにより、必要な処理を必要なタイミングで迅速に動作実行部110に実行させることができる。
【００２６】
ここで、バス動作率判定工程(ST104)において、バス動作率が上限閾値と下限閾値の間であった場合（ST105、ST106：NO）、クロック周波数はそのまま維持した状態で、続いてポーリング判定工程（ST107）を実行する。
ポーリング判定工程（ST107）では、アドレスバスからのアドレス信号をみて、同じアドレスを所定回数（例えば３回）連続して出力している監視対象のモジュール（例えばCPU、DSP）があるか否かを判定する。
そして、監視対象のモジュールのうちポーリングに入っているものがあれば、その他の監視対象のモジュールがポーリング状態あるいは待機状態にあるかをみる。
その他の監視対象のモジュールがポーリングあるいは待機状態にある場合には（ST108：YES）、クロック出力部210に対してクロック周波数を2分周にする制御信号を与える（ST110）。
ポーリング状態に入っているモジュールがあるということは、システム100の負荷はそれほど大きくはないと判断できるため、中程度の周波数速度として2分周にするものである。
これにより、無駄に高速動作を行うことなく、必要なタスクの処理は十分に継続したままで無駄な電力は削減する。
【００２７】
一方、ポーリングに入っているモジュールがないか、または、他の監視対象のモジュールが処理を実行中である場合(ST108:NO)、クロック周波数を最高速の1分周に復帰させる。
【００２８】
そして、終了条件（ST112）を満たすまでST100に戻ってループ状に繰り返す。なお、終了条件としては、システム停止指示が入力された場合などが例として挙げられる。
【００２９】
このような構成を備える第1実施形態によれば、次の効果を奏することができる。
(1)本実施形態によれば、ST100、ST102の各判定工程を行って、監視対象のモジュールからのクロック要求のパターンおよびFIFOバッファの残量を判定する。そして、判定結果に基づいてクロック出力部210からのクロックの周波数を最低速に落とし、動作実行部110に供給するクロック全体の周波数を落とす構成を採用する。
ST100、ST102の各判定工程において、監視対象に設定したモジュールがクロック要求を出しておらず、かつ、FIFOバッファの残量が十分にあれば、システム全体として高速に処理する必要はない状態にあると判断できる。
そして、このような場合にはクロック周波数を最低速の16分周にし、システム100の動作周期を低速にすることによって無駄な高速動作を排除する。これにより、電力オーバーヘッドをなくし、消費電力を削減することができる。
【００３０】
ここで、単純にクロックのON／OFF制御だけを行うとすると、システム100を構成するすべてのモジュールからのクロック要求がLレベルになるのを待たなければならないが、実際には総てのモジュールのクロック要求がLレベルになることはありえず、このようなON／OFF制御は実現しないものである。
また、割り込みコントローラーやDMAC（ダイレクトメモリアクセスコントローラ）113のように、常時稼働していなければならず、クロックを止められないモジュールも多くある。
この点、システム100の負荷量を判定するのに適したモジュールを選定して条件設定レジスタ241Aに選択登録しておき、これらのモジュールからのクロック要求信号がLレベルになったところでクロック周波数を低速にすることにより、必要なタスクの処理は十分に継続したままで無駄な電力は削減できるという効果を奏することができる。
【００３１】
(2)本実施形態では、条件設定レジスタ241Aを備え、この条件設定レジスタ２４１Aでクロック要求の有無を監視する監視対象を任意に選登録することができる。これにより、動作実行部110のシステム構成に応じて最適な条件に設定することができ、システム100に応じて最適なクロック周波数制御を実現できる。
【００３２】
(3)クロック要求の有無だけでクロック周波数の切替制御を行うと、粒度の粗い制御しかできないが、本実施形態では、FIFOバッファ残量、バス動作率、ポーリングなどの条件を細かくみてシステム100の動作負荷を判断し、より精密なクロック周波数の切替制御を実現できる。
従来のように単にCPU 111の負荷量などに応じてクロック周波数を増減するような方法では粒度も粗く、具体的な実現性にも欠けるのに対し、本実施形態によれば精度の高いクロック周波数の切替制御を実現し、無駄な電力消費を削減することができる。
【００３３】
(4)本実施形態では、バス動作率を計測して、これをクロック周波数の制御に利用する。
そして、このバス動作率を計測にあたり、単位時間あたりのDRAM 115のアクティブ時間からバス116の動作率を求めることとする。
動作実行部110に搭載されているモジュールはDRAM 115とのデータやり取りによって動作するので、DRAM 115からデータがどの程度出力されているかを計測することはバス116の動作率（バスの込み具合）を見積もるのに有効な方法であり、現実的かつ具体的にクロック周波数の制御を実現することができる。
【００３４】
(5)本実施形態では、ポーリング状態を判定して、これをクロック周波数の制御に利用する。
モジュールがポーリング状態にある場合、このモジュールは具体的なタスクの処理は行っていないが、ポーリングという動作は行っているためクロック要求もHレベルであり、また、バス116にアドレスデータなどの信号も出力しているため、クロック要求だけやバス動作率だけではポーリングに応じた電力の削減はできない。
この点、本実施形態では、ポーリング状態判定部244を備え、モジュールのポーリング状態を判定してこれをクロック周波数制御に利用するので、現実的かつ具体的にクロック周波数の制御を行うことができ、従来技術にくらべてさらなる電力削減を実現することができる。
【００３５】
（変形例1）
次に変形例1について説明する。
図6は、変形例1の構成を示す図である。
上記第1実施形態においては、クロック要求パターン判定部241とFIFOバッファ残量判定部242との判定結果はアンド条件とし、両方が満たされている場合にクロック周波数を16分周にする場合を説明したが、図6に示すように、クロック要求パターン判定部241とFIFOバッファ残量判定部310とはアンド条件でなくてもよい。
図6においては、クロック要求パターン判定部241とFIFOバッファ残量判定部310とはアンド回路を介さずにクロック出力部210に制御信号を与える。
そして、FIFOバッファ残量判定部310には、安全圏閾値に加えて、さらに危険閾値が設定されている。
図7は、FIFOバッファ残量とクロック周波数との関係を表すタイミングチャートである。
FIFOバッファ残量が危険閾値以下であるときは、クロック出力部210に対してクロック周波数を1分周にする切替制御信号を出す。すなわち、クロック周波数を最高速にする切替信号を出す。
また、FIFOバッファ残量が安全圏閾値以上であるときは、クロック周波数を2分周にする。
【００３６】
図8は、変形例1の動作手順を示すフローチャートである。
図8において、クロック要求パターン判定工程（ST100）において監視対象のモジュールからのクロック要求信号がすべてLレベルである場合（ST101：YES）、クロック要求パターン判定部241はクロック周波数を16分周にする制御信号をクロック出力部210に与える。
ST101において、監視対象のモジュールからのクロック要求がすべてLレベルでなく、ST101の条件を外れた場合には、クロック周波数を高速の周波数に復帰させる処理に入る。
すなわち、FIFOバッファ残量工程（ST102）を実行して、監視対象とするFIFOタイプのモジュール（例えばGDC）のFIFOバッファ残量を安全圏閾値および危険閾値と対比する。
そして、FIFOバッファ残量が危険閾値以下になっている場合には、クロック周波数を1分周にする。
なお、図8中のその他の工程については図5で説明した動作と同様である。
【００３７】
本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
上記実施形態において、バス動作率はDRAMのアクティブ時間で見積もるとしたが、これに限らず、バス動作率（バスの込み具合）を見積もることができる他の方法に代えてもよい。
【００３８】
上記実施形態においては、クロック出力部がPLLからの最高速クロックの他に最低速の16分周と中速の2分周のクロックを出力する場合を例示したが、分周部による分周率はもっと細かく複数段階に分けられていてもよい。
さらに、FIFOバッファ残量判定部、バス動作率判定部に複数段階の閾値を細分化して設定し、各閾値に対応して細かい刻みでクロック周波数を選択してもよい。
【００３９】
図3では、DRAM動作の一例として、シンクロナスDRAMの場合を例示したが、ランダムアクセスモードやファストページモードなど、DRAMからのデータ読出しプロトコルは対象となるDRAMによって異なってくるものである。
【図面の簡単な説明】
【００４０】
【図１】コンピュータシステムの全体構成を示す図。
【図２】条件設定レジスタの設定例を示す図。
【図３】DRAMの動作タイミングを示すタイミングチャート。
【図４】バス動作率とクロック周波数との関係を表すタイミングチャート。
【図５】クロック供給部によるクロック周波数制御方法の動作手順を示すフローチャート。
【図６】変形例1の構成を示す図。
【図７】変形例1において、FIFOバッファ残量とクロック周波数との関係を表すタイミングチャート。
【図８】変形例1の動作手順を示すフローチャートである。
【符号の説明】
【００４１】
100…コンピュータシステム、110…動作実行部、111…CPU、112…DSP、113…DMAC、114…GDC、115…DRAM、116…バス、200…クロック供給部（クロック供給装置）、210…クロック出力部、212…分周部、213…16分周部、214…2分周部、215…切替部、220…クロック分配部、230…ゲート部、240…クロック切替制御部、241…クロック要求パターン判定部、241A…条件設定レジスタ、242…バッファ残量判定部、243…バス動作率判定部、244…ポーリング状態判定部、245…アンド回路、310…バッファ残量判定部。
【図１】
2010072897.tif 000003
【図２】
2010072897.tif 000004
【図３】
2010072897.tif 000005
【図４】
2010072897.tif 000006
【図５】
2010072897.tif 000007
【図６】
2010072897.tif 000008
【図７】
2010072897.tif 000009
【図８】
2010072897.tif 000010