JPH04219859A - 並列プロセッサに直列命令ストリームデータを分散するハードウェアディストリビュータ - Google Patents
並列プロセッサに直列命令ストリームデータを分散するハードウェアディストリビュータInfo
- Publication number
- JPH04219859A JPH04219859A JP3041829A JP4182991A JPH04219859A JP H04219859 A JPH04219859 A JP H04219859A JP 3041829 A JP3041829 A JP 3041829A JP 4182991 A JP4182991 A JP 4182991A JP H04219859 A JPH04219859 A JP H04219859A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- command
- data
- fifo
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Multi Processors (AREA)
- Image Processing (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】
【産業上の利用分野】本発明は、直列命令ストリームデ
ータを並列プロセッサに分散する方法及び装置に関する
ものであり、とりわけ、並列アレイをなすプロセッサ間
で直列ストリームをなす指令/データパケットを分散し
、プロセッサのデータ処理出力を組み換えて、簡単に元
のストリームと同じ配列の直列ストリームになるように
処理できるようにする方法及び装置に関するものである
。
ータを並列プロセッサに分散する方法及び装置に関する
ものであり、とりわけ、並列アレイをなすプロセッサ間
で直列ストリームをなす指令/データパケットを分散し
、プロセッサのデータ処理出力を組み換えて、簡単に元
のストリームと同じ配列の直列ストリームになるように
処理できるようにする方法及び装置に関するものである
。
【0002】
【従来の技術】複数の処理装置を並列に用いることによ
って、処理速度が向上するのは周知のところである。例
えば、複雑なモデルを扱うためにかなりの演算処理を必
要とする対話式3次元グラフィックスのような用途の場
合、処理効率を改善するため、数年間にわたって並列処
理装置が用いられてきた。こうした処理効率の改善には
、1つ以上の並列処理装置に対して最適な入力順次デー
タの割当てを行なうメカニズムが必要になった。また、
元のデータ配列を維持しなければならない場合には、並
列処理装置のそれぞれから出力を読み取って、処理を施
されたデータの再配列を行なって、元のデータストリー
ムと同じ配列になるようにするメカニズムが必要になっ
た。しかしながら、こうした先行技術によるメカニズム
がうまくゆく場合は限定された。
って、処理速度が向上するのは周知のところである。例
えば、複雑なモデルを扱うためにかなりの演算処理を必
要とする対話式3次元グラフィックスのような用途の場
合、処理効率を改善するため、数年間にわたって並列処
理装置が用いられてきた。こうした処理効率の改善には
、1つ以上の並列処理装置に対して最適な入力順次デー
タの割当てを行なうメカニズムが必要になった。また、
元のデータ配列を維持しなければならない場合には、並
列処理装置のそれぞれから出力を読み取って、処理を施
されたデータの再配列を行なって、元のデータストリー
ムと同じ配列になるようにするメカニズムが必要になっ
た。しかしながら、こうした先行技術によるメカニズム
がうまくゆく場合は限定された。
【0003】例えば、順次入力データを複数の並列処理
装置に割り当てる先行技術による技法の1つでは、並列
処理装置の1つをマスターとして割り当て、他の処理装
置はスレーブとして働くようにした。マスターは、普通
、適応ロード平衡アルゴリズムに従って、スレーブに対
して指令を送り出し、入力を受ける次の処理装置として
、バッファリングを施された仕事量が最も少ないスレー
ブを選択する。全てのスレーブが完全に入力バッファス
ペース外にある場合には、マスターが、活動処理装置に
なる。スレーブが、入力バッファスペースを利用できる
ようになり、最小数の指令が実行されるまで、マスター
は、活動処理装置であり続ける。マスターの指令ブロッ
クの最小サイズと、スレーブに与えられる指令ブロック
のサイズに調整を加えて、処理効率を高めることができ
る。さらに、割り当てられた処理装置における処理がす
んだ後、処理されたデータに確実に再順序づけが行なえ
るようにするため、マスターは、特定の指令が割り当て
られたスレーブ処理装置を識別する値をRAM FI
FOに書き込むことができる。RAM FIFOへの
書込み順によって、マスターは、マスターの入力バッフ
ァにおいて指令を受信した元の順序と同じ再現順序を維
持することが可能になる。
装置に割り当てる先行技術による技法の1つでは、並列
処理装置の1つをマスターとして割り当て、他の処理装
置はスレーブとして働くようにした。マスターは、普通
、適応ロード平衡アルゴリズムに従って、スレーブに対
して指令を送り出し、入力を受ける次の処理装置として
、バッファリングを施された仕事量が最も少ないスレー
ブを選択する。全てのスレーブが完全に入力バッファス
ペース外にある場合には、マスターが、活動処理装置に
なる。スレーブが、入力バッファスペースを利用できる
ようになり、最小数の指令が実行されるまで、マスター
は、活動処理装置であり続ける。マスターの指令ブロッ
クの最小サイズと、スレーブに与えられる指令ブロック
のサイズに調整を加えて、処理効率を高めることができ
る。さらに、割り当てられた処理装置における処理がす
んだ後、処理されたデータに確実に再順序づけが行なえ
るようにするため、マスターは、特定の指令が割り当て
られたスレーブ処理装置を識別する値をRAM FI
FOに書き込むことができる。RAM FIFOへの
書込み順によって、マスターは、マスターの入力バッフ
ァにおいて指令を受信した元の順序と同じ再現順序を維
持することが可能になる。
【0004】しかし、こうした技法には、処理装置の全
てが同じとは限らないし、同じプログラミングを施すわ
けにもいかないので、システムのコストが 複雑性が
増すという欠点がある。さらに、1つ以上のスレーブ処
理装置が複雑なデータ処理指令にかかりっきりになって
いる場合、並列処理の利点が、すぐに失われる可能性が
ある。
てが同じとは限らないし、同じプログラミングを施すわ
けにもいかないので、システムのコストが 複雑性が
増すという欠点がある。さらに、1つ以上のスレーブ処
理装置が複雑なデータ処理指令にかかりっきりになって
いる場合、並列処理の利点が、すぐに失われる可能性が
ある。
【0005】順次入力データを複数の並列処理装置に割
り当てる先行技術によるもう1つの技法については、例
えば、1987年7月の「Proceedings o
f SIGGRAPH」第21巻第4号におけるトーボ
ルグ(Torborg)による「A Parellel
Processor Architecture f
or Graphics and Arithmeti
c Operations(グラフィックス及び算術演
算用並列処理アーキテクチャ)」に記載がある。その論
文で、トーボルグ(Torborg)は、各プロセッサ
が単一のプロセッサシステムであるかのように同じプロ
グラミングが施された、並列に動作する任意の数の同じ
プロセッサから成るグラフィックスプロセッサアーキテ
クチャについて説明している。すなわち、トーボルグ(
Torborg)の開示によれば、8つまでの演算プロ
セッサにおける並列処理を利用して、フロントエンド幾
何学的及び算術演算を行なうことによって、対話式3次
元グラフィックスシステムの処理時間を短縮することが
できる。また、トーボルグ(Torborg)の述べる
ところによれば、プロセッサ間においてグラフィックス
指令を十分に分散させることによって、プロセッサを効
率よく利用しなければならないし、多重並列プロセッサ
は、同じ演算を行なって、単一プロセッサと見掛け上、
同じ結果を出さなければならない。
り当てる先行技術によるもう1つの技法については、例
えば、1987年7月の「Proceedings o
f SIGGRAPH」第21巻第4号におけるトーボ
ルグ(Torborg)による「A Parellel
Processor Architecture f
or Graphics and Arithmeti
c Operations(グラフィックス及び算術演
算用並列処理アーキテクチャ)」に記載がある。その論
文で、トーボルグ(Torborg)は、各プロセッサ
が単一のプロセッサシステムであるかのように同じプロ
グラミングが施された、並列に動作する任意の数の同じ
プロセッサから成るグラフィックスプロセッサアーキテ
クチャについて説明している。すなわち、トーボルグ(
Torborg)の開示によれば、8つまでの演算プロ
セッサにおける並列処理を利用して、フロントエンド幾
何学的及び算術演算を行なうことによって、対話式3次
元グラフィックスシステムの処理時間を短縮することが
できる。また、トーボルグ(Torborg)の述べる
ところによれば、プロセッサ間においてグラフィックス
指令を十分に分散させることによって、プロセッサを効
率よく利用しなければならないし、多重並列プロセッサ
は、同じ演算を行なって、単一プロセッサと見掛け上、
同じ結果を出さなければならない。
【0006】トーボルグ(Torborg)によれば、
そのシステムの実施において、多くのグラフィックス指
令は、順序が自由であり、従って、その処理及び再現の
順序は、表示に影響を及ぼすことなく変更することが可
能である。ただし、トーボルグ(Torborg)は、
順序が自由ではないグラフィック指令の場合、順次指令
の処理を行なう前に、全てのプロセッサの同期がとれる
まで、他の指令の処理を行なっているプロセッサを遅延
させることを提案している。トーボルグ(Torbor
g)の指摘によれば、プロセッサの出力に対するバッフ
ァリングのため、この同期が処理効率に及ぼす影響は最
小限にとどまるということである。
そのシステムの実施において、多くのグラフィックス指
令は、順序が自由であり、従って、その処理及び再現の
順序は、表示に影響を及ぼすことなく変更することが可
能である。ただし、トーボルグ(Torborg)は、
順序が自由ではないグラフィック指令の場合、順次指令
の処理を行なう前に、全てのプロセッサの同期がとれる
まで、他の指令の処理を行なっているプロセッサを遅延
させることを提案している。トーボルグ(Torbor
g)の指摘によれば、プロセッサの出力に対するバッフ
ァリングのため、この同期が処理効率に及ぼす影響は最
小限にとどまるということである。
【0007】トーボルグ(Torborg)は、さらに
、データが利用可能であれば、また、適合する演算プロ
セッサのデータに対する準備が整えば、必ず、並列演算
プロセッサにパイプライン処理データを転送するように
提案している。グラフィックス指令は、入力される指令
が、全ての演算プロセッサに送信すべき大域指令である
か、指令調停機構によって決まる指令を受ける準備が最
も整った演算プロセッサに送信すべき指令であるか、グ
ラフィックス指令内において指定された特定の演算プロ
セッサに送信すべき指令であるかに従って、演算プロセ
ッサに分散される。指令調停を利用して、並列処理が可
能な場合、どの演算プロセッサが指令を受けるべきかが
決定される。調停機構、指令を受ける準備が最も整って
いるプロセッサに優先権を与えることによって処理効率
を高めるため、プロセッサ間において指令を適当に分散
させようとする。このため、トーボルグ(Torbor
g)の開示によれば、各プロセッサは、表示リストマネ
ージャからの指令にバッファリングを施すのに用いられ
る指令入力バッファを備えることができる。バッファは
十分に深いので、いくつかの指令を同時に収容すること
ができ、入力バッファにおけるデータ量に従って、さま
ざまな優先レベルで指令を要求することが可能である。 従って、分散の優先権は、入力バッファの状況が示すと
ころに従って、処理時間が最短の指令を実行するプロセ
ッサに対して与えられる。
、データが利用可能であれば、また、適合する演算プロ
セッサのデータに対する準備が整えば、必ず、並列演算
プロセッサにパイプライン処理データを転送するように
提案している。グラフィックス指令は、入力される指令
が、全ての演算プロセッサに送信すべき大域指令である
か、指令調停機構によって決まる指令を受ける準備が最
も整った演算プロセッサに送信すべき指令であるか、グ
ラフィックス指令内において指定された特定の演算プロ
セッサに送信すべき指令であるかに従って、演算プロセ
ッサに分散される。指令調停を利用して、並列処理が可
能な場合、どの演算プロセッサが指令を受けるべきかが
決定される。調停機構、指令を受ける準備が最も整って
いるプロセッサに優先権を与えることによって処理効率
を高めるため、プロセッサ間において指令を適当に分散
させようとする。このため、トーボルグ(Torbor
g)の開示によれば、各プロセッサは、表示リストマネ
ージャからの指令にバッファリングを施すのに用いられ
る指令入力バッファを備えることができる。バッファは
十分に深いので、いくつかの指令を同時に収容すること
ができ、入力バッファにおけるデータ量に従って、さま
ざまな優先レベルで指令を要求することが可能である。 従って、分散の優先権は、入力バッファの状況が示すと
ころに従って、処理時間が最短の指令を実行するプロセ
ッサに対して与えられる。
【0008】順序づけは、トーボルグ(Torborg
)のシステムの場合、各プロセッサ毎に小規模なタグF
IFOを維持して、全ての演算プロセッサによって処理
される全ての順次指令と、タグFIFOを含む特定のプ
ロセッサによって処理される全ての指令の順序づけを記
録しておくことによって維持されるのが普通である。ト
ーボルグ(Torborg)によれば、タグFIFOの
2ビット入力を利用して、指令が、タグFIFOを含む
特定の演算プロセッサによって処理されているかどうか
、及び、指令が順次指令かどうかが示される。タグFI
FOの出力を利用して、順序に従う全ての指令の順次処
理が確実に行なわれるようにし、処理したデータをイメ
ージ記憶装置に転送して、後続の表示を行なう順序に制
御を加える。 すなわち、タグFIFOの出力を利用して、並列グラフ
ィックス処理装置をイメージ記憶装置に継続するバスに
関する調停が制御される。例えば、タグFIFOの2つ
の制御ビットが、指令が順次的でないことを表わしてい
る場合、完全な指令ブロックが利用可能になるとすぐに
、出力コントローラがバスの要求を行なう。この場合、
指令がイメージ記憶装置に転送される順序は、全てのプ
ロセッサのプロセッサロード及び指令分散によって決ま
る。単一のグラフィックス入力指令に関連した各指令グ
ループが、バスを介してイメージ記憶装置に転送される
毎に、タグFIFO出力の刻時が行なわれる。
)のシステムの場合、各プロセッサ毎に小規模なタグF
IFOを維持して、全ての演算プロセッサによって処理
される全ての順次指令と、タグFIFOを含む特定のプ
ロセッサによって処理される全ての指令の順序づけを記
録しておくことによって維持されるのが普通である。ト
ーボルグ(Torborg)によれば、タグFIFOの
2ビット入力を利用して、指令が、タグFIFOを含む
特定の演算プロセッサによって処理されているかどうか
、及び、指令が順次指令かどうかが示される。タグFI
FOの出力を利用して、順序に従う全ての指令の順次処
理が確実に行なわれるようにし、処理したデータをイメ
ージ記憶装置に転送して、後続の表示を行なう順序に制
御を加える。 すなわち、タグFIFOの出力を利用して、並列グラフ
ィックス処理装置をイメージ記憶装置に継続するバスに
関する調停が制御される。例えば、タグFIFOの2つ
の制御ビットが、指令が順次的でないことを表わしてい
る場合、完全な指令ブロックが利用可能になるとすぐに
、出力コントローラがバスの要求を行なう。この場合、
指令がイメージ記憶装置に転送される順序は、全てのプ
ロセッサのプロセッサロード及び指令分散によって決ま
る。単一のグラフィックス入力指令に関連した各指令グ
ループが、バスを介してイメージ記憶装置に転送される
毎に、タグFIFO出力の刻時が行なわれる。
【0009】タグFIFOが順次指令であることを示す
と、出力コントローラは、他の全ての演算プロセッサの
出力コントローラが、同期を目的として、元の指令スト
リームの同じポイントに達するまで、待機する。すなわ
ち、出力コントローラは、全ての演算プロセッサが、特
定の順次指令に対応するタグFIFOの項目に達して、
演算プロセッサの同期がとれるまで待機し、それから、
順次指令が出力されて、処理を受けるようにする。トー
ボルグ(Torborg)のシステムにおける全てのプ
ロセッサが、全ての順次指令に関してそのタグFIFO
に項目を入力するので(その指令がそのプロセッサで処
理されない場合でも)、全てのプロセッサのタグFIF
Oは、順次指令を表わすが、1つだけ、その指令がその
プロセッサによって処理されたことを表わすことになる
。順次指令の処理を行なったプロセッサは、次に、バス
を要求し、グラフィックス入力指令に関連した指令のグ
ループをイメージ記憶装置に送る。この指令の転送が完
了すると、全ての演算プロセッサのタグFIFO出力が
刻時される。上述のように、トーボルグ(Torbor
g)の指摘によれば、このシステムの場合、プロセッサ
コアは、出力コントローラが、順次性を維持するために
、全てのプロセッサの同期をとっている間中、プロセッ
サの出力FIFOに指令を転送し続けることができるの
で、処理効率が維持される。 従って、トーボルグ(
Torborg)のシステムには、複数の並列プロセッ
サに順次指令を割り当て、出力バス調停に関してタグF
IFOに記憶された値を利用して、処理された出力を元
の配列に組み換えるメカニズムが設けられている。ただ
し、タグ値は、各プロセッサ毎に別個に維持しなければ
ならないし、順次性は、順次命令の受信時に、全プロセ
ッサの出力を同期させて維持しなければならない。結果
として、特に、いくつかの大域(順次)命令を順次受信
する場合、処理効率は極めて低くなる可能性がある。さ
らに、指令ストリームを再配列して、並列処理能力を最
大限に利用できるようにするのは不可能である。従って
、入力バッファのサイズに比較して実行時間が長くなる
可能性のあるBスプラインパッチのような複雑な入力グ
ラフィックスプリミティブを受信する場合、処理の効率
がさらに低下する可能性がある。
と、出力コントローラは、他の全ての演算プロセッサの
出力コントローラが、同期を目的として、元の指令スト
リームの同じポイントに達するまで、待機する。すなわ
ち、出力コントローラは、全ての演算プロセッサが、特
定の順次指令に対応するタグFIFOの項目に達して、
演算プロセッサの同期がとれるまで待機し、それから、
順次指令が出力されて、処理を受けるようにする。トー
ボルグ(Torborg)のシステムにおける全てのプ
ロセッサが、全ての順次指令に関してそのタグFIFO
に項目を入力するので(その指令がそのプロセッサで処
理されない場合でも)、全てのプロセッサのタグFIF
Oは、順次指令を表わすが、1つだけ、その指令がその
プロセッサによって処理されたことを表わすことになる
。順次指令の処理を行なったプロセッサは、次に、バス
を要求し、グラフィックス入力指令に関連した指令のグ
ループをイメージ記憶装置に送る。この指令の転送が完
了すると、全ての演算プロセッサのタグFIFO出力が
刻時される。上述のように、トーボルグ(Torbor
g)の指摘によれば、このシステムの場合、プロセッサ
コアは、出力コントローラが、順次性を維持するために
、全てのプロセッサの同期をとっている間中、プロセッ
サの出力FIFOに指令を転送し続けることができるの
で、処理効率が維持される。 従って、トーボルグ(
Torborg)のシステムには、複数の並列プロセッ
サに順次指令を割り当て、出力バス調停に関してタグF
IFOに記憶された値を利用して、処理された出力を元
の配列に組み換えるメカニズムが設けられている。ただ
し、タグ値は、各プロセッサ毎に別個に維持しなければ
ならないし、順次性は、順次命令の受信時に、全プロセ
ッサの出力を同期させて維持しなければならない。結果
として、特に、いくつかの大域(順次)命令を順次受信
する場合、処理効率は極めて低くなる可能性がある。さ
らに、指令ストリームを再配列して、並列処理能力を最
大限に利用できるようにするのは不可能である。従って
、入力バッファのサイズに比較して実行時間が長くなる
可能性のあるBスプラインパッチのような複雑な入力グ
ラフィックスプリミティブを受信する場合、処理の効率
がさらに低下する可能性がある。
【0010】
【発明が解決しようとする課題】従って、直列命令スト
リームをなすデータ指令を同じ並列処理装置に分散して
、処理を実施させ、それによって、処理データの組み換
えを行ない、各順次指令毎に、処理効率を損うことにな
る。全プロセッサの同期をとらなくても、順次性を維持
できるようにすることが可能な指令分散装置が、長年に
わたって必要と考えられてきた。さらに、複雑な指令を
分割して、複数の並列プロセッサに分散し、出力データ
ストリームの順次性を破壊することなく、処理が行なえ
るようにすることが可能な指令分散装置が、長年にわた
って必要と考えられてきた。本発明は、こうした目的に
合わせて設計されたものである。
リームをなすデータ指令を同じ並列処理装置に分散して
、処理を実施させ、それによって、処理データの組み換
えを行ない、各順次指令毎に、処理効率を損うことにな
る。全プロセッサの同期をとらなくても、順次性を維持
できるようにすることが可能な指令分散装置が、長年に
わたって必要と考えられてきた。さらに、複雑な指令を
分割して、複数の並列プロセッサに分散し、出力データ
ストリームの順次性を破壊することなく、処理が行なえ
るようにすることが可能な指令分散装置が、長年にわた
って必要と考えられてきた。本発明は、こうした目的に
合わせて設計されたものである。
【0011】
【課題を解決するための手段】上述の長年にわたって感
じられてきた要求が、高速バス調停ハードウェアを利用
して、真の「先着順サービス」に基づき、直列命令スト
リームをなすデータを複数の並列処理装置に分散するハ
ードウェア分散装置に関連した本発明によって満たされ
た。先行技術におけるように、指令にパージングを施し
ロード平衡演算を行なうのに、複合プロセッサを必要と
はしない。さらに、本発明によって、処理後、全指令ス
トリームを適正な順序に組み換えることが可能になり、
また、かなりの処理を必要とする単一の指令を全てのプ
ロセッサで並列に実行し、その結果の各部分が異なるプ
ロセッサから得られ、再順序づけ時にその順序が破壊さ
れないようにすることも可能になる。さらに、同期が不
要のため、全てのプロセッサの準備が整うまで待つ代り
に、第1のプロセッサがそれ以上の仕事に対して準備が
整っていれば、大域指令を送ることができる。本発明の
システムは、従って、処理効率の大幅な改善を可能にす
る。
じられてきた要求が、高速バス調停ハードウェアを利用
して、真の「先着順サービス」に基づき、直列命令スト
リームをなすデータを複数の並列処理装置に分散するハ
ードウェア分散装置に関連した本発明によって満たされ
た。先行技術におけるように、指令にパージングを施し
ロード平衡演算を行なうのに、複合プロセッサを必要と
はしない。さらに、本発明によって、処理後、全指令ス
トリームを適正な順序に組み換えることが可能になり、
また、かなりの処理を必要とする単一の指令を全てのプ
ロセッサで並列に実行し、その結果の各部分が異なるプ
ロセッサから得られ、再順序づけ時にその順序が破壊さ
れないようにすることも可能になる。さらに、同期が不
要のため、全てのプロセッサの準備が整うまで待つ代り
に、第1のプロセッサがそれ以上の仕事に対して準備が
整っていれば、大域指令を送ることができる。本発明の
システムは、従って、処理効率の大幅な改善を可能にす
る。
【0012】本発明によれば、直列ストリームをなすデ
ータ処理指令及び関連するデータを1つ以上の並列処理
装置に分散して、処理が加えられるようにするための装
置が得られる。処理されたデータは、その後、組み換え
て、直列処理データストリームにすることもできる。本
発明によるデータ分散装置は、直列命令ストリームをな
すデータ処理指令及び関連データを提供する手段、及び
、処理装置のどれかが入力を受けて、処理することが可
能か否かを表わす手段を備えている。また、直列命令ス
トリームをなすデータ処理指令及び関連データの各指令
毎に、提供手段によって提供されるそれぞれの指令毎に
処理を行なう処理装置として、データ処理装置の選択を
行なう手段が設けられているが、この場合、選択処理装
置は、入力データを受けて、処理を行なうことができる
ものとして、表示手段によって示される処理装置である
。さらに、提供手段からの各指令が、それぞれ、処理に
合わせて割り当てられる、処理装置を表わした処理装置
識別値を記録する手段が設けられている。記録手段に記
憶されているそれぞれの処理装置識別値によって指定さ
れる順序で各データ処理装置の出力を順次読み取ること
によって、データ処理装置からの処理データを組み合わ
せて、直列処理データストリームにする手段を設けるこ
とも可能である。
ータ処理指令及び関連するデータを1つ以上の並列処理
装置に分散して、処理が加えられるようにするための装
置が得られる。処理されたデータは、その後、組み換え
て、直列処理データストリームにすることもできる。本
発明によるデータ分散装置は、直列命令ストリームをな
すデータ処理指令及び関連データを提供する手段、及び
、処理装置のどれかが入力を受けて、処理することが可
能か否かを表わす手段を備えている。また、直列命令ス
トリームをなすデータ処理指令及び関連データの各指令
毎に、提供手段によって提供されるそれぞれの指令毎に
処理を行なう処理装置として、データ処理装置の選択を
行なう手段が設けられているが、この場合、選択処理装
置は、入力データを受けて、処理を行なうことができる
ものとして、表示手段によって示される処理装置である
。さらに、提供手段からの各指令が、それぞれ、処理に
合わせて割り当てられる、処理装置を表わした処理装置
識別値を記録する手段が設けられている。記録手段に記
憶されているそれぞれの処理装置識別値によって指定さ
れる順序で各データ処理装置の出力を順次読み取ること
によって、データ処理装置からの処理データを組み合わ
せて、直列処理データストリームにする手段を設けるこ
とも可能である。
【0013】本発明による分散装置は、グラフィックス
指令及びグラフィックスプリミティブからなる指令/デ
ータパケットを複数のグラフィックス処理装置に分散し
、対話式3次元グラフィックス用途に関する処理効率の
改善を可能にするために用いるのが望ましい。ただし、
当該技術の熟練者には明らかなように、本発明による分
散技法は、並列処理技法が用いられる他の多くの処理環
境に適用することが可能である。
指令及びグラフィックスプリミティブからなる指令/デ
ータパケットを複数のグラフィックス処理装置に分散し
、対話式3次元グラフィックス用途に関する処理効率の
改善を可能にするために用いるのが望ましい。ただし、
当該技術の熟練者には明らかなように、本発明による分
散技法は、並列処理技法が用いられる他の多くの処理環
境に適用することが可能である。
【0014】望ましい実施例の場合、各プロセッサは、
「グリーディ(greedy)」アルゴリズムを組み込
んでおり、これによって、入力は、真の「先着順サービ
ス(firstcome, first servic
ed)」に基づいて要求されることになる。こうしたア
ルゴリズムは、各処理装置毎に入力FIFOを設け、関
連処理装置によって処理される指令/データパケットを
待ち合わせて、処理装置が、その入力FIFOから指令
/データパケットを読み取ろうとするが、入力FIFO
が、ほぼ空の場合、プロセッサ「準備完了」信号を発生
させることによって実現する。 一方、処理装置が、その処理がほぼ完了し、その入力F
IFOがほぼ空であることを表示すると、本発明に従っ
てプロセッサ「準備完了」信号が発生するようにするこ
ともできる。
「グリーディ(greedy)」アルゴリズムを組み込
んでおり、これによって、入力は、真の「先着順サービ
ス(firstcome, first servic
ed)」に基づいて要求されることになる。こうしたア
ルゴリズムは、各処理装置毎に入力FIFOを設け、関
連処理装置によって処理される指令/データパケットを
待ち合わせて、処理装置が、その入力FIFOから指令
/データパケットを読み取ろうとするが、入力FIFO
が、ほぼ空の場合、プロセッサ「準備完了」信号を発生
させることによって実現する。 一方、処理装置が、その処理がほぼ完了し、その入力F
IFOがほぼ空であることを表示すると、本発明に従っ
てプロセッサ「準備完了」信号が発生するようにするこ
ともできる。
【0015】本発明のもう1つの望ましい実施例によれ
ば、選択手段が、ソースFIFOにおける次の指令/デ
ータパケットのタイプ、次の指令を処理することになる
プロセッサの数を決め、また、表示手段が、ある処理装
置が入力データを設けて、処理を施すことができること
を示しているか否かを判定し、次に、少なくとも、表示
手段が、データを受けて、処理を施すことが可能である
と表示した処理装置の入力ラインを使用可能にする。さ
らに、表示手段が、2つ以上の処理装置が、入力として
データを受けることができると表示した場合には、選択
手段は、調停によって処理装置の1つを選択することが
できる。選択手段は、また、各指令/データパケットが
割り当てられる処理装置のための記録手段に処理装置識
別値を書き込む機能を備えるのが望ましい。
ば、選択手段が、ソースFIFOにおける次の指令/デ
ータパケットのタイプ、次の指令を処理することになる
プロセッサの数を決め、また、表示手段が、ある処理装
置が入力データを設けて、処理を施すことができること
を示しているか否かを判定し、次に、少なくとも、表示
手段が、データを受けて、処理を施すことが可能である
と表示した処理装置の入力ラインを使用可能にする。さ
らに、表示手段が、2つ以上の処理装置が、入力として
データを受けることができると表示した場合には、選択
手段は、調停によって処理装置の1つを選択することが
できる。選択手段は、また、各指令/データパケットが
割り当てられる処理装置のための記録手段に処理装置識
別値を書き込む機能を備えるのが望ましい。
【0016】本発明の望ましい実施例による記録手段は
、処理装置識別値が順次記憶される一次シーケンスFI
FOと、処理装置識別値が、2つ以上の処理装置によっ
て処理される指令の場合に順次記憶される代替シーケン
スFIFOから構成されるのが望ましい。動作時、選択
手段は、2つ以上の処理装置によって処理されることに
なる指令の場合、2つ以上の処理装置によって処理され
る指令の処理を実施する各処理装置に、代替シーケンス
FIFOに処理装置識別値を書き込まなければならない
旨の指示を行なう代替フラグを一次シーケンスに対して
書き込むのが望ましい。次に、2つ以上の処理装置によ
って処理されることになる指令の処理が全て完了すると
、この時点で、一次シーケンスFIFOに処理単位識別
値を書き込まなければならない旨の指示を行なうスイッ
チフラグが、代替シーケンスFIFOに書き込まれる。 この記憶技法の結果として、組合せ手段は、一次シーケ
ンスFIFOから代替フラグを読み取るまで、処理装置
識別値を順次読み取り、読み取った処理装置識別値に対
応する処理装置の出力から処理データの読取りを行ない
、代替フラグを読み取った時点で、スイッチフラグを読
み取るまで、代替シーケンスFIFOから処理装置識別
値を順次読み取り、読み取った処理装置識別値に対応す
る処理装置の出力から処理データを読み取ることによっ
て、元のデータシーケンスを簡単に回復することができ
る。この結果、並列プロセッサを繰返し同期させなくて
も、元の指令順序づけの保持が可能になり、単一の命令
を複数の並列プロセッサによって、並列に処理すること
が可能になる。
、処理装置識別値が順次記憶される一次シーケンスFI
FOと、処理装置識別値が、2つ以上の処理装置によっ
て処理される指令の場合に順次記憶される代替シーケン
スFIFOから構成されるのが望ましい。動作時、選択
手段は、2つ以上の処理装置によって処理されることに
なる指令の場合、2つ以上の処理装置によって処理され
る指令の処理を実施する各処理装置に、代替シーケンス
FIFOに処理装置識別値を書き込まなければならない
旨の指示を行なう代替フラグを一次シーケンスに対して
書き込むのが望ましい。次に、2つ以上の処理装置によ
って処理されることになる指令の処理が全て完了すると
、この時点で、一次シーケンスFIFOに処理単位識別
値を書き込まなければならない旨の指示を行なうスイッ
チフラグが、代替シーケンスFIFOに書き込まれる。 この記憶技法の結果として、組合せ手段は、一次シーケ
ンスFIFOから代替フラグを読み取るまで、処理装置
識別値を順次読み取り、読み取った処理装置識別値に対
応する処理装置の出力から処理データの読取りを行ない
、代替フラグを読み取った時点で、スイッチフラグを読
み取るまで、代替シーケンスFIFOから処理装置識別
値を順次読み取り、読み取った処理装置識別値に対応す
る処理装置の出力から処理データを読み取ることによっ
て、元のデータシーケンスを簡単に回復することができ
る。この結果、並列プロセッサを繰返し同期させなくて
も、元の指令順序づけの保持が可能になり、単一の命令
を複数の並列プロセッサによって、並列に処理すること
が可能になる。
【0017】本発明は、また、直列ストリームをなすデ
ータ処理指令及び関連データを1つ以上の並列データ処
理装置に分散して、処理が施されるようにする方法によ
っても構成される。本発明によるこの方法は、一般に:
直列ストリームをなすデータ処理指令及び関連データを
提供するステップと;一つ以上の処理装置のどれかが、
入力データを受けて、処理を行なうことができるか否か
を表示するステップと;直列ストリームをなすデータ処
理指令及び関連データにおける各指令毎に、それぞれの
指令を処理する処理装置として、入力データを受けて、
処理を行なうことが可能な処理装置を選択するステップ
と;各指令をそれぞれ処理する処理装置を表わす処理装
置識別値を記録するステップから構成される。
ータ処理指令及び関連データを1つ以上の並列データ処
理装置に分散して、処理が施されるようにする方法によ
っても構成される。本発明によるこの方法は、一般に:
直列ストリームをなすデータ処理指令及び関連データを
提供するステップと;一つ以上の処理装置のどれかが、
入力データを受けて、処理を行なうことができるか否か
を表示するステップと;直列ストリームをなすデータ処
理指令及び関連データにおける各指令毎に、それぞれの
指令を処理する処理装置として、入力データを受けて、
処理を行なうことが可能な処理装置を選択するステップ
と;各指令をそれぞれ処理する処理装置を表わす処理装
置識別値を記録するステップから構成される。
【0018】本発明による方法には、引続き、それぞれ
の記録された処理装置識別値で指定の各処理装置の出力
を順次読み取ることによって、処理データを組み換えて
、直列処理データストリームにするステップを含むこと
も可能である。
の記録された処理装置識別値で指定の各処理装置の出力
を順次読み取ることによって、処理データを組み換えて
、直列処理データストリームにするステップを含むこと
も可能である。
【0019】本発明による方法は、とりわけ、記録ステ
ップが、処理装置識別値を一次シーケンスFIFOに順
次記憶するステップと、入力指令が、2つ以上の処理装
置によって処理を施されるものである場合には、処理装
置識別値を代替シーケンスFIFOに順次記憶するステ
ップから成る点を特徴とする。本発明の望ましい方法に
よる記録ステップには、2つ以上の処理装置によって処
理を施されることになる指令の場合には、2つ以上の処
理装置によって処理される指令の処理を行なう各処理装
置毎に、代替シーケンスFIFOに処理装置識別値を書
き込まなければならない旨の指示を行なう代替フラグを
一次シーケンスに対して書き込むステップと、2つ以上
の処理装置によって処理されることになる指令の処理が
全て完了すると、この時点で、一次シーケンスFIFO
に処理単位識別値を書き込まなければならない旨の指示
を行なうスイッチフラグを代替シーケンスFIFOに書
き込むステップも含まれている。この処理シーケンス記
録技法の結果として、元のデータシーケンスは、一次シ
ーケンスFIFOから代替フラグを読み取るまで、処理
装置識別値を一次シーケンスFIFOから順次読み取り
、読み取った処理装置識別値に対応する処理装置の出力
から処理データの読取りを行ない、代替フラグを読み取
ると、スイッチフラグを読み取るまで、代替シーケンス
FIFOから処理装置識別値を順次読み取り、読み取っ
た処理装置識別値に対応する処理装置の出力から処理デ
ータを読み取ることによって再編成することができる。
ップが、処理装置識別値を一次シーケンスFIFOに順
次記憶するステップと、入力指令が、2つ以上の処理装
置によって処理を施されるものである場合には、処理装
置識別値を代替シーケンスFIFOに順次記憶するステ
ップから成る点を特徴とする。本発明の望ましい方法に
よる記録ステップには、2つ以上の処理装置によって処
理を施されることになる指令の場合には、2つ以上の処
理装置によって処理される指令の処理を行なう各処理装
置毎に、代替シーケンスFIFOに処理装置識別値を書
き込まなければならない旨の指示を行なう代替フラグを
一次シーケンスに対して書き込むステップと、2つ以上
の処理装置によって処理されることになる指令の処理が
全て完了すると、この時点で、一次シーケンスFIFO
に処理単位識別値を書き込まなければならない旨の指示
を行なうスイッチフラグを代替シーケンスFIFOに書
き込むステップも含まれている。この処理シーケンス記
録技法の結果として、元のデータシーケンスは、一次シ
ーケンスFIFOから代替フラグを読み取るまで、処理
装置識別値を一次シーケンスFIFOから順次読み取り
、読み取った処理装置識別値に対応する処理装置の出力
から処理データの読取りを行ない、代替フラグを読み取
ると、スイッチフラグを読み取るまで、代替シーケンス
FIFOから処理装置識別値を順次読み取り、読み取っ
た処理装置識別値に対応する処理装置の出力から処理デ
ータを読み取ることによって再編成することができる。
【0020】従って、本発明は、順次指令に関して並列
プロセッサの繰返し同期を必要とせずに、パイプライン
処理を施したグラフィックス指令/データパケットとい
った順次データストリームを複数の並列プロセッサに対
して分散できるように構成することが望ましい。さらに
、本発明は、全ての入力指令/データパケットを配列す
るシーケンスを維持しなければならないという基本的仮
定に基づいて機能するので、処理機能の融通性を高め、
処理速度を増すことが可能になる。
プロセッサの繰返し同期を必要とせずに、パイプライン
処理を施したグラフィックス指令/データパケットとい
った順次データストリームを複数の並列プロセッサに対
して分散できるように構成することが望ましい。さらに
、本発明は、全ての入力指令/データパケットを配列す
るシーケンスを維持しなければならないという基本的仮
定に基づいて機能するので、処理機能の融通性を高め、
処理速度を増すことが可能になる。
【0021】
【実施例】本書に開示し、請求した内容の発明者は、直
列命令ストリームをなすデータを並列プロセッサに分散
するハードウェア分散装置、及び、前記分散装置によっ
て、データ処理の効率が高められるようにする方法を開
発することによって、当該技術において長年にわたって
いだかれてきた要求を満たした。本発明によれば、高速
バス調停ハードウェアを用いて、真の「先着順サービス
」または「グリーディ」アルゴリズムを利用する処理装
置に直列データストリームを分配することによって、指
令にパージングを施し、ロード平衡アルゴリズムを実現
するのに、複合プロセッサが必要でなくなるようにする
。本発明は、また、かなりの処理を必要とする単一の指
令が、複数のプロセッサによって並列に実行され、結果
の各部分が異なるプロセッサから得られる場合でも、処
理後に、全体指令ストリームを適正な順序に組み換える
ことを可能にする。
列命令ストリームをなすデータを並列プロセッサに分散
するハードウェア分散装置、及び、前記分散装置によっ
て、データ処理の効率が高められるようにする方法を開
発することによって、当該技術において長年にわたって
いだかれてきた要求を満たした。本発明によれば、高速
バス調停ハードウェアを用いて、真の「先着順サービス
」または「グリーディ」アルゴリズムを利用する処理装
置に直列データストリームを分配することによって、指
令にパージングを施し、ロード平衡アルゴリズムを実現
するのに、複合プロセッサが必要でなくなるようにする
。本発明は、また、かなりの処理を必要とする単一の指
令が、複数のプロセッサによって並列に実行され、結果
の各部分が異なるプロセッサから得られる場合でも、処
理後に、全体指令ストリームを適正な順序に組み換える
ことを可能にする。
【0022】本発明の現在のところ望ましい実施例によ
るこうした、及び、その他の有効な特徴を備えた装置に
ついては、図1〜図5に関連して述べることにする。ま
ず、図1に関連して、本発明の一般的な説明を行なうこ
とにする。本発明の本書における説明は、ホスト処理シ
ステム及びホストシステムのグラフィックスサブシステ
ムに関して行なわれ、直列データストリームは、パイプ
ライン処理を施されたグラフィックス指令及びプリミテ
ィブから構成されるが、当該技術の通常の技能者には明
らかなように、本発明の原理は、他のさまざまな処理環
境にも適用することが可能である。さらに、当該技術の
熟練者には明らかなように、本書で示される説明は、単
に解説を目的としたものであって、本発明の範囲を限定
しようとする意図は全くない。本発明の範囲に関する疑
問は、付属のクレームを参照することによって、解決す
ることができる。
るこうした、及び、その他の有効な特徴を備えた装置に
ついては、図1〜図5に関連して述べることにする。ま
ず、図1に関連して、本発明の一般的な説明を行なうこ
とにする。本発明の本書における説明は、ホスト処理シ
ステム及びホストシステムのグラフィックスサブシステ
ムに関して行なわれ、直列データストリームは、パイプ
ライン処理を施されたグラフィックス指令及びプリミテ
ィブから構成されるが、当該技術の通常の技能者には明
らかなように、本発明の原理は、他のさまざまな処理環
境にも適用することが可能である。さらに、当該技術の
熟練者には明らかなように、本書で示される説明は、単
に解説を目的としたものであって、本発明の範囲を限定
しようとする意図は全くない。本発明の範囲に関する疑
問は、付属のクレームを参照することによって、解決す
ることができる。
【0023】図1には、本発明に従って、並列処理シス
テムとインターフェイスされたホスト処理システムが示
されている。すなわち、ホストプロセッサ10は、例え
ば、グラフィックス指令及びプリミティブを含む複数の
指令/データパケットから成る直列データストリームを
発生して、これらの指令/データパケットをホストシス
テムI/Oバス12を介してホストインターフェイス1
4に出力し、その後で、指令/データパケットを入力プ
ロセッサ16に送る。可能性のあるホストインターフェ
イス装置については、本発明の譲受人に譲渡され、従っ
て、本書にも参考までに組み込まれている、1990年
3月12日に提出された米国出願第492,516号及
び1990年3月15日に提出された米国出願494,
008号に説明されている。入力プロセッサ16は、例
えば、入力される直列データストリームにパージングを
施し、指令/データパケットに適合するタグをセットし
て、指令/データパケットを適正に分散できるようにす
るゲートアレイとすることが可能である。入力プロセッ
サ16は、グラフィックスプリミティブに関するいくつ
かの再現状態変数を記録しておくことも可能である。次
に、処理される指令/データパケットが、ソースFIF
O18に対する待ち行列を形成する。詳細に後述するよ
うに、指令/データパケットが、ソース待ち行列から読
み取られ、Xバス、さらに、S/P指令分散装置20に
送られて、適合するプロセッサに分散され、処理を受け
ることになる。
テムとインターフェイスされたホスト処理システムが示
されている。すなわち、ホストプロセッサ10は、例え
ば、グラフィックス指令及びプリミティブを含む複数の
指令/データパケットから成る直列データストリームを
発生して、これらの指令/データパケットをホストシス
テムI/Oバス12を介してホストインターフェイス1
4に出力し、その後で、指令/データパケットを入力プ
ロセッサ16に送る。可能性のあるホストインターフェ
イス装置については、本発明の譲受人に譲渡され、従っ
て、本書にも参考までに組み込まれている、1990年
3月12日に提出された米国出願第492,516号及
び1990年3月15日に提出された米国出願494,
008号に説明されている。入力プロセッサ16は、例
えば、入力される直列データストリームにパージングを
施し、指令/データパケットに適合するタグをセットし
て、指令/データパケットを適正に分散できるようにす
るゲートアレイとすることが可能である。入力プロセッ
サ16は、グラフィックスプリミティブに関するいくつ
かの再現状態変数を記録しておくことも可能である。次
に、処理される指令/データパケットが、ソースFIF
O18に対する待ち行列を形成する。詳細に後述するよ
うに、指令/データパケットが、ソース待ち行列から読
み取られ、Xバス、さらに、S/P指令分散装置20に
送られて、適合するプロセッサに分散され、処理を受け
ることになる。
【0024】Xバスは、ソースFIFO18をS/P指
令分散装置20に、さらに、設計者の所望の数とするこ
とができる処理装置24のそれぞれと連係した待ち行列
入力FIFO22に接続する。S/P指令分散装置20
は、本発明に従って、ソースFIFO18から入力FI
FO22の1つまたは全てに対しデータをいつ転送する
かについての制御を行なう。各入力FIFO22は、そ
の連係するプロセッサ24が、それ以外の入力データに
対する準備が整うまで処理しなければならない指令及び
データを保持する。 各プロセッサ24によって処理されるデータは、次に、
その連係する出力FIFO26に出力され、本発明に基
づくデータの再順序づけが可能になるまで記憶される。
令分散装置20に、さらに、設計者の所望の数とするこ
とができる処理装置24のそれぞれと連係した待ち行列
入力FIFO22に接続する。S/P指令分散装置20
は、本発明に従って、ソースFIFO18から入力FI
FO22の1つまたは全てに対しデータをいつ転送する
かについての制御を行なう。各入力FIFO22は、そ
の連係するプロセッサ24が、それ以外の入力データに
対する準備が整うまで処理しなければならない指令及び
データを保持する。 各プロセッサ24によって処理されるデータは、次に、
その連係する出力FIFO26に出力され、本発明に基
づくデータの再順序づけが可能になるまで記憶される。
【0025】本発明によるシステムにおける各プロセッ
サ24は、S/P指令分散装置には分る固有の識別番号
を備えている。従って、処理能力を生じさせる指令/デ
ータパケットが、処理装置24の1つに送られると、そ
の処理装置の識別番号が、本発明に従って一次シーケン
スFIFO28に書き込まれ、入力指令/データパケッ
トの順序づけを維持することが可能になる。上述のよう
に、本発明は、全ての順序づけを維持しなければならな
いという仮定に基づいて機能するものであり、従って、
出力を生じさせる各命令毎に、識別番号を一次シーケン
スFIFO28に書き込むことが重要である。一次シー
ケンスFIFO28の出力は、従って、各指令/データ
パケットが、それぞれどこに送られて、処理を受けたか
を識別する、処理装置識別番号のリストである。従って
、処理装置24による操作が施された後、一次シーケン
スFIFO28の出力を利用して、直列ストリームをな
す指令を再構成することが可能である。
サ24は、S/P指令分散装置には分る固有の識別番号
を備えている。従って、処理能力を生じさせる指令/デ
ータパケットが、処理装置24の1つに送られると、そ
の処理装置の識別番号が、本発明に従って一次シーケン
スFIFO28に書き込まれ、入力指令/データパケッ
トの順序づけを維持することが可能になる。上述のよう
に、本発明は、全ての順序づけを維持しなければならな
いという仮定に基づいて機能するものであり、従って、
出力を生じさせる各命令毎に、識別番号を一次シーケン
スFIFO28に書き込むことが重要である。一次シー
ケンスFIFO28の出力は、従って、各指令/データ
パケットが、それぞれどこに送られて、処理を受けたか
を識別する、処理装置識別番号のリストである。従って
、処理装置24による操作が施された後、一次シーケン
スFIFO28の出力を利用して、直列ストリームをな
す指令を再構成することが可能である。
【0026】本発明には、一次シーケンスFIFO28
と同様の代替シーケンスFIFO30も含まれている。 述べたばかりのように、プロセッサ24に指令/データ
パケットがロードされる順序は、一次シーケンスFIF
O28から利用可能であるが;全てのプロセッサ24が
、同じ指令の異なる部分に対して働くように求められる
場合のように、この順序を乱さなければならない場合も
ある。こうした状況を取り扱う代替シーケンスFIFO
30が、本発明に従って設けられた。すなわち、こうし
た指令を受信すると、S/P指令分散装置20は、一次
シーケンスFIFO28に特殊なフラグ(今後は「代替
」フラグと呼ぶ)をセットし、下流のハードウェアに対
し、順序づけした配列を中断しなければならない旨の警
告を行なう。これによって、下流のハードウェアは、代
替シーケンスFIFO30から新しい配列の読取りを開
始する。さらに詳細に後述するように、代替シーケンス
FIFO30には、受信した指令に関する全体結果の異
なる部分の配列が含まれることになり、最後のプロセッ
サ24が、受信した指令の最後の部分を仕上げると、代
替シーケンスFIFO30に指令またはフラグ(今後は
「スイッチ」フラグと呼ぶことにする)を挿入し、下流
のハードウェアに対して一次シーケンスFIFO28の
順序づけに戻るように警告する。指令の処理は、データ
に対する共用アクセスのためのSバスを介して共用メモ
リ32と通信し、処理することによって、プロセッサ間
で分担するのが普通である。
と同様の代替シーケンスFIFO30も含まれている。 述べたばかりのように、プロセッサ24に指令/データ
パケットがロードされる順序は、一次シーケンスFIF
O28から利用可能であるが;全てのプロセッサ24が
、同じ指令の異なる部分に対して働くように求められる
場合のように、この順序を乱さなければならない場合も
ある。こうした状況を取り扱う代替シーケンスFIFO
30が、本発明に従って設けられた。すなわち、こうし
た指令を受信すると、S/P指令分散装置20は、一次
シーケンスFIFO28に特殊なフラグ(今後は「代替
」フラグと呼ぶ)をセットし、下流のハードウェアに対
し、順序づけした配列を中断しなければならない旨の警
告を行なう。これによって、下流のハードウェアは、代
替シーケンスFIFO30から新しい配列の読取りを開
始する。さらに詳細に後述するように、代替シーケンス
FIFO30には、受信した指令に関する全体結果の異
なる部分の配列が含まれることになり、最後のプロセッ
サ24が、受信した指令の最後の部分を仕上げると、代
替シーケンスFIFO30に指令またはフラグ(今後は
「スイッチ」フラグと呼ぶことにする)を挿入し、下流
のハードウェアに対して一次シーケンスFIFO28の
順序づけに戻るように警告する。指令の処理は、データ
に対する共用アクセスのためのSバスを介して共用メモ
リ32と通信し、処理することによって、プロセッサ間
で分担するのが普通である。
【0027】最後に、さらに詳細に後述するように、連
結装置34が、一次シーケンスFIFO28及び代替シ
ーケンスFIFO30に記憶された処理装置識別値を利
用して、出力FIFO26に記憶された処理データを直
列データストリームに組み換え、それ以上の処理に備え
る。
結装置34が、一次シーケンスFIFO28及び代替シ
ーケンスFIFO30に記憶された処理装置識別値を利
用して、出力FIFO26に記憶された処理データを直
列データストリームに組み換え、それ以上の処理に備え
る。
【0028】本発明によるシステムは、少なくとも4つ
の異なるタイプの入力指令を取り扱うように設計されて
いる。グラフィックスシステムに関して、これらの指令
は、例えば、ワールドと装置の両方の座標の多角形、ポ
リライン、及び、メッシュを含むプリミティブ指令;ハ
ードウェア構成によるプリミティブ指令;大域指令;及
び、ハードウェア構成による大域指令と呼ばれるものと
する。
の異なるタイプの入力指令を取り扱うように設計されて
いる。グラフィックスシステムに関して、これらの指令
は、例えば、ワールドと装置の両方の座標の多角形、ポ
リライン、及び、メッシュを含むプリミティブ指令;ハ
ードウェア構成によるプリミティブ指令;大域指令;及
び、ハードウェア構成による大域指令と呼ばれるものと
する。
【0029】これらの指令は、全ての処理装置24によ
って処理される大域指令と、必要に応じて、単一のプロ
セッサによって処理するか、または、いくつかのプロセ
ッサによる処理に備えて分割することが可能な指令のい
ずれであるかに基づき、S/P指令分散装置20によっ
て特定の処理装置24に割り当てられて、処理される。 こうした分割可能な指令は、一般に、Bスプライン指令
のような複合プリミティブであるが、長時間の処理を必
要とする(及び分割することができる)指令は、どれで
も、本発明に従って分割し、処理することが可能である
。
って処理される大域指令と、必要に応じて、単一のプロ
セッサによって処理するか、または、いくつかのプロセ
ッサによる処理に備えて分割することが可能な指令のい
ずれであるかに基づき、S/P指令分散装置20によっ
て特定の処理装置24に割り当てられて、処理される。 こうした分割可能な指令は、一般に、Bスプライン指令
のような複合プリミティブであるが、長時間の処理を必
要とする(及び分割することができる)指令は、どれで
も、本発明に従って分割し、処理することが可能である
。
【0030】大域指令の場合、常に、全プロセッサ24
によって実行しなければならないので、こうした指令は
、従来、順序づけの目的にとって最も困難を生じた。こ
れらの指令の順次(時間ではなく)実行順序は、維持し
なければならない。一方、ハードウェア構成による指令
命令は、プロセッサ24外部のハードウェア構成を変更
する指令である。この外部ハードウェアには、フレーム
バッファ制御レジスタ、ブロック移動装置、走査変換器
レジスタ等を含むことができる。例えば、ハードウェア
構成による大域指令の場合、指令のハードウェア構成部
分は、1回実行しさえすればすんでしまうので、特に注
意しなければならない。従って、こうした指令の場合、
ハードウェア構成部分は、単一プロセッサ24で1回し
か実行されないことをフラグで示すのが望ましい。
によって実行しなければならないので、こうした指令は
、従来、順序づけの目的にとって最も困難を生じた。こ
れらの指令の順次(時間ではなく)実行順序は、維持し
なければならない。一方、ハードウェア構成による指令
命令は、プロセッサ24外部のハードウェア構成を変更
する指令である。この外部ハードウェアには、フレーム
バッファ制御レジスタ、ブロック移動装置、走査変換器
レジスタ等を含むことができる。例えば、ハードウェア
構成による大域指令の場合、指令のハードウェア構成部
分は、1回実行しさえすればすんでしまうので、特に注
意しなければならない。従って、こうした指令の場合、
ハードウェア構成部分は、単一プロセッサ24で1回し
か実行されないことをフラグで示すのが望ましい。
【0031】もちろん、当該技術の熟練者であれば、本
発明に従って他の指令を利用することもできる。ただし
、通常、該指令は、単一プロセッサで処理する指令及び
全てのプロセッサで処理する指令のカテゴリーに入るの
が望ましい。さらに、当該技術の熟練者には明らかなよ
うに、本発明のハードウェアは、簡単に修正を加えて、
他の同様の指令に適応させることができる。
発明に従って他の指令を利用することもできる。ただし
、通常、該指令は、単一プロセッサで処理する指令及び
全てのプロセッサで処理する指令のカテゴリーに入るの
が望ましい。さらに、当該技術の熟練者には明らかなよ
うに、本発明のハードウェアは、簡単に修正を加えて、
他の同様の指令に適応させることができる。
【0032】次に、図1の回路の一般的動作について説
明する。まず、入力プロセッサ16が、直列入力ストリ
ームにおける各指令/データパケットを読み取り、それ
が、プロセッサの1つで実行できる操作か、全てのプロ
セッサに送らなければならないか判定を行なう。全ての
グラフィックスプロセッサに送らなければならない操作
は、指令/データパケットの最初のワードにおけるビッ
トの1つをセットして、大域のフラグ表示を行なう。入
力プロセッサ16は、また、チェックして、詳細に後述
するように、パケットが、代替シーケンスFIFO30
の利用を必要とする分割可能な指令タイプであるか否か
を確かめる。もしそうなら、もう1つのビットが、指令
/データパケットの第1のワードにおいてセットされる
。入力プロセッサ16は、また、指令/データパケット
の最後のワードにおけるビットをセットし、S/P指令
分散装置20は、指令/データパケットの終端を検出で
きるようにすることが可能である。指令/データパケッ
トは、次に、ソースFIFO18に記憶される。
明する。まず、入力プロセッサ16が、直列入力ストリ
ームにおける各指令/データパケットを読み取り、それ
が、プロセッサの1つで実行できる操作か、全てのプロ
セッサに送らなければならないか判定を行なう。全ての
グラフィックスプロセッサに送らなければならない操作
は、指令/データパケットの最初のワードにおけるビッ
トの1つをセットして、大域のフラグ表示を行なう。入
力プロセッサ16は、また、チェックして、詳細に後述
するように、パケットが、代替シーケンスFIFO30
の利用を必要とする分割可能な指令タイプであるか否か
を確かめる。もしそうなら、もう1つのビットが、指令
/データパケットの第1のワードにおいてセットされる
。入力プロセッサ16は、また、指令/データパケット
の最後のワードにおけるビットをセットし、S/P指令
分散装置20は、指令/データパケットの終端を検出で
きるようにすることが可能である。指令/データパケッ
トは、次に、ソースFIFO18に記憶される。
【0033】プロセッサ24の1つが、さらに仕事をす
る必要がある場合、そのプロセッサは、その入力FIF
O22を読み取ろうとする。その入力FIFO22が空
の場合には、プロセッサ24はさらに多くのデータを要
求する。 2つ以上のプロセッサがさらに多くのデータを要求する
場合、S/P指令分散装置20が、要求する処理装置2
4間で調停を行ない、ソースFIFO18から勝ちとっ
たプロセッサの入力FIFO22に次の指令/データパ
ケットを自動的に転送する。指令/データパケットが大
域としてフラグ表示された場合、第1のプロセッサ24
がさらにデータを要求すると、パケットは入力FIFO
22の全てに書き込まれる。
る必要がある場合、そのプロセッサは、その入力FIF
O22を読み取ろうとする。その入力FIFO22が空
の場合には、プロセッサ24はさらに多くのデータを要
求する。 2つ以上のプロセッサがさらに多くのデータを要求する
場合、S/P指令分散装置20が、要求する処理装置2
4間で調停を行ない、ソースFIFO18から勝ちとっ
たプロセッサの入力FIFO22に次の指令/データパ
ケットを自動的に転送する。指令/データパケットが大
域としてフラグ表示された場合、第1のプロセッサ24
がさらにデータを要求すると、パケットは入力FIFO
22の全てに書き込まれる。
【0034】勝利を得た処理装置24に対する指令/デ
ータパケットの転送時、S/P指令分散装置20は、一
次シーケンスFIFO28にワードも書き込む。このワ
ードは、指令/データパケットを送りつけた処理装置の
番号を表わすか、あるいは、下流のハードウェアが代替
シーケンスFIFO30の出力の利用を開始すべきであ
ることを表わす。ただし、注目すべきは、大域指令のタ
イプによっては、処理装置24からの出力をパイプライ
ンで送る必要のないものもある。従って、これらの指令
は、S/P指令分散装置20が、識別番号を一次シーケ
ンスFIFO28に書き込むことを必要としない。少な
くとも1つのプロセッサ24によって出力を発生させる
指令だけしか、一次シーケンスFIFO28に記録する
必要はない。
ータパケットの転送時、S/P指令分散装置20は、一
次シーケンスFIFO28にワードも書き込む。このワ
ードは、指令/データパケットを送りつけた処理装置の
番号を表わすか、あるいは、下流のハードウェアが代替
シーケンスFIFO30の出力の利用を開始すべきであ
ることを表わす。ただし、注目すべきは、大域指令のタ
イプによっては、処理装置24からの出力をパイプライ
ンで送る必要のないものもある。従って、これらの指令
は、S/P指令分散装置20が、識別番号を一次シーケ
ンスFIFO28に書き込むことを必要としない。少な
くとも1つのプロセッサ24によって出力を発生させる
指令だけしか、一次シーケンスFIFO28に記録する
必要はない。
【0035】一方、上述のBスプラインパッチ指令のよ
うな分割可能な複合指令を受信する場合、各処理装置2
4が利用可能になるので、こうした指令は、本発明に従
って分割し、複数の処理装置24によって処理できるよ
うにする。代替シーケンスFIFO30は、従って、処
理装置によって指令の異なる部分に処理を施す際に対応
させる処理装置識別番号を記録することになる。
うな分割可能な複合指令を受信する場合、各処理装置2
4が利用可能になるので、こうした指令は、本発明に従
って分割し、複数の処理装置24によって処理できるよ
うにする。代替シーケンスFIFO30は、従って、処
理装置によって指令の異なる部分に処理を施す際に対応
させる処理装置識別番号を記録することになる。
【0036】本発明によれば、S/P指令分散装置20
は、また、処理装置24にそれ以上の仕事に対する「早
期要求」をさせる機能も備えている。ソフトウェアの制
御下で、各プロセッサは、S/P指令分散装置に対して
、処理装置24が、すぐにその入力FIFO22からそ
れ以上の仕事を読み取ろうとする旨の警告を行なうビッ
トをセットすることができる。プロセッサ24の入力F
IFOが空の場合、S/P指令分散装置20は、ソース
FIFO18からそれ以上の仕事に対する「早期要求」
を行なうプロセッサ24に次の指令/データパケットを
転送することを知っている。本発明のこの態様について
は、図3に関連してさらに詳細に後述する。
は、また、処理装置24にそれ以上の仕事に対する「早
期要求」をさせる機能も備えている。ソフトウェアの制
御下で、各プロセッサは、S/P指令分散装置に対して
、処理装置24が、すぐにその入力FIFO22からそ
れ以上の仕事を読み取ろうとする旨の警告を行なうビッ
トをセットすることができる。プロセッサ24の入力F
IFOが空の場合、S/P指令分散装置20は、ソース
FIFO18からそれ以上の仕事に対する「早期要求」
を行なうプロセッサ24に次の指令/データパケットを
転送することを知っている。本発明のこの態様について
は、図3に関連してさらに詳細に後述する。
【0037】要するに、任意の数にすることが可能な並
列アレイをなす処理装置24に指令及びデータを転送す
る場合、本発明によるS/P指令分散装置20が利用さ
れる。ほとんどの指令は、1度に1つの処理装置に対し
てしか送られないようになっており、この場合、特定の
処理装置24は、各処理装置24の使用可能度によって
決定されるが、大域指令の処理は、順次性を損うことな
く実施することができる。S/P指令分散装置20には
、また、指令のタイプ(すなわち、プリミティブ、大域
、あるいは、Bスプラインまたは他の分割可能な複合指
令)と、指令の終端にいつ達したかを判定するためのデ
コーダを含むのが望ましい。この知識に基づき、S/P
指令分散装置20は、処理装置24の1つと全てのいず
れに指令を送るべきかを判定し、さらに、いつ停止すべ
きかを知ることができる。また、S/P指令分散装置2
0が、1つの処理装置24にだけしか指令を送らない場
合、処理装置24の全てについて要求ラインを検知し、
新しい指令に対する準備の整った処理装置24に指令を
送る。2つ以上の処理装置24が利用可能な場合、S/
P指令分散装置20は、調停に勝った処理装置24(例
えば、要求している識別番号の最も小さい処理装置24
)に指令を送ることによって、決着をつける。ただし、
指令が、処理装置24に転送される前に、処理装置24
の識別番号が、一次シーケンスFIFO28に書き込ま
れる。同様に、指令が、大域またはBスプラインの場合
、指令が大域でないように、識別番号が書き込まれる。 従って、処理装置24が出力を発生すべきか否かの判定
を行なうため、S/P指令分散装置20は、その識別番
号が記憶されており、出力のための制御処理装置24と
なるものを除く全ての処理装置24について、送られる
大域ビットを取り除くことができる。もちろん、当該技
術の通常の技能者には明らかなように、他の案も可能で
ある。
列アレイをなす処理装置24に指令及びデータを転送す
る場合、本発明によるS/P指令分散装置20が利用さ
れる。ほとんどの指令は、1度に1つの処理装置に対し
てしか送られないようになっており、この場合、特定の
処理装置24は、各処理装置24の使用可能度によって
決定されるが、大域指令の処理は、順次性を損うことな
く実施することができる。S/P指令分散装置20には
、また、指令のタイプ(すなわち、プリミティブ、大域
、あるいは、Bスプラインまたは他の分割可能な複合指
令)と、指令の終端にいつ達したかを判定するためのデ
コーダを含むのが望ましい。この知識に基づき、S/P
指令分散装置20は、処理装置24の1つと全てのいず
れに指令を送るべきかを判定し、さらに、いつ停止すべ
きかを知ることができる。また、S/P指令分散装置2
0が、1つの処理装置24にだけしか指令を送らない場
合、処理装置24の全てについて要求ラインを検知し、
新しい指令に対する準備の整った処理装置24に指令を
送る。2つ以上の処理装置24が利用可能な場合、S/
P指令分散装置20は、調停に勝った処理装置24(例
えば、要求している識別番号の最も小さい処理装置24
)に指令を送ることによって、決着をつける。ただし、
指令が、処理装置24に転送される前に、処理装置24
の識別番号が、一次シーケンスFIFO28に書き込ま
れる。同様に、指令が、大域またはBスプラインの場合
、指令が大域でないように、識別番号が書き込まれる。 従って、処理装置24が出力を発生すべきか否かの判定
を行なうため、S/P指令分散装置20は、その識別番
号が記憶されており、出力のための制御処理装置24と
なるものを除く全ての処理装置24について、送られる
大域ビットを取り除くことができる。もちろん、当該技
術の通常の技能者には明らかなように、他の案も可能で
ある。
【0038】図2には、S/P指令分散装置20が行な
う必要のある内容の流れ図が示されている。ステップ2
00でリセットされると、S/P指令分散装置20が、
ステップ202で、ソースFIFO18を調べて、ソー
ス18が処理すべき指令/データパケットを有している
かどうかを確認することによって、チェックを行ない、
なすべき仕事の有無を判断する。もしあれば、指令/デ
ータパケットの指令ビットをチェックして、指令が大域
指令か否かを確かめる(ステップ204)。指令が大域
指令でなければ、処理装置24が指令を要求するまで、
S/P指令分散装置20は待機する(ステップ206)
。要求を受信すると、S/P指令分散装置20は、ステ
ップ208において、決着をつけ(必要な場合)、「準
備完了」の処理装置を選択する。S/P指令分散装置2
0は、次に、ステップ210においてチェックをし、一
次シーケンスFIFO28が、自由にデータ入力を受信
できるか否かを確かめて、受信できる場合には、S/P
指令分散装置20が、勝利をおさめた処理装置24の番
号を一次シーケンスFIFO28に書き込むことになる
。(一般に、一次シーケンスFIFO28は、常に、デ
ータを受信する準備が整っており、従って、ステップ2
10は省略することができる。)処理装置識別番号が一
次シーケンスFIFO28に書き込まれると、S/P指
令分散装置20が、ステップ212においてチェックを
行ない、指令ワードに「代替」フラグがセットされてい
るか否かを確める。上述のように、その指令の処理が複
数の処理装置によって並列を行なえる場合には、指令ワ
ードに「代替」フラグがセットされる。指令ワードに「
代替」フラグがセットされている場合、S/P指令分散
装置20がステップ214において、一次シーケンスF
IFO28に「代替」フラグを書き込む。一方、「代替
」フラグが指令ワードにセットされていなければ、前述
のように、勝利をおさめた処理装置24の処理装置識別
値だけが、一次シーケンスFIFO28に書き込まれる
。次に、ステップ218において、S/P指令分散装置
20は、勝利をおさめた処理装置24の入力FIFO2
2に対する入力ラインを使用可能にし、ソースFIFO
18の指令を選択された処理装置24に転送できるよう
にする。
う必要のある内容の流れ図が示されている。ステップ2
00でリセットされると、S/P指令分散装置20が、
ステップ202で、ソースFIFO18を調べて、ソー
ス18が処理すべき指令/データパケットを有している
かどうかを確認することによって、チェックを行ない、
なすべき仕事の有無を判断する。もしあれば、指令/デ
ータパケットの指令ビットをチェックして、指令が大域
指令か否かを確かめる(ステップ204)。指令が大域
指令でなければ、処理装置24が指令を要求するまで、
S/P指令分散装置20は待機する(ステップ206)
。要求を受信すると、S/P指令分散装置20は、ステ
ップ208において、決着をつけ(必要な場合)、「準
備完了」の処理装置を選択する。S/P指令分散装置2
0は、次に、ステップ210においてチェックをし、一
次シーケンスFIFO28が、自由にデータ入力を受信
できるか否かを確かめて、受信できる場合には、S/P
指令分散装置20が、勝利をおさめた処理装置24の番
号を一次シーケンスFIFO28に書き込むことになる
。(一般に、一次シーケンスFIFO28は、常に、デ
ータを受信する準備が整っており、従って、ステップ2
10は省略することができる。)処理装置識別番号が一
次シーケンスFIFO28に書き込まれると、S/P指
令分散装置20が、ステップ212においてチェックを
行ない、指令ワードに「代替」フラグがセットされてい
るか否かを確める。上述のように、その指令の処理が複
数の処理装置によって並列を行なえる場合には、指令ワ
ードに「代替」フラグがセットされる。指令ワードに「
代替」フラグがセットされている場合、S/P指令分散
装置20がステップ214において、一次シーケンスF
IFO28に「代替」フラグを書き込む。一方、「代替
」フラグが指令ワードにセットされていなければ、前述
のように、勝利をおさめた処理装置24の処理装置識別
値だけが、一次シーケンスFIFO28に書き込まれる
。次に、ステップ218において、S/P指令分散装置
20は、勝利をおさめた処理装置24の入力FIFO2
2に対する入力ラインを使用可能にし、ソースFIFO
18の指令を選択された処理装置24に転送できるよう
にする。
【0039】一方、ステップ204において、ソース1
8からの指令が大域指令であると判定されると(Bスプ
ライン指令は、大域指令として扱うことができる点に留
意のこと)、S/P指令分散装置20は、ステップ22
0においてチェックし、「代替」フラグが指令ワードに
おいてセットされているか否かを確認する。「代替」フ
ラグが指令ワードにおいてセットされていなければ、ス
テップ222において、全ての入力FIFO22に対す
る入力ラインが使用可能になり、ソースFIFO18か
らの指令が、全ての処理装置24に対し同報通信可能に
なる。一方、「代替」フラグが、指令ワードにセットさ
れている場合、S/P指令分散装置20は、ステップ2
24において、まず、一次シーケンスFIFO28の準
備が整っているか否かのチェックを行ない、整っていれ
ば、ステップ226において、こうした指令を受信済み
であることを表わした「代替」フラグを一次シーケンス
FIFO28に書き込む。
8からの指令が大域指令であると判定されると(Bスプ
ライン指令は、大域指令として扱うことができる点に留
意のこと)、S/P指令分散装置20は、ステップ22
0においてチェックし、「代替」フラグが指令ワードに
おいてセットされているか否かを確認する。「代替」フ
ラグが指令ワードにおいてセットされていなければ、ス
テップ222において、全ての入力FIFO22に対す
る入力ラインが使用可能になり、ソースFIFO18か
らの指令が、全ての処理装置24に対し同報通信可能に
なる。一方、「代替」フラグが、指令ワードにセットさ
れている場合、S/P指令分散装置20は、ステップ2
24において、まず、一次シーケンスFIFO28の準
備が整っているか否かのチェックを行ない、整っていれ
ば、ステップ226において、こうした指令を受信済み
であることを表わした「代替」フラグを一次シーケンス
FIFO28に書き込む。
【0040】次に、ステップ228において、ソースF
IFO18がデータ転送の準備が整っているか否か、ス
テップ230において、使用可能になった全てのプロセ
ッサがデータ入力の準備が整っているか否かのチェック
を行なって、データ転送を開始する。全ての要素の準備
が整っている場合、ステップ232において、データ転
送が開始し、ステップ234で判定される指令の最後の
ワードが転送されるまで、ソースFIFO18における
次のデータワードが使用可能になった処理装置の入力F
IFO22に書き込まれる。このプロセスが、ソースF
IFO18における各ワード毎に繰り返され、ソースF
IFO18が空になるか、あるいは、宛先入力FIFO
22が満杯になると、データ転送を一時的に中断するこ
とが可能である。S/P指令分散装置20は、こうした
条件を検知して、必要な措置を講じる。例えば、データ
転送が完了すると、S/P指令分散装置20はループを
戻り、新しい指令についてチェックを行なう。
IFO18がデータ転送の準備が整っているか否か、ス
テップ230において、使用可能になった全てのプロセ
ッサがデータ入力の準備が整っているか否かのチェック
を行なって、データ転送を開始する。全ての要素の準備
が整っている場合、ステップ232において、データ転
送が開始し、ステップ234で判定される指令の最後の
ワードが転送されるまで、ソースFIFO18における
次のデータワードが使用可能になった処理装置の入力F
IFO22に書き込まれる。このプロセスが、ソースF
IFO18における各ワード毎に繰り返され、ソースF
IFO18が空になるか、あるいは、宛先入力FIFO
22が満杯になると、データ転送を一時的に中断するこ
とが可能である。S/P指令分散装置20は、こうした
条件を検知して、必要な措置を講じる。例えば、データ
転送が完了すると、S/P指令分散装置20はループを
戻り、新しい指令についてチェックを行なう。
【0041】図3には、各処理装置が、ステップ206
においてS/P指令分散装置によって検出されるように
(図2)、それ以上の入力データに対する準備が整った
ことを表示できるようにする回路が示されている。すな
わち、処理装置24のソフトウェアは、処理がすぐに完
了するものと判定すると、それに応じて、任意データレ
ジスタ36にSETビットをセットする。このビットが
セットされ、入力FIFO22が空になると、この処理
装置がそれ以上のデータに対して準備が整ったことを表
わす「処理装置準備完了」信号がS/P指令分配装置2
0に送られる。処理装置24が選択されると、次に、S
/P指令分散装置20は、任意データレジスタをクリア
することができる。一方、処理装置は、読取り要求をそ
の入力FIFO22に対して発生しさえすればよいよう
になっており、入力FIFO22が空の時に、こうした
読取り要求を受信すると、やはり、「処理装置準備完了
」信号を発生して、処理装置がそれ以上のデータに対し
て準備が整ったことを表わすことができる。次に、上述
のように、S/P指令分散装置20は、次の入力指令/
データパケットが、要求する処理装置24に対して出力
すべきか否かの決定を行なうのに必要な調停を行なうこ
とができる。
においてS/P指令分散装置によって検出されるように
(図2)、それ以上の入力データに対する準備が整った
ことを表示できるようにする回路が示されている。すな
わち、処理装置24のソフトウェアは、処理がすぐに完
了するものと判定すると、それに応じて、任意データレ
ジスタ36にSETビットをセットする。このビットが
セットされ、入力FIFO22が空になると、この処理
装置がそれ以上のデータに対して準備が整ったことを表
わす「処理装置準備完了」信号がS/P指令分配装置2
0に送られる。処理装置24が選択されると、次に、S
/P指令分散装置20は、任意データレジスタをクリア
することができる。一方、処理装置は、読取り要求をそ
の入力FIFO22に対して発生しさえすればよいよう
になっており、入力FIFO22が空の時に、こうした
読取り要求を受信すると、やはり、「処理装置準備完了
」信号を発生して、処理装置がそれ以上のデータに対し
て準備が整ったことを表わすことができる。次に、上述
のように、S/P指令分散装置20は、次の入力指令/
データパケットが、要求する処理装置24に対して出力
すべきか否かの決定を行なうのに必要な調停を行なうこ
とができる。
【0042】図4には、入力FIFO22に記憶された
指令/データパケットの処理時に、各処理装置24が従
うことになるプロセスの一部に関する流れ図が示されて
いる。一般に、各処理装置24は、受信指令が大域指令
であろうと、プリミティブ指令であろうとかまわない。 そうではなく、各処理装置24は、主として、受信した
指令に対する処理の全てを実施すべきか、あるいは、そ
の処理を他の処理装置と分担すべきかを問題にする。上
述のように、それが、Bスプラインのような命令を受信
する場合には、指令ワードに「代替」フラグがセットさ
れ、その命令が、複数の処理装置で処理できる命令であ
ることが表示されている。従って、処理装置はチェック
して、どんな処理を行うべきか確める必要がある。
指令/データパケットの処理時に、各処理装置24が従
うことになるプロセスの一部に関する流れ図が示されて
いる。一般に、各処理装置24は、受信指令が大域指令
であろうと、プリミティブ指令であろうとかまわない。 そうではなく、各処理装置24は、主として、受信した
指令に対する処理の全てを実施すべきか、あるいは、そ
の処理を他の処理装置と分担すべきかを問題にする。上
述のように、それが、Bスプラインのような命令を受信
する場合には、指令ワードに「代替」フラグがセットさ
れ、その命令が、複数の処理装置で処理できる命令であ
ることが表示されている。従って、処理装置はチェック
して、どんな処理を行うべきか確める必要がある。
【0043】従って、入力FIFO22から指令/デー
タパケットを読み取った後、各処理装置24は、まず、
指令ワードをチェックして、「代替」フラグがセットさ
れているか否かを判定する(ステップ402)。「代替
」フラグがセットされていなければ、指令は、ステップ
404において、その処理装置だけで処理可能な通常の
指令である。一方、「代替」フラグが指令ワードにセッ
トされている場合、処理装置24は、ステップ406に
おいてSバスを獲得し、共用メモリ32にアクセスして
、ステップ408において、次のブロックの仕事を構成
するのが何かを確める。Sバスは、1度に1つの処理装
置だけしかアクセスできないセマフォー式バスが望まし
い。従って、指令の処理が完了すると(ステップ410
)、ステップ412において、Sバスは解放され、プロ
セスが終了する。一方、共用メモリ32にまだ処理をす
る指令が残っている場合、Sバスセマフォーによって、
処理装置が、ステップ414で代替シーケンスFIFO
30に処理装置識別番号を書き込み、それがそのデータ
に対するプロセスを実施中であることを表示する(例え
ば、Bスプライン機能に関した出力ディスプレイにおけ
るデータに対するいくつかのライン処理)。処理装置2
4は、次に、ステップ416で、共用メモリ32におい
て、次のブロックの仕事について述べていることを表示
し、処理に備えて次のブロックのデータを読み取る。こ
れが、指令の処理時における最後のブロックの仕事であ
る場合、処理装置24は、ステップ418において、順
序づけ制御が一次シーケンスFIFO28に戻らなけれ
ばならないと判定し、その結果、ステップ420におい
て、「スイッチ」フラグを代替シーケンスFIFO30
に書き込む。さもなければ、プロセッサ24は、直接ス
テップ422に進み、Sバスセマフォーを解放して、ス
テップ424におけるデータ読取りのプロセスを実施し
、その結果は、出力FIFO26に出力される。処理は
、次に、開始点にまで戻り、処理装置24は、Sバスセ
マフォーを獲得し、処理する仕事が残っているか否かを
判定することができる。分担された命令処理が完了する
まで、プロセッサ間においてこの方法による処理が続行
される。次に、代替シーケンスFIFO30に記憶され
た値を一次シーケンスFIFO28に記憶された値に関
連して利用し、図5に関連して次に述べるように、デー
タ指令ワードのストリームに対する再順序づけを行なう
ことが可能になる。
タパケットを読み取った後、各処理装置24は、まず、
指令ワードをチェックして、「代替」フラグがセットさ
れているか否かを判定する(ステップ402)。「代替
」フラグがセットされていなければ、指令は、ステップ
404において、その処理装置だけで処理可能な通常の
指令である。一方、「代替」フラグが指令ワードにセッ
トされている場合、処理装置24は、ステップ406に
おいてSバスを獲得し、共用メモリ32にアクセスして
、ステップ408において、次のブロックの仕事を構成
するのが何かを確める。Sバスは、1度に1つの処理装
置だけしかアクセスできないセマフォー式バスが望まし
い。従って、指令の処理が完了すると(ステップ410
)、ステップ412において、Sバスは解放され、プロ
セスが終了する。一方、共用メモリ32にまだ処理をす
る指令が残っている場合、Sバスセマフォーによって、
処理装置が、ステップ414で代替シーケンスFIFO
30に処理装置識別番号を書き込み、それがそのデータ
に対するプロセスを実施中であることを表示する(例え
ば、Bスプライン機能に関した出力ディスプレイにおけ
るデータに対するいくつかのライン処理)。処理装置2
4は、次に、ステップ416で、共用メモリ32におい
て、次のブロックの仕事について述べていることを表示
し、処理に備えて次のブロックのデータを読み取る。こ
れが、指令の処理時における最後のブロックの仕事であ
る場合、処理装置24は、ステップ418において、順
序づけ制御が一次シーケンスFIFO28に戻らなけれ
ばならないと判定し、その結果、ステップ420におい
て、「スイッチ」フラグを代替シーケンスFIFO30
に書き込む。さもなければ、プロセッサ24は、直接ス
テップ422に進み、Sバスセマフォーを解放して、ス
テップ424におけるデータ読取りのプロセスを実施し
、その結果は、出力FIFO26に出力される。処理は
、次に、開始点にまで戻り、処理装置24は、Sバスセ
マフォーを獲得し、処理する仕事が残っているか否かを
判定することができる。分担された命令処理が完了する
まで、プロセッサ間においてこの方法による処理が続行
される。次に、代替シーケンスFIFO30に記憶され
た値を一次シーケンスFIFO28に記憶された値に関
連して利用し、図5に関連して次に述べるように、デー
タ指令ワードのストリームに対する再順序づけを行なう
ことが可能になる。
【0044】図5に示すように、連結装置34は、一次
シーケンスFIFO28及び代替シーケンスFIFO3
2の出力を利用して、出力FIFO26からの出力に対
して再順序づけを施し、元の配列と同じ配列を備えた直
列データストリームにする。すなわち、ステップ500
においてパワーアップされると、連結装置34は、まず
、ステップ502において、一次シーケンスFIFO2
8がデータ読取りの準備が整っているか否かのチェック
を行なう。一次シーケンスFIFO28が、記憶されて
いる処理装置識別データを読取る準備が整うと、次の処
理装置識別値が、ステップ504において読み取られる
。連結装置34は、次に、読み取られる識別値として「
代替」フラグが記憶されているか否か(すなわち、次に
、代替シーケンスFIFO30の読取りを始めるべきか
否か)をチェックする。 「代替」フラグが記憶されていなければ、連結装置34
は、ステップ508において、識別された処理装置の出
力FIFO26が、その処理データを出力する準備が整
っているかチェックする。出力FIFO26が、そのデ
ータを出力する準備が整っている場合、データの次のワ
ードが、ステップ510において、出力データシーケン
スにおける次のワードとして出力される。
シーケンスFIFO28及び代替シーケンスFIFO3
2の出力を利用して、出力FIFO26からの出力に対
して再順序づけを施し、元の配列と同じ配列を備えた直
列データストリームにする。すなわち、ステップ500
においてパワーアップされると、連結装置34は、まず
、ステップ502において、一次シーケンスFIFO2
8がデータ読取りの準備が整っているか否かのチェック
を行なう。一次シーケンスFIFO28が、記憶されて
いる処理装置識別データを読取る準備が整うと、次の処
理装置識別値が、ステップ504において読み取られる
。連結装置34は、次に、読み取られる識別値として「
代替」フラグが記憶されているか否か(すなわち、次に
、代替シーケンスFIFO30の読取りを始めるべきか
否か)をチェックする。 「代替」フラグが記憶されていなければ、連結装置34
は、ステップ508において、識別された処理装置の出
力FIFO26が、その処理データを出力する準備が整
っているかチェックする。出力FIFO26が、そのデ
ータを出力する準備が整っている場合、データの次のワ
ードが、ステップ510において、出力データシーケン
スにおける次のワードとして出力される。
【0045】次に、連結装置34は、ステップ512に
おいて、転送されたワードが最後のワードであったか否
かをチェックし、そうでなければ、特定の指令に関する
全てのデータが出力されるまで、同じ出力FIFO26
が、引続き、処理されたデータを出力する。処理装置は
、次に、開始点に戻ると、一次シーケンスFIFO28
から次の処理装置識別番号を読み取り、処理が繰り返さ
れる。
おいて、転送されたワードが最後のワードであったか否
かをチェックし、そうでなければ、特定の指令に関する
全てのデータが出力されるまで、同じ出力FIFO26
が、引続き、処理されたデータを出力する。処理装置は
、次に、開始点に戻ると、一次シーケンスFIFO28
から次の処理装置識別番号を読み取り、処理が繰り返さ
れる。
【0046】一方、「代替」フラグが処理装置識別値と
して一次シーケンスFIFO28に記憶される場合、処
理はステップ506からステップ514にスキップし、
代替シーケンスFIFO30をチェックして、その記憶
された値を出力する準備が整っているか否かを判定を行
なう。代替シーケンスFIFO30の読取り準備が整っ
ていれば、ステップ516において、次の処理装置識別
値が代替シーケンスFIFOから読み取られる。ステッ
プ518において、「スイッチ」フラグが、処理装置識
別値として記憶されていると判断されると、連結装置3
4は、一次シーケンスFIFO28から次の処理装置識
別値を読み取るべきであると判断する。一方、「スイッ
チ」フラグが代替シーケンスFIFO30が記憶されて
いなければ、ステップ520において、連結装置34は
、識別された処理装置の出力FIFO26がそのデータ
の出力準備が整っているか否かを判定する。識別された
処理装置24に関する出力FIFO26の出力準備が整
っていると、出力FIFO26に記憶された次のワード
が、ステップ522において、データストリームの次の
ワードとして転送される。連結装置34は、次に、ステ
ップ524において、このデータ転送が、その指令に関
する処理データの最後のワードについてのものか否かを
判定し、そうでなければ、同じ出力FIFO26からデ
ータの次のワードを読み取る。処理データの最後のワー
ドが読み取られると、処理は、ステップ514に戻り、
ステップ518において、「スイッチ」フラグが見つか
ると、一次シーケンスFIFO28が読み取られる。こ
うして、処理データは、指令がS/P指令分散装置20
によって分散された元の配列と同じ配列に再構成するこ
とが可能になる。
して一次シーケンスFIFO28に記憶される場合、処
理はステップ506からステップ514にスキップし、
代替シーケンスFIFO30をチェックして、その記憶
された値を出力する準備が整っているか否かを判定を行
なう。代替シーケンスFIFO30の読取り準備が整っ
ていれば、ステップ516において、次の処理装置識別
値が代替シーケンスFIFOから読み取られる。ステッ
プ518において、「スイッチ」フラグが、処理装置識
別値として記憶されていると判断されると、連結装置3
4は、一次シーケンスFIFO28から次の処理装置識
別値を読み取るべきであると判断する。一方、「スイッ
チ」フラグが代替シーケンスFIFO30が記憶されて
いなければ、ステップ520において、連結装置34は
、識別された処理装置の出力FIFO26がそのデータ
の出力準備が整っているか否かを判定する。識別された
処理装置24に関する出力FIFO26の出力準備が整
っていると、出力FIFO26に記憶された次のワード
が、ステップ522において、データストリームの次の
ワードとして転送される。連結装置34は、次に、ステ
ップ524において、このデータ転送が、その指令に関
する処理データの最後のワードについてのものか否かを
判定し、そうでなければ、同じ出力FIFO26からデ
ータの次のワードを読み取る。処理データの最後のワー
ドが読み取られると、処理は、ステップ514に戻り、
ステップ518において、「スイッチ」フラグが見つか
ると、一次シーケンスFIFO28が読み取られる。こ
うして、処理データは、指令がS/P指令分散装置20
によって分散された元の配列と同じ配列に再構成するこ
とが可能になる。
【0047】当該技術の熟練者には明らかなように、本
発明の異なる特定の特徴に関して、他の技法を実施する
ことも可能である。例えば、一次シーケンスFIFO2
8と代替シーケンスFIFO30のどちらの読取りを行
なうかを判定するため、連結装置34は、一次シーケン
スFIFO28と代替FIFO30のそれぞれに関する
状況ビットを絶えずチェックすることによって、読み取
るべきFIFOがどちらかを判定することが可能になる
。従って、状況ビットの状態は、「スイッチ」フラグま
たは「代替」指令またはフラグを利用する代りに、変更
することが可能である。さらに、出力が不要であったと
しても、大域指令を受信したことを表わす値が、一次シ
ーケンスFIFO28に記憶されている可能性があり、
従って、順序づけされた元の配列全体を再構成すること
ができる。 また、大域指令が、ハードウェアの更新に備えて、下流
のハードウェアに処理データを送らなければならない場
合、上述の技法に従って、ある処理装置識別値を任意に
選択し、適正なデータを下流に送ることができる。すな
わち、選択された処理装置は、出力を発生させる他の指
令の場合と同じやり方で、ハードウェア変更指令を下流
に送ることができる。
発明の異なる特定の特徴に関して、他の技法を実施する
ことも可能である。例えば、一次シーケンスFIFO2
8と代替シーケンスFIFO30のどちらの読取りを行
なうかを判定するため、連結装置34は、一次シーケン
スFIFO28と代替FIFO30のそれぞれに関する
状況ビットを絶えずチェックすることによって、読み取
るべきFIFOがどちらかを判定することが可能になる
。従って、状況ビットの状態は、「スイッチ」フラグま
たは「代替」指令またはフラグを利用する代りに、変更
することが可能である。さらに、出力が不要であったと
しても、大域指令を受信したことを表わす値が、一次シ
ーケンスFIFO28に記憶されている可能性があり、
従って、順序づけされた元の配列全体を再構成すること
ができる。 また、大域指令が、ハードウェアの更新に備えて、下流
のハードウェアに処理データを送らなければならない場
合、上述の技法に従って、ある処理装置識別値を任意に
選択し、適正なデータを下流に送ることができる。すな
わち、選択された処理装置は、出力を発生させる他の指
令の場合と同じやり方で、ハードウェア変更指令を下流
に送ることができる。
【0048】さらに、本発明によれば、複数の処理装置
によって並列に処理できるBスプライン指令のような指
令の場合、共用メモリ32にフラグを利用して、次に処
理されるのがどのブロックになるかを表示することも可
能である。従って、処理装置が、Sバスを制御し、共用
メモリ32にアクセスして、次に処理すべきデータブロ
ックがどれか判定する場合、フラグをチェックして、次
にどのデータブロックを処理すべきかを判定するだけで
よい。また、大域指令は、本発明により、S/P指令分
散装置20によって、分散される場合、入力FIFOの
1つが満杯でない限り、すぐに全ての入力FIFO22
に転送することができる。こうした場合、S/P指令分
散装置20は、入力FIFOの全てが同期のために空に
なるまで、待機するのではなく、入力FIFO22の全
てが大域指令を受けることが可能になるまで待機して、
大域指令を分散しさえすればよい。本発明に従って用い
られる全てのこうしたFIFOは、最高の性能を確保す
るのに妥当な数の大域指令にバッファリングを施すのに
十分な深さを備えているのが望ましい。さらに、各処理
装置の動作が独立しているため、追加処理装置を簡単に
追加することができるので、複雑なソフトウェアを並列
に扱うことができるようにすることによって、処理効率
をより極限にまで高めることが可能になる。
によって並列に処理できるBスプライン指令のような指
令の場合、共用メモリ32にフラグを利用して、次に処
理されるのがどのブロックになるかを表示することも可
能である。従って、処理装置が、Sバスを制御し、共用
メモリ32にアクセスして、次に処理すべきデータブロ
ックがどれか判定する場合、フラグをチェックして、次
にどのデータブロックを処理すべきかを判定するだけで
よい。また、大域指令は、本発明により、S/P指令分
散装置20によって、分散される場合、入力FIFOの
1つが満杯でない限り、すぐに全ての入力FIFO22
に転送することができる。こうした場合、S/P指令分
散装置20は、入力FIFOの全てが同期のために空に
なるまで、待機するのではなく、入力FIFO22の全
てが大域指令を受けることが可能になるまで待機して、
大域指令を分散しさえすればよい。本発明に従って用い
られる全てのこうしたFIFOは、最高の性能を確保す
るのに妥当な数の大域指令にバッファリングを施すのに
十分な深さを備えているのが望ましい。さらに、各処理
装置の動作が独立しているため、追加処理装置を簡単に
追加することができるので、複雑なソフトウェアを並列
に扱うことができるようにすることによって、処理効率
をより極限にまで高めることが可能になる。
【0049】
【発明の効果】以上のように、本発明によれば、高速バ
ス調停ハードウェアを利用して、真の「先着順サービス
」に基づき、直列命令ストリームをなすデータを複数の
並列処理装置に分散するハードウェア分散装置が提供さ
れる。本発明においては、先行技術におけるように、指
令にパージングを施しロード平衡演算を行なうのに、複
合プロセッサを必要とはしない。さらに、本発明によっ
て、処理後、全指令ストリームを適正な順序に組み換え
ることが可能になり、また、かなりの処理を必要とする
単一の指令を全てのプロセッサで並列に実行し、その結
果の各部分が異なるプロセッサから得られ、再順序づけ
時にその順序が破壊されないようにすることも可能にな
る。さらに、同期が不要のため、全てのプロセッサの準
備が整うまで待つ代りに、第1のプロセッサがそれ以上
の仕事に対して準備が整っていれば、大域指令を送るこ
とができる。本発明のシステムは、従って、処理効率の
大幅な改善を可能にする。
ス調停ハードウェアを利用して、真の「先着順サービス
」に基づき、直列命令ストリームをなすデータを複数の
並列処理装置に分散するハードウェア分散装置が提供さ
れる。本発明においては、先行技術におけるように、指
令にパージングを施しロード平衡演算を行なうのに、複
合プロセッサを必要とはしない。さらに、本発明によっ
て、処理後、全指令ストリームを適正な順序に組み換え
ることが可能になり、また、かなりの処理を必要とする
単一の指令を全てのプロセッサで並列に実行し、その結
果の各部分が異なるプロセッサから得られ、再順序づけ
時にその順序が破壊されないようにすることも可能にな
る。さらに、同期が不要のため、全てのプロセッサの準
備が整うまで待つ代りに、第1のプロセッサがそれ以上
の仕事に対して準備が整っていれば、大域指令を送るこ
とができる。本発明のシステムは、従って、処理効率の
大幅な改善を可能にする。
【0050】本発明の典型的な実施例について詳述して
きたが、当該技術の熟練者にはすぐ分るように、本発明
の新規な教示及び利点からあまり逸脱することなく、典
型的な実施例に多くの修正を追加することが可能である
。例えば、本発明に基づいて解説の技法は、本書に記述
のグラフィックスシステムではなく、他の処理環境にお
ける大幅に異なるタイプの指令についても適用可能であ
る。本発明は、処理装置の全てが同期するのを無駄に待
たされることなく、並列処理装置に加えられるストリー
ムをなす指令の順序づけされた配列が維持されるのが望
ましい、他の処理システムに関連して用いることができ
る。従って、こうした修正は、全て、下記クレームに定
義の本発明の範囲に含まれるものとする。
きたが、当該技術の熟練者にはすぐ分るように、本発明
の新規な教示及び利点からあまり逸脱することなく、典
型的な実施例に多くの修正を追加することが可能である
。例えば、本発明に基づいて解説の技法は、本書に記述
のグラフィックスシステムではなく、他の処理環境にお
ける大幅に異なるタイプの指令についても適用可能であ
る。本発明は、処理装置の全てが同期するのを無駄に待
たされることなく、並列処理装置に加えられるストリー
ムをなす指令の順序づけされた配列が維持されるのが望
ましい、他の処理システムに関連して用いることができ
る。従って、こうした修正は、全て、下記クレームに定
義の本発明の範囲に含まれるものとする。
【図1】本発明に基づき、直列指令ストリームデータを
並列プロセッサに分散させるためのハードウェア分散装
置のブロック図である。
並列プロセッサに分散させるためのハードウェア分散装
置のブロック図である。
【図2】本発明に基づき、直列/並列指令分散装置を動
作するためのアルゴリズムを示す流れ図である。
作するためのアルゴリズムを示す流れ図である。
【図3】本発明に基づき、各プロセッサが入力データの
準備が完了したかどうかを表示するための手段のブロッ
ク図である。
準備が完了したかどうかを表示するための手段のブロッ
ク図である。
【図4】処理が他のプロセッサと共有されるような複合
指令を処理する場合に各プロセッサで用いられるアルゴ
リズムを示す流れ図である。
指令を処理する場合に各プロセッサで用いられるアルゴ
リズムを示す流れ図である。
【図5】本発明に基づき、処理済みデータを直列処理デ
ータストリームに再組み換えするための、図1に示す連
結装置の動作を示すアルゴリズムの流れ図である。
ータストリームに再組み換えするための、図1に示す連
結装置の動作を示すアルゴリズムの流れ図である。
10…ホストプロセッサ
12…ホストシステムI/Oバス
14…ホストインタフェース
16…入力プロセッサ
18…ソースFIFO
20…S/P指令分散装置
22…入力FIFO
24…プロセッサ
26…出力FIFO
28…一次シーケンスFIFO
30…代替シーケンスFIFO
32…共有メモリ
34…連結装置
Claims (1)
- 【請求項1】直列ストリームをなすデータ処理指令及び
関連するデータを1つ以上の並列処理装置に分散して、
処理が加えられるようにするための装置であって:前記
直列命令ストリームをなすデータ処理指令及び関連デー
タを提供する手段と;前記1つ以上の並列装置の内の1
つが入力データを受けて、処理を行うことができるかど
うかを表示するための手段と;前記直列命令ストリーム
をなすデータ処理指令及び関連データ処理の各指令毎に
、前記提供手段によって提供されるそれぞれの指令毎に
処理を行なう処理装置として、データ処理装置の選択を
行なうための手段であって、入力データを受けて、処理
を行なうことができるものとして、前記表示手段によっ
て示される手段と;さらに、前記提供手段からの各指令
が、それぞれ、処理に合わせて割り当てられる、処理装
置を表わした処理装置識別値を記録する手段と;から成
ることを特徴とする装置。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US49251690A | 1990-03-12 | 1990-03-12 | |
| US492516 | 1990-03-12 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH04219859A true JPH04219859A (ja) | 1992-08-10 |
Family
ID=23956575
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3041829A Pending JPH04219859A (ja) | 1990-03-12 | 1991-03-07 | 並列プロセッサに直列命令ストリームデータを分散するハードウェアディストリビュータ |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US5325493A (ja) |
| EP (1) | EP0447146A3 (ja) |
| JP (1) | JPH04219859A (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008083808A (ja) * | 2006-09-26 | 2008-04-10 | Nippon Telegr & Teleph Corp <Ntt> | フィルタ処理装置、データ蓄積装置、共有情報管理装置、フィルタ処理方法およびフィルタ処理プログラム |
| JP2019032864A (ja) * | 2013-02-19 | 2019-02-28 | オラクル・インターナショナル・コーポレイション | 連続イベント処理(cep)クエリの並列の実行 |
| US10657138B2 (en) | 2012-09-28 | 2020-05-19 | Oracle International Corporation | Managing continuous queries in the presence of subqueries |
Families Citing this family (67)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0475282B1 (en) * | 1990-09-14 | 1998-12-16 | Hitachi, Ltd. | Synchronous method and apparatus for processors |
| JP3057460B2 (ja) * | 1991-08-22 | 2000-06-26 | インターナショナル・ビジネス・マシーンズ・コーポレイション | マルチプロセッサ・システム、およびそのマルチプロセッサ・システムを用いたグラフィックス表示装置 |
| US5315701A (en) * | 1992-08-07 | 1994-05-24 | International Business Machines Corporation | Method and system for processing graphics data streams utilizing scalable processing nodes |
| JP3208870B2 (ja) * | 1992-10-30 | 2001-09-17 | 株式会社日立製作所 | データ分割パタンの評価方法 |
| US5463732A (en) * | 1994-05-13 | 1995-10-31 | David Sarnoff Research Center, Inc. | Method and apparatus for accessing a distributed data buffer |
| US5671377A (en) * | 1994-07-19 | 1997-09-23 | David Sarnoff Research Center, Inc. | System for supplying streams of data to multiple users by distributing a data stream to multiple processors and enabling each user to manipulate supplied data stream |
| JPH08249254A (ja) * | 1995-03-15 | 1996-09-27 | Mitsubishi Electric Corp | マルチコンピュータシステム |
| GB2299421A (en) * | 1995-03-29 | 1996-10-02 | Sony Uk Ltd | Processing real-time data streams |
| US7301541B2 (en) * | 1995-08-16 | 2007-11-27 | Microunity Systems Engineering, Inc. | Programmable processor and method with wide operations |
| US5978865A (en) * | 1997-02-04 | 1999-11-02 | Advanced Micro Devices, Inc. | System for performing DMA transfers where an interrupt request signal is generated based on the value of the last of a plurality of data bits transmitted |
| US6230245B1 (en) | 1997-02-11 | 2001-05-08 | Micron Technology, Inc. | Method and apparatus for generating a variable sequence of memory device command signals |
| US6175894B1 (en) | 1997-03-05 | 2001-01-16 | Micron Technology, Inc. | Memory device command buffer apparatus and method and memory devices and computer systems using same |
| US6786420B1 (en) | 1997-07-15 | 2004-09-07 | Silverbrook Research Pty. Ltd. | Data distribution mechanism in the form of ink dots on cards |
| JP3739888B2 (ja) * | 1997-03-27 | 2006-01-25 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置および方法 |
| US5996043A (en) | 1997-06-13 | 1999-11-30 | Micron Technology, Inc. | Two step memory device command buffer apparatus and method and memory devices and computer systems using same |
| US6484244B1 (en) | 1997-06-17 | 2002-11-19 | Micron Technology, Inc. | Method and system for storing and processing multiple memory commands |
| US6618117B2 (en) | 1997-07-12 | 2003-09-09 | Silverbrook Research Pty Ltd | Image sensing apparatus including a microcontroller |
| US6624848B1 (en) * | 1997-07-15 | 2003-09-23 | Silverbrook Research Pty Ltd | Cascading image modification using multiple digital cameras incorporating image processing |
| US6879341B1 (en) | 1997-07-15 | 2005-04-12 | Silverbrook Research Pty Ltd | Digital camera system containing a VLIW vector processor |
| US20040119829A1 (en) | 1997-07-15 | 2004-06-24 | Silverbrook Research Pty Ltd | Printhead assembly for a print on demand digital camera system |
| US7110024B1 (en) | 1997-07-15 | 2006-09-19 | Silverbrook Research Pty Ltd | Digital camera system having motion deblurring means |
| US6690419B1 (en) | 1997-07-15 | 2004-02-10 | Silverbrook Research Pty Ltd | Utilising eye detection methods for image processing in a digital image camera |
| US6202119B1 (en) * | 1997-12-19 | 2001-03-13 | Micron Technology, Inc. | Method and system for processing pipelined memory commands |
| US6385670B1 (en) * | 1998-06-01 | 2002-05-07 | Advanced Micro Devices, Inc. | Data compression or decompressions during DMA transfer between a source and a destination by independently controlling the incrementing of a source and a destination address registers |
| US6175905B1 (en) | 1998-07-30 | 2001-01-16 | Micron Technology, Inc. | Method and system for bypassing pipelines in a pipelined memory command generator |
| US6268874B1 (en) * | 1998-08-04 | 2001-07-31 | S3 Graphics Co., Ltd. | State parser for a multi-stage graphics pipeline |
| ATE557342T1 (de) * | 1998-08-24 | 2012-05-15 | Microunity Systems Eng | Prozessor und verfahren zur matrixmultiplikation mit einem breiten operand |
| US7932911B2 (en) * | 1998-08-24 | 2011-04-26 | Microunity Systems Engineering, Inc. | Processor for executing switch and translate instructions requiring wide operands |
| US6178488B1 (en) | 1998-08-27 | 2001-01-23 | Micron Technology, Inc. | Method and apparatus for processing pipelined memory commands |
| AUPP702098A0 (en) | 1998-11-09 | 1998-12-03 | Silverbrook Research Pty Ltd | Image creation method and apparatus (ART73) |
| JP2000222590A (ja) * | 1999-01-27 | 2000-08-11 | Nec Corp | 画像処理方法及び装置 |
| US7526630B2 (en) | 1999-04-09 | 2009-04-28 | Clearspeed Technology, Plc | Parallel data processing apparatus |
| US7506136B2 (en) | 1999-04-09 | 2009-03-17 | Clearspeed Technology Plc | Parallel data processing apparatus |
| US7627736B2 (en) | 1999-04-09 | 2009-12-01 | Clearspeed Technology Plc | Thread manager to control an array of processing elements |
| GB2394815B (en) * | 1999-04-09 | 2004-08-25 | Clearspeed Technology Ltd | Parallel data processing systems |
| US7802079B2 (en) | 1999-04-09 | 2010-09-21 | Clearspeed Technology Limited | Parallel data processing apparatus |
| GB2348973B (en) * | 1999-04-09 | 2004-03-10 | Pixelfusion Ltd | Parallel data processing systems |
| AUPQ056099A0 (en) | 1999-05-25 | 1999-06-17 | Silverbrook Research Pty Ltd | A method and apparatus (pprint01) |
| US6643752B1 (en) * | 1999-12-09 | 2003-11-04 | Rambus Inc. | Transceiver with latency alignment circuitry |
| US6473085B1 (en) * | 1999-12-17 | 2002-10-29 | International Business Machines Corporation | System for dynamically adjusting image quality for interactive graphics applications |
| US7017002B2 (en) * | 2000-01-05 | 2006-03-21 | Rambus, Inc. | System featuring a master device, a buffer device and a plurality of integrated circuit memory devices |
| US7404032B2 (en) * | 2000-01-05 | 2008-07-22 | Rambus Inc. | Configurable width buffered module having switch elements |
| US7266634B2 (en) * | 2000-01-05 | 2007-09-04 | Rambus Inc. | Configurable width buffered module having flyby elements |
| US7363422B2 (en) * | 2000-01-05 | 2008-04-22 | Rambus Inc. | Configurable width buffered module |
| US20050010737A1 (en) * | 2000-01-05 | 2005-01-13 | Fred Ware | Configurable width buffered module having splitter elements |
| US6502161B1 (en) | 2000-01-05 | 2002-12-31 | Rambus Inc. | Memory system including a point-to-point linked memory subsystem |
| US7356639B2 (en) * | 2000-01-05 | 2008-04-08 | Rambus Inc. | Configurable width buffered module having a bypass circuit |
| CN100367730C (zh) * | 2001-02-14 | 2008-02-06 | 克利尔斯皮德科技有限公司 | 一种互连系统 |
| US6864896B2 (en) * | 2001-05-15 | 2005-03-08 | Rambus Inc. | Scalable unified memory architecture |
| US7240347B1 (en) * | 2001-10-02 | 2007-07-03 | Juniper Networks, Inc. | Systems and methods for preserving the order of data |
| US8005978B1 (en) * | 2002-03-01 | 2011-08-23 | Cisco Technology, Inc. | Method to optimize the load balancing of parallel coprocessors |
| US7408945B2 (en) * | 2003-10-14 | 2008-08-05 | International Business Machines Corporation | Use of hardware to manage dependencies between groups of network data packets |
| US7895431B2 (en) * | 2004-09-10 | 2011-02-22 | Cavium Networks, Inc. | Packet queuing, scheduling and ordering |
| US7965708B2 (en) * | 2005-06-07 | 2011-06-21 | Cisco Technology, Inc. | Method and apparatus for using meta-packets in a packet processing system |
| US11328764B2 (en) | 2005-09-26 | 2022-05-10 | Rambus Inc. | Memory system topologies including a memory die stack |
| US7464225B2 (en) * | 2005-09-26 | 2008-12-09 | Rambus Inc. | Memory module including a plurality of integrated circuit memory devices and a plurality of buffer devices in a matrix topology |
| US7562271B2 (en) | 2005-09-26 | 2009-07-14 | Rambus Inc. | Memory system topologies including a buffer device and an integrated circuit memory device |
| US8233527B2 (en) | 2007-05-11 | 2012-07-31 | Advanced Micro Devices, Inc. | Software video transcoder with GPU acceleration |
| US8861591B2 (en) * | 2007-05-11 | 2014-10-14 | Advanced Micro Devices, Inc. | Software video encoder with GPU acceleration |
| EP2347352B1 (en) * | 2008-09-16 | 2019-11-06 | Beckman Coulter, Inc. | Interactive tree plot for flow cytometry data |
| KR101519825B1 (ko) * | 2008-12-05 | 2015-05-13 | 삼성전자주식회사 | 데이터 처리 장치 및 그 제어 방법 |
| WO2012046300A1 (ja) * | 2010-10-05 | 2012-04-12 | 富士通株式会社 | 情報処理装置、情報処理プログラム、および情報処理方法 |
| US9838500B1 (en) * | 2014-03-11 | 2017-12-05 | Marvell Israel (M.I.S.L) Ltd. | Network device and method for packet processing |
| US9785565B2 (en) | 2014-06-30 | 2017-10-10 | Microunity Systems Engineering, Inc. | System and methods for expandably wide processor instructions |
| US10564929B2 (en) * | 2016-09-01 | 2020-02-18 | Wave Computing, Inc. | Communication between dataflow processing units and memories |
| KR102839491B1 (ko) | 2019-07-24 | 2025-07-25 | 삼성전자주식회사 | 집적회로 장치, 시스템 온 칩 및 패킷 처리 방법 |
| CN116185497B (zh) * | 2023-01-06 | 2024-05-07 | 格兰菲智能科技有限公司 | 命令解析方法、装置、计算机设备和存储介质 |
Family Cites Families (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4356546A (en) * | 1980-02-05 | 1982-10-26 | The Bendix Corporation | Fault-tolerant multi-computer system |
| US4644461A (en) * | 1983-04-29 | 1987-02-17 | The Regents Of The University Of California | Dynamic activity-creating data-driven computer architecture |
| US4918689A (en) * | 1985-10-10 | 1990-04-17 | Bell Communications Research, Inc. | Asynchronous communication system |
| US4744023A (en) * | 1985-12-16 | 1988-05-10 | American Telephone And Telegraph Company, At&T Information Systems | Processor access control arrangement in a multiprocessor system |
| US4853877A (en) * | 1986-04-21 | 1989-08-01 | Hewlett-Packard Company | Apparatus and method for efficient plotting |
| EP0258650B1 (en) * | 1986-08-01 | 1995-04-12 | Hitachi, Ltd. | Parallel computer system capable of asynchronous data transmission |
| US4980824A (en) * | 1986-10-29 | 1990-12-25 | United Technologies Corporation | Event driven executive |
| US5010515A (en) * | 1987-07-28 | 1991-04-23 | Raster Technologies, Inc. | Parallel graphics processor with workload distributing and dependency mechanisms and method for distributing workload |
| US4885703A (en) * | 1987-11-04 | 1989-12-05 | Schlumberger Systems, Inc. | 3-D graphics display system using triangle processor pipeline |
| US5050070A (en) * | 1988-02-29 | 1991-09-17 | Convex Computer Corporation | Multi-processor computer system having self-allocating processors |
| US4922486A (en) * | 1988-03-31 | 1990-05-01 | American Telephone And Telegraph Company | User to network interface protocol for packet communications networks |
| US4949280A (en) * | 1988-05-10 | 1990-08-14 | Battelle Memorial Institute | Parallel processor-based raster graphics system architecture |
| US5067069A (en) * | 1989-02-03 | 1991-11-19 | Digital Equipment Corporation | Control of multiple functional units with parallel operation in a microcoded execution unit |
| US5226126A (en) * | 1989-02-24 | 1993-07-06 | Nexgen Microsystems | Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags |
-
1991
- 1991-03-07 JP JP3041829A patent/JPH04219859A/ja active Pending
- 1991-03-11 EP EP19910301983 patent/EP0447146A3/en not_active Withdrawn
-
1993
- 1993-03-30 US US08/041,298 patent/US5325493A/en not_active Expired - Lifetime
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008083808A (ja) * | 2006-09-26 | 2008-04-10 | Nippon Telegr & Teleph Corp <Ntt> | フィルタ処理装置、データ蓄積装置、共有情報管理装置、フィルタ処理方法およびフィルタ処理プログラム |
| US10657138B2 (en) | 2012-09-28 | 2020-05-19 | Oracle International Corporation | Managing continuous queries in the presence of subqueries |
| US10891293B2 (en) | 2012-09-28 | 2021-01-12 | Oracle International Corporation | Parameterized continuous query templates |
| US11182388B2 (en) | 2012-09-28 | 2021-11-23 | Oracle International Corporation | Mechanism to chain continuous queries |
| JP2019032864A (ja) * | 2013-02-19 | 2019-02-28 | オラクル・インターナショナル・コーポレイション | 連続イベント処理(cep)クエリの並列の実行 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0447146A3 (en) | 1993-01-07 |
| US5325493A (en) | 1994-06-28 |
| EP0447146A2 (en) | 1991-09-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH04219859A (ja) | 並列プロセッサに直列命令ストリームデータを分散するハードウェアディストリビュータ | |
| US5337410A (en) | Data stream concentrator providing attribute data storage and graphics pipeline access | |
| JP4249397B2 (ja) | グラフィックス・パイプラインを同期化する方法および装置 | |
| US6002412A (en) | Increased performance of graphics memory using page sorting fifos | |
| US7522171B1 (en) | On-the-fly reordering of 32-bit per component texture images in a multi-cycle data transfer | |
| US6304952B1 (en) | Information processing apparatus and information processing method | |
| EP0817008B1 (en) | Three-dimensional graphics accelerator which implements multiple logical buses | |
| 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 | |
| US7664922B2 (en) | Data transfer arbitration apparatus and data transfer arbitration method | |
| US6762763B1 (en) | Computer system having a distributed texture memory architecture | |
| JPH10116355A (ja) | 性能改善のためにダイレクト・データ・チャネルを備えた3次元グラフィックス・アクセレータ | |
| JPH1185512A (ja) | 命令圧縮格納および命令復元機能を有するデータ処理装置 | |
| US7170512B2 (en) | Index processor | |
| US6985151B1 (en) | Shader pixel storage in a graphics memory | |
| JPH03188546A (ja) | バスインターフェイス制御方式 | |
| US5890203A (en) | Data transfer device for transfer of data distributed and stored by striping | |
| JP3098342B2 (ja) | 並列処理装置における処理順序指定方式 | |
| US6795075B1 (en) | Graphic processor having multiple geometric operation units and method of processing data thereby | |
| JP3688618B2 (ja) | データ処理システム及びデータ処理方法、コンピュータプログラム、記録媒体 | |
| US6795874B2 (en) | Direct memory accessing | |
| US7404056B1 (en) | Virtual copying scheme for creating multiple versions of state information | |
| US7489315B1 (en) | Pixel stream assembly for raster operations | |
| US6166724A (en) | Method and apparatus for sequencing palette updates in a video graphics system | |
| US7593971B1 (en) | Configurable state table for managing multiple versions of state information | |
| JP4497445B2 (ja) | 単一のプロセッサを使用してのオーバーラップするグラフィックス・データの収集および伝送のための方法、システムおよびコンピュータ・プログラム製品 |