JPH0679344B2 - アレイ処理システム - Google Patents
アレイ処理システムInfo
- Publication number
- JPH0679344B2 JPH0679344B2 JP3852789A JP3852789A JPH0679344B2 JP H0679344 B2 JPH0679344 B2 JP H0679344B2 JP 3852789 A JP3852789 A JP 3852789A JP 3852789 A JP3852789 A JP 3852789A JP H0679344 B2 JPH0679344 B2 JP H0679344B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- exchange
- processing element
- row
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures 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/8023—Two 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)
Description
【発明の詳細な説明】 A.産業上の利用分野 本発明は、あらかじめ定められたグラフを表わすアルゴ
リズムではなくて任意のグラフを表わすアルゴリズムに
より処理を可能にする内容アドレス可能パケット・バッ
ファ・メモリを含む単一命令複数アドレス(SIMA)機構
を含めることによる、単一命令複数データストリーム
(SIMD)ポリモルフィック(多形)・メッシュ・ネット
ワーク・アレイ処理システムの改良に関するものであ
る。
リズムではなくて任意のグラフを表わすアルゴリズムに
より処理を可能にする内容アドレス可能パケット・バッ
ファ・メモリを含む単一命令複数アドレス(SIMA)機構
を含めることによる、単一命令複数データストリーム
(SIMD)ポリモルフィック(多形)・メッシュ・ネット
ワーク・アレイ処理システムの改良に関するものであ
る。
ネットワーク設計では、主たる目的は、命令伝送速度及
びタスク実行速度を増大させ、同時にネットワークの並
列性を高めることである。本発明の好ましい実施例で
は、従来の構成よりも速度を増大させネットワークの並
列性を高めるため、メッシュ・ネットワーク相互接続を
変更せずに、単一命令複数アドレス機能によって、通常
のポリモルフイック・メッシュ構成の第4度(fourth
degree)単一命令複数データストリーム・ネットワーク
・アレイが改良される。
びタスク実行速度を増大させ、同時にネットワークの並
列性を高めることである。本発明の好ましい実施例で
は、従来の構成よりも速度を増大させネットワークの並
列性を高めるため、メッシュ・ネットワーク相互接続を
変更せずに、単一命令複数アドレス機能によって、通常
のポリモルフイック・メッシュ構成の第4度(fourth
degree)単一命令複数データストリーム・ネットワーク
・アレイが改良される。
B.従来技術 1986年8月29日出願の米国特許出願第06/902343号明細
書(特願昭62−132016)には、各処理要素内部でメッシ
ュ・ネットワークによって物理的に相互接続されたN×
N個の処理要素を含み、ポリモルフィック制御装置によ
ってアーキテクチャがツリー、正四面体、立方体等の多
くの通常のグラフを命令の制御下で動的に誘導できる、
SIMD並列アーキテクチャ用のポリモルフィック・メッシ
ュ・ネットワークが記載されている。影響を受ける処理
要素が隣接していない場合、並列性は比較的低い。
書(特願昭62−132016)には、各処理要素内部でメッシ
ュ・ネットワークによって物理的に相互接続されたN×
N個の処理要素を含み、ポリモルフィック制御装置によ
ってアーキテクチャがツリー、正四面体、立方体等の多
くの通常のグラフを命令の制御下で動的に誘導できる、
SIMD並列アーキテクチャ用のポリモルフィック・メッシ
ュ・ネットワークが記載されている。影響を受ける処理
要素が隣接していない場合、並列性は比較的低い。
C.発明が解決しようとする問題点 SIMDで生成されるグラフは、イメージ処理、コンピュー
タ・ビジョン、グラフィックの各アプリケーションで有
用な広範囲のアルゴリズをカバーしている。しかし、こ
れら及びその他のアプリケーションには、通常のグラフ
の範囲から外れ、任意のグラフによってしか表現できな
いアルゴリズムがある。
タ・ビジョン、グラフィックの各アプリケーションで有
用な広範囲のアルゴリズをカバーしている。しかし、こ
れら及びその他のアプリケーションには、通常のグラフ
の範囲から外れ、任意のグラフによってしか表現できな
いアルゴリズムがある。
D.問題点を解決するための手段 各アルゴリズムは独自のタイプのグラフをもたらすの
で、可能なすべてのグラフと合致できる一般的な並列ア
ーキテクチャはない。本発明は、ポリモルフィック・メ
ッシュ・アーキテクチャ内の処理要素が、任意グラフに
よって規定されるように相互間の通信を確立できるよう
にする、いくつかの方法及び回路について記述する。本
発明は、合致アドレスをもつすべての処理要素をアドレ
スするためのバッファ・メモリを提供する。この機能
は、単一命令複数アドレス機能である。
で、可能なすべてのグラフと合致できる一般的な並列ア
ーキテクチャはない。本発明は、ポリモルフィック・メ
ッシュ・アーキテクチャ内の処理要素が、任意グラフに
よって規定されるように相互間の通信を確立できるよう
にする、いくつかの方法及び回路について記述する。本
発明は、合致アドレスをもつすべての処理要素をアドレ
スするためのバッファ・メモリを提供する。この機能
は、単一命令複数アドレス機能である。
2次元メモリと優先順位回路とレジスタを含むSIMA回路
が、データ回線を介して処理要素のポリモルフィック・
メッシュ・ネットワークと対話する。制御装置がアドレ
ス信号とモード信号を供給する。ポリモルフィック・メ
ッシュの処理には、各要素がその行または列の隣接要素
の情報を交換または転送することが必要である。この移
動は、アドレスとデータを含むパケットによって案内さ
れる。SIMA回路はN個のアドレスを生成し、そのそれぞ
れが、アドレスのi番目の位置に適正なビット値をもつ
パケットを含むバッファ・メモリを指す。パケットの交
換あるいは転送は、使用する転送方式に応じて実行され
る。
が、データ回線を介して処理要素のポリモルフィック・
メッシュ・ネットワークと対話する。制御装置がアドレ
ス信号とモード信号を供給する。ポリモルフィック・メ
ッシュの処理には、各要素がその行または列の隣接要素
の情報を交換または転送することが必要である。この移
動は、アドレスとデータを含むパケットによって案内さ
れる。SIMA回路はN個のアドレスを生成し、そのそれぞ
れが、アドレスのi番目の位置に適正なビット値をもつ
パケットを含むバッファ・メモリを指す。パケットの交
換あるいは転送は、使用する転送方式に応じて実行され
る。
内容アドレス可能メモリ及び2次元メモリは、当業者に
は周知である。内容アドレス可能メモリを使って、単一
命令複数データストリーム・アレイ・プロセッサ内の単
一命令から複数アドレスを引き出すことが、とくにパケ
ットの交換及び転送に適用する場合の本発明の基礎であ
る。
は周知である。内容アドレス可能メモリを使って、単一
命令複数データストリーム・アレイ・プロセッサ内の単
一命令から複数アドレスを引き出すことが、とくにパケ
ットの交換及び転送に適用する場合の本発明の基礎であ
る。
本発明の主目的は、ポリモルフィック・メッシュによっ
て任意グラフを処理できるようにする、単一命令複数ア
ドレス回路を提供することにある。
て任意グラフを処理できるようにする、単一命令複数ア
ドレス回路を提供することにある。
本発明の第2の目的は、命令から1つのアドレスを受け
取り、バッファ・メモリの異なる位置にある複数のパケ
ットへのアクセスを可能にする複数出力アドレスを生成
する、単一命令複数アドレス回路を提供することにあ
る。その際、複数アドレス及びパケットの数は、ポリモ
ルフィック・メッシュ・システム中の処理要素の数に比
例する。
取り、バッファ・メモリの異なる位置にある複数のパケ
ットへのアクセスを可能にする複数出力アドレスを生成
する、単一命令複数アドレス回路を提供することにあ
る。その際、複数アドレス及びパケットの数は、ポリモ
ルフィック・メッシュ・システム中の処理要素の数に比
例する。
本発明の第3の目的は、命令中で出される所定のパター
ンによってアドレスできるバッファ中の任意の位置に記
憶された所定のパターンと合致するパケットが存在する
ことを検出する、単一命令複数アドレス回路を提供する
ことにある。
ンによってアドレスできるバッファ中の任意の位置に記
憶された所定のパターンと合致するパケットが存在する
ことを検出する、単一命令複数アドレス回路を提供する
ことにある。
本発明の第4の目的は、ポリモルフィック・メッシュ・
アーキテクチャ内の処理要素が任意グラフによって規定
される通信を確立できるように、利用可能なものから順
にバッファ・メモリ中のパケットを交換する方法を提供
することにある。
アーキテクチャ内の処理要素が任意グラフによって規定
される通信を確立できるように、利用可能なものから順
にバッファ・メモリ中のパケットを交換する方法を提供
することにある。
本発明の第5の目的は、ポリモルフィック・メッシュ・
アーキテクチャ内の処理要素が任意グラフによって規定
される通信を確立できるように、バッファ感知方式でバ
ッファ・メモリ中のパケットを交換する方法を提供する
ことにある。
アーキテクチャ内の処理要素が任意グラフによって規定
される通信を確立できるように、バッファ感知方式でバ
ッファ・メモリ中のパケットを交換する方法を提供する
ことにある。
本発明の第6の目的は、ポリモルフィック・メッシュ・
アーキテクチャ内の処理要素が任意グラフによって規定
される通信を確立できるように、強制交換方式でバッフ
ァ・メモリ中のパケットを交換する方法を提供すること
にある。
アーキテクチャ内の処理要素が任意グラフによって規定
される通信を確立できるように、強制交換方式でバッフ
ァ・メモリ中のパケットを交換する方法を提供すること
にある。
本発明のその他の目的は、下記の説明を添付の図面と併
せて読めばさらにはっきりする。
せて読めばさらにはっきりする。
E.実施例 第2図には、アルゴリズムの任意のグラフの概略図が示
されている。どのコンピュータ・アルゴリズムも、グラ
フで表わすことができる。その際に、ノードはタスクま
たはプロセスを表わし、矢印は相互接続する通信を表わ
す。並列プロセッサで実現する場合、ノードはハードウ
ェアの処理要素(PE)に割り当てられ、矢印は処理要素
相互間の通信通路で実現される。
されている。どのコンピュータ・アルゴリズムも、グラ
フで表わすことができる。その際に、ノードはタスクま
たはプロセスを表わし、矢印は相互接続する通信を表わ
す。並列プロセッサで実現する場合、ノードはハードウ
ェアの処理要素(PE)に割り当てられ、矢印は処理要素
相互間の通信通路で実現される。
第1図は、N×N個の処理要素22のポリモルフィック
(多形)・メッシュ配列20を示す。このポリモルフィッ
ク・メッシュ配列中で、各処理要素は、座標(r、c)
で表わされる特定の行及び列にある。ただし、rとcは
共に0からn−1までの範囲にあり、2つのlog(N)
ビット・ストリング、すなわちrk、rk-1、…、r、r0及
びCk、Ck-1、…、c、c0として表わすことができ、K=
log(N)である。
(多形)・メッシュ配列20を示す。このポリモルフィッ
ク・メッシュ配列中で、各処理要素は、座標(r、c)
で表わされる特定の行及び列にある。ただし、rとcは
共に0からn−1までの範囲にあり、2つのlog(N)
ビット・ストリング、すなわちrk、rk-1、…、r、r0及
びCk、Ck-1、…、c、c0として表わすことができ、K=
log(N)である。
処理要素PE(s、t)の0行目の隣接要素は、処理要素
PE(p、q)である。ただし、sとpはs0及びp0のみが
異なる。同様に処理要素PE(s、t)の0列目の隣接要
素は、処理要素PE(p、q)である。ただし、tとqは
t0及q0のみが異なる。定義を一般化すると、処理要素PE
(s、t)のi行目の隣接要素は、sとpがsi及びpiの
みで異なる処理要素PE(p、q)である。同様に処理要
素PE(s、t)のi列目の隣接要素は、tとqがti及び
qiのみで異なる処理要素PE(p、q)である。
PE(p、q)である。ただし、sとpはs0及びp0のみが
異なる。同様に処理要素PE(s、t)の0列目の隣接要
素は、処理要素PE(p、q)である。ただし、tとqは
t0及q0のみが異なる。定義を一般化すると、処理要素PE
(s、t)のi行目の隣接要素は、sとpがsi及びpiの
みで異なる処理要素PE(p、q)である。同様に処理要
素PE(s、t)のi列目の隣接要素は、tとqがti及び
qiのみで異なる処理要素PE(p、q)である。
本発明によれば、各処理要素は、そのi行目及びi列目
の隣接要素と特定の方法で情報を交換する必要がある。
0行目及び0列目の隣接要素と情報を交換するには、メ
ッシュ配列の物理的相互接続が用いられる。隣接要素
は、隣接する行または列にあるからである。1行目(ま
た1列目)の隣接要素の場合、隣接要素相互間の通信距
離は2行(または2列)である。たとえば3=0011の1
行目の隣接要素は、行1=0001にある。したがって、交
換には、メッシュ内の位置(0、3)にある処理要素3
からメッシュ内の位置(0、1)にある宛先処理要素1
の方へ行方向に2回データをシフトさせることが必要で
ある。このようなシフトを、各列(または行)中のデー
タが同じ方向に2列(または2行)移動するように指定
する「ホップ方向2」と呼ぶ。同様に、i行目またはi
列目の隣接要素相互間の交換には、「ホップ方向2i」が
必要である。ただし、「方向」は、メッシュ配列20内の
処理要素22の4つの物理リンクを表わす東西南北のどれ
でもよい。
の隣接要素と特定の方法で情報を交換する必要がある。
0行目及び0列目の隣接要素と情報を交換するには、メ
ッシュ配列の物理的相互接続が用いられる。隣接要素
は、隣接する行または列にあるからである。1行目(ま
た1列目)の隣接要素の場合、隣接要素相互間の通信距
離は2行(または2列)である。たとえば3=0011の1
行目の隣接要素は、行1=0001にある。したがって、交
換には、メッシュ内の位置(0、3)にある処理要素3
からメッシュ内の位置(0、1)にある宛先処理要素1
の方へ行方向に2回データをシフトさせることが必要で
ある。このようなシフトを、各列(または行)中のデー
タが同じ方向に2列(または2行)移動するように指定
する「ホップ方向2」と呼ぶ。同様に、i行目またはi
列目の隣接要素相互間の交換には、「ホップ方向2i」が
必要である。ただし、「方向」は、メッシュ配列20内の
処理要素22の4つの物理リンクを表わす東西南北のどれ
でもよい。
第3図に、情報パケットのフォーマットを示す。i行
(または列)目の交換は、パケットの行アドレス19及び
パケットの列アドレス21及び交換すべきデータ23からな
るパケット25によって制御される。パケット25自体は、
ポリモルフィック・システムの外部メモリ24に記憶され
る。外部メモリ24は、メッシュ配列20の各処理要素22と
関連するパケットをメモリ24の所定の部分に記憶するよ
うに構成されている。パケット・バッファ26と呼ばれる
外部メモリ24の部分は、関連する処理要素のパケットを
内容アドレス可能記憶位置に記憶する。以下で説明する
SIMA回路は、この内容アドレス可能メモリの概念に基づ
いて、バッファ中のパケットにアクセスするために1つ
のアドレスしか提供できないSIMDアーキテクチャの制限
を緩和する。SIMA回路は、システム内のN個の処理要素
が、パケット・バッファ26の異なるN個の位置に記憶さ
れている当該の各パケットにアクセスできるようにす
る。SIMA回路は、SIMDアーキテクチャの能力を拡張し、
ポリモルフィック・メッシュ配列20で任意のグラフを実
現しやすくする。
(または列)目の交換は、パケットの行アドレス19及び
パケットの列アドレス21及び交換すべきデータ23からな
るパケット25によって制御される。パケット25自体は、
ポリモルフィック・システムの外部メモリ24に記憶され
る。外部メモリ24は、メッシュ配列20の各処理要素22と
関連するパケットをメモリ24の所定の部分に記憶するよ
うに構成されている。パケット・バッファ26と呼ばれる
外部メモリ24の部分は、関連する処理要素のパケットを
内容アドレス可能記憶位置に記憶する。以下で説明する
SIMA回路は、この内容アドレス可能メモリの概念に基づ
いて、バッファ中のパケットにアクセスするために1つ
のアドレスしか提供できないSIMDアーキテクチャの制限
を緩和する。SIMA回路は、システム内のN個の処理要素
が、パケット・バッファ26の異なるN個の位置に記憶さ
れている当該の各パケットにアクセスできるようにす
る。SIMA回路は、SIMDアーキテクチャの能力を拡張し、
ポリモルフィック・メッシュ配列20で任意のグラフを実
現しやすくする。
従来のSIMD並列アーキテクチャでは、第2図に示すよう
に、制御装置28からのアドレス信号によって外部メモリ
24がアドレスされる。その結果、同じバッファ位置にあ
るパケットが交換のため選択される。同じバッファ記憶
位置にあるパケットがi行目またはi列目の隣接要素で
ある確率はかなり低い。その結果、従来のSIMDアドレッ
シング方式は、パケットを交換する際に並列性が非常に
小さい。
に、制御装置28からのアドレス信号によって外部メモリ
24がアドレスされる。その結果、同じバッファ位置にあ
るパケットが交換のため選択される。同じバッファ記憶
位置にあるパケットがi行目またはi列目の隣接要素で
ある確率はかなり低い。その結果、従来のSIMDアドレッ
シング方式は、パケットを交換する際に並列性が非常に
小さい。
並列性を高めるには、すべてのバッファ・メモリについ
て、単一命令で任意の合致パケットが同時にアドレスさ
れるようなアドレッシング方式が必要である。第4図に
示すSIMA回路は、この機能を実行する。
て、単一命令で任意の合致パケットが同時にアドレスさ
れるようなアドレッシング方式が必要である。第4図に
示すSIMA回路は、この機能を実行する。
第4図に示すSIMA回路30は、2次元の内容アドレス可能
メモリ32と優先順位回転34とレジスタ36を含んでいる。
SIMA回路30は、制御装置28からの入力信号として、導線
38を介してアドレス信号を、また導線40を介してモード
制御信号を受け取る。モード制御信号は、1つのアドレ
スで1つのデータ出力が得られる通常のメモリ・アドレ
ス・モード、または所与のデータで複数のアドレスが得
られる内容アドレス可能モードをもたらし、後者が好ま
しい。SIMA回路30は、導線42を介するデータ出力信号に
よって、アレイ20中の各処理要素22と通信する。回路30
の機能は、それぞれi番目の位置に合致するビットを有
するパケットを含むバッファ・メモリを指す、N個のア
ドレスを生成することである。
メモリ32と優先順位回転34とレジスタ36を含んでいる。
SIMA回路30は、制御装置28からの入力信号として、導線
38を介してアドレス信号を、また導線40を介してモード
制御信号を受け取る。モード制御信号は、1つのアドレ
スで1つのデータ出力が得られる通常のメモリ・アドレ
ス・モード、または所与のデータで複数のアドレスが得
られる内容アドレス可能モードをもたらし、後者が好ま
しい。SIMA回路30は、導線42を介するデータ出力信号に
よって、アレイ20中の各処理要素22と通信する。回路30
の機能は、それぞれi番目の位置に合致するビットを有
するパケットを含むバッファ・メモリを指す、N個のア
ドレスを生成することである。
2次元メモリ32は、水平方向にF個のバッファ、縦方向
にKビットで編成されている。従来モードでは、メモリ
32が水平方向にアドレスされて、データ・ビットをバッ
ファ・メモリ32に書き込み、またはそこから読み取るこ
とができる。内容アドレス可能モードでは、アドレスが
縦方向に解釈されて、特定のビット位置、たとえばi行
目のパケットを検出する場合はi番目の位置が選択され
る。その結果、F個のバッファすべてのi番目のビット
が論理「1」と比較され、合致したときは、合致した行
に対する垂直ビット線(VBL)44が論理「1」として反
映される。各バッファ・メモリについて1本ずつ、合計
F本の垂直ビット線が優先順位回路34に接続されてい
る。
にKビットで編成されている。従来モードでは、メモリ
32が水平方向にアドレスされて、データ・ビットをバッ
ファ・メモリ32に書き込み、またはそこから読み取るこ
とができる。内容アドレス可能モードでは、アドレスが
縦方向に解釈されて、特定のビット位置、たとえばi行
目のパケットを検出する場合はi番目の位置が選択され
る。その結果、F個のバッファすべてのi番目のビット
が論理「1」と比較され、合致したときは、合致した行
に対する垂直ビット線(VBL)44が論理「1」として反
映される。各バッファ・メモリについて1本ずつ、合計
F本の垂直ビット線が優先順位回路34に接続されてい
る。
優先順位回路34は、論理「1」が存在する垂直ビット線
の最低のインデックスを解読する。解読された最低のイ
ンデックスは、制御装置28によって規定される合致ビッ
ト位置を有するパケットのアドレスに対応する。優先順
位回路は市販されており、一般の内容アドレス可能メモ
リ及び浮動小数点演算の事後正規化に使われてきた。好
ましい優先順位回路は、フェアチャイルド・カメラ・ア
ンド・インストルメント社(Fairchild Camera and Ins
trument Company)から装置番号F100165として市販され
ているものである。
の最低のインデックスを解読する。解読された最低のイ
ンデックスは、制御装置28によって規定される合致ビッ
ト位置を有するパケットのアドレスに対応する。優先順
位回路は市販されており、一般の内容アドレス可能メモ
リ及び浮動小数点演算の事後正規化に使われてきた。好
ましい優先順位回路は、フェアチャイルド・カメラ・ア
ンド・インストルメント社(Fairchild Camera and Ins
trument Company)から装置番号F100165として市販され
ているものである。
メモリ32と優先順位回路34は、単一命令の制御下で合致
パケットの複数のアドレスを得る能力をもたらす。それ
らのアドレスは、各処理要素中に分散されたレジスタ36
に記憶される。アドレス混合回路46は、バッファ・メモ
リに正しくアクセスするため、レジスタ36を制御装置28
から供給されるアドレスによってオフセットさせる。ア
ドレス混合回路46はまた、レジスタ36と制御装置28から
のアドレス信号との多重化を制御する。
パケットの複数のアドレスを得る能力をもたらす。それ
らのアドレスは、各処理要素中に分散されたレジスタ36
に記憶される。アドレス混合回路46は、バッファ・メモ
リに正しくアクセスするため、レジスタ36を制御装置28
から供給されるアドレスによってオフセットさせる。ア
ドレス混合回路46はまた、レジスタ36と制御装置28から
のアドレス信号との多重化を制御する。
優先順位回路34は、合致回路のアドレスを供給する以外
に、同じバッファ中に複数の合致パケットがあるという
衝突を解決する。優先順位回路34の出力線は、バッファ
・メモリ内に合致パケットが存在することを示す存在フ
ラグ回路48に接続されている。存在フラグ回路の出力
は、交換すべきパケットが存在するかどうかを示す指標
として当該の処理要素に送られる。マルチプレクサ50
は、存在フラグ回路48とメモリ32の間で出力を切り替え
る。
に、同じバッファ中に複数の合致パケットがあるという
衝突を解決する。優先順位回路34の出力線は、バッファ
・メモリ内に合致パケットが存在することを示す存在フ
ラグ回路48に接続されている。存在フラグ回路の出力
は、交換すべきパケットが存在するかどうかを示す指標
として当該の処理要素に送られる。マルチプレクサ50
は、存在フラグ回路48とメモリ32の間で出力を切り替え
る。
内容アドレス可能メモリは市販されており、たとえばフ
ェアチャイルド・カメラ・アンド・インストルメント社
から装置番号F100142として市販されている。以下で説
明する本発明は、内容アドレス可能メモリ内で単一命令
から複数のアドレスを引き出し、SIMDアーキテクチャに
パケット交換を適用することに関する。
ェアチャイルド・カメラ・アンド・インストルメント社
から装置番号F100142として市販されている。以下で説
明する本発明は、内容アドレス可能メモリ内で単一命令
から複数のアドレスを引き出し、SIMDアーキテクチャに
パケット交換を適用することに関する。
処理要素相互間でのデータ・パケットの交換が容易にす
るSIMA回路30について説明したが、この交換を実施する
方法には、3つの代替方式がある。
るSIMA回路30について説明したが、この交換を実施する
方法には、3つの代替方式がある。
第1図の任意グラフを参照すると、下記の表は第1図の
16個の処理要素の初期パケット準備を示す。ソース処理要素 宛先処理要素 XOR<3:0> PE= 0 0000 PE=11 1011 1011 PE= 1 0000 PE= 7 0111 0110 PE= 2 0010 PE=15 1111 1101 PE= 3 0011 PE=14 1110 1101 PE= 4 0100 PE=13 1101 1001 PE= 5 0101 PE=12 1100 1001 PE= 6 0110 PE= 0 0000 0110 PE= 7 0111 PE= 9 1001 1110 PE= 8 1000 PE= 4 0100 1100 PE= 9 1001 PE= 2 0010 1011 PE=10 1010 PE= 6 0110 1100 PE=11 1011 PE= 5 0101 1110 PE=12 1100 PE= 1 0001 1101 PE=13 1101 PE=13 0011 1110 PE=14 1110 PE=10 1010 0100 PE=15 1111 PE= 8 1000 0111 この表からわかるように、処理要素0のパケットは処理
要素11に配送され、処理要素1のパケットは処理要素7
に配送され、以下同様である。
16個の処理要素の初期パケット準備を示す。ソース処理要素 宛先処理要素 XOR<3:0> PE= 0 0000 PE=11 1011 1011 PE= 1 0000 PE= 7 0111 0110 PE= 2 0010 PE=15 1111 1101 PE= 3 0011 PE=14 1110 1101 PE= 4 0100 PE=13 1101 1001 PE= 5 0101 PE=12 1100 1001 PE= 6 0110 PE= 0 0000 0110 PE= 7 0111 PE= 9 1001 1110 PE= 8 1000 PE= 4 0100 1100 PE= 9 1001 PE= 2 0010 1011 PE=10 1010 PE= 6 0110 1100 PE=11 1011 PE= 5 0101 1110 PE=12 1100 PE= 1 0001 1101 PE=13 1101 PE=13 0011 1110 PE=14 1110 PE=10 1010 0100 PE=15 1111 PE= 8 1000 0111 この表からわかるように、処理要素0のパケットは処理
要素11に配送され、処理要素1のパケットは処理要素7
に配送され、以下同様である。
使用可能順方式は、SIMA回路30が、i行目の交換でバッ
ファ・メモリ内のパケットのi番目の位置に論理「1」
ビットを有する、すなわちpacket(i)=1の最初のパ
ケットを得ることができることに基づくものである。j
列目の交換の場合は、packet(j+k)が論理「1」と
比較されて、合致するパケットの存在とそのバッファ・
アドレスが提供される。
ファ・メモリ内のパケットのi番目の位置に論理「1」
ビットを有する、すなわちpacket(i)=1の最初のパ
ケットを得ることができることに基づくものである。j
列目の交換の場合は、packet(j+k)が論理「1」と
比較されて、合致するパケットの存在とそのバッファ・
アドレスが提供される。
使用可能順方式は、このような擬似コードで表現され
る。
る。
グラフの各リンクごとにソース・ノードを次のように表
わす。
わす。
(srksrk-1…sr0,scksck-1…sc0) (srはソース・ノードの行を表わし、scはソース・ノー
ドの列を表わす)。宛先ノードを次のように表わす。
ドの列を表わす)。宛先ノードを次のように表わす。
(drkdrk-1…dr0,dckdck-1…dc0) 下記のパケットを得る。
packet(i)=sriXORdri packet(i+k)=sciXORdci wビットのデータを、packet(2k+1)〜packet(2k+
w)として付加する。
w)として付加する。
while(duffer not empty()){ for(i=0;i<k;i++){ packet=first−available(i-th row); packet=i-row exchange(); packet(i)=0;} for(j=k;j<2k;j++){ packet=first−available(j-th column); packet=j-col exchange(); packet(j)=0;} } i−row exchange関数は、次のように交換を実行す
る。packet(i)=1のとき、処理要素はパケットをそ
のi行目の隣接要素に送り、その隣接要素は受け取った
パケットをバッファ・メモリに記憶し、packet(i)を
ゼロにリセットする。packet(i)=0の場合は、パケ
ットは送られない。
る。packet(i)=1のとき、処理要素はパケットをそ
のi行目の隣接要素に送り、その隣接要素は受け取った
パケットをバッファ・メモリに記憶し、packet(i)を
ゼロにリセットする。packet(i)=0の場合は、パケ
ットは送られない。
バッファ・メモリが空になるまで、交換プロセスが続
く。このことは、すべてのSIMA回路30の各存在フラグ信
号をORすることによって実施される。バッファの空状態
の詳細な追跡については、交換アルゴリズムの表現を簡
潔にするため、示さない。
く。このことは、すべてのSIMA回路30の各存在フラグ信
号をORすることによって実施される。バッファの空状態
の詳細な追跡については、交換アルゴリズムの表現を簡
潔にするため、示さない。
パケットの交換を第5A図ないし第5H図に概略的に示す。
第5A図には、上記の表に基づく各処理要素0ないし15に
対する初期パケット割当てを示す。処理要素は、ポリモ
ルフィック・メッシュ構成で配列される。
第5A図には、上記の表に基づく各処理要素0ないし15に
対する初期パケット割当てを示す。処理要素は、ポリモ
ルフィック・メッシュ構成で配列される。
第5B図は、使用可能順方式に基づく最初の動作サイクル
で0行目の交換後に交換されたパケットを示す。
で0行目の交換後に交換されたパケットを示す。
かっこ内の数字は、パケットが初期処理要素位置であ
る。その後すべての交換を通じて、そのパケットと同じ
初期処理要素番号を用いる。同じ処理要素中に2個のパ
ケットが示してある場合は、上側のデータはすでに配送
されたパケット、下側のデータはこれから配送すべきパ
ケットである。空の処理要素は、そのアドレスに論理
「1」がないことを示す。上側のパケットがその最終位
置に達しているときは、その処理要素に横棒を付す。上
記の規則を以後のすべての図面に適用する。
る。その後すべての交換を通じて、そのパケットと同じ
初期処理要素番号を用いる。同じ処理要素中に2個のパ
ケットが示してある場合は、上側のデータはすでに配送
されたパケット、下側のデータはこれから配送すべきパ
ケットである。空の処理要素は、そのアドレスに論理
「1」がないことを示す。上側のパケットがその最終位
置に達しているときは、その処理要素に横棒を付す。上
記の規則を以後のすべての図面に適用する。
第5C図は、後続の1行目の交換サイクルの後で交換され
るパケットを示す。第5D図は、後続の0列目の交換サイ
クルの後で交換されるパケットを示す。その後に1行目
の交換サイクルが実行され、その結果を第5E図に示す。
るパケットを示す。第5D図は、後続の0列目の交換サイ
クルの後で交換されるパケットを示す。その後に1行目
の交換サイクルが実行され、その結果を第5E図に示す。
第5E図に示したパケットの0行目の交換では、パケット
はないので、次のサイクルで1行目の交換が実行され、
その結果を第5F図に示す。後続の0行目の交換が次の動
作サイクルで実行され、その結果を第5G図に示す。もう
1回1行目の交換サイクルが完了すると、第5H図に示す
ようにすべてのパケットが配送される。
はないので、次のサイクルで1行目の交換が実行され、
その結果を第5F図に示す。後続の0行目の交換が次の動
作サイクルで実行され、その結果を第5G図に示す。もう
1回1行目の交換サイクルが完了すると、第5H図に示す
ようにすべてのパケットが配送される。
パケットは、第1図の任意グラフに基づいて配送され
た。すなわち、最初PE=0にあったパケットは現在PE=
11にあり、最初PE=1にあったパケットは現在PE=7に
あり、以下同様である。
た。すなわち、最初PE=0にあったパケットは現在PE=
11にあり、最初PE=1にあったパケットは現在PE=7に
あり、以下同様である。
上記の使用可能順方式では、たとえばバッファ・メモリ
の不足のために、隣接要素がパケットを受諾できるかど
うかにかかわらず、パケットが必ずそのi行/列目の隣
接要素に転送されることが必要である。上記の方式で
は、処理要素は追加のパケットが隣接する処理要素から
配送される間、バッファ・メモリ中で配送を待ちなが
ら、多数のパケットを蓄積する。この現象を「競合」と
呼ぶ。競合に伴う1つの問題は、バッファ・メモリの飽
和または涸渇である。
の不足のために、隣接要素がパケットを受諾できるかど
うかにかかわらず、パケットが必ずそのi行/列目の隣
接要素に転送されることが必要である。上記の方式で
は、処理要素は追加のパケットが隣接する処理要素から
配送される間、バッファ・メモリ中で配送を待ちなが
ら、多数のパケットを蓄積する。この現象を「競合」と
呼ぶ。競合に伴う1つの問題は、バッファ・メモリの飽
和または涸渇である。
代替方式では、競合もメモリの飽和もなく、単一のバッ
ファ・メモリしか必要としない。
ファ・メモリしか必要としない。
バッファ感知方式 バッファ感知方式は、使用可能順方式と同じやり方でパ
ケットを準備するが、パケット交換は異なる。
ケットを準備するが、パケット交換は異なる。
バッファ感知方式は、次のような疑似コードで表現され
る。
る。
段階1:パケットの準備 グラフの各リンクごとに、ソース・ノードを次のように
表わす。
表わす。
(srksrk-1…sr0,scksk-1…sc0) (srはソース・ノードの行を表わし、scはソース・ノー
ドの列を表わす)。宛先ノードを次のように表わす。
ドの列を表わす)。宛先ノードを次のように表わす。
(drkdrk-1…dr0,dckdk-1…dc0) 下記のパケットを得る。
packet(i)=sriXORdri packet(i+k)=sciXORdci wビットのデータをpacket(2k+1)ないしpacket(2k
+w)として付加する。
+w)として付加する。
段階2:パケットの交換 while(duffer not empty()){ for(i=0;i<k;i++){ temp packet=i-row exchange(); if((temp packet(i) AND packet(i))==
1){ packet=temp packet; packet(i)=0; } else packet=old packet; } for(j=k;j<2k;j++){ temp packet=j-col exchange(); if((temp packet(j) AND packet(j))==
1){ packet=temp packet; packet(j)=0; } else packet=old packet; } } この方式では、パケット交換の際にパケット・バッファ
の位置を1つしか、すなわちtemp packetしか使用せ
ず、したがってバッファ・メモリの飽和は起こり得な
い。しかし、パケットを交換するには、両方のパケット
が合致位置で論理「1」を有しなければならないので、
レベル「1」を含むパケットが転送されない事態が生じ
る。この欠点は、次に述べる代替方式で是正される。
1){ packet=temp packet; packet(i)=0; } else packet=old packet; } for(j=k;j<2k;j++){ temp packet=j-col exchange(); if((temp packet(j) AND packet(j))==
1){ packet=temp packet; packet(j)=0; } else packet=old packet; } } この方式では、パケット交換の際にパケット・バッファ
の位置を1つしか、すなわちtemp packetしか使用せ
ず、したがってバッファ・メモリの飽和は起こり得な
い。しかし、パケットを交換するには、両方のパケット
が合致位置で論理「1」を有しなければならないので、
レベル「1」を含むパケットが転送されない事態が生じ
る。この欠点は、次に述べる代替方式で是正される。
第6A図ないし第6L図は、バッファ感知方式を用いる際
の、各サイクルでのパケット交換を示す。
の、各サイクルでのパケット交換を示す。
第6A図は、使用可能順方式と同じ、各処理要素中の初期
パケット割当てを示す。第6B図は、0行目の交換が完了
した後のパケット位置を示す。使用可能順方式とバッフ
ァ感知方式の違いが明らかになるのは、たとえばバッフ
ァ感知方式では処理要素0からのパケット処理要素1に
配送されないが、使用可能順方式を使うと、2つのパケ
ットが処理要素1に存在するときである。交換手順の全
体を通じてメッシュ内の他の処理要素を比較するとき
も、同様の違いが出てくる。
パケット割当てを示す。第6B図は、0行目の交換が完了
した後のパケット位置を示す。使用可能順方式とバッフ
ァ感知方式の違いが明らかになるのは、たとえばバッフ
ァ感知方式では処理要素0からのパケット処理要素1に
配送されないが、使用可能順方式を使うと、2つのパケ
ットが処理要素1に存在するときである。交換手順の全
体を通じてメッシュ内の他の処理要素を比較するとき
も、同様の違いが出てくる。
第6C図は、1行目の交換後のパケット位置を示す。第6D
図は、後続の0列目の交換後のパケット位置を示す。第
6E図は、1列目の交換後のパケット位置を示す。
図は、後続の0列目の交換後のパケット位置を示す。第
6E図は、1列目の交換後のパケット位置を示す。
処理要素が、最終宛先に到着したパケットを含むとき、
パケットを転送するために論理「1」がすべてのアドレ
ス・ビット中にあるかのようである。同様に、空の処理
要素は、パケットを転送するために論理「1」がすべて
のアドレス・ビット中にあるかのように処理される。
パケットを転送するために論理「1」がすべてのアドレ
ス・ビット中にあるかのようである。同様に、空の処理
要素は、パケットを転送するために論理「1」がすべて
のアドレス・ビット中にあるかのように処理される。
第6F図ないし第6H図は、パケットの0行目の交換、1行
目の交換、0列目の交換を順次反復するところを示す。
後続の1列目の交換によってパケットは移動しないの
で、第6I図に、後続の0行目の交換後のパケット位置を
示す。第6J図ないし第6M図は、1行目の交換、0行目の
交換、0列目の交換、1列目の交換のシーケンス後のパ
ケット位置を示す。その後、第1図の任意グラフに基づ
いて、すべてのパケットが当該の各最終宛先に転送され
る。省略した交換では、パケットの移動はない。
目の交換、0列目の交換を順次反復するところを示す。
後続の1列目の交換によってパケットは移動しないの
で、第6I図に、後続の0行目の交換後のパケット位置を
示す。第6J図ないし第6M図は、1行目の交換、0行目の
交換、0列目の交換、1列目の交換のシーケンス後のパ
ケット位置を示す。その後、第1図の任意グラフに基づ
いて、すべてのパケットが当該の各最終宛先に転送され
る。省略した交換では、パケットの移動はない。
強制交換方式 もう一つの代替方式は強制交換方式と呼ばれる。強制交
換方式では、両方の隣接要素が交換と同意したときだ
け、すなわち両方の隣接要素がi番目のビットに論理
「1」を有するときだけパケットが交換されるというバ
ッファ感知方式と違って、一方の隣接要素だけがパケッ
トを転送した場合、すなわち一方の処理要素だけがi番
目のビットに論理「1」を有する場合に、交換が強制さ
れる。
換方式では、両方の隣接要素が交換と同意したときだ
け、すなわち両方の隣接要素がi番目のビットに論理
「1」を有するときだけパケットが交換されるというバ
ッファ感知方式と違って、一方の隣接要素だけがパケッ
トを転送した場合、すなわち一方の処理要素だけがi番
目のビットに論理「1」を有する場合に、交換が強制さ
れる。
強制交換アルゴリズムは、次の疑似コードで示される。
段階1:パケットの準備 グラフの各リンクごとにソース・ノードを次のように表
わす。
わす。
(srksrk-1…sr0,scksck-1…sc0) (srはソース・ノードの行を表わし、scはソース・ノー
ドの列を表わす)。宛先ノードを次のように表わす。
ドの列を表わす)。宛先ノードを次のように表わす。
(drkdrk-1…dr0,dckdk-1…dc0) 下記のパケットを得る。
packet(i)=sriXORdri packet(i+k)=sciXORdci wビットのデータをpacket(2k+1)ないしpacket(2k
+w)として付加する。
+w)として付加する。
段階2:パケットの交換 while(duffer not empty()){ for(i=0;i<k;i++){ temp packet=i-row exchange(); if((temp packet(i) OR packet(i))==1)
{ packet=temp packet; packet(i)=INV (packet(i)); } else packet=old packet; } for(j=k;j<2k;j++){ temp packet=j-col exchange(); if((temp packet(j) OR packet(j))==1)
{ packet=temp packet; packet(j)=INV (packet(j)); } else packet=old packet; } } バッファ感知方式と同様に、この方式では、パケットを
交換するために1つのバッファ位置 temp-packet しか
使わず、バッファ・メモリの飽和が起こらないことが保
証される。
{ packet=temp packet; packet(i)=INV (packet(i)); } else packet=old packet; } for(j=k;j<2k;j++){ temp packet=j-col exchange(); if((temp packet(j) OR packet(j))==1)
{ packet=temp packet; packet(j)=INV (packet(j)); } else packet=old packet; } } バッファ感知方式と同様に、この方式では、パケットを
交換するために1つのバッファ位置 temp-packet しか
使わず、バッファ・メモリの飽和が起こらないことが保
証される。
1つの隣接要素だけがパケットが交換するとき、強制交
換方式は、受取り側隣接要素の出費を犠牲にして、その
1つの隣接要素の転送を容易にするため、交換を起こさ
せる。受取り側の隣接パケットは、メッシュ内でその最
終宛先から離れた所にある処理要素に配送される。論理
「1」を論理「0」に反転すると、パケットがその最終
宛先に近づき、その逆に論理「0」を論理「1」に反転
すると、パケットがその最終宛先から離れるので、反転
関数INVが上記の活動を反映する。
換方式は、受取り側隣接要素の出費を犠牲にして、その
1つの隣接要素の転送を容易にするため、交換を起こさ
せる。受取り側の隣接パケットは、メッシュ内でその最
終宛先から離れた所にある処理要素に配送される。論理
「1」を論理「0」に反転すると、パケットがその最終
宛先に近づき、その逆に論理「0」を論理「1」に反転
すると、パケットがその最終宛先から離れるので、反転
関数INVが上記の活動を反映する。
第7A図ないし第7L図は、強制交換方式を用いた場合の各
サイクルでのパケット交換を示す。
サイクルでのパケット交換を示す。
第7A図は、第5A図および第6A図と同じ、各処理要素0な
いし15中の初期パケット割当てを示す。第7B図は、0行
目の交換後のパケット位置を示す。たとえば、強制交換
方式による処理要素0と1の間のパケット交換は、前記
のどちらの方式とも異なることに留意されたい。この方
式では、処理要素0と処理要素1のパケット交換は、処
理要素0中のパケットの最下位ビットに論理「1」があ
ることによる。バッファ感知方式では、処理要素1中の
パケットの最下位ビットが論理「0」を含み、両方の隣
接要素が交換に同意しないので、交換は行なわれない。
使用可能順方式では、処理要素0からのパケットが処理
要素1に配送され、処理要素1中のパケットは処理要素
1中に留まる。交換手順の全体を通して、メッシュ内の
他の処理要素ではパケット交換が異なる。
いし15中の初期パケット割当てを示す。第7B図は、0行
目の交換後のパケット位置を示す。たとえば、強制交換
方式による処理要素0と1の間のパケット交換は、前記
のどちらの方式とも異なることに留意されたい。この方
式では、処理要素0と処理要素1のパケット交換は、処
理要素0中のパケットの最下位ビットに論理「1」があ
ることによる。バッファ感知方式では、処理要素1中の
パケットの最下位ビットが論理「0」を含み、両方の隣
接要素が交換に同意しないので、交換は行なわれない。
使用可能順方式では、処理要素0からのパケットが処理
要素1に配送され、処理要素1中のパケットは処理要素
1中に留まる。交換手順の全体を通して、メッシュ内の
他の処理要素ではパケット交換が異なる。
第7C図ないし第7E図は、順に1行目の交換、0列目の交
換、1列目の交換を施した後のパケット位置を示す。0
行目の交換、1行目の交換、0列目の交換、1行目の交
換の順次サイクルが繰り返され、そのパケット交換の結
果をそれぞれ第7F図ないし第7I図に示す。
換、1列目の交換を施した後のパケット位置を示す。0
行目の交換、1行目の交換、0列目の交換、1行目の交
換の順次サイクルが繰り返され、そのパケット交換の結
果をそれぞれ第7F図ないし第7I図に示す。
このシーケンスが3回繰り返され、強制交換方式の結果
を第7J図ないし第7L図に示す。3回目の0列目の交換
後、パケットは第1図の任意グラフに基づく当該の各宛
先に到着している。
を第7J図ないし第7L図に示す。3回目の0列目の交換
後、パケットは第1図の任意グラフに基づく当該の各宛
先に到着している。
以上の本発明の説明から、当業者には現況技術に対する
改良点は自明であろう。単一命令複数アドレス回路が単
一命令複数データストリーム・ポリモルフィック・メッ
シュ配列とあいまって、共平面低次相互接続グラフを有
する任意次数グラフが実現できる。すなわち、4次の共
平面相互接続ネットワークを備えたポリモルフィック・
メッシュ・アーキテクチャによって、どんなアルゴリズ
ムでも実現できる。
改良点は自明であろう。単一命令複数アドレス回路が単
一命令複数データストリーム・ポリモルフィック・メッ
シュ配列とあいまって、共平面低次相互接続グラフを有
する任意次数グラフが実現できる。すなわち、4次の共
平面相互接続ネットワークを備えたポリモルフィック・
メッシュ・アーキテクチャによって、どんなアルゴリズ
ムでも実現できる。
本発明は、大規模並列プロセッサの実装に著しい利益を
与える。処理要素時間のポリモルフィック・メッシュ相
互接続は、VLSIチップやプリント回路板など通常の2次
元電子実装技術と整合性がある。アーキテクチャ・グラ
フと実装技術間の直接マッピングにより、チップならび
にプリント回路板の面積の非常に効率のよい利用がはか
れる。その上、物理的相互接続は通常のもので4方向に
延び、その結果、局所的に隣接する処理要素相互間の配
線距離が短くなり、したがって速度が増大する。互いに
論理的に関連する隣接処理要素は、物理的に近接してい
るので、処理要素間の通信はn次キューブなど他の高次
グラフよりもずっと速い。実装密度が高くなることによ
って速度の増大がさらに強まる。要するに、毎秒当りの
ビット数で表わして、従来の既知システムよりも多数の
パケットが通信できる。
与える。処理要素時間のポリモルフィック・メッシュ相
互接続は、VLSIチップやプリント回路板など通常の2次
元電子実装技術と整合性がある。アーキテクチャ・グラ
フと実装技術間の直接マッピングにより、チップならび
にプリント回路板の面積の非常に効率のよい利用がはか
れる。その上、物理的相互接続は通常のもので4方向に
延び、その結果、局所的に隣接する処理要素相互間の配
線距離が短くなり、したがって速度が増大する。互いに
論理的に関連する隣接処理要素は、物理的に近接してい
るので、処理要素間の通信はn次キューブなど他の高次
グラフよりもずっと速い。実装密度が高くなることによ
って速度の増大がさらに強まる。要するに、毎秒当りの
ビット数で表わして、従来の既知システムよりも多数の
パケットが通信できる。
システム内の相互接続を追加して4方向に拡大すること
によりシステムの大きさが拡大でき、したがってモジュ
ール式実装が実現できる。
によりシステムの大きさが拡大でき、したがってモジュ
ール式実装が実現できる。
以上、ポリモルフィック・メッシュによる任意グラフで
使用される回路及びそうした任意グラフで表わされるア
ルゴリズムを処理するいくつかの方法について説明し図
示してきたが、当業者には自明なように、頭期の特許請
求の範囲によってのみ限定される本発明の広い範囲から
逸脱せずに、変更及び修正を加えることが可能である。
使用される回路及びそうした任意グラフで表わされるア
ルゴリズムを処理するいくつかの方法について説明し図
示してきたが、当業者には自明なように、頭期の特許請
求の範囲によってのみ限定される本発明の広い範囲から
逸脱せずに、変更及び修正を加えることが可能である。
F.発明の効果 本発明を用いれば、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……マルチプレクサ。
要素のポリモルフィック・メッシュ・ネットワークの概
略図である。 第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……マルチプレクサ。
Claims (1)
- 【請求項1】個々にアドレス可能な処理要素の1つか
ら、個々にアドレス可能な処理要素の他のものへ、アド
レス情報及び関連データ情報を含むパケットにより定め
られるとおりに動作サイクル中に情報が転送されるアレ
イ処理システムであって、 単一命令複数データストリーム・モードで動作可能な、
複数の個々にアドレス可能な処理要素と、 順次の動作サイクル中に上記処理要素のすべてに関して
命令及びアドレスを供給する制御装置と、 内容アドレス可能なパケット・バッファ・メモリの含
み、上記制御装置及び上記複数の処理要素に接続され、
各動作サイクル中に各処理要素が上記制御装置からの上
記アドレスの内容に応答して上記バッファ・メモリ中の
それぞれのパケットにアクセスすることを可能にする単
一命令複数アドレス装置とを有する、 アレイ処理システム。
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 JPH0217582A (ja) | 1990-01-22 |
JPH0679344B2 true 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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109150584B (zh) * | 2018-07-04 | 2022-02-25 | 北京中创腾锐技术有限公司 | 一种基于simd指令的为网络分组分类提供加速支持的方法 |
-
1989
- 1989-02-10 CA CA000590799A patent/CA1311307C/en not_active Expired - Fee Related
- 1989-02-20 JP JP3852789A patent/JPH0679344B2/ja not_active Expired - Lifetime
- 1989-03-22 EP EP19890105327 patent/EP0341406B1/en not_active Expired - Lifetime
- 1989-03-22 DE DE1989622782 patent/DE68922782T2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0341406A2 (en) | 1989-11-15 |
EP0341406B1 (en) | 1995-05-24 |
DE68922782T2 (de) | 1995-11-30 |
CA1311307C (en) | 1992-12-08 |
DE68922782D1 (de) | 1995-06-29 |
EP0341406A3 (en) | 1992-05-06 |
JPH0217582A (ja) | 1990-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0198010B1 (en) | Packet switched multiport memory nxm switch node and processing method | |
US5533198A (en) | Direction order priority routing of packets between nodes in a networked system | |
US5535408A (en) | Processor chip for parallel processing system | |
EP0132926B1 (en) | Parallel processor | |
US4891751A (en) | Massively parallel vector processing computer | |
US5797035A (en) | Networked multiprocessor system with global distributed memory and block transfer engine | |
US4891787A (en) | Parallel processing system with processor array having SIMD/MIMD instruction processing | |
US4873626A (en) | Parallel processing system with processor array having memory system included in system memory | |
US4621359A (en) | Load balancing for packet switching nodes | |
US5165023A (en) | Parallel processing system with processor array and network communications system for transmitting messages of variable length | |
US5898881A (en) | Parallel computer system with error status signal and data-driven processor | |
EP0821816B1 (en) | Adaptive routing mechanism for torus interconnection network | |
US5008815A (en) | Parallel processor | |
US5247613A (en) | Massively parallel processor including transpose arrangement for serially transmitting bits of data words stored in parallel | |
US7673118B2 (en) | System and method for vector-parallel multiprocessor communication | |
US5151996A (en) | Multi-dimensional message transfer router | |
JP4818920B2 (ja) | 複数のプログラム可能なプロセッサを有する集積データ処理回路 | |
JPH06507744A (ja) | 大量並列プロセッサ間の、階層的プロセッサ相互間通信ネットワークのための手順決定技術 | |
JPS6360579B2 (ja) | ||
JPH05241947A (ja) | 分散クロスバー・スイッチ・アーキテクチャにおける交換接続の配列。 | |
US5257395A (en) | Methods and circuit for implementing and arbitrary graph on a polymorphic mesh | |
JPH0668053A (ja) | 並列計算機 | |
US20230305991A1 (en) | Network Computer with Two Embedded Rings | |
JPH0679344B2 (ja) | アレイ処理システム | |
JPH01187676A (ja) | 画素に関するデータの処理装置 |