説明

集積回路、クロックゲート回路、および方法

【課題】本発明は、集積回路に渡ってクロック信号を分配する時に消費される、電力の量を減少するための技術に関する。
【解決手段】集積回路2は、動作クロック周波数を有する動作クロック信号に応じて作動するように配設される、機能回路4、6を備える。電力を節約するために、クロック信号は、動作クロック周波数よりも低い分配クロック周波数で、集積回路2に渡って分配される。クロック変換器10は、機能回路4、6の動作を制御するために、分配クロック信号を動作クロック信号に変換するように提供される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、集積回路の分野に関する。より具体的には、本発明は、集積回路に渡ってクロック信号を分配する時に消費される、電力の量を減少するための技術に関する。
【背景技術】
【0002】
集積回路は、クロック信号に応じて作動する、少なくとも1つの機能回路を含むことができる。クロック分配ツリーは、クロック信号を機能回路に分配するように提供することができる。クロック信号によって、クロック分配ツリーの中で大容量ワイヤが駆動され、そのためクロック分配ツリーは、比較的大量の電力を消費する傾向がある。クロック周波数が高ければ高いほど、クロック信号は、低い状態と高い状態との間でより頻繁に切り替わり、そのためより大量の電力がクロック分配ツリーによって消費される。より低い周波数クロック信号が使用される場合、これで、機能回路によって達成された機能性および性能レベルが限定されるが、電力は節約され得る。
【0003】
機能回路は、大抵、クロック信号の立ち上がりエッジに応じて作動する。機能回路が、クロック信号の立ち上がりおよび立ち下がりエッジの両方に応答するように、機能回路の構成を修正することが提案されてきている。故に、既存の性能レベルは、周波数の半分を有するクロック信号で達成され得る。しかしながら、多くの既存の回路設計は、立ち上がりエッジのみに応じて作動するように設計されるため、本技術と互換性がない。何百もの機能回路を備える集積回路では、クロック信号に応答する方法を変更するように、各機能回路を変更するには、考慮すべき設計および製造費用が必要とされる場合がある。本技術は、機能回路の既存の機能性および性能レベルをなおも維持しながら、既存の機能回路を使用することができる方法で、クロック信号を分配する時に消費される電力を減少しようとする。
【発明の概要】
【課題を解決するための手段】
【0004】
1つの態様から見ると、本発明は、集積回路を提供し、該集積回路は、動作クロック周波数を有する動作クロック信号に応じて、作動するように構成された機能回路と、分配クロック周波数で該集積回路に渡って、分配クロック信号を分配するように構成されたクロック分配回路であって、該分配クロック周波数は、該動作クロック周波数よりも低い、クロック分配回路と該機能回路の動作を制御するために、該クロック分配回路によって分配された該分配クロック信号を、該動作クロック信号に変換するように構成されたクロック変換器と、を備える。
【0005】
集積回路は、クロック分配回路および機能回路を備える。機能回路は、所与の動作クロック周波数を有するクロック信号に応じて作動するように設計される。しかしながら、本技術では、反直観的に、クロック信号は、動作クロック周波数とは異なる周波数で、集積回路に渡って分配することができると認識している。クロック分配回路は、動作クロック周波数よりも低い分配クロック周波数で、集積回路に渡って分配クロック信号を分配するように配設される。クロック変換器は、機能回路の動作を制御するために、分配クロック信号を動作クロック信号に変換するように提供される。より低い周波数クロック信号を分配することによって、動作クロック信号が分配される場合より少ない電力が、クロック分配回路によって消費される。しかしながら、機能回路に提供される動作クロック信号は、機能回路がそれによって作動するように設計されるクロック信号と同じ周波数を有するため、機能回路の機能性および性能レベルは維持され、機能回路を再設計する必要なく、省電力が達成される。
【0006】
通常は、クロック変換器が集積回路上の機能回路に近接して設置される場合、これによって、動作クロック信号を回路に渡って分配する程度が減少するであろうため、電力の結合において最大の節約を達成することができる。それにもかかわらず、いくつかの実施形態は、クロック変換器から機能回路に動作クロック信号を分配するためのさらなるクロック分配回路を、随意に含むことができる。
【0007】
機能回路は、クロック信号の制御下で機能を提供する、いずれの種類の回路でもあることができる。例えば、機能回路は、プロセッサ、グラフィックプロセッサ、コプロセッサ、キャッシュ、メモリ、キャッシュまたはメモリコントローラ、レジスタバンクなどであることができる。
【0008】
一例では、クロック分配回路は、外部クロック発生器から分配クロック信号を受信するためのクロック入力部を備えることができる。代替として、クロック分配回路は、分配クロック信号を生成するためのクロック発生器を備えることができる。故に、分配クロック信号は、所望の通り、オンチップまたはオフチップのどちらかで生成することができる。
【0009】
クロック分配回路は、動作クロック周波数よりも低い分配クロック周波数を有する分配クロック信号を分配するため、その時、クロック分配回路の電力消費は、動作クロック信号が分配された場合よりも小さい。分配クロック周波数は、動作クロック周波数よりも低い、任意の周波数であることができる。例えば、動作クロック周波数は、分配クロック周波数の整数倍(2倍以上)である場合がある。
【0010】
しかしながら、分配クロック周波数が動作クロック周波数の半分であるように配設するのは、有用であり得る。分配クロック周波数が動作クロック周波数の半分である場合、クロック変換器が、分配クロック信号の立ち上がりおよび立ち下がりエッジに応じて、動作クロック信号の各サイクルをトリガーすることができるため、クロック変換器構成は単純化することができる。クロック変換器の複雑性がより低ければ低いほど、クロック変換器によって消費された電力の量はより小さくなり、故に、本技術によって達成可能な省電力はより大きくなる。
【0011】
分配クロック周波数は、正確に動作クロック周波数の半分である必要はなく、すなわち、動作クロック周波数の約半分の周波数で十分である。本出願において、周波数の「半分」への言及は、周波数の「実質的な半分」と解釈されるべきである。
【0012】
クロック変換器は、動作クロック信号が、パルス発生器によって生成された、一連のクロックパルスを備えることができるように、分配クロック信号の各クロック遷移に応じて、クロックパルスを生成するように構成されたパルス発生器を備えることができる。分配クロック信号が、高い状態と低い状態との間を遷移する時に、パルス発生器は、分配クロック信号よりも大きいクロック周波数を有する動作クロック信号を生成するために、少なくとも1つの立ち上がりエッジおよび少なくとも1つの立ち下がりエッジを含むパルスを生成することができる。
【0013】
クロック変換器は、クロック信号がそれに沿って機能回路に分配される、集積回路の任意の部分に設置することができる。例えば、クロック変換器は、クロック分配回路それ自体の内部にあることができるか、またはクロック分配回路と機能回路との間に位置付けることができる。
【0014】
クロック分配によって消費される電力のさらなる減少を達成するために、分配クロック信号の信号電圧は、動作クロック信号の信号電圧よりも低い場合がある。すなわち、分配クロック信号は分配電圧レベルで分配することができ、動作クロック信号は動作電圧レベルで提供することができ、分配電圧レベルは動作電圧レベルよりも低い。クロック変換器は、分配クロック信号から動作クロック信号を生成する時に、分配電圧レベルから動作電圧レベルへ、電圧レベルを変換するための電圧変換器を含むことができる。故に、周波数変換および電圧変換は、所望の場合、並行して使用することができる。
【0015】
また、本技術は、動的電圧/周波数制御(集積回路全体の動作電圧または周波数が、電力を節約するように減少される)、または機能回路がクロック信号の両エッジに応答するように変形される、上に記載した技術など、他の省電力技術と共に使用することもできる。
【0016】
また、本技術は、クロック信号の信号遷移が機能回路に伝播されるかどうかを制御するための、クロックゲートを備える集積回路で使用することができる。クロックゲートは、特定の機能回路が使用されていない時に、電力を節約するように使用することができる。クロックゲートによって、クロック遷移を機能回路に伝播することを選択的に可能にするか、または防止する。クロックゲートが、機能回路へのクロック遷移の伝播を防止する時、機能回路の容量性素子が、状態を切り替えるクロック信号によって全く駆動されなくなるため、次いで電力を節約することができる。
【0017】
本技術がクロックゲートと並行して使用される時に、クロック変換器は、クロックゲート回路とは別に提供することができる。故に、集積回路は、分配クロック信号を動作クロック信号に変換するためのクロック変換器と、クロック信号の信号遷移が機能回路にまで伝播されるかどうかを制御するためのクロックゲート回路との両方を含むことができる。
【0018】
しかしながら、クロック変換器をクロックゲート回路それ自体の一部として提供することが、より効率的である場合がある。クロックゲートを使用する回路では、クロックゲートは、大抵、集積回路内の各機能回路へのクロック分配経路上に提供され、そのためクロックゲートの場所は、通常、分配クロック信号から動作クロック信号への変換が所望されるであろう、クロック経路のポイントに対応する。故に、クロック変換およびクロックゲート機能性は、単一回路の一部として効率的に提供することができる。クロックゲート回路内にクロック変換機能性を含むことによって、残りのクロック分配回路の修正はほとんど必要とされない。
【0019】
一例では、クロックゲート回路は、クロック分配回路から分配クロック信号を受信し、クロック変換器を使用して、分配クロック信号を動作クロック信号に変換し、動作クロック信号およびイネーブル信号に応じて生成されたゲート動作クロック信号を、機能回路に出力するように構成することができる。クロックゲート回路は、イネーブル信号に依存して、動作クロック信号のクロック遷移が、ゲート動作クロック信号のクロック遷移をトリガーするかどうかを制御することができる。イネーブル信号は、しばしば、動作クロック周波数でクロックされている集積回路の一部によって生成されるか、または動作クロック周波数に等しい速度で変化することができる値と共に、集積回路に入力され、そのためイネーブル信号に基づき、動作クロック信号をゲートで制御する前に、分配クロック信号を動作クロック信号に変換することが有用であり得る。
【0020】
一例では、イネーブル信号が第1の状態を有する場合、クロックゲート回路によって、ゲート動作クロック信号のクロック遷移を、動作クロック信号のクロック遷移に応じて機能回路に伝播することを可能にする一方で、イネーブル信号が第2の状態を有する場合、クロック遷移は機能回路に伝播されず、代わりに、一定の信号レベルを有するゲート動作クロック信号が、機能回路に出力されるであろう。ゲート動作クロック信号のクロック遷移が、クロックゲート回路によって無効にされる時に、機能回路で電力が節約される。
【0021】
一例では、クロックゲート回路は、動作クロック信号およびイネーブル信号に、論理演算を適用することによって、ゲートクロック信号を生成するように構成される、論理ゲートを備えることができる。例えば、論理ゲートは、AND演算で動作クロック信号およびイネーブル信号を組み合わせるためのANDゲートであり得る。代替として、NANDゲートが使用され得る。動作クロック信号の信号遷移を、イネーブル信号に依存して選択的に伝播または遮断することを可能にするためのいかなるタイプの論理ゲートも、使用することができる。
【0022】
クロックゲート回路は、動作クロック信号の現在の状態に依存して、イネーブル信号を論理ゲートに選択的に供給するように構成された、トランスペアレントラッチを備えることができる。イネーブル信号のグリッチによって、時折、ゲート動作クロック信号を不正確に状態間で遷移させ得る。動作クロック信号の現在の状態に基づき、イネーブル信号を論理ゲートに供給するか、またはイネーブル信号を論理ゲートに供給するのを防止するかを選択する、トランスペアレントラッチを提供することによって、イネーブル信号のそのようなグリッチが、論理ゲートに伝送されることがより少なくなり、そのため論理ゲートから出力されるゲート動作クロック信号は、エラーの影響をより受けにくい。
【0023】
クロックゲート回路は、集積回路内の異なる場所に設置することができる。一例では、機能回路は、微粒レベルで個々の機能回路の電源を入れたり切ったりするための、対応するクロックゲートを伴い提供することができる。
【0024】
また、クロックゲートは、関連回路のグループに供給されるクロック信号を制御するために、クロック分配ツリーのより高レベルに提供することもできる。
【0025】
例えば、クロック分配回路は、該分配クロック周波数で該集積回路に渡って、該分配クロック信号を分配するための上流分配部分と、該上流分配部分から該分配クロック信号を受信するための中間クロックゲート回路と、該分配クロック周波数で、該中間クロックゲート回路から少なくとも該クロック変換器へ、該分配クロック信号を分配するための下流分配部分と、を備えることができ、該中間クロックゲート回路は、該分配クロック信号のクロック遷移が、該下流分配部分に伝播されるかどうかを制御するように構成される。
【0026】
故に、中間クロックゲート回路は、クロック分配回路内の中間ポイントに設置され、そのため、クロック遷移が中間クロックゲート回路の下流に設置される回路に、伝播されるかどうかを制御するために使用することができる。中間クロックゲート回路によって、集積回路の複数部分を、特定の機能回路と関連付けられた個々のクロックゲートより荒い粒度で、省電力状態に配置することを可能にする。中間クロックゲート回路の下流に配置される回路のいずれも、特定の演算に必要でないことが分かっている場合、中間クロックゲート回路は、効率的な手法で、下流の回路の電源を切るように使用することができる。
【0027】
中間ゲート回路は、クロック分配回路の中間ポイントに設置される。したがって、中間クロックゲート回路は、上流分配部分から分配クロック信号を受信し、分配クロック信号を下流分配部分に分配する。故に、中間クロックゲート回路内ではクロック変換は必要ないと予想されるであろう。しかしながら、中間クロックゲート回路によって、クロック遷移を下流分配部分に伝播することを可能にするかどうかを制御するイネーブル信号は、通常、動作クロック周波数と等しい速度で変化することができる値を有する。例えば、イネーブル信号は、動作クロック周波数でクロックされる、レジスタなどの集積回路の別の一部から受信することができる。イネーブル信号は、動作クロック周波数の速度で状態を切り替えることができるため、次いで、中間クロックゲート回路のゲート機能もまた、動作クロック周波数で応答することができるはずである。したがって、中間クロックゲート回路が、上流分配部分から受信された分配クロック信号を、動作クロック周波数を有する中間動作クロック信号に変換するための、中間クロック変換器を備えることは有用であり得る。その後、中間動作クロック信号は、イネーブル信号に基づきゲートで制御し、分配クロック周波数に変換し戻し、分配クロック周波数で下流分配部分に出力することができる。
【0028】
いくつかの実施形態では、中間クロックゲート回路は、イネーブル信号に基づき中間動作クロック信号をゲートで制御し、分配クロック周波数でゲート中間動作クロック信号をゲート分配クロック信号に変換し戻すために、別々の回路を有することができる。
【0029】
しかしながら、クロック信号のゲート制御と、動作クロック周波数から分配クロック周波数への周波数変換との両方を行う、共通回路を提供することが、より効率的である場合がある。例えば、トグルフリップフロップを使用することができる。トグルフリップフロップは、中間クロック変換器によって生成された中間動作クロック信号に基づき、ゲート分配クロック信号を生成することができる。トグルフリップフロップは、イネーブル信号が第1の状態を有する時に、次いでトグルフリップフロップが、中間動作クロック信号の各クロックサイクルに応じて、ゲート分配クロック信号の値をトグルし、かつイネーブルが第2の状態を有する時に、次いでトグルフリップフロップが、ゲート分配クロック信号をその現在の値で保持するように、配設することができる。トグルフリップフロップのこの形態では、効率的に中間クロックゲート回路のゲート制御および周波数変換機能が実装される。
【0030】
本技術は、単一の機能回路を備える集積回路に適用することができるが、集積回路は、動作クロック周波数を有する動作クロック信号に応じて作動するように構成された、複数の機能回路を備えることができる。少なくとも1つのクロック変換器は、少なくとも1つの関連機能回路の動作を制御するために、クロック分配回路によって分配された分配クロック信号を、動作クロック信号に変換するように提供することができる。
【0031】
いくつかの実施形態では、各機能回路は、それ自体の関連クロック変換器と共に提供することができる。代替として、少なくとも1つのクロック変換器は、クロック変換器によって提供された動作クロック信号が、2つ以上の関連機能回路に伝送されるように、機能回路間で共有することができる。
【0032】
集積回路の全ての機能回路が、上記のより低い周波数の分配クロック信号から変換された、動作クロック信号に応じて作動することは必須ではない。ネガティブエッジトリガー型メモリまたはラッチなど、分配クロック信号から変換される動作クロック信号に応じて作動することができない、いくつかの種類の機能回路が存在することができる。したがって、いくつかの実施形態では、集積回路は、さらなるクロック分配回路によって分配された、さらなる動作クロック信号に応じて作動する、少なくとも1つのさらなる機能回路を備えることができる。さらなる動作クロック信号は、動作クロック周波数と同じか、または異なることができる、さらなる動作クロック周波数を有する。故に、本技術を使用して作動することができない、さらなる機能回路に対しては、別々のクロック分配ネットワークが、さらなる機能回路が設計されて作動する周波数で、さらなる動作クロック信号を分配するために提供することができる。1つ以上の機能回路が、クロック変換技術を使用しない場合でさえ、集積回路の全体的な電力消費は、少なくとも1つの他の機能回路に対してクロック変換技術を使用することによって、なおも減少することができる。
【0033】
クロック変換器は、機能回路への供給のために、動作クロック信号を反転させるためのインバータを備えることができる。クロック信号の反転によって、立ち上がりエッジを立ち下がりエッジにさせ、かつ立ち下がりエッジを立ち上がりエッジにさせるため、反転によって、動作クロック信号内の立ち上がりエッジおよび立ち下がりエッジの相対的タイミングを、調整することができる。故に、動作クロック信号の立ち上がりエッジまたは立ち下がりエッジのどちらかのトリガーを、オフにされる演算の機能回路は、そのタイミングを調整することができる。これは、例えば、機能回路内のプロセス変動に対する静的補償に有用であり得る。インバータを使用して、動作クロック信号のクロックエッジの相対的タイミングを合わせることによって、集積回路の生産量、信頼性、および性能を向上することができる。
【0034】
動作クロック信号は、いつもインバータによって反転する必要があるとは限らない。クロック変換器は、インバータが、反転制御信号に依存して、動作クロック信号を選択的に反転させるように、選択的反転能力を備えることができる。動作クロック信号を選択的に反転させる、または反転させないことによって、動作クロック信号のエッジの相対的タイミングは、例えば、温度または電圧などの効果の動的補償のために調整することができる。
【0035】
反転技術は、集積回路が2つの異なるクロック変換器を含む時に、特に有用である。2つのクロック変換器は、それぞれの動作クロック信号を、2つのはっきりと異なる機能回路に、または同じ機能回路の2つの異なる部分に提供することができる。クロック信号のどちらも反転しない場合、または両方とも反転する場合、続くクロックサイクルにおける1つのクロック信号の立ち上がりエッジと、他方のクロック信号の立ち上がりエッジとの間には所与の時間がある。他方に対するクロック信号のうちの1つを反転させることによって、次いで立ち上がりエッジ間のこの期間は、便利に調整することができる。
【0036】
例えば、第1のクロック変換器によって生成されるクロック信号によってクロックされる機能回路が、第2のクロック変換器によって生成されるクロック信号によってクロックされる、別の機能回路(または同じ機能回路の異なる部分)によって、以前のクロックサイクルで生成されるデータ値を捕捉する時に、これは有用であり得る。第1のクロック変換器のクロック信号を反転させるが、第2のクロック変換器から非反転クロック信号を供給し続けることによって、データ値の生成の開始とデータ値の補足との間の時間は、データ値が早くに捕捉される可能性を減少するために増加することができる。故に、エラーの発生する確率は、減少することができる。
【0037】
別の態様から見ると、本発明は、集積回路を提供し、該集積回路は、動作クロック周波数を有する動作クロック信号に応じて作動するための機能回路手段と、分配クロック周波数で該集積回路に渡って、分配クロック信号を分配するためのクロック分配手段であって、該分配クロック周波数は、該動作クロック周波数よりも低い、クロック分配手段と、該機能回路手段の動作を制御するために、該クロック分配手段によって分配された該分配クロック信号を、該動作クロック信号に変換するためのクロック変換手段と、を備える。
【0038】
さらなる態様から見ると、本発明は、動作クロック周波数を有する動作クロック信号に応じて作動するための機能回路を備える、集積回路を操作する方法を提供し、該方法は、分配クロック信号を該集積回路に渡って分配することであって、該分配クロック信号は、分配クロック周波数を有し、該分配クロック周波数は、該動作クロック周波数よりも低いことと、該分配クロック信号を、該動作クロック周波数を有する該動作クロック信号に変換することと、該動作クロック周波数を有する該動作クロック信号に応じて、該機能回路を操作することと、を含む。
【0039】
別の態様から見ると、本発明は、関連回路への出力クロック信号の供給を制御するためのクロックゲート回路を提供し、該クロックゲート回路は、分配クロック周波数を有する分配クロック信号を受信するように構成されたクロック入力部と、該分配クロック信号を、動作クロック周波数を有する動作クロック信号に変換するように構成されたクロック変換器であって、該動作クロック周波数は、該分配クロック周波数よりも高い、クロック変換器と、イネーブル信号、および該クロック変換器によって生成された該動作クロック信号に基づき、該出力クロック信号を生成するように構成されたゲート回路と、該出力クロック信号を該関連回路に出力するように構成されたクロック出力部と、を備え、該ゲート回路は、該イネーブル信号に依存して、該動作クロック信号のクロック遷移が、該出力クロック信号におけるクロック遷移をトリガーするかどうかを制御するように構成される。
【0040】
上記の通り、クロック変換能力は、クロックゲート回路内に提供することができる。クロックゲート回路は、集積回路の異なる部分で使用することができる。
【0041】
例えば、クロックゲート回路は、クロック分配ツリーのより低い端部(すなわち、クロック信号を供給している機能回路により近接している、クロック分配ツリーの部分)で使用するためのクロックゲートであることができる。故に、クロックゲート回路は、少なくとも1つの関連機能回路の動作を制御するために、動作クロック周波数で出力クロック信号を出力することができる。クロックゲート回路は、上記の論理ゲートおよびトランスペアレントラッチを備えることができる。
【0042】
代替として、クロックゲート回路は、クロック分配ツリーのより高い上部で(例えば、クロック分配ツリーの中間ポイントで)の使用を意図することができる。この場合、クロックゲート回路が、集積回路に渡るさらなる分配のために、分配クロック周波数で出力クロック信号を出力することが望ましい場合がある。この例では、クロックゲート回路は、上記の通り、トグルフリップフロップを備えることができる。
【0043】
別の態様から見ると、本発明は、関連回路への出力クロック信号の供給を制御するためのクロックゲート回路を提供し、該クロックゲート回路は、分配クロック周波数を有する分配クロック信号を受信するためのクロック入力手段と、該分配クロック信号を、動作クロック周波数を有する動作クロック信号に変換するためのクロック変換手段であって、該動作クロック周波数は、該分配クロック周波数よりも高い、クロック変換手段と、該クロック変換手段およびイネーブル信号によって生成される、該動作クロック信号に基づき、該出力クロック信号を生成するためのゲート手段と、該出力クロック信号を該関連回路に出力するためのクロック出力手段と、を含み、該ゲート手段は、該イネーブル信号に依存して、該動作クロック信号のクロック遷移が、該出力クロック信号に於けるクロック遷移をトリガーするかどうかを制御するように構成される。
【0044】
別の態様から見ると、本発明は、集積回路の回路セルの回路レイアウトを生成し、認証するように、コンピュータを制御するための標準セル回路定義を備える、データ構造を記憶する、コンピュータで読み取り可能な記憶媒体を提供し、該回路セルは、上記の通り、クロックゲート回路を備える。
【0045】
標準セル回路定義は、クロックゲート回路のタイミング特性、論理機能、物理インターフェース特性、および電気インターフェース特性のうちの少なくとも1つを含む、クロックゲート回路の特性を規定することができる。データ構造は、単一データ構造または分散型データ構造であることができる。記憶媒体(分散型データ構造の場合に、複数の記憶媒体を網羅することができる)は、非一時的であることができる。
【0046】
データ構造は、例えば、クロックゲート回路を備える、集積回路の回路レイアウトを生成し認証するように使用される、標準セルライブラリの一部であることができる。標準セルライブラリは、異なる種類の標準セルの範囲の特性を定義する。例えば、ライブラリに含まれる標準セルは、論理ゲート(例えば、NAND、AND、ORなど)、算術機能を果たすための回路(例えば、加算器、乗算器)、ラッチ、フリップフロップ、電力制御回路などの異なる種類の標準セルの表示を含むことができる。各標準セルは「基礎的要素」を表す。集積回路レイアウトは、ライブラリに定義された基礎的要素の組み合わせとして生成することができる。低レベル論理の収集物(トランジスタなど)を、標準セルのより高レベルの抽象的概念にカプセル化することによって、次いで集積回路は、設計者が各標準セル内に存在する実際の論理を認識する必要なく、標準セルから作り上げることができる。集積回路を開発する時に、回路設計者は、ライブラリの標準セルの所望の組み合わせおよび配置を規定することができる。代替として、設計者は、集積回路によって満たされるべき制限を規定することができ、合成ツールは、それらの制限を満たす標準セルの所与の配置を備える、集積回路レイアウトを生成することができる。標準セルライブラリを使用して開発された集積回路レイアウトは、集積回路の製造を制御するように使用することができる。
【0047】
標準セルライブラリは、クロックゲート回路の標準セル定義を含むことができる。本技術に従い、クロックゲート標準セルの標準セル定義は、クロック変換技術を、集積回路の残りの再設計をほとんど伴わずに、集積回路上に実装することができるように、クロック周波数変換機能を含むように修正することができる。
【0048】
また別の態様から見ると、本発明は、関連回路への出力クロック信号の供給を制御するための方法を提供し、該方法は、分配クロック周波数を有する分配クロック信号を受信するステップと、該分配クロック信号を、動作クロック周波数を有する動作クロック信号に変換するステップであって、該動作クロック周波数は、該分配クロック周波数よりも高い、ステップと、該動作クロック信号およびイネーブル信号に基づき、該出力クロック信号を生成するステップと、該出力クロック信号を該関連回路に出力するステップと、を含み、該生成するステップは、該イネーブル信号に依存して、該動作クロック信号のクロック遷移が、該出力クロック信号に於けるクロック遷移をトリガーするかどうかを制御することを含む。
【0049】
本発明の上のおよび他の目的、特徴、ならびに利点は、添付の図面と関連して読まれるべきである、例示的実施形態の以下の詳細な記載から明らかになるであろう。
【図面の簡単な説明】
【0050】
【図1】機能回路の動作を制御するために、クロック分配回路によって分配された分配クロック信号を、動作クロック信号に変換するためのクロック変換器を備える、集積回路を図式的に図示する。
【図2】分配クロック信号を動作クロック信号に変換するためのパルス発生器の例を図式的に図示する。
【図3】図2のパルス発生器用の信号タイミングの例を図示する。
【図4】集積回路を操作する方法で図示する。
【図5】クロック信号の信号遷移が、機能回路に伝播されるかどうかを制御するための、クロックゲートを備える集積回路を図示する。
【図6】クロック変換器を備えるクロックゲート回路の例を図示する。
【図7】図6のクロックゲートの入力および出力信号間の関係を図示する。
【図8】図6のクロックゲート用の信号タイミングの例を図示する。
【図9】クロック分配回路の中間ポイントで使用するための、中間クロックゲートの例を図式的に図示する。
【図10】図9の中間クロックゲート用の例の信号タイミングを図示する。
【図11】分配クロック周波数で分配される分配クロック信号から生成される、動作クロック信号を伴い提供される機能回路と、さらなる動作クロック周波数で分配される、さらなる動作クロック信号を伴い提供される、さらなる機能回路とを含む集積回路を図示する。
【図12】動作クロック信号内で、立ち上がりおよび立ち下がりエッジの相対的タイミングを調整するための、クロック変換器内での選択的反転の使用を図示する。
【図13A】クロック信号を反転させるためのインバータを有するクロックゲートの例を図示する。
【図13B】動作クロック信号を選択的に反転させるためのインバータを有する、クロックゲートの例を図示する。
【発明を実施するための形態】
【0051】
図1は、機能回路4、6を備える集積回路2を図示する。この例では、機能回路は、処理ユニット(CPU)4およびグラフィック処理ユニット(GPU)6を含む。機能回路4、6は、動作クロック周波数を有する動作クロック信号に応じて作動する。機能回路が、CPUまたはGPUの代わりに、あるいはCPUまたはGPUと共に、他の種類の機能回路を備えることができることは理解されるであろう。
【0052】
集積回路2は、機能回路4、6へクロック信号を分配するための、クロック分配回路8を備える。分配回路8は、機能回路4、6が作動するように設計される動作周波数と同じ周波数で、クロック信号を分配しない。代わりに、分配回路8は、動作クロック周波数よりも低い分配クロック周波数を有する、分配クロック信号を分配する。クロック変換器10は、動作クロック周波数で機能回路4、6の動作を制御するために、分配回路8によって分配された分配クロック信号を、動作クロック信号に変換するように提供される。
【0053】
クロック分配回路8は、共通クロック源から、クロック信号を必要とする種々の機能回路と関連付けられたクロック変換器10へ分配クロック信号を分配する。この例では、クロック源は、外部クロック発生器14から分配クロック信号を受信する、クロック入力部12である。クロック源は、他の実施形態では、オンチップクロック発生器を備えることができる。
【0054】
クロック分配回路8は、ツリーのより高い端部にあるクロック源から扇形に広がる、クロック分配ツリーを備えることができ、分配回路8の分岐は、ツリーのより低い端部に設置された機能回路4、6に延在する。図1が、クロック信号をそれぞれの機能回路4、6に供給するための2つの分岐を備えるクロック分配ツリー8を示す一方で、より大きな数の機能回路を備える集積回路は、通常、クロック信号を関連機能回路に分配するための、より大きな数の分岐および副分岐を有する、クロック分配ツリー8を備えるであろう。クロック分配ツリー8は、集積回路2に渡ってクロック信号を分配するために、ワイヤおよびバッファのネットワーク16を備える。バッファ16は、クロック信号が集積回路2に渡って通過する時に、クロック信号の信号レベルを維持するために、クロック信号を繰り返すように使用される。
【0055】
この例では、クロック変換器10は、クロック分配回路8から分配クロック信号を受信し、動作クロック信号を関連機能回路4、6に供給する。他の例では、クロック変換器10は、いくらかのさらなる分配回路が、クロック変換器10と関連機能回路との間に提供されるように、クロック分配回路8内に提供することができる。また、各機能回路4、6が、それ自体の個々のクロック変換器10を提供されることは必須ではない。他の例では、2つ以上の機能回路は、同じクロック変換器10を共有することができる。
【0056】
クロック変換器10は、分配クロック信号の各信号遷移に応じて、パルスを生成するためのパルス発生器を備えることができる。一連のそのようなパルスは、1つ以上の関連機能回路4、6の動作を制御するための、動作クロック信号を形成することができる。多種多様な異なる種類のパルス発生器を使用することができる。図2は、パルス発生器20の特定の例を示すが、他の種類のパルス発生器もまた、クロック変換器10に対して使用することができる。
【0057】
図2に示すパルス発生器20は、クロック分配回路8によって分配された分配クロック信号SCKを受信する。パルス発生器20は、分配クロック信号SCKの遅延バージョンDSCKを生み出す、遅延素子を備える。図2の例では、遅延素子は、分配クロック信号SCKを連続的に反転させ、反転した信号を再び戻して反転させる、一連の反転段階24を備える。図3に示す通り、反転段階24の出力DSCKは、所与の時間Tdelayによって遅延した分配クロック信号SCKに等しい。パルス発生器20は、分配クロック信号SCKおよび遅延分配クロック信号DSCKに基づき、動作クロック信号FCKを生成する、論理ゲート26を備える。図2の例では、論理ゲート26は、排他的論理和演算で入力信号を組み合わせる、XORゲートである。故に、動作クロック信号FCKは、分配クロックSCKおよび遅延分配クロックDSCKが互いに異なる周期中は高くなり、クロック周期の残余部中は低くなる。その結果、分配クロック信号SCKの各信号遷移に対応する、パルス30を備える、動作クロック信号FCKとなる。故に、分配クロック信号SCKのクロック周期Tは、動作クロック信号FCKのクロック周期Tの実質的に2倍であり、分配クロック周波数fは、動作クロック周波数fの実質的に半分である。
【0058】
図3は、動作クロック信号FCKのデューティ比が50%となることはできないことを示す。この例では、動作クロック信号FCKは、低信号レベルより短い時間の間、高信号レベルを有する。例えば、デューティ比は、わずか20%であることができる。信号パルス30のパルス幅pは、パルス発生器20の反転段階24によって提供された遅延Tdelayと等しい。反転段階24の数を変えることによって、遅延Tdelay(および故に、パルス幅p)は、関連機能回路4、6がその関連機能動作を行うことを可能にするのに、パルス幅pが十分長いことを確実にするように、所望の通り、短縮または延長することができる。例えば、特定の機能回路が、70ピコ秒の最小パルス幅を必要とする場合、パルス発生器20は、少なくとも70ピコ秒の遅延Tdelayを提供するように配設することができる。
【0059】
パルス発生器20は、図1に示す通り、クロック変換器10内で使用することができる。典型的な集積回路2は、多くの機能回路を含むと予想することができる。それらの機能回路用のクロック信号が、以前から既知の技術における通り、動作クロック周波数で分配される場合、集積回路2は、所与の量の電力を消費するであろう。本技術を適用する時に、より低いクロック周波数で集積回路に渡ってクロック信号を分配することによって達成される省電力が、クロック変換器10によって消費される電力より大きい場合、集積回路2によって消費される電力の全体的な量は減少する。例えば、典型的な集積回路2は、動作クロック周波数でクロック信号を分配するにおいて、50mWの電力を消費するクロック分配回路を有することができる。動作クロック周波数の半分である分配クロック周波数を有するクロック信号を分配するように、クロック分配回路8を準備することによって、分配回路8の電力消費は、省電力が25mWになると予想されるであろうように、おおよそ半分となることができる。回路が、2500個のクロック変換器を必要とすると想定される場合、電力消費の全体的な減少は、各クロック変換器10が10μW以下の電力を消費する場合に達成される。図2に示すパルス発生器20によって消費される電力のモデル政策において、パルス発生器20の動的な電力消費が、32nmのCMOSプロセスで5.2μWであることが分かった。これは、クロック変換器10ごとの推定される省電力が4.8μWであることを表し、それによって、集積回路2全体で12mW(クロック信号が動作クロック周波数で分配される場合に消費される、電力の24パーセント)の省電力をもたらす。故に、本技術は、集積回路2の全体的電力消費全を減少するように使用することができる。電力消費は、より効率的なパルス発生器を生み出すことによって、よりさらに減少することができると予想される。
【0060】
図2に示すパルス発生器20は、分配クロック信号SCKを、分配クロック信号SCKの2倍の周波数を有する、より速い動作クロック信号FCKに変換する。すなわち、分配クロック信号SCKは、動作クロック信号FCKによってクロックされている機能回路4、6に対して必要とされた動作クロック周波数のおよそ半分で、分配することができる。しかしながら、分配クロック周波数が動作クロック周波数の半分であることは、必須ではない。
【0061】
例えば、パルス発生器20は、分配クロック信号SCKの各クロック遷移に応じて、2つの立ち上がりエッジおよび2つの立ち下がりエッジを備える、2倍のクロックパルスを生成するように設計し得る。これによって、分配クロック信号SCKのおよそ4倍の周波数を有する動作クロック信号FCKをもたらす可能性があり、すなわち、分配クロック信号は、機能回路4、6を操作するために必要とされる動作周波数の4分の1である、分配クロック周波数で分配することができる。他の形態のパルス発生器20は、分配クロック周波数と動作クロック周波数との間の異なる比率を持つ、周波数変換を実装するように使用し得る。
【0062】
図4は、集積回路2を操作する方法を図示する。ステップ40では、分配クロック信号が、分配クロック周波数で集積回路2に渡って分配される。ステップ42では、分配クロック信号は、動作クロック周波数を有する動作クロック信号に変換される。動作クロック周波数は、分配クロック周波数よりも高い。次に、ステップ44では、機能回路が、ステップ42で生成された動作クロック信号に応じて生成される。
【0063】
図5は、集積回路50の別の例を図示する。集積回路50は、図1の回路と類似する、クロック分配回路および機能回路54、56、58、60を備える。例の図5では、機能回路は、レジスタ58、60及び、処理ユニット54およびグラフィック処理ユニット56のバンクを含む。他のタイプの機能回路もまた、使用することができることは理解されるであろう。また、集積回路50は、クロック信号の遷移が、クロックゲート64、66の下流に設置された回路に伝播されるかどうかを制御する、クロックゲート64、66も備える。
【0064】
図5は、異なる種類のクロックゲートを示す。クロックゲート64は、クロック信号の遷移が関連機能回路に伝播されるかどうかを、微粒レベルで制御するために提供される。例えば、機能回路54、56、58、60の各々は、関連クロックゲート64を伴い提供される。各クロックゲート64は、個々のクロック制御にそれぞれの機能回路を提供するように、イネーブル信号に応答する。イネーブル信号が第1の状態にある時に、次いでクロックゲート64によって、関連機能回路がその機能の動作を行うことができるように、動作クロック信号の遷移を関連機能回路54、56、58、60に伝播することを可能にする。イネーブル信号が第2の状態を有する時に、次いでクロックゲート64はよって、信号遷移が機能回路に伝播するのを妨害し、したがって、機能回路で電力を節約する。故に、機能回路の動作が、ある期間必要とされない時に、次いで関連クロックゲート64は、電力を節約するために、その機能回路がクロックされるのを妨害するように使用することができる。各機能回路がそれ自体のクロックゲート64を有することは必須ではない。いくつかの実施形態では、2つ以上の機能回路が、クロックゲート64を共有することができる。
【0065】
また、図5の集積回路50は、クロックツリーのさらに上に設置される、中間クロックゲート66も含む。中間クロックゲート66は、クロックゲート64ほど微細でない粒レベルで、クロックゲートを制御するために使用することができる。各中間クロックゲート66は、分配クロック信号の遷移が、クロックゲート66を超えて設置される、下流の回路に伝播することができるかどうかを制御する。例えば、図5では、中間クロックゲート66‐1は、クロック分配回路の上流分配部分70と、クロック分配回路の下流部分72との間に設置される。中間クロックゲート66‐1は、上流分配部分70から分配クロック信号を受信し、分配クロック信号のクロック遷移が、下流分配部分72に伝播されるかどうかを制御する。故に、中間クロックゲート66‐1は、クロックゲート66‐1の下流にある回路をクロックするかどうかを制御する。この例では、中間クロックゲート66‐1の下流にある回路は、処理ユニット54およびレジスタバンク58を含む。処理ユニット54またはレジスタバンク58のいずれも、所与の処理動作に不必要な場合、中間クロックゲート66‐1は、集積回路50によって消費される電力を減少するために、処理ユニット54およびレジスタバンク58をクロックするのを防止するように使用することができる。同様に、図5に示す他方の中間クロックゲート66は、分配ネットワークの対応する上流分配部分と対応する下流分配部分との間に設置され、分配クロック信号のクロック遷移が、集積回路50の関連領域に伝播されるかどうかを制御する。
【0066】
上記のクロック変換技術が、クロックゲートを有する集積回路50に適用される時に、図1に示すクロック変換器10は、クロックゲート64、66とは別に提供することができる。しかしながら、1つ以上のクロックゲート64、66内にクロック変換器10のクロック変換機能を含むことが、より効率的である場合がある。例えば、図5では、クロックゲート64(だが、クロックゲート66ではない)は、クロック分配回路によって分配された分配クロック信号を、関連機能回路54、56、58、60をクロックするように使用された動作クロック信号に変換するための、クロック変換器を含む。
【0067】
図6は、図5に示すクロックゲート64の例を示す。クロックゲート64は、概して、分配クロック信号が、少なくとも1つの関連機能回路に供給するために、動作クロック信号に変換される、クロック分配ツリーのより低い端部で使用されるであろう。しかしながら、またクロックゲート64は、分配クロック信号が、クロック分配ツリーの中間ポイントで動作クロック信号に変換され、次いで動作周波数で集積回路80に渡って機能回路に分配されるように、クロック分配ツリーのさらに上で使用し得る。クロックゲート64は、クロック分配回路から分配クロック信号(低速クロック)を受信し、分配クロック信号をより高いクロック周波数を有する動作クロック信号に変換し、イネーブル信号(イネーブル)に依存して動作クロック信号をゲートで制御し、1つ以上の関連機能回路による使用のために、ゲート動作クロック信号(高速クロック)を出力する。
【0068】
この例では、クロックゲート64は、パルス発生器80、論理ゲート82、およびトランスペアレントラッチ84を備える。パルス発生器80は、例えば図2に示す通りに構成することができるか、または異なる種類のパルス発生器であることができる。パルス発生器80は、分配クロック周波数でクロック分配回路から分配クロック信号を受信し、クロック信号を動作クロック信号Aに変換する。動作クロック信号Aは、論理ゲート82の入力部のうちの1つに供給される。
【0069】
また、パルス発生器80によって生み出された動作クロック信号Aの反転バージョンは、トランスペアレントラッチ84のイネーブル入力ENに供給される。トランスペアレントラッチ84は、そのデータ入力Dでイネーブル信号(イネーブル)を受信し、パルス発生器80から受信された動作クロック信号Aの現在の状態によって、イネーブル信号を論理ゲート82に選択的に供給する。図7の表に示す通り、動作クロック信号Aが低信号状態にある時に、次いでトランスペアレントラッチ84が透明状態となり、そのためラッチ84の出力Qは、イネーブル信号と同じ信号状態を有する。この時点で、イネーブル信号の変化は、論理ゲート82にまで伝播される。対照的に、動作クロック信号Aが高信号状態にあると、その後、トランスペアレントラッチ84は非伝送であり、そのためラッチ出力Qは、イネーブル信号の変化にもかかわらず、その現在の状態を保持する。
【0070】
この例ではANDゲートである、論理ゲート82は、AND演算を使用して、トランスペアレントラッチ84から選択的に出力されたイネーブル信号を、パルス発生器80から受信された動作クロック信号Aと組み合わせ、動作クロック周波数でゲート動作クロックとして、論理演算の結果を出力する。論理ゲート82が、図6ではANDゲートである一方で、論理ゲートはまた、別の種類の論理ゲート、例えばNANDゲートであることができる。
【0071】
図7は、イネーブル信号、パルス発生器80によって出力された動作クロック信号A、トランスペアレントラッチ84のラッチ出力Q、およびクロックゲート回路64によって出力されたゲート動作クロック信号間の関係を示す。パルス発生器80によって出力された動作クロック信号が、低い信号値を有する時に、次いでイネーブル信号の値にもかかわらず、論理ゲート82によって出力されたゲート動作クロック信号は、低い信号値を有する。それにもかかわらず、動作クロック信号Aが低い間、ラッチ84は透過的であるため、次いでイネーブル信号の変化は論理ゲート82にまで伝播される。
【0072】
対照的に、動作クロック信号Aが高い時に、次いでラッチ84は非伝送となり、そのためラッチ84によって、イネーブル信号の変化が論理ゲート82に伝播するのを妨害する。ラッチ出力Qは、その前の値で保持される。ラッチ出力の以前の値Q[n]が高かった場合、ゲート動作クロックもまた高く、その一方で、ラッチ出力Qの以前の値Q[n]が低かった場合、ゲート動作クロックもまた低い。動作クロック信号Aが高い間のイネーブル信号の状態のいかなる変化も、動作クロック信号Aが低信号状態に戻って切り替わるまで、論理ゲート82に伝播されない。
【0073】
図8は、図6に示すクロックゲート64内の、種々の信号の信号タイミングの例を示す。分配(低速)クロック信号は、所与の分配クロック周波数でクロックゲート64に入力される。パルス発生器80は、分配クロック信号より高い周波数を有する、動作クロック信号Aを生成する。イネーブル信号が高いままの間に、動作クロック信号「A」の信号遷移は、ゲート動作クロック信号に於いて対応する信号遷移をトリガーし、そのためクロック遷移は、クロックゲート64の下流に設置された回路に伝播することができる。対照的に、イネーブル信号が低い時に、次いで動作クロック信号Aの信号遷移は、下流の回路に伝送されるのを妨害される。
【0074】
図8は、トランスペアレントラッチ84によって、ゲート動作クロック信号をイネーブル信号のグリッチに対して、どのように保護することができるかを示す。ゲート動作クロック信号のスパイクが、下流の回路での処理を誤ってトリガーし得るため、イネーブル信号のグリッチが、ゲート動作クロック信号のスパイクをトリガーする場合、これによって、クロックゲート64から下流の回路にエラーを引き起こし得る。トランスペアレントラッチ84は、そのようなグリッチに対する集積回路80の感受性を減少するのに役立つ。動作クロック信号Aが低信号状態にある間に、グリッチ88が発生する場合、グリッチ88は、クロックゲート64によって出力されたゲート動作クロック信号において、スパイクをトリガーしない。イネーブル信号の状態の変化が、論理ゲート82に伝播されるとしても、動作クロック信号Aが低信号状態であるため、ANDゲート82の出力は低いままである。また、動作クロック信号Aが高信号状態である間に、別のグリッチ90が発生する場合、クロック信号Aが高い間、ラッチ84は非伝送であるため、この変化はANDゲート82にまで伝播されない。故に、ラッチ出力Qはその以前の(低)状態のままであり、そのためゲート動作クロック信号も低いままである。故に、トランスペアレントラッチ84は、イネーブル信号のグリッチによって、ゲート動作クロック信号にスパイクをもたらす可能性を減少するのに役立つ。
【0075】
図9は、クロック分配ツリーのより高い上部で使用するのに好適な、中間クロックゲート回路66の例を示す(例えば、図5に示すクロックゲート66におけるような)。中間クロックゲート回路66は、クロックゲート回路64ほど微細でない粒レベルで、クロックゲートを制御するために使用することができる。中間クロックゲート制御66は、分配回路の上流のクロック分配部分から分配クロック信号(低速クロック)を受信し、イネーブル信号(イネーブル)に依存して分配クロック信号をゲートで制御し、ゲート分配クロック信号(ゲート低速クロック)を分配回路の下流部分に出力する。中間クロックゲート66の入力および出力クロック信号の両方は、分配クロック周波数である。故に、中間クロックゲート66内ではクロック変換能力は必要とされないであろうと予想されるであろう。
【0076】
しかしながら、クロックゲート66によって、分配クロック信号のクロック遷移を、ゲート分配クロック信号のクロック遷移として、下流の回路に伝播することができるかどうかを制御するイネーブル信号は、動作クロック周波数で状態を切り替えることができる。これは、イネーブル信号が、動作クロック周波数でそれ自体クロックされる、集積回路50の素子によって生み出すことができるためである。例えば、クロックゲート66のイネーブルは、レジスタバンク58、60のレジスタのうちの1つから受信することができる。イネーブル信号は、動作クロック周波数で遷移することができるため、その時、動作クロック周波数で、中間クロックゲート66のゲート機能を行うことが望ましい場合がある。
【0077】
クロックゲート制御を、動作クロック周波数で行うことができるようにするには、中間クロックゲート66は、分配ネットワークの上流部分から受信された分配クロック信号を、動作クロック周波数を有する中間動作クロック信号Aに変換するための、クロック変換器(例えば、パルス発生器)100を提供される。中間クロックゲート66は、イネーブル信号に応じて、中間動作クロック信号Aの信号遷移を、中間クロックゲート66を超えて伝播することを可能にするかどうかを制御する。また、中間クロックゲート66は、分配クロック周波数を有するゲート分配クロック信号にゲートクロック信号を変換する。
【0078】
いくつかの実施形態では、別々の回路は、中間動作クロック信号をゲートで制御し、ゲート中間動作クロック信号を、分配クロック周波数を有する分配クロック信号に変換し戻すために提供することができる。
【0079】
しかしながら、例の図9では、トグルフリップフロップ104は、ゲート機能およびクロック変換機能の両方を行うように提供される。トグルフリップフロップ104は、イネーブル入力ENでイネーブル信号を受信し、クロック変換器100によって生成された中間動作クロック信号Aによってクロックされる。トグルフリップフロップ104の出力Qは反転し、トグルフリップフロップ104に入力Dとして供給返される。イネーブル信号が第1の状態(例えば、高信号レベル)を有する時に、次いでトグルフリップフロップ104の出力は、中間動作クロック信号Aの各サイクルに応じてトグルされる。一方、イネーブル信号が第2のレベル(例えば、低信号レベル)を有する時に、次いでトグルフリップフロップ104の出力は、その現在のレベルとして維持される。
【0080】
図10は、図9に示す中間クロックゲート66内における、信号タイミングの例を図示する。中間クロックゲート66は、分配ツリーの上流分配部分から、分配クロック周波数を有する分配クロック信号を受信する。クロック変換器100は、分配クロック信号を中間動作クロック信号Aに変換する。イネーブル信号が高い状態にある時に、次いでトグルフリップフロップ104は、中間動作クロック信号Aの各クロックサイクルに応じて、ゲート分配クロック信号Qの値を切り替える。例えば、ゲート分配クロック信号Qは、中間動作クロック信号Aの各立ち上がりエッジに応じて切り替わる。
【0081】
イネーブル信号が低い状態に切り替わる時に、次いでトグルフリップフロップ104は、中間動作クロック信号Aの遷移にかかわらず、ゲート分配クロック信号Qを現在の状態に維持する。図10は、ゲート分配クロック信号が、イネーブル信号が低い値からの高い値から切り替わるタイミングを選択することによって、所望の通りの高い信号状態または低い信号状態に維持することができることを示す。図10に実線によって示す例では、イネーブル信号は、ゲート分配クロック信号が低い時点で、高レベルから低レベルへ切り替わり、そのため、その時ゲート分配クロック信号は、低信号レベルのままである。代替として、図10に示す点線によって示す例では、イネーブル信号は、ゲート分配クロック信号が高い時点で低信号レベルに切り替わる前に、中間動作クロック信号Aのもう1つのサイクルの間、高信号レベルで維持され、そのため今回ゲート分配クロック信号は、イネーブル信号の低信号レベルへの遷移の後に、高い論理状態のままとなる。
【0082】
図10に示す通り、トグルフリップフロップ104は、中間動作クロック信号Aの半分の周波数を有する、ゲート分配クロック信号Qを生成する。故に、トグルフリップフロップ104は、クロック遷移が下流の回路に伝播されるかどうかを制御するためのクロックゲート機能と、動作クロック周波数を有する中間クロック信号Aを、(より低い)分配クロック周波数を有するゲート分配クロック信号に変換するためのクロック変換機能との両方を提供する。
【0083】
標準セルライブラリは、例えば、図6および9に示す通り、クロックゲート構成を定義するセル定義データを含むように修正することができる。そのような標準セルライブラリは、回路レイアウトの生成および検証を制御するためのデータを提供する。以前から既知である標準セルライブラリは、上記のクロック変換機能を有さないクロックゲート用の設計を含んでいる。クロックゲートがまた、クロック変換能力(例えば、図6または9に示す通り、パルス発生器の回路セル定義を含む)も含むように、クロックゲートの標準セル定義を修正することによって、次いでクロック変換技術は、集積回路の残りにほとんど修正を伴わずに、集積回路に適用することができる。これは、省電力技術を実装するために必要とされる、回路再設計の量を減少するのに役立つ。
【0084】
全ての機能回路が、本技術と互換性がある必要はない。図3に示す通り、あるタイプのクロック変換器10によって、比較的短いパルス幅pおよび50%以外のデューティ比を有する、動作クロック信号をもたらすことができる。これは、ある機能回路では適切でない場合があり、例えば、クロック信号の立ち上がりおよび立ち下がりエッジの両方に基づきトリガーされる、ある回路では、50%により近いデューティ比を有するクロック信号が必要とされる場合がある。
【0085】
1つ以上の機能回路が、上記のクロック変換技術と互換性がない場合でさえも、クロック変換技術はなおも、それらの機能回路にクロック信号を分配する時に消費される電力を減少するために、クロック変換器を使用して生み出された動作クロック信号と互換性がある、いかなる機能回路にも使用することができる。そのような動作クロック信号を使用することができない、いかなるさらなる機能回路も、さらなる動作クロック信号を分配するために、別々のクロック分配ネットワークと共に提供することができる。
【0086】
図11は、2つの部分202、203に効果的に分割される、集積回路200を示す。集積回路200の第1の部分202は、上の例と類似しており、より低い周波数で分配された分配クロック信号から、クロック変換器210によって生成された動作クロック信号によってクロックされる、機能回路204、206を備える。対照的に、部分203は、クロック変換器210によって生み出された動作クロック信号と互換性がある、さらなる機能回路220(この例では、メモリコントローラ)を含む。故に、さらなるクロック分配ネットワーク224は、さらなる動作クロック信号を機能回路220に供給するように提供される。さらなる動作クロック信号は、例えば、集積回路200の他の部分202で使用された動作クロック信号よりも均一なデューティ比を有することができる。さらなる動作クロック信号は、動作クロック周波数と同じであるクロック周波数を有することができるか、または異なる周波数を有することができる。
【0087】
故に、上記のクロック変換技術を、そのようなクロック変換を補助することができる、それらの機能回路204、206に適用することによって、消費される電力を減少することができる。そのようなクロック変換を補助できない機能回路220は、機能回路が設計されている動作クロック信号に応じて、作動し続けることができる。
【0088】
図11の例では、分配クロック信号は、図1に示す通り、オフチップでは生成されない。代わりに、オンチップクロック発生器230を、分配クロック信号を生成するために提供することができる。同様に、上の例のいずれでも、オンチップクロック発生器230は、クロック入力部の代わりに使用することができる。同様に、クロック変換技術を使用しない、集積回路200の部分203に対して、さらなる動作クロック信号は、オンチップクロック発生器240によって生成することができるか、または、代替として、外部クロック発生器によって生成することができる。
【0089】
図12は、クロック変換器10の変形を示す。クロック変換器10は、動作クロック信号を関連機能回路に供給するより前に、生成された動作クロック信号を反転させることができる。例えば、図12に示す通り、パルス発生器20の出力クロック信号を機能回路に供給する前にクロック信号を反転させるために、インバータ250に供給することができる。ある種類のクロック変換器10は、いつもクロック信号を反転させるように配設することができる一方で、選択的な反転能力を提供することは有用であり得る。例えば、マルチプレクサ260は、反転選択制御信号に依存して、動作クロック信号の反転バージョンと、動作クロック信号の非反転バージョンとの間で選択するように提供することができる。
【0090】
図12の底部にあるタイミング図は、そのような選択された反転能力を提供することが有用であることができる理由を示す。クロック信号が反転する時に、次いでクロック信号の立ち上がりエッジは立ち下がりエッジとなり、クロック信号の立ち下がりエッジは立ち上がりエッジとなり(図12に示すGPU動作クロックの非反転および反転バージョンの間の関係を参照)、そのため立ち上がりおよび立ち下がりエッジが発生するタイミングは、調整することができる。関連機能回路が、立ち上がりエッジによってのみトリガーされる場合、例えば、クロック信号を選択的に反転させることによって、機能回路がクロック信号によってトリガーされるタイミングを変更する。これは、異なるクロック変換器10によって生み出される異なるクロック信号によってトリガーされる、2つの機能回路、または同じ機能回路の2つの異なる部分がある時に、有用であり得る。
【0091】
例えば、図12aでは、グラフィック処理ユニット(GPU)6は、第1のクロック変換器10‐1によって生成された動作クロック信号によってクロックされ、処理ユニット(CPU)4は、第2のクロック変換器10‐2によって生成された動作クロック信号によってクロックされる。図12の底部にある信号図は、CPUクロック信号が反転しないように、CPUと関連付けられる第2のクロック変換器10‐2のマルチプレクサ260が設定されている一方で、GPU6と関連付けられた第1のクロック変換器10‐1のマルチプレクサ260が、GPUクロック信号を選択的に反転させるか、または反転させないように設定される例を示す。
【0092】
クロック変換器10‐1、10‐2のどちらも反転を適用しない時に、次いでCPU4およびGPU6に出力される動作クロック信号は同じとなる。故に、CPU4およびGPU6は同時にトリガーされる。図12に示す通り、CPU動作クロックおよび非反転GPU動作クロックの立ち上がりエッジは、t、tで同時に発生する。
【0093】
対照的に、GPUクロックがCPUクロックに対して反転する場合、それぞれのクロックの立ち上がりエッジは、異なる時間に発生する。例えば、CPU動作クロックの立ち上がりエッジが時間tで発生する一方、反転GPUクロックの対応する立ち上がりエッジは時間tまで発生しない。これは、CPU動作クロックによって制御された事象と、GPU動作クロックによって制御された事象との間の遅延が、その結果、反転が適用されるかどうかに基づき調整することができるため、有用であり得る。
【0094】
例えば、GPU6がCPU4によって生成されたデータ値を捕捉する、図12に示す状況を考察する。CPU4は、CPUクロックの1つの処理サイクル(例えば、時間t)の立ち上がりエッジに応じてデータ値を生成し始め、GPU6は、GPUクロックの続く処理サイクルの立ち上がりエッジに応じて、そのデータ値を捕捉する。どちらのクロック信号も反転しない場合、非反転GPUクロックの続くサイクルの立ち上がりエッジは、時間tで発生し、そのため、GPU6によって捕捉される前に、データ値を生成するように、CPU4に対して利用可能である期間は、T(t〜t)となる。
【0095】
対照的に、GPU動作クロック信号が反転する場合、反転GPU動作クロック信号の続くサイクルの立ち上がりエッジは、時間tまで発生しない。故に、ここに、値がGPU6によって捕捉される前にデータ値を生成するように、CPU4に対して利用可能である、増加する周期T(t〜t)がある。故に、GPUクロック信号の反転は、CPU4がデータ値の生成を終了する前に、データ値を捕捉するGPU6の結果として発生するエラーの可能性を減少するように使用することができる。
【0096】
同様に、集積回路の他の部分に供給されたクロック信号に対する、クロック変換器10によるクロック信号の反転は、集積回路の異なる部分間で異なる、プロセス変動を静的に補正するように使用することができる。さらに、選択的な反転は、気温および電圧に依存する効果を無効にするために、動的補正を提供することができる。故に、クロック変換器内にインバータを含むことは、生産量、信頼性、および性能を増加するように使用することができる。
【0097】
同様に、インバータは、反転能力を提供するように、上記のクロックゲートの一部として含むことができる。図13Aおよび13Bは、上記のクロックゲート64、66が、クロックゲートの出力を反転させるために、インバータ250と共に提供することができる例を示す。クロックゲートは、図13Aに示す通りの永続的な反転機能、または図13Bに示す通りの選択的な反転機能のどちらかを伴い提供することができる。
【0098】
要約すると、クロック信号は、機能回路が作動するように設計される動作周波数よりも低い周波数で、集積回路に渡って分配することができる。より低い周波数で分配された後、分配クロック信号は、動作周波数を有する好適な動作クロック信号に変換され、機能回路の動作を制御するように使用することができる。クロック信号がより低い周波数で分配されるため、集積回路はより少ないエネルギーを消費する。
【0099】
クロック信号の周波数を変換するのと同様に、クロック変換器10はまた、クロック信号の信号電圧を変換するための電圧変換器を含むこともできる。この場合、さらなる省電力は、機能回路によって必要とされる動作電圧レベルよりも低い分配電圧レベルでクロック信号を分配し、機能回路への供給のために、クロック信号を動作電圧レベルに変換することによって、達成することができる。
【0100】
本発明の例示的な実施形態について、添付の図面を参照しながら本明細書に詳細に説明してきたが、本発明はこれらの正確な実施形態には制限されず、添付の特許請求の範囲に記載される本発明の範囲から逸脱せずに、当業者により、本発明において種々の変更および修正を実施可能であることを理解されたい。
【符号の説明】
【0101】
2 集積回路
4 処理ユニット(CPU)
6 グラフィック処理ユニット(GPU)
8 分配回路
10 クロック変換器
12 クロック入力部
14 外部クロック発生器
16 ネットワーク

【特許請求の範囲】
【請求項1】
動作クロック周波数を有する動作クロック信号に応じて、作動するように構成された機能回路と、
分配クロック周波数で該集積回路に渡って、分配クロック信号を分配するように構成されたクロック分配回路であって、該分配クロック周波数は、該動作クロック周波数よりも低い、クロック分配回路と、
前記機能回路の動作を制御するために、前記クロック分配回路によって分配された前記分配クロック信号を、前記動作クロック信号に変換するように構成されたクロック変換器と、を備える、集積回路。
【請求項2】
前記クロック分配回路は、外部クロック発生器から前記分配クロック信号を受信するためのクロック入力部を備える、請求項1に記載の集積回路。
【請求項3】
前記クロック分配回路は、前記分配クロック信号を生成するためのクロック発生器を備える、請求項1に記載の集積回路。
【請求項4】
前記分配クロック周波数は、前記動作クロック周波数の実質的に半分である、請求項1に記載の集積回路。
【請求項5】
前記クロック変換器は、前記分配クロック信号の各クロック遷移に応じて、クロックパルスを生成するように構成されたパルス発生器を備え、前記動作クロック信号は、前記パルス発生器によって生成される一連のクロックパルスを備える、請求項1に記載の集積回路。
【請求項6】
前記動作クロック信号のクロック遷移が、前記機能回路に伝播されるかどうかを制御するためのクロックゲート回路を備える、請求項1に記載の集積回路。
【請求項7】
前記クロックゲート回路は、前記分配クロック信号を前記動作クロック信号に変換するための、前記クロック変換器を備える、請求項6に記載の集積回路。
【請求項8】
前記クロックゲート回路は、前記クロック分配回路から前記分配クロック信号を受信し、前記クロック変換器を使用して、前記分配クロック信号を前記動作クロック信号に変換し、前記動作クロック信号およびイネーブル信号に応じて生成されたゲート動作クロック信号を、前記機能回路に出力するように構成され、
前記クロックゲート回路は、前記イネーブル信号に依存して、前記動作クロック信号のクロック遷移が、前記ゲート動作クロック信号のクロック遷移をトリガーするかどうかを制御する、請求項7に記載の集積回路。
【請求項9】
前記クロックゲート回路は、論理演算を前記動作クロック信号および前記イネーブル信号に適用することによって、前記ゲート動作クロック信号を生成するように構成された論理ゲートを備える、請求項8に記載の集積回路。
【請求項10】
前記クロックゲート回路は、前記動作クロック信号の現在の状態に依存して、前記イネーブル信号を前記論理ゲートに選択的に供給するように構成された、トランスペアレントラッチを備える、請求項9に記載の集積回路。
【請求項11】
前記クロック分配回路は、
前記分配クロック周波数で前記集積回路に渡って、前記分配クロック信号を分配するための上流分配部分と、
前記上流分配部分から前記分配クロック信号を受信するための中間クロックゲート回路と、
前記分配クロック周波数で、前記中間クロックゲート回路から少なくとも前記クロック変換器へ、前記分配クロック信号を分配するための下流分配部分と、を備え、
前記中間クロックゲート回路は、前記分配クロック信号のクロック遷移が、前記下流分配部分に伝播されるかどうかを制御するように構成される、請求項1に記載の集積回路。
【請求項12】
前記中間クロックゲート回路は、前記上流分配部分から受信された前記分配クロック信号を、前記動作クロック周波数を有する中間動作クロック信号に変換するように構成された、中間クロック変換器を備え、
前記中間クロックゲート回路は、前記中間動作クロック信号およびイネーブル信号に応じて、ゲート分配クロック信号を生成し、前記分配クロック周波数で、前記ゲート分配クロック信号を前記下流分配部分に出力するように構成される、請求項11に記載の集積回路。
【請求項13】
前記中間クロックゲート回路は、前記ゲート分配クロック信号を生成するように構成されるトグルフリップフロップを備え、前記トグルフリップフロップは、
前記イネーブル信号が、第1の状態を有する時に、次いで前記トグルフリップフロップが、前記中間動作クロック信号の各クロックサイクルに応じて、前記ゲート分配クロック信号の値をトグルし、
前記イネーブル信号が、第2の状態を有する時に、次いで前記トグルフリップフロップが、前記ゲート分配クロック信号をその現在の値で保持するように構成される、請求項12に記載の集積回路。
【請求項14】
前記動作クロック周波数を有する前記動作クロック信号に応じて作動するように構成される、複数の機能回路と、
少なくとも1つの関連機能回路の動作を制御するために、前記クロック分配回路によって分配された前記分配クロック信号を、前記動作クロック信号に変換するように構成された少なくとも1つのクロック変換器と、を備える、請求項1に記載の集積回路。
【請求項15】
さらなる動作クロック周波数で、前記集積回路に渡ってさらなる動作クロック信号を分配するように構成される、さらなるクロック分配回路と、
前記さらなるクロック分配回路によって分配される、前記さらなる動作クロック信号に応じて作動するように構成された、少なくとも1つのさらなる機能回路と、を備える、請求項1に記載の集積回路。
【請求項16】
前記クロック変換器は、前記機能回路への供給のために、前記動作クロック信号を反転させるためのインバータを備える、請求項1に記載の集積回路。
【請求項17】
前記クロック変換器は、反転制御信号に依存して、前記動作クロック信号を選択的に反転させるように構成される、請求項16に記載の集積回路。
【請求項18】
関連機能回路の動作を制御するために、前記クロック分配回路によって分配される前記分配クロック信号を、前記動作クロック信号に変換するように構成された、第2のクロック変換器を備え、
前記クロック変換器が、前記機能回路への供給のために、前記動作クロック信号を反転させる時に、次いで前記第2のクロック変換器が、前記関連機能回路に非反転動作クロック信号を供給する、請求項16に記載の集積回路。
【請求項19】
動作クロック周波数を有する動作クロック信号に応じて作動するための機能回路手段と、
分配クロック周波数で該集積回路に渡って、分配クロック信号を分配するためのクロック分配手段であって、該分配クロック周波数は、該動作クロック周波数よりも低い、クロック分配手段と、
前記機能回路手段の動作を制御するために、前記クロック分配手段によって分配された前記分配クロック信号を、前記動作クロック信号に変換するためのクロック変換手段と、を含む、集積回路。
【請求項20】
動作クロック周波数を有する動作クロック信号に応じて作動するための機能回路を備える、集積回路を操作する方法であって、
分配クロック信号を該集積回路に渡って分配することであって、該分配クロック信号は、分配クロック周波数を有し、該分配クロック周波数は、該動作クロック周波数よりも低いことと、
前記分配クロック信号を、前記動作クロック周波数を有する前記動作クロック信号に変換することと、
前記動作クロック周波数を有する前記動作クロック信号に応じて、前記機能回路を操作することと、を含む、方法。
【請求項21】
関連回路への出力クロック信号の供給を制御するためのクロックゲート回路であって、前記クロックゲート回路は、
分配クロック周波数を有する分配クロック信号を受信するように構成されたクロック入力部と、
前記分配クロック信号を、動作クロック周波数を有する動作クロック信号に変換するように構成されたクロック変換器であって、前記動作クロック周波数は、前記分配クロック周波数よりも高い、クロック変換器と、
イネーブル信号、および前記クロック変換器によって生成された前記動作クロック信号に基づき、前記出力クロック信号を生成するように構成されるゲート回路と、
前記出力クロック信号を前記関連回路に出力するように構成されたクロック出力部と、を備え、
前記ゲート回路は、前記イネーブル信号に依存して、前記動作クロック信号のクロック遷移が、前記出力クロック信号のクロック遷移をトリガーするかどうかを制御するように構成される、クロックゲート回路。
【請求項22】
前記分配クロック周波数は、前記動作クロック周波数の半分である、請求項21に記載のクロックゲート回路。
【請求項23】
前記クロック変換器は、前記分配クロック信号の各クロック遷移に応じて、クロックパルスを生成するように構成されたパルス発生器を備え、前記動作クロック信号は、前記パルス発生器によって生成される一連のクロックパルスを備える、請求項21に記載のクロックゲート回路。
【請求項24】
前記クロック出力部は、前記動作クロック周波数で前記出力クロック信号を出力する、請求項21に記載のクロックゲート回路。
【請求項25】
前記ゲート回路は、論理演算を前記動作クロック信号および前記イネーブル信号に適用することによって、前記出力クロック信号を生成するように構成される論理ゲートを備える、請求項21に記載のクロックゲート回路。
【請求項26】
前記ゲート回路は、前記動作クロック信号の現在の状態に依存して、前記イネーブル信号を前記論理ゲートに選択的に供給するように構成された、トランスペアレントラッチを備える、請求項25に記載のクロックゲート回路。
【請求項27】
前記クロック出力部は、前記分配クロック周波数で前記出力クロック信号を出力する、請求項21に記載のクロックゲート回路。
【請求項28】
前記ゲート回路は、前記動作クロック信号および前記イネーブル信号に応じて、前記出力クロック信号を生成するように構成された、トグルフリップフロップを備え、前記トグルフリップフロップは、
前記イネーブル信号が、第1の状態を有する時に、次いで前記トグルフリップフロップが、前記動作クロック信号の各クロックサイクルに応じて、前記出力クロック信号の前記値をトグルし、
前記イネーブル信号が、第2の状態を有する時に、次いで前記トグルフリップフロップが、前記出力クロック信号をその現在の値で保持するように構成される、請求項27に記載のクロックゲート回路。
【請求項29】
前記ゲート回路によって生成される前記出力クロック信号を反転させ、前記反転した出力クロック信号を前記クロック出力部へ供給するためのインバータを備える、請求項21に記載のクロックゲート回路。
【請求項30】
前記クロックゲート回路は、反転制御信号に依存して、前記出力クロック信号を選択的に反転させるように構成される、請求項29に記載のクロックゲート回路。
【請求項31】
関連回路への出力クロック信号の供給を制御するためのクロックゲート回路であって、前記クロックゲート回路は、
分配クロック周波数を有する分配クロック信号を受信するためのクロック入力手段と、
前記分配クロック信号を、動作クロック周波数を有する動作クロック信号に変換するためのクロック変換手段であって、前記動作クロック周波数は、前記分配クロック周波数よりも高い、クロック変換手段と、
前記クロック変換手段およびイネーブル信号によって生成される、前記動作クロック信号に基づき、前記出力クロック信号を生成するためのゲート手段と、
前記出力クロック信号を前記関連回路に出力するためのクロック出力手段と、を含み、
前記ゲート手段は、前記イネーブル信号に依存して、前記動作クロック信号のクロック遷移が、前記出力クロック信号のクロック遷移をトリガーするかどうかを制御するように構成された、クロックゲート回路。
【請求項32】
関連回路への出力クロック信号の供給を制御するための方法であって、前記方法は、
分配クロック周波数を有する分配クロック信号を受信するステップと、
前記分配クロック信号を、動作クロック周波数を有する動作クロック信号に変換するステップであって、前記動作クロック周波数は、前記分配クロック周波数よりも高い、ステップと、
前記動作クロック信号およびイネーブル信号に基づき、前記出力クロック信号を生成するステップと、
前記出力クロック信号を前記関連回路に出力するステップと、を含み、
前記生成するステップは、前記イネーブル信号に依存して、前記動作クロック信号のクロック遷移が、前記出力クロック信号のクロック遷移をトリガーするかどうかを制御することを含む、方法。
【請求項33】
集積回路の回路セルの回路レイアウトを生成し、認証するように、コンピュータを制御するための標準セル回路定義を備える、データ構造を記憶する、コンピュータで読み取り可能な記憶媒体であって、前記回路セルは、請求項21に記載の前記クロックゲート回路を備える、コンピュータで読み取り可能な記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13A】
image rotate

【図13B】
image rotate


【公開番号】特開2012−118976(P2012−118976A)
【公開日】平成24年6月21日(2012.6.21)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−249544(P2011−249544)
【出願日】平成23年11月15日(2011.11.15)
【出願人】(504394342)アーム・リミテッド (134)
【Fターム(参考)】