JPS63503099A - 有効な信号とデ−タを処理するためのデ−タフロ−マルチプロセッサア−キテクチュア - Google Patents

有効な信号とデ−タを処理するためのデ−タフロ−マルチプロセッサア−キテクチュア

Info

Publication number
JPS63503099A
JPS63503099A JP62501932A JP50193287A JPS63503099A JP S63503099 A JPS63503099 A JP S63503099A JP 62501932 A JP62501932 A JP 62501932A JP 50193287 A JP50193287 A JP 50193287A JP S63503099 A JPS63503099 A JP S63503099A
Authority
JP
Japan
Prior art keywords
processor
bus
micromachine
queue
data flow
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
JP62501932A
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 JPS63503099A publication Critical patent/JPS63503099A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

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

Description

【発明の詳細な説明】 発明の名称 有効な信号とデータを処理するためのデータフローマルチプロセッサアーキテク チュア 発明の背景 1、発明の分野 本発明はプログラムされた大規模な算術的および論理的問題を高速にデジタル計 算するための方法と装置に関し、特に、8度に並列にコンピュータインストラク ションと計算とを実行することができるデータフローの原理を使用する方法と装 置に関する。
2、技術の説明 将来の応用分野における計算の要求に見合うために、毎秒数億回の演算を実行す ることができるアーキテクチュアを開発することが必要とされている。十分に固 有の並列性を有する種々の応用分野に対してこの目的を達成することをかできる アーキテクチュアとして、マルチプロセッサアーキテクチュアが広く受入れられ ている。
並列プロセッサが使用されるためには、そのプログラムが同時実行可能な処理に 分割され、それらが複数のプロセッサに分配され、そして並列処理の実行と処理 量通信のために非同期コントロールがなされるということが要求されるのでコン ピュータのプログラミングがさらに複雑となる。アプリケーションプログラマは 、彼の作成したプログラムをマルチプロセッサに分割し分配し、またプロセッサ 間あるいは共有メモリ間の明白に対応付けられた通信をしなければならない。
現在のシングルプロセッサシステムを使用する時でさえ、アプリケーションプロ グラムは非常に高価であり、それはほとんどシステムのコストを支配する。プロ グラマが、前述の付加的な仕事をしなければならないことを除いても、ソフトウ ェアの開発とメンテナンスのコストは既に非常に高いものである。ソフトウェア の開発とメンテナンスのコストを低くするためには高性能マルチプロセッサシス テムは、プログラムに要求される余分な仕事を実行し、また高級言語でプログラ ム可能でなければならない。
高性能を得るために使用されることができる並列処理アーキテクチュアにはいく つかのタイプが存在する。シストリック配列、フォンノイマンプロセッサのしっ かり結合されたネットワークおよびデータフローアーキテクチュアは、そのよう な3つのタイプである。
シストリック配列では、それらの間が内部接続された同一の処理要素(P E) が規則正しく配列された構成を有する。
その高性能は並列に接続されたPEと、高度にバイブライン化されたアルゴリズ ムとを使用することによって達成される。
シストリック配列は、それらが使用されることができるアプリケーションに制限 がある。内部通信が隣のPEに制限されている多くのPEを使用するような高度 にバイブライン化されたアルゴリズム(例えば配列演算)に対して最も有効であ る。さらに、シストリック配列はプログラム製作性が制限されている。それらは 非常に高速であるが柔軟性がないという点で、“ハードワイアード゛設計である 。他の欠点は、処理対象がローカルデータに制限されているということである。
計算中に外部メモリをアクセスする必要があるようなアルゴリズムは、シストリ ック配列を実行するためには適当ではない。
フォンノイマンプロセッサのしっかりと結合されたネットワークでは、PEは通 信ネットワークを使用して内部接続されており、各PEはローカルメモリを有す るマイクロプロセッサである。さらに、いくつかのアーキテクチュアでは、プロ セッサ間通信のためにPE間にグローバルメモリが提供される。これらのシステ ムは、各並列タスクがフォノノイマンプロセッサ上で効率的に実行されるコード (例えばシークケンシャル コード)からなるアプリケーションに対して最もよ く適する。それらはタスク内に存在する並列度の低い(マイクロ)タスクの全て をカバーするのには適していない。並列度の低いプログラムで使用されるときは 、それらのALU(算術論理ユニット)のアイドル時間が大きくなる。
データフローグラフの実行モデルに基づくデータフローマルチプロセッサアーキ テクチュアは並列処理の実行と処理要素間通信とを非同期制御する。並列処理を 明らかに指向するユザーを除いて、機能的な高級言語と結合される場合には、単 −PEとしてプログラムされることができる。それらはフォンノイマンマルチブ ロセッサアーキテクチュアよりもむしろ並列度の低いタスクに適している。
(プログラムカウンタを用いる)伝統的なコントロールフロー計算機モデルと反 対に、データフローの方法では、一群の演算のデータ依存性により演算が実行さ れるべき順番が決定させられる。データフローグラフでは演算のためのノード( アクタ)とアクタ(a c t o r)のデータ依存性のために導かれたアー クを使用してこの情報が表される。アクタからの出力結果はアークに沿って移動 するトーク′ンと呼ばれるデータ項によって他のアクタに通される。アクタの実 行すなわち点火は、アクタの入カドークンの全てがその入力アーク上に存在する 時生じる。アクタが点火すなわち実行されるとき、それはその入力アークにおけ るトークンを使用し、その意図された演算を実行し、そしてその出力アーク上に 結果トークンを置く。アクタがアーキテクチュア内で実行される時、それらはテ ンプレートと呼ばれる。各テンプレートは、オペコード、オペランドおよび宛先 ポインタに対するスロットからなり、それらは演算の結果が送られるべきアクタ を示す。
アルゴリズムにおけるデータフローグラフの表現は、アルゴリズムにおけるデー タ依存グラフである。そのグラフ内のノードは演算子(アクタ)を表し、そのノ ードを接続する導かれたアークは、オペランド(アクタ)間をオペランド(トー クン)が移動するデータd路を表す。アクタへの入カドークンの全てが使用でき る時、そのアクタは、その人カドークンを消費し、それらに関する演算を実行し 、そしていくつかの出カドークンを作ることによって、点火する。データフロー のほとんどの定義においてアークとアクタは制限され、その結果アークは一度に 多くとも1つの入カドークンを持つことができる。これは、その出力アークの全 てが空でなければアクタが点火することがないということを意味する。より一般 的な定義により、各アークはトークンがおかれることができる無限のキューであ ることができる。
全てのデータフローアーキテクチュアは、データフローグラフ内でアクタを実行 する複数の処理要素からなる。別々のPE内で、並列に点火することができるア クタを実行することによって、データフローアーキテクチュアはデータフローグ ラフでは固有の並列性という長所を有する。データフローのコントロールは、そ れが問題の完全な並列性を表すことができ、プロセッサ間通信と同期に関するプ ログラマの概念を明らかに減らすことができるので、特に魅力的である。
米国特許3,962,706では、デニス(Dennis)らが格納されたプロ グラムを高度に並列処理するためのデータ処理装置を開示した。本発明とは異な り開示された装置は中央コントローラとグローバルメモリを使用する。従ってそ のようなアーキテクチュアによって生じる限定から離れることは出来ない。
ミスナス(Misunas)らは米国特許4,145.733において米国特許 3,962.706で述べられたデータ処理装置よりもさらに改善されたものを 開示した。しかしながら開示された装置は本発明とは異なり、中央コントローラ とグローバルメ・モリをまだ有している。
米国特許4,153.932ではデニス(Dennis)らは、先の2つの特許 に開示された装置とは異なる装置を開示した。
それでは拡張性を得るために明らかに新しいネットワークが付加されたことが異 なる。しかしながら本発明に関連するものではない。
米国特許4.41L38ジではドイル(Doyle)らはプロセッサとマイクロ プロセッサシステムのための大規模集積回路(LSI)データフローコンボ−゛ ネントを開示した。それは本発明の処理要素とはなんら関連するものではなく本 発明のデータフローアーキテクチュアに関する何ものも教えるものではない。
上に参照された特許に開示された発明のどれもが、イメージと信号の処理のため のアルゴリズムと高いスループットを得るためのアルゴリズムから低並列度を最 大限活用することがで与る高級言語でプログラム可能な関連するタスクとを実行 するように設計されたプロセッサを提供するものではない。
本発明は他のデータフローマシンとは異なり、少数の異なるチップを使用する改 善されたLS1回路を効率的に実現しようとするものである。それは容易に拡張 されることができ、高性能のために素早く転送されることができる短い通信経路 を使用する。高級言語で容易にプログラムを作製することができることと合わせ て、データと信号処理に際し、大きなスルーブツトを有するリアルタイムのアプ リケーションのための本発明の全能力は、以前のマシンには欠けているものであ る。
本発明は、特に信号処理の問題の性能に対する潜在力と同じプロセッサ上でトラ ッキング、コントロール、およびディスプレイ処理を含む関連するデータ処理機 能とを提供することを目的とする。インストラクションレベルのデータフロー( マイクロデータフロー)の方法と、タスクの処理要素へのコンパイル時間(静的 )の割当てが効率的なランタイム性能を得るために使用される。
発明の概要 本発明は高性能の信号とデータを処理のためのデータフローアーキテクチュアと ソフトウェア環境に関する。プログラミング環境は、機能的な高級言語、すなわ ちヒユーズデータフロー言語(HDFL)でアプリケーションをコード化するこ とができ、それは自動的に分割され、多数の処理要素に分配されるデータフロー グラフの形にコンパイルされる。小規模の問題あるいはシュミレーションの研究 のためには、データフローグラフ言語のアッセンブラとローカルアロケータはデ ータフローグラフの形に直接プログラミングすることができる。
データフローアーキテクチュアは3次元バスのパケット経路選択ネットワークに よって接続された多くの処理要素からなる。処理要素は超大規模集積回路(VL SI)が、非常に大きなスルーブツトを有するリアルタイム処理を提供するよう に設計されている。データフロープロセッサのモジュラ−の性質によりスルーブ ツトの範囲と信頼性の要求に見合うようにより多くの処理要素が加えられること ができる。シュミレーションの結果は高性能動作を示した。
したがって本発明の1つの目的は、大きなスループットを有して信号とデータを 処理するアプリケーションのために高級言語でプログラムされることができる高 性能フォールトトレランスプロセッサであるデータフローマルチプロセッサを提 供することである。
本発明の他の目的は、インストラクション駆動よりもむしろデータ駆動であるデ ータフローの原理に基づいて、複雑で大規模な問題を解決するにあたって速い高 度な並列計算を行うことができること、である。
複数の処理要素のために、存在する処理要素と同じ数の成分に分割される通信ネ ットワークを提供することが本発明の他の目的であり、その結果、全ての処理要 素にわたって通信ネットワークは等しく分配され、n個の処理要素が存在するな らば、各処理要素はそれを支持するように1 / nの内部接続ネットワークを 有する。
さらに本発明の他の目的は、プログラムの静的アロケーション(すなわちコンパ イル時間)を処理要素に提供することである。
さらにまた本発明の他の目的は、たった2つの異なるVLSIチップを使用する 装置が非常に大きなスループットを有するリアルタイム処理を提供することがで きるように設計された処理要素を使用することである。
データフロープロセッサのモジュラの性質によりスループットの範囲と信頼性の 要求に見合うようにより多くの処理要素が加えられることができることが本発明 の目的の1つてあ本発明の他の目的と本発明のより完全な理解は、以下の実施例 の説明を読み、添附図面を参照することによって達成される。
図面の簡単な説明1 第1図は、本発明のブロックダイヤグラムであり、ブロワ 。
クダイヤグラムの右側にその1部のいくつかについての情報を示す。
第2図は3次元バスのパケット経路選択ネットワークにおいて処理要素がどのよ うに一緒に接続されているかを示す。
第3図は、データパケットがパケットの種類と、PEとテンプレートのアドレス と、および1以上のデータワードからどのようにしてなるかを示す。
第4図は、ブロックダイヤグラムの形で処理要素の構成を示す。
第5図は、テンプレートと配列が物理的メモリにどのように写像されるかを示す 。
第6図は、ハードウェアで直接実行されるいくつかの基本的アクタの例を示す。
第7図は、式’if yl <−y2 then y2*2+1 else y l+xOendif”に対応し、コンパイラによって発生されたデータフローグ ラフの例である。
第8図は、(毎秒100万のインストラクションを単位として)プログラム レ ーダ3naに対するスルーブツト対処理要素の数のシュミレーションの結果を示 すグラフである。
“A”と記された曲線は、ランダムアロケーションアルゴリズムに対するもので あり、“B′と記された曲線は遷移的閉包を使用するアロケーションアルゴリズ ムに対するものであり、“C”と記された曲線は非遷移的閉包を使用するアロケ ーションアルゴリズムに対するものである。
第9図は、プログラム レーダbに対するシュミレーションの結果のプロットで ある。座標はMI PS単位でスループットを表し、横軸は処理要素の数を表す 。低いほうのカーブは、ランダムアロケーションアルゴリズムに対するものであ り、上の方の曲線は、非遷移的閉包のアロケーションアルゴリズムに対するもの である。
第10図は、ALUがビジーである時間の百分率対プログラム レーダ3naに 対する処理要素の数のシュミレーションの結果を示すグラフである。DおよびG と記された実線の曲線は、遷移的閉包のアロケーションアルゴリズムに対する平 均ALUビジ一時間と最大ALUビジ一時間をそれぞれ表す。
EおよびFと記された曲線は非遷移的閉包アロケーションアルゴリズムに対する 平均ALUビジ一時間と最大ALUビジ一時間である。
第11図は非遷移的閉包アロケーションアルゴリズムを使用して、プログラム  レーダbのシュミレーションにおいて、ALUがビジーである時間の百分率対処 理要素の数を示す。
下の曲線は平均ALUビジ一時間に対してであり、上の方の曲線は最大ALUビ ジ一時間に対してである。
第12図は、達成された最大スループットの百分率対平均ALUビジ一時間の百 分率を示すグラフである。黒丸は非遷移的閉包アロケーションアルゴリズムを使 用するプログラムレーダbに対するシュミレーションの結果から得られたもので ある。バラ印と白丸はそれぞれ遷移的閉包と非遷移的閉包のアロケーションアル ゴリズムを使用するプログラム レーダ3na対するものである。
第13図は、(PE間に対するPE内)ローカルであるパケット通信の百分率対 プログラム レーダ3naに対する処理要素の数のプロットである。下の方の曲 線は遷移的閉包アロケーションアルゴリズムに対するものであり、上のほうの曲 線は非遷移的閉包アロケーションアルゴリズムに対するものである。
第14図は、(PE間に対するPE内)ローカルであるパケット通信の百分率対 非遷移的閉包アロケーションアルゴリズムを使用するプログラム レーダbに対 する処理要素の数のプロットである。
第15図は、結果キューの(パケット内の)長さ対処理要素の数のプログラム  レーダbの非遷移的閉包アロケーションアルゴリズムに対するグラフである。下 の方の曲線は平均キューレングスであり、上の方の曲線は最大キューレングスで ある。
第16図は、平均通信パケットレーテンシ−(クロックサイクルにおいて)対プ ログラム レーダbの処理要素の数の非遷移的閉包アロケーションアルゴリズム に対するプロットである。
実施例の説明 第1図は本発明による信号とデータを高性能処理するためのデータフローアーキ テクチュアと、ソフトウェア環境1oのブロックダイアグラムである。プログラ ミング環境は、機能的な高級官話のアプリケーションコード化を許し、それはプ ログラムファイル20となり、そのファイルはコンパイラ−30に入力され、コ ンパイラ−はそれをデーター゛フローグラフの形40に変換し、グローバルアロ ケータ5oはそのグラフを自動的に分割し、複数の処理要素80に分配する。小 さい問題の場合には、プログラムはデータフローグラフの中でなされることがで き、入力されるデータフローグラフファイル13上で直接動作するアッセンブラ 15によって、アッセンブルされることができる。そのデータフローグラフファ イル13の出力は分割と分配のためにローカルアロケータ17に送られる。前者 の場合には、データフロープロセッサディスクリブジョンファイル45は、グロ ーバルアロケータ50に読込まれ、後者の場合には、データフロープロセッサデ ィスクリプジョンファイル14はアッセンブラ15に読込まれる。データフロー プロセッサ70は3次元バスパケット経路選択ネットワーク内に接続された多数 の処理要素80からなる。データはプロセッサ8oに接続された入出力デバイス 9oによってプロセッサ8oに入力され出力される。
3次元バスネットワーク 第2図に示されるようにデータフロープロセッサ7oは、PE間ダグローバル通 信ネットワークよって接続された1個から512個までの同一の処理要素を具備 する。このネットワークは3次元バスネットワークであり、そのネットワーク内 においてハードウェアは、任意のPEが他の任意のPEにデータを転送すること が出来るフォールトトレランスストアアンドフォアードパケットスイッチングブ ロトコールを備えている。各処理要素は、通信ネットワーク内にパケットを格納 するためのキューを有し、および処理要素の正常動作状態を監視し、パケットの 流れる経路を決定するための適当な制御を行なう。
3次元バス内部接続ネットワークにおいては、全ての処理要素が直接に接続され ているわけではなく、そのためストアアンドフォワードパケット経路選択技術が 使用される。このアルゴリズムは、通信チップ81内で実行される。そのチップ る。通信チップ81は、それが4つの入力ポートからパケットを受取り、それら を適切な出力ポートに回すという点でクロスバ−のように働く。さらにそれはプ ロセッサ入カキニー112と、プロセッサ出力キュー114を含む多数のファー ストイン・ファーストアウトキューでバッファーする。
3次元バスネットワークは、単一トークンからなる非常に短いパケットを送信す るのに最も適する。第3図に示されるように、各パケットはパケットタイプ、ア ドレス、および−片のデータから構成される。異なるタイプのパケットは、通常 のトークンパケット、初期化パケット、およびマシンの再構成コントロールのた めの特別なコントロールパケットを含む。各パケットのアドレスは処理要素アド レスと処理要素内の一つの特定のアクタインストランジョンを示すテンプレート アドレスからなる。パケットがコントロールパケットであるならば、データは高 級データフロー言語の許されるデータの種類あるいはコントロール情報のいずれ であってもよい。
8X8X8まで、すなわち512個までのデータ要素が通信ネットワーク内に物 理的に収納されることができる。信号処理の際の多くの問題は、これらのアルゴ リズムを分割することの容易さのため、バス容量を過負荷にすることなく、この 多くの処理要素を潜在的に使用することである。しかしながら一般のデータ処理 では、バスのバンド幅はバス当り4以上の処理要素を飽和させ始める。多くの処 理要素が加えられることができ、性能は増加されるが、処理要素当りの効率は低 下する。
PE間のパケット転送では単一経路選択法が使用される。
言換えれば、あるソースPEから、あるシンクPEにパケットが送信されるごと に同じ経路が使用される。これにより、あるソースPHにおけるアクタから、あ るシンクPEにおけるアクタに送信されるパケットが、それらが送信された順番 と同じ順番で到着することが保障され、それは、例えばグラフがバイブライン処 理される時のように、一度以上アクタが実行される時必要である。
それが受付けるべきパケットを捜すために、各PEは連続的にその平面、行およ び列のバスを監視する。PEは直接アドレス指定されるパケットと、PEを介し て他のPHに転送される必要があるパケットを受付ける。例えばパケットが平面 バス上に置かれるならば、そのバス上の全てのPEがパケットのアドレスを調べ 、その平面アドレスがパケットの平面アドレスと一致するPEがそのパケットを 受付ける。
フォールトトレランス 通信ネットワークは、信頼性があるように設計され、高速にスイッチインし、ス ペアの処理要素を使用することができるように、歪曲されたメツセージは自動的 にリトライされ、バス属性は分配され、代替バスパケットルーチン及び故障処理 要素変換テーブルを有する。
静的フォールトトレランスは完全にサポートされる。PEの故障が判定されたと き、スペアのPEには故障したPEからテンプレートがロードされることができ 、動作は続けられる。しかしながらこれにより2つの問題が発生する。(1)ス ペアのPEは、それが置換えられるべきPEとは異なるアドレスを有することと 、(2)故障したPEを介して転送されるべきメツセージは、代わりにスペアの PEを経由しなければならないということである。
第1の問題は2つ方法によって解決されることができる。
長期間(数日から数カ月)の場合には計画的なメンテナンス期間の間にアロケー タソフトウェアを使用して、アプリケイジョンプログラムはリアロケートされる ことができる。瞬時回復(数秒)の場合に対しては、エラーメモリ 110と呼 ばれる少数の故障PEアドレス変換レジスタが各PE内に用意されている。PE が故障したとき、そのアドレスはエラーメモリ 110に入力され、それはその 置換えられるべきPHのアドレスによって置換えられる。発生される各パケット はエラーメモリで調べられ、一致していれば故障したPEのアドレスは置換され るべきアドレスに置換えられる。
故障したPEを介するパケットの経路選択は、各PEが直接接続された故障PE が動作するトラックを保つことによって達成される。PEが故障した場合には、 送′信側PEは他のバスにパケットを送信するように経路を選択する。
動的フォールトトレランスは、異なるPHに並列にクリティカルコード部の2以 上のコピーを走らせ、その結果を選ぶことにより提供されることができる。他の 種類の並列プロセッサで出会う困難さと異なり、データフローの概念はその構成 により同期の問題を避け、そしてそれがハードウェアでサポートされるので、内 部処理通信のオバーヘッドは最少とされる。動的フォールトトレランスへのこの ソフトウェアによる方法は、この特徴のために必要とされる余分なハードウェア が最少とされる。
パケット 転送されるパケットは、16ビツトあるいは24ビツトのいずれかのトークン値 を有する(第3図を参照)。データの経路は17ビツト幅すなわち16データピ ツトと、1タグピツトである。各パケットは6種類のビットとPEアドレスとア クタアドレスと、および1つのアクタから他のアクタに送信されるべきデータを 含む。PEアドレスは、宛先PEを示し、アクタアドレスはデータが送信される べきPE内のアクタを示す。
PEアドレスは、9ビツトすなわち各平面、行および列アドレスに対して3ビツ トであり、8X8X8個のPHの立方構成となっているような512までの別々 のPEを指定するために使用されることができる。可変長パケットはネットワー クプロトコールによってサポートされ、パケット送信の最後のワードは、エンド オブパケットビットによって示される。
処理要素 各処理要素80は第4図に示されるように通信チップ81と処理チップ120と メモリとを有する。通信ネットワークは、フォールトトレランスを改善するため に全てのPEに対して分配される。通信ネットワークの単−PEと関連する部分 が、第4図に外部の平面、行、列のバス82.84.86、によって表されてい る。外部バス82.84.8Bはパケット受信信号が2サイクル以内に受信され なければ、バスあるいはPEが故障であることを示す2サイクルタイムアウトと パリティとストアアンドフォワードプロトコールを使用する。パリティとタイム アウトの特徴は、エラー検出のために使用される。ストアアンドフォワードプロ トコールは、受信側通信チップにおける入力キューが満杯であるかもしれないの で必要であり、その場合には送信側通信チップは、後でパケットを再送信するこ とが必要である。外部バス82.84.86のアービトレイジョンコントロール は高信頼性のために分散化される。入力/出力キューの対80と100、および 102と104、および106と108は外部の平面、行、および列のバス82 .84.86を介して入力され、あるいは出力されるデータをバッファーするた めに使用される。2つの内部バス89と107は、処理チップの平面、行、およ び列の入力キュー88.102.10Bからプロセッサの平面、行、および列の 出力キュー100.104.108にパケットを送信するために使用される。全 てのバスは、ラウンドロビンアービトレイジョンを使用する。
通信チップ81は、その関連する処理チップ120内に格納されているアクタに 宛てたトークンを受取り、それらのトークンをチップ81に通す。通信チップ1 20内のエラーメモリ 110は、論理PEアドレスを物理PEアドレスに変換 するためのマツピングを含む。通常その2つは同じであるが、PEが故障したな らばその論理アドレスはスペアのPHのうち1つの物理アドレスにマツピングさ れる。静的フォールトトレランスが使用される。PEが故障したときその故障が 一時的なものか永久的なものかどうかを判定するために、自己診断ルーチンが使 用される。その故障が永久的なものであるならば、故障したPEにアロケートさ れるコードは、故障したPEのアドレスを有するスペアのPHに再びロードされ なければならない。その後プログラムは最後の中断点から再スタートされなけれ ばならない。通信チップは高度にバイブライン化され、その結果パケットのワー ドはほとんど1サイクル毎に送信されることができる。毎秒約500から600 万パケツトが通信チップによって送信されることができる。
処理要素に対するこの構成は、VLS I設計を簡素化するように選択される。
その設計に際しては、ただ2つのVLS Iチップが存在するだけであり、PE を、通信チップ81と処理チップ120にを分割することによりチップあたりの 入力/出力ピンの数は最少とされる。両方のチップは、20MHzで動作するカ スタム仕様のVH3ICの1.25ミクロンCMOS/SOSチップである。
各個別のPEは完全なコンピュータであり、プログラムとデータを格納するため に、それ自身ローカルメモリを有する。
PHにアロケートされたアクタを格納する2つのランダムアクセスメモリ(RA M)146と156は各処理チップと関連する。これら2つのメモリ、すなわち 宛先メモリ 146とテンプレートメモリ 156は、処理チップ120に取付 けられている。
おのおのは複数のRAMチップを有し、そのアクセス時間は各メモリアクセスの ために必要とされる2サイクルで80ナノ秒以下である。単一の双方向性バス1 58が通信チップ81と、処理チップ120の間を繋ぐために使用される。
処理チップはマイクロマシンと呼ばれるように選択された4つの特定目的用マイ クロプロセッサを有する。
処理チップ120は通信チップ81からトークンを受取り、各トークンがアクタ を駆動することが出来るかどうかを判定する。もしそうでなければ、そのトーク ンは一致するトークン、あるいはトークン群が到達するまで格納される。トーク ンがアクタをイネーブルにするならば、アクタはメモリからフェッチされ、処理 チップ120内のALUマイクロマシン144によって実行される。結果として の値は、1以上のトークンに形成され、それらはそれらを予期している他のアク タに送信される。
各処理チップに取付けられたメモリは、テンプレートとして表わせられるアクタ を格納するために使用される。テンプレートは、オペコードと、結果が送られる べきアドレスの宛先リストと、及び第1のトークンと一致するトークンが受信さ れるまで到達した第1のトークンを格納するためのの空間のためのスロットとか らなる。
またメモリは配列を格納するために使用さ°れ、その配列は単一の処理要素のメ モリに送られ、あるいは多くの処理要素に分配されることができる。分配された 配列に関して1つの処理要素内で実行するアクタが、他の処理要素のメモリ内に 格納されている配列値をアクセスすることを必要とすることが可能である。特定 のアクタがこれらの非ローカルのアクセスのためにアーキテクチュア内に用意さ れている。配列の指数が与えられると、その値を含む処理要素のアドレスが、そ の配列が分配される方法に基づいて計算され、その値に対する要求が通信ネット ワークを介して送られる。その後他の処理要素は、通常のトークンとして要求さ れた値を送り返すことによって応答する。非ローカル配列の行進は同様に処理さ れる。
処理チップは、以下の3つの動作がオーバーラツプされたパイプライン化された プロセッサである。すなわち(1)インストランジョン/オペランドフェッチと でデータフロー駆点火ルールのチェック、(2)インストラクションの実行、お よび(3)パケットを形成するために、結果と宛先アドレスとの一致。異なるイ ンストラクションに対するこれらのユニットの各々のサービス時間におけるいく つかの変化があり、その結果、キューは第4図に示されるようなユニット間に提 供される。
インストラクションのフェッチとデータフローの点火ルールのチェックは、2つ の並列なマイクロマシンユニットと、テンプレートメモリコントローラ130と 、及び宛先メモリコントローラ22によって実行される。テンプレートは3つの 独立なメモリ、すなわち点火検出メモリ 132と、テンプレートメモリ 15 Bと、および宛先メモリ 146とに渡って広げられている。
これらの各メモリの最初の4にのロケーションは、アクタのアドレスを有する。
点火検出メモリ 132は4にのロケーションを有するにすぎない。テンプレー トメモリ 156と、宛先メモリ 146は、各アクタ、配列データ、及びキュ ーのオーバーフローデータと関連する可変長データを格納するために使用される 付加的メモリを有する。テンプレートメモリ 15[3は3つのメモリに分けら れ、その結果、テンプレートメモリコントローラ130と宛先メモリコントロー ラ122は並列に動作することができ、このようにして、1つのメモリと1つの コントローラが使用されるよりも素早く点火するアクタが準備されることができ る。
パケットが処理チップに到達した時、パケットによりアドレス指定されるテンプ レートのスティタスは点火検出メモリ132からアクセスされ、テンプレートが 点火する準備ができているかどうかという判定がなされる。スティタスビットは 、テンプレートスティタスの更新と速いアクセスと行うことができるように、オ ンチップ点火検出メモリ 132に格納される。
テンプレートが点火する準備ができていなければ到達したトークン(オペランド )はテンプレートメモリ 156に格納される。
テンプレートが点火する準備ができていれば、テンプレートメモリコントローラ 130は、テンプレートメモリ 156内に格納されているテンプレートのオペ コードとオペランドをフェッチし、それらを入力オペランドと結合し、それによ りアクタを点火することが可能とされ、そしてそれらを点火キュー138に送る 、キュー138から算術論理ユニット(A L U)マイクロマシン144はそ れらをフェッチする。同時に、宛先メモリコントローラ122は、テンプレート の結果が送信されるべき宛先アドレスをフェッチし始め、これらのアドレスを宛 先キュー134に格納する。各テンプレート(アクタ)の各結果が複数の宛先に 送信されることを必要としているので、宛先メモリ 146は各アクタの各結果 に対する宛先のリストを収納するためにオバーフロー格納領域を有する。第5図 はテンブレ、−トと配列が物理的メモリにどのように写像されるかを示す。
ALUマイクロマシン144内で実行されたアクタの実行の結果は結果キュー1 42に置かれる。結果キュー142内に格納される結果と宛先キュー134に格 納された宛先は、宛先タガ−マイクロマシン13Bによってパケット内に組合わ され(フィードバックキュー138を介して)テンプレートメモリコントローラ 130に、あるいは(通信キュー124を介して)他のPEに送り戻される。
要約すると処理要素の4つの主な機能は通信ネットワーク処理と、アクタ点火検 出とアクタの実行と及び結果としてのトークンの形成である。これらの4つの機 能の全てがパイプラインの様に同時に実行される。
スタンドアロンな処理要素は、使用されるインストラクションの組合わせに基づ いて毎秒2から4のマイクロオペレーション(MOPS)を実行することができ る。この場合MOPは基本的アクタインストラクションとして定義される。
1マイクロインストラクシヨンで完了する簡単な16ビツト加算から10サイク ルを要する配列指定インストラクションまで複雑さが変化し、あるいは約25サ イクルかかる16ビツト割算まで複雑さが変化する。
2つの別々のメモリインターフェイス148と150および152と154によ り、高性能を維持するために必要な大きなメモリプロセッサバンド幅を持つこと ができる。チップの種類と電力消費を最少にするという設計の目的によりALU は単純な構成とされた。ハードウェアは複合化されるものは何もない。複合化は 、モディファイされたブースアルゴリズム法によって実行される。チップの各々 のピンは150よりも少なく、各チップは約15にゲートからなり20MHzの クロック速度で動作する。
ソフトウェア環境 本発明による実施例は高級機能言語であるヒユーズデータフロー言語(HDFL )でプログラミングされる。HDFLプログラム20のレコードは、コンパイラ 30に読込まれコンパイラ30はそれをパラレルデータフローグラフの形式40 に翻訳し、その形式40はプロセッサ構成45の記述とともに複数の処理要素8 0に分配するために、グローバルアロケータ50に供給される。そのアロケータ は、PE間通信を最少にしている間に並列に進行することができる動作の数を最 大にするためにハードウェアに、プログラムグラフをコンパイル時間割当てする ように静的グラフ解析を使用する。
本発明の基本的な目的の1つは、ソフトウェアコストを減少させる°ために高級 言語プログラミング能力を供給することにあるので、多くの問題内に固をの並列 性が容易に表されることができる高級言語が見付けられなければならなかった。
フォートランやパスカルのような現在のシーケンシャルな言語は、もともと並列 性を欠くので除かれた。アダ及び他のマルチタスク言語は、マルチタスクを創造 し同期させることに関する明白なプログラマを必要とするので除かれた。そのよ うなことは、複雑さを増しソフトウェア開発にコストがかかる。特定の処理では これらの言語はフォートランクラスの言語と同様に並列性が欠如している。VA L又はIdのような応用性のあるデータフロー言語が並列性の有効な抽出とマル チプロセッサハードウェアへの有効な写像を許すために必要とされるということ がわかったマグロ−(J、 R,MeGrav)による“VAL言語、記述と解 析′、プログラミング言語とシステムのACMのトランザクション1982年1 月のNo、l 巻6ページ44−82 あるいはアービンド(Arvind)ら による“プレリミナリー1dレポート“1978年5月アイルビン、カルフォル ニア大学TR114Aコンピユータ科学講座)これらによりヒユーズデータフロ ー言語の開発に導かれ、それはデータフローコンピュータに対する汎用高級プロ グラミング言語である。それは応用性のある言語であるが、親しまれている代数 的記述の使用とプログラミング言語の慣例を含む。
ヒユーズデータフロー言語はバリューオリエンテッドであり、単一割当て変数だ けを許す。その特徴として、強く典型的であり、そのデータ構成はレコードと配 列を含み、条件(I F THEN ELSE)と繰返しくFOR)と並列繰返 しくFORALL)およびストリームを特徴とする。
HDFLプログラムはプログラム定義とゼロ以上の関数定義からなる。グローバ ル変数、あるいはサイドイフエクトは存在しない。値はパラメータパッシングを 介して通される。
HDFLの簡単な例がすぐ下に示される。
タイプ xy−レコード(X:整数;y:整数);定数スケールファクター2; % これはコメント関数 f oo (xyva r : xy ; xO,y l。
y2:整数 リターン xy、整数) 定数 オフセット−1; 結果: xy (xyva r : x+xo、xyva r : y+yl)。
if yl>y2 %どちらかの分岐は単一の値を作る。
then y2*スケールファクタ+オフセットelse yl+xO すぐ上に示された例は4つのパラメータ(1つのレコードと3つの整数)をとる 関数“foo”からなり、1つのレコードと1つの整数を戻す。“結果”は関数 の本体を始めるキーワードであり、“endfun“はそれを終わらせる。関数 の本体はリターン値当り1つの式であり、カンマによって区切られる任意の複雑 な式のリストからなる。この例では関数本体中の第1の式は、値をレコードの結 果のフィールドに割当てる“レコードタイプコンストラクタ”である。その下の 条件式は、整数値に評価する。定数とタイプは、関数のヘッダの前にあるいは本 体の前で宣言される。関数は、ネスティングされることができる。
HDFL コンパイラ コンパイラは基本的なデータフローアクタからなるデータフローグラフの中間的 なかたちにHDFLを翻訳する。動作は3つの経路で進行する。1)シンタック スのチェックとバースツリー構造。2)セマンティックのチェックとアーギュメ ントおよび、3)コードの発生。各相はテーブル駆動である。以下のテーブル駆 動によるコード発生は不必要なコードを除去し、一定なサブグラフを評価し、及 びいくらかの最適化を実行するための最終的な後処理段階である。コンパイラに よって発生されたグラフ中間形式は、アロケータによって使用されるシンタック ス情報と他の情報を有する。
基本的なアクタは、ハードウェアによって直接サポートされるものである。アク タのうちのいくつかは16ビツト形式であり、他のものは32ビツト形式である 。多くはADDのような単純な算術的プール関数アクタであり、他のものはEN ABLEおよび5WITCHあるいはLE5のように混成のような制御アクタコ ントロルアフタであり、いくつかはFORWARDのような関数インボケ−ジョ ンで使用され、他のものは配列およびストリームの処理のために使用される。
第6図はハードウェアに直接組込まれる基本的アクタのいくつかを示す。
高級言語における各構成に対して、コンパイラはその関数を実行する基本的アク タからなる対応するデータフローグラフを有する。例えばHDFLの条件式“i f yl<=y2 then y2*2+1 else yl +xOendi f”から発生されるデータフローグラフは、第7図に示される。“then”と “else”の条件分岐はこれらのアークに関するトークンを同じロケーション に送ることによって一緒にマージされる。これは出力アークを一緒にマージする ことによって示される。LE5 アクタ−は使用されないいくつかのスタブ出力 アークを有するということにも注意せよ。ENABLE アクタが存在し、その 結果、式の結果が発生される時、これはグラフの中の全てのアクタが点火される ことを保障し、グラフは、望まれるならばさらに使用されることができる。
アロケータ アクタを処理要素に割当てることはマルチプロセッサの性能に大きな影響を与え る。例えば各PEはシーケンシャルコンピュータなので、潜在的に並列に点火す ることができるアクタは、それらが同じPHに割当てられているならばそうする ことはできない。性能はまた、PE間通信ネットワークにおけるデータ通信遅延 によって影響されることがある。あるPEから他のPEにトークンを送信するた めには、同じPE内で1つのアクタから他のアクタにトークンを送信するそれは 完全に通信ネットワークをバイパスするよりも多くのクロックサイクルが必要で ある。
これにより効率的なアロケーションのための3つのゴールが導かれる。1)グラ フ内に接続されたアクタを同じ処理要素に割当てることによってPE間通信を最 少にする。2)並列に点火することのできるアクタを別々の処理要素に割当てる ことによってグラフの並列性の使用を最大にする。及び3)処理要素間で計算負 荷を出来るだけ均等にする。
データフローのアーキテクチュアと高級言語コンパイラ30が開発され、アロケ ーションアルゴリズムが実行された。シュミレーションの結果を得るために始め にローカルアロケータ17と呼ばれる小スケールバージョンが実行された。
ローカルアロケータ ローカルアロケータ17への入力は、一連のテンプレートの形でデータフローグ ラフを有するファイル13である。各テンプレートは、それが表すオペレータ演 算子のオペコードと、それから発生するデータ依存アークをリストする。このフ ァイルはまた配列をリストし、それらの各々は単一処理要素に割当てられ、ある いは多くの処理要素に渡って分配される。
アロケートされるべきデータフローマルチプロセッサの構成を述べるファイル1 4は、ローカルアロケータ17に読込まれ、どれ程多くの処理要素80がPEを 接続する3次元パケット経路選択ネットワークの各次元に存在するかを指定する 。シュミレーションのためにローカルアロケータ17の出力は2つのファイルか らなる。第1のファイルは、グラフの各アクタを処理要素のうちの1つのメモリ ロケーションに写像することを指定し、第2のファイルは1以上の処理要素内の メモリブロックを指定するために配列がどのように割当てられるかを指定する。
これらのファイルはその後シュミレータされるマシンを初期化するためにアーキ テクチャのシュミレータに読込まれることができる。
ローカルアロケータ17は幅第1サーチの変形を使用してグラフのアクタをトポ ロジ的にソートする事によって始まる(このためにはアホ−(Aho)らによる 1974年にアディソンーウエズリによって発行された“コンピュータアルゴリ ズムの設計と解析“を参照)。トポロジ的にソートされた順番で、グラフの入力 を受取るアクタが先頭であり、第1のアクタからのアークを受取るアクタによっ て後続され、以下同じである(このために我々は、前に見られるアクタへのバッ クアークを無視することによってグラフ内のサイクルを無視することができる) 。次のステップは、データフローグラフの過渡的な閉包を計算することであり、 それは以下の帰納的な議論で定義される。
その後ローカルアロケータはグラフ内のアクタの格納されたリストを順番に処理 し、各アクタを処理要素の1つに割当てる。あるアクタに対する最良のPEを選 択するためにアルゴリズムは、いくつかの帰納的コスト関数をPEの各々に適用 し、その結果の重みづけられた合計を取り、最低のコストでPEを使用する。こ れらの帰納的論法は、ローカルアロケータ17とグローバルアロケータ50の心 臓部である。
現在3つの基本的な帰納的な論法が実行される:通信コスト、配列アクセスコス ト及び並列処理コスト。通信および配列アクセスのコスト関数は、PE間通信を 最少にする目的に対応し、並列処理コスト関数は、並列性を最大にする目的に対 応する。
通信コスト関数は、あるアクタとあるPEを取上げ、そのあるアクタをそのある PHに割当てるならばその結果となるであろうネットワークを介しての通信の近 似的な測定値を戻す。一般に、2つのアクタが接続されるとき、それらが離れて アロケートされる程に、通信コストは益々高くなる。
帰納的関数は、PEが3次元バス通信ネットワークにおいてどのぐらい離れてい るかを決定するための距離関数を使用する。例えば2つのPEが共通バス上にあ れば、それらの間の距離は、トークンが一方から他方へ伝わるために1つのバス を移動しなければならないので、“1ホツプ″である。
PEとそれ自身の間の距離は、通信ネットワークはトークンを送信する場合にバ イパスされることができるので0ホツプである。
アクタがアロケートされようとする時、アクタはトポロジ的にソートされた順番 に割当てられるので、入力されるトークンを受取るアクタのほとんどは既にアロ ケートされている。
PE間の距離関数を使用して、通信コスト関数はアクタがあるPEに割当てられ るならば、通信ネットワークを介して各入カドークンがどのぐらい遠くに伝えら れなければならないかを決定する。通信コスト関数の値はこれらの距離の合計値 である。
処理コストの帰納的論法は並列性を検出するためにデータフローグラフの遷移的 閉包を使用する。導かれるグラフの遷移的閉包は、もとのグラフにおいて1つの ノードから他のノードへ導かれる経路が存在するならば、そして存在するだけな らば、ノードの同じ組と1つのノードから他のノードへのアークとを有するグラ フであると定義される。最悪の場合にはこの計算はノード(アクタ)の数の立方 に比例する時間を必要とする。
遷移的閉包はあるグラフにおいて一方から他方に導かれる経路が存在しなければ 、2つのアクタが並列して点火することができるので、データフローグラフにお ける並列性に非常に近回に関連づけられ、それらは順番に実行されるようにさせ られる。このようにして2つのアクタは、それらがグラフの遷移的閉包に直接接 続されていなければ並列に点火することができる。この事実はアロケートされた グラフの並列性を最大にするために、どのアクタが別々のPHに割当てられるべ きかを決定するための並列処理コストの帰納的論法で使用される。それは、(遷 移的閉包に従って)潜在的に並列なアクタが同じPEに割当てられるとき、単純 により高いコストを割当てる。
ローカルアロケータは、配列アクセスコスト関数によって導かれ、ある配列に近 い配列をアクセスするアクタをアロケートしようとする。この帰納的関数は通信 コストの発生である。それは、配列がどのぐらい遠くに割当てられるかに依存し て、配列をアクセスするアクタをある処理要素に割当てる結果としてネットワー クを介しての通信を測定する。
ローカルアロケータは同様の帰納法的論法を使用して、1以上のPHに各配列を アロケートする。それをアクセスするアクタが少数の小さい配列では、ローカル アロケータはアクセス時間をスピードアップするために、単−PHにアクタを制 限するように選択する。配列が大きく、遷移的閉包に従ってそれを並列にアクセ スすることができる多数のアクタを有するならば、プログラムは多数のPHに渡 って配列を分配しようとする。配列をアクセスするアクタはまた、配列をアクセ スするための論争を減らすためにこれらのPEにわたって分配される。
グローバルアロケータ グローバルアロケータは、ローカルアロケータからの帰納的方法を分割攻略法と 結合し、それが大きなグラフを動作させる事を可能とする。ローカルアロケータ のように、それはプロセッサの次元についての情報とデータフローグラフを受付 ける。それはまた、それがグラフを並列なモジュールに分割するように、アロケ ータを導くために、コンパイラ30の第1の経路からシンタックス バースツリ ーの階層表現を受付ける。このようにしてコンパイラとアロケータを集積するこ とによって、そのアロケータは、関数、サブ関数および表現式にプログラムの記 述を分割するように高級プログラマが選択する方法を与えるという長所を持つこ とができる。我々はこれを“シンタックス ブイレフテッド パーティッショニ ングと呼ぶ。
分割攻略法はプログラムを2つの関連するサブプログラムに減らす。すなわち入 力されたグラフを、小さなよりトラクタプルなモジュールの組に分割し、各モジ ュールを処理要素の組に帰納的に割当てる。アルゴリズムは、そのグラフをいく つかのモジュールに分割し、データフロープロセッサの処理要素のいくつかの組 に各モジュールを割当てることによって、上から下に進む。その後さらに循環的 にそれは各モジュールをサブモジュールに分割し、それらの各々をモジュールが 以前割当てられていたPEの組のPHのサブの組に割当てる。この分割と割当て の処理は個々のPHに一度に一つのアクタが効率的にアロケートされることがで きるように個々のサブモジュールが十分小さくなるまで階層的に繰返される。
コンパイラからのバースツリーのノードは、関数、サブ関数、ループ等のような プログラムのシンタックス要素に対応する。そのツリーはポインタによってデー タフローグラフに結付けられ、その結果グラフのアクタはそのツリーの“葉”と なる。データフローグラフ内のバースツリーのノードとモジュールとの間の自然 な対応関係が存在する。そのツリーのあるノードより下の1組のアクタは、その ノードに対応する表現式の値を計算するデータフローグラフのモジュールを形成 する。例えば、そのツリーの“根”は全体のデータフローグラフのプログラムか らなるモジュールに対応する。そのツリー〇ノードの子供は、親のノードのサブ 関数とサブ表現式に対応する。
データフローグラフを1組のモジュールに分割するタスクは、このシンタフティ ックパースツリーによって導かれる。
グローバルアロケータは、表現式に対応するモジニールを表現式のサブ表現式に 対応する1組のサブモジュールに分割する。シンタフティックパースツリーによ れば、それはあるノードをそのノードの子供に分割する。機能的なデータフロー 言語では、表現式と関数はサイドイフエクトがないので一般に並列に計算される ことができる。従ってこれらのシンタフティック要素は、対応するデータフロー グラフの分割に際し、通常理想的な選択である。
しかしながらこれらのモジュールは通常は完全には並列ではない。それらの間に いくらかのデータ依存性が存在する。
例えば値の名前に割当てられるデータフロー言語のプログラムにおける表現式が 存在するならば、その表現式を計算するモジュールからその値の名前で呼ばれる 他のモジュールにデータ依存性が存在する。グローバルアロケータは、異なるモ ジュール内の個々のアクタ間にデータ依存アークを捜すことによって、モジュー ル間のそのようなデータ依存性を見つける。その後それらの依存性は“モジュー ルグラフ″と呼ばれるグラフを構成するために使用され、そのノードは分割され たデータフローグラフのモジュールに対応し、そのアークはサブモジュール間の データ依存性を示す。それは必然的に他のデータフローグラフとなる。
モジュールグラフのノード(サブモジュール)をPEの組に割当てるタスクは、 ローカルアロケータプログラムによって実行される割当てと同様である。そのア ルゴリズムの変形例が使用される。最初にモジュールグラフのノードがトポロジ ー的に格納され、その後その遷移的閉包が計算される。このようにして、あると きにおいて全体のグラフの遷移的閉包を計算することは必ずしも要求されず、そ れにより大きなグラフに対するローカルアロケータの非効率さは避けられる。
グローバルアロケータにおいてモジュール(と個々のアクタ)をPEに割当てる ことは、ローカルアロケータを扱うセクションにおいて、前に定義された帰納的 コスト関数の2つによって導かれる。それらはPHの組に割当てられるべき多く の個々のアクタからなるモジュールに適用するように発生される。通信コスト関 数に対してはPE間の距離関数は、PEの数に分割された個々のPE間の距離を 使用することにより、PHの組の間の平均距離に対して発生される。発生された 並列処理コスト関数に対しては、(モジュールグラフの遷移的閉包による)並列 モジュールが交差するPEの組に割当てられ、その交差点におけるPEの数によ って重みづけられる時にはいつでも、より高いコストが割当てられる。
シュミレーションの結果 最も広くシュミレートされる2つのプログラムは、リアルタイムレーダ信号処理 の応用分野に関する。両方のプログラムは、種々のアロケーションアルゴリズム と、処理要素構成を用いてシュミレートされる。
レーダ3naプログラムは、9Bアクタ、 152アーク、17定数、7.19 サイクルの平均ALU実行時間(50n s kサイクル時間) 、1.58ア ークの平均アクタファンアウト(アクタに対する出力アークの数)と、及びサイ クルあたり21.14アクタを点火する並列度(インストランジョンレベルのシ ュミレータに関して並列に点火することができるアクタの平均数)を有する。
レーダ上プログラムは、複素数の16ポイントフーリエ変換(FFT)を使用す る。それは、415アクタ、θ15アーク、71定数、4,92サイクルの平均 ALU実行時間、1.56アークの平均アクタファンアウト、及びサイクルあた り80.1li3アクタを点火する並列度を有する。
両方のプログラムは、IXI×1.2XIX1.2×2×1.2X3X1.2X 2X2.2X2X3.3X3X2.3×3×3.4X3X3.4X4X3、およ び4X4X4の構成の要素上でシュミレートされる。レーダーbはまた8X4X 4の構成上でシュミレートされる。これらの両方のプログラムは入力データを連 続的に処理するように設計されている。
シュミレーションにおいて8組のデータが各プログラムの実行のために使用され る。各入力アクタは、それが点火されるやいなや連続的なデータをつかみ、この ようにしてプログラムは入力データのいくつかの組を同時に処理する。終わりの ないパイプラインステージが存在し、いくつかの組の入力データが互いに干渉す ることを防ぐために、どんなアクノリッジトークンも使用されない。代わりにオ ペランドキューが安全を守るために使用される。3つの全てのアロケーションア ルゴリズムがレーダ3naに対して使用されるが、しかし、遷移的閉包アルゴリ ズムが余りにも多くのCPU時間を消費するので、非遷移的閉包とランダムアル ゴリズムだけがレーダbに対して使用される。結局300以上のシュミレーショ ンがこれら2つのプログラムを使用して実行された。
第8図と第9図はレーダ3naとレーダbの両方が、非ランダムアロケーション を使用して有意によりよいスループットを有するというを示す。遷移的閉包アル ゴリズムは、非遷移的閉包アルゴリズムとほとんど同様の最大スルーブツトを生 じるが、しかしアクタが順番に点火するとき、2つのアクタを同じPEの中に置 くことは非遷移的閉包アルゴリズムと非常に似ているので、はとんどPEを使用 しない。第9図に示される結果とゴステロ−(Go s t e 1 ow)と トーマス(Thomas)によるデータフローのシュミレーションの結果を比較 すると、付加的な処理要素が使用される時、本発明はその性能においてより大き な改良点を有するということが明らかとなる(先の結果は1980年10月のI EEETOCの巻C−29No、lOp、905からp、919に書かれた“シ ュミレートされたデータフローコンピュータの性能”という論文の、9dと9e 図に書かれている)。
第1O図と第11図は処理要素の数に関して、ALUがビジーである時間の百分 率がどのように変わるかを実行アクタが示している。使用されるPEが多ければ 多いほど、平均ALUがビジーである時間は短くなる。これはある時に点火する 用意が出来ているアクタを各PEが基本的にほとんど持たないためである。それ はパケット(トークン)のレイテンシーの増加によりものではない(第16図を 参照)。平均ALUビジ一時間とALUビジー最大時間の間の差は小さいという ことに注意せよ。それは負荷がかなりバランスして分配されているということを 意味する。さらに第1O図は遷移的閉包と非遷移的閉包のグラフが同じような、 性能を有するということを示す。20個を越えるPHの非遷移的閉包のグラフの 一部は、20以上のPEが使用される時、スループットが増加しないので関係は ない。
第12図は、スルーブツトを最大にすることと、PEを効率的に使用することの 間にトレードオフが存在するということを、第8図から第11図がどのように意 味するかを示す。非常にPHの少ない構成では、平均ALUは非常にビジーであ るが、しかしプログラムの並列性の全てが活用されている訳ではないので、プロ グラムのスルーブツトは、得られることができる最大値よりもはるかに少ない。
より多くのPEが使用されるにつれ、プログラムのスルーブツトは増加するが、 平均ALUがビジーである時間の百分率は減少する。
それは、高スルーブツトを達成し、平均ALUが非常にビジーである状態を保つ プログラムのアロケションが見つけられないということではない。スルーブツト を最大にすることとPEを有効に使用することの間に存在する関係は、グラフの 並列性と、アロケーションと、およびハードウェアに依存する。例えば、アロケ ーションは平均して並列に点火することができるアクタは5個にすぎないが、し かし特定の時間に並列に点火することができるアクタは10個である。この場合 、最大スループットを達成するためには、ただ5つのアクタが平均的に使用され るにすぎないとしても、10個のPEが使用されることが必要である。
=ta図と第14図は、(PE間よりもむしろ1つのPE内で)ローカルである パケット通信の百分率がレーダ3naとレーダbに対して、PEの数とともにど のように変化するかということを示している。それらは、PEO数が増加するに つれ、パケット通信量の少なさが、ローカルであるということを示す。予想され るように、遷移的閉包アロケーションアルゴリズムは、非遷移的閉包アルゴリズ ムよりも多くのローカルパケット通信を有する。驚くべきことは、レーダ3na の4倍のアクタを有するレーダbに対しては、ローカルパケット通信の百分率が それほど急速には減少しないということテアリ、実際、より多くのPEが使用さ れるにつれ幾分増加する。
第15図は、レーダbの非遷移的閉包アロケーションに対する結果キューの平均 と最大の長さを示す。1つのPHに対する平均と最大のキューの長さに対する1 03と158の結果と、2つのPHに対する平均と最大のキューの長さに対する 42と74の結果は、選ばれたスケールのために第15図には示されていない。
平均キューの長さはいくつかのPEを越えて急速に減少し、8以上のPEに対し ては平均キューの長さは1パケツト以下であるということに注意せよ。これは通 信チップとプロセッサチップにおける他のキューの特徴であり、キューオバーフ ローエリアが提供される、あるいはデッドロックを防ぐために他の方法が使用さ れる限りにおいて、平均キューの長さが数ワードに制限されるということを示す 。
シュミレーションを通して学ばれた第1の事柄のうちの1つは、われわれのオリ ジナルアーキテクチュアにおいて同様にデッドロックが生ずるということであっ た。レーダ3naとレーダbの両方は、1つのPEにアロケートされるとき内部 PEデッドロック(点火キュー、結果キュー、および満たされたフィードバック キュー)に苦しみ、4つPEにアロケートされるときレーダbは(通信チップキ ュー、点火キュー、及び満たされた結果キュー)のPE間プツトロックに苦しん だ。われわれのオリジナルなアーキテクチュアは、通信チップと処理チップ内の 全てのキューを8ワードの長さに制限した。PE内部の、そしてPE間のデッド ロックの両方を緩和するために、われわれは結果キューオーバーフローエリアを 、処理チップ上の結果キューの部分が満杯であるとき使用されることができる宛 先メモリに加えた。これにより、はとんどPEを有しない構成に対する大きな平 均および最大の結果キューの長さが説明される。
第16図は、平均通信パケットレイテンシーが、PHの数とともにどのように変 化するかを示す。レイテンシーのこの測定値は、通信チップ内で出会う、通信チ ップをアクセスする際のパケットの遅延を含む。それは、テンプレートメモリコ ントローラ、点火キュー、ALU、結果キューおよび宛先タガ−において出会う 遅延を考慮していない。それは、宛先タガ−の出力からテンプレートメモリコン トローラの入力までのレイテンシーを測定する。それは通信システムの効率のよ い測定法である。PEがほとんどない場合には、通信チップのアクティビティは 非常に小さいということに注意せよ、それゆえに通信チップによって寄与される パケットのレイテンシーは低い。第16図に示されるように、平均通信パケット のレイテンシーは4個のPEでピークとなり、PEの数が増えると急速に減少す る。18個以上のPHに対しては平均パケットレイテンシーは殆ど一定であり、 それは、より多くのPEが使用されるにつれて(第9図を参照)、レーダbのス ルーブツトの増加の割合いの減少は、通信潜在期間の増加よりもむしろ基本的に はグラフにおける並列性の制限量によるとい−うことを意味する。
本発明を特定の実施例を参照して詳細に述べたが、本発明に関連する当該技術分 野の熟練者には種々の改造が、本発明の精神と範囲から離れることなくなされる ことができるということは明らかである。
Fig、 2 行 Fig、 4゜ 三 ?== ツ =c!cP) 旬 ト国際調査報告 1m−−r管−a+n−^””雪や”PCT/US87100410

Claims (1)

  1. 【特許請求の範囲】 1.高級データフロー言語で書かれたインストラクションからなるプログラムを 格納媒体上に書込むことと、前記格納媒体から前記インストラクションからなる プログラムをコンパイラに読込むことと、 前記インストラクションを翻訳することによって前記インストラクションを複数 のマシンインストラクションにコンパイルすることと、 データフロープメセッサを記述するファイルをグローバルアロケータプログラム に入力することと、前記マシンインストラクションを実行するための前記データ フロープロプロセッサ内の複数の処理要素に前記マシンシンストラクションを割 当てるために、前記複数のマシンインストラクションを処理するために、前記グ ローバルアロケータプログラムを走らせることと、 前記データフロープロセッサ内で前記プログラムを実行するために、前記データ フロープロセッサ内に、複数のデータを入力することと、および 前記データフロープロセッサ内で前記マシンインストラクションを実行すること とを具備することを特徴とする、高効率データ信号処理のためのデータブローマ ルチ処理方法。2.高級データフロー言語で書かれたインストラクションからな るプログラムを格納媒体上に書込むことと、前記格納媒体から前記インストラク ションからなるプログラムをコンパイラに読込むことと、 前記インストラクションを複数のマシンインストラクションに翻訳することによ って前記インストラクションをアッセンプルすることと、 前記マシンインストラクションをローカルアロケータプログラムに入力すること と、 マシンインストラクションを実行するための前記データフロープロセッサ内の複 数の処理要素に前記マシンインストラクションを割当てるために前記複数のマシ ンインストラクションを処理するために前記ローカルアロケータプログラムを走 らせることと、 前記データフロープロセッサ内で前記プログラムを実行するために前記データフ ロープロセッサ内に前記複数のデータを入力することと、および 前記データフロープロセッサ内で前記マシンインストラクションを実行すること と を具備することを特徴とする高効率データ信号処理のためのデータフローマルチ 処理方法。 3.高級データフロー言語で書かれたインストラクションを複数のマシンシンス トラクションに翻訳するためのコンパイル手段と、 前記高級データフロー言語で書かれたプログラムを前記コンパイル手段に通信す るための第1の入力手段と、複数のマシンインストラクション上で動作するデー タフロー処理手段と、ここで前記データフロー処理手段はさらに複数のデータフ ロー処理要素を有し、前記複数のデータフロー処理要素の各々は通信部と、プロ セッサ部と、複数のメモリと、および前記処理要素を接続する複数の通信パスを 含む3次元バスパケット経路選択ネットワークとを有し、前記コンパイル手段か らの複数の出力を受取り前記データフロー処理手段を記述するインストラクショ クのファイルを受付けるためのグローバルアロケーション手段と、前記データフ ロー処理手段に複数のデータを通信するために前記データフロー処理手段に接続 された第2の入力手段と、および 前記データフロー処理手段から出力ターミナル手段に複数の結果を通信するため に前記データフロー処理手段に接続された複数の出力手段と を具備することを特徴とする高効率データ信号処理のためのデータフロー装置。 4.高級データフローグラフ言語で書かれたインストラクションを複数のマシン インストラクションに翻訳するためのアッセンブル手段と、 前記高級データフローグラフ言語で書かれたプログラムを通信し、データフロー 処理手段を記述するインストラクションのファイルを前記アッセンブル手段に通 信するための第1の入力手段と、 複数のマシンインストラクション上で動作するデータフロー処理手段と、ここで 前記データフロー処理手段はさらに、複数データフロー処理要素と、3次元バス パケット経路選択ネットワークとを有し、前記複数のデータフロー処理要素の各 々は、通信部、プロセッサ部、および複数のメモリを有し、前記ネットワークは 前記処理要素を接続する複数の通信バスを有し、 前記アッセンプル手段からの複数の出力を受取るためのローカルアロケータ手段 と、 前記データフロー処理手段に複数のデータを通信するために、前記データフロー 処理手段に接続された第2の入力手段と、および 前記データフロー処理手段から出力ターミナル手段に複数の結果を通信するため に、前記データフロー処理手段に接続された複数の出力手段と を具備することを特徴とする高効率データ信号処理のためのデータフロー装置。 5.前記処理要素の各々は、 デジタル信号の送受信のための複数の通信手段と、複数のキューと、前記複数の キュー間の複数の接続と、および前記複数のキューの1つに接続されたメモリと を有する通信部と、 複数のマイクロマシンと、複数のキューと、複数のメモリと、および前記マイク ロマシンと前記メモリと前記キューとの間の複数の接続とを有するプロセッサ部 と、前記プロセッサ部からのアドレスを受信するように、前記プロセッサにデー タを供給するように、あるいは前記プロセッサ部からデータを受信するように接 続された複数のメモリと、および 前記プロセッサ部に前記通信部を接続するバスとをさらに具備することを特徴と する請求の範囲第3項に記載の装置。 6.前記3次元バスパケット経路選択ネットワークの各々は、双方向平面バスと 、双方向行バスと、双方向列バスを有し、前記処理要素の各々は、前記双方向の 平面、行、及び列バスに接続されていることを特徴とする請求の範囲第5項に記 載の装置。 7.前記処理要素の各々の前記通信部の各々は、双方向プロセッサバスと、 前記平面バスに接続されたファーストイン・ファーストアウト平面入力バッファ ーキューと、 前記平面バスに接続されたファーストイン・ファーストアウト平面出力バッファ ーキューと、 前記行バスに接続されたファーストイン・ファーストアウト行入力バッファーキ ューと、 前記行バスに接続されたファーストイン・ファーストアウト行出力バッファーキ ューと、 前記列バスに接続されたファーストイン・ファーストアウト列入力バッファーキ ューと、 前記列バスに接続されたファーストイン・ファーストアウト列出力バッファーキ ューと、 前記プロセッサバスに接続されたファーストイン・ファーストアウトプロセッサ 入力バッファーキューと、前記プロセッサバスに接続されたファーストイン・フ ァーストアウトプロセッサ出力バファーキューと、前記プロセッサ入力、平面入 力、行入力、列入力バッファーキューに接続され、前記プロセッサ平面、行、お よび列入力バッファーキューから前記プロセッサ、平面、行、および列出力キュ ーにバケットを送信するための第1の内部バスと、前記プロセッサ、平面、行、 および列出力バッファーキューに接続され、前記プロセッサ、平面、行、および 列入力バッファーキューから前記プロセッサ、平面、行、および列出力キューに パケットを送信するための第2の内部バスと、エラーメモリと、および 前記エラーメモリを前記プロセッサ入力バッファーキューに接続する双方向エラ ーメモリバスとをさらに具備し、前記各処理要素の前記各プロセッサ部は、テン プレートメモリコントローラマイクロマシンと、前記テンプレートメモリコント ローラマイクロマシンの一部を形成する点火検出メモリと、 算術論理ユニット(ALU)マイクロマシンと、前記ALUマイクロマシンの一 部を形成するマイクロプロセッサと、 前記ALUマイクロマシンを制御する、前記ALUマイクロマシンの一部を形成 するマイクロメモリと、宛先タガーマイクロマシンと、 宛先メモリコントローラマイクロマシンと、前記テンプレートメモリコントロー ラマイクロマシンからのアドレスを受信するように、前記テンプレートメモリコ ントローラマイクロマシンにデータを供給するように、あるいは前記テンプレー トメモリコントローラマイクロマシンからデータを受信するように、前記テンプ レートメモリコントローラマイクロマシンに接続されたテンプレートメモリと、 前記テンプレートメモリコントローラマイクロマシンから前記ALUマイクロマ シンに接続されたファーストイン・ファーストアウト点火キューと、 前記ALUマイクロマシンから前記宛先タガーマイクロマシンに接続されたファ ーストイン・ファーストアウト結果キューと、 前記宛先メモリコントローラマイクロラシンを前記テンプレートメモリコントロ ーラマイクロマシンにリンクする双方向コントローラバスと、 前記宛先タガーマシクロマシンから前記双方向コントローラバスに接続されたフ ァーストイン・ファーストアウトフィードバックキューと、 前記宛先タガーマシクロマシンから前記双方向プロセッサバスに接続されたファ ーストイン・ファーストアウト“通信に”キューと、 前記双方向プロセッサバスから前記双方向コントローラバスに接続されたファー ストイン・ファーストアウト“通信から”キューと、 ファーストイン・ファーストアウト関連情報キューと、ファーストイン・ファー ストアウト宛先キューと、前記宛先メモリコントローラマイクロマシンからアド レスを受信するように前記宛先メモリコントローラマイクロマシンに接続された 宛先メモリと、および 前記宛先メモリと前記宛先キューとの間で、および関連情報キューと前記ALU マイクロマシンとの間でデータを通信するために、前記宛先メモリに接続され、 前記宛先メモリを前記宛先キュー、前記関連情報キューとおよび前記ALUマイ クロマシンとリンクする双方向宛先メモリデータバスとを具備することを特徴と する請求の範囲第6項に記載の装置。 8.前記処理要素の前記プロセッサ部と前記処理要素の前記通信部は、超大規模 集積回路(VLSI)に組込まれていることを特徴とする請求の範囲第7項に記 載の装置。 9.前記各処理要素は、 デジタル信号を送信し受信するための複数の通信手段と、複数のキューと、前記 キュー間の複数の接続と、および前記キューのうちの1つに接続されたメモリと を有する通信部と、 複数のマイクロマシンと、複数のキューと、複数のメモリと、および前記マイク ロマシンと前記メモリと前記キューとの間の複数の接続とを有するプロセッサ部 と、前記プロセッサ部からアドレスを受信するように、前記プロセッサ部からデ ータを受信するように、あるいは前記プロセッサ部にデータを供給するように接 続された複数のメモリと、および 前記通信部を前記プロセッサ部に接続するバスとを具備することを特徴とする請 求の範囲第4項に記載の装置。 10.前記各3次元バスパケット経路選択ネットワークは、双方向平面バスと、 双方向行バスと、双方向列バスとをさらに有し、前記各処理要素は前記双方向平 面、行、および列バスに接続されていることを特徴とする請求の範囲第5項に記 載の装置。 11.双方向プロセッサバスと、 前記平面バスに接続されたファーストイン・ファーストアウト平面入力バッファ ーキューと、 前記平面バスに接続されたファーストイン・ファーストアウト平面出力バッファ ーキューと、 前記行バスに接続されたファーストイン・ファーストアウト行入力バッファーキ ューと、 前記行バスに接続されたファーストイン・ファーストアウト行出力バッファーキ ューと、 前記列バスに接続されたファーストイン・ファーストアウト列入力バッファーキ ューと、 前記列バスに接続されたファーストイン・ファーストアウト列出力バッファーキ ューと、 前記プロセッサバスに接続されたファーストイン・ファーストアウトプロセッサ 入力バッファーキューと、プロセッサバスに接続されたファーストイン・ファー ストアウトプロセッサ出力バッファーキューと、前記プロセッサ入力、平面入力 、行入力、および列入力バッファーキューに接続され、前記プロセッサ、平面、 行および列入力バッファーキューから前記プロセッサ、平面、行および列出力バ ッファーキューにパケットを送信するための第1の内部バスと、 前記プロセッサ出力、平面出力、行出力、および列出力バッファーキューに接続 され、前記プロセッサ平面、行、および列入力バッファーキューから前記プロセ ッサ、平面、行および列出力バッファーキューにパケットを送信するための第2 の内部バスと、 エラーメモリと、および 前記エラーメモリを前記プロセッサ入力バッファーキューに接続する双方向エラ ーメモリバスとをさらに具備し、前記各処理要素の前記各プロセッサ部は、テン プレートメモリコントローラマイクロマシンと前記テンプレートメモリコントロ ーラマイクロマシンの一部を形成する点火検出メモリと、 算術論理ユニット(ALU)マイクロマシンと、前記ALUマイクロマシンの一 部を形成するマイクロプロセッサと、 前記ALUマイクロマシンを制御する、前記ALUマイクロマシンの一部を形成 するマイクロメモリと、宛先タガーマイクロマシンと、 宛先メモリコントローラマイクロマシンと、前記テンプレートメモリコントロー ラマイクロマシンからアドレスを受信するように、前記テンプレートメモリコン トローラマイクロマシンにデータを供給するように、あるいは前記テンプレート メモリコントローラマイクロマシンからデータを受信するように、前記テンプレ ートメモリコントローラマシンに接続されたテンプレートメモリと、前記テンプ レートメモリコントローラマイクロマシンから前記ALUマイクロマシンに接続 されたファーストイン・ファーストアウト点火キューと、 前記ALUマイクロマシンから前記宛先タガーマイクロマシンに接続されたファ ーストイン・ファーストアウト結果キューと、 前記宛先メモリコントローラマイクロマシンを前記テンプレートメモリコントロ ーラマイクロマシンにリンクする双方向コントローラバスと、 前記宛先タガーマシクロマシンから前記双方向コントローラバスに接続されたフ ァーストイン・ファーストアウトフィードバックキューと、 前記宛先タガーマシクロマシンから前記双方向プロセッサバスに接続されたファ ーストイン・ファーストアウト“通信に”キューと、 前記双方向プロセッサバスから前記双方向コントローラバスに接続されたファー ストイン・ファーストアウト“通信から”キューと、 ファーストイン・ファーストアウト関連情報キューと、ファーストイン・ファー ストアウト宛先キューと、前記宛先メモリコントローラマイクロマシンからアド レスを受信するように、前記宛先メモリコントローラマイクロマシンに接続され た宛先メモリと、および前記宛先メモリと前記宛先キューとの間で、前記関連情 報キューと前記ALUマイクロマシンとの間でデータを通信するために前記宛先 メモリに接続され、前記宛先メモリを前記宛先キュー、前記関連情報キュー、お よび前記ALUマイクロマシンとリンクする双方向宛先メモリデータバスとをさ らに具備することを特徴とする請求の範囲第10項に記載の装置。 12.前記処理要素の前記プロセッサ部と、前記処理要素の前記通信部は超大規 模集積回路(VLSI)に組込まれていることを特徴とする請求の範囲第11項 に記載の装置。
JP62501932A 1986-03-31 1987-03-02 有効な信号とデ−タを処理するためのデ−タフロ−マルチプロセッサア−キテクチュア Pending JPS63503099A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US84708786A 1986-03-31 1986-03-31
US847,087 1986-03-31

Publications (1)

Publication Number Publication Date
JPS63503099A true JPS63503099A (ja) 1988-11-10

Family

ID=25299732

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62501932A Pending JPS63503099A (ja) 1986-03-31 1987-03-02 有効な信号とデ−タを処理するためのデ−タフロ−マルチプロセッサア−キテクチュア

Country Status (4)

Country Link
EP (1) EP0261173A1 (ja)
JP (1) JPS63503099A (ja)
IL (1) IL81756A0 (ja)
WO (1) WO1987006034A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH064351A (ja) * 1992-06-24 1994-01-14 Toshiba Corp ビジュアル・シミュレーション装置
US7325232B2 (en) * 2001-01-25 2008-01-29 Improv Systems, Inc. Compiler for multiple processor and distributed memory architectures

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
IEEE TRANSACTIONS ON COMPUTERS=1985US *
PROCEEDINGS OF THE 1985 INTERNATIONAL CONFERENCE ON PARALLEL PROCESSING=1985US *
THE 12TH ANNUAL INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE=1985US *
THE 5TH INTERNATIONAL CONFERENCE ON DISTRIBUTED COMPUTEING SYSTEMS=1985US *

Also Published As

Publication number Publication date
WO1987006034A1 (en) 1987-10-08
EP0261173A1 (en) 1988-03-30
IL81756A0 (en) 1987-10-20

Similar Documents

Publication Publication Date Title
US5021947A (en) Data-flow multiprocessor architecture with three dimensional multistage interconnection network for efficient signal and data processing
Dally et al. The message-driven processor: A multicomputer processing node with efficient mechanisms
Roosta Parallel processing and parallel algorithms: theory and computation
Srini An architectural comparison of dataflow systems
Dongarra et al. Solving linear systems on vector and shared memory computers
Hatcher et al. Data-parallel programming on MIMD computers
JP2710536B2 (ja) コンピュータ・システム
JP2552076B2 (ja) コンピュータ・システム
US20080250227A1 (en) General Purpose Multiprocessor Programming Apparatus And Method
Sterling et al. Gilgamesh: A multithreaded processor-in-memory architecture for petaflops computing
DeMara et al. The SNAP-1 parallel AI prototype
Anderson et al. A comparison of shared and nonshared memory models of parallel computation
Gaudiot et al. A distributed VLSI architecture for efficient signal and data processing
JP2557175B2 (ja) コンピュータ・システム
JP2579419B2 (ja) マルチプロセッサ・メモリ・システム
JP2620487B2 (ja) コンピュータ・パッケージ
JPS63503099A (ja) 有効な信号とデ−タを処理するためのデ−タフロ−マルチプロセッサア−キテクチュア
Dally A universal parallel computer architecture
Topham et al. Context flow: An alternative to conventional pipelined architectures
JP2552075B2 (ja) コンピュータ・システム
Rodrigues Programming future architectures: dusty decks, memory walls, and the speed of light
Dadda The evolution of computer architectures
Dai et al. A basic architecture supporting LGDG computation
Foley A hardware simulator for a multi-ring dataflow machine
Juvaste Modeling parallel shared memory computations