JPH05342184A - 格子トーラス結合型並列計算機及び並列プロセッサ - Google Patents
格子トーラス結合型並列計算機及び並列プロセッサInfo
- Publication number
- JPH05342184A JPH05342184A JP4145642A JP14564292A JPH05342184A JP H05342184 A JPH05342184 A JP H05342184A JP 4145642 A JP4145642 A JP 4145642A JP 14564292 A JP14564292 A JP 14564292A JP H05342184 A JPH05342184 A JP H05342184A
- Authority
- JP
- Japan
- Prior art keywords
- nodes
- parallel
- dimensional
- basic element
- connection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Multi Processors (AREA)
Abstract
(57)【要約】
【構成】 N次元アレイ端のPEに、N−1次元以下の
次元に対応するパスを設け、セレクタ4で切り替える。
2次元アレイでは最右側PEの右側通信ポートは最左側
PE(0,0)の左側通信ポートに通信バス2で接続し
ている。1次元にするため最右側PEの右側通信ポート
を一段下のPE(1,0)の左側通信ポートに接続する
通信バス1とセレクタ4を設ける。全ての最右側PEに
も通信バス1とセレクタ4を設ける。最右下PEの右側
通信ポートをPE(0,0)の左側通信ポートに接続す
る。セレクタ4を切り替えて2次元構造から1時元構造
に変換する。 【効果】 ハードウェアの増加を抑え、低い次元に容易
に対応出来、データ転送時のソフトの負担が無くなる。
余った次元の隣接通信バスをバイパス経路として使用で
きる。
次元に対応するパスを設け、セレクタ4で切り替える。
2次元アレイでは最右側PEの右側通信ポートは最左側
PE(0,0)の左側通信ポートに通信バス2で接続し
ている。1次元にするため最右側PEの右側通信ポート
を一段下のPE(1,0)の左側通信ポートに接続する
通信バス1とセレクタ4を設ける。全ての最右側PEに
も通信バス1とセレクタ4を設ける。最右下PEの右側
通信ポートをPE(0,0)の左側通信ポートに接続す
る。セレクタ4を切り替えて2次元構造から1時元構造
に変換する。 【効果】 ハードウェアの増加を抑え、低い次元に容易
に対応出来、データ転送時のソフトの負担が無くなる。
余った次元の隣接通信バスをバイパス経路として使用で
きる。
Description
【0001】
【産業上の利用分野】本発明は、N次元格子トーラス結
合方式をとる並列計算機、及び複数個のプロセッサを同
一LSI上に集積した並列プロセッサに関する。
合方式をとる並列計算機、及び複数個のプロセッサを同
一LSI上に集積した並列プロセッサに関する。
【0002】
【従来の技術】現在の大規模科学技術計算など、様々な
分野で処理能力の高い計算機が要望されており、それら
の要望に対する答として、多くの並列計算機が開発され
ている。並列計算機のアーキテクチャは、各演算要素
(例えば、マイコンなど)をどのように接続するかとい
う接続形態により特徴づけられ、様々な接続形態が提案
されている。
分野で処理能力の高い計算機が要望されており、それら
の要望に対する答として、多くの並列計算機が開発され
ている。並列計算機のアーキテクチャは、各演算要素
(例えば、マイコンなど)をどのように接続するかとい
う接続形態により特徴づけられ、様々な接続形態が提案
されている。
【0003】その中で、自然界のシミュレート等の隣接
作用の問題に適した、N次元格子アレイ状に演算要素
(以降PE/プロセッシング エレメントと呼ぶ)を結
合したアレイ型計算機が有名であり、様々な応用問題で
成果をあげている。これらのN次元格子に接続された計
算機において、N次元以上の次元の問題を適応するのは
容易である。
作用の問題に適した、N次元格子アレイ状に演算要素
(以降PE/プロセッシング エレメントと呼ぶ)を結
合したアレイ型計算機が有名であり、様々な応用問題で
成果をあげている。これらのN次元格子に接続された計
算機において、N次元以上の次元の問題を適応するのは
容易である。
【0004】例えば、3次元のアレイに4次元の問題を
適用する場合、3次元まではPEのアレイに物理的にマ
ッピングし、残りの1次元は各PE上の配列データとし
て扱うことにより適応できる。
適用する場合、3次元まではPEのアレイに物理的にマ
ッピングし、残りの1次元は各PE上の配列データとし
て扱うことにより適応できる。
【0005】しかしながら、これらN次元格子の並列計
算機にN−1次元以下の次元を適応する場合は問題が複
雑になる。単純な方法としては、並列計算機の各PEの
うち、問題の次元に対応するPEのみを使用すればよ
い。例えば32×32の2次元格子の計算機に1次元の
問題を適応するとき、PEの行列の1行32PEのみを
使用すれば良いが、残りの992個のPEが無駄になっ
てしまう。
算機にN−1次元以下の次元を適応する場合は問題が複
雑になる。単純な方法としては、並列計算機の各PEの
うち、問題の次元に対応するPEのみを使用すればよ
い。例えば32×32の2次元格子の計算機に1次元の
問題を適応するとき、PEの行列の1行32PEのみを
使用すれば良いが、残りの992個のPEが無駄になっ
てしまう。
【0006】そのためデータの転送を制御し、PEが無
駄にならないようにマッピングするが、この場合、アレ
イの端のPEのデータ転送制御が他のPEと異なってく
る。例えば4×4の2次元格子トーラス状に接続された
PEアレイに、1次元の問題を図24のようにマッピン
グした場合を考える。
駄にならないようにマッピングするが、この場合、アレ
イの端のPEのデータ転送制御が他のPEと異なってく
る。例えば4×4の2次元格子トーラス状に接続された
PEアレイに、1次元の問題を図24のようにマッピン
グした場合を考える。
【0007】隣りのPEにデータを転送するときは、ア
レイ右端のPE(0,3)〜(3,3)も他のPEと同
じ動きをするのでは、意図する転送は行えず、他のPE
とは異なった動作が必要となる。すなわちアレイの最右
側PEで右に送ったデータは、下の行の最左側のPEに
送られ、最左側PEで左側に送ったデータは、上の行の
最右側PEに送られている。
レイ右端のPE(0,3)〜(3,3)も他のPEと同
じ動きをするのでは、意図する転送は行えず、他のPE
とは異なった動作が必要となる。すなわちアレイの最右
側PEで右に送ったデータは、下の行の最左側のPEに
送られ、最左側PEで左側に送ったデータは、上の行の
最右側PEに送られている。
【0008】MIMD方式の並列計算機では、アレイ端
のPEのプログラムを変更し、他のPEと異なる転送を
行うことにより、比較的容易に実現できるが、SIMD
方式の並列計算機では、通常の転送命令と、アレイ端の
PEに対する転送命令とを制御部が別々に送らなければ
ならないため時間がかかる。
のPEのプログラムを変更し、他のPEと異なる転送を
行うことにより、比較的容易に実現できるが、SIMD
方式の並列計算機では、通常の転送命令と、アレイ端の
PEに対する転送命令とを制御部が別々に送らなければ
ならないため時間がかかる。
【0009】例えば、図24で一斉に右方向にデータを
送る場合、まず最右側列以外のPEをマスクし、最右側
列のPEに下方向にデータを送る命令を送り、マスクを
解除した後、全PEに右方向にデータを転送する命令を
送る。このようにすれば、アレイ結合のSIMD型計算
機においても、図24に示すようなマッピングが可能と
なり、応用問題に対することは出来る。
送る場合、まず最右側列以外のPEをマスクし、最右側
列のPEに下方向にデータを送る命令を送り、マスクを
解除した後、全PEに右方向にデータを転送する命令を
送る。このようにすれば、アレイ結合のSIMD型計算
機においても、図24に示すようなマッピングが可能と
なり、応用問題に対することは出来る。
【0010】一方、近年、一つのLSI上にプロセッサ
を複数個並列配置して、集積することにより構成した並
列プロセッサが開発されている。この従来例を、図25
に示す。
を複数個並列配置して、集積することにより構成した並
列プロセッサが開発されている。この従来例を、図25
に示す。
【0011】同図(A),(B)に示すように、並列プ
ロセッサは、一つのLSI11上に複数個の基本素子集
合12が並列配置されて構成されている。基本素子集合
12は、データパス13,制御部14,メモリ15,通
信ポート16,その他17から構成される。この基本素
子集合12をノードとし、複数個のノード(N1〜N1
6)内の通信ポート16が接続(図中、点線)されてい
る。
ロセッサは、一つのLSI11上に複数個の基本素子集
合12が並列配置されて構成されている。基本素子集合
12は、データパス13,制御部14,メモリ15,通
信ポート16,その他17から構成される。この基本素
子集合12をノードとし、複数個のノード(N1〜N1
6)内の通信ポート16が接続(図中、点線)されてい
る。
【0012】ノード間の接続は相互結合網と呼ばれ、従
来から多くが知られている。例えば、スター網,リング
網,トリー網,格子網,ハイパーキューブ網,オメガ
網,などである。この相互結合網は、ノード間距離が短
いこと、通信容量が大きいこと、構造がシンプルなこ
と、等の特性を合わせ持つことが理想である。
来から多くが知られている。例えば、スター網,リング
網,トリー網,格子網,ハイパーキューブ網,オメガ
網,などである。この相互結合網は、ノード間距離が短
いこと、通信容量が大きいこと、構造がシンプルなこ
と、等の特性を合わせ持つことが理想である。
【0013】しかし、一つの並列プロセッサで全ての相
互結合網を満たすことは難しいため、並列計算機上で解
くべき問題でよく現れる、ノード間通信パターンに適し
た相互結合網が選ばれる。
互結合網を満たすことは難しいため、並列計算機上で解
くべき問題でよく現れる、ノード間通信パターンに適し
た相互結合網が選ばれる。
【0014】例えば、データのソート問題には、その分
割統治的特性からトリー網を持つ並列プロセッサが適し
ているし、物理現象のシミュレーション(流体解析,半
導体デバイスシミュレーションなど)には、隣接作用を
効率よく扱える格子網を持つ並列プロセッサが適してい
る。
割統治的特性からトリー網を持つ並列プロセッサが適し
ているし、物理現象のシミュレーション(流体解析,半
導体デバイスシミュレーションなど)には、隣接作用を
効率よく扱える格子網を持つ並列プロセッサが適してい
る。
【0015】解く問題が複数ある場合や特定できない場
合は、ハイパーキューブ結合(図26)が、その平均通
信距離の短さや、格子網、トリー網をマッピングできる
性質を持つことから、使われる場合がある。
合は、ハイパーキューブ結合(図26)が、その平均通
信距離の短さや、格子網、トリー網をマッピングできる
性質を持つことから、使われる場合がある。
【0016】例えば、2進トリー網は、図27のように
ノードN1〜Nnを割り当てることにより、ハイパーキ
ューブ網で実現できる。図中で下線で示したノードN1
0,12,14,16は、中継ノードとして使われるこ
とを示す。また、2次元格子網は、図28に示したよう
に、ノードN11〜N44を2次元状に接続することに
よって実現できる。
ノードN1〜Nnを割り当てることにより、ハイパーキ
ューブ網で実現できる。図中で下線で示したノードN1
0,12,14,16は、中継ノードとして使われるこ
とを示す。また、2次元格子網は、図28に示したよう
に、ノードN11〜N44を2次元状に接続することに
よって実現できる。
【0017】先に示した図25は、ハイパーキューブ結
合のLSI上の配置例である。図中、点線で示すよう
に、ノード間の配線は複雑であるため、配線面積の増
加,接続網の切り替え機構に起因する動作速度低下を招
く欠点があった。別の方法として、解く問題に専用の並
列プロセッサを製造する方法もあるが、設計期間の増
大,製造コストの負担が大きく、なかなか採用できない
のが現状である。
合のLSI上の配置例である。図中、点線で示すよう
に、ノード間の配線は複雑であるため、配線面積の増
加,接続網の切り替え機構に起因する動作速度低下を招
く欠点があった。別の方法として、解く問題に専用の並
列プロセッサを製造する方法もあるが、設計期間の増
大,製造コストの負担が大きく、なかなか採用できない
のが現状である。
【0018】
【発明が解決しようとする課題】以上のように、従来の
並列計算機において、並列計算機のアレイの次元よりも
小さい次元の問題のマッピングを行う際は、プログラム
の負荷が大きくなり、転送の際にオーバーヘッドが生じ
ていた。これはSIMD型並列計算機にも、MIMD型
並列計算機にも言えることである。
並列計算機において、並列計算機のアレイの次元よりも
小さい次元の問題のマッピングを行う際は、プログラム
の負荷が大きくなり、転送の際にオーバーヘッドが生じ
ていた。これはSIMD型並列計算機にも、MIMD型
並列計算機にも言えることである。
【0019】また、並列計算機における結合方法として
は、アレイ結合以外にクロスバースイッチによる結合
や、処理開始時に結合方式を組み替え、様々な結合方式
に対応する可変結合型の並列計算機などがあるが、これ
らは結合方式によるデータ転送時の制御の複雑さ、ハー
ドウェア量の増大等の問題点が挙げられる。
は、アレイ結合以外にクロスバースイッチによる結合
や、処理開始時に結合方式を組み替え、様々な結合方式
に対応する可変結合型の並列計算機などがあるが、これ
らは結合方式によるデータ転送時の制御の複雑さ、ハー
ドウェア量の増大等の問題点が挙げられる。
【0020】一方、従来の並列プロセッサは、一つの並
列プロセッサで全ての結合網を実現することはできず、
解くべき問題に適した一つの結合網しか選ぶことができ
ないという欠点があった。
列プロセッサで全ての結合網を実現することはできず、
解くべき問題に適した一つの結合網しか選ぶことができ
ないという欠点があった。
【0021】そこで、この発明は、このような事情に鑑
みてなされたものであり、第1の発明の目的とするとこ
ろは、他の結合方式のような制御の複雑さ、ハードウェ
アの増大を防ぎつつ、N−1次元以下の次元に対応でき
る格子トーラス結合型並列計算機を提供することにあ
る。
みてなされたものであり、第1の発明の目的とするとこ
ろは、他の結合方式のような制御の複雑さ、ハードウェ
アの増大を防ぎつつ、N−1次元以下の次元に対応でき
る格子トーラス結合型並列計算機を提供することにあ
る。
【0022】また、第2の発明の目的とするところは、
様々な結合網を配線工程で切り替えることによって、解
くべき問題に適した結合網にノード内部及びノード間を
接続することができる並列プロセッサを提供することに
ある。
様々な結合網を配線工程で切り替えることによって、解
くべき問題に適した結合網にノード内部及びノード間を
接続することができる並列プロセッサを提供することに
ある。
【0023】
【課題を解決するための手段】上記目的を達成するため
に、第1の発明は、N次元の格子状に配置された複数の
演算要素と、これらの演算要素をN次元にトーラス結合
させる複数本の隣接通信バスと、この隣接通信バスと他
の隣接通信バスとの接続を可能とするパスと、隣接通信
バス上のデータかあるいは前記パスを介する他の隣接通
信バス上のデータを選択する選択手段とを、全ての隣接
通信バスに設け、前記パスと選択手段とを利用して隣接
通信バスと他の隣接通信バスとを接続することにより、
前記複数の演算要素をN−1次元以下の次元にトーラス
結合させている。
に、第1の発明は、N次元の格子状に配置された複数の
演算要素と、これらの演算要素をN次元にトーラス結合
させる複数本の隣接通信バスと、この隣接通信バスと他
の隣接通信バスとの接続を可能とするパスと、隣接通信
バス上のデータかあるいは前記パスを介する他の隣接通
信バス上のデータを選択する選択手段とを、全ての隣接
通信バスに設け、前記パスと選択手段とを利用して隣接
通信バスと他の隣接通信バスとを接続することにより、
前記複数の演算要素をN−1次元以下の次元にトーラス
結合させている。
【0024】また、第2の発明は、命令実行制御手段、
データ演算処理部、メモリ、及びプロセッサ間通信手段
を持つ基本素子集合を複数個組み合わせてノードを構成
し、さらにそのノードを複数個使用して所望の機能を実
現する並列プロセッサであって、前記基本素子集合が複
数個半導体基板上に並列配置された構造を持ち、前記基
本素子集合内部、基本素子集合間、またはノード間それ
ぞれの、少なくとも一部の接続を配線工程で所望の機能
に応じてなすとともに、ノード内部の接続に使われる配
線層と、ノード間接続に用いられる配線層とが少なくと
も一層は異なるようにし、あるいは排他的に異なるよう
にし、ノード間接続をノードの領域上の配線層で行うも
のである。
データ演算処理部、メモリ、及びプロセッサ間通信手段
を持つ基本素子集合を複数個組み合わせてノードを構成
し、さらにそのノードを複数個使用して所望の機能を実
現する並列プロセッサであって、前記基本素子集合が複
数個半導体基板上に並列配置された構造を持ち、前記基
本素子集合内部、基本素子集合間、またはノード間それ
ぞれの、少なくとも一部の接続を配線工程で所望の機能
に応じてなすとともに、ノード内部の接続に使われる配
線層と、ノード間接続に用いられる配線層とが少なくと
も一層は異なるようにし、あるいは排他的に異なるよう
にし、ノード間接続をノードの領域上の配線層で行うも
のである。
【0025】または、第2の発明では、前記プロセッサ
間通信手段の少なくとも一部をフィールドプログラマブ
ルにし、前記基本素子集合内部、基本素子集合間、また
はノード間それぞれの、少なくとも一部の接続をプログ
ラマブルに配線工程で所望の機能に応じてなすものであ
る。
間通信手段の少なくとも一部をフィールドプログラマブ
ルにし、前記基本素子集合内部、基本素子集合間、また
はノード間それぞれの、少なくとも一部の接続をプログ
ラマブルに配線工程で所望の機能に応じてなすものであ
る。
【0026】
【作用】上記手段により、第1の発明では、あらかじめ
N次元隣接通信バスの他に、N−1次元に対応出来るよ
うに、PEの隣接通信バスに新たにパスとセレクタ(選
択手段)を設けておき、モードの切り替えにより、一部
のPEの通信ポートの接続を切り替えて、ハード的にN
−1次元に対応するPE間の隣接結合が可能となるよう
にする。
N次元隣接通信バスの他に、N−1次元に対応出来るよ
うに、PEの隣接通信バスに新たにパスとセレクタ(選
択手段)を設けておき、モードの切り替えにより、一部
のPEの通信ポートの接続を切り替えて、ハード的にN
−1次元に対応するPE間の隣接結合が可能となるよう
にする。
【0027】さらに、N−1次元に構成されたPEアレ
イのアレイ端あるいはその他のPEに、N−2次元に対
応出来るようなパスとセレクタを設け、さらにN−3次
元に対応するパスとセレクタを設けるという具合に階層
的にパスを追加する事により、N−1次元以下の次元の
問題に、ハード的に対応し、次元を合わせるための余計
なプログラムが必要ないように構成する。
イのアレイ端あるいはその他のPEに、N−2次元に対
応出来るようなパスとセレクタを設け、さらにN−3次
元に対応するパスとセレクタを設けるという具合に階層
的にパスを追加する事により、N−1次元以下の次元の
問題に、ハード的に対応し、次元を合わせるための余計
なプログラムが必要ないように構成する。
【0028】このような構成によって、N次元以上の問
題をマッピングする際は、従来の方法でN次元格子アレ
イにマッピングする。
題をマッピングする際は、従来の方法でN次元格子アレ
イにマッピングする。
【0029】N−1次元の問題は、N次元アレイに設定
してあるN−1次元用のパスとセレクタを利用してデー
タ通信経路を切り替え、次元の変化に対応させる。N−
2次元以下も同様である。このように、大部分のPEの
接続はもともとのN次元格子結合のままで、一部のPE
の結合を切り替えることにより、ハード的に次元の低い
問題にも対応する。
してあるN−1次元用のパスとセレクタを利用してデー
タ通信経路を切り替え、次元の変化に対応させる。N−
2次元以下も同様である。このように、大部分のPEの
接続はもともとのN次元格子結合のままで、一部のPE
の結合を切り替えることにより、ハード的に次元の低い
問題にも対応する。
【0030】さらに、次元を下げることによって出来た
マッピングとは関係のない余った隣接通信バス、例えば
2次元アレイで、行方向に1次元をマップした場合、列
方向の隣接通信バスは本来のマッピングでは余るが、こ
れらの隣接通信バスはデータ通信時のバイパス経路とし
て活用する。
マッピングとは関係のない余った隣接通信バス、例えば
2次元アレイで、行方向に1次元をマップした場合、列
方向の隣接通信バスは本来のマッピングでは余るが、こ
れらの隣接通信バスはデータ通信時のバイパス経路とし
て活用する。
【0031】また、第2の発明では、データパス、制御
部、通信ポート、メモリを持つプロセッサを複数個、同
一基板上に並列配置した状態のLSIを製造しておく。
これらのプロセッサを組み合わせたものをノードとし、
ノード内部及びノード間の接続を、配線工程で所望の機
能に応じて行う。これにより、プロセッサが並列配置さ
れた同一LSI上で、解くべき問題に適した結合網にノ
ード間を接続している。
部、通信ポート、メモリを持つプロセッサを複数個、同
一基板上に並列配置した状態のLSIを製造しておく。
これらのプロセッサを組み合わせたものをノードとし、
ノード内部及びノード間の接続を、配線工程で所望の機
能に応じて行う。これにより、プロセッサが並列配置さ
れた同一LSI上で、解くべき問題に適した結合網にノ
ード間を接続している。
【0032】
第1の発明 第1の発明の一実施例を図1、図2に挙げる。図2は図
1の左上の部分を紹介に図示したものである。
1の左上の部分を紹介に図示したものである。
【0033】4×4の2次元アレイに1次元の問題をマ
ッピングする事を考える。4×4のPE番号は、最左上
のPEをPE(0,0)、その右隣をPE(0,1)、
PE(0,2)、PE(0,3)とし、PE(0,0)
の下をPE(1,0)とし、PE(1,0)の右隣をP
E(1,1)とする。このように4×4のアレイにPE
(0,0)からPE(3,3)までのPE番号を割り当
てる。
ッピングする事を考える。4×4のPE番号は、最左上
のPEをPE(0,0)、その右隣をPE(0,1)、
PE(0,2)、PE(0,3)とし、PE(0,0)
の下をPE(1,0)とし、PE(1,0)の右隣をP
E(1,1)とする。このように4×4のアレイにPE
(0,0)からPE(3,3)までのPE番号を割り当
てる。
【0034】このアレイに1次元の問題をマッピングす
る場合、アレイの最左上のPEをPE(0)とし、右隣
のPEをPE(1)とする。このように4×4の16台
のPEに1次元の番号を割り付けてゆくと、PE(4)
は2次元での割付のPE(1,0)に割り付けることが
出来る。PE(5)はPE(1,1)に、PE(6)は
PE(1,2)に割り当ててゆき、PE(15)はPE
(3,3)に割り当てる。
る場合、アレイの最左上のPEをPE(0)とし、右隣
のPEをPE(1)とする。このように4×4の16台
のPEに1次元の番号を割り付けてゆくと、PE(4)
は2次元での割付のPE(1,0)に割り付けることが
出来る。PE(5)はPE(1,1)に、PE(6)は
PE(1,2)に割り当ててゆき、PE(15)はPE
(3,3)に割り当てる。
【0035】単純に隣接結合ということで、PE(4)
をPE(0,3)の下側のPE(1,3)に割り当て、
PE(5)はPE(1,2)に割り当てて、蛇行したよ
うに2次元上に割り当ててゆくこともできるが、SIM
D方式の制御では、一斉に同一方向にしか転送できない
ため、自PEより1つ番号の大きいPEに一斉に転送す
る(シフト動作)が出来ない。すなわち、蛇行するよう
に割り当て、転送方向をハードウェアで切り替えるよう
にする場合、アレイの中間のPEと端のPE、2次元で
の奇数行のPEと偶数行のPEとで各々転送方向が違う
ので、ハードの制御が大変である。
をPE(0,3)の下側のPE(1,3)に割り当て、
PE(5)はPE(1,2)に割り当てて、蛇行したよ
うに2次元上に割り当ててゆくこともできるが、SIM
D方式の制御では、一斉に同一方向にしか転送できない
ため、自PEより1つ番号の大きいPEに一斉に転送す
る(シフト動作)が出来ない。すなわち、蛇行するよう
に割り当て、転送方向をハードウェアで切り替えるよう
にする場合、アレイの中間のPEと端のPE、2次元で
の奇数行のPEと偶数行のPEとで各々転送方向が違う
ので、ハードの制御が大変である。
【0036】2次元格子トーラス結合の場合、図2のよ
うに、最右側PE(0,3)の右側通信ポートは、通信
バス2と2入出力セレクタ4によって最左側PE(0,
0)の左側通信ポートに接続されている。
うに、最右側PE(0,3)の右側通信ポートは、通信
バス2と2入出力セレクタ4によって最左側PE(0,
0)の左側通信ポートに接続されている。
【0037】1次元格子トーラス結合にするため、PE
(0,3)の右側通信ポートを一段下のPE(1,0)
の左側通信ポートに接続するパス(通信バス1)と2入
出力セレクタ4を設ける。同様に、PE(1,3)、P
E(2,3)の右側通信ポートにも、PE(2,0)、
PE(3,0)の左側通信ポートに接続するパスと2入
出力セレクタ4を設ける。さらに、PE(3,3)の右
側通信ポートから、PE(0,0)の左側通信ポートに
接続するパスと2入出力セレクタ4を設ける。
(0,3)の右側通信ポートを一段下のPE(1,0)
の左側通信ポートに接続するパス(通信バス1)と2入
出力セレクタ4を設ける。同様に、PE(1,3)、P
E(2,3)の右側通信ポートにも、PE(2,0)、
PE(3,0)の左側通信ポートに接続するパスと2入
出力セレクタ4を設ける。さらに、PE(3,3)の右
側通信ポートから、PE(0,0)の左側通信ポートに
接続するパスと2入出力セレクタ4を設ける。
【0038】これらのパスをモードで切り替えることに
より、2次元格子時には通信パス2を用いるモードによ
りPE(0,3)からPE(0,0)に送られていたデ
ータが、1次元リングの通信パス1を用いるモードの
時、PE(1,0)に送られるようになる。
より、2次元格子時には通信パス2を用いるモードによ
りPE(0,3)からPE(0,0)に送られていたデ
ータが、1次元リングの通信パス1を用いるモードの
時、PE(1,0)に送られるようになる。
【0039】図1を1次元状に展開したのが図3であ
る。図1すなわち2次元アレイ構成時に縦方向の次元に
対応していた隣接通信バスが、1次元形態の時は、4P
E先にデータをバイパスするバイパス経路として活用で
きることが判る。
る。図1すなわち2次元アレイ構成時に縦方向の次元に
対応していた隣接通信バスが、1次元形態の時は、4P
E先にデータをバイパスするバイパス経路として活用で
きることが判る。
【0040】以上は2次元アレイを例として挙げたが、
より高次元の計算機にも適応できる。例えば3次元構造
の計算機では、3次元から2次元への変換経路と、2次
元から1次元への変換経路を設けることにより、1次元
から3次元まで、ハード的に対応できるようになる。
より高次元の計算機にも適応できる。例えば3次元構造
の計算機では、3次元から2次元への変換経路と、2次
元から1次元への変換経路を設けることにより、1次元
から3次元まで、ハード的に対応できるようになる。
【0041】以下に、4×4×4の3次元構造から2次
元構造、1次元構造への変換の例を挙げる。2次元への
変換は、まず4×16と8×8が考えられるが、まず4
×16を考える。
元構造、1次元構造への変換の例を挙げる。2次元への
変換は、まず4×16と8×8が考えられるが、まず4
×16を考える。
【0042】xyz軸方向にPEが格子状に配置され、
PEをxyzの座標で識別する。x=0となる4×4の
PEの属する平面をプレーン0、x=1の平面をプレー
ン1、x=2の平面をプレーン2、x=3の平面をプレ
ーン3とする。PEをxyzの座標でPE(x,y,
z)と識別するとし、各プレーン上の左上をy=0,z
=0とすると、左上のPEはPE(x,0,0)、左下
はPE(x,3,0)、右上はPE(x,0,3)、右
下はPE(x,3,3)となる。
PEをxyzの座標で識別する。x=0となる4×4の
PEの属する平面をプレーン0、x=1の平面をプレー
ン1、x=2の平面をプレーン2、x=3の平面をプレ
ーン3とする。PEをxyzの座標でPE(x,y,
z)と識別するとし、各プレーン上の左上をy=0,z
=0とすると、左上のPEはPE(x,0,0)、左下
はPE(x,3,0)、右上はPE(x,0,3)、右
下はPE(x,3,3)となる。
【0043】各プレーンごとに前述の2次元/1次元の
変換パスをz軸方向に次元をとるように設ける。例えば
PE(0,0,3)のz軸正方向(座標値が大きくなる
方向)のバスは、PE(0,1,0)のz軸負方向(座
標値が小さくなる方向)のバスにつながる。すなわちb
が(0≦b<3)の時、PE(a,b,3,)のz軸正
方向のバスはPE(a,b+1,0)のz軸負方向のバ
スにつながり、PE(a,3,3)のz軸正方向のバス
はPE(a,0,0)のz軸負方向のバスにつながる。
変換パスをz軸方向に次元をとるように設ける。例えば
PE(0,0,3)のz軸正方向(座標値が大きくなる
方向)のバスは、PE(0,1,0)のz軸負方向(座
標値が小さくなる方向)のバスにつながる。すなわちb
が(0≦b<3)の時、PE(a,b,3,)のz軸正
方向のバスはPE(a,b+1,0)のz軸負方向のバ
スにつながり、PE(a,3,3)のz軸正方向のバス
はPE(a,0,0)のz軸負方向のバスにつながる。
【0044】この接続により、z軸方向に16PEの連
なる1次元リングができ、各々のPEがx軸方向に隣接
結合していることから、x軸方向4、z軸方向16の4
×16の2次元構造の並列計算機となる。このとき、各
PEはそれぞれのPE番号を(x,4×y+z)の2次
元配列として現すことができる。4×16の2次元結合
を図4に示す。
なる1次元リングができ、各々のPEがx軸方向に隣接
結合していることから、x軸方向4、z軸方向16の4
×16の2次元構造の並列計算機となる。このとき、各
PEはそれぞれのPE番号を(x,4×y+z)の2次
元配列として現すことができる。4×16の2次元結合
を図4に示す。
【0045】次に、この4×16の2次元アレイを64
PEの1次元リングとする接続を考える。PE(0,1
5)のz軸正方向に1次元に接続する。すなわちPE
(0,15)のz軸正方向のバスはPE(1,0)のz
軸負方向につながる。すなわちPE(a,15)のz軸
正方向のバスはPE(a+1,0)のz軸負方向のバス
につながり(0≦a<3)、PE(3,15)のz軸正
方向はPE(0,0)のz軸負方向のバスにつながる。
PEの1次元リングとする接続を考える。PE(0,1
5)のz軸正方向に1次元に接続する。すなわちPE
(0,15)のz軸正方向のバスはPE(1,0)のz
軸負方向につながる。すなわちPE(a,15)のz軸
正方向のバスはPE(a+1,0)のz軸負方向のバス
につながり(0≦a<3)、PE(3,15)のz軸正
方向はPE(0,0)のz軸負方向のバスにつながる。
【0046】まとめると、3次元構造時、PE(a,
b,0)のz軸負方向バスはPE(a,b,3)のz軸
正方向のバスにつながる(0≦a,b≦3)。2次元構
造時はPE(a,0,0)のz軸負方向のバスはPE
(a,3,3,)のz軸正方向のバスにつながり、PE
(a,b,0)のz軸負方向のバスはPE(a,b−
1,3)のz軸正方向のバスにつながる(0≦a≦3,
1≦b≦3)。1次元構造時、ほとんどのバスは2次元
構造時の接続であり、PE(0,0,0)のz軸負方向
はPE(3,3,3)のz軸正方向のバスにつながり、
PE(a,0,0)のz軸負方向のバスはPE(a−
1,3,3)のz軸正方向のバスとつながる。
b,0)のz軸負方向バスはPE(a,b,3)のz軸
正方向のバスにつながる(0≦a,b≦3)。2次元構
造時はPE(a,0,0)のz軸負方向のバスはPE
(a,3,3,)のz軸正方向のバスにつながり、PE
(a,b,0)のz軸負方向のバスはPE(a,b−
1,3)のz軸正方向のバスにつながる(0≦a≦3,
1≦b≦3)。1次元構造時、ほとんどのバスは2次元
構造時の接続であり、PE(0,0,0)のz軸負方向
はPE(3,3,3)のz軸正方向のバスにつながり、
PE(a,0,0)のz軸負方向のバスはPE(a−
1,3,3)のz軸正方向のバスとつながる。
【0047】次元の変更によりy軸方向にできたバイパ
ス経路はz軸方向に有効で、2次元構造時はz軸方向に
±4PE先にデータを転送できる。また、1次元構造時
には2次元構造時のy軸方向に加え、x軸方向のバスが
バイパス経路として使用できる。y軸方向に関しては2
次元構造時と同様に4PE先に転送でき、x軸方向のバ
スパス経路を使うと16PE先に転送できる。
ス経路はz軸方向に有効で、2次元構造時はz軸方向に
±4PE先にデータを転送できる。また、1次元構造時
には2次元構造時のy軸方向に加え、x軸方向のバスが
バイパス経路として使用できる。y軸方向に関しては2
次元構造時と同様に4PE先に転送でき、x軸方向のバ
スパス経路を使うと16PE先に転送できる。
【0048】ハードウェアの増加を見ると、本来の3次
元構造に比較して、PE(a,0,0)のz軸負方向と
PE(a,3,3)のz軸正方向のバスに3入出力セレ
クタを4つと、PE(a,b,3)のz軸正方向のバス
(0≦b≦2)と、PE(a,b,0)のz軸負方向の
バス(1≦b≦3)に2入出力セレクタを12こ付加す
れば良い。
元構造に比較して、PE(a,0,0)のz軸負方向と
PE(a,3,3)のz軸正方向のバスに3入出力セレ
クタを4つと、PE(a,b,3)のz軸正方向のバス
(0≦b≦2)と、PE(a,b,0)のz軸負方向の
バス(1≦b≦3)に2入出力セレクタを12こ付加す
れば良い。
【0049】PE番号に関しては、各座標を2ビットで
現しているとすると、2次元時は列方向を2ビットで現
し、xをそのまま使用する。行方向は4ビットで現す
が、yを上位2ビット、zを下位2ビットに割り当てる
と、3次元構成時のxyz座標と同様に扱える。1次元
時は6ビットで現し、上位からx,y,zの各ビットを
割り当てて行くと、新たなPE番号の着け替え無しに割
り当てることができる。
現しているとすると、2次元時は列方向を2ビットで現
し、xをそのまま使用する。行方向は4ビットで現す
が、yを上位2ビット、zを下位2ビットに割り当てる
と、3次元構成時のxyz座標と同様に扱える。1次元
時は6ビットで現し、上位からx,y,zの各ビットを
割り当てて行くと、新たなPE番号の着け替え無しに割
り当てることができる。
【0050】PE番号に関しては、各座標を2ビットで
現しているとすると、2次元時は列方向を2ビットで現
し、xをそのまま使用する。行方向は4ビットで現す
が、yを上位2ビット、zを下位2ビットに割り当てる
と、3次元構成時のxyz座標と同様に扱える。1次元
時は6ビットで現し、上位からx,y,zの各ビットを
割り当てていくと、新たなPE番号の付け替え無しに割
り当てることができる。
現しているとすると、2次元時は列方向を2ビットで現
し、xをそのまま使用する。行方向は4ビットで現す
が、yを上位2ビット、zを下位2ビットに割り当てる
と、3次元構成時のxyz座標と同様に扱える。1次元
時は6ビットで現し、上位からx,y,zの各ビットを
割り当てていくと、新たなPE番号の付け替え無しに割
り当てることができる。
【0051】次に、4×4×4の3次元構造から8×8
の2次元構造への変換を考える。単純化のためにy軸、
z軸に関して4×4のプレーンを考える。このプレーン
を2×2で並べれば8×8の2次元格子構造ができる。
プレーン単位で8×8の構成にする場合も、いろいろな
接続方法が考えられるが、本例では8×8を縦横で4分
割し、プレーン0を左上、プレーン1を右上、プレーン
2を左下、プレーン3を右下に割り当てる。この時、z
軸正方向が8×8アレイの右方向、y軸正方向が8×8
アレイの下方向とする。
の2次元構造への変換を考える。単純化のためにy軸、
z軸に関して4×4のプレーンを考える。このプレーン
を2×2で並べれば8×8の2次元格子構造ができる。
プレーン単位で8×8の構成にする場合も、いろいろな
接続方法が考えられるが、本例では8×8を縦横で4分
割し、プレーン0を左上、プレーン1を右上、プレーン
2を左下、プレーン3を右下に割り当てる。この時、z
軸正方向が8×8アレイの右方向、y軸正方向が8×8
アレイの下方向とする。
【0052】図5に8×8の2次元構造に接続した図を
示す。但し図中にはx軸方向のバスによるバイパス経路
は記入していない。
示す。但し図中にはx軸方向のバスによるバイパス経路
は記入していない。
【0053】PE(0,0,0)のz軸負方向は3次元
ではPE(0,0,3)のz軸正方向のバスに接続して
いるが、2次元ではPE(1,0,3)のz軸正方向の
バスに接続する。同様にPE(0,b,0)のz軸負方
向のバスはPE(1,b,3)のz軸正方向のバスに、
PE(2,b,0)のz軸負方向のバスはPE(3,
b,3)のz軸正方向のバスに接続する(0≦b≦
3)。PE(0,b,3)のz軸正方向のバスはPE
(1,b,0)のz軸負方向のバスに、PE(2,b,
3)のz軸正方向のバスはPE(3,b,0)のz軸負
方向のバスに接続する(0≦b≦3)。
ではPE(0,0,3)のz軸正方向のバスに接続して
いるが、2次元ではPE(1,0,3)のz軸正方向の
バスに接続する。同様にPE(0,b,0)のz軸負方
向のバスはPE(1,b,3)のz軸正方向のバスに、
PE(2,b,0)のz軸負方向のバスはPE(3,
b,3)のz軸正方向のバスに接続する(0≦b≦
3)。PE(0,b,3)のz軸正方向のバスはPE
(1,b,0)のz軸負方向のバスに、PE(2,b,
3)のz軸正方向のバスはPE(3,b,0)のz軸負
方向のバスに接続する(0≦b≦3)。
【0054】y軸方向の接続も同様に、PE(0,0,
c)のy軸負方向のバスはPE(2,3,c)のy軸正
方向のバスに、PE(1,0,c)のy軸負方向のバス
はPE(3,3,c)のy軸正方向のバスに接続する
(0≦c≦3)。PE(0,3,c)のy軸正方向のバ
スはPE(2,0,c)のz軸負方向のバスに、PE
(1,3,c)のy軸正方向のバスはPE(3,0,
c)のy軸負方向のバスに接続する(0≦c≦3)。
c)のy軸負方向のバスはPE(2,3,c)のy軸正
方向のバスに、PE(1,0,c)のy軸負方向のバス
はPE(3,3,c)のy軸正方向のバスに接続する
(0≦c≦3)。PE(0,3,c)のy軸正方向のバ
スはPE(2,0,c)のz軸負方向のバスに、PE
(1,3,c)のy軸正方向のバスはPE(3,0,
c)のy軸負方向のバスに接続する(0≦c≦3)。
【0055】このときのPE番号は、縦横それぞれ3ビ
ットで現すことができるが、横方向であるz軸方向は、
3ビットのうち最上位1ビットをx座標の下位1ビット
とし、下位2ビットはz座標の2ビットを割り当てる。
縦方向であるy軸方向は、3ビットの最上位1ビットを
x座標2ビットの上位1ビットを割り当て、下位2ビッ
トにy座標2ビットを割り当てる。
ットで現すことができるが、横方向であるz軸方向は、
3ビットのうち最上位1ビットをx座標の下位1ビット
とし、下位2ビットはz座標の2ビットを割り当てる。
縦方向であるy軸方向は、3ビットの最上位1ビットを
x座標2ビットの上位1ビットを割り当て、下位2ビッ
トにy座標2ビットを割り当てる。
【0056】上記構成にしたとき、x軸方向のバスを用
いることにより、行、列方向4PE先にデータをバイパ
スする事ができる。
いることにより、行、列方向4PE先にデータをバイパ
スする事ができる。
【0057】次に、この8×8の2次元構造を64PE
の1次元構造へ変換することを考える。これは前述の4
×4の2次元構造を1次元構造に変換する接続方法と同
じで、最右端のPEの右側バスを1行下の最左端左側バ
スに接続すれば良い。
の1次元構造へ変換することを考える。これは前述の4
×4の2次元構造を1次元構造に変換する接続方法と同
じで、最右端のPEの右側バスを1行下の最左端左側バ
スに接続すれば良い。
【0058】このように、3次元構造を1次元構造に変
換するためには、8つの3入出力セレクタと16この2
入出力セレクタを設ければ良い。
換するためには、8つの3入出力セレクタと16この2
入出力セレクタを設ければ良い。
【0059】この時のPE番号は、8×8の2次元構成
時の縦方向の3ビットを上位3ビットに、横方向3ビッ
トを下位3ビットにおくことにより、連続したPE番号
を割り振ることができる。
時の縦方向の3ビットを上位3ビットに、横方向3ビッ
トを下位3ビットにおくことにより、連続したPE番号
を割り振ることができる。
【0060】第2の発明 第2の発明による並列プロセッサの構成例を、図6に示
す。同図(A)において、LSI11上には多数の基本
素子集合12が並列配置されている。この基本素子集合
12は同図(B)に示すように、少なくとも1つのデー
タパス(データ演算処理部)13、命令実行制御部1
4、メモリ15、プロセッサ間通信ポート16、及びそ
の他17を持った構成となっている。
す。同図(A)において、LSI11上には多数の基本
素子集合12が並列配置されている。この基本素子集合
12は同図(B)に示すように、少なくとも1つのデー
タパス(データ演算処理部)13、命令実行制御部1
4、メモリ15、プロセッサ間通信ポート16、及びそ
の他17を持った構成となっている。
【0061】並列プロセッサは、1つまたは複数の基本
素子集合12を使って所望のノード内構成、ノード間相
互結合網を形成する。図6で示したノード間相互結合網
は、詳細は後述するが、並列トリーソータを例に示した
ものである。
素子集合12を使って所望のノード内構成、ノード間相
互結合網を形成する。図6で示したノード間相互結合網
は、詳細は後述するが、並列トリーソータを例に示した
ものである。
【0062】近年の半導体技術の進展により、100万
個以上のトランジスタをワンチップに集積することは既
に可能である。西暦2000年には、5000万個から
1億個に達すると予想される。そのため、多数のノード
をワンチップ上に集積することは、今後ますます容易に
なる。
個以上のトランジスタをワンチップに集積することは既
に可能である。西暦2000年には、5000万個から
1億個に達すると予想される。そのため、多数のノード
をワンチップ上に集積することは、今後ますます容易に
なる。
【0063】また、金属配線層数も、1992年現在、
2ないし3層であるが、増加していくのは疑いない。そ
こで例えば、2層配線技術で設計されたマイクロプロセ
ッサとメモリをノードとし、ノード間接続配線を第3
層、第4層で行えば、ノード間接続配線はノード上をも
障害無しに自由に通過でき、また、ノード内の設計変更
も最小限で済むので、大きなメリットとなる。
2ないし3層であるが、増加していくのは疑いない。そ
こで例えば、2層配線技術で設計されたマイクロプロセ
ッサとメモリをノードとし、ノード間接続配線を第3
層、第4層で行えば、ノード間接続配線はノード上をも
障害無しに自由に通過でき、また、ノード内の設計変更
も最小限で済むので、大きなメリットとなる。
【0064】このように、多数の基本素子集合12が並
列配置されただけの状態のLSI11を製造しておき、
配線工程において多層配線技術を用いてノード内部及び
ノード間配線を、所望の結合網に応じてなすことによ
り、一つのLSI11で様々な問題を解くことができる
並列プロセッサを提供することができる。以下に、その
具体例を示す。
列配置されただけの状態のLSI11を製造しておき、
配線工程において多層配線技術を用いてノード内部及び
ノード間配線を、所望の結合網に応じてなすことによ
り、一つのLSI11で様々な問題を解くことができる
並列プロセッサを提供することができる。以下に、その
具体例を示す。
【0065】第1の具体例として、半導体デバイスシミ
ュレーションで現れる連立一次方程式とその並列解法を
図7に示す。図(A)は4×4のメッシュを示し、
(B)は行列の形を表している。また、(C)は求解順
序を示しており、Xi→XjはXjを解くためにXiが
求まっている必要があることを示す。(C)において、
縦方向に並んでいる変数は、並列に求めることができ
る。解法にはILUCGS法を使っている。
ュレーションで現れる連立一次方程式とその並列解法を
図7に示す。図(A)は4×4のメッシュを示し、
(B)は行列の形を表している。また、(C)は求解順
序を示しており、Xi→XjはXjを解くためにXiが
求まっている必要があることを示す。(C)において、
縦方向に並んでいる変数は、並列に求めることができ
る。解法にはILUCGS法を使っている。
【0066】初めに、2次元デバイスシミュレーション
の並列解法例を図8に示す。この図は、プロセッサへの
データ割り当てとプロセッサ間通信を表している。プロ
セッサの接続は1次元アレイ状に接続されており、ノー
ド間通信は左から右へ1次元状に発生する。従って、並
列プロセッサLSI11は、図9に示すように鎖状のノ
ード間接続を持たせればよい。
の並列解法例を図8に示す。この図は、プロセッサへの
データ割り当てとプロセッサ間通信を表している。プロ
セッサの接続は1次元アレイ状に接続されており、ノー
ド間通信は左から右へ1次元状に発生する。従って、並
列プロセッサLSI11は、図9に示すように鎖状のノ
ード間接続を持たせればよい。
【0067】次に、3次元デバイスシミュレーションの
並列解法を図10に示す。図(A)のように、ノード間
通信は、左上のノードN11から右方向,右下方向に波
紋が広がるように起こる。従って、並列プロセッサLS
Iは、図11に示すように、2次元格子状のノード間接
続を持たせればよい。
並列解法を図10に示す。図(A)のように、ノード間
通信は、左上のノードN11から右方向,右下方向に波
紋が広がるように起こる。従って、並列プロセッサLS
Iは、図11に示すように、2次元格子状のノード間接
続を持たせればよい。
【0068】図10(B)は、NMOSトランジスタの
断面を3次元デバイスシミュレーションした際の、使用
計算機による実行時間の比較である。現在実用化されて
いるCRAY Y−MPの実行時間450秒に対し、5
50PE(基本素子集合12)のSIMD機のそれは4
9秒と、かなり高速になると予測される。
断面を3次元デバイスシミュレーションした際の、使用
計算機による実行時間の比較である。現在実用化されて
いるCRAY Y−MPの実行時間450秒に対し、5
50PE(基本素子集合12)のSIMD機のそれは4
9秒と、かなり高速になると予測される。
【0069】また、デバイスシミュレーションは、計算
時間の短い2次元解析と、計算時間はかかるが精密な3
次元解析を、解析目的によって使い分けるため、実行時
に構造が切り替えられると大きなメリットとなる。
時間の短い2次元解析と、計算時間はかかるが精密な3
次元解析を、解析目的によって使い分けるため、実行時
に構造が切り替えられると大きなメリットとなる。
【0070】そこで、図12に示すように、ノード接続
配線の一部に、フィールドプログラマブルな切り替え部
18を設け、外部信号101により、図9あるいは11
のいずれかに切り替える。プログラマブルではあるが、
従来の比べて、配線は短く、切り替え部18もはるかに
簡単であるので、速度低下などの問題は極めて少ない。
配線の一部に、フィールドプログラマブルな切り替え部
18を設け、外部信号101により、図9あるいは11
のいずれかに切り替える。プログラマブルではあるが、
従来の比べて、配線は短く、切り替え部18もはるかに
簡単であるので、速度低下などの問題は極めて少ない。
【0071】次に、第2の具体例を説明する。データの
ソート処理(並べ変えのこと、以下ソートという)は、
データベース処理に代表される事務処理はもとより、あ
らゆるデータ処理でよく現れる処理である。従来、ソー
トはソフトウェアで行なわれてきた。
ソート処理(並べ変えのこと、以下ソートという)は、
データベース処理に代表される事務処理はもとより、あ
らゆるデータ処理でよく現れる処理である。従来、ソー
トはソフトウェアで行なわれてきた。
【0072】近年、ソート処理用ハードウェアの研究開
発が進み、一部、実用化されている。その理由は、デー
タ量の増大とソート時間短縮化の要求が強くなり、一方
では、VLSIに代表されるハードウェアの小型化、ロ
ーコスト化が進んだからである。ソートを行うハードウ
ェアは、ハードウェアソータ、ソートエンジンなどと呼
ばれ、そのアルゴリズムは、ハードウェアソートアルゴ
リズムと呼ばれる。
発が進み、一部、実用化されている。その理由は、デー
タ量の増大とソート時間短縮化の要求が強くなり、一方
では、VLSIに代表されるハードウェアの小型化、ロ
ーコスト化が進んだからである。ソートを行うハードウ
ェアは、ハードウェアソータ、ソートエンジンなどと呼
ばれ、そのアルゴリズムは、ハードウェアソートアルゴ
リズムと呼ばれる。
【0073】文献(『データベース処理や文書処理を高
速化するサーチ/ソートハードウェアの動向』,田中
譲,日経エレクトロニクス1983年8月1日号)を参
考に、並列トリーソータとパイプラインマージソータの
2種類のハードウェアソータを以下に簡単に説明する。
速化するサーチ/ソートハードウェアの動向』,田中
譲,日経エレクトロニクス1983年8月1日号)を参
考に、並列トリーソータとパイプラインマージソータの
2種類のハードウェアソータを以下に簡単に説明する。
【0074】並列トリーソータは、ノードN1〜N15
を2進木状に接続した構成を持つ(図13)。
を2進木状に接続した構成を持つ(図13)。
【0075】次にソート手順を簡単に説明する。
【0076】並列トリーソータのアルゴリズム (ステップ1) 初めにソート対象データ1〜24を分
割し、最下位ノード(N1〜N8)のローカルメモリ1
9に格納する。
割し、最下位ノード(N1〜N8)のローカルメモリ1
9に格納する。
【0077】(ステップ2) 最下位ノードN1〜8
は、ローカルメモリ19内のデータ1〜24を昇順にソ
ートする。ソート結果を順序列と言う。順序列の先頭
は、一番小さいデータである(以上、図13)。
は、ローカルメモリ19内のデータ1〜24を昇順にソ
ートする。ソート結果を順序列と言う。順序列の先頭
は、一番小さいデータである(以上、図13)。
【0078】(ステップ3) 各最下位ノードN1〜8
は、順序列の先頭データ(つまり、もっとも小さいデー
タ)を上位ノードN9〜12に出力する(図14)。
は、順序列の先頭データ(つまり、もっとも小さいデー
タ)を上位ノードN9〜12に出力する(図14)。
【0079】(ステップ4) 上位ノードN9〜12
は、最下位ノードN1〜8から送られてきた2つのデー
タを比較する。上位ノードN9〜12は、小さい方のデ
ータを取り込み、最下位ノードN1〜8は、そのデータ
を自分の順序列から削除する。上位ノードN9〜12
は、大きい方のデータを取り込まず、最下位ノードN1
〜8はそれを保持し続ける(図15)。
は、最下位ノードN1〜8から送られてきた2つのデー
タを比較する。上位ノードN9〜12は、小さい方のデ
ータを取り込み、最下位ノードN1〜8は、そのデータ
を自分の順序列から削除する。上位ノードN9〜12
は、大きい方のデータを取り込まず、最下位ノードN1
〜8はそれを保持し続ける(図15)。
【0080】(ステップ5) 両方の順序列が空なら
ば、終了。空でなければ、ステップ3へ戻る。
ば、終了。空でなければ、ステップ3へ戻る。
【0081】このような動作を、全てのノードN1〜1
5について繰り返すことにより、最上位ノードN15か
らデータを小さい順に出力することができる(図16〜
18)。
5について繰り返すことにより、最上位ノードN15か
らデータを小さい順に出力することができる(図16〜
18)。
【0082】このソータでは、最上位ノードN15から
昇順にソートされたデータが、ステップごとに出力され
る。ハードウェア的には、最下位を除く全てのノードN
9〜15は、最低1つのデータを保持できればよい。最
下位ノードN1〜8は、ソートされるデータ数が最下位
ノード数よりも多い場合、データ数個分以上のメモリ容
量が必要である。
昇順にソートされたデータが、ステップごとに出力され
る。ハードウェア的には、最下位を除く全てのノードN
9〜15は、最低1つのデータを保持できればよい。最
下位ノードN1〜8は、ソートされるデータ数が最下位
ノード数よりも多い場合、データ数個分以上のメモリ容
量が必要である。
【0083】逆に、ソートされるデータ数が最下位ノー
ド数よりも少ない場合、最下位の各ノードは、ソートデ
ータ1個分のメモリ容量となる。ソートは並列に開始さ
れるので、ソートが開始される以前に、ソートされるデ
ータが全て揃う必要がある。
ド数よりも少ない場合、最下位の各ノードは、ソートデ
ータ1個分のメモリ容量となる。ソートは並列に開始さ
れるので、ソートが開始される以前に、ソートされるデ
ータが全て揃う必要がある。
【0084】ノード間結合は2進木であり、図19のよ
うに2次元配置すればよい。図19で、最下位ノードN
1〜8は、最大ソートデータ数に応じたメモリを持ち、
ステップ2でソートを行うため、上位ノードN9〜15
に比べ高い処理能力も必要である。
うに2次元配置すればよい。図19で、最下位ノードN
1〜8は、最大ソートデータ数に応じたメモリを持ち、
ステップ2でソートを行うため、上位ノードN9〜15
に比べ高い処理能力も必要である。
【0085】このため、図19から分かるように最下位
ノードN1〜8を大きくしている。すなわち、最下位ノ
ードN1〜8には、基本素子集合12をより多く使い、
データパス13や制御部14の並列使用等により処理能
力を高めている。さらに、基本素子集合12中のメモリ
15を複数個使い、メモリ容量を増加させている。多数
の基本素子集合12を埋め込んだ半導体基板を使うこと
で、このようなことも比較的容易にできる。より詳しい
図面は、図6で示した。
ノードN1〜8を大きくしている。すなわち、最下位ノ
ードN1〜8には、基本素子集合12をより多く使い、
データパス13や制御部14の並列使用等により処理能
力を高めている。さらに、基本素子集合12中のメモリ
15を複数個使い、メモリ容量を増加させている。多数
の基本素子集合12を埋め込んだ半導体基板を使うこと
で、このようなことも比較的容易にできる。より詳しい
図面は、図6で示した。
【0086】次に、第3の具体例として、パイプライン
マージソータへの適用例を説明する。図20に示すよう
に、まず、入力された文字abcfhgedを交互に2
系列に分け、それぞれab,cf,hg,edとする。
各対をマージし、長さ2の順序列4個(ab)(cf)
(gh)(de)を得る。これらをさらに、2系列に分
け、各対をマージして長さ4の順序列2個(abcf)
(degh)を得る。長さ4の順序列についても同様に
行い、最終的に文字列(abcdefgh)を出力す
る。
マージソータへの適用例を説明する。図20に示すよう
に、まず、入力された文字abcfhgedを交互に2
系列に分け、それぞれab,cf,hg,edとする。
各対をマージし、長さ2の順序列4個(ab)(cf)
(gh)(de)を得る。これらをさらに、2系列に分
け、各対をマージして長さ4の順序列2個(abcf)
(degh)を得る。長さ4の順序列についても同様に
行い、最終的に文字列(abcdefgh)を出力す
る。
【0087】このように、2つの順序列のマージを繰り
返し、順序よく並んだ部分列の長さを1,2,4,…と
倍々に長くしていく方法で実行する。
返し、順序よく並んだ部分列の長さを1,2,4,…と
倍々に長くしていく方法で実行する。
【0088】この処理は、図21に示す構成によってパ
イプライン処理することができる。各段のマージャm0
〜m2は、前段のバッファB0X,Y、B1X,Y、B
2X,Yから送られてくる2つの部分列の先頭がそろい
次第、ソートを開始する。このパイプライン処理の詳細
な様子を図22を参照しながら、簡単に説明する。
イプライン処理することができる。各段のマージャm0
〜m2は、前段のバッファB0X,Y、B1X,Y、B
2X,Yから送られてくる2つの部分列の先頭がそろい
次第、ソートを開始する。このパイプライン処理の詳細
な様子を図22を参照しながら、簡単に説明する。
【0089】時刻1で、入力列の先頭である‘a’が、
バッファBOXに入力される。時刻2で‘b’がB0Y
に入力される。マージャm0は、マージ対象の2つのデ
ータが準備されたので、大小比較をする。‘a’<
‘b’であるので、‘a’が時刻3でm0から出力さ
れ、次段のバッファB1Xに入力される。
バッファBOXに入力される。時刻2で‘b’がB0Y
に入力される。マージャm0は、マージ対象の2つのデ
ータが準備されたので、大小比較をする。‘a’<
‘b’であるので、‘a’が時刻3でm0から出力さ
れ、次段のバッファB1Xに入力される。
【0090】‘a’が出力された後のB0Xには次のデ
ータ‘c’が入力列から取り込まれる。従って、時刻3
で、B0Xには‘c’、B0Yには‘b’が入ってい
る。ここでマージャは、‘b’がまだバッファB0Yに
残っていることを認識しているため、‘b’と‘c’を
マージすることはない。その状態を示すのが、同図中×
→である。
ータ‘c’が入力列から取り込まれる。従って、時刻3
で、B0Xには‘c’、B0Yには‘b’が入ってい
る。ここでマージャは、‘b’がまだバッファB0Yに
残っていることを認識しているため、‘b’と‘c’を
マージすることはない。その状態を示すのが、同図中×
→である。
【0091】時刻4で2番目のマージ対‘c’と‘f’
がB0X,B0Y中にそろい、マージが開始される。B
1には、長さ2の列がストアされ、m1はそれをソート
する。B2,m2も同様の動作をする。
がB0X,B0Y中にそろい、マージが開始される。B
1には、長さ2の列がストアされ、m1はそれをソート
する。B2,m2も同様の動作をする。
【0092】この方法では、ソートがパイプライン的に
実行されるため、次の2つの特徴がある。第1に、ソー
トデータが全て揃うのを待つことなく、最初の2つが揃
い次第、処理が開始される。第2に、ソートデータが入
力され終わると、入力に近いバッファ、マージャ(B
0,m0)から徐々に空いてくるため、その次のソート
データの入力を開始できる。
実行されるため、次の2つの特徴がある。第1に、ソー
トデータが全て揃うのを待つことなく、最初の2つが揃
い次第、処理が開始される。第2に、ソートデータが入
力され終わると、入力に近いバッファ、マージャ(B
0,m0)から徐々に空いてくるため、その次のソート
データの入力を開始できる。
【0093】このようなパイプラインマージソータを実
現するためのLSI11上での配置例を図23に示す。
ハードウェア的には、終段に近づくほどバッファの容量
を大きくする必要があるが、基本素子集合12のメモリ
15を複数個組み合わせることで、比較的容易に実現で
きる。
現するためのLSI11上での配置例を図23に示す。
ハードウェア的には、終段に近づくほどバッファの容量
を大きくする必要があるが、基本素子集合12のメモリ
15を複数個組み合わせることで、比較的容易に実現で
きる。
【0094】
【発明の効果】以上のように、第1の発明の格子トーラ
ス結合型並列計算機では、セレクタはPE間の隣接通信
バス上に設けるため、各PEは全て均等なもので構わ
ず、特にPE上に新たな機能を設ける必要はない。その
ため通信速度の保証さえすれば、容易に上記機能を追加
できる。
ス結合型並列計算機では、セレクタはPE間の隣接通信
バス上に設けるため、各PEは全て均等なもので構わ
ず、特にPE上に新たな機能を設ける必要はない。その
ため通信速度の保証さえすれば、容易に上記機能を追加
できる。
【0095】さらに、低い次元のモードで実行している
場合、高次元のモードの際の隣接通信バスをバイパス経
路として活用することができる。
場合、高次元のモードの際の隣接通信バスをバイパス経
路として活用することができる。
【0096】また、第2の発明の並列プロセッサでは、
複数個の基本素子集合を並列配置し、ノード内部及びノ
ード間の配線を配線工程で所望の機能に応じてなしてい
るので、それぞれの応用に最適なノード間相互結合網を
持つ並列プロセッサLSIを、短期間に経済的に高性能
に作れる。また、ノード毎の構成,処理能力も応用毎に
最適化できる。
複数個の基本素子集合を並列配置し、ノード内部及びノ
ード間の配線を配線工程で所望の機能に応じてなしてい
るので、それぞれの応用に最適なノード間相互結合網を
持つ並列プロセッサLSIを、短期間に経済的に高性能
に作れる。また、ノード毎の構成,処理能力も応用毎に
最適化できる。
【図1】第1の発明の一実施例であり、4×4のPEア
レイを1次元に変換した様子を示す配置図である。
レイを1次元に変換した様子を示す配置図である。
【図2】図1の左上の部分を紹介に図示したものであ
る。
る。
【図3】図1を1次元状に展開した展開図である。
【図4】第1の発明の一実施例であり、4×4×4の3
次元構造を4×16の2次元構造に変換した様子を示す
構造図である。
次元構造を4×16の2次元構造に変換した様子を示す
構造図である。
【図5】第1の発明の一実施例であり、4×4×4の3
次元構造を8×8の2次元構造に変換した様子を示す構
造図である。
次元構造を8×8の2次元構造に変換した様子を示す構
造図である。
【図6】第2の発明による並列プロセッサの平面図であ
る。
る。
【図7】半導体デバイスシミュレーションに現れる行列
と並列解法を示す図である。
と並列解法を示す図である。
【図8】2次元デバイスシミュレーションの並列解法を
説明するためのノード接続図である。
説明するためのノード接続図である。
【図9】2次元デバイスシミュレーションを実現するた
めのノード間接続図である。
めのノード間接続図である。
【図10】3次元デバイスシミュレーションの並列解法
を説明するためのノード接続図である。
を説明するためのノード接続図である。
【図11】3次元デバイスシミュレーションを実現する
ためのノード間接続図である。
ためのノード間接続図である。
【図12】並列デバイスシミュレーションを実現するた
めのノード間接続図である。
めのノード間接続図である。
【図13】並列トリーソータの動作例を示す説明図であ
る。
る。
【図14】図13に続く並列トリーソータの動作例を示
す説明図である。
す説明図である。
【図15】図14に続く並列トリーソータの動作例を示
す説明図である。
す説明図である。
【図16】図15に続く並列トリーソータの動作例を示
す説明図である。
す説明図である。
【図17】図16に続く並列トリーソータの動作例を示
す説明図である。
す説明図である。
【図18】図17に続く並列トリーソータの動作例を示
す説明図である。
す説明図である。
【図19】並列トリーソータを実現するための並列プロ
セッサのフロアプラン概要である。
セッサのフロアプラン概要である。
【図20】パイプラインマージソータの動作を表す説明
図である。
図である。
【図21】パイプラインマージソータの構成図である。
【図22】パイプラインマージソータの動作を説明する
ためのデータフロー図である。
ためのデータフロー図である。
【図23】パイプラインマージソータを実現するための
並列プロセッサのフロアプラン例である。
並列プロセッサのフロアプラン例である。
【図24】4×4の2次元アレイに1次元の問題をマッ
ピングした従来例である。
ピングした従来例である。
【図25】従来の並列プロセッサによるハイパーキュー
ブLSIの平面図である。
ブLSIの平面図である。
【図26】従来の並列プロセッサによるハイパーキュー
ブ結合の概念図である。
ブ結合の概念図である。
【図27】従来の並列プロセッサによる2進木のハイパ
ーキューブへのマッピング図である。
ーキューブへのマッピング図である。
【図28】従来の並列プロセッサによる2次元格子のハ
イパーキューブへのマッピング図である。
イパーキューブへのマッピング図である。
1〜3 通信バス 4 2入出力セレクタ 11 プロセッサアレイLSI 12 基本素子集合 13 データパス 14 制御部 15 メモリ 16 通信ポート 17 その他 18 切り替え部 19 ローカルメモリ N1〜N15〜Nn ノード
Claims (6)
- 【請求項1】 N次元の格子状に配置された複数の演算
要素と、 これらの演算要素をN次元にトーラス結合させる複数本
の隣接通信バスと、 この隣接通信バスと他の隣接通信バスとの接続を可能と
するパスと、隣接通信バス上のデータかあるいは前記パ
スを介する他の隣接通信バス上のデータを選択する選択
手段とを、隣接通信バスに設け、 前記パスと選択手段とを利用して隣接通信バスと他の隣
接通信バスとを接続することにより、前記複数の演算要
素をN−1次元以下の次元にトーラス結合させることを
特徴とする格子トーラス結合型並列計算機。 - 【請求項2】 前記複数の演算要素をN−1次元以下の
次元にトーラス結合させた際、余った1次元分の隣接通
信バスをバイパス経路に使用することを特徴とする請求
項1記載の格子トーラス結合型並列計算機。 - 【請求項3】 命令実行制御手段、データ演算処理部、
メモリ、及びプロセッサ間通信手段を持つ基本素子集合
を複数個組み合わせてノードを構成し、さらにそのノー
ドを複数個使用して所望の機能を実現する並列プロセッ
サであって、 前記基本素子集合が複数個半導体基板上に並列配置され
た構造を持ち、 前記基本素子集合内部、基本素子集合間、またはノード
間それぞれの、少なくとも一部の接続を配線工程で所望
の機能に応じてなすとともに、 ノード内部の接続に使われる配線層と、ノード間接続に
用いられる配線層とが少なくとも一層は異なるように
し、ノード間接続をノードの領域上の配線層で行うこと
を特徴とする並列プロセッサ。 - 【請求項4】 命令実行制御手段、データ演算処理部、
メモリ、及びプロセッサ間通信手段を持つ基本素子集合
を複数個組み合わせてノードを構成し、さらにそのノー
ドを複数個使用して所望の機能を実現する並列プロセッ
サであって、 前記基本素子集合が複数個半導体基板上に並列配置され
た構造を持ち、 前記基本素子集合内部、基本素子集合間、またはノード
間それぞれの、少なくとも一部の接続を配線工程で所望
の機能に応じてなすとともに、 ノード内部の接続に使われる配線層と、ノード間接続に
用いられる配線層とが異なるようにし、ノード間接続を
ノードの領域上の配線層で行うことを特徴とする並列プ
ロセッサ。 - 【請求項5】 命令実行制御手段、データ演算処理部、
メモリ、及びプロセッサ間通信手段を持つ基本素子集合
を複数個組み合わせてノードを構成し、さらにそのノー
ドを複数個使用して所望の機能を実現する並列プロセッ
サであって、 前記基本素子集合が複数個半導体基板上に並列配置され
た構造を持ち、 前記プロセッサ間通信手段の少なくとも一部をフィール
ドプログラマブルにし、 前記基本素子集合内部、基本素子集合間、またはノード
間それぞれの、少なくとも一部の接続をプログラマブル
に配線工程で所望の機能に応じてなすことを特徴とする
並列プロセッサ。 - 【請求項6】 前記ノード内部の接続の少なくとも一部
を配線工程で形成し、所望の機能を持つ複数のアーキテ
クチャ、メモリ構成をもつノードが、一つの半導体基板
上に混在することを特徴とする請求項3、4、及び5記
載の並列プロセッサ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4145642A JPH05342184A (ja) | 1992-06-05 | 1992-06-05 | 格子トーラス結合型並列計算機及び並列プロセッサ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4145642A JPH05342184A (ja) | 1992-06-05 | 1992-06-05 | 格子トーラス結合型並列計算機及び並列プロセッサ |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05342184A true JPH05342184A (ja) | 1993-12-24 |
Family
ID=15389737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4145642A Pending JPH05342184A (ja) | 1992-06-05 | 1992-06-05 | 格子トーラス結合型並列計算機及び並列プロセッサ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH05342184A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007099950A1 (ja) | 2006-03-03 | 2007-09-07 | Nec Corporation | 高速pe間データ再配置機能を有するプロセッサアレイシステム |
WO2013046363A1 (ja) * | 2011-09-28 | 2013-04-04 | トヨタ自動車株式会社 | エンジン制御装置 |
-
1992
- 1992-06-05 JP JP4145642A patent/JPH05342184A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007099950A1 (ja) | 2006-03-03 | 2007-09-07 | Nec Corporation | 高速pe間データ再配置機能を有するプロセッサアレイシステム |
US7783861B2 (en) | 2006-03-03 | 2010-08-24 | Nec Corporation | Data reallocation among PEs connected in both directions to respective PEs in adjacent blocks by selecting from inter-block and intra block transfers |
WO2013046363A1 (ja) * | 2011-09-28 | 2013-04-04 | トヨタ自動車株式会社 | エンジン制御装置 |
JP5668864B2 (ja) * | 2011-09-28 | 2015-02-12 | トヨタ自動車株式会社 | エンジン制御装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7051185B2 (en) | Hypercomputer | |
JP4447770B2 (ja) | 相互接続システム及び並列プロセッサとその形成方法 | |
JP4118963B2 (ja) | マニホールドアレイプロセッサ | |
US6094715A (en) | SIMD/MIMD processing synchronization | |
US8058899B2 (en) | Logic cell array and bus system | |
US6336209B1 (en) | Information processing system that processes portions of an application program using programmable logic circuits | |
EP0208457A2 (en) | A processor array | |
US5630162A (en) | Array processor dotted communication network based on H-DOTs | |
JPH04267466A (ja) | 連想並列処理システム | |
US5566342A (en) | Scalable switch wiring technique for large arrays of processors | |
JPH07152722A (ja) | Simdマルチプロセッサ用動的再構成可能スイッチ装置 | |
GB2262174A (en) | Reconfigurable signal processor | |
KR100280854B1 (ko) | 데이타 처리 장치 및 데이타 처리 방법 | |
KR100373426B1 (ko) | 디지탈 프로세싱 디바이스 | |
JP2007058571A (ja) | 回路および回路接続方法 | |
US7409529B2 (en) | Method and apparatus for a shift register based interconnection for a massively parallel processor array | |
JPH05342184A (ja) | 格子トーラス結合型並列計算機及び並列プロセッサ | |
Lea et al. | Associative massively parallel computers | |
Alnuweiri | A new class of optimal bounded-degree VLSI sorting networks | |
KR0170496B1 (ko) | 병렬처리 컴퓨터 시스템에서 크로스바 스위치를 사용한 클러스터 연결구조 | |
JP3532102B2 (ja) | 間接ローテータグラフネットワーク及び間接ローテータグラフネットワークにおける伝送経路の設定方法 | |
Di Gesù | An overview of pyramid machines for image processing. | |
Cantoni et al. | Compact Pyramidal Architectures | |
WU et al. | A new cell-based interconnection network | |
JP3726977B2 (ja) | 2次元peアレイ装置並びにデータ転送方法およびモルフォロジー演算処理方法 |