JPH03500461A - データ駆動式計算用のデータ流れ装置 - Google Patents

データ駆動式計算用のデータ流れ装置

Info

Publication number
JPH03500461A
JPH03500461A JP1508090A JP50809089A JPH03500461A JP H03500461 A JPH03500461 A JP H03500461A JP 1508090 A JP1508090 A JP 1508090A JP 50809089 A JP50809089 A JP 50809089A JP H03500461 A JPH03500461 A JP H03500461A
Authority
JP
Japan
Prior art keywords
data
memory
processor
data flow
parameter
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
JP1508090A
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 JPH03500461A publication Critical patent/JPH03500461A/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)
  • Advance Control (AREA)
  • Complex Calculations (AREA)

Abstract

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

Description

【発明の詳細な説明】 この発明は、一般的に、データ駆動式処理装置及び方法に関するものであり、特 に、プロセッサのノード構成−その構造及びプログラミングの方法−に関するも のである。
この発明に関する権利は、アメリカ合衆国エネルギー省とアメリカ電信電話株式 会社(AT&T Technologies Inc)とで成された契約NII L DE−^C04−DPOO789に従って、政府が所有する。
2、従来技術の説明 コンピュータの構成は、フォン・ノイマンの構成から離れて現在の大量の科学的 コードを処理するのに必要な性能を達成するよう迫られている。これらの新しい 構成には、装置を有効に使用するために、コードを写像(s+ap)するための 多くの作業が必要となる。通常、この問題は並列プロセッサ間ではっきりと区切 らなければならず、これは困難で且つ時間のかかる仕事である。ところが、デー タ駆動式プロセッサの場合は、その問題を解くのにどの動作を行わなければなら ないかをプログラマ−が指定するだけで良い。
実行の順序及び実行に関与している並列処理要素の数は、それ以上の命令なしで ハードウェアが決定する。
しかしながら、並列処理の用途すべてにおいて、科学的コードは1つのアレイを 用いて計算する構造を備えなけれ、f4らない。このようなっ−ドは、同様な計 算を多数のデータ項目に関して行う必要性により付けられる。最大の並列は、ア レイを処理するプログラムループを完全に展開することにより、どの装置におい ても得ることができる。ところがこれにはループ内での反復毎にコードの別々の コピーを必要とするという欠点があり、数千ものバスの実行を伴うようなループ を取扱う際にはかなりの不利がでる。そし故、ループコードのコピーは僅かで良 く、これらによって異なるデータ処理を行うようにすることがより有利となる。
アレイのモデル、またはシステム構成を評価するにあたり普通に行なわれる手法 は、アレイを流れとしてながめることである。そうすれば、ループ処理はバイブ ラインの各段階で流れの一つの要素を備えたパイプラインとして構成される。そ してパイプラインの各段階は、次のデータ項目に対しての準備が整っていること を示すために、「次の(NEXT) Jを意味する信号を前の段階に送る。。
例えば、アレイプロセッサは、以下の複数の、従属した段階問題を解くことがで きる。
CI −AI +Bi (1) El −C1*D1 (2) 一連のプロセッサが方程式(1)を解くとともに各プロセッサが答えC1を、通 常、そのCiに対する要求(即ち、「次の」信号)に応じて、第2の一連のプロ セッサの中の対応するプロセッサに出力する。同時に、対応するプロセッサが次 のDを要求し、CIに対応するDIを使用して方程式(2)を解き、次いでEl の値が出力に順序正しく現れる。A1.B1及びDIの値の入力値がパイプライ ンに順序正しく送られる。更に多くの並行処理を行う数少ない方法の1つとして はパイプラインの幾つかのコピーを備えることによるものがあるが、これにはよ り多くの並行処理ができるのと引替えにより多くのメモリを必要とする。この方 法は、しかしながら、あらゆる場合に使用することはできない。例えばこの方法 は、各出力データ値がすべての入力データ値の°関数であるときには失敗する。
方程式系(systew of equation)を解く場合がこれに当る。
アレイを流れとして実施すると、アレイ要素を(流れに現れる順に)連続的に順 次評価しなければならない。このためこのアレイモデルを使用する装置が多数の アレイ動作において利用可能である固有の空間的同時発生を利用することができ なくなる。対照的に、ベクトル装置は、この空間的同時発生を活用し、この特徴 だけからその性能利益の大部分を実現するように特に最適化される。
データ流れコンピュータが、空間的同時発生を利用するために、従来型のベクト ルまたはアレイプロセッサを備えることはBagch iの「静的データ流れコ ンピュータにおけるアレイJ 1986 Proceedings of IE EE Region 5 Conferenceに提案されている。これにはこ のような同時発生の利用が可能であることの含意があるが、計算のデータ流れモ デルの「純粋さ」を犠牲にしてしまうものでもある。このような方法で計算モデ ルを改悪することは、混合モデルのために装置をプログラミングする仕事がはな はだしく複雑になり、問題内のいたる所で精密なグレイン並行処理(grain paral tel isw)を利用するデータ流れ装置の能力を低下させるこ とにもなる。アレイプロセッサを何時使用するか、あるいはデータ流れプロセッ サを何時使用するかの厳密な時が不明確で、このような混成装置に対する効率の 良いコンパイラでも不可能ではないにしても困難である。アレイ計算のために多 数の機能ユニットが分けられており、これがハードウェア設計を複雑にしている 。
ベクトルプロセッサを持たない同様のアレイモデル(従来の制御流れモデル)に 関してはLerinの「大型アレイにおける簡単な動作を含む問題のデータ流れ 構造の安定性」並列処理に関する1984年国際会議議事録pl) 518〜5 20 (1985年8月)に説明されている。再度言うが、装置がデータ流れモ デルと制御流れモデルとの混成であるため、上述した通りの多数の複雑さを生じ るのである。加えて、制御流れアレイモデルを含む計算モデルの複雑さによって 、解くべき問題に対する十分なアレイ記憶を設けることが困難になっている。こ れはまた、計算モデル間でのデータの転送の早さを遅くしている。
今日までのデータ流れ構成では、データ流れモデルに対して全熱取扱わないか、 流れとして取扱うか、あるいは制御流れの「つぎはぎ」として取扱うかという三 つの一つないしそれ以上の方法において、アレイを取扱ってきた。これら三つの 方法では明らかに上述の短所がある。データ流れ計算モデルに適応し、空間的同 時発生を利用することができるアレイモデルが必要である。
しかし問題を完全に認識するには、データ流れ装置(DFM)及び制御流れ装置 (CFM)の基本構成を考慮しなければならない。データ駆動処理は、多くの重 要な点で制御流れ処理とは異なっている。データ駆動プロセッサの設計は制御流 れプロセッサより簡単である。データ駆動プロセッサはバイブライン式実行を一 層有効に利用することができる。データ駆動プロセッサにとって、特に並列処理 においては、解方手段(「プログラミング」)を指定するのが容易である。デー タ駆動装置においては、データ格納は異なって見える。データ駆動装置が問題の 並列処理を従来の制御流れ装置よりも多く利用することができるということが、 多分最も重要な点である。データ駆動計算理論の更に完全な説明は、下記の参考 文献に示されている。J、B。
Dennis著の「データ流れ計算」、流れならびにデータ流れの制御:分配( Distributed)プログラミングの概念、 Springer−Ver lag、1985、並びにに、P、Ga5telOVとR,E、Thosas著 の「模擬データ流れコンピュータの性能J JEERTransactjons  on cosputers、C−29(10):905〜919.1980年 10月。
従来の制御流れ処理においては、指定実行の順序はプログラムカウンタにより決 定されている。各命令はメモリから呼出されて復号され、データメモリの参照文 が解読されその動作が行われ、結果がメモリに格納される。メモリのアクセス時 間及びプロセッサ間の通信時間の差異によって最小指定時間が異なることがあり 、このためプロセッサの設計が複雑になると共に、その持続し得る性能が限定さ れる。
これに対してデータ流れ装置の構成においては、動作を計画する際、(プログラ ムカウンタではなしに)データの利用可能性を用いる。動作に対しての必要なす べてのパラメータが伝達されると、すべてが実行バイブラインに自動的に送込ま れる。メモリは制御流れプロセッサの命令呼出しであったものを実行する。指定 はすべてのデータが準備完了するまでは「呼出され」ず、従ってメモリのアクセ ス時間またはプロセッサのアクセス時間またはプロセッサ間通信時間にはどんな 待ち時間も存在し得ない。指定の「呼出し」では、この指定がそのすべてのパラ メータと共に、実行バイブラインに送られる。このため、装置の実行バイブライ ンは、プログラムのどこかに準備完了命令がある限り、一杯の状態で、その最大 クロック周波数で動作する。
プロセッサ内にメモリシステムの制御または通信プロトコルが存在しないので、 プロセッサの設計が簡単になる。
制御流れ装置においては指定実行の順序は正確に指定しなければならない。アル ゴリズムを実施するコードは、指定が必要とするデータが通用する(即ち、必要 な前の計算が全て行われている)ことを確認しなければならない。これにより、 現在は装置が結果を計算する仕方ばかりでなくそれらを何時計算するかについて も聞かなければなならないので、装置によるその解法についての問題の翻訳に余 分な作業がくる。データ駆動処理では、データの利用可能性を利用して命令実行 の順序を決めるので、問題を解くためのコードでは計算の順序を指定する必要が ない。データ駆動プロセッサでは、命令をそのデータが準備完了するまでは決し て実行することができないため、問題を解く仕方を指定すれば、必要なすべての 情報が与えられる。
初期データ及び制御流れ装置で計算された中間値は、メモリの記憶場所に格納さ れ、これら記憶場所にあるデータに関して命令が動作する。データ駆動装置では 、初期データ及び中間値はそれらが動作と関連するときにのみ意味を持っている 。実際、データと共に送られる一連の動作の他は、データ格納の概念は存在しな い。
並列制御流れ処理には、各動作を行うべき記憶場所を別に指定する必要がある。
プログラマは、問題を解くのにどの動作が必要であり、それらをどんな順序で行 い、それらを行うのにどのプロセッサを使用すべきかを記載しなければならない 。制御プロセッサ間で中間結果を伝送するのもプログラマまたはコンパイラによ り明確に指示されねばならない。データ駆動装置では、ハードウェア及びデータ の利用可能性によって所要の動作を何時何処で行うのかが決定される。プロセッ サ間の通信はまさに動作量のデータの直接伝達であり、単一プロセッサコードの 場合よりプログラマからの指示の必要性は少ない。それ故コードは、数千のプロ セッサで動作する場合でも単一のプロセッサでする場合と同じ結果を生じ、正確 に同じコードを実行することができる。並列処理への拡張は単に装置の機能であ り、並列制御流れプログラミングで複雑さを生じることはない。
例えばGannon等の「通信の複雑さが並列数値アルゴリズムの設計に及ぼす 影響J、、 IEEE Transactions on Co+nputer s、C−33(12) 、 pp、 1180〜1194 (1984年12月 )、ならびにMuekなどの「プログラムの再構成、アルゴリズムの変更、おを 参照のこと。
従来型の制御流れプロセッサ間で計算を釣合わせておくことは、データ駆動並列 プロセッサ間では非常に困難であるが、準備の整った命令を利用可能ないずれか のプロセッサにより実行できるため、プロセッサ間での負荷を完全に釣合わせて おくことは可能である。
データ駆動処理は、制御流れに比べ、問題により提示された並列処理がより多く 利用できる。計算中のどんなときでも、そのオペランドが準備完了していてそれ 故実行することができる命令が多数存在する。制御流れプロセッサはそれらをそ の予じめ規定された順序で実行しなければならないが、データ駆動プロセッサは それらをどんな順序にでも実行することができ、事実、別にプロセッサを利用す ることができれば並列に実行することができる。計算は、格納データではなく動 作の周りに構築されるので、動作は複数のプロセッサのどれにでも格納すること ができ、計算はなお同じ結果を与えることが保証され、作業に利用できるプロセ ッサが多いために速いだけである。
制御流れ構成及びデータ流れ構成の従来の実施例を現在の問題の幾つか及び行わ れた解法の幾つかについて概観することにする。
NEDIPSデータ流れコンビ二−タ構成は、映像処理の用途を目的としている 。この構成は、ITO等がrNEDIPs:非フォンノイマン高速コンピュータ J 、78 NECRe5earch andDevelopsent 、 p p、83〜90 (1985年7月)に述べられている。
この構成は、開発中の多数のデータ流れ構成と同様、データ項目の到着を追跡し 、これらを他のデータ項目と合致させて命令を計画するのに特殊な制御流れプロ セッサを使用している。到着はしたが命令を発するには不十分なデータは、デー タの残りが到着するまで特別な待合わせメモリ内に保持しなければならない。
容易流れ(IJsy flow)エンジン構成は(データ駆動ではなく)要求駆 動装置である。この構成については、Jagannathan等が「容易流れエ ンジン構成」コンピュータ及び通信に関する1985年会議(フェニックス)  pp、IB1〜165(IEEE文献CH2154−3/85)に記載されてい る。命令はその結果が他の命令から要求されるまで評価されない。それ故「むだ な」計算は避けられるが、ハードウェアの経費が多くなる可能性がある。データ を追跡するには別に整合用メモリ(NEDIPS機と同様のもの)を使用してい る。この論文はこれを内容アドレス可能メモリとして実施できることを示唆して いるが、この方法はハードウェアの複雑さと速さの点で非常に高価につく。他の 推薦例は整合用メモリを探すことであるが、この方法は高性能機で実現可能とす るにはあまりにも高価である。
多重処理データ流れに関してMITで提案された処理要素は、提案された多数の データ流れ構成を代表するものである。Arvind等による「大型複数プロセ ッサデータ流れ装置の処理要素」1回路及びコンピュータに関する1980年I EEE国際会議、pp、601〜605(IEEE文献CH1511−5/80 )。これもまた、到着データを追跡するのに別の整合用メモリを使用している。
このような方法に関連する経費に関しては上に概説しである。動作に必要なすべ てのデータが到着すると、動作のアドレスを準備の整っている命令の待ち行列に 設置する。実際の命令を次に呼出して実行しなければならない一制御流れ装置と ほとんど同じである。
MITから出された他のデータ流れプロセッサ(Dennls。
他の「データ流れエンジニアリングモデルJ 、 1983年IPIP情報処理 、に記されている)はデータ及び命令を整合させるのにマイクロコード式プロセ ッサを使用している。整合機能は完全にプログラム可能であるが。命令を発動す ることができるか否かを判定するには多数のシステムクロックが必要であった。
このプロセッサは米国特許第!3.982.706号、第4,145,733号 、及び第4.15+1.932号の主題であると考えられている。
5PS−1000は任務を計画するのにデータ流れを利用しているデータ流れ構 成である。これはFisherのrSPS−1000:データ流れ構成J 19 82年周辺アレイプロセッサ会報、pp、77〜82に記されている。それ故、 利用可能な並列処理は任務レベルの並列処理に限られており、動作レベルの並列 処理と対立するものである。処理要素は本質的に制御流れプロセッサであって、 各種映像処理任務の実行時間計画を行わせるのに主メモリのポーリングを用いて いる。
Burdの「マンチェスタデータ流れ装置」、第5世代スーパーコンピュータに 関する国際シンポジウム議事録(1984年12月)に記゛されているマンチェ スタデータ流れコンピュータは、データ流れコンビ二一夕を構築しようとする最 初の試みの一つの結果であった。この装置は、その後継者と共に別の整合部及び 命令待ち行列を含む多数の特性を共有している。この装置は、上述の第2のMI T機と同様、その主要機能をマイクロコード式プロセッサに甚だしく頼っている 。このため、装置の全体的処理量が上述のように甚だしく低下している。この分 野への最初の冒険の一つであるから、この構成は並行処理の実施を目的とするも のではなかった。
フランスからのデータ流れコンピュータ構成であるPlas等のrLAUシステ ム構成:並列データ駆動プロセッサ」、並列処理に関する1976年国際会議議 事録、pp、293〜302(197B)に記載されているLAUコンビ二一夕 は、動作レベルの並列性を開拓することができた。タグは、マイクロコード式プ ロセサにより明白に操作さえており、メモリアクセスにより自動的に操作される ものではなかった。この装置は、上述の他の同様の装置と共にマイクロコード式 プロセッサに頼っているという欠点をもっている。
データ流れ加速装置、Davidson等の「汎用プロセッサ用データ流れ加速 器J 5andla国際研究所技術報告5AND−0710(1986年3月) に記載されており、5andia国際研究所で開発されたDFAMは、メモリ構 成を備えた従来のマルチプロセッサに追加することができる知能メモリである。
タグ付きメモリを使用しているが、タグは任務レベルの計画をするためのパラメ ータを追跡するのに使用される。
従来技術のコンピュータ構成の幾つかについてこれまで論評してきたことによれ ば大量の並列計算に適する新しいコンピュータ構成が必要であることが実証され た。その動機は現在研究その他のエンジニアリング及び応用科学の活動に必要な 科学的コードを実行する処理量への要求が日増しに増えていることである。コン ピュータ構成は、装置が特定の関係問題を解き、現在利用可能なコンピュータよ りかなり高い性能を示す限り、汎用である必要はない。
データ駆動並列処理での計算に必要な動作は変わらない。
所定の計算に必要なパラメータも同じままでなければならない。唯一の差異は、 動作が物理的に別々のプロセッサで行われるということである。命令実行の実際 の順序は変わってよいが、これはデータ駆動プロセッサが定義により実行準備の 整っていない命令を実行することができないために問題ではない。問題は、一旦 一つのデータ駆動プロセッサで実行するように様式化されると、並列処理の実行 に不変に移ることができる。これは、単一プロセッサで実行するよう作られた制 御流れコードを並列プロセッサに移すのに大量の作業を必要にするのと完全に対 照的である。
従って、従来のデータ流れ装置のあらゆる長所を取入れて、しかもプロセッサに 到達する直ちにそれ以上のデータまたは命令の呼出しを待たずに命令を実行する ことができるデータ流れ装置(DFM)の必要性が依然存在する。
発明の概要 特定の実施例に関してここに開示する発明は、前述の及び他の短所並びに困難を 克服するものである。この開示の主題であるアレイモデルは、アレイの従来の取 扱いと一層酷似しているが、アレイ内のどの要素にも独立に且つランダムにアク セスすることができる。大量のデータを効率良く格納できるという別の長所もあ る。一つの特定の方法によれば、一定形式の命令、ROUTe命令を使用してデ ータを格納する。例えば、ROUTA動作は、その入力データ(A)を不変のま ま伝え、その入力の一つ(B)を目的地アドレスとして使用する。この動作は、 前に説明した反復技法のような多くの場合に有用である。この動作は以下に述べ るようにアレイに対するデータ格納″を実施するのにも使用される。同様な命令 を支援するどんなプロセッサでもこのメモリモデルを活用することができる。そ の動作の説明はDFM構成を仮定して表記法の一貫性を保っている。
本発明によるデータ流れ装置(DFM)プロセッサは、相互接続された複数のノ ードを備えており、各ノードがプロセッサを備えている。現在の所、好適な実施 例によるプロセッサノードはデータを適切な命令と共に格納するメモリを伴って いる。メモリは到着するデータをそのデータが到着するにつれてハードウェアで 追跡する手段を備えている。データが到着すると、この手段は、関連するデータ タグの状態をチェックして他のすべてのデータが存在するか確認する。他のすべ てのタグが設定されていれば、命令は「発動」されていればデータ流れに沿って プロセッサに送られ、実行される。
上述のNED I PS機も多数のパラメータを有する命令を処理するのに特定 のプロセッサ手段を使用するが、本発明のDFMは「粘着性」ビットを使用して 多数のパラメータを同じプロセッサ構成に収納している。
Arvlnd等の大型の多数プロセッサデータ流れ装置とは異なり、本発明のD FM構成は準備の整った命令を並んで待ったりまたはそれらをメモリから取出し たりしない。DFMでの命令はタグ付きメモリが命令の準備が整っていることを 検出すると直ちに実行され、その命令はただちに浮動小数点計算ユニットに送ら れる。
本発明によるDFM命令は単一クロックサイクルで発動される。これはDenn isのMITデータ流れプロセッサと甚だしい対照をなしている。MITの装置 では整合用プロセッサが計算プロセッサとは別に設置され、論理的に調べられる 。これも各計算ユニットにそれ自身のタグ付きローカルメモリがあるDFMと対 照的である。
「粘着性」タグは、本発明の動作レベルのデータ流れ構成にとって非常に重要で あるので、DFAMのような任務レベルのスケジューラには不必要である。DF AM構成はタグ付きメモリとは離れている計算要素により動作が行われ、結果が 伝達されるという点でも相違している。DFM内の各計算要素には、多数制御流 れプロセッサ用の任務を計画するタグ付き中央メモリではなく、それ自身のタグ 付きローカルメモリがある。
本発明の他の利点及び特徴については文中で説明するが、当業者には明らかであ ろう。
図面の簡単な説明 第1図は本発明によるデータ流れプロセッサノードの一般化した概要ブロック図 である。
第2図は本発明に従って行われる条件付き計算での可能な経路を示したデータ流 れ図である。
第3図は本発明の作業実施例のシステムの概略ブロック図であり、データ流れメ モリ及び実行ユニットが記載されている。
第4図は本発明により発生する各種クロック信号の間の関係を示すタイミング図 である。
第5図は第3図のデータ流れメモリの詳細なブロック図であり、タグメモリ、オ ブコードメモリ、パラメータメモリ、及び目標メモリを示している。
第6図は第5図に示したタグ付きメモリの詳細なブロック図である。
第7図は第3図の実行ユニットの詳細なブロック図であり、演算論理ユニット( ALU)、制御ユニット及びアドレスマルチプレクサを示しである。
第8図は第7図の演算論理ユニットの詳細なブロック図である。
第9図は第7図に示した制御ユニットの詳細なブロック図である。
第10図は、問題、初期条件、及び解答を順次緩和して示すチャートである。
第11図はタグ付きメモリがROUT命令を支援する方法を示す流れ図である。
発明の好適な実施例 以下に添付図面を参照しつつ本発明を説明するが、図を通じて類似数字は類似要 素を表している。
!、指定 本発明の方法は、その計算の基本要素として命令パケット(packet)を利 用している。命令パケットには基本形演算 パラメータ 目的地 がある。ここで、「演算」は「パラメータ」について行うべき演算を規定するも のである。演算の結果は次に命令パケット内の、「目的地」で識別される目的地 に送られるが、これは一般に別の動作となる。命令パケットはタグ付きメモリに 格納されている。これらメモリは従来型のメモリ要素で作られているが、各パラ メータに関連するタグを備えている。メモリはまた特定のパラメータへのアクセ ス毎にタグを修正し、そのパラメータの状態−準備完了または準備未了−を追跡 できるようにする回路を備えている。メモリシステムは命令内の全てのタグをパ ラメータが到着した時チェックする。タグがパラメータすべてが準備完了してい ることを示していれば、命令は実行のために発送される(「発動される」)。そ うでない場合には、新しいパラメータが格納され、そのタグが修正され、次のデ ータ流れモデルメモリのアクセスが始まる。
本発明によるDFM命令レベルのデータ流れ構成には、命令あたり最大一定数の パラメータ(ここに述べるプロセッサでは二つ)が存在することが必要である。
これはデータ流れメモリを、1メモリサイクルで全命令パケットにアクセルする 非常に広いメモリとして構築することができるようにするためである。従って、 命令のパラメータ数を所定数より少なくすることができ、決して多くなることは ない。
本発明の構成は「粘着性(sticky)Jタグの使用により一層少ないパラメ ータで動作させることができる。これらはパラメータが常に準備完了しているこ とを示すタグである。
それ故、一つのパラメータ動作はその一つのパラメータを通常どうり管理し、未 使用パラメータのタグを粘着性となるよう設定する。必要な一つのパラメータが 到着すると命令を発送しく即ち、命令をプロセッサに送る「命令を発動する」と いうことがある)、使用パラメータに対応するりグだけをクリアする。常数値は 全く同じ方法で処理することができる。
タグ付きメモリと関連して対応する実行ユニットがある。
各命令は、そのパラメータが到着すると実行されるが、その実行ユニットに関連 するタグ付きメモリに格納されたまである。従って、動作の結果だけが並列プロ セッサ間に送られる。結果は出力データとして外部ポートに送ることができ、パ ラメータは入力データとして外部ソースから導入することができる。
本発明のこの方法ではパラメータを格納する毎に動作を実行することができる。
多くとも各動作についてrnJ回のパラメータ格納が必要になる。但し、nは命 令あたりのパラメータの数であり、上記の通り、nは本実施例では2に等しい。
「粘着性」タグの使用により命令を発送するのに必要なパラメータ格納の実際の 数が1とnとの間のどこかになる。それ故、プロセッサはすべての動作をメモリ のアクセス速さで処理するが、そのあるものはベクトル機でさえ特別の条件下で しか行うことができない。このことと並列処理へ容易に拡張できることにより、 本構成を非常に高性能のプロセッサで使用することができる。
■、第1の実施例の説明−二重プロセッサノード基本データ流れ処理ノードlO を本発明の第1の実施例に従って第1図に示す。ノードlOには二つの面があり 、第1の面12は浮動小数点演算を行うALU14があり、第2の面IBには浮 動小数点乗算動作を行う乗算器18がある。この細分化により、その機能が二つ のチップ(乗算器及びALU)に分割されている現在利用可能な浮動小数点チッ プの集合体を一層良好に収納することができる。他に、各ノードに二つの相補デ ータ駆動プロセッサが設けられているため、それらの間に専用データ経路を設け ることができ、これによって装置全体の情報伝達帯域が拡がるだけでなく、二つ の機能の間の待ち時間も少なくなる。更に(ALU14及び乗算器18を略同等 に使用すると仮定すれば)各ノードのメモリ帯域幅が2倍になるという利益があ る。一般に、二つのプロセッサ構成は加算の数が乗算の数に略等しい問題に最良 に利用できる。
処理ノードの両面12及び1Bには、それぞれ2o及び22と記した、対応する タグ付きデータ流れメモリがある。メモリ20及び22の動作を以下に説明する が、メモリ20及び22は非常に広くて処理ユニットを稼動させておくのに必要 な高い帯域幅になる。
各メモリ20及び22は多数の個別記憶場所を備えており、各メモリについてそ の一つを、それぞれ24及び26と記して示しである。各記憶場所24または2 Bは、下記項目を格納するための、それぞれ31から89までの記号をつけた9 つの別の区域から構成されている。
区域31は行うべき演算を示す「命令」を格納する。
区域82は演算に必要な第1のパラメータである「パラメータA」を格納する。
区域38は演算に必要な第2のパラメータである「パラメータB」を格納する。
区域34は、演算の結果を格納するための、対応するメモリ内の目的地であって 、結果のコピーをこのメモリに必要としないときの「0」値を備えた「入アドレ ス」を格納する。
区域35は、演算の結果のコピーを格納するための、対応するメモリの外側にあ る目的地であって、コピーが必要でないときの「0」値を備えている「出アドレ ス」を格納する。
区域36は、パラメータAに関連するフラグであり、且つ本発明においては、パ ラメータAが準備未了であるときの「0」値、およびパラメータAが準備完了し ているときの「1」値を備えている「タグA」を格納する。
区域37は、パラメータBに関連するフラグであり、且つ本発明においては、パ ラメータBが準備未了であるときの「0」値、およびパラメータBが準備完了し ているときの「1」値を備えている「タグB」を格納する。
区域38は、動作が発動されているとき値タグAを取るべき「タグ八粘着性」を 格納する。
区域39は、動作が発動されているとき値タグBを取るべき、「タグB粘着性」 を格納する。
各データ流れメモリ24または26は、対応する入力及び出力をも備えているが 、メモリ24に対するものだけについて述べる。メモリ24には外側人力40、 内部FIFO入力42、及びそれぞれメモリ26または24に結合している外部 FIFO入力44の、三つの入力がある。各メモリはまた、上述のように入力4 2に接続されている内部FIFO出力レジスタ4B、他のノード10(図示せず )に接続されている外部FIFO出力レジスタち出力FIFOレジスタを備えて いる。
区域38及び39に固定値が設けられていることで、「粘着性」タグ(設定され たままになっているタグ)を常に準備完了しているパラメータ及びlパラメータ 演算と共に使用することができる。タグA粘着性及びタグB粘着性は、プロセッ サがデータ流れメモリのアクセスあたり1演算もの速さで実行することができる ようにする。タグはパラメータが到着したと検査されるだけであるから、両方を 設定しても1演算ループを生じない。
■、二重プロセッサノードの動作 ノードlOの演算時、パラメータが到着するとそのパラメータに対するアゲが設 定される。次に適切な区域34及び35のタグがチェックされる・いずれかのタ グが0であれば命令は発動されず、次のパラメータアクセスが開始される。
両方のタグが設定されていれば命令が発動され、演算及び両パラメータを実行ユ ニットに送り、入アドレス及び出アドレスを目的地FIFOレジスタ46.48 及び50に送る。次の演算の結果が、戻りアドレスがOでないときのみ戻りアド レスと共に、目的地FIFOレジスタ46.48及び50に書込まれる。
また、出アドレスに接続されている二つのFIFOレジスタ48または50の内 の一つだけに所定の結果が書込まれる。
各サイクル中、データ流れメモリ24及び2Bは、(ラメータをその三つの入力 40.42及び44から読取る。第1の優先権が入力40に接続されている外側 入力に与えられて(する。外部入力が存在しなければ、その関連実行ユニット↓ こより発生された結果を備えているFIFOレジスタが読取られる。そのFIF Oレジスタが空であれば、ノードの他の半分により発生された結果が入っている FIFOレジスタが読取られる。これによりコードのダウンローディングが、中 間結果がプロセッサ間に伝えられる前に確実に完了する。
■1本発明のプログラミング この装置のアセンブリ言語は、従来の装置のものといくつかの点で類似している 。これについて、以下に2.3の例題プログラムを用いて説明する。実施するこ とができる模範的な命令または演算を第1表に示す。
第1表 実施される演算 実行ユニット 簡略記憶記号 関 数 乗算器 MULAB A*B ALU ADDAB A+B SUBAB A−B SUBBA B−A D I VAB A/B SQRTA 4 両者 PASSA A PAS S B B ROUTA 出アドレスとして A、Bを使用する ROUTB 出アドレスとして B、Aを使用する これは可能な演算の部分集合であり、他のものは当業者には明らかであろう。算 術演算は従来のコンビ二一夕と実質上同じであり、従ってこれ以上の説明は必要 ない。PASSA及びPASSBの動作はその未修正入力データをその出力目的 地に送る。ROUTA及びROUTBの動作は命令されたPASSのように働く 。これらはその入力データを変更さずにPASSが行うように送るが、その入力 の一つを目的地として使用する。この動作は、後に説明する反復技法のような多 くの場合に有用である。
アッセンブリ言語の文は、本発明によるシステムに対する形態を備えており、最 大二つのパラメータが存在する。
A/M (C) 演算 パラメータ A パラメータ B ラベル 5TKA  5TKBここでA/Mは演算がALUに属するか乗算器に属するかを示し、 (C)は出力が条件付きであるか否かを示し、演算は、第1表に掲げたもののよ うな、実行することができる命令の一つを表し、 パラメータA及びパラメータBは命令に必要なパラメータであり、 ラベルは演算の結果の名前、即ち識別子であり、5TKAまたはSA及び5TK BまたはSBは「粘着性タグである。
アセンブリ及びリンクに必要な関数は第2表の例をみれば最も良く理解すること ができる。
第2表 アセンブリ言語の例 ^/M −(C)演算−パラメータA−パラメータB−ラベル 一5A−9B例 1: 単一命令 A ADDAB 人力A 入力B (ホスト)00例2: 直線コード A ADDAB 入力A 2.0 人力+2 01M MULAB 入力+2  2.0 人力$201M MULAB 入力零2 人力B (ホスト)00例3 :複数目的地 A ADDAB 入力A 入力B SUMAB OOA ADDAB SUMA B 入力CSUM^BCOOM MULAB SUMAB 入力D D*SUM ^BOOM MULAB SUMAB 4.0 SUM^B*4 0 1例4: 条件付き出力 A CADDAB 入力A 入力B SUMAB(ホスト)00A SUMAB  O,OSUMAB (ホスト ) 1 0例1は実行すべき単一演算を示して いる。動作はプロセッサlOのALU12の半部12に置くべきであり、その二 つのパラメータの和を計算すべきであり、その二つのパラメータの和を計算すべ きである。この二つのパラメータにはこの命令文で与えられる初期値がない(二 つともラベルである。)。計算の結果をホストに伝えるべきである。二つの粘着 性タグのビットはいずれも設定されていないので、二つの引数は変数である。こ の動作の効果は入力A及び入力Bに到着するパラメータを加算し、その結果をホ ストに送ることである。アセンブラプログラムは適切なアドレスを設置して結果 を目的地フィールドにあるホストに送る。
例2は代数方程式(A+B) 本2*Bの単純な直線計算を示す。最初の演算は 2をAに加える。粘着性ビットが第2のパラメータに対して設定され、2.0が 常数であることを示している。第1のパラメータはラベルであり、従って初期設 定されないが、第2のパラメータは数値で、その値を用いて初期設定される。こ の計算の結果、他の演算により参照されるラベルの付いた入力+2が得られる。
第2の演算には第1の演算の結果が必要である。第2の演算はそのパラメータに 常数2.0を乗じ、結果をラベルの付いた入力*2を必要とする演算に送る。再 び粘着性ビットが第2のパラメータに対して設定されている。最後の演算は第2 の演算の結果に他の入力を乗じ、結果をホストに送る。両パラメータとも変数で あるから、粘着性ビットは設定されていない。人手によるプログラミングかまた はアセンブラプログラムが適切なアドレスを設置して結果を一つの命令から次の 命令までパラメータラベルで指示されている方法で伝える。
第3の例は幾つかの他の演算が必要とする結果を発生をする演算を示している。
入力A及び入力Bは加算され、結果を三つの他の演算のそれぞれに送らなけらば ならない。
他の三つの演算は、そのパラメータを使用してそれらの結果を発生し、これが他 の演算に送られる。もう一度適切なアドレスをアセンブラプログラムにより目的 地フィールドに設置しなければならないが、今回は結果をすべての演算に伝える に充分な目的地フィールドが存在しない。アセンブラプログラムはそれ故PAS S動作を使用して、その結果を必要とするすべての演算のパラメータを正確に複 製する。この状況の他の例は付属書のシニミレータ入力コードに見ることができ る。パラメータのこの明白な複製には、パラメータを複製するとき有用な計算が 行われていないので、利用可能な計算用資源の幾らかを消費する。これは、PA SS動作はパラメータの複製に使用するとき発動させることを一回書込み、二つ のパラメータを送出するだけで良く、次のサイクル中に一つまたは二つの命令を 発動するのに充分であるから、最初の見掛けほど費用のかかるものではない。
条件付き出力がある演算を第2表の第4の例に示しす。
計算される関数はA+Bである。(A+B)が0以上であれば、和はホストに送 られる。しかし、(A+B)が0未満であれば、結果はラベルSUMABに伝え られる。第2の命令はこれを0から差引き、和の負数を取り、その結果をホスト に伝える。
条件文を使用して第2図に示すように一部の計算を可能にすることができる。条 件文を決定する二つの入力を第2図の最上部にrAJ及びrBJとして示しであ る・計算に対する入力を左側に「C」及びrDJとして示しである@条件付き演 算が行われ、結果が「0以上」のルート(真またはTの側)かまたは「0未満」 ルート(偽またはFの側)に送られる。次に使用可能の側がその目的地をTのR OUT動作に伝え、ROUT動作はC及びDを適切な演算に送る。
第2図の構成は従来の装置の条件付き分岐に似ている。
この方法では部分的に使用可能な演算は残っていないから、条件付き演算は再使 用することができる。同じ概念を適用して、一方を所要の次の演算に伝え、他方 を存在しない目的地に伝えることにより、二組の演算を条件付きで選択すること ができる。これらの構成は演算を同じ値が安定するまで行わなければならない反 復アルゴリズムに不可欠である。
■、第2の実施例の説明−単一プロセッサノード次に第3図から第9図までを参 照して、本発明の単一プロセッサノードの実施例を説明する。この実施例は、構 成され、動作しているが、必要な加算の数または乗算の数が非常に他より大きい か、または相対的な数が問題中で未知である問題を解くのに一層適している。明 らかにこの実施例は第1図に関して上述した二重プロセッサノードより複雑さが 少なく、費用が安い。第3図にハードウェアシステムの一部であるコンビ二重プ ロセッサノード100のブロック図を示しである。ハードウェアシステムは、必 要な電源を作るのに必要なハードウェア、必要なりロック及び初期接続手順(h and shaking)信号、及び演算制御器への接続、から簡単に構成され ている。ノード100に供給されるシステム信号は、23ビツトのアドレス語( 信号INA)、32ビツトのデータ語(信号IND)、システムクロック信号及 び反転クロック信号(信号SYS CLK及び5YSCLKL) 、システムリ セット信号(信号SYS RESET)、及び書込み許可信号(IN WE)で ある。
ノード100は、第1図のノード10のように、三つの主要構成要素から構成さ れている。即ち、混合データ流れメモリ 102、実行ユニット104、及び複 数のFIFOレジスタである。FIFOレジスタは入力FIFOレジスタtoe 、出力FIFOレジスタ10B、及び内部FIFOレジスタ110を備えている 。
主要構成要素の他に、ノード100は、制御クロック発生器112 (これはシ ステムから多数の信号を受け、多数の内部ノード信号を発生する)、複数の入出 力コネクタ、及び各々に第3図ではそれが運ぶ信号を記しである必要な内部導体 も備えている。
信号に記号を付けるにあたり、下記の取決めが全般的に固守される。文字「R」 は、一般にデータ流れメモリ 102から実行ユニット】υ4までのパイプライ ンの読取り段階におけるデータを表す。文字rWJは、一般に実行ユニット10 4からFIFOレジスタ10B、108、及び110までのパイプラインの書込 み段階に於けるデータを表す。文字rAJ及びrBJは通常、「A」パラメータ 及びrBJパラメータを表し、文字rTJは通常、その対応するパラメータに関 連するタグを表す。入力FIFOレジスタ10Bから発する信号には通常接頭辞 rlNJが付き、出力FIFOレジスタ108から発するものには通常接頭辞r oUTJが付き、内部FIFOレジスタ110から発するものには通常接頭辞r S E L FJが付く。信号の名前の最後の文字がrLJ (fPJえばrR ESETLJ)であれば、その信号は低いとき(即ち「0」のとき)能動である 。最後に、下記添字は通常指示した意味を持っている。rAJはパラメータを引 用しないときは「アドレス」を意味し、rDJはデータを意味する。「EMJは 「空」を意味し、AFULLは「はとんど満杯」を意味し、FLは「満杯」を意 味し、FIFOが空で読むことができないとき、及びほとんど満杯、及び完全に 満杯でそれぞれ書込むことができないとき発生する/%ンドシェーク信号であり 、rWEJは「書込み許可」を意味する。
クロック発生器112は3このクロック式16R8PDL(プログラム式論理装 置)集積回路(IC)チップ(図示せず)から構成されている。これらチップは 三つのノードクロック信萼(CLK PIPE、CLK RAMWE 、及びC LK TAGPLD)を発生するが、これらを第4図に示しである。第4図にお いて、各垂直時間線は半クロツクサイクルを表す。クロック信号CLK PIP Eは主要ノードクロック信号であり、データ流れメモリ 102の中の各種ラッ チをクロックするのに、FIFOレジスタ106、1G!1及cF 110をク ロックするのに、及び実行ユニット104の中の主要構成要素をクロックするの に、それぞれ使用される。
クロック信号CLK TAGPLDは、信号CLK PIPHの逆であり、PL Dによりデータ流れメモリ 102の中のタグメモリ114(第5図)の中のタ グの読取りを時間調整するのに使用される。クロック信号CLK RAMWEは 、半クロツクサイクルだけ遅延する(即ち遅れる、または信号CLK PLDに 関して180度だけ位相がずれている)ことを除けばクロック信号CLK PL Dと同じであり、データ流れメモリ 102でPLDにより、以下に記すメモリ 使用許可信号の発生の時間調整に使用される。これらチップはまた、システムリ セット信号(SYS RESET)に対応するノードリセット信号(RESET )、及びその論理反転リセット信号(RESETL)を発生する。
3個のPLDチップはABLEプログラミングでプログラムされる。これは、他 の会社の中でもデータげOカンパニー社が市販生産しているPLDチップのよう なPLDチップをプログラムするのに使用される周知の言語である。
市場で入手可能なアセンブラは、このコードを使用して、PLD内の溶断可能リ ンクを切断するのに、PLDプログラミングコードでプログラムしている市販で 入手可能なPLDコンビニ−タブログラミング機で使用されるrJEDECJフ ァイルを作製する。
システムクロック信号(SYS CLK)でクロックされる、クロック発生器1 12の第1のPLDは、第2のPLDにより発生される前記のWA I T信号 の有無によりクロック信号CLK PIPE及びCLK TAGPLDを単に作 製する。ABLEプログラミング言語で書かれたこの第1のPLDのプログラム は下記の通りである。
C[にJAGPLD ニー((ICLす^GPLD g CL:PIPE)I( CLす^GPL[l ! ICLKPIPE &賛AIT)j : CLK−PIPE ニー((ICLILTAGPLD & ICLにPIPEI CLK−TAGPLD & ICLに−PIPE & !W`IT)) ; C[に−PIPE1ニー((ICLにTAGPLD龜IC[に−PIPE)番( CLに−TAGPLD & ICLKPIPE & !WAhTI) 。
C[に−PIPE2:=((ICLKTAGPLD&ICLKPIP[川CLK J^GPLD & ;ctK−ptpt & +vAn))@。
CLLP]PE3ニー((ICLKTAGPLD & ICLに−PIPE)t (CLK〜TAGPLD & ICLK−目PE & !−OITS) 。
CLKJ’1PE4ニー[(jCLKTAGPLD&ICLにPIPE)$(C LK−TAGPLD & ICLKPIPE & !WAIs)) 。
C[KPIPE5ニー((ICLKJAGPLD & ICLKPIPE1客( CLK−TAGPLD & ICLK−PIPE g !W`IT)] ; C[に−j’TPE6:−((ICLKTAGPLD ! ICLに−PIPE 田CLK−TAGPLD & ICLKPIPE & !W`IT)) ; 第2のPLDは、同じくシステム信号(SYS CLK)でクロックされるが、 6本のアドレス線(COP4〜0、及びC0P13.12)を復号することによ り信号WA I Tを作製する。これらアドレス線上の信号は究極的には、デー タ流れメモリ 102が発生する他の信号(以下の説明するRVALID)と共 に、実行ユニット104を用いてデータ流れメモリ 102により発生される。
ABLEプログラミング言語で書かれたこの第2のPLDのプログラムは次の通 りである。
CNT3ニー((CべT3 & WAIT) $ tCNTO& CNTl &  CNT2 & WAITI) ;CNT2ニー((CNT28 WAIT)  $ (CNTO& CNTl & CNT2 & WAITII ;CNT1ニ ー((CNTI A IIAIT) $ 1CNTO&ドAITI) :CMT O:@((CNTO& IIAIT) S WAIT) ;賛^ITニー(!( (CM丁1&CNT2&IC0P4&IC0PI&ICOP2gICOP3gC OP12gCOP13S CVALIDI) S ICVALID @ (CN T1&CNT3 & CVALID ! IC0P4 & COPI g IC 0P2 g ICOF23 COI’12 & C0P13)) g (IC0 P12 番IC0P13 : COF2 S COF21COP4))) ; CVALIDニーRVAIJD ; 上記したように、内部クロック発生信号WA I Tはすべてのノードクロック 信号を下記のように凍結することにより被クロック構成要素のすべての時間調整 を停止するのに使用される。信号CLK PIPEを低に保持する。信号CLK  TAGPLDを高に保持する。信号CLK RAMWEを信号CLK TAG PLDの半サイクル後に高に保持する。信号WA I Tの発生及びノードクロ ックの凍結が本発明の実施例で行われるのは/1−ドウエアが全ての構成要素が 必要であるか否かに係わらず各サイクルで使用されるように構成されているから である。代わりに、クロック信号をゲートすることができるが、この構成では、 通常、信号の伝播の遅れを生じ、一層多くのチップを必要として複雑になる。従 って、例えば、サイクルが両ノくラメータA及びBがパラメータAを供給するよ うにアドレスされる一定の命令内のデータを待っている状聾で始まる場合には、 装置の通常動作は命令が発動されないというものである。
しかし、クロックサイクルは実行ユニット104のすべての構成要素へのアクセ スを生じる。これら構成要素は、第8図を参照して以下に述べるように、従来型 の乗算器及び内部モードレジスタを利用するALUI Cから構成されている。
命令が発動されないときこれらのチップがアクセスされと、これらICへのデー タ線及び命令線にゴミが存在することになり、内部モードレジスタに格納されて いるデータが影響を受ける可能性がある。それ故、従来型ICに対するこの影響 を防止するため、命令が発動されないとき、即ち信号RVALIDが偽であると きは必ずクロックサイクルを凍結する。信号RVALIDは、第6図に関して以 下に更に詳細に述べるように、データ流れメモリ 102で発生される。
(以下余白) 第30PLDは反転システムクロック信号SYS CLKLによりクロックされ 、入力としてクロック信号CLKTAGPLD及びシステムリセット信号(SY S RESET)を受ける。この第3のPLDは下記ABLEプログラムに従っ てノードリセット信号RESET、反転リセット信号RESETL、及びクロッ ク氏号CLK RAMWEを発生する。
RESET ニー SYS RESET:RESETLOニー!SYS RES ET。
第4図に相対発生クロック信号を示すが、PLD ICチップの特定のプログラ ミングは特定の浮動小数点演算ICチップ及び回路の他の部分で使用されている その他のICチップによって決まり、比較的簡単である。
FIFOレジスタ108. 108及び110は、各々、複数の、市場で入手可 能なMK4505S先入れ先出しレジスタから構成されてる。これらは、CLK  PIPEクロック信号により供給される書込み許可入力、及びRESET信号 により供給されるリセットを有する1キロバイト×5のバッファレジスタである 。各FIFOレジスタはまた、対応するFL及びAFULLレジスタ満杯及びほ とんど満杯の信号、及びEMLレジスタ空の信号をハンドシェーキング出力とし て同じノードまたは他のノードの他のFIFOレジスタに供給する。
入力FIFOレジスタ1o6ハ、32データビツト(IN Do〜D31)及び 23アドレスビツト(IN AO−A22)を受け、対応する32データビツト (WRLD Do−D31) 及ヒ23アドレスビット(WRLD AO〜A2 2)を発生するICレジスタチップ11個(図示せず)か、ら構成されている。
出力FIFOレジスタ108は、32データビツト(W ANSO〜A N S  31)及び32アドレスビツト(W TBO〜T B 31)を受け、対応す る32データビツト(OUT DO−A31)および32アドレスビツト(OU T AO〜A31)を発生するICレジスタチップ13個から構成されている。
内部FIFOレジスタ110は、82データビツト(W ANSO〜ANS31 )及び23アドレスビツト(W TAO〜T A 22)を受け、対応する32 データビツト(SELF DO〜D 31)及び23アドレスビツト(SELF  AO〜A22)を発生するICレジスタチップ11個から構成されている。
次に第5図を参照して、データ流れメモリ102を説明する。データ流れメモリ  102はプロセッサノード100の「心臓部」であり、4個のメモリ、1個の タグメモリ 114.1個の0PCODEメモリ 11B、1個のパラメータメ モリ 118、及び1個の目標メモリ 120から構成されている。この実施例 ではデータ流れメモリ 120は次のように156ビツト完全プロセッサ語を考 慮している。
0PCODEメモリ 11Bに格納されている24ビツトの0PCODE部、 パラメータメモリ 11Bに格納されている32ビツトのパラメータA1 パラメータメモリ 118に格納されている32ビツトのパラメータB1 タグメモリ114に格納されている1ビツトのタグA1タグメモリ 114に格 納されている1ビツトのタグB1タグメモリ114に格納されている1ビツトの 粘着性タグA1 タグメモリ114に格納されている1ビツトの粘着性タグB1 目標メモリ 120に格納されている32ビツトの目標アドレスA1 目標メモリ 120に格納されている32ビツトの目標アト【lスB。
前述のメモリの他に、データ流れメモリ 102は、データ及びアドレスを入力 FIFOレジスタ10Bまたは内部FIFOレジスタ110から読取るセレクタ 122、及び適切なメモリ書込み許可信号を発生するデコーダ124を備えてい る。
タグメモリ 114は第6図に一層詳細に示しであるが、1ビツト幅のRAM  (読出しアドレスメモリ)4個、即ちタグAを格納する第1のRAM 130. タグBを格納する第2のRAM 192、粘着性タグAを格納する第3のRAM  134、及び粘着性タグBを格納する第4のRAM 13Bから構成されてい るニタグメモリ 114はプログラム可能論理装置、即ちPLD13gも備えて いる。各一つのRAM 130,132.134及び136はセレクタ122に より発生されるアドレスビット3から18まで(信号RADR3〜RA D R 1B)に対するアドレス線を受ける。各RAMの[クロック使用許可j入力(C E)は、接地されているのでメモリは他のデータを供給すること及び書込み信号 が発生したときデータを受取ることが常に可能である。タグA及びタグBのRA M 130及び132は信号CLK PIPEにより使用可能となり、PLD1 3gからデータ入力を受取る。粘着性タグA及びBのRAM 134及び13B は、以下に更に詳細に述べるように、やはりセレクタ122から発生される信号 RDATAからそれぞれデータビット31及び30を受取り、アドレスデコーダ 124(第5図)が発生する信号R0PWRLにより使用可能となる。命令のパ ラメータA及びBの状態はそれぞれRAM 130及び132で維持され、PL D138からの信号によりクロックサイクル毎に読出され、修正され、再書込み される。しかし、粘着性ビットA及びBは、それぞれRAM 134及び13B で維持されているが、セレクタ122により発生される32ビツトのRDATA 語のビット80及び31として外部で発生される。粘着性ビットA及びBは、書 込み信号、信号R0PWRLがアドレスデコーダ124(第5図)により発生さ れると、RAM134及び136に書込まれる。
RAM 130,132.134及び136は、64kX1のSRAMである集 積回路P4C187のような、従来型の、市場で入手可能なメモリで構成するこ とができる。PLDlBgもI 6M4プログラム可能論理装置のような従来型 の市場入手可能な集積回路チップとすることができる。
PLDlBgはクロック信号、信号CLK TAGPL、D。
をクロック発生器112(第3図)から受取る。このチップはまたセレクタ12 2が発生する信号N BVALIDを受取る。最後にPLDlBgは、タグA及 びタグB信号をRAM130及び132から、粘着性タグ信号A及びBをRAM 134及び136から、及びセレクタ122により発生された信号RADRのア ドレス線0から3までを、それぞれ受取る。代わって、PLDlBgは新い)タ グ゛A及びB信号、及び実行ユニット104により使用される信号RVALID 、を発生する。PLDlBgによるこれら信号の発生は次のABLEプログラム に従って行われる。
VALIDOtlTニー((TVALIDIN & !A2 & iAl &  !AO1& TAGB) $ (!A2 ! iAl & `O& VALID INl & TA[、A)) : IAGANE11ニーt+;++A2& At !AOr、 VALI[1IN ) !(VALIDIN & !A2 g iAl & !AO1&!T((V ALIDIN & !A2 & iAl & !AO) &TAGB) I ( (!A2 ! iAl & AO& VALDIN) & TAGA)l) $ (TAGA & !(((vALIDIN g !A2 g iAl & !A O1&1+!A2 & Alg !AO& VALIDIN)) $ (AST K & +((VALIDIN & !A2 & iAl &!AO) & T AGBI書 ((I^2 & iAl & AO& VALIDINJ CTAGA))1)  :TAGBNEWニー((!lA2 & A1!AO& VALIDINl  &(!A2 & iAl & !AO& VALIDINl & !+ffVA LIDIN & !A2 呂!Al !S !AO1&TAGB1客 ([!A2 ! iAl & AO! VALDINI ! TAGA)+)  :(TAGB &r(<(vALlolx & !A2 & iAl & !A OI & TAGB 番((!A2 S jAl & AO& VAIJDIN ))呂TAGA)) & !(!A2 S Alg !AO&VAIDINI  客1BSTK & ++(VALIDIN S !A2 & iAl & !AO1&TAGBl  参((!A2 g iAl & AO& VALIDINl & TAGAI) ]) :メモリ102の残りのメモリ、即ち0PCODEメモリ1113、パラ メータメモリ 118及び目標メモリ 120はかなり従来型のメモリであり、 この実施例では簡単に市場入手可能な集積回路チップcyc i e tから構 成することができる。これらのメモリは14本のアドレス線を受けて1BKX4 ビツトのデータを格納する。すべてのメモリチップへのクロック使用許可入力は 接地されているのでメモリを非同期的に読出すことができる。データは適切な書 込み信号がアドレスデコーダ124により発生されると各種メモリに書込むこと ができる。
0PCODEメモリ 116の場合は、好適作業実施例では、互いに直列に結合 されて24ビツトの出力、即ち信号ROP23〜0PO)を発生する6個のメモ リを備えている。これらメモリはセレクタ122が発生するアドレス信号RAD R3〜ADRIBによりアドレスされる。0PCODEメモリ 11Bに書込ま れるデータはセレクタ122により発生され、信号RDATA23〜DATAO から構成されている。
書込み許可信号、即ち信号R0PWRLは、アドレスデコーダ124により発生 される。
好適実施例のパラメータメモリ118はそれぞれ8チツプのバンク2個からなる 16個の集積回路チップから構成され、1バンクはパラメータA用で他のバンク はパラメータB用である。これらメモリラップは、セレクタ122による発生さ れる信号RADR16〜ADR3によりアドレスされ、データを二つの32ビツ ト語、即ち信号RA31〜AO及びRB81−BOとして発生する。メモリの2 バンクの書込み許可信号はアドレスデコーダ124(第5図)が発生するそれぞ れ信号RAWRL及びRBWRLである。
目標メモリ 120は同様に8メモリチツプづつの2個のバンクに配置された1 6個のメモリチップから構成されている。
このメモリは32ビツトのデータ及び14ビツトのアドレスを、セレクタ122 からそれぞれ信号RDATA31−DATAO及びRADR16〜ADR3とし て受取る。各バンクはアドレスデコーダ124から発生された書込み信号をそれ ぞれ信号RTAWRL及びRTBWRLとして受取る。
目標メモリ 120からのデータ出力は信号RTaB2−TAO及びRTB81 −TBOとして供給される。
データ流れメモリ 102のセレクタ122は、2個の実質上同じラッチバンク (図示せず)から構成され、各バンクはそれぞれ入力FIFOレジスタ10Bか らの情報(信号WRLDA(22〜0)及びWRLD D(32〜0))及び内 部F!FOレジスタ110 (第3図)からの情報(信号5ELF A(22〜 0)及び5ELF D(31〜0))を受取り、格納する。2個のラッチバンク は母線に接続されているメモリを駆動するのに必要な電力を供給するのに使用さ れる。各ラッチバンクはそれぞれFIFOレジスタ10B及び110からのデー タを格納するサブバンクに分割され、各サブバンクは更にアドレス情報を格納す る第1の部分及びデータ情報を格納する第2の部分に細分されている。ラッチは 、以下に記すように、内部デコーダ(図示せず)により発生される信号を用いて 所定の組合わせのラッチを適切に使用可能にすることにより2対1マルチプレク サとして動作する。本発明の作業実施例においては、各ラッチバンクは8ビツト ラツチである54LS374集積回路チップ14個から構成されている。
セレクタ122はまた54LS374集積回路チップのような8ビツトラッチ2 個からなる第2の組合わせを備えている。
これらラッチはそれぞれ対応するアドレス(ビット5ELF A7〜AO及びW RLD A7〜AD)を内部FIFOレジスタ110及び入力FIFOレジスタ 106から受取る。ラッチは信号CLK PIPHによりクロックされ、信号T CA7〜AOを発生する。この信号は別々の経路に沿ってアドレスデコーダ12 4に送られ、バッファのロードを発生するとともに、使用可能とすべき適切なメ モリの選択にあたり非常に重要なタイミングで妨害が生じないようにする。
セレクタ122はまた制御信号を従来通りの仕方で発生するデコーダ(図示せず )を備えている。このデコーダはPLD集積回路チップのような従来型のデコー ダとすることができる0デコーダは3個のFIFOレジスタからl\ンドシェー キング信号を受取る。即ちFIFOレジスタ106からは信号IN EWLを、 出力FIFOレジスタ110からは信号0UTAFULLを、内部FIFOレジ スタ110からは信号5ELF EWL及び5ELF AFULLを受取る。加 えて、デコーダは実行ユニット104(第3図)から信号、即ち信号I 5OL ATEを受取り、信号CLK PIPHによりクロックされる。デコーダからの 出力には信号5ELFENL及びWRLD ENLがあり、ラッチの適切なサブ バンクを使用可能にして、それぞれ内部FIFOレジスタ110または入力FI FOレジスタ106からの情報を格納する。その他、このデコーダはそれぞれP IFo 10B及び110を使用可能にするのに使用される信号5ELF RE 及び信号INREを発生する。最後に、デコーダは、アドレスデコーダ124及 びタグメモリ 114に供給されて、書込み許可信号またはタグ信号の発生を制 御することによりデータがメモリに書込まれないようにする信号N VALID を発生する。
信号N VALIDは、入力及び内部FIFOレジスタ10B及び110 (即 ち、情報を供給するレジスタ)がデータを持っている(即ち、信号IN EML 及び5ELF EMLが高である)とき、出力及び内部FIFOレジスタ10B 及び110(即ち情報を受取るレジスタ)がほとんど満杯でない(即ち信号OU T AFULL及び5ELF AFULLが高である)とき、及び信号l5OL ATEが発生していないとき、真(または高)である。
データ流れメモリ102(第5図)のアドレスデコーダ124は、適切な信号を 発生してFIFOレジスタに受取られた信号を書込むメモリを選択するのに使用 される。本発明の作業実施例においては、アドレスデコーダは従3H?7)16 RJl集積回路PLDチップである。デコーダ124は、クロック発生器112 13図)からクロック用信号、即ち低のとき能動である信号CLK RAMWE を受取り、上述のようにセレクタ122により発生された復号用入力信号N V ALID、及びアドレス信号TA A2〜AOをセレクタ122の上述の別の組 のラッチから受取る。復号された出力は、上述の通り、次の信号の内の一つであ る。0PCODEメモリ 116に送られたR 0PWRL、パラメータメモリ 118に送られた信号RAWRL及びRBWRL、及び目標メモリ12(lに送 られた信号RTAWRL及びRTBWRLである。アドレスデコーダ124の使 用許可線は常に接地されているので復号された信号はクロック信号及び真である N VALIDを受取ると直ちに利用可能である。
アドレスデコーダ124はABLEプログラミング言語で次のようにプログラミ ングされる。
0PvRL−! ((NVALID & CLKRAMWE)&IA2&A1& !An) ;TIWRL−! ((N−VALID & CLKJAMWE)& IA2&AI&AO) ;T2WRL−1((NJ’ALID & CLK−R AMWE)&A2&A1&AO) ;BWRL −1((N VALID &  CLK RAMWE)&fA2& ! AI&A(1) ;実行ユニット104 を、ブロック図の形で、一層詳細に第7図に示す。これに示した通り、実行ユニ ット104は、演算ユニット140、制御ユニット142、アドレス計算器14 4、及びブタ流れメモリ 102から制御ユニット142へ一定の信号を加える のを調整し、遅らせるのに使用されるステージ遅れ146、から構成されている 。ステージ遅れ14Bはまた、第3図の説明に関して上述した通り、クロック発 生器112により待ち信号を発生するのに使用される。ステージ遅れ14Bは従 来型の74LSI74 I Cチップとすることができる8ビツトラツチ(図示 せず)7個から構成されている。これらチップの内の二つは、第5図を参照して 上述したように、0PCODEメモリ 11Bにより発生された信号R0P(2 3〜0)から対応する信号をラッチすることにより信号C0P(3〜4.15〜 12.22〜20)を発生するのに使用される。ステージ遅れ146の8ビツト ラツチの−っは信号C[1及びCB(4〜0)を発生するのに使用される。
残りの四つのラッチは完全32ビツトデ一タ語CA(111〜0)を発生するの に使用される。それぞれの場合において、ラッチはすべてクロック信号CLK  PIPHによりラッチされる。ステージ遅れ14Bにより発生される信号はすべ て演算ユニット140及び制御ユニット142に供給される。
演算ユニット140を第8図に一層詳細に示す。演算ユニット140は三つの主 計算要素、即ち浮動小数点乗算器150、浮動小数点ALU152、及びバレル シフタ154から構成されている。その他に、演算ユニット140はデコーダ1 5G、及びステージ遅れとして使用される信号CLK PIPEでクロックされ るラッチ15Bを備えている。デコーダ15B及びラッチ15Bはそれぞれチッ プ使用許可信号CFNTN(O〜7)及びW FNTN (0〜7)を発生する 。デコーダ15Bのビット2及び3だけがそれぞれALU152及び乗算器15 0を使用可能にするのに利用され、他のビットは将来の拡張用として保持されて いる。同じ理由で、ラッチ158により発生されたビットの内の一つだけが、即 ちビット1がバレルシフタ154により利用される。デコーダ1511iは従来 型の74LS13B I Cチップとすることができ、ラッチ15Bは従来型の 74LS374 I Cチップとできる。
この実施例においては、浮動小数点乗算器150、ALU152、及びバレルシ フタ154はすべて旧来の浮動小数点集積回路チップから構成した。乗算器15 0は1個の821101Cチツプから構成され、ALU152は1個の8212 0ICチツプから構成されている。両チップとも(チップ使用許可信号を除き) 同じ入力を備えており、共通の出力を生じる。
二ツノ場合とも、信号RVALIDj;1rYJ及び「X」の使用許可入力に加 えられる前に反転される。両チップはクロック信号CLK PIPEでクロック され、ノードリセット信号RESETを受取る。上述の通り、乗算器15G及び ALU152はそれぞれデコーダ15Bから供給される信号CFNTN3及びC FNTN2により使用可能となる・また1各チツプの場合、命令は0PCODE メモリ 11B(第5図)により発生される語出力ROPのビット7カラヒツト 0で受取られる。最後に、各チップはパラメータメモリ 118(第5図)によ り発生される信号RA(31〜0)及びRB(31〜0)で表されるrAJ及び rBJパラメータを受取り、32ビツトの出力語W ANSを発生する。その他 に、各チップは動作を表す三つの状態信号、即ち出力なしを表す信号W ANS N、ゼロ出力を表す信号W ANSZ、及び「否j結果を表す信号W ANSN ANを発生する。これら三つの状態発生信号はすべて以下に記すように制御ユニ ット142(第7図)により使用される。
バレルシフタ154は、8ビツトラッチ5個とともに従来の74AS8838バ レルシフタから構成され、4個のラッチは74LS3741 Cチップであり、 エンコーダとして使用される1個は74LS2451 Cチップである。エンコ ーダチップは、バレルシフタから発生される最上位ビット、即ち第31ビツトか ら信号WSNDN (この信号は、応答が否定的であることを意味しており、第 9図に関して以下に更に詳細に説明するように、制御ユニット142により利用 される)を発生し、信号W ANSZ及びW ANSNANに対する低信号を発 生する(これにより、バレルシフタを利用する動作に意味がないため、七口結果 または数でないこと、即ちエラーを表すこれら信号を無効にする)。4mのラッ チはバレルシフタが発生した32ビツトを全て受取り、出力語WANSを発生す る。これはクロック信号CLK PIPEからクロック信号が発生するまで遅れ る。この信号ハエンコーダをクロックするのにも使用される。4個のラッチは・ ラッチ158に関して上述したように、信号W FNTNIにより使用可能とな る。バレルシフタICへの入力はステージ遅れ14B(第7図)により発生され た語COPのビット1及びOと共に語CAの32個のビットである。
従って演算ユニット140の三つの能動構成要素、即ち乗算器150、ALU  152、またはバレルシフタ154により行われる特定の動作は、究極的には0 PCODEメモリ 11Bに格納されており、信号RADRからアドレス線16 〜3により選択される語ROPのビット15から12までにより決まる。
実行ユニット104(第3図)の制御ユニット142(第7図)を第9図に示す 。制御ユニッ) 142は、条件付き演算を行うのに必要な信号を発生し、これ ら信号はどの出力FIFOに書込むのかを制御する。制御ユニット142からは 二つの出力信号だけが発生される。即ち、信号I 5OLATE。
信号W TAWE、及び信号W TBWEである。信号1SOLATEは制御ユ ニット142によりデータ流れメモリ102(第5図)に、更に詳細には、セレ クタ112(第5図)の入力制御PLDに供給される。信号I 5OLATEは 、プロセッサを外部信号から分離し、内部FIFOレジスタ110(第3図)か ら読みだしだけができるようにして処理が中断されないようにするために使用さ れる。
制御ユニット142は多数の入力を受取る。第1に、上述のように、演算ユニッ ト14oノ乗算器150. ALU 152、またはバレルシフタ154のどれ が一つが発生する三つの状態信号を受取る。また信号CLK PIPEを受取る とと共にこれによりクロックされる。制御ユニット142は語COP (7)  ヒー/ト22〜20、語CA及びCBのピッH1% aRop、信号RVAL  I D(7)ヒラ)2+、及びデータ語wTA及びW TBも受取る。出力信号 W TAWE及びW TBWEはそれぞれ内部IFOレジスタ110及び出力F IFOレジスタ108(第3図)の中の各FIFOレジスタを使用可能にするの に使用される。
制御ユニット142ハ四つノPLD 160,162.1B4及(F leBか ら構成されている。PLD160は、好適には、IBRBI Cチップであり、 他の三つのPLDは16R81Cチツプである。
これらPLDはABLEプログラミング言語により次のようにプログラムされる 。
PLD j60: 賀TBOにL −!(!HO& !)11 & !82)寥(+Hz & )1 1 & fNo & +賢A31) 1(!82 & 81 & No & ! 町B51)害()!2 & !81 & !HO! !(&LAllS2ROS  4AllSNEG)) !(82& !Ml & No ! !IJ−ANS NEG) 害(H2881! fNo & !W、ANSZRO) S ()1 2 & 81 & )10 & WANSNAII)))l 。
QAOKL−!(fNo & !?fl & !lf2目(![2g 81 &  fNo & !44311 g(!82 g Hl & No & !W−8 311客(828!tIt & fNo & JANSZRO客−IANsNE G))害(82& !81 & !)10 & W A)IsNEG)) $+ 821i HI & !HO& %ANZRO) 害(82A MI S No  & !1jANSNAII用);HO:〜C0P2O: Hl:菖C0P21 ; M2:麿C0P22; 賛A31 ニーCA31 。
il F131 ニーCB31 。
PLD162: l5OLATE−((R0P238 R−VALID1客Fo、lso日jOP JsOt C0PISO@ lNl5OLATF) :C,oP]sOニーRO P23 & RVALID 。
W−OPISOニーC0PISD。
FOJSOニーILOPIsO; C−シALID:寥R−VALID :[VALIDニーCVALID : PLD 164゜ Trp TAWE−!((W TA31 & ’d−TA30 g W、TA2 9 & W−TA28 & ’d−TA27 kp TA2U S ’d−Tu 51 & PLD 166: W−TBWEl=!(fWT831 g= LIB30 & W−TE29 ! −%TB28 & W−TE27 W TE01 & 1l|TE101 R (1jTB24 & WTB23 & WjB22 W−TE21 & W−T E20 S 4すsic+ g 281g))実行ユニツ) 104の最後の構 成要素、即ちアドレス計算器144(第7図)は、目標アドレスを処理するのに 使用され、主としてROUT命令により使用される。好適実施例においては、ア ドレス計算器144は上述のチップ82120のような浮動小数点演算論理ユニ ット即ちALU (図示せず)2個から構成される。各チップは、入力としてそ れぞれAパラメータ及び目標AアドレスまたはBパラメータ及び目標Bアドレス を利用して32ビツトの出力語(それぞれ信号W TAまたは信号W TB)を 発生する。適切なALUがTAROPからのビット16または語ROPのビット 18により使用可能とされる。こうしてROUT A命令またはROUT B命 令を処理し、適切な出力アドレスを計算することができる。インバータはB21 20A L Uチップの入力CIEi、 DIS、E16及びE17に加える反 転信号R0P16または18を発生するのに使用され、非反転信号が入力G15 に加えられる。上述の通り、これら命令は指定されたパラメータ(即ち、ROU T A命令に対するパラメータrAJ)に対する横断(pass throug h)を行い、他のパラメータを使用して相対目的地アドレス、アドレス計算器1 44を構成する二つのALUの内の適切な一つにより計算されている実際のアド レスを運ぶ。この実施例ではALUチップを利用しているが、真に必要なのは、 アドレス計算器の唯一の機能が適切な戻りアドレス(即ち、W TAまたはWT B)を選択することである場合、32ビツトの2対1マルチプレクサ2個だけで ある。しかし、前記の通り、ALUチップを使用すれば、目的地アドレスに対し て目標またはパラメータを使用できるというように、ある場合に一層多くの柔軟 性が得られる。従って、相対的アドレッシングを行うことができる。例えば、R OUT A命令において、rAJALUを使用不能にし、rBJ ALUを使用 可能にすることができる。
アドレス計算器144の出力は、上述のように、信号WTA及びW TBである 。信号W TAは入力として内部FIFOレジスタ110に送られ、信号W T Bは入力トシて出力FIFOレジスタ108(第3図)に送られる。また上述の ように、使用可能である特定のFIFOレジスタは、制御ユニツ)142(第7 図及び第9図)による信号W TAWE及びW TBWEの発生によって決まる 。使用可能信号が発生スルことの判断基準の一つは、アドレス情報が有効である ことである。PLDIB4及び166(第9図)はアドレス計算器144からの 上位14アドレスビツト(それぞれ、ビットWTA(18〜31)及びビットW TB(18〜31))を受取り、すべてが1であるか試験、し、1であることを 検出すれば、FIFO使用可能信号の発生を禁止する。例えば、命令が発動準備 未了であれば、アドレス計算器からの出力はゴミであって、適切なFIFOレジ スタ108または110の一つに書込まれる代わりにシステムを通してクロック される。
プロセッサ100について記してきたので、156ビツトの完全なプロセッサ命 令の24ビツトオブコ一ド部分の機構を説明することができる。命令のオブコー ド部分には実行ユニット104及びクロック発生器112の構成要素により利用 されるコードが含まれている。語の最下位ビット(L S B)端から始めて、 最初の8ビツト、ビットROP(7〜0)は、実行ユニット104(第3図)の 演算ユニット140(第7図)の浮動小数点演算機150及び浮動小数点ALU I52(第8図)の命令に使用される。その他、ビットR0P(4〜0)はステ ージ遅れ146(第7図)にラッチされ、後に規定時間になると、ビットC0P (4〜1)は信号WAIT(第4図を参照)を発生するクロック発生器112( 第3図)を構成するPLDの一つで使用される。その他に、信号c 0P(1〜 0)はバレルシフタにより回転の方向を設定するのに使用される。次の四つのビ ット、ピッ)ROP(11〜8)は予備であって、本発明では使用されない。次 の四つのビット、ビットROP(15〜12)は、ステージ遅れ146(第7図 )にラッチされ、後に規定時間になるとビットC0P(15〜12)として現れ る。ビットC0P15はデコーダ156(第8図)を使用可能にするのに使用さ れ、ビットC0P(14〜12)は復号すべきデコーダ156への三つの入力で ある。復号されるビットは信号CFNTN (7〜0)であり、その内の三つ、 CFNTN (3〜1)は直接または最初にラッチされてから、浮動小数点乗算 器150、浮動小数点ALU、及びバレルシフタ154の内の一つだけを使用可 能にするのに使用される。
その他に、ビットC0P(13〜12)は、ビットC0P(4〜1)と共にクロ ック発生器112で使用される。ピッ)ROP(19〜16)はアドレス計算器 144(第7図)に対する命令として使用される。実際には、この実施例では、 ビットR0P17及びR0P19は使用されず、とットROP1B及びR0Pl Bはそれぞれ、アドレス計算器144を構成する二つのALU (図示せず)の それぞれ一つに単一の「整数加算」命令を押付けるのに使用される。ビットRO P (22〜20)はステージ遅れ146(第7図)にラッチされ、後に規定時 間になると、ビットC0P(22〜20)として現れ、これはPLD180で信 号W TAOKL及びW TBOKLを発生するのに使用される。これら信号は 、今度は、それぞれ出力FIFOレジスタ108または内部FIFOレジスタ1 10(第3図)を使用可能にする信号WTAWE及びW TBWEを発生するの に使用される。最後に、ビットR0P23は孤立ビットであって、制御ユニット 142(第7図)のPLD162(第9図)における信号RVALIDと共に信 号I 5OLATEを発生スルノニ使用される。
この実施例は特定の場合に対してかなりな柔軟性を付与するために浮動小数点加 算器を使用しているが、アドレス計算器144に必要なのは32ビツトの2対1 マルチプレクサ2個である。
1プロセツサノードの実施例についての以上の説明は、単一ノードについて述べ ている。代わりに、ノ\−ドウエアシステムを複数の同じノード100及び制御 用システムコンピュータから構成することもでき、これにおいてノードの構成は 従来通りである。
■、模擬演算結果 上述の基本ノード構成を機能レベル(プロセッサを構成するのに必要なMSI、 LSI及びVLSI集積回路に対応する)での模擬も行った。シュミレータはC 言語で書かれている。プロセッサを一度に1クロツクサイクル模擬する。こうし て実施ハードウェアの性能を模擬性能と実施ノ1−ドウエアの最小クロックサイ クルから計算することができる。
シュミレータを用いて実行した幾つかの簡単なプログラム及びその結果を本発明 に必要な低レベルコードの例として添付書Bに示す。添付書8. 1では、簡単 なALUの動作をコード化するアセンブリ言語を数列「1」、「1」、「2」、 「3」、及び「4」の加算について示した。最終的な答えをホスト即ちシステム コンピュータの記憶場所30001に格納する。コード化は文に関する上述の要 求事項を守っている。要約すれば、これらは第1行に対して次のようになる。
「a 1]は演算が行われていること及びこれがコード化の第1行であることを 意味する。rADDABJは加算A+Bを表す命令文である。
「1」はパラメータAである。
「1」はパラメータBである。
「18」は結果のラベルであり、第4行にあるような、0はラベルが割当てられ ていないことを表す。
「0」はホストアドレスへの影響がないことを表す@「0」は粘着性ビットAで あり、このAパラメータは常数である間は再び使用されないから設定されていな いことを表す。
「1」は粘着性ビットAであり、命令がパラメータメモリの記憶場所がアドレス されれば直ぐに発動されるべきことを表す。
添付書8. 2及び8. 3は比較的簡単であって、説明を加える必要はない。
添付書8.4は1回反復の条件付き実行の引数及び演算を実証している。数1を 数−20に順次加え、この結果を結果が0になるまでホストアドレス2000に 格納し、以後はホストアドレス3000に格納する。仮の結果に「18」のラベ ルを付け、「B」パラメータがAパラメータに順次加えられている常数であるか ら、B粘着性ビットを設定する。装置の性能に更によくアクセルするため幾つか の更に困難な問題をも模擬した。これらには、添付書Aに示した3次元PIC( セル内の粒子: partiele in cell)の粒子押し部分、添付書 Cに示した5in(x)の計算、及び添付書りに示したポアッソンの方程式の順 次緩和解がある。シュミレータに対する問題のコード化はまったく人手で行い、 数時間かかったが、アセンブラ/リンカ(I jnker)を使用することがで きる。
粒子押しは本発明により解くことができる直線コードを使用する問題の例である が、このコードによる模擬性能は単一プロセッサノードに関する単一粒子に対し て12.6 MFLoPであった。単一粒子に関する単一ノードの性能は、この 計算における膨大な「泡(bubble) J−プロセッサノードの半分にしか 実行準備の整った命令が存在しない場所−により低下する。プログラムを変更し てこれらの泡に他の粒子に関する動作を詰め、全体の処理量を増加することがで きた。独立に押される数百刃の粒子が存在するので、本発明による単一プロセッ サノードは、問題の全体粒子押し段階に関してほとんどその最大処理量40FL OPに耐えるはずである。問題に存在する大量の並列処理も大量並列処理の理想 的な候補対象となっている。しかし、この問題は良好にベクトル化しないので、 これを従来のスーパーコンピュータで行うのはあまり能率が良くない。例えば、 クレイの翔P−4/1Bは25MFLOP以下に制限される。このようなデータ 駆動プロセッサは比較的低価格で且つ明らかに拡張性があるので、このような多 数のプロセッサをこの問題に固有の大量並列処理を利用するのに使用することが できる。
5in(x)の計算は先に説明した直線計算の一層困難な例である。使用する直 列拡張には幾らかの並列性があり、計算は数個のプロセッサ間に分散することが できる。
ポアッソンの方程式の順次緩和解(添付書D)は本発明の構成で反復法をどう使 用することができるかを示している。解いた問題を第10図に示す。基本的には 、この問題は境界に沿うパラメータ(例えば温度)すなわちパラメータ11〜I 8を知り、内部パラメータA、B、C及びDの値をめることからなる。初期条件 によって境界パラメータには値が割当られており、内部パラメータは0であると 仮定している。問題を時間反復の間に全変化の10−16以内に収束するように 模擬した。内部パラメータの値を「答」(第1O図)に示す。単一プロセッサで は、プロセッサが約298IPに耐えて55回の繰返を要した。散布能力の限ら れた並列プロセッサを利用する本発明の実施により、問題が明白な重複を多数含 んでいるため、この問題の解法の能力が向上する。
本発明のデータ流れプロセッサの命令発動の割合は、可変オペランド(粘着性タ グなし)の固定オペランド(粘着性タグ)に対する比により、2メモリアクセス 毎に1命令とアクセス毎に1命令との間で変えることができる。現在入手できる CMOSメモリで作られたDFMプロセッサはそれ故20と40 HIP (毎 秒百方命令)との間の持続性能を生じることになる。パラメータの明白な重複を 必要としない問題は20と40MFLOPとの間の性能を示すが、明白な重複が 必要なものはパラメータを複製するに必要な命令によりこれが劣化する。この構 成により作られた並列プロセッサはプロセッサ間通信を行って(各ノードにプロ セッサ間で伝えられたままのパラメータのコピーを使用させることにより)パラ メータを複製することができる。
上述のDFM構成では命令は本質的に実行ユニットに結合されてそのメモリ内に あり、ロードの釣合いを幾分複雑にしている。(パラメータだけでなく)命令パ ケット全体を伝達し、分配させることは可能であるが、このような伝違は情報伝 達帯域幅を高めるという要件を相殺する。めいれいをプロセッサ間で理性的に分 配することにより、負荷ヲ良好に釣合わせておくことができる。DFMプロセッ サ構成においての多少の費用増大だけで命令を再配分することができる。動作ば かりでなくパラメータもデータ流れメモリに伝えることができるからである。動 作はタグなしパラメータのように処理される。
本発明のデータ流れプロセッサノードを共に使用する特定のネットワークトポロ ジーは、相互接続により導入される待ち時間を償うに十分な並列性が存在する限 り達成される処理量への影響はほとんどないはずである。データ駆動処理により 利用される並列処理が加わってこれら待ち時間を隠すのに役立つ。スイッチング ネットワークは実際にどんな形態、2進n立方体、リング状、メツシュ状、トリ ー(tree)状、あるいはこれらの組合わせを採ることもできる。
しかし、相互接続ネットワークは結果に、または問題を解くのに必要なコードに は影響しない。ホストコンピュータはデータ流れ並列プロセッサに対する前置プ ロセッサとして使用することができる。このようなホストとの通信は、パラメー タの転送及びホストと並列プロセッサとの間の関連目的地とから構成される。出 力パラメータ及び目的地も直接グラフィックスインターフェースまたは他の出力 装置に伝えることができる。入力は同様に大量格納所、通信リンクまたは他の装 置から直接数ることができ、これにより別個のホストの必要性が除かれる。この ような孤立データ流れ並列プロセッサは、なお直面すべき多数の研究問題を具合 よく解決しなければならない。
次に第11図を参照する。この図は別個の専用メモリ200を使用するROUT 命令を使用するアレイの流れ図である。
第11図はまたデータをアレイ202として、入力の一つを目的地アドレスとし て使用してアレイ内の要素(この例では20L208,210,212,214 及び216)に独立に且つランダムにアクセスするメモリ200に、いかにして 格納することができるかも実証している。アレイデータは第1のバレメータとし てROUT命令に格納される。計算に特定のアレイ値が必要なときは、データの 記憶場所を計算しく従来の装置におけるアドレスの計算と同じ)、データを必要 とする演算のアドレスをROUTの第2のパレメータに送る。ROUT命令が発 動され、アレイデータを戻りアドレスに送る。
アレイデータを再使用することがある場合には、タグを粘着性に設定する。次の 要求(戻りアドレス)が送られるとROUT命令が再び発動される。アレイの格 納及び利用をするこのモデルは計算駆動モデルに適合しているので、データ流れ 処理の性能利益が維持されると共にハイブリッド構成に関連する問題が回避され る。
このようなアレイ格納部が特殊なメモリボードとして設けられている場合には、 DFMプロセッサノードの全メモリは、第2のパラメータ及び命令の格納装置の ため浪費されることはなくなる。このような特殊ボードでは1.ボードにそのた めの機能があるので、ROUT命令または第2のパラメータのためのメモリを利 用する必要がないからである。それ故メモリボードは従来のプロセッサのメモリ ボードと非常に良く似ている。このようにして、アレイはメモリを浪費すること なく格納することができ、上述のデータ駆動動作により従来通りにアクセスする ことができる。
本発明に関し、その典型的な実施例について説明してきたが、当業者が本発明の 範囲及び技術思想の範囲内で変形及び修正を行うことができることは勿論である 。
A、セル粒子押出し内の粒子 ax MULAB P3B BI P3BBl o。
m MUL人l3PII3 I33 PII3r33 0Qm MULAB F IB B2 PIBB2 00m MULAB FIB BI P2BBl 0 0m MULAB PICI F2 、 PIC200m MULAB P2C I F2 P2O100口 MULAB P3CI F2 P2O300m M ULAB PINEW PINEW PINEWSQ 0 0m MULAB  P2NE’llV P2NEW P2NEWSQ O0rlQ MULAB P 3NEW P3NEW P3NEWSQ 0 0m MULAB PINEW  0M人 VINEW OOrs MULAB P2NEW Ghi人 V2NE W OOrn ’に一4UL人B P3NEW G51A V3NEW OOD  MULAB DT VINEW DELT人1 00m MULAB DT  V2NEV、’ DELT人2 00m MULAB DT V3NEW DE LTA3 00口 MULλBBI BI BISQ 00a DrVAB 人 2NUM 人2DES AB2 0 0h DrVAB FONUM FODE N FO00a DrVAB 3.OeB GM人DEN GM人 10a D rVAB F:2NUM F2DEN F2 00λ 人DD人B PIASQ  P2人sq l5sqp人5QOOλ 人DD人B ISMP人SQ PZ人 SQ SMP人5QOOλ 人DDAB SMP人SQ 0.9e16 人2D EN2 0 1a ADDAB 5BB2SQ 5BB2FRFil 00λ  人DD人BF11 1 F12 01λ ADDAB B I S Q B l  !S Q I S Uh 4 B S Q ○ 0λ 人DDAB ISUM BSQ B55Q SU:’、iBS:Q OOa ADDAB F2DENl  l F2DEN O1λ 人DDAB PIOLD FOEI F1人 OD 八 人DD人B P20LD FOE2 F2人 00a 人DD人B P30 LD FOE3 F3人 OOa 5UBAB P2人B3p3人B2 PIB I OOa 人DD人B F1人 FIB2 FIB OOL SUB人B P 3λBI P1人B3 P2B1 0 0L ADDAB P2B2 F2人  p2B OOA SUB人B PI人B’2 p =人BI P3E31 o  01 人DD人I3 I’3A r’3I32 P3D 00a 5UBAB  P2BB3 P3BB2 PICI OOL 5UBAB P3BBI PIB B3 P2O100& SUB人B PIBB2 P2BBI P3O100a  人DD人B PIλ PIC2PICOOa 人DD人B F2人 P2O2 P2OOOa 人Dr1人B F3人 P2O3P2OC’ 0器 人DD人D  PICFOEI PINEW OOL 人DD人B P2OFOE2 P2N EV、’ 0 0λ 人DDAB P2OFOE3 F3%E〜V OOB 見 本コード B、工ALUの演算 mi:((x十〇+2) +3 = 30000. (((1+1) +2)  +3) +4−30001シユミレータ出カニ ホスト出力adr寞30000. par+++ 7.000000ホスト出力 adrg 30001. phrw 11.000000E、2 乗算器の演算 ・ yx、 Q : ((1ml)−2)傘3−30000. (((1−1)−2 )m3)虐4−30001シユミレータ出カニ ホスト出力ad= 30000. par−6,ω■■ホス)出力acLrC3 000ユ、 p*ニー 24.000αカB・3ALU及び乗算器の演算 al ADDAB 1 1 18 10 01ホスト出力adr−20000, phrw 2.oocpoo。
ホスト出力adrs 20001. phrw 8.000000ホスト出力  adrt 30000. pt=7.00001:カホスト出力adrt 30 001. pt= 11.000000sLlu 0.500000フロツプ/ パラメ一タアクセス乗 算 器 o、5ooOOo フロップ/パラメータアク セス]3.4反復 関数1=−20.出カi + 1−=2000 i≧0まで、従って出カi→3 0000シュミレータ出力、: ホスト出力acirg 20000. pirg −!8.000000ホスト 出力td=−20000,ph== −5,000000ホスト出力adr=  20000. pe−r−−4,CK◇αカホスト出力 a!=−30000, pirg O,0OCKX刀Llu 0.950820フロツプ/パラメ一タア クセス乗 算 器 0・ooocPx フロップ/パラメータアクセスB、5  条件イ寸きi寅算 関数: l X + 3’ l = 30000.第1の事@X=4.y=16 .第2の事例ゝ=4・N I CADDAB4 16 19 ZCfAOOOa  2 SUBλB Oi19: 0 30000 1 0シユミレータ出カニ ホスト出力adrm 3(10GO,phr−:O,0OOOC0ユlu O, 500000フロップ/パラメータアクセス乗 算 器’ 0.8 70ツ7/ パラメ一タアクセス事例2 : a I CADDAB 4 −14 19 30000 0 0& 2 SUB 人B O119] 0 3000010シユミレータ出力 : ホスト出力adr!30000. pars 10CC◇Caalu O,50 0000フロップ/パラメータアクセス乗 算 器 O−ωωXフロップ/パラ メータアクセスC,’ si rx (x )の計算 mMIJL人B X X X2 00 m MUL人BX X2 X3 00 m MUL人BX3 X2 X5 o。
m MTJLAB X5 X2 X7 0 0m MULAB X7 X2 X 9 0 0m MTJLAB X9 X2 Xll OOm MULAB XI I X2 X13 0 Oa DrV人BX3 3! X3F 01a D■人 BX5 5! X5F 01a DrVAB X7 7i X7F 01a D rVAB X9 9! X9F O1a DrVAB Xll 11! XII F O1a DrVAB X13 13! X13F Ola 5UBB人 X 3F X5F X35F OOa 5UBBA X7F X9F X79F O Oa 5UBB人 XIIF X13F X1113F OOh ADDAB  X35F X79F X3579F OOλ ADDAB X3579F X1 113F ALLF OO為 人DD人BX 人LLF 20000 0 0D  用頁 次 緩 和 m PASSA rrER41,05TEPct 0 1!L PASSA 0 ANEW 5TEPa DESTA 00& PASSA 0BNE’lrV  5TEPb DESTB OOa PASSA CCNEW 5TEPc DE STCOOa PASSA QDNEW 5TEPd DESTD OO2L  P人SS人 0INCRct 5TEPct DESTct OOλ 人DDA B INCRct 1.0 NEWct O1m ROUTA ANEW DE STA O,000m ROUTA BNEW DESTB O,000!!l  ROUTA CNEW DESTCO,000m ROUTA NEWct  DESTct O,000* PASSA 人−1,0AOLD/AI O1m  PASSA 人1 1.0 人27人4BO1m PASSA 人2 1.0  人4CO1λ P人SS人 B 1.0 BOLD/Bl 01m PASS A Bl 1.0 B27B4人 O1mP人SS人 B2 1.0 B4D  Oiλ P人SS人 C1,0C0LD/C101mP人SS人 CI 1.0  C27C4人 01mP人SSA C21,OC4D 01m PASSA  D2 1.0 D4CO1FI6.4 データ、戻りアドレス F/θj1 国際調査報告

Claims (1)

  1. 【特許請求の範囲】 1.外部ソースとの情報伝達が可能な少なくとも一つのプロセッサノードを応え たデータ流れ装置であって、前記プロセッサノードが、 プロセッサと、 前記プロセッサとは別のタグ付きデータ流れメモリとを有し、前記メモリは複数 の記憶場所を有し、各記憶場所は命令を入れることができ且つ複数のアドレス可 能な格納区域を有し、前記格納区域は、 その第1の部分に少なくとも第1のデータパラメータを格納するための第1の区 域, 演算指示子を格納するための第2の区域,及び前記各パラメータ区域部に関連す るフラグを格納するための第3の区域を含み、前記フラグは、前記パラメータ区 域部に前記パラメータが存在することを表す状態を有しており、 更に、記憶場所にある前記フラグの状態を判定し、所定のフラグ状態を検出すれ ばそこに格納されている命令を発動させるための、前記メモリと関連した手段を 有してなるデータ流れ装置。 2.前記データ流れメモリが、前記パラメータ区域に第2のデータパラメータを 格納するための第2の部分を更に備えており、そしてこれにまり前記第2のパラ メータ区域部分に関連した第2のフラグも前記第3のフラグ区域が格納し、また 前記第2のフラグは、前記第2のパラメータが前記第2のパラメータ区域部分に 存在することを表す状態をしている請求項1記載のデータ流れ装置。 8.各パラメータ区域部分がアドレス可能であり、前記第3のフラグ区域がフラ グの数と同数の一以上の部分からなり、前記各フラグ区域部分がアドレス可能で 且つ一つのフラグを格納するものである請求項2記載のデータ流れ装置。 4.前記記憶場所が、前記第1のパラメータに関連した粘着性タグを格納する区 域を更に備え、前記タグにより前記パラメータが常に準備が整っていることを表 す状態に設定でき、また前記判定手段が、前記粘着性タグの状態を判定するため のものである請求項1記載のデータ流れ装置。 5.前記各記憶場所は対応する複数のパラメータ及び関連するフラグとタグを格 納するための固定された,所定数の区域を備えており、 前記判定手段は記憶場所にある各フラグ及びタグの状態を判定しまた前記判定状 態がすべて所定値のものであるとき、前記記憶場所の内容の少なくとも一部を出 力する、請求項4記載のデータ流れ装置。 6.更に外部ソースにそれぞれ接続されている入力ポート及び出力ポートと、 前記入力ポートからデータを受取るように接続され、前記データを前記メモリに 渡すように接続されている第1のFIFOレジスタと、 前記プロセッサからデータを受取るように接続され、前記データを前記出力ポー トに渡すように接続されている第2のFIFOレジスタとを更に備えている請求 項1記載のデータ流れ装置。 7.前記プロセッサノードが第2の入力ポートを障え、また前記第3の入力ポー トに出力を供給するように接続されている別のプロセッサと、 前記別のプロセッサとは別のものであって、データパラメータを格納する第1の 区域,演算指示子を格納する第2の区域,及び前記パラメータに関連するフラグ を格納する第3の区域を含む複数の格納区域を備え、そのパラメータが準備完了 であることを表す状態を備えている別のタグ付きデータ流れメモリと、 他のプロセッサノードからの入力を受取るための第1の別の入力ポート,前記別 のプロセッサからの入力を受取るための第2の別の入力ポート,及び前記最初に 述べたプロセッサからの出力を受取るための第3の別の入力ポートを備えている 、前記別のメモリヘの複数の別のデータ入力ポートを備えている請求項6記載の データ流れ装置。 8.前記プロセッサ及び前記別のプロセッサは一方がALUで、他方が乗算ユニ ットである請求項7記載のデータ流れ装置。 9.前記プロセッサからのデータを受取るように接続され、前記データを前記メ モリに渡すように接続されている第3のFIFOレジスタを更に応えている請求 項6記載のデータ流れ装置。 10.前記プロセッサが、並列に接続された乗算ユニット及びALUと、前記乗 算ユニット及び前記ALUの一つだけをどんな特定の時刻にも使用可能にする手 段とを有している請求項9記載のデータ流れ装置。 11.前記メモリは、前記プロセッサからの出力を格納する目標アドレスを提供 するのに使用される情報を格納するための第4の区域を更に応えている請求項1 記載のデータ流れ装置。 12.前記アドレス可能な格納区域の一つに選択的にアドレスするためのセレク タ手段を更に応えている請求項1記載のデータ流れ装置。 13.外部ソースにそれぞれ接続された入力ポート及び出力ポートと、 前記入力ポートからのデータを受取るように接続され、また前記データを前記メ モリに渡すように接続されている第1のFIFOレジスタと、 前記プロセッサからのデータを受取るように接続され、また前記データを前記出 力ポートに渡すように接続されている第2のFIFOレジスタを更に備えている 請求項12記載のデータ流れ装置。 14.前記プロセッサからのデータを受取るように接続され、また前記データを 前記メモリに渡すように接続されている第3のFIFOレジスタを更に備えてい る請求項13記載のデータ流れ装置。 15.前記記憶場所は前記第1のパラメータに関連する粘着性タグを格納する区 域を更に備えており、前記タグにより前記パラメータが常に準備完了しているこ とを表す状態に設定でき、また前記判定手段が前記粘着性タグの状態を判定する ためのものでもある請求項14記載のデータ流れ装置。 16.外部ソースとの情報伝達が可能な少なくとも一つのプロセッサノードを備 えたデータ流れ装置であって、前記プロセッサノードが、 プロセッサと、 前記プロセッとは別のデータ流れメモリとを有し、前記メモリは複数の記憶場所 を有し、各記憶場所は命令を入れることができる且つ複数のアドレス可能な格納 区域を有し、前記格納区域は、 それぞれ第1のデータパラメータ及び第2のデータパラメータを格納する第1及 び第2のポートを有する第1の区域、及び 演算指示子を格納するための第2の区域を有しており、更に、前記第1及び第2 のデータパラメータの存在を判定し、前記存在を検出するとそこに格納されてい る命令を発動するための、前記メモリと関連した手段を有してなるデータ流れ装 置。
JP1508090A 1988-07-22 1989-07-18 データ駆動式計算用のデータ流れ装置 Pending JPH03500461A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US22313388A 1988-07-22 1988-07-22
US223,133 1988-07-22

Publications (1)

Publication Number Publication Date
JPH03500461A true JPH03500461A (ja) 1991-01-31

Family

ID=22835178

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1508090A Pending JPH03500461A (ja) 1988-07-22 1989-07-18 データ駆動式計算用のデータ流れ装置

Country Status (3)

Country Link
US (3) US5465368A (ja)
JP (1) JPH03500461A (ja)
WO (1) WO1990001192A1 (ja)

Families Citing this family (115)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1990001192A1 (en) * 1988-07-22 1990-02-08 United States Department Of Energy Data flow machine for data driven computing
FR2704663B1 (fr) * 1993-04-29 1995-06-23 Sgs Thomson Microelectronics Procédé et dispositif de détermination de la composition d'un circuit intégré.
US5574847A (en) * 1993-09-29 1996-11-12 Evans & Sutherland Computer Corporation Computer graphics parallel system with temporal priority
JP3322754B2 (ja) * 1994-05-17 2002-09-09 富士通株式会社 並列計算機
US5801714A (en) * 1995-05-01 1998-09-01 Intergraph Corporation Vertex list management system
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
EP0877985B1 (en) * 1996-11-04 2000-03-01 Koninklijke Philips Electronics N.V. Signal processing device, using more than one processing element
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
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
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
US5937168A (en) * 1997-05-30 1999-08-10 Bellsouth Corporation Routing information within an adaptive routing architecture of an information retrieval system
US6009511A (en) * 1997-06-11 1999-12-28 Advanced Micro Devices, Inc. Apparatus and method for tagging floating point operands and results for rapid detection of special floating point numbers
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
US6075935A (en) * 1997-12-01 2000-06-13 Improv Systems, Inc. Method of generating application specific integrated circuits using a programmable hardware architecture
WO1999030230A1 (en) * 1997-12-12 1999-06-17 Cacheon, L.L.C. Naturally parallel computing system and method
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
WO2002013000A2 (de) 2000-06-13 2002-02-14 Pact Informationstechnologie Gmbh Pipeline ct-protokolle und -kommunikation
DE10081643D2 (de) 1999-06-10 2002-05-29 Pact Inf Tech Gmbh Sequenz-Partitionierung auf Zellstrukturen
US6510434B1 (en) 1999-12-29 2003-01-21 Bellsouth Intellectual Property Corporation System and method for retrieving information from a database using an index of XML tags and metafiles
WO2001069372A2 (en) * 2000-03-10 2001-09-20 Koninklijke Philips Electronics N.V. Method for compiling a program
EP1299811A2 (en) * 2000-06-13 2003-04-09 Synergestic Computing Systems APS Synergetic computing system
CN1154060C (zh) * 2000-07-18 2004-06-16 徐肇昌 一种基于分布结构的并行模块结构及并行处理方法
AU2002220600A1 (en) * 2000-10-06 2002-04-15 Pact Informationstechnologie Gmbh Cell system with segmented intermediate cell structure
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
WO2005045692A2 (en) 2003-08-28 2005-05-19 Pact Xpp Technologies Ag Data processing device and method
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
US7752419B1 (en) 2001-03-22 2010-07-06 Qst Holdings, Llc Method and system for managing hardware resources to implement system functions using an adaptive computing architecture
US6836839B2 (en) 2001-03-22 2004-12-28 Quicksilver Technology, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US7653710B2 (en) 2002-06-25 2010-01-26 Qst Holdings, Llc. Hardware task manager
US20040133745A1 (en) 2002-10-28 2004-07-08 Quicksilver Technology, Inc. Adaptable datapath for a digital processing system
US7962716B2 (en) 2001-03-22 2011-06-14 Qst Holdings, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US6577678B2 (en) 2001-05-08 2003-06-10 Quicksilver Technology Method and system for reconfigurable channel coding
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
CA2360712A1 (en) * 2001-10-31 2003-04-30 Sicon Video Corporation Method and apparatus for the data-driven synchronous parallel processing of digital data
US7046635B2 (en) 2001-11-28 2006-05-16 Quicksilver Technology, Inc. System for authorizing functionality in adaptable hardware devices
US6986021B2 (en) 2001-11-30 2006-01-10 Quick Silver Technology, Inc. Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements
US8412915B2 (en) 2001-11-30 2013-04-02 Altera Corporation Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements
US7215701B2 (en) 2001-12-12 2007-05-08 Sharad Sambhwani Low I/O bandwidth method and system for implementing detection and identification of scrambling codes
US7403981B2 (en) 2002-01-04 2008-07-22 Quicksilver Technology, Inc. Apparatus and method for adaptive multimedia reception and transmission in communication environments
EP1483682A2 (de) 2002-01-19 2004-12-08 PACT XPP Technologies AG Reconfigurierbarer prozessor
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US6732354B2 (en) * 2002-04-23 2004-05-04 Quicksilver Technology, Inc. Method, system and software for programming reconfigurable hardware
US7660984B1 (en) 2003-05-13 2010-02-09 Quicksilver Technology Method and system for achieving individualized protected space in an operating system
US7328414B1 (en) 2003-05-13 2008-02-05 Qst Holdings, Llc Method and system for creating and programming an adaptive computing engine
CN100449478C (zh) * 2002-05-31 2009-01-07 德拉华州大学 用于实时多线程处理的方法和装置
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
US8108656B2 (en) 2002-08-29 2012-01-31 Qst Holdings, Llc Task definition for specifying resource requirements
US6948030B1 (en) * 2002-09-04 2005-09-20 Cypress Semiconductor Corporation FIFO memory system and method
AU2003289844A1 (en) 2002-09-06 2004-05-13 Pact Xpp Technologies Ag Reconfigurable sequencer structure
US7937591B1 (en) 2002-10-25 2011-05-03 Qst Holdings, Llc Method and system for providing a device which can be adapted on an ongoing basis
US8276135B2 (en) 2002-11-07 2012-09-25 Qst Holdings Llc Profiling of software and circuit designs utilizing data operation analyses
US7225301B2 (en) 2002-11-22 2007-05-29 Quicksilver Technologies External memory controller node
SE0300742D0 (sv) * 2003-03-17 2003-03-17 Flow Computing Ab Data Flow Machine
US9330060B1 (en) * 2003-04-15 2016-05-03 Nvidia Corporation Method and device for encoding and decoding video image data
US8660182B2 (en) * 2003-06-09 2014-02-25 Nvidia Corporation MPEG motion estimation based on dual start points
US7774299B2 (en) * 2005-05-09 2010-08-10 Microsoft Corporation Flow computing
US7707387B2 (en) 2005-06-01 2010-04-27 Microsoft Corporation Conditional execution via content addressable memory and parallel computing execution model
US7451297B2 (en) * 2005-06-01 2008-11-11 Microsoft Corporation Computing system and method that determines current configuration dependent on operand input from another configuration
US7793040B2 (en) * 2005-06-01 2010-09-07 Microsoft Corporation Content addressable memory architecture
US8731071B1 (en) 2005-12-15 2014-05-20 Nvidia Corporation System for performing finite input response (FIR) filtering in motion estimation
JP2009524134A (ja) 2006-01-18 2009-06-25 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト ハードウェア定義方法
US8724702B1 (en) 2006-03-29 2014-05-13 Nvidia Corporation Methods and systems for motion estimation used in video coding
US8660380B2 (en) * 2006-08-25 2014-02-25 Nvidia Corporation Method and system for performing two-dimensional transform on data value array with reduced power consumption
EP2104930A2 (en) 2006-12-12 2009-09-30 Evans & Sutherland Computer Corporation System and method for aligning rgb light in a single modulator projector
US8756482B2 (en) * 2007-05-25 2014-06-17 Nvidia Corporation Efficient encoding/decoding of a sequence of data frames
US20080291209A1 (en) * 2007-05-25 2008-11-27 Nvidia Corporation Encoding Multi-media Signals
US9118927B2 (en) * 2007-06-13 2015-08-25 Nvidia Corporation Sub-pixel interpolation and its application in motion compensated encoding of a video signal
US8873625B2 (en) * 2007-07-18 2014-10-28 Nvidia Corporation Enhanced compression in representing non-frame-edge blocks of image frames
US8484611B2 (en) * 2007-10-15 2013-07-09 International Business Machines Corporation Method and system for simplified assembly of information processing applications
US8078839B2 (en) * 2007-12-13 2011-12-13 Wave Semiconductor Concurrent processing element system, and method
US8312426B2 (en) 2008-01-07 2012-11-13 International Business Machines Corporation Method and system for simplified service composition in web environment
US8239828B2 (en) * 2008-01-08 2012-08-07 International Business Machines Corporation Method of recovering from software failures using replanning
US8245122B2 (en) * 2008-01-08 2012-08-14 International Business Machines Corporation Method and system for modeling user requests, applications and components used in dynamic application assembly
US8640149B2 (en) 2008-03-26 2014-01-28 International Business Machines Corporation Method and apparatus for dynamic web service composition and invocation
US8949140B2 (en) 2008-04-21 2015-02-03 International Business Machines Corporation Method and system for dynamic software reconfiguration triggered by component- or system- initiated events
US8898624B2 (en) * 2008-05-05 2014-11-25 International Business Machines Corporation Method and apparatus for simplified assembly of parametric information processing applications
US8358317B2 (en) 2008-05-23 2013-01-22 Evans & Sutherland Computer Corporation System and method for displaying a planar image on a curved surface
US8702248B1 (en) 2008-06-11 2014-04-22 Evans & Sutherland Computer Corporation Projection method for reducing interpixel gaps on a viewing surface
US8077378B1 (en) 2008-11-12 2011-12-13 Evans & Sutherland Computer Corporation Calibration system and method for light modulation device
US8666181B2 (en) * 2008-12-10 2014-03-04 Nvidia Corporation Adaptive multiple engine image motion detection system and method
CN101621469B (zh) * 2009-08-13 2012-01-04 杭州华三通信技术有限公司 数据报文存取控制装置和方法
US8347044B2 (en) * 2009-09-30 2013-01-01 General Electric Company Multi-processor based programmable logic controller and method for operating the same
JP5990466B2 (ja) 2010-01-21 2016-09-14 スビラル・インコーポレーテッド ストリームに基づく演算を実装するための汎用複数コアシステムのための方法および装置
US8473880B1 (en) * 2010-06-01 2013-06-25 Xilinx, Inc. Synchronization of parallel memory accesses in a dataflow circuit
US8402164B1 (en) * 2010-10-27 2013-03-19 Xilinx, Inc. Asynchronous communication network and methods of enabling the asynchronous communication of data in an integrated circuit
US9641826B1 (en) 2011-10-06 2017-05-02 Evans & Sutherland Computer Corporation System and method for displaying distant 3-D stereo on a dome surface
US10157060B2 (en) 2011-12-29 2018-12-18 Intel Corporation Method, device and system for control signaling in a data path module of a data stream processing engine
US9286032B2 (en) 2013-03-15 2016-03-15 International Business Machines Corporation Automated software composition
US10331583B2 (en) 2013-09-26 2019-06-25 Intel Corporation Executing distributed memory operations using processing elements connected by distributed channels
US9773040B2 (en) 2015-05-04 2017-09-26 Alan Weisman Search token mnemonic replacement
US10564929B2 (en) * 2016-09-01 2020-02-18 Wave Computing, Inc. Communication between dataflow processing units and memories
US10572376B2 (en) 2016-12-30 2020-02-25 Intel Corporation Memory ordering in acceleration hardware
US11113051B2 (en) 2017-04-28 2021-09-07 Tenstorrent Inc. Processing core with metadata actuated conditional graph execution
US10817293B2 (en) 2017-04-28 2020-10-27 Tenstorrent Inc. Processing core with metadata actuated conditional graph execution
US10515049B1 (en) 2017-07-01 2019-12-24 Intel Corporation Memory circuits and methods for distributed memory hazard detection and error recovery
US10469397B2 (en) 2017-07-01 2019-11-05 Intel Corporation Processors and methods with configurable network-based dataflow operator circuits
US10515046B2 (en) 2017-07-01 2019-12-24 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10496574B2 (en) 2017-09-28 2019-12-03 Intel Corporation Processors, methods, and systems for a memory fence in a configurable spatial accelerator
US11086816B2 (en) 2017-09-28 2021-08-10 Intel Corporation Processors, methods, and systems for debugging a configurable spatial accelerator
EP3762831A4 (en) 2018-03-08 2022-04-06 Quadric.I0, Inc. INTEGRATED CIRCUIT FOR MACHINE PERCEPTION AND DENSITY ALGORITHM
JP7386543B2 (ja) 2018-03-28 2023-11-27 クアドリック.アイオー,インコーポレイテッド 機械知覚および高密度アルゴリズム集積回路を実装するためのシステムおよび方法
US11307873B2 (en) 2018-04-03 2022-04-19 Intel Corporation Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging
US10564980B2 (en) * 2018-04-03 2020-02-18 Intel Corporation Apparatus, methods, and systems for conditional queues in a configurable spatial accelerator
US11200186B2 (en) 2018-06-30 2021-12-14 Intel Corporation Apparatuses, methods, and systems for operations in a configurable spatial accelerator
US10853073B2 (en) 2018-06-30 2020-12-01 Intel Corporation Apparatuses, methods, and systems for conditional operations in a configurable spatial accelerator
US10891240B2 (en) 2018-06-30 2021-01-12 Intel Corporation Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator
US10678724B1 (en) 2018-12-29 2020-06-09 Intel Corporation Apparatuses, methods, and systems for in-network storage in a configurable spatial accelerator
US10817291B2 (en) 2019-03-30 2020-10-27 Intel Corporation Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator
US10915471B2 (en) 2019-03-30 2021-02-09 Intel Corporation Apparatuses, methods, and systems for memory interface circuit allocation in a configurable spatial accelerator
US11037050B2 (en) 2019-06-29 2021-06-15 Intel Corporation Apparatuses, methods, and systems for memory interface circuit arbitration in a configurable spatial accelerator

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4145733A (en) * 1974-03-29 1979-03-20 Massachusetts Institute Of Technology Data processing apparatus for highly parallel execution of stored programs
US3962706A (en) * 1974-03-29 1976-06-08 Massachusetts Institute Of Technology Data processing apparatus for highly parallel execution of stored programs
US4153932A (en) * 1974-03-29 1979-05-08 Massachusetts Institute Of Technology Data processing apparatus for highly parallel execution of stored programs
JPS54100634A (en) * 1978-01-26 1979-08-08 Toshiba Corp Computer
EP0172522B1 (en) * 1981-10-22 1991-01-02 Nec Corporation Data processing machine suitable for high-speed processing
JPS58151655A (ja) * 1982-03-03 1983-09-08 Fujitsu Ltd 情報処理装置
JPS5936857A (ja) * 1982-08-25 1984-02-29 Nec Corp プロセツサユニツト
JPS59146345A (ja) * 1983-02-10 1984-08-22 Masahiro Sowa コントロ−ルフロ−並列計算機方式
US4972314A (en) * 1985-05-20 1990-11-20 Hughes Aircraft Company Data flow signal processor method and apparatus
JPS61276032A (ja) * 1985-05-31 1986-12-06 Matsushita Electric Ind Co Ltd 情報処理装置
JPH0632056B2 (ja) * 1985-05-31 1994-04-27 松下電器産業株式会社 デ−タ処理装置
JP2564805B2 (ja) * 1985-08-08 1996-12-18 日本電気株式会社 情報処理装置
US4766534A (en) * 1986-10-16 1988-08-23 American Telephone And Telegraph Company, At&T Bell Laboratories Parallel processing network and method
US4893234A (en) * 1987-01-15 1990-01-09 United States Department Of Energy Multi-processor including data flow accelerator module
US4972315A (en) * 1987-03-10 1990-11-20 Mitsubishi Denki Kabushiki Kaisha Data flow machine
US5297255A (en) * 1987-07-28 1994-03-22 Hitachi, Ltd. Parallel computer comprised of processor elements having a local memory and an enhanced data transfer mechanism
US5008882A (en) * 1987-08-17 1991-04-16 California Institute Of Technology Method and apparatus for eliminating unsuccessful tries in a search tree
US4942517A (en) * 1987-10-08 1990-07-17 Eastman Kodak Company Enhanced input/output architecture for toroidally-connected distributed-memory parallel computers
US5053946A (en) * 1988-05-26 1991-10-01 Digital Equipment Corporation Token ring network having token request mechanism
WO1990001192A1 (en) * 1988-07-22 1990-02-08 United States Department Of Energy Data flow machine for data driven computing
US5226131A (en) * 1989-12-27 1993-07-06 The United States Of America As Represented By The United States Department Of Energy Sequencing and fan-out mechanism for causing a set of at least two sequential instructions to be performed in a dataflow processing computer

Also Published As

Publication number Publication date
US5657465A (en) 1997-08-12
US5465368A (en) 1995-11-07
WO1990001192A1 (en) 1990-02-08
US5675757A (en) 1997-10-07

Similar Documents

Publication Publication Date Title
JPH03500461A (ja) データ駆動式計算用のデータ流れ装置
US5682544A (en) Massively parallel diagonal-fold tree array processor
Uhr Algorithm-structured computer arrays and networks: architectures and processes for images, percepts, models, information
Ebeling et al. RaPiD—Reconfigurable pipelined datapath
US10949328B2 (en) Data flow graph computation using exceptions
Johnson et al. General-purpose systolic arrays
JPH02146668A (ja) コンピュータ・システム
JPH05500429A (ja) スケーラブル・フロー仮想学習ニューロコンピュータ
WO2021061329A1 (en) Apparatus and system for execution of neural network
JP3851989B2 (ja) 命令発行速度を加速するプロセッサ・コントローラ
Stepchenkov et al. Recurrent data-flow architecture: features and realization problems
US11250105B2 (en) Computationally efficient general matrix-matrix multiplication (GeMM)
Kent et al. Hierarchical cellular logic and the PIPE processor: Structural and functional correspondence
Day Parallel implementation of 3D convex-hull algorithm
Küchlin PARSAC-2: Parallel computer algebra on the desk-top
Bhujade Parallel Computing
Vlontzos et al. Digital neural network architecture and implementation
US11829321B2 (en) General-purpose systolic array
Viredaz Design and analysis of a systolic array for neural computation
Dongarra Parallel processing research in the former Soviet Union
Perrott Languages for Parallel Computers.
Rajaraman Elements of parallel computing
Rice The Navy's New Standard Digital Signal Processor: The AN/UYS‐2
Hoffner A microprocessor-based multiprocessor system using common memory for communication
JP3389261B2 (ja) データ駆動型情報処理装置