(57)【特許請求の範囲】
【請求項１】
複数のグラフィックスアダプタの処理システムであって、
第１のディスプレイデバイスと、
第２のディスプレイデバイスと、
画像データを前記第１のディスプレイデバイスに提供するように構成設定された第１のグラフィックスアダプタと、
画像データを前記第１のグラフィックスアダプタを通じて前記第１のディスプレイデバイスに提供するように、又は、画像データを前記第２のディスプレイデバイスに提供するように、構成設定することができる第２のグラフィックスアダプタと、
前記複数のグラフィックスアダプタの処理システムのオペレーティングシステムとのインタフェース処理を行うように、且つ、前記第１のディスプレイデバイス、前記第２のディスプレイデバイス、前記第１のグラフィックスアダプタ、及び、前記第２のグラフィックスアダプタの構成設定を、前記複数のグラフィックスアダプタの処理システムをシャットダウンせずに第１の構成設定から第２の構成設定に変更するように構成設定された、単一のディスプレイドライバとを備え、
前記単一のディスプレイドライバと前記第１のグラフィックスアダプタとの間の第１の通信経路において、介在するディスプレイドライバが存在しておらず、
前記単一のディスプレイドライバと前記第２のグラフィックスアダプタとの間の第２の通信経路において、介在するディスプレイドライバが存在していない、システム。
【請求項２】
前記第２のグラフィックスアダプタが、前記第１の構成設定において前記画像データを前記第１のディスプレイデバイスに提供するように構成設定されており、前記第２の構成設定において前記第１のグラフィックスアダプタと前記第２のグラフィックスアダプタとの間のスケーラブルなリンクインタフェースが使用不可にされる、請求項１に記載のシステム。
【請求項３】
前記第２のグラフィックスアダプタが、前記第１の構成設定において前記画像データを前記第２のディスプレイデバイスに提供するように構成設定されており、前記第２の構成設定において前記第１のグラフィックスアダプタと前記第２のグラフィックスアダプタとの間のスケーラブルなリンクインタフェースが使用可能にされて、前記第２のグラフィックスアダプタが前記画像データを前記第１のグラフィックスアダプタを通じて前記第１のディスプレイデバイスに提供することができる、請求項１に記載のシステム。
【請求項４】
前記ディスプレイドライバが、前記第１の構成設定に対応する状態情報を前記第１のグラフィックスアダプタからアンロードするように、更に構成されている、請求項１に記載のシステム。
【請求項５】
前記ディスプレイドライバが、前記第２の構成設定に対応する状態情報を前記第１のグラフィックスアダプタにロードするように、更に構成されている、請求項１に記載のシステム。
【請求項６】
前記第１のグラフィックスアダプタが、画像データを前記第２のディスプレイデバイスに提供するように構成設定されている、請求項１に記載のシステム。
【請求項７】
前記第２の構成設定の指定をユーザから受け取るように構成されている制御パネル、
を更に備えている、請求項１に記載のシステム。
【請求項８】
前記ディスプレイドライバが、前記複数のグラフィックスアダプタの処理システムにメモリリークが存在しているかを判定するように構成されている、請求項１に記載のシステム。
【発明の詳細な説明】
【発明の分野】
【０００１】
[0001]本発明の実施形態は、グラフィックスディスプレイデバイスを構成設定することに関し、より詳細には、複数のグラフィックスアダプタがシステムにインストールされているときにディスプレイデバイスを構成設定することに関する。
【関連技術の説明】
【０００２】
[0002]一又は複数のグラフィックスアダプタを含んでいる従来のグラフィックス処理システムでは、アダプタ／ディスプレイの異なる構成設定となるようにグラフィックスアダプタを再構成設定するためには、一般にはシステムを再起動する必要がある。例えば、ホストコンピュータを再起動して、アダプタ／ディスプレイの第１の構成設定として、第１のグラフィックスアダプタが第１のディスプレイへの出力を提供し、且つ第２のグラフィックスアダプタが第２のディスプレイへの出力を提供する構成設定から、アダプタ／ディスプレイの第２の構成設定として、第１のグラフィックスアダプタ及び第２のグラフィックスアダプタが、第１のディスプレイへの出力を提供するように構成設定されており、且つ、第１のグラフィックスアダプタ又は第２のグラフィックスアダプタのいずれかが、第２のディスプレイへの出力を提供するように設定された構成設定に変更する。１つのディスプレイへの複雑な画像を高いパフォーマンスで生成するためには、１つのグラフィックスアダプタを使用して複雑な画像を生成するよりも、２つのグラフィックスアダプタを使用して１つのディスプレイへの出力を提供する方が望ましい。
【０００３】
[0003]ホストコンピュータ上で実行されているオペレーティングシステム（ＯＳ）と、第１のグラフィックスデバイス及び第２のデバイスとの間のインタフェース処理を、１つのディスプレイドライバを使用して行うことができる。或いは、ホストコンピュータ上で実行されているオペレーティングシステム（ＯＳ）と、グラフィックスデバイスのそれぞれとの間のインタフェース処理を、個別のディスプレイドライバを使用して行うことができる。アダプタ／ディスプレイの構成設定を変更するようにユーザが要求すると、ＯＳは、グラフィックスデバイス及びディスプレイを再構成設定するためにシャットダウンを開始する。グラフィックスデバイス及びディスプレイが再構成設定された後、ＯＳはシステムを再起動する。システムが再起動されるときには、ＯＳは、すべてのアプリケーション及び（一又は複数の）ディスプレイドライバをシャットダウンさせ、それらアプリケーション及び（一又は複数の）ディスプレイドライバを再起動する。再起動は、完了するまでに多くのクロックサイクルを必要とし、一般にはユーザはこれを避けたがる。
【０００４】
[0004]従って、システムを再起動することなしにユーザがアダプタ／ディスプレイの構成設定を変更できるようにすることが望まれている。
【発明の概要】
【０００５】
[0005]本発明は、アダプタ／ディスプレイの構成設定を動的に変更する新規のシステム及び方法に関する。一又は複数のグラフィックスアダプタと一又は複数のディスプレイとの構成設定が、システムを再起動させることなく実行され、ユーザは、グラフィックスアダプタ／ディスプレイの異なる構成設定の間で迅速に移行することができる。１つのディスプレイドライバが、オペレーティングシステムと一又は複数のグラフィックスアダプタとの間のインタフェース処理を行うことができる。ディスプレイドライバは、一又は複数のグラフィックスアダプタを再構成設定して、システムをシャットダウンさせることなくアダプタ／ディスプレイの構成設定を変更する。オペレーティングシステムによって実行される従来のシステムシャットダウンとは異なり、ディスプレイドライバは、再構成設定するときにメモリリーク或いはエラー条件が存在していないことを調べる。
【０００６】
[0006]本発明の様々な実施形態は、第１のディスプレイデバイスと、第２のディスプレイデバイスと、第１のディスプレイデバイスに画像データを提供するように構成設定されている第１のグラフィックスアダプタと、第２のグラフィックスアダプタと、ディスプレイドライバと、を含んでいる。第２のグラフィックスアダプタは、画像データを第１のグラフィックスアダプタを通じて第１のディスプレイデバイスに提供するように、又は、画像データを第２のディスプレイデバイスに提供するように、構成設定することができる。ディスプレイドライバは、第１のディスプレイデバイスと、第２のディスプレイデバイスと、第１のグラフィックスアダプタと、第２のグラフィックスアダプタとの構成設定を、複数のグラフィックスアダプタの処理システムをシャットダウンすることなしに、第１の構成設定から第２の構成設定に変更するように構成されている。
【０００７】
[0007]複数のグラフィックスアダプタの処理システムの構成設定を変更する、本発明の方法の様々な実施形態は、構成設定の指定によって、複数のグラフィックスアダプタの処理システムにおける第１のグラフィックスアダプタと第２のグラフィックスアダプタとの間のスケーラブルなリンクインタフェース（ｓｃａｌａｂｌｅ  ｌｉｎｋ  ｉｎｔｅｒｆａｃｅ）が使用可能にされるか又は使用不可にされるかを判定するステップと、複数のグラフィックスアダプタの処理システムをシャットダウンすることなしに、第１のグラフィックスアダプタと第２のグラフィックスアダプタの第１の構成設定から、第１のグラフィックスアダプタと第２のグラフィックスアダプタの第２の構成設定に変更するステップとを含んでおり、第２の構成設定は構成設定の指定によって定義されている。
【０００８】
[0008]上に記載した本発明の特徴を詳しく理解することができるように、以下では、上に簡潔に要約した本発明について、実施形態を参照しながら具体的に説明する。実施形態のいくつかは添付の図面に示してある。しかしながら、添付の図面は本発明の代表的な実施形態のみを示しており、従って、本発明の範囲を制限するようにはみなされないものとし、同等の効果を有する別の実施形態は本発明に含まれる。
【詳細な説明】
【０００９】
[0015]以下の説明では、本発明をより完全に理解できるように数多くの具体的な詳細を記載してある。しかしながら、これらの具体的な詳細の１つ以上を使用せずに本発明を実施できることが、当業者には明らかであろう。別の例においては、本発明が曖昧になることを避けるため、周知の特徴については説明していない。
【００１０】
[0016]一又は複数のグラフィックスアダプタと一又は複数のディスプレイの構成設定を、システムを再起動することなしに変更するシステム及び方法では、ユーザは、グラフィックスアダプタ／ディスプレイの異なる構成設定の間で迅速に移行することができる。１つのディスプレイドライバが、オペレーティングシステムと一又は複数のグラフィックスアダプタとの間のインタフェース処理を行う。従って、ディスプレイドライバとグラフィックスアダプタとが一対一に対応していることのある従来のシステムとは異なり、アプリケーションプログラムは、複数のグラフィックスアダプタに処理を分散させるために複数のディスプレイドライバと通信する必要がない。更に、統合されたフレームバッファが複数のグラフィックスアダプタの間で分散されているとき、その統合されたフレームバッファをアプリケーションプログラムに提供することができる。ディスプレイドライバは、一又は複数のグラフィックスアダプタを再構成設定して、システムをシャットダウン又は再起動することなくアダプタ／ディスプレイの構成設定を変更する。オペレーティングシステムによって実行される従来のシステム再起動とは異なり、ディスプレイドライバは、再構成設定するときにメモリリーク或いはエラー条件が存在していないことを調べる。メモリリークとは、当業者に知られているように、割り当てられたがもはや必要ではないメモリが正しく解放されていない状態である。新しいメモリが割り当てられるときに解放されないメモリが「リーク」であり、最終的にはこの状態に起因して「メモリ不足」エラー若しくはシステムクラッシュ、又はその両方が起こることがある。
【００１１】
[0017]図１Ａは、本発明の一又は複数の側面による、複数のグラフィックスデバイスを含んでいるグラフィックス処理システム１００の例示的な実施形態である。システム１００は、デスクトップコンピュータ、サーバ、ラップトップコンピュータ、パームトップコンピュータ、タブレットコンピュータ、ゲームコンソール、携帯電話、ハンドヘルドデバイス、コンピュータベースのシミュレータなどとすることができる。システム１００は、ホストプロセッサ１２０と、メインメモリ１１０と、グラフィックスサブシステム１８０に直接結合されているチップセット１３０と、を含んでいる。グラフィックスサブシステム１８０は、スイッチ１６０と、複数のグラフィックスデバイス（グラフィックスアダプタ１６４及びグラフィックスアダプタ１６５）とを備えている。
【００１２】
[0018]メインメモリ１１０に格納されている１つのディスプレイドライバ（ディスプレイドライバ１０５）は、グラフィックスサブシステム１８０の中のデバイスを構成設定し、ホストプロセッサ１２０によって実行されているアプリケーションと、グラフィックスアダプタ１６５及び１６４とを通信させる。Ｗｉｎｄｏｗｓ（登録商標）ＯＳを実行中の従来のグラフィックス処理システムにおいては、２つのディスプレイドライバ（システムにインストールされているグラフィックスアダプタのそれぞれに１つ）が使用される。
【００１３】
[0019]システム１００のいくつかの実施形態においては、チップセット１３０は、システムメモリスイッチ及び入力／出力（Ｉ／Ｏ）スイッチを含むことができ、これらのスイッチは、いくつかのインタフェース（例：ＡＴＡ（Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）バス、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｆａｃｅ））を含むことができる。スイッチ１６０は、スイッチ１６０の第１のポート及び第２のポートがそれぞれ接続１５１及び接続１４１に結合されているときに、チップセット１３０と、グラフィックスアダプタ１６５及びグラフィックスアダプタ１６４のそれぞれとの間のインタフェースを提供する。スイッチ１６０のいくつかの形態においては、スイッチ１６０は、接続１５１及び接続１４１の組合せを通じて、グラフィックスアダプタ１６５とグラフィックスアダプタ１６４との間の間接的なインタフェースを提供する。接続１６７は、グラフィックスアダプタ１６５とグラフィックスアダプタ１６４との間の直接的な接続を提供する。本発明のいくつかの実施形態においては、接続１６７が省かれている。スイッチ１６０は、別のデバイスとのインタフェースを含んでもよい。
【００１４】
[0020]本発明のいくつかの実施形態においては、スイッチ１６０によって提供される機能がチップセット１３０に統合されており、チップセット１３０が複数のグラフィックスアダプタとのインタフェース処理を直接的に行う。本発明のいくつかの実施形態においては、接続１４１及び接続１５１を通じての伝送は、業界標準のプロトコル（例：ＰＣＩ−ＥｘｐｒｅｓｓTM）を使用して行われ、そのような場合、スイッチ１６０、グラフィックスアダプタ１６５、及びグラフィックスアダプタ１６４のそれぞれは、その業界標準プロトコルに対応するインタフェースユニットを含む。
【００１５】
[0021]図１Ａに示すように、グラフィックスアダプタ１６４の中の一次グラフィックスプロセッサ１４０は、画像データをディスプレイ１７０に出力するように構成設定されている。ディスプレイ１７０は、一又は複数のディスプレイデバイス（例：陰極線管（ＣＲＴ）、フラットパネルディスプレイ）を含むようにできる。グラフィックスアダプタ１６４の中の一次グラフィックスプロセッサ１４０は、一次フレームバッファ１４５にも結合されており、このバッファ１４５は、グラフィックスデータ、画像データ、及びプログラム命令を格納するために使用することができる。グラフィックスアダプタ１６５の中のグラフィックスプロセッサ１５０はフレームバッファ１５５に結合されており、このバッファ１５５も、グラフィックスデータ、画像データ、及びプログラム命令を格納するために使用することができる。本発明のいくつかの実施形態においては、グラフィックスアダプタ１６４は、２つ以上のグラフィックスプロセッサを有している。グラフィックスアダプタ１６４とグラフィックスアダプタ１６５のそれぞれが画像データを２つ以上のディスプレイに提供可能にすることができる。図１Ａに示すように、グラフィックスプロセッサ１５０は、画像データを一次グラフィックスプロセッサ１４０を介してディスプレイ１７０に出力するように構成設定されている。
【００１６】
[0022]マルチアダプタの構成設定の一例はＳＬＩ（スケーラブル・リンク・インターフェース：Ｓｃａｌａｂｌｅ  ｌｉｎｋ  ｉｎｔｅｒｆａｃｅ）構成設定であり、この構成設定では、複数のグラフィックスデバイスが１つのディスプレイデバイスへの画像データを生成及び合成することができる。ＳＬＩ構成設定の機能は、スイッチ１６０又は接続１６７を介して提供される。グラフィックスサブシステム１８０に追加のグラフィックスアダプタを含め、グラフィックスプロセッサ１５０に結合されているチェーンにおいて互いに結合することができ、これにより、ＳＬＩ構成設定の特徴であるスケーラブル性が提供される。
【００１７】
[0023]本発明のいくつかの実施形態においては、マルチアダプタの構成設定は、システム１００の製造時に固定されている。例えば、各グラフィックスプロセッサへハードワイヤード入力を提供することによって、マルチアダプタの構成設定の情報を固定することができる。本発明の別の実施形態においては、マルチアダプタの構成設定の情報は動的であり、システム１００に第２又は追加のグラフィックスアダプタがインストールされたときに更新される、又は、ユーザによって制御パネルを通じて変更することができる。マルチアダプタの構成設定の情報は、複数のグラフィックスデバイスのうちの１つ（例：グラフィックスアダプタ１６４）が、ディスプレイ１７０への出力を生成する一次（例：マスター）グラフィックスデバイスであることの指示情報を含むようにできる。
【００１８】
[0024]ディスプレイドライバ１０５は、システム１００によって実行されるグラフィックス処理の負荷がグラフィックスプロセッサ１５０と一次グラフィックスプロセッサ１４０との間で分割されて画像データが生成されるように、グラフィックスプロセッサ１５０と一次グラフィックスプロセッサ１４０とを構成設定することができる。例えば、グラフィックスプロセッサ１５０は、一次グラフィックスプロセッサ１４０よりも画像の大きな部分を処理することができる。本発明のいくつかの実施形態においては、グラフィックスプロセッサ１５０が画像全体を処理し、一次グラフィックスプロセッサ１４０が、その画像データをＳＬＩを介してグラフィックスプロセッサ１５０から受信するようにできる。本発明の別の実施形態においては、ホストプロセッサ１２０が、グラフィックスプロセッサ１５０から一次グラフィックスプロセッサ１４０への画像データの伝送を制御する。
【００１９】
[0025]図示したシステム１００はグラフィックス処理システムであるが、システム１００の代替実施形態では、別のタイプのデータ（例：音声データ、マルチメディアデータ）を処理することができる。そのような代替実施形態においては、グラフィックスプロセッサ１５０及び一次グラフィックスプロセッサ１４０が別の適切なデータ処理デバイスに置き換えられる。同様に、ディスプレイドライバ１０５は、データ処理デバイスに対応するデバイスドライバに置き換えられる。
【００２０】
[0026]図１Ｂは、本発明の一又は複数の側面による、図１Ａの複数のグラフィックスアダプタの処理システムの別の構成設定のブロック図である。図１Ｂに示したように、一次グラフィックスプロセッサ１４０は、画像データをディスプレイ１７０に提供するように構成設定されており、グラフィックスプロセッサ１５０は、画像データを接続１６８を通じて第２のディスプレイデバイス（ディスプレイ１７２）に提供するように構成設定されている。接続１６７（図１Ａを参照）を保持することができるが、図１Ｂに示した構成設定ではＳＬＩ接続を示していない。ディスプレイドライバ１０５は、画像データが一次グラフィックスプロセッサ１４０を介してディスプレイ１７０に提供されるのではなく、ディスプレイ１７２に直接提供されるように、グラフィックスプロセッサ１５０を再構成設定することができる。
【００２１】
[0027]図１Ａに示したアダプタ／ディスプレイの構成設定は、ディスプレイ１７０に表示する複雑な画像又は高画質の画像を生成するために使用することができる。図１Ｂに示したアダプタ／ディスプレイの構成設定は、ディスプレイ１７０及びディスプレイ１７２に表示する低画質の画像を生成するために使用することができる。ユーザは、ゲームで遊ぶときには図１Ａに示した構成設定を選択し、インターネットサーフィンをしたりテキスト編集作業を行うときに、図１Ｂに示した構成設定に変更することができる。構成設定の変更は、ディスプレイ１７２が接続１６８を介してグラフィックスアダプタ１６５に接続されたとき、又は、ユーザが構成設定の変更を制御パネルを使用して指定することによって、開始するようにできる。システム１００の別の構成設定においては、グラフィックスアダプタ１６５を省くことができ、ディスプレイドライバ１０５は、グラフィックスアダプタ１６５がスイッチ１６０と一次グラフィックスプロセッサ１４０とに接続されたときに、図１Ａに示した構成設定への変更を開始することができる。
【００２２】
[0028]図１Ｃは、本発明の一又は複数の側面による、図１Ａの複数のグラフィックスアダプタの処理システムの更に別の構成設定のブロック図である。図１Ｃに示すように、一次グラフィックスプロセッサ１４０は、画像データを、接続１６９を通じてディスプレイ１７２とディスプレイ１７０とに提供するように構成設定されている。グラフィックスプロセッサ１５０は、接続１６７によって提供されているＳＬＩ接続を通じて画像データをディスプレイ１７０に提供するように構成設定されている。図１Ｃに示したアダプタ／ディスプレイの構成設定から、図１Ｂに示したアダプタ／ディスプレイの構成設定への変更は、ディスプレイ１７２が接続１６９を介してグラフィックスアダプタ１６４に接続されたとき、又は、ユーザが構成設定の変更を制御パネルを使用して指定することによって、開始することができる。或いは、グラフィックスアダプタ１６４が画像データをディスプレイ１７０及び１７２に提供するアダプタ／ディスプレイの構成設定から、図１Ｃに示したアダプタ／ディスプレイの構成設定への変更は、接続１６７が追加されてグラフィックスアダプタ１６５とグラフィックスアダプタ１６４との間のＳＬＩ接続が提供されたときに開始するようにしてもよい。同様に、図１Ｃに示したアダプタ／ディスプレイの構成設定への変更は、グラフィックスアダプタ１６５がスイッチ１６０と一次グラフィックスプロセッサ１４０とに接続されたときに開始するようにしてもよい。
【００２３】
[0029]図２は、本発明の一又は複数の側面による、制御パネル２０５と、ディスプレイドライバ２１０と、グラフィックスサブシステム１８０との間の通信を示している概念図の例示的な実施形態である。ディスプレイドライバは、構成設定の指定を制御パネル２０５又はグラフィックスサブシステム１８０から受信することができる。構成設定の指定は、複数のグラフィックスアダプタのシステムにおいて各ディスプレイへの画像データを（一又は複数の）どのグラフィックスアダプタが提供するのかを定義し、更に、一又は複数のＳＬＩ接続が使用可能であるか否かなども定義している。ユーザは、アダプタ／ディスプレイの現在の構成設定を制御パネル２０５を使用して表示させて、アダプタ／ディスプレイの他の構成設定にするために変更を指定することができる。或いは、ディスプレイデバイス、グラフィックスアダプタ、又はＳＬＩ接続を追加又は削除することによって、アダプタ／ディスプレイの構成設定の変更を開始するようにしてもよい。結果としてのアダプタ／ディスプレイの構成設定の指定は、複数のグラフィックスアダプタのシステムの物理的な変更によって定義される。
【００２４】
[0030]ディスプレイドライバ２１０は、図３Ａ、図３Ｂ、及び図３Ｃに基づいて説明するように、破棄（ｔｅａｒｄｏｗｎ）手順及び再構築手順を完了することによって、構成設定の指定に従ってシステム１００を再構成設定する。ディスプレイドライバ２１０は、ミニポート２１５とリソースマネージャ２２０とを含む。リソースマネージャ２２０は、ＧＰＵマネージャ２２５を含んでおり、破棄手順及び再構築手順を実行する。ミニポート２１５は、当業者には、オペレーティングシステム（ＯＳ）にリンクされているグラフィックスサブシステム１８０に固有なカーネルモードドライバとして知られている。ＧＰＵマネージャ２２５は、ディスプレイドライバ２１０の一部であり、作成／初期化／インスタンス化の管理、トポロジの管理、問合せの管理、リンク／アンリンクの管理、状態管理、グラフィックスサブシステム１８０に関連する破棄／取外しの管理を専用に行う（ただしこれらに限定されない）。ＧＰＵマネージャ２２５は、リソースに関する中央の一連の機能を提供し、グラフィックスサブシステム１８０と通信するためのコヘッシブインタフェース（ｃｏｈｅｓｉｖｅ  ｉｎｔｅｒｆａｃｅ）を提供する。
【００２５】
[0031]図３Ａは、本発明の一又は複数の側面による、アダプタ／ディスプレイの構成設定を動的に変更する方法の例示的な実施形態である。ステップ３００において、制御パネル２０５は、アダプタ／ディスプレイの構成設定の指定を受ける。前述したように、制御パネル２０５は、アダプタ／ディスプレイの望ましい構成設定を定義しているユーザ入力を受け取るように構成されており、ユーザ入力に応答して構成設定の指定を生成することができる。或いは、構成設定の指定は、複数のグラフィックスアダプタのシステムにおける物理的接続の変更（例：グラフィックスアダプタのインストール、グラフィックスアダプタの取外し、ディスプレイデバイスのインストール、ディスプレイデバイスの取外し、ＳＬＩ接続の追加、ＳＬＩ接続の取外し）の結果として、グラフィックスアダプタによって生成される。
【００２６】
[0032]ステップ３０２において、制御パネル２０５は、アダプタ／ディスプレイの構成設定の指定を実施するために再構成設定されるリソース（例：グラフィックスアダプタ、ディスプレイデバイス）への依存性が存在しているかを判定する。制御パネル２０５は、ステップ３０２において依存性が存在しないと判定すると、ステップ３０６に直接進む。そうでない場合、制御パネル２０５は、ステップ３０４において、そのリソースに依存しているアプリケーションをシャットダウンする。ステップ３０６において、制御パネル２０５は、アダプタ／ディスプレイの再構成設定を開始するようにディスプレイドライバ２１０にメッセージを送る。
【００２７】
[0033]ステップ３０８において、ディスプレイドライバ２１０は、アダプタ／ディスプレイの構成設定の指定によって定義されている変更を実施するため、リソースマネージャ２２０を呼び出す。ステップ３１０において、リソースマネージャ２２０は、構成設定の指定によってＳＬＩ接続が使用可能又は使用不可にされるかを判定し、ＳＬＩ接続が使用可能にされる場合、ステップ３１２において、リソースマネージャ２２０は、ＳＬＩが使用可能であるように再構成設定する。ステップ３１０において、構成設定の指定によってＳＬＩ接続が使用不可にされると判定される場合、ステップ３１４において、リソースマネージャ２２０は、ＳＬＩが使用不可であるように再構成設定する。ステップ３１２及びステップ３１４については、それぞれ、図３Ｂ及び図３Ｃに関連して説明する。
【００２８】
[0034]ステップ３１６において、リソースマネージャ２２０は、制御をディスプレイドライバ２１０に戻す。ステップ３１８において、ディスプレイドライバ２１０は、ステップ３０４においてシャットダウンされたアプリケーションを再起動し、制御をデスクトップに戻す。その後、ユーザは、アダプタ／ディスプレイの異なる構成設定とするための変更を指定することができ、又は、ディスプレイデバイス、グラフィックスアダプタ、又はＳＬＩ接続を追加するか又は取り外すことによって変更を開始することができる。この再構成設定は、システム１００をシャットダウンさせることなしに完了し、ＯＳによって開始される必要がないことに留意されたい。従って、ユーザは、システム１００を再起動することなく、ＳＬＩが使用可能である構成設定と、使用不可である構成設定との間で移行することができる。
【００２９】
[0035]図３Ｂは、本発明の一又は複数の側面による、図３Ａに示したステップ３１２を実行する方法の例示的な実施形態である。ステップ３２０において、リソースマネージャ２２０は、リソースの解放状態を調べ、リソースが解放されている、すなわち依存性が存在しないことを確認する。ステップ３２２、ステップ３２４、及びステップ３２６において、リソースマネージャ２２０は、複数のグラフィックスアダプタのシステムにおけるグラフィックスアダプタのトポロジを更新する。具体的には、ステップ３２２において、リソースマネージャ２２０は、ＤＭＡ（ｄｉｒｅｃｔ  ｍｅｍｏｒｙ  ａｃｃｅｓｓ）情報を調べて、ＤＭＡリソースが解放されていることを確認する。ステップ３２４において、リソースマネージャ２２０は、ＨＥＡＰ情報を調べて、メモリリークが存在しているかを判定する。本発明のいくつかの実施形態においては、ドライバ１１３はデバッギング機能を含んでおり、リソースマネージャ２２０が例外を発生させ、ドライバ１１３が、メモリリークが起きたことを示す警告メッセージを提示する。ステップ３２６において、リソースマネージャ２２０は、ＣＬＩＥＮＴ情報を調べて、ＣＬＩＥＮＴリソースが解放されていることを確認する。
【００３０】
[0036]ステップ３２８、ステップ３３０、及びステップ３３２において、リソースマネージャ２２０は、システム１００のアダプタ／ディスプレイの構成設定を変更する。具体的には、ステップ３２８において、リソースマネージャ２２０は、構成設定の指定に従って、グラフィックスアダプタ１６４及び１６５におけるＳＬＩ属性を有効にする。ステップ３３０において、リソースマネージャ２２０は、ＳＬＩからの、及びＳＬＩへの実際の移行中に割込み処理が起こることがないように、割込みを無効にする。ステップ３３２において、リソースマネージャ２２０は、ＩＳＲ（割込みサービスルーチン：Ｉｎｔｅｒｒｕｐｔ  Ｓｅｒｖｉｃｅ  Ｒｏｕｔｉｎｅ）を再マッピングする。
【００３１】
[0037]ステップ３３４、ステップ３３６、及びステップ３３８において、リソースマネージャ２２０は、グラフィックスアダプタ１６４及び１６５の状態情報を再ロードする。具体的には、ステップ３３４において、リソースマネージャ２２０は、グラフィックスアダプタ１６４及び１６５とディスプレイデバイス（例：ディスプレイ１７０、ディスプレイ１７２）のトポロジを更新する。ＳＬＩを使用可能にするときには、ステップ３３４において、リソースマネージャ２２０は、グラフィックスプロセッサ１５０と一次グラフィックスプロセッサ１４０とを初期化し、状態情報を再ロードする。具体的には、ステップ３３４において、リソースマネージャ２２０は、ＢＣデバイスをアタッチ及び作成してＳＬＩ接続を使用可能にする。ステップ３３６において、リソースマネージャ２２０は、ロバストチャネル（ＲＣ）ワッチドッグ（ｒｏｂｕｓｔ  ｃｈａｎｎｅｌｓ  （ＲＣ）  ｗａｔｃｈｄｏｇ）を有効にする。ＲＣワッチドッグは、グラフィックスプロセッサ１５０又は一次グラフィックスプロセッサ１４０が重大なエラー状態にあるかを調べるスレッドである。グラフィックスプロセッサ１５０又は一次グラフィックスプロセッサ１４０が重大なエラー状態にあるとき、ＲＣワッチドッグはＲＣを起動して、エラーからの回復を試行することができる。ステップ３３８において、リソースマネージャ２２０は、デフォルトのビッドリンクルーティング（ｖｉｄｌｉｎｋ  ｒｏｕｔｉｎｇ）を確立する。ビッドリンクとは、複数のグラフィックスプロセッサ（例：グラフィックスプロセッサ１５０及び一次グラフィックスプロセッサ１４０）から出力される出力データを、ディスプレイ１７０に最終的に表示できるように合成するための、デバイスの間の物理的リンクである。
【００３２】
[0038]図３Ｃは、本発明の一又は複数の側面による、図３Ａに示したステップ３１４を実行する方法の例示的な実施形態である。ステップ３４０において、リソースマネージャ２２０は、リソースの解放状態を調べる。ステップ３４２、ステップ３４４、及びステップ３４６において、リソースマネージャ２２０は、それぞれ、図３Ｂのステップ３２２、ステップ３２４、及びステップ３２６に関連して説明したように、複数のグラフィックスアダプタのシステムにおけるグラフィックスアダプタのトポロジを更新する。ステップ３４８、ステップ３５０、及びステップ３５２において、リソースマネージャ２２０は、システム１００のアダプタ／ディスプレイの構成設定を変更する。具体的には、ステップ３４８において、リソースマネージャ２２０は、構成設定の指定に従って、グラフィックスアダプタ１６４及び１６５におけるＳＬＩ接続を使用不可にする。
【００３３】
[0039]ステップ３５０において、リソースマネージャ２２０は、グラフィックスアダプタ１６４及び１６５の状態情報を再ロードし、ＢＣデバイスを取り外し及び破棄してＳＬＩ接続を使用不可にする。ステップ３５２において、リソースマネージャ２２０は、割込みを無効にする。ステップ３５４において、リソースマネージャ２２０は、ＩＳＲを再マッピングする。ステップ３５６において、リソースマネージャ２２０は、ＲＣワッチドッグを無効にする。ステップ３５８において、リソースマネージャ２２０は、デフォルトのビッドリンクルーティングを削除する。当業者であれば、図３Ａ、図３Ｂ、又は図３Ｃの方法ステップ、或いは同等の方法ステップを実行するように構成されているいかなるシステムも、本発明の範囲内であることが理解することができる。
【００３４】
[0040]一又は複数のグラフィックスアダプタの構成設定を、システムを再起動することなしに変更するシステム及び方法では、ユーザは、グラフィックスアダプタ／ディスプレイの異なる構成設定の間で迅速に移行することができる。１つのディスプレイドライバが、オペレーティングシステムと一又は複数のグラフィックスアダプタとの間のインタフェース処理を行う。ディスプレイドライバは、一又は複数のグラフィックスアダプタを再構成設定して、システムをシャットダウン或いは再起動することなくアダプタ／ディスプレイの構成設定を変更する。オペレーティングシステムによって実行される従来のシステム再起動とは異なり、ディスプレイドライバは、再構成設定するときにメモリリークやエラー条件が存在していないことを調べる。次いで、ディスプレイドライバは、一又は複数のグラフィックスアダプタからの状態情報をアンロードし、変更された構成設定による状態情報を再ロードする。
【００３５】
[0041]以上、本発明の実施形態について説明したが、本発明の更なる別の実施形態を、本発明の基本的な範囲から逸脱することなしに創案することができ、本発明の範囲は、特許請求の範囲によって定義される。具体的には、説明した方法及びシステムを、グラフィックス以外のデータの処理（データがマルチ処理データ処理システムにおけるプロセッサによって使用される）に使用できることが、当業者は理解するであろう。従って、上の説明及び図面は、本発明を制限するものではなく説明を目的とするものであるとみなされたい。方法の請求項におけるステップのリストは、その請求項に明示的に記していない限りは、ステップを特定の順序で実行することを意味するものではない。
【００３６】
[0042]すべての商標は、それぞれの所有者に所有権が帰属する。
【図面の簡単な説明】
【００３７】
【図１Ａ】本発明の一又は複数の側面による、複数のグラフィックスアダプタの処理システムの例示的な実施形態のブロック図である。
【図１Ｂ】本発明の一又は複数の側面による、図１Ａの複数のグラフィックスアダプタの処理システムの別の構成設定のブロック図である。
【図１Ｃ】本発明の一又は複数の側面による、図１Ａの複数のグラフィックスアダプタの処理システムの別の構成設定のブロック図である。
【図２】本発明の一又は複数の側面による、制御パネルと、ディスプレイドライバと、グラフィックスサブシステムとの間の通信を示している概念図である。
【図３Ａ】本発明の一又は複数の側面による、アダプタ／ディスプレイの構成設定を動的に変更する方法の例示的な実施形態である。
【図３Ｂ】本発明の一又は複数の側面による、図３Ａに示したステップ３１２を実行する方法の例示的な実施形態である。
【図３Ｃ】本発明の一又は複数の側面による、図３Ａに示したステップ３１４を実行する方法の例示的な実施形態である。
【符号の説明】
【００３８】
１００…グラフィックス処理システム、１０５…ディスプレイドライバ、１１０…メインメモリ、１２０…ホストプロセッサ、１３０…チップセット、１４０…一次グラフィックスプロセッサ、１４５…一次フレームバッファ、１５０…グラフィックスプロセッサ、１５５…フレームバッファ、１６０…スイッチ、１６４…グラフィックスアダプタ、１６５…グラフィックスアダプタ、１７０…ディスプレイ、１７２…ディスプレイ、１８０…グラフィックスサブシステム、２０５…制御パネル、２１０…ディスプレイドライバ、２１５…ミニポート、２２０…リソースマネージャ、２２５…ＧＰＵマネージャ。
【図１Ａ】
0004562045.tif 000002
【図１Ｂ】
0004562045.tif 000003
【図１Ｃ】
0004562045.tif 000004
【図２】
0004562045.tif 000005
【図３Ａ】
0004562045.tif 000006
【図３Ｂ】
0004562045.tif 000007
【図３Ｃ】
0004562045.tif 000008