JP2552078B2 - 増減自在な複数の処理ノードを用いてグラフィックス・データ・ストリームを処理する方法及びシステム - Google Patents

増減自在な複数の処理ノードを用いてグラフィックス・データ・ストリームを処理する方法及びシステム

Info

Publication number
JP2552078B2
JP2552078B2 JP5166914A JP16691493A JP2552078B2 JP 2552078 B2 JP2552078 B2 JP 2552078B2 JP 5166914 A JP5166914 A JP 5166914A JP 16691493 A JP16691493 A JP 16691493A JP 2552078 B2 JP2552078 B2 JP 2552078B2
Authority
JP
Japan
Prior art keywords
processing
graphics
work
attribute
data
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.)
Expired - Fee Related
Application number
JP5166914A
Other languages
English (en)
Other versions
JPH06195309A (ja
Inventor
ポール・デービッド・ディニコラ
ジョセフ・シー・カンツ
オマー・マーモウド・ラヒム
デービッド・エイ・ライス
エドワード・マーク・ルディック
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06195309A publication Critical patent/JPH06195309A/ja
Application granted granted Critical
Publication of JP2552078B2 publication Critical patent/JP2552078B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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)
  • Multi Processors (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、広くは、改良したグラ
フィックス計算処理のための方法及びシステムに関し、
より詳しくは、グラフィックス計算処理を実行してデー
タ・ストリームに処理を施すための方法及びシステムに
関するものである。更に詳しくは、本発明は、グラフィ
ックス・データ・ストリームに対して効率的に処理を施
すためのグラフィックス計算処理の方法及びシステムに
関するものである。
【0002】
【従来の技術及び発明が解決しようとする課題】例えば
パーソナル・コンピュータやワーク・ステーション等
の、データ処理システムにおいて、コンピュータ支援設
計(CAD)アプリケーションや、コンピュータ支援生
産(CAM)アプリケーション、それにコンピュータ支
援ソフトウェア設計(CASE)ツール等のアプリケー
ションを走らせることは、ごく一般的に行なわれてい
る。この種のアプリケーションは、技師、科学者、技術
者等をはじめとする様々な職業の人々によって日常的に
使用されている。この種のアプリケーションは通常、複
雑な計算を取り扱うものであり、例えば、有限要素法解
析の計算を行なって構造体の応力モデルを作成するため
等に使用されている。また、この種のアプリケーション
のうちには、化学モデルや分子モデルを作成するために
使用するアプリケーションもある。これらのCAD/C
AM/CASEアプリケーションは一般的に、ユーザへ
情報を受け渡す部分のグラフィックス処理の仕事量が膨
大なものとなっている。また、これらアプリケーション
以外にも、データ処理システムで走らせるアプリケーシ
ョンであって、グラフィックス処理の仕事量が膨大なも
のがあり、例えばデスクトップ・パブリッシング・アプ
リケーション等がこれに該当する。一般的に、グラフィ
ックス処理の仕事量が膨大なアプリケーションを利用す
るユーザは、データ処理システムが、特に高速でグラフ
ィックス情報を提供する能力を備えていることを望むも
のである。
【0003】グラフィックス・データ・ストリームに処
理を施してビデオ表示端末にグラフィックス・ディスプ
レイを行なう際に、そのグラフィックス・ディスプレイ
を、高速応答性を備えたものとするためには、極めて高
速のグラフィックス処理システムが必要とされる。ま
た、既存の技術を利用して、データ処理システムのマイ
クロコードに変更を加える必要なく、要求性能を提供で
きるようにすることが望まれる。グラフィックスに関係
したアプリケーションを利用しているユーザの要求性能
を満足するためには、これまでは、複数の浮動小数点プ
ロセッサを使用することによって、より高い性能を発揮
するために必要な計算処理能力を得るようにしていた。
【0004】極めて高速のグラフィックス処理を実行す
るための現在利用可能な方式には、2つの基本方式があ
る。そのうちの一方は、シリーズ方式、または「パイプ
ライン方式」と呼ばれている方式である。パイプライン
方式では、複数のプロセッサを直列に結合して、グラフ
ィックス・データ・ストリームに処理を施すための、1
つの「パイプライン」を構成する。そして、このパイプ
ラインを構成している複数のプロセッサの間で作業負荷
を分担させるようにしている。しかしながらこの方式で
は、そのパイプラインの中の、あるプロセッサとその前
後のプロセッサとの間のインターフェースを、処理すべ
きデータ・ストリームの全体を伝達できるだけの能力を
備えたインターフェースにする必要がある。更に、その
パイプラインを構成するプロセッサの個数が3個以上に
なると、それらプロセッサどうしの間で仕事量をバラン
スさせることが難しくなる。実際に、複数のプロセッサ
に対してタスクが均一に分配されないために、それらプ
ロセッサのうちの1つないし幾つかがアイドル状態とな
ってしまうこともしばしばある。
【0005】上述の2つの基本方式のうちの、他方の方
式は、並列処理アーキテクチャを利用する方式である。
並列処理アーキテクチャでは、複数のプロセッサの全て
が、同じ入力データ・ストリームにアクセスできるよう
にしておく必要があり、そのためこの方式のシステムで
は、入力バスがシステムのボトルネックになる。この方
式に付随するもう1つの問題は、複数のプロセッサを互
いに結合する際に、それらプロセッサが共用する共用メ
モリの、格納及び読出しの帯域幅を十分に取ることが難
しいということにある。更に加えて、入力データ・スト
リームは本質的にシリアルなストリームであるため、入
力データ・ストリームを分解して並列処理が可能なフォ
ーマットにする必要があるが、多階層形の並列処理シス
テムにおいては、この入力データ・ストリームの分解を
どのように行なうべきかということも問題になる。この
点について更に詳しく説明すると、1つのデータ・スト
リームを分解して複数の断片にする際には、どのように
同期を取るか、即ち、時間的順序を維持するかが問題に
なり、更には、必ずシリアルに処理しなければならない
グラフィックス属性の処理をどうするかということも問
題になる。
【0006】以上の事情から、これまで利用可能であっ
た上記のいずれの方式のシステムにおいても、その処理
能力が必ずしも効率的に利用されないという事態が発生
するおそれがあった。従って、グラフィックス処理シス
テムにおける方法及びシステムを、グラフィックス・デ
ータ・ストリームに対して効率的に処理を施せるものと
することが望まれている。
【0007】従って本発明の目的の1つは、改良したグ
ラフィックス計算処理のための方法及びシステムを提供
することにある。本発明の更なる1つの目的は、グラフ
ィックス計算処理を実行してデータ・ストリームに処理
を施すための方法及びシステムを提供することにある。
本発明の更なる1つの目的は、グラフィックス・データ
・ストリームに対して効率的に処理を施すためのグラフ
ィックス計算処理の方法及びシステムを提供することに
ある。
【0008】本発明の他の目的は、必ず順序をなして処
理しなければならないグラフィックス属性デ−タの処理
を効率よく処理するためのグラフィックス・デ−タ・ス
トリ−ムの処理方法及びシステムを提供することにあ
る。
【課題を解決するための手段】以上の目的は、以下に説
明するようにして達成される。即ち、本発明は、デ−タ
処理システムにおける、グラフィックス・デ−タ・スト
リ−ムを処理するための方法及びシステムを提供するも
のである。このデ−タ処理システムは、複数の処理ノ−
ドとグラフィックス表示装置とを備えている。このデ−
タ処理システムでは、グラフィックス・デ−タ・ストリ
−ムを区分して、複数の処理ノ−ドに処理させるための
複数のデ−タ・セグメント即ち作業グル−プにする。続
いて、それら複数のデ−タ・セグメントを、それらを処
理させるために複数の処理ノ−ドへ分配する。また、あ
る1つのデ−タ・セグメントを、ある1つの処理ノ−ド
が受け取ったことに応答して、そのデ−タ・セグメント
を処理して処理済デ−タ・セグメントを生成する。更
に、複数の処理済デ−タ・セグメントを再組立して処理
済グラフィックス・デ−タ・ストリ−ムにする。この処
理済グラフィックス・デ−タ・ストリ−ムをグラフィス
表示装置に結合する。本発明は、更に、このようなグラ
フィックス処理システム及びグラフィックス・デ−タ・
ストリ−ムの処理方法において、複数の前記各処理ノ−
ドに結合したメモリにグラフィックス属性デ−タを各作
業グル−プ毎にコピ−しておき、かつ、この属性情報は
属性の処理毎に累積または更新されるようにしておき、
そして、各処理ノ−ドにおける1つの作業グル−プに対
する処理を、先行する作業グル−プに関して前記メモリ
内に格納されているグラフィックス属性デ−タを参照し
ながら実行する点に特徴がある。
【0009】本発明の以上の目的と特徴と利点、並びに
その他の目的と特徴と利点は、以下の詳細な説明によっ
て明らかとなる。
【0010】
【実施例】これより添付図面を参照しつつ順次説明をし
て行く。先ず図1について説明すると、同図に示したの
は、本発明の好適実施例をその中で実施することのでき
るコンピュータ・システムの一例の外観図である。図示
のコンピュータ・システム50は、システム本体装置5
2と、ビデオ表示端末54と、キーボード56と、マウ
ス58とを含んでいる。このコンピュータ・システム5
0は、適当なコンピュータを使用して構成することがで
き、具体的な例としては、例えば「IBM・PS/2」
コンピュータや、「IBM・RISCシステム/600
0」コンピュータ等を利用することができる。これらは
いずれもIBM社の製品である。尚、「RISCシステ
ム/6000」はIBM社の商標であり、「PS/2」
はIBM社の登録商標である。本発明の好適実施例は、
図示例以外のその他の種類のデータ処理システムの中で
実施することも可能であり、例えば、インテリジェント
・ワーク・ステーションや、ミニ・コンピュータ等にお
いて実施することも可能である。
【0011】次に図2について説明する。同図に示した
のは、本発明の好適実施例をその中で実施することので
きるコンピュータ・システム50の構成要素のうちの、
選択した幾つかの要素を示したブロック図である。シス
テム本体装置52は、好ましくは、このシステム本体装
置52の中の様々な構成要素を互いに接続してそれら構
成要素どうしの間の通信を行なうシステム・バス60を
備えたものとするのが良い。システム・バス60にはマ
イクロプロセッサ62を接続してあり、また、システム
・バス60には更に、数値演算用コプロセッサ64を接
続しておいても良い。システム・バス60には更に、D
MAコントローラ66を接続してあり、このDMAコン
トローラ66は、様々なデバイスが、大量の入出力転送
を行なう際に、マイクロプロセッサ62からサイクルの
専用権を譲り受けられるようにするためのものである。
【0012】マイクロプロセッサ62のアドレス空間の
中の640Kバイトから1Mバイトまでの領域には、リ
ード・オンリ・メモリ(ROM)68を割り当ててあ
る。このROM68はシステム・バス60に接続してあ
り、更にランダム・アクセス・メモリ(RAM)70も
システム・バス60に接続してある。ROM68には、
電源投入時自己試験(POST)機構と、基本入出力シ
ステム(BIOS)とを書き込んであり、これら機構及
びシステムは、ディスク・ドライブやキーボード等に関
するハードウェアの動作を制御する。システム・バス6
0には更に、CMOS・RAM72を接続してあり、こ
のCMOS・RAM72には、システムの構成情報を記
憶させておくようにしている。
【0013】システム・バス60には更に、メモリ・コ
ントローラ74、バス・コントローラ76、並びに割込
みコントローラ78を接続してあり、これらのものは、
様々な周辺装置、アダプタ、ないしデバイスどうしの間
でシステム・バス60を介して行なわれるデータ転送
の、そのデータの流れの制御に関与している。システム
本体装置52は更に、様々な入出力(I/O)コントロ
ーラを含んでおり、それらI/Oコントローラには、例
えば、キーボード/マウス・コントローラ80、ビデオ
・コントローラ82、パラレル・コントローラ84、シ
リアル・コントローラ86、それにディスケット・コン
トローラ88等がある。キーボード/マウス・コントロ
ーラ80は、キーボード90及びマウス92のためのハ
ードウェア・インターフェースを提供している。ビデオ
・コントローラ82は、ビデオ表示端末94のためのハ
ードウェア・インターフェースを提供している。パラレ
ル・コントローラ84は、プリンタ96等のデバイスの
ためのハードウェア・インターフェースを提供してい
る。シリアル・コントローラ86は、モデム98等のデ
バイスのためのハードウェア・インターフェースを提供
している。ディスケット・コントローラ88は、フロッ
ピーディスク装置100のためのハードウェア・インタ
ーフェースを提供している。システム・バス60には更
に、例えばディスク・コントローラ102等の拡張カー
ドを付加することができ、このディスク・コントローラ
102は、ハードウェアディスク装置104のためのハ
ードウェア・インターフェースを提供する。更に、幾つ
かの空きスロット106を用意してあり、これら空きス
ロット106を利用することによって、更にその他の周
辺装置、アダプタ、デバイス等を、システム本体装置5
2に付加することができる。本発明の好適実施例は、こ
の空きスロット106の中に装着するグラフィックス・
アダプタの形で、このシステム本体装置52に付加でき
るようにしたものである。
【0014】当業者には容易に理解されるように、図2
に例示したハードウェアは、実際の用途が具体的にどの
ようなものであるかに応じて、様々に異なった形態を取
り得るものである。例えば、その他の種類の周辺装置
(その幾つかの例を挙げるならば、光ディスク媒体、音
響アダプタ、PALないしEPROM等のチップ・プロ
グラミング・デバイス、等々がある)を、図2に例示し
たハードウェアに追加して使用したり、或いは、図2に
例示したハードウェアの代わりに使用したりすることも
可能である。
【0015】本発明の好適実施例では、複数のプロセッ
サの配列を、パラレルな複数のパイプラインを構成する
ような配列とし、それによって複数の処理ノードを形成
するようにしている。そして、これら複数の処理ノード
に、データ処理システムが行なうべきグラフィックス計
算処理の全体のうちの、大部分を実行させるようにして
いる。複数のプロセッサは、入力通信経路からデータを
受け取り、必要な計算処理(例えば、変換、クリッピン
グ、高輝度表示処理、等々)を実行する。処理ノードの
中の各々プロセッサは、中間データを、その処理ノード
の中の後続のプロセッサへ受け渡して、その後続のプロ
セッサに、計算処理の続きを実行させることができるよ
うにしている。これにより、1つの処理ノードの中の複
数のプロセッサの間で計算処理を分担できるようにして
いる。本発明の好適実施例においては、各プロセッサ
は、そのプロセッサに専用のメモリを備えており、ま
た、通信経路は、プロセッサがコードやデータ・メモリ
にアクセスする能力に対して影響を及ぼすことなくデー
タの転送を行なえるように設計してある。
【0016】次に図3について説明する。同図に示した
のは、本発明の好適実施例に従って構成したノード式プ
ロセッサ構成体300のブロック図である。このノード
式プロセッサ構成体300は、バス・インターフェース
302を介して1つないし複数のグラフィックス・デー
タ・ストリームを受け取る。バス・インターフェース3
02はデータ処理システムのシステム・バスに接続して
あり、この接続は当業者には周知の既存の技術によって
行なっている。グラフィックス・データ・ストリーム
は、それを分割し、即ち区分することによって、複数の
作業要素(WE)に分けることができる。作業要素には
3通りの種類がある。その第1は「描画プリミティブ」
という作業要素であり、これは、線、多角形、三角形、
テキスト、等々を描画することを命じるコマンドであ
る。第2は「属性プリミティブ」であり、これは属性を
変更することを命じるコマンドであって、「属性変更」
ともいう。第3は「内容プリミティブ」であり、これ
は、あるディスプレイ領域即ちウィンドウに関する内容
情報である。
【0017】グラフィックス・データ・ストリームは、
一旦、作業要素RAM(WE RAM)304の中に格
納できるようにしてある。本発明の好適実施例において
は、グラフィックス・データ・ストリームを分解、即ち
区分して複数のセグメントにする作業は、属性プロセッ
サ(AP)306に行なわせている。こうして得られた
セグメントは「作業グループ(WG)」と呼ばれ、1つ
の作業グループには、1つないし幾つかの作業要素が包
含される。1つの作業グループの中に包含される作業要
素の個数を定めるファクタには様々なものがあり、例え
ば、1つの作業グループを処理するのにかかる処理時間
と、複数の作業要素をグループ化して1つの作業グルー
プにまとめるためにかかる処理時間との比較というの
も、1つのファクタである。属性プロセッサ306はR
AM308に結合しており、このRAM308は、属性
プロセッサ306が使用する様々な命令やデータを格納
しておくためのメモリである。また、属性プロセッサ3
06は、データの転送を、例えばDMAコントローラや
プロセッサ等の、他のデバイスに行なわせることもで
き、或いは、属性プロセッサ306それ自体の中に備え
た内部構成要素によって行なうこともできるようにして
ある。属性プロセッサ306は更に、それ自体でグラフ
ィックス処理を実行した上で、複数の処理ノードへ、そ
れら処理ノードに処理させる作業と併せて現在属性デー
タを供給することもできる。
【0018】ビデオRAM(VRAM)310は、本発
明の好適実施例においては、データ・ストリームから得
た属性情報を、フォント情報並びにその他の内容関連デ
ータと共に、処理済属性プリミティブの形で格納してお
くためのメモリである。グラフィックス・データ・スト
リームからVRAM310の中へ属性データをコピーす
る作業は、属性プロセッサ306に行なわせている。共
用RAM312は、フォント・データ並びに内容データ
を格納しておくためのメモリである。VRAM310と
共用RAM312とはいずれも、例えばグラフィックス
内容情報、フォント、属性データ等の、大域的アクセス
が行なわれるデータを格納しておくための共用メモリ領
域である。このタイプのメモリは、全てのプロセッサか
らアクセスすることができるが、アクセス頻度は比較的
低頻度である。そのため、このタイプのメモリへのアク
セスのためのバスの競合は、たとえ発生したにしても、
性能には殆ど影響を及ぼさない程度のものでしかない。
【0019】属性プロセッサ306は、複数の処理ノー
ドへ作業グループを分配する。分配先の処理ノードは、
第1ノード、第2ノード、... 、第Nノードであり、こ
の分配は通信経路313を介して行なわれる。本発明の
好適実施例では、プロセッサどうしの間でのデータ転送
は、この通信経路313を介して行なうようにしてい
る。この種の通信経路は、メモリ・ポートで構成するこ
ともでき、また、当業者には周知の、あるプロセッサか
ら他のプロセッサへのデータ経路を提供することのでき
る、任意の種類のハードウェアを用いて構成しても良
い。複数の処理ノードは、その各々が、RAM316に
結合したプロセッサ314と、RAM320に結合した
プロセッサ318とを含んでいる。また更に、それら2
つのプロセッサ314と318とをシリアル結合してあ
る。これらプロセッサ314及び318には、本発明の
好適実施例では、テキサス・インスツルメント社が製造
している「TMS320C40型プロセッサ」を使用し
ている。尚、この「TMS320C40型プロセッサ」
のプログラミングの仕方、並びにその使用法についての
情報は、テキサス・インスツルメント社が一般向けに発
行している「TMS320C4xユーザーズ・ガイド」
という文献に掲載されている。RAM316は、プロセ
ッサ314に関係した命令及びデータを格納しておくた
めのメモリ、またRAM320は、プロセッサ318に
関係した命令及びデータを格納しておくためのメモリで
ある。
【0020】本発明の好適実施例においては、処理ノー
ドの総数は、様々な個数に設定することが可能である。
また、図示例では、1つの処理ノードに装備しているプ
ロセッサの個数は2個であるが、1つの処理ノードに装
備するプロセッサの個数をこれ以外の個数にすることも
可能である。更に、1つの処理ノードに2個以上のプロ
セッサを装備する場合に、同一の処理ノードの中の全て
のプロセッサを同じ形式ないし同じ作りのプロセッサに
揃えることは必ずしも必要ではない。
【0021】属性プロセッサ306は通信経路を介して
処理ノードと結合することができ、この通信経路は、F
IFOであっても良く、共用メモリ領域であっても良
く、通信ポート(シリアルとパラレルのいずれでも良
い)であっても良く、更には、プロセッサからプロセッ
サへの通信経路として使用できるものであれば、当業界
において周知のいかなる種類の通信経路でも良い。加え
て、処理ノードの中の各々のプロセッサが、その処理ノ
ードの中でそのプロセッサよりも下流側に配置されてい
るプロセッサへの同様の通信経路を備えているようにし
ても良い。いずれの場合にも、プロセッサどうしの間の
結合は、当業界において周知の様々な技法によって実現
することができる。尚、図示例では、プロセッサどうし
を接続するために、「TMS320C40型プロセッ
サ」に装備されている標準通信経路を使用している。
【0022】処理ノードの中のプロセッサどうしは、当
業界において周知の構成のバス・トランシーバ321
a、321b、及び321cによって分離可能にしてあ
る。これらバス・トランシーバは、処理ノードの中のプ
ロセッサの、VRAM310ないし共用RAM312へ
のアクセスを規制している。即ち、これらバス・トラン
シーバを閉成状態にすれば、連続した単一のバスを形成
することができ、一方、これらバス・トランシーバを開
放状態にすれば、互いに分離した2つのバスを形成する
ことができる。それらバス・トランシーバの全てが開放
状態にあるときには、第1ノード、第2ノード、... 第
Nノードのプロセッサ318は、共用RAM312に対
してアクセス可能となっており、一方、第1ノード、第
2ノード、... 第Nノードのプロセッサ314は、VR
AM310に対してアクセス可能になっている。この状
態から全てのバス・トランシーバを閉成すると、それら
処理ノードの中の全てのプロセッサが、共用メモリ31
2とVRAM310との両方に対してアクセス可能にな
る。尚、図示例ではバス・トランシーバの個数を3個と
し、共用RAMの個数を1個とし、VRAMの個数も1
個としてあるが、本発明の好適実施例では、バス・トラ
ンシーバの個数を、これ以外の個数にすることも、RA
Mの個数やタイプを様々なものとすることも可能であ
る。
【0023】夫々の処理ノードの中で夫々の作業グルー
プの処理が完了するのにつれて、処理済作業グループ
が、それら処理ノードから、バス324を介して、リオ
ーダ装置322へ向けて送出されて行く。尚、この送出
に使用されるバス324は、プロセッサがRAM320
にアクセスする際にも使用される。図示例では、リオー
ダ装置322には、特定用途向け集積回路(applicatio
n specific integratedcircuit:ASIC)を使用して
いる。ただし、本発明の好適実施例においては、リオー
ダ装置322は、別に備えたプロセッサによって構成し
ても良く、また、複数の処理済作業グループを互いに結
合する再組立のための、当業界においては周知のある種
の専用構成のロジック回路としても良い。このリオーダ
装置322では、複数の処理済作業グループが結合さ
れ、即ち再組立されることによって、処理済グラフィッ
クス・データ・ストリームが生成され、このグラフィッ
クス・データ・ストリームは、ラスタ・サブシステム3
26へ送られる。ラスタ・サブシステム326は、ビデ
オ表示端末上においてディスプレイを実行するための、
専用構成のASICないしプロセッサとすることができ
る。本発明の好適実施例では、処理済作業グループのリ
オーダ、即ち再組立を可能にするために、各々の作業グ
ループに同期化用タグないし順序番号を付与するように
している。各作業グループに同期化用タグを付与した場
合には、リオーダ装置322は、複数の作業グループを
然るべき順序に並べて結合して1つのデータ・ストリー
ムを生成する際に、それら作業グループの同期化用タグ
に基づいて、その順序を判定することができる。
【0024】場合によっては、複数の作業グループが並
んでいる順序が非常に重要なこともあり、また場合によ
っては、作業グループの順序が重要でなく、どうでも良
いということもあり得る。そのため、本発明の好適実施
例では、グラフィックス・データ・ストリームを複数の
セグメントに分割する作業を行なわせている属性プロセ
ッサ306に、リオーダ装置322で行なわれるセグメ
ント(即ち、作業グループ)のリオーダ即ち再組立の作
業における、順序判定も行なわせることができるように
している。更に、本発明の好適実施例においては、この
属性プロセッサ306に、作業グループの順序が重要か
否かを判定させることや、場合によっては、各々の作業
グループに同期化用タグないし順序番号を付与する作業
も行なわせることができるようにしている。順序が重要
か否かの判定は様々なファクタに基づいて行なわれ、例
えば、処理しようとしているグラフィックス・データ・
ストリームのタイプ等も、そのファクタのうちの1つで
ある。また、本発明の好適実施例では、同期化用タグな
いし順序番号は、リオーダ装置322が、処理済のグラ
フィックス・データをラスタ・サブシステム326へ送
出する際に、その送出の順序を判定するためにも使用さ
れている。尚、時間的な順序はどうでもよいという作業
グループが複数ある場合に、それら作業グループの全て
に同一の同期化用タグないし順序番号を付与するように
しても良い。
【0025】グラフィックス・データ・ストリームは、
多重化されたものであっても良い。換言すれば、ある1
つのグラフィックス・データ・ストリームが2種類以上
のグラフィックス・データ・フォーマットを包含してお
り、それらグラフィックス・データ・フォーマットの各
々が、個々にグラフィックス・データ・ストリームの形
を取っており、それら個々のグラフィックス・データ・
ストリームによって、多重化された1つのグラフィック
ス・データ・ストリームが形成されているという構成
の、グラフィックス・データ・ストリームであっても良
いということである。更には、この多重化された1つの
グラフィックス・データ・ストリームは、同一種類のグ
ラフィックス・データ・フォーマットを有するグラフィ
ックス・データ・ストリームを2つ以上包含しているも
のであっても良い。本発明の好適実施例では、リオーダ
装置並びに属性プロセッサを適宜プログラムして、処理
ノードの選択的なグループ化を行なわせるという方法
で、多重化された1つのグラフィックス・データ・スト
リームの中の種々のグラフィックス・データ・ストリー
ムに対して処理を施せるようにしている。この選択的な
グループ化という方法を用いるのは、例えば、内容の切
替えを行なうのにかかる時間、即ち、1つのグラフィッ
クス・データ・ストリームから別のグラフィックス・デ
ータ・ストリームへの切替えを行なうのにかかる時間
が、データ・ストリームを処理するための作業負荷とい
うファクタよりも、大きなファクタである場合等であ
る。更に、本発明の好適実施例では、オンライン診断の
結果、1つないし幾つかの処理ノードが故障しているこ
とが検出されたときにも、この選択的なグループ化とい
う方法を利用するようにしている。
【0026】図3のプロセッサ構成体300は更に制御
プロセッサ(CP)328を備えており、この制御プロ
セッサ328はRAM330に結合している。制御プロ
セッサ328は、このRAM330を、情報を格納し命
令を保存しておくために使用している。制御プロセッサ
328は更に、属性プロセッサ306、リオーダ装置3
22、並びに、ラスタ・サブシステム326に結合して
いる。制御プロセッサ328は、ラスタ・サブシステム
326及びバス・インターフェース302の管理を行な
っている。制御プロセッサ328は更に、ある種の処
理、例えばビット・ブロック転送処理(BitBLT処理)等
の実行にも参加する。BitBLT処理とは、複数のビットか
ら成るビット・ブロックを、ある場所から他の場所へ
(例えば、スクリーンからスクリーンへ、スクリーンか
らシステムへ、或いは、システムからスクリーンへ)コ
ピーする処理である。このBitBLT処理が実行されるとき
には、制御プロセッサ328は、ラスタ・サブシステム
326、及びバス・インターフェース302の制御と、
そのBitBLT処理のためのDMA動作の設定とを担当す
る。
【0027】属性プロセッサ306は、入力FIFO、
メモリ、或いはその他の入力経路から、作業を読み出
し、或いは読み取った上で、複数の作業グループを夫々
適当な処理ノードへ転送する。属性プロセッサ306は
更に、複数の作業グループが処理ノードで処理された後
に、それによって得られた複数の処理済作業グループを
リオーダすることができるように、それら作業グループ
に順序番号を包含させる等の処理も担当している。更に
加えて、属性プロセッサ306は、ある種のグラフィッ
クス・データ・ストリームに関しては、ディスプレイ・
リスト処理や、非描画処理も実行できるようにしてあ
る。
【0028】このように、本発明の好適実施例において
は、処理ノードへ向けてデータを送出する作業をプロセ
ッサ(即ち、属性プロセッサ306)に行なわせるよう
にしているため、夫々の処理ノードの中の最上位のプロ
セッサどうしが、共用入力資源にアクセスしようとして
競合することが回避されている。そして、その結果、資
源の入手を待つ間プロセッサが動作を停止してしまう時
間を、短縮することが可能になっている。
【0029】通常、グラフィックスの属性の処理(属性
処理)を幾つも行なう場合には、それら複数の属性処理
を順次方式で(即ちシリアルに)進めて行く必要があ
る。そこで、属性プロセッサを、プロセッサのアイドル
時間を短縮することができるものであることに加えて、
更に、複数の属性処理をシリアルに進めて行くことがで
きるものとしてある。ここで更に問題となるのは、ある
1つの作業要素を実行するためには、その特定の作業要
素に影響を及ぼす先行する属性の全てを、その作業要素
の実行より前に処理完了しておかねばならないというこ
とである。また、作業要素のうちには、後続の作業要素
に影響を及ぼす属性変更を含んでいるものもある。この
ような事情から、複数の作業要素をパラレルに処理する
ことは容易でなく、その原因はなによりも、パラレル・
アーキテクチャにおいて、あるプロセッサがある1つの
作業要素の処理を開始するためには、その作業要素より
以前の作業要素の属性をも含めた、先行する全ての属性
の処理を完了させてからでなければ、その作業要素の処
理を開始することができないことにある。この点に関し
て、本発明の好適実施例では、属性処理を属性プロセッ
サに実行させることによって、複数の作業要素を夫々の
処理ノードへさっさと送出してしまえるようにしてお
り、これは、属性プロセッサが行なう属性処理は迅速に
完了するため、処理ノードにおける作業要素の処理の完
了に先んじて属性処理が完了するということを利用した
ものである。これが可能であるのは、一般的に、作業要
素の処理にかかる時間よりも、属性処理にかかる時間の
方が短いからである。そのため、属性プロセッサが、多
くの場合に同時に並行して処理を実行している処理ノー
ドに先んじて、みずからが実行している属性処理を完了
することが通常可能だからである。
【0030】本発明の更なる1つの利点は、本発明のア
ーキテクチャによれば、一般に知られている様々なグラ
フィックス・データ・フォーマット(例えば「GL」、
「PHIGS」、「X Windows」、「508
0」等々)の処理を効率的に行なえることにある。本発
明が取り扱うことのできる多重化されたグラフィックス
・データ・ストリームは、2つ以上のグラフィックス・
データ・ストリームを包含しているものであっても良
く、しかも、それらグラフィックス・データ・ストリー
ムの各々が異なったグラフィックス・データ・フォーマ
ットを有するものであっても良い。例えば、ある1つの
グラフィックス・データ・ストリームが、1つのGLデ
ータ・ストリームと、1つのPHIGSデータ・ストリ
ームとを包含していても良い。更に、ある1つのグラフ
ィックス・データ・ストリームが、例えば、2つのGL
データ・ストリームを包含していても良い。
【0031】次に、図4について説明する。同図に示し
たのは、本発明の好適実施例において、属性プロセッサ
が、複数の作業グループを、それらを処理させるために
夫々の処理ノードへ向けて送出する際の動作を示したブ
ロック図である。グラフィックス・データ・ストリーム
から得られたデータが、作業要素RAM(WE RA
M)400の中に格納されている。属性プロセッサ(A
P)402は、グラフィックス・データ・ストリームを
区分して、複数の作業グループWG1、WG2、WG
3、WG4、WG5、及び、WG6にする。本発明の好
適実施例では、これら作業グループは、最初に利用可能
になった処理ノードへ分配、即ち送出するようにしてい
る。ただし、これ以外の分配方式を採用することも可能
である。
【0032】属性プロセッサ402は更に、各々の作業
グループごとに、属性プリミティブ(即ち、属性変更)
に該当する作業要素を捜し出すためのサーチを行ない、
属性プリミティブ(即ち、属性変更)の処理を行ない、
そして、処理済の属性情報をVRAM404の中に格納
する。属性プリミティブに該当する作業要素を捜し出す
ためのサーチは、属性プロセッサ402がVRAM40
4の中から作業要素を1つずつ取り出す際に行なうよう
にすることもできる。図示例では、作業グループWG1
〜WG6の夫々に包含されていた、属性プリミティブに
該当していた作業要素を処理したものを、 WG 1 Attri
b、 WG 2 Attrib、 WG 3 Attrib、 WG 4Attrib、 WG 5
Attrib、及び WG 6 Attribで表わしている。図示の如
く、これら属性プリミティブは、グラフィックス・デー
タ・ストリームが分解され、そこから取り出され、そし
て処理されたものであり、処理済の属性プリミティブは
VRAM404の中に格納され、この格納は、処理済の
属性プリミティブをVRAM404の中へコピーするプ
ロセスである属性タスク・プロセス405をとおして行
なわれる。VRAM404の中に格納されている属性情
報のうちの第1番目のものは初期属性状態であり、属性
状態は、以後、属性プリミティブを包含している作業要
素が処理されてVRAM404の中に格納される都度、
変化して行く。尚、初期属性状態の時点より後の、任意
の時点における属性状態を、累積属性状態と呼んでい
る。
【0033】処理ノードへ送出される作業グループの各
々には、その作業グループに関係した未処理のままの属
性プリミティブが包含されている。また、それら作業グ
ループの各々には、VRAM404の中へコピーされて
いる累積属性状態を指し示すポインタを付随させてあ
る。これによって、いずれの処理ノードからでも、VR
AM404の中に格納されている全ての属性状態にアク
セスできるようにしてあり、更にそれによって、各々の
作業グループを、その作業グループより先行している全
ての属性プリミティブを考慮に入れて処理することがで
きるようにしている。もしかりに、先行する属性プリミ
ティブを考慮に入れて処理を行なうことが可能でなかっ
たならば、先行する属性プリミティブによって規定され
る現在属性状態を判定するために、ある処理ノードが別
の処理ノードの作業の完了を待たねばならないという事
態が生じるおそれがある。
【0034】この点について、具体的な例を挙げて説明
するならば、例えば、第1の作業グループに包含されて
いる一連の作業要素が、3本の直線を描画し、カラーを
青に変更するというものであり、一方、第2の作業グル
ープに包含されている一連の作業要素が、3本の直線を
描画するというだけで、属性データを含んでいないもの
であったとする。この場合、第2の作業グループを処理
する処理ノードは、描画する3本の直線を、青で描画す
べきであるということを知らなければ、処理を行なうこ
とができない。それゆえ、VRAM404の中に格納さ
れている累積属性状態を指し示すポインタを付随させる
ことによって、各々の処理ノードが、その作業グループ
より前に、どのような属性変更が行なわれているかを判
定できるようにしているのである。
【0035】属性プロセッサ402は、以上のようにし
て作業グループを形成することに加えて、処理ノードへ
の作業グループの転送の制御も行なっている。図示例で
は、属性プロセッサ402は、データ転送プロセス40
8を実行することによって作業グループWG1を処理ノ
ード406へ転送している。また、データ転送プロセス
412を実行することによって作業グループWG2を処
理ノード410へ転送し、データ転送プロセス416を
実行することによって作業グループWG3を処理ノード
414へ転送し、更に、データ転送プロセス420を実
行することによって作業グループWG4を処理ノード4
18へ転送している。各々の処理ノードは、送られてき
た作業グループに対して、VRAM404の中に格納さ
れている属性データを参照して処理を施す。VRAM4
04は共用メモリであり、そのため、全ての処理ノード
が、このVRAM404にアクセスして、各々の作業グ
ループを適切に処理するために必要な属性情報を入手す
ることができる。各々の作業グループが、夫々の処理ノ
ードにおいて処理完了したならば、処理済のそれら作業
グループが結合され、即ち再組立が行なわれて、処理済
グラフィックス・データ・ストリームが生成される。本
発明の好適実施例においては、この処理済グラフィック
ス・データ・ストリームを、ラスタ・サブシステムを介
してグラフィックス表示装置に結合することによって、
ユーザへのディスプレイを行なうようにしている。
【0036】次に、図5について説明する。同図に示し
たのは、本発明の好適実施例における、複数の作業グル
ープを、それらを処理させるために処理ノードへ向けて
送出するための方法及びシステムの、ハイレベルのフロ
ーチャートである。この方法及びシステムは、本発明の
好適実施例では、処理ノードへの作業グループの送出を
制御するためのマイクロコードの形で構成することがで
きる。また、本発明の好適実施例では、処理対象のグラ
フィックス・データ・ストリームは、実際に、互いに異
なったタイプ、或いは互いに同一のタイプの、複数のグ
ラフィックス・データ・ストリームをを包含しているも
のであって構わない。更に、本発明の好適実施例では、
本発明の方法及びシステムが、多重化されたグラフィッ
クス・データ・ストリームを受け取って処理できるもの
となっている。
【0037】図示のプロセスはブロック500から開始
し、このブロック500では、グラフィックス・データ
・ストリームの形を取っている複数の作業要素を受け取
る。受け取ったそれら作業要素は、作業要素RAMの中
に格納しておく。続いて処理の流れはブロック502へ
進み、このブロック502では、作業要素RAMの中に
格納されている作業要素のうちの、続く次の作業要素を
取り出す。続いて処理の流れはブロック504へ進み、
このブロック504では、その取り出した作業要素が属
性プリミティブ(即ち属性変更)であるか否かを判定す
る。その作業要素が属性変更であったならば、処理の流
れはブロック506へ進み、そこでは、その属性の処理
を行なった上で、RAMの中の現在属性の更新を行な
う。
【0038】続いて処理の流れはブロック508へ進
み、このブロック508では、作業グループが、処理ノ
ードへ向けて送出しても良い十分な大きさとなった否か
を判定する。ここで説明をブロック504に戻し、ブロ
ック504での判定の結果、取り出した作業要素が属性
プリミティブ(即ち属性変更)ではないと判定された場
合には、処理の流れはブロック504から直接ブロック
508へ進む。ブロック508での判定の結果、その作
業グループが、処理ノードへ向けて送出しても良い十分
な大きさになっていると判定されたならば、処理の流れ
はブロック510へ進み、このブロック510では、現
在属性状態をVRAMの中へコピーする。続いて処理の
流れはブロック512へ進み、そこでは、VRAMの中
の属性プリミティブのコピーを指し示すポインタをその
作業グループに付加する。続いて処理の流れはブロック
514へ進み、そこでは、その作業グループに同期化用
タグを付加する。
【0039】続いてブロック516において、空いてい
る処理ノードが存在しているか否かを判定する。空いて
いる処理ノードが存在していなかったならば、処理の流
れはブロック518へ進み、このブロック518では、
その作業グループをリンク・リストへリンクする。この
リンク・リストは、未だ処理ノードによって処理されて
いない全ての作業グループを記入しておくためのリスト
である。このリンク・リストを参照して、ある処理ノー
ドが処理に使用できる状態になったときに、その処理ノ
ードへ作業グループを分配するようにしている。続いて
処理の流れはブロック502へリターンする。
【0040】説明をブロック508へ戻し、このブロッ
ク508での判定の結果、その作業グループが、処理ノ
ードへ向けて送出しても良い十分な大きさにはなってい
ないと判定された場合には、処理の流れはそこからブロ
ック520へ進み、このブロック502では、その作業
グループに作業要素を追加し、この後、処理の流れはブ
ロック502へリターンして、更に次の作業要素の取り
出しを行なう。
【0041】説明をブロック516へ戻し、このブロッ
ク516での判定の結果、空いている処理ノードが存在
していると判定されたならば、処理の流れはブロック5
22へ進み、このブロック522では、その空き状態の
処理ノードへの作業グループの転送を開始する。続いて
処理の流れはブロック502へリターンし、更に次の作
業要素の取り出しを行なう。
【0042】次に図6について説明する。同図に示した
のは、リンク・リストに記入されている作業グループを
処理ノードへ向けて送出するための方法及びシステム
の、ハイレベルのフローチャートである。図5のブロッ
ク522において、処理ノードへの作業グループの転送
を開始しようとするときに、この図6のプロセスが開始
する。図6に示したように、このプロセスはブロック6
00から開始し、このブロック600では、処理ノード
への作業グループの転送が完了するのを待つ。そして、
その転送が完了したならば、処理の流れはブロック60
2へ進み、このブロック602では、リンク・リストの
中に記入されている作業グループがあるか否かを判定す
る。リンク・リストの中に記入されている作業グループ
が1つでもあったならば、処理の流れはブロック604
へ進み、このブロック604では、リンク・リストに記
入されている作業グループのうちの1つをいずれかの処
理ノードへ転送する転送処理を開始する。本発明の好適
実施例では、リンク・リストに記入されている作業グル
ープを処理ノードへ転送する転送処理を、先入れ先出し
方式で行なうようにしている。続いて処理の流れはブロ
ック600へリターンし、以上のサイクルの全体を再び
実行する。ここで説明をブロック602へ戻して、この
ブロック602での判定の結果、リンク・リストに作業
グループが1つも記入されていないことが判明した場合
には、処理の流れは、そこからブロック600へリター
ンする。
【0043】次に図7について説明する。同図に示した
のは、複数の処理済作業グループを結合して再組立する
ための方法及びシステムの、ハイレベルのフローチャー
トである。各々の処理ノードは夫々1つずつの先入れ先
出しバッファ(FIFO)に結合しており、各々の処理
ノードから送出された(処理済の)作業グループは、一
旦その処理ノードに結合しているFIFOの中に入れら
れ、その後に、夫々のFIFOの中の作業グループが結
合されて再組立され、処理済データ・ストリームが生成
される。即ち、リオーダ装置が、それらFIFOから一
度に1ワードずつ、データを読み出す。1ワードの大き
さは様々に設定することができ、例えば32ビットを1
ワードとしても良い。この再組立のプロセスは、図7に
示したように、ブロック700から開始し、このブロッ
ク700では、現在順序番号cur seq num を初期化し、
即ち、所定の値(通常は「0」)にセットする。続いて
処理の流れはブロック702へ進み、そこでは、イネー
ブルされているFIFOのボトムをスキャンして行く
(即ち、次々と調べて行く)。尚、FIFOは、そのF
IFOに結合している処理ノードが作業グループの処理
を完了したときにイネーブルされる。
【0044】続いて処理の流れはブロック704へ進
み、そこでは、いずれかのFIFOのボトムにデータが
存在しているか否かを判定する。ここでいうデータに
は、順序番号や終了タグは含まれない。あるFIFOの
ボトムにデータが存在していたならば、処理の流れはブ
ロック706へ進み、そこでは、そのFIFOからリオ
ーダ装置の出力部へのデータ転送を行ない、このデータ
転送は新たな順序番号ないし終了タグに遭遇するまで続
行し、遭遇したならば停止する。続いて処理の流れはブ
ロック702へリターンする。
【0045】説明をブロック704へ戻し、このブロッ
ク704での判定の結果、どのFIFOのボトムにもデ
ータが存在していないと判定された場合には、処理の流
れはブロック708へ進み、このブロック708では、
制御プロセッサのFIFOが空か否かを判定する。制御
プロセッサのFIFOが空でなかったならば、処理の流
れはブロック710へ進み、そこでは、制御プロセッサ
のFIFOからリオーダ装置の出力部へのデータ転送を
行ない、このデータの転送は終了タグに遭遇するまで続
行し、遭遇したならば停止する。続いて処理の流れはブ
ロック702へリターンする。
【0046】説明をブロック708へ戻し、このブロッ
ク708での判定の結果、制御プロセッサのFIFOが
空であると判明した場合には、処理の流れはブロック7
12へ進み、そこでは、夫々の処理ノードのFIFOの
夫々のボトムのワードの順序番号のうちから最小の順序
番号を選択する。続いて処理の流れはブロック714へ
進み、そこでは、その最小の順序番号と現在順序番号cu
r seq num とが一致しているか否かを判定する。その最
小の順序番号と現在順序番号cur seq num とが一致して
いたならば、その作業は所定の順序を必要とする種類の
作業ではないため、この場合には、処理の流れはブロッ
ク716へ進み、そこでは、その順序番号を廃棄する。
これによって、そのFIFOからリオーダ装置の出力部
へのデータ転送が開始される。続いて処理の流れはブロ
ック702へリターンする。
【0047】説明をブロック714へ戻し、このブロッ
ク714での判定の結果、その最小の順序番号と現在順
序番号cur seq num とが一致していないと判明したなら
ば、その作業は所定の順序を必要とする種類の作業であ
るため、この場合には、処理の流れはブロック718へ
進み、そこでは、その最小の順序番号が、現在順序番号
cur seq num に「1」を加えた値に等しいか否かを判定
する。そして、その最小の順序番号が、現在順序番号cu
r seq num に「1」を加えた値に等しいことが判明した
ならば、処理の流れはブロック720へ進み、そこで
は、現在順序番号cur seq num を「1」だけインクリメ
ントする。続いて、処理の流れはブロック716へ進
み、そこでは、その順序番号を廃棄する。これによっ
て、そのFIFOからリオーダ装置の出力部へのデータ
転送が開始される。続いて処理の流れはブロック702
へリターンする。
【0048】説明をブロック718へ戻し、このブロッ
ク718での判定の結果、その最小の順序番号が、現在
順序番号cur seq num に「1」を加えた値に等しくない
ことが判明した場合には、処理の流れはブロック722
へ進み、そこでは、空のFIFOが存在しているか否か
を判定する。もし、空のFIFOが1つも存在していな
かったならば、処理の流れはブロック724へ進み、そ
こでは、エラー状態の発生を告げるメッセージを送出す
る。続いてこのプロセスはブロック726において終了
する。この場合には、このプロセスを再初期化する必要
がある。
【0049】一方、ブロック722での判定の結果、1
つないし幾つかのFIFOが空であることが判明したな
らば、処理の流れはブロック702へリターンする。
【0050】
【発明の効果】本発明は、多数のプロセッサを結合して
高性能のグラフィックス計算システムを構成するための
改良した方式を提供しており、この方式では、複数の処
理ノードへ作業を送出する処理を、プロセッサに行なわ
せるようにしている。また、プロセッサからプロセッサ
へのデータ転送は、メモリをアクセスする経路とは別に
設けたデータ経路によって行なうようにしているため、
メモリ・バスの帯域幅に関する問題が発生しない。更
に、あるデータがデータ経路上を何度も転送されるとい
うことも回避されているため、インターフェースに要求
される帯域幅を小さな値に抑えることもできる。更に本
発明の好適実施例では、パイプラインを1つしか備えて
いないシリアル・プロセッサ形のシステムと比較して、
データ経路の帯域幅を、より小さな値に抑えることがで
き、これが可能であるのは、各々の処理ノードが、全体
のN分の1の量の(Nは処理ノードの個数である)デー
タ・ストリームを取り扱うだけで良いからである。加え
て、共用メモリ式のパラレル・プロセッサ形のシステム
で発生するメモリの競合という問題も、本発明では発生
することがなく、それは、本発明においては、データの
流れの本流が、共用メモリを介することなく流れるよう
にしてあるからである。
【0051】本発明の更なる1つの利点は、データ処理
システムの中の処理ノードの個数を容易に増減し得るこ
とにある。即ち、本発明の好適実施例に従って構成した
グラフィックス処理システム製品では、単に処理ノード
を追加、或いは削減するだけで、ソフトウェアや回路構
成の変更をせずに、システムの規模を容易に拡大ないし
縮小することができる。
【0052】本発明の更なる1つの利点は、各々が異な
ったグラフィックス・データ・フォーマットを有する複
数のグラフィックス・データ・ストリームを包含してい
る多重化されたグラフィックス・データ・ストリーム
を、複数の処理ノードのうちの別々の処理ノードにおい
て、同時並行的に処理できることにある。例えば、処理
ノードを4個備えたシステムでは、そのうちの3個の処
理ノードに「GL」のデータ・ストリームの処理を行な
わせ、残りの1個の処理ノードに「X Window
s」のデータ・ストリームの処理を行なわせるようにす
ることもでき、或いは、それら4個の処理ノードに、タ
イプはいずれも「GL」であるが夫々に別個のデータ・
ストリームの処理を行なわせることもできる。
【図面の簡単な説明】
【図1】本発明の好適実施例をその中で実施することの
できるコンピュータ・システムの一例の外観図である。
【図2】本発明の好適実施例をその中で実施することの
できるパーソナル・コンピュータの構成要素のうちの、
選択した幾つかの要素を示したブロック図である。
【図3】本発明の好適実施例に従って構成したノード式
プロセッサ構成体のブロック図である。
【図4】本発明の好適実施例における、属性プロセッサ
が複数の作業グループを、それらを処理させるために夫
々の処理ノードへ向けて送出する際の動作を示したブロ
ック図である。
【図5】本発明の好適実施例における、複数の作業グル
ープを、それらを処理させるために処理ノードへ向けて
送出するための方法及びシステムの、ハイレベルのフロ
ーチャートである。
【図6】リンク・リストに記入されている作業グループ
を処理ノードへ向けて送出するための方法及びシステム
の、ハイレベルのフローチャートである。
【図7】複数の処理済作業グループを結合して再組立す
るための方法及びシステムの、ハイレベルのフローチャ
ートである。
【符号の説明】
300 プロセッサ構成体 302 バス・インターフェース 304 作業要素RAM(WE RAM) 306 属性プロセッサ(AP) 310 ビデオRAM(VRAM) 312 共用RAM 313 通信経路 314、318 プロセッサ 322 リオーダ装置 324 バス 326 ラスタ・サブシステム 328 制御プロセッサ(CP) 400 作業要素RAM(WE RAM) 402 属性プロセッサ(AP) 404 VRAM 406、410、414、418 処理ノード 408、412、416、420 データ転送プロセス WG1、WG2、WG3、WG4、WG5、WG6 作
業グループ(WG)
フロントページの続き (72)発明者 ジョセフ・シー・カンツ アメリカ合衆国12477、ニューヨーク州 サウジャーティーズ 、オールド・ス テージ・ロード 4169番地 (72)発明者 オマー・マーモウド・ラヒム アメリカ合衆国12401、ニューヨーク州 キングストン、ノース・マナー・アベ ニュー 202番地 (72)発明者 デービッド・エイ・ライス アメリカ合衆国12561、ニューヨーク州 ニュー・パルツ、ノース・パット・コ ーナーズ・ロード 144番地 (72)発明者 エドワード・マーク・ルディック アメリカ合衆国12498、ニューヨーク州 ウッドストック、ヴァン・デイル・ロ ード 66番地 (56)参考文献 特開 昭64−1073(JP,A) 特開 平2−253478(JP,A) 特開 平3−206576(JP,A)

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】複数の処理ノ−ドで処理されたグラフィッ
    クス・デ−タ・ストリ−ムを表示するグラフィックス表
    示装置を備えたデ−タ処理システムにおけるグラフィッ
    クス・デ−タ・ストリ−ムの処理方法であって、 グラフィックス・デ−タ・ストリ−ムを、少なくとも1
    個の作業要素を包含する処理のための作業グル−プに対
    応する複数のデ−タ・セグメントに、区分するステップ
    と、 各作業グル−プ毎に属性プリミティブに該当する作業要
    素をサ−チし、グラフィックス属性の処理を実行するス
    テップと、 処理済のグラフィックス属性情報を各作業グル−プ毎に
    メモリにコピ−し、かつこの属性情報を、属性の各処理
    毎に、累積または更新するステップと、 各デ−タ・セグメントに、メモリ中のグラフィックス属
    性のコピ−を指示するポインタを付加して複数の処理ノ
    −ドへ分配するステップと、 各処理ノ−ドにおいて前記ポインタにより指示されたメ
    モリを参照しながら受信デ−タ・セグメントを処理し、
    処理済デ−タ・セグメントを再組立てるステップと、 より成るグラフィックス・デ−タ・ストリ−ムの処理方
    法。
  2. 【請求項2】複数の処理ノ−ドで処理されたグラフィッ
    クス・デ−タ・ストリ−ムを表示するグラフィックス表
    示装置を備えたデ−タ処理システムにおけるグラフィッ
    クス・デ−タ・ストリ−ムの処理方法であって、 グラフィックス・デ−タ・ストリ−ムを、少なくとも1
    個の作業要素を包含する処理のための作業グル−プに対
    応する複数のデ−タ・セグメントに、区分するステップ
    と、 各作業グル−プ毎に属性プリミティブに該当する作業要
    素をサ−チし、グラフィックス属性の処理を実行するス
    テップと、 処理済のグラフィックス属性情報を各作業グル−プ毎に
    メモリにコピ−し、かつこの属性情報を、属性の各処理
    毎に、累積または更新するステップと、 各デ−タ・セグメントに、デ−タ・セグメント相互間の
    時間的順序を示す同期化用タグを付加して空き状態の処
    理ノ−ドへ分配するステップと、 各処理ノ−ドにおいて受信デ−タ・セグメントを処理し
    て処理済デ−タ・セグメントを生成するステップと、 複数の処理済みデ−タ・セグメントを前記同期化用タグ
    の制御の下に再組立てるステップとより成るグラフィッ
    クス・デ−タ・ストリ−ムの処理方法。
  3. 【請求項3】グラフィックス・デ−タ・ストリ−ムが異
    なるグラフィックス・デ−タ・フォ−マットを含んでい
    る多重化されたグラフィックス・デ−タ・ストリ−ムで
    あることを特徴とする請求項1又は2に記載の方法。
  4. 【請求項4】グラフィックス・デ−タ・ストリ−ムを処
    理のための複数の作業グル−プに区分し、かつ、これら
    の各作業グル−プを複数の処理ノ−ドに向けて分配する
    ための制御手段と、該制御手段に結合され、複数の各処
    理ノ−ドにおいて前記各作業グル−プを処理して複数の
    処理済作業グル−プを生成する処理手段と、該処理ノ−
    ドに結合され、複数の前記処理済作業グル−プを再組立
    てて処理済グラフィックス・デ−タ・ストリ−ムを生成
    する再組立て手段とを含むグラフィックス・デ−タ・ス
    トリ−ムを効率的に処理するためのグラフィックス処理
    システムにおいて、 前記各処理ノ−ドに結合され、グラフィックス属性デ−
    タを記憶するためのメモリと、 前記制御手段に結合され、グラフィックス・デ−タ・ス
    トリ−ムから前記メモリへ属性デ−タを各作業グル−プ
    毎にコピ−する手段と、 前記処理手段に結合され、前記各処理ノ−ドにおける1
    つの作業グル−プに対する処理を、先行する作業グル−
    プに関して前記メモリ内に記憶されているグラフィック
    ス属性デ−タを参照しながら、実行する手段と、 より成るグラフィックス処理システム。
  5. 【請求項5】制御手段及び処理手段が共用メモリ領域を
    介して互に結合されていることを特徴とする請求項4に
    記載のグラフィックス処理システム。
  6. 【請求項6】制御手段が、ある作業グル−プをある処理
    ノ−ドへ分配する前にその作業グル−プに同期化用タグ
    を付加する手段を更に含んでおり、 前記同期化用タグは、処理手段による処理の後に前記複
    数の作業グル−プを再組立するに際しての、ある作業グ
    ル−プの、その他の作業グル−プに対する順序を表示し
    たタグであることを特徴とする請求項4に記載のグラフ
    ィックス処理システム。
  7. 【請求項7】制御手段が複数の各作業グル−プを複数の
    処理ノ−ドのうちの空き状態の処理ノ−ドへ分配するこ
    とを特徴とする請求項6に記載のグラフィックス処理シ
    ステム。
  8. 【請求項8】複数の各処理ノ−ドが直列接続した複数の
    プロセッサを含むことを特徴とする請求項4に記載のグ
    ラフィックス処理システム。
JP5166914A 1992-08-07 1993-07-06 増減自在な複数の処理ノードを用いてグラフィックス・データ・ストリームを処理する方法及びシステム Expired - Fee Related JP2552078B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US926724 1992-08-07
US07/926,724 US5315701A (en) 1992-08-07 1992-08-07 Method and system for processing graphics data streams utilizing scalable processing nodes

Publications (2)

Publication Number Publication Date
JPH06195309A JPH06195309A (ja) 1994-07-15
JP2552078B2 true JP2552078B2 (ja) 1996-11-06

Family

ID=25453613

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5166914A Expired - Fee Related JP2552078B2 (ja) 1992-08-07 1993-07-06 増減自在な複数の処理ノードを用いてグラフィックス・データ・ストリームを処理する方法及びシステム

Country Status (3)

Country Link
US (1) US5315701A (ja)
EP (1) EP0584982A3 (ja)
JP (1) JP2552078B2 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5371839A (en) 1987-02-27 1994-12-06 Hitachi, Ltd. Rendering processor
US5394524A (en) * 1992-08-07 1995-02-28 International Business Machines Corporation Method and apparatus for processing two graphics data streams in parallel
US6073158A (en) * 1993-07-29 2000-06-06 Cirrus Logic, Inc. System and method for processing multiple received signal sources
US5596416A (en) * 1994-01-13 1997-01-21 T/R Systems Multiple printer module electrophotographic printing device
US5680548A (en) * 1994-12-02 1997-10-21 Xcellenet, Inc. Systems and methods for work assignment and distribution from a server to remote/mobile nodes
US6977752B1 (en) * 1995-08-07 2005-12-20 Electronics For Imaging, Inc. Method and apparatus for determining toner level in electrophotographic print engines
US7046391B1 (en) 1995-08-07 2006-05-16 Electronics For Imaging, Inc. Method and apparatus for providing a color-balanced multiple print engine
US6657741B1 (en) * 1995-08-07 2003-12-02 Tr Systems, Inc. Multiple print engine system with selectively distributed ripped pages
US7027187B1 (en) 1995-08-07 2006-04-11 Electronics For Imaging, Inc. Real time calibration of a marking engine in a print system
US6035103A (en) 1995-08-07 2000-03-07 T/R Systems Color correction for multiple print engine system with half tone and bi-level printing
US6643765B1 (en) 1995-08-16 2003-11-04 Microunity Systems Engineering, Inc. Programmable processor with group floating point operations
US5765166A (en) * 1996-04-23 1998-06-09 Raytheon Company Use of symmetric multiprocessors for multiple hypothesis tracking
DE19625869C2 (de) * 1996-06-27 2001-01-04 Fraunhofer Ges Forschung Verfahren zum parallelen Zusammenfassen von N Datensätzen
US6067610A (en) * 1996-07-29 2000-05-23 Motorola, Inc. Method and data processor for synchronizing multiple masters using multi-bit synchronization indicators
US6850335B1 (en) 1996-08-16 2005-02-01 Electronics For Imaging, Inc. Method and apparatus for distributing pages to individual print engines in a multiple print engine
US5930466A (en) * 1997-03-11 1999-07-27 Lexmark International Inc Method and apparatus for data compression of bitmaps using rows and columns of bit-mapped printer data divided into vertical slices
US6707563B1 (en) 1999-01-11 2004-03-16 T/R Systems Multiple print engine with error handling capability
US20030191859A1 (en) * 2002-04-05 2003-10-09 Ramsey Paul R. Fast remote display of images using compressed XPutImage
US7525548B2 (en) * 2005-11-04 2009-04-28 Nvidia Corporation Video processing with multiple graphical processing units
US7768517B2 (en) 2006-02-21 2010-08-03 Nvidia Corporation Asymmetric multi-GPU processing
US8307366B2 (en) * 2006-03-30 2012-11-06 Apple Inc. Post-processing phase in a distributed processing system using assignment information
US8768895B2 (en) * 2007-04-11 2014-07-01 Emc Corporation Subsegmenting for efficient storage, resemblance determination, and transmission
US9552206B2 (en) * 2010-11-18 2017-01-24 Texas Instruments Incorporated Integrated circuit with control node circuitry and processing circuitry
JP2014222473A (ja) * 2013-05-14 2014-11-27 日本電気株式会社 データ処理装置、データ処理方法、データ処理制御装置、プログラムおよび記録媒体

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4967343A (en) * 1983-05-18 1990-10-30 International Business Machines Corp. Pipelined parallel vector processor including parallel configured element processors for processing vector elements in parallel fashion
US4888682A (en) * 1983-09-09 1989-12-19 International Business Machines Corp. Parallel vector processor using multiple dedicated processors and vector registers divided into smaller registers
US4850027A (en) * 1985-07-26 1989-07-18 International Business Machines Corporation Configurable parallel pipeline image processing system
JPS62137669A (ja) * 1985-12-10 1987-06-20 Fujitsu Ltd 画像処理装置
JPH0821087B2 (ja) * 1986-09-30 1996-03-04 日本電信電話株式会社 3次元陰影画像生成処理方法
US4811214A (en) * 1986-11-14 1989-03-07 Princeton University Multinode reconfigurable pipeline computer
JPS63157276A (ja) * 1986-12-20 1988-06-30 Fujitsu Ltd デ−タ処理装置
JP2506782B2 (ja) * 1987-06-24 1996-06-12 松下電器産業株式会社 画像デ―タ並列処理装置
EP0303361A3 (en) * 1987-07-24 1990-02-07 AT&T Corp. High resolution graphics machine architecture
US4866637A (en) * 1987-10-30 1989-09-12 International Business Machines Corporation Pipelined lighting model processing system for a graphics workstation's shading function
US4876644A (en) * 1987-10-30 1989-10-24 International Business Machines Corp. Parallel pipelined processor
US5077736A (en) * 1988-06-28 1991-12-31 Storage Technology Corporation Disk drive memory
JPH02266458A (ja) * 1989-04-06 1990-10-31 Nec Corp ニューラルネットワークシミュレーション装置
JPH04219859A (ja) * 1990-03-12 1992-08-10 Hewlett Packard Co <Hp> 並列プロセッサに直列命令ストリームデータを分散するハードウェアディストリビュータ
EP0450658B1 (en) * 1990-04-06 2001-08-01 Nec Corporation Parallel pipelined instruction processing system for very long instruction word
US5179637A (en) * 1991-12-02 1993-01-12 Eastman Kodak Company Method and apparatus for distributing print jobs among a network of image processors and print engines

Also Published As

Publication number Publication date
EP0584982A3 (en) 1994-05-25
EP0584982A2 (en) 1994-03-02
JPH06195309A (ja) 1994-07-15
US5315701A (en) 1994-05-24

Similar Documents

Publication Publication Date Title
JP2552078B2 (ja) 増減自在な複数の処理ノードを用いてグラフィックス・データ・ストリームを処理する方法及びシステム
JP2705003B2 (ja) 2つのグラフィック・データ・ストリームを同時に処理する装置および方法
JP3431149B2 (ja) 仮想fifoによる周辺装置インタフェースのシステム並びに方法
EP1147489B1 (en) Method and apparatus for synchronizing graphics pipelines
US20070273700A1 (en) Method, system and computer program product for efficiently utilizing limited resources in a graphics device
US6046752A (en) Peer-to-peer parallel processing graphics accelerator
EP1461773B1 (en) Automatic memory management for zone rendering
US5818469A (en) Graphics interface processing methodology in symmetric multiprocessing or distributed network environments
JPH04219859A (ja) 並列プロセッサに直列命令ストリームデータを分散するハードウェアディストリビュータ
JPH0370034A (ja) 順次プログラムの並列実行のためのコンピュータ・システム及び方法並びにデータ値割当方法
GB2211706A (en) Local display bus architecture and communications method for raster display
CN113312283A (zh) 一种基于fpga加速的异构图学习系统
JP2002543489A (ja) グラフィックスエンジンマスターモード動作の改良
US6141023A (en) Efficient display flip
JP3213244B2 (ja) データ圧縮方法およびデータ処理システム
US6771271B2 (en) Apparatus and method of processing image data
US6831660B1 (en) Method and apparatus for graphics window clipping management in a data processing system
US6025855A (en) Store double word and status word write graphics primitives
JP3094712B2 (ja) ページ記述言語処理装置
Ikedo A scalable high-performance graphics processor: GVIP
US6972770B1 (en) Method and apparatus for performing raster operations in a data processing system
Segal Hardware sorting chip steps up software pace
JP2000293151A (ja) グラフィックス表示装置及びディスプレイリストによるグラフィックス表示方法
Bell et al. Application of a multipurpose simulation design
JPH09319856A (ja) ストラクチャデータ編集方式

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees