JP4846097B2 - Method and apparatus for register set of graphics subsystem - Google Patents

Method and apparatus for register set of graphics subsystem Download PDF

Info

Publication number
JP4846097B2
JP4846097B2 JP2000548810A JP2000548810A JP4846097B2 JP 4846097 B2 JP4846097 B2 JP 4846097B2 JP 2000548810 A JP2000548810 A JP 2000548810A JP 2000548810 A JP2000548810 A JP 2000548810A JP 4846097 B2 JP4846097 B2 JP 4846097B2
Authority
JP
Japan
Prior art keywords
address
graphics
register
register file
processor
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.)
Expired - Lifetime
Application number
JP2000548810A
Other languages
Japanese (ja)
Other versions
JP2002514817A (en
Inventor
ラーソン,マイケル,ケイ
Original Assignee
エススリー グラフィックス カンパニー リミテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by エススリー グラフィックス カンパニー リミテッド filed Critical エススリー グラフィックス カンパニー リミテッド
Publication of JP2002514817A publication Critical patent/JP2002514817A/en
Application granted granted Critical
Publication of JP4846097B2 publication Critical patent/JP4846097B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Bus Control (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、一般にパーソナルコンピュータ用のグラフィクスサブシステムに関し、特にグラフィクスプロセッサ中のレジスタセットをプログラミングするための方法及び装置に関する。
【0002】
【従来の技術】
最新のグラフィクスパッケージは、時折、高価なコンピュータ設計システム及びグラフィクスシステムで使用されてきた。グラフィクスコントローラの能力の向上は、標準化されたグラフィクス言語と相まって、複雑なグラフィスク機能を殆どのルーチンアプリケーションで利用することを可能にした。例えば、ワードプロセッサ、スプレッドシート、及びデスクトップパブリッシングパッケージは、現在では比較的高度なグラフィクス能力を含んでいる。3次元(3D)表示は、ゲーム、アニメーション、及びマルチメディア通信、及びドローイングパッケージでは、ごく一般的なものとなった。
【0003】
PCにおける高度なグラフィクスの利用可能性は、より一層高度なグラフィクス能力に関する需要を牽引するものとなった。かかる能力を得るには、グラフィクスシステムは、より高度な機能をより短い時間で実行して、最近のソフトウェアアプリケーションで必要とされるより大量のグラフィクスデータを処理することができなければならない。特に、フルカラー、テクスチャマッピング、及び透過ブレンディングを使用して3次元オブジェクトを描画するために、ソフトウェアアルゴリズム及びハードウェア実施態様の改善が必要とされ続けている。
【0004】
ハードウェア分野では改善がなされてきた。グラフィクスプロセッサ及びアクセラレータは、該グラフィクスプロセッサに対するホストCPUのインタフェイスを行うソフトウェアドライバと共に入手することができる。一般に、グラフィクスソフトウェアは、コンピュータ画面上にオブジェクトを描画するための情報を受容し、該オブジェクトに関連する特定の基本的なパラメータを計算し、及び該計算結果をパラメータの「表示リスト」という形でグラフィクスプロセッサに提供する。
【0005】
次いでグラフィクスコントローラは、表示すべきグラフィクスオブジェクトを生成する際に前記表示リストの値を使用する。グラフィクスプロセッサは、補間技術を使用することが可能であり、この場合、描画すべきオブジェクトの基本的な情報は、一連の初期及び増分パラメータ又は値から構成される。グラフィクスプロセッサは、描画すべきピクセルに関する初期パラメータをロードその他の態様で受容し、該パラメータを前記オブジェクトが完全に描画されるまでインクリメントすることにより該オブジェクトの補間を行う。
【0006】
グラフィクスオブジェクトを描画するために、多くの従来のコンピュータシステムは、ホストCPUのアドレス範囲内でマッピングされたレジスタセット(即ち一組のレジスタ)を使用することにより、グラフィクスサブシステムのプログラミングを行っている。典型的には、グラフィクスサブシステムは、ホストCPUのローカルメモリを越えるアドレスでマッピングされる。次いで、レジスタセットが、ホストCPUによるアドレス指定が可能な最小のビットロケーションに対してマッピングされる。
【0007】
グラフィクスサブシステムは、メモリからデータストリーム(表示リスト)を読み出し、及び該データと同様に同メモリに格納されているプログラムを実行することが可能である。かかる表示リスト情報のサイズは、CPU及びグラフィクスサブシステムの走査(traversal)速度に制限を加える傾向を有するものとなる。
【0008】
CPUは、典型的には、コンピュータシステムに接続された特定の外部デバイスに固有の命令及びパラメータを用いて表示リスト情報を構築する。次いで、該外部デバイスは、命令ストリームを読み出して、該命令ストリームからの命令を実行する。表示リストに格納されている一般的な操作の一つとして、デバイスのレジスタファイルの単一及び多重(single and multiple)レジスタに特定の値をロードするコマンドが挙げられる。
【0009】
表示リストを使用する既存のグラフィクス装置は、典型的には、グラフィクスプロセッサ内のレジスタファイルにデータをシーケンシャルフォーマットでロードする。各プリミティブタイプ毎に、該タイプのプリミティブを描画するための特定のデータ値セットが必要となる。例えば、ピクセルグリッドに描画すべき1つのポイントは、x,yロケーション、カラー値、及び奥行(depth)比較用のz値を必要とする。表示リストの一例を次の表1に示す。
【0010】
【表1】

Figure 0004846097
【0011】
該表1の表示リストは、ポイント、ライン、及びポリゴンの描画に必要となるパラメータを提供する。該表示リストより、特定のプリミティブ描画操作が、例えばレジスタ値(X,Y,R,G,B,A)がロードされることのみを必要とする場合には、従来のロード命令は、次の2つの代替的な命令ロード方法のうちの一方を使用することになる。
【0012】
該2つの命令ロード方法の1つは、全ての9つのレジスタにロードを行うものである(例えば「Load instruction (start at X), X,Y,Z,R,G,B,X1,X2,A」)。したがって、表示リスト中の情報ストリームは、10命令ワード(40バイト)を占有し、不必要なレジスタにロードを行うものとなる。
【0013】
もう1つの命令ロード方法は、2つの連続したロード操作を使用して2つのレジスタロードギャップ(例えばX1,X2)を1つのロード命令のみに置換するものである(例えば「Load instruction (start at X), X,Y,Z,R,G,B」及び「Load instruction (start at A), A」)。このロードシーケンスの場合の表示リスト中の情報ストリームの長さは、9命令ワード(36バイト)である。
【0014】
これら2つの従来の命令ロード方法は、描画対象となるプリミティブに関するパラメータ値をレジスタファイルにシーケンシャルにロードするという共通の特徴を有している。また、それらのロード命令は、2つのフィールド、即ち、開始パラメータ値を保持する第1フィールドと、描画対象となるプリミティブに関する後続のパラメータ値の増分カウントを保持する第2フィールドとから構成される。
【0015】
図1Aは、典型的な従来のコンピュータシステムを示すブロック図である。同図に示すコンピュータシステムは、ホストCPU110と、ホストメモリ120と、外部周辺機器とのインタフェイスをとるために前記ホストCPU110に接続されるシステムバス105とを備えている。該システムバス105は、コネクタを介して周辺機器に接続し又は周辺機器に直接接続することが可能な(ホストCPU110の論理基板に接続される場合)一連の信号を構成する。
【0016】
また、グラフィクスサブシステム140も前記システムバス105に接続されるよう図示されている。該グラフィクスサブシステム140は、典型的には、ホストCPU110のアドレス範囲でマッピングされたレジスタセットを使用することにより、グラフィクスプリミティブの描画を行うようプログラミングされる。典型的には、グラフィクスサブシステム140は、図1Bに示すように、ホストCPU110のローカルメモリを越えるアドレスでマッピングされる。
【0017】
1つのレジスタセット(即ち一組のレジスタ)は、ホストCPU110によりアドレス指定することが可能な最小のビットロケーションへとマッピングされる。グラフィクスサブシステムの各レジスタには、ホストCPU110による選択時にホストデータバスから1つの値が与えられ、該レジスタは、ホストCPU110が個々のレジスタについてのビットパターンと一致するアドレスで書き込みサイクルを開始した際に選択される。各レジスタは、グラフィクスサブシステム140の動作に影響を与え又は与えない特定の機能を有している。
【0018】
ここで図1Aを参照する。バスインタフェイスチップ130は、ホストCPU110のアドレス空間にアクセスするためのホストCPU110のプロトコルを、バスアーキテクチャにより画定されるプロトコルへと変換することが可能である。これにより、外部周辺機器を図1Bのホストアドレス空間内へとマッピングすることが可能となる。典型的には、ホストCPU110との間での一連のシーケンシャルの読み出し又は書き込みに関し、バスプロトコルは、バーストバス動作(burst bus operation)として知られる動作をサポートする。
【0019】
該バーストバス動作により、単一のアドレスを一連のデータフェーズでバス上に提示することが可能となる。バーストサイクル動作を実行するための要件は、第1のアドレスフェーズに続くデータフェーズが、バス105によりサポートされる最小のビットアドレス増分でなければならない、ということである。
【0020】
工業規格による周辺機器相互接続用のインタフェイスバス(PCIバス)を使用する典型的なコンピュータでは、バーストサイクルに関する最小ビットアドレス増分は、32ビットである。
【0021】
特定のアドレス範囲へとマッピングされたレジスタが、バーストサイクルに関してバスによりサポートされる最小ビットアドレスに対して途絶えることがない場合には、各伝送毎にアドレス及びデータフェーズを提供しなければならないことになる。バーストサイクルは、1つのアドレスを伝送するために1つのアドレスフェーズしか必要としないため、同一信号ライン上にアドレス及びデータを多重化するバスにバーストバスサイクルを使用するのが有利である。
【0022】
図2Aは、従来技術において2次元空間内に描画される1本のラインの一例を示す説明図である。同図に示すように、ライン200は、初期開始ポイント(xy座標)、カラー、傾斜(x_main)、及びy空間における長さ(count_1)から構成される。同図に示すラインにおいて、「x」及び「y」は、初期開始ポイントを規定する。「R,G,B」の値は、ラインのカラーを規定し、カウント値(例えばcount_1,count_2)は、ライン上の連続する各ポイント毎の増分変化を規定する。
【0023】
図2Bに示すレジスタ空間では、名前が付された一連のレジスタx,y,z,r,g,b,x_main,count_1:count_2が示されている。ホストCPU110が、グラフィクスサブシステム140に対して、図2Aのライン200を描画するよう命令する場合には、該ホストCPU110は、レジスタ「x」〜「count_1」及びOPCODEレジスタをプログラミングする必要がある。OPCODEレジスタがプログラミングされると、グラフィクスサブシステム140は、ラスタデバイスに対するラインの描画を開始する。
【0024】
同じカラーの別のライン(例えばライン210)をプログラミングするためには、ホストCPU110は、新たなx,y値、x_main値、及びOPCODEレジスタをプログラミングしなければならない。レジスタリストに対する書き込み(アクセス)は、図2Bに示すようなシーケンシャルでない(即ち、レジスタ0x0からレジスタ0x18へと増分的に書き込む)ため、図1Aに示すシステムバスコントローラ130は、CPUの書き込みを、送信のために複数のアドレス及びデータフェーズへと分割しなければならなくなる。
【0025】
【発明が解決しようとする課題】
従来の方法による命令ロード操作及び複数のレジスタに対して連続的にロードを行って表示パラメータの効率的な処理を可能にする能力にもかかわらず、グラフィクスサブシステムにおけるレジスタのプログラミング方法に幾つかの問題が浮上した。
【0026】
かかる問題の1つとして、CPU110及びグラフィクスサブシステム140が、システムバス105のバーストサイクルプロトコルを利用できないことが挙げられる。複数のデータ及びアドレスフェーズの伝送は、システムバス105を詰まらせ、CPU110の全体的な性能を低下させるものとなる。
【0027】
別の問題として、グラフィクスサブシステムが大きな表示リストを格納しなければならない場合に、レジスタをプログラミングするために過度のシステムメモリが必要となることが挙げられる。これは、コンピュータシステムの全体的な価格に過度のコストを課すものとなる。メモリ価格は多少は安くなってきているが、今日のマルチメディアコンピュータシステムの多くにインストールされるメモリの平均的な量は、ほぼ増大し続けている。例えば、MS Windows(商標)NT を実行するPentium(商標)ベースのマルチメディアコンピュータシステムは、その効率的な実行のために少なくとも32MByteのメモリを必要とする。
【0028】
かかるマルチメディアコンピュータシステムのメモリ要件が大きくなり続けるため、かかるコンピュータシステムにおいてマルチプログラミングオペレーティングシステムにより必要とされる極めて長い表示リストを維持し実行するために必要なメモリは、極めて大きなものとなる。メモリが大きくなる更なる理由として、かかるシステムのメモリがロックされ、即ち、オペレーティングシステムがコンピュータシステムの外部記憶装置へ処理をスワップすることができないことが挙げられる。かかるロックは、他のシステム動作を処理するためにコンピュータシステムに残されるメモリの量を更に低減させるものとなる。
【0029】
従来のグラフィクスプロセッサに関する更に別の問題として、各レジスタが、互いのレジスタに対する絶対アドレス参照によりシーケンシャルにプログラミングされることが挙げられる。これは、1つのレジスタが、1つのレジスタセット中の後続のレジスタの前にプログラミングされなければならないことを意味する。これは、時間の浪費につながるものであり、またバーストモード伝送を用いるバスアーキテクチャ(PCIバス等)では、かかる絶対アドレス参照は、コンピュータシステムの全体的な性能に影響を与えるボトルネックとなる。
【0030】
コンピュータの処理能力がCPUへと移行すればするほど、グラフィクス表示を生成するためのグラフィクスパラメータの処理は、CPUにより命令を処理する際のボトルネックとなっていく。この問題は、グラフィクスデータの処理が、別個のデバイスのグラフィクス処理チップからCPUへと移行する場合には、より一層顕著なものとなる。
【0031】
このため、CPUの処理速度を維持したままグラフィクスサブシステム内のレジスタをプログラミングする方法が必要とされている。本発明は、各レジスタへの絶対的な参照を伴うことなくグラフィクスサブシステムのレジスタをプログラミングして、システムバスが生成するバースト書き込みサイクルでレジスタをプログラミングすることを可能にする、有利な機能を提供する。
【0032】
【課題を解決するための手段】
本発明によれば、各レジスタに対する絶対アドレス参照を伴うことなくシーケンシャルアドレス範囲を介したシーケンシャルアドレスプログラミングを生成するグラフィクスプロセッサが提供される。本発明は、過度の量のメモリリソースを必要とすることなく多くの今日のマルチメディアコンピュータシステムで処理される次第に量の増大するグラフィクスデータを取り扱うことが可能なシステムを提供する。
【0033】
本発明の実施形態は、システムバスに接続されたプロセッサと、該システムバスに接続されて表示リストを格納するメモリユニットと、該メモリユニットに格納されている表示リストからマイクロ命令を受容するグラフィクスプロセッサと、該グラフィクスプロセッサ中に表示リストを格納するために該グラフィクスプロセッサに接続された一組のレジスタファイルと、前記メモリユニット内に配置されて表示リストのアドレスオフセットを格納するプライベートメモリ領域とを有するコンピュータ制御式のグラフィクス表示システムであって、中央プロセッサにより生成された前記命令が、前記グラフィクスプロセッサ中の前記レジスタファイルに対するランダムなロードを行う他の手段に取って代わる、コンピュータ制御式のグラフィクス表示システムを含むものとなる。
【0034】
本発明の実施形態は更に、上記構成を含むものであって、前記表示リストが、ポリゴンプリミティブを処理するパラメータ化手順と、複数組のグラフィクスラインと、複数組のグラフィクスポイントとを含み、更に前記パラメータ化手順が異なるグラフィクスフォーマット間の変換を処理するものとなる、
更に、本発明の実施例は、上記構成を含むものであって、コマンドフォーマットを使用して、プログラミングすべき特定のレジスタについてアドレス及びデータ情報をエンコードするものとなる。
【0035】
本発明の更なる実施例は、上記構成を含むものであって、各コマンドが、バースト書き込みサイクルを実行するための機構をバスコントローラに提供するシーケンシャルアドレス範囲へとシーケンシャルに書き込まれるものとなる。バースト書き込みサイクルを使用してグラフィクスサブシステムがプログラミングされるため、該グラフィクスサブシステムの一回の描画操作をプログラミングするために必要となる時間が大幅に短縮される。
【0036】
また、本グラフィクスプロセッサは好適には、事前フェッチ(prefetch)ユニットからOPCODEを受信して該OPCODEをデコードする内部命令実行ユニットを含むものとなる。該内部命令実行ユニットはまた、表示リストを受信して該表示リストをレジスタファイル中に格納する。
【0037】
以下に示す本発明の詳細な説明を図面と関連して考察することにより、本発明の一層良好な理解が得られるであろう。
【0038】
【発明の実施の形態】
グラフィクスデバイスに供給される表示情報の品質を損失することなく、より短い表示リストを提供するための方法及び装置を開示する。
【0039】
以下に示す本発明の詳細な説明では、本発明の完璧なる理解を提供するために、多数の特定の細部を以下で説明する。しかし、本発明は、かかる特定の細部を伴わずに代替的な構成要素又は方法を用いて実施することが可能である、ということが当業者には明かであろう。他の実施形態では、周知の方法、手順、部品、及び回路が、本発明の特徴を無用に不明瞭にしないよう詳細に説明されている。
【0040】
以下に示す本発明の詳細な説明中の幾つかの部分は、コンピュータシステム内のデータビットの操作に関する手順、論理ブロック、処理、及びその他の象徴的な表現に関して説明されている。かかる説明及び表現は、当業者が、他の当業者に対して自分の研究内容を最も効率的に伝えるために使用される手段である。手順、論理ブロック、プロセスその他は、本書において、また一般的にも、所望の結果へと導くつじつまの合う一連のステップまたは命令であると考える。該ステップは、物理的な量の物理的な操作を必要とするものである。通常は、格納、伝送、組み合わせ、比較、及びその他の操作をコンピュータシステム内で行うことが可能な磁気信号である。便宜上、及び一般的な用途に関して、かかる信号を、本発明の場合にはビット又は値等と称することにする。
【0041】
しかし、かかる用語の全ては、物理的な操作及び量を意味するもの及び単なる便宜上の文言として解釈されるべきであり、また当業界で一般に用いられている用語に鑑みて解釈されるべきである、ということに留意されたい。以下の説明から自明であるとして特に述べない限り、本発明の解説全体、即ち、「処理」、「計算」、「算出」、「判定」、又は「表示」といった用語を用いた解説は、データの操作及び変更を行うコンピュータシステム又はそれと同様の電子的な計算装置の動作及び処理について言及したものであることを理解されたい。該データは、コンピュータシステムのレジスタ及びメモリ内の物理的(電子的)な量として表されるものであり、他のデータ(これもまた同様にコンピュータシステムのメモリ又はレジスタその他の情報記憶装置、送信装置、又は表示装置内の物理的(電子的)な量として表されるもの)へと変換される。
【0042】
ここで図3を参照する。同図は、本発明の好適な実施形態により使用されるホストコンピュータシステム300を示すブロック図である。一般に、ホストコンピュータシステム300は、データ及び命令の通信を行うためのバス301、該バス301に接続されてデータ及び命令の処理を行うホストプロセッサ(CPU)302、前記バス301に接続されて前記ホストプロセッサ302からのデータ及び命令を格納するコンピュータにより読み出しを行うことが可能な不揮発性メモリユニット303、前記バス301に接続されてデータを格納するコンピュータにより読み出しを行うことが可能なデータ記憶装置304、及び前記バス301に接続されてコンピュータのユーザに対して情報を表示する表示装置306を備えている。本発明のホストコンピュータシステム300内で使用される表示装置306は、液晶装置又はCRTその他の、コンピュータのユーザが認識することが可能なグラフィクスイメージ及び英数字キャラクタを生成するのに適した表示装置とすることが可能である。
【0043】
ホストコンピュータシステム300は、データ及び制御信号をバス301を介してグラフィクスハードウェアサブシステム309へ供給する。該グラフィクスハードウェアサブシステム309は、表示リスト中で見つかった一連の表示命令を実行するグラフィクスプロセッサ310を備えている。該グラフィクスプロセッサ310は、表示装置上にイメージを描画するために該表示装置のリフレッシュを行うデータ及び制御信号をフレームバッファへ供給する。代替的に、ホストプロセッサ302が、既知の技術に従ってグラフィクスプロセッサ310に表示リストを書き込むことが可能である。
【0044】
図3に示す特定の実施形態は、コンピュータシステムで使用するためのグラフィクスシステムの多くの考え得る実施形態のうちの1つに過ぎないものである、ということを理解されたい。図3は、明瞭化のために簡素化されたものであり、本発明の理解に必要でない構成要素及び制御信号は省略してある。
【0045】
該好適実施形態では、グラフィクスプロセッサ310は、2D及び3Dグラフィクスのハードウェアサポート、及び、コンピュータシステムのテキスト及びウィンドウによる操作のハードウェアサポートを提供する。グラフィクスプロセッサ310は、システムメモリ304又はホストプロセッサ302からディジタルデータを伝送し、及び最終的に表示装置306上に表示するためにRDRAM315に格納するためのデータを処理する。
【0046】
本発明によれば、ホストプロセッサ302は、必要とされるパラメータ値を表示リストという形で提供し、該表示リストは典型的には、グラフィクスプロセッサ310により必要とされるまでシステムメモリ304内に格納される。
【0047】
ホストプロセッサ302及びシステムメモリ304は双方とも、システムバス301を介して通信を行うことが好ましい。システムバス301は、周辺機器相互接続(PCI)バスであることが好ましい。
【0048】
更に図3を参照する。グラフィクスプロセッサ310は、システムバス301に接続される。本発明によれば、グラフィクスプロセッサ310は、バスマスタリング能力を備えていることが好ましく、これによりグラフィクスプロセッサ310がシステムバス310との間でバスマスタリングを行うことが可能となる。グラフィクスプロセッサ310はまた、表示装置及びRDRAM315に接続される。
【0049】
好適な実施形態では、該RDRAMは、複数のRDRAMバッファのバンクから構成され、この場合、該RDRAM内に格納されるディジタルデータは、ピクセル又はピクセル値と呼ばれるピクチャ要素の矩形アレイから構成される。各ピクセルは、8ビット値により規定することが可能であり、該8ビット値は、例えば、表示装置306の画面上の対応するピクセルの単一カラーの強度を規定するものとなる。
【0050】
グラフィクスハードウェアサブシステム309は、レジスタファイル312と呼ばれる揮発性メモリユニットのアレイを取り扱う。該レジスタファイル312は、グラフィクスハードウェアサブシステム309の処理中の情報を保持する。該レジスタファイル312はまた、グラフィクスハードウェアサブシステム309の動作に必要な情報及びコマンドを格納する。
【0051】
表示装置306は、任意の適当なタイプの表示装置とすることが可能であり、例えば、デスクトップ、ワークステーション、若しくはサーバ用途用のCRT、液晶表示装置(LCD)、又は他の任意の適当なパーソナルコンピュータ用の表示装置とすることが可能である。
【0052】
RDRAMフレームバッファ315は、表示リストの命令及びピクセルデータに対するより高速なアクセスを可能とすることにより、ホストコンピュータシステム300のメインメモリ304に格納されているデータにアクセスする場合と比較して、性能の改善を提供するものとなる。グラフィクスプロセッサ310は、アドレスデータライン及び制御ライン(包括的にRBUS318と称す)を介してRDRAMフレームバッファ315と通信を行う。
【0053】
ここで図4を参照する。グラフィクスハードウェアサブシステム309は、レジスタファイル312、グラフィクスプロセッサ310、及びフレームバッファ315を備えていることが好ましい。一般に、レジスタファイル312は、表示リスト情報を格納するための複数のレジスタから構成される。
【0054】
レジスタアドレス生成器400は、レジスタファイル312中の1つのレジスタに関するアドレスを生成し、該アドレスを信号ラインを介してレジスタファイル312へと送信する。次いで、アドレスNにおけるレジスタに入るべきデータが、システムバス301を介してレジスタファイルへと送信される。本発明では、グラフィクスプロセッサ310は、システムバス301のバーストサイクルプロトコルを使用して複数のアドレスをホストCPU302へ送信する。
【0055】
デコード論理回路410は、OPCODE自体と、レジスタファイル312中のアドレスのロードを開始すべき場所をグラフィクスプロセッサ310に伝えるアドレスフィールド情報とを含む演算コード命令を受信する。該演算コード命令により、デコード論理回路410が、レジスタファイル312中のデータロードを開始すべき場所を確立し、CPUがグラフィクスプロセッサ310に対して生成するものとは無関係に複数のレジスタに対して継続的にロードを行うことが可能となる。
【0056】
デコード論理回路410は、レジスタファイル中のデータロードされるアドレスの数をカウントするアドレスロードカウンタを備えていることが好ましい。デコード論理回路410はまた状態マシンを備えており、該状態マシンは、レジスタファイル中の次の値に対応する次のアドレスへとアドレスをインクリメントするようアドレス生成器に指示するものであることが好ましい。
【0057】
レジスタファイル312は、デコード論理回路410によりデコードされたアドレス値から表示パラメータを格納する。本発明の一好適実施例では、レジスタファイル312には、物理アドレスロケーションの参照を伴うことなく表示パラメータがシーケンシャルにロードされる。このため、ホストCPU302により操作されるバーストサイクル書き込みの間にレジスタファイル312中の複数のアドレスロケーションに対するロードを同時に行い、該レジスタファイル312からポリゴン及びテクスチャエンジンへと表示パラメータを書き込んで、所望のグラフィクスプリミティブを描画することが可能となる。
【0058】
図5は、本発明の一好適実施形態によるコマンドレジスタ500を示すブロック図である。同図に示すように、コマンドレジスタ500は、1つのコマンドレジスタ領域及び一連の格納ロケーションを備えていることが好ましい。
【0059】
本発明でグラフィクスプリミティブ(例えば1ライン)を描画するために、ホストCPU302は、コマンドレジスタ領域500を使用して、レジスタファイル中のレジスタロケーションに対するロードを行って、x,y,z,R,G,B,x_main,count_1:count_2,及びOPCODEレジスタロケーションの格納を行う(図2B参照)。図5のコマンドレジスタ領域を使用することにより、ホストCPU302がアドレスに固有のレジスタのロードを行う必要が無くなる。最初にOPCODEがコマンドレジスタのアドレスオフセットロケーション0x0に書き込まれる。該アドレスオフセットの書き込みは、グラフィクスプロセッサに対し、(例えば)1ラインが描画されるべきこと、及びそれ以降の書き込みの回数を開始レジスタ中にロードすべきことを命令する。
【0060】
ここで図6を参照する。同図は、図のデコード論理回路410の状態マシンを簡素化して示すフローチャートである。同図に示すように、状態1で、CPUがコマンドレジスタへ演算コード命令を書き込む。これにより、グラフィクスプロセッサは、グラフィクスプリミティブを描画すべきことが命令される。
【0061】
状態2で、OPCODEがデコードされて、デコード論理回路410中の開始レジスタアドレス及びカウントがロードされる。この状態から、該命令プロセスフローが、アドレスカウントに基づいてループを開始する。
【0062】
CPUが状態2でコマンドレジスタ領域に対して書き込みを行う際に、状態マシンは、システムバスからのデータのレジスタアドレスへの書き込みを介して逐次に処理を行い、次いでレジスタアドレスをインクリメントし、カウントをデクリメントする。
【0063】
状態3で、全ての書き込みが実行されたか否かを判定するために、カウントが0であるか否かが検査される。カウントが0でない場合には、ループが状態1へと続行される。またカウントが0である場合には、グラフィクスプロセッサが、CPUの書き込みサイクルを開始する。
【0064】
このため、レジスタファイル中のレジスタには、実際には、グラフィクスプリミティブの描画に必要となる各レジスタロケーションの物理的な参照を伴うことなく、グラフィクスプリミティブがロードされる。上記の本発明の好適実施例の多数の変形例については、当業者であれば、上記開示を十分に理解することにより自明となろう。特許請求の範囲は、その各請求項がかかる変形例及び修正例の全てを含むものと解釈されるべきことを意図したものである。
【図面の簡単な説明】
【図1A】 ホストCPU、システムバスに接続されたグラフィクスサブシステム、及び表示パラメータを格納するためのシステムメモリを備えた従来のコンピュータシステムを簡素化して示すブロック図である。
【図1B】 図1AのホストCPUのアドレス空間を例示する説明図である。
【図2A】 図1Aのグラフィクスサブシステムにより2次元空間内に描画される例示的なラインを簡素化して示す説明図である。
【図2B】 図2Aのラインの描画用のパラメータを格納するためのレジスタ空間を示す説明図である。
【図3】 本発明の教示によるグラフィクスサブシステムを有するコンピュータシステムを簡素化して示すブロック図である。
【図4】 図3のグラフィクスサブシステムを一層詳細に示すブロック図である。
【図5】 本発明の原理による、図4のグラフィクスプロセッサのコマンドレジスタを一層詳細に示す説明図である。
【図6】 図4のグラフィクスプロセッサの状態マシンを簡素化して示す説明図である。
【符号の説明】
309 グラフィクスハードウェアサブシステム
310 グラフィクスプロセッサ
312 レジスタファイル
400 レジスタアドレス生成器
410 デコード論理回路[0001]
BACKGROUND OF THE INVENTION
The present invention relates generally to a graphics subsystem for personal computers, and more particularly to a method and apparatus for programming a register set in a graphics processor.
[0002]
[Prior art]
Modern graphics packages have sometimes been used in expensive computer design systems and graphics systems. The improved capabilities of the graphics controller, coupled with the standardized graphics language, have made it possible to use complex graphics functions in most routine applications. For example, word processors, spreadsheets, and desktop publishing packages now include relatively advanced graphics capabilities. Three-dimensional (3D) displays have become very common in games, animation, and multimedia communications, and drawing packages.
[0003]
The availability of advanced graphics on PCs has driven the demand for even more advanced graphics capabilities. To obtain such capabilities, the graphics system must be able to perform more sophisticated functions in a shorter amount of time to process the larger amount of graphics data required by modern software applications. In particular, improvements in software algorithms and hardware implementations continue to be required to render 3D objects using full color, texture mapping, and transparency blending.
[0004]
Improvements have been made in the hardware field. The graphics processor and accelerator can be obtained with a software driver that interfaces the host CPU to the graphics processor. In general, graphics software receives information for drawing an object on a computer screen, calculates certain basic parameters associated with the object, and outputs the calculation results in the form of a “display list” of parameters. Provide to the graphics processor.
[0005]
The graphics controller then uses the value of the display list when generating a graphics object to be displayed. The graphics processor can use interpolation techniques, where the basic information of the object to be drawn consists of a series of initial and incremental parameters or values. The graphics processor accepts the initial parameters for the pixel to be rendered in a load or other manner and interpolates the object by incrementing the parameter until the object is fully rendered.
[0006]
To draw graphics objects, many conventional computer systems program the graphics subsystem by using a register set (ie, a set of registers) mapped within the host CPU address range. . Typically, the graphics subsystem is mapped with an address that exceeds the local memory of the host CPU. The register set is then mapped to the smallest bit location that can be addressed by the host CPU.
[0007]
The graphics subsystem can read a data stream (display list) from the memory and execute a program stored in the same memory as the data. The size of such display list information tends to limit the traversal speed of the CPU and graphics subsystem.
[0008]
The CPU typically builds display list information using instructions and parameters specific to a particular external device connected to the computer system. The external device then reads the instruction stream and executes instructions from the instruction stream. One common operation stored in the display list is a command that loads specific values into single and multiple registers in the device's register file.
[0009]
Existing graphics devices that use display lists typically load data in a sequential format into a register file in the graphics processor. For each primitive type, a specific set of data values is required to render that type of primitive. For example, one point to be drawn on the pixel grid requires an x, y location, a color value, and a z value for depth comparison. An example of the display list is shown in Table 1 below.
[0010]
[Table 1]
Figure 0004846097
[0011]
The display list of Table 1 provides parameters necessary for drawing points, lines, and polygons. From the display list, if a specific primitive drawing operation only requires that the register values (X, Y, R, G, B, A), for example, be loaded, the conventional load instruction is One of two alternative instruction loading methods will be used.
[0012]
One of the two instruction loading methods is to load all nine registers (for example, “Load instruction (start at X), X, Y, Z, R, G, B, X1, X2, A "). Therefore, the information stream in the display list occupies 10 instruction words (40 bytes) and loads unnecessary registers.
[0013]
Another instruction loading method uses two consecutive load operations to replace two register load gaps (eg, X1, X2) with only one load instruction (eg, “Load instruction (start at X ), X, Y, Z, R, G, B "and" Load instruction (start at A), A "). The length of the information stream in the display list in the case of this load sequence is 9 instruction words (36 bytes).
[0014]
These two conventional instruction loading methods have a common feature of sequentially loading parameter values relating to primitives to be rendered into a register file. These load instructions are composed of two fields: a first field that holds a start parameter value, and a second field that holds an incremental count of subsequent parameter values for the primitive to be rendered.
[0015]
FIG. 1A is a block diagram illustrating a typical conventional computer system. The computer system shown in the figure includes a host CPU 110, a host memory 120, and a system bus 105 connected to the host CPU 110 to interface with external peripheral devices. The system bus 105 constitutes a series of signals that can be connected to or directly connected to a peripheral device via a connector (when connected to the logical board of the host CPU 110).
[0016]
The graphics subsystem 140 is also shown connected to the system bus 105. The graphics subsystem 140 is typically programmed to draw graphics primitives by using a register set mapped in the address range of the host CPU 110. Typically, the graphics subsystem 140 is mapped with an address that exceeds the local memory of the host CPU 110, as shown in FIG. 1B.
[0017]
A register set (ie, a set of registers) is mapped to the smallest bit location that can be addressed by the host CPU 110. Each register of the graphics subsystem is given a value from the host data bus when selected by the host CPU 110, which when the host CPU 110 starts a write cycle with an address that matches the bit pattern for each register. Selected. Each register has a specific function that does or does not affect the operation of the graphics subsystem 140.
[0018]
Reference is now made to FIG. 1A. The bus interface chip 130 can convert the protocol of the host CPU 110 for accessing the address space of the host CPU 110 into a protocol defined by the bus architecture. As a result, the external peripheral device can be mapped into the host address space of FIG. 1B. Typically, for a series of sequential reads or writes to the host CPU 110, the bus protocol supports an operation known as burst bus operation.
[0019]
The burst bus operation allows a single address to be presented on the bus in a series of data phases. A requirement for performing a burst cycle operation is that the data phase following the first address phase must be the smallest bit address increment supported by the bus 105.
[0020]
In a typical computer using an interface bus (PCI bus) for peripheral interconnection according to industry standards, the minimum bit address increment for a burst cycle is 32 bits.
[0021]
If a register mapped to a specific address range does not break for the minimum bit address supported by the bus for a burst cycle, it must provide an address and data phase for each transmission. Become. Since a burst cycle requires only one address phase to transmit one address, it is advantageous to use a burst bus cycle for a bus that multiplexes addresses and data on the same signal line.
[0022]
FIG. 2A is an explanatory diagram illustrating an example of one line drawn in a two-dimensional space in the related art. As shown in the figure, the line 200 includes an initial start point (xy coordinates), a color, a slope (x_main), and a length (count_1) in the y space. In the line shown in the figure, “x” and “y” define the initial start point. The value of “R, G, B” defines the color of the line, and the count value (eg count_1, count_2) defines the incremental change for each successive point on the line.
[0023]
In the register space shown in FIG. 2B, a series of named registers x, y, z, r, g, b, x_main, and count_1: count_2 are shown. When the host CPU 110 instructs the graphics subsystem 140 to draw the line 200 of FIG. 2A, the host CPU 110 needs to program the registers “x” to “count_1” and the OPCODE register. Once the OPCODE register is programmed, the graphics subsystem 140 begins drawing lines for the raster device.
[0024]
In order to program another line of the same color (eg, line 210), the host CPU 110 must program a new x, y value, x_main value, and OPCODE register. Since the write (access) to the register list is not sequential as shown in FIG. 2B (that is, incrementally writes from register 0x0 to register 0x18), the system bus controller 130 shown in FIG. 1A transmits the CPU write. For this reason, it has to be divided into a plurality of address and data phases.
[0025]
[Problems to be solved by the invention]
Despite conventional instruction load operations and the ability to load multiple registers sequentially to allow efficient processing of display parameters, there are several methods for register programming in the graphics subsystem. The problem has surfaced.
[0026]
One such problem is that the CPU 110 and the graphics subsystem 140 cannot use the burst cycle protocol of the system bus 105. The transmission of multiple data and address phases can clog the system bus 105 and reduce the overall performance of the CPU 110.
[0027]
Another problem is that excessive system memory is required to program the registers when the graphics subsystem must store a large display list. This imposes excessive costs on the overall price of the computer system. Although memory prices have become somewhat cheaper, the average amount of memory installed in many of today's multimedia computer systems continues to increase substantially. For example, a Pentium ™ -based multimedia computer system running MS Windows ™ NT requires at least 32 MByte of memory for its efficient execution.
[0028]
As the memory requirements of such multimedia computer systems continue to increase, the memory required to maintain and execute the very long display lists required by multiprogramming operating systems in such computer systems becomes very large. A further reason for the increased memory is that the memory of such systems is locked, i.e. the operating system cannot swap processing to the external storage of the computer system. Such locking further reduces the amount of memory left in the computer system to handle other system operations.
[0029]
Yet another problem with conventional graphics processors is that each register is programmed sequentially with absolute address references to each other's registers. This means that one register must be programmed before subsequent registers in one register set. This leads to a waste of time, and in a bus architecture (such as a PCI bus) that uses burst mode transmission, such an absolute address reference becomes a bottleneck that affects the overall performance of the computer system.
[0030]
The more the processing capability of the computer shifts to the CPU, the more the graphics parameter processing for generating the graphics display becomes a bottleneck when processing instructions by the CPU. This problem becomes even more prominent when the processing of graphics data is shifted from the graphics processing chip of a separate device to the CPU.
[0031]
Therefore, there is a need for a method of programming registers in the graphics subsystem while maintaining the CPU processing speed. The present invention provides an advantageous feature that allows the graphics subsystem registers to be programmed without absolute references to each register, allowing the registers to be programmed in a burst write cycle generated by the system bus. To do.
[0032]
[Means for Solving the Problems]
In accordance with the present invention, a graphics processor is provided that generates sequential address programming over sequential address ranges without an absolute address reference to each register. The present invention provides a system that can handle an increasing amount of graphics data that is processed in many modern multimedia computer systems without requiring an excessive amount of memory resources.
[0033]
Embodiments of the present invention include a processor connected to a system bus, a memory unit connected to the system bus for storing a display list, and a graphics processor receiving microinstructions from the display list stored in the memory unit And a set of register files connected to the graphics processor for storing the display list in the graphics processor, and a private memory area arranged in the memory unit for storing an address offset of the display list A computer controlled graphics display system, wherein the instructions generated by a central processor replace other means of randomly loading the register file in the graphics processor. Made to include a display system.
[0034]
An embodiment of the present invention further includes the above-described configuration, wherein the display list includes a parameterization procedure for processing a polygon primitive, a plurality of sets of graphics lines, and a plurality of sets of graphics points. It will handle conversion between different graphics formats with different parameterization procedures.
Furthermore, an embodiment of the present invention includes the above configuration and encodes address and data information for a particular register to be programmed using a command format.
[0035]
A further embodiment of the present invention includes the above arrangement, wherein each command is written sequentially into a sequential address range that provides the bus controller with a mechanism for performing a burst write cycle. Since the graphics subsystem is programmed using a burst write cycle, the time required to program a single rendering operation of the graphics subsystem is greatly reduced.
[0036]
In addition, the graphics processor preferably includes an internal instruction execution unit that receives OPCODE from a prefetch unit and decodes the OPCODE. The internal instruction execution unit also receives the display list and stores the display list in a register file.
[0037]
A better understanding of the present invention can be obtained by considering the following detailed description of the invention in conjunction with the drawings.
[0038]
DETAILED DESCRIPTION OF THE INVENTION
Disclosed is a method and apparatus for providing a shorter display list without losing the quality of display information supplied to the graphics device.
[0039]
In the following detailed description of the present invention, numerous specific details are set forth below in order to provide a thorough understanding of the present invention. However, it will be apparent to those skilled in the art that the present invention may be practiced using alternative components or methods without such specific details. In other embodiments, well-known methods, procedures, components, and circuits have been described in detail so as not to unnecessarily obscure features of the present invention.
[0040]
Several portions of the detailed description of the invention presented below are described in terms of procedures, logic blocks, processing, and other symbolic representations relating to the manipulation of data bits within a computer system. Such descriptions and representations are the means used by those skilled in the art to most effectively convey the substance of their work to others skilled in the art. Procedures, logic blocks, processes, etc., are considered in this document and generally also a consistent series of steps or instructions that lead to the desired result. This step requires physical manipulation of physical quantities. Usually, magnetic signals that can be stored, transmitted, combined, compared, and otherwise manipulated within a computer system. For convenience and general purposes, such signals will be referred to as bits or values in the present invention.
[0041]
However, all such terms should be construed in terms of physical manipulation and quantity, and merely as a convenient language, and in view of terms commonly used in the industry. Please note that. Unless otherwise stated as obvious from the following description, the entire description of the present invention, that is, the description using terms such as “processing”, “calculation”, “calculation”, “judgment” or “display” It should be understood that reference is made to the operation and processing of a computer system or similar electronic computing device that performs the operations and modifications described above. The data is represented as physical (electronic) quantities in computer system registers and memory, and other data (also computer system memory or registers or other information storage, transmissions Device, or represented as a physical (electronic) quantity in a display device).
[0042]
Reference is now made to FIG. The figure is a block diagram illustrating a host computer system 300 used in accordance with a preferred embodiment of the present invention. In general, the host computer system 300 includes a bus 301 for communicating data and instructions, a host processor (CPU) 302 connected to the bus 301 for processing data and instructions, and the host 301 connected to the bus 301. A nonvolatile memory unit 303 that can be read by a computer that stores data and instructions from the processor 302; a data storage device 304 that is connected to the bus 301 and can be read by a computer that stores data; And a display device 306 connected to the bus 301 for displaying information to a computer user. The display device 306 used in the host computer system 300 of the present invention is a liquid crystal device or CRT or other display device suitable for generating graphics images and alphanumeric characters that can be recognized by a computer user. Is possible.
[0043]
The host computer system 300 supplies data and control signals to the graphics hardware subsystem 309 via the bus 301. The graphics hardware subsystem 309 includes a graphics processor 310 that executes a series of display instructions found in the display list. The graphics processor 310 supplies data and control signals for refreshing the display device to the frame buffer in order to draw an image on the display device. Alternatively, the host processor 302 can write the display list to the graphics processor 310 according to known techniques.
[0044]
It should be understood that the particular embodiment shown in FIG. 3 is only one of many possible embodiments of a graphics system for use in a computer system. FIG. 3 is simplified for the sake of clarity, and components and control signals not necessary for an understanding of the present invention are omitted.
[0045]
In the preferred embodiment, the graphics processor 310 provides hardware support for 2D and 3D graphics and hardware support for computer system text and window operations. The graphics processor 310 transmits digital data from the system memory 304 or the host processor 302 and processes the data for storage in the RDRAM 315 for final display on the display device 306.
[0046]
In accordance with the present invention, the host processor 302 provides the required parameter values in the form of a display list, which is typically stored in the system memory 304 until needed by the graphics processor 310. Is done.
[0047]
Both host processor 302 and system memory 304 preferably communicate via system bus 301. System bus 301 is preferably a peripheral component interconnect (PCI) bus.
[0048]
Still referring to FIG. The graphics processor 310 is connected to the system bus 301. According to the present invention, the graphics processor 310 preferably has a bus mastering capability, which allows the graphics processor 310 to perform bus mastering with the system bus 310. The graphics processor 310 is also connected to the display device and the RDRAM 315.
[0049]
In a preferred embodiment, the RDRAM is composed of a plurality of banks of RDRAM buffers, where the digital data stored in the RDRAM is composed of a rectangular array of picture elements called pixels or pixel values. Each pixel can be defined by an 8-bit value, which, for example, defines the single color intensity of the corresponding pixel on the screen of display device 306.
[0050]
Graphics hardware subsystem 309 handles an array of volatile memory units called register file 312. The register file 312 holds information being processed by the graphics hardware subsystem 309. The register file 312 also stores information and commands necessary for the operation of the graphics hardware subsystem 309.
[0051]
The display device 306 can be any suitable type of display device, such as a CRT, liquid crystal display (LCD), or any other suitable personal for desktop, workstation, or server applications. A display device for a computer can be provided.
[0052]
The RDRAM frame buffer 315 enables faster access to display list instructions and pixel data, thereby improving performance compared to accessing data stored in the main memory 304 of the host computer system 300. It will provide improvements. The graphics processor 310 communicates with the RDRAM frame buffer 315 via an address data line and a control line (generally referred to as RBUS 318).
[0053]
Reference is now made to FIG. The graphics hardware subsystem 309 preferably includes a register file 312, a graphics processor 310, and a frame buffer 315. In general, the register file 312 includes a plurality of registers for storing display list information.
[0054]
The register address generator 400 generates an address related to one register in the register file 312 and transmits the address to the register file 312 via a signal line. Then register at address N Should enter Data is transmitted to the register file via the system bus 301. In the present invention, the graphics processor 310 is a system bus. 301 A plurality of addresses are transmitted to the host CPU 302 using the burst cycle protocol.
[0055]
The decode logic circuit 410 receives an opcode instruction that includes the OPCODE itself and address field information that tells the graphics processor 310 where to start loading addresses in the register file 312. In response to the operation code instruction, the decode logic circuit 410 causes the register file 312 to data Establish where to start loading And What the CPU generates for the graphics processor 310 Regardless of It becomes possible to continuously load a plurality of registers.
[0056]
The decode logic 410 is in the register file. Data of An address load counter that counts the number of addresses loaded is preferably provided. The decode logic 410 also includes a state machine that preferably directs the address generator to increment the address to the next address corresponding to the next value in the register file. .
[0057]
Register file 312 was decoded by decode logic 410 From address value Display parameters value Is stored. In one preferred embodiment of the present invention, the register file 312 contains display parameters without a physical address location reference. value Are loaded sequentially. For this reason, loads to a plurality of address locations in the register file 312 are simultaneously performed during burst cycle writing operated by the host CPU 302, and display parameters are transferred from the register file 312 to the polygon and texture engine. value To draw a desired graphics primitive.
[0058]
FIG. 5 is a block diagram illustrating a command register 500 according to one preferred embodiment of the present invention. As shown in the figure, the command register 500 preferably includes one command register area and a series of storage locations.
[0059]
In order to draw a graphics primitive (for example, one line) in the present invention, the host CPU 302 uses the command register area 500 to load a register location in the register file, and x, y, z, R, G , B, x_main, count_1: count_2, and OPCODE register location are stored (see FIG. 2B). By using the command register area of FIG. 5, it is not necessary for the host CPU 302 to load a register specific to the address. First, OPCODE is written to address offset location 0x0 in the command register. Writing the address offset instructs the graphics processor that (for example) one line should be drawn and the number of subsequent writes should be loaded into the start register.
[0060]
Reference is now made to FIG. The figure is the figure 4 6 is a flowchart showing a simplified state machine of the decode logic circuit 410 of FIG. As shown in the figure, in state 1, the CPU writes an operation code instruction to the command register. Thereby, the graphics processor is instructed to draw the graphics primitive.
[0061]
In state 2, the OPCODE is decoded and the start register address and count in the decode logic circuit 410 are loaded. From this state, the instruction process flow starts a loop based on the address count.
[0062]
When the CPU writes to the command register area in state 2, the state machine sequentially processes through writing data from the system bus to the register address, then increments the register address and counts Decrement.
[0063]
In state 3, a check is made to see if the count is zero to determine if all writes have been performed. If the count is not 0, the loop continues to state 1. If the count is 0, the graphics processor starts a CPU write cycle.
[0064]
For this reason, the registers in the register file actually do not have a physical reference to each register location required to draw the graphics primitives, value Is loaded. Many variations of the preferred embodiments of the present invention described above will become apparent to those skilled in the art upon a thorough understanding of the above disclosure. It is intended that the following claims be construed that each claim includes all such variations and modifications.
[Brief description of the drawings]
FIG. 1A is a simplified block diagram of a conventional computer system that includes a host CPU, a graphics subsystem connected to a system bus, and a system memory for storing display parameters.
FIG. 1B is an explanatory diagram illustrating an address space of the host CPU in FIG. 1A;
2A is an explanatory diagram showing a simplified example line drawn in a two-dimensional space by the graphics subsystem of FIG. 1A. FIG.
2B is an explanatory diagram showing a register space for storing parameters for drawing the line in FIG. 2A;
FIG. 3 is a simplified block diagram of a computer system having a graphics subsystem in accordance with the teachings of the present invention.
FIG. 4 is a block diagram illustrating the graphics subsystem of FIG. 3 in more detail.
5 is an illustration showing in more detail the command register of the graphics processor of FIG. 4 in accordance with the principles of the present invention.
6 is an explanatory diagram showing a simplified state machine of the graphics processor of FIG. 4; FIG.
[Explanation of symbols]
309 Graphics Hardware Subsystem
310 graphics processor
312 Register file
400 register address generator
410 decode logic

Claims (8)

バースト書き込みサイクル動作を実行するようグラフィクスプリミティブ値のレジスタファイル中の複数のレジスタへのプログラミングを行うグラフィクスプロセッサであって、
該グラフィクスプロセッサ内に配設され、描画すべきグラフィクスプリミティブを格納するための前記複数のレジスタのアドレスを生成する、アドレス生成手段と、
該アドレス生成手段に接続されたデコード論理手段であって、ホストプロセッサから、描画すべきグラフィクスプリミティブのタイプを規定するOPCODEと、前記レジスタファイル中のアドレスのロードを開始すべき場所を指定するアドレスフィールド情報とを含む演算コード命令を受信することにより、前記レジスタファイル中のアドレスのうちのグラフィクスプリミティブ値のロードを開始すべきアドレスを確立し、次のグラフィクスプリミティブ値に対応する前記レジスタファイル中の次のアドレスへとアドレスをインクリメントするように前記アドレス生成手段に指示する状態マシンを備え、これによってグラフィクスプリミティブ値を格納するために、前記ホストプロセッサが前記レジスタファイルに対して生成したアドレス値を参照することなく前記複数のレジスタに対して継続的にグラフィクスプリミティブ値のロードを行うことを可能とし、もってグラフィクスプロセッサが前記レジスタファイル中の複数のレジスタのプログラミングを行うためにバースト書き込みサイクルを生成することを可能にする、デコード論理手段と、
前記レジスタファイル中の複数のレジスタのプログラミングを行うプログラミング論理手段と
前記ホストプロセッサが前記レジスタファイルに対して生成したアドレス値及び前記OPCODEを含む前記演算コード命令を受信・格納するコマンドレジスタとを備え、
前記状態マシンは、前記コマンドレジスタに格納された前記OPCODEがデコードされることによって決定される、前記レジスタファイル中の前記ロードを開始すべきアドレスと、グラフィクスプリミティブのデータ書き込み段階の数であるアドレスカウントとを供給し、
前記状態マシンは、前記レジスタファイルに前記グラフィクスプリミティブ値を1つ書き込む前記データ書き込み段階が終了するたびに、前記レジスタファイル中のロード位置を1つインクリメントするとともに、前記アドレスカウントを1つデクリメントし、
前記状態マシンは、描画すべきグラフィクスプリミティブの全てのグラフィクスプリミティブ値が書き込まれたか否かを判定するために、前記アドレスカウントがゼロであるか否かを検査し、
前記グラフィクスプロセッサは、前記アドレスカウントが0でない場合には、同じグラフィクスプリミティブの書き込みサイクルを継続し、前記アドレスカウントが0である場合には、新たなグラフィクスプリミティブの書き込みサイクルを開始することを特徴とする、グラフィクスプロセッサ。
A graphics processor for programming a plurality of registers in a register file of graphics primitive values to perform a burst write cycle operation,
Address generating means arranged in the graphics processor for generating addresses of the plurality of registers for storing graphics primitives to be rendered;
Decoding logic means connected to the address generation means, an OPCODE that defines the type of graphics primitive to be drawn from the host processor, and an address field that specifies the location where the loading of the address in the register file should start Receiving an operation code instruction including information, establishes an address at which to start loading a graphics primitive value among the addresses in the register file, and sets a next address in the register file corresponding to the next graphics primitive value. A state machine that directs the address generation means to increment the address to the address of the address, thereby referring to the address value generated by the host processor for the register file to store the graphics primitive value Allows the graphics primitive value to be continuously loaded into the plurality of registers without causing the graphics processor to generate a burst write cycle to program the plurality of registers in the register file. Decoding logic means to enable
Programming logic means for programming a plurality of registers in the register file ;
A command register for receiving and storing the operation code instruction including the address value generated by the host processor for the register file and the OPCODE;
The state machine is determined by decoding the OPCODE stored in the command register, the address in the register file to start the load, and an address count that is the number of data write stages of the graphics primitive And supply
The state machine increments the load position in the register file by 1 and decrements the address count by 1 each time the data writing step of writing one of the graphics primitive values to the register file is completed,
The state machine checks whether the address count is zero to determine if all graphics primitive values of the graphics primitive to be drawn have been written;
The graphics processor continues the same graphics primitive write cycle when the address count is not 0, and starts a new graphics primitive write cycle when the address count is 0. A graphics processor.
バースト書き込みサイクルアドレス要求に応じてグラフィクスプリミティブの描画を行うために該バースト書き込みサイクルアドレス要求を操作するグラフィクスサブシステムであって、
該グラフィクスサブシステム内に配設され、描画すべきグラフィクスプリミティブ値のレジスタファイル中の複数のレジスタへのプログラミングを行う、請求項1に記載の前記グラフィクスプロセッサを有し、
前記レジスタファイルが、該グラフィクスプロセッサに接続されてグラフィクスプリミティブアドレス値の受信及び格納を行う複数の記憶場所からなり、
該レジスタファイルに接続され、グラフィクスプリミティブの描画を行う、テクスチャ及びポリゴンエンジンをさらに備える、グラフィクスサブシステム。
A graphics subsystem that manipulates a burst write cycle address request to render a graphics primitive in response to a burst write cycle address request,
The graphics processor of claim 1, wherein the graphics processor is disposed in the graphics subsystem and performs programming into a plurality of registers in a register file of graphics primitive values to be rendered.
The register file comprises a plurality of storage locations connected to the graphics processor for receiving and storing graphics primitive address values;
A graphics subsystem further comprising a texture and polygon engine connected to the register file for rendering graphics primitives.
バースト書き込みサイクル動作中にグラフィクスプリミティブを描画するためのシステムであって、
データ及び命令の通信を行い及びバースト書き込みサイクルを生成するためのシステムバスと、
該システムバスに接続され、該システムバスに対して、描画に必要なグラフィクスプリミティブ値からなる表示リストを生成する、ホストプロセッサと、
前記システムバスに接続され、前記表示リストを格納する、システムメモリと、
前記システムバスに接続され、前記グラフィクスプリミティブ値を処理する、請求項に記載のグラフィクスサブシステムと、
該グラフィクスサブシステムに接続され、前記グラフィクスサブシステムから提供された映像データを表示する、表示装置とを備えているシステム。
A system for drawing graphics primitives during a burst write cycle operation,
A system bus for communicating data and instructions and generating burst write cycles;
A host processor connected to the system bus and generating a display list comprising graphics primitive values necessary for rendering;
A system memory connected to the system bus for storing the display list;
The graphics subsystem of claim 2 , connected to the system bus and processing the graphics primitive values;
And a display device connected to the graphics subsystem and displaying video data provided from the graphics subsystem.
前記システムバスが、周辺機器相互接続(PCI)バスである、請求項に記載のシステム。The system of claim 3 , wherein the system bus is a peripheral component interconnect (PCI) bus. バースト書き込みサイクル動作中にグラフィクスプリミティブ値を描画するよう、請求項に記載のグラフィクスプロセッサ中のコマンドレジスタをプログラミングする方法であって、
(a) 描画すべきグラフィクスプリミティブのタイプを規定するOPCODEを含む演算コード命令を前記コマンドレジスタ中のオフセットアドレスに書き込み、
(b) 前記OPCODEをデコードして、ロード開始アドレス及びアドレスカウントを決定し、
(c) 前記ロード開始アドレスのロケーションに前記OPCODEの内容をロードし、
(d) レジスタアドレスロード位置を1だけインクリメントする、という各ステップを有する、方法。
To draw graphics primitives value during the burst write cycle operation, a method for programming a command register in the graphics processor of claim 1,
(a) Write an operation code instruction including OPCODE that defines the type of graphics primitive to be drawn to the offset address in the command register;
(b) Decode the OPCODE, determine the load start address and address count,
(c) Load the contents of the OPCODE to the location of the load start address,
(d) A method comprising the steps of incrementing the register address load position by one.
前記アドレスカウントに基づきアドレスデコードループを開始するステップを含む、請求項に記載の方法。6. The method of claim 5 , comprising starting an address decode loop based on the address count. 演算コード命令を前記コマンドレジスタ中のオフセットアドレスに書き込む前記ステップが、全てのアドレスについて書き込みが完了したか否かを判定するために前記アドレスカウントが0であるか否かを判定する検査ステップを含む、請求項に記載の方法。The step of writing an operation code instruction to an offset address in the command register includes a test step of determining whether the address count is 0 in order to determine whether writing has been completed for all addresses. The method according to claim 5 . 前記レジスタアドレスのロケーションをインクリメントする前記ステップ中に前記レジスタアドレスのロードカウントが1だけデクリメントされるステップを含む、請求項に記載の方法。6. The method of claim 5 , comprising the step of decrementing the load count of the register address by 1 during the step of incrementing the location of the register address.
JP2000548810A 1998-05-12 1998-05-12 Method and apparatus for register set of graphics subsystem Expired - Lifetime JP4846097B2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US1998/009688 WO1999059068A1 (en) 1998-05-12 1998-05-12 Method and apparatus for programming a graphics subsystem register set

Publications (2)

Publication Number Publication Date
JP2002514817A JP2002514817A (en) 2002-05-21
JP4846097B2 true JP4846097B2 (en) 2011-12-28

Family

ID=22267044

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000548810A Expired - Lifetime JP4846097B2 (en) 1998-05-12 1998-05-12 Method and apparatus for register set of graphics subsystem

Country Status (4)

Country Link
EP (1) EP1080413A4 (en)
JP (1) JP4846097B2 (en)
AU (1) AU7383198A (en)
WO (1) WO1999059068A1 (en)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0447145B1 (en) * 1990-03-12 2000-07-12 Hewlett-Packard Company User scheduled direct memory access using virtual addresses
US5408605A (en) * 1993-06-04 1995-04-18 Sun Microsystems, Inc. Command preprocessor for a high performance three dimensional graphics accelerator
US5524265A (en) * 1994-03-08 1996-06-04 Texas Instruments Incorporated Architecture of transfer processor
US5706478A (en) * 1994-05-23 1998-01-06 Cirrus Logic, Inc. Display list processor for operating in processor and coprocessor modes
US5657479A (en) * 1995-12-04 1997-08-12 Silicon Graphics, Inc. Hierarchical display list processing in graphics data retrieval system

Also Published As

Publication number Publication date
JP2002514817A (en) 2002-05-21
AU7383198A (en) 1999-11-29
EP1080413A4 (en) 2006-02-01
WO1999059068A1 (en) 1999-11-18
EP1080413A1 (en) 2001-03-07

Similar Documents

Publication Publication Date Title
US6002409A (en) Arbitration for shared graphics processing resources
JP4234217B2 (en) System, apparatus and method for embedding transparent enable bits as part of resizing bit block transfer processing
US5883640A (en) Computing apparatus and operating method using string caching to improve graphics performance
US5838334A (en) Memory and graphics controller which performs pointer-based display list video refresh operations
US5793386A (en) Register set reordering for a graphics processor based upon the type of primitive to be rendered
US5251298A (en) Method and apparatus for auxiliary pixel color management using monomap addresses which map to color pixel addresses
US20030169626A1 (en) System and method for controlling a number of outstanding data transactions within an integrated circuit
US6747657B2 (en) Depth write disable for zone rendering
US6864892B2 (en) Graphics data synchronization with multiple data paths in a graphics accelerator
US7791601B2 (en) Efficient object storage for zone rendering
US6847369B2 (en) Optimized packing of loose data in a graphics queue
US5940090A (en) Method and apparatus for internally caching the minimum and maximum XY pixel address values in a graphics subsystem
US6072508A (en) Method and apparatus for shortening display list instructions
US6762765B2 (en) Bandwidth reduction for zone rendering via split vertex buffers
US5966142A (en) Optimized FIFO memory
US6141020A (en) Opposing directional fill calculators in a graphics processor
US5999200A (en) Method and apparatus for automatically controlling the destination of a graphics command in a register file
US6028613A (en) Method and apparatus for programming a graphics subsystem register set
JP4846097B2 (en) Method and apparatus for register set of graphics subsystem
US20060092163A1 (en) Rendering images on a video graphics adapter
JPH087715B2 (en) Data processing device and access control method
US6061073A (en) Tracking of graphics polygon data from different clock domains in a graphics processor
US20030169261A1 (en) Stalling pipelines in large designs
US6831645B2 (en) System and method for performing font operations when background color is transparent
WO1999059076A1 (en) Method and apparatus for shortening display list instructions

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050509

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050509

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20070706

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070717

AA92 Notification of invalidation

Free format text: JAPANESE INTERMEDIATE CODE: A971092

Effective date: 20070904

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070925

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071012

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080422

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080714

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090310

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20090511

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090605

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090714

A912 Removal of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20090814

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110712

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110715

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110804

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110809

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111012

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141021

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term