JP2004505355A - データ処理システムにおける動的グラフィックス・コンテキスト切替の方法および装置 - Google Patents
データ処理システムにおける動的グラフィックス・コンテキスト切替の方法および装置 Download PDFInfo
- Publication number
- JP2004505355A JP2004505355A JP2002514706A JP2002514706A JP2004505355A JP 2004505355 A JP2004505355 A JP 2004505355A JP 2002514706 A JP2002514706 A JP 2002514706A JP 2002514706 A JP2002514706 A JP 2002514706A JP 2004505355 A JP2004505355 A JP 2004505355A
- Authority
- JP
- Japan
- Prior art keywords
- graphics
- context
- current context
- data
- adapter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
- Image Analysis (AREA)
Abstract
【課題】複数のグラフィックス・プロセスのコンテキスト管理のために、データ処理システムにおける方法および装置を提供すること。
【解決手段】複数のグラフィックス・プロセス内の第1グラフィックス・プロセスからグラフィックス・アダプタにグラフィックス・データを送る要求が受け取られる。グラフィックス・アダプタが第1グラフィックス・プロセスからのグラフィックス・データを処理するために、現在のコンテキストの完全な変更が必要であるかどうかに関する判定を行う。現在のコンテキストの一部だけが変更を必要とする場合には、変更される部分を保管する。その後、グラフィックス・プロセスに関するコンテキスト情報を検索し、メモリに格納されたコンテキストの組を使用して、必要な現在のコンテキスト情報に配置する。
【選択図】図6
【解決手段】複数のグラフィックス・プロセス内の第1グラフィックス・プロセスからグラフィックス・アダプタにグラフィックス・データを送る要求が受け取られる。グラフィックス・アダプタが第1グラフィックス・プロセスからのグラフィックス・データを処理するために、現在のコンテキストの完全な変更が必要であるかどうかに関する判定を行う。現在のコンテキストの一部だけが変更を必要とする場合には、変更される部分を保管する。その後、グラフィックス・プロセスに関するコンテキスト情報を検索し、メモリに格納されたコンテキストの組を使用して、必要な現在のコンテキスト情報に配置する。
【選択図】図6
Description
【0001】
【発明の属する技術分野】
本発明は、全般的には改良されたデータ処理システムに関し、詳細には、グラフィックス・データを処理する方法および装置に関する。
【0002】
【従来の技術】
パーソナル・コンピュータおよびワーク・ステーションなどのデータ処理システムは、コンピュータ援用設計(CAD)アプリケーション、CAMアプリケーション、およびコンピュータ支援ソフトウェア・エンジニアリング(CASE)ツールを実行するために一般に使用されている。エンジニア、科学者、技師、および他の人が、これらのアプリケーションを毎日使用する。これらのアプリケーションは、有限要素法分析などの複雑な計算を用いて、構造内の応力をモデル化する。他のアプリケーションには、化学モデリング・アプリケーションまたは分子モデリング・アプリケーションが含まれる。CAD/CAM/CASEアプリケーションは普通、ユーザに伝えられる情報に関してグラフィックス集中型である。データ処理システム・ユーザは、デスクトップ・パブリッシング・アプリケーションなどの他のグラフィックス集中型アプリケーションを使用する場合がある。一般に、これらのアプリケーションのユーザは、データ処理システムが非常に高速のグラフィックス情報を提供可能であることを要求し、必要とする。
【0003】
ビデオ・ディスプレイ端末でのグラフィカル表示を実現するグラフィックス・データ・ストリームの処理は、高速応答する表示を提供するために、非常に高速のグラフィックス・システムを必要とする。このタイプのグラフィックス・システムでは、プリミティブが、処理および表示のために受け取られる。プリミティブは、たとえば点、線、円弧、円錐、または球面などのイメージを作成するための構成単位として使用されるグラフィックス要素である。プリミティブは、1つまたは複数の頂点のグループによって定義される。属性を使用して、プリミティブを表示する方法を定義する。属性には、たとえば、線の種類、色、および表面テクスチャが含まれる。頂点は、点、辺の端点、または、2つの辺が交わるポリゴンの角を定義する。データも頂点に関連し、このデータには、位置座標、色、法線、テクスチャ座標などの情報が含まれる。コマンドが、グラフィックス・システムに送られて、プリミティブおよび他のデータを表示のために処理する方法が定義される。
【0004】
グラフィックス・データ、特に3次元アプリケーションのグラフィックス・データを処理する際に大量のデータおよび計算が必要とされるため、これらの計算の多くは中央処理装置からグラフィックス・アダプタにオフロードされてきた。これらのグラフィックス・システムでは、グラフィックス・アダプタ内に配置されたグラフィックス・パイプラインが、このグラフィックス・データの処理に使用される。パイプラインを用いると、グラフィックス・データ処理が、処理要素のステージに分割され、その中で、データの処理を別々の処理要素によって順次実行することができる。
【0005】
マルチタスキング・グラフィックス環境では、複数のプロセスが、同一のグラフィックス・アダプタを共用することがしばしばである。各グラフィックス・プロセスが、グラフィックス・データをグラフィックス・アダプタに送るために、各プロセスが、レンダリング・コンテキストを必要とする。このレンダリング・コンテキストは、グラフィックス・データが特定のグラフィックス・プロセスから表示のためにグラフィックス・アダプタに送られる前に、コンテキスト切替ハンドラによって、グラフィックス・アダプタ上で復元される。コンテキスト切替ハンドラは、グラフィックス・プロセスに関するコンテキスト保管機能およびコンテキスト復元機能を実行し、その結果、各グラフィックス・プロセスが、グラフィックス・アダプタにアクセスできるようにする。異なるグラフィックス・プロセスのコンテキストは、大きく異なる場合がある。たとえば、3次元グラフィックス環境は、2次元グラフィックス環境と比較してかなり大きい。現在、コンテキスト・サイズは、すべてのグラフィックス・プロセスについて同一にセットされる。各プロセスのコンテキスト全体の切替が、グラフィックス・データを表示する処理を低速にする。さらに、この機構は、アダプタ内のメモリを浪費し、異なるプロセスに関するコンテキストの切替を低速にする。
【0006】
【発明が解決しようとする課題】
本発明は、データ処理システムにおいて、複数のグラフィック・プロセスに関するコンテキスト管理のための方法および装置を提供する。
【0007】
【課題を解決するための手段】
複数のグラフィックス・プロセス内の第1グラフィックス・プロセスからグラフィックス・アダプタにグラフィックス・データを送る要求が受け取られる。グラフィックス・アダプタが第1グラフィックス・プロセスからのグラフィックス・データを処理するのに、現在のコンテキストの完全な変更が必要であるかどうかに関する判定を行う。現在のコンテキストの一部だけが変更を必要とする場合には、変更される部分を保管する。その後、グラフィックス・プロセスに関するコンテキスト情報を検索し、メモリに格納されたコンテキストの組を使用して、必要な現在のコンテキスト情報に配置する。
【0008】
第1の態様では、本発明は、データ処理システムにおいて、複数のグラフィックス・プロセスからのデータを処理する方法であって、グラフィックス・データをグラフィックス・アダプタに送るためにグラフィックス・プロセスからの要求の受取りに応答して、前記複数のグラフィックス・プロセスからの前記グラフィックス・プロセスに関する前記グラフィックス・データを処理するために、前記グラフィックス・アダプタ内の現在のコンテキストの完全な変更が必要であるかどうかを判定すること、前記現在のコンテキストの完全な変更の必要がない場合に、メモリに格納されたコンテキストの組からの前記グラフィックス・アダプタ内の関連するコンテキストを使用して前記現在のコンテキストの一部を変更することを含み、前記関連するコンテキストが前記グラフィックス・プロセスに関連する、方法を提供する。
【0009】
第2の態様では、本発明は、データ処理システムにおいて、複数のグラフィックス・プロセスに関するコンテキスト管理のための方法であって、前記複数のグラフィックス・プロセス内の第1グラフィックス・プロセスから、グラフィックス・アダプタにグラフィックス・データを送る要求を受け取ること、前記グラフィックス・アダプタが前記第1グラフィックス・プロセスからの前記グラフィックス・データを処理して識別された量を形成するために、現在のコンテキストのすべてより少ない変更が必要であるかどうかを判定すること、メモリに格納されるコンテキストの組を使用して、前記現在のコンテキストの前記識別された量をもう1つのコンテキストに変更することを含み、前記現在のコンテキストのすべてより少ない変更がなされる、方法を提供する。
【0010】
第3の態様では、本発明は、複数のグラフィックス・プロセスからのデータを処理するデータ処理システムであって、グラフィックス・データをグラフィックス・アダプタに送るためにグラフィックス・プロセスからの要求の受取りに応答して、前記複数のグラフィックス・プロセスからの前記グラフィックス・プロセスに関する前記グラフィックス・データを処理するために、前記グラフィックス・アダプタ内の現在のコンテキストの完全な変更が必要であるかどうかを判定する判定手段と、前記現在のコンテキストの完全な変更の必要がない場合に、メモリに格納されたコンテキストの組からの前記グラフィックス・アダプタ内の関連するコンテキストを使用して前記現在のコンテキストの一部を変更する変更手段を含み、前記関連するコンテキストが前記グラフィックス・プロセスに関連する、データ処理システムを提供する。
【0011】
第4の態様では、本発明は、複数のグラフィックス・プロセスに関するコンテキスト管理のデータ処理システムであって、前記複数のグラフィックス・プロセス内の第1グラフィックス・プロセスから、グラフィックス・アダプタにグラフィックス・データを送る要求を受け取る受取り手段と、前記グラフィックス・アダプタが前記第1グラフィックス・プロセスからの前記グラフィックス・データを処理して識別された量を形成するために、現在のコンテキストのすべてより少ない変更が必要であるかどうかを判定する判定手段と、メモリに格納されるコンテキストの組を使用して、前記現在のコンテキストの前記識別された量をもう1つのコンテキストに変更する変更手段とを含み、前記現在のコンテキストのすべてより少ない変更がなされる、データ処理システムを提供する。
【0012】
第5の態様では、本発明は、複数のグラフィックス・プロセスからのデータを処理するためにデータ処理システムで使用される、機械可読媒体内のコンピュータ・プログラム製品であって、グラフィックス・データをグラフィックス・アダプタに送るためにグラフィックス・プロセスからの要求の受取りに応答して、前記複数のグラフィックス・プロセスからの前記グラフィックス・プロセスに関する前記グラフィックス・データを処理するために、前記グラフィックス・アダプタ内の現在のコンテキストの完全な変更が必要であるかどうかを判定する第1命令と、前記現在のコンテキストの完全な変更の必要がない場合に、メモリに格納されたコンテキストの組からの前記グラフィックス・アダプタ内の関連するコンテキストを使用して前記現在のコンテキストの一部を変更する第2命令とを含み、前記関連するコンテキストが前記グラフィックス・プロセスに関連する、コンピュータ・プログラム製品を提供する。
【0013】
第6の態様では、本発明は、複数のグラフィックス・プロセスに関するコンテキスト管理のためにデータ処理システムで使用される、機械可読媒体内のコンピュータ・プログラム製品であって、前記複数のグラフィックス・プロセス内の第1グラフィックス・プロセスから、グラフィックス・アダプタにグラフィックス・データを送る要求を受け取る第1命令と、前記グラフィックス・アダプタが前記第1グラフィックス・プロセスからの前記グラフィックス・データを処理して識別された量を形成するために、現在のコンテキストのすべてより少ない変更が必要であるかどうかを判定する第2命令と、メモリに格納されるコンテキストの組を使用して、前記現在のコンテキストの前記識別された量をもう1つのコンテキストに変更する第3命令とを含み、前記現在のコンテキストのすべてより少ない変更がなされる、コンピュータ・プログラム製品を提供する。
【0014】
本発明によるコンピュータ・プログラムを、計算機可読記録媒体に記録されたプログラム・コードを含むプログラム製品として使用可能にすることができる。
【0015】
例として添付図面に関して、本発明の好ましい実施形態をこれから詳細に説明する。
【0016】
【発明の実施の形態】
ここで図面、具体的には図1を参照すると、本発明の好ましい実施形態に従って本発明を実施することができるデータ処理システムを絵で表したものが示されている。コンピュータ100が示されており、このコンピュータ100には、システム・ユニット110、ビデオ・ディスプレイ端末102、キーボード104、フロッピ・ドライブおよび他のタイプのパーマネント・ストレージ・メディアおよび取外し可能ストレージ・メディアを含めることができるストレージ・デバイス108、およびマウス106が含まれる。たとえば、ジョイスティック、タッチパッド、タッチ・スクリーン、トラックボール、マイクロフォン、および類似物などの追加の入力装置を、コンピュータ100に含めることができる。コンピュータ100は、米国IBM社の製品である、IBM RS/6000コンピュータまたはIntelliStationコンピュータなどの、適当なコンピュータを使用して実施することができる。図の表現では、コンピュータが示されているが、本発明の他の実施形態を、ネットワーク・コンピュータなどの他のタイプのデータ処理システムで実施することができる。コンピュータ100には、コンピュータ100内で動作する、コンピュータ可読媒体に常駐するシステム・ソフトウェアによって実施することができる、グラフィカル・ユーザ・インターフェースも含まれることが好ましい。
【0017】
図2を参照すると、本発明を実施することができるデータ処理システムのブロック図が示されている。データ処理システム200は、図1のコンピュータ100など、本発明の処理を実施するコードまたは命令を配置することができるコンピュータの例である。データ処理システム200では、PCIローカル・バス・アーキテクチャが使用される。図示の例では、PCIバスが使用されるが、AGPおよびISAなどの他のバス・アーキテクチャを使用することができる。プロセッサ202および主記憶204が、PCIブリッジ208を介してPCIローカル・バス206に接続される。PCIブリッジ208には、プロセッサ202用の統合されたメモリ・コントローラおよびキャッシュ・メモリも含めることができる。PCIローカル・バス206への追加の接続を、直接構成要素相互接続(direct component interconnection)またはアドイン・ボードを介して行うことができる。図示の例では、LANアダプタ210、SCSIホスト・バス・アダプタ212、および拡張バス・インターフェース214が、直接構成要素接続によってPCIローカル・バス206に接続される。対照的に、オーディオ・アダプタ216およびグラフィックス・アダプタ218は、拡張スロットに挿入されるアドイン・ボードによってPCIローカル・バス206に接続される。拡張バス・インターフェース214は、キーボードおよびマウス・アダプタ220、モデム222、および追加メモリ224の接続を提供する。SCSIホスト・バス・アダプタ212は、ハード・ディスク・ドライブ226、テープ・ドライブ228、およびCD−ROMドライブ230の接続を提供する。通常のPCIローカル・バス実施形態では、3つまたは4つのPCI拡張スロットまたはアドイン・コネクタがサポートされる。
【0018】
オペレーティング・システムが、プロセッサ202上で稼動し、図2のデータ処理システム200内のさまざまな構成要素を調整し、制御を提供するのに使用される。オペレーティング・システムは、Microsoft Corporation社が市販するWindows(R)2000などの商業的に入手可能なオペレーティング・システムとすることができる。Java(R)などのオブジェクト指向プログラミング・システムが、オペレーティング・システムと共に稼動することができ、データ処理システム200上で実行されるJava(R)プログラムまたはJava(R)アプリケーションからオペレーティング・システムへの呼出しを提供する。「Java(R)」は、Sun Microsystems,Inc.社の商標である。オペレーティング・システム、オブジェクト指向オペレーティング・システム、およびアプリケーションまたはプログラムの命令は、ハード・ディスク・ドライブ226などのストレージ・デバイスに配置され、プロセッサ202による実行のために主記憶204にロードされることができる。具体的に言うと、本発明は、グラフィックス・アダプタ218などのグラフィックス・アダプタにグラフィックス・データを送る異なるプロセスのコンテキストを動的に切り替える機構を提供する。この長所は、グラフィックス・アダプタ218を共用する異なるプロセスのコンテキストを格納するためのメモリの割振りの使用を介して提供される。
【0019】
当業者は、図2のハードウェアを、実施形態に応じて変更できることを諒解するであろう。フラッシュROM(または同等の不揮発性メモリ)または光ディスク・ドライブおよび類似物などの他の内部ハードウェアまたは周辺装置を、図2に示されたハードウェアに追加して、またはその代わりに使用することができる。また、本発明の処理は、マルチプロセッサ・データ処理システムに適用することができる。
【0020】
たとえば、データ処理システム200は、任意選択としてネットワーク・コンピュータとして構成される場合に、任意選択の包含を示す図2の破線232によって示されるように、SCSIホスト・バス・アダプタ212、ハード・ディスク・ドライブ226、テープ・ドライブ228、およびCD−ROMドライブ230を含まないものとすることができる。その場合には、コンピュータ(正しくはクライアント・コンピュータと呼ばれる)に、LANアダプタ210、モデム222、または類似物など、あるタイプのネットワーク通信インターフェースが含まれなければならない。もう1つの例として、データ処理システム200は、データ処理システムにあるタイプのネットワーク通信インターフェースが含まれるかどうかに無関係に、あるタイプのネットワーク通信インターフェースに頼らずにブート可能になるように構成された独立型システムとすることができる。もう1つの例として、データ処理システム200を、オペレーティング・システム・ファイルまたはユーザ生成データあるいはその両方の格納用の不揮発性メモリを提供するためにROMまたはフラッシュROMあるいはその両方を用いて構成される携帯情報端末(PDA)とすることができる。
【0021】
図2に示された例および上述した例は、アーキテクチャ的制限を暗示することを意図されてはいない。たとえば、データ処理システム200を、PDAの形態をとるほかに、ノートブック・コンピュータまたはハンド・ヘルド・コンピュータとすることもできる。データ処理システム200を、キオスクまたはウェブ機器とすることもできる。
【0022】
本発明の処理は、たとえば主記憶204、追加メモリ224、あるいは1つまたは複数のハード・ディスク・ドライブ226、テープ・ドライブ228、およびCD−ROMドライブ230などのメモリに配置することができるコンピュータに実施される命令を使用して、プロセッサ202によって実行される。
【0023】
本発明は、複数のグラフィックス・プロセスが同一のグラフィックス・アダプタを共用する、マルチタスキング・グラフィックス環境での機構を提供する。たとえば図2の主記憶204などのデータ処理システム内のメモリの一部が、コンテキスト切替に使用するために割り振られる。これらの例では、メモリ割振りが、固定バッファの形である。固定バッファとは、ディスク空間が最近使用されていない情報に関する拡張メモリとして使用される仮想記憶コンピュータ・システムの場合などのように、ディスクにスワップ・アウトされないバッファである。固定バッファまたは他の固定メモリを使用することによって、デバイス・ドライバが、情報をディスク・ドライブからスワップ・インする必要なしに、メモリ内で情報にすばやくアクセスできるようになる。
【0024】
グラフィックス・プロセスは、この固定バッファにアクセスして、ある事前定義の機能またはアクションが必要であるかどうかを指定することができる。これらの機能には、たとえば、テクスチャ・マッピングおよびカラー・ルックアップが含まれる。他の機能には、たとえば、デプス・バッファ・テスティングに関する情報、ハードウェア・ライティング、テクスチャ・マッピングの変形であるバンプマッピング、およびアンチエイリアス動作が含まれる。
【0025】
コンテキスト切替が発生する時に、コンテキスト切替機構が、固定バッファを読み取って、全コンテキスト切替が必要であるか、部分コンテキスト切替が必要であるかを判断する。コンテキストは、1つの時点で指定される情報またはパラメータである。この情報は、コマンドの時点で動作を実行するために再び述べるか再指定しなくてもよいが、コマンドの動作に必ず影響する。たとえば、あるプログラムを、色がコンテキストである場合に、緑の色を使用して線の組を描画するのに使用することができる。第2のプログラムを、赤の色を使用して線の第2の組を描画するのに使用することができる。第1のプログラムが稼動する時に、色に緑がセットされる。プログラム1が線の描画を終了する前に割込みが発生し、プログラム2が稼動を開始する。プログラム2は、色に赤をセットし、線の描画を開始する。第2の割込みが発生し、プログラム1が実行を再開する。この時に、色には赤がセットされている。プログラム1は、線を描画するたびに色をリセットすることはしない。その結果、この場合には線の色であるコンテキストが、プログラム1に関して緑にリセットされない場合に、線が誤った色で描画される。この例では、デバイス・ドライバを使用して、コンテキストを緑に復元する。この形で、プログラムが、コンテキスト情報を追跡する必要がなくなる。
【0026】
この情報は、グラフィックス・アダプタ内のメモリを割り振るのに使用する必要があるグラフィックス・コンテキストのサイズを判断するのに使用されることもできる。コンテキストとみなされる他の情報には、たとえば、照明またはクリッピングがイネーブルされているかどうか、プリミティブが線描されるか塗り潰されるか、現在の線の点刻パターン、および現在のテクスチャ・ブレンディング関数が含まれる。
【0027】
図3すなわち、本発明の好ましい実施形態による、動的コンテキスト切替に使用される構成要素を示すブロック図に移る。この例では、アプリケーション300、302、および304が、マルチタスキング・グラフィックス環境内にあり、図2のグラフィックス・アダプタ218などの単一のグラフィックス・アダプタを共用する。図からわかるように、各アプリケーションに、表示用のグラフィックス・データを生成するグラフィックス・プロセスが含まれる。もちろん、特定のアプリケーションに依存して、1つのアプリケーションが複数のグラフィックス・プロセスを含むことができる。これらのアプリケーションは、オペレーティング・システム308内のデバイス・ドライバ306にグラフィックス・データを送る。デバイス・ドライバは、グラフィックス・アダプタ218などの周辺装置をオペレーティング・システムにリンクするプログラムまたはルーチンである。特定のデバイス・ドライバが、アプリケーション300、302、および304からの要求およびデータなどの要求およびデータを受け取り、これらの要求を、周辺装置によって認識される特定のコマンド言語およびフォーマットに変換する。
【0028】
この例では、アプリケーション300、302、および304が、バッファ310にアクセスして、コンテキスト情報を書き込み、変更することができる。コンテキスト情報は、この例では com_record 312の形をとる。これらのアプリケーションの1つが、グラフィックス・アダプタでの表示のためにデバイス・ドライバ306にグラフィックス・データを送る時に、デバイス・ドライバ306は、バッファ310内の com_record 312を見て、コンテキスト切替が必要であるかどうかを調べる。コンテキスト切替が必要な場合には、デバイス・ドライバ306は、部分的コンテキスト切替と全コンテキスト切替のどちらが必要であるかを判断することもできる。この判定に基づいて、デバイス・ドライバ306は、グラフィックス・アダプタ内のコンテキストを選択的に切り替える。コンテキストの切替の一部として、デバイス・ドライバ306は、グラフィックス・アダプタ内のメモリの、コンテキストに関する割振りを動的に変更するために、グラフィックス・コンテキストのサイズを変更することもできる。この形で、特定のコンテキストについてより少ないメモリが必要である時に、より多くのメモリが、他の使用のためにグラフィックス・アダプタ内で使用可能にされる。デバイス・ドライバは、グラフィックス・アダプタなど、ハードウェアのそれぞれについて存在する。デバイス・ドライバは、潜在的なコンテキスト情報を意識し、通常は、すべてのコンテキスト情報を保管する。特定のコンテキストに必要なメモリの量は、デバイスドライバから、またはグラフィックス・アダプタのためにデバイス・ドライバによって保管された情報から得ることができる。
【0029】
これらの例では、フラグをセットして、コンテキストのうちでアクティブに使用される1つまたは複数の部分を識別する。デバイス・ドライバは、そのフラグを使用して、保管する必要があるコンテキストと保管する必要がないコンテキストを識別する。
【0030】
図4を参照すると、本発明の好ましい実施形態による1つの com_record を示す図が示されている。 com_record 400は、特定のプロセスについてどのコンテキスト情報が使用されているかを識別するために使用される。 com_record 400を使用することによって、本発明の機構は、新しいプロセスが処理のためにグラフィックス・データを送っている時に、全コンテキスト切替が必要であるかどうかを判定できるようになる。
【0031】
この例の com_record 400には、 com_record 400に関連するプロセスについてテクスチャ機能およびルックアップ機能がセットされていることの識別が含まれる。この例では、各プロセスに com_record が関連する。 com_record 400は、コンテキスト情報の数行の例である。これらの行は、特定のプロセスによって現在使用されているコンテキストを識別するインジケータまたはフラグである。コンテキストには、通常は、コンテキストを識別する数百個の要素が含まれる。コンテキストを作成する際に、プロセスは、コンテキストを開始する時にそのコンテキストを作成する。グラフィックス・プロセスは、API呼出しを行って、1つまたは複数のグラフィックス・コンテキストを作成する。特定のコンテキストをアクティブにする時に、グラフィックス・プロセスは、API呼出しを使用して、特定のコンテキストをウィンドウに関連付ける。この形で、グラフィックス・プロセス、コンテキスト、およびウィンドウの間に関係が存在する。コンテキストは、デバイス・ドライバによって供給される一意の識別子を介して識別される。この一意の識別子は、コンテキストを作成するのに使用されるAPI呼出しを介してアプリケーションに与えられる。この一意の識別子は、 com_record 400に格納される。この形で、デバイス・ドライバが、各コンテキストの一意の識別子と、アクティブに使用されるコンテキストの部分に関するAPIによって供給される情報との間の一意の対を有する。
【0032】
APIによって、共用メモリ内で com_record 400が作成され、デバイス・ドライバに、 com_record 400が共用メモリのどこに配置されたかが、デバイス・ドライバへの正確に1回の呼出しを介して伝えられる。その後、デバイス・ドライバは、共用メモリを調べて、コンテキスト切替に関する判断を行う。この情報が変更される場合には、アプリケーションが、共用メモリを更新する。たとえば、アプリケーションが開始され、アプリケーションが共用メモリを初期化して、 using_texture が偽であり、 using_lookup が偽であるようにする。次に、アプリケーションはデバイス・ドライバを呼び出して、共用メモリがどこにあるかとその共用メモリが使用の準備ができていることを伝える。その後、デバイス・ドライバが、コンテキスト切替を行う。デバイス・ドライバは、コンテキストを保管する時に、 using_texture が偽であったことを知り、したがって、デバイス・ドライバはテクスチャ情報を保管しない。デバイス・ドライバは using_lookup が偽であることを知り、したがって、ルックアップ情報を保管しない。デバイス・ドライバがこのプロセスをアクティブ・モードに切り替える時には、デバイス・ドライバは using_texture が偽であることを知り、したがって、デバイス・ドライバはテクスチャ情報を復元しない。デバイス・ドライバは using_lookup が偽であったことを知り、したがって、デバイス・ドライバは、ルックアップ・テーブル情報を復元しない。アプリケーションが、テクスチャ・ルックアップの使用を開始する。アプリケーションは、共用メモリの「using_lookup」と呼ばれる部分に真を書き込む。デバイス・ドライバが、このコンテキストをオフに切り替える。デバイス・ドライバは共用メモリの com_record を調べ、 using_texture が偽であることを知り、したがって、テクスチャ情報を保管しない。デバイス・ドライバは using_lookup が真であることを知り、したがって、デバイス・ドライバはルックアップ情報を保管する。その後、デバイス・ドライバがこのコンテキストをオンに切り替える。デバイス・ドライバは共用メモリの com_record を調べ、 using_texture が偽であることを知り、したがって、デバイス・ドライバはテクスチャ情報を復元しない。デバイス・ドライバは、 using_lookup が真であることを知り、したがって、デバイス・ドライバはルックアップ情報を復元する。
【0033】
図5を参照すると、本発明の好ましい実施形態によるコンテキストの確立の流れ図が示されている。図5に示された処理は、図3のアプリケーション300、302、または304などのアプリケーションによって使用される処理の例である。
【0034】
この処理は、レコードの作成によって開始される(ステップ500)。この例では、レコードが、図4の com_record 400などの com_record の形をとる。もちろん、レコードは、テーブル内の項目またはデータベース内のレコードなど、さまざまな形をとることができる。事前定義の機能が、レコードにセットされる(ステップ502)。図示の例では、これらの機能に、テクスチャ機能およびルックアップ機能が含まれる。ベース・コンテキストをセット・アップする際に、デバイス・ドライバはコンテキストを作成する呼出しを受け取り、デフォルト値またはデフォルト機能を使用してベース・コンテキストをセット・アップする。たとえば、デフォルトの線の色を、ベース・コンテキストに設けることができる。コンテキストとウィンドウの間のペアリングが行われる時に、幅、高さ、およびウィンドウ・タイプなどの追加情報がコンテキストに追加される。この情報は、特定のプロセスに関連するコンテキスト・レコードに追加される。
【0035】
その後、グラフィックス動作がグラフィックス・アプリケーションまたはグラフィックス・プロセスによって実行され(ステップ540)、その後、処理が終了する。グラフィックス・アプリケーションまたはグラフィックス・プロセスは、デバイス・ドライバによって作成されたコンテキストをアプリケーションが要求するたびに一意のレコードを作成する。この情報は、コンテキストが破棄されるか、プロセスが終了するまで存在する。
【0036】
図6に移ると、本発明の好ましい実施形態によるコンテキスト切替の流れ図が示されている。図6に示された処理は、図3のデバイス・ドライバ306などのデバイス・ドライバ内で実施することができる。もちろん、この処理を、実施形態に応じてほかのところで実施することができる。たとえば、この処理を、グラフィックス・カーネル内で実施することができる。
【0037】
イベントのシーケンスは、グラフィックス・データをグラフィックス・アダプタに送る、プロセスからの要求を受け取ることによって開始される(ステップ600)。現在のコンテキストが、その要求を行うプロセスについて正しいかどうかに関する判定を行う(ステップ602)。現在のコンテキストが正しくない場合には、プロセスに関連するレコードを識別する(ステップ604)。この例では、レコードが、固定バッファ内に配置された com_record である。
【0038】
次に、全コンテキスト切替が必要であるかどうかに関する判定を行う(ステップ606)。全コンテキスト切替が必要である場合には、現在のコンテキストを保管し(ステップ608)、プロセスに必要なコンテキストを復元するか、使用に適当な位置に配置する(ステップ610)。要求内のグラフィックス・データまたはコマンドあるいはその両方をアダプタに送り(ステップ612)、その後、フローが終了する。
【0039】
ステップ606をもう一度参照すると、全コンテキスト切替が必要でない場合には、現在のコンテキストを保管する(ステップ614)。ステップ614では、現在のコンテキストのうちで変更される部分だけが保管される。その後、プロセスについて識別されたコンテキストの部分を復元し(ステップ616)、その後、フローは、上で説明したステップ612に進む。言い換えると、変更される必要があるコンテキスト情報が、検索され、現在のコンテキストに配置されて、現在のコンテキストが修正される。ステップ602に戻ると、グラフィックス・アダプタ内の現在のコンテキストが、要求を送るプロセスに関して正しい場合には、フローは、上で説明したステップ612に進む。
【0040】
図7に進むと、本発明の好ましい実施形態によるコンテキスト情報を保管する処理の流れ図が示されている。この処理はコンテキスト切替中に使用され、図3のデバイス・ドライバ306などのデバイス・ドライバ内で実施される。
【0041】
この処理は、プロセスのコンテキストに関連するレコードにベース・コンテキスト情報を保管することによって開始される(ステップ700)。テクスチャがコンテキスト内でセットされたかどうかに関する判定を行う(ステップ702)。テクスチャがセットされた場合には、テクスチャ情報をレコードに保管する(ステップ704)。次に、ルックアップ機能がコンテキスト内でセットされたかどうかに関する判定を行う(ステップ706)。ルックアップがセットされた場合にはルックアップ情報を保管し(ステップ708)、その後、処理が終了する。これらの機能のどちらもセットされていない場合には、処理は、ベース・コンテキスト情報だけを保管して終了する。この例では、2タイプのコンテキスト機能だけが例示のために示される。可能な異なるタイプのコンテキストに応じて、これらのコンテキストのすべてがレコードに保管される。
【0042】
図8を参照すると、本発明の好ましい実施形態による、プロセスのコンテキストの復元の流れ図が示されている。この処理は、ベース・コンテキストを復元することによって開始される(ステップ800)。ベース・コンテキストは、プロセスに関連するレコード内の情報を使用して、グラフィックス・アダプタ内で復元される。ベース・コンテキストには、グラフィックス・プロセスのコンテキストをセット・アップするためにデバイス・ドライバが呼び出された時にデバイス・ドライバによって行われたデフォルト設定が含まれる。テクスチャ機能がレコード内でセットされているかどうかに関する判定を行う(ステップ802)。テクスチャ機能がセットされている場合には、レコード内の情報を使用して、この機能のテクスチャ情報をグラフィックス・アダプタ内で復元する(ステップ804)。
【0043】
次に、ルックアップ機能がレコード内でセットされているかどうかに関する判定を行う(ステップ806)。ルックアップ機能がセットされている場合には、レコードを使用してグラフィックス・アダプタ内でルックアップ情報を復元し(ステップ808)、その後、処理が終了する。ステップ802で、テクスチャ機能がセットされていない場合には、処理は上で説明したステップ806に進む。ステップ808で、ルックアップ機能がセットされていない場合には、処理が終了する。この図には、ベース・コンテキスト情報のほかに2つの特定の機能に関するコンテキスト情報の復元だけが示されているが、本発明の機能は、レコード内で指定されるすべての機能についてコンテキストを復元する。
【0044】
図7および図8に示されたステップは、全コンテキストならびに部分コンテキストの保管および復元の両方に適用可能である。選択されたコンテキストに関連する com_record で、コンテキストの要素のすべてが使用されないことが示される場合には、部分保管が行われる。たとえば、図4の例で using_texture および using_lookup の両方がセットされない場合には、部分コンテキスト保管が行われる。同様に、コンテキスト情報の復元に関して、コンテキストの一部が使用されない場合に、全コンテキスト復元動作が必要でない場合がある。この機構は、図7および8のステップ702、706、802、および806に反映されている。
【0045】
ある量のスペースがコンテキスト変更に必要な時に、新しいスペースを割り振るためにコンテキストのサイズを変更することもできる。
【0046】
したがって、本発明は、複数のグラフィックス・プロセスが同一のグラフィックス・アダプタを共用することを可能にする、グラフィックス環境で使用される機構を提供する。この機構は、グラフィックス・アダプタ内で使用されるメモリの量をグラフィックス・プロセスの特定のコンテキストに基づいてリセットすることができるコンテキスト切替を可能にする。さらに、部分コンテキスト切替が必要な場合に、必要な情報だけがグラフィックス・アダプタ内に復元される。全コンテキスト変更ではなく部分コンテキスト変更が行われる場合によって、性能向上が実現される。保管し復元する必要がある情報が減るため、時間が節約される。
【0047】
本発明を完全に機能するデータ処理システムのコンテキストに関して説明してきたが、本発明の処理を、命令のコンピュータ可読媒体およびさまざまな形態で配布することができること、本発明が配布の実行に実際に使用される信号担持媒体の特定のタイプに無関係に同等に適用されることを当業者が諒解するであろうことに留意することは重要である。コンピュータ可読媒体の例には、フロッピ・ディスク、ハード・ディスク・ドライブ、RAM、CD−ROM、DVD−ROMなどの記録可能型媒体と、ディジタル通信リンク、アナログ通信リンク、有線通信リンク、または、たとえばラジオ周波数および光波伝送などの伝送形態を使用する無線通信リンクなどの伝送型媒体が含まれる。コンピュータ可読媒体は、特定のデータ処理システムでの実際の使用のためにデコードされるコード化されたフォーマットの形をとることができる。
【図面の簡単な説明】
【図1】
本発明の好ましい実施形態に従って本発明を実施することができるデータ処理システムの絵図である。
【図2】
本発明を実施することができるデータ処理システムのブロック図である。
【図3】
本発明の好ましい実施形態による、動的コンテキスト切替に使用される構成要素を示すブロック図である。
【図4】
本発明の好ましい実施形態による com_record を示す図である。
【図5】
本発明の好ましい実施形態によるコンテキストの確立の流れ図である。
【図6】
本発明の好ましい実施形態によるコンテキスト切替の処理の流れ図である。
【図7】
本発明の好ましい実施形態によるコンテキスト情報保管の流れ図である。
【図8】
本発明の好ましい実施形態による、プロセスのコンテキストの復元の流れ図である。
【発明の属する技術分野】
本発明は、全般的には改良されたデータ処理システムに関し、詳細には、グラフィックス・データを処理する方法および装置に関する。
【0002】
【従来の技術】
パーソナル・コンピュータおよびワーク・ステーションなどのデータ処理システムは、コンピュータ援用設計(CAD)アプリケーション、CAMアプリケーション、およびコンピュータ支援ソフトウェア・エンジニアリング(CASE)ツールを実行するために一般に使用されている。エンジニア、科学者、技師、および他の人が、これらのアプリケーションを毎日使用する。これらのアプリケーションは、有限要素法分析などの複雑な計算を用いて、構造内の応力をモデル化する。他のアプリケーションには、化学モデリング・アプリケーションまたは分子モデリング・アプリケーションが含まれる。CAD/CAM/CASEアプリケーションは普通、ユーザに伝えられる情報に関してグラフィックス集中型である。データ処理システム・ユーザは、デスクトップ・パブリッシング・アプリケーションなどの他のグラフィックス集中型アプリケーションを使用する場合がある。一般に、これらのアプリケーションのユーザは、データ処理システムが非常に高速のグラフィックス情報を提供可能であることを要求し、必要とする。
【0003】
ビデオ・ディスプレイ端末でのグラフィカル表示を実現するグラフィックス・データ・ストリームの処理は、高速応答する表示を提供するために、非常に高速のグラフィックス・システムを必要とする。このタイプのグラフィックス・システムでは、プリミティブが、処理および表示のために受け取られる。プリミティブは、たとえば点、線、円弧、円錐、または球面などのイメージを作成するための構成単位として使用されるグラフィックス要素である。プリミティブは、1つまたは複数の頂点のグループによって定義される。属性を使用して、プリミティブを表示する方法を定義する。属性には、たとえば、線の種類、色、および表面テクスチャが含まれる。頂点は、点、辺の端点、または、2つの辺が交わるポリゴンの角を定義する。データも頂点に関連し、このデータには、位置座標、色、法線、テクスチャ座標などの情報が含まれる。コマンドが、グラフィックス・システムに送られて、プリミティブおよび他のデータを表示のために処理する方法が定義される。
【0004】
グラフィックス・データ、特に3次元アプリケーションのグラフィックス・データを処理する際に大量のデータおよび計算が必要とされるため、これらの計算の多くは中央処理装置からグラフィックス・アダプタにオフロードされてきた。これらのグラフィックス・システムでは、グラフィックス・アダプタ内に配置されたグラフィックス・パイプラインが、このグラフィックス・データの処理に使用される。パイプラインを用いると、グラフィックス・データ処理が、処理要素のステージに分割され、その中で、データの処理を別々の処理要素によって順次実行することができる。
【0005】
マルチタスキング・グラフィックス環境では、複数のプロセスが、同一のグラフィックス・アダプタを共用することがしばしばである。各グラフィックス・プロセスが、グラフィックス・データをグラフィックス・アダプタに送るために、各プロセスが、レンダリング・コンテキストを必要とする。このレンダリング・コンテキストは、グラフィックス・データが特定のグラフィックス・プロセスから表示のためにグラフィックス・アダプタに送られる前に、コンテキスト切替ハンドラによって、グラフィックス・アダプタ上で復元される。コンテキスト切替ハンドラは、グラフィックス・プロセスに関するコンテキスト保管機能およびコンテキスト復元機能を実行し、その結果、各グラフィックス・プロセスが、グラフィックス・アダプタにアクセスできるようにする。異なるグラフィックス・プロセスのコンテキストは、大きく異なる場合がある。たとえば、3次元グラフィックス環境は、2次元グラフィックス環境と比較してかなり大きい。現在、コンテキスト・サイズは、すべてのグラフィックス・プロセスについて同一にセットされる。各プロセスのコンテキスト全体の切替が、グラフィックス・データを表示する処理を低速にする。さらに、この機構は、アダプタ内のメモリを浪費し、異なるプロセスに関するコンテキストの切替を低速にする。
【0006】
【発明が解決しようとする課題】
本発明は、データ処理システムにおいて、複数のグラフィック・プロセスに関するコンテキスト管理のための方法および装置を提供する。
【0007】
【課題を解決するための手段】
複数のグラフィックス・プロセス内の第1グラフィックス・プロセスからグラフィックス・アダプタにグラフィックス・データを送る要求が受け取られる。グラフィックス・アダプタが第1グラフィックス・プロセスからのグラフィックス・データを処理するのに、現在のコンテキストの完全な変更が必要であるかどうかに関する判定を行う。現在のコンテキストの一部だけが変更を必要とする場合には、変更される部分を保管する。その後、グラフィックス・プロセスに関するコンテキスト情報を検索し、メモリに格納されたコンテキストの組を使用して、必要な現在のコンテキスト情報に配置する。
【0008】
第1の態様では、本発明は、データ処理システムにおいて、複数のグラフィックス・プロセスからのデータを処理する方法であって、グラフィックス・データをグラフィックス・アダプタに送るためにグラフィックス・プロセスからの要求の受取りに応答して、前記複数のグラフィックス・プロセスからの前記グラフィックス・プロセスに関する前記グラフィックス・データを処理するために、前記グラフィックス・アダプタ内の現在のコンテキストの完全な変更が必要であるかどうかを判定すること、前記現在のコンテキストの完全な変更の必要がない場合に、メモリに格納されたコンテキストの組からの前記グラフィックス・アダプタ内の関連するコンテキストを使用して前記現在のコンテキストの一部を変更することを含み、前記関連するコンテキストが前記グラフィックス・プロセスに関連する、方法を提供する。
【0009】
第2の態様では、本発明は、データ処理システムにおいて、複数のグラフィックス・プロセスに関するコンテキスト管理のための方法であって、前記複数のグラフィックス・プロセス内の第1グラフィックス・プロセスから、グラフィックス・アダプタにグラフィックス・データを送る要求を受け取ること、前記グラフィックス・アダプタが前記第1グラフィックス・プロセスからの前記グラフィックス・データを処理して識別された量を形成するために、現在のコンテキストのすべてより少ない変更が必要であるかどうかを判定すること、メモリに格納されるコンテキストの組を使用して、前記現在のコンテキストの前記識別された量をもう1つのコンテキストに変更することを含み、前記現在のコンテキストのすべてより少ない変更がなされる、方法を提供する。
【0010】
第3の態様では、本発明は、複数のグラフィックス・プロセスからのデータを処理するデータ処理システムであって、グラフィックス・データをグラフィックス・アダプタに送るためにグラフィックス・プロセスからの要求の受取りに応答して、前記複数のグラフィックス・プロセスからの前記グラフィックス・プロセスに関する前記グラフィックス・データを処理するために、前記グラフィックス・アダプタ内の現在のコンテキストの完全な変更が必要であるかどうかを判定する判定手段と、前記現在のコンテキストの完全な変更の必要がない場合に、メモリに格納されたコンテキストの組からの前記グラフィックス・アダプタ内の関連するコンテキストを使用して前記現在のコンテキストの一部を変更する変更手段を含み、前記関連するコンテキストが前記グラフィックス・プロセスに関連する、データ処理システムを提供する。
【0011】
第4の態様では、本発明は、複数のグラフィックス・プロセスに関するコンテキスト管理のデータ処理システムであって、前記複数のグラフィックス・プロセス内の第1グラフィックス・プロセスから、グラフィックス・アダプタにグラフィックス・データを送る要求を受け取る受取り手段と、前記グラフィックス・アダプタが前記第1グラフィックス・プロセスからの前記グラフィックス・データを処理して識別された量を形成するために、現在のコンテキストのすべてより少ない変更が必要であるかどうかを判定する判定手段と、メモリに格納されるコンテキストの組を使用して、前記現在のコンテキストの前記識別された量をもう1つのコンテキストに変更する変更手段とを含み、前記現在のコンテキストのすべてより少ない変更がなされる、データ処理システムを提供する。
【0012】
第5の態様では、本発明は、複数のグラフィックス・プロセスからのデータを処理するためにデータ処理システムで使用される、機械可読媒体内のコンピュータ・プログラム製品であって、グラフィックス・データをグラフィックス・アダプタに送るためにグラフィックス・プロセスからの要求の受取りに応答して、前記複数のグラフィックス・プロセスからの前記グラフィックス・プロセスに関する前記グラフィックス・データを処理するために、前記グラフィックス・アダプタ内の現在のコンテキストの完全な変更が必要であるかどうかを判定する第1命令と、前記現在のコンテキストの完全な変更の必要がない場合に、メモリに格納されたコンテキストの組からの前記グラフィックス・アダプタ内の関連するコンテキストを使用して前記現在のコンテキストの一部を変更する第2命令とを含み、前記関連するコンテキストが前記グラフィックス・プロセスに関連する、コンピュータ・プログラム製品を提供する。
【0013】
第6の態様では、本発明は、複数のグラフィックス・プロセスに関するコンテキスト管理のためにデータ処理システムで使用される、機械可読媒体内のコンピュータ・プログラム製品であって、前記複数のグラフィックス・プロセス内の第1グラフィックス・プロセスから、グラフィックス・アダプタにグラフィックス・データを送る要求を受け取る第1命令と、前記グラフィックス・アダプタが前記第1グラフィックス・プロセスからの前記グラフィックス・データを処理して識別された量を形成するために、現在のコンテキストのすべてより少ない変更が必要であるかどうかを判定する第2命令と、メモリに格納されるコンテキストの組を使用して、前記現在のコンテキストの前記識別された量をもう1つのコンテキストに変更する第3命令とを含み、前記現在のコンテキストのすべてより少ない変更がなされる、コンピュータ・プログラム製品を提供する。
【0014】
本発明によるコンピュータ・プログラムを、計算機可読記録媒体に記録されたプログラム・コードを含むプログラム製品として使用可能にすることができる。
【0015】
例として添付図面に関して、本発明の好ましい実施形態をこれから詳細に説明する。
【0016】
【発明の実施の形態】
ここで図面、具体的には図1を参照すると、本発明の好ましい実施形態に従って本発明を実施することができるデータ処理システムを絵で表したものが示されている。コンピュータ100が示されており、このコンピュータ100には、システム・ユニット110、ビデオ・ディスプレイ端末102、キーボード104、フロッピ・ドライブおよび他のタイプのパーマネント・ストレージ・メディアおよび取外し可能ストレージ・メディアを含めることができるストレージ・デバイス108、およびマウス106が含まれる。たとえば、ジョイスティック、タッチパッド、タッチ・スクリーン、トラックボール、マイクロフォン、および類似物などの追加の入力装置を、コンピュータ100に含めることができる。コンピュータ100は、米国IBM社の製品である、IBM RS/6000コンピュータまたはIntelliStationコンピュータなどの、適当なコンピュータを使用して実施することができる。図の表現では、コンピュータが示されているが、本発明の他の実施形態を、ネットワーク・コンピュータなどの他のタイプのデータ処理システムで実施することができる。コンピュータ100には、コンピュータ100内で動作する、コンピュータ可読媒体に常駐するシステム・ソフトウェアによって実施することができる、グラフィカル・ユーザ・インターフェースも含まれることが好ましい。
【0017】
図2を参照すると、本発明を実施することができるデータ処理システムのブロック図が示されている。データ処理システム200は、図1のコンピュータ100など、本発明の処理を実施するコードまたは命令を配置することができるコンピュータの例である。データ処理システム200では、PCIローカル・バス・アーキテクチャが使用される。図示の例では、PCIバスが使用されるが、AGPおよびISAなどの他のバス・アーキテクチャを使用することができる。プロセッサ202および主記憶204が、PCIブリッジ208を介してPCIローカル・バス206に接続される。PCIブリッジ208には、プロセッサ202用の統合されたメモリ・コントローラおよびキャッシュ・メモリも含めることができる。PCIローカル・バス206への追加の接続を、直接構成要素相互接続(direct component interconnection)またはアドイン・ボードを介して行うことができる。図示の例では、LANアダプタ210、SCSIホスト・バス・アダプタ212、および拡張バス・インターフェース214が、直接構成要素接続によってPCIローカル・バス206に接続される。対照的に、オーディオ・アダプタ216およびグラフィックス・アダプタ218は、拡張スロットに挿入されるアドイン・ボードによってPCIローカル・バス206に接続される。拡張バス・インターフェース214は、キーボードおよびマウス・アダプタ220、モデム222、および追加メモリ224の接続を提供する。SCSIホスト・バス・アダプタ212は、ハード・ディスク・ドライブ226、テープ・ドライブ228、およびCD−ROMドライブ230の接続を提供する。通常のPCIローカル・バス実施形態では、3つまたは4つのPCI拡張スロットまたはアドイン・コネクタがサポートされる。
【0018】
オペレーティング・システムが、プロセッサ202上で稼動し、図2のデータ処理システム200内のさまざまな構成要素を調整し、制御を提供するのに使用される。オペレーティング・システムは、Microsoft Corporation社が市販するWindows(R)2000などの商業的に入手可能なオペレーティング・システムとすることができる。Java(R)などのオブジェクト指向プログラミング・システムが、オペレーティング・システムと共に稼動することができ、データ処理システム200上で実行されるJava(R)プログラムまたはJava(R)アプリケーションからオペレーティング・システムへの呼出しを提供する。「Java(R)」は、Sun Microsystems,Inc.社の商標である。オペレーティング・システム、オブジェクト指向オペレーティング・システム、およびアプリケーションまたはプログラムの命令は、ハード・ディスク・ドライブ226などのストレージ・デバイスに配置され、プロセッサ202による実行のために主記憶204にロードされることができる。具体的に言うと、本発明は、グラフィックス・アダプタ218などのグラフィックス・アダプタにグラフィックス・データを送る異なるプロセスのコンテキストを動的に切り替える機構を提供する。この長所は、グラフィックス・アダプタ218を共用する異なるプロセスのコンテキストを格納するためのメモリの割振りの使用を介して提供される。
【0019】
当業者は、図2のハードウェアを、実施形態に応じて変更できることを諒解するであろう。フラッシュROM(または同等の不揮発性メモリ)または光ディスク・ドライブおよび類似物などの他の内部ハードウェアまたは周辺装置を、図2に示されたハードウェアに追加して、またはその代わりに使用することができる。また、本発明の処理は、マルチプロセッサ・データ処理システムに適用することができる。
【0020】
たとえば、データ処理システム200は、任意選択としてネットワーク・コンピュータとして構成される場合に、任意選択の包含を示す図2の破線232によって示されるように、SCSIホスト・バス・アダプタ212、ハード・ディスク・ドライブ226、テープ・ドライブ228、およびCD−ROMドライブ230を含まないものとすることができる。その場合には、コンピュータ(正しくはクライアント・コンピュータと呼ばれる)に、LANアダプタ210、モデム222、または類似物など、あるタイプのネットワーク通信インターフェースが含まれなければならない。もう1つの例として、データ処理システム200は、データ処理システムにあるタイプのネットワーク通信インターフェースが含まれるかどうかに無関係に、あるタイプのネットワーク通信インターフェースに頼らずにブート可能になるように構成された独立型システムとすることができる。もう1つの例として、データ処理システム200を、オペレーティング・システム・ファイルまたはユーザ生成データあるいはその両方の格納用の不揮発性メモリを提供するためにROMまたはフラッシュROMあるいはその両方を用いて構成される携帯情報端末(PDA)とすることができる。
【0021】
図2に示された例および上述した例は、アーキテクチャ的制限を暗示することを意図されてはいない。たとえば、データ処理システム200を、PDAの形態をとるほかに、ノートブック・コンピュータまたはハンド・ヘルド・コンピュータとすることもできる。データ処理システム200を、キオスクまたはウェブ機器とすることもできる。
【0022】
本発明の処理は、たとえば主記憶204、追加メモリ224、あるいは1つまたは複数のハード・ディスク・ドライブ226、テープ・ドライブ228、およびCD−ROMドライブ230などのメモリに配置することができるコンピュータに実施される命令を使用して、プロセッサ202によって実行される。
【0023】
本発明は、複数のグラフィックス・プロセスが同一のグラフィックス・アダプタを共用する、マルチタスキング・グラフィックス環境での機構を提供する。たとえば図2の主記憶204などのデータ処理システム内のメモリの一部が、コンテキスト切替に使用するために割り振られる。これらの例では、メモリ割振りが、固定バッファの形である。固定バッファとは、ディスク空間が最近使用されていない情報に関する拡張メモリとして使用される仮想記憶コンピュータ・システムの場合などのように、ディスクにスワップ・アウトされないバッファである。固定バッファまたは他の固定メモリを使用することによって、デバイス・ドライバが、情報をディスク・ドライブからスワップ・インする必要なしに、メモリ内で情報にすばやくアクセスできるようになる。
【0024】
グラフィックス・プロセスは、この固定バッファにアクセスして、ある事前定義の機能またはアクションが必要であるかどうかを指定することができる。これらの機能には、たとえば、テクスチャ・マッピングおよびカラー・ルックアップが含まれる。他の機能には、たとえば、デプス・バッファ・テスティングに関する情報、ハードウェア・ライティング、テクスチャ・マッピングの変形であるバンプマッピング、およびアンチエイリアス動作が含まれる。
【0025】
コンテキスト切替が発生する時に、コンテキスト切替機構が、固定バッファを読み取って、全コンテキスト切替が必要であるか、部分コンテキスト切替が必要であるかを判断する。コンテキストは、1つの時点で指定される情報またはパラメータである。この情報は、コマンドの時点で動作を実行するために再び述べるか再指定しなくてもよいが、コマンドの動作に必ず影響する。たとえば、あるプログラムを、色がコンテキストである場合に、緑の色を使用して線の組を描画するのに使用することができる。第2のプログラムを、赤の色を使用して線の第2の組を描画するのに使用することができる。第1のプログラムが稼動する時に、色に緑がセットされる。プログラム1が線の描画を終了する前に割込みが発生し、プログラム2が稼動を開始する。プログラム2は、色に赤をセットし、線の描画を開始する。第2の割込みが発生し、プログラム1が実行を再開する。この時に、色には赤がセットされている。プログラム1は、線を描画するたびに色をリセットすることはしない。その結果、この場合には線の色であるコンテキストが、プログラム1に関して緑にリセットされない場合に、線が誤った色で描画される。この例では、デバイス・ドライバを使用して、コンテキストを緑に復元する。この形で、プログラムが、コンテキスト情報を追跡する必要がなくなる。
【0026】
この情報は、グラフィックス・アダプタ内のメモリを割り振るのに使用する必要があるグラフィックス・コンテキストのサイズを判断するのに使用されることもできる。コンテキストとみなされる他の情報には、たとえば、照明またはクリッピングがイネーブルされているかどうか、プリミティブが線描されるか塗り潰されるか、現在の線の点刻パターン、および現在のテクスチャ・ブレンディング関数が含まれる。
【0027】
図3すなわち、本発明の好ましい実施形態による、動的コンテキスト切替に使用される構成要素を示すブロック図に移る。この例では、アプリケーション300、302、および304が、マルチタスキング・グラフィックス環境内にあり、図2のグラフィックス・アダプタ218などの単一のグラフィックス・アダプタを共用する。図からわかるように、各アプリケーションに、表示用のグラフィックス・データを生成するグラフィックス・プロセスが含まれる。もちろん、特定のアプリケーションに依存して、1つのアプリケーションが複数のグラフィックス・プロセスを含むことができる。これらのアプリケーションは、オペレーティング・システム308内のデバイス・ドライバ306にグラフィックス・データを送る。デバイス・ドライバは、グラフィックス・アダプタ218などの周辺装置をオペレーティング・システムにリンクするプログラムまたはルーチンである。特定のデバイス・ドライバが、アプリケーション300、302、および304からの要求およびデータなどの要求およびデータを受け取り、これらの要求を、周辺装置によって認識される特定のコマンド言語およびフォーマットに変換する。
【0028】
この例では、アプリケーション300、302、および304が、バッファ310にアクセスして、コンテキスト情報を書き込み、変更することができる。コンテキスト情報は、この例では com_record 312の形をとる。これらのアプリケーションの1つが、グラフィックス・アダプタでの表示のためにデバイス・ドライバ306にグラフィックス・データを送る時に、デバイス・ドライバ306は、バッファ310内の com_record 312を見て、コンテキスト切替が必要であるかどうかを調べる。コンテキスト切替が必要な場合には、デバイス・ドライバ306は、部分的コンテキスト切替と全コンテキスト切替のどちらが必要であるかを判断することもできる。この判定に基づいて、デバイス・ドライバ306は、グラフィックス・アダプタ内のコンテキストを選択的に切り替える。コンテキストの切替の一部として、デバイス・ドライバ306は、グラフィックス・アダプタ内のメモリの、コンテキストに関する割振りを動的に変更するために、グラフィックス・コンテキストのサイズを変更することもできる。この形で、特定のコンテキストについてより少ないメモリが必要である時に、より多くのメモリが、他の使用のためにグラフィックス・アダプタ内で使用可能にされる。デバイス・ドライバは、グラフィックス・アダプタなど、ハードウェアのそれぞれについて存在する。デバイス・ドライバは、潜在的なコンテキスト情報を意識し、通常は、すべてのコンテキスト情報を保管する。特定のコンテキストに必要なメモリの量は、デバイスドライバから、またはグラフィックス・アダプタのためにデバイス・ドライバによって保管された情報から得ることができる。
【0029】
これらの例では、フラグをセットして、コンテキストのうちでアクティブに使用される1つまたは複数の部分を識別する。デバイス・ドライバは、そのフラグを使用して、保管する必要があるコンテキストと保管する必要がないコンテキストを識別する。
【0030】
図4を参照すると、本発明の好ましい実施形態による1つの com_record を示す図が示されている。 com_record 400は、特定のプロセスについてどのコンテキスト情報が使用されているかを識別するために使用される。 com_record 400を使用することによって、本発明の機構は、新しいプロセスが処理のためにグラフィックス・データを送っている時に、全コンテキスト切替が必要であるかどうかを判定できるようになる。
【0031】
この例の com_record 400には、 com_record 400に関連するプロセスについてテクスチャ機能およびルックアップ機能がセットされていることの識別が含まれる。この例では、各プロセスに com_record が関連する。 com_record 400は、コンテキスト情報の数行の例である。これらの行は、特定のプロセスによって現在使用されているコンテキストを識別するインジケータまたはフラグである。コンテキストには、通常は、コンテキストを識別する数百個の要素が含まれる。コンテキストを作成する際に、プロセスは、コンテキストを開始する時にそのコンテキストを作成する。グラフィックス・プロセスは、API呼出しを行って、1つまたは複数のグラフィックス・コンテキストを作成する。特定のコンテキストをアクティブにする時に、グラフィックス・プロセスは、API呼出しを使用して、特定のコンテキストをウィンドウに関連付ける。この形で、グラフィックス・プロセス、コンテキスト、およびウィンドウの間に関係が存在する。コンテキストは、デバイス・ドライバによって供給される一意の識別子を介して識別される。この一意の識別子は、コンテキストを作成するのに使用されるAPI呼出しを介してアプリケーションに与えられる。この一意の識別子は、 com_record 400に格納される。この形で、デバイス・ドライバが、各コンテキストの一意の識別子と、アクティブに使用されるコンテキストの部分に関するAPIによって供給される情報との間の一意の対を有する。
【0032】
APIによって、共用メモリ内で com_record 400が作成され、デバイス・ドライバに、 com_record 400が共用メモリのどこに配置されたかが、デバイス・ドライバへの正確に1回の呼出しを介して伝えられる。その後、デバイス・ドライバは、共用メモリを調べて、コンテキスト切替に関する判断を行う。この情報が変更される場合には、アプリケーションが、共用メモリを更新する。たとえば、アプリケーションが開始され、アプリケーションが共用メモリを初期化して、 using_texture が偽であり、 using_lookup が偽であるようにする。次に、アプリケーションはデバイス・ドライバを呼び出して、共用メモリがどこにあるかとその共用メモリが使用の準備ができていることを伝える。その後、デバイス・ドライバが、コンテキスト切替を行う。デバイス・ドライバは、コンテキストを保管する時に、 using_texture が偽であったことを知り、したがって、デバイス・ドライバはテクスチャ情報を保管しない。デバイス・ドライバは using_lookup が偽であることを知り、したがって、ルックアップ情報を保管しない。デバイス・ドライバがこのプロセスをアクティブ・モードに切り替える時には、デバイス・ドライバは using_texture が偽であることを知り、したがって、デバイス・ドライバはテクスチャ情報を復元しない。デバイス・ドライバは using_lookup が偽であったことを知り、したがって、デバイス・ドライバは、ルックアップ・テーブル情報を復元しない。アプリケーションが、テクスチャ・ルックアップの使用を開始する。アプリケーションは、共用メモリの「using_lookup」と呼ばれる部分に真を書き込む。デバイス・ドライバが、このコンテキストをオフに切り替える。デバイス・ドライバは共用メモリの com_record を調べ、 using_texture が偽であることを知り、したがって、テクスチャ情報を保管しない。デバイス・ドライバは using_lookup が真であることを知り、したがって、デバイス・ドライバはルックアップ情報を保管する。その後、デバイス・ドライバがこのコンテキストをオンに切り替える。デバイス・ドライバは共用メモリの com_record を調べ、 using_texture が偽であることを知り、したがって、デバイス・ドライバはテクスチャ情報を復元しない。デバイス・ドライバは、 using_lookup が真であることを知り、したがって、デバイス・ドライバはルックアップ情報を復元する。
【0033】
図5を参照すると、本発明の好ましい実施形態によるコンテキストの確立の流れ図が示されている。図5に示された処理は、図3のアプリケーション300、302、または304などのアプリケーションによって使用される処理の例である。
【0034】
この処理は、レコードの作成によって開始される(ステップ500)。この例では、レコードが、図4の com_record 400などの com_record の形をとる。もちろん、レコードは、テーブル内の項目またはデータベース内のレコードなど、さまざまな形をとることができる。事前定義の機能が、レコードにセットされる(ステップ502)。図示の例では、これらの機能に、テクスチャ機能およびルックアップ機能が含まれる。ベース・コンテキストをセット・アップする際に、デバイス・ドライバはコンテキストを作成する呼出しを受け取り、デフォルト値またはデフォルト機能を使用してベース・コンテキストをセット・アップする。たとえば、デフォルトの線の色を、ベース・コンテキストに設けることができる。コンテキストとウィンドウの間のペアリングが行われる時に、幅、高さ、およびウィンドウ・タイプなどの追加情報がコンテキストに追加される。この情報は、特定のプロセスに関連するコンテキスト・レコードに追加される。
【0035】
その後、グラフィックス動作がグラフィックス・アプリケーションまたはグラフィックス・プロセスによって実行され(ステップ540)、その後、処理が終了する。グラフィックス・アプリケーションまたはグラフィックス・プロセスは、デバイス・ドライバによって作成されたコンテキストをアプリケーションが要求するたびに一意のレコードを作成する。この情報は、コンテキストが破棄されるか、プロセスが終了するまで存在する。
【0036】
図6に移ると、本発明の好ましい実施形態によるコンテキスト切替の流れ図が示されている。図6に示された処理は、図3のデバイス・ドライバ306などのデバイス・ドライバ内で実施することができる。もちろん、この処理を、実施形態に応じてほかのところで実施することができる。たとえば、この処理を、グラフィックス・カーネル内で実施することができる。
【0037】
イベントのシーケンスは、グラフィックス・データをグラフィックス・アダプタに送る、プロセスからの要求を受け取ることによって開始される(ステップ600)。現在のコンテキストが、その要求を行うプロセスについて正しいかどうかに関する判定を行う(ステップ602)。現在のコンテキストが正しくない場合には、プロセスに関連するレコードを識別する(ステップ604)。この例では、レコードが、固定バッファ内に配置された com_record である。
【0038】
次に、全コンテキスト切替が必要であるかどうかに関する判定を行う(ステップ606)。全コンテキスト切替が必要である場合には、現在のコンテキストを保管し(ステップ608)、プロセスに必要なコンテキストを復元するか、使用に適当な位置に配置する(ステップ610)。要求内のグラフィックス・データまたはコマンドあるいはその両方をアダプタに送り(ステップ612)、その後、フローが終了する。
【0039】
ステップ606をもう一度参照すると、全コンテキスト切替が必要でない場合には、現在のコンテキストを保管する(ステップ614)。ステップ614では、現在のコンテキストのうちで変更される部分だけが保管される。その後、プロセスについて識別されたコンテキストの部分を復元し(ステップ616)、その後、フローは、上で説明したステップ612に進む。言い換えると、変更される必要があるコンテキスト情報が、検索され、現在のコンテキストに配置されて、現在のコンテキストが修正される。ステップ602に戻ると、グラフィックス・アダプタ内の現在のコンテキストが、要求を送るプロセスに関して正しい場合には、フローは、上で説明したステップ612に進む。
【0040】
図7に進むと、本発明の好ましい実施形態によるコンテキスト情報を保管する処理の流れ図が示されている。この処理はコンテキスト切替中に使用され、図3のデバイス・ドライバ306などのデバイス・ドライバ内で実施される。
【0041】
この処理は、プロセスのコンテキストに関連するレコードにベース・コンテキスト情報を保管することによって開始される(ステップ700)。テクスチャがコンテキスト内でセットされたかどうかに関する判定を行う(ステップ702)。テクスチャがセットされた場合には、テクスチャ情報をレコードに保管する(ステップ704)。次に、ルックアップ機能がコンテキスト内でセットされたかどうかに関する判定を行う(ステップ706)。ルックアップがセットされた場合にはルックアップ情報を保管し(ステップ708)、その後、処理が終了する。これらの機能のどちらもセットされていない場合には、処理は、ベース・コンテキスト情報だけを保管して終了する。この例では、2タイプのコンテキスト機能だけが例示のために示される。可能な異なるタイプのコンテキストに応じて、これらのコンテキストのすべてがレコードに保管される。
【0042】
図8を参照すると、本発明の好ましい実施形態による、プロセスのコンテキストの復元の流れ図が示されている。この処理は、ベース・コンテキストを復元することによって開始される(ステップ800)。ベース・コンテキストは、プロセスに関連するレコード内の情報を使用して、グラフィックス・アダプタ内で復元される。ベース・コンテキストには、グラフィックス・プロセスのコンテキストをセット・アップするためにデバイス・ドライバが呼び出された時にデバイス・ドライバによって行われたデフォルト設定が含まれる。テクスチャ機能がレコード内でセットされているかどうかに関する判定を行う(ステップ802)。テクスチャ機能がセットされている場合には、レコード内の情報を使用して、この機能のテクスチャ情報をグラフィックス・アダプタ内で復元する(ステップ804)。
【0043】
次に、ルックアップ機能がレコード内でセットされているかどうかに関する判定を行う(ステップ806)。ルックアップ機能がセットされている場合には、レコードを使用してグラフィックス・アダプタ内でルックアップ情報を復元し(ステップ808)、その後、処理が終了する。ステップ802で、テクスチャ機能がセットされていない場合には、処理は上で説明したステップ806に進む。ステップ808で、ルックアップ機能がセットされていない場合には、処理が終了する。この図には、ベース・コンテキスト情報のほかに2つの特定の機能に関するコンテキスト情報の復元だけが示されているが、本発明の機能は、レコード内で指定されるすべての機能についてコンテキストを復元する。
【0044】
図7および図8に示されたステップは、全コンテキストならびに部分コンテキストの保管および復元の両方に適用可能である。選択されたコンテキストに関連する com_record で、コンテキストの要素のすべてが使用されないことが示される場合には、部分保管が行われる。たとえば、図4の例で using_texture および using_lookup の両方がセットされない場合には、部分コンテキスト保管が行われる。同様に、コンテキスト情報の復元に関して、コンテキストの一部が使用されない場合に、全コンテキスト復元動作が必要でない場合がある。この機構は、図7および8のステップ702、706、802、および806に反映されている。
【0045】
ある量のスペースがコンテキスト変更に必要な時に、新しいスペースを割り振るためにコンテキストのサイズを変更することもできる。
【0046】
したがって、本発明は、複数のグラフィックス・プロセスが同一のグラフィックス・アダプタを共用することを可能にする、グラフィックス環境で使用される機構を提供する。この機構は、グラフィックス・アダプタ内で使用されるメモリの量をグラフィックス・プロセスの特定のコンテキストに基づいてリセットすることができるコンテキスト切替を可能にする。さらに、部分コンテキスト切替が必要な場合に、必要な情報だけがグラフィックス・アダプタ内に復元される。全コンテキスト変更ではなく部分コンテキスト変更が行われる場合によって、性能向上が実現される。保管し復元する必要がある情報が減るため、時間が節約される。
【0047】
本発明を完全に機能するデータ処理システムのコンテキストに関して説明してきたが、本発明の処理を、命令のコンピュータ可読媒体およびさまざまな形態で配布することができること、本発明が配布の実行に実際に使用される信号担持媒体の特定のタイプに無関係に同等に適用されることを当業者が諒解するであろうことに留意することは重要である。コンピュータ可読媒体の例には、フロッピ・ディスク、ハード・ディスク・ドライブ、RAM、CD−ROM、DVD−ROMなどの記録可能型媒体と、ディジタル通信リンク、アナログ通信リンク、有線通信リンク、または、たとえばラジオ周波数および光波伝送などの伝送形態を使用する無線通信リンクなどの伝送型媒体が含まれる。コンピュータ可読媒体は、特定のデータ処理システムでの実際の使用のためにデコードされるコード化されたフォーマットの形をとることができる。
【図面の簡単な説明】
【図1】
本発明の好ましい実施形態に従って本発明を実施することができるデータ処理システムの絵図である。
【図2】
本発明を実施することができるデータ処理システムのブロック図である。
【図3】
本発明の好ましい実施形態による、動的コンテキスト切替に使用される構成要素を示すブロック図である。
【図4】
本発明の好ましい実施形態による com_record を示す図である。
【図5】
本発明の好ましい実施形態によるコンテキストの確立の流れ図である。
【図6】
本発明の好ましい実施形態によるコンテキスト切替の処理の流れ図である。
【図7】
本発明の好ましい実施形態によるコンテキスト情報保管の流れ図である。
【図8】
本発明の好ましい実施形態による、プロセスのコンテキストの復元の流れ図である。
Claims (25)
- データ処理システムにおいて、複数のグラフィックス・プロセスからのデータを処理する方法であって、
グラフィックス・データをグラフィックス・アダプタに送るためにグラフィックス・プロセスからの要求の受け取りに応答して、前記複数のグラフィックス・プロセスからの前記グラフィックス・プロセスに関する前記グラフィックス・データを処理するために、前記グラフィックス・アダプタ内の現在のコンテキストの完全な変更が必要であるかどうかを判定するステップと、
前記現在のコンテキストの完全な変更の必要がない場合に、メモリに格納されたコンテキストの組からの前記グラフィックス・アダプタ内の関連するコンテキストを使用して前記現在のコンテキストの一部を変更するステップとを含み、
前記関連するコンテキストが前記グラフィックス・プロセスに関連する、
方法。 - 前記コンテキストがテクスチャ・マッピングおよびカラー・ルックアップを含む、請求項1に記載の方法。
- 前記現在のコンテキストが2次元グラフィックス環境に関する、請求項1または2に記載の方法。
- 前記現在のコンテキストが3次元グラフィックス環境に関する、請求項1または2に記載の方法。
- 前記メモリがバッファである、請求項1に記載の方法。
- 前記バッファがコンテキストの組を格納する、請求項5に記載の方法。
- 前記コンテキストの組がグラフィックス・プロセスの組によってアクセス可能である、請求項1ないし6のいずれか一項に記載の方法。
- 前記関連するコンテキストを復元する前に、前記現在のコンテキストを保管することをさらに含む、請求項1ないし7のいずれか一項に記載の方法。
- 前記現在のコンテキストが、前記複数のグラフィックス・プロセス内のもう1つのグラフィックス・プロセスに関連する、請求項1ないし8のいずれか一項に記載の方法。
- データ処理システムにおいて、複数のグラフィックス・プロセスに関するコンテキスト管理のための方法であって、
前記複数のグラフィックス・プロセス内の第1グラフィックス・プロセスからグラフィックス・アダプタにグラフィックス・データを送る要求を受け取るステップと、
前記グラフィックス・アダプタが前記第1グラフィックス・プロセスからの前記グラフィックス・データを処理して識別された量を形成するために、現在のコンテキストのすべてより少ない変更が必要であるかどうかを判定するステップと、
メモリに格納されるコンテキストの組を使用して、前記現在のコンテキストの前記識別された量をもう1つのコンテキストに変更するステップとを含み、
前記現在のコンテキストのすべてより少ない部分が変更される、
方法。 - 現在のコンテキストのすべてより少ない変更が、前記グラフィックス・アダプタが前記第1グラフィックス・プロセスからの前記グラフィックス・データを処理するのに不十分であると判定された場合に、前記現在のコンテキストのすべてを変更するステップをさらに含む、請求項10に記載の方法。
- 前記グラフィックス・データを前記グラフィックス・アダプタに送るステップをさらに含む、請求項11に記載の方法。
- 前記変更するステップが、
前記コンテキストの組を使用して、前記現在のコンテキストを前記もう1つのコンテキストに置換するステップを含む、請求項11または12に記載の方法。 - 前記変更するステップが、
前記もう1つのコンテキストを形成するために、前記現在のコンテキストの一部を前記コンテキストの組からのコンテキスト情報に置換するステップを含む、請求項11ないし13のいずれか一項に記載の方法。 - 前記複数のグラフィックス・プロセス内のグラフィックス・プロセスが、前記グラフィックス・プロセスに関連するコンテキストにコンテキスト情報を書き込む、請求項10ないし14のいずれか一項に記載の方法。
- 複数のグラフィックス・プロセスからのデータを処理するデータ処理システムであって、
グラフィックス・データをグラフィックス・アダプタに送るためにグラフィックス・プロセスからの要求の受取りに応答して、前記複数のグラフィックス・プロセスからの前記グラフィックス・プロセスに関する前記グラフィックス・データを処理するために、前記グラフィックス・アダプタ内の現在のコンテキストの完全な変更が必要であるかどうかを判定する判定手段と、
前記現在のコンテキストの完全な変更の必要がない場合に、メモリに格納されたコンテキストの組からの前記グラフィックス・アダプタ内の関連するコンテキストを使用して前記現在のコンテキストの一部を変更する変更手段を含み、
前記関連するコンテキストが前記グラフィックス・プロセスに関連する、
データ処理システム。 - 前記関連するコンテキストを復元する前に、前記現在のコンテキストを保管する保管手段をさらに含む、請求項16に記載のデータ処理システム。
- 前記現在のコンテキストが、前記複数のグラフィックス・プロセス内のもう1つのグラフィックス・プロセスに関連する、請求項16に記載のデータ処理システム。
- 複数のグラフィックス・プロセスに関するコンテキスト管理のデータ処理システムであって、
前記複数のグラフィックス・プロセス内の第1グラフィックス・プロセスからグラフィックス・アダプタにグラフィックス・データを送る要求を受け取る受取り手段と、
前記グラフィックス・アダプタが前記第1グラフィックス・プロセスからの前記グラフィックス・データを処理して識別された量を形成するために、現在のコンテキストのすべてより少ない変更が必要であるかどうかを判定する判定手段と、
メモリに格納されるコンテキストの組を使用して、前記現在のコンテキストの前記識別された量をもう1つのコンテキストに変更する変更手段を含み、
前記現在のコンテキストのすべてより少ない変更がなされる、
データ処理システム。 - 現在のコンテキストのすべてより少ない変更が、前記グラフィックス・アダプタが前記第1グラフィックス・プロセスからの前記グラフィックス・データを処理するのに不十分であると判定された場合に、前記現在のコンテキストのすべてを変更する変更手段をさらに含む、請求項19に記載のデータ処理システム。
- 前記グラフィックス・データを前記グラフィックス・アダプタに送る送出手段をさらに含む、請求項19に記載のデータ処理システム。
- 前記変更する変更手段が、
前記コンテキストの組を使用して、前記現在のコンテキストを前記もう1つのコンテキストに置換する置換手段を含む、請求項19に記載のデータ処理システム。 - 前記変更する変更手段が、
前記もう1つのコンテキストを形成するために、前記現在のコンテキストの一部を前記コンテキストの組からのコンテキスト情報に置換する置換手段を含む、請求項19に記載のデータ処理システム。 - 複数のグラフィックス・プロセスからのデータを処理するためにデータ処理システムで使用される、機械可読媒体に記録されたプログラム・コードを含むコンピュータ・プログラムであって、
前記コンピュータ・プログラムはコンピュータに実行させる
グラフィックス・データをグラフィックス・アダプタに送るためにグラフィックス・プロセスからの要求の受取りに応答して、前記複数のグラフィックス・プロセスからの前記グラフィックス・プロセスに関する前記グラフィックス・データを処理するために、前記グラフィックス・アダプタ内の現在のコンテキストの完全な変更が必要であるかどうかを判定する第1命令と、
前記現在のコンテキストの完全な変更の必要がない場合に、メモリに格納されたコンテキストの組からの前記グラフィックス・アダプタ内の関連するコンテキストを使用して前記現在のコンテキストの一部を変更する第2命令とを含み、
前記関連するコンテキストが前記グラフィックス・プロセスに関連する、
コンピュータ・プログラム。 - 複数のグラフィックス・プロセスに関するコンテキスト管理のためにデータ処理システムで使用される、機械可読媒体に記録されたプログラム・コードを含むコンピュータ・プログラムであって、
前記コンピュータ・プログラムはコンピュータに実行させる
前記複数のグラフィックス・プロセス内の第1グラフィックス・プロセスから、グラフィックス・アダプタにグラフィックス・データを送る要求を受け取る第1命令と、
前記グラフィックス・アダプタが前記第1グラフィックス・プロセスからの前記グラフィックス・データを処理して識別された量を形成するために、現在のコンテキストのすべてより少ない変更が必要であるかどうかを判定する第2命令と、
メモリに格納されるコンテキストの組を使用して、前記現在のコンテキストの前記識別された量をもう1つのコンテキストに変更する第3命令とを含み、
前記現在のコンテキストのすべてより少ない部分が変更される、
コンピュータ・プログラム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US62035500A | 2000-07-20 | 2000-07-20 | |
| PCT/GB2001/003226 WO2002009083A2 (en) | 2000-07-20 | 2001-07-19 | Method and apparatus for graphics context switching |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2004505355A true JP2004505355A (ja) | 2004-02-19 |
Family
ID=24485600
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2002514706A Pending JP2004505355A (ja) | 2000-07-20 | 2001-07-19 | データ処理システムにおける動的グラフィックス・コンテキスト切替の方法および装置 |
Country Status (10)
| Country | Link |
|---|---|
| EP (1) | EP1303849B1 (ja) |
| JP (1) | JP2004505355A (ja) |
| KR (1) | KR20030020367A (ja) |
| CN (1) | CN1282127C (ja) |
| AT (1) | ATE304731T1 (ja) |
| AU (1) | AU7086101A (ja) |
| CA (1) | CA2418209A1 (ja) |
| DE (1) | DE60113431T2 (ja) |
| TW (1) | TW531706B (ja) |
| WO (1) | WO2002009083A2 (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006065443A (ja) * | 2004-08-25 | 2006-03-09 | Vodafone Kk | データ処理方法及び移動通信端末装置 |
| US7612781B2 (en) | 2004-09-22 | 2009-11-03 | Sony Computer Entertainment Inc. | Memory control method of graphic processor unit |
Families Citing this family (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3543942B2 (ja) * | 2000-03-02 | 2004-07-21 | 株式会社ソニー・コンピュータエンタテインメント | 画像生成装置 |
| US6947051B2 (en) | 2003-02-18 | 2005-09-20 | Microsoft Corporation | Video memory management |
| US7673304B2 (en) * | 2003-02-18 | 2010-03-02 | Microsoft Corporation | Multithreaded kernel for graphics processing unit |
| US7444637B2 (en) | 2003-02-18 | 2008-10-28 | Microsoft Corporation | Systems and methods for scheduling coprocessor resources in a computing system |
| US7421694B2 (en) * | 2003-02-18 | 2008-09-02 | Microsoft Corporation | Systems and methods for enhancing performance of a coprocessor |
| KR101130361B1 (ko) | 2003-02-18 | 2012-09-18 | 마이크로소프트 코포레이션 | 코프로세서 내의 연산을 스트림라인하는 방법 |
| US7545381B2 (en) * | 2005-11-10 | 2009-06-09 | Via Technologies, Inc. | Interruptible GPU and method for context saving and restoring |
| CN102945162B (zh) * | 2011-10-26 | 2016-12-21 | 微软技术许可有限责任公司 | 用于设备实现逻辑cpu划分的使用热度图表示的方法和装置 |
| US10114679B2 (en) | 2011-10-26 | 2018-10-30 | Microsoft Technology Licensing, Llc | Logical CPU division usage heat map representation |
| KR101869939B1 (ko) | 2012-01-05 | 2018-06-21 | 삼성전자주식회사 | 멀티-쓰레딩을 사용하는 그래픽 처리를 위한 방법 및 장치 |
| KR101953133B1 (ko) | 2012-02-27 | 2019-05-22 | 삼성전자주식회사 | 렌더링 장치 및 그 방법 |
| CN106648841B (zh) * | 2016-12-12 | 2020-06-30 | 中国航空工业集团公司西安航空计算技术研究所 | 一种图形上下文管理方法 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5276798A (en) * | 1990-09-14 | 1994-01-04 | Hughes Aircraft Company | Multifunction high performance graphics rendering processor |
| WO1999056249A1 (en) * | 1998-04-27 | 1999-11-04 | Interactive Silicon, Inc. | Graphics system and method for rendering independent 2d and 3d objects |
| US6317137B1 (en) * | 1998-12-01 | 2001-11-13 | Silicon Graphics, Inc. | Multi-threaded texture modulation for axis-aligned volume rendering |
| US6437788B1 (en) * | 1999-07-16 | 2002-08-20 | International Business Machines Corporation | Synchronizing graphics texture management in a computer system using threads |
-
2001
- 2001-07-16 TW TW090117318A patent/TW531706B/zh active
- 2001-07-19 DE DE60113431T patent/DE60113431T2/de not_active Expired - Lifetime
- 2001-07-19 JP JP2002514706A patent/JP2004505355A/ja active Pending
- 2001-07-19 CN CNB018127002A patent/CN1282127C/zh not_active Expired - Fee Related
- 2001-07-19 WO PCT/GB2001/003226 patent/WO2002009083A2/en not_active Ceased
- 2001-07-19 KR KR10-2003-7000562A patent/KR20030020367A/ko not_active Ceased
- 2001-07-19 CA CA002418209A patent/CA2418209A1/en not_active Abandoned
- 2001-07-19 AU AU7086101A patent/AU7086101A/xx active Pending
- 2001-07-19 AT AT01949744T patent/ATE304731T1/de not_active IP Right Cessation
- 2001-07-19 EP EP01949744A patent/EP1303849B1/en not_active Expired - Lifetime
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2006065443A (ja) * | 2004-08-25 | 2006-03-09 | Vodafone Kk | データ処理方法及び移動通信端末装置 |
| US7612781B2 (en) | 2004-09-22 | 2009-11-03 | Sony Computer Entertainment Inc. | Memory control method of graphic processor unit |
Also Published As
| Publication number | Publication date |
|---|---|
| DE60113431D1 (de) | 2005-10-20 |
| AU7086101A (en) | 2002-02-05 |
| WO2002009083A3 (en) | 2002-07-04 |
| TW531706B (en) | 2003-05-11 |
| KR20030020367A (ko) | 2003-03-08 |
| CA2418209A1 (en) | 2002-01-31 |
| CN1282127C (zh) | 2006-10-25 |
| CN1541373A (zh) | 2004-10-27 |
| DE60113431T2 (de) | 2006-06-14 |
| EP1303849A2 (en) | 2003-04-23 |
| WO2002009083A2 (en) | 2002-01-31 |
| EP1303849B1 (en) | 2005-09-14 |
| ATE304731T1 (de) | 2005-09-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5032670B2 (ja) | グラフィックスシステムにおいて2次プロセッサを使用するための方法及びシステム | |
| JP4268210B2 (ja) | コンピュータにおける情報表示の管理システム | |
| US7453473B2 (en) | Method and apparatus for high-performance rendering and hit testing of a window tree | |
| US6437788B1 (en) | Synchronizing graphics texture management in a computer system using threads | |
| CN111737019B (zh) | 一种显存资源的调度方法、装置及计算机存储介质 | |
| US5936632A (en) | Method for fast downloading of textures to accelerated graphics hardware and the elimination of extra software copies of texels | |
| US7145566B2 (en) | Systems and methods for updating a frame buffer based on arbitrary graphics calls | |
| JP2005525617A (ja) | ゾーン・レンダリング用の自動メモリ管理 | |
| EP1303849B1 (en) | Method and apparatus for graphics context switching | |
| JP2015506017A (ja) | オーバドロー・トラッカを用いたグラフィック処理におけるダイレクト・レンダリングとビニングとの切替 | |
| US6418485B1 (en) | System and method for managing device driver logical state information in an information handling system | |
| JP2005514711A (ja) | ゾーン・レンダリングのための効率的なグラフィックス状態管理 | |
| JP2001501758A (ja) | 連続するメモリのバッファを獲得し、ページテーブルを構築する方法 | |
| JP2017097870A (ja) | グラフィックス処理装置を含むコンピューティング装置、及びグラフィックス処理装置においてグラフィックスパイプラインを実行する方法 | |
| US9324299B2 (en) | Atlasing and virtual surfaces | |
| US6831660B1 (en) | Method and apparatus for graphics window clipping management in a data processing system | |
| CN114399570A (zh) | Ui的轻量反激活方法、装置、电子设备及存储介质 | |
| US6917364B2 (en) | Method and apparatus for managing texture memory in a data processing system | |
| CN100573653C (zh) | 基于应用程序环境动态编程窗口id配置的装置和方法 | |
| JP2002158732A (ja) | 通信装置の切り換え制御システム及び切り換え制御方法 | |
| CN121563751A (zh) | 图像处理方法及装置、电子设备、存储介质、程序产品 | |
| JP3835287B2 (ja) | ビットマップデータ処理方式、ビットマップデータ処理方法およびビットマップデータ処理用プログラム | |
| US20040233164A1 (en) | Method and apparatus for displaying hardware crosshair cursor in a specified region of a display | |
| JP2829051B2 (ja) | 文字表示方式 | |
| WO2023020124A1 (zh) | 数据处理方法、装置、计算设备和系统 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060214 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060704 |