JPH0217582A - アレイ処理システム - Google Patents

アレイ処理システム

Info

Publication number
JPH0217582A
JPH0217582A JP3852789A JP3852789A JPH0217582A JP H0217582 A JPH0217582 A JP H0217582A JP 3852789 A JP3852789 A JP 3852789A JP 3852789 A JP3852789 A JP 3852789A JP H0217582 A JPH0217582 A JP H0217582A
Authority
JP
Japan
Prior art keywords
packet
exchange
circuit
processing elements
address
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.)
Granted
Application number
JP3852789A
Other languages
English (en)
Other versions
JPH0679344B2 (ja
Inventor
Hungwen Li
ハングウエン・リ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH0217582A publication Critical patent/JPH0217582A/ja
Publication of JPH0679344B2 publication Critical patent/JPH0679344B2/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)

Abstract

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

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明は、あらかじめ定められたグラフを表わすアルゴ
リズムではなくて任意のグラフを表わすアルゴリズムに
よる処理を可能にする内容アドレス可能パケット・バッ
ファ・メモリを含む単一命令複数アドレス(SIMA)
機構を含めることによる、単一命令複数データストリー
ム(SIMD)ポリモルフイック(多形)・メツシュ・
ネットワーク・アレイ処理システムの改良に関するもの
である。
ネットワーク設計では、主たる目的は、命令伝送速度及
びタスク実行速度を増大させ、同時にネットワークの並
列性を高めることである。本発明の好ましい実施例では
、従来の構成よりも速度を増大させネットワークの並列
性を高めるため、メツシュ・ネットワーク相互接続を変
更せずに、単一命令複数アドレス機能によって、通常の
ポリモルフイック・メツシュ構成の第4度(fourt
hdegree )単一命令複数データストリーム・ネ
ットワーク・アレイが改良される。
B、従来技術 1886年8月29日出願の米国特許出願第08/90
2343号明細書(特願昭82−132016)には、
各処理要素内部でメツシュ・ネットワークによって物理
的に相互接続されたNXN個の処理要素を含み、ポリモ
ルフイック制御装置によってアーキテクチャがツリー、
正四面体、立方体等の多くの通常のグラフを命令の制御
下で動的に誘導できる、SIMD並列アーキテクチャ用
のポリモルフイック・メツシュ・ネットワークが記載さ
れている。影響を受ける処理要素が隣接していない場合
、並列性は比較的低い。
C0発明が解決しようとする問題点 SIMDで生成されるグラフは、イメージ処理、コンピ
ュータ・ビジョン、グラフィックの各アプリケーション
で有用な広範囲のアルゴリズムをカバーしている。しか
し、これら及びその他のアプリケーションには、通常の
グラフの範囲から外れ、任意のグラフによってしか表現
できないアルゴリズムがある。
D1問題点を解決するための手段 各アルゴリズムは独自のタイプのグラフをもたらすので
、可能なすべてのグラフと合致できる一般的な並列アー
キテクチャはない。本発明は、ポリモルフイック・メツ
シュ・アーキテクチャ内の処理要素が、任意グラフによ
って規定されるように相互間の通信を確立できるように
する、いくつかの方法及び回路について記述する。本発
明は、合致アドレスをもつすべての処理要素をアドレス
するためのバッファ・メモリを提供する。この機能は、
単一命令複数アドレス機能である。
2次元メモリと優先順位回路とレジスタを含むSIMA
回路が、データ回線を介して処理要素のポリモルフイッ
ク・メツシュ・ネットワークと対話する。制御装置がア
ドレス信号とモード信号を供給する。ポリモルフイック
・メツシュの処理には、各要素がその行または列の隣接
要素の情報を交換または転送することが必要である。こ
の移動は、アドレスとデータを含むパケットによって案
内される。SIMA回路はN個のアドレスを生成し、そ
のそれぞれが、アドレスのi番目の位置に適正なピット
値をもつパケットを含むバッファ・メモリを指す。パケ
ットの交換あるいは転送は、使用する転送方式に応じて
実行される。
内容アドレス可能メモリ及び2次元メモリは、当業者に
は周知である。内容アドレス可能メモリを使って、単一
命令複数データストリーム・アレイ・プロセッサ内の単
一命令から複数アドレスを引き出すことが、とくにパケ
ットの交換及び転送に適用する場合の本発明の基礎であ
る。
本発明の主目的は、ポリモルフイック・メツシュによっ
て任意グラフを処理できるようにする、単一命令複数ア
ドレス回路を提供することにある。
本発明の第2の目的は、命令から1つのアドレスを受は
取り、バッファ・メモリの異なる位置にある複数のパケ
ットへのアクセスを可能にする複数出力アドレスを生成
する、単一命令複数アドレス回路を提供することにある
。その際、複数アドレス及びパケットの数は、ポリモル
フイック・メツシュ・システム中の処理要素の数に比例
する。
本発明の第3の目的は、命令中で出される所定のパター
ンによってアドレスできるバッファ中の任意の位置に記
憶された所定のパターンと合致するパケットが存在する
ことを検出する、単一命令複数アドレス回路を提供する
ことにある。
本発明の第4の目的は、ポリモルフイック・メツシュ・
アーキテクチャ内の処理要素が任意グラフによって規定
される通信を確立できるように、利用可能なものから順
にバッファ・メモリ中のパケットを交換する方法を提供
することにある。
本発明の第5の目的は、ポリモルフイック・メツシュ・
アーキテクチャ内の処理要素が任意グラフによって規定
される通信を確立できるように、バッフT感知方式でバ
ッフトメモリ中のパケットを交換する方法を提供するこ
とにある。
本発明の第6の目的は、ポリモルフイック・メツシュ・
アーキテクチャ内の処理要素が任意グラフによって規定
される通信を確立できるように、強制交換方式でバッフ
ァ・メモリ中のパケットを交換する方法を提供すること
にある。
本発明のその他の目的は、下記の説明を添付の図面と併
せて読めばさらにはっきりする。
E、実施例 第2図には、アルゴリズムの任意のグラフの概略図が示
されている。どのコンピュータ・アルゴリズムも、グラ
フで表わすことができる。その際に、ノードはタスクま
たはプロセスを表わし、矢印は相互接続する通信を表わ
す。並列プロセッサで実現する場合、ノードはハードウ
ェアの処理要素(PE)に割り当てられ、矢印は処理要
素相互間の通信経路で実現される。
第1図は、NXN個の処理要素22のポリモルフイック
(多形)・メツシュ配列20を示す。このポリモルフイ
ック・メツシュ配列中で、各処理要素は、座標(rlc
)で表わされる特定の行及び列にある。ただし、rとC
は共にOからn−1までの範囲にあり、2つのlog(
N)ビット・ストリング、すなわちrkzrk−t、・
・・、rl r(+及びCks Ck−+、・・・、C
1Coとして表わすことができ、k= l o g (
N)である。
処理要素PE (s、t)のO行目の隣接要素は、処理
要素PE (plQ)である。ただし、SとpはS。及
びp。のみが異なる。同様に処理要素PE(ss t)
のO列目の隣接要素は、処理要素PE(plq)である
。ただし、tとqはto及びQ。
のみが異なる。定義を一般化すると、処理要素PE (
sl t)のi行目の隣接要素は、Sとpが8+及びp
lのみで異なる処理要素PE (plq)である。同様
に処理要素PE (s、t)のi列目の隣接要素は、t
とqがtl及びqlのみで異なる処理要素PE (pl
Q)である。
本発明によれば、各処理要素は、そのi行目及びi列目
の隣接要素と特定の方法で情報を交換する必要がある。
0行目及びO列目の隣接要素と情報を交換するには、メ
ツシュ配列の物理的相互接続が用いられる。隣接要素は
、隣接する行または列にあるからである。i行目(また
はi列目)の隣接要素の場合、隣接要素相互間の通信距
離は2行(または2列)である。たとえば3=OO11
のi行目の隣接要素は、行1=OO01にある。
したがって、交換には、メツシュ内の位置(0,3)に
ある処理要素3からメツシュ内の位置(0,1)にある
宛先処理要素1の方へ行方向に2回データをシフトさせ
ることが必要である。このようなシフトを、各列(また
は行)中のデータが同じ方向に2列(または2行)移動
するよう′に指定する「ホップ方向2」と呼ぶ。同様に
、i行目またはi列目の隣接要素相互間の交換には、「
ホップ方向2’Jが必要である。ただし、「方向」は、
メツシュ配列20内の処理要素22の4つの物理リンク
を表わす東西南北のどれでもよい。
第3図に、情報パケットのフォーマットを示す。
i行(または列)目の交換は、パケットの行アドレス1
9及びパケットの列アドレス21及び交換すべきデータ
23からなるパケット25によって制御される。パケッ
ト25自体は、ポリモルフイック・システムの外部メモ
リ24に記憶される。外部メモリ24は、メツシュ配列
20の各処理要素22と関連するパケットをメモリ24
の所定の部分に記憶するように構成されている。パケッ
ト・バッファ26と呼ばれる外部メモリ24の部分は、
関連する処理要素のパケットを内容アドレス可能記憶位
置に記憶する。以下で説明するSIMA回路は、この内
容アドレス可能メモリの概念に基づいて、バッファ中の
パケットにアクセスするために1つのアドレスしか提供
できないSIMDアーキテクチャの制限を緩和する。S
IMA回路は、システム内のN個の処理要素が、パケッ
ト・バッファ26の異なるN個の位置に記憶されている
当該の各パケットにアクセスできるようにする。SIM
A回路は、SIMDアーキテクチャの能力を拡張し、ポ
リモルフイック・メツシュ配列20で任意のグラフを実
現しやすくする。
従来のSIMDf列アーキテクチャでは、第2図に示す
ように、制御装置28からのアドレス信号によって外部
メモリ24がアドレスされる。その結果、同じバッファ
位置にあるパケットが交換のため選択される。同じバッ
ファ記憶位置にあるパケットがi行目またはi列目の隣
接要素である確率はかなり低い。その結果、従来のSI
MDアドレッシング方式は、パケットを交換する際に並
列性が非常に小さい。
並列性を高めるには、すべてのバッフトメモリについて
、単一命令で任意の合致パケットが同時にアドレスされ
るようなアドレッシング方式が必要である。第4図に示
すSIMA回路は、この機能を実行する。
第4図に示すSIMA回路30は、2次元の内容アドレ
ス可能メモリ32と優先順位回路34とレジスタ36を
含んでいる。SIMA回路30は、制御装置28からの
入力信号として、導線38を介してアドレス信号を、ま
た導線40を介してモード制御信号を受は取る。モード
制御信号は、1つのアドレスで1つのデータ出力が得ら
れる通常のメモリ・アドレス・モード、または所与のデ
ータで複数のアドレスが得られる内容アドレス可能モー
ドをもたらし、後者が好ましい。SIMA回路30は、
導線42を介するデータ出力信号によって、アレイ20
中の各処理要素22と通信する。回路30の機能は、そ
れぞれi番目の位置に合致するビットを有するパケット
を含むバッファ・メモリを指す、N個のアドレスを生成
することである。
2次元メモリ32は、水平方向にF個のバッファ、縦方
向ににビットで編成されている。従来モードでは、メモ
リ32が水平方向にアドレスされて、データ・ビットを
バッファ・メモリ32に書き込み、またはそこから読み
取ることができる。
内容アドレス可能モードでは、アドレスが縦方向に解釈
されて、特定のビット位置、たとえばi行目のパケット
を検出する場合はi番目の位置が選択される。その結果
、F個のバッファすべてのi番目のビットが論理「1」
と比較され、合致したときは、合致した行に対する垂直
ピッ)線(VBL)44が論理「1」として反映される
。各バッファ・メモリについて1本ずつ、合計F本の垂
直ビット線が優先順位回路34に接続されている。
優先順位回路34は、論理「1」が存在する垂直ビット
線の最低のインデックスを解読する。解読された最低の
インデックスは、制御装置28によって規定される合致
ビット位置を有するパケットのアドレスに対応する。優
先順位回路は市販されており、一般の内容アドレス可能
メモリ及び浮動小数点演算の事後正規化に使われてきた
。好ましい優先順位回路は、フェアチャイルド・カメラ
・アンド・インストルメント社(Fairchild 
Cameraand ・rnstrument Com
pany)’から装置番号F100165として市販さ
れているものである。
メモリ32と優先順位回路34は、単一命令の制御下で
合致パケットの複数のアドレスを得る能力をもたらす。
それらのアドレスは、各処理要素中に分散されたレジス
タ36に記憶される。アドレス混合回路46は、バッフ
ァ・メモリに正しくアクセスするため、レジスタ36を
制御装置28から供給されるアドレスによってオフセッ
トさせる。アドレス混合回路46はまた、レジスタ36
と制御装置28からのアドレス信号との多重化を制御す
る。
優先順位回路34は、合致回路のアドレスを供給する以
外に、同じバッファ中に複数の合致パケットがあるとい
う衝突を解決する。優先順位回路34の出力線は、バッ
ファ・メモリ内に合致パケットが存在することを示す存
在フラグ回路48に接続されている。存在フラグ回路の
出力は、交換すべきパケットが存在するかどうかを示す
指標として当該の処理要素に送られる。マルチプレクサ
50は、存在フラグ回路48とメモリ32の間で出力を
切り替える。
内容アドレス可能メモリは市販されており、たとえばフ
ェアチャイルド・カメラ・アンド・インストルメント社
から装置番号F100142として市販されている。以
下で説明する本発明は、内容アドレス可能メモリ内で単
一命令から複数のアドレスを引き出し、SIMDアーキ
テクチャにパケット交換を適用することに関する。
処理要素相互間でのデータ・パケットの交換を容易にす
るSIMA回路30について説明したが、この交換を実
施する方法には、3つの代替方式がある。
第1図の任意グラフを参照すると、下記の表は第1図の
16個の処理要素の初期パケット準備を示す。
ソース処理要素 PE =  0 0000 PE =  1 0001 PE =  2 0010 PE =  3 0011 PE =  4 0100 PE =  5 0101 PE =  6 0110 PE =  7 0111 PE =  8 1000 PE =  9 1001 PE = 10 1010 PE = 11 1011 PE = 12 1100 PE = 13 1101 PE = 14 1110 PE = 15 1111 玉]し吸甥」L危 PE  =  11  1011 PE  =  7 0111 PE  =  15  1111 PE  =  14 1110 PE  =  13  1101 PE  =  12  1100 PE  =  0 0000 PE  =  9  1001 PE  =   4 0100 PE  =  2 0010 PE  =   6  0110 PE  =   5  0101 PE  =   1  0001 PE  =  13 0011 PE  =  10  1010 PE  =   8  1000 XOR<3:O> この表かられかるように、処理要素0のパケットは処理
要素11に配送され1、処理要素1のパケットは処理要
素7に配送され、以下同様である。
使用可能順方式は、SIMA回路30が、i行目の交換
でバッファ・メモリ内のパケットのi番目の位置に論理
「1」ビットを有する、すなわちpacket (i)
=1の最初のパケットを得ることができることに基づく
ものである。j列目の交換の場合は、packet (
j+k)が論理「1」と比較されて、合致するパケット
の存在とそのバッファ・アドレスが提供される。
使用可能順方式は、このような擬似コードで表現される
グラフの各リンクごとにソース・ノードを次のように表
わす。
(S rks r+c−1,、、S rot S Ck
S Ci+−1,、、8Co)(srはソース・ノード
の行を表わし、SCはソース・ノードの列を表わす)。
宛先ノードを次のように表わす。
(d rind rk−+、、、 d for d c
kd c+c−1,、、d Co)下記のパケットを得
る。
packet (i)=sr+X0Rdr+packe
t (i+k)士s c+X0Rd C+Wビットのデ
ータを、packet (2に+1)〜packet 
(2に+w)として付加する。
while(buffer  not  emptyO
)[for C+=O;  i<k;t++)(pac
ket = first−available (i−
th  row);packet = i−row  
exchange O;packet(i) = 0;
) for  (j=に;  j<2に;j++)[pac
ket = first−available (j−
th  column)ipacket = j−co
l  exchange 0ipacket(j) =
Oi) i−row   exchange関数は1次のように
交換を実行する。packet (i)=1のとき、処
理要素はパケットをそのi行目の隣接要素に送り、その
隣接要素は受は取ったパケットをバッファ・メモリに記
憶し、packe、t (i)をゼロにリセットする。
packet (i)=0の場合は、パケットは送られ
ない。
バッファ・メモリが空になるまで、交換プロセスが続く
。このことは、すべてのSIMA回路30の各存在フラ
グ信号をORすることによって実施される。バッファの
空状態の詳細な追跡については、交換アルゴリズムの表
現を簡潔にするため、示さない。
パケットの交換を第5A図ないし第5H図に概略的に示
す。第5A図には、上記の表に基づく各処理要素Oない
し15に対する初期パケット割当てを示す。処理要素は
、ポリモルフイック・メツシュ構成で配列される。
第5B図は、使用可能順方式に基づ(最初の動作サイク
ルで0行目の交換後に交換されたパケットを示す。
かっこ内の数字は、パケットが初期処理要素位置である
。その後すべての交換を通じて、そのパケットと同じ初
期処理要素番号を用いる。同じ処理要素中に2個のパケ
ットが示しである場合は、上側のデータはすでに配送さ
れたパケット、下側のデータはこれから配送すべきパケ
ットである。
空の処理要素は、そのアドレスに論理「1」がないこと
を示す。上側のパケットがその最終位置に達していると
きは、その処理要素に横棒を付す。
上記の規則を以後のすべての図面に適用する。
第5C図は、後続の1行目の交換サイクルの後で交換さ
れるパケットを示す。第5D図は、後続の0列目の交換
サイクルの後で交換されるパケットを示す。その後に1
行目の交換サイクルが実行され、その結果を第5E図に
示す。
第5E図に示したパケットの0行目の交換では、パケッ
トはないので、次のサイクルで1行目の交換が実行され
、その結果を第5F図に示す。後続の0行目の交換が次
の動作サイクルで実行され、その結果を第5G図に示す
。もう1回1行目の交換サイクルが完了すると、第5H
図に示すようにすべてのパケットが配送される。
パケットは、第1図の任意グラフに基づいて配送された
。すなわち、最初PE=Oにあったパケットは現在PE
=11にあり、最初PE=1にあったパケットは現在P
E=7にあり、以下同様である。
上記の使用可能順方式では、たとえばバッファ・メモリ
の不足のために、隣接要素がパケットを受諾できるかど
うかにかかわらず、パケットが必ずそのi行/列目の隣
接要素に転送されることが必要である。上記の方式では
、処理要素は追加のパケットが隣接する処理要素から配
送される間、バッファ・メモリ中で配送を待ちながら、
多数のパケットを蓄積する。この現象を「競合」と呼ぶ
。競合に伴う1つの問題は、バッファ・メモリの飽和ま
たは涸渇である。
代替方式では、競合もメモリの飽和もなく、単一のバッ
ファ・メモリしか必要としない。
バッファ感知方式 バッファ感知方式は、使用可能順方式と同じやり方でパ
ケットを準備するが、パケット交換は異なる。
バッファ感知方式は、次のような擬似コードで表現され
る。
段階1:パケットの準備 グラフの各リンクごとに、ソース・ノードを次のように
表わす。
(S rks r*−1,、、S ro+  s Ck
s Cv、−1,、、S Co)(srはソース・ノー
ドの行を表わし、sCはソース・ノードの列を表わす)
。宛先ノードを次のように表わす。
(d r+cd rk−+、、、 d rO+ d c
kd Ck−t、、、 d C□)下記のパケットを得
る。
1)acke t (i) =s r+X0Rd rl
packe  t  (j+k)=sc+X0Rdc+
Wビットのデータをpacket (2に+1)ないし
packet (2に+w)として付加する。
段階2:パケットの交換 while (bufrer  not  empty
 O)  (for (i=o;i<k;i++) (
temp  packet = i−row  exc
hange □;if ((temp  packet
(i) AND packet(i))”1)pack
et = temp  packet;packet(
i) = O; 1se packet = old  packetifor 
(j=に;、+<2に;、+++)[temp  pa
cket =: j−col  exchange□;
if ((temp  packet(j) AND 
packet(j))二二1)(packet = t
emp  packet;packet(j) =O; 1se packet = old  packetiこの方式
では、パケット交換の際にパケット・バッファの位置を
1つしか、すなわちt emppacketLか使用せ
ず、したがってバッファ・メモリの飽和は起こり得ない
。しかし、パケットを交換するには、両方のパケットが
合歓位置で論理「1」を有しなければならないので、レ
ベルrLJを含むパケットが転送されない事態が生じる
。この欠点は、次に述べる代替方式で是正される。
第6A図ないし第6L図は、バッファ感知方式を用いる
際の、各サイクルでのパケット交換を示す。
第6A図は、使用可能順方式と同じ、各処理要素中の初
期パケット割当てを示す。第6B図は、0行目の交換が
完了した後のパケット位置を示す。
使用可能順方式とバッファ感知方式の違いが明らかにな
るのは、たとえばバッフ1感知方式では処理要素Oから
のパケットが処理要素1に配送されないが、使用可能順
方式を使うと、2つのパケットが処理要素1に存在する
ときである。交換手順の全体を通じてメツシュ内の他の
処理要素を比較するときも、同様の違いが出てくる。
第6C図は、1行目の交換後のパケット位置を示す。第
6D図は、後続の0列目の交換後のパケット位置を示す
。第6E図は、1列目の交換後のパケット位置を示す。
処理要素が、最終宛先に到着したパケットを含むとき、
パケットを転送するために論理「1」がすべてのアドレ
ス・ビット中にあるかのようである。同様に、空の処理
要素は、パケットを転送するために論理「1」がすべて
のアドレス・ビット中にあるかのように処理される。
第6F図ないし第6H図は、パケットの0行目の交換、
1行目の交換、0列目の交換を順次反復するところを示
す。後続の1列目の交換によってパケットは移動しない
ので、第6エ図に、後続の0行目の交換後のパケット位
置を示す。第61図ないし第6M図は、1行目の交換、
0行目の交換、0列目の交換、1列目の交換のシーケン
ス後のパケット位置を示す。その後、第1図の任意グラ
フに基づいて、すべてのパケットが当該の各最終宛先に
配送される。省略した交換では、パケットの移動はない
強制交換方式 もう一つの代替方式は強制交換方式と呼ばれる。
強制交換方式では、両方の隣接要素が交換と同意したと
きだけ、すなわち両方の隣接要素がi番目のビットに論
理「1」を有するときだけパケットが交換されるという
バッファ感知方式と違って、一方の隣接要素だけがパケ
ットを転送した場合、すなわち一方の処理要素だけがi
番目のビットに論理「1」を有する場合に、交換が強制
される。
強制交換アルゴリズムは、次の擬似コードで示される。
段階1:パケットの準備 グラフの各リンクごとにソース・ノードを次のように表
わす。
(S rms rk−t、、、 S rot  S C
kS Ck−1,、、S Co)(srはソース・ノー
ドの行を表わし、SCはソース・ノードの列を表わす)
。宛先ノードを次のように表わす。
(d rhd rk−+、、、 d ro、 d ck
d ck−+、、、 d co)下記のパケットを得る
packet (i)=s r+X0Rdr+pack
et (i+k):=sc+X0Rdc+Wビットのデ
ータをpacket (2に+1)ないし1)acke
 t (2に+w)として付加する。
段階2:パケットの交換 while (buffer  not  empty
 O) (for (i=o;i<k:i++) (t
emp  packet = i−row  exch
ange (戸if ((temp  packet(
i) ORpacket(i)) ” 1) (pac
ket =temp  packet;packet(
i) =INV (packet(i)戸1se packet :old  packetifor (
j=に;j<2に;j++) (temp  pack
et = j−col  exchanged;if 
((tea+p  packet(j) ORpack
et(j)”1)) (packet = temp 
 packet;packetl) =I間(pack
et(j))i1se packet = old  packet;バッファ
感知方式と同様に、この方式では、ノ寸ケットを交換す
るために1つのバッファ位置tea+p−packet
 L/か使わず、バッファ・メモリの飽和が起こらない
ことが保証される。
1つの隣接要素だけがパケットを交換するとき、強制交
換方式は、受取り側隣接要素の出費を犠牲にして、その
1つの隣接要素の転送を容易にするため、交換を起こさ
せる。受取り側の隣接パケットは、メツシュ内でその最
終宛先から離れた所にある処理要素に配送される。論理
「1」を論理rOJに反転すると、パケットがその最終
宛先に近づき、その逆に論理「0」を論理「1」に反転
すると、パケットがその最終宛先から離れるので、反転
関数INVが上記の活動を反映する。
第7A図ないし第7L図は、強制交換方式を用いた場合
の各サイクルでのパケット交換を示す。
第7A図は、第5A図および第6A図と同じ、各処理要
素Oないし15中の初期パケット割当てを示す。第7B
図は、0行目の交換後のノ寸ケット位置を示す。たとえ
ば、強制交換方式による処理要素Oと1の間のパケット
交換は、前記のどちらの方式とも異なることに留意され
たい。この方式では、処理要素Oと処理要素1のパケッ
ト交換は、処理要素0中のパケットの最下位ビットに論
理「1」があることによる。バッファ感知方式では、処
理要素1中のパケットの最下位ビットが論理「0」を含
み、両方の隣接要素が交換に同意しないので、交換は行
なわれない。使用可能順方式では、処理要素Oからのパ
ケットが処理要素1に配送され、処理要素1中のパケッ
トは処理要素1中に留まる。交換手順の全体を通して、
メツシュ内の他の処理要素ではパケット交換が異なる。
第70図ないし第7E図は、順に1行目の交換、0列目
の交換、1列目の交換を施した後のパケット位置を示す
。0行目の交換、1行目の交換、0列目の交換、1行目
の交換の順次サイクルが繰り返され、そのパケット交換
の結果をそれぞれ第7F図ないし第7I図に示す。
このシーケンスが3回繰り返され、強制交換方式の結果
を第7J図ないし第7L図に示す。3回目の0列目の交
換後、パケットは第1図の任意グラフに基づく当該の各
宛先に到着している。
以上の本発明の説明から、当業者には現況技術に対する
改良点は自明であろう。単一命令複数アドレス回路が単
一命令複数データストリーム・ポリモルフイック・メツ
シュ配列とあいまって、共平面低次相互接続グラフを有
する任意次数グラフが実現できる。すなわち、4次の共
平面相互接続ネットワークを備えたポリモルフイック・
メツシュ・アーキテクチャによって、どんなアルゴリズ
ムでも実現できる。
本発明は、大規模並列プロセッサの実装に著しい利益を
与える。処理要素間のポリモルフイック・メツシュ相互
接続は、VLSIチップやプリント回路板など通常の2
次元電子実装技術と整合性がある。アーキテクチャ・グ
ラフと実装技術間の直接マツピングにより、チップなら
びにプリント回踏板の面積の非常に効率のよい利用がは
かれる。
その上、物理的相互接続は通常のもので4方向に延び、
その結果、局所的に隣接する処理要素相互間の配線距離
が短くなり、したがって速度が増大する。互いに論理的
に関連する隣接処理要素は、物理的に近接しているので
、処理要素間の通信は1次キューブなど他の高次グラフ
よりもずっと速い。実装密度が高くなることによって速
度の増大がさらに強まる。要するに、毎秒当りのビット
数で表わして、従来の既知システムよりも多数のパケッ
トが通信できる。
システム内の相互接続を追加して4方向に拡大すること
によりシステムの大きさが拡大でき、したがってモジュ
ール式実装が実現できる。
以上、ポリモルフイック・メツシュによる任意グラフで
使用される回路及びそうした任意グラフで表わされるア
ルゴリズムを処理するいくつかの方法について説明し図
示してきたが、当業者には自明なように、頭記の特許請
求の範囲によってのみ限定される本発明の広い範囲から
逸脱せずに、変更及び修正を加えることが可能である。
F0発明の効果 本発明を用いれば、SIMD方式の並列処理計算機にお
いて処理要素間の任意の結合関係を効率的に実現できる
【図面の簡単な説明】
第1図は、制御装置と外部バッファ・メモリを伴う処理
要素のポリモルフイック・メツシュ・ネットワークの概
略図である。 第2図は、アルゴリズムの任意グラフの概略図である。 第3図は、パケットのフォーマットを示す図である。 第4図は、2次元メモリと優先順位回路とレジスタを含
む単一命令複数アドレス回路の概略図である。 第5A図ないし第5H図は、本発明の一方法に基づく処
理要素相互間のパケット転送の概略図である。 第6A図ないし第6M図は、本発明の別の方法に基づく
処理要素相互間のパケット転送の概略図である。 第7A図ないし第7L図は、本発明の第3の方法に基づ
く処理要素相互間のパケット転送の概略図である。 20・・・・ポリモルフイック・メツシュ配列、22・
・・・処理要素、24・・・・外部メモリ、25・・・
・パケット、26・・・・パケット・バッファ、28・
・・・制御装置、30・・・・SIMA回路、32・・
・・内容アドレス可能メモリ、34・・・・優先順位回
路、36・・・・レジスタ、46・・・・アドレス混合
回路、48・・・・存在フラグ回路、50・・・・マル
チプレクサ。 出願人  インターナショナル・ビジネス・マシーンズ
・コーポレーション 代理人  弁理士  頓  宮  孝 (外1名) FIG、3 FIG、5B FIG、5E FIG、5F FIG、6B FIG、6E FIG、6F FIG、6に FIG、7A FIG、7H

Claims (1)

  1. 【特許請求の範囲】 個々にアドレス可能な処理要素の1つから、個々にアド
    レス可能な処理要素の他のものへ、アドレス情報及び関
    連データ情報を含むパケットにより定められるとおりに
    動作サイクル中に情報が転送されるアレイ処理システム
    であって、 単一命令複数データストリーム・モードで動作可能な、
    複数の個々にアドレス可能な処理要素と、順次の動作サ
    イクル中に上記処理要素のすべてに関して命令及びアド
    レスを供給する制御装置と、内容アドレス可能なパケッ
    ト・バッファ・メモリを含み、上記制御装置及び上記複
    数の処理要素に接続され、各動作サイクル中に各処理要
    素が上記制御装置からの上記アドレスの内容に応答して
    上記バッファ・メモリ中のそれぞれのパケットにアクセ
    スすることを可能にする単一命令複数アドレス装置とを
    有する、 アレイ処理システム。
JP3852789A 1988-05-13 1989-02-20 アレイ処理システム Expired - Lifetime JPH0679344B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US19399088A 1988-05-13 1988-05-13
US193990 1988-05-13

Publications (2)

Publication Number Publication Date
JPH0217582A true JPH0217582A (ja) 1990-01-22
JPH0679344B2 JPH0679344B2 (ja) 1994-10-05

Family

ID=22715886

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3852789A Expired - Lifetime JPH0679344B2 (ja) 1988-05-13 1989-02-20 アレイ処理システム

Country Status (4)

Country Link
EP (1) EP0341406B1 (ja)
JP (1) JPH0679344B2 (ja)
CA (1) CA1311307C (ja)
DE (1) DE68922782T2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109150584B (zh) * 2018-07-04 2022-02-25 北京中创腾锐技术有限公司 一种基于simd指令的为网络分组分类提供加速支持的方法

Also Published As

Publication number Publication date
DE68922782D1 (de) 1995-06-29
CA1311307C (en) 1992-12-08
EP0341406A2 (en) 1989-11-15
EP0341406B1 (en) 1995-05-24
EP0341406A3 (en) 1992-05-06
DE68922782T2 (de) 1995-11-30
JPH0679344B2 (ja) 1994-10-05

Similar Documents

Publication Publication Date Title
JP6856612B2 (ja) 多層相互接続による分散型プロセッサを有する処理システム
KR900006791B1 (ko) 패킷 스위치식 다중포트 메모리 n×m 스위치 노드 및 처리 방법
EP0132926B1 (en) Parallel processor
US11016930B2 (en) Digital processing connectivity
US5533198A (en) Direction order priority routing of packets between nodes in a networked system
US4891751A (en) Massively parallel vector processing computer
US5797035A (en) Networked multiprocessor system with global distributed memory and block transfer engine
US5535408A (en) Processor chip for parallel processing system
Chen et al. A fault-tolerant routing scheme for meshes with nonconvex faults
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
US7673118B2 (en) System and method for vector-parallel multiprocessor communication
JPH07141304A (ja) メモリアレーを用いた並列演算装置
JPS6340383B2 (ja)
JPS6360579B2 (ja)
US5050069A (en) Method and apparatus for simulating m-dimension connection networks in and n-dimension network where m is less than n
JPH0668053A (ja) 並列計算機
US5257395A (en) Methods and circuit for implementing and arbitrary graph on a polymorphic mesh
US20230305991A1 (en) Network Computer with Two Embedded Rings
JPH0217582A (ja) アレイ処理システム
JPS62205452A (ja) 記憶制御方式
JPS60175174A (ja) 並列デ−タ転送方式
JPS63217462A (ja) 2次元メッシュ・アレイの処理要素
JP3609908B2 (ja) 計算機接続装置