JPH07282272A - 描画処理システム - Google Patents

描画処理システム

Info

Publication number
JPH07282272A
JPH07282272A JP6074631A JP7463194A JPH07282272A JP H07282272 A JPH07282272 A JP H07282272A JP 6074631 A JP6074631 A JP 6074631A JP 7463194 A JP7463194 A JP 7463194A JP H07282272 A JPH07282272 A JP H07282272A
Authority
JP
Japan
Prior art keywords
processing
instruction
drawing command
parallel
block
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
JP6074631A
Other languages
English (en)
Inventor
Shoji Nakamura
昭次 中村
Shinji Kimura
信二 木村
Yumiko Sugita
由美子 杉田
Reiki Yamamoto
礼己 山本
Eriko Koda
恵理子 幸田
Toshiyuki Kuwana
利幸 桑名
Masahito Manda
雅人 萬田
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 JP6074631A priority Critical patent/JPH07282272A/ja
Priority to US08/419,278 priority patent/US5550962A/en
Publication of JPH07282272A publication Critical patent/JPH07282272A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)
  • Multi Processors (AREA)
  • Digital Computer Display Output (AREA)

Abstract

(57)【要約】 【目的】 クライアントプログラムからの描画命令を並
列処理することが可能である、クライアントプログラム
からの命令列を実行する描画サーバを具備する分散型描
画処理システムを提供することにある。 【構成】 クライアントプログラムから転送される描画
命令列を集中的に実行して、グラフィックス表示を行う
描画サーバを具備する分散型描画処理システムにおい
て、前記クライアントプログラムが、描画命令列を、並
列処理が可能な描画命令列の描画命令ブロックと、並列
処理が不可能な描画命令列の描画命令ブロックとにブロ
ック化し、当該ブロック化した描画命令列を描画サ−バ
に送信する実行制御指示手段を具備し、前記描画サーバ
が、前記ブロック化された描画命令列のブロックを単位
として描画命令列を実行する実行制御決定手段を具備す
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、描画処理システムにか
かり、特に、描画処理を集中的に実行する描画サーバを
備え、クライアントプログラムから描画サーバへ描画命
令を転送してグラフィックス表示する分散型描画処理シ
ステムにおいて、サーバプログラムをマルチプロセッサ
システム上に搭載する際の、並列描画処理技術に関す
る。
【0002】
【従来の技術】分散型描画システムとして、”The
X Window System”(ACM Trans
actions on Graphics、Vol.5、
No.2、pp.78−109)に述べられているXウ
ィンドウシステムが公知である。
【0003】前記公知のXウィンドウシステムは、1つ
の表示画面に対して描画処理を集中的に実行する描画サ
ーバを備え、表示のクライアントプログラム(以下、ク
ライアントと称す)から描画命令を描画サーバへ転送し
てグラフィックス表示する方式の分散型描画処理システ
ムである。
【0004】Xウィンドウシステムでは、1つの描画サ
ーバを、複数のクライアントと接続可能にすることによ
り、1つの表示画面上で、独立なアプリケーションプロ
グラムを同時に利用可能にすると共に、描画サーバ内で
は、1つのクライアントからの描画命令については到着
順で逐次的に処理することにより、グラフィックス表示
の一貫性を保証している。
【0005】Xウィンドウシステムの描画サーバは、1
つのスレッドとして動作するので、1つのクライアント
が負荷の大きい描画命令を転送した場合に、描画サーバ
は1つのクライアントの処理に占有されてしまい、シス
テムの応答性が低下するという問題点がある。
【0006】この問題点を解決する従来技術として、”
The Multi−Threaded X Serve
r”(PROCEEDINGS 6TH ANNUAL
X TECHNICAL CONFERENCE、pp.
73−89)に述べられている方式がある。
【0007】前記方式は、複数のクライアントが描画サ
ーバと接続する場合、描画サーバ内に各クライアント毎
に専用の描画スレッドを割り付けることにより、異なる
クライアントの描画命令を並列に処理できるようにする
方式である。
【0008】この方式によれば、各クライアント毎に独
立な描画スレッドが動作するので、1つのクライアント
が負荷の大きい命令を転送する場合にも、描画サーバが
占有されることがなくなる。
【0009】
【発明が解決しようとする課題】Xウィンドシステム
の、特徴の一つとして通信路が順序性を保ったメッセー
ジストリームであることが上げられる。
【0010】前記従来例の表示方式では、アプリケーシ
ョンプログラムであるクライアント側から受け付けた描
画コマンドを逐次に実行して表示していたので高速化に
限界があるという問題点があった。
【0011】これを複数プロセッサで並列に描画コマン
ドを実行して表示することによって性能を上げようとす
る場合、複数プロセッサで描画コマンドを実行する際の
追い越しによる表示の不正が生じるという問題点があっ
た。
【0012】前記複数プロセッサで描画コマンドを実行
する際の追い越しによる表示の不正を図13を用いて説
明する。
【0013】図13において、表示画面10上で、大き
な赤い丸11の上に、青い四角形12を描画するものと
する。
【0014】前記従来例のように、描画コマンドを逐次
に実行して表示する場合には、始めに、赤い丸11を書
く描画コマンドが入力され、次に、青い四角形12を書
く描画コマンドが入力されると、これを順次実行して表
示するので何等問題なく描画することが可能である。
【0015】一方、複数プロセッサで並列に描画コマン
ドを実行して表示する場合には、赤い丸11の描画中
に、青い四角形12の描画を始めてしまうと、両者が重
なり合う部分13,14で描画処理が追い越し、先に、
青い四角形12が描画され、その後で大きな赤い丸11
が描画される可能性があり、この場合に青い四角形12
は表示画面10上に残らなくなるという問題点があっ
た。
【0016】前記したように、従来技術の表示方式で
は、異なるクライアントからの描画命令に対しては並列
処理可能であるが、同一のクライアントからの描画命令
に対しては並列に処理できず、描画サーバをマルチプロ
セッサ上に搭載しても、1つのクライアントからの描画
命令については、高速化が困難であるという問題点があ
る。
【0017】本発明は、前記従来技術の問題点を解決す
るためになされたものであり、本発明の目的は、クライ
アントプログラムからの命令列を実行する描画サーバを
具備する分散型描画処理システムにおいて、クライアン
トプログラムからの描画命令を並列処理することが可能
となる技術を提供することにある。
【0018】本発明の前記目的並びにその他の目的及び
新規な特徴は、本明細書の記載及び添付図面によって明
らかにする。
【0019】
【課題を解決するための手段】本願において開示される
発明のうち、代表的なものの概要を簡単に説明すれば、
下記の通りである。
【0020】(1)クライアントプログラムから転送さ
れる描画命令列を集中的に実行して、グラフィックス表
示を行う描画サーバを具備する分散型描画処理システム
において、前記クライアントプログラムが、描画命令列
を、並列処理が可能な描画命令列の描画命令ブロック
と、並列処理が不可能な描画命令列の描画命令ブロック
とにブロック化し、当該ブロック化した描画命令列を描
画サ−バに送信する実行制御指示手段を具備し、前記描
画サーバが、前記ブロック化された描画命令列のブロッ
クを単位として描画命令列を実行する実行制御決定手段
を具備することを特徴とする。
【0021】
【作用】前記第1項の手段によれば、クライアントプロ
グラムからの命令列を実行する描画サーバを具備する分
散型描画処理システムにおいて、クライアントプログラ
ムが、複数の描画命令列を、並列処理可能な命令列を示
す並列処理ブロックと、並列処理不可能な命令列を示す
逐次処理ブロックとにブロック化し、当該ブロック化し
た描画命令列を描画サーバに転送し、描画サーバが、ク
ライアントプログラムから指定された当該ブロックの描
画命令列を解析して、描画命令列の実行、同期制御を決
定し、並列処理ブロック内の描画命令列を並列に実行す
るようにしたので、クライアントプログラムからの描画
命令列を高速に処理することが可能となる。
【0022】これにより、描画サーバをマルチプロセッ
サ上に搭載して、並列処理ブロック内の命令を並列に実
行することができ、クライアントプログラムからの描画
命令をより高速に処理することが可能である。
【0023】
【実施例】以下、図面を参照して本発明の実施例を詳細
に説明する。
【0024】なお、実施例を説明するための全図におい
て、同一機能を有するものは同一符号を付け、その繰り
返しの説明は省略する。
【0025】図1は、本発明の描画処理システムの概略
を説明するための図である。
【0026】図1において、101はクライアントプロ
グラム、102は描画命令実行制御指示機構、103は
描画ライブラリ、104は描画サーバ、105はディス
パッチャ、106a,106bは描画処理スレッド、1
07はスレッド実行状態情報、108は表示系ハードウ
ェアである。
【0027】描画命令を発行して表示依頼するクライア
ントプログラム(101)(以下、クライアントと称
す)は、文字や図形等の描画命令を描画サーバに転送す
るための描画ライブラリ(103)と、並列実行可能な
命令列を示す並列処理ブロックと、並列実行不可能な命
令列を示す逐次処理ブロックとを指定する実行制御命令
を描画サーバに転送するための描画命令実行制御指示機
構(102)とから構成される。
【0028】クライアント(101)からの描画要求を
処理する描画サーバ(104)は、クライアント(10
1)から転送される描画命令を読み出して解釈し、対応
する描画処理部分を呼び出すためのディスパッチャ(1
05)と、描画処理を実行する描画処理スレッド(10
6a,106b)と、描画処理スレッド(106a,1
06b)が実行状態か、空き状態かを示すスレッド実行
状態情報(107)とから構成される。
【0029】スレッド実行状態情報(107)は、描画
処理スレッド(106a,106b)毎に、実行状態
か、空き状態かを示すテーブルから構成される。
【0030】次に、図1における描画処理の流れについ
て説明する。
【0031】クライアント(101)は、描画命令実行
制御指示機構(102)と描画ライブラリ(103)を
呼び出して、描画サーバ(104)にグラフィックス表
示を依頼する。
【0032】クライアントプログラム(101)からの
表示依頼により、描画サーバ(104)のディスパッチ
ャ(105)が、クライアントプログラム(101)か
ら転送された描画命令の解釈後、スレッド実行状態情報
(107)から、描画処理スレッド(106a,106
b)の中で、空き状態の1つの描画処理スレッド(10
6aあるいは106b)を見つけ出し、スレッド実行状
態情報(107)内の当該スレッド(106aあるいは
106b)の情報を実行状態に設定してから、当該スレ
ッド(106aあるいは106b)を起動して、描画命
令を実行させる。
【0033】起動された描画処理スレッド(106aあ
るいは106b)は、描画命令にしたがい、表示系ハー
ドウェア(108)を操作して描画処理を実行し、描画
処理終了後にスレッド実行状態情報(107)の当該ス
レッド(106aあるいは106b)の情報を空き状態
に設定する。
【0034】以上で、クライアントプログラム(10
1)からの描画要求に対する一連の処理が終了する。
【0035】図2は、本発明の描画処理システムの一実
施例の概略構成を示すブロック図である。
【0036】図2において、201はプロセッサや主記
憶装置を含む処理装置である。
【0037】当該処理装置201上で、クライアントプ
ログラム(101)、描画サーバ(104)、オペレー
ティングシステム(以下、OSと称す)(203)が動
作する。
【0038】スレッド実行状態情報(107)は、 処
理装置(201)内の主記憶領域に格納される。
【0039】202はクライアント(101)が描画サ
ーバ(104)へ描画命令を転送するための通信路であ
り、OS(203)のプロセス間通機能等により実現さ
れる通信路である。
【0040】図2においては、クライアント(101)
と描画サーバ(104)を同一の処理装置上に搭載して
いるが、通信路(202)をネットワーク上に設定する
ことにより、両者を異なる処理装置上に搭載することも
可能である。
【0041】204は2値多値変換等を行うグラフィッ
クスハードウェア、205は実画面の表示データを格納
するための表示用記憶装置(フレームバッファ)、20
6は当該表示用記憶装置の内容が実際に表示されるディ
スプレィ装置である。
【0042】表示用記憶装置(205)の内容をディス
プレィ装置(206)へ展開するための制御装置は、簡
略化のため、当該ディスプレィ装置内に含むものとす
る。
【0043】207は磁気ディスク装置等の補助記憶装
置、208はキーボードやマウス等の入力装置である。
以上の装置が、209のバスを介して接続されている。
【0044】描画処理の流れは前述した通りである。
【0045】図2では、描画処理スレッド(106a、
106b)を1つの処理装置上に搭載しているため、任
意時刻においては、どちらか1つのスレッドだけが動作
している。
【0046】図3は、図2における処理装置201をマ
ルチプロセッサシステムにした場合の構成を示すブロッ
ク図である。
【0047】処理装置1(301a)と処理装置2(3
01b)と処理装置3(301c)の3つの処理装置
と、主記憶装置(302)がバス(209)に接続され
ている。
【0048】主記憶装置(303)は、処理装置(30
1a、301b、301c)上でアクセスされるプログ
ラムやデータを置くための記憶装置である。
【0049】主記憶装置(302)は、3つの処理装置
(301a、301b、301c)で共有する構成にな
っているが、それぞれの処理装置に対して局所的に配置
することも可能である。
【0050】ディスパッチャ(105)を処理装置1
(301a)上で、描画処理スレッド1(106a)を
処理装置2(301b)上で、描画処理スレッド2(1
06b)を処理装置3(301c)上で、独立に動作さ
せることにより、任意時刻において、実際に並列に描画
処理を実行可能になる。
【0051】図4は、クライアントから描画サーバへ転
送する描画命令シーケンスの例を示す図である。
【0052】401の描画命令シーケンス例1の内容を
説明する。
【0053】402は後続の命令から並列に処理可能で
あることを示す並列処理ブロック開始命令1である。
【0054】なお、描画命令シーケンスには、複数個の
並列処理ブロック開始命令を設定可能であるので、便宜
的に、命令を番号付けして、第1番目に出現した並列処
理ブロック開始命令の402を並列処理ブロック開始命
令1とする。
【0055】以下、当該命令種別以外の命令について
も、同種別の命令を識別可能にするため、同様の規則に
より、番号付けする。
【0056】403は描画命令群1であり、408から
410で示されるように、複数個の描画命令から成る命
令列である。
【0057】404は前出の命令までが並列に処理可能
であることを示す並列処理ブロック終了命令1である。
【0058】以上で1つの並列処理ブロックを指定す
る。
【0059】並列処理ブロック終了命令(404)は、
並列処理可能な命令列の終りを示す命令であるため、後
続の命令と、当該ブロック内の命令の間には、逐次性が
あり、後続の命令を実行する場合には、以前に実行開始
した命令の終了を待つ必要があることを示す。
【0060】並列処理ブロック開始命令1(402)と
並列処理ブロック終了命令1(404)で囲まれている
描画命令群1(403)にある描画命令1(408)、
描画命令2(409)から描画命令n(410)までの
n個の描画命令を、並列に処理可能であることを示して
いる。
【0061】405は並列処理ブロック開始命令2、4
06は描画命令群2、407は並列処理ブロック終了命
令2であり、第2の並列処理ブロックを示している。
【0062】描画命令シーケンス例1(401)では、
2つの並列処理ブロックが連続しており、第1の並列処
理ブロック内の命令と、第2の並列処理ブロック内の命
令とは、逐次的に処理しなければならない。
【0063】図5は、並列処理ブロック内に逐次処理ブ
ロックを含む描画命令シーケンスの例を示す図である。
【0064】501の描画命令シーケンス例2の内容を
説明する。
【0065】描画命令シーケンス例2(501)は、描
画命令シーケンス例1(401)の第2の並列処理ブロ
ック内に2つの逐次処理ブロックを含めたものである。
【0066】503は後続の命令から並列処理不可能で
あることを示す、逐次処理ブロック開始命令1である。
【0067】504は複数個の描画命令から成る描画命
令群3、505は前出の命令までが並列処理不可能であ
ることを示す逐次処理ブロック終了命令1である。
【0068】以上が1つの逐次処理ブロックの指定であ
り、逐次処理ブロック開始命令1(503)と逐次処理
ブロック終了命令1(505)で囲まれている描画命令
群3(504)内の任意複数個の命令が並列処理不可能
であることを示している。
【0069】506は逐次処理ブロック開始命令2、5
07は描画命令群4、508は逐次処理ブロック終了命
令2であり、以上で第2の逐次処理ブロックを指定して
いる。
【0070】以上のように、描画命令シーケンス例2
(501)の第2の並列処理ブロックは、描画命令群2
(406)と、第1の逐次処理ブロック(503、50
4、505)と、第2の逐次処理ブロック(506、5
07、508)から構成されており、各逐次処理ブロッ
ク内の命令については並列処理不可能である。
【0071】しかしながら、描画命令群2内の描画命令
と、2つの逐次処理ブロックの単位では並列処理可能で
あることを示している。
【0072】502は描画命令0であり、描画命令シー
ケンス例2(501)は、描画命令0(502)と、第
1の並列処理ブロック(402、403、404)と、
第2の並列処理ブロック(405、406、503、5
04、505、506、507、508、407)と
が、並列処理不可能な逐次処理ブロックであることを示
している。
【0073】つまり、並列処理ブロック、逐次処理ブロ
ックに含まれていない描画命令やブロックについては、
逐次処理ブロック内の命令であるように扱う。
【0074】図6は、前記図4の描画命令シ−ケンスを
生成するプログラムの一例を示す図であり、図7は、前
記図5の描画命令シ−ケンスを生成するプログラムの一
例を示す図である。
【0075】クライアント(101)は、図6、図7に
示すアプリケ−ションプログラムから、図4、図5の描
画命令シ−ケンスを生成する。
【0076】次に、描画サーバ(104)内のディスパ
ッチャ(105)の処理手順について説明する。
【0077】前述したように、ディスパッチャ(10
5)は、クライアント(101)から転送される描画命
令を読み出して解釈し、任意の描画処理スレッド(10
6a,106b)に描画命令を実行させる部分である。
【0078】図8は、本実施例における、1クライアン
ト(101)から転送される描画命令シーケンスに対す
る描画サーバ(104)のディスパッチ処理の再上位部
分の処理手順を示すフロ−チャ−トである。
【0079】ステップ601において、後続の命令を逐
次処理ブロックの命令として処理するため、逐次命令デ
ィスパッチャを呼び出す。
【0080】逐次命令ディスパッチャから復帰後、ステ
ップ602において、クライアントからの描画命令がま
だ在るかを判別し、ステップ602の結果が「はい」の
場合には、ステップ601へ戻る。
【0081】ステップ602の結果が「いいえ」の場合
は、対象クライアント(101)からの描画要求の終了
であり、対象クライアント(101)に対するディスパ
ッチ処理を終了する。
【0082】図9は、本実施例における、逐次命令ディ
スパッチャルーチンの処理手順を示すフローチャ−トで
ある。
【0083】ステップ701は、逐次命令ディスパッチ
ャルーチンの局所変数を初期化する処理であり、ルーチ
ン内のディスパッチ処理ループを終了すべきことを示す
EndFlagをFalseに、ルーチン内で起動して
いる描画処理スレッドを示すTreadSetをEmp
tyに設定する。
【0084】TreadSetは、ルーチン内で起動し
ている描画処理スレッド(106a,106b)が登録
されるテーブルである。
【0085】ステップ702では、対象クライアント
(101)からの次の描画命令を読みだし、当該命令を
Instとする。
【0086】続くステップ703において、Instの
命令種別を判別する。ステップ703の結果、Inst
が並列処理ブロック開始命令の場合には、ステップ70
4へ進み、後続の命令を並列処理ブロックの命令として
処理するため、並列命令ディスパッチャを呼び出す。
【0087】ステップ703の結果、Instが並列処
理ブロック終了命令の場合には、ステップ705へ進
み、並列処理ブロック外エラーとして処理する。
【0088】ステップ703の結果、Instが逐次処
理ブロック開始命令の場合には、ステップ706へ進
み、逐次処理ブロック内エラーとして処理する。
【0089】ステップ703の結果、Instが逐次処
理ブロック終了命令の場合には、ステップ707へ進
み、ディスパッチ処理ループの終了を示すため、End
FlagをTrueに設定する。
【0090】ステップ703の結果、Instが上記の
実行制御命令(並列処理ブロック開始命令、並列処理ブ
ロック終了命令、逐次処理ブロック開始命令、逐次処理
ブロック終了命令の4つの命令を実行制御命令と呼ぶ)
のどれでもない場合には、ステップ708へ進み、描画
処理スレッド起動処理で、描画命令Instを実行す
る。
【0091】前記のステップ703からステップ708
で、描画処理スレッド(106aあるいは106b)を
起動した場合には、ステップ709において、Thre
adSetが示している、当該ルーチンから起動した描
画処理スレッド(106aあるいは106b)の処理終
了を待ち、当該スレッド(106aあるいは106b)
の処理終了後、ThreadSetからThreadを
消去する。
【0092】続いてステップ710へ進み、EndFl
agがTrueかを判別する。
【0093】ステップ710の結果が「いいえ」の場合
は、ステップ702へ進み、逐次命令のディスパッチ処
理を繰り返す。
【0094】ステップ710の結果が「はい」の場合
は、1つの逐次処理ブロックの終りであるので、当該ル
ーチンを呼び出した所へ復帰して、当該ルーチンでのデ
ィスパッチ処理を終了する。
【0095】図10は、本実施例における、並列命令デ
ィスパッチャルーチンの処理手順を示すフローチャ−ト
図である。
【0096】ステップ801は、並列命令ディスパッチ
ャルーチンの局所変数を初期化する処理であり、ルーチ
ン内のディスパッチ処理ループを終了すべきことを示す
EndFlagをFalseに、ルーチン内で起動して
いる描画処理スレッドを示すTreadSetをEmp
tyに設定する。
【0097】ステップ802では、対象クライアント
(101)からの次の描画命令を読みだし、当該命令を
Instとする。
【0098】続くステップ803において、Instの
命令種別を判別する。
【0099】ステップ803の結果、Instが並列処
理ブロック開始命令の場合には、ステップ804へ進
み、並列処理ブロック内エラーとして処理する。
【0100】ステップ803の結果、Instが並列処
理ブロック終了命令の場合には、ステップ805へ進
み、ディスパッチ処理ループの終了を示すため、End
FlagをTrueに設定する。
【0101】ステップ803の結果、Instが逐次処
理ブロック開始命令の場合には、ステップ806へ進
み、後続の命令を逐次処理ブロックの命令として処理す
るため、逐次命令ディスパッチャを呼び出す。
【0102】ステップ803の結果、Instが逐次処
理ブロック終了命令の場合には、逐次処理ブロック外エ
ラーとして処理する。
【0103】ステップ803の結果、Instが上記の
実行制御命令のどれでもない場合には、ステップ808
へ進み、描画処理スレッド起動処理で、描画命令Ins
tを実行する。
【0104】ステップ803からステップ808の一連
の処理に続き、ステップ809へ進み、EndFlag
がTrueかを判別する。
【0105】ステップ809の結果が「いいえ」の場合
は、ステップ802へ進み、並列命令のディスパッチ処
理を繰り返す。
【0106】ステップ809の結果が「はい」の場合
は、ステップ810へ進み、ThreadSetが示し
ている、当該ルーチンから起動した全描画処理スレッド
(106a,106b)の処理終了を待ち、当該スレッ
ド(106a,106b)の処理終了後、Thread
SetからThreadを消去する。
【0107】以上で、1つの並列処理ブロックの終りで
あるので、当該ルーチンを呼び出した所へ復帰して、当
該ルーチンでのディスパッチ処理を終了する。
【0108】図11は、本実施例における、前記ステッ
プ708やステップ808の描画処理スレッド起動処理
の処理手順を示すフロ−チャ−トである。
【0109】描画スレッド起動処理においては、当該処
理を実行するルーチンのInstとThreadSet
を参照可能であるとする。
【0110】ステップ901では、スレッド実行状態情
報(107)を検索して、空き状態のスレッド(106
aあるいは106b)を1つ選択し、当該スレッド(1
06aあるいは106b)をThreadとする。
【0111】ステップ902でThreadを当該ルー
チンのThreadSetに加え、ステップ903でT
hreadについてのスレッド実行状態情報(107)
を実行状態に設定する。
【0112】続いてステップ904において、Thre
adが示す描画処理スレッド(106aあるいは106
b)を起動して、Instを実行させる。
【0113】ステップ904において起動された描画処
理スレッド(106aあるいは106b)の処理は、当
該ディスパッチャ(105)の処理から分岐し、並行ま
たは並列に実行される。
【0114】図12は、本実施例における、描画処理ス
レッド終了処理の処理手順を示すフローチャ−トを示す
図であり、ステップ904から分岐された描画処理スレ
ッドが1つの描画命令の実行終了後に、当該処理を開始
する。
【0115】ステップ1001で、処理を終了した対象
描画処理スレッド(106aあるいは106b)をTh
readとする。
【0116】ステップ1002で、Threadについ
てのスレッド実行状態情報(107)を空き状態に設定
し、ステップ1003でThreadSetからThr
eadを削除する。
【0117】続いてステップ1004において、ステッ
プ709やステップ809で、当該描画処理スレッドの
実行終了待ち状態にあるディスパッチャを復帰させる。
【0118】以上で、一連の描画命令のディスパッチ処
理が終了する。
【0119】以上、本発明を実施例に基づき具体的に説
明したが、本発明は、前記実施例に限定されるものでは
なく、その要旨を逸脱しない範囲で種々変更し得ること
は言うまでもない。
【0120】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
【0121】(1)クライアントプログラムからの命令
列を実行する描画サーバを具備する分散型描画処理シス
テムにおいて、クライアントプログラムが、複数の描画
命令列を、並列処理可能な命令列を示す並列処理ブロッ
クと、並列処理不可能な命令列を示す逐次処理ブロック
とにブロック化し、当該ブロック化した描画命令列を描
画サーバに転送し、描画サーバが、クライアントプログ
ラムから指定された当該ブロックの描画命令列を解析し
て、描画命令列の実行、同期制御を決定し、並列処理ブ
ロック内の描画命令列を並列に実行するようにしたの
で、クライアントプログラムからの描画命令列を高速に
処理することが可能となる。
【0122】これにより、描画サーバをマルチプロセッ
サ上に搭載して、並列処理ブロック内の命令を並列に実
行することができ、クライアントプログラムからの描画
命令をより高速に処理することが可能である。
【0123】(2)クライアントプログラムが、並列処
理が可能な描画命令列の始まりと終わりを示す並列処理
ブロック開始命令および並列処理ブロック終了命令、あ
るいは、並列処理が不可能な描画命令列の始まりと終わ
りを示す逐次処理ブロック開始命令および逐次処理ブロ
ック終了命令を付加するようにしたので、描画サ−バに
おいて、並列に実行可能な描画命令列の検出を容易に行
うことが可能となる。
【図面の簡単な説明】
【図1】 本発明の描画処理システムの概略を説明する
ための図である。
【図2】 本発明の描画処理システムの一実施例の概略
構成を示すブロック図である。
【図3】 図2における処理装置をマルチプロセッサシ
ステムにした場合の構成を示すブロック図である。
【図4】 クライアント側から描画サーバへ転送する描
画命令シーケンスの一例を示す図である。
【図5】 クライアント側から描画サーバへ転送する描
画命令シーケンスの他の例を示す図である。
【図6】 図4の描画命令シ−ケンスを生成するプログ
ラムの一例を示す図である。
【図7】 前記図5の描画命令シ−ケンスを生成するプ
ログラムの一例を示す図である。
【図8】 本実施例における、1クライアントから転送
される描画命令シーケンスに対する描画サーバのディス
パッチ処理の再上位部分の処理手順を示すフローチャ−
トである。
【図9】 本実施例における、逐次命令ディスパッチャ
ルーチンの処理手順を示すフローチャ−トである。
【図10】 本実施例における、並列命令ディスパッチ
ャルーチンの処理手順を示すフローチャ−トである。
【図11】 本実施例における、描画処理スレッド起動
処理の処理手順を示すフローチャ−トである。
【図12】 本実施例における、描画処理スレッドの終
了処理手順を示すフローチャ−トである。
【図13】 追い越しによる表示の不正を説明するため
の図である。
【符号の説明】
101…クライアントプログラム、102…描画命令実
行制御指示機構、103…描画ライブラリ、104…描
画サーバ、105…ディスパッチャ、106a、106
b…描画処理スレッド、107…スレッド実行状態情
報、108…表示系ハードウェア、201,301a,
301b,301c…処理装置、203…オペレーティ
ングシステム、202…通信路、204…グラフィック
スハードウェア、205…表示用記憶装置(フレームバ
ッファ)、206…ディスプレィ装置、207…磁気デ
ィスク装置等の補助記憶装置、208…キーボードやマ
ウス等の入力装置、209…バス、302…主記憶装
置。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 山本 礼己 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 幸田 恵理子 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 桑名 利幸 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内 (72)発明者 萬田 雅人 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア開発本部内

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 クライアントプログラムから転送される
    描画命令列を集中的に実行して、グラフィックス表示を
    行う描画サーバを具備する分散型描画処理システムにお
    いて、 前記クライアントプログラムが、描画命令列を、並列処
    理が可能な描画命令列の描画命令ブロックと、並列処理
    が不可能な描画命令列の描画命令ブロックとにブロック
    化し、当該ブロック化した描画命令列を描画サ−バに送
    信する実行制御指示手段を具備し、前記描画サーバが、
    前記ブロック化された描画命令列のブロックを単位とし
    て描画命令列を実行する実行制御決定手段を具備するこ
    とを特徴とする描画処理システム。
  2. 【請求項2】 請求項1に記載された描画システムにお
    いて、 前記実行制御指示手段が、並列処理が可能な描画命令ま
    たは描画命令ブロックから成る描画命令列の前後に、当
    該描画命令列の始まりを示す並列処理ブロック開始命令
    と、当該描画命令列の終りを示す並列処理ブロック終了
    命令を付加して指定する並列処理ブロック指定手段を備
    えることを特徴とする描画処理システム。
  3. 【請求項3】 請求項1に記載された描画システムにお
    いて、 前記実行制御指示手段が、並列処理が不可能な描画命令
    または描画命令ブロックから成る描画命令列の前後に、
    当該描画命令列の始まりを示す逐次処理ブロック開始命
    令と、当該描画命令列の終りを示す逐次処理ブロック終
    了命令を付加して指定する逐次処理ブロック指定手段を
    備えることを特徴とする描画処理システム。
  4. 【請求項4】 請求項2に記載された描画システムにお
    いて、 描画命令ブロックが、並列処理が不可能な描画命令列か
    らなることを特徴とする描画処理システム。
  5. 【請求項5】 請求項3に記載された描画システムにお
    いて、 描画命令ブロックが、並列処理が可能な描画命令列から
    なることを特徴とする描画処理システム。
  6. 【請求項6】 請求項1ないし請求項5のいずれか1項
    に記載された描画処理システムにおいて、 前記描画サーバの実行制御決定手段が、並列処理が可能
    な描画命令ブロック内の描画命令列を並列に実行制御す
    る並列命令実行制御手段と、並列処理が不可能な描画命
    令ブロック内の描画命令列を逐次に実行制御する逐次命
    令実行制御手段とを具備することを特徴とする描画処理
    システム。
  7. 【請求項7】 請求項1ないし請求項6のいずれか1項
    に記載された描画処理システムにおいて、 前記描画サーバが、複数のプロセッサから構成されるこ
    とを特徴とする描画処理システム。
JP6074631A 1994-04-13 1994-04-13 描画処理システム Pending JPH07282272A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP6074631A JPH07282272A (ja) 1994-04-13 1994-04-13 描画処理システム
US08/419,278 US5550962A (en) 1994-04-13 1995-04-10 System for selectively performing parallel or sequential drawing processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6074631A JPH07282272A (ja) 1994-04-13 1994-04-13 描画処理システム

Publications (1)

Publication Number Publication Date
JPH07282272A true JPH07282272A (ja) 1995-10-27

Family

ID=13552754

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6074631A Pending JPH07282272A (ja) 1994-04-13 1994-04-13 描画処理システム

Country Status (2)

Country Link
US (1) US5550962A (ja)
JP (1) JPH07282272A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006190255A (ja) * 2004-11-18 2006-07-20 Microsoft Corp グラフィクス・ストリームの多重化および分離
WO2007043130A1 (ja) * 2005-10-03 2007-04-19 Fujitsu Limited 描画装置、半導体集積回路装置及び描画方法

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5655080A (en) * 1995-08-14 1997-08-05 International Business Machines Corporation Distributed hash group-by cooperative processing
US5818469A (en) * 1997-04-10 1998-10-06 International Business Machines Corporation Graphics interface processing methodology in symmetric multiprocessing or distributed network environments
US6614433B1 (en) * 1998-06-05 2003-09-02 Unisys Corporation Method and system for distributed, dynamic generation of graphics files
JP3250729B2 (ja) * 1999-01-22 2002-01-28 日本電気株式会社 プログラム実行装置及びそのプロセス移動方法並びにプロセス移動制御プログラムを格納した記憶媒体
US6618759B1 (en) * 2000-01-31 2003-09-09 Hewlett-Packard Development Company, L.P. Immediate mode computer graphics command caching
US7274368B1 (en) * 2000-07-31 2007-09-25 Silicon Graphics, Inc. System method and computer program product for remote graphics processing
US7075548B1 (en) * 2000-09-29 2006-07-11 Intel Corporation Efficient detection of texture sharing between multiple contexts
JP3392828B2 (ja) * 2001-01-10 2003-03-31 株式会社東芝 分散処理システム、該システムにおける描画命令転送方法、及びコンピュータ読み取り可能な記憶媒体
US7587520B1 (en) 2001-01-24 2009-09-08 3Dlabs Inc. Ltd. Image display system with visual server
US7796133B1 (en) 2002-11-18 2010-09-14 Ati Technologies Ulc Unified shader
US7061495B1 (en) * 2002-11-18 2006-06-13 Ati Technologies, Inc. Method and apparatus for rasterizer interpolation
US8933945B2 (en) * 2002-11-27 2015-01-13 Ati Technologies Ulc Dividing work among multiple graphics pipelines using a super-tiling technique
US7633506B1 (en) 2002-11-27 2009-12-15 Ati Technologies Ulc Parallel pipeline graphics system
US7239322B2 (en) 2003-09-29 2007-07-03 Ati Technologies Inc Multi-thread graphic processing system
US6897871B1 (en) * 2003-11-20 2005-05-24 Ati Technologies Inc. Graphics processing architecture employing a unified shader
US8232991B1 (en) 2006-11-03 2012-07-31 Nvidia Corporation Z-test result reconciliation with multiple partitions
JP5281265B2 (ja) * 2007-10-02 2013-09-04 キヤノン株式会社 印刷処理方法およびそれを実現する情報処理装置
US20090251474A1 (en) * 2008-04-08 2009-10-08 Chou Deanna J Virtual computing and display system and method
CN109389548B (zh) * 2018-10-12 2023-07-21 格兰菲智能科技有限公司 计算机系统及其绘图处理方法
CN111476706A (zh) * 2020-06-02 2020-07-31 长沙景嘉微电子股份有限公司 顶点并行处理方法、装置及计算机存储介质、电子设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5321808A (en) * 1992-03-20 1994-06-14 Hewlett-Packard Company Dual process display server

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006190255A (ja) * 2004-11-18 2006-07-20 Microsoft Corp グラフィクス・ストリームの多重化および分離
WO2007043130A1 (ja) * 2005-10-03 2007-04-19 Fujitsu Limited 描画装置、半導体集積回路装置及び描画方法

Also Published As

Publication number Publication date
US5550962A (en) 1996-08-27

Similar Documents

Publication Publication Date Title
JPH07282272A (ja) 描画処理システム
US5917502A (en) Peer-to-peer parallel processing graphics accelerator
US4553202A (en) User controlled dialog resource switching in a multi-tasking word processor
US5440746A (en) System and method for synchronizing processors in a parallel processing environment
US7590990B2 (en) Computer system
JPH05216614A (ja) 共用オフスクリーン・ピクセル記憶装置を付与する方法と装置
CN109213607B (zh) 一种多线程渲染的方法和装置
US20090083753A1 (en) Dynamic thread generation and management for improved computer program performance
JP4575925B2 (ja) マルチスレッドアーキテクチャを用いた視覚および図形データの処理
US20130347000A1 (en) Computer, virtualization mechanism, and scheduling method
JPH06149757A (ja) 並列処理装置
CN115686758B (zh) 一种基于帧统计的VirtIO-GPU性能可控方法
CN112672210A (zh) 一种可变帧率多路视频渲染方法及系统
US5430870A (en) Saving and restoring traversal state attributes of a directed acyclic graph structure network for a parent structure when it invokes a child structure for traversal
US11244419B2 (en) Method and apparatus for hardware accelerated graphics rendering in bridge APIs
US9021239B2 (en) Implementation of multi-tasking on a digital signal processor with a hardware stack
JPH05108380A (ja) データ処理システム
CN109983435B (zh) 图形处理方法及相关装置和设备
JPH02301823A (ja) 画像処理に適したウィンドウシステム
EP0595841A1 (en) Method and apparatus for processing concurrent pick events
JPS59771A (ja) デ−タ処理装置における演算処理部選択制御方式
JPS6255693A (ja) グラフイツクデイスプレイ装置
JPH0421893B2 (ja)
JPH06187312A (ja) マルチcpuシステムにおける処理方法および装置
CN116661868A (zh) 数据处理系统