JPH10240700A - グラフィックス並列処理装置 - Google Patents

グラフィックス並列処理装置

Info

Publication number
JPH10240700A
JPH10240700A JP9045273A JP4527397A JPH10240700A JP H10240700 A JPH10240700 A JP H10240700A JP 9045273 A JP9045273 A JP 9045273A JP 4527397 A JP4527397 A JP 4527397A JP H10240700 A JPH10240700 A JP H10240700A
Authority
JP
Japan
Prior art keywords
command
processor
host computer
graphics
distribution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP9045273A
Other languages
English (en)
Inventor
Yumiko Sugita
由美子 杉田
Shinji Kimura
信二 木村
Masahiro Goto
正宏 後藤
Hideki Fujii
秀樹 藤井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP9045273A priority Critical patent/JPH10240700A/ja
Publication of JPH10240700A publication Critical patent/JPH10240700A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Digital Computer Display Output (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Multi Processors (AREA)
  • Image Processing (AREA)

Abstract

(57)【要約】 【課題】本発明は、マルチプロセッサに3次元グラフィ
ックスのコマンド列を分配する制御において、専用ハー
ドウェアで行なう負荷分散制御の軽量化と、効率良い負
荷分散処理を実現するものである。 【解決手段】3次元グラフィックス描画プログラムをマ
ルチプロセッサ構成の描画処理装置で処理する際の負荷
分散処理を、2段階に分けてホストコンピュータと描画
処理装置とで行なう。ホストコンピュータで分散方法情
報を選定し、描画処理装置に転送する描画コマンドに付
加する。描画処理装置では低価格なハードウェアを用い
て分配情報を元に最適なプロセッサを選択し分配を行な
う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、並列実行可能な複
数のプロセッサを備えた並列描画処理装置に係わり、特
に高品位なグラフィックスをリアルタイムに表示するグ
ラフィックスシステムに関する。
【0002】
【従来の技術】コンピュータグラフィックスの応用分野
がビジュアルシミュレーションやバーチャルリアリテ
ィ、ゲームなどの分野に広がるにつれて、表示性能に対
する高速化の要求が高まってきている。特に3次元グラ
フィックスの分野にこの傾向が著しい。
【0003】従来、このような高速化の要求に答える技
術としては、座標変換やクリッピングといった描画処理
を専用プロセッサで処理することで解決してきた。特に
高速性能が要求される分野では、特開平6−27460
8「マルチプロセッサ描画処理装置」に記載されている
ように、描画処理のための専用ハードウェアを複数のプ
ロセッサで構成し、CPUから送られてきた3次元描画
コマンドは受け取ったコマンドプロセッサが描画演算プ
ロセッサのFIFOバッファに分配し、個々の描画演算
プロセッサで並列に処理する方式が知られている。ま
た、Computer Graphics(SIGGR
APH‘93 Conference Proceed
ings),Vol.27,pp109〜116や日経
CG,No.73,pp143〜153でも描画処理を
並列に行なうグラフィックスシステムが記載されてい
る。
【0004】3次元グラフィックスには高品質化も要求
されており、その代表的な手法の1つになめらかで模様
の付いた物体の描画がある。この物体の描画に良く使わ
れる3次元グラフィックスの描画コマンドの1つとし
て、OpenGL Reference Manua
l、アジソン・ウェスレイ出版、P301に記載されて
いるような、頂点座標の配列へのポインタを引数で指定
するコマンドがある。前記コマンドは描く物体を構成す
る3次元面の頂点データ(3次元座標、法線ベクトル)
の配列を引数とした可変長であり、描く対象図形の表面
を滑らかに見せる場合には、細かい面に分割して多くの
頂点を引数として定義する。また、各頂点には色、法
線、テクスチャの情報が付けられ、高品質な表示を実現
できることも知られている。
【0005】
【発明が解決しようとする課題】近年、3次元グラフィ
ックスシステムに要求されてきているものに低価格化が
ある。PCの低価格化と高性能化に伴い、日経CG,N
o.114,pp124〜137に紹介されているよう
に、すでにプロ指向の3次元グラフィックスアプリケー
ションがPCへと移行し始めている。この動きに伴い、
描画処理装置もPC対応に低価格化が望まれている。
【0006】3次元グラフィックスの1つのシーンは、
複数の描画属性指定コマンドと描画要求コマンドの複雑
な組み合わせで構成されている。極端にデータ長の違う
コマンドが混在し、描画順序の保証などの制限もある。
マルチプロセッサ構成の描画処理装置を備えた計算機に
おいて、描画処理装置の性能を十分に引き出しリアルタ
イム表示するためには、これら3次元グラフィックスプ
ログラムから発行されるコマンドを、コマンドの内容や
組み合わせを解析し、描画順序などの3次元グラフィッ
クスの特性を維持しながら、負荷を均一にして分配制御
することが必要となる。
【0007】従来の方式の中にも専用ハードウェアを用
いて分配処理は行われているものがあるが、要求される
3次元グラフィックスが高品質になるほどコマンド解析
や分配制御は複数になり、その制御を実現するハードウ
ェアが高価になるという問題が生じている。さらにデー
タ量の多いコマンドの場合は、配送による通信オーバヘ
ッドや描画順序性を維持するために生じる待ち時間の問
題もある。描画順序を守るために、あるコマンドの演算
処理が終了しレンダリング処理に渡るまで、前記コマン
ドの後に発行されたコマンドは、他のプロセッサで演算
処理が終了していてもレンダリング処理ができない。
【0008】低価格化の方法として、専用のハードウェ
アは用いず、マルチプロセッサのうちの1つに負荷分散
制御を行なわせる方法があるが、負荷分散制御を行なう
プロセッサは制御に時間を取られ、3次元描画処理があ
まり行なえず、プロセッサ数にあうスケーラブルな性能
は出ないという問題が生じる。
【0009】本発明の目的は、マルチプロセッサに3次
元グラフィックスのコマンド列を分配する制御におい
て、専用ハードウェアで行なう負荷分散制御の軽量化し
ながら、効率良い負荷分散処理を実現する方法を提供す
ることである。
【0010】
【課題を解決するための手段】前述の課題を解決する手
段として、ホストコンピュータからコマンドを描画処理
装置に転送し、描画処理装置の複数の描画プロセッサで
描画演算処理を行ないレンダリングハードウェアを介し
てディスプレイに表示する3次元グラフィックス処理装
置において、ホストコンピュータにおいて、3次元グラ
フィックス描画プログラムから3次元グラフィックスコ
マンドを受け取り、3次元グラフィックスコマンドの性
質を基にに適した分配方法を決定し、決定した分配方法
情報をコマンドに付加する手段と、分配方法情報を付加
したコマンドを描画処理装置にバスを介し転送を行なう
手段とを有し、描画処理装置の制御ハードウェアにおい
て、受信したコマンドの分配情報を識別し、プロセッサ
の稼動状況と指定分配方法から最適なプロセッサを選択
し、描画プロセッサの入力FIFOに分配する手段を有
する。各描画演算プロセッサは入力FIFOからコマン
ドを読み込んで演算処理を行なう。
【0011】さらに、描画演算プロセッサの入力FIF
Oが受信可能なコマンド数を取得する手段を有し、前述
のホストコンピュータで分配方法を決定する時に、数の
多い頂点データを引数に持つコマンドの頂点データを分
割し、複数のコマンドに分割生成し、前記描画演算プロ
セッサの入力FIFOが受信可能なコマンド数と前記コ
マンドの分割方法とを基にコマンドの分配方法を決定
し、分配方法情報をコマンドに付加する手段を有する。
【0012】
【発明の実施の形態】図1は本発明を適用した3次元グ
ラフィックス並列処理装置の構成図である。ホストコン
ピュータ100は少なくとも入力装置110との接続部
101と、プログラムの実行や制御を行なうCPU10
2、メモリ103、接続装置110とCPU102とを
つなぐバス106、CPU102とメモリ103とをつ
なぐバス107、描画装置にコマンドを送るためのバス
108とバス接続部104がある。描画処理装置120
は少なくともホストコンピュータとのバス接続部12
1、コマンド入力FIFO131とバスアービタ132
と負荷分散制御部133を持つ制御ハードウェア13
0、入力FIFO141、151と出力FIFO14
2、152をそれぞれ持つ描画演算インターフェース部
140、150、描画インタフェース部の入力FIFO
141とバスアービタ132とを接続するバス123、
124、分配制御プロセッサ130から描画インタフェ
ース部の入力FIFO141、151にコマンドを転送
するバス122、入力FIFO141、151からコマ
ンドを読み取り演算処理する描画演算プロセッサ16
0、170、演算処理後のコマンドを次の処理であるレ
ンダリングハードウェア180に転送するための出力F
IFO142、152、出力FIFO142、152か
らレンダリングハードウェア180にコマンドを転送す
るバス127、レンダリングハードウェアからディスプ
レイ190に画像を送るバス128がある。ホストコン
ピュータ100と描画処理装置120とはバス105で
つながれている。本実施例では描画演算プロセッサを2
個で説明するが、本発明は2個以上の構成すべてに適応
可能である。
【0013】図2は図1の装置で実行される処理の概要
図である。ホストコンピュータ100では処理200が
動作する。処理入力装置110から3次元グラフィック
ス描画プログラムの実行を受け付け、メモリ103にあ
る情報を元に3次元グラフィックス描画プログラム21
0をCPU102で実行する。CPU102では他にラ
イブラリ220、OS230、OSの一部であり描画コ
マンドとのインタフェースを制御するドライバ231が
動作する。3次元グラフィックス描画プログラム210
から発行されるコマンドはライブラリ220に渡る。ラ
イブラリでは負荷分散処理I221を実行し、コマンド
構成の解析を行ない、コマンドの種類が属性であるか、
描画制御であるか、描画要求であるかを識別し、識別し
た種類に最適な描画装置のマルチプロセッサへの分配方
法を決定して、コマンドに情報として付加する。コマン
ドと前記決定した分配方法情報を用い1つのハードウェ
アコマンド240を生成し、ドライバ231を介して描
画処理装置120に転送する。コマンド解析時に、数の
多い頂点列データを引数に持つコマンドを検出した場合
には、描画演算プロセッサの入力FIFOが受信可能な
コマンド数を取得するインタフェースを用いコマンド数
を取得して記憶し、頂点データを分割して複数のコマン
ドを生成する。前述手段で生成した分割コマンドに対
し、前記記憶したコマンド数を元に、タイミングにあわ
せて異なる分配方法を選択する。また、描画属性コマン
ドのうち頂点データに定義される描画属性についてはコ
マンド発行履歴の状態遷移を管理し、属性をキャッシュ
バッファに保存し、前記属性を用いる頂点データを引数
とした描画コマンドを識別した時に前記描画コマンドに
付加して転送する。ホストコンピュータでの処理200
は、描画処理装置にコマンドを転送すると、転送したコ
マンドに対する処理結果を待たずに次のコマンド処理を
開始する。
【0014】ホストコンピュータ100のドライバ23
1からバス105を介して転送したハードウェアコマン
ド240は、制御ハードウェア130のFIFO131
で受信する。描画演算プロセッサへの負荷分散制御部2
60の負荷分散処理II261は、FIFO131から
コマンドを読み出して解析し、分配方法を識別する。ま
た、バスアービタ132を用いて管理している描画プロ
セッサの入力FIFO141、151の空き状態情報を
参照し、分配方法に合う空いているFIFOにコマンド
を転送する。両方のFIFOが空いていて、1つの描画
演算プロセッサにだけ送る分配制御であれば、ラウンド
ロビンアルゴリズムに従っていずれか一方の描画演算プ
ロセッサに転送する。また、両方のFIFOが空き余裕
状態にない場合には、いずれかが空き余裕状態になるの
を待って転送を行なう。コマンドが両方の入力FIFO
に同時に転送する必要がある場合には、両方のFIFO
が空き余裕状態であることを確認して同時に転送する。
負荷分散処理II261では、1つ前のコマンドを転送
した描画演算プロセッサ識別子情報262をレジスタに
格納し、次の分配先描画演算プロセッサを決定する際に
参照する。描画演算プロセッサは入力FIFO141、
151からコマンドを読み出し、描画演算処理270、
271において、座標変換処理、クリッピングなどのジ
オメトリ演算処理を行なう。描画演算処理270、27
1の演算結果は描画コマンドとして対応する出力FIF
O142、152からバス127を介して読み出し、次
の処理であるレンダリングハードウェア180のレンダ
リング処理部270に渡す。コマンドの描画順序は、描
画要求コマンドに順序情報を付加することで維持する。
レンダリング処理部270で生成された画像はディスプ
レイ190へバス128を介して転送し画面に表示す
る。
【0015】本説明で触れた前期コマンドの処理におけ
るコマンドの種類と分配方法については、図3〜図6で
説明する。ハードウェアコマンド240の構成について
は、図7で説明する。数の多い頂点データ列を引数とし
た描画コマンドの分割方法については、図8で説明す
る。
【0016】図3〜6はコマンドの種類と分配方法を示
した図である。図1に示した本実施例は描画演算プロセ
ッサは2個であるが、図3〜6では他の転送方法と区別
するため、4個の描画演算プロセッサでの例を示す。
【0017】図3は描画属性コマンドの分配方法である
ブロードキャスト分配を示したものである。描画要求コ
マンドには3次元描画要求コマンド、2次元描画要求コ
マンド、イメージ描画要求コマンドなどがあり、一度定
義した描画属性は、何度も異なる描画要求コマンドに使
われることが多い。従っていずれの描画演算プロセッサ
でも描画要求コマンドを処理できる様に、描画属性はす
べての描画演算プロセッサにブロードキャスト分配す
る。ブロードキャスト分配を情報として付加したコマン
ド301は、描画処理装置の負荷分散制御部130の負
荷分散処理II261により描画演算プロセッサ16
0、170、302、303に転送する。
【0018】図4は前のコマンドを転送した描画演算プ
ロセッサとは別の描画演算プロセッサにコマンドを分配
するための、コマンドスイッチ転送方法である。コマン
ドスイッチ分配を情報として付加したコマンド400
は、前のコマンドが描画演算プロセッサ160で処理し
た場合、描画処理装置の負荷分散制御部130の負荷分
散処理II261において、記憶している1つ前のコマ
ンドを転送した描画演算プロセッサ識別情報262を参
照し、前記識別子の描画演算プロセッサとは異なる描画
演算プロセッサのうちコマンドを受け取ることができる
描画演算プロセッサ、例えば描画演算プロセッサ170
に転送する。コマンドスイッチ分配は、主に数の少ない
データを引数に持つ2次元・3次元描画要求コマンドの分
配に使う。
【0019】図5は前のコマンドを転送した描画演算プ
ロセッサと同じ描画演算プロセッサにコマンドを分配す
る、コマンドコンティニュ転送方法である。コマンドコ
ンティニュ分配を情報として付加したコマンド500
は、前のコマンドが描画演算プロセッサ160で処理し
た場合、描画処理装置の負荷分散制御部130の負荷分
散処理II261において、記憶している1つ前のコマ
ンドを転送した描画演算プロセッサ識別情報262を参
照し、前記識別子の描画演算プロセッサと同じ描画演算
プロセッサ160に転送する。コマンドコンティニュ分
配は主にイメージ処理コマンドの転送に使う。
【0020】図6は2つの描画演算プロセッサに同じコ
マンドを分配する場合に使用するオーバラップ転送方法
である。オーバラップ分配を情報として付加したコマン
ド600は前のコマンドが描画演算プロセッサ160で
処理した場合、描画処理装置の負荷分散制御部130の
負荷分散処理II261において、記憶している1つ前
のコマンドを転送した描画演算プロセッサ識別情報26
2を参照し、前記識別子の描画演算プロセッサと同じ描
画演算プロセッサ160と、描画演算プロセッサ160
以外でコマンドを受け取ることができる描画演算プロセ
ッサ、例えば描画演算プロセッサ170に転送する。オ
ーバラップ分配はコマンドスイッチ転送、コマンドコン
ティニュ転送とともに、数の多い頂点データ列を引数と
して持つコマンドを分割して転送する場合に、主に使用
する。詳細は図8で説明する。
【0021】図7はホストコンピュータ100から描画
処理装置120へ転送するハードウェアコマンドの構成
図である。ハードウェアコマンド700は、本実施例で
は64ビットで構成する。ハードウェアコマンド700
が持つ情報には、本コマンドが描画コマンドであるか否
かを示す情報711、本コマンドがコマンドコンティニ
ュで分配されるか否かを示す情報712、本コマンドが
ブロードキャストで分配されるか否かを示す情報71
3、本コマンドがオーバラップで分配されるか否かを示
す情報714、本コマンドがコマンドスイッチで分配さ
れるか否かを示す情報715、データ長を示す情報72
0、処理順序を示す情報730、転送先描画演算プロセ
ッサの識別情報731、コマンド情報740、リザーブ
エリア716、732がある。負荷分散制御部130の
負荷分散処理II261では、描画コマンドかを示す情
報711が1であれば、本コマンドを描画コマンドとし
て識別し処理を開始する。分配方法情報712〜715
は必ずいずれか1つが1であり、1である分配方法に従
って対象コマンドの分配処理を行なう。転送先描画演算
プロセッサ情報731は負荷分散処理II261におい
て描画演算プロセッサの識別情報を格納する。オーバラ
ップ分配の時は1つ前のコマンドを転送した描画演算プ
ロセッサ識別子を、他の分配では対象コマンドを転送す
る描画演算プロセッサ識別子を設定する。処理順序情報
730は負荷分散処理II261において設定されるシ
ーケンス情報である。リザーブエリア716、730は
将来の拡張として使用する。
【0022】図8は数の多い頂点列データを引数に持つ
コマンドの分割転送の方法を示したものである。3次元
の球や曲面を描く場合には、描画要求コマンドに面を構
成する頂点データ列が引数として定義されている。頂点
データ列800を複数のデータ列に分割する場合、例え
ば頂点データ801と頂点データ802で単純に分割す
ると面810、811を描くことができなくなる。面8
10と面811を描くためにまず、任意数の頂点データ
列820を引数としたコマンド830を任意の1つの描
画演算プロセッサ160へ転送(コマンドスイッチ転
送)する。本実施例では12頂点としている。負荷分散
分配制御部130では前のコマンドを送った描画演算プ
ロセッサの識別情報を記憶しておき、次の12頂点デー
タ列821を引数としたコマンド831も同じ描画演算
プロセッサ160へ転送(コマンドコンティニュ転送)
する。同じ描画演算プロセッサへの連続転送は、描画演
算プロセッサの入力FIFOが受け取ることができるコ
マンドの数を考慮した数だけ行なう。前記入力FIFO
の受信可能なコマンド数は問い合わせのインタフェース
を設け、前記インタフェースを用いて3次元描画処理実
行開始時に取得しメモリに記憶しておく。本実施例では
入力FIFOが受け取ることができるコマンドの数より
1つ少ない数までのコマンド832を同じプロセッサ1
60へ連続転送する。さらに頂点データが残っている場
合には、次の2頂点データ列801、802を重複する
頂点データ列とし、2頂点データ列823を引数とした
コマンド833を、1つ前のコマンド832を転送した
プロセッサ160と、もう1つの任意プロセッサ170
の2つのプロセッサへ転送(オーバラップ転送)する。
この時負荷分散処理II261では、2つの描画演算プ
ロセッサに送るコマンドに1つ前のコマンドを転送した
描画演算プロセッサの識別子情報を格納する。受け取っ
た描画演算プロセッサは、前記識別子情報が同じ識別子
ならば連続した頂点列の描画が終了することを識別で
き、別の識別子ならば、以後連続した頂点列の描画が来
る事が識別できる。負荷分散制御部130では、コマン
ド833を転送した2つのプロセッサ160、170の
うち2つ前のコマンド832を転送していない描画演算
プロセッサ170を記憶しておき、次の12頂点データ
列824を引数としたコマンド834は、記憶した描画
演算プロセッサ170へ転送(コマンドスイッチ転送)
する。前述のコマンドスイッチ転送、コマンドコンティ
ニュ転送、オーバラップ転送を繰り返し、数の多い頂点
データを引数に持つコマンドの分割転送を実現する。
【0023】次に、コマンドの処理に沿って、負荷分散
処理について具体的に説明する。
【0024】図9はホストコンピュータ側のライブラリ
での負荷分散処理の流れ図である。ライブラリでの負荷
分散処理は、3次元グラフィックス描画プログラムから
コマンド(901)を受け取り、種類を識別する(90
2)。コマンドの種類が描画属性ならば、属性が頂点デ
ータに有効な属性かを判断する(903)。頂点データ
に有効な属性であれば、バッファに格納する(90
4)。頂点データに関係ない属性であれば、分配方法と
してブロードキャストを選択し(905)、分配方法情
報とコマンド情報からハードウェアコマンドを作成し
(906)、ドライバに転送し(907)、次のコマン
ドの処理に移る。コマンドの種類が描画要求の場合は、
描画要求が有効であるかを識別する(908)。識別方
法として、後述する描画の開始/終了の制御の場合に設
定する描画要求フラグを参照する。描画要求フラグが1
でなければ次のコマンドの処理に移る。1であれば描画
内容を識別する(909)。3次元描画要求のうち頂点
指定のコマンドであれば、頂点分割の処理A(910)
を行なう。この処理の説明は図10を用いて後述する。
他の3次元描画と2次元描画の要求の場合は、分配方法
としてコマンドスイッチを選択し(911)、分配方法
情報とコマンド情報からハードウェアコマンドを作成し
(912)、ドライバに転送し(913)、次のコマン
ドの処理に移る。描画内容がイメージの場合には、最初
の転送では分配方法としてコマンドスイッチを選択し
(914)、任意バイト数(図では24バイトと表記)
のデータを引数とするハードウェアコマンドを生成し
(915)、ドライバに転送する(916)。次の分配
方法はコマンドコンティニュを選択し(917)、全体
のデータ数から転送したデータ数を引いた値が24バイ
トよりも大きい間、前の転送と同じく24バイトのデー
タを引数とするハードウェアコマンドを生成し(91
5)、ドライバに転送する(916)という一連の処理
を繰り返す。データ数の残りが24バイトよりも小さい
時には、残りのデータを引数とするハードウェアコマン
ドを生成し(919)、ドライバに転送する(92
0)。コマンドの種類が描画の開始/終了の制御の場合
(921)、描画開始ならば描画要求フラグを1にし描
画終了ならば0に設定し(922)、分配方法としてブ
ロードキャストを選択し(923)、分配方法情報とコ
マンド情報からハードウェアコマンドを作成し(92
4)、ドライバに転送し(925)、次のコマンドの処
理に移る。この描画要求フラグは初期値は0である。前
述以外の処理の場合は対応する処理を行なう(92
6)。
【0025】図10は、頂点指定の描画コマンドの場合
の頂点分割の処理の流れである。引数として持つ頂点デ
ータの数を識別し(1001)、12個以上であるなら
ば分割処理に用いる終了フラグ、カウンタ、スイッチフ
ラグ、頂点数、分配方法の情報の初期化を行なう(10
02)。頂点数は12、分配方法は初回の転送に適した
コマンドスイッチとする。次に属性を格納しているバア
ッファに対象属性があるかを識別し(1003)、あれ
ばコマンドに付加する(1004)。初期値の分配方法
と頂点数分のデータを持つコマンドからハードウェアコ
マンドを生成し(1005)、ドライバに転送する(1
006)。次に終了フラグが1かを識別し(100
7)、0であればカウンタをインクリメントする(10
08)。残りの頂点数が12よりも大きいかを識別し
(1009)、大きければ次に、転送先であるプロセッ
サの入力FIFOが受信可能なコマンド数から1を引い
た値がカウンタの値よりも大きいかを識別する(101
0)。大きい場合には、スイッチフラグが1かを識別し
(1011)、0であれば分配方法としてコマンドコン
ティニュを選択し(1012)、転送する頂点数を12
に設定して(1013)、ハードウェアコマンド生成と
転送の処理(1003〜1006)を行なう。転送先で
あるプロセッサの入力FIFOが受信可能なコマンド数
から1を引いた値がカウンタの値よりも小さい場合に
は、分配方法としてオーバラップを選択する(101
4)。頂点数を2に設定し(1015)、カウンタを0
に、スイッチフラグを1に設定し(1016)、ハード
ウェアコマンド生成と転送の処理(1003〜100
6)を行なう。オーバラップを指定した直後はスイッチ
フラグは1なので、残りの頂点データが12個以上あれ
ば、分配方法はコマンドスイッチを選択し、スイッチフ
ラグを0にする(1017)。頂点数が12個以下の場
合も同様で、スイッチフラグが1か、すなわちオーバラ
ップの直後かを識別し(1018)、0ならば分配方法
はコマンドコンティニュを選択し(1019)、1なら
ば分配方法はコマンドスイッチを選択する(102
0)。頂点数に残りのデータ数を設定し(1021)、
終了フラグに1を設定し(1022)、ハードウェアコ
マンド生成と転送の処理(1003〜1006)を行な
う。その後、終了フラグの比較(1007)により、処
理を終了する。頂点数が初めから12個以下の場合に
も、前記残りのデータ数が12個以下の場合と同じ処理
(1018〜1022、1003〜1007)を行なっ
て終了する。
【0026】図11は、制御ハードウェアでの負荷分散
処理の流れである。ホストコンピュータから転送したコ
マンドを入力FIFOから読み込む(1101)。読み
込んだコマンドが描画コマンドかを識別し(110
2)、描画コマンドでなければ対応する処理を行なって
(1103)、再度コマンドを読みに行く。コマンドが
描画コマンドであれば、コマンドから分配情報を検出す
る(1104)。分配方法がブロードキャストかを識別
し(1105)、ブロードキャストであればすべての描
画演算プロセッサの入力FIFOが空き状態になるまで
待って転送する(1106)。分配方法がブロードキャ
ストでない場合にはまず、1つ前のコマンドをコマンド
を転送した描画演算プロセッサの識別子情報を得る(1
107)。描画順序を維持するための情報をコマンドに
付加する(1108)。分配方法を判定し(110
9)、コマンドスイッチならば空き入力FIFOを持つ
描画演算プロセッサを検出し(1110)、1つ前のコ
マンドを転送したものと異なる描画演算プロセッサを転
送先描画演算プロセッサとして選択し(1111)、転
送先描画演算プロセッサ識別子をコマンドに設定し(1
112)、コマンドを転送する(1113)。分配方法
がコマンドコンティニュならば、前のと同じ描画演算プ
ロセッサの入力FIFOが空き状態になるのを待って
(1114)、転送先描画演算プロセッサ識別子をコマ
ンドに設定し(1112)、コマンドを転送する(11
13)。分配方法がオーバラップであるならば、空き入
力FIFOを持つ描画演算プロセッサを検出し(111
5)、1つ前のコマンドを転送した描画演算プロセッサ
と、他にもう1つ描画演算プロセッサを転送先に選択し
(1116)、いずれの描画演算プロセッサに送るコマ
ンドにも転送先として1つ前のコマンドを転送したプロ
セッサの識別子を設定し(1117)、2つの描画演算
プロセッサに転送する(1118)。
【0027】
【発明の効果】本発明である分散方法情報をコマンドに
付加する方式を用いれば、ホストコンピュータと描画処
理装置に分けた2段階の負荷分散が可能となり、負荷分
散の2段階化により、描画処理装置のハードウェアで行
なう分配制御の軽量化が図れ、低価格のハードウェアで
実現できる。
【0028】さらに、2段階に分けた負荷分散処理を並
列に動作することにより、負荷分散制御のオーバヘッド
を削減できる。
【0029】また数の多い頂点データ持つコマンドは、
本発明である分割とFIFOで受信可能なコマンド数を
考慮しタイミングに適した分配方法を採ることにより、
プロセッサの稼働率を向上することができる。
【図面の簡単な説明】
【図1】本特許を適用したシステム構成図
【図2】本特許を適用したシステムの処理概要図
【図3】ブロードキャスト分配方式
【図4】コマンドスィッチ分配方式
【図5】コマンドコンティニュ分配方式
【図6】オーバラップ分配方式
【図7】ハードウェアコマンド構成
【図8】コマンド分割方式
【図9】ライブラリでの負荷分散処理の流れ図1
【図10】ライブラリでの負荷分散処理の流れ図2
【図11】制御ハードウェアの負荷分散処理の流れ図
【符号の説明】
100:ホストコンピュータ、102:CPU,10
5:接続バス、110:入力装置、120:描画処理装
置、130:制御ハードウェア、140,150:イン
タフェース部、160,170:描画演算プロセッサ、
180:レンダリングハードウェア、190:ディスプ
レイ、221:ホストコンピュータ側の負荷分散処理、
261:描画処理装置側の負荷分散処理、240:ハー
ドウェアコマンド
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 FI G09G 5/36 530 G06F 15/72 450A (72)発明者 藤井 秀樹 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】ホストコンピュータとホストコンピュータ
    にバス接続したマルチプロセッサ構成の描画処理装置と
    で構成し、グラフィックス描画処理を行なうグラフィッ
    クス並列処理装置であって、ホストコンピュータ側に、
    グラフィックスコマンドの性質に適した分配方法を選定
    する手段と、前記選定した分配方法に対応する転送先プ
    ロセッサの数と転送先プロセッサの切替えの有無の情報
    を含む情報をコマンドに付加して描画処理装置側の制御
    ハードウェアに転送する手段とを設け、描画処理装置の
    制御ハードウェア側に、前記コマンドに付加した分配方
    法情報に従って処理可能なプロセッサを選択し分配する
    手段を設け、前述の2段階の負荷分散手段を並列実行す
    ることを特徴とするグラフィックス並列処理装置。
  2. 【請求項2】ホストコンピュータとホストコンピュータ
    にバス接続したマルチプロセッサ構成の描画処理装置と
    で構成し、グラフィックス描画処理を行なう請求項1記
    載のグラフィックス並列処理装置にあって、頂点列デー
    タを引数に持つ描画コマンドを複数のコマンドに分割す
    る手段と、各描画プロセッサが持つ入力用の先入れ先出
    しバッファ(以後FIFOと称する)が受信可能な最大
    コマンド量を取得する手段とを有し、前記分割した複数
    のコマンドの分配において、前記入力FIFOの受信可
    能なコマンド量を用いて、任意のプロセッサへの切替え
    のタイミングをホストコンピュータ側からコマンドに付
    加して指示することを特徴とするグラフィックス並列処
    理装置。
  3. 【請求項3】ホストコンピュータとホストコンピュータ
    にバス接続したマルチプロセッサ構成の描画処理装置と
    で構成し、グラフィックス描画処理の負荷分散におい
    て、各描画プロセッサが持つ入力FIFOの受信可能な
    コマンド量を用いて頂点列データを引数に持つ描画コマ
    ンドの分割と分配の制御を行なう請求項2のグラフィッ
    クス並列処理装置にあって、三角形の頂点列の組み合わ
    せで面を描画するコマンドの場合、該コマンドに対して
    請求項3の2つのプロセッサでの切替えを行なう際に、
    分割した2つのプロセッサに共通な2頂点のデータを1
    つのコマンドとして、前記2つのプロセッサへの分配を
    指定してホストコンピュータ側から描画処理装置へ転送
    することを特徴とするグラフィックス並列処理装置。
  4. 【請求項4】ホストコンピュータとホストコンピュータ
    にバス接続したマルチプロセッサ構成の描画処理装置と
    で構成し、グラフィックス描画処理を行なう請求項1記
    載のグラフィックス並列処理装置にあって、描画処理装
    置側の制御ハードウェアにおいて、コマンドに格納され
    ている分配方法を識別する手段と、1つ前のコマンドを
    転送したプロセッサ情報を格納する手段と、現在転送可
    能なプロセッサ情報を識別する手段とを有し、前記識別
    手段で識別した分配方法と前記記憶した1つ前の転送プ
    ロセッサ情報と前記識別手段で識別した転送可能なプロ
    セッサ情報とを用いて最適な転送先プロセッサを選択す
    ることを特徴とするグラフィックス並列処理装置。
JP9045273A 1997-02-28 1997-02-28 グラフィックス並列処理装置 Pending JPH10240700A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9045273A JPH10240700A (ja) 1997-02-28 1997-02-28 グラフィックス並列処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9045273A JPH10240700A (ja) 1997-02-28 1997-02-28 グラフィックス並列処理装置

Publications (1)

Publication Number Publication Date
JPH10240700A true JPH10240700A (ja) 1998-09-11

Family

ID=12714715

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9045273A Pending JPH10240700A (ja) 1997-02-28 1997-02-28 グラフィックス並列処理装置

Country Status (1)

Country Link
JP (1) JPH10240700A (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002351850A (ja) * 2001-03-22 2002-12-06 Sony Computer Entertainment Inc プロセッサでのデータ処理方法及びデータ処理システム
JP2004005569A (ja) * 2002-05-16 2004-01-08 Hewlett Packard Co <Hp> データおよび命令の流れを少なくとも1つの機能ユニットに配向(direct)するシステムおよび方法
JP2006011639A (ja) * 2004-06-23 2006-01-12 Canon Inc グラフィックオブジェクト処理装置及びグラフィックオブジェクト処理方法
JP2007528062A (ja) * 2004-02-27 2007-10-04 エヌヴィディア コーポレイション Pciエクスプレスを用いたグラフィックデバイスのクラスタリング
JP2008052718A (ja) * 2006-07-18 2008-03-06 Nvidia Corp サブデバイスの状態情報を伝達するためのシステム、方法、コンピュータプログラム製品
JP2009224963A (ja) * 2008-03-14 2009-10-01 Ricoh Co Ltd 画像形成装置、データ転送システム、データ転送方法、プログラムおよび記録媒体
JP2010218130A (ja) * 2009-03-16 2010-09-30 Mitsubishi Electric Corp 描画制御装置
US8028284B2 (en) 2005-11-04 2011-09-27 Sony Computer Entertainment Inc. Data processing system and program for transferring data
CN108520489A (zh) * 2018-04-12 2018-09-11 长沙景美集成电路设计有限公司 Gpu中一种实现命令解析和顶点获取并行的装置和方法
KR20210118187A (ko) * 2019-09-28 2021-09-29 텐센트 아메리카 엘엘씨 태스크들 및 작업 흐름들의 상태 비저장 병렬 프로세싱 방법 및 장치

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002351850A (ja) * 2001-03-22 2002-12-06 Sony Computer Entertainment Inc プロセッサでのデータ処理方法及びデータ処理システム
JP2004005569A (ja) * 2002-05-16 2004-01-08 Hewlett Packard Co <Hp> データおよび命令の流れを少なくとも1つの機能ユニットに配向(direct)するシステムおよび方法
JP4755172B2 (ja) * 2004-02-27 2011-08-24 エヌヴィディア コーポレイション Pciエクスプレスを用いたグラフィックデバイスのクラスタリング
JP2007528062A (ja) * 2004-02-27 2007-10-04 エヌヴィディア コーポレイション Pciエクスプレスを用いたグラフィックデバイスのクラスタリング
JP2006011639A (ja) * 2004-06-23 2006-01-12 Canon Inc グラフィックオブジェクト処理装置及びグラフィックオブジェクト処理方法
JP4533019B2 (ja) * 2004-06-23 2010-08-25 キヤノン株式会社 グラフィックオブジェクト処理装置及びグラフィックオブジェクト処理方法
US8028284B2 (en) 2005-11-04 2011-09-27 Sony Computer Entertainment Inc. Data processing system and program for transferring data
JP2008052718A (ja) * 2006-07-18 2008-03-06 Nvidia Corp サブデバイスの状態情報を伝達するためのシステム、方法、コンピュータプログラム製品
US8126993B2 (en) 2006-07-18 2012-02-28 Nvidia Corporation System, method, and computer program product for communicating sub-device state information
JP2009224963A (ja) * 2008-03-14 2009-10-01 Ricoh Co Ltd 画像形成装置、データ転送システム、データ転送方法、プログラムおよび記録媒体
JP2010218130A (ja) * 2009-03-16 2010-09-30 Mitsubishi Electric Corp 描画制御装置
CN108520489A (zh) * 2018-04-12 2018-09-11 长沙景美集成电路设计有限公司 Gpu中一种实现命令解析和顶点获取并行的装置和方法
CN108520489B (zh) * 2018-04-12 2022-12-06 长沙景美集成电路设计有限公司 Gpu中一种实现命令解析和顶点获取并行的装置和方法
KR20210118187A (ko) * 2019-09-28 2021-09-29 텐센트 아메리카 엘엘씨 태스크들 및 작업 흐름들의 상태 비저장 병렬 프로세싱 방법 및 장치
CN113785279A (zh) * 2019-09-28 2021-12-10 腾讯美国有限责任公司 任务和工作流的无状态并行处理方法和装置
JP2022525215A (ja) * 2019-09-28 2022-05-11 テンセント・アメリカ・エルエルシー タスクおよびワークフローのステートレス並列処理のための方法、装置およびコンピュータプログラム
US11714654B2 (en) 2019-09-28 2023-08-01 Tencent America LLC Method and apparatus for stateless parallel processing of tasks and workflows
US11734016B2 (en) 2019-09-28 2023-08-22 Tencent America LLC Method and apparatus for stateless parallel processing of tasks and workflows

Similar Documents

Publication Publication Date Title
US9405586B2 (en) Method of dynamic load-balancing within a PC-based computing system employing a multiple GPU-based graphics pipeline architecture supporting multiple modes of GPU parallelization
US6317137B1 (en) Multi-threaded texture modulation for axis-aligned volume rendering
US5969726A (en) Caching and coherency control of multiple geometry accelerators in a computer graphics system
JP2770598B2 (ja) 図形表示方法およびその装置
US5821949A (en) Three-dimensional graphics accelerator with direct data channels for improved performance
US5940086A (en) System and method for dynamically allocating data among geometry accelerators in a computer graphics system
US5920326A (en) Caching and coherency control of multiple geometry accelerators in a computer graphics system
US5457775A (en) High performance triangle interpolator
US6417858B1 (en) Processor for geometry transformations and lighting calculations
EP0486239A2 (en) Rasterization processor for a computer graphics system
US9589310B2 (en) Methods to facilitate primitive batching
US10332310B2 (en) Distributed index fetch, primitive assembly, and primitive batching
EP0817008A2 (en) Three-dimensional graphics accelerator which implements multiple logical buses
EP0817117A2 (en) Command processor for a three-dimensional graphics accelerator which includes geometry decompression capabilities
US20030164832A1 (en) Graphical display system and method
KR19980702804A (ko) 영상 생성 및 조작을 위한 하드웨어 아키텍처
JPH0727571B2 (ja) ラスタ走査表示装置及び図形データ転送方法
JP2001243481A (ja) 画像生成装置
JPH10240700A (ja) グラフィックス並列処理装置
JP2004005569A (ja) データおよび命令の流れを少なくとも1つの機能ユニットに配向(direct)するシステムおよび方法
EP0486195A2 (en) Computer graphics system
JPH06214555A (ja) 画像処理装置
EP0486148A2 (en) Protection of registers in a data processing system
EP0486194A2 (en) Memory system
JP3468985B2 (ja) グラフィック描画装置、グラフィック描画方法