本発明は並列コンピユータ処理システムに関する。computer,たとえばグラフイツクのデータの要素について遂行される変換に含まれる複雑なマトリツクス乗算のために、その処理システムに課せられる要求を増大した。これ等の要求はこの処理をより効率的に高速度で遂行するように、プロセツサ、通常はマイクロプロセツサ、を並列もしくはパイプライン構造で構成することに関して論議を生じた。Clark)に開示されている。2変数演算を行うように設計されている。このプロセツサはマトリツクス乗算用の並列構成に設計されている。本発明の目的は、従来のプロセツサと比較して、マトリツクス乗算のような複雑な算術演算の実行の際のプログラム及び制御が比較的容易な、並列もしくはパイプライン構造(あるいはその両方)で接続できる、マイクロプロセツサのようなプロセツサを与えることにある。本発明に従えば、演算論理機構及び出力の先入れ先出し(FIFO)レジスタ・スタツクより成るプロセツサが与えられる。出力データ線は他のこのようなプロセツサの出力データ線と並列に接続される。これ等の出力データ線は、他のプロセツサがその出力データ線に予定の中性値を与える時に出力データ線にデータを与えるように構成されている。lines.この新規なプロセツサ構成によれば、このようなプロセツサを相互接続することによつてより大きなコンピユータ・システムを構成できる。本発明のこの態様に従えば、コンピユータ・システムはこのようなプロセツサを複数個有し、それ等の入力は並列に入力バスに接続され、それ等の出力はたとえば結線ANDに接続され、さらに入力バス上に、1クロツク・サイクルで遂行される計算の一部のための、入力データ及び制御データを与えるシステム構成要素を有する。制御データはプロセツサの各々を制御して、そのプロセツサに割当て可能な計算部分を夫々計算させ、その出力FIFOスタツク中に、遂行される計算に関するその相対位置に依存して計算結果もしくは中性値、たとえば論理“1"を置く。従つて、複数のプロセツサが複数の計算を遂行し、そして場合に応じて、それ等の計算出力の部分もしくは“1"をそれ等の出力に与え、適切な論理的流れを与えるようにこれ等の出力を適切に順序付けて、究極的な結果を形成する。result.従つて本発明は従来の構造と比較して並列パイプライン処理のためのコスト及び速度に著しい改良を与える。用いて複数のプロセツサを制御する必要をなくする。第1図はプロセツサ12−28の並列及びパイプライン構造より成る処理システム10を示す。このようなプロセツサの構造は、たとえばマトリツクス乗算のような多数の乗算を遂行する時に望まれる。パイプライン及び並列処理は単一のプロセツサを使用する場合に可能なよりも少ないサイクルでマトリツクスの乗算を行う。36より成る、本発明の好ましい実施例に従う処理構成要素(プロセツサ)のブロツク図を示す。この組合せはプロセツサ12−28の1つのような、完全な個々の処理構成要素を形成する。FIFO34とこれを含むプロセツサの内部及び外部への接続である。same.このような処理構成要素の各々はそのMCU36の制御下にある。このタイプの制御装置は一般に知られている。これは入力装置からのデータの読取りを制御し、ALUの機能を制御し、出力装置への書込みを制御する能力を有するように構成されている。MCU36は入力FIFO30からの入力空き線38のステータス及び出力FIFO34からの充満線40のステータスをテストして、適切な条件の下でこれ等の線のステータスに基づいてアイドル・サイクル中は待機する。FIFO30を読取ろうとするか、充満の出力FIFO34に書込もうとする時にアイドル・サイクルを発生するように構成されている。MCUはある他の処理構成要素がデータを入力FIFO30中に置くか、その出力FIFO34からデータを取出す迄アイドル・サイクルの実行を続ける。34.好ましい実施例のALU32の機能は浮動小数点の乗算及び加算を含み、望ましい応用と考えられているマトリツクス乗算アルゴリズムの高速度計算を可能とする。FIFO30は特にパイプライン構造にされた時に、処理構成要素のなめらかな動作を助けるバツフアリングを与える。components.入力FIFO30の構造は出力FIFO34の構造と似ているが、両者については以下詳細に説明する。48、条件コード線50、入力FIFO読取り線52、出力FIFO書込み線54、ALUバス線56、入力FIFOバス58、出力FIFO読取り線60、出力データ線62はすべて標準の線であり、従来のよく知られた技術に従つて具体化された標準の特徴を有する。出力FIFOデータ有効線64及びホール線66については以下に詳細に説明する。below.第2図に示された出力FIFO34の動作を説明る前に、“ホール(hole)”の概念について簡単に説明する。“ホール”の動作の詳細については、さらに以下詳細に説明する。16,18のための出力FIFO34A−Dの内容を示す。これ等の図中で“H"はFIFOレジスタ中の位置保持子であるデータ“ホール”を表わしていて、データを表わしてはいない。(s)をそのレジスタの位置にロードすることによつて発生される。processor12−18によつて並列に計算されたベクトル計算の結果の値X、Y、Z、Wである。これ等のプロセツサは夫々の結果が順次相継いでそれ等の出力に現われるようになつている。another.第3A図で、値Xの計算結果はFIFO34Aの出力に現われている。他の出力FIFO34B−Dのすべての出力にはホールが現われている。好ましい実施例では、出力FIFOの出力ドライバはオープン・コレクタである。ホールはデータ“1"であるから、すべての出力FIFOが接続された出力バスに現われる値は任意の他の出力FIFOの内容によつて影響を受けない、値Xとなる。X.第3B図は1サイクル後のこれ等の出力FIFOの内容を示していて、計算結果Yが出力FIFO34Bの出力に与えられている。ホールは他の出力FIFO34A、C、Dの出力のすべてに現われている。従つて、適切な位置にホールをロードすることによつて、並列計算を遂行し、そして、すべての並列プロセツサが接続された出力バス上に計算結果を順次に置くことができる。sequentially.第2図を再び参照すると、出力FIFO34は各処理構成要素にもたらされる単一のシステム・クロツクによつてクロツクされるという意味で同期FIFOである。出力FIFO34の入力側及び出力FIFO34の出力側は同じクロツク速度で走行する。FIFO34の詳細を示す。出力FIFO34は8×32の2重ポート・ランダム・アクセス・メモリ(“RAM")70、及びこれを制御するのに必要な論理装置、出力FIFO制御装置72によつて構成されている。このRAM70は出力FIFO制御装置72によつて与えられる標準の読取りアドレス入力74、書込みアドレス入力76及び書込みイネーブル入力78を有する。RAM70は各サイクル毎に読取り及び書込みを行うことができる。入力バス80は32個の2入力ORゲート82の出力である。32個の2入力ORゲート82への入力は32ビツトALUバス56の個々のビツトであり、32個のすべてのORゲートには共通にホール線66が接続されている。活性化されると、ホール線66はRAM70への入力をすべて1にする。lineFO34に対して発生する。open-collectorドライバ86への入力として接続されている。86の出力はこの処理構成要素から取出されて、この処理構成要素が並列に接続されている他の処理構成要素中の出力FIFOのオープン・コレクタに接続されている。FIFO制御装置72はすでに説明した書込みアドレス、読取りアドレス及び書込みイネーブル信号に加えて、出力充満信号40及び出力空き信号88を発生する。outputFIFOの他の反転ドライバの出力に並列に接続されている。input,出力FIFO書込み線54及び出力FIFOデータ有効線64を受取る。stageFIFO制御装置から到来する(第9図)。出力FIFO書込み線54はMCU36(第2図)によつてこの処理構成要素の内容で発生される。出力FIFOデータ有効信号64は上述のようにドツトAND出力によつて発生される。出力FIFOデータ有効線64上の値は出力空き線88の単なら反転ではないことに注意されたい。parallelAND機能によつて夫々の内容の空きを断言しない時にだけ有効を断言する。出力FIFOデータ有効線64はすべての並列に接続された出力FIFOが空きでないことを表わす。empty.第5図は出力FIFO制御装置72(第4図)の内部を示す。92及び3ビツト書込みレジスタ94より成る書込みアドレス論理装置を含む。同じようにこれはゲート96、3ビツト・インクレメンタ98及び読取りレジスタ100より成る読取りアドレス論理装置を含んでいる。これは3ビツト比較装置(=)102、ゲート104、単一ビツト・レジスタ106及び単一ビツト・レジスタ108より成る状態マシンを含んでいる。第6図はこの状態マシンのための状態図を示している。machine.第4図を再び参照するに、読取り及び書込みアドレスは2重ポートRAM70へのポインタとして使用される。読取りポインタはスタツクの最上部を指示し、書込みポインタはスタツクの最下部を指示する。ポインタは循環するようにインクレメントされる(即ち0を通して循環する)。ボインタがいつか等しくなる時は、FIFOは空きであるか充満されている。empty.状態マシンは10=空き、00=どちらでもない、01=充満のうちポインタがどの状態にあるかを見失わないようにしている。最初、ポインタは図示されていない簡単な論理装置によつて等しくされ、状態は空き状態にされる。state.空き状態は読取りを阻止する。書込みが生ずると、書込みポインタはインクレメントされる。これによつて脱空き断言の方に循環を生じ、「どちらでもない」状態に入る。「どちらでもない」状態では読取り及び書込みが許可される。ポインタが再じ等しくなる迄は状態マシンは「どちらでもない」状態に留まる。読取りが生じたことを示すINC読取り線110(第5図)は充満状態に進むべきか空き状態に戻るべきかを判断するのに使用される。INC読取り線110が活性でない時は、書込みポインタは充満状態にある読取りポインタの最上部の上に移動する。充満状態にある時は、書込みは阻止される。読取りが生ずると、「どちらでもない」状態に再導入する。state.状態式は次のように表わせる。second図)を示している。FIFO34(第4図)とほとんど同じである。これは主に2重ポートRAM270及び適切な制御論理装置である、入力FIFO制御装置272より成る。pipelineプロセツサからの入力データ・バス42である。中性値を発生するための、ORゲート82(第4図)のようなORゲートは存在しない。RAMの出力バス58はALU32の入力バスになつている(第2図)。MCU36(第2図)は入力FIFO読取り線52を与え、入力として入力空き線38を有する。このことは出力FIFO書込み線54及び出力充満線40に接続されている出力FIFO(第4図参照)と対照的である。入力空き線240は反転オープン・コレクタ・ドライバ284に接続されている。オープン・コレクタ・ドライバ284の出力は入力FIFO位置利用可能線46であり、線46はこのプロセツサと並列な他のプロセツサの他の入力FIFO位置利用可能線に並列に接続されている。inputsFIFO書込み線44を入力として有する。この線44は前段のパイプライン・プロセツサから到来する。processor.第8図は入力FIFO制御装置272(第7図)の内部を示す。FIFO34のゲート90及び96への接続にある。inputsO位置利用可能線46を有する。ゲート296は入力として夫々非反転入力及び反転入力に入力FIFO読取り線52及び入力空き線38を有する。他の線は図示されたとおりである。shown.上述のとおり、好ましい実施例における処理構成要素は特に他の同じ処理構成要素と並列に有利に動作できるように設計されている。この動作を援助するには極くわずかのマイクロコードが必要である。利点を説明するのに最も良い例である。代表的な図形座標変換では、座標はデータx、y、z、1の1×4マトリツクスとして表わされる。座標変換はこの1×4マトリツクスに変換マトリツクスと呼ばれる4×4マトリツクスを掛けることによつて遂行される。この演算には12回の乗算及び9回の加算が必要である。this,並列な4つの処理構成要素を使用することが可能である。この動作は完全にパイプライン方式で、しかも各サイクルで新らしいデータ項目を読取つて、新らしい結果を生ずることが可能である。ALUのレジスタ中に、変換マトリツクスの単一列を含んでいる。各処理構成要素は、入力された1×4のマトリツクスと、4×1列のマトリツクスとの乗算の結果を並列に計算する。properly,変換された座標が与えられる。通常の図形の応用では単一の座標でなく、入力点のリストが与えられる。並列な4つの処理構成要素には座標データの連続したストリームが供給され、各サイクルに1つのデータを入出力転送するように処理する。cycle.この動作を援助するプログラミングは非常に簡単である。入力及び出力FIFOの使用と、これ等のトランスペアレントなマイクロコードのアイドル・サイクルはチツプの同期を簡単にする。唯一の他の援助は出力FIFO中に“ホール”を発生する能力である。1対1に接続するばけでよい。この接続にはFIFO初期接続手順(ハンドシエーキング)線のみならずデータ・バスが含まれる。only.第9図は、並列/パイプライン構成をなす、処理構成要素22に入力を与える4つの並列処理構成要素12−18の接続を示した、第1図に基づく図である。第1図の処理構成要素(プロセツサ)24−28は明瞭にするために省略されている。これ等の入力及び出力は処理構成要素12−18の入力及び出力と同じように並列に接続されていることに注意されたい。ANDをなすように構成されている。処理構成要素はその出力バスがすべて高レベルに駆動されると、ドツトANDの結果に何等の影響も与えない。低レベルに駆動されている任意の他の処理構成要素は結果を低レベルにする。level.RAM70(第4図)へのバス80をすべて1に強制するために制御点(第4図、線66)が設けられている。第3A図及び第3B図を詳細に示した第10A図及び第10B図は点変換完了後の4つの処理構成要素の出力FIFOの内容を示す。第10A図にはその中にデータを含む4つのFIFO34A−34Dが示されている。A(12)はFIFO34Aの最下部に計算結果を有する。3つの他の処理構成要素B−Dは各々それ等のFIFO34B−D中にホールを置いている。第10B図に示したようにデータが読出される時は、ドツトAND出力バス上の合成値は処理構成要素Aからの所望の結果である。同じように、処理構成要素34B−Dの残りの結果も他の各処理構成要素中のホールと一線上に並んでいる。component.上述の説明はすべての処理構成要素が互に固く組合されたステツプ同期で動作しなければならないことを暗に示している。この条件は必ずしも必要でない。上述のようにFIFO初期接続手順線もドツトANDにされている。入力FIFO(第2図の30)中に少なくとも1つの自由な位置があることを示す4つの入力FIFOからの線(第2図、第9図の線46)はドツトANDされている。パイプライン中の次の段は夫々1つの利用可能な位置を持つことを示す信号のANDを見ている。すべての処理構成要素が少なくとも1つの利用可能な位置を有するかを見ている。同様に、出力FIFO中に少なくとも1つの有効なデータ片が存在することを示す出力FIFO初期接続手順線(第2図、第9図、線64)はドツトANDされている。外部からはこのANDの合成しか知ることができないが、この事はすべての処理構成要素子が少なくとも1つの有効なデータ片を有することを示している。data.第11A図及び第11B図は上述の場合を示す。第11A図はルーチンの極く初期の4つの出力FIFO34A−34Dの状態を示している。4つのすべての処理構成要素は図形の点を読取り中であり結果を求めて計算中であるが、そのどれも終つていない。処理構成要素Aを除くすべての処理構成要素はそれ等の出力FIFO34B−D中に少なくとも1つのホールが置かれている。FIFOデータ有効(OFV)線を高レベルに駆動しようとしている。処理構成要素AはOFV線を低レベルに駆動しようとする。care).それは線の1つが低レベルにあるからである。これによつて外界はどのチツプからもデータを取出すことができなくなる。このようにして処理構成要素B−D中の最初のホールが望みどおり最初の結果と一線に並ぶことが保証される。入力FIFOも同じようにして同期される。way.並列処理構成要素の用途は点の座標変換アルゴリズムに制限されない。共通の入力ストリームで動作するいくつかのセクシヨンに分割でき、そして既知の個数の結果を発生できる任意のアルゴリズムに本発明を適用することも可能である。厳密に云えば、各セクシヨンは共通のデータに操作を加えるものである必要はなく、同じアルゴリズムをデータに適用することすら必要でない。connexion,入力ストリームの残りを切捨て、第2の処理構成要素が最初のn項目を切捨てて、次のm項目を読取り、残りを切捨てるようにして処理を行なうことも可能である。各アルゴリズムは異なる経路長で独立に走行できる。FIFO中の正しい位置に正しい数のホールを置くことができることである。本発明に従い、従来のプロセツサよりも、マトリツクス乗算のような複雑な算術演算の実行の際のプログラム及び制御が比較的容易な処理プロセツサ構成を実現することができる。DRAWINGS第1図は本発明の好ましい実施例に従う処理システムのブロツク図である。第2図は本発明の好ましい実施例に従う個々のプロセツサのブロツク図である。第3A図及び第3B図は本発明に従う並列に接続されたいくつかのプロセツサの出力FIFOの内容を例示した図である。第4図は第2図に示されたプロセツサの出力FIFOの詳細なブロツク図である。第5図は第4図に示した出力FIFOの出力FIFO制御装置の詳細なブロツク図である。第6図は第5図に示された状態マシンの状態図である。第7図は第2図のプロセツサの入力FIFOの詳細なブロツク図である。第8図は第7図の入力FIFOの入力FIFO制御装置の詳細なブロツク図である。第9図は本発明の好ましい実施例に従う4つのプロセツサの接続方法を示した、第1図に基づくブロツク図である。3BFOの内容を例示した図である。outputFIFO表示図である。......入力FIFO、32......ALU、34......出力FIFO、36......MCU。構成されていることを特徴とするコンピュータ・システム。coprocessor。