JPS63501530A - メモリをリンクしたウエ−ブフロント・アレイ・プロセッサ - Google Patents

メモリをリンクしたウエ−ブフロント・アレイ・プロセッサ

Info

Publication number
JPS63501530A
JPS63501530A JP61505584A JP50558486A JPS63501530A JP S63501530 A JPS63501530 A JP S63501530A JP 61505584 A JP61505584 A JP 61505584A JP 50558486 A JP50558486 A JP 50558486A JP S63501530 A JPS63501530 A JP S63501530A
Authority
JP
Japan
Prior art keywords
memory
port
dual
processing
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP61505584A
Other languages
English (en)
Inventor
ドーレセク,クウェンティン・イー
Original Assignee
ザ・ジョンズ・ホプキンス・ユニバ−シティ
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 ザ・ジョンズ・ホプキンス・ユニバ−シティ filed Critical ザ・ジョンズ・ホプキンス・ユニバ−シティ
Publication of JPS63501530A publication Critical patent/JPS63501530A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8046Systolic arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。

Description

【発明の詳細な説明】 メモリをリンクしたウェーブフロント・プレイ・プロセッサ本発明(は広範囲の 超高速での信号処理、科学および技術の開明を計算するための独特のアーキテク チャを有するアレイ・プロセッサに関する。特に、メモリをリンクしたウェーブ フロント・ア1/イ・プロセッサ(MWAP)と称される本発明は、処理プレイ 内でグローバルな非同期通信を提供し、かつまた各処理エレメントのローカル/ データによる駆動の非同期制御を提供する計算アーキテクチャを備える。
2、従来技術の説明 今日の信号処理は高速の計算速度を必要とする。多くの場合、信号処理アルゴリ ズムは直線的であるが、データ速度およびその後の処理は既存のコンピュータを 上廻ってしまうため、その結果、適用状態に限度があるか、あるいは計算時間が 長くならざるを得ない。エンジニアリングの分野においても、コンピュータ速度 を向上させ、かつコストを低減させる必要がある。流るシステム・シミュレーシ ョンモ、通常、コンピュータ速度、メモリおよびコストに限度がある。その結果 、エンジニアリング設計においては基本現象のフルシミュレーションが可能でな いことが多い。この問題は二重にらる。第1に1乃至2程度の大きさだけシステ ムの計算速度を増加でせ、第2に多数の問題に適用可能なシステムを設計するこ とである。
エイチ・ティー・クン/によシ紹介されたシストリック・アレイ(1979年1 月のPrac、 Ca1tech Conf、 VLSI の66−90頁の、 エイチ・ティー・クン/による「VLSI システムのアルゴリズムを設計しよ う」を紗叩のこと)は、ローカル接続され、同じグローバル・クロックで同期作 動するプロセッサのアレイでおる。アルゴリズムはパルス化(シストリック・フ ロー)要領で実行される。即ち、プロセッサのネットワークは周期的にデータを 計算してシステムを介してデータを伝達する。
シストリック・アレイはモジュラ性と、規則性と、ローカル接続性と、高度にパ イプライン化され高度に同期化した多重処理性を有する。しかしながら、それは グローバルな同期を必要とする。即ち、データ移動(dグローバルなタイミング 基準によシ制御される。シストリック・アレイのアクチビティを同期化させるよ う正確なタイミングを保証するために、余分の遅延を用いることが多・ハ。プロ セッサの大型アレイに対しては、全体の計算ネットワークの同期化は困難になシ 、あるいは不可能にリック・アレ、イはプログラムされず、各アルゴリズムは個 別で、明確なアレイ形状を必要とする。複雑さが増加すれば、シスト ゛リック ・アレイはアレイ形状を再形成するためにマトリックス・スイッチを用いて「ハ ードウェア・プログラム化」できる。
いずれの場合も、シストリック・アレイは常に、計算アルゴリズムな物理的なプ ロセッサ・エレメントに直接マクピングfることを要する。
第2の試みられた方法として、ウェーブフロント・アレイ・プロセッサはシスト リック・アレイと同じ幾何構造を用いておシ、x、t、−ワイ・クング他(S、 Y、Kung et al)lcよる、1982年1月のマサチューセッツ州ケ ンブリッジのMITのMIT Conf、 on Advanced Re5e arch in VLSIノ「ウェーブフロント・アレイ・プロセッサ:アーキ テクチャ、言語および応用」に全体的に記載されている。これは、データおよび パラメータと共にコントロールがアレイを介して流れるという点で、シストリッ ク・プレイと相違する。このようにローカル・データ・フローにローカル・コン トロール・フローを追加することによシデータ駆動の自己調時処理を可能とする 。概念的には、正確な「タイミング」の要件が正確な「シーケンシング」に対す る要件に代替される。
ウェーブフロント・プレイ・プロセッサにおける各プロセッサ・ニレメン) ( PE)は、各々の肩接するPEに対して独立した状態フラッグを備えた双方向性 −ζツファを有する。データの流れはPHの間で非同期的であって、PEの間で 制御トークンが送られてデータの利用可能性とデータの使用とを決定する。この ため、シストリック・アレイのタイミングに対する厳しい要件を緩和させ、アル ゴリズムの展開を簡素化すると共に、アルゴリズムおよび処理速度を速くさせる ことが多い。このように、ウェーブフロント・プロセッサはウェーブ状にプロセ ッサ間でコントロールとデータとを伝えるようにして演算を行うので、各プロセ ッサがアルゴリズムにおける再帰(ステップ)を完成させると、一方のプロセッ サから次のプロセッサに計算が流れる。
しかしながら、シストリックおよびウェーブフロント・アレイ・プロセッサは、 それらがローカルタイプの通信を必要とし、グローバルタイプの通信を扱うこと ができない点で欠点がある。
その結果、ある種の有用なアルゴリズムは、従来技術によるシストリックおよび ウェーブフロント・プロセッサを用いて計算することができない。例えば、高速 のフーリエ変換、FFTは以下の再帰公式(デシメーション・イン・タイム一定 幾何FFTアルゴリズム)を用いて計算される。
X(m+1.p)=X(m、p)+W(K、N) X(m、q)X(m−+−1 ,q)=X(m、p)−W(K+N) X(m、q)ただしpと9とはステージ によって変わる。このアルゴリズムの計算は、データ点の間の距離1p−qlが ステージからステージへ増えるのでグローバル通信を必要とする。しかしながら 、シストリックおよび従来技術によるウェーブフロント・アレイ・プロセッサは データ項目間の距離がプロセッサ(ステージ)からプロセッサヘ一定に留ること を要する。このように、シストリックあるいはウェーブフロント・プロセッサは 前述の再帰公式を用いてFFTを計算するのには使用できなかった。
同様に、従来技術によるプレイプロセッサの計算能力と融通性とは、データがそ れを受取る処理エレメントによシ使用されるべき順序で処理ユニットの間を通る 必要があるため限定される。従来技術のこの欠点により、ある種のアルゴリズム の計算を困難かつ厄介としている。
発明の要約 メモリをリンクしたウェーブフロント・アレイ・プロセッサ(MWA P )と 称される本発明は、ウェーブフロント・プレイ・プロセッサがグローバルタイプ の通信を扱えるようにする。プロセッサ・エレメント間にコントロール・フラッ グを含む「スマート・メモリ」を挿入することにより、メモリをリンクしたウェ ーブフロント・プレイ・プロセッサは従来技術で要求された厳密なローカル通信 に対する要求を緩和しているので、再帰公式を用いてFFTアルゴリズムの実行 を可能とする。また、本発明はデータが受信側処理エレメントによりて使用され るべき順序でデータを処理エレメントの間で通すという従来技術の要件を緩和す ることによりアレイ・プロセッサの通信能力と融通性とを拡大させる。
MWAPは広範囲の超高速の信号処理、科学および技術問題を計算しうる新規な アレイ処理アーキテクチャを利用している。
最も一般化した形態において、本発明のMWAPアーキテクチャは、−組の特殊 目的のコントロール・フラッグを含む二重ポーだ、同一のプログラム可能処理エ レメントのアレイを備える。
ネットワークでの全ての通信はこれらのリンキング・メモリ・エレメントを介し て非同期的に行われる。処理エレメントと二重ホード・メモリ・リンキング・エ レメントとの間の非同期的なハンドシェーキングを用いることにより、データ駆 動/ローカル・コントロールが得られる。非同期リンクを二重ホード・メモリ・ リンキング・エレメントまで移動させることによシ、シーケンス・コントロール 「トーク/」の使用を、各メモリ・リンキング・エレメントにおけるノ\−ドウ エア・コントロール・フラッグにて代替させることができる。各処理エレメント は同時の算術計算、2方向での通信、論理決定およびプログラム・コントロール の修正ができる。
MWAP はモジュール性、規則性、ローカル接続性および高度にパイプライン 化したマルチプロセッシング性を有する。本明細書において追って、MWAP  アーキテクチャを用いたアルゴリズムの計算を典型的な従来技術によるシストリ ックおよびウェーブフロント・アレイ・プロセッサに対して用いるものに対比し て、MWAP アーキテクチャの独特の能力および特性を示すことにする。一般 的に、MWAP はほとんどのアルゴリズムに対してより高速の処理速度を提供 し、アレイプロセッサにおいて実行しうるアルd リズムの範囲を広げ、かつ従 来はよシ複雑な二次元の従来技術のシストリンクおよびウェーブフロント・アレ イでのみ処理できた広範囲のアルゴリズムに対して単一の直線アレイ構成をプロ グラムすることができるものとして示されている。
以下は本発明において見出される新規な特徴を部分的に列挙したものである。
本発明の第1の新規な特徴は、非同期性の二重ボート・メモリ・リンキング・エ レメントを介して隣接する処理エレメントを相互に連結することにより、処理エ レメントのアレイ内でグローバルな非同期通信を提供することである。
本発明の第2の新規な特徴は、データがそれを受取る処理エレメントによシ使用 されるべき順序に限定されない、いずれの希望する順序においても処理エレメン ト間でデータを通すことができることである。
本発明の第3の新規な特徴は、アルゴリズムを計算する上で使用する係数やその 他の情報乃至データをアレイ・プロセッサの処理ステージの間で二重ポート・メ モリ・リンキング・エレメントに記憶できることである。
本発明の第4の新規な特徴は、各処理エレメントのデータ駆動/ローカル・コン トロールが各処理エレメントと、アレイにおいて隣接位置する二重ホード・メモ リ・リンキング・エレメ本発明の第5の新規な特徴は、メモリ・リンキング・エ レメントまで非同期リンクを移動させることにより、ソフトウェアの7−ケンス ・コントロール「トークン」乞、メモリ・リンキング・エレメントに位置するノ ・−ドウエア・コントロール・フラッグで代替できることである。
本発明の第6の新規な特徴は、隣接する二重ポート・メモリうとする場合1%定 の二重ポート・メモリ・リンキング・エレメントに隣接する別の処理エレメント によシ前記メモリ位置に係るコントロール・フラッグがセットされてしまうまで 、特定の処理エレメントの処理演算が中断されることである。
本発明の第7の新規な特徴は、各々の特定の処理エレメントが内部の制御および ノZス装置を有し、該装置が処理アレイにおける、隣接する二重ポート・メモリ ・リンキング・エレメントとの同時通信を可能とすることである。
本発明の第8の新規な特徴は、各処理エレメントが、同じ命令サイクルの間に直 線アレイにおいて、乗算、加算あるいは減算、その左側の隣接するメモリ・リン キング・エレメントへの読取シ、書込み、およびその右側の隣接するメモリ・リ ンキング・エレメントへの読取υあるいは書込みができることである。
本発明の第9の新規な特徴′は、データ及び計算が直線アレイにおいて右方ある いは左方へ、二次元アレイにおいて左右上下に伝播できることである。
本発明の第10の新規な特徴はMWAP における各処理エレメントが各種のア ルゴリズムン計算するために数種のプログラム・シーケンスを記憶でき、そのた めアレイにおける種々の処理エレメントが種々の計算を実行でき、あるいは同じ 処理エレメントが計算サイクルの間で異なる時間に異なる計算を実行できること である。
図面の簡単な説明 本発明を完全に理解するために、添付図を参啜して例示によシ本発明を以上説明 する。
第1図は従来技術によるアレイ・プロセッサの全体的なアーキテクチャを示し、 第1A図は直線アレイを示し、第1B図は3×3の四角のアレイを示し、 第2図は本発明が教示する、直線アレイのメモリをリンクしたウェーブフロント ・アレイ・プロセッサを示すグロック線図、第3図は本発明が教示するメモリを リンクしたウェーブフロント・アレイ・プロセッサ用の二次元の幾何学的アレイ 構造を示すブロック線図、 第4図は直線MWAP アレイで使用される処理エレメントのブロック線図、 第5図は二次元のMWAP アレイに使用される処理エレメントのブロック線図 、 第6図はMWAP における典型的な処理エレメント用の内部レジスタおよびバ ス装置を示す詳細ブロック線図、第7図は典型的なMWAP 処理エレメント用 のシーケンサのグロック線図、 第8図、−jMWAP アーキテクチャに用いられる二重ホード・メモリ・リン キング・エレメントの内部構造を示すブロック線図。
第9図はMWAP用のFIRフィルタ処理シーケンスを示すフロー線図、 第10図は1−D伝熱式における多数の点を計算するためにMWAP データ・ ループ・バックの使用を示す図、第11図は1−D伝熱式における多数の点を同 期的に計算す次元のMWAP の使用を示す図、 第13図はフルマトリックス乗算のための従来技術による同報通信の使用を示す 図、 第14図はマトリックス乗算を計算するために従来技術による六角形に接続のシ ストリック・アレイの使用を示す図、第15図はマトリックス乗算を計算するた めに従来技術のウェーブフロント・プレイの使用を示す図、第16図は本発明が 教示するようにマトリックス乗算を計算すするために直線MWAP プレイの使 用を示す図、第17図は第16図に示す直線MWAP アレイを用いて3×3マ トリックス乗算用の計算シーケンスを示すフロー線図、第18図は再帰公式を用 いてフーリエ変換ン計算するに必要なシャツプル交換を示す図、および 第19図は再帰公式乞用いてフーリエ変換を計算するためにMWAP が用いる 計算シーケンス7示す図である。
好適実施例の詳細説明 MWAPは処理ハードウェアおよびシステムのプログラム化との双方にモジュー ル構造を用いている。システム・アーキテクチャは、直線処理アレイ、二次元の 処理アレイ、あるいはn次元の処理プレイ(nri数)により実行できる。(注 :MWAPはシストリック・アレイ・プロセッサのようにグローバル・クロック を必要としないので、伝播遅延がアレイのサイズな制限することがない。)第2 図に示す基本的な直線MWAPアレイ・アーキテクチャは、二重ポート・メモリ ・リンキング・エレメント12に作動接続されたホスト・インタフニー゛スと、  ”マルチ処理エレメント/二重ポート・メモリ・す°ンキ/グ・エレメントの はア14と、およびホスト出力インタフェース16とから構成されている。二重 ポート・メモリ・リンキング・エレメントはメモリチップおるいは一組のレジス タから構成すればよい。
各処理エレメントとその隣接する二重ポート・メモリ・リンキング・エレメント との間に非同期のローカル通信が提供される。データ計算に用いられた係数、中 間計算結果および/またはその他の情報とを各々の二重ホード・メモリ・リンキ ング・エレメントにおける選択されたメモリ位置において記憶することができる 。処理エレメントの間の非同期通信は、例えばデータ、その他の情報が一つの処 理エレメント20によシニ重ホード・、+’ モリ・リンキング・エレメント2 2においてメモリ位置へ書込まれ、適当なノ・ンドシエーキングの後、別の隣接 した処理エレメント24によシ取得されるときに発生する。この例においては、 処理エレメント20は、データがそれン受取る処理エレメント24に使用される のと同じ順序で二重ポート・メモリ・す/キング・エレメント22にデータ乞書 込む必要はない。
実際に、処理エレメント24は、データあるいは情報を処理することなく、かつ 下流の処理エレメントが処理のためにそのデータあるいはその他の情報を取得す ることなく、隣接する二重ホード・メモリ・エレメント22から隣接する二重ポ ート・メモリ26ヘデータあるいは情報を伝えることができる。(従来技術によ るアレ゛イ処理アーキテクチャが第1図に示され、直接接続される処理エレメン ト28のプレイ乞食む。メモリ・ブロック30は処理アレイの外側に、かつ縁部 に沿って位置している。本明細書で追って示されるが、多くのアルゴリズムの計 算は従来技術では困難、かつ厄介である。)MWAP アーキテクチャにおいて 、各処理エレメントは右側の隣接する二重ポート・メモリ・エレメントと、左側 の隣接する二重ホード・エレメントにおけるメモリ位置をアクセスできる。した がって、二重ポート・メモリ・リンキング・エレメントを介して提供される非同 期ローカル通信によシ、処理アレイ内でのグローバル通信を利用可能とする。
特定の例により詳細に追って説明されるが、二重ポート・メモリ・リンキング・ エレメントに処理エレメントを連結することによシ次の利点がある。(1)グロ ーバル通信、(2)データおよび計算乞右方あるいは左方に伝播できる、(3) データ・エレメントの間の距離が処理ステージの間で増減できる、(4)初期段 階の間、処理ステージの間で係数やその他の情報を記憶できる、および(5)直 線アレイン用いて単一アルゴリズムおよび二次元アルゴリズムを処理できる。
処理エレメントと二重ポート・メモリ・リンキング・エレメントとの間で非同期 リンクが発生するので、二重ポート・メモリ・エレメントに位置したハードウェ ア・コントロール・フラッグがソフトウェア・コントロール・トークンを代替し うる。
後述するこの特徴は処理エレメントとその隣接する二重ポート・メモリ・リンキ ング・エレメントとの間の非同期性のハードウェア・ハンドシェーキングを用い てデータ駆動/ローカル・コントロールを得ることができるようにする。一旦プ ロセッサ・アレイが初期化されると、データがその隣接する二重ポート・メモリ ・エレメントで利用可能であるようにすることによって各処理エレメントが自己 調時されるようにして、データと情報とが一方の二重ポート・メモリ・エレメン トから周期的に読取られ、出力が下流の二重ポート・メモリへ流れる。
第3図は二次元の処理アレイ用の基本的なMWAP アーキテクチャ7示すブロ ック線図である。直線アレイの場合のように、二重ポート・メモリ・リンキング ・エレメント32はアレイ内の処理エレメント34の間に配置されている。処理 エレメント34は隣接する二重ポート・メモリ・リンキング・エレメントヘアレ イ内で右方および左方ならびに上下に直接アクセスできる。二次元アレイにおけ る処理エレメント32と二重ポート・メモリ・リンキング・エレメント34とは 直線アレイにおけるエレメントと同様に演算する。基本的なMWAP アーキテ クチャは、本発明乞適用することによシ任意のn次元のアレイまで展開できる。
nが2よシ大きい場合のnポート・メモリ・リンキング・エレメントと、nポー トの処理エレメントZ用いることも本発明の範明に入る。
第4図は、線状MWAP アレイにおいて用いるよう本発明が教示スる、モ:) 、−−ル処理エレメントの一実施例を示すブロック線図である。処理エレメント は3個のセクションに分割可能である。即ち、算術セフシー17(ニレメン)  36,38.40) と、アドレス・レジスタ(エレメント42.44)と、お よびプログラムーフロ二・コントロール・ブロック(あるいはコントロール論理 、ニレメン)46.18)である。算術セクションは2個の算術プロセッサ(3 6,40)、内部算術レジスタ38、および関連のデータバス構造から構成され ている。アドレス・レジスタは、処理エレメントがアクセスしうる各メモリポー トに対して8個のカウンタ/レジスタのベア(42,44)の群から構成されて いる。第4図は2群のアドレス・レジスタを示しておシ、各処理エレメントは右 方および左方に二重ホード・メモリ・リンキング・エレメントにアクセスしうる (第2図参照)。
アドレス・レジスタ42は右方の隣接する二重ポート・メモリ・リンキング・エ レメントにおけるメモリ位置をアドレスするために使用され、アドレス・レジス タ44は左側の隣接する二重ポート・メモリ・リンキング・エレメントにおける メモリ位置乞アドレスするために使用される。コントロール論理セクションはプ ログラム・メモリ46と関連の論理48とを含み処理ニレメントンプログラム可 能とする。
制御ユニット48はライン50を介して右方の隣接する二重ポート・メモリ・リ ンキング・エレメントにおいて、゛またライン52を介して左方の隣接する二重 ホード・メモリ・リンキング・エレメントにおいてハードウェア・コントロール ・フラッグを検出するとともにセットらるいjriリセットする。制御ユニット 48は、プログラム・シーケンスがアドレス・レジスタ(42,44)の一方に 対して隣接した二重ホード・メモリ・工算乞中断させ、そのメモリ領域と関連し た(即ち特定のアドレス・レジスタと関連した)二重ポート・メモリ・エレメン トにおけるコントロール・フラッグはダウン状態を続ける。制御ユニットは、隣 接する二重ポート・メモリ・リンキング・エレメントにおける特定のフラッグが 特定の二重ホード・メモリ・リンキング・エレメントに隣接した他方の処理エレ メントによってセットされるまで処理エレメントのアクチビテイン中断し続ける 。このように、処理ユニットは自己調時性であって、必要なデータが得られるま で、非作動状態を続ける。このように、各処理エレメントは非同期性データ駆動 のローカル・コントロールを有する。コントロール・フラッグがデータの利用で きないことを示す期間、処理エレメントが演算を中断するので、同じメモリ位置 へ同時に読取シと書込みとをしようとする2個の処理エレメントによシデータが 乱れることはない。二重ポート・メモリ・リンキング・エレメントにおける各コ ントロール・フラッグは2種類の状態ン有し、隣接する処理エレメントにおける 制御ユニットはプログラムされる。そのためフラッグが特定の状態にあると、そ のフラッグは隣接する処理エレメントの一方に対してはセット・フラッグとして 、また他方の隣接した処理エレメントに対してはリセット・フラッグとして現わ れる。
さらに、本発明によるアーキテクチャは、特定の看接する二重ポート・メモリ・ リンキング・エレメントにおける種々のデータ位置にアクセスするために2個以 上のレジスタン利用しうる。各々の二重ポート・メモリ・エレメントは2個以上 のコントロール・フラッグを有することができるので(各コントロール・フラレ グは前記の隣接した二重ポート・メモリ・エレメントのアドレス・レジスタと関 連している)、メモリのオーバラッピングが可能である。換言すれば、右側の特 定の二重ポート・メモリ・リンキング・エレメントに対する処理エレメントは特 定の二重ポート・メモリ・エレメントにおける第1の位置かラソのアドレス・レ ジスタの1個ン用いてデータの読取シあるいは書込みができ、前記特定の二重ポ ート・メモリ・エレメントの左側のものに対する処理エレメントはその二重ホー ド・メモリ・エレメントにおける第2のメモリ位置へ同時にデータを読取ったシ 書込んだりすることができる。この例においては、(二重ホード・メモリ・エレ メントに位置し、第1のメモリ位置に関連した)フラッグlが右側の処理エレメ ントに対してセットされ、左側の処理エレメントに対してリセットされたように 現われ、(これも二重ポート・メモリに位置した)フラッグ2は右側の処理エレ メントに対してリセットされ、左側の処理エレメントに対してセットされる。
第4図に示すバス構造からもわかるように、処理エレメントはバス62から左側 の二重ホード・メモリからの読取り6るいは書込みが可能でl)、一方同時にバ ス60から右側の二重ポート・メモリ手段からの読取りちるいは書込みが可能で ある。
これが可能な理由は、内部バス装置(64,66)が前記の右側のポート60あ るいは左側の4−)62のいずれかから入力レジスタ54と出力レジスタ58と に対して個別のアクセスを提供するからである。さらに、プログラム・メモリ4 6に記憶された命令ワードは右側のポー)60と左側のポート62とからの読取 #)/書込み演算7制御する個別のフィールドを有している。このように左側の ポートへの読取#)マたは書込み、および右側ポートへの読取#)するいは書込 みは同じ命令サイクルにおいて発生しうる。同様に、バス装置(64,66)  と加算器/減算器40から乗算器/徐算器31−分離する内部レジスタ38の使 用とによシ、同時に乗算/除算および加算/減算が発生するようにできる。再び 、プログラム・メモリ46に記憶された命令ワード9は乗算器、加算器および左 右のデータ・ホード・アドレスを制御する個別のフィールドを有している。これ らの演算は平行して発生しうるので、乗算、加算、減算、あるいは左側ポートに 対する読取シと書込み、および右側のホードに対する読取りと書込みは全て同じ 命令サイクルにおいて発生しうる。
第5図は、二次元の処理アレイで使用する処理エレメントの一実施例を示すブロ ック線図である。直線プレイ(第4図参照)において使用される基本的な処理エ レメントは、二次元のアレイに使用されるものと類似であって、その相違は処理 エレメント67が処理エレメントから二次元アレイにおいて右、左、上、下に位 置する隣接の二重ポート・メモリ・リンキング・エレメントをアクセスするため に4組のアドレス・レジスタ(42゜44.68および70)ン有していること である。同様に、4本の制御ライン72は隣接する右、左、上、下の二重ポート ・メモリ・リンキング・エレメントにおいてハードウェア・コントロール・フラ ッグを検出するとともにセラ1するいはリセットする。前述のように、各二重ポ ート・メモリ・リンキング・エレメントにおいて2個以上のコントロール・フラ ッグを用いてメモリをオーバラッピングさせ、左、右、上および下の二重ホード ・メモリ・エレメントに対して同時に読取りあるいは書込みt行い、カニつ同時 に加算/減算および乗算を行うことは全て、MWAP 二次元プレイにおいて得 られる特徴である。
第6図は、本発明が教示するモ:)エールの処理エレメントの詳細なブロック線 図を示す。以下の説明の複雑さン緩和するために、第6図は直線プレイで使用さ れる処理ニレメン)Y示す。
しかしながら、第6図に示す特定の構造ン任意の多次元アレイに展開することは 本発明の範囲内にあることを理解すべきであるO 処理エレメントは、命令キャッシュとプログラム・シーケンサとを有する制御ユ ニット74、右側のアドレス・ノ;スフ8と左側のアドレス・バス80とに沿っ て隣接する二重ポート・メモリ・リンキング・エレメント(図示せず)をアドレ スするメモリ・アドレス・レジスタ76のブロック、浮動小数点乗算器82、浮 動小数点算術セクション(ALU)84.入力レジスタ86、出力レジスタ88 、及び内部算術レジスタ90から構成されている。出力レジスタ88、入力レジ スタ86および内部算術レジスタ90とはそれぞれ右側の出力メス92、右側の 入力バス94、左側の出力バス96および左側の入力バス98とに個別に接続さ れている。入力/出力バス(92,94)は右側の二重ポート・メモリ・リンキ ング・エレメントに作動連結され、入力/出力バス(96,98)は左側の二重 ホード・メモリ・リンキング・エレメントに作動連結されている。制御ユニット 74に位置する命令キャッシュがロードされると、プログラムとデータ・メモリ とは分離される。全てのメモリ・アドレッシングは読取)が可能な、又は読取り 、次いで増分され得る、又は読取シ、次いでプログラム・ロードの間割当てられ た基本アドレスにリセットできるメモリ・アドレス・レジスタ76を参照して行 われる。処理エレメントは、隣接する右側の二重ポート・メモリ・リンキング・ エレメントと隣接する左側の二重ポート・メモリ・リンキング・エレメントとに おけるメモリ位置へ同時に読取C6るいは書込みを行うことができる。制御ライ ン108,110により、制御ユニット74は、隣接する左側あるい(1右側の 二重ホード・メモリ・リンキング・エレメントに位置するハードウェア・コント ロール・フラッグを検出し、セットあるいはリセットすることができる。前述の ように、プログラム命令が隣接す・る二重ポート・メモリ・エレメントにおける メモリ位置をアクセスするようアドレスレジスタ76に要求し、前記の隣接の二 重ポート・メモリ・エレメントにおける関連のコントロール・フラッグがまだセ ットされていないとき、制御ユニット74は特定の処理エレメントの処理演算を 中断させる。
算術セクションは、14個の算術レジスタ(第6図におけるラベルROからR1 3まで)、浮動小数点乗算器82、及び浮動小数点加算器/減算器84から構成 されている。レジスタ90は乗算および累算アルゴリズムを支援するよう設計さ れた特殊バスを用いて接続されている。2個のレジスタ(ROとR13)のみが 左右の入力バス(94,98) と、両方の出力バス(92,96)とに接続さ れている。6個のレジスタ(R□、R2゜R4,R,、R9,R□1)が入力バ スのみに付加され、4個(R7+RB +R□21R13)が出力バスのみに対 して使用可能である。2個のレジスタR51R10はいずれの入力ろるいは出力 バスにも接続されていない。この構造は最小数のレジスタと相互接続とを用いて 効率的な実数及び複素数の演算を支援する。
乗算器、加算器/減算器、左右のデータ・ポートは処理エレメント・命令ワード における個別のフィールドにより独立して制御される。個別の命令フィールドに よりこれらの演算が平行して生じるので、乗算、加x6るいは減算、および左側 ポートへの読取シ/書込み、おるい17:を右側ポートへの読取り/書込みは、 同じ命令サイクルで発生しうる。
アドレッシング・セクションは8個のカウンタ/レジスタのベアからなる2つの 群(100,102)から構成されている。一方の群102が左側のアドレス・ カラ/り(LAC0−LACニア )として作用し、他方の群100は右側のア ドレス・カウンタ(RACO−RAC7)として作用する。各アドレス・カウン タにはは−ス・レジスタ104が関連している。これらのベース・レジスタはカ ウンタに対して基準メモリ・アドレスを保持するために使用される。メモリが参 照されている各命令の間、アドレスを供給したカウンタ106は増分しうるか、 その×−ス・アドレス・レジスタの値ヘリセットされるか、ちるいはカウンタは 変らないままとしうる。高速のフーリエ変換および同様のアルゴリズムを実行す る際にアドレスの発生を容易にするために、アドレス・カウンタLAC6,LA C7,RAC6およびRAC7の出力側はビット反転の順序でアドレス・バスに 位置される。
プログラミン/・シーケンス・セクション74の拡大ブロック線図を第7図に示 す。そこではプログラム・メモIJ ’112、プログラム・アドレス・カウン タ114および4個のプログラム分岐アドレス・レジスタ116が含まれる。さ らに、ループからの条件付き分肢のために使用される2個のルーピング・カウン タ118,120 (ループ1とループ2)がある。ベース・レジスタ(122 ,124)はループ・カウンタをリセットするために各カウンタに取付けられる 。各命令サイクルの間、1個のカウンタな修正することができる。該カラ/りは 増分、減分あるいは×−ス・レジスタから再ロードできる。これらのループ・カ ウンタの他に、算術レジスタ112(第6図参照)を条件付き分岐のために使用 しうる。このため、データに依存する条件付き分岐を許容する。
第8図に、本発明が教示する二重ポート・メモリ・リンキング・エレメントのブ ロック婦図である。二重ポート・メモリ・リンキング・エレメントは2つの独特 の特徴即ち(11該エレメントは境界において非同期で駆動されること、および (2)2個のフ′ラッグ126を含むことを有する。MWAP におけるデータ ・フローは前記のフラッグにより制御される。これらのフラッグは隣接の処理エ レメントに対するデータの利用可能性を示すために用いられる。メモリ・アクセ ス用のアドレスとして処理エレメントのLACOまたはRACO(第6図参照) を用いる任意の命令は、関連の二重ポート・メモリ・リンキング・エレメントに おけるコントロール・フラッグ1がセットされていなければ実行されない。フラ ッグlがセットされていないときにこのタイプの命令が実行を試みようとすれば 、コントロール・フラッグによるセツティングによりアクセスが許容されるまで 、命令実行は停止する。フラッグがセットされているとき、命令実行が開始する 。同様にフラッグ2はLACIとRACI (第6図参照)を基準として命令の 実行を制御する。第8図に示す二重ポート・メモリ・リンキング・エレメントが 第6図に示す左側の処理エレメントに対するプレイに位置していたとすれば、二 重ホード・メモリ・リンキング・エレメントの右側のホードのアドレス・レジス タ142はバス76に接続され、入力データFIFO140と出力データFIF O138とはそれぞれバス98゜96に接続され、右側ポートのノ・ンドシェー ク論理136は制御ライy108に接続される。同様に、アドレス・レジスタ1 34、入力データFIF0132、出力データFIFO130および二重ポート ・メモリ・リンキング・エレメントの左側のポートに関連したハンFシェキング 論理128は、左側に位置した処理エレメントの同様のエレメントに接続される 。したがって、静的RAMメモリ136はその隣接する左側および隣接する右側 に対する処理エレメントによシアクセスされ得る。前述のように、2個のコント ロール・フラッグを使用することによシ、隣接する処理エレメントは静的RAM  1360種々の部分へのオーバラップしたアクセスが可能である。これにより 、左側の隣接する処理エレメントと右側の隣接する処理エレメントとが静的RA M1360種々の部分に同時にアクセスできることになる。
メモリをリンクしたウェーブフロント・プレイ・プロセッサ(MWAP)の演算 と、その特性のあるものとを、信号処理のための有限入力応答(FIR)フィル タの以下の実行により示すことにする。FIRフィルタに対する式はである。2 値フィルタ即ちN=2に対する最初の数項を書出すと、以下のようになる。
PE#3 Y(0)= b(OIX、:0+ PE#2y(x)−bto+x(1)−+− b(t)x(o> PE#IY(21−b(01! (2)+ b (1)!  (11+ b (2) XFOIY(3)−b(OIx、(3)+ b(1)X (2)+ b(21!(1)Y(4)−b(0)x(41+ b(t)X(3) + b(2) X(2)フィルタ係11 b +nlが全て処理エレメントに読 取られると、MWAP の各処理エレメント(PE)はウェーブフロントの一方 の項b (kl X (iJを計算し、その人力x(1)と部分合計とを次のP Eへ送る。第10P’Eは入力データの流れを読取り、最後のPEが出力y(1 )をホストコンピュータあるいZ1システム・バスへ送る。FIRアルゴリズム が第9図に示す直線アレイを用いて計算され、またイベントのシーケンスも第9 図に数回の処理サイクルに対して示される。サイクル1と2とは基本的にアレイ を初期化する。(〉の印はデータが読取られ、又は書込まれている方向を示し、 例えばサイクル1においてデータx(0)はDPM#1から読取られており、サ イクル#2においてデータx(2)はDPM2c書込まれている)サイクル3〜 5において、処理エレメント#1はx(1)をその左側のメモリから読取シ、b  (2) x (11の項を計算し、メモリ・アドレス・レジスタ#1により特 定されるベース・アドレスを用いてx(1)とその前の積b (21x (OJ とを右側のメモリへ書込む。PE#1は右側のメモリへの部分合計とx(1)と の記憶を完了すると、そのメモリのコントロール・フラッグ#1をセットし、P E*2に対して、データが処理できる状態になっていることを知らせる。、(注 :矢印に接続された#1と#2との印は、フラッグ1と2のセツティングとりセ ツティングとをそれぞれ示す。)次いで、PK+1はメモリアドレス・レジスタ #2とコントロール・フラッグ#2とを用いてx(2)に対する処理を繰返す。
このシーケンスが第1のアドレス・レジスタ#1とコントロール・フラッグ#1 とを用いて、次いでアドレス・レジスタ#2とコントロール・フラッグ#2とを 用いて繰返され、左側のメモリにおける全ての入力サンプルXを処理する。もし ホストが新しいデータ・サンプルを最も左側のメモリへ連続的に入力していると すれば、MWAPは入力データを永久に連続してフィルタすることができる。
コントロール・フラッグ#1がセットされると、処理エレメント#2は左側のメ モリからx (n)と部分合計とを読取る。次いでコントロール・フラッグ#1 をリセットしてPE弁1が再びメモリのそのセクションを使用できるようにし、 b(11X (n+1)項の積を部分合計に加えて、新しい部分合計b(2Lx (nl+ b(1)x (n+x)を得る。データサンプルx (tlとそれ以 前の部分合計とはメモリ・アドレス・レジスタ#1により特定されるベース・ア ドレスを用いて右側のメモリへ書込まれる。
PE#、2が右側のメモリへの部分合計とx (nlとの記憶を完了すると、そ のメモリのコントロールiフラッグmxtセットしてデータが処理できる状態で あることYPE#3に知らせる◇次いで、PE12は、そのメモリ・アドレス・ レジスタ#2と左側のメモリのコントロール・フラッグ#2とを用いて右側のメ モリのコントロール・フラッグ#2をセットしてx(n+i)に対する処理を繰 返す。前記シーケンスは第1の処理エレメントと同様に何度も繰返される。
処理エレメント弁3が左側のメモリから部分合計とXとを読取り、積b(OIX (111+2)を部分合計に加え、処理エレメント#1゜#2に関して述べたよ うに、メモリ・アドレス・レジスタとコントロール・フラッグとの同じシーケン スを用いてその答乞右側のメモリに入れる。このように、結果Y(0) 、 Y (1)−−はホスト・コンピュータが読取るよう最も右側の二重ポート・メモリ に書込まれる。
FIR処理シーケンスはメモリをリンクしたウェーブフロント・アレイ・プロセ ッサの数種の特性を示す。
1、MWAP tit介する計算の流n0一旦初期化されると、入力データは左 側のメモリ・リンキング・エレメントから周期的に読出され、その結果、右側の メモリ・リンキング・エレメントに出力する。例の処理シーケン2において、デ ータが入力され、処理され、2回の処理サイクル毎に出力される。
2、MWAP は自己調時性(個々のPF、を制御するグロー、<ル・クロック の必要はない)であり、即ち計算の流れは各々の二重ホード・メモリにおける2 #Aのフラッグにより制御される。2個のコントロール・フラッグを使用するこ とによりデータ・バッファをオーバラッピングできるようにする(例えば、二重 ポート・メモリ・リンキング・エレメントの右側および左側のPEがその二重ポ ート・メモリ・リンキング・エレメントにおける種々のメモリ位置を同時にアク セスできる)、ことに注目されたい。実際、2個のコントロール・フラッグは一 般的に任意のMWAP アルd IJズムの効率的な処理を可能にする。
3、MWAP の処理速度は使用された処理エレメント/リンキング・メモリの はアの数と実行されたアルゴリズムとにのみ依存し、処理されたデータ・セット あるいは計算の長さには依存しない。例えば、MWAP のスループツト率(り 、フィルタのそれぞれの追加の段に対して一対の追加のPE/メモリリンキング のイアが使用されるとすれば、もつと長い(もつと段数の多い)FIRフィルタ に対して変動しない。
MWAP において広範囲のクラスの一次元のアルd +)ズムな容易に実行で きるのみならず、MWAP はその処理速度を増すよう容易に展開できる。この ことは以下の1−D伝熱式の解から示すことができる。
前述したFIR構造を用いると、 b(21= Cと仮定し T””(*)−aT”(OJ PE#2 (初期化ステップ)T”(O1=aT ”(1)+bTn(0) PE仔1T”” (1)= aT n(2)+ bT  n(1)+ cT ” (01T”1(2)= aT”(3)+ bTn(2 )+ cT”(1)T””(3)=aTn(41+bT”(31+cTn(21 これらを代入すると、MWAP上でFIRフィルタに対して用いられた同じアル ゴリズムを用いて、MWAP の各相互作用によ4j)1−D伝熱式における1 つの点nを解くことができる。
さらに、MWAP 出力を入力側ヘループバックして、第10図に示すようにホ ストの介入なしに多数の組のnを計算できる。
代替的な配置として、バス144に沿ってデータ・ループ・バ通って右側へ流れ 、次いで左側へ流れることによって追加の組を計算できるように直線アレインプ ログラムすればよく、次いで流れは反転して、答えとしての右へのデータと計算 との流れが最モ右側の二重ポート・メモリ・エレメントからホスト・コンピュー タによって検索される。流れの方向の変更11単に変更をイース・レジスタにプ ログラムすることによシ達成される。
データおよび計算が右側および左側に流れうるようにするこの特徴は、従来技術 の処理プレイによって教示されるものではない。
MWAP のスループツト率は、3個の処理エレメント/リンキングメモリのペ アからなる多数の組を利用して同時に1個以上の点nを計算することにより、増 加させることができる。このような拡大を第11図に示す。第10図に示したル ープバック・スキームを第11図に示す構成においても使用すれば、データをホ ストへ戻すまでに多数の点を計算することができる。
これらの例はMWAP の3個の別の特性を示す。
4、非同期二重ポート・メモリ・リンキング・エレメントによ、9MWAP プ ロセッサを任意の長さくサイズ)まで簡単に拡張することができる。各PEを制 御するグローバル・クロックが存在しないので、伝播遅延は処理アレイのサイズ を制限しない。
5、同じMWAP K実行のために種々のアルゴリズムをロードでき、あるいは MWAP は同時にプログラム・メモリに数個の種々のアルゴリズムを収容し、 PEプログラム・キャッシュでの開始アドレスを単に変えることにより計算され る関数を変えることができる。処理エレメントの直線アレイが所定のアル、、f  リズムに必要とされる以上のエレメントを含むとすれば、その結果は変化する ことなく単に最後の二重ポート・メモリ・リンキング・エレメントマで伝播する だけである。
6、データがホストに戻る前に1個以上の計算(関数)を入力側に印加すること ができり。即ち、アルゴリズムはMWAP においてカスケードできる。各PE のプログラム・キャッシュに記憶された命令シーケンスがPEによシ提供される 計算根能乞決定する。
伝熱式における係ha% b、cが一定でないとすると、各処理エレメントは、 データがプレイを貫流するとき、その係数の次の値を計算するようプログラムす ることができる。この拡張により、MWAP が可変の係数で部分微分方程式を 扱うことができる。しかしながら、プロセッサのスループツト率は係数の新しい 値を計算するに必要な時間だけ低下する。さらに優れた方法は、第12図に示す ように、二次元のMWAP アレイを使用することである。この形態において、 第1行のプロセッサ/リンキング・メモリ・エレメント146は伝熱式の計算の ためのアルゴリスムを実行する。第2行のプロセッサ・エレメント148は係数 の次の値を計算して第1行のプロセッサ・エレメントが使用できるようにする。
係数の値は、必要に応じて上の行のプロセッサが使用するよう二重ホード・メモ リ・リンキング・ニレ゛メント(150,152,154)の列に記憶される。
このように、MWAP のスループツト率11、伝熱式の計算と平行して新しい 係数の計算が行われるにつれて増加する。
MWAP構成特性 MWAP は直列アレイのプロセッサ/メモリ・ニレメントラ用いて二次元のア レイ問題を計算できる。メモリをリンクしたウェーブフロント・アレイのこの特 性の重要性を示すために、2個の疎行列を乗算するための同報通信、シストリッ クおよびウェーブフロント・アレイ・アルゴリズムZ検討する:C=A B A=(A(1,j))およびB−(B D、j))とする。
以下の計算は3×3マトリツクスに対する乗算過程を示す。
CQI)−A(11)’ B(111+A(13*B?Il+A(13” Be 31)C(21)−AC21)” B(111+ AU ” B(21)+ A (2,”4 ” Be31ICC31)−AC31)*B(11)+AC32* B?1)+Ai” Be31)C(13=A(u)” BaZ+AQZ” B( 22+、J3)” BQZcH−Aan” Bc+z+Aq” atzz+A@ ” BezCC33−AOI)*BL12)+ A、C32” BE+ AC3 3)” BG2CG3= A(Ill” B(]、31+A(13*B(23) +A(13)” Be3)Cに−11)*Bα3)+A(221”Bの+Ai” B(至)CQ31− AC3])” B(13+AC33” Be231+AC 33)” BC331マトリックスAが列A(X) に分解され、マトリックス Bが列BAY) に分解されるとすれば、AとBの積は以下の式により計算でき る。
C−A(1)*B(1)+A(2)*B(2) +−−−−+A(N)”B(N ) [1]この方法はAの列とBの行とを瞬間的に四角いアレイに沿って回報通 信し、その内積を各プロセッサのプログラム・ループ暑介して順次合計すること にょシ、マトリックス乗算に対して使用できる。このタイプの従来技術による実 行を第13図に示第13図に示す同報通信プレイにおいては、Aの列とBの行と が左側と上方とからそれぞれ処理エレメントに入力される。
2個のデータAijとBlj とが処理ノードで出会うと乗算でれ、ノードでの レジスタに現在存在するデータ値である積C1jに加算される。全てのノードに おけるC1jレジスタの初期値は零である。レジスタが更新されろと、AgとB ljのデータが次いで次のプロセッサへ伝えられる。全ての列と行のデータがプ ロセッサのノードに到来すると、式[1)の積の全てが順次合計される。この構 成ではグローバル通信が列と行のデータな同報通信する必要がちシ、これは従来 技術によるシストリックあるいはウェーブ・アレイ・プロセッサでは達成できな いものである。また、アレイから結果を読み出してホスト・プロセッサへ戻すと いう別の問題がある。
また、内積の累算を用いて積CY計算することも可能である。
C(o、i、j) = 0 C(k、i、j)=C(k−1,i、j)+A(1,j) B(j、i) k− 1,2,−N [:2]内積の累算を用いてマトリックス乗算を行うための従来 技術の1つは、第14図の従来技術で示すシストリック・アレイである。例の問 題として、Aはプロセッサの左側の縁部へ伝播し、Bはプロセッサの上縁部へ伝 播し、(最初は零である)Cは上方左側の隅からプレイを対角線方向に伝播する 。シストリック・アレイにおいて使用されるアレイのグローバル・クロッキング は各処理エレメントが各クロック・パルスにおいてデータを処理することを要求 する。このように、種々のBの列とAの行余分の零により調整されなけnばなら ない。各組のAが処理エレメントに到来すると、そnらは乗算され、処理エレメ ントにおける現在の部分合計に加算される。その結果は対角方向底部におけるア レイから伝播される。
積の読出しが無視されるとすれば、連続した積がNサイクルにおいて取得できる 。しかしながら、これ恒問題である。シストリック・アレイにおいてどのように してN個の積を読出すのか。積はシフト・アウトされ得るが、それには追加の処 理サイクルを要する。各処理エレメントはホスト・コンピュータにインターフェ ースできるが、それは当該システム乞さらに複雑にさせる。即ち、プロセッサは ホストに対して列あるいは行でバス接続される。このように、ホストとの通信は 、当該装置の複雑さとデータ通信速度の要件と当該システム・スループツト率と に影響するので重要である。
ウェーブフロント・アレイ・プロセッサはプロセッサ・アレイを伝搬する計算ウ ェーブフロントの概念を利用している。各プロセッサはウェーブフロントにおけ る項乞修正し、ウェーブフロントの伝播を担当する二次源として動作する。この ように、処理アレイにおけるウェーブフロントはアルゴリズムにおける数学的再 帰に対応する。ウェーブフロントを連続してパイプラインすることにより、アル ゴリズムにおける全ての再帰が計算される。
マトリック乗算用の従来技術によるウェーブフロント・アレイ・プロセッサを第 15図の従来技術に示す。従来技術におけるアレイのメモリ156,158 は プロセッサのアレイの上側および左側に位置している。このタイプのアレイにお いてマトリックス乗算を実行するために全ての処理エレメントのレジスタは最初 に零にセット嘔れる: C(0,1j)=C全ての1およびjに対してA(i、j)に対する入力は左側 のメモリに(列に)記憶され、B(i、j) に対する入力は上側のメモリに( 列に)記憶される。
処理はPE(1,1)から開始され、 C(1,11)=C(0,11)+A11 Bllが計算される。次いで、計算 のウェーブフロントは近傍のPE(1,2)およびPE(2,1)に伝播され、 該PEは以下乞計算する。
C(1,12) =C(0,12) +A11*812 およびC(1,21)  =C(0,21) +A21”B11この最初のウェーブがアレイを通して伝 播すると、同一の第2のウェーブフロント(再帰)゛が第1のウェーブの直後に 平行に実施することができる。このように、同時にPK(1,2)とPE(2, 1)はC(1,12)とC(1,21)をそれぞれ計算しており、PE(1,1 )は C(2,11) 十〇(1,11) +A12”B21 ン言士算する。
このようなパイプライニングは、2個の再帰のウェーブフロントが交叉しないの で可能である。所与の瞬間に再痛暑実行しているプロセッサは別々のものでちっ て、衝突の問題を回避する。実際に、問題の間で初期零乞伝播することが可能な ので、第2の新しい乗算問題は第1の処理エレメントが第1の問題に対する全て の再帰を完了するとすぐに開始することができる。
第16図と第17図とに、シストリック・アレイや、従来技術によるウェーブフ ロント・アレイでは扱いが困難で厄介な前記のマトリックス乗算問題χMWAP アーキテクチャでは簡単に扱い得ることを示している。事実、従来技術によるウ ェーブフロント・アレイ・プロセッサが二次元の処理アレイを必要とするのに対 し、当該間頃はMWAP によれば単純な直線アレイで処理することができる。
第16図は、処理ステージの間でデータと係数を二重ポート・アレイ(PPM) に記憶することにより3個のプロセッサの直線アレイにおいて達成しうろことを 示している。マトリックスBの列とマトリックAの行とをインターリーグしたも のが、マトリックスの底部から上部へ逆の頴序で入力される。マトリックスAの 行は右から左へ逆方向に入力される。各処理エレメントは、アレイを通して割当 てられると各出力項(C1j)に対する部分合計の一つの項を計算する。計算シ ーケンスは第17図に示でれている。
MWAP の各処理エレメント(り、基本的にぼ、シストリックあるいは従来技 術におけるウェーブフロント実行においてプロセッサの縦の列の計算を行う。こ れは、処理エレメントの間で二重ホード・メモリ・リンキング・エレメントにお いて係数を保留することによシ可能とされる。第17図に示す最初の14サイク ルは、乗算用の係数をロードすることによりアレイを初期化している。このため の時間・グ、従来技術によるウェーブフロント・アレイの縁部に沿って係数をロ ードするに要する時間に対応する。
計算は155回毎サイクルにおいてプレイを通って流れ始めセッサ・サイクル2 回毎に最後の二重ポート・メモリ・リンキング・エレメントに記憶される。この 時点から計算と出力とが同時に行われる。シストリック・アレイの例の場合と同 様、プレイから結果を読取るための追加の時間は必要ない。マトリックスの対は 左方から入力されて連続的であり、結果はMWAPアレイの右方から読取られる 。
第17図において、各行の出力マトリックスのための計算時間は2N+1 プロ セッサ・サイクルである(Nは四角のマトリックスのサイズ)。サイズNの2個 の四角のマトリックスの乗算のための全計算時間はN(2N+1)プロセッサ・ サイクルである。このように、NプロセッサがNxNの積を計算するための計算 時間は概ねNの2乗に比例する。このことが、シストリックあるいは従来技術に よるウェーブフロント・アレイにより得られる性能と同じか、あるいは僅かに優 れているということは以下の通シに示される。9X9の完全なマトリックス乗算 を計算する上で9個のプロセッサを使用するものと想定する。
直線MWAP プレイが使用さnるとすれば、約9(29+1)即ち171のプ ロセッサ・サイクルを必要とする。シストリックあるいは従来技術によるウェー ブフロント・アレイを用いると、マトリックを分割することによシ積を得ること が必要である。AとBのマトリックスを3×3のマトリックスに分割することに より次のようになる。
CQI)−A(111* BQI)+AQa* B(2υ+Acl31* BC 311CI−AC2υ*Bαυ+AI2:15*B(2υ+Aρ31*13(3 11C(411−AC311* Bαυ+A(321*B(2υ+A[有]*  BC31)* ただしA(ij) 、B(ij)およびC(ij) は全て3X3マトリツクス である。
NxNのシストリックあるいに従来技術のウェーブフロント・アレイは概ねNの プロセッサ反復においてNxNマトリック積を計算できるので、各々のC(ij )項の計算は3*N即ち9のプロセッサ反復を必要とする。このように、従来技 術のアレイに対して全体のCマトリックスを計算するには9×9即ち81のプロ セッサ反復と18のマトリックス加算を実行するに要する時間とを必要とする。
従来技術によるウェーブフロント・アレイによるマトリックス乗算用の基本的反 復は以下の通りである。
FETCHBI UP FETCHA、LEFT FLOW A、R工GHT FLOW B、DOWN MULT A、B、D ADD C,D、に の反復は6プロセツサ・サイクルを必要とする。そのため9X9マトリツクス積 を計算するための概略時間は従来技術のウェーブフロント・アレイを用いると4 86プロ′セツサ・サイクルである。2個のプロセッサに対するサイクル時間が 同じであるとすれば、MWAP アレイは従来技術によるウェーブフロント・ア レイよシ約2.5倍速い。前述の比較はMWAP のさらに2つの特性を示す。
りことによって、スループツト率を著しく増加させる。
事実、はとんどのアルゴリズムに対して、MWAP flシストリックあるいは 従来技術によるつ、ニーズフロント・プレイのいずれかより高速である。
8、 リンキング・メモリを使用することによって、単一の直線MWAP アレ イが広範囲の1−Dおよび2−Dの幾何的アルゴリズムを実行できるようにする 。
高速フーリエ変換(FFT)を計亘するためのMWAPの使用前述のように、再 帰式を用いてフーリエ変換を計算することは、従来技術のシストリックろるいは ウェーブフロント・プレイ処理を用いたのでは不可能である。下記の式により規 定される不連続フーリエ変換は、シストリックあるいは従来技術によるウェーブ フロント・アレイにより計算可能である。
しかしながら、不連続公式は、長さNの変換を計算するにはNプロセッサとNプ ロセッサ・サイクルとを、即ちN2乗の演算フーリエ変換再帰式は以下の通りで ろる。
p、qおよびrはステージによって変わる。この高速フーリエ変換(FFT)の 計算はサイズNの変換を計算するにN lol!2 (N1演算を要するのみで ある。このように、再帰式は不連続フーリエ変換を用いた直接的計算よりも高速 である。しかしながら、入力計算点の間の距離は、再帰式を用いる計算の各ステ ージに対して変化(増加)する。これは、デシメーション・イン・タイム・コン スタント・ジオメトリ・FFTアルゴリズムに対する一つのフロー・グラフであ る第18図から判る。入力データ点の間の距離、即ちグローバル通信の要件の変 動により、シストリックあるいは従来技術のウェーブフロント・アレイに対して 再帰式を用いてFFTを実行することは不可能になる。
再帰式を用いてFFT’4J行するためにMWAP を用いる一方法ぼ、プロセ ッサを第18図に示すように相互接伏し、アルゴリズムの各項に対して処理エレ メントを用いることである。
この方法では、N点の変換に対してN個のプロセッサを必要とする。
しかしながら、前述の例において用いたのと同じ直線アレイのメモリをリンクし たウェーブフロント・アレイ・プロセッサは高速フーリエ変換を計算することが できる。MWAPでFFTを実行するために、ビット反転順序で入力が第1の二 重ボート・メモリ・リンキング・ニレメンi・に記憶され、ビット反転順序でス テージ間の二重ポート・メモリ・リンキング・エレメントにW係数が記憶され、 2個のベース・アドレス・レジスタヲ用いてプロセッサ間で合計と差の項が伝播 嘔几る。このため第19図から判るように、ステージの間での係数とデータとの アトレシングを線形にする。MWAPはFFTを以下のように計算する。
−x(pi−W (rlx(qlを計算する1個のMWAP処理モジュールを用 いて実行される。
2、各ステージにおけるプロセッサは、メモリ・アドレス・レジスタAとメモリ ・アドレス・レジスタBとを交互に用いてIp−ql長さの総計と差異の積のブ ロックを右側の二重ホード・メモリ・リンキング・エレメントへ出力する。
3、各ステージにおけるプロセッサ岐、メモリ嗜アドレス・ベース・レジスタA とBとを交互に用いて左側の二重ポート・メモリ・リンキング・エレメントから 計算点を読取る。
16点のFFTの計算の時間スナップショットと共にアルゴリズムを第19図に 示ア。MWAPはサイズNの変換に対してIn(NJプロセッサを用いてFFT を実行し、N/2シストリツク・サイクルにおいて長さがNの多数のフーリエ変 換を実行する。このように、MWAP fi、シストリックあるいは従来技術の ウエーグフロジト・アレイでは不可能なアルゴリズムを実行ことに明らかである 。したがって、請求の範囲内において、本発明は本明細書で詳しく説明した以外 の方法で冥抛しうろことを理解すべきである。
DPM PEN0.I DPM PENQ2 DPM PEN0.3−・−国際 調査報告

Claims (1)

  1. 【特許請求の範囲】 1.少なくとも2個の処理エレメントの直線アレイと、前記直線アレイ内でグロ ーバルな非同期通信を提供する手段であって、前記直線アレイに作動可能に散在 され、二重ポート・メモリ・リンキング・エレメントの交互の直線シーケンスを 形成する複数の二重ポート・メモリ・リンキング・エレメントと、各処理エレメ ントとその隣接する二重ポート・メモリ・リンキング・エレメントとの間て非同 期通信を提供する処理エレメントとを具備する手段と、を具備する、メモリをリ ンクしたウェーブフロント・アレイ・プロセッサ。 2.請求の範囲第1項記載の装置において、前記二重ポート・メモリ・リンキン グ・エレメントの各々が、右側ポートと、左側ポートと、該右側ポートおよび左 側ポートを介してアクセスして、計算に用いられる係数、中間計算かよびデータ が処理ステージの間で前記二重ポート・メモリ・リンキング・エレメントに記憶 できるようにするメモリとを具備すること。 3.請求の範囲第2項記載の装置において、前記処理エレメント(PE)と二重 ポート・メモリ・リンキング・エレメント(DPM)との直線アレイが以下の交 互シーケンスを形成するよう作動接続されており、 ▲数式、化学式、表等があります▼ nが処理エレメント/二重ポート・メモリ・リンキング・エレメントのペアの数 を規定する整数であり、各処理エレメントが右側の隣接する二重ポート・メモリ ・リンキング・エレメントの左側のポートに作動接続されて該二重ポート・メモ リ・リンキング・エレメントにおける選定されたメモリ位置にアクセスし、かつ 、その左側の隣接する二重ポート・メモリ・リンキング・エレメントの右側のポ ートに作動接続されて該二重ポート・メモリ・リンキング・エレメントにかける 選定されたメモリ位置にアクセスし、もって、データ、中間計算、および係数を 、受取り側の処理エレメントがデータを使用する順序によっては制限されない任 意の所望順序で処理エレメントの間を伝えられること。 4.請求の範囲第3項記載の装置において、各処理エレメントと関連し、その特 定の処理エレメントのデータ駆動の非同期制御を提供するローカル制御手段をさ らに備え、該ローカル制御手段が特定の処理エレメントとその隣接する二重ポー ト・メモリ・リンキング・エレメントの中の1個との間て非同期ハンドシェーキ ングを提供する手段を有すること。 5.請求の範囲第4項記載の装置にかいて、作動する毎に2つの交互の状態の間 で切換るよう各二重ポート・メモリ・リンキング・エレメントと関連付けられた 少なくとも1個のコントロール・フラッグ手段をさらに備え、各処理エレメント がさらに、右側の隣接する二重ポート・メモリ・リンキング・エレメントと左側 の隣接する二重ポート・メモリ・リンキング・エレメントとに関連した前記少な くとも1個のコントロール・フラッグ手段を選択的に作動させる手段を含むこと 。 6.請求の範囲第5項記載の装置において、前記ローカル制御手段の各々がさら に、 右側の隣接する二重ポート・メモリ・リンキング・エレメントに関連した前記少 なくとも1個のコントロール・フラッグ手段の状態を検出し、かつ、前記左側の 隣接する二重ポート・メモリ・リンキング・エレメントに関連した前記少なくと も1個のコントロール・フラッグ手段の状態を検出する第1の手段と、 プログラムシーケンスが前記右側あるいは左側の二重ポート・メモリ・リンキン グ・エレメントのメモリ位置へのアクセスを要求し、かつ、二重ポート・メモリ に関連した前記少なくとも1個のコントロール・フラッグ手段がセットされてい なかったとき、プログラムの実行を中断し、前記少なくとも1個のコントロール ・フラッグがセットされるまでプログラムの実行を中断し続ける第2の手段と、 を備えること。 7.請求の範囲第5項記載の装置において、各処理エレメントがさらに、 前記右側の隣接する二重ポート・メモリ・リンキング・エレメントにおけるメモ リ位置を選択的にアドレスする少なくとも1個の右側アドレス・メモリ手段と、 前記左側の隣接する二重ポート・メモリ・リンキング・エレメントにおけるメモ リ位置を選択的にアドレスする少くとも1個の左側アドレス・メモリ手段とを備 え、前記右側の二重ポート・メモリ・リンキング・エレメントに対する前記少な くとも1個のコントロール・フラッグ手段の各々が前記少なくとも1個の右側ア ドレス手段の中の特定のものと関連しており、前記左側のメモリ・リンキング・ エレメントに対する前記少なくとも1個のコントロール・フラッグ手段の各々が 前記少なくとも1個の左側アドレス手段の中の特定のものと関連しておψ、 前記ローカル制御手段がさらに、 前記右側の隣接する二重ポート・メモリ・リンキング・エレメントと関連した前 記少なくとも1個のコントロール・フラッグ手段の状態を検出し、かつ、前記左 側の隣接するメモリ・リンキング・エレメントと関連した前記少なくとも1個の コントロール・フラッグ手段の状態を検出する第1の手段と、プログラム・シー ケンスが前記少なくとも1個の右側アドレス手段に対し前記石側の隣接する二重 ポート・メモリ・リンキング・エレメントにおけるメモリ位置へアクセスするよ う要求する場合、前記少なくとも1個の右側アドレス手段に関連した前記少くと も1個のフラグ・コントロール手段がセットされるまで、前記特定の処理エレメ ントに対するプログラム実行を中断し、プログラム・シーケンスが前記少なくと も1個の左側アドレス手段に対し前記左側の隣接する二重ポート・メモリ・リン キング・エレメントにおけるメモリ位置にアクセスするよう要求する場合、前記 少なくとも1個の左側アドレス手段に関連する前記少なくとも1個のコントロー ル・フラッグ手段がセットされるまでプログラムの実行を中断する第2の手段と を備えること。 8.請求の範囲第4項記載の装置において、各処理エレメントが、前記直線アレ イの右側および左側に位置した隣接する二重ポート・メモリ・リンキング・エレ メントにおけるメモリ位置を同時にアクセスする多方向通信手段と、前記多方向 通信手段の作動と同時に計算機能を実行する手段とを備えること。 9.請求の範囲第8項記載の装置において、各処理エレメントがさらに、右側の 前記二重ポート・メモリ・リンキング・エレメントにおけるメモリ位置をアドレ スする右側アドレス・レジスタと、左側の前記二重ポート・メモリ・リンキング ・エレメントにおけるメモリ位置をアドレスする左側アドレス・レジスタとを備 えること。 10.請求の範囲第9項記載の装置において、前記隣接する左側側および右側の 二重ポート・メモリ・リンキング手段におけるメモリ位置を同時にアクセスする 前記手段が、入力レジスタと、 出力レジスタと、 すぐ右側に位置する前記二重ポート・メモリ・リンキング・エレメントの前記左 側のポートへ作動連結された右側データ・ポートと、 すぐ左側に位置する前記二重ポート・メモリ・リンキング・エレメントの前記左 側のポートへ作動連結された左側データ・ポートと、 前記右側めデータ・ポートあるいは前記左側データ・ポートのいずれかから前記 入力レジスタおよび前記出力レジスタに個別にアクセスし、前記処理エレメント が前記隣接する右側および左側の二重ポート・メモリ・リンキング・エレメント に対して同時に多方向通信ができるようにする手段と、を備えること。 11.請求の範囲第9項記載の装置において、前記隣接する左側及び右側の二重 ポート・メモリ・エレメントにおけるメモリ位置を同時にアクセスする前記手段 が、入力レジスタと、 出力レジスタと、 内部算術レジスタと、 すぐ右側に位置した前記二重ポート・メモリ・リンキング・データ・エレメント に一端で作動連結され、かつ、前記入力レジスタと出力レジスタと内部算術レジ スタとに同時にアクセスするよう他端で作動連結されている右側データ・ポート と、 すぐ左側に位置した前記二重ポート・メモリ・リンキング・エレメントの前記右 側ポートに一端で作動連結され、かつ前記入力レジスタと出力レジスタと内部算 術レジスタとに同時にアクセスするよう他端で作動連結されている左側データ・ ポートと、 を備えること。 12.請求の範囲第11項記載の装置において、前記処理エレメントがさらに、 前記特定の処理エレメントの演算を順序づけるための関連した論理を有するプロ グラム・メモリを備え、前記右側データ・ポートおよび左側データ・ポートから の読取りあるいは書込みの動作を制御する個別のフィールドを命令ワードが有し 、左側データ・ポートヘの読取りまたは書込みならびに右側データ・ポートヘの 読取りあるいは書込みが同じ命令サイクルで発生すること。 13.請求の範囲第12項記載の装置において、前記処理エレメントがさらに、 乗算器と加算器/減算器とを含む算術セクションと、前記乗算器と加算器/減算 器とを前記内部レジスタに作動連結し、同時の乗算、加算あるいは減算の演算を 支援するバス構造手段と、 を備えること。 14.請求の範囲第13項記載の装置において、前記プログラム・メモリに記憶 されて前記特定の処理エレメントの演算を順序づける前記命令ワードが、乗算器 、加算器/減算器および前記右側および左側データ・ポートからの読取り/書込 み演算を制御するための個別のフィールドを有し、乗算、加算/減算および左側 データ・ベートへの読取り/書込みならびに右側データ・ポートヘの読取り/書 込みが同じ命令サイクルの間に平行して発生しうること。 15.請求の範囲第3項記載の装置において、ホスト・コンピュータに作動連結 された第1のポートとメモリ・リンキング・エレメントDPM1に作動連結され た第2のポートとを有する入力インターフェースと、ホスト・コンピュータに作 動連結された第1のポートと二重ポート・メモリ・リンキング・エレメントDP Mn+1に作動連結された第2のポートとを有する出力インターフェースとをさ らに備えること。 16.請求の範囲第3項記載の装置において、ホスト・コンピュータに作動連結 された第1のポートと二重ポート・メモリ・リンキング・エレメントDPMn+ 1に作動連結された第2のポートとを有する入力インターフェースと、 ホスト・コンピュータに作動連結された第1のポートと二重ポート・メモリ・リ ンキング・エレメントDPM1に作動連結された第2のポートとを有する出力イ ンターフェースとをさらに備えること。 17.請求の範囲第4項記載の装置において、各処理エレメントがローカル・ク ロックを備え、各処理エレメントがグローバル・クロックを必要としない自己調 時性であること。 18.請求の範囲第5項記載の装置において、前記少なくとも1個のコントロー ル・フラッグ手段が、特定の二重ポート・メモリ・リンキング・エレメントにお けるデータ・バッファのオーバーラップを可能とする2個のコントロール・フラ ッグを備え、前記特定の二重ポート・メモリ・リンキング・エレメントのすぐ右 側およびすぐ左側の処理エレメントが、前記特定の二重ポート・メモリ・リンキ ング・エレメントにかける異なるメモリ位置に同時にアクセスできること。 19.請求の範囲第2項記載の装置において、前記メモリが複数のレジスタであ ること。 20.請求の範囲第2項記載の装置において、前記メモリがRAMメモリである こと。 21.請求の範囲第9項記載の装置において、前記処理エレメントが複数のベー ス・レジスタを備え、各ベース・レジスタがアドレス・カウンタ/レジスタのペ ァに接続され、各アドレス・カウンタ/レジスタのペアがアドレス・バスに作動 連結されており、前記ベース・レジスタは前記アドレス・カウンタに対する基準 メモリ・アドレスを保持し、前記アドレス・レジスタはさらに、メモリに必要な 各命令の間、アドレス・カウンタを増分するか、ベース・アドレスヘの値をリセ ットするか、あるいは現在のカウントを保持する手段をさらに備えること。 22.請求の範囲第21項記載の装置において、1個以上の前記カウンタ/レジ スタのペアが、ビット反転順序で前記アドレスバスを介して作動接続されている こと。 23.請求の範囲第22項記載の装置において、ビット反転の変換サイズがプロ グラムできるものであること。 24.以下の交互のシーケンスで作動接続された処理エレメント(PE)とメモ リ・リンキング・エレメント(MLE)とのウエーブフロント・アレイにおいて 、 ▲数式、化学式、表等があります▼ nが処理エレメント/メモリ・リンキング・エレメントのペアの数を規定する1 以上の整数であり、各メモリ・リンキング・エレメントは右側ポートと左側ポー トと前記右側および左側ポートを介してアクセスしうるメモリとを備え、各処理 エレメントが右側の隣接するメモリ・リンキング・エレメントの前記左側ポート に作動連結されて該メモリ・リンキング・エレメントにおけるメモリ位置にアク セスし、左側の隣接するメモリ・リンキング・エレメントの前記右側ポートに作 動連結されて、前記メモリ・リンキング・エレメントにおけるメモリ位置にアク セスし、前記直線アレイ内でグローバルな非同期通信が提供されること。 25.請求の範囲第24項記載の装置において、各処理エレメントに関連し、特 定の処理エレメントのデータ駆動非同期制御を提供するローカル制御手段をさら に備え、前記ローカル制御手段が該特定の処理エレメントとその隣接するメモリ ・リンキング・エレメントの中の1個との間て非同期ハンドシェーキングを提供 する手段を備えること。 26.請求の範囲第25項記載の装置において、各処理エレメントが、種々のア ルゴリズムを計算する数個の種々のプログラム・シーケンスを記憶できるプログ ラム・メモリと、各プログラム・メモリにおける開始アドレスを変えることによ り計算されたアルゴリズムを変える手段とを備え、前記アレイにおける異なる処 理エレメントが種々の計算を実行でき、あるいは同じ処理エレメントが種々の計 算を実行できるようにすること。 27.請求の範囲第26項記載の装置において、データと計算とが前記アレイの 右側あるいは左側へ伝播可能であること。 28.請求の範囲第26項記載の装置において、処理エレメント/メモリ・リン キング・エレメントのぺアの数を増加することにより、スループットを増加させ ることができること。 29.請求の範囲第26項記載の装置において、前記メモリ・リンキング・エレ メントが前記アレイの処理エレメント・ステージの間で係数その他の情報をロー ドし記憶する手段を備えること。 30.請求の範囲第26項記載の装置において、前記メモリが複数のレジスタを 備えること。 31.請求の範囲第26項記載の装置において、前記メモリがRAMメモリを備 えること。 32.処理エレメントの、上下、右および左方向を有する二次元アレイと、 前記二次元アレイ内でグローバルな非同期通信を提供する手段であって、前記処 理エレメントの間で前記二次元アレイに作動可能に散在する複数の二重ポート・ メモリ・リンキング・エレメントを備え、各処理エレメントとその隣接する二重 ポート・メモリ・リンキング・エレメントとの間て非同期通信を提供する手段と を備える、メモリをリンクしたウェーブフロント・アレイ・プロセッサ。 33.請求の範囲第32項記載の装置にかいて、前記二重ポート・メモリ・リン キング・エレメントの各々が第1のポートと第2のポートと前記ポートの各々を 介してアクセス可能なメモリとを備え、計算に用いられる係数、中間計算および データが、処理ステップの間で前記二重ポート・メモリ・リンキング・エレメン トに記憶できること。 34.請求の範囲第33項記載の装置において、各処理エレメントが、特定の処 理エレメントに隣接して位置する各々の二重ポート・メモリ・リンキング・エレ メントのポートに作動連結され、データ、中間計算および係数が、受取り側の処 理エレメントがデータを使用する順序には制限されない任意の所望の順序で処理 エレメント間を伝えられること。 35.請求の範囲第34項記載の装置において、各処理エレメントに関連し、特 定の処理エレメントのデータ駆動非同期制御を提供するローカル制御手段をさら に備え、前記ローカル制御手段が、前記特定の処理エレメントとその隣接する二 重ポート・メモリ・リンキング・エレメントの中の1個との間で非同期ハンドシ ェーキングを提供する手段を備えること。 36.請求の範囲第35項記載の装置において、各二重ポート・メモリ・リンキ ング・エレメントに関連し、作動する毎に2つの交互の状態の間で切換わる少な くとも1個のコントロール・フラッグ手段を備え、各処理エレメントがさらに、 該処理エレメントに隣接する各二重ポート・メモリ・リンキング・エレメントと 関連した前記少なくとも1個のコントロール・フラッグ手段を選択的に作動させ る手段を備えること。 37.請求の範囲第36項記載の装置において、前記ローカル制御手段の各々が 、 前記処理エレメントに隣接する、右側、左側、上側および下側の二重ポート・メ モリ・リンキング・エレメントと関連した前記少なくとも1個のコントロール・ フラッグ手段の状態を検出する第1の手段と、 プログラム・シーケンスが前記隣接する二重ポート・メモリ・リンキング・エレ メントの中の1個にカけるメモリ位置へのアクセスを要求し、前記エレメントに 関連した前記少女くとも1個のコントロール・フラッグ手段がセットされてい左 いとき、特定の処理エレメントのプログラム実行を中断し、前記少なくとも1個 のコントロール・フラッグがセットされるまでプログラムの実行を中断させ続け る第2の手段とを備えること。 38.請求の範囲第36項記載の装置において、各処理エレメントがさらに、 上側の隣接する二重ポート・メモリ・リンキング・エレメントにおけるメモリ位 置を選択的にアドレスする少なくとも1個の右側アドレス手段と、 左側の隣接する二重ポート・メモリ・リンキング・エレメントにおけるメモリ位 置を選択的にアドレスする少なくとも1個の左側アドレス手段と、 右側の隣接する二重ポート・メモリ・リンキング・エレメントにおけるメモリ位 置を選択的にアドレスする少なくとも1個の上側アドレス手段と、 下側の隣接した二重ポート・メモリ・リンキング・エレメントにおけるメモリ位 置を選択的にアドレスする少なくとも1個の下側アドレス手段とをさらに備え、 前記隣接する右側、左側、上側および下側の二重ポート・メモリ・エレメントに 関連した前記少なくとも1個のコントロール・フラッグ手段の各々がさらに、前 記アドレス手段の中の特定の1個と関連し、前記制御手段の各々がさらに、 前記隣接する右側、左側、上側および下側の二重ポート・メモリ・リンキング・ エレメントと関連した前記少なくとも1個のコントロール・フラッグ手段の状態 を検出する第1の手段と、 プログラム・シーケンスが前記少なくとも1個の右側、左側、上側および下側の アドレス手段に対してメモリ位置をアクセスするよう要求するとき、前記特定の 少なくとも1個のアドレス手段に関連した前記少なくとも1個のコントロール・ フラッグ手段がセットされるまで、該特定の処理エレメントに対するプログラム の実行を中断する第2の手段とを備えること。 39,請求の範囲第35項記載の装置において、各処理エレメントが、前記処理 エレメントに隣接する右側、左側、上側および下側の二重ポート・メモリ・リン キング・エレメントにおけるメモリ位置を同時にアクセスする多方向通信手段と 、前記多方向通信手段の作動と同時に計算機能を実行する手段とを備えること。 40.請求の範囲第4項記載の装置において、前記直線アレイが多方向プロセッ サ・アレイの一要素部分であること。 41.請求の範囲第14項記載の装置において、前記直線アレイが多方向プロセ ッサ・アレイの一要素部分であること。 42.請求の範囲第24項記載の装置にかいて、前記アレイが多方向プロセッサ ・アレイの一要素部分であること。 43.複数の処理エレメントを含むn次元のアレイ(nはアレイの幾何学的寸法 を規定する整数)と、前記アレイ内でグローバルな非同期通信を提供する手段で あって、前記処理エレメントの間で前記アレイに作動可能に散在する複数のメモ リ・リンキング・エレメントを備え、各処理エレメントと前記アレイでの隣接す るメモリ・リンキング・エレメントとの間で非同期通信を提供する手段とを備え る、メモリをリンクしたウエーブフロント・アレイ・プロセッサ。 44.請求の範囲第43項記載の装置において、前記メモリ・リンキング・エレ メントの各々が、第1のポートと第2のポートと該ポートの各々を介してアクセ ス可能なメモリとを備え、計算に使用される係数、中間計算およびデータを処理 ステップの間で前記メモリ・リンキング・エレメントに記憶できること。 45.請求の範囲第44項記載の装置において、各処理エレメントが、前記n次 元アレイにおいて特定の処理エレメントに隣接する各メモリ・リンキング・エレ メントの前記ポートの中の特定の1個に作動連結され、データ、中間計算および 係数が、受取り側の処理エレメントがデータを使用する順序に規制されない任意 の所望の順序で処理エレメントの間を伝わることができること。 46.請求の範囲第45項記載の装置において、各処理エレメントと関連し、前 記特定の処理エレメントのデータ駆動非同期制御を提供するローカル制御手段を さらに備え、前記ローカル制御手段が、特定の処理エレメントとその隣接するメ モリ・リンキング・エレメントの中の1個との間て非同期ハンドシェーキングを 提供する手段を備えること。 47.請求の範囲第46項記載の装置において、各処理エレメントが、前記n次 元アレイにおいて特定の処理エレメントに隣接する各メモリ・リンキング・エレ メントにおけるメモリ位置を同時にアクセスする多方向手段と・前記多次元通信 手段の作動と同時に計算機能を実行する手段とを備えること。
JP61505584A 1985-09-17 1986-09-17 メモリをリンクしたウエ−ブフロント・アレイ・プロセッサ Pending JPS63501530A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/777,112 US4720780A (en) 1985-09-17 1985-09-17 Memory-linked wavefront array processor
US777112 2001-02-05

Publications (1)

Publication Number Publication Date
JPS63501530A true JPS63501530A (ja) 1988-06-09

Family

ID=25109328

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61505584A Pending JPS63501530A (ja) 1985-09-17 1986-09-17 メモリをリンクしたウエ−ブフロント・アレイ・プロセッサ

Country Status (6)

Country Link
US (2) US4720780A (ja)
EP (1) EP0237571B1 (ja)
JP (1) JPS63501530A (ja)
KR (1) KR970001899B1 (ja)
DE (1) DE3685107D1 (ja)
WO (1) WO1987001841A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011105408A1 (ja) * 2010-02-24 2011-09-01 日本電気株式会社 Simdプロセッサ

Families Citing this family (240)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS625465A (ja) * 1985-07-01 1987-01-12 Akira Nakano 情報処理ユニツトおよびマルチ情報処理ユニツトシステム
US4807183A (en) * 1985-09-27 1989-02-21 Carnegie-Mellon University Programmable interconnection chip for computer system functional modules
CA1283738C (en) * 1985-11-13 1991-04-30 Atsushi Hasebe Data processor
US4907148A (en) * 1985-11-13 1990-03-06 Alcatel U.S.A. Corp. Cellular array processor with individual cell-level data-dependent cell control and multiport input memory
NL8600218A (nl) * 1986-01-30 1987-08-17 Philips Nv Netwerk van dataverwerkingsstations.
GB8618943D0 (en) * 1986-08-02 1986-09-10 Int Computers Ltd Data processing apparatus
GB2211638A (en) * 1987-10-27 1989-07-05 Ibm Simd array processor
US4933836A (en) * 1986-10-29 1990-06-12 United Technologies Corporation n-Dimensional modular multiprocessor lattice architecture
US5012441A (en) * 1986-11-24 1991-04-30 Zoran Corporation Apparatus for addressing memory with data word and data block reversal capability
US4797806A (en) * 1987-02-19 1989-01-10 Gtx Corporation High speed serial pixel neighborhood processor and method
US4891751A (en) * 1987-03-27 1990-01-02 Floating Point Systems, Inc. Massively parallel vector processing computer
US5226128A (en) * 1987-05-01 1993-07-06 Hewlett-Packard Company Horizontal computer having register multiconnect for execution of a loop with a branch
US5276819A (en) * 1987-05-01 1994-01-04 Hewlett-Packard Company Horizontal computer having register multiconnect for operand address generation during execution of iterations of a loop of program code
US5036454A (en) * 1987-05-01 1991-07-30 Hewlett-Packard Company Horizontal computer having register multiconnect for execution of a loop with overlapped code
US5083267A (en) * 1987-05-01 1992-01-21 Hewlett-Packard Company Horizontal computer having register multiconnect for execution of an instruction loop with recurrance
US4933895A (en) * 1987-07-10 1990-06-12 Hughes Aircraft Company Cellular array having data dependent processing capabilities
US4908751A (en) * 1987-10-15 1990-03-13 Smith Harry F Parallel data processor
US5115510A (en) * 1987-10-20 1992-05-19 Sharp Kabushiki Kaisha Multistage data flow processor with instruction packet, fetch, storage transmission and address generation controlled by destination information
US5278781A (en) * 1987-11-12 1994-01-11 Matsushita Electric Industrial Co., Ltd. Digital signal processing system
US4975870A (en) * 1988-02-25 1990-12-04 Data General Corporation Apparatus for locking a portion of a computer memory
US4896265A (en) * 1988-03-28 1990-01-23 General Electric Company Parallel broadcasting method and apparatus
JPH01261772A (ja) * 1988-04-08 1989-10-18 Cogent Res Inc コンピュータ及びその動作方法
ATE81731T1 (de) * 1988-05-10 1992-11-15 Cray Research Inc Vektorschlange in computern mit vektorregister.
JPH0254383A (ja) * 1988-08-18 1990-02-23 Mitsubishi Electric Corp アレイプロセッサ
EP0360527B1 (en) * 1988-09-19 1995-01-04 Fujitsu Limited Parallel computer system using a SIMD method
DE68926783T2 (de) * 1988-10-07 1996-11-28 Martin Marietta Corp Paralleler datenprozessor
US4984192A (en) * 1988-12-02 1991-01-08 Ultrasystems Defense Inc. Programmable state machines connectable in a reconfiguration switching network for performing real-time data processing
JPH02178808A (ja) * 1988-12-29 1990-07-11 Yaskawa Electric Mfg Co Ltd ロボットの制御方法
US5072371A (en) * 1989-03-01 1991-12-10 The United States Of America As Represented By The United States Department Of Energy Method for simultaneous overlapped communications between neighboring processors in a multiple
US5168572A (en) * 1989-03-10 1992-12-01 The Boeing Company System for dynamic selection of globally-determined optimal data path
US5689647A (en) * 1989-03-14 1997-11-18 Sanyo Electric Co., Ltd. Parallel computing system with processing element number setting mode and shortest route determination with matrix size information
US5101480A (en) * 1989-05-09 1992-03-31 The University Of Michigan Hexagonal mesh multiprocessor system
US5142686A (en) * 1989-10-20 1992-08-25 United Technologies Corporation Multiprocessor system having processors and switches with each pair of processors connected through a single switch using Latin square matrix
US5179530A (en) * 1989-11-03 1993-01-12 Zoran Corporation Architecture for integrated concurrent vector signal processor
DE58908974D1 (de) * 1989-11-21 1995-03-16 Itt Ind Gmbh Deutsche Datengesteuerter Arrayprozessor.
US5121502A (en) * 1989-12-20 1992-06-09 Hewlett-Packard Company System for selectively communicating instructions from memory locations simultaneously or from the same memory locations sequentially to plurality of processing
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
GB9008366D0 (en) * 1990-04-12 1990-06-13 British Aerospace Data interaction architecture(dia)for real time embedded multi processor systems
EP0453863A2 (en) * 1990-04-27 1991-10-30 National Semiconductor Corporation Methods and apparatus for implementing a media access control/host system interface
US5157785A (en) * 1990-05-29 1992-10-20 Wavetracer, Inc. Process cell for an n-dimensional processor array having a single input element with 2n data inputs, memory, and full function arithmetic logic unit
US5133073A (en) * 1990-05-29 1992-07-21 Wavetracer, Inc. Processor array of N-dimensions which is physically reconfigurable into N-1
US5193202A (en) * 1990-05-29 1993-03-09 Wavetracer, Inc. Processor array with relocated operand physical address generator capable of data transfer to distant physical processor for each virtual processor while simulating dimensionally larger array processor
EP0485594A4 (en) * 1990-05-30 1995-02-01 Adaptive Solutions Inc Mechanism providing concurrent computational/communications in simd architecture
US5430862A (en) * 1990-06-29 1995-07-04 Bull Hn Information Systems Inc. Emulation of CISC instructions by RISC instructions using two pipelined stages for overlapped CISC decoding and RISC execution
GB9018048D0 (en) * 1990-08-16 1990-10-03 Secr Defence Digital processor for simulating operation of a parallel processing array
US5206952A (en) * 1990-09-12 1993-04-27 Cray Research, Inc. Fault tolerant networking architecture
US5765012A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Controller for a SIMD/MIMD array having an instruction sequencer utilizing a canned routine library
US5625836A (en) * 1990-11-13 1997-04-29 International Business Machines Corporation SIMD/MIMD processing memory element (PME)
US5809292A (en) * 1990-11-13 1998-09-15 International Business Machines Corporation Floating point for simid array machine
US5734921A (en) * 1990-11-13 1998-03-31 International Business Machines Corporation Advanced parallel array processor computer package
US5617577A (en) * 1990-11-13 1997-04-01 International Business Machines Corporation Advanced parallel array processor I/O connection
US5815723A (en) * 1990-11-13 1998-09-29 International Business Machines Corporation Picket autonomy on a SIMD machine
US5588152A (en) * 1990-11-13 1996-12-24 International Business Machines Corporation Advanced parallel processor including advanced support hardware
US5794059A (en) * 1990-11-13 1998-08-11 International Business Machines Corporation N-dimensional modified hypercube
US5590345A (en) * 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
US5963746A (en) * 1990-11-13 1999-10-05 International Business Machines Corporation Fully distributed processing memory element
DE69131272T2 (de) * 1990-11-13 1999-12-09 International Business Machines Corp., Armonk Paralleles Assoziativprozessor-System
US5713037A (en) * 1990-11-13 1998-01-27 International Business Machines Corporation Slide bus communication functions for SIMD/MIMD array processor
US5963745A (en) * 1990-11-13 1999-10-05 International Business Machines Corporation APAP I/O programmable router
US5765011A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams
US5828894A (en) * 1990-11-13 1998-10-27 International Business Machines Corporation Array processor having grouping of SIMD pickets
US5765015A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Slide network for an array processor
US5630162A (en) * 1990-11-13 1997-05-13 International Business Machines Corporation Array processor dotted communication network based on H-DOTs
US5966528A (en) * 1990-11-13 1999-10-12 International Business Machines Corporation SIMD/MIMD array processor with vector processing
JP3237858B2 (ja) * 1991-01-30 2001-12-10 沖電気工業株式会社 演算装置
US5434970A (en) * 1991-02-14 1995-07-18 Cray Research, Inc. System for distributed multiprocessor communication
US5175858A (en) * 1991-03-04 1992-12-29 Adaptive Solutions, Inc. Mechanism providing concurrent computational/communications in SIMD architecture
JPH04293151A (ja) * 1991-03-20 1992-10-16 Fujitsu Ltd 並列データ処理方式
US5241492A (en) * 1991-05-06 1993-08-31 Motorola, Inc. Apparatus for performing multiply and accumulate instructions with reduced power and a method therefor
US5594918A (en) * 1991-05-13 1997-01-14 International Business Machines Corporation Parallel computer system providing multi-ported intelligent memory
JPH0520284A (ja) * 1991-07-16 1993-01-29 Matsushita Electric Ind Co Ltd パラレルプロセツサシステム
US5361370A (en) * 1991-10-24 1994-11-01 Intel Corporation Single-instruction multiple-data processor having dual-ported local memory architecture for simultaneous data transmission on local memory ports and global port
WO1993011503A1 (en) 1991-12-06 1993-06-10 Norman Richard S Massively-parallel direct output processor array
FR2686175B1 (fr) * 1992-01-14 1996-12-20 Andre Thepaut Systeme de traitement de donnees multiprocesseur.
US5506992A (en) * 1992-01-30 1996-04-09 Saxenmeyer; George Distributed processing system with asynchronous communication between processing modules
KR950014862B1 (ko) * 1992-02-08 1995-12-16 삼성전자주식회사 움직임추정방법 및 그 장치
US6104439A (en) * 1992-02-08 2000-08-15 Samsung Electronics Co., Ltd. Method and apparatus for motion estimation
US5991866A (en) * 1992-03-25 1999-11-23 Tm Patents, Lp Method and system for generating a program to facilitate rearrangement of address bits among addresses in a massively parallel processor system
JP2572522B2 (ja) * 1992-05-12 1997-01-16 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピューティング装置
JP2642039B2 (ja) * 1992-05-22 1997-08-20 インターナショナル・ビジネス・マシーンズ・コーポレイション アレイ・プロセッサ
US6067417A (en) * 1992-06-30 2000-05-23 Discovision Associates Picture start token
US5842033A (en) * 1992-06-30 1998-11-24 Discovision Associates Padding apparatus for passing an arbitrary number of bits through a buffer in a pipeline system
US6330665B1 (en) 1992-06-30 2001-12-11 Discovision Associates Video parser
US6112017A (en) * 1992-06-30 2000-08-29 Discovision Associates Pipeline processing machine having a plurality of reconfigurable processing stages interconnected by a two-wire interface bus
US6079009A (en) * 1992-06-30 2000-06-20 Discovision Associates Coding standard token in a system compromising a plurality of pipeline stages
US6435737B1 (en) 1992-06-30 2002-08-20 Discovision Associates Data pipeline system and data encoding method
US5809270A (en) * 1992-06-30 1998-09-15 Discovision Associates Inverse quantizer
US6047112A (en) * 1992-06-30 2000-04-04 Discovision Associates Technique for initiating processing of a data stream of encoded video information
US5768561A (en) * 1992-06-30 1998-06-16 Discovision Associates Tokens-based adaptive video processing arrangement
DE69229338T2 (de) * 1992-06-30 1999-12-16 Discovision Associates, Irvine Datenpipelinesystem
US7095783B1 (en) 1992-06-30 2006-08-22 Discovision Associates Multistandard video decoder and decompression system for processing encoded bit streams including start codes and methods relating thereto
US5428803A (en) * 1992-07-10 1995-06-27 Cray Research, Inc. Method and apparatus for a unified parallel processing architecture
US6098113A (en) * 1992-10-22 2000-08-01 Ncr Corporation Apparatus and method for address translation and allocation for a plurality of input/output (I/O) buses to a system bus
US5586281A (en) * 1992-10-27 1996-12-17 Sharp Kabushiki Kaisha Data driven type information processing apparatus
JPH06162228A (ja) * 1992-11-26 1994-06-10 Sharp Corp データフロープロセッサ装置
JPH06290158A (ja) * 1993-03-31 1994-10-18 Fujitsu Ltd 再構成可能なトーラス・ネットワーク方式
JPH0713945A (ja) * 1993-06-16 1995-01-17 Nippon Sheet Glass Co Ltd 演算処理部および制御・記憶部分離型マルチプロセッサ ・システムのバス構造
US5861894A (en) * 1993-06-24 1999-01-19 Discovision Associates Buffer manager
US5878273A (en) * 1993-06-24 1999-03-02 Discovision Associates System for microprogrammable state machine in video parser disabling portion of processing stages responsive to sequence-- end token generating by token generator responsive to received data
US5805914A (en) * 1993-06-24 1998-09-08 Discovision Associates Data pipeline system and data encoding method
US6462578B2 (en) 1993-08-03 2002-10-08 Btr, Inc. Architecture and interconnect scheme for programmable logic circuits
US5457410A (en) * 1993-08-03 1995-10-10 Btr, Inc. Architecture and interconnect scheme for programmable logic circuits
US6073185A (en) * 1993-08-27 2000-06-06 Teranex, Inc. Parallel data processor
US5848276A (en) * 1993-12-06 1998-12-08 Cpu Technology, Inc. High speed, direct register access operation for parallel processing units
US5485576A (en) * 1994-01-28 1996-01-16 Fee; Brendan Chassis fault tolerant system management bus architecture for a networking
MX9602687A (es) * 1994-02-23 1997-05-31 Rosemount Inc Transmisor de campo para almacenar informacion.
US6145071A (en) * 1994-03-03 2000-11-07 The George Washington University Multi-layer multi-processor information conveyor with periodic transferring of processors' states for on-the-fly transformation of continuous information flows and operating method therefor
US6408402B1 (en) 1994-03-22 2002-06-18 Hyperchip Inc. Efficient direct replacement cell fault tolerant architecture
EP1191457A2 (en) * 1994-03-22 2002-03-27 Hyperchip Inc. Monolithic systems with dynamically focused input/output
JP2924643B2 (ja) * 1994-05-19 1999-07-26 ヤマハ株式会社 ディジタル信号処理方法及び装置
JP3458518B2 (ja) * 1994-08-30 2003-10-20 ソニー株式会社 並列プロセッサ
KR100186918B1 (ko) * 1994-10-21 1999-05-01 모리시다 요이치 신호처리장치
US5548788A (en) * 1994-10-27 1996-08-20 Emc Corporation Disk controller having host processor controls the time for transferring data to disk drive by modifying contents of the memory to indicate data is stored in the memory
US5850564A (en) * 1995-05-03 1998-12-15 Btr, Inc, Scalable multiple level tab oriented interconnect architecture
KR19990008270A (ko) 1995-05-03 1999-01-25 팅 벤자민 에스. 스케일가능한 복수 레벨 상호연결 아키텍춰
US5943242A (en) * 1995-11-17 1999-08-24 Pact Gmbh Dynamically reconfigurable data processing system
US7266725B2 (en) * 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
US6003098A (en) * 1996-04-30 1999-12-14 Hewlett-Packard Company Graphic accelerator architecture using two graphics processing units for processing aspects of pre-rasterized graphics primitives and a control circuitry for relaying pass-through information
US5949440A (en) * 1996-04-30 1999-09-07 Hewlett Packard Compnay Method and apparatus for processing graphics primitives in multiple modes using reconfigurable hardware
US6034547A (en) * 1996-09-04 2000-03-07 Advantage Logic, Inc. Method and apparatus for universal program controlled bus
US6624658B2 (en) * 1999-02-04 2003-09-23 Advantage Logic, Inc. Method and apparatus for universal program controlled bus architecture
DE19651075A1 (de) * 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
DE19654593A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh Umkonfigurierungs-Verfahren für programmierbare Bausteine zur Laufzeit
DE19654595A1 (de) * 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
DE19654846A1 (de) * 1996-12-27 1998-07-09 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.)
ATE243390T1 (de) * 1996-12-27 2003-07-15 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen umladen von datenflussprozessoren (dfps) sowie bausteinen mit zwei- oder mehrdimensionalen programmierbaren zellstrukturen (fpgas, dpgas, o.dgl.)
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
DE19704728A1 (de) * 1997-02-08 1998-08-13 Pact Inf Tech Gmbh Verfahren zur Selbstsynchronisation von konfigurierbaren Elementen eines programmierbaren Bausteines
DE19704742A1 (de) * 1997-02-11 1998-09-24 Pact Inf Tech Gmbh Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand
EP0872800B8 (en) * 1997-04-14 2005-08-10 HMS Industrial Networks AB Method and device for exchanging data between two processor units
US6502180B1 (en) * 1997-09-12 2002-12-31 California Institute Of Technology Asynchronous circuits with pipelined completion process
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
DE19861088A1 (de) * 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
US6088800A (en) * 1998-02-27 2000-07-11 Mosaid Technologies, Incorporated Encryption processor with shared memory interconnect
US6212628B1 (en) 1998-04-09 2001-04-03 Teranex, Inc. Mesh connected computer
US6185667B1 (en) 1998-04-09 2001-02-06 Teranex, Inc. Input/output support for processing in a mesh connected computer
US6067609A (en) * 1998-04-09 2000-05-23 Teranex, Inc. Pattern generation and shift plane operations for a mesh connected computer
US6173388B1 (en) 1998-04-09 2001-01-09 Teranex Inc. Directly accessing local memories of array processors for improved real-time corner turning processing
JPH11353288A (ja) * 1998-06-04 1999-12-24 Toshiba Corp 並列計算機及びメモリ装置
US6513108B1 (en) * 1998-06-29 2003-01-28 Cisco Technology, Inc. Programmable processing engine for efficiently processing transient data
US6173386B1 (en) 1998-12-14 2001-01-09 Cisco Technology, Inc. Parallel processor with debug capability
US6920562B1 (en) 1998-12-18 2005-07-19 Cisco Technology, Inc. Tightly coupled software protocol decode with hardware data encryption
US6701432B1 (en) * 1999-04-01 2004-03-02 Netscreen Technologies, Inc. Firewall including local bus
US7107612B1 (en) * 1999-04-01 2006-09-12 Juniper Networks, Inc. Method, apparatus and computer program product for a network firewall
GB9911890D0 (en) * 1999-05-22 1999-07-21 Lucas Ind Plc Method and apparatus for detecting a fault condition in a computer processor
CN1378665A (zh) 1999-06-10 2002-11-06 Pact信息技术有限公司 编程概念
US6728863B1 (en) 1999-10-26 2004-04-27 Assabet Ventures Wide connections for transferring data between PE's of an N-dimensional mesh-connected SIMD array while transferring operands from memory
AU2471001A (en) 1999-10-26 2001-05-08 Arthur D. Little, Inc. Multiplexing n-dimensional mesh connections onto (n + 1) data paths
US6529983B1 (en) 1999-11-03 2003-03-04 Cisco Technology, Inc. Group and virtual locking mechanism for inter processor synchronization
US6584581B1 (en) * 1999-12-06 2003-06-24 Ab Initio Software Corporation Continuous flow checkpointing data processing
US6320412B1 (en) 1999-12-20 2001-11-20 Btr, Inc. C/O Corporate Trust Co. Architecture and interconnect for programmable logic circuits
US6892237B1 (en) * 2000-03-28 2005-05-10 Cisco Technology, Inc. Method and apparatus for high-speed parsing of network messages
US6505269B1 (en) 2000-05-16 2003-01-07 Cisco Technology, Inc. Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system
DE50115584D1 (de) 2000-06-13 2010-09-16 Krass Maren Pipeline ct-protokolle und -kommunikation
US6754801B1 (en) * 2000-08-22 2004-06-22 Micron Technology, Inc. Method and apparatus for a shift register based interconnection for a massively parallel processor array
US20040015899A1 (en) * 2000-10-06 2004-01-22 Frank May Method for processing data
ATE437476T1 (de) 2000-10-06 2009-08-15 Pact Xpp Technologies Ag Zellenanordnung mit segmentierter zwischenzellstruktur
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
GB2370380B (en) 2000-12-19 2003-12-31 Picochip Designs Ltd Processor architecture
US6990555B2 (en) 2001-01-09 2006-01-24 Pact Xpp Technologies Ag Method of hierarchical caching of configuration data having dataflow processors and modules having two- or multidimensional programmable cell structure (FPGAs, DPGAs, etc.)
US7210129B2 (en) 2001-08-16 2007-04-24 Pact Xpp Technologies Ag Method for translating programs for reconfigurable architectures
US7581076B2 (en) 2001-03-05 2009-08-25 Pact Xpp Technologies Ag Methods and devices for treating and/or processing data
US20090300262A1 (en) * 2001-03-05 2009-12-03 Martin Vorbach Methods and devices for treating and/or processing data
US20090210653A1 (en) * 2001-03-05 2009-08-20 Pact Xpp Technologies Ag Method and device for treating and processing data
US7844796B2 (en) * 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US9037807B2 (en) * 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US7657877B2 (en) * 2001-06-20 2010-02-02 Pact Xpp Technologies Ag Method for processing data
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7434191B2 (en) * 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
US7577822B2 (en) * 2001-12-14 2009-08-18 Pact Xpp Technologies Ag Parallel task operation in processor and reconfigurable coprocessor configured based on information in link list including termination information for synchronization
WO2003071418A2 (en) * 2002-01-18 2003-08-28 Pact Xpp Technologies Ag Method and device for partitioning large computer programs
AU2003208266A1 (en) * 2002-01-19 2003-07-30 Pact Xpp Technologies Ag Reconfigurable processor
DE10390689D2 (de) 2002-02-18 2005-02-10 Pact Xpp Technologies Ag Bussysteme und Rekonfigurationsverfahren
WO2004088502A2 (de) * 2003-04-04 2004-10-14 Pact Xpp Technologies Ag Verfahren und vorrichtung für die datenverarbeitung
EP1518186A2 (de) * 2002-03-21 2005-03-30 PACT XPP Technologies AG Verfahren und vorrichtung zur datenverarbeitung
US8914590B2 (en) * 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US7447872B2 (en) * 2002-05-30 2008-11-04 Cisco Technology, Inc. Inter-chip processor control plane communication
US7415594B2 (en) 2002-06-26 2008-08-19 Coherent Logix, Incorporated Processing system with interspersed stall propagating processors and communication elements
US7657861B2 (en) * 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
AU2003286131A1 (en) * 2002-08-07 2004-03-19 Pact Xpp Technologies Ag Method and device for processing data
US20070083730A1 (en) * 2003-06-17 2007-04-12 Martin Vorbach Data processing device and method
US20110238948A1 (en) * 2002-08-07 2011-09-29 Martin Vorbach Method and device for coupling a data processing unit and a data processing array
US7394284B2 (en) * 2002-09-06 2008-07-01 Pact Xpp Technologies Ag Reconfigurable sequencer structure
US7167850B2 (en) * 2002-10-10 2007-01-23 Ab Initio Software Corporation Startup and control of graph-based computation
GB2397668B (en) * 2003-01-27 2005-12-07 Picochip Designs Ltd Processor array
GB2400195B (en) * 2003-03-31 2005-06-29 Micron Technology Inc Active memory processing array topography and method
US7255437B2 (en) * 2003-10-09 2007-08-14 Howell Thomas A Eyeglasses with activity monitoring
US7457234B1 (en) 2003-05-14 2008-11-25 Adtran, Inc. System and method for protecting communication between a central office and a remote premises
US20040255096A1 (en) * 2003-06-11 2004-12-16 Norman Richard S. Method for continuous linear production of integrated circuits
GB2402760B (en) * 2003-06-12 2006-01-11 Advanced Risc Mach Ltd Improvements in flexibility of use of a data processing apparatus
US7130986B2 (en) * 2003-06-30 2006-10-31 Intel Corporation Determining if a register is ready to exchange data with a processing element
JP4700611B2 (ja) * 2003-08-28 2011-06-15 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データ処理装置およびデータ処理方法
US7577824B2 (en) * 2003-09-08 2009-08-18 Altera Corporation Methods and apparatus for storing expanded width instructions in a VLIW memory for deferred execution
US6975139B2 (en) * 2004-03-30 2005-12-13 Advantage Logic, Inc. Scalable non-blocking switching network for programmable logic
US7320064B2 (en) * 2004-07-23 2008-01-15 Honeywell International Inc. Reconfigurable computing architecture for space applications
US7460529B2 (en) * 2004-07-29 2008-12-02 Advantage Logic, Inc. Interconnection fabric using switching networks in hierarchy
US7779177B2 (en) * 2004-08-09 2010-08-17 Arches Computing Systems Multi-processor reconfigurable computing system
EP1849095B1 (en) * 2005-02-07 2013-01-02 Richter, Thomas Low latency massive parallel data processing device
US7478222B2 (en) * 2005-03-29 2009-01-13 Karl M. Fant Programmable pipeline array
US7877350B2 (en) * 2005-06-27 2011-01-25 Ab Initio Technology Llc Managing metadata for graph-based computations
US8560795B2 (en) * 2005-06-30 2013-10-15 Imec Memory arrangement for multi-processor systems including a memory queue
FR2888349A1 (fr) * 2005-07-06 2007-01-12 St Microelectronics Sa Adaptation de debit binaire dans un flot de traitement de donnees
US20070046781A1 (en) * 2005-08-29 2007-03-01 Honeywell International Inc. Systems and methods for processing digital video data
US7281942B2 (en) * 2005-11-18 2007-10-16 Ideal Industries, Inc. Releasable wire connector
EP1974265A1 (de) 2006-01-18 2008-10-01 PACT XPP Technologies AG Hardwaredefinitionsverfahren
US7423453B1 (en) 2006-01-20 2008-09-09 Advantage Logic, Inc. Efficient integrated circuit layout scheme to implement a scalable switching network used in interconnection fabric
EP2008182B1 (en) 2006-03-27 2010-05-12 Coherent Logix Incorporated Programming a multi-processor system
CN103729330B (zh) 2006-08-10 2017-04-19 起元科技有限公司 在基于图的计算中分配服务
EP1978449A2 (en) * 2007-04-06 2008-10-08 Technology Properties Limited Signal processing
EP2234017A3 (en) 2007-07-26 2010-10-27 Ab Initio Technology LLC Transactional graph-based computation with error handling
GB2454865B (en) * 2007-11-05 2012-06-13 Picochip Designs Ltd Power control
US8078829B2 (en) * 2007-12-12 2011-12-13 Itt Manufacturing Enterprises, Inc. Scaleable array of micro-engines for waveform processing
US8078839B2 (en) * 2007-12-13 2011-12-13 Wave Semiconductor Concurrent processing element system, and method
GB2466661B (en) * 2009-01-05 2014-11-26 Intel Corp Rake receiver
WO2010093879A1 (en) 2009-02-13 2010-08-19 Ab Initio Technology Llc Managing task execution
GB2470037B (en) 2009-05-07 2013-07-10 Picochip Designs Ltd Methods and devices for reducing interference in an uplink
GB2470771B (en) 2009-06-05 2012-07-18 Picochip Designs Ltd A method and device in a communication network
GB2470891B (en) 2009-06-05 2013-11-27 Picochip Designs Ltd A method and device in a communication network
US7999570B2 (en) 2009-06-24 2011-08-16 Advantage Logic, Inc. Enhanced permutable switching network with multicasting signals for interconnection fabric
US8667329B2 (en) * 2009-09-25 2014-03-04 Ab Initio Technology Llc Processing transactions in graph-based applications
GB2474071B (en) 2009-10-05 2013-08-07 Picochip Designs Ltd Femtocell base station
CN107066241B (zh) 2010-06-15 2021-03-09 起元技术有限责任公司 用于动态加载基于图的计算的系统和方法
GB2482869B (en) 2010-08-16 2013-11-06 Picochip Designs Ltd Femtocell access control
WO2012051577A1 (en) 2010-10-15 2012-04-19 Coherent Logix, Incorporated Disabling communication in a multiprocessor system
US8924455B1 (en) * 2011-02-25 2014-12-30 Xilinx, Inc. Multiplication of matrices using systolic arrays
GB2489716B (en) 2011-04-05 2015-06-24 Intel Corp Multimode base system
GB2489919B (en) 2011-04-05 2018-02-14 Intel Corp Filter
GB2491098B (en) 2011-05-16 2015-05-20 Intel Corp Accessing a base station
US10108521B2 (en) 2012-11-16 2018-10-23 Ab Initio Technology Llc Dynamic component performance monitoring
US9507682B2 (en) 2012-11-16 2016-11-29 Ab Initio Technology Llc Dynamic graph performance monitoring
US9274926B2 (en) 2013-01-03 2016-03-01 Ab Initio Technology Llc Configurable testing of computer programs
SG11201604525TA (en) 2013-12-05 2016-07-28 Ab Initio Technology Llc Managing interfaces for dataflow graphs composed of sub-graphs
US10657134B2 (en) 2015-08-05 2020-05-19 Ab Initio Technology Llc Selecting queries for execution on a stream of real-time data
CN108475189B (zh) 2015-12-21 2021-07-09 起元技术有限责任公司 子图接口生成的方法、系统及计算机可读介质
EP3500945B1 (en) * 2017-05-17 2020-09-30 Google LLC Low latency matrix multiply unit
US11656849B2 (en) 2019-08-14 2023-05-23 Vorticity Inc. Dedicated hardware system for solving partial differential equations
US11403070B2 (en) * 2019-08-19 2022-08-02 Vorticity Inc. Systolic array design for solving partial differential equations
US11921813B2 (en) 2019-08-20 2024-03-05 Vorticity Inc. Methods for utilizing solver hardware for solving partial differential equations

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3737866A (en) * 1971-07-27 1973-06-05 Data General Corp Data storage and retrieval system
US3848234A (en) * 1973-04-04 1974-11-12 Sperry Rand Corp Multi-processor system with multiple cache memories
US4065808A (en) * 1975-01-25 1977-12-27 U.S. Philips Corporation Network computer system
US4065809A (en) * 1976-05-27 1977-12-27 Tokyo Shibaura Electric Co., Ltd. Multi-processing system for controlling microcomputers and memories
US4309691A (en) 1978-02-17 1982-01-05 California Institute Of Technology Step-oriented pipeline data processing system
US4184200A (en) * 1978-04-26 1980-01-15 Sperry Rand Corporation Integrating I/O element
NL8002787A (nl) * 1980-05-14 1981-12-16 Philips Nv Multiprocessor-rekenmachinesysteem voor het uitvoeren van een recursief algorithme.
JPS56164464A (en) * 1980-05-21 1981-12-17 Tatsuo Nogi Parallel processing computer
US4524455A (en) * 1981-06-01 1985-06-18 Environmental Research Inst. Of Michigan Pipeline processor
JPS6053349B2 (ja) * 1981-06-19 1985-11-25 株式会社日立製作所 画像処理プロセツサ
US4533993A (en) * 1981-08-18 1985-08-06 National Research Development Corp. Multiple processing cell digital data processor
US4495567A (en) * 1981-10-15 1985-01-22 Codex Corporation Multiprocessor/multimemory control system
US4507726A (en) * 1982-01-26 1985-03-26 Hughes Aircraft Company Array processor architecture utilizing modular elemental processors
US4524428A (en) * 1982-01-26 1985-06-18 Hughes Aircraft Company Modular input-programmable logic circuits for use in a modular array processor
US4543642A (en) * 1982-01-26 1985-09-24 Hughes Aircraft Company Data Exchange Subsystem for use in a modular array processor
US4498134A (en) * 1982-01-26 1985-02-05 Hughes Aircraft Company Segregator functional plane for use in a modular array processor
US4574350A (en) * 1982-05-19 1986-03-04 At&T Bell Laboratories Shared resource locking apparatus
US4509187A (en) * 1982-06-14 1985-04-02 At&T Bell Laboratories Time warp signal recognition processor using recirculating and/or reduced array of processor cells
US4489381A (en) * 1982-08-06 1984-12-18 International Business Machines Corporation Hierarchical memories having two ports at each subordinate memory level
US4553203A (en) * 1982-09-28 1985-11-12 Trw Inc. Easily schedulable horizontal computer
US4724517A (en) * 1982-11-26 1988-02-09 Inmos Limited Microcomputer with prefixing functions
US4600992A (en) * 1982-12-14 1986-07-15 Honeywell Information Systems Inc. Priority resolver with lowest priority level having shortest logic path
US4644496A (en) * 1983-01-11 1987-02-17 Iowa State University Research Foundation, Inc. Apparatus, methods, and systems for computer information transfer
US4580215A (en) * 1983-03-08 1986-04-01 Itt Corporation Associative array with five arithmetic paths
US4636942A (en) * 1983-04-25 1987-01-13 Cray Research, Inc. Computer vector multiprocessing control
US4591980A (en) * 1984-02-16 1986-05-27 Xerox Corporation Adaptive self-repairing processor array

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011105408A1 (ja) * 2010-02-24 2011-09-01 日本電気株式会社 Simdプロセッサ
JP5708634B2 (ja) * 2010-02-24 2015-04-30 日本電気株式会社 Simdプロセッサ

Also Published As

Publication number Publication date
EP0237571A1 (en) 1987-09-23
EP0237571A4 (en) 1989-02-22
WO1987001841A1 (en) 1987-03-26
KR880011681A (ko) 1988-10-29
DE3685107D1 (de) 1992-06-04
US4922418A (en) 1990-05-01
KR970001899B1 (ko) 1997-02-18
EP0237571B1 (en) 1992-04-29
US4720780A (en) 1988-01-19

Similar Documents

Publication Publication Date Title
JPS63501530A (ja) メモリをリンクしたウエ−ブフロント・アレイ・プロセッサ
US5226171A (en) Parallel vector processing system for individual and broadcast distribution of operands and control information
US5081573A (en) Parallel processing system
Kung et al. Systolic arrays (for VLSI)
US4493048A (en) Systolic array apparatuses for matrix computations
Thompson Fourier transforms in VLSI
US5659780A (en) Pipelined SIMD-systolic array processor and methods thereof
JP2513960B2 (ja) マルチプロセッサ・システムとその動作方法
EP0268435B1 (en) Multinode reconfigurable pipeline computer
US5790879A (en) Pipelined-systolic single-instruction stream multiple-data stream (SIMD) array processing with broadcasting control, and method of operating same
JPH03138759A (ja) 信号プロセツサ
US7581080B2 (en) Method for manipulating data in a group of processing elements according to locally maintained counts
JPS63167967A (ja) ディジタル信号処理集積回路
Kratz et al. A microprogrammed approach to signal processing
US7263543B2 (en) Method for manipulating data in a group of processing elements to transpose the data using a memory stack
US7596678B2 (en) Method of shifting data along diagonals in a group of processing elements to transpose the data
US8856493B2 (en) System of rotating data in a plurality of processing elements
JPS63147255A (ja) 複数の直列接続段を有する計算用プロセッサおよびこのプロセッサを応用したコンピュータならびに計算方法
CA1273711A (en) Memory-linked wavefront array processor
Sarbazi-Azad et al. A parallel algorithm for Lagrange interpolation on the star graph
Evans et al. The solution of linear systems by the QIF algorithm on a wavefront array processor
Zehendner Simulating systolic arrays on maspar machines
US7930518B2 (en) Method for manipulating data in a group of processing elements to perform a reflection of the data
KR20240112371A (ko) 범용 시스톨릭 어레이
Deguchi et al. Integrated parallel image processings on a pipelined MIMD multi-processor system PSM