[go: up one dir, main page]

JPH06149757A - 並列処理装置 - Google Patents

並列処理装置

Info

Publication number
JPH06149757A
JPH06149757A JP4299550A JP29955092A JPH06149757A JP H06149757 A JPH06149757 A JP H06149757A JP 4299550 A JP4299550 A JP 4299550A JP 29955092 A JP29955092 A JP 29955092A JP H06149757 A JPH06149757 A JP H06149757A
Authority
JP
Japan
Prior art keywords
processors
parallel
instructions
program
executed
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
JP4299550A
Other languages
English (en)
Inventor
Shinji Kimura
信二 木村
Yumiko Sugita
由美子 杉田
Shoji Nakamura
昭次 中村
Eriko Koda
恵理子 幸田
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 JP4299550A priority Critical patent/JPH06149757A/ja
Priority to US08/147,982 priority patent/US5471579A/en
Publication of JPH06149757A publication Critical patent/JPH06149757A/ja
Pending legal-status Critical Current

Links

Classifications

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

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Abstract

(57)【要約】 【目的】 複数のプロセッサを備え、並列処理可能なシ
ステム上で、高速な並列処理装置を提供する。 【構成】 オペレーティング・システム1のプログラム
間通信機能を使い、応用プログラム2から描画プログラ
ム3に送られてくる命令の出現頻度を管理することによ
り、描画プログラム2が使用するプロセッサの数を制御
する。 【効果】 並列動作が不可能な命令の出現頻度が高い場
合に、使用するプロセッサの数を制限することにより、
同期処理のオーバヘッドを低減する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、並列実行可能な複数の
プロセッサを備えた並列処理装置に関わり、特に、動画
のように滑らかな表示画面変更処理を必要とするグラフ
ィックスシステムに好適な並列処理装置に関する。
【0002】
【従来の技術】コンピュータ・グラフィックスの応用分
野が、ビジュアルシミュレーションや科学技術計算結果
の可視化などに広がるとともに、表示性能に対する高速
描画の要求がさらに高まっている。
【0003】従来、このような高速化の要求に答える技
術としては、座標変換やクリッピングといったジオメト
リ処理を専用プロセッサで処理することによって解決し
てきた。特に高速化の性能が要求される分野では、特開
平2−275581号公報のようにジオメトリ処理のた
めの専用プロセッサを複数のプロセッサで構成し、個々
のプロセッサをパイプライン状に接続する方式や、特開
平2−150973号公報のようにジオメトリ処理を並
列に処理する方式が知られている。また、最近では「並
列処理シンポジュム JSPP’92 平成4年6月
論文集、共催(社)情報処理学会、その他、”PHIG
Sの構造体を処理するジオメトリ演算のマルチプロセッ
サ上での実行効率評価”、375頁〜382頁」に、ジ
オメトリ演算のマルチプロセッサ上での実現方式につい
ての論文が報告されている。
【0004】
【発明が解決しようとする課題】上記で述べた高速化方
式は専用プロセッサあるいは図形処理専用のハードウェ
アで実現しており、一般にオペレーティングシステムや
応用プログラムが動作する汎用のプロセッサと組合せて
利用することが多い。このため汎用プロセッサとグラフ
ィックス専用ハードウェアを備えた計算機はハードウェ
ア物量が多くなり、価格が高価である。また、グラフィ
ックス専用ハードウェアに並列処理を利用している装置
では、ジオメトリ処理などの特定の処理を固定的に各プ
ロセッサに割り振っているため、負荷を動的に変更でき
ない構成になることが多い。
【0005】一方、描画処理には、直線描画や多角形描
画などの並列処理が可能な描画処理と、各プロセッサが
参照する状態を変更する座標変換値の変更などの並列処
理が不可能な描画処理(属性処理)がある。
【0006】そのため、描画処理を複数のプロセッサで
並列実行する場合、属性処理の実行では各プロセッサは
同期を取るために時間が費やされ、並列実行の効果は低
下する。特に複数の汎用プロセッサを持つ装置において
描画処理を並列に実現する場合、上記のような属性処理
のための同期処理の時間は、単にプロセッサは同期処理
が終了するまで待ち状態となり、オペレーティングシス
テムや応用プログラムの処理を実行するための時間も奪
うため、システム全体の性能を低下させることになる。
【0007】この問題点を解決するため前記の論文で
は、属性命令をすべてのプロセッサで実行させることに
よって、同期処理を無くす方法が提案されている。しか
しながら、この方式では、すべてのプロセッサに属性命
令を転送するため、メモリと各プロセッサ間のバスのト
ラヒックの増加が新たな問題となることが述べられてい
る。
【0008】また、上記問題は、描画命令の並列処理に
関係するのみでなく、一般に命令を複数のプロセッサで
並列実行する並列処理装置でも存在する。
【0009】本発明の目的は、以上述べた問題点を解決
するための手段を提供し、複数の汎用プロセッサを備え
た装置で、システム全体の稼働率を低下させることな
く、処理を高速化できる柔軟な表示処理装置、または並
列処理装置を提供することにある。
【0010】
【課題を解決するための手段】上記目的達成のため、描
画命令を特性により、例えば、並列実行可能な命令と並
列実行不可能な命令などにより、複数のグループに分
け、描画命令中の各グループの出現頻度を求める。求め
た出現頻度から各グループの出現確率あるいはグループ
間の依存関係を求め、描画処理に使用するプロセッサの
数を決定する。例えば、並列実行不可能な属性命令が頻
繁に現れるような描画データ(描画命令群)の場合はプ
ロセッサを1つだけ描画処理に割当て、また並列実行可
能な描画命令が連続するような描画デ−タ(描画命令
群)の場合は、描画処理に割当てるプロセッサ数を増や
す。
【0011】
【作用】応用プログラムから生成される描画命令は、そ
の応用プログラムの種類により、その種類(グルー
プ)、順序および出現頻度はほぼ一定であり、たとえ表
示内容に対する視点や視野サイズの変更(立体等の回転
や位置移動に伴うディスプレイ画面上の表示の変更等)
があったとしても図形デ−タそのものの変更は少ないた
め、その種類(グループ)、順序および出現頻度も変動
は少ない。
【0012】そのため、上記手段より、この描画命令の
グループごとの出現頻度から並列動作に最適なプロセッ
サ数を決定でき、その結果、高速な描画処理を実現でき
る。具体的には、並列実行不可能な属性命令が頻繁に現
われるような描画命令群の場合はプロセッサを1つ割付
けることで同期処理に伴うオーバーヘッドをなくすこと
ができ、並列実行可能な描画命令の場合は、描画処理に
割当てるプロセッサ数を増やすことで処理能力を上げる
ことができる。
【0013】
【実施例】以下、本発明の一実施例を詳細に説明する。
図2は、本発明による表示制御を実行するためのシステ
ム構成のブロック図である。図2において、11から1
4は本システムの主プロセッサであり、バス・コントロ
ーラ15を通して接続される主メモリ16を共有メモリ
として使用する。17はグラフィックス・プロセッサで
あり、プロセッサ11〜14から送られてくる描画コマ
ンドを解釈し、画面に表示すべきイメージデータを格納
するフレームメモリ18にイメージデータを書き込む処
理を行う。
【0014】図1は主メモリ16に格納されたプロセッ
サ11〜14で動作するプログラムの構成を示したブロ
ック図である。1は各プロセッサ(11〜14)へのプ
ログラムの割当て、プログラム間の通信機能、および各
プロセッサ間の排他制御機能などを備えたマルチプロセ
ッサ対応のオペレーティング・システムであり、プロセ
ッサ11で動作する。オペレーティング・システム1の
上には、応用プログラム2と描画プログラム3が動作
し、応用プログラム2が目的に応じて生成した描画命令
を、描画プログラム3がグラフィックス・プロセッサ1
7の描画コマンドに変換し描画を行なう。
【0015】応用プログラム2は、図形を描くのに必要
な描画命令を生成する。この描画命令は、並列実行可能
な命令と並列実行不可能な命令の2種類から構成され、
その出現頻度および生成順序は、その応用プログラムの
目的によりほぼ一定である。また、上記描画命令は、実
行中に表示内容に対する視点や視野サイズの変更(立体
等の回転や移動に伴うディスプレイ上の表示の変更)が
あっても描画命令の種類の出現頻度や順序の変更はごく
わずかである。応用プログラム2は、この描画命令を、
オペレーティング・システム1のプログラム間の通信機
能を使用して描画プログラム3へ送信する。この際、応
用プログラム2はプログラム間の通信機能の回数を減ら
すため、複数の描画命令をバッファリングして送信す
る。例えば、応用プログラムが図形を描くのに必要な全
描画命令が2560命令、描画命令の長さの平均値が1
6バイト、バッファリングのためのバッファの長さが4
096バイトとすると、1回のプログラム間の通信で2
56命令が送られ、この通信が10回繰り返されること
になる。プログラム間通信毎のバッファ内の描画命令
は、上記図形を描く一連の描画命令の一部であるから、
それぞれのバッファ内で並列実行可能な命令と並列実行
不可能な命令の出現頻度は、全描画命令の割合とほぼ同
じ割合となる。
【0016】描画プログラム3の機能ブロックを4から
10に示す。4は描画プログラムの全体を制御する主制
御部である。主制御4は、応用プログラム2から送られ
てくる描画命令種類ごとの出現頻度及び生成順序を分析
し、描画プログラムを動作させるために最適なプログラ
ムの並列度(即ち汎用プロセッサの並列度(数))を求
める。求めた並列度に従い主制御4は、オペレーティン
グ・システム1の機能により、描画プログラム自身を複
数のプロセスとして生成する。生成された複数の描画プ
ログラムは、オペレーティング・システム1の割当てに
従い、各プロセッサ(11〜14)で動作することにな
る。
【0017】5は描画プログラムのプロセスの数が1つ
の時(即ち1つの汎用プロセッサが動作時)に使用する
ディスパッチャ部、6はプロセスの数が複数の時(即ち
複数の汎用プロセッサが動作時)に使用するディスパッ
チャ部であり、主制御部4から起動される。ディスパッ
チャ部(5、6)は描画命令を解釈し、描画命令に対応
した7から10の各処理(直線描画処理、多角形描画処
理、属性処理、座標更新処理)を実行する。
【0018】図3に描画プログラム3が処理する描画命
令の形式を示す。本実施例では、描画命令を、並列動作
が可能な描画命令(グループA)と並列動作が不可能な
命令(グループB)に分類する。グループAには命令1
9、25、30があり、グループBには命令33があ
る。
【0019】命令19は画面上に直線を描画する直線命
令であり、オペコード20、直線の始点のX座標21と
Y座標22、および終点のX座標23とY座標24で構
成される。命令25は画面上に内部を塗り潰した多角形
を描画する多角形命令であり、オペコード26、頂点の
数を示す頂点数27、各頂点のX座標28とY座標29
で構成される。命令30は直線命令19と多角形命令2
5が画面上に描画する色を指示する色指定命令であり、
オペコード31と色コード32で構成される。命令33
は直線命令19と多角形命令25が画面上に描画すると
きの原点を指定するオフセット命令であり、指定された
原点は直線命令19と多角形命令25のすべての座標に
加算される。命令はオペコード34と原点のX座標35
とY座標36で構成される。
【0020】図4にグラフィックス・プロセッサ17が
処理する描画コマンドの形式を示す。グラフィックス・
プロセッサ17が処理するコマンドは、画面上に水平線
を描画するためのコマンド(37、40)と描画する色
(46)を指示するコマンド(44)である。37は水
平線のY座標(39)を指示するコマンド、40は水平
線のX座標(43)とその水平方向の長さ(42)を指
示するコマンドで、コマンド40の処理後はY座標を自
動的に1だけ加算する。尚、38、41、45はそれぞ
れのコマンドのオペコードである。
【0021】図1の描画プログラム3は、応用プログラ
ム2で生成された直線命令19と多角形命令25を処理
する場合、命令で指定された直線あるいは多角形をラス
タ変換し、水平線の計算を行ないグラフィックス・プロ
セッサのコマンド形式を得る。この並列実行可能な描画
命令のグラフィックス・プロセッサのコマンド形式への
変換処理は、複数のプロセスで並列に行われることにな
る。そのため、各プロセッサ(11〜14)からグラフ
ィックス・プロセッサ17へのコマンドの転送は、コマ
ンドの順序を保証するために図5に示すバッファを利用
する。
【0022】図5においてバッファは、コマンドの順序
を保持するための順序バッファ47と、コマンド(3
7、40、44)列を格納するためのコマンド・バッフ
ァ48から構成され、それぞれのバッファ(47、4
8)にはバッファの未使用の位置を示すインデックス4
9、ポインタ50がある。ディスパッチャ部(5あるい
は6)は応用プログラム2から送られてくる描画命令の
順序でインデックス49が示す位置の順序バッファ47
を確保し、各描画処理(7〜9)に渡すととも、インデ
ックス49を更新する。各描画処理(7〜9)は必要な
コマンドバッファの大きさだけ、ポインタ50が示す位
置からコマンドバッファ48を確保し、確保したコマン
ドバッファ48のアドレスをディスパッチャ部(5ある
いは6)から渡された順序バッファ47に登録する。コ
マンドバッファ48へのコマンドの書き込みは複数のプ
ロセスで並列に行なうため、描画の順序と異なる順番で
書き込まれることがありえるが、順序バッファ47を設
けることより描画の順序を保証する。
【0023】次に図6から図12を参照して、描画プロ
グラム3の各処理(4〜10)の詳細な手順を説明す
る。尚、図6から図12の記述で用いている記号名称
は、主メモリ16内に格納する描画プログラム3のデー
タであり、以下に示すように、各プロセスが共通に使用
するデータと、各プロセスごとに確保するデータの2種
類がある。
【0024】(1)各プロセスが共通に使用するデータ PMAX :描画プログラム3が利用可能なプロセッサ
の最大数 PC :描画プログラム3の現在のプロセス数 PN :描画プログラム3の最適なプロセス数 ST :状態フラグ(0は入力待ち、1は描画処理
実行中を表す) SYNC1:各プロセスが同期のために使う変数 SYNC2:各プロセスが同期のために使う変数 TOTAL:描画命令の処理数 BOP :描画命令のうち、グループBの命令の処理
数 その他 :描画処理の原点座標など (2)各プロセスごとに確保するデータ NO :プロセス自身を識別するための番号(本実施
例では0から3まで) SEQ :そのプロセスが使用できる順序バッファのイ
ンデックス その他 :ラスタ変換用のワークバッファなど 各プロセスごとの上記データは、各プロセスごとのエリ
アであることを表すためNO(i)あるいはSEQ
(i)と記述する。また、上記のうちPMAX、PCP
N、TOTAL、BOP、SYNC1、SYNC2には
値”1”が、STには値”0”が初期値として代入され
ているものとする。
【0025】まず、図6を参照して直線描画7および多
角形描画8の処理の概略を説明する。図6において、応
用プログラム2からの送られてくる描画命令の座標はオ
フセット命令33で指定される原点座標からの相対座標
であるため、描画命令の座標に原点座標を加算し画面上
の絶対座標を計算する(51)。次に、画面の外にある
図形の部分をクリッピングし(52)、座標のY座標の
最小値と最大値から生成する水平線の数を求め、必要な
コマンドバッファ48のサイズを求める(53)。コマ
ンドバッファ48は各プロセスが共通にアクセスするた
め、動作している描画プログラム3のプロセスが1より
大きければ、即ち複数の汎用プロセッサが動作している
場合は(54)、コマンドバッファ48の取得の処理
(55)の前後でオペレーティング・システム1の排他
制御機能であるロック処理56とアンロック処理57を
コールする。得られたコマンドバッファ48のアドレス
にラスタ変換処理58の結果であるグラフィックス・プ
ロセッサへのコマンドを書き込み処理を終了する。
【0026】図7、図8は主制御4の詳細な処理手順で
ある。まず、図7を説明する。描画プログラム3は複数
個のプロセスが動作している場合があるため、1つのプ
ロセスだけが応用プログラム2からの入力を待ち、他の
プロセスは入力があるまで停止する。まず、プロセスの
番号が0ならば(59)、描画命令の入力待ちを行い
(60)、他のプロセスはSTが1になるまで停止する
(200)。応用プログラム2からの入力(バッファリ
ングされて送られる複数の描画命令群)があると入力待
ち(60)は解除され、オペレーティング・システム1
から描画プログラム3が利用できるプロセッサの数PM
AXを得る(61)。PMAXは各プロセッサの稼働率
から求めるなどの方法があるが、本実施例ではハードウ
ェアに接続されたプロセッサの数である4が得られたと
して以下説明する。次にPMAXとPNを比較し(6
2)、PMAXが小さければPNにPMAXの値を代入
する(63)。SYNC1とSYNC2にPNの値を代
入し、STに値”1”を代入することによって(6
4)、他のプロセスの停止(200)を解除する。
【0027】処理65から処理69は各プロセスごとに
異なる。PCとPNを比較し(65)、現在のプロセス
の数が最適なプロセスの数よりも少なければ、プロセス
の番号が0のプロセスが(66)、PNとPCの差の個
数のプロセスを新たに生成し、PCの値を更新する(6
7)。現在のプロセスの数が最適なプロセスの数よりも
多ければ、プロセスの番号が大きいプロセスがプロセス
を終了させる(68、69)。
【0028】現在のプロセスの数が1つなら(70)、
1プロセッサ用のディスパッチャ処理をコールし(7
1)、1より大きければ複数プロセッサ用のディスパッ
チャ処理をコールする(72)。ディスパッチャ処理
後、最適なプロセス数の更新を行い(73)、応用プロ
グラムからの入力を待つ処理を繰り返す。
【0029】図8は、PNの更新処理73の詳細を示し
たものである。ディスパッチャ処理(71または72)
の処理後はTOTALとBOPが処理した描画命令の数
により更新されているため、このTOTALとBOPを
用いて最適なプロセスの数を求める。図8の例では処理
した描画命令の数が9以下の時はPNを更新しないた
め、TOTALの値を判定する(74)。処理した描画
命令に占めるグループBの命令の数の割合を求め(7
5)、求めた割合が50%以上ならPNに1を(76、
77)、30%から49%ならPNに2を(78、7
9)、10%から29%ならPNに3を(80、8
1)、9%以下ならPNに4を設定する(82)。PN
の更新後、TOTALとBOPに値”1”を再設定する
(83)。なお、この命令の数の割合と最適なプロセス
数の関係は、前記値に拘束されることは無く、また、本
表示装置の初期立ち上げ時等に本表示装置に接続された
入力装置等から入力することも可能とすることができ
る。
【0030】図9は、1プロセッサ用のディスパッチャ
処理71の詳細を示したものである。1プロセッサ用の
ディスパッチャ処理の場合、他のプロセスとの排他制御
は不要なため処理は簡単になる。応用プログラム2から
のバッファ内の描画命令を読み込み(84)、データ
(描画命令)があればTOTALに1を加算し(85、
86)、さらにその命令がグループBの命令ならばBO
Pに1を加算する(87、88)。次に必要ならば順序
バッファ47を確保しSEQ(i)に格納後(89)、
各描画処理をコールする(90)。データの終わりまで
処理84から処理90を繰り返し、グラフィックスハー
ドウェアを起動する(91)。
【0031】図10、図11は複数プロセッサ用のディ
スパッチャ処理72の詳細である。複数のプロセッサ用
のディスパッチャ処理の場合、複数のプロセスが共通の
データ(即ち、応用プログラム2からのバッファ内の描
画命令やグラフィック・プロセッサへのコマンドバッフ
ァ等)を参照するため、排他制御と同期制御が必要とな
る。
【0032】図10において、複数プロセッサ用のディ
スパッチャ処理では処理の始めにロック処理をコールす
る(201)。ロック処理により、他の描画プログラム
3のプロセスをブロックした後、応用プログラム2から
のバッファ内の描画命令を読み込み(92)、データの
有無を判定する(93)。データ(描画命令)があれば
描画命令を処理し(94〜107)、なければディスパ
ッチャの終了処理を行う(108〜115)。
【0033】描画命令の処理は、他のプロセスがグルー
プBの命令を処理中には実行できないので、まず、それ
を回避する同期処理(後述、図11)を行う(94)。
同期処理後、TOTALに1を加算し(95)、描画命
令のグループを判定する(96)。描画命令がグループ
Bに属するならBOPに1を加算し(97)、他のプロ
セスの停止を待つ処理を行う(98〜100)。これは
オフセット命令33のように各描画処理(7、8)が参
照する原点の座標を更新する場合に必要な同期処理であ
る。同期処理ではSYNC1の値から1を減算と、アン
ロック処理のコール(99)を行い、SYNC1の値が
0になるまで停止する(100)。停止解除後は、グル
ープBに属する描画命令の処理を行い(101)、排他
制御で同期を取りながら(102、104)、SYNC
2の値をSYNC1の値に再設定する。処理96におい
て、命令がグループBに属さないなら、順序バッファ4
7を確保しSEQ(i)に格納後(105)、各描画処
理を実行する(107)。このとき描画命令は並列動作
可能なため、各描画命令の処理107の前で、アンロッ
ク処理をコールする(106)。
【0034】応用プログラム2からのバッファ内のデー
タ(描画命令)の処理をすべて終えると(93)、各プ
ロセスで終了のための同期処理を行う(108〜11
1)。更にプロセスの番号に0をもつプロセスが(11
2)、グラフィックスハードウェアの起動(113)
と、STへの値”0”を設定(114)を行い、ディス
パッチャ処理を終える。このときプロセスの番号が0以
外のプロセスはSTの値が0になるまで停止する(11
5)。また、終了のための同期処理は、SYNC1とS
YNC2の値からの1の減算(108、109)と、ア
ンロック処理110の後に、SYNC2の値が0になる
まで停止することによって可能である(111)。
【0035】図11は、同期処理94の詳細を示す。S
YNC1とSYNC2の値が異なるとき(116)、他
のプロセスが同期処理を要求していることを意味してい
るため、SYNC1の値から1を減算し(117)、S
YNC1とSYNC2の値が等しくなるまで停止するこ
とによって可能であり(119)、停止の前には一度ロ
ックを解除する(118、120)。
【0036】以上の図6から図11に示した処理手順に
より、マルチプロセッサを利用した描画処理を実現でき
る。この実施例によれば、応用プログラム2から描画プ
ログラム3へ送信されるバッファ内の描画命令の出現頻
度を解析し、並列処理不可能な描画命令の頻度が多い場
合、利用するプロセッサの数を減らすため、応用プログ
ラム2から描画プログラム3へ送信される次からのバッ
ファ内の描画命令の実行に於いて同期処理によるオーバ
ヘッドを低減することができる。逆に、並列処理可能な
描画命令の頻度が多い場合は利用するプロセッサ数を増
やすため、応用プログラム2から描画プログラム3へ送
信される次からのバッファ内の描画命令の処理時間を短
縮できる。
【0037】上述の実施例では、応用プログラム2から
1回に送られてくるバッファ内のグループBに所属する
描画命令の出現頻度を求めたが、同じ出現頻度の場合で
も、各グループの描画命令が交互に現れる場合と、各グ
ループの描画命令がそれぞれ連続して現れる場合などの
命令の分布を考慮した出現頻度の管理により、さらにき
め細やかな並列度の制御が可能である。例えば上述の実
施例は、グループBの出現頻度を、グループBの描画命
令が連続したときの出現頻度(BBOP)と、グループ
Aの後にグループBの描画命令が現れたときの出現頻度
に分けて管理することができる。
【0038】図12は上記のように出現頻度を管理した
ときの、図9の処理88と図10の処理97との変更点
を示したものである。図中の記号名称はすべて各プロセ
スに共通のエリアであり、意味は次のとおりである。 BBOP:グループBの描画命令が連続したときの処理
数。 ABOP:グループAの後にグループBの描画命令が現
れたときの処理数。 COP :処理した命令のグループ(0はグループA、
1はグループB)。
【0039】図12において、BOPに1を加算し(1
21)、前回処理した命令を比較する(122)。前回
処理した命令がグループAで、かつ現在の命令がグルー
プBならば(123)、ABOPに1を加算し(12
4)、COPに1を代入する(125)。反対に前回処
理した命令がグループBで(112)、現在もグループ
Bならば(126)、BBOPに1を加算し(12
7)、反対に現在がグループAならばCOPに0を代入
する(128)。これにより、BBOPおよびABOP
にはそれぞれの処理数が保持されることになる。グルー
プBの描画命令の出現頻度が高い場合でも、グループB
の描画命令が連続していれば描画処理の並列化の効果が
期待でき、プロセッサ数を増やすことができる。例えば
この処理は、図8のプロセッサ数の決定における処理7
7で、BBOPの割合が多いときPNを増やすことによ
り可能である。
【0040】以上では、描画命令の出現頻度および出現
傾向によって、応用プログラムの全過程に渡ってプロセ
ッサ数を変化させている。しかしながら、前述したよう
に応用プログラムの描画命令の出現頻度および出現傾向
は全過程に渡って一定になる傾向が有るので、応用プロ
グラムの描画命令を一定数又は一定割合だけ実行した時
点までの描画命令の出現頻度および出現傾向を応用プロ
グラムの全過程に渡っるものとして代表させることが可
能である。この場合、プロセッサ数の決定は一度だけで
よく、以後の応用プログラムの描画命令の実行ではオー
バーヘッドであるプロセッサ数を決定するステップを省
くことができる。なお、上記定数や割合は本表示装置の
初期立ち上げ時等に本表示装置に接続された入力装置等
から入力できる。
【0041】また、上述の実施例では、描画プログラム
3が使用するプロセスの数の初期値を1に固定し、描画
処理のたびに使用するプロセッサの数を求めた。一方、
応用プログラム2の描画用データは、視点や視野サイズ
の変更などでは描画命令の出現頻度が変化することはな
い。したがって、一度表示した描画内容を再表示する場
合には、出現頻度を再計算する必要はなく、前回計算し
た変数PNの値をそのまま再利用でき、描画プログラム
3から最適なプロセッサの並列度(変数PN)を求める
ことによるオーバーヘッドを省くことができる。
【0042】これを実現するために、まず応用プログラ
ム2に、描画プログラム3に対し描画命令を初めて実行
させる際に、前記描画命令実行中における変数PNの値
を応用プログラム2へ通知するように命令を出すPN要
求機能、描画プログラム3から通知される変数PNの値
を記録するPN記録機能、および、応用プログラム自身
を再実行する場合、描画命令を送信する際に同時に変数
PNの値を描画プログラム3へ送信するPN指定機能を
設ける。一方、描画プログラム3に、前記PN要求機能
からの要求に応じて描画プログラム自身の変数PNの値
をプログラム間の通信機能で描画プログラム3に通知す
るPN通知機能、および、前記PN指定機能から送信さ
れた変数PNの値を設定するPN再設定機能を設ける。
そして、初めて応用プログラム2の描画命令を実行する
場合に、PN要求機能、PN通知機能、PN記録機能が
実行し、2回目以降の応用プログラムの実行の際に、P
N指定機能、PN再設定機能を実行するで、上記目的を
達成することができる。
【0043】さらに、上述の実施例では、画面上に1つ
の応用プログラムだけが描画する場合について述べた
が、画面上の複数のウィンドウを表示するウィンドウシ
ステムへの適用も可能である。ウィンドウシステムで
は、図1の描画プログラム3がウィンドウシステムに相
当し、複数個の応用プログラム2がウィンドウシステム
への描画の要求を行なうことになる。一般に複数のウィ
ンドウが画面に表示されているとき、ウィンドウへの表
示を要求する応用プログラムは異なり、その表示内容も
応用プログラムごとに異なる。よって、応用プログラム
ごとに描画命令の出現頻度を求めることにより、本発明
の適用が可能である。例えば、上述の実施例において、
図7の処理60(描画命令の入力待ち)で使用する変数
PNの値に、応用プログラムごとに保持しておいた使用
するプロセッサ数を設定する。図7の処理60以降は1
つの応用プログラムからの描画命令だけを処理し、他の
応用プログラムからの描画要求を処理するときは再度処
理60を実行することにより、ウィンドウシステムにお
いても本発明は適用可能である。
【0044】以上、描画を行なう描画命令を例に表示制
御装置における複数プロセッサの並列度を自動的に変更
する手段について説明した。しかしながら、本手順は上
述の描画命令を処理するプロセッサ数の制御に有効なだ
けではなく、一般の命令を複数のプロセッサで実行する
並列処理装置のプロセッサ数の並列度を自動的に変更す
る場合にも有効である。
【0045】
【発明の効果】以上述べたように、本発明によれば、命
令の特性により分類したグループ毎の命令の出現頻度に
より、プログラムが使用するプロセッサの数を切り替え
ることで、同期処理のためのオーバヘッドを低減でき、
高速な処理を実現できる。
【図面の簡単な説明】
【図1】主メモリに格納された制御プログラムの機能ブ
ロック図。
【図2】本発明の一実施例を示す装置のブロック図。
【図3】描画命令のフォーマット。
【図4】描画コマンドのフォーマット。
【図5】描画コマンドの格納形式を示す図。
【図6】本発明の一実施例を示す処理手順のフローチャ
ート図。
【図7】本発明の一実施例を示す処理手順のフローチャ
ート図。
【図8】本発明の一実施例を示す処理手順のフローチャ
ート図。
【図9】本発明の一実施例を示す処理手順のフローチャ
ート図。
【図10】本発明の一実施例を示す処理手順のフローチ
ャート図。
【図11】本発明の一実施例を示す処理手順のフローチ
ャート図。
【図12】本発明の一実施例を示す処理手順のフローチ
ャート図。
【符号の説明】
1…オペレーティング・システム、2…応用プログラ
ム、3…描画プログラム、11、12、13、14…プ
ロセッサ、15…バス・コントローラ、16…主メモ
リ、17…グラフィックス・プロセッサ、18…フレー
ムメモリ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 幸田 恵理子 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】複数のプロセッサを備え、前記複数のプロ
    セッサが前記各プロセッサ上で動作する命令を並列実行
    する並列処理装置において、 前記命令の特性に応じて前記命令を複数のグループに分
    類する手段と、 前記分類した前記命令の出現頻度を得る手段と、 前記グループの前記出現頻度に応じて前記命令を実行す
    る前記プロセッサの数を決定する手段とを設けたことを
    特徴とする並列処理装置。
  2. 【請求項2】請求項1記載の並列処理装置において、前
    記分類手段は、 前記複数のプロセッサ間で並列実行可能な命令のグルー
    プと、 前記複数のプロセッサ間で並列実行不可能な命令のグル
    ープとに分類することを特徴とする並列処理装置。
  3. 【請求項3】請求項2記載の並列処理装置において、更
    に、 前記並列実行可能な命令が連続する頻度を得る手段と、 前記並列実行不可能な命令の出現頻度が予め定められた
    頻度以上でも前記並列実行可能な命令が連続する頻度が
    予め定められた頻度以上の場合は前記決定したプロセッ
    サ数を多くする手段とを設けたことを特徴とする並列処
    理装置。
  4. 【請求項4】請求項2記載の並列処理装置において、更
    に、 プログラムの命令を処理するプロセッサ数を前記プログ
    ラム対応に得る手段と、 前記プログラムを再実行する
    際、前記得た前記プロセッサ数を使用する手段とを設け
    たことを特徴とする並列処理装置。
  5. 【請求項5】請求項2記載の並列処理装置において、更
    に、 予め定められた数のプログラムの命令を実行した時点
    で、前記並列実行可能な命令の出現頻度に応じて前記命
    令を処理する前記プロセッサの数を決定する手段と、 前記決定後は、前記プログラムが終了するまで前記決定
    したプロセッサの数を維持する手段とを設けたことを特
    徴とする並列処理装置。
  6. 【請求項6】請求項2記載の並列処理装置において、更
    に、 予め定められた割合のプログラムの命令を実行した時点
    で、前記並列実行可能な命令の出現頻度に応じて前記命
    令を処理する前記プロセッサの数を決定する手段と、 前記決定後は、前記プログラムが終了するまで前記決定
    したプロセッサの数を維持する手段とを設けたことを特
    徴とする並列処理装置。
  7. 【請求項7】複数のプロセッサを備え、前記複数のプロ
    セッサが、前記各プロセッサ上で動作するプログラムか
    らの命令を並列実行しながらウィンドウへの表示を行な
    うウィンドウシステムにおいて、 前記命令の特性に応じて前記命令を複数のグループに分
    類する手段と、 前記分類した前記命令の出現頻度を得る手段と、 前記グループの前記出現頻度に応じて前記命令を実行す
    る前記プロセッサの数を決定する手段とを設け、 前記プログラムにより前記ウィンドウへの表示を行う
    際、前記分類手段、前記出現頻度を得る手段、および前
    記決定手段を実行し、かつ、前記決定した数のプロセッ
    サにより前記並列実行を行う手段を設けたことを特徴と
    するウィンドウシステム。
  8. 【請求項8】複数のプロセッサを備え、前記複数のプロ
    セッサが前記各プロセッサ上で動作する描画命令を並列
    実行する表示処理装置において、 前記描画命令の特性に応じて前記描画命令を複数のグル
    ープに分類する手段と、 前記分類した前記描画命令の
    出現頻度を得る手段と、 前記グループの前記出現頻度に応じて前記描画命令を実
    行する前記プロセッサの数を決定する手段とを設けたこ
    とを特徴とする表示処理装置。
  9. 【請求項9】請求項8記載の表示処理装置において、前
    記分類手段は、 前記複数のプロセッサ間で並列実行可能な描画命令のグ
    ループと、 前記複数のプロセッサ間で並列実行不可能な描画命令の
    グループとに分類することを特徴とする表示処理装置。
  10. 【請求項10】請求項9記載の表示処理装置において、
    更に、 前記並列実行可能な描画命令が連続する頻度を得る手段
    と、 前記並列実行不可能な描画命令の出現頻度が予め定めら
    れた頻度以上でも前記並列実行可能な描画命令が連続す
    る頻度が予め定められた頻度以上の場合は前記決定した
    プロセッサ数を多くする手段とを設けたことを特徴とす
    る表示処理装置。
  11. 【請求項11】請求項9記載の表示処理装置において、
    更に、 プログラムの描画命令を処理するプロセッサ数を前記プ
    ログラム対応に得る手段と、 前記プログラムを再実行する際、前記得た前記プロセッ
    サ数を使用する手段とを設けたことを特徴とする表示処
    理装置。
  12. 【請求項12】請求項9記載の表示処理装置において、
    更に、 予め定められた数のプログラムの描画命令を実行した時
    点で、前記並列実行可能な描画命令の出現頻度に応じて
    前記描画命令を処理する前記プロセッサの数を決定する
    手段と、 前記決定後は、前記プログラムが終了するまで前記決定
    したプロセッサの数を維持する手段とを設けたことを特
    徴とする表示処理装置。
  13. 【請求項13】請求項9記載の表示処理装置において、
    更に、 予め定められた割合のプログラムの描画命令を実行した
    時点で、前記並列実行可能な描画命令の出現頻度に応じ
    て前記描画命令を処理する前記プロセッサの数を決定す
    る手段と、 前記決定後は、前記プログラムが終了するまで前記決定
    したプロセッサの数を維持する手段とを設けたことを特
    徴とする表示処理装置。
  14. 【請求項14】複数のプロセッサを備え、前記複数のプ
    ロセッサが、前記各プロセッサ上で動作するプログラム
    からの描画命令を並列実行しながらウィンドウへの描画
    を行なうウィンドウシステムにおいて、 前記描画命令の特性に応じて前記描画命令を複数のグル
    ープに分類する手段と、 前記分類した前記描画命令の
    出現頻度を得る手段と、 前記グループの前記出現頻度に応じて前記描画命令を実
    行する前記プロセッサの数を決定する手段とを設け、 前記プログラムにより前記ウィンドウへの描画を行う
    際、前記分類手段、前記出現頻度を得る手段、および前
    記決定手段を実行し、かつ、前記決定した数のプロセッ
    サにより前記並列実行を行う手段を設けたことを特徴と
    するウィンドウシステム。
JP4299550A 1992-11-10 1992-11-10 並列処理装置 Pending JPH06149757A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP4299550A JPH06149757A (ja) 1992-11-10 1992-11-10 並列処理装置
US08/147,982 US5471579A (en) 1992-11-10 1993-11-05 Graphics system using parallel processors and processing method of the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4299550A JPH06149757A (ja) 1992-11-10 1992-11-10 並列処理装置

Publications (1)

Publication Number Publication Date
JPH06149757A true JPH06149757A (ja) 1994-05-31

Family

ID=17874073

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4299550A Pending JPH06149757A (ja) 1992-11-10 1992-11-10 並列処理装置

Country Status (2)

Country Link
US (1) US5471579A (ja)
JP (1) JPH06149757A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007158722A (ja) * 2005-12-05 2007-06-21 Canon Inc 画像処理装置及びその制御方法、プログラム、記憶媒体
JP2007172452A (ja) * 2005-12-26 2007-07-05 Toshiba Corp 描画装置及び描画方法
JP2010280101A (ja) * 2009-06-03 2010-12-16 Ricoh Co Ltd 画像形成装置、制御方法及び制御プログラム
US8031208B2 (en) 2005-12-26 2011-10-04 Kabushiki Kaisha Toshiba Drawing apparatus and method for processing plural pixels in parallel

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07225852A (ja) * 1994-02-15 1995-08-22 Fujitsu Ltd 動画生成方法および装置
JPH07311570A (ja) * 1994-05-17 1995-11-28 Sega Enterp Ltd ゲーム機用アダプタ
JPH09245179A (ja) * 1996-03-08 1997-09-19 Mitsubishi Electric Corp コンピュータグラフィックス装置
US6069705A (en) * 1996-10-07 2000-05-30 Texas Instruments Incorporated Managing interpreter cofunctions on multiprocessor-based printer
US5914726A (en) * 1997-06-27 1999-06-22 Hewlett-Packard Co. Apparatus and method for managing graphic attributes in a memory cache of a programmable hierarchical interactive graphics system
US5977990A (en) * 1997-06-30 1999-11-02 Northrop Grumman Corporation Parallel computer for real time map synthesis
US6310939B1 (en) 1998-08-14 2001-10-30 Lucent Technologies Inc. Method and apparatus for screening a call as the call is transmitted to voice mail
JP3169933B2 (ja) * 1999-03-16 2001-05-28 四国日本電気ソフトウェア株式会社 並列描画装置
JP4837844B2 (ja) * 2001-07-19 2011-12-14 富士通株式会社 シミュレーションシステム、方法、プログラム及び記録媒体
US7173623B2 (en) * 2003-05-09 2007-02-06 Microsoft Corporation System supporting animation of graphical display elements through animation object instances
US8526049B2 (en) * 2006-03-31 2013-09-03 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for display list management
US8782371B2 (en) * 2008-03-31 2014-07-15 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for memory management for rasterization
US8817032B2 (en) * 2008-08-29 2014-08-26 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for framebuffer management
US8854680B2 (en) * 2008-09-11 2014-10-07 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for optimal memory allocation units
US8861014B2 (en) * 2008-09-30 2014-10-14 Konica Minolta Laboratory U.S.A., Inc. Systems and methods for optimized printer throughput in a multi-core environment
EP3182416B1 (en) 2015-12-18 2018-09-26 Westinghouse Electric Sweden AB Nuclear fuel assembly with balancing plate

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4649498A (en) * 1984-05-08 1987-03-10 The University Of Rochester Computer systems for curve-solid classification and solid modeling
JPH02150973A (ja) * 1988-12-01 1990-06-11 Mitsubishi Electric Corp グラフィック表示装置
JPH02275581A (ja) * 1989-04-17 1990-11-09 Sumitomo Electric Ind Ltd 図形データ処理方式

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007158722A (ja) * 2005-12-05 2007-06-21 Canon Inc 画像処理装置及びその制御方法、プログラム、記憶媒体
JP2007172452A (ja) * 2005-12-26 2007-07-05 Toshiba Corp 描画装置及び描画方法
US8031208B2 (en) 2005-12-26 2011-10-04 Kabushiki Kaisha Toshiba Drawing apparatus and method for processing plural pixels in parallel
JP2010280101A (ja) * 2009-06-03 2010-12-16 Ricoh Co Ltd 画像形成装置、制御方法及び制御プログラム

Also Published As

Publication number Publication date
US5471579A (en) 1995-11-28

Similar Documents

Publication Publication Date Title
JPH06149757A (ja) 並列処理装置
US8803898B2 (en) Forming a windowing display in a frame buffer
US5440746A (en) System and method for synchronizing processors in a parallel processing environment
EP0470782B1 (en) Image rendering process and apparatus
JP5091215B2 (ja) コプロセッサの性能を強化するシステムおよび方法
JP3224782B2 (ja) 処理分担動的変更方法及びコンピュータ
JP5335743B2 (ja) タスクのスケジューリングを支援する装置
US5315698A (en) Method and apparatus for varying command length in a computer graphics system
US5315696A (en) Graphics command processing method in a computer graphics system
JP2005525617A (ja) ゾーン・レンダリング用の自動メモリ管理
US8085280B2 (en) Asymmetric two-pass graphics scaling
US20080303833A1 (en) Asnchronous notifications for concurrent graphics operations
JPH04348485A (ja) 図形表示方法およびその装置
US8531470B2 (en) Deferred deletion and cleanup for graphics resources
JP2001084154A (ja) スレッドを使用する、コンピュータ・システム内でのグラフィックス・テクスチャ管理の同期化
JPH11184718A (ja) プログラマブルなデータ処理装置
JP3232236B2 (ja) グラフィック処理システム
WO2018187130A1 (en) Ink render using high priority queues
JPH07271344A (ja) グラフィック表示装置
JP4318664B2 (ja) 情報処理装置およびタスク実行方法
JP2947984B2 (ja) マルチプロセッサシステムにおける図形描画方式
JP3826942B2 (ja) 描画命令のフックを利用した画像の転送
JPH09231045A (ja) 図面処理のスクロール方法
JPH05266201A (ja) グラフィックス並列処理方法及びその装置
JPH0877367A (ja) 画像処理プロセッサおよびそれを用いた画像データ処理装置