Nothing Special   »   [go: up one dir, main page]

JP2642039B2 - アレイ・プロセッサ - Google Patents

アレイ・プロセッサ

Info

Publication number
JP2642039B2
JP2642039B2 JP5114567A JP11456793A JP2642039B2 JP 2642039 B2 JP2642039 B2 JP 2642039B2 JP 5114567 A JP5114567 A JP 5114567A JP 11456793 A JP11456793 A JP 11456793A JP 2642039 B2 JP2642039 B2 JP 2642039B2
Authority
JP
Japan
Prior art keywords
array
picket
processor
data
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP5114567A
Other languages
English (en)
Other versions
JPH0635877A (ja
Inventor
ポール・アンバ・ウィルキンソン
ジェームズ・ウォレン・ディーフェンデルファー
ピーター・マイケル・コッゲ
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 JPH0635877A publication Critical patent/JPH0635877A/ja
Application granted granted Critical
Publication of JP2642039B2 publication Critical patent/JP2642039B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Multi Processors (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータおよびコ
ンピュータ・システムに関し、詳細には、プロセッサの
アレイと、処理要素内でSIMIMD命令を実行するた
めの、SIMD処理要素の動作モードに関する。
【0002】
【従来の技術】はじめに、本明細書で用いられる用語に
ついて説明する。
【0003】・ALU ALUとは、プロセッサの演算論理回路部分である。
【0004】・アレイ アレイとは、1次元または多次元における要素のアレイ
を指す。アレイは、順番に並べた1組のデータ項目(ア
レイ要素)を含むことができるが、FORTRANのよ
うな言語では、それらのデータ項目は単一の名前で識別
される。他の言語では、順番に並べた1組のデータ項目
の名前は、すべて同じ属性を持つ順番に並べた1組のデ
ータ要素を指す。プログラム・アレイでは、一般に数ま
たは次元属性によって次元が指定される。アレイの宣言
子でアレイの各次元のサイズを指定する言語もあり、ア
レイがテーブル内の要素のアレイとなっている言語もあ
る。ハードウェア的な意味では、アレイは、大規模並列
アーキテクチャにおいて全体として同一な構造(機能要
素)の集合体である。データ並列コンピュータ処理にお
けるアレイ要素は、動作を割り当てることができ、並列
状態のとき、それぞれ独立にかつ並列に必要な動作を実
行できる要素である。一般に、アレイは処理要素の格子
と考えることができる。アレイの各セクションに区分デ
ータを割り当てることにより、区分データを規則的な格
子パターン内で移動することができる。ただし、データ
に索引を付け、あるいはデータをアレイ中の任意の位置
に割り当てることが可能である。
【0005】・アレイ・ディレクタ アレイ・ディレクタとは、アレイの制御プログラムとし
てプログラミングされる単位である。アレイ・ディレク
タは、アレイとして配列された機能要素のグループのマ
スタ制御プログラムとしての機能を果す。
【0006】・アレイ・プロセッサ アレイ・プロセッサには主として、複数命令複数データ
方式(MIMD)と単一命令複数データ方式(SIM
D)との2種類がある。MIMDアレイ・プロセッサで
は、アレイ中の各処理要素が、それ自体のデータを使っ
てそれ自体の固有の命令ストリームを実行する。SIM
Dアレイ・プロセッサでは、アレイ中の各処理要素が、
共通の命令ストリームを介して同一の命令に限定され
る。ただし、各処理要素に関連するデータは固有であ
る。本発明の好ましいアレイ・プロセッサには他にも特
徴がある。本明細書では、これをAPAPと呼び、AP
APという略語を使用する。
【0007】・非同期 非同期とは、規則的な時間関係がないことである。すな
わち、各機能の実行間の関係が予測不能であり、各機能
の実行間に規則的または予測可能な時間関係が存在しな
い。制御状況では、制御プログラムは、データが、アド
レスされている遊休要素を待っているとき、制御が渡さ
れる位置にアドレスする。このため、諸動作が、どの事
象とも時間が一致しないのに順序通りのままとなる。
【0008】・BOPS/GOPS BOPSまたはGOPSは、1秒当たり10億回の動作
という同じ意味の略語である。GOPSを参照された
い。
【0009】・回線交換/蓄積交換 これらの用語は、ノードのネットワークを介してデータ
・パケットを移動するための2つの機構を指す。蓄積交
換は、データ・パケットを各中間ノードで受信し、その
メモリに格納してから、その宛先に向かって転送する機
構である。回線交換は、中間ノードに、その入力ポート
を出力ポートに論理的に接続するよう指令して、データ
・パケットが、中間ノードのメモリに入らずに、ノード
を直接通過して宛先に向かうことができるようにする機
構である。
【0010】・クラスタ クラスタとは、制御ユニット(クラスタ制御装置)と、
それに接続されたハードウェア(端末、機能ユニット、
または仮想構成要素)とから成るステーション(または
機能ユニット)である。本明細書では、クラスタは、ノ
ード・アレイとも称するプロセッサ・メモリ要素(PM
E)のアレイを含む。通常、クラスタは512個のPM
E要素を有する。
【0011】本発明の全PMEノード・アレイは、それ
ぞれ1つのクラスタ制御装置(CC)によってサポート
される1組のクラスタから成る。
【0012】・クラスタ制御装置 クラスタ制御装置とは、それに接続された複数の装置ま
たは機能ユニットの入出力動作を制御する装置である。
クラスタ制御装置は通常、IBM 3601金融機関通
信制御装置におけるように、該ユニットに格納され、そ
こで実行されるプログラムの制御を受けるが、IBM
3272制御装置におけるように、ハードウェアで完全
に制御可能である。
【0013】・クラスタ・シンクロナイザ クラスタ・シンクロナイザとは、あるクラスタのすべて
または一部分の動作を管理して、諸要素の同期動作を維
持し、各機能ユニットがプログラムの実行と特定の時間
関係を維持できるようにする機能ユニットである。
【0014】・制御装置 制御装置とは、相互接続ネットワークのリンクを介した
データおよび命令の伝送を指令する装置である。制御装
置の動作は、制御装置が接続されたプロセッサによって
実行されるプログラム、または制御装置内で実行される
プログラムによって制御される。
【0015】・CMOS CMOSとは、相補型金属酸化膜半導体技術の略語であ
る。これは、ダイナミック・ランダム・アクセス・メモ
リ(DRAM)の製造に広く使用されている。NMOS
は、ダイナミック・ランダム・アクセス・メモリの製造
に使用されるもう1つの技術である。本発明では相補型
金属酸化膜半導体の方を使用するが、拡張並列アレイ・
プロセッサ(APAP)の製造に使用する技術によっ
て、使用される半導体技術の範囲が制限されることはな
い。
【0016】・ドッティング ドッティングとは、物理的な接続によって3本以上のリ
ード線を結合することを指す。たいていのバックパネル
・バスではこの接続方法を使用している。この用語は、
過去のOR DOTSと関係があるが、ここでは、非常
に単純なプロトコルによってバス上に結合できる複数の
データ源を識別するのに使用する。
【0017】本発明における入出力ジッパの概念を用い
て、あるノードに入る入力ポートが、あるノードから出
る出力ポート、またはシステム・バスからくるデータに
よって駆動できるという概念を実施することができる。
逆に、あるノードから出力されるデータは、別のノード
およびシステム・バスへの入力として使用できる。シス
テム・バスと別のノードへのデータ出力は、同時には実
行されず、別のサイクルで実行されることに留意された
い。
【0018】ドッティングは、それを利用することによ
り2ポート式のPEまたはPMEまたはピケットを様々
な編成のアレイに使用できる、H−DOTの議論で使用
されている。2次元メッシュおよび3次元メッシュ、ベ
ース2Nキューブ、スパース・ベース4Nキューブ、ス
パース・ベース8Nキューブを含めて、いくつかのトポ
ロジーが議論されている。
【0019】・DRAM DRAMとは、コンピュータが主記憶装置として使用す
る共通記憶装置であるダイナミック・ランダム・アクセ
ス・メモリの略語である。ただし、DRAMという用語
は、キャッシュとして、または主記憶装置ではないメモ
リとして使用するのにも適用できる。
【0020】・浮動小数点 浮動小数点数は、固定小数部すなわち小数部と、約束上
の基数または基底に対する指数部の2つの部分で表され
る。指数は、10進小数点の実際の位置を示す。典型的
な浮動小数点の表記法では、実数0.0001234は
0.1234−3と表される。ここで、0.1234は
小数部であり、−3は指数である。この例では、浮動小
数点基数または基底は10であり、暗示的な1より大き
な正の固定整数基底を表す。浮動小数点表示で明示的に
示される、あるいは浮動小数点表示で指数部で表される
指数でこの基底をべき乗し、次に小数部を掛けると、表
される実数が求められる。数字リテラルは、浮動小数点
表記法で表すことも実数で表すこともできる。
【0021】・FLOPSこの用語は、1秒当たりの浮
動小数点命令数を指す。浮動小数点演算には、A DD(加算)、SUB(減算)、MPY(乗算)、DI
V(除算)と、しばしばその他の多くの演算が含まれ
る。1秒当たり浮動小数点命令数というパラメータは、
しばしば加算命令または乗算命令を使って算出され、一
般に50/50ミックスとみなすことができる。演算に
は、指数部、小数部の生成と、必要な小数部の正規化が
含まれる。本発明では、32ビットまたは48ビットの
浮動小数点フォーマットを扱うことができる(これより
長くてもよいが、そのようなフォーマットはミックスで
はカウントしなかった)。浮動小数点演算を固定小数点
命令(正規またはRISC)で実施する際には、複数の
命令が必要である。性能を計算する際に10対1の比率
を使用する人もあれば、比率を6.25にした方が適切
であることを示す研究もある。アーキテクチャごとに比
率が異なる。
【0022】・機能ユニット 機能ユニットとは、ある目的を達成できる、ハードウェ
ア、ソフトウェア、あるいはその両方のエンティティで
ある。
【0023】・Gバイト Gバイトとは10億バイトを指す。Gバイト/秒は、1
秒当たり10億バイトということになる。
【0024】・GIGAFLOPS 1秒当たり109個の浮動小数点命令
【0025】・GOPSおよびPETAOPS GOPSまたはBOPSは、1秒当たり10億回の演算
という同じ意味を持つ。PETAOPSは、現在のマシ
ンの潜在能力である1秒当たり1兆回の演算という意味
である。本発明のAPAPマシンでは、これらの用語
は、1秒当たり10億個の命令数を意味するBIP/G
IPとほぼ同じである。1つの命令で複数の演算(すな
わち、加算と乗算の両方)を実行できるマシンもある
が、本発明ではそのようにはしない。また、1つの演算
を実行するのに多数の命令を要する場合もある。たとえ
ば、本発明では複数の命令を使って、64ビット演算を
実行している。しかし、演算をカウントする際、対数演
算のカウントは行わなかった。性能を記述するにはGO
PSを使用する方が好ましいが、それを一貫して使うこ
とはしなかった。MIP/MOP、その上の単位として
BIP/BOP、およびMegaFLOPS/Giga
FLOPS/TeraFLOPS/PetaFLOPS
が使用される。
【0026】・ISA ISAとは、命令セット・アーキテクチャを意味する。
【0027】・リンク リンクとは、物理的または論理的要素である。物理的リ
ンクは要素またはユニットを結合するための物理接続で
あり、一方コンピュータ・プログラミングにおけるリン
クは、プログラムの別々の部分間で制御およびパラメー
タのやり取りを行う命令またはアドレスである。多重シ
ステムでは、実アドレスまたは仮想アドレスで識別され
るリンクを識別するプログラム・コードによって指定さ
れる、2つのシステム間の接続がリンクである。したが
って、リンクには一般に、物理媒体、任意のプロトコ
ル、ならびに関連する装置およびプログラミングが含ま
れる。すなわち、リンクは論理的であるとともに物理的
である。
【0028】・MFLOPS MFLOPSは、1秒当たり106個の浮動小数点命令
を意味する。
【0029】・MIMD MIMDは、アレイ内の各プロセッサがそれ自体の命令
ストリームを持ち、したがって多重命令ストリームを有
し、1処理要素当たり1つずつ配置された複数データ・
ストリームを実行する、プロセッサ・アレイ・アーキテ
クチャを指すのに使用される。
【0030】・モジュール モジュールとは、離散しており識別可能なプログラム単
位、あるいは他の構成要素と共に使用するように設計さ
れたハードウェアの機能単位である。また、単一の電子
チップに含まれるPEの集合体もモジュールと呼ばれ
る。
【0031】・ノード 一般に、ノードとはリンクの接合部である。PEの汎用
アレイでは、1つのPEをノードとすることができる。
ノードはまた、モジュールというPEの集合体を含むこ
ともできる。本発明では、ノードはPMEのアレイから
形成されており、この1組のPMEをノードと称する。
ノードは8個のPMEであることが好ましい。
【0032】・ノード・アレイ PMEから構成されるモジュールの集合体をノード・ア
レイと呼ぶことがある。これは、モジュールから構成さ
れるノードのアレイである。ノード・アレイは通常、
2、3個より多いPMEであるが、この用語は複数を包
含する。
【0033】・PDE PDEとは、偏微分方程式である。
【0034】・PDE緩和解法プロセス PDE緩和解法プロセスとは、PDE(偏微分方程式)
を解く方法である。PDEを解くには、既知の分野にお
けるスーパー・コンピュータの計算能力の大半を使用
し、したがってこれは緩和プロセスの好例となる。PD
E方程式を解く方法は多数あり、複数の数値解法に緩和
プロセスが含まれている。たとえば、PDEを有限要素
法で解く場合、緩和の計算に大部分の時間が費やされ
る。熱伝達の分野の例を考えてみよう。煙突内に高温の
ガスがあり、外では冷たい風が吹いているとすると、煙
突のレンガ内の温度勾配はどのようになるだろうか。レ
ンガを小さなセグメントとみなし、セグメント間を熱が
どのように流れるかを温度差の関数として表す方程式を
書くと、伝熱PDEが有限要素問題に変換される。ここ
で、内側と外側の要素を除くすべての要素が室温であ
り、境界セグメントが高温のガスと冷たい風の温度であ
るとすると、緩和を開始するための問題ができあがる。
その後、コンピュータ・プログラムでは、セグメントに
流れ込む、あるいはセグメントから流れ出る熱の量に基
づいて各セグメント内の温度変数を更新することによ
り、時間をモデル化する。煙突における1組の温度変数
を緩和して、物理的な煙突で発生する実際の温度分布を
表すには、モデル中のすべてのセグメントを処理するサ
イクルに何回もかけなければならない。目的が煙突にお
けるガス冷却をモデル化することである場合、諸要素を
気体方程式に拡張しなければならず、そうすると、内側
の境界条件が別の有限要素モデルとリンクされ、このプ
ロセスが続く。熱の流れが隣接するセグメント間の温度
差に依存することに留意されたい。したがって、PE間
通信経路を使って温度変数を分配する。PDE関係が並
列計算にうまく適用できるのは、この隣接接通信パター
ンまたは特性による。
【0035】・ピケット これは、アレイ・プロセッサを構成する要素のアレイ内
の要素である。この要素は、データ・フロー(ALU
REGS)、メモリ、制御機構、通信マトリックスのこ
の要素と関連する部分から構成される。この単位は、並
列プロセッサ要素およびメモリ要素と、その制御機構お
よびアレイ相互通信機構の一部から成るアレイ・プロセ
ッサの1/nを指す。ピケットは、プロセッサ・メモリ
要素(PME)の1つの形である。本発明のPMEチッ
プ設計プロセッサ論理回路は、関連出願に記載されてい
るピケット論理を実施し、あるいはノードとして形成さ
れたプロセッサ・アレイ用の論理を持つことができる。
ピケットという用語は、処理要素を表す、一般的に使用
されているアレイ用語のPEと似ており、好ましくはビ
ット並列バイトの情報をクロック・サイクルで処理する
ための処理要素とローカル・メモリの組合せからなる、
処理アレイの要素である。好ましい実施例は、バイト幅
データ・フロー・プロセッサ、32バイト以上のメモ
リ、原始制御機構、および他のピケットとの通信機構か
ら構成されている。
【0036】「ピケット」という用語は、トム・ソーヤ
ーと、彼の白いフェンスに由来している。ただし、機能
的には、軍隊のピケット・ラインと類似性があることも
理解されよう。
【0037】・ピケット・チップ ピケット・チップは、単一のシリコン・チップ上に複数
のピケットを含んでいる。
【0038】・ピケット・プロセッサ・システム(また
はサブシステム) ピケット・プロセッサは、ピケットのアレイと、通信ネ
ットワークと、入出力システムと、マイクロプロセッ
サ、かん詰ルーチン・プロセッサ、およびアレイを実行
するマイクロコントローラから成るSIMD制御装置と
から構成されるトータル・システムである。
【0039】・ピケット・アーキテクチャ ピケット・アーキテクチャは、SIMDアーキテクチャ
の好ましい実施例であり、次のことを含む複数の多様な
問題に対応できる機能をもつ。 −セット連想処理 −並列数値中心処理 −イメージに類似した物理的アレイ処理
【0040】・ピケット・アレイ ピケット・アレイは、幾何的順序で配列されたピケット
の集合体であり、規則正しいアレイである。
【0041】・PMEすなわちプロセッサ・メモリ要素 PMEは、プロセッサ・メモリ要素を表す。本明細書で
は、PMEという用語を、本発明の並列アレイ・プロセ
ッサの1つを形成する、単一のプロセッサ、メモリ、お
よび入出力可能なシステム要素もしくはユニットを指す
のに使用する。PMEは、ピケットを包含する用語であ
る。PMEは、プロセッサ、それと結合されたメモリ、
制御インタフェース、およびアレイ通信ネットワーク機
構の一部分から成るプロセッサ・アレイの1/nであ
る。この要素は、ピケット・プロセッサにおけるよう
に、正規のアレイの接続性を持つPME、あるいは上述
の多重PMEノードにおけるように、サブアレイの一部
としてのPMEを備えることができる。
【0042】・経路指定 経路指定とは、メッセージを宛先に届けるための物理経
路を割り当てることである。経路の割当てには、発信元
と宛先が必要である。これらの要素またはアドレスは、
一時的な関係または類縁性を持つ。メッセージの経路指
定は、しばしば、割当てのテーブルを参照することによ
って得られるキーに基づいて行われる。ネットワーク内
では、宛先は、リンクを識別する経路制御アドレスによ
って、伝送される情報の宛先としてアドレス指定され
る、任意のステーションまたはネットワークのアドレス
指定可能ユニットである。宛先フィールドは、メッセー
ジ・ヘッダ宛先コードで宛先を識別する。
【0043】・SIMD アレイ内のすべてのプロセッサが、単一命令ストリーム
から、1処理要素当たり1つずつ配置された複数データ
・ストリームを実行するように指令を受ける、プロセッ
サ・アレイ・アーキテクチャ。
【0044】 ・SIMDMIMDまたはSIMD/MIMD SIMDMIMDまたはSIMD/MIMDとは、ある
時間の間MIMDからSIMDに切り換えて複雑な命令
を処理できる二重機能を持ち、したがって2つのモード
を持つマシンを指す用語である。シンキング・マシンズ
社(Thinking Machines, Inc)のコネクション・マシン
(Connection Machine)モデルCM−2をMIMDマシ
ンのフロント・エンドまたはバック・エンドとして配置
すると、プログラマは、二重モードとも称する、複数の
モードを動作させてある問題の別々の部分を実行するこ
とができた。これらのマシンは、ILLIAC以来存在
しており、バスを使用してマスタCPUを他のプロセッ
サと相互接続している。マスタ制御プロセッサは、他の
CPUの処理に割り込む能力を持つ。他のCPUは、独
立のプログラム・コードを実行できる。割込み中、チェ
ックポイント機能用に何らかの処理が必要である(制御
されるプロセッサの現状況のクローズおよびセーブ)。
【0045】・SIMIMD SIMIMDは、アレイ内のすべてのプロセッサが、単
一命令ストリームから、1処理要素当たり1つずつ配置
された複数データ・ストリームを実行するように指令を
受ける、プロセッサ・アレイ・アーキテクチャである。
この構成内では、命令実行を模倣する、各ピケット内の
データ従属演算が、SIMD命令ストリームによって制
御される。
【0046】これは、SIMD命令ストリームを使用し
て複数命令ストリーム(1ピケット当たり1個)を順序
付けし、複数データ・ストリーム(1ピケット当たり1
個)を実行することの可能な、単一命令ストリーム・マ
シンである。SIMIMDは、PMEシステムによって
実行できる。
【0047】・SISD SISDは、単一命令単一データの略語である。
【0048】・スワッピング スワッピングとは、ある記憶域のデータ内容を別の記憶
域のデータ内容と相互に交換することをいう。
【0049】・同期動作 MIMDマシンにおける同期動作は、各アクションがあ
る事象(通常はクロック)に関係付けられる、動作モー
ドである。この事象は、プログラム・シーケンス中で規
則的に発生する、指定された事象とすることができる。
動作は多数の処理要素にディスパッチされ、それらの処
理要素はそれぞれ独立して機能を実行する。動作が完了
しないかぎり、制御は制御装置に返されない。
【0050】要求が機能ユニットのアレイに対するもの
である場合、アレイ内の要素に制御装置から要求が出さ
れ、その要素は、制御装置に制御が返される前に動作を
完了しなければならない。
【0051】・TERAFLOPS TERAFLOPSは、1秒当たり1012個の浮動小数
点命令を意味する。
【0052】・VLSI VLSIとは、(集積回路に適用される)超大規模集積
の略語である。
【0053】・ジッパ ジッパとは、新規に提供される、アレイ構成の通常の相
互接続の外部にある装置からリンクを確立するための機
能である。
【0054】以下に、本発明の背景となる従来技術につ
いて述べる。エンジニアは、コンピュータの高速化をあ
くなく追求する中で、数百、ときには数千もの低コスト
・マイクロプロセッサを並列にリンクして、スーパー・
スーパーコンピュータを構築し、今日のマシンには手の
負えない複雑な問題を解決しようとしている。そのよう
なマシンは、大規模並列マシンと呼ばれている。本発明
者等は、大規模並列システムを構築するための新規の方
法を開発した。本発明者等が加えた多数の改良は、他の
人々の多数の研究の背景と対比して考察すべきである。
当技術分野の要約は、参照する他の特許出願で行われて
いる。この点については、本発明者等の並列連想プロセ
ッサ・システムに関する関連米国特許出願第60159
4号と拡張並列アレイ・プロセッサ(APAP)に関す
る関連米国特許出願を参照されたい。特定の応用例にも
っとも適合するアーキテクチャを選択するにはシステム
のトレードオフが必要であるが、満足のいく解決策はこ
れまでに1つもない。本発明の概念を用いると、解決策
の実現が容易になる。
【0055】SIMD(単一命令ストリーム複数データ
・ストリーム)は、すべての要素を制御する単一の命令
ストリームを備えたデータ処理要素の並列アレイ用の動
作モードである。このアーキテクチャは、データとその
処理に繰返しが多い大部分の問題でうまく働く。しか
し、プログラムの柔軟性が有用な問題のセクションもあ
る。意思決定は、問題セクションに対するプログラム柔
軟性が有用となる問題の1タイプである。具体的に言う
と、判断ツリーが共通である分類は、こうした問題の1
タイプである。本明細書で参照する"Parallel Associat
ive Processor System"と題する関連米国特許出願で、
本発明者等は「ピケット」またはPME、すなわち大量
のメモリを備えたPEの概念を導入した。本明細書で
は、この開発について、本発明の好ましい実施例を例示
するものとして詳細に説明する。
【0056】ピケットの概念は、単一のチップ上に複数
のプロセッサを作成して、従来のデータ・ストリーム
(ALUおよびREGS)、メモリ、制御論理機構、お
よび相互接続を統合する強力なアレイを形成した、SI
MD命令を実行できるアレイ・プロセッサに特に適用さ
れる。本明細書に記載するシステムを用いると、サブシ
ステム制御装置が、SIMDモードで動作する独立した
ピケットを利用できるようになる。
【0057】本発明者等は、意思決定に関する未解決の
問題領域に対処する方法に取り組む際に、取り組むべき
もう1つの領域を認識している。これらの機能を使用可
能にするに際して、低コストで製造可能な単純なマシン
が考案された。しかし、単純性の概念は、大規模並列ア
レイを得るために複製することができ、単純なマシン
は、大規模システム内にモジュールとして配置すること
ができ、またそうすべきである。
【0058】SIMDマシンが出現してから久しい。本
発明者等は、関連出願において、当技術分野の発展につ
いて論じ、当技術分野自体について詳述した。ここで
は、関連出願に記載した内容を改めて詳述することは避
ける。詳細は、関連出願を参照されたい。以下の簡単な
説明から、当技術分野が初期の開発以降ますます複雑に
なってきており、マシンの大規模化が進んでいることが
理解されよう。
【0059】システムの多様性および複雑さを、以下の
例によって示す。
【0060】"Local Store for Scientific Vector Pro
cessor"と題する米国特許第4706191号は、科学
研究用ベクトル・プロセッサにおけるローカル・ストア
・メモリの一実施態様を記載している。"Memory-linked
Wavefront Array Processor"と題する米国特許第47
20780号は、処理が複雑であり、識別可能で直接的
な結果が望まれている、パイプライン処理またはシスト
リック処理用の、メモリ・ブロックとエッジ上でリンク
された、完全な機能を持つSISDプロセッサを使用す
るシストリック・アレイ・プロセッサを記載している。
上記の米国特許第4720780号および第47061
91号のシステムは、プロセッサ・アレイのSIMD処
理要素内で命令を実行することはできない。
【0061】"Array Processor Architecture"と題する
米国特許第4412303号は、10年にわたる明白な
進歩の後に当技術分野における考え方がどのように発展
したかを例示している。大規模アレイ・プロセッサは、
開発されたとき、MIMDアレイ・アーキテクチャまた
はSIMDアレイ・アーキテクチャと共通の問題を実行
できるようにその相互接続および制御機構が設計され
た、密結合プロセッサとなった。SIMDアーキテクチ
ャはきわめて複雑になり、ピケット内で命令を実行する
ために本発明者等が提供した単純な機構とはかけ離れた
ものとなった。上記の特許第4412303号は、オメ
ガ(Omega)ネットワークと相互接続されたメモリ
・モジュールを持つFORTRANプロセッサのアレイ
を記載している。ここでは、単一の制御/データ・メモ
リが設けられ、関連する制御装置がアレイを監視する。
ただし、プログラムおよびデータ情報が別々のプロセッ
サおよびメモリに分配され、各プロセッサがソフトウェ
アのそれ自体のコピーを持つようになっている。プロセ
ッサ・アレイの同期化は、計算エンベロープ上での同期
化手法を使って実施される。すべてのプロセッサが、プ
ログラムの所定の停止点で互いに待つ必要があることは
明らかである。このアーキテクチャは、アレイ内の各プ
ロセッサが他のプロセッサと独立して実行でき、かつ大
規模な多重プロセッサと共通の形で時折り制御情報また
はデータ情報を共用できるようにすることを目的として
いる。また、このアーキテクチャにより、プロセッサ
は、SIMDアーキテクチャの効果が発揮されるような
形で、データのアレイ上で同一のソフトウェアを実行す
ることが可能となる。このモードでは、プロセッサのア
レイは、同期化された後で、他のプロセッサまたは隣接
プロセッサとデータを共用することが必要になる。
【0062】当技術分野の複雑な発展を示す他の例とし
て、"Parallel Processing Systemwith Processor Arra
y having Memory System included in System Memory"
と題する米国特許第4873626号および"Parallel
Processing System with Processor Array having SIMD
/MIMD Instruction Processing"と題する米国特許第4
891787号で例示される、SIMDモードまたはM
IMDモードで動作できるようにすることを目的とし
た、階層バス接続および制御を管理するための制御構造
を備える、並列プロセッサのバス接続階層およびメモリ
・アーキテクチャがある。前記2つの特許は、同一のシ
ステムの異なる態様を特許請求している。特許第487
3626号は、SIMDモードまたはMIMDモードで
動作可能で、階層バス接続および制御構造を管理するた
めの制御構造を備えた、並列プロセッサのバス接続階層
およびメモリ・アーキテクチャに焦点を当てている。特
許第4891787号は、制御CPU、シーケンサ、入
出力装置、およびバス接続構造によって階層グループと
して配列されたメモリ/処理要素(M/PE)のアレイ
を有するプロセッサを記載している。ここでは、各M/
PEのメモリが制御CPUのメモリの一部としてマップ
される。各M/PEはそれ自体のメモリ内に含まれる命
令を実行して、それにMIMD機能を与えることができ
る。MIMDモードでは、制御CPUがM/PEにSI
MD命令を発行することができる。M/PEは、割込み
を受け、SIMD命令を実行し、次いでMIMD命令ス
トリームの実行を再開する場合と同様に応答する。MI
MDでないとき、M/PEは、制御CPU、入出力装
置、別の(おそらくより上位の)M/PE、またはシー
ケンサ装置からのSIMDコマンドだけに応答する。S
IMD命令の複雑さについては言及されていない。これ
らの命令はサブルーチン・レベルとすることができ、そ
の場合、SIMDコマンドはM/PEに対するサブルー
チン呼出しと等価になる。これは、SIMD命令が制御
CPUからM/PEに達する際に使うと思われる経路に
よってサポートされる。
【0063】上記の米国特許第4891787号では、
PEにおける並列性の度合いについては言及されていな
いが、PEが、プロセッサ・チップ、ある種のメモリ、
およびグループ間バスへのインタフェース、グループ・
バス、ならびにカード上の別々の要素としての制御機構
を備えたカードに匹敵し、バス接続構造によって複数の
カードが接続されていることに留意されたい。命令スト
リーム制御構造については記載されていない。本明細書
に記述する命令ストリーム制御装置はない。しかし、特
許第4891787号のMIMDアレイは、MIMDモ
ードでないとき、M/PEをSIMD呼出しに対する応
答だけに制限することにより、SIMD動作をシミュレ
ートするものと思われる。本発明の手法は、より古典的
な意味のSIMDアレイを提供することであるが、本発
明では、SIMDコマンドの明確な文字列が各ピケット
内の固有の命令をくまなく実行できるようにする、拡張
ローカル自律機能をもつシステムを提供する。
【0064】従来のSIMDアレイ・プロセッサ要素を
例示するものとして、"ProcessingElement for Paralle
l Array Processors"と題する米国特許第431434
9号がある。この特許はサテライト・イメージの処理を
目的としたアプリケーションに関するが、古典的なビッ
ト直列SIMDアレイ・プロセッサについて詳細に記述
している。このプロセッサは、本発明では、改良する必
要があるタスクに適用される。このプロセッサは、本発
明のSIMDアレイ・プロセッサと異なり、シンキング
・マシンズ社(Thinking Machines, Inc.)など古典的
なSIMD要素と同じく、ビット直列プロセッサであ
る。一方、本発明のプロセッサは、データ・ストリーム
を並列に処理する。
【0065】マルチバイト・データ・ストリームと、本
発明のピケット自律性の概念により、SIMDアレイ内
の各ピケットを拡張することができ、かつ意思決定にお
ける未解決のある種の問題の解決にそれを役立てること
ができる。
【0066】
【発明が解決しようとする課題】本発明は、アレイ内の
すべてのプロセッサが、アレイの処理要素として統合さ
れたデータ・ストリームとメモリ要素を有する、SIM
IDアレイ・プロセッサ・アーキテクチャの基礎を提供
することを目的とする。
【0067】
【課題を解決するための手段】本発明者等は、本発明の
SIMDアレイ・プロセッサの各ピケットがピケット自
律性を持つことができるようにすると、各ピケットが、
他のピケット内の他の命令と異なる命令を必要に応じて
実行できるようになることに気付いた。これにより、各
ピケットが、すべてのピケットに送られる共通のコマン
ドを、独自に解釈することができるようになる。
【0068】本発明のSIMDアレイ・プロセッサは、
ピケット自律性の概念を用いて、各ピケットが共通SI
MD制御ストリームの制御およびコマンドの下で異なる
命令を実行できるようにする。これにより、各ピケット
に一定の独立性が与えられるので、各ピケットは、必要
に応じて独立に働いて、処理にあたり容易にアレイやベ
クトルとして編成できない問題をより効率的に解決する
ことが可能となる。
【0069】したがって、本発明では、複数のデータ・
ストリームを処理できるが、ピケット内のある種のSI
MDコマンドを解釈することにより、ピケット内で様々
な処理の実行を可能にする機構の集合体を、各ピケット
に含めることができる、アレイ・プロセッサを実現し
た。
【0070】本発明者等の別の開発を使用すると、ピケ
ットが、他のピケット内の命令と異なる命令を必要に応
じて実行して、これらの問題領域に対処することができ
るようになる。
【0071】本発明はまた、意思決定に関する未解決の
問題領域に取り組む方法を提供する。本発明者等は、一
般的意思決定のためにプログラムの柔軟性が必要である
ことに気付いた。本発明の基本アーキテクチャは、すべ
ての要素を制御する単一命令ストリームを持つデータ処
理要素のアレイで単一命令ストリーム複数データ・スト
リームを備えたSIMDによって扱うことができるた
め、データとその処理に繰返しが多い大部分の問題で非
常にうまく働く。ただし、意思決定一般に、具体的には
判断ツリーによる分類が共通しているときに特に役立
つ、プログラムの柔軟性を高めるアーキテクチャを提供
するために、本発明者等はSIMIMDを提供した。S
IMIMDを用いると、各ピケットは、他のピケット内
の命令と異なる命令を必要に応じて実行して、これらの
問題領域を満足することができる。
【0072】したがって、本発明者等は、アレイ制御装
置のサイクルごとの制御下でアレイ制御装置によって制
御されるアレイの処理要素内で命令を実行できるSIM
IMDモードを持つアレイ・プロセッサを提供する。各
処理要素は、他のピケットと並列に、または独立バイト
並列直列式に、ピケット内で命令を実行することができ
る。これにより、コンピュータ・システムは、他のピケ
ットに含まれる命令とは異なるデータ依存命令を必要に
応じて実行して、意思決定領域における実行効率を大幅
に改善することができる。
【0073】本発明のSIMIMDアレイ・プロセッサ
では、プロセッサ・アレイ内のあらゆる要素が、各クロ
ック・サイクルで制御装置からコマンドを受け取って実
行することができる。コマンドが各ピケット内で解釈さ
れるので、異なる動作が可能になる。
【0074】PE内の、命令によって定義される固有の
機能が、命令実行の諸要素を実施することができる。ア
レイのピケットによって実行できる命令には、ADD、
SUB、AND、OR、XOR、NEG、NOP、ST
ORE、BRANCH ONCONDITION(符
号、0、繰上り、無条件)がある。ピケット内で、命令
の実行は次のステップに従う。
【0075】命令アドレスの獲得 命令の取出し 命令の復号 命令ポインタの更新 データの取出し命令の実行 結果の格納
【0076】各ピケットは、アレイ制御装置(SIMD
サブシステム制御装置)からロードすることのできる、
またはアレイ制御装置からのSIMDコマンドの制御下
でピケット・データフロー内のデータからロードするこ
とのできるアドレス・レジスタを有する。各ピケット
は、SIMIMDモードで使用されて、交互にSIMI
MDモードでピケット・データフローにマイクロ・オー
ダーを供給する、ピケット演算レジスタを有する。各ピ
ケットはそれ自体のALUを有するので、ALU演算
は、アレイ制御装置の指示に応じてピケット演算レジス
タによって決定される。
【0077】ピケットは、宛先レジスタにデータを提供
する。宛先レジスタは、アレイ制御装置の指示に応じて
ピケット演算レジスタによって決定される。
【0078】本発明により、アレイ内のすべてのプロセ
ッサが、アレイの処理要素として統合されたデータ・ス
トリームとメモリ要素を有する、SIMIMDアレイ・
プロセッサ・アーキテクチャの基礎が提供された。アレ
イ内では、すべてのプロセッサに単一の命令ストリーム
から指令を出すことができ、またすべてのプロセッサ
が、1処理要素当たり1つずつ複数のデータ・ストリー
ムを実行することができる。この構造内では、命令実行
を模倣する各ピケット内のデータ依存動作が、SIMD
命令ストリームによって制御される。この結果、SIM
Dマシンが、複数データ・ストリーム(1ピケット当た
り1つ)上で動作し、SIMD命令ストリームを使って
複数命令ストリーム(アドレスされるアレイの1ピケッ
ト当たり1つ)の順序付けを行うことができる、簡単で
拡張可能なマシンが得られる。
【0079】本発明者等は、この新しい概念を使って設
計された新しい「チップ」およびシステムを作成するこ
とにより、大規模並列プロセッサおよびその他のコンピ
ュータ・システムを作成する新しい方法を開発した。本
発明および関連出願の方法は、本明細書および関連出願
で教示される様々な概念を表したものとみなすことがで
きる。各出願に記載された構成要素を本システム中で組
み合わせて、新しいシステムを作成することができる。
また、既存の技術と組み合わせることもできる。
【0080】本明細書および関連出願で、ピケット・プ
ロセッサと、いわゆる拡張並列アレイ・プロセッサ(A
PAP)について詳細に記述する。ピケット・プロセッ
サがPMEを使用できることに留意されたい。ピケット
・プロセッサは、きわめて小型のアレイ・プロセッサが
好ましい、軍事の応用分野で特に役立つ。この点で、ピ
ケット・プロセッサは、APAP、すなわち本発明の拡
張並列アレイ・プロセッサに関連する好ましい実施例と
は若干異なる。しかし、共通性があり、本発明で提供し
た態様および機能は異なるマシンに使用することができ
る。
【0081】ピケットという用語は、プロセッサおよび
メモリと、それらに組み込まれ、アレイ相互通信に適用
される通信要素とから成る、アレイ・プロセッサのn分
の1の要素を指す。
【0082】ピケットの概念は、APAP処理アレイの
n分の1にも適用される。
【0083】ピケットの概念は、データ幅、メモリ・サ
イズ、およびレジスタ数の点でAPAPと異なることが
あり得るが、APAPに代わる大規模並列実施例では、
正規アレイのn分の1の接続性を持つように構成される
が、APAPのPMEは副アレイの一部であるという点
で異なる。どちらのシステムもSIMIMDを実行する
ことができる。しかし、ピケット・プロセッサは、PE
内にMIMDを持つSIMDマシンとして構成されるの
で、SIMIMDを直接実行することができるが、MI
MD APAP構成は、SIMDをエミュレートするよ
うに制御されたMIMD PEを使ってSIMIMDを
実行する。どちらのマシンもPMEを使用する。
【0084】どちらのシステムも、アレイ通信ネットワ
ークによって相互接続された^N^個の要素を持つアレイ
のアレイ処理ユニットを備える、並列アレイ・プロセッ
サとして構成することができる。ここで、プロセッサ・
アレイのN分の1は、処理要素、それに関連するメモ
リ、制御バス・インタフェース、およびアレイ通信ネッ
トワークの一部である。
【0085】並列アレイ・プロセッサは、2つのモード
の一方または両方で動作するように処理ユニットに指令
することができ、処理ユニットがSIMD動作およびM
IMD動作のためにこれらの2つのモード間を自由に移
動することができる、2重動作モード機能を有する。そ
の際に、SIMDがその編成のモードである時は、処理
ユニットは、各要素にそれ自体の命令をSIMIMDモ
ードで実行するよう指令することができ、そのMIMD
が処理ユニット編成の実施モードの時は、処理ユニット
は、MIMD実行をシミュレートするためにアレイの選
択された要素を同期させることができる。本明細書では
これをMIMD−SIMDと呼ぶ。
【0086】どちらのシステムでも、並列アレイ・プロ
セッサは、アレイの要素間で情報をやり取りするための
経路を有するアレイ通信ネットワークを提供する。情報
の動きは、次の2つの方式のどちらかで指示することが
できる。第1の方式では、アレイ制御装置が、すべての
メッセージが同時に同一の方向に移動するように指示
し、したがって移動されるデータがその宛先を定義する
ことはない。第2の方式では、各メッセージが自分で経
路を指定し、メッセージの始めにあるヘッダが宛先を定
義する。
【0087】並列アレイ・プロセッサ・アレイのセグメ
ントは、単一の半導体チップ上に設けた処理ユニットの
複数のコピーを有する。アレイのセグメントの各コピー
は、アレイ通信ネットワークのうちそのセグメントと関
連する部分と、アレイのそのセグメント部分をアレイの
他のセグメントとシームレスに接続してアレイ通信ネッ
トワークを拡張できるようにするためのバッファ、ドラ
イバ、マルチプレクサ、および制御機構とを含む。
【0088】制御装置からの制御バスまたは制御経路が
各処理ユニットごとに設けられて、制御バスがアレイの
各要素に延びて、その活動を制御するようになってい
る。
【0089】並列アレイの各処理要素セグメントは、プ
ロセッサ・メモリ要素の複数のコピーを含む。プロセッ
サ・メモリ要素は、単一の半導体チップの範囲内に含ま
れ、アレイの1セグメントを有し、チップ内に含まれる
アレイ・セグメントへの制御の通信をサポートするため
にアレイ制御バスの一部分およびレジスタ・バッファを
含む。
【0090】どちらのシステムも、メッシュ移動および
経路指定移動を実施することができる。通常、APAP
は、チップ上の8個の要素がある方式で相互に関連し、
チップ同士は別の方式で相互に関連する、2重相互接続
構造を実施する。上述のように、一般に、チップ上での
プログラマブル経路指定によってPME間にリンクが確
立されるが、ノードは別の方式で関連させることがで
き、通常はそのようになっている。一般に、チップ上の
正規APAP構造は2×4メッシュであり、ノード相互
接続は経路指定された疎8進Nキューブとすることがで
きる。どちらのシステムも、PE間にPE間相互通信経
路を有し、2地点間経路からマトリックスを構成するこ
とができる。
【0091】このような背景および見通しの上に立っ
て、図面を参照しながら、本発明の好ましい実施例に関
する本発明の特徴および態様について詳細に説明するこ
とにする。この詳細な説明では、単独でまたは関連出願
の機能と組み合わせて使用できる本発明の諸態様につい
て説明する。
【0092】
【実施例】以下、本発明の好ましい実施例について説明
する。まず、好ましい浮動小数点実施例の一般的考察か
ら始める。浮動小数点実施態様のこの実施例は、(ピケ
ットとして形成された)処理要素の並列アレイで使用す
ることが好ましいが、従来技術の並列アレイ・プロセッ
サで使用することができる。したがって、より適切な方
向付けを与えるため、そのようなシステムについて考察
するのが適切であろう。
【0093】図面を参照すると、図1は、従来技術のS
IMDシステムを表す。そのような従来技術の装置で
は、SIMDコンピュータは、それぞれが複数のSIM
Dメモリ・デバイスの1つと関連する複数の並列リンク
・ビット直列プロセッサを含む、並列アレイ・プロセッ
サを有する単一命令複数データ・コンピュータである。
入出力システムは、SIMDユニットへのステージング
・システムとして働く。入出力システムは、ホスト・コ
ンピュータ(メインフレームまたはマイクロプロセッサ
でよい)とSIMDコンピュータの間での両方向2次元
データ転送用の一時記憶域を有する。入出力システム
は、ホスト・コンピュータと一時記憶手段の間のデータ
の流れを制御し、一時記憶域と、バッファ・セクション
または大規模メモリの区画として通常編成される、複数
のSIMDメモリ・デバイスとの間でのデータの流れを
制御するための入出力処理手段を含む。したがって、入
出力システムの入力動作は、ホスト・コンピュータ・メ
モリから一時記憶域へのデータの転送と、第2ステップ
での一時記憶域からSIMDメモリ・デバイスへのデー
タの転送を伴う。出力の場合も、2次元バスを介してホ
スト・コンピュータとSIMDコンピュータの間でデー
タを転送する、2ステップ処理が行われる。入出力転送
用の入出力システムは、別個のユニット、またはホスト
内のサブユニットとすることもできるが、多くの場合、
SIMDコンピュータ内の一ユニットであり、SIMD
制御装置が一時入出力バッファ記憶域の制御機構として
働く。
【0094】SIMDコンピュータ自体は、複数の処理
要素と、個々の処理要素と複数の従来の別個のSIMD
メモリ・デバイスを接続するネットワークとを有する、
プロセッサ・アレイを含んでいる。SIMDコンピュー
タは、リンクされて並列に動作する多数の個別の処理要
素を有する、並列アレイ・プロセッサである。SIMD
コンピュータは、処理要素用の命令ストリームを生成
し、かつコンピュータに必要なタイミング信号を供給す
る制御ユニットを含む。様々な処理要素を相互接続する
ネットワークは、個々の処理要素用の何らかの形の相互
接続方式を含む。この相互接続は、メッシュ、多形トー
ラス、ハイパーキューブなど多数のトポロジーを採用す
ることができる。複数のメモリ・デバイスは、個々の処
理要素のビット・データを即時に記憶するためのもので
ある。処理要素の数と、大規模メモリのバッファ区画と
することができるメモリ・デバイスの数との間には、1
対1の対応関係がある。
【0095】図1に示すように、SIMDマシンはホス
ト・プロセッサ28を有する。このプロセッサを使用し
て、アレイ制御装置14(一時記憶域バッファを含む)
にマイクロコード・プログラムをロードし、アレイ制御
装置14とデータを交換し、ホストと制御装置の間のデ
ータ・バス30およびアドレス/制御バス31を介して
アレイ制御装置14の状況を監視する。この例のホスト
・プロセッサは、メインフレームやパーソナル・コンピ
ュータなど適当な汎用コンピュータなら何でもよい。こ
の従来技術の例では、アレイのアレイ・プロセッサを2
次元的に示してあるが、アレイを3次元クラスタ配列や
4次元クラスタ配列など異なる編成にすることもでき
る。SIMDアレイ・プロセッサは、処理要素P(i,
j)のアレイ12と、処理要素P(i,j)に大域命令
のストリームを発行するためのアレイ制御装置14を備
えている。図1には示してないが、この従来技術の例
は、一時に1個のビットに作用する処理要素と、その処
理要素に関連するメモリ内の区画である関連記憶域のブ
ロックとを有する。処理要素は、NEWS(北、東、
西、南)ネットワークにより、両方向ビット線でそれぞ
れの隣接処理要素と接続される。すなわち、処理要素P
(i,j)は、北、東、西、南の各方向でそれぞれ処理
要素P(i−1,j)、P(i,j+1)、P(i,j
−1)、P(i+1,j)に接続される。この典型的な
例では、NEWSネットワークは、そのエッジでトロイ
ド状に接続され、北のエッジと南のエッジが両方向に相
互接続され、西のエッジと東のエッジも同様に相互接続
される。データをプロセッサのアレイに入出力できるよ
うにするため、制御装置とアレイの間のデータ・バス2
6がNEWSネットワークに接続される。図のように、
このデータ・バス26はアレイの東西の境界に接続され
ている。トロイド状の東西NEWS接続に接続された両
方向3状態ドライバにより、東西方向の代わりに南北境
界に接続することも、東西境界と南北境界の両方に接続
することもできる。この例の処理要素の数が、この例の
ように16×16ではなく32×32であったなら、後
述する好ましい実施例の場合と同様に、従来技術でも1
024個の処理要素が実現されるはずである。図では、
単一線は単一ビット線を示し、機能要素を接続する2重
線は複数の接続線またはバスを表すのに使用する。
【0096】この従来技術の例では、アレイ制御装置
が、命令バス18を介して処理要素に命令を並列に発行
し、行選択線20および列選択線22を介してそれぞれ
行選択信号および列選択信号を発行する。これらの命令
は、処理要素に、記憶域からデータをロードさせ、それ
を処理させ、その後再度記憶域に格納させる。この目的
のため、各処理要素はメイン・メモリのビット・スライ
ス(セクションまたはバッファ)にアクセスすることが
できる。したがって、論理的には、アレイ・プロセッサ
のメイン・メモリは、1024個の処理要素のアレイ用
の1024個の区画スライスに分けられる。すなわち、
1転送ステップで、一時に最大32個の32ビット・ワ
ードが記憶域にまたは記憶域から転送できる。読取り動
作または書込み動作を実行するため、メモリは、アドレ
ス・バス24を介してメモリ・アドレス線に供給される
インデックス・アドレスによってアドレス指定される。
各処理要素に読取り命令または書込み命令が並列に供給
される。読取り動作時には、行選択線上の行選択信号お
よび列選択線上の列選択信号が、動作を実行すべき処理
要素はどれかを識別する。したがって、この例では、ア
レイが32×32のとき、メモリから、選択された行の
32個の処理要素に単一の32ビット・ワードを読み込
むことが可能である。処理要素は、スライスまたは1ビ
ット幅のメモリ・ブロック(i,j)と関連付けられ
る。このスライスまたはブロック・メモリは、関連する
個々の処理要素と論理的に1対1に関連付けられるが、
別のチップ上では物理的に分離することができ、通常は
そうされる。この従来技術のアーキテクチャでは、どの
ようにすれば下記の種類の単一のチップ上にアレイ・プ
ロセッサを製造できるのかは不明である。本発明のピケ
ットは、プロセッサのアレイおよび適切なメモリを備え
て製造することができる。
【0097】この従来技術の例の処理要素P(i,j)
はそれ自体、ALUと、それぞれ単一ビットの情報を格
納することができる、繰上げを含む入力レジスタおよび
出力レジスタとを備えていることを理解されたい。マル
チプレクサが、ALUの入出力に接続され、かつ個々の
処理要素P(i,j)に関連するメモリのスライス
(i,j)の両方向データ・ポートに接続されている。
【0098】命令バスとデータ・バスが別々にあり、ア
レイ制御装置は、ホスト28が、データ・バス30およ
びアドレス/制御バス31を使って、アレイによって実
行される処理を定義するマイクロコードをロードするた
めのマイクロコード記憶域を有する。アレイ制御装置の
動作がホスト28によって開始された後、マイクロコー
ドの順序は、アレイ制御装置14内のマイクロコード記
憶域に接続されたマイクロコード制御装置によって制御
される。アドレス・バス上に出力される、アレイ・メモ
リ・アドレスの生成、ループのカウント、ジャンプ・ア
ドレスの計算、および汎用レジスタの動作に、アレイ制
御装置のALUとレジスタ・バンクが使用される。アレ
イ制御装置はまた、行マスク・コードおよび列マスク・
コードを復号するためのマスク・レジスタをも有する。
特定の命令コードが、命令バスを介して処理要素に渡さ
れる。この例では、アレイ制御装置は、制御装置内にあ
るが、機能的にはホストと制御装置の間のバスと制御装
置とアレイの間のデータ・バスの間にある、データ・バ
ッファを有することができる。制御記憶域内のマイクロ
コードの制御下で、このバッファからプロセッサのアレ
イにデータがロードされる。逆方向も同様である。この
目的のため、バッファは、アレイ制御装置内のマイクロ
コード制御機構の制御下で両方向FIFOバッファとし
て配置される。そのような従来技術のシステムの詳細
は、上記に引用した例、特に図1に示すヨーロッパ特許
出願第88307855/88−A号を参照されたい。
【0099】従来の試みの総括を、本発明の好ましい実
施例と比較することができる。図2には、基本ピケット
・ユニット100を示す。基本ピケット・ユニット10
0は1クロック・サイクルで1バイトの情報を処理する
ための、処理要素ALU101と処理要素に結合された
ローカル・メモリ102との組合せを備えている。図の
ように、シリコンのベース・チップまたはピケット・チ
ップ上に、両側(図の右側と左側)に隣接ピケットがあ
るピケットの線形アレイを備える、ピケット・ユニット
が形成され、その結果、シリコンのベース・チップ上
に、複数のローカル・メモリを備えたピケット処理アレ
イが形成される。ローカル・メモリは、各バイト幅処理
データ・フローごとに1つずつあり、データを左右両方
向に受け渡しするための隣接ピケット通信バスを備えた
論理行または線形アレイとして配列されている。ピケッ
ト・チップ内のピケットの集合は、幾何的順序で配列さ
れ、チップ上に水平に配列することが好ましい。
【0100】図2は、複数のメモリおよびデータ・フロ
ーを有し、各ピケットの処理要素とメモリの間に通信経
路を備える、ピケット・チップ上のピケット・アレイの
2つのピケットの典型的な実施態様を示す。本発明の好
ましい実施例では、アレイの1対1の関係にあるメモリ
と処理要素の間のデータ通信経路はバイト幅であり、左
右に延びて、隣接ピケットと、またはさらに遠隔のピケ
ット・プロセッサとの通信のための「スライド」と接し
ている。
【0101】「スライド」とは、情報を受け取る非隣接
位置のピケットがその情報を受け取るまで、そのピケッ
ト・アドレス位置を介して単一サイクルで情報を転送す
るための手段と定義することができる。しかし、メッセ
ージを受信するピケットに最も近い活動状態の隣接ピケ
ットが、送られてくるメッセージに対して透過的でない
場合、メッセージが前記隣接ピケットに到着することと
なる。したがって、スライドは、「オフになった」ピケ
ットを横切って非隣接位置に情報を送ることによって機
能するので、例えば、ピケット"A"が遠隔ピケット"G"
に情報を転送しようとしている場合、そのサイクルの前
に、途中に介在する"B"ピケットないし"F"ピケットを
オフにすることにより、これらのピケットを透過的にし
ておき、次の単一サイクルで、"A"は、そのメッセージ
を右側に送り、その際に、オフになっているために透過
的になっている"B"ないし"F"を通過し、"G"はオンの
ままなので、メッセージを受け取る。"スライド"の通常
の使用では、情報が格子を横切って直線的に転送される
が、スライド手法は、2次元メッシュまたは多次元アレ
イでもうまく働くことができる。
【0102】本発明の好ましい実施例では、処理要素の
アクセスは、ビット直列動作ではなく、バイト直列動作
である。各プロセッサは、ローカル・メモリのブロック
や、その関連する区画またはページにアクセスするので
はなく、それ自体に結合したメモリにアクセスする。1
ビット・バスではなく文字幅または文字倍数幅のバスが
設けられている。1クロック・サイクルで、1ビットで
はなく1バイト(将来のシステムでは、文字バイトの性
能を倍加し、複数バイトとすることが計画されている)
の情報が処理される。したがって、各ピケット処理要素
間を、関連するメモリの幅に適合した8ビット、16ビ
ット、または32ビットが流れることができる。本発明
の好ましい実施例では、各ピケット・チップが、32K
バイトの8(9)ビット幅メモリを有し、線形アレイの
1ピケット・ノード当たりこの32Kバイトの記憶域を
1個ずつ備えたピケットを16個有することが好まし
い。本発明の実施例では、DRAMとしてのCMOSに
各関連メモリが設けられ、文字バイトは9ビットである
(自己検査機能を備えた8ビット文字として機能す
る)。
【0103】ピケット間および処理要素とそのメモリの
間の並列経路バイト幅バス・データフローは、従来技術
のシステムの直列ビット構造と比べて大幅な改善であ
る。また、この重要な成果を評価すれば、並列性が増す
と、解決しなければならない別の問題が発生することが
認識されよう。新たに実現されたアーキテクチャの持つ
意味の理解が深まるにつれて、後述する他の重要な解決
策の価値も認められよう。
【0104】図面を参照しながら説明した左右の隣接ピ
ケットへの転送およびスライド機構に加えて、もう1つ
の評価される特徴として、2重バイト幅の同報通信バス
を設けて、すべてのピケットが同時に同一のデータを見
ることができるようにした点がある。ピケット制御およ
びアドレス伝播も、この同報通信バス上で転送される。
セット関連動作およびその他の比較動作または同期演算
動作を実行する際に比較データを供給するのはこのバス
である。
【0105】単一命令ストリームの制御下でピケット・
データ処理要素内での処理に役立つ高度に並列なデータ
構造を有するタスクには、人工知能パターン突合せ、マ
ルチセンサ最適割当てにおけるセンサとトラックのフュ
ージョン、文脈探索、およびイメージ処理のアプリケー
ションが含まれる。しかし、現在可能なこれらのアプリ
ケーションの多くは、SIMDプロセスでは使用されな
かった。これは、SIMDプロセスが単一クロック時間
での直列ビット処理であるためである。たとえば、SI
MDマシンの従来の直列処理要素は、各プロセッサ・サ
イクルごとに1ビットのADD演算を実行するが、32
ビット並列マシンは1サイクルで32ビットのADDを
実行することができる。
【0106】1処理要素当たり32Kバイトの構成を用
いると、各処理要素が論理的に使用できるメモリの量
が、従来のSIMDマシンよりもはるかに多くなる。
【0107】チップに出し入れされるデータが最小限に
抑えられているので、チップ上のピン数が少なくなって
いる。DRAMメモリは、従来のメモリCMOSアレイ
であり、メモリ・アレイの背後の行のデマルチプレック
ス処理を削除し、メモリ・アレイの行をデータフローに
並列に読み込む行アドレスを提供することによって、
「行/列」アクセスをサポートする。
【0108】このメモリは、データの他に「トライビッ
ト」または「トリット」を含むため、論理機構は従来の
2進数ではなく、論理1、論理0、"don^t care"という
3つの状態を認識する。突合せフィールド中の"don^t c
are"は、論理1または論理0のいずれかと一致する。ト
リットは、記憶アレイ内の連続する記憶位置に格納され
る。マスクは、メモリに格納された別の形のデータであ
り、ピケット処理要素のマスク・レジスタに送られる。
【0109】記憶アレイはコマンドを格納できるので、
あるピケットが別のピケットと異なる動作を行えるよう
になる。必ずしもすべてのピケットではないがほとんど
のピケットに関連する動作中の個々のピケットのオンチ
ップ制御により、SIMD動作に特有の実施態様が可能
になる。提供される簡単な制御機能の1つは、その状況
出力が特定の条件を満たす任意のピケットにおける中断
動作を制御する機能である。すなわち、非ゼロ条件は、
ドーズ(居眠り)、すなわち動作を中断し、ピケットを
非活動状態ではあるが意識のある状態にするコマンド条
件を意味している。提供されるもう1つ別のコマンド
は、ピケット内の条件に基づいて、またはスライド動作
の前にバスに提供されたコマンドに基づいて、メモリへ
の書込みを禁止または使用可能にするものである。
【0110】それぞれ32Kバイトのメモリを備えた1
6個の強力なピケットをピケット・チップに適用するこ
とにより、わずか64個のチップで、1024個のプロ
セッサと32768Kバイトのメモリが提供される。こ
のピケットのアレイは、セット連想メモリを備えてい
る。本発明は、数値計算中心の処理であるイメージ分析
ならびにベクトル処理に有用である。この強力なピケッ
ト処理アレイが、現在ではわずか2枚の小型カード上に
パッケージできる。より可能性のある低電力パッケージ
に数千個ものピケットを適切にパッケージでき、最小の
遅延で、あるいはビデオ・フレーム時間内でイメージ処
理アプリケーションを実行できることが理解されよう。
たとえば、ペイロードの問題を余り気にせずに、航空機
の飛行中にアプリケーションの実行が可能である。
【0111】このピケットの力により、狭い面積にパッ
クされた大規模な関連メモリ・システムの使用が可能に
なり、システム設計者が新規システムの使用に慣れた後
には様々なアプリケーションで処理能力の使用が可能に
なる。
【0112】図3は、関連付けが要求されたとき、すべ
てのメモリ位置に比較値が提示され、すべてのメモリ位
置がその一致線で同時に応答するために、完全連想メモ
リと言える機構を示している。連想メモリ自体は当技術
分野で周知である。本発明のシステムでは、メモリと、
探索を行うためのバイト転送を有する処理要素とから成
る並列ピケットを使用し、データの入力と、メモリ内の
N個のワードのうちからワードKを見つけるための探索
用マスクとがある。一致するすべてのピケットが状況線
をハイにした後、別の動作で一致する最初のKが読み取
られまたは選択される。この動作は通常、セット連想式
と呼ばれているが、連続するワードについてピケット・
メモリ中を上に向かって繰り返すことができる。同様
に、書込みは、ハイになった選択線が参加を示す同報通
信動作を介して行われ、同報通信データが、選択された
すべてのピケットにコピーされる。
【0113】好ましいものではないが、別の実施例で
は、使用可能なDRAMメモリの量を減らして、各ピケ
ットに図3に示す種類の完全連想メモリのセクションを
含めることができるようにする。たとえば、512バイ
トの完全連想メモリを含める場合、あらゆるピケットが
1組の探索索引を格納でき、単一の動作で1024個の
ピケットに512をかけて、1動作当たり512キロ回
の比較、すなわち1動作当たり1マイクロ秒の速度とし
て、毎秒512ギガ回の比較が可能になる。拡張可能性
があれば、この概念を数テラ回の範囲の比較まで拡張す
ることができる。この実施例では、情報の広範な探索を
必要とする連想タスクに、現在使用可能なコンピューテ
ィング能力をかなり上回る能力を与える。
【0114】図2に示すように、関連付け動作で、メモ
リと、バイト幅の結合された処理要素とを使用すると
き、個々のアルゴリズムや演算、人工知能、およびSI
MD状況で試行される並列プログラミングなどのアプリ
ケーションの他に、SIMD環境において上述のチップ
構成を有するマシンにとって現在使用可能なアプリケー
ションが多数ある。以下にその例を示す。
【0115】・単純並列可能演算タスク。マトリックス
乗算や、専用メモリ・マシンで実行可能なその他のタス
クを含む。
【0116】・イメージ突合せと、フォン・ノイマン型
マシンでも実行できるが、極端な並列性に適合可能なア
プリケーションによってかなり高速化できるイメージ処
理タスク。たとえば、3次元イメージのパターン突合
せ。
【0117】・データに基づく照会機能
【0118】・人工知能分野でのパターン突合せ
【0119】・ネットワークのブリッジの反対側にいる
ユーザに送信されるメッセージを迅速に識別するため
の、ブリッジにおけるネットワーク制御
【0120】・ゲート・レベルのシミュレーション
【0121】・VLSI接地規則の違反を調べる検査プ
ログラム
【0122】アプリケーション・プログラマは、この新
規システム・アーキテクチャの能力を利用するアプリケ
ーションを開発する際に、メモリおよび関連処理要素の
バンクを利用する処理タスクを思いつくであろう。
【0123】本発明の新規アーキテクチャを利用する
際、プロセスの変更によって通常のアプリケーションが
機能強化される。ディジタル・システムの記述を維持す
るプロセスは、このアレイを使って100ピケットごと
に1つのゲートまたは論理要素を記述することによって
機能強化できる。そのようなシステムでは、各ゲートの
記述を、ゲートが入力として受け入れる信号のリストと
して割り当て、ゲートが生成する信号を命名することに
より、処理が開始する。本発明では、信号が変化するた
びに、その名前をバス103を介してすべてのピケット
に同報通信し、この名前を、予想される入力信号の名前
と並列に比較するステップを含むことになる。一致が見
つかった場合、後続ステップで、そのピケット内でデー
タフロー・レジスタ・ビットに信号の新しい値を記録す
る。すべての信号の変化が記録されると、そのような拡
張プロセスでは、すべてのピケットが、1組の現入力を
使って出力をどう計算するかをデータ・フローに知らせ
る制御ワードを並列に読み出す。次にこれらの演算を並
列に実行し、その結果をローカル・ゲートからの古い値
と比較する。次に、この改良されたプロセスでは、その
出力が変化したピケットのゲートをすべてデータフロー
状況ビットとして記録する。次に、外部制御装置がすべ
てのピケットに問い合わせ、次の変更済みゲートを求め
る。次いで、元の記述通り、システムは適切な信号名お
よび値をそのピケットから他のすべてのピケットに同報
通信し、信号の変化が起こらなくなるまで、またはプロ
セスが停止するまでこのサイクルを繰り返す。
【0124】本システムを使用するために開発すること
のできるもう1つのプロセスは、ディクショナリ名の探
索である。ディクショナリ名の探索では、すべての名前
の最初の英字を、同報通信データ・アドレス・バス10
3上の所望の同報通信名の最初の英字と比較できるよう
に、ピケット・メモリ102に名前を格納しておく。一
致しないすべてのピケットは、本発明で提供する制御特
性によりオフになる。次に、第2の英字を比較し、活動
状態のピケット・ユニットがなくなるまで、またはワー
ドの最後に達するまで、連続する英字(文字)について
この比較の後にオフにする手順を繰り返す。活動状態の
ピケット・ユニットがなくなるか、またはワードの最後
に達すると、残りのピケット・ユニットを照会し、シー
ケンサによって所望のデータのインデックスを読み出
す。
【0125】図4は、SIMDサブシステムとして構成
できる並列アレイの一部として単一のシリコン・チップ
上に行として配列された、複数の並列プロセッサとメモ
リ、すなわちピケット・ユニットの基本ピケット構成を
示し、かつそのようなシステムの制御構造を示してい
る。図4には、制御プロセッサおよび監視マイクロプロ
セッサも示されている。図4では、同一のチップ上のメ
モリおよび並列処理要素論理機構が、ピケットのアレイ
と記したセクションに示されている。各メモリはnビッ
ト幅であり、前述のように1文字幅すなわち8(9)ビ
ットであることが好ましい。しかし、概念的には複数バ
イト幅メモリのワード幅を有することもできる。したが
って、並列ピケット処理要素のメモリ部分は8(9)ビ
ット幅であることが好ましく、さもなければ16ビット
幅または32ビット幅である。現行のCMOSファウン
ドリ技術を使用する場合は、各ピケット処理要素と共に
8ビットまたは1文字幅の連想メモリ(自己検査を含め
て9ビット幅バイト)を使用することが好ましい。メモ
リは、ALU、マスク・レジスタ(質問と回答かマスク
動作に使用される)およびラッチ104(図4のS
P)、ならびに状況レジスタ107とデータフロー・レ
ジスタA 105およびQ 106(図4のDF)を含
む、結合された処理要素と直接に1対1に対応する。こ
れらの要素は、図2のピケット図に詳細に示してある。
各ピケット・プロセッサのDRAMおよび論理機構に
は、相互接続ネットワークと競合するという負担はな
い。というのは、マルチビット幅DRAMメモリとその
処理要素がチップ自体上で直接に1対1に対応するから
である。
【0126】図4では、メモリと処理要素のALUの関
連論理機構の間にスライドBレジスタ・ラッチ(SR)
104が論理的に配置されており、ラッチが基本的に、
ピケット・アレイに沿った各処理要素の結合ポートとな
ることに留意されたい。各ピケット・チップは、ピケッ
ト制御機構と通信できるように線(真っすぐなバスとし
て示してある)状に配列された複数の並列ピケット処理
要素を備えている。ベクトル・アドレス・バスは、メモ
リに共通であり、データ・ベクトル・アドレス・レジス
タが、各メモリにどのデータが渡されるのかを制御す
る。
【0127】図4はまた、メイン・プロセッサ・カード
またはマイクロプロセッサ・カードと、サブシステム制
御装置との間の相互接続を示している。メイン・プロセ
ッサ・カードまたはマイクロ・プロセッサ・カードは、
本発明の好ましい実施例では、PS/2システムとして
構成された386マイクロプロセッサである。サブシス
テム制御装置を介して、大域命令がかん詰ルーチン・プ
ロセッサ(CRP)に送られる。このかん詰ルーチン・
プロセッサは、本発明で提供され、命令シーケンサ40
2と命令シーケンサから要求される特定のマイクロコー
ドを実行する実行制御機構403とに命令を供給する。
この命令シーケンサは機能上制御装置と類似するもので
よい。ただし、本発明では、かん詰ルーチン・プロセッ
サ内に、ローカル・レジスタ405をも設ける。このロ
ーカル・レジスタ405は、ローカル・レジスタALU
(図示せず)とともに、ピケット・アレイ406内のす
べてのピケットに同報通信されるすべてのアドレス指定
の基礎を提供する。このようにして、ピケット資源を使
用せずに、または恐らくはピケット実行サイクルを使用
せずに、1つのALU内のすべてのピケットについてア
ドレス計算が実行される。この重要な付加機能によっ
て、ピケット・アレイに制御の柔軟性が与えられ、ドー
ズ機能、禁止機能、および特殊タスクを実用するための
その他の制御機能が実行できるようになり、ピケットを
どんな同報通信命令やデータ機能からも分離することが
可能になる。
【0128】マイクロコード407をロードされた命令
シーケンサ402は、ピケットのアレイに同報通信を行
って、メイン・プログラム・マイクロプロセッサ(M
P)と、かん詰ルーチン実行時ライブラリ408のかん
詰ルーチンとによって決定されたSIMD命令シーケン
スの下で実行するように求め、ピケットのアレイに含ま
れるデータのSIMD処理を可能にする。
【0129】サブシステム・インタフェースを介してマ
イクロプロセッサ(MP)に提供される命令は、マイク
ロプロセッサ(MP)のサブシステム制御装置からマイ
クロプロセッサに渡されるStart Process
(処理開始)、WriteObser.(書込み監
視)、Read Result(結果読取り)を含め
て、高レベルの処理コマンドであると考えられる。この
マイクロプロセッサは、図4、図5、図6、および図7
に示すサブシステム・アレイにおけるメイン・システム
または制御プロセッサとみなすことができる。このユニ
ットは、キーボードや表示装置などの周辺入力装置(図
示せず)を付加したスタンドアロン・ユニットでもよい
ことを理解されたい。このスタンドアロン構成では、シ
ステムMPを、図7に示す線に沿って、シーケンサ・カ
ード(かん詰ルーチン・プロセッサを構成する)とプロ
セッサ・アレイ・カードを含むカードが挿入される、商
用PS/2とみなすことができる。ルーチン・ライブラ
リ411は、CALL(,);Kalman、Conv
olve、Nav.Updateなどプロセスの全体的
制御用のルーチン・シーケンスを含むことができる。こ
れらのルーチンの選択はユーザ・プログラムを介して行
われ、したがって処理全体を外部ホストの制御下、また
はMP内にあるユーザ・プログラム412の制御下で行
うことができる。並列ピケット・プロセッサ・システム
との間でのデータ転送用にMPメモリ内にデータ・バッ
ファ413が設けられている。命令シーケンサ402
は、MPからの制御ストリームと、かん詰ルーチン実行
時ライブラリ・メモリ408に常駐するかん詰ルーチン
を実行するように構成される。これらのルーチンには、
かん詰ルーチン実行時ライブラリ408によって提供さ
れるかん詰ルーチンのCALL(,)、Load Bl
ock、Sin、Cos、Find、Min、Rang
e Compが含まれる。
【0130】CRP内には、Load機能、Read機
能、Add機能、Multiply機能、Match機
能などの低レベル機能の実行制御用のマイクロコード4
07もある。
【0131】各処理ユニットごとに外部FOR/NEX
T制御を設けることが好ましく、かつ実際にこれを設け
る。また、決定的浮動小数点バイト正規化を実施する。
【0132】本発明によって提供される、システムのマ
クロ開発のために決定的手法を使用すると、ピケットの
グループ化およびグループ制御が可能になる。個々のピ
ケット処理の変動に対処するためのローカル・ドーズ機
能が提供されている。
【0133】ユーザ・プログラムをプロセッサ・アレイ
によって実行する必要がある場合、ピケット・プロセッ
サのアレイに原始コマンド、アドレス、および同報通信
データが提供される。
【0134】システムの各部分がどの機能を使用するか
は、実行すべきタスクによって決まり、ユーザ・プログ
ラムのコンパイル時に割り当てられる。
【0135】このサブシステムの柔軟性は、かなり一般
的な問題で例示することができる。行列乗算問題...
|x| * |y| = |z|を例として取り上げる。
【0136】これは、下記のような問題として記述され
る。
【数1】
【0137】これは、たとえば次のステートメントによ
って解かれる。各ステートメントの隣に、パスの数と、
1パス当たりのクロック・サイクルの数を示してある。
【0138】 * 固定小数点(4バイト)/浮動小数点(1+4バ
イト)−− 下記参照
【0139】上記の例から、上記のステートメント08
で識別されるタスクが、サイクル時間の約98%を要す
ることが理解されよう。したがって、このタスクは、並
列ピケット・プロセッサのSIMD編成に割り当てられ
る。他のプロセスはサイクル時間のうちわずか2%しか
要せず、これらのプロセスはマイクロプロセッサ内のア
ーキテクチャに維持される。
【0140】したがって、この行列乗算の例を検討する
と、これは実行のためにMP、CRP、ローカル・レジ
スタ(LR)またはピケット・アレイのいずれかに割り
当てられる(各ステートメントは、コンパイルされる
と、特定のシステム位置で実行を引き起こす)。
【0141】上の行列乗算の例では、ステートメント0
1はメイン・プロセッサMPに割り当てられ、ステート
メント02、05、10、11、13、14、15、1
7はローカル・レジスタ(LR)に割り当てられる。ス
テートメント03、04、06、12、16、18、1
9は、かん詰ルーチン・プロセッサ内で実行されるよう
に割り当てられる。普通なら時間のかかる行列処理は、
単一命令の下で実行されるようにピケットのアレイに割
り当てられ、ステートメント08もピケットのアレイに
割り当てられる。
【0142】図5は、複数の並列ピケット・プロセッサ
を備えた多重並列ピケット・プロセッサ・システム51
0を示している。複数ターゲット追跡、センサとデータ
のフュージョン、信号処理、人工知能、衛星イメージ処
理、パターン/ターゲット認識、リード・ソロモン・コ
ード化/復号演算などのアプリケーション用には、好ま
しい実施例では1024個の並列プロセッサ1個ごとに
2〜4枚(ここでは、1システム当たり4枚のカードと
して表す)のSEM Eカード511を備えた、102
4個の並列プロセッサを有するSIMDシステムとして
構成できる、システムを製作した。個々のカード512
は、ウェッジロック・スライド514を備えたラック取
付けシステム格納機能513に挿入可能である。カード
は挿入/取外しレバー516を備えており、カバー51
7を閉じると、32〜64Mバイトの記憶域と毎秒約2
0億演算の性能を有する取付け可能システムが、ラック
内に効果的に格納される。このシステムはコンパクトで
あり、複数のピケットのアレイが、論理機構を有し複数
のカードの相互接続を可能にする、バックパネル・ボー
ドに挿入される。
【0143】4枚のSEM Eカード上に32Mバイト
の記憶域を備えたプロセッサが形成され、システムの重
量はわずか13.6kg(30ポンド)程度である。電
力は、図の電源519によって供給される。そのような
電力の空冷プロセッサの必要電力は、わずか280W程
度と見積もられる。各SIMDシステムは、関連するメ
インフレームまたは世界の他の地域とのチャネル・アダ
プタ通信用の2つの入出力ポート520を有する。それ
ぞれ4論理ページから成り、標準のモジュール式アビオ
ニクス・パッケージングおよび外部メモリへの接続用の
バス構造(たとえば、PIバス、TMバス、およびIE
EE 488バス)を使用する、図の多重並列ピケット
・プロセッサでは、プロセッサは、入出力ポートを介し
てミッション・プロセッサのメモリ・バスに接続するこ
とができ、ミッション・プロセッサ・メモリ空間の拡張
部分とみなすことができる。
【0144】1024個の並列処理要素を含む、図の多
重並列ピケット・プロセッサでは、各プロセッサは32
Kバイトのローカル・メモリを有し、ピケット並列プロ
セッサへの関連する経路は並列8ビット幅または1文字
幅(9ビット)である。
【0145】各ピケット内のプロセッサは、バックプレ
ーン相互接続ネットワークを介して、他の隣接プロセッ
サとデータを交換し、かつページ間でデータを交換す
る。ネットワークとしてはクロスバーが好ましいが、ス
ライド・クロスバー、シャッフル・ネットワーク、ベー
ス3Nキューブ、ベース8Nキューブでもよい。
【0146】システムの個々のプロセッサは4枚のカー
ドのうち2枚のカードのパック内に収容されており、1
枚のカード上にはPS/2マイクロプロセッサが収容さ
れている。一方、図6および図7に概略を示すシステム
を構成する4枚のカードの残りの1枚にはかん詰ルーチ
ン・プロセッサ・シーケンサが収容されている。個々の
ピケット100またはピケットのカード512は、ラッ
チ104のアーキテクチャと、シーケンサ・カード 7
03のCRP実行制御機構に結合されたローカル・レジ
スタとによって制御されるデータ条件に基づいて、かん
詰ルーチン・プロセッサと共にオンザフライに構成し
て、動作に入れるようにすることもでき、動作から外す
こともできる。したがって、ピケット・プロセッサは、
浮動小数点演算に関連する位置合せ動作および正規化動
作を独立に実行することができる。
【0147】プロセッサは、共通のシーケンサによって
並列に制御される。シーケンサ・カード703は、ピケ
ット・プロセッサの制御装置CRPを含み、従来のビッ
ト直列処理とも類似するバイト順次方式でSIMDプロ
セッサのアレイ上で実行するようにコード化された、単
一のスレッドの命令をピケット・プロセスに実行させる
ことができる。制御装置には、3つの層がある。ピケッ
トのマイクロ制御は、現在のプロセッサと同様にマイク
ロコード化され、すべてのピケットに並列に転送され
る。マイクロ制御とピケットは同一のクロック・システ
ムCLKに対して同期化され、したがってシーケンサに
よって制御される機能を同一のクロック時間に実行する
ことができる。マイクロ制御シーケンサへのコマンドの
供給は、かん詰ルーチン・プロセッサの役割である。こ
のシーケンサ・カード703は、布線式の制御装置であ
り、大部分の機能の実行時に、ループ制御コマンドを実
行し、新規のマイクロ制御シーケンスを反復して開始す
る。制御装置は、かん詰ルーチン実行時ライブラリ40
8とループ動作機能により、ピケットを、供給が十分
で、コマンドに束縛されない状態に保つ。かん詰ルーチ
ン・プロセッサ制御装置は、メイン・システムによって
呼び出されるマクロの大きな集合を含む。かん詰ルーチ
ン・プロセッサ制御装置は、サブシステム内で主監視ピ
ケット制御装置として働く。これは、ピケット・アレイ
の最上位制御システムである。ピケットのアレイの活動
を管理するのは386マイクロプロセッサである。所与
の瞬間に、アレイのすべてのピケットが同一の命令を実
行することができる。ただし、プロセッサの一部は、制
御フローに対して個別に応答することが可能である。
【0148】個別応答にはいくつかの変形があるが、各
ピケットごとにバイト制御機能(ドーズ、禁止など)が
あるため、ローカル自律性がもたらされる。このローカ
ル自律性は、プログラミングで利用でき、かつプログラ
ムのコンパイル時に提供しシステムの制御下に置くこと
ができる。
【0149】さらに、前述のように、ローカル・メモリ
・アドレス指定の自律性もある。SIMD制御装置シー
ケンサは、すべてのピケットが使用する共通のアドレス
を供給する。各ピケットは、そのアドレスを局所的に増
補して、データ依存メモリ・アクセスを行う能力を強化
することができる。
【0150】さらに、ピケットは、局所的条件に応じ
て、アレイ活動に参加することも、しないことも可能で
ある。
【0151】この特性により、現在では、各ピケットが
それ自体を複数のグループのうちの1グループまたは数
グループに割り当てる手段を設けることにより、SIM
D処理にグループの概念を導入することができる。構成
の変更が基本的にオンザフライで行えるこれらのグルー
プ化に基づいて、処理を進めることができる。ある実施
例では、一時に1つのグループだけまたはグループの1
つの組合せだけを活動状態にすることができ、それぞれ
が同一のSIMD命令ストリームを実行する。ピケット
のサブセットまたはグループによる作業だけを必要とす
る動作もある。プログラミングでこの能力を利用するこ
とができる。ローカル参加自律性は、そのような作業が
可能なように調整される。明らかに、計算を実行するピ
ケットが多ければ多いほど、ローカル参加自律性が向上
する。
【0152】参加ピケットの数を増やす1つの方法は、
各ピケットがそれ自体の命令ストリームを実行できるよ
うにすることである。これは基本的に、SIMD内のM
IMDである。現在、同一のSIMDマシンをMIMD
システムまたは別の構成のマシンとして構成することが
基本的に可能である。というのは、ピケットをそれ自体
の命令のシーケンスで動作するようにプログラミングで
きるからである。
【0153】各ピケットにそれ自体のシーケンスを持た
せることができるので、ピケット・レベルで非常に簡単
な1組の命令を復号することが可能であり、このため、
より広範なローカル処理が行えるようになる。この機能
が最初に適用されそうな領域は、複雑な意思決定であ
る。しかし、簡単な固定小数点処理も、プログラマの関
心を集める領域となろう。
【0154】そのような簡単なプログラムは、たとえば
2Kバイトを超えないピケット・プログラムのブロック
をピケット・メモリにロードすることになる。SIMD
制御装置カード703が、実行制御を介して、指定され
たxyzアドレスからローカル実行を始めるときに、こ
れらのブロックを実行することができる。制御装置が、
非常に多くのクロックをカウントするとき、あるいは図
4に示す状況ファネル(SF)レジスタを監視すること
により、タスク完了信号の有無をテストするとき、ブロ
ックの実行が続行される。
【0155】状況ファネル(図4のSF)は、各ピケッ
ト用のラッチ104を利用する。各ピケットは、ロード
するとピケットの状況条件を反映することができる、ラ
ッチ104を有する。SIMD制御装置は、アレイ状況
線を監視することにより、これらのラッチ(1ピケット
当たり1つ)内の集合値をテストすることができる。こ
のアレイ状況線は、各ピケット状況ラッチの値の論理的
組合せである。
【0156】次の例では、250を上回る値を250≦
x<500の範囲に調整したいものとする。下記のルー
チンは、状況ファネルを使って、このタスクが実行され
たことを検出する。
【0157】 If VALUE < 500 then TURN YOUR PICKET OFF STAT < - PICKET OFF CONDITION IF STAT FUNNEL = OFF then finished .... VALUE < - VALUE - 250 Repeat
【0158】したがって、この多重並列ピケット・プロ
セッサを、様々な方式で、SIMDプロセッサとして構
成することができる。好ましい実施例におけるそのよう
なSIMDマシンは、SIMD制御装置またはSIMD
シーケンサの全体的制御下で、単一スレッドの命令を従
来の方式で実行するようにプログラミングされ、かつ従
来のプロセッサと同様に順次方式でSIMDプロセッサ
のアレイ上で実行するようにコード化される。アプリケ
ーション・レベルでは、これはベクトル命令およびベク
トル型の命令によって実行され、ベクトルはプロセッサ
内でおよびプロセッサ間で処理することができる。ベク
トル命令には、マイクロ命令を、通常6〜10個付加す
ることができる。
【0159】そのような好ましい実施例では、システム
は、図式的には、図6の並列プロセッサ・サブシステム
の機能ブロック図に示すように見える。サブシステム・
シーケンサは、ホスト・インタフェース制御機構413
によって制御されるシステムの入出力ポートを介して、
処理要素の機能を制御する高機能マクロを備えたSIM
Dプログラムと同様に機能する。メモリ・アドレス指定
によって8ビット・バイト幅のデータ・フローが可能に
なり、各機能(論理、加算、乗算、および除算)に8を
法とする算術論理が使用される。浮動小数点フォーマッ
トが設けられ、個々のスリープ・モードおよびドーズ・
モードならびに別々のアドレス指定を有する自律ピケッ
ト動作が可能になる。
【0160】サブシステム制御装置の配列を図7に示
す。各プロセッサ・アレイ・カード512(このサブシ
ステムの図では4枚となっているが、2枚のSEM E
カードに減らすことが可能である)がシーケンサCRP
703に結合され、シーケンサCRP 703はサブ
システム制御装置702に結合される。サブシステム制
御装置702は、メイン・メモリ・システムにポート接
続され、または関連マイクロチャネル・バス706への
チップ705のインタフェースを介して構成内の別のサ
ブシステムに結合される。好ましい実施例では、サブシ
ステム制御装置はIBMのPS/2(IBMの商標)の
汎用マイクロプロセッサ・ユニットであり、インテル3
86プロセッサ・チップおよび4Mバイト・メモリを使
用する。パーソナル・コンピュータ・マイクロプロセッ
サ702は、サブシステム内のチップ705とマイクロ
チャネル型バス706を介してシーケンサのカードにポ
ート接続される。
【0161】SIMD用ローカル自律性の好ましい実施
例 図8は、本発明の好ましい実施例による、アレイ制御装
置がピケットを使用不能にする方法と、ピケットがそれ
自体を活動化および非活動化して、ローカル自律性を提
供する方法を示している。1つまたは複数のピケットを
選択的に使用不能にすると、問題を実行する際の自由度
が大きくなる。これを本明細書ではローカル自律機能に
分類する。すべてのピケットにSIMDコマンドを発行
する能力と、ピケット内のデータに応じてピケットに異
なる動作を実行させる能力は、数種の方式で拡張可能で
ある。1つは、SIMIMDモードと識別されるモード
で、各ピケットに命令を実行させるものである。もう1
つは、分離実行のためにピケットを動的にグループ化す
るものである。もう1つは、ピケット内で浮動小数点調
整動作および正規化動作を効率的に実行できるようにす
るものである。
【0162】たとえば、すでに正であり、変更を必要と
しないデータを有するピケットと、補数演算が必要なデ
ータを有するピケットがある、ABSOLUTE VA
LUEのような普通の単純なタスクを実行するには、ピ
ケットの選択が必要である。このタスクは、データを補
数化して一時位置に入れると同時に、結果の符号でマス
クをセットすると実行できる。そうすれば、次の命令
で、元々正の値を含んでいたピケットの活動を中断する
ことができる。さらに、次の命令で、補数化された(現
在は正の)値が一時位置から元の位置に移される。これ
で、すべてのピケットが正の値が含むようになる。後は
中断されているピケットを再活動化するだけである。
【0163】適用可能なローカル自律機能は、STAT
ラッチが設定されているときだけ記憶動作が行われる、
STORE per STAT(状況によって記憶)で
ある。上述の動作では、この機能により2つのステップ
が節約される。
【0164】中断/再活動化手法では、次の点でいくつ
かの問題が発生する。
【0165】1.遊休プロセッサの影響でマシン効率が
低下する。
【0166】2.マスクをセットしリセットする動作
が、複雑なタスクおよびそのプログラムのかなりの部分
を占める可能性がある。
【0167】3.プロセッサ間でのデータ転送などのタ
スクでは、単純な走行/停止マスク動作と比べて、個々
の単位動作が全く変わる必要がある。
【0168】図2ないし図8に関連して説明した構造を
使用する、本発明の好ましい実施例は、ローカル自律性
の問題に対処するものである。
【0169】SIMIMDの一般的考察 本発明では、ピケットのSIMDアレイ内のピケットの
設計に適用すると、以前はタスクの実行が困難または不
可能であった動作が容易に実行できるようになる、実施
技法をいくつか提供する。その結果、各ピケットはある
程度のローカル自律性を持つようになる。
【0170】これらの概念は、従来の技術の走行/停止
の選択を拡張したものである。本発明の好ましいシステ
ムでは、各ピケットが様々な実行能力を持つことができ
るようにする、機構の集合または複数の機構によって各
ピケットを使用可能にすることができる。これらの実行
能力により、各ピケットは、ピケット内でデータを実行
するために様々なモードを獲得できるようにより、外部
SIMD制御装置から送信されるのではなくピケット内
でSIMDコマンドを解釈できるようになる。この能力
は、複数のモードに及び、それらのモードで、SIMD
アレイの各プロセッサがローカル条件に基づいて異なる
動作を実行でき、かつ実際に実行する。
【0171】これらのローカル自律機能のいくつかを組
み合わせると、ピケットに短期間の間、それ自体のロー
カル・プログラム・セグメントを実行する能力を与える
ことができる。これによって、SIMDアレイ内でMI
MD能力が与えられる。このアーキテクチャをSIMI
MDと呼ぶ。SIMIMDをサポートする機構によっ
て、本発明のSIMIMDアレイ処理システムが可能に
なる。
【0172】これらの機能のいくつかは、ピケットのグ
ループ化の機構形成に参加して、ピケットを選択して分
離計算用のグループを形成するための複雑なツールをサ
ポートする。この機能をグループ化と呼び、グループ化
をサポートする機構が本発明のシステムに含まれる。
【0173】これらの機能のいくつかは、効率的な浮動
小数点手法の機構形成に使用され、これらの機構で浮動
小数点をサポートすることが好ましい。
【0174】システム機構の考察 これから考察する「ローカル自律性」の諸項目は、次の
3つの範疇に分類することができる。 1.状況制御式ローカル動作 2.データ制御式ローカル動作 3.プロセッサからマイクロ制御装置への状況の分配
【0175】状況生成の考察 状況は、命令ストリーム内での以前の活動に基づいて設
定される。状況レジスタのロードは、命令ストリームに
よって制御される。状況レジスタには、命令ストリーム
Zero Detect、Sign、Equal、Gr
eater than、Less Than、carr
y outがロードされる。
【0176】Add with carryは、演算の
精度を拡張するための状況機能の一般的な使用例であ
る。状況のさらに巧妙な使用が含まれる。
【0177】状況は、後で使用できるようにデータ・ワ
ードとしてメモリに格納することができる。また状況を
論理演算および算術演算に使用して、他の格納値のかな
り複雑な組合せを生成することもできる。これらの計算
値を使用して、ピケットのドーズ・ラッチの値を変更
し、ピケットが、他の計算情報によって再び使用可能に
なるまで、その動作を中断させることができる。
【0178】アレイ制御装置内で実行されているサブル
ーチン呼出しまたは文脈切替えと関係がある状況は、セ
ーブすることができる。その後、「ポップ」または「リ
ターン」により、これらの値をリコールして使用するこ
とができる。もちろん、サブルーチン動作にピケットの
選択されたグループまたはサブセットが参加できるが、
サブルーチンからのリターン時に活動化されるピケット
の数はそれより多くなる。
【0179】状況制御式ローカル動作 下記の各「ローカル自律」機能は、SIMD命令によっ
てSIMDサブシステム制御装置から選択されたとき、
状況によって制御される。図8の状況ラッチに状況条件
の1つまたはすべてを転送するためのコマンドで状況を
更新することができ、またはこの状況ラッチにメモリ位
置からロードすることができる。後者の方法は、ピケッ
トのグループ化で使用されている。各ローカル・ピケッ
トの状況をグループ化し、状況ファネルSFを介してS
IMD制御装置にそっくり送ることができ、制御装置
は、個別に各ピケットから状況ワードを読み取らずに、
ピケット活動に明確に反応するための巧妙な方法を与え
られる。
【0180】ローカル参加 ピケットは、直前の状況に基づいてそれ自体をオンまた
はオフにすることができる。ピケットは、ピケット内の
図8のドーズ・ラッチに適当な値をロードすることによ
り、ドーズ・モードに入ることができる。これを「ロー
カル参加」自律性と呼ぶことができる。ローカル参加自
律性は、ピケット・チップ内の個々のピケットの内部制
御用の機構をもたらす。ドーズ・モードのピケットは、
それ自体のメモリに書き込まず、一部分のレジスタの内
容を変更しないので、状態を変化させないが、すべての
テスト動作を監視し、選択された結果に基づいて再びオ
ンに戻ることができる。図8は、ドーズとディスエーブ
ルという2つの「オフ」モードの関係を示している。デ
ィスエーブル・モードでは、サブシステム制御装置が、
プロセスに実際に参加していない個々のピケットを使用
不能にすることができる。SIMD制御装置状況での使
用不能命令は、個々の処理要素を使用不能にするように
効果的に働くことができる。しかし、本発明では制御装
置は、プロセス内の別の1組のデータを起動する必要が
あったとき、選択されたピケットを使用可能にする。
【0181】例: 0より大きな値を持つすべてのピケ
ットが、次の組の動作に参加しない。
【0182】本発明の好ましい実施例におけるドーズと
ディスエーブルの関係を図8に示す。
【0183】状況によるキャリーイン また、本発明では、各ピケットが、直前の状況に基づい
て現在の動作にキャリーインを追加することができる。
これは、データ長がハードウェア・レジスタ長の倍数で
あるノイマン型マシンで共通の動作である。しかし、多
数のピケットが様々なデータに対して同一の動作を実行
しているとき、各ピケットは直前の動作のデータに基づ
いてキャリーインを生成しなければならない。これは、
各ピケットに固有の動作であり、したがって重要なロー
カル自律動作である。
【0184】例: 浮動小数点正規化動作における先行
ゼロの検索。
【0185】状況による格納禁止 また、本発明によれば、パケットは直前の状況に基づい
てメモリへの格納動作を禁止することができる。この選
択的書込み動作を用いると、ピケット状況でピケット・
メモリへのデータの再格納を制御することができる。す
べてのピケットで実行される演算が、一部の個別ピケッ
トに有用な結果を生成しないとき、この動作を効果的な
禁止機構として使用することができる。
【0186】例: 絶対値の計算時に直前の状況が負だ
った場合に補数を格納し戻す。
【0187】状況によるレジスタ・ソース選択 ピケットは、状況に基づいて、2つのデータ・ソースの
うちの一方を選択し、ハードウェア・レジスタをロード
することができる。状況は、2つのデータ・ソースのう
ちの一方を選ぶのに使われるマルチプレクサを切り替え
るのに使用される。データ・ソースは、2つのハードウ
ェア・レジスタ、または同報通信バスと1つのハードウ
ェア・レジスタとすることができる。
【0188】例: 同報通信バス上のデータがピケット
にとって有用な場合、該バスから読み取る。そうでない
場合は、内部レジスタのデータを使用する。この例は、
英字およびワードのストリームが同報通信バスを介して
移動し、潜在的一致を含むピケットがデータを捕捉する
という、ディクショナリ機能を表している。
【0189】例: 内容が、メモリから読み取ったデー
タよりも小さい場合に、レジスタからLoad Reg
する。
【0190】状況による、代替メモリ位置からの読取り ピケットは、状況に基づいて2つのメモリ位置のうちの
一方からデータを読み取ることができる(ストライドは
2のn乗)。通常、レコード内には1バイトより多くの
データがある。また、通常、1データ・セットごとに複
数のデータ・レコードがある。この選択機能を用いる
と、ローカル・ピケット状況で、データの2つのレコー
ドの一方を選択することができる。最大値を探してお
り、それを見つけるためにテストを行ったものとする。
その場合、この機能を使用すれば、将来使用するため選
択されたレコードを捕捉することができるはずである。
【0191】例: 浮動小数点調整動作では、2つの値
を突き合わせ、一方の指数部が他方と一致するように一
方の値をスケーリングする。「どちらの一方」をスケー
リングするかは、指数部を比較し、状況値をロードする
ことによって決定する。
【0192】状況による代替メモリ位置への格納 ピケットは、状況に基づいて2つのメモリ位置のうちの
一方にデータを格納することができる(ストライドは2
のn乗)。これは、読取り動作と類似している。
【0193】状況による、隣接ピケットへの転送のため
の選択 ピケットは、本発明のスライド動作を介して隣接ピケッ
トへの転送を行うことができる。この動作のソース・デ
ータは、状況によってAレジスタとBレジスタのどちら
かとすることができる。そのよい例が、すべてのピケッ
トにわたってデータを比較する場合である。その目標
は、最大値を識別することである。したがって、奇数番
目のすべてのピケットがデータを右に移動し、そこでデ
ータがレジスタに格納される。受取り側ピケットは、新
しいデータ・ワードを該ピケットが有するデータ・ワー
ドと比較し、状況をセーブし、適切なソースを選択する
ことによって2つのうちの大きい方を転送する。
【0194】データ制御式ローカル動作 各ピケット内のデータに基づくローカル自律機能がいく
つかある。これらのデータ依存機能は、データ・レジス
タの内容を使ってピケット内の独立活動を決定させる、
SIMD制御装置のマイクロワードによって使用可能に
なる。いくつかの例を挙げて、データ制御式ローカル動
作について説明する。
【0195】データによる代替メモリ位置からの読取り 各ピケットは、そのレジスタのうちの1つに含まれるデ
ータをメモリ・アドレスの一部として使用して、それ自
体のメモリをアドレスすることができる。アドレス可能
なメモリのフィールドは、2の累乗で、2からすべての
ピケットのメモリまでの範囲に及ぶ。現在の適切で実用
的な設計点は4Kである。もう1つの特徴は、アドレス
指定にストライドを導入して、制御装置が、ピケットに
1つおきにまたは4つおきになどでワードをアドレスさ
せることができるようにするものである。メモリのこの
フィールドのベース(ピケット・アドレスの他のビッ
ト)は、SIMD制御装置から供給される。
【0196】例: これらの着想の主な応用例は、0〜
90度の角度に対するsinの値を含むテーブルから、三
角関数や超越関数などの1組の値のうちの1つを求める
表引きである。
【0197】メモリ・フィールドへの条件付きインデク
シング この着想は、インデクシングを状況で条件付け、ピケッ
ト・レジスタ内のデータに基づいてインデックスの深さ
を決定することによって、2つの考えを組み合わせるも
のである。
【0198】メモリからのデータに基づく加算器動作 ピケット・メモリは、ピケットのタスクに固有の「命
令」を格納することができる。これらの命令をメモリか
ら読み取り、ピケットのレジスタに格納し、ピケット・
データフロー・レジスタ、マルチプレクサ、およびAL
Uによって実行とができる。
【0199】例: SIMDアレイが論理設計のシミュ
レーションを実行している場合、各ピケットに論理機能
を割り当てることができる。これをレジスタに格納すれ
ば、それを使って、そのピケットのALU内のこの機能
に指令することができる。
【0200】メモリからのデータに基づくマスク動作 各ピケットは、データとマスクの論理的組合せが各ピケ
ットごとに異なる結果をもたらすように、メモリ内でデ
ータとマスクを混合することにより、ローカル自律性を
達成することができる。データとそれに関連するマスク
を対にすると、トリットと称する単位が形成される。
【0201】状況分配をマイクロ制御するためのピケッ
ト ローカル自律性の第3の範疇は、ある事象に関係する条
件を決定し、この条件を状況ファネルを介してSIMD
制御装置に報告するピケットに関するものである。状況
ファネルは基本的に、活動状態の各ピケットから制御装
置に供給される条件の全体的論理和である。状況ファネ
ルは、少なくとも1つのピケットが要求された条件を含
むかどうかを示す。この考えを他の条件について繰り返
して、制御装置がおそらく4つ以上の条件に関する通知
を同時に受けることができるようにすることができる。
したがって、ピケット内で行われる個々のテストに基づ
いて制御の判断を下し、それをSTAT報告ファネルを
介してアレイ制御装置に通信することができる。
【0202】例: この機能は、動作が完全であるかど
うか、あるいは動作に参加している活動状態のピケット
が他にもうないかどうかを判定する際に制御装置が使用
することができる。
【0203】例: ピケット・アレイは、同時に参加し
ているすべての活動状態のピケットに対して、マスク動
作によって探索を実行することができる。マスク動作で
は、一致するピケットが一致線をハイにして一致を示
す。一致条件は、活動状態のプロセスにおいて後で判断
するために、状況ファネルを介して制御装置に送られ
る。
【0204】例: ピケット・アレイは、情報の集合を
保持することができ、一時に1文字を比較し、ピケット
が一致しなくなった時点でピケットをオフにすることに
より特定の情報を探すことができる。これによって、1
回の同時同報通信比較ですべての活動状態ピケットを処
理する、強力な並列関連付け機能がもたらされる。
【0205】マルチレベル状況および状況のセーブ 状況の反復的生成および制御を管理するための2つの能
力について説明する。すなわち、様々なレベルのプログ
ラムに入るとき、状況がより複雑になりまたはプロセッ
サ制限度が高くなり、あるいはその両方になることがあ
り得る。ソフトウェアの制御下で完全なピケット状況を
セーブし復元する能力があると、CALL/RETUR
Nシーケンスを用いてソフトウェアのレベルをカスケー
ド化できるようになる。各ピケットは、アレイ制御装置
から指令を受けると、その状況を個別メモリにセーブす
る。
【0206】状況の生成 状況は、ALU演算の結果生成される。命令ストリーム
は、テストすべき条件と、その条件を既存の状況とどう
組み合わせるかとを示す。以下の選択肢がある。テスト
結果を無視する。まったく新しい状況を設定する。新規
状況と既存の状況のORまたはXORを使う。状況の生
成に使用できる条件には、Zero result,Equal, Greater
than, Less than, Not equal, Equal or greater tha
n, Equalor less than, Overflow, およびUnderflowが
ある。
【0207】命令によって制御される状況の使用法 各命令は、状況を収集しセーブする方法に関するコマン
ドを各ピケットに提供する。ピケットで局所的に状況を
使用する方法を示すコマンドがすべてのピケットに提供
される。これらの使用法コマンドは、複数の事項を指定
する。それらはすべてローカル自律性の発想に関するも
ので、とりわけピケット参加、再格納禁止、状況による
データ・ソース選択、およびピケット間通信の制御が含
まれる。ピケットのアレイの制御装置に、個々のピケッ
トの状況を制御装置に収集する方法と、この状況を使用
して大域動作を管理する方法を指示するコマンドも提供
される。基本的に、各ピケットの状況を他のあらゆるピ
ケットの状況とのORまたはANDをとり、その結果
が、アレイ制御装置が使用できるように該制御装置に提
示される。
【0208】好ましい実施例のSIMIMDの考察 SIMIMDの機能を用いると、処理要素またはピケッ
トがSIMDアレイ・プロセス用に構成されている、図
1のアレイ制御装置14のようなSIMD制御装置、ま
たは図4に示す本発明の好ましい実施例のサブシステム
制御装置は、アレイ内のすべてのピケットに対して同じ
命令を発行する。各ピケットは、命令を解釈し実行す
る。ここでの考え方は、各ピケットで一部の命令を異な
るふうに解釈できるようにすることである。これらの小
さな変形によって、各ピケットに一定のローカル自律性
が与えられる。本発明の複数のローカル自律性は、SI
MIMDモードのプロセスで使用される機能を提供す
る。
【0209】図9は、アレイ内の各処理要素が、SIM
Dコマンドを使って、それ自体の命令をどのように実行
できるかを示している。HANGが発生すると、各ピケ
ットは、SIMIMDモード動作を終了したことを示
す。ここでは、各ピケットがそれ自体のメモリからの命
令を実行できるようになる、適切な種類のローカル変形
の実施態様について述べる。その考え方は、SIMD制
御装置が、命令アドレスを参照し、命令を見つけ、ピケ
ットのメモリから命令を読み取り、それを実行し、結果
をセーブし、次いで同じことを繰り返すプロセスを実行
するようピケットに命じる命令を発行するというもので
ある。SIMD制御装置は、各"MIMD"コマンドごと
に、これらのステップのそれぞれごとにコマンドを発行
する。
【0210】SIMD制御装置は、ある時点でMIMD
動作の列を終了し、従来のSIMD動作に戻る。この短
時間のMIMDモードへの切替えの結果が、各ピケット
のメモリに格納される。これは、SIMIMDモードで
の動作としてエクスカーションと呼ばれることもある。
【0211】図9に、この様子を示す。SIMD命令は
一般に、すべてのピケット内のデータに並列に作用す
る。本発明の好ましい実施例では、同一のSIMD命令
ストリームを使って、各ピケット内に格納された命令が
実行される。各ピケットは現在、別のローカル命令スト
リームを実行中であり得るので、それぞれ異なる動作を
している可能性がある。また、各ピケットは異なる時点
でプログラムを終了する可能性がある。各ピケット・プ
ログラムがいつ終了したかを示し、それによって、すべ
てのピケットが完了しないかぎり、または制御装置がS
IMIMD動作を停止すると判断しないかぎり、SIM
D制御装置がコマンドを継続し、各ピケット内でSIM
IMD命令を実行させるようにするための手段が含まれ
ている。
【0212】SIMIMDモードでピケット内で実施さ
れる命令セットは、非常に貴重なオンチップ・ハードウ
ェアをほとんど必要としないように、きわめて簡単でな
ければならない。他のシステムがますます複雑になって
いる中で、本発明の好ましいシステムの利点の1つは、
20年前に一般的だったようなシステムで、アキュミュ
レータ・アーキテクチャが使用でき、その簡単さが活用
できることである。この説明では、下記の単純な命令セ
ットを検討する。命令は、それらを実行するのに必要な
SIMD制御シーケンスに一致する3つの範疇に分けて
示してある。 ・ADD、SUB、AND、OR、XOR、NEG、N
OP ・STORE ・BRANCH ON CONDITION(符号、
0、繰上り、無条件)
【0213】ピケット内でMIMD動作を発生させるS
IMDシーケンスは、メモリの幅に対する依存性が強
い。バイト幅メモリは、16ビット・ワードに対して2
回のアクセスが必要であるが、16ビット幅メモリでは
1回のアクセスでよい。下記に示す命令シーケンスで
は、各動作が1サイクルで完了するようなデータフロー
であると仮定する。ピケット内でMIMD動作を実行さ
せるSIMDコマンド文字列は次の通りである。アレイ
内のすべてのプロセッサに1つのSIMDシーケンスが
送られ、各ピケット内のSIMIMD命令コードが解釈
されると、ステップ5ないし7に示す3つのシーケンス
のうちの1つが発生する。
【0214】MOST INSTRUCTIONS(大
部分の命令)−Add、Sub、And、Or、Xo
r、Neg、Nop 1)MADR<−IADR 2)IADR<−IADR+1 3)メモリ読取り 4)OPREG<−MDATA 5)MADR<−オペランド・アドレス 6)メモリ読取り 7)A−REG<−A−REG(op)MDATA
【0215】RELATIVE BRANCH(相対分
岐) 1)MADR<−IADR 2)IADR<−IADR+1 3)メモリ読取り 4)OPREG<−MDATA 5)MADR<−オペランド・アドレス(機能なし) 6)メモリNop(機能なし) 7)IADR<−IADR(op)MDATA
【0216】STORE(記憶) 1)MADR<−IADR 2)IADR<−IADR+1 3)メモリ読取り 4)OPREG<−MDATA 5)MADR<−オペランド・アドレス、MDATA<
−A−Reg 6)メモリ読取り 7)A−REG<−A−REG(op)MDATA(機
能なし)
【0217】すべての命令が同数のSIMDサイクルを
もち、同一サイクル内のコマンドはきわめて似ているこ
とに留意されたい。ステップ1、ステップ2、ステップ
3、ステップ4は3つの形式のすべてで同一であり、S
IMIMD命令の命令取出し部分および復号部分を行わ
せる。
【0218】ステップ5、ステップ6、およびステップ
7は、命令の実行部分を形成し、ステップ4でメモリか
らロードされたピケットOPREG内の命令コードに依
存する何らかの機能を有する。大部分の命令では、ステ
ップ5、ステップ6でオペランドが読み取られ、ステッ
プ7で演算が実行され、結果がアキュミュレータに格納
される。
【0219】STORE命令の場合、ステップ5でデー
タがデータ・レジスタに移動される。ステップ6はメモ
リ格納動作であり、ステップ7は7つのサイクルを維持
する以外の機能を果たさない。
【0220】BRANCH命令では、ステップ5、ステ
ップ6は機能を果たさず、ステップ7で命令コードから
命令レジスタにオフセットが追加される。あるいは、分
岐条件が満たされなかった場合、ステップ7では何も実
行されない。この命令は、条件が絶対満たされないよう
にコード化されると、NOPになる。命令自体に対する
無条件分岐としてコード化されると、ルーチンの終りに
HANGになる。
【0221】現在、SIMIMD実行を可能にする、こ
れらのローカル自律性の諸機能をサポートするのに必要
な、ハードウェアで実施された機能として下記のものが
ある。
【0222】・各ピケット内で局所的にロードされるア
ドレス・レジスタ ・各ピケット内で局所的にロードされる演算レジスタ
【0223】通常、制御装置からすべてのピケットに同
時にピケット・アドレスが供給される。SIMIMDモ
ードのとき、各ピケットには、そのデータフローからア
ドレス・レジスタをロードすることができる。
【0224】ピケット内の動作は通常、アレイ制御装置
からのマイクロオーダとして発生する。SIMIMDモ
ードのとき、これらのマイクロオーダの一部は、各ピケ
ット内の演算レジスタから発生することができる。した
がって、ALUおよび一部のレジスタ・クロックは、各
ピケットから読み取られ、各ピケットの演算レジスタに
格納されたデータによって制御することができる。
【0225】ピケット内の命令をサポートするのに必要
な、ハードウェアで実施されたローカル自律機能は、演
算レジスタで指示される機能に基づく。
【0226】サイクル5では、MADRにオペランド・
アドレスをロードする他に、命令コードがSTOREの
場合、MDATA<−A 1である。 MOST INSTR MADR<−オペランド・アド
レス BRANCH MADR<−オペランド・アドレス(使
用しない) STORE MADR<−オペランド・アドレス、MD
ATA<−A−Reg
【0227】サイクル6では、メモリ動作はOPレジス
タ内容の関数としてREAD、STORE、NOPであ
る。
【0228】MOST INSTR メモリ読取り BRANCH メモリ動作なし STORE メモリ格納
【0229】サイクル7では、レジスタ・クロックは演
算レジスタ内容の関数である。
【0230】MOST INSTR 宛先はAレジスタ BRANCH 宛先はIADR(Aレジスタをクロック
しない) STORE 宛先なし(Aレジスタをクロックしない)
【0231】サイクル7では、ALU動作は演算レジス
タ内容の関数である。 MOST INSTR 演算レジスタの機能(ADDで
加算が実行されるなど) BRANCH 条件が満たさ
れる場合は追加、条件が満たされない場合はIADR<
−IADR STORE 何も実行しない。
【0232】図のSMIMDモードにはさらに詳細な実
施態様が可能であるが、ここには、本発明のSIMIM
Dモード実施例の基本原則を開示したものを提示する。
【0233】好ましい浮動小数点実施例に関する一般的
考察 浮動小数点演算のアプリケーション用に、SIMDマシ
ンにローカル自律性を持たせることが特に好ましい。"F
loating-Point for SIMD Array Machine"と題する上記
で参照した関連出願に詳述されているSIMDアレイ・
マシンに浮動小数点に関する諸能力を提供するための新
しい方法の説明を加えれば、本発明の卓越性が理解でき
る。
【0234】上記システム用の浮動小数点フォーマット
を用いると、アレイSIMDマシンが浮動小数点演算を
実行することができる。説明の便宜上、図10に本発明
の浮動小数点フォーマットについて記載する。小数部の
カウントは指数部のカウント1に対して1バイトだけシ
フトする。図11は、小数部を1バイトだけシフトし、
浮動小数点指数部を1だけ増分することによって浮動小
数点調整を行うステップを示している。この特定のアレ
イを用いると、メモリを使って調整シフトを行うことが
できる。図12は、バイト幅メモリを使って、浮動小数
点調整動作の一部であるシフトを有利に実行することに
よる、調整シフトの使用法を示している。
【0235】浮動小数点フォーマット SIMDマシンにおいて浮動小数点を首尾よく実施する
ための鍵は、図10に示す適切なフォーマットである。
適切なフォーマットとは、フォーマットがアーキテクチ
ャの何らかの態様と互換性があり、必ずしも既存の浮動
小数点標準の1つと互換性があるわけではないことを意
味する。
【0236】本発明では、バイト幅データフロー上で実
行され、従来の実施態様の数倍の性能を有するフォーマ
ットを提供する。
【0237】このフォーマットは、少なくともIEEE
32ビット浮動小数点標準と同程度に正確な回答を生成
する。このフォーマットは、平均して約2ビット高い精
度を有する。
【0238】このフォーマットは、ユーザが使用するた
め、既存の標準との間で容易に変換できる。
【0239】したがって、このフォーマットは、外から
見れば標準とみなせる。ピケット内部でこの提案された
フォーマットで浮動小数点を効率的に実行することがで
き、データを並列プロセッサにロードしまたはそこから
削除する時に、必要に応じてデータのフォーマットを変
換することができる。
【0240】この浮動小数点フォーマットは、マルチバ
イト幅データフローに対する実施効率が得られるように
選択された。このフォーマットは、実施効率をもたらす
と同時に、IEEE32ビット浮動小数点フォーマット
を上回る演算精度を提供する。
【0241】図10に示すフォーマットは、IEEE3
2ビット浮動小数点フォーマットよりも高い精度を得る
のに適したフォーマットの代表であり、バイト幅(8ビ
ット)データ・ストリームを有するマシンで実施するこ
とを目的としている。好ましいフォーマットは、1ビッ
トの符号、7ビットの指数部、および8ビット4バイト
の小数部からなり、合計40ビットである。
【0242】小数部の長さを整数個のバイトだけ拡張す
ることにより、この同じ計算スタイルを拡張して、浮動
小数点計算の精度を上げることができることに留意され
たい。
【0243】指数部の各カウントが小数部の8ビット・
シフトを表すので、正規化された数値は最大7個の先行
0を持つことができる。先行0が8個以上ある場合、そ
の数値を調整して正規化する必要がある。
【0244】図11は、調整シフトを使って浮動小数点
調整を行う方法を示している。このシステムでは、デー
タ・ワードが図10のフォーマットで構成されている。
浮動小数点調整を行うには、小数部を8ビットだけ左に
シフトし、指数部を1だけ減らす。上述のシステムを典
型とするバイト幅データフローでは、このシフト動作
は、次のバイトを第1バイトとし、すべて0の第1バイ
トを切り捨てるだけで実施することができる。このシフ
トの実施は、様々な方法で行うことができる。
【0245】バイト幅データフローでは、1クロック・
サイクルに1バイト幅シフトでデータをシフトする。最
大3回のシフトが必要である。これを、先行0のテスト
と組み合わせることができる。
【0246】図12に示すもう1つの手法は、並列アレ
イに対して実施することができ、この手法はアレイの処
理要素がそれ自体のメモリを有するマシンに特に有利で
ある。この場合、データがメモリ内に存在すると仮定す
る。マシンはまず、先行0のバイト数を決定する。次
に、マシンは先行0バイトのカウントを使って、データ
の獲得に使用する取出しアドレスを調整する。次に、デ
ータ移動動作の一環として、4クロックで正規化プロセ
スを実施することができる。
【0247】SIMDマシンでは、固定した所定のサイ
クル数ですべての動作が実行されるようにすることが好
ましい。指数部の1カウントが小数部1ビットを表す従
来の浮動小数点を用いる場合は、小数部の先行0 1個
につきシフトおよびカウント・プロセスが1回行われ
る。正規化の実行には0ないし32サイクルが必要とな
る。各ピケットは、そのハードウェア内で小数部に対し
て適切なサイクル数だけ実行するはずであり、そのサイ
クル数はピケットごとに異なる。このプロセスを決定的
なものにするには、SIMDマシン全体が最大(32)
のサイクル数だけ実行しなければならず、多数のピケッ
トで大量の遊休時間が生じる。
【0248】本明細書に記載する発想は決定的なものに
なっており、次のように12サイクルで実行される。
【0249】1.最上位側から順に一時に1バイトず
つ、小数部をメモリから(メモリ内の)レジスタに移動
し、各バイトがすべて0であるかどうかを記録する。す
べて0の場合、そうなっているバイトの数をカウントす
る。この動作には4サイクルを要する。
【0250】2.ポインタが小数部の最上位バイトの
「アドレス」を含むと仮定する。このポインタに0バイ
トの数(0〜4)を加算して、このポインタが小数部の
最上位非ゼロ・バイトを指すようにする。この動作には
1サイクルを要する。
【0251】3.ポインタを使って、最上位非ゼロ・ビ
ットから順に、最下位側に0を含むバイトを埋め込みな
がら、小数部をメモリに格納し直す。この動作には4サ
イクルを要する。
【0252】4.次に指数部をカウント数だけ減分し、
メモリに格納し直す。この動作には3サイクルを要す
る。
【0253】この動作をピケット内で実施される通りに
図に示す。
【0254】上記の手法によって正規化を行うには、ピ
ケット設計の複数の機能にある程度のローカル自律性を
与える必要がある。限られたPME自律性またはピケッ
ト自律性を提供する機能には以下のものがある。
【0255】0の有無をテストし、状況に入れる。
【0256】状況が設定されている場合、カウンタを増
分する。
【0257】レジスタ内のポインタ値をメモリ・インデ
ックスとして使って、メモリへのデータ依存アクセスを
提供する。
【図面の簡単な説明】
【図1】従来技術のSIMDプロセッサの概略図であ
る。
【図2】アレイ内の他のピケットとのバイト通信ができ
る、プロセッサ、メモリ、制御論理回路、及び連想メモ
リを備えた、シリコン・ベース上に構成された1対の基
本ピケット・ユニットを示す図である。
【図3】連想メモリの処理を示す図である。
【図4】マイクロプロセッサ制御装置と、かん詰ルーチ
ン用のハードワイヤ接続式順序付け制御装置と、ピケッ
ト・アレイとを使用する、SIMDサブシステム用の基
本16(n)ピケット構成を示す図である。この基本並
列ピケット・プロセッサ・システムは、独立型ユニット
でもよい。
【図5】図4の複数のピケット・プロセッサを組み込ん
だ多重ピケット・プロセッサ・システムを示す図であ
る。
【図6】サブシステムの機能ブロック図である。
【図7】図5のカードを含むサブシステム制御装置の配
置構成を示す図である。
【図8】本発明の好ましい実施例による、SIMDマシ
ン内のピケットの局所自律動作用の、本発明で定義する
DOZE命令とDISABLE命令の関係を示す図であ
る。
【図9】本発明の好ましい実施例によるSIMIMDプ
ロセッサ・モードを示す図である。
【図10】本発明の好ましい実施例の、特定の浮動小数
点フォーマットを示す図である。
【図11】浮動小数点の調整を行うための諸ステップを
記載した図である。
【図12】本発明による、メモリをどのように使ってシ
フトの調整を行うかを示す図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジェームズ・ウォレン・ディーフェンデ ルファー アメリカ合衆国13827、ニューヨーク州 オウェゴ、フロント・ストリート 396 (72)発明者 ピーター・マイケル・コッゲ アメリカ合衆国13760、ニューヨーク州 エンディコット、ドーチェスタ・ドライ ブ 7 (56)参考文献 特開 平1−114982(JP,A) 特開 昭59−16071(JP,A) IEEE TRANS.COMPU T.VOL.30 NO.12 P934−947 H.J.SIEGAL ET.AL. “PASM:A PARTITIONA BLE SIMD/MIMD SYST EM FOR IMAGE PROCE SSING AND PATTERN RECOGNITION"

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】アレイ制御装置、メモリを有する複数のア
    レイ処理要素を含むデータ処理手段と、 複数の前記アレイ処理要素内にあり、SIMD命令スト
    リームによって制御されアレイ処理要素ごとに独立して
    置かれている多重データ・ストリームを実行するSIM
    IMDモードで、アレイ・プロセッサのサイクルごとの
    制御の下に命令を実行する実行手段とを備え前記複数のアレイ処理要素の各々が、各クロック・サイ
    クルでアレイ制御装置からコマンドを受け取り実行でき
    るプロセッサとローカル・メモリを有するピケットであ
    り、コマンドの一部を各ピケット内で解釈して、異なる
    動作を実行できる ことを特徴とする、アレイ・プロセッ
    サ。
  2. 【請求項2】アレイの各プロセッサが、アレイの他のプ
    ロセッサと並列にデータを実行することのできるプロセ
    ッサのアレイを構成し、アレイのすべてのプロセッサが
    データ・ストリームと、アレイの処理要素として統合さ
    れたメモリ要素とを有し、アレイ内で、すべてのプロセ
    ッサに単一の命令ストリームから指令を与えることがで
    き、すべてのプロセッサが1処理要素当たり1つずつ複
    数のデータ・ストリームを実行することができ、前記ア
    レイの各処理要素がプロセッサとローカル・メモリを有
    するピケットを構成し、各ピケットが、各ピケット内で
    SIMD命令ストリームによって制御される命令実行を
    模倣するデータ依存動作を実行できるように使用可能に
    されることを特徴とする、アレイ・プロセッサ。
  3. 【請求項3】前記ピケットが、前記処理要素内で、該処
    理要素がMIMD実行命令を実施できるようにする機能
    を提供することを特徴とする、請求項1または2に記載
    のアレイ・プロセッサ。
  4. 【請求項4】各ピケットがピケット演算レジスタを備
    え、前記ピケット演算レジスタがSIMIMDモードで
    使用され、交互のピケット・データフローを提供するこ
    とを特徴とする、請求項3に記載のアレイ・プロセッ
    サ。
  5. 【請求項5】各プロセッサがアレイ制御装置によって結
    合されて、アドレスされるピケット・アレイの1ピケッ
    ト当たり1つずつ、複数の命令ストリームを順序付ける
    能力を備えるSIMDマシンとして機能し、SIMD命
    令ストリームを使って複数のデータ・ストリーム上で動
    作することを特徴とする、請求項2に記載のアレイ・プ
    ロセッサ。
JP5114567A 1992-05-22 1993-05-17 アレイ・プロセッサ Expired - Lifetime JP2642039B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US88771892A 1992-05-22 1992-05-22
US887718 1992-05-22

Publications (2)

Publication Number Publication Date
JPH0635877A JPH0635877A (ja) 1994-02-10
JP2642039B2 true JP2642039B2 (ja) 1997-08-20

Family

ID=25391716

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5114567A Expired - Lifetime JP2642039B2 (ja) 1992-05-22 1993-05-17 アレイ・プロセッサ

Country Status (2)

Country Link
US (1) US5805915A (ja)
JP (1) JP2642039B2 (ja)

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3211676B2 (ja) * 1996-08-27 2001-09-25 日本電気株式会社 画像処理方法および装置
US6366999B1 (en) * 1998-01-28 2002-04-02 Bops, Inc. Methods and apparatus to support conditional execution in a VLIW-based array processor with subword execution
US6067609A (en) * 1998-04-09 2000-05-23 Teranex, Inc. Pattern generation and shift plane operations for a mesh connected computer
US6513108B1 (en) * 1998-06-29 2003-01-28 Cisco Technology, Inc. Programmable processing engine for efficiently processing transient data
US6611875B1 (en) * 1998-12-31 2003-08-26 Pmc-Sierra, Inc. Control system for high speed rule processors
US6367069B1 (en) * 1999-02-01 2002-04-02 Sun Microsystems, Inc. Efficient array descriptors for variable-sized, dynamically allocated arrays
US6510509B1 (en) * 1999-03-29 2003-01-21 Pmc-Sierra Us, Inc. Method and apparatus for high-speed network rule processing
US20080008393A1 (en) * 1999-04-09 2008-01-10 Dave Stuttard Parallel data processing apparatus
US8762691B2 (en) 1999-04-09 2014-06-24 Rambus Inc. Memory access consolidation for SIMD processing elements using transaction identifiers
US20080162875A1 (en) * 1999-04-09 2008-07-03 Dave Stuttard Parallel Data Processing Apparatus
US8169440B2 (en) 1999-04-09 2012-05-01 Rambus Inc. Parallel data processing apparatus
US20080162874A1 (en) * 1999-04-09 2008-07-03 Dave Stuttard Parallel data processing apparatus
US7526630B2 (en) * 1999-04-09 2009-04-28 Clearspeed Technology, Plc Parallel data processing apparatus
WO2000062182A2 (en) 1999-04-09 2000-10-19 Clearspeed Technology Limited Parallel data processing apparatus
US20070242074A1 (en) * 1999-04-09 2007-10-18 Dave Stuttard Parallel data processing apparatus
US8171263B2 (en) * 1999-04-09 2012-05-01 Rambus Inc. Data processing apparatus comprising an array controller for separating an instruction stream processing instructions and data transfer instructions
US8174530B2 (en) * 1999-04-09 2012-05-08 Rambus Inc. Parallel date processing apparatus
US7966475B2 (en) 1999-04-09 2011-06-21 Rambus Inc. Parallel data processing apparatus
US7802079B2 (en) * 1999-04-09 2010-09-21 Clearspeed Technology Limited Parallel data processing apparatus
US6643763B1 (en) 2000-02-28 2003-11-04 International Business Machines Corporation Register pipe for multi-processing engine environment
US6766437B1 (en) 2000-02-28 2004-07-20 International Business Machines Corporation Composite uniprocessor
JP3426223B2 (ja) * 2000-09-27 2003-07-14 株式会社ソニー・コンピュータエンタテインメント マルチプロセッサシステム、データ処理システム、データ処理方法、コンピュータプログラム
US6732253B1 (en) * 2000-11-13 2004-05-04 Chipwrights Design, Inc. Loop handling for single instruction multiple datapath processor architectures
US6931518B1 (en) 2000-11-28 2005-08-16 Chipwrights Design, Inc. Branching around conditional processing if states of all single instruction multiple datapaths are disabled and the computer program is non-deterministic
US20020133688A1 (en) * 2001-01-29 2002-09-19 Ming-Hau Lee SIMD/MIMD processing on a reconfigurable array
US6968447B1 (en) * 2001-04-13 2005-11-22 The United States Of America As Represented By The Secretary Of The Navy System and method for data forwarding in a programmable multiple network processor environment
US6950927B1 (en) 2001-04-13 2005-09-27 The United States Of America As Represented By The Secretary Of The Navy System and method for instruction-level parallelism in a programmable multiple network processor environment
KR100677207B1 (ko) * 2001-04-13 2007-02-05 엘지전자 주식회사 Simd 디지탈 신호 처리기 및 연산방법
US7007035B2 (en) * 2001-06-08 2006-02-28 The Regents Of The University Of California Parallel object-oriented decision tree system
US7739319B2 (en) * 2001-10-29 2010-06-15 Intel Corporation Method and apparatus for parallel table lookup using SIMD instructions
US20040054877A1 (en) 2001-10-29 2004-03-18 Macy William W. Method and apparatus for shuffling data
JP3838086B2 (ja) * 2001-12-12 2006-10-25 ソニー株式会社 画像処理装置およびその方法
CN1311348C (zh) * 2001-12-14 2007-04-18 皇家飞利浦电子股份有限公司 数据处理系统
WO2003063060A2 (en) * 2002-01-24 2003-07-31 Broadcom Corporation Asymmetric digital subscriber line modem apparatus and methods therefor
US6959372B1 (en) * 2002-02-19 2005-10-25 Cogent Chipware Inc. Processor cluster architecture and associated parallel processing methods
US7415594B2 (en) * 2002-06-26 2008-08-19 Coherent Logix, Incorporated Processing system with interspersed stall propagating processors and communication elements
US6970985B2 (en) 2002-07-09 2005-11-29 Bluerisc Inc. Statically speculative memory accessing
US7454749B2 (en) * 2002-11-12 2008-11-18 Engineered Intelligence Corporation Scalable parallel processing on shared memory computers
US20040107214A1 (en) * 2002-11-29 2004-06-03 Hung Lup Cheong Patrick Customized document portfolio system integrating IP libraries and technology documents
US7386539B2 (en) * 2002-11-29 2008-06-10 Taiwan Semiconductor Manufacturing Company, Ltd. System, method, and user interface providing customized document portfolio management
US20040117374A1 (en) * 2002-12-16 2004-06-17 Hung Lup Cheong Patrick Customized design portfolio integrating IP libraries and technology documents
US20040107197A1 (en) * 2002-11-29 2004-06-03 Shen Yu Yong System, method and user interface allowing customized portfolio management
WO2004059464A2 (en) * 2002-12-30 2004-07-15 Koninklijke Philips Electronics N.V. Processing system
US7475175B2 (en) * 2003-03-17 2009-01-06 Hewlett-Packard Development Company, L.P. Multi-processor module
TW200506733A (en) * 2003-08-15 2005-02-16 Via Tech Inc Apparatus and method for the co-simulation of CPU and DUT modules
US20050114850A1 (en) 2003-10-29 2005-05-26 Saurabh Chheda Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control
US7996671B2 (en) 2003-11-17 2011-08-09 Bluerisc Inc. Security of program executables and microprocessors based on compiler-architecture interaction
US8607209B2 (en) 2004-02-04 2013-12-10 Bluerisc Inc. Energy-focused compiler-assisted branch prediction
US20050228966A1 (en) * 2004-03-16 2005-10-13 Kabushiki Kaisha Toshiba Processor system and data processing method
US7827023B2 (en) * 2006-02-01 2010-11-02 Cadence Design Systems, Inc. Method and apparatus for increasing the efficiency of an emulation engine
EP2008182B1 (en) 2006-03-27 2010-05-12 Coherent Logix Incorporated Programming a multi-processor system
EP2056212B1 (en) * 2006-08-23 2013-04-10 NEC Corporation Mixed mode parallel processor system and method
US7606698B1 (en) * 2006-09-26 2009-10-20 Cadence Design Systems, Inc. Method and apparatus for sharing data between discrete clusters of processors
US20080141013A1 (en) * 2006-10-25 2008-06-12 On Demand Microelectronics Digital processor with control means for the execution of nested loops
US20080126766A1 (en) 2006-11-03 2008-05-29 Saurabh Chheda Securing microprocessors against information leakage and physical tampering
US20080307206A1 (en) * 2006-11-28 2008-12-11 On Demand Microelectronics Method and apparatus to efficiently evaluate monotonicity
JP2008140124A (ja) * 2006-12-01 2008-06-19 Matsushita Electric Ind Co Ltd データ処理装置
JP4232838B2 (ja) * 2007-03-29 2009-03-04 日本電気株式会社 再構成可能なsimd型プロセッサ
US7979674B2 (en) * 2007-05-16 2011-07-12 International Business Machines Corporation Re-executing launcher program upon termination of launched programs in MIMD mode booted SIMD partitions
US7814295B2 (en) * 2007-05-18 2010-10-12 International Business Machines Corporation Moving processing operations from one MIMD booted SIMD partition to another to enlarge a SIMD partition
US8954484B2 (en) 2009-06-12 2015-02-10 Cray Inc. Inclusive or bit matrix to compare multiple corresponding subfields
US7831803B2 (en) * 2007-07-19 2010-11-09 International Business Machines Corporation Executing multiple instructions multiple date (‘MIMD’) programs on a single instruction multiple data (‘SIMD’) machine
EP2628090B1 (en) 2010-10-15 2018-05-30 Coherent Logix Incorporated Disabling communication in a multiprocessor system
US8787368B2 (en) * 2010-12-07 2014-07-22 Advanced Micro Devices, Inc. Crossbar switch with primary and secondary pickers
JP2012174016A (ja) * 2011-02-22 2012-09-10 Renesas Electronics Corp データ処理装置およびそのデータ処理方法
US20130212363A1 (en) * 2011-05-20 2013-08-15 Grayskytech Llc Machine transport and execution of logic simulation
JP5831316B2 (ja) * 2012-03-19 2015-12-09 富士通株式会社 並列処理装置
US10325204B2 (en) * 2015-07-06 2019-06-18 Texas Instruments Incorporated Efficient decision tree traversal in an adaptive boosting (AdaBoost) classifier
US10983878B2 (en) * 2018-11-27 2021-04-20 Electronics And Telecommunications Research Institute Processor for detecting and preventing recognition error
US11573705B2 (en) * 2019-08-28 2023-02-07 Micron Technology, Inc. Artificial intelligence accelerator
US11940945B2 (en) * 2021-12-31 2024-03-26 Ceremorphic, Inc. Reconfigurable SIMD engine

Family Cites Families (120)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3537074A (en) * 1967-12-20 1970-10-27 Burroughs Corp Parallel operating array computer
US3544973A (en) * 1968-03-13 1970-12-01 Westinghouse Electric Corp Variable structure computer
US4942516A (en) * 1970-12-28 1990-07-17 Hyatt Gilbert P Single chip integrated circuit computer architecture
US3970993A (en) * 1974-01-02 1976-07-20 Hughes Aircraft Company Cooperative-word linear array parallel processor
US4107773A (en) * 1974-05-13 1978-08-15 Texas Instruments Incorporated Advanced array transform processor with fixed/floating point formats
US4101960A (en) * 1977-03-29 1978-07-18 Burroughs Corporation Scientific processor
US4270170A (en) * 1978-05-03 1981-05-26 International Computers Limited Array processor
US4380046A (en) * 1979-05-21 1983-04-12 Nasa Massively parallel processor computer
US4412303A (en) * 1979-11-26 1983-10-25 Burroughs Corporation Array processor architecture
US4314349A (en) * 1979-12-31 1982-02-02 Goodyear Aerospace Corporation Processing element for parallel array processors
US4338675A (en) * 1980-02-13 1982-07-06 Intel Corporation Numeric data processor
US4435758A (en) * 1980-03-10 1984-03-06 International Business Machines Corporation Method for conditional branch execution in SIMD vector processors
ZA811458B (en) * 1980-03-28 1982-03-31 Int Computers Ltd Data processing system
US4814979A (en) * 1981-04-01 1989-03-21 Teradata Corporation Network to transmit prioritized subtask pockets to dedicated processors
US4394726A (en) * 1981-04-29 1983-07-19 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Distributed multiport memory architecture
US4468727A (en) * 1981-05-14 1984-08-28 Honeywell Inc. Integrated cellular array parallel processor
DE3144015A1 (de) * 1981-11-05 1983-05-26 Ulrich Prof. Dr. 7500 Karlsruhe Kulisch "schaltungsanordnung und verfahren zur bildung von skalarprodukten und summen von gleitkommazahlen mit maximaler genauigkeit"
US4498133A (en) * 1981-12-10 1985-02-05 Burroughs Corp. Selector switch for a concurrent network of processors
US4523273A (en) * 1982-12-23 1985-06-11 Purdue Research Foundation Extra stage cube
JPS59132070A (ja) * 1983-01-18 1984-07-30 Mitsubishi Electric Corp アレイ演算用デ−タ処理装置
JPS59146345A (ja) * 1983-02-10 1984-08-22 Masahiro Sowa コントロ−ルフロ−並列計算機方式
US4739474A (en) * 1983-03-10 1988-04-19 Martin Marietta Corporation Geometric-arithmetic parallel processor
US5146608A (en) * 1983-05-31 1992-09-08 Hillis W Daniel Parallel processor array system controlled in response to composition status signal
US4814973A (en) 1983-05-31 1989-03-21 Hillis W Daniel Parallel processor
US4598400A (en) * 1983-05-31 1986-07-01 Thinking Machines Corporation Method and apparatus for routing message packets
US5212773A (en) 1983-05-31 1993-05-18 Thinking Machines Corporation Wormhole communications arrangement for massively parallel processor
US5008815A (en) * 1983-05-31 1991-04-16 Thinking Machines Corporation Parallel processor
US4621339A (en) * 1983-06-13 1986-11-04 Duke University SIMD machine using cube connected cycles network architecture for vector processing
US4604695A (en) * 1983-09-30 1986-08-05 Honeywell Information Systems Inc. Nibble and word addressable memory arrangement
DE3506749A1 (de) * 1984-02-27 1985-09-26 Nippon Telegraph & Telephone Public Corp., Tokio/Tokyo Matrixprozessor und steuerverfahren hierfuer
US4855903A (en) * 1984-12-20 1989-08-08 State University Of New York Topologically-distributed-memory multiprocessor computer
US4901224A (en) * 1985-02-25 1990-02-13 Ewert Alfred P Parallel digital processor
US5113523A (en) * 1985-05-06 1992-05-12 Ncube Corporation High performance computer system
US4805091A (en) * 1985-06-04 1989-02-14 Thinking Machines Corporation Method and apparatus for interconnecting processors in a hyper-dimensional array
US4967340A (en) * 1985-06-12 1990-10-30 E-Systems, Inc. Adaptive processing system having an array of individually configurable processing components
US5045995A (en) * 1985-06-24 1991-09-03 Vicom Systems, Inc. Selective operation of processing elements in a single instruction multiple data stream (SIMD) computer system
HU195972B (en) 1985-07-01 1988-08-29 Richter Gedeon Vegyeszet Process for producing new diamino-androstane derivatives and pharmaceutical compositions containing them
US5047917A (en) * 1985-07-12 1991-09-10 The California Institute Of Technology Apparatus for intrasystem communications within a binary n-cube including buffer lock bit
US4706191A (en) * 1985-07-31 1987-11-10 Sperry Corporation Local store for scientific vector processor
US4739476A (en) * 1985-08-01 1988-04-19 General Electric Company Local interconnection scheme for parallel processing architectures
EP0212031B1 (en) * 1985-08-13 1990-11-07 International Business Machines Corporation Dynamic bandwidth allocation mechanism between circuit slots and packet bit stream in a communication network
GB8521672D0 (en) * 1985-08-30 1985-10-02 Univ Southampton Data processing device
US4720780A (en) * 1985-09-17 1988-01-19 The Johns Hopkins University Memory-linked wavefront array processor
US4922408A (en) * 1985-09-27 1990-05-01 Schlumberger Technology Corporation Apparatus for multi-processor communications
US5021945A (en) * 1985-10-31 1991-06-04 Mcc Development, Ltd. Parallel processor system for processing natural concurrencies and method therefor
US4847755A (en) * 1985-10-31 1989-07-11 Mcc Development, Ltd. Parallel processing method and apparatus for increasing processing throughout by parallel processing low level instructions having natural concurrencies
US4907148A (en) * 1985-11-13 1990-03-06 Alcatel U.S.A. Corp. Cellular array processor with individual cell-level data-dependent cell control and multiport input memory
US4736291A (en) * 1985-11-22 1988-04-05 Texas Instruments Incorporated General-purpose array processor
US4835729A (en) * 1985-12-12 1989-05-30 Alcatel Usa, Corp. Single instruction multiple data (SIMD) cellular array processing apparatus with on-board RAM and address generator apparatus
US4783782A (en) * 1985-12-12 1988-11-08 Alcatel U.S.A. Corporation Manufacturing test data storage apparatus for dynamically reconfigurable cellular array processor chip
US4831519A (en) * 1985-12-12 1989-05-16 Itt Corporation Cellular array processor with variable nesting depth vector control by selective enabling of left and right neighboring processor cells
US4916657A (en) * 1985-12-12 1990-04-10 Alcatel Usa, Corp. Single instruction multiple data (SIMD) cellular array processing apparatus employing multiple state logic for coupling to data buses
US4852048A (en) * 1985-12-12 1989-07-25 Itt Corporation Single instruction multiple data (SIMD) cellular array processing apparatus employing a common bus where a first number of bits manifest a first bus portion and a second number of bits manifest a second bus portion
US4748585A (en) * 1985-12-26 1988-05-31 Chiarulli Donald M Processor utilizing reconfigurable process segments to accomodate data word length
US4925311A (en) * 1986-02-10 1990-05-15 Teradata Corporation Dynamically partitionable parallel processors
US5297260A (en) 1986-03-12 1994-03-22 Hitachi, Ltd. Processor having a plurality of CPUS with one CPU being normally connected to common bus
US4783738A (en) * 1986-03-13 1988-11-08 International Business Machines Corporation Adaptive instruction processing by array processor having processor identification and data dependent status registers in each processing element
US4814980A (en) * 1986-04-01 1989-03-21 California Institute Of Technology Concurrent hypercube system with improved message passing
US4809169A (en) * 1986-04-23 1989-02-28 Advanced Micro Devices, Inc. Parallel, multiple coprocessor computer architecture having plural execution modes
US4780873A (en) * 1986-05-19 1988-10-25 General Electric Company Circuit switching network with routing nodes
US4809347A (en) * 1986-07-18 1989-02-28 Hughes Aircraft Company Computer vision architecture
JPS6353678A (ja) * 1986-08-22 1988-03-07 Hitachi Ltd ベクトル処理装置
US5038386A (en) * 1986-08-29 1991-08-06 International Business Machines Corporation Polymorphic mesh network image processing system
US4860201A (en) * 1986-09-02 1989-08-22 The Trustees Of Columbia University In The City Of New York Binary tree parallel processor
US4910665A (en) * 1986-09-02 1990-03-20 General Electric Company Distributed processing system including reconfigurable elements
US5170484A (en) * 1986-09-18 1992-12-08 Digital Equipment Corporation Massively parallel array processing system
US5230079A (en) 1986-09-18 1993-07-20 Digital Equipment Corporation Massively parallel array processing system with processors selectively accessing memory module locations using address in microword or in address register
US4985832A (en) * 1986-09-18 1991-01-15 Digital Equipment Corporation SIMD array processing system with routing networks having plurality of switching stages to transfer messages among processors
CN1008018B (zh) * 1986-09-27 1990-05-16 徐肇昌 一种具有合作能力的同构型多计算机系统及其合作方法
US4841476A (en) * 1986-10-06 1989-06-20 International Business Machines Corporation Extended floating point operations supporting emulation of source instruction execution
US5010477A (en) * 1986-10-17 1991-04-23 Hitachi, Ltd. Method and apparatus for transferring vector data between parallel processing system with registers & logic for inter-processor data communication independents of processing operations
GB2211638A (en) * 1987-10-27 1989-07-05 Ibm Simd array processor
US5175865A (en) * 1986-10-28 1992-12-29 Thinking Machines Corporation Partitioning the processors of a massively parallel single array processor into sub-arrays selectively controlled by host computers
US4873626A (en) * 1986-12-17 1989-10-10 Massachusetts Institute Of Technology Parallel processing system with processor array having memory system included in system memory
US4891787A (en) * 1986-12-17 1990-01-02 Massachusetts Institute Of Technology Parallel processing system with processor array having SIMD/MIMD instruction processing
US5165023A (en) * 1986-12-17 1992-11-17 Massachusetts Institute Of Technology Parallel processing system with processor array and network communications system for transmitting messages of variable length
DE3702614A1 (de) * 1987-01-29 1988-08-11 Standard Elektrik Lorenz Ag Digitales koppelnetz fuer leitungs- und paketvermittlung und koppeleinrichtung hierzu
JPS63192153A (ja) * 1987-02-05 1988-08-09 Agency Of Ind Science & Technol 並列デ−タ処理装置
US4964032A (en) * 1987-03-27 1990-10-16 Smith Harry F Minimal connectivity parallel data processing system
US4933846A (en) * 1987-04-24 1990-06-12 Network Systems Corporation Network communications adapter with dual interleaved memory banks servicing multiple processors
US4933895A (en) * 1987-07-10 1990-06-12 Hughes Aircraft Company Cellular array having data dependent processing capabilities
US5170482A (en) * 1987-08-14 1992-12-08 Regents Of The University Of Minnesota Improved hypercube topology for multiprocessor computer systems
US5008882A (en) * 1987-08-17 1991-04-16 California Institute Of Technology Method and apparatus for eliminating unsuccessful tries in a search tree
US4958273A (en) * 1987-08-26 1990-09-18 International Business Machines Corporation Multiprocessor system architecture with high availability
US4916652A (en) * 1987-09-30 1990-04-10 International Business Machines Corporation Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures
US4942517A (en) * 1987-10-08 1990-07-17 Eastman Kodak Company Enhanced input/output architecture for toroidally-connected distributed-memory parallel computers
US4943912A (en) * 1987-10-13 1990-07-24 Hitachi, Ltd. Parallel processor system having control processor and array control apparatus for selectively activating different processors
US4872133A (en) * 1988-02-18 1989-10-03 Motorola, Inc. Floating-point systolic array including serial processors
US4896265A (en) * 1988-03-28 1990-01-23 General Electric Company Parallel broadcasting method and apparatus
US4992926A (en) * 1988-04-11 1991-02-12 Square D Company Peer-to-peer register exchange controller for industrial programmable controllers
US5038282A (en) * 1988-05-11 1991-08-06 Massachusetts Institute Of Technology Synchronous processor with simultaneous instruction processing and data transfer
US5121498A (en) * 1988-05-11 1992-06-09 Massachusetts Institute Of Technology Translator for translating source code for selective unrolling of loops in the source code
US5056000A (en) * 1988-06-21 1991-10-08 International Parallel Machines, Inc. Synchronized parallel processing with shared memory
US5005120A (en) * 1988-07-29 1991-04-02 Lsi Logic Corporation Compensating time delay in filtering signals of multi-dimensional reconvigurable array processors
GB2223867A (en) 1988-09-09 1990-04-18 Univ City Multiprocessor data processing system
US4920484A (en) * 1988-10-05 1990-04-24 Yale University Multiprocessor/memory interconnection network wherein messages sent through the network to the same memory are combined
US5041971A (en) * 1988-11-30 1991-08-20 Bolt Beranek And Newman Inc. Memory accessing switch network
US5189665A (en) 1989-03-30 1993-02-23 Texas Instruments Incorporated Programmable configurable digital crossbar switch
US5020059A (en) * 1989-03-31 1991-05-28 At&T Bell Laboratories Reconfigurable signal processor
US5181017A (en) 1989-07-27 1993-01-19 Ibm Corporation Adaptive routing in a parallel computing system
US5049982A (en) * 1989-07-28 1991-09-17 At&T Bell Laboratories Article comprising a stacked array of electronic subassemblies
US5173947A (en) * 1989-08-01 1992-12-22 Martin Marietta Corporation Conformal image processing apparatus and method
JPH0731780B2 (ja) * 1989-09-08 1995-04-10 日本碍子株式会社 磁気ヘッド用コアの製造方法
US5072217A (en) * 1989-10-31 1991-12-10 International Business Machines Corporation One-sided crosspoint switch with distributed control
US5239654A (en) 1989-11-17 1993-08-24 Texas Instruments Incorporated Dual mode SIMD/MIMD processor providing reuse of MIMD instruction memories as data memories when operating in SIMD mode
US5212777A (en) 1989-11-17 1993-05-18 Texas Instruments Incorporated Multi-processor reconfigurable in single instruction multiple data (SIMD) and multiple instruction multiple data (MIMD) modes and method of operation
US5218709A (en) 1989-12-28 1993-06-08 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Special purpose parallel computer architecture for real-time control and simulation in robotic applications
US5197130A (en) 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
US5239629A (en) 1989-12-29 1993-08-24 Supercomputer Systems Limited Partnership Dedicated centralized signaling mechanism for selectively signaling devices in a multiprocessor system
US5175862A (en) * 1989-12-29 1992-12-29 Supercomputer Systems Limited Partnership Method and apparatus for a special purpose arithmetic boolean unit
US5280474A (en) 1990-01-05 1994-01-18 Maspar Computer Corporation Scalable processor to processor and processor-to-I/O interconnection network and method for parallel processing arrays
US5218676A (en) 1990-01-08 1993-06-08 The University Of Rochester Dynamic routing system for a multinode communications network
US5265124A (en) 1990-02-15 1993-11-23 Advanced Micro Devices, Inc. Integrated multi-port repeater having shared resources
US5142540A (en) * 1990-03-13 1992-08-25 Glasser Lance A Multipart memory apparatus with error detection
US5187801A (en) 1990-04-11 1993-02-16 Thinking Machines Corporation Massively-parallel computer system for generating paths in a binomial lattice
WO1991017507A1 (en) 1990-05-07 1991-11-14 Mitsubishi Denki Kabushiki Kaisha Parallel data processing system
US5136582A (en) * 1990-05-29 1992-08-04 Advanced Micro Devices, Inc. Memory management system and method for network controller
US5251097A (en) 1990-06-11 1993-10-05 Supercomputer Systems Limited Partnership Packaging architecture for a highly parallel multiprocessor system
US5253359A (en) 1990-06-11 1993-10-12 Supercomputer Systems Limited Partnership Control and maintenance subsystem network for use with a multiprocessor computer system
US5367636A (en) 1990-09-24 1994-11-22 Ncube Corporation Hypercube processor network in which the processor indentification numbers of two processors connected to each other through port number n, vary only in the nth bit

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IEEE TRANS.COMPUT.VOL.30 NO.12 P934−947H.J.SIEGAL ET.AL."PASM:A PARTITIONABLE SIMD/MIMD SYSTEM FOR IMAGE PROCESSING AND PATTERN RECOGNITION"

Also Published As

Publication number Publication date
JPH0635877A (ja) 1994-02-10
US5805915A (en) 1998-09-08

Similar Documents

Publication Publication Date Title
JP2642039B2 (ja) アレイ・プロセッサ
US5815723A (en) Picket autonomy on a SIMD machine
US5809292A (en) Floating point for simid array machine
US5870619A (en) Array processor with asynchronous availability of a next SIMD instruction
US5966528A (en) SIMD/MIMD array processor with vector processing
US5752067A (en) Fully scalable parallel processing system having asynchronous SIMD processing
US5794059A (en) N-dimensional modified hypercube
US5588152A (en) Advanced parallel processor including advanced support hardware
US5963745A (en) APAP I/O programmable router
US5590345A (en) Advanced parallel array processor(APAP)
US5734921A (en) Advanced parallel array processor computer package
US5963746A (en) Fully distributed processing memory element
US5625836A (en) SIMD/MIMD processing memory element (PME)
JP2552076B2 (ja) コンピュータ・システム
JPH04267466A (ja) 連想並列処理システム
US5765012A (en) Controller for a SIMD/MIMD array having an instruction sequencer utilizing a canned routine library
JP2557175B2 (ja) コンピュータ・システム
JP2620487B2 (ja) コンピュータ・パッケージ
JP2579419B2 (ja) マルチプロセッサ・メモリ・システム
JP2552075B2 (ja) コンピュータ・システム
JP2625628B2 (ja) 浮動小数点コンピュータ・システム
JP2521401B2 (ja) 単一命令複数デ―タ/複数命令複数デ―タ・プロセッサ・アレイ用コントロ―ラ
JPH07287700A (ja) コンピュータ・システム
JP2549240B2 (ja) コンピュータ・システム
JPH0652124A (ja) コンピュータ・システム