JPH05266201A - グラフィックス並列処理方法及びその装置 - Google Patents

グラフィックス並列処理方法及びその装置

Info

Publication number
JPH05266201A
JPH05266201A JP6216292A JP6216292A JPH05266201A JP H05266201 A JPH05266201 A JP H05266201A JP 6216292 A JP6216292 A JP 6216292A JP 6216292 A JP6216292 A JP 6216292A JP H05266201 A JPH05266201 A JP H05266201A
Authority
JP
Japan
Prior art keywords
processor
graphics
processing
command
rendering
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
JP6216292A
Other languages
English (en)
Inventor
Kazuyoshi Koga
和義 古賀
Katsunori Suzuki
克徳 鈴木
Akihiro Katsura
晃洋 桂
Yasushi Fukunaga
泰 福永
Toshiyuki Kuwana
利幸 桑名
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 JP6216292A priority Critical patent/JPH05266201A/ja
Publication of JPH05266201A publication Critical patent/JPH05266201A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Multi Processors (AREA)
  • Image Generation (AREA)

Abstract

(57)【要約】 【目的】 複数の汎用プロセッサで、グラフィックスジ
オメトリ処理を並列に行ない、ジオメトリ処理を行うプ
ロセッサの数に依存せず、負荷の分散を行う。 【構成】 グラフィックスコマンドを作成するアプリケ
ーション(CS)が動作するプロセッサ(CPU(C
S):CPU0〜3のいずれか)とグラフィックスのジ
オメトリ処理(GS)を行うプロセッサ(CPU(G
S):CPU0〜3のいずれか)間のデータ転送を、デ
ィスパッチテーブル8の格納データに基づいて行う。C
PU(CS)は、グラフィックスコマンドをディスパッ
チャテーブル8にセットする。処理するデータがなくな
ったCPU(GS)はディスパッチテーブルを参照する
ことで、次のグラフィックスコマンドを処理することが
可能になり、プロセッサの数に依存せず、負荷の分散が
図れる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はワークステーション等の
グラフィックスの描画処理のなかでとくに描画のための
幾何計算を処理するプロセッサを並列に動作させるグラ
フィックス並列処理装置に係り、特に、描画処理を高速
に行なうに好適なグラフィックス並列処理方法及びその
装置に関する。
【0002】
【従来の技術】従来のグラフィックス処理を高速に実現
する方式は、グラフィックス専用ハードウェアを用い、
パイプラインや並列処理方式を実現するものが多かっ
た。また汎用CPUで並列に行なうグラフィックス処理
方式に関しては、次のようなものがある。
【0003】第1の公知例として、The Titan Graphi
cs Supercomputer Architecture“IEEE COMPUTER S
eptember 1988”(ザ タイタン グラフィックス ス
ーパーコンピュータ アーキテクチャ “アイ イー
イー イー コンピュータセプテンバー 1988”)
にその詳細が記述されている。この従来例では、並列化
コンパイラでグラフィックス処理を行うプログラミング
を並列化し、複数のプロセッサで実現している。確か
に、スクリーン上の1画素を算出するのに多くの計算量
を必要とするようなリアリズムを追及するグラフィック
ス処理では有効である。しかし、より一般的なCADや
オフィス用のグラフィックス処理では十分な効果が得ら
れていない。なぜなら、こういった分野のグラフィック
ス処理では処理内容が比較的少なく、並列化コンパイラ
で並列度を向上させるほど計算量が多くなく、各プロセ
ス間のオーバヘッドが大きくなり、こういった分野の描
画アプリケーションには向いていないためである。
【0004】また、第2の公知例が、The Rendering
Architecture of the DN10000VS“Computer Graphi
cs, Vol24, Num4”(ザ レンダリング アーキテク
チャオブ ザ ディエヌ10000VS“コンピュータ
グラフィックス 24巻4号”)に記述されている。
この従来例では、描画コマンドをラウンドロビン方式に
よって1コマンド単位で複数の汎用CPUに分配し、て
その処理を行なっている。従って、各汎用CPUが処理
する順序が予め決められているので、その順序制御は簡
単であり、負荷の均一なグラフィックスコマンドが連続
するケースでは有効である。しかし、より一般的な各コ
マンドの負荷にばらつきがあるケースでは、負荷を分散
させる事が難しくなる。
【0005】
【発明が解決しようとする課題】上記従来技術は、並列
処理の順序制御が簡単に行える利点があるが、各描画コ
マンドの処理時間は一般的には不均一であり、一部のプ
ロセッサの負荷だけが重たくなり全体の性能が低下する
虞がある。特に、並列処理用オペレーティングシステム
上で動作させるケースにおいては、どのプロセッサがど
のプロセスを処理するかを、並列処理用オペレーティン
グシステムが管理するため、ジオメトリ処理を行うプロ
セッサ数は時間とともに変化する。こういったケース
で、描画コマンドを分配するプロセッサは、絶えずジオ
メトリ処理を行うプロセッサの数を把握しておくことが
必要になり、その制御は複雑になる傾向にある。
【0006】また、最近は汎用CPUの性能向上が著し
く、その計算能力にグラフィックス処理を行わせるとグ
ラフィックス性能の著しい向上が期待できる。しかし、
バスを介した転送を行う際にバスの速度が転送ネックに
なる傾向にある。
【0007】本発明の第1の目的は、ジオメトリ処理を
行うプロセッサの数に依存せず、負荷の分散が達成でき
るグラフィックス並列処理方法及びその装置を提供する
ことにある。
【0008】本発明の第2の目的は、汎用CPUとグラ
フィックスのレンダリング処理を行うI/O間とのデー
タ転送を高速にして、バランスのとれたグラフィックス
システムを提供することにある。
【0009】
【課題を解決するための手段】上記第1の目的は、グラ
フィックスコマンドを作成するアプリケーション(C
S)が動作するプロセッサ、またはプロセス(CPU
(CS))とグラフィックスのジオメトリ処理(GS)
を行うプロセッサ、またはプロセス(CPU(GS))
間のデータ転送を、ディスパッチテーブルを介して行う
構成にし、CPU(CS)はグラフィックスコマンドを
ディスパッチャテーブルにセットし、処理するデータが
なくなったCPU(GS)はディスパッチテーブルを参
照して、次のグラフィックスコマンドを処理し、ディス
パッチテーブルは、複数のプロセッサからのアクセスを
排他制御とすることで、達成される。
【0010】上記第2の目的は、汎用CPUとグラフィ
ックスのレンダリング処理を行うI/O(レンダリング
プロセッサ部、RP部と記す)間のデータ転送量を減ら
すために、RP部のレジスタのアドレスにデータを転送
する方式とし、さらに、データ転送を連続してまとめて
行うバースト転送を利用するためRPのメモリマップを
1つのコマンドに対して必ず連続にするようにマッピン
グし、このときRP部のレジスタを複数のアドレスにマ
ッピングし、RP部に、それらのアドレスをデコードし
て、本来のレジスタにセットするためのデコーダを設け
ることで、達成される。
【0011】
【作用】ディスパッチテーブルを参照し、CPU(C
S)はCPU(GS)の個数を意識せずグラフィックス
コマンドを次々に生成する。また、処理の終わったCP
U(GS)が次に処理すべきグラフィックスコマンドを
自発的に選び実行する。それによって、負荷の分散が可
能となり、汎用マルチオペレーティングシステム上で動
作しても全体的な性能向上が実現できる。
【0012】また、アドレスデコーダをRP部に設ける
ことにより、RPコマンドのデータ転送を連続したアド
レスで行うことが可能となるようにRP部のレジスタを
マップをする。それによって、バースト転送を利用で
き、高速にデータ転送ができる。またバースト転送にお
いては、転送するバイト量が固定である場合、RPコマ
ンドにおいては不要のデータを転送することが必要にな
る。こういったケースでも本デコーダによって不要デー
タと解釈することが可能となる。また、さほど高速性は
必要ないが多種のコマンドに対応するために、個々のR
Pレジスタに1つづつ設定することも可能となり、汎用
性に優れる。
【0013】
【実施例】以下、本発明の一実施例を図1〜図18を参
照して説明する。図1は、本発明の一実施例に係るグラ
フィックス並列処理装置のシステム構成図である。プロ
セッサバス12には、4つのCPU0〜3と、メモリコ
ントローラ&バスコントローラ5が接続されている。各
CPU0〜3にはキャッシュメモリ(図示しない)が設
けられている。これらのCPU0〜3は、並列処理用オ
ペレーティングシステムで動作し、シンメトリックな構
成になっている。メモリコントローラ&バスコントロー
ラ5は、プロサッセバス12とシステムバス13のコン
トロール、またメインメモリ7へのアクセスコントロー
ルを行う。ディスパッチテーブル8は、メインメモリ7
に設けられている。CPU0〜3は、グラフィックスコ
マンドを生成するアプリケーションが動作するCPU
(CS)と、ジオメトリ処理を行うCPU(GS)に区
分される。勿論、どのプロセッサをCPU(CS)とし
て動作させどのプロセッサをCPU(GS)として動作
させるかの特定はせず、プロセスに割り付けることも可
能である。各CPU間または各プロセス間のデータ競合
やコマンドの順序制御を、このディスパッチテーブル8
で実現する。
【0014】システムバス13には特に重要度の高いI
/Oが接続されており、ネットワークコントローラ、ハ
ードディスク、そしてグラフィックスのレンダリング部
(RP部)14がある。RP部14は、CPUからのデ
ータを受け取り、RP部全体を制御するレンダリングコ
ントローラ9と、レンダリング処理を実行してフレーム
メモリ11に書き込むレンダリングプロセッサ10と、
モニタの表示内容をビットマップ形式で保持するフレー
ムメモリ11からなる。
【0015】図2は、複数CPUの処理の時刻に伴う割
当の様子を模式的に示した例である。ここでは、プロセ
ス単位で並列用オペレーティングシステムがその処理を
スケジューリングするとしている。最初はグラフィック
スコマンドを生成するプロセス1がCPU0で動作し、
CPU1〜3で夫々ジオメトリ処理を行なうプロセス1
0,11,12が動作している。
【0016】次に、CPU0でグラフィックスコマンド
を生成する別のプロセス2が動作し、そのジオメトリ処
理を行なうプロセス20,21がCPU1,2で動作す
る。プロセス16はウインドウマネージャであり、ある
間隔でカーソル描画のプロセスが動作している。プロセ
ス3はグラフィックス処理を伴わない処理がCPU3で
動作している。次々に多種のプロセスが夫々のCPU0
〜3上で動作するが、複数のCPU0〜3では必ずしも
同期してプロセスが切り替わるわけではない。
【0017】グラフィックス処理の概略を図3に示す。
まず第1の段階でグラフィックスコマンドを作成する。
実際にはアプリケーションが動作し、グラフィックスラ
イブラリをコールすることで実現する。第2の段階は、
CPU(CS)とCPU(GS)間のインタフェースで
ある。コールされたグラフィックスライブラリの処理
は、上位ジオメトリ処理として、CPU(GS)に処理
を依頼するグラフィックスコマンドの場合には、ディス
パッチテーブル8にセットする。またCPU(GS)に
処理を依頼しないグラフィックスコマンドはCPU(C
S)で処理を行う。ここまでの処理段階(グラフィック
スコマンド生成段階+上位ジオメトリ処理段階)は、C
PU(CS)が行う。
【0018】グラフィックス処理の第3の段階では、C
PU(GS)がディスパッチテーブル8から次に処理す
るグラフィックスコマンドを読んで、グラフィックスの
幾何変換,クリッピング,輝度計算等の処理をおこな
い、レンダリング部へのRPコマンドに変換して、ディ
スパッチテーブル8にセットし、さらにディスパッチテ
ーブル8に従って、順序を守りながらRPコマンドをレ
ンダリング部に送付する。下位ジオメトリ処理段階は、
CPU(GS)が行う。
【0019】グラフィックス処理の第4の段階では、画
素を書き込むアドレスと書き込む画素データを1画素づ
つ計算してフレームメモリに書き込む。このレンダリン
グ処理段階はRP部14で行う。なお、並列処理を行う
時のグラフィックスコマンドのまとまりの単位をディス
パッチユニットと呼ぶが、本実施例では1つのグラフィ
ックスコマンドを1ディスパッチユニットとしている。
【0020】図4は、アプリケーションプログラムが使
用するグラフィックスコマンドの分類図である。図形の
描画を指示する描画コマンド、GSの状態を設定する状
態変更属性コマンド、RP部14の状態を指示するRP
制御属性コマンド、ある個別のアプリケーションではな
くモニタ画面を管理しているウインドウマネージャが発
行するカーソルコマンド等に分類される。
【0021】図5〜図9は、分類したグラフィックスコ
マンドの代表的なものについての処理手順を示すフロー
チャートである。図5はTrianglestripコ
マンドの処理フローを示している。上位ジオメトリ処理
では、ディスパッチテーブルに、グラフィックスコマン
ドをセットする。下位ジオメトリ処理では、まずディス
パッチャテーブルからグラフィックスコマンドをリード
する。そしてリードしたデータに対し、アプリケーショ
ンが定義する座標系からモニタの座標系に座標変換し、
各頂点の輝度計算、クリッピングエリアに対するクリッ
ピング(これらの処理の詳細は”ComputerGr
aphicsPrinciples&Practic
e”Foley他著AddisonWesley社に詳
しく述べられている。)、そしてRPコマンドを作成し
て、ディスパッチテーブル8に設定する。ここで、座標
変換するための座標変換マトリクス,輝度計算を行うた
めの視点位置,光源の種類またクリッピングするための
クリッピングエリアは、メインメモリ7内のジオメトリ
処理用コンテキストテーブルにその現在の値が1セット
だけ保持されている。
【0022】図6は、Polylineの処理フローを
示しており、図5の処理フローと同様の処理を行う。
【0023】図7は、状態変更属性コマンドの処理フロ
ーを示している。この処理は、上位ジオメトリ処理段階
で処理される。まず、ジオメトリ処理用コンテキストの
現在の値と比較する。同じであれば、処理をおわって、
次の処理を行う。現在の値と異なっていれば、下位ジオ
メトリ処理を行うすべてのCPU(GS)が入力待ちの
状態になるのを確認して、ジオメトリ処理用コンテキス
トテーブルにセットする。
【0024】図8は、RP制御属性コマンドの処理フロ
ーを示している。ここでもまず、現在の値と比較し、同
じであれば、処理を終わる。現在の値と異なっていれ
ば、下位ジオメトリ処理を行うすべてのCPU(GS)
が入力待ちの状態になるのを確認して、ジオメトリ処理
用コンテキストテーブルにセットする。さらにRPコマ
ンドを生成して、RPに転送する。
【0025】図9は、カーソルコマンドの処理フローを
示している。まずカーソルの位置がカーソル表示のイメ
ージデータを変更する位置か否かを判定し、変更の必要
がなければ、そのままRPコマンドをRP部14に送付
する。位置によりカーソルのイメージデータを変更する
必要があれば、RP部14にカーソルイメージデータを
転送し、そしてカーソルの位置をRPに転送する。一般
にカーソルコマンドはモニタ画面を管理するウインドウ
マネージャが発行し、各アプリケーションの発行する描
画コマンドとの順序性とは無関係にRPコマンドをRP
部14に転送する。これは図2に示す様に、ある間隔で
動作するプロセス16に相当する。
【0026】図10は、RPに送付するRPコマンドの
分類図である。RP部14の起動レジスタに直接セット
して起動を行う。RP部14は起動レジスタにセットさ
れたコマンドに従って、すでに設定されている関連レジ
スタを参照しながら描画を行う。その関連レジスタは、
描画する図形の基準点やその図形の大きさを指定する描
画関連レジスタ、そのコマンドの属性を指示し、またフ
レームメモリへの書き込み制御を指定する描画制御関連
レジスタ、描画エリアを指定する描画エリア関連レジス
タ、そしてRP部14の内部状態を反映する状態レジス
タがある。第5図に示したRPコマンド作成処理とは、
必要なRPレジスタに設定する値と、起動レジスタにコ
マンドを設定するデータ(オペコード)を作成すること
である。
【0027】図11(a)は、CPUからみたメモリマ
ップを示している。ディスパッチテーブルはユーザ空間
にあり、RPレジスタはI/O空間に定義されている。
図11(b)は、RPレジスタのマッピングの一部を示
している。例えば、アドレス“7F000000”にx
の値を、“7F000004”にyの値を、以下同様に
“7F000014”までその意味する値をストアし、
“7F000018”にTrianglestrip命
令を意味するオペコードをストアする。また、“7F0
00020”にxの値、“7F000024”にyの
値、そして“7F000028”にPolyline命
令を意味するオペコードをストアする。このようにRP
のレジスタに値を設定し、起動レジスタに設定すること
によりRPに起動をかけるのである。勿論、起動レジス
タにオペコードをストアするだけで、RPは、そのオペ
コードに関連するレジスタを参照して実行する。尚、図
12はRPのレジスタのマップである。
【0028】図13はディスパッチテーブル8の概略図
である。まず3種のテーブルポインタが、夫々ディスパ
ッチテーブルユニットを指示している。このディスパッ
チテーブルにアクセスするのは、CPU(CS)がグラ
フィックスコマンドを設定するとき、CPU(GS)が
グラフィックスコマンドを読み込むとき、CPU(G
S)がRPコマンドをRP部14に転送するときであ
り、夫々のケースで各テーブルポインタをアクセスす
る。そして各テーブルポインタの指示するユニットの状
態フラグをチェックして、実行可能であれば処理を行
う。各ユニットには、夫々そのユニットの状態を示す5
つのフラグ(ユニット状態フラグ801〜805と呼
ぶ)と、GSリードバッファ813と、GSライトバッ
ファ811の各ユニットに対するデータの所在する先頭
アドレスを保持するGSリードバッファポインタ806
と、GSライトバッファポインタ807がある。この1
つのユニットで管理する単位で並列処理を実行するので
ある。
【0029】このユニット状態フラグ801〜805は
複数のCPUからアクセスされるので、排他制御でアク
セスする構成とする。CSライトフラグ801はCPU
(CS)が書き込み中であることを示し、他のCPUは
この項目にはアクセスできない。CSレディフラグ80
2は、CPU(CS)の書き込みが終了しCPU(G
S)のアクセスを待っていることを示す。このとき、G
Sリードバッファポインタ806は有効であり、グラフ
ィックスコマンドがセットしてある位置を指示してい
る。GSリードフラグ803はCPU(GS)がグラフ
ィックス幾何変換を行いながらGSリードバッファ81
3を読み込み中であることを示し、他のCPUはこのユ
ニットにはアクセスできない。GSレディフラグ804
はCPU(GS)のグラフィックス幾何変換が終了し、
GSライトバッファ811にRPコマンドがセットして
してある状態を示す。このとき、GSライトバッファリ
ードポインタ807は有効であり、RPコマンドがセッ
トしている位置を示している。RSリードフラグ805
はCPU(GS)がGSライトバッファ811のデータ
をRP部14に転送していることを示している。
【0030】ところで、GSライトバッファ811は各
CPU(GS)の単位で独立にグラフィックス幾何処理
を行うため、各CPU(GS)単位でGSライトバッフ
ァポインタ812とGSライトバッファ811を保持す
る。このGSライトバッファポインタ812はCPU
(GS)がGSライトバッファ811に書き込むときの
先頭アドレスを指示している。
【0031】図5に示した上位ジオメトリ処理中の“デ
ィスパッチテーブルにセット”する手順の詳細を図14
に示す。
【0032】まず、CSライトテーブルポインタ810
の指示するユニットとCSライトテーブルポインタ81
0の指示する次のユニット状態フラグ801〜805の
2つを参照し、“00000”ならばCSライトテーブ
ルポインタ810の指示するユニット状態フラグを“1
0000”にする。これは他のCPUからもアクセスす
るので、排他制御でアクセスすることが必要である。
“00000”でなければ“11111”であるかを調
べ、“11111”であればユニットの最下段であるの
でCSライトテーブルポインタ810を最上段のユニッ
トを指示するようにかきかえる。そうして“0000
0”になるまでポーリングでチェックする。
【0033】そしてGSリードバッファポインタ806
の指示する領域からグラフィックスコマンドを設定す
る。そしてGSリードバッファ有効フラグ814をイン
クリメントする。次に、次のユニットのGSリードバッ
ファポインタ806に次のリードバッファの位置をセッ
トする。そしてユニット状態フラグ801〜805を
“10000”から“01000”にセットする。最後
にCSライトテーブルポインタ810を更新する。
【0034】ここで、GSリードバッファ813にグラ
フィックスコマンドを設定中にGSリードバッファ81
3の再下段を越えるケースが発生する虞がある。これを
避けるために、図16に示すようにGSリードバッファ
813を2面(第1GSリードバッファ8131と第2
GSリードバッファ8132)持つ構成にする。各バッ
ファにはGSリードバッファ有効フラグ8141,81
42があり、このフラグはそのバッファに存在する有効
なデータセットの“数”を示しており、ゼロであれば有
効なデータはないことを示す。GSリードバッファ有効
フラグ8141,8142は、CPU(CS)がグラフ
ィックスコマンドを設定するときにインクリメントし、
CPU(GS)がグラフィックスコマンドを読み終わっ
たときにディクリメントする。また、このGSリードバ
ッファ有効フラグ8141,8142は、複数のCPU
がアクセスするため排他制御で管理することが必要にな
る。
【0035】図15は、下位ジオメトリ処理のフローを
示している。まず、GSリードテーブルポインタ809
の指示するユニット状態フラグ801〜805をチェッ
クして“01000”ならば“00100”にする。そ
して、GSリードテーブルポインタ809の更新すなわ
ち「+1」する。GSリードバッファポインタ806の
指示する領域からデータを読んで幾何変換,輝度計算や
クリッピング等の処理を行う。そしてRPコマンドをG
Sライトバッファポインタ807の指示する領域にセッ
トする。そしてユニット状態フラグ801〜805を
“00100”から“00010”にセットする。
【0036】次に、RSリードテーブルポインタ808
の指示するユニット状態フラグ801〜805をチェッ
クして“00010”ならば“00001”にする。G
Sライトバッファリードポインタ807の指示する領域
から1ユニット分のRPコマンドをRP部14に転送す
る。この転送は下記に示すように行なう。
【0037】GSライトバッファ811には、RPコマ
ンドとしてのオペコードとそのオペランドが保持されて
いる。従って、そのオペコードに従って、図11(b)
に示すようにアドレスとそのデータにして、連続したア
ドレスにまとめてRP部14に送付する。
【0038】1ユニット分の転送終了後RSリードテー
ブルポインタ808の更新を行う。最後にユニット状態
フラグ801〜805を“00001”から“0000
0”にセットする。
【0039】今までは、汎用CPUで行う上位ジオメト
リ処理段階と下位ジオメトリ処理段階についての処理内
容を示してきた。
【0040】図17は、RP部14のレンダリングコン
トローラ9のブロック図を示している。システムバス1
3に流れるアドレスに対し、その上位アドレスを上位ア
ドレスデコーダ901でデコードし、RP部14への送
付か否かを判定する。下位アドレスデコーダ902で
は、必要なアドレスを判定しそのアドレスの下位を第1
1図に示すレジスタマップに変換したアドレスとそのデ
ータを第1FIFO906にセットする。またnopは
アドレスもデータも設定しない。例えば、 0020 a0 0024 b0 0028 c0 002c d0 は、下位アドレスデコーダ902で以下のように変換さ
れて、第1FIFO906にセットされる。
【0041】 00 a0 01 b0 FF c0 002Cのアドレスの意味はnopなので第1FIFO
906にはセットしない。ここでFIFOは2種類あ
る。第1FIFO906は、図10に示している描画関
連レジスタ、描画制御関連レジスタ、そして描画エリア
関連レジスタへの設定時に使用される。従ってこれらの
レジスタへの設定順序は保証される。また、第2FIF
O907はカーソル関連レジスタへの設定時に使用され
る。すなわち第2FIFO907は、描画順序を無視し
て高速にアクセスするコマンドに使用される。特にカー
ソル描画は任意のアプリケーションではなく、モニタ画
面を制御するウインドウマネージャの発行するコマンド
であるので他の種類のコマンドとの関係はない。勿論、
カーソル関連コマンドの順序性は、第2FIFO907
を利用することにより遵守できる。
【0042】以上で、本発明に関する1実施例のシステ
ムの構成とその動作を説明した。図18は、グラフィッ
クスコマンドの実例を示している。
【0043】まず、Setmatrixコマンドは、状
態変更属性コマンドであるので、図7に示したフローで
処理を行う。SetclipareaコマンドはRP制
御属性コマンドであるので、図8で示した処理フローで
処理される。同様に、Multmatrix,Setl
inecolorコマンドは、夫々、図7,図8の処理
フローに従って処理される。ここまでは、CPU(C
S)で実行され、並列処理の効果はない。
【0044】Polylineコマンドは、描画命令で
あるので、図6の処理フローに従って処理する。以降4
つのPolylineコマンドが並列に処理されること
になる。次の、Setlinecolorコマンドは、
図8の処理となり、カレント属性と比較した結果、異な
れば、ここでCPU(GS)との同期をとる必要があ
る。同じであれば、同期をとることなく、次のPoly
lineコマンドの並列処理を行うことになる。次のM
ultmatrixコマンドは、必ず同期をとることが
必要になり、CPU(GS)が待ち状態になったのを確
認してCPU(CS)がその処理を行う。Getcur
rentmatrixも同様にCPU(GS)が待ち状
態になったのを確認してCPU(CS)がその処理を行
う。次のTrianglestripコマンドは、図5
に示した処理フローで処理を行う。従って、4つのTr
ianglestripコマンドはCPU(GS)で並
列に処理される。Setmatrixコマンドは、図7
の処理フローで処理される。カレントな値と異なれば同
期をとる必要があるが、同じであれば同期をとることな
く次のコマンドの処理を行う。次の3つのTriang
lestripコマンドは並列に処理される。最後のG
etimageコマンドは、RP問い合わせコマンドで
あるので、RPがデータ入力待ちの状態になっているこ
とを確認してRPコマンドを送付することになる。
【0045】ここでRPが入力待ちであることを確認す
るために、RPコマンドに下記の制御用コマンド(アイ
ドル割り込み要求コマンド)を追加し、待ち時間に他の
プロセスを動作させることを可能にする。
【0046】“アイドル要求コマンドがレンダリングプ
ロセッサに到達すると要求もとのCPUに割り込みを帰
す”このコマンドは、図17の、第1FIFO906に
セットされる。
【0047】
【発明の効果】本発明は、次のような効果を奏する。
【0048】(1)ディスパッチテーブルでCPU(C
S)とCPU(GS)のデータ転送を行うので、負荷の
分散が簡単にできる。また、複数のCPU(GS)の数
が時間と共に変動しても、効率の減少が少ない。
【0049】(2)同期をとる必要な属性コマンドはカ
レントの値と比較して、必要なときだけ同期をとること
により、同期をとる回数が減少し、並列処理の効率が増
加する。実際のグラフィックスコマンドでは、ほとんど
が同じデータの属性コマンドを発行している。
【0050】(3)RPのレジスタを複数にマッピング
しているので、RPへのデータ転送を連続したアドレス
にすることが可能となり、バースト転送といった高速転
送が可能になる。
【0051】(4)バースト転送を実現するには、連続
し且つある決められたバイト数を転送することが必要に
なる。そこでレンダリングコントローラ内の下位アドレ
スデコーダにより、必要なコマンドのみをFIFOにセ
ットすることにより、FIFO段数を少なくでき、ハー
ドウエアの縮小化が実現できる。
【図面の簡単な説明】
【図1】本発明の一実施例に係るグラフィックス並列処
理装置の構成図である。
【図2】複数CPUの処理の割当例説明図である。
【図3】グラフィックス処理の概略説明図である。
【図4】グラフィックスコマンドの分類図である。
【図5】描画コマンドの処理フローである。
【図6】描画コマンドの処理フローである。
【図7】状態変更属性コマンドの処理フローである。
【図8】RP部制御属性コマンドの処理フローである。
【図9】カーソルコマンドの処理フローである。
【図10】RPのレジスタ分類図である。
【図11】CPUからのメモリマップ構成図である。
【図12】RPのレジスタのアドレスマップ構成図であ
る。
【図13】ディスパッチテーブルの概略図である。
【図14】上位ジオメトリの処理フローである。
【図15】下位ジオメトリの処理フローである。
【図16】GSリードバッファ構成図である。
【図17】レンダリングコントローラ構成図である。
【図18】グラフィックスコマンドの一例の説明図であ
る。
【符号の説明】
0,1,2,3…CPU、5…メモリコントローラ&バ
スコントローラ、7…メインメモリ、8…ディスパッチ
テーブル、12…プロセッサバス、13…システムバ
ス、14…レンダリング部。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 福永 泰 茨城県日立市久慈町4026番地 株式会社日 立製作所日立研究所内 (72)発明者 桑名 利幸 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 複数の汎用プロセッサと、各汎用プロセ
    ッサが他の汎用プロセッサと排他制御でアクセスするデ
    ィスパッチテーブルと、グラフィックス処理の中で1画
    素づつ画素を生成するレンダリング処理を行なうレンダ
    リングプロセッサ部とを備えるグラフィックス並列処理
    装置において、複数の汎用プロセッサをグラフィックス
    コマンドを生成するプロセッサ(CS)とグラフィック
    ス処理の中の幾何変換を行なう複数プロセッサ(GS)
    との2つのグループに分類し、プロセッサ(CS)とプ
    ロセッサ(GS)間のデータの転送およびプロセッサ
    (GS)とレンダリングプロセッサ間のデータの転送
    を、順序情報と状態情報を持ったディスパッチテーブル
    の格納データに基づいて行なうことを特徴とするグラフ
    ィックス並列処理方法。
  2. 【請求項2】 請求項1において、プロセッサ(CS)
    とプロセッサ(GS)間のデータの転送では複数のプロ
    セッサ(GS)がディスパッチテーブルで必要データを
    探索し、プロセッサ(GS)とレンダリングプロセッサ
    間のデータの転送は複数のプロセッサ(GS)がディス
    パッチテーブルで必要データをレンダリングプロセッサ
    に転送することを特徴とするグラフィックス並列処理方
    法。
  3. 【請求項3】 請求項1または請求項2において、幾何
    変換を行なうときのグラフィックス属性設定コマンド等
    の、プロセッサ(CS)とプロセッサ(GS)間のデー
    タの転送において順序制御が必要なグラフィックスコマ
    ンドは、プロセッサ(CS)がプロセッサ(GS)の処
    理の同期を取って処理を行なうことを特徴とするグラフ
    ィックス並列処理方法。
  4. 【請求項4】 請求項1乃至請求項3のいずれかにおい
    て、グラフィックス属性設定コマンドが発行されたとき
    には、その属性値を現在値と比較し、異なった属性値の
    時のみ、そのコマンド処理を行なうことを特徴とするグ
    ラフィックス並列処理方法。
  5. 【請求項5】 複数の汎用プロセッサと、各汎用プロセ
    ッサが他の汎用プロセッサと排他制御でアクセスするデ
    ィスパッチテーブルと、グラフィックス処理の中で1画
    素づつ画素を生成するレンダリング処理を行なうレンダ
    リングプロセッサ部とを備えるグラフィックス並列処理
    装置において、複数の汎用プロセッサをグラフィックス
    コマンドを生成するプロセッサ(CS)とグラフィック
    ス処理の中の幾何変換を行なう複数プロセッサ(GS)
    との2つのグループに分類する手段と、プロセッサ(C
    S)とプロセッサ(GS)間のデータの転送およびプロ
    セッサ(GS)とレンダリングプロセッサ間のデータの
    転送を順序情報と状態情報を持ったディスパッチテーブ
    ルの格納データに従って制御する手段とを備えることを
    特徴とするグラフィックス並列処理装置。
  6. 【請求項6】 請求項5において、プロセッサ(CS)
    とプロセッサ(GS)間のデータの転送では複数のプロ
    セッサ(GS)がディスパッチテーブルで必要データを
    探索する手段と、プロセッサ(GS)とレンダリングプ
    ロセッサ間のデータの転送は複数のプロセッサ(GS)
    がディスパッチテーブルで必要データをレンダリングプ
    ロセッサに転送する手段を設けたことを特徴とするグラ
    フィックス並列処理装置。
  7. 【請求項7】 請求項5または請求項6において、幾何
    変換を行なうときのグラフィックス属性設定コマンド等
    のプロセッサ(CS)とプロセッサ(GS)間のデータ
    の転送において順序制御が必要なグラフィックスコマン
    ドはプロセッサ(CS)がプロセッサ(GS)の処理の
    同期を取って処理を行なう手段を設けたことを特徴とす
    るグラフィックス並列処理装置。
  8. 【請求項8】 請求項5乃至請求項7のいずれかにおい
    て、グラフィックス属性設定コマンドが発行されたとき
    にはその属性値を現在値と比較する手段と、異なった属
    性値の時のみそのコマンド処理を行なう手段を設けたこ
    とをことを特徴とするグラフィックス並列処理装置。
  9. 【請求項9】 グラフィックス処理の中の幾何変換を行
    なう汎用プロセッサと、グラフィックス処理の中で1画
    素づつ画素を生成するレンダリング処理を行なうレンダ
    リングプロセッサ部と、レンダリングプロセッサのレジ
    スタを複数マッピングし更に不要なデータも同様にマッ
    ピングする手段と、汎用プロセッサからレンダリングプ
    ロセッサへバースト転送でデータを送る手段とを備える
    ことを特徴とするグラフィックスシステム。
  10. 【請求項10】 グラフィックス処理の中の幾何変換を
    行なう汎用プロセッサと、グラフィックス処理の中で1
    画素づつ画素を生成するレンダリング処理を行なうレン
    ダリングプロセッサ及びレンダリングコマンドを蓄えて
    おくFIFOからなるレンダリングプロセッサ部と、レ
    ンダリングプロセッサに到達すると要求元のプロセスに
    割込を返すアイドル要求コマンド発行手段と、レンダリ
    ングプロセッサの待ち時間に他のプロセスを実行する手
    段とを設けたことを特徴とするグラフィックスシステ
    ム。
JP6216292A 1992-03-18 1992-03-18 グラフィックス並列処理方法及びその装置 Pending JPH05266201A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6216292A JPH05266201A (ja) 1992-03-18 1992-03-18 グラフィックス並列処理方法及びその装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6216292A JPH05266201A (ja) 1992-03-18 1992-03-18 グラフィックス並列処理方法及びその装置

Publications (1)

Publication Number Publication Date
JPH05266201A true JPH05266201A (ja) 1993-10-15

Family

ID=13192149

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6216292A Pending JPH05266201A (ja) 1992-03-18 1992-03-18 グラフィックス並列処理方法及びその装置

Country Status (1)

Country Link
JP (1) JPH05266201A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008299662A (ja) * 2007-05-31 2008-12-11 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008299662A (ja) * 2007-05-31 2008-12-11 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US8624896B2 (en) 2007-05-31 2014-01-07 Sony Corporation Information processing apparatus, information processing method and computer program

Similar Documents

Publication Publication Date Title
US7659898B2 (en) Multi-execution resource graphics processor
US20210349763A1 (en) Technique for computational nested parallelism
US7659899B2 (en) System and method to manage data processing stages of a logical graphics pipeline
JP4071196B2 (ja) ゾーン・レンダリング用の自動メモリ管理
US8619087B2 (en) Inter-shader attribute buffer optimization
US8074224B1 (en) Managing state information for a multi-threaded processor
US9293109B2 (en) Technique for storing shared vertices
US8817031B2 (en) Distributed stream output in a parallel processing unit
US20070030277A1 (en) Method for processing vertex, triangle, and pixel graphics data packets
US9830156B2 (en) Temporal SIMT execution optimization through elimination of redundant operations
TWI493451B (zh) 使用預解碼資料進行指令排程的方法和裝置
US20070030280A1 (en) Global spreader and method for a parallel graphics processor
JP7253507B2 (ja) 仮想化アクセラレーテッド処理デバイスの早期仮想化コンテキストスイッチ
US8429656B1 (en) Thread count throttling for efficient resource utilization
US9418616B2 (en) Technique for storing shared vertices
US20070273700A1 (en) Method, system and computer program product for efficiently utilizing limited resources in a graphics device
US9069609B2 (en) Scheduling and execution of compute tasks
US8564604B2 (en) Systems and methods for improving throughput of a graphics processing unit
US9626216B2 (en) Graphics processing unit sharing between many applications
JP2011505633A (ja) グラフィックスシステムにおいて2次プロセッサを使用するための方法及びシステム
US11663767B2 (en) Power efficient attribute handling for tessellation and geometry shaders
US9720842B2 (en) Adaptive multilevel binning to improve hierarchical caching
US9715413B2 (en) Execution state analysis for assigning tasks to streaming multiprocessors
US6952217B1 (en) Graphics processing unit self-programming
US9594599B1 (en) Method and system for distributing work batches to processing units based on a number of enabled streaming multiprocessors