(57)【要約】クロック周波数の比較的線形な増加または減少を持つクロック信号を生成するための方法および機構を提供する。第１周波数を持つ第１クロック信号が生成され、そして第２周波数を持つ第２クロック信号を生成するために用いられる。第２クロック信号は、第１クロック信号の選択されたパルスを省略することにより生成される。特定のビットパターンが記憶素子に記憶される。次に、第１クロック信号によって決められた周波数で、前記記憶素子からビットが選択され、伝達される。伝達されたビットは、第２クロック信号を作成するために用いられる。選択され、伝達される特定のビットパターンを選択することによって、第２クロック信号の周波数が決定される。さらに、選択された時点でレジスタ中のビットパターンを変更することによって、第２クロック信号の周波数を比較的線形な形態で変更することができる。
2005519367.tif 000002
【特許請求の範囲】
【請求項１】
第１周波数の第１クロック信号を生成するステップと、
前記第１クロック信号を用いて、第２周波数の第２クロック信号を生成するステップとを含み、前記第２クロック周波数は前記第１クロック信号の選択されたパルスを省略することによって生成される方法。
【請求項２】
前記第１クロック信号を用いるステップは、前記第１クロック信号を用いて記憶素子から値のシーケンスを選択するステップを含む、請求項１記載の方法。
【請求項３】
前記記憶素子は第１および第２シフトレジスタを含み、前記値のシーケンスは前記レジスタから交互に選択される、請求項２記載の方法。
【請求項４】
前記第１クロック信号のパルスシーケンスをカウントするステップと、
前記第１クロック信号の前記選択されたパルスを検出するステップとをさらに含む、請求項１記載の方法。
【請求項５】
前記シーケンスは固定数のパルスを含み、前記選択されたパルスは前記固定数のパルス内の前記パルスの特定のカウントに対応する、請求項４記載の方法。
【請求項６】
周波数を増加させた前記第２クロック信号を生成するために、選択された時間において、前記レジスタの少なくとも一つの内容を変化させるステップをさらに含む、請求項３記載の方法。
【請求項７】
第１クロック信号を生成するように構成された第１回路と、
前記第１クロック信号を用いて、第２周波数を持つ第２クロック信号を生成するように構成された回路とを備え、前記第２クロック周波数は前記第１クロック信号の選択されたパルスを省略することによって生成される、クロック回路。
【請求項８】
ビットパターンを記憶するように構成された記憶素子をさらに備え、前記回路は前記第１クロック信号を利用して記憶素子から値のシーケンスを選択するように構成されている、請求項７記載のクロック回路。
【請求項９】
前記記憶素子は第１および第２シフトレジスタを含み、前記回路は前記レジスタから前記値のシーケンスを交互に選択するように構成されている、請求項７記載のクロック回路。
【請求項１０】
基準クロック信号を生成するように構成された基準クロックジェネレータと、
クロック回路を持つプロセッサであって、前記基準クロック信号を受信し、前記基準クロック信号から第１クロック信号を生成し、前記第１クロック信号を利用して第２周波数を持つ第２クロック信号を生成するプロセッサとを備え、前記第２クロック周波数は前記第１クロック信号の選択されたパルスを省略することによって生成されるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にコンピュータシステムの電力管理に関し、さらに詳細には低消費電力状態への制御された移行および回復に関する。
【背景技術】
【０００２】
コンピュータシステムがより高性能になるにつれて、消費電力管理が全体のシステム設計のなかでより重要な部分になってきた。このことは、特に携帯用途のシステムにおいて顕著である。コンピュータシステムによって消費される電力を減らすために、多くのコンピュータシステムは、ある特定の時間期間、プロセッサに対する要求がないときには、スタンバイまたは低消費電力モードに移行する能力を持つプロセッサを採用している。さらに、システムによって消費される電力をさらに低減するためにプロセッサに関連するチップセットにも同じ低消費電力モードを実装することができる。
【０００３】
システム部品を低消費電力モードにする方法はたくさんある。相補型金属酸化物半導体（CMOS）技術を用いた集積回路では、ロジック１からロジック０に、およびロジック０からロジック１に変化するときに通常もっとも大きな電力を消費する。それは、もっとも大きな電流が特定の回路を流れるからである。従って、システムの消費電力を低減する一つの方法は不必要なスイッチングを減らす、または停止することである。
【０００４】
一つの電力管理技術として、プロセッサが遊んでいる（アイドル状態）のときに内部クロックの周波数を下げて低消費電力状態に移行するものがある。プロセッサがアイドル状態でなくなったときには、内部クロック周波数を完全な周波数に戻す。しかしながら、低消費電力状態に移行する時間における全体的なコストが低消費電力状態による利益を上回ることがないように、完全な周波数への復帰は比較的素早く行われるべきである。従って、PLL  VCO（電圧制御発信回路）の周波数が維持されるように（つまり、PLLが周波数ロックを失うべきではない）、クロック周波数を下げることが望ましい。VCO周波数を維持することによって、それが周波数ロックを失った場合に比べて、低消費電力状態からPLLが素早く復帰することができる。
【０００５】
低消費電力状態においてもVCO周波数が維持されているので、VCOクロックを分周することによって内部クロック周波数を低減することができる。これを実現する一つの方法は、VCOでカウンタをクロック駆動（クロッキング）することである。カウンタの最小桁のビット（LSB）がVCO/2であり、それは例えば内部クロックの完全な周波数として使用可能である。カウンタのLSBの次はVCO/4クロックを発生する。カウンタの他のビットを選択すると、装置が動作する周波数を４，８，１６，３２等の係数で低減することになる。
【０００６】
上述の技術は完全な周波数を素早く選択することを可能にするが、欠点がないわけではない。装置の消費電力は周波数に比例する。CMOS技術の消費電力の適度に正確な予測は、消費電力＝キャパシタンス×電圧２×周波数として表すことができる。しかしながら、上述のように、周波数ロックを維持しながら、周波数を低減するために採用される方法は、内部周波数を２のベキ乗で低減することを含む。従って、クロックを完全な周波数から完全な周波数の半分に傾斜的に低減する（ランプダウン）ことは、瞬間的な電力の５０％低下を意味する。この突然の下落（ドロップ）は、電圧レギュレータが減少した電流要求に適応する前に、装置電圧の跳躍を生じさせうる。クロックを完全な周波数に傾斜的に戻すときにも、同様な状況が起こる。周波数が突然に２倍になるので、突然により大きな電流が要求される。この場合、パーツの電圧が意図した電圧以下に低下し、おそらく仕様の範囲外となる。
【０００７】
上述の電力管理技術に加えて、周波数の突然の増加が必要となる場合は他にもある。例えば、リセットの際に、局所ＰＬＬがロックするまでの間、内部クロックは比較的低い周波数に保持される。ＰＬＬがロックを確立すると、動作周波数の急激な増加が要求される。同様の状況がスタートアップ時にも存在する。
【０００８】
上述の意図しない電圧のオーバーシュートまたはアンダーシュートは潜在的にチップ上の記憶素子に記憶された状態を破壊する可能性があり、またはチップの寿命を縮めうる。よって、効率よく周波数を増加し、または低減する方法が求められている。
【発明の開示】
【発明の概要】
【０００９】
効率的な方法で動作周波数を増加させ、または低減させる回路および方法についての様々な実施形態を開示する。
一般的に、第１周波数を持つ第１クロック信号が生成され、そして第２周波数を持つ第２クロック信号を生成するために用いられる方法および機構を考察する。当該第２クロック信号は、前記第１クロック信号の選択されたパルスを省略することにより生成される。一実施形態において、ビットパターンを記憶するために記憶素子が使用され、次に前記第２クロック信号を生成するために、前記第１クロック信号によって決められた周波数で伝達される。次に、伝達された特定のビットパターンは、前記第２クロック信号の周波数を決定する。別の実施形態では、前記第１クロック信号のパルスシーケンスがカウントされる。各シーケンスの特定のパルスが検出されると、当該検出されたパルスは省略されるか、またはマスクされて前記第２クロック信号を生成する。上記に加えて、前記方法および機構は前記第２クロック信号の周波数の比較的線形的な増加または低減のために、ある時間期間において省略されるパルス数を変化させる。
【００１０】
本発明は様々な変形および代替の形態をとりうるが、その特定の実施形態を例示のために図面に示し、本明細書において詳細に説明する。しかしながら、それらの図面および特定の実施形態についての詳細な説明は、開示された特定の形態に本発明を限定しようとするものではなく、むしろ反対に、添付の特許請求の範囲に規定される本発明の精神および範囲の範疇に入る、すべての変形物、均等物および代替物を含むことを意図している、ことを理解してもらいたい。
【発明を実施するための最良の形態】
【００１１】
図１は、コンピュータシステムの一実施形態を示すブロック図である。当該コンピュータシステムは、システムバス１１０を介してシステムコントローラ１２０に結合されたプロセッサ１００を含む。システムコントローラ１２０は、メモリバス１３５を介してメインメモリ１３０に結合される。システムコントローラ１２０はさらにグラフィックバス１４５を介してグラフィックアダプタ１４０に結合される。ペリフェラルコントローラ１５０はペリフェラルバスＡ１５５を介してシステムコントローラ１２０に結合される。様々な周辺デバイス、例えば１６０Ａおよび１６０ＢをそれぞれペリフェラルバスＡ１５５およびペリフェラルバスＢ１６５に結合することができる。一実施形態において、システムコントローラ１２０はノースブリッジスタイルの集積回路であって、それはプロセッサ１００に関連して使用されるチップセットの一部であってもよい。または、システムコントローラ１２０をプロセッサ１００に統合することもできる。そのような統合された実施形態では、メモリ１３０をプロセッサ１００に直接結合することができる。例示された実施形態では、プロセッサ１００はｘ８６クラスのプロセッサの一種である。しかしながら、他の実施形態では、プロセッサ１００は任意のタイプのプロセッサとすることもできる。様々な代替構成が可能であり、考慮される。
【００１２】
動作中に、プロセッサ１００はあそび時間（アイドルタイム）の期間を持つ可能性があり、その間システムクロックは動き続けるが、プロセッサ１００はデータ処理を行わない。すでに説明したように、クロック駆動システムの部品のロジック遷移は集積回路における主要な電力消費源となりうる。従って、あそび時間の間、クロック信号を止める、またはクロック信号の周波数を下げることが一つの省電力方法である。プロセッサ１００に加えて、追加のシステム消費電力削減が、チップセットおよびプロセッサ１００に関連する他の周辺部品の内部クロックを停止することによって実現できる。
【００１３】
以下でさらに詳細に説明するように、コンピュータシステムであそび時間が検出されると、プロセッサ１００にその内部クロックを停止させ、またはそれを低減させる信号がアクティベートされ、それによってさらなるシステム電力削減が達成される。
【００１４】
図２に、基準クロックジェネレータ回路２０２に結合されたプロセッサ１００の一実施形態のブロック図を示す。簡略化および明確化のために、図１に示したものに対応する回路部品は同じ符号をふってある。プロセッサ１００は制御回路２０４に結合されたクロック回路２００を含む。プロセッサ１００はさらにクロックジェネレータ２０２から基準クロック信号２１０を受信するように結合されている。クロック回路２００は制御回路２０４から信号２２０を受信するように結合され、さらに内部クロック信号２３０を伝達するように構成されている。プロセッサ１００はまたシステムバス１１０に結合するように示される。
【００１５】
説明されている実施形態においては、クロックジェネレータ回路２０２およびクロック回路２００は、位相ロックループまたは遅延ロックループのようなロックされたループ回路を含んでいてもよい。クロック回路２００は外部基準クロック２１０を受信して、基準クロック２１０に対応する、変化するＰＬＬクロックを生成する。クロック回路２００はフィードバッククロック信号を外部基準クロック２１０の位相および周波数にロックするために、位相および周波数を調整することができる。上で説明したように、省電力のためにプロセッサ１００はその内部クロックを低減または停止するように構成することができる。クロック回路２００は、２のベキ乗の異なるクロック周波数をそこから得ることができる、カウンタを含んでいてもよい。しかしながら、そのクロック周波数のより線形的な周波数遷移（変更）を達成するために、クロック回路２００はさらにクロック周波数を導くように構成されている。
【００１６】
図３に、クロック回路２００の動作の一実施形態を示すテーブル３００を示す。テーブル３００は６つの列３０１―３０６を含む。列３０１は回路２００で受信されるクロック信号の基準周波数を示す。図示された実施形態では、基準周波数３０１はプロセッサの内部クロック信号の最大動作周波数を表す。別の実施形態では、プロセッサの内部クロック信号の最大周波数は基準周波数３０１と同じでなくともよい。列３０２は基準周波数３０１に与えられる除数を示し、列３０３は対応する除数３０２によって基準周波数３０１を分周した結果を示す。一実施形態においては、基準周波数がカウンタに与えられ、前記除数がカウンタの選択されたビットをとることによって実現される（つまり、カウンタの最下位ビット除数２に対応し、次の下位ビットが除数４に対応する。以下同じ）。
【００１７】
既に説明したように、このような方法でカウンタからクロック周波数を導くと、得られる周波数は２のベキ乗になる。テーブル３００の実施形態に示すように、１０００ＭＨｚの基準周波数が与えられているとき、１０００ＭＨｚ、５００ＭＨｚ，２５０ＭＨｚおよび１２５ＭＨｚの４つの周波数が得られる。より効率的かつ線形な周波数遷移を得るために、周波数３０３のある特定のパルスを省略またはマスクする方法および機構を列３０４に示す。この実施形態では、回路２００はクロック信号３０３のＭパルス中のＮパルスを省略するように構成され、Ｍは８、Ｎは０からＭの整数である。他の実施形態では、Ｍは８より大きいか、または８より小さい整数であってもよい。このようにして、追加的に効率的な除数３０５を実現でき、周波数３０３からさらに効率的なクロック信号３０６が導かれる。
【００１８】
例えば、１０００ＭＨｚの周波数３０３が与えられていて、パルス０，１，２および３を省略すると、それぞれ１，１．１４，１．３３および１．６の実効除数が得られる。従って、単一の１０００ＭＨｚの周波数３０３から、４つの実効周波数、１０００ＭＨｚ、８７５ＭＨｚ、７５０ＭＨｚおよび６７５ＭＨｚが導かれる。同様に、５００ＭＨｚの周波数３０３から５００ＭＨｚおよび３７５ＭＨｚの周波数を導くことができる。さらに、図３の実施形態からわかるように、追加的な周波数を導くことができるだけでなく、結果として実効周波数３０６の遷移は１２５ＭＨｚの増分（きざみ）となり、周波数間のより線形的な遷移が得られる。
【００１９】
図３の例では、特定の周波数３０１、除数３０２、省略パルス３０４を用いているが、それらは単なる例にすぎない。当業者であれば、任意の数の実効周波数３０６を実現するために、基準周波数３０１，除数３０２および省略パルス３０４の異なる組み合わせが可能であることを理解するであろう。
【００２０】
図４Ａおよび図４Ｂは、図３に示したパルス省略の効果を示すグラフである。図４Ａのグラフは、Ｙ軸が周波数を、Ｘ軸が時間を表す。図４Ａは、２のベキ乗であるクロック周波数間の遷移を示す。そのような遷移は、上述のカウンタを使用することで得られる。第１時点５０２Ａにおいて、１０００ＭＨｚから５００ＭＨｚへの遷移が生じる（周波数の低減が開始されたと仮定して）。その後、５００ＭＨｚから２５０ＭＨｚへの遷移５０２Ｂ、最後に２５０ＭＨｚから１２５ＭＨｚへの遷移５０２Ｃが生じる。１０００ＭＨｚから５００ＭＨｚへの遷移が飛躍的であり、明らかに非線形であることがわかる。周波数を１０００ＭＨｚから５００ＭＨｚへ低下させるとき、５０％の電力低下が起こる。逆に、周波数を５００ＭＨｚから１０００ＭＨｚへ増加させるとき、１００％の電力上昇が生じる。そのような電力の揺らぎは比較的大きなものである。
【００２１】
図４Ｂは図３において説明したパルス省略法を使用した場合の効果を示す。図４Ｂはさらに、図４Ａのように１０００ＭＨｚから１２５ＭＨｚへの周波数遷移が生じたときのグラフを示す。しかしながら、この場合には、遷移に多くの中間ステップが存在する。例えば、１０００ＭＨｚから５００ＭＨｚへの遷移は４つのステップ５１０Ａ−５１０Ｂで起こっている。５００ＭＨｚから２５０ＭＨｚへの遷移は２つのステップ５２０Ａおよび５２０Ｂで起こっている。図４Ａの飛躍的な遷移５０３Ａに対して、図４Ｂに示された１０００ＭＨｚから５００ＭＨｚへの遷移５１０Ａ−５１０Ｄは飛躍的なものではなく、ずっと線形的である。この場合、１０００ＭＨｚから８７５ＭＨｚへの遷移５１０Ａは比較的小さい１２．５％の電力低下を生じる。逆に、８７５ＭＨｚから１０００ＭＨｚへ周波数を増加させるには１４．６％の電力増加を引き起こす。このように、電力の揺らぎは大きく低減される。
【００２２】
クロック回路２００の一実施形態を図５に示す。図５の実施形態では、回路２００は回路４００、マルチプレクサ７０２，７７０および７８０、ならびにレジスタ７３０を含む。レジスタ７３０のそれぞれはマルチプレクサ７７０に結合され、マルチプレクサ７７０はマルチプレクサ７８０に信号７７２を伝達するように構成されている。回路４４０は基準クロック２１０および制御信号２２０Ｂを受信するように構成されている。回路４４０はさらにパス７２０を介してマルチプレクサ７０２にデータを伝達するように結合されている。回路４４０はさらにクロック信号７１０を生成するように構成されている。それは、一実施形態においては、ＶＣＯから出力され、次にマルチプレクサ７７０に選択制御信号７１０として結合され、マルチプレクサ７８０に入力される。最後に、回路４４０はマルチプレクサ選択信号７９０をマルチプレクサ７８０に伝達するように構成されている。マルチプレクサ７８０は内部クロック信号２３０を伝達する。ここで、参照番号の後に英文字を付して参照する要素は、以下では参照番号のみから参照される要素としてまとめて参照する。例えば、レジスタ７３０Ａおよび７３０Ｂは合わせてレジスタ７３０として参照する。
【００２３】
図示した実施形態においては、各レジスタ７３０は８ビットのデータを記憶するように構成されている。もっともレジスタ７３０は任意のサイズのものを選択することができる。さらに、ここに示した実施形態は２つのレジスタ７３０Ａ−７３０Ｂを用いているが、他の実施形態ではより少ない、またはより多いレジスタを使用することができる。一実施形態では、クロック信号７１０は受信された基準クロック信号２１０に基づく固定周波数である。または、回路４４０は様々な周波数のクロック信号７１０を生成するように構成することができる。例えば、クロック信号７１０は基準クロック２１０の倍数（１より大きい、または１より小さい）である。一般的に、回路２００によって伝達される内部クロック信号２３０は、マルチプレクサ７８０によって受信される２つの信号７７２または７１０のいずれか一つに等しい。制御信号７９０を用いて、２つの信号のうちのどちらを内部クロック信号２３０として伝達するかを選択する。
【００２４】
もし信号７１０がマルチプレクサ７８０から伝達されるものとして選択されたならば、内部クロック信号２３０は、回路４４０によって生成されるクロック信号７１０に実質的に等しい。一方で、もし信号７７２がマルチプレクサ７８０から伝達されるものとして選択されたならば、内部クロック信号２３０はクロック信号７１０の周波数とは異なる周波数を持つ。
【００２５】
図５に示すように、レジスタ７３０はそれぞれマルチプレクサ７７０に結合されている。一実施形態においては、レジスタ７３０はある値を伝達した後にそれらの内容をシフトするシフトレジスタとして構成される。さらに、選択的に、レジスタ７３０は、シフトアウトされた値がパス７６０を介してレジスタ７３０にシフトバックする環状シフトレジスタとして構成することもできる。上述のとおり、回路４４０はパス７２０を介してデータをレジスタ７３０にロードするために伝達するように構成されている。一実施形態においては、マルチプレクサ７０２は、パス７２０を介して伝達される８ビットの値を複数選択して同時にレジスタ７３０にロードするように構成することもできる。回路４４０は、どの値をマルチプレクサ７０２からの伝達のために選択するかを制御するように構成することができる。例えば、一実施形態では、それぞれのパスが３２ビットのデータを伝達するように構成することができる。このようにして、場合によって４つの８ビットのロード値がマルチプレクサ７０２に同時に伝達することができる。次に、レジスタ７３０の第１位置７９２Ａおよび７９２Ｂはパス７５０を介してマルチプレクサ７７０に伝達される。クロック信号７１０がマルチプレクサ７７０の選択信号として用いられているので、値７９２Ａおよび７９２Ｂが交互に信号７７２として伝達される。以下の説明では、レジスタ７３０の値をいかにして様々なクロック周波数を生成するために用いるかを説明するために、いくつかの例を示す。
【００２６】
図６Ａは、回路２００を用いて様々なクロック周波数を生成する方法の一例を示す。図６Ａはレジスタ７３０、マルチプレクサ７７０、クロック信号７７２（「クロックＢ」と名付ける）およびセレクタ７１０（「クロックＡ」と名付ける）を示す。さらに、クロックＡおよびクロックＢの値をそれぞれ表す信号６３０および６７０を示す。クロック信号６３０および６７０は相対的なクロックサイクルを示す、０から７の値でマーキングされている。図６Ａの例では、レジスタ７３０Ａはすべて「１」がロードされ、レジスタ７３０Ｂはすべて「０」がロードされている。レジスタ７３０をこのようにロードすることによって、クロックＢ７７２は実質的にクロックＡ７１０と同じ周波数を持つ。
【００２７】
図６ＢはクロックＡ７１０とクロックＢ７７０とが異なる周波数を持つようにレジスタ７３０をロードした状態を示す。この例では、図６Ａの場合に比較して類似のレジスタ７３０のロード状態が使用されているが、レジスタ７３０Ａの２つのビットが「１」から「０」に変更されている点が異なる。クロックＡ７７０がレジスタ７３０Ａおよび７３０Ｂの値を交互にゲート出力すると、クロックＢ２３０は図６Ａの場合とは異なる形態をとる。この場合、マルチプレクサ７７０からクロックＢとしてゲート出力される値は「１」，「０」，「０」，「０」，「１」，「０」，「１」，「０」，「１」，「０」，「０」，「０」，「１」，「０」，「１」，「０」である。もしレジスタ７３０が環状に構成されていると、このパターンがレジスタのロード値が変更されるまで繰り返される。クロックＡ７１０とクロックＢ７７２の関係をそれぞれ信号６３２および６７２として図示する。この例では各レジスタ７３０に８ビットが用いられているので、クロックＡ７１０の８クロックサイクル毎に、クロックＢ７７２が６クロックサイクルを持つことがわかる。従って、この特定のレジスタ７３０のロード値を用いると、クロックＡ７１０の８クロックサイクル毎に２つが実効的にマスクされる。別の見方をすると、クロックＢ７７２はクロックＡ７１０の７５％の周波数を持つ。もし、クロックＡ７１０が１０００ＭＨｚだとすると、クロックＢ７７２は７５０ＭＨｚとなる。
【００２８】
図６Ｃはレジスタ７３０の異なったロード値を用いた別の例を示す。この例では、各レジスタ７３０Ａおよび７３０Ｂは同一の、交互のビットシーケンスでロードされている。対応する信号表示６３４および６７４に示されるように、クロックＢ７７２はクロックＡ７１０の半分の周波数を持つ。上述の方法および機構を用いることによって、クロックＡ７１０の１以上のパルスを効果的に省略して、異なる周波数を持つクロックＢ７７２を生成することができる。当業者であれば、レジスタ７３０に適切な所定の値を選択して配置することにより広範なクロック周波数をクロックＢ７７２として生成可能であることを容易に理解するだろう。さらに広範な周波数を生成するために８入力（エントリ）より大きいレジスタを用いることもできる。ある選択された時点でレジスタ７３０の内容を変更することで、内部周波数のより直線的な増加または減少を実現することができる。
【００２９】
図７に、クロック回路２００の他の実施形態を示す。一般的に言うと、クロック回路２００はクロック信号を受信して、それらのクロック信号の整数値Ｍを計数し、それらのＭクロックパルス中の整数値Ｎを省略またはマスクする。図７の例示実施形態では、クロック回路２００は基準クロック信号２１０および制御信号２２０Ａ−２２０Ｂを受信するように結合される。回路２００は、制御回路４４０、３つの記憶素子４０２Ａ−４０２Ｃを有するカウンタ５２０、およびマルチプレクサ４２０を含む。回路４４０は基準クロック信号２１０を受信して、クロック信号５１０を生成するように構成されている。一実施形態においては、回路４４０は、２のベキ乗で基準周波数２１０からクロック信号５１０の周波数を導くように構成されたカウンタまたはその他の回路を含む。一実施形態においては、クロック信号５１０の最大周波数は基準クロック２１０の半分の周波数であるが、その他の構成も可能であり、考慮される。
【００３０】
図７の実施形態では、カウンタ５２０はクロック信号５１０のパルスを０から７の８つのグループで計数（カウント）するように構成される。信号５３０Ａはカウンタ５２０の最下位ビットを表し、信号５３０Ｂは次の下位ビットを表し、信号５３０Ｃは最上位ビットを表す。カウンタ５２０からの出力信号はゲート４１０−Ｎ（Ｎは１，２，５および７）およびマルチプレクサ４２０に結合される。ゲート４１０−７は、カウンタ５２０から計数値７が出力されたときを検出し、ゲート４１０−２は計数２を検出し、ゲート４１０−５は計数５を検出し、ゲート４１０−１は計数１を検出する。ＯＲゲート４−７５２は８つのパルスのうちの３つがアサートされたことを検出するように構成されている。図示された実施形態においては、ゲート４−７５２は計数７，５，２のどれがアサートされたときでも検出する。ＯＲゲート４−５１は、計数５または１がアサートされたときを検出して、８つのパルスのうちの２つを検出する。最後に、各ゲート４−７５２，４−５１，４１０−１からの出力およびカウンタ信号５３０Ａはマルチプレクサ４２０に結合される。マルチプレクサ４２０の出力５５０は負論理入力を介してＡＮＤゲート４３０に結合される。さらに、カウンタ５２０の出力５３０ＡはＡＮＤゲート４３０に結合される。
【００３１】
図７の構成において、マルチプレクサ４２０は４つの入力を含み、それぞれがゲート４３０によって伝達される内部クロック信号２３０からマスクされる対象となるクロックパルスの数に対応する。図の実施形態では、０の選択に対応するマルチプレクサ４２０の入力はロー（low）に繋がっている。一般的に、０に対応するマルチプレクサ４２０の入力がゲート出力されているとき、内部クロック２３０はクロック信号５３０Ａと同じである。選択１に対応するマルチプレクサ４２０の入力が選択されたとき、出力５５０は８クロック５３０Ａパルス毎に一回アサートされる。信号５５０は負論理入力を介してゲート４３０に結合されているので、ゲート４３０からの出力は８クロックパルス毎に一回マスクされる。同様に、ゲート４−５１からの出力がマルチプレクサ４２０をゲートアウト（出力）するとき、ゲート４３０の出力２３０は８クロックパルス毎に２回マスクされる。最後に、ゲート４−７５２がマルチプレクサ４２０をゲートアウト（出力）するとき、ゲート４３０の出力２３０は８クロックパルス毎に３回マスクされる。このようにして、マルチプレクサ４２０の出力は生じるクロック信号２３０からいくつのクロックパルスを省略する、またはマスクするかを制御するために使用することができる。
【００３２】
図７の実施形態では、電力状態の変化の検出に応答して、制御信号２２０Ａおよび２２０Ｂがプロセッサ１００から伝達されるのが示される。例えば、あそび時間の期間の検出に応答して、プロセッサ１００は信号２２０Ａ−２２０Ｂを伝達して、内部クロック２３０の周波数を低下させる。または、低消費電力状態において、プロセッサ１００は電力増加状態が必要なことを示す割り込みまたはその他の信号を検出することができる。クロック信号５１０の周波数を信号２２０Ｂに整合させ、および信号２２０Ａによって省略すべきパルスの数を調整することによって、プロセッサ１００の動作周波数に、より線形的な遷移を実現することができる。
【００３３】
最後に、図８に図７の実施形態に対応する複数の信号を示す。クロック信号５１０はクロック信号５３０Ａの周波数の２倍で動作しているのが示されている。０，１，２および３のパルスが省略またはマスクされたときの内部クロック信号２３０が示されている。さらに、カウンタ５２０のある所与の計数が生じたときにアサートされる信号も示されている。計数１，２，５および７に対応する信号、それぞれゲート４１０−１，４１０−２，４１０−５および４１０−７に対応する、がこの例に示されている。計数１，２，５および７の場合について上で説明したが、それらは単なる例示である。さらに、図７に示すカウンタ５２０は８のグループでパルスを計数するように構成されているが、他の大きさのカウンタも同様に使用できる。例えば、カウンタ５２０は１６パルスのグループを計数するように構成することも可能であり、回路２００の残りの回路はそれらのパルスの一以上を検出するように構成することができる。
【００３４】
これまでの開示を完全に理解した当業者にとって、多数の変形または修正形態が明らかになるであろう。例えば、説明のために特定の実施形態を用いているが、他の実施形態も可能であり、考慮される。本明細書で説明した線形周波数遷移の異なった応用では、周波数遷移の間へのより多くの中間ステップの導入、内部クロックを完全に止める省電力モードなどが含まれる。さらに、ほとんどの説明では高い周波数から低い周波数への遷移に焦点を当ててきたが、その逆の場合にも本発明の方法および機構を同様に適用可能である。添付の特許請求の範囲はそのような変形例および修正形態をすべて包含するように解釈されるべきである。
【産業上の利用可能性】
【００３５】
本発明は一般的にコンピュータシステムの電力管理に適用可能である。
【図面の簡単な説明】
【００３６】
【図１】コンピュータシステムの一実施形態のブロック図。
【図２】プロセッサおよびクロックジェネレータの一実施形態のブロック図。
【図３】周波数とマスクされたパルスとの関係を示すテーブル。
【図４Ａ】２乗の周波数遷移を示すチャート。
【図４Ｂ】本明細書で説明した方法および機構を用いた周波数遷移の一実施形態を示すチャート。
【図５】クロック回路の一実施形態を示す回路図。
【図６Ａ】図５で説明された実施形態に従って生成された信号を示す図。
【図６Ｂ】図５で説明された実施形態に従って生成された信号を示す図。
【図６Ｃ】図５で説明された実施形態に従って生成された信号を示す図。
【図７】クロック回路の一実施形態を示す回路図。
【図８】図７で説明された実施形態に従って生成された信号の一実施形態を示す図。
【図１】
2005519367.tif 000003
【図２】
2005519367.tif 000004
【図３】
2005519367.tif 000005
【図４Ａ】
2005519367.tif 000006
【図４Ｂ】
2005519367.tif 000007
【図５】
2005519367.tif 000008
【図６Ａ】
2005519367.tif 000009
【図６Ｂ】
2005519367.tif 000010
【図６Ｃ】
2005519367.tif 000011
【図７】
2005519367.tif 000012
【図８】
2005519367.tif 000013
【手続補正書】
【提出日】平成16年8月9日(2004.8.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ある時間期間において、線形的に、複数のクロック周波数を生成する方法であって、
第１周波数の第１クロック信号（５１０；７１０）を生成するステップと、
前記第１クロック信号（５１０；７１０）を用いて、第２周波数の第２クロック信号（２３０）を生成するステップとを含み、
前記第２クロック周波数（２３０）は複数のクロック周波数において生成され、前記複数のクロック周波数は開始クロック周波数、一以上の中間クロック周波数、および最終クロック周波数を含み、
前記開始クロック周波数から前記中間クロック周波数を通って、前記最終クロック周波数への遷移は、前記第１クロック信号（５１０；７１０）の選択されたパルスを省略することによって線形に実行される方法。
【請求項２】
前記第１クロック信号（２３０）を用いるステップは、前記第１クロック信号を用いて記憶素子（７３０）から値のシーケンスを選択するステップを含む、請求項１記載の方法。
【請求項３】
前記記憶素子（７３０）は第１シフトレジスタ（７３０Ａ）および第２シフトレジスタ（７３０Ｂ）を含み、前記値のシーケンスは前記レジスタ（７３０Ａ，７３０Ｂ）から交互に選択される、請求項２記載の方法。
【請求項４】
前記遷移を実行するステップは、連続的により大きなパルス数を省略する省略するステップか、または連続的により小さなパルス数を省略するステップを含む、請求項１，２または３記載の方法。
【請求項５】
周波数を増加させた前記第２クロック信号（２３０）を生成するために、選択された時間において、前記レジスタ（７３０Ａ，７３０Ｂ）の少なくとも一つの内容を変化させるステップをさらに含む、請求項３記載の方法。
【請求項６】
ある時間期間において、線形的に、複数のクロック周波数を生成するクロック回路であって、
第１クロック信号（５１０；７１０）を生成するように構成された第１回路（４４０）と、
前記第１クロック信号（５１０；７１０）を用いて第２クロック信号（２３０）を生成するように構成された回路とを備え、
前記第２クロック周波数（２３０）は複数のクロック周波数において生成され、前記複数のクロック周波数は開始クロック周波数、一以上の中間クロック周波数、および最終クロック周波数を含み、
前記開始クロック周波数から前記中間クロック周波数を通って、前記最終クロック周波数への遷移は、前記第１クロック信号（５１０；７１０）の選択されたパルスを省略することによって線形に実行されるクロック回路。
【請求項７】
ビットパターンを記憶するように構成された記憶素子（７３０）をさらに備え、前記回路は前記第１クロック信号（７１０）を利用して記憶素子（７３０）から値のシーケンスを選択するように構成されている、請求項６記載のクロック回路。
【請求項８】
前記記憶素子（７３０）は第１（７３０Ａ）および第２（７３０Ｂ）シフトレジスタを含み、前記回路は前記レジスタ（７３０Ａ，７３０Ｂ）から前記値のシーケンスを交互に選択するように構成されている、請求項７記載のクロック回路。
【請求項９】
基準クロック信号（２１０）を生成するように構成された基準クロックジェネレータと、
クロック回路を持つプロセッサであって、前記基準クロック信号（２１０）を受信し、前記基準クロック信号（２１０）から第１クロック信号（５１０；７１０）を生成し、前記第１クロック信号（５１０；７１０）を利用して第２クロック信号（２３０）を生成するプロセッサとを備え、
前記第２クロック周波数（２３０）は複数のクロック周波数において生成され、前記複数のクロック周波数は開始クロック周波数、一以上の中間クロック周波数、および最終クロック周波数を含み、
前記開始クロック周波数から前記中間クロック周波数を通って、前記最終クロック周波数への遷移は、前記第１クロック信号（５１０；７１０）の選択されたパルスを省略することによって線形に実行されるシステム。
【国際調査報告】
2005519367.tif 000014
2005519367.tif 000015
2005519367.tif 000016
2005519367.tif 000017
2005519367.tif 000018