(57)【要約】【解決手段】  デバイスを動作させる方法が提供される。方法は、第１の受信された信号に応答してＧＰＵを実質的に無効な状態に移行させることと、ＧＰＵが実質的に無効な状態にある間に第２の受信された信号に応答して応答信号を生成することと、を含む。応答信号は、電力供給状態において第２の受信された信号に応答してＧＰＵによって生成されるはずの第２の応答信号と実質的に同様である。【選択図】図２
2013504811.tif 000002
【特許請求の範囲】
【請求項１】
デバイスを動作させる方法であって、
第１の受信された信号に応答して前記デバイスを実質的に無効な状態に移行させることと、
前記デバイスが前記実質的に無効な状態にある間に第２の受信された信号に応答して応答信号を生成することと、を備え、
前記応答信号は、電力供給状態において前記第２の受信された信号に応答して前記デバイスによって生成されるはずの第２の応答信号と実質的に同様である方法。
【請求項２】
前記第１及び第２の受信された信号の少なくとも１つは中央処理ユニット（ＣＰＵ）によって生成される請求項１の方法。
【請求項３】
前記第２の受信された信号はバス構成サイクルを備える請求項１の方法。
【請求項４】
移行させることは、プロセッサに結合される電力デバイスの出力電圧を無効にすることを備える請求項１の方法。
【請求項５】
前記電力デバイスは前記プロセッサのレンダリングエンジン又はディスプレイ制御器の少なくとも１つに結合される請求項４の方法。
【請求項６】
前記デバイスに関連するメモリの少なくとも一部分を無効にすることを更に備える請求項１の方法。
【請求項７】
メモリを無効にすることは、前記メモリに結合される電力デバイスの出力電圧を無効にすることを備える請求項６の方法。
【請求項８】
前記デバイスは複数の電力デバイスに結合され、
前記第１の受信された信号に基づき前記複数の電力デバイスの１つの電力デバイスを識別することを更に備え、
移行させることは、前記識別された電力デバイスの出力を無効にすることを備える請求項１の方法。
【請求項９】
バスインタフェースモジュールを備えるデバイスであって、
前記バスインタフェースモジュールは、
プロセッサの電力状態を制御するように構成される状態管理モジュールと、
受信された信号に応答して応答信号を生成するように構成される応答モジュールと、を備え、
前記バスインタフェースモジュールは、前記プロセッサが低電力状態にある場合に前記バスインタフェースモジュールに電力を供給するように構成される電力システムに結合され、それにより前記応答モジュールは前記プロセッサが前記低電力状態にある場合に前記応答信号を生成することが可能であるデバイス。
【請求項１０】
前記バスインタフェースモジュールは、前記プロセッサに結合される電力デバイスに結合され、前記状態管理モジュールは、前記電力デバイスの出力を制御して前記プロセッサの前記電力状態を制御するように構成される請求項９のデバイス。
【請求項１１】
前記デバイスはレンダリングエンジンを含むデバイスを更に備え、前記電力デバイスは前記レンダリングエンジンに結合される請求項１０のデバイス。
【請求項１２】
前記バスインタフェースモジュールは、前記プロセッサに関連するメモリに結合される電力デバイスに結合され、前記状態管理モジュールは、前記電力デバイスの出力を制御することによって前記メモリの電力状態を制御するように構成される請求項９のデバイス。
【請求項１３】
前記プロセッサはバスを介して中央処理ユニット（ＣＰＵ）に結合され、前記受信される信号はバス構成サイクルである請求項９のデバイス。
【請求項１４】
デバイスを動作させるための方法を行うために１つ以上のプロセッサによる実行のための１つ以上の命令の１つ以上のシーケンスを伝えるコンピュータ可読媒体であって、前記命令は、前記１つ以上のプロセッサによって実行されるときに、前記１つ以上のプロセッサに、
第１の受信された信号に応答して前記デバイスを実質的に無効な状態に移行させることと、
前記プロセッサが前記実質的に無効な状態にある間に第２の受信された信号に応答して応答信号を生成することと、をさせ、
前記応答信号は、電力供給状態において前記第２の受信された信号に応答して前記プロセッサによって生成されるはずの第２の応答信号と実質的に同様であるコンピュータ可読媒体。
【請求項１５】
前記第１及び第２の受信された信号の少なくとも１つは中央処理ユニット（ＣＰＵ）によって生成される請求項１４のコンピュータ可読媒体。
【請求項１６】
前記第２の受信された信号はバス構成サイクルを備える請求項１４のコンピュータ可読媒体。
【請求項１７】
電力デバイスが前記デバイスのレンダリングエンジン又はディスプレイ制御器の少なくとも１つに結合される請求項１４のコンピュータ可読媒体。
【請求項１８】
移行させることは、前記デバイスに結合される電力デバイスの出力電圧を無効にすることを備える請求項１４のコンピュータ可読媒体。
【請求項１９】
前記デバイスに関連するメモリの少なくとも一部分を無効にすることを更に備える請求項１４のコンピュータ可読媒体。
【請求項２０】
前記デバイスは複数の電力デバイスに結合され、
前記第１の受信された信号に基づき前記複数の電力デバイスの１つの電力デバイスを識別することを更に備え、
移行させることは、前記識別された電力デバイスの出力を無効にすることを備える請求項１４のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は多重処理システムに関し、より特定的には多重プロセッサシステムにおいて電力を節約することに関する。
【背景技術】
【０００２】
幾つかの処理システムは、タスクの並列処理を通して性能向上を可能にするために、多重処理ユニット（例えば多重グラフィクス処理ユニット、即ちＧＰＵ）を含む。例示的なタスクは、例えばビデオ処理、グラフィクス処理、物理的シミュレーション等を含む。多重アクティブＧＰＵによって提供される追加的な処理能力を有することを必要とする又はそのような追加的な処理能力を有することの利益を享受し得るグラフィクス重視のゲームが、実行中であることがある。しかし、他のアプリケーションは、そのような処理能力の増大からの利益を享受しない。これらのアプリケーションが実行中である場合、グラフィクス能力はそれほどは必要ない。このことは、ＧＰＵの数を減少させることによって又は１つのＧＰＵからより低い能力の別のＧＰＵへ切り換えることによって対処され得る。
【０００３】
ＧＰＵは、典型的にはバス、例えば周辺要素相互接続(peripheral component interconnect)（ＰＣＩ）バス又はＰＣＩエクスプレス(PCI express)バスを介して中央処理ユニット（ＣＰＵ）に結合されており、また別のデバイス（例えばノースブリッジデバイス）内に含まれていることがある。代替的には、ＧＰＵ又は他の種類のコア若しくはプロセッサは、ＣＰＵと同じパッケージ又は同じダイの一部として含まれていることがある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＣＰＵ上で実行中のオペレーティングシステムは、通常、構成サイクル(configuration cycles)を生成する。デバイスが構成サイクルに応答しない場合、例えばデバイスが電源をオフにされる場合、オペレーティングシステムは、ユーザ経験に否定的な影響を有し得る複雑な処理（例えばプラグアンドプレイ(plug-and-play)処理）を実行させる可能性がある。このように、デバイスの電源をオンにすること及びオフにすることは、しばしばオペレーティングシステム依存である。これらの否定的な影響を避けるために、多くのグラフィクスシステムは、ＣＰＵによって生成される構成サイクルにＧＰＵが応答し得るように、ＧＰＵへの電力供給を保つ（使用されていないＧＰＵについても）。しかし、使用されていないＧＰＵへの電力供給を保つことは、結果として効率的でない電力使用をもたらし得るし、またモバイルシステムにおいてはバッテリ寿命を短くする。
【０００５】
従って、例えばデバイスがオフにされている間にバス構成サイクルに応答することによるようなシステム挙動又は制限と対立することなしに、プロセッサが低減された電力状態に置かれることを可能にする方法及びシステムが必要とされている。
【課題を解決するための手段】
【０００６】
ここに説明される実施形態は、概して、第１の信号に応答してデバイスの電力状態を移行させることと、デバイスが電力供給状態にあったとした場合に生成されるはずの応答信号と実質的に同様な、第２の信号に対する応答信号を生成することと、に関連している。例えばＧＰＵは、それに割り当てられた負担に基づいて実質的に無効な状態又は電力供給状態に移行させられ得る。
【０００７】
ある実施形態においては、デバイスを動作させる方法は、第１の受信された信号に応答してデバイスを実質的に無効な状態に移行させることと、デバイスが実質的に無効な状態にある間に第２の受信された信号に応答して応答信号を生成することと、を含む。応答信号は、電力供給状態において第２の受信された信号に応答してデバイスによって生成されるはずの第２の応答信号と実質的に同様である。
【０００８】
別の実施形態においては、デバイスはバスインタフェースモジュールを含む。バスインタフェースモジュールは、デバイスの電力状態を制御するように構成される状態管理モジュールと、受信された信号に応答して応答信号を生成するように構成される応答モジュールと、を含む。バスインタフェースモジュールは、デバイスが実質的に無効な状態にある場合にバスインタフェースモジュールに電力を供給するように構成される電力システムに結合される。このようにして、応答モジュールはプロセッサが低電力状態にある場合に応答信号を生成することが可能である。
【０００９】
別の実施形態においては、デバイスを動作させるための方法を行うために１つ以上のプロセッサによる実行のための１つ以上の命令の１つ以上のシーケンスを伝えるコンピュータ可読媒体が提供され、命令は、１つ以上のプロセッサによって実行されるときに、１つ以上のプロセッサに、第１の受信された信号に応答してデバイスを実質的に無効な状態に移行させることと、デバイスが実質的に無効な状態にある間に第２の受信された信号に応答して応答信号を生成することと、をさせる。応答信号は、電力供給状態において第２の受信された信号に応答してデバイスによって生成されるはずの第２の応答信号と実質的に同様である。
【００１０】
本発明の更なる特徴及び利点の他、本発明の種々の実施形態の構成及び動作は、添付の図面を参照して以下に詳細に説明される。
【図面の簡単な説明】
【００１１】
ここに組み込まれ且つ出願書類の一部をなす添付の図面は、本発明を示し、そして明細書と共に、本発明の原理を説明すること及び関連分野を含めた当業者が本発明を作りそして使用するのを可能にすることに更に役立つ。
【００１２】
【図１】図１は従来のコンピューティング環境のブロック図である。
【００１３】
【図２】図２は本発明の実施形態に従うコンピューティング環境のブロック図である。
【００１４】
【図３】図３は本発明の実施形態に従う構成マネージャの動作の実施形態を示すフローチャートである。
【００１５】
【図４】図４は本発明の実施形態に従うコンピューティング環境のブロック図（その１）である。
【図５】図５は本発明の実施形態に従うコンピューティング環境のブロック図（その２）である。
【図６】図６は本発明の実施形態に従うコンピューティング環境のブロック図（その３）である。
【図７】図７は本発明の実施形態に従うコンピューティング環境のブロック図（その４）である。
【図８】図８は本発明の実施形態に従うコンピューティング環境のブロック図（その５）である。
【図９】図９は本発明の実施形態に従うコンピューティング環境のブロック図（その６）である。
【図１０】図１０は本発明の実施形態に従うコンピューティング環境のブロック図（その７）である。
【００１６】
【図１１】図１１はＧＰＵとしてこの実施形態において例示されるデバイスを本発明の実施形態に従い管理する方法を示すフローチャートである。
【００１７】
【図１２】図１２はＧＰＵとしてこの実施形態において例示されるデバイスを本発明の実施形態に従い動作させる方法を示すフォローチャートである。
【００１８】
添付の図面を参照して本発明が説明されることになる。概して、ある要素が最初に現れる図面は、典型的には対応する参照番号の一番左の単一又は複数の桁によって示される。
【発明を実施するための形態】
【００１９】
概要及び要約の欄ではなく詳細な説明の欄が特許請求の範囲を解釈するために用いられることを意図されていることが理解されるべきである。概要及び要約の欄は、発明者によって検討されているような本発明の１つ以上であるが全てではない例示的な実施形態を記述している場合があり、従って、本発明及び添付の特許請求の範囲を限定することを意図されるものでは決してない。
【００２０】
特定の実施形態の上述した説明は、本発明の一般的性質を十分に明らかにするであろうから、他者は、当業者の知識を適用することによって、過度の実験を必要とせず、本発明の一般的概念から逸脱することなく、そのような特定の実施形態を容易に修正し且つ／又は種々の応用に適用することができる。従って、そのような適用及び修正は、ここに提示されている教示及び指針に基いて、開示されている実施形態と均等なものの意味及び範囲の範疇にあることが意図されている。ここでの用語等は、本出願書類の用語等が教示及び指針の下で当業者によって解釈されるべきであるという点において、説明を目的としたものであって限定を目的としていないことが理解されるべきである。
【００２１】
図１はコンピューティング環境１００を示すブロック図である。コンピューティング環境１００は、中央処理ユニット１０２と、第１及び第２のグラフィクス処理ユニット（ＧＰＵ）１０４及び１０６と、メモリ１０８及び１１０と、ディスプレイ１１２と、を含む。
【００２２】
ＣＰＵ１０２は、バス１１４を介して第１及び第２のＧＰＵ１０４及び１０６に結合される。本発明の実施形態においては、バス１１４は周辺要素相互接続（ＰＣＩ）バス、例えばＰＣＩエクスプレスバスである。第１及び第２のＧＰＵ１０４及び１０６はグラフィクスタスクを達成する。例えば第１のＧＰＵ１０４及び／又は第２のＧＰＵ１０６は、ＣＰＵ１０２によってそれらに割り当てられたレンダリング(rendering)、ディスプレイ又は他のタスクを達成することができる。また、第１及び第２のＧＰＵ１０４及び１０６は異なる役割を有することができる。例えば第２のＧＰＵ１０６は、それがディスプレイ１１２を制御することを理由として、マスターＧＰＵであり得る。第１のＧＰＵ１０４は、それがディスプレイを駆動しないことを理由として、スレーブＧＰＵであり得る。ディスプレイ１１２は、コンピュータ画面等のグラフィクス情報を表示する種々の異なるデバイスであり得る。
【００２３】
第１及び第２のＧＰＵ１０４及び１０６は、関連するメモリ１０８及び１１０にそれぞれ結合される。メモリ１０８及び１１０は、それらが関連するＧＰＵに関する情報を記憶する。例えばメモリ１０８及び１１０は、ＧＰＵによってレンダリングされる表面、ディスプレイ１１２上に表示されるべきグラフィクス等を記憶することができる。
【００２４】
ＣＰＵ１０２上で実行中のオペレーティングシステム（ＯＳ）（図１には図示せず）は、バス１１４を介して第１及び第２のＧＰＵ１０４及び１０６の各々に伝送される構成サイクルを生成する。ＧＰＵ１０４及び１０６のいずれかがそのそれぞれの構成サイクルに応答しない場合、不所望な視覚的アーティファクツ(artifacts)又はシステムクラッシュを生じさせ得る処理（例えばプラグアンドプレイ）をＯＳが実行するかもしれない。従って、ＧＰＵ１０４及び１０６の１つがグラフィクスタスクを処理中でない場合であっても、その処理中でないＧＰＵは構成サイクルに応答するために電力を供給されたままである必要があり得る。電力を節約するために、既知の方法（例えばクロックゲーティング又は電力ゲーティング）が用いられて、ＧＰＵが非アクティグである場合にＧＰＵの特定の部分を無効にしたり電力を落とすことができる。しかし、これらの既知の方法は、ＧＰＵの相当部分がアクティブのままであることを必要とし得る。従って、ＧＰＵの全体又はその相当部分がオフにされれば、更なる電力が節約され得る。
【００２５】
本発明の実施形態においては、関連するバスインタフェースモジュールを有するデバイス（例えばＧＰＵ）が提供される。バスインタフェースモジュールは、ＧＰＵ内に含まれ得る又は物理的に別個のデバイスであり得る独立に電力を供給されるモジュールである。ＧＰＵが「実質的に無効な状態(substantially disabled state)」に移行させられる場合、バスインタフェースモジュールは電力を供給されたままであり、またＧＰＵの残りは実質的に又は完全にオフにされる。ＧＰＵが実質的に無効な状態に切り換えられたことをＣＰＵ上で実行中のオペレーティングシステムが認識しないように、即ち例えば上述したような複雑な処理をオペレーティングシステムが実行しないように、バスインタフェースモジュールは、ＧＰＵが実質的に無効な状態にある場合に、バス構成サイクルに応答するように構成される。つまり、バスインタフェースモジュールは、ＧＰＵが電力供給状態にあるかのような応答を生成する。更なる実施形態においては、バスインタフェースモジュールはまた、電力信号をＧＰＵに供給するために用いられる電圧レギュレータの出力を制御することによって、ＧＰＵの電力状態を制御する。別の実施形態においては、別のデバイス、例えば状態管理モジュールがＧＰＵの電力状態を制御する。
【００２６】
図２は本発明に従い構成されるコンピューティング環境２００を示すブロック図である。コンピューティング環境２００は、ＣＰＵ２０２と、第１及び第２のＧＰＵ２０４及び２０６と、メモリ２０８〜２１２と、ディスプレイ２１４と、を含む。
【００２７】
ＣＰＵ２０２は、構成マネージャ２１６と、オペレーティングシステム（ＯＳ）２１８と、ドライバ２２０及び２２２と、を含む。構成マネージャ２１６はシステムイベントに関する情報を受信し、そしてそれに従って第１及び第２のＧＰＵ２０４及び２０６のための構成を決定する。例として、システムイベントは、電源の変更又はグラフィクス重視のアプリケーション（例えば３次元ゲーム）の開始若しくは停止を含み得る。電源の変更は、本質的に無制限なＡＣ電源（例えば壁コンセント）から多くの場合に制限的なＤＣ電源（例えばバッテリ）への変更であってよい。ある実施形態においては、イベントの結果、単一ＧＰＵ構成から多重ＧＰＵ構成への変更又はその逆がもたらされ得る。代替的な実施形態においては、例えばアプリケーションの開始又は停止に基づく移行の結果、例えばグラフィクス重視のアプリケーションが開始する場合又は逆にグラフィクス重視のアプリケーションが停止する場合に、比較的計算能力の高い（且つ比較的大きな電力を消費する）ＧＰＵは電力供給状態へ移行させられてよく、また比較的計算能力の低いＧＰＵは実質的に無効な状態へ移行させられてよい。
【００２８】
構成マネージャ２１６はシステムイベントに関する情報を受信し、そして第１及び第２のＧＰＵ２０４及び２０６のための構成を決定する。構成は、第１及び第２のＧＰＵ２０４及び２０６の各々にグラフィクスタスク負担(graphics task responsibilities)を割り当てることによって決定される。例えば第１のＧＰＵ２０４及び／又は第２のＧＰＵ２０６は、全てのグラフィクス処理タスクに対して若しくは幾つかのグラフィクス処理タスクのみ（例えばレンダリング又はディスプレイのみ）に対して利用可能にされてよく、又は非アクティブ（いかなるグラフィクス処理タスクによっても利用可能でない）であってよい。
【００２９】
ＯＳ２１８は種々のタスクを処理する。例えばＯＳ２１８は、バス２３０を介して第１及び第２のＧＰＵ２０４及び２０６へ伝送されるバス構成サイクルの生成を監視することができる。図２の例では、バス２３０はＰＣＩエクスプレスバスであり、またバス構成サイクルはＰＣＩ構成サイクルである。
【００３０】
ドライバ２２０は第１のＧＰＵ２０４との相互作用を容易にし、またドライバ２２２は第２のＧＰＵ２０６との相互作用を容易にする。図２に示されるように、ドライバ２２０は電力マネージャモジュール２２４を含み、またドライバ２２２は電力マネージャ２２６を含む。電力マネージャモジュール２２４及び２２６は、構成マネージャ２１６によって作成されたハードウエア構成決定を受信し、そしてそれらのそれぞれＧＰＵ２０４及び２０６に対する電力状態（例えば電力供給されている又は実質的に無効にされている）を決定する。ドライバ２２０及び２２２はまた、第１及び第２のＧＰＵ２０４及び２０６に固有のデバイス向けモジュール(device-specific modules)を含む。これらのデバイス向けモジュールは、特定のデバイスとの相互作用を容易にすることができる。
【００３１】
ＣＰＵ２０２はバス２３０を介して第１及び第２のＧＰＵ２０４及び２０６と結合される。第１及び第２のＧＰＵ２０４及び２０６は、第１及び第２のＧＰＵ２０４及び２０６がそれぞれバスインタフェースモジュール２２６及び２２８を追加的に含む点を除いて、図１を参照して説明された第１及び第２のＧＰＵ１０４及び１０６と同様であってよい。バスインタフェースモジュール２２６及び２２８は、第１及び第２のＧＰＵ２０４及び２０６に電力を供給する電圧レギュレータを制御することによって、第１及び第２のＧＰＵ２０４及び２０６の電力状態を制御する。バスインタフェースモジュール２２６及び２２８はまた、バス構成サイクルに応答する。例えば、バスインタフェースモジュール２２６及び２２８は、第１及び第２のＧＰＵ２０４及び２０６が実質的に無効な状態に切り換えられる場合に、第１及び第２のＧＰＵ２０４及び２０６がバス構成サイクルに応答することができるように、電力供給されたままであるように構成され得る。そうすることで、第１及び第２のＧＰＵ２０４及び２０６は、実質的に無効な状態に切り換えられてもなお、まるでそれらが電力供給状態にあるかのようにバス構成サイクルに応答することができる。
【００３２】
図２に示されるように、第２のＧＰＵ２０６はディスプレイ２１４に結合されている。従って、第２のＧＰＵ２０６はマスターＧＰＵであり得るし、また第１のＧＰＵ２０４（ディスプレイに結合されていない）はスレーブＧＰＵであり得る。第１及び第２のＧＰＵ２０４及び２０６は、関連するメモリ２１０及び２１２にそれぞれ結合されている。図２に示される例では、メモリ２１０及び２１２は、上述したメモリ１０８及び１１０とそれぞれ実質的に同様である。
【００３３】
ＣＰＵ２０２に関連するメモリ２０８は、ＣＰＵ２０２上で実行されて構成マネージャ２１６、ＯＳ２１８、及び／又はドライバ２２０を動作させる命令を記憶する。
【００３４】
図３は本発明に従う構成マネージャ２１６の動作の実施形態を示す例示的なフローチャート３００である。以下の議論に基づいて、関連分野を含めた当業者にとって他の構成及び動作の実施形態が明らかなはずである。フローチャート３００は図２の実施形態を参照して説明される。しかし、フローチャート３００は、その実施形態に限定されない。図３に示されるステップは、必ずしも図示される順序で生じる必要はなく、また以下に詳細に説明される。
【００３５】
ステップ３０２では、システムイベントが検出されたかどうかが決定される。例えば、システムイベントは、３Ｄグラフィクスアプリケーションの開始又は停止エグジットであり得る。
【００３６】
システムイベントが検出されたら、フローチャート３００はステップ３０４に進む。ステップ３０４では、システムイベントが３Ｄのグラフィクス重視アプリケーションの開始であったかどうかが決定される。ステップ３０８では、アプリケーションがＣＰＵ２０２上で実行する最初の３Ｄアプリケーション（又は他のグラフィクス重視のアプリケーション）であるかどうかに関して決定がなされる。アプリケーションが最初の３Ｄアプリケーションでない場合には、フローチャート３００はステップ３０２に戻る。３Ｄグラフィクス処理アプリケーションが最初のそのようなアプリケーションである場合には、ステップ３１２に到達する。
【００３７】
ステップ３１２では、現在実質的に無効の状態にあるＧＰＵを電力供給状態に移行させるコマンドが作成される。例えば、アプリケーションが最初の３Ｄ又は他のグラフィクス重視のアプリケーションである場合には、追加的なグラフィクス処理能力を必要としたアプリケーションは実行中ではなかったのであるから、アプリケーションが開始されるときに１つ以上のＧＰＵが実質的に無効な状態であってよい。アプリケーションが開始すると、追加的なグラフィクス処理能力を提供するために、追加的なＧＰＵが電力供給状態へ移行させられ得る。
【００３８】
システムイベントがグラフィクス重視のアプリケーションの開始ではない場合、ステップ３０４の後にステップ３０６が生じる。ステップ３０６では、システムイベントが３Ｄグラフィクスアプリケーション（又は他のグラフィクス重視のアプリケーション）のエグジットであったかどうかが決定される。システムイベントが３Ｄグラフィクス処理アプリケーションのエグジットでない場合には、フローチャート３００はステップ３０２に戻る。システムイベントが３Ｄグラフィクス処理アプリケーションのエグジットである場合には、ステップ３１０に到達する。
【００３９】
ステップ３１０は、３ＤアプリケーションがＣＰＵ（例えばＣＰＵ２０２）上で実行中の最後の３Ｄグラフィクス処理アプリケーションであるかどうかを決定する。そうである場合には、フローチャート３００はステップ３１４に進む。ステップ３１４では、ＧＰＵを実質的に無効な状態へ移行させるコマンドが作成される。例えば、アプリケーションがＣＰＵ２０２上で実行中の最後の３Ｄアプリケーション（又は他のグラフィクス重視のアプリケーション）であると決定される場合には、ＣＰＵ２０２上で実行し続けているアプリケーションは、多重ＧＰＵに同時に電力供給することによってもたらされる増大されたグラフィクス性能の利益を享受しないし、あるいはそれを必要としない。従って、１つ以上のＧＰＵが実質的に無効な状態に移行させられて、電力を節約することができる。
【００４０】
フローチャート３００は、３Ｄグラフィクス又は他のグラフィクス重視のアプリケーションの開始及びエグジットに関係するシステムイベントに関する構成マネージャ２１６の動作の実施形態を示している。ここでの説明に基づいて関連分野を含めた当業者には理解されるであろうように、構成マネージャ２１６は、他の種類のシステムイベント、例えば電源の変更に応答することができる。
【００４１】
図４は本発明の実施形態に従うコンピューティング環境４００を示すブロック図である。コンピューティング環境４００は、ＧＰＵ４０２、メモリ４０４、電圧レギュレータ４０６〜４１２、バス４１４、及びＣＰＵ４１６を含む。
【００４２】
ＧＰＵ４０２は、上述した第１のＧＰＵ２０４及び／又は第２のＧＰＵ２０６と実質的に同様であり得る。ＧＰＵ４０２は、電圧レギュレータ４０６〜４１０により出力される信号によって電力供給される。ＧＰＵ４０２は関連するメモリ４０４に結合されている。メモリ４０４は上述したメモリ２１０又はメモリ２１２と実質的に同様であってよく、また電圧レギュレータ４１２によって出力される信号により電力供給される。
【００４３】
電圧レギュレータ４０６〜４１０は、ＧＰＵ４０２を形成する特定の回路ブロックに電力供給する。電圧レギュレータ４０６は、バスインタフェースモジュール４１８に電力を供給する専用の電圧レギュレータである。電圧レギュレータ４０８及び４１０はＧＰＵ４０２の他の回路ブロックに電力を供給する。例えば電圧レギュレータ４０８及び４１０は、ＧＰＵ４０２のそれぞれレンダリング回路ブロック及びディスプレイ制御器回路ブロックに電力を供給することができる。バスインタフェースモジュール４１８は、バス４１４を介してＧＰＵ４０２の電力状態に関するコマンドをＣＰＵ４１６から受信し、そしてコマンドに基づいて電圧レギュレータ４０８〜４１２の出力を制御する。
【００４４】
例として、図５はＧＰＵ４０２を実質的に無効な状態に移行させるためのコマンドをバスインタフェースモジュール４１８がＣＰＵ４１６から受信した後の代替的なコンピューティング環境４００を示すブロック図５００である。バスインタフェースモジュール４１８は、ＧＰＵ４０２及び関連するメモリ４０４の実質的に全部が電力オフにされるように、電圧レギュレータ４０８〜４１２の出力を無効にする(disables)。しかし、図５に示されるように、専用の電圧レギュレータ４０６は、ＧＰＵ４０２が実質的に無効な状態にあっても、バスインタフェースモジュール４１８に電力を供給し続ける。更なる実施形態においては、ＣＰＵ４１６上で実行中のオペレーティングシステムが上述の複雑な処理を実行しないように、バスインタフェースモジュール４１８は、ＣＰＵ４１６によって生成される構成サイクルに応答するよう構成される。従って、実質的に無効な状態の間であっても、ＧＰＵ４０２は、まるでそれが電力供給状態にあるかのようにバス構成サイクルへの応答を生成する。
【００４５】
バスインタフェースモジュール４１８は、ＧＰＵ４０２の他の部分と比較して相対的に小さな電力を使用する。ＧＰＵ４０２が実質的に無効な状態にある場合にもバスインタフェースモジュール４１８に電力供給されているのを維持することは、全体的に可能な電力節約を顕著には損なわない。
【００４６】
図６は本発明の実施形態に従うコンピューティング環境６００を示すブロック図である。コンピューティング環境６００は、図４及び５に示されるコンピューティング環境４００と実質的に同様である。しかし、図６においては、バスインタフェースモジュール４１８は、コンピューティング環境４００におけるような電圧レギュレータ４０８〜４１２よりもむしろ、電圧レギュレータ４０８及び４１０の出力のみを制御する。
【００４７】
図７はＧＰＵ４０２を低電力状態に移行させるコマンドをバスインタフェースモジュール４１８が受信した後のコンピューティング環境６００を示すブロック図である。図７においては、電圧レギュレータ４０８及び４１０の出力を無効にすることによって、ＧＰＵ４０２のみが実質的に無効な状態に移行させられている。バスインタフェースモジュール４１８は電圧レギュレータ４１２には結合されていないので、ＧＰＵ４０２が実質的に無効な状態にある場合にメモリ４０４は電力を供給され続ける。このようにして、ＧＰＵ４０２が実質的に無効な状態にある間に、メモリコンテンツが保たれる。更なる実施形態においては、メモリモジュールを自己フレッシュモードに切り換えることによって、より多くの電力が節約され得る。
【００４８】
図８は本発明の実施形態に従うコンピューティング環境８００を示すブロック図である。コンピューティング環境８００は、ＧＰＵ８０２、メモリ８０４、専用の電力デバイス８０６、電力デバイス（ＰＤ）８０８〜８１４、及びバス８２２を含む。ＧＰＵ８０２は、バスインタフェースモジュール８１６を含む。バスインタフェースモジュール８１６は、状態管理モジュール８１８及び応答モジュール８２０を含む。
【００４９】
電力デバイス８０６〜８１４は、ＧＰＵ８０２及び／又はメモリ８０４の部分に電量供給する信号を提供する任意の種類のデバイスであり得る。例えば電力デバイス８０６〜８１４は、電圧レギュレータ及び／又は電流源を含み得る。図８に示されるように、電源デバイス８０８及び８１０はＧＰＵ８０２への電力を供給する。他の実施形態においては、任意の数の電力デバイスがＧＰＵ８０２の態様に電力を供給するために用いられ得る。例えば、ＧＰＵ８０２を構成している回路ブロックの各種類に対して電力デバイスが設けられてよい。電力デバイス８１２及び８１４はメモリ８０４へ電力を供給する。代替的な実施形態においては、任意の数の電力デバイスがメモリ８０４へ電力供給するために用いられ得る。
【００５０】
例えば、メモリ８０４の異なる部分に電力を供給するために、異なる電力デバイスが用いられ得る。ＧＰＵ８０２又はメモリ８０４に結合される電圧レギュレータの数を増やすことによって、独立に電力供給され得る各要素内の回路ブロックの数が増える。専用の電力デバイス８０６は、バスインタフェースモジュール８１６に電力を供給する。ある実施形態においては、専用の電力デバイス８０６は、ＧＰＵ８０２及び／又はメモリ８０４が実質的に無効の状態に移行させられても、バスインタフェースモジュール８１６に電力を供給し続ける。
【００５１】
状態管理モジュール８１８は、バス８２２に結合されるＣＰＵ（図示せず）からコマンドを受信し、そして電力デバイス８０８〜８１４の出力を制御してＧＰＵ８０２及び／又はメモリ８０４の電力状態を制御する。特に、ＣＰＵから受信されるコマンドに基づいて、状態管理モジュール８１８は、どの電力デバイスが電力信号を出力すべきか及びどの電力デバイスがそれらの出力を無効にすることになるのかを決定することにより、当該電力デバイスが結合される回路ブロックを無効にする。
【００５２】
応答モジュール８２０は、ＣＰＵによって生成されるバス構成サイクルを受信し、そして適切な応答を生成する。応答は、ＧＰＵ８０２及び／又はメモリ８０４が実質的に無効な状態に移行したことをＣＰＵ上で実行中のＯＳが認識しないように、ＣＰＵへ伝送される。例えばバス８２２はＰＣＩエクスプレスバスであってよく、またバス構成サイクルはＰＣＩ構成サイクルであってよい。そのような実施形態においては、ＧＰＵ８０２が実質的に無効な状態又は部分的に電力供給されている状態にある場合に、ＧＰＵ８０２が電力供給状態にあったとした場合と同様にＰＣＩ構成サイクルに応答するように、応答モジュール８２０は構成される。このようにして、ＣＰＵは上述した否定的な影響をもたらす複雑な処理を実行しないことになる。
【００５３】
図９は本発明の実施形態に従うコンピューティング環境９００を示すブロック図である。コンピューティング環境９００は、ＧＰＵ９０２、メモリ９０４、専用の電力デバイス９０６、電力デバイス９０８〜９１４、及びバス９２２を含む。ＧＰＵ９０２は、バスインタフェース（ＢＩ）モジュール９１６を含む。バスインタフェースモジュール９１６は、応答モジュール９２０を含む。コンピューティング環境９００は、ＢＩモジュール９１６がＧＰＵ９０２及びメモリ９０４の電力状態を制御しない点を除き、コンピューティング環境８００と実質的に同様である。それよりもむしろ、ＧＰＵ９０２及びメモリ９０４の電力状態を制御するために、別のデバイス、即ち状態管理モジュール９１８が用いられる。
【００５４】
ある実施形態においては、ＧＰＵ９０２は、それが電力供給状態にある場合にバス構成サイクルに応答する。しかし、ＧＰＵ９０２が実質的に無効な状態に移行している場合には、ＧＰＵ９０２の代わりにＢＩモジュール９１６がバス構成サイクルに応答する。図９に示されるように、ＢＩモジュール９１６がＧＰＵ９０２の電力状態を知らされるように、ＢＩモジュール９１６は状態管理モジュール９１８に結合されていてよい。このようにして、ＢＩモジュール９１６は、バス構成サイクルにいつ応答するのか及びバス構成サイクルをいつパスする(pass)のかを、ＧＰＵ９０２の電力状態に応じて決定することができる。
【００５５】
図１０は本発明の実施形態に従うコンピューティング環境１０００を示すブロック図である。コンピューティング環境１０００は、ＧＰＵ１００２、メモリ１００４、専用の電力デバイス１００６、電力デバイス１００８〜１０１４、及びバス１０２２を含む。ＧＰＵ１００２は、バスインタフェース（ＢＩ）モジュール１０１６を含む。バスインタフェースモジュール１０１６は、状態管理モジュール１０１８及び応答モジュール１０２０を含む。状態管理モジュール１０１８は、ＢＩモジュール１０１６内に実装されていてよく（コンピューティング環境８００におけるように）、あるいは別個のデバイスとして実装されていてよい（コンピューティング環境９００におけるように）。コンピューティング環境１０００は、ＢＩモジュール１０１６がＧＰＵ１００２とは別個のデバイスとして実装されている点を除き、コンピューティング環境８００と実質的に同様である。例えばＢＩモジュール１０１６は、ＧＰＵ１００２と同じプリント回路基板又は基板上に形成される異なるデバイスであってよく、そしてトレース(traces)を用いてＧＰＵ１００２に結合されていてよい。代替的には、ＢＩモジュール１０１６は、別のデバイス（例えばマザーボード）を用いてＧＰＵ１００２に結合される別個のデバイスであってよい。
【００５６】
図１１は本発明の実施形態に従うデバイス（例えばＧＰＵ）を管理するための例示的な方法のフローチャート１１００である。以下の議論に基づいて他の構成及び動作の実施形態が関連分野を含めた当業者には明らかなはずである。フローチャート１１００は図２の実施形態を参照して説明される。しかし、フローチャート１１００はその実施形態に限定されない。図１１に示されるステップは、必ずしも図示される順序で生じる必要はなく、そして以下に詳細に説明される。
【００５７】
ステップ１１０２では、システムイベントが検出される。例えば図２においては、構成マネージャ２１６がシステムイベントに関する情報を受信することができる。例えば、システムイベントは、電源の変更又はグラフィクス重視のアプリケーションの開始若しくはエグジットであってよい。
【００５８】
ステップ１１０４では、検出されたイベントに基づいてＧＰＵ構成が決定される。例えば、構成マネージャ２１６が、検出されたシステムイベントに基づいて第１のＧＰＵ２０４及び第２のＧＰＵ２０６の各々に対する負担を決定する。この例では、構成マネージャ２１６は、追加的なグラフィクス処理能力を必要とし又はその利益を享受するアプリケーションはエグジットさせられたものと決定する。従って、構成マネージャ２１６は、グラフィクス処理タスクを処理するために第１のＧＰＵ２０４が利用可能であるべきではないと決定する。
【００５９】
ステップ１１０６では、決定されたＧＰＵ構成に基づきＧＰＵの電力状態が決定される。例えば図２においては、決定されたＧＰＵ構成をドライバ２２０の電力マネージャモジュール２２４が受信し、そして第１のＧＰＵ２０４及び第２のＧＰＵ２０６の各々に対する電力状態を決定する。電力マネージャモジュール２２４は、グラフィクス処理タスクを処理するために第１のＧＰＵ２０４が利用可能ではないことを指定するように構成マネージャ２１６によって決定された構成を受信する。それに従い、電力マネージャ２２４は、第１のＧＰＵ２０４が実質的に無効な状態にあるべきであると決定する。
【００６０】
ステップ１１０８では、ＧＰＵを実質的に無効な状態に移行させるためのコマンドを含む信号が生成される。例えば図２においては、第１のＧＰＵ２０４を実質的に無効な状態に移行させるコマンドをドライバ２２０が作成する。ステップ１１１０では、生成された信号がバスを介してＧＰＵへ伝送される。例えば図２においては、生成された信号は、バス２３０を介して第１のＧＰＵ２０４へ伝送される。
【００６１】
ステップ１１１２では、バス構成サイクルがＧＰＵによって受信される。例えば、ＰＣＩバス構成サイクルがバス２３０を介して第１のＧＰＵ２０４へ伝送され得る。ステップ１１１４では、バス構成サイクルに対する応答が伝送される。例えば図２においては、第１のＧＰＵ２０４からのバス構成サイクルに対する応答をＣＰＵ２０２が受信することができる。第１のＧＰＵ２０４が実質的に無効な状態にあるとしても、第１のＧＰＵ２０４はバス構成サイクルに対する適切な応答を生じさせる。具体的には、第１のＧＰＵ２０４のバスインタフェースモジュール２２６は、実質的に無効な状態にあるときでも電力供給され続けており、バス構成サイクルに対する適切な応答を生じさせる。従って、ＣＰＵ２０２上で実行中のＯＳ２１８は、第１のＧＰＵ２０４が実質的に無効な状態に移行したことを認識しない。このようにして、第１のＧＰＵ２０４が実質的に無効な状態に切り換えられたものとＯＳ２１８が決定することに伴う不所望な視覚的アーティファクツ又はシステムクラッシュが回避され得る。
【００６２】
図１２は本発明の実施形態に従うＧＰＵの動作の例示的な方法のフローチャート１２００である。以下の議論に基づいて他の構成及び動作の実施形態が関連分野を含めた当業者には明らかなはずである。フローチャート１２００は図８の実施形態を参照して説明される。しかし、フローチャート１２００はその実施形態に限定されない。図１２に示されるステップは、必ずしも図示される順序で生じる必要はない。図１２に示されるステップが以下に詳細に説明される。
【００６３】
ステップ１２０２では、ＧＰＵの電力状態を移行させるためのコマンドを含む第１の信号が受信される。例えば図８においては、ＧＰＵ８０２を実質的に無効な状態又は部分的に電力供給される状態に移行させるためのコマンドを含む信号を、ＧＰＵ８０２がＣＰＵからバス８２２を介して受信することができる。
【００６４】
ステップ１２０４では、電力デバイスがコマンドに基づいて識別される。図８においては、状態管理モジュール８１８がコマンドに基づいて電力デバイス８０８〜８１４の１つ以上を識別することができる。例えば状態管理モジュール８１８は、コマンドに基づいて、ＧＰＵ８０２及び／又はメモリ８０４のどの部分が無効にされることになるのかを決定することができる。この決定に基づいて、状態管理モジュール８１８は、ＧＰＵ８０２及び／又はメモリ８０４の当該部分に電力を供給している電力デバイスを、出力が無効にされるべき電力デバイスであるものと識別する。例えば、電力デバイス８０８はＧＰＵ８０２のレンダリングエンジンに結合されていることがあり、また電力デバイス８１０はＧＰＵ８０２のディスプレイ制御器に結合されていることがある。ＧＰＵ８０２のレンダリングエンジン及び／又はディスプレイ制御器が無効にされるべきであると決定したならば、状態管理モジュール８１８は、対応する電力デバイスを識別する。
【００６５】
ステップ１２０６では、識別された電力デバイスは、ＧＰＵを実質的に無効な状態又は部分的に電力を供給される状態へ移行させるように制御される。例えば図８においては、状態管理モジュール８１８は、ステップ１２０４で識別された電力デバイスの出力を制御して、受信されたコマンドにおいて指定される電力状態にＧＰＵ８０２及び関連するメモリ８０４を移行させる。
【００６６】
ステップ１２０８では、第２の信号が受信される。例えば図８においては、ＧＰＵ８０２は、バス８２２を介してＣＰＵによって伝送されるバス構成サイクルを受信することができる。バス構成サイクルはＰＣＩ構成サイクルであり得る。
【００６７】
ステップ１２１０では、第２の受信された信号に応答して応答信号が生成される。例えば図８においては、バスインタフェースモジュール８１６の応答モジュール８２０が、受信されたバス構成サイクルに対する適切な応答を生じさせることができる。ＧＰＵ８０２が実質的に無効な状態にある場合にも専用の電圧レギュレータ８０６はバスインタフェースモジュール８１６に電力を供給し続けるので、応答モジュール８２０は、たとえＧＰＵ８０２が実質的に無効な状態又は部分的に電力を供給されている状態にあるとしても、バス構成サイクルに対する適切な応答を生じさせることができる。
【００６８】
結論
特定の機能の実装及びそれらの関係性を示す機能構築ブロックを補助として、本発明が上述のように説明されてきた。これらの機能構築ブロックの境界は、説明の便宜上ここでは適宜画定されてきた。特定の機能及びそれらの関係性が適切に実施される限りにおいて、代替的な境界が画定され得る。
【００６９】
本発明の広さ及び範囲は、上述したいかなる例示的な実施形態によっても限定されるべきではなく、以下の特許請求の範囲及びそれらと均等なものに従ってのみ画定されるべきである。
【００７０】
本出願における請求項は親出願又は関連出願のそれらとは異なる。従って、出願人は、親出願又は本出願に関連する任意の先行する出願における特許請求の範囲のいかなるディスクレーマ(disclaimer)をも撤回する。従って、審査官は、任意のそのような先のディスクレーマ及び回避するためにディスクレーマがなされた引用例が再閲覧される必要があるかもしれないということを助言されている。また、審査官にあっては、本出願においてなされるいかなるディスクレーマも親出願において又は親出願に対して読まれるべきではないことを確認されたい。
【図１】
2013504811.tif 000003
【図２】
2013504811.tif 000004
【図３】
2013504811.tif 000005
【図４】
2013504811.tif 000006
【図５】
2013504811.tif 000007
【図６】
2013504811.tif 000008
【図７】
2013504811.tif 000009
【図８】
2013504811.tif 000010
【図９】
2013504811.tif 000011
【図１０】
2013504811.tif 000012
【図１１】
2013504811.tif 000013
【図１２】
2013504811.tif 000014
【国際調査報告】
2013504811.tif 000015
2013504811.tif 000016
2013504811.tif 000017