JPH0797362B2 - 経路指定装置 - Google Patents

経路指定装置

Info

Publication number
JPH0797362B2
JPH0797362B2 JP59109776A JP10977684A JPH0797362B2 JP H0797362 B2 JPH0797362 B2 JP H0797362B2 JP 59109776 A JP59109776 A JP 59109776A JP 10977684 A JP10977684 A JP 10977684A JP H0797362 B2 JPH0797362 B2 JP H0797362B2
Authority
JP
Japan
Prior art keywords
message
circuit
address
output
signal
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.)
Expired - Lifetime
Application number
JP59109776A
Other languages
English (en)
Other versions
JPS6084661A (ja
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 JPS6084661A publication Critical patent/JPS6084661A/ja
Publication of JPH0797362B2 publication Critical patent/JPH0797362B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/8023Two dimensional arrays, e.g. mesh, torus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • G06F15/803Three-dimensional arrays or hypercubes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Multi Processors (AREA)
  • Microcomputers (AREA)
  • Small-Scale Networks (AREA)
  • Image Processing (AREA)

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、並列プロセッサを用いるコンピュータ、特
に、従来よりも非常に数多くの並列プロセッサを用いる
コンピュータに係り、特にメッセージに含まれるアドレ
ス・データによって、複数のメッセージを同時に宛先プ
ロセッサに送ることのできる経路指定装置に関する。
[従来の技術] 典型的なデジタルコンピュータは、中央処理装置(CP
U),データを記憶するメモリ及びコンピュータを制御
するためのプログラム、そして、種々の入出力装置とを
持つ、記憶されたプログラムは、CPUが、コンピュータ
に入力されるデータに基づいて、計算、転送、または論
理演算を行なうようにするための一連の指令となる。こ
のようなデータは、究極的には入力装置からコンピュー
タに入れられ、CPU演算の結果は、出力装置に供給され
る。典型的なコンピュータでは、この一連の指令は、一
時に一つずつ直列的に行なわれる。
デジタルコンピュータが用いられてきた40年余りの間
に、コンピュータ及びそれを動かすプログラムはより複
雑になってきた。直列式コンピュータにおける複雑さ
は、そのメモリ及びそこに記憶されるプログラム及び/
又はデータの規模が大きくなってきたことで増してきて
いる。しかし、ある意味では、これらのより複雑化した
直列式コンピュータは、より効率の悪いものになってき
ている。どの時間にも、直列式コンピュータのごくわず
かな部分が利用されているだけである。何故ならCPUに
よって実行される命令は、二,三のメモリロケーション
からしか得られず、また、データを二,三の他のロケー
ションに向けるのみである。さらに、コンピュータが、
そのメモリの規模において機能が良くなるにつれ、メモ
リから出力を発生する能力の点では、にぶくなってきて
いる。何故なら、メモリからデータを検索するのに要す
る時間は、メモリに記憶したデータの量と共に増加する
からである。
直列式コンピュータにおけるこれらの問題点は、直列式
コンピュータの初期における発達に多大な貢献をしたジ
ョン・フォンニューマンの名前をとって、フォンニュー
マン障害と呼ばれてきた。J.バッカスによる論文「プロ
グラミングをフォンニューマン形成から開放出来るか
?」(ACMの通信第21巻第8号、第613ページ、1978年8
月)を参照されたい。
これらの問題点は、コンピュータを用いて意味結合ネッ
トワークとよばれる相互関係ネットワークに記憶された
知識を検索することの多い人工知能の分野において、特
に深刻である。この知識を検索するために、ネットワー
ク全体を探査することもあり得る。また、他の記憶され
た情報から、希望する事実を推論しなければならないこ
ともあるだろう。このような検索を行なうために、二,
三の単純な演算を、プログラムの演算時間の大部分にわ
たって何回も繰り返すことになる。この演算は下記のこ
とを含む。
1.大きさ又は数字的順序といったパラメータに従って一
組のデータを分類する。
2.特定の構造を持つサブセット又はサブグラフのために
データ又はグラフの指定された組み合わせを探索する。
3.アサーションの集合に対してパターンの突き合わせを
する。
4.記憶されている情報の意味結合ネットワークから事実
を推論する。
このような演算を一時に一つずつ行なうことは、コンピ
ュータの時間及び機能という点で非常な浪費となる。そ
の結果、人工知能における多数の問題が、現在入手可能
な直列式コンピュータでは、扱えないでいる。しかし、
これらの問題は解決策を緊急に要する。例えば、画像処
理のような基本的な問題なのである。
換言すると、このような演算を並列して行なうことが出
来れば、演算に要する時間を減少させることが出来る。
このようなことの有利さは良く認識されている。例え
ば、『VLSI方式の導入』第8章におけるC.ミード及びL.
コンウェイの「高度兼用方式」(アヂソンウェズレー、
1980年)、及びその中に引用された参考文献、W.D.ヒリ
スによる「結合装置」(マサチュセッツ工科大学人工知
能研究室メモ、第646番、1981年9月)、及びその中に
引用されている参考文献、そして、A.ローゼンフェルド
による論文「細胞状アレイを用いる並行画像処理」
(『コンピュータ』第16巻、第1号、第14ページ、1983
年1月)を参照すると良い。
程度の差はあるが、これらの文献では、データの並行演
算を行なうための装置についての一般概念を述べてい
る。例えば、ヒリスとローゼンフェルドは、同一のプロ
セッサ/メモリのアレイで、それぞれがデータを記憶す
るに必要なハードウェアと、それを処理するハードウェ
アとを持つものを考えている。しかし、プロセッサ/メ
モリとその制御との相互結合を含む完全演算コンピュー
タについて明確な詳細を述べることがこれらの論文の目
的ではない。
[発明の要約] 我々は、プロセッサ/メモリのアレイ、及び、データを
アレイ内の1つのプロセッサ/メモリから他のプロセッ
サ/メモリへ送るための少なくとも2n個のノードを持つ
n−次元パターンで、それらのプロセッサ/メモリを相
互結合させる手段からなる平行プロセッサアレイを考案
した。都合の良い例では、n−次元パターンは、15次元
のブール立方体である。
各プロセッサ/メモリは、読み出し/書き込みメモリ
と、少なくとも一部は読み出し/書き込みメモリで読ん
だデータ及び命令情報とに基づく出力を作るプロセッサ
とからなる。相互結合手段は、メッセージパケット内の
アドレス情報に従って、1つのプロセッサ/メモリから
他のプロセッサ/メモリへ径路指定されるアドレスされ
たメッセージパケットを生成する手段と、パケット内の
アドレス情報に従ってメッセージパケットを径路指定す
るためにn−次元パターン内の各ノードにある径路指定
回路とからなる。
本発明の好ましい実施例では、プロセッサ/メモリは、
2次元パターンでも相互結合され、その場合は、各プロ
セッサ/メモリは、2次元パターンで隣り合わせている
プロセッサ/メモリと直接相互結合される。
現在可能な技術では、そのようなプロセッサ/メモリ
は、これらの相互結合手段で結合されると、100万個以
上も平行して操作できる。
メッセージパケット内のアドレス情報は、メッセージパ
ケットが送られるノードに対して相対であり、アドレス
の各数字が、メッセージパケットの、メッセージパケッ
トが送られるノードからの1次元における相対変位を意
味していることが望ましい。n−次元の各次元に対し
て、径路指定回路が、メッセージパケットがその次元内
の行き先に到達したかどうかを決め、もし到達せず、ま
た、その次元内の他のノードが使用出来る場合には、そ
のノードへ径路指定するための理論を作る。最初の行き
先決定論理から他のノードへの結合が不可能な時、また
は、最初の行き先決定論理が、メッセージパケットがそ
の次元内の行き先に到達したと決定した時には、径路指
定回路が、メッセージパケットが、第2の次元での行き
先に到達したかどうかを決定するための似たような論理
にメッセージパケットを導く。さらに、径路指定回路
は、行き先ノードに到達したメッセージパケットをその
ノードのプロセッサ/メモリに導く論理と、接続抵触に
よって径路指定出来なかったメッセージパケットを記憶
する手段とを含む。
好都合なことに行き先決定論理及び各次元の径路指定論
理は、n−次元パターンの全てのノードにわたって同時
に演算される。その結果、メッセージパケットは、単一
の径路指定サイクルの間にn−次元パターン全体に径路
指定される。加えて、各径路指定回路は小さいので、数
個のプロセッサ/メモリと共に1個の集積回路チップ上
に組み立てられる。
すなわち、本発明による経路指定装置は、メッセージを
転送するために複数の通信リンク(38、39)によって多
次元パターンに相互接続された複数の経路指定ノード
(180、200)から構成された経路指定装置であって、各
メッセージは、各桁が一連の次元列の1つと関連づけら
れた一連のアドレス桁列からなるアドレス(第5図中の
「セル・アドレス(相対)」)を含むものにおいて、各
経路指定ノードは、各々が異なる次元の該通信リンクに
接続されていて、該次元を通って別の経路指定ノードか
らメッセージを受信するための複数のメッセージ入力回
路(405)と、各々が異なる次元の該通信リンクに接続
されていて、該次元を通って別の経路指定ノードにメッ
セージを送信するための複数のメッセージ出力回路(41
5)と、該入力回路からのメッセージをアドレスに従っ
て該出力回路に選択的に結合するためのスイッチ回路
(セル400の集合)とを備えており、該スイッチ回路
は、各々が前記次元と関連づけられた一連のメッセージ
結合回路(セル400)を含み、各メッセージ結合回路は
関連する次元のメッセージ出力回路、前の次元のメッセ
ージ入力回路および隣接の次元のメッセージ結合回路に
接続され、該メッセージ結合回路は、次元に関連づけら
れたアドレス桁の状態に応じて、メッセージ入力回路に
現われたメッセージをメッセージ出力回路か、隣接の次
元のメッセージ結合回路のどちらかに選択的に結合する
ことを特徴とする。
ここで、各メッセージ結合回路は、そこに接続されたメ
ッセージ入力回路に現われたメッセージを、そこに接続
されたメッセージ出力回路に選択的に結合するための出
力メッセージ結合回路(500)と、そこに接続されたメ
ッセージ入力回路で受信されたメッセージを、より高い
次元のメッセージ結合回路に結合するための次元間メッ
セージ結合回路(492、494)と、メッセージ結合回路の
次元と関連づけられたアドレス桁の状態に応じて、出力
メッセージ結合回路から、次元間メッセージ結合回路の
どちらかを選択的にイネーブルするためのアドレス桁検
査回路(490、502、450、470、460、462、464、466、47
6、478、472)とから構成されていることを特徴とす
る。
また、該メッセージ出力回路は該スイッチ回路から受信
したメッセージを送信するとき、そのメッセージの中で
その次元と関連づけられているアドレス桁をさらに補数
化することを特徴とする。
ここで、各経路指定ノードごとに、該スイッチ回路は、
所定の状態を受けるとそれに応えて、そこに接続された
メッセージ結合回路に受信されたメッセージをメッセー
ジ出力回路に結合するように該出力メッセージ結合回路
をイネーブルするための状態検出回路(480)を備えて
いることを特徴とする。
ここで、各々が経路指定ノードに接続されて、そのノー
ドに転送するためのメッセージを生成する複数のプロセ
サからなる並列コンピュータで使用されることを目的と
し、その場合において、各経路指定ノードはさらに、そ
こに接続されたプロセッサからメッセージを受信するた
めのプロセッサ・メッセージ受信回路(181)を備えて
おり、該スイッチ回路はさらに、該プロセッサ・メッセ
ージ受信回路に受信されたメッセージを、そのメッセー
ジに含まれるアドレスに従って該出力回路に結合するこ
とを特徴とする。
また、各々が経路指定ノードに接続されて、そのノード
からメッセージを受信するための複数のプロセッサから
なる並列プロセッサで使用されることを目的とし、その
場合において、各経路指定ノードはさらに、メッセージ
をそこに接続されたプロセッサと結合するためのプロセ
ッサ・メッセージ送出回路を備えており、該スイッチ回
路はさらに、メッセージをそこに含まれるアドレスに従
って該プロセッサ・メッセージ送出回路に結合すること
を特徴とする。
さらにまた、回路列の中の最後のメッセージ結合回路か
らのメッセージをバッファに入れ、バッファに入れたメ
ッセージを回路列の中の最初のメッセージ結合回路に結
合するように接続されたメッセージ・バッファ(420)
をさらに備えていることを特徴とする。
[実施例] 読者の便宜のため、本発明の好ましい実施例の説明を、
下記の区分に分ける。
A.システムの全体的説明 B.並行処理ICの全体的説明 C.プロセッサ/メモリの説明 D.通信インタフェース装置の説明 E.径路指定回路の説明 F.例 G.代替案 A.システムの全体的説明 第1図に示されるように、本発明は、本体コンピュータ
10,マイクロコントローラ20,並行処理集積回路35のアレ
イ30,データソース40,第1バッファ及びマクチプレクサ
/デマルチプレクサ50、第1,第2,第3及び第4の双方向
バス制御回路60,65,70,75,第2バッファ及びマルチプレ
クサ/デマルチプレクサ80、及び、データシンク90を含
むコンピュータシステムにおいて実行される。本体コン
ピュータ10は、デジタル エクイップメント コーポレ
ーション(Digital Equipment Corp.)製造のVAXコンピ
ュータのような、適合するようにプログラムされ、市販
されている汎用コンピュータでよい。マイクロコントロ
ーラ20は、32ビット並列バス22によってアレイ30に与え
られる命令の順序付けをするための従来からあるデザイ
ンの命令シーケンサである。バス22中の32回線の1回線
は、アレイ30にRESET信号を与え、3回線はタイミング
信号を出し、他の28回線は、命令の伝送に使われる。ア
レイ30の各並行処理IC35をアドレス指定するための追加
のアドレス指定信号は、バス24上のアレイに与えられ
る。マイクロコントローラ20は、アレイ30から回線26上
の信号を受け取る。この信号は、データ出力及び状態情
報として用いることの出来る一般目的の信号、すなわち
GLOBAL信号である。バス22及び回線26は、各IC35に並列
に接続される。その結果、マイクロコントローラ20から
の信号は、アレイ30内の各IC35に同時に与えられ、回線
26上のマイクロコントローラ20に与えられる信号は、ア
レイのIC35の全てからの信号出力を組み合わせて形成さ
れる。
アレイ30は、32,768(=215)個の同一なIC35を持ち、
各IC35は32(=25)個の同一プロセッサ/メモリ36を持
つ。このようにして全体のアレイ30は1,048,576(=
220)個の同一プロセッサ/メモリ36を含む。
プロセッサ/メモリ36は、2つの形態(geometries)に
構成され、相互結合される。一番目のものは、従来から
ある2次元の格子パターンで、プロセッサ/メモリは方
形アレイ内に構成され、アレイ内の最も近くにある4個
のプロセッサ/メモリに接続される。第2のものは、15
次元のブールn−次元立方体である。2次元の格子パタ
ーンのプロセッサ/メモリを接続するには、アレイ30の
IC35を256(=28)行と128(=23)列の長方形アレイに
構成し、各ICの32のプロセッサ/メモリは、4(=22
行で8(=23)列の長方形アレイ内に接続される。その
結果、アレイ30の1,048,576個のプロセッサ/メモリ36
が、1024(210)行と1024列の正方形内で接続される。
便宜上、この正方形のアレイの側面を、北、東、南及び
西とする。各プロセッサ/メモリをその最も近くにある
4個のプロセッサ/メモリに接続するには、各プロセッ
サ/メモリを、各行、各列の隣接するプロセッサ/メモ
リとの間を電気導体で接続すれば、アレイの端にあるも
の以外のICの最も近くにある4個のICを、それぞれ北、
東、南及び西の隣接する4個のICであると認識されるよ
うになる。
2次元アレイの列及び行にある各プロセッサ/メモリ
は、第1次元での列番号又は位置を表わすために最初の
数字を、また、2次元での行番号又は位置を表わすため
に二番目の数字を用いて系統的に番号付けをすることに
よって識別しても良い。例えば、もし、左端すなわち最
西端の列をゼロとして列に番号付けし、底部すなわち最
南端の行をゼロとして行の番号付けをすると、底部左端
すなわち南西の角に近い9個のプロセッサ/メモリは、 0,2 1,2 2,2 0,1 1,1 2,1 0,0 1,0 2,0 と識別又はアドレス指定され、上部右端又は北東角にあ
るプロセッサ/メモリは、1023,1023の数字で識別され
る。このような数字の組の各々は、連想プロセッサ/メ
モリのアドレスと言われるようになる。
この番号付けのため、2次元アレイ内のいずれかのプロ
セッサ/メモリの最も近い4個は、そのアドレスを作る
2つの数の1個だけが、そのプロセッサ/メモリのアド
レスと1だけ違うアドレスを持つということが認識され
るだろう。例えば、アドレス1,1を持つプロセッサ/メ
モリの最も近い4個は、それぞれ北、東、南及び西にア
ドレス1,2;2,1;1,0;0,1の4個のプロセッサ/メモリで
ある。
第1図に図式的に示されるように、アレイ30の2次元格
子パターンは、第1,第2,−3及び第4の双方向バス制御
回路60,65,70,75に向かって、アレイ30の北,東,南及
び西の端を越えて、第1,第2バッファ50,80まで伸びて
いる。特に、アレイの4端の各々にある1024個のプロセ
ッサ/メモリ36の各々は、1024個の双方向導線61,66,7
1,76のうちの1本で、バス制御回路60,65,70,75にそれ
ぞれ、接続されている。
データソース40は、高速データバス41を経てバッファ及
びマルチプレクサ/デマルチプレクサ50に入力データを
送る。データソース40は、コンピュータ端子、通信回
路、視覚、聴覚又は触角入力、レーダー又はソナー装
置、ディスクファイル又はその組合わせ等のどのような
データ源でもよい。実例をあげると、データバス41は、
32ビット幅のバスで、バッファ50は、各々32ビット容量
を持つ32個の直列入力、並列出力シフトレジスタでよ
い。このような構成において、バス41の各回線は、別個
の直列入力シフトレジスタに供給するので、従来からの
多重化又は多重分離の必要がない。バス41内の回線数
が、シフトレジスタの数と異なる場合は、多重化又は多
重分離回路が、バス41の個々のデータ回線からバッファ
50内のシフトレジスタの直列入力にデータを分散するた
めに用いられる。
バッファ50は、1024個の回線バス51上の並列データを、
バス制御回路60,65,70,75のうちの1つに入れ、それ
が、バス61,66,71又は76を経て接続されている側のアレ
イの外端にあるプロセッサ/メモリに、それらのデータ
を与える。
アレイ30からのデータは、アレイの一端に沿っているプ
ロセッサ/メモリからバス制御回路60,65,70,75のうち
の1つに、バス61,66,71又は76のうちの1本を介して並
列に与えられ、バス制御回路はバッファ80への入力に接
続されているバス81へ向けてデータを切り換える。バッ
ファ80の出力は、データシンク90に接続されている高速
データバス86である。実例をあげると、バッファ80は、
各々が32ビット容量を持つ32の並列入力、直列出力シフ
トレジスタのアレイで、データバス86は32ビット幅のバ
スでよい。この構造では、従来からの多重化又は多重分
離の必要がない。バス86内のデータ回線の数が、バッフ
ァ80内のシフトレジスタの数と異なる場合は、多重化又
は多重分離回路が、シフトレジスタの直列出力から、バ
ス86の各データ回線へデータを送るために用いられる。
データシンク90は、コンピュータ端子、通信回線、ディ
スプレー、プリンタ、プロッタ、音声シクセサイザ、機
械的装置、ロボット、ディスクファイル、またはそれら
の組合わせのようなデータ源のどれでも良い。
アレイ30を通るデータの流れの方向は、マイクロコント
ローラ20及びバス制御回路60,65,70,75によって制御さ
れ、東から西へ、北から南、又は、その逆であってもよ
い。第2図に示すように、各バッファ60,65,70又は75
は、1024個のセレクタ10,001、10,002、10,003……11,0
24を持つ。各セレクタへの信号入力のうちの1つは、バ
ッファ50からのデータバス51の回線のうちの1本であ
る。他の2本の信号入力は、アレイ30からの出力であ
る。ある場合には、入力はセレクタと同じ行又は列にあ
るアレイからの出力である。他の場合には、入力はセレ
クタのすぐ隣の行又は列のアレイからの出力である。最
下部のセレクタの場合には、セレクタへの入力のうち2
本は接地している。4本の入力セレクタ回線の各々は、
4本の信号入力のうちの1本を選び、各セレクタからの
出力になる。4本の入力セレクタ回線上の信号は、マイ
クロコントローラ20によって生成される。
この配置の結果として、各バッファは、4組の信号、即
ち、バッファ50からのデータ入力、アレイ30からの再循
環データ、アレイ30内の隣接する行又は列からの再循環
データ、そして、全てのゼロの4組の信号のうちの1組
をアレイに送ることもある。隣接する行又は列からの再
循環データの場合には、バッファは、実際に、アレイの
全ての個別プロセッサ/メモリを、アレイの1024行又は
列を螺旋状に通る1本の回線に相互結合させてしまって
いる。
上記の相互結合の2次元格子は、例えば計算の初期段階
のように、アレイ30に大量のデータを書き込むため、ま
た、例えば、処理を中断し、アレイの状態を記憶させる
必要のある場合に、アレイの内容を読み出すためには、
役立つ。しかし、この相互結合アレイは、2次元アレイ
中のプロセッサ/メモリ36間の任意の方向への敏速なデ
ータ中継は行なえない。その上、アレイの端と特定のプ
ロセッサ/メモリとの間にデータを移動させるには、そ
の端と問題のプロセッサ/メモリとの間にある全てのプ
ロセッサ/メモリにデータをシフト移動する必要があ
り、500個以上ものプロセッサ/メモリにシフト移動を
行なう必要も出てくる。非常に高速でこのようなシフト
移動を行なえる場合でも、500回以上もこうしたシフト
を行なう必要があると、全操作を非常に遅いものにして
しまう。こうしたシフトを、同時に無作為でばらばらな
方向で大量のプロセッサ/メモリについて行なうことも
煩雑さも加わって、妥当な費用でそのように大きなプロ
セッサ/メモリの2次元格子を運転することは不可能に
なる。
本発明においては、第2形態(geometry)に従ってプロ
セッサ/メモリ36を作り、相互結合することによって、
この問題点を緩和している。特にIC35は、15次元のブー
ルn−立方体の形に作られ、相互結合されている。各IC
は論理経路系を持ち、その相互結合網を通るメッセージ
の径路指定を制御しており、また各IC内では、32プロセ
ッサ/メモリにバス接続が用意され、100万個以上のプ
ロセッサ/メモリのどれもが、他のどれに対してもメッ
セージを送ることが出来る。その上、大量のメッセージ
がいつでも送られ、無作為の方向へ径路指定出来る。
IC35のこの接続パターンを理解するために、0から32,7
67番までICに番号を付け、表Iのように15個の2進数字
を用いる2進法で、これらの数字又はアドレスを表わす
のが良い。
2次元格子の相互結合に関して上に述べた概念は、15次
元格子の相互結合に関しても充分通用するものである。
各プロセッサ/メモリ36を、2つの数字を用いて、その
1つが2次元格子の第1次元での位置を示し、他の1つ
は第2次元での位置を示したように、ブール15−立方体
の15次元のそれぞれにおけるICの位置を識別するため
に、番号を使うことが出来る。しかしn−立方体ではIC
は、各次元において2つのみの異なる位置、0および1
のうちのどちらかをとることが出来る。このように、表
Iに書かれたような2進法での15個の数字によるICアド
レスは、n−立方体の15次元でのICの位置も示すのであ
る。便宜状、15個の2進数字の最左端の数字を、第1次
元のICの位置を示すものとして用い、その順番で、最右
端の数字が、第15次元でのICの位置を示すものとする。
その上、2進数字が0又は1の2つの値しか持つことが
出来ず、各ICは15個の2進数字によって独自に識別され
るので、各ICには、自分のアドレスと1個の数字が違う
だけの2進アドレスを持つ他のICが15個あることにな
る。我々はこれらの数字が一字しか違わない15個のIC
を、最初のICの最も近い隣接者と呼ぶ。ハミング距離の
数学的定義を知っている人々は、最初のICがその15個の
最も近い隣接者の各々から、ハミング距離1だけ離れて
いることに気づくだろう。1個のICとそれに最も近い15
個の隣接者のアドレスの2例を表IIに示す。
ブール15−立方体の形にIC35を接続するには、各ICをそ
れに最も近い15個の隣接ICに接続する。第1図および第
2図では、この接続が15本の入力回線38及び15本の出力
回線39で図式的に示されているが、実際の接続径路は、
図がますます複雑になるので描かれてはいない。各IC35
へのこれら15本の入力回線38のそれぞれには、ブール15
−立方体の15次元のうちの異なる1つと関連しており、
同様に、各IC35からの15本の出力回線39のそれぞれは、
違う次元と関連している。
ブールn−立方体の相互結合パターンを正しく認識する
には、3次元及び4次元のブールn−立方体内のIC35′
のアレイに用いられる相互結合を考えると良い。第3図
は、3次元のブールn−立方体の図式的描写である。8
個の頂点又はノードと12のへりを持つ従来からある立方
体とみなされるであろう。この立方体の3次元はローマ
数字I,II,IIIで識別される。頂点のそれぞれに、IC35′
があり、各ICからは3本の出力回路39′が出て、立方体
の3次元に沿って、そのICの3個の最も近い隣接ICまで
伸びている。後に明らかになるように、各IC35′にはそ
れに最も近い3個の隣接ICからの出力回線である3本の
入力回線38′もある。下部左端の頂点は、このシステム
の原点と仮定され、従って、この頂点のICが第3図の3
次元立方体の第1,第2及び第3次元中のOポジション又
はアドレスを持つことになる。このアドレス000と書か
れる。各ICは、各次元の2つだけのポジションのうちの
1つにあるので、他のICは、第3図に示されるように0
及び1の3桁の数字の他の組み合わせから成るアドレス
を持つ。
第4図は、4次元のブールn−立方体を示す。このよう
な立方体には、16個の頂点と32個の稜がある。ここで
も、1個のIC35′は各頂点又はノードに置かれ、入力回
線38′及び出力回線39′によって最も近い隣接ICに接続
される。しかしこの場合には各ICには4個の最も近い隣
接ICがあり、従って、4−立方体の4次元に沿って伸び
る4本の入力回線と4本の出力回線を持つことになる。
ブール4−立方体内の各ICの位置は、第4図に示したよ
うに4桁の2進数字で識別され、この4立方体の4次元
は、第4図に示されるように、ローマ数字のI,II,III,I
Vで識別される。
より高次元の立方体へのこのパターンの外挿法も明らか
にされる。どの場合にも、次に高い次元では、頂点の数
が2倍になり、各ICは1個余分な最も近い隣接ICを持つ
ことになる。従って、ブール15−立方体は、32,768の頂
点を持ち、各頂点にICを1個持つことになり、15個の最
も近い隣接ICを持つようになる。
ブール15−立方体の相互結合パターンに通信を行なわせ
るには、コンピュータシステムが、処理サイクルと径路
指定サイクルの両方を持つように操作する。計算は処理
サイクルの間に行なわれる。径路指定サイクルの間に、
計算の結果がメッセージパケットの形に編成され、これ
らのメッセージパケットは、パケットの一部となってい
るアドレス情報に従って、各IC中の回路系を径路指定す
ることによって、1つのICから次のICへ径路指定されて
行く。メッセージパケットの様式は第5図に描かれてい
るが、それは、ICアドレス15ビット、書式ビットが1ビ
ット、ICアドレスを複写する他の15ビット、IC中のプロ
セッサ/メモリへのアドレスが5ビット、メッセージの
32ビットと誤り検出の1ビットの合計73ビットから成り
立つことがわかる。誤り訂正のために追加のビットを加
えても良い。実例として、各ビットの持続時間は、1か
ら10メガヘルツ(MHz)の周波数に応じて、0.1から1マ
イクロ秒である。第5図には、システムに用いられる基
本的クロック信号PHI1及びPHI2も示されている。これら
の信号は、各々がメッセージパケットの1ビットと同じ
周期と周波数を持つ、非重複2相クロックである。
メッセージパケット内では、ICアドレス情報は、行き先
ICのアドレスに対して相対である。最初は、メッセージ
源であるICのアドレスとその行き先のアドレスとの相違
又は変位である。例えば、原始ICのアドレス010 101 01
0 101 010であり、行き先ICのアドレスが111 111 111 1
11 111であると、原始ICで生成された相対アドレスは、
101 010 101 010 101となる。この相対アドレスが、原
始及び行き先のアドレスの排他的論理和(XOR)になる
ことが明らかになる。相対アドレス中の1−ビットが、
メッセージパケットが正しい位置にない次元を識別し、
従って、行き先ICに到達するためにメッセージパケット
が通過しなければならない次元を識別する事も明らかに
なる。このように、偶数番号の次元において、原始及び
行き先ICのアドレスが同じであるような上記の例におい
ては、メッセージはそれらの次元ではすでに正しい位置
に置かれている。しかし、原始及び行き先ICのアドレス
が違う奇数番号の次元では、それらの次元のための相対
アドレス内に1−ビットが存在することは、その次元に
おいて、メッセージパケットを1つのICから他のICへ移
動させる必要があることを意味する。
メッセージが1つのICから他のICへ径路指定される時
に、相対アドレスは各移動を考慮に入れるため更新され
る。このことは、メッセージパケットが移動される次元
と関連する2重ICアドレス中のビットを補数化すると都
合良く行なわれる。その結果、メッセージパケットが行
き先ICへ到着すると2重ICアドレス中のビットは全てゼ
ロになる。
全てのIC中の径路指定回路系は、同一になっていて、同
じ径路指定サイクルを用いて同期的に操作される。ICア
ドレスは15ビット持つ73ビットのメッセージパケットの
第5図の例として、径路指定サイクルの長さは基礎的ク
ロック信号PHI1の88サイクルである。各径路指定サイク
ルの1回目の間に、各ICにおける径路指定回路系が径路
指定回路系内の各メッセージパケットのICアドレスの最
初のコピーの先頭ビットをテストして、そのレベルを決
める。この位置に1−ビットがあり、第1次元に関連し
ているICからの出力回線がふさがっていない場合、メッ
セージパケットは、第1次元出力回線から、第1次元内
でそのICに最も近い隣接ICまで径路指定される。メッセ
ージパケットアドレスの先行ビットが0−ビットである
と、メッセージパケットは、第1次元内の正しい位置に
あるので、同じIC内にとどまる。その結果、1回目の間
に、ICの径路指定回路間のメッセージの流れは第1次元
に沿ったものになる。
メッセージパケット内のICアドレスの最初のコピーの先
行ビットは、その後で破棄される。メッセージパケット
が他のICに径路指定されたとすると、2重ICアドレス内
の対応するアドレスビットは、そうした動きを償うため
に補数化される。
2回目のアドレス時間には、各ICの径路指定回路系は、
再び、ICに存在するメッセージパケットの先頭ビットを
テストする。しかし、このビットは、メッセージパケッ
トは、第2次元の正しい位置にあるかどうかを表示する
ビットである。もし、このビットが1−ビットで、第2
次元出力回路がふさがっていなければ、メッセージパケ
ットが、第2次元出力回線上を、第2次元中のそのICに
最も近い隣接ICに向かって径路指定される。もし、最初
のビットが0−ビットであると、メッセージパケットは
IC内にとどまる。
この過程は、15回のアドレス時間の間続き、その最後
に、メッセージパケットの最初の15のアドレスビットが
使い切られる。しかし、必要とされる出力回線が利用出
来れば、ブール15−立方体を通る径路が確立され、メッ
セージパケットの残りを転送することが出来る。
この径路指定機構の実例は、第4図のブール4−立方体
を参考にして示される。メッセージが、アドレス1111を
持つ原始IC35′から、アドレス0010を持つ行き先IC35′
へ送られる。装置アドレス又は行き先ICの変位は、原始
および行き先ICのアドレスの排他的論理和を取ることに
よって得られる。従って、相対アドレスは、メッセージ
パケットを第1,第2,第4次元で移動させ、第3次元では
移動してはならないことを表わす1101になる。それか
ら、原始ICにある径路指定回路は、相対アドレスの最初
のコピーの最初のビットを調べて1−ビットを識別し、
もしこの出力回路が利用出来れば、メッセージを第1次
元に沿ってIC0111に径路指定し、ICアドレスの最初のコ
ピーの最初のビットを破棄し、複製ICアドレス内の最初
の1−ビットを補数化する。2回目のアドレス時間内
に、アドレスが0111のICにある径路指定回路は、残りの
3個のアドレスビットの最初のものを調べて、再び1−
ビットを見つけ出す。従って、出力回線が利用出来れ
ば、径路指定回路はメッセージパケットをアドレスが00
11であるICに送り、第2次元での動きを表示するICアド
レスの最初のコピー内の1−ビットを破棄し、その動き
が起きたことを示すために複製ICアドレス内に1−ビッ
トを補数化する。
3回目のアドレス時間中に、アドレス0011にある径路指
定回路が、残りの2個のアドレスビットの最初のものを
調べて0−ビットを識別する。このICにメッセージパケ
ットを保持し0−ビットを破棄する。4回目のアドレス
時間には、アドレス0011にある径路指定回路が残りのア
ドレスビットを調べて1−ビットを識別する。従って、
それはメッセージパケットを出力回線に沿ってIC0010ま
で径路指定し、ICアドレスの最初のコピーの最後のビッ
トを破棄し、複製ICアドレスの最後のビットを補数化す
る。
IC0010に到達すると、径路指定回路は、テストする複製
ICアドレス内のどの1−ビットでも無ければそれを察知
し、従って、メッセージパケットがその行き先に到達し
たことがわかる。それからメッセージパケットは、アド
レスがメッセージパケット内に明記されているプロセッ
サ/メモリに運ばれる。径路指定過程についての詳細
は、第14図〜第19図を参照して下記で述べられる。
B.並行処理ICの全体的説明 各ICは非常に大きい規格の集積回路(超LSI)として単
一のシリコンチップ上に組み立てられる。第6図に示す
ように、これら64(=26)個のチップの各々が各チップ
パッケージ100に入れられ、各印刷配線回路(PC)板130
上に取り付けられ、相互結合される。このような32,768
個のICにそなえて、512(=29)枚の印刷配線回路板
が、適当な枠体内に取り付けられる。従来からある配線
取り付け具132が、2次元格子及びブール15−立方体構
造の双方において、これらの配線板を相互結合する。第
6図に示した構成では、ICの最も近い隣接ICのうち6個
が、それと共に同じPC板に取り付けられ、他の9個は違
うPC板に取り付けられる。
97本のピン102がそれぞれのパッケージ上に付けられ、
そのチップをPC板上の他のチップとシステムの他の部分
に接続している。これらの97本のピンが運ぶ信号を表II
Iに示す。IO-I27,リセット,PH11,PH12及びKシンクと名
付けられたピンはバス22に接続され、命令信号,リセッ
ト信号及びタイミング信号,PHI1,PH12及びKシンクをマ
イクロコントローラ20から受ける。CS0及びCS1ピンは、
両方のピンでの信号が低い時にチップをアドレス付けす
るチップ選択ピンである。これらのピンを選択する信号
はバス24によってアレイ30に与えられる。N0-7、SWO-7
及びEO-7ピンは、北,南,西及び東の隣接するチップ上
の最も近いプロセッサ/メモリへの接続を行なう。Cube
In O-14及びCube Out0-14ピンは、ブール15立方体内の
最も近い隣接プロセッサ/メモリへの接続を行なう。グ
ローバルピンは、回線26を越えてマイクロコントローラ
20に接続される。LEDピンは、活性化されている時に発
光ダイオードを駆動してチップに視覚信号を生成させる
出力を提供する。この信号を用いてテストや監視を行
い、また計算の結果を表示したりすることも出来る。6
本の接地及び電源ピンは、チップに接地及び電源接続を
する。
第7図及び第8図は、アレイ30の32,768個の同一のIC35
のうちの1個をブロック図で描いている。第7図に示す
ように、1個のICの32のプロセッサ/メモリ36は、8列
で4行のアレイ内で接続されている。そして、便宜上、
このアレイの稜は、北,東,南及び西と識別されてい
る。第7図には個別のプロセッサ/メモリの空間関係が
描かれていないが、第20図のチップ配置図に見られるよ
うに、それらの空間関係は異なっている。第7図にもど
ると、各プロセッサは、N,E,S及びWとラベルを付けた
入出端子を通じて、北,東,南及び西の最も近い隣接者
と接続されている。また、各プロセッサはデイジーとラ
ベルを付けた入力端子を通じて1つの回線内にデイジー
チェーンにつながれている。各プロセッサからこれら5
個の入力端子への出力は、最も近い隣接者のN,E,S及び
W入力端子と、チェーン内に次のプロセッサ/メモリの
デイジー入力端子とに接続されている出力端子キャリー
上にある。後に明らかになるように、デイジーチェーン
は下部左端角に始まり、第1列目を上へ行き、2列目は
下行し、3列目は上へ行きというように進んで、アレイ
の下部右端角に達する。
8本の双方向回線104が、このプロセッサ/メモリアレ
イから北のNO-7チップピンに伸び、さらに8本の双方向
回線106がプロセッサアレイから南のSWO-7に伸びる。こ
れらの8本の回線106のうち4本は、西からの4本の双
方向回線108と多重化される。さらに4本の双方向回線1
10が、アレイから東のEO-3チプピンへ伸びる。これらの
回線の読み取り/書き込み機能は、書き取り回線113,11
4,115によって制御され、それらは回線励振器117,118,1
19をそれぞれ制御し、データを北,東又は南/西に書き
込む。南と西の導線の多重化は、2次元格子アレイ内の
データの流れが一時的に一方向(例えば、東から西)に
しか流れないので、可能である。
格子及びデイジーチェーン接続に加えて、各プロセッサ
/メモリは共通してアドレス及び出力信号バス121、メ
ッセージパケット入力信号回線122、メッセージパケッ
ト出力信号回線123、及びグローバス出力信号回線124に
接続されている。これらの回線とバスへの接続は、最東
端の4個のプロセッサ/メモリについてのみ第7図に示
されているが、32個全てのプロセッサ/メモリにも同じ
接続がなされることが理解出来るだろう。
第8図に示すように、各IC35はタイミング発生器140、
プログラム可能な論理アレイ(PLA)150、通信インタフ
ェース装置(CIU)180、径路指定回路200及び32個のプ
ロセッサ/メモリ36から成る。タイミング発生器140は
シフトレジスタ145で、システムクロック信号PHI1及びP
HI2によってパルスがきざまれる。この発生器はマイク
ロコントローラ20からのタイミング信号、Kシンクによ
ってリセットされる。よく知られる技術によって、この
レジスタは第12図,第13図,第17図及び第19図に示され
る型のタイミング波形を作り出し、通信インタフェース
装置180及び径路指定回路200の動作を制御する。
プログラム可能な論理アレイ(PLA)150は、マイクロコ
ントローラ20から回線22上の命令を受け、これらの命令
をアドレス及び出力信号バス121の信号に復号化する復
号化マトリックスである。命令は、表IIIに識別されて
いる28本のピンの上にあるチップパッケージ100で受け
取られる。I5-8及び27ピンの信号は例外であるが、これ
らの信号はPLA入力ラッチ151に直接送られPLA150によっ
て復号され、プロセッサ/メモリ36によって使われる
間、そこに記憶されている。I5-8ピン上の信号は、4個
のANDゲート165に送られ、そこで、ピンI27上の信号が
高くなった時にメッセージパケット入力信号回線122に
受けた信号の最後の4ビットに従って変更される。ピン
I27は、否定回路166によって、これら最後の4個のビッ
トを記憶する直列−入力、並列−出力ラッチ167、及
び、ピンI27上の否定信号とラッチ167の並列出力との論
理和を形成する4個のORゲート168に接続される。
第8図に示されるように、バス121は2個の16回線バス1
52,154、各プロセッサ/メモリ36内のRAMレジスタ250に
接続されている2個の32回線バス156,158、ALU270に接
続されている2個の8回線バス162,64、8回線バス172,
2個の16回線バス174,176、および各プロセッサ/メモリ
内のフラグコントローラ290に接続されている1本の回
線178を含む。バス152,154,156,158,172,174及び176上
の信号は、RAMレジスタ250及びフラグコントローラ290
内の特定の場所から又はそこへの情報を読み出すか書き
込むために使われる復号アドレス信号である。このアド
レス信号を完成するには、バスの1回線が1個の2進信
号、例えば、高信号又は1−ビットを送り、他の回線全
てが他の2進信号、例えば低信号又は0−ビットを送
る。ALU270へのバス162,164上の信号は、ALU270の違う
可能性のある出力である。これらの信号についての詳細
は、第9図と第10図を用いて下記に述べる。
通信インタフェース装置(CIU)180はICのプロセッサ/
メモリとそのICに関連する径路指定回路との間で出入り
するメッセージパケットの流れを制御する。CIU180は否
定回路181,ラッチ182,タップされたシフトレジスタ184,
第1,第2セレクタ186,188及び第1,第2パリティ論理回
路190,192とを含む。第8図に示すように、ICのプロセ
ッサ/メモリ36からのメッセージパケット出力信号回線
123は、否定回路181によって、ラッチ182への入力、シ
フトレジスタ184、セレクタ186、及びパリティ論理回路
190に接続される。ラッチ182の出力は、回線194上を径
路指定回路200へ送られ、プロセッサ/メモリ36のうち
の1個からのメッセージパケットが利用出来る時にそれ
を指示する。メッセージパケット自体は、セレクタ186
から回線196上の径路指定回路に送られる。CIU180で受
け取られた時の状態では、出て行くメッセージパケット
は、行き先ICの相対ICアドレスのコピーを1つだけ持っ
ている。タイミング発生器140からのタイミング信号の
制御のもとで、セレクタ186及びシフトレジスタ184が相
対ICアドレスのコピーを生成し、メッセージパケットの
前端部に挿入する。パリティ論理回路190がメッセージ
パケットの正しいパリティビットを計算し、それをメッ
セージパケットの一部として径路指定回路に供給する。
径路指定回路からの信号は、回線197,198及び199を介し
てセレクタ188に送られる。これらの信号回線は、それ
ぞれ、入ってくるメッセージパケットが径路指定回路か
ら来るかどうかの指示、入ってくるメッセージパケット
自体、そして、回線196上の出て行くメッセージパケッ
トが首尾よく径路指定回路に受け取られたかどうかの指
示を出す。セレクタ188の出力は、メッセージパケット
入力回線122上のプロセッサ/メモリ36に送られるメッ
セージパケットである。パリティ計算はパリティ論理19
2によって行なわれる。これらの回線の動作についての
詳細は、下記の第11図の説明中で述べる。
径路指定回路200は、ブールn−立方体中の最も近い燐
接ICから又はそれらへのメッセージパケットの径路指定
を制御する。回路200は、回線割り当て器205、メッセー
ジ検知器210、バッファ及びアドレス復元器215、及びメ
ッセージインジェクタ220とから成る。回線割り当て器2
05は、その特殊なICの15個の最も近い隣接ICからの15本
の入力回線38及び同じ15個の最も近い隣接ICへの15本の
出力回線39とを持つ。回線割り当て器205には、メッセ
ージ検知器210への15本のメッセージ出力回線206及びメ
ッセージインジェクタ220からの15本のメッセージ入力
回線207を持つ。加えて、各メッセージ入力回線207に
は、関連するメッセージ入力回線207上にメッセージが
あることを表示するもう1本の回線が208がある。回線
割り当て器205は、入って来る回線38上に受けるメッセ
ージパケットのアドレスを分析し、それらがこのICに向
けられたものか、あるいは他のIC向けのものかを決め、
可能であれば、メッセージパケットをその行き先まで径
路指定し、このICあてのメッセージパケット、そして、
回路割り付けの障害のために径路指定出来なくなったメ
ッセージパケットを記憶しておく。
メッセージ検知器210はメッセージパケットの受け取り
をチェックし、回線割り当て器205から回線206上に受け
たメッセージパケットのアドレスを調べ、このICあての
メッセージパケットを回線198上のCIU80へ供給する。第
8図に示された回路内で、回線198は、メッセージパケ
ットを一度に1個しか転送出来ない。このICに1個以上
のメッセージパケットがアドレス指定されている場合に
は、1個のパケットがCIU80に提供され、他のパケット
は、違うICにアドレス指定されている他のメッセージパ
ケットとともにバッファ215に提供される。
バッファ及びアドレス復元器215は、タップされたシフ
トレジスタ184と構造と機能において似ているタップさ
れたシフトレジスタから成る。バッファ215はメッセー
ジパケットの初めにおいてメッセージパケット内にある
複製アドレス情報からメッセージパケットのアドレスの
コピーを再生する。バッファ及びアドレス復元器の出力
はメッセージパケットインジェクタ220に加えられる。
メッセージパケットインジェクタ220は、CIUから径路指
定回路を循環しているメッセージパケットのグループの
中に、一度に1つずつメッセージパケットを注入する。
径路指定回路の詳細は第14図〜第19図を参照して説明す
る。
IC35のチップ配置図は、第20図に描かれてる。この配置
図中でPLA150は右側のチップの上部と下部のふちに位置
する2つのアレイ内に入られている。個別のプロセッサ
/メモリ35は、PLA150の間のスペースにバスドライバを
間に挟んで4つのグループに分けて形成される。個別プ
ロセッサ/メモリについての下記の記述から明らかにな
るように、各プロセッサ/メモリは、動的読み−書き記
憶装置、このような記憶装置へのアドレス指定回路系、
ALU、フラグレジスタ、フラグレジスタへのアドレス指
定回路系及び他の励振器回路の38ビットを持つ。CIU180
はチップの上部中央に置かれ、タイミング発生路140及
び径路指定回路200は、チップの左側部分を占める。こ
の配置では、PLA150から個別のプロセッサ/メモリ36へ
のアドレス及び出力信号バス121は、個別プロセッサ/
メモリとバス励振器を通る垂直な回線のアレイである。
プロセッサ/メモリからCIU180への出力回線も、同様
に、本質的には垂直な回線である。1個のプロセッサ/
メモリの展開図に示されるように、プロセッサ/メモリ
内の信号の流れは、本質的には、バス121に対して直角
になる。
その結果、回線の交差は最小限になり、回路配置が簡素
化される。
1個のプロセッサ/メモリ36を超LSI設計内におさめる
のに要するトランジスタの概数は、1800個であり、PLA1
50,32プロセッサ/メモリ及びバス励振器のトランジス
タの数は約60,000個である。タイミング発生器,径路指
定回路系及びCIUには約24,000個のトランジスタが必要
である。1個のシリコンチップ上に100,000以下のトラ
ンジスタの集積回路を構成することは、現在の技術で充
分行なえることであり、約7mm×8mmの1個のシリコンチ
ップ上に集積回路35の大量生産も、今日の技術で可能と
思われる。
C.プロセッサ/メモリの説明 プロセッサ/メモリが、第9図と第10図により詳細に開
示されている。第9図に示されるように、プロセッサ/
メモリは、ランダムアクセスメモリ(RAM)250、演算論
理装置(ALU)280及びフラグコントローラ290から成
る。ALUは、3送信源、即ちRAM内の2つのレジスタ及び
1個のフラグ入力からのデータで動き、2出力、即ちRA
Mレジスタの1個に書き込まれる合計出力及び、フラグ
コントローラ内のいくつかのレジスタと他のいくつかの
プロセッサ/メモリにも利用出来るキャリ出力とを発生
する。ALUの動作は、読み出しサイクル及び条件つき書
き込みサイクルで行なわれる。書き込みサイクルの間
に、特定の条件が満たされていればこれらの結果がRAM
及びフラグレジスタに書き込まれる。ALUのタイミング
は、合計及びキャリ出力の新しく計算された値が書込サ
イクルの前に利用出来るようにする。このことによっ
て、合計出力信号を書き込みサイクルの間にRAMレジス
タの1つに書きもどすことができ、キャリ出力が、1回
の命令サイクルの間に同じチップ上の多数のプロセッサ
/メモリを通って伝播することが出来る。
RAM250 RAM250は、各々が32ビットの12個のレジスタ254の形に
配置された動的読み/書きメモリIC252のアレイから成
る。32ビットの各々は列0から32において個別にアドレ
ス指定することができる。レジスタには0から15まで番
号が付けられ、アドレス回線が16のレジスタを呼び出さ
せるように準備される。しかし、レジスタ12及び13は使
用されず、レジスタ14及び15は、RAM250内に記憶されな
い信号を出す。0から11までのレジスタは汎用レジスタ
である。レジスタ14及び15は、特別の機能を持つ。レジ
スタ14の全てのビット位置はその時回線122上にあるビ
ットと同じ値を持ち、レジスタ15のすべてのビット位置
はゼロになる。このように、レジスタ15はデータシンク
として働く。
RAM250への入力は、バス152,154,156,158,ALU280からの
合計出力回線285,CIU180からのメッセージパケット入力
回線122、及び、フラグコントローラ290からの書き込み
許可回線298である。RAM250からの出力は、回線256,257
である。回線256,257上の信号は、RAM250内の2つの異
なるレジスタの同じ列から得られ、そのレジスタの1つ
はレジスタAと呼ばれ、他はレジスタBと呼ばれる。バ
ス152,154,156,158はこれらのレジスタとその中の列
を、マイクロコントローラ20からの命令語に従ってアド
レス指定する。
実例をあげると、表IIIを参考にして、回線I5-8はPLA15
0で復号され、レジスタAを選択又はアドレス指令する
バス121の16本の回線152のうちの1本に高い信号を送
り、回線I9-12は復号されてレジスタBを選択する16本
の回線154のうちの1本に高い信号を送り、回線I13-17
は復号されて、RAM250内の32列のうちの1個を選択する
32本の書き込み回線156のうちの1本又は32本の読み取
り回線158のうちの1本のどちらかに高い信号を送る。
このようにして回線152-158が、12×32ビットRAM内の2
個のセルを特定し動作が読み出しか書き込みかを特定す
る。
RAM250の詳細は、RAM250の上部左隅の4個のセルと関連
する回路系とを描いている第10図に示される。各セル25
2は、図示されるように接続されている3個のパストラ
ンジスタ261,262,263を含み、トランジスタ263内に情報
の1ビットを記憶する。データ1ビットは、読み出し選
択回線の1つ及びパストランジスタ262の1つの上の信
号の制御のもとに、トランジスタ263から読み出され
る。
32個のセル252の各レジスタ254も、ビット回線255,リフ
レッシュ回路264及びプレチャージトランジスタ271を含
む。加えて、回線122は1組のパストランジスタ273,274
に接続され、他の1組のパストランジスタ273,274には
接地接続がなされ、0−ビットの送信側となり、レジス
タ15としてデータシンクとなる。16個のパストランジス
タ273はレジスタA選択275を構成し、各パストランジス
タは、ANDゲートとして機能し、それは16本の回線のう
ちの異なる1本によって使用可能になり、RAM250内の16
ものレジスタのうちの1個からレジスタAを選択する。
同様に、16個のパストランジスタ274はレジスタBセレ
クタ276を構成し、各トランジスタは、これら16個のレ
ジスタからレジスタBを選択する16本の回線154の異な
る1本に接続される。どのような時も、パストランジス
タ273のうちの1個のみ、そしてパストランジスタ274の
うちの1個のみが、レジスタA及びレジスタBの出力を
選択するために導通している。
各トランジスタ273の出力は一緒に接続され、回線256上
にレジスタA信号を出し、各トランジスタ272の出力は
一緒に接続され、回線257上にレジスタB信号を送る。
回線256上の信号が、双方向ドライバ258によってALU280
への入力に送られる回線257上の信号は、ドライバ259に
よってALU280への他の入力へ送られる。
ALUの書き込みサイクルの間、合計出力信号はレジスタ
Aに書きもどされる。好都合なことに、この信号は、双
方向ドライバ258,回線256及び信号を導通しているパス
トランジスタ273を経てレジスタAのトランジスタ266へ
送られる。
RAM250は4相クロック信号で動くが、その信号のうちの
2個は基本的クロック信号PHI1及びPHI2であり、他のPH
I1P及びPHI2PはPHI1及びPHI2のプレカーソル(pre-curs
ors)である。クロック信号PHI1P及びPHI2Pはプレチャ
ージ回線272に与えられる。クロックサイクルPHI1の間
の各読み出し動作及びクロックサイクルPHI2の間の各書
き込み動作の前にビット回線255をプレチェージする。
クロックサイクルPHI1P及びPHI2Pの間、プレチャージ回
線272の信号は高く、プレチャージトランジスタ271を導
通させ、正電圧源VDD及び各ビット回線との間の接続を
行なう。クロックサイクルPHI1Pの間に、この接続によ
って各ビット回線255を、高い信号又は1−ビットに充
電する。
クロックサイクルPHI1の間、前回の書き込みサイクルの
間にパストランジスタ263に記憶された信号が反転され
た形でRAM250の各レジスタのビット回線255で読み出さ
れる。記憶された信号が高い信号又は1−ビットである
と、パストランジスタ263は導通され、接地径路を形成
する。その結果、読み出し選択回線158上にパストラン
ジスタ262への高い信号が与えられると、接地点への径
路が出来て、それがビット回線255を低いものにする。
従って、前回の書き込みサイクルの間にトランジスタ26
3に書き込まれた1−ビットは0−ビットに変換され
る。逆に0−ビットがトランジスタ263に書き込まれて
いると、接地径路が出来ないため、ビット回線255は高
いままになる。その結果、トランジスタ263上に書き込
まれたビットは、再び反転され、この場合は1−ビット
になる。反転されたビットは、次のクロックサイクルで
あるリフレッシュサイクルの間に、再反転される。
クロックサイクルPHI1の間、読み出し回線286上の信号
も高く、各トランジスタ265を導通させる。その結果、
各ビット回線255上の信号は、リフレッシュ回路264内の
トランジスタ266に書き込まれる。同時に、レジスタA
セレクタのトランジスタ273によって選択されたビット
回線上の信号、及び、レジスタBセレクタのトランジス
タ274によって選択されたビット回線上の信号とは、ド
ライバ258,259に送られる。これらのドライバが、回線2
98上の書き込み使用可能信号によって使用可能になる
と、レジスタA及びレジスタB信号はそれぞれ、出力回
線256及び257上のALU280に送られる。
クロックサイクルPHI2Pの間、プレチャージ回線272及び
リフレッシュ/書き込み回線269は高く、各トランジス
タ267及び271を導通させる。クロックサイクルPHI1の間
にトランジスタ266上に1−ビットが書き込まれると、
とのトランジスタも導通され、ビット回線255を低くす
る接地径路が形成される。その結果、クロックサイクル
PHI1の間にトランジスタ266上に書き込まれた1−ビッ
トは、0−ビットに変換される。逆に、0−ビットがト
ランジスタ266に書き込まれていたとすると、リフレッ
シュ回路264には接地径路がなく、ビット回線255は、正
電圧VDDとビット回線255間に導電径路を作るプレチャー
ジトランジスタ271によって高くされる。その結果、ト
ランジスタ266に書き込まれた0−ビットは1−ビット
に反転される。
クロックサイクルPHI2の間、各ビット回線上の信号は、
書き込み選択回線156の1本によって選択された列内の
セルの各トランジスタ263に書き込まれる。特に、書き
込み選択回線156の1本に高い信号が加えられると、そ
れが加えられたトランジスタ261は導通され、ビット回
線255とトランジスタ263との間に径路が出来て、各ビッ
ト回線上の信号がトランジスタ263上に書き込まれる。
この信号はクロックサイクルPHI1の間にトランジスタ26
3から読み出された時に一度、又、クロックサイクルPHI
2Pの間にトランジスタ266から読み出された時に一度、
反転されているので、トランジスタ263へ書きもどされ
た信号は、最初に読み出された信号と同じであり、トラ
ンジスタはリフレッシュされる。
しかし、レジスタA出力を作るビット回線255の場合
は、クロックサイクルPHI2の間にトランジスタ263に書
き込まれた信号は、ALU280の合計出力であり、トランジ
スタ263から最初に読み出された信号ではない。合計出
力信号は、クロックサイクルPHI2Pの間に、回線285上の
双方向ドライバ258に使えるようになる。この信号が低
いと、ドライバ258は、クロックサイクルPHI1の間にト
ランジスタ266上に記憶された信号の状態に関係なく、
レジスタA内のトランジスタ266上に0−ビットを書き
込む。同様に、合計出力信号が高いと、ドライバ258
が、クロックサイクルPHI2Pの間にトランジスタ266上に
記憶された信号に関係なく、トランジスタ266上に1−
ビットを書き込む正電圧源VDDに径路を作る。ここで
も、トランジスタ266上の1−ビットがビット回線255を
低くし、0−ビットが回線255を高くする。その結果、
クロックサイクルPHI2の間、レジスタAのビット回線25
5の状態は合計出力信号の逆であり、あのレジスタのセ
ルのトランジスタ263上に書き込まれた信号になる。
フラグコントローラ290 第9図に示すように、フラグコントローラ290は、8個
の1−ビットD−タイプフリップ−フロップ292,16から
2を取り出すセレクタ294及びいくつかの論理ゲートの
アレイである。フリップ−フロップ292への入力は、ALU
280からキャリ出力信号、セレクタ294からの回線298上
の書き込み使用可能信号、及びPLA150からのバス172の
8本の回線である。回線172はアドレス回線であり、そ
の各々はフリップ−フロップ292の他の1つに接続さ
れ、フラグビットが書き込まれるフリップ−フロップを
選択する。実例をあげると、フリップ−フロップはその
フリップ−フロップに接続されている回線上の高い信号
によって選択され、低い信号は、他の7個のフリップ−
フロップに接続された他の7本の回線上におかれる。フ
リップ−フロップ292の出力は、セレクタ294に加えられ
る。これらのフリップ−フロップのうちの1つ、グロー
バルフリップ−フロップの出力は、パストランジスタ12
4′によってグローバル出力信号回線124に加えられ、他
のフリップ−フロップ、ComEフリップ−フロップの出力
は、NANDゲート293に加えられ、NANDゲートの出力は、
パストランジスタ123′によってメッセージパケット出
力信号回線123に送られる。
セレクタ294への入力は16のフラグ信号回線295にもな
り、そのうち8本はフリップ−フロップ292からのもの
で、バス174,176の各々から16本の回線が来る。回線17
4,176はアドレス回線であり、出力又はそれより先の処
理のためのフラグシグナル回線の1つを選択する。セレ
クタ294は回線296及び297の出力を与え、それらの回線
は、それぞれアドレス回線174及び176によって選択され
たフラグのどちらかになる。回線296上のフラグはフラ
グアウト信号である。回線297上のフラグは、排他的OR
ゲート299によってPLA150からの回線178上の信号と比較
され、書き込み使用可能信号を回線298上に作り出す。
セレクタ294は、RAM250内のアレイ275,276に似た、各々
16のパストランジスタの2本のアレイによって助けられ
る。16本の回線174の各々が最初のアレイの1個のパス
トランジスタを制御し、16本の回線176の各々は、2番
目のアレイの1個のパストランジスタを制御する。パス
トランジスタの各々は、回線174,176上の適切な信号に
よって使用可能にされるANDゲートを構成する。個別の
フラグ入力は、各アレイに1個ずつ、2個の異なるパス
トランジスタに送られる。回線296上のFLAG OUT信号
は、最初のアレイの16個のパストランジスタの出力の単
なる論理ORである。回線298上の書き込み使用可能信号
は、2番目のアレイの16個のパストランジスタの出力の
論理ORを回線178上の信号と比較することによってえら
れる。
フラグの名称、アドレス及び機能を表IVに示す。
8個のフラグレジスタ292(アドレス0−7)には、ALU
280のキャリ出力回線からのデータを書き込んでもよ
い。これらの値は、プロセッサ/メモリの内部動作に用
いてもよい。フラググローバス及びComEは、特別な機能
を持っている。チップ上の全てのプロセッサ/メモリ36
からのグローバルフラグの出力は、一緒に反転及びORさ
れ、バス124に加えられ、チップ上のグローバルピン
(表III参照)に供給される。32,768個のチップアレイ
内の全てのグローバルピンの出力は、ともにORされ、回
線26に加えられ、マイクロコントローラ20に供給され
る。ComEフラグがALU280のキャリ出力を、CIU180へのメ
ッセージパケット出力信号回線123へ送る。チップ上の
数個のプロセッサ/メモリが同時に回線123に出力を与
えると、径路指定回路200への回線196上のCIU180の出力
が、その時に回線123に出力を与えている全てのプロセ
ッサ/メモリのキャリ出力の論理和になる。
北,東,南及び西フラグは、北,東,南及び西の最も近
い隣接プロセッサ/メモリのキャリ出力回線からのプロ
セッサ/メモリへの入力となる。同様に、デイジーフラ
グは、デイジーチェーンで隣にあるプロセッサ/メモリ
のキャリ出力回線からの入力である。通信インタフェー
ス装置(CIU)180からのメッセージは、メッセージパケ
ット入力信号回線122により、フラグコントローラ290と
RAM250への入力に送られる。プロセッサ/メモリからの
メッセージは、メッセージパケット出力信号回線123上
のCIU180に与えられる。ゼロフラグは常にゼロ出力を提
供する。
前述のように、プロセッサの動作には読み出しサイクル
及び書き込みサイクルが含まれる。読み出しサイクルの
間に、チップのピンI18-21上の信号が読み出されるフラ
グのアドレスを特定する。これらの信号はPLA160によっ
て復号化され、16本回線バス174上のセレクタ294に送ら
れる。書き込みサイクルの間に、チップのピンI18-21上
の信号が、キャリ出力が読み出されようとしているフラ
グレジスタ292のアドレスを特定する。ピンI18-21上の
信号は、読み出し及び書き込みサイクルの間を変化する
こともあり、送信側と行き先フラグが違うことがある。
チップ上の全てのプロセッサ/メモリがアドレス及び出
力信号バス121に並列に接続されているので、全てのプ
ロセッサ/メモリはピンI0-27から同じ命令を受ける。
しかし、各命令の実行は、コントローラ290のフラグの
1個の状態によって条件付けされる。チップのピンI22-
25上の信号は、実行が条件付けされているフラグのアド
レスを特定し、ピンI26上の信号が、テストがゼロのた
めであるか、それとも1のためであるかどうかを特定す
る。これらのアドレス信号はPLA150で復号化され、16本
回線バス176上の16から2とるセレクタ294へ送られる。
ピンI26上の信号は、回線178上のXORゲート299に送られ
る。XORゲート299は、回線178上の信号をバス17616本回
線の1本上の信号によって特定されたアドレスのフラグ
と比較される。2つの信号が同じものであると、書き込
み使用可能信号が、書き込みサイクルの間に回線298上
に発生され、これにより、読み出しサイクルの間に決定
された合計とキャリ出力とが、RAMレジスタA及びバス1
72上の信号によって特定されたフラグレジスタ292内に
書き込まれる。
ALU280 ALU280は、8から1をとる復号器282,合計出力セレクタ
284及びキャリ出力セレクタ286を含む。
ALU280は、一時に3個のビット上で動作する。そのうち
の2個はRAM250内のレジスタAとBからの回線256,257
上に、1個はフラグコントローラ290からの回線296上に
ある。ALUは、2個の出力を持ち、それらはRAM250のレ
ジスタ内に書き込まれる回線285上に合計、及び、フラ
グレジスタ292に書き込まれ、このプロセッサ/メモリ
が接続されている他のプロセッサ/メモリ36の北,東,
南,西及びデイジーチェーンに加えられる回線287上の
キャリとである。レジスタAをアドレスするピンI5-8上
の信号は、読み出しと書き込みの間で変化することもあ
り、読み出しサイクルの間に特定されたレジスタAは、
書き込みサイクルの間に特定されたものとは異なること
もある。
ALUは、5種の基本動作ADD,OR,AND,MOVE及びSWAPの変形
の全てである32個の機能の合計及びキャリ出力を発生す
ることが出来る。特定の機能が、ピンI0,I1及びI2(表I
II)上の信号によって選択される。基本動作は、命令語
中の適当なビットを決めることによってALUへの3つの
入力のいずれかを選択的に補数化することによって修正
される。これらのビットは、ピンI2-14上のチップに用
いる。基本動作、チップ入力及び合計とキャリ出力の要
約を表Vに示す。
ここで、A,BとFはそれぞれ、レジスタA,レジスタB及
びフラグコントローラからの出力であり,Vは包含的(in
clusive)OR動作、+は排他的OR動作、出力の組の間に
記号がないものはAND動作を表わす。上記の表に示され
るように、I2ビットは、MOVEとSWAP動作の区別をするた
めに用いられる。MOVE機能の合計出力とSWAP機能の両出
力は、A入力からは独立しており、結果として、レジス
タAからの入力の反転は、これらの動作にとって意味が
ない。MOVE機能のキャリ出力に対してレジスタAの内容
は反転されない。
単一のチップ上の32個のプロセッサ/メモリ内にこの能
力を持たせるために、PLA150は、ALUへの入力の全ての
可能な組合わせに対してピンI0からI4までの異なる命令
の各々のための合計及びキャリ出力テーブルを発生する
ようプログラムされている。ALUは、ALUに加えられた入
力の実際の組合わせに対して、適切な合計出力及びキャ
リ出力を選択するだけである。ALU280には、3本しか入
力がないので、これらの入力上の信号の可能な組合わせ
は8組しかない。即ち、000,001,010,011,100,101,110,
111である。これら8組の組合わせに対して、PLA150
は、表V中の式で特定されているように合計出力及びキ
ャリ出力を発生する。従って、ピンI0-I4上の命令によ
って特定された32個の命令の各々に対して、PLA150は、
バス162の8本の回線上に可能な合計出力とバス164の8
本の回線上に可能なキャリ出力信号と発生する。これら
2組の信号は、それぞれ、チップ上の各ALUの合計出力
セレクタ284及びキャリ出力セレクタ286にあたえられ
る。
第9図に示すように、これらのセレクタの各々はパスト
ランジスタのアレイであり、パストランジスタの各々
は、復号器282の出力上の適切な信号によって使用可能
(enable)になるANDゲートを構成する。これらの出力
のそれぞれは、出力回線に隣接する桁の数字によって表
示されるようにその入力で受けた信号の8組の可能な組
合わせの一つに相当する。それ故、回線285上の合計出
力及び回線287上のキャリ出力とは、2個の信号とな
り、1個は回線162の1本上にあり、他の1個は回線164
上にあり、復号器272への入力の特定の組合わせのため
に表Vの式で定義された出力である。
例えば、AND機能を考えてみると、表Vに特定されてい
るように、この機能のための合計出力とキャリ出力は、
復号器282への少なくとも1個の出力が0−ビットの時
は0−ビットであり、出力は、復号器282への入力全て
が1−ビットの時のみ1−ビットになる。復号器282へ
の入力の8組の可能な組合わせのうちの1組のみが全て
1−ビットなので、8本の回線162のうちの1本のみ、
そしてPLA150からALU280への8本の回線のうちの1本の
みが、AND機能がピンI0上の1−ビット及びI1上の0−
ビットによって特定された時に1−ビットを出す。従っ
て、セレクタ284及び286内のゲートによって送られる信
号は、復号器282への全ての入力が1−ビットの時以外
は0−ビットである。
ピンI0-14上に特定された32個の機能のための回線162及
び164上の出力回線の完全な表が表VIに示される。
これらの32機能、及びRAMレジスタ15とフラグコントロ
ーラ双方のゼロのソースは、下記の動作の全てを実行す
ることが出来る。
整列したフィールドの加算または減算、 定数の加算又は減算、 フラグレジスタ及び/またはレジスタAへの出力を持つ
2つのレジスタのブール(または論理)機能の計算、 フラグレジスタ及び/またはレジスタAへの出力を持つ
レジスタA及びフラグのブール機能の計算、 1つのRAMレジスタから他へ、レジスタからフラグレジ
スタへ、または、フラグレジスタからRAMレジスタへの
移動、 レジスタの桁移動また置換、 整列したフィールドを比較して1つが他と等しいか、他
より大きいか、あるいはまた、小さいかということの決
定、 フィールを定数と比較して一方が他と等しいか、他より
大きいか、または小さいかということの決定、 均等性を求めるため、一時に2ビットの定数を持つ欄の
比較。
例えば、レジスタA及びBの内容を加算するためには、
レジスタA及びBを識別するピンI5-I8,I9-I12上の信
号、及び、ADD命令が実行されるレジスタ内の列を識別
するピンI13-I17上の信号とともに、ADD命令00000を、
チップパッケージ100のピンI0-I4へ32回与える。その
上、ピンI18-I21上の信号は、各ADD動作への第3の入力
とキャリ出力が書き込まれるフラグレジスタを構成する
フラグを識別する。ピンI22-I25上の信号は書き込み段
階が条件付けられようとするフラグを特定し、ピンI26
上の信号が、テストの条件を特定する。32個の命令の実
行過程を通じて、ADD命令及びレジスタA及びBの識別
が一定なので、ピンI0からI12上の信号は同じままであ
る。ピンI13-I17上の信号によって示される列数は、ADD
命令が実行される度に1つずつ増加し、レジスタA及び
B内の異なる組のビットを呼び出す。ADD命令を最初に
実行するには、読み出しサイクルの間にピンI18-I21上
の信号は1111となり、ゼロフラグをアドレス指定し、そ
れによってキャリ入力をゼロで初期値を設定する。ADD
動作の残りの32回の実行の最初の書き込みサイクル及び
読み出し書き込みサイクルのために、ピンI18-I21上の
信号が、フラグレジスタ292のうちの1つをアドレス指
定し、キャリ出力がそこに記憶され、そこから読み出さ
れるようにする。回線285上の合計出力は、レジスタA
内に書きもどされる。
減算は、減数であるレジスタ入力の補数化を伴いADD命
令によって実行される。乗算及び除算は、種々な加算及
び減算算法を用いて実行することができる。
ブール機能は、同じような方式で、一度に1列ずつ実行
される。AND及びOR機能の場合は、結果は合計出力を経
てレジスタAに与えられる。結果は、キャリ出力を経て
フラグレジスタにも与えてもよい。排他的OR(XOR)機
能は、フラグがAおよびB入力のいずれかの組が同じで
はないかどうかを記録するために用いられるMOVE機能の
キャリ出力によって与えられる。NAND及びNOR機能は、
全ての入力が補数化された時、それぞれ、OR機能及びAN
D機能から、周知の論理式に従って与えられる。レジス
タ転送動作も、一度に1列ずつ、レジスタBと指示され
たレジスタの内容を、レジスタAと指示されたレジスタ
へ転送するMOVE機能を用いて、同様に行なわれる。
データ桁移動動作は、SWAP機能及びフラグレジスタを用
いて行なわれる。桁移動されるデータの各ビットは、先
ず、レジスタBと指示されたRAMレジスタ内のその列か
ら読み出され、指示されたフラグレジスタに記憶され
る。次のSWAP命令の実行に際して、フラグレジスタ内の
データビットは、RAMレジスタ内の隣接する列内に書き
込まれ、RAMレジスタB内のその列中のデータビット
は、フラグレジスタに書き込まれる。桁移動の方向は、
RAMレジスタB内のデータが最も有意性の少ないビット
から最も有意性のあるビットへ、あるいはその逆にアド
レス指定されたかどうかによって決まる。
SWAP機能は、レジスタBからキャリ出力回線へデータを
与え、北,東,南,西またはデイジーチェーンのいずれ
かからレジスタBへデータを書き込むことによって、デ
ータが1つのプロセッサから他へ送られるようにもす
る。
比較演算の実現のための算法は、この技術に通じた人々
にとっては前述の説明で明らかであろう。例えば、2ビ
ット間の違いは、それらを合計しキャリを無視すること
によって識別出来る。その場合の合計が0−ビットなら
ば、違いはない。1−ビットであれば、違いがある。プ
ロセッサ/メモリによる異なる命令の各々を実行するこ
とからくるキャリ出力は、チップ上の最も近い隣接プロ
セッサ/メモリの北,東,南及び西入力への回線287上
で使用可能である。これはデイジーチェーン内の次のプ
ロセッサ/メモリのデイジー入力にも使用出来る。これ
ら隣接するプロセッサ/メモリへの入力を経て、キャリ
出力は、チップ上の他の離れているプロセッサ/メモリ
にも使用可能にさせることも出来る。
NANDゲート293が動作可能になると、キャリ出力は、通
信インタフェース装置180及び径路指定回路200へのメッ
セージパケット出力信号回線123へも使用出来るように
なる。この手段によりキャリ出力はメッセージパケット
内で、アレイ30中の他のどのプロセッサ/メモリにも送
達される。
PLA160,RAM250,ALU280及びフラグコントローラ290につ
いての前述の説明から、ここに説明されたコンピュータ
システムの並行処理能力を利用したあらゆる種類のコン
ピュータプログラムを案出することが可能であろう。こ
れらの処理動作は、通常は、処理されているデータに適
するよう選んだ基本的クロックサイクルPHI1の持続時間
を持つ処理サイクルで実行される。アレイ30の異なるプ
ロセッサ/メモリ36内の相互作用を改善するには、個々
のプロセッサ/メモリが径路指定回路200を通じて互い
に通信することも出来る。このような径路指定について
討議する前回路に、CIU180及び径路指定回路200の動作
の理解が望ましい。
D.通信インタフェース装置の説明 第8図及び第11図に示すように、CIU180は否定回路181,
ラッチ182,タップされたシフトレジスタ184,第1及び第
2セレクタ186,188,及び第1と第2パリティ論理回路19
0,192を含み、これらの要素の各々は、各図中に同じ番
号で識別されている。第11図に示すように、ラッチ182
は第1と第2のD−型フリップ−フロップ312,314を備
え、シフトレジスタ184は73ビットのシフトレジスタ
で、入力端子、出力端子、及び入力端子に続く16番と17
番のシフト位置の間に備えられた出力タップを持つ。第
1のセレクタ186は、5個のゲート320,322,324,326,328
及びNORゲート330を含む。そして第1のパリティ論理19
0は、第1と第2のD−型フリップ−フロップ332,334、
及びNORゲート336,338から成る。これらの要素は、チッ
プ上のプロセッサ/メモリからの回線123上のメッセー
ジパケットを受け取り、それらを、下記のいくつかのタ
イミング及びデータ処理動作の後に径路指定回路200に
送信する。第2のセレクタ188は、否定回路340、4個の
ANDゲート342,344,346,348及びNORゲート352を含む。そ
して、第2のパリティ論理は、D−型フリップ−フロッ
プ356及びNORゲート358を含む。これらの要素は、径路
指定回路200からメッセージパケットのビットを受け取
り、同様に下記に述べるいくつかのタイミング及びデー
タ処理動作の後で、チップ上のプロセッサ/メモリのう
ちの1つに伝送する。
メッセージパケットが径路指定回路200に伝送される時
は、CIU180では、径路指定サイクル中の指示された時点
でプロセッサ/メモリから下記の情報を、否定回路181
への入力で受け取る用意がある。
これらの信号の全ては、シフトレジスタ184に与えら
れ、レジスタからセレクタ186へシフトされる。しか
し、これらの信号のあるものは、ラッチ182,セレクタ18
6及びパリティ論理190にも与えられる。
径路指定回路200は、メッセージパケットが送られる径
路指定サイクルの最初のクロックサイクルで始まる回線
194上の低い信号を受け取ることになっている。径路指
定回路200は、指定された基本クロックサイクルで回線1
96上に下記の情報も受け取ることになっている。
このメッセージパケットの様式は第5図に描かれてい
る。回線割り当て装置205によって導入される15クロッ
クサイクルにもなる時間の遅れのために、メッセージパ
ケットが完全に処理され、1個又はそれ以上の径路指定
回路によって伝達されるには、少なくとも合計88クロッ
クサイクルを要する。従って、径路指定サイクルの長さ
は、第12図に示すように88本の基本クロックサイクルに
なる。
CIU180から径路指定回路200への信号の流れを制御する
には、タイミング発生器140が、第12図に示すタイミン
グ信号を発生する。回線123上にCIU180が受け取ったメ
ッセージパケットは第12図の上部近くの2本の線内に描
かれている。メッセージパケットに関連するCIU180で受
け取られた最初のビットは、クロックサイクル53で受け
取られたパリティビットである。このパリティビット
は、信号TOCIU-PARITY-inが、クロックサイクル53の間
に、フリップ−フロップ332のセット端子に与えられた
時に、このフリップ−フロップ内にセットされる。この
ビットは、絶対値で表された送信側ICのアドレスのパリ
ティである。フリップ−フロップ334及びXORゲート336
は、クロックサイクル15での様式ビットで始まり、クロ
ックサイクル72のメッセージの終りまで続くメッセージ
パケットのパリティを計算する。このパリティビット及
びフリップ−フロップ332内に記憶されたビットは、そ
れからXORゲート338によって比較され、その結果のビッ
トはセレクタ186へ送られ、そこで反転され径路指定回
路200に送り出される。
パリティビットは、メッセージパケットがその行き先に
径路指定されるにつれて相対アドレス中に出来る変化を
償うためにこの方式で計算される。メッセージパケット
の相対アドレスは、メッセージパケットが、信号回線12
3へプロセッサ/メモリから読み出される時に計算され
る。そして、この相対アドレスのコピー1個を含めてメ
ッセージパケット用のパリティビットは、フリップ−フ
ロップ334及びXORゲート336によって計算される。相対
アドレスが、1−ビットを奇数個持っていると、このメ
ッセージパケット用のパリティビットは、メッセージパ
ケットがその行き先で受け取られた時に間違っている。
これを補正するために、もし送信側のICアドレスのため
のパリティビットが1−ビットならば、CIU180がXORゲ
ート内の計算されたパリティビットを変える。行き先で
は、CIU180が、受け取ったメッセージパケットのパリテ
ィビットを再度計算し、メッセージパケットで受け取っ
たパリティビットが1−ビットならば、それを変える。
最後に、結果として出たパリティは、行き先ICのアドレ
スとパリティビットと比較される。これら2個のビット
が同じならば、パリティエラーはなかったことが分かる
はずである。
クロックサイクル54の間に、メッセージパケットを次の
径路指定サイクルに送信しなければならない時は、CIU1
80に1−ビット与えられる。このビットは、否定回路18
1によって反転させられ、信号TOCIU-MP-inが、クロック
サイクル54の間にこのフリップ−フロップのセット端子
に伝えられた時に、フリップ−フロップ312内にセット
される。その結果、メッセージパケットが送信されなけ
ればならないと、フリップ−フロップ312のQ出力端子
は、クロックサイクル54につれて低くなる。クロックサ
イクル55から86の間に、メッセージデータは、シフトレ
ジスタ184の入力端子に入れられ、それを通ってシフト
される。レジスタは73ビットの長さなので、メッセージ
データは、次の径路指定サイクルのクロックサイクル40
の間にシフトレジスタの出力に現われはじめる。クロッ
クサイクル87の間、フリップ−フロップ312のQ端子の
出力信号は、信号TLASTがフリップ−フロップ314のセッ
ト端子に入った時に、フリップ−フロップ314内にセッ
トされる。その結果、メッセージが送られる時は、径路
指定サイクルの始まる前から、Q端子には低い信号が、
そして、フリップ−フロップ314のQ端子には高い信号
が存在する。第11図に示すように、フリップ−フロップ
314のQ端子は、ANDゲート328への1つの入力に接続さ
れ、Q端子は回線194に接続される。従って、もしメッ
セージが送られるとすると、回線194上の信号は第12図
に示すようになる。
クロックサイクル0-14の間、メッセージパケットの行き
先のICアドレスが、シフトレジスタ184及びANDゲート32
6への回線123に送られる。これらのクロックサイクルの
間、ANDゲート326は信号TOCIU-Addによって動作可能に
なり、そのためICアドレスは、NORゲート330を通って径
路指定回路200への回線196へ送られる。クロックサイク
ル15の間に、ANDゲート328は信号TOCIU−MP−out′
よって使用可能になり、フリップ−フロップ314のQ端
子からNORゲート330及び回線196へ信号を送る。メッセ
ージを送ろうとすると、Q端子の信号は低い信号である
がそれがNORゲート330によって反転され、メッセージパ
ケットの様式ビットのための高い信号を発生する。
クロックサイクル15-19の間では、行き先IC内の特定の
プロセッサ/メモリのアドレスがCIU180に送られ、シフ
トレジスタ184にシフトされ、クロックサイクル20-23の
間に、行き先プロセッサ/メモリ内のレジスタのアドレ
スが、シフトレジスタにシフトされる。
クロックサイクル16-39の間に、ANDゲート322が、信号T
OCIU-TAPによって動作可能になる。これらのクロックサ
イクルの間、行き先ICアドレスの15ビット、プロセッサ
/メモリアドレスの5ビット及びレジスタアドレスの4
ビットが、16番目と17番目のシフト位置の間に連続して
現われ、ANDゲート322及びNORゲート330によって回線19
6へ送られる。
クロックサイクル40-71の間では、前回の径路指定サイ
クルの間にシフトレジスタ184内に挿入されたメッセー
ジデータが、シフトレジスタの出力端子から現われはじ
める。これらのクロックサイクルの間、ANDゲート324は
信号TOCIU-DATAによって動作可能になり、メッセージデ
ータはNORゲート330を通って径路指定回路200への回線1
96へ送られる。ゲート324は、他のどのクロックサイク
ルの間にも動作可能(enable)にされないので、前回の
サイクルのクロックサイクルの55-86の他の時にシフト
レジスタ184に送られたデータは、いずれも否定され
る。
最後に、クロックサイクル72の間は、ANDゲート320が信
号TOCIU-PARITYによって動作可能になり、パリティビッ
トはNORゲート330を通って径路指定回路200への回線196
へ送られる。結果として、径路指定サイクルの間の回線
196上の信号は第12図に示すようになる。
メッセージパケットが径路指定回路200から受け取られ
ると、回線197上の信号はクロックサイクル45間に低く
なり、次の径路指定サイクルが始まるまで低いままでい
る。加えて、CIU180は、表示された基本クロックサイク
ルで回線198上の径路指定回路200から下記の情報を受け
取ることになる。
回線199上の信号は径路指定サイクルの終りに低くな
り、回線194上の信号が代わるまで低いままでいる。
入ってくるメッセージパケットがCIU180で受け取られて
いる時に、CIUは表示されている基本クロックサイクル
でメッセージデータ入力信号回線122へ下記の信号を送
る。
この信号の流れを制御するには、タイミング発生器140
も第13図に示されている信号を発生する。CIU180からの
メッセージパケットが径路指定回路200によって受け取
られ送り出されている場合は、回線199上の信号は、径
路指定サイクルの初めから低い。クロックサイクル0-44
の間にANDゲート346は信号TICIU-MWINによって動作可能
になり、この信号をNORゲート352へ通し、そこで半減さ
れて信号回路122へ1−ビットとして送られる。
入ってくるメッセージパケットがあるという事実は、回
線197上の信号が、クロックサイクル45の間に低くなる
時に、確実なものになる。この信号は、クロックサイク
ル45の間に信号TICIU-MP-inによって動作可能にされて
いるANDゲート342に送られる。その結果、低い信号がNO
Rゲート352を通って送られ、クロックサイクル45の間
に、メッセージゲート入力回線122上に高い信号を加え
る。
クロックサイクル46-50の間に、セレクタ188は入ってく
るメッセージパケットが送られて行くプロセッサ/メモ
リのアドレスを回線198上に受け取る。この信号は、否
定回路340によって反転され、クロックサイクル46から8
6の間に信号TICIU-M-inによって動作可能となっているA
NDゲートに送られる。その結果、プロセッサ/メモリの
アドレスはNORゲート352を経て信号回線122に通され
る。
同じような方式で、クロックサイクル51-54及び55-86の
間に、セレクタ188は回線198上に入ってくるメッセージ
パケットが送られているレジスタアドレスとメッセージ
パケットのデータを受け取る。これらの信号も否定回路
340によって反転され、ANDゲート348及びNORゲート352
を通ってプロセッサ/メモリ36への信号回線122へ通さ
れる。回線198上に受け取られる信号も、受け取られた
メッセージパケットのパリティビットの計算のためにXO
Rゲート358及びフリップ−フロップ356へ送られる。
クロックサイクル87の間に、メッセージパケットのパリ
ティビットは、回線198上に受け取られる。それは計算
されたパリティビットとXORゲート358で比較され、結果
として出たパリティビットがANDゲート344に与えられ
る。クロックサイクル87の間に、ANDゲート344が動作可
能になり、パリティビットがNORゲート352を経てメッセ
ージデータ入力信号回線122に与えられる。
その結果、径路指定サイクルの間にプロセッサ/メモリ
に送られる信号は第13図に示す通りである。
E.径路指定回路の説明 序論 第8図に示すように、径路指定回路200は回路割り当て
装置205,メッセージ検出器210,バッファ及びアドレス復
元器215,及びメッセージ注入器220を含む。回線割り当
て装置205は、実質的には同一の径路指定論理セルの15
×15のアレイを含む。このアレイの各列が、ブール15−
立方体の1次元中のメッセージパケットの出力を制御す
る。このアレイの各行は、径路指定回路200中の1メッ
セージパケットの記憶を制御する。9個のそのような径
路指定セル400が第14図に描かれているが、左側の列中
の3個は、第1次元に関連し、中間の列の3個は第2次
元と関連し、右側の列中の3個は、第15次元と関連して
いる。セルの各列は、その次元に関連する出力回線39に
接続する出力バス410を持つ。行については、下の3個
のセルがアレイ内で最も低いセルで、入力回線38から入
力を受ける。上部3個のセルがアレイ内の最上部のセル
である。中間の3個のセルは、最低部と最上部の間の任
意のセルの代理をするものであるが、図示されているよ
うに、最下行に接続されている。
同じく第14図に示されているのは、3個の処理及び記憶
手段420で、回線割り当て器205中の対応する3行のセル
からのメッセージを処理し記憶する径路指定回路200の
メッセージ検出器210バッファ及びアドレス復元器215及
びメッセージ注入器220の部分を表わしている。12個の
似たような処理及び記憶手段(図示されず)が、他の行
からのメッセージを処理し記憶するために使用される。
手段420は、第18図においてより詳細に説明される。
径路指定において何の矛盾もおきなければ、メッセージ
パケットは、第1次元の径路指定セルへの入力から、プ
ロセッサ/メモリ内のレジスタへ径路指定され、プロセ
ッサ/メモリへは、88個の基本クロック信号の1回のメ
ッセージサイクルの間にアドレス指定される。径路指定
に矛盾があると、メッセージパケットは、1ケ所又はそ
れ以上の中間地点で径路指定回路の処理及び記憶手段内
に一時的に記憶され、このメッセージパケットをその行
き先へ径路指定するには、1つ以上の径路指定サイクル
が必要となる。
第14図は、各径路指定セル400の入力及び出力端子の便
利な概略図になっている。下の行に沿っている3個のセ
ル400が示すように、ブール15−立方体の違う次元から
のメッセージパケットは、NANDゲート405に送られる。
これらのゲートは、リセット状態の間でなければいつで
も動作可能である。各NANDゲート405の出力は、反転さ
れたメッセージパケットであるが、最下行のセル400の
1個の入力端子Linに送られる。端子Linにメッセージパ
ケットが存在することを表示する信号も、同じセルの入
力端子LPinに送られる。最下段の各セルでは、このメッ
セージ存在信号は接地される。このことは、最下行の隣
の列のセルで受け取ったメッセージパケットをさらに処
理するために、このセルを条件付けする効果を持つ。後
に明らかになるが、セルへの入力にメッセージパケット
の存在を示すこのようなメッセージの存在する信号が、
径路指定回路200全体に用いられ、メッセージパケット
のための回路200を通るデータ径路を確立する。
回線38の1本から受け取られたメッセージパケットは、
1つの列内の最下部のセル400から径路指定され、その
端子M-OUTからそのすぐ右の列内のセル400の端子M-INに
印加される。同時に、メッセージの存在する信号は、端
子MP-OUTからすぐ右のセルの端子MP-INへ径路指定され
る。
いずれかのセル400のM-IN端子で受け取られる信号は、
他にどんな信号がそのネットワーク中にあるかによっ
て、このセルのBUS端子、Uout端子又はM-OUT端子のいず
れか1つへ径路指定してもよい。1つの列中の全てのセ
ル400のBUS端子は、共通の出力バス410に接続され、共
通出力バス410はXORゲート415を経て、ブールn−立方
体のその次元中の最も近い隣接セルへの出力回線39に接
続される。XORゲート415への他の入力は、タイミング信
号t-INV-OUTnであり、ここのは次元の数である。この
タイミング信号は、メッセージパケット内の複製アドレ
ス内の適切なアドレスビットを補数化し、メッセージパ
ケットがブール15−立方体を通って移動するにつれ、こ
のアドレスを更新する。
Uout端子からセルを出るメッセージは、列内でそのすぐ
上方にあるセルのLin端子に送られ、Lin端子に受け取ら
れる信号と同じ方式でそのセルによって処理される。メ
ッセージのある信号は、同じ方式で、UPout端子から、
すぐその上方のLPin端子へ転送される。
各列のセル400内の回路は、その次元に宛てられ、かつ
最上部に最も近い行内を循環しているメッセージを各列
(または次元)の出力バス上に置き、全ての行を最上部
の行に向かって詰める(compact)ように設計されてい
る。この目的のために、制御信号グラント(G)及びオ
ールフル(AF)が各列に用意され、列の個々のセルに、
同じ列内でそれらの上方にあるセルの状態を知らせる。
特に、グラント(G)信号は、各列すなわち次元の出力
バス410へのアクセスを、Gin及びGout端子を通って各列
のセルを下る信号によって制御する。この信号を伝播す
る回路系は、その次元へアドレス指定されている各列の
最上部のメッセージパケットへバスアクセスを与え、そ
の列の下方のセルのいずれかにあるメッセージが、出力
バスの上に径路指定されるのを防ぐ。オールフル(AF)
信号は、あるセル400から同じ列内のすぐ上のセルへの
メッセージの転送を、AFout及びAFin端子を通じて各セ
ルへ、列内の上方にある各セル内にメッセージがあるか
どうかを知らせることによって制御する。上部のいずれ
かのセルが空であると、下方の各セル内のメッセージ
が、列内の1セル上へ移動する。
セル内にあるフリップ−フロップの動作は、タイミング
信号t=COLnによって制御される。このは次元の数で
ある。一方、他のフリップ−フロップは、基本クロック
信号PHI1によってクロックされる。下記の説明から明ら
かになるように、各列内の径路指定セルは、アレイ30内
の全ての径路指定回路の同じ列内の他の回路指定セルと
同期して動作する。
頂上の行のセルでは、AFin端子への入力が常にハイであ
る。これらのセルにとって、Gin端子への入力信号は、
リセット信号の補数であり、それ故に、リセットの間以
外は高くなる。その結果、列内の上部セル中のメッセー
ジパケットは、その次元向けにアドレス指定されていれ
ば、通常は出力バス410への呼び出しを持っている。し
かし、もし出力回線39を断つ場合は、その回線に関連す
る次元の上部セルのGin端子に低い信号を送ることによ
り、相互接続されている15−立方体のネットワークから
この回線を切り離すことが出来る。セル400の下行で
は、Gout端子からのグラント信号が、出力バスに接地を
与えることの出来るパストランジスタ425を制御するた
めに用いられる。特に、その出力回線上に送り出され
る、メッセージがない場合は、0−ビットが、その次元
の出力回線に書き込まれる。
回線割り当て装置205 回線割り当て装置205の論理回路系の詳細が第15図に示
されている。この図は、例示的に最下部の2行及び第1
と第2の次元に関連する列内にあげた4個のセルを示
す。回路は、下記に説明されるように、ORゲート480を
除いて、ほぼ同じである。各回路は、第14図に関して説
明したように、入力回線又は端子Lin、LPin、M-IN及びM
P-INを持つ。各回路は出力回線又は端子Uout、UPout
バス、M-OUT及びMP-OUTを持つ。制御信号は、端子Gin
びAFinで各セルに与えられ、最下部のセルを除いて、こ
れらの制御信号は、端子Gout、及びAFoutを経て列内
の、次に下方のセルへ送られる。
論理回路系は、2個のNANDゲート450及び452、端子M-OU
T及びMP-OUTへの出力信号の選択を制御する4個のANDゲ
ート460,462,464及び466、NANDゲート470及び、ANDゲー
ト460及び464の組、またはANDゲート462及び466の組の
どちらかを動作可能にする否定回路472、ANDゲート460
と462の出力を結合させるNORゲート476、そして、ANDゲ
ート464と466の出力を結合させるNORゲート478とを含
む。否定回路472の出力は、端子AFoutによって、列内
の、次に下方のセルに与えられ、M-INとMP-IN回線からU
outとUPout回線への信号の桁移動を制御するオールフル
(AF)信号でもある。さらに、最下行のセルは、その入
力がAFinとM-IN端子に接続されているORゲート480を含
む。各セルは、3個のD−型フリップ−フロップ490,49
2及び494、バス駆動500そして、バス駆動とグラント信
号を制御するための論理回路502も持つ。
フリップ−フロップ490は、列クロック信号t-COLnを受
け取るとメッセージパケットの先頭ビットを記録し、88
個の基本クロックサイクルあとで次の列クロック信号を
受け取るまで、この信号を保持する。先頭ビットが1−
ビットの場合、および、出力バス410が、列内でより高
いセルにグラントされていない場合には、論理回路502
はバス駆動に低い信号を送る。バス駆動500への回線上
の低い出力は、バス駆動を動作可能にし、NANDゲート45
0,452及び470を動作不可能にする。その結果、入力端子
M-IN上のメッセージはバス410上を、その列又は次元に
関連する出力回線39へ径路指定される。NANDゲート470
が動作不可能な時は、その出力は高く、ANDゲート462,4
66を動作可能にし、否定回路472からの出力を低くさ
せ、それによってANDゲート460,464を動作不可能にす
る。その結果、次に下方のセルに送られたオールフル
(AF)信号は低く、列内の上に空のセルがあるというこ
とをそのセルに知らせ、ANDゲート462,466は動作可能に
なって入力端子LinとLPinで受け取った信号を通すよう
になる。
メッセージパケットの先頭ビットが0−ビットである場
合、または、径路指定セルのM-IN端子にメッセージパケ
ットがない場合には、バス駆動500への論理回路502の出
力は高くなる。バス駆動への高い信号は、NANDゲート45
0,452及び470にも送られ、ゲート450及び452を動作可能
にする。端子AFinにおけるオールフル信号も高い場合
は、その列内の上方のセルの各々にメッセージがあるこ
とを知らせており、NANDゲート470も動作可能になる。
ゲート470が動作可能の時に、MP-IN端子の信号が高い
と、その高い信号は否定回路472を経て、ANDゲート460
と464に送られ、それらのゲートを動作可能にし、低い
信号がANDゲート462と466に送られ、これらのゲートを
動作不可能にする。その結果、M-IN及びMP-IN端子にお
ける信号は、NANDゲート450,452,ANDゲート460,464、そ
して、NORゲート476,478を通って、フリップ−フロップ
492,494への入力へ送られる。フリップ−フロップ492
は、全ての基本クロックサイクルPHI1でセットされる。
その結果、フリップ−フロップ492を通って送信される
メッセージパケットの最初の出力ビットは、フリップ−
フロップ490に送られる先頭ビットのすぐ後に続くビッ
トであり、メッセージパケットのもとの先頭ビットは破
棄される。さらに、新しい先頭ビットは、径路指定セル
の出力端子M-OUTで利用出来るようになる前に、1回の
基本クロックサイクル分、遅くなる。そこで、メッセー
ジパケットの各後続ビットは、このフリップ−フロップ
を通じてクロックされ、端子M-OUTで、次のセルのM-IN
端子に利用出来るようにされる。フリップ−フロップ49
4も、同様にすべてのクロック信号PHI1でセットされる
が、このフリップ−フロップの出力は、メッセージパケ
ットの持続時間中は一定になっている。その結果、フリ
ップ−フロップ494への入力に送られる高い信号MP-IN
は、メッセージパケットの新しい先頭ビットが出力端子
MOUTで利用できるようになると同時に、回路指定セルの
出力端子MP-OUTで利用出来るようになる。MP-OUT端子で
の信号は、それから、次のセルのMP-IN端子へ送られ、M
-IN端子で受け取られたメッセージパケットのために、
そのセルを通るデータ通路を確立するために用いられ
る。
フリップ−フロップ492,494が、回線割り当て装置205の
15列の各々のセル400に存在することから、メッセージ
パケットが、1個又はそれ以上の回線割り当て装置の15
列又は次元を通って行くうちに、15個の基本クロックサ
イクル分遅くなる。
NANDゲート470が動作可能になった時にMP-IN端子の信号
が低いと、ゲート470の出力は高くなり、ANDゲート462,
466を動作可能にし、否定回路472からの出力を低くす
る。その結果、次に低いセルに送られたオールフル(A
F)信号は低くなり、そのセルに、列内の上に空のセル
があることを知らせ、ANDゲート462,466は動作可能にな
り、入力端子Lin及びLPinで受け取られた信号を通すよ
うになる。
セルで受け取られたオールフルが低い時、NANDゲート47
0は動作不可能になり、ANDゲート460及び464も動作不可
能になる。このようにして、M-IN端子のいずれのメッセ
ージパケットもM-OUT端子に径路指定されなくなる。し
かし、もしメッセージパケットの先頭ビットが0−ビッ
トであれば、ANDゲート450,452は、セット信号t-COLn
フリップ−フロップ490に送られた後に、動作可能にな
る。さらに、ANDゲート462,466は、その列内のそのセル
の上方の次のセル内で動作可能になる。その結果、M-IN
及びMPIN端子は、Uout及びUPout端子を経て、その列内
の次に高いセルのLin及びLPin端子へ送られ、ANDゲート
462,466及びNORゲート476,478を通って、その次の高い
セル内のフリップ−フロップ492,496へ送られる。これ
らのフリップ−フロップは、径路指定セルのその列内の
他のフリップ−フロップ全てと同じように、そして、同
期して動作し、メッセージパケット及びメッセージのあ
る信号を、そのセルの出力端子M-OUT及びMP-OUT端子に
与える。
セルの最下行内の各セルのORゲート480は、M-IN端子を
通ってセルの最下行のセルに入ったメッセージパケット
を出力バス410上に強制的に乗せるのに用いられる。あ
るいは、列内のそれより上にあるセルが全て満たされて
いる場合は、そのセルをM-OUT端子にスルー状態にして
おく。このことは、メッセージパケットのアドレスに関
係なく、セルの列に関連のある次元上に入ってくるメッ
セージパケットのために、径路指定回路内に確実に場所
を与えるために行なわれる。ORゲート480への入力はオ
ートフル信号(AF)とメッセージパケットのアドレスの
第1ビットとである。オールフル信号は、列内の上方セ
ルの全てが満たされている時に高くなり、そのような状
況のもとで、出力バスが利用出来るようになる。従っ
て、メッセージパケットの最初のアドレスビットの状態
に関係なく、ORゲート480の出力は高くなり、フリップ
−フロップ490への入力は、メッセージパケットの先頭
ビットが1−ビットの時と同じになる。このビットが、
フリップ−フロップ490にセットされた時、論理回路502
の出力はバス500への低い信号となり、それがバス駆動
を使用可能にし、M-INからのメッセージパケットを、そ
のメッセージパケットのアドレスに関りなくバス410に
送る。
各列又は次元のXORゲート415は、ビット位置16から30に
おいてメッセージパケットの相対アドレスを更新する。
このゲートへの1個の入力は、出力バス410上を回線39
向けに送り出されるメッセージパケットである。他の入
力は、信号t-INV-outnであり、ここでは次元の数であ
り、メッセージパケットの第2のアドレス内のその次元
のためのアドレスビットと同時に、各次元のXORゲート
に送られる。その結果、相対アドレスビットは、メッセ
ージパケットが補数化され、その次元上に径路指定され
たことを示す。メッセージパケットが、出力バス410上
に押し出されない時は、メッセージパケット内の第2の
アドレス内の関連ビットは1−ビットとなり、このビッ
トが0−ビットに補数化されて、その次元の所望のアド
レスに経路指定されたことを示す。一方、メッセージパ
ケットが出力バス410上に押し出された時には、メッセ
ージパケット内の第2のアドレス内の関連のあるビット
は0−ビットになり、このビットが1−ビットに補数化
され、メッセージパケットが、その次元の希望するアド
レスに径路指定されなかったことを知らせる。後に、こ
の次元内の希望するアドレスにメッセージパケットを径
路指定しなおすことが必要になる。
論理回路502の詳細は第16図に示される。ある列内のセ
ルの論理回路502を通しての伝播遅延を最小限にするた
めに、グラント信号が、列内の全てのセル内で反転され
る。その結果、奇数行内の論理回路502の内部回路は、
列内の偶数行のものとは異なる。第16図において、上部
行は、ゼロ行と考えられ偶数である。偶数行内の論理回
路は502″で、奇数行は502′で識別される。各偶数論理
回路502″は第1及び第2のNANDゲート520,525を含む。
各奇数論理回路502′は、NANDゲート530,NORゲート535
及び否定回路540を含む。NANDゲート520及び530はバス
アクセスのグラントを制御する。これらのゲートへの両
方の入力が高いと、ゲートは、出力バス410へのアクセ
スをグラントする低い出力信号を出す。もしバスアクセ
スが、偶数番のセル502″によってグラントされると、N
ANDゲート525の出力は高くなる。バスアクセス奇数番の
セル502′によってグラントされると、NORゲート535の
出力は低くなる。さらに、もし高い信号が、列内で上方
にある偶数番のセルから奇数番のセルに受け取られる
と、NANDゲート530の出力は高くなり、NORゲート535の
出力は低くなる。また、低い信号が、列内で上方にある
奇数番のセルから偶数番のセルに受け取られると、NAND
ゲート520及び525の出力は高くなる。その結果、1個の
セルが出力バス410にアクセスをグラントする時はいつ
でも列内でその下方にあるセルはいずれも出力バスにア
クセスすることが出来なくなる。逆にバスアクセスがグ
ラントされないと、各セルは、そのすぐ下方のセルに、
もしアクセスが要求されているならば、そのセルがバス
アクセスをグラント出来るようにする信号を送る。
違う列内のセル400が、メッセージパケットのアドレス
ビットを処理するようにタイミング信号t-COLnによって
調時される。径路指定サイクルの初めに、径路指定され
るべき全てのメッセージパケットは、異なるIC35内の回
線割り当て装置205のセル400への入力M-INに出される。
15個のアドレスビットの各々は、それから一度に1個ず
つ、2回の基本クロックサイクルの15アドレス時間に分
析される。第17図に示すように、タイミング信号t-COL1
は、基本クロックサイクル0の間に、全ての回線割り当
て装置の最初の列のフリップ−フロップ490に送られ
る。その結果、各メッセージパケットの第1ビットは、
フリップ−フロップ490によって記録され、1−ビット
のための論理回路502によってテストされる。各回線割
り当て装置の最初の列内の論理回路502は、各回線割り
当て装置における頂部に最も近い行内に位置する先頭1
−ビットを持つメッセージパケットへ、第1次元のバス
410へのアクセスをグラントする。その結果、先頭1−
ビットを持つメッセージパケットの少なくともいくつか
は、第1次元の出力バス上へ径路指定され、出力回線39
上を、最も近い隣接IC内の回線割り当て装置の最初の列
内の最下部の径路指定セル400へ送り出される。全ての
回線割り当て装置の第1次元のセルのM-IN端子にある他
のメッセージパケットは、最初の列のセル内で上方へ詰
められフリップ−フロップ492を通ってセルの最初の列
のM-OUT端子にクロックされる。同時に、最も近い隣接I
Cへ径路指定されたメッセージパケットは、それらのIC
の回線割り当て装置の最初の列内の最下部のセルによっ
て受け取られ、それらのセルのフリップ−フロップ492
を取ってM-OUT端子にクロックされる。上記のように、
フリップ−フロップ492は、1回のクロックサイクル
分、メッセージパケットを送らせ、フリップ−フロップ
490へ出された先頭ビットは破棄される。
タイミング信号t-COL2が、クロックサイクル2の間に、
回線割り当て装置内のセルの2番目の列のフリップ−フ
ロップに送られると、これらのフリップ−フロップが、
各メッセージパケットの新しい先頭ビットを記録する。
再び、各回線割り当て装置の2番目の列内の論理回路50
2が、各回線割り当て装置の2番目の列の最上行内に先
頭1−ビットを持つメッセージパケットへ、第2次元の
バス410へのアクセスをグラントする。そして、他のメ
ッセージパケットは、セルの2番目の列内で上へ向って
詰められ、1回のクロックサイクル分の遅れの後で各セ
ルのM-OUT端子へ送られる。再び、最も近い隣接ICへ第
2次元のバス410を径路指定されているメッセージパケ
ットは、そのICの回線割り当て装置の2番目の列の最下
部のセルで受け取られ、それらセルのフリップ−フロッ
プ492を通ってM-OUT端子にクロックされる。メッセージ
パケットの先頭ビットも破棄される。
同じような方式で、各メッセージパケットは、回線割り
当て装置の残りの13次元を通って進み、各列内で先頭ビ
ットはテストされ破棄され、また、メッセージパケット
は1回のクロックサイクル分、遅延される。この処理が
進行している間にメッセージパケットは、1個のICの回
線割り当て装置から他のICの装置へ、そのアドレスビッ
トによって特定されているが希望する出力回線39が利用
出来ることが条件の径路指定に従って、進んで行く。そ
の結果、クロックサイクル29の後、各メッセージパケッ
トの最初の15ビットは破棄されているが、各メッセージ
パケットの書式ビットは、回線割り当て装置の15番目の
列内のセルの1個中のフリップ−フロップ492の出力に
達している。もし、何の径路指定障害も起きなければ、
この回線割り当て装置は、行き先に置かれ、メッセージ
パケットはその行き先プロセッサ/メモリに与えられ
る。もし径路指定障害(routing conflicts)が起きる
ようならば、、メッセージパケットは中間地点にいて、
その度を終えるまでにさらに少なくとも1回径路指定サ
イクルを持たねければならない。クロックサイクル29の
完了時には、メッセージパケットの残りは、書式ビット
の後に連なり、メッセージパケットの最初の29ビット
は、1個又はそれ以上のICの回線割り当て装置内に、最
後の27ビットは、メッセージパケットが始まったICのCI
U180のシフトレジスタ184内にまだ置かれている。
例えば、メッセージパケットがIC000 000 000 000 111
から始まり、IC110 000 000 000 010ヘアドレスされる
とすると、メッセージパケットによって特定された相対
アドレスは、110 000 000 000 101になる。もし、径路
指定障害がなければ、このメッセージパケットは、IC00
0 000 000 000 111内のプロセッサ/メモリの1個によ
って作成され、処理及び記憶手段420へ送られる。径路
指定サイクルのクロックサイクル0から始まり、このメ
ッセージパケットのビットは、このICの回線割り当て装
置の最初の列内のセル400の1つのM-IN端子に一度に1
個ずつ出される。アドレスタイム1中のクロックサイク
ル0の間に、タイミング信号COL1が、各回線割り当て装
置の最初の列のフリップ−フロップ490に送られる。こ
れによって、IC000 000 000 000 111では、フリップ−
フロップ490内にアドレスの先頭ビットが記録される。
このビットは1−ビットであり、径路指定障害もないと
仮定しているので、論理回路502がメッセージパケット
を、第1次元のバス410へ径路指定する。従って、メッ
セージパケットは第1次元のアドレス回線39から径路指
定され、IC100 000 000 000 111へ行き、そこで、セル
の最初の列内の最下部のセルのフリップ−フロップに送
られる。そこで、メッセージパケットは、1回のクロッ
クサイクル分遅延される。2回目のアドレス時間のクロ
ックサイクル2の間に、メッセージパケットの新しい先
頭ビットがテストされ、再び1−ビットであることがわ
かる。従って、メッセージパケットは、今回は、アドレ
ス110 000 000 000 111を持つICへ、第2次元の出力回
線39から径路指定される。次の10回のアドレス時間のク
ロックサイクル4,6…22の間に、ICアドレスのその時の
先頭ビットが、IC110 000 000 000 111の回線割り当て
装置の3-12の各列内の論理回路502によってテストされ
る。いずれの場合も、論理回路が0−ビットを識別し、
メッセージパケットを回線割り当て装置の中を上へ向っ
て詰め、先頭ビットを破棄し、1回のクロックサイクル
分の遅れの後に次の列上へメッセージパケットを径路指
定する。
13番目のアドレス時間内のクロックサイクル24の間に、
論理回路502がその時のICアドレスの先頭ビットをテス
トし、1−ビットを識別する。径路指定に何の障害もな
いと仮定して、メッセージパケットをIC110 000 000 00
0 011へ径路指定し、そこで、回線割り当て装置の13番
目の列内の最下部のセルによって受け取られ、1回のク
ロックサイクル分遅延される。
14番目のアドレス時間のクロックサイクル26の間に、タ
イミング信号t=COL14が、各回線割り当て装置の14番
目の列のフリップ−フロップ490に送られる。IC110 000
000 000 011において0−ビットは、14番目の列内で最
下部のセルのフリップ−フロップ490内に記録される。
その結果、メッセージパケットはそのIC内に留められ、
1回分のクロックサイクルの遅延の後にセルの15番目の
列に送られる。
15番目のアドレス時間にクロックサイクル28の間に、タ
イミング信号t=COL15が、各回線割り当て装置の15番
目の列のフリップ−フロップ490に送られる。セルアド
レス110 000 000 000 011でこれらのフリップ−フロッ
プの一つが、メッセージパケットのアドレス内の残りの
1−ビットを記録する。径路指定に何の障害もないと仮
定すると、論理回路502はメッセージパケットへのバス
アクセスをグラントし、メッセージパケットをアドレス
110 000 000 000 010の回線割り当て装置内の最下部の
セルのフリップ−フロップへ径路指定する。クロックサ
イクル30の初めに、メッセージパケットの書式ビット
が、アドレス110 000 000 000 010の径路指定回路の記
憶及び処理手段に出される。
メッセージパケットの径路指定の間に、信号t-INVnが、
回線割り当て装置の異なる列または次元のXORゲート415
へ、メッセージパケットの複製アドレス内のその次元の
ためのアドレスと同時に送られる。これらの信号は、そ
の時にメッセージパケットが径路指定されている複製IC
アドレスのその次元のためのアドレスビットを補数化す
る。これらの信号の数個を第17図に示す。上記のメッセ
ージパケット径路指定の例として、クロックサイクル1
6,18,40及び44での信号が、メッセージパケットの複製
相対アドレスの4個の1−ビットを反転する。その結
果、メッセージパケットが、記憶及び処理手段に出され
る時、複製アドレスの全てのビットが0−ビットであ
る。
記憶及び処理手段420 記憶及び処理手段420は、メッセージパケットをチップ
上のプロセッサ/メモリへ径路指定し、プロセッサ/メ
モリからメッセージパケットを送り出し、特殊な出力回
線39が先に配置されているために、受け取ってすぐにセ
ルから送り出させないメッセージパケットを記憶する。
第14図に示すように、径路指定回路の回線割り当て装置
205内のセル400の各行に、ブロック420で識別される個
別の処理及び記憶装置がある。各ブロックへの入力端子
は、回線割り当て装置の15番目の列内の対応するセルの
出力端子M-OUTに接続されているD-IN、用意されたメッ
セージパケットを、CIU180からの回線196上の径路指定
回路へ供給するD-EXTin、それに、CIU180からの回線194
上の径路指定回路へ、送られてきた信号を供給するDP-E
XTinとである。DP-EXTinへ送られてきた信号は、最上部
で利用可能な処理及び記憶手段420を位置づけ、メッセ
ージパケットをCIU180からその手段420へ供給するため
に用いられる。各処理及び記憶手段へのもう1つの入力
は最上部の処理及び記憶装置420内に位置する特殊なセ
ルにアドレス指定されたメッセージパケットを抽出する
ために用いられるグラント信号である。各処理及び記憶
手段420からの出力端子は、D-OUT及びDP-OUTであり、そ
れらは、回線割り当て装置及び、CIU180へ、回線回線19
8上をメッセージパケットを供給する局域内バス端子内
の同じ行のセル400のM-IN及びMP-IN端子に接続されてい
る。さらに、各処理及び記憶手段420は、すぐに下の行
の処理及び記憶手段の対応する端子DP-EXTin及びGin
接続されている出力端子DP-EXTout及びGoutを持つ。最
下部の処理及び記憶手段420の端子DP-EXTout及びGout
おける信号は、それぞれ、回線199及び197上を、CIU180
へ信号を提供する。特に、メッセージパケットが回線19
8越しにCIU180へ提供されると、回線198にアクセスを提
供するグラント信号が、回線197上に、そうしたアクセ
スを提供する時に低くなるような信号を出す。そして、
もしCIU180からのメッセージパケットが処理及び記憶手
段420に受け入れられると、端子DP-EXTout及び回線199
上の信号は低くなる。
各処理及び記憶手段420は、メッセージ検出器210、バッ
ファおよびアドレス復元器215及びメッセージ注入器220
から成り、それらの詳細は第18図に示す。第5図のメッ
セージパケットを処理するこの回路と共に使用される信
号のタイミング図表が第19図に示される。各メッセージ
検出器は、3個のラッチ610,612,616及び否定回路618,3
個のNANDゲート620,622,624、1個のANDゲート630、論
理回路640、そして、バス駆動650を含む。ラッチ610
は、メッセージパケットのアドレスの2枚のコピーの間
を送信される書式ビットをチェックする。このビット
は、どのメッセージからも区別のつかないメッセージの
存在を知らせる。ラッチは、基本クロックサイクル30の
間に、信号t-MSGPがセット端子で受け取られた時だけセ
ットされる。もし、書式ビットがこのクロックサイクル
で識別されると、高い信号が出力端子Qに、低い信号が
ラッチ610の端子Qバーにセットされる。NANDゲート620
及びラッチ612は、もし全てのビットが0−ビットであ
るかを決めるメッセージパケットの複製アドレスをチェ
ックする。ラッチ612は、クロックサイクル0の間にセ
ットされ、Qバー端子での出力は、低い信号がNANDゲー
ト620に受け取られなければ、また、受け取られるまで
は、低いままでいる。ゲート620は、基本クロックサイ
クル31-45の間にメッセージパケットの第2のアドレス
の受け取りの間だけ、信号t-ADDR2によって動作可能に
なる。もし、全てのアドレスビットが0−ビットである
と、メッセージパケットはアレイ内の正しいセルに達
し、CIU180に径路指定されるであろう。そして、NANDゲ
ート620の出力は高いままである。ラッチ612は、従っ
て、ラッチ612の出力端子Qバーで低い信号を出す。都
合の良いことに、過度状態からの干渉を最小限にするた
め信号t-ADDR2は、クロック信号PHI1でANDされ、NANDゲ
ート620が各クロックサイクルのPHI1相の間だけ動作可
能になる。
ラッチ610及び620のQバー端子からの低い信号が、AND
ゲート630を動作可能にする。クロックサイクル44の間
と、メッセージパケットの非アドレス部分がD-IN端子で
利用出来るクロックサイクル45-87の全体を通じて、信
号t-DATAが低くなり、それによってANDゲート630の出力
で高い信号を作る。この高い信号はCIU180への回線198
へのアクセスの要求となる。否定回路618によって作り
出される高い信号と低い信号が論理回路640及びバス駆
動650へ送られ、バスアクセスをシークする最上行へバ
スアクセスをグラントし、他の全ての行のへのアクセス
を否定する。論理回路640及びバス駆動650は、実例とし
ては第15図及び第16図の論理回路502及びバス駆動500の
ような装置と同じ型であり、同じ方式で作動する。そし
て、ANDゲート630及び否定回路618からの信号は、それ
ぞれQ及びQバー端子からの信号と同じ方式で機能す
る。その結果、径路指定回路200の最下行内の処理及び
記憶手段からの回線197上のGout信号は、バス198へアク
セスがグラントされるとすぐ低くなる。
ラッチ610のQ端子からの出力及び論理回路640からバス
アクセス出力とはNANDゲート624へ送られる。回路640の
バスアクセス出力は、バスアクセスが、入力端子D-INで
メッセージパケットにグラントされた時だけ、低くな
る。そのような時、NANDゲート624は高くなる。この出
力はラッチ616の入力へ送られ、信号t-LASTが、メッセ
ージサイクルの最後のクロックサイクル87の間にラッチ
へ送られる時に、この高い信号は、ラッチ内に記憶され
る。NANDゲート624の出力も、径路指定回路のこの行の
中を循環しているメッセージがないと高くなる。このよ
うな状況のもとで、ラッチ610は、クロックサイクル30
の間にセットされ、ラッチ610のQ端子での信号は低く
なり、NANDゲート624の出力を高くする。ラッチ616の出
力は、バッファ及びアドレス復元器215とメッセージ注
入器220の双方に送られる。
ラッチ616のQ出力もD-IN端子からの信号とともに、NAN
Dゲート622に送られる。その結果、NANDゲートは、メッ
セージ書式ビットが検出された時に反転され、そのゲー
トはD-IN端子で受け取られたメッセージパケットを、そ
れがバッファ−復元器に送られている時に反転する。
メッセージ注入器220は、セレクタ670、否定回路680、O
Rゲート682、ANDゲート684及びNANDゲート686を含む。
回線194上の信号は、処理及び記憶手段410の上の行内の
端子DP-EXTinへ送られ、そこで、NANDゲート686とORゲ
ート682及びNANDゲート684に接続される。NANDゲート68
6の出力は、セレクタ670の選択端子に送られる。この信
号が高いと、セレクタの端子Aにおける信号が、D-OUT
端子へ供給される。信号が、低いと、端子Bでの信号
は、出力端子D-OUTへ供給される。
第11図と関連してCIU180の説明で述べたように、フリッ
プ−フロップ314が、基本クロックサイクル87の間に信
号t-LASTによってセットされる。その結果、端子DP-EXT
inへの回線194上の信号は、メッセージ注入器220へ伝達
されることになっているメッセージパケットがCIU180に
ある時はいつもメッセージサイクルが始まる前から高く
なる。ラッチ616も、基本クロックサイクル87の間に信
号t-LASTによってセットされる。その結果、NANDゲート
624の出力が、メッセージパケットがCIU180へのバス198
へ送達されている時と同じ位高いと、ラッチ616の出力
も、メッセージサイクルの開始以前から高くなる。ラッ
チ616及び端子DP-EXTinからの高い信号は、NANDゲート6
86の出力を低くする。その結果、セレクタ670の端子B
は、メッセージ注入器220の端子D-OUTへ接続され、CIU1
80からの回線196上のメッセージパケットはメッセージ
注入器220で受け入れられ、D-OUT端子へ供給される。
同時に、ラッチ616からの高い信号が否定回路680へおく
られ、ANDゲート684を使用不可能にしDP-EXTout端子に
低い信号を提供する。この信号は、他の全ての低い行中
のNANDゲート684を動作不可能にし、これらの行の各々
のDP-EXToutにおいて低い信号を提供する。これらの低
い信号も、全ての行中のラッチ670の選択端子に高い信
号を提供する。その結果、回線196上のメッセージは、
注入器220の一行に送達されるだけになる。さらにま
た、径路指定回路の最下行のためのメッセージ注入器の
出力端子DP-EXToutからの低い信号はCIU180への回線199
上に送られ、外へ出て行くメッセージパケットが、回線
割り当て装置205への応用のためにメッセージを注入器2
20によって受け入れられたことを知らせる。回線196上
に信号を受けるメッセージ注入器の行のORゲート682へ
端子DP-EXTin端子から送られる高い信号も端子DP-OUTに
おいて高い信号を提供し、端子D-OUTにメッセージが存
在することを知らせる。
これとは別に、この行に循環するメッセージはないこと
もあるし、または、メッセージはこのセルにアドレス指
定されていないこともある。もし、循環しているメッセ
ージがないと、ラチ610のQ端子からNANDゲート624への
入力は低くなり、ラッチ616の出力は、次のメッセージ
サイクルの間高くなる。これらの状況のもとで、回線19
6からのメッセージパケットは、メッセージパケットを
バス198に書き込むことによって行が空になった場合と
同じようにメッセージ注入器によって受け入れられる。
もし、メッセージが行に存在していてもそのセルにアド
レス指定されていなければ、NANDゲートへの両方の入力
は高くなり、その結果、NANDゲートの出力は低くなり、
ラッチ616の出力は、メッセージサイクルの開始より前
から低くなる。結果として、NANDゲート686の出力及び
セレクタ670の選択端子が高くなりセレクタの端子Aに
送られた信号は、D-OUT端子へ送られる。さらに、低い
信号は否定回路680によって反転され、DP-OUT端子で高
い信号を提供し、メッセージが行中にあることを知らせ
る。否定回路680の出力も、ゲート684を使用可能にす
る。その結果、回線194上のCIU180から、行の1つにメ
ッセージを入れるよう要求があると、この信号は、AND
ゲート684及びDP-EXTout端子端子によって、次に低い行
へ送られる。
セレクタ670の端子Aに供給されたメッセージパケット
は、第1及び第2相対セルアドレスを持つメッセージパ
ケットである。このメッセージパケットは、D-IN端子で
受け取ったメッセージパケットを記憶し、第2の相対セ
ルアドレスから第1の相対セルアドレスを再構成するバ
ッファ復元器210によって供給される。
バッファ復元器210は、シフトレジスタ700,ANDゲート71
0,712,と714,そして、NORゲート720を含む。メッセージ
パケットは、D-IN端子に到着すると、シフトレジスタ70
0中にシフトされる。このレジスタは、第2の相対セル
アドレスの初めから最後の誤り訂正ビットまでの、全メ
ッセージパケットを記憶するに充分な長さを持つ。第18
図に示すように、レジスタ700は、その出力端子から16
のシフト位置にあるタップ702を持つ。その結果、メッ
セージパケットがシフトレジスタを通ってシフトされる
と、メッセージパケットの最初の16ビットが、これらの
ビットがシフトレジスタの出力端に達する前に、ANDゲ
ート714の入力で利用可能になる。これらビットの最初
の15個は、相対セルアドレスである。
第1の相対セルアドレスを再構築するために、ゲート71
4が、これらビットがタップ702にある基本クロックサイ
クル0-14の間に信号SEL-TAPによって動作可能になり、
ゲート714の出力は、NORゲート720を通って、セレクタ6
70の端子Aに送られる。クロックサイクル15の間に、AN
Dゲート710が、信号SEL-MSGPによって動作可能になり、
書式ビットを発生する。このビットは、ラッチ616の出
力から得られ、ANDゲート710の出力はNORゲート720を通
ってセレクタ670の端子Aへ送られる。クロックサイク
ル15の間、ラッチ616の出力は、メッセージパケットが
バス198に転送されているところか、または、そのメッ
セージサイクルの間にD-IN端子で、メッセージパケット
が受け取られていない場合は高くなる。これらの場合、
ANDゲート710によって送られる信号は高い信号で、NOR
ゲート720によって反転され、バッファ及び復元器215の
出力に、有効なメッセージパケットがないことを知らせ
る。他の全ての場合には、ラッチ616の出力が低くな
り、この信号はNORゲート720によって反転され、バッフ
ァ及び復元器215からのメッセージパケットが有効であ
ることを知らせる。これら16サイクルの後で、シフトレ
ジスタ700を通ってシフトされているメッセージパケッ
トが、出力端子へ達し、また、ANDゲート712の入力に達
する。その時と、基本クロックサイクル16-72全体で、
ゲート712は信号SEL-ENDによって動作可能になり、第2
の相対セルアドレス及びメッセージパケットの残りをセ
レクタ670の端子Aへ提供する。
F.例 プロセッサ/メモリのレジスタでのメッセージパケット
の発生及び受け取りの例は次の通りである。表VIIは、
この例で取り上げているプロセッサ/メモリの下記のレ
ジスタ及びフラグで利用出来る情報を明記している。
表 VII レジスタ 情 報 1 0001 行き先アドレス(絶対) 2 0010 局地アドレス(絶対) 3 0010 状態 4 0100 送られるデータ 6 0110 偶数−データ受け取り 7 0111 奇数−データ受け取り 14 1110 データイン 15 1111 ゼロ 局地アドレス情報は、レジスタアドレスの4ビットを列
0から3、局地プロセッサ/メモリを識別するアドレス
の5ビットを列4から8に、列9から23のICアドレスの
15ビットは絶対値のICのアドレスを明記し、ICアドレス
にパリティを提供する列24には1−ビットを持つレジス
タ2内に記憶される。メッセージが送られてもよくなる
と、メッセージデータがレジスタ4内に記憶され、ICチ
ップ、プロセッサ/メモリ及びレジスタを含めたその行
き先のアドレスは、レジスタ2内の局地アドレス情報と
同じ順序でレジスタ1内にあり、ビットを送れという要
求は、状態レジスタ3の列0内の1−ビットとしてセッ
トされ、フラグを送れという要求は、グローバルフラグ
レジスタ6内の1−ビットとしてセットされる。この例
として、メッセージパケットは、偶数受け取りレジスタ
6(レジスタアドレスが1110ならば)か、奇数受け取り
レジスタ7(レジスタアドレスが1111ならば)のどちら
かで受け取られる。
これらの地点で記憶された情報について、表VIIIが、レ
ジスタ1内のアドレスによって特定されたICへ、レジス
タ4内のデータを送り出すメッセージパケットを発生
し、メッセージパケットのデータを受け取るに必要な命
令を示す。
サイクル51の間に、局地プロセッサ/メモリがメッセー
ジを送ろうとしていて、デイジーチェーン内で、より高
いプロセッサ/メモリが、送れと要求を出していなけれ
ば、ComEビットがセットされる。この時に当該プロセッ
サ/メモリから送る要求は、グローバルフラグレジスタ
6内の1−ビットとして記憶され、より高いプロセッサ
/メモリからの送れの要求はいずれも、状態レジスタ3
の0列内の1−ビットとして記憶されている。このプロ
セッサ/メモリが、送れるかどうかは、状態ビットを補
数化し、この補数化されたビットとグローバルフラグレ
ジスタ6の内容のANDをとることによって計算される。
結果は、ComEグラグレジスタに書き込まれる。ComEビッ
トがセットされると、NANDゲート293は動作可能にな
り、それによって、キャリ出力回線287上の信号をCIU18
0への信号回線123へ提供する。サイクル52の間にグロー
バルレジスタ6内に1−ビットが、SWAP動作によって状
態レジスタの0列に書き込まれる。
サイクル53の間に、プロセッサ/メモリは、CIU180への
回線123へ、ICアドレスのためのパリティビットを提供
する。上記のように、このパリティビットはレジスタ2
の列24内に記憶される。それは、0フラグから得た0−
ビットとともに、レジスタ2のこの桁の内容のORをとる
ことによって読み出しサイクルの間に読み出される。こ
の動作の結果は、キャリ出力回線上を、フラグレジスタ
2内のデータシンクとNANDゲート293へ提供され、そこ
から回線123へ送られる。
サイクル53の間に、もしメッセージパケットを送りだす
のならこの1−ビットが送りだされる。この1−ビット
は、ComEフラグレジスタ7内にセットされる。ゼロを含
むレジスタ及びグラグレジスタの内容のORをとることに
よって読み出される。この動作の結果はNANDゲート293
を通って回線123へ送られる。
サイクル55から86の間に、データは、一度に1列ずつ、
レジスタ4から読み出され、“フラグを受け取るな”が
低いと、データは、一度に1列ずつ、受け取りレジスタ
6,7の1つに書き込まれる。メッセージパケットの同時
送りと受け取りは、レジスタBの出力をキャリ出力回線
287へ提供し、フラグからレジスタAへ入力を提供するS
WAP動作によって達成される。レジスタBはレジスタ4
として特定され、この例としてレジスタAがレジスタ7
として特定される。CIU180からの回線122からの入力
は、フラグ13であるデータインフラグへ送られる。これ
らのサイクルの各々の読み出し部分の間に、レジスタ4
の1列の信号と、データイン端子の信号が読み出され
る。これらの動作の書き込み部分の間に、キャリ出力回
線上の信号がNANDゲート293を通って、出力回線123へ提
供される。同時に、CIU180からデータインフラグ13へ送
られた信号はレジスタ7の列に書き込まれる。
上述のごとく、レジスタ6又は7へのデータの書き込み
は、“受け取るな”フラグ1の状態で条件付けされる。
この状態は、回線176及びセレクタ294を用いてフラグ1
を読み出し、XORゲート299内で、“受け取るな”フラグ
と回線178上の信号とを比較することによって決定され
る。読み出しフラグ1のための信号はピンI22-25上の00
01である。
サイクル87の間、受け取られたメッセージパケットのパ
リティビットは、レジスタ2内の絶対ICアドレスのパリ
ティビットと比較される。これはレジスタ2の桁24のパ
リティビットで、データインフラグ入力の信号の排他的
ORを実行するためにMOVE動作を用いてなされる。もしパ
リティ誤りがないと、この動作の結果は、グローバルフ
ラグレジスタ6に書き込まれる低い信号でなければなら
ない。マイクロコントローラ20が、パリティ誤りを見張
るために、この回線をチェックする。
サイクル0から14の間に、メッセージパケットのための
相対ICアドレスが発生され、CIU180に提供される。この
ことは、MOVE動作を用いて、送信側のICアドレスの絶対
値と、行き先のICアドレスの絶対値の排他的ORを作り、
それをキャリ出力回線へ提供することによって達成され
る。
サイクル15から19の間に、IC内の特定のプロセッサ/メ
モリのアドレスが、レジスタ1から読み取られ、MOVE動
作によってキャリ出力回線へ提供される。サイクル20の
間に、1つのビットが行き先レジスタが奇数かまたは偶
数であるべきかを特定して送られ、サイクル21から23の
間に、追加のビットが、行き先レジスタのアドレスを特
定しながら送られる。この例の中で、サイクル21から23
の間に送られたビットの状態は、サイクル20の間に発生
されたビットの状態によって、レジスタ6又はレジスタ
7のみにデータが書き込まれるため、不適切である。便
宜上、サイクル21から23の間の送り出されたビットは、
ゼロレジスタ15の出力とゼロフラグ入力15を反転し、そ
れらの値のORをとることによって得られた1−ビットで
ある。
サイクル24の間に、メッセージパケットが、径路指定回
路がメッセージパケットを受け入れたかどうかを決める
ための回線123に、送られているかどうかのテストが行
なわれる。受け取りは、NORゲート352によって反転さ
れ、サイクル0-44の間にデータインフラグに送られた回
線199上の低い信号によって知らされる。サイクル24の
間に、この信号は再び反転されて、SWAP動作によって状
態レジスタ3の0列に書き込まれる。
サイクル25から38は自由で、これらのサイクルへの命令
は、MOVE動作による0−ビット転送の非動作(NOP)を
提供する。
サイクル39の間に、プロセッサ/メモリは、メッセージ
パケットを次に径路指定サイクルで送る許可を要求する
かどうかを計算する。この情報は状態レジスタから得ら
れ、OR動作によって回線124上の出力を提供しているグ
ローバルフラグレジスタ6に提供される。サイクル40-4
3の間に、送れの要求は、状態レジスタから読み出さ
れ、キャリ出力回線を経て、チップ上のデイジーチェー
ン内の局地プロセッサ/メモリの下にあるプロセッサ/
メモリのデイジー入力へ送られる。同時に、デイジーチ
ェーン内で高い所にあるプロセッサ/メモリからの入力
は、デイジー入力から読み出され、キャリ出力によっ
て、デイジーチェーンの下の方のプロセッサ/メモリに
提供される。4つのサイクルが、プロセッサ/メモリか
らの送れの要求がチェーンの下方へ伝播されるのを確か
めるためにある。サイクル44の間に、チェーン内の高い
所のプロセッサ/メモリのいずれからの送れの要求が、
キャリ出力回線へ書き込まれ、この情報は、状態レジス
タにも書き込まれる。
サイクル45に間に、もしメッセージがこのICに送達され
ようとしているならば、1個の1−ビットが、データイ
ンフラグへの回線122上に提供される。このビットは、
“受け取るな”フラグレジスタ1を、ComEInでの入力の
状態の反対である0−ビットでセットすることにより、
このレジスタの状態を計算するのに用いられる。このこ
とは、OR動作によって、データイン入力を補数化し、そ
れをフラグレジスタ1へ書き込むことによって行なわれ
る。
サイクル46から50の間に、プロセッサ/アドレスが、CI
U180からの回線122上に送達される。各プロセッサ/メ
モリは、このアドレスを自分のアドレスと、これら2つ
のアドレスの排他的ORをとり、フラグレジスタ1内で見
られた相違を積み重ねるためにMOVE動作を用いて、比較
する。もし、違いが見られない場合は、フラグレジスタ
1は、局地プロセッサ/メモリがメッセージパケットの
行き先であることを知らせる0−ビットを保持する。
その後、径路指定サイクルは、全てのメッセージパケッ
トが送達され終るまで続く。
G.代替案 この技術に熟練する人々には明らかであるように、本発
明の精神と範囲内で、上述のシステムには数多くの変更
が可能である。本体コンピュータ10,マイクロコンピュ
ータ30及びプロセッサ/メモリの直線のアレイの使用、
及び、データソース40及びデータシンク90及び関連する
バッファによるプロセッサ/メモリへ、そして、それか
らのデータの提供はほんの一例である。例えば、もし本
体コンピュータが充分速ければ、命令シーケンス発生
は、マイクロコントローラの代わりにコンピュータで行
なうことも出来る。もしくは、多くの応用において、マ
イクロコントローラ及びプロセッサ/メモリのアレイの
動作に本体コンピュータを用いる必要がない。データソ
ース40,バッファ50,60,65,70,75,80、とデータシンク90
の他の配置も可能である。プロセッサ/メモリの直線状
のアレイは、比較的簡単な組織と厳密な並行動作の迅速
な実行という長所をもっているが、この組織は、本発明
の実行には必要ではない。個別のプロセッサ/メモリは
厳密に線型アレイ内に、第2図の螺旋型接続に代表され
るように接続出来るが、2次元的8角形もしくは10角形
又は他の形態、3次元的アレイで接続させることも出来
る。ある応用では、チップの径路指定回路を通る接続を
除いて、違うチップ上のプロセッサ/メモリ間をどのよ
うな接続も使わないことも出来る。
プロセッサ/メモリの数、位置、個別の機能も変化させ
られる。本発明のコンピュータシステムはプロセッサ/
メモリの数が、これより多くても少なくても良い。本発
明の利点は、約10,000個のプロセッサ/メモリを使用し
た時にはっきりしてくる。各チップ上に32のプロセッサ
/メモリ、各PC板上に64チップという220プロセッサ/
メモリの配置は、単なる一例である。現在の技術では、
この配置は、妥当な費用と思えるもので実現出来る。将
来は、各チップ上にもっと多くのプロセッサ/メモリを
置けるであろう。n−立方体の次元の数も、相互結合さ
せるプロセッサ/メモリの数にあわせて変化させられ
る。ある応用では、径路指定回路を、プロセッサ/メモ
リが取り付けられているICとは違うICに作る方が有利に
なるだろう。ある場合には、2つ以上のタイプのプロセ
ッサ/メモリを使用するのが良いこともある。例えば、
特別な算術的機能を持つプロセッサ/メモリが、汎用プ
ロセッサ/メモリと共に有用であることもある。設計変
化も、ICの回路において行なわれるだろう。例えば、ピ
ン計数は、命令ピンの時分割多重方式によって、変わっ
てくるだろう。
立方体の各次元でICチップに2つの可能な配置のあるブ
ールn−立方体の径路指定回路を説明してきたが、本発
明を、各チップが、n−立方体の1次元以上の3つ以上
の位置に配置されてもよい。このような配置では、各チ
ップを接続するには、いくつかの可能性がある。径路指
定回路200の一般的形態を保つ配置では、各セルの各次
元の出力回線39を、同じ次元内の他の1つだけのセルの
入力回線38へ接続する。第6図の各チップ100の入力及
び出力回線38,39の接続パターンを一般化するため、1
次元内の1アドレスにチップが位置する場合に、その出
力回線は0アドレスに位置する最も近い隣接チップに接
続され、そのアドレスは1単位だけ小さく、また、ある
次元でチップが0アドレスに位置する場合は、その出力
回線は、その次元において最高のアドレスである1アド
レスに置かれたチップに接続される。このパターンを、
ある次元の3つ以上のアドレスにチップが置かれる場合
に応用するには、最高アドレスにあるチップの出力回線
を、次に高いアドレスその他にあるチップの入力に接続
するだけで良い。そして、0アドレスにあるチップの出
力回線を、最高アドレスにあるアドレスの入力回線に接
続する。例えば、チップがある次元の4アドレスに置く
ことが出来るとすると、アドレス3のチップの出力回線
を、アドレス2にあるチップの入力回線に接続し、アド
レス2チップの出力回線を、アドレス1のチップの入力
回線に、アドレス1のチップの出力回線をアドレス0の
入力回線に、そしてアドレス0の出力回線をアドレス3
の入力回線に接続する。あるいは、接続を反対の方向に
行なうことも出来る。
相対アドレス発生及び径路指定回路においても修正が必
要になるだろう。しかし、これらの修正はこれらの機能
の汎用化から明らかになる。このように、各次元に2つ
だけICアドレスがある場合は、相対アドレスは、2つの
アドレスの排他的ORをとることによって決められる。し
かし、これは、他のアドレスから1つのアドレスを減
じ、負数を補数として表わすことの等価である。同様
に、先頭アドレスビットを調べて、メッセージパケット
が行き先へ着いたかどうかを決める径路決定機能は、一
般的には、先頭アドレスビットが0−数字かどうでない
かを決めることである。それが、0−数字であれば、メ
ッセージパケットは、その次元内の行き先に到達してい
る。さもなければ、その次元の他のアドレスへ径路指定
されなければならない。ある次元に2アドレス以上ある
場合、相対アドレスの発生と、そのアドレスによって特
定されたメッセージパケットの径路指定は似たものにな
る。相対アドレスは、行き先ICのアドレスを開始ICのア
ドレスから減算し、メッセージパケットが行き先に達す
るために、その次元内で横切らねばならないノードの数
を得ることによって決められる。負数は、その補数に変
換することによって簡単に取り扱える。回路割り当て装
置の各列のバスアクセス論理内の径路指定回路は、メッ
セージパケットの先頭アドレスビット内に0−数字があ
るかどうかをテストするだけである。もし、0−数字が
あると、メッセージパケットは、その次元内でアドレス
指定されているアドレスに達しており、その次元内の異
なるアドレスへ径路指定する必要がない。先頭ビットが
0−数字でない場合には、メッセージパケットは正しい
アドレスになく、その次元内でのアドレスが1単位小さ
い最も近い隣接ノードに径路指定することが出来る。複
製アドレスが径路指定された場合、その次元の相対アド
レス数字は、1だけ減ずることにより更新出来る。
1次元内にICチップに2アドレス以上ある回路のこの例
を考えると、このようなスキーマは上記のブールn−立
方体のICチップの同数を相互接続させるために用いられ
る入力及び出力回線38,39の数を減少させ、従って、径
路指定障害の可能性を増すことがわかる。しかし、チッ
プ間の相互通信が低い応用においては、このような代替
案は実用的であると分かるであろう。
上述の各構成要素についても、単なる一例である。RAM2
50及びフラグコントローラ290の特定の大きさは、実例
にすぎない。ある応用においては、もっと大型のRAM及
びコントローラの方が良いかも知れない。もちろん、も
っと小型のものを用いても良い。ビット−直列ALU280
は、並列ALUと入れかえることも出来るし、ALUへの入力
の数及び/又はそれからの入力の数が違っていても良
い。プロセッサ/メモリの開示された実施例は、全ての
アドレスコーディングをPLA150内で行なうが、ある場合
には、デコーディングのいくらかを、各プロセッサ/メ
モリで行なう方が有利であろう。各プロセッサ/メモリ
のALU,RAM及びフラグコントローラは、上記の実施例で
は、他のプロセッサ/メモリのそれらとは独立して作動
しているが、そうではない組合わせも可能である。例え
ば、各ALUは、ICアドレスがICチップ上の全てのプロセ
ッサ/メモリに記憶される単一のレジスタのように1つ
又はそれ以上の同じレジスタへのアクセスを持つことも
出来る。AND,OR,ADD,SWAP及びMOVEの5個の基本動作の
命令セットの使用が好ましいが、追加の動作を用いてこ
の発明を実施しても良い。加えて、表VIの32の命令から
異なる数の命令を用いて、発明を実施しても良い。
径路指定回路200においても、数多くの変更が出来るだ
ろう。回路割り当て装置205の列の数はn−立方体内の
次元の数によって決まる。行数は、径路指定回路の記憶
要求量によって異なる。このような要求量は、どのくら
いのメッセージパケット径路指定がシステムで用いられ
ているかによって、1つ1つのシステムによって変る。
ある応用では、メッセージ注入器220へ複数の出力回線1
94,196を、また/もしくは、メッセージ検出器210及び
注入器220から複数の出力回線197,198,199を備えた方が
良いこともある。メッセージパケットが径路指定されね
ばならない次元の数によって、バッファ及びアドレス復
元器215内のメッセージパケットを分類することが望ま
しいこともある。
命令の処理において数多くの変更も行なえる。前のメッ
セージパケットが完全に送達されないうちに、続きのメ
ッセージパケットが発生されるように、径路指定サイク
ルを重複させると有利であることもある。追加の誤り検
知及び訂正は、追加のパリティビットを使うことによっ
て行なえる。条件的動作は1個以上のフラグに基づいて
いても良い。間接アドレス指定が望ましいこともある。
性能を強化するために上記のシステムに、数多くの機構
を組み合わせることも出来る。例えば、各チップに、チ
ップ上の各プロセッサ/メモリの個別のダイナミックRA
Mの内容の状態を保存するために、外部メモリを追加し
ても良い。各プロセッサ/メモリのアドレスは、各アド
レスを動作の開始時に装填する必要をなくすために、ハ
ード配線で供給することも出来る。入力は、データソー
ス40を通さず、イメージセンサを通して直接各プロセッ
サ/メモリに行なうことも出来る。もしくは、コンピュ
ータ10に、各プロセッサ/メモリの個別のレジスタへの
直接アクセスを持たせても良い。最後に、シリコンに作
り込まれ従来からある電線で接続された超LSI回路の現
在の技術の点から、発明を説明してきたが、本発明の概
念は、他の技術にも転用出来るということも認識される
べきである。シリコンIC35を、例えばガリウム砒素のよ
うなもので作られていてしかも同じ機能を持つ他の回路
で代替しても良く、従来からの電線を、例えば、光ファ
イバで代替しても良い。
【図面の簡単な説明】
第1図は、本発明による並列処理集積回路(IC)のアレ
イを用いるコンピュータシステムの概略説明図、 第2図は、本発明による並列処理集積回路(IC)のアレ
イを用いるコンピュータシステムの概略説明図、 第3図は、並列処理IC間の相互接続パターンのいくらか
を理解する上に有用な概略説明図、 第4図は、並列処理IC間の相互接続パターンのいくらか
を理解する上に有用な概略説明図、 第5図は、第1図および第2図のアレイ内で1つのICか
ら他のICへ送られるメッセージの書式と、第1図および
第2図に描かれたコンピュータシステムの動作を理解す
るのに有用なクロック信号波形のいくつかを示す波形
図、 第6図は、並列処理ICを持ついくつかの超LSIパッケー
ジを取り付ける印刷配線板の概略説明図、 第7図は、第1図および第2図のアレイの1個並列処理
ICの実施例のブロック図、 第8図は、第1図および第2図のアレイの1個の並列処
理ICの実施例のブロック図、 第9図は、第7図のブロック図中に描かれたプロセッサ
/メモリの1つのブロック図、 第10図は、第7図のブロック図中に描かれたプロセッサ
/メモリの1つのブロック図、 第11図は、第8図のブロック図中に描かれたインタフェ
ース装置の論理図、 第12図は、第11図の回路の動作を理解するのに有用ない
くつかの波形図、 第13図は、第11図11の回路の動作を理解するのに有用な
いくつかの波形図、 第14図は、第8図のブロック図に描かれた径路指定回路
のブロック図、 第15図は、第14図の径路指定回路中の回線割り当て機構
の例示的実施例の論理図、 第16図は、第15図の回線割り当て機構の一部分の論理
図、 第17図は、第14図〜第16図の回路動作を理解する上に有
用ないくつかの波形図、 第18図は、第14図に描かれた径路指定回路の追加部分の
例示的実施例の論理図、 第19図は、第17図に描かれた回路の動作を理解する上に
有用ないくつかの波形図、 第20図は、第7図および第8図に描かれた回路の超LSI
回路の配置図である。 10……コンピュータ、20……マイクロプロセッサ、30…
…アレイ、40……データソース、50,60,65,70,75,80…
…バッファ、90……データシンク。
フロントページの続き (56)参考文献 特開 昭54−140437(JP,A) 日経エレクトロニクス1981年12月21日号 P.88−108(P.104) IEEE TRANSACTION O N COMPUTER vol.C30 n o.4(1981)P.264−273 IEEE TRANSACTION O N COMPUTER vol.C26 n o.5(1977)P.458−473 COMPUTER vol.14 no. 12(1981)P.65−76

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】メッセージを転送するために複数の通信リ
    ンク(38、39)によって多次元パターンに相互接続され
    た複数の経路指定ノード(180、200)から構成された経
    路指定装置であって、各メッセージは、各桁が一連の次
    元列の1つと関連づけられた一連のアドレス桁列からな
    るアドレス(第5図中の「セル・アドレス(相対)」)
    を含むものにおいて、各経路指定ノードは、 各々が異なる次元の該通信リンクに接続されていて、該
    次元を通って別の経路指定ノードからメッセージを受信
    するための複数のメッセージ入力回路(405)と、 各々が異なる次元の該通信リンクに接続されていて、該
    次元を通って別の経路指定ノードにメッセージを送信す
    るための複数のメッセージ出力回路(415)と、 該入力回路からのメッセージをアドレスに従って該出力
    回路に選択的に結合するためのスイッチ回路(セル400
    の集合)とを備えており、該スイッチ回路は、各々が前
    記次元と関連づけられた一連のメッセージ結合回路(セ
    ル400)を含み、各メッセージ結合回路は関連する次元
    のメッセージ出力回路、前の次元のメッセージ入力回路
    および隣接の次元のメッセージ結合回路に接続され、該
    メッセージ結合回路は、次元に関連づけられたアドレス
    桁の状態に応じて、メッセージ入力回路に現われたメッ
    セージをメッセージ出力回路か、隣接の次元のメッセー
    ジ結合回路のどちらかに選択的に結合することを特徴と
    する経路指定装置。
  2. 【請求項2】特許請求の範囲第1項の記載において、各
    メッセージ結合回路は、 そこに接続されたメッセージ入力回路に現われたメッセ
    ージを、そこに接続されたメッセージ出力回路に選択的
    に結合するための出力メッセージ結合回路(500)と、 そこに接続されたメッセージ入力回路で受信されたメッ
    セージを、より高い次元のメッセージ結合回路に結合す
    るための次元間メッセージ結合回路(492、494)と、 メッセージ結合回路の次元と関連づけられたアドレス桁
    の状態に応じて、出力メッセージ結合回路か、次元間メ
    ッセージ結合回路のどちらかを選択的にイネーブルする
    ためのアドレス桁検査回路(490、502、450、470、46
    0、462、464、466、476、478、472)とから構成されて
    いることを特徴とする経路指定装置。
  3. 【請求項3】特許請求の範囲第2項の記載において、該
    メッセージ出力回路は該スイッチ回路から受信したメッ
    セージを送信するとき、そのメッセージの中でその次元
    と関連づけられているアドレス桁をさらに補数化するこ
    とを特徴とする経路指定手段。
  4. 【請求項4】特許請求の範囲第3項の記載において、各
    経路指定ノードごとに、該スイッチ回路は、所定の状態
    を受けるとそれに応えて、そこに接続されたメッセージ
    結合回路に受信されたメッセージをメッセージ出力回路
    に結合するように該出力メッセージ結合回路をイネーブ
    ルするための状態検出回路(480)を備えていることを
    特徴とする経路指定装置。
  5. 【請求項5】特許請求の範囲第1項の記載において、各
    々が経路指定ノードに接続されて、そのノードに転送す
    るためのメッセージを生成する複数のプロセサからなる
    並列コンピュータで使用されることを目的とし、その場
    合において、各経路指定ノードはさらに、そこに接続さ
    れたプロセッサからメッセージを受信するためのプロセ
    ッサ・メッセージ受信回路(181)を備えており、該ス
    イッチ回路はさらに、該プロセッサ・メッセージ受信回
    路に受信されたメッセージを、そのメッセージに含まれ
    るアドレスに従って該出力回路に結合することを特徴と
    する経路指定装置。
  6. 【請求項6】特許請求の範囲第1項の記載において、各
    々が経路指定ノードに接続されて、そのノードからメッ
    セージを受信するための複数のプロセッサからなる並列
    プロセッサで使用されることを目的とし、その場合にお
    いて、各経路指定ノードはさらに、メッセージをそこに
    接続されたプロセッサと結合するためのプロセッサ・メ
    ッセージ送出回路を備えており、該スイッチ回路はさら
    に、メッセージをそこに含まれるアドレスに従って該プ
    ロセッサ・メッセージ送出回路に結合することを特徴と
    する経路指定装置。
  7. 【請求項7】特許請求の範囲第1項の記載において、回
    路列の中の最後のメッセージ結合回路からのメッセージ
    をバッファに入れ、バッファに入れたメッセージを回路
    列の中の最初のメッセージ結合回路に結合するように接
    続されたメッセージ・バッファ(420)をさらに備えて
    いることを特徴とする経路指定装置。
JP59109776A 1983-05-31 1984-05-31 経路指定装置 Expired - Lifetime JPH0797362B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US499474 1983-05-31
US06/499,474 US4814973A (en) 1983-05-31 1983-05-31 Parallel processor

Related Child Applications (2)

Application Number Title Priority Date Filing Date
JP3129361A Division JPH04330554A (ja) 1991-05-31 1991-05-31 並列プロセッサ
JP5289349A Division JP2538185B2 (ja) 1983-05-31 1993-11-18 並列コンピュ―タシステム

Publications (2)

Publication Number Publication Date
JPS6084661A JPS6084661A (ja) 1985-05-14
JPH0797362B2 true JPH0797362B2 (ja) 1995-10-18

Family

ID=23985391

Family Applications (2)

Application Number Title Priority Date Filing Date
JP59109776A Expired - Lifetime JPH0797362B2 (ja) 1983-05-31 1984-05-31 経路指定装置
JP5289349A Expired - Lifetime JP2538185B2 (ja) 1983-05-31 1993-11-18 並列コンピュ―タシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP5289349A Expired - Lifetime JP2538185B2 (ja) 1983-05-31 1993-11-18 並列コンピュ―タシステム

Country Status (5)

Country Link
US (1) US4814973A (ja)
EP (4) EP0495537A3 (ja)
JP (2) JPH0797362B2 (ja)
CA (1) CA1212480A (ja)
DE (1) DE3486141T2 (ja)

Families Citing this family (119)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4816449A (en) * 1984-08-09 1989-03-28 Immunetech Pharmaceuticals Immunotherapeutic anti-inflammatory peptide agents
CA1253912A (en) * 1984-11-08 1989-05-09 Masao Hosaka System for controlling image formation
EP0200569A3 (en) * 1985-05-03 1988-10-05 Advanced Micro Devices, Inc. Monolithic integrated circuit device
US5113523A (en) * 1985-05-06 1992-05-12 Ncube Corporation High performance computer system
DE3607241A1 (de) * 1986-03-05 1987-09-10 Gerhard G Thomas Rechner
CA1293819C (en) * 1986-08-29 1991-12-31 Thinking Machines Corporation Very large scale computer
US5175865A (en) * 1986-10-28 1992-12-29 Thinking Machines Corporation Partitioning the processors of a massively parallel single array processor into sub-arrays selectively controlled by host computers
CA1289671C (en) * 1986-10-28 1991-09-24 Thinking Machines Corporation Massively parallel processor
WO1988004077A1 (en) * 1986-11-24 1988-06-02 Thinking Machines Corporation Pipelining technique and pipelined processes
GB2201817A (en) * 1987-02-27 1988-09-07 Massachusetts Inst Technology Geometry-defining processors
GB2203574A (en) * 1987-04-03 1988-10-19 Univ Southampton Parallel processor arrays
GB2206428A (en) * 1987-06-15 1989-01-05 Texas Instruments Ltd Computer
WO1989001665A1 (en) * 1987-08-14 1989-02-23 Regents Of The University Of Minnesota Hypercube topology for multiprocessor systems with added communication paths between nodes or substituted corner topologies
US5170482A (en) * 1987-08-14 1992-12-08 Regents Of The University Of Minnesota Improved hypercube topology for multiprocessor computer systems
US4908751A (en) * 1987-10-15 1990-03-13 Smith Harry F Parallel data processor
JPH0624361B2 (ja) * 1988-02-15 1994-03-30 工業技術院長 データ伝送方式
US5377123A (en) * 1992-06-08 1994-12-27 Hyman; Edward Programmable logic device
US5253363A (en) * 1988-03-15 1993-10-12 Edward Hyman Method and apparatus for compiling and implementing state-machine states and outputs for a universal cellular sequential local array
US5644497A (en) * 1988-03-15 1997-07-01 Hyman; Edward Method and apparatus for compiling and implementing state-machine states and outputs for a universal cellular sequential logic array
US5212778A (en) * 1988-05-27 1993-05-18 Massachusetts Institute Of Technology Message-driven processor in a concurrent computer
US5088048A (en) * 1988-06-10 1992-02-11 Xerox Corporation Massively parallel propositional reasoning
US5583506A (en) * 1988-07-22 1996-12-10 Northrop Grumman Corporation Signal processing system and method
GB2223867A (en) * 1988-09-09 1990-04-18 Univ City Multiprocessor data processing system
US5159690A (en) * 1988-09-30 1992-10-27 Massachusetts Institute Of Technology Multidimensional cellular data array processing system which separately permutes stored data elements and applies transformation rules to permuted elements
GB2227341A (en) * 1989-01-18 1990-07-25 Intel Corp Message routing in a multiprocessor computer system
US5594866A (en) * 1989-01-18 1997-01-14 Intel Corporation Message routing in a multi-processor computer system with alternate edge strobe regeneration
US5276893A (en) * 1989-02-08 1994-01-04 Yvon Savaria Parallel microprocessor architecture
GB2232512A (en) * 1989-05-31 1990-12-12 Plessey Telecomm Processor unit networks
US5345578A (en) * 1989-06-30 1994-09-06 Digital Equipment Corporation Competitive snoopy caching for large-scale multiprocessors
US5218709A (en) * 1989-12-28 1993-06-08 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Special purpose parallel computer architecture for real-time control and simulation in robotic applications
US5187801A (en) * 1990-04-11 1993-02-16 Thinking Machines Corporation Massively-parallel computer system for generating paths in a binomial lattice
US5367677A (en) * 1990-05-11 1994-11-22 Thinking Machines Corporation System for iterated generation from an array of records of a posting file with row segments based on column entry value ranges
US5133073A (en) * 1990-05-29 1992-07-21 Wavetracer, Inc. Processor array of N-dimensions which is physically reconfigurable into N-1
US5157785A (en) * 1990-05-29 1992-10-20 Wavetracer, Inc. Process cell for an n-dimensional processor array having a single input element with 2n data inputs, memory, and full function arithmetic logic unit
US5193202A (en) * 1990-05-29 1993-03-09 Wavetracer, Inc. Processor array with relocated operand physical address generator capable of data transfer to distant physical processor for each virtual processor while simulating dimensionally larger array processor
CA2050559A1 (en) * 1990-10-24 1992-04-25 John D. S. Babcock Data communication network and method of operation
US5815723A (en) 1990-11-13 1998-09-29 International Business Machines Corporation Picket autonomy on a SIMD machine
US5588152A (en) 1990-11-13 1996-12-24 International Business Machines Corporation Advanced parallel processor including advanced support hardware
ATE180586T1 (de) 1990-11-13 1999-06-15 Ibm Paralleles assoziativprozessor-system
US5809292A (en) 1990-11-13 1998-09-15 International Business Machines Corporation Floating point for simid array machine
US5765012A (en) 1990-11-13 1998-06-09 International Business Machines Corporation Controller for a SIMD/MIMD array having an instruction sequencer utilizing a canned routine library
US5625836A (en) 1990-11-13 1997-04-29 International Business Machines Corporation SIMD/MIMD processing memory element (PME)
US5828894A (en) 1990-11-13 1998-10-27 International Business Machines Corporation Array processor having grouping of SIMD pickets
US5765015A (en) 1990-11-13 1998-06-09 International Business Machines Corporation Slide network for an array processor
US5752067A (en) 1990-11-13 1998-05-12 International Business Machines Corporation Fully scalable parallel processing system having asynchronous SIMD processing
US5630162A (en) 1990-11-13 1997-05-13 International Business Machines Corporation Array processor dotted communication network based on H-DOTs
US5963746A (en) 1990-11-13 1999-10-05 International Business Machines Corporation Fully distributed processing memory element
US5794059A (en) 1990-11-13 1998-08-11 International Business Machines Corporation N-dimensional modified hypercube
US5734921A (en) 1990-11-13 1998-03-31 International Business Machines Corporation Advanced parallel array processor computer package
US5963745A (en) 1990-11-13 1999-10-05 International Business Machines Corporation APAP I/O programmable router
US5590345A (en) 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
US5765011A (en) 1990-11-13 1998-06-09 International Business Machines Corporation Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams
US5617577A (en) 1990-11-13 1997-04-01 International Business Machines Corporation Advanced parallel array processor I/O connection
US5966528A (en) 1990-11-13 1999-10-12 International Business Machines Corporation SIMD/MIMD array processor with vector processing
JPH04193033A (ja) * 1990-11-26 1992-07-13 Hitachi Ltd バッテリシステム
US5379438A (en) * 1990-12-14 1995-01-03 Xerox Corporation Transferring a processing unit's data between substrates in a parallel processor
GB2251320A (en) * 1990-12-20 1992-07-01 Motorola Ltd Parallel processor
US5131054A (en) * 1991-01-09 1992-07-14 Thinking Machines Corporation Character recognition system using massively parallel computer that identifies a query character using degree of similarity with plurality of training characters of known identity
IE920032A1 (en) * 1991-01-11 1992-07-15 Marconi Gec Ltd Parallel processing apparatus
US5301310A (en) * 1991-02-07 1994-04-05 Thinking Machines Corporation Parallel disk storage array system with independent drive operation mode
US5321813A (en) * 1991-05-01 1994-06-14 Teradata Corporation Reconfigurable, fault tolerant, multistage interconnect network and protocol
US5594918A (en) 1991-05-13 1997-01-14 International Business Machines Corporation Parallel computer system providing multi-ported intelligent memory
US5151900A (en) * 1991-06-14 1992-09-29 Washington Research Foundation Chaos router system
US5251131A (en) * 1991-07-31 1993-10-05 Thinking Machines Corporation Classification of data records by comparison of records to a training database using probability weights
CA2076293A1 (en) * 1991-10-11 1993-04-12 Prathima Agrawal Multiprocessor computer for solving sets of equations
US5715391A (en) * 1991-11-15 1998-02-03 International Business Machines Corporation Modular and infinitely extendable three dimensional torus packaging scheme for parallel processing
US5442797A (en) * 1991-12-04 1995-08-15 Casavant; Thomas L. Latency tolerant risc-based multiple processor with event driven locality managers resulting from variable tagging
JP2620487B2 (ja) * 1992-05-22 1997-06-11 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータ・パッケージ
JP2642039B2 (ja) 1992-05-22 1997-08-20 インターナショナル・ビジネス・マシーンズ・コーポレイション アレイ・プロセッサ
EP0570729A3 (en) * 1992-05-22 1994-07-20 Ibm Apap i/o programmable router
US5561805A (en) * 1992-10-22 1996-10-01 International Business Machines Corporation System for selectively packing together datablocks and efficiently routing independent of network topology in a parallel computer system in accordance with a selected numbering system
US5355364A (en) * 1992-10-30 1994-10-11 International Business Machines Corporation Method of routing electronic messages
US5533198A (en) * 1992-11-30 1996-07-02 Cray Research, Inc. Direction order priority routing of packets between nodes in a networked system
US5450603A (en) * 1992-12-18 1995-09-12 Xerox Corporation SIMD architecture with transfer register or value source circuitry connected to bus
US5655131A (en) * 1992-12-18 1997-08-05 Xerox Corporation SIMD architecture for connection to host processor's bus
US5717947A (en) * 1993-03-31 1998-02-10 Motorola, Inc. Data processing system and method thereof
US5835492A (en) * 1993-09-08 1998-11-10 Hitachi, Ltd. Network for mutually connecting computers and communicating method using such network
US5987622A (en) * 1993-12-10 1999-11-16 Tm Patents, Lp Parallel computer system including parallel storage subsystem including facility for correction of data in the event of failure of a storage device in parallel storage subsystem
US5583990A (en) * 1993-12-10 1996-12-10 Cray Research, Inc. System for allocating messages between virtual channels to avoid deadlock and to optimize the amount of message traffic on each type of virtual channel
US5581705A (en) * 1993-12-13 1996-12-03 Cray Research, Inc. Messaging facility with hardware tail pointer and software implemented head pointer message queue for distributed memory massively parallel processing system
US5659686A (en) * 1994-09-22 1997-08-19 Unisys Corporation Method of routing a message to multiple data processing nodes along a tree-shaped path
US5701416A (en) * 1995-04-13 1997-12-23 Cray Research, Inc. Adaptive routing mechanism for torus interconnection network
US6055618A (en) * 1995-10-31 2000-04-25 Cray Research, Inc. Virtual maintenance network in multiprocessing system having a non-flow controlled virtual maintenance channel
US5913070A (en) * 1996-01-16 1999-06-15 Tm Patents, L.P. Inter-connector for use with a partitionable massively parallel processing system
US5841973A (en) * 1996-03-13 1998-11-24 Cray Research, Inc. Messaging in distributed memory multiprocessing system having shell circuitry for atomic control of message storage queue's tail pointer structure in local memory
US5835925A (en) * 1996-03-13 1998-11-10 Cray Research, Inc. Using external registers to extend memory reference capabilities of a microprocessor
US5864738A (en) * 1996-03-13 1999-01-26 Cray Research, Inc. Massively parallel processing system using two data paths: one connecting router circuit to the interconnect network and the other connecting router circuit to I/O controller
JPH09330304A (ja) * 1996-06-05 1997-12-22 Internatl Business Mach Corp <Ibm> プロセッサ間の通信スケジュールを決定する方法
WO1996035997A1 (fr) * 1996-05-22 1996-11-14 Yalestown Corporation N.V. Processeur parallele
US5970232A (en) * 1997-11-17 1999-10-19 Cray Research, Inc. Router table lookup mechanism
US6101181A (en) * 1997-11-17 2000-08-08 Cray Research Inc. Virtual channel assignment in large torus systems
US6230252B1 (en) 1997-11-17 2001-05-08 Silicon Graphics, Inc. Hybrid hypercube/torus architecture
US6216174B1 (en) 1998-09-29 2001-04-10 Silicon Graphics, Inc. System and method for fast barrier synchronization
US6674720B1 (en) 1999-09-29 2004-01-06 Silicon Graphics, Inc. Age-based network arbitration system and method
US6751698B1 (en) 1999-09-29 2004-06-15 Silicon Graphics, Inc. Multiprocessor node controller circuit and method
US6418526B1 (en) 1999-11-15 2002-07-09 Ncr Corporation Method and apparatus for synchronizing nodes in massively parallel systems
US6745240B1 (en) 1999-11-15 2004-06-01 Ncr Corporation Method and apparatus for configuring massively parallel systems
US6412002B1 (en) 1999-11-15 2002-06-25 Ncr Corporation Method and apparatus for selecting nodes in configuring massively parallel systems
US6519697B1 (en) 1999-11-15 2003-02-11 Ncr Corporation Method and apparatus for coordinating the configuration of massively parallel systems
US7415594B2 (en) * 2002-06-26 2008-08-19 Coherent Logix, Incorporated Processing system with interspersed stall propagating processors and communication elements
AU2003256699A1 (en) * 2002-07-23 2004-02-09 Gatechange Technologies, Inc. Self-configuring processing element
US7577816B2 (en) 2003-08-18 2009-08-18 Cray Inc. Remote translation mechanism for a multinode system
US7673118B2 (en) 2003-02-12 2010-03-02 Swarztrauber Paul N System and method for vector-parallel multiprocessor communication
US7366873B1 (en) 2003-08-18 2008-04-29 Cray, Inc. Indirectly addressed vector load-operate-store method and apparatus
US7379424B1 (en) 2003-08-18 2008-05-27 Cray Inc. Systems and methods for routing packets in multiprocessor computer systems
US8307194B1 (en) 2003-08-18 2012-11-06 Cray Inc. Relaxed memory consistency model
US7735088B1 (en) 2003-08-18 2010-06-08 Cray Inc. Scheduling synchronization of programs running as streams on multiple processors
US7421565B1 (en) 2003-08-18 2008-09-02 Cray Inc. Method and apparatus for indirectly addressed vector load-add -store across multi-processors
US7437521B1 (en) 2003-08-18 2008-10-14 Cray Inc. Multistream processing memory-and barrier-synchronization method and apparatus
US7743223B2 (en) 2003-08-18 2010-06-22 Cray Inc. Decoupling of write address from its associated write data in a store to a shared memory in a multiprocessor system
US7334110B1 (en) 2003-08-18 2008-02-19 Cray Inc. Decoupled scalar/vector computer architecture system and method
US7363393B2 (en) * 2003-12-30 2008-04-22 Intel Corporation Chipset feature detection and configuration by an I/O device
US7478769B1 (en) 2005-03-09 2009-01-20 Cray Inc. Method and apparatus for cooling electronic components
US7962717B2 (en) 2007-03-14 2011-06-14 Xmos Limited Message routing scheme
JP5540609B2 (ja) * 2009-09-01 2014-07-02 富士通株式会社 並列計算システムおよび通信制御プログラム
JP2012048573A (ja) * 2010-08-27 2012-03-08 Canon Inc 半導体集積回路、データ処理装置
GB2516288B (en) 2013-07-18 2015-04-08 Imagination Tech Ltd Image processing system
EP3079073A1 (en) * 2015-04-10 2016-10-12 Politechnika Lodzka A parallel machine having operational cells located at nodes of a face centered lattice
US10437743B1 (en) * 2016-04-01 2019-10-08 Altera Corporation Interface circuitry for parallel computing architecture circuits

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3287703A (en) * 1962-12-04 1966-11-22 Westinghouse Electric Corp Computer
US3979728A (en) * 1973-04-13 1976-09-07 International Computers Limited Array processors
US3970993A (en) * 1974-01-02 1976-07-20 Hughes Aircraft Company Cooperative-word linear array parallel processor
US4270170A (en) * 1978-05-03 1981-05-26 International Computers Limited Array processor
US4247892A (en) * 1978-10-12 1981-01-27 Lawrence Patrick N Arrays of machines such as computers
US4229790A (en) * 1978-10-16 1980-10-21 Denelcor, Inc. Concurrent task and instruction processor and method
JPS55115155A (en) * 1979-02-27 1980-09-04 Matsushita Electric Ind Co Ltd One chip multi-microcomputer
US4380046A (en) * 1979-05-21 1983-04-12 Nasa Massively parallel processor computer
US4314349A (en) * 1979-12-31 1982-02-02 Goodyear Aerospace Corporation Processing element for parallel array processors
DE3176869D1 (en) * 1980-12-15 1988-10-13 Texas Instruments Inc Multiple digital processor system
US4445171A (en) * 1981-04-01 1984-04-24 Teradata Corporation Data processing systems and methods
US4523273A (en) * 1982-12-23 1985-06-11 Purdue Research Foundation Extra stage cube

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
COMPUTERvol.14no.12(1981)P.65−76
IEEETRANSACTIONONCOMPUTERvol.C26no.5(1977)P.458−473
IEEETRANSACTIONONCOMPUTERvol.C30no.4(1981)P.264−273
日経エレクトロニクス1981年12月21日号P.88−108(P.104)

Also Published As

Publication number Publication date
CA1212480A (en) 1986-10-07
DE3486141D1 (de) 1993-06-09
EP0501524A2 (en) 1992-09-02
EP0495537A2 (en) 1992-07-22
EP0132926B1 (en) 1993-05-05
EP0132926A2 (en) 1985-02-13
US4814973A (en) 1989-03-21
EP0495537A3 (en) 1993-06-16
JPS6084661A (ja) 1985-05-14
EP0132926A3 (en) 1987-07-01
JPH06223045A (ja) 1994-08-12
DE3486141T2 (de) 1993-08-19
EP0501525A3 (en) 1993-06-23
EP0501524A3 (en) 1993-06-16
JP2538185B2 (ja) 1996-09-25
EP0501525A2 (en) 1992-09-02

Similar Documents

Publication Publication Date Title
JP2538185B2 (ja) 並列コンピュ―タシステム
US5152000A (en) Array communications arrangement for parallel processor
US4598400A (en) Method and apparatus for routing message packets
US4709327A (en) Parallel processor/memory circuit
US5123109A (en) Parallel processor including a processor array with plural data transfer arrangements including (1) a global router and (2) a proximate-neighbor transfer system
US5212773A (en) Wormhole communications arrangement for massively parallel processor
US5008815A (en) Parallel processor
US5146608A (en) Parallel processor array system controlled in response to composition status signal
US5151996A (en) Multi-dimensional message transfer router
CN111164617B (zh) 具有交叉连接优化的脉动神经网络引擎
Akl Parallel sorting algorithms
US6470441B1 (en) Methods and apparatus for manifold array processing
US5117420A (en) Method and apparatus for routing message packets
US5396641A (en) Reconfigurable memory processor
US5740468A (en) Data transferring buffer
US3858183A (en) Data processing system and method therefor
Agrawal et al. Architecture and design of the MARS hardware accelerator
JPH04330554A (ja) 並列プロセッサ
JPH0636060A (ja) スライド・ネットワークに使用するアレイ・プロセッサ
US12093214B2 (en) On-chip memory system for a reconfigurable parallel processor
EP0270198A1 (en) Parallel processor
US5913070A (en) Inter-connector for use with a partitionable massively parallel processing system
JPWO2004061722A1 (ja) 論理シミュレーション装置
Huttenhoff et al. Arithmetic unit of a computing element in a global, highly parallel computer
Rowan A programmable cellular array.