(57)【特許請求の範囲】
【請求項１】
第１及び第２のグラフィック処理ユニット（ＧＰＵｓ）と、
ビデオスイッチから１つのビデオ信号を受信し、出力ビデオ表示ストリームを前記１つのビデオ信号の少なくとも一部に基づき提供するよう構成されたビデオストリームアセンブリユニットと、
所定の命令を記憶したメモリを有する制御ユニットであって、前記命令は、前記制御ユニットに対し、
前記第１及び第２のグラフィック処理ユニット（ＧＰＵｓ）のそれぞれから第１及び第２の入力ビデオ表示ストリームを受信し、前記第１の入力ビデオ表示ストリームの少なくとも一部に基づき前記ビデオストリームアセンブリユニットから第１の出力ビデオ表示ストリームを提供し、
前記第１の入力ビデオ表示ストリームの第１ブランキングインターバルと、所定量よりもオーバラップが少ない前記第２の入力ビデオ表示ストリームの第２ブランキングインターバルとを決定し、
前記ビデオストリームアセンブリユニットから前記第１の出力ビデオ表示ストリームを提供することを継続し、
前記ビデオストリームアセンブリユニットに前記第１の出力ビデオ表示ストリームを提供するようにする命令の後に、前記第２の入力ビデオ表示ストリームがブランキングインターバルを入力したかを決定し、
前記第２の入力ビデオ表示ストリームがブランキングインターバルを入力した後に、前記第２の入力ビデオ表示ストリームの少なくとも一部に基づき前記ビデオストリームアセンブリユニットから第２の出力ビデオ表示ストリームを提供する、
ことを生じさせることを含むビデオ表示システム。
【請求項２】
前記メモリは、前記ビデオストリームアセンブリユニットに前記第２の出力ビデオ表示ストリームを提供するようにする命令の後、前記制御ユニットに前記第１のグラフィック処理ユニット（ＧＰＵ）へのパワー供給を減少させるようにする命令を更に含む、請求項１に記載のビデオ表示システム。
【請求項３】
前記制御ユニットに前記第１のＧＰＵへのパワー供給を減少させるようにする前記命令は、前記制御ユニットに前記第１のＧＰＵへのクロックレートを減少させるようにする命令を含む、請求項２に記載のビデオ表示システム。
【請求項４】
前記制御ユニットに前記第１のＧＰＵへのパワー供給を減少させるようにする前記命令は、前記制御ユニットに前記第１のＧＰＵへのパワーを停止させる命令を更に含む、請求項２に記載のビデオ表示システム。
【請求項５】
前記第１の入力ビデオ表示ストリームを受信し、第１のビデオクロック信号及び前記ビデオスイッチの第１入力と結合された第１のビデオデータ信号を前記第１の入力ビデオ表示ストリームから生成するように構成された第１の受信機と、
前記第２の入力ビデオ表示ストリームを受信し、第２のビデオクロック信号及び前記ビデオスイッチの第２入力と結合された第２のビデオデータ信号を前記第２の入力ビデオ表示ストリームから生成するように構成された第２の受信機と、
前記第１のビデオクロック信号及び前記第２のビデオクロック信号を受信するように構成されたクロックスイッチと、
をさらに備えた、請求項１に記載のビデオ表示システム。
【請求項６】
前記制御ユニットに第１の出力ビデオ表示ストリームを提供するようにする命令は、前記制御ユニットに、
前記クロックスイッチから前記ビデオストリームアセンブリユニットへ前記第１のビデオクロック信号を回送させ、
前記ビデオスイッチから前記ビデオストリームアセンブリユニットへ前記第１のビデオクロック信号を回送させる、
ための命令を含む、請求項５に記載のビデオ表示システム。
【請求項７】
前記制御ユニットに、前記第２の入力ビデオ表示ストリームがブランキングインターバルを入力したかを決定するようにする前記命令は、前記第２の入力ビデオ表示ストリームが特定のブランキングインターバルを入力したかを前記制御ユニットに決定させるための命令を含む、請求項１に記載のビデオ表示システム。
【請求項８】
前記第２の入力ビデオ表示ストリームが特定のブランキングインターバルを入力したかを前記制御ユニットに決定させるための前記命令は、前記第２の入力ビデオ表示ストリームが特定の垂直ブランキングインターバルを入力したかを前記制御ユニットに決定させるための命令を含む、請求項７に記載のビデオ表示システム。
【請求項９】
前記第２の入力ビデオ表示ストリームが特定の垂直ブランキングインターバルを入力したかを前記制御ユニットに決定させるための前記命令は、前記第２のＧＰＵが前記第２の入力ビデオ表示ストリームを供給することを開始した後に、前記第２の入力ビデオ表示ストリームが第１のブランキングインターバルを入力したかを前記制御ユニットに決定させるための命令を含む、請求項７に記載のビデオ表示システム。
【請求項１０】
前記第１の入力ビデオ表示ストリームの第１のブランキングインターバル、及び所定量よりもオーバラップが少ない前記第２の入力ビデオ表示ストリームの第２ブランキングインターバルを前記制御ユニットに決定させるための前記命令は、前記制御ユニットに前記第２のＧＰＵのクロックレートを変更させるようにする命令を含む、請求項１に記載のビデオ表示システム。
【請求項１１】
前記制御ユニットに前記第２のＧＰＵから第２の入力ビデオ表示ストリームを受信させるようにする前記命令は、前記制御ユニットに、
前記第１のＧＰＵから前記第２のＧＰＵへスイッチングするための要求をリクエスタから受信し、
前記リクエスタが前記第２のＧＰＵに適合するかを決定する、
ようにする命令を含む、請求項１に記載のビデオ表示システム。
【請求項１２】
前記制御ユニットに第１の及び第２の入力ビデオ表示ストリームを受信させるようにする前記命令は、前記制御ユニットに、第１の入力ビデオ表示ストリームのミラーである第２の入力ビデオ表示ストリームを受信させるようにする命令を含む、請求項１に記載のビデオ表示システム。
【請求項１３】
前記メモリは、前記ビデオストリームアセンブリユニットから第２の出力ビデオ表示ストリームを提供させるようにする命令の後に、前記制御ユニットにより、
前記第２のＧＰＵが前記第２の出力ビデオ表示ストリームを生成するには不適合であることを決定させ、
前記第２のＧＰＵが不適合であることが決定した後、前記ビデオストリームアセンブリユニットから前記第１の出力ビデオ表示ストリームを提供させ、
前記ビデオストリームアセンブリユニットからの前記第１の出力ビデオ表示ストリームが第２の時間を提供した後で、前記第２のＧＰＵへのパワー供給を減少させる、
ようにする命令を更に含む、請求項１に記載のビデオ表示システム。
【請求項１４】
前記制御ユニットに前記ビデオストリームアセンブリユニットから第２の出力ビデオ表示ストリームを提供させるようにする前記命令は、前記制御ユニットに、前記第２の出力ビデオ表示ストリームのビデオ信号部分とクロック信号部分を個々の信号として提供させるための命令を含む、請求項１に記載のビデオ表示システム。
【請求項１５】
プロセッサにより読み取り可能なプログラムを記憶した不揮発性のプログラム記憶デバイスであって、１以上のプロセッサに、
第１及び第２のグラフィック処理ユニット（ＧＰＵｓ）のそれぞれから第１及び第２の入力ビデオ表示ストリームを受信し、
前記第１の入力ビデオ表示ストリームの少なくとも一部に基づきビデオストリームアセンブリユニットから第１の出力ビデオ表示ストリームを提供し、
前記第１の入力ビデオ表示ストリームの第１ブランキングインターバルと、所定量よりもオーバラップが少ない前記第２の入力ビデオ表示ストリームの第２ブランキングインターバルとを決定し、
前記ビデオストリームアセンブリユニットから前記第１の出力ビデオ表示ストリームを提供することを継続し、
前記ビデオストリームアセンブリユニットに前記第１の出力ビデオ表示ストリームを提供するようにする命令の後に、前記第２の入力ビデオ表示ストリームがブランキングインターバルを入力したかを決定し、
前記第２の入力ビデオ表示ストリームがブランキングインターバルを入力した後に、前記第２の入力ビデオ表示ストリームの少なくとも一部に基づき前記ビデオストリームアセンブリユニットから第２の出力ビデオ表示ストリームを提供する、
ようにさせるためのプログラムを記録したプログラム記憶デバイス。
【請求項１６】
前記１以上のプロセッサに、前記第１及び第２のＧＰＵｓのそれぞれから第１及び第２の入力ビデオ表示ストリームを受信させるようにする命令は、前記１以上のプロセッサに、第１の入力ビデオ表示ストリームのミラーである第２の入力ビデオ表示ストリームを受信させるようにする命令を含む、請求項１５に記載のプログラム記憶デバイス。
【請求項１７】
前記ビデオストリームアセンブリユニットから前記第２の出力ビデオ表示ストリームが提供された後、前記制御ユニットに前記第１のＧＰＵへのパワー供給を減少させるようにする命令を更に含む、請求項１５に記載のプログラム記憶デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザが見ることのできる表示ストリームを１つのレンダリングされた表示ストリームから別のレンダリングされた表示ストリームへシームレスに移行する装置、システム及び方法に係る。
【背景技術】
【０００２】
グラフィック処理ユニット（ＧＰＵ）は、典型的に、パーソナルコンピュータ、ワークステーション、ゲームコンソール、移動コンピューティング装置、例えば、スマートホン、ＰＤＡ、或いは他のハンドヘルドコンピューティング装置又は他のビデオハードウェアのための専用のグラフィックレンダリング装置である。ＧＰＵは、装置のマザーボードに直接一体化することもできるし、或いはＧＰＵは、そのマザーボードに結合された個々のビデオカード内に外部ＧＰＵとして存在することもできる。多くのコンピュータは、一体型ＧＰＵを有し、これは、そのアドイン対照物、即ち外部ＧＰＵよりパワフルではない。例えば、ビデオゲームのための高性能グラフィックを求めているユーザは、多くの場合に、既存の一体型ＧＰＵをもつシステムに外部ＧＰＵを追加する。更に、中央処理ユニット（ＣＰＵ）又はマルチコアＣＰＵのコアのような処理ユニットをイネーブルしてグラフィックをレンダリングすることができる。
【０００３】
外部ＧＰＵを追加すると、一体型ＧＰＵの機能が無効になることがある。或いは、２つ以上のＧＰＵで、表示のための画像をレンダリングするワークロードを分担することができ、即ち２つの同じグラフィックカードがマザーボードに結合されて、マスター／スレーブ構成に設定される。次いで、２つのＧＰＵは、表示のコンテンツを分割するか又は交互のフレームをレンダリングすることでワークロードを分割する。表示のコンテンツを分割するときに、スレーブＧＰＵは、スクリーンの一部分をレンダリングし、それをマスターＧＰＵへ送信する。その間に、マスターＧＰＵは、スクリーンの残り部分をレンダリングし、それをスレーブＧＰＵからのレンダリングされた部分と合成し、その後、それを表示装置へ送信する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
処理パワー及びシステム内のＧＰＵの数が増加するにつれて、電力の需要も増加する。多くのアプリケーションは、外部ＧＰＵの処理パワーを必要としない。更に、ユーザは、例えば、バッテリで装置を動作するときに電力を節約することを望み、そしてエネルギー節約と引き換えに、ある程度のＧＰＵ処理パワーを犠牲にしようとする。以上に鑑み、第１のＧＰＵから第２のＧＰＵへ表示を移行し、第１のＧＰＵを使用しない間にそれにより引き出される電力を減少する装置、システム又は方法を得ることが望まれる。更に、表示をシームレスに且つ表示装置への表示ストリームを実質的に中断せずに移行することが望まれる。
【課題を解決するための手段】
【０００５】
ユーザが見ることのできる表示ストリームを１つのレンダリングされた表示ストリームから別のレンダリングされた表示ストリームへシームレスに移行する方法、装置及びシステムの規範的な実施形態を説明する。１つの実施形態について、ミラービデオ表示ストリームが第１のグラフィック処理ユニット（ＧＰＵ）及び第２のＧＰＵの両方から受け取られ、表示装置へ送られるビデオ表示ストリームは、第１のＧＰＵからのビデオ表示ストリームから、第２のＧＰＵからのビデオ表示ストリームへとスイッチされ、このスイッチングは、第２のＧＰＵのブランキングインターバルと重畳する第１のＧＰＵのブランキングインターバルの間に行われる。
【０００６】
本発明は、同様の要素が同じ参照番号で示された添付図面に一例として示すが、これに限定されるものではない。
【図面の簡単な説明】
【０００７】
【図１】一実施形態によるシームレスな表示移行を遂行することのできる規範的なコンピュータシステムを示す。
【図２】一実施形態により、第１及び第２のグラフィック処理ユニット（ＧＰＵ）と、その一方のＧＰＵから他方のＧＰＵへ表示ストリームをシームレスに移行するためのグラフィックマルチプレクサ（ＧＭＵＸ）とを備えた図１に示す規範的な表示コントローラを示す。
【図３】一実施形態による図２に示す規範的なＧＭＵＸを示す。
【図４】一実施形態による規範的な表示移行方法を示すフローチャートである。
【図５】別の実施形態による規範的な表示移行方法を示すフローチャートである。
【図６】一実施形態により第１のＧＰＵと第２のＧＰＵとの間のスイッチングに含まれ且つそれにより影響される信号を示す規範的なタイミング図である。
【図７】別の実施形態により第１のＧＰＵと第２のＧＰＵとの間のスイッチングに含まれ且つそれにより影響される信号を示す規範的なタイミング図である。
【発明を実施するための形態】
【０００８】
本発明の種々の実施形態及び態様を以下に詳細に説明し、添付図面は、種々の実施形態を示す。以下の説明及び添付図面は、本発明を例示するものに過ぎず、本発明を限定するものではない。本発明の種々の実施形態を完全に理解するために多数の特定の細部について説明する。しかしながら、ある場合には、本発明の実施形態の簡潔な検討をなすために良く知られた細部又は従来の細部は説明しない。
【０００９】
図１は、例えば、図２ないし７を参照して説明するシームレスな表示移行を遂行することのできるデータ処理システムとしても知られた規範的なコンピュータシステム１００を示す。１つの実施形態について、この開示の添付図面に示されて説明される動作、プロセス、モジュール、方法及びシステムは、１つ以上の規範的なコンピュータシステム１００において、コンピュータ実施方法としても知られたインストラクション（例えば、ソフトウェア）のセットとして動作することが意図される。規範的なコンピュータシステム１００は、一般的に、パーソナル又はクライアントコンピュータ、移動装置（例えば、移動セルラー装置、ＰＤＡ、衛星電話、移動ＶｏＩＰ装置）、及びサーバーを代表するものである。又、移動装置は、多くの場合に、通信信号の高周波送受信のためのプロトコルを実行するアンテナ及びマイクロチップも有する。規範的なコンピュータシステム１００は、少なくとも、プロセッサ１０５（例えば、中央処理ユニット（ＣＰＵ）、グラフィック処理ユニット（ＧＰＵ）、マルチコアプロセッサのコア、又はその組み合わせ）と、リードオンリメモリ（ＲＯＭ）１１０と、ランダムアクセスメモリ（ＲＡＭ）１１５と、大量記憶装置１２０（例えば、ハードドライブ）とを備え、これらは、１つ又は複数のバス１２５を経て互いに通信する。
【００１０】
規範的コンピュータシステム１００は、更に、一実施形態を具現化できるところの表示コントローラ１３０も備えている。表示コントローラ１３０は、１つ以上のＧＰＵと、それらの間をスイッチングする手段と、個々のビデオストリームの合成体を生成する手段とを含む。或いは又、表示コントローラ１３０は、コンピュータシステム１００の種々の他のコンポーネントと協働して、一実施形態を具現化することもできる。
【００１１】
又、コンピュータシステム１００は、表示装置１３５（例えば、液晶ディスプレイ（ＬＣＤ）又は陰極線管（ＣＲＴ）又はタッチスクリーン、プラズマディスプレイ、発光ダイオード（ＬＥＤ）、有機発光ダイオード（ＯＬＥＤ）、等）と、Ｉ／Ｏコントローラ１４０と、Ｉ／Ｏ装置１４５（例えば、マウス、キーボード、モデム、ネットワークインターフェイス、ＣＤドライブ、等）とを備えている。ネットワークインターフェイス装置は、移動装置の場合、ワイヤレスネットワーク（例えば、セルラー、Ｗｉ−Ｆｉ、等）に通信するためのワイヤレス装置である。移動装置は、図示されていない１つ以上の信号入力装置（例えば、マイクロホン、カメラ、指紋スキャナ、等）を含む。
【００１２】
記憶ユニット１２０は、１つ以上の方法又は機能を実施する１セット以上のインストラクション（例えば、ソフトウェア）が記憶されたマシン読み取り可能な記憶媒体を含む。又、ソフトウェアは、完全に又は少なくとも一部分は、ＲＡＭ１１５又はＲＯＭ１１０内にあり、及び／又はコンピュータシステム１００によりそれを実行する間にはプロセッサ１０５内にあり、ＲＡＭ１１５、ＲＯＭ１１０及びプロセッサ１０５は、マシン読み取り可能な記憶媒体も構成する。ソフトウェアは、更に、ネットワークインターフェイス装置１４０を経てネットワーク（図示せず）にわたって送信又は受信される。
【００１３】
図２は、第１のＧＰＵ２０５と、第２のＧＰＵ２１０と、表示装置１３５への表示ストリームを一方のＧＰＵから他方のＧＰＵへシームレスに切り換えるためのグラフィックマルチプレクサ（ＧＭＵＸ）２１５とを備えた規範的な表示コントローラ１３０を示す。１つの実施形態について、第１のＧＰＵ２０５及び第２のＧＰＵ２１０は、異なる能力をもつ異なるＧＰＵであり、例えば、一体型ＧＰＵと外部ＧＰＵである。この説明全体を通してＧＰＵとは、専用のグラフィック処理ユニット、中央処理ユニット、マルチコア処理ユニットの１つ以上のコア、或いは表示ストリームをレンダリングするようにイネーブルされる良く知られた他の処理ユニット又はコントローラを含む。簡単化のために、これ以降の説明では、表示ストリームをレンダリングするユニットを集合的にＧＰＵと称する。
【００１４】
一実施形態について、マイクロプロセッサ（ＣＰＵ）１０５は、ソフトウェアアプリケーションと協働して、生の表示データを、アクティブな第１のＧＰＵ２０５へ送信する。第１のＧＰＵ２０５は、ＧＭＵＸ２１５へ通される表示ストリームをレンダリングする。ＧＭＵＸ２１５は、第１のＧＰＵ２０５がアクティブであって第１のＧＰＵ２０５からの出力を表示装置１３５へ通すことを指示する選択及び制御信号を受信する。この選択及び制御信号は、ソフトウェア又はファームウェアのドライバ、ウインドウズサーバー、ＣＰＵ１０５、コンピュータシステム１００内の他のコントローラ、又はその組み合わせから発信される。１つの実施形態では、第１のＧＰＵ２０５及び第２のＧＰＵ２１０の表示ストリームは、低電圧の差動シグナリング（ＬＶＤＳ）表示ストリームである。
【００１５】
動作中に、ＣＰＵ１０５は、第１のＧＰＵ２０５から第２のＧＰＵ２１０へスイッチすべきかどうかの決定を行う。この決定は、例えば、ラップトップのプラグが抜かれて現在バッテリ電力で動作しているか又は他の所定の電力設定で動作しているかといった電源の切り換えの結果である。或いは、この決定は、ソフトウェアスイッチのようなユーザ入力の結果である。更に別の実施形態では、この決定は、ソフトウェアアプリケーションを、特定のＧＰＵに適合しない、又はそれと共に最適に実行されない、又はそれと共に効率的に動作されないと認識した結果である。例えば、特定のアプリケーションの起動は、ＧＰＵスイッチを始動させる。又、この決定は、アクティブなＧＰＵを別の目的に使用する要求の結果でもある。１つの実施形態では、上述した決定の１つ以上又は他の既知の技術の組み合わせの結果としてスイッチが始動される。或いは、アクティブなプログラムが第２のＧＰＵ２１０に適合しないか又はスイッチングに適合しないという認識は、一般的に、スイッチするという前記決定の１つに対抗するか又はその適合しないプログラムが終了するまでスイッチを遅延するように作用してもよい。
【００１６】
１つの実施形態では、第１のＧＰＵ２０５から第２のＧＰＵ２１０へ移行する決定がなされると、第１のＧＰＵ２０５へ送られる生の表示データが第２のＧＰＵ２１０へミラー化される。１つの実施形態では、ＣＰＵ１０５、コントローラ、オペレーティングシステムソフトウェア、又はその組み合わせは、ミラー化された生の表示データを生成する。第１のＧＰＵ２０５及び第２のＧＰＵ２１０は、両方とも、コンピュータシステム１００内でミラー化された生の表示データに基づいて表示ストリームをレンダリングするが、１つのＧＰＵ、例えば、第１のＧＰＵ２０５からの出力のみがＧＭＵＸ２１５を経て表示装置１３５へ送られる。１つの実施形態では、第１のＧＰＵ２０５及び第２のＧＰＵ２１０の各々により発生される出力は、アプリケーション表示データを含むだけではなく、バックライトデータ、出力イネーブル、等（これに限定されない）の全ての表示データも含む。
【００１７】
１つの実施形態では、ＧＭＵＸ２１５は、両表示ストリームがアクティブであって重畳するブランキングインターバル中待機して表示装置１３５への出力を第１のＧＰＵ２０５の出力から第２のＧＰＵ２１０の出力へスイッチする制御信号を受信する。このブランキングインターバル中にスイッチングする実施形態を、図３ないし７を参照して以下に詳細に説明する。
【００１８】
１つの実施形態では、第１のＧＰＵ２０５が第２のＧＰＵ２１０に通信可能に結合される。第１のＧＰＵ２０５及び第２のＧＰＵ２１０は、表示のための画像をレンダリングするというワークロードを分担する。１つの実施形態では、２つのＧＰＵがマスター／スレーブ関係で協働し、スレーブＧＰＵが表示ストリームのレンダリングされた部分をマスターＧＰＵへ転送する。マスターＧＰＵは、表示ストリームの残りをレンダリングし、そしてそれをスレーブＧＰＵのレンダリングされた部分と合成して、その合成出力を表示装置１３５へ送信する。
【００１９】
図３は、図２の規範的なＧＭＵＸ２１５を示す。１つの実施形態では、第１のＧＰＵ２０５及び第２のＧＰＵ２１０からの表示ストリームは、各データクロック捕獲ブロック３０５及び３１０へ入力される。データクロック捕獲ブロック３０５及び３１０は、ＧＰＵ表示ストリームからビデオタイミング信号を抽出し、従って、ＧＭＵＸ２１５は、ＧＰＵ間のスイッチングを同期させることができる。第１のデータクロック及び第２のデータクロックが分離されて、クロックＭＵＸ（マルチプレクサ）３２５へ送信される。
【００２０】
１つの実施形態では、クロックＭＵＸ３２５は、選択信号を受信して、どのデータクロックを表示装置１３５へ通すか決定するためのマルチプレクサである。或いは又、データクロックの１つを選択するように構成できる他の形式の選択回路が使用されてもよい。１つの実施形態では、ＧＭＵＸコントローラ３３５は、クロックＭＵＸ３２５に選択信号を与え、選択されたデータクロックを選択されたデータストリームで整合させる。或いは又、ドライバ、ＣＰＵ１０５、別のコントローラ、又は良く知られた他の技術により、選択信号が発生される。
【００２１】
表示ストリームは、分離されたデータクロックと共に、データバッファ３１５及びデータバッファ３２０へ各々入力される。１つの実施形態では、２つの表示ストリームのブランキングインターバルがデータバッファ３１５及びデータバッファ３２０において比較される。別の実施形態では、ＧＭＵＸコントローラ３３５が第１及び第２のデータストリームに対する各ブランキングインターバルを受け取る。ブランキングインターバルの比較において、ＧＭＵＸコントローラ３３５は、２つの表示ストリーム間にもし重畳があればどの程度のものか決定する。１つの実施形態では、その重畳は、ブランキングインターバルの重畳の間に表示線周期の量で測定される。ＧＭＵＸコントローラ３３５は、ブランキングインターバルの重畳の間に所定量の表示線周期が存在するときにスイッチングを行えることを決定する。１つの実施形態では、ブランキングインターバルは、垂直ブランキングインターバルである。別の実施形態では、ブランキングインターバルは、水平ブランキングインターバルである。他の実施形態では、ブランキングインターバルは、垂直又は水平のいずれかのブランキングインターバルである。データ表示ストリームが充分な量の重畳を伴うブランキングインターバルを有するとＧＭＵＸコントローラ３３５が決定した場合には、ＧＭＵＸコントローラ３３５は、クロックＭＵＸ３２５及びデータＭＵＸ３３０へ選択信号を送信して、ブランキングインターバルの重畳の間に表示装置１３５へ送られる表示ストリームデータを移行させる。
【００２２】
表示装置１３５は、ブランキングインターバル中には、選択された表示ストリームからデータを表示しない。リフレッシュレートとは、表示ハードウェアが、受け取ったデータを描く秒当たりの回数である。例えば、表示装置１３５がゆっくりとしたリフレッシュレートを有する場合には、ブランキングインターバルをスクリーンフリッカとして見ることができる。対照的に、１つの実施形態では、表示装置１３５のリフレッシュレートは、ブランキングインターバルが実際上ユーザに気付かれないような秒当たりの回数、例えば、６０Ｈzで表示ストリームを描く。それ故、ブランキングインターバル中に完了する１つのＧＰＵから別のＧＰＵへの移行は、目に見える表示ストリームに対して中断せずに実行することができる。
【００２３】
重畳するブランキングインターバルが終了し、移行が完了すると、第２のＧＰＵ２１０からの表示ストリームは、ミラー化表示を使用して、第１のＧＰＵ２０５からの表示ストリームをシームレスに続けることができる。１つの実施形態では、ＧＭＵＸコントローラ３３５は、プロセッサ、オペレーティングシステム、ファームウェアコントローラ、ＧＰＵ又は他のハードウェア、或いはＧＰＵのソフトウェアコントローラへ制御信号を送信して、スイッチング成功を指示する。次いで、第１のＧＰＵ２０５へ送られるミラー化生表示データが終了され、第１のＧＰＵ２０５により引き出される電力が減少される。１つの実施形態では、第１のＧＰＵ２０５は、完全に電力が落とされる。
【００２４】
１つの実施形態では、第１のＧＰＵ２０５から第２のＧＰＵ２１０へ移行するプロセスは、第２のＧＰＵ２１０がミラー化表示データのレンダリングを開始した後、第１のＧＰＵ２０５に対して、選択されたブランキングインターバル中に開始する。１つの実施形態では、選択されたブランキングインターバルは、第２のＧＰＵ２１０がミラー化表示データのレンダリングを開始すると、第１のＧＰＵ２０５に対する第１のブランキングインターバルである。第１のＧＰＵ２０５及び第２のＧＰＵ２１０に対するブランキングインターバルがその選択されたブランキングインターバル中に重畳しない場合には、ＧＭＵＸ２１５の出力は、第１のＧＰＵ２０５からの最後のフレームの完了時に、即ちその選択されたブランキングインターバル内に、第２のＧＰＵ２１０がブランキングインターバルに入るまで、保持される。１つの実施形態では、第１のＧＰＵ２０５からの表示ストリームがブランキングインターバル中に保持されるが、これは、ＧＭＵＸ２１５の出力を第１のＧＰＵ２０５の出力の次のフレームから減結合し、そしてその選択されたブランキングインターバル内の表示ストリームアッセンブラー３４０をその選択されたブランキングインターバルより長い時間中受信された通りに保持することにより、行われる。１つの実施形態では、ＧＭＵＸコントローラ３３５が表示ストリームアッセンブラー３４０へ制御信号を送信し、その選択されたブランキングインターバル内に表示装置１３５へ送られる出力表示ストリームを保持する。１つの実施形態では、ＧＭＵＸ２１５の出力が保持されると、第１のＧＰＵ２０５に対する選択されたブランキングインターバル中に第１のＧＰＵ２０５の出力から第２のＧＰＵ２１０へのスイッチングがなされる。別の実施形態では、ＧＭＵＸ２１５の出力が保持されると、選択されたブランキングインターバルと、第２のＧＰＵ２１０がブランキングインターバルに入るときとの間のどこかで第１のＧＰＵの出力から第２のＧＰＵの出力へのスイッチングが完了する。第２のＧＰＵ２１０がブランキングインターバルに入ると、ＧＭＵＸ２１５の出力は、第２のＧＰＵ２１０からの出力に結合される。
【００２５】
表示装置と、重畳を生じさせるに必要な遅延の量とに基づき、表示装置のリフレッシュが遅延されて、表示される画像にある程度のフェードを潜在的に生じさせ、例えば、白に向かうフェード又は黒に向かうフェードを生じさせる。それでも、遅延は、長くても、１フレームを出力するに必要な時間長さとなる。例えば、フレームは、１６ミリ秒ごとにリフレッシュされ、それ故、最も長い遅延で１６ミリ秒となる。それ故、目に見える表示に対して実質的な中断なくスイッチングが行われる。
【００２６】
１つの実施形態では、目に見える表示ストリームに対する実質的な中断が、表示装置の位相固定ループ（ＰＬＬ）のロックが失われることから生じ、ＰＬＬが再ロックするまで表示装置１３５をブランク状態に至らせる。或いは又、目に見える表示ストリームに対する実質的な中断が、フレームの引き裂きから生じ、この場合は、第１のＧＰＵ２０５からの表示ストリーム及び第２のＧＰＵ２１０からの表示ストリームの両方が、合成表示ストリームを整合せずに表示装置１３５へ送られる。目に見える表示ストリームに対する更なる中断は、表示画像の質及びこの技術で知られた他のアーティファクトを低下させることがある。
【００２７】
別の実施形態では、ＧＰＵ間のスイッチングは、表示画像の潜在的なフェージングを含めて、目に見える表示ストリームに対する中断を伴わずに、実行される。ＧＰＵが所定量の時間内に重畳するブランキングインターバルを経験する場合には、ＧＰＵの出力間のスイッチングが、中断を伴わずに又はいずれのＧＰＵの操作も必要とせずに、実行される。或いは又、第１のＧＰＵ２０５及び第２のＧＰＵ２１０のクロックが同様のレート（同一の同期されたレートではない）で動作する場合には、重畳するブランキングインターバルが、生じるべき所定量の時間より長くなることがある。１つの実施形態では、ＧＭＵＸコントローラ３３５が、所定量の時間内に重畳するブランキングインターバルに遭遇しない場合には、ＧＭＵＸコントローラ３３５は、第２のＧＰＵ２１０のクロックレートを変更するための信号を送信する。第２のＧＰＵ２１０へ送られるミラー化生表示データは、一時的に終了され、第２のＧＰＵ２１０のクロックは、新たなレートにリセットされ、生の表示データは、第２のＧＰＵ２１０へ再びミラー化され、そしてＧＭＵＸコントローラ３３５は、所定量の時間が経過する前に重畳のサーチにおいて２つのブランキングインターバルの比較を再開する。
【００２８】
ＧＰＵの移行が要求されたときに、コンピュータシステム１００は、第２のＧＰＵ２１０に適合しないプログラムを実行し、その適合しないプログラムを終了しないと、第２のＧＰＵ２１０への簡単な移行を完了することができない。アプリケーションは、アクティブなＧＰＵ及び１つ以上のインアクティブなＧＰＵがあることに気付く。更に、アプリケーションは、種々のＧＰＵとの適合性を広告するためにシステム１００と通信する。第２のＧＰＵ２１０へのスイッチングに適合するアプリケーションは、第２のＧＰＵ２１０の能力及び対応設定に気付き、それ故、アクティブである間にシームレスにスイッチするよう準備することができる。例えば、アプリケーションは、ＧＰＵ間のスイッチングが行われるときにスクラッチから新たな表示コンテクストを生成する必要がない。これは、描く色、ビューイング及びプロジェクション変換、照明特性、材料プロパティ、等の変数の決定に影響することがある。他方、アプリケーションが第２のＧＰＵ２１０へのスイッチングに適合しない場合には、オペレーティングシステム、ドライバ、ＣＰＵ１０５、別のコントローラ、或いは良く知られた他の技術が、適合しないシステム内のＧＰＵの存在からアプリケーションを遮蔽する。例えば、第１のＧＰＵ２０５に適合するが、第２のＧＰＵ２１０に適合しないアプリケーションは、第１のＧＰＵ２０５しか気付かない。
【００２９】
１つの実施形態では、アクティブなプログラムが第２のＧＰＵ２１０に適合し且つスイッチングを行うことに適合するという決定は、第２のＧＰＵ２１０を付勢し且つスイッチングを開始する前に必要とされる。或いは又、アクティブな、適合しないプログラムに関わらず、スイッチングが行われてもよい。１つの実施形態では、第１のＧＰＵは、完全な表示ストリームをＧＭＵＸ２１５へ送信し続けながら、適合しないプログラムに対するレンダリングされる表示ストリームを第２のＧＰＵへ直接通信する。第２のＧＰＵが付勢され、他の生表示データが両ＧＰＵへミラー化されるが、適合しないプログラムは、第１のＧＰＵ２０５が唯一のレンダリングエンティティであるかのように動作を続ける。第２のＧＰＵ２１０は、第１のＧＰＵ２０５からのレンダリングされたデータと、第２のＧＰＵ２１０によりレンダリングされた表示ストリームの残りとを結合した合成出力を生成する。第２のＧＰＵ２１０は、その合成出力をＧＭＵＸ２１５へ送信する。上述したように、第１のＧＰＵ２０５の表示ストリームから第２のＧＰＵ２１０の表示ストリームへの移行は、重畳するブランキングインターバル中に行われる。ＧＭＵＸコントローラ３３５は、オペレーティングシステム、ファームウェアコントローラ、ＧＰＵ、又はＧＰＵのための他のコントローラへ制御信号を送信して、スイッチング成功を指示する。
【００３０】
１つの実施形態では、スイッチング成功の後に、第１のＧＰＵ２０５へ送られるミラー化生表示データが終了されるが、適合しないプログラムに対する生表示データは、第１のＧＰＵ２０５へ送信され続ける。従って、第１のＧＰＵ２０５は、ＧＭＵＸ２１５への完全な表示ストリームの送信を停止するが、第２のＧＰＵ２１０が、適合しないプログラムに対する表示データをレンダリングするために第１のＧＰＵ２０５に依存するので、アクティブのままとなる。適合しないプログラムが終了すると、第１のＧＰＵ２０５への依存が終了したことが決定される。従って、第１のＧＰＵ２０５により引き出される電力が減少される。
【００３１】
別の実施形態では、第１のＧＰＵ２０５への依存が終了しない場合には、システムは、上述したスイッチングと同様に、第１のＧＰＵ２０５のみへスイッチングして戻る。１つの実施形態では、第１のＧＰＵ２０５へスイッチングして戻るという決定は、第２のＧＰＵ２１０へのスイッチングに続いて所定量の時間が経過するのに応答して行われる。例えば、電力を保存するためにスイッチングが最初に行われた場合には、両ＧＰＵを動作する長い期間は、高い電力のプロセッサのみを動作し続ける以上に電力を消費する。
【００３２】
１つの実施形態では、データＭＵＸ３３０は、どのデータ表示ストリームを表示装置１３５へ通すか決定するために選択信号を受信するマルチプレクサである。或いは、データ表示ストリームの１つを選択するよう構成できる他の形式の選択回路を使用してもよい。１つの実施形態では、ＧＭＵＸコントローラ３３５は、クロックＭＵＸ３２５へ選択信号を与え、選択されたデータクロックを選択されたデータストリームで整合させる。或いは又、選択信号は、ドライバ、ＣＰＵ１０５、別のコントローラ、又は良く知られた他の技術により発生される。
【００３３】
１つの実施形態では、表示ストリームアッセンブラー３４０は、選択されたデータクロック及び選択されたデータストリームを受け取り、それらを単一の表示ストリームへとアッセンブルし、そして選択された表示ストリームを表示装置１３５へ送信する。別の実施形態では、選択されたデータクロック及び選択されたデータストリームは、結合されず、表示装置１３５へ別々に送信される。
【００３４】
図４は、図１ないし３を参照して述べた規範的な表示移行方法を示すフローチャートである。表示装置１３５を第１のＧＰＵ２０５から第２のＧＰＵ２１０へ移行する要求は、ブロック４０５において検出される。１つの実施形態では、この方法は、ブロック４１０において、全てのアクティブなプログラムを第２のＧＰＵ２１０へのスイッチングに適合させることを要求する。全てのアクティブなプログラムが第２のＧＰＵ２１０へのスイッチングに適合しない場合には、この方法は、適合しないプログラムが終了するまで継続しない。或いは又、この方法は、ブロック４１０をスキップしてもよい。ブロック４１５において第２のＧＰＵ２１０がパワーアップされる。ブロック４２０において、生の表示データがミラー化され、第２のＧＰＵ２１０へ送信される。第２のＧＰＵ２１０に適合しないプログラムが実行される場合には、ブロック４２０において、第１のＧＰＵ２０５が、その適合しないプログラムに対するレンダリングされた表示データを第２のＧＰＵ２１０へ送信する。ブロック４２５において、両ＧＰＵが、レンダリングされた表示ストリームを出力すると、表示ストリームを移行するに充分な第１のＧＰＵ２０５に対する選択されたブランキングインターバル中に、２つの表示ストリームが重畳するブランキングインターバルを有するかどうか決定される。１つの実施形態では、選択されたブランキングインターバルは、第２のＧＰＵ２１０がミラー化表示データのレンダリングを開始すると、第１のＧＰＵ２０５に対する第１のブランキングインターバルとなる。
【００３５】
充分な重畳するブランキングインターバルが生じた場合は、ブロック４３０において、選択された表示ストリームが、重畳するブランキングインターバル中にスイッチングされる。スイッチングが成功であると、第１のＧＰＵ２０５への生データの供給がブロック４３５において終了される。第２のＧＰＵ２１０に適合しないプログラムが実行される場合には、適合しないプログラムに関係した生データの供給が、ミラーの終了に関わらず、第１のＧＰＵ２０５へ続けられる。ブロック４４０では、この方法は、適合しないプログラムのために第１のＧＰＵ２０５への依存性が保たれるかどうか決定する。適合しないプログラムが実行されない場合には、第１のＧＰＵ２０５により引き出される電力がブロック４４５において減少される。
【００３６】
１つの実施形態では、適合しないプログラムが実行され、それ故、第１のＧＰＵ２０５への依存性が終了しない場合には、この方法は、ブロック４４５において第１のＧＰＵ２０５への電力を減少する前に、ブロック４５０においてプログラムの終了を待機する。別の実施形態では、この方法は、ブロック４５５において、第１のＧＰＵ２０５への依存性が終了しない場合に、第１のＧＰＵ２０５へ任意にスイッチングして戻る。１つの実施形態では、この方法は、第１のＧＰＵ２０５への依存性が終了しないことを決定し、そして第１のＧＰＵ２０５へスイッチングして戻るために、スイッチング成功後に所定量の時間の経過を待機する。
【００３７】
第１のＧＰＵ２０５に対する選択されたブランキングインターバル内に充分な重畳するブランキングインターバルが生じない場合には、ブロック４５０において第２のＧＰＵがブランキングインターバルに入るまで、ＧＭＵＸ２１５の出力が、第１のＧＰＵ２０５に対する選択されたブランキングインターバルに保持される。次いで、ブロック４３０において、その選択されたブランキングインターバルと第２のＧＰＵ２１０に対するブランキングインターバルとの重畳の間に選択された表示ストリームがスイッチングされ、フローは、上述したように続けられる。
【００３８】
図５は、図１ないし３を参照して述べた別の規範的表示移行方法を示すフローチャートである。第１のＧＰＵ２０５から第２のＧＰＵ２１０へ表示装置１３５を移行する要求がブロック５０５において検出される。１つの実施形態では、この方法は、ブロック５１０において、全てのアクティブなプログラムを第２のＧＰＵ２１０へのスイッチングに適合させることを要求する。全てのアクティブなプログラムが第２のＧＰＵ２１０へのスイッチングに適合しない場合には、この方法は、適合しないプログラムが終了するまで継続しない。或いは又、この方法は、ブロック５１０をスキップしてもよい。ブロック５１５において第２のＧＰＵ２１０がパワーアップされる。ブロック５２０において、生の表示データがミラー化され、第２のＧＰＵ２１０へ送信される。第２のＧＰＵ２１０に適合しないプログラムが実行される場合には、第１のＧＰＵ２０５が、その適合しないプログラムに対するレンダリングされた表示データを第２のＧＰＵ２１０へ送信する。両ＧＰＵが、レンダリングされた表示ストリームを出力すると、ブロック５２５において、所定量の時間が経過する前に表示ストリームを移行するに充分な重畳するブランキングインターバルを２つの表示ストリームが有するかどうか決定される。
【００３９】
充分な重畳するブランキングインターバルが生じた場合は、ブロック５３０において、選択された表示ストリームが、重畳するブランキングインターバル中にスイッチングされる。スイッチングが成功であると、第１のＧＰＵ２０５への生データの供給がブロック５３５において終了される。第２のＧＰＵ２１０に適合しないプログラムが実行される場合には、適合しないプログラムに関係した生データの供給が、ミラーの終了に関わらず、第１のＧＰＵ２０５へ続けられる。ブロック５４０では、この方法は、適合しないプログラムのために第１のＧＰＵ２０５への依存性が保たれるかどうか決定する。適合しないプログラムが実行されない場合には、第１のＧＰＵ２０５により引き出される電力がブロック５４５において減少される。
【００４０】
１つの実施形態では、適合しないプログラムが実行され、それ故、第１のＧＰＵ２０５への依存性が終了しない場合には、この方法は、ブロック５４５において第１のＧＰＵ２０５への電力を減少する前に、ブロック５５０においてプログラムの終了を待機する。別の実施形態では、この方法は、ブロック５５５において、第１のＧＰＵ２０５への依存性が終了しない場合に、第１のＧＰＵ２０５へ任意にスイッチングして戻る。１つの実施形態では、この方法は、第１のＧＰＵ２０５への依存性が終了しないことを決定し、そして第１のＧＰＵ２０５へスイッチングして戻るために、スイッチング成功後に所定量の時間の経過を待機する。
【００４１】
所定量の時間内に充分な重畳するブランキングインターバルが生じない場合には、第２のＧＰＵ２１０への生データの供給がブロック５５０において終了される。ブロック５５５において第２のＧＰＵ２１０のクロックレートが変更され、そしてブロック５２０においてこの方法が再開される。
【００４２】
図６は、一実施形態により第１のＧＰＵと第２のＧＰＵとの間のスイッチングに含まれ且つそれにより影響される信号を示す規範的なタイミング図である。図６は、第１のブランキングインターバル６１０と、第２のブランキングインターバル６２０と、第１のＧＰＵ２０５と第２のＧＰＵ２１０との間をスイッチするためのＧＭＵＸ選択信号６３０との比較を示す。ＧＭＵＸ出力６４０は、スイッチングが完了するまでは第１のブランキングインターバル６１０に関係した出力を反映し、次いで、第２のブランキングインターバル６２０に関連した出力を反映する。この例では、選択されたブランキングインターバルは、両ＧＰＵがミラー化表示ストリームをレンダリングした後に第１のＧＰＵ２０５に対して最初に発生するブランキングインターバルである。ＧＭＵＸ出力６４０は、第２のＧＰＵ２１０がその次のブランキングインターバルに入るまでこのブランキングインターバル内に保持される。１つの実施形態では、ブランキングインターバルの状態の決定がＧＭＵＸコントローラ３３５内で行われる。ＧＭＵＸ選択信号６３０は、例えば、保持されるＧＭＵＸ出力６４０及び第２のＧＰＵ２１０のブランキングインターバル内でいつでも表示ストリームを第１のＧＰＵ２０５から第２のＧＰＵ２１０へスイッチするために論理０から論理１へ変化する。１つの実施形態では、ＧＭＵＸ選択信号７３０がデータＭＵＸ３３０及びクロックＭＵＸ３２５の両方へ送信され、個別のデータ及びクロックストリームをスイッチングする。
【００４３】
図７は、別の実施形態により第１のＧＰＵと第２のＧＰＵとの間のスイッチングに含まれ且つそれにより影響される信号を示す規範的なタイミング図である。図７は、第１のブランキングインターバル７１０と、第２のブランキングインターバル７２０と、ブランキングインターバルの重畳７４０の間に第１のＧＰＵ２０５と第２のＧＰＵ２１０との間をスイッチするためのＧＭＵＸ選択信号７３０との比較を示す。１つの実施形態では、ブランキングインターバルの比較は、ＧＭＵＸコントローラ３３５内で行われる。１つの実施形態では、両ＧＰＵが表示ストリームをレンダリングすると、いつ２つの表示ストリームが第１の表示ストリームから第２の表示ストリームへ表示を移行するに充分な重畳するブランキングインターバル７３０を有するか決定される。重畳するブランキングインターバル７４０の間に、ＧＭＵＸ選択信号７３０は、例えば、表示ストリームを第１のＧＰＵ２０５から第２のＧＰＵ２１０へスイッチするために論理０から論理１へ変更される。ＧＭＵＸ出力７５０は、ＧＭＵＸ選択信号７３０が表示ストリームをスイッチングするまで第１のブランキングインターバル７１０に関する出力を反映する。スイッチングの後に、ＧＭＵＸ出力７５０は、第２のブランキングインターバル７２０に関する出力を反映する。１つの実施形態では、ＧＭＵＸ選択信号７３０がデータＭＵＸ３３０及びクロックＭＵＸ３２５の両方へ送信され、個別のデータ及びクロックストリームをスイッチングする。
【００４４】
以上、特定の実施形態を参照して本発明を詳細に説明した。特許請求の範囲に規定された本発明の精神及び範囲から逸脱せずに種々の変更がなされ得ることが明らかであろう。上述した実施形態の少なくとも幾つかの機能を与えるプログラムコードを記憶するのに製造物品を使用することができる。プログラムコードを記憶する製造物品は、１つ以上のメモリ（例えば、１つ以上のフラッシュメモリ、ランダムアクセスメモリ−スタティック、ダイナミック、その他）、光学的ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気又は光学カード、或いは電子的インストラクションを記憶するのに適した他の形式のマシン読み取り可能な媒体として実施されるが、これに限定されない。更に、本発明の実施形態は、ＦＰＧＡ、ＡＳＩＣ、プロセッサ、コンピュータ、又はネットワークを含むコンピュータシステムを使用して、ハードウェア又はファームウェアで実施されるが、これに限定されない。ハードウェア又はソフトウェア実施のモジュール及びコンポーネントは、本発明の実施形態を著しく変更せずに、分割又は結合することができる。従って、明細書及び添付図面は、これに限定されるものではなく、例示に過ぎない。
【符号の説明】
【００４５】
１０５：マイクロプロセッサ
１１０：ＲＯＭ
１１５：ＲＡＭ
１２０：大量記憶装置
１２５：バス
１３０：表示コントローラ
１３５：表示装置
１４０：Ｉ／Ｏコントローラ
１４５：Ｉ／Ｏ装置
２０５：第１のＧＰＵ
２１０：第２のＧＰＵ
２１５：ＧＭＵＸ
３０５：データクロック捕獲
３１０：データクロック捕獲
３１５：データバッファ
３２０：データバッファ
３２５：クロックＭＵＸ
３３０：データＭＵＸ
３３５：ＧＭＵＸコントローラ
３４０：表示ストリームアッセンブラー
【図１】
0005638666.tif 000002
【図２】
0005638666.tif 000003
【図３】
0005638666.tif 000004
【図４】
0005638666.tif 000005
【図５】
0005638666.tif 000006
【図６】
0005638666.tif 000007
【図７】
0005638666.tif 000008