説明

粗クロックゲーティングを用いた動的周波数制御

【課題】クロックゲーティング回路を用いてクロック信号の周波数を制御するための方法及び装置を提供する。
【解決手段】1つの実施形態では、クロックゲーティング回路にルートクロック信号及びイネーブル信号が供給される。このクロックゲーティング回路は、イネーブル信号がアサートされると、(ルートクロック信号に基づく)動作クロック信号を供給するように構成される。イネーブル信号がデアサートされると、動作クロック信号が阻止される。Nクロックサイクルのうちの1サイクルにわたってイネーブル信号をアサートすることにより、動作クロック信号の周波数を低下した周波数で出力することができる。さらに、ルートクロック信号に対してイネーブル信号をアサートする割合を変更することにより、動作クロック信号を受け取る機能ユニットの動作を中断させることなく、動作クロック信号の周波数を動的に変更することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、集積回路に関し、より詳細には、集積回路内で分配されるクロック信号の制御に関する。
【背景技術】
【0002】
クロックゲーティングは、様々な集積回路(IC)で採用されている省電力技術である。クロックゲーティングを実行するICでは、クロック信号を分配するために使用するクロックツリーの様々なポイントに、クロックゲーティングロジックの形の予備のハードウェアが追加される。(フロップ回路などの)回路にクロック信号を直接分配するために使用するクロックツリーのポイントを「リーフ」ノードと呼ぶことができる。従って、このリーフノードにクロックゲーティングロジックを配置することができる。このリーフノードに関連するクロック回路にアサート時にクロック信号が供給されるようにするイネーブル信号を受け取るために、各リーフノードのクロックゲーティングロジックを結合することができる。このクロック回路がアイドル状態の時には、対応するリーフノードに結合された回路にクロック信号が供給されないようにイネーブル信号をデアサートして、これにより電力を節約することができる。
【0003】
クロック信号に関する別の省電力技術に周波数スケーリングがある。周波数スケーリングは、処理作業負荷に応じてクロック周波数を変更できる技術である。処理作業負荷が高い場合、周波数スケーリングを使用するシステムは、より高いクロック周波数で動作することができる。負荷が低くなった場合、これに対応してクロック周波数を下げることができる。クロック周波数の変更は、処理動作を瞬間的に中断し、(位相ロックループなどの)ソースのクロック周波数を変更し、その後クロック信号が新たな周波数で安定してサイクルするようになったら動作を再開することによって行うことができる。
【発明の概要】
【課題を解決するための手段】
【0004】
クロックゲーティングユニットを用いてクロック周波数を動的に変更するための方法及び装置を開示する。1つの実施形態では、集積回路(IC)が、複数のリーフノードを有するクロックツリーを含む。このクロックツリーを結合して、複数のリーフノードの各々に結合された複数の同期回路にクロック信号を分配する。ICの1又はそれ以上の機能ブロックの各々が、この複数のリーフノードの少なくとも一部、及び対応して結合されたこれらの同期回路を含む。ルートクロック信号及びイネーブル信号を受け取り、機能ユニットのリーフノード(従って、同期回路)に動作クロック信号を供給するために、粗クロックゲーティングユニットを結合する。粗クロックゲーティングユニットは、イネーブル信号がアサートされた時に、動作クロック信号をルートクロック信号と同じ周波数で出力することができる。粗クロックゲーティングユニットは、イネーブル信号がデアサートされた時に、動作クロック信号を阻止することができる。さらに、Nクロックサイクルのうちの1クロックサイクルにわたってイネーブル信号をアサートすることにより、ルートクロック信号の周波数に対して低下した(reduced)クロック周波数で動作クロック信号を出力することができる。さらに、クロック信号の供給先の機能ユニットの動作を一時的に中断させる必要なく、クロック信号の周波数を動的に(すなわち「オンザフライで」)変更することができる。
【0005】
1つの実施形態では、ICが、クロックツリーに供給するルートクロック信号を生成するクロック生成ユニットを含む。ICは、1又はそれ以上の機能ユニットを含む。ルートクロック信号を受け取るために、1又はそれ以上の粗クロックゲーティングユニットを結合する。1又はそれ以上の機能ユニットのうちの関連する機能ユニットに、対応する動作クロック信号を供給するために、1又はそれ以上の粗クロックゲーティングユニットの各々を結合する。クロックツリーは複数のリーフノードを含み、これらの各々は、結合された1又はそれ以上の同期回路に動作クロックを分配するために結合された微粒クロックゲーティングユニットに関連付けられる。機能ユニットの各々は、複数のリーフノードの独自の部分を含む。微粒クロックゲーティングユニットの各々は、受け取った動作クロック信号のクロックゲーティングを行うように構成される。同様に、粗クロックゲーティングユニットは、それぞれの機能ユニットのためにクロックゲーティングを行うことができる。
【0006】
粗クロックゲーティングユニット及び微粒クロックゲーティングユニットの各々を結合して、対応するイネーブル信号をクロック制御ユニットから受け取る。クロック制御ユニットは、そのそれぞれのイネーブル信号をデアサートすることにより、所与のクロックゲーティングユニットによって動作クロック信号が出力されるのを阻止することができる。クロック制御ユニットは、そのそれぞれのイネーブル信号をアサートすることにより、所与のクロックゲーティングユニットから動作クロック信号が供給されるようにすることができる。また、クロック制御ユニットは、それぞれのクロックイネーブル信号をルートクロック信号のNサイクルのうちの1サイクルのみアサートすることにより、粗クロックゲーティングユニットの所与の1つが出力する動作クロック信号のデューティサイクルを変更することができる。所与の粗クロックゲーティングユニットが出力する動作クロック信号のデューティサイクルを変更することにより、この動作クロック信号のインスタンスの周波数を効果的に変更することができる。従って、クロック制御ユニットは、対応する機能ユニットがアクティブではあるが、それ以外に大きな作業負荷を処理しない場合、粗クロックゲーティングユニットが出力する動作クロック信号のインスタンスの周波数を低下させることにより、電力を節約可能にすることができる。微粒クロックゲーティングユニットに結合された同期回路がアイドル状態である場合、クロック制御ユニットは、動作クロック信号が供給されるのを阻止し、このようにして電力を節約することができる。同様に、機能ユニットの全ての同期回路がアイドル状態である場合、クロック制御ユニットは、対応する粗クロックゲーティングユニットから出力される動作クロック信号を阻止することができる。
【0007】
以下の詳細な説明では添付図面を参照し、ここでこれらの添付図面について簡単に説明する。
【図面の簡単な説明】
【0008】
【図1】集積回路(IC)の1つの実施形態のブロック図である。
【図2】ICのクロックツリーの1つの実施形態を示す図である。
【図3】クロックゲーティングユニットの1つの実施形態を示す図である。
【図4】クロックゲーティングユニットを使用してクロック信号の周波数を変更することを示すタイミング図である。
【図5】クロック信号の周波数を変更する方法の1つの実施形態を示すフロー図である。
【図6】システム例の1つの実施形態を示すブロック図である。
【発明を実施するための形態】
【0009】
本発明は、様々な修正及び代替形態が可能であるが、図面には本発明の特定の実施形態を一例として示し、本明細書ではこれらについて詳細に説明する。しかしながら、図面及びこれに伴う詳細な説明は、開示する特定の形態に本発明を限定することを意図するものではなく、むしろ添付の特許請求の範囲によって定められる本発明の思想及び範囲内にある全ての修正物、同等物及び代替物を含むことを意図するものであると理解されたい。本明細書で使用する表題は構成目的のものにすぎず、説明の範囲を限定するために使用することを意味するものではない。本出願を通じて使用する「〜できる(may)」という用語は、強制的な意味の(すなわち、〜しなければならない(must)を意味する)ものではなく、許容的な意味(すなわち、可能性を有すること(having the potential to)を意味する)で使用される。同様に、「include」、「including」、及び「includes」という用語は、限定するわけではないがincludingを意味する。
【0010】
様々なユニット、回路、又はその他の構成要素について、(1又は複数の)タスクを実行する「ように構成される(configured to)」と記載することがある。このような文脈では、「ように構成される」という表現は、動作中に(1又は複数の)タスクを実行する「回路を有する」ことを一般に意味する包括的な構造の記述である。従って、これらのユニット/回路/構成要素は、ユニット/回路/構成要素が現在オンでない場合でもタスクを実行するように構成することができる。通常、「ように構成される」に相当する構造を成す回路は、ハードウェア回路を含むことができる。同様に、説明の都合上、様々なユニット/回路/構成要素について、(1又は複数の)タスクを実行する、と記載することもある。このような記載は、「ように構成される」という表現を含むと解釈すべきである。1又はそれ以上のタスクを実行するように構成されたユニット/回路/構成要素について記述することは、このユニット/回路/構成要素に対して米国特許法第112条第6項の解釈を行使することを明確に意図するものではない。
【0011】
集積回路
図1に、集積回路(IC)の1つの実施形態のブロック図を示す。図示の実施形態では、IC10が、ルートクロック信号を生成するために結合されたクロック生成ユニット11を含む。ルートクロック信号は、対応する粗クロックゲーティングユニット14を介して複数の機能ユニット15の各々に送ることができるグローバルクロック信号である。クロック信号は、説明を簡単にするために本明細書には示してないクロックツリーを介して機能ユニット15(従って、個々の機能ユニット内の回路)に分配されるが、これについては図2を参照してさらに説明する。
【0012】
粗クロックゲーティングユニット14の各々は、クロック制御ユニット12からそれぞれのクロックイネーブル信号を受け取るために結合される。それぞれの粗クロックゲーティングユニット14に対してイネーブル信号がアサートされると、分配するためのクロック信号が、対応する機能ユニット15に渡される。イネーブル信号がデアサートされた場合、それぞれの粗クロックゲーティングユニット14は、対応する機能ユニット15にクロック信号が供給されるのを阻止することができる。例えば、クロック制御ユニット12が、CCLKEn0信号をアサートした場合、対応する粗クロックゲーティングユニット14は、それぞれ結合された機能ユニット15にClk0を供給することができる。クロック制御ユニット12によってCCLKEn0信号がデアサートされた場合、対応する機能ユニット15にクロック信号が供給されなくなる。以下でさらに詳述するように、クロック制御ユニット12は、それぞれ受け取ったクロックイネーブル信号をトグルすることにより、所与の粗クロックゲーティングユニットにより供給されるクロック信号の周波数を動的に(すなわち「オンザフライで」)変更することもできる。
【0013】
図示の実施形態の各機能ユニット15は、複数の異なる同期回路を含む。これらの同期回路のいずれかの所与の1つは、ラッチ回路であっても、フリップフロップ回路であっても、又はクロック信号に従って動作する他のいずれの回路であってもよい。各機能ユニット15は、複数の微粒クロックゲーティングユニットを含むこともできる。個々の微粒クロックゲーティングユニットは、1又はそれ以上の同期回路に関連することができる。クロック制御ユニット12は、対応するグループのイネーブル信号(FLCKE[N:0]など)を各機能ユニット15に提供し、このイネーブル信号の1つを各微粒クロックゲーティングユニットが受け取ることができる。クロック信号がそれぞれの同期回路に供給されるのを可能にするために、又は阻止するために、これらのイネーブル信号をアサート又はデアサートすることができる。
【0014】
図示の実施形態の機能ユニット15の各々は、クロック制御ユニット12に対して性能(performance)を示す信号(図示の「性能(performance)」信号)に結合する。このような指示は、処理作業負荷、メモリ要求、キャッシュ要求及び/又はキャッシュヒット、並びに特定の機能ユニット15の性能要求を示すことができる事実上全てのその他の種類の情報の指示を含むことができる。この受け取った指示に基づいて、クロック制御ユニット12は、クロック信号を制御するための様々な動作を行って、性能と電力消費のバランスを最適化することができる。例えば、機能ユニット15のいくつかの同期回路(又はそのグループ)が完全にアイドル状態である一方で、他の同期回路がビジー状態である場合、クロック制御ユニット12は、それぞれの微粒クロックゲーティングユニットに供給される対応するクロックイネーブル信号をデアサートすることができる。これにより、アイドル状態の同期回路に供給されるクロック信号が阻止され、この結果、消費電力を低下させることができる。所与の機能ユニット15の全ての回路がアイドル状態である場合、クロック制御ユニット15は、それぞれの粗クロックゲーティングユニット14に供給される対応するイネーブル信号をデアサートすることができる。これにより、アイドル状態の機能ユニット15全体にクロック信号が供給されるのが阻止され、この結果、電力をさらに大きく節約することができる。
【0015】
場合によっては、所与の機能ユニット15が、アクティブであるにもかかわらず低性能を必要とすることもある。例えば、所与の機能ユニット15が、機能ユニット15の別のユニットからの(又はIC10の外部のエージェントに対して)情報を求めるいくつかの要求を行った状況について検討する。このような場合、このような要求を満たすのにかなりの待ち時間がかかることがある。従って、この要求を開始した機能ユニット15は、要求した情報が戻ってくるのを待つ間、他の作業を行わないことがある。このような状況では、クロック制御ユニット12が、この特定の機能ユニット15に供給するクロック信号の周波数を低下させることができる。より詳細には、クロック制御ユニット12は、ルートクロック信号のNサイクルのうちの1サイクルにわたって、対応する粗クロックゲーティングユニット14から出力されたクロック信号を有効にすることができる。例えば、クロック制御ユニット12は、ルートクロック信号の4サイクルのうちの1サイクルの間だけイネーブル信号をアサートすることにより、粗クロックゲーティングユニット14により出力されるクロック信号の周波数を効果的に低下させることができる。これにより、粗クロックゲーティングユニット14は、ルートクロック信号の周波数を効果的に1/4にしたクロック信号を出力するようになる。この同じクロック信号のデューティサイクルは、ルートクロック信号のデューティサイクルの1/8である。低性能を必要とする機能ユニット15に供給するクロック信号の有効周波数及びデューティサイクルを、そうでなければ非アイドル状態であったはずの間にわたって下げることにより、この機能ユニット15が受け取るクロック信号に関連する消費電力を下げることができる。なお、クロック制御ユニット12は、特定の粗クロックゲーティングユニットから供給されるクロック信号の周波数の変更を、対応する機能ユニット15の動作を中断することなく動的に行うことができる。これにより、クロック周波数の変更が動作の中断を伴ったとした場合に生じたであろうIC10の性能損失を防ぐことができる。なお、ここでは、粗クロックゲーティングユニット14を分散して実装した形で示している。しかしながら、粗クロックゲーティングユニット14を単一ブロックで実装する実施形態も可能であり想定される。図示のように粗クロックゲーティングユニットを分散構成で実装した場合、全ての粗クロックゲーティングユニット14間で、1/M(MはNの倍数)のデューティサイクルクロック同期信号を分配することができる。この1/Mのデューティサイクルクロック同期信号を使用して、粗クロックゲーティングユニットの各々の間で1/N周期を同期させることができる。これにより、機能ユニット15の各々の間の同期通信を可能にすることができる。説明を簡単にするために、ここでは1/Mのデューティサイクルクロック同期信号のための信号接続を示していないが、例示的な実施形態ではこのような信号接続が別様に存在すると理解されるであろう。
【0016】
図示の実施形態では、機能ユニット15の各々が、このユニットを機能ユニット15の少なくとも1つの他のユニットに結合する少なくとも1つのインターフェイス(「IF」)を含む。明示してはいないが、機能ユニットの1又はそれ以上は、IC10の外部にある1又はそれ以上のエージェントへのインターフェイスを含むこともできる。各インターフェイスは、2つの結合された機能ユニット15間で伝達すべき特定の信号セットのための接続を含むことができる。場合によっては、2つの異なる機能ユニット間における通信のための既定のプロトコルに従ってインターフェイスを構成することもできる。これらのインターフェイスは、ともに結合された2つの機能ユニット15間で伝達すべきハンドシェイク信号のための接続を含むこともできる。ハンドシェイク信号は、機能ユニット15が互いに異なるクロック周波数で動作している状況を含め、2つの機能ユニット15間で動作を同期させるために必要なハンドシェイク情報を伝達するために使用することができる。ハンドシェイクは、低下した(reduced)クロック周波数で動作する2つの機能ユニット15が、同じクロックサイクルで有効になるそれぞれ受け取ったクロック信号を有することを確実にするためにさらに使用することもできる。低下した周波数で動作する2つの機能ユニット15が、同じサイクルで有効になるそれぞれのクロック信号を有していない場合、クロック制御ユニット12は、両方のクロック信号を揃えるために少なくとも1つの粗クロックゲーティングユニット14の対応するイネーブル信号をアサートするパターンを変更することができる(すなわち、対応するクロックイネーブル信号が、ルートクロック信号と同じサイクルでアサートされる)。いくつかの実施形態では、クロック制御ユニット12を、粗クロックゲーティングユニットの各々に供給されるイネーブル信号を同期させるように構成して、これらの各ユニットが低下した周波数で動作する場合にイネーブル信号が同じルートクロックサイクルでアサートされるようにすることができる。
【0017】
クロックツリー
次に図2を参照すると、IC10内で実現できるクロックツリーの1つの実施形態の図を示している。図示の実施形態では、クロック生成器11が、クロックドライバ13を介してルートクロック信号ノードに伝達するクロック信号を生成するように構成される。クロック生成器11は、位相ロックループ(PLL)又はリング発振器などのいずれの適当な種類のクロック生成回路であってもよい。
【0018】
ルートクロック信号は、インバータ13の追加インスタンスを介して粗クロックゲーティングユニット14の様々なインスタンス(本明細書では、例示を目的としてこれらの1つしか示していない)に分配することができる。各粗クロックゲーティングユニット14は、機能ユニット15の対応するインスタンスにそれぞれのクロック信号を出力するために結合される。各粗クロックゲーティングユニット14が出力するクロック信号は、別のインバータ13を介して機能ユニット15の各々の複数の異なるリーフノード17に供給することができる。リーフノード17の各々は、微粒クロックゲーティングユニット16及び1又はそれ以上の同期回路19を含む。同期回路19は、フリップフロップ回路、ラッチ回路、及び/又はクロック信号に従って動作するその他の種類の回路を含むことができる。
【0019】
各微粒クロックゲーティングユニット16は、これに結合されたわずかに1つの同期回路19を有することができる。微粒クロックゲーティングユニット16の各々は、(EN0などの)対応するイネーブル信号を受け取ることもでき、これらのイネーブル信号の各々は、他のイネーブル信号とは無関係にアサート及びデアサートすることができる。クロック制御ユニット12は、対応するイネーブル信号をデアサートすることにより、いずれかのリーフノード17の同期回路19にクロックが供給されるのを阻止することができる。これにより、細粒度の省電力を可能にすることができる。所予のイネーブル信号がアサートされると、その対応する微粒クロックゲーティングユニット16が、このユニットに結合された同期回路にクロック信号が供給されるようにすることができる。明示してはいないが、機能ユニット15は、リーフノードの各々に結合されて、その対応する同期回路19がアクティブであるか、それとも非アクティブであるかを判定するように構成された性能モニタ回路を含むことができる。この情報を、上述したような性能情報とともに提供することができる。
【0020】
上述したように、クロックツリー21は、様々なクロック分配ブランチ内にいくつかのインバータ13を含むことができる。インバータの代わりに非反転バッファを使用する実施形態も可能であり想定される。いずれにせよ、インバータ/バッファを使用して、様々なリーフノード17間で分配されるクロック信号のスキューを、1つのリーフノード17と隣のリーフノードの間で、及び1つの機能ユニット15と隣の機能ユニットの間でクロックエッジが実質的に揃うように制御することができる。
【0021】
例示的なクロックゲーティングユニット
図3は、クロックゲーティングユニットの1つの実施形態の論理図である。図3に示すクロックゲーティングユニット25の構成を使用して、上述した粗クロックゲーティングユニット14及び微粒クロックゲーティングユニット16を実現することができる。しかしながら、いくつかの実施形態では、異なる構成を使用して粗クロックゲーティングユニット及び微粒クロックゲーティングユニットを実現することもできる。
【0022】
図示の実施形態におけるクロックゲーティングユニット25は、ラッチ26及びANDゲート27を含む。図示の実施形態におけるラッチ26は、その「D」入力上でイネーブル信号(「EN」)を受け取り、そのクロック入力上で入力クロック信号(「ClkIn」)を受け取るために結合されたレベルセンシティブラッチである。ラッチ26の出力は、ANDゲート27に第2の入力として供給される同期イネーブル信号(「EnIn」)である。このANDゲート27に供給される同期イネーブル信号が高い場合、クロックゲーティングユニット25の(ANDゲート27からの)出力は、入力クロック信号の状態に従う。そうでなければ、出力クロック信号は低くなる。
【0023】
なお、図3に示すクロックゲーティングユニット25の構成は、いくつかの考えられるクロックゲーティング回路の構成の1つにすぎない。例えば、アサート時にクロック信号を通過させるイネーブル信号に従ってオン又はオフに切り替わるパスゲートを利用するクロックゲーティング回路も可能であり想定される。別の実施形態では、クロックゲーティング回路として使用するための、ラッチを使用しない単純なANDゲートも可能であり想定される。
【0024】
タイミング図
図4は、クロックゲーティングユニットを使用して、入力クロック信号に対して出力クロック信号の周波数を変更することを示すタイミング図である。この図の左手側には、イネーブル信号(「EnIn」)がアサ−ト状態に保持されている。このような場合、出力クロック信号(「ClkOut」)は入力クロック信号(「ClkIn」)に従い、同じ周波数及びデューティサイクル(この場合は50%)を有する。
【0025】
タイミング図の右手側に移動すると、イネーブル信号は、4クロック信号のうちの3クロック信号にわたってデアサート状態に保持され、4クロック信号のうち1クロック信号にわたってアサートされる。この結果、出力クロック信号は、4サイクルのうち1サイクルの間だけ高く推移する。実際には、この場合、出力クロック信号はイネーブル信号に従う。この例の出力クロック信号の周波数は、入力クロック信号の周波数の1/4であるのに対し、デューティサイクルは1/8である。一般に、所与の値をNとした場合、基準周波数の1/Nの有効周波数を有するクロック信号を生成するために、クロックゲーティングユニットに供給されるクロックイネーブル信号を1/Nのデューティサイクルで供給することができる。低下したクロック周波数信号のデューティサイクルは、1/2Nとすることができる。
【0026】
なお、図示の例に示すような2つの異なる出力クロック周波数間の変更は、上述したハードウェアの様々な実施形態によって動的に行うことができる。例えば、図1のクロック制御ユニット12は、所与の機能ユニット15が低下したクロック周波数で動作できると判断した場合、その対応する粗クロックゲーティングユニット14に供給されるイネーブル信号をデアサートし、Nクロックサイクルのうちの1サイクルの間だけアサートし始めることができる。残りのN−1クロック信号の間は、イネーブル信号をデアサートしたままにしておくことができる。この変更は、イネーブル信号のアサーション/デアサーションのパターンによって行うことができるので、周波数の変更を行うために対応する機能ユニット15の動作を中断する必要はない。さらに、イネーブル信号をアサートしてその状態を保持することにより、入力クロック信号を全周波数に戻すことができる。
【0027】
なお、図示の例は、全周波数と、全周波数の1/4である低下した周波数という2つのクロック周波数しか対象としていない。しかしながら、追加のクロック周波数を使用できる実施形態も可能であり想定される。例えば、クロック制御ユニットは、出力クロック信号が全周波数で、(2クロックサイクルのうちの1クロックサイクルにわたってイネーブル信号をアサートすることにより)全周波数の1/2の周波数で、又は図示のような全周波数の1/4の周波数でサイクルできるようにすることもできる。また、様々に混ぜ合わせた一連の2つの異なるデューティサイクルにおける全周波数及び1/Nの周波数のクロックを可能にすることにより、様々な有効周波数を実現することもできる。さらに、いくつかの実施形態では、クロックゲーティングユニットの設計を単純にするためにNの値を固定することもできる。Nの値を固定することで、様々な粗クロックゲーティングユニットにわたるクロック信号の同期を単純にすることもできる。
【0028】
方法のフロー図
次に図5を参照すると、クロックゲーティングユニットにより出力されるクロック信号の周波数を変更する方法の1つの実施形態のフロー図を示している。図示の実施形態では、粗クロックゲーティングユニットに入力クロック信号及びイネーブル信号を供給することによって方法500が開始する(ブロック505)。粗クロックゲーティングユニットを結合して、イネーブル信号がアサートされた時に、対応して結合された機能ユニットに出力クロック信号を供給することができる。イネーブル信号をデアサート状態に保持すると、機能ユニットに出力クロック信号が供給されるのを阻止することができる。イネーブル信号をアサート状態とデアサート状態の間で周期的にトグルすると、粗クロックゲーティングユニットは、入力クロック信号の全周波数及びデューティサイクルよりも低い周波数及び狭いデューティサイクルの出力クロック信号を機能ユニットに効果的に供給することができる。
【0029】
出力クロック信号を全周波数で供給すべき場合(ブロック510、全)、イネーブル信号をアサート状態に保持することができる(ブロック515)。対応する機能ユニットに、クロック信号を(入力クロック信号と同じ周波数などの)全周波数及びデューティサイクルで供給することができる(ブロック515)。出力クロック信号を低下した周波数で供給すべき場合(ブロック510、低下)、イネーブル信号をトグルすることができる(ブロック520)。さらに、イネーブル信号を、入力クロック信号のNサイクルのうちの1サイクルにわたってアサートし、入力信号の残りのN−1クロックサイクルにわたってデアサートすることもできる。Nの値は、1よりも大きな整数値とすることができる。本明細書で説明したようにイネーブル信号を周期的にアサートすることにより、出力クロック信号を、入力クロック信号に対して低下した周波数及びデューティサイクルで効果的に供給することができる。
【0030】
全クロック周波数で動作している時に、出力クロック周波数を低下させるべきであると判断した場合(ブロック525、はい)、方法はブロック520に進むことができる。そうでなければ、イネーブル信号をアサートしたままにしておくことができ、ブロック515に従って出力クロック信号を供給することができる。低下したクロック周波数で動作している時に、クロック周波数を全クロック周波数に戻すべきであると判断した場合(ブロック530)、方法はブロック515に進んでイネーブル信号の周期的なアサーションを中止し、代わりにイネーブル信号アサート状態に保持する。そうでなければ、方法は、ブロック520に従って、出力クロック信号を低下した周波数で供給し続ける。出力クロック周波数の変更(低下及び上昇)は、周波数の変更が行われている間にわたって、受け取り側の機能ユニットの動作を中断させることなく動的に行うことができる。
【0031】
例示的な実施形態における方法は、2つの周波数(全周波数及び1つの低下した周波数)に関してのみ行われているが、この方法を追加のクロック周波数に対応するように修正することもできる。例えば、出力クロックを入力クロック信号と同じ周波数(全クロック周波数など)で、第1の低下した周波数(1/2の入力クロック周波数など)で、及び第2の低下した周波数(1/4の入力クロック周波数など)で供給できる方法が想定される。これらの周波数間の変更は、イネーブル信号をアサート及びデアサートするパターンを変更することによって行うことができる。全クロック周波数の場合、イネーブル信号をアサート状態に保持することができる。全周波数の1/2の出力クロック信号の場合、入力クロック信号の2サイクルのうちの1サイクルにわたってイネーブル信号をアサートし、2サイクルのうちのもう1サイクルにわたってデアサートすることができる。全周波数の1/4の出力クロック信号の場合、入力クロックサイクルの4サイクルのうちの1サイクルにわたってイネーブル信号をアサートし、4サイクルのうちの残りの3サイクルにわたってデアサートすることができる。
【0032】
システム例
次に図6を参照すると、システム150の1つの実施形態のブロック図を示している。図示の実施形態では、システム150が、1又はそれ以上の周辺機器154及び外部メモリ158に結合された(図1などの)IC10の少なくとも1つのインスタンスを含む。IC10に供給電圧を供給するとともにメモリ158及び/又は周辺機器154にも1又はそれ以上の供給電圧を供給する電力供給装置156も設けられる。いくつかの実施形態では、1つよりも多くのIC10のインスタンスを含むことができる(及び同様に1つよりも多くの外部メモリ158を含むこともできる)。
【0033】
周辺機器154は、システム150の種類に応じてあらゆる所望の回路を含むことができる。例えば、1つの実施形態では、システム150を(携帯情報端末(PDA)、スマートフォンなどの)モバイル装置とすることができ、周辺機器154が、WiFi、Bluetooth(登録商標)、セルラ、全地球測位システムなどの様々な種類の無線通信のための装置を含むことができる。周辺機器154は、RAM記憶装置、固体記憶装置又はディスク記憶装置を含む追加の記憶装置を含むこともできる。周辺機器154は、タッチディスプレイ画面又はマルチタッチディスプレイ画面を含むディスプレイ画面、キーボード又はその他の入力装置、マイク、スピーカ、などのユーザインターフェイス装置を含むことができる。他の実施形態では、システム150が、(デスクトップパーソナルコンピュータ、ラップトップ、ワークステーション、ネットトップなどの)いずれの種類のコンピュータシステムであってもよい。
【0034】
外部メモリ158は、あらゆる種類のメモリを含むことができる。例えば、外部メモリ158は、SRAM、同期DRAM(SDRAM)、ダブルデータレート(DDR、DDR2、DDR3、LPDDR1、LPDDR2、など)SDRAM、RAMBUS DRAMなどのダイナミックRAM(DRAM)などであってもよい。外部メモリ158は、シングルインラインメモリモジュール(SIMM)、デュアルインラインメモリモジュール(DIMM)などの、メモリ素子を搭載した1又はそれ以上のメモリモジュールを含むことができる。
【0035】
当業者には、上記開示を十分に理解した時点で数多くの変形及び修正が明らかになるであろう。以下の特許請求の範囲は、全てのこのような変形及び修正を含むように解釈されることが意図されている。

【特許請求の範囲】
【請求項1】
1又はそれ以上の同期回路に結合された複数のリーフノードの各々にクロック信号を分配するように結合されたクロックツリーと、
前記複数のリーフノードのうちの対応するリーフノードの1又はそれ以上の前記同期回路の各々に供給される前記クロック信号をゲーティングするように構成された複数の微粒クロックゲーティングユニットと、
前記複数のリーフノードの一部を含む機能ユニットと、
前記複数のリーフノードの前記一部の各々のために前記クロック信号をゲーティングするように構成された粗クロックゲーティングユニットと、
前記粗クロックゲーティングユニットに結合され、前記クロック信号のNサイクルのうちの1サイクルを有効にして、前記クロック信号のNサイクルのうちのN−1サイクルを阻止することにより、前記複数のリーフノードの前記一部の各々に供給される前記クロック信号の周波数を選択的に制御するように構成されたゲーティング制御ユニットと、
を備えることを特徴とする装置。
【請求項2】
前記クロック信号を生成するように構成されたクロック生成ユニットをさらに備える、
ことを特徴とする請求項1に記載の装置。
【請求項3】
前記ゲーティング制御ユニットが、前記微粒クロックゲーティングユニットの各々にそれぞれのイネーブル信号を供給するようにさらに結合され、前記微粒クロックユニットの各々が、そのそれぞれのイネーブル信号がアサートされた時に、それぞれ結合された同期回路に前記クロック信号を供給するように構成され、そのそれぞれのイネーブル信号がデアサートされた時に、前記それぞれ結合された同期回路に前記クロック信号が供給されるのを阻止するようにさらに構成される、
ことを特徴とする請求項1に記載の装置。
【請求項4】
前記同期回路が、少なくとも1つのフロップ回路及び少なくとも1つのラッチを含む、
ことを特徴とする請求項1に記載の装置。
【請求項5】
前記粗クロックゲーティングユニットと、前記微粒クロックゲーティングユニットの各々とが、前記イネーブル信号及び前記クロック信号を受け取るように結合されたラッチと、前記ラッチから前記イネーブル信号を受け取るように結合された第1の入力、及び前記クロック信号を受け取るように結合された第2の入力を有するANDゲートとを含む、
ことを特徴とする請求項1に記載の装置。
【請求項6】
前記機能ユニットが、前記クロック信号の前記周波数の変更中に中断せずに動作を継続するように構成される、
ことを特徴とする請求項1に記載の装置。
【請求項7】
前記ゲーティング制御ユニットが、前記クロック信号の前記周波数を動的に変更するように構成される、
ことを特徴とする請求項1に記載の装置。
【請求項8】
前記ゲーティング制御ユニットが、
前記機能ユニットの処理作業負荷が減少したことに応答して前記クロック信号の前記周波数を低下させ、
前記機能ユニットの処理作業負荷が増加したことに応答して前記クロック信号の前記クロック周波数を上昇させる、
ように構成されることを特徴とする請求項1に記載の装置。
【請求項9】
粗クロックゲーティングユニットに第1のクロック信号を供給するステップを含み、前記粗クロックゲーティングユニットが、前記第1のクロック信号に基づく第2のクロック信号をクロックツリーの複数のリーフノードに分配するように結合され、前記リーフノードの各々が、有効時に対応する1又はそれ以上の同期回路の各々に前記クロック信号を分配するように結合された対応する微粒クロックゲーティングユニットに関連付けられ、前記第1のクロック信号が第1の周波数を有し、前記第2のクロック信号が第2のクロック周波数を有し、
粗クロックゲーティングユニットに粗ゲーティングイネーブル信号を供給するステップをさらに含み、前記粗クロックゲーティングユニットが、前記粗ゲーティングイネーブル信号がアサートされた時に前記第2のクロック信号を出力するように構成されるとともに、前記粗ゲーティングイネーブル信号がデアサートされた時に前記第2のクロック信号を阻止するようにさらに構成され、
前記粗ゲーティングイネーブル信号を前記第1のクロック信号のNサイクルのうちの1サイクルにわたってアサートし、前記粗ゲーティングイネーブル信号を前記第1のクロック信号のN−1サイクルにわたってデアサートすることにより、前記第2のクロック周波数が前記第1のクロック周波数よりも低くなるようにするステップをさらに含む、
ことを特徴とする方法。
【請求項10】
クロック生成ユニットが、前記第1のクロック信号を生成し、該第1のクロック信号を前記クロックツリーに供給するステップをさらに含む、
ことを特徴とする請求項9に記載の方法。
【請求項11】
前記粗クロックゲーティングイネーブル信号を前記第1のクロック信号のNサイクルのうちのNサイクルにわたってアサートすることにより、前記第1のクロック周波数と前記第2のクロック周波数が等しくなるようにするステップをさらに含む、
ことを特徴とする請求項9に記載の方法。
【請求項12】
前記複数のリーフノードが機能ユニットに含まれ、前記方法が、
前記第2のクロック周波数を、前記第1のクロック周波数と等しい周波数から前記第1のクロック周波数よりも低い周波数に動的に変更するステップと、
前記第2のクロック周波数を動的に変更する前記ステップ中に前記機能ユニットの動作を継続するステップと、
をさらに含むことを特徴とする請求項9に記載の方法。
【請求項13】
前記機能ブロックの処理作業負荷が減少したことに応答して、前記第2のクロック周波数を前記第1のクロック周波数と等しい周波数から低下させるステップと、
前記機能ブロックの前記処理作業負荷が増加したことに応答して、前記第2のクロック周波数を前記第1のクロック周波数と等しい周波数に上昇させるステップと、
をさらに含むことを特徴とする請求項12に記載の方法。
【請求項14】
前記機能ブロックの前記処理作業負荷が増加したことに応答して、前記第2のクロック周波数を前記第1のクロック周波数と等しい周波数に上昇させるステップをさらに含む、
ことを特徴とする請求項9に記載の方法。
【請求項15】
Nが、1よりも大きな整数値である、
ことを特徴とする請求項9に記載の方法。
【請求項16】
ルートクロック信号を第1の周波数でクロックゲーティングユニットに供給するステップと、
前記クロックゲーティングユニットから、前記ルートクロック信号に基づく動作クロック信号を出力するステップと、
前記クロックゲーティングユニットにイネーブル信号を供給するステップと、
前記イネーブル信号を前記ルートクロック信号のNサイクルのうちのNサイクルにわたってアサートすることにより、前記動作クロック信号を前記第1の周波数で出力するステップと、
前記イネーブル信号を前記ルートクロック信号のNサイクルのうちの1サイクルにわたってアサートし、前記イネーブル信号を前記ルートクロック信号のNサイクルのうちのN−1サイクルにわたってデアサートすることにより、前記動作クロック信号を前記第1の周波数よりも低い第2の周波数で出力するステップと、
を含むことを特徴とする方法。
【請求項17】
前記動作クロック信号を機能ブロックに供給するステップと、
前記機能ブロックの動作を中断することなく前記第2の周波数を動的に変更するステップと、
をさらに含むことを特徴とする請求項16に記載の方法。
【請求項18】
前記機能ブロックの作業負荷が減少したことに応答して、前記動作クロック信号の周波数を前記第1の周波数から前記第2の周波数に変更するステップと、
前記機能ブロックの前記作業負荷が増加したことに応答して、前記動作クロック信号の前記周波数を前記第2の周波数から前記第1の周波数に変更するステップと、
をさらに含むことを特徴とする請求項17に記載の方法。
【請求項19】
Nが、1よりも大きい整数値である、
ことを特徴とする請求項16に記載の方法。
【請求項20】
第1のクロックゲーティングユニットが、前記ルートクロック信号を受け取り、第1の動作クロック信号を前記第2の周波数で第1の機能ブロックに供給するステップと、
第2のクロックゲーティングユニットが、前記ルートクロック信号を受け取り、第2の動作クロック信号を前記第2の周波数で第2の機能ブロックに供給するステップと、
クロック制御ユニットが、前記第1のクロックゲーティングユニットに対して第1のイネーブル信号を、及び前記第2のクロックゲーティングユニットに対して第2のイネーブル信号を、前記ルートクロック信号と同じサイクルでアサートするステップと、
をさらに含むことを特徴とする請求項16に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2013−27050(P2013−27050A)
【公開日】平成25年2月4日(2013.2.4)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−173368(P2012−173368)
【出願日】平成24年7月18日(2012.7.18)
【出願人】(503260918)アップル インコーポレイテッド (568)
【Fターム(参考)】