JP2001306532A - データ処理装置およびマルチプロセッサ装置 - Google Patents

データ処理装置およびマルチプロセッサ装置

Info

Publication number
JP2001306532A
JP2001306532A JP2000118588A JP2000118588A JP2001306532A JP 2001306532 A JP2001306532 A JP 2001306532A JP 2000118588 A JP2000118588 A JP 2000118588A JP 2000118588 A JP2000118588 A JP 2000118588A JP 2001306532 A JP2001306532 A JP 2001306532A
Authority
JP
Japan
Prior art keywords
data
storage area
data set
buffer
pointer
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
JP2000118588A
Other languages
English (en)
Inventor
Nobuyasu Tanaka
伸宜 田中
Takeshi Namura
健 名村
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 JP2000118588A priority Critical patent/JP2001306532A/ja
Priority to US09/838,012 priority patent/US6813706B2/en
Publication of JP2001306532A publication Critical patent/JP2001306532A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/06Indexing scheme relating to groups G06F5/06 - G06F5/16
    • G06F2205/064Linked list, i.e. structure using pointers, e.g. allowing non-contiguous address segments in one logical buffer or dynamic buffer space allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Image Processing (AREA)

Abstract

(57)【要約】 【課題】 その時点で最適なFIFOの段数を動的に持
つことができ、したがって、パフォーマンスの向上のた
めにデータの性質からFIFOの段数を解析する必要の
ない情報処理装置を提供する。 【解決手段】 データ・セットを格納するデータFIF
O22と、これと同数の格納領域を有するネックスト・
ポインタ29とを備える。先行するデータ・セットがデ
ータFIFO22の格納領域「1」に格納され、後続す
るデータ・セットがデータFIFO22の格納領域
「7」に格納されるている。このとき、ネックスト・ポ
インタ29の格納領域「1」には「7」が後続するデー
タの格納領域情報として格納されている。そして、この
格納領域情報「7」に基づき、後続データ・セットをデ
ータFIFO22の格納領域「7」から読み出す。

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】図6には、マルチプロセッサ・システム1
00のハードウェア構成を概略的に示している。同図に
おいて、マルチプロセッサ・システム100は、ディス
パッチ・プロセッサ10と、複数(図6では4個)の並
列プロセッサ30−1,30−2…と、各並列プロセッ
サ30−1…ごとに設けられた先入れ先出しバッファ
(FIFO)50−1,50−2…と、マージ・プロセ
ッサ40とで構成される。ディスパッチ・プロセッサ1
0は、順次入力したデータ・セット(本明細書中では、
分配されるデータの一単位を「データ・セット」とい
う。以下同様)をデータの属性等に従って各並列プロセ
ッサ30−1…に分配するための演算ユニットである。
各FIFO50−1…は、並列プロセッサ30−1…の
手前に配置され、分配されたデータ・セットを一時格納
するとともに、前回のデータ処理を終えた並列プロセッ
サ30−1…に対して次のデータ・セットを逐次送り出
すようになっている。また、マージ・プロセッサ40
は、ディスパッチ・プロセッサ10で分散され、且つ各
並列プロセッサ30−1…で並列処理されたデータ・セ
ットを再び統合して出力するための演算ユニットであ
る。
【0009】マルチプロセッサ・システムにおいては、
各並列プロセッサに課される負荷(すなわち単位時間当
りの処理データ量)が均等化されていることが望まし
い。何故ならば、負荷が均等に分配されていれば、効率
的な並列処理がなされ、理論上、システム全体の性能は
パイプライン(すなわち並列プロセッサ)の個数に比例
して向上することになるからである。例えば図6で示す
システム100では、並列プロセッサの総体的な処理速
度がシステム100へのデータ入力速度と釣り合ってい
ることがバランスのよい設計ということになる。別言す
れば、負荷にばらつきがあれば、分散処理の恩恵を享受
することはできないとも言えよう。
【0010】図6に示すようなマルチプロセッサ・シス
テム100では、ある瞬間をとってみれば、各並列プロ
セッサ30−1…に分配されたデータ(負荷)の偏り
は、比較的頻繁に発生する。例えば図7ケース(a),
(b),(c)の各々の場合のように、各プロセッサに対して
不均等にデータ・セットが分配されたときなどである。
また、長い時間間隔で平均してみれば各並列プロセッサ
30−1…の負荷は均等になっている場合であっても、
データ・セットの並んだ順番によっては、ある瞬間では
負荷にばらつきが生ずることは往々にしてある。不均等
に分配されたデータ・セットが蓄積した結果、ある1つ
のパイプラインでのみFIFOが処理待ちデータ・セッ
トで溢れてしまう、という事態も発生し得る。当然、デ
ィスパッチ・プロセッサ10は満杯のFIFOに対して
次のデータ・セットを分配することはできない。この結
果、一部のパイプラインのみがビジーなためにシステム
全体のデータ流通を止めてしまうことになる。すなわ
ち、分散処理の恩恵を享受できなくなってしまうのであ
る。
【0011】もし、長い時間間隔では負荷の均等分配が
担保されているのであれば、各FIFO50−1,50
−2…の段数を無限大(又は無限大と仮定できるほど充
分大きい)に設計することによって、一時的な負荷のば
らつきを補償することができよう。例えば図7ケース
(a)に示す負荷のばらつきを吸収するためには最低3
段、つまり3つの格納領域を有するFIFOを用意する
必要があり、同様に図7ケース(b)および(c)に示す負荷
のばらつきを吸収するためにはそれぞれ最低5段、8段
のFIFOを用意する必要がある。FIFOの段数増大
は、偏って分配されたデータを解消するための容易な方
法と言えよう。
【0012】ところが、一部の並列プロセッサに処理が
集中しそのFIFOが溢れているときであっても、その
他の並列プロセッサのFIFOも全て溢れている訳では
ない。したがって、FIFOの段数増加という手法によ
れば、自ずと未使用あるいは余剰のFIFOを増やすこ
とになる。例えば8段のFIFOを設けたマルチプロセ
ッサ・システムに図7ケース(c)に示すような分布でデ
ータ・セットが分配された場合、使用段数が14個に対
して未使用段数が18個になってしまう。巨大な段数を
持つFIFOは、常にそのすべての格納領域が使用され
ることは予定されておらず、データ・セットの分配が偏
ったときのための予備的又は余剰的な性格が強い。使用
効率の低い記憶素子の実装は、回路設計・製作上の無駄
とも言えよう。
【0013】また、FIFOの段数増大により、回路の
ゲート・サイズを著しく増大させてしまうことになる。
何故ならば、FIFOのサイズは、データのビット幅、
段数(すなわちデータの偏り)、およびパイプライン数
の積(=ビット幅(W)×段数(D)×パイプライン数
(N))に比例するからである。テクスチャ・マッピン
グのためのLSIは、例えばASIC技術を用いて実装
される。巨大な段数(すなわちビット数)のFIFO
は、実装面積を占有するため、回路設計上の大きな足枷
となる。当然、製造コストを増大させてしまうことにも
なる。
【0014】つまり、FIFOの段数増加(若しくはデ
ータ・バッファの肥大化)という解決手法によれば、シ
ステム全体のスループット向上に寄与する反面、設計上
の不利益も招来する、というトレード・オフを負ってい
る。
【0015】以上のような課題に対して、特開平9-1
85593号公報(USP5724602)には図8に
示すマルチプロセッサ・システム100が開示されてい
る。つまり、図8のマルチプロセッサ・システム100
は、(a)受け取ったデータ・セットの処理を各パイプラ
インに分配するためのディスパッチ・プロセッサ10
と、(b)各パイプラインごとに置かれ、自己に分配され
たデータ・セットの処理を行うための、複数の並列プロ
セッサ30(30−1…)と、(c)前記ディスパッチ・
プロセッサ10が逐次配出する1以上のデータ・セット
を一時格納するためのデータFIFO22と、(d)各パ
イプラインごとに並列プロセッサ30の前に置かれ、並
列プロセッサ30に分配されたデータ・セットの前記デ
ータFIFO22中における格納領域を一時格納するた
めの、複数のポインタFIFO60(60−1…)と、
(e)前記データFIFO22へのデータ・セットの格納
領域を決定するとともに、決定された格納領域を該当す
るパイプラインのポインタFIFO60に書き込むため
のプライオリティ・エンコーダ24と、(f)各パイプラ
インごとに並列プロセッサ30とポインタFIFO60
との間に置かれ、ポインタFIFO60の出力を元に、
前記データFIFO22中の格納領域からデータ・セッ
トを読み出して並列プロセッサ30に渡すための、複数
のマルチプレクサ21(21−1…)と、(g)各並列プ
ロセッサ30が処理したデータ・セットを統合するため
のマージ・プロセッサ40と、を具備している。
【0016】しかして、上記特開平9-185593号
公報に開示されたマルチプロセッサ・システム100
は、データ・セットを入出力するためのデータFIFO
22を各パイプラインごとに個別に持たずに、全パイプ
ラインで共有化させている。また、各パイプラインは、
共有化されたデータFIFO22中のデータ・セットの
格納領域を入出力するためのポインタFIFO60を持
つようにしている。並列プロセッサ30がデータ処理を
行うときには、まず自己のポインタFIFO60から格
納領域を引き出し、次いでデータFIFO22中の該当
する格納領域からデータ・セットを読み出すようにして
いる。各パイプラインに設けられるポインタFIFO6
0は、データFIFO22の格納領域を識別できる程度
のビット幅でよく、データ・セット自体を格納する場合
に比し小さくて済む。また、データFIFO22は、全
パイプラインで共有化することによって1個に集約され
る。したがって、特開平9-185593号公報に開示
されたマルチプロセッサ・システム100によれば、デ
ータ・バッファのサイズを徒に肥大化させることなく、
負荷のばらつきを吸収することができる。また、特開平
9-185593号公報に開示されたマルチプロセッサ
・システム100は、共有化によって使用効率の低いF
IFOを省略することができるので、当然、設計・製作
は安価で済むことになる。別の見方をすれば、特開平9
-185593号公報に開示されたマルチプロセッサ・
システム100は、同じゲート・サイズでより高速な性
能を持っていることになる。
【0017】
【発明が解決しようとする課題】ところが、特開平9-
185593号公報のマルチプロセッサ・システム10
0では、各並列プロセッサ30ごとにポインタFIFO
60が必要なことに変わりはない。そして、各並列プロ
セッサ30ごとに何段のポインタFIFO60が必要に
なるかということを、データの性質から解析する必要が
あり、この段数を最適に決めないと、パフォーマンスに
影響することになる。本発明は、その時点で最適なFI
FOの段数を動的に持つことができ、したがって、パフ
ォーマンスの向上のためにデータの性質からFIFOの
段数を解析する必要のないデータ装置およびマルチプロ
セッサ装置の提供を課題とする。
【0018】
【課題を解決するための手段】本発明は、上記課題を参
酌してなされたものであり、逐次受け取ったデータ・セ
ットを複数のパイプラインに分配させて処理するデータ
処理装置であって、複数の格納領域を有し、かついずれ
のパイプラインに分配されるものであるか定義して前記
データ・セットを一時的に格納するデータ・バッファ
と、複数の格納領域を有し、前記データ・バッファにお
ける後続データ・セットの格納領域に関する第2情報を
一時的に格納するネックスト・ポインタと、前記データ
・バッファにおける先行データ・セットの格納領域に関
する第1情報を一時的に格納し、かつ前記先行データ・
セットが前記データ・バッファから読み出された後に前
記第2情報を格納するリード・ポインタと、を備えてい
ることを特徴とするデータ処理装置である。本発明のデ
ータ処理装置において、データ・バッファのみならずネ
ックスト・ポインタを、前記複数のパイプラインで共有
化させる。そして、ネックスト・ポインタに格納された
第1情報、第2情報に基づいて、先行データ・セット、
後続データ・セットをデータ・バッファから順次読み出
すことができる。本発明のデータ処理装置において、前
記リード・ポインタは、各パイプラインごとに設けられ
るとともに、単一の格納領域からなる。そして、前記先
行データ・セットが読み出された後に、第1情報が第2
情報に更新される。つまり、逐次更新されるこれら情報
に基づきデータ・バッファからデータ・セットを読み出
し、かつ処理することができる。
【0019】また本発明では、データ・セットを格納す
るN個の格納領域を有する第1バッファと、M個の格納
領域を有し、かつ当該各格納領域と前記第1バッファの
各格納領域とが関連付けられた第2バッファと、を備
え、先行するデータ・セットが前記第1バッファのn番
目の格納領域に格納され、後続するデータ・セットが前
記第1バッファの(n+a)番目の格納領域に格納され
る場合に、前記第2バッファのn番目の格納領域に、
(n+a)を前記後続するデータの格納領域情報として
格納することを特徴とするデータ処理装置が提供され
る。この本発明データ処理装置において、第1バッファ
のn番目の格納領域に格納されデータ・セットが読み出
される際に、前記第2バッファのn番目の格納領域に格
納された前記格納領域情報も読み出すことにすれば、次
に読み出すべきデータ・セットが、第1バッファの(n
+a)番目の格納領域に格納されていることを特定する
ことができる。そして、第2バッファから読み出される
格納領域情報を格納するリード・ポインタを備え、かつ
前記リード・ポインタに格納された格納領域情報と一致
する第1バッファの格納領域から所定のデータ・セット
を読み出すことができる。この場合、(n+a)をリー
ド・ポインタが格納し、第1バッファの(n+a)番目
の格納領域から後続するデータを読み出すことになる。
以上のデータ処理装置において、第2バッファの格納領
域の数Mが第1バッファの格納領域の数N以上であれば
よいが、無駄な格納領域を持たないという趣旨から、N
=Mとすることが望ましい。
【0020】さらに本発明は、逐次受け取ったデータ・
セットを複数のパイプラインに分配させて処理するデー
タ処理装置であって、複数の格納領域を有し、かついず
れのパイプラインに分配されるものであるか定義して前
記データ・セットを一時的に格納するデータ・バッファ
と、前記データ・バッファに対応する複数の格納領域を
有するポインタと、を備え、前記データ・バッファに前
記データ・セットを格納する際に、前記データ・セット
が格納される格納領域に対応する前記ポインタの格納領
域に空き格納領域に関する情報を格納することを特徴と
するデータ処理装置が提供される。このデータ処理装置
において、前記ポインタに格納された空き格納領域に関
する情報は、次にデータ・セットが格納されるべきデー
タ・バッファにおける格納領域である。この格納領域に
関する情報を一時的に格納するためのライト・ポインタ
を各パイプラインごとに設ける。そして、前記空き格納
領域に関する情報を前記ライト・ポインタにも格納する
ことにすれば、ライト・ポインタに格納された情報に基
づいて、次に受け取ったデータ・セットをデータ・バッ
ファの所定領域に格納することができる。
【0021】本発明のデータ処理装置は、以下のマルチ
プロセッサ装置として利用することができる。すなわ
ち、本発明のマルチプロセッサ装置は、逐次受け取った
データ・セットを複数のパイプラインに分散させて処理
するマルチプロセッサ装置において、受け取ったデータ
・セットを各パイプラインに分配するためのディスパッ
チ・プロセッサと、各パイプラインごとに置かれ、自己
に分配されたデータ・セットの処理を行うための複数の
並列プロセッサと、前記ディスパッチ・プロセッサが逐
次配出する1以上のデータ・セットを一時的に格納する
ための複数の格納領域を備えたデータ・バッファと、前
記データ・バッファ中に格納されている第1データ・セ
ットの前記データ・バッファにおける第1格納領域情
報、および第1データ・セットの次に同一の前記並列プ
ロセッサで処理される第2データ・セットの前記データ
・バッファにおける第2格納領域情報を格納するための
ネックスト・ポインタと、各パイプラインごとに並列プ
ロセッサの前に置かれ、前記第1格納領域情報と前記第
2格納領域情報を順次格納するためのリード・ポインタ
と、前記データ・バッファにおける前記第1データ・セ
ットおよび第2データ・セットの格納領域を決定するた
めのプライオリティ・エンコーダと、各パイプラインご
とに並列プロセッサと前記リード・ポインタとの間に置
かれ、前記リード・ポインタに格納された前記第1格納
領域情報および前記第2格納領域情報に基づいて前記デ
ータ・バッファ中の格納領域から前記第1データ・セッ
トおよび第2データ・セットを順次読み出して並列プロ
セッサに渡すための複数のマルチプレクサと、を備える
ことを特徴とする。
【0022】本発明のマルチプロセッサ装置において、
前記ネックスト・ポインタは前記データ・バッファと一
致する数の格納領域を有し、かつ前記データ・バッファ
の格納領域と前記ネックスト・ポインタの格納領域とを
対応付けることができる。より具体的には以下の通りで
ある。第1データ・セットが格納されているデータ・バ
ッファの格納領域と対応付けされているネックスト・ポ
インタの格納領域に第2格納領域情報を格納する。そし
て、データ・バッファから第1データ・セットを読み出
すと、ネックスト・ポインタから第2格納領域情報が読
み出され、次いでこの第2格納領域情報に基づきデータ
・バッファから所定のデータ・セットを読み出す。本発
明のマルチプロセッサ装置においては、並列プロセッサ
に分配されるべきデータ・セットが前記データ・バッフ
ァ中で格納される領域の情報を、一時的に格納するため
のライト・ポインタを備えることができる。このライト
・ポインタに格納された情報に基づき、逐次受け取った
データ・セットをデータ・バッファの所定の格納領域に
格納することができる。また、本発明のマルチプロセッ
サ装置においては、前記各並列プロセッサが処理したデ
ータ・セットを統合するためのマージ・プロセッサを備
えることができる。本発明のさらに他の目的、特徴や利
点は、後述する本発明の実施の形態や添付する図面に基
づくより詳細な説明によって明らかになるであろう。
【0023】
【発明の実施の形態】以下、図面を参照しながら本発明
の実施の形態を詳解する。 A.システム構成 はじめに、図1に示すシステム構成図に基づき、本発明
の実施の形態にかかるマルチプロセッサ・システム10
0のハードウェア構成を説明する。なお、図8と同一の
構成要素については同一の参照番号を付している。
【0024】図1に示すように、マルチプロセッサ・シ
ステム100は、ディスパッチ・プロセッサ10と、複
数の並列プロセッサ30とを備える。各並列プロセッサ
30ごとに、ライト・ポインタ20、マルチプレクサ2
1およびリード・ポインタ28とが設けてある。さらに
マルチプロセッサ・システム100は、データFIFO
22と、イネーブル・ビット23と、プライオリティ・
エンコーダ24と、ネックスト・ポインタ29とを備え
ている。同図では、4つのパイプラインを備えることと
しており、各並列プロセッサ30にそれぞれ参照番号3
0−1,30−2,30−3,30−4を付し、各ライ
ト・ポインタ20にそれぞれ参照番号20−1,20−
2,20−3,20−4を付し、各マルチプレクサ21
にそれぞれ参照番号21−1,21−2,21−3,2
1−4を付し、各リード・ポインタ28には参照番号2
8−1,28−2,28−3,28−4を付している。
但し、パイプライン数自体は、設計事項に過ぎない。マ
ルチプロセッサ・システム100中の各ハードウェア・
ブロックは、例えばASIC技術を用いることにより、
各部を連絡する各バス(後述)とともに、単一の回路チ
ップ上に実装される。
【0025】ディスパッチ・プロセッサ10は、逐次入
力されたデータ・セットの処理を、その属性等に応じ
て、各並列プロセッサ30−1,30−2,…に分配す
るための演算ユニットである。ディスパッチ・プロセッ
サ10の入力側は外部バスによって該マルチプロセッサ
・システム100外の装置(例えばグラフィック・ワー
クステーション:図示しない)と接続されており、外部
装置からデータ・セットを逐次受け取れるようになって
いる。また、ディスパッチ・プロセッサ10の出力側
は、セレクト・バス25とデータ・バス26を配出して
いる。セレクト・バス25は、逐次出力するデータ・セ
ットの分配先となるパイプラインを指定する「セレクト
情報」を伝送するためのものであり、各パイプラインの
ライト・ポインタ20−1,20−2,…に向かってい
る。セレクト・バス25は、パイプラインを識別できる
程度のビット幅でよい。本実施の形態では、パイプライ
ン数が4個であることに従い、セレクト・バス25を2
ビット幅にしている。また、データ・バス26は、分配
されるデータ・セットの実体を伝送するためのものであ
り、データFIFO22に向かっている。データ・バス
26のビット幅は、例えば32ビットである。
【0026】データFIFO22は、ディスパッチ・プ
ロセッサ10から逐次配出されるデータ・セットの実体
を一時保持するための先入れ先出しバッファである。デ
ータFIFO22中の各格納領域は、プライオリティ・
エンコーダ24からの指示に応じて入力許可状態にな
る。データFIFO22は、特定のパイプラインに専属
のものではなく、全パイプラインで共有される性格を持
つ。なお、本実施の形態のデータFIFO22は、デー
タ・セットを16個まで保持できる構成である(但し、
段数は設計事項である)。また、データFIFO22の
各格納領域は、データ・バス26のビット幅に従い32
ビット構成である。データFIFO22には、ネックス
ト・ポインタ29およびイネーブル・ビット23が付設
されている。データFIFO22は前述の通り、16の
段を持ち、各々、0から15までの番号が付与されてい
る。そして、例えば図1に示すように、「0」および
「2」の格納領域には「B」が表示されており、この格
納領域に並列プロセッサB(30−2)に読み出されか
つ処理されるデータ・セットが格納されていることを示
している。また同様に、「1」および「7」の格納領域
には、並列プロセッサA(30−1)に読み出されかつ
処理されるべきデータ・セットが格納されていることを
示す、「A」が表示されている。さらに、「4」の格納
領域には、並列プロセッサC(30−3)に読み出され
かつ処理されるべきデータ・セットが格納されているこ
とを示す、「C」が表示されている。
【0027】ネックスト・ポインタ29は、後続のデー
タ・セットがデータFIFO22中の何れの格納領域に
格納されているかを格納するバッファである。図1に基
づき説明すると以下の通りである。まず、並列プロセッ
サA(30−1)において最初に読み出されるデータ・
セットは、データFIFO22の「1」の格納領域のデ
ータ・セットである。データFIFO22の「1」の格
納領域に対応するネックスト・ポインタ29の格納領域
には「7」が格納されている。この「7」が並列プロセ
ッサA(30−1)に次に読み出されるデータ・セット
が格納されているデータFIFO22中の格納領域
「7」を示している。つまりこの場合には、並列プロセ
ッサA(30−1)が次に読み出しかつ処理するデータ
・セットがデータFIFO22中の「7」の格納領域に
格納されている。この「7」が後続データ・セットのデ
ータFIFO22における格納領域情報である。並列プ
ロセッサB(30−2)については以下の通りである。
データFIFO22の「0」および「2」の段に並列プ
ロセッサB(30−2)に読み出されるべきデータ・セ
ットが格納されているが、データFIFO22の「0」
の格納領域に対応するネックスト・ポインタ29の
「0」の格納領域には、「2」が格納されている。この
「2」が後続データ・セットのデータFIFO22にお
ける格納領域情報である。ネックスト・ポインタ29
も、データFIFO22と同様に、特定のパイプライン
に専属のものではなく、全パイプラインで共有される性
格を持つ。また、本実施の形態のネックスト・ポインタ
29は、データFIFO22と同様に、データ・セット
を16個まで保持できる16段の構成である(但し、段
数は設計事項である。)。また、ネックスト・ポインタ
29の各格納領域は、ポインタ・バス27のビット幅に
従い4ビット構成である。
【0028】イネーブル・ビット23は、データFIF
O22の各格納領域に有効な(すなわちこれから処理す
る予定の)データが格納されているか否か、もしくは次
に格納されるという書き込み予約を示すためのビット・
フラグである。データFIFO22の各格納領域にデー
タ・セットが書き込まれるかまたは書き込み予約がなさ
れる度に、イネーブル・ビット23中の対応ビット・フ
ラグが設定され、また、データ・セットがデータFIF
O22から読み出されると、対応ビット・フラグは解除
される。
【0029】プライオリティ・エンコーダ24は、デー
タFIFO22、ネックスト・ポインタ29およびイネ
ーブル・ビット23を制御下に置くことにより、ディス
パッチ・プロセッサ10から逐次出力されるデータ・セ
ットの格納および各パイプラインへの格納領域(ポイン
タ)の分配を実行するようになっている。プライオリテ
ィ・エンコーダ24の主な機能は以下の通りである。 (1)イネーブル・ビット23を参照(エンコード)す
ることによって、データFIFO22中の空き格納領域
を見付け出す。 (2)空き格納領域のうちの1つを、次に受け取ったデ
ータ・セットの格納領域として選ぶ。 (3)ポインタ・バス27を介して、各ライト・ポイン
タ20−1,20−2,…、およびネックスト・ポイン
タ29に対して、選ばれた格納領域に関する情報を伝達
する。 一方、データFIFO22は、ポインタ・バス27を介
して指定された格納領域が入力許可状態になる。そし
て、データ・バス26を介してデータ・セットを受け取
ると、指定された格納領域に格納する。このとき、デー
タ・セット(先行データ・セット)が格納されたデータ
FIFO22の格納領域に対応するネックスト・ポイン
タ29の格納領域にプライオリティ・エンコーダ24か
らの情報(空き格納領域の情報)(「0」〜「15」の
いずれか)を格納する。また、新しいネックスト・ポイ
ンタの書き込みに伴い、イネーブル・ビット23中の該
当するビット・フラグが設定され、該格納領域が次にデ
ータを格納するために予約される。なお、ポインタ・バ
ス27は、データFIFO22中の位置を識別できる程
度のビット幅でよい。本実施の形態では、データFIF
O22が16段構成であることに従い、ポインタ・バス
27を4ビット幅にしている。
【0030】4個のパイプラインは、それぞれ、ライト
・ポインタ20と、マルチプレクサ21と、リード・ポ
インタ28と、並列プロセッサ30とで構成される。ラ
イト・ポインタ20は、次に受け取り、かつ書き込むデ
ータ・セットのデータFIFO22中の格納領域を示す
ためのレジスタであり、ポインタ・バス27を介してプ
ライオリティ・エンコーダ24から格納領域に関する情
報を受け取るようになっている。この情報は,マルチプ
レクサ20Mを介してデータFIFO22およびネック
スト・ポインタ29に伝達される。また、各ライト・ポ
インタ20−1,20−2・・・は、セレクト・バス25
からの「セレクト情報」に応じて入力許可状態となるよ
うになっている。各ライト・ポインタ20−1,20−
2・・・のビット幅は、ポインタ・バス27に従い、4ビ
ット幅となっている。リード・ポインタ28は、次に読
み出すべきデータ・セットのデータFIFO22中の格
納領域を格納するためのレジスタであり、ポインタ・バ
ス27を介してネックスト・ポインタ29から格納領域
の内容を受け取るようになっている。
【0031】マルチプレクサ21は、第1のマルチプレ
クサ21−iaと、第2のマルチプレクサ21−ibと
から構成される(ただし、iは1〜4の整数)。第1の
マルチプレクサ21−iaは、リード・ポインタ28に
格納されたデータ・セットが読み出された後に、次に読
み出すべきデータ・セットが格納されているデータFI
FO22中の格納領域に関する情報(以下,ポインタ)
を受け取ると、それをリード・ポインタ28に渡す。一
方、第2のマルチプレクサ21−ibは、リード・ポイ
ンタ28に現在格納されているポインタを認識し、デー
タFIFO22中の該当する格納領域からデータ・セッ
トを読み出し、並列プロセッサ30に渡す。また、デー
タ・セットの読み出しに伴い、イネーブル・ビット23
中の該当するビット・フラグは解除され、該格納領域の
内容は無効化される。
【0032】並列プロセッサ30は、第2のマルチプレ
クサ21−ibから受け取ったデータ・セットに所定の
処理を施した後、マージ・プロセッサ40に出力する。
マージ・プロセッサ40は、各パイプラインから出力さ
れた各データ・セットを再び統合化して、マルチプロセ
ッサ・システム100外の装置(例えばグラフィック・
ワークステーション:図示しない)に渡す。並列プロセ
ッサ30およびマージ・プロセッサ40における処理自
体は本発明の要旨に関連しないため、本明細書ではこれ
以上言及しない。
【0033】なお、本マルチプロセッサ・システム10
0は、例えば3次元グラフィックス処理におけるテクス
チャ・マッピングのために利用される。このような場
合、本マルチプロセッサ・システム100は3次元処理
用のグラフィックス・アダプタの一部を構成し、また、
グラフィックス・アダプタ自体はグラフィックス・ワー
クステーションにバス接続されている。
【0034】B.システム・オペレーション 以上では、本発明を具現するマルチプロセッサ・システ
ム100のハードウェアを説明してきた。次に、図2〜
図5を参照しながら、該マルチプロセッサ・システム1
00の動作について説明することにする。
【0035】B−1.リセット動作(図2参照) リセット時には初期値として、各ライト・ポインタ20
−1,20−2・・・、各リード・ポインタ28−1,2
8−2・・・にある値を格納する。例えば、並列プロセッ
サA(30−1)に対応するライト・ポインタ20−1
およびリード・ポインタ28−1には、それぞれ0(ゼ
ロ)を格納する。また、同様に、ライト・ポインタ20
−2およびリード・ポインタ28−2には1を、ライト
・ポインタ20−3およびリード・ポインタ28−3に
は2を、ライト・ポインタ20−4およびリード・ポイ
ンタ28−4には3を格納する。このとき、イネーブル
・ビット23の0〜3の段については、書き込み予約が
されたこととして、イネーブル・ビット23が有効であ
ることを示す「1」をセットする。その他の段について
は、書き込みも予約もされていないので、「0」をセッ
トする。
【0036】B−2.ライト(書き込み)動作(図3参
照) ディスパッチ・プロセッサ10が出力したデータ・セッ
トをデータFIFO22に書き込むためのオペレーショ
ンについて説明する。なお、図3は、データFIFO2
2の格納領域「7」に並列プロセッサA(30−1)に
分配すべき先行データ・セットが格納されており、格納
領域「9」が次に書かれる領域として予約されており、
ライト・ポインタ20−1には次に書かれる領域の番号
「9」が書きこまれている状態で、次に並列プロセッサ
A(30−1)に分配すべきデータ・セットをディスパ
ッチ・プロセッサ10が出力することを前提としてい
る。ディスパッチ・プロセッサ10から出力されたデー
タ・セットには、A〜Dのいずれの並列プロセッサ30
で処理されるかを示す情報が付加されている。
【0037】例えば、プライオリティ・エンコーダ24
は、イネーブル・ビット23を参照(エンコード)し
て、データFIFO22中の空き格納領域を検索する。
図3では、11段目のビット・フラグが解除状態である
から、プライオリティ・エンコーダ24は、データFI
FO22中の格納領域「11」を選択するとともに、ポ
インタ・バス27上にその旨を格納領域情報として伝送
する。ある時点でディスパッチ・プロセッサ10が並列
プロセッサA(30−1)に分配すべきデータ・セット
を出力するとする。このとき、ディスパッチ・プロセッ
サ10は、セレクト・バス25にセレクト情報を伝送し
て、ライト・ポインタ20−1へのデータ入力のみを許
可するとともに、データ・バス26上にデータ・セット
を伝送する。入力許可状態となっているライト・ポイン
タ20−1は、ポインタ・バス27から格納領域に関す
る情報を受け取りポインタ値"11"を書き込む。また、
データFIFO22では、マルチプレクサ20Mを介し
て指定された格納領域「9」が入力許可状態になる。
【0038】この結果、データ・バス26を介して受け
取った後続データ・セットは格納領域「9」に格納され
る。図3中では、データFIFO22の格納領域「9」
には、並列プロセッサA(30−1)に分配すべきデー
タ・セットの存在を意味する文字"A"が書き込まれてい
る。さらに、同時にネックスト・ポインタ29の格納領
域「9」には、次のデータ・セットがデータFIFO2
2の格納領域「11」に格納されたことを示す11が格
納される。また、同時にイネーブル・ビット23の「1
1」には予約されたことを示す1が書きこまれる。
【0039】B−3.リード(読み出し)動作(図4、
図5参照) 次いで、各並列プロセッサ30−1,30−2,…がデ
ータ・セットをデータFIFO22から読み出すための
動作について説明する。図4には、ある時点におけるラ
イト・ポインタ20、データFIFO22、ネックスト
・ポインタ29およびリード・ポインタ28の格納内容
を概略的に書き込んでいる。すなわち、同図において、
データFIFO22のうち、格納領域「0」,「1」,
「2」,「4」,「7」には、それぞれB,A,B,
C,Aに分配すべきデータ・セットが書き込まれている
(但し、A,B,C,Dはそれぞれ並列プロセッサA
(30−1),並列プロセッサB(30−2),並列プ
ロセッサC(30−3),並列プロセッサD(30−
4)を示す略称である。以下同様)。
【0040】一方、各パイプライン上のライト・ポイン
タ20−1,20−2,…には、データFIFO22の
格納内容を反映したポインタ値が書き込まれている。デ
ータFIFO22中でデータ・セットが格納されていな
い格納領域、つまり空き格納領域は現時点で、格納領域
「3」,「5」,「6」,「8」,「9」・・・である。
そのうち、ライト・ポインタ20−1には9、ライト・
ポインタ20−2には6、ライト・ポインタ20−3に
は3、ライト・ポインタ20−4には5が格納されてい
る。また、各パイプライン上のリード・ポインタ28−
1,28−2,・・・にも、データFIFO22の格納内
容を反映したポインタ値が書き込まれている。つまり、
並列プロセッサA(30−1)に分配すべきデータ・セ
ットがデータFIFO22中の格納領域「1」および
「7」に格納されているが、そのうち先行して読み出す
べき「1」の格納領域を示す「1」がリード・ポインタ
28−1に格納されている。同様に、リード・ポインタ
28−2には「0」が、また、リード・ポインタ28−
3には「4」が格納されている。リード・ポインタ28
−4には「5」が格納されている。これは、データFI
FO22中の格納領域「5」にはデータ・セットが現時
点では格納されていないが、ライト・ポインタ20−4
には「5」がポインタ値として格納されており、次の時
点ではデータFIFO22中の格納領域「5」には並列
プロセッサD(30−4)に分配すべきデータ・セット
が格納されるからである。このように、リード・ポイン
タ=ライト・ポインタの場合には、データが格納されて
いないことを示す。
【0041】ネックスト・ポインタ29のうち、格納領
域「0」,「1」,「2」,「4」,「7」には、それ
ぞれB,A,B,C,Aに分配すべきデータ・セットで
あって、データFIFO22中で次に読み出されるのデ
ータ・セットが書き込まれている格納領域を格納してい
る。つまり、Bについて看ると、次のデータ・セットが
格納されているのはデータFIFO22中の格納領域
「2」であることから、ネックスト・ポインタ29の格
納領域「0」には「2」が格納されている。ネックスト
・ポインタ29の格納領域「2」には「6」が格納され
ている。データFIFO22中の格納領域「6」には、
Bに分配すべきデータ・セットが未だ格納されていない
が、ライト・ポインタ20−2に「6」が格納、つまり
Bに分配すべき次のデータ・セットはデータFIFO2
2中の格納領域「6」に格納されることが定まっている
からである。これは、Cについても同様である。また、
Aについて看ると、次のデータ・セットが格納されてい
るのはデータFIFO22中の格納領域「7」の格納領
域であることから、ネックスト・ポインタ29の格納領
域「1」には「7」が格納されている。さらに、ネック
スト・ポインタ29の格納領域「7」には「9」が格納
されている。この「9」は、ライト・ポインタ20−1
に格納されている「9」に対応している。
【0042】イネーブル・ビット23の各ビット・フラ
グは、データFIFO22中の各格納領域の使用状況、
さらにはライト・ポインタ20の格納状況に応じて設定
又は解除されている。つまり、データFIFO22中で
空き格納領域があった場合でも、ライト・ポインタ20
のいずれかに格納されているデータFIFO22の格納
領域については、それに対応するイネーブル・ビット2
3の各ビット・フラグは設定される。
【0043】このとき、第2のマルチプレクサ21−1
bは、リード・ポインタ28−1からポインタ値1を読
み取る。すると、第2のマルチプレクサ21−1bは、
データFIFO22の格納領域「1」からデータ・セッ
トを読み出して、並列プロセッサA(30−1)に渡
す。同様に、第2のマルチプレクサ21−2bはリード
・ポインタ28−2からポインタ値0を読み取る。する
と、第2のマルチプレクサ21−2bは、データFIF
O22の格納領域「0」からデータ・セットを読み出し
て、並列プロセッサB(30−2)に渡す。また、第2
のマルチプレクサ21−3bはリード・ポインタ28−
3からポインタ値4を読み取る。すると、第2のマルチ
プレクサ21−3bは、データFIFO22の格納領域
「4」からデータ・セットを読み出して、並列プロセッ
サC(30−3)に渡す。第2のマルチプレクサ21−
4bはリード・ポインタ28−4からポインタ値5を読
み取る。しかし、データFIFO22の格納領域「5」
は現時点では空なので、第2のマルチプレクサ21−4
bはデータFIFO22からデータ・セットを引き出さ
ない。
【0044】各パイプライン上の並列プロセッサA(3
0−1),B(30−2),…は、マルチプレクサ21
−1,21−2,…の各々から受け取ったデータ・セッ
トに対して所定の処理を施した後、マージ・プロセッサ
40に出力する。そして、マージ・プロセッサ40は受
け取った各データ・セットを再び統合化して、マルチプ
ロセッサ・システム100外の装置(例えばグラフィッ
ク・ワークステーション:図示しない)に渡す。
【0045】図5には、図4に示した時点の次のタイミ
ングにおけるライト・ポインタ20、データFIFO2
2、ネックスト・ポインタ29およびリード・ポインタ
28の格納内容を概略的に書き込んでいる。すなわち、
同図において、データFIFO22のうち、格納領域に
は「2」,「3」,「5」,「6」,「7」,「9」に
は、それぞれB,C,D,B,A,Aに分配すべきデー
タ・セットが書き込まれている。
【0046】一方、各パイプライン上のライト・ポイン
タ20−1,20−2,…には、データFIFO22の
格納内容を反映したポインタ値が書き込まれている。デ
ータFIFO22中でデータ・セットが格納されていな
い格納領域、つまり空き格納領域は現時点で、「0」,
「1」,「4」,「8」,「10」・・・である。そのう
ち、ライト・ポインタ20−1には0、ライト・ポイン
タ20−2には4、ライト・ポインタ20−3には1、
ライト・ポインタ20−4には8が格納されている。ま
た、各パイプライン上のリード・ポインタ28−1,2
8−2,・・・にも、データFIFO22の格納内容を反
映したポインタ値が書き込まれている。つまり、並列プ
ロセッサA(30−1)に分配すべきデータ・セットが
データFIFO22中の格納領域「7」および「9」に
格納されているが、そのうち先行して読み出すべき格納
領域「7」を示すポインタ値7がリード・ポインタ28
−1に格納されている。同様に、リード・ポインタ28
−2には「2」が、リード・ポインタ28−3には
「3」が、さらにリード・ポインタ28−4には「5」
が格納されている。
【0047】ネックスト・ポインタ29のうち、格納領
域「2」,「3」,「5」,「6」,「7」,「9」に
は、それぞれB,C,D,B,A,Aに分配すべきデー
タ・セットであって、データFIFO22中で次に読み
出されるべき後続データ・セットが書き込まれている格
納領域に関する情報を格納している。つまり、Bについ
て看ると、次のデータ・セットが格納されているのはデ
ータFIFO22中の格納領域「6」であることから、
ネックスト・ポインタ29の格納領域「2」には「6」
が格納されている。ネックスト・ポインタ29の格納領
域「6」には「4」が格納されている。データFIFO
22中の格納領域「4」には、Bに分配すべきデータ・
セットが未だ格納されていないが、ライト・ポインタ2
0−2に「4」が格納、つまりBに分配すべき次のデー
タ・セットはデータFIFO22中の格納領域「4」に
格納されることが定まっているからである。以下、C,
D,Aについても同様である。
【0048】イネーブル・ビット23の各ビット・フラ
グは、データFIFO22中の各格納領域の使用状況、
さらにはライト・ポインタ20の格納状況に応じて設定
又は解除されている。つまり、データFIFO22中で
使用されていない格納領域があった場合でも、ライト・
ポインタ20のいずれかに格納されているデータFIF
O22の格納領域については、それに対応するイネーブ
ル・ビット23の各ビット・フラグは設定される。
【0049】このとき、第2のマルチプレクサ21−1
bは、リード・ポインタ28−1からポインタ値7を読
み取る。すると、第2のマルチプレクサ21−1bは、
データFIFO22の格納領域「7」からデータ・セッ
トを読み出して、並列プロセッサA(30−1)に渡
す。同様に、第2のマルチプレクサ21−2bはリード
・ポインタ28−2からポインタ値2を読み取る。する
と、第2のマルチプレクサ21−2bは、データFIF
O22の格納領域「2」からデータ・セットを読み出し
て、並列プロセッサB(30−2)に渡す。また、第2
のマルチプレクサ21−3bはリード・ポインタ28−
3からポインタ値3を読み取る。すると、第2のマルチ
プレクサ21−3bは、データFIFO22の格納領域
「3」からデータ・セットを読み出して、並列プロセッ
サC(30−3)に渡す。第2のマルチプレクサ21−
4bはリード・ポインタ28−4からポインタ値5を読
み取る。すると、第2のマルチプレクサ21−4bは、
データFIFO22の格納領域「5」からデータ・セッ
トを読み出して、並列プロセッサD(30−4)に渡
す。
【0050】各パイプライン上の並列プロセッサA(3
0−1),B(30−2),…は、マルチプレクサ21
−1,21−2,…の各々から受け取ったデータ・セッ
トに対して所定の処理を施した後、マージ・プロセッサ
40に出力する。そして、マージ・プロセッサ40は受
け取った各データ・セットを再び統合化して、マルチプ
ロセッサ・システム100外の装置(例えばグラフィッ
ク・ワークステーション:図示しない)に渡す。
【0051】図4および図5において、並列プロセッサ
A(30−1)のパイプラインについて看てみる。図4
において、データFIFO22の格納領域「1」および
「7」に並列プロセッサA(30−1)に読み込まれか
つ処理されるデータ・セットが格納されている。ここ
で、格納領域「1」に格納されているデータ・セットが
先行データセットであり、格納領域「7」に格納されて
いるデータ・セットが後続データ・セットである。そし
て、ネックスト・ポインタ29の対応する格納領域に
は、それぞれ「7」および「9」が格納されている。こ
こで、この「1」を第1情報、「7」を第2情報とす
る。このとき、リード・ポインタ28−1には「1」が
格納されている。データFIFO22の格納領域「1」
からデータ・セットが読み出された後には、図5に示す
ようにリード・ポインタ28−1には「7」が格納され
ている。つまり、リード・ポインタ28−1は、第1情
報を格納するが、先行データ・セットが読み出された後
に第2情報に更新される。
【0052】本発明によるデータ・バッファのゲート・
サイズ低減の効果は、試算することによって顕著に表す
ことができる。例えば図6に示す形式の従来のマルチプ
ロセッサ・システム100において、データ・セットの
ビット幅が32ビットで、各パイプラインに設けられた
データFIFOが12段構成であるとすれば、システム
中のFIFOの全ゲート・サイズは、32(ビット幅)
×12(段数)×4(パイプライン数)=1536ビッ
トに達する。また、図8に示す従来のマルチプロセッサ
・システム100においては、各パイプラインごとのポ
インタFIFO60−1…の全ゲート・サイズは、4
(ビット幅)×12(段数)×4(パイプライン数)=
192ビットである。また、データFIFO22のゲー
ト・サイズは、32(ビット幅)×16(段数)=51
2(ビット)であり、イネーブル・ビット23は16ビ
ットからなる。したがって、マルチプロセッサ・システ
ム100中の記憶素子に要するゲート・サイズは、19
2(ポインタFIFO)+512(データFIFO)+
16(イネーブル・ビット)=720ビットになる。本
発明のマルチプロセッサ・システム100においては、
データFIFO22のゲート・サイズは、32(ビット
幅)×16(段数)=512(ビット)であり、イネー
ブル・ビット23は16ビットからなる。また、ネック
スト・ポインタ29は4(ビット幅)×16(段数)=
64(ビット)、ライト・ポインタ20が4(ビット
幅)×4(パイプライン数)=16(ビット)、リード
・ポインタ28が4(ビット幅)×4(パイプライン
数)=16(ビット)である。したがって、マルチプロ
セッサ・システム100中の記憶素子に要するゲート・
サイズは、512(データFIFO)+16(イネーブ
ル・ビット)+64(ネックスト・ポインタ)+16
(ライト・ポインタ)+16(リード・ポインタ)=6
24ビットになる。このように、付加回路を入れても従
来のマルチプロセッサ・システム100に比べてゲート
サイズが小さく、設計・製作は安価で済むことになる。
【0053】C.追補 以上、特定の実施の形態を参照しながら、本発明につい
て詳解してきた。しかしながら、本発明の要旨を逸脱し
ない範囲で当業者が該実施の形態の修正や代用を成し得
ることは自明である。本実施の形態では、マルチプロセ
ッサ・システムを例にしたが、本発明をこれに限定すべ
き根拠はない。また、マルチプロセッサ・システムをテ
クスチャ・マッピングに利用するという形態を説明して
いるが、応用例はこれに限定されるものではない。要す
るに、例示という形態で本発明を開示してきたのであ
り、限定的に解釈されるべきではない。本発明の要旨を
判断するためには、冒頭に記載した特許請求の範囲の欄
を参酌すべきである。
【0054】
【発明の効果】以上詳記したように、本発明によれば、
各並列プロセッサに分配された負荷が一時的にばらつい
ていても、ばらつきを好適に吸収することができる、優
れたマルチプロセッサ装置を提供することができる。本
発明に係るマルチプロセッサ・システムでは、データ入
力用のバッファ(FIFO)を各パイプラインごとに個
別に持たずに、全パイプラインで共有化させている。し
たがって、本発明によれば、各並列プロセッサのFIF
Oの段数(若しくはデータ・バッファのサイズ)を徒に
増大させることなく、負荷のばらつきを吸収することが
できるマルチプロセッサ装置を提供することができる。
また、本発明に係るマルチプロセッサ装置によれば、デ
ータFIFOを共有化することにより、その段数を抑え
ることができる。この結果、使用効率の低いFIFOを
省略することができ、無駄のない回路設計が実現する。
別の見方をすれば、本発明に係るマルチプロセッサ装置
は、同じゲート・サイズでより高速な性能を持ってい
る。さらに、従来のマルチプロセッサ装置では各パイプ
ラインごとに複数段のポインタFIFOを持っていた
が、本発明ではその必要がない。しかも、動作としては
複数段のポインタFIFOを持ったものと同等である。
さらに、本発明のネックスト・ポインタは、その時々で
各パイプラインごとに変動し、その時点で最適な段数を
動的に持つことができる。したがって、パフォーマンス
の向上のためにデータの性質からFIFOの段数を解析
する必要もない。
【図面の簡単な説明】
【図1】 本発明の実施形態にかかるマルチプロセッサ
・システムのハードウェア構成を示す図である。
【図2】 本発明の実施形態にかかるマルチプロセッサ
・システムのリセット時の状態を示す図である。
【図3】 本発明の実施形態にかかるマルチプロセッサ
・システムにおける、書き込み動作を説明するための図
である。
【図4】 ある時点におけるライト・ポインタ20、デ
ータFIFO22、ネックスト・ポインタ29およびリ
ード・ポインタ28の格納内容を概略的に書き込んだ図
である。
【図5】 図4に示した時点の次のタイミングにおける
ライト・ポインタ20、データFIFO22、ネックス
ト・ポインタ29およびリード・ポインタ28の格納内
容を概略的に書き込んだ図である。
【図6】 マルチプロセッサ・システムのハードウェア
構成を概略的に示した図である。
【図7】 図6のマルチプロセッサ・システムにおい
て、各プロセッサに分配された負荷のばらつきの様子を
例示した図である。
【図8】 従来のマルチプロセッサ・システムのハード
ウェア構成を示す図である。
【符号の説明】
10・・・ディスパッチ・プロセッサ、20・・・ライト・ポ
インタ、21・・・マルチプレクサ、22・・・データFIF
O、23・・・イネーブル・ビット、24・・・プライオリテ
ィ・エンコーダ、25・・・セレクト・バス、26・・・デー
タ・バス、27・・・ポインタ・バス、28・・・リード・ポ
インタ、29・・・ネックスト・ポインタ、30・・・並列プ
ロセッサ、40・・・マージ・プロセッサ、100・・・マル
チプロセッサ・システム
───────────────────────────────────────────────────── フロントページの続き (72)発明者 名村 健 神奈川県大和市下鶴間1623番地14 日本ア イ・ビー・エム株式会社 大和事業所内 Fターム(参考) 5B045 AA01 AA03 BB35 GG02 GG17 5B057 AA11 BA24 CA13 CA16 CB16 CC03 CH02 CH05 DA08

Claims (14)

    【特許請求の範囲】
  1. 【請求項1】 逐次受け取ったデータ・セットを複数の
    パイプラインに分配させて処理するデータ処理装置であ
    って、 複数の格納領域を有し、かついずれのパイプラインに分
    配されるものであるか定義して前記データ・セットを一
    時的に格納するデータ・バッファと、 複数の格納領域を有し、前記データ・バッファにおける
    後続データ・セットの格納領域に関する第2情報を一時
    的に格納するネックスト・ポインタと、 前記データ・バッファにおける先行データ・セットの格
    納領域に関する第1情報を一時的に格納し、かつ前記先
    行データ・セットが前記データ・バッファから読み出さ
    れた後に前記第2情報を格納するリード・ポインタと、 を備えていることを特徴とするデータ処理装置。
  2. 【請求項2】 前記データ・バッファと前記ネックスト
    ・ポインタとは、前記複数のパイプラインで共有される
    ものであることを特徴とする請求項1に記載のデータ処
    理装置。
  3. 【請求項3】 前記リード・ポインタは、各パイプライ
    ンごとに設けられるとともに、単一の格納領域からなる
    ことを特徴とする請求項1に記載のデータ処理装置。
  4. 【請求項4】 前記リード・ポインタは、前記先行デー
    タ・セットが読み出された後に、前記第1情報が前記第
    2情報に更新されるものであることを特徴とする請求項
    1に記載のデータ処理装置。
  5. 【請求項5】 データ・セットを格納するN個の格納領
    域を有する第1バッファと、 M個の格納領域を有し、かつ当該各格納領域と前記第1
    バッファの各格納領域とが関連付けられた第2バッファ
    と、を備え、 先行するデータ・セットが前記第1バッファのn番目の
    格納領域に格納され、後続するデータ・セットが前記第
    1バッファの(n+a)番目の格納領域に格納される場
    合に(ただし、a:整数)、 前記第2バッファのn番目の格納領域に、(n+a)を
    前記後続するデータ・セットの格納領域情報として格納
    することを特徴とするデータ処理装置。
  6. 【請求項6】 前記第1バッファのn番目の格納領域に
    格納されたデータ・セットが読み出される際に、前記第
    2バッファのn番目の格納領域に格納された前記格納領
    域情報も読み出されることを特徴とする請求項5に記載
    のデータ処理装置。
  7. 【請求項7】 前記第1バッファの格納領域の数Nと、
    前記第2バッファの格納領域の数Mとは、N=Mの関係
    を有することを特徴とする請求項5に記載のデータ処理
    装置。
  8. 【請求項8】 前記データ処理装置は、前記第2バッフ
    ァから読み出される前記格納領域情報を格納するリード
    ・ポインタを備え、かつ前記リード・ポインタに格納さ
    れた格納領域情報と一致する前記第1バッファの格納領
    域から所定のデータ・セットを読み出すことを特徴とす
    る請求項6に記載のデータ処理装置。
  9. 【請求項9】 逐次受け取ったデータ・セットを複数の
    パイプラインに分配させて処理するデータ処理装置であ
    って、 複数の格納領域を有し、かついずれのパイプラインに分
    配されるものであるか定義して前記データ・セットを一
    時的に格納するデータ・バッファと、 前記データ・バッファに対応する複数の格納領域を有す
    るポインタと、を備え、 前記データ・バッファに前記データ・セットを格納する
    際に、前記データ・セットが格納される格納領域に対応
    する前記ポインタの格納領域に空き格納領域に関する情
    報を格納することを特徴とするデータ処理装置。
  10. 【請求項10】 前記データ・セットが格納される前記
    データ・バッファ中の格納領域に関する情報を、一時的
    に格納するためのライト・ポインタを各パイプラインご
    とに設け、前記空き格納領域に関する情報を前記ライト
    ・ポインタにも格納することを特徴とする請求項9に記
    載のデータ処理装置。
  11. 【請求項11】 逐次受け取ったデータ・セットを複数
    のパイプラインに分散させて処理するマルチプロセッサ
    装置において、 受け取ったデータ・セットを各パイプラインに分配する
    ためのディスパッチ・プロセッサと、 各パイプラインごとに置かれ、自己に分配されたデータ
    ・セットの処理を行うための複数の並列プロセッサと、 前記ディスパッチ・プロセッサが逐次配出する1以上の
    データ・セットを一時的に格納するための複数の格納領
    域を備えたデータ・バッファと、 前記データ・バッファ中に格納されている第1データ・
    セットの前記データ・バッファにおける第1格納領域情
    報、および第1データ・セットの次に同一の前記並列プ
    ロセッサで処理される第2データ・セットの前記データ
    ・バッファにおける第2格納領域情報を格納するための
    ネックスト・ポインタと、 各パイプラインごとに並列プロセッサの前に置かれ、前
    記第1格納領域情報と前記第2格納領域情報を順次格納
    するためのリード・ポインタと、 前記データ・バッファにおける前記第1データ・セット
    および第2データ・セットの格納領域を決定するための
    プライオリティ・エンコーダと、 各パイプラインごとに並列プロセッサと前記リード・ポ
    インタとの間に置かれ、前記リード・ポインタに格納さ
    れた前記第1格納領域情報および前記第2格納領域情報
    に基づいて前記データ・バッファ中の格納領域から前記
    第1データ・セットおよび第2データ・セットを順次読
    み出して並列プロセッサに渡すための複数のマルチプレ
    クサと、を備えることを特徴とするマルチプロセッサ装
    置。
  12. 【請求項12】 前記ネックスト・ポインタは前記デー
    タ・バッファと一致する数の格納領域を有し、かつ前記
    データ・バッファの格納領域と前記ネックスト・ポイン
    タの格納領域が対応付けられていることを特徴とする請
    求項11に記載のマルチプロセッサ装置。
  13. 【請求項13】 並列プロセッサに分配されるべきデー
    タ・セットが前記データ・バッファ中で格納される領域
    の情報を、一時的に格納するためのライト・ポインタを
    備えることを特徴とする請求項11に記載のマルチプロ
    セッサ装置。
  14. 【請求項14】 前記各並列プロセッサが処理したデー
    タ・セットを統合するためのマージ・プロセッサを備え
    ることを特徴とする請求項11に記載のマルチプロセッ
    サ装置。
JP2000118588A 2000-04-19 2000-04-19 データ処理装置およびマルチプロセッサ装置 Pending JP2001306532A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000118588A JP2001306532A (ja) 2000-04-19 2000-04-19 データ処理装置およびマルチプロセッサ装置
US09/838,012 US6813706B2 (en) 2000-04-19 2001-04-19 Data processing system and multiprocessor system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2000118588A JP2001306532A (ja) 2000-04-19 2000-04-19 データ処理装置およびマルチプロセッサ装置
US09/838,012 US6813706B2 (en) 2000-04-19 2001-04-19 Data processing system and multiprocessor system

Publications (1)

Publication Number Publication Date
JP2001306532A true JP2001306532A (ja) 2001-11-02

Family

ID=26590430

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000118588A Pending JP2001306532A (ja) 2000-04-19 2000-04-19 データ処理装置およびマルチプロセッサ装置

Country Status (2)

Country Link
US (1) US6813706B2 (ja)
JP (1) JP2001306532A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007069464A1 (ja) * 2005-12-14 2007-06-21 Sonac Incorporated 待合わせ機構を有する演算装置
JP2010519796A (ja) * 2007-02-09 2010-06-03 クゥアルコム・インコーポレイテッド データ・チャネル情報のプログラム可能なパターンに基づく解凍及び圧縮
KR101475029B1 (ko) * 2013-09-27 2014-12-31 주식회사 포딕스시스템 윈도우 오에스(os) 기반의 디브이알(dvr) 시스템에서 메모리 프로세스 분산기술을 이용한 멀티채널 엔코딩 장치

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7035908B1 (en) * 2001-07-26 2006-04-25 Lsi Logic Corporation Method for multiprocessor communication within a shared memory architecture
US20090238198A1 (en) * 2008-03-20 2009-09-24 Sheng-Chun Niu Packing Switching System and Method
US9596470B1 (en) 2013-09-27 2017-03-14 Ambarella, Inc. Tree-coded video compression with coupled pipelines
CN104699219B (zh) * 2013-12-10 2020-06-23 联想(北京)有限公司 一种电子设备及信息处理方法
US10659396B2 (en) * 2015-08-02 2020-05-19 Wave Computing, Inc. Joining data within a reconfigurable fabric
EP3777185A4 (en) * 2018-04-09 2022-01-05 Nokia Technologies Oy APPARATUS, METHOD AND COMPUTER PROGRAM FOR VOLUMETRIC VIDEO

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1995031769A1 (en) * 1994-05-16 1995-11-23 Apple Computer, Inc. Method and apparatus for associating and storing arbitrary data with graphical user interface elements
JP3090605B2 (ja) * 1995-12-26 2000-09-25 インターナショナル・ビジネス・マシーンズ・コーポレ−ション マルチプロセッサ装置
JPH09297677A (ja) * 1996-05-02 1997-11-18 Fujitsu Ltd 一部のデータ群を消去可能としたfifoバッファ
US6347348B1 (en) * 1998-06-30 2002-02-12 Sun Microsystems, Inc. Buffer management system having an output control configured to retrieve data in response to a retrieval request from a requesting one of a plurality of destinations
US6230191B1 (en) * 1998-10-05 2001-05-08 Alcatel Internetworking (Pe), Inc. Method and apparatus for regulating the amount of buffer memory requested by a port in a multi-port switching device with shared buffer memory
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
US6493706B1 (en) * 1999-10-26 2002-12-10 Cisco Technology, Inc. Arrangement for enhancing weighted element searches in dynamically balanced trees

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007069464A1 (ja) * 2005-12-14 2007-06-21 Sonac Incorporated 待合わせ機構を有する演算装置
JP2010519796A (ja) * 2007-02-09 2010-06-03 クゥアルコム・インコーポレイテッド データ・チャネル情報のプログラム可能なパターンに基づく解凍及び圧縮
US8565519B2 (en) 2007-02-09 2013-10-22 Qualcomm Incorporated Programmable pattern-based unpacking and packing of data channel information
KR101475029B1 (ko) * 2013-09-27 2014-12-31 주식회사 포딕스시스템 윈도우 오에스(os) 기반의 디브이알(dvr) 시스템에서 메모리 프로세스 분산기술을 이용한 멀티채널 엔코딩 장치

Also Published As

Publication number Publication date
US6813706B2 (en) 2004-11-02
US20020166008A1 (en) 2002-11-07

Similar Documents

Publication Publication Date Title
Potmesil et al. The pixel machine: a parallel image computer
US7447873B1 (en) Multithreaded SIMD parallel processor with loading of groups of threads
US7594095B1 (en) Multithreaded SIMD parallel processor with launching of groups of threads
US10019777B2 (en) Scalable high performance 3D graphics
US7633506B1 (en) Parallel pipeline graphics system
JP3009732B2 (ja) 画像発生アーキテクチャおよび装置
CN105630441B (zh) 一种基于统一染色技术的gpu系统
US5185599A (en) Local display bus architecture and communications method for Raster display
JP5366967B2 (ja) タイルベース・レンダリング・システムにおけるマルチコアの形状処理
US5969726A (en) Caching and coherency control of multiple geometry accelerators in a computer graphics system
TW449730B (en) A three dimensional graphic processor
KR960003041B1 (ko) 그래픽 시스템용의 확장 가능한 다영상 버퍼
US5821949A (en) Three-dimensional graphics accelerator with direct data channels for improved performance
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
US20100123717A1 (en) Dynamic Scheduling in a Graphics Processor
US6762763B1 (en) Computer system having a distributed texture memory architecture
US6975322B2 (en) Dynamically adjusting a number of rendering passes in a graphics system
US7747842B1 (en) Configurable output buffer ganging for a parallel processor
GB2245129A (en) Local display bus architecture and communications method for raster display
CN101040270B (zh) 命令传输控制装置和命令传输控制方法
JP2002319032A (ja) 集積回路コンポーネントのシステム
CN103886634A (zh) 利用每像素着色器线程的高效超级采样
JP3090605B2 (ja) マルチプロセッサ装置
JP2001306532A (ja) データ処理装置およびマルチプロセッサ装置
US5777625A (en) Clipper re-uses storage locations allocated for verticles

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070416

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090224

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20090224

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090908