JP2004528613A - 電力消費を減らす方法および装置 - Google Patents
電力消費を減らす方法および装置 Download PDFInfo
- Publication number
- JP2004528613A JP2004528613A JP2002530965A JP2002530965A JP2004528613A JP 2004528613 A JP2004528613 A JP 2004528613A JP 2002530965 A JP2002530965 A JP 2002530965A JP 2002530965 A JP2002530965 A JP 2002530965A JP 2004528613 A JP2004528613 A JP 2004528613A
- Authority
- JP
- Japan
- Prior art keywords
- signal
- clock
- mode
- clock signal
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000007704 transition Effects 0.000 claims abstract description 56
- 230000008859 change Effects 0.000 claims abstract description 23
- 238000004891 communication Methods 0.000 claims abstract description 12
- 230000015654 memory Effects 0.000 claims description 91
- 230000001360 synchronised effect Effects 0.000 claims description 21
- 230000004044 response Effects 0.000 claims description 11
- 238000012790 confirmation Methods 0.000 claims description 2
- 238000012544 monitoring process Methods 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 30
- 230000003111 delayed effect Effects 0.000 description 22
- 230000008569 process Effects 0.000 description 20
- 230000000694 effects Effects 0.000 description 19
- 238000012545 processing Methods 0.000 description 12
- 238000012546 transfer Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 239000000463 material Substances 0.000 description 6
- 230000001351 cycling effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 230000002411 adverse Effects 0.000 description 3
- 230000000737 periodic effect Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000001816 cooling Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000010438 heat treatment Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011217 control strategy Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013551 empirical research Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 239000002803 fossil fuel Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000005382 thermal cycling Methods 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/08—Clock generators with changeable or programmable clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/16—Constructional details or arrangements
- G06F1/20—Cooling means
- G06F1/206—Cooling means comprising thermal management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Power Sources (AREA)
- Control Of Temperature (AREA)
- Diaphragms For Electromechanical Transducers (AREA)
- Mobile Radio Communication Systems (AREA)
- Transceivers (AREA)
- Communication Control (AREA)
Abstract
電気的に一緒に結合され、互いに通信する第1および第2の構成要素での第1クロック周波数信号と第2クロック周波数信号の間の推移を制御する方法が提供される。この方法には、第1構成要素と第2構成要素の間での通信を停止させるフリーズ信号のアサートが含まれる。その後、フリーズ確認信号が、第1構成要素および第2構成要素から受け取られ、それらの間の通信が停止したことが示される。変更信号が、第1構成要素および第2構成要素に渡されて、これらの構成要素に、第1クロック周波数信号と第2クロック周波数信号の間で切り替えさせる。
Description
【0001】
(1.発明の分野)
本発明は、全般的には電子デバイスの低電力動作モードに関し、より詳細には、動作の複数の電力節約モードの間の推移の方法および装置に関する。
【0002】
(2.関連技術の説明)
さまざまな理由から、電力消費は、コンピュータ・システムなど電子デバイスにとってますます重要な問題になってきた。まず、米国は、電力消費または電力節約に関する複数の法令を公布した。さらに、ノート型コンピュータなど多数の電子デバイスはバッテリから電力を得るので、電力消費の削減により、かなりの長時間使用がもたらされ、これらの電子デバイスを万能かつ有用にする。さらに、電力消費は、電子デバイスが発生する熱の量に関係する。電力消費の削減によって、生成される熱量が減り、したがって、ヒート・シンク、ファン、および電子デバイスの冷却を助けるのに使用される他の構造のサイズおよび複雑さが減る。したがって、電力消費の削減によって、冷却構造の除去または縮小によってコストを削減することができる。さらに、熱放出の低減は、一般に、電子構成要素をより密にパッケージ化でき、より小さくコンパクトなパッケージに通じることを意味する。さらに、電力消費の削減により、化石燃料の使用およびそれに付随する汚染が減るので、環境に優しい。
【0003】
したがって、電子産業は、さまざまな電力節約方式を開発してきた。コンピュータ・システムおよび他の電子デバイスは、異なる技法を使用して実施される動作の低電力モードを持っていることが多い。これらの低電力モードは、主に、ほとんどのコンピュータ・システムが、常に最大能力で動作しているのではなく、いつも本質的にアイドルである時間を有するという事実を利用したものである。一部のコンピュータ・システムでは、これらのアイドル期間中にシステム内で使用されるある構成要素によって消費される電力を減らすことによって電力を削減している。たとえば、多くのコンピュータ・システムが、かなりの電力を消費するモニタを使用する。したがって、低電力モード中に、システムが、モニタをオフにすることができる。同様に、ハード・ディスク・ドライブ、コンパクト・ディスク(CD)プレイヤ、ランダム・アクセス・メモリ(RAM)、および類似物などの他の構成要素も、オフにすることができる。現在使用されていない周辺デバイスから電力を除去することによって、かなりの電力節約を達成することができる。しかし、周辺デバイスの電源が切られているコンピュータ・システムをユーザが操作しようとする時に、コンピュータ・システムが周辺機器への電力を復元し、ユーザの要求に応答し始めることができるようになる前に、かなりの遅延が発生する。したがって、多くのユーザは、これらの遅延を避けるために、これらのタイプの低電力動作モードを迂回するか、他の形で使用不能にする。
【0004】
他の電力節約方式では、コンピュータ・システムで使用される構成要素に供給されるクロック信号の周波数を下げる。他のすべての要因が同一であるならば、クロック周波数を下げることによって、一般に、それに比例して電力消費が減る。したがって、いくつかのシステムでは、半分以上など、かなりの率でクロック周波数を下げて、かなりの電力節約を達成している。しかし、通常は、コンピュータ・システム内のさまざまなサブシステムが、正しい動作を保証するために全体的に同期されたクロック信号を有していなければならない。この同期化は、一般に、位相ロック・ループ(PLL)回路を使用して達成される。しかし、PLL回路では、全体的に同期したクロック信号を確実に維持できる十分な速度および精度で動作する周波数範囲は有限である。したがって、クロック周波数が、半分以下など、劇的に変更される場合に、PLLが、限界でまたは誤って動作する可能性がある。PLLの誤った動作は、コンピュータ・システム全体の不安定な動作をもたらし、システムのクラッシュまたはロックアップを引き起こす。したがって、通常モードから低電力モードへまたはその逆の推移中に、システムが障害を発生する可能性があり、やはり、電力節約機能をディスエーブルするようにユーザを促す。
【0005】
本発明は、上で示した問題の1つまたは複数を克服すること、または少なくとも影響を減らすことを対象とする。
【0006】
(発明の概要)
本発明の一態様では、電気的に一緒に結合され、互いに通信する第1および第2の構成要素での第1クロック周波数信号と第2クロック周波数信号の間の推移を制御する方法が提供される。この方法には、第1構成要素と第2構成要素の間での通信を停止させるフリーズ信号のアサートが含まれる。その後、フリーズ確認信号が、第1構成要素および第2構成要素から受け取られ、それらの間の通信が停止したことが示される。第1構成要素および第2構成要素に変更信号が送られ、これらの構成要素が第1クロック周波数信号と第2クロック周波数信号の間で切り替える。
【0007】
本発明のもう1つの態様では、第1クロック周波数信号と第2クロック周波数信号の間での推移を制御する装置が提供される。この装置は、第1構成要素、第2構成要素、およびコントローラを備えている。第1構成要素は、フリーズ信号を受け取ることと、第1構成要素からの通信が停止した後に確認信号を送ることができる。第2構成要素は、フリーズ信号を受け取ることと、第2構成要素からの通信が停止した後に確認信号を送ることができる。コントローラは、第1および第2の構成要素にそれらの間での通信を停止することを要求するフリーズ信号を送ることと、第1および第2の構成要素からの確認信号の受け取りに応答して第1クロック信号と第2クロック信号の間で推移することができる。
【0008】
本発明は、添付図面と共に以下の詳細な説明を参照することによって理解することができるが、図面では、符号の左端の数字が、めいめいの符号が最初に現れる図面を示す。
【0009】
本発明は、さまざまな修正形態および代替形態を許すが、本発明の特定の実施形態を、例として図面に示し、本明細書で詳細に説明する。しかし、特定の実施形態の本明細書での説明が、開示される特定の形態に本発明を制限することを意図されたものではなく、逆に、その意図が、請求項によって定義される本発明の趣旨および範囲に含まれるすべての修正形態、同等物、および代替形態を含むことであることを理解されたい。
【0010】
(特定の実施形態の詳細な説明)
本発明の例示的実施形態を、下で説明する。説明をわかりやすくするために、本明細書では、実際の実施形態のすべての特徴を説明はしない。もちろん、そのような実際の実施形態の開発において、システム関連およびビジネス関連の制約への準拠など、実施形態ごとに異なる開発者の特定の目標を達成するために、多数の実装固有の判断を行わなければならないことを理解されたい。さらに、そのような開発労力が、複雑であり、時間がかかる可能性があるが、それでも、この開示の利益を有する当業者の日常の仕事であることを理解されたい。
【0011】
本発明による動作の複数レベル低電力モードを提供する方法および装置の例示的実施形態を、図1から21に示す。本明細書を完全に読めば当業者に容易に明らかになるように、発明的方法および装置は、本明細書に例示される実施形態以外のさまざまなコンピュータ・システムに適用可能であり、さらに、論理デバイス、メモリ・デバイス、および類似物を含むがこれに制限されない、コンピュータ以外の電子デバイスに適用可能である。
【0012】
図1に移ると、本発明の1つまたは複数の態様を有利に使用することができるコンピュータ・システム100の様式化された図が示されている。一般に、コンピュータ・システム100は、第1および第2の中央処理装置(CPU)104および106と、第1および第2のキャッシュ108および110と、メモリ112と、入出力(I/O)114と、他の雑構成要素116などの例示的な構成要素102からなる。これらの構成要素102は、アーキテクチャ118を介して互いに結合され、アーキテクチャ118を用いると、構成要素102が、互いに、および潜在的に、他のコンピュータ・システム、プリンタ、スキャナなどの、他の外部デバイス(図示せず)と効率的に通信できる。
【0013】
通常動作中に、構成要素102のそれぞれが、事前に選択された割合で電力を引き出しながら、事前に選択されたクロック周波数で動作する。この通常動作中に、コンピュータ・システム100は、一般に、構成要素102によって代表されるコンピュータ・システム100のリソースを使用して、要求されるすべての作業を実行するように完全に電力を供給され、準備される。すなわち、通常動作中に、構成要素102は、設計された最大限の、低下していない能力に対応するモードで動作している。構成要素102は、アイドルまたは全力での動作の間のある速度で有用な作業を行っているかもしれないが、それでも、設計された最大の低下していない能力で有用な作業を実行するのに十分な電圧、電流、およびクロック周波数を供給されている。
【0014】
したがって、コンピュータ・システム100は、その構成要素102を、その最大能力より低い速度で有用な作業を実行させることがありえる。これらの利用限界以下の期間中に、コンピュータ・システム100が、現在割り当てられている作業を、より低いクロック周波数および/またはより少ない電力で、悪影響なしに実行できる可能性がある。さらに、コンピュータ・システム100が、本質的にアイドルであり、ほとんどまたは全く有用な作業を行っていない時もあるであろう。これらのアイドル期間中に、悪影響なしに、コンピュータ・システム100のクロック周波数および/または電力消費をさらに削減することができる可能性がある。
【0015】
したがって、本発明の少なくとも1つの態様によれば、コンピュータ・システム100が、少なくとも3つの動作のモードすなわち、通常モード、低電力モード、およびアイドル・モードを有する。低電力モード中に、より低い速度、電力、または機能ではあるがコンピュータ・システム100を動作状態に保つことができる範囲で、コンピュータの少なくとも一部に供給されるクロック周波数をかなりの率減らすことができる。1つの例示的実施形態では、クロック周波数を約半分だけ減らすことができる。クロック信号を減らす率が、設計選択の問題であり、本発明の趣旨および範囲から逸脱せずに、半分という例示的な率から大幅に変更できることを当業者は理解するであろう。
【0016】
その後、コンピュータ・システム100の全機能が要求される場合に、クロック周波数をすばやく完全な値に復元して、コンピュータ・システム100の全機能を復元することができる。その一方で、コンピュータ・システム100の負荷が、たとえば実質的にアイドルまでさらに低下する場合に、構成要素102の少なくとも一部に印加されるクロック周波数をさらに減らすことによって、アイドル・モードを実施することができる。このクロック周波数のさらなる減少によって、コンピュータ・システム100を、かなり低下してはいるが動作状態に保ちながら、コンピュータ・システム100が消費する電力をさらに減らすことができる。この動作のアイドル・モードでは、コンピュータ・システム100はアクティブであり、キーボード、マウス、または他のポインティング・デバイス(図示せず)によるオペレータ対話などの要求に応答できるままである。さらに、一部のコンピュータ・システム100を、コンピュータ・システム100との通信を周期的に試みるネットワーク(図示せず)に結合することができる。コンピュータ・システム100は、クロック周波数を適当なレベルに復元することによってコンピュータ・システム100を低電力モードまたは通常モードに戻すか、動作のアイドル・モードにとどまりながら要求を処理することを選択することによって、このタイプの要求に応答するようにプログラムまたはハードワイヤリングすることができる。
【0017】
一実施形態では、クロック周波数が、通常モード周波数の約1/32に減らされる。しかし、クロック信号を減らす率が、設計選択の問題であり、本発明の趣旨および範囲から逸脱せずに、1/32という例示的な率から大幅に変更できることを、当業者は理解するであろう。
【0018】
通常、低電力、およびアイドルの動作モードの間で推移する時を判定する際に、さまざまな要因を考慮することができる。たとえば、コンピュータ・システム100が、構成要素102の使用状況を監視することができる。すなわち、構成要素102の使用状況が、事前に選択された時間の長さにわたって事前に選択されたレベル未満に落ちる時に、コンピュータ・システム100が、低電力動作モードまたはアイドル動作モードへの移動を選択することができる。使用状況は、最後にアクセスされた時からの時間、現在消費されているリソースの量、事前に選択された時間の持続期間にわたって使用されるリソースの平均量、および類似物など、さまざまな従来の技法のどれを使用しても測定することができる。
【0019】
構成要素102は、すべてが同一のクロック周波数で動作することに制限されない。実際に、コンピュータ・システム100は、一般に、通常動作中にクロック周波数の分数成分で動作する構成要素102を有する。たとえば、メモリ112は、しばしば、CPU104および106が動作する速度の分数で動作する。高速CPUと同一の速度で動作することができる半導体メモリは、高価であり、したがって、比較的大きいメモリ112を構成するのに通常は使用されず、一般に、かなり小さいキャッシュ108および110を構成するのに使用される。同様に、アーキテクチャ118の例示的実施形態で使用されるいくつかのバスは、通常動作中にクロック周波数の分数成分で動作することができる。したがって、これらのバスに結合される構成要素102も、通常動作中に、減らされたクロック周波数で動作することができる。いくつかの実施形態で、これらのバスおよび構成要素102の少なくとも一部に供給されるクロック周波数を、比例して減らすことが有用である場合がある。その一方で、低電力モードまたはアイドル・モードに入る時に、バスおよび構成要素102の選択された1つのクロック周波数を維持することが有用である場合がある。本発明の一態様では、さまざまなバスおよび構成要素102のクロック周波数を、望みに応じて独立に変更できるようにする方法および装置が提供される。
【0020】
したがって、通常は、コンピュータ・システム100全体にわたって同一の周波数を使用しているわけではないが、さまざまなクロック周波数は、通常は、位相ロック・ループ(PLL)回路などのデバイスによって同期されることが多い(本発明で使用されるPLLの一実施形態の詳細な議論については、図5から8および付随する説明を参照されたい)。すなわち、CPU104に印加されるクロック信号はI/O 114に印加されるクロック信号と同期され、その結果、さまざまなクロック信号のロウからハイへ(またはハイからロウへ)の推移が、実質的に同期して発生する。
【0021】
さまざまなクロック信号が同期されない場合には、構成要素102の間を移動する信号が壊れる可能性がある。たとえば、メモリ112がCPU104にデータを供給している場合に、メモリ112は、メモリ・クロック信号のロウからハイへの推移から測定される時間の間にそれを行う。CPUクロック信号が、メモリ・クロック信号と正確に同期していないと、CPU104が、メモリ112によって供給されるデータを「探す」のが、遅すぎるか早過ぎる可能性がある。したがって、メモリ112によって供給されるデータが、失われるか、ほかの形で壊れる。
【0022】
したがって、通常モード、低電力モード、およびアイドル・モードの間の推移中に、クロック周波数の変動は構成要素102の間で厳密に調整されなければならない。構成要素102のそれぞれの中に配置されるか他の形で構成要素からアクセス可能なレジスタ120が、少なくとも部分的に、クロック周波数の変動の調整を援助する。さらに、構成要素102の間のハンドシェーク・プロトコルが、さらに、クロック周波数変動の調整を助ける。
【0023】
アーキテクチャ118は、本発明の趣旨および範囲から逸脱せずに、さまざまな形のどれにでもすることができる。本発明のさまざまな態様を例示するために、例示的アーキテクチャでの本発明の実施形態を、図2以降に示す。しかし、本発明は、より広範囲の応用分野を許し、請求項で特に示されない限り、本明細書に示された特定のアーキテクチャ118に制限されると見なしてはならない。
【0024】
図2に、本発明の1つまたは複数の態様を有利に使用することができるコンピュータ・システム200の一実施形態の最上位ブロック図を示す。コンピュータ・システム200に、Sun Microsystemsが販売するUltraSPARC(商標)マイクロプロセッサまたはMicroSPARCマイクロプロセッサなどの中央処理装置(CPU)202および204の対を含めることができる。付随する明細書の利益を有する当業者は、本発明が、単一CPUシステムを含むさまざまなコンピュータ・システムに応用分野を有することを理解するであろう。入出力(I/O)ブリッジ206が、クロスバ・スイッチ210の通常の組を介して複数の周辺デバイス208をCPU202および204にインターフェースする。周辺デバイス208は、クロスバ・スイッチ210を介してメモリ212と通信することもできる。さらに、メモリ212を、1つまたは複数のCPU202および204に直接に結合することができる。1つまたは複数のキャッシュ214を、1つまたは複数のCPU202および204に結合することもできる。
【0025】
コンピュータ・システム200には、ブート・バス・コントローラ(BBC)216が含まれる。このBBC216は、制御信号の生成および構成要素202から214のそれぞれへの分配を含む複数の機能を提供する。さらに、BBC216に、エネルギまたは電力コントローラ218が含まれ、この電力コントローラ218が、通常動作モード、低電力動作モード、およびアイドル動作モードの間の推移中に変化するクロック周波数を調整する。
【0026】
最後に、構成要素202から214のそれぞれが、それ自体を1つのレジスタ220に関連付け、このレジスタ220が、通常動作モード、低電力動作モード、およびアイドル動作モードの間の推移中のクロック周波数の変動の調整を援助する。図3に移ると、レジスタ220の1つの例示的な実施形態が示されている。レジスタ220は、複数のビットを有し、そのうちの2つのビット300および302が、関連する構成要素202が切り替えられるクロック周波数または動作モードの識別に使用される。一実施形態では、ビット300および302によって、下の表Iに示されているように動作モードまたはクロック周波数が識別される。
【0027】
【表1】
【0028】
レジスタ・ビット300および302には、BBC216の電力コントローラ218によって所望の値がセットされる。すなわち、さまざまな動作モードの間の切替の前に、コンピュータ・システム200で動作するソフトウェアが、レジスタ220のそれぞれへの書込動作を実行して、これから行われる動作モードの切替に備えてビット300および302の値に所望のレベルをセットする。たとえば、コンピュータ・システム200が、現在は通常モードで動作しているが、現在は比較的低い負荷がコンピュータ・システム200に課せられており、コンピュータ・システム200を低電力動作モードに切り替えることができると仮定する。CPU202および204の一方または両方によって実行されるソフトウェアが、レジスタ220のビット300および302に2進値01を書き込んで、構成要素202を次の推移中に低電力動作モードに切り替えなければならないことを示す。
【0029】
図示の実施形態では、電力コントローラ218は、ハードウェアとソフトウェアの両方を含む。ハードウェアの少なくとも一部をBBC216に置くことができ、CPU202および204を、本明細書に記載の機能の一部またはすべてを実施するソフトウェアを実行するようにプログラムすることができる。しかし、当業者が理解するように、特定の機能を実施するように設計されたハードウェア回路を使用することもできる。さらに、本明細書に記載のコントローラ218の機能を、地理的に分散されるかされないものとすることができる1つまたは複数の処理ユニットによって実行することができる。本発明および対応する詳細な説明の諸部分は、コンピュータ・メモリ内のデータ・ビットに対する動作を表すソフトウェアまたはアルゴリズムおよび記号表現に関して提示される。これらの記述および表現は、当業者が他の当業者に作業の内容を効率的に伝えるのに用いる記述または表現である。本明細書で使用される用語としての、および一般に使用されるものとしてのアルゴリズムは、所望の結果に導くステップの自己整合的シーケンスと見なされる。これらのステップは、物理的量の物理的操作を必要とするステップである。通常、必ずではないが、これらの量は、保管、転送、組合せ、比較、および他の形の操作を受けることができる、光信号、電気信号、または磁気信号の形をとる。これらの信号を、ビット、値、要素、記号、文字、項、数、または類似物と称することが、時々、主に一般的な使用のために便利であることがわかっている。
【0030】
しかし、これらおよび類似する用語のすべてが、適当な物理量に関連付けられなければならず、これらの量に適用される単に便利な名札であることに留意されたい。特に他の形で述べられない限り、または議論から明白である場合に、「処理」、「コンピューティング」、「計算」、「判定」、「表示」、または類似物などの用語は、コンピュータ・システムまたは類似する電子計算デバイスの動作および処理であって、コンピュータ・システムのレジスタおよびメモリ内の物理的電子量として表現されるデータを操作し、コンピュータ・システムのメモリまたはレジスタあるいは他のそのような情報記憶デバイス、伝送デバイス、または表示デバイス内の物理量として同様に表現される他のデータに変換する動作または処理を指す。
【0031】
コンピュータ・システム200のさまざまな動作モードの間の推移は、図4のタイミング図に全般的に示されたハンドシェーク・プロトコルによって調整される。レジスタ220が正しく構成された後に、電力コントローラ218が、Freeze(フリーズ)信号400をアサートすることによって動作モードの間の推移を開始する。図示の実施形態では、Freeze信号400が、論理ロウ値への推移402によってアサートされるものとして図示されている。しかし、Freeze信号400(および本明細書で述べる他のすべての信号)を、本発明の趣旨および範囲から逸脱せずに、論理ハイ値への推移によってアサートされるものとして簡単に指定できることを当業者は理解するであろう。
【0032】
構成要素202は、Freeze信号400を受け取り、バス・トランザクションなど、構成要素202の間のすべてのトランザクションを延期する処理を開始することによって応答する。構成要素202のそれぞれは、延期処理を完了する時に、電力コントローラ218にFreeze Acknowledge(フリーズ確認)信号404を送る。構成要素202は、異なる周波数で動作している可能性があり、それらの間の変化するサイズのデータのパケットの転送処理中である可能性があるので、保留中のトランザクションのすべてを延期する処理を完了するために、構成要素202がさまざまな長さの時間を必要とする可能性がある。したがって、電力コントローラ218は、ブロック406によって示されるように、定義されない時間の間だけ、すべての構成要素202がFreeze Acknowledge信号404を用いて応答するのを待つ。すなわち、電力コントローラ218は、Freeze Acknowledge信号404が構成要素202のそれぞれから受け取られるまで、構成要素202のクロック周波数の変更に関してそれ以上の処置を講じない。本発明は、すべてのトランザクションの完了を必要とするのではなく、すべてのトランザクションが、クロック周波数の変更を完了できるまで少なくとも一時的に停止されることを理解されたい。その後、保留中のトランザクションを再開することができる。
【0033】
すべてのFreeze Acknowledge信号404が受け取られた後に所定の遅延T1で、電力コントローラ218は、アクティブ・ロウのChange(変更)信号408をアサートする。構成要素202は、変更信号を受け取り、事前に選択された数のクロック・サイクルの後に、レジスタ220のビット300および302によって示される新しいクロック周波数に移動する。Clock A(クロックA信号)410は、電力コントローラ218によって作られ、1つまたは複数の構成要素202に渡されるクロック信号を表すことが意図されている。Clock B(クロックB)信号412は、レジスタ220のビット300および302の内容に基づいて1つまたは複数の構成要素102によってまたはそれらのために生成されるクロック信号を表すことが意図されている。一般に、構成要素202は、Clock B信号を使用して、その内部動作のタイミングを制御する。したがって、図4の例示的タイミング図からわかるように、Clock B信号412は、Change信号408のデアサートの後の第3クロック・サイクル414に周波数が変化する。例示的実施形態では、構成要素202のすべてが、実質的に同時に、ビット300および302に従って周波数を変更する。
【0034】
Change信号408がデアサートされた後に、電力コントローラ218は、Clock B信号412が安定することを可能にするために所定の時間だけ待ち、その後、Freeze信号400を解放する。Freeze信号400が解放またはデアサートされたならば、構成要素202の間のトランザクションを再開できる。ある点で、Freeze Acknowledge信号404が、構成要素202によって解放またはデアサートされる。そのタイミングは、クリティカルではないが、Change信号408がデアサートされた後に、Clock B信号412の周波数のその後の推移を見越して行われる必要がある。
【0035】
図4には、PLL Bypass(PLLバイパス)信号416も示されている。PLL Bypass信号416は、さまざまな動作モードの間での推移中に、メモリ212の動作と共に使用される。PLL Bypass信号416およびメモリ212の詳細な議論は、後で図9から12に関して示す。
【0036】
構成要素202のうちの選択された1つによって使用されるClock B信号の周波数を減らすことによって、さまざまな異なる電力節約レベルを達成できることを理解されたい。たとえば、コンピュータ・システム200の動作中に、選択構成要素202を、比較的高い速度で使用し、他の構成要素202を、アイドルまたは実質的に利用不足のままにすることができる。電力コントローラ218は、アイドルまたは利用不足の構成要素202のクロック周波数を選択的に減らすと同時に、コンピュータ・システム200によって現在使用されている構成要素のクロック周波数を維持することができる。
【0037】
図5に移ると、本発明の一態様による位相ロック・ループ(PLL)コントローラ500のブロック図が示されている。複数のPLLコントローラ500を、構成要素202に関連付けることができる。すなわち、上で述べたClock B信号412を供給するために、構成要素202のそれぞれが、その中またはそれに関連する1つまたは複数のPLLコントローラ500を有することができる。一般に、PLLコントローラ500は、第1のN分周カウンタ502を有し、N分周カウンタ502は、Clock A信号410を受け取り、所望の周波数を減らされたクロック信号を作る。この信号が、普通の位相比較器504の入力端子に渡される。位相比較器504の出力端子は、ループ・フィルタ505を介して普通の電圧制御発振器(VCO)506に結合されている。第2のN分周カウンタ508がVCO506の出力端子に結合されている。第2のN分周カウンタ508の出力端子は普通のクロック・ツリー510に結合されている。クロック・ツリー510は、Clock B信号412を含む複数のクロック信号を作ることができる。Clock B信号は、遅延回路512を介して位相比較器504の第2入力に結合される。
【0038】
PLLコントローラ500の動作を説明するために、コンピュータ・システム200が通常動作モードであり、Clock A信号410が事前に選択されていた周波数であり、この周波数が、この説明において約500MHzであると仮定する。コンピュータ・システムが通常動作モードなので、Clock B信号412は、Clock A信号と同一の周波数であり、Clock A信号410と同期している。したがって、N分周カウンタ502および508は、レジスタ220の内容によって、Clock B信号412として、たとえば500MHzの通常周波数を作るように指示されている。すなわち、N分周カウンタ502は、図6Aに示された短い遅延D1を除いて、主に無変更でClock A信号410を通過させる。
【0039】
VCO506は、現在、Clock A信号と同一周波数(すなわち、この例では500MHz)である出力信号を送り出している。第2のN分周カウンタ508は、第1のN分周カウンタ502と同様に、短い遅延を除いて主に無変更のVCO信号を送る。クロック・ツリー510は、遅延されたVCO信号を受け取り、Clock B信号412を作る。遅延回路512を介するフィードバック・パスによって、Clock B信号が位相比較器504の第2入力に渡される。遅延されたClock B信号412と遅延されたClock A信号410の間の位相差によって、位相比較器が、VCO506の位相を変更する出力信号を送る。この処理は、Clock B信号412がClock A信号410と同期するまで繰り返される。
【0040】
遅延回路512は、図6Aに示された、第1のN分周カウンタ502によって導入される遅延D1と実質的に一致することを意図された遅延をClock B信号412に導入する。したがって、位相比較器504は、Clock A信号410とClock B信号412の遅延されたバージョンを比較する。その際、遅延されたClock B信号が遅延されたClock A信号600に同期し、これによって、遅延回路512が遅延D1と一致する場合に、Clock B信号412がClock A信号410と同期する。
【0041】
コンピュータ・システム200が、低電力モードに入ったと仮定すると、N分周カウンタ502および508は、レジスタ220の内容によって、Clock B信号412の周波数を、たとえば半分に減らす(すなわち、この例では約250Mhzにする)ように指示されている。図6Bからわかるように、N分周カウンタ502は、Clock A信号410の1つおきのクロック・パルスを除去することによって、周波数を減らされたクロック信号602を作る。第1のN分周カウンタ502によって導入される遅延D1は、図6Aに示されているように、通常動作中と実質的に同一のままになる。実質的に同一の時に、第2のN分周カウンタ508も、VCO506によって作られるクロック信号の1つおきのクロック・パルスを除去することによって、周波数を減らされたクロック信号602に類似する周波数を減らされたクロック信号を作る。クロック・ツリー510は、N分周カウンタ508からの周波数を減らされた信号を使用して、Clock B信号412を作る。Clock B信号412の遅延されたバージョン604が遅延回路512によって作られる。
【0042】
遅延されたClock B信号604が、位相比較器504に渡され、遅延されたClock A信号602と比較される。遅延されたClock A信号602と遅延されたClock B信号604の位相の間の差によって、VCO506がわずかに変化して、遅延されたClock B信号602を遅延されたClock A信号604に同期する。遅延されたClock A信号602と遅延されたClock B信号604が、減らされた周波数(すなわち、この例では250MHz)のClock B信号と同期される。しかし、VCO506は、通常周波数(すなわち、この例では500MHz)での動作を継続する。すなわち、VCO506は、その出力信号周波数範囲の大きい変更を行うことを強制されるのではなく、さまざまな動作モードの間のすべての変更を通じて実質的に通常の周波数のままになる。VCO506の比較的一定の周波数は、PLL500の安定動作に寄与し、Clock B信号412の周波数の大きい変動がある場合であっても、Clock B信号412をClock A信号410にすばやく同期することができるようになる。
【0043】
アイドル・モードでのコンピュータ・システム200の動作は、低電力モードでの動作に実質的に類似する。アイドル・モードでは、N分周カウンタ502および508が、レジスタ220の内容によって、Clock B信号412の周波数を、たとえば32で割る(すなわち、この例では約15.625Mhzにする)ように指示されている。N分周カウンタ502は、Clock A信号410の1つのクロック・パルスを送り、31個のクロック・パルスを除去することによって、周波数を減らされたクロック信号を作る。第1のN分周カウンタ502によって導入される遅延D1は、動作の通常モードおよび低電力モード中と実質的に同一のままになる。実質的に同一の時に、第2のN分周カウンタ508も、VCO506によって作られるクロック信号のパルスの1つを送り、31個のパルスを除去することによって、周波数を減らされたクロック信号に類似する周波数を減らされたクロック信号を作る。クロック・ツリー510は、N分周カウンタ508からの周波数を減らされた信号を使用して、Clock B信号を作る。遅延回路512がClock B信号の遅延されたバージョンを作る。
【0044】
やはり、位相比較器504は、遅延されたClock A信号およびClock B信号の位相を比較し、その差を使用して、VCO506をわずかに変更させて、遅延されたClock B信号を遅延されたClock A信号に同期させる。遅延されたClock A信号およびClock B信号は、減らされた周波数(すなわち、この例では15.625MHz)であるClock B信号と同期される。しかし、VCO506は、通常周波数(すなわち、この例では500MHz)での動作を継続する。すなわち、VCO506は、その出力信号周波数の大きい変更を行うことを強制されるのではなく、さまざまな動作モードの間のすべての変更を通じて実質的に通常周波数のままになる。
【0045】
図7に、図5のPLLコントローラ500の実施形態を示す。この実施形態では、N分周カウンタ502が、ANDゲート700および制御論理回路702を含む。ANDゲート700は、第1入力および第2入力を有し、第1入力は、Clock A信号410を受け取り、第2入力は、制御論理回路702から制御信号を受け取る。一般に、制御論理回路702は、論理ハイ信号および論理ロウ信号を作って、ANDゲート700が、位相比較器504に渡されるようにClock A信号410を通過させるかブロックすることができるようにする。この形で、Clock A信号410の周波数を、無変更のまま送るか、クロック・パルスを選択的に除去することによって周波数を減らして送ることができる。たとえば、レジスタ220の内容によって示されるように、コンピュータ・システムが通常モードで動作している場合に、制御論理回路702は持続的な論理ハイ信号を送る。これによって、Clock A信号410のクロック・パルスのすべてが渡される。
【0046】
コンピュータ・システム200が、動作の低電力モードに入ったと仮定すると、制御論理回路702は、レジスタ220の内容に基づいて、Clock A信号の周波数を半分に減らさなければならないことを「知る」。したがって、図8Aに示されているように、制御論理回路702は、Clock A信号410の1つおきのクロック・パルス中に論理ハイになる制御信号800を送る。したがって、ANDゲート700は、Clock A信号の1つおきのパルスを通過させることができ、その周波数を半分に減らし、クロック周波数を減らされた信号802を作る。
【0047】
N分周カウンタ508を実質的にN分周カウンタ502に似た形で構成でき、N分周カウンタ502および508の両方が実質的に同時にある動作モードから別の動作モードに推移するようにすることに注意しなければならないことを理解されたい。レジスタ220の内容は、破線の矢印514によって示されるように、N分周カウンタ502および508の両方によって使用される除数が一致することを保証するために、N分周カウンタ508に通信される必要がある。しかし、レジスタ220を制御するのに使用されるクロック信号は、Clock A信号およびClock B信号と同期されるが、N分周カウンタ508は、VCO506の出力によって直接に駆動される。VCO506からの出力信号は、クロック・ツリー510によって導入される遅延に実質的に対応する率だけ、Clock A信号およびClock B信号から位相はずれになっている。このタイミングの差が、N分周カウンタ508にレジスタ220の内容を送ることに関するタイミング問題を引き起こす可能性がある。したがって、レジスタ220からの信号は、Clock B信号の徐々に遅延が増えるバージョンを用いてクロッキングされるバッファ内の一連のステージを介して渡される。すなわち、このバッファのステージは、クロック・ツリー510のタップから取られる、徐々に遅延が減るクロック信号を用いてクロッキングされる。
【0048】
コンピュータ・システム200が、動作のアイドル・モードに入ったと仮定すると、制御論理回路702が、レジスタ220の内容に基づいて、Clock A信号の周波数を1/32だけ減らさなければならないことを「知る」。したがって、図8Bに示されているように、制御論理回路702は、Clock A信号410の1クロック・パルスの間論理ハイであり、次の31クロック・パルスの間論理ロウになる制御信号900を送る。したがって、ANDゲート700は、Clock A信号の32パルスごとに1パルスを送り、1/32だけ周波数を減らし、クロック周波数を減らされた信号902を作る。
【0049】
図8Aおよび8Bからわかるように、クロック周波数を減らされた信号802および902は、率D1だけ遅延されている。遅延D1は、この実施形態では、ANDゲート700の処理時間の結果である。ANDゲート700の処理時間は、動作のモードから独立に、比較的一定のままである。上で述べたように、Clock B信号412は、フィードバック・パスに遅延回路512を導入することによってClock A信号410に正確に同期される。この遅延回路512は、遅延D1に実質的に等しい遅延を導入する。図示の実施形態では、遅延回路512が、第1入力がClock B信号412に結合され、第2入力がシステム電圧Vccなどの論理ハイ信号に結合されたANDゲート704の形をとる。同一のプロセスを使用し、類似するサイズおよび構成のトランジスタを使用して同一のダイでANDゲート700を構成することによって、ANDゲート700および704によって導入される遅延を実質的に一致させることができる。
【0050】
図7に戻ると、第2のN分周カウンタ508を、第1のN分周カウンタ502に関して開示したものに類似するか同一の設計とすることができることを、当業者は理解するであろう。N分周カウンタ502および508のさまざまな他の設計を、本発明の趣旨および範囲から逸脱せずに使用することができる。したがって、本発明は、請求項で特に示されない限り、図7に示されたN分周カウンタ502および508の特定の実施形態に制限されない。
【0051】
構成要素202のすべてに、PLLコントローラ500が含まれるのではなく、他のまたは追加の方法および装置を使用して、さまざまな動作モードの間の推移中の誤動作の可能性を減らすことができる。たとえば、コンピュータ・システム200のメモリ212で、異なる戦略を使用して、低電力モードで使用される周波数を減らした信号にロックできるようにする。図9からわかるように、メモリ212は、バス900と、VCO_SELECT制御信号を含む制御信号線902によってCPU204に結合される。VCO_SELECT制御信号は、メモリ212内のPLL904に渡され、PLL904がBBC216によって渡されるClock B信号と同期するのを助けるのに使用される。
【0052】
一実施形態では、PLL904が、Motorola,Inc.社が販売する、部品番号MPC953などの低電圧PLLクロック・ドライバの形をとる。図10のブロック図からわかるように、PLL904は、Clock In信号を受け取り、Clock In信号を、位相比較器1000および低域フィルタ(LPF)1002を介してVCO1004の制御入力に渡す。VCO1004の出力端子は、マルチプレクサ1008の第1入力端子に結合され、2分周カウンタ1005を介してマルチプレクサ1008の第2入力端子に結合される。VCO_SELECT信号は、マルチプレクサ1008の制御入力端子に渡される。マルチプレクサ1008の出力端子は、第2のマルチプレクサ1010を介してクロック・ツリー1012に結合される。クロック・ツリー1012は、シンクロナス・ダイナミック・ランダム・アクセス・メモリ(SDRAM)などのメモリ212に、その動作を制御するためにClock Out信号を送る。Clock Out信号は、フィードバック・パスを介して位相比較器1000の入力端子にも渡される。
【0053】
したがって、マルチプレクサ1008は、動作の第1モードでは、VCO_SELECT信号によって、VCO1004によって作られる信号を実質的に無変更で渡す。しかし、動作の第2モードでは、VCO_SELECT信号によって、VCO1004によって作られる信号の半分の周波数を有する信号を渡す。PLL904は、動作の第1モードでは、第1範囲に含まれる周波数を有する信号にロックし、動作の第2モードでは、第2範囲に含まれる周波数を有する信号にロックすることができる。たとえば、PLL904は、動作の第1モードでは、少なくとも約150から62.5MHzの範囲内のClock In信号に信頼性のある形でロックすることができ、動作の第2モードでは、少なくとも約125から50MHzの範囲内のClock In信号に信頼性のある形でロックすることができる。
【0054】
構成要素202の一実施形態では、動作の通常モード中のシステム・クロックが、約100から150MHzの範囲内である。したがって、システム・クロック信号が、100から125MHzなど、100から150MHzの範囲の下側部分に含まれる周波数を有する場合に、コンピュータ・システム200が低電力モードに入り、Clock In信号がシステム・クロック信号の半分になる(すなわち、約62.5から50MHzの範囲内)時に、PLL904が動作の第1モード(すなわち、少なくとも約150から62.5MHzの範囲内の信号にロックすることができる)である場合に、PLL904は、信頼性のある形でClock In信号にロックできなくなる。逆に、約125から150MHzなどの100から150MHz範囲の上側部分に含まれる周波数を有する場合、コンピュータ・システムが通常モードであり、PLL904が動作の第2モードである(すなわち、125から50MHzの範囲の信号にロックできる)場合に、システム・クロック信号は、PLL904は、Clock In信号に信頼性のある形でロックすることができない。
【0055】
PLL904は、コンピュータ・システム200が通常モードまたは低電力モードのいずれかであり、VCO_SELECT信号が正しく構成される場合に、Clock In信号に正しくロックすることができる。たとえば、システム・クロックが約140MHzの周波数で動作する場合に、Clock In信号は、通常モードで約140MHz、低電力モードで約70MHzになる。VCO_SELECT信号が、PLL904を第1動作モードにセットするためにアサートされている場合に、PLL904は、約150から62.5MHzの範囲の信号に信頼性のある形でロックすることができ、この範囲には、140MHzおよび70MHzの期待される信号が含まれる。同様に、システム・クロックが、110MHzなど、周波数範囲の下側部分で動作している場合に、Clock In信号は、通常モードで約110MHz、低電力モードで約55MHzになる。VCO_SELECT信号が、PLL904を第2動作モードにセットするためにデアサートされている場合に、PLL904は、約125から50MHzの範囲内の信号に信頼性のある形でロックすることができ、この範囲には、110MHzおよび55MHzの期待される信号が含まれる。
【0056】
したがって、コンピュータ・システム200の初期化中に、CPU204が、システム・クロックの周波数を検出し、それに従ってVCO_SELECT信号をセットする。たとえば、CPU204が、システム・クロックが許容される周波数範囲の下側部分(たとえば約100から125MHz)に含まれる周波数を有することを検出すると、VCO_SELECT信号がアサートされて、マルチプレクサ1008が、2分周カウンタ1006の出力信号を送る。その一方で、CPU204が、システム・クロックが許容される周波数範囲の上側部分(たとえば約125から150MHz)に含まれる周波数を有することを検出すると、VCO_SELECT信号がデアサートされて、マルチプレクサ1008が、VCO1004の出力信号を送る。
【0057】
図11に、初期化モードまたはスタートアップ・モード中にCPU204によって操作することができるソフトウェア制御プロセス1100の流れ図の一実施形態を示す。図11に示されたソフトウェアは、一般に、VCO_SELECT信号の値を正しくセットする責任を負う。プロセス1100は、ブロック1102で開始され、ここで、コンピュータ・システム200が、初期化モードまたはスタート・アップ・モードに入る。このプロセスは、一般に、コンピュータ・システム200が、電源をオンにされるかリセットされる時に発生するが、通常は、システムがリセットされるか、電源を切ってからもう一度入れなおすまで、繰り返されない。
【0058】
ブロック1104で、CPU204が、システム・クロック信号を監視して、その周波数を判定する。その後、ブロック1106で、CPU204が、システム・クロック信号の周波数を事前に選択されたセットポイントと比較する。このセットポイントは、上で説明した例示的なシステムでは約125MHzである。最後に、ブロック1108で、CPUは、約125MHzを超えるシステム・クロック信号の周波数に応答して第1の値、約125MHz未満のシステム・クロックの周波数に応答して第2の値に、VCO_SELECT信号をセットする。
【0059】
メモリ212には、動作の通常モード、低電力モード、およびアイドル・モードの間での推移中に、それに保管されたデータが壊れるか失われる可能性を減らすための追加の方法および装置が含まれる。たとえば、メモリが、シンクロナス・ダイナミック・ランダム・アクセス・メモリ(SDRAM)などのダイナミック要素からなる場合には、要素を周期的にリフレッシュしなければならず、さもなければ、そこに置かれていた電荷が流出する可能性がある。メモリ要素を周期的にリフレッシュする過程は、不安定なクロック信号によって遅延されるか、他の形で干渉される可能性がある。したがって、動作の通常モード、低電力モード、およびアイドル・モードの間での推移中に、変化する/不安定なクロック信号によって、メモリが、不適切なリフレッシュのゆえに壊される可能性がある。したがって、動作の通常モード、低電力モード、およびアイドル・モードの間での推移中にシステム・クロック信号に頼らない、メモリ212にリフレッシュ・モードに入らせる方法および装置を提供する。
【0060】
図12に示された実施形態では、メモリ212が、部品番号KM416S4030、KM416S9030、またはKM415S16230/KM48S32230としてSamsung社が販売するもの、あるいは部品番号HM5264165FTTまたはHM5225165BTTとして日立社が販売するもの、あるいは部品番号M2v6440BTP、M2v28s40ATP、またはM2v56s40TP/M2v56s30TPとして三菱社が販売するものなどの、シンクロナス・ダイナミック・ランダム・アクセス・メモリ(SDRAM)デバイス1202、1204、1206、および1208のアレイ1200の形をとる。4つのSDRAMデバイス1202、1204、1206、および1208が、図示の実施形態に示されているが、当業者は、本発明の趣旨および範囲から逸脱せずに、より多数またはより少数のデバイスを簡単に使用できることを理解するであろう。SDRAMデバイスは、少なくともデータ信号およびアドレス信号を送るためにバス1210を介して互いに結合される。SDRAMデバイス1202、1204、1206、および1208の動作をもたらすための、書込イネーブル(WE)、カラム・アドレス選択(CAS)、ロウ・アドレス選択(RAS)、チップ選択(CS)、および類似物などの制御信号も、バス1210を介して送るか、別々の制御信号線1212を介して送ることができる。制御信号は、SDRAMデバイス1202、1204、1206、および1208に、自己リフレッシュなど、さまざまな既知の動作のモードに入らせるのに使用することができる。たとえば、動作の自己リフレッシュ・モードは、CS、CAS、およびRAS信号を論理ロウ・レベルに保持し、WE信号を論理ハイ・レベルにバイアスすることによって入ることができる。どの場合でも、確立されたシグナリング・プロトコルがSDRAMデバイス1202、1204、1206、および1208によって認識されたならば、これらのデバイスは、システム・クロックを参照せず、SDRAMデバイス1202、1204、1206、および1208の内部で生成されるクロック信号に頼る、ダイナミック要素を周期的にリフレッシュする動作のモードに入る。
【0061】
一般に、動作の自己リフレッシュ・モードは、通常は、コンピュータ・システム200の残りの部分の電源が切られている場合であっても、SDRAMデバイス1202、1204、1206、および1208のデータを保存するのに使用される。自己リフレッシュ・モードである時に、SDRAMデバイス1202、1204、1206、および1208は、外部クロッキングなしでデータを保存する。自己リフレッシュ・モードが要求されたならば、SDRAMデバイス1202、1204、1206、および1208のクロック信号入力端子は、「ドント・ケア」状態になり、SDRAMデバイス1202、1204、1206、および1208は、それ自体の内部クロッキングを提供する。したがって、各SDRAMデバイス1202、1204、1206、および1208が、それ自体のリフレッシュ・サイクルを実行する。SDRAMデバイス1202、1204、1206、および1208は、そこに保管されたデータの消失または破壊の危険性なしに、不確定の時間の間にわたって自己リフレッシュ・モードにとどまることができる。しかし、クロック信号が安定したならば、コンピュータ・システム200が、事前に定義されたシグナリング・プロトコルを使用してSDRAMデバイス1202、1204、1206、および1208に信号を送って、自己リフレッシュ・モードから出、その結果、SDRAMデバイス1202、1204、1206、および1208がもう一度アクセス可能になるようにする。
【0062】
したがって、システム・クロック信号の周波数の推移中に一時的にSDRAMデバイス1202、1204、1206、および1208に自己リフレッシュ・モードに入らせることによって、SDRAMデバイス1202、1204、1206、および1208が、これらの不安定な期間中にシステム・クロック信号から効果的に分離されることを理解されたい。したがって、SDRAMデバイス1202、1204、1206、および1208の内容が、そうでなければ不安定なシステム・クロック信号によって引き起こされる可能性がある破壊から保護される。
【0063】
図4に戻ると、動作の通常モード、低電力モード、またはアイドル・モードの間で推移中のコンピュータ・システム200の関係する信号のタイミング図が示されている。具体的に言うと、自己リフレッシュ・モードに入り、出るSDRAMデバイス1202、1204、1206、および1208のタイミングが示されている。図4に関して上で詳細に説明したように、動作の通常モード、低電力モード、またはアイドル・モードの間で推移する時のコンピュータ・システム200の全般的な動作には、構成要素102のそれぞれがその活動をフリーズすることを要求することが含まれる。ある時間の間にわたって、構成要素102のそれぞれが、システム・クロック信号が周波数を変更することに対して準備ができていることの肯定信号を用いて応答する。その後、システム・クロック信号の周波数を変更するように指示する。一実施形態では、メモリ212が、すべての構成要素102が周波数変更の準備ができた後、システム・クロック信号の周波数が変更を許可される前のある時に、自己リフレッシュ・モードに入るように指示される。すなわち、メモリ212は、すべてのフリーズ確認信号が受け取られた後、変更信号がアサートされる前に、自己リフレッシュ・モードに入る。
【0064】
その後、Clock B信号が安定し、Clock A信号と同期されるまで、自己リフレッシュ・モードが持続を許可される。一実施形態では、メモリ212は、フリーズ信号がデアサートされた後に、自己リフレッシュ・モードから出る。CPU204内に含まれるメモリ・コントローラ(図示せず)が、メモリ212に自己リフレッシュ・モードに入らせる信号を送る責任を負うことを、当業者は理解するであろう。自己リフレッシュ・モードを開始するためのメモリ・コントローラの動作は、本発明の趣旨および範囲から逸脱せずに、ハードウェアまたはソフトウェアの制御の下で実施することができる。
【0065】
コンピュータ・システム200のメモリ212は、動作のアイドル・モードで、修正された形で動作する。上で述べたように、メモリ212のPLL904の動作は、システム・クロック周波数に従って変更されて、PLL904が、システム・クロック信号の期待される周波数範囲全体を通じて、通常モードと低電力モードの両方でクロック信号に信頼性のある形でロックされる。しかし、PLL904の動作範囲は、アイドル・モードで使用されるクロック周波数まで延びていない場合がある。したがって、PLL904の動作範囲が、アイドル・モードで使用されるクロック周波数を含むのに不十分な場合には、異なる技法が使用される。
【0066】
まず、PLL904をバイパスする。すなわち、図10に示されているように、マルチプレクサ1010は、CLOCK IN信号を受け取るように結合された第1入力端子と、VCO1004から直接にまたは間接的に(すなわち2分周カウンタ1006を介して)ロックされたクロック信号を受け取るように結合された第2入力端子を有する。PLL BYPASS(PLLバイパス)信号が、マルチプレクサ1010の制御入力端子に結合され、その結果、第1入力端子および第2入力端子に印加される信号の一方が、選択的にクロック・ツリー1012に渡され、その後、メモリ212全体に分配される。
【0067】
したがって、PLL BYPASS信号がアサートされていない時には、マルチプレクサ1010は、VCO1004からのクロック信号を通す。この動作のモードでは、PLL904が、CLOCK IN信号の位相をCLOCK OUT信号の位相と能動的に比較して、CLOCK IN信号とCLOCK OUT信号の位相を同期またはロックするようにVCO1004を調整する。このモードでは、PLL904が、0遅延バッファとして動作する。
【0068】
その代わりに、PLL BYPASS信号がアサートされる時に、マルチプレクサ1010は、CLOCK IN信号をクロック・ツリー1012に送る。この動作のモードでは、PLL904が、効果的にバイパスされ、CLOCK IN信号が、実質的に直接にクロック・ツリー1012によって分配される。したがって、PLL904がバイパスされるので、CLOCK OUT信号は、もはやCLOCK IN信号と同期されない。そうではなく、図12に示されているように、CLOCK OUT信号が、マルチプレクサ1010およびクロック・ツリー1012によって導入される遅延に実質的に対応する時間D5だけCLOCK IN信号に対して遅れる。一実施形態では、時間D5が、約6から8ナノ秒の範囲である。
【0069】
時間D5は、システム・クロック信号に同期されるメモリ212と他の構成要素202の間のデータの転送のタイミングが合わなくなる可能性がある持続時間になることもある。したがって、図9に示されているようにCPU204内に配置することができる普通のメモリ・コントローラ906は、動作の第1および第2のモードを使用する。メモリ・コントローラ906の動作の第1モードは、動作の通常モードおよび低電力モードに関連する。メモリ・コントローラ906の動作の第2モードは、動作のアイドル・モードに関連する。
【0070】
動作の第1モードでは、メモリ・コントローラ906は、ソフトウェアまたはハードウェアのいずれかの制御の下で、アドレス信号線またはデータ信号線をラッチ、駆動、またはサンプリングしなければならない時のタイミングを制御するように構成される。すなわち、経験的調査、理論的計算、またはシミュレーションを介して、メモリ・コントローラ906が、メモリ212への要求の後、要求をサービスする前に待つ必要がある時間の量を「知る」。たとえば、メモリ・コントローラ906は、メモリ212からデータを読み取ることを要求する場合に、メモリ212がそのデータをメモリ・コントローラ906に送る前に、第1の事前に選択された時間の間だけ待たなければならないことを「知る」。この第1の待機期間は、メモリ・コントローラ906のハードワイヤされるバージョンに設計するか、CPU204上で実行されるソフトウェアを介してプログラムすることができる。一般に、メモリ・コントローラ906内のレジスタ(図示せず)が、メモリ・コントローラ906によって使用される所望のタイミングを識別する値をその中に保管される。一実施形態では、第1の時間が、1つまたは複数のクロック期間の範囲である。
【0071】
動作の第2のモードでは、レジスタ(図示せず)に保管された値が、メモリ・コントローラ906に第2の異なる時間の間だけ待たせるように変更される。図示の実施形態では、CLOCK OUT信号がCLOCK IN信号とその期間だけ位相はずれである時間D5を考慮に入れるために、第2の時間の間が、第1の期間より長い。したがって、より長い第2の時間の間のために、メモリ212の動作が、動作のアイドル・モード中にさらに低速にされるが、メモリ212はアクティブのままであり、そこに保管されたデータは壊されることがない。メモリ212は、通常のクロック周波数信号の約1/32のCLOCK IN信号を用いる動作のアイドル・モードであっても、低速になるが動作はする。
【0072】
図4に戻ると、動作の通常モード、低電力モード、またはアイドル・モードの間で推移中のコンピュータ・システム200の関係する信号のタイミング図が示されている。具体的に言うと、PLL BYPASS信号のタイミングが示されている。動作の低電力モードからアイドル・モードへの推移中のコンピュータ・システム200の動作は、図4および9を同時に参照することによって理解することができる。
【0073】
BBC216が、レジスタ220のビット300および302をセットすることによって、動作の低電力モードから動作のアイドル・モードへの変更を要求したと仮定する。メモリ・コントローラ906は、ビット300および302に基づいて、システムが動作のアイドル・モードに入ろうとしていることを認識し、したがって、SELF REFRESH信号がアサートされている間にPLL BYPASS信号をアサートする必要がある。SELF REFRESH信号がアサートされていない時にPLL BYPASS信号をアサートすると、CLOCK OUT信号が、PLL BYPASS信号がアサートされている時に大きく変化する可能性があるので、メモリ212に保管されたデータの破壊がもたらされる可能性がある。したがって、図示の実施形態では、PLL BYPASS信号が、CHANGE信号がアサートされてから、事前に選択された時間T2だけ後にアサートされる。その後、コンピュータ・システム200が動作のアイドル・モードにとどまる限り、PLL BYPASS信号がアサートされたままになる。
【0074】
将来のある時点で、BBC216が、コンピュータ・システム200が動作のアイドル・モードから動作の低電力モードに移ることを要求する。コンピュータ・システム200が、低電力モードに切り替わったならば、PLL904が、もう一度信頼性のある形でCLOCK IN信号にロックすることができるようになる。したがって、メモリ212の速度を高めるために、PLL904の動作を復元して、0遅延クロック・サイクルを提供する。PLL BYPASS信号は、CHANGE信号がデアサートされてから、事前に選択された時間の間T5だけ後にデアサートされ、これは、図示の実施形態では、CLOCK B/CLOCK IN信号が、動作の低電力モードに関連する次に高い周波数に推移した後である。
【0075】
図13に移ると、周辺デバイス208(図2を参照されたい)との間のトラフィックを管理するバス・コントローラ1300が示されている。バス・コントローラ1300は、周辺要素インターフェース(PCI)バスなどのバス1302を介して、グラフィックス・カード、サウンド・カード、および類似物などの複数の普通のデバイス1304、1306、および1308に結合される。3つのデバイスが図示されているが、本発明の趣旨および範囲から逸脱せずに、より多数またはより少数のデバイスをバス1302に結合することができる。
【0076】
デバイス1304、1306、および1308のそれぞれが、他の構成要素202と、データを転送するかそれを介してデータを受け取ることができるように、バス1302へのアクセスを要求するように構成される。クロック・コントローラ1310が、それぞれ信号線1312、1314、および1316を介してデバイス1304、1306、および1308にクロック信号を供給する。クロック・コントローラ1310は、バス・コントローラ1300にも結合されて、バス・コントローラが、コンピュータ・システム200によって消費される電力の量を減らす方法として、デバイス1304、1306、および1308に渡されるクロック信号の周波数の変更をもたらすことができるようにする。
【0077】
一般に、バス・コントローラ1300は、クロック・コントローラ1310が、低速または高速のいずれかのクロック周波数信号をデバイス1304、1306、および1308に供給することを要求するように適合される。デバイス1304、1306、および1308が、データを供給しておらず、バス1302からデータを受け取っていない時に、これらに供給されるクロック信号の周波数を、かなり減らすことができる。しかし、デバイス1304、1306、および1308のどれかが、バス1302にデータを転送することを望む時、または別の構成要素がデバイス1304、1306、および1308の1つにデータを転送することを望む時には、バス・コントローラ1300は、クロック信号の周波数を上げるようにクロック・コントローラ1310に指示し、その結果、バス1302を介するデバイス1304、1306、および1308との間の比較的高速の転送を達成できるようにすることができる。この形で、デバイス1304、1306、および1308を、使用中でない時に動作の低電力モードにすることができる。すなわち、他のすべてが同一であるならば、デバイス1304、1306、および1308に供給されるクロック信号の周波数を下げることによって、これらのデバイスが消費する電力が減る。一実施形態では、高速クロック信号または通常クロック信号が、約33MHzの周波数を有し、低速クロック信号または周波数を減らされたクロック信号が、1/32だけ除算されて、約1MHzのクロック信号が作られる。本発明の趣旨および範囲から逸脱せずに、広範囲の周波数を使用できることを、当業者は理解するであろう。
【0078】
図14に移ると、高速と低速の周波数のクロック信号の間の推移中のコンピュータ・システム200の関係する信号のタイミング図が示されている。具体的に言うと、CLOCK(クロック)信号、REQUEST(要求)信号、FAST/SLOW(高速/低速)信号、およびGRANT(許可)信号のタイミングが図示されている。高速と低速の周波数のクロック信号の間の推移中のコンピュータ・システム200の動作は、図13および14を同時に参照することによって理解することができる。
【0079】
図14からわかるように、CLOCK信号は、領域1400に示されているように、当初は比較的低い周波数で動作している。ある時点で、REQUEST信号が、REQUEST信号の正推移1402によって示されるように、デバイス1304、1306、および1308の1つまたは他の構成要素202のいずれかによってアサートされる。REQUEST信号は、バス1302を介してまたは要求元のデバイス1304、1306、および1308の間に延びる別の信号線を介して、送ることができる。バス・コントローラ1300は、デバイス1304、1306、および1308に供給されるCLOCK信号の周波数を増やすようにクロック・コントローラ1310に指示することによって、アサートされたREQUEST信号に応答する。バス・コントローラ1300は、FAST/SLOW信号の正推移1404によって示されるように、信号線1318を介してクロック・コントローラ1310に供給されるFAST/SLOW信号をアサートする。
【0080】
クロック・コントローラ1310は、領域1406に示されているように、すぐにCLOCK信号の周波数を増やすことによって、アサートされたFAST/SLOW信号に応答する。CLOCK信号が推移を完了し、安定することができるようにするための事前に選択された時間の間が過ぎた後に、バス・コントローラ1300が、GRANT信号の正推移1408によって示されるように、GRANT信号をアサートし、これが、REQUEST信号をアサートしたかREQUEST信号をアサートした構成要素202のターゲットであるデバイス1304、1306、および1308に通信される。一実施形態では、GRANT信号が、FAST/SLOW信号がアサートされてから2クロック・サイクル後にアサートされる。したがって、データがデバイス1304、1306、および1308との間で転送される速度に対する悪影響を最小限にして、デバイス1304、1306、および1308を、すばやく低電力/低速モードから引き出し、通常動作に戻すことができる。
【0081】
さらに、保留中のバス・トランザクションがなく、バス・コントローラ1300がFAST/SLOW信号をアサートしていない間に、クロック・コントローラ1310が、デバイス1304、1306、および1308のクロック周波数を個別に制御することができる。すなわち、クロック・コントローラ1310は、デバイス1304、1306、および1308に異なる周波数のクロック信号を供給することができる。たとえば、わずかに高い周波数のクロック信号を、デバイス1304、1306、および1308の一部に供給して、それらが有用な作業を行えるようにすることができる。1つの例示的実施形態では、クロック・コントローラ1310が、バス1302に結合されたネットワーク・インターフェース・カード(NIC)に、4MHzのクロック信号を供給する。わずかに高いクロック信号によって、NICが、電力を節約しながらネットワーク・パケットの処理を継続できるようになる。
【0082】
最終的に、デバイス1304、1306、および1308との間で転送されるデータが完了し、転送を要求したデバイス1304、1306、および1308、または転送を要求した構成要素202が、REQUEST信号をデアサートするようになる。バス・コントローラ1300は、GRANT信号をデアサートし、別のREQUEST信号がアサートされるまでそれ以上のバス・トランザクションを防ぐことによって、デアサートされたREQUEST信号に応答する。GRANT信号がデアサートされるのと同時にまたはその後に、バス・コントローラ1300は、FAST/SLOW信号もデアサートし、領域1410に示されているように、クロック・コントローラ1310は、CLOCK信号の周波数を減らすことができる。
【0083】
この処理を、バス1302を介するトランザクションごとに繰り返す。したがって、CLOCK信号の周波数は、データがバス1302を介して転送されるまで、減らされた設定のままにある。周波数を減らされるこれらの期間は、しばしば、長い時間の間にわたって発生し、コンピュータ・システム200によって消費される電力のかなりの削減がもたらされる。
【0084】
図15に移ると、キャッシュ214によって消費される電力の削減に基づく、電力消費を減らすシステムが示されている。キャッシュ214は、アドレス・バス、データ・バス、およびさまざまな制御信号(これらは全般的に両方向の矢印1500によって概略的に表される)などの複数の普通の接続を介してCPU202に結合される。両方向の矢印1500によって表される接続のほかに、制御信号を、CPU202によって信号線1502を介してキャッシュ214に制御可能に送って、キャッシュ214に動作のパワー・ダウン・モードに入らせることができる。
【0085】
半導体のさまざまな製造業者が、コンピュータ・システムでキャッシュとして使用することができるメモリ製品を作る。たとえば、IBM社、Samsung社、Sony社などのそれぞれが、コンピュータ・システム内のキャッシュとして動作するように特に設計された半導体メモリ製品を提供している。Samsung社から入手可能なK7N803645Mなど、これらのメモリ製品の少なくとも一部に、一般に「スリープ・モード」と称する動作のモードが含まれ、これらのメモリ製品を、コンピュータ・システム200のキャッシュ214として使用することができる。
【0086】
スリープ・モードは、キャッシュ214が選択解除され、電流が比較的低いスタンバイ・レベルまで減らされる、低電流のパワーダウン・モードである。キャッシュ214は、その入力ピンの1つで信号をアサートすることによってスリープ・モードに入るように誘導され、このピンは、一般に、ZZ入力ピンと称し、信号線1502に結合される。スリープ・モードに入った後に、ZZを除くキャッシュ214へのすべての入力が、ディスエーブルされ、キャッシュ214からのすべての出力信号が、ハイ・インピーダンス状態になる。このスリープ・モード中に、キャッシュ214が必要とする電流および/または電力の量が、かなり減らされる。
【0087】
スリープ・モードに入る時のキャッシュ214の動作は、図16に示されたタイミング図を参照することによって理解することができる。クロック信号1600が、一般に、キャッシュ214内の動作を同期するのに使用される。しかし、ZZ入力ピンに渡される制御信号は、クロック信号1600に関して非同期にアサートすることができる。したがって、事前に選択された時に、信号線1502を介してキャッシュ214に渡される信号1602がアサートされる。制御信号1602がアサートされてから2クロック・サイクル後に、キャッシュ214への供給電流Isupplyが、電流波形1604によって示されているように、かなり減らされる。ほぼ同時に、波形1606によって示されるように、キャッシュ214への入力ピンのすべてが、ディスエーブルされて、キャッシュ214に保管されたデータが、スリープ・モード中に保管されたデータにアクセスする試みによって破壊されず、失われないようにする。キャッシュ214のすべての出力端子も、波形1608によって示されるように、ハイ・インピーダンス状態に駆動される。
【0088】
その後、キャッシュ214を、制御信号1602をデアサートすることによって、スリープ・モードから「覚醒」させることができる。制御信号1602が、そのデアサートされた状態に戻される時に、キャッシュ214は、電流供給Isupplyをその通常レベルに戻し、それから約2クロック・サイクル後に、キャッシュ214の入力ピンが、波形1606によって示されているように、再びイネーブルされる。キャッシュ214の出力ピンも、通常動作状態に戻される。したがって、制御信号1602がデアサートされてから2クロック・サイクル後に、キャッシュ214が、その動作の通常モードで動作している。
【0089】
本発明でのZZ制御信号1602のアサートは、従来のシステムと異なって、メモリ階層がアクティブである間のメモリ参照の間に発生する。すなわち、従来のシステムでは、ZZ制御信号1602が、コンピュータ・システムがスタンバイ・モードまたはスリープ・モードにされている時など、メモリ階層がディスエーブルされており、したがってメモリ階層への参照が行われない時に限ってアサートされる。これと対照して、本明細書に記載のシステムでは、キャッシュ214が現在メモリ参照を扱っていない時であればいつでも、ZZ制御信号1602をアサートすることができる。すなわち、コンピュータ・システム200は、通常モード、低電力モード、またはアイドル・モードで動作しており、キャッシュ214、メモリ212、ディスク・ドライブ(図示せず)、および類似物を含むメモリを読み書きする要求を完全に行うことができるものとすることができる。キャッシュ214を用いるメモリ要求が検出された時に、ZZ制御信号がデアサートされ、それから2クロック後に、キャッシュ214がそのメモリ要求をサービスすることができる。
【0090】
キャッシュ214のスリープ・モードに関するコンピュータ・システム200の動作は、図17の流れ図を参照することによって理解することができる。図17の流れ図は、コンピュータ・システム200のCPU202によって実行されるプログラムの、またはCPU202内などのコンピュータ・システム200に含めることができるハードウェアまたはファームウェア・コントローラ(図示せず)の、制御フローまたは処理1700を表す。図17を参照すると、処理1700は、ブロック1702で処理を開始し、ここで、キャッシュ要求が受け取られているかどうかを判定するために検査する。キャッシュ214が、現在は要求されていないと仮定すると、処理は、ブロック1704に進み、ここで、スリープ・モード制御信号1602をアサートし、キャッシュ214にスリープ・モードに入らせる。
【0091】
処理1700を介する後続のパス中に、キャッシュ要求が受け取られたと仮定する。したがって、ブロック1702で、制御がブロック1706に転送されて、キャッシュ214が現在スリープ・モードであるかどうかが判定される。スリープ・モード制御信号が、前のパス中にブロック1704でアサートされたので、制御はブロック1708に転送され、ここで、スリープ・モード制御信号1602をデアサートし、キャッシュ214にスリープ・モードから覚醒させる。しかし、キャッシュ214は、キャッシュ要求をサービスできるようになる前に、ウェイク・アップ・シーケンスを完了するために適当な時間を必要とする。したがって、ブロック1710で、2クロック・サイクルの遅延を挿入し、その後、ブロック1712で、キャッシュ要求をサービスのためにキャッシュ214に送る。
【0092】
追加のキャッシュ要求が、処理1700を介する後続パス中に受け取られたと仮定すると、ブロック1702で、もう一度制御がブロック1706に渡され、ブロック1706では、キャッシュ214が現在はスリープ・モードでないことが認識され、したがって、制御がブロック1712に渡され、ここで、キャッシュ要求を即座にサービスすることができる。処理1700を介する後続のパス中に、キャッシュ要求が保留中でない場合に、ブロック1704で、キャッシュ214に、もう一度スリープ・モードに入るように指示することができる。処理1700は、継続的に繰り返され、その結果、キャッシュ214を、各キャッシュ要求の間またはキャッシュ要求の各グループの間に、スリープ・モードにすることができる。
【0093】
図15から17に関して上で説明した処理および装置を使用して、コンピュータ・システム200の電力消費を減らすことができる。この電力消費の削減は、上で説明した動作モードのすべてで電力消費をさらに減らすのに有効である可能性がある。すなわち、コンピュータ・システム200の通常モード、低電力モード、またはアイドル・モード中に、キャッシュ要求の間にスリープ・モードに入るようにキャッシュ214に指示することができる。
【0094】
図18に移ると、電源1800が選択的に制御されて、変化するレベルの電流または電力を供給するシステムが示されている。すなわち、電源1800は、コンピュータ・システム200の動作特性に従って、選択的に複数の電力レベルで動作することができる。たとえば、時々、コンピュータ・システム200が、多数のリソースを使用し、したがってかなりの電力を必要とするタスクを処理している場合がある。しかし、他の時には、コンピュータ・システム200は、アイドルであるか、コンピュータ・システム200のリソースを少しだけ使用する、または全く使用しない処理を実行していることがあり、したがって、実質的に必要とする電力が少なくなる。本発明の特徴を有しない電源は、同一のモードで動作を継続し、コンピュータ・システム200が現在使用している量の電力を必要としない可能性があるという事実にもかかわらず、同一の量の電力を使用している可能性がある。この過剰な電力は、電力の無用な消費、コンピュータ・システム200の構成要素の望ましくない付随する発熱、および、電池動作デバスの場合に電池の再充電の間の有用な寿命の減少をもたらす。
【0095】
本発明の一実施形態では、電源1800が、たとえばソフトウェア制御の下で動作するCPU202から、信号線1802を介して制御信号を受け取るように適合される。制御信号を、その代わりに、ハードウェア・コントローラ(図示せず)またはハードウェアとソフトウェアの両方を使用するファームウェア・コントローラによって生成できることを、当業者は理解するであろう。一般に、CPU204は、制御信号を生成して、電源1802に複数の動作モードの1つに切り替えさせ、この動作モードのそれぞれで、電源が、たとえば電線1804を介してCPU202に事前に選択されたレベルの電力を渡せるようになる。すなわち、CPU202が、減らされたレベルの電力消費を必要とする動作のモードであるものとしてコンピュータ・システム200を識別する時に、CPU202は、信号線1802を介して電源1800に制御信号を送って、電源1800に、減らされたけれどもまだ満足なレベルの電力が電線1804上で電源1800から使用可能である動作のモードに入らせることができる。
【0096】
一実施形態では、電源1800が、3つのレベルの電力を供給できる3つの別個の動作モードを有する。もちろん、電力のレベルの数は、設計判断の問題であり、これは、各特定の実施形態のパラメータの関数である。電力のレベルの数は、本発明の趣旨および範囲から逸脱せずに、本明細書に記載の実施形態から変更することができる。
【0097】
図19に移ると、コントローラ1910とインターフェースする、電力モジュールA1904、電力モジュールB1906、および電力モジュールC1908からなる電源1800が図示されている。電力モジュール1904、1906、および1908は、その出力線が電線1804に結合され、その結果、その電力引渡能力が加算される。すなわち、電力モジュール1904、1906、および1908のそれぞれが、1Wの電力を供給できると仮定する。したがって、3つの電力モジュール1904、1906、および1908のすべてが動作していると、電源1800は、3Wの電力を送ることができる。同様に、電力モジュール1904および1906など、電力モジュールのうちの2つが動作している時には、電源1800は、2Wの電力を送ることができる。同様に、電力モジュール1904など、電力モジュールのうちの1つだけが動作している時には、電源1800は、1Wの電力を送ることができる。
【0098】
コントローラ1910は、電力モジュール1904、1906、および1908を選択的にイネーブル/ディスエーブルして、電源1800が、CPU202によって要求されるレベルの電力を使用可能にすることができるようにする。たとえば、CPU202が、電源1800から2Wの電力だけを使用する必要があることを検出した場合に、CPU202は、コントローラ1910に、電源1800から2Wの電力を使用できるように求める要求を送る。コントローラ1910は、要求を受け取り、電力モジュール1908など、電力モジュールのうちの1つをディスエーブルする。したがって、電力モジュール1904および1906がイネーブルされて、要求された2Wの電力を加算的に使用可能にする。
【0099】
電力モジュール1904、1906、および1908のイネーブル/ディスエーブルに有用な回路の様式化されたブロック図が、電力モジュール1904に関して図20にブロック図形式で様式的に示されている。電力モジュール1904、1906、および1908内のイネーブル/ディスエーブルを行う回路の構成および動作を、実質的に類似するものとすることができ、したがって、本明細書で繰り返す必要がないことを、当業者は理解するであろう。
【0100】
一般に、パワー電界効果トランジスタ(FET)2000が、電源Vccと電線1804の間に配置される。FET2000のオン/オフ時間を制御して、所望の電圧を作り、電線1804で所望の電流を使用可能にする。パルス幅変調(PWM)信号が、コントローラ1910から信号線2004を介してパワーFET2000のゲートに渡される。ANDゲート2002および信号線2006を介して渡されるイネーブル信号が、PWM信号がパワーFET2000のゲートに達するのを選択的にブロックすることによって、電力モジュール1904を交互にイネーブルし、ディスエーブルするのに使用される。PWM信号がブロックされていると、パワーFETはオフにバイアスされたままになり、電流または電圧が、そこから電線1804に渡されなくなる。
【0101】
一実施形態では、CPU202が、3つの動作モードの間の推移を用いて3つの電力レベルの間の切替を調整する。たとえば、動作の通常モードでは、CPU202が、コントローラ1910に要求を送って、電源1800のすべての電力を使用可能にする。したがって、コントローラ1910は、3つの電力モジュール1904、1906、および1908のすべてをイネーブルする。同様に、動作の低電力モード中に、CPU202は、コントローラ1910に要求を送って、電源1800の電力の一部だけを使用可能にする。したがって、コントローラ1910は、電力モジュール1904および1906など、電力モジュールのうちの2つだけをイネーブルする。最後に、動作のアイドル・モード中に、CPU202は、コントローラ1910に要求を送って、電源1800の電力をさらに減らす。したがって、コントローラ1910は、電力モジュール1904など、電力モジュールのうちの1つだけをイネーブルする。
【0102】
CPU202は、レジスタ220の内容および上で図4に関して説明したハンドシェーク信号の状況に基づいて、動作のモードを「知る」。したがって、CPU202は、電源1800の電力レベルの間の推移のタイミングを調整することができる。
【0103】
代替実施形態では、電力レベルを、3つに制限する必要がなく、コンピュータ・システム200の動作モードに関連付ける必要がない。さらに、電力モジュール1904、1906、および1908が、同一のレベルの電力を供給できる必要がない。たとえば、電力モジュール1904、1906、および1908が、それぞれ2W、1W、および0.5Wを供給できると仮定する。電力モジュール1904、1906、および1908を選択的にイネーブル/ディスエーブルすることによって、電源1800が、0.5Wから3.5Wの間で変化する7レベルの電力を作ることができる。これらの電力レベルは、下の表IIに示されたパターンに従って電力モジュール1904、1906、および1908をイネーブル/ディスエーブルすることによって作ることができる。
【0104】
【表2】
【0105】
電力モジュールの数および/または各モジュールによって作られる電力レベルを変更することによって、さまざまなレベルの電力を使用可能にすることができることを、当業者は理解するであろう。これらのレベルの数および大きさは、設計判断の問題であり、これは、各特定の実施形態のパラメータの関数である。電力のレベルの数およびそれらの間の変動の大きさは、本発明の趣旨および範囲から逸脱せずに、本明細書に記載の例示的実施形態から変更することができる。
【0106】
コンピュータ・システム200が、動作の通常モード、低電力モード、およびアイドル・モードの間で移動する時に、コンピュータ・システム200によって消費される電力の量はかなり変化する。これらの電力の変動は、コンピュータ・システム200によって生成される熱の量の変動も生む。したがって、コンピュータ・システム200の構成要素202は、コンピュータ・システムが動作のモードの間で切り替えるたびに、かなりの温度サイクルを受ける可能性がある。
【0107】
構成要素202は、さまざまな材料から構成され、これらの材料は、異なる熱膨張係数を有し、したがって、温度変化に対して異なる形で応答する。すなわち、材料のなかには、加熱された時にかなり膨張するものと、最小限の影響を受けるものがある。どの場合でも、構成要素202を構成する材料の一部が、他の材料より大きいまたは異なる比率で膨張し、それらの間に相対的な移動が生じる。この、構成要素202を構成する材料の相対移動が、構成要素202にかなりの機械的応力を与える可能性がある。経時的にこれらの応力に繰り返しさらされることによって、構成要素202に物理的な損傷が生じ、最終的に性能の低下または、最悪の場合に、故障につながる。
【0108】
いくつかの動作環境で、コンピュータ・システム200が、アクティビティの頻繁に繰り返される変動をこうむる場合がある。したがって、コンピュータ・システム200が、通常動作モード、低電力動作モード、およびアイドル動作モードの間の移動を頻繁に要求される可能性がある。これらの頻繁な変更は、コンピュータ・システムに、加熱と冷却を繰り返させる可能性がある。たとえば、比較的激しいアクティビティの期間中に、コンピュータ・システムは、通常動作モードに移り、最高クロック周波数で動作する可能性がある。この動作の通常モードへの移動中に、構成要素202が、より多くの熱を生じ、それ相応に膨張する。その後、より少ないアクティビティの期間に、コンピュータ・システム200が、動作の低電力モードに入るようにされ、これによって、電力の消費が減り、生じる熱が減り、構成要素202が、冷えることができ、材料のサイズの収縮が生じる。相対的にインアクティブな期間が持続する場合には、コンピュータ・システム200が、動作のアイドル・モードに入ることを要求される可能性があり、構成要素202がさらに冷える。動作環境に応じて、これらの推移が、比較的長い時間の間にわたってしばしば発生する可能性があり、繰り返される温度サイクルおよび付随する機械的応力が生じる。
【0109】
本発明の一実施形態では、温度サイクリングを制御して、構成要素202に誘導される機械的応力を減らす。すなわち、ソフトウェア制御の下で動作するCPU204が、コンピュータ・システム200が動作の通常モード、低電力モード、およびアイドル・モードの間で推移することを許可される割合を制限することができる。コンピュータ・システム200がさまざまなモードの間で推移することを許可される割合の制御は、さまざまな方式で実施することができる。
【0110】
たとえば、コンピュータ・システム200に、事前に選択された時間の間の間、特定の動作モードにとどまることを要求することができる。すなわち、コンピュータ・システム200が、動作の通常モードに移ったならば、コンピュータ・システム200に、30分など、事前に選択された時間にわたってそのモードにとどまることを要求することができる。類似する制限を、動作の低電力モードから動作のアイドル・モードへの移動に対して設けることができる。この制御戦略は、推移を制御して、短い持続時間の温度スパイクを回避することによって温度サイクリングを減らすのに有効であるとわかるであろう。さらに、コンピュータ・システム200を、動作のより高いモードに保持することによって、推移の数を減らすことができる。すなわち、コンピュータ・システム200が、動作の低電力モードまたはアイドル・モードにサイクル・ダウンすることを許可されるのではなく、動作の通常モードに保持されている場合に、後続の高いアクティビティの期間に、コンピュータ・システム200が通常動作モードに戻る必要がなくなる。
【0111】
代替実施形態では、コンピュータ・システム200を、事前に選択された時間内に事前に選択された推移の回数に制限することができる。たとえば、コンピュータ・システム200を、4時間の間に20回の推移までに制限することができる。したがって、コンピュータ・システム200の周期的なアクティビティが、事前に選択された時間の最初の部分の間に動作の通常モード、低電力モード、およびアイドル・モードの間の比較的すばやい推移を引き起こす場合があるが、限度に達した後は、事前に選択された時間が満了するまで、さらなる推移が許可されない。
【0112】
もう1つの実施形態では、コンピュータ・システム200が、アクティビティ・パターンを「学習」することができる。すなわち、コンピュータ・システム200が、毎日ほぼ同一の時刻に同一のタイプのアクティビティを経験する場合がある。したがって、コンピュータ・システム200は、月曜から金曜までの午後3時から5時までなど、事前に選択された時間中に、比較的激しいが周期的な使用を経験することを「知る」場合に、コンピュータ・システム200を動作の通常モードにより長く保持して、サイクルの数を減らすことができる。逆に、コンピュータ・システム200が、夜間および週末など、軽い使用の長い期間を経験することを「知る」場合に、コンピュータ・システム200が、比較的短い期間の減らされたアクティビティの後に、動作のアイドル・モードに移ることを許可されるようにすることができる。その一方で、コンピュータ・システム200が、アクティビティの短い持続時間だけ適度から激しいまでのアクティビティを過去に見、動作のアイドル・モードへの移動が保証される時の期間中には、コンピュータ・システム200を、動作のアイドル・モード以外に保持して、温度サイクリングを減らすことができる。
【0113】
本発明の一実施形態では、ソフトウェア制御の下で動作するコンピュータ・システム200が、要求された推移のタイプ、推移が要求された時の時刻、およびコンピュータ・システム200が動作の各モードにとどまった持続期間を記録することができる。この記録は、継続的にまたは選択された間隔で行うことができる。たとえば、コンピュータ・システム200が、このタイプの情報を、1時間ごと、1日ごと、1週間ごと、1カ月ごとなどの基準で追跡し、記録することができる。記録された情報を、周期的に分析して、周期的アクティビティの期間、低いアクティビティの期間、長い高アクティビティの期間などのアクティビティ傾向を識別することができる。その後、これらの識別された傾向を使用して、コンピュータ・システム200が通常動作モード、低電力動作モード、およびアイドル動作モードの間で推移することを許可される割合を修正することができる。
【0114】
上で述べた制御方式の1つを実行するためにCPU204で実行することができる処理の例示的流れ図を図21に示す。この処理は、ブロック2100で開始され、BBC216が動作モードの間での推移を要求する。ブロック2102で、タイマを検査して、事前に選択された時間の持続期間が過ぎたかどうかを判定する。タイマから、事前に選択された時間が経過したことが示される場合には、ブロック2104で、タイマおよびソフトウェア・カウンタをリセットする。ブロック2106で、カウンタを増分するが、このカウンタは、タイマによって定義される事前に選択された時間中に発生する推移の数を記憶するのに使用される。ブロック2108で、カウンタの値を事前に選択された数と比較する。カウンタの値が、事前に選択された数未満である場合には、制御がブロック2110に転送され、推移の進行が許可される。その一方で、カウンタの値が、事前に選択された数を超える場合には、処理はブロック2112に進み、要求された推移が進行を許可されず、コンピュータ・システム200に、現在の動作モードにとどまらせる。
【0115】
上で開示した特定の実施形態は例示にすぎない。というのは、本明細書の教示の利益を有する当業者に明白な、異なるが同等の形で本発明を修正し、実践することができるからである。さらに、請求項に記載されたもの以外の、本明細書に記載の構成または設計の詳細に対する制限は意図されていない。したがって、上で開示された特定の実施形態を、変更または修正することができ、そのような変形形態が、本発明の趣旨および範囲に含まれるとみなされることは明白である。具体的に言うと、本明細書に開示された値の範囲のすべて(「約aから約bまで」の形、または、同等に「おおむねaからbまで」、または、同等に「おおむねa〜b」の形の)は、ゲオルグ・カントールの意味での、値のめいめいの範囲のべき集合(すべての部分集合の集合)を指すものとして理解されなければならない。したがって、本明細書で追求される保護は、請求項に示された通りである。したがって、本明細書で追求される保護は、請求項に示された通りである。
【図面の簡単な説明】
【図1】
本発明の1つまたは複数の態様を有利に使用することができるコンピュータ・システムの様式化された図である。
【図2】
図1のコンピュータ・システムの最上位ブロック図を示す概略図である。
【図3】
図1のコンピュータ・システムのさまざまな構成要素内で実施されるレジスタを示す概略図である。
【図4】
コンピュータ・システムのさまざまな構成要素に動作のさまざまな電力節約モードの間で切り返させる、図1および2のコンピュータ・システムによって使用されるさまざまなハンドシェーク信号のタイミング図である。
【図5】
本発明の一態様による位相ロック・ループ(PLL)コントローラのブロック図である。
【図6】
図5のPLLコントローラで使用されるさまざまな信号のタイミング図である。
【図7】
図5のPLLコントローラの一実施形態のブロック図である。
【図8】
図7のPLLコントローラで使用されるさまざまな信号のタイミング図である。
【図9】
図2のコンピュータ・システムのメモリとCPUの間のインターフェースのブロック図である。
【図10】
図2および9のメモリの制御回路およびPLL回路のブロック図である。
【図11】
図2および9のCPUによって実行することができる制御シーケンスの流れ図である。
【図12】
図10の制御回路およびPLL回路で使用されるさまざまな信号のタイミング図である。
【図13】
図2のコンピュータ・システム内のシステム・バスおよびバス・コントローラのブロック図である。
【図14】
図13のシステム・バスを制御する際に使用されるさまざまな信号のタイミング図である。
【図15】
図2のコンピュータ・システムのキャッシュとCPUの間のインターフェースのブロック図である。
【図16】
図2および15のキャッシュとCPUの動作を調整するのに使用されるさまざまな信号のタイミング図である。
【図17】
キャッシュの動作を制御するために図2および15のCPUによって実行することができる制御シーケンスの流れ図である。
【図18】
図2のコンピュータ・システムの電源とCPUの間のインターフェースのブロック図である。
【図19】
図18の電源のブロック図である。
【図20】
図18および19の電源の電力モジュールのブロック図である。
【図21】
温度サイクリングの影響を減らすために図2のCPUによって実行することができる制御シーケンスの流れ図である。
(1.発明の分野)
本発明は、全般的には電子デバイスの低電力動作モードに関し、より詳細には、動作の複数の電力節約モードの間の推移の方法および装置に関する。
【0002】
(2.関連技術の説明)
さまざまな理由から、電力消費は、コンピュータ・システムなど電子デバイスにとってますます重要な問題になってきた。まず、米国は、電力消費または電力節約に関する複数の法令を公布した。さらに、ノート型コンピュータなど多数の電子デバイスはバッテリから電力を得るので、電力消費の削減により、かなりの長時間使用がもたらされ、これらの電子デバイスを万能かつ有用にする。さらに、電力消費は、電子デバイスが発生する熱の量に関係する。電力消費の削減によって、生成される熱量が減り、したがって、ヒート・シンク、ファン、および電子デバイスの冷却を助けるのに使用される他の構造のサイズおよび複雑さが減る。したがって、電力消費の削減によって、冷却構造の除去または縮小によってコストを削減することができる。さらに、熱放出の低減は、一般に、電子構成要素をより密にパッケージ化でき、より小さくコンパクトなパッケージに通じることを意味する。さらに、電力消費の削減により、化石燃料の使用およびそれに付随する汚染が減るので、環境に優しい。
【0003】
したがって、電子産業は、さまざまな電力節約方式を開発してきた。コンピュータ・システムおよび他の電子デバイスは、異なる技法を使用して実施される動作の低電力モードを持っていることが多い。これらの低電力モードは、主に、ほとんどのコンピュータ・システムが、常に最大能力で動作しているのではなく、いつも本質的にアイドルである時間を有するという事実を利用したものである。一部のコンピュータ・システムでは、これらのアイドル期間中にシステム内で使用されるある構成要素によって消費される電力を減らすことによって電力を削減している。たとえば、多くのコンピュータ・システムが、かなりの電力を消費するモニタを使用する。したがって、低電力モード中に、システムが、モニタをオフにすることができる。同様に、ハード・ディスク・ドライブ、コンパクト・ディスク(CD)プレイヤ、ランダム・アクセス・メモリ(RAM)、および類似物などの他の構成要素も、オフにすることができる。現在使用されていない周辺デバイスから電力を除去することによって、かなりの電力節約を達成することができる。しかし、周辺デバイスの電源が切られているコンピュータ・システムをユーザが操作しようとする時に、コンピュータ・システムが周辺機器への電力を復元し、ユーザの要求に応答し始めることができるようになる前に、かなりの遅延が発生する。したがって、多くのユーザは、これらの遅延を避けるために、これらのタイプの低電力動作モードを迂回するか、他の形で使用不能にする。
【0004】
他の電力節約方式では、コンピュータ・システムで使用される構成要素に供給されるクロック信号の周波数を下げる。他のすべての要因が同一であるならば、クロック周波数を下げることによって、一般に、それに比例して電力消費が減る。したがって、いくつかのシステムでは、半分以上など、かなりの率でクロック周波数を下げて、かなりの電力節約を達成している。しかし、通常は、コンピュータ・システム内のさまざまなサブシステムが、正しい動作を保証するために全体的に同期されたクロック信号を有していなければならない。この同期化は、一般に、位相ロック・ループ(PLL)回路を使用して達成される。しかし、PLL回路では、全体的に同期したクロック信号を確実に維持できる十分な速度および精度で動作する周波数範囲は有限である。したがって、クロック周波数が、半分以下など、劇的に変更される場合に、PLLが、限界でまたは誤って動作する可能性がある。PLLの誤った動作は、コンピュータ・システム全体の不安定な動作をもたらし、システムのクラッシュまたはロックアップを引き起こす。したがって、通常モードから低電力モードへまたはその逆の推移中に、システムが障害を発生する可能性があり、やはり、電力節約機能をディスエーブルするようにユーザを促す。
【0005】
本発明は、上で示した問題の1つまたは複数を克服すること、または少なくとも影響を減らすことを対象とする。
【0006】
(発明の概要)
本発明の一態様では、電気的に一緒に結合され、互いに通信する第1および第2の構成要素での第1クロック周波数信号と第2クロック周波数信号の間の推移を制御する方法が提供される。この方法には、第1構成要素と第2構成要素の間での通信を停止させるフリーズ信号のアサートが含まれる。その後、フリーズ確認信号が、第1構成要素および第2構成要素から受け取られ、それらの間の通信が停止したことが示される。第1構成要素および第2構成要素に変更信号が送られ、これらの構成要素が第1クロック周波数信号と第2クロック周波数信号の間で切り替える。
【0007】
本発明のもう1つの態様では、第1クロック周波数信号と第2クロック周波数信号の間での推移を制御する装置が提供される。この装置は、第1構成要素、第2構成要素、およびコントローラを備えている。第1構成要素は、フリーズ信号を受け取ることと、第1構成要素からの通信が停止した後に確認信号を送ることができる。第2構成要素は、フリーズ信号を受け取ることと、第2構成要素からの通信が停止した後に確認信号を送ることができる。コントローラは、第1および第2の構成要素にそれらの間での通信を停止することを要求するフリーズ信号を送ることと、第1および第2の構成要素からの確認信号の受け取りに応答して第1クロック信号と第2クロック信号の間で推移することができる。
【0008】
本発明は、添付図面と共に以下の詳細な説明を参照することによって理解することができるが、図面では、符号の左端の数字が、めいめいの符号が最初に現れる図面を示す。
【0009】
本発明は、さまざまな修正形態および代替形態を許すが、本発明の特定の実施形態を、例として図面に示し、本明細書で詳細に説明する。しかし、特定の実施形態の本明細書での説明が、開示される特定の形態に本発明を制限することを意図されたものではなく、逆に、その意図が、請求項によって定義される本発明の趣旨および範囲に含まれるすべての修正形態、同等物、および代替形態を含むことであることを理解されたい。
【0010】
(特定の実施形態の詳細な説明)
本発明の例示的実施形態を、下で説明する。説明をわかりやすくするために、本明細書では、実際の実施形態のすべての特徴を説明はしない。もちろん、そのような実際の実施形態の開発において、システム関連およびビジネス関連の制約への準拠など、実施形態ごとに異なる開発者の特定の目標を達成するために、多数の実装固有の判断を行わなければならないことを理解されたい。さらに、そのような開発労力が、複雑であり、時間がかかる可能性があるが、それでも、この開示の利益を有する当業者の日常の仕事であることを理解されたい。
【0011】
本発明による動作の複数レベル低電力モードを提供する方法および装置の例示的実施形態を、図1から21に示す。本明細書を完全に読めば当業者に容易に明らかになるように、発明的方法および装置は、本明細書に例示される実施形態以外のさまざまなコンピュータ・システムに適用可能であり、さらに、論理デバイス、メモリ・デバイス、および類似物を含むがこれに制限されない、コンピュータ以外の電子デバイスに適用可能である。
【0012】
図1に移ると、本発明の1つまたは複数の態様を有利に使用することができるコンピュータ・システム100の様式化された図が示されている。一般に、コンピュータ・システム100は、第1および第2の中央処理装置(CPU)104および106と、第1および第2のキャッシュ108および110と、メモリ112と、入出力(I/O)114と、他の雑構成要素116などの例示的な構成要素102からなる。これらの構成要素102は、アーキテクチャ118を介して互いに結合され、アーキテクチャ118を用いると、構成要素102が、互いに、および潜在的に、他のコンピュータ・システム、プリンタ、スキャナなどの、他の外部デバイス(図示せず)と効率的に通信できる。
【0013】
通常動作中に、構成要素102のそれぞれが、事前に選択された割合で電力を引き出しながら、事前に選択されたクロック周波数で動作する。この通常動作中に、コンピュータ・システム100は、一般に、構成要素102によって代表されるコンピュータ・システム100のリソースを使用して、要求されるすべての作業を実行するように完全に電力を供給され、準備される。すなわち、通常動作中に、構成要素102は、設計された最大限の、低下していない能力に対応するモードで動作している。構成要素102は、アイドルまたは全力での動作の間のある速度で有用な作業を行っているかもしれないが、それでも、設計された最大の低下していない能力で有用な作業を実行するのに十分な電圧、電流、およびクロック周波数を供給されている。
【0014】
したがって、コンピュータ・システム100は、その構成要素102を、その最大能力より低い速度で有用な作業を実行させることがありえる。これらの利用限界以下の期間中に、コンピュータ・システム100が、現在割り当てられている作業を、より低いクロック周波数および/またはより少ない電力で、悪影響なしに実行できる可能性がある。さらに、コンピュータ・システム100が、本質的にアイドルであり、ほとんどまたは全く有用な作業を行っていない時もあるであろう。これらのアイドル期間中に、悪影響なしに、コンピュータ・システム100のクロック周波数および/または電力消費をさらに削減することができる可能性がある。
【0015】
したがって、本発明の少なくとも1つの態様によれば、コンピュータ・システム100が、少なくとも3つの動作のモードすなわち、通常モード、低電力モード、およびアイドル・モードを有する。低電力モード中に、より低い速度、電力、または機能ではあるがコンピュータ・システム100を動作状態に保つことができる範囲で、コンピュータの少なくとも一部に供給されるクロック周波数をかなりの率減らすことができる。1つの例示的実施形態では、クロック周波数を約半分だけ減らすことができる。クロック信号を減らす率が、設計選択の問題であり、本発明の趣旨および範囲から逸脱せずに、半分という例示的な率から大幅に変更できることを当業者は理解するであろう。
【0016】
その後、コンピュータ・システム100の全機能が要求される場合に、クロック周波数をすばやく完全な値に復元して、コンピュータ・システム100の全機能を復元することができる。その一方で、コンピュータ・システム100の負荷が、たとえば実質的にアイドルまでさらに低下する場合に、構成要素102の少なくとも一部に印加されるクロック周波数をさらに減らすことによって、アイドル・モードを実施することができる。このクロック周波数のさらなる減少によって、コンピュータ・システム100を、かなり低下してはいるが動作状態に保ちながら、コンピュータ・システム100が消費する電力をさらに減らすことができる。この動作のアイドル・モードでは、コンピュータ・システム100はアクティブであり、キーボード、マウス、または他のポインティング・デバイス(図示せず)によるオペレータ対話などの要求に応答できるままである。さらに、一部のコンピュータ・システム100を、コンピュータ・システム100との通信を周期的に試みるネットワーク(図示せず)に結合することができる。コンピュータ・システム100は、クロック周波数を適当なレベルに復元することによってコンピュータ・システム100を低電力モードまたは通常モードに戻すか、動作のアイドル・モードにとどまりながら要求を処理することを選択することによって、このタイプの要求に応答するようにプログラムまたはハードワイヤリングすることができる。
【0017】
一実施形態では、クロック周波数が、通常モード周波数の約1/32に減らされる。しかし、クロック信号を減らす率が、設計選択の問題であり、本発明の趣旨および範囲から逸脱せずに、1/32という例示的な率から大幅に変更できることを、当業者は理解するであろう。
【0018】
通常、低電力、およびアイドルの動作モードの間で推移する時を判定する際に、さまざまな要因を考慮することができる。たとえば、コンピュータ・システム100が、構成要素102の使用状況を監視することができる。すなわち、構成要素102の使用状況が、事前に選択された時間の長さにわたって事前に選択されたレベル未満に落ちる時に、コンピュータ・システム100が、低電力動作モードまたはアイドル動作モードへの移動を選択することができる。使用状況は、最後にアクセスされた時からの時間、現在消費されているリソースの量、事前に選択された時間の持続期間にわたって使用されるリソースの平均量、および類似物など、さまざまな従来の技法のどれを使用しても測定することができる。
【0019】
構成要素102は、すべてが同一のクロック周波数で動作することに制限されない。実際に、コンピュータ・システム100は、一般に、通常動作中にクロック周波数の分数成分で動作する構成要素102を有する。たとえば、メモリ112は、しばしば、CPU104および106が動作する速度の分数で動作する。高速CPUと同一の速度で動作することができる半導体メモリは、高価であり、したがって、比較的大きいメモリ112を構成するのに通常は使用されず、一般に、かなり小さいキャッシュ108および110を構成するのに使用される。同様に、アーキテクチャ118の例示的実施形態で使用されるいくつかのバスは、通常動作中にクロック周波数の分数成分で動作することができる。したがって、これらのバスに結合される構成要素102も、通常動作中に、減らされたクロック周波数で動作することができる。いくつかの実施形態で、これらのバスおよび構成要素102の少なくとも一部に供給されるクロック周波数を、比例して減らすことが有用である場合がある。その一方で、低電力モードまたはアイドル・モードに入る時に、バスおよび構成要素102の選択された1つのクロック周波数を維持することが有用である場合がある。本発明の一態様では、さまざまなバスおよび構成要素102のクロック周波数を、望みに応じて独立に変更できるようにする方法および装置が提供される。
【0020】
したがって、通常は、コンピュータ・システム100全体にわたって同一の周波数を使用しているわけではないが、さまざまなクロック周波数は、通常は、位相ロック・ループ(PLL)回路などのデバイスによって同期されることが多い(本発明で使用されるPLLの一実施形態の詳細な議論については、図5から8および付随する説明を参照されたい)。すなわち、CPU104に印加されるクロック信号はI/O 114に印加されるクロック信号と同期され、その結果、さまざまなクロック信号のロウからハイへ(またはハイからロウへ)の推移が、実質的に同期して発生する。
【0021】
さまざまなクロック信号が同期されない場合には、構成要素102の間を移動する信号が壊れる可能性がある。たとえば、メモリ112がCPU104にデータを供給している場合に、メモリ112は、メモリ・クロック信号のロウからハイへの推移から測定される時間の間にそれを行う。CPUクロック信号が、メモリ・クロック信号と正確に同期していないと、CPU104が、メモリ112によって供給されるデータを「探す」のが、遅すぎるか早過ぎる可能性がある。したがって、メモリ112によって供給されるデータが、失われるか、ほかの形で壊れる。
【0022】
したがって、通常モード、低電力モード、およびアイドル・モードの間の推移中に、クロック周波数の変動は構成要素102の間で厳密に調整されなければならない。構成要素102のそれぞれの中に配置されるか他の形で構成要素からアクセス可能なレジスタ120が、少なくとも部分的に、クロック周波数の変動の調整を援助する。さらに、構成要素102の間のハンドシェーク・プロトコルが、さらに、クロック周波数変動の調整を助ける。
【0023】
アーキテクチャ118は、本発明の趣旨および範囲から逸脱せずに、さまざまな形のどれにでもすることができる。本発明のさまざまな態様を例示するために、例示的アーキテクチャでの本発明の実施形態を、図2以降に示す。しかし、本発明は、より広範囲の応用分野を許し、請求項で特に示されない限り、本明細書に示された特定のアーキテクチャ118に制限されると見なしてはならない。
【0024】
図2に、本発明の1つまたは複数の態様を有利に使用することができるコンピュータ・システム200の一実施形態の最上位ブロック図を示す。コンピュータ・システム200に、Sun Microsystemsが販売するUltraSPARC(商標)マイクロプロセッサまたはMicroSPARCマイクロプロセッサなどの中央処理装置(CPU)202および204の対を含めることができる。付随する明細書の利益を有する当業者は、本発明が、単一CPUシステムを含むさまざまなコンピュータ・システムに応用分野を有することを理解するであろう。入出力(I/O)ブリッジ206が、クロスバ・スイッチ210の通常の組を介して複数の周辺デバイス208をCPU202および204にインターフェースする。周辺デバイス208は、クロスバ・スイッチ210を介してメモリ212と通信することもできる。さらに、メモリ212を、1つまたは複数のCPU202および204に直接に結合することができる。1つまたは複数のキャッシュ214を、1つまたは複数のCPU202および204に結合することもできる。
【0025】
コンピュータ・システム200には、ブート・バス・コントローラ(BBC)216が含まれる。このBBC216は、制御信号の生成および構成要素202から214のそれぞれへの分配を含む複数の機能を提供する。さらに、BBC216に、エネルギまたは電力コントローラ218が含まれ、この電力コントローラ218が、通常動作モード、低電力動作モード、およびアイドル動作モードの間の推移中に変化するクロック周波数を調整する。
【0026】
最後に、構成要素202から214のそれぞれが、それ自体を1つのレジスタ220に関連付け、このレジスタ220が、通常動作モード、低電力動作モード、およびアイドル動作モードの間の推移中のクロック周波数の変動の調整を援助する。図3に移ると、レジスタ220の1つの例示的な実施形態が示されている。レジスタ220は、複数のビットを有し、そのうちの2つのビット300および302が、関連する構成要素202が切り替えられるクロック周波数または動作モードの識別に使用される。一実施形態では、ビット300および302によって、下の表Iに示されているように動作モードまたはクロック周波数が識別される。
【0027】
【表1】
【0028】
レジスタ・ビット300および302には、BBC216の電力コントローラ218によって所望の値がセットされる。すなわち、さまざまな動作モードの間の切替の前に、コンピュータ・システム200で動作するソフトウェアが、レジスタ220のそれぞれへの書込動作を実行して、これから行われる動作モードの切替に備えてビット300および302の値に所望のレベルをセットする。たとえば、コンピュータ・システム200が、現在は通常モードで動作しているが、現在は比較的低い負荷がコンピュータ・システム200に課せられており、コンピュータ・システム200を低電力動作モードに切り替えることができると仮定する。CPU202および204の一方または両方によって実行されるソフトウェアが、レジスタ220のビット300および302に2進値01を書き込んで、構成要素202を次の推移中に低電力動作モードに切り替えなければならないことを示す。
【0029】
図示の実施形態では、電力コントローラ218は、ハードウェアとソフトウェアの両方を含む。ハードウェアの少なくとも一部をBBC216に置くことができ、CPU202および204を、本明細書に記載の機能の一部またはすべてを実施するソフトウェアを実行するようにプログラムすることができる。しかし、当業者が理解するように、特定の機能を実施するように設計されたハードウェア回路を使用することもできる。さらに、本明細書に記載のコントローラ218の機能を、地理的に分散されるかされないものとすることができる1つまたは複数の処理ユニットによって実行することができる。本発明および対応する詳細な説明の諸部分は、コンピュータ・メモリ内のデータ・ビットに対する動作を表すソフトウェアまたはアルゴリズムおよび記号表現に関して提示される。これらの記述および表現は、当業者が他の当業者に作業の内容を効率的に伝えるのに用いる記述または表現である。本明細書で使用される用語としての、および一般に使用されるものとしてのアルゴリズムは、所望の結果に導くステップの自己整合的シーケンスと見なされる。これらのステップは、物理的量の物理的操作を必要とするステップである。通常、必ずではないが、これらの量は、保管、転送、組合せ、比較、および他の形の操作を受けることができる、光信号、電気信号、または磁気信号の形をとる。これらの信号を、ビット、値、要素、記号、文字、項、数、または類似物と称することが、時々、主に一般的な使用のために便利であることがわかっている。
【0030】
しかし、これらおよび類似する用語のすべてが、適当な物理量に関連付けられなければならず、これらの量に適用される単に便利な名札であることに留意されたい。特に他の形で述べられない限り、または議論から明白である場合に、「処理」、「コンピューティング」、「計算」、「判定」、「表示」、または類似物などの用語は、コンピュータ・システムまたは類似する電子計算デバイスの動作および処理であって、コンピュータ・システムのレジスタおよびメモリ内の物理的電子量として表現されるデータを操作し、コンピュータ・システムのメモリまたはレジスタあるいは他のそのような情報記憶デバイス、伝送デバイス、または表示デバイス内の物理量として同様に表現される他のデータに変換する動作または処理を指す。
【0031】
コンピュータ・システム200のさまざまな動作モードの間の推移は、図4のタイミング図に全般的に示されたハンドシェーク・プロトコルによって調整される。レジスタ220が正しく構成された後に、電力コントローラ218が、Freeze(フリーズ)信号400をアサートすることによって動作モードの間の推移を開始する。図示の実施形態では、Freeze信号400が、論理ロウ値への推移402によってアサートされるものとして図示されている。しかし、Freeze信号400(および本明細書で述べる他のすべての信号)を、本発明の趣旨および範囲から逸脱せずに、論理ハイ値への推移によってアサートされるものとして簡単に指定できることを当業者は理解するであろう。
【0032】
構成要素202は、Freeze信号400を受け取り、バス・トランザクションなど、構成要素202の間のすべてのトランザクションを延期する処理を開始することによって応答する。構成要素202のそれぞれは、延期処理を完了する時に、電力コントローラ218にFreeze Acknowledge(フリーズ確認)信号404を送る。構成要素202は、異なる周波数で動作している可能性があり、それらの間の変化するサイズのデータのパケットの転送処理中である可能性があるので、保留中のトランザクションのすべてを延期する処理を完了するために、構成要素202がさまざまな長さの時間を必要とする可能性がある。したがって、電力コントローラ218は、ブロック406によって示されるように、定義されない時間の間だけ、すべての構成要素202がFreeze Acknowledge信号404を用いて応答するのを待つ。すなわち、電力コントローラ218は、Freeze Acknowledge信号404が構成要素202のそれぞれから受け取られるまで、構成要素202のクロック周波数の変更に関してそれ以上の処置を講じない。本発明は、すべてのトランザクションの完了を必要とするのではなく、すべてのトランザクションが、クロック周波数の変更を完了できるまで少なくとも一時的に停止されることを理解されたい。その後、保留中のトランザクションを再開することができる。
【0033】
すべてのFreeze Acknowledge信号404が受け取られた後に所定の遅延T1で、電力コントローラ218は、アクティブ・ロウのChange(変更)信号408をアサートする。構成要素202は、変更信号を受け取り、事前に選択された数のクロック・サイクルの後に、レジスタ220のビット300および302によって示される新しいクロック周波数に移動する。Clock A(クロックA信号)410は、電力コントローラ218によって作られ、1つまたは複数の構成要素202に渡されるクロック信号を表すことが意図されている。Clock B(クロックB)信号412は、レジスタ220のビット300および302の内容に基づいて1つまたは複数の構成要素102によってまたはそれらのために生成されるクロック信号を表すことが意図されている。一般に、構成要素202は、Clock B信号を使用して、その内部動作のタイミングを制御する。したがって、図4の例示的タイミング図からわかるように、Clock B信号412は、Change信号408のデアサートの後の第3クロック・サイクル414に周波数が変化する。例示的実施形態では、構成要素202のすべてが、実質的に同時に、ビット300および302に従って周波数を変更する。
【0034】
Change信号408がデアサートされた後に、電力コントローラ218は、Clock B信号412が安定することを可能にするために所定の時間だけ待ち、その後、Freeze信号400を解放する。Freeze信号400が解放またはデアサートされたならば、構成要素202の間のトランザクションを再開できる。ある点で、Freeze Acknowledge信号404が、構成要素202によって解放またはデアサートされる。そのタイミングは、クリティカルではないが、Change信号408がデアサートされた後に、Clock B信号412の周波数のその後の推移を見越して行われる必要がある。
【0035】
図4には、PLL Bypass(PLLバイパス)信号416も示されている。PLL Bypass信号416は、さまざまな動作モードの間での推移中に、メモリ212の動作と共に使用される。PLL Bypass信号416およびメモリ212の詳細な議論は、後で図9から12に関して示す。
【0036】
構成要素202のうちの選択された1つによって使用されるClock B信号の周波数を減らすことによって、さまざまな異なる電力節約レベルを達成できることを理解されたい。たとえば、コンピュータ・システム200の動作中に、選択構成要素202を、比較的高い速度で使用し、他の構成要素202を、アイドルまたは実質的に利用不足のままにすることができる。電力コントローラ218は、アイドルまたは利用不足の構成要素202のクロック周波数を選択的に減らすと同時に、コンピュータ・システム200によって現在使用されている構成要素のクロック周波数を維持することができる。
【0037】
図5に移ると、本発明の一態様による位相ロック・ループ(PLL)コントローラ500のブロック図が示されている。複数のPLLコントローラ500を、構成要素202に関連付けることができる。すなわち、上で述べたClock B信号412を供給するために、構成要素202のそれぞれが、その中またはそれに関連する1つまたは複数のPLLコントローラ500を有することができる。一般に、PLLコントローラ500は、第1のN分周カウンタ502を有し、N分周カウンタ502は、Clock A信号410を受け取り、所望の周波数を減らされたクロック信号を作る。この信号が、普通の位相比較器504の入力端子に渡される。位相比較器504の出力端子は、ループ・フィルタ505を介して普通の電圧制御発振器(VCO)506に結合されている。第2のN分周カウンタ508がVCO506の出力端子に結合されている。第2のN分周カウンタ508の出力端子は普通のクロック・ツリー510に結合されている。クロック・ツリー510は、Clock B信号412を含む複数のクロック信号を作ることができる。Clock B信号は、遅延回路512を介して位相比較器504の第2入力に結合される。
【0038】
PLLコントローラ500の動作を説明するために、コンピュータ・システム200が通常動作モードであり、Clock A信号410が事前に選択されていた周波数であり、この周波数が、この説明において約500MHzであると仮定する。コンピュータ・システムが通常動作モードなので、Clock B信号412は、Clock A信号と同一の周波数であり、Clock A信号410と同期している。したがって、N分周カウンタ502および508は、レジスタ220の内容によって、Clock B信号412として、たとえば500MHzの通常周波数を作るように指示されている。すなわち、N分周カウンタ502は、図6Aに示された短い遅延D1を除いて、主に無変更でClock A信号410を通過させる。
【0039】
VCO506は、現在、Clock A信号と同一周波数(すなわち、この例では500MHz)である出力信号を送り出している。第2のN分周カウンタ508は、第1のN分周カウンタ502と同様に、短い遅延を除いて主に無変更のVCO信号を送る。クロック・ツリー510は、遅延されたVCO信号を受け取り、Clock B信号412を作る。遅延回路512を介するフィードバック・パスによって、Clock B信号が位相比較器504の第2入力に渡される。遅延されたClock B信号412と遅延されたClock A信号410の間の位相差によって、位相比較器が、VCO506の位相を変更する出力信号を送る。この処理は、Clock B信号412がClock A信号410と同期するまで繰り返される。
【0040】
遅延回路512は、図6Aに示された、第1のN分周カウンタ502によって導入される遅延D1と実質的に一致することを意図された遅延をClock B信号412に導入する。したがって、位相比較器504は、Clock A信号410とClock B信号412の遅延されたバージョンを比較する。その際、遅延されたClock B信号が遅延されたClock A信号600に同期し、これによって、遅延回路512が遅延D1と一致する場合に、Clock B信号412がClock A信号410と同期する。
【0041】
コンピュータ・システム200が、低電力モードに入ったと仮定すると、N分周カウンタ502および508は、レジスタ220の内容によって、Clock B信号412の周波数を、たとえば半分に減らす(すなわち、この例では約250Mhzにする)ように指示されている。図6Bからわかるように、N分周カウンタ502は、Clock A信号410の1つおきのクロック・パルスを除去することによって、周波数を減らされたクロック信号602を作る。第1のN分周カウンタ502によって導入される遅延D1は、図6Aに示されているように、通常動作中と実質的に同一のままになる。実質的に同一の時に、第2のN分周カウンタ508も、VCO506によって作られるクロック信号の1つおきのクロック・パルスを除去することによって、周波数を減らされたクロック信号602に類似する周波数を減らされたクロック信号を作る。クロック・ツリー510は、N分周カウンタ508からの周波数を減らされた信号を使用して、Clock B信号412を作る。Clock B信号412の遅延されたバージョン604が遅延回路512によって作られる。
【0042】
遅延されたClock B信号604が、位相比較器504に渡され、遅延されたClock A信号602と比較される。遅延されたClock A信号602と遅延されたClock B信号604の位相の間の差によって、VCO506がわずかに変化して、遅延されたClock B信号602を遅延されたClock A信号604に同期する。遅延されたClock A信号602と遅延されたClock B信号604が、減らされた周波数(すなわち、この例では250MHz)のClock B信号と同期される。しかし、VCO506は、通常周波数(すなわち、この例では500MHz)での動作を継続する。すなわち、VCO506は、その出力信号周波数範囲の大きい変更を行うことを強制されるのではなく、さまざまな動作モードの間のすべての変更を通じて実質的に通常の周波数のままになる。VCO506の比較的一定の周波数は、PLL500の安定動作に寄与し、Clock B信号412の周波数の大きい変動がある場合であっても、Clock B信号412をClock A信号410にすばやく同期することができるようになる。
【0043】
アイドル・モードでのコンピュータ・システム200の動作は、低電力モードでの動作に実質的に類似する。アイドル・モードでは、N分周カウンタ502および508が、レジスタ220の内容によって、Clock B信号412の周波数を、たとえば32で割る(すなわち、この例では約15.625Mhzにする)ように指示されている。N分周カウンタ502は、Clock A信号410の1つのクロック・パルスを送り、31個のクロック・パルスを除去することによって、周波数を減らされたクロック信号を作る。第1のN分周カウンタ502によって導入される遅延D1は、動作の通常モードおよび低電力モード中と実質的に同一のままになる。実質的に同一の時に、第2のN分周カウンタ508も、VCO506によって作られるクロック信号のパルスの1つを送り、31個のパルスを除去することによって、周波数を減らされたクロック信号に類似する周波数を減らされたクロック信号を作る。クロック・ツリー510は、N分周カウンタ508からの周波数を減らされた信号を使用して、Clock B信号を作る。遅延回路512がClock B信号の遅延されたバージョンを作る。
【0044】
やはり、位相比較器504は、遅延されたClock A信号およびClock B信号の位相を比較し、その差を使用して、VCO506をわずかに変更させて、遅延されたClock B信号を遅延されたClock A信号に同期させる。遅延されたClock A信号およびClock B信号は、減らされた周波数(すなわち、この例では15.625MHz)であるClock B信号と同期される。しかし、VCO506は、通常周波数(すなわち、この例では500MHz)での動作を継続する。すなわち、VCO506は、その出力信号周波数の大きい変更を行うことを強制されるのではなく、さまざまな動作モードの間のすべての変更を通じて実質的に通常周波数のままになる。
【0045】
図7に、図5のPLLコントローラ500の実施形態を示す。この実施形態では、N分周カウンタ502が、ANDゲート700および制御論理回路702を含む。ANDゲート700は、第1入力および第2入力を有し、第1入力は、Clock A信号410を受け取り、第2入力は、制御論理回路702から制御信号を受け取る。一般に、制御論理回路702は、論理ハイ信号および論理ロウ信号を作って、ANDゲート700が、位相比較器504に渡されるようにClock A信号410を通過させるかブロックすることができるようにする。この形で、Clock A信号410の周波数を、無変更のまま送るか、クロック・パルスを選択的に除去することによって周波数を減らして送ることができる。たとえば、レジスタ220の内容によって示されるように、コンピュータ・システムが通常モードで動作している場合に、制御論理回路702は持続的な論理ハイ信号を送る。これによって、Clock A信号410のクロック・パルスのすべてが渡される。
【0046】
コンピュータ・システム200が、動作の低電力モードに入ったと仮定すると、制御論理回路702は、レジスタ220の内容に基づいて、Clock A信号の周波数を半分に減らさなければならないことを「知る」。したがって、図8Aに示されているように、制御論理回路702は、Clock A信号410の1つおきのクロック・パルス中に論理ハイになる制御信号800を送る。したがって、ANDゲート700は、Clock A信号の1つおきのパルスを通過させることができ、その周波数を半分に減らし、クロック周波数を減らされた信号802を作る。
【0047】
N分周カウンタ508を実質的にN分周カウンタ502に似た形で構成でき、N分周カウンタ502および508の両方が実質的に同時にある動作モードから別の動作モードに推移するようにすることに注意しなければならないことを理解されたい。レジスタ220の内容は、破線の矢印514によって示されるように、N分周カウンタ502および508の両方によって使用される除数が一致することを保証するために、N分周カウンタ508に通信される必要がある。しかし、レジスタ220を制御するのに使用されるクロック信号は、Clock A信号およびClock B信号と同期されるが、N分周カウンタ508は、VCO506の出力によって直接に駆動される。VCO506からの出力信号は、クロック・ツリー510によって導入される遅延に実質的に対応する率だけ、Clock A信号およびClock B信号から位相はずれになっている。このタイミングの差が、N分周カウンタ508にレジスタ220の内容を送ることに関するタイミング問題を引き起こす可能性がある。したがって、レジスタ220からの信号は、Clock B信号の徐々に遅延が増えるバージョンを用いてクロッキングされるバッファ内の一連のステージを介して渡される。すなわち、このバッファのステージは、クロック・ツリー510のタップから取られる、徐々に遅延が減るクロック信号を用いてクロッキングされる。
【0048】
コンピュータ・システム200が、動作のアイドル・モードに入ったと仮定すると、制御論理回路702が、レジスタ220の内容に基づいて、Clock A信号の周波数を1/32だけ減らさなければならないことを「知る」。したがって、図8Bに示されているように、制御論理回路702は、Clock A信号410の1クロック・パルスの間論理ハイであり、次の31クロック・パルスの間論理ロウになる制御信号900を送る。したがって、ANDゲート700は、Clock A信号の32パルスごとに1パルスを送り、1/32だけ周波数を減らし、クロック周波数を減らされた信号902を作る。
【0049】
図8Aおよび8Bからわかるように、クロック周波数を減らされた信号802および902は、率D1だけ遅延されている。遅延D1は、この実施形態では、ANDゲート700の処理時間の結果である。ANDゲート700の処理時間は、動作のモードから独立に、比較的一定のままである。上で述べたように、Clock B信号412は、フィードバック・パスに遅延回路512を導入することによってClock A信号410に正確に同期される。この遅延回路512は、遅延D1に実質的に等しい遅延を導入する。図示の実施形態では、遅延回路512が、第1入力がClock B信号412に結合され、第2入力がシステム電圧Vccなどの論理ハイ信号に結合されたANDゲート704の形をとる。同一のプロセスを使用し、類似するサイズおよび構成のトランジスタを使用して同一のダイでANDゲート700を構成することによって、ANDゲート700および704によって導入される遅延を実質的に一致させることができる。
【0050】
図7に戻ると、第2のN分周カウンタ508を、第1のN分周カウンタ502に関して開示したものに類似するか同一の設計とすることができることを、当業者は理解するであろう。N分周カウンタ502および508のさまざまな他の設計を、本発明の趣旨および範囲から逸脱せずに使用することができる。したがって、本発明は、請求項で特に示されない限り、図7に示されたN分周カウンタ502および508の特定の実施形態に制限されない。
【0051】
構成要素202のすべてに、PLLコントローラ500が含まれるのではなく、他のまたは追加の方法および装置を使用して、さまざまな動作モードの間の推移中の誤動作の可能性を減らすことができる。たとえば、コンピュータ・システム200のメモリ212で、異なる戦略を使用して、低電力モードで使用される周波数を減らした信号にロックできるようにする。図9からわかるように、メモリ212は、バス900と、VCO_SELECT制御信号を含む制御信号線902によってCPU204に結合される。VCO_SELECT制御信号は、メモリ212内のPLL904に渡され、PLL904がBBC216によって渡されるClock B信号と同期するのを助けるのに使用される。
【0052】
一実施形態では、PLL904が、Motorola,Inc.社が販売する、部品番号MPC953などの低電圧PLLクロック・ドライバの形をとる。図10のブロック図からわかるように、PLL904は、Clock In信号を受け取り、Clock In信号を、位相比較器1000および低域フィルタ(LPF)1002を介してVCO1004の制御入力に渡す。VCO1004の出力端子は、マルチプレクサ1008の第1入力端子に結合され、2分周カウンタ1005を介してマルチプレクサ1008の第2入力端子に結合される。VCO_SELECT信号は、マルチプレクサ1008の制御入力端子に渡される。マルチプレクサ1008の出力端子は、第2のマルチプレクサ1010を介してクロック・ツリー1012に結合される。クロック・ツリー1012は、シンクロナス・ダイナミック・ランダム・アクセス・メモリ(SDRAM)などのメモリ212に、その動作を制御するためにClock Out信号を送る。Clock Out信号は、フィードバック・パスを介して位相比較器1000の入力端子にも渡される。
【0053】
したがって、マルチプレクサ1008は、動作の第1モードでは、VCO_SELECT信号によって、VCO1004によって作られる信号を実質的に無変更で渡す。しかし、動作の第2モードでは、VCO_SELECT信号によって、VCO1004によって作られる信号の半分の周波数を有する信号を渡す。PLL904は、動作の第1モードでは、第1範囲に含まれる周波数を有する信号にロックし、動作の第2モードでは、第2範囲に含まれる周波数を有する信号にロックすることができる。たとえば、PLL904は、動作の第1モードでは、少なくとも約150から62.5MHzの範囲内のClock In信号に信頼性のある形でロックすることができ、動作の第2モードでは、少なくとも約125から50MHzの範囲内のClock In信号に信頼性のある形でロックすることができる。
【0054】
構成要素202の一実施形態では、動作の通常モード中のシステム・クロックが、約100から150MHzの範囲内である。したがって、システム・クロック信号が、100から125MHzなど、100から150MHzの範囲の下側部分に含まれる周波数を有する場合に、コンピュータ・システム200が低電力モードに入り、Clock In信号がシステム・クロック信号の半分になる(すなわち、約62.5から50MHzの範囲内)時に、PLL904が動作の第1モード(すなわち、少なくとも約150から62.5MHzの範囲内の信号にロックすることができる)である場合に、PLL904は、信頼性のある形でClock In信号にロックできなくなる。逆に、約125から150MHzなどの100から150MHz範囲の上側部分に含まれる周波数を有する場合、コンピュータ・システムが通常モードであり、PLL904が動作の第2モードである(すなわち、125から50MHzの範囲の信号にロックできる)場合に、システム・クロック信号は、PLL904は、Clock In信号に信頼性のある形でロックすることができない。
【0055】
PLL904は、コンピュータ・システム200が通常モードまたは低電力モードのいずれかであり、VCO_SELECT信号が正しく構成される場合に、Clock In信号に正しくロックすることができる。たとえば、システム・クロックが約140MHzの周波数で動作する場合に、Clock In信号は、通常モードで約140MHz、低電力モードで約70MHzになる。VCO_SELECT信号が、PLL904を第1動作モードにセットするためにアサートされている場合に、PLL904は、約150から62.5MHzの範囲の信号に信頼性のある形でロックすることができ、この範囲には、140MHzおよび70MHzの期待される信号が含まれる。同様に、システム・クロックが、110MHzなど、周波数範囲の下側部分で動作している場合に、Clock In信号は、通常モードで約110MHz、低電力モードで約55MHzになる。VCO_SELECT信号が、PLL904を第2動作モードにセットするためにデアサートされている場合に、PLL904は、約125から50MHzの範囲内の信号に信頼性のある形でロックすることができ、この範囲には、110MHzおよび55MHzの期待される信号が含まれる。
【0056】
したがって、コンピュータ・システム200の初期化中に、CPU204が、システム・クロックの周波数を検出し、それに従ってVCO_SELECT信号をセットする。たとえば、CPU204が、システム・クロックが許容される周波数範囲の下側部分(たとえば約100から125MHz)に含まれる周波数を有することを検出すると、VCO_SELECT信号がアサートされて、マルチプレクサ1008が、2分周カウンタ1006の出力信号を送る。その一方で、CPU204が、システム・クロックが許容される周波数範囲の上側部分(たとえば約125から150MHz)に含まれる周波数を有することを検出すると、VCO_SELECT信号がデアサートされて、マルチプレクサ1008が、VCO1004の出力信号を送る。
【0057】
図11に、初期化モードまたはスタートアップ・モード中にCPU204によって操作することができるソフトウェア制御プロセス1100の流れ図の一実施形態を示す。図11に示されたソフトウェアは、一般に、VCO_SELECT信号の値を正しくセットする責任を負う。プロセス1100は、ブロック1102で開始され、ここで、コンピュータ・システム200が、初期化モードまたはスタート・アップ・モードに入る。このプロセスは、一般に、コンピュータ・システム200が、電源をオンにされるかリセットされる時に発生するが、通常は、システムがリセットされるか、電源を切ってからもう一度入れなおすまで、繰り返されない。
【0058】
ブロック1104で、CPU204が、システム・クロック信号を監視して、その周波数を判定する。その後、ブロック1106で、CPU204が、システム・クロック信号の周波数を事前に選択されたセットポイントと比較する。このセットポイントは、上で説明した例示的なシステムでは約125MHzである。最後に、ブロック1108で、CPUは、約125MHzを超えるシステム・クロック信号の周波数に応答して第1の値、約125MHz未満のシステム・クロックの周波数に応答して第2の値に、VCO_SELECT信号をセットする。
【0059】
メモリ212には、動作の通常モード、低電力モード、およびアイドル・モードの間での推移中に、それに保管されたデータが壊れるか失われる可能性を減らすための追加の方法および装置が含まれる。たとえば、メモリが、シンクロナス・ダイナミック・ランダム・アクセス・メモリ(SDRAM)などのダイナミック要素からなる場合には、要素を周期的にリフレッシュしなければならず、さもなければ、そこに置かれていた電荷が流出する可能性がある。メモリ要素を周期的にリフレッシュする過程は、不安定なクロック信号によって遅延されるか、他の形で干渉される可能性がある。したがって、動作の通常モード、低電力モード、およびアイドル・モードの間での推移中に、変化する/不安定なクロック信号によって、メモリが、不適切なリフレッシュのゆえに壊される可能性がある。したがって、動作の通常モード、低電力モード、およびアイドル・モードの間での推移中にシステム・クロック信号に頼らない、メモリ212にリフレッシュ・モードに入らせる方法および装置を提供する。
【0060】
図12に示された実施形態では、メモリ212が、部品番号KM416S4030、KM416S9030、またはKM415S16230/KM48S32230としてSamsung社が販売するもの、あるいは部品番号HM5264165FTTまたはHM5225165BTTとして日立社が販売するもの、あるいは部品番号M2v6440BTP、M2v28s40ATP、またはM2v56s40TP/M2v56s30TPとして三菱社が販売するものなどの、シンクロナス・ダイナミック・ランダム・アクセス・メモリ(SDRAM)デバイス1202、1204、1206、および1208のアレイ1200の形をとる。4つのSDRAMデバイス1202、1204、1206、および1208が、図示の実施形態に示されているが、当業者は、本発明の趣旨および範囲から逸脱せずに、より多数またはより少数のデバイスを簡単に使用できることを理解するであろう。SDRAMデバイスは、少なくともデータ信号およびアドレス信号を送るためにバス1210を介して互いに結合される。SDRAMデバイス1202、1204、1206、および1208の動作をもたらすための、書込イネーブル(WE)、カラム・アドレス選択(CAS)、ロウ・アドレス選択(RAS)、チップ選択(CS)、および類似物などの制御信号も、バス1210を介して送るか、別々の制御信号線1212を介して送ることができる。制御信号は、SDRAMデバイス1202、1204、1206、および1208に、自己リフレッシュなど、さまざまな既知の動作のモードに入らせるのに使用することができる。たとえば、動作の自己リフレッシュ・モードは、CS、CAS、およびRAS信号を論理ロウ・レベルに保持し、WE信号を論理ハイ・レベルにバイアスすることによって入ることができる。どの場合でも、確立されたシグナリング・プロトコルがSDRAMデバイス1202、1204、1206、および1208によって認識されたならば、これらのデバイスは、システム・クロックを参照せず、SDRAMデバイス1202、1204、1206、および1208の内部で生成されるクロック信号に頼る、ダイナミック要素を周期的にリフレッシュする動作のモードに入る。
【0061】
一般に、動作の自己リフレッシュ・モードは、通常は、コンピュータ・システム200の残りの部分の電源が切られている場合であっても、SDRAMデバイス1202、1204、1206、および1208のデータを保存するのに使用される。自己リフレッシュ・モードである時に、SDRAMデバイス1202、1204、1206、および1208は、外部クロッキングなしでデータを保存する。自己リフレッシュ・モードが要求されたならば、SDRAMデバイス1202、1204、1206、および1208のクロック信号入力端子は、「ドント・ケア」状態になり、SDRAMデバイス1202、1204、1206、および1208は、それ自体の内部クロッキングを提供する。したがって、各SDRAMデバイス1202、1204、1206、および1208が、それ自体のリフレッシュ・サイクルを実行する。SDRAMデバイス1202、1204、1206、および1208は、そこに保管されたデータの消失または破壊の危険性なしに、不確定の時間の間にわたって自己リフレッシュ・モードにとどまることができる。しかし、クロック信号が安定したならば、コンピュータ・システム200が、事前に定義されたシグナリング・プロトコルを使用してSDRAMデバイス1202、1204、1206、および1208に信号を送って、自己リフレッシュ・モードから出、その結果、SDRAMデバイス1202、1204、1206、および1208がもう一度アクセス可能になるようにする。
【0062】
したがって、システム・クロック信号の周波数の推移中に一時的にSDRAMデバイス1202、1204、1206、および1208に自己リフレッシュ・モードに入らせることによって、SDRAMデバイス1202、1204、1206、および1208が、これらの不安定な期間中にシステム・クロック信号から効果的に分離されることを理解されたい。したがって、SDRAMデバイス1202、1204、1206、および1208の内容が、そうでなければ不安定なシステム・クロック信号によって引き起こされる可能性がある破壊から保護される。
【0063】
図4に戻ると、動作の通常モード、低電力モード、またはアイドル・モードの間で推移中のコンピュータ・システム200の関係する信号のタイミング図が示されている。具体的に言うと、自己リフレッシュ・モードに入り、出るSDRAMデバイス1202、1204、1206、および1208のタイミングが示されている。図4に関して上で詳細に説明したように、動作の通常モード、低電力モード、またはアイドル・モードの間で推移する時のコンピュータ・システム200の全般的な動作には、構成要素102のそれぞれがその活動をフリーズすることを要求することが含まれる。ある時間の間にわたって、構成要素102のそれぞれが、システム・クロック信号が周波数を変更することに対して準備ができていることの肯定信号を用いて応答する。その後、システム・クロック信号の周波数を変更するように指示する。一実施形態では、メモリ212が、すべての構成要素102が周波数変更の準備ができた後、システム・クロック信号の周波数が変更を許可される前のある時に、自己リフレッシュ・モードに入るように指示される。すなわち、メモリ212は、すべてのフリーズ確認信号が受け取られた後、変更信号がアサートされる前に、自己リフレッシュ・モードに入る。
【0064】
その後、Clock B信号が安定し、Clock A信号と同期されるまで、自己リフレッシュ・モードが持続を許可される。一実施形態では、メモリ212は、フリーズ信号がデアサートされた後に、自己リフレッシュ・モードから出る。CPU204内に含まれるメモリ・コントローラ(図示せず)が、メモリ212に自己リフレッシュ・モードに入らせる信号を送る責任を負うことを、当業者は理解するであろう。自己リフレッシュ・モードを開始するためのメモリ・コントローラの動作は、本発明の趣旨および範囲から逸脱せずに、ハードウェアまたはソフトウェアの制御の下で実施することができる。
【0065】
コンピュータ・システム200のメモリ212は、動作のアイドル・モードで、修正された形で動作する。上で述べたように、メモリ212のPLL904の動作は、システム・クロック周波数に従って変更されて、PLL904が、システム・クロック信号の期待される周波数範囲全体を通じて、通常モードと低電力モードの両方でクロック信号に信頼性のある形でロックされる。しかし、PLL904の動作範囲は、アイドル・モードで使用されるクロック周波数まで延びていない場合がある。したがって、PLL904の動作範囲が、アイドル・モードで使用されるクロック周波数を含むのに不十分な場合には、異なる技法が使用される。
【0066】
まず、PLL904をバイパスする。すなわち、図10に示されているように、マルチプレクサ1010は、CLOCK IN信号を受け取るように結合された第1入力端子と、VCO1004から直接にまたは間接的に(すなわち2分周カウンタ1006を介して)ロックされたクロック信号を受け取るように結合された第2入力端子を有する。PLL BYPASS(PLLバイパス)信号が、マルチプレクサ1010の制御入力端子に結合され、その結果、第1入力端子および第2入力端子に印加される信号の一方が、選択的にクロック・ツリー1012に渡され、その後、メモリ212全体に分配される。
【0067】
したがって、PLL BYPASS信号がアサートされていない時には、マルチプレクサ1010は、VCO1004からのクロック信号を通す。この動作のモードでは、PLL904が、CLOCK IN信号の位相をCLOCK OUT信号の位相と能動的に比較して、CLOCK IN信号とCLOCK OUT信号の位相を同期またはロックするようにVCO1004を調整する。このモードでは、PLL904が、0遅延バッファとして動作する。
【0068】
その代わりに、PLL BYPASS信号がアサートされる時に、マルチプレクサ1010は、CLOCK IN信号をクロック・ツリー1012に送る。この動作のモードでは、PLL904が、効果的にバイパスされ、CLOCK IN信号が、実質的に直接にクロック・ツリー1012によって分配される。したがって、PLL904がバイパスされるので、CLOCK OUT信号は、もはやCLOCK IN信号と同期されない。そうではなく、図12に示されているように、CLOCK OUT信号が、マルチプレクサ1010およびクロック・ツリー1012によって導入される遅延に実質的に対応する時間D5だけCLOCK IN信号に対して遅れる。一実施形態では、時間D5が、約6から8ナノ秒の範囲である。
【0069】
時間D5は、システム・クロック信号に同期されるメモリ212と他の構成要素202の間のデータの転送のタイミングが合わなくなる可能性がある持続時間になることもある。したがって、図9に示されているようにCPU204内に配置することができる普通のメモリ・コントローラ906は、動作の第1および第2のモードを使用する。メモリ・コントローラ906の動作の第1モードは、動作の通常モードおよび低電力モードに関連する。メモリ・コントローラ906の動作の第2モードは、動作のアイドル・モードに関連する。
【0070】
動作の第1モードでは、メモリ・コントローラ906は、ソフトウェアまたはハードウェアのいずれかの制御の下で、アドレス信号線またはデータ信号線をラッチ、駆動、またはサンプリングしなければならない時のタイミングを制御するように構成される。すなわち、経験的調査、理論的計算、またはシミュレーションを介して、メモリ・コントローラ906が、メモリ212への要求の後、要求をサービスする前に待つ必要がある時間の量を「知る」。たとえば、メモリ・コントローラ906は、メモリ212からデータを読み取ることを要求する場合に、メモリ212がそのデータをメモリ・コントローラ906に送る前に、第1の事前に選択された時間の間だけ待たなければならないことを「知る」。この第1の待機期間は、メモリ・コントローラ906のハードワイヤされるバージョンに設計するか、CPU204上で実行されるソフトウェアを介してプログラムすることができる。一般に、メモリ・コントローラ906内のレジスタ(図示せず)が、メモリ・コントローラ906によって使用される所望のタイミングを識別する値をその中に保管される。一実施形態では、第1の時間が、1つまたは複数のクロック期間の範囲である。
【0071】
動作の第2のモードでは、レジスタ(図示せず)に保管された値が、メモリ・コントローラ906に第2の異なる時間の間だけ待たせるように変更される。図示の実施形態では、CLOCK OUT信号がCLOCK IN信号とその期間だけ位相はずれである時間D5を考慮に入れるために、第2の時間の間が、第1の期間より長い。したがって、より長い第2の時間の間のために、メモリ212の動作が、動作のアイドル・モード中にさらに低速にされるが、メモリ212はアクティブのままであり、そこに保管されたデータは壊されることがない。メモリ212は、通常のクロック周波数信号の約1/32のCLOCK IN信号を用いる動作のアイドル・モードであっても、低速になるが動作はする。
【0072】
図4に戻ると、動作の通常モード、低電力モード、またはアイドル・モードの間で推移中のコンピュータ・システム200の関係する信号のタイミング図が示されている。具体的に言うと、PLL BYPASS信号のタイミングが示されている。動作の低電力モードからアイドル・モードへの推移中のコンピュータ・システム200の動作は、図4および9を同時に参照することによって理解することができる。
【0073】
BBC216が、レジスタ220のビット300および302をセットすることによって、動作の低電力モードから動作のアイドル・モードへの変更を要求したと仮定する。メモリ・コントローラ906は、ビット300および302に基づいて、システムが動作のアイドル・モードに入ろうとしていることを認識し、したがって、SELF REFRESH信号がアサートされている間にPLL BYPASS信号をアサートする必要がある。SELF REFRESH信号がアサートされていない時にPLL BYPASS信号をアサートすると、CLOCK OUT信号が、PLL BYPASS信号がアサートされている時に大きく変化する可能性があるので、メモリ212に保管されたデータの破壊がもたらされる可能性がある。したがって、図示の実施形態では、PLL BYPASS信号が、CHANGE信号がアサートされてから、事前に選択された時間T2だけ後にアサートされる。その後、コンピュータ・システム200が動作のアイドル・モードにとどまる限り、PLL BYPASS信号がアサートされたままになる。
【0074】
将来のある時点で、BBC216が、コンピュータ・システム200が動作のアイドル・モードから動作の低電力モードに移ることを要求する。コンピュータ・システム200が、低電力モードに切り替わったならば、PLL904が、もう一度信頼性のある形でCLOCK IN信号にロックすることができるようになる。したがって、メモリ212の速度を高めるために、PLL904の動作を復元して、0遅延クロック・サイクルを提供する。PLL BYPASS信号は、CHANGE信号がデアサートされてから、事前に選択された時間の間T5だけ後にデアサートされ、これは、図示の実施形態では、CLOCK B/CLOCK IN信号が、動作の低電力モードに関連する次に高い周波数に推移した後である。
【0075】
図13に移ると、周辺デバイス208(図2を参照されたい)との間のトラフィックを管理するバス・コントローラ1300が示されている。バス・コントローラ1300は、周辺要素インターフェース(PCI)バスなどのバス1302を介して、グラフィックス・カード、サウンド・カード、および類似物などの複数の普通のデバイス1304、1306、および1308に結合される。3つのデバイスが図示されているが、本発明の趣旨および範囲から逸脱せずに、より多数またはより少数のデバイスをバス1302に結合することができる。
【0076】
デバイス1304、1306、および1308のそれぞれが、他の構成要素202と、データを転送するかそれを介してデータを受け取ることができるように、バス1302へのアクセスを要求するように構成される。クロック・コントローラ1310が、それぞれ信号線1312、1314、および1316を介してデバイス1304、1306、および1308にクロック信号を供給する。クロック・コントローラ1310は、バス・コントローラ1300にも結合されて、バス・コントローラが、コンピュータ・システム200によって消費される電力の量を減らす方法として、デバイス1304、1306、および1308に渡されるクロック信号の周波数の変更をもたらすことができるようにする。
【0077】
一般に、バス・コントローラ1300は、クロック・コントローラ1310が、低速または高速のいずれかのクロック周波数信号をデバイス1304、1306、および1308に供給することを要求するように適合される。デバイス1304、1306、および1308が、データを供給しておらず、バス1302からデータを受け取っていない時に、これらに供給されるクロック信号の周波数を、かなり減らすことができる。しかし、デバイス1304、1306、および1308のどれかが、バス1302にデータを転送することを望む時、または別の構成要素がデバイス1304、1306、および1308の1つにデータを転送することを望む時には、バス・コントローラ1300は、クロック信号の周波数を上げるようにクロック・コントローラ1310に指示し、その結果、バス1302を介するデバイス1304、1306、および1308との間の比較的高速の転送を達成できるようにすることができる。この形で、デバイス1304、1306、および1308を、使用中でない時に動作の低電力モードにすることができる。すなわち、他のすべてが同一であるならば、デバイス1304、1306、および1308に供給されるクロック信号の周波数を下げることによって、これらのデバイスが消費する電力が減る。一実施形態では、高速クロック信号または通常クロック信号が、約33MHzの周波数を有し、低速クロック信号または周波数を減らされたクロック信号が、1/32だけ除算されて、約1MHzのクロック信号が作られる。本発明の趣旨および範囲から逸脱せずに、広範囲の周波数を使用できることを、当業者は理解するであろう。
【0078】
図14に移ると、高速と低速の周波数のクロック信号の間の推移中のコンピュータ・システム200の関係する信号のタイミング図が示されている。具体的に言うと、CLOCK(クロック)信号、REQUEST(要求)信号、FAST/SLOW(高速/低速)信号、およびGRANT(許可)信号のタイミングが図示されている。高速と低速の周波数のクロック信号の間の推移中のコンピュータ・システム200の動作は、図13および14を同時に参照することによって理解することができる。
【0079】
図14からわかるように、CLOCK信号は、領域1400に示されているように、当初は比較的低い周波数で動作している。ある時点で、REQUEST信号が、REQUEST信号の正推移1402によって示されるように、デバイス1304、1306、および1308の1つまたは他の構成要素202のいずれかによってアサートされる。REQUEST信号は、バス1302を介してまたは要求元のデバイス1304、1306、および1308の間に延びる別の信号線を介して、送ることができる。バス・コントローラ1300は、デバイス1304、1306、および1308に供給されるCLOCK信号の周波数を増やすようにクロック・コントローラ1310に指示することによって、アサートされたREQUEST信号に応答する。バス・コントローラ1300は、FAST/SLOW信号の正推移1404によって示されるように、信号線1318を介してクロック・コントローラ1310に供給されるFAST/SLOW信号をアサートする。
【0080】
クロック・コントローラ1310は、領域1406に示されているように、すぐにCLOCK信号の周波数を増やすことによって、アサートされたFAST/SLOW信号に応答する。CLOCK信号が推移を完了し、安定することができるようにするための事前に選択された時間の間が過ぎた後に、バス・コントローラ1300が、GRANT信号の正推移1408によって示されるように、GRANT信号をアサートし、これが、REQUEST信号をアサートしたかREQUEST信号をアサートした構成要素202のターゲットであるデバイス1304、1306、および1308に通信される。一実施形態では、GRANT信号が、FAST/SLOW信号がアサートされてから2クロック・サイクル後にアサートされる。したがって、データがデバイス1304、1306、および1308との間で転送される速度に対する悪影響を最小限にして、デバイス1304、1306、および1308を、すばやく低電力/低速モードから引き出し、通常動作に戻すことができる。
【0081】
さらに、保留中のバス・トランザクションがなく、バス・コントローラ1300がFAST/SLOW信号をアサートしていない間に、クロック・コントローラ1310が、デバイス1304、1306、および1308のクロック周波数を個別に制御することができる。すなわち、クロック・コントローラ1310は、デバイス1304、1306、および1308に異なる周波数のクロック信号を供給することができる。たとえば、わずかに高い周波数のクロック信号を、デバイス1304、1306、および1308の一部に供給して、それらが有用な作業を行えるようにすることができる。1つの例示的実施形態では、クロック・コントローラ1310が、バス1302に結合されたネットワーク・インターフェース・カード(NIC)に、4MHzのクロック信号を供給する。わずかに高いクロック信号によって、NICが、電力を節約しながらネットワーク・パケットの処理を継続できるようになる。
【0082】
最終的に、デバイス1304、1306、および1308との間で転送されるデータが完了し、転送を要求したデバイス1304、1306、および1308、または転送を要求した構成要素202が、REQUEST信号をデアサートするようになる。バス・コントローラ1300は、GRANT信号をデアサートし、別のREQUEST信号がアサートされるまでそれ以上のバス・トランザクションを防ぐことによって、デアサートされたREQUEST信号に応答する。GRANT信号がデアサートされるのと同時にまたはその後に、バス・コントローラ1300は、FAST/SLOW信号もデアサートし、領域1410に示されているように、クロック・コントローラ1310は、CLOCK信号の周波数を減らすことができる。
【0083】
この処理を、バス1302を介するトランザクションごとに繰り返す。したがって、CLOCK信号の周波数は、データがバス1302を介して転送されるまで、減らされた設定のままにある。周波数を減らされるこれらの期間は、しばしば、長い時間の間にわたって発生し、コンピュータ・システム200によって消費される電力のかなりの削減がもたらされる。
【0084】
図15に移ると、キャッシュ214によって消費される電力の削減に基づく、電力消費を減らすシステムが示されている。キャッシュ214は、アドレス・バス、データ・バス、およびさまざまな制御信号(これらは全般的に両方向の矢印1500によって概略的に表される)などの複数の普通の接続を介してCPU202に結合される。両方向の矢印1500によって表される接続のほかに、制御信号を、CPU202によって信号線1502を介してキャッシュ214に制御可能に送って、キャッシュ214に動作のパワー・ダウン・モードに入らせることができる。
【0085】
半導体のさまざまな製造業者が、コンピュータ・システムでキャッシュとして使用することができるメモリ製品を作る。たとえば、IBM社、Samsung社、Sony社などのそれぞれが、コンピュータ・システム内のキャッシュとして動作するように特に設計された半導体メモリ製品を提供している。Samsung社から入手可能なK7N803645Mなど、これらのメモリ製品の少なくとも一部に、一般に「スリープ・モード」と称する動作のモードが含まれ、これらのメモリ製品を、コンピュータ・システム200のキャッシュ214として使用することができる。
【0086】
スリープ・モードは、キャッシュ214が選択解除され、電流が比較的低いスタンバイ・レベルまで減らされる、低電流のパワーダウン・モードである。キャッシュ214は、その入力ピンの1つで信号をアサートすることによってスリープ・モードに入るように誘導され、このピンは、一般に、ZZ入力ピンと称し、信号線1502に結合される。スリープ・モードに入った後に、ZZを除くキャッシュ214へのすべての入力が、ディスエーブルされ、キャッシュ214からのすべての出力信号が、ハイ・インピーダンス状態になる。このスリープ・モード中に、キャッシュ214が必要とする電流および/または電力の量が、かなり減らされる。
【0087】
スリープ・モードに入る時のキャッシュ214の動作は、図16に示されたタイミング図を参照することによって理解することができる。クロック信号1600が、一般に、キャッシュ214内の動作を同期するのに使用される。しかし、ZZ入力ピンに渡される制御信号は、クロック信号1600に関して非同期にアサートすることができる。したがって、事前に選択された時に、信号線1502を介してキャッシュ214に渡される信号1602がアサートされる。制御信号1602がアサートされてから2クロック・サイクル後に、キャッシュ214への供給電流Isupplyが、電流波形1604によって示されているように、かなり減らされる。ほぼ同時に、波形1606によって示されるように、キャッシュ214への入力ピンのすべてが、ディスエーブルされて、キャッシュ214に保管されたデータが、スリープ・モード中に保管されたデータにアクセスする試みによって破壊されず、失われないようにする。キャッシュ214のすべての出力端子も、波形1608によって示されるように、ハイ・インピーダンス状態に駆動される。
【0088】
その後、キャッシュ214を、制御信号1602をデアサートすることによって、スリープ・モードから「覚醒」させることができる。制御信号1602が、そのデアサートされた状態に戻される時に、キャッシュ214は、電流供給Isupplyをその通常レベルに戻し、それから約2クロック・サイクル後に、キャッシュ214の入力ピンが、波形1606によって示されているように、再びイネーブルされる。キャッシュ214の出力ピンも、通常動作状態に戻される。したがって、制御信号1602がデアサートされてから2クロック・サイクル後に、キャッシュ214が、その動作の通常モードで動作している。
【0089】
本発明でのZZ制御信号1602のアサートは、従来のシステムと異なって、メモリ階層がアクティブである間のメモリ参照の間に発生する。すなわち、従来のシステムでは、ZZ制御信号1602が、コンピュータ・システムがスタンバイ・モードまたはスリープ・モードにされている時など、メモリ階層がディスエーブルされており、したがってメモリ階層への参照が行われない時に限ってアサートされる。これと対照して、本明細書に記載のシステムでは、キャッシュ214が現在メモリ参照を扱っていない時であればいつでも、ZZ制御信号1602をアサートすることができる。すなわち、コンピュータ・システム200は、通常モード、低電力モード、またはアイドル・モードで動作しており、キャッシュ214、メモリ212、ディスク・ドライブ(図示せず)、および類似物を含むメモリを読み書きする要求を完全に行うことができるものとすることができる。キャッシュ214を用いるメモリ要求が検出された時に、ZZ制御信号がデアサートされ、それから2クロック後に、キャッシュ214がそのメモリ要求をサービスすることができる。
【0090】
キャッシュ214のスリープ・モードに関するコンピュータ・システム200の動作は、図17の流れ図を参照することによって理解することができる。図17の流れ図は、コンピュータ・システム200のCPU202によって実行されるプログラムの、またはCPU202内などのコンピュータ・システム200に含めることができるハードウェアまたはファームウェア・コントローラ(図示せず)の、制御フローまたは処理1700を表す。図17を参照すると、処理1700は、ブロック1702で処理を開始し、ここで、キャッシュ要求が受け取られているかどうかを判定するために検査する。キャッシュ214が、現在は要求されていないと仮定すると、処理は、ブロック1704に進み、ここで、スリープ・モード制御信号1602をアサートし、キャッシュ214にスリープ・モードに入らせる。
【0091】
処理1700を介する後続のパス中に、キャッシュ要求が受け取られたと仮定する。したがって、ブロック1702で、制御がブロック1706に転送されて、キャッシュ214が現在スリープ・モードであるかどうかが判定される。スリープ・モード制御信号が、前のパス中にブロック1704でアサートされたので、制御はブロック1708に転送され、ここで、スリープ・モード制御信号1602をデアサートし、キャッシュ214にスリープ・モードから覚醒させる。しかし、キャッシュ214は、キャッシュ要求をサービスできるようになる前に、ウェイク・アップ・シーケンスを完了するために適当な時間を必要とする。したがって、ブロック1710で、2クロック・サイクルの遅延を挿入し、その後、ブロック1712で、キャッシュ要求をサービスのためにキャッシュ214に送る。
【0092】
追加のキャッシュ要求が、処理1700を介する後続パス中に受け取られたと仮定すると、ブロック1702で、もう一度制御がブロック1706に渡され、ブロック1706では、キャッシュ214が現在はスリープ・モードでないことが認識され、したがって、制御がブロック1712に渡され、ここで、キャッシュ要求を即座にサービスすることができる。処理1700を介する後続のパス中に、キャッシュ要求が保留中でない場合に、ブロック1704で、キャッシュ214に、もう一度スリープ・モードに入るように指示することができる。処理1700は、継続的に繰り返され、その結果、キャッシュ214を、各キャッシュ要求の間またはキャッシュ要求の各グループの間に、スリープ・モードにすることができる。
【0093】
図15から17に関して上で説明した処理および装置を使用して、コンピュータ・システム200の電力消費を減らすことができる。この電力消費の削減は、上で説明した動作モードのすべてで電力消費をさらに減らすのに有効である可能性がある。すなわち、コンピュータ・システム200の通常モード、低電力モード、またはアイドル・モード中に、キャッシュ要求の間にスリープ・モードに入るようにキャッシュ214に指示することができる。
【0094】
図18に移ると、電源1800が選択的に制御されて、変化するレベルの電流または電力を供給するシステムが示されている。すなわち、電源1800は、コンピュータ・システム200の動作特性に従って、選択的に複数の電力レベルで動作することができる。たとえば、時々、コンピュータ・システム200が、多数のリソースを使用し、したがってかなりの電力を必要とするタスクを処理している場合がある。しかし、他の時には、コンピュータ・システム200は、アイドルであるか、コンピュータ・システム200のリソースを少しだけ使用する、または全く使用しない処理を実行していることがあり、したがって、実質的に必要とする電力が少なくなる。本発明の特徴を有しない電源は、同一のモードで動作を継続し、コンピュータ・システム200が現在使用している量の電力を必要としない可能性があるという事実にもかかわらず、同一の量の電力を使用している可能性がある。この過剰な電力は、電力の無用な消費、コンピュータ・システム200の構成要素の望ましくない付随する発熱、および、電池動作デバスの場合に電池の再充電の間の有用な寿命の減少をもたらす。
【0095】
本発明の一実施形態では、電源1800が、たとえばソフトウェア制御の下で動作するCPU202から、信号線1802を介して制御信号を受け取るように適合される。制御信号を、その代わりに、ハードウェア・コントローラ(図示せず)またはハードウェアとソフトウェアの両方を使用するファームウェア・コントローラによって生成できることを、当業者は理解するであろう。一般に、CPU204は、制御信号を生成して、電源1802に複数の動作モードの1つに切り替えさせ、この動作モードのそれぞれで、電源が、たとえば電線1804を介してCPU202に事前に選択されたレベルの電力を渡せるようになる。すなわち、CPU202が、減らされたレベルの電力消費を必要とする動作のモードであるものとしてコンピュータ・システム200を識別する時に、CPU202は、信号線1802を介して電源1800に制御信号を送って、電源1800に、減らされたけれどもまだ満足なレベルの電力が電線1804上で電源1800から使用可能である動作のモードに入らせることができる。
【0096】
一実施形態では、電源1800が、3つのレベルの電力を供給できる3つの別個の動作モードを有する。もちろん、電力のレベルの数は、設計判断の問題であり、これは、各特定の実施形態のパラメータの関数である。電力のレベルの数は、本発明の趣旨および範囲から逸脱せずに、本明細書に記載の実施形態から変更することができる。
【0097】
図19に移ると、コントローラ1910とインターフェースする、電力モジュールA1904、電力モジュールB1906、および電力モジュールC1908からなる電源1800が図示されている。電力モジュール1904、1906、および1908は、その出力線が電線1804に結合され、その結果、その電力引渡能力が加算される。すなわち、電力モジュール1904、1906、および1908のそれぞれが、1Wの電力を供給できると仮定する。したがって、3つの電力モジュール1904、1906、および1908のすべてが動作していると、電源1800は、3Wの電力を送ることができる。同様に、電力モジュール1904および1906など、電力モジュールのうちの2つが動作している時には、電源1800は、2Wの電力を送ることができる。同様に、電力モジュール1904など、電力モジュールのうちの1つだけが動作している時には、電源1800は、1Wの電力を送ることができる。
【0098】
コントローラ1910は、電力モジュール1904、1906、および1908を選択的にイネーブル/ディスエーブルして、電源1800が、CPU202によって要求されるレベルの電力を使用可能にすることができるようにする。たとえば、CPU202が、電源1800から2Wの電力だけを使用する必要があることを検出した場合に、CPU202は、コントローラ1910に、電源1800から2Wの電力を使用できるように求める要求を送る。コントローラ1910は、要求を受け取り、電力モジュール1908など、電力モジュールのうちの1つをディスエーブルする。したがって、電力モジュール1904および1906がイネーブルされて、要求された2Wの電力を加算的に使用可能にする。
【0099】
電力モジュール1904、1906、および1908のイネーブル/ディスエーブルに有用な回路の様式化されたブロック図が、電力モジュール1904に関して図20にブロック図形式で様式的に示されている。電力モジュール1904、1906、および1908内のイネーブル/ディスエーブルを行う回路の構成および動作を、実質的に類似するものとすることができ、したがって、本明細書で繰り返す必要がないことを、当業者は理解するであろう。
【0100】
一般に、パワー電界効果トランジスタ(FET)2000が、電源Vccと電線1804の間に配置される。FET2000のオン/オフ時間を制御して、所望の電圧を作り、電線1804で所望の電流を使用可能にする。パルス幅変調(PWM)信号が、コントローラ1910から信号線2004を介してパワーFET2000のゲートに渡される。ANDゲート2002および信号線2006を介して渡されるイネーブル信号が、PWM信号がパワーFET2000のゲートに達するのを選択的にブロックすることによって、電力モジュール1904を交互にイネーブルし、ディスエーブルするのに使用される。PWM信号がブロックされていると、パワーFETはオフにバイアスされたままになり、電流または電圧が、そこから電線1804に渡されなくなる。
【0101】
一実施形態では、CPU202が、3つの動作モードの間の推移を用いて3つの電力レベルの間の切替を調整する。たとえば、動作の通常モードでは、CPU202が、コントローラ1910に要求を送って、電源1800のすべての電力を使用可能にする。したがって、コントローラ1910は、3つの電力モジュール1904、1906、および1908のすべてをイネーブルする。同様に、動作の低電力モード中に、CPU202は、コントローラ1910に要求を送って、電源1800の電力の一部だけを使用可能にする。したがって、コントローラ1910は、電力モジュール1904および1906など、電力モジュールのうちの2つだけをイネーブルする。最後に、動作のアイドル・モード中に、CPU202は、コントローラ1910に要求を送って、電源1800の電力をさらに減らす。したがって、コントローラ1910は、電力モジュール1904など、電力モジュールのうちの1つだけをイネーブルする。
【0102】
CPU202は、レジスタ220の内容および上で図4に関して説明したハンドシェーク信号の状況に基づいて、動作のモードを「知る」。したがって、CPU202は、電源1800の電力レベルの間の推移のタイミングを調整することができる。
【0103】
代替実施形態では、電力レベルを、3つに制限する必要がなく、コンピュータ・システム200の動作モードに関連付ける必要がない。さらに、電力モジュール1904、1906、および1908が、同一のレベルの電力を供給できる必要がない。たとえば、電力モジュール1904、1906、および1908が、それぞれ2W、1W、および0.5Wを供給できると仮定する。電力モジュール1904、1906、および1908を選択的にイネーブル/ディスエーブルすることによって、電源1800が、0.5Wから3.5Wの間で変化する7レベルの電力を作ることができる。これらの電力レベルは、下の表IIに示されたパターンに従って電力モジュール1904、1906、および1908をイネーブル/ディスエーブルすることによって作ることができる。
【0104】
【表2】
【0105】
電力モジュールの数および/または各モジュールによって作られる電力レベルを変更することによって、さまざまなレベルの電力を使用可能にすることができることを、当業者は理解するであろう。これらのレベルの数および大きさは、設計判断の問題であり、これは、各特定の実施形態のパラメータの関数である。電力のレベルの数およびそれらの間の変動の大きさは、本発明の趣旨および範囲から逸脱せずに、本明細書に記載の例示的実施形態から変更することができる。
【0106】
コンピュータ・システム200が、動作の通常モード、低電力モード、およびアイドル・モードの間で移動する時に、コンピュータ・システム200によって消費される電力の量はかなり変化する。これらの電力の変動は、コンピュータ・システム200によって生成される熱の量の変動も生む。したがって、コンピュータ・システム200の構成要素202は、コンピュータ・システムが動作のモードの間で切り替えるたびに、かなりの温度サイクルを受ける可能性がある。
【0107】
構成要素202は、さまざまな材料から構成され、これらの材料は、異なる熱膨張係数を有し、したがって、温度変化に対して異なる形で応答する。すなわち、材料のなかには、加熱された時にかなり膨張するものと、最小限の影響を受けるものがある。どの場合でも、構成要素202を構成する材料の一部が、他の材料より大きいまたは異なる比率で膨張し、それらの間に相対的な移動が生じる。この、構成要素202を構成する材料の相対移動が、構成要素202にかなりの機械的応力を与える可能性がある。経時的にこれらの応力に繰り返しさらされることによって、構成要素202に物理的な損傷が生じ、最終的に性能の低下または、最悪の場合に、故障につながる。
【0108】
いくつかの動作環境で、コンピュータ・システム200が、アクティビティの頻繁に繰り返される変動をこうむる場合がある。したがって、コンピュータ・システム200が、通常動作モード、低電力動作モード、およびアイドル動作モードの間の移動を頻繁に要求される可能性がある。これらの頻繁な変更は、コンピュータ・システムに、加熱と冷却を繰り返させる可能性がある。たとえば、比較的激しいアクティビティの期間中に、コンピュータ・システムは、通常動作モードに移り、最高クロック周波数で動作する可能性がある。この動作の通常モードへの移動中に、構成要素202が、より多くの熱を生じ、それ相応に膨張する。その後、より少ないアクティビティの期間に、コンピュータ・システム200が、動作の低電力モードに入るようにされ、これによって、電力の消費が減り、生じる熱が減り、構成要素202が、冷えることができ、材料のサイズの収縮が生じる。相対的にインアクティブな期間が持続する場合には、コンピュータ・システム200が、動作のアイドル・モードに入ることを要求される可能性があり、構成要素202がさらに冷える。動作環境に応じて、これらの推移が、比較的長い時間の間にわたってしばしば発生する可能性があり、繰り返される温度サイクルおよび付随する機械的応力が生じる。
【0109】
本発明の一実施形態では、温度サイクリングを制御して、構成要素202に誘導される機械的応力を減らす。すなわち、ソフトウェア制御の下で動作するCPU204が、コンピュータ・システム200が動作の通常モード、低電力モード、およびアイドル・モードの間で推移することを許可される割合を制限することができる。コンピュータ・システム200がさまざまなモードの間で推移することを許可される割合の制御は、さまざまな方式で実施することができる。
【0110】
たとえば、コンピュータ・システム200に、事前に選択された時間の間の間、特定の動作モードにとどまることを要求することができる。すなわち、コンピュータ・システム200が、動作の通常モードに移ったならば、コンピュータ・システム200に、30分など、事前に選択された時間にわたってそのモードにとどまることを要求することができる。類似する制限を、動作の低電力モードから動作のアイドル・モードへの移動に対して設けることができる。この制御戦略は、推移を制御して、短い持続時間の温度スパイクを回避することによって温度サイクリングを減らすのに有効であるとわかるであろう。さらに、コンピュータ・システム200を、動作のより高いモードに保持することによって、推移の数を減らすことができる。すなわち、コンピュータ・システム200が、動作の低電力モードまたはアイドル・モードにサイクル・ダウンすることを許可されるのではなく、動作の通常モードに保持されている場合に、後続の高いアクティビティの期間に、コンピュータ・システム200が通常動作モードに戻る必要がなくなる。
【0111】
代替実施形態では、コンピュータ・システム200を、事前に選択された時間内に事前に選択された推移の回数に制限することができる。たとえば、コンピュータ・システム200を、4時間の間に20回の推移までに制限することができる。したがって、コンピュータ・システム200の周期的なアクティビティが、事前に選択された時間の最初の部分の間に動作の通常モード、低電力モード、およびアイドル・モードの間の比較的すばやい推移を引き起こす場合があるが、限度に達した後は、事前に選択された時間が満了するまで、さらなる推移が許可されない。
【0112】
もう1つの実施形態では、コンピュータ・システム200が、アクティビティ・パターンを「学習」することができる。すなわち、コンピュータ・システム200が、毎日ほぼ同一の時刻に同一のタイプのアクティビティを経験する場合がある。したがって、コンピュータ・システム200は、月曜から金曜までの午後3時から5時までなど、事前に選択された時間中に、比較的激しいが周期的な使用を経験することを「知る」場合に、コンピュータ・システム200を動作の通常モードにより長く保持して、サイクルの数を減らすことができる。逆に、コンピュータ・システム200が、夜間および週末など、軽い使用の長い期間を経験することを「知る」場合に、コンピュータ・システム200が、比較的短い期間の減らされたアクティビティの後に、動作のアイドル・モードに移ることを許可されるようにすることができる。その一方で、コンピュータ・システム200が、アクティビティの短い持続時間だけ適度から激しいまでのアクティビティを過去に見、動作のアイドル・モードへの移動が保証される時の期間中には、コンピュータ・システム200を、動作のアイドル・モード以外に保持して、温度サイクリングを減らすことができる。
【0113】
本発明の一実施形態では、ソフトウェア制御の下で動作するコンピュータ・システム200が、要求された推移のタイプ、推移が要求された時の時刻、およびコンピュータ・システム200が動作の各モードにとどまった持続期間を記録することができる。この記録は、継続的にまたは選択された間隔で行うことができる。たとえば、コンピュータ・システム200が、このタイプの情報を、1時間ごと、1日ごと、1週間ごと、1カ月ごとなどの基準で追跡し、記録することができる。記録された情報を、周期的に分析して、周期的アクティビティの期間、低いアクティビティの期間、長い高アクティビティの期間などのアクティビティ傾向を識別することができる。その後、これらの識別された傾向を使用して、コンピュータ・システム200が通常動作モード、低電力動作モード、およびアイドル動作モードの間で推移することを許可される割合を修正することができる。
【0114】
上で述べた制御方式の1つを実行するためにCPU204で実行することができる処理の例示的流れ図を図21に示す。この処理は、ブロック2100で開始され、BBC216が動作モードの間での推移を要求する。ブロック2102で、タイマを検査して、事前に選択された時間の持続期間が過ぎたかどうかを判定する。タイマから、事前に選択された時間が経過したことが示される場合には、ブロック2104で、タイマおよびソフトウェア・カウンタをリセットする。ブロック2106で、カウンタを増分するが、このカウンタは、タイマによって定義される事前に選択された時間中に発生する推移の数を記憶するのに使用される。ブロック2108で、カウンタの値を事前に選択された数と比較する。カウンタの値が、事前に選択された数未満である場合には、制御がブロック2110に転送され、推移の進行が許可される。その一方で、カウンタの値が、事前に選択された数を超える場合には、処理はブロック2112に進み、要求された推移が進行を許可されず、コンピュータ・システム200に、現在の動作モードにとどまらせる。
【0115】
上で開示した特定の実施形態は例示にすぎない。というのは、本明細書の教示の利益を有する当業者に明白な、異なるが同等の形で本発明を修正し、実践することができるからである。さらに、請求項に記載されたもの以外の、本明細書に記載の構成または設計の詳細に対する制限は意図されていない。したがって、上で開示された特定の実施形態を、変更または修正することができ、そのような変形形態が、本発明の趣旨および範囲に含まれるとみなされることは明白である。具体的に言うと、本明細書に開示された値の範囲のすべて(「約aから約bまで」の形、または、同等に「おおむねaからbまで」、または、同等に「おおむねa〜b」の形の)は、ゲオルグ・カントールの意味での、値のめいめいの範囲のべき集合(すべての部分集合の集合)を指すものとして理解されなければならない。したがって、本明細書で追求される保護は、請求項に示された通りである。したがって、本明細書で追求される保護は、請求項に示された通りである。
【図面の簡単な説明】
【図1】
本発明の1つまたは複数の態様を有利に使用することができるコンピュータ・システムの様式化された図である。
【図2】
図1のコンピュータ・システムの最上位ブロック図を示す概略図である。
【図3】
図1のコンピュータ・システムのさまざまな構成要素内で実施されるレジスタを示す概略図である。
【図4】
コンピュータ・システムのさまざまな構成要素に動作のさまざまな電力節約モードの間で切り返させる、図1および2のコンピュータ・システムによって使用されるさまざまなハンドシェーク信号のタイミング図である。
【図5】
本発明の一態様による位相ロック・ループ(PLL)コントローラのブロック図である。
【図6】
図5のPLLコントローラで使用されるさまざまな信号のタイミング図である。
【図7】
図5のPLLコントローラの一実施形態のブロック図である。
【図8】
図7のPLLコントローラで使用されるさまざまな信号のタイミング図である。
【図9】
図2のコンピュータ・システムのメモリとCPUの間のインターフェースのブロック図である。
【図10】
図2および9のメモリの制御回路およびPLL回路のブロック図である。
【図11】
図2および9のCPUによって実行することができる制御シーケンスの流れ図である。
【図12】
図10の制御回路およびPLL回路で使用されるさまざまな信号のタイミング図である。
【図13】
図2のコンピュータ・システム内のシステム・バスおよびバス・コントローラのブロック図である。
【図14】
図13のシステム・バスを制御する際に使用されるさまざまな信号のタイミング図である。
【図15】
図2のコンピュータ・システムのキャッシュとCPUの間のインターフェースのブロック図である。
【図16】
図2および15のキャッシュとCPUの動作を調整するのに使用されるさまざまな信号のタイミング図である。
【図17】
キャッシュの動作を制御するために図2および15のCPUによって実行することができる制御シーケンスの流れ図である。
【図18】
図2のコンピュータ・システムの電源とCPUの間のインターフェースのブロック図である。
【図19】
図18の電源のブロック図である。
【図20】
図18および19の電源の電力モジュールのブロック図である。
【図21】
温度サイクリングの影響を減らすために図2のCPUによって実行することができる制御シーケンスの流れ図である。
Claims (13)
- コンピュータシステムを第1動作モードからより少ない電力が消費される第2動作モードに推移させる要求を受け取ることと、
コンピュータ・システムが第1動作モードと第2動作モードとの間で推移した履歴的割合を判定することと、
履歴的割合が第1の事前に選択されたセットポイント未満であることに応答して、要求された推移を許可すること、および、
履歴的割合が第1の事前に選択されたセットポイントを超えることに応答して、要求された推移を拒否すること
を含む温度サイクルを制御する方法。 - バスおよびそれに結合された構成要素の動作を制御する方法であって、
バスに結合された構成要素の1つからバス・トランザクションの要求を受け取ること、
少なくとも要求元構成要素に供給されるクロック信号の周波数を増やすこと、
要求されたバス・トランザクションをサービスすること、および、
要求されたバス・トランザクションの完了時に、少なくとも要求元構成要素に供給されるクロック信号の周波数を減らすこと
を含む方法。 - システム・クロックの周波数を監視すること、
システム・クロックの検出された周波数が事前に選択されたセットポイントより大きいことに応答して、第1信号を送ること、
システム・クロックの検出された周波数が事前に選択されたセットポイントより小さいことに応答して、第2信号を送ること、
第1信号を受け取ることに応答して、第1の事前に選択された範囲の周波数のクロック信号に位相ロック・ループ回路が同期化できるようにする位相ロック・ループ回路の第1動作モードを選択すること、および、
第2信号を受け取ることに応答して、第2の事前に選択された範囲の周波数のクロック信号に位相ロック・ループ回路が同期化できるようにする位相ロック・ループ回路の第2動作モードを選択すること
を含む位相ロック・ループ回路の動作を制御する方法。 - メモリと、
第1クロック信号を作るクロック信号ジェネレータであって、第1クロック信号が第1周波数を有する動作の第1モードと、第1クロック信号が第2周波数を有する動作の第2モードとを有するクロック信号ジェネレータと、
前記メモリに関連し、第1クロック信号を受け取り、同期化された第2クロック信号を前記メモリに供給するように適合された位相ロック・ループ回路と、
動作の第2モードでメモリに第1クロック信号を送るように適合されたバイパス回路と
を含むメモリ・システム。 - メモリと、
第1クロック信号を作るクロック信号ジェネレータであって、第1クロック信号が第1周波数を有する動作の第1モードと、第1クロック信号が第2周波数を有する動作の第2モードとを有する、クロック信号ジェネレータと、
前記メモリに関連し、第1クロック信号を受け取り、同期化された第2クロック信号を前記メモリに供給するように適合された位相ロック・ループ回路と、
動作の第2モードでメモリに第1クロック信号を送るように適合されたバイパス回路と、
メモリにメモリ要求を送り、メモリからデータを受け取るように適合されたメモリ・コントローラであって、動作の第1モードでメモリにメモリ要求を送ってから第1の事前に選択された時間の後にメモリからデータを受け取るように適合され、動作の第2モードでメモリにメモリ要求を送ってから第2の事前に選択された時間の後にメモリからデータを受け取るように適合され、第2の事前に選択された時間が第1の事前に選択された時間より長いメモリ・コントローラと
を含むメモリ・システム。 - コンピュータ・システムのメモリ階層内に配置され、スリープ・モードを有するキャッシュを動作させる方法であって、
第1キャッシュ要求を受け取ること、
第1キャッシュ要求をサービスすること、
第1キャッシュ要求のサービスの完了に応答してスリープ・モード信号をアサートすること、
第2キャッシュ要求を受け取ること、
第2キャッシュ要求の受け取りに応答してスリープ・モード信号をデアサートすること、および、
第2キャッシュ要求をサービスすること
を含む方法。 - スリープ・モードを有するキャッシュを有するメモリ階層システムと、
複数のキャッシュ要求を受け取り、前記キャッシュに前記要求をサービスさせるように適合され、前記キャッシュに、前記複数のキャッシュ要求の少なくとも一部の間に前記スリープ・モードに入らせるように構成されるコントローラと
を含む装置。 - 第1の事前に選択された量の電力を送ることができる第1電力モジュールと、
第2の事前に選択された量の電力を送ることができる第2電力モジュールであって、前記第1電力モジュールおよび前記第2電力モジュールが、第1および第2の事前に選択された量の電力に関して組み合わされた量の電力を送ることができるように一緒に結合される、第2電力モジュールと、
第1の事前に選択された量、第2の事前に選択された量、および第3の事前に選択された量の1つで電力を使用可能にするために、第1および第2の電力モジュールを選択的にイネーブルするように適合されたコントローラと
を含む電源。 - 第1クロック信号を受け取り、第2クロック信号を供給するように適合された第1のN分周カウンタと、
第1入力端子、第2入力端子、および出力端子を有する位相比較器であって、その位相比較器が、第1および第2の入力端子に印加される信号の位相を比較し、信号の位相の差を表す大きさを有する信号を出力端子で送るように適合され、前記第1入力端子が、第2クロック信号を受け取るように結合される位相比較器と、
位相差信号を受け取り、それに応答する周波数を有する第3クロック信号を送るように結合された電圧制御発振器と、
第3クロック信号を受け取り、第4クロック信号を送るように結合された第2のN分周カウンタと、
第3クロック信号を受け取り、少なくとも1つの第4クロック信号を送るように結合されたクロック・ツリーと、
第4クロック信号を位相比較器の第2入力端子に送るように結合されたフィードバック・パスと
を含む位相ロック・ループ回路。 - 電子デバイスを動作させる方法であって、
電子デバイスの動作特性を監視すること、
前記監視された動作特性から、電子デバイス内の構成要素の少なくとも一部を、第1、第2、および第3の異なる比率で電力を消費する動作の第1、第2、または第3のモードで動作させることを決定すること、および、
構成要素の少なくとも一部に、第1、第2、および第3のモードの間で切り替えるように指示すること
を含む方法。 - 構成要素群の少なくとも一部が、第1、第2、および第3の異なる比率で電力を消費する動作の第1、第2、および第3のモードを有する複数の構成要素と、
前記構成要素に動作の前記第1、第2、および第3のモードの間で切り替えるように指示することができるコントローラと
を含む装置。 - 電気的に一緒に結合され、互いに通信する第1構成要素および第2構成要素において第1クロック周波数信号と第2クロック周波数信号との間での推移を制御する方法であって、
第1構成要素と第2構成要素との間の通信を停止させるフリーズ信号をアサートすること、
第1構成要素および第2構成要素から、それらの間での通信が停止したことを示すフリーズ確認信号を受け取ること、および、
第1構成要素および第2構成要素に、これらの構成要素に第1クロック周波数信号と第2クロック周波数信号との間で切り替えさせる変更信号を送ること
を含む方法。 - 第1クロック周波数信号と第2クロック周波数信号との間での推移を制御する装置であって、
フリーズ信号を受け取り、通信が停止した後に確認信号を送ることができる第1構成要素と、
フリーズ信号を受け取り、通信が停止した後に確認信号を送ることができる第2構成要素と、
第1構成要素および第2構成要素がそれらの間での通信を停止することを要求するフリーズ信号を送り、第1構成要素および第2構成要素からの確認信号の受け取りに応答して、第1クロック信号と第2クロック信号との間で推移することができるコントローラと
を含む装置。
Applications Claiming Priority (10)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/670,418 US6691215B1 (en) | 2000-09-26 | 2000-09-26 | Method and apparatus for reducing power consumption |
US09/670,368 US6836824B1 (en) | 2000-09-26 | 2000-09-26 | Method and apparatus for reducing power consumption in a cache memory system |
US09/670,420 US6718473B1 (en) | 2000-09-26 | 2000-09-26 | Method and apparatus for reducing power consumption |
US09/670,143 US6608476B1 (en) | 2000-09-26 | 2000-09-26 | Method and apparatus for reducing power consumption |
US09/670,417 US6728890B1 (en) | 2000-09-26 | 2000-09-26 | Method and apparatus for controlling a bus clock frequency in response to a signal from a requesting component |
US09/670,041 US6748546B1 (en) | 2000-09-26 | 2000-09-26 | Method and apparatus for reducing power consumption |
US09/669,357 US6528974B1 (en) | 2000-09-26 | 2000-09-26 | Method and apparatus for reducing power consumption |
US09/670,419 US6845457B1 (en) | 2000-09-26 | 2000-09-26 | Method and apparatus for controlling transitions between a first and a second clock frequency |
US09/669,825 US6700421B1 (en) | 2000-09-26 | 2000-09-26 | Method and apparatus for reducing power consumption |
PCT/US2001/042320 WO2002027451A2 (en) | 2000-09-26 | 2001-09-26 | Method and apparatus for reducing power consumption |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004528613A true JP2004528613A (ja) | 2004-09-16 |
JP2004528613A5 JP2004528613A5 (ja) | 2005-03-17 |
Family
ID=27578896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002530965A Pending JP2004528613A (ja) | 2000-09-26 | 2001-09-26 | 電力消費を減らす方法および装置 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP1451669B1 (ja) |
JP (1) | JP2004528613A (ja) |
AT (1) | ATE514989T1 (ja) |
AU (1) | AU2001296911A1 (ja) |
WO (1) | WO2002027451A2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013543612A (ja) * | 2010-09-13 | 2013-12-05 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | 構成可能な電力状態をもつダイナミックramphyインタフェース |
JP2015513336A (ja) * | 2012-02-01 | 2015-05-07 | 日本テキサス・インスツルメンツ株式会社 | リアルタイムシステムにおける動的電力管理 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7725759B2 (en) | 2005-06-29 | 2010-05-25 | Sigmatel, Inc. | System and method of managing clock speed in an electronic device |
US7861113B2 (en) | 2007-03-16 | 2010-12-28 | Dot Hill Systems Corporation | Method and apparatus for operating storage controller system in elevated temperature environment |
CN100456211C (zh) * | 2007-03-19 | 2009-01-28 | 中国人民解放军国防科学技术大学 | 基于请求的低功耗指令存储器 |
CN103927131B (zh) * | 2014-03-25 | 2017-02-15 | 四川和芯微电子股份有限公司 | 同步闪存u盘的启动方法及其控制系统 |
GB2537855B (en) | 2015-04-28 | 2018-10-24 | Advanced Risc Mach Ltd | Controlling transitions of devices between normal state and quiescent state |
GB2537852B (en) | 2015-04-28 | 2019-07-17 | Advanced Risc Mach Ltd | Controlling transitions of devices between normal state and quiescent state |
US10310549B1 (en) * | 2018-06-21 | 2019-06-04 | Nanya Technology Corporation | Clock signal generating circuit and operating method thereof |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5666538A (en) * | 1995-06-07 | 1997-09-09 | Ast Research, Inc. | Disk power manager for network servers |
US5740087A (en) * | 1996-05-31 | 1998-04-14 | Hewlett-Packard Company | Apparatus and method for regulating power consumption in a digital system |
US6088806A (en) * | 1998-10-20 | 2000-07-11 | Seiko Epson Corporation | Apparatus and method with improved power-down mode |
US6118306A (en) * | 1998-12-03 | 2000-09-12 | Intel Corporation | Changing clock frequency |
-
2001
- 2001-09-26 JP JP2002530965A patent/JP2004528613A/ja active Pending
- 2001-09-26 EP EP01977822A patent/EP1451669B1/en not_active Expired - Lifetime
- 2001-09-26 AT AT01977822T patent/ATE514989T1/de not_active IP Right Cessation
- 2001-09-26 WO PCT/US2001/042320 patent/WO2002027451A2/en active Application Filing
- 2001-09-26 AU AU2001296911A patent/AU2001296911A1/en not_active Abandoned
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013543612A (ja) * | 2010-09-13 | 2013-12-05 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド | 構成可能な電力状態をもつダイナミックramphyインタフェース |
US9274938B2 (en) | 2010-09-13 | 2016-03-01 | Advanced Micro Devices, Inc. | Dynamic RAM Phy interface with configurable power states |
JP2015513336A (ja) * | 2012-02-01 | 2015-05-07 | 日本テキサス・インスツルメンツ株式会社 | リアルタイムシステムにおける動的電力管理 |
Also Published As
Publication number | Publication date |
---|---|
ATE514989T1 (de) | 2011-07-15 |
EP1451669B1 (en) | 2011-06-29 |
EP1451669A2 (en) | 2004-09-01 |
AU2001296911A1 (en) | 2002-04-08 |
WO2002027451A2 (en) | 2002-04-04 |
WO2002027451A3 (en) | 2004-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6748546B1 (en) | Method and apparatus for reducing power consumption | |
US6608476B1 (en) | Method and apparatus for reducing power consumption | |
US6528974B1 (en) | Method and apparatus for reducing power consumption | |
JP3964472B2 (ja) | クロック制御装置 | |
US7814362B2 (en) | System and method for power saving delay locked loop control | |
US7200711B2 (en) | Apparatus and method for placing memory into self-refresh state | |
TWI527051B (zh) | 記憶體控制器之調校、電力閘控與動態頻率改變 | |
JP3919245B2 (ja) | 集積プロセッサ | |
US6836824B1 (en) | Method and apparatus for reducing power consumption in a cache memory system | |
US6134167A (en) | Reducing power consumption in computer memory | |
US6845457B1 (en) | Method and apparatus for controlling transitions between a first and a second clock frequency | |
JP3919246B2 (ja) | マルチプレクサ、集積プロセッサ、および信号マルチプレクサ | |
US6671211B2 (en) | Data strobe gating for source synchronous communications interface | |
US5461649A (en) | Method and apparatus for maintaining a state of a state machine during unstable clock conditions without clock delay | |
US5815725A (en) | Apparatus and method for reducing power consumption in microprocessors through selective gating of clock signals | |
US7702944B2 (en) | Dynamic frequency scaling sequence for multi-gigahertz microprocessors | |
US20070061603A1 (en) | Method and apparatus for selectively increasing the operating speed of an electronic circuit | |
WO2009120932A2 (en) | Method and apparatus for dynamic power management control using parallel bus management protocols | |
US6718473B1 (en) | Method and apparatus for reducing power consumption | |
US10410688B2 (en) | Managing power state in one power domain based on power states in another power domain | |
US6691215B1 (en) | Method and apparatus for reducing power consumption | |
JP3552213B2 (ja) | Sdメモリカードホストコントローラ及びクロック制御方法 | |
JP2004528613A (ja) | 電力消費を減らす方法および装置 | |
US6728890B1 (en) | Method and apparatus for controlling a bus clock frequency in response to a signal from a requesting component | |
US6700421B1 (en) | Method and apparatus for reducing power consumption |