(57)【特許請求の範囲】
【請求項１】
バースト書き込みサイクル動作を実行するようグラフィクスプリミティブ値のレジスタファイル中の複数のレジスタへのプログラミングを行うグラフィクスプロセッサであって、
該グラフィクスプロセッサ内に配設され、描画すべきグラフィクスプリミティブを格納するための前記複数のレジスタのアドレスを生成する、アドレス生成手段と、
該アドレス生成手段に接続されたデコード論理手段であって、ホストプロセッサから、描画すべきグラフィクスプリミティブのタイプを規定するOPCODEと、前記レジスタファイル中のアドレスのロードを開始すべき場所を指定するアドレスフィールド情報とを含む演算コード命令を受信することにより、前記レジスタファイル中のアドレスのうちのグラフィクスプリミティブ値のロードを開始すべきアドレスを確立し、次のグラフィクスプリミティブ値に対応する前記レジスタファイル中の次のアドレスへとアドレスをインクリメントするように前記アドレス生成手段に指示する状態マシンを備え、これによってグラフィクスプリミティブ値を格納するために、前記ホストプロセッサが前記レジスタファイルに対して生成したアドレス値を参照することなく前記複数のレジスタに対して継続的にグラフィクスプリミティブ値のロードを行うことを可能とし、もってグラフィクスプロセッサが前記レジスタファイル中の複数のレジスタのプログラミングを行うためにバースト書き込みサイクルを生成することを可能にする、デコード論理手段と、
前記レジスタファイル中の複数のレジスタのプログラミングを行うプログラミング論理手段と、
前記ホストプロセッサが前記レジスタファイルに対して生成したアドレス値及び前記OPCODEを含む前記演算コード命令を受信・格納するコマンドレジスタとを備え、
前記状態マシンは、前記コマンドレジスタに格納された前記OPCODEがデコードされることによって決定される、前記レジスタファイル中の前記ロードを開始すべきアドレスと、グラフィクスプリミティブのデータ書き込み段階の数であるアドレスカウントとを供給し、
前記状態マシンは、前記レジスタファイルに前記グラフィクスプリミティブ値を１つ書き込む前記データ書き込み段階が終了するたびに、前記レジスタファイル中のロード位置を１つインクリメントするとともに、前記アドレスカウントを１つデクリメントし、
前記状態マシンは、描画すべきグラフィクスプリミティブの全てのグラフィクスプリミティブ値が書き込まれたか否かを判定するために、前記アドレスカウントがゼロであるか否かを検査し、
前記グラフィクスプロセッサは、前記アドレスカウントが０でない場合には、同じグラフィクスプリミティブの書き込みサイクルを継続し、前記アドレスカウントが０である場合には、新たなグラフィクスプリミティブの書き込みサイクルを開始することを特徴とする、グラフィクスプロセッサ。
【請求項２】
バースト書き込みサイクルアドレス要求に応じてグラフィクスプリミティブの描画を行うために該バースト書き込みサイクルアドレス要求を操作するグラフィクスサブシステムであって、
該グラフィクスサブシステム内に配設され、描画すべきグラフィクスプリミティブ値のレジスタファイル中の複数のレジスタへのプログラミングを行う、請求項１に記載の前記グラフィクスプロセッサを有し、
前記レジスタファイルが、該グラフィクスプロセッサに接続されてグラフィクスプリミティブアドレス値の受信及び格納を行う複数の記憶場所からなり、
該レジスタファイルに接続され、グラフィクスプリミティブの描画を行う、テクスチャ及びポリゴンエンジンをさらに備える、グラフィクスサブシステム。
【請求項３】
バースト書き込みサイクル動作中にグラフィクスプリミティブを描画するためのシステムであって、
データ及び命令の通信を行い及びバースト書き込みサイクルを生成するためのシステムバスと、
該システムバスに接続され、該システムバスに対して、描画に必要なグラフィクスプリミティブ値からなる表示リストを生成する、ホストプロセッサと、
前記システムバスに接続され、前記表示リストを格納する、システムメモリと、
前記システムバスに接続され、前記グラフィクスプリミティブ値を処理する、請求項２に記載のグラフィクスサブシステムと、
該グラフィクスサブシステムに接続され、前記グラフィクスサブシステムから提供された映像データを表示する、表示装置とを備えているシステム。
【請求項４】
前記システムバスが、周辺機器相互接続（ＰＣＩ）バスである、請求項３に記載のシステム。
【請求項５】
バースト書き込みサイクル動作中にグラフィクスプリミティブ値を描画するよう、請求項１に記載のグラフィクスプロセッサ中のコマンドレジスタをプログラミングする方法であって、
(a)  描画すべきグラフィクスプリミティブのタイプを規定するOPCODEを含む演算コード命令を前記コマンドレジスタ中のオフセットアドレスに書き込み、
(b)  前記OPCODEをデコードして、ロード開始アドレス及びアドレスカウントを決定し、
(c)  前記ロード開始アドレスのロケーションに前記OPCODEの内容をロードし、
(d)  レジスタアドレスロード位置を１だけインクリメントする、という各ステップを有する、方法。
【請求項６】
前記アドレスカウントに基づきアドレスデコードループを開始するステップを含む、請求項５に記載の方法。
【請求項７】
演算コード命令を前記コマンドレジスタ中のオフセットアドレスに書き込む前記ステップが、全てのアドレスについて書き込みが完了したか否かを判定するために前記アドレスカウントが０であるか否かを判定する検査ステップを含む、請求項５に記載の方法。
【請求項８】
前記レジスタアドレスのロケーションをインクリメントする前記ステップ中に前記レジスタアドレスのロードカウントが１だけデクリメントされるステップを含む、請求項５に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般にパーソナルコンピュータ用のグラフィクスサブシステムに関し、特にグラフィクスプロセッサ中のレジスタセットをプログラミングするための方法及び装置に関する。
【０００２】
【従来の技術】
最新のグラフィクスパッケージは、時折、高価なコンピュータ設計システム及びグラフィクスシステムで使用されてきた。グラフィクスコントローラの能力の向上は、標準化されたグラフィクス言語と相まって、複雑なグラフィスク機能を殆どのルーチンアプリケーションで利用することを可能にした。例えば、ワードプロセッサ、スプレッドシート、及びデスクトップパブリッシングパッケージは、現在では比較的高度なグラフィクス能力を含んでいる。３次元（３Ｄ）表示は、ゲーム、アニメーション、及びマルチメディア通信、及びドローイングパッケージでは、ごく一般的なものとなった。
【０００３】
ＰＣにおける高度なグラフィクスの利用可能性は、より一層高度なグラフィクス能力に関する需要を牽引するものとなった。かかる能力を得るには、グラフィクスシステムは、より高度な機能をより短い時間で実行して、最近のソフトウェアアプリケーションで必要とされるより大量のグラフィクスデータを処理することができなければならない。特に、フルカラー、テクスチャマッピング、及び透過ブレンディングを使用して３次元オブジェクトを描画するために、ソフトウェアアルゴリズム及びハードウェア実施態様の改善が必要とされ続けている。
【０００４】
ハードウェア分野では改善がなされてきた。グラフィクスプロセッサ及びアクセラレータは、該グラフィクスプロセッサに対するホストＣＰＵのインタフェイスを行うソフトウェアドライバと共に入手することができる。一般に、グラフィクスソフトウェアは、コンピュータ画面上にオブジェクトを描画するための情報を受容し、該オブジェクトに関連する特定の基本的なパラメータを計算し、及び該計算結果をパラメータの「表示リスト」という形でグラフィクスプロセッサに提供する。
【０００５】
次いでグラフィクスコントローラは、表示すべきグラフィクスオブジェクトを生成する際に前記表示リストの値を使用する。グラフィクスプロセッサは、補間技術を使用することが可能であり、この場合、描画すべきオブジェクトの基本的な情報は、一連の初期及び増分パラメータ又は値から構成される。グラフィクスプロセッサは、描画すべきピクセルに関する初期パラメータをロードその他の態様で受容し、該パラメータを前記オブジェクトが完全に描画されるまでインクリメントすることにより該オブジェクトの補間を行う。
【０００６】
グラフィクスオブジェクトを描画するために、多くの従来のコンピュータシステムは、ホストＣＰＵのアドレス範囲内でマッピングされたレジスタセット（即ち一組のレジスタ）を使用することにより、グラフィクスサブシステムのプログラミングを行っている。典型的には、グラフィクスサブシステムは、ホストＣＰＵのローカルメモリを越えるアドレスでマッピングされる。次いで、レジスタセットが、ホストＣＰＵによるアドレス指定が可能な最小のビットロケーションに対してマッピングされる。
【０００７】
グラフィクスサブシステムは、メモリからデータストリーム（表示リスト）を読み出し、及び該データと同様に同メモリに格納されているプログラムを実行することが可能である。かかる表示リスト情報のサイズは、ＣＰＵ及びグラフィクスサブシステムの走査(traversal)速度に制限を加える傾向を有するものとなる。
【０００８】
ＣＰＵは、典型的には、コンピュータシステムに接続された特定の外部デバイスに固有の命令及びパラメータを用いて表示リスト情報を構築する。次いで、該外部デバイスは、命令ストリームを読み出して、該命令ストリームからの命令を実行する。表示リストに格納されている一般的な操作の一つとして、デバイスのレジスタファイルの単一及び多重(single and multiple)レジスタに特定の値をロードするコマンドが挙げられる。
【０００９】
表示リストを使用する既存のグラフィクス装置は、典型的には、グラフィクスプロセッサ内のレジスタファイルにデータをシーケンシャルフォーマットでロードする。各プリミティブタイプ毎に、該タイプのプリミティブを描画するための特定のデータ値セットが必要となる。例えば、ピクセルグリッドに描画すべき１つのポイントは、ｘ,ｙロケーション、カラー値、及び奥行(depth)比較用のｚ値を必要とする。表示リストの一例を次の表１に示す。
【００１０】
【表１】
0004846097.tif 000002
【００１１】
該表１の表示リストは、ポイント、ライン、及びポリゴンの描画に必要となるパラメータを提供する。該表示リストより、特定のプリミティブ描画操作が、例えばレジスタ値(X,Y,R,G,B,A)がロードされることのみを必要とする場合には、従来のロード命令は、次の２つの代替的な命令ロード方法のうちの一方を使用することになる。
【００１２】
該２つの命令ロード方法の１つは、全ての９つのレジスタにロードを行うものである（例えば「Load instruction (start at X), X,Y,Z,R,G,B,X1,X2,A」）。したがって、表示リスト中の情報ストリームは、10命令ワード（40バイト）を占有し、不必要なレジスタにロードを行うものとなる。
【００１３】
もう１つの命令ロード方法は、２つの連続したロード操作を使用して２つのレジスタロードギャップ（例えばX1,X2）を１つのロード命令のみに置換するものである（例えば「Load instruction (start at X), X,Y,Z,R,G,B」及び「Load instruction (start at A), A」）。このロードシーケンスの場合の表示リスト中の情報ストリームの長さは、９命令ワード（36バイト）である。
【００１４】
これら２つの従来の命令ロード方法は、描画対象となるプリミティブに関するパラメータ値をレジスタファイルにシーケンシャルにロードするという共通の特徴を有している。また、それらのロード命令は、２つのフィールド、即ち、開始パラメータ値を保持する第１フィールドと、描画対象となるプリミティブに関する後続のパラメータ値の増分カウントを保持する第２フィールドとから構成される。
【００１５】
図１Ａは、典型的な従来のコンピュータシステムを示すブロック図である。同図に示すコンピュータシステムは、ホストＣＰＵ110と、ホストメモリ120と、外部周辺機器とのインタフェイスをとるために前記ホストＣＰＵ110に接続されるシステムバス105とを備えている。該システムバス105は、コネクタを介して周辺機器に接続し又は周辺機器に直接接続することが可能な（ホストＣＰＵ110の論理基板に接続される場合）一連の信号を構成する。
【００１６】
また、グラフィクスサブシステム140も前記システムバス105に接続されるよう図示されている。該グラフィクスサブシステム140は、典型的には、ホストＣＰＵ110のアドレス範囲でマッピングされたレジスタセットを使用することにより、グラフィクスプリミティブの描画を行うようプログラミングされる。典型的には、グラフィクスサブシステム140は、図１Ｂに示すように、ホストＣＰＵ110のローカルメモリを越えるアドレスでマッピングされる。
【００１７】
１つのレジスタセット（即ち一組のレジスタ）は、ホストＣＰＵ110によりアドレス指定することが可能な最小のビットロケーションへとマッピングされる。グラフィクスサブシステムの各レジスタには、ホストＣＰＵ110による選択時にホストデータバスから１つの値が与えられ、該レジスタは、ホストＣＰＵ110が個々のレジスタについてのビットパターンと一致するアドレスで書き込みサイクルを開始した際に選択される。各レジスタは、グラフィクスサブシステム140の動作に影響を与え又は与えない特定の機能を有している。
【００１８】
ここで図１Ａを参照する。バスインタフェイスチップ130は、ホストＣＰＵ110のアドレス空間にアクセスするためのホストＣＰＵ110のプロトコルを、バスアーキテクチャにより画定されるプロトコルへと変換することが可能である。これにより、外部周辺機器を図１Ｂのホストアドレス空間内へとマッピングすることが可能となる。典型的には、ホストＣＰＵ110との間での一連のシーケンシャルの読み出し又は書き込みに関し、バスプロトコルは、バーストバス動作（burst bus operation）として知られる動作をサポートする。
【００１９】
該バーストバス動作により、単一のアドレスを一連のデータフェーズでバス上に提示することが可能となる。バーストサイクル動作を実行するための要件は、第１のアドレスフェーズに続くデータフェーズが、バス105によりサポートされる最小のビットアドレス増分でなければならない、ということである。
【００２０】
工業規格による周辺機器相互接続用のインタフェイスバス（ＰＣＩバス）を使用する典型的なコンピュータでは、バーストサイクルに関する最小ビットアドレス増分は、32ビットである。
【００２１】
特定のアドレス範囲へとマッピングされたレジスタが、バーストサイクルに関してバスによりサポートされる最小ビットアドレスに対して途絶えることがない場合には、各伝送毎にアドレス及びデータフェーズを提供しなければならないことになる。バーストサイクルは、１つのアドレスを伝送するために１つのアドレスフェーズしか必要としないため、同一信号ライン上にアドレス及びデータを多重化するバスにバーストバスサイクルを使用するのが有利である。
【００２２】
図２Ａは、従来技術において２次元空間内に描画される１本のラインの一例を示す説明図である。同図に示すように、ライン200は、初期開始ポイント（xy座標）、カラー、傾斜(x_main)、及びy空間における長さ(count_1)から構成される。同図に示すラインにおいて、「x」及び「y」は、初期開始ポイントを規定する。「R,G,B」の値は、ラインのカラーを規定し、カウント値（例えばcount_1,count_2）は、ライン上の連続する各ポイント毎の増分変化を規定する。
【００２３】
図２Ｂに示すレジスタ空間では、名前が付された一連のレジスタx,y,z,r,g,b,x_main,count_1:count_2が示されている。ホストＣＰＵ110が、グラフィクスサブシステム140に対して、図２Ａのライン200を描画するよう命令する場合には、該ホストＣＰＵ110は、レジスタ「x」〜「count_1」及びOPCODEレジスタをプログラミングする必要がある。OPCODEレジスタがプログラミングされると、グラフィクスサブシステム140は、ラスタデバイスに対するラインの描画を開始する。
【００２４】
同じカラーの別のライン（例えばライン210）をプログラミングするためには、ホストＣＰＵ110は、新たなx,y値、x_main値、及びOPCODEレジスタをプログラミングしなければならない。レジスタリストに対する書き込み（アクセス）は、図２Ｂに示すようなシーケンシャルでない（即ち、レジスタ0x0からレジスタ0x18へと増分的に書き込む）ため、図１Ａに示すシステムバスコントローラ130は、ＣＰＵの書き込みを、送信のために複数のアドレス及びデータフェーズへと分割しなければならなくなる。
【００２５】
【発明が解決しようとする課題】
従来の方法による命令ロード操作及び複数のレジスタに対して連続的にロードを行って表示パラメータの効率的な処理を可能にする能力にもかかわらず、グラフィクスサブシステムにおけるレジスタのプログラミング方法に幾つかの問題が浮上した。
【００２６】
かかる問題の１つとして、ＣＰＵ110及びグラフィクスサブシステム140が、システムバス105のバーストサイクルプロトコルを利用できないことが挙げられる。複数のデータ及びアドレスフェーズの伝送は、システムバス105を詰まらせ、ＣＰＵ110の全体的な性能を低下させるものとなる。
【００２７】
別の問題として、グラフィクスサブシステムが大きな表示リストを格納しなければならない場合に、レジスタをプログラミングするために過度のシステムメモリが必要となることが挙げられる。これは、コンピュータシステムの全体的な価格に過度のコストを課すものとなる。メモリ価格は多少は安くなってきているが、今日のマルチメディアコンピュータシステムの多くにインストールされるメモリの平均的な量は、ほぼ増大し続けている。例えば、MS Windows（商標）NT を実行するPentium（商標）ベースのマルチメディアコンピュータシステムは、その効率的な実行のために少なくとも32MByteのメモリを必要とする。
【００２８】
かかるマルチメディアコンピュータシステムのメモリ要件が大きくなり続けるため、かかるコンピュータシステムにおいてマルチプログラミングオペレーティングシステムにより必要とされる極めて長い表示リストを維持し実行するために必要なメモリは、極めて大きなものとなる。メモリが大きくなる更なる理由として、かかるシステムのメモリがロックされ、即ち、オペレーティングシステムがコンピュータシステムの外部記憶装置へ処理をスワップすることができないことが挙げられる。かかるロックは、他のシステム動作を処理するためにコンピュータシステムに残されるメモリの量を更に低減させるものとなる。
【００２９】
従来のグラフィクスプロセッサに関する更に別の問題として、各レジスタが、互いのレジスタに対する絶対アドレス参照によりシーケンシャルにプログラミングされることが挙げられる。これは、１つのレジスタが、１つのレジスタセット中の後続のレジスタの前にプログラミングされなければならないことを意味する。これは、時間の浪費につながるものであり、またバーストモード伝送を用いるバスアーキテクチャ（ＰＣＩバス等）では、かかる絶対アドレス参照は、コンピュータシステムの全体的な性能に影響を与えるボトルネックとなる。
【００３０】
コンピュータの処理能力がＣＰＵへと移行すればするほど、グラフィクス表示を生成するためのグラフィクスパラメータの処理は、ＣＰＵにより命令を処理する際のボトルネックとなっていく。この問題は、グラフィクスデータの処理が、別個のデバイスのグラフィクス処理チップからＣＰＵへと移行する場合には、より一層顕著なものとなる。
【００３１】
このため、ＣＰＵの処理速度を維持したままグラフィクスサブシステム内のレジスタをプログラミングする方法が必要とされている。本発明は、各レジスタへの絶対的な参照を伴うことなくグラフィクスサブシステムのレジスタをプログラミングして、システムバスが生成するバースト書き込みサイクルでレジスタをプログラミングすることを可能にする、有利な機能を提供する。
【００３２】
【課題を解決するための手段】
本発明によれば、各レジスタに対する絶対アドレス参照を伴うことなくシーケンシャルアドレス範囲を介したシーケンシャルアドレスプログラミングを生成するグラフィクスプロセッサが提供される。本発明は、過度の量のメモリリソースを必要とすることなく多くの今日のマルチメディアコンピュータシステムで処理される次第に量の増大するグラフィクスデータを取り扱うことが可能なシステムを提供する。
【００３３】
本発明の実施形態は、システムバスに接続されたプロセッサと、該システムバスに接続されて表示リストを格納するメモリユニットと、該メモリユニットに格納されている表示リストからマイクロ命令を受容するグラフィクスプロセッサと、該グラフィクスプロセッサ中に表示リストを格納するために該グラフィクスプロセッサに接続された一組のレジスタファイルと、前記メモリユニット内に配置されて表示リストのアドレスオフセットを格納するプライベートメモリ領域とを有するコンピュータ制御式のグラフィクス表示システムであって、中央プロセッサにより生成された前記命令が、前記グラフィクスプロセッサ中の前記レジスタファイルに対するランダムなロードを行う他の手段に取って代わる、コンピュータ制御式のグラフィクス表示システムを含むものとなる。
【００３４】
本発明の実施形態は更に、上記構成を含むものであって、前記表示リストが、ポリゴンプリミティブを処理するパラメータ化手順と、複数組のグラフィクスラインと、複数組のグラフィクスポイントとを含み、更に前記パラメータ化手順が異なるグラフィクスフォーマット間の変換を処理するものとなる、
更に、本発明の実施例は、上記構成を含むものであって、コマンドフォーマットを使用して、プログラミングすべき特定のレジスタについてアドレス及びデータ情報をエンコードするものとなる。
【００３５】
本発明の更なる実施例は、上記構成を含むものであって、各コマンドが、バースト書き込みサイクルを実行するための機構をバスコントローラに提供するシーケンシャルアドレス範囲へとシーケンシャルに書き込まれるものとなる。バースト書き込みサイクルを使用してグラフィクスサブシステムがプログラミングされるため、該グラフィクスサブシステムの一回の描画操作をプログラミングするために必要となる時間が大幅に短縮される。
【００３６】
また、本グラフィクスプロセッサは好適には、事前フェッチ(prefetch)ユニットからOPCODEを受信して該OPCODEをデコードする内部命令実行ユニットを含むものとなる。該内部命令実行ユニットはまた、表示リストを受信して該表示リストをレジスタファイル中に格納する。
【００３７】
以下に示す本発明の詳細な説明を図面と関連して考察することにより、本発明の一層良好な理解が得られるであろう。
【００３８】
【発明の実施の形態】
グラフィクスデバイスに供給される表示情報の品質を損失することなく、より短い表示リストを提供するための方法及び装置を開示する。
【００３９】
以下に示す本発明の詳細な説明では、本発明の完璧なる理解を提供するために、多数の特定の細部を以下で説明する。しかし、本発明は、かかる特定の細部を伴わずに代替的な構成要素又は方法を用いて実施することが可能である、ということが当業者には明かであろう。他の実施形態では、周知の方法、手順、部品、及び回路が、本発明の特徴を無用に不明瞭にしないよう詳細に説明されている。
【００４０】
以下に示す本発明の詳細な説明中の幾つかの部分は、コンピュータシステム内のデータビットの操作に関する手順、論理ブロック、処理、及びその他の象徴的な表現に関して説明されている。かかる説明及び表現は、当業者が、他の当業者に対して自分の研究内容を最も効率的に伝えるために使用される手段である。手順、論理ブロック、プロセスその他は、本書において、また一般的にも、所望の結果へと導くつじつまの合う一連のステップまたは命令であると考える。該ステップは、物理的な量の物理的な操作を必要とするものである。通常は、格納、伝送、組み合わせ、比較、及びその他の操作をコンピュータシステム内で行うことが可能な磁気信号である。便宜上、及び一般的な用途に関して、かかる信号を、本発明の場合にはビット又は値等と称することにする。
【００４１】
しかし、かかる用語の全ては、物理的な操作及び量を意味するもの及び単なる便宜上の文言として解釈されるべきであり、また当業界で一般に用いられている用語に鑑みて解釈されるべきである、ということに留意されたい。以下の説明から自明であるとして特に述べない限り、本発明の解説全体、即ち、「処理」、「計算」、「算出」、「判定」、又は「表示」といった用語を用いた解説は、データの操作及び変更を行うコンピュータシステム又はそれと同様の電子的な計算装置の動作及び処理について言及したものであることを理解されたい。該データは、コンピュータシステムのレジスタ及びメモリ内の物理的（電子的）な量として表されるものであり、他のデータ（これもまた同様にコンピュータシステムのメモリ又はレジスタその他の情報記憶装置、送信装置、又は表示装置内の物理的（電子的）な量として表されるもの）へと変換される。
【００４２】
ここで図３を参照する。同図は、本発明の好適な実施形態により使用されるホストコンピュータシステム300を示すブロック図である。一般に、ホストコンピュータシステム300は、データ及び命令の通信を行うためのバス301、該バス301に接続されてデータ及び命令の処理を行うホストプロセッサ（ＣＰＵ）302、前記バス301に接続されて前記ホストプロセッサ302からのデータ及び命令を格納するコンピュータにより読み出しを行うことが可能な不揮発性メモリユニット303、前記バス301に接続されてデータを格納するコンピュータにより読み出しを行うことが可能なデータ記憶装置304、及び前記バス301に接続されてコンピュータのユーザに対して情報を表示する表示装置306を備えている。本発明のホストコンピュータシステム300内で使用される表示装置306は、液晶装置又はＣＲＴその他の、コンピュータのユーザが認識することが可能なグラフィクスイメージ及び英数字キャラクタを生成するのに適した表示装置とすることが可能である。
【００４３】
ホストコンピュータシステム300は、データ及び制御信号をバス301を介してグラフィクスハードウェアサブシステム309へ供給する。該グラフィクスハードウェアサブシステム309は、表示リスト中で見つかった一連の表示命令を実行するグラフィクスプロセッサ310を備えている。該グラフィクスプロセッサ310は、表示装置上にイメージを描画するために該表示装置のリフレッシュを行うデータ及び制御信号をフレームバッファへ供給する。代替的に、ホストプロセッサ302が、既知の技術に従ってグラフィクスプロセッサ310に表示リストを書き込むことが可能である。
【００４４】
図３に示す特定の実施形態は、コンピュータシステムで使用するためのグラフィクスシステムの多くの考え得る実施形態のうちの１つに過ぎないものである、ということを理解されたい。図３は、明瞭化のために簡素化されたものであり、本発明の理解に必要でない構成要素及び制御信号は省略してある。
【００４５】
該好適実施形態では、グラフィクスプロセッサ310は、２Ｄ及び３Ｄグラフィクスのハードウェアサポート、及び、コンピュータシステムのテキスト及びウィンドウによる操作のハードウェアサポートを提供する。グラフィクスプロセッサ310は、システムメモリ304又はホストプロセッサ302からディジタルデータを伝送し、及び最終的に表示装置306上に表示するためにRDRAM315に格納するためのデータを処理する。
【００４６】
本発明によれば、ホストプロセッサ302は、必要とされるパラメータ値を表示リストという形で提供し、該表示リストは典型的には、グラフィクスプロセッサ310により必要とされるまでシステムメモリ304内に格納される。
【００４７】
ホストプロセッサ302及びシステムメモリ304は双方とも、システムバス301を介して通信を行うことが好ましい。システムバス301は、周辺機器相互接続（ＰＣＩ）バスであることが好ましい。
【００４８】
更に図３を参照する。グラフィクスプロセッサ310は、システムバス301に接続される。本発明によれば、グラフィクスプロセッサ310は、バスマスタリング能力を備えていることが好ましく、これによりグラフィクスプロセッサ310がシステムバス310との間でバスマスタリングを行うことが可能となる。グラフィクスプロセッサ310はまた、表示装置及びRDRAM315に接続される。
【００４９】
好適な実施形態では、該RDRAMは、複数のRDRAMバッファのバンクから構成され、この場合、該RDRAM内に格納されるディジタルデータは、ピクセル又はピクセル値と呼ばれるピクチャ要素の矩形アレイから構成される。各ピクセルは、８ビット値により規定することが可能であり、該８ビット値は、例えば、表示装置306の画面上の対応するピクセルの単一カラーの強度を規定するものとなる。
【００５０】
グラフィクスハードウェアサブシステム309は、レジスタファイル312と呼ばれる揮発性メモリユニットのアレイを取り扱う。該レジスタファイル312は、グラフィクスハードウェアサブシステム309の処理中の情報を保持する。該レジスタファイル312はまた、グラフィクスハードウェアサブシステム309の動作に必要な情報及びコマンドを格納する。
【００５１】
表示装置306は、任意の適当なタイプの表示装置とすることが可能であり、例えば、デスクトップ、ワークステーション、若しくはサーバ用途用のＣＲＴ、液晶表示装置（ＬＣＤ）、又は他の任意の適当なパーソナルコンピュータ用の表示装置とすることが可能である。
【００５２】
RDRAMフレームバッファ315は、表示リストの命令及びピクセルデータに対するより高速なアクセスを可能とすることにより、ホストコンピュータシステム300のメインメモリ304に格納されているデータにアクセスする場合と比較して、性能の改善を提供するものとなる。グラフィクスプロセッサ310は、アドレスデータライン及び制御ライン（包括的にRBUS318と称す）を介してRDRAMフレームバッファ315と通信を行う。
【００５３】
ここで図４を参照する。グラフィクスハードウェアサブシステム309は、レジスタファイル312、グラフィクスプロセッサ310、及びフレームバッファ315を備えていることが好ましい。一般に、レジスタファイル312は、表示リスト情報を格納するための複数のレジスタから構成される。
【００５４】
レジスタアドレス生成器400は、レジスタファイル312中の１つのレジスタに関するアドレスを生成し、該アドレスを信号ラインを介してレジスタファイル312へと送信する。次いで、アドレスＮにおけるレジスタに入るべきデータが、システムバス301を介してレジスタファイルへと送信される。本発明では、グラフィクスプロセッサ310は、システムバス301のバーストサイクルプロトコルを使用して複数のアドレスをホストＣＰＵ302へ送信する。
【００５５】
デコード論理回路410は、OPCODE自体と、レジスタファイル312中のアドレスのロードを開始すべき場所をグラフィクスプロセッサ310に伝えるアドレスフィールド情報とを含む演算コード命令を受信する。該演算コード命令により、デコード論理回路410が、レジスタファイル312中のデータロードを開始すべき場所を確立し、ＣＰＵがグラフィクスプロセッサ310に対して生成するものとは無関係に複数のレジスタに対して継続的にロードを行うことが可能となる。
【００５６】
デコード論理回路410は、レジスタファイル中のデータロードされるアドレスの数をカウントするアドレスロードカウンタを備えていることが好ましい。デコード論理回路410はまた状態マシンを備えており、該状態マシンは、レジスタファイル中の次の値に対応する次のアドレスへとアドレスをインクリメントするようアドレス生成器に指示するものであることが好ましい。
【００５７】
レジスタファイル312は、デコード論理回路410によりデコードされたアドレス値から表示パラメータ値を格納する。本発明の一好適実施例では、レジスタファイル312には、物理アドレスロケーションの参照を伴うことなく表示パラメータ値がシーケンシャルにロードされる。このため、ホストＣＰＵ302により操作されるバーストサイクル書き込みの間にレジスタファイル312中の複数のアドレスロケーションに対するロードを同時に行い、該レジスタファイル312からポリゴン及びテクスチャエンジンへと表示パラメータ値を書き込んで、所望のグラフィクスプリミティブを描画することが可能となる。
【００５８】
図５は、本発明の一好適実施形態によるコマンドレジスタ500を示すブロック図である。同図に示すように、コマンドレジスタ500は、１つのコマンドレジスタ領域及び一連の格納ロケーションを備えていることが好ましい。
【００５９】
本発明でグラフィクスプリミティブ（例えば１ライン）を描画するために、ホストＣＰＵ302は、コマンドレジスタ領域500を使用して、レジスタファイル中のレジスタロケーションに対するロードを行って、x,y,z,R,G,B,x_main,count_1:count_2,及びOPCODEレジスタロケーションの格納を行う（図２Ｂ参照）。図５のコマンドレジスタ領域を使用することにより、ホストＣＰＵ302がアドレスに固有のレジスタのロードを行う必要が無くなる。最初にOPCODEがコマンドレジスタのアドレスオフセットロケーション0x0に書き込まれる。該アドレスオフセットの書き込みは、グラフィクスプロセッサに対し、（例えば）１ラインが描画されるべきこと、及びそれ以降の書き込みの回数を開始レジスタ中にロードすべきことを命令する。
【００６０】
ここで図６を参照する。同図は、図４のデコード論理回路410の状態マシンを簡素化して示すフローチャートである。同図に示すように、状態１で、ＣＰＵがコマンドレジスタへ演算コード命令を書き込む。これにより、グラフィクスプロセッサは、グラフィクスプリミティブを描画すべきことが命令される。
【００６１】
状態２で、OPCODEがデコードされて、デコード論理回路410中の開始レジスタアドレス及びカウントがロードされる。この状態から、該命令プロセスフローが、アドレスカウントに基づいてループを開始する。
【００６２】
ＣＰＵが状態２でコマンドレジスタ領域に対して書き込みを行う際に、状態マシンは、システムバスからのデータのレジスタアドレスへの書き込みを介して逐次に処理を行い、次いでレジスタアドレスをインクリメントし、カウントをデクリメントする。
【００６３】
状態３で、全ての書き込みが実行されたか否かを判定するために、カウントが０であるか否かが検査される。カウントが０でない場合には、ループが状態１へと続行される。またカウントが０である場合には、グラフィクスプロセッサが、ＣＰＵの書き込みサイクルを開始する。
【００６４】
このため、レジスタファイル中のレジスタには、実際には、グラフィクスプリミティブの描画に必要となる各レジスタロケーションの物理的な参照を伴うことなく、グラフィクスプリミティブ値がロードされる。上記の本発明の好適実施例の多数の変形例については、当業者であれば、上記開示を十分に理解することにより自明となろう。特許請求の範囲は、その各請求項がかかる変形例及び修正例の全てを含むものと解釈されるべきことを意図したものである。
【図面の簡単な説明】
【図１Ａ】  ホストＣＰＵ、システムバスに接続されたグラフィクスサブシステム、及び表示パラメータを格納するためのシステムメモリを備えた従来のコンピュータシステムを簡素化して示すブロック図である。
【図１Ｂ】  図１ＡのホストＣＰＵのアドレス空間を例示する説明図である。
【図２Ａ】  図１Ａのグラフィクスサブシステムにより２次元空間内に描画される例示的なラインを簡素化して示す説明図である。
【図２Ｂ】  図２Ａのラインの描画用のパラメータを格納するためのレジスタ空間を示す説明図である。
【図３】  本発明の教示によるグラフィクスサブシステムを有するコンピュータシステムを簡素化して示すブロック図である。
【図４】  図３のグラフィクスサブシステムを一層詳細に示すブロック図である。
【図５】  本発明の原理による、図４のグラフィクスプロセッサのコマンドレジスタを一層詳細に示す説明図である。
【図６】  図４のグラフィクスプロセッサの状態マシンを簡素化して示す説明図である。
【符号の説明】
309    グラフィクスハードウェアサブシステム
310    グラフィクスプロセッサ
312    レジスタファイル
400    レジスタアドレス生成器
410    デコード論理回路
【図１Ａ】
0004846097.tif 000003
【図１Ｂ】
0004846097.tif 000004
【図２Ａ】
0004846097.tif 000005
【図２Ｂ】
0004846097.tif 000006
【図３】
0004846097.tif 000007
【図４】
0004846097.tif 000008
【図５】
0004846097.tif 000009
【図６】
0004846097.tif 000010