(57)【特許請求の範囲】
【請求項１】
グローバル・レディ信号を使用してグラフィックス・パイプラインのシーケンスの動作を同期する方法であって、
ホスト・プロセッサによって前記グラフィックス・パイプラインのシーケンス内の次のグラフィックス・パイプラインを指定し、
前記次のグラフィックス・パイプラインによって生成されるべきビデオ・データの出力を当該次のグラフィックス・パイプラインが準備できるまで、当該次のグラフィックス・パイプラインが待ち、
前記次のグラフィックス・パイプラインがビデオ・データを出力する準備ができたことを示すローカル・レディ信号を、当該次のグラフィックス・パイプラインがアサートし、
前記グローバル・レディ信号がアサート状態に入るまで、当該次のグラフィックス・パイプラインが待ち、
前記次のグラフィックス・パイプラインによって生成されたビデオ・データを当該次のグラフィックス・パイプラインによって出力し、
前記グラフィックス・パイプラインのシーケンス内の前記次のグラフィックス・パイプラインでない他のグラフィックス・パイプラインをして、前記次のグラフィックス・パイプラインによって生成されたビデオ・データを通過させる、
方法。
【請求項２】
請求項１に記載の方法において更に、ホスト・プロセッサによって、グラフィックス・パイプラインの前記シーケンス内の前記次のグラフィックス・パイプラインでないグラフィックス・パイプラインによるローカル・レディ信号のアサートを禁止することを特徴とする方法。
【請求項３】
請求項１に記載の方法において、前記グローバル・レディ信号が、前記ローカル・レディ信号と、他のグラフィックス・パイプラインによって生成された他のローカル・レディ信号との論理ＡＮＤとして形成されることを特徴とする方法。
【請求項４】
請求項１に記載の方法において、前記グローバル・レディ信号が、前記ローカル・レディ信号と、他のグラフィックス・パイプラインのシーケンスによって生成された他のローカル・レディ信号との論理ＡＮＤとして形成されることを特徴とする方法。
【請求項５】
請求項１に記載の方法において、前記グラフィックス・パイプラインが、周期的に繰り返す垂直同期信号の状態を監視するように接続され、かつ前記次のグラフィックス・パイプラインによる前記グローバル・レディ信号がアサート状態に入るまで待つステップが更に、前記垂直同期信号の各パルスの開始で前記グローバル同期化をサンプリングすることを特徴とする方法。
【請求項６】
請求項１に記載の方法において、前記グラフィックス・パイプラインのシーケンス内の各グラフィックス・パイプラインが、関連する次のビットを有し、かつホスト・プロセッサによる、次のグラフィックス・パイプラインを指定するステップが更に、前記ホスト・プロセッサによって、前記次のグラフィックス・パイプラインに対する前記次のビットを設定し、前記次のビットが前記次のグラフィックス・パイプラインのビデオ・データの次の状態を制御するか、又は以前のグラフィックス・パイプラインによって生成されたビデオ・データを通過させることを特徴とする方法。
【請求項７】
グローバル・レディ信号を使用してグラフィックス・パイプラインのシーケンスの動作を同期する方法であって、
ホスト・プロセッサによって前記グラフィックス・パイプラインのシーケンス内の次のグラフィックス・パイプラインを指定し、
ビデオ・データの出力を前記次のグラフィックス・パイプラインが準備できるまで、当該次のグラフィックス・パイプラインが待ち、
前記次のグラフィックス・パイプラインがビデオ・データを出力する準備ができたことを示すローカル・レディ信号を、当該次のグラフィックス・パイプラインがアサートし、
前記グローバル・レディ信号がアサート状態に入るまで、当該次のグラフィックス・パイプラインが待ち、前記グローバル・レディ信号は、前記ローカル・レディ信号と、他のグラフィックス・パイプラインによって生成された他のローカル・レディ信号との論理ＡＮＤとして形成され、
ビデオ・データを前記次のグラフィックス・パイプラインによって出力する、
方法。
【請求項８】
請求項７に記載の方法において更に、ホスト・プロセッサによって、グラフィックス・パイプラインの前記シーケンス内の前記次のグラフィックス・パイプラインでないグラフィックス・パイプラインによるローカル・レディ信号のアサートを禁止することを特徴とする方法。
【請求項９】
請求項７に記載の方法において、前記グラフィックス・パイプラインが、周期的に繰り返す垂直同期信号の状態を監視するように接続され、かつ前記次のグラフィックス・パイプラインによる前記グローバル・レディ信号がアサート状態に入るまで待つステップが更に、前記垂直同期信号の各パルスの開始で前記グローバル同期化をサンプリングすることを特徴とする方法。
【請求項１０】
請求項７に記載の方法において、前記グラフィックス・パイプラインのシーケンス内の各グラフィックス・パイプラインが、関連する次のビットを有し、かつホスト・プロセッサによる、次のグラフィックス・パイプラインを指定するステップが更に、前記ホスト・プロセッサによって、前記次のグラフィックス・パイプラインに対する前記次のビットを設定することを特徴とする方法。
【請求項１１】
グローバル・レディ信号を使用してグラフィックス・パイプラインのシーケンスの動作を同期する方法であって、
ホスト・プロセッサによって前記グラフィックス・パイプラインのシーケンス内の次のグラフィックス・パイプラインを指定するステップと、
前記次のグラフィックス・パイプラインによって生成されるべきビデオ・データの出力を当該次のグラフィックス・パイプラインが準備できるまで、当該次のグラフィックス・パイプラインが待つステップと、
前記次のグラフィックス・パイプラインがビデオ・データを出力する準備ができたことを示すローカル・レディ信号を、当該次のグラフィックス・パイプラインがアサートするステップと、
ホスト・プロセッサによって、グラフィックス・パイプラインの前記シーケンス内の前記次のグラフィックス・パイプラインでないグラフィックス・パイプラインによるローカル・レディ信号のアサートを禁止するステップと、
前記グローバル・レディ信号がアサート状態に入るまで、当該次のグラフィックス・パイプラインが待つステップと、
前記次のグラフィックス・パイプラインによって生成されたビデオ・データを当該次のグラフィックス・パイプラインによって出力するステップと、
前記グラフィックス・パイプラインのシーケンス内の前記次のグラフィックス・パイプラインでない他のグラフィックス・パイプラインをして、前記次のグラフィックス・パイプラインによって生成されたビデオ・データを通過させるステップと、
から成る方法。
【請求項１２】
請求項１１に記載の方法において、前記グローバル・レディ信号が、前記ローカル・レディ信号と、他のグラフィックス・パイプラインによって生成された他のローカル・レディ信号との論理ＡＮＤとして形成されることを特徴とする方法。
【請求項１３】
請求項１１に記載の方法において、前記グラフィックス・パイプラインが、周期的に繰り返す垂直同期信号の状態を監視するように接続され、かつ前記次のグラフィックス・パイプラインによる前記グローバル・レディ信号がアサート状態に入るまで待つステップが更に、前記垂直同期信号の各パルスの開始で前記グローバル同期化をサンプリングすることを特徴とする方法。
【請求項１４】
請求項１１に記載の方法において、前記グラフィックス・パイプラインのシーケンス内の各グラフィックス・パイプラインが、関連する次のビットを有し、かつホスト・プロセッサによる、次のグラフィックス・パイプラインを指定するステップが更に、前記ホスト・プロセッサによって、前記次のグラフィックス・パイプラインに対する前記次のビットを設定し、前記次のビットが前記次のグラフィックス・パイプラインのビデオ・データの次の状態を制御するか、又は前のグラフィックス・パイプラインによって生成されたビデオ・データを通過させることを特徴とする方法。
【請求項１５】
グローバル・レディ信号を使用してグラフィックス・パイプラインのシーケンスの動作を同期する方法であって、
ホスト・プロセッサによって前記グラフィックス・パイプラインのシーケンス内の次のグラフィックス・パイプラインを指定するステップと、
前記次のグラフィックス・パイプラインによって生成されるべきビデオ・データの出力を当該次のグラフィックス・パイプラインが準備できるまで、当該次のグラフィックス・パイプラインが待つステップと、
前記次のグラフィックス・パイプラインがビデオ・データを出力する準備ができたことを示すローカル・レディ信号を、当該次のグラフィックス・パイプラインがアサートするステップと、
前記グローバル・レディ信号がアサート状態に入るまで、当該次のグラフィックス・パイプラインが待つステップと、
前記次のグラフィックス・パイプラインによって生成されたビデオ・データを当該次のグラフィックス・パイプラインによって出力するステップと、
前記グラフィックス・パイプラインのシーケンス内の前記次のグラフィックス・パイプラインでない他のグラフィックス・パイプラインをして、前記次のグラフィックス・パイプラインによって生成されたビデオ・データを通過させるステップと、
から成り、前記グローバル・レディ信号が、前記ローカル・レディ信号と、他のグラフィックス・パイプラインのシーケンスによって生成された他のローカル・レディ信号との論理ＡＮＤとして形成されることを特徴とする方法。
【請求項１６】
請求項１５に記載の方法において更に、ホスト・プロセッサによって、グラフィックス・パイプラインの前記シーケンス内の前記次のグラフィックス・パイプラインでないグラフィックス・パイプラインによるローカル・レディ信号のアサートを禁止することを特徴とする方法。
【請求項１７】
請求項１５に記載の方法において、前記グローバル・レディ信号が、前記ローカル・レディ信号と、他のグラフィックス・パイプラインによって生成された他のローカル・レディ信号との論理ＡＮＤとして形成されることを特徴とする方法。
【請求項１８】
請求項１５に記載の方法において、前記グラフィックス・パイプラインが、周期的に繰り返す垂直同期信号の状態を監視するように接続され、かつ前記次のグラフィックス・パイプラインによる前記グローバル・レディ信号がアサート状態に入るまで待つステップが更に、前記垂直同期信号の各パルスの開始で前記グローバル同期化をサンプリングするステップから成ることを特徴とする方法。
【請求項１９】
請求項１５に記載の方法において、前記グラフィックス・パイプラインのシーケンス内の各グラフィックス・パイプラインが、関連する次のビットを有し、かつホスト・プロセッサによる、次のグラフィックス・パイプラインを指定するステップが更に、前記ホスト・プロセッサによって、前記次のグラフィックス・パイプラインに対する前記次のビットを設定するステップから成ることを特徴とする方法。
【請求項２０】
動作を同期する方法をコンピュータに実行させるコンピュータ可読コードを記録した、電子的に可読な媒体であって、前記方法が、
ホスト・プロセッサによって前記グラフィックス・パイプラインのシーケンス内の次のグラフィックス・パイプラインを指定し、
前記次のグラフィックス・パイプラインによって生成されるべきビデオ・データの出力を当該次のグラフィックス・パイプラインが準備できるまで、当該次のグラフィックス・パイプラインが待ち、
前記次のグラフィックス・パイプラインがビデオ・データを出力する準備ができたことを示すローカル・レディ信号を、当該次のグラフィックス・パイプラインがアサートし、
前記グローバル・レディ信号がアサート状態に入るまで、当該次のグラフィックス・パイプラインが待ち、
前記次のグラフィックス・パイプラインによって生成されたビデオ・データを当該次のグラフィックス・パイプラインによって出力し、
前記グラフィックス・パイプラインのシーケンス内の前記次のグラフィックス・パイプラインでない他のグラフィックス・パイプラインをして、前記次のグラフィックス・パイプラインによって生成されたビデオ・データを通過させる、
方法である、媒体。
【請求項２１】
動作を同期する方法をコンピュータに実行させるコンピュータ可読コードを記録した、電子的に可読な媒体であって、前記方法が、
ホスト・プロセッサによって前記グラフィックス・パイプラインのシーケンス内の次のグラフィックス・パイプラインを指定し、
前記次のグラフィックス・パイプラインによって生成されるべきビデオ・データの出力を当該次のグラフィックス・パイプラインが準備できるまで、当該次のグラフィックス・パイプラインが待ち、
前記次のグラフィックス・パイプラインがビデオ・データを出力する準備ができたことを示すローカル・レディ信号を、当該次のグラフィックス・パイプラインがアサートし、
ホスト・プロセッサによって、グラフィックス・パイプラインの前記シーケンス内の前記次のグラフィックス・パイプラインでないグラフィックス・パイプラインによるローカル・レディ信号のアサートを禁止し、
前記グローバル・レディ信号がアサート状態に入るまで、当該次のグラフィックス・パイプラインが待ち、
前記次のグラフィックス・パイプラインによって生成されたビデオ・データを当該次のグラフィックス・パイプラインによって出力し、
前記グラフィックス・パイプラインのシーケンス内の前記次のグラフィックス・パイプラインでない他のグラフィックス・パイプラインをして、前記次のグラフィックス・パイプラインによって生成されたビデオ・データを通過させる、
方法である、媒体。
【請求項２２】
動作を同期する方法をコンピュータに実行させるコンピュータ可読コードを記録した、電子的に可読な媒体であって、前記方法が、
ホスト・プロセッサによって前記グラフィックス・パイプラインのシーケンス内の次のグラフィックス・パイプラインを指定し、
前記次のグラフィックス・パイプラインによって生成されるべきビデオ・データの出力を当該次のグラフィックス・パイプラインが準備できるまで、当該次のグラフィックス・パイプラインが待ち、
前記次のグラフィックス・パイプラインがビデオ・データを出力する準備ができたことを示すローカル・レディ信号を、当該次のグラフィックス・パイプラインがアサートし、
前記グローバル・レディ信号がアサート状態に入るまで、当該次のグラフィックス・パイプラインが待ち、
前記次のグラフィックス・パイプラインによって生成されたビデオ・データを当該次のグラフィックス・パイプラインによって出力し、
前記グラフィックス・パイプラインのシーケンス内の前記次のグラフィックス・パイプラインでない他のグラフィックス・パイプラインをして、前記次のグラフィックス・パイプラインによって生成されたビデオ・データを通過させ、
前記グローバル・レディ信号が、前記ローカル・レディ信号と、他のグラフィックス・パイプラインのシーケンスによって生成された他のローカル・レディ信号との論理ＡＮＤとして形成されることを特徴とする、
方法である、媒体。
【請求項２３】
並列レンダリング・システムであって、
ホスト・プロセッサと、
前記ホスト・プロセッサに接続され、ビデオ・データを生成するように構成された第１のグラフィックス・パイプラインと、
前記ホスト・プロセッサ及び前記第１のグラフィックス・パイプラインに接続され、以前のグラフィックス・パイプラインによって生成されたビデオ・データを受け取り、ビデオ・データを生成するように構成された第２のグラフィックス・パイプラインと、
から成り、
前記ホスト・プロセッサは、前記第１のグラフィックス・パイプラインを当該第１のグラフィックス・パイプラインによって生成されたビデオ・データを出力するようにセットするか、或いは前記第２のグラフィックス・パイプラインによって生成されたビデオ・データを通過させるようにセットするように構成され、
前記ホスト・プロセッサは、前記第２のグラフィックス・パイプラインを当該第２のグラフィックス・パイプラインによって生成されたビデオ・データを出力するようにセットするか、或いは前記以前のグラフィックス・パイプラインによって生成されたビデオ・データを通過させるようにセットするように構成され、
ていることを特徴とするシステム。
【請求項２４】
グローバル・レディ信号を使用してグラフィックス・パイプラインのシーケンスの動作を同期するシステムであって、
前記グラフィックス・パイプラインのシーケンス内の次のグラフィックス・パイプラインを指定する手段と、
前記次のグラフィックス・パイプラインによって生成されるべきビデオ・データの出力を当該次のグラフィックス・パイプラインが準備できるまで待つ手段と、
前記次のグラフィックス・パイプラインがビデオ・データを出力する準備ができたことを示すローカル・レディ信号をアサートする手段と、
グラフィックス・パイプラインの前記シーケンス内の前記次のグラフィックス・パイプラインでないグラフィックス・パイプラインによるローカル・レディ信号のアサートを禁止する手段と、
前記グローバル・レディ信号がアサート状態に入るまで待つ手段と、
前記次のグラフィックス・パイプラインによって生成されたビデオ・データを出力する手段と、
前記グラフィックス・パイプラインのシーケンス内の前記次のグラフィックス・パイプラインでない他のグラフィックス・パイプラインをして、前記次のグラフィックス・パイプラインによって生成されたビデオ・データを通過させる手段と、
から成るシステム。
【請求項２５】
グローバル・レディ信号を使用してグラフィックス・パイプラインのシーケンスの動作を同期するシステムであって、
前記グラフィックス・パイプラインのシーケンス内の次のグラフィックス・パイプラインを指定する手段と、
ビデオ・データの出力を前記次のグラフィックス・パイプラインが準備できるまで待つ手段と、
前記次のグラフィックス・パイプラインがビデオ・データを出力する準備ができたことを示すローカル・レディ信号をアサートする手段と、
前記グローバル・レディ信号がアサート状態に入るまで待つ手段であって、前記グローバル・レディ信号が、前記ローカル・レディ信号と、他のグラフィックス・パイプラインによって生成された他のローカル・レディ信号との論理ＡＮＤとして形成されることを特徴とする手段と、
ビデオ・データを出力する手段と、
から成るシステム。
【請求項２６】
グローバル・レディ信号を使用してグラフィックス・パイプラインのシーケンスの動作を同期するシステムであって、
前記グラフィックス・パイプラインのシーケンス内の次のグラフィックス・パイプラインを指定する手段と、
前記次のグラフィックス・パイプラインによって生成されるべきビデオ・データの出力を当該次のグラフィックス・パイプラインが準備できるまで待つ手段と、
前記次のグラフィックス・パイプラインがビデオ・データを出力する準備ができたことを示すローカル・レディ信号をアサートする手段と、
前記グローバル・レディ信号がアサート状態に入るまで待つ手段と、
前記次のグラフィックス・パイプラインによって生成されたビデオ・データを、前記次のグラフィックス・パイプラインによって出力する手段と、
前記グラフィックス・パイプラインのシーケンス内の前記次のグラフィックス・パイプラインでない他のグラフィックス・パイプラインをして、前記次のグラフィックス・パイプラインによって生成されたビデオ・データを通過させる手段と、
から成るシステム。
【発明の詳細な説明】
【０００１】
（発明の分野）
本発明は、一般的に、コンピュータ・グラフィックスのシステムに関する。より詳細には、本発明は、グラフィックス・パイプラインのグループのシーケンシャル・オペレーションを同期化する方法および装置を含む。
【０００２】
（発明の背景）
コンピュータ・システム（および関連デバイス）は、通常、グラフィックス・パイプラインとして知られる一連のステージを使用して、３次元イメージを生成する。初期のステージ中、イメージは、各イメージが、そこで、個別の点、線、および多角形の集合で構成されるモザイク様の手法を使用して、モデリングされる。これらの点、線、および多角形は、プリミティブとして知られ、単一のイメージは、数千、さらには数百万のプリミティブを必要とする。各プリミティブは、その形状と位置、ならびにカラーやテクスチャなどの他の属性で定義される。
【０００３】
グラフィックス・パイプラインは、各プリミティブをフレーム・バッファとして知られるメモリ記憶デバイス内にマップする。フレーム・バッファ内での各記憶場所は、生成されているイメージ内の１ピクセルを定義する。グラフィックス・パイプラインは、どのピクセル（すなわち、どのフレーム・バッファ記憶場所）がそれぞれのプリミティブ内に含まれるかを決定することによって、マッピング処理を実行する。各ピクセルは、次に、ピクセルが含まれる１つまたは複数のプリミティブの属性を反映するように初期設定される。多くの場合、グラフィックス・パイプラインは、フレーム・バッファ内のピクセル値をさらに変更して、テクスチャ、ライティング、および他の効果をグラフィックス・プリミティブに適用する。
【０００４】
プリミティブをピクセルにレンダリングするタスクは非常に時間がかかる。これは、多くのプリミティブを含む、または複雑なライティング、シェーディング、または他の効果を必要とする複雑なイメージの場合、特にそうである。プリミティブを変換するのにかかる時間は、迅速なイメージ生成が必要とされるフライトシミュレーションやバーチャル・リアリティ環境などの適用形態の場合に問題となる。
【０００５】
レンダリング処理の速度を向上させるための一方法は、複数のグラフィックス・パイプラインを使用することである。この方法のため、プリミティブをレンダリングするタスクは、各パイプラインが全体のタスクのなんらかの部分を実行するように細分される。レンダリング・タスクを細分する一方式は、各イメージの固定部分を異なるパイプラインに割り当てることである。パイプラインは、並列に動作し、各パイプランが、そのイメージ部分に含まれるプリミティブを処理する。
【０００６】
様々なパイプラインの並列出力が表示のために組み合わされる。効果的であるためには、この組合せは、シームレス方式で、そのイメージが、あたかも単一のグラフィックス・パイプラインによって作成されているかのように、達せられなければならない。一般的に、このシームレス統合は、各パイプラインの出力が同期化されることを必要とする。そうでなければ、パイプラインは、幾分、ランダムな間隔で出力を生成する。これは、得られるイメージを不正確に、さらには、一貫性なく見えるようにする。
【０００７】
いくつかのシステムの場合、同期化問題は、グローバル・レディ信号の使用を介して克服することができる。ＳＩＬＩＣＯＮ  ＧＲＡＰＨＩＣＳ  ＩＮＣ．が、あるタイプのＳＧＩコンピュータでの使用のために、ＳＷＡＰ＿ＲＥＡＤＹとして知られる、このタイプの信号を提供する。ＳＷＡＰ＿ＲＥＡＤＹ信号は、同期化されるべき各グラフィックス・パイプラインに物理的に接続される。そのイメージ部分を出力する準備のできたシステムが、ローカル・レディ信号をアサートする。ＳＷＡＰ＿ＲＥＡＤＹは、これらのローカル・レディ信号の論理ＡＮＤとして機能する。この結果、ＳＷＡＰ＿ＲＥＡＤＹは、すべてのシステムが、イメージ部分を出力する準備のできたときに、アサートされる。グラフィックス・パイプラインは、定期的に、同期ベースで、ＳＷＡＰ＿ＲＥＡＤＹ信号の状態をサンプリングする。パイプラインは、ＳＷＡＰ＿ＲＥＡＤＹが高いことが分かったとき、そのイメージ部分を出力する。
【０００８】
複数のグラフィックス・パイプラインを組み合わせるための第２方式は、パイプラインが、ラウンドロビン方式またはシーケンシャル方式で動作するように、レンダリングタスクを細分することである。この方法のため、各パイプラインは、連続するイメージをイメージのシーケンスにする。このシーケンシャル方法は、各イメージが、パイプライン間で区分される方法と比較したとき、ある利点を有する。これらの利点のうちの１つは、それほどパワフルではないグラフィックス・パイプラインを使用して、より速い速度でイメージのシーケンスを生成できることである。これは、フライトシミュレータおよび他のリアルタイム環境の場合、特に有益である。
【０００９】
イメージの品質を確実にするためには、シーケンシャル・パイプライン・オペレーションは、イメージを生成するのに使用するパイプラインの同期化を必要とする。そうでなければ、パイプラインが、イメージの順序を狂ったまま出力することになる可能性があるためである。アニメーション環境およびシミュレーション環境の場合、これは、表示が、予測不可能なかたちで時間的に前後に移動することになるであろう。残念ながら、グローバル・レディ信号などの同期化方法は、シーケンシャル・パイプライン・オペレーションを使用するシステムには利用できない。この結果、複雑なソフトウェア同期化が必要とされ、このタイプのシステムを実施することをより困難にする。
【００１０】
いくつかの適用形態の場合、複数のグラフィックス・パイプラインの組み合わに、前述した双方の技法を組み合わて使用することが望ましい。これは、それぞれが順番に接続された１つまたは複数のパイプラインを使用する領域にイメージを区分する。１つまたは複数のパイプラインの各グループのシーケンシャル・オペレーションは、残りのパイプライン・グループでのオペレーションと並列に進行する。これは、グラフィックス・パイプラインを特定の適用形態のイメージ生成要件にマッチするように配置するための柔軟な方法を提供する。残念ながら、シーケンシャル・パイプライン・オペレーションのための同期化方法の欠如が、これらのシステムを他のグラフィックス・パイプラインと組み合わせることを困難にしている。
【００１１】
以上のことに基づき、シーケンシャル方式で動作するように構成された複数のグラフィックス・パイプラインを同期化するための有効な方法の必要性が存在することが理解されよう。この問題に対する好ましい解決法は、シーケンシャル・グラフィックス・パイプライン・グループが、他のパイプライン・グループと並列に動作できるようにすることになる。
【００１２】
（発明の概要）
本発明の実施態様は、グラフィックス・パイプラインの動作を同期化する方法および装置を含む。この方法および装置は、グラフィックス・パイプラインをシーケンシャル・オペレーションのためにグループ化させ、また、それらのパイプライン・グループの間で並列実行を可能にする。本発明の代表的な実施態様では、１つまたは複数のグラフィックス・パイプラインがデイジー・チェーン・シーケンスとして接続される。すなわち、各パイプラインの出力部（最後の出力部を除く）は、後続パイプラインへの入力部として接続されている。最後のパイプラインの出力部は表示装置に接続されている。
【００１３】
各パイプラインは、ローカル・モードとパススルー・モードの２つの異なるモードで動作するように構成することができる。ローカル・モードで動作するパイプラインは、固有のデジタル・ビデオ・データ（すなわち、グラフィックス・パイプラインによって生成されたピクセル値）を出力する。パススルー・モードで動作するパイプラインは、先行パイプラインから受信したビデオ・データを出力する。
【００１４】
動作中、アプリケーション・プログラムは、１つのパイプラインがローカル・モードで動作するようにパイプラインのシーケンスを構成する。残りのパイプラインはパススルー・モードで動作する。これは、１つのパイプラインによって生成されたデジタル・ビデオ出力を出力デバイスにパススルーさせる。定期的な間隔で、アプリケーション・プログラムがローカル・モードでの動作用に次のパイプラインを選択する。選択された次のパイプラインの準備が完了すると間もなく、スワップ・イベントが発生する。スワップ・イベント中、選択された次のパイプラインはローカル・モードに切り替わり、残りのパイプラインはパススルー・モードに入るか、またはパススルー・モードに留まる。この方法で、パイプラインはシーケンシャルな方法で協同して、イメージのシーケンスを生成する。
【００１５】
スワップ・イベントのタイミングは、グローバル・レディ信号に基づく。グローバル・レディ信号は、一組のローカル・レディ信号の論理ＡＮＤを意味している。それらのローカル・レディ信号の１つは、選択された次のパイプラインによって生成される。このローカル・レディ信号は、グラフィックス・パイプラインのシーケンス全体に対するローカル・レディ信号として機能する。残りのローカル・レディ信号は、グラフィックス・パイプラインと並列で作動するように構成されたあらゆるグラフィックス・パイプラインによって提供される。それらのローカル・レディ信号のそれぞれがアサートされると、グローバル・レディ信号はアサートされたことになる。すなわち、選択された次のパイプラインと、選択された次のパイプラインと並列に作動するように構成されたすべてのパイプラインは、ビデオ・データの出力を開始する準備ができているということである。パイプラインのシーケンス内のすべてのパイプラインは、グローバル・レディ信号の状態を監視する。グローバル・レディ信号がアサートされた時、スワップ・イベントが開始される。
【００１６】
この方法でローカル・レディ信号を生成することによって、また、この方法でグローバル・レディ信号を使用することによって、パイプラインのシーケンスは、その固有の内部オペレーションを同期化する。パイプラインのシーケンスは、他のグラフィックス・パイプラインおよびグラフィックス・パイプラインのグループの並列動作と互換性のあるモードでも動作する。
【００１７】
本発明の利点は、一部は後述するが、一部は当業者なら本明細書の説明から理解するだろう。本発明の利点は、特に頭書の特許請求の範囲およびその相当個所で指摘するエレメントおよび組合わせによって実現され、達成される。
【００１８】
本明細書に組み込まれ、その一部を構成する添付の図面は、本発明のいくつかの実施態様を示すものであり、説明と共に、本発明の原理を説明する一助となるものである。
【００１９】
（好ましい実施形態の詳細な説明）
次に、本発明の好ましい実施形態を具体的に参照し、その例を添付の図面に示す。都合に合わせ、図面では、同一または同様の部分には同一の参照番号を使用する。
【００２０】
本発明の実施形態は、グラフィックス・パイプラインの動作を同期化する方法および装置を含む。この方法および装置は、グラフィックス・パイプラインをシーケンシャル・オペレーションのためにグループ化し、また、それらのパイプライン・グループ間における並列実行を可能にする。図１に、並列レンダリング１００システムを、本発明の代表的実施形態として示す。並列レンダリングシステム１００は、同様の一連のグラフィックス・パイプラインまたは異なる一連のグラフィックス・パイプラインをシーケンシャルにグループ化することを意図している。図１の特定の例示では、３つのグラフィックス・パイプライン１０２ａから１０２ｃを示す。それらのグラフィックス・パイプライン１０２のそれぞれは、広範にわたる様々なグラフィックス・パイプラインを表わすことを意図している。グラフィックス・パイプライン１０２は、デイジー・チェーン・シーケンスとして接続される。すなわち、各パイプライン１０２（最後のパイプライン１０２ｃを除く）の出力部は、後続パイプライン１０２への入力部として接続される。最後のパイプライン１０２ｃの出力部は表示装置１０４に接続される。
【００２１】
各パイプライン１０２は、ホスト・プロセッサ１０６に接続される。ホスト・プロセッサ１０６は、広範にわたる様々なプロセッサのタイプを代表しているにすぎない。ホスト・プロセッサ１０６とグラフィックス・パイプライン１０２との間の接続は、バス相互接続や共用メモリなどの広範にわたる様々な技術を表している。ホスト・プロセッサ１０６はパイプライン１０２の実行を制御する。
【００２２】
ホスト・プロセッサ１０６の制御下で、グラフィックス・パイプライン１０２は、ディスプレイ１０４上に表示するためのイメージのシーケンスを生成する。パイプライン１０２内におけるイメージの生成は同期化される。すなわち、グラフィックス・パイプライン１０２は、正確な順序でイメージを生成する（すなわち、先のイメージが後続のイメージに続くことはない）
【００２３】
同期化されて動作する内部の詳細は、図２を参照することによってよりよく理解されよう。図２では、各グラフィックス・パイプライン１０２がマルチプレクサ２００を含むように示されている。マルチプレクサ２００には２つの入力部がある。第１の入力部は、マルチプレクサ２００を含むパイプライン１０２のデジタル・ビデオの出力部である。各マルチプレクサ（第１のマルチプレクサを除く）の第２の入力部は、先行パイプライン１０２のマルチプレクサ２００の出力部に接続される。第１のマルチプレクサ２００の第２の入力部は、ヌル・デバイスに接続される。
【００２４】
各パイプライン１０２は、現行ビット２０２、次のビット２０４およびレディ・ディセーブル・ビット２０６の３つの状態ビットを含む。現行ビット２０２はマルチプレクサ２００の状態を直接に制御する。現行ビット２０２がセットされている時、マルチプレクサ２００はその第１の入力を選択する。この構成では、マルチプレクサ２００は、それが含まれるパイプライン１０２のデジタル・ビデオ出力を出力する。このため、この構成はローカル・モードとして知られる。現行ビット２０２がセットされていない時、マルチプレクサ２００はその第２の入力を選択する。この構成において、マルチプレクサ２００は、先行パイプライン１０２から受信したデジタル・ビデオ・データを出力する。このため、この構成はパススルー・モードとして知られる。
【００２５】
次のビット２０４は、現行ビット２０２の次の値を含む。以下で詳述するように、パイプライン１０２は、次のビット２０４に含まれる値を各スワップ・イベントの一部として現行ビット２０２に転送する。この方法で、それぞれの次のビット２０４は、それが含まれるパイプライン１０２の次の状態（ローカルまたはパススルー）を制御する。説明中の特定の実施形態では、次のビット２０４は、ホスト・プロセッサ１０６によって送信されたコマンドを使用してセット、またはクリアされる。これにより、ホスト・アプリケーションは、ビデオ・データを出力するために、次のパイプライン１０２を動的に選択することが可能になる。
【００２６】
図２に示すように、パイプライン１０２は、共通のローカル・レディ信号５０８を生成するためにそれぞれ接続されている。次のパイプライン１０２として選択されたパイプライン１０２（すなわち、セットされた次のビット２０４を有するパイプライン１０２）は、そのビデオ・データを出力する準備ができた時、ローカル・レディ信号２０８をアサートする。ホスト・プロセッサ１０６は、他のすべてのパイプライン１０２がローカル・レディ信号２０８をアサートすることを防止するためにレディ・ディセーブル・ビット２０６を使用する。説明中の特定の実施形態では、レディ・ディセーブル・ビット２０６は、ホスト・プロセッサ１０６によって送信されたコマンドを使用してセット、またはクリアされる。
【００２７】
グラフィックス・パイプライン１０２は、グローバル・レディ信号２１０の状態を監視するように接続される。グローバル・レディ信号２１０は、それを入力とする論理ＡＮＤとして動作するように構成される。図２の例の中で、グローバル・レディ信号２１０に対する入力は、グラフィックス・パイプライン１０２によって生成された共通のローカル・レディ信号２０８である。したがって、この例の中で、グラフィックス・パイプライン１０２の１つがローカル・レディ信号２０８をアサートすると、グローバル・レディ信号２１０はアサート状態になる。すなわち、グローバル・レディ信号２１０は、セットされた次のビット２０４を有するパイプライン１０２がそのビデオ・データを出力する準備が完了した時はいつでもアサートされたことになる。グラフィックス・パイプライン１０２は、定期的に同期化されることを基本にして、グローバル・レディ信号２１０の状態をサンプリングする。典型的には、これは、各グラフィックス・パイプライン１０２を、定期的に反復する垂直同期信号に接続することによって達成される。このシステムを使用して、同期化サブシステムは、垂直同期信号の各パルスの開始時にグローバル・レディ信号２１０をサンプリングする。
【００２８】
グラフィックス・パイプライン１０２は、グローバル・レディ信号２１０がアサート状態にあることを発見すると、スワップ・イベントを開始する。スワップ・イベント中、各グラフィックス・パイプライン１０２は、次のビット２０４に記憶された値を現行ビット２０２に移動する。各グラフィックス・パイプライン１０２は、次のビット２０４をクリアする。次のビット２０４の移動で現行ビット２０２をセットすると、マルチプレクサ２００は、ローカル・モード動作に入る。他のすべての場合には、マルチプレクサ２００は、パススルー・モードに入るか、またはパススルー・モードに留まる。
【００２９】
動作中、ホスト・プロセッサ１０６上で実行中のアプリケーション・プロセスは、少なくともいくつかのパイプライン１０２にグラフィックス・プリミティブを割り当てる。プリミティブは、パイプライン１０２によって生成される一連のイメージに対応する。ホスト・アプリケーションは、次いで、第１のイメージ部分２０２をレンダリングするパイプライン１０２を選択する。ホスト・アプリケーションは、次いで、選択されたパイプライン１０２に次のビットをセットするために、グラフィックス・パイプライン１０２にコマンドを送信する。そのコマンドは、残りのパイプラインにディセーブル・レディ・ビットもセットする。
【００３０】
選択されたグラフィックス・パイプライン１０２がグラフィックス・プリミティブのレンダリングを終了すると、ローカル・スワップ・レディ２０８をアサートする。これは、グローバル・スワップ・レディ２１０をアサートさせる。次の垂直同期パルスの開始時には、選択されたグラフィックス・パイプライン１０２と他のすべてのグラフィックス・パイプライン１０２は、グローバル・レディ信号２１０をサンプリングする。グローバル・レディ信号がアサートされると、スワップ・イベントが開始する。
【００３１】
スワップ・イベント中、各グラフィックス・パイプラインは、次のビット２０４を現行ビット２０２に移動する。選択されたグラフィックス・パイプラインの場合、次のビット２０４がセットされる。これは、選択されたグラフィックス・パイプライン１０２をローカル・モード動作に入れる。残りのグラフィックス・パイプライン１０２は、次のビット２０４のクリアを完了する。これは、これらのパイプライン１０２を、パススルー・モードに入れるか、またはパススルー・モードに留まらせる。
【００３２】
ホスト・プロセッサ１０６は、適切な次のビット２０４および適切なレディ・ディセーブル・ビット２０６を反復的にセットすることによって、レンダリング・プロセスを続行する。レンダリングを完了し、そのビデオ・データを出力しているパイプライン１０２に、ホスト・プロセッサが新しいプリミティブを割り当てることができる。この方法で、本発明は、ソフトウェア・アプリケーションが、パイプライン１０２の順序または実行を選択的に制御できる柔軟な同期化機構を実現する。
【００３３】
本発明は、グラフィックス・パイプライン（図２に示すグラフィックス・パイプライン１０２のシーケンスなど）およびこのタイプのシーケンスと並列に作動するように構成されたグラフィックス・パイプラインの間の同期化された実行も実現する。図３に、このタイプの構成の一例を示す。図３は、図２の３つのシーケンシャルなパイプライン１０２ａ〜１０２ｃを含む。しかしながらここでは、２つの追加グラフィックス・パイプライン１０２ｄと１０２ｅが、パイプライン１０２ａ〜１０２ｃのシーケンスと並列に動作するように構成されている。
【００３４】
この例示において、３つのシーケンシャルなパイプライン１０２ａ〜１０２ｃは、ディスプレイ１０４の部分に対する一連のイメージを生成すると想定する。残りのパイプライン１０２ｄと１０２ｅは、それぞれディスプレイ１０４の追加の部分に対するイメージを提供する。これは、サンプル・イメージ４００が示されている図４を参照することによって理解されよう。サンプル・イメージ４００は、３つの部分４０２ａから４０２ｃに細分化される。図３の例示のために、それらの部分４０２は、３つのシーケンシャルなパイプライン１０２ａ〜１０２ｃおよびパイプライン１０２ｄ、１０２ｅによってそれぞれ寄与されると想定する。
【００３５】
３つのシーケンシャルなパイプライン１０２ａ〜１０２ｃと、パイプライン１０２ｄと１０２ｅの間の同期化は、それらがビデオ・データを出力する準備ができた時にローカル・スワップ・レディ信号を提供するようにパイプライン１０２ｄと１０２ｄを構成することによって達成される。これは、パイプライン１０２ｄと１０２ｅが準備完了するまでは３つのシーケンシャルなパイプライン１０２ａ〜１０２ｃがスワップ・イベント処理を開始しないようにさせる。パイプライン１０２ｄと１０２ｅは、グローバル・レディ信号２１０がアサートされるまでスワップ・イベント処理を遅らせることも要求される。これは、パイプライン１０２ｄと１０２ｅが、３つのシーケンシャルなパイプライン１０２ａ〜１０２ｃが準備完了するまでは、スワップ・イベント処理を絶対に開始しないようにさせる。この方法で、本発明は、シーケンスにグループ化されたパイプラインが他のパイプラインやパイプラインのグループと並列に動作することを可能にする。
【００３６】
本発明で開示した仕様および実施形態を考慮することにより、当業者には、他の実施形態が明らかになろう。仕様および例は、頭書の特許請求の範囲および相当する個所によって示された本発明の真の範囲を逸脱せず、例示としてのみ考慮されるように意図される。
【図面の簡単な説明】
【図１】順次動作するように構成された３つのグラフィックス・パイプラインを示すブロック図である。
【図２】図１のパイプライン・シーケンスの内部の詳細を示すブロック図である。
【図３】グラフィックス・パイプラインと並列で動作する図１のパイプライン・シーケンスを示すブロック図である。
【図４】３つのイメージ部分に分割される１つのイメージを示すブロック図である。
【図１】
0004249397.tif 000002
【図２】
0004249397.tif 000003
【図３】
0004249397.tif 000004
【図４】
0004249397.tif 000005