(57)【要約】      （修正有）【課題】サブデバイスの状態情報を伝達するための方法の提供。【解決手段】使用時に、デバイスの複数のサブデバイスが、アプリケーションに、ドライバを用いて公開される。次いで、要求が、アプリケーションから、サブデバイスのうちの少なくとも一つに関連する状態情報のために受信される。この要求に応答して、状態情報がアプリケーションに提供される。【選択図】図３
2008052718.tif 000002
【特許請求の範囲】
【請求項１】
デバイスの複数のサブデバイスをアプリケーションに、ドライバを用いて公開するステップと、
前記アプリケーションから、前記複数のサブデバイスのうち少なくとも一つに関連する状態情報に対する要求を受け取るステップと、
前記要求に応答して、前記状態情報を前記アプリケーションに提供するステップと、
を含む方法。
【請求項２】
前記複数のサブデバイスの各々が、別個のグラフィックプロセッサを有する、請求項１に記載の方法。
【請求項３】
前記アプリケーションから、別のデバイスのサブバイス用の追加の状態情報に対する要求を受け取るステップを更に含む、請求項１に記載の方法。
【請求項４】
前記追加の状態情報を前記アプリケーションに、前記要求に応答して提供するステップを更に含む、請求項３に記載の方法。
【請求項５】
前記追加の状態情報は、前記デバイスが唯一のサブデバイスを有する場合に、該デバイスに関連する、請求項４に記載の方法。
【請求項６】
前記状態情報が、性能情報を含む、請求項１に記載の方法。
【請求項７】
前記状態情報が、温度情報を含む、請求項１に記載の方法。
【請求項８】
前記状態情報が、電源情報を含む、請求項１に記載の方法。
【請求項９】
前記複数のサブデバイスは、第１のモードで動作することができ、該第１のモードにおいて、第１のサブデバイスが、第２のサブデバイスに対するスレーブとして機能する、請求項１に記載の方法。
【請求項１０】
前記複数のサブデバイスは、第２のモードで動作することができ、該第２のモードにおいて、前記第１のサブデバイス及び第２のサブデバイスが、独立している、請求項９に記載の方法。
【請求項１１】
前記少なくとも一つのサブデバイスに関連する前記状態情報は、前記サブデバイスが前記第１のモード及び第２のモードで動作しているか否かに拘らず、前記アプリケーションに提供される、請求項１０に記載の方法。
【請求項１２】
複数個のデバイスを決定するステップを更に含む、請求項１に記載の方法。
【請求項１３】
前記デバイスを割り当てるステップを更に含む、請求項１２に記載の方法。
【請求項１４】
複数個のサブデバイスを決定するステップを更に含む、請求項１３に記載の方法。
【請求項１５】
前記サブデバイスを割り当てるステップを更に含む、請求項１４に記載の方法。
【請求項１６】
前記受け取るステップ及び前記提供するステップが、前記ドライバを用いて実行される請求項１に記載の方法。
【請求項１７】
コンピュータ読み取り可能な媒体上に設けられたコンピュータプログラム製品であって、
デバイスの複数のサブデバイスをアプリケーションに公開するためのドライバコンピュータコードと、
前記アプリケーションから、前記複数のサブデバイスのうちの少なくとも一つに関連する状態情報に対する要求を受け取るためのドライバコンピュータコードと、
前記状態情報を前記アプリケーションに提供するためのドライバコンピュータコードと、
を備える、コンピュータプログラム製品。
【請求項１８】
複数のデバイス及びサブデバイスとして構成された複数のグラフィックプロセッサと、
前記複数のサブデバイスのうちの少なくとも一つに関連する状態情報を提供するために、前記サブデバイスをアプリケーションに公開するためのドライバと、
を備えるシステム。
【請求項１９】
前記グラフィックプロセッサが、ディスプレイと中央処理ユニットとに、バスを介して接続されている、請求項１８に記載のシステム。
【請求項２０】
グラフィックプロセッサの各々が、グラフィック処理ユニットを含む、請求項１８に記載のシステム。
【発明の詳細な説明】
【発明の分野】
【０００１】
本発明は、リソース管理に関するものであり、より詳細には、種々のリソースからの状態情報の取得に関するものである。
【背景】
【０００２】
従来技術の図１は、複数のグラフィックプロセッサを従来技術に従って管理するシステム１００を示している。図示するように、一対のアプリケーション１０２及び１０４が含められており、これらアプリケーションは、種々のグラフィック処理タスクの完了のための要求を送る。通常、このようなアプリケーション１０２及び１０４は、一つのグラフィックプロセッサに要求を発行することだけが可能である。即ち、かかるアプリケーション１０２及び１０４は、唯一のグラフィックプロセッサの存在を想定するように構成されている。
【０００３】
しかしながら、図示したシステム１００に類似する近年のシステムは、少なくとも一対のグラフィックプロセッサ１０８及び１１０を、種々のグラフィック処理タスクを実行するために備えている。複数のグラフィックプロセッサ１０８及び１１０と単一のプロセッサに装備されるアプリケーション１０２及び１０４との相互運用を行なうために、ドライバ１０６が、通常使用される。具体的には、ドライバ１０６は、コンポーネント間のインタフェイスを提供して、アプリケーション１０２及び１０４によって発行されるタスク要求が異なるグラフィックプロセッサ１０８及び１１０の間で分割されるようにする。そのために、アプリケーション１０２及び１０４は、グラフィックプロセッサ１０８及び１１０を個別に見ることはなく、それらを単一のデバイス１１２として見て、したがって、それらタスク要求のプロトコル等に準拠する。
【０００４】
しかしながら、上述したタイプのドライバのオペレーションは、アプリケーション（特に、複数のグラフィックプロセッサと共に動作するよう装備されたもの）が、個別にグラフィックプロセッサに問い合せることを妨害する。したがって、これらの及び／又は他の従来技術に関連した問題を克服する必要がある。
【概要】
【０００５】
サブデバイスの状態情報を、ドライバを用いて伝達するシステム、方法、コンピュータプログラム製品を提供する。使用時には、デバイスの複数のサブデバイスが、アプリケーションに公開（エクスポーズ）される。そして、アプリケーションからの、サブデバイスのうち少なくとも一つに関連した状態情報に対する要求が、受信される。この要求に応答して、状態情報が、アプリケーションに提供される。
【詳細な説明】
【０００６】
図２は、サブデバイスの状態情報を伝達するためのある実施形態に係る方法２００を示している。図示するように、デバイスの複数のサブデバイスが、ドライバを用いて、アプリケーションに対して公開される。オペレーション２０２を参照のこと。
【０００７】
本説明では、かかるサブデバイスは各々、半導体による集積回路又はチップの形態で少なくとも一つの半導体プラットフォーム上に実装された任意のデバイスであってもよい。更に、上述したサブデバイスはデバイスの方式で関連付けられており、アプリケーションが、かかる関連付けを認識し、同時にその独自の特質に公開されるようになっている。
【０００８】
勿論、上述したアプリケーションは、サブデバイスを利用することができる任意のソフトウェア、及び／又はハードウェアを指すものであってもよい。更に、ドライバは、アプリケーション、サブデバイス、及び、複数のサブデバイス間のインタフェイスを提供することができる任意のソフトウェアを指すものである。更に、サブデバイスは、後述する残りのオペレーションをサポートする任意の方式で、公開されてもよい。
【０００９】
あるオプションの実施形態では、サブデバイスは、個別のグラフィックプロセッサを有していてもよい。更なるオプションとして、かかるサブデバイスは、独自のグラフィック処理ユニット（ＧＰＵ）を有していてもよい。このような実施形態に関する更なる情報を、より詳細に図３等を参照しつつ説明する。勿論、サブデバイスは、各々、上述した定義を満たす任意のデバイスを指すものであってもよい。
【００１０】
オペレーション２０２の公開によって、要求が、次いで、アプリケーションから、サブデバイスのうちの少なくとも一つに関連する状態情報のために、受信される。オペレーション２０４を参照のこと。本説明では、状態情報は、性能情報、温度情報、電源情報、及び／又は特定のサブデバイスの状態に関する情報を指すものであってもよい。
【００１１】
このオペレーション２０４の要求に応答して、状態情報が、アプリケーションに提供される。オペレーション２０６を参照のこと。オプションとして、かかる要求は、上述したドライバによって受信され、次いで、当該ドライバが、要求された状態情報をオペレーション２０６に従って提供してもよい。
【００１２】
ここで、種々のオプションのアーキテクチャ及び特徴に関して更なる説明を行なう。これらアーキテクチャ及び特徴を用いて、先述のフレームワークを、ユーザの要望に応じて、実装することができ、又、実装しないことも可能である。以下の情報は、説明の目的で示したものであり、如何なる形にも限定するように解釈されるべきものでないことに留意すべきである。以下の特徴は何れも、説明する他の特徴を排除して、又は排除することなく、オプションとして組み込むことができる。
【００１３】
図３は、サブデバイスの状態情報を伝達するための一実施形態に係るシステム３００を示している。オプションとして、本システム３００は、図２の方法２００の主体であってもよい。しかしながら、勿論、システム３００は、任意の所望の環境で使用し得る。更に、上述した定義は、以下の説明の際にも当てはまるものである。
【００１４】
図示するように、一対のアプリケーション３０２及び３０４が備えられており、これらは、種々の処理タスクの完了のための要求を発行する。図１の従来技術のシステム１００とは異なり、かかるアプリケーション３０２及び３０４は、要求を、複数のサブデバイスを含むデバイスに、また、複数のサブデバイスに個別に、発行することができる。そのために、かかるアプリケーション３０２及び３０４は、各々が一以上のサブデバイス３０８、３１０、及び３１４を有する別個のデバイス３１２及び３１６を認識し、また、これらサブデバイス３０８、３１０、及び３１４自体を認識するように構成されている。図３に示すように、サブデバイス３０８、３１０、及び３１４は各々、別個のグラフィックプロセッサを有していてもよい。
【００１５】
アプリケーション３０２及び３０４のこのような機能に対応するために、ドライバ３０６が、デバイス３１２及び３１６、並びに、サブデバイス３０８、３１０、及び３１４を公開するために備えられている。そのために、アプリケーション３０２及び３０４は、グラフィックプロセッサ３０８及び３１０に対して個別に、また、関連する単一のデバイス３１２に対して、オペレーションのモードに応じて、要求を発行することができる。
【００１６】
具体的に、サブデバイス３０８、３１０、及び３１４は、第１のモードで動作することができ、この第１のモードでは、第１のサブデバイス３０８は、第２のサブデバイス３１０に対してスレーブとして機能する。かかるマスター−スレーブオペレーションの例を、図５を参照しつつ、より詳細に説明する。ある実施形態では、このようなオペレーションの第１のモードは、ＮＶＩＤＩＡ（登録商標）ＳＬＩ（商標）技術に従って実行することができる。かかる技術に関する更なる情報は、２００４年１１月１７日に出願された出願であり出願番号１０／９９０，７１２号の出願を参照することによって見出すことができる。なお、この出願を、その全体を参照することによって本明細書に援用する。
【００１７】
更に、サブデバイス３０８、３１０、及び３１４は、第２のモードで動作することができ、この第２のモードでは、第１のサブデバイス３０８及び第２のサブデバイス３１０は、独立して動作する。例えば、このような独立のオペレーションは、マスター−スレーブオペレーション等無しに、実行することができる。
【００１８】
したがって、使用時には、サブデバイス３０８、３１０、及び３１４の状態情報を、これらサブデバイス３０８、３１０、及び３１４が第1のモード及び第２のモードで動作しているか否かとは無関係に、アプリケーション３０２及び３０４に提供することができる。即ち、このようなサブデバイスの状態情報は、システム３００が第1のモード又は第２のモードで動作しているか否かに拘わらず、アクセスされ得る。第1のモードが上述したＮＶＩＤＩＡ（登録商標）ＳＬＩ（商標）技術を含む実施形態の説明では、かかる技術は、サブデバイスの状態情報にアクセスするために、必ずしも無効にされる必要はない。
【００１９】
デバイス３１６及びサブデバイス３１４の場合、デバイス３１６は、単一のサブデバイス３１４を有することにも留意されたい。このために、幾つかの実施形態では、デバイス３１６の全ての状態情報は、サブデバイス３１４の状態情報と同一である。したがって、このような実施形態では、デバイス３１６に関連する状態情報への任意の要求が、サブデバイス３１４についての情報を提供し、その逆の場合もある。
【００２０】
デバイス３１６が単一のサブデバイス３１４を有する他の実施形態では、デバイス３１６への問い合わせが、サブデバイスへの問い合わせとは異なる結果をもたらすこともある。また、更に別の実施形態では、デバイス３１６への要求は有効であり、一方、サブデバイス３１４への同じ要求が無効であることもある。単なる一例として、このような形態は、サブデバイス３１６が問い合せを受けることが可能なファン及び／又は電源デバイスを有しており、サブデバイス３１４がそれらを有していない状況で発生し得る。
【００２１】
図４は、複数のデバイス及びサブデバイスを特定するための別の実施形態に係る方法４００を示している。オプションとして、本方法４００は、図３のシステム３００で、また、図２の方法で実施することができる。しかしながら、勿論、本方法４００は、如何なる所望の環境においても実施することができる。この場合にも、上述した定義は、以下の説明の際に、当てはまる。
【００２２】
図示するように、複数個のデバイスが（例えば、図３のデバイス３１２及び３１６等を参照のこと）、オペレーション４０２において決定される。具体的には、アプリケーション（例えば、図３のアプリケーション３０２及び３０４等を参照のこと）による要求に応答して、複数個のデバイスを、ドライバ（例えば、図３のドライバ３０６等を参照のこと）によって特定し、更に、要求を行なっているアプリケーションに公開（例えば、伝達）することができる。
【００２３】
そのために、要求を行なっているアプリケーションは、デバイスの割り当てを、当該デバイスに関連した任意の識別子を決定することによって、行なうことができる。オペレーション４０４を参照のこと。識別子は、後に要求（例えば、状態情報等に対する要求）を行なう際に、当該デバイスを参照する目的で、使用することができる。
【００２４】
同様に、複数個のサブデバイス（例えば、図３のサブデバイス３０８、３１０、及び３１４等を参照のこと）が、オペレーション４０６において決定される。この場合にも、アプリケーションによる要求に応答して、幾つかのサブデバイスを、ドライバによって特定し、更に、要求を行なっているアプリケーションに公開することができる。したがって、要求を行なっているアプリケーションは、サブデバイスの割り当てを、当該サブデバイスに関連する任意の識別子等を決定することによって、行なうことができる。オペレーション４０８を参照のこと。この場合にも、識別子を、後に要求（例えば状態情報等に対する要求）を行なう際に、当該サブデバイスを参照するために、用いることができる。
【００２５】
表１は、オペレーション４０４及び４０８の割り当ての例示的結果を示している。
［表１］
デバイス  １
サブデバイス  Ａ
サブデバイス  Ｂ
デバイス  ２
サブデバイス  Ｃ
サブデバイス  Ｄ
サブデバイス  Ｅ
デバイス３
サブデバイス  Ｆ
勿論、このような割り当ては、例示の目的のためだけに示したものであり、如何なる形にも限定するように解釈されるべきものではない。
【００２６】
図５は、別の実施形態に係るマルチプロセッサグラフィック処理システム５００用のマザーボードの例示の実施形態のブロック図である。システム５００は、図２〜４の方法／システムの対象であってもよい。しかしながら、勿論、システム５００は、任意の所望の環境において使用することができる。更に、上述の定義は、以下の説明の際にも、当てはまる。
【００２７】
図示しないが、マザーボード５００は、デスクトップコンピュータ、サーバ、ラップトップコンピュータ、パームサイズのコンピュータ、タブレットコンピュータ、ゲームコンソール、携帯電話、コンピュータベースのシミュレータ等の内部に備えることができる。マザーボード５００は、ホストプロセッサ５５０、メインメモリ５１０、及びチップセット５３０を有しており、当該チップセット５３０は、ブリッジ５３５に直接結合されている。
【００２８】
マザーボードの幾つかの実施形態では、チップセット５３０は、システムメモリブリッジ、及び、入力／出力（Ｉ／Ｏ）ブリッジを有することがあり、当該ブリッジには、幾つかのインタフェイス、例えば、アドバンスト・テクノロジー・アタッチメント（ＡＴＡ）バス、ユニバーサルシリアルバス（ＵＳＢ）、ペリフェラルコンポーネントインタフェイス（ＰＣＩ）等がある。ブリッジ５３５は、チップセット５３０、マスターグラフィックアダプタ５４０、及びスレーブグラフィックアダプタ５６０の間のインタフェイスを提供する。
【００２９】
マスターグラフィックアダプタ５４０及びスレーブグラフィックアダプタ５６０（アダプタを構成する一以上のグラフィックプロセッサの場合もある）は各々、本実施形態では、上述したサブデバイスの一例を構成し得る。この場合にも、かかる実施形態は、如何なる形にも限定するように解釈されるべきでなく、先に説明した定義を満たす任意のデバイスを利用可能である。
【００３０】
幾つかの実施形態では、インタフェイス５４１及び５４５が、産業標準インタフェイス仕様、例えば、ペリフェラルコンポーネントインタフェイスエキスプレス（ＰＣＩ−Ｅｘｐｒｅｓｓ（商標））に準拠する。更に、ある実施形態では、ブリッジ５３５の機能が、チップセット５３０内に含められる。別の実施形態では、ブリッジ５３５は省かれ、チップセット５３０が、マスターグラフィックアダプタ５４０とスレーブグラフィックアダプタ５６０とに対して、直接的にインタフェイスを提供する。
【００３１】
マスターグラフィックアダプタ５４０は、プリント回路基板の形態をとることができ、第１のスロットへの取り付け時に、接続部５４５に結合される。スレーブグラフィックアダプタ５６０は、第２のスロットへの取り付け時に接続部５４１に結合される。幾つかの実施形態では、追加のグラフィックアダプタを、追加のスロットに取り付けることができ、ブリッジ５３５は、各追加のスロット用のインタフェイスを提供することができる。マスターグラフィックアダプタ５４０及び二次グラフィックアダプタ５６０はそれぞれ、一以上のグラフィックプロセッサと、専用メモリとを有することができ、当該専用メモリを使用して、グラフィックデータ、例えば、テクスチャマップ、画像データ、及びプログラム命令を格納することができる。
【００３２】
マスターグラフィックアダプタ５４０と一以上のスレーブグラフィックアダプタ５６０との間の主接続は、ブリッジ５３５を介するインタフェイスによって提供し得る。幾つかの実施形態では、この主接続は、マスターグラフィックアダプタ５４０と一以上のスレーブグラフィックアダプタ５６０とを、ブリッジ５３５、チップセット５３０、及びメインメモリ５１０を介して結合し、マスターグラフィックアダプタ５４０と一以上のスレーブグラフィックアダプタ５６０との間のデータ転送を、ホストプロセッサ５５０によって制御する。
【００３３】
専用インタフェイス５４５は、マスターグラフィックアダプタ５４０と一以上のスレーブグラフィックアダプタ５６０との間の二次接続を提供する。この二次接続は、スレーブグラフィックアダプタ５６０によって生成されたピクセルデータを、スレーブグラフィックアダプタ５６０からマスターグラフィックアダプタ５４０に転送するたに使用され、これによって、ピクセルデータの転送の負担を、主接続から軽減する。
【００３４】
二つ以上のグラフィックアダプタ間で専用インタフェイス５４５を使用することによって、これら二以上のグラフィックアダプタ間のグラフィックデータ及び同期信号の効率的な伝送が促進され、システムの帯域幅が削減される。更に、ユーザは、各グラフィックアダプタを必要に応じて容易に取り付けて、画像品質の観点でのレンダリング性能、又はレンダリング速度を向上することができる。例えば、二以上のグラフィックアダプタを用いて、改善した画像品質で画像をレンダリングし、又は、二以上のグラフィックアダプタを用いて、より高いフレームレートで画像をレンダリングすることができる。
【００３５】
マスターグラフィックアダプタ５４０とスレーブグラフィックアダプタ５６０との間の専用インタフェイス５４５は、接続デバイスによって提供される。この接続デバイスは、対向する両端部に設けられたソケットを有するコネクタＰＣＢであってもよい。コネクタＰＣＢの一部として製造された導電性の配線が、当該コネクタＰＣＢの一端におけるソケットのピンを、当該コネクタＰＣＢの他端における別のソケットのピンに直接接続する。
【００３６】
接続デバイスの別の実施形態には、その各端部に設けられたソケットを有するコネクタフレキシブルケーブルがある。コネクタフレキシブルケーブルは、可撓性の絶縁ラッピング内にワイヤを有しており、これらワイヤが、コネクタフレキシブルケーブルの一端における一方のソケットのピンを、当該コネクタフレキシブルケーブルの他端における他方のソケットのピンに直接接続する。当業者であれば、他のコンポーネント及びメカニズムを、接続部を製造するために採用し得ることを認識するであろう。
【００３７】
専用インタフェイス５４５は、幾つかの信号用のマルチビット接続を提供する。例えば、ピクセルデータが、スレーブグラフィックデバイスからマスターグラフィックデバイスに、又は、別のスレーブグラフィックデバイスに、データ、データバリッド信号、及びクロック用の複数の単一ビット接続を用いて、伝送されてもよい。マスターグラフィックデバイスは、画像データをディスプレイデバイスに直接出力する。逆に、スレーブグラフィックデバイスは、ピクセルデータをマスターグラフィックデバイスに、場合によって別のスレーブグラフィックデバイスを介して、出力する。ピクセルデータ及びデータバリッドは、クロックの一方又は双方のエッジで伝送されてもよい。
【００３８】
一以上のバッファ管理信号がまた、グラフィックアダプタ間で、接続デバイスを用いて接続されてもよい。本発明の幾つかの実施形態では、バッファ管理信号は、表示用のピクセルデータを生成するグラフィックプロセッサの全てがバッファをスワップすべきとき、即ち、バックバッファとフロントバッファをスワップするときを示す。同期信号がまた、マスターグラフィックデバイスからスレーブグラフィックデバイスに、表示ラスタ位置を伝達するために伝送されてもよい。
【００３９】
マスターグラフィックアダプタ５４０は、画像データをディプレイデバイス（例えば、ディスプレイ５７０）に出力する。この技術分野で知られたディスプレイデバイスの例には、陰極線管（ＣＲＴ）、フラットパネルディプレイ等がある。スレーブグラフィックアダプタ５６０が、マスターグラフィックアダプタ５４０よりも画像のより大きい部分を処理してもよく、当該画像におけるそのより大きな部分用のピクセルデータを、マスターグラフィックアダプタ５４０に専用インタフェイス５４５を介して転送してもよい。
【００４０】
幾つかの実施形態では、画像の処理が、マスターグラフィックアダプタ５４０と一以上のスレーブグラフィックアダプタ５６０との間で、各グラフックアダプタの処理能力に基づいて、分配されてもよい。更に、バッファスワップ、及び同期信号（例えば、水平Ｓｙｎｃ及び垂直ｓｙｎｃ）が、スレーブグラフィックアダプタ５６０と主グラフィックアダプタ５４０との間で、専用インタフェイス５４５を用いて、伝送されてもよい。
【００４１】
種々の実施形態を説明してきたが、これらは説明のためにのみ提供したものであり、限定するものではないことを理解すべきである。したがって、好適な実施形態の幅及び範囲は、上述した例示の実施形態の何れによっても限定されるべきではなく、特許請求の範囲及びその均等の範囲によってのみ規定されるべきである。
【図面の簡単な説明】
【００４２】
【図１】図１は、複数のグラフィックプロセッサを従来技術に従って管理するシステムを示す図である。
【図２】サブデバイスの状態情報を伝達するための一実施形態に係る方法を示す図である。
【図３】サブデバイスの状態情報を伝達するための一実施形態に係る方法を示す図である。
【図４】複数のデバイス及びサブデバイスを特定するための別の実施形態に係る方法を示す図である。
【図５】マルチプロセッサグラフィック処理システム用のマザーボードの例示の実施形態のブロック図である。
【符号の説明】
【００４３】
３００…システム、３０２，３０４…クライアントアプリケーション、３０６…ドライバ、３１２，３１６…デバイス、３０８，３１０，３１４…サブデバイス。
【図１】
2008052718.tif 000003
【図２】
2008052718.tif 000004
【図３】
2008052718.tif 000005
【図４】
2008052718.tif 000006
【図５】
2008052718.tif 000007
【外国語明細書】
2008052718000001.pdf