説明

デバイスを無効にするための方法及び装置

【解決手段】
デバイスを動作させる方法が提供される。方法は、第1の受信された信号に応答してGPUを実質的に無効な状態に移行させることと、GPUが実質的に無効な状態にある間に第2の受信された信号に応答して応答信号を生成することと、を含む。応答信号は、電力供給状態において第2の受信された信号に応答してGPUによって生成されるはずの第2の応答信号と実質的に同様である。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は多重処理システムに関し、より特定的には多重プロセッサシステムにおいて電力を節約することに関する。
【背景技術】
【0002】
幾つかの処理システムは、タスクの並列処理を通して性能向上を可能にするために、多重処理ユニット(例えば多重グラフィクス処理ユニット、即ちGPU)を含む。例示的なタスクは、例えばビデオ処理、グラフィクス処理、物理的シミュレーション等を含む。多重アクティブGPUによって提供される追加的な処理能力を有することを必要とする又はそのような追加的な処理能力を有することの利益を享受し得るグラフィクス重視のゲームが、実行中であることがある。しかし、他のアプリケーションは、そのような処理能力の増大からの利益を享受しない。これらのアプリケーションが実行中である場合、グラフィクス能力はそれほどは必要ない。このことは、GPUの数を減少させることによって又は1つのGPUからより低い能力の別のGPUへ切り換えることによって対処され得る。
【0003】
GPUは、典型的にはバス、例えば周辺要素相互接続(peripheral component interconnect)(PCI)バス又はPCIエクスプレス(PCI express)バスを介して中央処理ユニット(CPU)に結合されており、また別のデバイス(例えばノースブリッジデバイス)内に含まれていることがある。代替的には、GPU又は他の種類のコア若しくはプロセッサは、CPUと同じパッケージ又は同じダイの一部として含まれていることがある。
【発明の概要】
【発明が解決しようとする課題】
【0004】
CPU上で実行中のオペレーティングシステムは、通常、構成サイクル(configuration cycles)を生成する。デバイスが構成サイクルに応答しない場合、例えばデバイスが電源をオフにされる場合、オペレーティングシステムは、ユーザ経験に否定的な影響を有し得る複雑な処理(例えばプラグアンドプレイ(plug-and-play)処理)を実行させる可能性がある。このように、デバイスの電源をオンにすること及びオフにすることは、しばしばオペレーティングシステム依存である。これらの否定的な影響を避けるために、多くのグラフィクスシステムは、CPUによって生成される構成サイクルにGPUが応答し得るように、GPUへの電力供給を保つ(使用されていないGPUについても)。しかし、使用されていないGPUへの電力供給を保つことは、結果として効率的でない電力使用をもたらし得るし、またモバイルシステムにおいてはバッテリ寿命を短くする。
【0005】
従って、例えばデバイスがオフにされている間にバス構成サイクルに応答することによるようなシステム挙動又は制限と対立することなしに、プロセッサが低減された電力状態に置かれることを可能にする方法及びシステムが必要とされている。
【課題を解決するための手段】
【0006】
ここに説明される実施形態は、概して、第1の信号に応答してデバイスの電力状態を移行させることと、デバイスが電力供給状態にあったとした場合に生成されるはずの応答信号と実質的に同様な、第2の信号に対する応答信号を生成することと、に関連している。例えばGPUは、それに割り当てられた負担に基づいて実質的に無効な状態又は電力供給状態に移行させられ得る。
【0007】
ある実施形態においては、デバイスを動作させる方法は、第1の受信された信号に応答してデバイスを実質的に無効な状態に移行させることと、デバイスが実質的に無効な状態にある間に第2の受信された信号に応答して応答信号を生成することと、を含む。応答信号は、電力供給状態において第2の受信された信号に応答してデバイスによって生成されるはずの第2の応答信号と実質的に同様である。
【0008】
別の実施形態においては、デバイスはバスインタフェースモジュールを含む。バスインタフェースモジュールは、デバイスの電力状態を制御するように構成される状態管理モジュールと、受信された信号に応答して応答信号を生成するように構成される応答モジュールと、を含む。バスインタフェースモジュールは、デバイスが実質的に無効な状態にある場合にバスインタフェースモジュールに電力を供給するように構成される電力システムに結合される。このようにして、応答モジュールはプロセッサが低電力状態にある場合に応答信号を生成することが可能である。
【0009】
別の実施形態においては、デバイスを動作させるための方法を行うために1つ以上のプロセッサによる実行のための1つ以上の命令の1つ以上のシーケンスを伝えるコンピュータ可読媒体が提供され、命令は、1つ以上のプロセッサによって実行されるときに、1つ以上のプロセッサに、第1の受信された信号に応答してデバイスを実質的に無効な状態に移行させることと、デバイスが実質的に無効な状態にある間に第2の受信された信号に応答して応答信号を生成することと、をさせる。応答信号は、電力供給状態において第2の受信された信号に応答してデバイスによって生成されるはずの第2の応答信号と実質的に同様である。
【0010】
本発明の更なる特徴及び利点の他、本発明の種々の実施形態の構成及び動作は、添付の図面を参照して以下に詳細に説明される。
【図面の簡単な説明】
【0011】
ここに組み込まれ且つ出願書類の一部をなす添付の図面は、本発明を示し、そして明細書と共に、本発明の原理を説明すること及び関連分野を含めた当業者が本発明を作りそして使用するのを可能にすることに更に役立つ。
【0012】
【図1】図1は従来のコンピューティング環境のブロック図である。
【0013】
【図2】図2は本発明の実施形態に従うコンピューティング環境のブロック図である。
【0014】
【図3】図3は本発明の実施形態に従う構成マネージャの動作の実施形態を示すフローチャートである。
【0015】
【図4】図4は本発明の実施形態に従うコンピューティング環境のブロック図(その1)である。
【図5】図5は本発明の実施形態に従うコンピューティング環境のブロック図(その2)である。
【図6】図6は本発明の実施形態に従うコンピューティング環境のブロック図(その3)である。
【図7】図7は本発明の実施形態に従うコンピューティング環境のブロック図(その4)である。
【図8】図8は本発明の実施形態に従うコンピューティング環境のブロック図(その5)である。
【図9】図9は本発明の実施形態に従うコンピューティング環境のブロック図(その6)である。
【図10】図10は本発明の実施形態に従うコンピューティング環境のブロック図(その7)である。
【0016】
【図11】図11はGPUとしてこの実施形態において例示されるデバイスを本発明の実施形態に従い管理する方法を示すフローチャートである。
【0017】
【図12】図12はGPUとしてこの実施形態において例示されるデバイスを本発明の実施形態に従い動作させる方法を示すフォローチャートである。
【0018】
添付の図面を参照して本発明が説明されることになる。概して、ある要素が最初に現れる図面は、典型的には対応する参照番号の一番左の単一又は複数の桁によって示される。
【発明を実施するための形態】
【0019】
概要及び要約の欄ではなく詳細な説明の欄が特許請求の範囲を解釈するために用いられることを意図されていることが理解されるべきである。概要及び要約の欄は、発明者によって検討されているような本発明の1つ以上であるが全てではない例示的な実施形態を記述している場合があり、従って、本発明及び添付の特許請求の範囲を限定することを意図されるものでは決してない。
【0020】
特定の実施形態の上述した説明は、本発明の一般的性質を十分に明らかにするであろうから、他者は、当業者の知識を適用することによって、過度の実験を必要とせず、本発明の一般的概念から逸脱することなく、そのような特定の実施形態を容易に修正し且つ/又は種々の応用に適用することができる。従って、そのような適用及び修正は、ここに提示されている教示及び指針に基いて、開示されている実施形態と均等なものの意味及び範囲の範疇にあることが意図されている。ここでの用語等は、本出願書類の用語等が教示及び指針の下で当業者によって解釈されるべきであるという点において、説明を目的としたものであって限定を目的としていないことが理解されるべきである。
【0021】
図1はコンピューティング環境100を示すブロック図である。コンピューティング環境100は、中央処理ユニット102と、第1及び第2のグラフィクス処理ユニット(GPU)104及び106と、メモリ108及び110と、ディスプレイ112と、を含む。
【0022】
CPU102は、バス114を介して第1及び第2のGPU104及び106に結合される。本発明の実施形態においては、バス114は周辺要素相互接続(PCI)バス、例えばPCIエクスプレスバスである。第1及び第2のGPU104及び106はグラフィクスタスクを達成する。例えば第1のGPU104及び/又は第2のGPU106は、CPU102によってそれらに割り当てられたレンダリング(rendering)、ディスプレイ又は他のタスクを達成することができる。また、第1及び第2のGPU104及び106は異なる役割を有することができる。例えば第2のGPU106は、それがディスプレイ112を制御することを理由として、マスターGPUであり得る。第1のGPU104は、それがディスプレイを駆動しないことを理由として、スレーブGPUであり得る。ディスプレイ112は、コンピュータ画面等のグラフィクス情報を表示する種々の異なるデバイスであり得る。
【0023】
第1及び第2のGPU104及び106は、関連するメモリ108及び110にそれぞれ結合される。メモリ108及び110は、それらが関連するGPUに関する情報を記憶する。例えばメモリ108及び110は、GPUによってレンダリングされる表面、ディスプレイ112上に表示されるべきグラフィクス等を記憶することができる。
【0024】
CPU102上で実行中のオペレーティングシステム(OS)(図1には図示せず)は、バス114を介して第1及び第2のGPU104及び106の各々に伝送される構成サイクルを生成する。GPU104及び106のいずれかがそのそれぞれの構成サイクルに応答しない場合、不所望な視覚的アーティファクツ(artifacts)又はシステムクラッシュを生じさせ得る処理(例えばプラグアンドプレイ)をOSが実行するかもしれない。従って、GPU104及び106の1つがグラフィクスタスクを処理中でない場合であっても、その処理中でないGPUは構成サイクルに応答するために電力を供給されたままである必要があり得る。電力を節約するために、既知の方法(例えばクロックゲーティング又は電力ゲーティング)が用いられて、GPUが非アクティグである場合にGPUの特定の部分を無効にしたり電力を落とすことができる。しかし、これらの既知の方法は、GPUの相当部分がアクティブのままであることを必要とし得る。従って、GPUの全体又はその相当部分がオフにされれば、更なる電力が節約され得る。
【0025】
本発明の実施形態においては、関連するバスインタフェースモジュールを有するデバイス(例えばGPU)が提供される。バスインタフェースモジュールは、GPU内に含まれ得る又は物理的に別個のデバイスであり得る独立に電力を供給されるモジュールである。GPUが「実質的に無効な状態(substantially disabled state)」に移行させられる場合、バスインタフェースモジュールは電力を供給されたままであり、またGPUの残りは実質的に又は完全にオフにされる。GPUが実質的に無効な状態に切り換えられたことをCPU上で実行中のオペレーティングシステムが認識しないように、即ち例えば上述したような複雑な処理をオペレーティングシステムが実行しないように、バスインタフェースモジュールは、GPUが実質的に無効な状態にある場合に、バス構成サイクルに応答するように構成される。つまり、バスインタフェースモジュールは、GPUが電力供給状態にあるかのような応答を生成する。更なる実施形態においては、バスインタフェースモジュールはまた、電力信号をGPUに供給するために用いられる電圧レギュレータの出力を制御することによって、GPUの電力状態を制御する。別の実施形態においては、別のデバイス、例えば状態管理モジュールがGPUの電力状態を制御する。
【0026】
図2は本発明に従い構成されるコンピューティング環境200を示すブロック図である。コンピューティング環境200は、CPU202と、第1及び第2のGPU204及び206と、メモリ208〜212と、ディスプレイ214と、を含む。
【0027】
CPU202は、構成マネージャ216と、オペレーティングシステム(OS)218と、ドライバ220及び222と、を含む。構成マネージャ216はシステムイベントに関する情報を受信し、そしてそれに従って第1及び第2のGPU204及び206のための構成を決定する。例として、システムイベントは、電源の変更又はグラフィクス重視のアプリケーション(例えば3次元ゲーム)の開始若しくは停止を含み得る。電源の変更は、本質的に無制限なAC電源(例えば壁コンセント)から多くの場合に制限的なDC電源(例えばバッテリ)への変更であってよい。ある実施形態においては、イベントの結果、単一GPU構成から多重GPU構成への変更又はその逆がもたらされ得る。代替的な実施形態においては、例えばアプリケーションの開始又は停止に基づく移行の結果、例えばグラフィクス重視のアプリケーションが開始する場合又は逆にグラフィクス重視のアプリケーションが停止する場合に、比較的計算能力の高い(且つ比較的大きな電力を消費する)GPUは電力供給状態へ移行させられてよく、また比較的計算能力の低いGPUは実質的に無効な状態へ移行させられてよい。
【0028】
構成マネージャ216はシステムイベントに関する情報を受信し、そして第1及び第2のGPU204及び206のための構成を決定する。構成は、第1及び第2のGPU204及び206の各々にグラフィクスタスク負担(graphics task responsibilities)を割り当てることによって決定される。例えば第1のGPU204及び/又は第2のGPU206は、全てのグラフィクス処理タスクに対して若しくは幾つかのグラフィクス処理タスクのみ(例えばレンダリング又はディスプレイのみ)に対して利用可能にされてよく、又は非アクティブ(いかなるグラフィクス処理タスクによっても利用可能でない)であってよい。
【0029】
OS218は種々のタスクを処理する。例えばOS218は、バス230を介して第1及び第2のGPU204及び206へ伝送されるバス構成サイクルの生成を監視することができる。図2の例では、バス230はPCIエクスプレスバスであり、またバス構成サイクルはPCI構成サイクルである。
【0030】
ドライバ220は第1のGPU204との相互作用を容易にし、またドライバ222は第2のGPU206との相互作用を容易にする。図2に示されるように、ドライバ220は電力マネージャモジュール224を含み、またドライバ222は電力マネージャ226を含む。電力マネージャモジュール224及び226は、構成マネージャ216によって作成されたハードウエア構成決定を受信し、そしてそれらのそれぞれGPU204及び206に対する電力状態(例えば電力供給されている又は実質的に無効にされている)を決定する。ドライバ220及び222はまた、第1及び第2のGPU204及び206に固有のデバイス向けモジュール(device-specific modules)を含む。これらのデバイス向けモジュールは、特定のデバイスとの相互作用を容易にすることができる。
【0031】
CPU202はバス230を介して第1及び第2のGPU204及び206と結合される。第1及び第2のGPU204及び206は、第1及び第2のGPU204及び206がそれぞれバスインタフェースモジュール226及び228を追加的に含む点を除いて、図1を参照して説明された第1及び第2のGPU104及び106と同様であってよい。バスインタフェースモジュール226及び228は、第1及び第2のGPU204及び206に電力を供給する電圧レギュレータを制御することによって、第1及び第2のGPU204及び206の電力状態を制御する。バスインタフェースモジュール226及び228はまた、バス構成サイクルに応答する。例えば、バスインタフェースモジュール226及び228は、第1及び第2のGPU204及び206が実質的に無効な状態に切り換えられる場合に、第1及び第2のGPU204及び206がバス構成サイクルに応答することができるように、電力供給されたままであるように構成され得る。そうすることで、第1及び第2のGPU204及び206は、実質的に無効な状態に切り換えられてもなお、まるでそれらが電力供給状態にあるかのようにバス構成サイクルに応答することができる。
【0032】
図2に示されるように、第2のGPU206はディスプレイ214に結合されている。従って、第2のGPU206はマスターGPUであり得るし、また第1のGPU204(ディスプレイに結合されていない)はスレーブGPUであり得る。第1及び第2のGPU204及び206は、関連するメモリ210及び212にそれぞれ結合されている。図2に示される例では、メモリ210及び212は、上述したメモリ108及び110とそれぞれ実質的に同様である。
【0033】
CPU202に関連するメモリ208は、CPU202上で実行されて構成マネージャ216、OS218、及び/又はドライバ220を動作させる命令を記憶する。
【0034】
図3は本発明に従う構成マネージャ216の動作の実施形態を示す例示的なフローチャート300である。以下の議論に基づいて、関連分野を含めた当業者にとって他の構成及び動作の実施形態が明らかなはずである。フローチャート300は図2の実施形態を参照して説明される。しかし、フローチャート300は、その実施形態に限定されない。図3に示されるステップは、必ずしも図示される順序で生じる必要はなく、また以下に詳細に説明される。
【0035】
ステップ302では、システムイベントが検出されたかどうかが決定される。例えば、システムイベントは、3Dグラフィクスアプリケーションの開始又は停止エグジットであり得る。
【0036】
システムイベントが検出されたら、フローチャート300はステップ304に進む。ステップ304では、システムイベントが3Dのグラフィクス重視アプリケーションの開始であったかどうかが決定される。ステップ308では、アプリケーションがCPU202上で実行する最初の3Dアプリケーション(又は他のグラフィクス重視のアプリケーション)であるかどうかに関して決定がなされる。アプリケーションが最初の3Dアプリケーションでない場合には、フローチャート300はステップ302に戻る。3Dグラフィクス処理アプリケーションが最初のそのようなアプリケーションである場合には、ステップ312に到達する。
【0037】
ステップ312では、現在実質的に無効の状態にあるGPUを電力供給状態に移行させるコマンドが作成される。例えば、アプリケーションが最初の3D又は他のグラフィクス重視のアプリケーションである場合には、追加的なグラフィクス処理能力を必要としたアプリケーションは実行中ではなかったのであるから、アプリケーションが開始されるときに1つ以上のGPUが実質的に無効な状態であってよい。アプリケーションが開始すると、追加的なグラフィクス処理能力を提供するために、追加的なGPUが電力供給状態へ移行させられ得る。
【0038】
システムイベントがグラフィクス重視のアプリケーションの開始ではない場合、ステップ304の後にステップ306が生じる。ステップ306では、システムイベントが3Dグラフィクスアプリケーション(又は他のグラフィクス重視のアプリケーション)のエグジットであったかどうかが決定される。システムイベントが3Dグラフィクス処理アプリケーションのエグジットでない場合には、フローチャート300はステップ302に戻る。システムイベントが3Dグラフィクス処理アプリケーションのエグジットである場合には、ステップ310に到達する。
【0039】
ステップ310は、3DアプリケーションがCPU(例えばCPU202)上で実行中の最後の3Dグラフィクス処理アプリケーションであるかどうかを決定する。そうである場合には、フローチャート300はステップ314に進む。ステップ314では、GPUを実質的に無効な状態へ移行させるコマンドが作成される。例えば、アプリケーションがCPU202上で実行中の最後の3Dアプリケーション(又は他のグラフィクス重視のアプリケーション)であると決定される場合には、CPU202上で実行し続けているアプリケーションは、多重GPUに同時に電力供給することによってもたらされる増大されたグラフィクス性能の利益を享受しないし、あるいはそれを必要としない。従って、1つ以上のGPUが実質的に無効な状態に移行させられて、電力を節約することができる。
【0040】
フローチャート300は、3Dグラフィクス又は他のグラフィクス重視のアプリケーションの開始及びエグジットに関係するシステムイベントに関する構成マネージャ216の動作の実施形態を示している。ここでの説明に基づいて関連分野を含めた当業者には理解されるであろうように、構成マネージャ216は、他の種類のシステムイベント、例えば電源の変更に応答することができる。
【0041】
図4は本発明の実施形態に従うコンピューティング環境400を示すブロック図である。コンピューティング環境400は、GPU402、メモリ404、電圧レギュレータ406〜412、バス414、及びCPU416を含む。
【0042】
GPU402は、上述した第1のGPU204及び/又は第2のGPU206と実質的に同様であり得る。GPU402は、電圧レギュレータ406〜410により出力される信号によって電力供給される。GPU402は関連するメモリ404に結合されている。メモリ404は上述したメモリ210又はメモリ212と実質的に同様であってよく、また電圧レギュレータ412によって出力される信号により電力供給される。
【0043】
電圧レギュレータ406〜410は、GPU402を形成する特定の回路ブロックに電力供給する。電圧レギュレータ406は、バスインタフェースモジュール418に電力を供給する専用の電圧レギュレータである。電圧レギュレータ408及び410はGPU402の他の回路ブロックに電力を供給する。例えば電圧レギュレータ408及び410は、GPU402のそれぞれレンダリング回路ブロック及びディスプレイ制御器回路ブロックに電力を供給することができる。バスインタフェースモジュール418は、バス414を介してGPU402の電力状態に関するコマンドをCPU416から受信し、そしてコマンドに基づいて電圧レギュレータ408〜412の出力を制御する。
【0044】
例として、図5はGPU402を実質的に無効な状態に移行させるためのコマンドをバスインタフェースモジュール418がCPU416から受信した後の代替的なコンピューティング環境400を示すブロック図500である。バスインタフェースモジュール418は、GPU402及び関連するメモリ404の実質的に全部が電力オフにされるように、電圧レギュレータ408〜412の出力を無効にする(disables)。しかし、図5に示されるように、専用の電圧レギュレータ406は、GPU402が実質的に無効な状態にあっても、バスインタフェースモジュール418に電力を供給し続ける。更なる実施形態においては、CPU416上で実行中のオペレーティングシステムが上述の複雑な処理を実行しないように、バスインタフェースモジュール418は、CPU416によって生成される構成サイクルに応答するよう構成される。従って、実質的に無効な状態の間であっても、GPU402は、まるでそれが電力供給状態にあるかのようにバス構成サイクルへの応答を生成する。
【0045】
バスインタフェースモジュール418は、GPU402の他の部分と比較して相対的に小さな電力を使用する。GPU402が実質的に無効な状態にある場合にもバスインタフェースモジュール418に電力供給されているのを維持することは、全体的に可能な電力節約を顕著には損なわない。
【0046】
図6は本発明の実施形態に従うコンピューティング環境600を示すブロック図である。コンピューティング環境600は、図4及び5に示されるコンピューティング環境400と実質的に同様である。しかし、図6においては、バスインタフェースモジュール418は、コンピューティング環境400におけるような電圧レギュレータ408〜412よりもむしろ、電圧レギュレータ408及び410の出力のみを制御する。
【0047】
図7はGPU402を低電力状態に移行させるコマンドをバスインタフェースモジュール418が受信した後のコンピューティング環境600を示すブロック図である。図7においては、電圧レギュレータ408及び410の出力を無効にすることによって、GPU402のみが実質的に無効な状態に移行させられている。バスインタフェースモジュール418は電圧レギュレータ412には結合されていないので、GPU402が実質的に無効な状態にある場合にメモリ404は電力を供給され続ける。このようにして、GPU402が実質的に無効な状態にある間に、メモリコンテンツが保たれる。更なる実施形態においては、メモリモジュールを自己フレッシュモードに切り換えることによって、より多くの電力が節約され得る。
【0048】
図8は本発明の実施形態に従うコンピューティング環境800を示すブロック図である。コンピューティング環境800は、GPU802、メモリ804、専用の電力デバイス806、電力デバイス(PD)808〜814、及びバス822を含む。GPU802は、バスインタフェースモジュール816を含む。バスインタフェースモジュール816は、状態管理モジュール818及び応答モジュール820を含む。
【0049】
電力デバイス806〜814は、GPU802及び/又はメモリ804の部分に電量供給する信号を提供する任意の種類のデバイスであり得る。例えば電力デバイス806〜814は、電圧レギュレータ及び/又は電流源を含み得る。図8に示されるように、電源デバイス808及び810はGPU802への電力を供給する。他の実施形態においては、任意の数の電力デバイスがGPU802の態様に電力を供給するために用いられ得る。例えば、GPU802を構成している回路ブロックの各種類に対して電力デバイスが設けられてよい。電力デバイス812及び814はメモリ804へ電力を供給する。代替的な実施形態においては、任意の数の電力デバイスがメモリ804へ電力供給するために用いられ得る。
【0050】
例えば、メモリ804の異なる部分に電力を供給するために、異なる電力デバイスが用いられ得る。GPU802又はメモリ804に結合される電圧レギュレータの数を増やすことによって、独立に電力供給され得る各要素内の回路ブロックの数が増える。専用の電力デバイス806は、バスインタフェースモジュール816に電力を供給する。ある実施形態においては、専用の電力デバイス806は、GPU802及び/又はメモリ804が実質的に無効の状態に移行させられても、バスインタフェースモジュール816に電力を供給し続ける。
【0051】
状態管理モジュール818は、バス822に結合されるCPU(図示せず)からコマンドを受信し、そして電力デバイス808〜814の出力を制御してGPU802及び/又はメモリ804の電力状態を制御する。特に、CPUから受信されるコマンドに基づいて、状態管理モジュール818は、どの電力デバイスが電力信号を出力すべきか及びどの電力デバイスがそれらの出力を無効にすることになるのかを決定することにより、当該電力デバイスが結合される回路ブロックを無効にする。
【0052】
応答モジュール820は、CPUによって生成されるバス構成サイクルを受信し、そして適切な応答を生成する。応答は、GPU802及び/又はメモリ804が実質的に無効な状態に移行したことをCPU上で実行中のOSが認識しないように、CPUへ伝送される。例えばバス822はPCIエクスプレスバスであってよく、またバス構成サイクルはPCI構成サイクルであってよい。そのような実施形態においては、GPU802が実質的に無効な状態又は部分的に電力供給されている状態にある場合に、GPU802が電力供給状態にあったとした場合と同様にPCI構成サイクルに応答するように、応答モジュール820は構成される。このようにして、CPUは上述した否定的な影響をもたらす複雑な処理を実行しないことになる。
【0053】
図9は本発明の実施形態に従うコンピューティング環境900を示すブロック図である。コンピューティング環境900は、GPU902、メモリ904、専用の電力デバイス906、電力デバイス908〜914、及びバス922を含む。GPU902は、バスインタフェース(BI)モジュール916を含む。バスインタフェースモジュール916は、応答モジュール920を含む。コンピューティング環境900は、BIモジュール916がGPU902及びメモリ904の電力状態を制御しない点を除き、コンピューティング環境800と実質的に同様である。それよりもむしろ、GPU902及びメモリ904の電力状態を制御するために、別のデバイス、即ち状態管理モジュール918が用いられる。
【0054】
ある実施形態においては、GPU902は、それが電力供給状態にある場合にバス構成サイクルに応答する。しかし、GPU902が実質的に無効な状態に移行している場合には、GPU902の代わりにBIモジュール916がバス構成サイクルに応答する。図9に示されるように、BIモジュール916がGPU902の電力状態を知らされるように、BIモジュール916は状態管理モジュール918に結合されていてよい。このようにして、BIモジュール916は、バス構成サイクルにいつ応答するのか及びバス構成サイクルをいつパスする(pass)のかを、GPU902の電力状態に応じて決定することができる。
【0055】
図10は本発明の実施形態に従うコンピューティング環境1000を示すブロック図である。コンピューティング環境1000は、GPU1002、メモリ1004、専用の電力デバイス1006、電力デバイス1008〜1014、及びバス1022を含む。GPU1002は、バスインタフェース(BI)モジュール1016を含む。バスインタフェースモジュール1016は、状態管理モジュール1018及び応答モジュール1020を含む。状態管理モジュール1018は、BIモジュール1016内に実装されていてよく(コンピューティング環境800におけるように)、あるいは別個のデバイスとして実装されていてよい(コンピューティング環境900におけるように)。コンピューティング環境1000は、BIモジュール1016がGPU1002とは別個のデバイスとして実装されている点を除き、コンピューティング環境800と実質的に同様である。例えばBIモジュール1016は、GPU1002と同じプリント回路基板又は基板上に形成される異なるデバイスであってよく、そしてトレース(traces)を用いてGPU1002に結合されていてよい。代替的には、BIモジュール1016は、別のデバイス(例えばマザーボード)を用いてGPU1002に結合される別個のデバイスであってよい。
【0056】
図11は本発明の実施形態に従うデバイス(例えばGPU)を管理するための例示的な方法のフローチャート1100である。以下の議論に基づいて他の構成及び動作の実施形態が関連分野を含めた当業者には明らかなはずである。フローチャート1100は図2の実施形態を参照して説明される。しかし、フローチャート1100はその実施形態に限定されない。図11に示されるステップは、必ずしも図示される順序で生じる必要はなく、そして以下に詳細に説明される。
【0057】
ステップ1102では、システムイベントが検出される。例えば図2においては、構成マネージャ216がシステムイベントに関する情報を受信することができる。例えば、システムイベントは、電源の変更又はグラフィクス重視のアプリケーションの開始若しくはエグジットであってよい。
【0058】
ステップ1104では、検出されたイベントに基づいてGPU構成が決定される。例えば、構成マネージャ216が、検出されたシステムイベントに基づいて第1のGPU204及び第2のGPU206の各々に対する負担を決定する。この例では、構成マネージャ216は、追加的なグラフィクス処理能力を必要とし又はその利益を享受するアプリケーションはエグジットさせられたものと決定する。従って、構成マネージャ216は、グラフィクス処理タスクを処理するために第1のGPU204が利用可能であるべきではないと決定する。
【0059】
ステップ1106では、決定されたGPU構成に基づきGPUの電力状態が決定される。例えば図2においては、決定されたGPU構成をドライバ220の電力マネージャモジュール224が受信し、そして第1のGPU204及び第2のGPU206の各々に対する電力状態を決定する。電力マネージャモジュール224は、グラフィクス処理タスクを処理するために第1のGPU204が利用可能ではないことを指定するように構成マネージャ216によって決定された構成を受信する。それに従い、電力マネージャ224は、第1のGPU204が実質的に無効な状態にあるべきであると決定する。
【0060】
ステップ1108では、GPUを実質的に無効な状態に移行させるためのコマンドを含む信号が生成される。例えば図2においては、第1のGPU204を実質的に無効な状態に移行させるコマンドをドライバ220が作成する。ステップ1110では、生成された信号がバスを介してGPUへ伝送される。例えば図2においては、生成された信号は、バス230を介して第1のGPU204へ伝送される。
【0061】
ステップ1112では、バス構成サイクルがGPUによって受信される。例えば、PCIバス構成サイクルがバス230を介して第1のGPU204へ伝送され得る。ステップ1114では、バス構成サイクルに対する応答が伝送される。例えば図2においては、第1のGPU204からのバス構成サイクルに対する応答をCPU202が受信することができる。第1のGPU204が実質的に無効な状態にあるとしても、第1のGPU204はバス構成サイクルに対する適切な応答を生じさせる。具体的には、第1のGPU204のバスインタフェースモジュール226は、実質的に無効な状態にあるときでも電力供給され続けており、バス構成サイクルに対する適切な応答を生じさせる。従って、CPU202上で実行中のOS218は、第1のGPU204が実質的に無効な状態に移行したことを認識しない。このようにして、第1のGPU204が実質的に無効な状態に切り換えられたものとOS218が決定することに伴う不所望な視覚的アーティファクツ又はシステムクラッシュが回避され得る。
【0062】
図12は本発明の実施形態に従うGPUの動作の例示的な方法のフローチャート1200である。以下の議論に基づいて他の構成及び動作の実施形態が関連分野を含めた当業者には明らかなはずである。フローチャート1200は図8の実施形態を参照して説明される。しかし、フローチャート1200はその実施形態に限定されない。図12に示されるステップは、必ずしも図示される順序で生じる必要はない。図12に示されるステップが以下に詳細に説明される。
【0063】
ステップ1202では、GPUの電力状態を移行させるためのコマンドを含む第1の信号が受信される。例えば図8においては、GPU802を実質的に無効な状態又は部分的に電力供給される状態に移行させるためのコマンドを含む信号を、GPU802がCPUからバス822を介して受信することができる。
【0064】
ステップ1204では、電力デバイスがコマンドに基づいて識別される。図8においては、状態管理モジュール818がコマンドに基づいて電力デバイス808〜814の1つ以上を識別することができる。例えば状態管理モジュール818は、コマンドに基づいて、GPU802及び/又はメモリ804のどの部分が無効にされることになるのかを決定することができる。この決定に基づいて、状態管理モジュール818は、GPU802及び/又はメモリ804の当該部分に電力を供給している電力デバイスを、出力が無効にされるべき電力デバイスであるものと識別する。例えば、電力デバイス808はGPU802のレンダリングエンジンに結合されていることがあり、また電力デバイス810はGPU802のディスプレイ制御器に結合されていることがある。GPU802のレンダリングエンジン及び/又はディスプレイ制御器が無効にされるべきであると決定したならば、状態管理モジュール818は、対応する電力デバイスを識別する。
【0065】
ステップ1206では、識別された電力デバイスは、GPUを実質的に無効な状態又は部分的に電力を供給される状態へ移行させるように制御される。例えば図8においては、状態管理モジュール818は、ステップ1204で識別された電力デバイスの出力を制御して、受信されたコマンドにおいて指定される電力状態にGPU802及び関連するメモリ804を移行させる。
【0066】
ステップ1208では、第2の信号が受信される。例えば図8においては、GPU802は、バス822を介してCPUによって伝送されるバス構成サイクルを受信することができる。バス構成サイクルはPCI構成サイクルであり得る。
【0067】
ステップ1210では、第2の受信された信号に応答して応答信号が生成される。例えば図8においては、バスインタフェースモジュール816の応答モジュール820が、受信されたバス構成サイクルに対する適切な応答を生じさせることができる。GPU802が実質的に無効な状態にある場合にも専用の電圧レギュレータ806はバスインタフェースモジュール816に電力を供給し続けるので、応答モジュール820は、たとえGPU802が実質的に無効な状態又は部分的に電力を供給されている状態にあるとしても、バス構成サイクルに対する適切な応答を生じさせることができる。
【0068】
結論
特定の機能の実装及びそれらの関係性を示す機能構築ブロックを補助として、本発明が上述のように説明されてきた。これらの機能構築ブロックの境界は、説明の便宜上ここでは適宜画定されてきた。特定の機能及びそれらの関係性が適切に実施される限りにおいて、代替的な境界が画定され得る。
【0069】
本発明の広さ及び範囲は、上述したいかなる例示的な実施形態によっても限定されるべきではなく、以下の特許請求の範囲及びそれらと均等なものに従ってのみ画定されるべきである。
【0070】
本出願における請求項は親出願又は関連出願のそれらとは異なる。従って、出願人は、親出願又は本出願に関連する任意の先行する出願における特許請求の範囲のいかなるディスクレーマ(disclaimer)をも撤回する。従って、審査官は、任意のそのような先のディスクレーマ及び回避するためにディスクレーマがなされた引用例が再閲覧される必要があるかもしれないということを助言されている。また、審査官にあっては、本出願においてなされるいかなるディスクレーマも親出願において又は親出願に対して読まれるべきではないことを確認されたい。

【特許請求の範囲】
【請求項1】
デバイスを動作させる方法であって、
第1の受信された信号に応答して前記デバイスを実質的に無効な状態に移行させることと、
前記デバイスが前記実質的に無効な状態にある間に第2の受信された信号に応答して応答信号を生成することと、を備え、
前記応答信号は、電力供給状態において前記第2の受信された信号に応答して前記デバイスによって生成されるはずの第2の応答信号と実質的に同様である方法。
【請求項2】
前記第1及び第2の受信された信号の少なくとも1つは中央処理ユニット(CPU)によって生成される請求項1の方法。
【請求項3】
前記第2の受信された信号はバス構成サイクルを備える請求項1の方法。
【請求項4】
移行させることは、プロセッサに結合される電力デバイスの出力電圧を無効にすることを備える請求項1の方法。
【請求項5】
前記電力デバイスは前記プロセッサのレンダリングエンジン又はディスプレイ制御器の少なくとも1つに結合される請求項4の方法。
【請求項6】
前記デバイスに関連するメモリの少なくとも一部分を無効にすることを更に備える請求項1の方法。
【請求項7】
メモリを無効にすることは、前記メモリに結合される電力デバイスの出力電圧を無効にすることを備える請求項6の方法。
【請求項8】
前記デバイスは複数の電力デバイスに結合され、
前記第1の受信された信号に基づき前記複数の電力デバイスの1つの電力デバイスを識別することを更に備え、
移行させることは、前記識別された電力デバイスの出力を無効にすることを備える請求項1の方法。
【請求項9】
バスインタフェースモジュールを備えるデバイスであって、
前記バスインタフェースモジュールは、
プロセッサの電力状態を制御するように構成される状態管理モジュールと、
受信された信号に応答して応答信号を生成するように構成される応答モジュールと、を備え、
前記バスインタフェースモジュールは、前記プロセッサが低電力状態にある場合に前記バスインタフェースモジュールに電力を供給するように構成される電力システムに結合され、それにより前記応答モジュールは前記プロセッサが前記低電力状態にある場合に前記応答信号を生成することが可能であるデバイス。
【請求項10】
前記バスインタフェースモジュールは、前記プロセッサに結合される電力デバイスに結合され、前記状態管理モジュールは、前記電力デバイスの出力を制御して前記プロセッサの前記電力状態を制御するように構成される請求項9のデバイス。
【請求項11】
前記デバイスはレンダリングエンジンを含むデバイスを更に備え、前記電力デバイスは前記レンダリングエンジンに結合される請求項10のデバイス。
【請求項12】
前記バスインタフェースモジュールは、前記プロセッサに関連するメモリに結合される電力デバイスに結合され、前記状態管理モジュールは、前記電力デバイスの出力を制御することによって前記メモリの電力状態を制御するように構成される請求項9のデバイス。
【請求項13】
前記プロセッサはバスを介して中央処理ユニット(CPU)に結合され、前記受信される信号はバス構成サイクルである請求項9のデバイス。
【請求項14】
デバイスを動作させるための方法を行うために1つ以上のプロセッサによる実行のための1つ以上の命令の1つ以上のシーケンスを伝えるコンピュータ可読媒体であって、前記命令は、前記1つ以上のプロセッサによって実行されるときに、前記1つ以上のプロセッサに、
第1の受信された信号に応答して前記デバイスを実質的に無効な状態に移行させることと、
前記プロセッサが前記実質的に無効な状態にある間に第2の受信された信号に応答して応答信号を生成することと、をさせ、
前記応答信号は、電力供給状態において前記第2の受信された信号に応答して前記プロセッサによって生成されるはずの第2の応答信号と実質的に同様であるコンピュータ可読媒体。
【請求項15】
前記第1及び第2の受信された信号の少なくとも1つは中央処理ユニット(CPU)によって生成される請求項14のコンピュータ可読媒体。
【請求項16】
前記第2の受信された信号はバス構成サイクルを備える請求項14のコンピュータ可読媒体。
【請求項17】
電力デバイスが前記デバイスのレンダリングエンジン又はディスプレイ制御器の少なくとも1つに結合される請求項14のコンピュータ可読媒体。
【請求項18】
移行させることは、前記デバイスに結合される電力デバイスの出力電圧を無効にすることを備える請求項14のコンピュータ可読媒体。
【請求項19】
前記デバイスに関連するメモリの少なくとも一部分を無効にすることを更に備える請求項14のコンピュータ可読媒体。
【請求項20】
前記デバイスは複数の電力デバイスに結合され、
前記第1の受信された信号に基づき前記複数の電力デバイスの1つの電力デバイスを識別することを更に備え、
移行させることは、前記識別された電力デバイスの出力を無効にすることを備える請求項14のコンピュータ可読媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公表番号】特表2013−504811(P2013−504811A)
【公表日】平成25年2月7日(2013.2.7)
【国際特許分類】
【出願番号】特願2012−528876(P2012−528876)
【出願日】平成22年9月8日(2010.9.8)
【国際出願番号】PCT/US2010/048096
【国際公開番号】WO2011/031734
【国際公開日】平成23年3月17日(2011.3.17)
【出願人】(591016172)アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド (439)
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
【出願人】(508301087)エーティーアイ・テクノロジーズ・ユーエルシー (68)
【氏名又は名称原語表記】ATI TECHNOLOGIES ULC
【住所又は居所原語表記】One Commerce Valley Drive East, Markham, Ontario, L3T 7X6 Canada
【Fターム(参考)】