JPH08138060A - Display processor using parallel processor - Google Patents
Display processor using parallel processorInfo
- Publication number
- JPH08138060A JPH08138060A JP6295697A JP29569794A JPH08138060A JP H08138060 A JPH08138060 A JP H08138060A JP 6295697 A JP6295697 A JP 6295697A JP 29569794 A JP29569794 A JP 29569794A JP H08138060 A JPH08138060 A JP H08138060A
- Authority
- JP
- Japan
- Prior art keywords
- processor
- instruction
- stream
- order
- drawing command
- 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
Links
Landscapes
- Controls And Circuits For Display Device (AREA)
- Processing Or Creating Images (AREA)
- Image Processing (AREA)
- Image Generation (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】本発明は、並列実行可能な複数の
プロセッサを備えた並列処理装置に係り、特に、動画の
ように滑らかな表示画面変更処理を必要とするグラフィ
ックスシステムにおける並列プロセッサを用いる表示装
置に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a parallel processor provided with a plurality of processors capable of executing in parallel, and more particularly to a parallel processor in a graphics system requiring a smooth display screen changing process such as a moving picture. Regarding a display device to be used.
【0002】[0002]
【従来の技術】コンピュータ・グラフィックスの応用分
野がビジュアルシミュレーションや科学技術計算結果の
可視化などに広がるとともに、表示性能に対する高速描
画の要求がさらに高まっている。従来、このような高速
化の要求に答える技術としては、座標変換やクリッピン
グといったジオメトリ処理を専用プロセッサで処理する
ことによって解決してきた。特に高速化の性能が要求さ
れる分野では、特開平2−275581号公報に記載さ
れるようにジオメトリ処理のための専用プロセッサを複
数のプロセッサで構成し、個々のプロセッサをパイプラ
イン状に接続する方式が知られている。また、Comp
uter Graphics(SIGGRAPH’93
Conference Proceedings)、
Vol. 27、pp93〜100や、日経エレクトロ
ニクス、No. 578、pp137〜154、あるい
は日経CG、No.73、pp143〜153には、ジ
オメトリ処理を並列に処理するグラフィックスシステム
が記載されている。さらに、グラフィックスシステムへ
の近年のもう一つの要求として高品質化が上げられ、そ
の代表的な方法に透明感のある物体の重なり表現があ
る。この分野では、Computer Graphic
s Principles andPractice、
pp7557〜563や、3次元コンピュータグラフィ
ックス、ASCII出版、pp288〜297に記載さ
れているように、描画順序によって異なる品質の図形を
生成できることが知られている。一方、上記のグラフィ
ックスシステムを利用する応用プログラム側においても
複数の中央演算装置(CPU)を用いる並列プログラミ
ングが普及してきている。応用プログラムの並列プログ
ラミングは、並列化コンパイラを用いて並列化を支援す
るものや、スレッドと呼ばれるOS(オペレーティング
システム)が支援する機能を用いて応用プログラムを複
数の並列処理可能な処理に分割する方法などが知られて
いる。スレッドについてはUNIX MAGAZIN
E、Vol.5、No.2、pp.46〜52に紹介さ
れている。2. Description of the Related Art As the field of application of computer graphics spreads to visual simulation and visualization of scientific and technological calculation results, the demand for high-speed drawing for display performance is increasing. Conventionally, as a technique for responding to such a demand for high speed, a geometry processor such as coordinate conversion and clipping has been solved by a dedicated processor. Particularly in the field where high speed performance is required, a dedicated processor for geometry processing is composed of a plurality of processors as described in JP-A-2-275581, and each processor is connected in a pipeline. The scheme is known. Also, Comp
uter Graphics (SIGGRPH'93
Conference Proceedings),
Vol. 27, pp93-100 and Nikkei Electronics, No. 578, pp 137-154, or Nikkei CG, No. 73, pp143-153 describes a graphics system that processes geometry processing in parallel. Furthermore, as another demand in recent years for graphics systems, higher quality has been raised, and a representative method therefor is overlapping expression of transparent objects. In this field, Computer Graphic
s Principles and Practice,
As described in pp 7557 to 563, three-dimensional computer graphics, ASCII publication, pp 288 to 297, it is known that different quality graphics can be generated depending on the drawing order. On the other hand, parallel programming using a plurality of central processing units (CPUs) has become widespread on the side of application programs using the above graphics system. Parallel programming of an application program is a method of supporting parallelization by using a parallelizing compiler, or a method of dividing an application program into a plurality of processes capable of parallel processing by using a function called an thread (OS) supported by an OS. Are known. For threads, see UNIX MAGAZIN
E, Vol. 5, no. 2, pp. 46-52.
【0003】[0003]
【発明が解決しようとする課題】高性能なグラフィック
スシステムを備えた計算機において、グラフィックスシ
ステムの性能を十分に引き出すためには、応用プログラ
ムが動作するCPU側も必要な描画命令データの供給量
を満たす必要がある。前記で述べたようにグラフィック
スシステムおよび応用プログラム(CPUで実行)は並
列化の手法によりそれぞれ性能の向上が可能である。し
かし、グラフィックスシステムへの描画命令データ供給
の点から、CPU側の並列化を行なうと、従来のグラフ
ィックスシステムはCPUで動作する応用プログラムが
複数のスレッドとして動作することを考慮していないた
め不都合が起こる。特に複数のCPUでスレッドを動作
させると、各スレッドを実行するCPUの負荷により応
用プログラムがスレッドを起動した順番と異なる順序で
描画命令データがグラフィックスシステムへ転送される
ことが起こるが、グラフィックスシステムの描画命令デ
ータの受信口はこのことを考慮していないため、受け取
った順に描画命令の処理を行なっていく。また、グラフ
ィックスシステムにおいて描画命令データのジオメトリ
演算部を複数のプロセッサで並列に実行した場合にも、
各プロセッサの負荷の違いにより次の命令データが生成
される順番はプロセッサに配布された順番とは異なると
いう現象が起こる。ところが、透明感のある物体の重な
り表現などを実現する場合、API(Applicat
ion Program Interface)の描画
命令の発行順序で描画の品質を制御しているため、CP
Uからグラフィックスシステムへデータを転送する場
合、描画するプリミティブ単位(折れ線列、三角形列な
ど)間の順序を保証する必要がある。このプリミティブ
単位の描画順序保証のためには、応用プログラムの各ス
レッド間でグラフィックスシステムへ転送する際に排他
制御を行なう必要がある。従って並列化を実現しようと
すると、排他制御という新たなオーバヘッドが生じてし
まうという課題が生ずる。本発明の目的は、応用プログ
ラムの各スレッド間でグラフィックスシステムへ転送す
る際に排他制御を行なう必要を無くし、複数の命令スト
リームを構成する個々の命令を混在して同時にグラフィ
ックシステムに転送しても、応用プログラムがスレッド
を起動した順番と同じ順序で表示画面上に描画命令の処
理結果を表示することにある。In a computer equipped with a high-performance graphics system, in order to bring out the full performance of the graphics system, the CPU side on which the application program operates needs to supply the drawing command data. Need to meet. As described above, the performance of the graphics system and the application program (executed by the CPU) can be improved by the parallelization method. However, from the viewpoint of supplying drawing command data to the graphics system, when the CPU side is parallelized, the conventional graphics system does not consider that the application program operating on the CPU operates as a plurality of threads. Inconvenience occurs. In particular, when threads are operated by a plurality of CPUs, drawing instruction data may be transferred to the graphics system in an order different from the order in which the application program starts the threads due to the load on the CPUs that execute the threads. Since the drawing command data receiving port of the system does not consider this, the drawing commands are processed in the order in which they are received. Also, when the geometry operation part of drawing command data is executed in parallel in multiple processors in the graphics system,
Due to the difference in the load of each processor, the order in which the next instruction data is generated differs from the order in which it is distributed to the processors. However, when realizing overlapping representation of transparent objects, API (Applicat)
Since the drawing quality is controlled in the order of issuing drawing commands of the Ion Program Interface), CP
When data is transferred from U to the graphics system, it is necessary to guarantee the order between primitive units (linestrings, triangle strings, etc.) to be drawn. In order to guarantee the drawing order in primitive units, it is necessary to perform exclusive control between the threads of the application program when transferring to the graphics system. Therefore, if parallelization is to be realized, a new overhead of exclusive control will occur. An object of the present invention is to eliminate the need to perform exclusive control when transferring to the graphics system between the threads of the application program, and to simultaneously transfer individual instructions forming a plurality of instruction streams to the graphics system at the same time. In other words, the processing result of the drawing command is displayed on the display screen in the same order as the application program started the threads.
【0004】[0004]
【課題を解決するための手段】上記目的を達成するた
め、本発明は、並列動作可能な複数のプロセッサにより
描画命令を処理し、その処理結果に基づき表示画面上に
表示を行なう並列プロセッサを用いる表示装置であり、
上位装置において複数のスレッドからなる応用プログラ
ムの夫々のスレッドが順次生成するストリーム順序情報
及び描画順序情報を有する描画命令からなる描画命令ス
トリームが混在して転送された複数の描画命令ストリー
ムを受信する受信手段と、記憶装置に前記受信した描画
命令を順次格納し、かつ前記ストリーム順序情報及び描
画順序情報に基づき該順次格納した各描画命令の描画順
序を指定するテーブルを作成する手段と、該テーブルを
参照して描画順序にしたがい記憶装置から描画命令を読
み出し、該描画命令に対して該描画命令を処理するプロ
セッサを前記複数のプロセッサの中から割り当てる割当
手段と、プロセッサの処理結果を前記描画順序にしたが
い順次読み込み描画命令ストリーム毎に描画を行なう描
画手段を備えるようにしている。また、前記テーブル
は、描画命令ストリーム順に該ストリーム内の描画命令
の前記記憶装置におけるアドレスを描画順序にしたがい
格納するようにしている。また、前記割当手段は、前記
各描画命令のID部に該描画命令に割り当てられる第1
のプロセッサの識別子と該描画命令に続く次描画命令に
割り当てられる第2のプロセッサの識別子を設定し、前
記記憶装置から読み出された描画命令の第1のプロセッ
サの識別子として前記複数のプロセッサの中からその負
荷状態に基づき選択したプロセッサのプロセッサ識別子
を設定し、前記第2のプロセッサの識別子としては、次
描画命令が同一描画命令ストリームに属するときは第1
のプロセッサの識別子と同一のプロセッサの識別子を設
定し、次描画命令が他の描画命令ストリームに属すると
きは前記複数のプロセッサの中からその負荷状態に基づ
き選択したプロセッサのプロセッサ識別子を設定するよ
うにしている。また、前記描画手段は、読み込んだ描画
命令にしたがい描画を行ない、該読み込んだ描画命令の
ID部に設定された第2のプロセッサの識別子で指定さ
れるプロセッサから次の描画命令を読み込むようにして
いる。さらに、並列動作可能な複数のプロセッサにより
描画命令を処理し、その処理結果に基づき表示画面上に
表示を行なう並列プロセッサを用いる表示装置であり、
上位装置において複数のスレッドからなる応用プログラ
ムの夫々のスレッドが順次生成する複数の頂点データか
らなりストリーム順序情報及び頂点数情報を有する描画
命令ストリームが並列して転送された複数の描画命令ス
トリームを受信する受信手段と、記憶装置に前記受信し
た描画命令ストリームを順次格納し、かつ前記ストリー
ム順序情報に基づき該順次格納した各描画命令ストリー
ムの描画順序を指定するテーブルを作成する手段と、該
テーブルを参照して描画順序にしたがい記憶装置から描
画命令を読み出し、該描画命令に対して該描画命令を処
理するプロセッサを前記複数のプロセッサの中から割り
当てる割当手段と、プロセッサの処理結果を前記描画順
序にしたがい順次読み込み描画命令ストリーム毎に描画
を行なう描画手段を備えるようにしている。In order to achieve the above object, the present invention uses a parallel processor which processes a drawing command by a plurality of processors which can operate in parallel and displays on a display screen based on the processing result. Is a display device,
Reception for receiving a plurality of drawing command streams in which a drawing command stream composed of drawing command having the drawing order information and the stream order information sequentially generated by each thread of an application program including a plurality of threads in a host device is transferred Means for storing the received drawing commands in a storage device in sequence, and creating a table for designating a drawing order of the drawing commands stored in the storage device based on the stream order information and the drawing order information; Referring to the drawing order, the drawing command is read out from the storage device, the assigning means for allocating the processor for processing the drawing command to the drawing command from the plurality of processors, and the processing result of the processor in the drawing order. Therefore, it is equipped with drawing means that sequentially reads and draws for each drawing command stream. It has to. Further, the table stores the drawing command addresses in the storage device in the drawing command stream in the drawing command stream in the drawing order. Further, the assigning means assigns a first part assigned to the drawing command to the ID part of each of the drawing commands.
Of the plurality of processors as an identifier of the first processor of the drawing instruction read from the storage device, by setting the identifier of the second processor assigned to the next drawing instruction subsequent to the drawing instruction The processor identifier of the processor selected based on the load state is set, and as the identifier of the second processor, the first processor is used when the next drawing instruction belongs to the same drawing instruction stream.
The same processor identifier as the processor identifier of the processor is set, and when the next drawing instruction belongs to another drawing instruction stream, the processor identifier of the processor selected from the plurality of processors based on its load state is set. ing. The drawing means performs drawing according to the read drawing command, and reads the next drawing command from the processor designated by the identifier of the second processor set in the ID part of the read drawing command. There is. Further, it is a display device using a parallel processor for processing a drawing command by a plurality of processors capable of operating in parallel and displaying on a display screen based on the processing result.
Receiving a plurality of drawing instruction streams to which a drawing instruction stream having stream order information and vertex number information, which is composed of a plurality of vertex data sequentially generated by each thread of an application program including a plurality of threads in a host device, is transferred in parallel Receiving means for sequentially storing the received drawing command streams in a storage device, and creating a table for designating a drawing order of the drawing command streams sequentially stored based on the stream order information, and the table. Referring to the drawing order, the drawing command is read out from the storage device, the assigning means for allocating the processor for processing the drawing command to the drawing command from the plurality of processors, and the processing result of the processor in the drawing order. Therefore, a drawing means for sequentially reading and drawing for each drawing command stream It is so equipped.
【0005】[0005]
【作用】上記手段により、応用プログラムの各スレッド
間でグラフィックスシステムへ転送する際に排他制御を
行なう必要が無くなり、排他制御のオーバヘッドが無く
なり、また、複数のスレッドの並列度が上がる。各スレ
ッドが順次生成する描画命令ストリームが混在して転送
されても、並列プロセッサを用いた表示処理装置におい
て応用プログラムが指定して実行した描画順序通りに描
画が行われる。また、応用プログラムから描画順序を明
示的に指示することにより、応用プログラムにおいて実
行順序に縛られたコーディングを行なう必要がなくな
り、APIに柔軟性を持たせることができる。By the above means, it is not necessary to perform exclusive control when transferring to the graphics system between the threads of the application program, the overhead of exclusive control is eliminated, and the parallelism of a plurality of threads is increased. Even if the drawing instruction streams sequentially generated by the threads are mixed and transferred, the drawing is performed in the drawing order specified and executed by the application program in the display processing device using the parallel processor. Further, by explicitly instructing the drawing order from the application program, it is not necessary to perform coding that is bound to the execution order in the application program, and the API can have flexibility.
【0006】[0006]
【実施例】以下、本発明の一実施例を詳細に説明する。
図1は本発明の概要を示す説明図である。応用プログラ
ム50は描画命令ストリームを生成するスレッドA〜D
(51〜54)で構成されている。各スレッド51〜5
4はA,B,C,Dの順に起動され、各々異なるCPU
(11〜14)で実行される。各スレッド(51〜5
4)からグラフィックスシステム63へ転送される描画
命令ストリームの描画命令55〜58は、実行されるC
PU(11〜14)の負荷の違いにより任意の順で転送
される。各描画命令ストリームの各描画命令(55〜5
8)には応用プログラムから指定された描画順序情報
(59〜62)が付加されている。グラフィックスシス
テム63は、描画順序を識別する手段64、座標変換や
クリッピングを行なうジオメトリ演算部66、識別手段
64によって識別した順序に従って描画処理を制御する
手段67、描画データをドットイメージに展開しフレー
ムメモリへ出力するラスター変換部68がある。また、
グラフィックスシステム用のメモリ20には識別した描
画順序に関する情報65を格納する。ジオメトリ演算部
66で生成された新しいストリーム(69〜72)は、
描画制御手段67と描画順序に関する情報65を用い応
用プログラム50が設定した描画順に従ってラスター変
換部68に渡され処理される。ラスター変換部で生成さ
れたデータはディスプレイ73に表示される。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of the present invention will be described in detail below.
FIG. 1 is an explanatory view showing the outline of the present invention. The application program 50 uses threads A to D for generating the drawing instruction stream.
(51 to 54). Each thread 51-5
4 is started in the order of A, B, C, D, and each has a different CPU
It is executed in (11 to 14). Each thread (51-5
4) the drawing commands 55 to 58 of the drawing command stream transferred to the graphics system 63 from C are executed.
The PUs (11 to 14) are transferred in an arbitrary order depending on the load difference. Each drawing command of each drawing command stream (55-5
Drawing order information (59 to 62) designated by the application program is added to 8). The graphics system 63 includes means 64 for identifying the drawing order, a geometry calculation unit 66 for performing coordinate conversion and clipping, means 67 for controlling the drawing process in accordance with the order identified by the identifying means 64, a drawing data developed into a dot image and a frame. There is a raster converter 68 that outputs to memory. Also,
The memory 20 for the graphics system stores information 65 regarding the identified drawing order. The new streams (69 to 72) generated by the geometry calculation unit 66 are
The drawing control means 67 and the drawing order information 65 are used and passed to the raster conversion unit 68 in accordance with the drawing order set by the application program 50 and processed. The data generated by the raster conversion unit is displayed on the display 73.
【0007】図2は、本発明による表示制御を実行する
ためのシステム構成のブロック図である。中央演算装置
であるCPU11から14は本システムの主プロセッサ
であり、バス・コントローラ15を通して接続される主
メモリ16を共用メモリとして使用する。CPU11か
ら14は、さらにバス・コントローラ15とシステムバ
ス17を通して、ディスク装置やキーボードなどの入出
力装置を制御するためのI/O制御装置18や、表示を
行なうためのグラフィックスシステム(19〜34)に
アクセスが可能とする。FIG. 2 is a block diagram of a system configuration for executing display control according to the present invention. The CPUs 11 to 14, which are central processing units, are the main processors of this system, and use the main memory 16 connected through the bus controller 15 as a shared memory. The CPUs 11 to 14 further, via a bus controller 15 and a system bus 17, an I / O controller 18 for controlling input / output devices such as a disk device and a keyboard, and a graphics system (19-34) for displaying. ) Is accessible.
【0008】グラフィックス・バス・コントローラ19
は、CPUから転送されてくる命令ストリームの受信
し、命令ストリームをジオメトリ演算部(23〜34)
に割り当てる。メモリ20はグラフィックス・バス・コ
ントローラ19が、状態の管理や命令ストリームの一時
的な格納に使用するメモリである。命令ストリームは、
ジオメトリ演算部(23〜34)により並列に座標変換
およびクリッピング処理が行われる。処理された命令ス
トリームは、描画処理のため、ラスター変換器21に送
られ、ドットイメージに展開され、フレームメモリ22
に書き込みが行われた後、ディスプレイに表示される。Graphics bus controller 19
Receives the instruction stream transferred from the CPU and sends the instruction stream to the geometry calculation unit (23 to 34).
Assign to. The memory 20 is a memory used by the graphics bus controller 19 for managing a state and temporarily storing an instruction stream. The instruction stream is
The geometry calculation section (23 to 34) performs coordinate conversion and clipping processing in parallel. The processed instruction stream is sent to the raster converter 21 for drawing processing, is developed into a dot image, and is processed by the frame memory 22.
Will be shown on the display after it has been written to.
【0009】ジオメトリ演算部(23〜34)は、複数
個の同じブロックで構成され、FIFO(23〜26)
は、グラフィックス・バス・コントローラ19からの命
令ストリームの格納や、ジオメトリ演算後のラスター変
換器に送るデータを格納するための入出力FIFOであ
る。ジオメトリ・プロセッサ(27〜30)はジオメト
リ演算を行なうためのプロセッサであり、メモリ(31
〜34)に格納されたプログラムおよびデータにより動
作する。また、CPU11から14で動作するオペレー
ティングシステムおよび応用プログラムは主メモリ16
に格納されており、このオペレーティングシステムは1
つの応用プログラム(タスク)を複数のスレッドに分割
し、スレッドを各CPUに割当てる機能を有しているも
のとする。The geometry calculator (23 to 34) is composed of a plurality of same blocks, and the FIFO (23 to 26).
Is an input / output FIFO for storing the instruction stream from the graphics bus controller 19 and storing the data to be sent to the raster converter after the geometry calculation. The geometry processor (27 to 30) is a processor for performing geometry calculation and includes a memory (31
To 34) to operate with the programs and data stored therein. The operating system and application programs that operate on the CPUs 11 to 14 are stored in the main memory 16
This operating system is stored in
It is assumed that one application program (task) is divided into a plurality of threads and the function of allocating the threads to each CPU is provided.
【0010】図3に本発明を適用したCPU(11〜1
4)から送られ、グラフィックスシステム(19〜3
4)で処理する命令の形式を示す。1つの命令は32バ
イトで構成され、命令の種別を示すオペコード部40、
識別子を示すID部41、および1頂点の3次元座標の
座標値を表すx座標42、y座標43、z座標44、と
座標の色を赤(R)/緑(G)/青(B)で表すR値4
5、G値46、B値47で構成される。データ48は必
ず0とする。オペコード部40は値(16進数)により
次の意味を持つものとする。 0000:座標データ 0001:折れ線の始まり、かつ座標データ 0002:三角形列の始まり、かつ座標データ 000f:座標データの終わり 識別子を示すID部41には、CPUからグラフィック
スシステムに渡ってくる時には、応用プログラムが設定
した描画順序情報が設定されている。本実施例はこの情
報を2バイトで表す。このため、2バイトで表せる値を
超えて順番を設定する場合は、再度、1からの数値を使
って順番の設定を行なうことを応用プログラムとグラフ
ィックスシステムとの間で規則として定める。この情報
は識別手段で識別し、ジオメトリ・プロセッサに配分す
るために該当描画命令ストリームおよび次の描画命令ス
トリームを実行するジオメトリ・プロセッサの情報に設
定し直す。ここで、1つの描画命令ストリームとは、1
つの折れ線あるいは三角形列を構成するデータの集まり
を意味する。図4に折れ線の例、図5に三角形列の例を
示す。FIG. 3 shows a CPU (11 to 1) to which the present invention is applied.
4) from the graphics system (19-3
The format of the instruction processed in 4) is shown. One instruction is composed of 32 bytes, and the operation code section 40 indicating the type of the instruction,
The ID portion 41 indicating the identifier, and the x coordinate 42, the y coordinate 43, and the z coordinate 44 indicating the coordinate value of the three-dimensional coordinate of one vertex, and the color of the coordinates are red (R) / green (G) / blue (B). R value represented by
5, G value 46, and B value 47. The data 48 is always 0. The operation code section 40 has the following meanings depending on the value (hexadecimal number). 0000: coordinate data 0001: start of a polygonal line, and coordinate data 0002: start of a triangle row, and coordinate data 000f: end of coordinate data The ID section 41 indicating an identifier is applied when the CPU transfers to the graphics system. The drawing order information set by the program is set. In this embodiment, this information is represented by 2 bytes. Therefore, when the order is set to exceed the value that can be represented by 2 bytes, it is a rule between the application program and the graphics system to set the order again by using the numerical value from 1. This information is identified by the identification means, and is reset to the information of the geometry processor that executes the corresponding drawing instruction stream and the next drawing instruction stream in order to be distributed to the geometry processors. Here, one drawing instruction stream means 1
A collection of data that forms one polygonal line or triangle. FIG. 4 shows an example of a polygonal line, and FIG. 5 shows an example of a triangular array.
【0011】図6は描画命令ストリームの描画順序管理
テーブルの構成を示したものである。描画順序管理テー
ブル80は4バイト構成であり項目数は256個とす
る。この256という数値は描画命令ストリームの中の
描画順序を設定する項目の2バイトのうち1バイトで指
定できる限界値を用いている。これは描画順序情報の1
つとしてストリームを識別するために1バイトを使用す
ることを考慮して設けた数値である。FIG. 6 shows the structure of the drawing order management table of the drawing command stream. The drawing order management table 80 has a 4-byte structure and the number of items is 256. The numerical value of 256 uses a limit value that can be specified by 1 byte of 2 bytes of the item for setting the drawing order in the drawing command stream. This is 1 of drawing order information
This is a numerical value provided considering that one byte is used to identify the stream as one.
【0012】描画順序管理テーブル80の値は受け取っ
た描画命令をバッファに格納する時に順序情報から描画
順序とストリームを識別する。描画命令格納バッファ8
1に格納する1番目の描画命令86のストリーム識別子
は2であり、そのストリームでの描画順序は1なので、
描画順序管理テーブル80の2番目の項目85に描画命
令格納バッファ81の格納された描画命令86の先頭ア
ドレスをキューイング87する。キューイングバッファ
は描画命令のアドレス格納エリアと次のキューイングバ
ッファへのポインタエリアで構成する。描画命令格納バ
ッファ81に格納する2番目の描画命令83のストリー
ム識別子は1であり、そのストリームでの描画順序は1
なので、描画順序管理テーブル80の1番目の項目82
に描画命令格納バッファ81の格納された描画命令83
の先頭アドレスをキューイング84する。描画令格納バ
ッファ81に格納する3番目の描画命令88のストリー
ム識別子は1であり、そのストリームでの描画順序は2
なので、描画順序管理テーブル80の1番目の項目82
のキューに描画命令88の先頭アドレスをキューイング
89する。受け付けた描画命令に対して同様の処理を繰
り返し、各情報を格納する。描画順序管理テーブル80
の各項目の初期値は0とし、各項目が0の場合は該当す
る順番の命令が未受理と判断する。The values of the drawing order management table 80 identify the drawing order and the stream from the order information when the received drawing command is stored in the buffer. Drawing command storage buffer 8
Since the stream identifier of the first drawing instruction 86 stored in 1 is 2, and the drawing order in that stream is 1,
The head address of the drawing command 86 stored in the drawing command storage buffer 81 is queued 87 in the second item 85 of the drawing order management table 80. The queuing buffer consists of an address storage area for drawing commands and a pointer area to the next queuing buffer. The stream identifier of the second drawing command 83 stored in the drawing command storage buffer 81 is 1, and the drawing order in that stream is 1.
Therefore, the first item 82 of the drawing order management table 80
Drawing command 83 stored in drawing command storage buffer 81
Queuing 84 the leading address of the. The stream identifier of the third rendering command 88 stored in the rendering instruction storage buffer 81 is 1, and the rendering order in that stream is 2.
Therefore, the first item 82 of the drawing order management table 80
The head address of the drawing command 88 is queued 89 in the queue of. The same processing is repeated for the received drawing command, and each information is stored. Drawing order management table 80
The initial value of each item is set to 0. If each item is 0, it is determined that the command in the corresponding order is not accepted.
【0013】図7は描画順序に従った転送を制御する転
送制御情報の構成である。転送順序カウンタ90は、次
に描画順の何番目のデータをジオメトリ・プロセッサに
転送するかを管理する。初期値は1とし、ジオメトリ・
プロセッサに該当順序のデータの転送を行なうと値をイ
ンクリメントする。テーブルインデックス91は描画順
序管理テーブル80の何番目の項目のデータをジオメト
リ・プロセッサに転送するかを管理する。例えば、25
6番目のストリームの時、転送順序カウンタ90の順序
情報の値は256、テーブルインデックス91の値は2
56であり、257番目のストリームの時、転送順序カ
ウンタ90の順序情報の値は257、テーブルインデッ
クス91の値は1となる。FIG. 7 shows the structure of transfer control information for controlling transfer according to the drawing order. The transfer order counter 90 manages which data in the drawing order is transferred to the geometry processor next. The initial value is 1, and the geometry
The value is incremented when the data in the corresponding order is transferred to the processor. The table index 91 manages which item of data in the drawing order management table 80 is transferred to the geometry processor. For example, 25
At the time of the sixth stream, the value of the order information of the transfer order counter 90 is 256, and the value of the table index 91 is 2.
56, the value of the order information of the transfer order counter 90 is 257 and the value of the table index 91 is 1 at the 257th stream.
【0014】次に、図8と図9により、図3の描画命令
のID部の情報変更処理の流れを説明する。グラフィッ
クス・バス・コントローラ19は、転送制御情報(9
0,91)を利用し、次にジオメトリ・プロセッサに送
るべき描画命令を決定し、その情報があるかを見る(1
11)。なければ図3の形式の描画命令ストリーム(1
00〜102)がCPU(11〜14)から転送されて
くると(112)、グラフィックス・バス・コントロー
ラ19は、各描画命令ストリームの描画順序情報(ID
部)41を識別し、図6に示した情報を生成(11
3)、メモリ20に一時的に格納する(114)。次に
ジオメトリ・プロセッサに送るべき描画命令情報があれ
ば、CPUの負荷状態からその描画命令ストリームおよ
び次の描画命令ストリームを実行するジオメトリ・プロ
セッサを割り当て決定し(115)、その情報を各命令
のID部に設定(116)、命令(103〜105)を
該当プロセッサへ転送する(117)。本制御は描画処
理終了の情報きたら終了する(110)。順番がきて処
理した描画順序管理テーブルの項目の値は0を再設定
し、項目を全部使用した場合には、このすでに処理され
空きとなった項目を再利用する。上記方法でジオメトリ
・プロセッサに送る順序を制御して付加した情報は、ジ
オメトリ・プロセッサから取り出される順序情報として
利用する。Next, the flow of the information changing process of the ID portion of the drawing command of FIG. 3 will be described with reference to FIGS. 8 and 9. The graphics bus controller 19 uses the transfer control information (9
(0, 91), then determine which drawing command to send to the geometry processor and see if that information is available (1
11). If not, the drawing instruction stream (1
(00-102) is transferred from the CPU (11-14) (112), the graphics bus controller 19 draws the drawing order information (ID) of each drawing command stream.
Part 41, and generates the information shown in FIG. 6 (11
3), it is temporarily stored in the memory 20 (114). Next, if there is drawing command information to be sent to the geometry processor, the geometry processor that executes the drawing command stream and the next drawing command stream is allocated and determined from the load state of the CPU (115), and this information is assigned to each command. The ID section is set (116) and the instructions (103 to 105) are transferred to the corresponding processor (117). This control ends when the information indicating the end of the drawing process is received (110). The value of the item in the drawing order management table that has been processed in order is reset to 0, and when all items are used, the already processed and vacant item is reused. The information added by controlling the order of sending to the geometry processor by the above method is used as the order information retrieved from the geometry processor.
【0015】グラフィックスシステム内では図3に示し
た命令形式がジオメトリ部(23〜34)およびラスタ
ー変換器21で処理され、描画を行なう。このとき命令
形式(103〜105)のID部41は複数あるジオメ
トリ・プロセッサへの宛先の意味を表す。図2の4つあ
るジオメトリ・プロセッサ(27〜30)の宛先にそれ
ぞれ1、2、3、4という番号を割当てる。ID部41
は2バイトのうち上位1バイトをその命令を処理するジ
オメトリ・プロセッサの宛先、下位1バイトをその次の
命令を処理するジオメトリ・プロセッサの宛先とする。
例えば、ID=(1、1)ならばそのIDを持つ命令と
その次に処理する命令はジオメトリ・プロセッサ27で
処理し、ID=(1、2)ならばそのIDを持つ命令は
ジオメトリ・プロセッサ27で、その次に処理する命令
はジオメトリ・プロセッサ28で処理するものとする。In the graphics system, the instruction format shown in FIG. 3 is processed by the geometry section (23 to 34) and the raster converter 21 to perform drawing. At this time, the ID part 41 of the command format (103 to 105) represents the meaning of the destination to the plurality of geometry processors. The numbers 1, 2, 3, and 4 are assigned to the destinations of the four geometry processors (27 to 30) in FIG. ID section 41
Of the two bytes, the upper 1 byte is the destination of the geometry processor that processes the instruction, and the lower 1 byte is the destination of the geometry processor that processes the next instruction.
For example, if ID = (1,1), the instruction having the ID and the next instruction to be processed are processed by the geometry processor 27, and if ID = (1,2), the instruction having the ID is processed by the geometry processor. At 27, the next instruction to be processed is processed by the geometry processor 28.
【0016】グラフィックス・バス・コントローラ19
は、ジオメトリ・プロセッサ(27〜30)の負荷状態
により、その命令を処理するジオメトリ・プロセッサと
その次の命令を処理するジオメトリ・プロセッサを決定
し、ID部を計算する。1つの命令ストリームは同じジ
オメトリ・プロセッサで処理するため、ID部の2つの
値が異なる命令は、オペコード部が000fの値を持つ
座標の終了命令のみに付加することになる。尚、初期状
態において一番最初の命令を処理するジオメトリ・プロ
セッサは必ずジオメトリ・プロセッサ27(宛先は1)
とする。Graphics bus controller 19
Determines the geometry processor that processes the instruction and the geometry processor that processes the next instruction according to the load state of the geometry processor (27 to 30), and calculates the ID part. Since one instruction stream is processed by the same geometry processor, an instruction with two different values in the ID part is added only to the end command of the coordinate whose operation code part has a value of 000f. In the initial state, the geometry processor that processes the first instruction is always the geometry processor 27 (destination is 1).
And
【0017】グラフィックス・バス・コントローラ19
はID部の計算を行い、命令を処理するジオメトリ・プ
ロセッサのFIFO(23〜26)に命令を送る。命令
を送られたジオメトリ・プロセッサは、命令の種別に従
いジオメトリ演算を行い、再びFIFOに演算後の命令
を書き込む。ラスター変換器21は、ジオメトリ・プロ
セッサ27から演算後の命令を読み込み、ドットイメー
ジを生成し、フレームメモリ22を更新する。同時にラ
スター変換器21は命令のID部41の下位1バイトの
値から次に読み込むジオメトリ・プロセッサ(27〜3
0)のFIFO(23〜26)を決定し、処理を繰り返
す。以上の手順により、グラフィックス・バス・コント
ローラ19が計算した命令のID部41の値の順序に従
って、ラスター変換器21が命令を受け取るため、必ず
描画の順序は保証される。Graphics bus controller 19
Calculates the ID part and sends the command to the FIFO (23-26) of the geometry processor that processes the command. The geometry processor to which the instruction is sent performs the geometry operation according to the type of the instruction, and writes the instruction after the operation into the FIFO again. The raster converter 21 reads the post-computation instruction from the geometry processor 27, generates a dot image, and updates the frame memory 22. At the same time, the raster converter 21 reads the geometry processor (27 to 3) next from the value of the lower 1 byte of the ID section 41 of the instruction.
0) FIFOs (23 to 26) are determined and the process is repeated. Through the above procedure, the raster converter 21 receives the instruction in accordance with the order of the value of the ID section 41 of the instruction calculated by the graphics bus controller 19, so that the drawing order is guaranteed.
【0018】図10は描画命令にプロセッサを割り当て
ID部41にプロセッサの識別子を設定する計算制御フ
ローである。グラフィックス・バス・コントローラ19
は、対象命令を処理するジオメトリ・プロセッサの宛先
情報をID1、その次の命令を処理するジオメトリ・プ
ロセッサの宛先情報をID2と表現している。描画命令
を受け取ったならば(140)、その命令が処理の一番
最初の描画命令かを判断し(141)、初めての命令で
あれば該命令を実行するジオメトリ・プロセッサは識別
子(宛先)1のジオメトリ・プロセッサとしID1に情
報を設定するとともに記憶しておく(142)。さらに
その命令が1頂点データ(命令ストリームが1命令で終
わる)であるかを判定し(143)、1頂点でなけれ
ば、ID2にも実行プロセッサの識別子を設定(14
4)、ID部の設定が終了したら該当ジオメトリ・プロ
セッサに命令を転送する(146)。1頂点の場合は、
全ジオメトリ・プロセッサの負荷を判定して次の命令ス
トリームを割当てるジオメトリ・プロセッサを決定しI
D2に設定し(145)、該当ジオメトリ・プロセッサ
に命令を転送する(146)。初めての命令でなけれ
ば、すでに任意のジオメトリ・プロセッサが割当てられ
いくつかの命令が処理されているストリームに属する命
令かを判定し(147)、該当ストリームがあればその
中の最後の命令かを判定(148)、最後の命令であれ
ばID1に実行ジオメトリ・プロセッサの識別子を設定
し、さらに全ジオメトリ・プロセッサの負荷を判定して
次の命令ストリームを割当てるジオメトリ・プロセッサ
を決定しID2に設定し(149)、該当ジオメトリ・
プロセッサへ転送する(155)。該当ストリームの最
後の命令でなければ、ID1とID2に実行ジオメトリ
・プロセッサの識別子を設定し(150)、該当ジオメ
トリ・プロセッサへ転送する(155)。新しいストリ
ームの命令であれば記憶してある次のストリームに割当
てるジオメトリ・プロセッサの識別子をID1に設定す
る(151)。さらにその命令が1頂点データであるか
を判定し(152)、1頂点でなければ、ID2に実行
ジオメトリ・プロセッサの識別子を設定し(153)、
該当ジオメトリ・プロセッサに命令を転送する(15
5)。1頂点の場合は、全ジオメトリ・プロセッサの負
荷を判定して次の命令ストリームを割当てるジオメトリ
・プロセッサを決定しID2に設定すると共に記憶して
おき(154)、該当ジオメトリ・プロセッサに命令を
転送する(155)。なお、描画命令がなくなり描画終
了を識別した時(156)に本処理を終了する。FIG. 10 is a calculation control flow for assigning a processor to a drawing command and setting a processor identifier in the ID section 41. Graphics bus controller 19
Describes the destination information of the geometry processor that processes the target instruction as ID1, and the destination information of the geometry processor that processes the next instruction as ID2. When a drawing command is received (140), it is judged whether the command is the first drawing command of the processing (141), and if it is the first command, the geometry processor executing the command is the identifier (destination) 1 The information is set in the ID1 and stored as the geometry processor of (1) (142). Further, it is determined whether the instruction is one-vertex data (the instruction stream ends with one instruction) (143), and if it is not one vertex, the identifier of the execution processor is set in ID2 (14).
4) When the setting of the ID part is completed, the instruction is transferred to the relevant geometry processor (146). In case of 1 vertex,
The load on all geometry processors is determined to determine which geometry processor to allocate the next instruction stream to.
It is set to D2 (145) and the instruction is transferred to the relevant geometry processor (146). If it is not the first instruction, it is judged whether it is an instruction belonging to a stream in which any geometry processor is already assigned and some instructions are processed (147), and if there is a corresponding stream, it is determined whether it is the last instruction. Judgment (148), if it is the last instruction, the identifier of the executing geometry processor is set to ID1, and the load of all geometry processors is judged to determine the geometry processor to which the next instruction stream is allocated and set it to ID2. (149), applicable geometry
Transfer to the processor (155). If it is not the last instruction of the corresponding stream, the identifiers of the executing geometry processors are set in ID1 and ID2 (150) and transferred to the corresponding geometry processor (155). If it is an instruction of a new stream, the identifier of the geometry processor to be assigned to the next stored stream is set to ID1 (151). Further, it is judged whether the instruction is one vertex data (152), and if it is not one vertex, the identifier of the execution geometry processor is set in ID2 (153),
Transfer the instruction to the corresponding geometry processor (15
5). In the case of one vertex, the load of all geometry processors is determined, the geometry processor to which the next instruction stream is assigned is determined, set to ID2 and stored (154), and the instruction is transferred to the corresponding geometry processor. (155). When there is no drawing command and the end of drawing is identified (156), this processing ends.
【0019】なお、画順序情報の指定は、本発明で述べ
た描画順序情報の指定を含むプロトコルを応用プログラ
ムに公開し応用プログラム自身が定義する方法の他、応
用プログラムでの実行順序を描画順序情報として応用プ
ログラムでの描画命令ストリームの出現順序を検出して
描画順序情報の指定を含むプロトコルを生成する手段
(ライブラリ・プログラム)を設ける方法がある。The designation of the stroke order information is not limited to the method of releasing the protocol including the designation of the rendering order information described in the present invention to the application program and defining the application program itself, or the execution order of the application program in the rendering order. There is a method of providing means (library program) for detecting the appearance order of the drawing instruction stream in the application program as information and generating a protocol including designation of the drawing order information.
【0020】実施例2として、CPUから渡されるデー
タが個々の頂点毎ではなく複数の頂点の集合である描画
命令ストリームの場合を考える。図11は描画命令スト
リームの形式である。1つの命令は、ヘッダ部分の12
バイトとデータ部分の(24バイト*頂点数)バイトで
構成され、ヘッダ部分は命令の種別を示すオペコード部
120、描画順序情報を示すID部121、頂点数を示
すカウント部128、およびデータ部分は各3次元座標
の座標値を表すx座標122、y座標123、z座標1
24、と座標の色を赤(R)/緑(G)/青(B)で表
すR値125、G値126、B値127の任意数の集合
で構成される。オペコード部n1の値の意味は 0001:折れ線の座標データ 0002:三角形列の座標データ ID部121の値はグラフィックスシステム内で変化す
ることはない。ジオメトリ演算部で産出した描画命令ス
トリームにおいて、図12に示す情報(図6の変型)を
生成、図7の手段を用いて描画順序に従ってラスター変
換部に描画命令ストリームを転送することにより、実現
できる。As a second embodiment, let us consider a case where the data passed from the CPU is a drawing command stream in which a plurality of vertices are collected instead of individual vertices. FIG. 11 shows the format of the drawing command stream. One instruction is 12 in the header part.
The header part is composed of (24 bytes * number of vertices) bytes, and the header part includes an operation code part 120 indicating the type of instruction, an ID part 121 indicating drawing order information, a count part 128 indicating the number of vertices, and a data part. X-coordinate 122, y-coordinate 123, z-coordinate 1 representing the coordinate value of each three-dimensional coordinate
24, and the color of coordinates is represented by red (R) / green (G) / blue (B), and is composed of an arbitrary number of sets of R value 125, G value 126, and B value 127. The meaning of the value of the operation code portion n1 is: 0001: Coordinate data of polygonal line 0002: Coordinate data of triangular row The value of the ID portion 121 does not change in the graphics system. This can be realized by generating the information (variant of FIG. 6) shown in FIG. 12 in the drawing command stream produced by the geometry calculation unit and transferring the drawing command stream to the raster conversion unit according to the drawing order using the means of FIG. .
【0021】図12は描画命令ストリームの描画順序管
理テーブルの構成を示したものである。描画順序管理テ
ーブル130は図6と同様、4バイト構成であり項目数
は256個とする。この256という数値は描画命令ス
トリームの中の描画順序を設定する項目の2バイトのう
ち1バイトで指定できる限界値を用いている。これは描
画順序情報の1つとしてプロセス識別子も用いる時に1
バイトを使用することを考慮して設けた数値であるが、
情報の設定方法や設定格納するメモリの容量などによっ
て変更してもよい。描画順序管理テーブル130の値は
受け取った描画命令をバッファに格納する時に順序情報
を識別し、描画命令ストリーム格納バッファ131に格
納されている1番目の描画命令ストリーム135の描画
順序は2なので2番目の項目134に描画命令ストリー
ム135の先頭アドレスを設定し、2番目の描画命令ス
トリーム133の描画順序は1なので1番目の項目13
2に描画命令ストリーム133の先頭アドレスを設定す
る、という対応で各情報を格納する。描画順序管理テー
ブル130の各項目の初期値は0とし、各項目が0の場
合は該当する順番のデータが未受理と判断する。FIG. 12 shows the structure of the drawing order management table of the drawing command stream. As in FIG. 6, the drawing order management table 130 has a 4-byte structure and the number of items is 256. The numerical value of 256 uses a limit value that can be specified by 1 byte of 2 bytes of the item for setting the drawing order in the drawing command stream. This is 1 when the process identifier is also used as one of the drawing order information.
Although it is a numerical value set considering the use of bytes,
It may be changed according to the information setting method and the capacity of the memory for setting and storing. The value of the drawing order management table 130 identifies the order information when storing the received drawing command in the buffer, and the drawing order of the first drawing command stream 135 stored in the drawing command stream storage buffer 131 is 2 The first address of the drawing instruction stream 135 is set in the item 134 of the first item 13 and the drawing order of the second drawing instruction stream 133 is 1.
Each information is stored in correspondence with setting the start address of the drawing instruction stream 133 to 2. The initial value of each item in the drawing order management table 130 is set to 0. When each item is 0, it is determined that the data in the corresponding order is unaccepted.
【0022】[0022]
【発明の効果】本発明によれば、応用プログラムを複数
のCPUの上で複数のスレッドで並列に処理し、各スレ
ッドが順次生成する描画命令ストリームが混在して転送
されても、応用プログラムが指定もしくは意識して実行
した描画順序通りに描画が行われるので、並列プロセッ
サを用いた表示処理装置においても、正しい品質の描画
が可能となる。また、応用プログラムの各スレッド間で
グラフィックスシステムへ転送する際に排他制御を行な
う必要が無くなり、排他制御のオーバヘッドを無くすこ
とができ、また、複数のスレッドの並列度を上げること
ができ、高速描画が可能になる。また、応用プログラム
から描画順序を明示的に指示することにより、応用プロ
グラムにおいて実行順序に縛られたコーディングを行な
う必要がなくなり、APIに柔軟性を持たせることがで
きる。According to the present invention, even if an application program is processed in parallel by a plurality of threads on a plurality of CPUs and the drawing instruction streams sequentially generated by the threads are mixed and transferred, the application program can be executed. Since the drawing is performed in the drawing order specified or consciously executed, it is possible to perform the drawing with the correct quality even in the display processing device using the parallel processor. In addition, it is not necessary to perform exclusive control when transferring to the graphics system between the threads of the application program, the overhead of exclusive control can be eliminated, and the parallelism of a plurality of threads can be increased. It becomes possible to draw. Further, by explicitly instructing the drawing order from the application program, it is not necessary to perform coding that is bound to the execution order in the application program, and the API can have flexibility.
【図1】本発明の概要を説明するための図である。FIG. 1 is a diagram for explaining an outline of the present invention.
【図2】本発明による表示処理装置を含むシステムの構
成を示すブロック図である。FIG. 2 is a block diagram showing a configuration of a system including a display processing device according to the present invention.
【図3】描画命令の形式を示す図である。FIG. 3 is a diagram showing a format of a drawing command.
【図4】描画命令ストリームの例(折れ線)を示す図で
ある。FIG. 4 is a diagram showing an example (a polygonal line) of a drawing instruction stream.
【図5】描画命令ストリームの例(三角形列)を示す図
である。FIG. 5 is a diagram showing an example (triangular string) of a drawing instruction stream.
【図6】描画順序管理テーブルの構成と該テーブルと描
画命令格納バッファの関係を示す図である。FIG. 6 is a diagram showing a configuration of a drawing order management table and a relationship between the table and a drawing command storage buffer.
【図7】転送制御情報の構成を示す図である。FIG. 7 is a diagram showing a structure of transfer control information.
【図8】描画命令のID部の処理の流れを示すブロック
図である。FIG. 8 is a block diagram showing a processing flow of an ID part of a drawing command.
【図9】描画命令のID部の処理のフローチャートを示
す図である。FIG. 9 is a diagram showing a flowchart of processing of an ID part of a drawing command.
【図10】描画命令のID部の計算制御処理のフローチ
ャートを示す図である。FIG. 10 is a diagram showing a flowchart of calculation control processing of an ID portion of a drawing command.
【図11】描画命令ストリームの形式を示す図である。FIG. 11 is a diagram showing a format of a drawing instruction stream.
【図12】描画命令ストリームの描画順序管理テーブル
の構成を示す図である。FIG. 12 is a diagram showing a configuration of a drawing order management table of a drawing instruction stream.
11〜14 主プロセッサ 15 バス・コントローラ 16 主メモリ 17 システムバス 18 I/O制御装置 19 グラフィックス・バス・コントローラ 20 メモリ 21 ラスター変換器 22 フレームメモリ 23〜26 入出力FIFO 27〜30 ジオメトリ・プロセッサ 31〜34 メモリ 50 応用プログラム 51〜54 スレッドプログラム 55〜58 描画命令ストリームの描画命令 59〜62 描画順序情報 63 グラフィックスシステム 64 順序情報識別手段 65 描画順序情報 66 ジオメトリ演算部 67 順序制御手段 68 ラスター変換部 69〜72 新描画命令ストリーム 73 CRT 11-14 Main Processor 15 Bus Controller 16 Main Memory 17 System Bus 18 I / O Controller 19 Graphics Bus Controller 20 Memory 21 Raster Converter 22 Frame Memory 23-26 Input / Output FIFO 27-30 Geometry Processor 31 -34 memory 50 application program 51-54 thread program 55-58 drawing command of drawing command stream 59-62 drawing order information 63 graphics system 64 order information identifying means 65 drawing order information 66 geometry operation section 67 sequence control means 68 raster conversion Part 69-72 New drawing command stream 73 CRT
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 庁内整理番号 FI 技術表示箇所 // G06T 13/00 9365−5H G06F 15/62 340 A (72)発明者 桑名 利幸 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内 (72)発明者 萬田 雅人 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア開発本部内─────────────────────────────────────────────────── ─── Continuation of the front page (51) Int.Cl. 6 Identification number Internal reference number FI Technical display location // G06T 13/00 9365-5H G06F 15/62 340 A (72) Inventor Toshiyuki Kuwana Hitachi, Ibaraki Prefecture 2-5-1 Omika-cho, Oita-shi, Ltd. Inside the Omika Plant, Hitachi Ltd. (72) Inventor Masato Manda, 5030 Totsuka-cho, Totsuka-ku, Yokohama-shi, Kanagawa Within the software development headquarters of Hitachi, Ltd.
Claims (5)
描画命令を処理し、その処理結果に基づき表示画面上に
表示を行なう並列プロセッサを用いる表示装置であっ
て、 上位装置において複数のスレッドからなる応用プログラ
ムの夫々のスレッドが順次生成するストリーム順序情報
及び描画順序情報を有する描画命令からなる描画命令ス
トリームが混在して転送された複数の描画命令ストリー
ムを受信する受信手段と、 記憶装置に前記受信した描画命令を順次格納し、かつ前
記ストリーム順序情報及び描画順序情報に基づき該順次
格納した各描画命令の描画順序を指定するテーブルを作
成する手段と、 該テーブルを参照して描画順序にしたがい記憶装置から
描画命令を読み出し、該描画命令に対して該描画命令を
処理するプロセッサを前記複数のプロセッサの中から割
り当てる割当手段と、 プロセッサの処理結果を前記描画順序にしたがい順次読
み込み描画命令ストリーム毎に描画を行なう描画手段を
備えることを特徴とする並列プロセッサを用いる表示装
置。1. A display device using a parallel processor for processing a drawing command by a plurality of processors capable of operating in parallel and displaying the result on a display screen based on the processing result, wherein the host device comprises a plurality of threads. Receiving means for receiving a plurality of drawing command streams, in which a drawing command stream composed of drawing command having the drawing order information and the stream order information sequentially generated by each thread of the program, are mixed and received by the storage device. Means for sequentially storing drawing commands and creating a table for designating the drawing order of the drawing commands stored in sequence based on the stream order information and the drawing order information; and a storage device according to the drawing order by referring to the table. A drawing instruction from the drawing command and processing the drawing instruction in response to the drawing instruction. A display device using a parallel processor, comprising: allocation means for allocating among a number of processors, and drawing means for sequentially reading the processing results of the processors according to the drawing order and drawing for each drawing instruction stream.
表示装置において、 前記テーブルは、描画命令ストリーム順に該ストリーム
内の描画命令の前記記憶装置におけるアドレスを描画順
序にしたがい格納することを特徴とする並列プロセッサ
を用いる表示装置。2. The display device using the parallel processor according to claim 1, wherein the table stores the drawing command stream addresses in the storage device of the drawing commands in the stream according to the drawing order. A display device using a parallel processor.
表示装置において、 前記割当手段は、前記各描画命令のID部に該描画命令
に割り当てられる第1のプロセッサの識別子と該描画命
令に続く次描画命令に割り当てられる第2のプロセッサ
の識別子を設定し、 前記記憶装置から読み出された描画命令の第1のプロセ
ッサの識別子として前記複数のプロセッサの中からその
負荷状態に基づき選択したプロセッサのプロセッサ識別
子を設定し、前記第2のプロセッサの識別子としては、
次描画命令が同一描画命令ストリームに属するときは第
1のプロセッサの識別子と同一のプロセッサの識別子を
設定し、次描画命令が他の描画命令ストリームに属する
ときは前記複数のプロセッサの中からその負荷状態に基
づき選択したプロセッサのプロセッサ識別子を設定する
ことを特徴とする並列プロセッサを用いる表示装置。3. The display device using the parallel processor according to claim 1, wherein the assigning unit assigns an ID part of each of the drawing commands to the identifier of the first processor allocated to the drawing command, and next to the drawing command. The processor of the processor which sets the identifier of the second processor assigned to the drawing command and is selected as the identifier of the first processor of the drawing command read from the storage device from the plurality of processors based on its load state An identifier is set, and as the identifier of the second processor,
When the next drawing instruction belongs to the same drawing instruction stream, the same processor identifier as the identifier of the first processor is set, and when the next drawing instruction belongs to another drawing instruction stream, the load from the plurality of processors is set. A display device using a parallel processor characterized by setting a processor identifier of a processor selected based on a state.
表示装置において、 前記描画手段は、読み込んだ描画命令にしたがい描画を
行ない、該読み込んだ描画命令のID部に設定された第
2のプロセッサの識別子で指定されるプロセッサから次
の描画命令を読み込むことを特徴とする並列プロセッサ
を用いる表示装置。4. The display device using the parallel processor according to claim 3, wherein the drawing unit performs drawing according to the read drawing command, and the second processor of the second processor set in the ID portion of the read drawing command. A display device using a parallel processor characterized by reading the next drawing command from a processor specified by an identifier.
描画命令を処理し、その処理結果に基づき表示画面上に
表示を行なう並列プロセッサを用いる表示装置であっ
て、 上位装置において複数のスレッドからなる応用プログラ
ムの夫々のスレッドが順次生成する複数の頂点データか
らなりストリーム順序情報及び頂点数情報を有する描画
命令ストリームが並列して転送された複数の描画命令ス
トリームを受信する受信手段と、 記憶装置に前記受信した描画命令ストリームを順次格納
し、かつ前記ストリーム順序情報に基づき該順次格納し
た各描画命令ストリームの描画順序を指定するテーブル
を作成する手段と、 該テーブルを参照して描画順序にしたがい記憶装置から
描画命令を読み出し、該描画命令に対して該描画命令を
処理するプロセッサを前記複数のプロセッサの中から割
り当てる割当手段と、 プロセッサの処理結果を前記描画順序にしたがい順次読
み込み描画命令ストリーム毎に描画を行なう描画手段を
備えることを特徴とする並列プロセッサを用いる表示装
置。5. A display device using a parallel processor for processing a drawing command by a plurality of processors capable of operating in parallel and displaying the result on a display screen based on the processing result, wherein the host device comprises a plurality of threads. Receiving means for receiving a plurality of drawing instruction streams to which a drawing instruction stream consisting of a plurality of vertex data sequentially generated by respective threads of the program and having stream order information and vertex number information is transferred in parallel, Means for sequentially storing the received drawing command streams and creating a table for designating the drawing order of the drawing command streams sequentially stored based on the stream order information, and a storage device according to the drawing order by referring to the table. A drawing command is read from the processor and the drawing command is processed in response to the drawing command. A display device using a parallel processor, comprising: an allocation unit that allocates a processor from the plurality of processors; and a drawing unit that sequentially reads the processing result of the processor according to the drawing order and draws for each drawing instruction stream.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6295697A JPH08138060A (en) | 1994-11-04 | 1994-11-04 | Display processor using parallel processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP6295697A JPH08138060A (en) | 1994-11-04 | 1994-11-04 | Display processor using parallel processor |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH08138060A true JPH08138060A (en) | 1996-05-31 |
Family
ID=17823999
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6295697A Pending JPH08138060A (en) | 1994-11-04 | 1994-11-04 | Display processor using parallel processor |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH08138060A (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002031769A1 (en) * | 2000-10-10 | 2002-04-18 | Sony Computer Entertainment Inc. | Data processing system and method, computer program, and recorded medium |
WO2007043130A1 (en) * | 2005-10-03 | 2007-04-19 | Fujitsu Limited | Drawer, semiconductor integrated circuit, and drawing method |
JP2007193835A (en) * | 1999-12-06 | 2007-08-02 | Nvidia Corp | Transform, lighting and rasterization system supported by single semiconductor platform |
CN103593383A (en) * | 2012-08-13 | 2014-02-19 | 株式会社突飞软件 | Rendering processing apparatus and method using multiprocessing |
JP2014038576A (en) * | 2012-08-13 | 2014-02-27 | Tobesoft Co Ltd | Rendering processing device and method using multiprocessing |
CN111476706A (en) * | 2020-06-02 | 2020-07-31 | 长沙景嘉微电子股份有限公司 | Vertex parallel processing method and device, computer storage medium and electronic equipment |
-
1994
- 1994-11-04 JP JP6295697A patent/JPH08138060A/en active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007193835A (en) * | 1999-12-06 | 2007-08-02 | Nvidia Corp | Transform, lighting and rasterization system supported by single semiconductor platform |
WO2002031769A1 (en) * | 2000-10-10 | 2002-04-18 | Sony Computer Entertainment Inc. | Data processing system and method, computer program, and recorded medium |
JP2002244646A (en) * | 2000-10-10 | 2002-08-30 | Sony Computer Entertainment Inc | System and method for data processing, computer program, and recording medium |
US7212211B2 (en) | 2000-10-10 | 2007-05-01 | Sony Computer Entertainment Inc. | Data processing system and method, computer program, and recording medium |
WO2007043130A1 (en) * | 2005-10-03 | 2007-04-19 | Fujitsu Limited | Drawer, semiconductor integrated circuit, and drawing method |
CN103593383A (en) * | 2012-08-13 | 2014-02-19 | 株式会社突飞软件 | Rendering processing apparatus and method using multiprocessing |
JP2014038576A (en) * | 2012-08-13 | 2014-02-27 | Tobesoft Co Ltd | Rendering processing device and method using multiprocessing |
JP2014038577A (en) * | 2012-08-13 | 2014-02-27 | Tobesoft Co Ltd | Rendering processing device and method using multiprocessing |
US8952970B2 (en) | 2012-08-13 | 2015-02-10 | Tobesoft Co., Ltd. | Rendering processing apparatus and method using multiprocessing |
US8952971B2 (en) | 2012-08-13 | 2015-02-10 | Tobesoft Co., Ltd. | Rendering processing apparatus and method using multiprocessing |
CN111476706A (en) * | 2020-06-02 | 2020-07-31 | 长沙景嘉微电子股份有限公司 | Vertex parallel processing method and device, computer storage medium and electronic equipment |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2770598B2 (en) | Graphic display method and apparatus | |
US5940086A (en) | System and method for dynamically allocating data among geometry accelerators in a computer graphics system | |
US4928247A (en) | Method and apparatus for the continuous and asynchronous traversal and processing of graphics data structures | |
US6701420B1 (en) | Memory management system and method for allocating and reusing memory | |
US5757385A (en) | Method and apparatus for managing multiprocessor graphical workload distribution | |
CN101371247B (en) | Parallel array architecture for a graphics processor | |
US5097411A (en) | Graphics workstation for creating graphics data structure which are stored retrieved and displayed by a graphics subsystem for competing programs | |
US6437788B1 (en) | Synchronizing graphics texture management in a computer system using threads | |
US5440746A (en) | System and method for synchronizing processors in a parallel processing environment | |
US5251322A (en) | Method of operating a computer graphics system including asynchronously traversing its nodes | |
US5155822A (en) | High performance graphics workstation | |
JP3416877B2 (en) | Apparatus and method for parallel processing of tasks | |
US20030164832A1 (en) | Graphical display system and method | |
US20070273700A1 (en) | Method, system and computer program product for efficiently utilizing limited resources in a graphics device | |
CN101261729B (en) | System and method for managing multiple contexts in a decentralized graphics processing unit | |
EP2495665B1 (en) | Command transfer controlling apparatus and command transfer controlling method | |
JP2007533029A (en) | Scalable shader architecture | |
TWI633516B (en) | Power efficient attribute handling for tessellation and geometry shaders | |
US5471579A (en) | Graphics system using parallel processors and processing method of the same | |
TW201407482A (en) | Graphics processing unit sharing between many applications | |
JPH08138060A (en) | Display processor using parallel processor | |
KR20030020367A (en) | Method and apparatus in a data processing system for dynamic graphics context switching | |
JPH08249502A (en) | Method and apparatus for improved graphics picking using auxiliary buffer information | |
TW201351276A (en) | Scheduling and execution of compute tasks | |
JPH10240700A (en) | Graphics parallel processor |