(57)【特許請求の範囲】
【請求項１】
クロック信号を生成するように構成されたクロック源と、
１又はそれ以上の同期回路に結合された複数のリーフノードの各々に前記クロック信号を分配するように結合されたクロックツリーと、
前記複数のリーフノードのうちの対応するリーフノードの１又はそれ以上の前記同期回路の各々に供給される前記クロック信号をゲーティングするように構成された複数の微粒クロックゲーティングユニットと、
前記複数のリーフノードの一部を含む機能ユニットと、
前記複数のリーフノードの前記一部の各々のために前記クロック信号をゲーティングするように構成された粗クロックゲーティングユニットと、
前記粗クロックゲーティングユニットに結合され、前記クロック信号のＮサイクルのうちの１サイクルを有効にして、前記クロック信号のＮサイクルのうちのＮ−１サイクルを阻止することにより、前記複数のリーフノードの前記一部の各々に供給される前記クロック信号の周波数を選択的に制御するように構成されたゲーティング制御ユニットと、
を備えることを特徴とする装置。
【請求項２】
前記クロック信号を生成するように構成されたクロック生成ユニットをさらに備える、ことを特徴とする請求項１に記載の装置。
【請求項３】
前記ゲーティング制御ユニットが、前記微粒クロックゲーティングユニットの各々にそれぞれのイネーブル信号を供給するようにさらに結合され、前記微粒クロックユニットの各々が、そのそれぞれのイネーブル信号がアサートされた時に、それぞれ結合された同期回路に前記クロック信号を供給するように構成され、そのそれぞれのイネーブル信号がデアサートされた時に、前記それぞれ結合された同期回路に前記クロック信号が供給されるのを阻止するようにさらに構成される、
ことを特徴とする請求項１に記載の装置。
【請求項４】
前記同期回路が、少なくとも１つのフロップ回路及び少なくとも１つのラッチを含む、ことを特徴とする請求項１に記載の装置。
【請求項５】
前記粗クロックゲーティングユニットと、前記微粒クロックゲーティングユニットの各々とが、前記イネーブル信号及び前記クロック信号を受け取るように結合されたラッチと、前記ラッチから前記イネーブル信号を受け取るように結合された第１の入力、及び前記クロック信号を受け取るように結合された第２の入力を有するＡＮＤゲートとを含む、
ことを特徴とする請求項１に記載の装置。
【請求項６】
前記機能ユニットが、前記クロック信号の前記周波数の変更中に中断せずに動作を継続するように構成される、
ことを特徴とする請求項１に記載の装置。
【請求項７】
前記ゲーティング制御ユニットが、前記クロック信号の前記周波数を動的に変更するように構成される、
ことを特徴とする請求項１に記載の装置。
【請求項８】
前記ゲーティング制御ユニットが、
前記機能ユニットの処理作業負荷が減少したことに応答して前記クロック信号の前記周波数を低下させ、
前記機能ユニットの処理作業負荷が増加したことに応答して前記クロック信号の前記クロック周波数を上昇させる、
ように構成されることを特徴とする請求項１に記載の装置。
【請求項９】
クロック源から粗クロックゲーティングユニットに第１のクロック信号を供給するステップを含み、前記粗クロックゲーティングユニットが、前記第１のクロック信号に基づく第２のクロック信号をクロックツリーの複数のリーフノードに分配するように結合され、前記リーフノードの各々が、有効時に対応する１又はそれ以上の同期回路の各々に前記クロック信号を分配するように結合された対応する微粒クロックゲーティングユニットに関連付けられ、前記第１のクロック信号が第１の周波数を有し、前記第２のクロック信号が第２のクロック周波数を有し、
粗クロックゲーティングユニットに粗ゲーティングイネーブル信号を供給するステップをさらに含み、前記粗クロックゲーティングユニットが、前記粗ゲーティングイネーブル信号がアサートされた時に前記第２のクロック信号を出力するように構成されるとともに、前記粗ゲーティングイネーブル信号がデアサートされた時に前記第２のクロック信号を阻止するようにさらに構成され、
前記粗ゲーティングイネーブル信号を前記第１のクロック信号のＮサイクルのうちの１サイクルにわたってアサートし、前記粗ゲーティングイネーブル信号を前記第１のクロック信号のＮ−１サイクルにわたってデアサートすることにより、前記第２のクロック周波数が前記第１のクロック周波数よりも低くなるようにするステップをさらに含む、
ことを特徴とする方法。
【請求項１０】
クロック生成ユニットが、前記第１のクロック信号を生成し、該第１のクロック信号を前記クロックツリーに供給するステップをさらに含む、
ことを特徴とする請求項９に記載の方法。
【請求項１１】
前記粗クロックゲーティングイネーブル信号を前記第１のクロック信号のＮサイクルのうちのＮサイクルにわたってアサートすることにより、前記第１のクロック周波数と前記第２のクロック周波数が等しくなるようにするステップをさらに含む、
ことを特徴とする請求項９に記載の方法。
【請求項１２】
前記複数のリーフノードが機能ユニットに含まれ、前記方法が、
前記第２のクロック周波数を、前記第１のクロック周波数と等しい周波数から前記第１のクロック周波数よりも低い周波数に動的に変更するステップと、
前記第２のクロック周波数を動的に変更する前記ステップ中に前記機能ユニットの動作を継続するステップと、
をさらに含むことを特徴とする請求項９に記載の方法。
【請求項１３】
前記機能ブロックの処理作業負荷が減少したことに応答して、前記第２のクロック周波数を前記第１のクロック周波数と等しい周波数から低下させるステップと、
前記機能ブロックの前記処理作業負荷が増加したことに応答して、前記第２のクロック周波数を前記第１のクロック周波数と等しい周波数に上昇させるステップと、
をさらに含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記機能ブロックの前記処理作業負荷が増加したことに応答して、前記第２のクロック周波数を前記第１のクロック周波数と等しい周波数に上昇させるステップをさらに含む、ことを特徴とする請求項９に記載の方法。
【請求項１５】
Ｎが、１よりも大きな整数値である、
ことを特徴とする請求項９に記載の方法。
【請求項１６】
クロック源が、第１の周波数でルートクロック信号を生成するステップと、
前記ルートクロック信号を前記第１の周波数で粗クロックゲーティングユニットに供給するステップと、
前記粗クロックゲーティングユニットから、前記ルートクロック信号に基づく動作クロック信号を出力するステップと、
前記粗クロックゲーティングユニットにイネーブル信号を供給するステップと、
前記イネーブル信号を前記ルートクロック信号のＮサイクルのうちのＮサイクルにわたってアサートすることにより、前記動作クロック信号を前記第１の周波数で出力するステップと、
前記イネーブル信号を前記ルートクロック信号のＮサイクルのうちの１サイクルにわたってアサートし、前記イネーブル信号を前記ルートクロック信号のＮサイクルのうちのＮ−１サイクルにわたってデアサートすることにより、前記動作クロック信号を前記第１の周波数よりも低い第２の周波数で出力するステップと、
を含むことを特徴とする方法。
【請求項１７】
前記動作クロック信号を機能ブロックに供給するステップと、
前記機能ブロックの動作を中断することなく前記第２の周波数を動的に変更するステップと、
をさらに含むことを特徴とする請求項１６に記載の方法。
【請求項１８】
前記機能ブロックの作業負荷が減少したことに応答して、前記動作クロック信号の周波数を前記第１の周波数から前記第２の周波数に変更するステップと、
前記機能ブロックの前記作業負荷が増加したことに応答して、前記動作クロック信号の前記周波数を前記第２の周波数から前記第１の周波数に変更するステップと、
をさらに含むことを特徴とする請求項１７に記載の方法。
【請求項１９】
Ｎが、１よりも大きい整数値である、
ことを特徴とする請求項１６に記載の方法。
【請求項２０】
第１のクロックゲーティングユニットが、前記ルートクロック信号を受け取り、第１の動作クロック信号を前記第２の周波数で第１の機能ブロックに供給するステップと、
第２のクロックゲーティングユニットが、前記ルートクロック信号を受け取り、第２の動作クロック信号を前記第２の周波数で第２の機能ブロックに供給するステップと、
クロック制御ユニットが、前記第１のクロックゲーティングユニットに対して第１のイネーブル信号を、及び前記第２のクロックゲーティングユニットに対して第２のイネーブル信号を、前記ルートクロック信号と同じサイクルでアサートするステップと、
をさらに含むことを特徴とする請求項１６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、集積回路に関し、より詳細には、集積回路内で分配されるクロック信号の制御に関する。
【背景技術】
【０００２】
クロックゲーティングは、様々な集積回路（ＩＣ）で採用されている省電力技術である。クロックゲーティングを実行するＩＣでは、クロック信号を分配するために使用するクロックツリーの様々なポイントに、クロックゲーティングロジックの形の予備のハードウェアが追加される。（フロップ回路などの）回路にクロック信号を直接分配するために使用するクロックツリーのポイントを「リーフ」ノードと呼ぶことができる。従って、このリーフノードにクロックゲーティングロジックを配置することができる。このリーフノードに関連するクロック回路にアサート時にクロック信号が供給されるようにするイネーブル信号を受け取るために、各リーフノードのクロックゲーティングロジックを結合することができる。このクロック回路がアイドル状態の時には、対応するリーフノードに結合された回路にクロック信号が供給されないようにイネーブル信号をデアサートして、これにより電力を節約することができる。
【０００３】
クロック信号に関する別の省電力技術に周波数スケーリングがある。周波数スケーリングは、処理作業負荷に応じてクロック周波数を変更できる技術である。処理作業負荷が高い場合、周波数スケーリングを使用するシステムは、より高いクロック周波数で動作することができる。負荷が低くなった場合、これに対応してクロック周波数を下げることができる。クロック周波数の変更は、処理動作を瞬間的に中断し、（位相ロックループなどの）ソースのクロック周波数を変更し、その後クロック信号が新たな周波数で安定してサイクルするようになったら動作を再開することによって行うことができる。
【発明の概要】
【課題を解決するための手段】
【０００４】
クロックゲーティングユニットを用いてクロック周波数を動的に変更するための方法及び装置を開示する。１つの実施形態では、集積回路（ＩＣ）が、複数のリーフノードを有するクロックツリーを含む。このクロックツリーを結合して、複数のリーフノードの各々に結合された複数の同期回路にクロック信号を分配する。ＩＣの１又はそれ以上の機能ブロックの各々が、この複数のリーフノードの少なくとも一部、及び対応して結合されたこれらの同期回路を含む。ルートクロック信号及びイネーブル信号を受け取り、機能ユニットのリーフノード（従って、同期回路）に動作クロック信号を供給するために、粗クロックゲーティングユニットを結合する。粗クロックゲーティングユニットは、イネーブル信号がアサートされた時に、動作クロック信号をルートクロック信号と同じ周波数で出力することができる。粗クロックゲーティングユニットは、イネーブル信号がデアサートされた時に、動作クロック信号を阻止することができる。さらに、Ｎクロックサイクルのうちの１クロックサイクルにわたってイネーブル信号をアサートすることにより、ルートクロック信号の周波数に対して低下した（reduced）クロック周波数で動作クロック信号を出力することができる。さらに、クロック信号の供給先の機能ユニットの動作を一時的に中断させる必要なく、クロック信号の周波数を動的に（すなわち「オンザフライで」）変更することができる。
【０００５】
１つの実施形態では、ＩＣが、クロックツリーに供給するルートクロック信号を生成するクロック生成ユニットを含む。ＩＣは、１又はそれ以上の機能ユニットを含む。ルートクロック信号を受け取るために、１又はそれ以上の粗クロックゲーティングユニットを結合する。１又はそれ以上の機能ユニットのうちの関連する機能ユニットに、対応する動作クロック信号を供給するために、１又はそれ以上の粗クロックゲーティングユニットの各々を結合する。クロックツリーは複数のリーフノードを含み、これらの各々は、結合された１又はそれ以上の同期回路に動作クロックを分配するために結合された微粒クロックゲーティングユニットに関連付けられる。機能ユニットの各々は、複数のリーフノードの独自の部分を含む。微粒クロックゲーティングユニットの各々は、受け取った動作クロック信号のクロックゲーティングを行うように構成される。同様に、粗クロックゲーティングユニットは、それぞれの機能ユニットのためにクロックゲーティングを行うことができる。
【０００６】
粗クロックゲーティングユニット及び微粒クロックゲーティングユニットの各々を結合して、対応するイネーブル信号をクロック制御ユニットから受け取る。クロック制御ユニットは、そのそれぞれのイネーブル信号をデアサートすることにより、所与のクロックゲーティングユニットによって動作クロック信号が出力されるのを阻止することができる。クロック制御ユニットは、そのそれぞれのイネーブル信号をアサートすることにより、所与のクロックゲーティングユニットから動作クロック信号が供給されるようにすることができる。また、クロック制御ユニットは、それぞれのクロックイネーブル信号をルートクロック信号のＮサイクルのうちの１サイクルのみアサートすることにより、粗クロックゲーティングユニットの所与の１つが出力する動作クロック信号のデューティサイクルを変更することができる。所与の粗クロックゲーティングユニットが出力する動作クロック信号のデューティサイクルを変更することにより、この動作クロック信号のインスタンスの周波数を効果的に変更することができる。従って、クロック制御ユニットは、対応する機能ユニットがアクティブではあるが、それ以外に大きな作業負荷を処理しない場合、粗クロックゲーティングユニットが出力する動作クロック信号のインスタンスの周波数を低下させることにより、電力を節約可能にすることができる。微粒クロックゲーティングユニットに結合された同期回路がアイドル状態である場合、クロック制御ユニットは、動作クロック信号が供給されるのを阻止し、このようにして電力を節約することができる。同様に、機能ユニットの全ての同期回路がアイドル状態である場合、クロック制御ユニットは、対応する粗クロックゲーティングユニットから出力される動作クロック信号を阻止することができる。
【０００７】
以下の詳細な説明では添付図面を参照し、ここでこれらの添付図面について簡単に説明する。
【図面の簡単な説明】
【０００８】
【図１】集積回路（ＩＣ）の１つの実施形態のブロック図である。
【図２】ＩＣのクロックツリーの１つの実施形態を示す図である。
【図３】クロックゲーティングユニットの１つの実施形態を示す図である。
【図４】クロックゲーティングユニットを使用してクロック信号の周波数を変更することを示すタイミング図である。
【図５】クロック信号の周波数を変更する方法の１つの実施形態を示すフロー図である。
【図６】システム例の１つの実施形態を示すブロック図である。
【発明を実施するための形態】
【０００９】
本発明は、様々な修正及び代替形態が可能であるが、図面には本発明の特定の実施形態を一例として示し、本明細書ではこれらについて詳細に説明する。しかしながら、図面及びこれに伴う詳細な説明は、開示する特定の形態に本発明を限定することを意図するものではなく、むしろ添付の特許請求の範囲によって定められる本発明の思想及び範囲内にある全ての修正物、同等物及び代替物を含むことを意図するものであると理解されたい。本明細書で使用する表題は構成目的のものにすぎず、説明の範囲を限定するために使用することを意味するものではない。本出願を通じて使用する「〜できる（ｍａｙ）」という用語は、強制的な意味の（すなわち、〜しなければならない（ｍｕｓｔ）を意味する）ものではなく、許容的な意味（すなわち、可能性を有すること（ｈａｖｉｎｇ  ｔｈｅ  ｐｏｔｅｎｔｉａｌ  ｔｏ）を意味する）で使用される。同様に、「ｉｎｃｌｕｄｅ」、「ｉｎｃｌｕｄｉｎｇ」、及び「ｉｎｃｌｕｄｅｓ」という用語は、限定するわけではないがｉｎｃｌｕｄｉｎｇを意味する。
【００１０】
様々なユニット、回路、又はその他の構成要素について、（１又は複数の）タスクを実行する「ように構成される（ｃｏｎｆｉｇｕｒｅｄ  ｔｏ）」と記載することがある。このような文脈では、「ように構成される」という表現は、動作中に（１又は複数の）タスクを実行する「回路を有する」ことを一般に意味する包括的な構造の記述である。従って、これらのユニット／回路／構成要素は、ユニット／回路／構成要素が現在オンでない場合でもタスクを実行するように構成することができる。通常、「ように構成される」に相当する構造を成す回路は、ハードウェア回路を含むことができる。同様に、説明の都合上、様々なユニット／回路／構成要素について、（１又は複数の）タスクを実行する、と記載することもある。このような記載は、「ように構成される」という表現を含むと解釈すべきである。１又はそれ以上のタスクを実行するように構成されたユニット／回路／構成要素について記述することは、このユニット／回路／構成要素に対して米国特許法第１１２条第６項の解釈を行使することを明確に意図するものではない。
【００１１】
集積回路
図１に、集積回路（ＩＣ）の１つの実施形態のブロック図を示す。図示の実施形態では、ＩＣ１０が、ルートクロック信号を生成するために結合されたクロック生成ユニット１１を含む。ルートクロック信号は、対応する粗クロックゲーティングユニット１４を介して複数の機能ユニット１５の各々に送ることができるグローバルクロック信号である。クロック信号は、説明を簡単にするために本明細書には示してないクロックツリーを介して機能ユニット１５（従って、個々の機能ユニット内の回路）に分配されるが、これについては図２を参照してさらに説明する。
【００１２】
粗クロックゲーティングユニット１４の各々は、クロック制御ユニット１２からそれぞれのクロックイネーブル信号を受け取るために結合される。それぞれの粗クロックゲーティングユニット１４に対してイネーブル信号がアサートされると、分配するためのクロック信号が、対応する機能ユニット１５に渡される。イネーブル信号がデアサートされた場合、それぞれの粗クロックゲーティングユニット１４は、対応する機能ユニット１５にクロック信号が供給されるのを阻止することができる。例えば、クロック制御ユニット１２が、ＣＣＬＫＥｎ０信号をアサートした場合、対応する粗クロックゲーティングユニット１４は、それぞれ結合された機能ユニット１５にＣｌｋ０を供給することができる。クロック制御ユニット１２によってＣＣＬＫＥｎ０信号がデアサートされた場合、対応する機能ユニット１５にクロック信号が供給されなくなる。以下でさらに詳述するように、クロック制御ユニット１２は、それぞれ受け取ったクロックイネーブル信号をトグルすることにより、所与の粗クロックゲーティングユニットにより供給されるクロック信号の周波数を動的に（すなわち「オンザフライで」）変更することもできる。
【００１３】
図示の実施形態の各機能ユニット１５は、複数の異なる同期回路を含む。これらの同期回路のいずれかの所与の１つは、ラッチ回路であっても、フリップフロップ回路であっても、又はクロック信号に従って動作する他のいずれの回路であってもよい。各機能ユニット１５は、複数の微粒クロックゲーティングユニットを含むこともできる。個々の微粒クロックゲーティングユニットは、１又はそれ以上の同期回路に関連することができる。クロック制御ユニット１２は、対応するグループのイネーブル信号（ＦＬＣＫＥ［Ｎ：０］など）を各機能ユニット１５に提供し、このイネーブル信号の１つを各微粒クロックゲーティングユニットが受け取ることができる。クロック信号がそれぞれの同期回路に供給されるのを可能にするために、又は阻止するために、これらのイネーブル信号をアサート又はデアサートすることができる。
【００１４】
図示の実施形態の機能ユニット１５の各々は、クロック制御ユニット１２に対して性能（performance）を示す信号（図示の「性能（performance）」信号）に結合する。このような指示は、処理作業負荷、メモリ要求、キャッシュ要求及び／又はキャッシュヒット、並びに特定の機能ユニット１５の性能要求を示すことができる事実上全てのその他の種類の情報の指示を含むことができる。この受け取った指示に基づいて、クロック制御ユニット１２は、クロック信号を制御するための様々な動作を行って、性能と電力消費のバランスを最適化することができる。例えば、機能ユニット１５のいくつかの同期回路（又はそのグループ）が完全にアイドル状態である一方で、他の同期回路がビジー状態である場合、クロック制御ユニット１２は、それぞれの微粒クロックゲーティングユニットに供給される対応するクロックイネーブル信号をデアサートすることができる。これにより、アイドル状態の同期回路に供給されるクロック信号が阻止され、この結果、消費電力を低下させることができる。所与の機能ユニット１５の全ての回路がアイドル状態である場合、クロック制御ユニット１５は、それぞれの粗クロックゲーティングユニット１４に供給される対応するイネーブル信号をデアサートすることができる。これにより、アイドル状態の機能ユニット１５全体にクロック信号が供給されるのが阻止され、この結果、電力をさらに大きく節約することができる。
【００１５】
場合によっては、所与の機能ユニット１５が、アクティブであるにもかかわらず低性能を必要とすることもある。例えば、所与の機能ユニット１５が、機能ユニット１５の別のユニットからの（又はＩＣ１０の外部のエージェントに対して）情報を求めるいくつかの要求を行った状況について検討する。このような場合、このような要求を満たすのにかなりの待ち時間がかかることがある。従って、この要求を開始した機能ユニット１５は、要求した情報が戻ってくるのを待つ間、他の作業を行わないことがある。このような状況では、クロック制御ユニット１２が、この特定の機能ユニット１５に供給するクロック信号の周波数を低下させることができる。より詳細には、クロック制御ユニット１２は、ルートクロック信号のＮサイクルのうちの１サイクルにわたって、対応する粗クロックゲーティングユニット１４から出力されたクロック信号を有効にすることができる。例えば、クロック制御ユニット１２は、ルートクロック信号の４サイクルのうちの１サイクルの間だけイネーブル信号をアサートすることにより、粗クロックゲーティングユニット１４により出力されるクロック信号の周波数を効果的に低下させることができる。これにより、粗クロックゲーティングユニット１４は、ルートクロック信号の周波数を効果的に１／４にしたクロック信号を出力するようになる。この同じクロック信号のデューティサイクルは、ルートクロック信号のデューティサイクルの１／８である。低性能を必要とする機能ユニット１５に供給するクロック信号の有効周波数及びデューティサイクルを、そうでなければ非アイドル状態であったはずの間にわたって下げることにより、この機能ユニット１５が受け取るクロック信号に関連する消費電力を下げることができる。なお、クロック制御ユニット１２は、特定の粗クロックゲーティングユニットから供給されるクロック信号の周波数の変更を、対応する機能ユニット１５の動作を中断することなく動的に行うことができる。これにより、クロック周波数の変更が動作の中断を伴ったとした場合に生じたであろうＩＣ１０の性能損失を防ぐことができる。なお、ここでは、粗クロックゲーティングユニット１４を分散して実装した形で示している。しかしながら、粗クロックゲーティングユニット１４を単一ブロックで実装する実施形態も可能であり想定される。図示のように粗クロックゲーティングユニットを分散構成で実装した場合、全ての粗クロックゲーティングユニット１４間で、１／Ｍ（ＭはＮの倍数）のデューティサイクルクロック同期信号を分配することができる。この１／Ｍのデューティサイクルクロック同期信号を使用して、粗クロックゲーティングユニットの各々の間で１／Ｎ周期を同期させることができる。これにより、機能ユニット１５の各々の間の同期通信を可能にすることができる。説明を簡単にするために、ここでは１／Ｍのデューティサイクルクロック同期信号のための信号接続を示していないが、例示的な実施形態ではこのような信号接続が別様に存在すると理解されるであろう。
【００１６】
図示の実施形態では、機能ユニット１５の各々が、このユニットを機能ユニット１５の少なくとも１つの他のユニットに結合する少なくとも１つのインターフェイス（「ＩＦ」）を含む。明示してはいないが、機能ユニットの１又はそれ以上は、ＩＣ１０の外部にある１又はそれ以上のエージェントへのインターフェイスを含むこともできる。各インターフェイスは、２つの結合された機能ユニット１５間で伝達すべき特定の信号セットのための接続を含むことができる。場合によっては、２つの異なる機能ユニット間における通信のための既定のプロトコルに従ってインターフェイスを構成することもできる。これらのインターフェイスは、ともに結合された２つの機能ユニット１５間で伝達すべきハンドシェイク信号のための接続を含むこともできる。ハンドシェイク信号は、機能ユニット１５が互いに異なるクロック周波数で動作している状況を含め、２つの機能ユニット１５間で動作を同期させるために必要なハンドシェイク情報を伝達するために使用することができる。ハンドシェイクは、低下した（reduced）クロック周波数で動作する２つの機能ユニット１５が、同じクロックサイクルで有効になるそれぞれ受け取ったクロック信号を有することを確実にするためにさらに使用することもできる。低下した周波数で動作する２つの機能ユニット１５が、同じサイクルで有効になるそれぞれのクロック信号を有していない場合、クロック制御ユニット１２は、両方のクロック信号を揃えるために少なくとも１つの粗クロックゲーティングユニット１４の対応するイネーブル信号をアサートするパターンを変更することができる（すなわち、対応するクロックイネーブル信号が、ルートクロック信号と同じサイクルでアサートされる）。いくつかの実施形態では、クロック制御ユニット１２を、粗クロックゲーティングユニットの各々に供給されるイネーブル信号を同期させるように構成して、これらの各ユニットが低下した周波数で動作する場合にイネーブル信号が同じルートクロックサイクルでアサートされるようにすることができる。
【００１７】
クロックツリー
次に図２を参照すると、ＩＣ１０内で実現できるクロックツリーの１つの実施形態の図を示している。図示の実施形態では、クロック生成器１１が、クロックドライバ１３を介してルートクロック信号ノードに伝達するクロック信号を生成するように構成される。クロック生成器１１は、位相ロックループ（ＰＬＬ）又はリング発振器などのいずれの適当な種類のクロック生成回路であってもよい。
【００１８】
ルートクロック信号は、インバータ１３の追加インスタンスを介して粗クロックゲーティングユニット１４の様々なインスタンス（本明細書では、例示を目的としてこれらの１つしか示していない）に分配することができる。各粗クロックゲーティングユニット１４は、機能ユニット１５の対応するインスタンスにそれぞれのクロック信号を出力するために結合される。各粗クロックゲーティングユニット１４が出力するクロック信号は、別のインバータ１３を介して機能ユニット１５の各々の複数の異なるリーフノード１７に供給することができる。リーフノード１７の各々は、微粒クロックゲーティングユニット１６及び１又はそれ以上の同期回路１９を含む。同期回路１９は、フリップフロップ回路、ラッチ回路、及び／又はクロック信号に従って動作するその他の種類の回路を含むことができる。
【００１９】
各微粒クロックゲーティングユニット１６は、これに結合されたわずかに１つの同期回路１９を有することができる。微粒クロックゲーティングユニット１６の各々は、（ＥＮ０などの）対応するイネーブル信号を受け取ることもでき、これらのイネーブル信号の各々は、他のイネーブル信号とは無関係にアサート及びデアサートすることができる。クロック制御ユニット１２は、対応するイネーブル信号をデアサートすることにより、いずれかのリーフノード１７の同期回路１９にクロックが供給されるのを阻止することができる。これにより、細粒度の省電力を可能にすることができる。所予のイネーブル信号がアサートされると、その対応する微粒クロックゲーティングユニット１６が、このユニットに結合された同期回路にクロック信号が供給されるようにすることができる。明示してはいないが、機能ユニット１５は、リーフノードの各々に結合されて、その対応する同期回路１９がアクティブであるか、それとも非アクティブであるかを判定するように構成された性能モニタ回路を含むことができる。この情報を、上述したような性能情報とともに提供することができる。
【００２０】
上述したように、クロックツリー２１は、様々なクロック分配ブランチ内にいくつかのインバータ１３を含むことができる。インバータの代わりに非反転バッファを使用する実施形態も可能であり想定される。いずれにせよ、インバータ／バッファを使用して、様々なリーフノード１７間で分配されるクロック信号のスキューを、１つのリーフノード１７と隣のリーフノードの間で、及び１つの機能ユニット１５と隣の機能ユニットの間でクロックエッジが実質的に揃うように制御することができる。
【００２１】
例示的なクロックゲーティングユニット
図３は、クロックゲーティングユニットの１つの実施形態の論理図である。図３に示すクロックゲーティングユニット２５の構成を使用して、上述した粗クロックゲーティングユニット１４及び微粒クロックゲーティングユニット１６を実現することができる。しかしながら、いくつかの実施形態では、異なる構成を使用して粗クロックゲーティングユニット及び微粒クロックゲーティングユニットを実現することもできる。
【００２２】
図示の実施形態におけるクロックゲーティングユニット２５は、ラッチ２６及びＡＮＤゲート２７を含む。図示の実施形態におけるラッチ２６は、その「Ｄ」入力上でイネーブル信号（「ＥＮ」）を受け取り、そのクロック入力上で入力クロック信号（「ＣｌｋＩｎ」）を受け取るために結合されたレベルセンシティブラッチである。ラッチ２６の出力は、ＡＮＤゲート２７に第２の入力として供給される同期イネーブル信号（「ＥｎＩｎ」）である。このＡＮＤゲート２７に供給される同期イネーブル信号が高い場合、クロックゲーティングユニット２５の（ＡＮＤゲート２７からの）出力は、入力クロック信号の状態に従う。そうでなければ、出力クロック信号は低くなる。
【００２３】
なお、図３に示すクロックゲーティングユニット２５の構成は、いくつかの考えられるクロックゲーティング回路の構成の１つにすぎない。例えば、アサート時にクロック信号を通過させるイネーブル信号に従ってオン又はオフに切り替わるパスゲートを利用するクロックゲーティング回路も可能であり想定される。別の実施形態では、クロックゲーティング回路として使用するための、ラッチを使用しない単純なＡＮＤゲートも可能であり想定される。
【００２４】
タイミング図
図４は、クロックゲーティングユニットを使用して、入力クロック信号に対して出力クロック信号の周波数を変更することを示すタイミング図である。この図の左手側には、イネーブル信号（「ＥｎＩｎ」）がアサ−ト状態に保持されている。このような場合、出力クロック信号（「ＣｌｋＯｕｔ」）は入力クロック信号（「ＣｌｋＩｎ」）に従い、同じ周波数及びデューティサイクル（この場合は５０％）を有する。
【００２５】
タイミング図の右手側に移動すると、イネーブル信号は、４クロック信号のうちの３クロック信号にわたってデアサート状態に保持され、４クロック信号のうち１クロック信号にわたってアサートされる。この結果、出力クロック信号は、４サイクルのうち１サイクルの間だけ高く推移する。実際には、この場合、出力クロック信号はイネーブル信号に従う。この例の出力クロック信号の周波数は、入力クロック信号の周波数の１／４であるのに対し、デューティサイクルは１／８である。一般に、所与の値をＮとした場合、基準周波数の１／Ｎの有効周波数を有するクロック信号を生成するために、クロックゲーティングユニットに供給されるクロックイネーブル信号を１／Ｎのデューティサイクルで供給することができる。低下したクロック周波数信号のデューティサイクルは、１／２Ｎとすることができる。
【００２６】
なお、図示の例に示すような２つの異なる出力クロック周波数間の変更は、上述したハードウェアの様々な実施形態によって動的に行うことができる。例えば、図１のクロック制御ユニット１２は、所与の機能ユニット１５が低下したクロック周波数で動作できると判断した場合、その対応する粗クロックゲーティングユニット１４に供給されるイネーブル信号をデアサートし、Ｎクロックサイクルのうちの１サイクルの間だけアサートし始めることができる。残りのＮ−１クロック信号の間は、イネーブル信号をデアサートしたままにしておくことができる。この変更は、イネーブル信号のアサーション／デアサーションのパターンによって行うことができるので、周波数の変更を行うために対応する機能ユニット１５の動作を中断する必要はない。さらに、イネーブル信号をアサートしてその状態を保持することにより、入力クロック信号を全周波数に戻すことができる。
【００２７】
なお、図示の例は、全周波数と、全周波数の１／４である低下した周波数という２つのクロック周波数しか対象としていない。しかしながら、追加のクロック周波数を使用できる実施形態も可能であり想定される。例えば、クロック制御ユニットは、出力クロック信号が全周波数で、（２クロックサイクルのうちの１クロックサイクルにわたってイネーブル信号をアサートすることにより）全周波数の１／２の周波数で、又は図示のような全周波数の１／４の周波数でサイクルできるようにすることもできる。また、様々に混ぜ合わせた一連の２つの異なるデューティサイクルにおける全周波数及び１／Ｎの周波数のクロックを可能にすることにより、様々な有効周波数を実現することもできる。さらに、いくつかの実施形態では、クロックゲーティングユニットの設計を単純にするためにＮの値を固定することもできる。Ｎの値を固定することで、様々な粗クロックゲーティングユニットにわたるクロック信号の同期を単純にすることもできる。
【００２８】
方法のフロー図
次に図５を参照すると、クロックゲーティングユニットにより出力されるクロック信号の周波数を変更する方法の１つの実施形態のフロー図を示している。図示の実施形態では、粗クロックゲーティングユニットに入力クロック信号及びイネーブル信号を供給することによって方法５００が開始する（ブロック５０５）。粗クロックゲーティングユニットを結合して、イネーブル信号がアサートされた時に、対応して結合された機能ユニットに出力クロック信号を供給することができる。イネーブル信号をデアサート状態に保持すると、機能ユニットに出力クロック信号が供給されるのを阻止することができる。イネーブル信号をアサート状態とデアサート状態の間で周期的にトグルすると、粗クロックゲーティングユニットは、入力クロック信号の全周波数及びデューティサイクルよりも低い周波数及び狭いデューティサイクルの出力クロック信号を機能ユニットに効果的に供給することができる。
【００２９】
出力クロック信号を全周波数で供給すべき場合（ブロック５１０、全）、イネーブル信号をアサート状態に保持することができる（ブロック５１５）。対応する機能ユニットに、クロック信号を（入力クロック信号と同じ周波数などの）全周波数及びデューティサイクルで供給することができる（ブロック５１５）。出力クロック信号を低下した周波数で供給すべき場合（ブロック５１０、低下）、イネーブル信号をトグルすることができる（ブロック５２０）。さらに、イネーブル信号を、入力クロック信号のＮサイクルのうちの１サイクルにわたってアサートし、入力信号の残りのＮ−１クロックサイクルにわたってデアサートすることもできる。Ｎの値は、１よりも大きな整数値とすることができる。本明細書で説明したようにイネーブル信号を周期的にアサートすることにより、出力クロック信号を、入力クロック信号に対して低下した周波数及びデューティサイクルで効果的に供給することができる。
【００３０】
全クロック周波数で動作している時に、出力クロック周波数を低下させるべきであると判断した場合（ブロック５２５、はい）、方法はブロック５２０に進むことができる。そうでなければ、イネーブル信号をアサートしたままにしておくことができ、ブロック５１５に従って出力クロック信号を供給することができる。低下したクロック周波数で動作している時に、クロック周波数を全クロック周波数に戻すべきであると判断した場合（ブロック５３０）、方法はブロック５１５に進んでイネーブル信号の周期的なアサーションを中止し、代わりにイネーブル信号アサート状態に保持する。そうでなければ、方法は、ブロック５２０に従って、出力クロック信号を低下した周波数で供給し続ける。出力クロック周波数の変更（低下及び上昇）は、周波数の変更が行われている間にわたって、受け取り側の機能ユニットの動作を中断させることなく動的に行うことができる。
【００３１】
例示的な実施形態における方法は、２つの周波数（全周波数及び１つの低下した周波数）に関してのみ行われているが、この方法を追加のクロック周波数に対応するように修正することもできる。例えば、出力クロックを入力クロック信号と同じ周波数（全クロック周波数など）で、第１の低下した周波数（１／２の入力クロック周波数など）で、及び第２の低下した周波数（１／４の入力クロック周波数など）で供給できる方法が想定される。これらの周波数間の変更は、イネーブル信号をアサート及びデアサートするパターンを変更することによって行うことができる。全クロック周波数の場合、イネーブル信号をアサート状態に保持することができる。全周波数の１／２の出力クロック信号の場合、入力クロック信号の２サイクルのうちの１サイクルにわたってイネーブル信号をアサートし、２サイクルのうちのもう１サイクルにわたってデアサートすることができる。全周波数の１／４の出力クロック信号の場合、入力クロックサイクルの４サイクルのうちの１サイクルにわたってイネーブル信号をアサートし、４サイクルのうちの残りの３サイクルにわたってデアサートすることができる。
【００３２】
システム例
次に図６を参照すると、システム１５０の１つの実施形態のブロック図を示している。図示の実施形態では、システム１５０が、１又はそれ以上の周辺機器１５４及び外部メモリ１５８に結合された（図１などの）ＩＣ１０の少なくとも１つのインスタンスを含む。ＩＣ１０に供給電圧を供給するとともにメモリ１５８及び／又は周辺機器１５４にも１又はそれ以上の供給電圧を供給する電力供給装置１５６も設けられる。いくつかの実施形態では、１つよりも多くのＩＣ１０のインスタンスを含むことができる（及び同様に１つよりも多くの外部メモリ１５８を含むこともできる）。
【００３３】
周辺機器１５４は、システム１５０の種類に応じてあらゆる所望の回路を含むことができる。例えば、１つの実施形態では、システム１５０を（携帯情報端末（ＰＤＡ）、スマートフォンなどの）モバイル装置とすることができ、周辺機器１５４が、ＷｉＦｉ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、セルラ、全地球測位システムなどの様々な種類の無線通信のための装置を含むことができる。周辺機器１５４は、ＲＡＭ記憶装置、固体記憶装置又はディスク記憶装置を含む追加の記憶装置を含むこともできる。周辺機器１５４は、タッチディスプレイ画面又はマルチタッチディスプレイ画面を含むディスプレイ画面、キーボード又はその他の入力装置、マイク、スピーカ、などのユーザインターフェイス装置を含むことができる。他の実施形態では、システム１５０が、（デスクトップパーソナルコンピュータ、ラップトップ、ワークステーション、ネットトップなどの）いずれの種類のコンピュータシステムであってもよい。
【００３４】
外部メモリ１５８は、あらゆる種類のメモリを含むことができる。例えば、外部メモリ１５８は、ＳＲＡＭ、同期ＤＲＡＭ（ＳＤＲＡＭ）、ダブルデータレート（ＤＤＲ、ＤＤＲ２、ＤＤＲ３、ＬＰＤＤＲ１、ＬＰＤＤＲ２、など）ＳＤＲＡＭ、ＲＡＭＢＵＳ  ＤＲＡＭなどのダイナミックＲＡＭ（ＤＲＡＭ）などであってもよい。外部メモリ１５８は、シングルインラインメモリモジュール（ＳＩＭＭ）、デュアルインラインメモリモジュール（ＤＩＭＭ）などの、メモリ素子を搭載した１又はそれ以上のメモリモジュールを含むことができる。
【００３５】
当業者には、上記開示を十分に理解した時点で数多くの変形及び修正が明らかになるであろう。以下の特許請求の範囲は、全てのこのような変形及び修正を含むように解釈されることが意図されている。
【図１】
0005542180.tif 000002
【図２】
0005542180.tif 000003
【図３】
0005542180.tif 000004
【図４】
0005542180.tif 000005
【図５】
0005542180.tif 000006
【図６】
0005542180.tif 000007