JP3090605B2 - マルチプロセッサ装置 - Google Patents

マルチプロセッサ装置

Info

Publication number
JP3090605B2
JP3090605B2 JP07339048A JP33904895A JP3090605B2 JP 3090605 B2 JP3090605 B2 JP 3090605B2 JP 07339048 A JP07339048 A JP 07339048A JP 33904895 A JP33904895 A JP 33904895A JP 3090605 B2 JP3090605 B2 JP 3090605B2
Authority
JP
Japan
Prior art keywords
data
pointer
fifo
data set
processor
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
JP07339048A
Other languages
English (en)
Other versions
JPH09185593A (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
Priority to JP07339048A priority Critical patent/JP3090605B2/ja
Priority to US08/729,736 priority patent/US5724602A/en
Publication of JPH09185593A publication Critical patent/JPH09185593A/ja
Application granted granted Critical
Publication of JP3090605B2 publication Critical patent/JP3090605B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8015One dimensional arrays, e.g. rings, linear arrays, buses

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、逐次送られてくる
データを複数の並列プロセッサに分散させて並列的に処
理するマルチプロセッサ装置に係り、特に、ディスプレ
イ上でコンピュータ・グラフィックス画像を生成し表示
するためのグラフィック処理に利用可能なマルチプロセ
ッサ装置に関する。更に詳しくは、本発明は、3次元オ
ブジェクトの表面に模様(例えば大理石、木の皮、アル
ミニウムなど)を貼り付けるテクスチャ・マッピング
(Texture Mapping)に利用可能なマル
チプロセッサ装置に関する。
【0002】
【従来の技術】昨今の技術革新に伴い、コンピュータの
利用分野も拡大してきた。コンピュータによる図形や画
像(いわゆる「コンピュータ・グラフィックス」)の作
成や処理はその一例である。最近では、コンピュータの
表示能力の強化やグラフィックス処理の高機能化に伴っ
て、3次元オブジェクトの2次元的イメージを生成し表
示するという、いわゆる「3次元グラフィックス」が脚
光を浴びるようになってきた。ここでいう3次元グラフ
ィックスとは、3次元オブジェクトが光源によって照ら
されたときなどの光学現象を数式モデルで表現し、該モ
デルに基づいてオブジェクト表面に陰影(シェーディン
グ:Shading)若しくは濃淡を付けた画像を生成
することによって、3次元的なイメージとして画面表示
する、というものである。このような3次元グラフィッ
クス技術は、科学、工学、製造その他の応用分野でのC
AD/CAMや、各種ソフトウェア開発分野などにおい
て、ますます盛んになってきている。
【0003】3次元グラフィックス処理は、一般には、
『モデリング』、『レンダリング』という2つの工程を
含んでいる。ここで、モデリングとは、スクリーン上で
表現したい3次元オブジェクト(例えば飛行機やビル、
猫など)の形、色、表面の性質などのデータをコンピュ
ータに入力・編集する作業をいう。
【0004】モデリングは、オブジェクトに関するデー
タを、後続のレンダリングで利用可能な形式でコンピュ
ータ内に取り込むための作業のことである。モデリング
には、CSG(Constructive Solid Geomemory)、ポリ
ゴン、ベジェ、メタボールなど各種方法が挙げられる。
【0005】また、レンダリングとは、オブジェクトを
ある位置から眺めたときにどのように見えるかを考察し
て、その見え方に従って画像を生成することをいう。よ
り具体的には、モデラーで作成した3次元データ(例え
ばオブジェクトに対する光源の位置、ハイライト、陰
影、色)を元にして、3次元オブジェクト表面の色付け
とシェーディングを行う作業をいう。レンダリングは、
更に『座標変換』、『隠面消去』、『シェーディン
グ』、『リアルさを出すための工夫』の各作業に細分化
される。『座標変換』は、モデルを定義する各座標値
を、視点の位置から見たときのスクリーン上の座標値に
変換することをいう。『隠面消去』とは、モデルの中で
現在の視点から見える部分及び隠れる部分を判断するこ
とをいう。その代表例はZバッファ法である。『シェー
ディング』とは、照明を考慮に入れて、オブジェクトの
各部分がどのような色、明るさで見えるかを判断して、
その色をスクリーン上の該当するピクセルに塗る処理の
ことである。『リアルさを出すための工夫』は、通常、
レンダリング処理の後に実行される。該工夫を行うの
は、1:レンダリングまでに至る各グラフィックス処理
工程は、オブジェクトの表面は理想的な平面あるいは数
式によって表現できる完全に滑らかな曲面である、ある
いは表面の色が面ごとに一定である、という仮定に基づ
いてること、及び、2:座標変換→隠面消去→シェーデ
ィングにより得られた画像は実在のオブジェクトとは程
遠い無機質なものである、という理由のためである。
『リアルさを出すための工夫』の例として、マッピン
グ、すなわち、物体の表面や平面に予め作成してある模
様のデータを貼り付ける作業が挙げられる。
【0006】マッピングは、オブジェクトの材質特性を
如実に表現する上で重要である。その一例は、テクスチ
ャ・マッピングである。ここで、テクスチャ(Text
ure)とは、物の表面の素材感(若しくは表面の柄、
模様)を表す厚みのないパターンやイメージのことをい
う。テクスチャ・マッピングとは、各素材(例えば大理
石、木の皮、アルミニウムなど)のテクスチャを予めビ
ットマップとして用意しておき、レンダリングが終了し
た直後の比較的滑らかな平面又は曲面状のオブジェクト
の表面に貼り付けることによってなされる。テクスチャ
・マッピングによれば、単調な表面で構成されたオブジ
ェクトを複雑な表面を持つリアルなものに見せかけるこ
とができる。例えば、フライト・シミュレータでは、予
め撮影しておいた景色の写真イメージを背景部分にテク
スチャ・マッピングすることで、仮想現実的な映像を高
速に生成することができる。あるいは単純な直方体モデ
ルを金属や石材のように見せることも可能である。
【0007】このテクスチャ・マッピングは、大量のデ
ータ・アクセス及び大量の演算処理を必要とする。これ
は、テクスチャ・データ(すなわち、貼り付けるべきパ
ターンや背景などのイメージを表す2次元配列データ)
が厖大であることにも依拠する。したがって、テクスチ
ャ・マッピングを実時間処理を行うには、単体処理では
限界があり、複数のパイプラインを設けることによって
並列処理化を図ることが必須の状況となっている。テク
スチャ・マッピングの並列処理は、例えばスクリーンを
複数の領域に細分化して、各領域の処理を各並列プロセ
ッサに分散させることによってなされる。
【0008】図5には、マルチプロセッサ・システム1
00のハードウェア構成を概略的に示している。同図に
おいて、マルチプロセッサ・システム100は、ディス
パッチ・プロセッサ10と、複数(図5では4個)の並
列プロセッサ30−1,30−2…と、各並列プロセッ
サ30−1…ごとに設けられた先入れ先出しバッファ
(FIFO)20−1,20−2…と、マージ・プロセ
ッサ40とで構成される。ディスパッチ・プロセッサ1
0は、順次入力したデータ・セット(本明細書中では、
分配されるデータの一単位を「データ・セット」とい
う。以下同様)をデータの属性等に従って各並列プロセ
ッサ30−1…に分配するための演算ユニットである。
各FIFO20−1…は、並列プロセッサ30−1…の
手前に配置され、分配されたデータ・セットを一時格納
するとともに、前回のデータ処理を終えた並列プロセッ
サ30−1…に対して次のデータ・セットを逐次送り出
すようになっている。また、マージ・プロセッサ40
は、ディスパッチ・プロセッサ10で分散され、且つ各
並列プロセッサ30−1…で並列処理されたデータ・セ
ットを再び統合して出力するための演算ユニットであ
る。
【0009】マルチプロセッサ・システムにおいては、
各並列プロセッサに課される負荷(すなわち単位時間当
りの処理データ量)が均等化されていることが望まし
い。何故ならば、負荷が均等に分配されていれば、効率
的な並列処理がなされ、理論上、システム全体の性能は
パイプライン(すなわち並列プロセッサ)の個数に比例
して向上することになるからである。例えば図5で示す
システムでは、並列プロセッサの総体的な処理速度がシ
ステム100へのデータ入力速度と釣り合っていること
がバランスのよい設計ということになる。別言すれば、
負荷にばらつきがあれば、分散処理の恩恵を享受するこ
とはできないとも言えよう。
【0010】図5に示すようなマルチプロセッサ・シス
テム100では、ある瞬間をとってみれば、各並列プロ
セッサ30−1…に分配されたデータ(負荷)の偏り
は、比較的頻繁に発生する。例えば図6(a),(b),(c)
の各々の場合のように、各プロセッサに対して不均等に
データ・セットが分配されたときなどである。また、長
い時間間隔で平均してみれば各並列プロセッサ30−1
…の負荷は均等になっている場合であっても、データ・
セットの並んだ順番によっては、ある瞬間では負荷にば
らつきが生ずることは往々にしてある。不均等に分配さ
れたデータ・セットが蓄積した結果、ある1つのパイプ
ラインでのみFIFOが処理待ちデータ・セットで溢れ
てしまう、という事態も発生し得る。当然、ディスパッ
チ・プロセッサは満杯のFIFOに対して次のデータ・
セットを分配することはできない。この結果、一部のパ
イプラインのみがビジーなためにシステム全体のデータ
流通を止めてしまうことになる。すなわち、分散処理の
恩恵を享受できなくなってしまうのである。
【0011】もし、長い時間間隔では負荷の均等分配が
担保されているのであれば、各FIFOバッファの段数
を無限大(又は無限大と仮定できるほど充分大きい)に
設計することによって、一時的な負荷のばらつきを補償
することができよう。例えば図6(a)に示す負荷のばら
つきを吸収するためには最低3段のFIFOを用意する
必要があり、同様に図6(b)及び(c)に示す負荷のばらつ
きを吸収するためにはそれぞれ最低5段、8段のFIF
Oを用意する必要がある。FIFOの段数増大は、偏っ
て分配されたデータを解消するための容易な方法と言え
よう。
【0012】ところが、一部の並列プロセッサに処理が
集中しそのFIFOが溢れているときであっても、その
他の並列プロセッサのFIFOも全て溢れている訳では
ない。したがって、FIFOの巨大化という安直な手法
によれば、自ずと未使用あるいは余剰のFIFOを増や
すことになる。例えば8段のFIFOを設けたマルチプ
ロセッサ・システムに図6(c)に示すような分布でデー
タ・セットが分配された場合、使用段数が14個に対し
て未使用段数が18個になってしまう。巨大な段数を持
つFIFOは、常に使用されることは予定されておら
ず、データ・セットの分配が偏ったときのための予備的
又は余剰的な性格が強い。使用効率の低い記憶素子の実
装は、回路設計・製作上の無駄とも言えよう。
【0013】また、FIFOの段数増大により、回路の
ゲート・サイズを著しく増大させてしまうことになる。
何故ならば、FIFOのサイズは、データのビット幅、
段数(すなわちデータの偏り)、及びパイプライン数の
積(=ビット幅(W)×段数(D)×パイプライン数
(N))に比例するからである。テクスチャ・マッピン
グのためのLSIは、例えばASIC技術を用いて実装
される。巨大な段数(すなわちビット数)のFIFO
は、実装面積を占有するため、回路設計上の大きな足枷
となる。当然、製造コストを増大させてしまうことにも
なる。
【0014】つまり、FIFOの段数増加(若しくはデ
ータ・バッファの肥大化)という安直な解決手法によれ
ば、システム全体のスループット向上に寄与する反面、
設計上の不利益も招来する、というトレード・オフを負
っている訳なのである。
【0015】
【発明が解決しようとする課題】本発明の目的は、逐次
入力したデータを複数のプロセッサに分散させて並列的
に処理するタイプの、優れたマルチプロセッサ装置を提
供することにある。
【0016】本発明の更なる目的は、各並列プロセッサ
に分配された負荷が一時的にばらついていても、処理能
力が低下することのない、優れたマルチプロセッサ装置
を提供することにある。
【0017】本発明の更なる目的は、各並列プロセッサ
のFIFOの段数(若しくはデータ・バッファのサイ
ズ)を徒に増大させることなく、負荷のばらつきを吸収
することができるマルチプロセッサ装置を提供すること
にある。
【0018】
【課題を解決するための手段及び作用】本発明は、上記
課題を参酌してなされたものであり、逐次入力するデー
タ・セットを複数のパイプラインに分散させて処理する
タイプのマルチプロセッサ装置において、(a) 受け取っ
たデータ・セットの処理を各パイプラインに分配するた
めのディスパッチ・プロセッサと、(b) 各パイプライン
ごとに置かれ、自己に分配されたデータ・セットの処理
を行うための、複数の並列プロセッサと、(c) 前記ディ
スパッチ・プロセッサが逐次配出する1以上のデータ・
セットを一時格納するためのデータ・バッファと、(d)
各パイプラインごとに並列プロセッサの前に置かれ、並
列プロセッサに分配されたデータ・セットの前記データ
・バッファ中における格納場所を一時格納するための、
複数のポインタ・バッファと、(e)前記データ・バッフ
ァへのデータ・セットの格納場所を決定するとともに、
決定された格納場所を該当するパイプラインのポインタ
・バッファに書き込むためのプライオリティ・エンコー
ダと、(f) 各パイプラインごとに並列プロセッサとポイ
ンタ・バッファとの間に置かれ、ポインタ・バッファの
出力を元に、前記データ・バッファ中の格納場所からデ
ータ・セットを読み出して並列プロセッサに渡すため
の、複数のマルチプレクサと、(g) 各並列プロセッサが
処理したデータ・セットを統合するためのマージ・プロ
セッサと、を具備することを特徴とするマルチプロセッ
サ装置である。
【0019】しかして、本発明に係るマルチプロセッサ
装置では、データ・セットを入出力するためのバッファ
(データFIFO)を各パイプラインごとに個別に持た
ずに、全パイプラインで共有化させている。また、各パ
イプラインは、データFIFOの代わりに、共有化され
たデータFIFO中のデータ・セットの格納場所を入出
力するためのポインタ・バッファ(ポインタFIFO)
を持つようにしている。並列プロセッサがデータ処理を
行うときには、まず自己のポインタFIFOから格納場
所を引き出し、次いでデータFIFO中の該当する格納
場所からデータ・セットを読み出すようにしている。各
パイプラインに設けられるポインタFIFOは、データ
FIFOの格納場所を識別できる程度のビット幅でよ
く、データ・セット自体を格納する場合に比し小さくて
済む。また、データFIFOは、全パイプラインで共有
化することによって1個に集約される。したがって、本
発明によれば、データ・バッファのサイズを徒に肥大化
させることなく、負荷のばらつきを吸収することができ
る訳である。
【0020】また、本発明に係るマルチプロセッサ装置
は、共有化によって使用効率の低いFIFOを省略する
ことができるので、当然、設計・製作は安価で済むこと
になる。別の見方をすれば、本発明に係るマルチプロセ
ッサ装置は、同じゲート・サイズでより高速な性能を持
っていることになる。
【0021】本発明のさらに他の目的、特徴や利点は、
後述する本発明の実施例や添付する図面に基づくより詳
細な説明によって明らかになるであろう。
【0022】
【発明の実施の形態】以下、図面を参照しながら本発明
の実施例を詳解する。
【0023】A.システム構成 図1には、本発明の実施に供されるマルチプロセッサ・
システム100のハードウェア構成を示している。但
し、図5と同一の構成要素については同一の参照番号を
付している。
【0024】図1に示すように、マルチプロセッサ・シ
ステム100は、ディスパッチ・プロセッサ10と、複
数の並列プロセッサ30と、各並列プロセッサごとに設
けられたポインタFIFO20及びマルチプレクサ21
と、データFIFO22と、イネーブル・ビット23
と、プライオリティ・エンコーダ24とで構成される。
同図では、4つのパイプラインを備えることとしてお
り、各並列プロセッサにそれぞれ参照番号30−1,3
0−2,30−3,30−4を付し、各ポインタFIF
Oにそれぞれ参照番号20−1,20−2,20−3,
20−4を付し、各マルチプレクサにそれぞれ参照番号
21−1,21−2,21−3,21−4を付してい
る。但し、パイプライン数自体は、設計事項に過ぎな
い。システム100中の各ハードウェア・ブロック1
0,20,…は、例えばASIC技術を用いることによ
り、各部を連絡する各バス(後述)とともに、単一の回
路チップ上に実装される。
【0025】ディスパッチ・プロセッサ10は、逐次入
力されたデータ・セットの処理を、その属性等に応じ
て、各並列プロセッサ30−1,30−2,…に分配す
るための演算ユニットである。ディスパッチ・プロセッ
サ10の入力側は外部バスによって該マルチプロセッサ
・システム100外の装置(例えばグラフィック・ワー
クステーション:図示しない)と接続されており、外部
装置からデータ・セットを逐次受け取れるようになって
いる。また、ディスパッチ・プロセッサ10の出力側
は、は、セレクト・バス25とデータ・バス26を配出
している。セレクト・バス25は、逐次出力するデータ
・セットの分配先となるパイプラインを指定する「セレ
クト情報」を伝送するためのものであり、各パイプライ
ンのポインタFIFO20−1,20−2,…に向かっ
ている。セレクト・バス25は、パイプラインを識別で
きる程度のビット幅でよい。本実施例では、パイプライ
ン数が4個であることに従い、セレクト・バス25を2
ビット幅にしている。また、データ・バス26は、分配
されるデータの実体を伝送するためのものであり、デー
タFIFO24に向かっている。データ・バス26のビ
ット幅は、例えば32ビットである。本実施例のディス
パッチ・プロセッサ10は、データ・セット自体を各パ
イプラインのFIFO20−1,20−2,…に直接分
配している訳ではない、という点に留意されたい(後
述)。
【0026】データFIFO22は、ディスパッチ・プ
ロセッサ10から逐次配出されるデータの実体を一時保
持するためのバッファである。データFIFO22中の
各フィールドは、プライオリティ・エンコーダ24から
の指示に応じて入力許可状態になる(後述)。データF
IFO22は、特定のパイプラインに専属のものではな
く、全パイプラインで共有される性格を持つ点に留意さ
れたい。なお、本実施例のデータFIFO22は、では
データ・セットを16個まで保持できる16段のシフト
型構成である(但し、段数は設計事項であり、また、シ
フト型FIFOでなくリング型FIFOであってもよ
い)。また、FIFO22の各段は、データ・バス26
のビット幅に従い32ビット構成である。データFIF
O22には、イネーブル・ビット23が付設されてい
る。
【0027】イネーブル・ビット23は、データFIF
O22の各段に有効な(すなわちこれから処理する予定
の)データが格納されているか否かを示すためのビット
・フラグである。データFIFO22の各フィールドに
データ・セットが書き込まれる度に、イネーブル・ビッ
ト23中の対応ビット・フラグが設定され、また、デー
タ・セットが読み出されると、対応ビット・フラグは解
除される。
【0028】プライオリティ・エンコーダ24は、デー
タFIFO22及びイネーブル・ビット23を制御下に
置くことにより、ディスパッチ・プロセッサ10から逐
次出力されるデータ・セットの格納及び各パイプライン
への格納場所(ポインタ)の分配を実行するようになっ
ている。プライオリティ・エンコーダ24の主な機能は
以下の通りである。すなわち、 (1)イネーブル・ビット23を参照(エンコード)す
ることによって、データFIFO22中の空きフィール
ドを見つけ出す。 (2)空きフィールドのうちの1つを、次に受け取った
データ・セットの格納場所として選ぶ。 (3)ポインタ・バス27を介して、各ポインタFIF
O30−1,20−2,…及びデータFIFO22に対
して、選ばれた格納場所の位置(ポインタ)を伝達す
る。 一方、データFIFO22は、ポインタ・バス27を介
して指定されたフィールドが入力許可状態になる。そし
て、データ・バス26を介してデータ・セットを受け取
ると、指定されたフィールドに格納する。また、新しい
データ・セットの書き込みに伴い、イネーブル・ビット
23中の該当するビット・フラグが設定され、該フィー
ルドの内容が有効化される。また、指定されたパイプラ
インに係るポインタFIFOは、ポインタ・バス27を
介して受け取ったポインタを最後段に格納する。なお、
ポインタ・バス27は、データFIFO22中の位置を
識別できる程度のビット幅でよい。本実施例では、デー
タFIFO22が16段構成であることに従い、ポイン
タ・バス27を4ビット幅にしている。
【0029】4個のパイプラインは、それぞれ、ポイン
タFIFO20−iと、マルチプレクサ21−iと、並
列プロセッサ30−iとで構成される(但し、iは1〜
4の整数)。
【0030】ポインタFIFO20−iは、データFI
FO22中のデータ・セットの格納場所(ポインタ)を
順次格納するための先入れ先出しバッファであり、ポイ
ンタ・バス27を介してプライオリティ・エンコーダ2
4から格納場所(ポインタ)の内容を受け取るようにな
っている。また、各ポインタFIFO20−iは、セレ
クト・バス25からの「セレクト情報」に応じて入力許
可状態となるようになっている。ポインタFIFO20
−iのビット幅は、ポインタ・バス27に従い、4ビッ
ト幅となっている。また、ポインタFIFO20−iの
段数は、負荷の一時的なばらつきを吸収できる程度の段
数であればよく、本実施例では8段構成にしている。ま
た、本実施例では、FIFO20−iを、シフト型構成
(すなわち格納データを順次先頭に向かって送り出すタ
イプ)にしているが、リング型構成であってもよい。但
し、1:各パイプラインに設けられたFIFO20−
1,20−2,…は、処理対象となるデータ・セット自
体ではなく、データ・セットの格納場所(ポインタ)を
格納している点、及び<2:データ入力用のFIFO2
2を全てのパイプラインで共有化している点には充分留
意されたい。
【0031】マルチプレクサ21−iは、ポインタFI
FO20−iの先頭から出力されたポインタを受け取る
と、データFIFO22中の該当するフィールドからデ
ータ・セットを読み出し、並列プロセッサ30−iに渡
す。また、データ・セットの読み出しに伴い、イネーブ
ル・ビット23中の該当するビット・フラグは解除さ
れ、該フィールドの内容は無効化される。
【0032】並列プロセッサ30−iは、マルチプレク
サ21−iから受け取ったデータ・セットに所定の処理
を施した後、マージ・プロセッサ40に出力する。マー
ジ・プロセッサ40は、各パイプラインから出力された
各データ・セットを再び統合化して、システム100外
の装置(例えばグラフィック・ワークステーション:図
示しない)に渡す。並列プロセッサ30−i及びマージ
・プロセッサ40における処理自体は本発明の要旨に関
連しないため、本明細書ではこれ以上言及しない。
【0033】なお、本マルチプロセッサ・システム10
0は、例えば3次元グラフィックス処理におけるテクス
チャ・マッピングのために利用される。このような場
合、本システム100は3次元処理用のグラフィック・
アダプタの一部を構成し、また、グラフィック・アダプ
タ自体はグラフィック・ワークステーションにバス接続
されている。
【0034】B.システム・オペレーション 前項では、本発明を具現するマルチプロセッサ・システ
ム100のハードウェアを説明してきた。本項では、図
2乃至図4を参照しながら、該システム100の動作に
ついて説明することにする。
【0035】B−1.データ・ライト・オペレーション まず、ディスパッチ・プロセッサ10が出力したデータ
・セットをデータFIFO22に書き込むためのオペレ
ーションについて説明する。
【0036】図2には、マルチプロセッサ・システム1
00内でディスパッチ・プロセッサ10がデータ・セッ
トを分配する様子を示している。
【0037】例えば、ある時点でディスパッチ・プロセ
ッサ10が並列プロセッサB(参照番号30−2)に分
配すべきデータ・セットを出力するとする。このとき、
ディスパッチ・プロセッサ10は、セレクト・バス25
にセレクト情報を伝送して、ポインタFIFO20−2
へのデータ入力のみを許可するとともに、データ・バス
26上にデータ・セットを伝送する。
【0038】一方、プライオリティ・エンコーダ24
は、イネーブル・ビット23を参照(エンコード)し
て、データFIFO22中の空きフィールドを検索す
る。図2では、3段目のビット・フラグが解除状態であ
るから、プライオリティ・エンコーダ24は、データF
IFO22中の3段目のフィールドを格納場所(ポイン
タ)として選択するとともに、ポインタ・バス27上に
その旨を伝送する。
【0039】データFIFO22では、ポインタ・バス
27を介して指定された3段目のフィールドが入力許可
状態になる。この結果、データ・バス26を介して受け
取ったデータ・セットは3段目のフィールドに格納され
る。図2中では、データFIFO22の3段目には、並
列プロセッサBに分配すべきデータ・セットの存在を意
味する文字"B"が書き込まれている。
【0040】また、入力許可状態となっているポインタ
FIFO20−2は、ポインタ・バス27から格納場所
を受け取り、その最後段にポインタ値"3"を書き込む。
【0041】B−2.データ・リード・オペレーション 次いで、各並列プロセッサ30−1,30−2,…がデ
ータ・セットをデータFIFO22から読み出すための
オペレーションについて説明する。
【0042】図3には、ある時点における各ポインタF
IFO20−1,20−2,…,及びデータFIFO2
2の格納内容を概略的に書き込んでいる。すなわち、同
図において、データFIFO22のうち、0,1,2,
4,5,6,7,8,9番目の各フィールドには、それ
ぞれB,A,B,C,D,B,A,Bに分配すべきデー
タ・セットが書き込まれている(但し、A,B,C,D
はそれぞれ並列プロセッサA(30−1),並列プロセ
ッサB(30−2),並列プロセッサC(30−3),
並列プロセッサD(30−4)を示す略称である。以下
同様)。これら以外の各フィールドは未使用(無効)で
ある。また、イネーブル・ビット23の各ビット・フラ
グは、データFIFO22中の各フィールドの使用状況
に応じて設定又は解除されている。
【0043】一方、各パイプライン上のポインタFIF
O20−1,20−2,…には、データFIFO22の
格納内容を反映したポインタ値が書き込まれている。同
図では、ポインタFIFO20−1には、出力端より1
段目及び2段目にそれぞれポインタ値1及び7が書き込
まれている。また、ポインタFIFO20−2には、出
力端より1段目、2段目、3段目及び4段目にそれぞれ
ポインタ値0、2、6、及び8が書き込まれている。ま
た、ポインタFIFO20−3には、出力端より2段目
にポインタ値4が書き込まれている。また、ポインタF
IFO20−4には、出力端より1段目にポインタ値5
が書き込まれている。
【0044】このとき、マルチプレクサ21−1は、ポ
インタFIFO20−1の出力端からポインタ値1を読
み取り、データFIFO22の1段目のフィールドから
データ・セットを引き出して、並列プロセッサAに渡
す。また、マルチプレクサ21−2は、ポインタFIF
O20−2の出力端からポインタ値0を読み取り、デー
タFIFO22の0段目のフィールドからデータ・セッ
トを引き出して、並列プロセッサBに渡す。また、ポイ
ンタFIFO20−3の出力端は空なので、マルチプレ
クサ21−3はデータFIFO22からデータ・セット
を引き出さない。また、マルチプレクサ21−4は、ポ
インタFIFO20−4の出力端からポインタ値5を読
み取り、データFIFO22の5段目のフィールドから
データ・セットを引き出して、並列プロセッサDに渡
す。また、データ・セットの引き出し動作に伴って、イ
ネーブル・ビット23中の0,1,5各段のビット・フ
ラグは解除され、データFIFO22中の該当フィール
ドの内容は無効化される。
【0045】各パイプライン上の並列プロセッサA,
B,…は、マルチプレクサ21−1,21−2,…の各
々から受け取ったデータ・セットに対して所定の処理を
施した後、マージ・プロセッサ40に出力する。そし
て、マージ・プロセッサ40は受け取った各データ・セ
ットを再び統合化して、システム100外の装置(例え
ばグラフィック・ワークステーション:図示しない)に
渡す。
【0046】図4には、図3に示した時点の次のタイミ
ングにおける各ポインタFIFO20−1,20−2,
…,及びデータFIFO22の格納内容を概略的に書き
込んでいる。すなわち、同図において、データFIFO
22のうち、2,4,6,7,8,9番目の各フィール
ドには、それぞれB,C,B,A,Bに分配すべきデー
タ・セットが書き込まれている。これら以外の各フィー
ルドは未使用(無効)である。また、イネーブル・ビッ
ト23の各ビット・フラグは、データFIFO22の各
フィールドの使用状況に応じて設定又は解除されてい
る。
【0047】一方、各パイプライン上のポインタFIF
O20−1,20−2,…は、図3に比し、各記憶内容
が出力側に向かって一段だけシフトしている。すなわ
ち、ポインタFIFO20−1には、出力端より1段目
にポインタ値7が書き込まれている。また、ポインタF
IFO20−2には、出力端より1段目、2段目、及び
3段目にそれぞれポインタ値2、6、及び8が書き込ま
れている。また、ポインタFIFO20−3には、出力
端より1段目にポインタ値4が書き込まれている。ま
た、ポインタFIFO20−4には、出力端より1段目
には有効なポインタ値は入っていない。
【0048】このとき、マルチプレクサ21−1は、ポ
インタFIFO20−1の出力端からポインタ値7を読
み取り、データFIFO22の7段目のフィールドから
データ・セットを引き出して、並列プロセッサAに渡
す。また、マルチプレクサ21−2は、ポインタFIF
O20−2の出力端からポインタ値2を読み取り、デー
タFIFO22の2段目のフィールドからデータ・セッ
トを引き出して、並列プロセッサBに渡す。また、マル
チプレクサ21−3は、ポインタFIFO20−3の出
力端からポインタ値4を読み取り、データFIFO22
の4段目のフィールドからデータ・セットを引き出し
て、並列プロセッサCに渡す。また、ポインタFIFO
20−4の出力端は空なので、マルチプレクサ21−4
はデータFIFO22からデータ・セットを引き出さな
い。また、データ・セットの引き出し動作に伴って、イ
ネーブル・ビット23中の2,4,7各段のビット・フ
ラグは解除され、データFIFO22中の該当フィール
ドの内容は無効化される。
【0049】各パイプライン上の並列プロセッサA,
B,…は、マルチプレクサ21−1,21−2,…の各
々から受け取ったデータ・セットに対して所定の処理を
施した後、マージ・プロセッサ40に出力する。そし
て、マージ・プロセッサ40は受け取った各データ・セ
ットを再び統合化して、システム100外の装置(例え
ばグラフィック・ワークステーション:図示しない)に
渡す。
【0050】C.追補 以上、特定の実施例を参照しながら、本発明について詳
解してきた。しかしながら、本発明の要旨を逸脱しない
範囲で当業者が該実施例の修正や代用を成し得ることは
自明である。本明細書では、マルチプロセッサ・システ
ムをテクスチャ・マッピングに利用するという形態で説
明しているが、応用例はこれに限定されるものではな
い。要するに、例示という形態で本発明を開示してきた
のであり、限定的に解釈されるべきではない。本発明の
要旨を判断するためには、冒頭に記載した特許請求の範
囲の欄を参酌すべきである。
【0051】
【発明の効果】以上詳記したように、本発明によれば、
各並列プロセッサに分配された負荷が一時的にばらつい
ていても、ばらつきを好適に吸収することができる、優
れたマルチプロセッサ装置を提供することができる。
【0052】本発明に係るマルチプロセッサ・システム
では、データ入力用のバッファ(FIFO)を各パイプ
ラインごとに個別に持たずに、全パイプラインで共有化
させている。したがって、本発明によれば、各並列プロ
セッサのFIFOの段数(若しくはデータ・バッファの
サイズ)を徒に増大させることなく、負荷のばらつきを
吸収することができるマルチプロセッサ装置を提供する
ことができる。
【0053】本発明によるデータ・バッファのゲート・
サイズ低減の効果は、試算することによって顕著に表す
ことができる。例えば図5に示す従来のマルチプロセッ
サ・システムにおいて、データ・セットのビット幅が3
2ビットで、各パイプラインに設けられたデータFIF
Oが8段構成であるとすれば、システム中のFIFOの
全ゲート・サイズは、32(ビット幅)×8(段数)×
4(パイプライン数)=1024ビットにも達してしま
う。これに対し、図1に示す本発明に係るマルチプロセ
ッサ・システム100の場合、各パイプラインごとのポ
インタFIFO20−1…の全ゲート・サイズは、4
(ビット幅)×8(段数)×4(パイプライン数)=1
28ビットである。また、データFIFO22のゲート
・サイズは、32(ビット幅)×16(段数)=512
(ビット)であり、イネーブル・ビット23は16ビッ
トからなる。したがって、システム100中の記憶素子
に要するゲート・サイズは128(ポインタFIFO)
+512(データFIFO)+16(イネーブル・ビッ
ト)=656ビットに過ぎない。すなわち、従来のシス
テムよりも記憶素子に要するゲート・サイズは大幅に減
少されたことになる。ゲート・サイズの激減により、設
計・製作は安価で済むことになる。
【0054】また、本発明に係るマルチプロセッサ装置
によれば、データFIFOを共有化することにより、そ
の段数を抑えることができる。この結果、使用効率の低
いFIFOを省略することができ、無駄のない回路設計
が実現する。別の見方をすれば、本発明に係るマルチプ
ロセッサ装置は、同じゲート・サイズでより高速な性能
を持っている訳である。
【図面の簡単な説明】
【図1】図1は、本発明の実施に供されるマルチプロセ
ッサ・システムのハードウェア構成を示した図である。
【図2】図2は、本実施例の動作を説明するための図で
あり、より具体的には、マルチプロセッサ・システム1
00内でディスパッチ・プロセッサ10がデータ・セッ
トを分配する様子を示した図である。
【図3】図3は、本実施例の動作を説明するための図で
あり、より具体的には、ある時点における各ポインタF
IFO20−1,20−2,…,及びデータFIFO2
2の格納内容を概略的に書き込んだ図である。
【図4】図4は、本実施例の動作を説明するための図で
あり、より具体的には、図3に示した時点の次のタイミ
ングにおける各ポインタFIFO20−1,20−2,
…,及びデータFIFO22の格納内容を概略的に書き
込んだ図である。
【図5】図5は、マルチプロセッサ・システムのハード
ウェア構成を概略的に示した図である。
【図6】図6は、各プロセッサ(FIFO)に分配−さ
れた負荷のばらつきの様子を例示した図である。
【符号の説明】
10…ディスパッチ・プロセッサ、20…先入れ先出し
バッファ(FIFO)、21…マルチプレクサ、22…
データFIFO、23…イネーブル・ビット、24…プ
ライオリティ・エンコーダ、25…セレクト・バス、2
6…データ・バス、27…ポインタ・バス、30…並列
プロセッサ、40…マージ・プロセッサ、100…マル
チプロセッサ・システム。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 小 倉 明 宏 神奈川県大和市下鶴間1623番地14 日本 アイ・ビー・エム株式会社 大和事業所 内 (56)参考文献 特開 平7−134776(JP,A) 特開 平4−348485(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 15/16 610 G06F 9/38 310 G06T 15/00 JICSTファイル(JOIS) WPI(DIALOG)

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】逐次入力するデータ・セットを複数のパイ
    プラインに分散させて処理するタイプのマルチプロセッ
    サ装置において、(a) 受け取ったデータ・セットの処理
    を各パイプラインに分配するためのディスパッチ・プロ
    セッサと、(b) 各パイプラインごとに置かれ、自己に分
    配されたデータ・セットの処理を行うための、複数の並
    列プロセッサと、(c) 前記ディスパッチ・プロセッサが
    逐次配出する1以上のデータ・セットを一時格納するた
    めのデータ・バッファと、(d) 各パイプラインごとに並
    列プロセッサの前に置かれ、並列プロセッサに分配され
    たデータ・セットの前記データ・バッファ中における格
    納場所を一時格納するための、複数のポインタ・バッフ
    ァと、(e) 前記データ・バッファへのデータ・セットの
    格納場所を決定するとともに、決定された格納場所を該
    当するパイプラインのポインタ・バッファに書き込むた
    めのプライオリティ・エンコーダと、(f) 各パイプライ
    ンごとに並列プロセッサとポインタ・バッファとの間に
    置かれ、ポインタ・バッファの出力を元に、前記データ
    ・バッファ中の格納場所からデータ・セットを読み出し
    て並列プロセッサに渡すための、複数のマルチプレクサ
    と、(g) 各並列プロセッサが処理したデータ・セットを
    統合するためのマージ・プロセッサと、を具備すること
    を特徴とするマルチプロセッサ装置
JP07339048A 1995-12-26 1995-12-26 マルチプロセッサ装置 Expired - Fee Related JP3090605B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP07339048A JP3090605B2 (ja) 1995-12-26 1995-12-26 マルチプロセッサ装置
US08/729,736 US5724602A (en) 1995-12-26 1996-10-07 Multiprocessor apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP07339048A JP3090605B2 (ja) 1995-12-26 1995-12-26 マルチプロセッサ装置

Publications (2)

Publication Number Publication Date
JPH09185593A JPH09185593A (ja) 1997-07-15
JP3090605B2 true JP3090605B2 (ja) 2000-09-25

Family

ID=18323770

Family Applications (1)

Application Number Title Priority Date Filing Date
JP07339048A Expired - Fee Related JP3090605B2 (ja) 1995-12-26 1995-12-26 マルチプロセッサ装置

Country Status (2)

Country Link
US (1) US5724602A (ja)
JP (1) JP3090605B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6578092B1 (en) * 1999-04-21 2003-06-10 Cisco Technology, Inc. FIFO buffers receiving data from different serial links and removing unit of data from each buffer based on previous calcuations accounting for trace length differences
JP2001306532A (ja) * 2000-04-19 2001-11-02 Internatl Business Mach Corp <Ibm> データ処理装置およびマルチプロセッサ装置
US20020143850A1 (en) * 2001-03-27 2002-10-03 Germano Caronni Method and apparatus for progressively processing data
JP2004054680A (ja) * 2002-07-22 2004-02-19 Fujitsu Ltd 並列効率計算方法
US7385607B2 (en) * 2004-04-12 2008-06-10 Nvidia Corporation Scalable shader architecture
JP4567586B2 (ja) * 2005-12-07 2010-10-20 富士通株式会社 処理装置
KR100949746B1 (ko) * 2008-07-10 2010-03-25 삼성중공업 주식회사 멀티코어 프로세싱 환경에서의 객체 검색 방법 및 장치
US8014295B2 (en) 2009-07-14 2011-09-06 Ixia Parallel packet processor with session active checker
US8572260B2 (en) 2010-11-22 2013-10-29 Ixia Predetermined ports for multi-core architectures
US8819245B2 (en) 2010-11-22 2014-08-26 Ixia Processor allocation for multi-core architectures
GB2516288B (en) * 2013-07-18 2015-04-08 Imagination Tech Ltd Image processing system
CN104699219B (zh) * 2013-12-10 2020-06-23 联想(北京)有限公司 一种电子设备及信息处理方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0447228A3 (en) * 1990-03-16 1993-01-07 Hewlett-Packard Company Data stream concentrator providing attribute data storage and graphics pipeline access
JP2770598B2 (ja) * 1990-06-13 1998-07-02 株式会社日立製作所 図形表示方法およびその装置
EP0541534A1 (en) * 1990-08-03 1993-05-19 Du Pont Pixel Systems Limited Data-array processing systems

Also Published As

Publication number Publication date
US5724602A (en) 1998-03-03
JPH09185593A (ja) 1997-07-15

Similar Documents

Publication Publication Date Title
Potmesil et al. The pixel machine: a parallel image computer
US6115047A (en) Method and apparatus for implementing efficient floating point Z-buffering
Torborg et al. Talisman: Commodity realtime 3D graphics for the PC
JP5366967B2 (ja) タイルベース・レンダリング・システムにおけるマルチコアの形状処理
US5821949A (en) Three-dimensional graphics accelerator with direct data channels for improved performance
US5798770A (en) Graphics rendering system with reconfigurable pipeline sequence
US6025853A (en) Integrated graphics subsystem with message-passing architecture
US5268995A (en) Method for executing graphics Z-compare and pixel merge instructions in a data processor
US5835096A (en) Rendering system using 3D texture-processing hardware for accelerated 2D rendering
US6111584A (en) Rendering system with mini-patch retrieval from local texture storage
US5805868A (en) Graphics subsystem with fast clear capability
EP0817117B1 (en) Command processor for a three-dimensional graphics accelerator which includes geometry decompression capabilities and method for processing geometry data in said graphics accelerator
EP0817008A2 (en) Three-dimensional graphics accelerator which implements multiple logical buses
JP3090605B2 (ja) マルチプロセッサ装置
JP2002526842A (ja) ディファード・シェーディング(deferredshading)を伴うグラフィックス・プロセッサ(graphicsprocessor)
JP2004164660A (ja) バス相互接続システム
JPH10116356A (ja) 浮動小数点、ライティング及びセットアップ・コアを有する3次元グラフィックス・アクセラレータの浮動小数点プロセッサ
CN110675480B (zh) 用于获取纹理操作的采样位置的方法和装置
GB2245129A (en) Local display bus architecture and communications method for raster display
US5909562A (en) Backup FIFO in-line storage
EP1255227A1 (en) Vertices index processor
CN110807827A (zh) 系统生成稳定的重心坐标和直接平面方程访问
US6813706B2 (en) Data processing system and multiprocessor system
US5784075A (en) Memory mapping techniques for enhancing performance of computer graphics system
US6775667B1 (en) Method and system for providing a hardware sort for a large number of items

Legal Events

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