(57)【要約】電気的に一緒に結合され、互いに通信する第１および第２の構成要素での第１クロック周波数信号と第２クロック周波数信号の間の推移を制御する方法が提供される。この方法には、第１構成要素と第２構成要素の間での通信を停止させるフリーズ信号のアサートが含まれる。その後、フリーズ確認信号が、第１構成要素および第２構成要素から受け取られ、それらの間の通信が停止したことが示される。変更信号が、第１構成要素および第２構成要素に渡されて、これらの構成要素に、第１クロック周波数信号と第２クロック周波数信号の間で切り替えさせる。【特許請求の範囲】
【請求項１】
コンピュータシステムを第１動作モードからより少ない電力が消費される第２動作モードに推移させる要求を受け取ることと、
コンピュータ・システムが第１動作モードと第２動作モードとの間で推移した履歴的割合を判定することと、
履歴的割合が第１の事前に選択されたセットポイント未満であることに応答して、要求された推移を許可すること、および、
履歴的割合が第１の事前に選択されたセットポイントを超えることに応答して、要求された推移を拒否すること
を含む温度サイクルを制御する方法。
【請求項２】
バスおよびそれに結合された構成要素の動作を制御する方法であって、
バスに結合された構成要素の１つからバス・トランザクションの要求を受け取ること、
少なくとも要求元構成要素に供給されるクロック信号の周波数を増やすこと、
要求されたバス・トランザクションをサービスすること、および、
要求されたバス・トランザクションの完了時に、少なくとも要求元構成要素に供給されるクロック信号の周波数を減らすこと
を含む方法。
【請求項３】
システム・クロックの周波数を監視すること、
システム・クロックの検出された周波数が事前に選択されたセットポイントより大きいことに応答して、第１信号を送ること、
システム・クロックの検出された周波数が事前に選択されたセットポイントより小さいことに応答して、第２信号を送ること、
第１信号を受け取ることに応答して、第１の事前に選択された範囲の周波数のクロック信号に位相ロック・ループ回路が同期化できるようにする位相ロック・ループ回路の第１動作モードを選択すること、および、
第２信号を受け取ることに応答して、第２の事前に選択された範囲の周波数のクロック信号に位相ロック・ループ回路が同期化できるようにする位相ロック・ループ回路の第２動作モードを選択すること
を含む位相ロック・ループ回路の動作を制御する方法。
【請求項４】
メモリと、
第１クロック信号を作るクロック信号ジェネレータであって、第１クロック信号が第１周波数を有する動作の第１モードと、第１クロック信号が第２周波数を有する動作の第２モードとを有するクロック信号ジェネレータと、
前記メモリに関連し、第１クロック信号を受け取り、同期化された第２クロック信号を前記メモリに供給するように適合された位相ロック・ループ回路と、
動作の第２モードでメモリに第１クロック信号を送るように適合されたバイパス回路と
を含むメモリ・システム。
【請求項５】
メモリと、
第１クロック信号を作るクロック信号ジェネレータであって、第１クロック信号が第１周波数を有する動作の第１モードと、第１クロック信号が第２周波数を有する動作の第２モードとを有する、クロック信号ジェネレータと、
前記メモリに関連し、第１クロック信号を受け取り、同期化された第２クロック信号を前記メモリに供給するように適合された位相ロック・ループ回路と、
動作の第２モードでメモリに第１クロック信号を送るように適合されたバイパス回路と、
メモリにメモリ要求を送り、メモリからデータを受け取るように適合されたメモリ・コントローラであって、動作の第１モードでメモリにメモリ要求を送ってから第１の事前に選択された時間の後にメモリからデータを受け取るように適合され、動作の第２モードでメモリにメモリ要求を送ってから第２の事前に選択された時間の後にメモリからデータを受け取るように適合され、第２の事前に選択された時間が第１の事前に選択された時間より長いメモリ・コントローラと
を含むメモリ・システム。
【請求項６】
コンピュータ・システムのメモリ階層内に配置され、スリープ・モードを有するキャッシュを動作させる方法であって、
第１キャッシュ要求を受け取ること、
第１キャッシュ要求をサービスすること、
第１キャッシュ要求のサービスの完了に応答してスリープ・モード信号をアサートすること、
第２キャッシュ要求を受け取ること、
第２キャッシュ要求の受け取りに応答してスリープ・モード信号をデアサートすること、および、
第２キャッシュ要求をサービスすること
を含む方法。
【請求項７】
スリープ・モードを有するキャッシュを有するメモリ階層システムと、
複数のキャッシュ要求を受け取り、前記キャッシュに前記要求をサービスさせるように適合され、前記キャッシュに、前記複数のキャッシュ要求の少なくとも一部の間に前記スリープ・モードに入らせるように構成されるコントローラと
を含む装置。
【請求項８】
第１の事前に選択された量の電力を送ることができる第１電力モジュールと、
第２の事前に選択された量の電力を送ることができる第２電力モジュールであって、前記第１電力モジュールおよび前記第２電力モジュールが、第１および第２の事前に選択された量の電力に関して組み合わされた量の電力を送ることができるように一緒に結合される、第２電力モジュールと、
第１の事前に選択された量、第２の事前に選択された量、および第３の事前に選択された量の１つで電力を使用可能にするために、第１および第２の電力モジュールを選択的にイネーブルするように適合されたコントローラと
を含む電源。
【請求項９】
第１クロック信号を受け取り、第２クロック信号を供給するように適合された第１のＮ分周カウンタと、
第１入力端子、第２入力端子、および出力端子を有する位相比較器であって、その位相比較器が、第１および第２の入力端子に印加される信号の位相を比較し、信号の位相の差を表す大きさを有する信号を出力端子で送るように適合され、前記第１入力端子が、第２クロック信号を受け取るように結合される位相比較器と、
位相差信号を受け取り、それに応答する周波数を有する第３クロック信号を送るように結合された電圧制御発振器と、
第３クロック信号を受け取り、第４クロック信号を送るように結合された第２のＮ分周カウンタと、
第３クロック信号を受け取り、少なくとも１つの第４クロック信号を送るように結合されたクロック・ツリーと、
第４クロック信号を位相比較器の第２入力端子に送るように結合されたフィードバック・パスと
を含む位相ロック・ループ回路。
【請求項１０】
電子デバイスを動作させる方法であって、
電子デバイスの動作特性を監視すること、
前記監視された動作特性から、電子デバイス内の構成要素の少なくとも一部を、第１、第２、および第３の異なる比率で電力を消費する動作の第１、第２、または第３のモードで動作させることを決定すること、および、
構成要素の少なくとも一部に、第１、第２、および第３のモードの間で切り替えるように指示すること
を含む方法。
【請求項１１】
構成要素群の少なくとも一部が、第１、第２、および第３の異なる比率で電力を消費する動作の第１、第２、および第３のモードを有する複数の構成要素と、
前記構成要素に動作の前記第１、第２、および第３のモードの間で切り替えるように指示することができるコントローラと
を含む装置。
【請求項１２】
電気的に一緒に結合され、互いに通信する第１構成要素および第２構成要素において第１クロック周波数信号と第２クロック周波数信号との間での推移を制御する方法であって、
第１構成要素と第２構成要素との間の通信を停止させるフリーズ信号をアサートすること、
第１構成要素および第２構成要素から、それらの間での通信が停止したことを示すフリーズ確認信号を受け取ること、および、
第１構成要素および第２構成要素に、これらの構成要素に第１クロック周波数信号と第２クロック周波数信号との間で切り替えさせる変更信号を送ること
を含む方法。
【請求項１３】
第１クロック周波数信号と第２クロック周波数信号との間での推移を制御する装置であって、
フリーズ信号を受け取り、通信が停止した後に確認信号を送ることができる第１構成要素と、
フリーズ信号を受け取り、通信が停止した後に確認信号を送ることができる第２構成要素と、
第１構成要素および第２構成要素がそれらの間での通信を停止することを要求するフリーズ信号を送り、第１構成要素および第２構成要素からの確認信号の受け取りに応答して、第１クロック信号と第２クロック信号との間で推移することができるコントローラと
を含む装置。
【発明の詳細な説明】
【０００１】
（１．発明の分野）
本発明は、全般的には電子デバイスの低電力動作モードに関し、より詳細には、動作の複数の電力節約モードの間の推移の方法および装置に関する。
【０００２】
（２．関連技術の説明）
さまざまな理由から、電力消費は、コンピュータ・システムなど電子デバイスにとってますます重要な問題になってきた。まず、米国は、電力消費または電力節約に関する複数の法令を公布した。さらに、ノート型コンピュータなど多数の電子デバイスはバッテリから電力を得るので、電力消費の削減により、かなりの長時間使用がもたらされ、これらの電子デバイスを万能かつ有用にする。さらに、電力消費は、電子デバイスが発生する熱の量に関係する。電力消費の削減によって、生成される熱量が減り、したがって、ヒート・シンク、ファン、および電子デバイスの冷却を助けるのに使用される他の構造のサイズおよび複雑さが減る。したがって、電力消費の削減によって、冷却構造の除去または縮小によってコストを削減することができる。さらに、熱放出の低減は、一般に、電子構成要素をより密にパッケージ化でき、より小さくコンパクトなパッケージに通じることを意味する。さらに、電力消費の削減により、化石燃料の使用およびそれに付随する汚染が減るので、環境に優しい。
【０００３】
したがって、電子産業は、さまざまな電力節約方式を開発してきた。コンピュータ・システムおよび他の電子デバイスは、異なる技法を使用して実施される動作の低電力モードを持っていることが多い。これらの低電力モードは、主に、ほとんどのコンピュータ・システムが、常に最大能力で動作しているのではなく、いつも本質的にアイドルである時間を有するという事実を利用したものである。一部のコンピュータ・システムでは、これらのアイドル期間中にシステム内で使用されるある構成要素によって消費される電力を減らすことによって電力を削減している。たとえば、多くのコンピュータ・システムが、かなりの電力を消費するモニタを使用する。したがって、低電力モード中に、システムが、モニタをオフにすることができる。同様に、ハード・ディスク・ドライブ、コンパクト・ディスク（ＣＤ）プレイヤ、ランダム・アクセス・メモリ（ＲＡＭ）、および類似物などの他の構成要素も、オフにすることができる。現在使用されていない周辺デバイスから電力を除去することによって、かなりの電力節約を達成することができる。しかし、周辺デバイスの電源が切られているコンピュータ・システムをユーザが操作しようとする時に、コンピュータ・システムが周辺機器への電力を復元し、ユーザの要求に応答し始めることができるようになる前に、かなりの遅延が発生する。したがって、多くのユーザは、これらの遅延を避けるために、これらのタイプの低電力動作モードを迂回するか、他の形で使用不能にする。
【０００４】
他の電力節約方式では、コンピュータ・システムで使用される構成要素に供給されるクロック信号の周波数を下げる。他のすべての要因が同一であるならば、クロック周波数を下げることによって、一般に、それに比例して電力消費が減る。したがって、いくつかのシステムでは、半分以上など、かなりの率でクロック周波数を下げて、かなりの電力節約を達成している。しかし、通常は、コンピュータ・システム内のさまざまなサブシステムが、正しい動作を保証するために全体的に同期されたクロック信号を有していなければならない。この同期化は、一般に、位相ロック・ループ（ＰＬＬ）回路を使用して達成される。しかし、ＰＬＬ回路では、全体的に同期したクロック信号を確実に維持できる十分な速度および精度で動作する周波数範囲は有限である。したがって、クロック周波数が、半分以下など、劇的に変更される場合に、ＰＬＬが、限界でまたは誤って動作する可能性がある。ＰＬＬの誤った動作は、コンピュータ・システム全体の不安定な動作をもたらし、システムのクラッシュまたはロックアップを引き起こす。したがって、通常モードから低電力モードへまたはその逆の推移中に、システムが障害を発生する可能性があり、やはり、電力節約機能をディスエーブルするようにユーザを促す。
【０００５】
本発明は、上で示した問題の１つまたは複数を克服すること、または少なくとも影響を減らすことを対象とする。
【０００６】
（発明の概要）
本発明の一態様では、電気的に一緒に結合され、互いに通信する第１および第２の構成要素での第１クロック周波数信号と第２クロック周波数信号の間の推移を制御する方法が提供される。この方法には、第１構成要素と第２構成要素の間での通信を停止させるフリーズ信号のアサートが含まれる。その後、フリーズ確認信号が、第１構成要素および第２構成要素から受け取られ、それらの間の通信が停止したことが示される。第１構成要素および第２構成要素に変更信号が送られ、これらの構成要素が第１クロック周波数信号と第２クロック周波数信号の間で切り替える。
【０００７】
本発明のもう１つの態様では、第１クロック周波数信号と第２クロック周波数信号の間での推移を制御する装置が提供される。この装置は、第１構成要素、第２構成要素、およびコントローラを備えている。第１構成要素は、フリーズ信号を受け取ることと、第１構成要素からの通信が停止した後に確認信号を送ることができる。第２構成要素は、フリーズ信号を受け取ることと、第２構成要素からの通信が停止した後に確認信号を送ることができる。コントローラは、第１および第２の構成要素にそれらの間での通信を停止することを要求するフリーズ信号を送ることと、第１および第２の構成要素からの確認信号の受け取りに応答して第１クロック信号と第２クロック信号の間で推移することができる。
【０００８】
本発明は、添付図面と共に以下の詳細な説明を参照することによって理解することができるが、図面では、符号の左端の数字が、めいめいの符号が最初に現れる図面を示す。
【０００９】
本発明は、さまざまな修正形態および代替形態を許すが、本発明の特定の実施形態を、例として図面に示し、本明細書で詳細に説明する。しかし、特定の実施形態の本明細書での説明が、開示される特定の形態に本発明を制限することを意図されたものではなく、逆に、その意図が、請求項によって定義される本発明の趣旨および範囲に含まれるすべての修正形態、同等物、および代替形態を含むことであることを理解されたい。
【００１０】
（特定の実施形態の詳細な説明）
本発明の例示的実施形態を、下で説明する。説明をわかりやすくするために、本明細書では、実際の実施形態のすべての特徴を説明はしない。もちろん、そのような実際の実施形態の開発において、システム関連およびビジネス関連の制約への準拠など、実施形態ごとに異なる開発者の特定の目標を達成するために、多数の実装固有の判断を行わなければならないことを理解されたい。さらに、そのような開発労力が、複雑であり、時間がかかる可能性があるが、それでも、この開示の利益を有する当業者の日常の仕事であることを理解されたい。
【００１１】
本発明による動作の複数レベル低電力モードを提供する方法および装置の例示的実施形態を、図１から２１に示す。本明細書を完全に読めば当業者に容易に明らかになるように、発明的方法および装置は、本明細書に例示される実施形態以外のさまざまなコンピュータ・システムに適用可能であり、さらに、論理デバイス、メモリ・デバイス、および類似物を含むがこれに制限されない、コンピュータ以外の電子デバイスに適用可能である。
【００１２】
図１に移ると、本発明の１つまたは複数の態様を有利に使用することができるコンピュータ・システム１００の様式化された図が示されている。一般に、コンピュータ・システム１００は、第１および第２の中央処理装置（ＣＰＵ）１０４および１０６と、第１および第２のキャッシュ１０８および１１０と、メモリ１１２と、入出力（Ｉ／Ｏ）１１４と、他の雑構成要素１１６などの例示的な構成要素１０２からなる。これらの構成要素１０２は、アーキテクチャ１１８を介して互いに結合され、アーキテクチャ１１８を用いると、構成要素１０２が、互いに、および潜在的に、他のコンピュータ・システム、プリンタ、スキャナなどの、他の外部デバイス（図示せず）と効率的に通信できる。
【００１３】
通常動作中に、構成要素１０２のそれぞれが、事前に選択された割合で電力を引き出しながら、事前に選択されたクロック周波数で動作する。この通常動作中に、コンピュータ・システム１００は、一般に、構成要素１０２によって代表されるコンピュータ・システム１００のリソースを使用して、要求されるすべての作業を実行するように完全に電力を供給され、準備される。すなわち、通常動作中に、構成要素１０２は、設計された最大限の、低下していない能力に対応するモードで動作している。構成要素１０２は、アイドルまたは全力での動作の間のある速度で有用な作業を行っているかもしれないが、それでも、設計された最大の低下していない能力で有用な作業を実行するのに十分な電圧、電流、およびクロック周波数を供給されている。
【００１４】
したがって、コンピュータ・システム１００は、その構成要素１０２を、その最大能力より低い速度で有用な作業を実行させることがありえる。これらの利用限界以下の期間中に、コンピュータ・システム１００が、現在割り当てられている作業を、より低いクロック周波数および／またはより少ない電力で、悪影響なしに実行できる可能性がある。さらに、コンピュータ・システム１００が、本質的にアイドルであり、ほとんどまたは全く有用な作業を行っていない時もあるであろう。これらのアイドル期間中に、悪影響なしに、コンピュータ・システム１００のクロック周波数および／または電力消費をさらに削減することができる可能性がある。
【００１５】
したがって、本発明の少なくとも１つの態様によれば、コンピュータ・システム１００が、少なくとも３つの動作のモードすなわち、通常モード、低電力モード、およびアイドル・モードを有する。低電力モード中に、より低い速度、電力、または機能ではあるがコンピュータ・システム１００を動作状態に保つことができる範囲で、コンピュータの少なくとも一部に供給されるクロック周波数をかなりの率減らすことができる。１つの例示的実施形態では、クロック周波数を約半分だけ減らすことができる。クロック信号を減らす率が、設計選択の問題であり、本発明の趣旨および範囲から逸脱せずに、半分という例示的な率から大幅に変更できることを当業者は理解するであろう。
【００１６】
その後、コンピュータ・システム１００の全機能が要求される場合に、クロック周波数をすばやく完全な値に復元して、コンピュータ・システム１００の全機能を復元することができる。その一方で、コンピュータ・システム１００の負荷が、たとえば実質的にアイドルまでさらに低下する場合に、構成要素１０２の少なくとも一部に印加されるクロック周波数をさらに減らすことによって、アイドル・モードを実施することができる。このクロック周波数のさらなる減少によって、コンピュータ・システム１００を、かなり低下してはいるが動作状態に保ちながら、コンピュータ・システム１００が消費する電力をさらに減らすことができる。この動作のアイドル・モードでは、コンピュータ・システム１００はアクティブであり、キーボード、マウス、または他のポインティング・デバイス（図示せず）によるオペレータ対話などの要求に応答できるままである。さらに、一部のコンピュータ・システム１００を、コンピュータ・システム１００との通信を周期的に試みるネットワーク（図示せず）に結合することができる。コンピュータ・システム１００は、クロック周波数を適当なレベルに復元することによってコンピュータ・システム１００を低電力モードまたは通常モードに戻すか、動作のアイドル・モードにとどまりながら要求を処理することを選択することによって、このタイプの要求に応答するようにプログラムまたはハードワイヤリングすることができる。
【００１７】
一実施形態では、クロック周波数が、通常モード周波数の約１／３２に減らされる。しかし、クロック信号を減らす率が、設計選択の問題であり、本発明の趣旨および範囲から逸脱せずに、１／３２という例示的な率から大幅に変更できることを、当業者は理解するであろう。
【００１８】
通常、低電力、およびアイドルの動作モードの間で推移する時を判定する際に、さまざまな要因を考慮することができる。たとえば、コンピュータ・システム１００が、構成要素１０２の使用状況を監視することができる。すなわち、構成要素１０２の使用状況が、事前に選択された時間の長さにわたって事前に選択されたレベル未満に落ちる時に、コンピュータ・システム１００が、低電力動作モードまたはアイドル動作モードへの移動を選択することができる。使用状況は、最後にアクセスされた時からの時間、現在消費されているリソースの量、事前に選択された時間の持続期間にわたって使用されるリソースの平均量、および類似物など、さまざまな従来の技法のどれを使用しても測定することができる。
【００１９】
構成要素１０２は、すべてが同一のクロック周波数で動作することに制限されない。実際に、コンピュータ・システム１００は、一般に、通常動作中にクロック周波数の分数成分で動作する構成要素１０２を有する。たとえば、メモリ１１２は、しばしば、ＣＰＵ１０４および１０６が動作する速度の分数で動作する。高速ＣＰＵと同一の速度で動作することができる半導体メモリは、高価であり、したがって、比較的大きいメモリ１１２を構成するのに通常は使用されず、一般に、かなり小さいキャッシュ１０８および１１０を構成するのに使用される。同様に、アーキテクチャ１１８の例示的実施形態で使用されるいくつかのバスは、通常動作中にクロック周波数の分数成分で動作することができる。したがって、これらのバスに結合される構成要素１０２も、通常動作中に、減らされたクロック周波数で動作することができる。いくつかの実施形態で、これらのバスおよび構成要素１０２の少なくとも一部に供給されるクロック周波数を、比例して減らすことが有用である場合がある。その一方で、低電力モードまたはアイドル・モードに入る時に、バスおよび構成要素１０２の選択された１つのクロック周波数を維持することが有用である場合がある。本発明の一態様では、さまざまなバスおよび構成要素１０２のクロック周波数を、望みに応じて独立に変更できるようにする方法および装置が提供される。
【００２０】
したがって、通常は、コンピュータ・システム１００全体にわたって同一の周波数を使用しているわけではないが、さまざまなクロック周波数は、通常は、位相ロック・ループ（ＰＬＬ）回路などのデバイスによって同期されることが多い（本発明で使用されるＰＬＬの一実施形態の詳細な議論については、図５から８および付随する説明を参照されたい）。すなわち、ＣＰＵ１０４に印加されるクロック信号はＩ／Ｏ １１４に印加されるクロック信号と同期され、その結果、さまざまなクロック信号のロウからハイへ（またはハイからロウへ）の推移が、実質的に同期して発生する。
【００２１】
さまざまなクロック信号が同期されない場合には、構成要素１０２の間を移動する信号が壊れる可能性がある。たとえば、メモリ１１２がＣＰＵ１０４にデータを供給している場合に、メモリ１１２は、メモリ・クロック信号のロウからハイへの推移から測定される時間の間にそれを行う。ＣＰＵクロック信号が、メモリ・クロック信号と正確に同期していないと、ＣＰＵ１０４が、メモリ１１２によって供給されるデータを「探す」のが、遅すぎるか早過ぎる可能性がある。したがって、メモリ１１２によって供給されるデータが、失われるか、ほかの形で壊れる。
【００２２】
したがって、通常モード、低電力モード、およびアイドル・モードの間の推移中に、クロック周波数の変動は構成要素１０２の間で厳密に調整されなければならない。構成要素１０２のそれぞれの中に配置されるか他の形で構成要素からアクセス可能なレジスタ１２０が、少なくとも部分的に、クロック周波数の変動の調整を援助する。さらに、構成要素１０２の間のハンドシェーク・プロトコルが、さらに、クロック周波数変動の調整を助ける。
【００２３】
アーキテクチャ１１８は、本発明の趣旨および範囲から逸脱せずに、さまざまな形のどれにでもすることができる。本発明のさまざまな態様を例示するために、例示的アーキテクチャでの本発明の実施形態を、図２以降に示す。しかし、本発明は、より広範囲の応用分野を許し、請求項で特に示されない限り、本明細書に示された特定のアーキテクチャ１１８に制限されると見なしてはならない。
【００２４】
図２に、本発明の１つまたは複数の態様を有利に使用することができるコンピュータ・システム２００の一実施形態の最上位ブロック図を示す。コンピュータ・システム２００に、Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓが販売するＵｌｔｒａＳＰＡＲＣ（商標）マイクロプロセッサまたはＭｉｃｒｏＳＰＡＲＣマイクロプロセッサなどの中央処理装置（ＣＰＵ）２０２および２０４の対を含めることができる。付随する明細書の利益を有する当業者は、本発明が、単一ＣＰＵシステムを含むさまざまなコンピュータ・システムに応用分野を有することを理解するであろう。入出力（Ｉ／Ｏ）ブリッジ２０６が、クロスバ・スイッチ２１０の通常の組を介して複数の周辺デバイス２０８をＣＰＵ２０２および２０４にインターフェースする。周辺デバイス２０８は、クロスバ・スイッチ２１０を介してメモリ２１２と通信することもできる。さらに、メモリ２１２を、１つまたは複数のＣＰＵ２０２および２０４に直接に結合することができる。１つまたは複数のキャッシュ２１４を、１つまたは複数のＣＰＵ２０２および２０４に結合することもできる。
【００２５】
コンピュータ・システム２００には、ブート・バス・コントローラ（ＢＢＣ）２１６が含まれる。このＢＢＣ２１６は、制御信号の生成および構成要素２０２から２１４のそれぞれへの分配を含む複数の機能を提供する。さらに、ＢＢＣ２１６に、エネルギまたは電力コントローラ２１８が含まれ、この電力コントローラ２１８が、通常動作モード、低電力動作モード、およびアイドル動作モードの間の推移中に変化するクロック周波数を調整する。
【００２６】
最後に、構成要素２０２から２１４のそれぞれが、それ自体を１つのレジスタ２２０に関連付け、このレジスタ２２０が、通常動作モード、低電力動作モード、およびアイドル動作モードの間の推移中のクロック周波数の変動の調整を援助する。図３に移ると、レジスタ２２０の１つの例示的な実施形態が示されている。レジスタ２２０は、複数のビットを有し、そのうちの２つのビット３００および３０２が、関連する構成要素２０２が切り替えられるクロック周波数または動作モードの識別に使用される。一実施形態では、ビット３００および３０２によって、下の表Ｉに示されているように動作モードまたはクロック周波数が識別される。
【００２７】
【表１】
2004528613.tif 000002
【００２８】
レジスタ・ビット３００および３０２には、ＢＢＣ２１６の電力コントローラ２１８によって所望の値がセットされる。すなわち、さまざまな動作モードの間の切替の前に、コンピュータ・システム２００で動作するソフトウェアが、レジスタ２２０のそれぞれへの書込動作を実行して、これから行われる動作モードの切替に備えてビット３００および３０２の値に所望のレベルをセットする。たとえば、コンピュータ・システム２００が、現在は通常モードで動作しているが、現在は比較的低い負荷がコンピュータ・システム２００に課せられており、コンピュータ・システム２００を低電力動作モードに切り替えることができると仮定する。ＣＰＵ２０２および２０４の一方または両方によって実行されるソフトウェアが、レジスタ２２０のビット３００および３０２に２進値０１を書き込んで、構成要素２０２を次の推移中に低電力動作モードに切り替えなければならないことを示す。
【００２９】
図示の実施形態では、電力コントローラ２１８は、ハードウェアとソフトウェアの両方を含む。ハードウェアの少なくとも一部をＢＢＣ２１６に置くことができ、ＣＰＵ２０２および２０４を、本明細書に記載の機能の一部またはすべてを実施するソフトウェアを実行するようにプログラムすることができる。しかし、当業者が理解するように、特定の機能を実施するように設計されたハードウェア回路を使用することもできる。さらに、本明細書に記載のコントローラ２１８の機能を、地理的に分散されるかされないものとすることができる１つまたは複数の処理ユニットによって実行することができる。本発明および対応する詳細な説明の諸部分は、コンピュータ・メモリ内のデータ・ビットに対する動作を表すソフトウェアまたはアルゴリズムおよび記号表現に関して提示される。これらの記述および表現は、当業者が他の当業者に作業の内容を効率的に伝えるのに用いる記述または表現である。本明細書で使用される用語としての、および一般に使用されるものとしてのアルゴリズムは、所望の結果に導くステップの自己整合的シーケンスと見なされる。これらのステップは、物理的量の物理的操作を必要とするステップである。通常、必ずではないが、これらの量は、保管、転送、組合せ、比較、および他の形の操作を受けることができる、光信号、電気信号、または磁気信号の形をとる。これらの信号を、ビット、値、要素、記号、文字、項、数、または類似物と称することが、時々、主に一般的な使用のために便利であることがわかっている。
【００３０】
しかし、これらおよび類似する用語のすべてが、適当な物理量に関連付けられなければならず、これらの量に適用される単に便利な名札であることに留意されたい。特に他の形で述べられない限り、または議論から明白である場合に、「処理」、「コンピューティング」、「計算」、「判定」、「表示」、または類似物などの用語は、コンピュータ・システムまたは類似する電子計算デバイスの動作および処理であって、コンピュータ・システムのレジスタおよびメモリ内の物理的電子量として表現されるデータを操作し、コンピュータ・システムのメモリまたはレジスタあるいは他のそのような情報記憶デバイス、伝送デバイス、または表示デバイス内の物理量として同様に表現される他のデータに変換する動作または処理を指す。
【００３１】
コンピュータ・システム２００のさまざまな動作モードの間の推移は、図４のタイミング図に全般的に示されたハンドシェーク・プロトコルによって調整される。レジスタ２２０が正しく構成された後に、電力コントローラ２１８が、Ｆｒｅｅｚｅ（フリーズ）信号４００をアサートすることによって動作モードの間の推移を開始する。図示の実施形態では、Ｆｒｅｅｚｅ信号４００が、論理ロウ値への推移４０２によってアサートされるものとして図示されている。しかし、Ｆｒｅｅｚｅ信号４００（および本明細書で述べる他のすべての信号）を、本発明の趣旨および範囲から逸脱せずに、論理ハイ値への推移によってアサートされるものとして簡単に指定できることを当業者は理解するであろう。
【００３２】
構成要素２０２は、Ｆｒｅｅｚｅ信号４００を受け取り、バス・トランザクションなど、構成要素２０２の間のすべてのトランザクションを延期する処理を開始することによって応答する。構成要素２０２のそれぞれは、延期処理を完了する時に、電力コントローラ２１８にＦｒｅｅｚｅ  Ａｃｋｎｏｗｌｅｄｇｅ（フリーズ確認）信号４０４を送る。構成要素２０２は、異なる周波数で動作している可能性があり、それらの間の変化するサイズのデータのパケットの転送処理中である可能性があるので、保留中のトランザクションのすべてを延期する処理を完了するために、構成要素２０２がさまざまな長さの時間を必要とする可能性がある。したがって、電力コントローラ２１８は、ブロック４０６によって示されるように、定義されない時間の間だけ、すべての構成要素２０２がＦｒｅｅｚｅ  Ａｃｋｎｏｗｌｅｄｇｅ信号４０４を用いて応答するのを待つ。すなわち、電力コントローラ２１８は、Ｆｒｅｅｚｅ  Ａｃｋｎｏｗｌｅｄｇｅ信号４０４が構成要素２０２のそれぞれから受け取られるまで、構成要素２０２のクロック周波数の変更に関してそれ以上の処置を講じない。本発明は、すべてのトランザクションの完了を必要とするのではなく、すべてのトランザクションが、クロック周波数の変更を完了できるまで少なくとも一時的に停止されることを理解されたい。その後、保留中のトランザクションを再開することができる。
【００３３】
すべてのＦｒｅｅｚｅ  Ａｃｋｎｏｗｌｅｄｇｅ信号４０４が受け取られた後に所定の遅延Ｔ１で、電力コントローラ２１８は、アクティブ・ロウのＣｈａｎｇｅ（変更）信号４０８をアサートする。構成要素２０２は、変更信号を受け取り、事前に選択された数のクロック・サイクルの後に、レジスタ２２０のビット３００および３０２によって示される新しいクロック周波数に移動する。Ｃｌｏｃｋ  Ａ（クロックＡ信号）４１０は、電力コントローラ２１８によって作られ、１つまたは複数の構成要素２０２に渡されるクロック信号を表すことが意図されている。Ｃｌｏｃｋ  Ｂ（クロックＢ）信号４１２は、レジスタ２２０のビット３００および３０２の内容に基づいて１つまたは複数の構成要素１０２によってまたはそれらのために生成されるクロック信号を表すことが意図されている。一般に、構成要素２０２は、Ｃｌｏｃｋ  Ｂ信号を使用して、その内部動作のタイミングを制御する。したがって、図４の例示的タイミング図からわかるように、Ｃｌｏｃｋ  Ｂ信号４１２は、Ｃｈａｎｇｅ信号４０８のデアサートの後の第３クロック・サイクル４１４に周波数が変化する。例示的実施形態では、構成要素２０２のすべてが、実質的に同時に、ビット３００および３０２に従って周波数を変更する。
【００３４】
Ｃｈａｎｇｅ信号４０８がデアサートされた後に、電力コントローラ２１８は、Ｃｌｏｃｋ  Ｂ信号４１２が安定することを可能にするために所定の時間だけ待ち、その後、Ｆｒｅｅｚｅ信号４００を解放する。Ｆｒｅｅｚｅ信号４００が解放またはデアサートされたならば、構成要素２０２の間のトランザクションを再開できる。ある点で、Ｆｒｅｅｚｅ  Ａｃｋｎｏｗｌｅｄｇｅ信号４０４が、構成要素２０２によって解放またはデアサートされる。そのタイミングは、クリティカルではないが、Ｃｈａｎｇｅ信号４０８がデアサートされた後に、Ｃｌｏｃｋ  Ｂ信号４１２の周波数のその後の推移を見越して行われる必要がある。
【００３５】
図４には、ＰＬＬ  Ｂｙｐａｓｓ（ＰＬＬバイパス）信号４１６も示されている。ＰＬＬ  Ｂｙｐａｓｓ信号４１６は、さまざまな動作モードの間での推移中に、メモリ２１２の動作と共に使用される。ＰＬＬ  Ｂｙｐａｓｓ信号４１６およびメモリ２１２の詳細な議論は、後で図９から１２に関して示す。
【００３６】
構成要素２０２のうちの選択された１つによって使用されるＣｌｏｃｋ  Ｂ信号の周波数を減らすことによって、さまざまな異なる電力節約レベルを達成できることを理解されたい。たとえば、コンピュータ・システム２００の動作中に、選択構成要素２０２を、比較的高い速度で使用し、他の構成要素２０２を、アイドルまたは実質的に利用不足のままにすることができる。電力コントローラ２１８は、アイドルまたは利用不足の構成要素２０２のクロック周波数を選択的に減らすと同時に、コンピュータ・システム２００によって現在使用されている構成要素のクロック周波数を維持することができる。
【００３７】
図５に移ると、本発明の一態様による位相ロック・ループ（ＰＬＬ）コントローラ５００のブロック図が示されている。複数のＰＬＬコントローラ５００を、構成要素２０２に関連付けることができる。すなわち、上で述べたＣｌｏｃｋ  Ｂ信号４１２を供給するために、構成要素２０２のそれぞれが、その中またはそれに関連する１つまたは複数のＰＬＬコントローラ５００を有することができる。一般に、ＰＬＬコントローラ５００は、第１のＮ分周カウンタ５０２を有し、Ｎ分周カウンタ５０２は、Ｃｌｏｃｋ  Ａ信号４１０を受け取り、所望の周波数を減らされたクロック信号を作る。この信号が、普通の位相比較器５０４の入力端子に渡される。位相比較器５０４の出力端子は、ループ・フィルタ５０５を介して普通の電圧制御発振器（ＶＣＯ）５０６に結合されている。第２のＮ分周カウンタ５０８がＶＣＯ５０６の出力端子に結合されている。第２のＮ分周カウンタ５０８の出力端子は普通のクロック・ツリー５１０に結合されている。クロック・ツリー５１０は、Ｃｌｏｃｋ  Ｂ信号４１２を含む複数のクロック信号を作ることができる。Ｃｌｏｃｋ  Ｂ信号は、遅延回路５１２を介して位相比較器５０４の第２入力に結合される。
【００３８】
ＰＬＬコントローラ５００の動作を説明するために、コンピュータ・システム２００が通常動作モードであり、Ｃｌｏｃｋ  Ａ信号４１０が事前に選択されていた周波数であり、この周波数が、この説明において約５００ＭＨｚであると仮定する。コンピュータ・システムが通常動作モードなので、Ｃｌｏｃｋ  Ｂ信号４１２は、Ｃｌｏｃｋ  Ａ信号と同一の周波数であり、Ｃｌｏｃｋ  Ａ信号４１０と同期している。したがって、Ｎ分周カウンタ５０２および５０８は、レジスタ２２０の内容によって、Ｃｌｏｃｋ  Ｂ信号４１２として、たとえば５００ＭＨｚの通常周波数を作るように指示されている。すなわち、Ｎ分周カウンタ５０２は、図６Ａに示された短い遅延Ｄ１を除いて、主に無変更でＣｌｏｃｋ  Ａ信号４１０を通過させる。
【００３９】
ＶＣＯ５０６は、現在、Ｃｌｏｃｋ  Ａ信号と同一周波数（すなわち、この例では５００ＭＨｚ）である出力信号を送り出している。第２のＮ分周カウンタ５０８は、第１のＮ分周カウンタ５０２と同様に、短い遅延を除いて主に無変更のＶＣＯ信号を送る。クロック・ツリー５１０は、遅延されたＶＣＯ信号を受け取り、Ｃｌｏｃｋ  Ｂ信号４１２を作る。遅延回路５１２を介するフィードバック・パスによって、Ｃｌｏｃｋ  Ｂ信号が位相比較器５０４の第２入力に渡される。遅延されたＣｌｏｃｋ  Ｂ信号４１２と遅延されたＣｌｏｃｋ  Ａ信号４１０の間の位相差によって、位相比較器が、ＶＣＯ５０６の位相を変更する出力信号を送る。この処理は、Ｃｌｏｃｋ  Ｂ信号４１２がＣｌｏｃｋ  Ａ信号４１０と同期するまで繰り返される。
【００４０】
遅延回路５１２は、図６Ａに示された、第１のＮ分周カウンタ５０２によって導入される遅延Ｄ１と実質的に一致することを意図された遅延をＣｌｏｃｋ  Ｂ信号４１２に導入する。したがって、位相比較器５０４は、Ｃｌｏｃｋ  Ａ信号４１０とＣｌｏｃｋ  Ｂ信号４１２の遅延されたバージョンを比較する。その際、遅延されたＣｌｏｃｋ  Ｂ信号が遅延されたＣｌｏｃｋ  Ａ信号６００に同期し、これによって、遅延回路５１２が遅延Ｄ１と一致する場合に、Ｃｌｏｃｋ  Ｂ信号４１２がＣｌｏｃｋ  Ａ信号４１０と同期する。
【００４１】
コンピュータ・システム２００が、低電力モードに入ったと仮定すると、Ｎ分周カウンタ５０２および５０８は、レジスタ２２０の内容によって、Ｃｌｏｃｋ  Ｂ信号４１２の周波数を、たとえば半分に減らす（すなわち、この例では約２５０Ｍｈｚにする）ように指示されている。図６Ｂからわかるように、Ｎ分周カウンタ５０２は、Ｃｌｏｃｋ  Ａ信号４１０の１つおきのクロック・パルスを除去することによって、周波数を減らされたクロック信号６０２を作る。第１のＮ分周カウンタ５０２によって導入される遅延Ｄ１は、図６Ａに示されているように、通常動作中と実質的に同一のままになる。実質的に同一の時に、第２のＮ分周カウンタ５０８も、ＶＣＯ５０６によって作られるクロック信号の１つおきのクロック・パルスを除去することによって、周波数を減らされたクロック信号６０２に類似する周波数を減らされたクロック信号を作る。クロック・ツリー５１０は、Ｎ分周カウンタ５０８からの周波数を減らされた信号を使用して、Ｃｌｏｃｋ  Ｂ信号４１２を作る。Ｃｌｏｃｋ  Ｂ信号４１２の遅延されたバージョン６０４が遅延回路５１２によって作られる。
【００４２】
遅延されたＣｌｏｃｋ  Ｂ信号６０４が、位相比較器５０４に渡され、遅延されたＣｌｏｃｋ  Ａ信号６０２と比較される。遅延されたＣｌｏｃｋ  Ａ信号６０２と遅延されたＣｌｏｃｋ  Ｂ信号６０４の位相の間の差によって、ＶＣＯ５０６がわずかに変化して、遅延されたＣｌｏｃｋ  Ｂ信号６０２を遅延されたＣｌｏｃｋ  Ａ信号６０４に同期する。遅延されたＣｌｏｃｋ  Ａ信号６０２と遅延されたＣｌｏｃｋ  Ｂ信号６０４が、減らされた周波数（すなわち、この例では２５０ＭＨｚ）のＣｌｏｃｋ  Ｂ信号と同期される。しかし、ＶＣＯ５０６は、通常周波数（すなわち、この例では５００ＭＨｚ）での動作を継続する。すなわち、ＶＣＯ５０６は、その出力信号周波数範囲の大きい変更を行うことを強制されるのではなく、さまざまな動作モードの間のすべての変更を通じて実質的に通常の周波数のままになる。ＶＣＯ５０６の比較的一定の周波数は、ＰＬＬ５００の安定動作に寄与し、Ｃｌｏｃｋ  Ｂ信号４１２の周波数の大きい変動がある場合であっても、Ｃｌｏｃｋ  Ｂ信号４１２をＣｌｏｃｋ  Ａ信号４１０にすばやく同期することができるようになる。
【００４３】
アイドル・モードでのコンピュータ・システム２００の動作は、低電力モードでの動作に実質的に類似する。アイドル・モードでは、Ｎ分周カウンタ５０２および５０８が、レジスタ２２０の内容によって、Ｃｌｏｃｋ  Ｂ信号４１２の周波数を、たとえば３２で割る（すなわち、この例では約１５．６２５Ｍｈｚにする）ように指示されている。Ｎ分周カウンタ５０２は、Ｃｌｏｃｋ  Ａ信号４１０の１つのクロック・パルスを送り、３１個のクロック・パルスを除去することによって、周波数を減らされたクロック信号を作る。第１のＮ分周カウンタ５０２によって導入される遅延Ｄ１は、動作の通常モードおよび低電力モード中と実質的に同一のままになる。実質的に同一の時に、第２のＮ分周カウンタ５０８も、ＶＣＯ５０６によって作られるクロック信号のパルスの１つを送り、３１個のパルスを除去することによって、周波数を減らされたクロック信号に類似する周波数を減らされたクロック信号を作る。クロック・ツリー５１０は、Ｎ分周カウンタ５０８からの周波数を減らされた信号を使用して、Ｃｌｏｃｋ  Ｂ信号を作る。遅延回路５１２がＣｌｏｃｋ  Ｂ信号の遅延されたバージョンを作る。
【００４４】
やはり、位相比較器５０４は、遅延されたＣｌｏｃｋ  Ａ信号およびＣｌｏｃｋ  Ｂ信号の位相を比較し、その差を使用して、ＶＣＯ５０６をわずかに変更させて、遅延されたＣｌｏｃｋ  Ｂ信号を遅延されたＣｌｏｃｋ  Ａ信号に同期させる。遅延されたＣｌｏｃｋ  Ａ信号およびＣｌｏｃｋ  Ｂ信号は、減らされた周波数（すなわち、この例では１５．６２５ＭＨｚ）であるＣｌｏｃｋ  Ｂ信号と同期される。しかし、ＶＣＯ５０６は、通常周波数（すなわち、この例では５００ＭＨｚ）での動作を継続する。すなわち、ＶＣＯ５０６は、その出力信号周波数の大きい変更を行うことを強制されるのではなく、さまざまな動作モードの間のすべての変更を通じて実質的に通常周波数のままになる。
【００４５】
図７に、図５のＰＬＬコントローラ５００の実施形態を示す。この実施形態では、Ｎ分周カウンタ５０２が、ＡＮＤゲート７００および制御論理回路７０２を含む。ＡＮＤゲート７００は、第１入力および第２入力を有し、第１入力は、Ｃｌｏｃｋ  Ａ信号４１０を受け取り、第２入力は、制御論理回路７０２から制御信号を受け取る。一般に、制御論理回路７０２は、論理ハイ信号および論理ロウ信号を作って、ＡＮＤゲート７００が、位相比較器５０４に渡されるようにＣｌｏｃｋ  Ａ信号４１０を通過させるかブロックすることができるようにする。この形で、Ｃｌｏｃｋ  Ａ信号４１０の周波数を、無変更のまま送るか、クロック・パルスを選択的に除去することによって周波数を減らして送ることができる。たとえば、レジスタ２２０の内容によって示されるように、コンピュータ・システムが通常モードで動作している場合に、制御論理回路７０２は持続的な論理ハイ信号を送る。これによって、Ｃｌｏｃｋ  Ａ信号４１０のクロック・パルスのすべてが渡される。
【００４６】
コンピュータ・システム２００が、動作の低電力モードに入ったと仮定すると、制御論理回路７０２は、レジスタ２２０の内容に基づいて、Ｃｌｏｃｋ  Ａ信号の周波数を半分に減らさなければならないことを「知る」。したがって、図８Ａに示されているように、制御論理回路７０２は、Ｃｌｏｃｋ  Ａ信号４１０の１つおきのクロック・パルス中に論理ハイになる制御信号８００を送る。したがって、ＡＮＤゲート７００は、Ｃｌｏｃｋ  Ａ信号の１つおきのパルスを通過させることができ、その周波数を半分に減らし、クロック周波数を減らされた信号８０２を作る。
【００４７】
Ｎ分周カウンタ５０８を実質的にＮ分周カウンタ５０２に似た形で構成でき、Ｎ分周カウンタ５０２および５０８の両方が実質的に同時にある動作モードから別の動作モードに推移するようにすることに注意しなければならないことを理解されたい。レジスタ２２０の内容は、破線の矢印５１４によって示されるように、Ｎ分周カウンタ５０２および５０８の両方によって使用される除数が一致することを保証するために、Ｎ分周カウンタ５０８に通信される必要がある。しかし、レジスタ２２０を制御するのに使用されるクロック信号は、Ｃｌｏｃｋ  Ａ信号およびＣｌｏｃｋ  Ｂ信号と同期されるが、Ｎ分周カウンタ５０８は、ＶＣＯ５０６の出力によって直接に駆動される。ＶＣＯ５０６からの出力信号は、クロック・ツリー５１０によって導入される遅延に実質的に対応する率だけ、Ｃｌｏｃｋ  Ａ信号およびＣｌｏｃｋ  Ｂ信号から位相はずれになっている。このタイミングの差が、Ｎ分周カウンタ５０８にレジスタ２２０の内容を送ることに関するタイミング問題を引き起こす可能性がある。したがって、レジスタ２２０からの信号は、Ｃｌｏｃｋ  Ｂ信号の徐々に遅延が増えるバージョンを用いてクロッキングされるバッファ内の一連のステージを介して渡される。すなわち、このバッファのステージは、クロック・ツリー５１０のタップから取られる、徐々に遅延が減るクロック信号を用いてクロッキングされる。
【００４８】
コンピュータ・システム２００が、動作のアイドル・モードに入ったと仮定すると、制御論理回路７０２が、レジスタ２２０の内容に基づいて、Ｃｌｏｃｋ  Ａ信号の周波数を１／３２だけ減らさなければならないことを「知る」。したがって、図８Ｂに示されているように、制御論理回路７０２は、Ｃｌｏｃｋ  Ａ信号４１０の１クロック・パルスの間論理ハイであり、次の３１クロック・パルスの間論理ロウになる制御信号９００を送る。したがって、ＡＮＤゲート７００は、Ｃｌｏｃｋ  Ａ信号の３２パルスごとに１パルスを送り、１／３２だけ周波数を減らし、クロック周波数を減らされた信号９０２を作る。
【００４９】
図８Ａおよび８Ｂからわかるように、クロック周波数を減らされた信号８０２および９０２は、率Ｄ１だけ遅延されている。遅延Ｄ１は、この実施形態では、ＡＮＤゲート７００の処理時間の結果である。ＡＮＤゲート７００の処理時間は、動作のモードから独立に、比較的一定のままである。上で述べたように、Ｃｌｏｃｋ  Ｂ信号４１２は、フィードバック・パスに遅延回路５１２を導入することによってＣｌｏｃｋ  Ａ信号４１０に正確に同期される。この遅延回路５１２は、遅延Ｄ１に実質的に等しい遅延を導入する。図示の実施形態では、遅延回路５１２が、第１入力がＣｌｏｃｋ  Ｂ信号４１２に結合され、第２入力がシステム電圧Ｖｃｃなどの論理ハイ信号に結合されたＡＮＤゲート７０４の形をとる。同一のプロセスを使用し、類似するサイズおよび構成のトランジスタを使用して同一のダイでＡＮＤゲート７００を構成することによって、ＡＮＤゲート７００および７０４によって導入される遅延を実質的に一致させることができる。
【００５０】
図７に戻ると、第２のＮ分周カウンタ５０８を、第１のＮ分周カウンタ５０２に関して開示したものに類似するか同一の設計とすることができることを、当業者は理解するであろう。Ｎ分周カウンタ５０２および５０８のさまざまな他の設計を、本発明の趣旨および範囲から逸脱せずに使用することができる。したがって、本発明は、請求項で特に示されない限り、図７に示されたＮ分周カウンタ５０２および５０８の特定の実施形態に制限されない。
【００５１】
構成要素２０２のすべてに、ＰＬＬコントローラ５００が含まれるのではなく、他のまたは追加の方法および装置を使用して、さまざまな動作モードの間の推移中の誤動作の可能性を減らすことができる。たとえば、コンピュータ・システム２００のメモリ２１２で、異なる戦略を使用して、低電力モードで使用される周波数を減らした信号にロックできるようにする。図９からわかるように、メモリ２１２は、バス９００と、ＶＣＯ＿ＳＥＬＥＣＴ制御信号を含む制御信号線９０２によってＣＰＵ２０４に結合される。ＶＣＯ＿ＳＥＬＥＣＴ制御信号は、メモリ２１２内のＰＬＬ９０４に渡され、ＰＬＬ９０４がＢＢＣ２１６によって渡されるＣｌｏｃｋ  Ｂ信号と同期するのを助けるのに使用される。
【００５２】
一実施形態では、ＰＬＬ９０４が、Ｍｏｔｏｒｏｌａ，Ｉｎｃ．社が販売する、部品番号ＭＰＣ９５３などの低電圧ＰＬＬクロック・ドライバの形をとる。図１０のブロック図からわかるように、ＰＬＬ９０４は、Ｃｌｏｃｋ  Ｉｎ信号を受け取り、Ｃｌｏｃｋ  Ｉｎ信号を、位相比較器１０００および低域フィルタ（ＬＰＦ）１００２を介してＶＣＯ１００４の制御入力に渡す。ＶＣＯ１００４の出力端子は、マルチプレクサ１００８の第１入力端子に結合され、２分周カウンタ１００５を介してマルチプレクサ１００８の第２入力端子に結合される。ＶＣＯ＿ＳＥＬＥＣＴ信号は、マルチプレクサ１００８の制御入力端子に渡される。マルチプレクサ１００８の出力端子は、第２のマルチプレクサ１０１０を介してクロック・ツリー１０１２に結合される。クロック・ツリー１０１２は、シンクロナス・ダイナミック・ランダム・アクセス・メモリ（ＳＤＲＡＭ）などのメモリ２１２に、その動作を制御するためにＣｌｏｃｋ  Ｏｕｔ信号を送る。Ｃｌｏｃｋ  Ｏｕｔ信号は、フィードバック・パスを介して位相比較器１０００の入力端子にも渡される。
【００５３】
したがって、マルチプレクサ１００８は、動作の第１モードでは、ＶＣＯ＿ＳＥＬＥＣＴ信号によって、ＶＣＯ１００４によって作られる信号を実質的に無変更で渡す。しかし、動作の第２モードでは、ＶＣＯ＿ＳＥＬＥＣＴ信号によって、ＶＣＯ１００４によって作られる信号の半分の周波数を有する信号を渡す。ＰＬＬ９０４は、動作の第１モードでは、第１範囲に含まれる周波数を有する信号にロックし、動作の第２モードでは、第２範囲に含まれる周波数を有する信号にロックすることができる。たとえば、ＰＬＬ９０４は、動作の第１モードでは、少なくとも約１５０から６２．５ＭＨｚの範囲内のＣｌｏｃｋ  Ｉｎ信号に信頼性のある形でロックすることができ、動作の第２モードでは、少なくとも約１２５から５０ＭＨｚの範囲内のＣｌｏｃｋ  Ｉｎ信号に信頼性のある形でロックすることができる。
【００５４】
構成要素２０２の一実施形態では、動作の通常モード中のシステム・クロックが、約１００から１５０ＭＨｚの範囲内である。したがって、システム・クロック信号が、１００から１２５ＭＨｚなど、１００から１５０ＭＨｚの範囲の下側部分に含まれる周波数を有する場合に、コンピュータ・システム２００が低電力モードに入り、Ｃｌｏｃｋ  Ｉｎ信号がシステム・クロック信号の半分になる（すなわち、約６２．５から５０ＭＨｚの範囲内）時に、ＰＬＬ９０４が動作の第１モード（すなわち、少なくとも約１５０から６２．５ＭＨｚの範囲内の信号にロックすることができる）である場合に、ＰＬＬ９０４は、信頼性のある形でＣｌｏｃｋ  Ｉｎ信号にロックできなくなる。逆に、約１２５から１５０ＭＨｚなどの１００から１５０ＭＨｚ範囲の上側部分に含まれる周波数を有する場合、コンピュータ・システムが通常モードであり、ＰＬＬ９０４が動作の第２モードである（すなわち、１２５から５０ＭＨｚの範囲の信号にロックできる）場合に、システム・クロック信号は、ＰＬＬ９０４は、Ｃｌｏｃｋ  Ｉｎ信号に信頼性のある形でロックすることができない。
【００５５】
ＰＬＬ９０４は、コンピュータ・システム２００が通常モードまたは低電力モードのいずれかであり、ＶＣＯ＿ＳＥＬＥＣＴ信号が正しく構成される場合に、Ｃｌｏｃｋ  Ｉｎ信号に正しくロックすることができる。たとえば、システム・クロックが約１４０ＭＨｚの周波数で動作する場合に、Ｃｌｏｃｋ  Ｉｎ信号は、通常モードで約１４０ＭＨｚ、低電力モードで約７０ＭＨｚになる。ＶＣＯ＿ＳＥＬＥＣＴ信号が、ＰＬＬ９０４を第１動作モードにセットするためにアサートされている場合に、ＰＬＬ９０４は、約１５０から６２．５ＭＨｚの範囲の信号に信頼性のある形でロックすることができ、この範囲には、１４０ＭＨｚおよび７０ＭＨｚの期待される信号が含まれる。同様に、システム・クロックが、１１０ＭＨｚなど、周波数範囲の下側部分で動作している場合に、Ｃｌｏｃｋ  Ｉｎ信号は、通常モードで約１１０ＭＨｚ、低電力モードで約５５ＭＨｚになる。ＶＣＯ＿ＳＥＬＥＣＴ信号が、ＰＬＬ９０４を第２動作モードにセットするためにデアサートされている場合に、ＰＬＬ９０４は、約１２５から５０ＭＨｚの範囲内の信号に信頼性のある形でロックすることができ、この範囲には、１１０ＭＨｚおよび５５ＭＨｚの期待される信号が含まれる。
【００５６】
したがって、コンピュータ・システム２００の初期化中に、ＣＰＵ２０４が、システム・クロックの周波数を検出し、それに従ってＶＣＯ＿ＳＥＬＥＣＴ信号をセットする。たとえば、ＣＰＵ２０４が、システム・クロックが許容される周波数範囲の下側部分（たとえば約１００から１２５ＭＨｚ）に含まれる周波数を有することを検出すると、ＶＣＯ＿ＳＥＬＥＣＴ信号がアサートされて、マルチプレクサ１００８が、２分周カウンタ１００６の出力信号を送る。その一方で、ＣＰＵ２０４が、システム・クロックが許容される周波数範囲の上側部分（たとえば約１２５から１５０ＭＨｚ）に含まれる周波数を有することを検出すると、ＶＣＯ＿ＳＥＬＥＣＴ信号がデアサートされて、マルチプレクサ１００８が、ＶＣＯ１００４の出力信号を送る。
【００５７】
図１１に、初期化モードまたはスタートアップ・モード中にＣＰＵ２０４によって操作することができるソフトウェア制御プロセス１１００の流れ図の一実施形態を示す。図１１に示されたソフトウェアは、一般に、ＶＣＯ＿ＳＥＬＥＣＴ信号の値を正しくセットする責任を負う。プロセス１１００は、ブロック１１０２で開始され、ここで、コンピュータ・システム２００が、初期化モードまたはスタート・アップ・モードに入る。このプロセスは、一般に、コンピュータ・システム２００が、電源をオンにされるかリセットされる時に発生するが、通常は、システムがリセットされるか、電源を切ってからもう一度入れなおすまで、繰り返されない。
【００５８】
ブロック１１０４で、ＣＰＵ２０４が、システム・クロック信号を監視して、その周波数を判定する。その後、ブロック１１０６で、ＣＰＵ２０４が、システム・クロック信号の周波数を事前に選択されたセットポイントと比較する。このセットポイントは、上で説明した例示的なシステムでは約１２５ＭＨｚである。最後に、ブロック１１０８で、ＣＰＵは、約１２５ＭＨｚを超えるシステム・クロック信号の周波数に応答して第１の値、約１２５ＭＨｚ未満のシステム・クロックの周波数に応答して第２の値に、ＶＣＯ＿ＳＥＬＥＣＴ信号をセットする。
【００５９】
メモリ２１２には、動作の通常モード、低電力モード、およびアイドル・モードの間での推移中に、それに保管されたデータが壊れるか失われる可能性を減らすための追加の方法および装置が含まれる。たとえば、メモリが、シンクロナス・ダイナミック・ランダム・アクセス・メモリ（ＳＤＲＡＭ）などのダイナミック要素からなる場合には、要素を周期的にリフレッシュしなければならず、さもなければ、そこに置かれていた電荷が流出する可能性がある。メモリ要素を周期的にリフレッシュする過程は、不安定なクロック信号によって遅延されるか、他の形で干渉される可能性がある。したがって、動作の通常モード、低電力モード、およびアイドル・モードの間での推移中に、変化する／不安定なクロック信号によって、メモリが、不適切なリフレッシュのゆえに壊される可能性がある。したがって、動作の通常モード、低電力モード、およびアイドル・モードの間での推移中にシステム・クロック信号に頼らない、メモリ２１２にリフレッシュ・モードに入らせる方法および装置を提供する。
【００６０】
図１２に示された実施形態では、メモリ２１２が、部品番号ＫＭ４１６Ｓ４０３０、ＫＭ４１６Ｓ９０３０、またはＫＭ４１５Ｓ１６２３０／ＫＭ４８Ｓ３２２３０としてＳａｍｓｕｎｇ社が販売するもの、あるいは部品番号ＨＭ５２６４１６５ＦＴＴまたはＨＭ５２２５１６５ＢＴＴとして日立社が販売するもの、あるいは部品番号Ｍ２ｖ６４４０ＢＴＰ、Ｍ２ｖ２８ｓ４０ＡＴＰ、またはＭ２ｖ５６ｓ４０ＴＰ／Ｍ２ｖ５６ｓ３０ＴＰとして三菱社が販売するものなどの、シンクロナス・ダイナミック・ランダム・アクセス・メモリ（ＳＤＲＡＭ）デバイス１２０２、１２０４、１２０６、および１２０８のアレイ１２００の形をとる。４つのＳＤＲＡＭデバイス１２０２、１２０４、１２０６、および１２０８が、図示の実施形態に示されているが、当業者は、本発明の趣旨および範囲から逸脱せずに、より多数またはより少数のデバイスを簡単に使用できることを理解するであろう。ＳＤＲＡＭデバイスは、少なくともデータ信号およびアドレス信号を送るためにバス１２１０を介して互いに結合される。ＳＤＲＡＭデバイス１２０２、１２０４、１２０６、および１２０８の動作をもたらすための、書込イネーブル（ＷＥ）、カラム・アドレス選択（ＣＡＳ）、ロウ・アドレス選択（ＲＡＳ）、チップ選択（ＣＳ）、および類似物などの制御信号も、バス１２１０を介して送るか、別々の制御信号線１２１２を介して送ることができる。制御信号は、ＳＤＲＡＭデバイス１２０２、１２０４、１２０６、および１２０８に、自己リフレッシュなど、さまざまな既知の動作のモードに入らせるのに使用することができる。たとえば、動作の自己リフレッシュ・モードは、ＣＳ、ＣＡＳ、およびＲＡＳ信号を論理ロウ・レベルに保持し、ＷＥ信号を論理ハイ・レベルにバイアスすることによって入ることができる。どの場合でも、確立されたシグナリング・プロトコルがＳＤＲＡＭデバイス１２０２、１２０４、１２０６、および１２０８によって認識されたならば、これらのデバイスは、システム・クロックを参照せず、ＳＤＲＡＭデバイス１２０２、１２０４、１２０６、および１２０８の内部で生成されるクロック信号に頼る、ダイナミック要素を周期的にリフレッシュする動作のモードに入る。
【００６１】
一般に、動作の自己リフレッシュ・モードは、通常は、コンピュータ・システム２００の残りの部分の電源が切られている場合であっても、ＳＤＲＡＭデバイス１２０２、１２０４、１２０６、および１２０８のデータを保存するのに使用される。自己リフレッシュ・モードである時に、ＳＤＲＡＭデバイス１２０２、１２０４、１２０６、および１２０８は、外部クロッキングなしでデータを保存する。自己リフレッシュ・モードが要求されたならば、ＳＤＲＡＭデバイス１２０２、１２０４、１２０６、および１２０８のクロック信号入力端子は、「ドント・ケア」状態になり、ＳＤＲＡＭデバイス１２０２、１２０４、１２０６、および１２０８は、それ自体の内部クロッキングを提供する。したがって、各ＳＤＲＡＭデバイス１２０２、１２０４、１２０６、および１２０８が、それ自体のリフレッシュ・サイクルを実行する。ＳＤＲＡＭデバイス１２０２、１２０４、１２０６、および１２０８は、そこに保管されたデータの消失または破壊の危険性なしに、不確定の時間の間にわたって自己リフレッシュ・モードにとどまることができる。しかし、クロック信号が安定したならば、コンピュータ・システム２００が、事前に定義されたシグナリング・プロトコルを使用してＳＤＲＡＭデバイス１２０２、１２０４、１２０６、および１２０８に信号を送って、自己リフレッシュ・モードから出、その結果、ＳＤＲＡＭデバイス１２０２、１２０４、１２０６、および１２０８がもう一度アクセス可能になるようにする。
【００６２】
したがって、システム・クロック信号の周波数の推移中に一時的にＳＤＲＡＭデバイス１２０２、１２０４、１２０６、および１２０８に自己リフレッシュ・モードに入らせることによって、ＳＤＲＡＭデバイス１２０２、１２０４、１２０６、および１２０８が、これらの不安定な期間中にシステム・クロック信号から効果的に分離されることを理解されたい。したがって、ＳＤＲＡＭデバイス１２０２、１２０４、１２０６、および１２０８の内容が、そうでなければ不安定なシステム・クロック信号によって引き起こされる可能性がある破壊から保護される。
【００６３】
図４に戻ると、動作の通常モード、低電力モード、またはアイドル・モードの間で推移中のコンピュータ・システム２００の関係する信号のタイミング図が示されている。具体的に言うと、自己リフレッシュ・モードに入り、出るＳＤＲＡＭデバイス１２０２、１２０４、１２０６、および１２０８のタイミングが示されている。図４に関して上で詳細に説明したように、動作の通常モード、低電力モード、またはアイドル・モードの間で推移する時のコンピュータ・システム２００の全般的な動作には、構成要素１０２のそれぞれがその活動をフリーズすることを要求することが含まれる。ある時間の間にわたって、構成要素１０２のそれぞれが、システム・クロック信号が周波数を変更することに対して準備ができていることの肯定信号を用いて応答する。その後、システム・クロック信号の周波数を変更するように指示する。一実施形態では、メモリ２１２が、すべての構成要素１０２が周波数変更の準備ができた後、システム・クロック信号の周波数が変更を許可される前のある時に、自己リフレッシュ・モードに入るように指示される。すなわち、メモリ２１２は、すべてのフリーズ確認信号が受け取られた後、変更信号がアサートされる前に、自己リフレッシュ・モードに入る。
【００６４】
その後、Ｃｌｏｃｋ  Ｂ信号が安定し、Ｃｌｏｃｋ  Ａ信号と同期されるまで、自己リフレッシュ・モードが持続を許可される。一実施形態では、メモリ２１２は、フリーズ信号がデアサートされた後に、自己リフレッシュ・モードから出る。ＣＰＵ２０４内に含まれるメモリ・コントローラ（図示せず）が、メモリ２１２に自己リフレッシュ・モードに入らせる信号を送る責任を負うことを、当業者は理解するであろう。自己リフレッシュ・モードを開始するためのメモリ・コントローラの動作は、本発明の趣旨および範囲から逸脱せずに、ハードウェアまたはソフトウェアの制御の下で実施することができる。
【００６５】
コンピュータ・システム２００のメモリ２１２は、動作のアイドル・モードで、修正された形で動作する。上で述べたように、メモリ２１２のＰＬＬ９０４の動作は、システム・クロック周波数に従って変更されて、ＰＬＬ９０４が、システム・クロック信号の期待される周波数範囲全体を通じて、通常モードと低電力モードの両方でクロック信号に信頼性のある形でロックされる。しかし、ＰＬＬ９０４の動作範囲は、アイドル・モードで使用されるクロック周波数まで延びていない場合がある。したがって、ＰＬＬ９０４の動作範囲が、アイドル・モードで使用されるクロック周波数を含むのに不十分な場合には、異なる技法が使用される。
【００６６】
まず、ＰＬＬ９０４をバイパスする。すなわち、図１０に示されているように、マルチプレクサ１０１０は、ＣＬＯＣＫ  ＩＮ信号を受け取るように結合された第１入力端子と、ＶＣＯ１００４から直接にまたは間接的に（すなわち２分周カウンタ１００６を介して）ロックされたクロック信号を受け取るように結合された第２入力端子を有する。ＰＬＬ  ＢＹＰＡＳＳ（ＰＬＬバイパス）信号が、マルチプレクサ１０１０の制御入力端子に結合され、その結果、第１入力端子および第２入力端子に印加される信号の一方が、選択的にクロック・ツリー１０１２に渡され、その後、メモリ２１２全体に分配される。
【００６７】
したがって、ＰＬＬ  ＢＹＰＡＳＳ信号がアサートされていない時には、マルチプレクサ１０１０は、ＶＣＯ１００４からのクロック信号を通す。この動作のモードでは、ＰＬＬ９０４が、ＣＬＯＣＫ  ＩＮ信号の位相をＣＬＯＣＫ  ＯＵＴ信号の位相と能動的に比較して、ＣＬＯＣＫ  ＩＮ信号とＣＬＯＣＫ  ＯＵＴ信号の位相を同期またはロックするようにＶＣＯ１００４を調整する。このモードでは、ＰＬＬ９０４が、０遅延バッファとして動作する。
【００６８】
その代わりに、ＰＬＬ  ＢＹＰＡＳＳ信号がアサートされる時に、マルチプレクサ１０１０は、ＣＬＯＣＫ  ＩＮ信号をクロック・ツリー１０１２に送る。この動作のモードでは、ＰＬＬ９０４が、効果的にバイパスされ、ＣＬＯＣＫ  ＩＮ信号が、実質的に直接にクロック・ツリー１０１２によって分配される。したがって、ＰＬＬ９０４がバイパスされるので、ＣＬＯＣＫ  ＯＵＴ信号は、もはやＣＬＯＣＫ  ＩＮ信号と同期されない。そうではなく、図１２に示されているように、ＣＬＯＣＫ  ＯＵＴ信号が、マルチプレクサ１０１０およびクロック・ツリー１０１２によって導入される遅延に実質的に対応する時間Ｄ５だけＣＬＯＣＫ  ＩＮ信号に対して遅れる。一実施形態では、時間Ｄ５が、約６から８ナノ秒の範囲である。
【００６９】
時間Ｄ５は、システム・クロック信号に同期されるメモリ２１２と他の構成要素２０２の間のデータの転送のタイミングが合わなくなる可能性がある持続時間になることもある。したがって、図９に示されているようにＣＰＵ２０４内に配置することができる普通のメモリ・コントローラ９０６は、動作の第１および第２のモードを使用する。メモリ・コントローラ９０６の動作の第１モードは、動作の通常モードおよび低電力モードに関連する。メモリ・コントローラ９０６の動作の第２モードは、動作のアイドル・モードに関連する。
【００７０】
動作の第１モードでは、メモリ・コントローラ９０６は、ソフトウェアまたはハードウェアのいずれかの制御の下で、アドレス信号線またはデータ信号線をラッチ、駆動、またはサンプリングしなければならない時のタイミングを制御するように構成される。すなわち、経験的調査、理論的計算、またはシミュレーションを介して、メモリ・コントローラ９０６が、メモリ２１２への要求の後、要求をサービスする前に待つ必要がある時間の量を「知る」。たとえば、メモリ・コントローラ９０６は、メモリ２１２からデータを読み取ることを要求する場合に、メモリ２１２がそのデータをメモリ・コントローラ９０６に送る前に、第１の事前に選択された時間の間だけ待たなければならないことを「知る」。この第１の待機期間は、メモリ・コントローラ９０６のハードワイヤされるバージョンに設計するか、ＣＰＵ２０４上で実行されるソフトウェアを介してプログラムすることができる。一般に、メモリ・コントローラ９０６内のレジスタ（図示せず）が、メモリ・コントローラ９０６によって使用される所望のタイミングを識別する値をその中に保管される。一実施形態では、第１の時間が、１つまたは複数のクロック期間の範囲である。
【００７１】
動作の第２のモードでは、レジスタ（図示せず）に保管された値が、メモリ・コントローラ９０６に第２の異なる時間の間だけ待たせるように変更される。図示の実施形態では、ＣＬＯＣＫ  ＯＵＴ信号がＣＬＯＣＫ  ＩＮ信号とその期間だけ位相はずれである時間Ｄ５を考慮に入れるために、第２の時間の間が、第１の期間より長い。したがって、より長い第２の時間の間のために、メモリ２１２の動作が、動作のアイドル・モード中にさらに低速にされるが、メモリ２１２はアクティブのままであり、そこに保管されたデータは壊されることがない。メモリ２１２は、通常のクロック周波数信号の約１／３２のＣＬＯＣＫ  ＩＮ信号を用いる動作のアイドル・モードであっても、低速になるが動作はする。
【００７２】
図４に戻ると、動作の通常モード、低電力モード、またはアイドル・モードの間で推移中のコンピュータ・システム２００の関係する信号のタイミング図が示されている。具体的に言うと、ＰＬＬ  ＢＹＰＡＳＳ信号のタイミングが示されている。動作の低電力モードからアイドル・モードへの推移中のコンピュータ・システム２００の動作は、図４および９を同時に参照することによって理解することができる。
【００７３】
ＢＢＣ２１６が、レジスタ２２０のビット３００および３０２をセットすることによって、動作の低電力モードから動作のアイドル・モードへの変更を要求したと仮定する。メモリ・コントローラ９０６は、ビット３００および３０２に基づいて、システムが動作のアイドル・モードに入ろうとしていることを認識し、したがって、ＳＥＬＦ  ＲＥＦＲＥＳＨ信号がアサートされている間にＰＬＬ  ＢＹＰＡＳＳ信号をアサートする必要がある。ＳＥＬＦ  ＲＥＦＲＥＳＨ信号がアサートされていない時にＰＬＬ  ＢＹＰＡＳＳ信号をアサートすると、ＣＬＯＣＫ  ＯＵＴ信号が、ＰＬＬ  ＢＹＰＡＳＳ信号がアサートされている時に大きく変化する可能性があるので、メモリ２１２に保管されたデータの破壊がもたらされる可能性がある。したがって、図示の実施形態では、ＰＬＬ  ＢＹＰＡＳＳ信号が、ＣＨＡＮＧＥ信号がアサートされてから、事前に選択された時間Ｔ２だけ後にアサートされる。その後、コンピュータ・システム２００が動作のアイドル・モードにとどまる限り、ＰＬＬ  ＢＹＰＡＳＳ信号がアサートされたままになる。
【００７４】
将来のある時点で、ＢＢＣ２１６が、コンピュータ・システム２００が動作のアイドル・モードから動作の低電力モードに移ることを要求する。コンピュータ・システム２００が、低電力モードに切り替わったならば、ＰＬＬ９０４が、もう一度信頼性のある形でＣＬＯＣＫ  ＩＮ信号にロックすることができるようになる。したがって、メモリ２１２の速度を高めるために、ＰＬＬ９０４の動作を復元して、０遅延クロック・サイクルを提供する。ＰＬＬ  ＢＹＰＡＳＳ信号は、ＣＨＡＮＧＥ信号がデアサートされてから、事前に選択された時間の間Ｔ５だけ後にデアサートされ、これは、図示の実施形態では、ＣＬＯＣＫ  Ｂ／ＣＬＯＣＫ  ＩＮ信号が、動作の低電力モードに関連する次に高い周波数に推移した後である。
【００７５】
図１３に移ると、周辺デバイス２０８（図２を参照されたい）との間のトラフィックを管理するバス・コントローラ１３００が示されている。バス・コントローラ１３００は、周辺要素インターフェース（ＰＣＩ）バスなどのバス１３０２を介して、グラフィックス・カード、サウンド・カード、および類似物などの複数の普通のデバイス１３０４、１３０６、および１３０８に結合される。３つのデバイスが図示されているが、本発明の趣旨および範囲から逸脱せずに、より多数またはより少数のデバイスをバス１３０２に結合することができる。
【００７６】
デバイス１３０４、１３０６、および１３０８のそれぞれが、他の構成要素２０２と、データを転送するかそれを介してデータを受け取ることができるように、バス１３０２へのアクセスを要求するように構成される。クロック・コントローラ１３１０が、それぞれ信号線１３１２、１３１４、および１３１６を介してデバイス１３０４、１３０６、および１３０８にクロック信号を供給する。クロック・コントローラ１３１０は、バス・コントローラ１３００にも結合されて、バス・コントローラが、コンピュータ・システム２００によって消費される電力の量を減らす方法として、デバイス１３０４、１３０６、および１３０８に渡されるクロック信号の周波数の変更をもたらすことができるようにする。
【００７７】
一般に、バス・コントローラ１３００は、クロック・コントローラ１３１０が、低速または高速のいずれかのクロック周波数信号をデバイス１３０４、１３０６、および１３０８に供給することを要求するように適合される。デバイス１３０４、１３０６、および１３０８が、データを供給しておらず、バス１３０２からデータを受け取っていない時に、これらに供給されるクロック信号の周波数を、かなり減らすことができる。しかし、デバイス１３０４、１３０６、および１３０８のどれかが、バス１３０２にデータを転送することを望む時、または別の構成要素がデバイス１３０４、１３０６、および１３０８の１つにデータを転送することを望む時には、バス・コントローラ１３００は、クロック信号の周波数を上げるようにクロック・コントローラ１３１０に指示し、その結果、バス１３０２を介するデバイス１３０４、１３０６、および１３０８との間の比較的高速の転送を達成できるようにすることができる。この形で、デバイス１３０４、１３０６、および１３０８を、使用中でない時に動作の低電力モードにすることができる。すなわち、他のすべてが同一であるならば、デバイス１３０４、１３０６、および１３０８に供給されるクロック信号の周波数を下げることによって、これらのデバイスが消費する電力が減る。一実施形態では、高速クロック信号または通常クロック信号が、約３３ＭＨｚの周波数を有し、低速クロック信号または周波数を減らされたクロック信号が、１／３２だけ除算されて、約１ＭＨｚのクロック信号が作られる。本発明の趣旨および範囲から逸脱せずに、広範囲の周波数を使用できることを、当業者は理解するであろう。
【００７８】
図１４に移ると、高速と低速の周波数のクロック信号の間の推移中のコンピュータ・システム２００の関係する信号のタイミング図が示されている。具体的に言うと、ＣＬＯＣＫ（クロック）信号、ＲＥＱＵＥＳＴ（要求）信号、ＦＡＳＴ／ＳＬＯＷ（高速／低速）信号、およびＧＲＡＮＴ（許可）信号のタイミングが図示されている。高速と低速の周波数のクロック信号の間の推移中のコンピュータ・システム２００の動作は、図１３および１４を同時に参照することによって理解することができる。
【００７９】
図１４からわかるように、ＣＬＯＣＫ信号は、領域１４００に示されているように、当初は比較的低い周波数で動作している。ある時点で、ＲＥＱＵＥＳＴ信号が、ＲＥＱＵＥＳＴ信号の正推移１４０２によって示されるように、デバイス１３０４、１３０６、および１３０８の１つまたは他の構成要素２０２のいずれかによってアサートされる。ＲＥＱＵＥＳＴ信号は、バス１３０２を介してまたは要求元のデバイス１３０４、１３０６、および１３０８の間に延びる別の信号線を介して、送ることができる。バス・コントローラ１３００は、デバイス１３０４、１３０６、および１３０８に供給されるＣＬＯＣＫ信号の周波数を増やすようにクロック・コントローラ１３１０に指示することによって、アサートされたＲＥＱＵＥＳＴ信号に応答する。バス・コントローラ１３００は、ＦＡＳＴ／ＳＬＯＷ信号の正推移１４０４によって示されるように、信号線１３１８を介してクロック・コントローラ１３１０に供給されるＦＡＳＴ／ＳＬＯＷ信号をアサートする。
【００８０】
クロック・コントローラ１３１０は、領域１４０６に示されているように、すぐにＣＬＯＣＫ信号の周波数を増やすことによって、アサートされたＦＡＳＴ／ＳＬＯＷ信号に応答する。ＣＬＯＣＫ信号が推移を完了し、安定することができるようにするための事前に選択された時間の間が過ぎた後に、バス・コントローラ１３００が、ＧＲＡＮＴ信号の正推移１４０８によって示されるように、ＧＲＡＮＴ信号をアサートし、これが、ＲＥＱＵＥＳＴ信号をアサートしたかＲＥＱＵＥＳＴ信号をアサートした構成要素２０２のターゲットであるデバイス１３０４、１３０６、および１３０８に通信される。一実施形態では、ＧＲＡＮＴ信号が、ＦＡＳＴ／ＳＬＯＷ信号がアサートされてから２クロック・サイクル後にアサートされる。したがって、データがデバイス１３０４、１３０６、および１３０８との間で転送される速度に対する悪影響を最小限にして、デバイス１３０４、１３０６、および１３０８を、すばやく低電力／低速モードから引き出し、通常動作に戻すことができる。
【００８１】
さらに、保留中のバス・トランザクションがなく、バス・コントローラ１３００がＦＡＳＴ／ＳＬＯＷ信号をアサートしていない間に、クロック・コントローラ１３１０が、デバイス１３０４、１３０６、および１３０８のクロック周波数を個別に制御することができる。すなわち、クロック・コントローラ１３１０は、デバイス１３０４、１３０６、および１３０８に異なる周波数のクロック信号を供給することができる。たとえば、わずかに高い周波数のクロック信号を、デバイス１３０４、１３０６、および１３０８の一部に供給して、それらが有用な作業を行えるようにすることができる。１つの例示的実施形態では、クロック・コントローラ１３１０が、バス１３０２に結合されたネットワーク・インターフェース・カード（ＮＩＣ）に、４ＭＨｚのクロック信号を供給する。わずかに高いクロック信号によって、ＮＩＣが、電力を節約しながらネットワーク・パケットの処理を継続できるようになる。
【００８２】
最終的に、デバイス１３０４、１３０６、および１３０８との間で転送されるデータが完了し、転送を要求したデバイス１３０４、１３０６、および１３０８、または転送を要求した構成要素２０２が、ＲＥＱＵＥＳＴ信号をデアサートするようになる。バス・コントローラ１３００は、ＧＲＡＮＴ信号をデアサートし、別のＲＥＱＵＥＳＴ信号がアサートされるまでそれ以上のバス・トランザクションを防ぐことによって、デアサートされたＲＥＱＵＥＳＴ信号に応答する。ＧＲＡＮＴ信号がデアサートされるのと同時にまたはその後に、バス・コントローラ１３００は、ＦＡＳＴ／ＳＬＯＷ信号もデアサートし、領域１４１０に示されているように、クロック・コントローラ１３１０は、ＣＬＯＣＫ信号の周波数を減らすことができる。
【００８３】
この処理を、バス１３０２を介するトランザクションごとに繰り返す。したがって、ＣＬＯＣＫ信号の周波数は、データがバス１３０２を介して転送されるまで、減らされた設定のままにある。周波数を減らされるこれらの期間は、しばしば、長い時間の間にわたって発生し、コンピュータ・システム２００によって消費される電力のかなりの削減がもたらされる。
【００８４】
図１５に移ると、キャッシュ２１４によって消費される電力の削減に基づく、電力消費を減らすシステムが示されている。キャッシュ２１４は、アドレス・バス、データ・バス、およびさまざまな制御信号（これらは全般的に両方向の矢印１５００によって概略的に表される）などの複数の普通の接続を介してＣＰＵ２０２に結合される。両方向の矢印１５００によって表される接続のほかに、制御信号を、ＣＰＵ２０２によって信号線１５０２を介してキャッシュ２１４に制御可能に送って、キャッシュ２１４に動作のパワー・ダウン・モードに入らせることができる。
【００８５】
半導体のさまざまな製造業者が、コンピュータ・システムでキャッシュとして使用することができるメモリ製品を作る。たとえば、ＩＢＭ社、Ｓａｍｓｕｎｇ社、Ｓｏｎｙ社などのそれぞれが、コンピュータ・システム内のキャッシュとして動作するように特に設計された半導体メモリ製品を提供している。Ｓａｍｓｕｎｇ社から入手可能なＫ７Ｎ８０３６４５Ｍなど、これらのメモリ製品の少なくとも一部に、一般に「スリープ・モード」と称する動作のモードが含まれ、これらのメモリ製品を、コンピュータ・システム２００のキャッシュ２１４として使用することができる。
【００８６】
スリープ・モードは、キャッシュ２１４が選択解除され、電流が比較的低いスタンバイ・レベルまで減らされる、低電流のパワーダウン・モードである。キャッシュ２１４は、その入力ピンの１つで信号をアサートすることによってスリープ・モードに入るように誘導され、このピンは、一般に、ＺＺ入力ピンと称し、信号線１５０２に結合される。スリープ・モードに入った後に、ＺＺを除くキャッシュ２１４へのすべての入力が、ディスエーブルされ、キャッシュ２１４からのすべての出力信号が、ハイ・インピーダンス状態になる。このスリープ・モード中に、キャッシュ２１４が必要とする電流および／または電力の量が、かなり減らされる。
【００８７】
スリープ・モードに入る時のキャッシュ２１４の動作は、図１６に示されたタイミング図を参照することによって理解することができる。クロック信号１６００が、一般に、キャッシュ２１４内の動作を同期するのに使用される。しかし、ＺＺ入力ピンに渡される制御信号は、クロック信号１６００に関して非同期にアサートすることができる。したがって、事前に選択された時に、信号線１５０２を介してキャッシュ２１４に渡される信号１６０２がアサートされる。制御信号１６０２がアサートされてから２クロック・サイクル後に、キャッシュ２１４への供給電流Ｉｓｕｐｐｌｙが、電流波形１６０４によって示されているように、かなり減らされる。ほぼ同時に、波形１６０６によって示されるように、キャッシュ２１４への入力ピンのすべてが、ディスエーブルされて、キャッシュ２１４に保管されたデータが、スリープ・モード中に保管されたデータにアクセスする試みによって破壊されず、失われないようにする。キャッシュ２１４のすべての出力端子も、波形１６０８によって示されるように、ハイ・インピーダンス状態に駆動される。
【００８８】
その後、キャッシュ２１４を、制御信号１６０２をデアサートすることによって、スリープ・モードから「覚醒」させることができる。制御信号１６０２が、そのデアサートされた状態に戻される時に、キャッシュ２１４は、電流供給Ｉｓｕｐｐｌｙをその通常レベルに戻し、それから約２クロック・サイクル後に、キャッシュ２１４の入力ピンが、波形１６０６によって示されているように、再びイネーブルされる。キャッシュ２１４の出力ピンも、通常動作状態に戻される。したがって、制御信号１６０２がデアサートされてから２クロック・サイクル後に、キャッシュ２１４が、その動作の通常モードで動作している。
【００８９】
本発明でのＺＺ制御信号１６０２のアサートは、従来のシステムと異なって、メモリ階層がアクティブである間のメモリ参照の間に発生する。すなわち、従来のシステムでは、ＺＺ制御信号１６０２が、コンピュータ・システムがスタンバイ・モードまたはスリープ・モードにされている時など、メモリ階層がディスエーブルされており、したがってメモリ階層への参照が行われない時に限ってアサートされる。これと対照して、本明細書に記載のシステムでは、キャッシュ２１４が現在メモリ参照を扱っていない時であればいつでも、ＺＺ制御信号１６０２をアサートすることができる。すなわち、コンピュータ・システム２００は、通常モード、低電力モード、またはアイドル・モードで動作しており、キャッシュ２１４、メモリ２１２、ディスク・ドライブ（図示せず）、および類似物を含むメモリを読み書きする要求を完全に行うことができるものとすることができる。キャッシュ２１４を用いるメモリ要求が検出された時に、ＺＺ制御信号がデアサートされ、それから２クロック後に、キャッシュ２１４がそのメモリ要求をサービスすることができる。
【００９０】
キャッシュ２１４のスリープ・モードに関するコンピュータ・システム２００の動作は、図１７の流れ図を参照することによって理解することができる。図１７の流れ図は、コンピュータ・システム２００のＣＰＵ２０２によって実行されるプログラムの、またはＣＰＵ２０２内などのコンピュータ・システム２００に含めることができるハードウェアまたはファームウェア・コントローラ（図示せず）の、制御フローまたは処理１７００を表す。図１７を参照すると、処理１７００は、ブロック１７０２で処理を開始し、ここで、キャッシュ要求が受け取られているかどうかを判定するために検査する。キャッシュ２１４が、現在は要求されていないと仮定すると、処理は、ブロック１７０４に進み、ここで、スリープ・モード制御信号１６０２をアサートし、キャッシュ２１４にスリープ・モードに入らせる。
【００９１】
処理１７００を介する後続のパス中に、キャッシュ要求が受け取られたと仮定する。したがって、ブロック１７０２で、制御がブロック１７０６に転送されて、キャッシュ２１４が現在スリープ・モードであるかどうかが判定される。スリープ・モード制御信号が、前のパス中にブロック１７０４でアサートされたので、制御はブロック１７０８に転送され、ここで、スリープ・モード制御信号１６０２をデアサートし、キャッシュ２１４にスリープ・モードから覚醒させる。しかし、キャッシュ２１４は、キャッシュ要求をサービスできるようになる前に、ウェイク・アップ・シーケンスを完了するために適当な時間を必要とする。したがって、ブロック１７１０で、２クロック・サイクルの遅延を挿入し、その後、ブロック１７１２で、キャッシュ要求をサービスのためにキャッシュ２１４に送る。
【００９２】
追加のキャッシュ要求が、処理１７００を介する後続パス中に受け取られたと仮定すると、ブロック１７０２で、もう一度制御がブロック１７０６に渡され、ブロック１７０６では、キャッシュ２１４が現在はスリープ・モードでないことが認識され、したがって、制御がブロック１７１２に渡され、ここで、キャッシュ要求を即座にサービスすることができる。処理１７００を介する後続のパス中に、キャッシュ要求が保留中でない場合に、ブロック１７０４で、キャッシュ２１４に、もう一度スリープ・モードに入るように指示することができる。処理１７００は、継続的に繰り返され、その結果、キャッシュ２１４を、各キャッシュ要求の間またはキャッシュ要求の各グループの間に、スリープ・モードにすることができる。
【００９３】
図１５から１７に関して上で説明した処理および装置を使用して、コンピュータ・システム２００の電力消費を減らすことができる。この電力消費の削減は、上で説明した動作モードのすべてで電力消費をさらに減らすのに有効である可能性がある。すなわち、コンピュータ・システム２００の通常モード、低電力モード、またはアイドル・モード中に、キャッシュ要求の間にスリープ・モードに入るようにキャッシュ２１４に指示することができる。
【００９４】
図１８に移ると、電源１８００が選択的に制御されて、変化するレベルの電流または電力を供給するシステムが示されている。すなわち、電源１８００は、コンピュータ・システム２００の動作特性に従って、選択的に複数の電力レベルで動作することができる。たとえば、時々、コンピュータ・システム２００が、多数のリソースを使用し、したがってかなりの電力を必要とするタスクを処理している場合がある。しかし、他の時には、コンピュータ・システム２００は、アイドルであるか、コンピュータ・システム２００のリソースを少しだけ使用する、または全く使用しない処理を実行していることがあり、したがって、実質的に必要とする電力が少なくなる。本発明の特徴を有しない電源は、同一のモードで動作を継続し、コンピュータ・システム２００が現在使用している量の電力を必要としない可能性があるという事実にもかかわらず、同一の量の電力を使用している可能性がある。この過剰な電力は、電力の無用な消費、コンピュータ・システム２００の構成要素の望ましくない付随する発熱、および、電池動作デバスの場合に電池の再充電の間の有用な寿命の減少をもたらす。
【００９５】
本発明の一実施形態では、電源１８００が、たとえばソフトウェア制御の下で動作するＣＰＵ２０２から、信号線１８０２を介して制御信号を受け取るように適合される。制御信号を、その代わりに、ハードウェア・コントローラ（図示せず）またはハードウェアとソフトウェアの両方を使用するファームウェア・コントローラによって生成できることを、当業者は理解するであろう。一般に、ＣＰＵ２０４は、制御信号を生成して、電源１８０２に複数の動作モードの１つに切り替えさせ、この動作モードのそれぞれで、電源が、たとえば電線１８０４を介してＣＰＵ２０２に事前に選択されたレベルの電力を渡せるようになる。すなわち、ＣＰＵ２０２が、減らされたレベルの電力消費を必要とする動作のモードであるものとしてコンピュータ・システム２００を識別する時に、ＣＰＵ２０２は、信号線１８０２を介して電源１８００に制御信号を送って、電源１８００に、減らされたけれどもまだ満足なレベルの電力が電線１８０４上で電源１８００から使用可能である動作のモードに入らせることができる。
【００９６】
一実施形態では、電源１８００が、３つのレベルの電力を供給できる３つの別個の動作モードを有する。もちろん、電力のレベルの数は、設計判断の問題であり、これは、各特定の実施形態のパラメータの関数である。電力のレベルの数は、本発明の趣旨および範囲から逸脱せずに、本明細書に記載の実施形態から変更することができる。
【００９７】
図１９に移ると、コントローラ１９１０とインターフェースする、電力モジュールＡ１９０４、電力モジュールＢ１９０６、および電力モジュールＣ１９０８からなる電源１８００が図示されている。電力モジュール１９０４、１９０６、および１９０８は、その出力線が電線１８０４に結合され、その結果、その電力引渡能力が加算される。すなわち、電力モジュール１９０４、１９０６、および１９０８のそれぞれが、１Ｗの電力を供給できると仮定する。したがって、３つの電力モジュール１９０４、１９０６、および１９０８のすべてが動作していると、電源１８００は、３Ｗの電力を送ることができる。同様に、電力モジュール１９０４および１９０６など、電力モジュールのうちの２つが動作している時には、電源１８００は、２Ｗの電力を送ることができる。同様に、電力モジュール１９０４など、電力モジュールのうちの１つだけが動作している時には、電源１８００は、１Ｗの電力を送ることができる。
【００９８】
コントローラ１９１０は、電力モジュール１９０４、１９０６、および１９０８を選択的にイネーブル／ディスエーブルして、電源１８００が、ＣＰＵ２０２によって要求されるレベルの電力を使用可能にすることができるようにする。たとえば、ＣＰＵ２０２が、電源１８００から２Ｗの電力だけを使用する必要があることを検出した場合に、ＣＰＵ２０２は、コントローラ１９１０に、電源１８００から２Ｗの電力を使用できるように求める要求を送る。コントローラ１９１０は、要求を受け取り、電力モジュール１９０８など、電力モジュールのうちの１つをディスエーブルする。したがって、電力モジュール１９０４および１９０６がイネーブルされて、要求された２Ｗの電力を加算的に使用可能にする。
【００９９】
電力モジュール１９０４、１９０６、および１９０８のイネーブル／ディスエーブルに有用な回路の様式化されたブロック図が、電力モジュール１９０４に関して図２０にブロック図形式で様式的に示されている。電力モジュール１９０４、１９０６、および１９０８内のイネーブル／ディスエーブルを行う回路の構成および動作を、実質的に類似するものとすることができ、したがって、本明細書で繰り返す必要がないことを、当業者は理解するであろう。
【０１００】
一般に、パワー電界効果トランジスタ（ＦＥＴ）２０００が、電源Ｖｃｃと電線１８０４の間に配置される。ＦＥＴ２０００のオン／オフ時間を制御して、所望の電圧を作り、電線１８０４で所望の電流を使用可能にする。パルス幅変調（ＰＷＭ）信号が、コントローラ１９１０から信号線２００４を介してパワーＦＥＴ２０００のゲートに渡される。ＡＮＤゲート２００２および信号線２００６を介して渡されるイネーブル信号が、ＰＷＭ信号がパワーＦＥＴ２０００のゲートに達するのを選択的にブロックすることによって、電力モジュール１９０４を交互にイネーブルし、ディスエーブルするのに使用される。ＰＷＭ信号がブロックされていると、パワーＦＥＴはオフにバイアスされたままになり、電流または電圧が、そこから電線１８０４に渡されなくなる。
【０１０１】
一実施形態では、ＣＰＵ２０２が、３つの動作モードの間の推移を用いて３つの電力レベルの間の切替を調整する。たとえば、動作の通常モードでは、ＣＰＵ２０２が、コントローラ１９１０に要求を送って、電源１８００のすべての電力を使用可能にする。したがって、コントローラ１９１０は、３つの電力モジュール１９０４、１９０６、および１９０８のすべてをイネーブルする。同様に、動作の低電力モード中に、ＣＰＵ２０２は、コントローラ１９１０に要求を送って、電源１８００の電力の一部だけを使用可能にする。したがって、コントローラ１９１０は、電力モジュール１９０４および１９０６など、電力モジュールのうちの２つだけをイネーブルする。最後に、動作のアイドル・モード中に、ＣＰＵ２０２は、コントローラ１９１０に要求を送って、電源１８００の電力をさらに減らす。したがって、コントローラ１９１０は、電力モジュール１９０４など、電力モジュールのうちの１つだけをイネーブルする。
【０１０２】
ＣＰＵ２０２は、レジスタ２２０の内容および上で図４に関して説明したハンドシェーク信号の状況に基づいて、動作のモードを「知る」。したがって、ＣＰＵ２０２は、電源１８００の電力レベルの間の推移のタイミングを調整することができる。
【０１０３】
代替実施形態では、電力レベルを、３つに制限する必要がなく、コンピュータ・システム２００の動作モードに関連付ける必要がない。さらに、電力モジュール１９０４、１９０６、および１９０８が、同一のレベルの電力を供給できる必要がない。たとえば、電力モジュール１９０４、１９０６、および１９０８が、それぞれ２Ｗ、１Ｗ、および０．５Ｗを供給できると仮定する。電力モジュール１９０４、１９０６、および１９０８を選択的にイネーブル／ディスエーブルすることによって、電源１８００が、０．５Ｗから３．５Ｗの間で変化する７レベルの電力を作ることができる。これらの電力レベルは、下の表ＩＩに示されたパターンに従って電力モジュール１９０４、１９０６、および１９０８をイネーブル／ディスエーブルすることによって作ることができる。
【０１０４】
【表２】
2004528613.tif 000003
【０１０５】
電力モジュールの数および／または各モジュールによって作られる電力レベルを変更することによって、さまざまなレベルの電力を使用可能にすることができることを、当業者は理解するであろう。これらのレベルの数および大きさは、設計判断の問題であり、これは、各特定の実施形態のパラメータの関数である。電力のレベルの数およびそれらの間の変動の大きさは、本発明の趣旨および範囲から逸脱せずに、本明細書に記載の例示的実施形態から変更することができる。
【０１０６】
コンピュータ・システム２００が、動作の通常モード、低電力モード、およびアイドル・モードの間で移動する時に、コンピュータ・システム２００によって消費される電力の量はかなり変化する。これらの電力の変動は、コンピュータ・システム２００によって生成される熱の量の変動も生む。したがって、コンピュータ・システム２００の構成要素２０２は、コンピュータ・システムが動作のモードの間で切り替えるたびに、かなりの温度サイクルを受ける可能性がある。
【０１０７】
構成要素２０２は、さまざまな材料から構成され、これらの材料は、異なる熱膨張係数を有し、したがって、温度変化に対して異なる形で応答する。すなわち、材料のなかには、加熱された時にかなり膨張するものと、最小限の影響を受けるものがある。どの場合でも、構成要素２０２を構成する材料の一部が、他の材料より大きいまたは異なる比率で膨張し、それらの間に相対的な移動が生じる。この、構成要素２０２を構成する材料の相対移動が、構成要素２０２にかなりの機械的応力を与える可能性がある。経時的にこれらの応力に繰り返しさらされることによって、構成要素２０２に物理的な損傷が生じ、最終的に性能の低下または、最悪の場合に、故障につながる。
【０１０８】
いくつかの動作環境で、コンピュータ・システム２００が、アクティビティの頻繁に繰り返される変動をこうむる場合がある。したがって、コンピュータ・システム２００が、通常動作モード、低電力動作モード、およびアイドル動作モードの間の移動を頻繁に要求される可能性がある。これらの頻繁な変更は、コンピュータ・システムに、加熱と冷却を繰り返させる可能性がある。たとえば、比較的激しいアクティビティの期間中に、コンピュータ・システムは、通常動作モードに移り、最高クロック周波数で動作する可能性がある。この動作の通常モードへの移動中に、構成要素２０２が、より多くの熱を生じ、それ相応に膨張する。その後、より少ないアクティビティの期間に、コンピュータ・システム２００が、動作の低電力モードに入るようにされ、これによって、電力の消費が減り、生じる熱が減り、構成要素２０２が、冷えることができ、材料のサイズの収縮が生じる。相対的にインアクティブな期間が持続する場合には、コンピュータ・システム２００が、動作のアイドル・モードに入ることを要求される可能性があり、構成要素２０２がさらに冷える。動作環境に応じて、これらの推移が、比較的長い時間の間にわたってしばしば発生する可能性があり、繰り返される温度サイクルおよび付随する機械的応力が生じる。
【０１０９】
本発明の一実施形態では、温度サイクリングを制御して、構成要素２０２に誘導される機械的応力を減らす。すなわち、ソフトウェア制御の下で動作するＣＰＵ２０４が、コンピュータ・システム２００が動作の通常モード、低電力モード、およびアイドル・モードの間で推移することを許可される割合を制限することができる。コンピュータ・システム２００がさまざまなモードの間で推移することを許可される割合の制御は、さまざまな方式で実施することができる。
【０１１０】
たとえば、コンピュータ・システム２００に、事前に選択された時間の間の間、特定の動作モードにとどまることを要求することができる。すなわち、コンピュータ・システム２００が、動作の通常モードに移ったならば、コンピュータ・システム２００に、３０分など、事前に選択された時間にわたってそのモードにとどまることを要求することができる。類似する制限を、動作の低電力モードから動作のアイドル・モードへの移動に対して設けることができる。この制御戦略は、推移を制御して、短い持続時間の温度スパイクを回避することによって温度サイクリングを減らすのに有効であるとわかるであろう。さらに、コンピュータ・システム２００を、動作のより高いモードに保持することによって、推移の数を減らすことができる。すなわち、コンピュータ・システム２００が、動作の低電力モードまたはアイドル・モードにサイクル・ダウンすることを許可されるのではなく、動作の通常モードに保持されている場合に、後続の高いアクティビティの期間に、コンピュータ・システム２００が通常動作モードに戻る必要がなくなる。
【０１１１】
代替実施形態では、コンピュータ・システム２００を、事前に選択された時間内に事前に選択された推移の回数に制限することができる。たとえば、コンピュータ・システム２００を、４時間の間に２０回の推移までに制限することができる。したがって、コンピュータ・システム２００の周期的なアクティビティが、事前に選択された時間の最初の部分の間に動作の通常モード、低電力モード、およびアイドル・モードの間の比較的すばやい推移を引き起こす場合があるが、限度に達した後は、事前に選択された時間が満了するまで、さらなる推移が許可されない。
【０１１２】
もう１つの実施形態では、コンピュータ・システム２００が、アクティビティ・パターンを「学習」することができる。すなわち、コンピュータ・システム２００が、毎日ほぼ同一の時刻に同一のタイプのアクティビティを経験する場合がある。したがって、コンピュータ・システム２００は、月曜から金曜までの午後３時から５時までなど、事前に選択された時間中に、比較的激しいが周期的な使用を経験することを「知る」場合に、コンピュータ・システム２００を動作の通常モードにより長く保持して、サイクルの数を減らすことができる。逆に、コンピュータ・システム２００が、夜間および週末など、軽い使用の長い期間を経験することを「知る」場合に、コンピュータ・システム２００が、比較的短い期間の減らされたアクティビティの後に、動作のアイドル・モードに移ることを許可されるようにすることができる。その一方で、コンピュータ・システム２００が、アクティビティの短い持続時間だけ適度から激しいまでのアクティビティを過去に見、動作のアイドル・モードへの移動が保証される時の期間中には、コンピュータ・システム２００を、動作のアイドル・モード以外に保持して、温度サイクリングを減らすことができる。
【０１１３】
本発明の一実施形態では、ソフトウェア制御の下で動作するコンピュータ・システム２００が、要求された推移のタイプ、推移が要求された時の時刻、およびコンピュータ・システム２００が動作の各モードにとどまった持続期間を記録することができる。この記録は、継続的にまたは選択された間隔で行うことができる。たとえば、コンピュータ・システム２００が、このタイプの情報を、１時間ごと、１日ごと、１週間ごと、１カ月ごとなどの基準で追跡し、記録することができる。記録された情報を、周期的に分析して、周期的アクティビティの期間、低いアクティビティの期間、長い高アクティビティの期間などのアクティビティ傾向を識別することができる。その後、これらの識別された傾向を使用して、コンピュータ・システム２００が通常動作モード、低電力動作モード、およびアイドル動作モードの間で推移することを許可される割合を修正することができる。
【０１１４】
上で述べた制御方式の１つを実行するためにＣＰＵ２０４で実行することができる処理の例示的流れ図を図２１に示す。この処理は、ブロック２１００で開始され、ＢＢＣ２１６が動作モードの間での推移を要求する。ブロック２１０２で、タイマを検査して、事前に選択された時間の持続期間が過ぎたかどうかを判定する。タイマから、事前に選択された時間が経過したことが示される場合には、ブロック２１０４で、タイマおよびソフトウェア・カウンタをリセットする。ブロック２１０６で、カウンタを増分するが、このカウンタは、タイマによって定義される事前に選択された時間中に発生する推移の数を記憶するのに使用される。ブロック２１０８で、カウンタの値を事前に選択された数と比較する。カウンタの値が、事前に選択された数未満である場合には、制御がブロック２１１０に転送され、推移の進行が許可される。その一方で、カウンタの値が、事前に選択された数を超える場合には、処理はブロック２１１２に進み、要求された推移が進行を許可されず、コンピュータ・システム２００に、現在の動作モードにとどまらせる。
【０１１５】
上で開示した特定の実施形態は例示にすぎない。というのは、本明細書の教示の利益を有する当業者に明白な、異なるが同等の形で本発明を修正し、実践することができるからである。さらに、請求項に記載されたもの以外の、本明細書に記載の構成または設計の詳細に対する制限は意図されていない。したがって、上で開示された特定の実施形態を、変更または修正することができ、そのような変形形態が、本発明の趣旨および範囲に含まれるとみなされることは明白である。具体的に言うと、本明細書に開示された値の範囲のすべて（「約ａから約ｂまで」の形、または、同等に「おおむねａからｂまで」、または、同等に「おおむねａ〜ｂ」の形の）は、ゲオルグ・カントールの意味での、値のめいめいの範囲のべき集合（すべての部分集合の集合）を指すものとして理解されなければならない。したがって、本明細書で追求される保護は、請求項に示された通りである。したがって、本明細書で追求される保護は、請求項に示された通りである。
【図面の簡単な説明】
【図１】
本発明の１つまたは複数の態様を有利に使用することができるコンピュータ・システムの様式化された図である。
【図２】
図１のコンピュータ・システムの最上位ブロック図を示す概略図である。
【図３】
図１のコンピュータ・システムのさまざまな構成要素内で実施されるレジスタを示す概略図である。
【図４】
コンピュータ・システムのさまざまな構成要素に動作のさまざまな電力節約モードの間で切り返させる、図１および２のコンピュータ・システムによって使用されるさまざまなハンドシェーク信号のタイミング図である。
【図５】
本発明の一態様による位相ロック・ループ（ＰＬＬ）コントローラのブロック図である。
【図６】
図５のＰＬＬコントローラで使用されるさまざまな信号のタイミング図である。
【図７】
図５のＰＬＬコントローラの一実施形態のブロック図である。
【図８】
図７のＰＬＬコントローラで使用されるさまざまな信号のタイミング図である。
【図９】
図２のコンピュータ・システムのメモリとＣＰＵの間のインターフェースのブロック図である。
【図１０】
図２および９のメモリの制御回路およびＰＬＬ回路のブロック図である。
【図１１】
図２および９のＣＰＵによって実行することができる制御シーケンスの流れ図である。
【図１２】
図１０の制御回路およびＰＬＬ回路で使用されるさまざまな信号のタイミング図である。
【図１３】
図２のコンピュータ・システム内のシステム・バスおよびバス・コントローラのブロック図である。
【図１４】
図１３のシステム・バスを制御する際に使用されるさまざまな信号のタイミング図である。
【図１５】
図２のコンピュータ・システムのキャッシュとＣＰＵの間のインターフェースのブロック図である。
【図１６】
図２および１５のキャッシュとＣＰＵの動作を調整するのに使用されるさまざまな信号のタイミング図である。
【図１７】
キャッシュの動作を制御するために図２および１５のＣＰＵによって実行することができる制御シーケンスの流れ図である。
【図１８】
図２のコンピュータ・システムの電源とＣＰＵの間のインターフェースのブロック図である。
【図１９】
図１８の電源のブロック図である。
【図２０】
図１８および１９の電源の電力モジュールのブロック図である。
【図２１】
温度サイクリングの影響を減らすために図２のＣＰＵによって実行することができる制御シーケンスの流れ図である。
【図１】
2004528613.tif 000004
【図２】
2004528613.tif 000005
【図５】
2004528613.tif 000006
【図７】
2004528613.tif 000007
【図９】
2004528613.tif 000008
【図１１】
2004528613.tif 000009
【図１３】
2004528613.tif 000010
【図１５】
2004528613.tif 000011
【図１６】
2004528613.tif 000012
【図１７】
2004528613.tif 000013
【図１８】
2004528613.tif 000014
【図１９】
2004528613.tif 000015
【図２０】
2004528613.tif 000016
【図２１】
2004528613.tif 000017
【国際公開パンフレット】
2004528613.tif 000018
2004528613.tif 000019
2004528613.tif 000020
2004528613.tif 000021
2004528613.tif 000022
2004528613.tif 000023
2004528613.tif 000024
2004528613.tif 000025
2004528613.tif 000026
2004528613.tif 000027
2004528613.tif 000028
2004528613.tif 000029
2004528613.tif 000030
2004528613.tif 000031
2004528613.tif 000032
2004528613.tif 000033
2004528613.tif 000034
2004528613.tif 000035
2004528613.tif 000036
2004528613.tif 000037
2004528613.tif 000038
2004528613.tif 000039
2004528613.tif 000040
2004528613.tif 000041
2004528613.tif 000042
2004528613.tif 000043
2004528613.tif 000044
2004528613.tif 000045
2004528613.tif 000046
2004528613.tif 000047
2004528613.tif 000048
2004528613.tif 000049
2004528613.tif 000050
2004528613.tif 000051
2004528613.tif 000052
2004528613.tif 000053
2004528613.tif 000054
2004528613.tif 000055
2004528613.tif 000056
2004528613.tif 000057
2004528613.tif 000058
2004528613.tif 000059
2004528613.tif 000060
2004528613.tif 000061
2004528613.tif 000062
2004528613.tif 000063
2004528613.tif 000064
2004528613.tif 000065
2004528613.tif 000066
2004528613.tif 000067
2004528613.tif 000068
2004528613.tif 000069
2004528613.tif 000070
2004528613.tif 000071
2004528613.tif 000072
2004528613.tif 000073
2004528613.tif 000074
2004528613.tif 000075
2004528613.tif 000076
2004528613.tif 000077
2004528613.tif 000078
2004528613.tif 000079
2004528613.tif 000080
2004528613.tif 000081
2004528613.tif 000082
2004528613.tif 000083
2004528613.tif 000084
2004528613.tif 000085
2004528613.tif 000086
2004528613.tif 000087
2004528613.tif 000088
2004528613.tif 000089
2004528613.tif 000090
2004528613.tif 000091
2004528613.tif 000092
2004528613.tif 000093
2004528613.tif 000094