(57)【要約】マルチモード、均一待ち時間クロック発生回路（ＣＧＣ）がこの中に記述される。１つの実施形態では、マルチモード、均一待ち時間ＣＧＣは作動中のクロックチョッピング信号に反応してクロック発生パスを介してパルスクロック信号を発生し、そして停止中のクロックチョッピング信号に反応して同じクロック発生パスを介して位相クロック信号を発生する。クロックチョッピング信号は第１の状態にあるモード制御入力信号に反応して活性化され、そして第２の状態にあるモード制御入力信号か停止中の複数のクロックイネーブル信号のどちらかに反応して不活性化される。１つまたはそれ以上の実施形態では、マルチモード、均一待ち時間ＣＧＣはタイミング反応モード内で動作している時にはステージ間パルス化逐次蓄積素子にパルスクロック信号を供給するための、そしてタイミング無反応モード内で動作している時にはステージ間パルス化逐次蓄積素子に位相クロック信号を供給するためのマイクロプロセッサ内に含まれる。
2009532779.tif 000002
【特許請求の範囲】
【請求項１】
均一待ち時間を有するマルチモードクロック信号を発生する方法であって、
作動中のクロックチョッピング信号に反応してクロック発生パスを介してパルスクロック信号を発生し、
停止中の該クロックチョッピング信号に反応して該同じクロック発生パスを介して位相クロック信号を発生し、
第１の状態にあるモード制御入力信号に反応して該クロックチョッピング信号を活性化し、そして
第２の状態にある該モード制御入力信号および停止中の複数のクロックイネーブル信号の１つに反応して該クロックチョッピング信号を不活性化する、
ことを含む方法。
【請求項２】
該クロックチョッピング信号を活性化することが、該第１の状態にある該モード制御入力信号に反応して位相クロック入力信号を遅延させることを含む、請求項１記載の方法。
【請求項３】
該クロックチョッピング信号を不活性化することが、該第２の状態にある該モード制御入力信号および停止中の該クロックイネーブル信号の１つに反応して該遅延位相クロック入力信号の発生を阻止することを含む、請求項２記載の方法。
【請求項４】
停止中の該クロックイネーブル信号に反応して該パルスおよび位相クロック信号の発生をディスエーブルにすることをさらに含む、請求項１記載の方法。
【請求項５】
該パルスおよび位相クロック信号の１つに反応して複数のパルス化逐次蓄積素子によってデータを取り込むことをさらに含む、請求項１記載の方法。
【請求項６】
マルチモード、均一待ち時間クロック発生回路であって、
単一クロック発生パスを有するクロック発生ステージと、該クロック発生ステージは作動中のクロックチョッピング信号に反応してパルスクロック信号および停止中の該クロックチョッピング信号に反応して位相クロック信号を発生するように構成され、
パルスモード内でイネーブルにされた時に該クロックチョッピング信号を活性化し、および、位相モード内でイネーブルにされた時に該クロックチョッピング信号を不活性化するように構成されたクロックチョッピングステージと、そして
第１の状態にあるモード制御入力信号に反応してパルスモード内で該クロックチョッピングステージをイネーブルにし、第２の状態にある該モード制御入力信号に反応して位相モード内で該クロックチョッピングステージをイネーブルにし、そして停止中の複数のクロックイネーブル信号に反応して該クロックチョッピングステージをディスエーブルにするように構成されたモード制御回路と、
を具備する、マルチモード、均一待ち時間クロック発生回路。
【請求項７】
該クロックチョッピングステージが位相クロック入力信号を遅延させ、そして該遅延位相クロック入力信号を該クロック発生ステージに供給することによってパルスモード内でイネーブルにされた時に該クロックチョッピング信号を活性化し、そして該遅延位相クロック入力信号の発生を阻止し、そして位相クロックゲーチング信号を該クロック発生ステージに供給することによって位相モード内でイネーブルにされた時に該クロックチョッピング信号を不活性化するように構成される、請求項６記載のマルチモード、均一待ち時間クロック発生回路。
【請求項８】
該クロックチョッピングステージが、
パルスモード内でイネーブルにされた時に該位相クロック入力信号を通過させ、そして位相モード内でイネーブルにされた時に該遅延位相クロック入力信号の発生を阻止するように構成されたゲーチング回路と、そして
該位相クロック入力信号を遅延させそして該位相クロック入力信号を通過させる該ゲーチング回路に反応して該遅延位相クロック入力信号を該クロック発生ステージに供給し、そして該遅延位相クロック入力信号の発生を阻止する該ゲーチング回路に反応して該位相クロックゲーチング信号を該クロック発生ステージに供給するように構成された遅延素子とを具備する、
請求項７記載のマルチモード、均一待ち時間クロック発生回路。
【請求項９】
該モード制御回路が該第１の状態にある該モード制御入力信号に反応してパルスモード内で該クロックチョッピングステージをイネーブルにし、該第２の状態にある該モード制御入力信号に反応して位相モード内で該クロックチョッピングステージをイネーブルにし、そして停止中の該クロックイネーブル信号に反応して該クロックチョッピングステージをディスエーブルにするように構成されたアンド・オア・インバート（ＡＯＩ）論理ゲートを具備する、請求項６記載のマルチモード、均一待ち時間クロック発生回路。
【請求項１０】
該ＡＯＩ論理ゲートが、
停止中の該クロックイネーブル信号に反応して該クロックチョッピングステージをディスエーブルにするように構成された第１のステージと、そして
第１の状態にある該モード制御入力信号に反応してパルスモード内で該クロックチョッピングステージをイネーブルにし、そして該第２の状態にある該モード制御入力信号に反応して位相モード内で該クロックチョッピングステージをイネーブルにするように構成された第２のステージとを具備する、
請求項９記載のマルチモード、均一待ち時間クロック発生回路。
【請求項１１】
停止中の該クロックイネーブル信号に反応して該クロック発生ステージをディスエーブルにするように構成されたクロックイネーブル回路をさらに具備する、請求項６記載のマルチモード、均一待ち時間クロック発生回路。
【請求項１２】
請求項６記載のマルチモード、均一待ち時間クロック発生回路を具備する集積回路。
【請求項１３】
該モード制御入力信号が正規機能動作モードおよびスキャンテストモードの実行／取込みステージの１つにある該集積回路に反応して該第１の状態に、そして、該モード制御入力信号が該スキャンテストモード、低パワーモード、および待機モードの負荷／無負荷ステージの１つにある集積回路に反応して該第２の状態にある、請求項１２記載のマルチモード、均一待ち時間クロック発生回路。
【請求項１４】
マイクロプロセッサであって、
１つまたはそれ以上のパイプラインと、なお各パイプラインはステージ間パルス化逐次蓄積素子によって分離された複数のステージを有し、そして
マルチモード、均一待ち時間クロック発生回路とを具備し、マルチモード、該均一待ち時間クロック発生回路は、
単一クロック発生パスを有するクロック発生ステージと、なお、該クロック発生ステージは作動中のクロックチョッピング信号に反応してパルスクロック信号をステージ間パルス化逐次蓄積素子に供給し、そして停止中の該クロックチョッピング信号に反応して位相クロック信号を該ステージ間パルス化逐次蓄積素子に供給するように構成されており、
パルスモード内でイネーブルにされた時に該クロックチョッピング信号を活性化し、そして位相モード内でイネーブルにされた時に該クロックチョッピング信号を不活性化するように構成されたクロックチョッピングステージと、そして
第１の状態にあるモード制御入力信号に反応してパルスモード内で該クロックチョッピングステージをイネーブルにし、第２の状態にある該モード制御入力信号に反応して位相モード内で該クロックチョッピングステージをイネーブルにし、そして停止中の複数のクロックイネーブル信号に反応して該クロックチョッピングステージをディスエーブルにするように構成されたモード制御回路と、
を具備するマイクロプロセッサ。
【請求項１５】
該クロックチョッピングステージが、位相クロック入力信号を遅延させ、そして該遅延位相クロック入力信号を該クロック発生ステージに供給することによって、パルスモード内でイネーブルにされた時に該クロックチョッピング信号を活性化するおよび該遅延位相クロック入力信号の発生を阻止し、そして位相クロックゲーチング信号を該クロック発生ステージに供給することによって位相モード内でイネーブルにされた時に該クロックチョッピング信号を不活性化するように構成される、
請求項１４記載のマイクロプロセッサ。
【請求項１６】
該クロックチョッピングステージが、
パルスモード内でイネーブルにされた時に該位相クロック入力信号を通過させ、そして位相モード内でイネーブルにされた時に該遅延位相クロック入力信号の発生を阻止するように構成されたゲーチング回路と、そして
該位相クロック入力信号を遅延させるおよび該位相クロック入力信号を通過させる該ゲーチング回路に反応して該遅延位相クロック入力信号を該クロック発生ステージに供給し、そして該遅延位相クロック入力信号の発生を阻止する該ゲーチング回路に反応して該位相クロックゲーチング信号を該クロック発生ステージに供給するように構成された遅延素子を具備する、請求項１５記載のマイクロプロセッサ。
【請求項１７】
該モード制御回路が該第１の状態にある該モード制御入力信号に反応してパルスモード内で該クロックチョッピングステージをイネーブルにし、該第２の状態にある該モード制御入力信号に反応して位相モード内で該クロックチョッピングステージをイネーブルにし、そして停止中の該クロックイネーブル信号に反応して該クロックチョッピングステージをディスエーブルにするように構成されたアンド・オア・インバート（ＡＯＩ）論理ゲートを具備する、請求項１４記載のマイクロプロセッサ。
【請求項１８】
該ＡＯＩ論理回路が、
停止中の該クロックイネーブル信号に反応して該クロックチョッピングステージをディスエーブルにするように構成された第１のステージと、そして
第１の状態にある該モード制御入力信号に反応してパルスモード内で該クロックチョッピングステージをイネーブルにするおよび該第２の状態にある該モード制御入力信号に反応して位相モード内で該クロックチョッピングステージをイネーブルにするように構成された第２のステージと、
を具備する請求項１７記載のマイクロプロセッサ。
【請求項１９】
停止中の該クロックイネーブル信号に反応して該クロック発生ステージをディスエーブルにするように構成されたクロックイネーブル回路をさらに具備する、請求項１４記載のマイクロプロセッサ。
【請求項２０】
該モード制御入力信号が正規機能動作モードおよびスキャンテストモードの実行／取込みステージの１つにある該マイクロプロセッサに反応して該第１の状態にあるおよび該モード制御入力信号が該スキャンテストモード、低パワーモード、および待機モードの負荷／無負荷ステージの１つにある該集積回路に反応して該第２の状態にある、請求項１４記載のマイクロプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
［分野］
本開示は一般にクロックゲーチング（clock gating）に関し、そして詳しくは均一待ち時間（uniform latency）を有するマルチモードクロック信号を発生することに関する。
【０００２】
［背景］
高性能集積回路、特にマイクロプロセッサは、一般にいろいろなモードの動作を提供する。マイクロプロセッサは典型的に高性能、低パワー、待機、あるいはテストモードのようないろいろな動作モードの１つの中で動作する。マイクロプロセッサはタイミング臨界アプリケーションで仕事をした時に高性能モード内で動作する。いくつかのマイクロプロセッサは、タイミング臨界アプリケーションに関連する命令を実行する時に性能を改善するために、パルス化逐次蓄積素子(pulsed sequential storage element)、例えば、パルス化ラッチまたはフリップフロップを使用する。例えば、パルス化逐次蓄積素子はパイプラインステージ間のデータ転送速度を改善するための命令実行パイプラインの全体に亘って分散される。パルス化逐次蓄積素子はパルスクロック信号、即ち、クロック周期の半分未満のパルス幅を有するクロック信号、に応じてデータを取り込むおよび／または実行する。
【０００３】
しかしながら、１動作モード、例えば、低パワー、待機またはテストモード内で構成された時にはこれはタイミングに無反応である。特に、マイクロプロセッサ内に含まれたパルス化逐次蓄積素子は正確に機能できない。例えば、スキャンテストの間中、パルス化逐次蓄積素子は一般に、マイクロプロセッサ内へのテストデータのローディング、およびマイクロプロセッサからのテスト結果のアンローディングを容易とするために１つまたはそれ以上の“スキャンチェーン”内に配列される。スキャンチェーンとして構成された時、パルス化逐次蓄積素子は一般に狭いクロックパルスによってトリガされた時は正確に機能しない。そのように、位相クロック信号（phase clock signal）、即ち、クロック周期のほぼ半分のパルス幅を有するクロック信号は正確な機能性を保証するためにクロックパルス化逐次蓄積素子に使用される。
【０００４】
従来のマイクロプロセッサは一般にパルス化逐次蓄積素子にパルスおよび位相クロック信号の両方を供給するための別個のクロック発生器を含む。即ち、１つのクロック発生器はタイミング臨界動作モードの間中パルス化蓄積素子をクロッキングするためのパルスクロック信号を供給し、そして別個のクロック発生器はタイミング無反応動作モードの間中パルス化蓄積素子をクロッキングするための位相クロック信号を供給する。別個のクロック発生器のクロック信号出力はマイクロプロセッサの特定の動作モードに基づいた選択のためのマルチプレクサ回路に渡される。そのようなアプリケーションでは、二重クロック信号発生器は追加のエリアおよびパワーを消費する。さらに、クロック発生器の１つによって生成されたクロック信号はインアクティブのクロック発生器と関連する追加の容量を必要とする。
【０００５】
クロックゆがみ（clock skew）はパルスおよび位相クロック信号の両者をパルス化逐次蓄積素子に供給するための別個のクロック発生器の使用をさらに複雑にする。クロックゆがみはマイクロプロセッサのようなシステムを介してそれが分布されるようなクロック信号の空間的な変動である。クロックゆがみは一般にクロックパスのいろいろな抵抗／容量（Ｒ／Ｃ）特性およびマイクロプロセッサ内の種々のポイントでのクロック信号の種々のローディングによって引き起こされる。クロックゆがみは二重クロック発生器が類似のクロック入力対出力待ち時間を有する時に低減される。換言すれば、ほぼ同じ遅延を有するクロック信号を生成するクロック発生器はクロックゆがみを最小にする。しかしながら、類似のクロック入力対出力待ち時間を有する別個のクロック発生器を形成することは、構成および回路配置変動のような与えられたいろいろな考慮すべき事柄を難しくする。
【発明の開示】
【０００６】
［開示の概要］
この中に教授された方法および装置に従って、マルチモード、均一待ち時間クロック発生回路(uniform-latency clock generation circuit)が示される。マルチモード、均一待ち時間クロック発生回路は作動中の（being active）クロックチョッピング信号(clock chopping signal)に反応してクロック発生パス（clock generation path）を介してパルスクロック信号を発生することおよび停止中の（being inactive）クロックチョッピング信号に反応して同じクロック発生パスを介して位相クロック信号を発生することによって均一待ち時間を有するマルチモードクロック信号を発生するように構成される。クロックチョッピング信号は第１の状態にあるモード制御入力信号に反応して活性化され、そして第２の状態にあるモード制御入力信号か停止中の複数のクロックイネーブル信号のどちらかに反応して不活性化される。
【０００７】
したがって、少なくとも１つの実施形態では、マルチモード、均一待ち時間クロック発生回路はクロック発生ステージ、クロックチョッピングステージ（clock chopping stage）およびモード制御回路を具備する。クロック発生ステージは単一クロック発生パスを有し、そして作動中のクロックチョッピング信号に反応してパルスクロック信号をおよび停止中のクロックチョッピング信号に反応して位相クロック信号を発生するように構成される。クロックチョッピングステージはパルスモード（pulse mode）においてイネーブルにされた時にクロックチョッピング信号を活性化し、そして位相モード（phase mode）においてイネーブルにされた時にクロックチョッピング信号を不活性化するように構成される。モード制御回路は第１の状態にあるモード制御入力信号に反応してパルスモード内でクロックチョッピングステージをイネーブルにし、第２の状態にあるモード制御入力信号に反応して位相モード内でクロックチョッピングステージをイネーブルにし、そして停止中の複数のクロックイネーブル信号に反応してクロックチョッピングステージをディスエーブル（disable）にするように構成される。
【０００８】
上記マルチモード、均一待ち時間クロック発生方法および装置に対応して、例示的なマイクロプロセッサはマルチモード、均一待ち時間クロック発生回路および各パイプラインがステージ間パルス化逐次蓄積素子によって分離された複数のステージを有する１つまたはそれ以上のパイプラインを具備する。マルチモード、均一待ち時間クロック発生回路はクロック発生ステージ、クロックチョッピングステージおよびモード制御回路を具備する。クロック発生ステージは単一クロック発生パスを有し、そして作動中のクロックチョッピング信号に反応してパルスクロック信号をステージ間パルス化逐次蓄積素子に供給するおよび停止中のクロックチョッピング信号に反応して位相クロック信号をステージ間パルス化逐次蓄積素子に供給するように構成される。クロックチョッピングステージはパルスモード内でイネーブルにされた時にクロックチョッピング信号を活性化し、そして位相モード内でイネーブルにされた時にクロックチョッピング信号を不活性化するように構成される。モード制御回路は第１の状態にあるモード制御入力信号に反応してパルスモード内でクロックチョッピングステージをイネーブルにし、第２の状態にあるモード制御入力信号に反応して位相モード内でクロックチョッピングステージをイネーブルにし、そして停止中の複数のクロックイネーブル信号に反応してクロックチョッピングステージをディスエーブルにするように構成される。
【０００９】
［詳細な説明］
もちろん、本開示は上記実施形態に限定されない。この分野の技術者は以下の詳細な説明を読んで、そして添付された図面を見て追加の可能性のある実施形態を認めるであろう。
【００１０】
図１はマルチモード、均一待ち時間クロック発生回路（ＣＧＣ；Clock Generation Circuit）１２を含むマイクロプロセッサ１０を図示する。ＣＧＣ１２はマイクロプロセッサ１０のクロック発生、制御および分配回路１４に含まれるかそれと結合される。クロック発生、制御および分配回路１４は外部システムクロック信号（ＳＹＳＣＬＫ）に反応してマイクロプロセッサ１０の内部タイミングを管理する。マイクロプロセッサ１０によって受信された外部モード制御入力信号（ｍｏｄｅ ｃｔｒｌ）に反応して、ＣＧＣ１２はパルスクロッキングモードまたは位相クロッキングモードのいずれかの中でイネーブルにされる。モード制御入力信号はマイクロプロセッサ１０が最高の性能、例えば、正常機能動作モードまたはスキャンテストモード（scan test mode）の実行／取込みステージ、のために構成される時にパルスモードを示すための第１の状態に設定される。反対に、モード制御入力信号はマイクロプロセッサ１０が安定な性能、例えば、スキャンテストモードまたは低パワーあるいは待機動作モード（standby operational mode）の負荷／無負荷ステージ（load/unload stage）、のために構成される時に位相モードを示すための第２の状態に設定される。
【００１１】
どちらかのクロッキングモードの間中、ＣＧＣ１２はマイクロプロセッサ１０のパルス化逐次蓄積素子１６−Ａ〜１６−Ｄ、即ち、パルス化ラッチまたはフリップフロップ回路、をクロッキングするためのクロック信号出力（ｃｌｋ ｏｕｔ）を発生する。ＣＧＣ１２によって発生されたクロック信号のパルス幅はＣＧＣ１２の動作モードによって決定される。パルスモードの中でイネーブルにされた時に、ＣＧＣ１２はパルスクロック信号、即ち、クロック周期の半分未満のパルス幅を有するクロック信号を発生する。位相モードの中でイネーブルにされた時に、ＣＧＣ１２は位相クロック信号、即ち、クロック周期のほぼ半分のパルス幅を有するクロック信号を発生する。
【００１２】
パルス化逐次蓄積素子１６−Ａ〜１６−ＤはＣＧＣ１２によって発生されたクロック信号を受信する。マイクロプロセッサ１０がタイミング反応モード、即ち、パルスモードの中で動作している時に、パルスクロック信号はパルス化逐次蓄積素子１６−Ａ〜１６−Ｄに最適速度で機能させる。短いパルス幅を有するクロック信号によってトリガされた時に、パルス化逐次蓄積素子１６−Ａ〜１６−Ｄはデータをより急速に取り込むおよび／または実行する。反対に、マイクロプロセッサ１０がタイミング無反応モード、即ち、位相モードの中で動作している時に、ＣＧＣ１２によって発生された位相クロック信号はパルス化逐次蓄積素子１６−Ａ〜１６−Ｄにより遅く、しかしタイミング変動への付加無反応の状態でデータを取り込ませおよび／または実行させる。
【００１３】
ＣＧＣ１２は単一クロック発生パス（図示せず）を介してパルスおよび位相クロック信号を発生する。そのように、単一クロック発生パスは、発生されたクロック信号がクロック発生モードにかかわらず同じクロック入力対出力待ち時間に従属うことによってクロックゆがみを減少させる。すなわち、ＣＧＣ１２によって発生されたクロック信号はパルスおよび位相モードの両者において同じ待ち時間を負う。したがって、ＣＧＣ１２によって引き起こされたクロックゆがみは極小化される。
【００１４】
動作中、マイクロプロセッサ１０はメモリ（図示せず）からの命令および対応するデータを検索する。マイクロプロセッサ１０は命令を実行し、そして結果をメモリに蓄積する。非限定の実例では、マイクロプロセッサ１０は命令を実行するための複数のパイプライン１８−Ａ〜１８−Ｄを含む。各パイプラインは１命令または１命令の部分を実行するための組合せ論理２０−Ａ〜２０−Ｄを含む複数のステージを含む。このステージはステージ間パルス化逐次蓄積素子１６−Ａ〜１６−Ｄによって分離される。ステージ間パルス化逐次蓄積素子１６−Ａ〜１６−Ｄは前のパイプラインステージからデータを取り込み、および／またはトリガ信号、例えばＣＧＣ１２によって発生されたクロック信号に反応して次のステージにデータをロードして実行する。
【００１５】
１つの実施形態では、メモリキャッシュ２２、例えば、レベル−２キャッシュはマイクロプロセッサ１０のバスインターフェイス論理（図示せず）を介して外部メモリから検索されたアドレスおよびデータ情報を蓄積する。メモリキャッシュ２２は命令情報を命令キャッシュ２４に順方向転送し、そしてデータキャッシュ２６にデータを順方向転送し、それからデータを受信する。命令ユニット２８はマイクロプロセッサ１０のパイプライン１８−Ａ〜１８−Ｄへの命令フローの集中制御を提供する。完成ユニット３０はパイプライン１８−Ａ〜１８−Ｄによる実行中、命令ユニット２８による手早い処置からの命令の処理を追跡する。各パイプラインはステージ内の命令ユニット２８から受信された命令を実行する。非限定の実例では、ブランチパイプライン１８−Ａは１命令を実行するための２ステージの組合せ論理２０−Ａを含み、浮動小数点パイプライン１８−Ｂは４ステージの組合せ論理２０−Ｂを含み、整数パイプライン１８−Ｃは３ステージの組合せ論理２０−Ｃを含み、そして負荷／蓄積パイプライン１８−Ｄは２ステージの組合せ論理２０−Ｄを含む。この分野の技術者はマイクロプロセッサ１０がスーパーパイプライン化、および／またはスーパースカラー化されてもよいことを認めるであろう。そのように、マイクロプロセッサ１０は各パイプラインがステージ間パルス化逐次蓄積素子によって分離された種々のステージを含むことができる命令を実行するための種々のパイプラインを含んでもよい。
【００１６】
図２はマルチモード、均一待ち時間ＣＧＣ１２の１実施形態を図示する。ＣＧＣ１２はクロック発生ステージ３２、クロックチョッピングステージ３４、モード制御回路３６およびクロックイネーブル回路３８を含む。モード制御回路３６はモード制御入力信号（ｍｏｄｅ ｃｔｒｌ）に応じてパルスまたは位相モードのいずれかの中でＣＧＣ１２をイネーブルにする。動作中、クロックチョッピングステージ３４はクロックチョッピング信号（ＣＨＯＰ）をクロック発生ステージ３２に供給する。図３のプログラム論理のステップ１００によって図示されたように、クロック発生ステージ３２はクロックチョッピング信号の状態次第でパルスまたは位相クロック信号（ｃｌｋ ｏｕｔ）のどちらかを発生する。クロックチョッピング信号がアクティブである時には、クロック発生ステージ３２はパルスクロック信号を発生する。反対に、クロックチョッピング信号がインアクティブである時には、クロック発生ステージ３２は位相クロック信号を発生する。
【００１７】
図３のプログラム論理のステップ１０２によって図示されたように、複数のクロックイネーブル信号、例えば、ｔｅｓｔ ｅｎおよびｃｌｋ ｅｎはクロックチョッピング信号がアクティブであるかインアクティブであるかを決定する。ＣＧＣ１２がパルスまたは位相モードのどちらかの中でイネーブルである時には、クロックイネーブル信号の少なくとも１つはアクティブである。例えば、ＣＧＣ１２が位相モードの中でイネーブルである時にはｔｅｓｔ ｅｎがアクティブであり、そしてＣＧＣ１２がパルスモードの中でイネーブルである時にはｃｌｋ ｅｎがアクティブである。さもなければ、すべてのクロックイネーブル信号はインアクティブであり、したがってＣＧＣ１２はパワーを節約するためにディスエーブルにされうることを示す。図３のプログラム論理のステップ１０４によって図示されたように、モード制御回路３６はすべてのクロックイネーブル信号がインアクティブである時にはクロックチョッピングステージ３４にクロックチョッピング信号を不活性化させる。詳しくは、モード制御回路３６はパルスクロック阻止信号（ｐｕｌｓｅ ｉｎｈｉｂｉｔ）を活性化し、したがってクロックチョッピングステージ３４にクロックチョッピング信号が不活性化されるべきであることを示す。そのように、クロックイネーブル信号がインアクティブである時にはクロックチョッピングステージ３４はもはや切り換えないのでパワー消費は低減される。もしクロック発生ステージ３２がイネーブルであれば、不活性化されたクロックチョッピング信号はクロック発生ステージ３２に以下で詳細に検討されるであろうように位相クロック信号を発生させる。パワー消費は停止中のクロックイネーブル信号に応じてクロック発生ステージ３２をディスエーブルにするクロックイネーブル回路３８によってさらに低減されることができる。詳しくは、クロックイネーブル回路３８はすべてのクロックイネーブル信号がインアクティブである、したがってクロック発生ステージ３２をディスエーブルにしている時に、クロック出力阻止信号（ｃｌｋ ｏｕｔ ｉｎｈｉｂｉｔ）を活性化する。
【００１８】
図３のプログラム論理のステップ１０６によって図示されたように、モード制御入力信号はどのモードの中でＣＧＣ１２がイネーブルにされるかを制御する。すなわち、モード制御入力信号がパルスモードを示す第１の状態にある時には、モード制御回路３６はパルスクロック阻止信号を不活性化する。これに応じて、クロックチョッピングステージ３４は図３のプログラム論理のステップ１０８によって図示されたようにクロックチョッピング信号を活性化し、したがってクロック発生ステージ３２にパルスクロック信号を発生させる。モード制御入力信号が位相モードを示す第２の状態にある時には、モード制御回路３６はパルスクロック阻止信号を活性化する。これに応じて、クロックチョッピングステージ３４は図３のプログラム論理のステップ１０４によって図示されたようにクロックチョッピング信号を不活性化し、したがってクロック発生ステージ３２に位相クロック信号を発生させる。
【００１９】
図４はマルチモード、均一待ち時間ＣＧＣ１２の例示的な回路実施の形態を図示する。この例示的な回路実施の形態は図５Ａ〜５Ｂを参照して次に記述され、それは、それぞれ、パルスおよび位相モードの間中マルチモード、均一待ち時間ＣＧＣ１２によって発生された種々の信号のタイミング関係を図示する。ＣＧＣ１２のクロック発生ステージ３２はクロックゲーチング回路（clock gating circuit）４０およびインバータ４２を具備する単一クロック発生パスを含む。ＣＧＣ１２のクロックチョッピングステージ３４はクロックチョッピングゲーチング回路４４および遅延素子４６を含む。ＣＧＣ１２のモード制御回路３６はアンド・オア・インバート（ＡＯＩ；and-or-invert）論理ゲート４８を含み、そしてＣＧＣ１２のクロックイネーブル回路３８は論理回路５０を含む。
【００２０】
クロック発生ステージ３２の単一クロック発生パスはクロック発生モードにかかわらず同じクロック入力対出力待ち時間を有するクロック信号を発生することによってクロックゆがみを減少させる。ＣＧＣ１２がパルスモードの中でイネーブルにされる時には、クロックゲーチング回路４０は位相クロック入力信号（ｃｌｋ ｉｎ）をアクティブクロックチョッピング信号（ＣＨＯＰ）と結合することによってパルスクロック信号を発生する。アクティブクロックチョッピング信号は位相クロック入力信号の遅延バージョンであるので、クロック発生ステージ３２の出力（ｃｌｋ ｏｕｔ）はクロックチョッピングステージ３４と関連する遅延に対応するパルス幅を有する周期的パルス信号である。そのように、ｃｌｋ ｏｕｔは、図５Ａによって図示されたような、クロックゲーチング回路４０およびインバータ４２と関連する遅延（ｔdclk gen stage）によるわずかなオフセットを有する位相クロック入力信号でエッジ整列される。
【００２１】
ＣＧＣ１２が位相モードの中でイネーブルにされる時には、クロック発生ステージ３２は位相クロック入力信号を不活性化クロックチョッピング信号と共にゲーチングすることによって位相クロック信号を発生する。不活性化クロックチョッピング信号はそれがある電圧レベルに固定されて振動しないので位相クロックゲーチング信号（phase clock gating signal）として機能する。そのように、クロック発生ステージ３２の出力（ｃｌｋ ｏｕｔ）は位相クロック入力信号のパルス幅に対応するパルス幅を有する周期的位相信号である。さらに、周期的位相信号出力は図５Ｂによって図示されたような、クロックゲーチング回路４０およびインバータ４２と関連する遅延（ｔdclk gen stage）による同じわずかなオフセットを有する位相クロック入力信号でエッジ整列される。ＣＧＣ１２によって発生されたパルスおよび位相クロック信号の両者は同じ遅延、すなわち、クロックゲーチング回路４０およびインバータ４２と関連する遅延（ｔdclk gen stage）に従われるので、ＣＧＣ１２と関連するクロックゆがみは極小化される。
【００２２】
ＣＧＣのクロックチョッピングステージ３４は位相クロック入力信号を遅延させることによってクロックチョッピング信号を活性化する。詳しくは、クロックチョッピングゲーチング回路４４はクロックチョッピングステージ３４がモード制御回路３６によってパルスモードの中でイネーブルにされる時に位相クロック入力信号（ｃｌｋ ｉｎ）を遅延素子４６に渡す。１つの実例内で２重のインバータ５２を具備する、遅延素子４６は位相クロック入力信号を遅延させ、そしてこの遅延された位相クロック入力信号をクロックチョッピング信号としてクロック発生ステージ３２に供給する。クロックチョピングステージ３４は位相クロック入力信号を遅延素子４６に渡さないように防ぐことによってクロックチョッピング信号を不活性化する。詳しくは、クロックチョッピングゲーチング回路４４はクロックチョッピングステージ３４がモード制御回路３６によって位相モードの中でイネーブルにされる時に固定レベルの位相クロックゲーチング信号を出力することによってクロックチョッピング信号を不活性化する。
【００２３】
モード制御回路３６のＡＯＩ論理ゲート４８は第１のステージ５６および第２のステージ５８を具備する。第１のステージ５６はすべてのクロックイネーブル信号、例えば、ｔｅｓｔ ｅｎおよびｃｌｋ ｅｎがパルスクロック阻止信号（ｐｕｌｓｅ ｉｎｈｉｂｉｔ）を活性化することによってインアクティブである時にクロックチョッピングステージ３４をディスエーブルにする。アクティブパルスクロック阻止信号はクロックチョッピングステージ３４にクロックチョッピング信号が不活性化されるべきであることを表示する。そのように、パワー消費はＣＧＣ１２がインアクティブである、即ち、すべてのクロックイネーブル信号がインアクティブである時に低減される。ＣＧＣ１２がインアクティブである時にパワー消費をさらに減少させるために、クロックイネーブル回路３８の論理回路５０はすべてのクロックイネーブル信号が停止中であることに応じてクロック発生ステージ３２をディスエーブルにする。ＡＯＩ論理ゲート４８を続けて、第２のステージ５８はパルスクロック阻止信号を不活性化することによってモード制御入力信号がパルスモード状態にある時にパルスモード内でクロックチョッピングステージ３４をイネーブルにする。反対に、第２のステージ５８はパルスクロック阻止信号を活性化することによってモード制御入力信号が位相モード状態にある時に位相モード内でクロックチョッピングステージ３４をイネーブルにする。
【００２４】
マルチモード、均一待ち時間ＣＧＣ１２は１つ以上のクロックモードについて１用途を有する任意の集積回路、例えば、図１に図示されたマイクロプロセッサ１０内に好都合に含まれてもよい。１つの実例では、モード制御入力信号は集積回路が正規機能動作モード（normal functional operating mode）またはスキャンテストモードの実行／取込みステージ（launch/capture stage）の１つの中で構成される時にパルスモードを示すための第１の状態に設定される。あるいは、モード制御入力信号はこの集積回路がスキャンテストモードまたは低パワーあるいは待機動作モードの負荷／無負荷ステージの１つの中にある時に位相モードを示すための第２の状態に設定される。
【００２５】
上記変動およびアプリケーションの範囲を心に置いて、本開示が前記明細書によって限定されないこと、そしてそれが添付図面によって限定されないことは理解されなければならない。そればかりか、本開示はそのクレームおよびそれらの正当な等価物によってのみ制限される。
【図面の簡単な説明】
【００２６】
【図１】マルチモード、均一待ち時間クロック発生回路を含むマイクロプロセッサを示すブロック図。
【図２】マルチモード、均一待ち時間クロック発生回路を示すブロック図。
【図３】均一待ち時間を有するマルチモードクロック信号を発生するためのプログラム論理を示す論理フロー図。
【図４】マルチモード、均一待ち時間クロック発生回路を示す回路図。
【図５Ａ】図４のマルチモード、均一待ち時間クロック発生回路によって発生された種々様々な信号を示すタイミング図。
【図５Ｂ】図４のマルチモード、均一待ち時間クロック発生回路によって発生された種々様々な信号を示すタイミング図。
【図１】
2009532779.tif 000003
【図２】
2009532779.tif 000004
【図３】
2009532779.tif 000005
【図４】
2009532779.tif 000006
【図５Ａ】
2009532779.tif 000007
【図５Ｂ】
2009532779.tif 000008
【国際調査報告】
2009532779.tif 000009
2009532779.tif 000010