説明

グラフィック処理装置の間のポリシーベースの切り換え

本開示の実施形態は、コンピュータシステムを設定して各グラフィック処理装置(GPU)の間で切り換えを行うようになっているシステムを提供する。1つの実施形態において、システムは、コンピュータシステムの第1のグラフィック処理装置(GPU)を使用してディスプレイを駆動する。次に、システムは、コンピュータシステムの1つ又はそれ以上の第2のGPUへの依存関係に関連する1つ又はそれ以上のイベントを検出する。最後に、このイベントに応答して、システムは、ディスプレイを駆動する信号源として、第1のGPUから第2のGPUへの切り換えを準備する。

【発明の詳細な説明】
【技術分野】
【0001】
本開示の実施形態は、コンピュータシステムの各グラフィック処理装置(GPU)の間を切り換える技術に関する。詳細には、本開示の実施形態は、コンピュータシステムの各GPUの間のポリシーベースの切り換えのための技術に関する。
【背景技術】
【0002】
多くの電子デバイスにとって電力管理は非常に重要である。例えば、ラップトップコンピュータ、携帯電話、及び携帯情報端末(PDAs)等の携帯型電子デバイスは、バッテリ電源で所定時間にわたって作動するよう電力を節約する必要がある。同時に、これらの多くの携帯型電子デバイスは、高解像度、高性能のグラフィックス技術を組み入れつつある。この技術分野の急激な開発により、2D及び3Dグラフィックス技術は飛躍的に進歩しており、ユーザは、グラフィカルユーザインタフェースから現実的ゲーム環境の範囲で、ますます高度な可視体験を行うことができる。これら多くの改良の基本は、特定用途向けグラフィックスレンダリングデバイス又はグラフィック処理装置(GPU)の開発にある。一般的なGPUは、一連の基本オペレーションを高速で行い、結果として生じた画像をグラフィカルディスプレイに表示することで、グラフィカルオブジェクトを効率的に処理する高度な並列構造を含む。
【0003】
残念ながら、これらの改善されたグラフィック性能に付随してコストがかかってしまう。特に、グラフィック性能を高めると、一般的に大きな電力消費が付随して起こる。その結果、多くのコンピュータシステム及び携帯型電子デバイスは、高性能GPUをサポートするために大量の電力を費やす場合があり、バッテリ寿命が短くなり熱発散の問題を引き起こす場合もある。
【0004】
この問題点の1つの解決策は、ローアクティビティの期間に処理能力の高いハイパワーGPUから処理能力の低いローパワーGPUに切り換えることで電力消費を抑えることである。コンピュータシステムの設計者はこのようなシステムをサポートするためにハードウェア構造を開発し始めている。しかしながら、ローパワーGPUとハイパワーGPUとの間の切り換え時期を正確に決定するための解決すべき問題が残っている。
【0005】
従って、複数のGPUを有するシステムにおいてGPUの間の切り換え時期の決定を容易にする方法及び装置が必要である。
【発明の概要】
【0006】
本開示の実施形態は、コンピュータシステムを設定して各GPUの間で切り換えを行うようになっているシステムを提供する。動作時、システムは、コンピュータシステムの第1のグラフィック処理装置(GPU)を使用してディスプレイを駆動する。次に、システムは、アプリケーションプラグミングインタフェース(API)又はシステムを介して、コンピュータシステムの第2のGPUへの依存関係に関連するイベントを検出する。最後に、このイベントに応答して、システムは、ディスプレイを駆動する信号源として、第1のGPUから第2のGPUへの切り換えを開始する。
【0007】
特定の実施形態において、APIは、グラフィックライブラリ、ビデオ再生、又はウィンドウマネージャに関連付けされる。
特定の実施形態において、依存関係は、
(i)コンピュータシステムのグラフィックライブラリの使用、
(ii)復号可能なコンテンツのビデオ再生、
(iii)第1のGPUから第2のGPUへの切り換え利ウエスト、
(iv)コンピュータシステムのグラフィック性能に関連する.ユーザ選択、
の少なくとも1つに対応する。
【0008】
特定の実施形態において、リクエストは、ウィンドウマネージャ又はグラフィックライブラリに対して行われる。
特定の実施形態において、ウィンドウマネージャ等のシステムの一部は、各GPUの間の切り換え制御を行い、さもなければ各GPUの間の切り換えをもたらす可能性がある、プロセス又はイベントを補償することができる。
【0009】
特定の実施形態において、グラフィックライブラリの使用は、
(i)グラフィックライブラリへのリンク付け、
(ii)アプリケーション実行時にグラフィックライブラリのロード、
(iii)グラフィックライブラリに対するメソッド呼び出し、
の少なくとも1つを含む。
【0010】
特定の実施形態において、イベントは、
(i)第2のGPUへの依存関係に関連するアプリケーションの初期化、
(ii)第1のGPUから第2のGPUへ切り換えるリクエストの呼び出し、
(iii)グラフィックライブラリの使用、
(iv)復号可能なコンテンツのビデオ再生、
のうちの少なくとも1つである。
【0011】
また、特定の実施形態において、システムは、全ての第2のGPUへの依存関係が解除された後で、信号源を元の第1のGPUへ切り換える。
【0012】
特定の実施形態において、第1のGPUは、システムチップセットに一体化されたローパワーGPUであり、第2のGPUは、個別(discrete)GPUチップ上にあるハイパワーGPUである。第1のGPU及び第2のGPUは、実質的に同じ回路で同じ能力とすること、又は異なる回路及び/又は能力とすることができる。
【0013】
特定の実施形態において、第1のGPUはグラフィックコードを実行する汎用プロセッサであり、第2のGPUは特定用途向けGPUである。
【0014】
特定の実施形態において、他のタスクを実行するための、直ちにディスプレイを駆動しない「オフライン」GPUを用いることができる。例えば、オンライン内蔵GPUは、ウィンドウマネージャのユーザインタフェース(UI)専用とすることができるが、アプリケーションは、個別GPUを用いて非同期的に作業を行う。
【図面の簡単な説明】
【0015】
【図1】1つの実施形態における、異なるグラフィックスソースの間で切り換えを行い同じディスプレイを駆動できるコンピュータシステムを示す。
【図2】1つの実施形態における、グラフィックマルチプレクサの構造を示す。
【図3】1つの実施形態における、コンピュータシステムの各GPUの間で切り換えを行うための例示的なポリシーを示す。
【図4】1つの実施形態における、コンピュータシステムを設定するためのプロセスを示すフローチャートを示す。
【図5】1つの実施形態における、GPU切り換えプロセスを示す別のフローチャートを示す。
【発明を実施するための形態】
【0016】
図面において、同じ参照番号は同じ形態要素を示す。
【0017】
以下の説明は、当業者が実施形態を作って使用できるように示され、特定の用途及びその必要条件との関連において提供される。当業者であれば開示された実施形態の種々の変更例は明らかであり、本明細書の一般的な原理は、本開示の精神及び範囲を逸脱することなく他の実施形態及びアプリケーションに適用できるはずである。従って、本発明は、図示の実施形態に限定されるものではなく、本明細書で開示される原理及び特徴と一致する最大の範囲と認められる。
【0018】
詳細な説明に記載のデータ構造及びコードは、一般には、コンピュータシステムが使用するコード及び/又はコードを格納できる任意のデバイス又は媒体とすることができる、コンピュータ読み取り可能な媒体に格納される。コンピュータ読み取り可能な媒体としては、限定されるものではないが、揮発メモリ、不揮発メモリ、ディスクドライブ、磁気テープ、CD(コンパクトディスク)、DVD(デジタル多用途ディスク又はデジタルビデオディスク)等の磁気及び光学記憶デバイス、又は現在公知の又は将来開発されるコード及び又はデータを記憶できる他の媒体とすることができる。
【0019】
詳細な説明の欄に説明される方法及びプロセスは、前述のコンピュータ読み取り可能な記憶媒体に記憶できる、コード及び/又はデータとして組み込むことができる。コンピュータシステムが、コンピュータ読み取り可能な記憶媒体に記憶されたコード及び/又はデータを読み込んで実行する場合、コンピュータシステムは、データ構造及びコードとして組み込まれ、コンピュータ読み取り可能な記憶媒体に記憶された方法及びプロセスを実行する。
【0020】
更に、以下に説明する方法及びプロセスは、ハードウェアモジュール又は装置に含むことができる。ハードウェアモジュール又は装置としては、限定されるものではないが、特定用途向け集積回路(ASIC)チップ、フィールドプログラマブルゲートアレイ(FPGA)、特定の時間に特定のソフトウェア又はコードの一部を実行する特定用途向け又は共用プロセッサ、及び/又は現在公知の又は将来開発される他のプログラム可能論理デバイスを含むことができる。ハードウェアモジュール又は装置が起動されると、これらは包含される方法及びプロセスを実行する。
【0021】
本開示の実施形態は、コンピュータシステムの複数のグラフィック処理装置(GPU)の間で切り換えを行うための方法及びシステムを提供する。コンピュータシステムは、内蔵GPU及び個別(discrete)GPUを含むラップトップコンピュータ、パーソナルコンピュータ、ワークステーション、及び/又は携帯型電子デバイスとすることができる。内蔵GPUは、個別GPUよりも消費電力が少ないが、個別GPUは、内蔵GPUよりもグラフィック性能が高い。その結果、コンピュータシステムの画像レンダリング及び表示は、性能と省電力との間のトレードオフとなる場合がある。
【0022】
詳細には、本実施形態は、コンピュータシステムの複数のGPUの間のポリシーベースの切り換えを行うための方法及びシステムを提供する。ポリシーは、個々のGPUに依存してコンピュータシステムのイベントに関連付けることができ、高いグラフィック性能要件に関連するイベントは、処理能力の高いGPUに依存する場合があるが、低いグラフィック性能要件に関連するイベントは、処理能力の低いGPUに依存する及び/又は処理能力の高いGPUへの依存から解放される場合がある。(イベントは、一般にコンピュータシステムのハードウェア又はソフトウェア動作状態の何らかの変化を含むことができるが、一方で、依存関係は、イベントと特定のGPUのユーザとの間の関連性であることに留意されたい)。例えば、個別GPUに依存するイベントは、内蔵GPUから個別GPUへの切り換えを引き起こして、コンピュータシステムのディスプレイを駆動することができる。また、各GPUへの依存関係は、コンピュータシステムのグラフィック性能に関連するユーザ選択に基づくことができる。例えば、処理能力の高いグラフィックスのユーザ選択は、処理能力の低いグラフィックスのユーザ選択よりも高性能なGPUに依存する場合がある。
【0023】
処理能力の高いGPUへ切り換えてディスプレイを駆動した後、元の処理能力の低いGPUへの切り換えは、処理能力の高いGPUへの全ての依存関係が解除されるまで行わない。例えば、個別GPUは、グラフィックライブラリを用いる、GPUサポートを要求する、及び/又はそうでなければグラフィック重視のビデオ再生を必要とするアプリケーションの実行時にディスプレイを駆動できる。全てのグラフィック重視のアプリケーション及び/又はオペレーションが終了すると、コンピュータシステムは内蔵GPUに切り換えて電力を節約する。従って、コンピュータシステムの各GPUの間のポリシーベースの切り換えは、グラフィック処理負荷の高いアプリケーションのグラフィック性能を高めるが、アプリケーションが実行されない場合は電力を節約する。以下に説明するように、ポリシーベースの切り換えにより、追加的に、コンピュータシステムにインストールされたアプリケーションに無関係なコンピュータシステムのグラフィック処理の動的なコンフィギュレーション、並びにGPUを切り換える前にバックグラウンドでGPUの設定を引き起こすイベントを通して各GPUの間のシームレスな切り換えが可能になる。
【0024】
図1は、1つの実施形態によるコンピュータシステム100を示す。コンピュータシステム100は、パーソナルコンピュータ、ラップトップコンピュータ、携帯型電子デバイス、ワークステーション、及び/又は2つのグラフィックスソースの間で切り換えてディスプレイを駆動できる他の電子デバイスとすることができる。図1を参照すると、2つのグラフィックソースは、(1)個別GPU110及び(2)内蔵GPU118を含み、各々個別にディスプレイ114を駆動できる。ディスプレイ114を駆動するグラフィックソースは、2つのグラフィックソースの間で選択するGPUマルチプレクサ(GMUX)120で特定される。従って、コンピュータシステム100は、GMUX120を使用して現在の作動状態に基づいてグラフィックソースを選択できる。
【0025】
作動時、別個のGPU110からのディスプレイストリーム122、及び内蔵GPU118からのディスプレイストリーム124は、GMUX120のデータ入力に供給される。ソース選択信号126は、GMUX120の選択入力に供給され、2つのグラフィックソースのどちらがディスプレイ114を駆動するかを決定する。例示的な実施形態において、ソース選択信号126は、ソース選択信号126を発生する特定のロジックを含むブリッジチップ104で生成される。(また、ソース選択信号126は、ブリッジチップ104以外の論理ブロックで生成できることに留意されたい。例えば、ソース選択信号126は、1つ又はそれ以上の処理ユニット102で生成できる)。選択されたグラフィックソースからのディスプレイストリームは、次に、ディスプレイ114に供給される。
【0026】
1つの実施形態において、個別GPU110及び内蔵GPU118は、データパス128を経由して通信してディスプレイストリームに同期するようになっている。ディスプレイストリームの同期は、それぞれにタイミング信号及びそれぞれのデータ信号の同期を含むことができる。
【0027】
1つの実施形態において、個別GPU110は処理能力の高いGPUであり、電力消費の少ない処理能力の低いGPU内蔵GPU118に対して非常に多くの電力を消費する。本実施形態において、グラフィック処理の負荷が小さい場合、システムは、ディスプレイ114を駆動する個別GPU110の使用から内蔵GPU118の使用へ切り替わり、その後、個別GPU110の電源が切られるので電力を節約できる。他方で、グラフィック処理の負荷が再度大きくなった場合、システムはグラフィックソースを内蔵GPU118から個別GPU110へ戻す。
【0028】
個別GPU及び内蔵GPUを含むシステムを説明したが、開示された技術は、一般に各々のGPUが個別にディスプレイを駆動できる2つ又はそれ以上のGPUを備える任意のコンピュータシステムで作動できる。更に、同じコンピュータシステムの各GPUは、異なる作動特性及び電力消費レベルをもつことができる。例えば、コンピュータシステムは、1つ又はそれ以上の処理装置102(例えば、中央処理装置(CPU))の汎用プロセッサと特定用途向けGPU(例えば、個別GPU110)との間の切り換えを行ってディスプレイ114を駆動することができる。従って、開示された技術は図1に示す特定の実施形態に限定されない。
【0029】
また、前述の各グラフィックソースの間の切り換え処理は、コンピュータシステムをシャットダウンする又は再初期化することを含んでいない。その結果、切り換え処理は、再初期化処理を必要とする場合よりも実質的に時間がかからない。従って、開示される技術は、各グラフィックソースの間の高速及び頻繁な切り換えを容易にする。
【0030】
1つ又はそれ以上の実施形態において、コンピュータシステム100は、ディスプレイ114を駆動する信号源として、個別GPU110と内蔵GPU118との間のポリシーベースの切り換えを可能にする。詳細には、コンピュータシステム100は、コンピュータシステム100のグラフィック性能に関連するポリシーに基づいて、個別GPU110又は内蔵GPU118を選択してディスプレイ114を駆動することができる。ポリシーは、個々のGPUに依存してコンピュータシステムのイベントに関連付けることができ、高いグラフィック性能要件に関連するイベントは、個別GPU110に関連するが、低いグラフィック性能要件に関連するイベントは、内蔵GPU118に関連することができる。
【0031】
個別GPU110への依存関係に関連するイベントが、グラフィックライブラリ、ビデオ再生、及び/又はウィンドウマネージャに関連するアプリケーションプラグミングインタフェース(API)によって検出されるまで、コンピュータシステム100は、ディスプレイ114を駆動する信号源として内蔵GPU118から始めることができる。アプリケーションが、1つ又はそれ以上の所定のAPIを介して関数呼び出しを行う場合、システムは、アプリケーションが性能の高い又は性能の低いグラフィック処理能力のどちらを必要とするかを推定できる。1つ又はそれ以上の関数呼び出しに応答して、システムはGPUの切り換えを開始できる。例えば、依存関係は、コンピュータシステムのOpenGL(OpenGL(商標)はSilicon Graphics, Inc.の登録商標)の使用(例えば、リンク付け、ロード、メソッド呼び出し)、及び/又は復号可能な(例えば、暗号化された、圧縮された、符号化された)ビデオコンテンツのQuickTime(QuickTime(商標)はApple Inc.の登録商標)再生に対応することができる。また、依存関係は、アプリケーション実行及び/又はコンピュータシステムのグラフィック性能に関連するユーザ選択の間に、内蔵GPU118から個別GPU 110に切り換える明示的リクエスト(例えば、グラフィックライブラリ及び/又はウィンドウマネージャを介して)によって、個々のアプリケーション及び/又はユーザによって引き起こされる場合もある。
【0032】
GPU切り換えは、明示的なAPI呼び出しによって又はこれに関連して引き起こされる必要はないことに留意されたい。詳細には、GPU切り換えは、以下に対応するインベントによって引き起こすことができる。すなわち、(1)第2のGPUへの依存関係に関連するアプリケーションの開始、(2)GPUへの依存関係に関連するアプリケーションの終了、(3)第1のGPUから第2のGPUへの切り換えリクエストの呼び出し(例えば、アプリケーションによって)、(4)アプリケーション内のモード又は機能の切り換え、及び(5)グラフィックライブラリ、及び/又は復号可能(例えば、デジタル著作権管理(DRM))なコンテンツのビデオ再生の利用である。各GPUの間のポリシーベースの切り換えに関するイベント及び/又は依存関係は、図3を参照して以下に詳細に説明する。
【0033】
このイベントに応答して、コンピュータシステム100は、ディスプレイ114を駆動する信号源として内蔵GPU118から個別GPU110に切り換えることができる。切り換え時、個別GPU110に依存するスレッドは、個別GPU110が完全にディスプレイ114を駆動するまでブロックできる。信号源としての内蔵GPU118への切り換えは、個別GPU110への全ての依存関係が解除された後に行うことができる。例えば、コンピュータシステム100は、ハードウェア復号可能なコンテンツのビデオ再生、グラフィックライブラリの使用、及び/又は個別GPU110に関連するアプリケーション実行の終了後に、信号源としての内蔵GPU118に戻すことができる。
【0034】
個別GPU110と内蔵GPU118との間の切り換えはコンピュータシステム100のグラフィック処理要件に関連するイベントに基づくので、コンピュータシステム100は、アプリケーション及びユーザのグラフィック性能要件の変化に迅速に応答するする機能性を含むことができる、グラフィック性能及び省電力が向上する。更に、コンピュータシステム100の1つ又はそれ以上のAPIを介したこのようなイベント検出により、コンピュータシステム100のグラフィック表示は、コンピュータシステム100にインストールされるアプリケーションに無関係に動的に設定できる。最後に、各GPUの間の切り換えを規定する調整可能なポリシーを使用することで、コンピュータシステム100に関連する個々のアプリケーション及び/又はユーザは、ディスプレイ114の駆動のための内蔵GPU118及び/又は個別GPU110の使用を調節することができる。
【0035】
図2は、1つの実施形態のグラフィックマルチプレクサ120(図1を参照して説明した)の内部構造を示す。図2を参照すると、個別GPU110からのディスプレイストリーム122及び内蔵GPU118からのディスプレイストリーム124は、それぞれデータクロック取得ブロック205及び210に供給される。データクロック取得ブロック205及び210は、ディスプレイストリーム122及び124を非直列化して、それぞれデータクロック信号221及び222を取り出す。
【0036】
これらのデータクロック信号221及び222は、ディスプレイストリームアッセンブラ240に送られることになるデータクロック221及び222の1つを選択するクロックMUX225に供給される。1つの実施形態においてGMUXコントローラ235は選択信号236をクロックMUX225に提供する。もしくは、選択信号236は、1つ又はそれ以上のプロセッサ装置102又は別のコントローラのプロセッサ等の他のソースから提供できる。
【0037】
次に、ディスプレイストリーム122及び124は、別個のデータクロックでそれぞれデータバッファ215及び220に供給される。データバッファ215及び220は、ディスプレイストリーム122及び124を調べて、いつブロッキング期間が生じるかを判定して、それぞれのブロッキング期間信号233及び234を生成する。また、データバッファ215及び220は、データMUX230に供給される出力データストリームを生成する。
【0038】
ブロッキング期間信号233及び234は、ブロッキング期間233及び234を比較して、もし存在すればディスプレイストリーム122及び124の各ブロッキング期間の間にどれだけのオーバーラップが存在するかを求める、GMUXコントローラ235に供給される。(ブロッキング期間信号233及び234は、垂直又は水平又はブロッキング期間を表し得ることに留意されたい)。GMUXコントローラ235がブロッキング期間233及び234が十分にオーバーラップすると判定した場合、GMUXコントローラ235は、ブロッキング期間がオーバーラップを開始したという選択信号236をアサートする。これにより、クロックMUX225及びデータMUX230は、これらのブロッキング期間がオーバーラップする期間に各ディスプレイストリーム122及び124の間の切り換えを行う。この切り換えはブロッキング期間の間に発生するので、切り換え処理は、ディスプレイ114では見ることができないであろう。
【0039】
最後に、データMUX230及び選択されたデータクロック223の出力は、データストリームをディスプレイ114に送信する前に再直列化するディスプレイストリームアセンブラ240に供給される。
【0040】
図3は、1つの実施形態における、コンピュータシステムの各GPUの間で切り換えを行う例示的なポリシーを示す概略図である。前述のように、ポリシーは、コンピュータシステムのディスプレイを駆動する信号源として、個別GPUと内蔵GPU又はGPUとCPUといった2つの異なるGPUの間の切り換えを行うために使用できる。更に、ポリシーは、イベント304に基づいて特定のGPUの使用を規定することができ、コンピュータシステムのAPIを介してアプリケーションを実行することで生成することができる。特に、ポリシーは、処理能力の高いGPU(例えば、個別GPU110)への依存関係に関連するイベント、並びに処理能力の高いGPUへ依存しないイベントを特定できる。
【0041】
図3に示すように、イベント304は、グラフィックライブラリの使用306、ビデオ再生308、及び/又はウィンドウマネージャのアクション310に関連付けできる。グラフィックライブラリ306により、アプリケーション302は、コンピュータシステムのグラフィックス・ハードウェア・アクセラレータを使用できる。その結果、グラフィックライブラリの使用306は、高いグラフィック性能要件に関連付けることができ、個別GPUの使用320を引き起こす。例えば、三次元(3D)コンピュータゲームは、OpenGLを使用して複雑なシーン及びキャラクタを、グラフィックス・ハードウェア・アクセラレータを用いてレンダリングすることができる。更に、3Dコンピュータゲームは、個別GPUがリアルタイムにレンダリングしてグラフィック表示する機能性を必要とする場合もある。
【0042】
特に、個別GPUの使用320は、アプリケーションが、両方のGPUを明らかにサポートしていな場合、つまりフィックライブラリ306の呼び出し時にオフラインレンダリングがサポートされない312ことを意味する場合、及び/又はアプリケーションが、個別GPUを使用320するためのグラフィックライブラリ306の機能を呼び出すことで、個別GPUに関する明示的なリクエスト314を行う場合に引き起こされる。他方で、アプリケーションがオフラインレンダリングをサポートする場合、ポリシーは、個別GPUへの即時切り換えを指示しない場合がある。その代わりに、ポリシーによって、アプリケーションは、グラフィックライブラリ306を呼び出す別の方法によってGPUの両方の使用を設定できる。更に、プリケーションは、後続の内蔵GPUを使用するという明示的リクエスト315によって、個別GPU上の先に作成した依存関係を解除322することができる。
【0043】
前述のように、グラフィックライブラリの使用306は、グラフィックライブラリ306へのリンク付け、アプリケーション実行中のグラフィックライブラリ306のロード、及び/又はアプリケーションによるグラフィックライブラリ306に対するメソッド呼び出しに対応することができる。その結果、個別GPUへの切り換えは、アプリケーション実行前、アプリケーション実行中、及び/又はアプリケーションによるグラフィックス・ハードウェア・アクセラレータの使用中に引き起こすことができる。更に、リンク付け又はロード等のイベントは個別GPUを設定するために使用できるので、アプリケーションがグラフィックライブラリ306を介して最終的にグラフィックス・ハードウェア・アクセラレータを利用する場合に、個別GPUへのシームレスな切り換えを行うことができる。詳細は図5の説明を参照されたい。
【0044】
復号可能なコンテンツ及び/又は高解像度/高ビットレートの再生316を含む場合、ビデオ再生308は、個別GPUへの依存関係に関連付けることができる。例えば、個別GPUの使用320により、ビデオコンテンツが符号化、暗号化、及び/又は圧縮されている場合、個別GPUによる復号、暗号解読、及び解凍を可能にするメカニズムを使用して再生することができる。個別GPUの使用320によるビデオコンテンツの復号は、更に再生ビデオの解像度及び/又はビットレートによって決まる。例えば、ポリシーは、低解像度ビデオに対してはコンピュータシステムのCPUによる復号を規定し、高解像度/高ビットレートビデオに対しては個別GPU320による復号を規定できる。もしくは、個別GPUはオフライン状態で使用してビデオコンテンツを復号することができ、その後、内蔵GPUによってコンピュータシステム上に表示される。ビデオ再生308に関連する依存関係は、ビデオ再生が停止321すると解除322できる。
【0045】
また、ウィンドウマネージャのアクション310は、例えば、取得した表示、明示的リクエスト、及び/又は外部ディスプレイへの接続318のイベントにより、個別GPU320への切り換えを引き起こすことができる。詳細には、表示画面(例えば、「全画面」)に表示されるものに対する全ての制御を担うアプリケーションによる表示の取得は、コンピュータシステムのディスプレイのコンフィギュレーションを変更して、グラフィックライブラリ306の使用を引き起こすことができ、結果的に個別GPUの使用320を指示することができる。同様に、アプリケーションは、ウィンドウマネージャ310を介して、個別GPUを使用するための明示的リクエスト及び/又はGPUをサポートするリクエストを行うことができるので、個別GPU320への切り換えを引き起こすことができる。また、コンピュータシステムの外部ディスプレイの接続により、グラフィック性能要件が高くなる場合があり、コンピュータシステムの個別GPUの使用320を引き起こす。例えば、取得した表示の解除、GPUサポートの停止、内蔵GPU使用の明示的リクエスト315、及び/又は外部ディスプレイの切断によるこれらのトリガ条件が停止321する場合、この停止により、個別GPUの1つ又はそれ以上の依存関係の解除322を引き起こすことができる。
【0046】
最後に、ポリシーは、個別GPUの全ての依存関係が解除328された後に内蔵GPUの使用330を規定できる。換言すれば、個別GPUへの単一の依存関係は、個別GPUへの切り換えを引き起こすことができるが、実行中のアプリケーションが個別GPUへの依存関係を持たない場合は内蔵GPUが使用される。
【0047】
当業者であれば、ユーザ選択、アプリケーション要件、及び/又はコンピュータシステムに関連するGPU特徴部に基づいて、各GPUの間の切り換えを行うための異なるポリシーを使用できることを理解できるはずである。例えば、GPUの特徴部の使用に関連する依存関係は、コンピュータシステムの他のGPUがいくつかの特徴部を利用できない場合に存在できる。一方で、処理能力の高いグラフィック処理のユーザ選択は、ポリシー内の個別GPUの追加の依存関係の識別を促進できるが、処理能力の低いグラフィック処理のユーザ選択は、ポリシー内の個別GPUへの依存関係の数を減少させる場合がある。
【0048】
アプリケーションに関する依存関係の全ては、アプリケーションの終了によって解除できることに留意されたい。
【0049】
図4は、1つの実施形態による、コンピュータシステムを設定する処理を示すフローチャートである。1つ又はそれ以上の実施形態において、1つ又はそれ以上のステップは省くこと、繰り返すこと、及び/又は異なる順番で実行することができる。従って、図4に示すステップの特定の構成は、本実施形態の範囲を限定すると解釈すべきではない。
【0050】
最初に、ディスプレイは、コンピュータシステムの第1のGPUを用いて駆動される(ステップ402)。第1のGPUは、グラフィックコードを実行する汎用プロセッサ及び/又は内蔵GPU等のローパワー及び/又は処理能力の低いGPUに対応することができる。次に、APIを介してコンピュータシステムの第2のGPUへの依存関係に関連するイベントを検出する(ステップ404)。第2のGPUは、第1のGPUよりも処理能力が高く電力消費の大きいGPUとすることができる。例えば、第2のGPUは、第1のGPUが内蔵GPUの場合には個別GPUに対応すること、又は第2のGPUは、第1のGPUがCPUの場合には特定用途向けGPUに対応することができる。APIは、グラフィックライブラリ、ビデオ再生、及び/又はウィンドウマネージャに関連付けることができる。その結果、APIで検出したイベントは、コンピュータシステムのグラフィック性能要件を評価して、第1のGPUと第2のGPUとの間の切り換えを引き起こすために使用できる。
【0051】
イベントに応答して、ディスプレイを駆動する信号源として第1のGPUから第2のGPUへの切り換えを行う(ステップ406)。前述のように、第1のGPUから第2のGPUへのシームレスな切り換えは、切り換えの前に第2のGPUを設定することで助長される。例えば、第2のGPUの設定は、グラフィックライブラリを実行可能なアプリケーションへロードすると開始できるが、第2のGPUへの切り換えは、グラフィックライブラリを用いた「描画」オペレーションを行うまで生じることはできない。
【0052】
第2のGPUは、該第2のGPUへの全ての依存関係が解除されるまで引き続き信号源として使用できる(ステップ408)。例えば、第2のGPUは、コンピュータシステムに関連するポリシーで規定される全てのグラフィック重視のアプリケーション及び/又はオペレーションが実行を完了するまで引き続きディスプレイを駆動できる。依存関係が依然として存在する場合、第2のGPUは、引き続き信号源として使用する(ステップ410)。しかしながら、第2のGPUへの依存関係がもはや存在しない場合、信号源は元の第1のGPUへ切り換わり(ステップ412)、コンピュータシステムの電力を節約するようになっている。
【0053】
図5は、1つの実施形態による、GPU切り換え処理を示すプロセスを示す他のフローチャートである。
【0054】
最初に、ディスプレイは、第1のGPUを使用して駆動される(ステップ502)。次に、初期イベント又は関数呼び出しの検出に応答して、システムは、第2のGPUをGPU切り換えに向けて設定する(ステップ504)。1つの実施形態において、第2のGPUへの切り換えは即座に起こるので、ディスプレイは第2のGPUで駆動される。他の実施形態において、切り換えは後続のイベント又は関数呼び出しの検出に応答して発生する(ステップ506)。
【0055】
前述の種々の実施形態の説明は例示及び説明目的である。これらは網羅的であること又は本発明を前述の開示内容に限定することは意図されていない。従って、当業者であれば多くの変更例及び変形例を理解できるはずである。更に、前述の開示内容は本発明を限定するものではない。

【特許請求の範囲】
【請求項1】
コンピュータシステムを設定する方法であって、
前記コンピュータシステムの第1のグラフィック処理装置(GPU)を使用してディスプレイを駆動する段階と、
前記コンピュータシステムの第2のGPUへの1つ又はそれ以上の依存関係に関連付けされた、1つ又はそれ以上のイベントを検出する段階と、
前記1つ又はそれ以上のイベントに応答して、前記ディスプレイを駆動する信号源として、前記第1のGPUから前記第2のGPUへ切り換えるための準備を行う段階と、
を含む方法。
【請求項2】
前記1つ又はそれ以上のイベントは、1つ又はそれ以上のアプリケーションプラグミングインタフェース(API)を介して検出される、請求項1に記載の方法。
【請求項3】
切り換え準備後に、前記第1のGPUから前記第2のGPUへ切り換える段階を更に含む、請求項1に記載の方法。
【請求項4】
1つ又はそれ以上の後続のイベントの検出後に、前記第1のGPUから前記第2のGPUへ切り換える段階を更に含む、請求項1に記載の方法。
【請求項5】
前記1つ又はそれ以上のAPIは、グラフィックライブラリ、ビデオ再生、又はウィンドウマネージャのうちの少なくとも1つに関連付けされる、請求項2に記載の方法。
【請求項6】
前記1つ又はそれ以上の依存関係は、
前記コンピュータシステムの前記グラフィックライブラリの使用、
復号可能なコンテンツのビデオ再生、
前記第1のGPUから前記第2のGPUへの切り換えリクエスト、
前記コンピュータシステムのグラフィック性能に関するユーザ選択、
周辺機器又はディスプレイのプラグイン等のシステムイベント、
のうちの少なくとも1つに対応する、請求項5に記載の方法。
【請求項7】
前記リクエストは、前記ウィンドウマネージャ又は前記グラフィックライブラリに対して行われる、請求項6に記載の方法。
【請求項8】
前記グラフィックライブラリの使用は、
前記グラフィックライブラリへのリンク付け、
アプリケーション実行時の前記グラフィックライブラリのロード、
前記グラフィックライブラリに対するメソッド呼び出し、
のうちの少なくとも1つを含む、請求項6に記載の方法。
【請求項9】
前記1つ又はそれ以上のイベントは、
前記1つ又はそれ以上の前記第2のGPUへの依存関係に関連するアプリケーションの初期化、
前記第1のGPUから前記第2のGPUへ切り換えるリクエストの呼び出し、
グラフィックライブラリの使用、
復号可能なコンテンツのビデオ再生、
周辺機器又はディスプレイのプラグイン等のシステムイベント、
のうちの少なくとも1つである、請求項8に記載の方法。
【請求項10】
前記第2のGPUへの全ての依存関係が解除された後に前記信号源を前記第1のGPUへ切り換える段階を更に含む、請求項1に記載の方法。
【請求項11】
前記第1のGPUは、システムチップセットに一体化されたローパワーGPUであり、 前記第2のGPUは、個別GPUチップ上にあるハイパワーGPUであり、前記第1のGPU及び前記第2のGPUは実質的に同じ回路及び同じ能力をもつ、請求項1に記載の方法。
【請求項12】
前記第1のGPUは、グラフィックコードを実行する汎用プロセッサであり、前記第2のGPUは特定用途向けGPUである、請求項1に記載の方法。
【請求項13】
第1のグラフィックプロセッサから第2のグラフィックプロセッサに切り換えてディスプレイを駆動するコンピュータシステムであって、
第1のグラフィック処理装置(GPU)と、
第2のGPUと、
を備え、前記コンピュータシステムは、
前記コンピュータシステムの前記第2のGPUへの依存関係に関連する1つ又はそれ以上のイベントを検出し、
前記1つ又はそれ以上のイベントに応答して、前記ディスプレイを駆動する信号源として前記第1のGPUから前記第2のGPUへ切り換える、
ようになっているコンピュータシステム。
【請求項14】
前記1つ又はそれ以上のイベントは、1つ又はそれ以上のAPIを介して検出される、請求項13に記載のコンピュータシステム。
【請求項15】
切り換え準備後に、前記コンピュータシステムは、前記第1のGPUから前記第2のGPUへ切り換える、請求項13に記載のコンピュータシステム。
【請求項16】
前記コンピュータシステムは、1つ又はそれ以上の後続のイベントの検出後に、前記第1のGPUから前記第2のGPUへ切り換える、請求項13に記載のコンピュータシステム。
【請求項17】
前記1つ又はそれ以上のAPIは、グラフィックライブラリ、ビデオ再生、又はウィンドウマネージャのうちの少なくとも1つに関連付けされる、請求項14に記載のコンピュータシステム。
【請求項18】
前記1つ又はそれ以上の依存関係は、
前記コンピュータシステムの前記グラフィックライブラリの使用、
復号可能なコンテンツのビデオ再生、
前記第1のGPUから前記第2のGPUへの切り換えリクエスト、
前記コンピュータシステムのグラフィック性能に関するユーザ選択、
周辺機器又はディスプレイのプラグイン等のシステムイベント、
のうちの少なくとも1つに対応する、請求項17に記載のコンピュータシステム。
【請求項19】
前記リクエストは、前記ウィンドウマネージャ又は前記グラフィックライブラリに対して行われる、請求項18に記載のコンピュータシステム。
【請求項20】
前記グラフィックライブラリの使用は、
前記グラフィックライブラリへのリンク付け、
アプリケーション実行時の前記グラフィックライブラリのロード、
前記グラフィックライブラリに対するメソッド呼び出し、
のうちの少なくとも1つを含む、請求項18に記載のコンピュータシステム。
【請求項21】
前記1つ又はそれ以上のイベントは、
前記1つ又はそれ以上の前記第2のGPUへの依存関係に関連するアプリケーションの初期化、
前記第1のGPUから前記第2のGPUへ切り換えるリクエストの呼び出し、
グラフィックライブラリの使用、
復号可能なコンテンツのビデオ再生、
周辺機器又はディスプレイのプラグイン等のシステムイベント、
のうちの少なくとも1つである、請求項20に記載のコンピュータシステム。
【請求項22】
前記第2のGPUへの全ての依存関係が解除された後に前記信号源を前記第1のGPUへ切り換えるようになっている、請求項13に記載のコンピュータシステム。
【請求項23】
コンピュータが実行すると該コンピュータがコンピュータシステムを設定する方法を実行する命令を記憶するコンピュータ読み取り可能な記憶媒体であって、該方法は、
前記コンピュータシステムの第1のグラフィック処理装置(GPU)を使用してディスプレイを駆動する段階と、
前記コンピュータシステムの第2のGPUへの1つ又はそれ以上の依存関係に関連付けされた、1つ又はそれ以上のイベントを検出する段階と、
前記1つ又はそれ以上のイベントに応答して、前記ディスプレイを駆動する信号源として、前記第1のGPUから前記第2のGPUへ切り換える段階と、
を含む、コンピュータ読み取り可能な記憶媒体。
【請求項24】
前記1つ又はそれ以上のイベントは、1つ又はそれ以上のアプリケーションプラグミングインタフェース(API)を介して検出される、請求項23に記載のコンピュータ読み取り可能な記憶媒体。
【請求項25】
切り換え準備後に、前記第1のGPUから前記第2のGPUへ切り換える段階を更に含む、請求項23に記載のコンピュータ読み取り可能な記憶媒体。
【請求項26】
1つ又はそれ以上の後続のイベントの検出後に、前記第1のGPUから前記第2のGPUへ切り換える段階を更に含む、請求項23に記載のコンピュータ読み取り可能な記憶媒体。
【請求項27】
前記1つ又はそれ以上のAPIは、グラフィックライブラリ、ビデオ再生、又はウィンドウマネージャのうちの少なくとも1つに関連付けされる、請求項24に記載のコンピュータ読み取り可能な記憶媒体。
【請求項28】
前記1つ又はそれ以上の依存関係は、
前記コンピュータシステムの前記グラフィックライブラリの使用、
復号可能なコンテンツのビデオ再生、
前記第1のGPUから前記第2のGPUへの切り換えリクエスト、
前記コンピュータシステムのグラフィック性能に関するユーザ選択、
周辺機器又はディスプレイのプラグイン等のシステムイベント、
のうちの少なくとも1つに対応する、請求項27に記載のコンピュータ読み取り可能な記憶媒体。
【請求項29】
前記リクエストは、前記ウィンドウマネージャ又は前記グラフィックライブラリに対して行われる、請求項28に記載のコンピュータ読み取り可能な記憶媒体。
【請求項30】
前記グラフィックライブラリの使用は、
前記グラフィックライブラリへのリンク付け、
アプリケーション実行時の前記グラフィックライブラリのロード、
前記グラフィックライブラリに対するメソッド呼び出し、
のうちの少なくとも1つを含む、請求項28に記載のコンピュータ読み取り可能な記憶媒体。
【請求項31】
前記1つ又はそれ以上のイベントは、
前記1つ又はそれ以上の前記第2のGPUへの依存関係に関連するアプリケーションの初期化、
前記第1のGPUから前記第2のGPUへ切り換えるリクエストの呼び出し、
グラフィックライブラリの使用、
復号可能なコンテンツのビデオ再生、
周辺機器又はディスプレイのプラグイン等のシステムイベント、
のうちの少なくとも1つである、請求項30に記載のコンピュータ読み取り可能な記憶媒体。
【請求項32】
前記第2のGPUへの全ての依存関係が解除された後に前記信号源を前記第1のGPUへ切り換える段階を更に含む、請求項23に記載のコンピュータ読み取り可能な記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公表番号】特表2013−516697(P2013−516697A)
【公表日】平成25年5月13日(2013.5.13)
【国際特許分類】
【出願番号】特願2012−548032(P2012−548032)
【出願日】平成22年12月22日(2010.12.22)
【国際出願番号】PCT/US2010/061820
【国際公開番号】WO2011/084831
【国際公開日】平成23年7月14日(2011.7.14)
【出願人】(503260918)アップル インコーポレイテッド (568)
【Fターム(参考)】