(57)【特許請求の範囲】
【請求項１】
ホストプロセッサとグラフィックスディスプレイとに接続され、該グラフィックスディスプレイ上に表示された画像を更新する際の該ホストプロセッサと該グラフィックスプロセッサとの間の相互作用を最小にするグラフィックスプロセッサであって、
該グラフィックスディスプレイに接続されたビデオ制御回路であって、該グラフィックスディスプレイを制御するビデオ制御回路と、
垂直線カウント値をカウントする垂直線カウンタと、
該ホストプロセッサに接続された少なくとも１つのプログラマブルレジスタであって、自動グラフィックス動作に関連する少なくとも１つのパラメータと自動グラフィックス動作の開始が所望されるか否かを示すＡＲＭパラメータとを該ホストプロセッサから受信し、格納する少なくとも１つのプログラマブルレジスタと、
該垂直線カウント値と該自動グラフィックス動作に関連する該少なくとも１つのパラメータとに基づいてトリガを示す第１のトリガリング回路と、
該少なくとも１つのプログラマブルレジスタに接続されたブロック転送エンジンであって、
該ＡＲＭパラメータが自動グラフィックス動作の所望される開始を示す場合には、該トリガに応答して、該自動グラフィックス動作に関連する該少なくとも１つのパラメータに基づいて、該自動グラフィックス動作を実行することにより、更新情報を生成し、該グラフィックスディスプレイ上に表示された画像を更新する該ビデオ制御回路に該更新情報を送信し、
該ＡＲＭパラメータが自動グラフィックス動作の所望される開始を示さない場合には、該自動グラフィックス動作を実行せず、該ビデオ制御回路に該更新情報を送信しないブロック転送エンジンと
を含む、グラフィックスプロセッサ。
【請求項２】
前記トリガは、前記垂直線カウンタによってカウントされた前記垂直線カウント値が前記少なくとも１つのプログラマブルレジスタ内に格納された安全な垂直線カウント値の範囲内にあるときに起こるスクリーンリフレッシュトリガであり、
前記ブロック転送エンジンが、該安全な垂直線カウント値の範囲内にある該垂直線カウント値に応答して、スクリーンリフレッシュ中に、前記グラフィックスディスプレイ上に表示された画像を更新するグラフィックス動作を自動的に実行する、請求項１に記載のグラフィックスプロセッサ。
【請求項３】
前記グラフィックスプロセッサが、前記垂直線カウンタによってカウントされた前記垂直線カウント値と、前記安全な垂直線カウント値の範囲を規定するスタート値およびストップ値との比較を行う、請求項２に記載のグラフィックスプロセッサ。
【請求項４】
前記トリガは、前記グラフィックスプロセッサに接続された前記ホストプロセッサによって前記少なくとも１つのプログラマブルレジスタのうちの１つに書込みが行われたときに起こるホスト直接制御トリガであり、
該ホストプロセッサが該少なくとも１つのプログラマブルレジスタのうちの１つに書込みを行った直後に、前記ブロック転送エンジンは前記グラフィックスディスプレイ上に表示された画像を更新するグラフィックス動作を自動的に実行する、請求項１に記載のグラフィックスプロセッサ。
【請求項５】
フレームバッファリングを提供するメモリに接続されたメモリ制御ユニットをさらに含み、該メモリ制御ユニットは、前記ホストプロセッサによって少なくとも１つのヘッダファイルが格納された該メモリ内の目に見えないメモリ位置を読み出し、該ヘッダファイルが、該グラフィックスプロセッサによって行われるべきグラフィックス動作と該グラフィックスプロセッサの前記少なくとも１つのプログラマブルレジスタにロードされるべきグラフィックス変数とを特定する、請求項１に記載のグラフィックスプロセッサ。
【請求項６】
前記グラフィックスプロセッサは、前記ホストプロセッサによって中断されることなく動作するように、該グラフィックスプロセッサのための一連の自動グラフィックスを連鎖させるために、前記少なくとも１つのヘッダファイルが少なくとも１つの別のヘッダファイルに連鎖されていることを示す前記少なくとも１つのプログラマブルレジスタのうちの１つの１ビットを有しており、該少なくとも１つのヘッダファイルが該少なくとも１つの別のヘッダファイルの位置に対するポインタを含む、請求項５に記載のグラフィックスプロセッサ。
【請求項７】
前記少なくとも１つのプログラマブルレジスタうちの１つが、前記少なくとも１つのヘッダファイルを含む前記メモリ位置をポイントするアドレスを含む、請求項５に記載のグラフィックスプロセッサ。
【請求項８】
グラフィックスディスプレイ上に表示された画像を更新する際のホストプロセッサとグラフィックスプロセッサとの間の相互作用を最小にする方法であって、
該方法は、グラフィックスプロセッサを用いるものであり、該グラフィックスプロセッサは、該グラフィックスディスプレイに接続されたビデオ制御回路であって、該グラフィックスディスプレイを制御するビデオ制御回路と、垂直線カウンタと、該ホストプロセッサに接続された少なくとも１つのプログラマブルレジスタと、第１のトリガリング回路と、該少なくとも１つのプログラマブルレジスタに接続されたブロック転送エンジンとを含み、
該方法は、
該垂直線カウンタが、垂直線カウント値をカウントすることと、
該少なくとも１つのプログラマブルレジスタが、自動グラフィックス動作に関連する少なくとも１つのパラメータと自動グラフィックス動作の開始が所望されるか否かを示すＡＲＭパラメータとを該ホストプロセッサから受信し、格納することと、
該第１のトリガリング回路が、該垂直線カウント値と該自動グラフィックス動作に関連する該少なくとも１つのパラメータとに基づいてトリガを示すことと、
該ブロック転送エンジンが、
該ＡＲＭパラメータが自動グラフィックス動作の所望される開始を示す場合には、該トリガに応答して、該自動グラフィックス動作に関連する該少なくとも１つのパラメータに基づいて、該自動グラフィックス動作を実行することにより、更新情報を生成し、該グラフィックスディスプレイ上に表示された画像を更新する該ビデオ制御回路に該更新情報を送信し、
該ＡＲＭパラメータが自動グラフィックス動作の所望される開始を示さない場合には、該自動グラフィックス動作を実行せず、該ビデオ制御回路に該更新情報を送信しないことと
を包含する、方法。
【請求項９】
前記トリガは、前記垂直線カウンタによってカウントされた前記垂直線カウント値が前記少なくとも１つのプログラマブルレジスタ内に格納された安全な垂直線カウント値の範囲内にあるときに起こるスクリーンリフレッシュトリガであり、
前記ブロック転送エンジンが、該安全な垂直線カウント値の範囲内にある該垂直線カウント値に応答して、スクリーンリフレッシュ中に、前記グラフィックスディスプレイ上に表示された画像を更新するグラフィックス動作を自動的に実行する、請求項８に記載の方法。
【請求項１０】
前記グラフィックスプロセッサが、前記垂直線カウンタによってカウントされた前記垂直線カウント値と前記安全な垂直線カウント値の範囲を規定するスタート値およびストップ値との比較を行う、請求項９に記載の方法。
【請求項１１】
前記トリガは、前記グラフィックスプロセッサに接続された前記ホストプロセッサによって前記少なくとも１つのプログラマブルレジスタのうちの１つに書込みが行われたときに起こるホスト直接制御トリガであり、
該ホストプロセッサが該少なくとも１つのプログラマブルレジスタのうちの１つに書込みを行った直後に、前記ブロック転送エンジンは前記グラフィックスディスプレイ上に表示された画像を更新するグラフィックス動作を自動的に実行する、請求項８に記載の方法。
【請求項１２】
前記グラフィックスプロセッサは、フレームバッファリングを提供するメモリに接続されたメモリ制御ユニットをさらに備え、該方法は、
該メモリ制御ユニットが、前記ホストプロセッサによって少なくとも１つのヘッダファイルが格納された該メモリ内の目に見えないメモリの位置を読み出すことをさらに包含し、
該ヘッダファイルが、該グラフィックスプロセッサによって行われるべきグラフィックス動作と該グラフィックスプロセッサの前記少なくとも１つのプログラマブルレジスタにロードされるべきグラフィックス変数とを特定する、請求項８に記載の方法。
【請求項１３】
前記グラフィックスプロセッサは、前記ホストプロセッサによって中断されることなく動作するように、該グラフィックスプロセッサのための一連の自動グラフィックスを連鎖させるために、前記少なくとも１つのヘッダファイルが少なくとも１つの別のヘッダファイルに連鎖されていることを示す前記少なくとも１つのプログラマブルレジスタのうちの１つの１ビットを有しており、該少なくとも１つのヘッダファイルが該少なくとも１つの別のヘッダファイルの位置に対するポインタを含む、請求項１２に記載の方法。
【請求項１４】
前記少なくとも１つのプログラマブルレジスタのうちの１つが、前記少なくとも１つのヘッダファイルを含む前記メモリ位置をポイントするアドレスを含む、請求項１２に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は高性能グラフィックスシステムの分野に関する。より詳細には、本発明はホストコンピュータとグラフィックスプロセッサとの間のインタフェースおよびインタラクションに関する。
【０００２】
【従来の技術】
典型的な高性能グラフィックスアプリケーションは、各種汎用能力を有するホストコンピュータ、および専用の各種グラフィック動作を実行する特殊ハードウェアグラフィックスプロセッサから構成される。グラフィックスプロセッサは、例えば直線を描く動作、ブロックを塗りつぶす動作、ブロック転送（ＢＬＴ）といった時間のかかる各種タスクを実行する内蔵型ハードウェア回路を備えている。また、大多数のグラフィックスプロセッサは、ビデオ表示用のビデオ制御信号を発生するようにプログラムすることが可能である。ホストコンピュータは、グラフィックスプロセッサに対してコマンドを送り、その全ソフトウェアの一部としてグラフィックスプロセッサからステータスを受け取る。ホストからコマンドを受け取るとただちに、グラフィックスプロセッサは、各種動作を独立して実行することができる。また、ホストは、内部レジスタにアクセスすることによって、またはある場合にはグラフィックスプロセッサ信号をモニタすることによって、グラフィックスプロセッサの状態を読み取ることができる。しかし、情報をやりとりする際には、それでもいくらかのオーバーヘッドがもたらされることになる。このような問題は、ホストが一連のコマンドをグラフィックスプロセッサに送ることを望む場合には、より顕著になる。したがって、グラフィックス動作およびビデオ制御機能を管理するタスクをホストに負わせないようにするためには、ホストとグラフィックスプロセッサとの間のインタラクションを最適化することが必要である。
【０００３】
【発明が解決しようとする課題】
いくつかのインタラクションスキームをホストは採用することができる。まず、ポーリングスキームの場合には、ホストは（例えば状態ビットを読み取ることによって）グラフィックスプロセッサをモニタし、それによって直前の１セットのコマンドが遂行されたどうかを判定することができる。その結果、ホストは新しいセットのコマンドを送ることが可能になる。このポーリングスキームの最も深刻な欠点は、ホストの時間が浪費されることである。なぜなら、ホストは、全グラフィックシーケンスが遂行されるまでその通常の機能に戻ることができないからである。次に、割り込みスキームの場合には、グラフィックスプロセッサは、１セットのコマンドを完了した時に、割り込み信号をホストに送ることができる。この割り込みスキームに伴う問題は、ホストが応答可能になるまでに依然としてアイドル時間が存在することであり、連続的に割り込みをおこなうとホストの能率が低下する可能性があることである。したがって、ホストとグラフィックスプロセッサとが互いに依存する度合いを緩和できるように、ホストとグラフィックスプロセッサとの間のインタラクションを最小限にとどめることを可能にする、さらに優れたインタラクションスキームを開発するのが望ましい。
【０００４】
アニメーションやビデオの処理にあたっては、インタラクションの問題はさらに深刻になる。このような用途では、２種類の更新レートがある。すなわちアニメーション更新（またはイメージ更新）とスクリーンリフレッシュの２つである。アニメーション更新レートとは、古いイメージを新しいイメージに置き換える際のレートのことである。スクリーンリフレッシュレートとは、ビデオコントローラが新しい垂直帰線サイクルを開始する際のレートのことである。アニメーション更新レートが、イメージシーケンスの性格や、グラフィックスプロセッサの速度に依存する一方で、スクリーンリフレッシュレートは、表示モニタのタイプや、プログラムされたビデオ制御パラメータに依存する。これら２つの更新レートは、互いに全く独立したものである。
【０００５】
表示メモリにおけるイメージを更新するスキームとしては、基本的には２つのスキームがある。第１のスキームにおいては、表示が更新されている間に表示メモリに書き込みがおこなわれる。表示メモリのどの部分が現在表示されており、また、どの部分が現在変更されているかということに関して、両者の調整が図られることはないので、表示には「バンディング（banding）」あるいは「ティアリング（tearing）」と呼ばれる悪影響が及ぼされることがある。その場合、古いイメージの一部と新しいイメージの一部とが表示されるので、イメージがジャンプしたり、歪んだりする。第２のスキームにおいては、新しいイメージまたは新しいイメージの一部が、目に見えないメモリスペースに書き込まれる。スクリーンリフレッシュがバンディングが起こりうる点を過ぎるとき、このメモリの内容が表示メモリに転送される。このスキームに伴う問題は、転送コマンドを送るのに安全な点にいつスクリーンリフレッシュがいたるかということを、ホストが独立して予測できないことである。この理由としては、スクリーンリフレッシュがホストから独立した動作であること、および表示クロックとホストクロックとの間には何の関係もないことが挙げられる。割り込みの場合でも、ソフトウェアオーバーヘッド、初期化および信頼性に関わる問題が依然としてある。
【０００６】
本発明は、上記課題を解決するためになされたものであり、その目的とするところは、以上の従来技術の概略から明らかなように、遅延を最小限にとどめ、グラフィックに悪影響が及ぼされる事態を回避するために、ホストとグラフィックスプロセッサとの間のインタラクションスキームを最適化することにある。そうすれば、ホストの介入なしに、各種グラフィックス動作を自動的に実行することが可能となる。
【０００７】
【課題を解決するための手段】
本発明によるグラフィックスシステムは、自動的にグラフィックス動作を実行するグラフィックスシステムであって、ホストコンピュータと、該ホストコンピュータに接続されたフレームバッファメモリと、該ホストコンピュータおよび該フレームバッファメモリに接続されているグラフィックスプロセッサであって、第１のグラフィックス動作を開始する第１のトリガリング回路、およびプログラマブルレジスタを有し、該第１のトリガリング回路に接続されているブロック転送エンジンであって、該フレームバッファメモリへの転送および該フレームファイルメモリからの転送を制御し、かつ、該プログラマブルレジスタの内容に基づき、該第１のトリガリング回路に応答して該第１のグラフィックス動作を実行する、ブロック転送エンジンを有しているグラフィックスプロセッサと、を備えており、そのことにより上記目的が達成される。
【０００８】
ある実施形態では、前記グラフィックスプロセッサが、前記ブロック転送エンジンに接続されており、第２のグラフィックス動作を開始する第２のトリガリング回路をさらに備えており、該ブロック転送エンジンにおける前記プログラマブルレジスタが、該プログラマブルレジスタの内容に基づき、該第２のトリガリング回路に応答して該第２のグラフィックス動作を実行する。
【０００９】
ある実施形態では、前記グラフィックスプロセッサが、複数のプログラマブルレジスタの内容に基づき、前記第１のトリガリング回路または前記第２のトリガリング回路に応答して複数のグラフィックス動作を実行する、前記プログラマブルレジスタを複数個備えている。
【００１０】
ある実施形態では、前記プログラマブルレジスタが、垂直走査線の最小値と該垂直走査線の最大値とを格納する複数のレジスタからなる。
【００１１】
ある実施形態では、前記プログラマブルレジスタが、イネーブルビットが第１のイネーブル状態にある時には前記第１のトリガリング回路をトリガし、該イネーブルビットが第２のイネーブル状態にある時には前記第２のトリガリング回路をトリガするイネーブルビットを有している。
【００１２】
ある実施形態では、前記グラフィックスプロセッサが垂直カウンタ値をインクリメントするビデオ制御回路をさらに備えており、前記イネーブルビットが前記第１のイネーブル状態にある時に前記第１のトリガリング回路がトリガされ、かつ、該垂直カウンタ値が、前記垂直走査線の前記最小値と前記最大値との間の値である。
【００１３】
ある実施形態では、１サブセットの前記プログラマブルレジスタの内容に基づいて前記第１のグラフィックス動作が実行され、該１サブセットの該プログラマブルレジスタが、第１および第２の連鎖イネーブル状態を有する連鎖イネーブルビットと、次のサブセットの該プログラマブルレジスタのアドレスを示す少なくとも１つの位置ポインタと、を含んでいる。
【００１４】
ある実施形態では、前記グラフィックスプロセッサが、前記次のサブセットの前記プログラマブルレジスタの内容を前記アドレスから取り出し、前記連鎖イネーブルビットが前記第１の連鎖イネーブル状態にある時には前記第１のグラフィックス動作を実行し、かつ、該連鎖イネーブルビットが前記第２の連鎖イネーブル状態にある時には通常のモードに戻る。
【００１５】
本発明による自動グラフィックス動作方法は、ホストコンピュータに接続されたフレームバッファメモリを設けるステップと、第１のグラフィックス動作を開始する第１のトリガリング回路を有するグラフィックスプロセッサであって、該ホストコンピュータおよび該フレームバッファメモリに接続されているグラフィックスプロセッサを設けるステップと、該第１のトリガリング回路に接続されており、該フレームバッファメモリからの転送および該フレームバッファメモリへの転送を制御するブロック転送エンジンであって、プログラマブルレジスタの内容に基づき、該第１のトリガリング回路に応答して該第１のグラフィックス動作を実行するのに用いられるプログラマブルレジスタを有している、ブロック転送エンジンを設けるステップと、を含んでおり、そのことにより上記目的が達成される。
【００１６】
ある実施形態では、前記グラフィックスプロセッサを設ける前記ステップが、前記ブロック転送エンジンに接続されており、第２のグラフィックス動作を開始する第２のトリガリング回路を設けるステップをさらに備えており、該ブロック転送エンジンにおける前記プログラマブルレジスタが、該プログラマブルレジスタの内容に基づき、該第２のトリガリング回路に応答して該第２のグラフィックス動作を実行する。
【００１７】
ある実施形態では、前記ブロック転送エンジンを設ける前記ステップが、複数のプログラマブルレジスタの内容に基づき、前記第１のトリガリング回路または前記第２のトリガリング回路に応答して複数のグラフィックス動作を実行する前記プログラマブルレジスタを複数個設けるステップをさらに備えている。
【００１８】
ある実施形態では、前記ブロック転送エンジンを設ける前記ステップにおいて、前記プログラマブルレジスタが、垂直走査線の最小値と該垂直走査線の最大値とを格納する複数のレジスタからなる。
【００１９】
ある実施形態では、前記ブロック転送エンジンを設ける前記ステップにおいて、前記プログラマブルレジスタが、イネーブルビットが第１のイネーブル状態にある時には前記第１のトリガリング回路をトリガし、該イネーブルビットが第２のイネーブル状態にある時には前記第２のトリガリング回路をトリガするイネーブルビットを有している。
【００２０】
ある実施形態では、前記グラフィックスプロセッサを設ける前記ステップにおいて、前記グラフィックスプロセッサが垂直カウンタ値をインクリメントするビデオ制御回路をさらに備えており、前記イネーブルビットが前記第１のイネーブル状態にある時に前記第１のトリガリング回路がトリガされ、かつ、該垂直カウンタ値が、前記垂直走査線の前記最小値と前記最大値との間の値である。
【００２１】
ある実施形態では、前記グラフィックスプロセッサを設ける前記ステップにおいて、１サブセットの前記プログラマブルレジスタの内容に基づいて前記第１のグラフィックス動作が実行され、該１サブセットの該プログラマブルレジスタが、第１および第２の連鎖イネーブル状態を有する連鎖イネーブルビットと、次のサブセットの該プログラマブルレジスタのアドレスを示す少なくとも１つの位置ポインタと、を含んでいる。
【００２２】
ある実施形態では、前記グラフィックスプロセッサを設ける前記ステップにおいて、前記グラフィックスプロセッサが、前記次のサブセットの前記プログラマブルレジスタの内容を前記アドレスから取り出し、前記連鎖イネーブルビットが前記第１の連鎖イネーブル状態にある時には前記第１のグラフィックス動作を実行し、かつ、該連鎖イネーブルビットが前記第２の連鎖イネーブル状態にある時には通常のモードに戻る。
【００２３】
本発明によるグラフィックスプロセッサは、ホストコンピュータおよびフレームバッファメモリに接続されており、自動的にグラフィックス動作を実行するグラフィックスプロセッサであって、第１のグラフィックス動作を開始する第１のトリガリング回路と、プログラマブルレジスタを有し、該第１のトリガリング回路に接続されているブロック転送エンジンであって、該プログラマブルレジスタの内容に基づき、該第１のトリガリング回路に応答して該第１のグラフィックス動作を実行する、ブロック転送エンジンと、を備えており、そのことにより上記目的が達成される。
【００２４】
ある実施形態では、前記ブロック転送エンジンに接続されており、第２のグラフィックス動作を開始する第２のトリガリング回路をさらに備えており、該ブロック転送エンジンにおける前記プログラマブルレジスタが、該プログラマブルレジスタの内容に基づき、該第２のトリガリング回路に応答して該第２のグラフィックス動作を実行する。
【００２５】
ある実施形態では、前記グラフィックスプロセッサが、複数のプログラマブルレジスタの内容に基づき、前記第１のトリガリング回路または前記第２のトリガリング回路に応答して複数のグラフィックス動作を実行する前記プログラマブルレジスタを複数個備えている。
【００２６】
ある実施形態では、前記プログラマブルレジスタが、垂直走査線の最小値と該垂直走査線の最大値とを格納する複数のレジスタからなる。
【００２７】
ある実施形態では、前記プログラマブルレジスタが、イネーブルビットが第１のイネーブル状態にある時には前記第１のトリガリング回路をトリガし、該イネーブルビットが第２のイネーブル状態にある時には前記第２のトリガリング回路をトリガするイネーブルビットを有している。
【００２８】
ある実施形態では、前記グラフィックスプロセッサが垂直カウンタ値をインクリメントするビデオ制御回路をさらに備えており、前記イネーブルビットが前記第１のイネーブル状態にある時に前記第１のトリガリング回路がトリガされ、かつ、該垂直カウンタ値が、前記垂直走査線の前記最小値と前記最大値との間の値である。
【００２９】
ある実施形態では、１サブセットの前記プログラマブルレジスタの内容に基づいて前記第１のグラフィックス動作が実行され、該１サブセットの該プログラマブルレジスタが、第１および第２の連鎖イネーブル状態を有する連鎖イネーブルビットと、次のサブセットの該プログラマブルレジスタのアドレスを示す少なくとも１つの位置ポインタと、を含んでいる。
【００３０】
ある実施形態では、前記グラフィックスプロセッサが、前記次のサブセットの前記プログラマブルレジスタの内容を前記アドレスから取り出し、前記連鎖イネーブルビットが前記第１の連鎖イネーブル状態にある時には前記第１のグラフィックス動作を実行し、かつ、該連鎖イネーブルビットが前記第２の連鎖イネーブル状態にある時には通常のモードに戻る。
【００３１】
以下に作用を説明する。
【００３２】
本発明は、新規なハードウェア内蔵型の特徴を多数含む高性能グラフィックスプロセッサを備えている。本発明のグラフィックスプロセッサの重要な部分は、中央コントローラとして作用し、フェッチおよびプロセスを開始し、リクエストを格納するＢＬＴエンジンである。このＢＬＴエンジンの、本発明に関わる主要な特徴は、自動トリガリングにある。自動ＢＬＴは、以下に示す２つの方法のいずれかによってトリガされる。すなわち、（１）スクリーン垂直カウントが所定値に達したとき、あるいは（２）トリガビットがホストにより設定されるとき、の２つである。第１の方法によれば、ホストは、ＣＲＴコントローラにおける安全領域を指定するために値をプログラムし、垂直カウンタがこの安全な範囲に達すると、ＢＬＴがトリガされることになる。この方法により、ホストプロセッサの介入なしに、スクリーンリフレッシュを用いてイメージを更新する際の同期の問題を解決することができる。第２の方法においては、ホストは、自動ＢＬＴをトリガする時間を直接に制御することができる。
【００３３】
自動ＢＬＴの間に、ＢＬＴに対する各種変数は、フレームバッファから制御パスへと転送されなければならない。これらの変数には、ソースおよびデスティネーションの位置および範囲、ならびに連鎖における次のＢＬＴのソースが含まれる。１シーケンスのＢＬＴ動作の連鎖は、グラフィックスプロセッサにおけるＬＮＣＮＴＬレジスタのビットを設定することによって実現される。
【００３４】
本発明は、自動グラフィックス動作を実現するために、ＣＲＴ制御トリガリングメカニズムおよびグラフィックスプロセッサの自動的連鎖を活用する。
【００３５】
第１の構成によれば、ホストは、１セットのグラフィックス動作をバッファメモリにおける目に見えない部分（オフスクリーンメモリ）における一連のヘッダファイルとして組み立てる。各ヘッダファイルは、レジスタデータとグラフィックス制御データとを含んでいる。ヘッダファイルにおける最後のエントリは、実行すべき次の動作を指示する。最後のヘッダファイルは、連鎖プロセスをディセーブルするＬＮＣＮＴＬ用の値を含んでいる。１シーケンスのヘッダファイルをオフスクリーンメモリに書き込んだ後、ホストはグラフィックスプロセッサに実行開始のコマンドを与え、第１のヘッダファイルの位置を与える。グラフィックスプロセッサは、これらのヘッダファイルを読み取り、ディセーブルされた連鎖ビットを含むヘッダに到達するまで、指定された各種グラフィックス動作を実行する。この時点において、すべての動作が完了する。全期間を通じて、ホストはその通常のタスクを自由に実行することができる。
【００３６】
第２の構成によれば、上述したケースと同様に、ホストは１シーケンスのヘッダファイルを組み立てる。さらに、ホストは、グラフィックス動作を開始する点が含まれる垂直走査線範囲を指定できるように、レジスタをプログラムする。すると、ホストは、自由にその通常のタスクに戻ることができる。ＣＲＴコントローラが指定された垂直走査線範囲内にあるときには、グラフィックスプロセッサは、上述したケースと同様に、グラフィックス動作を開始する。
【００３７】
【発明の実施の形態】
本発明は、典型的な好ましい実施形態の説明により、最もよく理解することができる。
【００３８】
図１は、グラフィックスシステムの典型的構成例を図示している。ホストコンピュータ１０は、メモリ、周辺機器およびグラフィックスプロセッサとの間のインタフェースとして作用するだけの通常のパワーおよび能力を有する汎用のプロセッサであればどんなものでもよい。グラフィックスプロセッサ２０は、グラフィックス動作およびビデオ制御機能をより高速に実行する、内蔵型ハードウェア回路を有するプロセッサである。ホストコンピュータ１０は、インタフェースバス３０を介してグラフィックスプロセッサ２０と通信する。ホストコンピュータ１０およびグラフィックスプロセッサ２０の両者ともに、フレームバッファメモリ４０から情報を得ることができる。また、グラフィックスプロセッサ２０は、表示モニタ５０に対してビデオおよび各種ビデオ制御信号を発生する。
【００３９】
好ましい実施形態においては、ホストコンピュータ１０は、例えばインテルＸ８６型グラフィックスプロセッサやパワーＰＣプロセッサのような拡張型プロセッサ２０を備えている。グラフィックスプロセッサ２０は、例えばビデオ制御機能、ＢＬＴエンジンおよび自動ＢＬＴ動作のようなハードウェア内蔵の各種特徴を備えた高性能グラフィックスコントローラである。また、インタフェースバス３０は、周辺機器相互接続（ＰＣＩ）ローカルバスでも、ＶＬビデオエレクトロニクス標準接続（ＶＥＳＡ）ローカルバスでもよい。ＰＣＩバスおよびＶＬバスは、ホストと、例えばグラフィックスコントローラのような周辺機器とを局所的に相互接続するために広く用いられているバスである。ＰＣＩバスは、フレームバッファメモリ４０へのアクセスに際しては、ホストに対するインタフェースとして作用する。
【００４０】
図２は、図１のグラフィックスプロセッサ２０を図示する詳細ブロック図である。
【００４１】
以下の各種特徴は、すべて本発明に関わるものである。
【００４２】
１．ホストインタフェース５２
グラフィックスプロセッサ２０は、どのようなＰＣＩローカルバスあるいはＶＬローカルバス３０にも直接に接続される。また、グラフィックスプロセッサ２０は、フレームバッファメモリ４０に対するインタフェースとして作用する。フレームバッファメモリ４０は、少なくとも（１）加速された表示領域、（２）ＳＶＧＡ（スーパーＶＧＡ）表示領域、および（３）オートＢＬＴパラメータ領域の３つに割り当てることができる。オートＢＬＴパラメータ領域は、ホスト１０がヘッダファイルを書き込み、グラフィックスプロセッサ２０がヘッダファイルを取り出す領域である。
【００４３】
２．ＢＬＴエンジン５４
ＢＬＴエンジン５４は、グラフィックス動作に対するマスタコントローラである。ＢＬＴエンジン５４は、データがフレームバッファメモリ４０から内部スタティックＲＡＭ５６へとフェッチされるようにし、画素パス制御動作を開始し、かつ、その結果がフレームバッファメモリ４０、ＳＲＡＭ５６またはホスト１０に格納しなおされるようにする。
【００４４】
ＢＬＴエンジン５４は、コマンドパイプから受け取ったコマンドを復号化する。これらのコマンドは、通常、ホストインタフェース５２を通して伝えられてくる。ＢＬＴエンジン５４は、各種低レベルグラフィックス機能において用いられる複数のレジスタ５６のすべてを含んでいる。これらのレジスタ５６は、フレームバッファ４０、ＳＲＡＭ５６、およびＢＬＴの範囲に対するポインタを含んでおり、ＢＬＴのソースおよび制御レジスタのサイズを再び決める。
【００４５】
３．グラフィックス加速器レジスタ
グラフィックスプロセッサ２０は、ＢＬＴエンジン５４内に位置決めされており、メモリ空間の１６キロバイトを占めるメモリマップされたレジスタ５６としてアクセス可能である、１セットのグラフィックス加速器レジスタ５６を有している。これらのレジスタ５６は、典型的にはホスト１０による書き込みの対象となり、グラフィックスプロセッサ２０によって実行される各種グラフィックス動作をセットアップする。関連するレジスタ５６をいくつか以下に掲げる。
【００４６】
ＬＮＣＮＴＬ：ライン制御およびオートＢＬＴ制御フラグ
ＣＯＭＭＡＮＤ：コマンド／データレジスタ
ＯＰ｛０〜２｝＿ｏｐＲＤＲＡＭ：カラーＲＤＲＡＭアドレスレジスタ
ＲＥＳＩＺＥ（Ａ〜Ｃ）＿ｏｐＲＤＲＡＭ：自動ＢＬＴヘッダソースアドレスレジスタ
ＳＴＡＲＴ＿ＢＬＴ＿ｉ（ｉ＝１、２、３）：ウィンドウｉ（ｉ＝１、２、３）のオートＢＬＴをスタートする
ＳＴＯＰ＿ＢＬＴ＿ｉ（ｉ＝１、２、３）：ウィンドウｉ（ｉ＝１、２、３）のオートＢＬＴをストップする
ＬＮＣＮＴＬ（ライン制御）レジスタは１６ビットを有している。また、ＬＮＣＮＴＬレジスタは、複数のオートＢＬＴを連鎖させるのに用いられる連鎖イネーブルビットも有している。このビットがハイである時、オートＢＬＴは新しいヘッダを（完全である場合には）フェッチする。ローである時には、連鎖は終了する。
【００４７】
ＣＯＭＭＡＮＤレジスタは、３２ビットである。このレジスタは、ホストとＢＬＴエンジンとの間のライトＦＩＦＯに直接アクセスすることを可能にする。
【００４８】
ＣＯＮＴＲＯＬレジスタは１６ビットである。このレジスタは、コマンドパイプおよびリード／ライトＦＩＦＯの各部分の状態を制御し、それらの状態をリターンする。ＣＯＮＴＲＯＬレジスタは、ＡＵＴＯ＿ＢＬＴ＿ＥＮビットを有している。ＡＵＴＯ＿ＢＬＴ＿ＥＮが０である時、オートＢＬＴアーム／トリガメカニズムがディセーブルされる。１である時には、メカニズムは通常どおりに動作する。
【００４９】
ＯＰ｛０〜２｝＿ｏｐＲＤＲＡＭレジスタは、３２ビットであり、ＲＤＲＡＭのＸおよびＹアドレスを選択されたＯＦＵ（オペランドフェッチユニット）に供給する。ＯＰ０＿ｏｐＲＤＲＡＭレジスタは、結果として得られたＸバイトおよびＹラインアドレスを格納することができる。
【００５０】
ＲＥＳＩＺＥ｛Ａ〜Ｃ｝＿ｏｐＲＤＲＡＭレジスタは、３２ビットであり、自動リサイズＢＬＴに対するソースアドレスと、自動グラフィックス動作用の制御ビットとを含んでいる。各レジスタは、ＣＲＴコントローラから与えられた適切な垂直カウントによってトリガされる別個のソースアドレスを含んでいる。また、各レジスタは、ＴＲＩＧＧＥＲおよびＡＲＭからなる２つの制御ビットを有している。ＴＲＩＧＧＥＲビットは、オートＢＬＴをトリガするために用いられる。ＴＲＩＧＧＥＲがハイである時、レジスタに書き込みがおこなわれるとただちににオートＢＬＴがトリガされる。ＴＲＩＧＧＥＲがローである時には、レジスタはＣＲＴコントローラが適切な垂直カウントに達するのを待つ。ＡＲＭビットは、自動ＢＬＴを準備するために用いられる。ＡＲＭがハイである時、自動ＢＬＴはアームド（armed）になる。つまり、ＣＲＴコントローラが適切な垂直カウントに達すると、オートＢＬＴがスタートすることになる。ＡＲＭがローである時、オートＢＬＴは外部からアームドにされねばならない。これらの制御ビットは、以下のように要約される。
【００５１】
トリガアーム  動作
０  ０  外部からアームド
０  １  自動的にアームドされる。垂直カウントに達するとトリガする。
【００５２】
１  ０  レジスタに書き込みが行われるとただちにオートＢＬＴをトリガする。
【００５３】
１  １  無効
ＲＥＳＩＺＥ｛Ａ〜Ｃ｝＿ｏｐＲＤＲＡＭの残りのビットは、ソースデータがＲＤＲＡＭメモリに存在する垂直および水平方向の位置を指定するために用いられる。
【００５４】
ＳＴＡＲＴ＿ＢＬＴ＿１の８ビットレジスタは、スキャンリフレッシュ時にどこで（３２スキャンラインの倍数単位で）ウィンドウ１のオートＢＬＴがイネーブルされるかを規定し、それによってウィンドウのティアリングを防止する。オートＢＬＴは、 ＳＴＡＲＴ＿ＢＬＴ＿１≦現在のスキャンライン＜ＳＴＯＰ＿ＢＬＴ＿１である時にイネーブルされる。このレジスタは、ＲＥＳＩＺＥＡ＿ｏｐＲＤＲＡＭのビット３１が１である時にディセーブルされる。
【００５５】
ＳＴＯＰ＿ＢＬＴ＿１の８ビットレジスタは、スキャンリフレッシュ時にどこで（３２スキャンラインの倍数単位で）ウィンドウ１のオートＢＬＴがディセーブルされるかを規定し、それによってウィンドウのティアリングを防止する。このレジスタは、ＲＥＳＩＺＥＡ＿ｏｐＲＤＲＡＭのビット３１が１である時にディセーブルされる。また、このレジスタのビット７（ＭＳＢ）は、ウィンドウ１をイネーブルするのに用いられる。もしこのビットが１であるのなら、ウィンドウ１はイネーブルされる。一方、もしこのビットが０であるのなら、ウィンドウ１はディセーブルされる。つまり、オートＢＬＴはトリガされない。
【００５６】
ＳＴＡＲＴ＿ＢＬＴ＿１は、ＳＴＯＰ＿ＢＬＴ＿１とは違っていなければならない。
【００５７】
ＳＴＡＲＴ＿ＢＬＴ＿２、ＳＴＯＰ＿ＢＬＴ＿２、ＳＴＡＲＴ＿ＢＬＴ＿３およびＳＴＯＰ＿ＢＬＴ＿３は、それぞれＲＥＳＩＺＥＢ＿ｏｐＲＤＲＡＭおよびＲＥＳＩＺＥＣ＿ｏｐＲＤＲＡＭが代わりに用いられる点を除いて同様である。したがって、互いに異なる３つの安全領域を用いて、３つのウィンドウを同時にアクティブに設定することができる。
【００５８】
ＳＴＡＲＴ＿ＢＬＴ＿ｉおよびＳＴＯＰ＿ＢＬＴ＿ｉ（ｉ＝１、２、３）は、垂直カウント値によってトリガされるオートＢＬＴに対応する安全領域を規定することによって、悪影響を全く及ぼすことなく、各種グラフィックス動作を実行する。
【００５９】
自動ＢＬＴ動作
自動ＢＬＴ動作を実現するためには、２つのことをする必要がある。第１に、実行すべきグラフィックス動作を指定するためには、ヘッダファイルを作成しなければならない。このヘッダファイルは、本来、グラフィックスエンジンにロードされるグラフィックス変数を含んでいる。第２に、ヘッダファイルを作成した後に、トリガリングメカニズムを選択しなければならない。
【００６０】
１．ヘッダファイル
ヘッダファイルは、適切なグラフィックスエンジンにロードされるべきデータを含んでいる。ヘッダファイルは、ホストによってフレームバッファメモリ４０の目に見えない領域に書き込まれる。グラフィックスプロセッサは、このヘッダファイルを読み出し、指定された複数のレジスタをそのヘッダファイルに含まれている複数の値で満たす。ヘッダファイルにおいてその値が指定されるレジスタは２８個ある。それぞれの値が１６ビットを必要としているので、ヘッダファイルを満たすのに必要な総バイト数は５６となる。ヘッダファイルにおけるレジスタの順番には従わなければならない。
【００６１】
２．トリガリングメカニズム
自動ＢＬＴ動作は、スクリーンリフレッシュおよびホスト直接制御の２つの方法のいずれかによってトリガすることができる。
【００６２】
（１）スクリーンリフレッシュ
グラフィックスプロセッサ２０は、例えば水平ｓｙｎｃ、垂直ｓｙｎｃおよび画素クロックのような各種ビデオ制御信号を発生する固有のビデオ制御回路を有している。いったん初期化されると、グラフィックスプロセッサ２０は、ＢＬＴエンジン５４およびホスト１０から独立して、これらの信号を発生する。スクリーンリフレッシュは、ビデオスクリーンが新しいイメージによって更新されるメカニズムとして参照される。このことは、本質的に垂直ｓｙｎｃによって要求されることである。グラフィックスプロセッサ２０は、垂直ラインカウントをインクリメントする垂直ｓｙｎｃカウンタを有している。アニメーションやビデオなどに適用する際には、イメージの更新とスクリーンリフレッシュとの間の同期をとることによって、表示に悪影響が及ぼされる事態を回避することが重要である。
【００６３】
ＲＥＳＩＺＥ｛Ａ〜Ｃ｝＿ｏｐＲＤＲＡＭにおけるＴＲＩＧＧＥＲビットおよびＡＲＭビットが、それぞれ０および１にプログラムされている時、垂直ｓｙｎｃトリガリングメカニズムがイネーブルされる。ＳＴＡＲＴ＿ＢＬＴ＿ｉおよびＳＴＯＰ＿ＢＬＴ＿ｉレジスタは、オートＢＬＴがトリガされる垂直カウント範囲を与える。垂直カウント値が対応するＳＴＡＲＴ＿ＢＬＴ＿ｉを超えると、（グラフィックスエンジンが他のタスクを実行するのに忙しくなければ）オートＢＬＴがただちにスタートする。グラフィックスエンジンが他のタスクを実行するのに忙しいのなら、グラフィックスエンジンはそのタスクを完了した後（垂直カウント値が対応するＳＴＯＰ＿ＢＬＴ＿ｉにおける値未満である限り）ただちにオートＢＬＴ動作をスタートする。したがって、ＳＴＡＲＴ＿ＢＬＴ＿ｉ値およびＳＴＯＰ＿ＢＬＴ＿ｉ値によって、オートＢＬＴ動作をスタートできる最も早いフレームタイムと最も遅いフレームタイムとが得られる。いったんスタートされると、オートＢＬＴ動作は、垂直カウント値には関わりなく、最後まで実行される。したがって、現在表示されているイメージの全部または一部に上書きすることなく、グラフィックス動作を安全かつ確実に進めることができるようにするためには、ＳＴＡＲＴ＿ＢＬＴ＿ｉおよびＳＴＯＰ＿ＢＬＴ＿ｉに書き込まれる値を慎重に選択しなければならない。
【００６４】
スクリーンリフレッシュによってこのオートＢＬＴ動作をおこなうためのレジスタとしては、３セットの独立したレジスタがあるのだから、スクリーン上の３つのウィンドウをそれぞれ独立してリフレッシュする（例えば、更新する）ことができる。
【００６５】
図３は、オートＢＬＴレジスタと、スクリーン上のウィンドウとの間の対応関係を図示している。スクリーン１１０は、イメージを表示するモニタのスクリーンである。スクリーン上におけるウィンドウ１１１、１１２および１１３は、スクリーン上に表示され、同時にアクティブとなる３つのウィンドウである。パラメータセット１２１、１２２および１２３は、ウィンドウ１１１、１１２および１１３にそれぞれ対応している。ウィンドウ１１１、１１２および１１３の位置は、パラメータセット１２１、１２２および１２３における値によってそれぞれ指定される。これらパラメータセットの位置は、ＲＥＳＩＺＥ｛Ａ〜Ｃ｝＿ｏｐＲＤＲＡＭにより指定される。垂直ライントリガリング用の安全領域は、対応するＳＴＡＲＴ＿ＢＬＴ＿ｉおよびＳＴＯＰ＿ＢＬＴ＿ｉレジスタにおいて指定される。
【００６６】
図４は、ホスト１０とグラフィックスプロセッサ２０との間のインタラクションを説明するフローチャートを図示している。ブロック２００は、ホスト１０により実行される各ステップを含んでいる。ブロック２２０は、グラフィックスプロセッサ２０により実行される各ステップを含んでいる。どちらのブロックにおいても、ホストコンピュータ１０は、各種周辺機器の保守管理や、メインプログラムの実行や、割り込みへの応答といった、実行すべき通常のタスクが他にあるものとする。同様に、グラフィックスプロセッサ２０にも、例えばビデオ制御信号の発生といった専念すべき通常のタスクが他にある。ホストコンピュータ１０が自動グラフィックス動作を開始する準備ができた状態になると、ホスト１０は、まず、１個のヘッダファイルあるいは１シーケンスのヘッダファイルを作成する。この場合、（後述するように）連鎖が用いられることになる。ステップ２１０において、ホスト１０は、ヘッダファイルの５６バイトをバッファメモリ４０に書き込む。ステップ２１１において、ホスト１０は、安全領域を確定するために、垂直走査線のスタート値およびストップ値を書き込む。３つのアクティブウィンドウ、または３セットの自動グラフィックス動作に対応して、３つ以下の安全領域を確定することができる。ステップ２１２において、ホスト１０は、対応するＲＥＳＩＺＥ｛Ａ〜Ｃ｝＿ｏｐＲＤＲＡＭレジスタのＴＲＩＧＧＥＲを０に、ＡＲＭを１にプログラムすることによって、スクリーンリフレッシュトリガリングメカニズムをイネーブルする。グラフィックスプロセッサ２０がこれらの値によってプログラムされるとすぐに、グラフィックスプロセッサ２０は自動動作の準備完了状態になる。すると、ホスト１０は、ステップ２１３でその通常のタスクに戻ることができる。ブロック２２０は、グラフィックスプロセッサによって実行される各ステップを示している。以下の説明では、ただ１つのウィンドウがアクティブであると仮定する。ただし、好ましい実施形態では、３つのウィンドウを同時にイネーブルすることができる。ステップ２２１において、もしホスト１０がスクリーンリフレッシュトリガリングのオプションをイネーブルしていないのなら、ステップ２３０に示されているように、グラフィックスプロセッサ２０は通常の動作を継続する。いったんスクリーンリフレッシュトリガリングのオプションがイネーブルされると、グラフィックスプロセッサ２０は、内部垂直カウンタと、ホスト１０によってプログラムされたスタート値およびストップ値との比較をイネーブルする。この比較は、グラフィックスエンジンから独立したハードウェアによりなされるので、グラフィックスプロセッサ２０は、このタスクのみに縛られるわけではない。各動作の終了時にはいつも、ステップ２２２に示すように、グラフィックスプロセッサ２０はこの比較の結果をチェックする。もし垂直カウンタが安全領域により確定された範囲外にあるのなら、グラフィックスエンジンは、ステップ２３０で通常の動作を継続する。一方、もし垂直カウンタがこの範囲内にあれば、ステップ２２３に示すように、グラフィックスエンジンは通常の動作を中断し、自動ＢＬＴヘッダをフェッチする。次に、これらの値がレジスタに格納された（ステップ２２４）後、ステップ２２５で自動ＢＬＴが実行される。いったん自動ＢＬＴが完了すると、グラフィックスプロセッサ２０はステップ２２１に戻る。
【００６７】
（２）ホスト直接制御
スクリーンリフレッシュトリガリングメカニズムによってＢＬＴ動作とスクリーンリフレッシュとの間の同期をとることが可能になるとはいえ、ホストにより自動ＢＬＴ動作を直接に制御するほうが望ましい状況もある。換言すれば、グラフィックスエンジンは、ホスト１０によってプログラムされた後ただちに、オートＢＬＴ動作を実行することになる。
【００６８】
図５は、ホスト１０とグラフィックスプロセッサ２０との間のインタラクションを説明するフローチャートを図示している。ブロック３００はホストにより実行される各ステップからなり、ブロック３２０はグラフィックスプロセッサにより実行される各ステップからなる。（１）の場合と同様に、ホスト１０は、ステップ３０１でまずヘッダファイルをセットアップする。ホスト１０がオートＢＬＴ動作の準備完了状態になると、ステップ３０２で、ホスト１０はＴＲＩＧＧＥＲビットおよびＡＲＭビットをそれぞれ１および０にプログラムする。すると、ホスト１０は、ステップ３０３で通常のタスクに戻ることができる。グラフィックスプロセッサの側では、もしステップ３２１でホスト１０が自動ＢＬＴをトリガしていないのなら、ステップ３３０で通常の動作が継続される。一方、もしトリガがイネーブルされているのなら、ステップ３２２で自動動作がスタートする。
【００６９】
グラフィックス動作の連係
たしかに各ヘッダファイルはグラフィックス動作を完全におこなうのに十分な情報を含んではいるが、多数のヘッダファイルを連鎖させることによって、ホスト１０を割り込ませずに１シーケンスのグラフィックス動作を実行可能とするのが望ましい。そうすれば、非常に複雑なグラフィックスタスクを遂行することができる。これは、グラフィックスエンジンには連鎖イネーブルビットが存在するのであるから、実現可能である。連鎖をイネーブルするには、ＬＮＣＮＴＬレジスタの連鎖イネーブルビットを用いる。このビットがハイであれば連鎖はイネーブルされ、ローであれば連鎖はディセーブルされる。各ヘッダファイルは、次のヘッダファイルに対するポインタを有している。これらのポインタは、ＮＥＸＴ＿ＨＥＡＤ．ｐｔ．ｘ．およびＮＥＸＴ＿ＨＥＡＤ．ｐｔ．ｙ．である（なお、バッファメモリの目に見えない領域は、目に見える領域を２次元的に拡大したものとみなされること、および、ヘッダファイルは、ライン上のどの位置（Ｘ値）を選択してもよいのと同様に、どの「ライン」（Ｙ値）に書き込んでもよいことには注意が必要である）。連鎖がイネーブルされると、第１のＢＬＴ動作が完了した後、グラフィックスエンジンは、ＮＥＸＴ＿ＨＥＡＤ．ｐｔ．ｘ．およびＮＥＸＴ＿ＨＥＡＤ．ｐｔ．ｙ．により指定された位置から新しいパラメータセットを読み出し、新しいＢＬＴを実行する。ＬＮＣＮＴＬの連鎖イネーブルビットがローとなり、現在のヘッダファイルがシーケンスにおける最後のヘッダファイルであることが示されるまで、連鎖は継続される。
【００７０】
連鎖は、トリガリングメカニズムとは独立している。したがって、上述したように、スクリーンリフレッシュまたはホストのいずれかによって、１シーケンスのオートＢＬＴ動作を連鎖させ、トリガすることができる。
【００７１】
図６は、連鎖と表示との間の対応関係を説明する図である。表示スクリーン４００は、３つのアクティブウィンドウＷＡ４０１、ＷＢＢ’４０２およびＷＣ４０３を示す通常のスクリーンである。レジスタセットＲＡ４１１、ＲＢ４１２およびＲＣ４１３は、それぞれＷＡ、ＷＢＢ’およびＷＣに対応するＸＹ位置および安全領域を指定するためのレジスタを含んでいる。ヘッダメモリ領域ＨＡ４１４およびＨＣ４１７は、０であり連鎖をディセーブルするＬＮＣＮＴＬ連鎖イネーブルビットを含んでいる。したがって、オートＢＬＴ動作は、ヘッダメモリ領域ＨＡ４１４およびＨＣ４１７のみにおいて指定されるとおりに実行される。ヘッダメモリ領域ＨＢは、連鎖を有している。すなわち、その連鎖ビットは１である。ＨＢにおける次のヘッダポインタがＨＢ’４１６を指示しており、ＨＢ’ヘッダは０である連鎖イネーブルビットを含んでいると仮定する。その場合、ヘッダメモリ領域ＢにおけるＢＬＴ動作が完了すると、グラフィックスエンジンは、ＨＢ’ヘッダメモリ領域に含まれているパラメータをフェッチし、そのＢＬＴ動作を実行する。ＨＢ’ＢＬＴ動作が完了した後、グラフィックスエンジンはその通常のモードに戻る。したがって、ウィンドウＷＢＢ’４０２は、ＨＢおよびＨＢ’における２つのＢＬＴ動作の結果を示している。
【００７２】
スクリーンリフレッシュあるいはホスト１０のいずれかによりトリガされる自動グラフィックス動作と、連鎖法とを組み合わせることによって、ホストの大幅なオーバーヘッドをもたらすことなく、非常に複雑で強化されたグラフィックス動作を実行することができる。したがって、ホストのインタラクションを最小限にとどめることができる。本質的には、グラフィックスプログラムは、ホスト１０によってバッファメモリ４０内に作成されうるものであり、また、本発明による連鎖を用いることによって、ホストの介入なしに、そのようなグラフィックスプログラムを実行し、結果を表示することができる。
【００７３】
最後に一言付け加えておくと、以上に本発明による自動グラフィックス動作を好ましい実施形態に即して開示し、説明してきたが、本発明の装置および方法には、本発明の着想および範囲を超えることなくさまざまな改変を加えることが可能であることは理解されたい。
【００７４】
【発明の効果】
本発明によれば、遅延を最小限にとどめ、グラフィックに悪影響が及ぼされる事態を回避するために、ホストとグラフィックスプロセッサとの間のインタラクションスキームを最適化するグラフィックスシステムを提供することができる。
【図面の簡単な説明】
【図１】ホストコンピュータおよびビデオ制御を備えた典型的グラフィックスシステムを示すブロック図である。
【図２】図１のグラフィックスプロセッサ２０を示す詳細ブロック図である。
【図３】１シーケンスのヘッダファイルとグラフィックス表示との間の対応関係を示す図である。
【図４】スクリーンリフレッシュトリガリングメカニズムを用いて自動ＢＬＴ動作を実行するための各ステップを示すフローチャートである。
【図５】ホストトリガリングメカニズムを用いて自動ＢＬＴ動作を実行するための各ステップを示すフローチャートである。
【図６】ヘッダファイルの連鎖を示す図である。
【符号の説明】
２０  グラフィックスプロセッサ
３０  インタフェースバス
４０  フレームバッファメモリ
５４  ＢＬＴエンジン
５６  内部スタティックＲＡＭ
【図１】
0004079208.tif 000002
【図２】
0004079208.tif 000003
【図３】
0004079208.tif 000004
【図４】
0004079208.tif 000005
【図５】
0004079208.tif 000006
【図６】
0004079208.tif 000007