(57)【要約】【課題】ピーク電力の抑制が可能なクロック発生回路を提供すること。【解決手段】基準クロック１１のエッジをカウントし所定のクロックサイクル数毎にタイミング信号を生成するカウンタ回路５と、所定のクロックサイクル数と等しいビット数を有するビットマップ情報１４ａを記憶するビットマップ回路４ａと、基準クロック１１からビットマップ情報１４ａが示す組み合わせでパルスを間引きして間欠するパルス列である間欠クロック１２ａを生成しタイミング信号に応じて出力する間欠クロック生成回路２ａと、所定のクロックサイクル数と等しいビット数を有するビットマップ情報１４ｂを記憶するビットマップ回路４ｂと、基準クロック１１からビットマップ情報１４ｂが示す組み合わせでパルスを間引きして間欠するパルス列である間欠クロック１２ｂを生成しタイミング信号に応じて出力する間欠クロック生成回路２ｂと、を有する。【選択図】図４
2011221711.tif 000002
【特許請求の範囲】
【請求項１】
基準クロック信号のエッジをカウントし所定のクロックサイクル数毎にタイミング信号を生成するカウンタ部と、
前記所定のクロックサイクル数と等しいビット数を有する第１のビット列を記憶する第１の記憶部と、
前記基準クロック信号から前記第１のビット列が示す組み合わせでパルスを間引きして間欠するパルス列である第１の間欠クロック信号を生成し前記タイミング信号に応じて出力する第１のクロック生成部と、
前記所定のクロックサイクル数と等しいビット数を有する第２のビット列を記憶する第２の記憶部と、
前記基準クロック信号から前記第２のビット列が示す組み合わせでパルスを間引きして間欠するパルス列である第２の間欠クロック信号を生成し前記タイミング信号に応じて出力する第２のクロック生成部と、
を有するクロック発生回路。
【請求項２】
前記第１の記憶部または前記第２の記憶部に前記第１のビット列または前記第２のビット列を設定する制御部をさらに有し、
前記制御部は、前記第１のビット列に基づいて前記第２のビット列を設定することを特徴とする請求項１に記載のクロック発生回路。
【請求項３】
基準クロック信号のエッジをカウントし所定のクロックサイクル数毎にタイミング信号を生成するカウンタ部と、
前記所定のクロックサイクル数と等しいビット数を有し、前記カウンタのカウント値のそれぞれに対応するビット位置毎にクロック出力の有効または無効を設定するビット列を記憶する複数の記憶部と、
前記複数の記憶部のそれぞれに対応して設けられ、対応する前記記憶部に記憶された前記ビット列に基づいて間欠クロック信号を生成し前記タイミング信号に応じて出力する複数のクロック生成部と、
前記記憶部のそれぞれに前記ビット列を設定する制御部と、
を有し、
前記制御部は、前記間欠クロックが供給される回路それぞれの動作電流の予測値と前記複数の記憶部に記憶させる前記ビット列のそれぞれとに基づいて、前記ビット位置毎の前記回路それぞれの消費電流を合計した合計電流値を算出し、
前記合計電流値の時間変化が最小となるように前記ビット列のそれぞれを設定することを特徴とするクロック発生回路。
【請求項４】
前記合計電流値の時間変化が最小となるようにあらかじめ決定された前記ビット列の組み合わせを記憶するメモリをさらに有し、
前記制御部は、前記メモリに記憶された前記組み合わせに基づいて前記ビット列のそれぞれを設定することを特徴とする請求項３に記載のクロック発生回路。
【請求項５】
基準クロック信号のエッジをカウントし所定のクロックサイクル数毎にタイミング信号を生成するカウンタ部と、
前記所定のクロックサイクル数と等しいビット数を有し前記カウンタのカウント値のそれぞれに対応したビット位置毎にクロック出力の有効または無効を設定するビット列を記憶する複数の記憶部と、
前記複数の記憶部のそれぞれに対応して設けられ、対応する前記記憶部に記憶された前記ビット列に基づいて間欠クロック信号を生成し前記タイミング信号に応じて出力する複数のクロック生成部と、
前記記憶部のそれぞれに前記ビット列を設定する制御部と、
を有し、
前記制御部は、前記複数の記憶部に記憶されたビット列のそれぞれを、前記ビット位置毎に合計した値が、全ての前記ビット位置間で平準化されるように前記ビット列のそれぞれを設定することを特徴とするクロック発生回路。
【請求項６】
前記複数の記憶部に記憶されたビット列のそれぞれを、前記ビット位置毎に合計した値が、全ての前記ビット位置間で平準化されるようにあらかじめ決定された前記ビット列の組み合わせを記憶するメモリをさらに有し、
前記制御部は、前記メモリに記憶された前記組み合わせに基づいて前記ビット列のそれぞれを設定することを特徴とする請求項５に記載のクロック発生回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロック発生回路に関し、特に詳しくは同期クロックを間欠的に発振するクロック発生回路に関する。
【背景技術】
【０００２】
同期クロックにより駆動するロジック回路では、消費される電流がクロックの周波数に比例して増大することが知られている。ロジック回路を使用したシステムにおいては、従来から消費電流を低減することが重要な課題となっている。同期クロックにより駆動するロジック回路の節電方法として、ロジック回路に供給する同期クロックを要求される処理速度に応じて間欠的に発振する手法がある。
【０００３】
また、複数のロジック回路で並列処理を行う場合、個々の処理によって要求される処理速度は異なるのが一般的である。複数のロジック回路に対して、個々の処理速度に適したクロックを間欠的に供給する場合、個々のロジック回路のピーク電力の発生タイミングが重なると全体としてのピーク電力が増大する。したがって、個々のピーク電力の発生タイミングを分散する手段が必要となる。
【０００４】
例えば特許文献１に、要求される処理速度に適した低消費電力を達成するためのクロック発生回路が開示されている。このクロック発生回路について、図１０及び図１１を用いて説明する。図１０は、特許文献１に開示された従来のクロック発生回路の全体構成を説明するためのブロック図である。図１１は、従来のクロック発生回路のクロック波形を説明するためのタイミングチャートである。
【０００５】
図１０において、発振回路１０１は例えば水晶発振回路のように一定の周波数のクロック１０４を出力する。クロック速度制御回路１０２は、クロック１０４を制御して動作クロック１０５を発生する。ロジック回路１０３は、動作クロック１０５を用いて動作を行う。クロック速度制御回路１０２は、動作クロック１０５を間欠クロックとして、単位時間当りのクロックパルス数を処理速度要求に応じて変化させるものである。
【０００６】
動作クロック１０５は、クロック速度制御回路１０２により、例えば図１１に示す波形１０８や波形１０９のように加工される。波形１０８は１００％の処理速度を得ようとするときのものであり、クロック１０４の波形１０７と同様である。波形１０９は７５％の処理速度を得ようとするときのものであり、クロックの持続期間と休止期間を３対１の割合で繰り返している。図１１では、波形１０９は、例えばクロックを６パルス分持続させる持続期間と、２パルス分に相当するクロックを休止する休止期間とを繰り返している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平０７−１２９２７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１では、クロック速度制御回路１０２により加工される動作クロック１０５は、クロックの持続期間と休止期間がそれぞれ連続する間欠クロックであるため、ピーク電流が増大することがある。これについて図１２を用いて説明する。図１２は、従来のクロック発生回路を用いて駆動したロジック回路の電力の時間変化の一例を示すタイミングチャートである。
【０００９】
たとえばロジック回路１０３が５０％の処理速度を要求するとした場合、動作クロック１０５は、クロック速度制御回路１０２により図１２に示す波形１１０のように加工される。波形１１０は、クロックの持続期間と休止期間を１対１の割合で繰り返す間欠クロックである。図１２では、波形１１０は、例えばクロックを５パルス分持続させる持続期間と、５パルス分に相当するクロックを休止する休止期間とを繰り返している。この図１２の波形１１０に示すような間欠クロックを供給すると、ロジック回路１０３内部のトランジスタのスイッチングタイミングに偏りが生じる。その結果、ロジック回路１０３の電力の時間変化は図１２に示す波形１１１のようになり、ピーク電力が増大してしまう。
【００１０】
また、特許文献１では、間欠クロックの発信タイミングを適切に調整する機能が無いため、複数のロジック回路で並列処理を行う場合に、ピーク電力が増大することがある。これについて、図１３〜図１５を用いて説明する。図１３は、図１０を単純に拡張した場合のクロック発生回路の全体構成を説明するためのブロック図である。図１４及び図１５は、図１３のクロック発生回路を用いて駆動したロジック回路の合計電力の時間変化の一例を示すタイミングチャートである。
【００１１】
特許文献１の技術を用いて複数のロジック回路で並列処理を行うとすると、図１３に示すように、１つの発振回路１０１に対して並列に接続されたクロック速度制御回路１０２ａ，１０２ｂ，１０２ｃのそれぞれに、ロジック回路１０３ａ，１０３ｂ，１０３ｃを接続する構成となる。
【００１２】
例えば、ロジック回路１０３ａが３０％、ロジック回路１０３ｂが６０％、ロジック回路１０３ｃが７０％の処理速度を要求するとした場合、動作クロック１０５ａ，１０５ｂ，１０５ｃはクロック速度制御回路１０２ａ，１０２ｂ，１０２ｃによりそれぞれ図１４に示す波形１１２，１１３，１１４のように加工される。この図１４の波形１１２，１１３，１１４に示すような間欠クロックを供給すると、ロジック回路１０３ａ，１０３ｂ，１０３ｃの合計電力の時間変化は図１４に示す波形１１５のようになる。すなわち、それぞれのロジック回路のピーク電力の発生タイミングが重なり、電力変動が大きくなる。よって、ピーク電力が増大してしまう。
【００１３】
また、図１５に示すように、動作クロック１０５ａ，１０５ｂ，１０５ｃの位相が波形１１６，１１７，１１８のようにずれると、ロジック回路１０３ａ，１０３ｂ，１０３ｃの合計電力の時間変化は波形１１９のようになり、時間変化パタンが変わってしまう。
【課題を解決するための手段】
【００１４】
本発明の第１の態様にかかるクロック発生回路は、基準クロック信号のエッジをカウントし所定のクロックサイクル数毎にタイミング信号を生成するカウンタ部と、前記所定のクロックサイクル数と等しいビット数を有する第１のビット列を記憶する第１の記憶部と、前記基準クロック信号から前記第１のビット列が示す組み合わせでパルスを間引きして間欠するパルス列である第１の間欠クロック信号を生成し前記タイミング信号に応じて出力する第１のクロック生成部と、前記所定のクロックサイクル数と等しいビット数を有する第２のビット列を記憶する第２の記憶部と、前記基準クロック信号から前記第２のビット列が示す組み合わせでパルスを間引きして間欠するパルス列である第２の間欠クロック信号を生成し前記タイミング信号に応じて出力する第２のクロック生成部と、を有するものである。これにより、各ロジック回路に供給する間欠クロックを発振タイミングが適度に分散するように調整することができ、ロジック回路全体の電力変動を抑えることができる。
【００１５】
本発明の第２の態様にかかるクロック発生回路は、基準クロック信号のエッジをカウントし所定のクロックサイクル数毎にタイミング信号を生成するカウンタ部と、前記所定のクロックサイクル数と等しいビット数を有し、前記カウンタのカウント値のそれぞれに対応するビット位置毎にクロック出力の有効または無効を設定するビット列を記憶する複数の記憶部と、前記複数の記憶部のそれぞれに対応して設けられ、対応する前記記憶部に記憶された前記ビット列に基づいて間欠クロック信号を生成し前記タイミング信号に応じて出力する複数のクロック生成部と、前記記憶部のそれぞれに前記ビット列を設定する制御部と、を有し、前記制御部は、前記間欠クロックが供給される回路それぞれの動作電流の予測値と前記複数の記憶部に記憶させる前記ビット列のそれぞれとに基づいて、前記ビット位置毎の前記回路それぞれの消費電流を合計した合計電流値を算出し、前記合計電流値の時間変化が最小となるように前記ビット列のそれぞれを設定することを特徴とするものである。これにより、各ロジック回路に供給する間欠クロックを発振タイミングが適度に分散するように調整することができ、ロジック回路全体の電力変動を抑えることができる。
【００１６】
本発明の第３の態様にかかるクロック発生回路は、基準クロック信号のエッジをカウントし所定のクロックサイクル数毎にタイミング信号を生成するカウンタ部と、前記所定のクロックサイクル数と等しいビット数を有し前記カウンタのカウント値のそれぞれに対応したビット位置毎にクロック出力の有効または無効を設定するビット列を記憶する複数の記憶部と、前記複数の記憶部のそれぞれに対応して設けられ、対応する前記記憶部に記憶された前記ビット列に基づいて間欠クロック信号を生成し前記タイミング信号に応じて出力する複数のクロック生成部と、前記記憶部のそれぞれに前記ビット列を設定する制御部と、を有し、前記制御部は、前記複数の記憶部に記憶されたビット列のそれぞれを、前記ビット位置毎に合計した値が、全ての前記ビット位置間で平準化されるように前記ビット列のそれぞれを設定することを特徴とするものである。これにより、各ロジック回路に供給する間欠クロックを発振タイミングが適度に分散するように調整することができ、ロジック回路全体の電力変動を抑えることができる。
【発明の効果】
【００１７】
本発明によれば、ピーク電力の抑制が可能なクロック発生回路を提供することができる。
【図面の簡単な説明】
【００１８】
【図１】実施の形態１に係るクロック発生回路の全体構成を説明するためのブロック図である。
【図２】実施の形態１に係る間欠クロック生成回路の詳細な構成を示すブロック図である。
【図３】実施の形態１に係るクロック発生回路を用いて駆動したロジック回路の電力の時間変化の一例を示すタイミングチャートである。
【図４】実施の形態２に係るクロック発生回路の全体構成を説明するためのブロック図である。
【図５】実施の形態２に係る間欠クロック生成回路の詳細な構成を示すブロック図である。
【図６】実施の形態２に係るクロック発生回路を用いて駆動したロジック回路全体の合計電力の時間変化の一例を示すタイミングチャートである。
【図７】実施の形態２に係るクロック発生回路を用いて電力の重み付けの異なるロジック回路駆動したしたときのロジック回路全体の合計電力の時間変化の一例を示すタイミングチャートである。
【図８】実施の形態３に係るクロック発生回路を用いて駆動したロジック回路全体の合計電力の時間変化の一例を示すタイミングチャートである。
【図９】実施の形態３に係るクロック発生回路において、共有メモリ上の最適なビットマップ情報の組み合わせ一例を示す図である。
【図１０】従来のクロック発生回路の全体構成を説明するためのブロック図である。
【図１１】従来のクロック発生回路のクロック波形を説明するためのタイミングチャートである。
【図１２】従来のクロック発生回路を用いて駆動したロジック回路の電力の時間変化の一例を示すタイミングチャートである。
【図１３】図１０を単純に拡張した場合のクロック発生回路の全体構成を説明するためのブロック図である。
【図１４】図１３のクロック発生回路を用いて駆動したロジック回路の合計電力の時間変化の一例を示すタイミングチャートである。
【図１５】図１３のクロック発生回路を用いて駆動したロジック回路の合計電力の時間変化の一例を示すタイミングチャートである。
【発明を実施するための形態】
【００１９】
以下、図面を参照して本発明の実施の形態について説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。また、説明の明確化のため、必要に応じて重複説明は省略されている。尚、各図において同一の符号を付されたものは同様の要素を示しており、適宜、説明が省略されている。
【００２０】
実施の形態１．
始めに、図１を用いて、本実施の形態に係るクロック発生回路の構成について説明する。図１は、実施の形態１に係るクロック発生回路の全体構成を説明するためのブロック図である。
【００２１】
図１において、本実施の形態に係るクロック発生回路は、発振回路１から出力される基準クロック１１から一部のパルスを間引きした、間欠するパルス列である間欠クロック１２を生成し、生成した間欠クロック１２をロジック回路３に供給するものである。本実施の形態に係るクロック発生回路は、図１に示すように、間欠クロック生成回路２と、ビットマップ回路４とを備えている。
【００２２】
発振回路１は、例えば水晶発振回路のように、一定の周波数の信号である基準クロック１１を出力する。
【００２３】
ビットマップ回路４は、間欠クロックの発振タイミングを示すビットマップ情報１４を記憶する記憶部である。すなわち、ビットマップ回路４は、後述する間欠クロック生成回路２で生成される間欠クロックの間引きされるタイミングを示すビットマップ情報１４を記憶している。本実施の形態では、ビットマップ回路４は、基準クロック１１の所定のクロックサイクル数毎に、ロジック回路３の処理速度要求に応じたクロックパルス数のクロックパルスが、適度に分散して発振されるような発振タイミングのビットマップ情報１４を記憶している。ビットマップ情報１４は、ビット位置毎にクロック出力の有効または無効を設定する、所定のビット数のビット列からなる。
【００２４】
間欠クロック生成回路２は、発振回路１から出力される基準クロック１１と、ビットマップ回路４から出力されるビットマップ情報１４とから間欠クロック１２を生成するクロック生成部である。すなわち、間欠クロック生成回路２は、基準クロック１１とビットマップ情報１４とに基づいて、間欠クロック１２を生成する。
【００２５】
ロジック回路３は、生成された間欠クロック１２を用いて動作を行う。すなわち、間欠クロック１２によってロジック回路３が駆動される。
【００２６】
ここで、間欠クロック生成回路２の具体的な構成例について、図２を用いて説明をする。図２は、実施の形態１に係る間欠クロック生成回路の詳細な構成を示すブロック図である。
【００２７】
間欠クロック生成回路２は、図２に示すように、カウンタ回路２１と、セレクタ２２と、クロックゲートセル２３とを有する。カウンタ回路２１は、基準クロック１１に基づいて一定のタイミング信号を生成し、カウント値２４を出力する。カウンタ回路２１は、基準クロック１１のエッジをカウントし、所定のクロックサイクル数毎にタイミング信号を生成するカウンタ部として機能する。カウンタ回路２１がタイミング信号を生成する所定のクロックサイクル数は、ビットマップ情報１４のビット数と等しい数とする。セレクタ２２は、ビットマップ情報１４からカウント値２４で示されるビット位置の値を選択してクロックイネーブル２５として出力する。クロックゲートセル２３は、クロックイネーブル２５が１を示すときだけ間欠クロック１２を出力する。
【００２８】
例えば、所定のクロックサイクル数を基準クロック１１の１６パルス分とした１６サイクル周期であるとすると、カウンタ回路２１は、例えば０〜１５の間を順次インクリメントするカウント値２４を出力する。そして、セレクタ２２が、ビットマップ回路４が記憶する１６ビットのビットマップ情報１４からカウント値２４で示されるビット位置の値を選択して、クロックイネーブル２５として出力する。なお、カウント値２４の値域およびビットマップ情報１４のビット数は、必要に応じて任意のものに拡張することができるものとする。すなわち、カウント値２４の値域およびビットマップ情報１４のビット数は、適宜変更してよい。
【００２９】
このように、間欠クロック生成回路２は、基準クロック１１からビットマップ情報１４が示す組み合わせでパルスを間引きして、間欠するパルス列である間欠クロック１２を生成する。そして、間欠クロック生成回路２は、生成した間欠クロック１２をタイミング信号に応じて出力する。
【００３０】
次に、本実施の形態に係るクロック発生回路の動作について説明する。まず、ビットマップ回路４から出力されるビットマップ情報１４を、ロジック回路３の要求する処理速度に応じたものに設定する。間欠クロック生成回路２は、発振回路１から出力される基準クロック１１からビットマップ情報１４に基づき所定のクロックパルスを間引いて、間欠クロック１２を生成する。
【００３１】
具体的には、発振回路１から基準クロック１１が出力されると、カウンタ回路２１は、この基準クロック１１に基づいて一定のタイミング信号を生成し、カウント値２４を出力する。セレクタ２２は、ビットマップ情報１４からカウント値２４で示されるビット位置の値を選択してクロックイネーブル２５として出力する。クロックゲートセル２３は、クロックイネーブル２５が１を示すときだけ間欠クロック１２を出力する。
【００３２】
このように所定のクロックサイクル数毎に発振タイミングが任意に制御された間欠クロック１２を生成し、生成した間欠クロック１２をロジック回路３に供給する。この間欠クロック１２は、ロジック回路３の処理速度要求に応じて単位時間当りのクロックパルス数を変化させたもので、かつ、所定のクロックサイクル数毎に発振タイミングが適度に分散するように調整されたものである。ロジック回路３は、この間欠クロック１２を用いて動作を行う。
【００３３】
ここで、本実施の形態に係るクロック発生回路にて生成された間欠クロック１２を用いて駆動されるロジック回路３の電力の時間変化について、図３を用いて説明する。図３は、実施の形態１に係るクロック発生回路を用いて駆動したロジック回路の電力の時間変化の一例を示すタイミングチャートである。
【００３４】
以下では、図３の波形５１に示す基準クロック１１の１６クロックサイクル分を単位とする１６サイクル周期で間欠クロック１２を生成する場合について例示的に説明する。例えばロジック回路３が５０％の処理速度を要求するとした場合、ビットマップ情報１４として例えば０ｘＡＡＡＡ（１６進表記）を設定する。
【００３５】
カウンタ回路２１により生成されるカウント値２４は、図３のタイミング信号５２に示すように、基準クロック１１に基づいて０から１５まで順次インクリメントする動作を繰返す。クロックイネーブル２５は、セレクタ２２によって、図３の波形５３のようにビットマップ情報１４のカウント値２４で指定されるビット位置の値が選択される。ここでは、１６進表記から２進表記に変更された１６ビットからなるビットマップ情報１４のうち、カウント値２４で指定されるビット位置の値、すなわち０か１のいずれかがクロックイネーブル２５として出力される。間欠クロック１２は、クロックイネーブル２５の値が１のときだけ発振する。
【００３６】
このようにして、間欠クロック１２は、間欠クロック生成回路２により図３に示す波形５４のように加工される。波形５４は、クロックの持続期間と休止期間を１対１の割合で繰り返す間欠クロック１２である。例えば図３では、波形５４は、１パルス分に相当する基準クロック１１を休止する休止期間と、基準クロック１１を１パルス分持続させる持続期間とを繰り返している。
【００３７】
この波形５４に示すような間欠クロック１２を供給すると、間欠クロック１２が発振するときにロジック回路３内部でトランジスタのスイッチング電流が流れて電力が発生する。その結果、ロジック回路３で消費される電力の時間変化は図３に示す波形５５のようになる。この波形５５は、図１２の波形１１１に示した従来の電力の時間変化と比較すると、ピーク電力の発生タイミングが分散している。従って、ピーク電力を抑制することができる。
【００３８】
以上のように、本実施の形態では、間欠クロックの間欠するタイミングを示すビットマップ情報１４を記憶するビットマップ回路４を備え、ビットマップ情報１４に基づいて基準クロック１１から一部のパルスを間引いて間欠クロック１２を生成している。これにより、ロジック回路３が要求する処理速度に応じたクロックパルス数のクロックパルスを分散して発振する間欠クロック１２を供給することができ、ロジック回路３のピーク電力を抑制することができる。このように、間欠クロック１２の発振タイミングを設定することで、自由度の高いクロック管理が可能となり、ロジック回路３の電力変動を抑えることができる。
【００３９】
なお、図１では図示しなかったが、クロック発生回路は、ビットマップ情報１４を設定する制御部をさらに備えていても良い。そして、この制御部が、ビットマップ回路４から出力されるビットマップ情報１４を、ロジック回路３が要求する処理速度に応じるものに適宜設定するようにしてもよい。これにより、異なる処理速度を要求する様々なロジック回路３に対して、ピーク電力の抑制が可能な間欠クロック１２を供給することができる。
【００４０】
実施の形態２．
本実施の形態に係るクロック発生回路の構成について、図４を用いて説明する。図４は、実施の形態２に係るクロック発生回路の全体構成を説明するためのブロック図である。実施の形態１では、１つのロジック回路３に対して間欠クロック１２を供給するクロック発生回路について説明をしたが、本実施の形態では、複数のロジック回路３に対してそれぞれ間欠クロック１２を供給するクロック発生回路に本発明を適用する場合について説明を行う。
【００４１】
図４において、図１と同じ構成部分については同一の符号を付し、差異について説明する。本実施の形態に係るクロック発生回路は、発振回路１から出力される基準クロック１１から一部のパルスを間引きした、間欠するパルス列である間欠クロック１２を複数生成し、生成した複数の間欠クロック１２を複数のロジック回路３に供給するものである。ここでは、３つのロジック回路３ａ，３ｂ，３ｃに、３つの間欠クロック１２ａ，１２ｂ，１２ｃを供給する場合について例示的に説明をする。
【００４２】
本実施の形態に係るクロック発生回路は、図４に示すように、３つの間欠クロック生成回路２ａ，２ｂ，２ｃ（以下、各間欠クロック生成回路を区別しない場合は、単に、間欠クロック生成回路２と称する）と、３つのビットマップ回路４ａ，４ｂ，４ｃ（以下、各ビットマップ回路を区別しない場合は、単に、ビットマップ回路４と称する）と、カウンタ回路５とを備えている。
【００４３】
ビットマップ回路４ａ，４ｂ，４ｃは、間欠クロックの発振タイミングを示すビットマップ情報１４ａ，１４ｂ，１４ｃ（以下、各ビットマップ情報を区別しない場合は、単に、ビットマップ情報１４と称する）をそれぞれ記憶している。ビットマップ回路４ａ，４ｂ，４ｃは、発振回路１が出力する基準クロック１１の所定のクロックサイクル数毎に、各ロジック回路３ａ，３ｂ，３ｃの処理速度要求に応じたクロックパルス数のクロックパルスが、適度に分散して発振される発振タイミングのビットマップ情報１４を記憶している。ビットマップ情報１４は、ビット位置毎にクロック出力の有効または無効を設定する、所定のビット数のビット列からなる。ビットマップ回路４ａ，４ｂ，４ｃは、例えば書き換え可能なレジスタで構成される。ビットマップ回路４ａ，４ｂ，４ｃは、ビットマップ情報１４ａ，１４ｂ，１４ｃを間欠クロック生成回路２ａ，２ｂ，２ｃにそれぞれ供給する。
【００４４】
また、本実施の形態では、カウンタ回路５が間欠クロック生成回路２ａ，２ｂ，２ｃに対して共通化して設けられている。カウンタ回路５は、発振回路１から出力される基準クロック１１に基づいて一定のタイミング信号を生成し、カウント値１５を出力する。カウンタ回路５は、基準クロック１１のエッジをカウントし、所定のクロックサイクル数毎にタイミング信号を生成するカウンタ部として機能する。カウンタ回路５がタイミング信号を生成する所定のクロックサイクル数は、ビットマップ情報１４のビット数と等しい数とする。カウンタ回路５は、カウント値１５を間欠クロック生成回路２ａ，２ｂ，２ｃのそれぞれに供給する。
【００４５】
間欠クロック生成回路２ａ，２ｂ，２ｃは、基準クロック１１とビットマップ情報１４ａ，１４ｂ，１４ｃとに基づいて、間欠クロック１２ａ，１２ｂ，１２ｃをそれぞれ生成するクロック生成部である。具体的には、間欠クロック生成回路２ａは、発振回路１から出力される基準クロック１１と、ビットマップ回路４ａから出力されるビットマップ情報１４ａとから間欠クロック１２ａを生成する。同様に、間欠クロック生成回路２ｂは、発振回路１から出力される基準クロック１１と、ビットマップ回路４ｂから出力されるビットマップ情報１４ｂとから間欠クロック１２ｂを生成する。また、間欠クロック生成回路２ｃは、発振回路１から出力される基準クロック１１と、ビットマップ回路４ｃから出力されるビットマップ情報１４ｃとから間欠クロック１２ｃを生成する。
【００４６】
ロジック回路３ａ，３ｂ，３ｃは、生成された間欠クロック１２ａ，１２ｂ，１２ｃをそれぞれ用いて動作を行う。具体的には、間欠クロック１２ａによってロジック回路３ａが駆動される。また、間欠クロック１２ｂによってロジック回路３ｂが駆動され、間欠クロック１２ｃによってロジック回路３ｃが駆動される。
【００４７】
ここで、間欠クロック生成回路２（２ａ，２ｂ，２ｃ）の具体的な構成例について、図５を用いて説明をする。図５は、実施の形態２に係る間欠クロック生成回路の詳細な構成を示すブロック図である。
【００４８】
間欠クロック生成回路２は、図５に示すように、セレクタ２２とクロックゲートセル２３とを有する。セレクタ２２は、ビットマップ情報１４からカウント値１５で示されるビット位置の値を選択してクロックイネーブル２５として出力する。クロックゲートセル２３は、クロックイネーブル２５が１を示すときだけ間欠クロック１２を出力する。
【００４９】
従って、間欠クロック生成回路２ａにおいては、ビットマップ情報１４ａのカウント値１５で示されるビット位置の値がクロックイネーブル２５ａとしてセレクタ２２から出力され、このクロックイネーブル２５ａが１を示すときだけクロックゲートセル２３から間欠クロック１２ａが出力される。同様に、間欠クロック生成回路２ｂにおいては、ビットマップ情報１４ｂのカウント値１５で示されるビット位置の値がクロックイネーブル２５ｂとしてセレクタ２２から出力され、このクロックイネーブル２５ｂが１を示すときだけクロックゲートセル２３から間欠クロック１２ｂが出力される。また、間欠クロック生成回路２ｃにおいては、ビットマップ情報１４ｃのカウント値１５で示されるビット位置の値がクロックイネーブル２５ｃとしてセレクタ２２から出力され、このクロックイネーブル２５ｃが１を示すときだけクロックゲートセル２３から間欠クロック１２ｃが出力される。
【００５０】
このように、間欠クロック生成回路２ａ，２ｂ，２ｃは、基準クロック１１からビットマップ情報１４ａ，１４ｂ，１４ｃが示す組み合わせでパルスを間引きして、間欠するパルス列である間欠クロック１２ａ，１２ｂ，１２ｃを生成する。そして、間欠クロック生成回路２ａ，２ｂ，２ｃは、生成した間欠クロック１２ａ，１２ｂ，１２ｃをタイミング信号に応じて出力する。
【００５１】
また、本実施の形態に係るクロック発生回路は、図４に示すように、プロセッサ６と、共有メモリ７とをさらに備えている。プロセッサ６は、ビットマップ回路４ａ，４ｂ，４ｃのそれぞれにビットマップ情報１４ａ，１４ｂ，１４ｃを設定する制御部として機能する。共有メモリ７は、例えば動作モード毎に最適なビットマップ情報の組み合わせを記憶しておく記憶部である。本実施の形態では、例えば、共有メモリ７は、ビットマップ回路４ａ，４ｂ，４ｃに記憶されたビットマップ情報１４ａ，１４ｂ，１４ｃのそれぞれを、ビット位置毎に合計した値が、全てのビット位置間で平準化されるようにあらかじめ決定されたビットマップ情報１４ａ，１４ｂ，１４ｃの組み合わせを記憶している。プロセッサ６と、共有メモリ７と、ビットマップ回路４ａ，４ｂ，４ｃとは、システムバス８を介して接続されている。
【００５２】
プロセッサ６は、動作モードに応じて最適なビットマップ情報の組み合わせを共有メモリ７から読み出し、システムバス８を介してビットマップ回路４ａ，４ｂ，４ｃにビットマップ情報１４ａ，１４ｂ，１４ｃを設定する。本実施の形態では、プロセッサ６は、ビットマップ回路４ａ，４ｂ，４ｃに記憶されたビットマップ情報１４ａ，１４ｂ，１４ｃのそれぞれを、ビット位置毎に合計した値が、全てのビット位置間で平準化されるように、ビットマップ情報１４ａ，１４ｂ，１４ｃのそれぞれを設定することに特徴を有している。すなわち、プロセッサ６は、共有メモリ７に記憶された組み合わせに基づいてビットマップ情報１４ａ，１４ｂ，１４ｃのそれぞれを設定する。従って、プロセッサ６により、所定のクロックサイクル数単位において、ロジック回路３ａ，３ｂ，３ｃのそれぞれの処理速度要求に応じたクロックパルス数のクロックパルスが、ロジック回路３ａ，３ｂ，３ｃ全体で消費される合計電流値の時間変化が最小となるタイミングで発振される組み合わせのビットマップ情報１４ａ，１４ｂ，１４ｃが設定される。
【００５３】
次に、本実施の形態に係るクロック発生回路の動作について説明する。まず、プロセッサ６は、ビットマップ情報１４ａ，１４ｂ，１４ｃを、ロジック回路３ａ，３ｂ，３ｃの要求する処理速度にそれぞれ応じたものであって、かつビットマップ情報１４ａ，１４ｂ，１４ｃのそれぞれをビット位置毎に合計した値が全てのビット位置間で平準化される組み合わせのものに設定する。発振回路１から基準クロック１１が出力されると、カウンタ回路５は、この基準クロック１１に基づいて一定のタイミング信号を生成し、カウント値１５を出力する。
【００５４】
間欠クロック生成回路２ａ，２ｂ，２ｃは、発振回路１から出力される基準クロック１１から各ビットマップ情報１４ａ，１４ｂ，１４ｃに基づき所定のクロックパルスを間引いて、間欠クロック１２ａ，１２ｂ，１２ｃを生成する。具体的には、セレクタ２２が、ビットマップ情報１４ａ，１４ｂ，１４ｃからカウント値２４で示されるビット位置の値を選択してクロックイネーブル２５ａ，２５ｂ，２５ｃとして出力する。クロックゲートセル２３は、クロックイネーブル２５ａ，２５ｂ，２５ｃが１を示すときだけ間欠クロック１２ａ，１２ｂ，１２ｃを出力する。
【００５５】
このように所定のクロックサイクル数単位で発振タイミングが任意に制御された間欠クロック１２ａ，１２ｂ，１２ｃを生成し、生成した間欠クロック１２ａ，１２ｂ，１２ｃをロジック回路３ａ，３ｂ，３ｃに供給する。この間欠クロック１２ａ，１２ｂ，１２ｃは、ロジック回路３ａ，３ｂ，３ｃの処理速度要求に応じて単位時間当りのクロックパルス数を変化させたもので、かつロジック回路３ａ，３ｂ，３ｃ全体で消費される合計電流値の時間変化が最小となるタイミングで発振されるように調整されたものである。ロジック回路３ａ，３ｂ，３ｃは、この間欠クロック１２ａ，１２ｂ，１２ｃを用いて動作を行う。
【００５６】
ここで、本実施の形態に係るクロック生成回路にて生成された間欠クロック１２ａ，１２ｂ，１２ｃを用いて駆動されるロジック回路３ａ，３ｂ，３ｃの合計電力の時間変化について、図６を用いて説明する。図６は、実施の形態２に係るクロック発生回路を用いて駆動したロジック回路全体の合計電力の時間変化の一例を示すタイミングチャートである。以下では、図６の波形５１に示す基準クロック１１の１６クロックサイクル分を単位とする１６サイクル周期で、３つの間欠クロック１２ａ，１２ｂ，１２ｃを生成する場合について例示的に説明する。
【００５７】
共有メモリ７に、例えばそれぞれ３０％、５０％、７０％の処理速度を要求する３つのロジック回路３に間欠クロックを供給する場合のビットマップ情報１４の組み合わせとして、それぞれ０ｘ１１５１、０ｘＡＡＡＡ、０ｘＥＥＥＥ（１６進表記）を定義しておく。プロセッサ６は、ロジック回路３ａ，３ｂ，３ｃがそれぞれ３０％、５０％、７０％の処理速度を要求する場合、共有メモリ７から０ｘ１１５１、０ｘＡＡＡＡ、０ｘＥＥＥＥをビットマップ情報１４ａ，１４ｂ，１４ｃとして読出す。そして、プロセッサ６は、読み出した０ｘ１１５１、０ｘＡＡＡＡ、０ｘＥＥＥＥのビットマップ情報１４ａ，１４ｂ，１４ｃをビットマップ回路４ａ，４ｂ，４ｃにそれぞれ設定する。
【００５８】
カウンタ回路５により生成されるカウント値１５は、図６のタイミング信号５２に示すように、基準クロック１１に基づいて０から１５まで順次インクリメントする動作を繰返す。クロックイネーブル２５ａは、セレクタ２２によって、図６の波形５６のようにビットマップ情報１４ａのカウント値１５で指定されるビット位置の値が選択される。ここでは、１６進表記から２進表記に変更された１６ビットからなるビットマップ情報１４ａのうち、カウント値１５で指定されるビット位置の値、すなわち０か１のいずれかがクロックイネーブル２５ａとして出力される。間欠クロック１２ａは、クロックイネーブル２５ａの値が１のときだけ発振する。
【００５９】
同様に、クロックイネーブル２５ｂは、セレクタ２２によって、図６の波形５７のようにビットマップ情報１４ｂのカウント値１５で指定されるビット位置の値が選択される。ここでは、１６進表記から２進表記に変更された１６ビットからなるビットマップ情報１４ｂのうち、カウント値１５で指定されるビット位置の値、すなわち０か１のいずれかがクロックイネーブル２５ｂとして出力される。間欠クロック１２ｂは、クロックイネーブル２５ｂの値が１のときだけ発振する。
【００６０】
また、クロックイネーブル２５ｃは、セレクタ２２によって、図６の波形５８のようにビットマップ情報１４ｃのカウント値１５で指定されるビット位置の値が選択される。ここでは、１６進表記から２進表記に変更された１６ビットからなるビットマップ情報１４ｃのうち、カウント値１５で指定されるビット位置の値、すなわち０か１のいずれかがクロックイネーブル２５ｃとして出力される。間欠クロック１２ｃは、クロックイネーブル２５ｃの値が１のときだけ発振する。
【００６１】
このようにして、間欠クロック１２ａは、間欠クロック生成回路２ａにより図６に示す波形５９のように加工される。波形５９は、１６サイクル周期のうち、１１パルス分に相当する基準クロック１１が間引かれ、５パルス分に相当する基準クロック１１が維持されている間欠クロック１２ａである。例えば図６では、波形５９は、カウント値１５が１，２，３，５，７，９，１０，１１，１３，１４，１５のときに基準クロック１１を休止している。
【００６２】
一方、間欠クロック１２ｂは、間欠クロック生成回路２ｂにより図６に示す波形６０のように加工される。波形６０は、１６サイクル周期のうち、８パルス分に相当する基準クロック１１が間引かれ、８パルス分に相当する基準クロック１１が維持されている間欠クロック１２ｂである。例えば図６では、波形６０は、カウント値１５が０，２，４，６，８，１０，１２，１４のときに基準クロック１１を休止している。
【００６３】
また、間欠クロック１２ｃは、間欠クロック生成回路２ｃにより図６に示す波形６１のように加工される。波形６１は、１６サイクル周期のうち、４パルス分に相当する基準クロック１１が間引かれ、１２パルス分に相当する基準クロック１１が維持されている間欠クロック１２ｂである。例えば図６では、波形６１は、カウント値１５が０，４，８，１２のときに基準クロック１１を休止している。
【００６４】
この波形５９，６０，６１に示すような間欠クロック１２ａ，１２ｂ，１２ｃをロジック回路３ａ，３ｂ，３ｃにそれぞれ供給すると、各間欠クロック１２ａ，１２ｂ，１２ｃが発振するときにロジック回路３ａ，３ｂ，３ｃ内部でトランジスタのスイッチング電流が流れて電力が発生する。その結果、ロジック回路３ａ，３ｂ，３ｃ全体で消費される合計電力の時間変化は図６に示す波形６２のようになる。この波形６２は、図１４の波形１１５に示した従来の合計電力の時間変化と比較すると、ピーク電力の発生タイミングが分散しており、かつ単位クロック当りの電力も低くなっている。従って、ピーク電力を抑制することができる。
【００６５】
なお、本実施の形態では、３つのロジック回路３ａ，３ｂ，３ｃに対してそれぞれ間欠クロック１２ａ，１２ｂ，１２ｃを供給するクロック発生回路として例示的に説明をしたが、クロック発生回路が間欠クロック１２を供給するロジック回路３の数は、３つに限るものではなく、複数であれば適宜変更が可能である。従って、クロック発生回路が備える間欠クロック生成回路２とビットマップ回路４の数についても、ロジック回路３の数に応じて適宜変更が可能である。すなわち、本実施の形態のクロック発生回路は、間欠クロック生成回路２とビットマップ回路４を少なくとも２つずつ備えていればよい。そして、プロセッサ６は、ビットマップ回路４は、ビットマップ回路４の一方にビットマップ情報１４を設定し、この設定したビットマップ情報１４に基づいて、他方のビットマップ回路４にビットマップ情報１４の設定を行う。
【００６６】
以上のように、本実施の形態では、複数のビットマップ回路４と、この複数のビットマップ回路４のそれぞれに対応して設けられた複数の間欠クロック生成回路２とを備える。そして、それぞれの間欠クロック生成回路２から生成された間欠クロック１２を複数のロジック回路３のそれぞれに供給する。これにより、複数のロジック回路３のそれぞれが要求する処理速度に応じたクロックパルス数のクロックパルスを分散して発振する間欠クロック１２を複数供給することができ、各ロジック回路３のピーク電力を抑制することができる。
【００６７】
また、カウンタ回路５を複数の間欠クロック生成回路２に対して共通に設けたため、複数の間欠クロック生成回路２から生成される各間欠クロック１２同士の位相関係を制御することができる。すなわち、複数の間欠クロック１２の間で位相がずれることがない。従って、常に合計電力の時間変化パタンを保証することが可能である。
【００６８】
さらに、本実施の形態では、複数のビットマップ回路４のそれぞれにビットマップ情報１４を設定するプロセッサ６を備えている。そして、プロセッサ６は、ビット位置毎に合計した値が全てのビット位置間で平準化される組み合わせのビットマップ情報１４を設定する。これにより、ロジック回路３全体のピーク電力を抑制することができる。このように、各間欠クロック１２の発振タイミングを設定することで、自由度の高いクロック管理が可能となり、ロジック回路３全体の電力変動を抑えることができる。
【００６９】
実施の形態３．
本実施の形態のクロック発生回路は、各ロジック回路３の規模重み付けを考慮した上で複数のロジック回路３に対してそれぞれ間欠クロックを供給するものである。上記実施の形態２では、間欠クロック１２の発振１回当たりの電力の重み付けがロジック回路３ａ，３ｂ，３ｃで同じものとして説明したが、実際は、間欠クロック１２ａ，１２ｂ，１２ｃの発振１回当りの電力の重み付けも異なる。すなわち、必要とされる処理内容によってロジック回路３ａ，３ｂ，３ｃの規模は異なり、間欠クロック１２ａ，１２ｂ，１２ｃの発振１回当りに消費される電流値がロジック回路３ａ，３ｂ，３ｃ間で異なっている。
【００７０】
ロジック回路３ａ，３ｂ，３ｃの電力の重み付けを、図６で示した１：１：１のものから、１：２：３に変更した場合、ロジック回路３ａ，３ｂ，３ｃ全体で消費される合計電力の時間変化は図７に示す波形６３のようになる。図７は、実施の形態２に係るクロック発生回路を用いて電力の重み付けの異なるロジック回路駆動したしたときのロジック回路全体の合計電力の時間変化の一例を示すタイミングチャートである。この波形６３においては、間欠クロック１２ｂ，１２ｃが共に発振するときの合計電力が、間欠クロック１２ａのみが発振するときの５倍となっており、ロジック回路３全体の電力変動が増加する。
【００７１】
このように、間欠クロック１２ａ，１２ｂ，１２ｃの発振１回当たりの電力の重み付けが異なると、ロジック回路３全体の電力変動が増加してしまうことがある。そこで、本実施の形態では、重み付けの異なる複数のロジック回路３に対して電力変動の抑制が可能な間欠クロックを供給することのできるクロック発生回路について説明を行う。
【００７２】
本実施の形態のクロック発生回路の構成は、図４に示した実施の形態２のクロック発生回路と同様である。ただし、本実施の形態では、プロセッサ６が、各ロジック回路３で消費される消費電流値を記憶し、記憶した消費電流値に基づいて、ロジック回路３全体で消費される合計電流値の時間変化が最小となる組み合わせのビットマップ情報１４を各ビットマップ回路４に設定することに特徴を有する。具体的には、プロセッサ６は、間欠クロック１２が供給されるロジック回路３それぞれの動作電流の予測値と、複数のビットマップ回路４に記憶させるビットマップ情報１４のそれぞれとに基づいて、ビット位置毎のロジック回路３それぞれの消費電流を合計した合計電流値を計算する。そして、プロセッサ６は、計算した合計電流値の時間変化が最小となるように、ビットマップ情報１４のそれぞれを設定する。また、本実施の形態では、例えば、共有メモリ７は、この合計電流値の時間変化が最小となるようにあらかじめ決定されたビットマップ情報１４組み合わせを記憶している。それ以外の構成については実施の形態２と同様であるため説明を省略する。
【００７３】
従って、本実施の形態に係るクロック発生回路の動作において、まず、次のようにプロセッサ６がビットマップ情報１４ａ，１４ｂ，１４ｃの設定を行う。すなわち、プロセッサ６は、ロジック回路３ａ，３ｂ，３ｃの要求する処理速度にそれぞれ応じたものであって、かつ、ロジック回路３ａ，３ｂ，３ｃ全体で消費される合計電流値の時間変化が各ロジック回路３ａ，３ｂ，３ｃの消費電流値を考慮したうえで最小となるタイミングで発振される組み合わせのものに、ビットマップ情報１４ａ，１４ｂ，１４ｃを設定する。以降の動作については実施の形態２と同様であるため説明を省略する。
【００７４】
ここで、本実施の形態に係るクロック生成回路にて生成された間欠クロック１２ａ，１２ｂ，１２ｃを用いて駆動されるロジック回路３ａ，３ｂ，３ｃの合計電力の時間変化について、図８を用いて説明する。図８は、実施の形態３に係るクロック発生回路を用いて駆動したロジック回路全体の合計電力の時間変化の一例を示すタイミングチャートである。以下では、図８の波形５１に示す基準クロック１１の１６クロックサイクル分を単位とする１６サイクル周期で、３つの間欠クロック１２ａ，１２ｂ，１２ｃを生成する場合について例示的に説明する。
【００７５】
まず、あらかじめ共有メモリ７に、ビットマップ情報１４の組み合わせを定義しておく。例えば、図９に示すように、それぞれ３０％、５０％、７０％の処理速度を要求する、電力の重み付けが１：２：３の３つのロジック回路３に間欠クロック１２を供給する場合のビットマップ情報１４の組み合わせとして、それぞれ０ｘ１１９１、０ｘ５５５５、０ｘＥＥＥＥ（１６進表記）を定義しておく。プロセッサ６は、ロジック回路３ａ，３ｂ，３ｃがそれぞれ３０％、５０％、７０％の処理速度を要求し、電力の重み付けが１：２：３である場合、共有メモリ７から０ｘ１１９１、０ｘ５５５５、０ｘＥＥＥＥをビットマップ情報１４ａ，１４ｂ，１４ｃ読み出す。そして、プロセッサ６は、読み出した０ｘ１１９１、０ｘ５５５５、０ｘＥＥＥＥのビットマップ情報１４ａ，１４ｂ，１４ｃをビットマップ回路４ａ，４ｂ，４ｃにそれぞれ設定する。
【００７６】
カウンタ回路５により生成されるカウント値１５は、図８のタイミング信号５２に示すように、基準クロック１１に基づいて０から１５まで順次インクリメントする動作を繰返す。クロックイネーブル２５ａは、セレクタ２２によって、図８の波形６４のようにビットマップ情報１４ａのカウント値１５で指定されるビット位置の値が選択される。間欠クロック１２ａは、クロックイネーブル２５ａの値が１のときだけ発振する。
【００７７】
同様に、クロックイネーブル２５ｂは、セレクタ２２によって、図８の波形６５のようにビットマップ情報１４ｂのカウント値１５で指定されるビット位置の値が選択される。間欠クロック１２ｂは、クロックイネーブル２５ｂの値が１のときだけ発振する。また、クロックイネーブル２５ｃは、セレクタ２２によって、図８の波形６６のようにビットマップ情報１４ｃのカウント値１５で指定されるビット位置の値が選択される。間欠クロック１２ｃは、クロックイネーブル２５ｃの値が１のときだけ発振する。
【００７８】
このようにして、間欠クロック１２ａは、間欠クロック生成回路２ａにより図８に示す波形６７のように加工される。波形６７は、１６サイクル周期のうち、１１パルス分に相当する基準クロック１１が間引かれ、５パルス分に相当する基準クロック１１が維持されている間欠クロック１２ａである。例えば図８では、波形６７は、カウント値１５が１，２，３，５，６，９，１０，１１，１３，１４，１５のときに基準クロック１１を休止している。
【００７９】
一方、間欠クロック１２ｂは、間欠クロック生成回路２ｂにより図８に示す波形６８のように加工される。波形６８は、１６サイクル周期のうち、８パルス分に相当する基準クロック１１が間引かれ、８パルス分に相当する基準クロック１１が維持されている間欠クロック１２ｂである。例えば図８では、波形６８は、カウント値１５が１，３，５，７，９，１１，１３，１５のときに基準クロック１１を休止している。
【００８０】
また、間欠クロック１２ｃは、間欠クロック生成回路２ｃにより図８に示す波形６９のように加工される。波形６９は、１６サイクル周期のうち、４パルス分に相当する基準クロック１１が間引かれ、１２パルス分に相当する基準クロック１１が維持されている間欠クロック１２ｂである。例えば図８では、波形６９は、カウント値１５が０，４，８，１２のときに基準クロック１１を休止している。
【００８１】
この波形６７，６８，６９に示すような間欠クロック１２ａ，１２ｂ，１２ｃをロジック回路３ａ，３ｂ，３ｃにそれぞれ供給すると、各間欠クロック１２ａ，１２ｂ，１２ｃが発振するときにロジック回路３ａ，３ｂ，３ｃ内部でトランジスタのスイッチング電流が流れて電力が発生する。その結果、ロジック回路３ａ，３ｂ，３ｃ全体で消費される合計電力の時間変化は図８に示す波形７０のようになる。
【００８２】
たとえば、カウント値１５の値が１のとき、クロックイネーブル２５ａの値は１、クロックイネーブル２５ｂの値は１、クロックイネーブル２５ｃの値は０である。この時、合計電力は１×１＋１×２＋０×３＝３となる。
【００８３】
また、カウント値１５の値が２のとき、クロックイネーブル２５ａの値は０、クロックイネーブル２５ｂの値は１、クロックイネーブル２５ｃの値は１である。この時、合計電力は０×１＋１×２＋１×３＝５となる。同様の手順で合計電力の時間変化を示したものが、波形７０である。
【００８４】
この波形７０は、図７の波形６３に示した電力の重み付けを考慮しない場合の合計電力の時間変化と比較すると、電力の変動が小さいことがわかる。従って、ピーク電力を抑制することができる。
【００８５】
以上のように、本実施の形態では、複数のロジック回路３で消費される合計電流値の時間変化が電力の重み付けを考慮したうえで極力少なくなる組み合わせのビットマップ情報１４を設定している。これにより、より効果的に電力の変動を抑制できる。従って、ロジック回路３全体のピーク電力をより効果的に抑制することができる。
【００８６】
その他の実施の形態．
上記実施の形態２、３においては、クロック発生回路が、間欠クロック１２の供給を、複数のロジック回路３の全てに対して同時に開始する場合について説明を行ったが、間欠クロック１２の供給を開始するタイミングはこれに限るものではない。クロック発生回路は、異なるタイミングで間欠クロック１２の供給を開始することもできる。これについてもう少し詳しく説明する。
【００８７】
例えば、図４に示した３つのロジック回路３ａ，３ｂ，３ｃに３つの間欠クロック１２ａ，１２ｂ，１２ｃを供給するクロック発生回路において、ロジック回路３ａ，３ｂへの間欠クロック１２ａ，１２ｂの供給を開始した後に、別のタイミングで、ロジック回路３ｃへの間欠クロック１２ｃの供給を開始することができる。
【００８８】
この場合、まず、プロセッサ６は、ロジック回路３ａ，３ｂの動作モードに応じて最適なビットマップ情報の組み合わせを共有メモリ７から読み出し、ビットマップ回路４ａ，４ｂにビットマップ情報１４ａ，１４ｂとして設定する。間欠クロック生成回路２ａ，２ｂは、設定されたビットマップ情報１４ａ，１４ｂに基づいて、基準クロック１１から所定のクロックパルスを間引いて間欠クロック１２ａ，１２ｂを生成する。そして、間欠クロック生成回路２ａ，２ｂは、生成した間欠クロック１２ａ，１２ｂをロジック回路３ａ，３ｂに供給する。
【００８９】
次に、間欠クロック１２ｃの供給を開始する際に、プロセッサ６は、ビットマップ情報１４ａ，１４ｂに基づいてビットマップ情報１４ｃを設定する。具体的には、プロセッサ６は、ロジック回路３ｃの動作モードに応じたものであって、ビットマップ情報１４ａ，１４ｂとの組み合わせが最適なビットマップ情報を供有メモリ７から読出し、ビットマップ回路４ｃにビットマップ情報１４ｃとして設定する。間欠クロック生成回路２ｃは、設定されたビットマップ情報１４ｃに基づいて、基準クロック１１から所定のクロックパルスを間引いて間欠クロック１２ｃを生成し、生成した間欠クロック１２ｃをロジック回路３ｃに供給する。
【００９０】
このように、既に供給を行っている間欠クロック１２のビットマップ情報１４に基づいて、これから供給を開始する間欠クロック１２のビットマップ情報１４を適宜設定することで、複数のロジック回路３に対して異なるタイミングで間欠クロック１２の供給を開始することができる。
【００９１】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００９２】
１  発振回路、２、２ａ、２ｂ、２ｃ  間欠クロック生成回路、
３、３ａ、３ｂ、３ｃ  ロジック回路、
４、４ａ、４ｂ、４ｃ  ビットマップ回路、５  カウンタ回路、
６  プロセッサ、７  共有メモリ、８  システムバス、
１１  基準クロック、
１２、１２ａ、１２ｂ、１２ｃ  間欠クロック、
１４、１４ａ、１４ｂ、１４ｃ  ビットマップ情報、
１５  カウント値、２１  カウンタ回路、２２  セレクタ、
２３  クロックゲートセル、２４  カウント値、
２５、２５ａ、２５ｂ、２５ｃ  クロックイネーブル、
５１  波形、５２  タイミング信号、
５３〜７０  波形、１０１  発振回路、
１０２、１０２ａ、１０２ｂ、１０２ｃ  クロック速度制御回路、
１０３、１０３ａ、１０３ｂ、１０３ｃ  ロジック回路、
１０４  クロック、
１０５、１０５ａ、１０５ｂ、１０５ｃ  動作クロック、
１０７〜１１９  波形
【図１】
2011221711.tif 000003
【図２】
2011221711.tif 000004
【図３】
2011221711.tif 000005
【図４】
2011221711.tif 000006
【図５】
2011221711.tif 000007
【図６】
2011221711.tif 000008
【図７】
2011221711.tif 000009
【図８】
2011221711.tif 000010
【図９】
2011221711.tif 000011
【図１０】
2011221711.tif 000012
【図１１】
2011221711.tif 000013
【図１２】
2011221711.tif 000014
【図１３】
2011221711.tif 000015
【図１４】
2011221711.tif 000016
【図１５】
2011221711.tif 000017