プロセッサアレイ及びその形成方法


【課題】プロセッサの並列アレイ内の処理エレメント間に高度の接続性を提供し、同時に、処理エレメントを相互接続するために必要な配線を最小限化し、かつPE間通信が遭遇する通信待ち時間を最小限化する。
【解決手段】マニフォルドアレイトポロジは、クラスタ52内に配列された処理エレメント、ノード、メモリ等を含む。クラスタは、処理エレメントを物理的に再配列することなく、組織の有利な変更を可能にするクラスタスイッチ配置構成986Aによって接続される。既存アレイ用の相互接続部の一般的な個数をかなり減少させることも達成される。容易なスケーラビリティの追加利益を伴い、高速、効率的、かつコストの点でも効果的な処理および通信が得られる。


【発明の詳細な説明】
【技術分野】
【0001】
本発明は、データ処理システム及び方法の改良に関し、更に詳細には、改良された並列データの処理アーキテクチャに関するものである。
【背景技術】
【0002】
多くの計算タスクは、データを並列演算するように開発できる。並列プロセッサの効率は、並列プロセッサのアーキテクチャ、コード化されたアルゴリズム、および、並列エレメント内データ配置に依存する。例えば、イメージ処理、パターン認識、および、コンピュータグラフィックスは、全て、2次元または3次元グリッド内に自然配列されたデータに作用する適用方法である。データは、オーディオ、ビデオ、SONAR信号、または、RADAR信号のような多種多様な信号を表す。離散コサイン変換(DCT)、離散逆コサイン変換(IDCT)、コンボリューション、および、この種データに関して一般に実施される演算等は異なるグリッドセグメント上で同時に実施可能であるので、一時に複数のプロセッサが特定タスクに作用できるようにすることによって、この種の演算を著しく加速できるマルチプロセッサーアレイシステムが開発された。並列処理は、ここに参考として組込み済みの米国特許第5,065,339号、第5,146,543号、第5,146,420号、第5,148,515号、第5,577,262号、第5,546,336号、及び、第5,542,026号を含む多数の特許の対象とされている。
【0003】
並列処理アーキテクチャに関する従来型の一方法は、最隣接メッシュ接続コンピュータであり、これについては、全て参考としてここに組込み済みであるR.Cypher、及び、J.L.C.Sanz、「SIMD Architectures and Algorithms for Image Processing and Computer Vision」(イメージ処理およびコンピュータビジョン用SIMDアーキテクチャ及びアルゴリズム)音響効果に関するIEEE議事録、音声および信号処理Vol.37、No.12、pp.2158−2174、1989年12月、及び、K.E.Batcher「Design of a Massively Parallel Processor」(大量並列プロセッサの設計)コンピュータに関するIEEE議事録Vol.C−29、No.9、pp.836−840、1980年9月、及び、L.Uhr「Multi−Computer Architectures for Artificial Intelligence」(人工知能用マルチコンピュータアーキテクチャ)New York、N.Y.、John Wiley & Sons,Ch.8、p.97、1987年において検討されている。
【0004】
図1Aの最隣接トーラス接続コンピュータにおいて、多重処理エレメント(PE)はトーラス接続経路MPを介して、それらの北、南、東、西隣接PEへ接続され、全てのPEは同期的単一命令多重データ(SIMD)様式において処理される。トーラス接続コンピュータは、循環(ラップアラウンド)接続コンピュータにメッシュ接続コンピュータを加えることによって得られるので、メッシュ接続コンピュータは、トーラス接続コンピュータの部分集合を見なすことができる。図1Bに示すように、各経路MPはT送信ワイヤ及びR受信ワイヤを含み、または、図1Cに示すように、各経路MPはB双方向ワイヤを含むことができる。単方向および双方向通信は両方とも本発明の対象であるが、1つの経路において制御信号を除くバスワイヤの全個数は、今後一般的に、Kワイヤと称することとし、ここに、双方向バス設計においてはK=Bであり、単方向バス設計においてはK=T+Rである。PEはその近傍PEの任意のPEにデータを伝送できるが、一時にただ1つに限られるものと仮定する。例えば、各PEは、1通信サイクルにおいてデータをその東隣に伝送可能である。更に、データ及び命令は1つの同報通信(ブロードキャスト)発送期間内にコントローラから全てのPEへ同時に発送可能であるような同報通信(ブロードキャスト)メカニズムが存在するものと仮定する。
【0005】
通常、ビット直列PE間通信は配線の複雑性を最小限化するために用いられるが、それでもなお、トーラス接続アレイの配線の複雑性は実現上の問題を提起する。図1Aの従来型トーラス接続アレイは、PEの4×4アレイ10に接続される16個の処理エレメントを含む。各処理エレメントPEi,jは、それぞれ、その行番号iと列番号jがラベル付けされる。各PEは、2点間接続におけるそれぞれ北(N)、南(S)、東(E)、西(W)最隣PEに通信する。例えば、図1Aに示すPE0,0とPE3,0の間の接続は、PE0,0のNインタフェースとPE3
,0のSインタフェースの間の循環部接続であり、アレイをトーラス構成に形成する循環インタフェースの1つを表す。この種の構成において、各行は1組のN相互接続部を含み、N行にはN2の水平接続部がある。同様に、それぞれN垂直相互接続部を有するN列にはN2の垂直相互接続部がある。例えば、図1Aの場合、N=4である。従って、例えば、循環接続部を含むN×Nトーラス接続コンピュータの集積回路具体化における金属化ラインのようなワイヤの全個数は2kN2である。ここに、kは各相互接続におけるワイヤの個数である。ビット直列相互接続において数kは1に等しくてもよい。例えば、図1Aに示すように、4×4アレイ10においてk=1の場合、2kN2=32である。
【0006】
Nが比較的小さい幾つかの用途において、PEアレイ全体が1つの単一集積回路に組み込まれることが望ましい。ただし本発明は、各PEが、例えば、個別のマイクロプロセッサチップであるような実施形態を排除するものではない。トーラス接続されたコンピュータ内のワイヤの全個数は重要な意味をもつので、相互接続部が多量の貴重な集積回路の「不動産」又はチップの有効領域を消費することもあり得る。その上、PE相互接続経路は非常に頻繁に相互に交差し、ICレイアウトプロセスを複雑化し、おそらくは、漏話を介して通信線にノイズを導入する。更に、アレイの北と南および東と西端部におけるPEを接続する循環リンクの長さは、アレイサイズの増大につれて増大する。この長さが増大すると各通信ラインのキャパシタンスを増大させ、それによって、ラインの最大ビットレートを低下させ、当該ラインに更にノイズを導入することになる。
【0007】
トーラスアレイの別の欠点は、転置操作に関連して起きる。処理エレメントとその転置は、通信経路における少なくとも1つの介在エレメントによって分離されるので、転置を用いる演算に待ち時間が導入される。例えば、PE2,1がその転置PE1,2からデータを必要とする場合には、当該データは介在するPE1,1又はP2,2を経て移動しなければならない。PE1,1及びPE2,2が占有されていない場合であっても、これは演算に遅延を自然に導入する。ただし、PEがマイクロプロセッサエレメントとして実現される一般的な場合には、PE1,1とPE2,2が他の演算を実施し、データ又はコマンドをPE1,2からPE2,1へ転送するために、これらは、整然とした様式において、これらの演算またはコマンドを無視しなければならないという確率が極めて高い。従って、PE1,2からPE1,1にデータを転送し始めるためであってさえも幾つかの演算が実施され、転置したデータを転送するために演算PE1,1が強制的に取り消され、これが遅延となる。この種の遅延は、全ての介在PEと共に雪だるま式に増大し、最遠方の転置対に関してかなりの待ち時間が導入される。例えば、図1AのFE3,1/PE1,3転置対は、最小限3つの介在PEを持ち、4つの通信ステップに相当する待ち時間を必要とし、なおその上に、一般的な場合には、PE3,1とPE1,3の間でデータを転送するために、これら全てのPEにおいて取り消されるべき全てのタスクの待ち時間が生じる。
【0008】
トーラス接続アレイのこの種の限界を認識することによるアレイに関する新規技法が、参考としてそれらの全体がここに組込み済みの「Massively Parallel Diagonal Fold Array Processor」、G.G.Pechanek等、アプリケーション特定アレイプロセッサに関する1993年国際会議、pp.140−143、10月25−27、1993年、ベニス、イタリア、及び、「Multiple Fold Clustered Processor Torus Array」、G.G.Pechanek等、VLSI設計に関する第5NASAシンポジウム議事録、pp.8.4.1−11、11月4−5、1993年、ニューメキシコ大学、Albuquerque、ニューメキシコに開示されている。これらのトーラスアレイ組織の演算技法は、フォールドオーバエッジとして従来型の最隣接トーラスの対角PEを用いるPEアレイのフォールディングである。図2Aのアレイ20に示すように、これらの技法は、循環接続部の個数および長さが減少し、それらの転置PEに密接に近接してPEが位置するようにPE間配線を実質的に減少させるために利用可能である。このプロセッサアレイアーキテクチャは、例えば、それらの全体が参考としてここに組み込まれている米国特許第5,577,262号、第5,612,908号、EP0,726,532、EP 0,726,529に開示されている。この種のアレイは、例えば、単フォールド対角フォールドメシュのようなPE組合わせの不規則性により、従来型トーラスアーキテクチャよりも実質的に優れた利益を提供すると同時に、幾らかのPEは2つのグループとしてまとめられ、その他のPEは単独のままである。3フォールド対角フォールドメシュにおいては、4個のPEおよび8個のPEで構成されるクラスタがある。アレイ全体は三角形であるので、対角フォールド型アレイは、効率的で安価な集積回路の実現にとって本質的な障害となる。なおその上に、対角フォールドメシュ及び他の従来型メッシュアーキテクチャにおいては、相互接続トポロジーは本質的にPE定義の一部分である。この技法は、トポロジにおけるPEの位置を固定し、結果的に、PEのトポロジおよび実現される固定したコンフィギュレーションへのそれらの接続性を限定する。
【0009】
多くの並列データ処理システムは超立方体相互接続トポロジを用いる。超立方体コンピュータは、高度の接続性を供給する方式で相互接続されるP=2dPEを含む。接続部は幾何学的または算術的にモデル化できる。幾何学モデルにおいて、PEはd次元超立方体の角に相当し、リンクは超立方体の縁に相当する。P=2dPEの超立方体は、各々が更に小さい超立方体の対応する角の間の接続部をもつ、2d-1PEの2つの超立方体とみなすことができる。
【0010】
算術モデルにおいて、各PEは、0からd−1までの一意的2進インデックスを割り当てられる。それらのインデックスの2進表現が厳密にただ1ビット位置だけ異なりさえすれば、任意の2つのPEが接続される。幾何学および算術モデルは、d次元の各々を一意的ビット位置と提携させることにより相互に関連付けることができる。従って、1ビット位置だけ異なるインデックスを持つプロパティは2つの(d−1)次元超立方体の対応する角を占有することに等価である。例えば、1つのPEには、トポロジ内のその位置を示すラベルを割り当てることができる。このラベル{D0,1,...Dr-1}は2進表現であり、ここに、各数字はr−D超立方体上の通信に利用可能な1つのr次元接続経路を示す。殆どの場合、超立方体における各ノードは、その直接接続されたノードとDだけ異なる1つの数字である。例えば、超立方体における最長経路は、PE{D0,1,...Dr-1}とその補数{¬D0,¬D1,...¬Dr-1}の間、例えば、PE101101とPE010010の間の経路である。超立方体トポロジについては、ここに参考として組込み済みのRobertCypher、及び、Jorge L.C.Sanz「The SIMD Model of Parallel Computation」(並列コンピュータのSIMDモデル)1994年Springer−Verlag、New York、pp.6 1−68、及び、F.Thomas Leighton、「Introduction To Parallel Algorithmsand Architectures:Arrays,Trees,Hypercubes,」(並列アルゴリズム及びアーキテクチャ概論:アレイ、トリー、超立方体)1992年、Morgan Kaufman Publishers、Inc.、San Mateo、CA、pp.389−404に論じられている。超立方体トポロジの1つの欠点は、各プロセッサへの接続部の個数がネットワークのサイズと共に対数的に増大するということである。その上、超立方体内のPE間通信には、特に、PEが相互に補数である場合、実質的な待ち時間が課される。
【0011】
多次元超立方体は、トーラス、対角フォールドトーラス、又は、他のPE配列構成にマップ可能である。この種のマッピングについて、以下に簡単に検討することとする。この検討に関係する図面およびこの出願に含まれる他の全ての図面においては、別途注記しない限り、各PE相互接続を単線として示すが、線(ライン)は双方向トライステートリンク又は2つの単方向リンクである相互接続リンクを表す。双方向トライステートリンクは、当該リンク上におけるデータ衝突を防止する制御スキーム下における、1つのリンク上での多重点における信号源(ソース)の生成をサポートする。単方向リンクは、あらゆるインターフェイス信号用として、二点間単一源および単一受信機対を用いる。更に、ビット直列および多重ビット並列具体化例についても検討する。
【0012】
超立方体は、トーラス上にマッピング可能で、2次元トーラスはプロセッサエレメント(PE)で構成され、図1A及び1Dに示すように、各PEは、頂部PEラベルによって示されるように、トーラスノード(行と列)、及び、各PE内の底部ラベルによって示される超立方体PE番号と連携する。超立方体PE番号またはノードアドレスは、各数字が接続性次元を表すr次元(rD)超立方体に関するr数字表現として与えられる。超立方体内の各PEは、それらのノードアドレスがそれ自体から厳密に1つの数字だけ変化するこれらのPEのみに接続される。この相互接続スキームは、図1A及び1Dに示すように、4D超立方体が4×4トーラスにマッピングされることを可能にする。図1Aは、ただ1つの単一2進数字のみが順次数の間で変化するグレイコード符号化PEG(i),G(j)を用いてPEi,jノードをコード化する。例えば、10進数列0、1、2、3は、2進数列では00、01、10、11と表されるが、グレイコード数列は00、01、10、11となるはずである。図1Dは、最隣接トーラスへの代替超立方体マッピングを示す。
【0013】
超立方体マシンの最も初期の具体化例の1つは、Caltech,C.Seitz「The Cosmic Cube」ACM通信、Vol.28、No.1、pp.22−33、1985年記載の6D超立方体であるコスミックキューブであった。コスミックキューブは、複数命令列複数データ(MIMD)モードで実行し、超立方体接続プロセッサ間で通信するためにメッセージ受け渡しを用いるインテル8086プロセッサによって実現された。他の超立方体具体化例NCUBEは、特注プロセッサが超立方体のノードを形式するチップを用いる1つの大型コンフィギュレーションとしての10−D超立方体から成る。NCUBEはMIMD型マシンであるが、単一プログラム複数データ(SPMD)モード作動もサポートする。この場合、各ノードプロセッサは同一プログラムのコピーを持つので、異なる条件付きコードストリームを独立的に処理することができる。Thinking Machines Corporationによって作成されたコネクションマシン(CM)は別の超立方体具体化例であった。初期のCM−1マシンは、ビット直列処理セルの4×4グリッドを含む各ノードを有する12D超立方体であった。
【0014】
これらのような従来型の超立方体具体化例の1つの欠点は、各処理エレメントが、各超立方体次元に関する少なくとも1つの双方向性データポートを所有しなければならないことである。
【0015】
以下に、更に詳細に検討するように、本発明の1つの態様は、我々のPEがネットワークトポロジから結合解除され、ただ1つの入力ポートと1つの出力ポートだけを必要とすることである。
【0016】
更に、各追加された超立方体次元は、各PEにおけるポートの個数を増大するので、データポート専用PEの占める割合が過度に大きくなって各PEの設計が早急に非実際的となる。更にその上、「直径」としての待ち時間が更に一層大きくなることによって補足PE間通信の負担が大きくなる。即ち、超立方体の補足PE間の通信ステップの個数が拡大する。換言すれば、ノードアドレスとその補集合の間の接続を提供することにより、超立方体PEノード間の最長経路は、難しく、かつ高価になり、スケーラブルでなくなるはずである。
【0017】
従って、プロセッサの並列アレイ内の処理エレメント間に高度の接続性を提供し、同時に、処理エレメントを相互接続するために必要な配線を最小限化し、かつPE間通信が遭遇する通信待ち時間を最小限化することが非常に望ましい。多重プロセッサアレイのアーキテクチャ及びプロセッサ相互接続の更なる改良の必要性が存在し、以下に、一層十分に検討するように、本発明は、これら及び他のこの種の必要性を扱う。
【発明の概要】
【0018】
本発明は、処理エレメント間の接続性を改良する処理エレメントのアレイに向けられ、同時に、従来型トーラス又は超立方体処理エレメントアレイの配線必要条件と比較して、アレイの相互接続の配線必要条件を実質的に軽減することに向けられる。好ましい実施形態において、1つのアレイは、転置操作の待ち時間およびPEノードとその超立方体補足(hypercube complement)ノードの間の通信待ち時間の実質的な減少を達成する。その上、このアレイは、循環配線の長さをアレイ全体の次元から切り離し、それによって、最長相互接続配線の長さを減少させる。同様に、通信PE間で衝突を引き起こすことのないアレイ通信パターンであるためには、特定のトポロジがそのPEノードから必要とする近傍接続部の個数と関係なく、1つのPE当たり、ただ1つの送信ポートと1つの受信ポートだけが必要である。そのアレイの好ましい集積回路具体化例は、矩形または方形アウトラインを呈示するように組合わされた類似の処理エレメントクラスタの組合わせを含む。処理エレメントの類似性、処理エレメントクラスタの類似性、および、アレイ全体のアウトラインの規則性は、本アレイを特にコスト的にも効率的な集積回路の製造に適している。
【0019】
本発明に従ってアレイを形成するには、先ず、処理エレメントを、単一命令多重データ(SIMD)演算の通信必要条件を利用するクラスタに組み合わせる。次に、そのクラスタ内で処理エレメントを完全に接続する。次に、処理エレメントをグループ化し、1つのクラスタのエレメントがクラスタ内において、および、ただ2つの他のクラスタの構成メンバと通信するようにしてもよい。更に、各クラスタの構成処理エレメントは、ただ2つの相互に排他的な方向のみにおいて、他のクラスタの各々の処理エレメントと通信する。定義により、単方向能力を有するSIMDトーラスにおいて、北/南方向は東/西と相互に排他的である。処理エレメントクラスタは、名称が示唆するように、相互に物理的に密接に近接して形成されることが好ましいプロセッサのグループである。集積回路の具体化例において、例えば、クラスタの処理エレメントは相互に出来る限り近接して配置されることが好ましく、アレイ内の他の任意の処理エレメントよりも相互に一層近接していることが好ましい。例えば、処理エレメント従来型4×4トーラスアレイに対応するアレイは、それぞれ4つのエレメントで構成される4つのクラスタを含み、各クラスタは北および東方にのみ相互に通信し、南および西方に他のクラスタと通信し、または、南および東方に他のクラスタと通信し、北および西方に他のクラスタと通信する。このようにPEをクラスタ化することにより、多重化を介して、PEクラスタ間の通信経路は共用可能であり、従って、アレイに必要な相互接続配線を実質的に減少させることができる。
【0020】
好ましい実施の形態において、クラスタを構成するPEは、処理エレメント、それらの転置、及び、超立方体補足PEが同一クラスタ内に所在し、クラスタ間通信路経を介して相互に通信し、それによって、従来型トーラスアレイ上で実行される転置操作および従来型超立方体アレイ上で実施される超立方体補足PE間通信と連携した待ち時間を除去するように選定される。その上、従来型循環経路は任意のPEからPEへの経路と同様に扱われるので、最長通信路経路は、アレイ全体の大きさに関係なく、クラスタ間スペーシングと同じ程度に短い。
【0021】
各PEは、仮想PEアドレス記憶ユニット及びコンフィギュレーションコントローラを含む。仮想PE数およびコンフィギュレーション制御情報は、クラスタスイッチの設定を決定し、それによってPEアレイのトポロジを再構成するように組合わされる。この再構成は、例えば、コントローラからディスパッチされた命令に応答してなされても良い。アレイ内PEはクラスタ化され、PEとその転置がクラスタ内で組合わされ、PEとその超立方体補集合が同一クラスタ内に含まれる。その上、各クラスタ内で完全にPE間を接続するためのクラスタスイッチと組合わされた動的再構成は、多種多様なトポロジでアレイを再構成する能力を提供する。
【0022】
他の態様において、クラスタ内PEは、当該クラスタ内でPEを完全に接続し、当該クラスタ内における各仮想PEに2つの外部直交クラスタへの同一アクセスを可能にするクラスタスイッチに対して同一インタフェースを有利に所有することができる。さて、本発明の教示に従い、適所にクラスタスイッチを備えた2つのネットワークが実際に所在する。1つはクラスタ内PEを相互に完全に接続するネットワーク、及び、もう1つはPEを他のクラスタPEへ接続するネットワークであり、これによって、トーラスと超立方体の接続性に必要な接続経路を提供する。クラスタスイッチに対する内部接続経路は、転置と超補足体の接続性を提供する。異なる仮想PE配列構成に関して、転置はクラスタを横断して実施される。この種の4PEクラスタスイッチ、及び、他の4PEクラスタへのその相互接続に関して、任意のクラスタに対して生成されるただ4つの出力バスが有っても差し支えない。これら4つのバスの各々は、任意のクラスタにおいて、2つの直交クラスタ接続点を持つ。本発明に係るマニフォルドアレイ処理において、強化された接続性超立方体が提供可能であり、この超立方体内には4個のノードの各クラスタはわずか4つの出力バスを持ち、各バスのファンアウトは3であり、1つはスイッチに対し、1つは直交クラスタの各々に対する。1つの仮想ノード当たり3つの受信される信号がある。1つはスイッチにとって内部信号であり、1つは直交クラスタの各々からの信号である。
【0023】
本発明のこれら及び他の特徴、態様、及び、利点は、添付図面と共に次の詳細な記述から、当該技術分野における当業者にとって明白となるであろう。
【図面の簡単な説明】
【0024】
【図1A】従来の4×4最隣接接続型トーラス処理エレメント(PE)アレイのブロック図である。
【図1B】図1Aの従来のトーラス接続経路が、どのようにT送信およびR受信結線を含むかを例示する図である。
【図1C】図1Aの従来のトーラス接続経路が、どのようにBの2双方向性結線を含むかを例示する図である。
【図1D】第2の従来の4×4最隣接接続型トーラスPEアレイの構成図である。
【図2A】従来の折り畳まれたPEアレイの構成図である。
【図2B】従来の折り畳まれたPEアレイの構成図である。
【図3A】本発明に係るPEアレイ内で適宜使用される処理エレメントの構成図である。
【図3B】本発明に係るPEアレイ内で適宜使用される処理エレメントの構成図である。
【図3C】本発明に係るPEアレイ内で適宜使用される処理エレメントの構成図である。
【図3D】本発明に係るクラスタスイッチ制御の更なる態様を示す図である。
【図4】マニフォルドアレイ内PEのクラスタリングおよびPEのクラスタ間通信を示す構成図である。
【図5】クラスタスイッチの更なる詳細を示す、図4の個別PEクラスタの構成図である。
【図6】改良されたクラスタスイッチを備えた、本発明に係る改良されたPEクラスタの構成図である。
【図7】PEクラスタ間の相互接続経路をより詳細に示すブロック図である。
【図8A】バッファを含まないクラスタスイッチの具体例を示すブロック図である。
【図8B】バッファ含まないクラスタスイッチを用いる、PEクラスタ間の相互接続経路をより詳細に示すブロック図である。
【図8C】バッファ含まないクラスタスイッチを用いる、PEクラスタ間の相互接続経路をより詳細に示すブロック図である。
【図9A】大型アレイを形成するもう他の直交2×2クラスタへの相互接続経路を示す2×2クラスタのブロック図である。
【図9B】2×2マニフォルドアレイのブロック図である。
【図10】4×4トーラス用の東側の通信経路を示す構成図である。
【図11】4×4トーラス用の西側の通信経路を示す構成図である。
【図12】4×4トーラス用の北側の通信経路を示す構成図である。
【図13】4×4トーラス用の南側の通信経路を示す構成図である。
【図14】4×4マニフォルドアレイの転置通信経路を示すブロック図である。
【図15】4×4マニフォルドアレイ上の4個の独立した1×4線形リングを示す構成図である。
【図16】アレイコンフィギュレーションにおけるz軸送信演算用の通信経路を示すブロック図である。
【図17】4×4マニフォルドアレイの超立方体ノードラベルを例示するブロック図である。
【図18】4×4マニフォルドアレイの超立方体補集合通信を示す構成図である。
【図19】5D超立方体を示す構成図である。
【図20】マニフォルドアレイにマッピングされた5D超立方体を例示するブロック図である。
【図21A】トーラスに埋め込まれた4D超立方体のノードエレメントを示す表を示す図である。
【図21B】埋め込まれた超立方体ノードの配置を示す改良されたマニフォルドアレイの表を示す図である。
【図21C】頂部PEラベル(PE-x,y)付き8×8の2Dトーラス、中央PEラベル(x,y,z)付き3D立方体、および、底部PEラベルGxyz=d543210ラベル付き6D超立方体の4×4×4の表現図である。
【図22】列の1D下方回転後における4×4×4表現図である。
【図23】図22のノードの4×4×4 z平面表現図である。
【図24】列の1D下方回転後における4×4×4 z平面表現図である。
【図25】レイアウト接続性に関するz平面表現の再順序付けを示す図である。
【図26】z平面の2×2サブクラスタへの分離を示す図である。
【図27A】2×2サブクラスタの4個の4×4マニフォルドアレイへの相互接続を示す図である。
【図27B】4×4×4 PEノード入力(受信)接続性の一例を示す図である。
【図28A】クラスタ構成当たり1つの単一コントローラおよび典型的インタフェースを示す4×4マニフォルドアレイの構成図である。
【図28B】その外部インターフェイス内へ32個のデータアイテムを受け取る図28Aの4×4多重コントローラマニフォルドアレイを示す図である。
【図29】一例における32個のデータアイテムの4個のメモリコントローラへのローディングを示す図28Aの4×4多重コントローラマニフォルドアレイを示す図である。
【図30】各クラスタにおける個別PEへの32個のデータアイテムのロード配分を例示する、図28Aの4×4多重コントローラマニフォルドアレイを示す図である。
【図31】図28A〜図30に関する完全シャッフル例の各ステップの後における32個の典型的データをリストする表を示す図である。
【図32】スワップ北側通信演算を実行するためにPE間でデータが通る経路および完全シャッフル例の通信演算完了時におけるPEレジスタにおける結果を示す4×4マニフォルドアレイを示す図である。
【図33】スワップ南側通信演算を実行するためにPEの間でデータが通る経路および完全シャッフル例の通信演算完了時におけるPEレジスタ内の結果を示す4×4マニフォルドアレイを示す図である。
【発明を実施するための形態】
【0025】
一実施形態において、本発明に係るマニフォルドアレイプロセッサは、一方の1つのクラスタのエレメントが、他方のただ2つのクラスタの部材と直接通信するようにクラスタまたはグループとしてのPEを組み合わせ、各クラスタの組成処理エレメントは、ただ2つの相互に排他的な方向において、もう一方のクラスタの各々の処理エレメントと直接通信する。このようにPEをクラスタ化することにより、PEクラスタ間の通信経路は共用可能であり、従って、アレイにとって必要な相互接続配線を実質的に減少させることができる。その上、各PEは単一の送信ポートと単一の受信ポート、又は、2方向性の場合、順次的、又は、タイムスライス通信実施の場合には、単一の送受信ポートを有する。その結果、個別PEはアレイアーキテクチャから切り離される。即ち、各PEがN通信ポートを有する従来型のN次元ハイパキューブ接続アレイとは異なる。単一の送信ポートおよび単一の受信ポートを用いる具体化例においては、アレイ内の全てのPEは送信と受信を同時に実施する。従来の6Dハイパキューブの場合において、これは、各PEに対して、6個の送信ポートと6個の受信ポートからなる、合計12個のデータポートを必要とする。本発明の場合には、ハイパキューブ(超立方体)の大きさに関係なく、ただ1つの送信ポートと1つの受信ポートからなる、合計2つのがデータポートだけが必要である。上記のとおり、2方向、順次的、または、タイムスライスデータ通信が用いられる場合には、送受信データポートを1つの送受信データポートに組合わすことができる。各PEは仮想PE記憶ユニット及びコンフィギュレーション制御ユニットを含む。仮想PE番号およびコンフィギュレーション制御情報は、通信の方向を制御し、PEアレイのトポロジを再構成するために、クラスタスイッチの設定を決定するように組合わされる。この再構成は、例えば、コントローラから発送された命令に応答してなされても差し支えない。1つのPEとその転置(トランスポーズ)が1つのクラスタ内で組合わされるようにアレイ内のPEがクラスタ化され、PEおよびそのハイパーキューブ補集合は同じクラスタに含まれる。
【0026】
本実施形態において、クラスタを含むPEは、処理エレメントとそれらの転置が同一クラスタ内に配置され、クラスタ内通信経を介して相互に交信するように選択される。説明のために、処理エレメントは従来のトーラスアレイであるとみなされ、例えば、処理エレメントPE0,0は、従来型のトーラスアレイの「北西」コーナ、即ち、行0と列0に位置する処理エレメントとみなされる。従って、新規クラスタアレイのレイアウトは、従来型のアレイプロセッサのレイアウトとは実質的に異なるが、従来のトーラス及び新規なクラスタアレイの対応する処理エレメントに同一データが供給される。例えば、新規なクラスタアレイの0,0エレメントは、従来型のトーラス接続アレイの0,0エレメントを作動させるのと同じデータを受け取るはずである。その上、本記述で用いる方向はトーラス接続アレイの方向を意味するものとする。例えば、エレメント間の通信が北から南へ実施される場合に、これらの方向は、従来型のトーラス接続アレイ内通信の方向を意味する。
【0027】
PEは、単一命令ストリーム・単一データストリーム(SISD)型の単一マイクロプロセッサチップであっても差し支えない。包含されるコンセプトを示すために、以下の記述に限定されることなく、基本的なPEについて記述することとする。図3Aは、本発明の新規PEアレイ用の各PEとして用いられる適当な実施形態を示すPE40の基本構造を示す。説明を簡単にするために、インタフェース論理回路およびバッファは図示されていない。命令バス31は、SIMDコントローラ29からディスパッチされた命令を受け取るように接続され、データバス32は、メモリ33又はPE40にとって別の外部のデータソースからのデータを受け取るように接続される。レジスタファイル記憶媒体34は、実行ユニット36にソースオペランドデータを供給する。命令デコーダ/コントローラ38は、命令バス31を介して命令を受け取るように、かつバス21を経てレジスタファイル34内のレジスタに制御信号を供給するように接続される。ファイル34のレジスタは、経路22を経てそれらの内容をオペランドとして実行ユニット36へ供給する。実行ユニット36は、命令デコーダ/コントローラ38から制御信号23を受け取り、レジスタファイル34に経路24を経て結果を供給する。更に、命令デコーダ/コントローラ38は、Switch Enable(スイッチイネーブル)とラベルを付した出力ライン39にクラスタスイッチイネーブル信号を供給する。クラスタスイッチの機能については、図5及び図6の検討に関連して以下に更に詳細に検討することとする。データ又はコマンドのPE間通信は、Receive(受信)とラベル付けされた入力37において受け取られ、Send(送信)とラベル付けされた送信出力35から送信される。
【0028】
仮想PE記憶ユニット42は、それぞれのストア43及び読み出し45ラインを介して命令デコーダ/コントローラ38へ接続される。仮想PE番号は、新規仮想PE番号を記憶ユニット42へ送るデコーダ/コントローラ38で受け取られた命令を介して、コントローラ29によってプログラム可能である。仮想PE番号は、接続ネットワークによって課される限界内において、コントローラ29によってトポロジ内の各PEの位置を動的に制御するために使用可能である。
【0029】
コンフィギュレーションコントローラ44は、それぞれのストア47及び読み出し49ラインを介して命令デコーダ/コントローラ38へ接続される。コンフィギュレーションコントローラ44は、例えば現行コンフィギュレーションのようなコンフィギュレーション情報を供給し、制御情報をクラスタスイッチへ供給する。これらクラスタスイッチは、アレイ内の他のPEへのPEの接続を制御する。デコーダ/コントローラ38は、コンフィギュレーションコントローラ44からの現行コンフィギュレーションと、仮想PE記憶ユニット42からの仮想PEアドレスと、コントローラ29からの命令によって運ばれた、例えば「転置PE間通信」のような通信操作情報を組み合わせ、この情報をクラスタスイッチに伝達する。デコーダ/コントローラ38は、図6に関連してさらに詳細に検討するように、この情報を使用してクラスタスイッチに関する適切な設定を決定し、スイッチイネーブルインタフェース39を介してこの情報を伝送するスイッチ制御論理回路を含む。スイッチ制御論理回路、クラスタスイッチ命令デコーダ/コントローラ、および、コンフィギュレーションコントローラは、PEの境界外において、クラスタスイッチに組み込み可能である。新規PEノードはトポロジ接続から独立して定義されるので、これらの機能は分離可能である。本実施の形態において、全体の論理と全体の機能性は、制御機能が独立している場合であっても、制御機能を分離しないことによって改良される。
【0030】
図3Dにおいて、クラスタスイッチ制御の更なる詳細を示すために、例えば、適当なクラスタスイッチ60を示す。このクラスタスイッチ60は、図示されるように、A、B、C、Dの4グループに分割され、各グループは4入力マルチプレクサと3入力マルチプレクサから成る。これらのグループの各々は、PEクラスタ内の特定のPEと連携し、この連携は点線矢印によって示される。例えば、PE0,0は「A」グループのマルチプレクサa1およびa2と連携する。これらグループ内のマルチプレクサは、それらに関連するPEによって制御される。図に示すように、これらのマルチプレクサを制御することにより、正常なSIMD動作モードが保存される。
【0031】
SIMDモードの動作時において、全てのPEはコントローラ発送命令を受け取り、同期して作動する。PEのIDに依存する演算を一意的に指定する命令を含む全ての命令が、全てのPEにディスパッチされる。これらの命令は、全てのPEによって受け取られ、復号されてから、コントローラ29から発送された命令によるプログラム制御の下で選択可能なPEイネーブル/ディスエイブルフラグを用いて、命令内のオペコード、その命令コードの拡張フィールドオペコードに依存するPEの全て又はPEの部分集合によって実行される。オペコード及びその拡張フィールドは、受け取った命令を実行する1つのセットを含むPEの集合を指定する。PEイネーブル/ディスイネーブルフラグは、PEが応答し得る活動レベルを決定する。例えば、以下に、適宜使用できるフラグを示す。
・ レベル0:完全に不能化されたPE。
・ 受け取った全ての命令がNOPとして扱われる。
・ レベル1:部分的にイネーブルにされたPE:PEが制御情報を受け取る:
・ 例えば仮想PEのID、飽和/未飽和モード、等のような制御情報のローディングを可能にする。
・ 例えば読取り状態レジスタのように制御情報の記憶を可能にする。
・ 全ての演算および通信命令がNOPとして扱われる。
・ レベル2:部分的にイネーブルにされたPE;PEが制御情報を受け取る:
・ 例えば、仮想PEのID、飽和/未飽和モード、等のような制御情報のローディングを可能にする。
・ 例えば読取り状態レジスタのように制御情報の記憶を可能にする。
・ 全ての演算命令はNOPとして扱われる。
・ 全ての通信命令が実行される。
・ レベル3:完全にイネーブルにされたPE:
・ 受取られた全ての命令が実行される。
【0032】
所与サイズのマニフォルドアレイに関しては、例えば4D、5D、または、6Dハイパキューブの選定により、許容されたコンフィギュレーションが前以て決定されていても差し支えない。この種の一実施形態において、可能なノード識別は「ハードワイヤード(hardwired)」である。即ち、集積回路具体化例の一部として不揮発に固定される。次に、所与のコンフィギュレーションに関する仮想PE番号は、コントローラ29からアレイ内の全てのPE40に送られる単一命令によって示唆される。この命令は、適当な仮想PE番号をそれぞれのPEに割り当てるために、各PE内のデコーダ/コントローラ38によって解釈されることが好ましい。各デコーダ/コントローラ38は、PEおよびコンフィギュレーションに関する仮想PE番号を含む各PE記憶エリア42内のそれぞれのロケーションに関して、効果的にテーブルルックアップ動作を実施できる。
【0033】
その中で類似エレメントが、図3AのPE40の指定番号を共有する図3BのPE40’は、命令デコーダ/コントローラ38、および、レジスタファイル34に接続されたインタフェース制御ユニット50を含む。この制御ユニット50は、信号ライン25を経てデコーダ/コントローラ38から獲得された制御信号に基づいて、例えば並直列変換、データ暗号化、および、データフォーマット変換のようなデータフォーマット変換を提供する。PE40”を示す図3Cの別の実施形態において、送信経路37は1つ又は複数の実行ユニット36によって生成され、受信経路35は、直接またはインタフェース制御ユニット50を介してレジスタファイル34に接続される。インタフェース制御ユニット50は、1つ又は複数のライン25を経て命令デコーダ/コントローラ38から受信した制御信号に基づいてデータをフォーマット化する。このインタフェース制御ユニットによって実施されるデータフォーマット化は、例えば、並列から直列変換、直列から並列への変換、データ暗号化、および、データフォーマット変換を含んでもよい。
【0034】
更に、代替PE40”は、各PE40”へのローカルメモリブロック48および52の追加を含む。図3A及び3Bからの、ロード経路バス26及びストア経路バス26’の両方を含むデータバス32の詳細を図3Cに示す。これらのバスは両方とも、3状態(トライステート)技術を用いるか、多重一方向のバスで実現されても良く、また例えば16ビット、32ビット、64ビットのように、種々のバス幅を持つことができる。例えばアドレスおよびバスプロトコル信号のような様々な制御信号を適宜用いることができる。更に、バス26及び26’の各々は、1つがコントローラ29aのDMAユニットによって直接的に制御される2つのバスとして実現可能である。コントローラロードバスは、例えば、内部コントローラレジスタの内容をPEへロードするために使用可能であり、読取りバスは、例えば状態ビットのような内部PEレジスタの読み取り用に使用できる。コントローラ29は、コントローラ29をメモリへ接続するインタフェースライン61を経てこれらのバスへのアクセスを持つ。DMAロードバスは、メモリ33からPEローカルメモリ48へメモリのブロックのローディングに用いられ、DMA読取りバスは、ローカルメモリ48からデータのブロックをメモリ33に記憶するために用いられる。DMA機能はコントローラ29の一部分であることが好ましい。メモリスイッチ46は、バス51と53およびバス55と57を介してPEローカルメモリ48をPEレジスタファイル34へ接続するために用いられる。同様に、メモリスイッチ46は、バス26と26’及びバス55と57を介してメモリ33をPEレジスタファイル34へ接続する。メモリスイッチ制御信号は制御インタフェース59を経て、ロードおよびストアユニット28から受け取られる。ロードおよびストアユニット28は、インタフェース27を介して命令デコーダ/コントローラ38からロードおよびストア命令情報を受け取る。この受信した命令情報に基づき、ロードおよびストアユニット28は、メモリスイッチ46のためのスイッチ制御を生成する。コントローラ29からPEのアレイに発送される全ての命令は、アレイの各PE内で同じ仕方で解釈される。この発送されたPE命令は個別PEまたはPEのグループへ結合されない。
【0035】
PEの4×4アレイを図4に示す。それぞれ4つのPEを含む4つのクラスタ52、54、56、58は、図4のアレイに組合わされる。クラスタスイッチ86及び通信経路88は、1997年6月30日付けで提出され、参考としてその全体がここに組込み済みである米国係属出願08/885,310にさらに詳細に説明された仕方においてクラスタを接続する。ただし、この図において、各処理エレメントは、2つの入力と2つの出力ポートを有する好ましい実施形態として示されているが、クラスタスイッチ内での多重化にための他の層は、各PEに関して入力用として1つ、及び出力用として1つの所定数の通信ポートを装備する。PE当たり4つの近傍伝送接続部を有する一方向通信の標準トーラスにおいて、すなわち、PE当たりただ1つの送信方向がイネーブルにされる場合、各PEにおいて、4つの多重化伝送経路が必要とされる。これは、PEの一部分として定義される相互接続トポロジに起因する。最終結果として、標準トーラス内に4N2個の多数の伝送経路が所在する。マニフォルドアレイにおいて、等価接続性および無制限通信である場合、わずかに2N2個の多重化伝送通路が必要とされる。マルチプレクサおよび2N2個の伝送経路によって消費される領域は、4N2伝送経路によって消費される領域よりも著しく少ないので、このように伝送経路を減少させることは、集積回路の不動財部分を大幅に節減することを意味する。通信経路は、トーラス接続アレイ内の通信方向に対応してN、S、E、Wとラベル付けされる。
【0036】
完全なクラスタスイッチ86の一実施の形態を図5の構成図に示す。北、南、東、西方向の出力は既に図示したとおりである。クラスタスイッチ86には他の多重化層112が追加される。この多重化層はAとラベル付けされた東/南方向の受信と、Bとラベル付けされた北/西方向の受信との間で選択し、それによって、各PEの通信ポートの必要条件を受信ポート1つ及び送信ポート1つに減少させる。その上、Tとラベ付けされたクラスタ間の転置接続部を介して転置PE1,3とPE3,1の間の多重化された接続が実施される。特定のマルチプレクサに関してTマルチプレクサイネーブル信号が出力されると、転置PEからの通信は、そのマルチプレクサと連携したPEにおいて受信される。
【0037】
好ましい実施の形態において、全てのクラスタは、例えばPEとその転置PEの間の経路のような転置経路を含む。これらの図は、全体の接続スキームを示すものであり、多層集積回路の具体例は、一般な設計上の定例的な選択問題として実施されるルーチンアレイの相互接続を如何にして完全に達成するかを説明することを意図しない。集積回路のレイアウトに際して、IC設計者は、本発明に係る実際のICにより実現されるアレイを取り入れるプロセスにおいて、各種のトレードオフを分析するであろう。例えば、多数のインタフェースの配線長さを減少させるために、クラスタスイッチはPEクラスタ1内に分散させてもよい。
【0038】
多次元アレイをサポートし、かつ実現を簡素化する4PEクラスタにおける接続性の拡張に必要な多重化の変化を図6のクラスタスイッチ686に示す。説明を簡明にするために、別途注記されない限り、単方向性リンクであるものと仮定する。図6におけるマルチプレクサは、各データ経路入力と連携したイネーブル信号を有する。これらのイネーブル信号は、SIMDコントローラからの個別信号ラインによって、個別PE内において受信されて復号され、かつディスパッチ済み命令から、または、スイッチクラスタから間接的に生成可能である。個別制御メカニズムは、SIMDコントローラからのディスパッチ済み命令を受け取り、その命令を復号し、多重化イネーブル信号を生成するスイッチクラスタ内に、個別のデコーダ/コントローラメカニズムによって提供され得る。好適な本実施形態においては、クラスタスイッチ多重化イネーブル信号がPE内で生成される。それぞれ4つの4から1への(4 to 1)送信マルチプレクサ、及び4つの3から1(3 to 1)のマルチプレクサが、それぞれ4/1,3/1とラベル付けされ、この好ましい実施形態内に用いられる。
【0039】
図5に示すクラスタスイッチ586までの図6に示す拡張部は、8個の2入力送信マルチプレクサ{x1,x3,x5,x7,x2,x4,x6,x8}を、4個の4入力マルチプレクサ4/1により置換えられる。{A,B}および{A,B,T}とラベル付けされたイネーブル信号と関連する、図5に示す4個の2入力および3個の3入力の受信マルチプレクサは、4個の3入力受信マルチプレクサ3/1によって置き換えられ、送信ラインのゲート/バッファリングがゲート/バッファB1−B8によって追加される。4個の4入力送信マルチプレクサは、クラスタ52内の4個のPEの間で完全な接続性を提供する。図6のクラスタスイッチ686は、図5のクラスタスイッチ586によって提供される接続性のスーパーセットを表す。クラスタスイッチにおいて、内部配線をレイアウトするには多くの方法があり、図6の表現は接続点を示すが、多層シリコンにより如何にして接続部を実現するかは示さない。
【0040】
PEクラスタ52、54、56、58は、図7の構成図における4×4マニフォルドアレイに組織される。送信ラインのゲート/バッファリングは、一般的な場合、即ち、PEクラスタ及びそれらのクラスタスイッチが同一シリコン上に配置されることなく、クラスタ間の信号用配線またはケーブル配置に要求される物理的距離だけ分離される場合に、必要とされる。更に、電力およびレイアウトの観点から、ノイズ、及び電力を減少させるために送信信号をゲート/バッファリングすることが重要であることもあり得る。ただし、本実施形態において、マニフォルドアレイ組織は、単一チップまたは集積回路に組み込まれ、4個のPEクラスタから成るクラスタスイッチは、ゲート/バッファリング回路が除去可能であるように、物理的に近接してまとめて配置される。図6のクラスタ組織は、図9Aのクラスタ986Aにおいて、このバッファリングが除去された状態を示す。
【0041】
同様に、図7の4×4マニフォルドアレイのバッファリングは、図8Aに示すマニフォルドアレイ800Aの好ましい単一チップ実現のために除去される。4×4マニフォルドアレイ800Aが図8Aに示すように接続される場合には、クラスタ内の各PEは、相互に直交する他の2つのクラスタへ接続可能である。図8Bは、4×4マニフォルドアレイ800Bにおける1個のPE、即ちPE1,3に関する出力送信接続性を示す。4×4マニフォルドアレイ800Bにおける各PEは、そのクラスタ内の別のPEに到達可能であり、他の2つのクラスタへ接続可能である。図8Cは、アレイ800Cのための4×4 PEノード入力(受け取る)接続性を示す。本発明に係る4×4マニフォルドアレイの好ましい一実施形態において、任意の2つのノード間の最大通信距離は2である。
【0042】
クラスタ952内のPEを接続するクラスタスイッチ986Bを含む2×2マニフォルドアレイ900Bを図9Bの構成図に示す。この図における任意のPEは、クラスタ952内のあらゆる他のPEと通信可能である。例えば、PE00はデータを自分自身、PE01、PE10、又はPE11に送ることが可能であり、PE01は、PE00、それ自身、PE10、または、PE11と通信可能であり、当該クラスタ内の他の2個のPEに関しても同様である。転置操作に関しては、PE00及びPE11は何もしないか、PE01がPE10と通信し、せいぜいこれら自身と通信するに過ぎない。超立方体(ハイパーキューブ)の状況に関して、PE00はPE1,1と通信し、PE0,1はPE10と通信する。図9Bの2×2マニフォルドアレイ900Bから4×4マニフォルドアレイへの移行は、図9Aにおいてクラスタ52に関して示すように、4個の2×2を接続するようにマルチプレクサの追加集合を加えることに関連する。図9Aのクラスタスイッチ986Aは、マルチプレクサ990の追加集合を含む。従って、本発明は、プロセッサ、ノード等の相互接続に、高度に柔軟かつスケーラブルな方法を提供することが理解されるはずである。
【0043】
図10〜図13の構成図は、マニフォルドアレイ1000に関するそれぞれの最隣接東、西、北、南通信のためのそれぞれの経路を示す。各経路は矢印によって示される。各マルチプレクサにおけるただ1つの入力経路が、所与の時点においてイネーブルにされる。データ転送を選定された経路上で実施するには、通信命令がコントローラ29から全てのPEへ発信される。PEは、この発信されたPE命令を受け取り、それを復号し、それぞれのそれらレジスタファイル34から選定済みデータを検索して取り出し、それをそれぞれのそれらクラスタスイッチ86に送る。図3Aに示すように、スイッチイネーブル信号は、既にプログラムされている仮想PE番号およびコンフィギュレーション制御44出力と組合わされた、受信した命令から選定された通信情報に基づいて作られる。
【0044】
図14の構成図において、同じ4×4マニフォルドアレイ1000に関する転置操作のための通信経路が示される。再び、アクティブなデータ経路は、経路に沿った方向性矢印によって示され、各マルチプレクサに対して、ある時間ではただ1つの入力がアクティブである。スイッチイネーブル信号は、図10〜図13に関して述べたのと同じ方法で形成される。図15は、4×4マニフォルドアレイ1500における4個の独立した1×4線形リング1552、1554、1556、1558のための通信経路を示す。1×4線形リングは、行優先順を用いて2×2から形成される。即ち、行優先順は、PE00(A,B,C、または、D)から、PE01(A,B,C、または、D)とPE10(A,B,C、または、D)とPE1,1(A,B,C、または、D)とPE00(A,B,C、または、D)に至る線形経路である。PE00、01、10、11の集合A−Dの各々は、PEの1×4線形リングを構成する。
【0045】
図16の構成図は、本発明に係るマニフォルドアレイによって提供される融通性に関する更なる態様を示す。図16は、2つのアレイとして構成される4×4マニフォルドアレイ1600用の通信経路を示す。最上2×2×2アレイは「A」PEから成る。最下または「B」PEは、第2の2×2×2アレイを構成する。図16は、z軸を介して通信する平面を用いた参照表記法(reference notation)(行)×(列)×(平面)を用いる。PE間のこの種の通信は一般に、双方向性または単方向性どちらのポートが用いられるかに応じて、3個または6個の通信ポート軸を必要とする。これとは対照的に、好ましいマニフォルドアレイの実施には、PE当たり1つの入力ポートと1つの出力ポートを必要とするだけである。アレイ1600は、図16の相互接続スキームを作成するために、修正済みクラスタスイッチのスイッチ設定を用いて、図11〜14に示すアレイ1000の最隣接通信のために用いられたのと同じ物理的配置のPEを備えたPE1652、1654、1656のクラスタを使用できることが注記される。本発明に係るマニフォルドアレイ組織の多くの利点の1つは、コンフィギュレーション及び接続方法から強力な新規能力が生じることである。
【0046】
この強力な能力の更なる一例として、図17は、図に示すようにクラスタスイッチによって相互接続されたクラスタ1752,1754,1756,1758を備えたマニフォルドアレイ1700の4D超立方体の具体化例を示す。図17において、最上PE番号、例えば0,0又は3,1は、図1及び2のように、トーラスにおけるPEの位置を表し、下位のPE番号、例えば0000又は1001は、超立方体におけるその位置またはアドレスを表す。標準超立方体PE間通信において、超立方体PE番号において、ただ1つのビットが変化するだけである。例えば図1において、PE0111(PE12)は、PE0011、0110、1111、0101と通信する。ここで各個別経路は、超立方体番号における1つのビットだけが変化している。図17において、同一クラスタ内に位置するのはPEとそれらの転置PEだけでなく、PEsとそれらの超立方体補足PEもその中に位置することが有利である。図7のアレイは、超立方体とその補集合の間の経路を含まない。
【0047】
図18は、本発明に係るマニフォルドアレイ1800を示す。このアレイにおいて、4個のPEのクラスタ1852、1854、1856、1858の各々におけるPEは完全に接続されている。N個のPEのN個のクラスタを有するN×Nマニフォルドの場合、クラスタのグループ化は、1つのiと1つのjを選定し、次の論式を用いることによって形成され得る:任意のi,jおよび全ての”a”+∈{0,1,...,N-1}に関して:PE(i+a)modN,(j+N+a)modN。例えばマニフォルドアレイ1800のような4D超立方体の場合には、クラスタノードは次のように適切にグレー符号化可能である:PEG((i+a)modN),G((j+N-a)modN。ここで、G(x)はxのグレーコード(交番2進コード)である。一般的な場合への拡張については、次に簡単に説明するマニフォルドアレイの数学的表現において検討することとする。
【0048】
N=4の場合における、超立方体ノードを持つ適当なマニフォルドアレイ1800を図18に示す。4×4マニフォルドアレイ1800は、超立方体補集合を接続する接続経路を含む。換言すれば、超立方体PEとその補足超立方体PEの間の通信経路がイネーブルされる。例えば、PE0111(PE1,2)は、PE1000(PE3,0)並びにそのクラスタの他のメンバと通信可能である。超立方体PEとその補足超立方体PEの間の通信の意味を考察すれば、この場合の4ステップに相当する最長経路用超立方体通信経路は1ステップに短縮される。この経路長短縮は、本発明に係る処理エレメントのマニフォルドアレイ組織に関する非常に効率的な超立方体型アルゴリズムの作成に関して大きい意味を持つ。その上、4個のPEで構成される4×4マニフォルドアレイクラスタは、従来技術における折畳みアレイの場合、同様の4D超立方体接続性のために8個のPEで構成されるクラスタを必要とする従来技術における実現と比較すると、PEとその超立方体補集合の間の通信リンクに関して低コストの解決方法を提供する。
【0049】
PEにおける上部ラベルが4×4×2(行、列、平面)PE番号であり、底部PE番号が5D超立方体番号であるような5D超立方体1900を図19に示す。従来型5D超立方体の場合、各PEにおいて5個の双方向性、又は10個の単方向性接続ポートが必要とされる。5D超立方体が4×4×2マニフォルドアレイにマッピングされる図20に示すマニフォルドアレイ2000の場合、各PEにおいて、わずかに1個の単方向性または2個の双方向性ポートが必要とされる。更に、標準超立方体は、合計5N2(N=4)個の双方向性バス又は10N2(N=4)個の単方向性バスを備えた25、即ち32個のPEを必要とする。図20の5D超立方体マニフォルドアレイ2000は、わずかに合計2N2(N=4)個の双方向性バス又は4N2(N=4)個の、PEの全てのクラスタ間単方向性バスを必要とする。図20は、各クラスタの間に8個の送信および8個の受信経路を備えた単方向バスの場合を示す。図20に示すように、超立方体PEとそれらの補集合PEが、PEの同一クラスタ内に所在することが有利であることに注意されたい。その上、PEの各平面に関して、各PEとその最近隣接転置PEは、PEの同一クラスタ内に位置している。更に、各平面からの対応するクラスタエレメントは一緒にグループ化される。このグループ化は、図示されていない6D超立方体における、クラスタ当たり16個のPEに関しても真であることが保持される。
【0050】
クラスタスイッチは、5Dの場合は4Dの場合と異なるが、同じレベルの相互接続性を提供する4Dの方法に類似した手法により組み立てられることに注意されたい。マニフォルドアレイ形成技法は、種々のサイズのクラスタを形成可能であることに注意されたい。クラスタサイズは用途および製品の必要条件に応じて選択される。
【0051】
北、南、東、西、及び、Z軸入力/出力(I/O)ポートを備えた3Dトーラストポロジは、PEにつき6個の双方向性トライステート型リンクまたは12個の単方向リンクを必要とする。これは、N×N×Nの3Dトーラスに関して、合計3(N3)個の双方向性トライステート型リンクおよび6(N3)単方向リンクが必要とされることを意味する。4×4×4の3Dトーラスに関するマニフォルドアレイトポロジは、6D超立方体に関するマニフォルドアレイトポロジと区別できない。PEは、トーラスまたは超立方体の必要条件に従ってラベル付けされる。更に、8×8トーラスは、接続性必要条件の低下した4×4×4の3Dトーラスのサブグラフと見なすことができる。3D立方体または6D超立方体トポロジのマニフォルドアレイ実現に際して、PEは1つの送信ポート及び1つの受信ポートのみを必要とし、それぞれ、当該トポロジによって必要とされるポート数とは関係無い。3D立方体トポロジにおける必要位置へPEを配置することは、当該PEにとって外部メカニズムをスイッチングすることによって、適宜取り扱うことが可能である。マニフォルドアレイ3Dトーラスに関しては、クラスタ間の配線複雑性は、現在一般的に必要とされる6(N3)の代りに、3(N3)リンクまたは(N3)双方向性トライステート型リンクのわずかに3分の1、および、単方向リンクに関してはわずかに2(N3)だけを必要とするスイッチングメカニズムにおいて軽減される。これは、実現コストの実質的な減少を表す。
【0052】
次に、本発明に係るマニフォルドアレイの様々な態様について数学的に説明する。超立方体は、次元につきサイズ2の正規トーラスである。例えば、1つの4次元超立方体は、1つの2×2×2×2トーラスとみなされる。ただし、トーラスが比較的小さい次元である場合についての後続する討論においては埋込み(同相写像)を扱う。2d次元の超立方体は、次元dおよび辺長4の正規トーラスに等価であるが、(2d+1)次元の超立方体は(d+1)次元および最終次元においてサイズ2である以外は、全次元における辺サイズ4のトーラスに等価である。最初に、dが自然数である場合、2d次元超立方体は、次元につきサイズ4のd次元正規トーラスに等価である。
【0053】
2d次元超立方体Hは、4d=(22dに等しい22d個のノードから成る。前記ノード個数は、辺につきサイズ4のd次元正規トーラスTのノード個数である。定義により、Hの全てのノードは、各次元につき1ノードの割合で2d個の他のノードに隣接する。Tの全てのノードは、次元当たり2個の他のノードに隣接する。即ち、d次元の正規トーラスにおいて、各ノードは他の2d個のノードに隣接する。従って、HとTのノード数およびエッジ数は等しい。
【0054】
それらの間における一対一の対応を定義するために、(i1,i2,...,id)をTのノードであるものとし、ここでijは次元jに関するノード座標を表す。Tは辺当たりサイズ4のd次元正規トーラスであるので、iは、1からdまでの全てのjに関して0から3までの値をとる。次元kにおいて、このノードは、ノード(i1,i2,...,ik-1,...id)およびノード(i1,i2,..,,ik+1,...,id)に隣接する。ここで、演算ik-1及びik+1はモジュロ(modulo)4、即ち、トーラスの循環エッジをカバーするように、3+1=0及び0−1=3として実施されるものと仮定する。
【0055】
Tのノード(i1,i2,..,id)とHのノード((G(i1),G(i2),...,G(id))の間における一対一のマッピングについて考察することとする。ここに、G(0)=00、G(1)=01、G(2)=11、G(3)=10は、2数字グレーコード(交番2進符号)である。トーラスノードはタプル(tuple:集合)によりラベル付けされ、超立方体ノードは2進ストリングによりラベル付けされるが、(G(i1),G(i2), ...,G(id))と表記する場合には、実際には、対応する2進ストリングの連結を意味する。この点および一対一マッピングの説明を明瞭にするために、3次元正規トーラスからのノード(3,1,0)および(G(3),G(1),G(0))を連結することによって導出される6次元超立方体100100に関して対応するラベルについて考察することを提案する。
【0056】
連続するグレーコードは1つの単一2進数字だけ異なるので、隣接するトーラスノードは同様に隣接超立方体ノードであり、その逆でもある。従って、Hのノードとエッジの間、及び、Tのノードとエッジの間の一対一マッピングが存在し、2つのグラフが同じであることを意味する。従って、次元2dの超立方体は、次元につきサイズ4のd次元正規トーラスに埋め込み可能である。
【0057】
グレーコード(交番2進符号)およびグレーコードを用いた超立方体ノードのラベル表示スキームについての更なる定義に関しては、例えば、参考としてここに組み込み済みのF.Thomson Leighton「Introduction to Parallel Algorithms and Architectures:Arrays,Trees,Hypercubes」(並列アルゴリズム及びアーキテクチャ入門:アレイ、トリー、超立方体)Morgan Kauflnann、1992年、Ch.3を参照されたい。
【0058】
(2d+1)次元の超立方体は、少なくともサイズ2を除く全ての次元に関してサイズ4の(d+1)次元トーラスに等価である。Leighton資料から、(2d+1)次元の超立方体は、ページ393で検討されているように、接続されるそれらの対応するノードを持つ2つの2d次元超立方体とみなすことができることが分かる。しかし、2d次元の超立方体は、辺につきサイズ4のd次元正規トーラスに等価であるので、それらの対応するノードを接続することによる2つのd次元トーラスの併合集合は、最後の次元に関してサイズ2の(d+1)次元トーラスである。
【0059】
上記の検討から、2d次元の超立方体は、次元dおよび辺長4の正規トーラスに等価であることが理解されるはずである。同様に、(2d+1)次元の超立方体は、サイズ2の最後の次元を除く全ての次元において辺サイズ4の(d+1)次元トーラスに等価である。
【0060】
マニフォルドアレイグループ又はクラスタは、次に示すように、一般に、直径的に対面するノードを形成することが好ましい。d次元超立方体の隣接するノードは、1つの単一2進数字だけが異なるので、それらのノードアドレスにおいて厳密にd数字だけ異なるノードは相互に最も遠く離れて所在し、それらは相互に直径的に対面する。最も遠く離れたノードのアドレスは、相互に2進補数である。従って、1つの所与ノードに直径的に対面するノードを、その補集合とも称する。
【0061】
一例として、1つの2次元4×4トーラス、及び、図21Aに示すように、超立方体ノードラベルを付けた4×4の表として表記される対応する埋込み済み4次元超立方体について考察することとする。この表の行および列に沿った隣接エレメント間距離は1である。列2、3、4が1つの位置だけ上方回転された場合、第1と第2列の間の対応するエレメントの距離は2になる。列3及び4、次いで列4に対して同様に反復することにより求められる隣接列の対応エレメントを持つ列のエレメント間距離は2である。結果として得られる4Dマニフォルドアレイの表を図21Bに示す。
【0062】
その表の各列は、4個のノードで構成される1つのグルーピング、又は、換言すれば、4次元超立方体上の最大距離は4であるので、直径的に対面する2対のノードを含むことが重要である点に注目されたい。直径的に対面する超立方体ノードが同じグループに属する場合には、その表の列がグループを定義する。
【0063】
比較的高い次元のトーラス、そして超立方体において、直径的に対面するノードのグルーピングは、最後の次元を除く各新規次元に沿った同じ回転によって達成される。
【0064】
グループ形成のための置換を数学的に表記するために、テンソル多次元アレイを分解し、そのエレメントからベクトルを作るか、その逆を実施する2つの演算子が定義される。vec()演算子は、単一のアーギュメント、即ち、テンソルTをとり、テンソルの第1次元である列に沿ってTのエレメントを積み重ねることによりベクトルを以下の式で返す。
【0065】
【数1】

【0066】
例えば、Tが2次元テンソルである場合には、v=vec(T)=[11 21 31 12 22 32 13 23 33]T である。一方、テンソルTは、アーギュメントとしてソース構造および次元のリストをとる演算子reshape()を用いることにより、ベクトルvから復元される。最後の例から、Tは、reshape(v,3,3)を用いて再構築される。
【0067】
2つのマトリックスAとBのクロネッカー積は、Aの対応エレメントによって基準化されたBのコピーから成るブロックマトリックスである。即ち:
【0068】
【数2】

【0069】
所要のグルーピングを表わすための多重アレイTの操作は、マトリックスが順列マトリックスであり、行、列、及び、ベクトル当たり厳密に1つの単一ノンゼロエレメントを持つ直交マトリックスで、ベクトルがvec(T)である場合における、マトリックス・ベクトル積として定義される。先ず、マトリックスSを求めるために、サイズ4の上回転順列マトリックスが決定される。
【0070】
【数3】

【0071】
同様に、マトリックスG、即ち、実際にグルーピング置換を実施するブロック対角マトリックスが決定される。Gの対角ブロックはSのべき乗(パワー)である。
【0072】
【数4】

【0073】
Tが4×4トーラスである場合において、reshape(Gvec(T),4,4)は、上述の要求されるグルーピング特質を有する結果として得られるトーラスである。同様に、Tが4×4×4トーラスを表す場合において、要求されるグルーピングを定義する演算を次に示す:
【0074】
【数5】

【0075】
ここで、I4は4×4識別マトリックスである。
【0076】
一般に、1次元につきサイズ4のd次元正規トーラスTの場合における、グループ現示置換を次に示す:
【0077】
【数6】

【0078】
グルーピング置換えを4×4×4トーラスに適用する例を次に示す:
(I4×G)による第1マトリックス乗算後の、4つの平面を次表に示す:ここで×はクロネッカー積を示す。
【0079】
【表1】

【0080】
(G×I)による第2マトリックス乗算後の結果を次表に示す:
ここで×はクロネッカー積を示す。
【0081】
【表2】

【0082】
上回転の代りに下回転した場合には、直径的に対面するノードをまとめるという同じグルーピング特質が維持される。更に、ノード(i,j)がその転置対,ノード(j,i)と共にグルーピング化される場合には、そのグループはノードの対称対を含む。数学的には、下回転置換は上回転置換の転置である。同様に、順列マトリックスが直交する場合には、下回転置換は上回転置換の逆である。更に明確に、サイズ4の下回転順列マトリックスを次に示す:
【0083】
【数7】

【0084】
ここに、サイズ4に関しては一切制約されないので、マトリックスのサイズについて言及することが必要であり、あらゆるサイズの2次元トーラス、又はより高い次元のトーラスの2次元サブグラフに回転を適用できる。同様に、対角線ブロックがSTのべき乗(パワー)である場合には、全ての列に対応する回転を適用するために、マトリックスGの転置を決定する。
【0085】
図21Cに示す辺当たりサイズ4の3次元正規トーラスの前例に関して、第1マトリックスに(I×GT)を乗算することによって得られる4つの平面を次に示す:ここで×はクロネッカー積を示す。
【0086】
【数8】

【0087】
【表3】

【0088】
前述のグルーピングは、Z軸からの斜視図として図22および図23に示される。第2マトリックスに(GT×I4)を乗算することによって得られる結果を次に示す:ここで×はクロネッカー積を示す。
【0089】
【表4】

【0090】
この場合、直径的に対面するノードが第三次元、即ち、図24に示すように異なる平面内の同じ位置に沿ってグループ化されるばかりでなく、最初から2つの次元に関して対称的なノードも平面の第2の次元または行に沿ってグループ化される。図24においては、1つのグルーピング89がハイライトされている。グルーピング89は、図のその次の集合に関する基準点として用いられる。図25は、クラスタの間で面が所有する接続性に基づいてA、B、C、D平面を再整列する。図26は、サブクラスタの間の局部接続性に基づいて、各平面を2×2サブクラスタに分割する。グループ89は、平面A内のサブクラスタとして示される。この段階においてマニフォルドアレイコアアーキテクチャは、図27Aに示すように、識別された2×2サブクラスタの各々を直接交換するために用いられる。4×4×4のPEノードPE2,2,2入力(受信)接続性を図27Bに示す。マルチプレクサの追加集合は、ラベルxx1、xx2、xx3が追加されていることに注意されたい。4×4×4の各4×4マニフォルドアレイ部分集合の場合には、追加されたxx#型の16個のマルチプレクサの追加集合がある。これらのマルチプレクサは全て、ハイライトされたPEノード2、2、2に関して、図27Bに示されると同じ仕方において接続される。
【0091】
ノードの同じグルーピングは、異なる置き換え順序を経て到達可能であることに注意することが重要である。以上に示したステップにおいて必要とされた置き換えを一緒に乗算する結果として得られる順列マトリックスをPとする。このマトリックスのあらゆる因数分解は、同じ結果を達成する異なる順序のステップに対応する。例えば、P=A123を仮定する。ランダム順列マトリックスQ、Rについて考察することとする。順列Pのようなノードの同じグルーピングを達成する一連の異なる順列を得ることができる。例えば、P=A1TQA2TRA3であるので、B1=A1T、B2=QA2T、及び、B3=RA3と命名して、P=B123を得ることができる。更に、グループのエレメント、又は、グループの相対的順序付け、又は、両方の置換えを実施し、実質的に同じであるが異なって見えるノードのグルーピングに到達できる。
【0092】
同様に、本発明に係るネットワークに基づくマニフォルドアレイの特質は、更に次に検討するように、多くの利点を有するネットワークを形成するためにノードを接続することにも有利に適用できる。
【0093】
ネットワークの直径は、ノードの任意の対の間の最大距離である。ネットワークの直径は、2つのノード間通信に必要な最悪場合数のステップを含む。直径が小さければ小さい程、遠く離れたノード間通信に必要とされるステップ数は少なくなる。ネットワークの直径は小さいことが望ましい。d次元超立方体の場合、H’は相補ノードを接続するエッジをHに加えることによって生成される新規グラフである。s及びtはHの2つの相補ノードであり、vはHの他の任意のノードであるものとする。相補超立方体ノードの任意の対から任意の超立方体ノードvまでの距離の和は、超立方体の次元に等しいことが実証できる。即ち、相補ノードsとt、及び、ノードvを所与の1対であるとすれば、vからsとtを通る最短経路がある。
【0094】
sからvまでの距離は、sとvの2進表現の差、例えばkである数字の個数に等しい。tはsの補集合数であるので、tとvの2進表現の差に相当する数字の個数は(d−k)に等しい。従って、sからvまでの距離はkであり、tからvまでの距離は(d−k)である。すなわち、2つの距離の和はdである。更に、sからvを経たtまでの経路は長さdであり、これが最短経路である。
【0095】
更に、d次元超立方体の相補ノードを接続するエッジを追加すればグラフの直径を、dが偶数であれば半分に、dが奇数であれば(d+1)/2に減少させることができる。vをHのノードとして定義すれば、kおよび(d−k)は、Hの2つの相補ノードsとtからのそれぞれの距離である。一般性を失うことなしに、k<(d−k)と仮定する。そうすれば、Hの場合と同じ最短経路を使用できるので、H’におけるsからvまでの距離はkである。新規エッジを経てsを通る経路が相補ノードを接続するので、H’におけるtからvまでの距離は(k+1)である。これは、H’のノードvとsのあらゆる対に関して、それらの距離は、dが偶数であればd/2、又は、dが奇数であれば(d+1)/2を超過し得ないことを意味する。Hにおけるsからvまでの距離が(d+1)/2を越える場合には、H’におけるsの相補ノードtを通る最短経路は、d/2未満の長さである。
【0096】
d次元超立方体のネットワークの直径はdであり、相補ノード接続部の追加により、上記のように[d/2]になる。前述の結果を下表に要約する。エッジ接続相補ノードだけが中央列において取り扱われることに注意されたい。第3列ラベル付けされたマニフォルドアレイは、本発明のこの態様に基づく構造に含まれるエッジの個数並びに2の一定ネットワーク直径を示す。
【0097】
【表5】

【0098】
上記の表は、超立方体ネットワークの相補ノードを接続する超立方体より多くの2d-1個のエッジを含むサブグラフが劇的な改良を起こすことを示す。ネットワークの直径は、超立方体に比較して、その元のサイズの半分に短縮される。本発明に従い上記の第3列に示すように、全個数のマニフォルドアレイエッジを備えている場合には、ネットワークの直径は、全てのdに関して一定な直径2に短縮される。超立方体および相補エッジを備えた超立方体は、マニフォルドアレイの適当なサブグラフである。
【0099】
仮想ノードのエミュレーションは次のように実現可能である。より小さいネットワークによってエミュレートされることが必要な高次元ネットワークがあるものと仮定する。この必要条件は、多重仮想ノードが各物理的ノードによってエミュレートされなければならないことを意味する。エミュレーションが超立方体近傍並びに超立方体ネットワーク上の超立方体補集合および2次元トーラスネットワーク上のマトリックス転置を維持するように、仮想ネットワークを物理的ネットワークへマップするための幾つかの方法が以下に呈示される。超立方体エミュレーションは比較的簡単に達成可能である。q次元の小さい方の超立方体にエミュレートすることが必要なd次元超立方体を仮定する。次に、2d-q個の仮想ノードが、各物理ノードによってエミュレートされなければならない。本発明に係る方法を非常に簡単に説明する方法は、ノードの2進アドレスについて考察することである。d次元超立方体ノードは、d桁の数字による2進アドレスを必要とする。それらd桁の数字のうちのq桁の数字がエミュレーションを実施する物理ノードのアドレスを定義し、残りの(d−q)桁の数字が物理ノード内のローカル仮想ノードIDを定義する。実際には、d桁の数字アドレス

を持つ仮想ノードvに関して、このアドレスの最初のqビットは、仮想アドレスのローカルIDセクションによって区別される2d-q個の仮想ノードのグループをエミュレートする物理ノードのIDを示す。vのあらゆる隣接ノードwは、vのアドレスと単一の数字だけ異なる。この数字は、仮想IDの最初のq個の数字のなかのいずれか1つであり、従って物理ノードの近隣に所属するか、または、wのアドレスは(d−q)個のローカル数字のなかの1つだけ異なり、従って同じ物理ノードによってエミュレートされることを意味する。更に、仮想ノードvの補集合は、仮想アドレスの補数が物理アドレスおよびローカルアドレスの補数の連結に等しいので、vを賄う(host)物理ノードの補集合によってエミュレートされる。相補物理ノードは、マニフォルドアレイ内の同じクラスタに属するので、相補仮想ノードも同様に同一クラスタに属する。
【0100】
一般に、仮想ノードIDは、必ずしも隣接していない物理およびローカルノードIDの2つの部分に有利に分割可能である。仮想ノードの隣接ノードは、IDの物理またはローカル部分のどちらかが異なる1つのノードIDを持つはずである。従って、仮想ノードは、それぞれ物理ノードの隣接ノード、又は同じ物理ノードによってエミュレートされる。更に、仮想IDの補集合はローカルおよび物理IDの補集合に等しいので、仮想ノードの補集合は、マニフォルドアレイ上の隣接でもある物理ノードの補集合によって常にエミュレートされる。
【0101】
その代わりに、小さい方の超立方体が大きい方の超立方体によってエミュレートされる場合には、マニフォルドアレイネットワークは帰納的に定義されるので、全てがマニフォルドアレイのサブセットに予測通りに作用する。これは、前述の論理が保持される場合には、エミュレートされる超立方体に等しいサイズのマニフォルドアレイのサブグラフが存在することを意味する。
【0102】
同じ概念がトーラスのエミュレーションに有効であるので、トーラスエミュレーションも同様に容易に扱うことができる。隣接して選定された仮想ノードID(次元当たり)は、物理およびローカルIDに相当する。物理ノードIDが仮想ノードIDの最上位ビットを含む場合には、仮想ノードがブロック分布している。そうではなくて、物理ノードIDが仮想ノードIDの最下位ビットを含む場合には、仮想ノードが循環分布している。ブロック分布の場合には、連続するIDを持つ仮想ノードのグループは、同じ物理ノードによってエミュレートされる。16個の仮想ノードが4個の物理ノード上にブロック分布している場合には、物理ノード0が仮想ノード0、1、2、及び、3をエミュレートし、物理ノード1が仮想ノード4、5、6、及び、7をエミュレートする等々である。循環分布の場合には、連続IDを持つノードのグループが異なる物理ノードによってエミュレートされる。16個の仮想ノードが4個の物理ノード上に循環分布している場合には、物理ノード0が仮想ノード0、4、8、及び、12をエミュレートし、物理ノード1が仮想ノード1、5、9、及び、13をエミュレートする等々である。
【0103】
仮想アドレスに対して1を加算または減算することにより、指定された次元に沿ったこのノードの隣接ノードが見付けられる。この加算/減算は、仮想アドレスのローカルまたは物理部分のどちらか、又は、両方に1を加算/減算することに等価であり、同じ物理ノード又は隣接物理ノードのどちらかによって隣接仮想ノードがエミュレートされることを保証する。転置仮想ノードが、同じ物理ノード、又は隣接物理ノードによってエミュレートされることを保証するために、仮想アドレスの物理およびローカルセクションの割当は、全ての次元に関して同じでなければならない。すなわち、仮想ノードのブロック―ブロックまたは循環―循環分布は、転置の近隣性を保存する。
【0104】
並列マシンにおける超立方体マニフォルドアレイの例に戻って、データの配置は、アルゴリズムの高性能計算に関して最高の重要性を持つ。アレイプロセッサにおいては、処理エレメント間のデータ移動に起因する待ち時間を最小限化するために、最初データを適当なPE内に配置し、計算期間中に、直接接続されたPE間で移動させる。従って、全アルゴリズムに関して全体の通信待ち時間を最小限化するために、アルゴリズムがその計算段階を経て進行するにつれて、データの移動が最適化される必要がある。マニフォルドアレイの能力を実証するために、完全なシャッフルアルゴリズム及びPEとその超立方体補集合間の通信アルゴリズムが、図28A〜図30に示す4×4マニフォルドアレイ2800上で調査されるはずである。テンソル積代数は、完全なシャッフルアルゴリズムをマニフォルドアレイプロセッサ上にマップするために用いられる。
【0105】
テンソル積代数はクロネッカー積とも呼ばれ、数学方程式を目的のマシンアーキテクチャへのアルゴリズム的コーディングに適したマトリックス形式にマッピングするための方法を表す。例えば、J.Granata、M.Conner、R.Tolimieri「The Tensor Product: A Mathematical Programming Language for FFTs and other Fast DSP operations」(テンソル積:FFTおよび高速DSP演算のための数学的プログラム言語)IEEE SPマガジン、pp.40−48、1992年1月、及び、J.R.Johnson、R.W.Johnson、D.Roodriguez、および、R.Tolimeiriによる「A Methodology for Designing, Modifying, and Implementing Fourier Transform Algorithms on Various Architectures」(各種アーキテクチャにおけるフーリエ変換アルゴリズムの設計、修正、および実行のための方法論)回路システム信号プロセスVol.9、No.4、pp.449−500、1990年を参照のこと。これらの論文は両方とも参考としてここに組み込み済みである。
【0106】
マニフォルドアレイ完全シャッフル例のためのテンソル表記法による完全シャッフルは、J.R.Johnson等による参考資料のp.472に用いられている

によって表される順列マトリックスとして定義されている。順列マトリックスは、特定マシン組織に対してロード又はストアされるべきデータにアクセスするためのアドレッシングメカニズムを定義すると一般的に解釈される。一般に、順列マトリックスは、その次に意図された計算的オペレーションに関して、データを適切な場所に置くために必要なデータの移動を表す。従って、データの移動、即ち順列マトリックスの目標アーキテクチャへのマッピングを最適化することが重要である。マニフォルドアレイ組織に関する、単一命令多重データ処理(SIMD)超立方体マシンとしての演算、即ち、完全シャッフルは、アレイ内にデータが適切に配置されれば容易に実行され得る。

n=5(P3216)の完全シャッフル例は、図28〜図33を用いて記述される。図28Aは、完全シャッフルアルゴリズムを記述するために用いられるバス構造および演算ユニットを示す。図28Aには、多重コントローラ、メモリユニット0〜3、および、特殊目的FIFOバッファが含まれる。この組織の好ましい実施形態では、メモリユニット、コントローラ、および、FIFOバッファがPEのアレイと同じチップ上に配置される。ただし、本発明は更に一般的であり、単一チップの実現を越えるものであることを理解されたい。マニフォルドアレイコンセプトは、マイクロプロセッサチップPEのアレイによって、ケーブル付きバス、外部メモリ、および、外部コントローラと共に容易に使用可能である。この検討のために、この種マシンのファミリ全体に亙ってスケーラブルであると定義される単一アーキテクチャ及びマシン組織を可能にする単一チップ高性能アレイプロセッサが記述される。
【0107】
従って、低コストのために、コントローラ、メモリユニット、例えばFIFOのようなデータバッファ、および、PEは、全て単一チップに含まれる。コントローラは、それらのアレイクラスタ、メモリ、および、I/O機能へ、例えばメモリアドレス及びロード/ストア信号のような制御信号を介して、または、命令バス上で、例えば、PEに送られるディスパッチされた命令を介して制御を提供する。コントローラは、それぞれSIMDマシンにおける1つの一般的な機能ユニットであり、後続アルゴリズムのサポートという観点からのみ記述される。図28〜図30において、特殊目的FIFOバッファとして示されるデータバッファは、一般に、メモリ/直接メモリアクセス(DMA)インタフェースユニットに同様に組み込まれ、この場合にも、ここではただ一般的にのみ記述される。
【0108】
図28Aは、クラスタ化されたPEの再構成可能なトポロジをサポートするために、多重コントローラがどのようにして適宜実行されるかを実証する。図28Aにおいて、コントローラは、4個のPEの各クラスタと連携する。他のスキームが使用可能であるが、コントローラ0はマスタコントローラとみなされる。命令バスI0は、それ自身のクラスタ、並びに、他のコントローラの各々と連携した命令スイッチ(ISW)に接続される。図28Aにおける各Iswは、命令バスI0のための出力C、または、コントローラの入力命令バスI1、I2、または、I3からそれぞれのIswの出力Cへの接続経路をイネーブルする。Iswは、マスタコントローラによって直接または間接的に供給される制御信号を用いて構成される。マスタコントローラも同様に、システム含まれ、かつこの種の情報を提供するように命じられた、例えばホストプロセッサのような他のプロセッサから、この情報を直接的または間接的に受け取る。この完全シャッフルの例のために、IswはI0を全ての命令バス経路に接続するように設定される。これによって、コントローラ0は、図28Aに示すように、4個全てのPEクラスタ2852、2854、2856、2858のために、単一コントローラとして作動する。例えば、メモリサブシステムをデータソースへ接続する外部インタフェース経路を図28Aに示す。
【0109】
一例として、図28Bの底部において始まる、FIFOアドレス当たり8個のデータアイテムで構成されるグループとしてオンチップFIFOへ受信される一連のデータアイテムを示す。このアドレスは、FIFO内の各列の最上部に表示される。図28Bに示すように、データ項目{0−7}の第1グループはFIFO−0に記憶され、その次のグループ{8−15}はFIFO−1に記憶される、等々。この例において、FIFOは、次の図29に関連して次に記述される様式においてデータをロードするためのコントローラ、即ちこの例においてはコントローラ0、または、ローカルバッファ制御機能によってイネーブルされる4個のマルチプレクサに、各列データアイテムに対して1つずつ合計8個の出力経路を供給する。図28Bにおいて、図示される各バス、D0、D1、D2、D3はトライステート双方向性バス、又は、個別的にロードおよび個別的にストアするバスであり得る。1つ又は複数のバスは、意図した用途に適合する任意のデータ幅、一般に8ビット、16ビット、32ビット、または、64ビットであり。ただし、他の幅であっても差し支えない。
【0110】
説明を明瞭にするために、PEクラスタ間の相互接続は図示しない。図3A〜3Cの基礎メモリブロックは、超立方体パターンにおけるデータ配置をサポートし、クラスタへのデータインターフェイス帯域を増大するために、図28の4×4マニフォルドアレイ2800におけるN=4のメモリブロックに拡大されている。メモリブロックは0−3にラベル付けされ、バス経路はクラスタ当たり1つに整理されている。例えばデータバスD0を備えたメモリ0は、クラスタA2852PE{(0,0)、(3,1)、(1,3)、(2,2)}へ接続され、データバスD1を備えたメモリ1は、クラスタB2854PE{(3,2)、(0,1)、(2,3)、(l,0)}に接続される等々。他のバス構造が可能であり、この典型的な記述によって排除されないことに注意されたい。
【0111】
FIFOバッファにデータがロードされた場合、図29に示すように、プロセスのその次のステップは、データを内部メモリ0−3(M0、M1、M2、M3)へロードする。この記述のために、データは32ビット、データバスは32ビットであるものと仮定する。次に示すシーケンスにおいて、一時に4個のデータアイテムを並列ロードするために、表記法メモリ―データアイテム又はMx-aを用いた8回のFIFOからメモリへのロードサイクルが用いられる。図29に示すメモリユニットへロードされるデータパターンを生成するために用いられるシーケンスは、1st(M0−0、M1−1、M2−3、M3−2)、2nd(M0−6、M1−4、M2−5、M3−7)というように、これが8th(M0−31、M1−30、M2−28、M3−29)まで続く。例えば、メモリ2(M2)は、図29に示す囲まれたアイテム57によって示されるFIFOラインからデータがロードされる。ここで、メモリデータはPEアレイ2800にロードされなければならない。メモリブロックはアドレスされ、コントローラ0によって制御される。PEへデータをロードするために、コントローラ0は、命令をPEへディスパッチし、それらのデータバスからデータがロードされるべきであること、および、PE内部のどの場所へ当該データがロードされるべきかを通知する。次に、コントローラ0は、同期して、アドレスをメモリブロックに供給する。この場合には4個のメモリ0−3の各々に関して同じアドレスである。このアドレスと同期して、次に、コントローラ0は、アドレスされたロケーションからデータを読み出すため、またそのデータをメモリユニット自体のデータバスに配置するために、メモリユニットにとって必要な信号を生成する。
【0112】
同期を保って、適当なPEsは、それらのデータバスからデータを取り、コントローラ0からディスパッチされた命令による指定に従って、それをロードする。コントローラ0は適当なPEの選択を識別する。この選択は、コントローラがPEへ送るディスパッチされた命令内の識別を介して、または、PE内に位置するプログラム可能なイネーブル/ディスイネーブルビットを介して、等、幾つかの方法で実施できる。コントローラは、この結果を達成するために、一連のPEロード命令を命令バスを介して各PEへディスパッチする。32データをロードするために、表記法:メモリユニット―データアイテム―PE#によって示される順序で並列に、ロードサイクル当たり4個のデータアイテムで、合計8回のメモリからPEへのロードサイクルが用いられる。図30に示すPEにロードされるデータパターンを生成するために用いられる順序を次に示す:1st(M0−0−PE0,0,M1−1−PE0,1,M2−3−PE0,2,M3−2−PE0,3),2nd(M0−6−PE1,3,M1−4−PE1,0,M2−5−PE1,1,M3−7−PE1,2),3rd(M0−9−PE3,1,M1−11−PE3,2,M2−10−PE3,3,M3−8−PE3,0),4th(M0−15−PE2,2,M1−14−PE2,3,M2−12−PE2,0,M3−13−PE2,1),図30に示すように32個のデータアイテムがPEアレイにロードされるまで継続する。データアイテムが正しい順序で読みとられた場合には、このロードパターンは完全シャッフルを実施する。完全シャッフル演算を順々に32のデータリストに実行することを図31に示す。
【0113】
X=(P3216)(P3216)(P3216)(P3216)(P3216)Xが知られている。この方程式は、マニフォルドアレイ上での通信事例を示すために用いられる。Xの第1順列、即ち32―エレメントベクトルは、図30に示すように、ロード操作によって達成される。次の順列は、4つの隣接方向の各々に関して次のリストに定義済みであるように、PEの隣接対の間のス北ワップ演算によって実施される。
・東スワップ {0,0 & 0,1}, {0,2 & 0,3}, {1,0 & 1,1}, {1,2 & 1,3},
{2,0 & 2,1}, {2,2 & 2,3}, {3,0 & 3,1}, {3,2 & 3,3},
・南スワップ {0,0 & 1,0}, {2,0 & 3,0}, {0,1 & 1,1}, {2,1 & 3,1},
{0,2 & 1,2}, {2,2 & 3,2}, {0,3 & 1,3}, {2,3 & 3,3},
・西スワップ {0,0 & 0,3}, {0,1 & 0,2}, {1,0 & 1,3}, {1,1 & 1,2},
{2,0 & 2,3}, {2,1 & 2,2}, {3,0 & 3,3}, {3,1 & 3,2},
・北スワップ {0,0 & 3,0}, {1,0 & 2,0}, {0,1 & 3,1}, {1,1 & 2,1},
{0,2 & 3,2}, {1,2 & 2,2}, {0,3 & 3,3}, {1,3 & 2,3},
スワップ演算は、指定されたPE間におけるレジスタデータ値の交換を引き起こす。交換するレジスタ値の選択は、各PEにおいて受信されたディスパッチ命令に定義されている。この例の場合には、一方のPEにおけるレジスタR1は、もう一方のPEにおけるレジスタR2と交換またはスワップされる。図31は完全なシャッフルシーケンスを示し、PEの超立方体番号およびそれらに含まれるレジスタR1及びR2を列形式においてリストする。スワップ(方向)命令によって分離された各列は、スワップ演算の結果を示す。図31に示すように、完全なシャッフルは、対構成されたPEの間におけるただ1回の最隣接データ移動の単一サイクルのみを必要とする各スワップ演算において実施される。
【0114】
この記述を更に拡張するために図32及び33が提供される。図32は、PEにディスパッチされた北スワップ命令の完了に際して得られるレジスタ結果を示す。図33は、PEにディスパッチされた南スワップ命令の完了に際して得られるレジスタ結果を示す。西スワップと東スワップは同様の仕方において処理される。この記述された事例の重要性は、データが指示通りの超立方体パターンでロード可能であれば、データの完全シャッフルを必要とする多くのアルゴリズムにとって、マニフォルドアレイ2000において非常に高速の処理が得られることである。
【0115】
最後に、マニフォルドアレイ超補足事例について記述する。この例においては、上記の完全シャッフル事例において指示されたようなスワップコマンドを用いて、超立方体PEと上述したそれらの補足超立方体PEとの間におけるレジスタ値の交換が実施される。超立方体ノード当たり単一のPEが存在するものと仮定すれば、超補足集合は超立方体マシンにおける最長経路に最適短縮を提供する。図18は、接続されたPE間における簡単な交換が1つの単一サイクルにおいて発生可能にするために超補足集合によって用いられる経路を示す。
【0116】
本発明は特定の好ましい実施形態および典型的なアプリケーションについて記述したが、本発明が多数のアプリケーションに適用可能であり、添付特許請求の範囲によってのみ限定されることが理解されるはずである。一例として、本実施形態は処理エレメントのクラスタを扱うが、ノードのクラスタも考慮対象とされる。この種のノードは、記憶されている多重ブロックのデータへの同時アクセスを可能にするタイル状のメモリシステムを形成するためのメモリエレメントであってもよい。更に、ノードは、接続ポート、入力/出力デバイス等であってもよい。一例として再度記述すれば、ノードは、通信ネットワークにおける複数の通信チャネルを接続するものでも良い。


【特許請求の範囲】
【請求項1】
N×Mアレイに接続された複数の処理エレメント(PE)用相互接続システムであって、ここにNとMは両方とも1より大きく、各PEはデータ及びコマンドを送受信するための通信ポートを備えPEはクラスタにグループ化された相互接続システムにおいて、
PE間接続経路と、
クラスタの間の排他的なPE間接続経路を相互に組み合わせ、従来型トーラス接続PEアレイの接続性に等価なPE間接続性を提供するために必要な通信経路の個数を実質的に減少させるように前記PEへ接続されたクラスタスイッチとを有し、
前記クラスタスイッチが更に転置PE間および超立方体補足PE間に直接通信を提供するための接続部を有することを特徴とする相互接続システム。
【請求項2】
データ及びコマンドが8つの選択モードのうちの1つにおける前記通信ポートにおいて送受信可能であり、前記選択モードにおいて、
a)通信ポートを介して東PEへデータを送信し、同時に、通信ポートを介して西PEからデータを受信するための1つの送信東/受信西モードと、
b)通信ポートを介して北PEへデータを送信し、同時に、通信ポートを介して南PEからデータを受信するための1つの送信北/受信南モードと、
c)通信ポートを介して南PEへデータを送信し、同時に、通信ポートを介して北PEからデータを受信するための1つの送信南/受信北モードと、
d)通信ポートを介して西PEへデータを送信し、同時に、通信ポートを介して東PEからデータを受信するための1つの送信西/受信東モードと、
e)転置されたPE間の送受信のための転置送信/受信モード、及び、距離1超立方体PE間の送受信のための超立方体送信/受信モードと、
f)選定距離2超立方体PE間の送受信のための超立方体送信/受信モードと、
g)距離d、d次元超立方体補足PE間の送受信のための超立方体補集合送信/受信モードと
を含むことを特徴とする請求項1に記載の相互接続システム。
【請求項3】
前記モードが前記PE間に直接接続経路が確立されることを可能にすることを特徴とする請求項2に記載の相互接続システム。
【請求項4】
更に、各PE制御ポートに制御情報を同時に送り、かつ各PEにおいてレジスタにロードするために各PEデータポートにデータを送るように接続されたコントローラ及びメモリシステムを有することを特徴とする請求項3に記載の相互接続システム。
【請求項5】
各通信ポートがBビット幅の送受信経路を含み、前記Bは1以上の整数であることを特徴とする請求項3に記載の相互接続システム。
【請求項6】
各PEは、ある通信ポートを経てデータ又はコマンドを選択的に送り、制御ポートを介して受信し各々のPEに存在する制御論理により復号された通信命令に基づいて、同時に、別の通信ポートを経てデータ又はコマンドを受信するように接続されたことを特徴とする請求項3に記載の相互接続システム。
【請求項7】
前記通信命令は、コントローラから前記制御ポートを経て前記制御論理によって受信されることを特徴とする請求項6に記載の相互接続システム。
【請求項8】
前記クラスタスイッチがオペレーションをサポートし、前記PEはそれぞれ同時にコマンド又はデータを送り、同時に、コマンド又はデータを受け取ることを特徴とする請求項6に記載の相互接続システム。
【請求項9】
前記PEはそれぞれ前記通信ポートの送信部分を経てコマンド又はデータを同時に送り、同時に、前記通信ポートの受信部分を経てデータ又はコマンドを受け取るように、前記同時オペレーションが選択的にスイッチされることを特徴とする請求項8に記載の相互接続システム。
【請求項10】
並列プロセッサであって、
それぞれが1つの単一PE間通信ポートを備える複数の処理エレメント(PE)を有し、
従来型トーラス接続アレイの接続性に等価なPE間接続性を提供するように、かつ、直接転置間および直接超立方体距離1と選定距離2と超立方体間補足PE通信とを提供するように接続されたPE間通信経路を有することを特徴とする並列プロセッサ。
【請求項11】
並列プロセッサであって、
各処理エレメントが合計B本のワイヤを経てデータを送受信する通信ポートを有するM個の処理エレメントのN個のクラスタと、
前記クラスタ対の間に接続された幅(M)(B)に等しいか、それ以下の個数の通信経路であって、対内の各クラスタメンバが対のもう一方のクラスタ内処理エレメントに対してトーラス最隣接体である処理エレメントを含み、各経路が相互に排他的な2つのトーラス方向、即ち、南と東、又は、南と西、又は、北と東、又は、北と西における前記クラスタ対間通信を可能にする通信経路と、
前記クラスタ対間の幅2(M)(B)のワイヤによる通信を、幅(M)(B)のワイヤ経路数以下に組み合わせるように接続されたマルチプレクサと、
を有することを特徴とする並列プロセッサ。
【請求項12】
各クラスタの処理エレメントが北および西トーラス方向で一方のクラスタと、南および東トーラス方向でもう一方のクラスタと通信することを特徴とする請求項11に記載の並列プロセッサ。
【請求項13】
各クラスタの処理エレメントが北および東トーラス方向で一方のクラスタと、南および西トーラス方向でもう一方のクラスタと通信することを特徴とする請求項11に記載の並列プロセッサ。
【請求項14】
各クラスタの処理エレメントが2つの超立方体方向で一方のクラスタと、2つの超立方体方向でもう一方のクラスタと通信することを特徴とする請求項11に記載の並列プロセッサ。
【請求項15】
少なくとも1つのクラスタが超立方体補足対を含むことを特徴とする請求項11に記載の並列プロセッサ。
【請求項16】
クラスタスイッチが前記マルチプレクサを有し、相互に排他的な2つのトーラス方向から受信した通信を、1つのクラスタ内の処理エレメントに多重化するように前記クラスタスイッチが接続されることを特徴とする請求項11に記載の並列プロセッサ。
【請求項17】
前記クラスタスイッチが1つのクラスタ内の処理エレメントからの通信をもう一方のクラスタへ送信するために多重化するように接続されることを特徴とする請求項16に記載の並列プロセッサ。
【請求項18】
前記クラスタスイッチが、1つのクラスタ内の転置処理エレメント間で通信を多重化するように接続されることを特徴とする請求項17に記載の並列プロセッサ。
【請求項19】
前記NがM以上であることを特徴とする請求項11に記載の並列プロセッサ。
【請求項20】
前記NがM未満であることを特徴とする請求項11に記載の並列プロセッサ。
【請求項21】
並列プロセッサであって、
各処理エレメントが合計B本のワイヤを経てデータを送受信する通信ポートを有し、1つのクラスタ内の各処理エレメントが1つのクラスタ内において前記クラスタの外部の処理エレメントに対するよりも他の処理エレメントに対して物理的に一層近接して形成された、M個の処理エレメントのN個のクラスタと、
前記クラスタ対の間に接続された幅(M)(B)のワイヤの数に等しいかそれ以下の数であって、対内の各クラスタメンバが、対のもう一方のクラスタ内処理エレメントに対してトーラス最隣接体である処理エレメントを含み、各経路が相互に排他的な2つのトーラス方向、即ち、南と東、又は、南と西、又は、北と東、又は、北と西、または、2つの超立方体次元の間における前記クラスタ対間通信を可能にした通信経路と、
、前記クラスタ対間の幅2(M)(B)のワイヤによる通信を幅(M)(B)のワイヤ経路数以下に組み合わせるように接続されたマルチプレクサと、
を有することを特徴とする並列プロセッサ。
【請求項22】
各クラスタの処理エレメントが北および西トーラス方向で一方のクラスタと、南および東トーラス方向でもう一方のクラスタと通信することを特徴とする請求項21に記載の並列プロセッサ。
【請求項23】
各クラスタの処理エレメントが北および東トーラス方向で一方のクラスタと、南および西トーラス方向でもう一方のクラスタと通信することを特徴とする請求項21に記載の並列プロセッサ。
【請求項24】
少なくとも1つのクラスタが超立方体補足対を含むことを特徴とする請求項21に記載の並列プロセッサ。
【請求項25】
クラスタスイッチが前記マルチプレクサを有し、2つの超立方体方向から受信した通信を1つのクラスタ内の処理エレメントに多重化するように前記クラスタスイッチが接続されることを特徴とする請求項21に記載の並列プロセッサ。
【請求項26】
前記クラスタスイッチが1つのクラスタ内の処理エレメントからの通信を、もう一方のクラスタへ送信するために多重化するように接続されることを特徴とする請求項25に記載の並列プロセッサ。
【請求項27】
前記クラスタスイッチが1つのクラスタ内の超立方体補足処理エレメント間での通信を多重化するように接続されることを特徴とする請求項26に記載の並列プロセッサ。
【請求項28】
前記NがMに等しいか、それ以下であることを特徴とする請求項21に記載の並列プロセッサ。
【請求項29】
前記NがM以上であることを特徴とする請求項21に記載の並列プロセッサ。
【請求項30】
前記処理エレメント間通信がビット直列であり、各処理エレメントのクラスタが前記通信経路を経て他の2つのクラスタと通信することを特徴とする請求項21に記載の並列プロセッサ。
【請求項31】
処理エレメント間の通信経路がデータバスを有することを特徴とする請求項21に記載の並列プロセッサ。
【請求項32】
前記通信経路が双方向性であることを特徴とする請求項21に記載の並列プロセッサ。
【請求項33】
前記通信経路が単方向性であることを特徴とする請求項21に記載の並列プロセッサ。
【請求項34】
PとQが、トーラス接続アレイと同数のPEを備えるそれぞれ行と列の個数であり、PとQがそれぞれNとMに等しいことを特徴とする請求項21に記載の並列プロセッサ。
【請求項35】
PとQが同数のPEを備えたトーラス接続アレイのそれぞれ行と列の個数であり、QがそれぞれMとNに等しいことを特徴とする請求項21に記載の並列プロセッサ。
【請求項36】
並列プロセッサであって、
次式によって定義された次元に従ったサイズ4のd次元正規トーラスに関する処理エレメントPEのクラスタを有し、
【数12】

前記クラスタ間のPE間通信経路を多重化するように接続され、それによって、トーラス接続アレイの接続性に等価のPE間接続性を提供するクラスタスイッチを有することを特徴とする並列プロセッサ。
【請求項37】
前記クラスタスイッチは更に、1つのクラスタ内の転置PE対におけるPE間直接通信を提供するように接続されることを特徴とする請求項36に記載の並列アレイプロセッサ。
【請求項38】
前記クラスタを組み合わせ、同時に、多重化を維持し、或いは前記クラスタスイッチによって、前記クラスタがスケーラブルであることを特徴とする請求項37に記載の並列プロセッサ。
【請求項39】
前記クラスタスイッチは更に1つのクラスタ内超立方体補足対におけるPE間直接通信を提供するように接続されることを特徴とする請求項38に記載の並列プロセッサ。
【請求項40】
並列プロセッサを形成する方法であって、
各クラスタが次式によって定義され、
reshape(GNvec(T),N,N)
クラスタが他の少なくとも1つのクラスタの処理エレメントと相互に排他的な方向においてのみ通信する、M個の処理エレメントのN個のクラスタにおいて処理エレメントを配列するステップと、
前記の相互に排他的な方向の通信を多重化するステップと、
を含むことを特徴とする並列プロセッサを形成する方法。
【請求項41】
それぞれがデータ及びコマンドを送受信するための通信ポートを備えるPEがクラスタにグループ化され、共に1より大きいN,MによりN×Mアレイに接続された複数の処理エレメント(PE)のための相互接続システムであって、
PE間接続経路と、
クラスタの間における相互に排他的なPE間接続経路を組み合わせ、それによって、従来型トーラス接続PEアレイの接続性に等価なPE間接続性を提供するために必要な通信経路の個数を実質的に減少させるように前記PEへ接続されたクラスタスイッチとを有し、
前記クラスタスイッチが更に転置PEの間および超立方体補足PEの間および各クラスタ内PEの任意の対の間に直接通信を提供するように各クラスタ内PEに完全に接続するための接続部を有することを特徴とする相互接続システム。
【請求項42】
クラスタ内に配列された複数の処理エレメント(PE)を有する並列プロセッサであって、
PEの対が、クラスタ内、および、1つのクラスタ内の第1PEと前記第1PEを含むクラスタに隣接する2つのクラスタの1つのクラスタ内の第2PEとの間の利用可能な通信経路上で、単一ステップで通信するように前記PEを接続するPE間通信経路を有することを特徴とする並列プロセッサ。
【請求項43】
1つのクラスタ内の全てのPEが完全に接続されることを特徴とする請求項42に記載の並列プロセッサ。
【請求項44】
前記PEが分離された送信および受信ポートを備え、第1クラスタ内の任意のPEと隣接する第2クラスタ内の任意のPEとの間の通信が前記第1および第2クラスタ内の全てのPEに関して同時に実施可能であることを特徴とする請求項43に記載の並列プロセッサ。
【請求項45】
第1クラスタ内の任意のPEが第2の隣接クラスタ内の任意のPEに送信可能であり、第2クラスタ内の前記PEが、第3隣接クラスタ内の任意のPEに送ることが可能であることを特徴とする請求項42に記載の並列プロセッサ。
【請求項46】
それぞれがデータ及びコマンドを送受信するための通信ポートを備え、かつクラスタにグループ化され、共に1より大きいN,Mで規定されるN×Mアレイ内の複数のノードを接続するための相互接続システムであって、
ノード間接続経路と、
クラスタ間の相互に排他的なノード間接続経路を組み合わせ、クラスタ間においてノード間接続経路を提供するために必要な通信経路の個数を実質的に減少させ、それによって従来型トーラス接続ノードアレイの接続性に等価なノード間接続性を提供するために必要な通信経路の個数を実質的に減少させるように前記ノードへ接続されたクラスタスイッチを有し、前記クラスタスイッチが更に転置ノード間および超立方体補足ノード間に直接通信を提供するための接続部を有することを特徴とする相互接続システム。
【請求項47】
前記ノードが、グレイ符号化アドレスを備え、各最隣接ノードがただ1つの単一ビットだけ異なるアドレスを持つようにクラスタ内において配列されたことを特徴とする請求項46に記載の相互接続システム。
【請求項48】
各メモリがデータ及びコマンドを送受信するための通信ポートを備え、かつメモリがクラスタにグループ化され、タイル張り様メモリシステムを形成するようにN×Mアレイ内の複数のメモリエレメントを接続するための相互接続システムであって、
メモリ間接続経路と、
クラスタの間の相互に排他的なメモリ間続部経路を組み合わせ、それによって、従来型トーラス接続メモリアレイの接続性に等価なメモリ間接続性を提供するために必要な通信経路の個数を実質的に減少させるように前記メモリへ接続されたクラスタスイッチとを有し、
前記クラスタスイッチが更に転置メモリ間および超立方体補足メモリ間に直接通信を提供するための接続部を有することを特徴とする相互接続システム。


【図1A】

【図1B】

【図1C】

【図1D】

【図2A】

【図2B】

【図3A】

【図3B】

【図3C】

【図3D】

【図4】

【図5】

【図6】

【図7】

【図8A】

【図8B】

【図8C】

【図9A】

【図9B】

【図10】

【図11】

【図12】

【図13】

【図14】

【図15】

【図16】

【図17】

【図18】

【図19】

【図20】

【図21A】

【図21B】

【図21C】

【図22】

【図23】

【図24】

【図25】

【図26】

【図27A】

【図27B】

【図28A】

【図28B】

【図29】

【図30】

【図31】

【図32】

【図33】


【公開番号】特開2010−79912(P2010−79912A)
【公開日】平成22年4月8日(2010.4.8)
【国際特許分類】
物理学 | 計算;計数 | 電気的デジタルデータ処理 | デジタル計算機一般 | 各々が少くとも算術演算ユニット,プログラム・ユニットおよびレジスタをもつ2つ以上のデジタル計算機が結合されたもの,例.数個のプログラムの同時処理を行うためのもの | プロセッサ間通信 | 相互接続ネットワークを用いるもの,例.マトリックス,シャフル,ピラミッド,スター,スノーフレーク
物理学 | 計算;計数 | 電気的デジタルデータ処理 | デジタル計算機一般 | プログラム記憶式汎用計算機のアーキテクチャ | 共通制御機構をもつ処理装置の配列からなるもの,例.単一命令複数データプロセッサ
【外国語出願】
【出願番号】特願2009−240821(P2009−240821)
【出願日】平成21年10月19日(2009.10.19)
【分割の表示】特願2000−516291(P2000−516291)の分割
【原出願日】平成10年10月9日(1998.10.9)
【出願人】(597154922)アルテラ コーポレイション
【氏名又は名称原語表記】Altera Corporation
【Fターム(参考)】
マルチプロセッサ | 用途 | 画像処理用
マルチプロセッサ | 通信、転送方式 | 系路の接続、切替方式 | スイッチによるもの
マルチプロセッサ | 通信、転送方式 | 系路の接続、切替方式 | 接続、切替の対象 | 処理装置(CPU)
マルチプロセッサ | 通信、転送方式 | 通信、転送方式 | 通信バッファ、レジスタを用いるもの | FIFOバッファを用いるもの
マルチプロセッサ | プログラム、命令の実行処理 | 並列処理 | アレイプロセッサ、行列配置によるもの
マルチプロセッサ | プログラム、命令の実行処理 | 並列処理 | アレイプロセッサ、行列配置によるもの | 三次元配列によるもの
マルチプロセッサ | プログラム、命令の実行処理 | 並列処理 | SIMD