(57)【要約】  本開示の実施形態は、ディスプレイを駆動する各グラフィック処理ユニット（ＧＰＵ）の間のシームレスな切り換えを容易にするシステムを提供する。１つの実施形態において、システムは、ディスプレイを駆動する第１のＧＰＵの使用から第２のＧＰＵの使用へ切り換えるリクエストを受信する。このリクエストに応じて、システムは、ディスプレイの駆動に備えて第２のＧＰＵを設定するために、バックグラウンドで作動するカーネルスレッドを使用する。カーネルスレッドが第２のＧＰＵを設定する間に、システムは引き続き第１のＧＰＵでディスプレイを駆動し、ユーザスレッドは引き続きサービスユーザリクエストに関連する動作を行うウインドウマネージャを実行する。第２のＧＰＵの設定が完了すると、システムはディスプレイの信号源を第１のＧＰＵから第２のＧＰＵへ切り換える。【選択図】図３
2013516696.tif 000002
【特許請求の範囲】
【請求項１】
ディスプレイを駆動する第１のグラフィック処理ユニット（ＧＰＵ）の使用から第２のＧＰＵの使用に切り換える方法であって、
第１のスレッドを使用してサービスユーザリクエストに関連する動作を行うウインドウマネージャを実行する段階と、
リクエストを受信して、前記ディスプレイを駆動する信号源として前記第１のＧＰＵの使用から前記第２のＧＰＵの使用に切り換える段階と、
前記リクエストに応答して、
第２のスレッドを使用して、前記ディスプレイの駆動に備えて前記第２のＧＰＵを設定し、
前記第２のスレッドが前記第２のＧＰＵを設定している間に、前記第１のスレッドを引き続き使用して、ウインドウマネージャを実行してユーザリクエストを処理し、
前記第２のＧＰＵのコンフィギュレーションの完了後に、前記ディスプレイを駆動する前記信号源を前記第１のＧＰＵから前記第２のＧＰＵに切り換える段階と、
を含む方法。
【請求項２】
前記第２のスレッドは、バックグラウンドで動作するカーネルベースのスレッドである、請求項１に記載の方法。
【請求項３】
前記第２のスレッドを使用して前記第２のＧＰＵを設定する段階は、
前記第２のＧＰＵの電源を投入する段階と、
ハードウェア・コンフィギュレーション・オペレーションを行って前記第２のＧＰＵに関するハードウェアを設定する段階と、
を含む、請求項１に記載の方法。
【請求項４】
前記ハードウェア・コンフィギュレーション・オペレーションを行う段階は、
前記第２のＧＰＵに関するドライバを再初期化する段階と、
ディスプレイプロービングオペレーションを行い、前記ディスプレイの特性を判定する段階と、
モード設定値を前記第１のＧＰＵから前記第２のＧＰＵへコピーする段階と、
少なくとも１つのカラールックアップテーブル（ＣＬＵＴ）を前記第１のＧＰＵから前記第２のＧＰＵへコピーする段階と、
のうちの１つ又はそれ以上を含む、請求項３に記載の方法。
【請求項５】
前記信号源を前記第１のＧＰＵから前記第２のＧＰＵに切り換える前に、前記第１のスレッドを使用してコードパスを実行する段階を更に含み、
前記ウインドウマネージャ及び前記第２のＧＰＵに関連するソフトウェア・コンフィギュレーション・オペレーションを行ってアプリケーション可視データ構造を初期化し、
第１のセットのレンダリング動作を行って前記第２のＧＰＵに関する第１の画像をレンダリングするようになっている、請求項１に記載の方法。
【請求項６】
前記第１のスレッドを使用して前記コードパスを実行する段階は、前記第２のＧＰＵを設定するために前記第２のスレッドが先に実行したいくつかの動作を繰り返す段階を含む、請求項５に記載の方法。
【請求項７】
前記繰り返される動作はキャッシュ値をアクセスする、請求項６に記載の方法。
【請求項８】
前記信号源の切り換え後、前記第２のスレッドを使用して前記第１のＧＰＵに関するコンフィギュレーションを分解する段階を更に含む、請求項１に記載の方法。
【請求項９】
前記第１のＧＰＵのコンフィギュレーションを分解する段階は、
前記ウインドウマネージャ及び前記第１のＧＰＵに関連するアプリケーション可視データ構造を取り除く段階と、
前記第１のＧＰＵに関連するドライバ状態を取り除く段階と、
前記第１のＧＰＵから電源を取り除く段階と、
を含む、請求項８に記載の方法。
【請求項１０】
前記第１のＧＰＵは、プロセッサチップセットに一体化され、前記第２のＧＰＵは個別ＧＰＵチップ上に存在する、請求項１に記載の方法。
【請求項１１】
前記第１のＧＰＵ及び前記第２のＧＰＵは、実質的に同じ回路及び同じ性能を有する、請求項１に記載の方法。
【請求項１２】
前記第１のＧＰＵは、グラフィックコードを実行する汎用プロセッサであり、前記第２のＧＰＵは特定用途向けグラフィックプロセッサである、請求項１に記載の方法。
【請求項１３】
第１のグラフィック処理ユニット（ＧＰＵ）から第２のＧＰＵへ切り換えてディスプレイを駆動するコンピュータシステムにおいて、
前記第１のＧＰＵと、
前記第２のＧＰＵと、
リクエストを受信して前記ディスプレイを駆動する信号源として前記第１のＧＰＵの使用から前記第２のＧＰＵの使用へ切り換えるようになっている、オペレーティングシステムと、
を備え、
前記オペレーティングシステムは、
第１のスレッドを使用して、サービスユーザリクエストに関連する動作を行うウインドウマネージャを実行し、
第２のスレッドを使用して、前記第２のＧＰＵを設定して前記第２のＧＰＵを準備して前記ディスプレイを駆動し、
前記第２のスレッドが前記第２のＧＰＵを設定している間に、前記第１のスレッドを使用して、引き続きウインドウマネージャを実行してユーザリクエストを処理し、
前記第２のＧＰＵのコンフィギュレーションの完了後、前記ディスプレイを駆動する前記信号源を前記第１のＧＰＵから前記第２のＧＰＵへ切り換える、ようになっているコンピュータシステム。
【請求項１４】
前記第２のスレッドは、バックグラウンドで動作するカーネルベースのスレッドである、請求項１３に記載のコンピュータシステム。
【請求項１５】
前記第２のＧＰＵを設定する間に、前記第２のスレッドは、
前記第２のスレッドを使用して前記第２のＧＰＵを設定し、
前記第２のＧＰＵの電源を投入し、
ハードウェア・コンフィギュレーション・オペレーションを行って前記第２のＧＰＵに関するハードウェアを設定するようになった、請求項１３に記載のコンピュータシステム。
【請求項１６】
前記ハードウェア・コンフィギュレーション・オペレーションを行う間に、前記第２のスレッドは、
前記第２のＧＰＵに関するドライバを再初期化し、
ディスプレイプロービング動作を行い、前記ディスプレイの特性を判定し、
モード設定値を前記第１のＧＰＵから前記第２のＧＰＵへコピーし、
少なくとも１つのカラールックアップテーブル（ＣＬＵＴ）を前記第１のＧＰＵから前記第２のＧＰＵへコピーする、
ことの中の１つ又はそれ以上を行うように構成される、請求項１５に記載のコンピュータシステム。
【請求項１７】
前記信号源を前記第１のＧＰＵから前記第２のＧＰＵへ切り換える前に、前記第１のスレッドは、
前記ウインドウマネージャ及び前記第２のＧＰＵに関連するソフトウェア・コンフィギュレーション・オペレーションを行ってアプリケーション可視データ構造を初期化し、
第１のセットのレンダリング動作を行って前記第２のＧＰＵに関する第１の画像をレンダリングする、
コードパスを実行するように構成される、請求項１３に記載のコンピュータシステム。
【請求項１８】
前記コードパスの実行中に前記スレッドは、前記第２のＧＰＵを設定するために前記第２のスレッドが先に実行したいくつかの動作を繰り返すように構成される、請求項１７に記載のコンピュータシステム。
【請求項１９】
前記繰り返される動作は、既に完了し、又はキャッシュ値にアクセスし、その結果としてより高速に実行される、請求項１８に記載のコンピュータシステム。
【請求項２０】
前記信号源の切り換え後、前記第２のスレッドは、前記第１のＧＰＵを分解するようになっている、請求項１３に記載のコンピュータシステム。
【請求項２１】
前記第１のＧＰＵの分解時に前記第２のスレッドは、
前記ウインドウマネージャ及び前記第１のＧＰＵに関連するアプリケーション可視データ構造を取り除き、
前記第１のＧＰＵに関連するドライバ状態を取り除き、
前記第１のＧＰＵから電源を取り除く、
ように構成される、請求項２０に記載のコンピュータシステム。
【請求項２２】
コンピュータが実行すると該コンピュータがディスプレイを駆動する第１のグラフィック処理ユニット（ＧＰＵ）の使用から第２のＧＰＵの使用に切り換える方法を行う命令を記憶するコンピュータ読み取り可能な記憶媒体であって、該方法が、
第１のスレッドを使用してサービスユーザリクエストに関連する動作を行うウインドウマネージャを実行する段階と、
リクエストを受信して、前記ディスプレイを駆動する信号源として前記第１のＧＰＵの使用から前記第２のＧＰＵの使用に切り換える段階と、
前記リクエストに応答して、
第２のスレッドを使用して、前記ディスプレイの駆動に備えて前記第２のＧＰＵを設定し、
前記第２のスレッドが前記第２のＧＰＵを設定している間に、前記第１のスレッドを引き続き使用して、ウインドウマネージャを実行してユーザリクエストを処理し、
前記第２のＧＰＵのコンフィギュレーションの完了後に、前記ディスプレイを駆動する前記信号源を前記第１のＧＰＵから前記第２のＧＰＵに切り換える段階と、
を含む、コンピュータ読み取り可能な記憶媒体。
【請求項２３】
前記第２のスレッドは、バックグラウンドで動作するカーネルベースのスレッドである、請求項２２に記載のコンピュータ読み取り可能な記憶媒体。
【請求項２４】
前記第２のスレッドを使用して前記第２のＧＰＵを設定する段階は、
前記第２のＧＰＵの電源を投入する段階と、
ハードウェア・コンフィギュレーション・オペレーションを行って前記第２のＧＰＵに関するハードウェアを設定する段階と、
を含む、請求項２２に記載のコンピュータ読み取り可能な記憶媒体。
【請求項２５】
前記ハードウェア・コンフィギュレーション・オペレーションを行う段階は、
前記第２のＧＰＵに関するドライバを再初期化する段階と、
ディスプレイプロービング動作を行い、前記ディスプレイの特性を判定する段階と、
モード設定値を前記第１のＧＰＵから前記第２のＧＰＵへコピーする段階と、
少なくとも１つのカラールックアップテーブル（ＣＬＵＴ）を前記第１のＧＰＵから前記第２のＧＰＵへコピーする段階と、
のうちの１つ又はそれ以上を含む、請求項２４に記載のコンピュータ読み取り可能な記憶媒体。
【請求項２６】
前記信号源を前記第１のＧＰＵから前記第２のＧＰＵに切り換える前に、前記第１のスレッドを使用してコードパスを実行する段階を更に含み、
前記ウインドウマネージャ及び前記第２のＧＰＵに関連するソフトウェア・コンフィギュレーション・オペレーションを行ってアプリケーション可視データ構造を初期化し、
第１のセットのレンダリング動作を行って前記第２のＧＰＵに関する第１の画像をレンダリングするようになっている、請求項２２に記載のコンピュータ読み取り可能な記憶媒体。
【請求項２７】
前記第１のスレッドを使用して前記コードパスを実行する段階は、前記第２のＧＰＵを設定するために前記第２のスレッドが先に実行したいくつかの動作を繰り返す段階を含む、請求項２６に記載のコンピュータ読み取り可能な記憶媒体。
【請求項２８】
前記繰り返される動作は、既に完了し、又はキャッシュ値にアクセスし、その結果としてより高速に実行される、請求項２７に記載のコンピュータ読み取り可能な記憶媒体。
【請求項２９】
前記信号源の切り換え後、前記第２のスレッドを使用して前記第１のＧＰＵに関するコンフィギュレーションを分解する段階を更に含む、請求項２２に記載のコンピュータ読み取り可能な記憶媒体。
【請求項３０】
前記第１のＧＰＵのコンフィギュレーションを分解する段階は、
前記ウインドウマネージャ及び前記第１のＧＰＵに関連するアプリケーション可視データ構造を取り除く段階と、
前記第１のＧＰＵに関連するドライバ状態を取り除く段階と、
前記第１のＧＰＵから電源を取り除く段階と、
を含む、請求項２９に記載のコンピュータ読み取り可能な記憶媒体。
【請求項３１】
第１のグラフィック処理ユニット（ＧＰＵ）の使用から第２のＧＰＵの使用に切り換えてディスプレイを駆動する方法であって、
前記ディスプレイを駆動するためにスレッドが前記第２のＧＰＵを設定する間に、前記ディスプレイを第１のＧＰＵで駆動する段階と、
前記第２のＧＰＵのコンフィギュレーションの完了後、前記ディスプレイを駆動する信号源を前記第１のＧＰＵから前記第２のＧＰＵに切り換える段階と、
を含む方法。
【請求項３２】
コンピュータが実行すると該コンピュータがディスプレイを駆動する第１のグラフィック処理ユニット（ＧＰＵ）の使用から第２のＧＰＵの使用に切り換える方法を行う命令を記憶するコンピュータ読み取り可能な記憶媒体であって、該方法が、
前記ディスプレイを駆動するためにスレッドが前記第２のＧＰＵを設定する間に、前記ディスプレイを第１のＧＰＵで駆動する段階と、
前記第２のＧＰＵのコンフィギュレーションの完了後、前記ディスプレイを駆動する信号源を前記第１のＧＰＵから前記第２のＧＰＵに切り換える段階と、
を含む、コンピュータ読み取り可能な記憶媒体。
【請求項３３】
第１のグラフィック処理ユニット（ＧＰＵ）から第２のＧＰＵに切り換えてディスプレイを駆動するコンピュータシステムであって、
前記第１のＧＰＵと、
前記第２のＧＰＵと、
リクエストを受信して前記ディスプレイを駆動する信号源として前記第１のＧＰＵの使用から前記第２のＧＰＵの使用へ切り換えるようになっている、オペレーティングシステムと、
を備え、
前記オペレーティングシステムは、
前記ディスプレイを駆動するためにスレッドが前記第２のＧＰＵを設定する間に、前記ディスプレイを第１のＧＰＵで駆動し、
前記第２のＧＰＵのコンフィギュレーションの完了後、前記ディスプレイを駆動する信号源を前記第１のＧＰＵから前記第２のＧＰＵに切り換える、
ように構成されるコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の実施形態は、コンピュータシステムの複数のグラフィック処理ユニット（ＧＰＵ）の間の切り換え技術に関する。詳細には、本開示の実施形態は、ＧＰＵを「プリヒート」してＧＰＵへの迅速な切り換えを容易にする技術に関連する。
【背景技術】
【０００２】
コンピュータ性能の向上により、コンピュータシステムは、大量のグラフィックデータを高い転送速度で効率的に処理することができる。例えば、コンピュータシステムは、ビデオゲームの複雑な光景をレンダリングするために、及びビデオストリーム及びデジタル写真を処理するために一般に使用される。このようなグラフィックデータの高速処理を容易にするために、一般に、コンピュータシステムは、専用グラフィック処理装置（「グラフィック処理ユニット」（ＧＰＵ）と呼ぶ）を備え、コンピュータシステムモニタ等のグラフィックディスプレイデバイスを駆動するようになっている。残念ながら、高性能ＧＰＵは、大量の電力を消費するので熱放散の問題を引き起こす。
【０００３】
この問題点の１つの解決策は、ローアクティビティの期間に処理能力の高いハイパワーＧＰＵから処理能力の低いローパワーＧＰＵに切り換えることで電力消費を抑えることである。しかしながら、切り換え動作のためにＧＰＵを初期化する処理は、非常に多くのコンフィギュレーション・オペレーションを必要とし相当の時間を費やす場合がある。例えば、ＧＰＵを初期化処理の間に、ＧＰＵモード設定は初期化される必要があり、カラールックアップテーブルを読み込む必要があり、関連ドライバを再設定する必要がある。これらのコンフィギュレーション・オペレーションは、コンピュータシステムの応答性を著しく遅延させる場合があり、ユーザを悩ますことになる。
【０００４】
従って、前述の問題を生じることなく、ＧＰＵ間の効率的な切り換えを容易にする技術が必要である。
【発明の概要】
【０００５】
本実施形態は、ディスプレイを駆動する各グラフィック処理ユニット（ＧＰＵ）の間のシームレスな切り換えを容易にするシステムを提供する。作動時、システムは、ディスプレイを駆動する第１のＧＰＵの使用から第２のＧＰＵの使用へ切り換えるリクエストを受信する。このリクエストに応じて、システムは、ディスプレイの駆動に備えて第２のＧＰＵを設定するために、バックグラウンドで作動するカーネルスレッドを使用する。カーネルスレッドが第２のＧＰＵを設定する間に、ユーザスレッドは、引き続きサービスユーザリクエストに関連する動作を行うウインドウマネージャを実行する。第２のＧＰＵの設定が完了すると、システムはディスプレイの信号源を第１のＧＰＵから第２のＧＰＵへ切り換える。
【０００６】
特定の実施形態において、第２のＧＰＵを設定することは、最初に第２のＧＰＵの電源を投入し、その後、第２のＧＰＵのハードウェア・コンフィギュレーション・オペレーションを実行することを含む。
特定の実施形態において、ハードウェア・コンフィギュレーション・オペレーションを実行することは、第２のＧＰＵのドライバを再初期化すること、ディスプレイの特性を決定するためにディスプレイ打診モードを実行すること、第１のＧＰＵから第２のＧＰＵへモード設定値をコピーすること、少なくとも１つのカラールックアップテーブル（ＣＬＵＴ）を第１のＧＰＵから第２のＧＰＵへコピーすることを含む。
【０００７】
特定の実施形態において、信号源を第１のＧＰＵから第２のＧＰＵに切り換える前に、ユーザスレッドは、ソフトウェア・コンフィギュレーション・オペレーションを実行してウインドウマネージャ及び第２のＧＰＵに関連するアプリケーション可視データ構造を初期化する合理化コードパスを実行すると共に、第２のＧＰＵに関する第１の画像をレンダリングする。
【０００８】
特定の実施形態において、合理化コードパスの実行は、第２のＧＰＵを設定するためにカーネルスレッドが先に行った特定の動作を繰り返すことを含み、繰り返し動作は、カーネルスレッドがすでに完了したか、又はキャッシュ値にアクセスし、結果的に高速に実行できる。
【０００９】
特定の実施形態において、信号源の切り換え後、システムはカーネルスレッドを使用して第１のＧＰＵに関するコンフィギュレーションを分解する。この分解処理は、ウインドウマネージャ及び第１のＧＰＵに関連するアプリケーション可視データ構造を取り除き、第１のＧＰＵに関連するドライバ状態情報を取り除き、第１のＧＰＵから電源を取り除く。
【００１０】
１つの実施形態において、第１のＧＰＵはプロセッサチップセットに一体にされたローパワーＧＰＵであり、第２のＧＰＵは個別（discrete）ＧＰＵチップ上にあるハイパワーＧＰＵ、又はその逆である。別の実施形態において、第１のＧＰＵ及び第２のＧＰＵは、実質的に同じ回路及び実質的に同じ性能を有する。更に別の実施形態において、第１のＧＰＵはグラフィックコードを実行する汎用プロセッサ、及び第２のＧＰＵは特定用途向けグラフィックプロセッサ、又はその逆とすることができる。
【００１１】
また、他の実施形態は、第１のＧＰＵの使用から第２のＧＰＵの使用へ切り換えてディスプレイを駆動するシステムを備える。作動時、システムは、スレッドがディスプレイを駆動するように第２のＧＰＵを設定する間、ディスプレイを第１のＧＰＵで駆動する。次に、第２のＧＰＵのコンフィギュレーションの完了後、システムは、ディスプレイを駆動する信号源を第１のＧＰＵから第２のＧＰＵへ切り換える。
【図面の簡単な説明】
【００１２】
【図１】１つの実施形態における、同じディスプレイを駆動する異なるグラフィックソースの間で切り換え可能なコンピュータシステムを示す。
【図２】１つの実施形態における、グラフィックマルチプレクサの構造を示す。
【図３】１つの実施形態における、各ＧＰＵの間の切り換えに関連する動作を示すフローチャートである。
【図４】１つの実施形態における、各ＧＰＵの間の切り換えに関連する動作のタイムラインを示す。
【図５】１つの実施形態における、カーネルスレッドで実行されるハードウェア・コンフィギュレーション・オペレーションを示すフローチャートである。
【図６】１つの実施形態における、カーネルスレッドで実行されるソフトウェア・コンフィギュレーション・オペレーションを示すフローチャートである。
【図７】１つの実施形態における、ＧＰＵのコンフィギュレーションの分解に関連する動作を示すフローチャートである。
【図８】１つの実施形態における、各ＧＰＵの間の切り換え処理のハイレベルなフローチャートである。
【発明を実施するための形態】
【００１３】
（概要）
複数のＧＰＵをサポートする既存のコンピュータシステムにおいて、ＧＰＵの切り換えが決定されると、一般にシステムは、汎用再設定メカニズムを使用して新しいＧＰＵを初期化する。この汎用再設定メカニズムは、新しい外部モニタがプラグインされると実行されるのと同じコードパスを実行する。しかしながら、新しい外部モニタの場合とは異なり、ＧＰＵ切り換えはディスプレイを変更しない。
【００１４】
本実施形態において、これにより実際に、システムは新しいＧＰＵを「プリヒート」できるが、このことは、多数のコンフィギュレーションの仮定を行い、ウインドウマネージャにこの切り換えを通知する前に各ＧＰＵの間で何らかのコンフィギュレーション情報（例えば、カラー特性／情報）をコピーすることを含んでいる。ユーザからのこれらのコンフィギュレーション・オペレーションの影響をなくすために、コンフィギュレーション・オペレーションは、バックグラウンドにおいてカーネルスレッドで実行できる。カーネルスレッドがバックグラウンドでコンフィギュレーション・オペレーションを実行する間に、ウインドウマネージャは、引き続き通常通りフォアグラウンドで実行できる。これにより、システムは、「プリヒート」処理時にユーザと引き続き情報のやりとりを行うことができる。
【００１５】
カーネルスレッドは各ＧＰＵを互に非常に近いものに事前構成するので、実際のＧＰＵ切り換えの実行は、切り換えを行うように調整された簡単な「合理化コードパス」の実行を含む。例えば、プリヒート処理の間に、カーネルスレッドは、現在作動中のＧＰＵに関するデータ（例えば、モードがサポートするビデオカードの形式）をキャッシュすることができる。これにより、合理化コードパスは、その後、現在作動中のＧＰＵから問い合わせるのではなく、キャッシュされたデータにアクセスできる。ＧＰＵがどのモードをサポートするかを示すキャッシュ情報は、システムが現在作動中のＧＰＵのモードに適合するように新しいＧＰＵを設定する方法を知る必要があるので好都合である。このことはシステムが電源投入中の新しいＧＰＵへのアクセスを行わないので機能停止を阻止する。また、グラフィックドライバは、動作がＧＰＵ切り換えであるということを上手く利用するように交換されるので、新しい外部モニタがプラグインされる際には必要であるが、ＧＰＵ切り換え時には必要のない特定の初期化動作が除外される。
【００１６】
「プリヒート」処理及び合理化コードパスを使用してＧＰＵ切り換えを行うことで、もはや、クライアントアプリケーションが実際にミラー状態を識別でき、ユーザが駆動ディスプレイ上の変化に気付くことができ、ウインドウマネージャと情報のやりとりをできる、所定期間（例えば、２−４秒）にわたって、２つのＧＰＵをミラー状態にする必要がないことを理解されたい。開示される特定の実施形態は、実際に各ＧＰＵをミラー状態に置くが、第１の画像を描画して切り換えるのに必要な時間だけである（例えば、約１６ミリセカンド）。更に、システムは、この期間にクライアントを見つけるので、クライアントはミラー状態に気付くことはない。クライアントは約１６ミリセカンドだけ探し出されるので、特定の実施形態において、ユーザは、ディスプレイへの妨害又はユーザのウインドウマネージャとの情報のやりとりへの妨害を殆ど気付かない。対照的に、既存のシステムにおいて、ウインドウマネージャは、ＧＰＵ切り換え時に２−４秒妨害される場合がある。
【００１７】
この新規でより効率的なＧＰＵ切り換え処理を以下に詳細に示すが、最初に特定の関連のコンピュータシステムのハードウェアを説明する。
【００１８】
（コンピュータシステム）
図１は、１つの実施形態による、２つのグラフィックソースを切り換えてディスプレイを駆動するコンピュータシステム１００を示す。図１を参照すると、２つのグラフィックソースは、（１）個別（discrete）ＧＰＵ１１０及び（２）内蔵ＧＰＵ１１８を含み、各々個別にディスプレイ１１４を駆動できる。ディスプレイ１１４を駆動するグラフィックソースは、２つのグラフィックソースの間で選択するＧＰＵマルチプレクサ（ＧＭＵＸ）１２０で特定される。従って、コンピュータシステム１００は、ＧＭＵＸ１２０を使用して現在の作動状態に基づいてグラフィックソースを選択できる。
【００１９】
作動時、個別ＧＰＵ１１０からのディスプレイストリーム１２２、及び内蔵ＧＰＵ１１８からのディスプレイストリーム１２４は、ＧＭＵＸ１２０のデータ入力に供給される。ソース選択信号１２６は、ＧＭＵＸ１２０の選択入力に供給され、２つのグラフィックソースのどちらがディスプレイ１１４を駆動するかを決定する。例示的な実施形態において、ソース選択信号１２６は、ソース選択信号１２６を発生する特定のロジックを含むブリッジチップ１０４で生成される。（また、ソース選択信号１２６は、ブリッジチップ１０４以外の論理ブロックで生成できることに留意されたい。例えば、ソース選択信号１２６は、１つ又はそれ以上の処理ユニット１０２で生成できる）。選択されたグラフィックソースからのディスプレイストリームは、次に、ディスプレイ１１４に供給される。
【００２０】
１つの実施形態において、個別ＧＰＵ１１０及び内蔵ＧＰＵ１１８は、データパス１２８を経由して通信してディスプレイストリームに同期するようになっている。ディスプレイストリームの同期は、それぞれにタイミング信号及びそれぞれのデータ信号の同期を含むことができる。
【００２１】
１つの実施形態において、個別ＧＰＵ１１０は処理能力の高いＧＰＵであり、電力消費の少ない処理能力の低いＧＰＵ内蔵ＧＰＵ１１８に対して非常に多くの電力を消費する。本実施形態において、グラフィック処理の負荷が小さい場合、システムは、ディスプレイ１１４を駆動する個別ＧＰＵ１１０の使用から内蔵ＧＰＵ１１８の使用へ切り換わり、その後、個別ＧＰＵ１１０の電源が切られるので電力を節約できる。他方で、グラフィック処理の負荷が再度大きくなった場合、システムはグラフィックソースを内蔵ＧＰＵ１１８から個別ＧＰＵ１１０へ戻す。
【００２２】
個別のＧＰＵ及び内蔵ＧＰＵを含むシステムを説明したが、開示された技術は、一般に各々のＧＰＵが個別にディスプレイを駆動できる２つ又はそれ以上のＧＰＵを備える任意のコンピュータシステムで作動できる。更に、この複数のＧＰＵは、異なる作動特性及び電力消費レベルをもつことができる。従って、開示された技術は図１に示す特定の実施形態に限定されない。
【００２３】
また、前述の各グラフィックソースの間での切り換え処理は、コンピュータシステムをシャットダウンする又は再初期化することを含んでいない。その結果、切り換え処理は、再初期化処理を必要とする場合よりも実質的に時間がかからない。従って、開示される技術は、各グラフィックソースの間の高速及び頻繁な切り換えを容易にする。
【００２４】
（グラフィックマルチプレクサ）
図２は、１つの実施形態のグラフィックマルチプレクサ１２０（図１を参照して説明した）の内部構造を示す。図２を参照すると、個別ＧＰＵ１１０からのディスプレイストリーム１２２及び内蔵ＧＰＵ１１８からのディスプレイストリーム１２４は、それぞれデータクロック取得ブロック２０５及び２１０に供給される。データクロック取得ブロック２０５及び２１０は、ディスプレイストリーム１２２及び１２４を非直列化して、それぞれデータクロック信号２２１及び２２２を取り出す。
【００２５】
これらのデータクロック信号２２１及び２２２は、ディスプレイストリームアッセンブラ２４０に送られることになるデータクロック２２１及び２２２の１つを選択するクロックＭＵＸ２２５に供給される。１つの実施形態においてＧＭＵＸコントローラ２３５は選択信号２３６をクロックＭＵＸ２２５に提供する。もしくは、選択信号２３６は、１つ又はそれ以上のプロセッサ装置１０２又は別のコントローラのプロセッサ等の他のソースから提供できる。
【００２６】
次に、ディスプレイストリーム１２２及び１２４は、別個のデータクロックでそれぞれデータバッファ２１５及び２２０に供給される。データバッファ２１５及び２２０は、ディスプレイストリーム１２２及び１２４を調べて、いつブロッキング期間が生じるかを判定して、それぞれのブロッキング期間信号２３３及び２３４を生成する。また、データバッファ２１５及び２２０は、データＭＵＸ２３０に供給される出力データストリームを生成する。
【００２７】
ブロッキング期間信号２３３及び２３４は、ブロッキング期間２３３及び２３４を比較して、もし存在すればディスプレイストリーム１２２及び１２４の各ブロッキング期間の間にどれだけのオーバーラップが存在するかを求める、ＧＭＵＸコントローラ２３５に供給される。（ブロッキング期間信号２３３及び２３４は、垂直又は水平又はブロッキング期間を表し得ることに留意されたい）。ＧＭＵＸコントローラ２３５がブロッキング期間２３３及び２３４が十分にオーバーラップすると判定した場合、ＧＭＵＸコントローラ２３５は、ブロッキング期間がオーバーラップを開始したという選択信号２３６をアサートする。これにより、クロックＭＵＸ２２５及びデータＭＵＸ２３０は、これらのブロッキング期間がオーバーラップする期間に各ディスプレイストリーム１２２及び１２４の間の切り換えを行う。この切り換えはブロッキング期間の間に発生するので、切り換え処理は、ディスプレイ１１４では見ることができないであろう。
【００２８】
最後に、データＭＵＸ２３０及び選択されたデータクロック２２３の出力は、データストリームをディスプレイ１１４に送信する前に再直列化するディスプレイストリームアセンブラ２４０に供給される。
【００２９】
（切り換え処理）
図３は、１つの実施形態による、各ＧＰＵ間の切り換えに関する動作の概要を示す。最初に、オペレーティングシステムは、ディスプレイを駆動する信号源として第１のＧＰＵの使用から第２のＧＰＵの使用へ切り換えるリクエストを受信する（ステップ３０２）。このリクエストは、グラフィック作業負荷の増加（又は減少）に基づいて起動できる。このリクエストは、グラフィック作業負荷をモニタするオペレーティングシステム又はバックグラウンド処理によって生成することができる。このリクエストに応答して、オペレーティングシステムは、バックグラウンドで作動して第２のＧＰＵに関するハードウェア・コンフィギュレーション・オペレーションを行ってディスプレイを駆動するように第２のＧＰＵを準備する、カーネルスレッドを発生させるか又はアクティブにする（ステップ３０４）。また、システムは、引き続き第１のＧＰＵを用いてディスプレイを駆動する。カーネルスレッドが第２のＧＰＵを設定している間に、オペレーティングシステムは引き続きユーザスレッドを実行して、サービスユーザリクエストに関する動作を行うウインドウマネージャを実行するようになっていることに留意されたい（ステップ３０６）。次に、カーネルスレッドが第２のＧＰＵに関するハードウェア・コンフィギュレーション・オペレーションを行った後、ユーザスレッドは、第２のＧＰＵに関するソフトウェア・コンフィギュレーション・オペレーションを行う合理化コードパスを実行する（ステップ３０８）。次に、オペレーティングシステムは信号源を、ディスプレイを駆動する第１のＧＰＵから第２のＧＰＵへ切り換える（ステップ３１０）。最後に、信号源の切り換え後、オペレーティングシステムはカーネルスレッドを使用して第１のＧＰＵに関するコンフィギュレーションを分解するようになっている（ステップ３１２）。
【００３０】
前述のコンフィギュレーション・オペレーションは、図４のタイムラインに詳細に示されている。図４の左側コラムは、ユーザスレッド４０２のアクションを示し、フォアグラウンドにおいてコンピュータシステムに関するウインドウマネージャを実行する。対照的に、図４の右側コラムは、カーネルスレッド４０４のアクションを示し、バックグラウンドにおいてコンフィギュレーション及び分解動動作を行う。
【００３１】
前述のように、切り換えリクエストを受信すると、オペレーティングシステムはカーネルスレッド４０４を使用して、種々のハードウェア・コンフィギュレーション・オペレーション４０８をプリフライトするようになっている。図５に示すフローチャートを参照すると、これらのハードウェア・コンフィギュレーション・オペレーションは、第２のＧＰＵの電源を投入すること（ステップ５０２）及び第２のＧＰＵのドライバを再初期化すること（ステップ５０４）も含むことができる。また、カーネルスレッド４０４は、「ディスプレイのプロービング」動作を行い、駆動されるモニタの特性を判定することができる。（ステップ５０６）。次に、カーネルスレッド４０４は、種々の形式のコンフィギュレーション情報を第１のＧＰＵから第２のＧＰＵへコピーすることができる。例えば、カーネルスレッド４０４は、モード設定値を第１のＧＰＵから第２のＧＰＵへコピーすることができ（ステップ５０８）、これらのモード設定値は、ディスプレイの解像度及び色の濃さを指定できる。また、カーネルスレッド５０４は、カラールックアップテーブル（ＣＬＵＴ）の内容を第１のＧＰＵから第２のＧＰＵへコピーすることができる（ステップ５１０）。
【００３２】
カーネルスレッド４０４が第２のＧＰＵを設定している間に、ユーザスレッド４０２は、引き続き、サービスユーザリクエスト４０６に関連する動作を行うウインドウマネージャ（ウインドウイングシステムに関する）を実行する。これにより、ユーザは、ハードウェア・コンフィギュレーション・オペレーションが起こっている期間を中断することなく、ウインドウイングシステムと情報のやりとりを行うことができる。
【００３３】
カーネルスレッド４０４がハードウェア・コンフィギュレーション・オペレーションを完了すると、ウインドウマネージャに割り込み４０９を送る。この割り込み４０９により、ウインドウマネージャは種々のソフトウェア・コンフィギュレーション・オペレーション４１０を行う合理化コードパスを実行する。図６に示すフローチャートを参照すると、これらのソフトウェア・コンフィギュレーション・オペレーションは、第２のＧＰＵに関する状態情報を含むアプリケーション可視のデータ構成を初期化することを含むことができる（ステップ６０２）。また、システムは、第２のＧＰＵに関する最初の画像をレンダリングする（ステップ６０４）。これらのソフトウェア・コンフィギュレーション・オペレーション（ユーザ空間のデータ構造にアクセスすることは含まない）のいくつかはカーネルスレッド４０４で行い得る可能性があることに留意されたい。
【００３４】
各ＧＰＵの間の切り換え時に行われるコンフィギュレーション・オペレーションは、切り換え動作時に切り換えの発生後まで新しいフレームバッファは可視でないので、新しいモニタがプラグインされた後に行われる一般的なコンフィギュレーション・オペレーションとは異なることに留意されたい。これにより、時間のかかる一般的なコンフィギュレーション・オペレーションを省くことができる。例えば、最初、新しいフレームは可視ではないので、フレームバッファの内容をワイプする必要はない。また、ディスプレイを徐々にフェードダウン及びフェードアップする、カラールックアップテーブル（ＣＬＵＴ）フェーディング動作を行う必要もない。また、システムは、第１のＧＰＵの出力が切り換え処理の間に最後から２番目のフレームでフリーズする可能性があるので、第１のＧＰＵに対する最後のフレームのレンダリングを省くことができる。
【００３５】
次に、システムは、ディスプレイを駆動するための信号源として、第１のＧＰＵの使用から第２のＧＰＵの使用へ切り換わる。１つの実施形態において、第１のＧＰＵの出力は、選択されたブロッキング期間は固定されたままであり、選択されたブロッキング期間は、第２のＧＰＵが切り換え動作が起こる時間であるブロッキング期間を入力するまで「拡大」される。これにより、切り換え動作は、ユーザには殆ど知覚できない単一フレーム（約１６ミリセカンド）だけディスプレイをフリーズする。
【００３６】
次に、切り換え完了後、ウインドウマネージャは、割り込み４１２をカーネルスレッド４０４に送信する。割り込み４１２に応答して、カーネルスレッド４０４は、いくつかの動作を行い第１のＧＰＵ４１４のコンフィギュレーションを「分解（ｔｅａｒ  ｄｏｗｎ）」する。これらの分解動作が行われている間に、ウインドウマネージャは引き続きサービスユーザリクエスト４１６に関連する動作を行うことに留意されたい。
【００３７】
図７に示すフローチャートを参照すると、分解動作時、カーネルスレッド４０４は、第１のＧＰＵに関連する状態情報を含む、アプリケーション可視のデータ構造を取り除き（ステップ７０２）、第１のＧＰＵに関連するドライバ状態を取り除く（ステップ７０４）。また、カーネルスレッド４０４は、第１のＧＰＵに関連するアクセラレータ（ステップ７０６）及び音声処理（ステップ７０８）を停止する。次に、カーネルスレッド４０４は機能停止して、アプリケーションが第１のＧＰＵの状態情報を解除するのを待つ（ステップ７１０）。最後に、カーネルスレッド４０４は、第１のＧＰＵから電力を取り外す（ステップ７１２）。
【００３８】
図４の右側の垂直タイムラインは、１つの実施形態において、カーネルスレッド４０４を、切り換えＧＰＵに関連するコンフィギュレーション・オペレーションを効率的にユーザから隠すことができるように使用する方法を示す。最初に、カーネルスレッド４０４は、約１０００ミリセカンドのプリフライト（「プリヒート」と呼ぶ場合もある）ハードウェア・コンフィギュレーション・オペレーション４０８を行うが、ウインドウマネージャは引き続きユーザリクエスト４０６を処理する。次に、ウインドウマネージャは、約１３０ミリセカンドだけソフトウェア・コンフィギュレーション・オペレーション４１０を行う合理化コードパスを実行する。この短時間（約１／８秒）の間、ユーザとの相互作用は影響を受ける場合があるが、これはわずかに知覚できる。また、前述のように、切り換え動作は、ユーザには知覚できないで可能性が高い約１６ミリセカンドだけ必要とする。最後に、分解処理４１４はカーネルスレッドが完了するまで約４００ミリセカンドを必要とする。しかしながら、この期間にウインドウマネージャはユーザリクエストを処理できる。
【００３９】
（ハイレベルな説明）
図８は、ハイレベルなフローチャートであり、１つの実施形態による２つのＧＰＵの間の切り換え処理を示す。動作時、システムは、ディスプレイを駆動するためにスレッドが第２のＧＰＵを設定する間に、第１のＧＰＵからディスプレイを駆動する（ステップ８０２）。次に、第２のＧＰＵのコンフィギュレーションの完了後に、システムは、ディスプレイを駆動する信号源を第１のＧＰＵから第２のＧＰＵへ切り換える（ステップ８０４）。
【００４０】
前述の実施形態の説明は例示及び説明目的である。これらは網羅的であること又はこの説明を開示された形態に限定することが意図していない。従って、当業者であれば多くの変更例及び変形例を理解できるはずである。更に、前述の開示内容は本記述を限定するものではない。本記述の範囲は添付請求項にて規定される。
【００４１】
更に前述の記述は、当業者が開示される実施形態を実施して利用できるように示されており、特定のアプリケーション及びその必須条件との関連で提供される。開示された実施形態に対する種々の変更例は当業者には容易に理解できるはずであり、本明細書で定義される一般的な原理は、開示された実施形態の精神及び範囲を逸脱することなく、他の実施形態及びアプリケーションに適用可能である。従って、開示された実施形態は、図示の実施形態に限定されるものではなく、本明細書で開示される原理及び特徴と一致する最大の範囲と認められる。
【００４２】
詳細な説明に記載したデータ構造及びコードは、一般には、コンピュータシステムが使用するコード及び／又はコードを格納できる任意のデバイス又は媒体とすることができる、コンピュータ読み取り可能な媒体に格納される。コンピュータ読み取り可能な媒体としては、限定されるものではないが、揮発メモリ、不揮発メモリ、ディスクドライブ、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（デジタル多用途ディスク又はデジタルビデオディスク）等の磁気及び光学記憶デバイス、又は現在公知の又は将来開発されるコード及び又はデータを記憶できる他の媒体とすることができる。
【００４３】
詳細な説明の欄に説明される方法及びプロセスは、前述のコンピュータ読み取り可能な記憶媒体に記憶でき、コード及び／又はデータとして組み込むことができる。コンピュータシステムが、コンピュータ読み取り可能な記憶媒体に記憶されたコード及び／又はデータを読み込んで実行する場合、コンピュータシステムは、データ構造及びコードとして組み込まれ、コンピュータ読み取り可能な記憶媒体に記憶された方法及びプロセスを実行する。更に、以下に説明する方法及びプロセスは、ハードウェアモジュールに含むことができる。例えば、ハードウェアモジュールとしては、限定されるものではないが、特定用途向け集積回路（ＡＳＩＣ）チップ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、及び現在公知の又は将来開発される他のプログラム可能論理デバイスを含むことができる。ハードウェアモジュールが起動されると、ハードウェアモジュールは、該ハードウェアモジュールが包含する方法及びプロセスを実行する。
【図１】
2013516696.tif 000003
【図２】
2013516696.tif 000004
【図３】
2013516696.tif 000005
【図４】
2013516696.tif 000006
【図５】
2013516696.tif 000007
【図６】
2013516696.tif 000008
【図７】
2013516696.tif 000009
【図８】
2013516696.tif 000010
【手続補正書】
【提出日】平成24年9月4日(2012.9.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ディスプレイを駆動する第１のグラフィック処理ユニット（ＧＰＵ）の使用から第２のＧＰＵの使用に切り換える方法であって、
第１のスレッドを使用してサービスユーザリクエストに関連する動作を行うウインドウマネージャを実行する段階と、
リクエストを受信して、前記ディスプレイを駆動する信号源として前記第１のＧＰＵの使用から前記第２のＧＰＵの使用に切り換える段階と、
前記リクエストに応答して、
第２のスレッドを使用して、前記ディスプレイの駆動に備えて前記第２のＧＰＵを設定し、
前記第２のスレッドが前記第２のＧＰＵを設定している間に、前記第１のスレッドを引き続き使用して、ウインドウマネージャを実行してユーザリクエストを処理し、
前記第２のＧＰＵのコンフィギュレーションの完了後に、前記ディスプレイを駆動する前記信号源を前記第１のＧＰＵから前記第２のＧＰＵに切り換える段階と、
を含む方法。
【請求項２】
前記第２のスレッドは、バックグラウンドで動作するカーネルベースのスレッドである、請求項１に記載の方法。
【請求項３】
前記第２のスレッドを使用して前記第２のＧＰＵを設定する段階は、
前記第２のＧＰＵの電源を投入する段階と、
ハードウェア・コンフィギュレーション・オペレーションを行って前記第２のＧＰＵに関するハードウェアを設定する段階と、
を含む、請求項１に記載の方法。
【請求項４】
前記ハードウェア・コンフィギュレーション・オペレーションを行う段階は、
前記第２のＧＰＵに関するドライバを再初期化する段階と、
ディスプレイプロービングオペレーションを行い、前記ディスプレイの特性を判定する段階と、
モード設定値を前記第１のＧＰＵから前記第２のＧＰＵへコピーする段階と、
少なくとも１つのカラールックアップテーブル（ＣＬＵＴ）を前記第１のＧＰＵから前記第２のＧＰＵへコピーする段階と、
のうちの１つ又はそれ以上を含む、請求項３に記載の方法。
【請求項５】
前記信号源を前記第１のＧＰＵから前記第２のＧＰＵに切り換える前に、前記第１のスレッドを使用してコードパスを実行する段階を更に含み、
前記ウインドウマネージャ及び前記第２のＧＰＵに関連するソフトウェア・コンフィギュレーション・オペレーションを行ってアプリケーション可視データ構造を初期化し、
第１のセットのレンダリング動作を行って前記第２のＧＰＵに関する第１の画像をレンダリングするようになっている、請求項１に記載の方法。
【請求項６】
前記第１のスレッドを使用して前記コードパスを実行する段階は、前記第２のＧＰＵを設定するために前記第２のスレッドが先に実行したいくつかの動作を繰り返す段階を含む、請求項５に記載の方法。
【請求項７】
前記繰り返される動作はキャッシュ値をアクセスする、請求項６に記載の方法。
【請求項８】
前記信号源の切り換え後、前記第２のスレッドを使用して前記第１のＧＰＵに関するコンフィギュレーションを分解する段階を更に含む、請求項１に記載の方法。
【請求項９】
前記第１のＧＰＵのコンフィギュレーションを分解する段階は、
前記ウインドウマネージャ及び前記第１のＧＰＵに関連するアプリケーション可視データ構造を取り除く段階と、
前記第１のＧＰＵに関連するドライバ状態を取り除く段階と、
前記第１のＧＰＵから電源を取り除く段階と、
を含む、請求項８に記載の方法。
【請求項１０】
前記第１のＧＰＵは、プロセッサチップセットに一体化され、前記第２のＧＰＵは個別ＧＰＵチップ上に存在する、請求項１に記載の方法。
【請求項１１】
前記第１のＧＰＵ及び前記第２のＧＰＵは、実質的に同じ回路及び同じ性能を有する、請求項１に記載の方法。
【請求項１２】
前記第１のＧＰＵは、グラフィックコードを実行する汎用プロセッサであり、前記第２のＧＰＵは特定用途向けグラフィックプロセッサである、請求項１に記載の方法。
【請求項１３】
第１のグラフィック処理ユニット（ＧＰＵ）から第２のＧＰＵへ切り換えてディスプレイを駆動するコンピュータシステムにおいて、
前記第１のＧＰＵと、
前記第２のＧＰＵと、
リクエストを受信して前記ディスプレイを駆動する信号源として前記第１のＧＰＵの使用から前記第２のＧＰＵの使用へ切り換えるようになっている、オペレーティングシステムと、
を備え、
前記オペレーティングシステムは、
第１のスレッドを使用して、サービスユーザリクエストに関連する動作を行うウインドウマネージャを実行し、
第２のスレッドを使用して、前記第２のＧＰＵを設定して前記第２のＧＰＵを準備して前記ディスプレイを駆動し、
前記第２のスレッドが前記第２のＧＰＵを設定している間に、前記第１のスレッドを使用して、引き続きウインドウマネージャを実行してユーザリクエストを処理し、
前記第２のＧＰＵのコンフィギュレーションの完了後、前記ディスプレイを駆動する前記信号源を前記第１のＧＰＵから前記第２のＧＰＵへ切り換える、ようになっているコンピュータシステム。
【請求項１４】
前記第２のスレッドは、バックグラウンドで動作するカーネルベースのスレッドである、請求項１３に記載のコンピュータシステム。
【請求項１５】
前記第２のＧＰＵを設定する間に、前記第２のスレッドは、
前記第２のスレッドを使用して前記第２のＧＰＵを設定し、
前記第２のＧＰＵの電源を投入し、
ハードウェア・コンフィギュレーション・オペレーションを行って前記第２のＧＰＵに関するハードウェアを設定するようになった、請求項１３に記載のコンピュータシステム。
【請求項１６】
前記ハードウェア・コンフィギュレーション・オペレーションを行う間に、前記第２のスレッドは、
前記第２のＧＰＵに関するドライバを再初期化し、
ディスプレイプロービング動作を行い、前記ディスプレイの特性を判定し、
モード設定値を前記第１のＧＰＵから前記第２のＧＰＵへコピーし、
少なくとも１つのカラールックアップテーブル（ＣＬＵＴ）を前記第１のＧＰＵから前記第２のＧＰＵへコピーする、
ことの中の１つ又はそれ以上を行うように構成される、請求項１５に記載のコンピュータシステム。
【請求項１７】
前記信号源を前記第１のＧＰＵから前記第２のＧＰＵへ切り換える前に、前記第１のスレッドは、
前記ウインドウマネージャ及び前記第２のＧＰＵに関連するソフトウェア・コンフィギュレーション・オペレーションを行ってアプリケーション可視データ構造を初期化し、
第１のセットのレンダリング動作を行って前記第２のＧＰＵに関する第１の画像をレンダリングする、
コードパスを実行するように構成される、請求項１３に記載のコンピュータシステム。
【請求項１８】
前記コードパスの実行中に前記スレッドは、前記第２のＧＰＵを設定するために前記第２のスレッドが先に実行したいくつかの動作を繰り返すように構成される、請求項１７に記載のコンピュータシステム。
【請求項１９】
前記繰り返される動作は、既に完了し、又はキャッシュ値にアクセスし、その結果としてより高速に実行される、請求項１８に記載のコンピュータシステム。
【請求項２０】
前記信号源の切り換え後、前記第２のスレッドは、前記第１のＧＰＵを分解するようになっている、請求項１３に記載のコンピュータシステム。
【国際調査報告】
2013516696.tif 000011
2013516696.tif 000012